From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 18F37382F992 for ; Fri, 20 May 2022 15:06:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 18F37382F992 Received: from mail-yw1-f199.google.com (mail-yw1-f199.google.com [209.85.128.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-127-4pmjpXXwNqKCXDpeLw9u6w-1; Fri, 20 May 2022 11:06:37 -0400 X-MC-Unique: 4pmjpXXwNqKCXDpeLw9u6w-1 Received: by mail-yw1-f199.google.com with SMTP id 00721157ae682-2ff40ee8109so71937967b3.14 for ; Fri, 20 May 2022 08:06:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cesazGO7yOIDHLi5C1JY4t7B1mu0O+SIVwrjmHuxNBk=; b=OIK8vBwG5YBZqu1MH122rtue34Ef9Jc5KZlCIMb6Eommioj5ioEeeSiMP3BYvPKPGF T45AUJ1zADDdn8pLo42ZMKOX6Jk/gGvT119R3LC+p9B8UlCxBPrj4yZwuGMu8En3oJSz NnmALS9Oz49B4V72fkzcWboVDmehEPH5wrJO+oB44lBr2CZ2ZZJsCPse9gkKFgAuZX8d IlJ14/Uwk0u4/Wd99JkSEMjyCWOZat8tdcHFisVlpFTB1pQ46h/bFjvM8jwuGwgvLirx +OIE+ZJYkEp70Dj6vqIYkOTvIHI62nEypAx4pWaeNNMrCDVTUBU+KHZIJbVjSLlUAL8H UB9Q== X-Gm-Message-State: AOAM533FxuBkrFG5lNcN7TXByNhoTW+TkzZAfcZ848lpymkPEclvhyzv 69dZQM7xk9mmYdObxFJ9mbJhyqvHkgRtmeYhK+VvdXNVVc/2gMIONaL+lH08ZunqOx10+4kVzf2 Arp3UU+qdRQGL6imYvOVeGVZnHj0m3sg= X-Received: by 2002:a25:e093:0:b0:64d:6c85:6bc6 with SMTP id x141-20020a25e093000000b0064d6c856bc6mr9387314ybg.500.1653059196251; Fri, 20 May 2022 08:06:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy2HJSfxJX0ZXS5nvJ0SavFlGNRZS87pM6d0nbKlJzHGChlX5fnNeeHuma0B86sp8HrQqHDokEj7VpTiLo5e1c= X-Received: by 2002:a25:e093:0:b0:64d:6c85:6bc6 with SMTP id x141-20020a25e093000000b0064d6c856bc6mr9387281ybg.500.1653059195871; Fri, 20 May 2022 08:06:35 -0700 (PDT) MIME-Version: 1.0 References: <20220520021933.7CE782042B@pchp3.se.axis.com> <20220520143025.235C92041C@pchp3.se.axis.com> In-Reply-To: <20220520143025.235C92041C@pchp3.se.axis.com> From: Jonathan Wakely Date: Fri, 20 May 2022 16:06:23 +0100 Message-ID: Subject: Re: [PATCH] libstdc++-v3: Set 26_numerics/random/n.b.d./op./values.cc timeout-factor to 3 To: Hans-Peter Nilsson Cc: gcc Patches , "libstdc++" X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="00000000000029defb05df72d6c8" X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 May 2022 15:06:41 -0000 --00000000000029defb05df72d6c8 Content-Type: text/plain; charset="UTF-8" On Fri, 20 May 2022 at 15:31, Hans-Peter Nilsson wrote: > > > From: Jonathan Wakely > > Date: Fri, 20 May 2022 11:03:40 +0200 > > > > Ok to commit (without renaming)? > > > > I'm OK with the timeout factor, but we could also solve it differently > > so that it doesn't take nearly 5 minutes, as in the attached patch. > > The testDiscreteDist function can be parametrized with the number of > > iterations to perform. Would you rather do that? > > Yes thanks, down from 4m39s to 2.7 seconds, so very much > preferable! Nice, thanks for testing it. > (To the skeptics: the coverage intended with the test, is > IMHO reached with all non-simulator targets also running > this. Nothing target-dependent here.) Indeed. > Also in line with many other depth-level-cousin test-files > named value.cc. Still many more others seem to be > candidates for such pruning, judging by the time it takes > for a 'RUNTESTFLAGS=--target_board=cris-sim\ > conformance.exp=values.cc' to get to *that* values.cc. > > Though, some -DSIMULATOR_TEST-adjusted files use dg-options, > others dg-additional-options. It seems the difference is > that by using dg-options, you lose "-include bits/stdc++.h". > Likely not intended. If so, should Someone fix that by > preapproval but regtested? Ah good point. I've pushed the attached patch now. This adjusts the values.cc files for some other distributions, and does so using dg-additional-options not dg-options. Feel free to change existing (mis)uses of dg-options to be dg-additional-options. I've tested it on x86_64-linux, normally and also with -DSIMULATOR_TEST in the test flags, just to ensure I didn't introduce a silly syntax error for that case. I haven't tested it on a real sim though. --00000000000029defb05df72d6c8 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3ek6z5f0 Y29tbWl0IGUzYjhiNGY3ODE0YzU0NTQzZDliN2VhM2VlOGNmMmNiOWNmZjM1MWQKQXV0aG9yOiBK b25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4KRGF0ZTogICBGcmkgTWF5IDIwIDE1 OjQ0OjI1IDIwMjIKCiAgICBsaWJzdGRjKys6IFJlZHVjZSA8cmFuZG9tPiB0ZXN0IGl0ZXJhdGlv bnMgZm9yIHNpbXVsYXRvcnMKICAgIAogICAgU29tZSBvZiB0aGVzZSB0ZXN0cyB0YWtlIHNldmVy YWwgbWludXRlcyBvbiBhIHNpbXVsYXRvciBsaWtlIGNyaXMtZWxmLAogICAgc28gd2UgY2FuIGNv bmRpdGlvbmFsbHkgcnVuIGZld2VyIGl0ZXJhdGlvbnMuIFRoZSB0ZXN0RGlzY3JldGVEaXN0CiAg ICBoZWxwZXIgYWxyZWFkeSBzdXBwb3J0cyBjdXN0b20gc2l6ZXMgc28gd2UganVzdCBuZWVkIHRv IG1ha2UgdXNlIG9mIHRoYXQKICAgIHdoZW4geyB0YXJnZXQgc2ltdWxhdG9yIH0gbWF0Y2hlcy4K ICAgIAogICAgVGhlIHJlbGV2YW50IGNvZGUgaXMgc3VmZmljaWVudGx5IHRlc3RlZCBvbiBvdGhl ciB0YXJnZXRzLCBzbyB3ZSdyZSBub3QKICAgIGxvc2luZyBhbnl0aGluZyBieSBvbmx5IHJ1bm5p bmcgYSBzbWFsbCBudW1iZXIgb2YgaXRlcmF0b3JzIGZvciBzaW1zLgogICAgCiAgICBsaWJzdGRj KystdjMvQ2hhbmdlTG9nOgogICAgCiAgICAgICAgICAgICogdGVzdHN1aXRlLzI2X251bWVyaWNz L3JhbmRvbS9iZXJub3VsbGlfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2M6CiAgICAg ICAgICAgIFJ1biBmZXdlciBpdGVyYXRpb25zIGZvciBzaW11bGF0b3IgdGFyZ2V0cy4KICAgICAg ICAgICAgKiB0ZXN0c3VpdGUvMjZfbnVtZXJpY3MvcmFuZG9tL2Jpbm9taWFsX2Rpc3RyaWJ1dGlv bi9vcGVyYXRvcnMvdmFsdWVzLmNjOgogICAgICAgICAgICBMaWtld2lzZS4KICAgICAgICAgICAg KiB0ZXN0c3VpdGUvMjZfbnVtZXJpY3MvcmFuZG9tL2Rpc2NyZXRlX2Rpc3RyaWJ1dGlvbi9vcGVy YXRvcnMvdmFsdWVzLmNjOgogICAgICAgICAgICBMaWtld2lzZS4KICAgICAgICAgICAgKiB0ZXN0 c3VpdGUvMjZfbnVtZXJpY3MvcmFuZG9tL2dlb21ldHJpY19kaXN0cmlidXRpb24vb3BlcmF0b3Jz L3ZhbHVlcy5jYzoKICAgICAgICAgICAgTGlrZXdpc2UuCiAgICAgICAgICAgICogdGVzdHN1aXRl LzI2X251bWVyaWNzL3JhbmRvbS9uZWdhdGl2ZV9iaW5vbWlhbF9kaXN0cmlidXRpb24vb3BlcmF0 b3JzL3ZhbHVlcy5jYzoKICAgICAgICAgICAgTGlrZXdpc2UuCiAgICAgICAgICAgICogdGVzdHN1 aXRlLzI2X251bWVyaWNzL3JhbmRvbS9wb2lzc29uX2Rpc3RyaWJ1dGlvbi9vcGVyYXRvcnMvdmFs dWVzLmNjOgogICAgICAgICAgICBMaWtld2lzZS4KICAgICAgICAgICAgKiB0ZXN0c3VpdGUvMjZf bnVtZXJpY3MvcmFuZG9tL3VuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbi9vcGVyYXRvcnMvdmFsdWVz LmNjOgogICAgICAgICAgICBMaWtld2lzZS4KCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVz dHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS9iZXJub3VsbGlfZGlzdHJpYnV0aW9uL29wZXJhdG9y cy92YWx1ZXMuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS9i ZXJub3VsbGlfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MKaW5kZXggNDEwMDY5Mjk4 MWMuLmIyY2I4NmY5NzZiIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI2X251 bWVyaWNzL3JhbmRvbS9iZXJub3VsbGlfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MK KysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vYmVybm91bGxp X2Rpc3RyaWJ1dGlvbi9vcGVyYXRvcnMvdmFsdWVzLmNjCkBAIC0yNCw2ICsyNCwxNCBAQAogI2lu Y2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8dGVzdHN1aXRlX3JhbmRvbS5oPgogCisvLyB7 IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLURTSU1VTEFUT1JfVEVTVCIgeyB0YXJnZXQgc2ltdWxh dG9yIH0gfQorCisjaWZkZWYgU0lNVUxBVE9SX1RFU1QKKyMgZGVmaW5lIEFSR1MgMTAwLCAxMDAw CisjZWxzZQorIyBkZWZpbmUgQVJHUworI2VuZGlmCisKIHZvaWQgdGVzdDAxKCkKIHsKICAgdXNp bmcgbmFtZXNwYWNlIF9fZ251X3Rlc3Q7CkBAIC0zMiwxNSArNDAsMTUgQEAgdm9pZCB0ZXN0MDEo KQogCiAgIHN0ZDo6YmVybm91bGxpX2Rpc3RyaWJ1dGlvbiBiZDEoMC4yNSk7CiAgIGF1dG8gYmJk MSA9IHN0ZDo6YmluZChiZDEsIGVuZyk7Ci0gIHRlc3REaXNjcmV0ZURpc3QoYmJkMSwgW10oaW50 IG4pIHsgcmV0dXJuIGJlcm5vdWxsaV9wZGYobiwgMC4yNSk7IH0gKTsKKyAgdGVzdERpc2NyZXRl RGlzdDxBUkdTPihiYmQxLCBbXShpbnQgbikgeyByZXR1cm4gYmVybm91bGxpX3BkZihuLCAwLjI1 KTsgfSApOwogCiAgIHN0ZDo6YmVybm91bGxpX2Rpc3RyaWJ1dGlvbiBiZDIoMC41KTsKICAgYXV0 byBiYmQyID0gc3RkOjpiaW5kKGJkMiwgZW5nKTsKLSAgdGVzdERpc2NyZXRlRGlzdChiYmQyLCBb XShpbnQgbikgeyByZXR1cm4gYmVybm91bGxpX3BkZihuLCAwLjUpOyB9ICk7CisgIHRlc3REaXNj cmV0ZURpc3Q8QVJHUz4oYmJkMiwgW10oaW50IG4pIHsgcmV0dXJuIGJlcm5vdWxsaV9wZGYobiwg MC41KTsgfSApOwogCiAgIHN0ZDo6YmVybm91bGxpX2Rpc3RyaWJ1dGlvbiBiZDMoMC43NSk7CiAg IGF1dG8gYmJkMyA9IHN0ZDo6YmluZChiZDMsIGVuZyk7Ci0gIHRlc3REaXNjcmV0ZURpc3QoYmJk MywgW10oaW50IG4pIHsgcmV0dXJuIGJlcm5vdWxsaV9wZGYobiwgMC43NSk7IH0gKTsKKyAgdGVz dERpc2NyZXRlRGlzdDxBUkdTPihiYmQzLCBbXShpbnQgbikgeyByZXR1cm4gYmVybm91bGxpX3Bk ZihuLCAwLjc1KTsgfSApOwogfQogCiBpbnQgbWFpbigpCmRpZmYgLS1naXQgYS9saWJzdGRjKyst djMvdGVzdHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS9iaW5vbWlhbF9kaXN0cmlidXRpb24vb3Bl cmF0b3JzL3ZhbHVlcy5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVtZXJpY3MvcmFu ZG9tL2Jpbm9taWFsX2Rpc3RyaWJ1dGlvbi9vcGVyYXRvcnMvdmFsdWVzLmNjCmluZGV4IDk2NTcw ZDU5ZmIzLi5lZmEyNTliN2UwMyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8y Nl9udW1lcmljcy9yYW5kb20vYmlub21pYWxfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMu Y2MKKysrIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vYmlub21p YWxfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MKQEAgLTI1LDYgKzI1LDE0IEBACiAj aW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx0ZXN0c3VpdGVfcmFuZG9tLmg+CiAKKy8v IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItRFNJTVVMQVRPUl9URVNUIiB7IHRhcmdldCBzaW11 bGF0b3IgfSB9CisKKyNpZmRlZiBTSU1VTEFUT1JfVEVTVAorIyBkZWZpbmUgQVJHUyAxMDAsIDEw MDAKKyNlbHNlCisjIGRlZmluZSBBUkdTCisjZW5kaWYKKwogdm9pZCB0ZXN0MDEoKQogewogICB1 c2luZyBuYW1lc3BhY2UgX19nbnVfdGVzdDsKQEAgLTMzLDkgKzQxLDkgQEAgdm9pZCB0ZXN0MDEo KQogCiAgIHN0ZDo6Ymlub21pYWxfZGlzdHJpYnV0aW9uPD4gYmQxKDUsIDAuMyk7CiAgIGF1dG8g YmJkMSA9IHN0ZDo6YmluZChiZDEsIGVuZyk7Ci0gIHRlc3REaXNjcmV0ZURpc3QoYmJkMSwgW10o aW50IG4pIHsgcmV0dXJuIGJpbm9taWFsX3BkZihuLCA1LCAwLjMpOyB9ICk7CisgIHRlc3REaXNj cmV0ZURpc3Q8QVJHUz4oYmJkMSwgW10oaW50IG4pIHsgcmV0dXJuIGJpbm9taWFsX3BkZihuLCA1 LCAwLjMpOyB9ICk7CiAKLSAgLy8gVGhlc2UgdGVzdHMgdGFrZSBhIHJlbGF0aXZlbHkgbG9uZyB0 aW1lIG9uIHNvZnQtZmxvYXQgc2ltdWxhdGVkCisgIC8vIFRoZXNlIHRlc3RzIHRha2UgYSByZWxh dGl2ZWx5IGxvbmcgdGltZSBvbiBzb2Z0LWZsb2F0IHNpbXVsYXRlZCB0YXJnZXRzLgogICAvLyB0 YXJnZXRzLCBzbyBwbGVhc2UgZG9uJ3QgYWRkIG5ldyB0ZXN0cyBoZXJlLCBpbnN0ZWFkIGFkZCBh IG5ldyBmaWxlLgogfQogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI2X251 bWVyaWNzL3JhbmRvbS9kaXNjcmV0ZV9kaXN0cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYyBi L2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVtZXJpY3MvcmFuZG9tL2Rpc2NyZXRlX2Rpc3Ry aWJ1dGlvbi9vcGVyYXRvcnMvdmFsdWVzLmNjCmluZGV4IDFjZWRkNjQzNGNhLi44YmFjYjg2ZTE3 MyAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20v ZGlzY3JldGVfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MKKysrIGIvbGlic3RkYysr LXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vZGlzY3JldGVfZGlzdHJpYnV0aW9uL29w ZXJhdG9ycy92YWx1ZXMuY2MKQEAgLTI0LDYgKzI0LDE0IEBACiAjaW5jbHVkZSA8ZnVuY3Rpb25h bD4KICNpbmNsdWRlIDx0ZXN0c3VpdGVfcmFuZG9tLmg+CiAKKy8vIHsgZGctYWRkaXRpb25hbC1v cHRpb25zICItRFNJTVVMQVRPUl9URVNUIiB7IHRhcmdldCBzaW11bGF0b3IgfSB9CisKKyNpZmRl ZiBTSU1VTEFUT1JfVEVTVAorIyBkZWZpbmUgQVJHUyAxMDAsIDEwMDAKKyNlbHNlCisjIGRlZmlu ZSBBUkdTCisjZW5kaWYKKwogdm9pZCB0ZXN0MDEoKQogewogICB1c2luZyBuYW1lc3BhY2UgX19n bnVfdGVzdDsKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVtZXJpY3Mv cmFuZG9tL2dlb21ldHJpY19kaXN0cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYyBiL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVtZXJpY3MvcmFuZG9tL2dlb21ldHJpY19kaXN0cmlidXRp b24vb3BlcmF0b3JzL3ZhbHVlcy5jYwppbmRleCA2NWUwZTc5MjE3Yi4uNDFhODNiMTM3N2IgMTAw NjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVtZXJpY3MvcmFuZG9tL2dlb21l dHJpY19kaXN0cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYworKysgYi9saWJzdGRjKystdjMv dGVzdHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS9nZW9tZXRyaWNfZGlzdHJpYnV0aW9uL29wZXJh dG9ycy92YWx1ZXMuY2MKQEAgLTI0LDYgKzI0LDE0IEBACiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4K ICNpbmNsdWRlIDx0ZXN0c3VpdGVfcmFuZG9tLmg+CiAKKy8vIHsgZGctYWRkaXRpb25hbC1vcHRp b25zICItRFNJTVVMQVRPUl9URVNUIiB7IHRhcmdldCBzaW11bGF0b3IgfSB9CisKKyNpZmRlZiBT SU1VTEFUT1JfVEVTVAorIyBkZWZpbmUgQVJHUyAxMDAsIDEwMDAKKyNlbHNlCisjIGRlZmluZSBB UkdTCisjZW5kaWYKKwogdm9pZCB0ZXN0MDEoKQogewogICB1c2luZyBuYW1lc3BhY2UgX19nbnVf dGVzdDsKQEAgLTMyLDE2ICs0MCwxNiBAQCB2b2lkIHRlc3QwMSgpCiAKICAgc3RkOjpnZW9tZXRy aWNfZGlzdHJpYnV0aW9uPD4gZ2QxKDAuNSk7CiAgIGF1dG8gYmdkMSA9IHN0ZDo6YmluZChnZDEs IGVuZyk7Ci0gIHRlc3REaXNjcmV0ZURpc3QoYmdkMSwgW10oaW50IG4pIHsgcmV0dXJuIGdlb21l dHJpY19wZGYobiwgMC41KTsgfSApOworICB0ZXN0RGlzY3JldGVEaXN0PEFSR1M+KGJnZDEsIFtd KGludCBuKSB7IHJldHVybiBnZW9tZXRyaWNfcGRmKG4sIDAuNSk7IH0gKTsKIAogICBzdGQ6Omdl b21ldHJpY19kaXN0cmlidXRpb248PiBnZDIoMC43NSk7CiAgIGF1dG8gYmdkMiA9IHN0ZDo6Ymlu ZChnZDIsIGVuZyk7Ci0gIHRlc3REaXNjcmV0ZURpc3QoYmdkMiwgW10oaW50IG4pIHsgcmV0dXJu IGdlb21ldHJpY19wZGYobiwgMC43NSk7IH0gKTsKKyAgdGVzdERpc2NyZXRlRGlzdDxBUkdTPihi Z2QyLCBbXShpbnQgbikgeyByZXR1cm4gZ2VvbWV0cmljX3BkZihuLCAwLjc1KTsgfSApOwogCiAg IC8vIGxpYnN0ZGMrKy80ODExNAogICBzdGQ6Omdlb21ldHJpY19kaXN0cmlidXRpb248PiBnZDMo MC4yNSk7CiAgIGF1dG8gYmdkMyA9IHN0ZDo6YmluZChnZDMsIGVuZyk7Ci0gIHRlc3REaXNjcmV0 ZURpc3QoYmdkMywgW10oaW50IG4pIHsgcmV0dXJuIGdlb21ldHJpY19wZGYobiwgMC4yNSk7IH0g KTsKKyAgdGVzdERpc2NyZXRlRGlzdDxBUkdTPihiZ2QzLCBbXShpbnQgbikgeyByZXR1cm4gZ2Vv bWV0cmljX3BkZihuLCAwLjI1KTsgfSApOwogfQogCiBpbnQgbWFpbigpCmRpZmYgLS1naXQgYS9s aWJzdGRjKystdjMvdGVzdHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS9uZWdhdGl2ZV9iaW5vbWlh bF9kaXN0cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3Vp dGUvMjZfbnVtZXJpY3MvcmFuZG9tL25lZ2F0aXZlX2Jpbm9taWFsX2Rpc3RyaWJ1dGlvbi9vcGVy YXRvcnMvdmFsdWVzLmNjCmluZGV4IGRkYTZmNDNiMjU0Li45ODU2Yjg4ODU3NyAxMDA2NDQKLS0t IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vbmVnYXRpdmVfYmlu b21pYWxfZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MKKysrIGIvbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vbmVnYXRpdmVfYmlub21pYWxfZGlzdHJpYnV0 aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MKQEAgLTI2LDYgKzI2LDE0IEBACiAjaW5jbHVkZSA8ZnVu Y3Rpb25hbD4KICNpbmNsdWRlIDx0ZXN0c3VpdGVfcmFuZG9tLmg+CiAKKy8vIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItRFNJTVVMQVRPUl9URVNUIiB7IHRhcmdldCBzaW11bGF0b3IgfSB9CisK KyNpZmRlZiBTSU1VTEFUT1JfVEVTVAorIyBkZWZpbmUgQVJHUyAxMDAsIDEwMDAKKyNlbHNlCisj IGRlZmluZSBBUkdTCisjZW5kaWYKKwogdm9pZCB0ZXN0MDEoKQogewogICB1c2luZyBuYW1lc3Bh Y2UgX19nbnVfdGVzdDsKQEAgLTM0LDE4ICs0MiwxOCBAQCB2b2lkIHRlc3QwMSgpCiAKICAgc3Rk OjpuZWdhdGl2ZV9iaW5vbWlhbF9kaXN0cmlidXRpb248PiBuYmQxKDUsIDAuMyk7CiAgIGF1dG8g Ym5iZDEgPSBzdGQ6OmJpbmQobmJkMSwgZW5nKTsKLSAgdGVzdERpc2NyZXRlRGlzdChibmJkMSwg W10oaW50IG4pCi0JCSAgIHsgcmV0dXJuIG5lZ2F0aXZlX2Jpbm9taWFsX3BkZihuLCA1LCAwLjMp OyB9ICk7CisgIHRlc3REaXNjcmV0ZURpc3Q8QVJHUz4oYm5iZDEsIFtdKGludCBuKQorCQkJIHsg cmV0dXJuIG5lZ2F0aXZlX2Jpbm9taWFsX3BkZihuLCA1LCAwLjMpOyB9ICk7CiAKICAgc3RkOjpu ZWdhdGl2ZV9iaW5vbWlhbF9kaXN0cmlidXRpb248PiBuYmQyKDU1LCAwLjMpOwogICBhdXRvIGJu YmQyID0gc3RkOjpiaW5kKG5iZDIsIGVuZyk7Ci0gIHRlc3REaXNjcmV0ZURpc3QoYm5iZDIsIFtd KGludCBuKQotCQkgICB7IHJldHVybiBuZWdhdGl2ZV9iaW5vbWlhbF9wZGYobiwgNTUsIDAuMyk7 IH0gKTsKKyAgdGVzdERpc2NyZXRlRGlzdDxBUkdTPihibmJkMiwgW10oaW50IG4pCisJCQkgeyBy ZXR1cm4gbmVnYXRpdmVfYmlub21pYWxfcGRmKG4sIDU1LCAwLjMpOyB9ICk7CiAKICAgc3RkOjpu ZWdhdGl2ZV9iaW5vbWlhbF9kaXN0cmlidXRpb248PiBuYmQzKDEwLCAwLjc1KTsKICAgYXV0byBi bmJkMyA9IHN0ZDo6YmluZChuYmQzLCBlbmcpOwotICB0ZXN0RGlzY3JldGVEaXN0KGJuYmQzLCBb XShpbnQgbikKLQkJICAgeyByZXR1cm4gbmVnYXRpdmVfYmlub21pYWxfcGRmKG4sIDEwLCAwLjc1 KTsgfSApOworICB0ZXN0RGlzY3JldGVEaXN0PEFSR1M+KGJuYmQzLCBbXShpbnQgbikKKwkJCSB7 IHJldHVybiBuZWdhdGl2ZV9iaW5vbWlhbF9wZGYobiwgMTAsIDAuNzUpOyB9ICk7CiB9CiAKIGlu dCBtYWluKCkKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVtZXJpY3Mv cmFuZG9tL3BvaXNzb25fZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MgYi9saWJzdGRj KystdjMvdGVzdHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS9wb2lzc29uX2Rpc3RyaWJ1dGlvbi9v cGVyYXRvcnMvdmFsdWVzLmNjCmluZGV4IDE2OWQ3MjBkNTk2Li4wNWU4YzlmOWViMSAxMDA2NDQK LS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vcG9pc3Nvbl9k aXN0cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYworKysgYi9saWJzdGRjKystdjMvdGVzdHN1 aXRlLzI2X251bWVyaWNzL3JhbmRvbS9wb2lzc29uX2Rpc3RyaWJ1dGlvbi9vcGVyYXRvcnMvdmFs dWVzLmNjCkBAIC0xLDQgKzEsMyBAQAotLy8geyBkZy1vcHRpb25zICItRFNJTVVMQVRPUl9URVNU IiB7IHRhcmdldCBzaW11bGF0b3IgfSB9CiAvLyB7IGRnLWRvIHJ1biB7IHRhcmdldCBjKysxMSB9 IH0KIC8vIHsgZGctcmVxdWlyZS1jc3RkaW50ICIiIH0KIC8vIHsgZGctcmVxdWlyZS1jbWF0aCAi IiB9CkBAIC0yNiw2ICsyNSwxNCBAQAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8 dGVzdHN1aXRlX3JhbmRvbS5oPgogCisvLyB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLURTSU1V TEFUT1JfVEVTVCIgeyB0YXJnZXQgc2ltdWxhdG9yIH0gfQorCisjaWZkZWYgU0lNVUxBVE9SX1RF U1QKKyMgZGVmaW5lIEFSR1MgMTAwLCAxMDAwCisjZWxzZQorIyBkZWZpbmUgQVJHUworI2VuZGlm CisKIHZvaWQgdGVzdDAxKCkKIHsKICAgdXNpbmcgbmFtZXNwYWNlIF9fZ251X3Rlc3Q7CkBAIC0z NCwxNSArNDEsMTUgQEAgdm9pZCB0ZXN0MDEoKQogCiAgIHN0ZDo6cG9pc3Nvbl9kaXN0cmlidXRp b248PiBwZDEoMy4wKTsKICAgYXV0byBicGQxID0gc3RkOjpiaW5kKHBkMSwgZW5nKTsKLSAgdGVz dERpc2NyZXRlRGlzdChicGQxLCBbXShpbnQgbikgeyByZXR1cm4gcG9pc3Nvbl9wZGYobiwgMy4w KTsgfSApOworICB0ZXN0RGlzY3JldGVEaXN0PEFSR1M+KGJwZDEsIFtdKGludCBuKSB7IHJldHVy biBwb2lzc29uX3BkZihuLCAzLjApOyB9ICk7CiAKICAgc3RkOjpwb2lzc29uX2Rpc3RyaWJ1dGlv bjw+IHBkMigxNS4wKTsKICAgYXV0byBicGQyID0gc3RkOjpiaW5kKHBkMiwgZW5nKTsKLSAgdGVz dERpc2NyZXRlRGlzdChicGQyLCBbXShpbnQgbikgeyByZXR1cm4gcG9pc3Nvbl9wZGYobiwgMTUu MCk7IH0gKTsKKyAgdGVzdERpc2NyZXRlRGlzdDxBUkdTPihicGQyLCBbXShpbnQgbikgeyByZXR1 cm4gcG9pc3Nvbl9wZGYobiwgMTUuMCk7IH0gKTsKIAogICBzdGQ6OnBvaXNzb25fZGlzdHJpYnV0 aW9uPD4gcGQzKDMwLjApOwogICBhdXRvIGJwZDMgPSBzdGQ6OmJpbmQocGQzLCBlbmcpOwotICB0 ZXN0RGlzY3JldGVEaXN0KGJwZDMsIFtdKGludCBuKSB7IHJldHVybiBwb2lzc29uX3BkZihuLCAz MC4wKTsgfSApOworICB0ZXN0RGlzY3JldGVEaXN0PEFSR1M+KGJwZDMsIFtdKGludCBuKSB7IHJl dHVybiBwb2lzc29uX3BkZihuLCAzMC4wKTsgfSApOwogCiAgIC8vIFRoaXMgY2FuIHRha2UgZXh0 cmVtZWx5IGxvbmcgb24gc2ltdWxhdG9ycywgdGltaW5nIG91dCB0aGUgdGVzdC4KICNpZm5kZWYg U0lNVUxBVE9SX1RFU1QKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjZfbnVt ZXJpY3MvcmFuZG9tL3VuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbi9vcGVyYXRvcnMvdmFsdWVzLmNj IGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yNl9udW1lcmljcy9yYW5kb20vdW5pZm9ybV9pbnRf ZGlzdHJpYnV0aW9uL29wZXJhdG9ycy92YWx1ZXMuY2MKaW5kZXggYzFlNGI0OTQ0Y2MuLmVlMWVh N2ViZTVmIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzI2X251bWVyaWNzL3Jh bmRvbS91bmlmb3JtX2ludF9kaXN0cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYworKysgYi9s aWJzdGRjKystdjMvdGVzdHN1aXRlLzI2X251bWVyaWNzL3JhbmRvbS91bmlmb3JtX2ludF9kaXN0 cmlidXRpb24vb3BlcmF0b3JzL3ZhbHVlcy5jYwpAQCAtMjQsNiArMjQsMTQgQEAKICNpbmNsdWRl IDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHRlc3RzdWl0ZV9yYW5kb20uaD4KIAorLy8geyBkZy1h ZGRpdGlvbmFsLW9wdGlvbnMgIi1EU0lNVUxBVE9SX1RFU1QiIHsgdGFyZ2V0IHNpbXVsYXRvciB9 IH0KKworI2lmZGVmIFNJTVVMQVRPUl9URVNUCisjIGRlZmluZSBBUkdTIDEwMCwgMTAwMAorI2Vs c2UKKyMgZGVmaW5lIEFSR1MKKyNlbmRpZgorCiB2b2lkIHRlc3QwMSgpCiB7CiAgIHVzaW5nIG5h bWVzcGFjZSBfX2dudV90ZXN0OwpAQCAtMzIsMTUgKzQwLDE1IEBAIHZvaWQgdGVzdDAxKCkKIAog ICBzdGQ6OnVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjw+IHVpZDEoMCwgMik7CiAgIGF1dG8gYnVp ZDEgPSBzdGQ6OmJpbmQodWlkMSwgZW5nKTsKLSAgdGVzdERpc2NyZXRlRGlzdChidWlkMSwgW10o aW50IG4pIHsgcmV0dXJuIHVuaWZvcm1faW50X3BkZihuLCAwLCAyKTsgfSApOworICB0ZXN0RGlz Y3JldGVEaXN0PEFSR1M+KGJ1aWQxLCBbXShpbnQgbikgeyByZXR1cm4gdW5pZm9ybV9pbnRfcGRm KG4sIDAsIDIpOyB9ICk7CiAKICAgc3RkOjp1bmlmb3JtX2ludF9kaXN0cmlidXRpb248PiB1aWQy KDMsIDcpOwogICBhdXRvIGJ1aWQyID0gc3RkOjpiaW5kKHVpZDIsIGVuZyk7Ci0gIHRlc3REaXNj cmV0ZURpc3QoYnVpZDIsIFtdKGludCBuKSB7IHJldHVybiB1bmlmb3JtX2ludF9wZGYobiwgMywg Nyk7IH0gKTsKKyAgdGVzdERpc2NyZXRlRGlzdDxBUkdTPihidWlkMiwgW10oaW50IG4pIHsgcmV0 dXJuIHVuaWZvcm1faW50X3BkZihuLCAzLCA3KTsgfSApOwogCiAgIHN0ZDo6dW5pZm9ybV9pbnRf ZGlzdHJpYnV0aW9uPD4gdWlkMygxLCAyMCk7CiAgIGF1dG8gYnVpZDMgPSBzdGQ6OmJpbmQodWlk MywgZW5nKTsKLSAgdGVzdERpc2NyZXRlRGlzdChidWlkMywgW10oaW50IG4pIHsgcmV0dXJuIHVu aWZvcm1faW50X3BkZihuLCAxLCAyMCk7IH0gKTsKKyAgdGVzdERpc2NyZXRlRGlzdDxBUkdTPihi dWlkMywgW10oaW50IG4pIHsgcmV0dXJuIHVuaWZvcm1faW50X3BkZihuLCAxLCAyMCk7IH0gKTsK IH0KIAogaW50IG1haW4oKQo= --00000000000029defb05df72d6c8--