From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1253 invoked by alias); 18 Nov 2019 09:00:59 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 1217 invoked by uid 89); 18 Nov 2019 09:00:57 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=1.3, armc, SYMBOL_REF, arm.c X-HELO: mail-lj1-f194.google.com Received: from mail-lj1-f194.google.com (HELO mail-lj1-f194.google.com) (209.85.208.194) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 18 Nov 2019 09:00:53 +0000 Received: by mail-lj1-f194.google.com with SMTP id r7so17964502ljg.2 for ; Mon, 18 Nov 2019 01:00:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Cdd0WcaFz1/bc8LWHUTgL/gBHt9bvQLmq5wht+PnpvI=; b=QRTLmo53BzbcRvY38mOKCB8Ko3emSLK8eU3QpUeCooesna0cGzvfGkcV8r41R8eN8V 07I/kfo8v5Wg2NDcw2PvEwLVlz9oZ8/aOFFZblMXAGRS2tJydGNzgg38rhiB6oLJEWQ1 J+1Q3fLVITJBaf1GVgFVd/fZl3Mgr8j1sgVHsrYjnpwcOjlosC43n3ZX/+LyqnQsgHwh 0q51w8FkNeMXvdPbV5By4K6zNHkCxBYqn24+WCuWVDdKR3EVZmMYUAmXEOffdyXvlWx8 H1U1qCe9lC/alhXj4m6hPAIpzJOVLClrsLA9YHxVwOatx9BVEgyLvg5c4f2iZnZaOqqX lekQ== MIME-Version: 1.0 References: <44ca2b03-4a19-424b-5f6d-eef9af8b9f69@arm.com> In-Reply-To: From: Christophe Lyon Date: Mon, 18 Nov 2019 09:04:00 -0000 Message-ID: Subject: Re: [PATCH 2/2] [ARM] Add support for -mpure-code in thumb-1 (v6m) To: "Richard Earnshaw (lists)" Cc: gcc Patches Content-Type: multipart/mixed; boundary="0000000000000d18b405979b2f20" X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg01668.txt.bz2 --0000000000000d18b405979b2f20 Content-Type: text/plain; charset="UTF-8" Content-length: 1116 On Wed, 13 Nov 2019 at 15:46, Christophe Lyon wrote: > > On Tue, 12 Nov 2019 at 12:13, Richard Earnshaw (lists) > wrote: > > > > On 18/10/2019 14:18, Christophe Lyon wrote: > > > + bool not_supported = arm_arch_notm || flag_pic || TARGET_NEON; > > > > > > > This is a poor name in the context of the function as a whole. What's > > not supported. Please think of a better name so that I have some idea > > what the intention is. > > That's to keep most of the code common when checking if -mpure-code > and -mslow-flash-data are supported. > These 3 cases are common to the two compilation flags, and > -mslow-flash-data still needs to check TARGET_HAVE_MOVT in addition. > > Would "common_unsupported_modes" work better for you? > Or I can duplicate the "arm_arch_notm || flag_pic || TARGET_NEON" in > the two tests. > Hi, Here is an updated version, using "common_unsupported_modes" instead of "not_supported", and fixing the typo reported by Kyrill. The ChangeLog is still the same. OK? Thanks, Christophe > Thanks, > > Christophe > > > > > R. --0000000000000d18b405979b2f20 Content-Type: text/plain; charset="US-ASCII"; name="0002-ARM-Add-support-for-mpure-code-in-thumb-1-v6m.patch-v2.chlog.txt" Content-Disposition: attachment; filename="0002-ARM-Add-support-for-mpure-code-in-thumb-1-v6m.patch-v2.chlog.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3476sjn0 Content-length: 1326 MjAxOS0xMC0xOCAgQ2hyaXN0b3BoZSBMeW9uICA8Y2hyaXN0b3BoZS5seW9u QGxpbmFyby5vcmc+CgogICAgCWdjYy8KICAgIAkqIGNvbmZpZy9hcm0vYXJt LXByb3Rvcy5oICh0aHVtYjFfZ2VuX2NvbnN0X2ludCk6IEFkZCBuZXcgcHJv dG90eXBlLgogICAgCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX29wdGlvbl9j aGVja19pbnRlcm5hbCk6IFJlbW92ZSByZXN0cmljdGlvbgogICAgCW9uIE1P VlQgZm9yIC1tcHVyZS1jb2RlLgogICAgCSh0aHVtYjFfZ2VuX2NvbnN0X2lu dCk6IE5ldyBmdW5jdGlvbi4KICAgIAkodGh1bWIxX2xlZ2l0aW1hdGVfYWRk cmVzc19wKTogU3VwcG9ydCAtbXB1cmUtY29kZS4KICAgIAkodGh1bWIxX3J0 eF9jb3N0cyk6IExpa2V3aXNlLgogICAgCSh0aHVtYjFfc2l6ZV9ydHhfY29z dHMpOiBMaWtld2lzZS4KICAgIAkoYXJtX3RodW1iMV9taV90aHVuayk6IExp a2V3aXNlLgogICAgCSogY29uZmlnL2FybS9hcm0uaCAoQ0FTRV9WRUNUT1Jf UENfUkVMQVRJVkUpOiBMaWtld2lzZS4KICAgIAkqIGNvbmZpZy9hcm0vdGh1 bWIxLm1kICh0aHVtYjFfbW92c2lfc3ltYm9sX3JlZik6IE5ldy4KICAgIAko KnRodW1iMV9tb3ZoZik6IFN1cHBvcnQgLW1wdXJlLWNvZGUuCgogICAgCWdj Yy90ZXN0cy8KICAgIAkqIGdjYy50YXJnZXQvYXJtL3ByNDU3MDEtMS5jOiBB ZGp1c3QgZm9yIC1tcHVyZS1jb2RlLgogICAgCSogZ2NjLnRhcmdldC9hcm0v cHI0NTcwMS0yLmM6IExpa2V3aXNlLgogICAgCSogZ2NjLnRhcmdldC9hcm0v cHVyZS1jb2RlL25vLWxpdGVyYWwtcG9vbC5jOiBBZGQgdGVzdHMgZm9yCiAg ICAJX19mcDE2LgogICAgCSogZ2NjLnRhcmdldC9hcm0vcHVyZS1jb2RlL3B1 cmUtY29kZS5leHA6IFJlbW92ZSB0aHVtYjIgYW5kIG1vdnQKICAgIAljb25k aXRpb25zLgogICAgCSogZ2NjLnRhcmdldC9hcm0vdGh1bWIxLU9zLW11bHQu YzogU2tpcCBpZiAtbXB1cmUtY29kZSBpcyB1c2VkLgoK --0000000000000d18b405979b2f20 Content-Type: text/plain; charset="US-ASCII"; name="0002-ARM-Add-support-for-mpure-code-in-thumb-1-v6m.patch-v2.txt" Content-Disposition: attachment; filename="0002-ARM-Add-support-for-mpure-code-in-thumb-1-v6m.patch-v2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3476ww81 Content-length: 23575 Y29tbWl0IGI5NmYxY2U2ZDk4OGRiMzQ1NTdjYmZlOWNkNDE0MTkzY2YzZTk1 YTYKQXV0aG9yOiBDaHJpc3RvcGhlIEx5b24gPGNocmlzdG9waGUubHlvbkBs aW5hcm8ub3JnPgpEYXRlOiAgIEZyaSBPY3QgMTggMTI6MTU6MTIgMjAxOSAr MDAwMAoKICAgIFtBUk1dIEFkZCBzdXBwb3J0IGZvciAtbXB1cmUtY29kZSBp biB0aHVtYi0xICh2Nm0pCiAgICAKICAgIFRoaXMgcGF0Y2ggZXh0ZW5kcyBz dXBwb3J0IGZvciAtbXB1cmUtY29kZSB0byBhbGwgdGh1bWItMSBwcm9jZXNz b3JzLAogICAgYnkgcmVtb3ZpbmcgdGhlIG5lZWQgZm9yIE1PVlQuCiAgICAK ICAgIFN5bWJvbCBhZGRyZXNzZXMgYXJlIGJ1aWx0IHVzaW5nIHVwcGVyOF8x NSwgdXBwZXIwXzcsIGxvd2VyOF8xNSBhbmQKICAgIGxvd2VyMF83IHJlbG9j YXRpb25zLCBhbmQgY29uc3RhbnRzIGFyZSBidWlsdCB1c2luZyBzZXF1ZW5j ZXMgb2YKICAgIG1vdnMvYWRkcyBhbmQgbHNscyBpbnN0cnVjdGlvbnMuCiAg ICAKICAgIFRoZSBleHRlbnNpb24gb2YgdGhlICp0aHVtYjFfbW92aGYgcGF0 dGVybiB1c2VzIGFsd2F5cyB0aGUgc2FtZSBzaXplCiAgICAoNikgYWx0aG91 Z2ggaXQgY2FuIGVtaXQgYSBzaG9ydGVyIHNlcXVlbmNlIHdoZW4gcG9zc2li bGUuIFRoaXMgaXMKICAgIHNpbWlsYXIgdG8gd2hhdCAqYXJtMzJfbW92aGYg YWxyZWFkeSBkb2VzLgogICAgCiAgICBDQVNFX1ZFQ1RPUl9QQ19SRUxBVElW RSBpcyBub3cgZmFsc2Ugd2l0aCAtbXB1cmUtY29kZSwgdG8gYXZvaWQKICAg IGdlbmVyYXRpbmcgaW52YWxpZCBhc3NlbWJseSBjb2RlIHdpdGggZGlmZmVy ZW5jZXMgZnJvbSBzeW1ib2xzIGZyb20KICAgIHR3byBkaWZmZXJlbnQgc2Vj dGlvbnMgKHRoZSBkaWZmZXJlbmNlIGNhbm5vdCBiZSBjb21wdXRlZCBieSB0 aGUKICAgIGFzc2VtYmxlcikuCiAgICAKICAgIFRlc3RzIHByNDU3MDEtWzEy XS5jIG5lZWRlZCBhIHNtYWxsIGFkanVzdG1lbnQgdG8gYXZvaWQgbWF0Y2hp bmcKICAgIHVwcGVyOF8xNSB3aGVuIGxvb2tpbmcgZm9yIHRoZSByOCByZWdp c3Rlci4KICAgIAogICAgVGVzdCBuby1saXRlcmFsLXBvb2wuYyBpcyBhdWdt ZW50ZWQgd2l0aCBfX2ZwMTYsIHNvIGl0IG5vdyB1c2VzCiAgICAtbWZwMTYt Zm9ybWF0PWllZWUuCiAgICAKICAgIFRlc3QgdGh1bWIxLU9zLW11bHQuYyBn ZW5lcmF0ZXMgYW4gaW5saW5lIGNvZGUgc2VxdWVuY2Ugd2l0aAogICAgLW1w dXJlLWNvZGUgYW5kIGNvbXB1dGVzIHRoZSBtdWx0aXBsaWNhdGlvbiBieSB1 c2luZyBhIHNlcXVlbmNlIG9mCiAgICBhZGQvc2hpZnQgcmF0aGVyIHRoYW4g dXNpbmcgdGhlIG11bHRpcGx5IGluc3RydWN0aW9uLCBzbyB3ZSBza2lwIGl0 IGluCiAgICBwcmVzZW5jZSBvZiAtbXB1cmUtY29kZS4KICAgIAogICAgV2l0 aCAtbWNwdT1jb3J0ZXgtbTAsIHRoZSBwdXJlLWNvZGUvbm8tbGl0ZXJhbC1w b29sLmMgZmFpbHMgYmVjYXVzZQogICAgY29kZSBsaWtlOgogICAgc3RhdGlj IGNoYXIgKnAgPSAiSGVsbG8gV29ybGQiOwogICAgY2hhciAqCiAgICB0ZXN0 Y2hhciAoKQogICAgewogICAgICByZXR1cm4gcCArIDQ7CiAgICB9CiAgICBn ZW5lcmF0ZXMgMiBpbmRpcmVjdGlvbnMgKEkgcmVtb3ZlZCBub24tZXNzZW50 aWFsIGRpcmVjdGl2ZXMvY29kZSkKICAgICAgICAgICAgLnNlY3Rpb24gICAg ICAgIC5yb2RhdGEKICAgIC5MQzA6CiAgICAJLmFzY2lpICAiSGVsbG8gV29y bGRcMDAwIgogICAgCS5kYXRhCiAgICBwOgogICAgCS53b3JkICAgLkxDMAog ICAgCS5zZWN0aW9uICAgICAgICAucm9kYXRhCiAgICAuTEMyOgogICAgCS53 b3JkICAgcAogICAgCS5zZWN0aW9uIC50ZXh0LCIweDIwMDAwMDA2IiwlcHJv Z2JpdHMKICAgIHRlc3RjaGFyOgogICAgCXB1c2ggICAge3I3LCBscn0KICAg IAlhZGQgICAgIHI3LCBzcCwgIzAKICAgIAltb3ZzICAgIHIzLCAjOnVwcGVy OF8xNTojLkxDMgogICAgCWxzbHMgICAgcjMsICM4CiAgICAJYWRkcyAgICBy MywgIzp1cHBlcjBfNzojLkxDMgogICAgCWxzbHMgICAgcjMsICM4CiAgICAJ YWRkcyAgICByMywgIzpsb3dlcjhfMTU6Iy5MQzIKICAgIAlsc2xzICAgIHIz LCAjOAogICAgCWFkZHMgICAgcjMsICM6bG93ZXIwXzc6Iy5MQzIKICAgIAls ZHIgICAgIHIzLCBbcjNdCiAgICAJbGRyICAgICByMywgW3IzXQogICAgCWFk ZHMgICAgcjMsIHIzLCAjNAogICAgCW1vdnMgICAgcjAsIHIzCiAgICAJbW92 ICAgICBzcCwgcjcKICAgIAlAIHNwIG5lZWRlZAogICAgCXBvcCAgICAge3I3 LCBwY30KICAgIAogICAgQnkgY29udHJhc3QsIHdoZW4gdXNpbmcgLW1jcHU9 Y29ydGV4LW00LCB0aGUgY29kZSBsb29rcyBsaWtlOgogICAgICAgICAgICAu c2VjdGlvbiAgICAgICAgLnJvZGF0YQogICAgLkxDMDoKICAgIAkuYXNjaWkg ICJIZWxsbyBXb3JsZFwwMDAiCiAgICAJLmRhdGEKICAgIHA6CiAgICAJLndv cmQgICAuTEMwCiAgICB0ZXN0Y2hhcjoKICAgIAlwdXNoICAgIHtyN30KICAg IAlhZGQgICAgIHI3LCBzcCwgIzAKICAgIAltb3Z3ICAgIHIzLCAjOmxvd2Vy MTY6cAogICAgCW1vdnQgICAgcjMsICM6dXBwZXIxNjpwCiAgICAJbGRyICAg ICByMywgW3IzXQogICAgCWFkZHMgICAgcjMsIHIzLCAjNAogICAgCW1vdiAg ICAgcjAsIHIzCiAgICAJbW92ICAgICBzcCwgcjcKICAgIAlwb3AgICAgIHty N30KICAgIAlieCAgICAgIGxyCiAgICAKICAgIEkgaGF2ZW4ndCBmb3VuZCB5 ZXQgaG93IHRvIG1ha2UgY29kZSBmb3IgY29ydGV4LW0wIGFwcGx5IHVwcGVy L2xvd2VyCiAgICByZWxvY2F0aW9ucyB0byAicCIgaW5zdGVhZCBvZiAuTEMy LiBUaGUgY3VycmVudCBjb2RlIGxvb2tzIGZ1bmN0aW9uYWwsCiAgICBidXQg Y291bGQgYmUgaW1wcm92ZWQuCiAgICAKICAgIDIwMTktMTAtMTggIENocmlz dG9waGUgTHlvbiAgPGNocmlzdG9waGUubHlvbkBsaW5hcm8ub3JnPgogICAg CiAgICAJZ2NjLwogICAgCSogY29uZmlnL2FybS9hcm0tcHJvdG9zLmggKHRo dW1iMV9nZW5fY29uc3RfaW50KTogQWRkIG5ldyBwcm90b3R5cGUuCiAgICAJ KiBjb25maWcvYXJtL2FybS5jIChhcm1fb3B0aW9uX2NoZWNrX2ludGVybmFs KTogUmVtb3ZlIHJlc3RyaWN0aW9uCiAgICAJb24gTU9WVCBmb3IgLW1wdXJl LWNvZGUuCiAgICAJKHRodW1iMV9nZW5fY29uc3RfaW50KTogTmV3IGZ1bmN0 aW9uLgogICAgCSh0aHVtYjFfbGVnaXRpbWF0ZV9hZGRyZXNzX3ApOiBTdXBw b3J0IC1tcHVyZS1jb2RlLgogICAgCSh0aHVtYjFfcnR4X2Nvc3RzKTogTGlr ZXdpc2UuCiAgICAJKHRodW1iMV9zaXplX3J0eF9jb3N0cyk6IExpa2V3aXNl LgogICAgCShhcm1fdGh1bWIxX21pX3RodW5rKTogTGlrZXdpc2UuCiAgICAJ KiBjb25maWcvYXJtL2FybS5oIChDQVNFX1ZFQ1RPUl9QQ19SRUxBVElWRSk6 IExpa2V3aXNlLgogICAgCSogY29uZmlnL2FybS90aHVtYjEubWQgKHRodW1i MV9tb3ZzaV9zeW1ib2xfcmVmKTogTmV3LgogICAgCSgqdGh1bWIxX21vdmhm KTogU3VwcG9ydCAtbXB1cmUtY29kZS4KICAgIAogICAgCWdjYy90ZXN0cy8K ICAgIAkqIGdjYy50YXJnZXQvYXJtL3ByNDU3MDEtMS5jOiBBZGp1c3QgZm9y IC1tcHVyZS1jb2RlLgogICAgCSogZ2NjLnRhcmdldC9hcm0vcHI0NTcwMS0y LmM6IExpa2V3aXNlLgogICAgCSogZ2NjLnRhcmdldC9hcm0vcHVyZS1jb2Rl L25vLWxpdGVyYWwtcG9vbC5jOiBBZGQgdGVzdHMgZm9yCiAgICAJX19mcDE2 LgogICAgCSogZ2NjLnRhcmdldC9hcm0vcHVyZS1jb2RlL3B1cmUtY29kZS5l eHA6IFJlbW92ZSB0aHVtYjIgYW5kIG1vdnQKICAgIAljb25kaXRpb25zLgog ICAgCSogZ2NjLnRhcmdldC9hcm0vdGh1bWIxLU9zLW11bHQuYzogU2tpcCBp ZiAtbXB1cmUtY29kZSBpcyB1c2VkLgogICAgCiAgICBDaGFuZ2UtSWQ6IEk3 OWM1YTUwNDNlN2ZmZWMwODRjMzhiNTlhNDRkNjkyMTRjMDgzNGNmCgpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIGIvZ2NjL2Nv bmZpZy9hcm0vYXJtLXByb3Rvcy5oCmluZGV4IGY5OTU5NzQuLmJlYjg0MTEg MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL2FybS1wcm90b3MuaAorKysg Yi9nY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgKQEAgLTY2LDYgKzY2LDcg QEAgZXh0ZXJuIGJvb2wgYXJtX3NtYWxsX3JlZ2lzdGVyX2NsYXNzZXNfZm9y X21vZGVfcCAobWFjaGluZV9tb2RlKTsKIGV4dGVybiBpbnQgY29uc3Rfb2tf Zm9yX2FybSAoSE9TVF9XSURFX0lOVCk7CiBleHRlcm4gaW50IGNvbnN0X29r X2Zvcl9vcCAoSE9TVF9XSURFX0lOVCwgZW51bSBydHhfY29kZSk7CiBleHRl cm4gaW50IGNvbnN0X29rX2Zvcl9kaW1vZGVfb3AgKEhPU1RfV0lERV9JTlQs IGVudW0gcnR4X2NvZGUpOworZXh0ZXJuIHZvaWQgdGh1bWIxX2dlbl9jb25z dF9pbnQgKHJ0eCwgSE9TVF9XSURFX0lOVCk7CiBleHRlcm4gaW50IGFybV9z cGxpdF9jb25zdGFudCAoUlRYX0NPREUsIG1hY2hpbmVfbW9kZSwgcnR4LAog CQkJICAgICAgIEhPU1RfV0lERV9JTlQsIHJ0eCwgcnR4LCBpbnQpOwogZXh0 ZXJuIGludCBsZWdpdGltYXRlX3BpY19vcGVyYW5kX3AgKHJ0eCk7CmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0uYyBiL2djYy9jb25maWcvYXJt L2FybS5jCmluZGV4IDlmMDk3NWQuLmFhNzEwMjAgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvYXJtL2FybS5jCisrKyBiL2djYy9jb25maWcvYXJtL2FybS5j CkBAIC0yODgyLDEzICsyODgyLDE4IEBAIGFybV9vcHRpb25fY2hlY2tfaW50 ZXJuYWwgKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0cykKICAgICB7CiAgICAg ICBjb25zdCBjaGFyICpmbGFnID0gKHRhcmdldF9wdXJlX2NvZGUgPyAiLW1w dXJlLWNvZGUiIDoKIAkJCQkJICAgICAiLW1zbG93LWZsYXNoLWRhdGEiKTsK KyAgICAgIGJvb2wgY29tbW9uX3Vuc3VwcG9ydGVkX21vZGVzID0gYXJtX2Fy Y2hfbm90bSB8fCBmbGFnX3BpYyB8fCBUQVJHRVRfTkVPTjsKIAotICAgICAg LyogV2Ugb25seSBzdXBwb3J0IC1tcHVyZS1jb2RlIGFuZCAtbXNsb3ctZmxh c2gtZGF0YSBvbiBNLXByb2ZpbGUgdGFyZ2V0cwotCSB3aXRoIE1PVlQuICAq LwotICAgICAgaWYgKCFUQVJHRVRfSEFWRV9NT1ZUIHx8IGFybV9hcmNoX25v dG0gfHwgZmxhZ19waWMgfHwgVEFSR0VUX05FT04pCisgICAgICAvKiBXZSBv bmx5IHN1cHBvcnQgLW1zbG93LWZsYXNoLWRhdGEgb24gTS1wcm9maWxlIHRh cmdldHMgd2l0aAorCSBNT1ZULiAgKi8KKyAgICAgIGlmICh0YXJnZXRfc2xv d19mbGFzaF9kYXRhICYmICghVEFSR0VUX0hBVkVfTU9WVCB8fCBjb21tb25f dW5zdXBwb3J0ZWRfbW9kZXMpKQogCWVycm9yICgiJXMgb25seSBzdXBwb3J0 cyBub24tcGljIGNvZGUgb24gTS1wcm9maWxlIHRhcmdldHMgd2l0aCB0aGUg IgogCSAgICAgICAiTU9WVCBpbnN0cnVjdGlvbiIsIGZsYWcpOwogCisgICAg ICAvKiBXZSBvbmx5IHN1cHBvcnQgLW1wdXJlLWNvZGUgb24gTS1wcm9maWxl IHRhcmdldHMuICAqLworICAgICAgaWYgKHRhcmdldF9wdXJlX2NvZGUgJiYg Y29tbW9uX3Vuc3VwcG9ydGVkX21vZGVzKQorCWVycm9yICgiJXMgb25seSBz dXBwb3J0cyBub24tcGljIGNvZGUgb24gTS1wcm9maWxlIHRhcmdldHMiLCBm bGFnKTsKKwogICAgICAgLyogQ2Fubm90IGxvYWQgYWRkcmVzc2VzOiAtbXNs b3ctZmxhc2gtZGF0YSBmb3JiaWRzIGxpdGVyYWwgcG9vbCBhbmQKIAkgLW13 b3JkLXJlbG9jYXRpb25zIGZvcmJpZHMgcmVsb2NhdGlvbiBvZiBNT1ZUL01P VlcuICAqLwogICAgICAgaWYgKHRhcmdldF93b3JkX3JlbG9jYXRpb25zKQpA QCAtNDQwMCw2ICs0NDA1LDM4IEBAIGNvbnN0X29rX2Zvcl9kaW1vZGVfb3Ag KEhPU1RfV0lERV9JTlQgaSwgZW51bSBydHhfY29kZSBjb2RlKQogICAgIH0K IH0KIAorLyogRW1pdCBhIHNlcXVlbmNlIG9mIG1vdnMvYWRkcy9zaGlmdCB0 byBwcm9kdWNlIGEgMzItYml0IGNvbnN0YW50LgorICAgQXZvaWQgZ2VuZXJh dGluZyB1c2VsZXNzIGNvZGUgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGlzIHpl cm8uICAqLwordm9pZAordGh1bWIxX2dlbl9jb25zdF9pbnQgKHJ0eCBvcDAs IEhPU1RfV0lERV9JTlQgb3AxKQoreworICBib29sIG1vdl9kb25lX3AgPSBm YWxzZTsKKyAgaW50IGk7CisKKyAgLyogRW1pdCB1cHBlciAzIGJ5dGVzIGlm IG5lZWRlZC4gICovCisgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspCisgICAg eworICAgICAgaW50IGJ5dGUgPSAob3AxID4+ICg4ICogKDMgLSBpKSkpICYg MHhmZjsKKworICAgICAgaWYgKGJ5dGUpCisJeworCSAgZW1pdF9zZXRfaW5z biAob3AwLCBtb3ZfZG9uZV9wCisJCQkgPyBnZW5fcnR4X1BMVVMgKFNJbW9k ZSxvcDAsIEdFTl9JTlQgKGJ5dGUpKQorCQkJIDogR0VOX0lOVCAoYnl0ZSkp OworCSAgbW92X2RvbmVfcCA9IHRydWU7CisJfQorCisgICAgICBpZiAobW92 X2RvbmVfcCkKKwllbWl0X3NldF9pbnNuIChvcDAsIGdlbl9ydHhfQVNISUZU IChTSW1vZGUsIG9wMCwgR0VOX0lOVCAoOCkpKTsKKyAgICB9CisKKyAgLyog RW1pdCBsb3dlciBieXRlIGlmIG5lZWRlZC4gICovCisgIGlmICghbW92X2Rv bmVfcCkKKyAgICBlbWl0X3NldF9pbnNuIChvcDAsIEdFTl9JTlQgKG9wMSAm IDB4ZmYpKTsKKyAgZWxzZSBpZiAob3AxICYgMHhmZikKKyAgICBlbWl0X3Nl dF9pbnNuIChvcDAsIGdlbl9ydHhfUExVUyAoU0ltb2RlLCBvcDAsIEdFTl9J TlQgKG9wMSAmIDB4ZmYpKSk7Cit9CisKIC8qIEVtaXQgYSBzZXF1ZW5jZSBv ZiBpbnNucyB0byBoYW5kbGUgYSBsYXJnZSBjb25zdGFudC4KICAgIENPREUg aXMgdGhlIGNvZGUgb2YgdGhlIG9wZXJhdGlvbiByZXF1aXJlZCwgaXQgY2Fu IGJlIGFueSBvZiBTRVQsIFBMVVMsCiAgICBJT1IsIEFORCwgWE9SLCBNSU5V UzsKQEAgLTg1MzAsNyArODU2Nyw4IEBAIHRodW1iMV9sZWdpdGltYXRlX2Fk ZHJlc3NfcCAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCB4LCBpbnQgc3RyaWN0 X3ApCiAgIC8qIFRoaXMgaXMgUEMgcmVsYXRpdmUgZGF0YSBiZWZvcmUgYXJt X3Jlb3JnIHJ1bnMuICAqLwogICBlbHNlIGlmIChHRVRfTU9ERV9TSVpFICht b2RlKSA+PSA0ICYmIENPTlNUQU5UX1AgKHgpCiAJICAgJiYgR0VUX0NPREUg KHgpID09IFNZTUJPTF9SRUYKLSAgICAgICAgICAgJiYgQ09OU1RBTlRfUE9P TF9BRERSRVNTX1AgKHgpICYmICFmbGFnX3BpYykKKwkgICAmJiBDT05TVEFO VF9QT09MX0FERFJFU1NfUCAoeCkgJiYgIWZsYWdfcGljCisJICAgJiYgIWFy bV9kaXNhYmxlX2xpdGVyYWxfcG9vbCkKICAgICByZXR1cm4gMTsKIAogICAv KiBUaGlzIGlzIFBDIHJlbGF0aXZlIGRhdGEgYWZ0ZXIgYXJtX3Jlb3JnIHJ1 bnMuICAqLwpAQCAtODU5OCw2ICs4NjM2LDcgQEAgdGh1bWIxX2xlZ2l0aW1h dGVfYWRkcmVzc19wIChtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHgsIGludCBz dHJpY3RfcCkKIAkgICAmJiBHRVRfTU9ERV9TSVpFIChtb2RlKSA9PSA0CiAJ ICAgJiYgR0VUX0NPREUgKHgpID09IFNZTUJPTF9SRUYKIAkgICAmJiBDT05T VEFOVF9QT09MX0FERFJFU1NfUCAoeCkKKwkgICAmJiAhYXJtX2Rpc2FibGVf bGl0ZXJhbF9wb29sCiAJICAgJiYgISAoZmxhZ19waWMKIAkJICYmIHN5bWJv bF9tZW50aW9uZWRfcCAoZ2V0X3Bvb2xfY29uc3RhbnQgKHgpKQogCQkgJiYg ISBwY3JlbF9jb25zdGFudF9wIChnZXRfcG9vbF9jb25zdGFudCAoeCkpKSkK QEAgLTkyNzgsNyArOTMxNyw5IEBAIHRodW1iMV9ydHhfY29zdHMgKHJ0eCB4 LCBlbnVtIHJ0eF9jb2RlIGNvZGUsIGVudW0gcnR4X2NvZGUgb3V0ZXIpCiAJ ICAgIHJldHVybiAwOwogCSAgaWYgKHRodW1iX3NoaWZ0YWJsZV9jb25zdCAo SU5UVkFMICh4KSkpCiAJICAgIHJldHVybiBDT1NUU19OX0lOU05TICgyKTsK LQkgIHJldHVybiBDT1NUU19OX0lOU05TICgzKTsKKwkgIHJldHVybiBhcm1f ZGlzYWJsZV9saXRlcmFsX3Bvb2wKKwkgICAgPyBDT1NUU19OX0lOU05TICg4 KQorCSAgICA6IENPU1RTX05fSU5TTlMgKDMpOwogCX0KICAgICAgIGVsc2Ug aWYgKChvdXRlciA9PSBQTFVTIHx8IG91dGVyID09IENPTVBBUkUpCiAJICAg ICAgICYmIElOVFZBTCAoeCkgPCAyNTYgJiYgSU5UVkFMICh4KSA+IC0yNTYp CkBAIC05NDM1LDcgKzk0NzYsOSBAQCB0aHVtYjFfc2l6ZV9ydHhfY29zdHMg KHJ0eCB4LCBlbnVtIHJ0eF9jb2RlIGNvZGUsIGVudW0gcnR4X2NvZGUgb3V0 ZXIpCiAJICAvKiBTZWUgc3BsaXQgIlRBUkdFVF9USFVNQjEgJiYgc2F0aXNm aWVzX2NvbnN0cmFpbnRfSyIuICAqLwogICAgICAgICAgIGlmICh0aHVtYl9z aGlmdGFibGVfY29uc3QgKElOVFZBTCAoeCkpKQogICAgICAgICAgICAgcmV0 dXJuIENPU1RTX05fSU5TTlMgKDIpOwotICAgICAgICAgIHJldHVybiBDT1NU U19OX0lOU05TICgzKTsKKwkgIHJldHVybiBhcm1fZGlzYWJsZV9saXRlcmFs X3Bvb2wKKwkgICAgPyBDT1NUU19OX0lOU05TICg4KQorCSAgICA6IENPU1RT X05fSU5TTlMgKDMpOwogICAgICAgICB9CiAgICAgICBlbHNlIGlmICgob3V0 ZXIgPT0gUExVUyB8fCBvdXRlciA9PSBDT01QQVJFKQogICAgICAgICAgICAg ICAgJiYgSU5UVkFMICh4KSA8IDI1NiAmJiBJTlRWQUwgKHgpID4gLTI1NikK QEAgLTI3MDczLDE0ICsyNzExNiw0MSBAQCBhcm1fdGh1bWIxX21pX3RodW5r IChGSUxFICpmaWxlLCB0cmVlLCBIT1NUX1dJREVfSU5UIGRlbHRhLAogCSAg LyogcHVzaCByMyBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgdGVtcG9yYXJ5LiAg Ki8KIAkgIC8qIFRPRE86IE9taXQgdGhpcyBzYXZlIGlmIHIzIGlzIG5vdCB1 c2VkLiAgKi8KIAkgIGZwdXRzICgiXHRwdXNoIHtyM31cbiIsIGZpbGUpOwot CSAgZnB1dHMgKCJcdGxkclx0cjMsICIsIGZpbGUpOworCisJICAvKiBXaXRo IC1tcHVyZS1jb2RlLCB3ZSBjYW5ub3QgbG9hZCB0aGUgYWRkcmVzcyBmcm9t IHRoZQorCSAgICAgY29uc3RhbnQgcG9vbDogd2UgYnVpbGQgaXQgZXhwbGlj aXRseS4gICovCisJICBpZiAodGFyZ2V0X3B1cmVfY29kZSkKKwkgICAgewor CSAgICAgIGZwdXRzICgiXHRtb3ZzXHRyMywgIzp1cHBlcjhfMTU6IyIsIGZp bGUpOworCSAgICAgIGFzc2VtYmxlX25hbWUgKGZpbGUsIFhTVFIgKFhFWFAg KERFQ0xfUlRMIChmdW5jdGlvbiksIDApLCAwKSk7CisJICAgICAgZnB1dGMg KCdcbicsIGZpbGUpOworCSAgICAgIGZwdXRzICgiXHRsc2xzIHIzLCAjOFxu IiwgZmlsZSk7CisJICAgICAgZnB1dHMgKCJcdGFkZHNcdHIzLCAjOnVwcGVy MF83OiMiLCBmaWxlKTsKKwkgICAgICBhc3NlbWJsZV9uYW1lIChmaWxlLCBY U1RSIChYRVhQIChERUNMX1JUTCAoZnVuY3Rpb24pLCAwKSwgMCkpOworCSAg ICAgIGZwdXRjICgnXG4nLCBmaWxlKTsKKwkgICAgICBmcHV0cyAoIlx0bHNs cyByMywgIzhcbiIsIGZpbGUpOworCSAgICAgIGZwdXRzICgiXHRhZGRzXHRy MywgIzpsb3dlcjhfMTU6IyIsIGZpbGUpOworCSAgICAgIGFzc2VtYmxlX25h bWUgKGZpbGUsIFhTVFIgKFhFWFAgKERFQ0xfUlRMIChmdW5jdGlvbiksIDAp LCAwKSk7CisJICAgICAgZnB1dGMgKCdcbicsIGZpbGUpOworCSAgICAgIGZw dXRzICgiXHRsc2xzIHIzLCAjOFxuIiwgZmlsZSk7CisJICAgICAgZnB1dHMg KCJcdGFkZHNcdHIzLCAjOmxvd2VyMF83OiMiLCBmaWxlKTsKKwkgICAgICBh c3NlbWJsZV9uYW1lIChmaWxlLCBYU1RSIChYRVhQIChERUNMX1JUTCAoZnVu Y3Rpb24pLCAwKSwgMCkpOworCSAgICAgIGZwdXRjICgnXG4nLCBmaWxlKTsK KwkgICAgfQorCSAgZWxzZQorCSAgICBmcHV0cyAoIlx0bGRyXHRyMywgIiwg ZmlsZSk7CiAJfQogICAgICAgZWxzZQogCXsKIAkgIGZwdXRzICgiXHRsZHJc dHIxMiwgIiwgZmlsZSk7CiAJfQotICAgICAgYXNzZW1ibGVfbmFtZSAoZmls ZSwgbGFiZWwpOwotICAgICAgZnB1dGMgKCdcbicsIGZpbGUpOworCisgICAg ICBpZiAoIXRhcmdldF9wdXJlX2NvZGUpCisJeworCSAgYXNzZW1ibGVfbmFt ZSAoZmlsZSwgbGFiZWwpOworCSAgZnB1dGMgKCdcbicsIGZpbGUpOworCX0K KwogICAgICAgaWYgKGZsYWdfcGljKQogCXsKIAkgIC8qIElmIHdlIGFyZSBn ZW5lcmF0aW5nIFBJQywgdGhlIGxkciBpbnN0cnVjdGlvbiBiZWxvdyBsb2Fk cwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJtLmggYi9nY2MvY29u ZmlnL2FybS9hcm0uaAppbmRleCA4YjY3YzljLi5kODQyNDQ4IDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2FybS9hcm0uaAorKysgYi9nY2MvY29uZmlnL2Fy bS9hcm0uaApAQCAtMTg1MCw5ICsxODUwLDExIEBAIGVudW0gYXJtX2F1dG9f aW5jbW9kZXMKICAgIGZvciB0aGUgaW5kZXggaW4gdGhlIHRhYmxlanVtcCBp bnN0cnVjdGlvbi4gICovCiAjZGVmaW5lIENBU0VfVkVDVE9SX01PREUgUG1v ZGUKIAotI2RlZmluZSBDQVNFX1ZFQ1RPUl9QQ19SRUxBVElWRSAoVEFSR0VU X1RIVU1CMgkJCQlcCi0JCQkJIHx8IChUQVJHRVRfVEhVTUIxCQkJXAotCQkJ CSAgICAgJiYgKG9wdGltaXplX3NpemUgfHwgZmxhZ19waWMpKSkKKyNkZWZp bmUgQ0FTRV9WRUNUT1JfUENfUkVMQVRJVkUgKChUQVJHRVRfVEhVTUIyCQkJ CVwKKwkJCQkgIHx8IChUQVJHRVRfVEhVTUIxCQkJXAorCQkJCSAgICAgICYm IChvcHRpbWl6ZV9zaXplIHx8IGZsYWdfcGljKSkpCVwKKwkJCQkgJiYgKCF0 YXJnZXRfcHVyZV9jb2RlKSkKKwogCiAjZGVmaW5lIENBU0VfVkVDVE9SX1NI T1JURU5fTU9ERShtaW4sIG1heCwgYm9keSkJCQlcCiAgIChUQVJHRVRfVEhV TUIxCQkJCQkJCVwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL3RodW1i MS5tZCBiL2djYy9jb25maWcvYXJtL3RodW1iMS5tZAppbmRleCA1YzcwMjAw Li5kZDc1OGViIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS90aHVtYjEu bWQKKysrIGIvZ2NjL2NvbmZpZy9hcm0vdGh1bWIxLm1kCkBAIC00Myw2ICs0 Myw0MSBAQAogCiAKIAorKGRlZmluZV9pbnNuICJ0aHVtYjFfbW92c2lfc3lt Ym9sX3JlZiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1sIikKKwkobWF0Y2hfb3BlcmFuZDpTSSAxICJnZW5l cmFsX29wZXJhbmQiICIiKSkKKyAgIF0KKyAgIlRBUkdFVF9USFVNQjEKKyAg ICYmIGFybV9kaXNhYmxlX2xpdGVyYWxfcG9vbAorICAgJiYgR0VUX0NPREUg KG9wZXJhbmRzWzFdKSA9PSBTWU1CT0xfUkVGIgorICAiKgorICBvdXRwdXRf YXNtX2luc24gKFwibW92c1xcdCUwLCAjOnVwcGVyOF8xNTolMVwiLCBvcGVy YW5kcyk7CisgIG91dHB1dF9hc21faW5zbiAoXCJsc2xzXFx0JTAsICM4XCIs IG9wZXJhbmRzKTsKKyAgb3V0cHV0X2FzbV9pbnNuIChcImFkZHNcXHQlMCwg Izp1cHBlcjBfNzolMVwiLCBvcGVyYW5kcyk7CisgIG91dHB1dF9hc21faW5z biAoXCJsc2xzXFx0JTAsICM4XCIsIG9wZXJhbmRzKTsKKyAgb3V0cHV0X2Fz bV9pbnNuIChcImFkZHNcXHQlMCwgIzpsb3dlcjhfMTU6JTFcIiwgb3BlcmFu ZHMpOworICBvdXRwdXRfYXNtX2luc24gKFwibHNsc1xcdCUwLCAjOFwiLCBv cGVyYW5kcyk7CisgIG91dHB1dF9hc21faW5zbiAoXCJhZGRzXFx0JTAsICM6 bG93ZXIwXzc6JTFcIiwgb3BlcmFuZHMpOworICByZXR1cm4gXCJcIjsKKyAg IgorICBbKHNldF9hdHRyICJsZW5ndGgiICIxNCIpCisgICAoc2V0X2F0dHIg ImNvbmRzIiAiY2xvYiIpXQorKQorCisoZGVmaW5lX3NwbGl0CisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQor CShtYXRjaF9vcGVyYW5kOlNJIDEgImltbWVkaWF0ZV9vcGVyYW5kIiAiIikp XQorICAiVEFSR0VUX1RIVU1CMQorICAgJiYgYXJtX2Rpc2FibGVfbGl0ZXJh bF9wb29sCisgICAmJiBHRVRfQ09ERSAob3BlcmFuZHNbMV0pID09IENPTlNU X0lOVAorICAgJiYgIXNhdGlzZmllc19jb25zdHJhaW50X0kgKG9wZXJhbmRz WzFdKSIKKyAgWyhjbG9iYmVyIChjb25zdF9pbnQgMCkpXQorICAiCisgICAg dGh1bWIxX2dlbl9jb25zdF9pbnQgKG9wZXJhbmRzWzBdLCBJTlRWQUwgKG9w ZXJhbmRzWzFdKSk7CisgICAgRE9ORTsKKyAgIgorKQorCiAoZGVmaW5lX2lu c24gIip0aHVtYjFfYWRkZGkzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpE SSAgICAgICAgICAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWwiKQogCShwbHVz OkRJIChtYXRjaF9vcGVyYW5kOkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIl MCIpCkBAIC04MjksOCArODY0LDggQEAKICAgIChzZXRfYXR0ciAiY29uZHMi ICJjbG9iLG5vY29uZCxub2NvbmQsbm9jb25kLG5vY29uZCxjbG9iIildKQog CiAoZGVmaW5lX2luc24gIip0aHVtYjFfbW92aGYiCi0gIFsoc2V0IChtYXRj aF9vcGVyYW5kOkhGICAgICAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1s LGwsbSwqciwqaCIpCi0JKG1hdGNoX29wZXJhbmQ6SEYgICAgIDEgImdlbmVy YWxfb3BlcmFuZCIgICAgICAibCxtRixsLCpoLCpyIikpXQorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpIRiAgICAgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQi ICI9bCxsLGwsbSwqciwqaCIpCisJKG1hdGNoX29wZXJhbmQ6SEYgICAgIDEg ImdlbmVyYWxfb3BlcmFuZCIgICAgICAibCwgbSxGLGwsKmgsKnIiKSldCiAg ICJUQVJHRVRfVEhVTUIxCiAgICAmJiAoCSAgc19yZWdpc3Rlcl9vcGVyYW5k IChvcGVyYW5kc1swXSwgSEZtb2RlKQogICAgICAgIHx8IHNfcmVnaXN0ZXJf b3BlcmFuZCAob3BlcmFuZHNbMV0sIEhGbW9kZSkpIgpAQCAtODU1LDE0ICs4 OTAsMzQgQEAKIAkgIH0KIAlyZXR1cm4gXCJsZHJoXFx0JTAsICUxXCI7CiAg ICAgICB9Ci0gICAgY2FzZSAyOiByZXR1cm4gXCJzdHJoXFx0JTEsICUwXCI7 CisgICAgY2FzZSAyOgorICAgIHsKKyAgICAgIGludCBiaXRzOworICAgICAg aW50IGhpZ2g7CisgICAgICBydHggb3BzWzNdOworCisgICAgICBiaXRzID0g cmVhbF90b190YXJnZXQgKE5VTEwsIENPTlNUX0RPVUJMRV9SRUFMX1ZBTFVF IChvcGVyYW5kc1sxXSksCisJCQkgICAgIEhGbW9kZSk7CisgICAgICBvcHNb MF0gPSBvcGVyYW5kc1swXTsKKyAgICAgIGhpZ2ggPSAoYml0cyA+PiA4KSAm IDB4ZmY7CisgICAgICBvcHNbMV0gPSBHRU5fSU5UIChoaWdoKTsKKyAgICAg IG9wc1syXSA9IEdFTl9JTlQgKGJpdHMgJiAweGZmKTsKKyAgICAgIGlmICho aWdoICE9IDApCisJb3V0cHV0X2FzbV9pbnNuIChcIm1vdnNcXHQlMCwgJTFc O2xzbHNcXHQlMCwgIzhcO2FkZHNcXHQlMCwgJTJcIiwgb3BzKTsKKyAgICAg IGVsc2UKKwlvdXRwdXRfYXNtX2luc24gKFwibW92c1xcdCUwLCAlMlwiLCBv cHMpOworCisgICAgICByZXR1cm4gXCJcIjsKKyAgICB9CisgICAgY2FzZSAz OiByZXR1cm4gXCJzdHJoXFx0JTEsICUwXCI7CiAgICAgZGVmYXVsdDogcmV0 dXJuIFwibW92XFx0JTAsICUxXCI7CiAgICAgfQogICAiCi0gIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJ0eXBlIiAibW92X3Jl Zyxsb2FkXzQsc3RvcmVfNCxtb3ZfcmVnLG1vdl9yZWciKQotICAgKHNldF9h dHRyICJwb29sX3JhbmdlIiAiKiwxMDE4LCosKiwqIikKLSAgIChzZXRfYXR0 ciAiY29uZHMiICJjbG9iLG5vY29uZCxub2NvbmQsbm9jb25kLG5vY29uZCIp XSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwyLDYsMiwyLDIiKQorICAg KHNldF9hdHRyICJ0eXBlIiAibW92X3JlZyxsb2FkXzQsbW92X3JlZyxzdG9y ZV80LG1vdl9yZWcsbW92X3JlZyIpCisgICAoc2V0X2F0dHIgInBvb2xfcmFu Z2UiICIqLDEwMTgsKiwqLCosKiIpCisgICAoc2V0X2F0dHIgImNvbmRzIiAi Y2xvYixub2NvbmQsbm9jb25kLG5vY29uZCxub2NvbmQsbm9jb25kIildKQor CiA7OzsgPz8/IFRoaXMgc2hvdWxkIGhhdmUgYWx0ZXJuYXRpdmVzIGZvciBj b25zdGFudHMuCiAoZGVmaW5lX2luc24gIip0aHVtYjFfbW92c2ZfaW5zbiIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgICAgIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiPWwsbCw+LGwsIG0sKnIsKmgiKQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9wcjQ1NzAxLTEuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vcHI0NTcwMS0xLmMKaW5kZXgg YjI2MDExYi4uMTU5MTNkOCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FybS9wcjQ1NzAxLTEuYworKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL3ByNDU3MDEtMS5jCkBAIC0yLDcgKzIsNyBAQAog LyogeyBkZy1za2lwLWlmICIiIHsgISB7IGFybV90aHVtYjFfb2sgfHwgYXJt X3RodW1iMl9vayB9IH0gfSAqLwogLyogeyBkZy1vcHRpb25zICItbXRodW1i IC1PcyIgfSAgKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi cHVzaFx0XHtyMyIgeyB0YXJnZXQgeyAhIGFybSotKi11Y2xpbnV4ZmRwaWNl YWJpIH0gfSB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3QgIlxbXlwtXF1yOCIgeyB0YXJnZXQgeyAhIGFybSotKi11Y2xpbnV4 ZmRwaWNlYWJpIH0gfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci1ub3QgIlxbXlwtZVxdcjgiIHsgdGFyZ2V0IHsgISBhcm0qLSot dWNsaW51eGZkcGljZWFiaSB9IH0gfSB9ICovCiAKIGV4dGVybiBpbnQgaGlz dF92ZXJpZnk7CiBleHRlcm4gaW50IGExOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9wcjQ1NzAxLTIuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hcm0vcHI0NTcwMS0yLmMKaW5kZXggMzJlZWQ0 ZC4uYmIyZDM2ZSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9wcjQ1NzAxLTIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYXJtL3ByNDU3MDEtMi5jCkBAIC0yLDcgKzIsNyBAQAogLyogeyBk Zy1za2lwLWlmICIiIHsgISB7IGFybV90aHVtYjFfb2sgfHwgYXJtX3RodW1i Ml9vayB9IH0gfSAqLwogLyogeyBkZy1vcHRpb25zICItbXRodW1iIC1PcyIg fSAgKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicHVzaFx0 XHtyMyIgeyB0YXJnZXQgeyAhIGFybSotKi11Y2xpbnV4ZmRwaWNlYWJpIH0g fSB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg IlxbXlwtXF1yOCIgeyB0YXJnZXQgeyAhIGFybSotKi11Y2xpbnV4ZmRwaWNl YWJpIH0gfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3QgIlxbXlwtZVxdcjgiIHsgdGFyZ2V0IHsgISBhcm0qLSotdWNsaW51 eGZkcGljZWFiaSB9IH0gfSB9ICovCiAKIGV4dGVybiBpbnQgaGlzdF92ZXJp Znk7CiBleHRlcm4gaW50IGExOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FybS9wdXJlLWNvZGUvbm8tbGl0ZXJhbC1wb29sLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL3B1cmUtY29kZS9uby1s aXRlcmFsLXBvb2wuYwppbmRleCA0Yjg5M2ZkLi4zZGUxNjIwIDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL3B1cmUtY29kZS9u by1saXRlcmFsLXBvb2wuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYXJtL3B1cmUtY29kZS9uby1saXRlcmFsLXBvb2wuYwpAQCAtMSwxMiAr MSwyNCBAQAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0 aW9ucyAiLW1wdXJlLWNvZGUiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1w dXJlLWNvZGUgLW1mcDE2LWZvcm1hdD1pZWVlIiB9ICovCiAvKiB7IGRnLXNr aXAtaWYgIiIgeyAqLSotKiB9IHsgIi1nIiAiLWZwaWMiICItZlBJQyIgfSB7 ICIiIH0gfSAqLwogCitfX2ZwMTYgaGY7CiBmbG9hdCBzZjsKIGRvdWJsZSBk ZjsKIGxvbmcgbG9uZyBsOwogc3RhdGljIGNoYXIgKnAgPSAiSGVsbG8gV29y bGQiOwogCitfX2ZwMTYKK3Rlc3RzZnAxNiAoX19mcDE2ICpwKQoreworICBo ZiA9IDEuMzsKKyAgKnAgKz0gaGY7CisgIGlmICgqcCA+IDEuMTIzNGYpCisg ICAgcmV0dXJuIDIuMTIzNGY7CisgIGVsc2UKKyAgICByZXR1cm4gMy4xMjM0 ZjsKK30KKwogZmxvYXQKIHRlc3RzZiAoZmxvYXQgKnApCiB7CmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL3B1cmUtY29kZS9w dXJlLWNvZGUuZXhwIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9w dXJlLWNvZGUvcHVyZS1jb2RlLmV4cAppbmRleCBiZjdlNGFkLi5iMDVjZmQ2 IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL3B1 cmUtY29kZS9wdXJlLWNvZGUuZXhwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hcm0vcHVyZS1jb2RlL3B1cmUtY29kZS5leHAKQEAgLTI1LDEx ICsyNSw4IEBAIGlmICFbaW5mbyBleGlzdHMgREVGQVVMVF9DRkxBR1NdIHRo ZW4gewogICAgIHNldCBERUZBVUxUX0NGTEFHUyAiIC1hbnNpIC1wZWRhbnRp Yy1lcnJvcnMiCiB9CiAKLSMgVGhlIC1tcHVyZS1jb2RlIG9wdGlvbiBpcyBv bmx5IGF2YWlsYWJsZSBmb3IgTS1wcm9maWxlIHRhcmdldHMgdGhhdCBzdXBw b3J0Ci0jIHRoZSBNT1ZUIGluc3RydWN0aW9uLgotaWYgeyhbY2hlY2tfZWZm ZWN0aXZlX3RhcmdldF9hcm1fdGh1bWIyX29rXQotICAgICB8fCBbY2hlY2tf ZWZmZWN0aXZlX3RhcmdldF9hcm1fdGh1bWIxX21vdnRfb2tdKQotICAgICYm IFtjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2FybV9jb3J0ZXhfbV19IHRoZW4g eworIyBUaGUgLW1wdXJlLWNvZGUgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxl IGZvciBNLXByb2ZpbGUgdGFyZ2V0cy4KK2lmIHtbY2hlY2tfZWZmZWN0aXZl X3RhcmdldF9hcm1fY29ydGV4X21dfSB0aGVuIHsKICMgSW5pdGlhbGl6ZSBg ZGcnLgogZGctaW5pdAogCkBAIC01Niw0ICs1Myw0IEBAIHNldCBMVE9fVE9S VFVSRV9PUFRJT05TICR7c2F2ZWQtbHRvX3RvcnR1cmVfb3B0aW9uc30KIAog IyBBbGwgZG9uZS4KIGRnLWZpbmlzaAotfQorI30KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vdGh1bWIxLU9zLW11bHQuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vdGh1bWIxLU9zLW11bHQu YwppbmRleCBiOTg5YzQyLi45Mjc3MmQ0IDEwMDY0NAotLS0gYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL3RodW1iMS1Pcy1tdWx0LmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS90aHVtYjEtT3MtbXVsdC5j CkBAIC0xLDYgKzEsNyBAQAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KIC8q IHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV90aHVtYjFfb2sg fSAqLwogLyogeyBkZy1vcHRpb25zICItT3MiIH0gKi8KKy8qIHsgZGctc2tp cC1pZiAiLW1wdXJlLWNvZGUgZ2VuZXJhdGVzIGFuIGlubGluZSBtdWx0aXBs aWNhdGlvbiBjb2RlIHNlcXVlbmNlIiB7ICotKi0qIH0geyAiLW1wdXJlLWNv ZGUiIH0gfSAqLwogLyogeyBkZy1za2lwLWlmICIiIHsgISB7IGFybV90aHVt YjEgfSB9IH0gKi8KIAogaW50Cg== --0000000000000d18b405979b2f20--