From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 99961 invoked by alias); 12 Jun 2017 07:31:52 -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 99945 invoked by uid 89); 12 Jun 2017 07:31:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=ww, 00f X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0077.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.77) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 12 Jun 2017 07:31:50 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com (10.173.74.140) by DB6PR0802MB2392.eurprd08.prod.outlook.com (10.172.250.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Mon, 12 Jun 2017 07:31:51 +0000 Received: from VI1PR0801MB2031.eurprd08.prod.outlook.com ([fe80::b9d4:b6e7:35f9:e399]) by VI1PR0801MB2031.eurprd08.prod.outlook.com ([fe80::b9d4:b6e7:35f9:e399%17]) with mapi id 15.01.1157.017; Mon, 12 Jun 2017 07:31:51 +0000 From: Tamar Christina To: GCC Patches CC: nd , James Greenhalgh , "Marcus Shawcroft" , Richard Earnshaw Subject: Re: [PATCH][GCC][AArch64] optimize float immediate moves (2 /4) - HF/DF/SF mode. Date: Mon, 12 Jun 2017 07:31:00 -0000 Message-ID: References: In-Reply-To: authentication-results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB6PR0802MB2392;7:fRvLaLISvEyD+0HwlQNSL0Bkls48JBW70peMkokOdUBGak2pg169576i7y952w3KE9/dekXo/XpKBlENAJJoshl3kxU5bI28IsIy3NvfdRjaOZ6cU2R1tHUiazWbQhmvSxMHJtG9McfvbEbqIDnsaOOjt19f2FRuwJICt+3ALDFiq9Q49Ph1RKgMP5IKtW1je9k16e1wuz9+HfKppb4vviFfBKKVvHhpyRqYPyfgcee75LcW+oU0c9AMrB/ZCoHlofWTD8F+7YdsZYdsim6Ds4sL6XrdohF45lnSdD7IUD6cQ/Jt1iy5eGZ35/PHR2ikBRVU/SYNpPnf2ncQ/CH9Yw== x-ms-traffictypediagnostic: DB6PR0802MB2392: x-ms-office365-filtering-correlation-id: 85a09d96-3a47-4727-9004-08d4b1651784 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081);SRVR:DB6PR0802MB2392; nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(22074186197030)(183786458502308); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0802MB2392;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0802MB2392; x-forefront-prvs: 03361FCC43 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(39840400002)(39400400002)(39850400002)(39450400003)(39410400002)(377454003)(377424004)(53754006)(38730400002)(3280700002)(4326008)(33656002)(110136004)(2906002)(14454004)(53936002)(6246003)(8676002)(8936002)(3660700001)(3846002)(229853002)(5660300001)(74316002)(81166006)(102836003)(305945005)(86362001)(7736002)(9686003)(54906002)(99286003)(189998001)(6916009)(99936001)(53546009)(55016002)(2950100002)(5250100002)(76176999)(54356999)(50986999)(25786009)(7696004)(478600001)(66066001)(6436002)(6506006)(2900100001)(72206003)(14773001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2392;H:VI1PR0801MB2031.eurprd08.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: multipart/mixed; boundary="_002_VI1PR0801MB20316A7D3165E0EDD14CD43DFFCD0VI1PR0801MB2031_" MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2017 07:31:50.5615 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2392 X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg00744.txt.bz2 --_002_VI1PR0801MB20316A7D3165E0EDD14CD43DFFCD0VI1PR0801MB2031_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1321 Hi All, Updating this patch with the feedback I've received from patch 1/4. Thanks, Tamar ________________________________________ From: gcc-patches-owner@gcc.gnu.org on beha= lf of Tamar Christina Sent: Wednesday, June 7, 2017 12:38:37 PM To: GCC Patches Cc: nd; James Greenhalgh; Marcus Shawcroft; Richard Earnshaw Subject: [PATCH][GCC][AArch64] optimize float immediate moves (2 /4) - HF/D= F/SF mode. Hi All, This patch adds support for creating floating point constants using mov immediate instructions. The movi SIMD instruction can be used for HFmode and SFmode constants, eg. for -0.0f we generate: movi v0.2s, 0x80, lsl 24 More complex constants can be generated using an integer MOV or MOV+MOVK: mov w0, 48128 movk w0, 0x47f0, lsl 16 fmov s0, w0 We allow up to 3 instructions as this allows all HF, SF and most DF constants to be generated without a literal load, and is overall best for codesize. Regression tested on aarch64-none-linux-gnu and no regressions. OK for trunk? Thanks, Tamar gcc/ 2017-06-07 Tamar Christina * config/aarch64/aarch64.md (mov): Generalize. (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): Add integer and movi cases. --_002_VI1PR0801MB20316A7D3165E0EDD14CD43DFFCD0VI1PR0801MB2031_ Content-Type: text/x-patch; name="float-move-2-r2.patch" Content-Description: float-move-2-r2.patch Content-Disposition: attachment; filename="float-move-2-r2.patch"; size=5664; creation-date="Mon, 12 Jun 2017 07:31:47 GMT"; modification-date="Mon, 12 Jun 2017 07:31:47 GMT" Content-Transfer-Encoding: base64 Content-length: 7678 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kIGIv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQubWQKaW5kZXggNWFkYzVlZGI4 ZGRlOWMzMDQ1MGIwNDkzMmEzN2M0MWY4NGNjNWVkMS4uNjJhZDc2NzMxZDJj NWI0YjNkMDJkZWY4YzJiMTQ1N2M3MTNjMmQ4ZSAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQubWQKKysrIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQubWQKQEAgLTExNjcsNjYgKzExNjcsMTIwIEBACiAg IH0KICkKIAotKGRlZmluZV9pbnNuICIqbW92aGZfYWFyY2g2NCIKLSAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6SEYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQi ICI9dyx3ICAsP3Isdyx3LG0scixtICxyIikKLQkobWF0Y2hfb3BlcmFuZDpI RiAxICJnZW5lcmFsX29wZXJhbmQiICAgICAgIlkgLD9yWSwgdyx3LG0sdyxt LHJZLHIiKSldCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbW92aGZfYWFy Y2g2NCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEYgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiICI9dyx3ICAsP3Isdyx3ICAsdyAgLHcsbSxyLG0gLHIi KQorCShtYXRjaF9vcGVyYW5kOkhGIDEgImdlbmVyYWxfb3BlcmFuZCIgICAg ICAiWSAsP3JZLCB3LHcsVWZjLFV2aSxtLHcsbSxyWSxyIikpXQogICAiVEFS R0VUX0ZMT0FUICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwg SEZtb2RlKQotICAgIHx8IGFhcmNoNjRfcmVnX29yX2ZwX3plcm8gKG9wZXJh bmRzWzFdLCBIRm1vZGUpKSIKKyAgICB8fCBhYXJjaDY0X3JlZ19vcl9mcF9m bG9hdCAob3BlcmFuZHNbMV0sIEhGbW9kZSkpIgogICAiQAogICAgbW92aVxc dCUwLjRoLCAjMAotICAgbW92XFx0JTAuaFswXSwgJXcxCisgICBmbW92XFx0 JXMwLCAldzEKICAgIHVtb3ZcXHQldzAsICUxLmhbMF0KICAgIG1vdlxcdCUw LmhbMF0sICUxLmhbMF0KKyAgIGZtb3ZcXHQlczAsICUxCisgICAqIHJldHVy biBhYXJjaDY0X291dHB1dF9zY2FsYXJfc2ltZF9tb3ZfaW1tZWRpYXRlIChv cGVyYW5kc1sxXSwgU0ltb2RlKTsKICAgIGxkclxcdCVoMCwgJTEKICAgIHN0 clxcdCVoMSwgJTAKICAgIGxkcmhcXHQldzAsICUxCiAgICBzdHJoXFx0JXcx LCAlMAogICAgbW92XFx0JXcwLCAldzEiCi0gIFsoc2V0X2F0dHIgInR5cGUi ICJuZW9uX21vdmUsbmVvbl9mcm9tX2dwLG5lb25fdG9fZ3AsbmVvbl9tb3Zl LFwKLSAgICAgICAgICAgICAgICAgICAgIGZfbG9hZHMsZl9zdG9yZXMsbG9h ZDEsc3RvcmUxLG1vdl9yZWciKQotICAgKHNldF9hdHRyICJzaW1kIiAieWVz LHllcyx5ZXMseWVzLCosKiwqLCosKiIpXQorICAiJiYgY2FuX2NyZWF0ZV9w c2V1ZG9fcCAoKQorICAgJiYgIWFhcmNoNjRfY2FuX2NvbnN0X21vdmlfcnR4 X3AgKG9wZXJhbmRzWzFdLCBIRm1vZGUpCisgICAmJiAhYWFyY2g2NF9mbG9h dF9jb25zdF9yZXByZXNlbnRhYmxlX3AgKG9wZXJhbmRzWzFdKQorICAgJiYg IGFhcmNoNjRfZmxvYXRfY29uc3RfcnR4X3AgKG9wZXJhbmRzWzFdKSIKKyAg Wyhjb25zdF9pbnQgMCldCisgICJ7CisgICAgdW5zaWduZWQgSE9TVF9XSURF X0lOVCBpdmFsOworICAgIGlmICghYWFyY2g2NF9yZWludGVycHJldF9mbG9h dF9hc19pbnQgKG9wZXJhbmRzWzFdLCAmaXZhbCkpCisgICAgICBGQUlMOwor CisgICAgcnR4IHRtcCA9IGdlbl9yZWdfcnR4IChTSW1vZGUpOworICAgIGFh cmNoNjRfZXhwYW5kX21vdl9pbW1lZGlhdGUgKHRtcCwgZ2VuX2ludF9tb2Rl IChpdmFsLCBTSW1vZGUpKTsKKyAgICB0bXAgPSBzaW1wbGlmeV9nZW5fc3Vi cmVnIChISW1vZGUsIHRtcCwgU0ltb2RlLCAwKTsKKyAgICBlbWl0X21vdmVf aW5zbiAob3BlcmFuZHNbMF0sIGdlbl9sb3dwYXJ0IChIRm1vZGUsIHRtcCkp OworICAgIERPTkU7CisgIH0iCisgIFsoc2V0X2F0dHIgInR5cGUiICJuZW9u X21vdmUsZl9tY3IsbmVvbl90b19ncCxuZW9uX21vdmUsZmNvbnN0cywgXAor CQkgICAgIG5lb25fbW92ZSxmX2xvYWRzLGZfc3RvcmVzLGxvYWQxLHN0b3Jl MSxtb3ZfcmVnIikKKyAgIChzZXRfYXR0ciAic2ltZCIgInllcywqLHllcyx5 ZXMsKix5ZXMsKiwqLCosKiwqIildCiApCiAKLShkZWZpbmVfaW5zbiAiKm1v dnNmX2FhcmNoNjQiCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiPXcsdyAgLD9yLHcsdyAgLHcsbSxyLG0g LHIiKQotCShtYXRjaF9vcGVyYW5kOlNGIDEgImdlbmVyYWxfb3BlcmFuZCIg ICAgICAiWSAsP3JZLCB3LHcsVWZjLG0sdyxtLHJZLHIiKSldCisoZGVmaW5l X2luc25fYW5kX3NwbGl0ICIqbW92c2ZfYWFyY2g2NCIKKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0YgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9dyx3 ICAsP3Isdyx3ICAsdyAgLHcsbSxyLG0gLHIsciIpCisJKG1hdGNoX29wZXJh bmQ6U0YgMSAiZ2VuZXJhbF9vcGVyYW5kIiAgICAgICJZICw/clksIHcsdyxV ZmMsVXZpLG0sdyxtLHJZLHIsTSIpKV0KICAgIlRBUkdFVF9GTE9BVCAmJiAo cmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFNGbW9kZSkKLSAgICB8 fCBhYXJjaDY0X3JlZ19vcl9mcF96ZXJvIChvcGVyYW5kc1sxXSwgU0Ztb2Rl KSkiCisgICAgfHwgYWFyY2g2NF9yZWdfb3JfZnBfZmxvYXQgKG9wZXJhbmRz WzFdLCBTRm1vZGUpKSIKICAgIkAKICAgIG1vdmlcXHQlMC4ycywgIzAKICAg IGZtb3ZcXHQlczAsICV3MQogICAgZm1vdlxcdCV3MCwgJXMxCiAgICBmbW92 XFx0JXMwLCAlczEKICAgIGZtb3ZcXHQlczAsICUxCisgICAqIHJldHVybiBh YXJjaDY0X291dHB1dF9zY2FsYXJfc2ltZF9tb3ZfaW1tZWRpYXRlIChvcGVy YW5kc1sxXSwgU0ltb2RlKTsKICAgIGxkclxcdCVzMCwgJTEKICAgIHN0clxc dCVzMSwgJTAKICAgIGxkclxcdCV3MCwgJTEKICAgIHN0clxcdCV3MSwgJTAK LSAgIG1vdlxcdCV3MCwgJXcxIgotICBbKHNldF9hdHRyICJ0eXBlIiAibmVv bl9tb3ZlLGZfbWNyLGZfbXJjLGZtb3YsZmNvbnN0cyxcCi0gICAgICAgICAg ICAgICAgICAgICBmX2xvYWRzLGZfc3RvcmVzLGxvYWQxLHN0b3JlMSxtb3Zf cmVnIikKLSAgIChzZXRfYXR0ciAic2ltZCIgInllcywqLCosKiwqLCosKiwq LCosKiIpXQorICAgbW92XFx0JXcwLCAldzEKKyAgIG1vdlxcdCV3MCwgJTEi CisgICImJiBjYW5fY3JlYXRlX3BzZXVkb19wICgpCisgICAmJiAhYWFyY2g2 NF9jYW5fY29uc3RfbW92aV9ydHhfcCAob3BlcmFuZHNbMV0sIFNGbW9kZSkK KyAgICYmICFhYXJjaDY0X2Zsb2F0X2NvbnN0X3JlcHJlc2VudGFibGVfcCAo b3BlcmFuZHNbMV0pCisgICAmJiAgYWFyY2g2NF9mbG9hdF9jb25zdF9ydHhf cCAob3BlcmFuZHNbMV0pIgorICBbKGNvbnN0X2ludCAwKV0KKyAgInsKKyAg ICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIGl2YWw7CisgICAgaWYgKCFhYXJj aDY0X3JlaW50ZXJwcmV0X2Zsb2F0X2FzX2ludCAob3BlcmFuZHNbMV0sICZp dmFsKSkKKyAgICAgIEZBSUw7CisKKyAgICBydHggdG1wID0gZ2VuX3JlZ19y dHggKFNJbW9kZSk7CisgICAgYWFyY2g2NF9leHBhbmRfbW92X2ltbWVkaWF0 ZSAodG1wLCBnZW5faW50X21vZGUgKGl2YWwsIFNJbW9kZSkpOworICAgIGVt aXRfbW92ZV9pbnNuIChvcGVyYW5kc1swXSwgZ2VuX2xvd3BhcnQgKFNGbW9k ZSwgdG1wKSk7CisgICAgRE9ORTsKKyAgfSIKKyAgWyhzZXRfYXR0ciAidHlw ZSIgIm5lb25fbW92ZSxmX21jcixmX21yYyxmbW92LGZjb25zdHMsbmVvbl9t b3ZlLFwKKwkJICAgICBmX2xvYWRzLGZfc3RvcmVzLGxvYWQxLHN0b3JlMSxt b3ZfcmVnLFwKKwkJICAgICBmY29uc3RzIikKKyAgIChzZXRfYXR0ciAic2lt ZCIgInllcywqLCosKiwqLHllcywqLCosKiwqLCosKiIpXQogKQogCi0oZGVm aW5lX2luc24gIiptb3ZkZl9hYXJjaDY0IgotICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj13LHcgICw/cix3 LHcgICx3LG0scixtICxyIikKLQkobWF0Y2hfb3BlcmFuZDpERiAxICJnZW5l cmFsX29wZXJhbmQiICAgICAgIlkgLD9yWSwgdyx3LFVmYyxtLHcsbSxyWSxy IikpXQorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm1vdmRmX2FhcmNoNjQi CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAiPXcsIHcgICw/cix3LHcgICx3ICAsdyxtLHIsbSAscixyIikK KwkobWF0Y2hfb3BlcmFuZDpERiAxICJnZW5lcmFsX29wZXJhbmQiICAgICAg IlkgLCA/clksIHcsdyxVZmMsVXZpLG0sdyxtLHJZLHIsTiIpKV0KICAgIlRB UkdFVF9GTE9BVCAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0s IERGbW9kZSkKLSAgICB8fCBhYXJjaDY0X3JlZ19vcl9mcF96ZXJvIChvcGVy YW5kc1sxXSwgREZtb2RlKSkiCisgICAgfHwgYWFyY2g2NF9yZWdfb3JfZnBf ZmxvYXQgKG9wZXJhbmRzWzFdLCBERm1vZGUpKSIKICAgIkAKICAgIG1vdmlc XHQlZDAsICMwCiAgICBmbW92XFx0JWQwLCAleDEKICAgIGZtb3ZcXHQleDAs ICVkMQogICAgZm1vdlxcdCVkMCwgJWQxCiAgICBmbW92XFx0JWQwLCAlMQor ICAgKiByZXR1cm4gYWFyY2g2NF9vdXRwdXRfc2NhbGFyX3NpbWRfbW92X2lt bWVkaWF0ZSAob3BlcmFuZHNbMV0sIERJbW9kZSk7CiAgICBsZHJcXHQlZDAs ICUxCiAgICBzdHJcXHQlZDEsICUwCiAgICBsZHJcXHQleDAsICUxCiAgICBz dHJcXHQleDEsICUwCi0gICBtb3ZcXHQleDAsICV4MSIKLSAgWyhzZXRfYXR0 ciAidHlwZSIgIm5lb25fbW92ZSxmX21jcixmX21yYyxmbW92LGZjb25zdGQs XAotICAgICAgICAgICAgICAgICAgICAgZl9sb2FkZCxmX3N0b3JlZCxsb2Fk MSxzdG9yZTEsbW92X3JlZyIpCi0gICAoc2V0X2F0dHIgInNpbWQiICJ5ZXMs KiwqLCosKiwqLCosKiwqLCoiKV0KKyAgIG1vdlxcdCV4MCwgJXgxCisgICBt b3ZcXHQleDAsICUxIgorICAiJiYgY2FuX2NyZWF0ZV9wc2V1ZG9fcCAoKQor ICAgJiYgIWFhcmNoNjRfY2FuX2NvbnN0X21vdmlfcnR4X3AgKG9wZXJhbmRz WzFdLCBERm1vZGUpCisgICAmJiAhYWFyY2g2NF9mbG9hdF9jb25zdF9yZXBy ZXNlbnRhYmxlX3AgKG9wZXJhbmRzWzFdKQorICAgJiYgIGFhcmNoNjRfZmxv YXRfY29uc3RfcnR4X3AgKG9wZXJhbmRzWzFdKSIKKyAgWyhjb25zdF9pbnQg MCldCisgICJ7CisgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBpdmFsOwor ICAgIGlmICghYWFyY2g2NF9yZWludGVycHJldF9mbG9hdF9hc19pbnQgKG9w ZXJhbmRzWzFdLCAmaXZhbCkpCisgICAgICBGQUlMOworCisgICAgcnR4IHRt cCA9IGdlbl9yZWdfcnR4IChESW1vZGUpOworICAgIGFhcmNoNjRfZXhwYW5k X21vdl9pbW1lZGlhdGUgKHRtcCwgZ2VuX2ludF9tb2RlIChpdmFsLCBESW1v ZGUpKTsKKyAgICBlbWl0X21vdmVfaW5zbiAob3BlcmFuZHNbMF0sIGdlbl9s b3dwYXJ0IChERm1vZGUsIHRtcCkpOworICAgIERPTkU7CisgIH0iCisgIFso c2V0X2F0dHIgInR5cGUiICJuZW9uX21vdmUsZl9tY3IsZl9tcmMsZm1vdixm Y29uc3RkLG5lb25fbW92ZSxcCisJCSAgICAgZl9sb2FkZCxmX3N0b3JlZCxs b2FkMSxzdG9yZTEsbW92X3JlZyxcCisJCSAgICAgZmNvbnN0ZCIpCisgICAo c2V0X2F0dHIgInNpbWQiICJ5ZXMsKiwqLCosKix5ZXMsKiwqLCosKiwqLCoi KV0KICkKIAogKGRlZmluZV9pbnNuICIqbW92dGZfYWFyY2g2NCIK --_002_VI1PR0801MB20316A7D3165E0EDD14CD43DFFCD0VI1PR0801MB2031_--