Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o9sQf-0004X3-2x for pgsql-hackers@arkaria.postgresql.org; Fri, 08 Jul 2022 18:10:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1o9sQc-00054c-Oc for pgsql-hackers@arkaria.postgresql.org; Fri, 08 Jul 2022 18:10:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o9sQc-00053t-9Q for pgsql-hackers@lists.postgresql.org; Fri, 08 Jul 2022 18:10:10 +0000 Received: from mail-ua1-x933.google.com ([2607:f8b0:4864:20::933]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1o9sQZ-0006f3-PB for pgsql-hackers@postgresql.org; Fri, 08 Jul 2022 18:10:09 +0000 Received: by mail-ua1-x933.google.com with SMTP id l7so8422746ual.9 for ; Fri, 08 Jul 2022 11:10:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lELC1SyuFo+BCiPstS7scOFTQC17TemryrAHx5kvsRE=; b=OZu0W5QImRy9d1f+WgltfIZOeMZQ+5ICxabNiX14BJtaFeQbzPPxOIYCxn/lU/Fy6e GJbOtMpf9G5BjVxrm+Ihk97+j9gXz9KbFh6TdRaX+fIFlKF55gAY/oPdNkmwwB9H03tQ uiMyxRBzGv6tDIb6kWLVqz/cj1a073k7hUdqNE2GKZoawuVZjDf/SQzeLnnJmK35vtzG xUbusPO+h1nGRtf1BVoso9x6rtL84Hqg2MgG2D08dTFNHbhwv6xIM41U/DkVXIY9qpRX CA4Jk5l31m4SgK5tk8xVlaR5qgwAWJWViNebhVUC0bjhyXRuHkKSxICO3/cEnnQjmWK+ p9zw== 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=lELC1SyuFo+BCiPstS7scOFTQC17TemryrAHx5kvsRE=; b=V0EkCBKUxdAxxHH/klqr/XhUb4+3Y+wbdxyWW3KMFB/9sDSjI9odE19VQKXWTfCNg2 dpN9hvbT9Qx7Mv1qRYRbMJ0mG9RzgyOBuvfCMs7eatc1H29j1sb8oG8ojpme9/2h8yQQ jD2do3ZB43rsqhmWkllaLwsBqWdWHQd6/yJjom+AMKUXIpDxM8J1lYX+wt3BuielwO2D qeqMQXZV/giOL7PLqKFf3aT1at5QEuXmwbOQyTXX/HwjyjRvYyokUGEAr4+0VQAd8GZk xK0f70zvTWStswH3MsUfXm7aDVvFvwJG2xrAQZuw0kcl1o2z3kms/5C6F15XkVeioAc1 jGAQ== X-Gm-Message-State: AJIora8AplnFNR3kGFb7l0Vb9669bpu5+PexLjamhhzIYXeD44eWrfbD IIP5IlQX2ZNvsRQ8xM5zAf+0pTN0o9/7FBUBYkM= X-Google-Smtp-Source: AGRyM1uFOIAL97ieGzEcfndIjityb8yIEUo7MKHxO0liil67D2qOlWrWquvFNsNHIncTPB7iJEGHvljvT2N0pg2d02E= X-Received: by 2002:ab0:6512:0:b0:383:4aa:b452 with SMTP id w18-20020ab06512000000b0038304aab452mr2084089uam.55.1657303805681; Fri, 08 Jul 2022 11:10:05 -0700 (PDT) MIME-Version: 1.0 References: <603c8f070905281830g2e5419c4xad2946d149e21f9d@mail.gmail.com> <4A1F4FD5.7060204@timbira.com> <4A249CE9.6050708@cheapcomplexdevices.com> <1243950060.23910.58.camel@ebony.2ndQuadrant> <11926.1243953507@sss.pgh.pa.us> In-Reply-To: From: Ibrar Ahmed Date: Fri, 8 Jul 2022 23:09:28 +0500 Message-ID: Subject: Re: explain analyze rows=%.0f To: Amit Kapila Cc: "David G. Johnston" , "pgsql-hackers@postgresql.org" , Robert Haas , Simon Riggs , Ron Mayer , Euler Taveira de Oliveira , Tom Lane Content-Type: multipart/mixed; boundary="0000000000009f77e205e34f1cef" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009f77e205e34f1cef Content-Type: multipart/alternative; boundary="0000000000009f77e105e34f1ced" --0000000000009f77e105e34f1ced Content-Type: text/plain; charset="UTF-8" On Thu, Jul 7, 2022 at 2:41 PM Amit Kapila wrote: > On Thu, Jun 23, 2022 at 2:25 AM Ibrar Ahmed wrote: > > > > On Thu, Jun 23, 2022 at 1:04 AM David G. Johnston < > david.g.johnston@gmail.com> wrote: > >> > >> - WRITE_FLOAT_FIELD(rows, "%.0f"); > >> + WRITE_FLOAT_FIELD(rows, "%.2f"); > >> > >> This one looks suspicious, though I haven't dug into the code to see > exactly what all is being touched. That it doesn't have an nloops > condition like everything else stands out. > >> > > I was also thinking about that, but I don't see any harm when we > ultimately truncating that decimal > > at a latter stage of code in case of loop = 1. > > > > That change is in the path node which we anyway not going to target as > part of this change. We only want to change the display for actual > rows in Explain Analyze. So, I can't see how the quoted change can > help in any way. > > Agreed removed. > Few miscellaneous comments: > ======================== > * > static FullTransactionId XactTopFullTransactionId = > {InvalidTransactionId}; > -static int nParallelCurrentXids = 0; > +static int nParallelCurrentXids = 0; > > Removed. > I don't see why this change is required. > > * Can you please add a comment explaining why we are making this > change for actual rows? > Done > > * Can you please write a test case unless there is some existing test > that covers the change by displaying actual rows values in decimal but > in that case patch should have that changed output test? If you don't > think we can reliably write such a test then please let me know the > reason? > > I think there are tests, and I have updated the results accordingly. > -- > With Regards, > Amit Kapila. > -- Ibrar Ahmed --0000000000009f77e105e34f1ced Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Thu, Jul 7, 2022 at 2:41 PM Amit = Kapila <amit.kapila16@gmail.c= om> wrote:
ibrar.ahmad@gmail.com> wrote:
>
> On Thu, Jun 23, 2022 at 1:04 AM David G. Johnston <david.g.johnston@gmail.com<= /a>> wrote:
>>
>> - WRITE_FLOAT_FIELD(rows, "%.0f");
>> + WRITE_FLOAT_FIELD(rows, "%.2f");
>>
>> This one looks suspicious, though I haven't dug into the code = to see exactly what all is being touched.=C2=A0 That it doesn't have an= nloops condition like everything else stands out.
>>
> I was also thinking about that, but I don't see any harm when we u= ltimately truncating that decimal
> at a latter stage of code in case of loop =3D 1.
>

That change is in the path node which we anyway not going to target as
part of this change. We only want to change the display for actual
rows in Explain Analyze. So, I can't see how the quoted change can
help in any way.

Few miscellaneous comments:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D *
=C2=A0static FullTransactionId XactTopFullTransactionId =3D {InvalidTransac= tionId};
-static int nParallelCurrentXids =3D 0;
+static int nParallelCurrentXids =3D 0;

Removed.
=C2=A0
I don't see why this change is required.

* Can you please add a comment explaining why we are making this
change for actual rows?

Done

* Can you please write a test case unless there is some existing test
that covers the change by displaying actual rows values in decimal but
in that case patch should have that changed output test? If you don't think we can reliably write such a test then please let me know the
reason?

I think there are tests, and I have updated the results a= ccordingly.=C2=A0
--
With Regards,
Amit Kapila.


--
Ibrar Ahmed
--0000000000009f77e105e34f1ced-- --0000000000009f77e205e34f1cef Content-Type: application/octet-stream; name="explain_float_row_v3.patch" Content-Disposition: attachment; filename="explain_float_row_v3.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l5crv7wn0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYwppbmRleCBlMjljMmFlMjA2Li5hZTA3OGQ4NmRlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvZXhwbGFpbi5jCkBAIC0xMyw2ICsxMyw4IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgogCisjaW5jbHVkZSA8bWF0aC5oPgorCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jcmVhdGVhcy5o IgpAQCAtNTQsNiArNTYsOSBAQCBleHBsYWluX2dldF9pbmRleF9uYW1lX2hvb2tfdHlwZSBleHBs YWluX2dldF9pbmRleF9uYW1lX2hvb2sgPSBOVUxMOwogI2RlZmluZSBYX0NMT1NFX0lNTUVESUFU RSAyCiAjZGVmaW5lIFhfTk9XSElURVNQQUNFIDQKIAorLyogQ2hlY2sgaWYgZmxvYXQvZG91Ymxl IGhhcyBhbnkgZGVjaW1hbCBudW1iZXIgKi8KKyNkZWZpbmUgSEFTX0RFQ0lNQUwoeCkgKGZsb29y KHgpICE9IHgpCisKIHN0YXRpYyB2b2lkIEV4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGlu dCBjdXJzb3JPcHRpb25zLAogCQkJCQkJCUludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAq ZXMsCiAJCQkJCQkJY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsIFBhcmFtTGlzdEluZm8gcGFyYW1z LApAQCAtMTY0MywxNiArMTY0OCwyOSBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0 ZSwgTGlzdCAqYW5jZXN0b3JzLAogCQlkb3VibGUJCXRvdGFsX21zID0gMTAwMC4wICogcGxhbnN0 YXRlLT5pbnN0cnVtZW50LT50b3RhbCAvIG5sb29wczsKIAkJZG91YmxlCQlyb3dzID0gcGxhbnN0 YXRlLT5pbnN0cnVtZW50LT5udHVwbGVzIC8gbmxvb3BzOwogCisJCS8qCisJCSAqIElmIHRoZSBu dW1iZXIgb2YgbG9vcHMgaXMgZ3JlYXRlciB0aGFuIG9uZSwgZGlzcGxheSB0aGUKKwkJICogYWN0 dWFsIHJvd3MgdXAgdG8gdHdvIGRlY2ltYWwgcGxhY2VzIGluc3RlYWQgb2Ygcm91bmRpbmcKKwkJ ICogb2ZmIHRoZSB2YWx1ZS4KKwkJICovCiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9S TUFUX1RFWFQpCiAJCXsKIAkJCWlmIChlcy0+dGltaW5nKQorCQkJeworCQkJCWFwcGVuZFN0cmlu Z0luZm8oZXMtPnN0ciwgIiAoYWN0dWFsIHRpbWU9JS4zZi4uJS4zZiIsCisJCQkJCQkJCSBzdGFy dHVwX21zLCB0b3RhbF9tcyk7CiAJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLAotCQkJCQkJ CQkgIiAoYWN0dWFsIHRpbWU9JS4zZi4uJS4zZiByb3dzPSUuMGYgbG9vcHM9JS4wZikiLAotCQkJ CQkJCQkgc3RhcnR1cF9tcywgdG90YWxfbXMsIHJvd3MsIG5sb29wcyk7CisJCQkJCQkJCSAobmxv b3BzID09IDEgfHwgIUhBU19ERUNJTUFMKHJvd3MpKSA/CisJCQkJCQkJCSAiIHJvd3M9JS4wZiBs b29wcz0lLjBmKSIgOiAiIHJvd3M9JS4yZiBsb29wcz0lLjBmKSIsCisJCQkJCQkJCSByb3dzLCBu bG9vcHMpOworCQkJfQogCQkJZWxzZQorCQkJewogCQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0 ciwKLQkJCQkJCQkJICIgKGFjdHVhbCByb3dzPSUuMGYgbG9vcHM9JS4wZikiLAorCQkJCQkJCQkg KG5sb29wcyA9PSAxIHx8ICFIQVNfREVDSU1BTChyb3dzKSkgPworCQkJCQkJCQkgIiAoYWN0dWFs IHJvd3M9JS4wZiBsb29wcz0lLjBmKSIgOiAiIChhY3R1YWwgcm93cz0lLjJmIGxvb3BzPSUuMGYp IiwKIAkJCQkJCQkJIHJvd3MsIG5sb29wcyk7CisJCQl9CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0x NjYzLDcgKzE2ODEsNyBAQCBFeHBsYWluTm9kZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgTGlzdCAq YW5jZXN0b3JzLAogCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgVG90YWwgVGltZSIs ICJtcyIsIHRvdGFsX21zLAogCQkJCQkJCQkJIDMsIGVzKTsKIAkJCX0KLQkJCUV4cGxhaW5Qcm9w ZXJ0eUZsb2F0KCJBY3R1YWwgUm93cyIsIE5VTEwsIHJvd3MsIDAsIGVzKTsKKwkJCUV4cGxhaW5Q cm9wZXJ0eUZsb2F0KCJBY3R1YWwgUm93cyIsIE5VTEwsIHJvd3MsIChubG9vcHMgPT0gMSB8fCAh SEFTX0RFQ0lNQUwocm93cykpID8gMCA6IDIsIGVzKTsKIAkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0 KCJBY3R1YWwgTG9vcHMiLCBOVUxMLCBubG9vcHMsIDAsIGVzKTsKIAkJfQogCX0KQEAgLTE3MDcs MTggKzE3MjUsMzAgQEAgRXhwbGFpbk5vZGUoUGxhblN0YXRlICpwbGFuc3RhdGUsIExpc3QgKmFu Y2VzdG9ycywKIAkJCXJvd3MgPSBpbnN0cnVtZW50LT5udHVwbGVzIC8gbmxvb3BzOwogCiAJCQlF eHBsYWluT3BlbldvcmtlcihuLCBlcyk7CisJCQkvKgorCQkJICogSWYgdGhlIG51bWJlciBvZiBs b29wcyBpcyBncmVhdGVyIHRoYW4gb25lLCBkaXNwbGF5IHRoZQorCQkJICogYWN0dWFsIHJvd3Mg dXAgdG8gdHdvIGRlY2ltYWwgcGxhY2VzIGluc3RlYWQgb2Ygcm91bmRpbmcKKwkJCSAqIG9mZiB0 aGUgdmFsdWUuCisJCQkgKi8KIAogCQkJaWYgKGVzLT5mb3JtYXQgPT0gRVhQTEFJTl9GT1JNQVRf VEVYVCkKIAkJCXsKIAkJCQlFeHBsYWluSW5kZW50VGV4dChlcyk7CiAJCQkJaWYgKGVzLT50aW1p bmcpCisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICJhY3R1YWwgdGltZT0l LjNmLi4lLjNmIiwKKwkJCQkJCQkJCSBzdGFydHVwX21zLCB0b3RhbF9tcyk7CiAJCQkJCWFwcGVu ZFN0cmluZ0luZm8oZXMtPnN0ciwKLQkJCQkJCQkJCSAiYWN0dWFsIHRpbWU9JS4zZi4uJS4zZiBy b3dzPSUuMGYgbG9vcHM9JS4wZlxuIiwKLQkJCQkJCQkJCSBzdGFydHVwX21zLCB0b3RhbF9tcywg cm93cywgbmxvb3BzKTsKKwkJCQkJCQkJCSAobmxvb3BzID09IDEgfHwgIUhBU19ERUNJTUFMKHJv d3MpKSA/CisJCQkJCQkJCQkgIiByb3dzPSUuMGYgbG9vcHM9JS4wZiIgOiAiIHJvd3M9JS4yZiBs b29wcz0lLjBmIiwKKwkJCQkJCQkJCSByb3dzLCBubG9vcHMpOworCQkJCX0KIAkJCQllbHNlCi0J CQkJCWFwcGVuZFN0cmluZ0luZm8oZXMtPnN0ciwKLQkJCQkJCQkJCSAiYWN0dWFsIHJvd3M9JS4w ZiBsb29wcz0lLjBmXG4iLAorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbyhlcy0+c3RyLCAo bmxvb3BzID09IDEgfHwgIUhBU19ERUNJTUFMKHJvd3MpKSA/CisJCQkJCQkJCQkgImFjdHVhbCBy b3dzPSUuMGYgbG9vcHM9JS4wZiIgOiAiYWN0dWFsIHJvd3M9JS4yZiBsb29wcz0lLjBmIiwKIAkJ CQkJCQkJCSByb3dzLCBubG9vcHMpOworCQkJCX0KIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTE3 MjksNyArMTc1OSw4IEBAIEV4cGxhaW5Ob2RlKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICph bmNlc3RvcnMsCiAJCQkJCUV4cGxhaW5Qcm9wZXJ0eUZsb2F0KCJBY3R1YWwgVG90YWwgVGltZSIs ICJtcyIsCiAJCQkJCQkJCQkJIHRvdGFsX21zLCAzLCBlcyk7CiAJCQkJfQotCQkJCUV4cGxhaW5Q cm9wZXJ0eUZsb2F0KCJBY3R1YWwgUm93cyIsIE5VTEwsIHJvd3MsIDAsIGVzKTsKKwkJCQlFeHBs YWluUHJvcGVydHlGbG9hdCgiQWN0dWFsIFJvd3MiLCBOVUxMLCByb3dzLCAKKwkJCQkJCShubG9v cHMgPT0gMSB8fCAhSEFTX0RFQ0lNQUwocm93cykpID8gMCA6IDIsIGVzKTsKIAkJCQlFeHBsYWlu UHJvcGVydHlGbG9hdCgiQWN0dWFsIExvb3BzIiwgTlVMTCwgbmxvb3BzLCAwLCBlcyk7CiAJCQl9 CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5l Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAppbmRl eCA3NTU1NzY0Yzc3Li4wMDJlNWNjMzNkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wYXJ0aXRpb25fcHJ1bmUub3V0CkBAIC0yNjM1LDE0ICsyNjM1LDE0IEBAIG9yZGVyIGJ5IHRi bDEuY29sMSwgdHBydC5jb2wxOwogaW5zZXJ0IGludG8gdGJsMSB2YWx1ZXMgKDEwMDEpLCAoMTAx MCksICgxMDExKTsKIGV4cGxhaW4gKGFuYWx5emUsIGNvc3RzIG9mZiwgc3VtbWFyeSBvZmYsIHRp bWluZyBvZmYpCiBzZWxlY3QgKiBmcm9tIHRibDEgaW5uZXIgam9pbiB0cHJ0IG9uIHRibDEuY29s MSA+IHRwcnQuY29sMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AgKGFj dHVhbCByb3dzPTIzIGxvb3BzPTEpCiAgICAtPiAgU2VxIFNjYW4gb24gdGJsMSAoYWN0dWFsIHJv d3M9NSBsb29wcz0xKQotICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9NSBsb29wcz01KQorICAg LT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9NC42MCBsb29wcz01KQogICAgICAgICAgLT4gIEluZGV4 IFNjYW4gdXNpbmcgdHBydDFfaWR4IG9uIHRwcnRfMSAoYWN0dWFsIHJvd3M9MiBsb29wcz01KQog ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGNvbDEgPCB0YmwxLmNvbDEpCi0gICAgICAgICAt PiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Ml9pZHggb24gdHBydF8yIChhY3R1YWwgcm93cz0zIGxv b3BzPTQpCisgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0cHJ0Ml9pZHggb24gdHBydF8y IChhY3R1YWwgcm93cz0yLjc1IGxvb3BzPTQpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo Y29sMSA8IHRibDEuY29sMSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQzX2lk eCBvbiB0cHJ0XzMgKGFjdHVhbCByb3dzPTEgbG9vcHM9MikKICAgICAgICAgICAgICAgIEluZGV4 IENvbmQ6IChjb2wxIDwgdGJsMS5jb2wxKQpAQCAtMjY1NiwxNiArMjY1NiwxNiBAQCBzZWxlY3Qg KiBmcm9tIHRibDEgaW5uZXIgam9pbiB0cHJ0IG9uIHRibDEuY29sMSA+IHRwcnQuY29sMTsKIAog ZXhwbGFpbiAoYW5hbHl6ZSwgY29zdHMgb2ZmLCBzdW1tYXJ5IG9mZiwgdGltaW5nIG9mZikKIHNl bGVjdCAqIGZyb20gdGJsMSBpbm5lciBqb2luIHRwcnQgb24gdGJsMS5jb2wxID0gdHBydC5jb2wx OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJvd3M9MyBs b29wcz0xKQogICAgLT4gIFNlcSBTY2FuIG9uIHRibDEgKGFjdHVhbCByb3dzPTUgbG9vcHM9MSkK LSAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTEgbG9vcHM9NSkKKyAgIC0+ICBBcHBlbmQgKGFj dHVhbCByb3dzPTAuNjAgbG9vcHM9NSkKICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRw cnQxX2lkeCBvbiB0cHJ0XzEgKG5ldmVyIGV4ZWN1dGVkKQogICAgICAgICAgICAgICAgSW5kZXgg Q29uZDogKGNvbDEgPSB0YmwxLmNvbDEpCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyB0 cHJ0Ml9pZHggb24gdHBydF8yIChhY3R1YWwgcm93cz0xIGxvb3BzPTIpCiAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEuY29sMSkKLSAgICAgICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIHRwcnQzX2lkeCBvbiB0cHJ0XzMgKGFjdHVhbCByb3dzPTAgbG9vcHM9MykKKyAgICAg ICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIHRwcnQzX2lkeCBvbiB0cHJ0XzMgKGFjdHVhbCByb3dz PTAuMzMgbG9vcHM9MykKICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChjb2wxID0gdGJsMS5j b2wxKQogICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgdHBydDRfaWR4IG9uIHRwcnRfNCAo bmV2ZXIgZXhlY3V0ZWQpCiAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoY29sMSA9IHRibDEu Y29sMSkK --0000000000009f77e205e34f1cef--