From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 55040A04C0; Fri, 25 Sep 2020 11:16:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B94131E4E8; Fri, 25 Sep 2020 11:16:04 +0200 (CEST) Received: from mx0a-00191d01.pphosted.com (mx0a-00191d01.pphosted.com [67.231.149.140]) by dpdk.org (Postfix) with ESMTP id 7137A1DA62 for ; Mon, 21 Sep 2020 17:26:47 +0200 (CEST) Received: from pps.filterd (m0049295.ppops.net [127.0.0.1]) by m0049295.ppops.net-00191d01. (8.16.0.42/8.16.0.42) with SMTP id 08LFMRRw048055; Mon, 21 Sep 2020 11:26:46 -0400 Received: from alpi154.enaf.aldc.att.com (sbcsmtp6.sbc.com [144.160.229.23]) by m0049295.ppops.net-00191d01. with ESMTP id 33nyghnhb0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 21 Sep 2020 11:26:46 -0400 Received: from enaf.aldc.att.com (localhost [127.0.0.1]) by alpi154.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id 08LFQiQf011508; Mon, 21 Sep 2020 11:26:44 -0400 Received: from zlp30488.vci.att.com (zlp30488.vci.att.com [135.47.91.93]) by alpi154.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id 08LFQbB1011367 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 21 Sep 2020 11:26:37 -0400 Received: from zlp30488.vci.att.com (zlp30488.vci.att.com [127.0.0.1]) by zlp30488.vci.att.com (Service) with ESMTP id D01BD400AF90; Mon, 21 Sep 2020 15:26:37 +0000 (GMT) Received: from GAALPA1MSGEX1DF.ITServices.sbc.com (unknown [135.50.89.119]) by zlp30488.vci.att.com (Service) with ESMTPS id A2BF3400AF73; Mon, 21 Sep 2020 15:26:37 +0000 (GMT) Received: from GAALPA1MSGEX1DD.ITServices.sbc.com (135.50.89.117) by GAALPA1MSGEX1DF.ITServices.sbc.com (135.50.89.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2044.4; Mon, 21 Sep 2020 11:26:37 -0400 Received: from GAALPA1MSGEX1DD.ITServices.sbc.com ([135.50.89.117]) by GAALPA1MSGEX1DD.ITServices.sbc.com ([135.50.89.117]) with mapi id 15.01.2044.004; Mon, 21 Sep 2020 11:26:37 -0400 From: "MEHAN, MUNISH" To: Patrick Fu , "dev@dpdk.org" CC: "thomas@monjalon.net" , "ferruh.yigit@intel.com" , "maxime.coquelin@redhat.com" , "bruce.richardson@intel.com" , "zhihong.wang@intel.com" , "liang-min.wang@intel.com" , "konstantin.ananyev@intel.com" , "timothy.miskell@intel.com" , "cunming.liang@intel.com" Thread-Topic: [PATCH v1 1/3] lib/mirror: introduce traffic mirror API Thread-Index: AQHWhkAmyDn6UHd4hk6zp4R2cr4/pqlzSq8A Date: Mon, 21 Sep 2020 15:26:36 +0000 Message-ID: References: <20200909002247.864844-1-patrick.fu@intel.com> <20200909002247.864844-2-patrick.fu@intel.com> In-Reply-To: <20200909002247.864844-2-patrick.fu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.1e.0.191013 x-originating-ip: [68.90.105.30] x-tm-snts-smtp: A9D1D11735D86DAC1884047C0A6FF9F230D041D99B862B479BDDB73EF72583472 Content-Type: text/plain; charset="utf-8" Content-ID: <2C5F61FD67FFBA49B0D9BECAA49FADB5@LOCAL> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-09-21_05:2020-09-21, 2020-09-21 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 malwarescore=0 impostorscore=0 bulkscore=0 adultscore=0 mlxlogscore=999 lowpriorityscore=0 priorityscore=1501 suspectscore=0 spamscore=0 phishscore=0 mlxscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009210111 X-Mailman-Approved-At: Fri, 25 Sep 2020 11:16:03 +0200 Subject: Re: [dpdk-dev] [PATCH v1 1/3] lib/mirror: introduce traffic mirror API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" QWNrZWQtYnk6IE1FSEFOLCBNVU5JU0ggPG1tNjAyMUBhdHQuY29tPg0KDQoNCu+7v09uIDkvOC8y MCwgODoyOCBQTSwgIlBhdHJpY2sgRnUiIDxwYXRyaWNrLmZ1QGludGVsLmNvbT4gd3JvdGU6DQoN CiAgICBOZXR3b3JrIFRlc3QgQWNjZXNzIFBvaW50IChUQVApIGlzIHRoZSBuZXR3b3JrIG1vbml0 b3Jpbmcgc2VydmljZQ0KICAgIGNvbW1vbmx5IGFkb3RwdGVkIGluIFNETi1iYXNlZCBuZXR3b3Jr IGluZnJhc3RydWN0dXJlcy4gV2hlbiBWTXMgYXJlDQogICAgaW50ZXItY29ubmVjdGVkIG92ZXIg dmlydHVhbCBzd2l0Y2hlcywgVEFQIHJlcXVpcmVzIHZTd2l0Y2ggdG8gbWlycm9yDQogICAgb3V0 IG5ldHdvcmsgdHJhZmZpY3MgZnJvbSBzcGVjaWZpYyB3b3JrbG9hZCBWTSBwb3J0cyB0byB0aGUg VEFQDQogICAgZGV2aWNlL1ZNIHBvcnRzLg0KICAgIA0KICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNl IDIgYSBuZXcgQVBJcyB0byBzdXBwb3J0IGhpZ2gtdGhyb3VnaHB1dCBwYWNrZXQNCiAgICBtaXJy b3Jpbmc6DQogICAgIC0gcnRlX21pcnJvcl9yZWdpc3RlcigpDQogICAgIC0gcnRlX21pcnJvcl91 bnJlZ2lzdGVyKCkNCiAgICBBcHBsaWNhdGlvbnMgdXNlIHRoZSBuZXcgQVBJIHRvIHNldHVwIHRo ZSBzb3VyY2UgdHJhZmZpYyBwb3J0IGFuZA0KICAgIHRoZSBtaXJyb3IgdHJhZmZpYyBwb3J0LiBQ YWNrZXRzIGZsb3dpbmcgb3ZlciB0aGUgcmVnaXN0ZXJlZA0KICAgIHNvdXJjZSBwb3J0cyB3aWxs IGJlIHRyYW5zbWl0ZWQgdG8gdGhlIG1pcnJvciBwb3J0IHdoZW4gcmVnaXN0cmF0aW9uDQogICAg c3VjY2VlZHMuDQogICAgDQogICAgU2lnbmVkLW9mZi1ieTogTGlhbmctbWluIFdhbmcgPGxpYW5n LW1pbi53YW5nQGludGVsLmNvbT4NCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIEZ1IDxwYXRy aWNrLmZ1QGludGVsLmNvbT4NCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW1vdGh5IE1pc2tlbGwgPHRp bW90aHkubWlza2VsbEBpbnRlbC5jb20+DQogICAgLS0tDQogICAgIGNvbmZpZy9jb21tb25fYmFz ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KICAgICBsaWIvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsNCiAgICAgbGliL2xpYnJ0ZV9taXJyb3IvTWFr ZWZpbGUgICAgICAgICAgICAgICB8ICAyMCArKw0KICAgICBsaWIvbGlicnRlX21pcnJvci9tZXNv bi5idWlsZCAgICAgICAgICAgIHwgICA2ICsNCiAgICAgbGliL2xpYnJ0ZV9taXJyb3IvcnRlX21p cnJvci5jICAgICAgICAgICB8IDI5NyArKysrKysrKysrKysrKysrKysrKysrKw0KICAgICBsaWIv bGlicnRlX21pcnJvci9ydGVfbWlycm9yLmggICAgICAgICAgIHwgMTExICsrKysrKysrKw0KICAg ICBsaWIvbGlicnRlX21pcnJvci9ydGVfbWlycm9yX3ZlcnNpb24ubWFwIHwgICA3ICsNCiAgICAg bGliL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KICAgICA4 IGZpbGVzIGNoYW5nZWQsIDQ0OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQogICAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX21pcnJvci9NYWtlZmlsZQ0KICAgICBjcmVhdGUg bW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9taXJyb3IvbWVzb24uYnVpbGQNCiAgICAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYi9saWJydGVfbWlycm9yL3J0ZV9taXJyb3IuYw0KICAgICBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliL2xpYnJ0ZV9taXJyb3IvcnRlX21pcnJvci5oDQogICAgIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsaWIvbGlicnRlX21pcnJvci9ydGVfbWlycm9yX3ZlcnNpb24ubWFwDQogICAgDQog ICAgZGlmZiAtLWdpdCBhL2NvbmZpZy9jb21tb25fYmFzZSBiL2NvbmZpZy9jb21tb25fYmFzZQ0K ICAgIGluZGV4IGZiZjBlZTcwYy4uNjAyMTdjYzkzIDEwMDY0NA0KICAgIC0tLSBhL2NvbmZpZy9j b21tb25fYmFzZQ0KICAgICsrKyBiL2NvbmZpZy9jb21tb25fYmFzZQ0KICAgIEBAIC0xMTEwLDYg KzExMTAsMTEgQEAgQ09ORklHX1JURV9MSUJSVEVfR1JBUEhfU1RBVFM9eQ0KICAgICAjDQogICAg IENPTkZJR19SVEVfTElCUlRFX05PREU9eQ0KICAgICANCiAgICArIw0KICAgICsjIENvbXBpbGUg bGlicnRlX21pcnJvcg0KICAgICsjDQogICAgK0NPTkZJR19SVEVfTElCUlRFX01JUlJPUj15DQog ICAgKw0KICAgICAjDQogICAgICMgQ29tcGlsZSB0aGUgdGVzdCBhcHBsaWNhdGlvbg0KICAgICAj DQogICAgZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQ0KICAgIGluZGV4 IDhmNWI2OGEyZC4uMjQxNzVkZDk4IDEwMDY0NA0KICAgIC0tLSBhL2xpYi9NYWtlZmlsZQ0KICAg ICsrKyBiL2xpYi9NYWtlZmlsZQ0KICAgIEBAIC0xMTIsNiArMTEyLDggQEAgRElSUy0kKENPTkZJ R19SVEVfTElCUlRFX1JFT1JERVIpICs9IGxpYnJ0ZV9yZW9yZGVyDQogICAgIERFUERJUlMtbGli cnRlX3Jlb3JkZXIgOj0gbGlicnRlX2VhbCBsaWJydGVfbWVtcG9vbCBsaWJydGVfbWJ1Zg0KICAg ICBESVJTLSQoQ09ORklHX1JURV9MSUJSVEVfUERVTVApICs9IGxpYnJ0ZV9wZHVtcA0KICAgICBE RVBESVJTLWxpYnJ0ZV9wZHVtcCA6PSBsaWJydGVfZWFsIGxpYnJ0ZV9tZW1wb29sIGxpYnJ0ZV9t YnVmIGxpYnJ0ZV9ldGhkZXYNCiAgICArRElSUy0kKENPTkZJR19SVEVfTElCUlRFX01JUlJPUikg Kz0gbGlicnRlX21pcnJvcg0KICAgICtERVBESVJTLWxpYnJ0ZV9taXJyb3IgOj0gbGlicnRlX2Vh bCBsaWJydGVfbWVtcG9vbCBsaWJydGVfbWJ1ZiBsaWJydGVfZXRoZGV2DQogICAgIERJUlMtJChD T05GSUdfUlRFX0xJQlJURV9HU08pICs9IGxpYnJ0ZV9nc28NCiAgICAgREVQRElSUy1saWJydGVf Z3NvIDo9IGxpYnJ0ZV9lYWwgbGlicnRlX21idWYgbGlicnRlX2V0aGRldiBsaWJydGVfbmV0DQog ICAgIERFUERJUlMtbGlicnRlX2dzbyArPSBsaWJydGVfbWVtcG9vbA0KICAgIGRpZmYgLS1naXQg YS9saWIvbGlicnRlX21pcnJvci9NYWtlZmlsZSBiL2xpYi9saWJydGVfbWlycm9yL01ha2VmaWxl DQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwMDAuLjNjYTFkYjcz NA0KICAgIC0tLSAvZGV2L251bGwNCiAgICArKysgYi9saWIvbGlicnRlX21pcnJvci9NYWtlZmls ZQ0KICAgIEBAIC0wLDAgKzEsMjAgQEANCiAgICArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTMtQ2xhdXNlDQogICAgKyMgQ29weXJpZ2h0KGMpIDIwMjAtIEludGVsIENvcnBvcmF0aW9u DQogICAgKw0KICAgICtpbmNsdWRlICQoUlRFX1NESykvbWsvcnRlLnZhcnMubWsNCiAgICArDQog ICAgKyMgbGlicmFyeSBuYW1lDQogICAgK0xJQiA9IGxpYnJ0ZV9taXJyb3IuYQ0KICAgICsNCiAg ICArQ0ZMQUdTICs9ICQoV0VSUk9SX0ZMQUdTKSAtSSQoU1JDRElSKSAtTzMNCiAgICArTERMSUJT ICs9IC1scnRlX2VhbCAtbHJ0ZV9tYnVmIC1scnRlX21lbXBvb2wgLWxydGVfZXRoZGV2DQogICAg Kw0KICAgICtFWFBPUlRfTUFQIDo9IHJ0ZV9taXJyb3JfdmVyc2lvbi5tYXANCiAgICArDQogICAg KyMgYWxsIHNvdXJjZSBhcmUgc3RvcmVkIGluIFNSQ1MteQ0KICAgICtTUkNTLSQoQ09ORklHX1JU RV9MSUJSVEVfTUlSUk9SKSA6PSBydGVfbWlycm9yLmMNCiAgICArDQogICAgKyMgaW5zdGFsbCB0 aGlzIGhlYWRlciBmaWxlDQogICAgK1NZTUxJTkstJChDT05GSUdfUlRFX0xJQlJURV9NSVJST1Ip LWluY2x1ZGUgOj0gcnRlX21pcnJvci5oDQogICAgKw0KICAgICtpbmNsdWRlICQoUlRFX1NESykv bWsvcnRlLmxpYi5taw0KICAgIGRpZmYgLS1naXQgYS9saWIvbGlicnRlX21pcnJvci9tZXNvbi5i dWlsZCBiL2xpYi9saWJydGVfbWlycm9yL21lc29uLmJ1aWxkDQogICAgbmV3IGZpbGUgbW9kZSAx MDA2NDQNCiAgICBpbmRleCAwMDAwMDAwMDAuLjJkMGJhMGVkMg0KICAgIC0tLSAvZGV2L251bGwN CiAgICArKysgYi9saWIvbGlicnRlX21pcnJvci9tZXNvbi5idWlsZA0KICAgIEBAIC0wLDAgKzEs NiBAQA0KICAgICsjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCiAgICAr IyBDb3B5cmlnaHQoYykgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbg0KICAgICsNCiAgICArc291cmNl cyA9IGZpbGVzKCdydGVfbWlycm9yLmMnKQ0KICAgICtoZWFkZXJzID0gZmlsZXMoJ3J0ZV9taXJy b3IuaCcpDQogICAgK2RlcHMgKz0gWydldGhkZXYnXQ0KICAgIGRpZmYgLS1naXQgYS9saWIvbGli cnRlX21pcnJvci9ydGVfbWlycm9yLmMgYi9saWIvbGlicnRlX21pcnJvci9ydGVfbWlycm9yLmMN CiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgIGluZGV4IDAwMDAwMDAwMC4uZjJhODU5NzZh DQogICAgLS0tIC9kZXYvbnVsbA0KICAgICsrKyBiL2xpYi9saWJydGVfbWlycm9yL3J0ZV9taXJy b3IuYw0KICAgIEBAIC0wLDAgKzEsMjk3IEBADQogICAgKy8qIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMy1DbGF1c2UNCiAgICArICogQ29weXJpZ2h0KGMpIDIwMjAtIEludGVsIENvcnBv cmF0aW9uDQogICAgKyAqLw0KICAgICsNCiAgICArI2luY2x1ZGUgPHJ0ZV9tZW1jcHkuaD4NCiAg ICArI2luY2x1ZGUgPHJ0ZV9tYnVmLmg+DQogICAgKyNpbmNsdWRlIDxydGVfZXRoZGV2Lmg+DQog ICAgKyNpbmNsdWRlIDxydGVfbG9nLmg+DQogICAgKyNpbmNsdWRlIDxydGVfZXJybm8uaD4NCiAg ICArDQogICAgKyNpbmNsdWRlICJydGVfbWlycm9yLmgiDQogICAgKw0KICAgICsvKiBNYWNybyBm b3IgcHJpbnRpbmcgdXNpbmcgUlRFX0xPRyAqLw0KICAgICtleHRlcm4gaW50IG1pcnJvcl9sb2d0 eXBlOw0KICAgICsjZGVmaW5lIE1JUlJPUl9MT0cobGV2ZWwsIGZtdCwgYXJncy4uLikJCQkJXA0K ICAgICsJcnRlX2xvZyhSVEVfTE9HXyAjIyBsZXZlbCwgbWlycm9yX2xvZ3R5cGUsICIlcygpOiAi IGZtdCwJXA0KICAgICsJCV9fZnVuY19fLCAjIyBhcmdzKQ0KICAgICsNCiAgICArI2RlZmluZSBN QUNfQUREUl9NQVAgICAgICAgICAgIDB4MDAwMEZGRkZGRkZGRkZGRlVMTA0KICAgICsjZGVmaW5l IFZMQU5fSU5TRVJUX0ZMQUcgICAgICAgKFBLVF9UWF9WTEFOX1BLVCkNCiAgICArI2RlZmluZSBp c19tYWNfYWRkcl9tYXRjaChhLCBiKSAoKChhXmIpJk1BQ19BRERSX01BUCkgPT0gMCkNCiAgICAr I2RlZmluZSBJTklUX01JUlJPUl9EQl9TSVpFICAgIDgNCiAgICArI2RlZmluZSBJTlZBTElEX1BP UlRfSUQgICAgICAgIDB4RkZGRg0KICAgICsjZGVmaW5lIFNSQ19NQUNfT0ZGU0VUICAgICAgICAg Ng0KICAgICsjZGVmaW5lIERTVF9NQUNfT0ZGU0VUICAgICAgICAgMA0KICAgICsNCiAgICArc3Rh dGljIGludCBtaXJyb3JfcG9ydF9kYl9zaXplOw0KICAgICtzdGF0aWMgaW50IG1pcnJvcl9wb3J0 X3VzZWQ7DQogICAgK3N0YXRpYyBzdHJ1Y3QgcnRlX21pcnJvcl9vZmZsb2FkX3BvcnQgKm1pcnJv cl9wb3J0X2RiOw0KICAgICsNCiAgICArc3RhdGljIGludA0KICAgICtydGVfbWlycm9yX3BhcmFt X2NvcHkoc3RydWN0IHJ0ZV9taXJyb3JfcGFyYW0gKmRzdCwNCiAgICArCXN0cnVjdCBydGVfbWly cm9yX3BhcmFtICpzcmMpDQogICAgK3sNCiAgICArCXZvaWQgKmV4dHJhX2RhdGE7DQogICAgKw0K ICAgICsJbWVtY3B5KGRzdCwgc3JjLCBzaXplb2Yoc3RydWN0IHJ0ZV9taXJyb3JfcGFyYW0pKTsN CiAgICArDQogICAgKwlpZiAoc3JjLT5leHRyYV9kYXRhX3NpemUpIHsNCiAgICArCQlleHRyYV9k YXRhID0gbWFsbG9jKHNyYy0+ZXh0cmFfZGF0YV9zaXplKTsNCiAgICArCQlpZiAoIWV4dHJhX2Rh dGEpIHsNCiAgICArCQkJTUlSUk9SX0xPRyhFUlIsICJPdXQgb2YgbWVtb3J5ICEhIVxuIik7DQog ICAgKwkJCXJldHVybiAtMTsNCiAgICArCQl9DQogICAgKwkJbWVtY3B5KGV4dHJhX2RhdGEsIHNy Yy0+ZXh0cmFfZGF0YSwgc3JjLT5leHRyYV9kYXRhX3NpemUpOw0KICAgICsNCiAgICArCQlkc3Qt PmV4dHJhX2RhdGEgPSBleHRyYV9kYXRhOw0KICAgICsJfSBlbHNlDQogICAgKwkJZHN0LT5leHRy YV9kYXRhID0gTlVMTDsNCiAgICArCXJldHVybiAwOw0KICAgICt9DQogICAgKw0KICAgICtzdGF0 aWMgc3RydWN0IHJ0ZV9taXJyb3Jfb2ZmbG9hZF9wb3J0Kg0KICAgICttaXJyb3JfZGF0YV9maW5k KHVpbnQxNl90IHBvcnRfaWQpDQogICAgK3sNCiAgICArCWludCBpOw0KICAgICsNCiAgICArCWlm IChtaXJyb3JfcG9ydF9kYiA9PSBOVUxMKQ0KICAgICsJCXJldHVybiBOVUxMOw0KICAgICsJZm9y IChpID0gMDsgaSA8IG1pcnJvcl9wb3J0X2RiX3NpemU7IGkrKykgew0KICAgICsJCWlmIChwb3J0 X2lkID09IG1pcnJvcl9wb3J0X2RiW2ldLnBvcnRfaWQpDQogICAgKwkJCXJldHVybiAmbWlycm9y X3BvcnRfZGJbaV07DQogICAgKwl9DQogICAgKwlyZXR1cm4gTlVMTDsNCiAgICArfQ0KICAgICsN CiAgICArc3RhdGljIHZvaWQNCiAgICArbWlycm9yX2RiX2luaXQoc3RydWN0IHJ0ZV9taXJyb3Jf b2ZmbG9hZF9wb3J0ICpkYiwgaW50IHNpemUpDQogICAgK3sNCiAgICArCWludCBpOw0KICAgICsN CiAgICArCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsNCiAgICArCQltZW1zZXQoJmRiW2ld LCAwLCBzaXplb2Yoc3RydWN0IHJ0ZV9taXJyb3Jfb2ZmbG9hZF9wb3J0KSk7DQogICAgKwkJZGJb aV0ucG9ydF9pZCA9IElOVkFMSURfUE9SVF9JRDsNCiAgICArCX0NCiAgICArfQ0KICAgICsNCiAg ICArLyogRG91YmxlIHRoZSBkYiBzaXplIHdoZW4gaXQgcnVucyBvdXQgb2Ygc3BhY2UgKi8NCiAg ICArc3RhdGljIGludA0KICAgICttaXJyb3JfZGJfcmVzaXplKHZvaWQpDQogICAgK3sNCiAgICAr CWludCBuZXdfc2l6ZSA9IDIqbWlycm9yX3BvcnRfZGJfc2l6ZTsNCiAgICArCXN0cnVjdCBydGVf bWlycm9yX29mZmxvYWRfcG9ydCAqbmV3X2RiID0gbWFsbG9jKA0KICAgICsJCXNpemVvZihzdHJ1 Y3QgcnRlX21pcnJvcl9vZmZsb2FkX3BvcnQpKm5ld19zaXplKTsNCiAgICArDQogICAgKwlpZiAo bmV3X2RiID09IE5VTEwpIHsNCiAgICArCQlNSVJST1JfTE9HKEVSUiwgIk91dCBvZiBtZW1vcnkh ISFcbiIpOw0KICAgICsJCXJldHVybiAtMTsNCiAgICArCX0NCiAgICArDQogICAgKwltZW1jcHko bmV3X2RiLCBtaXJyb3JfcG9ydF9kYiwgc2l6ZW9mKHN0cnVjdCBydGVfbWlycm9yX29mZmxvYWRf cG9ydCkNCiAgICArCQkqbWlycm9yX3BvcnRfZGJfc2l6ZSk7DQogICAgKwltaXJyb3JfZGJfaW5p dCgmbmV3X2RiW21pcnJvcl9wb3J0X2RiX3NpemVdLCBtaXJyb3JfcG9ydF9kYl9zaXplKTsNCiAg ICArCW1pcnJvcl9wb3J0X2RiX3NpemUgPSBuZXdfc2l6ZTsNCiAgICArCW1pcnJvcl9wb3J0X2Ri ID0gbmV3X2RiOw0KICAgICsNCiAgICArCXJldHVybiAwOw0KICAgICt9DQogICAgKw0KICAgICsv KiByZWxlYXNlIGRiIHdoZW4gdXNlZCBjb3VudCBkcm9wIHRvIDAgKi8NCiAgICArc3RhdGljIHZv aWQNCiAgICArbWlycm9yX2RhdGFfcmVtb3ZlKHVpbnQxNl90IHBvcnRfaWQsIGludCB0eCkNCiAg ICArew0KICAgICsJc3RydWN0IHJ0ZV9taXJyb3Jfb2ZmbG9hZF9wb3J0ICp0YXJnZXQgPSBtaXJy b3JfZGF0YV9maW5kKHBvcnRfaWQpOw0KICAgICsNCiAgICArCWlmICghdGFyZ2V0KQ0KICAgICsJ CU1JUlJPUl9MT0coRVJSLCAiQXR0ZW1wdCB0byByZW1vdmUgdW5zYXZlZCBwb3J0LCAiDQogICAg KwkJCSIlZCwgJXMgY2FsbGJhY2tcbiIsIHBvcnRfaWQsIHR4PyJ0eCIgOiAicngiKTsNCiAgICAr DQogICAgKwlpZiAodHgpDQogICAgKwkJbWVtc2V0KCZ0YXJnZXQtPnR4LCAwLCBzaXplb2Yoc3Ry dWN0IHJ0ZV9taXJyb3JfcGFyYW0pKTsNCiAgICArCWVsc2UNCiAgICArCQltZW1zZXQoJnRhcmdl dC0+cngsIDAsIHNpemVvZihzdHJ1Y3QgcnRlX21pcnJvcl9wYXJhbSkpOw0KICAgICsNCiAgICAr CWlmICgodGFyZ2V0LT5yeC5taXJyb3JfY2IgPT0gTlVMTCkgJiYNCiAgICArCQkodGFyZ2V0LT50 eC5taXJyb3JfY2IgPT0gTlVMTCkpIHsNCiAgICArCQl0YXJnZXQtPnBvcnRfaWQgPSBJTlZBTElE X1BPUlRfSUQ7DQogICAgKwkJbWlycm9yX3BvcnRfdXNlZC0tOw0KICAgICsJCWlmIChtaXJyb3Jf cG9ydF91c2VkID09IDApIHsNCiAgICArCQkJZnJlZShtaXJyb3JfcG9ydF9kYik7DQogICAgKwkJ CW1pcnJvcl9wb3J0X2RiID0gTlVMTDsNCiAgICArCQkJbWlycm9yX3BvcnRfZGJfc2l6ZSA9IDA7 DQogICAgKwkJfQ0KICAgICsJfQ0KICAgICt9DQogICAgKw0KICAgICtzdGF0aWMgc3RydWN0IHJ0 ZV9taXJyb3Jfb2ZmbG9hZF9wb3J0Kg0KICAgICttaXJyb3JfZGF0YV9hZGQodWludDE2X3QgcG9y dF9pZCwgaW50IHR4LA0KICAgICsJCXN0cnVjdCBydGVfbWlycm9yX3BhcmFtICpuZXdfcGFyYW0p DQogICAgK3sNCiAgICArCXN0cnVjdCBydGVfbWlycm9yX29mZmxvYWRfcG9ydCAqdGFyZ2V0ID0g TlVMTDsNCiAgICArCXN0cnVjdCBydGVfbWlycm9yX3BhcmFtICpwYXJhbTsNCiAgICArCWludCBp Ow0KICAgICsNCiAgICArCWlmICghbWlycm9yX3BvcnRfZGIpIHsNCiAgICArCQltaXJyb3JfcG9y dF9kYl9zaXplID0gSU5JVF9NSVJST1JfREJfU0laRTsNCiAgICArCQltaXJyb3JfcG9ydF9kYiA9 IG1hbGxvYyhzaXplb2Yoc3RydWN0IHJ0ZV9taXJyb3Jfb2ZmbG9hZF9wb3J0KSoNCiAgICArCQkJ bWlycm9yX3BvcnRfZGJfc2l6ZSk7DQogICAgKwkJaWYgKCFtaXJyb3JfcG9ydF9kYikgew0KICAg ICsJCQlNSVJST1JfTE9HKEVSUiwgIk91dCBvZiBtZW1vcnkhISFcbiIpOw0KICAgICsJCQlyZXR1 cm4gTlVMTDsNCiAgICArCQl9DQogICAgKwkJbWlycm9yX2RiX2luaXQobWlycm9yX3BvcnRfZGIs IG1pcnJvcl9wb3J0X2RiX3NpemUpOw0KICAgICsJfQ0KICAgICsJdGFyZ2V0ID0gbWlycm9yX2Rh dGFfZmluZChwb3J0X2lkKTsNCiAgICArCWlmICh0YXJnZXQpIHsNCiAgICArCQlpZiAodHgpIHsN CiAgICArCQkJaWYgKHRhcmdldC0+dHgubWlycm9yX2NiKSB7DQogICAgKwkJCQlNSVJST1JfTE9H KEVSUiwgIkF0dGVtcHQgdG8gYWRkIGluZ3Jlc3MgbWlycm9yICINCiAgICArCQkJCQkib2ZmbG9h ZGluZyBvbiBwb3J0LCAlZCwgIg0KICAgICsJCQkJCSJ3aGlsZSBvbmUgaXMgb3V0c3RhbmRpbmdc biIsIHBvcnRfaWQpOw0KICAgICsJCQkJcmV0dXJuIHRhcmdldDsNCiAgICArCQkJfQ0KICAgICsN CiAgICArCQkJaWYgKHJ0ZV9taXJyb3JfcGFyYW1fY29weSgmdGFyZ2V0LT50eCwgbmV3X3BhcmFt KSkNCiAgICArCQkJCXJldHVybiBOVUxMOw0KICAgICsNCiAgICArCQl9IGVsc2Ugew0KICAgICsJ CQlpZiAodGFyZ2V0LT5yeC5taXJyb3JfY2IpIHsNCiAgICArCQkJCU1JUlJPUl9MT0coRVJSLCAi QXR0ZW1wdCB0byBhZGQgZWdyZXNzIG1pcnJvciAiDQogICAgKwkJCQkJIm9mZmxvYWRpbmcgb24g cG9ydCwgJWQsICINCiAgICArCQkJCQkid2hpbGUgb25lIGlzIG91dHN0YW5kaW5nXG4iLCBwb3J0 X2lkKTsNCiAgICArCQkJCXJldHVybiB0YXJnZXQ7DQogICAgKwkJCX0NCiAgICArDQogICAgKwkJ CWlmIChydGVfbWlycm9yX3BhcmFtX2NvcHkoJnRhcmdldC0+cngsIG5ld19wYXJhbSkpDQogICAg KwkJCQlyZXR1cm4gTlVMTDsNCiAgICArCQl9DQogICAgKwl9IGVsc2Ugew0KICAgICsJCS8qIGZp bmQgYW4gdW51c2VkIHNwb3Qgb24gZGIgKi8NCiAgICArCQlmb3IgKGkgPSAwOyBpIDwgbWlycm9y X3BvcnRfZGJfc2l6ZTsgaSsrKSB7DQogICAgKwkJCWlmIChtaXJyb3JfcG9ydF9kYltpXS5wb3J0 X2lkID09IElOVkFMSURfUE9SVF9JRCkNCiAgICArCQkJCWJyZWFrOw0KICAgICsJCX0NCiAgICAr CQlpZiAoaSA9PSBtaXJyb3JfcG9ydF9kYl9zaXplKSB7DQogICAgKwkJCWlmIChtaXJyb3JfZGJf cmVzaXplKCkpDQogICAgKwkJCQlyZXR1cm4gTlVMTDsNCiAgICArCQl9DQogICAgKw0KICAgICsJ CXBhcmFtID0gdHggPyAmbWlycm9yX3BvcnRfZGJbaV0udHggOiAmbWlycm9yX3BvcnRfZGJbaV0u cng7DQogICAgKwkJaWYgKHJ0ZV9taXJyb3JfcGFyYW1fY29weShwYXJhbSwgbmV3X3BhcmFtKSkN CiAgICArCQkJcmV0dXJuIE5VTEw7DQogICAgKw0KICAgICsJCXRhcmdldCA9ICZtaXJyb3JfcG9y dF9kYltpXTsNCiAgICArCQl0YXJnZXQtPnBvcnRfaWQgPSBwb3J0X2lkOw0KICAgICsJCW1pcnJv cl9wb3J0X3VzZWQrKzsNCiAgICArCX0NCiAgICArCXJldHVybiB0YXJnZXQ7DQogICAgK30NCiAg ICArDQogICAgK3N0YXRpYyBpbmxpbmUgdm9pZA0KICAgICttaXJyb3JfcGt0X3VwZGF0ZShzdHJ1 Y3QgcnRlX21idWYgKnBrdCwgdWludDE2X3QgZHN0X3ZsYW5faWQpDQogICAgK3sNCiAgICArCXBr dC0+b2xfZmxhZ3MgfD0gVkxBTl9JTlNFUlRfRkxBRzsNCiAgICArCXBrdC0+dmxhbl90Y2kgPSBk c3Rfdmxhbl9pZDsNCiAgICArCXJ0ZV9tYnVmX3JlZmNudF91cGRhdGUocGt0LCAxKTsNCiAgICAr fQ0KICAgICsNCiAgICAraW50DQogICAgK3J0ZV9taXJyb3Jfb2ZmbG9hZF9yZWdpc3Rlcih1aW50 MTZfdCBzcmNfcG9ydCwNCiAgICArCQlzdHJ1Y3QgcnRlX21pcnJvcl9wYXJhbSAqcGFyYW0sIGlu dCB0eF9jYikNCiAgICArew0KICAgICsJaW50IGk7DQogICAgKwlzdHJ1Y3QgcnRlX21pcnJvcl9v ZmZsb2FkX3BvcnQgKnBvcnRfaW5mbzsNCiAgICArCXN0cnVjdCBydGVfbWlycm9yX3BhcmFtICpk YXRhOw0KICAgICsJcnRlX3J4X2NhbGxiYWNrX2ZuIHJ4X2ZuID0gTlVMTDsNCiAgICArCXJ0ZV90 eF9jYWxsYmFja19mbiB0eF9mbiA9IE5VTEw7DQogICAgKw0KICAgICsNCiAgICArCXBvcnRfaW5m byA9IG1pcnJvcl9kYXRhX2FkZChzcmNfcG9ydCwgdHhfY2IsIHBhcmFtKTsNCiAgICArCWlmICgh cG9ydF9pbmZvKQ0KICAgICsJCXJldHVybiAtRUlOVkFMOw0KICAgICsNCiAgICArCWRhdGEgPSB0 eF9jYiA/ICZwb3J0X2luZm8tPnR4IDogJnBvcnRfaW5mby0+cng7DQogICAgKwlkYXRhLT5wa3Rf YnVmID0gTlVMTDsNCiAgICArCWRhdGEtPm1pcnJvcl9jYiA9IG1hbGxvYyhzaXplb2Yoc3RydWN0 IHJ0ZV9ldGhfcnh0eF9jYWxsYmFjICopICoNCiAgICArCQkJZGF0YS0+bl9zcmNfcXVldWUpOw0K ICAgICsJaWYgKCFkYXRhLT5taXJyb3JfY2IpIHsNCiAgICArCQlNSVJST1JfTE9HKEVSUiwgIk91 dCBvZiBtZW1vcnkgISEhXG4iKTsNCiAgICArCQlyZXR1cm4gLUVJTlZBTDsNCiAgICArCX0NCiAg ICArDQogICAgKwlzd2l0Y2ggKGRhdGEtPm1pcnJvcl90eXBlKSB7DQogICAgKwlkZWZhdWx0Og0K ICAgICsJCU1JUlJPUl9MT0coRVJSLCAiVW4tc3VwcG9ydGVkIG1pcnJvciBvZmZsb2FkaW5nIHR5 cGUhISFcbiIpOw0KICAgICsJCXJldHVybiAtRU5PVFNVUDsNCiAgICArCX0NCiAgICArDQogICAg KwlpZiAoZGF0YS0+bWlycm9yX3R5cGUgIT0gcnRlX21pcnJvcl90eXBlX3BvcnQpIHsNCiAgICAr CQlkYXRhLT5wa3RfYnVmID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgcnRlX21idWYgKikgKg0KICAg ICsJCQkJZGF0YS0+bWF4X2J1cnN0X3NpemUgKiBkYXRhLT5uX3NyY19xdWV1ZSk7DQogICAgKwkJ aWYgKCFkYXRhLT5wa3RfYnVmKSB7DQogICAgKwkJCVJURV9FVEhERVZfTE9HKEVSUiwgIk91dCBv ZiBtZW1vcnkgISEhIik7DQogICAgKwkJCXJldHVybiAtRUlOVkFMOw0KICAgICsJCX0NCiAgICAr CX0NCiAgICArDQogICAgKwlpZiAoIXR4X2NiKSB7DQogICAgKwkJZm9yIChpID0gMDsgaSA8IGRh dGEtPm5fc3JjX3F1ZXVlOyBpKyspIHsNCiAgICArCQkJZGF0YS0+bWlycm9yX2NiW2ldID0gcnRl X2V0aF9hZGRfcnhfY2FsbGJhY2soc3JjX3BvcnQsDQogICAgKwkJCQlpLCByeF9mbiwgZGF0YSk7 DQogICAgKwkJfQ0KICAgICsJfSBlbHNlIHsNCiAgICArCQlmb3IgKGkgPSAwOyBpIDwgZGF0YS0+ bl9zcmNfcXVldWU7IGkrKykgew0KICAgICsJCQlkYXRhLT5taXJyb3JfY2JbaV0gPSBydGVfZXRo X2FkZF90eF9jYWxsYmFjayhzcmNfcG9ydCwNCiAgICArCQkJCWksIHR4X2ZuLCBkYXRhKTsNCiAg ICArCQl9DQogICAgKwl9DQogICAgKw0KICAgICsJcmV0dXJuIDA7DQogICAgK30NCiAgICArDQog ICAgK2ludA0KICAgICtydGVfbWlycm9yX29mZmxvYWRfdW5yZWdpc3Rlcih1aW50MTZfdCBzcmNf cG9ydCwgaW50IHR4X2NiKQ0KICAgICt7DQogICAgKwkvKiByZWxlYXNlIGJvdGggY2IgYW5kIHBr dF9idWYgKi8NCiAgICArCWludCBpOw0KICAgICsJc3RydWN0IHJ0ZV9taXJyb3Jfb2ZmbG9hZF9w b3J0ICpwb3J0X2luZm87DQogICAgKwlzdHJ1Y3QgcnRlX21pcnJvcl9wYXJhbSAqZGF0YTsNCiAg ICArDQogICAgKwlwb3J0X2luZm8gPSBtaXJyb3JfZGF0YV9maW5kKHNyY19wb3J0KTsNCiAgICAr CWlmIChwb3J0X2luZm8gPT0gTlVMTCkgew0KICAgICsJCU1JUlJPUl9MT0coRVJSLCAiU291cmNl IHBvcnQgJWQgaXMgbm90IG9uIG91dHN0YW5kaW5nICINCiAgICArCQkJInBvcnQgbWlycm9yIGRi XG4iLCBzcmNfcG9ydCk7DQogICAgKwkJcmV0dXJuIC0xOw0KICAgICsJfQ0KICAgICsJZGF0YSA9 IHR4X2NiID8gJnBvcnRfaW5mby0+dHggOiAmcG9ydF9pbmZvLT5yeDsNCiAgICArDQogICAgKwlm b3IgKGkgPSAwOyBpIDwgZGF0YS0+bl9zcmNfcXVldWU7IGkrKykgew0KICAgICsJCWlmIChkYXRh LT5taXJyb3JfY2JbaV0pIHsNCiAgICArCQkJaWYgKHR4X2NiKQ0KICAgICsJCQkJcnRlX2V0aF9y ZW1vdmVfdHhfY2FsbGJhY2soc3JjX3BvcnQsDQogICAgKwkJCQkJCWksIGRhdGEtPm1pcnJvcl9j YltpXSk7DQogICAgKwkJCWVsc2UNCiAgICArCQkJCXJ0ZV9ldGhfcmVtb3ZlX3J4X2NhbGxiYWNr KHNyY19wb3J0LA0KICAgICsJCQkJCQlpLCBkYXRhLT5taXJyb3JfY2JbaV0pOw0KICAgICsJCX0N CiAgICArCQlkYXRhLT5taXJyb3JfY2JbaV0gPSAwOw0KICAgICsJfQ0KICAgICsJZnJlZShkYXRh LT5taXJyb3JfY2IpOw0KICAgICsNCiAgICArCWlmIChkYXRhLT5wa3RfYnVmKSB7DQogICAgKwkJ ZnJlZShkYXRhLT5wa3RfYnVmKTsNCiAgICArCQlkYXRhLT5wa3RfYnVmID0gTlVMTDsNCiAgICAr CX0NCiAgICArDQogICAgKwlpZiAoZGF0YS0+ZXh0cmFfZGF0YSkgew0KICAgICsJCWZyZWUoZGF0 YS0+ZXh0cmFfZGF0YSk7DQogICAgKwkJZGF0YS0+ZXh0cmFfZGF0YSA9IE5VTEw7DQogICAgKwkJ ZGF0YS0+ZXh0cmFfZGF0YV9zaXplID0gMDsNCiAgICArCX0NCiAgICArDQogICAgKwltaXJyb3Jf ZGF0YV9yZW1vdmUoc3JjX3BvcnQsIHR4X2NiKTsNCiAgICArCXJldHVybiAwOw0KICAgICt9DQog ICAgKw0KICAgICtSVEVfTE9HX1JFR0lTVEVSKG1pcnJvcl9sb2d0eXBlLCBsaWIubWlycm9yLCBO T1RJQ0UpOw0KICAgIGRpZmYgLS1naXQgYS9saWIvbGlicnRlX21pcnJvci9ydGVfbWlycm9yLmgg Yi9saWIvbGlicnRlX21pcnJvci9ydGVfbWlycm9yLmgNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KICAgIGluZGV4IDAwMDAwMDAwMC4uNzFmM2UxZWExDQogICAgLS0tIC9kZXYvbnVsbA0KICAg ICsrKyBiL2xpYi9saWJydGVfbWlycm9yL3J0ZV9taXJyb3IuaA0KICAgIEBAIC0wLDAgKzEsMTEx IEBADQogICAgKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCiAgICAr ICogQ29weXJpZ2h0KGMpIDIwMjAtIEludGVsIENvcnBvcmF0aW9uDQogICAgKyAqLw0KICAgICsN CiAgICArI2lmbmRlZiBfUlRFX01JUlJPUl9IXw0KICAgICsjZGVmaW5lIF9SVEVfTUlSUk9SX0hf DQogICAgKw0KICAgICsvKioNCiAgICArICogQGZpbGUNCiAgICArICogUlRFIG1pcnJvcg0KICAg ICsgKg0KICAgICsgKiBwYWNrZXQgbWlycm9yIG9mZmxvYWRpbmcgbGlicmFyeSB0byBwcm92aWRl IHBhY2tldCBtaXJyb3Jpbmcgc3VwcG9ydCBvbiBkcGRrLg0KICAgICsgKi8NCiAgICArDQogICAg KyNpbmNsdWRlIDxzdGRpbnQuaD4NCiAgICArI2luY2x1ZGUgPHJ0ZV9ldGhkZXZfY29yZS5oPg0K ICAgICsjaW5jbHVkZSA8cnRlX21idWZfY29yZS5oPg0KICAgICsjaW5jbHVkZSA8cnRlX3NwaW5s b2NrLmg+DQogICAgKw0KICAgICsjaWZkZWYgX19jcGx1c3BsdXMNCiAgICArZXh0ZXJuICJDIiB7 DQogICAgKyNlbmRpZg0KICAgICsNCiAgICArLyoqDQogICAgKyAqIEZ1bmN0aW9uIHR5cGUgdXNl ZCBmb3IgbWlycm9yZWQgcGFja2V0IGhlYWRlciBzY2FuLg0KICAgICsgKg0KICAgICsgKiBUaGUg Y2FsbGJhY2sgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGVhY2ggbWlycm9yZWQgcGFja2V0DQogICAg KyAqIHRvIGRldGVybWluYXRlIGlmIG1pcnJvciBjb25kaXRpb24gaXMgbWF0Y2guDQogICAgKyAq DQogICAgKyAqIEBwYXJhbSBwa3QNCiAgICArICogICBQb2ludGVyIHRvIG9uZSBwYWNrZXQgZGF0 YS4NCiAgICArICogQHBhcmFtIHVzZXJfcGFyYW0NCiAgICArICogICBUaGUgYXJiaXRyYXJ5IHVz ZXIgcGFyYW1ldGVyIHBhc3NlZCBpbiBieSB0aGUgYXBwbGljYXRpb24gd2hlbiB0aGUgY2FsbGJh Y2sNCiAgICArICogICB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkLg0KICAgICsgKiBAcmV0dXJu DQogICAgKyAqICAgT25lIGlmIHRoZSBjb25kaXRpb24gbWF0Y2hlcywgZWxzZSAwLg0KICAgICsg Ki8NCiAgICArdHlwZWRlZiBpbnQgKCpydGVfbWlycm9yX3NjYW5fZm4pKHN0cnVjdCBydGVfbWJ1 ZiAqcGt0LCB2b2lkICp1c2VyX3BhcmFtKTsNCiAgICArDQogICAgK3R5cGVkZWYgZW51bSB7DQog ICAgKwlydGVfbWlycm9yX3R5cGVfcG9ydCA9IDAsCS8qIHBvcnQgbWlycm9yICovDQogICAgKwly dGVfbWlycm9yX3R5cGVfZmxvd19tYWMsCS8qIG1hYyBiYXNlZCBmbG93IG1pcnJvciAqLw0KICAg ICsJcnRlX21pcnJvcl90eXBlX2Zsb3dfY3VzdG9tLAkvKiBjdXN0b20gZmxvdyBtaXJyb3IgKi8N CiAgICArCXJ0ZV9taXJyb3JfdHlwZV9pbnZhbGlkID0gMHhGRiwJLyogaW52YWxpZCBtaXJyb3Jf dHlwZSAqLw0KICAgICt9IHJ0ZV9taXJyb3JfdHlwZTsNCiAgICArDQogICAgK3N0cnVjdCBydGVf bWlycm9yX3BhcmFtIHsNCiAgICArCXVpbnQxNl90IGRzdF9wb3J0X2lkOw0KICAgICsJdWludDE2 X3QgZHN0X3ZsYW5faWQ7DQogICAgKwlydGVfc3BpbmxvY2tfdCAqbG9ja3M7DQogICAgKwlpbnQg bl9zcmNfcXVldWU7DQogICAgKwlpbnQgbl9kc3RfcXVldWU7DQogICAgKwlzdHJ1Y3QgcnRlX21i dWYgKipwa3RfYnVmOw0KICAgICsJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnh0eF9jYWxsYmFjayAq Km1pcnJvcl9jYjsNCiAgICArCXVuc2lnbmVkIGludCBtYXhfYnVyc3Rfc2l6ZTsNCiAgICArCXJ0 ZV9taXJyb3Jfc2Nhbl9mbiBjdXN0b21fc2NhbjsNCiAgICArCXJ0ZV9taXJyb3JfdHlwZSBtaXJy b3JfdHlwZTsNCiAgICArCXVuc2lnbmVkIGludCBleHRyYV9kYXRhX3NpemU7DQogICAgKwl2b2lk ICpleHRyYV9kYXRhOyAvKiBleHRyYSBtaXJyb3IgcGFyYW1ldGVyICovDQogICAgK307DQogICAg Kw0KICAgICtzdHJ1Y3QgcnRlX21pcnJvcl9vZmZsb2FkX3BvcnQgew0KICAgICsJdWludDE2X3Qg cG9ydF9pZDsNCiAgICArCXN0cnVjdCBydGVfbWlycm9yX3BhcmFtIHJ4Ow0KICAgICsJc3RydWN0 IHJ0ZV9taXJyb3JfcGFyYW0gdHg7DQogICAgK307DQogICAgKw0KICAgICsvKioNCiAgICArICog QWRkIGEgcG9ydCBtaXJyb3JpbmcgdmlhIHBvcnQgb2ZmbG9hZGluZw0KICAgICsgKg0KICAgICsg KiBUaGlzIGZ1bmN0aW9uIGFkZHMgdHJhZmZpYyAoaW5ncmVzcyBvciBlZ3Jlc3MpIG1pcnJvcmlu ZyBmcm9tDQogICAgKyAqIHRoZSBzcGVjaWZpZWQgcG9ydA0KICAgICsgKg0KICAgICsgKiBAcGFy YW0gc3JjX3BvcnQNCiAgICArICogICBUaGUgc291cmNlIHBvcnQgd2hlcmUgcG9ydCB0cmFmZmlj IGlzIHRvIGJlIGNhcHR1cmVkIGFuZCBzZW50IHRvDQogICAgKyAqICAgdGhlIG9mZmxvYWQgcG9y dC4NCiAgICArICogQHBhcmFtIHBhcmFtDQogICAgKyAqICAgVGhlIHBvcnQgbWlycm9yIG9mZmxv YWRpbmcgcGFyYW1ldGVycw0KICAgICsgKiBAcGFyYW0gdHhfY2INCiAgICArICogICAxOiByZWdp c3RlciB0eCBjYWxsYmFjazsgMDogcmVnaXN0ZXIgcnggY2FsbGJhY2sNCiAgICArICogQHJldHVy bg0KICAgICsgKiAgIDAgPSBzdWNjZXNzDQogICAgKyAqICAgTiA+IDAgYW55IGVycm9yIGVuY291 dGVyDQogICAgKyAqLw0KICAgICtfX3J0ZV9leHBlcmltZW50YWwNCiAgICAraW50IHJ0ZV9taXJy b3Jfb2ZmbG9hZF9yZWdpc3Rlcih1aW50MTZfdCBzcmNfcG9ydCwNCiAgICArCXN0cnVjdCBydGVf bWlycm9yX3BhcmFtICpwYXJhbSwgaW50IHR4X2NiKTsNCiAgICArDQogICAgKy8qKg0KICAgICsg KiBSZW1vdmUgYSBwb3J0IG1pcnJvcmluZyB2aWEgcG9ydCBvZmZsb2FkaW5nDQogICAgKyAqDQog ICAgKyAqIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0cmFmZmljIChpbmdyZXNzIG9yIGVncmVzcykg bWlycm9yaW5nIGZyb20NCiAgICArICogdGhlIHNwZWNpZmllZCBwb3J0DQogICAgKyAqDQogICAg KyAqIEBwYXJhbSBzcmNfcG9ydA0KICAgICsgKiAgIFRoZSBwb3J0LWlkIG9mIHNvdXJjZSBwb3J0 IHdoZXJlIHBvcnQgdHJhZmZpYyBpcyB0byBiZSBjYXB0dXJlZA0KICAgICsgKiAgIGFuZCBzZW50 IHRvIHRoZSBvZmZsb2FkIHBvcnQuDQogICAgKyAqIEBwYXJhbSB0eF9jYg0KICAgICsgKiAgIDE6 IHR4IGNhbGxiYWNrOyAwOiByeCBjYWxsYmFjaw0KICAgICsgKiBAcmV0dXJuDQogICAgKyAqICAg MCA9IHN1Y2Nlc3MNCiAgICArICogICBOID4gMCBhbnkgZXJyb3IgZW5jb3V0ZXINCiAgICArICov DQogICAgK19fcnRlX2V4cGVyaW1lbnRhbA0KICAgICtpbnQgcnRlX21pcnJvcl9vZmZsb2FkX3Vu cmVnaXN0ZXIodWludDE2X3Qgc3JjX3BvcnQsIGludCB0eF9jYik7DQogICAgKw0KICAgICsjaWZk ZWYgX19jcGx1c3BsdXMNCiAgICArfQ0KICAgICsjZW5kaWYNCiAgICArDQogICAgKyNlbmRpZiAv KiBfUlRFX1BEVU1QX0hfICovDQogICAgZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfbWlycm9yL3J0 ZV9taXJyb3JfdmVyc2lvbi5tYXAgYi9saWIvbGlicnRlX21pcnJvci9ydGVfbWlycm9yX3ZlcnNp b24ubWFwDQogICAgbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICBpbmRleCAwMDAwMDAwMDAuLmUw YTRkNjlkMQ0KICAgIC0tLSAvZGV2L251bGwNCiAgICArKysgYi9saWIvbGlicnRlX21pcnJvci9y dGVfbWlycm9yX3ZlcnNpb24ubWFwDQogICAgQEAgLTAsMCArMSw3IEBADQogICAgK0VYUEVSSU1F TlRBTCB7DQogICAgKwlnbG9iYWw6DQogICAgKw0KICAgICsJcnRlX21pcnJvcl9vZmZsb2FkX3Jl Z2lzdGVyOw0KICAgICsJcnRlX21pcnJvcl9vZmZsb2FkX3VucmVnaXN0ZXI7DQogICAgK307DQog ICAgKw0KICAgIGRpZmYgLS1naXQgYS9saWIvbWVzb24uYnVpbGQgYi9saWIvbWVzb24uYnVpbGQN CiAgICBpbmRleCAzODUyYzAxNTYuLjY2NzQ3NDlkZCAxMDA2NDQNCiAgICAtLS0gYS9saWIvbWVz b24uYnVpbGQNCiAgICArKysgYi9saWIvbWVzb24uYnVpbGQNCiAgICBAQCAtMjQsNyArMjQsNyBA QCBsaWJyYXJpZXMgPSBbDQogICAgIAknZGlzdHJpYnV0b3InLCAnZWZkJywgJ2V2ZW50ZGV2JywN CiAgICAgCSdncm8nLCAnZ3NvJywgJ2lwX2ZyYWcnLCAnam9ic3RhdHMnLA0KICAgICAJJ2tuaScs ICdsYXRlbmN5c3RhdHMnLCAnbHBtJywgJ21lbWJlcicsDQogICAgLQkncG93ZXInLCAncGR1bXAn LCAncmF3ZGV2JywgJ3JlZ2V4ZGV2JywNCiAgICArCSdwb3dlcicsICdwZHVtcCcsICdyYXdkZXYn LCAncmVnZXhkZXYnLCAnbWlycm9yJywNCiAgICAgCSdyaWInLCAncmVvcmRlcicsICdzY2hlZCcs ICdzZWN1cml0eScsICdzdGFjaycsICd2aG9zdCcsDQogICAgIAkjIGlwc2VjIGxpYiBkZXBlbmRz IG9uIG5ldCwgY3J5cHRvIGFuZCBzZWN1cml0eQ0KICAgICAJJ2lwc2VjJywNCiAgICAtLSANCiAg ICAyLjE4LjQNCiAgICANCiAgICANCg0K