From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id 526A33860770 for ; Fri, 1 Dec 2023 22:58:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 526A33860770 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 526A33860770 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.243.244.52 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701471503; cv=none; b=WILpuwTU7Z88oCZB/oARNsmgodbhlGrHj03KpGlSEYNUELcEUWS6ygEjlvY2vhucpPSSk5QkyqTwaeWiUnfuakv7v1we4IZyYmnPp03+1/zyqNtaLREJUzxmvjxSA3AnqyK5mSmRg/UoeywA1KhLWQCldjAcqdAV/OgK/7Ft2wI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701471503; c=relaxed/simple; bh=0N9vhgexnltXl3OVOmuEUF1SQ9/mRL6iSdNUDk0SVHQ=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=xnTp32EkkgvsJlljXG88Tm17EHz4Mn/RKxVgihbxi+LV2mzK9rZYkwK7XQCNUJdRZ3sqFKxWsl5Epp0a5WZbZURdgEswBLLtDTNwr66Er/w1SZ1UKRE1w8cEULCq7vJyC715UqdI9abhCnEWM8NBcodG95/5W2PpPGRAFZMMloY= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp68t1701471495tnskm33w Received: from TABLET-POE6JQHH ( [116.77.2.214]) by bizesmtp.qq.com (ESMTP) with id ; Sat, 02 Dec 2023 06:58:14 +0800 (CST) X-QQ-SSF: 01400000002000G0V000B00A0000000 X-QQ-FEAT: 3SD3SSsQf51HF5xwiR0yuR4RyGgQzO+MFWWbDr9U7GfnStv9iRaNL/XR13SLN RvIapTVI9wRv78TM7qD756Jclz6Zdm4vLArIP1QKylD/7SbTCm9xKliI5yqGGeTj4BB2xO6 pmURWVgCIxt9ZJqvuDlGrizkOuG+FFWYKSVfe56dhCZffolVLH+NBTgj/mbWuwFiVYuzNGl 54ARh5lrJOCZwJxtDB30e7pnON3/crgMtKwSoJriv5XFrn+Sta4hjhEJSSksCMy5kv5bfGr VFUaGGKQaA2akogZde+zu4hmvzSR+BvrkgCPUOXV8ht9xZWo/xWB30jowQXlxMJlTF88MKS 8G4UiDtcaXYTN4PM1amMoGs8t86WWoZ8PMKwiEwzNQdFykrPozJZksryUeexyiuFqIZQpHK wsHpmUedX9IU4BSMgKnD73Fwjy7Maumx X-QQ-GoodBg: 2 X-BIZMAIL-ID: 4660912928659380613 Date: Sat, 2 Dec 2023 06:58:14 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: rdapp.gcc , gcc-patches , palmer , kito.cheng , "Jeff Law" Cc: rdapp.gcc Subject: Re: [PATCH] RISC-V: Add vectorized strlen. References: <072e8569-e08b-4a22-adb5-64e888bd471b@gmail.com> X-Priority: 3 X-GUID: 94B7FF19-D3EC-4921-A2DD-CC9F780DD501 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <1B48F35F09B5ADF9+202312020658140972575@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart261104125884_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,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_NextPart261104125884_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 TEdUTS4NCg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBS b2JpbiBEYXBwDQpEYXRlOiAyMDIzLTEyLTAxIDIzOjIxDQpUbzogZ2NjLXBh dGNoZXM7IHBhbG1lcjsgS2l0byBDaGVuZzsgamVmZnJleWFsYXc7IGp1emhl Lnpob25nQHJpdmFpLmFpDQpDQzogcmRhcHAuZ2NjDQpTdWJqZWN0OiBbUEFU Q0hdIFJJU0MtVjogQWRkIHZlY3Rvcml6ZWQgc3RybGVuLg0KSGksDQogDQp0 aGlzIHBhdGNoIGltcGxlbWVudHMgYSB2ZWN0b3JpemVkIHN0cmxlbiBieSBy ZS11c2luZyBhbmQgc2xpZ2h0bHkNCmFkanVzdGluZyB0aGUgcmF3bWVtY2hy IGltcGxlbWVudGF0aW9uLiAgUmF3bWVtY2hyIHJldHVybnMgdGhlIGFkZHJl c3MNCm9mIHRoZSBuZWVkbGUgd2hpbGUgc3RybGVuIHJldHVybnMgdGhlIGRp ZmZlcmVuY2UgYmV0d2VlbiBuZWVkbGUgYWRkcmVzcw0KYW5kIHN0YXJ0IGFk ZHJlc3MuDQogDQpBcyBiZWZvcmUsIHN0cmxlbiBleHBhbnNpb24gaXMgZ3Vh cmRlZCBieSAtbWlubGluZS1zdHJsZW4uDQogDQpXaGlsZSB0ZXN0aW5nIHdp dGggLW1pbmxpbmUtc3RybGVuIEkgZW5jb3VudGVyZWQgYSB2c2V0dmwgcHJv YmxlbSBpbg0KbWVtY3B5LWNoay5jIHdoZXJlIHdlIGRpZG4ndCBpbnNlcnQg YSB2c2V0dmwgYXQgdGhlIHByb3BlciBzcG90IChhZnRlcg0KYSBzZXRqbXAp LiAgVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBzZXBhcmF0ZWx5IGFuZCBJIGZp Z3VyZWQgSSdkIHBvc3QNCnRoaXMgcGF0Y2ggYXMtaXMuDQogDQpSZWdhcmRz DQpSb2Jpbg0KIA0KZ2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2 L3Jpc2N2LXByb3Rvcy5oIChleHBhbmRfcmF3bWVtY2hyKTogQWRkIHN0cmxl bg0KcGFyYW1ldGVyLg0KKiBjb25maWcvcmlzY3YvcmlzY3Ytc3RyaW5nLmNj IChyaXNjdl9leHBhbmRfc3RybGVuKTogQ2FsbA0KcmF3bWVtY2hyLg0KKGV4 cGFuZF9yYXdtZW1jaHIpOiBBZGQgc3RybGVuIGhhbmRsaW5nLg0KKiBjb25m aWcvcmlzY3YvcmlzY3YubWQ6IEFkZCBUQVJHRVRfVkVDVE9SIHRvIHN0cmxl biBleHBhbmRlci4NCiANCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KIA0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL2J1aWx0aW4vc3RybGVu LXJ1bi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy9idWlsdGluL3N0cmxlbi5jOiBOZXcgdGVzdC4NCi0tLQ0KZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAgICAgICAgICAgICAgIHwgIDIg Ky0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3Ytc3RyaW5nLmNjICAgICAgICAg ICAgICB8IDQxICsrKysrKysrKysrKysrLS0tLS0NCmdjYy9jb25maWcvcmlz Y3YvcmlzY3YubWQgICAgICAgICAgICAgICAgICAgICB8ICA4ICstLS0NCi4u Li9yaXNjdi9ydnYvYXV0b3ZlYy9idWlsdGluL3N0cmxlbi1ydW4uYyAgICB8 IDM3ICsrKysrKysrKysrKysrKysrDQouLi4vcmlzY3YvcnZ2L2F1dG92ZWMv YnVpbHRpbi9zdHJsZW4uYyAgICAgICAgfCAxMiArKysrKysNCjUgZmlsZXMg Y2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL2J1aWx0aW4vc3RybGVuLXJ1bi5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL2J1aWx0aW4vc3RybGVuLmMNCiANCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi1wcm90b3MuaA0KaW5kZXggNjk1ZWUyNGFkNmYuLmM5NGM4 MmE5OTczIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1w cm90b3MuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3Mu aA0KQEAgLTU1Nyw3ICs1NTcsNyBAQCB2b2lkIGV4cGFuZF9jb25kX3Vub3Ag KHVuc2lnbmVkLCBydHggKik7DQp2b2lkIGV4cGFuZF9jb25kX2Jpbm9wICh1 bnNpZ25lZCwgcnR4ICopOw0Kdm9pZCBleHBhbmRfY29uZF90ZXJub3AgKHVu c2lnbmVkLCBydHggKik7DQp2b2lkIGV4cGFuZF9wb3Bjb3VudCAocnR4ICop Ow0KLXZvaWQgZXhwYW5kX3Jhd21lbWNociAobWFjaGluZV9tb2RlLCBydHgs IHJ0eCwgcnR4KTsNCit2b2lkIGV4cGFuZF9yYXdtZW1jaHIgKG1hY2hpbmVf bW9kZSwgcnR4LCBydHgsIHJ0eCwgYm9vbCA9IGZhbHNlKTsNCnZvaWQgZW1p dF92ZWNfZXh0cmFjdCAocnR4LCBydHgsIHBvbHlfaW50NjQpOw0KLyogUm91 bmRpbmcgbW9kZSBiaXRmaWVsZCBmb3IgZml4ZWQgcG9pbnQgVlhSTS4gICov DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1zdHJpbmcu Y2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXN0cmluZy5jYw0KaW5kZXgg NTk0ZmY0OWZjNWEuLjZjZGUxYmY4OWEwIDEwMDY0NA0KLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1zdHJpbmcuY2MNCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3Ytc3RyaW5nLmNjDQpAQCAtNTg4LDkgKzU4OCwxNiBAQCBy aXNjdl9leHBhbmRfc3RybGVuX3NjYWxhciAocnR4IHJlc3VsdCwgcnR4IHNy YywgcnR4IGFsaWduKQ0KYm9vbA0KcmlzY3ZfZXhwYW5kX3N0cmxlbiAocnR4 IHJlc3VsdCwgcnR4IHNyYywgcnR4IHNlYXJjaF9jaGFyLCBydHggYWxpZ24p DQp7DQorICBpZiAoVEFSR0VUX1ZFQ1RPUiAmJiBzdHJpbmdvcF9zdHJhdGVn eSAmIFNUUkFURUdZX1ZFQ1RPUikNCisgICAgew0KKyAgICAgIHJpc2N2X3Zl Y3Rvcjo6ZXhwYW5kX3Jhd21lbWNociAoRV9RSW1vZGUsIHJlc3VsdCwgc3Jj LCBzZWFyY2hfY2hhciwNCisgICAgICAgLyogc3RybGVuICovIHRydWUpOw0K KyAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9DQorDQogICBnY2NfYXNzZXJ0 IChzZWFyY2hfY2hhciA9PSBjb25zdDBfcnR4KTsNCi0gIGlmIChUQVJHRVRf WkJCIHx8IFRBUkdFVF9YVEhFQURCQikNCisgIGlmICgoVEFSR0VUX1pCQiB8 fCBUQVJHRVRfWFRIRUFEQkIpICYmIHN0cmluZ29wX3N0cmF0ZWd5ICYgU1RS QVRFR1lfU0NBTEFSKQ0KICAgICByZXR1cm4gcmlzY3ZfZXhwYW5kX3N0cmxl bl9zY2FsYXIgKHJlc3VsdCwgc3JjLCBhbGlnbik7DQogICByZXR1cm4gZmFs c2U7DQpAQCAtOTc5LDEyICs5ODYsMTMgQEAgZXhwYW5kX2Jsb2NrX21vdmUg KHJ0eCBkc3RfaW4sIHJ0eCBzcmNfaW4sIHJ0eCBsZW5ndGhfaW4pDQp9DQot LyogSW1wbGVtZW50IHJhd21lbWNocjxtb2RlPiB1c2luZyB2ZWN0b3IgaW5z dHJ1Y3Rpb25zLg0KKy8qIEltcGxlbWVudCByYXdtZW1jaHI8bW9kZT4gYW5k IHN0cmxlbiB1c2luZyB2ZWN0b3IgaW5zdHJ1Y3Rpb25zLg0KICAgIEl0IGNh biBiZSBhc3N1bWVkIHRoYXQgdGhlIG5lZWRsZSBpcyBpbiB0aGUgaGF5c3Rh Y2ssIG90aGVyd2lzZSB0aGUNCiAgICBiZWhhdmlvciBpcyB1bmRlZmluZWQu ICAqLw0Kdm9pZA0KLWV4cGFuZF9yYXdtZW1jaHIgKG1hY2hpbmVfbW9kZSBt b2RlLCBydHggZHN0LCBydHggc3JjLCBydHggcGF0KQ0KK2V4cGFuZF9yYXdt ZW1jaHIgKG1hY2hpbmVfbW9kZSBtb2RlLCBydHggZHN0LCBydHggaGF5c3Rh Y2ssIHJ0eCBuZWVkbGUsDQorICAgYm9vbCBzdHJsZW4pDQp7DQogICAvKg0K ICAgICByYXdtZW1jaHI6DQpAQCAtMTAwNSw2ICsxMDEzLDkgQEAgZXhwYW5k X3Jhd21lbWNociAobWFjaGluZV9tb2RlIG1vZGUsIHJ0eCBkc3QsIHJ0eCBz cmMsIHJ0eCBwYXQpDQogICAqLw0KICAgZ2NjX2Fzc2VydCAoVEFSR0VUX1ZF Q1RPUik7DQorICBpZiAoc3RybGVuKQ0KKyAgICBnY2NfYXNzZXJ0IChtb2Rl ID09IEVfUUltb2RlKTsNCisNCiAgIHVuc2lnbmVkIGludCBpc2l6ZSA9IEdF VF9NT0RFX1NJWkUgKG1vZGUpLnRvX2NvbnN0YW50ICgpOw0KICAgaW50IGxt dWwgPSBUQVJHRVRfTUFYX0xNVUw7DQogICBwb2x5X2ludDY0IG51bml0cyA9 IGV4YWN0X2RpdiAoQllURVNfUEVSX1JJU0NWX1ZFQ1RPUiAqIGxtdWwsIGlz aXplKTsNCkBAIC0xMDI4LDEyICsxMDM5LDEzIEBAIGV4cGFuZF9yYXdtZW1j aHIgKG1hY2hpbmVfbW9kZSBtb2RlLCBydHggZHN0LCBydHggc3JjLCBydHgg cGF0KQ0KICAgICAgcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbWF0Y2hpbmcg Ynl0ZS4gICovDQogICB1bnNpZ25lZCBpbnQgc2hpZnQgPSBleGFjdF9sb2cy IChHRVRfTU9ERV9TSVpFIChtb2RlKS50b19jb25zdGFudCAoKSk7DQotICBy dHggc3JjX2FkZHIgPSBjb3B5X2FkZHJfdG9fcmVnIChYRVhQIChzcmMsIDAp KTsNCisgIHJ0eCBzcmNfYWRkciA9IGNvcHlfYWRkcl90b19yZWcgKFhFWFAg KGhheXN0YWNrLCAwKSk7DQorICBydHggc3RhcnRfYWRkciA9IGNvcHlfYWRk cl90b19yZWcgKFhFWFAgKGhheXN0YWNrLCAwKSk7DQogICBydHggbG9vcCA9 IGdlbl9sYWJlbF9ydHggKCk7DQogICBlbWl0X2xhYmVsIChsb29wKTsNCi0g IHJ0eCB2c3JjID0gY2hhbmdlX2FkZHJlc3MgKHNyYywgdm1vZGUsIHNyY19h ZGRyKTsNCisgIHJ0eCB2c3JjID0gY2hhbmdlX2FkZHJlc3MgKGhheXN0YWNr LCB2bW9kZSwgc3JjX2FkZHIpOw0KICAgLyogQnVtcCB0aGUgcG9pbnRlci4g ICovDQogICBydHggc3RlcCA9IGdlbl9yZWdfcnR4IChQbW9kZSk7DQpAQCAt MTA1Miw4ICsxMDY0LDggQEAgZXhwYW5kX3Jhd21lbWNociAobWFjaGluZV9t b2RlIG1vZGUsIHJ0eCBkc3QsIHJ0eCBzcmMsIHJ0eCBwYXQpDQogICAgIGVt aXRfaW5zbiAoZ2VuX3JlYWRfdmxkaV96ZXJvX2V4dGVuZCAoY250KSk7DQog ICAvKiBDb21wYXJlIG5lZWRsZSB3aXRoIGhheXN0YWNrIGFuZCBzdG9yZSBp biBhIG1hc2suICAqLw0KLSAgcnR4IGVxID0gZ2VuX3J0eF9FUSAobWFza19t b2RlLCBnZW5fY29uc3RfdmVjX2R1cGxpY2F0ZSAodm1vZGUsIHBhdCksIHZl Yyk7DQotICBydHggdm1zb3BzW10gPSB7bWFzaywgZXEsIHZlYywgcGF0fTsN CisgIHJ0eCBlcSA9IGdlbl9ydHhfRVEgKG1hc2tfbW9kZSwgZ2VuX2NvbnN0 X3ZlY19kdXBsaWNhdGUgKHZtb2RlLCBuZWVkbGUpLCB2ZWMpOw0KKyAgcnR4 IHZtc29wc1tdID0ge21hc2ssIGVxLCB2ZWMsIG5lZWRsZX07DQogICBlbWl0 X25vbnZsbWF4X2luc24gKGNvZGVfZm9yX3ByZWRfZXFuZV9zY2FsYXIgKHZt b2RlKSwNCiAgICAgIHJpc2N2X3ZlY3Rvcjo6Q09NUEFSRV9PUCwgdm1zb3Bz LCBjbnQpOw0KQEAgLTEwNjYsOSArMTA3OCwxOCBAQCBleHBhbmRfcmF3bWVt Y2hyIChtYWNoaW5lX21vZGUgbW9kZSwgcnR4IGRzdCwgcnR4IHNyYywgcnR4 IHBhdCkNCiAgIHJ0eCB0ZXN0ID0gZ2VuX3J0eF9MVCAoVk9JRG1vZGUsIGVu ZCwgY29uc3QwX3J0eCk7DQogICBlbWl0X2p1bXBfaW5zbiAoZ2VuX2NicmFu Y2g0IChQbW9kZSwgdGVzdCwgZW5kLCBjb25zdDBfcnR4LCBsb29wKSk7DQot ICAvKiAgV2UgZm91bmQgc29tZXRoaW5nIGF0IFNSQyArIEVORCAqIFsxLDIs NCw4XS4gICovDQotICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChlbmQsIGdl bl9ydHhfQVNISUZUIChQbW9kZSwgZW5kLCBHRU5fSU5UIChzaGlmdCkpKSk7 DQotICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChkc3QsIGdlbl9ydHhfUExV UyAoUG1vZGUsIHNyY19hZGRyLCBlbmQpKSk7DQorICBpZiAoc3RybGVuKQ0K KyAgICB7DQorICAgICAgLyogRm9yIHN0cmxlbiwgcmV0dXJuIHRoZSBsZW5n dGguICAqLw0KKyAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKGRzdCwg Z2VuX3J0eF9QTFVTIChQbW9kZSwgc3JjX2FkZHIsIGVuZCkpKTsNCisgICAg ICBlbWl0X2luc24gKGdlbl9ydHhfU0VUIChkc3QsIGdlbl9ydHhfTUlOVVMg KFBtb2RlLCBkc3QsIHN0YXJ0X2FkZHIpKSk7DQorICAgIH0NCisgIGVsc2UN CisgICAgew0KKyAgICAgIC8qICBGb3IgcmF3bWVtY2hyLCByZXR1cm4gdGhl IHBvc2l0aW9uIGF0IFNSQyArIEVORCAqIFsxLDIsNCw4XS4gICovDQorICAg ICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoZW5kLCBnZW5fcnR4X0FTSElG VCAoUG1vZGUsIGVuZCwgR0VOX0lOVCAoc2hpZnQpKSkpOw0KKyAgICAgIGVt aXRfaW5zbiAoZ2VuX3J0eF9TRVQgKGRzdCwgZ2VuX3J0eF9QTFVTIChQbW9k ZSwgc3JjX2FkZHIsIGVuZCkpKTsNCisgICAgfQ0KfQ0KfQ0KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YubWQgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2Lm1kDQppbmRleCA2MDU2MzkxYzZkYy4uNTQwMTVlZWQ1N2Mg MTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kDQorKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kDQpAQCAtMzc0NywxMyArMzc0 Nyw5IEBAIChkZWZpbmVfZXhwYW5kICJzdHJsZW48bW9kZT4iDQogICAgICht YXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X2ludF9vcGVyYW5kIikNCiAgICAg KG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfaW50X29wZXJhbmQiKV0NCiAg VU5TUEVDX1NUUkxFTikpXQ0KLSAgInJpc2N2X2lubGluZV9zdHJsZW4gJiYg IW9wdGltaXplX3NpemUgJiYgKFRBUkdFVF9aQkIgfHwgVEFSR0VUX1hUSEVB REJCKSINCisgICJyaXNjdl9pbmxpbmVfc3RybGVuICYmICFvcHRpbWl6ZV9z aXplDQorICAgICYmIChUQVJHRVRfWkJCIHx8IFRBUkdFVF9YVEhFQURCQiB8 fCBUQVJHRVRfVkVDVE9SKSINCnsNCi0gIHJ0eCBzZWFyY2hfY2hhciA9IG9w ZXJhbmRzWzJdOw0KLQ0KLSAgaWYgKHNlYXJjaF9jaGFyICE9IGNvbnN0MF9y dHgpDQotICAgIEZBSUw7DQotDQogICBpZiAocmlzY3ZfZXhwYW5kX3N0cmxl biAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLCBvcGVyYW5kc1syXSwgb3Bl cmFuZHNbM10pKQ0KICAgICBET05FOw0KICAgZWxzZQ0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9i dWlsdGluL3N0cmxlbi1ydW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYXV0b3ZlYy9idWlsdGluL3N0cmxlbi1ydW4uYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5kMjkyOTdh NWY4Ng0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL2J1aWx0aW4vc3RybGVuLXJ1bi5j DQpAQCAtMCwwICsxLDM3IEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8q IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzMgLW1pbmxpbmUtc3RybGVu IiB9ICovDQorDQoraW50DQorX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkNCitm b28gKGNvbnN0IGNoYXIgKnMpDQorew0KKyAgcmV0dXJuIF9fYnVpbHRpbl9z dHJsZW4gKHMpOw0KK30NCisNCitpbnQNCitfX2F0dHJpYnV0ZV9fICgobm9p cGEpKQ0KK2ZvbzIgKGNvbnN0IGNoYXIgKnMpDQorew0KKyAgaW50IG4gPSAw Ow0KKyAgd2hpbGUgKCpzKysgIT0gJ1wwJykNCisgICAgew0KKyAgICAgIGFz bSB2b2xhdGlsZSAoIiIpOw0KKyAgICAgIG4rKzsNCisgICAgfQ0KKyAgcmV0 dXJuIG47DQorfQ0KKw0KKyNkZWZpbmUgU1ogMTANCisNCitpbnQgbWFpbiAo KQ0KK3sNCisgIGNvbnN0IGNoYXIgKnNbU1pdDQorICAgID0geyIiLCAgImFz ZGYiLCAiMCIsICJcMCIsICIhQCMkJSoqKm0xMTIzZmRubW9pNDMiLA0KKyAg ICAgICAiYSIsICJ6IiwgICAgIjEiLCAiOSIsICAiMTIzNDU2Nzg5MDEyMzQ1 Njc4ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAifTsNCisNCisgIGZvciAoaW50 IGkgPSAwOyBpIDwgU1o7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChmb28g KHNbaV0pICE9IGZvbzIgKHNbaV0pKQ0KKyAgICAgICAgX19idWlsdGluX2Fi b3J0ICgpOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9idWlsdGluL3N0cmxl bi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL2J1aWx0aW4vc3RybGVuLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uMGM2Y2NhNjNlYmYNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy9idWlsdGluL3N0cmxlbi5jDQpAQCAtMCwwICsxLDEyIEBADQorLyog eyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IHsgcmlzY3ZfdiB9IH0gfSAqLw0K Ky8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzMgLW1pbmxpbmUtc3Ry bGVuIiB9ICovDQorDQoraW50DQorX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkN Citmb28gKGNvbnN0IGNoYXIgKnMpDQorew0KKyAgcmV0dXJuIF9fYnVpbHRp bl9zdHJsZW4gKHMpOw0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgInZsZThmZiIgMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZmaXJzdC5tIiAxIH0gfSAq Lw0KLS0gDQoyLjQzLjANCiANCiANCg== ------=_001_NextPart261104125884_=------