From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id C1A603858D1E; Wed, 20 Mar 2024 20:24:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C1A603858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C1A603858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.17.21 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710966272; cv=none; b=kT++MoVBDHU0MMO7PAyPn+1GCO9c1YCZYcjDzLmbqkIZ1QTmWIR1s81AZuDptHHmybH78q1hI8IcXqn/GmIOt3DK3x64xQhsDhaqDs6mphKkIDfeTsAG9dbsnbrF0tQKVxCbGw06R+k7gP1qvE3/AC9A78rW7uRVAYqN0UZ2voQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710966272; c=relaxed/simple; bh=u6hZsEvxuM2n6CJgTZ6R+B5CCSOG4QRH0UoNAbzmHcY=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Y34NFUX2PqHNIpC/x7zrxl6kGblKgO229+mXeXtCcqz9WJ/U4/mYQkd9btQuy6Nwb6xHANHLpEKGYS3V7oYp/zeNHnr0ddoulNgSJgM4bsZZNXAnRfCIekiKTJwX2LflwDtN7Ewml74NAAnCsJsRVilhCvPtna76H7ISIJfuFfc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1710966262; x=1711571062; i=anlauf@gmx.de; bh=OMJ9a9iK2UxKSo95Ghtqy0KTbK7mNRGTn/evR/Li8BE=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=tqgVUzTs3cRCs9y+J6u0S3l3aY2U8s1QYT3OTIiGEbBNYHUdSaSQ5uRnAZ/tm4uL Wn17Qlym0PuAkzTKIs1QPWzILcUogxgICmYBsGeNg2jao/v/qbmCcFOe8Gb09wSwk MjX+k/gDIAiPQV4FZw8QIRBTJRaRqkhNZhmjDYHJVBd+bdI6MpIc/Ve5LMYFw66HZ JvjN+PoeOGV468paTc94zSYd5EdU/ESNIJXzVeyzLZlEIS3IX2tqCX60z3cd8+aKA SlAT6cjaHz3RFADV0dHk2GE4HFEQhg1B6cFxyGOdqrfvQSd6fiv0qAxSoMOB0XC2U 7Z1XvSLaCaev2G3pRA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.232.154.224]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M4JmT-1rmlMq3yPR-000Iie; Wed, 20 Mar 2024 21:24:22 +0100 Content-Type: multipart/mixed; boundary="------------UHC5JYW5Bs5gkxjAN8EYcDku" Message-ID: <8dd61d1e-a5ed-4305-b483-e845734e8a4d@gmx.de> Date: Wed, 20 Mar 2024 21:24:20 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH, v3] Fortran: improve array component description in runtime error message [PR30802] To: Mikael Morin , sgk@troutmask.apl.washington.edu Cc: fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <67c77b44-79cb-4029-b59a-c92dfad15fa9@orange.fr> <86888cc5-3650-4044-b67d-89aab1631753@gmx.de> <70fc4304-74b4-4d8c-8172-9c3286bc9ada@gmx.de> <50f2a7c0-55af-4079-9f6f-41dc6497c234@orange.fr> <04f84bdb-4589-444a-93af-9e252908da93@orange.fr> <6d15efdc-cc99-4008-b0e7-9091a9cebced@orange.fr> <998a971e-1614-42b8-87c7-6c85c33b16e6@orange.fr> Content-Language: en-US From: Harald Anlauf In-Reply-To: <998a971e-1614-42b8-87c7-6c85c33b16e6@orange.fr> X-Provags-ID: V03:K1:xWH7UkzpSF9XmLwkRFiOrUQ+Vz8WlZp9pJPgqs3VotQj8jhme9y PLUzoxnhoAuuD+35VYY8fNYBaBulirajMZRqnxX/7dm8vKqhfArqZOPHPefzsRwPK5hBLgC ns1w7spyD9XMSnEnT07U+MAO6g7B10AKYD8/gD0rjofIkayxpR9ckGefnxgMYN2zowqVHvX /sk9+3/L9BkTj0VPim/KQ== UI-OutboundReport: notjunk:1;M01:P0:RKHEHarlgzA=;KYKaBhlpAm6R4KLDq+RtwpoR2Rl 9Z/bOvr/KFF2Oh9DEcfes7zLstVQ1FTqWsDMmH4//cmYLgIbdatFJYX4oIfKB0VvoPHhGy8Ef RIu68qs9oJfMZHipRxP9OuFBgz4fwCg3qKhHlXNKmErM4fBEWprn21D/4v3S6ck1ZliK4J/iw Ut0GueSov4cYVowPEFDTa9eUPfWTLC2VgY89SvIw/NDGY37dkSZuHRnKNhsRkWsmwiaStHYvW /0OxSNaroi3YKgxu0GlvgtAoH/KxYxYcJczvkQW83+tXVNflMkk62SbI3/DFCq43V0Am4j11l 05jn+vKHIlBnlTM11OBMzsl1ZUb/x6eJohA6vgx7TvbwG7AYqCve8j9ffHOhSizcQIdmScxrp iNol83xQkyioyHBQ3mWRZTPf/cXnFfID8ZA6h5sxoBSs2xT4JYI0JWTVcR2/0DXnZBkLVcJrf GTT4Y2twDwZTTkCW6rUyEzRIm2+OIldI+t7Q8Z8TQXfQ3SMctIiFXcCIYm6co/jVCddHzDd6v KRtRtHg9V5kvdMl1jSsHD/h7X6SgWA09duZ3wY7ZYmIsIx8HSV6TwlsgxgGfHcq8m+u2SvC9O LZ17jVNXSPgQxs5BTGAmEPaol5WSoOMQ8Df+vmlvINJf+fgMqgHMa7QPoGcos9S+6ZMS3riGi WbMA9zRtLLgKGO5h2fkfni+Pfrw5St9hdrjoCRdLea6hf0jVe/1QOIo/rSngKRUPNKemAPxKt a54vWSqa4U3lX7p/X0xPTM7+74DWiRT2ppfCHVCB5ZTqwcqCnzoyikFA7FZyXuEhSJEwL/IJL Im3oxPm2jzYZidIH8cx6v43pI6Q5ojdG4ae3Y8U6EWfOI= X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: This is a multi-part message in MIME format. --------------UHC5JYW5Bs5gkxjAN8EYcDku Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Mikael, all, here's now the third version of the patch that implements the following scheme: On 3/15/24 20:29, Mikael Morin wrote: > Le 15/03/2024 =C3=A0 18:26, Harald Anlauf a =C3=A9crit=C2=A0: >> OK, that sounds interesting.=C2=A0 To clarify the options: >> >> - for ordinary array x it would stay 'x' >> >> - when z is a DT scalar, and z%x is the array in question, use 'z%x' >> =C2=A0=C2=A0 (here z...%x would look strange to me) >> > Yes, the ellipsis would look strange to me as well. > >> - when z is a DT array, and x some component further down, 'z...%x' >> > This case also applies when z is a DT scalar and x is more than one > level deep. > >> I would rather not make the error message text vary too much to avoid >> to run into issues with translation.=C2=A0 Would it be fine with you to= have >> >> ... dimension 1 of array 'z...%x' above array bound ... >> >> only? >> > OK, let's drop "component". > >> Anything else? >> > No, I think you covered everything. I've created a new helper function that centralizes the generation of the abbreviated name of the array (component) and use it to simplify related code in multiple places. If we change our mind how a bounds violation error message should look like, it will be easier to adjust in the future. Is this OK for 14-mainline? Thanks, Harald --------------UHC5JYW5Bs5gkxjAN8EYcDku Content-Type: text/x-patch; charset=UTF-8; name="pr30802-part2-v3.diff" Content-Disposition: attachment; filename="pr30802-part2-v3.diff" Content-Transfer-Encoding: base64 RnJvbSAzMGQ3Y2VmMDg2ZDQ0MDI2MmIyMDZiYzM5YmNiY2FjODk0OTFiNzkyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBXZWQsIDIwIE1hciAyMDI0IDIwOjU5OjI0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogaW1wcm92ZSBhcnJheSBjb21wb25lbnQgZGVzY3JpcHRpb24gaW4gcnVudGlt ZSBlcnJvcgogbWVzc2FnZSBbUFIzMDgwMl0KClJ1bnRpbWUgZXJyb3IgbWVzc2FnZXMgZm9y IGFycmF5IGJvdW5kcyB2aW9sYXRpb24gc2hhbGwgdXNlIHRoZSBmb2xsb3dpbmcKc2NoZW1l IGZvciBhIGNvaGVyZW50LCBhYnJpZGdlZCBkZXNjcmlwdGlvbiBvZiBhcnJheXMgb3IgYXJy YXkgY29tcG9uZW50cwpvZiBkZXJpdmVkIHR5cGVzOgooMSkgSWYgeCBpcyBhbiBvcmRpbmFy eSBhcnJheSB2YXJpYWJsZSwgdXNlICJ4IgooMikgaWYgeiBpcyBhIERUIHNjYWxhciBhbmQg eCBhbiBhcnJheSBjb21wb25lbnQgYXQgbGV2ZWwgMSwgdXNlICJ6JXgiCigzKSBpZiB6IGlz IGEgRFQgc2NhbGFyIGFuZCB4IGFuIGFycmF5IGNvbXBvbmVudCBhdCBsZXZlbCA+IDEsIG9y CiAgICBpZiB6IGlzIGEgRFQgYXJyYXkgYW5kIHggYW4gYXJyYXkgKGF0IGFueSBsZXZlbCks IHVzZSAiei4uLiV4IgpVc2UgYSBuZXcgaGVscGVyIGZ1bmN0aW9uIGFicmlkZ2VkX3JlZl9u YW1lIGZvciBjb25zdHJ1Y3Rpb24gb2YgdGhhdCBuYW1lLgoKZ2NjL2ZvcnRyYW4vQ2hhbmdl TG9nOgoKCVBSIGZvcnRyYW4vMzA4MDIKCSogdHJhbnMtYXJyYXkuY2MgKGFicmlkZ2VkX3Jl Zl9uYW1lKTogTmV3IGhlbHBlciBmdW5jdGlvbi4KCSh0cmFuc19hcnJheV9ib3VuZF9jaGVj ayk6IFVzZSBpdC4KCShhcnJheV9ib3VuZF9jaGVja19lbGVtZW50YWwpOiBMaWtld2lzZS4K CShnZmNfY29udl9hcnJheV9yZWYpOiBMaWtld2lzZS4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdl TG9nOgoKCVBSIGZvcnRyYW4vMzA4MDIKCSogZ2ZvcnRyYW4uZGcvYm91bmRzX2NoZWNrXzE3 LmY5MDogQWRqdXN0IHBhdHRlcm4uCgkqIGdmb3J0cmFuLmRnL2JvdW5kc19jaGVja19mYWls XzguZjkwOiBOZXcgdGVzdC4KLS0tCiBnY2MvZm9ydHJhbi90cmFucy1hcnJheS5jYyAgICAg ICAgICAgICAgICAgICAgfCAxMzIgKysrKysrKysrKystLS0tLS0tCiBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2JvdW5kc19jaGVja18xNy5mOTAgfCAgIDIgKy0KIC4uLi9nZm9ydHJh bi5kZy9ib3VuZHNfY2hlY2tfZmFpbF84LmY5MCAgICAgICB8ICA1NiArKysrKysrKwogMyBm aWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgNDggZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9ib3VuZHNfY2hlY2tf ZmFpbF84LmY5MAoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjIGIv Z2NjL2ZvcnRyYW4vdHJhbnMtYXJyYXkuY2MKaW5kZXggMGE0NTM4MjhiYWQuLjMwYjg0NzYy MzQ2IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5jYworKysgYi9nY2Mv Zm9ydHJhbi90cmFucy1hcnJheS5jYwpAQCAtMzQ4NSw2ICszNDg1LDc4IEBAIGdmY19jb252 X2FycmF5X3Vib3VuZCAodHJlZSBkZXNjcmlwdG9yLCBpbnQgZGltKQogfQogCiAKKy8qIEdl bmVyYXRlIGFicmlkZ2VkIG5hbWUgb2YgYSBwYXJ0LXJlZiBmb3IgdXNlIGluIGJvdW5kcy1j aGVjayBtZXNzYWdlLgorICAgQ2FzZXM6CisgICAoMSkgZm9yIGFuIG9yZGluYXJ5IGFycmF5 IHZhcmlhYmxlIHggcmV0dXJuICJ4IgorICAgKDIpIGZvciB6IGEgRFQgc2NhbGFyIGFuZCBh cnJheSBjb21wb25lbnQgeCAoYXQgbGV2ZWwgMSkgcmV0dXJuICJ6JSV4IgorICAgKDMpIGZv ciB6IGEgRFQgc2NhbGFyIGFuZCBhcnJheSBjb21wb25lbnQgeCAoYXQgbGV2ZWwgPiAxKSBv cgorICAgICAgIGZvciB6IGEgRFQgYXJyYXkgYW5kIGFycmF5IHggKGF0IGFueSBudW1iZXIg b2YgbGV2ZWxzKTogInouLi4lJXgiCisgKi8KKworc3RhdGljIGNoYXIgKgorYWJyaWRnZWRf cmVmX25hbWUgKGdmY19leHByICogZXhwciwgZ2ZjX2FycmF5X3JlZiAqIGFyKQoreworICBn ZmNfcmVmICpyZWY7CisgIGdmY19zeW1ib2wgKnN5bTsKKyAgY2hhciAqcmVmX25hbWUgPSBO VUxMOworICBjb25zdCBjaGFyICpjb21wX25hbWUgPSBOVUxMOworICBpbnQgbGVuX3N5bSwg bGFzdF9sZW4gPSAwLCBsZXZlbCA9IDA7CisgIGJvb2wgc3ltX2lzX2FycmF5OworCisgIGdj Y19hc3NlcnQgKGV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFICYmIGV4cHItPnJl ZiAhPSBOVUxMKTsKKworICBzeW0gPSBleHByLT5zeW10cmVlLT5uLnN5bTsKKyAgc3ltX2lz X2FycmF5ID0gKHN5bS0+dHMudHlwZSAhPSBCVF9DTEFTUworCQkgID8gc3ltLT5hcyAhPSBO VUxMCisJCSAgOiBJU19DTEFTU19BUlJBWSAoc3ltKSk7CisgIGxlbl9zeW0gPSBzdHJsZW4g KHN5bS0+bmFtZSk7CisKKyAgLyogU2NhbiByZWYgY2hhaW4gdG8gZ2V0IG5hbWUgb2YgdGhl IGFycmF5IGNvbXBvbmVudCAod2hlbiBhciAhPSBOVUxMKSBvcgorICAgICBhcnJheSBzZWN0 aW9uLCBkZXRlcm1pbmUgZGVwdGggYW5kIHJlbWVtYmVyIGl0cyBjb21wb25lbnQgbmFtZS4g ICovCisgIGZvciAocmVmID0gZXhwci0+cmVmOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkKKyAg ICB7CisgICAgICBpZiAocmVmLT50eXBlID09IFJFRl9DT01QT05FTlQKKwkgICYmIHN0cmNt cCAocmVmLT51LmMuY29tcG9uZW50LT5uYW1lLCAiX2RhdGEiKSAhPSAwKQorCXsKKwkgIGxl dmVsKys7CisJICBjb21wX25hbWUgPSByZWYtPnUuYy5jb21wb25lbnQtPm5hbWU7CisJICBj b250aW51ZTsKKwl9CisKKyAgICAgIGlmIChyZWYtPnR5cGUgIT0gUkVGX0FSUkFZKQorCWNv bnRpbnVlOworCisgICAgICBpZiAoYXIpCisJeworCSAgaWYgKCZyZWYtPnUuYXIgPT0gYXIp CisJICAgIGJyZWFrOworCX0KKyAgICAgIGVsc2UgaWYgKHJlZi0+dS5hci50eXBlID09IEFS X1NFQ1RJT04pCisJYnJlYWs7CisgICAgfQorCisgIGlmIChsZXZlbCA+IDApCisgICAgbGFz dF9sZW4gPSBzdHJsZW4gKGNvbXBfbmFtZSk7CisKKyAgLyogUHJvdmlkZSBhIGJ1ZmZlciBz dWZmaWNpZW50bHkgbGFyZ2UgdG8gaG9sZCAieC4uLiUleiIuICAqLworICByZWZfbmFtZSA9 IFhORVdWRUMgKGNoYXIsIGxlbl9zeW0gKyBsYXN0X2xlbiArIDYpOworICBzdHJjcHkgKHJl Zl9uYW1lLCBzeW0tPm5hbWUpOworCisgIGlmIChsZXZlbCA9PSAxICYmICFzeW1faXNfYXJy YXkpCisgICAgeworICAgICAgc3RyY2F0IChyZWZfbmFtZSwgIiUlIik7CisgICAgICBzdHJj YXQgKHJlZl9uYW1lLCBjb21wX25hbWUpOworICAgIH0KKyAgZWxzZSBpZiAobGV2ZWwgPiAw KQorICAgIHsKKyAgICAgIHN0cmNhdCAocmVmX25hbWUsICIuLi4lJSIpOworICAgICAgc3Ry Y2F0IChyZWZfbmFtZSwgY29tcF9uYW1lKTsKKyAgICB9CisKKyAgcmV0dXJuIHJlZl9uYW1l OworfQorCisKIC8qIEdlbmVyYXRlIGNvZGUgdG8gcGVyZm9ybSBhbiBhcnJheSBpbmRleCBi b3VuZCBjaGVjay4gICovCiAKIHN0YXRpYyB0cmVlCkBAIC0zNDk2LDcgKzM1NjgsOSBAQCB0 cmFuc19hcnJheV9ib3VuZF9jaGVjayAoZ2ZjX3NlICogc2UsIGdmY19zcyAqc3MsIHRyZWUg aW5kZXgsIGludCBuLAogICB0cmVlIHRtcF9sbywgdG1wX3VwOwogICB0cmVlIGRlc2NyaXB0 b3I7CiAgIGNoYXIgKm1zZzsKKyAgY2hhciAqcmVmX25hbWUgPSBOVUxMOwogICBjb25zdCBj aGFyICogbmFtZSA9IE5VTEw7CisgIGdmY19leHByICpleHByOwogCiAgIGlmICghKGdmY19v cHRpb24ucnRjaGVjayAmIEdGQ19SVENIRUNLX0JPVU5EUykpCiAgICAgcmV0dXJuIGluZGV4 OwpAQCAtMzUwOSw2ICszNTgzLDEyIEBAIHRyYW5zX2FycmF5X2JvdW5kX2NoZWNrIChnZmNf c2UgKiBzZSwgZ2ZjX3NzICpzcywgdHJlZSBpbmRleCwgaW50IG4sCiAgIG5hbWUgPSBzcy0+ aW5mby0+ZXhwci0+c3ltdHJlZS0+bi5zeW0tPm5hbWU7CiAgIGdjY19hc3NlcnQgKG5hbWUg IT0gTlVMTCk7CiAKKyAgLyogV2hlbiB3ZSBoYXZlIGEgY29tcG9uZW50IHJlZiwgZ2V0IG5h bWUgb2YgdGhlIGFycmF5IHNlY3Rpb24uCisgICAgIE5vdGUgdGhhdCB0aGVyZSBjYW4gb25s eSBiZSBvbmUgcGFydCByZWYuICAqLworICBleHByID0gc3MtPmluZm8tPmV4cHI7CisgIGlm IChleHByLT5yZWYgJiYgIWNvbXBuYW1lKQorICAgIG5hbWUgPSByZWZfbmFtZSA9IGFicmlk Z2VkX3JlZl9uYW1lIChleHByLCBOVUxMKTsKKwogICBpZiAoVkFSX1AgKGRlc2NyaXB0b3Ip KQogICAgIG5hbWUgPSBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoZGVzY3JpcHRv cikpOwogCkBAIC0zNTYyLDYgKzM2NDIsNyBAQCB0cmFuc19hcnJheV9ib3VuZF9jaGVjayAo Z2ZjX3NlICogc2UsIGdmY19zcyAqc3MsIHRyZWUgaW5kZXgsIGludCBuLAogICAgICAgZnJl ZSAobXNnKTsKICAgICB9CiAKKyAgZnJlZSAocmVmX25hbWUpOwogICByZXR1cm4gaW5kZXg7 CiB9CiAKQEAgLTM1NzMsMzYgKzM2NTQsMTcgQEAgYXJyYXlfYm91bmRfY2hlY2tfZWxlbWVu dGFsIChnZmNfc2UgKiBzZSwgZ2ZjX3NzICogc3MsIGdmY19leHByICogZXhwcikKIHsKICAg Z2ZjX2FycmF5X3JlZiAqYXI7CiAgIGdmY19yZWYgKnJlZjsKLSAgZ2ZjX3N5bWJvbCAqc3lt OwogICBjaGFyICp2YXJfbmFtZSA9IE5VTEw7Ci0gIHNpemVfdCBsZW47CiAgIGludCBkaW07 CiAKICAgaWYgKGV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFKQogICAgIHsKLSAg ICAgIHN5bSA9IGV4cHItPnN5bXRyZWUtPm4uc3ltOwotICAgICAgbGVuID0gc3RybGVuIChz eW0tPm5hbWUpICsgMTsKLQotICAgICAgZm9yIChyZWYgPSBleHByLT5yZWY7IHJlZjsgcmVm ID0gcmVmLT5uZXh0KQotCWlmIChyZWYtPnR5cGUgPT0gUkVGX0NPTVBPTkVOVCkKLQkgIGxl biArPSAyICsgc3RybGVuIChyZWYtPnUuYy5jb21wb25lbnQtPm5hbWUpOwotCi0gICAgICB2 YXJfbmFtZSA9IFhBTExPQ0FWRUMgKGNoYXIsIGxlbik7Ci0gICAgICBzdHJjcHkgKHZhcl9u YW1lLCBzeW0tPm5hbWUpOwotCiAgICAgICBmb3IgKHJlZiA9IGV4cHItPnJlZjsgcmVmOyBy ZWYgPSByZWYtPm5leHQpCiAJewotCSAgLyogQXBwZW5kIGNvbXBvbmVudCBuYW1lLiAgKi8K LQkgIGlmIChyZWYtPnR5cGUgPT0gUkVGX0NPTVBPTkVOVCkKLQkgICAgewotCSAgICAgIHN0 cmNhdCAodmFyX25hbWUsICIlJSIpOwotCSAgICAgIHN0cmNhdCAodmFyX25hbWUsIHJlZi0+ dS5jLmNvbXBvbmVudC0+bmFtZSk7Ci0JICAgICAgY29udGludWU7Ci0JICAgIH0KLQogCSAg aWYgKHJlZi0+dHlwZSA9PSBSRUZfQVJSQVkgJiYgcmVmLT51LmFyLnR5cGUgPT0gQVJfU0VD VElPTikKIAkgICAgewogCSAgICAgIGFyID0gJnJlZi0+dS5hcjsKKwkgICAgICB2YXJfbmFt ZSA9IGFicmlkZ2VkX3JlZl9uYW1lIChleHByLCBhcik7CiAJICAgICAgZm9yIChkaW0gPSAw OyBkaW0gPCBhci0+ZGltZW47IGRpbSsrKQogCQl7CiAJCSAgaWYgKGFyLT5kaW1lbl90eXBl W2RpbV0gPT0gRElNRU5fRUxFTUVOVCkKQEAgLTM2MTgsNiArMzY4MCw3IEBAIGFycmF5X2Jv dW5kX2NoZWNrX2VsZW1lbnRhbCAoZ2ZjX3NlICogc2UsIGdmY19zcyAqIHNzLCBnZmNfZXhw ciAqIGV4cHIpCiAJCQkJCSAgICAgICB2YXJfbmFtZSk7CiAJCSAgICB9CiAJCX0KKwkgICAg ICBmcmVlICh2YXJfbmFtZSk7CiAJICAgIH0KIAl9CiAgICAgfQpAQCAtNDAzNCwzMyArNDA5 Nyw3IEBAIGdmY19jb252X2FycmF5X3JlZiAoZ2ZjX3NlICogc2UsIGdmY19hcnJheV9yZWYg KiBhciwgZ2ZjX2V4cHIgKmV4cHIsCiAgICAgfQogCiAgIGlmIChnZmNfb3B0aW9uLnJ0Y2hl Y2sgJiBHRkNfUlRDSEVDS19CT1VORFMpCi0gICAgewotICAgICAgc2l6ZV90IGxlbjsKLSAg ICAgIGdmY19yZWYgKnJlZjsKLQotICAgICAgbGVuID0gc3RybGVuIChzeW0tPm5hbWUpICsg MTsKLSAgICAgIGZvciAocmVmID0gZXhwci0+cmVmOyByZWY7IHJlZiA9IHJlZi0+bmV4dCkK LQl7Ci0JICBpZiAocmVmLT50eXBlID09IFJFRl9BUlJBWSAmJiAmcmVmLT51LmFyID09IGFy KQotCSAgICBicmVhazsKLQkgIGlmIChyZWYtPnR5cGUgPT0gUkVGX0NPTVBPTkVOVCkKLQkg ICAgbGVuICs9IDIgKyBzdHJsZW4gKHJlZi0+dS5jLmNvbXBvbmVudC0+bmFtZSk7Ci0JfQot Ci0gICAgICB2YXJfbmFtZSA9IFhBTExPQ0FWRUMgKGNoYXIsIGxlbik7Ci0gICAgICBzdHJj cHkgKHZhcl9uYW1lLCBzeW0tPm5hbWUpOwotCi0gICAgICBmb3IgKHJlZiA9IGV4cHItPnJl ZjsgcmVmOyByZWYgPSByZWYtPm5leHQpCi0JewotCSAgaWYgKHJlZi0+dHlwZSA9PSBSRUZf QVJSQVkgJiYgJnJlZi0+dS5hciA9PSBhcikKLQkgICAgYnJlYWs7Ci0JICBpZiAocmVmLT50 eXBlID09IFJFRl9DT01QT05FTlQpCi0JICAgIHsKLQkgICAgICBzdHJjYXQgKHZhcl9uYW1l LCAiJSUiKTsKLQkgICAgICBzdHJjYXQgKHZhcl9uYW1lLCByZWYtPnUuYy5jb21wb25lbnQt Pm5hbWUpOwotCSAgICB9Ci0JfQotICAgIH0KKyAgICB2YXJfbmFtZSA9IGFicmlkZ2VkX3Jl Zl9uYW1lIChleHByLCBhcik7CiAKICAgZGVjbCA9IHNlLT5leHByOwogICBpZiAoVU5MSU1J VEVEX1BPTFkoc3ltKQpAQCAtNDE5NSw2ICs0MjMyLDcgQEAgZ2ZjX2NvbnZfYXJyYXlfcmVm IChnZmNfc2UgKiBzZSwgZ2ZjX2FycmF5X3JlZiAqIGFyLCBnZmNfZXhwciAqZXhwciwKIAlk ZWNsID0gTlVMTF9UUkVFOwogICAgIH0KIAorICBmcmVlICh2YXJfbmFtZSk7CiAgIHNlLT5l eHByID0gYnVpbGRfYXJyYXlfcmVmIChzZS0+ZXhwciwgb2Zmc2V0LCBkZWNsLCBzZS0+Y2xh c3NfdnB0cik7CiB9CiAKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Ym91bmRzX2NoZWNrXzE3LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYm91bmRz X2NoZWNrXzE3LmY5MAppbmRleCA1MGQ2NmM3NWE4MC4uZTk3MDcyN2Q3ZDkgMTAwNjQ0Ci0t LSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYm91bmRzX2NoZWNrXzE3LmY5MAorKysg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2JvdW5kc19jaGVja18xNy5mOTAKQEAgLTIz LDQgKzIzLDQgQEAgeihpKSV5KGopJXgoayk9MAogCiBFTkQKIAotISB7IGRnLW91dHB1dCAi QXQgbGluZSAyMiBvZiBmaWxlIC4qYm91bmRzX2NoZWNrXzE3LmY5MC4qRm9ydHJhbiBydW50 aW1lIGVycm9yOiBJbmRleCAnMTEnIG9mIGRpbWVuc2lvbiAxIG9mIGFycmF5ICd6JXkleCcg YWJvdmUgdXBwZXIgYm91bmQgb2YgMTAiIH0KKyEgeyBkZy1vdXRwdXQgIkF0IGxpbmUgMjIg b2YgZmlsZSAuKmJvdW5kc19jaGVja18xNy5mOTAuKkZvcnRyYW4gcnVudGltZSBlcnJvcjog SW5kZXggJzExJyBvZiBkaW1lbnNpb24gMSBvZiBhcnJheSAnelwuXC5cLiV4JyBhYm92ZSB1 cHBlciBib3VuZCBvZiAxMCIgfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9ib3VuZHNfY2hlY2tfZmFpbF84LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvYm91bmRzX2NoZWNrX2ZhaWxfOC5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjdlZTY1OWYwYzdlCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9ib3VuZHNfY2hlY2tfZmFpbF84LmY5MApAQCAtMCwwICsxLDU2 IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICIt ZmNoZWNrPWJvdW5kcyAtZyAtZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQorIQorISBQUiBmb3J0 cmFuLzMwODAyIC0gaW1wcm92ZSBib3VuZHMtY2hlY2tpbmcgZm9yIGFycmF5IHJlZmVyZW5j ZXMKKyEKKyEgVXNlIHByb3BlciBhcnJheSBjb21wb25lbnQgcmVmZXJlbmNlcyBpbiBydW50 aW1lIGVycm9yIG1lc3NhZ2UuCisKK3Byb2dyYW0gdGVzdAorICBpbXBsaWNpdCBub25lCisg IGludGVnZXIgOjogayA9IDAKKyAgdHlwZSB0CisgICAgIHJlYWwsIGRpbWVuc2lvbigxMCwy MCwzMCkgOjogeiA9IDIzCisgIGVuZCB0eXBlIHQKKyAgdHlwZSB1CisgICAgIHR5cGUodCkg OjogdnYoNCw1KQorICAgICBjb21wbGV4IDo6IGNjKDYsNykKKyAgZW5kIHR5cGUgdQorICB0 eXBlIHZlYworICAgICBpbnRlZ2VyIDo6IHh4KDMpID0gWzIsNCw2XQorICBlbmQgdHlwZSB2 ZWMKKyAgdHlwZSh0KSA6OiB1dSwgICAgIHd3KDEpCisgIHR5cGUodSkgOjogeDEsIHgyLCB5 MSgxKSwgeTIoMSkKKworICBwcmludCAqLCB1dSAgICUgeigxLGssOikgICAgICAgICAgICEg cnVudGltZSBjaGVjayBmb3IgZGltZW5zaW9uIDIgb2YgdXUlegorICBwcmludCAqLCB3dygx KSUgeigxLDosaykgICAgICAgICAgICEgcnVudGltZSBjaGVjayBmb3IgZGltZW5zaW9uIDMg b2Ygd3cuLi4legorICBwcmludCAqLCB4MSAgICUgdnYoMiwzKSUgeigxLDosaykgICEgcnVu dGltZSBjaGVjayBmb3IgZGltZW5zaW9uIDMgb2YgeDEuLi4legorICBwcmludCAqLCB4MiAg ICUgdnYoayw6KSUgeigxLDIsMykgICEgcnVudGltZSBjaGVjayBmb3IgZGltZW5zaW9uIDEg b2YgeDIldnYKKyAgcHJpbnQgKiwgeTEoayklIHZ2KDIsMyklIHooayw6LDEpICAhIHJ1bnRp bWUgY2hlY2sgZm9yIGRpbWVuc2lvbiAxIG9mIHkxCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgISAgICAgICAgICAgYW5kIGZvciBkaW1lbnNpb24gMSBvZiB5MS4u LiV6CisgIHByaW50ICosIHkyKDEpJSB2dig6LGspJSB6KDEsMixrKSAgISBydW50aW1lIGNo ZWNrIGZvciBkaW1lbnNpb24gMiBvZiB5Mi4uLiV2dgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICEgICAgICAgICAgIGFuZCBmb3IgZGltZW5zaW9uIDMgb2YgeTIu Li4legorICBwcmludCAqLCB5MSgxKSUgY2Moayw6KSUgcmUgICAgICAgICEgcnVudGltZSBj aGVjayBmb3IgZGltZW5zaW9uIDEgb2YgeTEuLi4lY2MKK2NvbnRhaW5zCisgIHN1YnJvdXRp bmUgc3ViICh5eSwgaykKKyAgICBjbGFzcyh2ZWMpLCBpbnRlbnQoaW4pIDo6IHl5KDopCisg ICAgaW50ZWdlciwgICAgaW50ZW50KGluKSA6OiBrCisgICAgcHJpbnQgKiwgeXkoMSkleHgo aykgICAgICAgICAgICAgISBydW50aW1lIGNoZWNrcyBmb3IgeXkgYW5kIHl5Li4uJXh4Cisg IGVuZAorZW5kIHByb2dyYW0gdGVzdAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyAiZGltZW5zaW9uIDIgb2YgYXJyYXkgLid1dSUlei4nIG91dHNpZGUgb2YgZXhw ZWN0ZWQgcmFuZ2UiIDIgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJkaW1lbnNpb24gMyBvZiBhcnJheSAuJ3d3XC5cLlwuJSV6Licgb3V0 c2lkZSBvZiBleHBlY3RlZCByYW5nZSIgMiAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImRpbWVuc2lvbiAzIG9mIGFycmF5IC4neDFcLlwu XC4lJXouJyBvdXRzaWRlIG9mIGV4cGVjdGVkIHJhbmdlIiAyICJvcmlnaW5hbCIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZGltZW5zaW9uIDEgb2YgYXJy YXkgLid4MiUldnYuJyBvdXRzaWRlIG9mIGV4cGVjdGVkIHJhbmdlIiAyICJvcmlnaW5hbCIg fSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiZGltZW5zaW9uIDEg b2YgYXJyYXkgLid5MVwuXC5cLiUlei4nIG91dHNpZGUgb2YgZXhwZWN0ZWQgcmFuZ2UiIDIg Im9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJk aW1lbnNpb24gMiBvZiBhcnJheSAuJ3kyXC5cLlwuJSV2di4nIG91dHNpZGUgb2YgZXhwZWN0 ZWQgcmFuZ2UiIDIgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLXRpbWVzICJkaW1lbnNpb24gMSBvZiBhcnJheSAuJ3kxXC5cLlwuJSVjYy4nIG91dHNp ZGUgb2YgZXhwZWN0ZWQgcmFuZ2UiIDIgIm9yaWdpbmFsIiB9IH0KKworISB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImRpbWVuc2lvbiAxIG9mIGFycmF5IC4neTEuJyBh Ym92ZSB1cHBlciBib3VuZCIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgImRpbWVuc2lvbiAxIG9mIGFycmF5IC4neTEuJyBiZWxvdyBs b3dlciBib3VuZCIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgImRpbWVuc2lvbiAzIG9mIGFycmF5IC4neTJcLlwuXC4lJXouJyBhYm92 ZSB1cHBlciBib3VuZCIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgImRpbWVuc2lvbiAzIG9mIGFycmF5IC4neTJcLlwuXC4lJXouJyBi ZWxvdyBsb3dlciBib3VuZCIgMSAib3JpZ2luYWwiIH0gfQorCishIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiZGltZW5zaW9uIDEgb2YgYXJyYXkgLid5eS4nIGFib3Zl IHVwcGVyIGJvdW5kIiAxICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiZGltZW5zaW9uIDEgb2YgYXJyYXkgLid5eVwuXC5cLiUleHguJyBh Ym92ZSB1cHBlciBib3VuZCIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgImRpbWVuc2lvbiAxIG9mIGFycmF5IC4neXlcLlwuXC4lJXh4 LicgYmVsb3cgbG93ZXIgYm91bmQiIDEgIm9yaWdpbmFsIiB9IH0KLS0gCjIuMzUuMwoK --------------UHC5JYW5Bs5gkxjAN8EYcDku--