From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr1.qq.com (smtpbgbr1.qq.com [54.207.19.206]) by sourceware.org (Postfix) with ESMTPS id 910C63858D1E for ; Mon, 19 Dec 2022 22:59:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 910C63858D1E 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: bizesmtp91t1671490746tkigj1sy Received: from TABLET-POE6JQHH ( [223.213.32.164]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 20 Dec 2022 06:59:05 +0800 (CST) X-QQ-SSF: 01400000000000E0K000B00A0000000 X-QQ-FEAT: X8eDqSQ5BkqixIS+hRUSSKvreQxc6p5sacIE1ToI3+9pTPw09vWiELgZmJgoU YSUZaVkcVtb1YjtpB3WoLIbokX5CT63mVy4D2qoQUA4x1JZ3BCjnwLduYDjgG3gpOC2BgIA bOpFF+Qo4QBis1Lxy3vhHbT8fQGFP30DAYtu1I6H8qth93h/HFz7yeViaTnHxSKmNmveHFn GM6xpuMPi0ei3h7KTx8HcnhSNcAtE3nUUOwHGopR4i4ij/R6OXttE8DvXOjNi4cYTSyIWdA FiGIRdsq0psKlsih1axkBfAAoHPDcnGH/ngUgFih55n79ok0zQxEN56WfPmg94KrE79Dznx lRkpBbTpzfU0nhAU98cJWv7z1aVtLVvfYaVztwZFXc8pR6Az0gxWaocWwjn1sppGcnH3lhr X-QQ-GoodBg: 2 Date: Tue, 20 Dec 2022 06:59:06 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: "Jeff Law" , gcc-patches Cc: kito.cheng , palmer Subject: Re: Re: [PATCH] RISC-V: Support VSETVL PASS for RVV support References: <20221214071345.153278-1-juzhe.zhong@rivai.ai>, <77c96a76-34e1-5394-d7ac-31de790dd007@gmail.com> X-Priority: 3 X-GUID: B22E9D25-9D17-4FBE-BC3D-819229CFCEF7 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <4DFC9DE6B54EBF58+20221220065905807562113@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart336547800743_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID 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_NextPart336547800743_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Pj4gSVNUTSB0aGF0IGlmIHlvdSB3YW50IHRvIHJ1biBiZWZvcmUgc2NoZWQy LCB0aGVuDQo+PiB5b3UnZCBuZWVkIHRvIGludHJvZHVjZSBkZXBlbmRlbmNp ZXMgYmV0d2VlbiB0aGUgdnNldHZsIGluc3RydXRpb25zIGFuZA0KPj4gdGhl IHZlY3RvciBpbnN0cnVjdGlvbnMgdGhhdCB1dGlsaXplIHRob3NlIHNldHRp bmdzPw0KDQpZZXMsIEkgd2FudCB0byBydW4gYmVmb3JlIHNjaGVkMiBzbyB0 aGF0IHdlIGNvdWxkIGhhdmUgdGhlIGNoYW5jZSB0byBkbyB0aGUgDQppbnN0 cnVjdGlvbiBzY2hlZHVsaW5nIGJlZm9yZSBzY2hlZDIuIEkgYWxyZWFkeSBp bnRyb2R1Y2UgZGVwZW5kZW5jaWVzIGluDQp2ZWN0b3IgaW5zdHJ1Y3Rpb25z IHNvIHRoYXQgaXQgd29uJ3QgcHJvZHVjZSBhbnkgaXNzdWVzLg0KDQo+PiBG b3JtYXR0aW5nIG5vdGUuICBGb3IgYSBtdWx0aS1saW5lIGNvbmRpdGlvbmFs LCBnbyBhaGVhZCBhbmQgdXNlIGFuIG9wZW4NCj4+IHBhcmVuIGFuZCB0aGUg dXN1YWwgaW5kZW50aW9uIHN0eWxlLg0KDQo+PiAgICByZXR1cm4gKElOU05f Q09ERSAocmluc24pID09IENPREVfRk9SX3ZzZXR2bGRpDQo+PiAgICAgICAg ICAgIHx8IElOU05fQ09ERSAocmluc24pID09IENPREVfRk9SX3ZzZXR2bHNp KTsNCg0KPj4gIFRoZXJlJ3Mgb3RoZXIgZXhhbXBsZXMgaW4gdGhlIG5ldyBm aWxlLg0KDQo+PiBzL3Nob3VsZS9zaG91bGQvDQo+PiBzL3Byb3BhZ2V0ZS9w cm9wYWdhdGUvDQo+PiBzL29wdGltemFsL29wdGltYWwvDQo+PiBzL1BBU1Nl cy9wYXNzZXMvDQo+PiBzL2ludHJpbnNpc2NzL2ludHJpbnNpY3MvDQo+PiBz L2luc3RyaW5zaWNzL2ludHJpbnNpY3MvDQo+PiBzL2Fjcm9jc3MvYWNyb3Nz Lw0KDQpBZGRyZXNzIGNvbW1uZW50cy4NCg0KPj4gSXQnZCBwcm9iYWJseSBi ZSBiZXR0ZXIgdG8gbW92ZSB0aGlzIGludG8gcnRsLmNjIHdpdGggYSBwcm90 b3R5cGUgaW4NCj4+IHJ0bC5oIHJhdGhlciB0aGFuIGhhdmUgZHVwbGljYXRl IGRlZmluaXRpb25zIGluIGdjc2UuYyBhbmQgdGhlIFJJU0MtVg0KPj4gYmFj a2VuZC4gIEknbSBub3QgZXZlbiBlbnRpcmVseSBzdXJlIHdoeSB3ZSByZWFs bHkgbmVlZCBpdCBoZXJlLg0KTWF5YmUgd2UgZG8gdGhhdCB3aGVuIEdDQzE0 IGlzIG9wZW4/DQoNCj4+IFRoZXNlIG5lZWQgZnVuY3Rpb24gY29tbWVudHMu ICBXaGF0IGlzbid0IGNsZWFyIHRvIG1lIGlzIHdoeSB3ZSBkb24ndA0KPj4g anVzdCBjYWxsIHZhbGlkYXRlX2NoYW5nZT8gIElzIGl0IGp1c3Qgc28gd2Ug Z2V0IHRoZSBkdW1wIGluZm8/DQpZZXMsIHNpbmNlIGl0J3MgY2FsbGVkIG1v cmUgdGhhbiBvbmNlIGFuZCBJIHdhbnQgdG8gZHVtcCBkZXRhaWxzIGluIGR1 bXAgZmlsZS4NClN1Y2ggZHVtcCBpbmZvcyBhcmUgaW1wb3J0YW50IGZvciBk ZWJ1Z2dpbmcuDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206 IEplZmYgTGF3DQpEYXRlOiAyMDIyLTEyLTE5IDIzOjQ0DQpUbzoganV6aGUu emhvbmc7IGdjYy1wYXRjaGVzDQpDQzoga2l0by5jaGVuZzsgcGFsbWVyDQpT dWJqZWN0OiBSZTogW1BBVENIXSBSSVNDLVY6IFN1cHBvcnQgVlNFVFZMIFBB U1MgZm9yIFJWViBzdXBwb3J0DQpJIGJlbGlldmUgS2l0byBhbHJlYWR5IGFw cHJvdmVkLiAgVGhlcmUncyBub3RoaW5nIGhlcmUgdGhhdCBpcyBjcml0aWNh bCwgDQpqdXN0IG1pbm9yIGNsZWFudXBzIGFuZCBJJ20gZmluZSB3aXRoIHRo ZW0gYmVpbmcgY2xlYW5lZCB1cCBhcyBhIA0KZm9sbG93LXVwIHBhdGNoIGdp dmVuIEtpdG8gaGFzIGFscmVhZHkgYXBwcm92ZWQgdGhpcyBwYXRjaC4NCiAN Ck9uIDEyLzE0LzIyIDAwOjEzLCBqdXpoZS56aG9uZ0ByaXZhaS5haSB3cm90 ZToNCj4gRnJvbTogSnUtWmhlIFpob25nIDxqdXpoZS56aG9uZ0ByaXZhaS5h aT4NCj4gDQo+IFRoaXMgcGF0Y2ggaXMgdG8gc3VwcG9ydCBWU0VUVkwgUEFT UyBmb3IgUlZWIHN1cHBvcnQuDQo+IDEuVGhlIG9wdGltaXphdGlvbiBhbmQg cGVyZm9ybWFuY2UgaXMgZ3VhcmFudGVlZCBMQ00gKExhenkgY29kZSBtb3Rp b24pLg0KPiAyLkJhc2Ugb24gUlRMX1NTQSBmcmFtZXdvcmsgdG8gZ2FpbiBi ZXR0ZXIgb3B0aW1pemF0aW9uIGNoYW5jZXMuDQo+IDMuQWxzbyB3ZSBkbyBW TC9WVFlQRSwgZGVtYW5kIGluZm9ybWF0aW9uIGJhY2t3YXJkIHByb3BhZ2F0 aW9uIGFjcm9zcw0KPiAgICBibG9ja3MgYnkgUlRMX1NTQSByZXZlcnNlIG9y ZGVyIGluIENGRy4NCj4gNC5JdCBoYXMgYmVlbiB3ZWxsIGFuZCBmdWxseSB0 ZXN0ZWQgYnkgYWJvdXQgMjAwKyB0ZXN0Y2FzZXMgZm9yIFZMTUFYDQo+ICAg IEFWTCBzaXR1YXRpb24gKE9ubHkgZm9yIFZMTUFYIHNpbmNlIHdlIGRvbid0 IGhhdmUgYW4gaW50cmluc2ljcyB0bw0KPiAgICB0ZXN0IG5vbi1WTE1BWCku DQo+IDUuV2lsbCBzdXBwb3J0IEFWTCBtb2RlbCBpbiB0aGUgbmV4dCBwYXRj aA0KPiANCj4gZ2NjL0NoYW5nZUxvZzoNCj4gDQo+ICAgICAgICAgICogY29u ZmlnLmdjYzogQWRkIHJpc2N2LXZzZXR2bC5vLg0KPiAgICAgICAgICAqIGNv bmZpZy9yaXNjdi9yaXNjdi1wYXNzZXMuZGVmIChJTlNFUlRfUEFTU19CRUZP UkUpOiBBZGQgVlNFVFZMIFBBU1MgbG9jYXRpb24uDQo+ICAgICAgICAgICog Y29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIChtYWtlX3Bhc3NfdnNldHZs KTogTmV3IGZ1bmN0aW9uLg0KPiAgICAgICAgICAoZW51bSBhdmxfdHlwZSk6 IE5ldyBlbnVtLg0KPiAgICAgICAgICAoZ2V0X3RhKTogTmV3IGZ1bmN0aW9u Lg0KPiAgICAgICAgICAoZ2V0X21hKTogRGl0dG8uDQo+ICAgICAgICAgIChn ZXRfYXZsX3R5cGUpOiBEaXR0by4NCj4gICAgICAgICAgKGNhbGN1bGF0ZV9y YXRpbyk6IERpdHRvLg0KPiAgICAgICAgICAoZW51bSB0YWlsX3BvbGljeSk6 IE5ldyBlbnVtLg0KPiAgICAgICAgICAoZW51bSBtYXNrX3BvbGljeSk6IERp dHRvLg0KPiAgICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12LmNjIChj YWxjdWxhdGVfcmF0aW8pOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgIChl bWl0X3ByZWRfb3ApOiBjaGFuZ2UgdGhlIFZMTUFYIG1vdiBjb2RnZW4uDQo+ ICAgICAgICAgIChnZXRfdGEpOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAg IChnZXRfbWEpOiBEaXR0by4NCj4gICAgICAgICAgKGVudW0gdGFpbF9wb2xp Y3kpOiBDaGFuZ2UgZW51bS4NCj4gICAgICAgICAgKGdldF9wcmVmZXJfdGFp bF9wb2xpY3kpOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgIChlbnVtIG1h c2tfcG9saWN5KTogQ2hhbmdlIGVudW0uDQo+ICAgICAgICAgIChnZXRfcHJl ZmVyX21hc2tfcG9saWN5KTogTmV3IGZ1bmN0aW9uLg0KPiAgICAgICAgICAq IGNvbmZpZy9yaXNjdi90LXJpc2N2OiBBZGQgcmlzY3YtdnNldHZsLm8NCj4g ICAgICAgICAgKiBjb25maWcvcmlzY3YvdmVjdG9yLm1kICgpOiBBZGp1c3Qg YXR0cmlidXRlIGFuZCBwYXR0ZXJuIGZvciBWU0VUVkwgUEFTUy4NCj4gICAg ICAgICAgKEB2bG1heF9hdmw8bW9kZT4pOiBEaXR0by4NCj4gICAgICAgICAg KEB2c2V0dmw8bW9kZT5fbm9fc2lkZV9lZmZlY3RzKTogRGVsZXRlLg0KPiAg ICAgICAgICAodnNldHZsX3Z0eXBlX2NoYW5nZV9vbmx5KTogTmV3IE1EIHBh dHRlcm4uDQo+ICAgICAgICAgIChAdnNldHZsX2Rpc2NhcmRfcmVzdWx0PG1v ZGU+KTogRGl0dG8uDQo+ICAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZzZXR2bC5jYzogTmV3IGZpbGUuDQo+ICAgICAgICAgICogY29uZmlnL3Jp c2N2L3Jpc2N2LXZzZXR2bC5oOiBOZXcgZmlsZS4NClNvIGEgaGlnaCBsZXZl bCBub3RlLiAgT25jZSB5b3UndmUgaW5zZXJ0ZWQgeW91ciB2c2V0dmwgaW5z dHJ1dGlvbnMsIHlvdSANCmNhbid0IGhhdmUgZnVydGhlciBjb2RlIG1vdGlv biwgY29ycmVjdD8gIFNvIGRvZXNuJ3QgdGhpcyBwb3RlbnRpYWxseSANCmhh dmUgYSBwb29yIGludGVyYWN0aW9uIHdpdGggc29tZXRoaW5nIGxpa2Ugc3Bl Y3VsYXRpdmUgY29kZSBtb3Rpb24gYXMgDQpwZXJmb3JtZWQgYnkgc2NoZWQ/ ICAgSVNUTSB0aGF0IGlmIHlvdSB3YW50IHRvIHJ1biBiZWZvcmUgc2NoZWQy LCB0aGVuIA0KeW91J2QgbmVlZCB0byBpbnRyb2R1Y2UgZGVwZW5kZW5jaWVz IGJldHdlZW4gdGhlIHZzZXR2bCBpbnN0cnV0aW9ucyBhbmQgDQp0aGUgdmVj dG9yIGluc3RydWN0aW9ucyB0aGF0IHV0aWxpemUgdGhvc2Ugc2V0dGluZ3M/ DQogDQpJIGNhbiBlbnZpc2lvbiB3YW50aW5nIHRvIHNjaGVkdWxlIHRoZSB2 c2V0dmwgaW5zdHJ1Y3Rpb25zIHNvIHRoYXQgdGhleSANCmJ1YmJsZSB1cCBz bGlnaHRseSBmcm9tIHRoZWlyIGluc2VydGlvbiBwb2ludHMgdG8gYXZvaWQg c3RhbGxzIG9yIGFsbG93IA0KdGhlIHZlY3RvciB1bml0cyB0byBzdGFydCBl eGVjdXRpbmcgZWFybGllci4gIElzIHRoYXQgd2hhdCdzIGRyaXZpbmcgdGhl IA0KdGhlIGN1cnJlbnQgcGFzcyBwbGFjZW1lbnQ/ICBJZiBub3Qgd291bGQg aXQgbWFrZSBtb3JlIHNlbnNlIHRvIHVzZSB0aGUgDQpsYXRlIHByb2xvZ3Vl L2VwaWxvZ3VlIGhvb2tzIHRoYXQgUmljaGFyZCBTYW5kaWZvcmQgcG9zdGVk IHJlY2VudGx5IChJJ20gDQpub3Qgc3VyZSB0aGV5J3JlIGNvbW1pdHRlZCB5 ZXQpLg0KIA0KIA0KIA0KIA0KIA0KIA0KPiArDQo+ICtzdGF0aWMgYm9vbA0K PiArbG9vcF9iYXNpY19ibG9ja19wIChjb25zdCBiYXNpY19ibG9jayBjZmdf YmIpDQo+ICt7DQo+ICsgIHJldHVybiBKVU1QX1AgKEJCX0VORCAoY2ZnX2Ji KSkgJiYgYW55X2NvbmRqdW1wX3AgKEJCX0VORCAoY2ZnX2JiKSk7DQo+ICt9 DQpUaGUgbmFtZSBzZWVtcyBwb29yIGhlcmUgLS0gQUZBSUNUIHRoaXMgaGFz IG5vdGhpbmcgdG8gZG8gd2l0aCBsb29wcy4gDQpJdCdzIGp1c3QgYSB0ZXN0 IHRoYXQgdGhlIGVuZCBvZiBhIGJsb2NrIGlzIGEgY29uZGl0aW9uYWwganVt cC4gIEknbSANCnByZXR0eSBzdXJlIHdlIGNvdWxkIGV4dHJhY3QgQkJfRU5E IChjZmdfYmIpIGFuZCB1c2UgYW4gZXhpc3Rpbmcgcm91dGluZSANCmluc3Rl YWQgb2Ygd3JpdGluZyBvdXIgb3duLiAgSSdkIHN1Z2dlc3QgcGVla2luZyBh dCBqdW1wLmNjIHRvIHNlZSBpZiANCnRoZXJlJ3Mgc29tZXRoaW5nIGFscmVh ZHkgc3VpdGFibGUuDQogDQogICsNCj4gKy8qIFJldHVybiB0cnVlIGlmIGl0 IGlzIHZzZXR2bGRpIG9yIHZzZXR2bHNpLiAgKi8NCj4gK3N0YXRpYyBib29s DQo+ICt2c2V0dmxfaW5zbl9wIChydHhfaW5zbiAqcmluc24pDQo+ICt7DQo+ ICsgIHJldHVybiBJTlNOX0NPREUgKHJpbnNuKSA9PSBDT0RFX0ZPUl92c2V0 dmxkaQ0KPiArIHx8IElOU05fQ09ERSAocmluc24pID09IENPREVfRk9SX3Zz ZXR2bHNpOw0KRm9ybWF0dGluZyBub3RlLiAgRm9yIGEgbXVsdGktbGluZSBj b25kaXRpb25hbCwgZ28gYWhlYWQgYW5kIHVzZSBhbiBvcGVuIA0KcGFyZW4g YW5kIHRoZSB1c3VhbCBpbmRlbnRpb24gc3R5bGUuDQogDQogICByZXR1cm4g KElOU05fQ09ERSAocmluc24pID09IENPREVfRk9SX3ZzZXR2bGRpDQogICAg ICAgICAgIHx8IElOU05fQ09ERSAocmluc24pID09IENPREVfRk9SX3ZzZXR2 bHNpKTsNCiANClRoZXJlJ3Mgb3RoZXIgZXhhbXBsZXMgaW4gdGhlIG5ldyBm aWxlLg0KIA0KIA0KIA0KPiArDQo+ICsvKiBBbiAiYW50aWNpcGF0YWJsZSBv Y2N1cnJlbmNlIiBpcyBvbmUgdGhhdCBpcyB0aGUgZmlyc3Qgb2NjdXJyZW5j ZSBpbiB0aGUNCj4gKyAgIGJhc2ljIGJsb2NrLCB0aGUgb3BlcmFuZHMgYXJl IG5vdCBtb2RpZmllZCBpbiB0aGUgYmFzaWMgYmxvY2sgcHJpb3INCj4gKyAg IHRvIHRoZSBvY2N1cnJlbmNlIGFuZCB0aGUgb3V0cHV0IGlzIG5vdCB1c2Vk IGJldHdlZW4gdGhlIHN0YXJ0IG9mDQo+ICsgICB0aGUgYmxvY2sgYW5kIHRo ZSBvY2N1cnJlbmNlLiAgKi8NCj4gK3N0YXRpYyBib29sDQo+ICthbnRpY2lw YXRhYmxlX29jY3VycmVuY2VfcCAoY29uc3QgaW5zbl9pbmZvICppbnNuLCBj b25zdCB2ZWN0b3JfaW5zbl9pbmZvIGRlbSkNCj4gK3sNCj4gKyAgLyogVGhl IG9ubHkgcG9zc2libGUgb3BlcmFuZCB3ZSBjYXJlIG9mIFZTRVRWTCBpcyBB VkwuICAqLw0KPiArICBpZiAoZGVtLmhhc19hdmxfcmVnICgpKQ0KPiArICAg IHsNCj4gKyAgICAgIC8qIFRoZSBvcGVyYW5kcyBzaG91bGUgbm90IGJlIG1v ZGlmaWVkIGluIHRoZSBiYXNpYyBibG9jayBwcmlvcg0Kcy9zaG91bGUvc2hv dWxkLw0KIA0KPiArDQo+ICsvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgYnJhbmNo IHByb2JhYmlsaXR5IGlzIGRvbWluYXRlLiAgKi8gPiArc3RhdGljIGJvb2wN Cj4gK2RvbWluYXRlX3Byb2JhYmlsaXR5X3AgKGVkZ2UgZSkNClRoZSBmdW5j dGlvbiBjb21tZW50IG5lZWRzIHNvbWUgd29yay4gICJpcyBkb21pbmF0ZSIg ZG9lc24ndCByZWFsbHkgbWVhbiANCmFueXRoaW5nIHdpdGhvdXQgbW9yZSBj b250ZXh0LiAgSXQgbG9va3MgbGlrZSB5b3UncmUgcmVhbGx5IHRlc3Rpbmcg aWYgDQp0aGUgZWRnZSBwcm9iYWJpbGl0eSBpcyBncmVhdGVyIHRoYW4gNTAl Lg0KIA0KIA0KPiArDQo+ICsgICAgICAvKiBUaGVyZSBpcyBhIG9idmlvdXMg Y2FzZSB0aGF0IGlzIG5vdCB3b3J0aHdoaWxlIGFuZCBtZWFuaW5nbGVzcw0K PiArIHRvIHByb3BhZ2F0ZSB0aGUgZGVtYW5kIGluZm9ybWF0aW9uOg0KPiAr ICAgbG9jYWxfZGVtDQo+ICsgICAgICBfX19fX19fX19fDQo+ICsgX19fX3xf X19fICAgICB8DQo+ICsgfCAgICAgICAgfCAgICAgfA0KPiArIHxfX19fX19f X3wgICAgIHwNCj4gKyAgICAgIHxfX19fX19fX198DQo+ICsgICByZWFjaGlu Z19vdXQNCj4gKyAgIEhlYWRlciBpcyBpbmNvbXBhdGlibGUgd2l0aCByZWFj aGluZ19vdXQgYW5kIHRoZSBibG9jayBpcyBsb29wIGl0c2VsZiwNCj4gKyAg IHdlIGRvbid0IGJhY2t3YXJkIHByb3BhZ2V0ZSB0aGUgbG9jYWxfZGVtIHNp bmNlIHdlIGNhbid0IGF2b2lkIGVtaXQNCj4gKyAgIHZzZXR2bCBmb3IgdGhl IGxvY2FsX2RlbS4gICovDQpzL3Byb3BhZ2V0ZS9wcm9wYWdhdGUvDQogDQog DQo+ICtzdGF0aWMgYm9vbA0KPiArY2FuX2JhY2t3YXJkX3Byb3BhZ2F0ZV9w IChjb25zdCBmdW5jdGlvbl9pbmZvICpzc2EsIGNvbnN0IGJhc2ljX2Jsb2Nr IGNmZ19iYiwNCj4gKyAgIGNvbnN0IHZlY3Rvcl9pbnNuX2luZm8gcHJvcCkN Cj4gK3sNCj4gKyAgaW5zbl9pbmZvICppbnNuID0gcHJvcC5nZXRfaW5zbiAo KTsNCj4gKw0KPiArICAvKiBUT0RPOiBXZSBkb24ndCBiYWNrd2FyZCBwcm9w YWdhdGUgdGhlIGV4cGxpY3QgVlNFVFZMIGhlcmUNCj4gKyAgICAgc2luY2Ug d2Ugd2lsbCBjaGFuZ2UgdnNldHZsIGFuZCB2c2V0dmxtYXggaW50cmluc2lz Y3MgaW50bw0KPiArICAgICBubyBzaWRlIGVmZmVjdHMgd2hpY2ggY2FuIGJl IG9wdGltaXplZCBpbnRvIG9wdGltemFsIGxvY2F0aW9uDQo+ICsgICAgIGJ5 IEdDQyBpbnRlcm5hbCBQQVNTZXMuIFdlIG9ubHkgbmVlZCB0byBzdXBwb3J0 IHRoZXNlIGJhY2t3YXJkDQo+ICsgICAgIHByb3BhZ2F0aW9uIGlmIHZzZXR2 bCBpbnN0cmluc2ljcyBoYXZlIHNpZGUgZWZmZWN0cy4gICovDQpzL29wdGlt emFsL29wdGltYWwvDQpzL1BBU1Nlcy9wYXNzZXMvDQpzL2ludHJpbnNpc2Nz L2ludHJpbnNpY3MvDQpzL2luc3RyaW5zaWNzL2ludHJpbnNpY3MvDQogDQo+ ICsNCj4gKyAgLyogSWYgdGhlIGRlZmluaXRpb24gaXMgaW4gdGhlIGN1cnJl bnQgYmxvY2ssIHdlIGNhbid0IHByb3BhZ2F0ZSBpdA0KPiArICAgICBhY3Jv Y3NzIGJsb2Nrcy4gICovDQpzL2Fjcm9jc3MvYWNyb3NzLw0KIA0KIA0KPiAr DQo+ICtzdGF0aWMgdm9pZA0KPiArZWxpbWluYXRlX2luc24gKHJ0eF9pbnNu ICpyaW5zbikNCj4gK3sNCj4gKyAgaWYgKGR1bXBfZmlsZSkNCj4gKyAgICB7 DQo+ICsgICAgICBmcHJpbnRmIChkdW1wX2ZpbGUsICJcbkVsaW1pbmF0ZSBp bnNuICVkOlxuIiwgSU5TTl9VSUQgKHJpbnNuKSk7DQo+ICsgICAgICBwcmlu dF9ydGxfc2luZ2xlIChkdW1wX2ZpbGUsIHJpbnNuKTsNCj4gKyAgICB9DQo+ ICsgIGlmIChpbl9zZXF1ZW5jZV9wICgpKQ0KPiArICAgIHJlbW92ZV9pbnNu IChyaW5zbik7DQo+ICsgIGVsc2UNCj4gKyAgICBkZWxldGVfaW5zbiAocmlu c24pOw0KPiArfQ0KSG1tLCBwcmVzdW1hYmx5IHlvdSBjYW4gYmUgaW4gYSBz ZXF1ZW5jZSBiZWNhdXNlIHlvdSdyZSBnZW5lcmF0aW5nIGNvZGUgDQphbmQg eW91IG1pZ2h0IHdhbnQgdG8gcmVtb3ZlIGFuIGluc24gaW4gdGhlIGdlbmVy YXRlZCBzZXF1ZW5jZT8NCiANCiANCj4gKw0KPiArLyogPz8/IElmIHRoZXJl IHdhcyBhIGp1bXAgb3B0aW1pemF0aW9uIHBhc3MgYWZ0ZXIgZ2NzZSBhbmQg YmVmb3JlIGxvb3AsDQo+ICsgICB0aGVuIHdlIHdvdWxkIG5vdCBuZWVkIHRv IGRvIHRoaXMgaGVyZSwgYmVjYXVzZSBqdW1wIHdvdWxkIGFkZCB0aGUNCj4g KyAgIG5lY2Vzc2FyeSBSRUdfTEFCRUxfT1BFUkFORCBhbmQgUkVHX0xBQkVM X1RBUkdFVCBub3Rlcy4gICovDQogDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ ICthZGRfbGFiZWxfbm90ZXMgKHJ0eCB4LCBydHhfaW5zbiAqaW5zbikNCkl0 J2QgcHJvYmFibHkgYmUgYmV0dGVyIHRvIG1vdmUgdGhpcyBpbnRvIHJ0bC5j YyB3aXRoIGEgcHJvdG90eXBlIGluIA0KcnRsLmggcmF0aGVyIHRoYW4gaGF2 ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbnMgaW4gZ2NzZS5jIGFuZCB0aGUgUklT Qy1WIA0KYmFja2VuZC4gIEknbSBub3QgZXZlbiBlbnRpcmVseSBzdXJlIHdo eSB3ZSByZWFsbHkgbmVlZCBpdCBoZXJlLg0KIA0KIA0KIA0KPiArDQo+ICsg ICBUaGlzIGlzIHVzZWQgYnkgYm90aCB0aGUgUFJFIGFuZCBjb2RlIGhvaXN0 aW5nLiAgKi8NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK2luc2VydF9pbnNu X2VuZF9iYXNpY19ibG9jayAocnR4X2luc24gKnJpbnNuLCBiYXNpY19ibG9j ayBjZmdfYmIpDQpTaW1pbGFybHkuICBUaG91Z2ggcmF0aGVyIHRoYW4gcnRs LmNjIG1heWJlIHdlIHNob3VsZCBqdXN0IGV4cG9ydCBpdCBvdXQgDQpvZiBn Y3NlIG9yIHdoZXJldmVyIGl0J3MgY3VycmVudGx5IGRlZmluZWQuDQogDQog DQo+IA0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArY2hhbmdlX2luc24gKHJ0 eF9pbnNuICpyaW5zbiwgcnR4IG5ld19wYXQpDQpUaGVzZSBuZWVkIGZ1bmN0 aW9uIGNvbW1lbnRzLiAgV2hhdCBpc24ndCBjbGVhciB0byBtZSBpcyB3aHkg d2UgZG9uJ3QgDQpqdXN0IGNhbGwgdmFsaWRhdGVfY2hhbmdlPyAgSXMgaXQg anVzdCBzbyB3ZSBnZXQgdGhlIGR1bXAgaW5mbz8NCiANCkplZmYNCiANCg== ------=_001_NextPart336547800743_=------