From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) by sourceware.org (Postfix) with ESMTPS id 2860A3858C5E for ; Wed, 5 Jul 2023 11:20:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2860A3858C5E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp71t1688556025t722d1c7 Received: from LAPTOP-EPITNQBU ( [58.60.1.5]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 05 Jul 2023 19:20:23 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: eFIaDeUtJH4XR6bk6g+XEY7D0KPp0c5VWIMTH0rfnLtCTi8f5/fEgcYv4Ac33 uQu+3hTC8oEFU9EEDdZGoMZFzi9gzI/wstTypsB0aqrNp4zc24P7SygW7mQ19dhGC0jAErV sUACF+KVn8Q2UC3BvYeRHHM3F+QgnhwCx06m4ndtWAe5pEbVEjaOjIfLFAk/nB1r40XT/8Z 2a8ADCYvwJg2CX31ODCmUvsk7sJCHS2udZExnj7EQSpKa/D2am7c70RdCcEDpO95C4E4B8Z 5Je71QLk7jRJYd363qmEQU/Qirg2CJTzyulYGMdCCYzlybZBEwx+/wqw51DqBg+6K+99nEj uRr3aA2mBtdFPqAWwNecf0rLHSVZbokMbt4yKPXlAVsQTOgcGOkqVpdaKpxQmnrCFIOz+nR mzcBLYh/XGlsTWjh6UnVyMu0CHRnmf0j X-QQ-GoodBg: 2 X-BIZMAIL-ID: 4620036913247382138 Date: Wed, 5 Jul 2023 19:20:24 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: richard.sandiford , rguenther Subject: Re: RE: [PATCH V5] VECT: Apply LEN_MASK_GATHER_LOAD/SCATTER_STORE into vectorizer References: <20230704131000.4031672-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: BA29214E-6ED2-49B3-A761-811220DF7C70 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <356FF0CBBEB0617B+2023070519202376754875@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart627215547242_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,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. ------=_001_NextPart627215547242_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 VGhhbmsgeW91IGZvciB1c2luZyBpbnRlbCdzIG1hY2hpbmVzIHRlc3QgaXQg Zm9yIG1lLg0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206 IExpLCBQYW4yDQpEYXRlOiAyMDIzLTA3LTA1IDE5OjE1DQpUbzoganV6aGUu emhvbmdAcml2YWkuYWk7IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQpDQzog cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbTsgcmd1ZW50aGVyQHN1c2UuZGUN ClN1YmplY3Q6IFJFOiBbUEFUQ0ggVjVdIFZFQ1Q6IEFwcGx5IExFTl9NQVNL X0dBVEhFUl9MT0FEL1NDQVRURVJfU1RPUkUgaW50byB2ZWN0b3JpemVyDQpQ YXNzZWQgYm90aCB0aGUgYm9vdHN0cmFwIGFuZCByZWdyZXNzaW9uIHRlc3Rz IGluIFg4Ni4NCiANClBhbg0KIA0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlcy1ib3VuY2VzK3Bh bjIubGk9aW50ZWwuY29tQGdjYy5nbnUub3JnPiBPbiBCZWhhbGYgT2YganV6 aGUuemhvbmdAcml2YWkuYWkNClNlbnQ6IFR1ZXNkYXksIEp1bHkgNCwgMjAy MyA5OjEwIFBNDQpUbzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcNCkNjOiBy aWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tOyByZ3VlbnRoZXJAc3VzZS5kZTsg SnUtWmhlIFpob25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NClN1YmplY3Q6 IFtQQVRDSCBWNV0gVkVDVDogQXBwbHkgTEVOX01BU0tfR0FUSEVSX0xPQUQv U0NBVFRFUl9TVE9SRSBpbnRvIHZlY3Rvcml6ZXINCiANCkZyb206IEp1LVpo ZSBaaG9uZyA8anV6aGUuemhvbmdAcml2YWkuYWk+DQogDQpIaSwgUmljaGFy ZCBhbmQgUmljaGkuDQogDQpBZGRyZXNzIGNvbW1lbnRzIGZyb20gUmljaGku DQogDQpNYWtlIGdzX2luZm8uaWZuID0gTEVOX01BU0tfR0FUSEVSX0xPQUQv TEVOX01BU0tfU0NBVFRFUl9TVE9SRS4NCiANCkkgaGF2ZSBmdWxseSB0ZXN0 ZWQgdGhlc2UgNCBmb3JtYXQ6DQogDQpsZW5ndGggPSB2ZiBpcyBhIGR1bW1w eSBsZW5ndGgsDQptYXNrID0gey0xLC0xLCAuLi4gfSBpcyBhIGR1bW15IG1h c2suDQogDQoxLiBubyBsZW5ndGgsIG5vIG1hc2sNCiAgIExFTl9NQVNLX0dB VEhFUl9MT0FEICguLi4sIGxlbmd0aCA9IHZmLCBtYXNrID0gey0xLC0xLC4u Ln0pDQoyLiBleGlzdCBsZW5ndGgsIG5vIG1hc2sNCiAgIExFTl9NQVNLX0dB VEhFUl9MT0FEICguLi4sIGxlbiwgbWFzayA9IHstMSwtMSwuLi59KQ0KMy4g ZXhpc3QgbWFzaywgbm8gbGVuZ3RoDQogICBMRU5fTUFTS19HQVRIRVJfTE9B RCAoLi4uLCBsZW5ndGggPSB2ZiwgbWFzaykNCjQuIGJvdGggbWFzayBhbmQg bGVuZ3RoIGV4aXN0DQogICBMRU5fTUFTS19HQVRIRVJfTE9BRCAoLi4uLCBs ZW5ndGgsIG1hc2spDQogDQpBbGwgb2YgdGhlc2Ugd29yayBmaW5lIGluIHRo aXMgcGF0Y2guDQogDQpIZXJlIGlzIHRoZSBleGFtcGxlOg0KIA0Kdm9pZA0K ZiAoaW50ICpyZXN0cmljdCBhLA0KICAgaW50ICpyZXN0cmljdCBiLCBpbnQg biwNCiAgIGludCBiYXNlLCBpbnQgc3RlcCwNCiAgIGludCAqcmVzdHJpY3Qg Y29uZCkNCnsNCiAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQogICAg ew0KICAgICAgaWYgKGNvbmRbaV0pDQogICAgICAgIGFbaSAqIDRdID0gYltp XTsNCiAgICB9DQp9DQogDQpHaW1wbGUgSVI6DQogDQogIDxiYiAzPiBbbG9j YWwgY291bnQ6IDEwNTExOTMyNF06DQogIF81OCA9ICh1bnNpZ25lZCBsb25n KSBuXzEzKEQpOw0KIA0KICA8YmIgND4gW2xvY2FsIGNvdW50OiA2MzA3MTU5 NDVdOg0KICAjIHZlY3RwX2NvbmQuN180NSA9IFBISSA8dmVjdHBfY29uZC43 XzQ2KDQpLCBjb25kXzE0KEQpKDMpPg0KICAjIHZlY3RwX2IuMTFfNTEgPSBQ SEkgPHZlY3RwX2IuMTFfNTIoNCksIGJfMTUoRCkoMyk+DQogICMgdmVjdHBf YS4xNF81NSA9IFBISSA8dmVjdHBfYS4xNF81Nig0KSwgYV8xNihEKSgzKT4N CiAgIyBpdnRtcF81OSA9IFBISSA8aXZ0bXBfNjAoNCksIF81OCgzKT4NCiAg XzYxID0gLlNFTEVDVF9WTCAoaXZ0bXBfNTksIFBPTFlfSU5UX0NTVCBbMiwg Ml0pOw0KICBpdnRtcF80NCA9IF82MSAqIDQ7DQogIHZlY3RfXzQuOV80NyA9 IC5MRU5fTUFTS19MT0FEICh2ZWN0cF9jb25kLjdfNDUsIDMyQiwgXzYxLCAw LCB7IC0xLCAuLi4gfSk7DQogIG1hc2tfXzI0LjEwXzQ5ID0gdmVjdF9fNC45 XzQ3ICE9IHsgMCwgLi4uIH07DQogIHZlY3RfXzguMTNfNTMgPSAuTEVOX01B U0tfTE9BRCAodmVjdHBfYi4xMV81MSwgMzJCLCBfNjEsIDAsIG1hc2tfXzI0 LjEwXzQ5KTsNCiAgaXZ0bXBfNTQgPSBfNjEgKiAxNjsNCiAgLkxFTl9NQVNL X1NDQVRURVJfU1RPUkUgKHZlY3RwX2EuMTRfNTUsIHsgMCwgMTYsIDMyLCAu Li4gfSwgMSwgdmVjdF9fOC4xM181MywgXzYxLCAwLCBtYXNrX18yNC4xMF80 OSk7DQogIHZlY3RwX2NvbmQuN180NiA9IHZlY3RwX2NvbmQuN180NSArIGl2 dG1wXzQ0Ow0KICB2ZWN0cF9iLjExXzUyID0gdmVjdHBfYi4xMV81MSArIGl2 dG1wXzQ0Ow0KICB2ZWN0cF9hLjE0XzU2ID0gdmVjdHBfYS4xNF81NSArIGl2 dG1wXzU0Ow0KICBpdnRtcF82MCA9IGl2dG1wXzU5IC0gXzYxOw0KICBpZiAo aXZ0bXBfNjAgIT0gMCkNCiAgICBnb3RvIDxiYiA0PjsgWzgzLjMzJV0NCiAg ZWxzZQ0KICAgIGdvdG8gPGJiIDU+OyBbMTYuNjclXQ0KIA0KT2sgZm9yIHRy dW5rID8NCiANCmdjYy9DaGFuZ2VMb2c6DQogDQogICAgICAgICogaW50ZXJu YWwtZm4uY2MgKGludGVybmFsX2ZuX2xlbl9pbmRleCk6IEFwcGx5IExFTl9N QVNLX0dBVEhFUl9MT0FEL1NDQVRURVJfU1RPUkUgaW50byB2ZWN0b3JpemVy Lg0KICAgICAgICAoaW50ZXJuYWxfZm5fbWFza19pbmRleCk6IERpdHRvLg0K ICAgICAgICAqIG9wdGFicy1xdWVyeS5jYyAoc3VwcG9ydHNfdmVjX2dhdGhl cl9sb2FkX3ApOiBEaXR0by4NCiAgICAgICAgKHN1cHBvcnRzX3ZlY19zY2F0 dGVyX3N0b3JlX3ApOiBEaXR0by4NCiAgICAgICAgKiB0cmVlLXZlY3QtZGF0 YS1yZWZzLmNjICh2ZWN0X2dhdGhlcl9zY2F0dGVyX2ZuX3ApOiBEaXR0by4N CiAgICAgICAgKiB0cmVlLXZlY3QtcGF0dGVybnMuY2MgKHZlY3RfcmVjb2df Z2F0aGVyX3NjYXR0ZXJfcGF0dGVybik6IERpdHRvLg0KICAgICAgICAqIHRy ZWUtdmVjdC1zdG10cy5jYyAoY2hlY2tfbG9hZF9zdG9yZV9mb3JfcGFydGlh bF92ZWN0b3JzKTogRGl0dG8uDQogICAgICAgICh2ZWN0X2dldF9zdHJpZGVk X2xvYWRfc3RvcmVfb3BzKTogRGl0dG8uDQogICAgICAgICh2ZWN0b3JpemFi bGVfc3RvcmUpOiBEaXR0by4NCiAgICAgICAgKHZlY3Rvcml6YWJsZV9sb2Fk KTogRGl0dG8uDQogDQotLS0NCmdjYy9pbnRlcm5hbC1mbi5jYyAgICAgICAg IHwgICA2ICstDQpnY2Mvb3B0YWJzLXF1ZXJ5LmNjICAgICAgICB8ICAgMiAr DQpnY2MvdHJlZS12ZWN0LWRhdGEtcmVmcy5jYyB8ICAxOCArKysrKy0NCmdj Yy90cmVlLXZlY3QtcGF0dGVybnMuY2MgIHwgICA0ICstDQpnY2MvdHJlZS12 ZWN0LXN0bXRzLmNjICAgICB8IDEyMiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tDQo1IGZpbGVzIGNoYW5nZWQsIDEyOSBpbnNlcnRp b25zKCspLCAyMyBkZWxldGlvbnMoLSkNCiANCmRpZmYgLS1naXQgYS9nY2Mv aW50ZXJuYWwtZm4uY2MgYi9nY2MvaW50ZXJuYWwtZm4uY2MNCmluZGV4IDMw M2RmMTAyZDgxLi5iZWM2MGNkZjRkMCAxMDA2NDQNCi0tLSBhL2djYy9pbnRl cm5hbC1mbi5jYw0KKysrIGIvZ2NjL2ludGVybmFsLWZuLmNjDQpAQCAtNDQ3 Miw3ICs0NDcyLDcgQEAgaW50ZXJuYWxfZm5fbGVuX2luZGV4IChpbnRlcm5h bF9mbiBmbikNCiAgICAgY2FzZSBJRk5fTEVOX01BU0tfR0FUSEVSX0xPQUQ6 DQogICAgIGNhc2UgSUZOX0xFTl9NQVNLX1NDQVRURVJfU1RPUkU6DQotICAg ICAgcmV0dXJuIDQ7DQorICAgICAgcmV0dXJuIDU7DQogICAgIGRlZmF1bHQ6 DQogICAgICAgcmV0dXJuIC0xOw0KQEAgLTQ0OTcsMTEgKzQ0OTcsOSBAQCBp bnRlcm5hbF9mbl9tYXNrX2luZGV4IChpbnRlcm5hbF9mbiBmbikNCiAgICAg Y2FzZSBJRk5fTUFTS19TQ0FUVEVSX1NUT1JFOg0KICAgICBjYXNlIElGTl9M RU5fTUFTS19MT0FEOg0KICAgICBjYXNlIElGTl9MRU5fTUFTS19TVE9SRToN Ci0gICAgICByZXR1cm4gNDsNCi0NCiAgICAgY2FzZSBJRk5fTEVOX01BU0tf R0FUSEVSX0xPQUQ6DQogICAgIGNhc2UgSUZOX0xFTl9NQVNLX1NDQVRURVJf U1RPUkU6DQotICAgICAgcmV0dXJuIDY7DQorICAgICAgcmV0dXJuIDQ7DQog ICAgIGRlZmF1bHQ6DQogICAgICAgcmV0dXJuIChjb25kaXRpb25hbF9pbnRl cm5hbF9mbl9jb2RlIChmbikgIT0gRVJST1JfTUFSSw0KZGlmZiAtLWdpdCBh L2djYy9vcHRhYnMtcXVlcnkuY2MgYi9nY2Mvb3B0YWJzLXF1ZXJ5LmNjDQpp bmRleCAyZmRkMGQzNDM1NC4uYmYxZjQ4NGU4NzQgMTAwNjQ0DQotLS0gYS9n Y2Mvb3B0YWJzLXF1ZXJ5LmNjDQorKysgYi9nY2Mvb3B0YWJzLXF1ZXJ5LmNj DQpAQCAtNjc2LDYgKzY3Niw3IEBAIHN1cHBvcnRzX3ZlY19nYXRoZXJfbG9h ZF9wIChtYWNoaW5lX21vZGUgbW9kZSkNCiAgICAgdGhpc19mbl9vcHRhYnMt PnN1cHBvcnRzX3ZlY19nYXRoZXJfbG9hZFttb2RlXQ0KICAgICAgID0gKHN1 cHBvcnRzX3ZlY19jb252ZXJ0X29wdGFiX3AgKGdhdGhlcl9sb2FkX29wdGFi LCBtb2RlKQ0KfHwgc3VwcG9ydHNfdmVjX2NvbnZlcnRfb3B0YWJfcCAobWFz a19nYXRoZXJfbG9hZF9vcHRhYiwgbW9kZSkNCisgfHwgc3VwcG9ydHNfdmVj X2NvbnZlcnRfb3B0YWJfcCAobGVuX21hc2tfZ2F0aGVyX2xvYWRfb3B0YWIs IG1vZGUpDQo/IDEgOiAtMSk7DQogICByZXR1cm4gdGhpc19mbl9vcHRhYnMt PnN1cHBvcnRzX3ZlY19nYXRoZXJfbG9hZFttb2RlXSA+IDA7DQpAQCAtNjky LDYgKzY5Myw3IEBAIHN1cHBvcnRzX3ZlY19zY2F0dGVyX3N0b3JlX3AgKG1h Y2hpbmVfbW9kZSBtb2RlKQ0KICAgICB0aGlzX2ZuX29wdGFicy0+c3VwcG9y dHNfdmVjX3NjYXR0ZXJfc3RvcmVbbW9kZV0NCiAgICAgICA9IChzdXBwb3J0 c192ZWNfY29udmVydF9vcHRhYl9wIChzY2F0dGVyX3N0b3JlX29wdGFiLCBt b2RlKQ0KfHwgc3VwcG9ydHNfdmVjX2NvbnZlcnRfb3B0YWJfcCAobWFza19z Y2F0dGVyX3N0b3JlX29wdGFiLCBtb2RlKQ0KKyB8fCBzdXBwb3J0c192ZWNf Y29udmVydF9vcHRhYl9wIChsZW5fbWFza19zY2F0dGVyX3N0b3JlX29wdGFi LCBtb2RlKQ0KPyAxIDogLTEpOw0KICAgcmV0dXJuIHRoaXNfZm5fb3B0YWJz LT5zdXBwb3J0c192ZWNfc2NhdHRlcl9zdG9yZVttb2RlXSA+IDA7DQpkaWZm IC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1kYXRhLXJlZnMuY2MgYi9nY2MvdHJl ZS12ZWN0LWRhdGEtcmVmcy5jYw0KaW5kZXggZWJlOTM4MzJiMWUuLmFiMmFm MTAzY2I0IDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUtdmVjdC1kYXRhLXJlZnMu Y2MNCisrKyBiL2djYy90cmVlLXZlY3QtZGF0YS1yZWZzLmNjDQpAQCAtMzg3 MywxNiArMzg3MywyNCBAQCB2ZWN0X2dhdGhlcl9zY2F0dGVyX2ZuX3AgKHZl Y19pbmZvICp2aW5mbywgYm9vbCByZWFkX3AsIGJvb2wgbWFza2VkX3AsDQog ICAgIHJldHVybiBmYWxzZTsNCiAgIC8qIFdvcmsgb3V0IHdoaWNoIGZ1bmN0 aW9uIHdlIG5lZWQuICAqLw0KLSAgaW50ZXJuYWxfZm4gaWZuLCBhbHRfaWZu Ow0KKyAgaW50ZXJuYWxfZm4gaWZuLCBhbHRfaWZuLCBhbHRfaWZuMjsNCiAg IGlmIChyZWFkX3ApDQogICAgIHsNCiAgICAgICBpZm4gPSBtYXNrZWRfcCA/ IElGTl9NQVNLX0dBVEhFUl9MT0FEIDogSUZOX0dBVEhFUl9MT0FEOw0KICAg ICAgIGFsdF9pZm4gPSBJRk5fTUFTS19HQVRIRVJfTE9BRDsNCisgICAgICAv KiBXaGVuIHRhcmdldCBzdXBwb3J0cyBMRU5fTUFTS19HQVRIRVJfTE9BRCwg d2UgYWx3YXlzDQorIHVzZSBMRU5fTUFTS19HQVRIRVJfTE9BRCByZWdhcmRs ZXNzIHdoZXRoZXIgbGVuIGFuZA0KKyBtYXNrIGFyZSB2YWxpZCBvciBub3Qu ICAqLw0KKyAgICAgIGFsdF9pZm4yID0gSUZOX0xFTl9NQVNLX0dBVEhFUl9M T0FEOw0KICAgICB9DQogICBlbHNlDQogICAgIHsNCiAgICAgICBpZm4gPSBt YXNrZWRfcCA/IElGTl9NQVNLX1NDQVRURVJfU1RPUkUgOiBJRk5fU0NBVFRF Ul9TVE9SRTsNCiAgICAgICBhbHRfaWZuID0gSUZOX01BU0tfU0NBVFRFUl9T VE9SRTsNCisgICAgICAvKiBXaGVuIHRhcmdldCBzdXBwb3J0cyBMRU5fTUFT S19TQ0FUVEVSX1NUT1JFLCB3ZSBhbHdheXMNCisgdXNlIExFTl9NQVNLX1ND QVRURVJfU1RPUkUgcmVnYXJkbGVzcyB3aGV0aGVyIGxlbiBhbmQNCisgbWFz ayBhcmUgdmFsaWQgb3Igbm90LiAgKi8NCisgICAgICBhbHRfaWZuMiA9IElG Tl9MRU5fTUFTS19TQ0FUVEVSX1NUT1JFOw0KICAgICB9DQogICBmb3IgKDs7 KQ0KQEAgLTM5MDksNiArMzkxNywxNCBAQCB2ZWN0X2dhdGhlcl9zY2F0dGVy X2ZuX3AgKHZlY19pbmZvICp2aW5mbywgYm9vbCByZWFkX3AsIGJvb2wgbWFz a2VkX3AsDQogICpvZmZzZXRfdmVjdHlwZV9vdXQgPSBvZmZzZXRfdmVjdHlw ZTsNCiAgcmV0dXJuIHRydWU7DQp9DQorICAgICAgZWxzZSBpZiAoaW50ZXJu YWxfZ2F0aGVyX3NjYXR0ZXJfZm5fc3VwcG9ydGVkX3AgKGFsdF9pZm4yLCB2 ZWN0eXBlLA0KKyAgICAgICAgbWVtb3J5X3R5cGUsDQorICAgICAgICBvZmZz ZXRfdmVjdHlwZSwgc2NhbGUpKQ0KKyB7DQorICAgKmlmbl9vdXQgPSBhbHRf aWZuMjsNCisgICAqb2Zmc2V0X3ZlY3R5cGVfb3V0ID0gb2Zmc2V0X3ZlY3R5 cGU7DQorICAgcmV0dXJuIHRydWU7DQorIH0NCiAgICAgICBpZiAoVFlQRV9Q UkVDSVNJT04gKG9mZnNldF90eXBlKSA+PSBQT0lOVEVSX1NJWkUNCiAgJiYg VFlQRV9QUkVDSVNJT04gKG9mZnNldF90eXBlKSA+PSBlbGVtZW50X2JpdHMp DQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYyBiL2dj Yy90cmVlLXZlY3QtcGF0dGVybnMuY2MNCmluZGV4IGRlMjBlOWQ1OWNiLi4x YmMzNmIwNDNhMCAxMDA2NDQNCi0tLSBhL2djYy90cmVlLXZlY3QtcGF0dGVy bnMuY2MNCisrKyBiL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MNCkBAIC02 MDc1LDcgKzYwNzUsOSBAQCB2ZWN0X3JlY29nX2dhdGhlcl9zY2F0dGVyX3Bh dHRlcm4gKHZlY19pbmZvICp2aW5mbywNCiAgICAgbWFzayA9IHZlY3RfY29u dmVydF9tYXNrX2Zvcl92ZWN0eXBlIChtYXNrLCBnc192ZWN0eXBlLCBzdG10 X2luZm8sDQogIGxvb3BfdmluZm8pOw0KICAgZWxzZSBpZiAoZ3NfaW5mby5p Zm4gPT0gSUZOX01BU0tfU0NBVFRFUl9TVE9SRQ0KLSAgICB8fCBnc19pbmZv LmlmbiA9PSBJRk5fTUFTS19HQVRIRVJfTE9BRCkNCisgICAgfHwgZ3NfaW5m by5pZm4gPT0gSUZOX01BU0tfR0FUSEVSX0xPQUQNCisgICAgfHwgZ3NfaW5m by5pZm4gPT0gSUZOX0xFTl9NQVNLX1NDQVRURVJfU1RPUkUNCisgICAgfHwg Z3NfaW5mby5pZm4gPT0gSUZOX0xFTl9NQVNLX0dBVEhFUl9MT0FEKQ0KICAg ICBtYXNrID0gYnVpbGRfaW50X2NzdCAoVFJFRV9UWVBFICh0cnV0aF90eXBl X2ZvciAoZ3NfdmVjdHlwZSkpLCAtMSk7DQogICAvKiBHZXQgdGhlIGludmFy aWFudCBiYXNlIGFuZCBub24taW52YXJpYW50IG9mZnNldCwgY29udmVydGlu ZyB0aGUNCmRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjIGIv Z2NjL3RyZWUtdmVjdC1zdG10cy5jYw0KaW5kZXggYTBjMzkyNjhiZjAuLjA5 YjUxYmYxNWZhIDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUtdmVjdC1zdG10cy5j Yw0KKysrIGIvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYw0KQEAgLTE3NzEsNiAr MTc3MSwxOCBAQCBjaGVja19sb2FkX3N0b3JlX2Zvcl9wYXJ0aWFsX3ZlY3Rv cnMgKGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbywgdHJlZSB2ZWN0eXBlLA0K ICAgZ3NfaW5mby0+b2Zmc2V0X3ZlY3R5cGUsDQogICBnc19pbmZvLT5zY2Fs ZSkpDQp7DQorICAgaWZuID0gKGlzX2xvYWQNCisgPyBJRk5fTEVOX01BU0tf R0FUSEVSX0xPQUQNCisgOiBJRk5fTEVOX01BU0tfU0NBVFRFUl9TVE9SRSk7 DQorICAgaWYgKGludGVybmFsX2dhdGhlcl9zY2F0dGVyX2ZuX3N1cHBvcnRl ZF9wIChpZm4sIHZlY3R5cGUsDQorICAgICAgIGdzX2luZm8tPm1lbW9yeV90 eXBlLA0KKyAgICAgICBnc19pbmZvLT5vZmZzZXRfdmVjdHlwZSwNCisgICAg ICAgZ3NfaW5mby0+c2NhbGUpKQ0KKyAgICAgew0KKyAgICAgICB2ZWNfbG9v cF9sZW5zICpsZW5zID0gJkxPT1BfVklORk9fTEVOUyAobG9vcF92aW5mbyk7 DQorICAgICAgIHZlY3RfcmVjb3JkX2xvb3BfbGVuIChsb29wX3ZpbmZvLCBs ZW5zLCBudmVjdG9ycywgdmVjdHlwZSwgMSk7DQorICAgICAgIHJldHVybjsN CisgICAgIH0NCiAgaWYgKGR1bXBfZW5hYmxlZF9wICgpKQ0KICAgIGR1bXBf cHJpbnRmX2xvYyAoTVNHX01JU1NFRF9PUFRJTUlaQVRJT04sIHZlY3RfbG9j YXRpb24sDQogICAgICJjYW4ndCBvcGVyYXRlIG9uIHBhcnRpYWwgdmVjdG9y cyBiZWNhdXNlIg0KQEAgLTMxMjksMTYgKzMxNDEsMzkgQEAgdmVjdF9nZXRf Z2F0aGVyX3NjYXR0ZXJfb3BzIChsb29wX3ZlY19pbmZvIGxvb3BfdmluZm8s DQpzdGF0aWMgdm9pZA0KdmVjdF9nZXRfc3RyaWRlZF9sb2FkX3N0b3JlX29w cyAoc3RtdF92ZWNfaW5mbyBzdG10X2luZm8sDQpsb29wX3ZlY19pbmZvIGxv b3BfdmluZm8sDQorIGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksDQpnYXRo ZXJfc2NhdHRlcl9pbmZvICpnc19pbmZvLA0KLSB0cmVlICpkYXRhcmVmX2J1 bXAsIHRyZWUgKnZlY19vZmZzZXQpDQorIHRyZWUgKmRhdGFyZWZfYnVtcCwg dHJlZSAqdmVjX29mZnNldCwNCisgdmVjX2xvb3BfbGVucyAqbG9vcF9sZW5z KQ0Kew0KICAgc3RydWN0IGRhdGFfcmVmZXJlbmNlICpkciA9IFNUTVRfVklO Rk9fREFUQV9SRUYgKHN0bXRfaW5mbyk7DQogICB0cmVlIHZlY3R5cGUgPSBT VE1UX1ZJTkZPX1ZFQ1RZUEUgKHN0bXRfaW5mbyk7DQotICB0cmVlIGJ1bXAg PSBzaXplX2Jpbm9wIChNVUxUX0VYUFIsDQotICAgZm9sZF9jb252ZXJ0IChz aXpldHlwZSwgdW5zaGFyZV9leHByIChEUl9TVEVQIChkcikpKSwNCi0gICBz aXplX2ludCAoVFlQRV9WRUNUT1JfU1VCUEFSVFMgKHZlY3R5cGUpKSk7DQot ICAqZGF0YXJlZl9idW1wID0gY3NlX2FuZF9naW1wbGlmeV90b19wcmVoZWFk ZXIgKGxvb3BfdmluZm8sIGJ1bXApOw0KKyAgaWYgKExPT1BfVklORk9fVVNJ TkdfU0VMRUNUX1ZMX1AgKGxvb3BfdmluZm8pKQ0KKyAgICB7DQorICAgICAg LyogXzMxID0gLlNFTEVDVF9WTCAoaXZ0bXBfMjksIFBPTFlfSU5UX0NTVCBb NCwgNF0pOw0KKyBpdnRtcF84ID0gXzMxICogMTYgKHN0ZXAgaW4gYnl0ZXMp Ow0KKyAuTEVOX01BU0tfU0NBVFRFUl9TVE9SRSAodmVjdHBfYS45XzcsIC4u LiApOw0KKyB2ZWN0cF9hLjlfMjYgPSB2ZWN0cF9hLjlfNyArIGl2dG1wXzg7 ICAqLw0KKyAgICAgIHRyZWUgbG9vcF9sZW4NCisgPSB2ZWN0X2dldF9sb29w X2xlbiAobG9vcF92aW5mbywgZ3NpLCBsb29wX2xlbnMsIDEsIHZlY3R5cGUs IDAsIDApOw0KKyAgICAgIHRyZWUgdG1wDQorID0gZm9sZF9idWlsZDIgKE1V TFRfRVhQUiwgc2l6ZXR5cGUsDQorICAgICAgICBmb2xkX2NvbnZlcnQgKHNp emV0eXBlLCB1bnNoYXJlX2V4cHIgKERSX1NURVAgKGRyKSkpLA0KKyAgICAg ICAgbG9vcF9sZW4pOw0KKyAgICAgIHRyZWUgYnVtcCA9IG1ha2VfdGVtcF9z c2FfbmFtZSAoc2l6ZXR5cGUsIE5VTEwsICJpdnRtcCIpOw0KKyAgICAgIGdh c3NpZ24gKmFzc2lnbiA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKGJ1bXAsIHRt cCk7DQorICAgICAgZ3NpX2luc2VydF9iZWZvcmUgKGdzaSwgYXNzaWduLCBH U0lfU0FNRV9TVE1UKTsNCisgICAgICAqZGF0YXJlZl9idW1wID0gYnVtcDsN CisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgdHJlZSBidW1wDQor ID0gc2l6ZV9iaW5vcCAoTVVMVF9FWFBSLA0KKyAgICAgICBmb2xkX2NvbnZl cnQgKHNpemV0eXBlLCB1bnNoYXJlX2V4cHIgKERSX1NURVAgKGRyKSkpLA0K KyAgICAgICBzaXplX2ludCAoVFlQRV9WRUNUT1JfU1VCUEFSVFMgKHZlY3R5 cGUpKSk7DQorICAgICAgKmRhdGFyZWZfYnVtcCA9IGNzZV9hbmRfZ2ltcGxp ZnlfdG9fcHJlaGVhZGVyIChsb29wX3ZpbmZvLCBidW1wKTsNCisgICAgfQ0K ICAgLyogVGhlIG9mZnNldCBnaXZlbiBpbiBHU19JTkZPIGNhbiBoYXZlIHBv aW50ZXIgdHlwZSwgc28gdXNlIHRoZSBlbGVtZW50DQogICAgICB0eXBlIG9m IHRoZSB2ZWN0b3IgaW5zdGVhZC4gICovDQpAQCAtODY4NSw4ICs4NzIwLDgg QEAgdmVjdG9yaXphYmxlX3N0b3JlICh2ZWNfaW5mbyAqdmluZm8sDQogICBl bHNlIGlmIChtZW1vcnlfYWNjZXNzX3R5cGUgPT0gVk1BVF9HQVRIRVJfU0NB VFRFUikNCiAgICAgew0KICAgICAgIGFnZ3JfdHlwZSA9IGVsZW1fdHlwZTsN Ci0gICAgICB2ZWN0X2dldF9zdHJpZGVkX2xvYWRfc3RvcmVfb3BzIChzdG10 X2luZm8sIGxvb3BfdmluZm8sICZnc19pbmZvLA0KLSAgICAgICAgJmJ1bXAs ICZ2ZWNfb2Zmc2V0KTsNCisgICAgICB2ZWN0X2dldF9zdHJpZGVkX2xvYWRf c3RvcmVfb3BzIChzdG10X2luZm8sIGxvb3BfdmluZm8sIGdzaSwgJmdzX2lu Zm8sDQorICAgICAgICAmYnVtcCwgJnZlY19vZmZzZXQsIGxvb3BfbGVucyk7 DQogICAgIH0NCiAgIGVsc2UNCiAgICAgew0KQEAgLTg5MTUsNiArODk1MCw4 IEBAIHZlY3Rvcml6YWJsZV9zdG9yZSAodmVjX2luZm8gKnZpbmZvLA0KICAg ICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBhbGlnbjsNCiAgICAgIHRyZWUg ZmluYWxfbWFzayA9IE5VTExfVFJFRTsNCisgICAgICAgdHJlZSBmaW5hbF9s ZW4gPSBOVUxMX1RSRUU7DQorICAgICAgIHRyZWUgYmlhcyA9IE5VTExfVFJF RTsNCiAgICAgIGlmIChsb29wX21hc2tzKQ0KZmluYWxfbWFzayA9IHZlY3Rf Z2V0X2xvb3BfbWFzayAobG9vcF92aW5mbywgZ3NpLCBsb29wX21hc2tzLA0K dmVjX251bSAqIG5jb3BpZXMsDQpAQCAtODkyOSw4ICs4OTY2LDM2IEBAIHZl Y3Rvcml6YWJsZV9zdG9yZSAodmVjX2luZm8gKnZpbmZvLA0KICBpZiAoU1RN VF9WSU5GT19HQVRIRVJfU0NBVFRFUl9QIChzdG10X2luZm8pKQ0KICAgIHZl Y19vZmZzZXQgPSB2ZWNfb2Zmc2V0c1t2ZWNfbnVtICogaiArIGldOw0KICB0 cmVlIHNjYWxlID0gc2l6ZV9pbnQgKGdzX2luZm8uc2NhbGUpOw0KKw0KKyAg IGlmIChnc19pbmZvLmlmbiA9PSBJRk5fTEVOX01BU0tfU0NBVFRFUl9TVE9S RSkNCisgICAgIHsNCisgICAgICAgaWYgKGxvb3BfbGVucykNCisgZmluYWxf bGVuDQorICAgPSB2ZWN0X2dldF9sb29wX2xlbiAobG9vcF92aW5mbywgZ3Np LCBsb29wX2xlbnMsDQorICAgICAgICB2ZWNfbnVtICogbmNvcGllcywgdmVj dHlwZSwNCisgICAgICAgIHZlY19udW0gKiBqICsgaSwgMSk7DQorICAgICAg IGVsc2UNCisgZmluYWxfbGVuDQorICAgPSBidWlsZF9pbnRfY3N0IChzaXpl dHlwZSwNCisgICAgVFlQRV9WRUNUT1JfU1VCUEFSVFMgKHZlY3R5cGUpKTsN CisgICAgICAgc2lnbmVkIGNoYXIgYmlhc3ZhbA0KKyA9IExPT1BfVklORk9f UEFSVElBTF9MT0FEX1NUT1JFX0JJQVMgKGxvb3BfdmluZm8pOw0KKyAgICAg ICBiaWFzID0gYnVpbGRfaW50X2NzdCAoaW50UUlfdHlwZV9ub2RlLCBiaWFz dmFsKTsNCisgICAgICAgaWYgKCFmaW5hbF9tYXNrKQ0KKyB7DQorICAgbWFz a192ZWN0eXBlID0gdHJ1dGhfdHlwZV9mb3IgKHZlY3R5cGUpOw0KKyAgIGZp bmFsX21hc2sgPSBidWlsZF9taW51c19vbmVfY3N0IChtYXNrX3ZlY3R5cGUp Ow0KKyB9DQorICAgICB9DQorDQogIGdjYWxsICpjYWxsOw0KLSAgIGlmIChm aW5hbF9tYXNrKQ0KKyAgIGlmIChmaW5hbF9sZW4gJiYgZmluYWxfbWFzaykN CisgICAgIGNhbGwNCisgICAgICAgPSBnaW1wbGVfYnVpbGRfY2FsbF9pbnRl cm5hbCAoSUZOX0xFTl9NQVNLX1NDQVRURVJfU1RPUkUsDQorICAgICA3LCBk YXRhcmVmX3B0ciwgdmVjX29mZnNldCwNCisgICAgIHNjYWxlLCB2ZWNfb3By bmQsIGZpbmFsX21hc2ssDQorICAgICBmaW5hbF9sZW4sIGJpYXMpOw0KKyAg IGVsc2UgaWYgKGZpbmFsX21hc2spDQogICAgY2FsbCA9IGdpbXBsZV9idWls ZF9jYWxsX2ludGVybmFsDQogICAgICAoSUZOX01BU0tfU0NBVFRFUl9TVE9S RSwgNSwgZGF0YXJlZl9wdHIsIHZlY19vZmZzZXQsDQogICAgICAgc2NhbGUs IHZlY19vcHJuZCwgZmluYWxfbWFzayk7DQpAQCAtOTA0Nyw5ICs5MTEyLDYg QEAgdmVjdG9yaXphYmxlX3N0b3JlICh2ZWNfaW5mbyAqdmluZm8sDQogICAg ICBtYWNoaW5lX21vZGUgdm1vZGUgPSBUWVBFX01PREUgKHZlY3R5cGUpOw0K ICAgICAgbWFjaGluZV9tb2RlIG5ld192bW9kZSA9IHZtb2RlOw0KICAgICAg aW50ZXJuYWxfZm4gcGFydGlhbF9pZm4gPSBJRk5fTEFTVDsNCi0gICAgICAg LyogUHJvZHVjZSAnbGVuJyBhbmQgJ2JpYXMnIGFyZ3VtZW50LiAgKi8NCi0g ICAgICAgdHJlZSBmaW5hbF9sZW4gPSBOVUxMX1RSRUU7DQotICAgICAgIHRy ZWUgYmlhcyA9IE5VTExfVFJFRTsNCiAgICAgIGlmIChsb29wX2xlbnMpDQp7 DQogIG9wdF9tYWNoaW5lX21vZGUgbmV3X292bW9kZQ0KQEAgLTEwMTc3LDgg KzEwMjM5LDggQEAgdmVjdG9yaXphYmxlX2xvYWQgKHZlY19pbmZvICp2aW5m bywNCiAgIGVsc2UgaWYgKG1lbW9yeV9hY2Nlc3NfdHlwZSA9PSBWTUFUX0dB VEhFUl9TQ0FUVEVSKQ0KICAgICB7DQogICAgICAgYWdncl90eXBlID0gZWxl bV90eXBlOw0KLSAgICAgIHZlY3RfZ2V0X3N0cmlkZWRfbG9hZF9zdG9yZV9v cHMgKHN0bXRfaW5mbywgbG9vcF92aW5mbywgJmdzX2luZm8sDQotICAgICAg ICAmYnVtcCwgJnZlY19vZmZzZXQpOw0KKyAgICAgIHZlY3RfZ2V0X3N0cmlk ZWRfbG9hZF9zdG9yZV9vcHMgKHN0bXRfaW5mbywgbG9vcF92aW5mbywgZ3Np LCAmZ3NfaW5mbywNCisgICAgICAgICZidW1wLCAmdmVjX29mZnNldCwgbG9v cF9sZW5zKTsNCiAgICAgfQ0KICAgZWxzZQ0KICAgICB7DQpAQCAtMTAzMzks NiArMTA0MDEsOCBAQCB2ZWN0b3JpemFibGVfbG9hZCAodmVjX2luZm8gKnZp bmZvLA0KICBmb3IgKGkgPSAwOyBpIDwgdmVjX251bTsgaSsrKQ0KICAgIHsN CiAgICAgIHRyZWUgZmluYWxfbWFzayA9IE5VTExfVFJFRTsNCisgICAgICAg dHJlZSBmaW5hbF9sZW4gPSBOVUxMX1RSRUU7DQorICAgICAgIHRyZWUgYmlh cyA9IE5VTExfVFJFRTsNCiAgICAgIGlmIChsb29wX21hc2tzDQogICYmIG1l bW9yeV9hY2Nlc3NfdHlwZSAhPSBWTUFUX0lOVkFSSUFOVCkNCmZpbmFsX21h c2sgPSB2ZWN0X2dldF9sb29wX21hc2sgKGxvb3BfdmluZm8sIGdzaSwgbG9v cF9tYXNrcywNCkBAIC0xMDM2OCw4ICsxMDQzMiwzNSBAQCB2ZWN0b3JpemFi bGVfbG9hZCAodmVjX2luZm8gKnZpbmZvLA0KICB2ZWNfb2Zmc2V0ID0gdmVj X29mZnNldHNbdmVjX251bSAqIGogKyBpXTsNCnRyZWUgemVybyA9IGJ1aWxk X3plcm9fY3N0ICh2ZWN0eXBlKTsNCnRyZWUgc2NhbGUgPSBzaXplX2ludCAo Z3NfaW5mby5zY2FsZSk7DQorDQorIGlmIChnc19pbmZvLmlmbiA9PSBJRk5f TEVOX01BU0tfR0FUSEVSX0xPQUQpDQorICAgew0KKyAgICAgaWYgKGxvb3Bf bGVucykNCisgICAgICAgZmluYWxfbGVuDQorID0gdmVjdF9nZXRfbG9vcF9s ZW4gKGxvb3BfdmluZm8sIGdzaSwgbG9vcF9sZW5zLA0KKyAgICAgIHZlY19u dW0gKiBuY29waWVzLCB2ZWN0eXBlLA0KKyAgICAgIHZlY19udW0gKiBqICsg aSwgMSk7DQorICAgICBlbHNlDQorICAgICAgIGZpbmFsX2xlbiA9IGJ1aWxk X2ludF9jc3QgKHNpemV0eXBlLA0KKyBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAo DQorICAgIHZlY3R5cGUpKTsNCisgICAgIHNpZ25lZCBjaGFyIGJpYXN2YWwN CisgICAgICAgPSBMT09QX1ZJTkZPX1BBUlRJQUxfTE9BRF9TVE9SRV9CSUFT IChsb29wX3ZpbmZvKTsNCisgICAgIGJpYXMgPSBidWlsZF9pbnRfY3N0IChp bnRRSV90eXBlX25vZGUsIGJpYXN2YWwpOw0KKyAgICAgaWYgKCFmaW5hbF9t YXNrKQ0KKyAgICAgICB7DQorIG1hc2tfdmVjdHlwZSA9IHRydXRoX3R5cGVf Zm9yICh2ZWN0eXBlKTsNCisgZmluYWxfbWFzayA9IGJ1aWxkX21pbnVzX29u ZV9jc3QgKG1hc2tfdmVjdHlwZSk7DQorICAgICAgIH0NCisgICB9DQorDQpn Y2FsbCAqY2FsbDsNCi0gaWYgKGZpbmFsX21hc2spDQorIGlmIChmaW5hbF9s ZW4gJiYgZmluYWxfbWFzaykNCisgICBjYWxsID0gZ2ltcGxlX2J1aWxkX2Nh bGxfaW50ZXJuYWwgKA0KKyAgICAgSUZOX0xFTl9NQVNLX0dBVEhFUl9MT0FE LCA3LCBkYXRhcmVmX3B0ciwNCisgICAgIHZlY19vZmZzZXQsIHNjYWxlLCB6 ZXJvLCBmaW5hbF9tYXNrLCBmaW5hbF9sZW4sDQorICAgICBiaWFzKTsNCisg ZWxzZSBpZiAoZmluYWxfbWFzaykNCiAgY2FsbCA9IGdpbXBsZV9idWlsZF9j YWxsX2ludGVybmFsDQogICAgKElGTl9NQVNLX0dBVEhFUl9MT0FELCA1LCBk YXRhcmVmX3B0ciwNCiAgICAgdmVjX29mZnNldCwgc2NhbGUsIHplcm8sIGZp bmFsX21hc2spOw0KQEAgLTEwNDYyLDkgKzEwNTUzLDYgQEAgdmVjdG9yaXph YmxlX2xvYWQgKHZlY19pbmZvICp2aW5mbywNCiAgICBtYWNoaW5lX21vZGUg dm1vZGUgPSBUWVBFX01PREUgKHZlY3R5cGUpOw0KICAgIG1hY2hpbmVfbW9k ZSBuZXdfdm1vZGUgPSB2bW9kZTsNCiAgICBpbnRlcm5hbF9mbiBwYXJ0aWFs X2lmbiA9IElGTl9MQVNUOw0KLSAgICAgLyogUHJvZHVjZSAnbGVuJyBhbmQg J2JpYXMnIGFyZ3VtZW50LiAgKi8NCi0gICAgIHRyZWUgZmluYWxfbGVuID0g TlVMTF9UUkVFOw0KLSAgICAgdHJlZSBiaWFzID0gTlVMTF9UUkVFOw0KICAg IGlmIChsb29wX2xlbnMpDQogICAgICB7DQpvcHRfbWFjaGluZV9tb2RlIG5l d19vdm1vZGUNCi0tIA0KMi4zNi4zDQogDQogDQo= ------=_001_NextPart627215547242_=------