From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg1.qq.com (smtpbgsg1.qq.com [54.254.200.92]) by sourceware.org (Postfix) with ESMTPS id 2C9B03858D39 for ; Sat, 20 Aug 2022 01:23:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2C9B03858D39 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: bizesmtp62t1660958592tmhnb27k Received: from TABLET-POE6JQHH ( [36.36.107.177]) by bizesmtp.qq.com (ESMTP) with id ; Sat, 20 Aug 2022 09:23:11 +0800 (CST) X-QQ-SSF: 01400000000000C0I000B00A0000000 X-QQ-FEAT: HH6/KuQOBEaMg4cwNW670PaVYhSozIfM4m8lgKrXCFoIaGVSou+5LotLrFzip MOFv+GpZZEpkhsPWykRUdfe8FCA50UwuriebjXjYsY8czYaGpM1GYUJxBU6Ox12ZU8X1qaP vqZGYF/GL4M+MLtUZl2hAC471WRE94kxcBFhviHRzUd44fEBQ9MYJ1dHdBr/zAv5i+64uJZ Rdkjh4C30N3nypi16/AiLC313V6Nwb7z6pAhJ9bfs9NMb44cfNDUyWElVWv3WkgmfNpOp/t F2G0Kt+t8npx0x+RA6UbS677StvbZGrkr1xCupWqA+LKMoXu94R9FAtlWZMV0rjuRvSLbMY XmdVHE+Yl4SF7jqsnoTjVX6oX0qe/HSnFuz2nyyC1kgUwzcbKm68tsMKhaCaxQHHK+ZLkaG OjP7V+wgRyo= X-QQ-GoodBg: 2 Date: Sat, 20 Aug 2022 09:23:04 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: richard.sandiford Cc: gcc-patches , rguenther , kito.cheng Subject: Re: Re: [PATCH] middle-end: skipp stepped vector test of poly_int (1, 1) and allow the machine_mode definition with poly_uint16 (1, 1) References: <20220818104608.259204-1-juzhe.zhong@rivai.ai>, , , , , X-Priority: 3 X-GUID: DF4B2DDE-E223-4DC6-8879-58092850C4EB X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <8A43FD564C1D55FA+202208200923041010290@rivai.ai> X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, HTML_MESSAGE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Aug 2022 01:23:31 -0000 DQpBZnRlciBkZWVwIGFuYWx5c2lzIGFuZCBzZXZlcmFsIHRyaWVzLiBJIGhhdmUgbWFkZSBhIGFu YWx5c2lzIGFuZCBjb25jbHVzaW9uIGFzIGZvbGxvd3MuDQpJIHJlYWxseSBhcHByZWNpYXRlIGlm IHlvdSBjb3VsZCBzcGVuZCBzb21lIHRpbWUgdGFrZSBhIGxvb2sgYXQgdGhlIGZvbGxvd2luZyBh bmFseXNpcyB0aGF0IEkgbWFkZToNCg0KQWNjb3JkaW5nIHRvIHRoZSBjb2RlcyBpbiB0ZXN0X3Zl Y3Rvcl9zdWJyZWdzX2ZvcmVfYmFjazoNCg0Kfn5+DQogcG9seV91aW50NjQgbnVuaXRzID0gR0VU X01PREVfTlVOSVRTIChpbm5lcl9tb2RlKTsNCiAgdW5zaWduZWQgaW50IG1pbl9udW5pdHMgPSBj b25zdGFudF9sb3dlcl9ib3VuZCAobnVuaXRzKTsNCiAgc2NhbGFyX21vZGUgaW50X21vZGUgPSBH RVRfTU9ERV9JTk5FUiAoaW5uZXJfbW9kZSk7DQogIHVuc2lnbmVkIGludCBjb3VudCA9IGdjZCAo bWluX251bml0cywgNCk7DQoNCiAgcnR4X3ZlY3Rvcl9idWlsZGVyIGJ1aWxkZXIgKGlubmVyX21v ZGUsIGNvdW50LCAyKTsNCiAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytp KQ0KICAgIGJ1aWxkZXIucXVpY2tfcHVzaCAoZ2VuX2ludF9tb2RlIChpLCBpbnRfbW9kZSkpOw0K ICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpDQogICAgYnVpbGRlci5x dWlja19wdXNoIChnZW5faW50X21vZGUgKC0oaW50KSBpLCBpbnRfbW9kZSkpOw0KICBydHggeCA9 IGJ1aWxkZXIuYnVpbGQgKCk7DQp+fn5+DQoNCkFuYWx5emUgdGhlIGNvZGVzIGFuZCB0cmllZCBz ZXZlcmFsIHBhdHRlcm5zOg0KDQpGb3IgcG9seV91aW50MTYgKDIsMik6DQp4ID0gKGNvbnN0X3Zl Y3RvcjpWTngxREkgWw0KICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0KICAgICAgICAoY29uc3Rf aW50IDEgWzB4MV0pDQogICAgICAgIHJlcGVhdCBbDQogICAgICAgICAgICAoY29uc3RfaW50IDAg WzBdKQ0KICAgICAgICAgICAgKGNvbnN0X2ludCAtMSBbMHhmZmZmZmZmZmZmZmZmZmZmXSkNCiAg ICAgICAgXQ0KICAgIF0pDQoNCkZvciBwb2x5X3VpbnQxNiAoNCw0KToNCnggPSAoY29uc3RfdmVj dG9yOlZOeDFESSBbDQogICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQogICAgICAgIChjb25zdF9p bnQgMSBbMHgxXSkNCiAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKQ0KICAgICAgICAoY29uc3Rf aW50IDMgWzB4M10pDQogICAgICAgIHJlcGVhdCBbDQogICAgICAgICAgICAoY29uc3RfaW50IDAg WzBdKQ0KICAgICAgICAgICAgKGNvbnN0X2ludCAtMSBbMHhmZmZmZmZmZmZmZmZmZmZmXSkNCiAg ICAgICAgICAgIChjb25zdF9pbnQgLTIgWzB4ZmZmZmZmZmZmZmZmZmZmZV0pDQogICAgICAgICAg ICAoY29uc3RfaW50IC0zIFsweGZmZmZmZmZmZmZmZmZmZmRdKQ0KICAgICAgICBdDQogICAgXSkN Cg0KU28sIEkgdGhpbmsgSSBjYW4gY29uY2x1ZGUgdGhlIHBhdHRlcm4gcnVsZSBhcyBmb2xsb3dz Og0KDQpwb2x5X3VpbnQxNiAobixuKToNCnggPSAoY29uc3RfdmVjdG9yOlZOeDFESSBbDQogICAg ICAgIChjb25zdF9pbnQgMCBbMF0pDQogICAgICAgIChjb25zdF9pbnQgMSBbMHgxXSkNCiAgICAg ICAgKGNvbnN0X2ludCAyIFsweDJdKQ0KICAgICAgICAoY29uc3RfaW50IDMgWzB4M10pDQogICAg ICAgIC4uLi4uLi4uLi4uLi4uLi4uLg0KICAgICAgICAoY29uc3RfaW50IG4gW2hleChuKV0pDQog ICAgICAgIHJlcGVhdCBbDQogICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0KICAgICAgICAg ICAgKGNvbnN0X2ludCAtMSBbMHhmZmZmZmZmZmZmZmZmZmZmXSkNCiAgICAgICAgICAgIChjb25z dF9pbnQgLTIgWzB4ZmZmZmZmZmZmZmZmZmZmZV0pDQogICAgICAgICAgICAoY29uc3RfaW50IC0z IFsweGZmZmZmZmZmZmZmZmZmZmRdKQ0KICAgICAgICAgICAgLi4uLi4uLi4uDQogICAgICAgICAg ICAgKGNvbnN0X2ludCAtbiBbaGV4KC1uKV0pDQogICAgICAgIF0NCiAgICBdKQ0KQW0gSSB1bmRl cnN0YW5kaW5nIHJpZ2h0Pw0KDQpMZXQncyBmaXJzdCB0YWtlIGEgbG9vayBhdCB0aGUgY29kZXMg eW91IHdyaXRlOg0KDQpydHhfdmVjdG9yX2J1aWxkZXIgYnVpbGRlciAoaW5uZXJfbW9kZSwgY291 bnQsIDIpOw0KICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpDQogICAg YnVpbGRlci5xdWlja19wdXNoIChnZW5faW50X21vZGUgKGksIGludF9tb2RlKSk7DQogIGZvciAo dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkNCiAgICBidWlsZGVyLnF1aWNrX3B1 c2ggKGdlbl9pbnRfbW9kZSAoLShpbnQpIGksIGludF9tb2RlKSk7DQogIHJ0eCB4ID0gYnVpbGRl ci5idWlsZCAoKTsNCg0KU28gZm9yIHBvbHlfdWludCAoMSwxKToNCklkZWFsbHkgYWNjb3JkaW5n IHRvIHRoZSBjb2RlcywgeW91IHdhbnQgdG8gZ2VuZXJhdGUgdGhlIHBhdHRlcm4gbGlrZSB0aGlz Og0KeCA9IChjb25zdF92ZWN0b3I6Vk54MURJIFsNCiAgICAgICAgKGNvbnN0X2ludCAwIFswXSkN CiAgICAgICAgcmVwZWF0IFsNCiAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQogICAgICAg IF0NCiAgICBdKQ0KDQpJbiB5b3VyIGNvZGVzLCB3aGVuIGNvdW50ID0gMSBmb3IgcG9seV91aW50 MTYgKDEsMSkuIEFuZCBpIDwgY291bnQgaXRlcmF0aW9uIG1ha2UgaSBhbHdheXMgaXMgMC4NCklu IHRoaXMgY2FzZSwgaSA9IC1pID0gMC4NCg0KU28gd2Ugd2lsbCBlbmQgdXAgd2l0aCB0aGUgZmly c3QgdmFsdWUgPSAwLCBhbmQgcmVwZWF0IHZhbHVlIGlzIGFsc28gMCwgaW4gInJ0eCB4ID0gYnVp bGRlci5idWlsZCAoKTsiLg0KQmVjYXVzZSBHQ0MgdGhpbmtzIGFsbCB0aGUgdmFsdWUgYXJlIDAs IHNvIHRoZSBwYXR0ZXJuIGlzIGNoYW5nZWQgYXMgZm9sbG93cyB3aGljaCBpcyBub3QgYSBzdGVw cGVkIHZlY3RvcjoNCg0KeCA9IChjb25zdF92ZWN0b3I6Vk54MURJIHJlcGVhdCBbDQogICAgICAg IChjb25zdF9pbnQgMCBbMF0pDQogICAgXSkNCg0KVGhpcyBpcyBhIGNvbnN0X3ZlY3RvciBkdXBs aWNhdGUgdmVjdG9yLg0KVGhpcyBpcyBub3QgdGhlIGNvcnJlY3QgcGF0dGVybiB5b3Ugd2FudCBz byBpdCBmYWlscyBpbiB0aGUgZm9sbG93aW5nIGNoZWNrLg0KDQpJIHRoaW5rIHRoZSB0ZXN0IHBh dHRlcm4gZ2VuZXJhdG9yIGdvZXMgd3JvbmcgaW4gcG9seV91aW50MTYgKDEsMSkgd2hpY2ggaXMg dGhlIG9ubHkgY29ybmVyIGNhc2Ugd2lsbCBnbyB3cm9uZy4NCg0KVG8gZml4IHRoaXMsIHdlIHNo b3VsZCBhZGp1c3QgdGVzdCBwYXR0ZXJuIGdlbmVyYXRvciB0byBzcGVjaWZpY2FsbHkgcG9seV91 aW50MTYgKDEsMSkuIFdlIHNob3VsZCBtYWtlIGZpcnN0IHZhbHVlDQphbmQgcmVwZWF0IHZhbHVl IGRpZmZlcmVudC4gSSB0cmllZCAyIHNvbHV0aW9uIGFuZCB0aGV5IGJvdGggcGFzcyBmb3IgcG9s eV91aW50MTYgKDEsMSk6DQoNCj09PT09PT09PT09PT09PT0NCk9yaWdpbmFsIGNvZGVzOg0KcnR4 X3ZlY3Rvcl9idWlsZGVyIGJ1aWxkZXIgKGlubmVyX21vZGUsIGNvdW50LCAyKTsNCiAgZm9yICh1 bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQ0KICAgIGJ1aWxkZXIucXVpY2tfcHVz aCAoZ2VuX2ludF9tb2RlIChpLCBpbnRfbW9kZSkpOw0KICBmb3IgKHVuc2lnbmVkIGludCBpID0g MDsgaSA8IGNvdW50OyArK2kpDQogICAgYnVpbGRlci5xdWlja19wdXNoIChnZW5faW50X21vZGUg KC0oaW50KSBpLCBpbnRfbW9kZSkpOw0KPT09PT09PT09PT09PT09PQ0KDQo9PT09PT09PT09PT09 PT09DQoxc3Qgc29sdXRpb246DQpydHhfdmVjdG9yX2J1aWxkZXIgYnVpbGRlciAoaW5uZXJfbW9k ZSwgY291bnQsIDIpOw0KICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGNvdW50OyArK2kp DQogICAgYnVpbGRlci5xdWlja19wdXNoIChnZW5faW50X21vZGUgKGNvdW50ID09IDEgPyAxIDog aSwgaW50X21vZGUpKTsNCiAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytp KQ0KICAgIGJ1aWxkZXIucXVpY2tfcHVzaCAoZ2VuX2ludF9tb2RlICgtKGludCkgaSwgaW50X21v ZGUpKTsNCg0KeCA9IChjb25zdF92ZWN0b3I6Vk54MURJIFsNCiAgICAgICAgKGNvbnN0X2ludCAw IFswXSkNCiAgICAgICAgcmVwZWF0IFsNCiAgICAgICAgICAgIChjb25zdF9pbnQgMSBbMHgxXSkN CiAgICAgICAgXQ0KICAgIF0pDQo9PT09PT09PT09PT09PT09DQoNCj09PT09PT09PT09PT09PT0N CjJuZCBzb2x1dGlvbjoNCnJ0eF92ZWN0b3JfYnVpbGRlciBidWlsZGVyIChpbm5lcl9tb2RlLCBj b3VudCwgMik7DQogIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkNCiAg ICBidWlsZGVyLnF1aWNrX3B1c2ggKGdlbl9pbnRfbW9kZSAoaSwgaW50X21vZGUpKTsNCiAgZm9y ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQ0KICAgIGJ1aWxkZXIucXVpY2tf cHVzaCAoZ2VuX2ludF9tb2RlIChjb3VudCA9PSAxID8gLTEgOiAtKGludCkgaSwgaW50X21vZGUp KTsNCg0KeD0gDQooY29uc3RfdmVjdG9yOlZOeDFESSBbDQogICAgICAgIChjb25zdF9pbnQgMCBb MF0pDQogICAgICAgIHJlcGVhdCBbDQogICAgICAgICAgICAoY29uc3RfaW50IC0xIFsweGZmZmZm ZmZmZmZmZmZmZmZdKQ0KICAgICAgICBdDQogICAgXSkNCj09PT09PT09PT09PT09PT0NCg0KRG8g eW91IGFncmVlIHdpdGggdGhlc2Ugc29sdXRpb24/IE9yIHlvdSBjb3VsZCBvZmZlciBhIGJldHRl ciBzb2x1dGlvbiB0byBmaXggdGhpcz8gVGhhbmsgeW91IHNvIG11Y2guDQoNCg0KanV6aGUuemhv bmdAcml2YWkuYWkNCiANCkZyb206IFJpY2hhcmQgU2FuZGlmb3JkDQpEYXRlOiAyMDIyLTA4LTE5 IDIwOjUyDQpUbzoganV6aGUuemhvbmdcQHJpdmFpLmFpDQpDQzogZ2NjLXBhdGNoZXM7IHJndWVu dGhlcjsga2l0by5jaGVuZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gbWlkZGxlLWVuZDogc2tpcHAg c3RlcHBlZCB2ZWN0b3IgdGVzdCBvZiBwb2x5X2ludCAoMSwgMSkgYW5kIGFsbG93IHRoZSBtYWNo aW5lX21vZGUgZGVmaW5pdGlvbiB3aXRoIHBvbHlfdWludDE2ICgxLCAxKQ0KImp1emhlLnpob25n QHJpdmFpLmFpIiA8anV6aGUuemhvbmdAcml2YWkuYWk+IHdyaXRlczoNCj4+IEFoLCByaWdodCwg c29ycnkgZm9yIHRoZSBib2d1cyBzdWdnZXN0aW9uLg0KPj4gSW4gdGhhdCBjYXNlLCB3aGF0IHNw ZWNpZmljYWxseSBnb2VzIHdyb25nPyAgV2hpY2ggdGVzdCBpbg0KPj4gdGVzdF92ZWN0b3Jfc3Vi cmVnc19tb2RlcyBmYWlscywgYW5kIHdoYXQgZG9lcyB0aGUgSUNFIGxvb2sgbGlrZT8NCj4NCj4g QmVjYXVzZSBtYXlfYmUgKG51bml0cywgMSkgcmV0dXJuIHRydWUuIEZvciBudW5pdHMgPSAoMSwx KSwgaXQgd2lsbCBleGVjdXRlIHRlc3RfdmVjdG9yX3N1YnJlZ3NfbW9kZXMuDQo+IFRoZSBmYWls IElDRToNCj4gLi4vLi4vLi4vcmlzY3YtZ2NjL2djYy9zaW1wbGlmeS1ydHguY2M6ODM5NjogdGVz dF92ZWN0b3Jfc3VicmVnc19tb2RlczogRkFJTDogQVNTRVJUX1JUWF9FUSAoZXhwZWN0ZWQsIHNp bXBsaWZ5X3N1YnJlZyAoUUltb2RlLCB4LCBpbm5lcl9tb2RlLCBieXRlKSkNCj4gICBleHBlY3Rl ZDogKG5pbCkNCj4NCj4gICBhY3R1YWw6IChjb25zdF9pbnQgMCBbMF0pDQo+IGNjMTogaW50ZXJu YWwgY29tcGlsZXIgZXJyb3I6IGluIGFzc2VydF9ydHhfZXFfYXQsIGF0IHNlbGZ0ZXN0LXJ0bC5j Yzo1Nw0KPiAweDEzMDRlZTEgc2VsZnRlc3Q6OmFzc2VydF9ydHhfZXFfYXQoc2VsZnRlc3Q6Omxv Y2F0aW9uIGNvbnN0JiwgY2hhciBjb25zdCosIHJ0eF9kZWYqLCBydHhfZGVmKikNCj4gICAgICAg ICAuLi8uLi8uLi9yaXNjdi1nY2MvZ2NjL3NlbGZ0ZXN0LXJ0bC5jYzo1Nw0KPiAweDEzMzI1MDQg dGVzdF92ZWN0b3Jfc3VicmVnc19tb2Rlcw0KPiAgICAgICAgIC4uLy4uLy4uL3Jpc2N2LWdjYy9n Y2Mvc2ltcGxpZnktcnR4LmNjOjgzOTUNCj4gMHgxMzMyOTg4IHRlc3RfdmVjdG9yX3N1YnJlZ3Nf Zm9yZV9iYWNrDQo+ICAgICAgICAgLi4vLi4vLi4vcmlzY3YtZ2NjL2djYy9zaW1wbGlmeS1ydHgu Y2M6ODQ0Mg0KPiAweDEzMzJhZTcgdGVzdF92ZWN0b3Jfc3VicmVncw0KPiAgICAgICAgIC4uLy4u Ly4uL3Jpc2N2LWdjYy9nY2Mvc2ltcGxpZnktcnR4LmNjOjg0NjcNCj4gMHgxMzMyYzU3IHRlc3Rf dmVjdG9yX29wcw0KPiAgICAgICAgIC4uLy4uLy4uL3Jpc2N2LWdjYy9nY2Mvc2ltcGxpZnktcnR4 LmNjOjg0ODcNCj4gMHgxMzMyYzdiIHNlbGZ0ZXN0OjpzaW1wbGlmeV9ydHhfY2NfdGVzdHMoKQ0K PiAgICAgICAgIC4uLy4uLy4uL3Jpc2N2LWdjYy9nY2Mvc2ltcGxpZnktcnR4LmNjOjg1NDcNCj4g MHgyMTMxOGZhIHNlbGZ0ZXN0OjpydW5fdGVzdHMoKQ0KPiAgICAgICAgIC4uLy4uLy4uL3Jpc2N2 LWdjYy9nY2Mvc2VsZnRlc3QtcnVuLXRlc3RzLmNjOjExNQ0KPiAweDEzNjJhNzYgdG9wbGV2Ojpy dW5fc2VsZl90ZXN0cygpDQo+ICAgICAgICAgLi4vLi4vLi4vcmlzY3YtZ2NjL2djYy90b3BsZXYu Y2M6MjIwNQ0KPg0KPiBJIGFuYWx5emVkIHRoZSBjb2RlczoNCj4gSW4gdGVzdF92ZWN0b3Jfc3Vi cmVnc19mb3JlX2JhY2ssIHdoZW4gbnVuaXRzID0gKDEsMSkuIFRoZSBleHBlY3RlZCA9IE5VTExf UlRYIGFuZCBzaW1wbGlmeV9zdWJyZWcgKFFJbW9kZSwgeCwgaW5uZXJfbW9kZSwgYnl0ZSkgPSBj b25zdF9pbnQgMC4NCj4gU28gdGhlIGFzc2VydGlvbiBmYWlscy4NCiANCkhtbSwgb2ssIHNvIHRo ZSBzdWJyZWcgb3BlcmF0aW9uIGlzIHVuZXhwZWN0ZWQgc3VjY2VlZGluZy4NCiANCj4gVGhpcyBp cyB0aGUgdGVzdCBmb3Igc3RlcHBlZCB2ZWN0b3IgdXNpbmcgMiBlbGVtZW50IHBlciBwYXR0ZXJu LiAgRm9yIHBvbHlfdWludDE2ICgxLDEpLCBpdCdzIHRydWUgaXQgaXMgcG9zc2libGUgb25seSBo YXMgMSBlbGVtZW50LiANCiANClRoZSBzdGVwcGVkIGNhc2UgaXMgMyBlbGVtZW50cyBwZXIgcGF0 dGVybiByYXRoZXIgdGhhbiAyLiAgSW4gYSBzdGVwcGVkDQpwYXR0ZXJuOiBhLCBiLCBiK24gYXJl IHJlcHJlc2VudGVkIGV4cGxpY2l0bHksIHRoZW4gdGhlIHJlc3QgYXJlDQppbXBsaWNpdGx5IGIr bioyLCBiK24qMywgZXRjLg0KIA0KVGhlIGNhc2UgYmVpbmcgaGFuZGxlZCBieSB0aGlzIGNvZGUg aXMgaW5zdGVhZCB0aGUgMi1lbGVtZW50IGNhc2U6DQphLCBiIGFyZSByZXByZXNlbnRlZCBleHBs aWNpdGx5LCB0aGVuIHRoZSByZXN0IGFyZSBpbXBsaWNpdGx5IGFsbCBiLg0KIA0KV2h5IGlzICgx LDEpIGRpZmZlcmVudCB0aG91Z2g/ICBUaGUgdGVzdCBpcyBjb25zdHJ1Y3Rpbmc6DQogDQogIG51 bml0czogMSArIDF4DQogIHNoYXBlOiBuZWx0c19wZXJfcGF0dGVybiA9PSAyLCBucGF0dGVybnMg PT0gMQ0KICBlbGVtZW50czogYSwgYlssIGIsIGIsIGIsIGIsIC4uLl0NCiANCkl0IHRoZW4gdGVz dHMgc3VicmVncyBzdGFydGluZyBhdCAwICsgMXggKHNvIHN0YXJ0aW5nIGF0IHRoZSBmaXJzdCBi KS4NCkJ1dCBmb3IgKDIsMikgd2Ugc2hvdWxkIGhhdmU6DQogDQogIG51bml0czogMiArIDJ4DQog IHNoYXBlOiBuZWx0c19wZXJfcGF0dGVybiA9PSAyLCBucGF0dGVybnMgPT0gMg0KICBlbGVtZW50 czogYTEsIGEyLCBiMSwgYjJbLCBiMSwgYjIsIGIxLCBiMiwgLi4uXQ0KIA0KYW5kIHdlIHNob3Vs ZCB0ZXN0IHN1YnJlZ3Mgc3RhcnRpbmcgYXQgMCArIDJ4IChzbyBzdGFydGluZyBhdCB0aGUNCmZp cnN0IGIxKS4gIFRoZSB0d28gY2FzZXMgc2hvdWxkIGJlIHZlcnkgc2ltaWxhciwgaXQncyBqdXN0 IHRoYXQgdGhlDQooMiwyKSBjYXNlIGRvdWJsZXMgdGhlIG51bWJlciBvZiBwYXR0ZXJucy4NCiAN Cj4gSSB0aGluayBpdCBtYWtlcyBzZW5zZSB0byBmYWlsIHRoZSB0ZXN0LiBIb3dldmVyIGZvciBw b2x5ICgxLDEpIG1hY2hpbmUgbW9kZSwgY2FuIHdlIGhhdmUgdGhlIGNoYW5jZSB0aGF0IHNvbWUg dGFyZ2V0IGRlZmluZSB0aGlzDQo+IGtpbmQgb2YgbWFjaGluZSBtb2RlIG9ubHkgdXNlZCBmb3Ig aW50cmluc2ljcz8gIEkgYWxyZWFkeSBkZXZlbG9wZWQgZnVsbCBSVlYgc3VwcG9ydCBpbiBHQ0Mg KGluY2x1ZGluZyBpbnRyaW5zYyBhbmQgYXV0by12ZWN0b3JpemF0aW9uKS4NCj4gSSBvbmx5IGVu YWJsZSBhdXRvLXZlY3Rvcml6YXRpb24gd2l0aCBtb2RlIGxhcmdlciB0aGFuICgyLDIpIGFuZCB0 ZXN0IGl0IGZ1bGx5Lg0KPiBGcm9tIG15IGV4cGVyaWVuY2UsIGl0IHNlZW1zIHRoZSBzdGVwcGVk IHZlY3RvciBvbmx5IGNyZWF0ZWQgZHVyaW5nIFZMQSBhdXRvLXZlY3Rvcml6YXRpb24uIEFuZCBJ IHRoaW5rIG9ubHkgYWxsb3cgcG9seSAoMSwxKW1vZGUgdXNlZCBpbiBpbnRyaW5zaWNzIHdpbGwN Cj4gbm90IGNyZWF0ZSBpc3N1ZXMuIEFtIEkgdW5kZXJzdGFuZGluZyB3cm9uZyDvvJ9GZWVsIGZy ZWUgdG8gY29ycmVjdCBtZS4gVGhhbmtzIH4NCiANCkZvbGxvd2luZyBvbiBmcm9tIHdoYXQgSSBz YWlkIGFib3ZlLCBpdCBkb2Vzbid0IGxvb2sgbGlrZSB0aGlzIHBhcnRpY3VsYXINCmNhc2UgaXMg cmVsYXRlZCB0byBzdGVwcGVkIHZlY3RvcnMuDQogDQooMSwxKSBzaG91bGRuJ3QgKG5lZWQgdG8p IGJlIGEgc3BlY2lhbCBjYXNlIHRob3VnaC4gIEFueSBwb3RlbnRpdGFsDQpwcm9ibGVtcyB0aGF0 IHdvdWxkIG9jY3VyIGZvciAoMSwxKSB3aXRoIG5wYXR0ZXJucz09MSB3b3VsZCBhbHNvIG9jY3Vy DQpmb3IgKG4sbikgd2l0aCBucGF0dGVybnM9PW4uICBFLmcuIGlmIHN0ZXBwZWQgdmVjdG9ycyBh cmUgcHJvYmxlbWF0aWMNCmZvciAoMSwxKSB0aGVuIGFuIGludGVybGVhdmluZyBvZiAyIHN0ZXBw ZWQgdmVjdG9ycyAoaS5lLiBucGF0dGVybnM9PTIpDQp3b3VsZCBiZSBwcm9ibGVtYXRpYyBmb3Ig KDIsMikuDQogDQpTbyB5ZWFoLCBwcmV2ZW50aW5nIGEgbW9kZSBiZWluZyB1c2VkIGZvciBhdXRv dmVjdG9yaXNhdGlvbiB3b3VsZCBhbGxvdw0KdGhlIHRhcmdldCB0byBoYXZlIGEgYml0IG1vcmUg Y29udHJvbCBvdmVyIHdoaWNoIGNvbnN0YW50cyBhcmUgYWN0dWFsbHkNCmdlbmVyYXRlZC4gIEJ1 dCBpdCBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5IHRvIGRvIHRoYXQgZm9yIGNvcnJlY3RuZXNzLg0K IA0KVGhhbmtzLA0KUmljaGFyZA0KIA0KPiBqdXpoZS56aG9uZ0ByaXZhaS5haQ0KPiAgDQo+IEZy b206IFJpY2hhcmQgU2FuZGlmb3JkDQo+IERhdGU6IDIwMjItMDgtMTkgMTc6MzUNCj4gVG86IGp1 emhlLnpob25nXEByaXZhaS5haQ0KPiBDQzogcmd1ZW50aGVyOyBnY2MtcGF0Y2hlczsga2l0by5j aGVuZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBtaWRkbGUtZW5kOiBza2lwcCBzdGVwcGVkIHZl Y3RvciB0ZXN0IG9mIHBvbHlfaW50ICgxLCAxKSBhbmQgYWxsb3cgdGhlIG1hY2hpbmVfbW9kZSBk ZWZpbml0aW9uIHdpdGggcG9seV91aW50MTYgKDEsIDEpDQo+ICJqdXpoZS56aG9uZ0ByaXZhaS5h aSIgPGp1emhlLnpob25nQHJpdmFpLmFpPiB3cml0ZXM6DQo+PiBIaSwgUmljaGFyZC4gSSB0cmll ZCB0aGUgY29kZXM6DQo+PiBpZiAoIW51bml0cy5pc19jb25zdGFudCAoKSAmJiBtYXliZV9ndCAo bnVuaXRzLCAxKSkgDQo+PiB0ZXN0X3ZlY3Rvcl9zdWJyZWdzX21vZGVzICh4LCBudW5pdHMgLSBt aW5fbnVuaXRzLCBjb3VudCk7DQo+Pg0KPj4gSXQgc3RpbGwgZmFpbGVkLiBGb3IgbnVuaXRzID0g KDEsMSkgLCBtYXliZV9ndCAobnVuaXRzLCAxKSByZXR1cm4gdHJ1ZSB2YWx1ZS4NCj4gIA0KPiBB aCwgcmlnaHQsIHNvcnJ5IGZvciB0aGUgYm9ndXMgc3VnZ2VzdGlvbi4NCj4gIA0KPiBJbiB0aGF0 IGNhc2UsIHdoYXQgc3BlY2lmaWNhbGx5IGdvZXMgd3Jvbmc/ICBXaGljaCB0ZXN0IGluDQo+IHRl c3RfdmVjdG9yX3N1YnJlZ3NfbW9kZXMgZmFpbHMsIGFuZCB3aGF0IGRvZXMgdGhlIElDRSBsb29r IGxpa2U/DQo+ICANCj4gVGhhbmtzLA0KPiBSaWNoYXJkDQo+ICANCj4+IEJ1dCBJIHRyaWVkOg0K Pj4gaWYgKCFudW5pdHMuaXNfY29uc3RhbnQgKCkgJiYga25vd25fZ3QgKG51bml0cywgMSkpIA0K Pj4gdGVzdF92ZWN0b3Jfc3VicmVnc19tb2RlcyAoeCwgbnVuaXRzIC0gbWluX251bml0cywgY291 bnQpOw0KPj4gSXQgcGFzcy4gQnV0IGl0IHJlcG9ydCBhIHdhcm5pbmc6ICJ3YXJuaW5nOiBjb21w YXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFst V3NpZ24tY29tcGFyZV0iIGR1cmluZyB0aGUgY29tcGlsYXRpb24uDQo+Pg0KPj4gRmluYWxseSwg SSB0cmllZDoNCj4+IGlmICghbnVuaXRzLmlzX2NvbnN0YW50ICgpICYmIGtub3duX2d0IChHRVRf TU9ERV9OVU5JVFMgKGlubmVyX21vZGUpLCAxKSkgDQo+PiB0ZXN0X3ZlY3Rvcl9zdWJyZWdzX21v ZGVzICh4LCBudW5pdHMgLSBtaW5fbnVuaXRzLCBjb3VudCk7DQo+PiBJdCBwYXNzZWQgd2l0aCBu byB3YXJuaW5nLg0KPj4NCj4+IElzICdrbm93bl9ndCAoR0VUX01PREVfTlVOSVRTIChpbm5lcl9t b2RlKSwgMSknIGEgZ29vZCBzb2x1dGlvbiBmb3IgdGhpcz8NCj4+IFRoYW5rcyENCj4+DQo+Pg0K Pj4ganV6aGUuemhvbmdAcml2YWkuYWkNCj4+ICANCj4+IEZyb206IFJpY2hhcmQgU2FuZGlmb3Jk DQo+PiBEYXRlOiAyMDIyLTA4LTE5IDE2OjAzDQo+PiBUbzoganV6aGUuemhvbmcNCj4+IENDOiBn Y2MtcGF0Y2hlczsgcmd1ZW50aGVyOyBraXRvLmNoZW5nDQo+PiBTdWJqZWN0OiBSZTogW1BBVENI XSBtaWRkbGUtZW5kOiBza2lwcCBzdGVwcGVkIHZlY3RvciB0ZXN0IG9mIHBvbHlfaW50ICgxLCAx KSBhbmQgYWxsb3cgdGhlIG1hY2hpbmVfbW9kZSBkZWZpbml0aW9uIHdpdGggcG9seV91aW50MTYg KDEsIDEpDQo+PiBqdXpoZS56aG9uZ0ByaXZhaS5haSB3cml0ZXM6DQo+Pj4gRnJvbTogemhvbmdq dXpoZSA8anV6aGUuemhvbmdAcml2YWkuYWk+DQo+Pj4NCj4+PiBIZWxsby4gVGhpcyBwYXRjaCBp cyBwcmVwYXJpbmcgZm9yIGZvbGxvd2luZyBSVlYgc3VwcG9ydC4NCj4+Pg0KPj4+IEJvdGggQVJN IFNWRSBhbmQgUlZWIChSSVNDLVYgJ1YnIEV4dGVuc2lvbikgc3VwcG9ydCBsZW5ndGgtYWdub3N0 aWMgdmVjdG9yLg0KPj4+IFRoZSBtaW5pbXVtIHZlY3RvciBsZW5ndGggb2YgQVJNIFNWRSBpcyAx MjgtYml0IGFuZCB0aGUgcnVudGltZSBpbnZhcmlhbnQgb2YgQVJNIFNWRSBpcyBhbHdheXMgMTI4 LWJpdCBibG9ja3MuDQo+Pj4gSG93ZXZlciwgdGhlIG1pbmltdW0gdmVjdG9yIGxlbmd0aCBvZiBS VlYgY2FuIGJlIDMyYml0IGluICdadmUzMionIHN1Yi1leHRlbnNpb24gYW5kIDY0Yml0IGluICda dmUqJyBzdWItZXh0ZW5zaW9uLg0KPj4+DQo+Pj4gU28gSSBkZWZpbmUgdGhlIG1hY2hpbmVfbW9k ZSBhcyBmb2xsb3dzOg0KPj4+IFZFQ1RPUl9NT0RFX1dJVEhfUFJFRklYIChWTngsIElOVCwgREks IDEsIDApOw0KPj4+IEFESlVTVF9OVU5JVFMgKE1PREUsIHJpc2N2X3ZlY3Rvcl9jaHVua3MpOw0K Pj4+IFRoZSByaXNjdl92ZWN0b3JfY2h1bmtzID0gcG9seV91aW50MTYgKDEsIDEpDQo+Pj4NCj4+ PiBUaGUgY29tcGlsYXRpb24gaXMgZmFpbGVkIGZvciB0aGUgc3RlcHBlZCB2ZWN0b3IgdGVzdDoN Cj4+PiAoY29uc3RfdmVjdG9yOlZOeDFESSByZXBlYXQgWw0KPj4+ICAgICAgICAgKGNvbnN0X2lu dCA4IFsweDhdKQ0KPj4+ICAgICAgICAgKGNvbnN0X2ludCA3IFsweDddKQ0KPj4+ICAgICBdKQ0K Pj4+DQo+Pj4gSSB1bmRlcnN0YW5kIGZvciBzdGVwcGVkIHZlY3RvciBzaG91bGQgYWx3YXlzIGhh dmUgYWxlYXN0IDIgZWxlbWVudHMgYW5kIHN0ZXBwZWQgdmVjdG9yIGluaXRpYWxpemF0aW9uIGlz IGNvbW1vbg0KPj4+IGZvciBWTEEgKHZlY3Rvci1sZW5ndGhlIGFnbm9zdGljKSBhdXRvLXZlY3Rv cml6YXRpb24uIEl0IG1ha2VzIHNlbnNlIHRoYXQgcmVwb3J0IGZhaWwgZm9yIHN0ZXBwZWQgdmVj dG9yIG9mIHBvbHlfdWludDE2ICgxLCAxKS4NCj4+Pg0KPj4+IG1hY2hpbmUgbW9kZSB3aXRoIG51 bml0cyA9IHBvbHlfdWludDE2ICgxLCAxKSBuZWVkcyB0byBpbXBsZW1lbnRlZCBpbiBpbnRyaW5z aWNzLiBBbmQgSSB3b3VsZCBsaWtlIHRvIGVuYWJsZSBSVlYgYXV0by12ZWN0b3JpemF0aW9uDQo+ Pj4gd2l0aCB2ZWN0b3IgbW9kZSBvbmx5IG51bml0cyBpcyBsYXJnZXIgdGhhbiBwb2x5X3VpbnQx NiAoMiwgMikgaW4gUklTQy1WIGJhY2tlbmQuIEkgdGhpbmsgaXQgd2lsbCBub3QgY3JlYXRlIGlz c3VlIGlmIHdlIGRlZmluZQ0KPj4+IHZlY3RvciBtb2RlIHdpdGggbnVuaXRzID0gcG9seV91aW50 MTYgKDEsIDEpLiBGZWVsIGZyZWUgdG8gY29ycmVjdCBtZSBvciBvZmZlciBtZSBzb21lIG90aGVy IGJldHRlciBzb2x1dGlvbnMuIFRoYW5rcyENCj4+Pg0KPj4+ICAgDQo+Pj4NCj4+PiBnY2MvQ2hh bmdlTG9nOg0KPj4+DQo+Pj4gICAgICAgICAqIHNpbXBsaWZ5LXJ0eC5jYyAodGVzdF92ZWN0b3Jf c3VicmVnc19mb3JlX2JhY2spOiBza2lwIHRlc3QgZm9yIHBvbHlfdWludDE2ICgxLCAxKS4NCj4+ Pg0KPj4+IC0tLQ0KPj4+ICBnY2Mvc2ltcGxpZnktcnR4LmNjIHwgMiArLQ0KPj4+ICAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkNCj4+Pg0KPj4+IGRpZmYgLS1n aXQgYS9nY2Mvc2ltcGxpZnktcnR4LmNjIGIvZ2NjL3NpbXBsaWZ5LXJ0eC5jYw0KPj4+IGluZGV4 IDdkMDliZjcxMDNkLi42MWUwZGZhMDBkMCAxMDA2NDQNCj4+PiAtLS0gYS9nY2Mvc2ltcGxpZnkt cnR4LmNjDQo+Pj4gKysrIGIvZ2NjL3NpbXBsaWZ5LXJ0eC5jYw0KPj4+IEBAIC04NDM4LDcgKzg0 MzgsNyBAQCB0ZXN0X3ZlY3Rvcl9zdWJyZWdzX2ZvcmVfYmFjayAobWFjaGluZV9tb2RlIGlubmVy X21vZGUpDQo+Pj4gICAgcnR4IHggPSBidWlsZGVyLmJ1aWxkICgpOw0KPj4+ICANCj4+PiAgICB0 ZXN0X3ZlY3Rvcl9zdWJyZWdzX21vZGVzICh4KTsNCj4+PiAtICBpZiAoIW51bml0cy5pc19jb25z dGFudCAoKSkNCj4+PiArICBpZiAoIW51bml0cy5pc19jb25zdGFudCAoKSAmJiBrbm93bl9uZSAo bnVuaXRzLCBwb2x5X3VpbnQxNiAoMSwgMSkpKQ0KPj4+ICAgICAgdGVzdF92ZWN0b3Jfc3VicmVn c19tb2RlcyAoeCwgbnVuaXRzIC0gbWluX251bml0cywgY291bnQpOw0KPj4gIA0KPj4gSSB0aGlu ayBpbnN0ZWFkIHdlIHNob3VsZCB1c2UgbWF5YmVfZ3QgKG51bml0cywgMSksIG9uIHRoZSBiYXNp cyB0aGF0DQo+PiB0aGUgZm9yZV9iYWNrIHRlc3RzIHJlcXVpcmUgdmVjdG9ycyB0aGF0IGhhdmUg YSBtaW5pbXVtIG9mIDIgZWxlbWVudHMuDQo+PiBTb21ldGhpbmcgbGlrZSBwb2x5X3VpbnQxNiAo MSwgMikgd291bGQgaGF2ZSB0aGUgc2FtZSBwcm9ibGVtIGFzDQo+PiBwb2x5X3VpbnQxNiAoMSwg MSkuICAoezEsIDJ9IGlzIGFuIHVubGlrZWx5IHZhbHVlLCBidXQgaXQncyBPSyBpbg0KPj4gcHJp bmNpcGxlLikNCj4+ICANCj4+IFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIG1pbmltdW0gb2YgMyBl bGVtZW50cyBmb3IgdGhlIHN0ZXBwZWQgdGVzdHM6DQo+PiAgDQo+PiAgIGlmIChHRVRfTU9ERV9D TEFTUyAobW9kZSkgPT0gTU9ERV9WRUNUT1JfSU5UDQo+PiAgICAgICAmJiBtYXliZV9ndCAoR0VU X01PREVfTlVOSVRTIChtb2RlKSwgMikpDQo+PiAgICAgew0KPj4gICAgICAgdGVzdF92ZWN0b3Jf b3BzX3NlcmllcyAobW9kZSwgc2NhbGFyX3JlZyk7DQo+PiAgICAgICB0ZXN0X3ZlY3Rvcl9zdWJy ZWdzIChtb2RlKTsNCj4+ICAgICB9DQo+PiAgDQo+PiBUaGFua3MsDQo+PiBSaWNoYXJkDQo+PiAg DQo+ICANCiANCg==