From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg154.qq.com (smtpbg154.qq.com [15.184.224.54]) by sourceware.org (Postfix) with ESMTPS id C5E193857020 for ; Fri, 30 Jun 2023 07:08:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C5E193857020 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: bizesmtp73t1688108911tk9ofxc8 Received: from LAPTOP-EPITNQBU ( [58.60.1.5]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 30 Jun 2023 15:08:30 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: 7YFKcddXaggSEEf6l1pj4WByu2m086IKQBux4rf19bNJvKSNu3UqQpgeuMw3X 0YlvUNVvZNN7zIeEnHtjeOjSnrYZByLYf8d5Fixu5Mtsw4KWQ68FJquZYFbby97NnqbaH25 Q4niL0u2/HqzLi2ib7Id0Hvwc8e1O4jhgk0QUErlAiidJt84pb7LDSnhOl1IFT15VTM8iSn UpWJepWrnx9I40H2pBGHOpSLI3eZLkYwDVqkXvPWsru7/vBkOF3ZsZPzLK6MFJKv5AgMr7F f4nMJGufTnpET7ral4N6LlQgdxw+93SZJ+3l2yGQ5lOP0kORDbyg2bDreOmF12BwrjmG670 /k+B46WeAlckdx9jGxO0aWLMCOZ+xcXQVI9utKEnbzEH+DYkk0jYBP8ezmAFHHQBp/qP3bJ P9t3v50IXS3De+ZK8moTmNc4UY4jgwdn5BsUiOBglaw= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 13683162370017272780 Date: Fri, 30 Jun 2023 15:08:31 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , richard.sandiford Subject: Re: Re: [PATCH V2] Machine Description: Add LEN_MASK_{GATHER_LOAD, SCATTER_STORE} pattern References: <20230630023618.3898001-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 636DE4A7-4AB0-4793-B84C-D8E63496C981 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart300582608718_=----" 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,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,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_NextPart300582608718_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 SGksIFJpY2hpLiBJIGhhdmUgYWRkZWQgIkJJQVMiIGFuZCBzZW5kIFY0Og0K aHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAy My1KdW5lLzYyMzI5My5odG1sIA0KDQpGb3JnZXQgYWJvdXQgVjMuIEkgbWFk ZSBhIG1pc3Rha2UgdGhlcmUsIHNvcnJ5IGFib3V0IHRoYXQuDQoNClRoYW5r cy4NCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTogUmljaGFy ZCBCaWVuZXINCkRhdGU6IDIwMjMtMDYtMzAgMTQ6MjYNClRvOiBKdS1aaGUg WmhvbmcNCkNDOiBnY2MtcGF0Y2hlczsgcmljaGFyZC5zYW5kaWZvcmQNClN1 YmplY3Q6IFJlOiBbUEFUQ0ggVjJdIE1hY2hpbmUgRGVzY3JpcHRpb246IEFk ZCBMRU5fTUFTS197R0FUSEVSX0xPQUQsIFNDQVRURVJfU1RPUkV9IHBhdHRl cm4NCk9uIEZyaSwgMzAgSnVuIDIwMjMsIGp1emhlLnpob25nQHJpdmFpLmFp IHdyb3RlOg0KIA0KPiBGcm9tOiBKdS1aaGUgWmhvbmcgPGp1emhlLnpob25n QHJpdmFpLmFpPg0KPiANCj4gSGksIFJpY2hpIGFuZCBSaWNoYXJkLg0KPiAN Cj4gVGhpcyBwYXRjaCBpcyBhZGRpbmcgTEVOX01BU0tfe0dBVEhFUl9MT0FE LFNDQVRURVJfU1RPUkV9IHRvIGFsbG93IHRhcmdldHMNCj4gaGFuZGxlIGZs b3cgY29udHJvbCBieSBtYXNrIGFuZCBsb29wIGNvbnRyb2wgYnkgbGVuZ3Ro IG9uIGdhdGhlci9zY2F0dGVyIG1lbW9yeQ0KPiBvcGVyYXRpb25zLiBDb25z aWRlciB0aGlzIGZvbGxvd2luZyBjYXNlOg0KPiANCj4gI2luY2x1ZGUgPHN0 ZGludC5oPg0KPiB2b2lkDQo+IGYgKHVpbnQ4X3QgKnJlc3RyaWN0IGEsIA0K PiAgICB1aW50OF90ICpyZXN0cmljdCBiLCBpbnQgbiwNCj4gICAgaW50IGJh c2UsIGludCBzdGVwLA0KPiAgICBpbnQgKnJlc3RyaWN0IGNvbmQpDQo+IHsN Cj4gICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCj4gICAgIHsNCj4g ICAgICAgaWYgKGNvbmRbaV0pDQo+ICAgICAgICAgYVtpICogc3RlcCArIGJh c2VdID0gYltpICogc3RlcCArIGJhc2VdOw0KPiAgICAgfQ0KPiB9DQo+IA0K PiBXZSBob3BlIFJWViBjYW4gdmVjdG9yaXplIHN1Y2ggY2FzZSBpbnRvIGZv bGxvd2luZyBJUjoNCj4gDQo+IGxvb3BfbGVuID0gU0VMRUNUX1ZMDQo+IGNv bnRyb2xfbWFzayA9IGNvbXBhcmlzb24NCj4gdiA9IExFTl9NQVNLX0dBVEhF Ul9MT0FEICguLiwgbG9vcF9sZW4sIGNvbnRyb2xfbWFzaykNCj4gTEVOX1ND QVRURVJfU1RPUkUgKC4uLiB2LCAuLi4sIGxvb3BfbGVuLCBjb250cm9sX21h c2spDQo+IA0KPiBUaGlzIHBhdGNoIGRvZXNuJ3QgYXBwbHkgc3VjaCBwYXR0 ZXJucyBpbnRvIHZlY3Rvcml6ZXIsIGp1c3QgYWRkIHBhdHRlcm5zDQo+IGFu ZCB1cGRhdGUgdGhlIGRvY3VtZW50cy4NCiANCkkgc2VlIHRoaXMgZG9lc24n dCBhZGQgYSBCSUFTIGFyZ3VtZW50IC0gSSB0aGluayB3ZSBzaG91bGQgYmUg Y29uc2lzdGVudA0KaGVyZSwgYXQgbGVhc3QgZm9yIHRoZSBtZW1vcnkgYWNj ZXNzIGludGVybmFsIGZ1bmN0aW9ucy4gIEknbGwgbm90ZQ0KdGhhdCAnbGVu JyBoYXMgaXNzdWVzIHdpdGggc2NhdHRlci9nYXRoZXIgYW55d2F5IHNpbmNl IHRoZSB0cmljayBvZg0KaGFuZGxpbmcgJ2xlbicgaW4gYnl0ZXMgYnkgb25s eSBwcm92aWRpbmcgUUltb2RlIHZhcmlhbnRzIGRvZXNuJ3Qgd29yaw0KaGVy ZS4gIFNvIG1heWJlIHRoYXQncyBnb29kIGVub3VnaCBmb3IgYW4gYXJndW1l bnQgdG8gbm90IGFkZCBiaWFzDQplaXRoZXIgLi4uDQogDQpSaWNoYXJkLCBk byB5b3UgaGF2ZSBhbnkgb3BpbmlvbiBoZXJlPw0KIA0KPiBXaWxsIHNlbmQg cGF0Y2ggd2hpY2ggYXBwbHkgc3VjaCBwYXR0ZXJucyBpbnRvIHZlY3Rvcml6 ZXIgc29vbiBhZnRlciB0aGlzDQo+IHBhdGNoIGlzIGFwcHJvdmVkLg0KPiAN Cj4gVGhhbmtzLg0KPiANCj4gZ2NjL0NoYW5nZUxvZzoNCj4gDQo+ICAgICAg ICAgKiBkb2MvbWQudGV4aTogQWRkIExFTl9NQVNLX3tHQVRIRVJfTE9BRCxT Q0FUVEVSX1NUT1JFfS4NCj4gICAgICAgICAqIGludGVybmFsLWZuLmNjIChl eHBhbmRfc2NhdHRlcl9zdG9yZV9vcHRhYl9mbik6IERpdHRvLg0KPiAgICAg ICAgIChleHBhbmRfZ2F0aGVyX2xvYWRfb3B0YWJfZm4pOiBEaXR0by4NCj4g ICAgICAgICAoaW50ZXJuYWxfbG9hZF9mbl9wKTogRGl0dG8uDQo+ICAgICAg ICAgKGludGVybmFsX3N0b3JlX2ZuX3ApOiBEaXR0by4NCj4gICAgICAgICAo aW50ZXJuYWxfZ2F0aGVyX3NjYXR0ZXJfZm5fcCk6IERpdHRvLg0KPiAgICAg ICAgIChpbnRlcm5hbF9mbl9tYXNrX2luZGV4KTogRGl0dG8uDQogDQpDYW4g eW91IGFkZCBpbnRlcm5hbF9mbl9sZW5faW5kZXggcGxlYXNlIGFuZCBtYWtl IHVzZSBvZiBpdD8NClNob3VsZCBoYXZlIGFza2VkIGZvciB0aGlzIGluIHRo ZSBwcmV2aW91cyBwYXRjaCBhbHJlYWR5IEkgZ3Vlc3MuDQogDQpPdGhlcndp c2UgdGhpcyBsb29rcyBnb29kIHRvIG1lLg0KIA0KVGhhbmtzLA0KUmljaGFy ZC4NCiANCj4gICAgICAgICAoaW50ZXJuYWxfZm5fc3RvcmVkX3ZhbHVlX2lu ZGV4KTogRGl0dG8uDQo+ICAgICAgICAgKiBpbnRlcm5hbC1mbi5kZWYgKExF Tl9NQVNLX0dBVEhFUl9MT0FEKTogRGl0dG8uDQo+ICAgICAgICAgKExFTl9N QVNLX1NDQVRURVJfU1RPUkUpOiBEaXR0by4NCj4gICAgICAgICAqIG9wdGFi cy5kZWYgKE9QVEFCX0NEKTogRGl0dG8uDQo+IA0KPiAtLS0NCj4gIGdjYy9k b2MvbWQudGV4aSAgICAgfCAxNyArKysrKysrKysrKysrKysrKw0KPiAgZ2Nj L2ludGVybmFsLWZuLmNjICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tDQo+ICBnY2MvaW50ZXJuYWwtZm4uZGVmIHwgIDggKysrKysr LS0NCj4gIGdjYy9vcHRhYnMuZGVmICAgICAgfCAgMiArKw0KPiAgNCBmaWxl cyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0K PiANCj4gZGlmZiAtLWdpdCBhL2djYy9kb2MvbWQudGV4aSBiL2djYy9kb2Mv bWQudGV4aQ0KPiBpbmRleCA5NjQ4ZmRjODQ2YS4uYjg0YWFhYjcwNzUgMTAw NjQ0DQo+IC0tLSBhL2djYy9kb2MvbWQudGV4aQ0KPiArKysgYi9nY2MvZG9j L21kLnRleGkNCj4gQEAgLTUwNDAsNiArNTA0MCwxNSBAQCBvcGVyYW5kIDUu ICBCaXQgQHZhcntpfSBvZiB0aGUgbWFzayBpcyBzZXQgaWYgZWxlbWVudCBA dmFye2l9DQo+ICBvZiB0aGUgcmVzdWx0IHNob3VsZCBiZSBsb2FkZWQgZnJv bSBtZW1vcnkgYW5kIGNsZWFyIGlmIGVsZW1lbnQgQHZhcntpfQ0KPiAgb2Yg dGhlIHJlc3VsdCBzaG91bGQgYmUgc2V0IHRvIHplcm8uDQo+ICANCj4gK0Bj aW5kZXggQGNvZGV7bGVuX21hc2tfZ2F0aGVyX2xvYWRAdmFye219QHZhcntu fX0gaW5zdHJ1Y3Rpb24gcGF0dGVybg0KPiArQGl0ZW0gQHNhbXB7bGVuX21h c2tfZ2F0aGVyX2xvYWRAdmFye219QHZhcntufX0NCj4gK0xpa2UgQHNhbXB7 Z2F0aGVyX2xvYWRAdmFye219QHZhcntufX0sIGJ1dCB0YWtlcyBhbiBleHRy YSBsZW5ndGggb3BlcmFuZCAob3BlcmFuZCA1KQ0KPiArYXMgd2VsbCBhcyBh IG1hc2sgb3BlcmFuZCAob3BlcmFuZCA2KS4gU2ltaWxhciB0byBsZW5fbWFz a2xvYWQsIHRoZSBpbnN0cnVjdGlvbiBsb2Fkcw0KPiArYXQgbW9zdCAob3Bl cmFuZCA1KSBlbGVtZW50cyBmcm9tIG1lbW9yeS4NCj4gK0JpdCBAdmFye2l9 IG9mIHRoZSBtYXNrIGlzIHNldCBpZiBlbGVtZW50IEB2YXJ7aX0gb2YgdGhl IHJlc3VsdCBzaG91bGQNCj4gK2JlIGxvYWRlZCBmcm9tIG1lbW9yeSBhbmQg Y2xlYXIgaWYgZWxlbWVudCBAdmFye2l9IG9mIHRoZSByZXN1bHQgc2hvdWxk IGJlIHVuZGVmaW5lZC4NCj4gK01hc2sgZWxlbWVudHMgQHZhcntpfSB3aXRo IGkgPiAob3BlcmFuZCA1KSBhcmUgaWdub3JlZC4NCj4gKw0KPiAgQGNpbmRl eCBAY29kZXtzY2F0dGVyX3N0b3JlQHZhcnttfUB2YXJ7bn19IGluc3RydWN0 aW9uIHBhdHRlcm4NCj4gIEBpdGVtIEBzYW1we3NjYXR0ZXJfc3RvcmVAdmFy e219QHZhcntufX0NCj4gIFN0b3JlIGEgdmVjdG9yIG9mIG1vZGUgQHZhcntt fSBpbnRvIHNldmVyYWwgZGlzdGluY3QgbWVtb3J5IGxvY2F0aW9ucy4NCj4g QEAgLTUwNjksNiArNTA3OCwxNCBAQCBMaWtlIEBzYW1we3NjYXR0ZXJfc3Rv cmVAdmFye219QHZhcntufX0sIGJ1dCB0YWtlcyBhbiBleHRyYSBtYXNrIG9w ZXJhbmQgYXMNCj4gIG9wZXJhbmQgNS4gIEJpdCBAdmFye2l9IG9mIHRoZSBt YXNrIGlzIHNldCBpZiBlbGVtZW50IEB2YXJ7aX0NCj4gIG9mIHRoZSByZXN1 bHQgc2hvdWxkIGJlIHN0b3JlZCB0byBtZW1vcnkuDQo+ICANCj4gK0BjaW5k ZXggQGNvZGV7bGVuX21hc2tfc2NhdHRlcl9zdG9yZUB2YXJ7bX1AdmFye259 fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQo+ICtAaXRlbSBAc2FtcHtsZW5fbWFz a19zY2F0dGVyX3N0b3JlQHZhcnttfUB2YXJ7bn19DQo+ICtMaWtlIEBzYW1w e3NjYXR0ZXJfc3RvcmVAdmFye219QHZhcntufX0sIGJ1dCB0YWtlcyBhbiBl eHRyYSBsZW5ndGggb3BlcmFuZCAob3BlcmFuZCA1KQ0KPiArYXMgd2VsbCBh cyBhIG1hc2sgb3BlcmFuZCAob3BlcmFuZCA2KS4gVGhlIGluc3RydWN0aW9u IHN0b3JlcyBhdCBtb3N0IChvcGVyYW5kIDUpIGVsZW1lbnRzDQo+ICtvZiAo b3BlcmFuZCA0KSB0byBtZW1vcnkuDQo+ICtCaXQgQHZhcntpfSBvZiB0aGUg bWFzayBpcyBzZXQgaWYgZWxlbWVudCBAdmFye2l9IG9mIChvcGVyYW5kIDQp IHNob3VsZCBiZSBzdG9yZWQuDQo+ICtNYXNrIGVsZW1lbnRzIEB2YXJ7aX0g d2l0aCBpID4gKG9wZXJhbmQgNSkgYXJlIGlnbm9yZWQuDQo+ICsNCj4gIEBj aW5kZXggQGNvZGV7dmVjX3NldEB2YXJ7bX19IGluc3RydWN0aW9uIHBhdHRl cm4NCj4gIEBpdGVtIEBzYW1we3ZlY19zZXRAdmFye219fQ0KPiAgU2V0IGdp dmVuIGZpZWxkIGluIHRoZSB2ZWN0b3IgdmFsdWUuICBPcGVyYW5kIDAgaXMg dGhlIHZlY3RvciB0byBtb2RpZnksDQo+IGRpZmYgLS1naXQgYS9nY2MvaW50 ZXJuYWwtZm4uY2MgYi9nY2MvaW50ZXJuYWwtZm4uY2MNCj4gaW5kZXggOTAx NzE3NmRjN2EuLmU0YjU1OGUzM2Q4IDEwMDY0NA0KPiAtLS0gYS9nY2MvaW50 ZXJuYWwtZm4uY2MNCj4gKysrIGIvZ2NjL2ludGVybmFsLWZuLmNjDQo+IEBA IC0zNTM3LDcgKzM1MzcsNyBAQCBleHBhbmRfc2NhdHRlcl9zdG9yZV9vcHRh Yl9mbiAoaW50ZXJuYWxfZm4sIGdjYWxsICpzdG10LCBkaXJlY3Rfb3B0YWIg b3B0YWIpDQo+ICAgIEhPU1RfV0lERV9JTlQgc2NhbGVfaW50ID0gdHJlZV90 b19zaHdpIChzY2FsZSk7DQo+ICAgIHJ0eCByaHNfcnR4ID0gZXhwYW5kX25v cm1hbCAocmhzKTsNCj4gIA0KPiAtICBjbGFzcyBleHBhbmRfb3BlcmFuZCBv cHNbNl07DQo+ICsgIGNsYXNzIGV4cGFuZF9vcGVyYW5kIG9wc1s3XTsNCj4g ICAgaW50IGkgPSAwOw0KPiAgICBjcmVhdGVfYWRkcmVzc19vcGVyYW5kICgm b3BzW2krK10sIGJhc2VfcnR4KTsNCj4gICAgY3JlYXRlX2lucHV0X29wZXJh bmQgKCZvcHNbaSsrXSwgb2Zmc2V0X3J0eCwgVFlQRV9NT0RFIChUUkVFX1RZ UEUgKG9mZnNldCkpKTsNCj4gQEAgLTM1NDYsNiArMzU0NiwxNCBAQCBleHBh bmRfc2NhdHRlcl9zdG9yZV9vcHRhYl9mbiAoaW50ZXJuYWxfZm4sIGdjYWxs ICpzdG10LCBkaXJlY3Rfb3B0YWIgb3B0YWIpDQo+ICAgIGNyZWF0ZV9pbnB1 dF9vcGVyYW5kICgmb3BzW2krK10sIHJoc19ydHgsIFRZUEVfTU9ERSAoVFJF RV9UWVBFIChyaHMpKSk7DQo+ICAgIGlmIChtYXNrX2luZGV4ID49IDApDQo+ ICAgICAgew0KPiArICAgICAgaWYgKG9wdGFiID09IGxlbl9tYXNrX3NjYXR0 ZXJfc3RvcmVfb3B0YWIpDQo+ICsgew0KPiArICAgdHJlZSBsZW4gPSBnaW1w bGVfY2FsbF9hcmcgKHN0bXQsIG1hc2tfaW5kZXggLSAxKTsNCj4gKyAgIHJ0 eCBsZW5fcnR4ID0gZXhwYW5kX25vcm1hbCAobGVuKTsNCj4gKyAgIGNyZWF0 ZV9jb252ZXJ0X29wZXJhbmRfZnJvbSAoJm9wc1tpKytdLCBsZW5fcnR4LA0K PiArICAgICAgICBUWVBFX01PREUgKFRSRUVfVFlQRSAobGVuKSksDQo+ICsg ICAgICAgIFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAobGVuKSkpOw0KPiAr IH0NCj4gICAgICAgIHRyZWUgbWFzayA9IGdpbXBsZV9jYWxsX2FyZyAoc3Rt dCwgbWFza19pbmRleCk7DQo+ICAgICAgICBydHggbWFza19ydHggPSBleHBh bmRfbm9ybWFsIChtYXNrKTsNCj4gICAgICAgIGNyZWF0ZV9pbnB1dF9vcGVy YW5kICgmb3BzW2krK10sIG1hc2tfcnR4LCBUWVBFX01PREUgKFRSRUVfVFlQ RSAobWFzaykpKTsNCj4gQEAgLTM1NzIsNyArMzU4MCw3IEBAIGV4cGFuZF9n YXRoZXJfbG9hZF9vcHRhYl9mbiAoaW50ZXJuYWxfZm4sIGdjYWxsICpzdG10 LCBkaXJlY3Rfb3B0YWIgb3B0YWIpDQo+ICAgIEhPU1RfV0lERV9JTlQgc2Nh bGVfaW50ID0gdHJlZV90b19zaHdpIChzY2FsZSk7DQo+ICANCj4gICAgaW50 IGkgPSAwOw0KPiAtICBjbGFzcyBleHBhbmRfb3BlcmFuZCBvcHNbNl07DQo+ ICsgIGNsYXNzIGV4cGFuZF9vcGVyYW5kIG9wc1s3XTsNCj4gICAgY3JlYXRl X291dHB1dF9vcGVyYW5kICgmb3BzW2krK10sIGxoc19ydHgsIFRZUEVfTU9E RSAoVFJFRV9UWVBFIChsaHMpKSk7DQo+ICAgIGNyZWF0ZV9hZGRyZXNzX29w ZXJhbmQgKCZvcHNbaSsrXSwgYmFzZV9ydHgpOw0KPiAgICBjcmVhdGVfaW5w dXRfb3BlcmFuZCAoJm9wc1tpKytdLCBvZmZzZXRfcnR4LCBUWVBFX01PREUg KFRSRUVfVFlQRSAob2Zmc2V0KSkpOw0KPiBAQCAtMzU4NCw2ICszNTkyLDE3 IEBAIGV4cGFuZF9nYXRoZXJfbG9hZF9vcHRhYl9mbiAoaW50ZXJuYWxfZm4s IGdjYWxsICpzdG10LCBkaXJlY3Rfb3B0YWIgb3B0YWIpDQo+ICAgICAgICBy dHggbWFza19ydHggPSBleHBhbmRfbm9ybWFsIChtYXNrKTsNCj4gICAgICAg IGNyZWF0ZV9pbnB1dF9vcGVyYW5kICgmb3BzW2krK10sIG1hc2tfcnR4LCBU WVBFX01PREUgKFRSRUVfVFlQRSAobWFzaykpKTsNCj4gICAgICB9DQo+ICsg IGVsc2UgaWYgKG9wdGFiID09IGxlbl9tYXNrX2dhdGhlcl9sb2FkX29wdGFi KQ0KPiArICAgIHsNCj4gKyAgICAgIHRyZWUgbGVuID0gZ2ltcGxlX2NhbGxf YXJnIChzdG10LCA0KTsNCj4gKyAgICAgIHJ0eCBsZW5fcnR4ID0gZXhwYW5k X25vcm1hbCAobGVuKTsNCj4gKyAgICAgIGNyZWF0ZV9jb252ZXJ0X29wZXJh bmRfZnJvbSAoJm9wc1tpKytdLCBsZW5fcnR4LA0KPiArICAgIFRZUEVfTU9E RSAoVFJFRV9UWVBFIChsZW4pKSwNCj4gKyAgICBUWVBFX1VOU0lHTkVEIChU UkVFX1RZUEUgKGxlbikpKTsNCj4gKyAgICAgIHRyZWUgbWFzayA9IGdpbXBs ZV9jYWxsX2FyZyAoc3RtdCwgNSk7DQo+ICsgICAgICBydHggbWFza19ydHgg PSBleHBhbmRfbm9ybWFsIChtYXNrKTsNCj4gKyAgICAgIGNyZWF0ZV9pbnB1 dF9vcGVyYW5kICgmb3BzW2krK10sIG1hc2tfcnR4LCBUWVBFX01PREUgKFRS RUVfVFlQRSAobWFzaykpKTsNCj4gKyAgICB9DQo+ICAgIGluc25fY29kZSBp Y29kZSA9IGNvbnZlcnRfb3B0YWJfaGFuZGxlciAob3B0YWIsIFRZUEVfTU9E RSAoVFJFRV9UWVBFIChsaHMpKSwNCj4gICAgIFRZUEVfTU9ERSAoVFJFRV9U WVBFIChvZmZzZXQpKSk7DQo+ICAgIGV4cGFuZF9pbnNuIChpY29kZSwgaSwg b3BzKTsNCj4gQEAgLTQ0MzQsNiArNDQ1Myw3IEBAIGludGVybmFsX2xvYWRf Zm5fcCAoaW50ZXJuYWxfZm4gZm4pDQo+ICAgICAgY2FzZSBJRk5fTUFTS19M T0FEX0xBTkVTOg0KPiAgICAgIGNhc2UgSUZOX0dBVEhFUl9MT0FEOg0KPiAg ICAgIGNhc2UgSUZOX01BU0tfR0FUSEVSX0xPQUQ6DQo+ICsgICAgY2FzZSBJ Rk5fTEVOX01BU0tfR0FUSEVSX0xPQUQ6DQo+ICAgICAgY2FzZSBJRk5fTEVO X0xPQUQ6DQo+ICAgICAgY2FzZSBJRk5fTEVOX01BU0tfTE9BRDoNCj4gICAg ICAgIHJldHVybiB0cnVlOw0KPiBAQCAtNDQ1NSw2ICs0NDc1LDcgQEAgaW50 ZXJuYWxfc3RvcmVfZm5fcCAoaW50ZXJuYWxfZm4gZm4pDQo+ICAgICAgY2Fz ZSBJRk5fTUFTS19TVE9SRV9MQU5FUzoNCj4gICAgICBjYXNlIElGTl9TQ0FU VEVSX1NUT1JFOg0KPiAgICAgIGNhc2UgSUZOX01BU0tfU0NBVFRFUl9TVE9S RToNCj4gKyAgICBjYXNlIElGTl9MRU5fTUFTS19TQ0FUVEVSX1NUT1JFOg0K PiAgICAgIGNhc2UgSUZOX0xFTl9TVE9SRToNCj4gICAgICBjYXNlIElGTl9M RU5fTUFTS19TVE9SRToNCj4gICAgICAgIHJldHVybiB0cnVlOw0KPiBAQCAt NDQ3Myw4ICs0NDk0LDEwIEBAIGludGVybmFsX2dhdGhlcl9zY2F0dGVyX2Zu X3AgKGludGVybmFsX2ZuIGZuKQ0KPiAgICAgIHsNCj4gICAgICBjYXNlIElG Tl9HQVRIRVJfTE9BRDoNCj4gICAgICBjYXNlIElGTl9NQVNLX0dBVEhFUl9M T0FEOg0KPiArICAgIGNhc2UgSUZOX0xFTl9NQVNLX0dBVEhFUl9MT0FEOg0K PiAgICAgIGNhc2UgSUZOX1NDQVRURVJfU1RPUkU6DQo+ICAgICAgY2FzZSBJ Rk5fTUFTS19TQ0FUVEVSX1NUT1JFOg0KPiArICAgIGNhc2UgSUZOX0xFTl9N QVNLX1NDQVRURVJfU1RPUkU6DQo+ICAgICAgICByZXR1cm4gdHJ1ZTsNCj4g IA0KPiAgICAgIGRlZmF1bHQ6DQo+IEBAIC00NTA0LDYgKzQ1MjcsMTAgQEAg aW50ZXJuYWxfZm5fbWFza19pbmRleCAoaW50ZXJuYWxfZm4gZm4pDQo+ICAg ICAgY2FzZSBJRk5fTEVOX01BU0tfU1RPUkU6DQo+ICAgICAgICByZXR1cm4g MzsNCj4gIA0KPiArICAgIGNhc2UgSUZOX0xFTl9NQVNLX0dBVEhFUl9MT0FE Og0KPiArICAgIGNhc2UgSUZOX0xFTl9NQVNLX1NDQVRURVJfU1RPUkU6DQo+ ICsgICAgICByZXR1cm4gNTsNCj4gKw0KPiAgICAgIGRlZmF1bHQ6DQo+ICAg ICAgICByZXR1cm4gKGNvbmRpdGlvbmFsX2ludGVybmFsX2ZuX2NvZGUgKGZu KSAhPSBFUlJPUl9NQVJLDQo+ICAgICAgICB8fCBnZXRfdW5jb25kaXRpb25h bF9pbnRlcm5hbF9mbiAoZm4pICE9IElGTl9MQVNUID8gMCA6IC0xKTsNCj4g QEAgLTQ1MjIsNiArNDU0OSw3IEBAIGludGVybmFsX2ZuX3N0b3JlZF92YWx1 ZV9pbmRleCAoaW50ZXJuYWxfZm4gZm4pDQo+ICAgICAgY2FzZSBJRk5fTUFT S19TVE9SRV9MQU5FUzoNCj4gICAgICBjYXNlIElGTl9TQ0FUVEVSX1NUT1JF Og0KPiAgICAgIGNhc2UgSUZOX01BU0tfU0NBVFRFUl9TVE9SRToNCj4gKyAg ICBjYXNlIElGTl9MRU5fTUFTS19TQ0FUVEVSX1NUT1JFOg0KPiAgICAgIGNh c2UgSUZOX0xFTl9TVE9SRToNCj4gICAgICAgIHJldHVybiAzOw0KPiAgDQo+ IGRpZmYgLS1naXQgYS9nY2MvaW50ZXJuYWwtZm4uZGVmIGIvZ2NjL2ludGVy bmFsLWZuLmRlZg0KPiBpbmRleCBiYzk0N2MwZmRlNy4uNWJlMjRkZWNmODgg MTAwNjQ0DQo+IC0tLSBhL2djYy9pbnRlcm5hbC1mbi5kZWYNCj4gKysrIGIv Z2NjL2ludGVybmFsLWZuLmRlZg0KPiBAQCAtNDgsMTQgKzQ4LDE0IEBAIGFs b25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlDQo+ICAgICAtIG1hc2tfbG9hZDogY3VycmVudGx5IGp1c3QgbWFza2xv YWQNCj4gICAgIC0gbG9hZF9sYW5lczogY3VycmVudGx5IGp1c3QgdmVjX2xv YWRfbGFuZXMNCj4gICAgIC0gbWFza19sb2FkX2xhbmVzOiBjdXJyZW50bHkg anVzdCB2ZWNfbWFza19sb2FkX2xhbmVzDQo+IC0gICAtIGdhdGhlcl9sb2Fk OiB1c2VkIGZvciB7bWFza18sfWdhdGhlcl9sb2FkDQo+ICsgICAtIGdhdGhl cl9sb2FkOiB1c2VkIGZvciB7bWFza18sbGVuX21hc2tfLH1nYXRoZXJfbG9h ZA0KPiAgICAgLSBsZW5fbG9hZDogY3VycmVudGx5IGp1c3QgbGVuX2xvYWQN Cj4gICAgIC0gbGVuX21hc2tsb2FkOiBjdXJyZW50bHkganVzdCBsZW5fbWFz a2xvYWQNCj4gIA0KPiAgICAgLSBtYXNrX3N0b3JlOiBjdXJyZW50bHkganVz dCBtYXNrc3RvcmUNCj4gICAgIC0gc3RvcmVfbGFuZXM6IGN1cnJlbnRseSBq dXN0IHZlY19zdG9yZV9sYW5lcw0KPiAgICAgLSBtYXNrX3N0b3JlX2xhbmVz OiBjdXJyZW50bHkganVzdCB2ZWNfbWFza19zdG9yZV9sYW5lcw0KPiAtICAg LSBzY2F0dGVyX3N0b3JlOiB1c2VkIGZvciB7bWFza18sfXNjYXR0ZXJfc3Rv cmUNCj4gKyAgIC0gc2NhdHRlcl9zdG9yZTogdXNlZCBmb3Ige21hc2tfLGxl bl9tYXNrXyx9c2NhdHRlcl9zdG9yZQ0KPiAgICAgLSBsZW5fc3RvcmU6IGN1 cnJlbnRseSBqdXN0IGxlbl9zdG9yZQ0KPiAgICAgLSBsZW5fbWFza3N0b3Jl OiBjdXJyZW50bHkganVzdCBsZW5fbWFza3N0b3JlDQo+ICANCj4gQEAgLTE1 Nyw2ICsxNTcsOCBAQCBERUZfSU5URVJOQUxfT1BUQUJfRk4gKE1BU0tfTE9B RF9MQU5FUywgRUNGX1BVUkUsDQo+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4g KEdBVEhFUl9MT0FELCBFQ0ZfUFVSRSwgZ2F0aGVyX2xvYWQsIGdhdGhlcl9s b2FkKQ0KPiAgREVGX0lOVEVSTkFMX09QVEFCX0ZOIChNQVNLX0dBVEhFUl9M T0FELCBFQ0ZfUFVSRSwNCj4gICAgICAgICBtYXNrX2dhdGhlcl9sb2FkLCBn YXRoZXJfbG9hZCkNCj4gK0RFRl9JTlRFUk5BTF9PUFRBQl9GTiAoTEVOX01B U0tfR0FUSEVSX0xPQUQsIEVDRl9QVVJFLA0KPiArICAgICAgICBsZW5fbWFz a19nYXRoZXJfbG9hZCwgZ2F0aGVyX2xvYWQpDQo+ICANCj4gIERFRl9JTlRF Uk5BTF9PUFRBQl9GTiAoTEVOX0xPQUQsIEVDRl9QVVJFLCBsZW5fbG9hZCwg bGVuX2xvYWQpDQo+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKExFTl9NQVNL X0xPQUQsIEVDRl9QVVJFLCBsZW5fbWFza2xvYWQsIGxlbl9tYXNrbG9hZCkN Cj4gQEAgLTE2NCw2ICsxNjYsOCBAQCBERUZfSU5URVJOQUxfT1BUQUJfRk4g KExFTl9NQVNLX0xPQUQsIEVDRl9QVVJFLCBsZW5fbWFza2xvYWQsIGxlbl9t YXNrbG9hZCkNCj4gIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoU0NBVFRFUl9T VE9SRSwgMCwgc2NhdHRlcl9zdG9yZSwgc2NhdHRlcl9zdG9yZSkNCj4gIERF Rl9JTlRFUk5BTF9PUFRBQl9GTiAoTUFTS19TQ0FUVEVSX1NUT1JFLCAwLA0K PiAgICAgICAgIG1hc2tfc2NhdHRlcl9zdG9yZSwgc2NhdHRlcl9zdG9yZSkN Cj4gK0RFRl9JTlRFUk5BTF9PUFRBQl9GTiAoTEVOX01BU0tfU0NBVFRFUl9T VE9SRSwgMCwNCj4gKyAgICAgICAgbGVuX21hc2tfc2NhdHRlcl9zdG9yZSwg c2NhdHRlcl9zdG9yZSkNCj4gIA0KPiAgREVGX0lOVEVSTkFMX09QVEFCX0ZO IChNQVNLX1NUT1JFLCAwLCBtYXNrc3RvcmUsIG1hc2tfc3RvcmUpDQo+ICBE RUZfSU5URVJOQUxfT1BUQUJfRk4gKFNUT1JFX0xBTkVTLCBFQ0ZfQ09OU1Qs IHZlY19zdG9yZV9sYW5lcywgc3RvcmVfbGFuZXMpDQo+IGRpZmYgLS1naXQg YS9nY2Mvb3B0YWJzLmRlZiBiL2djYy9vcHRhYnMuZGVmDQo+IGluZGV4IDk1 MzNlYjExNTY1Li41ODkzM2U2MTgxNyAxMDA2NDQNCj4gLS0tIGEvZ2NjL29w dGFicy5kZWYNCj4gKysrIGIvZ2NjL29wdGFicy5kZWYNCj4gQEAgLTk1LDgg Kzk1LDEwIEBAIE9QVEFCX0NEKGxlbl9tYXNrbG9hZF9vcHRhYiwgImxlbl9t YXNrbG9hZCRhJGIiKQ0KPiAgT1BUQUJfQ0QobGVuX21hc2tzdG9yZV9vcHRh YiwgImxlbl9tYXNrc3RvcmUkYSRiIikNCj4gIE9QVEFCX0NEKGdhdGhlcl9s b2FkX29wdGFiLCAiZ2F0aGVyX2xvYWQkYSRiIikNCj4gIE9QVEFCX0NEKG1h c2tfZ2F0aGVyX2xvYWRfb3B0YWIsICJtYXNrX2dhdGhlcl9sb2FkJGEkYiIp DQo+ICtPUFRBQl9DRChsZW5fbWFza19nYXRoZXJfbG9hZF9vcHRhYiwgImxl bl9tYXNrX2dhdGhlcl9sb2FkJGEkYiIpDQo+ICBPUFRBQl9DRChzY2F0dGVy X3N0b3JlX29wdGFiLCAic2NhdHRlcl9zdG9yZSRhJGIiKQ0KPiAgT1BUQUJf Q0QobWFza19zY2F0dGVyX3N0b3JlX29wdGFiLCAibWFza19zY2F0dGVyX3N0 b3JlJGEkYiIpDQo+ICtPUFRBQl9DRChsZW5fbWFza19zY2F0dGVyX3N0b3Jl X29wdGFiLCAibGVuX21hc2tfc2NhdHRlcl9zdG9yZSRhJGIiKQ0KPiAgT1BU QUJfQ0QodmVjX2V4dHJhY3Rfb3B0YWIsICJ2ZWNfZXh0cmFjdCRhJGIiKQ0K PiAgT1BUQUJfQ0QodmVjX2luaXRfb3B0YWIsICJ2ZWNfaW5pdCRhJGIiKQ0K PiAgDQo+IA0KIA0KLS0gDQpSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1 c2UuZGU+DQpTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgs IEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJnLA0KR2VybWFu eTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRyZXcgTWNEb25h bGQsIEJvdWRpZW4gTW9lcm1hbjsNCkhSQiAzNjgwOSAoQUcgTnVlcm5iZXJn KQ0KIA0K ------=_001_NextPart300582608718_=------