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 DFE52A057D; Wed, 18 Mar 2020 21:58:24 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 81229FEB; Wed, 18 Mar 2020 21:58:24 +0100 (CET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2083.outbound.protection.outlook.com [40.107.20.83]) by dpdk.org (Postfix) with ESMTP id 07C80CF3 for ; Wed, 18 Mar 2020 21:58:22 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZBOdsqA7uiIiPi9Xy3RysH6smRC/MIl3r3WSqWkrk4/nHYa1j2HIUF8WFyihR7Q5f0oiYn9kkjRn82BdVgB+E+EF8Y3a0JFxpt6vePSivMi6i3WL2j+Ok9deQPzbVrWL5hzy0Oqr/s1YMHPEsb4Rc/d2jRcIpNTa/PsHfdYmOzqpkVpdHmEAlWLnNtgWidx7a0zvVfyvqicSYlMNF+QQgi1M4MWcAdrYOc966vBztFk5chloHU77mDDoEpeQ+GA5gHUYKc7cTX18uOfMnUKUngyOt9xiMRXFwNi1ULTqRdBfRyKEfmDquMwNS8L5Kwtud/wBZv5BPH46D3HvVm17Ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mc6UtXYPqVce/Z4XpNTCRIOaoRtU/SM7vKjm6/J4IdE=; b=dcViDt0KChtAg6unzdX4RpPG99QPPTfalppOf7puH5u1iO3XcIG5XRiNo6Y2wgpIXn4fDTgf3MX/3gKcbXo5KokEMSIcC46kbZJthzEUBbL6m41cmRCNu1dgeoNDj42BMie+6uSGBnX0c4lSQFP+ri4wr4JCJ3l2wL0+GEr2MatYhIPu+P9N+YVYW2gD+3ev44C2g/KwhcW7GXWTqg6Vs3qSRi2HQ8n5Zy63D/ZonAqRHSC0k/aZxq7Ao3FVciM9jjL4y8zXVICjfLb0a5Iyafg4bw6IKHOuoVKgGcv+kS7hdHdhkgLw5SouMXGzsKeyJE2pILiPbIujmmmTJa/qcw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mc6UtXYPqVce/Z4XpNTCRIOaoRtU/SM7vKjm6/J4IdE=; b=dYCyhxyOfqEiFHfJqwC/kdPp9ACnvtalmKHsTdT7gvkAglWrfh3BhBx854xovTQ+2mzqU5sK7JrwX4Yf00vOt6NpHYpn16iUjknWqw8kyMYBa4SBjn7cTrpC6K99N4kLJwMkGpewV38Yz7L1mU9KCtdVIR0hnDBO91I8IDjdxYo= Received: from AM6PR07MB4069.eurprd07.prod.outlook.com (52.134.116.150) by AM6PR07MB5142.eurprd07.prod.outlook.com (20.177.191.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.10; Wed, 18 Mar 2020 20:58:21 +0000 Received: from AM6PR07MB4069.eurprd07.prod.outlook.com ([fe80::3571:9cc1:f037:cd3c]) by AM6PR07MB4069.eurprd07.prod.outlook.com ([fe80::3571:9cc1:f037:cd3c%7]) with mapi id 15.20.2835.017; Wed, 18 Mar 2020 20:58:21 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: "jerinj@marvell.com" , Thomas Monjalon , Bruce Richardson , John McNamara , Marko Kovacevic , Sunil Kumar Kori CC: "dev@dpdk.org" , "david.marchand@redhat.com" Thread-Topic: [dpdk-dev] [PATCH v1 02/32] eal: define the public API for trace support Thread-Index: AQHV/VfnPVCpZYAnuU6EFknAIj9v5qhO1TeA Date: Wed, 18 Mar 2020 20:58:21 +0000 Message-ID: <8b318680-e291-5530-a52e-1f545e48e374@ericsson.com> References: <20200318190241.3150971-1-jerinj@marvell.com> <20200318190241.3150971-3-jerinj@marvell.com> In-Reply-To: <20200318190241.3150971-3-jerinj@marvell.com> Accept-Language: sv-SE, en-US Content-Language: sv-SE X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 authentication-results: spf=none (sender IP is ) smtp.mailfrom=mattias.ronnblom@ericsson.com; x-originating-ip: [95.205.7.115] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 36cddb86-09e8-4ced-0b42-08d7cb7f17b7 x-ms-traffictypediagnostic: AM6PR07MB5142: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 03468CBA43 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(136003)(366004)(39860400002)(346002)(376002)(199004)(54906003)(2616005)(4326008)(8936002)(110136005)(31686004)(2906002)(5660300002)(36756003)(6512007)(316002)(6486002)(31696002)(64756008)(6506007)(76116006)(26005)(8676002)(66946007)(478600001)(53546011)(66476007)(30864003)(66446008)(186003)(91956017)(85202003)(71200400001)(81156014)(66556008)(81166006)(85182001)(86362001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR07MB5142; H:AM6PR07MB4069.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jfAu8nnAV0NC8IN+ecaGfTI7hufhxvH5UTDPed9YOf6dWyUxl+2F2HKrB9UpBehZK7Msuz/Thy64tdhkrUCsl3GYanaBdx3vSBjzNnkpovuFNF+YQV1iKQysDmQtRhLONdvJgWt1Swgpr4AyJIZdAOb5nrygaAlKpyl0QCvVX86gM9kAzXBUL2fN5c0VbQjPM9jUm5uf5jbQecUKaq7rZ3iR6BAEb1VJkit3LoJZVkQNmeMBte3RHWEO+RWN9jEcjMju4uJ0U0zKqgjVk8x/ri2+WBgMu48goi86+3QMJ+Mkiv4o/KTuNFHth6fW1a/ON7bDHHs/Sz4eSlgZBBfyXb/wnz74L7NxK5ZB24tTyBZkD+IcMurW6elJQLSY4JJR7KSBMl5g+xTgWkHTYf1oUXGyp7f6qJEHUHLtyQPYDVPvk+BPjv5+d3jR8ZA6bUFo x-ms-exchange-antispam-messagedata: W+d25A4DUOngenZfvL7zQLieCwKNCfxdylMbYrmQpctjjD/O5fUJ1yjwQsM9U0Kznk1WmvJ0ONch9BWJFYNSF5j0bgJZ03KRiUF6MgONb1EP3RKAevXeN33a2J+iDpmwQJIshFAJVrD6AD9YoWqiuw== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <2308EC8AE8404D4696130B4644CB2AD6@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36cddb86-09e8-4ced-0b42-08d7cb7f17b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2020 20:58:21.2503 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Rs939GJGcWf/n/ulZ9IRhf1zslwnursPcOwR7R8uCPUQW9MxkZQK65WrNJeLzSErN1zm4VCg5uKVOo0dcb3SbqUt59/ZXgXS+DO5UEc+Wp8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR07MB5142 Subject: Re: [dpdk-dev] [PATCH v1 02/32] eal: define the public API for trace support 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" T24gMjAyMC0wMy0xOCAyMDowMiwgamVyaW5qQG1hcnZlbGwuY29tIHdyb3RlOg0KPiBGcm9tOiBK ZXJpbiBKYWNvYiA8amVyaW5qQG1hcnZlbGwuY29tPg0KPg0KPiBEZWZpbmUgdGhlIHB1YmxpYyBB UEkgZm9yIHRyYWNlIHN1cHBvcnQuDQo+IFRoaXMgcGF0Y2ggYWxzbyBhZGRzIHN1cHBvcnQgZm9y IHRoZSBidWlsZCBpbmZyYXN0cnVjdHVyZSBhbmQNCj4gdXBkYXRlIHRoZSBNQUlOVEFJTkVSUyBm aWxlIGZvciB0aGUgdHJhY2Ugc3Vic3lzdGVtLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBKZXJpbiBK YWNvYiA8amVyaW5qQG1hcnZlbGwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBTdW5pbCBLdW1hciBL b3JpIDxza29yaUBtYXJ2ZWxsLmNvbT4NCj4gLS0tDQo+ICAgTUFJTlRBSU5FUlMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKw0KPiAgIGNvbmZpZy9jb21tb25fYmFzZSAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4gICBjb25maWcvcnRlX2NvbmZpZy5oICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ICAgZG9jL2FwaS9kb3h5LWFwaS1pbmRleC5tZCAg ICAgICAgICAgICAgICAgfCAgIDMgKy0NCj4gICBsaWIvbGlicnRlX2VhbC9jb21tb24vTWFrZWZp bGUgICAgICAgICAgICB8ICAgMSArDQo+ICAgbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2VhbF9jb21t b25fdHJhY2UuYyAgfCAgIDYgKw0KPiAgIGxpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0 ZV90cmFjZS5oIHwgNTI1ICsrKysrKysrKysrKysrKysrKysrKysNCj4gICBsaWIvbGlicnRlX2Vh bC9jb21tb24vbWVzb24uYnVpbGQgICAgICAgICB8ICAgMiArDQo+ICAgbGliL2xpYnJ0ZV9lYWwv ZnJlZWJzZC9lYWwvTWFrZWZpbGUgICAgICAgfCAgIDEgKw0KPiAgIGxpYi9saWJydGVfZWFsL2xp bnV4L2VhbC9NYWtlZmlsZSAgICAgICAgIHwgICAxICsNCj4gICAxMCBmaWxlcyBjaGFuZ2VkLCA1 NDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBs aWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2NvbW1vbl90cmFjZS5jDQo+ICAgY3JlYXRlIG1vZGUg MTAwNjQ0IGxpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0ZV90cmFjZS5oDQo+DQo+IGRp ZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTDQo+IGluZGV4IGMzNzg1NTU0Zi4u NjNkODVjN2RhIDEwMDY0NA0KPiAtLS0gYS9NQUlOVEFJTkVSUw0KPiArKysgYi9NQUlOVEFJTkVS Uw0KPiBAQCAtMTk2LDYgKzE5NiwxMiBAQCBGOiBhcHAvdGVzdC90ZXN0X3N0cmluZ19mbnMuYw0K PiAgIEY6IGFwcC90ZXN0L3Rlc3RfdGFpbHEuYw0KPiAgIEY6IGFwcC90ZXN0L3Rlc3RfdmVyc2lv bi5jDQo+ICAgDQo+ICtUcmFjZQ0KPiArTTogSmVyaW4gSmFjb2IgPGplcmluakBtYXJ2ZWxsLmNv bT4NCj4gK006IFN1bmlsIEt1bWFyIEtvcmkgPHNrb3JpQG1hcnZlbGwuY29tPg0KPiArRjogbGli L2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX3RyYWNlKi5oDQo+ICtGOiBsaWIvbGlicnRl X2VhbC9jb21tb24vZWFsX2NvbW1vbl90cmFjZSouYw0KPiArDQo+ICAgTWVtb3J5IEFsbG9jYXRp b24NCj4gICBNOiBBbmF0b2x5IEJ1cmFrb3YgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+DQo+ ICAgRjogbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX2ZiYXJyYXkuaA0KPiBkaWZm IC0tZ2l0IGEvY29uZmlnL2NvbW1vbl9iYXNlIGIvY29uZmlnL2NvbW1vbl9iYXNlDQo+IGluZGV4 IDdjYTJmMjhiMS4uZWZjMTk1YWYyIDEwMDY0NA0KPiAtLS0gYS9jb25maWcvY29tbW9uX2Jhc2UN Cj4gKysrIGIvY29uZmlnL2NvbW1vbl9iYXNlDQo+IEBAIC05OSw2ICs5OSw3IEBAIENPTkZJR19S VEVfTUFYX01FTVpPTkU9MjU2MA0KPiAgIENPTkZJR19SVEVfTUFYX1RBSUxRPTMyDQo+ICAgQ09O RklHX1JURV9FTkFCTEVfQVNTRVJUPW4NCj4gICBDT05GSUdfUlRFX0xPR19EUF9MRVZFTD1SVEVf TE9HX0lORk8NCj4gK0NPTkZJR19SVEVfRU5BQkxFX1RSQUNFX0RQPW4NCj4gICBDT05GSUdfUlRF X0xPR19ISVNUT1JZPTI1Ng0KPiAgIENPTkZJR19SVEVfQkFDS1RSQUNFPXkNCj4gICBDT05GSUdf UlRFX0xJQkVBTF9VU0VfSFBFVD1uDQo+IGRpZmYgLS1naXQgYS9jb25maWcvcnRlX2NvbmZpZy5o IGIvY29uZmlnL3J0ZV9jb25maWcuaA0KPiBpbmRleCBkMzA3ODZiYzAuLjZiMjUwMjg4YyAxMDA2 NDQNCj4gLS0tIGEvY29uZmlnL3J0ZV9jb25maWcuaA0KPiArKysgYi9jb25maWcvcnRlX2NvbmZp Zy5oDQo+IEBAIC00Miw2ICs0Miw3IEBADQo+ICAgI2RlZmluZSBSVEVfTUFYX01FTVpPTkUgMjU2 MA0KPiAgICNkZWZpbmUgUlRFX01BWF9UQUlMUSAzMg0KPiAgICNkZWZpbmUgUlRFX0xPR19EUF9M RVZFTCBSVEVfTE9HX0lORk8NCj4gKyNkZWZpbmUgUlRFX0VOQUJMRV9UUkFDRV9EUCAwDQo+ICAg I2RlZmluZSBSVEVfQkFDS1RSQUNFIDENCj4gICAjZGVmaW5lIFJURV9NQVhfVkZJT19DT05UQUlO RVJTIDY0DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9kb2MvYXBpL2RveHktYXBpLWluZGV4Lm1kIGIv ZG9jL2FwaS9kb3h5LWFwaS1pbmRleC5tZA0KPiBpbmRleCBkZmY0OTZiZTAuLjE5MGYwY2NjMiAx MDA2NDQNCj4gLS0tIGEvZG9jL2FwaS9kb3h5LWFwaS1pbmRleC5tZA0KPiArKysgYi9kb2MvYXBp L2RveHktYXBpLWluZGV4Lm1kDQo+IEBAIC0xNzQsNyArMTc0LDggQEAgVGhlIHB1YmxpYyBBUEkg aGVhZGVycyBhcmUgZ3JvdXBlZCBieSB0b3BpY3M6DQo+ICAgICBbaGV4ZHVtcF0gICAgICAgICAg ICAoQHJlZiBydGVfaGV4ZHVtcC5oKSwNCj4gICAgIFtkZWJ1Z10gICAgICAgICAgICAgIChAcmVm IHJ0ZV9kZWJ1Zy5oKSwNCj4gICAgIFtsb2ddICAgICAgICAgICAgICAgIChAcmVmIHJ0ZV9sb2cu aCksDQo+IC0gIFtlcnJub10gICAgICAgICAgICAgIChAcmVmIHJ0ZV9lcnJuby5oKQ0KPiArICBb ZXJybm9dICAgICAgICAgICAgICAoQHJlZiBydGVfZXJybm8uaCksDQo+ICsgIFt0cmFjZV0gICAg ICAgICAgICAgIChAcmVmIHJ0ZV90cmFjZS5oKQ0KPiAgIA0KPiAgIC0gKiptaXNjKio6DQo+ICAg ICBbRUFMIGNvbmZpZ10gICAgICAgICAoQHJlZiBydGVfZWFsLmgpLA0KPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9lYWwvY29tbW9uL01ha2VmaWxlIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL01h a2VmaWxlDQo+IGluZGV4IGMyYzZkOTJjZC4uOTM4NGQ2ZjZlIDEwMDY0NA0KPiAtLS0gYS9saWIv bGlicnRlX2VhbC9jb21tb24vTWFrZWZpbGUNCj4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L01ha2VmaWxlDQo+IEBAIC05LDYgKzksNyBAQCBJTkMgKz0gcnRlX2RlYnVnLmggcnRlX2VhbC5o IHJ0ZV9lYWxfaW50ZXJydXB0cy5oDQo+ICAgSU5DICs9IHJ0ZV9lcnJuby5oIHJ0ZV9sYXVuY2gu aCBydGVfbGNvcmUuaA0KPiAgIElOQyArPSBydGVfbG9nLmggcnRlX21lbW9yeS5oIHJ0ZV9tZW16 b25lLmgNCj4gICBJTkMgKz0gcnRlX3Blcl9sY29yZS5oIHJ0ZV9yYW5kb20uaA0KPiArSU5DICs9 IHJ0ZV90cmFjZS5oDQo+ICAgSU5DICs9IHJ0ZV90YWlscS5oIHJ0ZV9pbnRlcnJ1cHRzLmggcnRl X2FsYXJtLmgNCj4gICBJTkMgKz0gcnRlX3N0cmluZ19mbnMuaCBydGVfdmVyc2lvbi5oDQo+ICAg SU5DICs9IHJ0ZV9lYWxfbWVtY29uZmlnLmgNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZWFs L2NvbW1vbi9lYWxfY29tbW9uX3RyYWNlLmMgYi9saWIvbGlicnRlX2VhbC9jb21tb24vZWFsX2Nv bW1vbl90cmFjZS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMC4u ZTE4YmExYzk1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9u L2VhbF9jb21tb25fdHJhY2UuYw0KPiBAQCAtMCwwICsxLDYgQEANCj4gKy8qIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChDKSAyMDIwIE1hcnZl bGwgSW50ZXJuYXRpb25hbCBMdGQuDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV90cmFj ZS5oPg0KPiArDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9y dGVfdHJhY2UuaCBiL2xpYi9saWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlL3J0ZV90cmFjZS5oDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMC4uZDAwOGI2NGYxDQo+IC0t LSAvZGV2L251bGwNCj4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvcnRlX3Ry YWNlLmgNCj4gQEAgLTAsMCArMSw1MjUgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChDKSAyMDIwIE1hcnZlbGwgSW50ZXJuYXRp b25hbCBMdGQuDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfUlRFX1RSQUNFX0hfDQo+ICsjZGVm aW5lIF9SVEVfVFJBQ0VfSF8NCj4gKw0KPiArLyoqDQo+ICsgKiBAZmlsZQ0KPiArICoNCj4gKyAq IFJURSBUcmFjZSBBUEkNCj4gKyAqDQo+ICsgKiBUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIHRyYWNl IEFQSSB0byBSVEUgYXBwbGljYXRpb25zLg0KPiArICoNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBA YiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UN Cj4gKyAqLw0KPiArDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK2V4dGVybiAiQyIgew0KPiAr I2VuZGlmDQo+ICsNCj4gKyNpbmNsdWRlIDxzdGRib29sLmg+DQo+ICsjaW5jbHVkZSA8c3RkaW8u aD4NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gKyNpbmNsdWRlIDxydGVfY29t cGF0Lmg+DQo+ICsNCj4gKy8qKiBUaGUgdHJhY2Ugb2JqZWN0LiBUaGUgdHJhY2UgQVBJcyBhcmUg YmFzZWQgb24gdGhpcyBvcGFxdWUgb2JqZWN0LiAqLw0KPiArdHlwZWRlZiB1aW50NjRfdCAqcnRl X3RyYWNlX3Q7DQoNCldvdWxkbid0IGEgZm9yd2FyZC1kZWNsYXJlZCBzdHJ1Y3QsIHdpdGggdGhl IGRlZmluaXRpb24gaGlkZGVuIGZyb20gdGhlIA0KdXNlciwgYmUgbW9yZSBhcHByb3ByaWF0ZT8g QXMgYSBib251cywgeW91J2xsIGdldCBzb21lIHR5cGUgY2hlY2tpbmcuDQoNCiJzdHJ1Y3QgcnRl X3RyYWNlOyIgaGVyZSBhbmQgInN0cnVjdCBydGVfdHJhY2UqIiBpbiBhbGwgdGhlIEFQSXMuIA0K InN0cnVjdCBydGVfdHJhY2UgeyB1aW50NjRfdCB2YWw7IH07IGluIHRoZSBpbXBsZW1lbnRhdGlv bi4gT3IganVzdCBjYXN0IA0KaXQgdG8gYSB1aW50NjRfdCAqLg0KDQp0eXBkZWY6aW5nIHBvaW50 ZXJzIGlzIGdlbmVyYWxseSBjb25zaWRlcmVkIGEgbm8tbm8sIGF0IGxlYXN0IGlmIHlvdSANCmZv bGxvdyB0aGUgTGludXgga2VybmVsIGNvZGluZyBjb252ZW50aW9ucy4NCg0KPiArDQo+ICsvKioN Cj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFu Z2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gKyAqDQo+ICsgKiBFbnVtZXJhdGUgdHJhY2UgbW9k ZSBvcGVyYXRpb24uDQo+ICsgKi8NCj4gK2VudW0gcnRlX3RyYWNlX21vZGVfZSB7DQo+ICsJLyoq DQo+ICsJICogSW4gdGhpcyBtb2RlLCBXaGVuIG5vIHNwYWNlIGxlZnQgaW4gdHJhY2UgYnVmZmVy LCB0aGUgc3Vic2VxdWVudA0KPiArCSAqIGV2ZW50cyBvdmVyd3JpdGUgdGhlIG9sZCBldmVudHMg aW4gdGhlIHRyYWNlIGJ1ZmZlci4NCj4gKwkgKi8NCj4gKwlSVEVfVFJBQ0VfTU9ERV9PVkVSV1JJ VEUsDQo+ICsJLyoqDQo+ICsJICogSW4gdGhpcyBtb2RlLCBXaGVuIG5vIHNwYWNlIGxlZnQgb24g dHJhY2UgYnVmZmVyLCB0aGUgc3Vic2VxdWVudA0KPiArCSAqIGV2ZW50cyBzaGFsbCBub3QgYmUg cmVjb3JkZWQgaW4gdGhlIHRyYWNlIGJ1ZmZlci4NCj4gKwkgKi8NCj4gKwlSVEVfVFJBQ0VfTU9E RV9ESVNDQVJELA0KPiArfTsNCg0KSGF2ZSB5b3UgY29uc2lkZXJlZCBoYXZpbmcgYSBibG9ja2lu ZyBtb2RlIGFzIHdlbGwsIHdoZXJlIHRoZSB0aHJlYWQgDQp3aWxsIGp1c3Qgd2FpdCBmb3Igc3Bh Y2UgdG8gYmUgZnJlZWQ/DQoNClJlbW92ZSB0aGUgIl9lIiBmcm9tIHRoZSBuYW1lLiAiZW51bSIg YWxyZWFkeSB0ZWxscyB1cyBpdCdzIGFuIGVudW1lcmF0aW9uLg0KDQo+ICsNCj4gKy8qKg0KPiAr ICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3 aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIFRlc3QgaWYgZ2xvYmFsIHRyYWNlIGlz IGVuYWJsZWQuDQo+ICsgKg0KPiArICogQHJldHVybg0KPiArICogICAgdHJ1ZSBpZiBnbG9iYWwg dHJhY2UgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KPiArICovDQo+ICtfX3J0ZV9leHBl cmltZW50YWwNCj4gK2Jvb2wgcnRlX3RyYWNlX2dsb2JhbF9pc19lbmFibGVkKHZvaWQpOw0KDQpN eSBpbXByZXNzaW9uIGlzIHRoYXQgRFBESyBkb2VzOg0KDQoNCl9fcnRlX2V4cGVyaW1lbnRhbCBi b29sDQoNCnJ0ZV90cmFjZV9nbG9iYWxfaXNfZW5hYmxlZCh2b2lkKTsNCg0KDQpOb3cgd2hlbiBJ IGNoZWNrIHRoZSBjb2RpbmcgY29udmVudGlvbnMsIHRoYXQncyBvbmx5IGZvciBmdW5jdGlvbiAN CmRlZmluaXRpb24uIFdoeSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBzaG91bGQgYmUgZGlm ZmVyZW50LCBJIGRvbid0IA0Ka25vdy4NCg0KPiArDQo+ICsvKioNCj4gKyAqIEB3YXJuaW5nDQo+ ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBu b3RpY2UNCj4gKyAqDQo+ICsgKiBUZXN0IGlmIGdsb2JhbCB0cmFjZSBpcyBkaXNhYmxlZC4NCj4g KyAqDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgICB0cnVlIGlmIGdsb2JhbCB0cmFjZSBpcyBkaXNh YmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4g K2Jvb2wgcnRlX3RyYWNlX2dsb2JhbF9pc19kaXNhYmxlZCh2b2lkKTsNCj4gKw0KPiArLyoqDQo+ ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdl IHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0KPiArICogVGVzdCBpZiBhIGdpdmVuIHRyYWNl IGlzIGludmFsaWQuDQo+ICsgKiBAcGFyYW0gdHJhY2UNCj4gKyAqICAgIFRoZSB0cmFjZSBvYmpl Y3QuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgICB0cnVlIGlmIGdsb2JhbCB0cmFjZSBpcyBpbnZh bGlkLCBmYWxzZSBvdGhlcndpc2UuDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAr Ym9vbCBydGVfdHJhY2VfaXNfaWRfaW52YWxpZChydGVfdHJhY2VfdCB0cmFjZSk7DQo+ICsNCj4g Ky8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5 IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIFNldCB0aGUgZ2xvYmFs IHRyYWNlIGxldmVsLg0KPiArICoNCj4gKyAqIEFmdGVyIHRoaXMgY2FsbCwgdHJhY2Ugd2l0aCBh IGxldmVsIGxvd2VyIG9yIGVxdWFsIHRoYW4gdGhlIGxldmVsDQo+ICsgKiBwYXNzZWQgYXMgYXJn dW1lbnQgd2lsbCBiZSBjYXB0dXJlZCBpbiB0aGUgdHJhY2UgYnVmZmVyLg0KPiArICoNCj4gKyAq IEBwYXJhbSBsZXZlbA0KPiArICogICBUcmFjZSBsZXZlbC4gQSB2YWx1ZSBiZXR3ZWVuIFJURV9M T0dfRU1FUkcgKDEpIGFuZCBSVEVfTE9HX0RFQlVHICg4KS4NCj4gKyAqLw0KPiArX19ydGVfZXhw ZXJpbWVudGFsDQo+ICt2b2lkIHJ0ZV90cmFjZV9nbG9iYWxfbGV2ZWxfc2V0KHVpbnQzMl90IGxl dmVsKTsNCg0KdWludDMyX3QgbWVhbnMgYSBsb3Qgb2YgbGV2ZWxzLg0KDQo+ICsNCj4gKy8qKg0K PiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5n ZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIEdldCB0aGUgZ2xvYmFsIHRyYWNl IGxldmVsLg0KPiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgVGhlIGN1cnJlbnQgZ2xvYmFs IHRyYWNlIGxldmVsLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK3VpbnQzMl90 IHJ0ZV90cmFjZV9nbG9iYWxfbGV2ZWxfZ2V0KHZvaWQpOw0KPiArDQo+ICsvKioNCj4gKyAqIEB3 YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91 dCBwcmlvciBub3RpY2UNCj4gKyAqDQo+ICsgKiBTZXQgdGhlIGdsb2JhbCB0cmFjZSBtb2RlLg0K PiArICoNCj4gKyAqIEFmdGVyIHRoaXMgY2FsbCwgQWxsIHRyYWNlcG9pbnRzIHdpbGwgYmUgc3dp dGNoZWQgdG8gbmV3IG1vZGUuDQo+ICsgKg0KPiArICogQHBhcmFtIG1vZGUNCj4gKyAqICAgVHJh Y2UgbW9kZS4NCj4gKyAqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICt2b2lkIHJ0ZV90cmFj ZV9nbG9iYWxfbW9kZV9zZXQoZW51bSBydGVfdHJhY2VfbW9kZV9lIG1vZGUpOw0KPiArDQo+ICsv KioNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBj aGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gKyAqDQo+ICsgKiBHZXQgdGhlIGdsb2JhbCB0 cmFjZSBtb2RlLg0KPiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgVGhlIGN1cnJlbnQgZ2xv YmFsIHRyYWNlIG1vZGUuDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiArZW51bSBy dGVfdHJhY2VfbW9kZV9lIHJ0ZV90cmFjZV9nbG9iYWxfbW9kZV9nZXQodm9pZCk7DQo+ICsNCj4g Ky8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5 IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIEVuYWJsZSByZWNvcmRp bmcgb2YgdGhlIGdpdmVuIHRyYWNlcG9pbnQgaW4gdGhlIHRyYWNlIGJ1ZmZlci4NCj4gKyAqDQo+ ICsgKiBAcGFyYW0gdHJhY2UNCj4gKyAqICAgVGhlIHRyYWNlcG9pbnQgb2JqZWN0IHRvIGVuYWJs ZS4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgLSAwOiBTdWNjZXNzLg0KPiArICogICAtICgtRVJB TkdFKTogVHJhY2Ugb2JqZWN0IGlzIG5vdCByZWdpc3RlcmVkLg0KPiArICogICAtICgtRUFDQ0VT KTogVHJhY2Ugb2JqZWN0IGxldmVsIGlzIGxlc3MgdGhhbiB0aGUgZ2xvYmFsIHRyYWNlIGxldmVs Lg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2ludCBydGVfdHJhY2VfZW5hYmxl KHJ0ZV90cmFjZV90IHRyYWNlKTsNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICog QGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNl DQo+ICsgKg0KPiArICogRGlzYWJsZSByZWNvcmRpbmcgb2YgdGhlIGdpdmVuIHRyYWNlcG9pbnQg aW4gdGhlIHRyYWNlIGJ1ZmZlci4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdHJhY2UNCj4gKyAqICAg VGhlIHRyYWNlcG9pbnQgb2JqZWN0IHRvIGRpc2FibGUuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAg IC0gMDogU3VjY2Vzcy4NCj4gKyAqICAgLSAoLUVSQU5HRSk6IFRyYWNlIG9iamVjdCBpcyBub3Qg cmVnaXN0ZXJlZC4NCj4gKyAqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICtpbnQgcnRlX3Ry YWNlX2Rpc2FibGUocnRlX3RyYWNlX3QgdHJhY2UpOw0KPiArDQo+ICsvKioNCj4gKyAqIEB3YXJu aW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBw cmlvciBub3RpY2UNCj4gKyAqDQo+ICsgKiBUZXN0IGlmIGdpdmVuIHRyYWNlIGlzIGVuYWJsZWQu DQo+ICsgKg0KPiArICogQHBhcmFtIHRyYWNlDQo+ICsgKiAgICBUaGUgdHJhY2Ugb2JqZWN0Lg0K PiArICogQHJldHVybg0KPiArICogICAgdHJ1ZSBpZiB0cmFjZSBpcyBlbmFibGVkLCBmYWxzZSBv dGhlcndpc2UuDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiArYm9vbCBydGVfdHJh Y2VfaXNfZW5hYmxlZChydGVfdHJhY2VfdCB0cmFjZSk7DQo+ICsNCj4gKy8qKg0KPiArICogQHdh cm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0 IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIFRlc3QgaWYgZ2l2ZW4gdHJhY2UgaXMgZGlzYWJs ZWQuDQo+ICsgKg0KPiArICogQHBhcmFtIHRyYWNlDQo+ICsgKiAgICBUaGUgdHJhY2Ugb2JqZWN0 Lg0KPiArICogQHJldHVybg0KPiArICogICAgdHJ1ZSBpZiB0cmFjZSBpcyBkaXNhYmxlZCwgZmFs c2Ugb3RoZXJ3aXNlLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2Jvb2wgcnRl X3RyYWNlX2lzX2Rpc2FibGVkKHJ0ZV90cmFjZV90IHRyYWNlKTsNCj4gKw0KPiArLyoqDQo+ICsg KiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdp dGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0KPiArICogU2V0IHRoZSB0cmFjZSBsZXZlbCBmb3Ig dGhlIGdpdmVuIHRyYWNlcG9pbnQuDQo+ICsgKg0KPiArICogQWZ0ZXIgdGhpcyBjYWxsLCBpZiBw YXNzZWQgdHJhY2UgbGV2ZWwgbG93ZXIgb3IgZXF1YWwgdGhhbiB0aGUgZ2xvYmFsIHRyYWNlDQo+ ICsgKiBsZXZlbCBhbmQgdGhpcyB0cmFjZSBpcyBlbmFibGVkIHRoZW4gdHJhY2Ugd2lsbCBiZSBj YXB0dXJlZCBpbiB0aGUNCj4gKyAqIHRyYWNlIGJ1ZmZlci4NCj4gKyAqDQo+ICsgKiBAcGFyYW0g dHJhY2UNCj4gKyAqICAgIFRoZSB0cmFjZSBvYmplY3QuDQo+ICsgKiBAcGFyYW0gbGV2ZWwNCj4g KyAqICAgVHJhY2UgbGV2ZWwuIEEgdmFsdWUgYmV0d2VlbiBSVEVfTE9HX0VNRVJHICgxKSBhbmQg UlRFX0xPR19ERUJVRyAoOCkuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIC0gMDogU3VjY2Vzcy4N Cj4gKyAqICAgLSAoLUVJTlZBTCk6IFRyYWNlIG9iamVjdCBpcyBub3QgcmVnaXN0ZXJlZCBvciBp bnZhbGlkIHRyYWNlIGxldmVsLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2lu dCBydGVfdHJhY2VfbGV2ZWxfc2V0KHJ0ZV90cmFjZV90IHRyYWNlLCB1aW50MzJfdCBsZXZlbCk7 DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhp cyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIEdldCB0 aGUgdHJhY2UgbGV2ZWwgZm9yIHRoZSBnaXZlbiB0cmFjZXBvaW50Lg0KPiArICoNCj4gKyAqIEBw YXJhbSB0cmFjZQ0KPiArICogICAgVGhlIHRyYWNlIG9iamVjdC4NCj4gKyAqIEByZXR1cm4NCj4g KyAqICAgLSBBIHZhbHVlIGJldHdlZW4gUlRFX0xPR19FTUVSRyAoMSkgYW5kIFJURV9MT0dfREVC VUcgKDgpLg0KPiArICogICAtIDA6IFRyYWNlIG9iamVjdCBpcyBub3QgcmVnaXN0ZXJlZC4NCj4g KyAqLw0KPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ICt1aW50MzJfdCBydGVfdHJhY2VfbGV2ZWxf Z2V0KHJ0ZV90cmFjZV90IHRyYWNlKTsNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiAr ICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90 aWNlDQo+ICsgKg0KPiArICogU2V0IHRoZSB0cmFjZSBtb2RlIGZvciB0aGUgZ2l2ZW4gdHJhY2Vw b2ludC4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gdHJhY2UNCj4gKyAqICAgIFRoZSB0cmFjZSBvYmpl Y3QuDQo+ICsgKiBAcGFyYW0gbW9kZQ0KPiArICogICBUcmFjZSBtb2RlLg0KPiArICogQHJldHVy bg0KPiArICogICAtIDA6IFN1Y2Nlc3MuDQo+ICsgKiAgIC0gKC1FSU5WQUwpOiBUcmFjZSBvYmpl Y3QgaXMgbm90IHJlZ2lzdGVyZWQgb3IgaW52YWxpZCB0cmFjZSBsZXZlbC4NCj4gKyAqLw0KPiAr X19ydGVfZXhwZXJpbWVudGFsDQo+ICtpbnQgcnRlX3RyYWNlX21vZGVfc2V0KHJ0ZV90cmFjZV90 IHRyYWNlLCBlbnVtIHJ0ZV90cmFjZV9tb2RlX2UgbW9kZSk7DQo+ICsNCj4gKy8qKg0KPiArICog QHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRo b3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIEdldCB0aGUgdHJhY2UgbW9kZSBmb3IgdGhl IGdpdmVuIHRyYWNlcG9pbnQuDQo+ICsgKg0KPiArICogQHBhcmFtIHRyYWNlDQo+ICsgKiAgICBU aGUgdHJhY2Ugb2JqZWN0Lg0KPiArICogQHJldHVybg0KPiArICogICAtIFplcm8gb3IgcG9zaXRp dmU6IE1vZGUgZW5jb2RlZCBhcyBlbnVtIHJ0ZV90cmFjZV9tb2RlX2UuDQo+ICsgKiAgIC0gKC1F SU5WQUwpOiBUcmFjZSBvYmplY3QgaXMgbm90IHJlZ2lzdGVyZWQuDQo+ICsgKi8NCj4gK19fcnRl X2V4cGVyaW1lbnRhbA0KPiAraW50IHJ0ZV90cmFjZV9tb2RlX2dldChydGVfdHJhY2VfdCB0cmFj ZSk7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDog dGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIEVu YWJsZS9EaXNhYmxlIGEgc2V0IG9mIHRyYWNlcG9pbnRzIGJhc2VkIG9uIHNoZWxsIHBhdHRlcm4u DQpTaGVsbCBwYXR0ZXJuIG1lYW5zIHdoYXQgSSB0aGluayBpcyB1c3VhbGx5IHJlZmVycmVkIHRv IGFzIGEgZ2xvYj8NCj4gKyAqDQo+ICsgKiBAcGFyYW0gcGF0dGVybg0KPiArICogICBUaGUgbWF0 Y2ggcGF0dGVybiBpZGVudGlmeWluZyB0aGUgdHJhY2Vwb2ludC4NCj4gKyAqIEBwYXJhbSBlbmFi bGUNCj4gKyAqICAgIHRydWUgdG8gZW5hYmxlIHRyYWNlcG9pbnQsIGZhbHNlIHRvIGRpc2FibGUg dGhlIHRyYWNlcG9pbnQsIHVwb24gbWF0Y2guDQo+ICsgKiBAcGFyYW1bb3V0XSBmb3VuZA0KPiAr ICogICAgTlVMTCB2YWx1ZSBhbGxvd2VkLCBpZiBub3QgTlVMTCwgdHJ1ZSBpZiBtYXRjaCBmb3Vu ZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KPiArICogQHJldHVybg0KPiArICogICAtIDA6IFN1Y2Nlc3Mu DQo+ICsgKiAgIC0gKC1FUkFOR0UpOiBUcmFjZSBvYmplY3QgaXMgbm90IHJlZ2lzdGVyZWQuDQo+ ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAraW50IHJ0ZV90cmFjZV9wYXR0ZXJuKGNv bnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgZW5hYmxlLCBib29sICpmb3VuZCk7DQo+ICsNCj4gKy8q Kg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNo YW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIEVuYWJsZS9EaXNhYmxlIGEg c2V0IG9mIHRyYWNlcG9pbnRzIGJhc2VkIG9uIHJlZ3VsYXIgZXhwcmVzc2lvbi4NCj4gKyAqDQo+ ICsgKiBAcGFyYW0gcmVnZXgNCj4gKyAqICAgQSByZWd1bGFyIGV4cHJlc3Npb24gaWRlbnRpZnlp bmcgdGhlIHRyYWNlcG9pbnQuDQo+ICsgKiBAcGFyYW0gZW5hYmxlDQo+ICsgKiAgICB0cnVlIHRv IGVuYWJsZSB0cmFjZXBvaW50LCBmYWxzZSB0byBkaXNhYmxlIHRoZSB0cmFjZXBvaW50LCB1cG9u IG1hdGNoLg0KPiArICogQHBhcmFtW291dF0gZm91bmQNCj4gKyAqICAgIE5VTEwgdmFsdWUgYWxs b3dlZCwgaWYgbm90IE5VTEwsIHRydWUgaWYgbWF0Y2ggZm91bmQsIGZhbHNlIG90aGVyd2lzZS4N CldoYXQncyB0aGUgcmVhc29uIG9mIGhhdmluZyB0aGlzIG91dHB1dCBwYXJhbWV0ZXIsIGFzIG9w cG9zZWQgdG8gY29kaW5nIA0KdGhlIGluZm9ybWF0aW9uIGludG8gdGhlIHJldHVybiBjb2RlPw0K PiArICogQHJldHVybg0KPiArICogICAtIDA6IFN1Y2Nlc3MuDQo+ICsgKiAgIC0gKC1FUkFOR0Up OiBUcmFjZSBvYmplY3QgaXMgbm90IHJlZ2lzdGVyZWQuDQo+ICsgKiAgIC0gKC1FSU5WQUwpOiBJ bnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiBydWxlLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmlt ZW50YWwNCj4gK2ludCBydGVfdHJhY2VfcmVnZXhwKGNvbnN0IGNoYXIgKnJlZ2V4LCBib29sIGVu YWJsZSwgYm9vbCAqZm91bmQpOw0KPiArDQo+ICsvKioNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBA YiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UN Cj4gKyAqDQo+ICsgKiBTYXZlIHRoZSB0cmFjZSBidWZmZXIgdG8gdGhlIHRyYWNlIGRpcmVjdG9y eS4NCj4gKyAqDQo+ICsgKiBCeSBkZWZhdWx0LCB0cmFjZSBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVh dGVkIGF0IEhPTUUgZGlyZWN0b3J5IGFuZCB0aGlzIGNhbiBiZQ0KPiArICogb3ZlcnJpZGRlbiBi eSAtLXRyYWNlLWRpciBFQUwgcGFyYW1ldGVyLg0KPiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAq ICAgLSAwOiBTdWNjZXNzLg0KPiArICogICAtIDwwIDogRmFpbHVyZS4NCj4gKyAqLw0KPiArX19y dGVfZXhwZXJpbWVudGFsDQo+ICtpbnQgcnRlX3RyYWNlX3NhdmUodm9pZCk7DQo+ICsNCj4gKy8q Kg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNo YW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIFNlYXJjaCBhIHRyYWNlIG9i amVjdCBmcm9tIGl0cyBuYW1lLg0KPiArICoNCj4gKyAqIEBwYXJhbSBuYW1lDQo+ICsgKiAgIFRo ZSBuYW1lIG9mIHRoZSB0cmFjZXBvaW50Lg0KPiArICogQHJldHVybg0KPiArICogICBUaGUgdHJh Y2Vwb2ludCBvYmplY3Qgb3IgTlVMTCBpZiBub3QgZm91bmQuDQo+ICsgKi8NCj4gK19fcnRlX2V4 cGVyaW1lbnRhbA0KPiArcnRlX3RyYWNlX3QgcnRlX3RyYWNlX2Zyb21fbmFtZShjb25zdCBjaGFy ICpuYW1lKTsNCg0KV291bGQgInJ0ZV90cmFjZV9ieV9uYW1lIiBiZSBhIGJldHRlciBuYW1lPw0K DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhp cyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIER1bXAg dGhlIHRyYWNlIG1ldGFkYXRhIHRvIGEgZmlsZS4NCj4gKyAqDQo+ICsgKiBAcGFyYW0gZg0KPiAr ICogICBBIHBvaW50ZXIgdG8gYSBmaWxlIGZvciBvdXRwdXQNCj4gKyAqIEByZXR1cm4NCj4gKyAq ICAgLSAwOiBTdWNjZXNzLg0KPiArICogICAtIDwwIDogRmFpbHVyZS4NCj4gKyAqLw0KPiArX19y dGVfZXhwZXJpbWVudGFsDQo+ICtpbnQgcnRlX3RyYWNlX21ldGFkYXRhX2R1bXAoRklMRSAqZik7 DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhp cyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZQ0KPiArICogRHVtcCB0aGUgdHJh Y2Ugc3Vic3lzdGVtIHN0YXR1cyB0byBhIGZpbGUuDQo+ICsgKg0KPiArICogQHBhcmFtIGYNCj4g KyAqICAgQSBwb2ludGVyIHRvIGEgZmlsZSBmb3Igb3V0cHV0DQo+ICsgKi8NCj4gK19fcnRlX2V4 cGVyaW1lbnRhbA0KPiArdm9pZCBydGVfdHJhY2VfZHVtcChGSUxFICpmKTsNCj4gKw0KPiArLyoq DQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hh bmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0KPiArICogVGVzdCBpZiB0aGUgdHJhY2Ug ZGF0YXBhdGggY29tcGlsZS10aW1lIG9wdGlvbiBpcyBlbmFibGVkLg0KPiArICoNCj4gKyAqIEBy ZXR1cm4NCj4gKyAqICAgQSBwb3NpdGl2ZSB2YWx1ZSBpZiB0cmFjZSBkYXRhcGF0aCBlbmFibGVk LCB2YWx1ZSB6ZXJvIG90aGVyd2lzZS4NClN3aXRjaCB0byBhIGJvb2wgcmV0dXJuIHR5cGUuDQo+ ICsgKi8NCj4gK3N0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIGludA0KPiArcnRlX3RyYWNlX2lz X2RwX2VuYWJsZWQodm9pZCkNCj4gK3sNCj4gKyNpZmRlZiBSVEVfRU5BQkxFX1RSQUNFX0RQDQo+ ICsJcmV0dXJuIFJURV9FTkFCTEVfVFJBQ0VfRFA7DQo+ICsjZWxzZQ0KPiArCXJldHVybiAwOw0K PiArI2VuZGlmDQo+ICt9DQo+ICsNCj4gKy8qKiBNYWNybyB0byBkZWZpbmUgdGhlIHRyYWNlcG9p bnQuICovDQo+ICsjZGVmaW5lIFJURV9UUkFDRV9QT0lOVF9ERUZJTkUodHApXA0KPiArdWludDY0 X3QgX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiX19ydGVfdHJhY2VfcG9pbnQiKSkpIF9fIyN0cA0K PiArDQo+ICsvKioNCj4gKyAqIE1hY3JvIHRvIGRlZmluZSB0aGUgdHJhY2Vwb2ludCBhcmd1bWVu dHMgaW4gUlRFX1RSQUNFX1BPSU5UIG1hY3JvLg0KPiArDQo+ICsgKiBAc2VlIFJURV9UUkFDRV9Q T0lOVCBSVEVfVFJBQ0VfUE9JTlRfRFANCj4gKyAqLw0KPiArI2RlZmluZSBSVEVfVFJBQ0VfUE9J TlRfQVJHUw0KPiArDQo+ICsvKiogQGludGVybmFsIEhlbHBlciBNYWNybyB0byBzdXBwb3J0IFJU RV9UUkFDRV9QT0lOVCBhbmQgUlRFX1RSQUNFX1BPSU5UX0RQICovDQo+ICsjZGVmaW5lIF9fUlRF X1RSQUNFX1BPSU5UKF9tb2RlLCBfdHAsIF9hcmdzLCAuLi4pXA0KPiArZXh0ZXJuIHVpbnQ2NF90 IF9fIyNfdHA7XA0KPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZCBcDQo+ICtfdHAg X2FyZ3MgXA0KPiAre1wNCj4gKwlfX3J0ZV90cmFjZV9lbWl0X2hlYWRlcl8jI19tb2RlKCZfXyMj X3RwKTtcDQo+ICsJX19WQV9BUkdTX19cDQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5p bmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHBy aW9yIG5vdGljZQ0KPiArICoNCj4gKyAqIENyZWF0ZSBhIHRyYWNlcG9pbnQgZGVmaW5pdGlvbi4N Cj4gKyAqDQo+ICsgKiBBIHRyYWNlcG9pbnQgZGVmaW5pdGlvbiBkZWZpbmVzLCBmb3IgYSBnaXZl biB0cmFjZXBvaW50Og0KPiArICogLSBJdHMgaW5wdXQgYXJndW1lbnRzLiBUaGV5IGFyZSB0aGUg QyBmdW5jdGlvbiBzdHlsZSBwYXJhbWV0ZXJzIHRvIGRlZmluZQ0KPiArICogdGhlIGFyZ3VtZW50 cyBvZiB0cmFjZXBvaW50IGZ1bmN0aW9uLiBUaGVzZSBpbnB1dCBhcmd1bWVudHMgZW1iZWRkZWQg dXNpbmcNCj4gKyAqIFJURV9UUkFDRV9QT0lOVF9BUkdTIG1hY3JvLg0KPiArICogLSBJdHMgb3V0 cHV0IGV2ZW50IGZpZWxkcy4gVGhleSBhcmUgdGhlIHNvdXJjZXMgb2YgZXZlbnQgZmllbGRzIHRo YXQgZm9ybQ0KPiArICogdGhlIHBheWxvYWQgb2YgYW55IGV2ZW50IHRoYXQgdGhlIGV4ZWN1dGlv biBvZiB0aGUgdHJhY2Vwb2ludCBtYWNybyBlbWl0cw0KPiArICogZm9yIHRoaXMgcGFydGljdWxh ciB0cmFjZXBvaW50LiBUaGUgYXBwbGljYXRpb24gdXNlcyBydGVfdHJhY2VfY3RmXyogbWFjcm9z DQo+ICsgKiB0byBlbWl0IHRoZSBvdXRwdXQgZXZlbnQgZmllbGRzLg0KPiArICoNCj4gKyAqIEBw YXJhbSB0cA0KPiArICogICBUcmFjZXBvaW50IG9iamVjdC4gQmVmb3JlIHVzaW5nIHRoZSB0cmFj ZXBvaW50LCBhbiBhcHBsaWNhdGlvbiBuZWVkcyB0bw0KPiArICogZGVmaW5lIHRoZSB0cmFjZXBv aW50IHVzaW5nIFJURV9UUkFDRV9QT0lOVF9ERUZJTkUoKSBtYWNyby4NCj4gKyAqIEBwYXJhbSBh cmdzDQo+ICsgKiAgIEMgZnVuY3Rpb24gc3R5bGUgaW5wdXQgYXJndW1lbnRzIHRvIGRlZmluZSB0 aGUgYXJndW1lbnRzIHRvIHRyYWNlcG9pbnQNCj4gKyAqIGZ1bmN0aW9uLg0KPiArICogQHBhcmFt IC4uLg0KPiArICogICBEZWZpbmUgdGhlIHBheWxvYWQgb2YgdHJhY2UgZnVuY3Rpb24uIFRoZSBw YXlsb2FkIHdpbGwgYmUgZm9ybWVkIHVzaW5nDQo+ICsgKiBydGVfdHJhY2VfY3RmXyogbWFjcm9z LCBVc2UgIjsiIGRlbGltaXRlciBiZXR3ZWVuIHR3byBwYXlsb2Fkcy4NCj4gKyAqDQo+ICsgKiBA c2VlIFJURV9UUkFDRV9QT0lOVF9BUkdTLCBSVEVfVFJBQ0VfUE9JTlRfREVGSU5FLCBydGVfdHJh Y2VfY3RmXyoNCj4gKyAqLw0KPiArI2RlZmluZSBSVEVfVFJBQ0VfUE9JTlQodHAsIGFyZ3MsIC4u LilcDQo+ICsJX19SVEVfVFJBQ0VfUE9JTlQoZ2VuZXJpYywgdHAsIGFyZ3MsIF9fVkFfQVJHU19f KQ0KPiArDQo+ICsvKioNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRo aXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gKyAqDQo+ICsgKiBDcmVh dGUgYSB0cmFjZXBvaW50IGRlZmluaXRpb24gZm9yIHRoZSBkYXRhIHBhdGguDQo+ICsgKg0KPiAr ICogU2ltaWxhciB0byBSVEVfVFJBQ0VfUE9JTlQoKSwgZXhjZXB0IHRoYXQgaXQgaXMgcmVtb3Zl ZCBhdCBjb21waWxhdGlvbiB0aW1lDQo+ICsgKiB1c2luZyBSVEVfRU5BQkxFX1RSQUNFX0RQIGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyLg0KPiArICoNCj4gKyAqIEBwYXJhbSB0cA0KPiArICogICBU cmFjZXBvaW50IG9iamVjdC4gQmVmb3JlIHVzaW5nIHRoZSB0cmFjZXBvaW50LCBhbiBhcHBsaWNh dGlvbiBuZWVkcyB0bw0KPiArICogZGVmaW5lIHRoZSB0cmFjZXBvaW50IHVzaW5nIFJURV9UUkFD RV9QT0lOVF9ERUZJTkUoKSBtYWNyby4NCj4gKyAqIEBwYXJhbSBhcmdzDQo+ICsgKiAgIEMgZnVu Y3Rpb24gc3R5bGUgaW5wdXQgYXJndW1lbnRzIHRvIGRlZmluZSB0aGUgYXJndW1lbnRzIHRvIHRy YWNlcG9pbnQNCj4gKyAqIGZ1bmN0aW9uLg0KPiArICogQHBhcmFtIC4uLg0KPiArICogICBEZWZp bmUgdGhlIHBheWxvYWQgb2YgdHJhY2UgZnVuY3Rpb24uIFRoZSBwYXlsb2FkIHdpbGwgYmUgZm9y bWVkIHVzaW5nDQo+ICsgKiBydGVfdHJhY2VfY3RmXyogbWFjcm9zLCBVc2UgIjsiIGRlbGltaXRl ciBiZXR3ZWVuIHR3byBwYXlsb2Fkcy4NCj4gKyAqDQo+ICsgKiBAc2VlIHJ0ZV90cmFjZV9pc19k cF9lbmFibGVkLCBSVEVfVFJBQ0VfUE9JTlQoKQ0KPiArICovDQo+ICsjZGVmaW5lIFJURV9UUkFD RV9QT0lOVF9EUCh0cCwgYXJncywgLi4uKVwNCj4gKwlfX1JURV9UUkFDRV9QT0lOVChkcCwgdHAs IGFyZ3MsIF9fVkFfQVJHU19fKQ0KPiArDQo+ICsjaWZkZWYgX19ET1hZR0VOX18NCj4gKw0KPiAr LyoqDQo+ICsgKiBNYWNybyB0byBzZWxlY3QgcnRlX3RyYWNlX2N0Zl8qIGRlZmluaXRpb24gZm9y IHRyYWNlIHJlZ2lzdGVyIGZ1bmN0aW9uLg0KPiArICoNCj4gKyAqIHJ0ZV90cmFjZV9jdGZfKiBl bWl0cyBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgZm9yIHRyYWNlIGZ1bmN0aW9uLg0KPiArICogQXBw bGljYXRpb24gbXVzdCBkZWZpbmUgUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSX1NFTEVDVCBiZWZv cmUgaW5jbHVkaW5nDQo+ICsgKiBydGVfdHJhY2UuaCBpbiB0aGUgQyBmaWxlIHdoZXJlIFJURV9U UkFDRV9QT0lOVF9SRUdJU1RFUigpIHVzZWQuDQo+ICsgKg0KPiArICogQHNlZSBSVEVfVFJBQ0Vf UE9JTlRfUkVHSVNURVIoKQ0KPiArICovDQo+ICsjZGVmaW5lIFJURV9UUkFDRV9QT0lOVF9SRUdJ U1RFUl9TRUxFQ1QNCj4gKw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJ TUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0K PiArICogUmVnaXN0ZXIgYSBkeW5hbWljIHRyYWNlcG9pbnQuDQo+ICsgKg0KPiArICogQHBhcmFt IHRyYWNlDQo+ICsgKiAgIFRoZSB0cmFjZXBvaW50IG9iamVjdCBjcmVhdGVkIHVzaW5nIFJURV9U UkFDRV9QT0lOVF9ERUZJTkUoKS4NCj4gKyAqIEBwYXJhbSBuYW1lDQo+ICsgKiAgIFRoZSBuYW1l IG9mIHRoZSB0cmFjZXBvaW50IG9iamVjdC4NCj4gKyAqIEBwYXJhbSBsZXZlbA0KPiArICogICBU cmFjZSBsZXZlbC4gQSB2YWx1ZSBiZXR3ZWVuIFJURV9MT0dfRU1FUkcgKDEpIGFuZCBSVEVfTE9H X0RFQlVHICg4KS4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgLSAwOiBTdWNjZXNzZnVsbHkgcmVn aXN0ZXJlZCB0aGUgdHJhY2Vwb2ludC4NCj4gKyAqICAgLSA8MDogRmFpbHVyZSB0byByZWdpc3Rl ciB0aGUgdHJhY2Vwb2ludC4NCj4gKyAqDQo+ICsgKiBAc2VlIFJURV9UUkFDRV9QT0lOVF9SRUdJ U1RFUl9TRUxFQ1QNCj4gKyAqLw0KPiArI2RlZmluZSBSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIo dHJhY2UsIG5hbWUsIGxldmVsKQ0KPiArDQo+ICsvKiogVHJhY2Vwb2ludCBmdW5jdGlvbiBwYXls b2FkIGZvciB1aW50NjRfdCBkYXRhdHlwZSAqLw0KPiArI2RlZmluZSBydGVfdHJhY2VfY3RmX3U2 NCh2YWwpDQo+ICsvKiogVHJhY2Vwb2ludCBmdW5jdGlvbiBwYXlsb2FkIGZvciBpbnQ2NF90IGRh dGF0eXBlICovDQo+ICsjZGVmaW5lIHJ0ZV90cmFjZV9jdGZfaTY0KHZhbCkNCj4gKy8qKiBUcmFj ZXBvaW50IGZ1bmN0aW9uIHBheWxvYWQgZm9yIHVpbnQzMl90IGRhdGF0eXBlICovDQo+ICsjZGVm aW5lIHJ0ZV90cmFjZV9jdGZfdTMyKHZhbCkNCj4gKy8qKiBUcmFjZXBvaW50IGZ1bmN0aW9uIHBh eWxvYWQgZm9yIGludDMyX3QgZGF0YXR5cGUgKi8NCj4gKyNkZWZpbmUgcnRlX3RyYWNlX2N0Zl9p MzIodmFsKQ0KPiArLyoqIFRyYWNlcG9pbnQgZnVuY3Rpb24gcGF5bG9hZCBmb3IgdWludDE2X3Qg ZGF0YXR5cGUgKi8NCj4gKyNkZWZpbmUgcnRlX3RyYWNlX2N0Zl91MTYodmFsKQ0KPiArLyoqIFRy YWNlcG9pbnQgZnVuY3Rpb24gcGF5bG9hZCBmb3IgaW50MTZfdCBkYXRhdHlwZSAqLw0KPiArI2Rl ZmluZSBydGVfdHJhY2VfY3RmX2kxNih2YWwpDQo+ICsvKiogVHJhY2Vwb2ludCBmdW5jdGlvbiBw YXlsb2FkIGZvciB1aW50OF90IGRhdGF0eXBlICovDQo+ICsjZGVmaW5lIHJ0ZV90cmFjZV9jdGZf dTgodmFsKQ0KPiArLyoqIFRyYWNlcG9pbnQgZnVuY3Rpb24gcGF5bG9hZCBmb3IgaW50OF90IGRh dGF0eXBlICovDQo+ICsjZGVmaW5lIHJ0ZV90cmFjZV9jdGZfaTgodmFsKQ0KPiArLyoqIFRyYWNl cG9pbnQgZnVuY3Rpb24gcGF5bG9hZCBmb3IgaW50IGRhdGF0eXBlICovDQo+ICsjZGVmaW5lIHJ0 ZV90cmFjZV9jdGZfaW50KHZhbCkNCj4gKy8qKiBUcmFjZXBvaW50IGZ1bmN0aW9uIHBheWxvYWQg Zm9yIGxvbmcgZGF0YXR5cGUgKi8NCj4gKyNkZWZpbmUgcnRlX3RyYWNlX2N0Zl9sb25nKHZhbCkN Cj4gKy8qKiBUcmFjZXBvaW50IGZ1bmN0aW9uIHBheWxvYWQgZm9yIGZsb2F0IGRhdGF0eXBlICov DQo+ICsjZGVmaW5lIHJ0ZV90cmFjZV9jdGZfZmxvYXQodmFsKQ0KPiArLyoqIFRyYWNlcG9pbnQg ZnVuY3Rpb24gcGF5bG9hZCBmb3IgZG91YmxlIGRhdGF0eXBlICovDQo+ICsjZGVmaW5lIHJ0ZV90 cmFjZV9jdGZfZG91YmxlKHZhbCkNCj4gKy8qKiBUcmFjZXBvaW50IGZ1bmN0aW9uIHBheWxvYWQg Zm9yIHBvaW50ZXIgZGF0YXR5cGUgKi8NCj4gKyNkZWZpbmUgcnRlX3RyYWNlX2N0Zl9wdHIodmFs KQ0KPiArLyoqIFRyYWNlcG9pbnQgZnVuY3Rpb24gcGF5bG9hZCBmb3Igc3RyaW5nIGRhdGF0eXBl ICovDQo+ICsjZGVmaW5lIHJ0ZV90cmFjZV9jdGZfc3RyaW5nKHZhbCkNCj4gKw0KPiArI2VuZGlm IC8qIF9fRE9YWUdFTl9fICovDQo+ICsNCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiAr I2VuZGlmDQo+ICsNCj4gKyNlbmRpZiAvKiBfUlRFX1RSQUNFX0hfICovDQo+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX2VhbC9jb21tb24vbWVzb24uYnVpbGQgYi9saWIvbGlicnRlX2VhbC9jb21t b24vbWVzb24uYnVpbGQNCj4gaW5kZXggMmI5NzcxNWEyLi4zMGZiOWI4NWYgMTAwNjQ0DQo+IC0t LSBhL2xpYi9saWJydGVfZWFsL2NvbW1vbi9tZXNvbi5idWlsZA0KPiArKysgYi9saWIvbGlicnRl X2VhbC9jb21tb24vbWVzb24uYnVpbGQNCj4gQEAgLTI4LDYgKzI4LDcgQEAgY29tbW9uX3NvdXJj ZXMgPSBmaWxlcygNCj4gICAJJ2VhbF9jb21tb25fdGFpbHFzLmMnLA0KPiAgIAknZWFsX2NvbW1v bl90aHJlYWQuYycsDQo+ICAgCSdlYWxfY29tbW9uX3RpbWVyLmMnLA0KPiArCSdlYWxfY29tbW9u X3RyYWNlLmMnLA0KPiAgIAknZWFsX2NvbW1vbl91dWlkLmMnLA0KPiAgIAknaG90cGx1Z19tcC5j JywNCj4gICAJJ21hbGxvY19lbGVtLmMnLA0KPiBAQCAtODQsNiArODUsNyBAQCBjb21tb25faGVh ZGVycyA9IGZpbGVzKA0KPiAgIAknaW5jbHVkZS9ydGVfc2VydmljZV9jb21wb25lbnQuaCcsDQo+ ICAgCSdpbmNsdWRlL3J0ZV9zdHJpbmdfZm5zLmgnLA0KPiAgIAknaW5jbHVkZS9ydGVfdGFpbHEu aCcsDQo+ICsJJ2luY2x1ZGUvcnRlX3RyYWNlLmgnLA0KPiAgIAknaW5jbHVkZS9ydGVfdGltZS5o JywNCj4gICAJJ2luY2x1ZGUvcnRlX3V1aWQuaCcsDQo+ICAgCSdpbmNsdWRlL3J0ZV92ZXJzaW9u LmgnLA0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9lYWwvZnJlZWJzZC9lYWwvTWFrZWZpbGUg Yi9saWIvbGlicnRlX2VhbC9mcmVlYnNkL2VhbC9NYWtlZmlsZQ0KPiBpbmRleCBiMTYwYjU3OTAu LmIyZmNjNDIxMiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvZnJlZWJzZC9lYWwvTWFr ZWZpbGUNCj4gKysrIGIvbGliL2xpYnJ0ZV9lYWwvZnJlZWJzZC9lYWwvTWFrZWZpbGUNCj4gQEAg LTYwLDYgKzYwLDcgQEAgU1JDUy0kKENPTkZJR19SVEVfRVhFQ19FTlZfRlJFRUJTRCkgKz0gZWFs X2NvbW1vbl90aHJlYWQuYw0KPiAgIFNSQ1MtJChDT05GSUdfUlRFX0VYRUNfRU5WX0ZSRUVCU0Qp ICs9IGVhbF9jb21tb25fcHJvYy5jDQo+ICAgU1JDUy0kKENPTkZJR19SVEVfRVhFQ19FTlZfRlJF RUJTRCkgKz0gZWFsX2NvbW1vbl9mYmFycmF5LmMNCj4gICBTUkNTLSQoQ09ORklHX1JURV9FWEVD X0VOVl9GUkVFQlNEKSArPSBlYWxfY29tbW9uX3V1aWQuYw0KPiArU1JDUy0kKENPTkZJR19SVEVf RVhFQ19FTlZfRlJFRUJTRCkgKz0gZWFsX2NvbW1vbl90cmFjZS5jDQo+ICAgU1JDUy0kKENPTkZJ R19SVEVfRVhFQ19FTlZfRlJFRUJTRCkgKz0gcnRlX21hbGxvYy5jDQo+ICAgU1JDUy0kKENPTkZJ R19SVEVfRVhFQ19FTlZfRlJFRUJTRCkgKz0gaG90cGx1Z19tcC5jDQo+ICAgU1JDUy0kKENPTkZJ R19SVEVfRVhFQ19FTlZfRlJFRUJTRCkgKz0gbWFsbG9jX2VsZW0uYw0KPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9lYWwvbGludXgvZWFsL01ha2VmaWxlIGIvbGliL2xpYnJ0ZV9lYWwvbGludXgv ZWFsL01ha2VmaWxlDQo+IGluZGV4IGU3MGNmMTA0YS4uOTU0NzBkM2JiIDEwMDY0NA0KPiAtLS0g YS9saWIvbGlicnRlX2VhbC9saW51eC9lYWwvTWFrZWZpbGUNCj4gKysrIGIvbGliL2xpYnJ0ZV9l YWwvbGludXgvZWFsL01ha2VmaWxlDQo+IEBAIC02OCw2ICs2OCw3IEBAIFNSQ1MtJChDT05GSUdf UlRFX0VYRUNfRU5WX0xJTlVYKSArPSBlYWxfY29tbW9uX3RocmVhZC5jDQo+ICAgU1JDUy0kKENP TkZJR19SVEVfRVhFQ19FTlZfTElOVVgpICs9IGVhbF9jb21tb25fcHJvYy5jDQo+ICAgU1JDUy0k KENPTkZJR19SVEVfRVhFQ19FTlZfTElOVVgpICs9IGVhbF9jb21tb25fZmJhcnJheS5jDQo+ICAg U1JDUy0kKENPTkZJR19SVEVfRVhFQ19FTlZfTElOVVgpICs9IGVhbF9jb21tb25fdXVpZC5jDQo+ ICtTUkNTLSQoQ09ORklHX1JURV9FWEVDX0VOVl9MSU5VWCkgKz0gZWFsX2NvbW1vbl90cmFjZS5j DQo+ICAgU1JDUy0kKENPTkZJR19SVEVfRVhFQ19FTlZfTElOVVgpICs9IHJ0ZV9tYWxsb2MuYw0K PiAgIFNSQ1MtJChDT05GSUdfUlRFX0VYRUNfRU5WX0xJTlVYKSArPSBob3RwbHVnX21wLmMNCj4g ICBTUkNTLSQoQ09ORklHX1JURV9FWEVDX0VOVl9MSU5VWCkgKz0gbWFsbG9jX2VsZW0uYw0KDQoN Cg==