From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21586 invoked by alias); 7 Jun 2019 09:46:40 -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 21575 invoked by uid 89); 7 Jun 2019 09:46:40 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-25.5 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=repeating X-HELO: mail-lf1-f52.google.com Received: from mail-lf1-f52.google.com (HELO mail-lf1-f52.google.com) (209.85.167.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 07 Jun 2019 09:46:38 +0000 Received: by mail-lf1-f52.google.com with SMTP id a9so1114647lff.7 for ; Fri, 07 Jun 2019 02:46:37 -0700 (PDT) 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; bh=lgzitFs3sWCDQnHO8t0kKaYREDOLumDsLqQwIoGPqdI=; b=JM06MRJhu9wQWaemZBLqLip/c2sGX/KufYJVRj+Hdh1SaWpjjn/eb8Y10CQpscGMQz WcXY+r8gnS1flSfg5fdCarYnQtnH42+tKAnU9bduMkq9sLkyevxvyRXjJ2djbYITYXCX YyrtnVJ8rU/AcjYaaBKNahNL9dDM3RcHCpioMEJtFYdlF5ADslbC751GahicZhJSVRKj JBLPrkoSSRvkfB/oubipei/R/H79gWChXWqoDwI/7ThmI3DfWn2NOI7ScokC1/cRAPrj HH9gLQTl3cdriEEbN2+JhblNsIHMUv5oaPUeooGAY9QIvaJFA/P378i6SZ2P02WaKr0W adVg== MIME-Version: 1.0 References: <1e630d13-8020-546d-646c-1810a8413e5e@arm.com> In-Reply-To: From: Prathamesh Kulkarni Date: Fri, 07 Jun 2019 09:46:00 -0000 Message-ID: Subject: Re: [AArch64] [SVE] PR88837 - Poor vector construction code in VL-specific mode To: Szabolcs Nagy , Prathamesh Kulkarni , gcc Patches , nd , Richard Sandiford Content-Type: multipart/mixed; boundary="000000000000c7f774058ab8b4c5" X-IsSubscribed: yes X-SW-Source: 2019-06/txt/msg00420.txt.bz2 --000000000000c7f774058ab8b4c5 Content-Type: text/plain; charset="UTF-8" Content-length: 3016 On Thu, 6 Jun 2019 at 16:54, Richard Sandiford wrote: > > Szabolcs Nagy writes: > > On 03/06/2019 08:26, Prathamesh Kulkarni wrote: > >> +++ b/gcc/testsuite/gcc.target/aarch64/sve/init_8.c > >> @@ -0,0 +1,32 @@ > >> +/* { dg-do assemble { target aarch64_asm_sve_ok } } */ > >> +/* { dg-options "-O2 -fno-schedule-insns -msve-vector-bits=256 --save-temps" } */ > >> + > >> +/* Case 5.2: Interleaved elements and constants. */ > >> + > >> +#include > >> + > >> +typedef int32_t vnx4si __attribute__((vector_size (32))); > >> + > >> +__attribute__((noipa)) > >> +vnx4si foo(int a, int b, int c, int d) > >> +{ > >> + return (vnx4si) { a, 1, b, 2, c, 3, d, 4 }; > >> +} > >> + > >> +/* > >> +foo: > >> +.LFB0: > >> + .cfi_startproc > >> + ptrue p0.s, vl8 > >> + mov z0.s, w3 > >> + adrp x3, .LANCHOR0 > >> + insr z0.s, w2 > >> + add x3, x3, :lo12:.LANCHOR0 > >> + insr z0.s, w1 > >> + ld1w z1.s, p0/z, [x3] > >> + insr z0.s, w0 > >> + zip1 z0.s, z0.s, z1.s > >> + ret > >> +*/ > >> + > >> +/* { dg-final { scan-assembler {\tmov\t(z[0-9]+\.s), w3\n\tadrp\t(x[0-9]+), \.LANCHOR0\n\tinsr\t\1, w2\n\tadd\t\2, \2, :lo12:\.LANCHOR0\n\tinsr\t\1, w1\n\tld1w\t(z[0-9]+\.s), p[0-9]+/z, \[\2\]\n\tinsr\t\1, w0\n\tzip1\t\1, \1, \3} } } */ > > > > this fails with tiny model when i'm testing aarch64-none-elf > > > > $ make check-c 'RUNTESTFLAGS=--target_board=aarch64-elf-qemu{-mcmodel=tiny} aarch64-sve.exp=init_8.c' > > ... > > FAIL: gcc.target/aarch64/sve/init_8.c -march=armv8.2-a+sve scan-assembler \\tmov\\t(z[0-9]+\\.s), w3\\n\\tadrp\\t(x[0-9]+), > > \\.LANCHOR0\\n\\tinsr\\t\\1, w2\\n\\tadd\\t\\2, \\2, :lo12:\\.LANCHOR0\\n\\tinsr\\t\\1, w1\\n\\tld1w\\t(z[0-9]+\\.s), p[0-9]+/z, > > \\[\\2\\]\\n\\tinsr\\t\\1, w0\\n\\tzip1\\t\\1, \\1, \\3 > > > > i think you need conditional scan asm for { target aarch64_small } > > and { target aarch64_tiny } or just skip the test for tiny, > > Maybe we should remove the address calculation and replace the ld1w > address with \[[^]]*\]. All that really matters for this test is that > the vector is loaded from memory. > > > but even then matching exact register name and instruction scheduling > > seems fragile. > > The only hard-coded register names are the parameters, which are > guaranteed by the ABI. Testing for those should be fine. > > The dg-options pass -fno-schedule-insns, but I guess they should > also pass -fno-schedule-insns2. Or maybe just use -O instead. > We can always revisit this later if even that isn't enough to make > the order stable. Thanks for the suggestions. Passing -fno-schedule-insns2 does seem to make the order stable. For init_1.c to init_4.c there were no intervening instructions, and for remaining tests, the patch passes -fno-schedule-insns2 and adjusts dg-scan accordingly. I verified the tests pass with -mcmodel=tiny. OK to commit ? Thanks, Prathamesh > > Richard --000000000000c7f774058ab8b4c5 Content-Type: text/plain; charset="US-ASCII"; name="pr88837-tests-1.txt" Content-Disposition: attachment; filename="pr88837-tests-1.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwlwjjkt0 Content-length: 13526 MjAxOS0wNi0wNyAgUHJhdGhhbWVzaCBLdWxrYXJuaSAgPHByYXRoYW1lc2gu a3Vsa2FybmlAbGluYXJvLm9yZz4KCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9z dmUvaW5pdF81LmM6IFBhc3MgLWZuby1zY2hlZHVsZS1pbnNuczIuCglVcGRh dGUgYXNzZW1ibHkgaW4gY29tbWVudHMgYW5kIGFkanVzdCBkZy1zY2FuLgoJ KiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfNi5jOiBMaWtld2lzZS4K CSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzcuYzogTGlrZXdpc2Uu CgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF84LmM6IExpa2V3aXNl LgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfOS5jOiBMaWtld2lz ZS4KCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzEwLmM6IExpa2V3 aXNlLgoJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfMTEuYzogTGlr ZXdpc2UuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF8xMi5jOiBM aWtld2lzZS4KCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvaW5pdF8xMC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfMTAuYwppbmRleCA5ZDZlMmRmYzg3 Ni4uMDg0MzdlNWQ4ZjEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzEwLmMKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfMTAuYwpAQCAtMSw1 ICsxLDUgQEAKIC8qIHsgZGctZG8gYXNzZW1ibGUgeyB0YXJnZXQgYWFyY2g2 NF9hc21fc3ZlX29rIH0gfSAqLwotLyogeyBkZy1vcHRpb25zICItTzIgLWZu by1zY2hlZHVsZS1pbnNucyAtbXN2ZS12ZWN0b3ItYml0cz0yNTYgLS1zYXZl LXRlbXBzIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZm5vLXNjaGVk dWxlLWluc25zIC1mbm8tc2NoZWR1bGUtaW5zbnMyIC1tc3ZlLXZlY3Rvci1i aXRzPTI1NiAtLXNhdmUtdGVtcHMiIH0gKi8KIAogLyogQ2FzZSA1LjQ6IElu dGVybGVhdmVkIHJlcGVhdGluZyBlbGVtZW50cyBhbmQgbm9uLXJlcGVhdGlu ZyBlbGVtZW50cy4gICovCiAKQEAgLTE3LDEzICsxNywxNCBAQCB2bng0c2kg Zm9vKGludCBhLCBpbnQgYiwgaW50IGMsIGludCBmKQogZm9vOgogLkxGQjA6 CiAgICAgICAgIC5jZmlfc3RhcnRwcm9jCi0gICAgICAgIG1vdiAgICAgejAu cywgdzIKICAgICAgICAgbW92ICAgICB6MS5zLCB3MworICAgICAgICBtb3Yg ICAgIHowLnMsIHcyCiAgICAgICAgIGluc3IgICAgejAucywgdzEKLSAgICAg ICAgcHRydWUgICBwMC5zLCB2bDgKICAgICAgICAgaW5zciAgICB6MC5zLCB3 MAogICAgICAgICB6aXAxICAgIHowLnMsIHowLnMsIHoxLnMKKyAgICAgICAg cHRydWUgICBwMC5zLCB2bDgKKyAgICAgICAgc3QxdyAgICB6MC5zLCBwMCwg W3g4XQogICAgICAgICByZXQKICovCiAKLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciB7XHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzNcblx0bW92XHQo elswLTldK1wucyksIHcyXG4uKlxuXHRpbnNyXHRcMiwgdzFcblx0aW5zclx0 XDIsIHcwXG5cdHppcDFcdFwyLCBcMiwgXDF9IH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcdG1vdlx0KHpbMC05XStcLnMpLCB3 M1xuXHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzJcblx0aW5zclx0XDIsIHcxXG5c dGluc3JcdFwyLCB3MFxuXHR6aXAxXHRcMiwgXDIsIFwxfSB9IH0gKi8KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2 ZS9pbml0XzExLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC9zdmUvaW5pdF8xMS5jCmluZGV4IGU1MGNkNTRlZjEzLi43ODY3NjVkYmZi NyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvc3ZlL2luaXRfMTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvaW5pdF8xMS5jCkBAIC0xLDUgKzEsNSBAQAogLyog eyBkZy1kbyBhc3NlbWJsZSB7IHRhcmdldCBhYXJjaDY0X2FzbV9zdmVfb2sg fSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZm5vLXNjaGVkdWxlLWlu c25zIC1tc3ZlLXZlY3Rvci1iaXRzPTI1NiAtLXNhdmUtdGVtcHMiIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLU8yIC1mbm8tc2NoZWR1bGUtaW5zbnMgLWZu by1zY2hlZHVsZS1pbnNuczIgLW1zdmUtdmVjdG9yLWJpdHM9MjU2IC0tc2F2 ZS10ZW1wcyIgfSAqLwogCiAvKiBDYXNlIDUuNTogSW50ZXJsZWF2ZWQgcmVw ZWF0aW5nIGVsZW1lbnRzIGFuZCB0cmFpbGluZyBzYW1lIGVsZW1lbnRzLiAg Ki8KIApAQCAtMTgsMTEgKzE4LDEyIEBAIGZvbzoKIC5MRkIwOgogICAgICAg ICAuY2ZpX3N0YXJ0cHJvYwogICAgICAgICBtb3YgICAgIHowLnMsIHcxCi0g ICAgICAgIG1vdiAgICAgejEucywgdzIKICAgICAgICAgaW5zciAgICB6MC5z LCB3MAotICAgICAgICBwdHJ1ZSAgIHAwLnMsIHZsOAorICAgICAgICBtb3Yg ICAgIHoxLnMsIHcyCiAgICAgICAgIHppcDEgICAgejAucywgejAucywgejEu cworICAgICAgICBwdHJ1ZSAgIHAwLnMsIHZsOAorICAgICAgICBzdDF3ICAg IHowLnMsIHAwLCBbeDhdCiAgICAgICAgIHJldAogKi8KIAotLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcdG1vdlx0KHpbMC05XStcLnMpLCB3 MVxuXHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzJcblx0aW5zclx0XDEsIHcwXG4u Klx0emlwMVx0XDEsIFwxLCBcMn0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIge1x0bW92XHQoelswLTldK1wucyksIHcxXG5cdGlu c3JcdFwxLCB3MFxuXHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzJcblx0emlwMVx0 XDEsIFwxLCBcMn0gfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF8xMi5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfMTIuYwppbmRleCAy MWQ5ZTc2NDM2MC4uZTY1YjFhZjQ3NWMgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzEyLmMKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfMTIu YwpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gYXNzZW1ibGUgeyB0YXJn ZXQgYWFyY2g2NF9hc21fc3ZlX29rIH0gfSAqLwotLyogeyBkZy1vcHRpb25z ICItTzIgLWZuby1zY2hlZHVsZS1pbnNucyAtbXN2ZS12ZWN0b3ItYml0cz0y NTYgLS1zYXZlLXRlbXBzIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAt Zm5vLXNjaGVkdWxlLWluc25zIC1mbm8tc2NoZWR1bGUtaW5zbnMyIC1tc3Zl LXZlY3Rvci1iaXRzPTI1NiAtLXNhdmUtdGVtcHMiIH0gKi8KIAogLyogQ2Fz ZSA1LjU6IEludGVybGVhdmVkIHJlcGVhdGluZyBlbGVtZW50cyBhbmQgdHJh aWxpbmcgc2FtZSBlbGVtZW50cy4gICovCiAKQEAgLTE3LDE0ICsxNywxNSBA QCB2bng0c2kgZm9vKGludCBhLCBpbnQgYiwgaW50IGYpCiBmb286CiAuTEZC MDoKICAgICAgICAgLmNmaV9zdGFydHByb2MKLSAgICAgICAgbW92ICAgICB6 MC5zLCB3MAogICAgICAgICBtb3YgICAgIHoxLnMsIHcyCisgICAgICAgIG1v diAgICAgejAucywgdzAKICAgICAgICAgaW5zciAgICB6MC5zLCB3MQotICAg ICAgICBwdHJ1ZSAgIHAwLnMsIHZsOAogICAgICAgICBpbnNyICAgIHowLnMs IHcxCiAgICAgICAgIGluc3IgICAgejAucywgdzEKICAgICAgICAgemlwMSAg ICB6MC5zLCB6MC5zLCB6MS5zCisgICAgICAgIHB0cnVlICAgcDAucywgdmw4 CisgICAgICAgIHN0MXcgICAgejAucywgcDAsIFt4OF0KICAgICAgICAgcmV0 CiAqLwogCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge1x0bW92 XHQoelswLTldK1wucyksIHcyXG5cdG1vdlx0KHpbMC05XStcLnMpLCB3MFxu Lipcblx0aW5zclx0XDIsIHcxXG5cdGluc3JcdFwyLCB3MVxuXHRpbnNyXHRc MiwgdzFcblx0emlwMVx0XDIsIFwyLCBcMX0gfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIge1x0bW92XHQoelswLTldK1wucyksIHcy XG5cdG1vdlx0KHpbMC05XStcLnMpLCB3MFxuXHRpbnNyXHRcMiwgdzFcblx0 aW5zclx0XDIsIHcxXG5cdGluc3JcdFwyLCB3MVxuXHR6aXAxXHRcMiwgXDIs IFwxfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3N2ZS9pbml0XzUuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzUuYwppbmRleCBlN2ZiZGQxYTJh YS4uYWNhYjZkMmQ0MDUgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzUuYworKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF81LmMKQEAgLTEsNSAr MSw1IEBACiAvKiB7IGRnLWRvIGFzc2VtYmxlIHsgdGFyZ2V0IGFhcmNoNjRf YXNtX3N2ZV9vayB9IH0gKi8KLS8qIHsgZGctb3B0aW9ucyAiLU8yIC1mbm8t c2NoZWR1bGUtaW5zbnMgLW1zdmUtdmVjdG9yLWJpdHM9MjU2IC0tc2F2ZS10 ZW1wcyIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZuby1zY2hlZHVs ZS1pbnNucyAtZm5vLXNjaGVkdWxlLWluc25zMiAtbXN2ZS12ZWN0b3ItYml0 cz0yNTYgLS1zYXZlLXRlbXBzIiB9ICovCiAKIC8qIENhc2UgMzogVHJhaWxp bmcgc2FtZSBlbGVtZW50LiAgKi8gCiAKQEAgLTE4LDEwICsxOCwxMSBAQCBm b286CiAuTEZCMDoKICAgICAgICAgLmNmaV9zdGFydHByb2MKICAgICAgICAg bW92ICAgICB6MC5zLCB3MgotICAgICAgICBwdHJ1ZSAgIHAwLnMsIHZsOAog ICAgICAgICBpbnNyICAgIHowLnMsIHcxCiAgICAgICAgIGluc3IgICAgejAu cywgdzAKKyAgICAgICAgcHRydWUgICBwMC5zLCB2bDgKKyAgICAgICAgc3Qx dyAgICB6MC5zLCBwMCwgW3g4XQogICAgICAgICByZXQKICovCiAKLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7XHRtb3ZcdCh6WzAtOV0rXC5z KSwgdzJcbi4qXHRpbnNyXHRcMSwgdzFcblx0aW5zclx0XDEsIHcwfSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7XHRtb3ZcdCh6 WzAtOV0rXC5zKSwgdzJcblx0aW5zclx0XDEsIHcxXG5cdGluc3JcdFwxLCB3 MH0gfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUvaW5pdF82LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF82LmMKaW5kZXggZjZmM2RhNTk1OGQu LmZkNmQ0YjliODVhIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF82LmMKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfNi5jCkBAIC0xLDUgKzEs NSBAQAogLyogeyBkZy1kbyBhc3NlbWJsZSB7IHRhcmdldCBhYXJjaDY0X2Fz bV9zdmVfb2sgfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtZm5vLXNj aGVkdWxlLWluc25zIC1tc3ZlLXZlY3Rvci1iaXRzPTI1NiAtLXNhdmUtdGVt cHMiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mbm8tc2NoZWR1bGUt aW5zbnMgLWZuby1zY2hlZHVsZS1pbnNuczIgLW1zdmUtdmVjdG9yLWJpdHM9 MjU2IC0tc2F2ZS10ZW1wcyIgfSAqLwogCiAvKiBDYXNlIDM6IFRyYWlsaW5n IHNhbWUgZWxlbWVudC4gICovIAogCkBAIC0xOCwxMSArMTgsMTIgQEAgZm9v OgogLkxGQjA6CiAgICAgICAgIC5jZmlfc3RhcnRwcm9jCiAgICAgICAgIG1v diAgICAgejAucywgdzIKLSAgICAgICAgcHRydWUgICBwMC5zLCB2bDgKICAg ICAgICAgaW5zciAgICB6MC5zLCB3MQogICAgICAgICBpbnNyICAgIHowLnMs IHcwCiAgICAgICAgIHJldiAgICAgejAucywgejAucworICAgICAgICBwdHJ1 ZSAgIHAwLnMsIHZsOAorICAgICAgICBzdDF3ICAgIHowLnMsIHAwLCBbeDhd CiAgICAgICAgIHJldAogKi8KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyIHtcdG1vdlx0KHpbMC05XStcLnMpLCB3MlxuLipcdGluc3JcdFwx LCB3MVxuXHRpbnNyXHRcMSwgdzBcblx0cmV2XHRcMSwgXDF9IH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcdG1vdlx0KHpbMC05 XStcLnMpLCB3MlxuXHRpbnNyXHRcMSwgdzFcblx0aW5zclx0XDEsIHcwXG5c dHJldlx0XDEsIFwxfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzcuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzcuYwppbmRleCBl MzEwNGEzNWYxMy4uY2Y2OTI2ZDNhNzMgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzcuYworKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvaW5pdF83LmMK QEAgLTEsNSArMSw1IEBACiAvKiB7IGRnLWRvIGFzc2VtYmxlIHsgdGFyZ2V0 IGFhcmNoNjRfYXNtX3N2ZV9vayB9IH0gKi8KLS8qIHsgZGctb3B0aW9ucyAi LU8yIC1mbm8tc2NoZWR1bGUtaW5zbnMgLW1zdmUtdmVjdG9yLWJpdHM9MjU2 IC0tc2F2ZS10ZW1wcyIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZu by1zY2hlZHVsZS1pbnNucyAtZm5vLXNjaGVkdWxlLWluc25zMiAtbXN2ZS12 ZWN0b3ItYml0cz0yNTYgLS1zYXZlLXRlbXBzIiB9ICovCiAKIC8qIENhc2Ug NS4xOiBBbGwgZWxlbWVudHMuICAqLyAKIApAQCAtMTgsNyArMTgsNiBAQCBm b286CiAuTEZCMDoKICAgICAgICAgLmNmaV9zdGFydHByb2MKICAgICAgICAg bW92ICAgICB6MC5zLCB3NwotICAgICAgICBwdHJ1ZSAgIHAwLnMsIHZsOAog ICAgICAgICBpbnNyICAgIHowLnMsIHc2CiAgICAgICAgIGluc3IgICAgejAu cywgdzUKICAgICAgICAgaW5zciAgICB6MC5zLCB3NApAQCAtMjYsNyArMjUs OSBAQCBmb286CiAgICAgICAgIGluc3IgICAgejAucywgdzIKICAgICAgICAg aW5zciAgICB6MC5zLCB3MQogICAgICAgICBpbnNyICAgIHowLnMsIHcwCisg ICAgICAgIHB0cnVlICAgcDAucywgdmw4CisgICAgICAgIHN0MXcgICAgejAu cywgcDAsIFt4OF0KICAgICAgICAgcmV0CiAqLwogCi0vKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIge1x0bW92XHQoelswLTldK1wucyksIHc3XG4u Klx0aW5zclx0XDEsIHc2XG5cdGluc3JcdFwxLCB3NVxuXHRpbnNyXHRcMSwg dzRcblx0aW5zclx0XDEsIHczXG5cdGluc3JcdFwxLCB3MlxuXHRpbnNyXHRc MSwgdzFcblx0aW5zclx0XDEsIHcwfSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlciB7XHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzdcblx0 aW5zclx0XDEsIHc2XG5cdGluc3JcdFwxLCB3NVxuXHRpbnNyXHRcMSwgdzRc blx0aW5zclx0XDEsIHczXG5cdGluc3JcdFwxLCB3MlxuXHRpbnNyXHRcMSwg dzFcblx0aW5zclx0XDEsIHcwfSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzguYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzguYwpp bmRleCA3ZmYzZTA4NDljYy4uYjNlZDMyZTRjODIgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzguYwor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvaW5p dF84LmMKQEAgLTEsNSArMSw1IEBACiAvKiB7IGRnLWRvIGFzc2VtYmxlIHsg dGFyZ2V0IGFhcmNoNjRfYXNtX3N2ZV9vayB9IH0gKi8KLS8qIHsgZGctb3B0 aW9ucyAiLU8yIC1mbm8tc2NoZWR1bGUtaW5zbnMgLW1zdmUtdmVjdG9yLWJp dHM9MjU2IC0tc2F2ZS10ZW1wcyIgfSAqLworLyogeyBkZy1vcHRpb25zICIt TzIgLWZuby1zY2hlZHVsZS1pbnNucyAtZm5vLXNjaGVkdWxlLWluc25zMiAt bXN2ZS12ZWN0b3ItYml0cz0yNTYgLS1zYXZlLXRlbXBzIiB9ICovCiAKIC8q IENhc2UgNS4yOiBJbnRlcmxlYXZlZCBlbGVtZW50cyBhbmQgY29uc3RhbnRz LiAgKi8gCiAKQEAgLTE4LDE1ICsxOCwxNiBAQCBmb286CiAuTEZCMDoKICAg ICAgICAgLmNmaV9zdGFydHByb2MKICAgICAgICAgcHRydWUgICBwMC5zLCB2 bDgKKyAgICAgICAgYWRycCAgICB4NCwgLkxBTkNIT1IwCisgICAgICAgIGFk ZCAgICAgeDQsIHg0LCA6bG8xMjouTEFOQ0hPUjAKKyAgICAgICAgbGQxdyAg ICB6MS5zLCBwMC96LCBbeDRdCiAgICAgICAgIG1vdiAgICAgejAucywgdzMK LSAgICAgICAgYWRycCAgICB4MywgLkxBTkNIT1IwCiAgICAgICAgIGluc3Ig ICAgejAucywgdzIKLSAgICAgICAgYWRkICAgICB4MywgeDMsIDpsbzEyOi5M QU5DSE9SMAogICAgICAgICBpbnNyICAgIHowLnMsIHcxCi0gICAgICAgIGxk MXcgICAgejEucywgcDAveiwgW3gzXQogICAgICAgICBpbnNyICAgIHowLnMs IHcwCiAgICAgICAgIHppcDEgICAgejAucywgejAucywgejEucworICAgICAg ICBzdDF3ICAgIHowLnMsIHAwLCBbeDhdCiAgICAgICAgIHJldAogKi8KIAot LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcdG1vdlx0KHpbMC05 XStcLnMpLCB3M1xuXHRhZHJwXHQoeFswLTldKyksIFwuTEFOQ0hPUjBcblx0 aW5zclx0XDEsIHcyXG5cdGFkZFx0XDIsIFwyLCA6bG8xMjpcLkxBTkNIT1Iw XG5cdGluc3JcdFwxLCB3MVxuXHRsZDF3XHQoelswLTldK1wucyksIHBbMC05 XSsveiwgXFtcMlxdXG5cdGluc3JcdFwxLCB3MFxuXHR6aXAxXHRcMSwgXDEs IFwzfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7 XHRsZDF3XHQoelswLTldK1wucyksIHBbMC05XSsveiwgXFt4WzAtOV0rXF1c blx0bW92XHQoelswLTldK1wucyksIHczXG5cdGluc3JcdFwyLCB3MlxuXHRp bnNyXHRcMiwgdzFcblx0aW5zclx0XDIsIHcwXG5cdHppcDFcdFwyLCBcMiwg XDF9IH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvc3ZlL2luaXRfOS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfOS5jCmluZGV4IDRkM2M1OWIzYmY4 Li4zMzNiZDRmMjg1MiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL2luaXRfOS5jCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9pbml0XzkuYwpAQCAtMSw1ICsx LDUgQEAKIC8qIHsgZGctZG8gYXNzZW1ibGUgeyB0YXJnZXQgYWFyY2g2NF9h c21fc3ZlX29rIH0gfSAqLwotLyogeyBkZy1vcHRpb25zICItTzIgLWZuby1z Y2hlZHVsZS1pbnNucyAtbXN2ZS12ZWN0b3ItYml0cz0yNTYgLS1zYXZlLXRl bXBzIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZm5vLXNjaGVkdWxl LWluc25zIC1mbm8tc2NoZWR1bGUtaW5zbnMyIC1tc3ZlLXZlY3Rvci1iaXRz PTI1NiAtLXNhdmUtdGVtcHMiIH0gKi8KIAogLyogQ2FzZSA1LjM6IFJlcGVh dGVkIGVsZW1lbnRzLiAgKi8gCiAKQEAgLTE5LDkgKzE5LDEwIEBAIGZvbzoK ICAgICAgICAgLmNmaV9zdGFydHByb2MKICAgICAgICAgbW92ICAgICB6MC5z LCB3MAogICAgICAgICBtb3YgICAgIHoxLnMsIHcxCi0gICAgICAgIHB0cnVl ICAgcDAucywgdmw4CiAgICAgICAgIHppcDEgICAgejAucywgejAucywgejEu cworICAgICAgICBwdHJ1ZSAgIHAwLnMsIHZsOAorICAgICAgICBzdDF3ICAg IHowLnMsIHAwLCBbeDhdCiAgICAgICAgIHJldAogKi8KIAotLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtcdG1vdlx0KHpbMC05XStcLnMpLCB3 MFxuXHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzFcbi4qXHR6aXAxXHRcMSwgXDEs IFwyfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7 XHRtb3ZcdCh6WzAtOV0rXC5zKSwgdzBcblx0bW92XHQoelswLTldK1wucyks IHcxXG5cdHppcDFcdFwxLCBcMSwgXDJ9IH0gfSAqLwo= --000000000000c7f774058ab8b4c5--