From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) by sourceware.org (Postfix) with ESMTPS id 0F37A3858D33; Sun, 31 Mar 2024 12:08:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0F37A3858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0F37A3858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::630 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711886934; cv=none; b=TwxqRm+oz37/XfzODNfZvIj0b/5G7hxjpT2CvcImyinqU7H0r8odtt4HoAEywjDI1QWlld8+GK2edNIs/4KjKmRrg+vRGDtfhcNtBO2r7fgSeqF4LB49JbViJ5f4gd8XILVjCoQZY14R0WZXomA+raonY/scWHW1k/M1WqAml9M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711886934; c=relaxed/simple; bh=vjggwZ7gFRYhjNWXT2zzavsJ+tihgwLOKD6GiawTTMw=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=CQR6tUKTVlUizQSjPPUVGnw8DknaqWKXUXawa/Qz8U66DyV6RRLWilA49VAc5qgp62kr3MLTVFREVlz6t1zWdG4HQxEe6ohW7ALl9x7hy99fmX5V3bsUX8Fuy8LPpux8kth+ZH9/WmcQGeI/grcm7eROVtRHLVmwQxIQHB9vpaA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1e0ae065d24so26362215ad.1; Sun, 31 Mar 2024 05:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711886930; x=1712491730; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zuyZuWk6z1UzlR4EBUZEFCtvjQr1zjU4ja1g3kHFspg=; b=bhyT6KfNu3N1Tou7xj37fRG2QBEMbwhYLPSjHhoBBvjgEdhmLcV7ZHV/OutYE57o8Q KXZs/KY86AyWdm7POHzGr9kxskt5YjibBGkHVD4DWZwk6upHGWCu3ynGRqlhLLqSNGbm W2JNfku8TXjHPdTGjuz0vWV+4uLcCdUnt/bvdycyWcKcK0Tgil43gbQ53xLm7XMcDHx0 bdpqBEEgdvclW4f2B15lW8ZHuFVlD7GCbDeeRKwSe0XhqL43gUSxI3XwflQCzkHch8Uw Jb3Wf5AaT/dW2Tw6hQrU1kzsJlBuWnikQp0BWIWZQvWzGrClQcNJ5tgxBh9gUW6WaU7O C3+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711886930; x=1712491730; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zuyZuWk6z1UzlR4EBUZEFCtvjQr1zjU4ja1g3kHFspg=; b=RNMI/9l/ERiE3n7UFQ3gYpnUrhjVEEul9wgH1G47E2R7Ohs/n2TNneB03aPVIH9KkK SFdx5podWEKins7eHHhWu6a4kHy84ePSrPsurHDbJ02UQrpPpLj3goubO6JI3GQBai0g soBtZoHeNFCljltuGsXjM1v6m8dF+fFjoY+7vcQye0D4oMwtB5lE8ms/MNFW1aPkTBV9 evBzXwHQUlBdGMrqzBJ9sQX7W9J1kQxYT4CtwaoRsKssvfjrRcBtB6ORv56IigPWHPdQ KAl7QVCCzXyL3GMC3pD0o4icyiI9H8TiCCxVqhjDLpYEk/ApDyWH9406XN78WFl8Hy/T JBpQ== X-Forwarded-Encrypted: i=1; AJvYcCUNQp6weHe/rZcQ8hhl8cSLHJeDd/EHCV4vwamCaYY/a1OeVGba4iEYRnp50e40YnJ8P6RfslW5MfKUGARJGdomb0RGkY3RdQ== X-Gm-Message-State: AOJu0YzlnRJj4pTBHL9B1+z7+ihpwYA/0JyzJrauudVg0Ef1LZFXkbsw iaBWjHJ6hhVQ6mPfpSVoOSpGEQIsXYFSuhugy02XRgQ336yhBvVE/qmDnNq9UhzYUz0oGhqb9Yk M0GCsL7sNzEY88FI+GWUq94/FUec= X-Google-Smtp-Source: AGHT+IHn0oszkB/WWgqIyQi15e4/DNAdfmqlDE818NtPj0Rh2SGV0iqp2QvD5PMQlFbDbILXYwKQj2HNn0ZUecDP/hs= X-Received: by 2002:a17:902:eb8f:b0:1e2:45ed:6b8c with SMTP id q15-20020a170902eb8f00b001e245ed6b8cmr3344152plg.11.1711886930484; Sun, 31 Mar 2024 05:08:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Paul Richard Thomas Date: Sun, 31 Mar 2024 12:08:38 +0000 Message-ID: Subject: Re: [Patch, fortran] PR112407 - [13/14 Regression] Fix for PR37336 triggers an ICE in gfc_format_decoder while constructing a vtab To: Harald Anlauf Cc: "fortran@gcc.gnu.org" , gcc-patches , trnka@scm.com Content-Type: multipart/mixed; boundary="000000000000634f480614f3bc94" X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000634f480614f3bc94 Content-Type: multipart/alternative; boundary="000000000000634f450614f3bc92" --000000000000634f450614f3bc92 Content-Type: text/plain; charset="UTF-8" Hi Harald, > > I had only a quick glance at your patch. I guess you unintentionally > forgot to remove those parts that you already committed for PR110987, > along with the finalize-testcases. > Guilty as charged. I guess I got out of the wrong side of the bed :-) > > I am still trying to find the precise paragraph in the standard > you refer to regarding INTENT(OUT) and default initialization. > Page 114 of the draft F2023 standard: "The INTENT (OUT) attribute for a nonpointer dummy argument specifies that the dummy argument becomes undefined on invocation of the procedure, except for any subcomponents that are default-initialized (7.5.4.6)." With the fix, gfortran behaves in the same way as ifort and nagfor. On rereading the patch, I think that s/"and use the passed value"/"and leave undefined"/ or some such is in order. > While at it, I think I found a minor nit in testcase pr112407a.f90: > component x%i appears undefined the first time it is printed. > Fixed - thanks for pointing it out. A correct patch is attached. Thanks for looking at the previous, overloaded version. Paul > > > 2024-03-30 Paul Thomas > > > > gcc/fortran > > PR fortran/112407 > > *resolve.cc (resolve_procedure_expression): Change the test for > > for recursion in the case of hidden procedures from modules. > > (resolve_typebound_static): Add warning for possible recursive > > calls to typebound procedures. > > * trans-expr.cc (gfc_trans_class_init_assign): Do not apply > > default initializer to class dummy where component initializers > > are all null. > > > > gcc/testsuite/ > > PR fortran/112407 > > * gfortran.dg/pr112407a.f90: New test. > > * gfortran.dg/pr112407b.f90: New test. > > > > --000000000000634f450614f3bc92-- --000000000000634f480614f3bc94 Content-Type: text/x-patch; charset="US-ASCII"; name="submit.diff" Content-Disposition: attachment; filename="submit.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lufh32v40 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MgYi9nY2MvZm9y dHJhbi9yZXNvbHZlLmNjCmluZGV4IDUwZDUxYjA2YzkyLi40MzMxNWE2YTU1 MCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYworKysgYi9n Y2MvZm9ydHJhbi9yZXNvbHZlLmNjCkBAIC0xOTYzLDEyICsxOTYzLDIwIEBA IHJlc29sdmVfcHJvY2VkdXJlX2V4cHJlc3Npb24gKGdmY19leHByKiBleHBy KQogICAgICAgfHwgKHN5bS0+YXR0ci5mdW5jdGlvbiAmJiBzeW0tPnJlc3Vs dCA9PSBzeW0pKQogICAgIHJldHVybiB0cnVlOwoKLSAgLyogQSBub24tUkVD VVJTSVZFIHByb2NlZHVyZSB0aGF0IGlzIHVzZWQgYXMgcHJvY2VkdXJlIGV4 cHJlc3Npb24gd2l0aGluIGl0cworICAgLyogQSBub24tUkVDVVJTSVZFIHBy b2NlZHVyZSB0aGF0IGlzIHVzZWQgYXMgcHJvY2VkdXJlIGV4cHJlc3Npb24g d2l0aGluIGl0cwogICAgICBvd24gYm9keSBpcyBpbiBkYW5nZXIgb2YgYmVp bmcgY2FsbGVkIHJlY3Vyc2l2ZWx5LiAgKi8KICAgaWYgKGlzX2lsbGVnYWxf cmVjdXJzaW9uIChzeW0sIGdmY19jdXJyZW50X25zKSkKLSAgICBnZmNfd2Fy bmluZyAoMCwgIk5vbi1SRUNVUlNJVkUgcHJvY2VkdXJlICVxcyBhdCAlTCBp cyBwb3NzaWJseSBjYWxsaW5nIgotCQkgIiBpdHNlbGYgcmVjdXJzaXZlbHku ICBEZWNsYXJlIGl0IFJFQ1VSU0lWRSBvciB1c2UiCi0JCSAiICU8LWZyZWN1 cnNpdmUlPiIsIHN5bS0+bmFtZSwgJmV4cHItPndoZXJlKTsKKyAgICB7Cisg ICAgICBpZiAoc3ltLT5hdHRyLnVzZV9hc3NvYyAmJiBleHByLT5zeW10cmVl LT5uYW1lWzBdID09ICdAJykKKwlnZmNfd2FybmluZyAoMCwgIk5vbi1SRUNV UlNJVkUgcHJvY2VkdXJlICVxcyBmcm9tIG1vZHVsZSAlcXMgaXMgIgorCQkg ICAgICIgcG9zc2libHkgY2FsbGluZyBpdHNlbGYgcmVjdXJzaXZlbHkgaW4g cHJvY2VkdXJlICVxcy4gIgorCQkgICAgICIgRGVjbGFyZSBpdCBSRUNVUlNJ VkUgb3IgdXNlICU8LWZyZWN1cnNpdmUlPiIsCisJCSAgICAgc3ltLT5uYW1l LCBzeW0tPm1vZHVsZSwgZ2ZjX2N1cnJlbnRfbnMtPnByb2NfbmFtZS0+bmFt ZSk7CisgICAgICBlbHNlCisJZ2ZjX3dhcm5pbmcgKDAsICJOb24tUkVDVVJT SVZFIHByb2NlZHVyZSAlcXMgYXQgJUwgaXMgcG9zc2libHkgY2FsbGluZyIK KwkJICAgICAiIGl0c2VsZiByZWN1cnNpdmVseS4gIERlY2xhcmUgaXQgUkVD VVJTSVZFIG9yIHVzZSIKKwkJICAgICAiICU8LWZyZWN1cnNpdmUlPiIsIHN5 bS0+bmFtZSwgJmV4cHItPndoZXJlKTsKKyAgICB9CgogICByZXR1cm4gdHJ1 ZTsKIH0KQEAgLTY4MjAsNiArNjgyOCwxMyBAQCByZXNvbHZlX3R5cGVib3Vu ZF9zdGF0aWMgKGdmY19leHByKiBlLCBnZmNfc3ltdHJlZSoqIHRhcmdldCwK ICAgICAgIGlmIChzdCkKIAkqdGFyZ2V0ID0gc3Q7CiAgICAgfQorCisgIGlm IChpc19pbGxlZ2FsX3JlY3Vyc2lvbiAoKCp0YXJnZXQpLT5uLnN5bSwgZ2Zj X2N1cnJlbnRfbnMpCisgICAgICAmJiAhZS0+dmFsdWUuY29tcGNhbGwudGJw LT5kZWZlcnJlZCkKKyAgICBnZmNfd2FybmluZyAoMCwgIk5vbi1SRUNVUlNJ VkUgcHJvY2VkdXJlICVxcyBhdCAlTCBpcyBwb3NzaWJseSBjYWxsaW5nIgor CQkgIiBpdHNlbGYgcmVjdXJzaXZlbHkuICBEZWNsYXJlIGl0IFJFQ1VSU0lW RSBvciB1c2UiCisJCSAiICU8LWZyZWN1cnNpdmUlPiIsICgqdGFyZ2V0KS0+ bi5zeW0tPm5hbWUsICZlLT53aGVyZSk7CisKICAgcmV0dXJuIHRydWU7CiB9 CgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYyBiL2dj Yy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MKaW5kZXggNzZiZWQ5ODMwYzQuLmYz ZmNiYTJiZDU5IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1leHBy LmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MKQEAgLTE3MTks NiArMTcxOSw3IEBAIGdmY190cmFuc19jbGFzc19pbml0X2Fzc2lnbiAoZ2Zj X2NvZGUgKmNvZGUpCiAgIHRyZWUgdG1wOwogICBnZmNfc2UgZHN0LHNyYyxt ZW1zejsKICAgZ2ZjX2V4cHIgKmxocywgKnJocywgKnN6OworICBnZmNfY29t cG9uZW50ICpjbXA7CgogICBnZmNfc3RhcnRfYmxvY2sgKCZibG9jayk7CgpA QCAtMTczNSw2ICsxNzM2LDIxIEBAIGdmY190cmFuc19jbGFzc19pbml0X2Fz c2lnbiAoZ2ZjX2NvZGUgKmNvZGUpCiAgIC8qIFRoZSBfZGVmX2luaXQgaXMg YWx3YXlzIHNjYWxhci4gICovCiAgIHJocy0+cmFuayA9IDA7CgorICAvKiBD aGVjayBkZWZfaW5pdCBmb3IgaW5pdGlhbGl6ZXJzLiAgSWYgdGhpcyBpcyBh IGR1bW15IHdpdGggYWxsIGRlZmF1bHQKKyAgICAgaW5pdGlhbGl6ZXIgY29t cG9uZW50cyBOVUxMLCByZXR1cm4gTlVMTF9UUkVFIGFuZCB1c2UgdGhlIHBh c3NlZCB2YWx1ZSBhcworICAgICByZXF1aXJlZCBieSBGMjAxOCg4LjUuMTAp LiAgKi8KKyAgaWYgKCFsaHMtPnJlZiAmJiBsaHMtPnN5bXRyZWUtPm4uc3lt LT5hdHRyLmR1bW15KQorICAgIHsKKyAgICAgIGNtcCA9IHJocy0+cmVmLT5u ZXh0LT51LmMuY29tcG9uZW50LT50cy51LmRlcml2ZWQtPmNvbXBvbmVudHM7 CisgICAgICBmb3IgKDsgY21wOyBjbXAgPSBjbXAtPm5leHQpCisJeworCSAg aWYgKGNtcC0+aW5pdGlhbGl6ZXIpCisJICAgIGJyZWFrOworCSAgZWxzZSBp ZiAoIWNtcC0+bmV4dCkKKwkgICAgcmV0dXJuIGJ1aWxkX2VtcHR5X3N0bXQg KGlucHV0X2xvY2F0aW9uKTsKKwl9CisgICAgfQorCiAgIGlmIChjb2RlLT5l eHByMS0+dHMudHlwZSA9PSBCVF9DTEFTUwogICAgICAgJiYgQ0xBU1NfREFU QSAoY29kZS0+ZXhwcjEpLT5hdHRyLmRpbWVuc2lvbikKICAgICB7CmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTEyNDA3YS5m OTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTEyNDA3YS5mOTAK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ3MGY0 MTkxNjExCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9wcjExMjQwN2EuZjkwCkBAIC0wLDAgKzEsNzEgQEAKKyEgeyBk Zy1kbyBydW4gfQorISBUZXN0IG9mIGFuIGlzc3VlIGZvdW5kIGluIHRoZSBp bnZlc3RpZ2F0aW9uIG9mIFBSMTEyNDA3CishIENvbnRyaWJ1dGVkIGJ5IFRv bWFzIFRybmthICA8dHJua2FAc2NtLmNvbT4KKyEKK21vZHVsZSBtCisgIHBy aXZhdGUgbmV3X3QKKworICB0eXBlIHMKKyAgICBwcm9jZWR1cmUoKSxwb2lu dGVyLG5vcGFzcyA6OiBvcAorICBlbmQgdHlwZQorCisgIHR5cGUgOjogdAor ICAgIGludGVnZXIgOjogaQorICAgIHR5cGUgKHMpIDo6IHMKKyAgY29udGFp bnMKKyAgICBwcm9jZWR1cmUgOjogbmV3X3QKKyAgICBwcm9jZWR1cmUgOjog YmFyCisgICAgcHJvY2VkdXJlIDo6IGFkZF90CisgICAgZ2VuZXJpYyA6OiBu ZXcgPT4gbmV3X3QsIGJhcgorICAgIGdlbmVyaWMsIHB1YmxpYyA6OiBhc3Np Z25tZW50KD0pID0+IGFkZF90CisgICAgZmluYWwgOjogZmluYWxfdAorICBl bmQgdHlwZQorCisgIGludGVnZXIgOjogaSA9IDAsIGZpbmFscyA9IDAKKwor Y29udGFpbnMKKyAgcmVjdXJzaXZlIHN1YnJvdXRpbmUgbmV3X3QgKGFyZzEs IGFyZzIpCisgICAgY2xhc3ModCksIGludGVudChvdXQpIDo6IGFyZzEKKyAg ICB0eXBlKHQpLCBpbnRlbnQoaW4pICA6OiBhcmcyCisgICAgaSA9IGkgKyAx CisKKyAgICBwcmludCAiKGEsMmk0KSIsICJuZXdfdCIsIGFyZzElaSwgYXJn MiVpCisgICAgaWYgKGkgLmdlLiAxMCkgcmV0dXJuCisKKyEgQWNjb3JkaW5n IHRvIEYyMDE4KDguNS4xMCksIGFyZzEgc2hvdWxkIGJlIHVuZGVmaW5lZCBv biBpbnZvY2F0aW9uLCB1bmxlc3MKKyEgYW55IHN1Yi1jb21wb25lbnRzIGFy ZSBkZWZhdWx0IGluaXRpYWxpc2VkLiBnZmMgdXNlZCB0byBzZXQgYXJnMSVp ID0gMC4KKyAgICBpZiAoYXJnMSVpIC5uZS4gYXJnMiVpKSB0aGVuCisgICAg ICBhcmcxJWkgPSBhcmcyJWkKKyAgICAgIGNhbGwgYXJnMSVuZXcoYXJnMikK KyAgICBlbmRpZgorICBlbmQKKworICBzdWJyb3V0aW5lIGJhcihhcmcpCisg ICAgY2xhc3ModCksIGludGVudChvdXQpIDo6IGFyZworICAgIGNhbGwgYXJn JW5ldyh0KDQyLCBzKG5ld190KSkpCisgIGVuZAorCisgIHN1YnJvdXRpbmUg YWRkX3QgKGFyZzEsIGFyZzIpCisgICAgY2xhc3ModCksIGludGVudChvdXQp IDo6IGFyZzEKKyAgICB0eXBlKHQpLCBpbnRlbnQoaW4pICA6OiBhcmcyCisg ICAgY2FsbCBhcmcxJW5ldyAoYXJnMikKKyAgZW5kCisKKyAgaW1wdXJlIGVs ZW1lbnRhbCBzdWJyb3V0aW5lIGZpbmFsX3QgKGFyZzEpCisgICAgdHlwZSh0 KSwgaW50ZW50KGluKSA6OiBhcmcxCisgICAgZmluYWxzID0gZmluYWxzICsg MQorICBlbmQKK2VuZAorCisgIHVzZSBtCisgIGNsYXNzKHQpLCBhbGxvY2F0 YWJsZSA6OiB4CisgIGFsbG9jYXRlKHgpCisgIHglaSA9IDAKKyAgY2FsbCB4 JW5ldygpICAgICAgICAgICAgICAgICAgICEgZ2ZvcnRyYW4gdXNlZCB0byBv dXRwdXQgMTAqJ25ld190JworICBwcmludCAiKDNpNCkiLCB4JWksIGksIGZp bmFscyAgISAgICAgICAgICAgLXx8LSAgICAgICAgICAwIDEwIDExCishCish IFRoZSBvdGhlciBicmFuZHMgb3V0cHV0IDIqJ25ld190JyArIDQyIDIgMyBh bmQgbm93IHNvIGRvZXMgZ2ZjIDotKQorICBpZiAoeCVpIC5uZS4gNDIpIHN0 b3AgMQorICBpZiAoaSAubmUuIDIpIHN0b3AgMgorICBpZiAoZmluYWxzIC5u ZS4gMykgc3RvcCAzCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvcHIxMTI0MDdiLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvcHIxMTI0MDdiLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZTU0MTgyNWQ2MTYKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3ByMTEyNDA3Yi5mOTAK QEAgLTAsMCArMSw1NiBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISBUZXN0 IG9mIGFuIGlzc3VlIGZvdW5kIGluIHRoZSBpbnZlc3RpZ2F0aW9uIG9mIFBS MTEyNDA3CishIENvbnRyaWJ1dGVkIGJ5IFRvbWFzIFRybmthICA8dHJua2FA c2NtLmNvbT4KKyEKK21vZHVsZSBtCisgIHByaXZhdGUgbmV3X3QKKworICB0 eXBlIHMKKyAgICBwcm9jZWR1cmUoKSxwb2ludGVyLG5vcGFzcyA6OiBvcAor ICBlbmQgdHlwZQorCisgIHR5cGUgOjogdAorICAgIGludGVnZXIgOjogaQor ICAgIHR5cGUgKHMpIDo6IHMKKyAgY29udGFpbnMKKyAgICBwcm9jZWR1cmUg OjogbmV3X3QKKyAgICBwcm9jZWR1cmUgOjogYmFyCisgICAgcHJvY2VkdXJl IDo6IGFkZF90CisgICAgZ2VuZXJpYyA6OiBuZXcgPT4gbmV3X3QsIGJhcgor ICAgIGdlbmVyaWMsIHB1YmxpYyA6OiBhc3NpZ25tZW50KD0pID0+IGFkZF90 CisgICAgZmluYWwgOjogZmluYWxfdAorICBlbmQgdHlwZQorCisgIGludGVn ZXIgOjogaSA9IDAsIGZpbmFscyA9IDAKKworY29udGFpbnMKKyAgc3Vicm91 dGluZSBuZXdfdCAoYXJnMSwgYXJnMikgICAgICAgICAgICAhIGdmb3J0cmFu IGRpZG4ndCBkZXRlY3QgdGhlIHJlY3Vyc2lvbgorICAgIGNsYXNzKHQpLCBp bnRlbnQob3V0KSA6OiBhcmcxCisgICAgdHlwZSh0KSwgaW50ZW50KGluKSAg OjogYXJnMgorICAgIGkgPSBpICsgMQorCisgICAgcHJpbnQgKiwgIm5ld190 IiwgYXJnMSVpLCBhcmcyJWkKKyAgICBpZiAoaSAuZ2UuIDEwKSByZXR1cm4K KworICAgIGlmIChhcmcxJWkgLm5lLiBhcmcyJWkpIHRoZW4KKyAgICAgIGFy ZzElaSA9IGFyZzIlaQorICAgICAgY2FsbCBhcmcxJW5ldyhhcmcyKSAgISB7 IGRnLXdhcm5pbmcgInBvc3NpYmx5IGNhbGxpbmcgaXRzZWxmIHJlY3Vyc2l2 ZWx5IiB9CisgICAgZW5kaWYKKyAgZW5kCisKKyAgc3Vicm91dGluZSBiYXIo YXJnKQorICAgIGNsYXNzKHQpLCBpbnRlbnQob3V0KSA6OiBhcmcKKyAgICBj YWxsIGFyZyVuZXcodCg0MiwgcyhuZXdfdCkpKQorICBlbmQKKworICBzdWJy b3V0aW5lIGFkZF90IChhcmcxLCBhcmcyKQorICAgIGNsYXNzKHQpLCBpbnRl bnQob3V0KSA6OiBhcmcxCisgICAgdHlwZSh0KSwgaW50ZW50KGluKSAgOjog YXJnMgorICAgIGNhbGwgYXJnMSVuZXcgKGFyZzIpCisgIGVuZAorCisgIGlt cHVyZSBlbGVtZW50YWwgc3Vicm91dGluZSBmaW5hbF90IChhcmcxKQorICAg IHR5cGUodCksIGludGVudChpbikgOjogYXJnMQorICAgIGZpbmFscyA9IGZp bmFscyArIDEKKyAgZW5kCitlbmQK --000000000000634f480614f3bc94--