From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40055.outbound.protection.outlook.com [40.107.4.55]) by dpdk.org (Postfix) with ESMTP id 2455D1B53 for ; Wed, 19 Sep 2018 07:37:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0rxBYWFScdHGi2U7/JY3+Jk47aok/STdMfH1PyJ/UKg=; b=nwDu4cl/YWdskTKBEN2VdDhsR4vmqMUwCXwJvJbJWr0aY+DKbt628AgljBbMK1IqAc30rDF/D6hrpmYMCXu4SAuI7x3SazoSvCmliSPWUoQdV6gjaUPOZRiMiUAJYu+XV5MRTKifqFGRJ12w+orgcwpxKDJnDx5ihE4MaGD1uEY= Received: from AM6PR08MB3672.eurprd08.prod.outlook.com (20.177.115.29) by AM6PR08MB2984.eurprd08.prod.outlook.com (52.135.163.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.15; Wed, 19 Sep 2018 05:37:13 +0000 Received: from AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::589e:d3cf:9777:5ff9]) by AM6PR08MB3672.eurprd08.prod.outlook.com ([fe80::589e:d3cf:9777:5ff9%2]) with mapi id 15.20.1143.017; Wed, 19 Sep 2018 05:37:13 +0000 From: Honnappa Nagarahalli To: Ferruh Yigit , Jerin Jacob , "Kokkilagadda, Kiran" CC: Ola Liljedahl , "Gavin Hu (Arm Technology China)" , "Jacob, Jerin" , "dev@dpdk.org" , nd , Steve Capper , "Phil Yang (Arm Technology China)" , Bruce Richardson , Konstantin Ananyev Thread-Topic: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization Thread-Index: AQHUNUdKDAxxlajx7EqxtswFT/Xr1aTTtAyAgAAZYECAAUATgIAAj0wggACeoyCAABI7AIAAHT4AgAAPAQCAAAV/AIAAAq8AgBgjT7CAAATUAIAAXQzAgAdd1feAAOSAIA== Date: Wed, 19 Sep 2018 05:37:13 +0000 Message-ID: References: <7C80C637-DF76-423E-92AA-868EA06EF2C3@arm.com> <20180829082814.GA15610@jerin> <9CD1E941-1C51-4942-B0C8-30F6177124A5@arm.com> <20180829085730.GA2563@jerin> <20180913175124.GA11207@jerin> <20180914024546.GA1997@jerin> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR08MB2984; 6:Gts8Zey+OlI+0c0leECMiIsv4i42Js5mJPxvogGAudBpnCDPgB/SrtfyT9fosZ/xHva/nTIvgOvKWl87Ac/hlsU/mge0z7WI2OCSOxnBa69athFrQRNqWjscpROPOrY3t1cg2ARifnG84ETdTt3teGtCfWvyzmQx5Yby3Mstd/2KRQfuNQale7u75h5JGUQFhp+75LoOhb3f5iS6gIyEBgBHI2TSpZb4RfsetmLZKRENux8DkzJI/3/8TATtMDr6aIckegHX5py4qxLFkhkavAEatCeGEQjTXHO4YA1ce6AUvKJEl4wLNQWCDDBc+n+No3YoD3y6rLwwv660jLbGykEZ6Anrioc7togv4S/6ZcU6tPmlCNGrQoa7Y2sMhUxzyqFzvDDDx2Fla7WVHQo6gwnP+SyL2Dl9JKU08qOGjvsv26jwhE13jTUuUPBr0cMR+trtVSqPMzaU6QLaEkJ8DQ==; 5:0oZvoZ1nUlOJOuCF4gljnpRqIUvzrDXpZ6EnX9OxCPEX5eoolyzCBFeckfm5WdZSH8TJCKl7MNY9BK8hW3ouTgNz6/UvhpAGvWkAm1Z+3nUnBot3tGcz07JIo0H568H/CU/3wz3V5sOhcRTiJvmZUcTWLX6Ic+brTgLzqDdLzik=; 7:t5C6PEkTRrn3ZzCeZFTed0nGjgLTwZZnfK5Dc9F/ANJu1RAv8UaqZfbysjuAV2pBq0JF+Lx+Z4GpLQdqXRWfB9Pf6AHHk/u1jyZDUWk5fBqXZx/4HznYRuTkfEW3fy6UcpWwnN6LGxoeZooaPu7k4zd9z7QBx97pWUY2yI6Oizu+jYvJXfeJaRfTeA8oZdbja92CU9L8+XK1rFUs6Yovdhz4VFuD2XLJwkqZS0h3ZvX7+yX7nzALla0YA72mUTNB x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 0912c292-e1ce-4a95-a367-08d61df1f3b1 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR08MB2984; x-ms-traffictypediagnostic: AM6PR08MB2984: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(103651359005742)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231355)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:AM6PR08MB2984; BCL:0; PCL:0; RULEID:; SRVR:AM6PR08MB2984; x-forefront-prvs: 0800C0C167 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(346002)(366004)(396003)(39860400002)(189003)(13464003)(199004)(478600001)(14454004)(53546011)(446003)(26005)(2900100001)(316002)(476003)(74316002)(256004)(106356001)(6506007)(93886005)(186003)(66066001)(102836004)(11346002)(19627235002)(86362001)(14444005)(5024004)(45954006)(486006)(105586002)(54906003)(110136005)(7696005)(99286004)(68736007)(7736002)(72206003)(25786009)(2906002)(8676002)(229853002)(33656002)(6306002)(6116002)(76176011)(3846002)(81166006)(81156014)(8936002)(305945005)(5250100002)(53946003)(5660300001)(6246003)(97736004)(53936002)(966005)(9686003)(6436002)(4326008)(45080400002)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB2984; H:AM6PR08MB3672.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: zxPGG1U94IdYuc66LpdEvOM0YwF5fMGvEFQJHDsLMxVNRGB8YYx7YwC7Phu/FRwpPdEnJhRnEsTTadHqli5PWgaBz/HKz6H7VDlPGqVGiKFo1H5HF6Vrq0L/17snns1wZXmvVRGpd9mPB1m3D8h6KR41xi9E01TIozqRAnqOp328oYBf0aH0pwAc9ZHZ/ibs5t8ZC6dGhsfHzq6VCs6xodf4yaZh/Paz2bE35t4ZkwVzkCsZJvguoVMA2pubZk9At8z9mvBLzPjThpxrYTlzaNY2BLQAWWSEnJAqpstfC/TdMkrmblLiwk6sJidgYpMtO7Etyn5eFa4nOmk0sRHPn8Ail7Txrjd5KsN9gdf/O3Y= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0912c292-e1ce-4a95-a367-08d61df1f3b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2018 05:37:13.1562 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB2984 Subject: Re: [dpdk-dev] [PATCH v2] kni: fix kni Rx fifo producer synchronization 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: , X-List-Received-Date: Wed, 19 Sep 2018 05:37:15 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTgsIDIw MTggMTA6NTQgQU0NCj4gVG86IEplcmluIEphY29iIDxqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jr cy5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJt LmNvbT47IEtva2tpbGFnYWRkYSwgS2lyYW4NCj4gPEtpcmFuLktva2tpbGFnYWRkYUBjYXZpdW0u Y29tPg0KPiBDYzogT2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPjsgR2F2aW4g SHUgKEFybSBUZWNobm9sb2d5IENoaW5hKQ0KPiA8R2F2aW4uSHVAYXJtLmNvbT47IEphY29iLCBK ZXJpbiA8SmVyaW4uSmFjb2JLb2xsYW51a2thcmFuQGNhdml1bS5jb20+Ow0KPiBkZXZAZHBkay5v cmc7IG5kIDxuZEBhcm0uY29tPjsgU3RldmUgQ2FwcGVyIDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT47 DQo+IFBoaWwgWWFuZyAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxQaGlsLllhbmdAYXJtLmNvbT47 IEJydWNlIFJpY2hhcmRzb24NCj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgS29uc3Rh bnRpbiBBbmFueWV2DQo+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2Vy DQo+IHN5bmNocm9uaXphdGlvbg0KPiANCj4gT24gOS8xNC8yMDE4IDM6NDUgQU0sIEplcmluIEph Y29iIHdyb3RlOg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IERhdGU6IFRo dSwgMTMgU2VwIDIwMTggMjM6NDU6MzEgKzAwMDANCj4gPj4gRnJvbTogSG9ubmFwcGEgTmFnYXJh aGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+ID4+IFRvOiBKZXJpbiBKYWNv YiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0KPiA+PiBDQzogT2xhIExpbGplZGFo bCA8T2xhLkxpbGplZGFobEBhcm0uY29tPiwgIktva2tpbGFnYWRkYSwgS2lyYW4iDQo+ID4+ICA8 S2lyYW4uS29ra2lsYWdhZGRhQGNhdml1bS5jb20+LCAiR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5 IENoaW5hKSINCj4gPj4gIDxHYXZpbi5IdUBhcm0uY29tPiwgRmVycnVoIFlpZ2l0IDxmZXJydWgu eWlnaXRAaW50ZWwuY29tPiwgIkphY29iLA0KPiBKZXJpbiINCj4gPj4gIDxKZXJpbi5KYWNvYktv bGxhbnVra2FyYW5AY2F2aXVtLmNvbT4sICJkZXZAZHBkay5vcmciDQo+ID4+IDxkZXZAZHBkay5v cmc+LCBuZCAgPG5kQGFybS5jb20+LCBTdGV2ZSBDYXBwZXINCj4gPj4gPFN0ZXZlLkNhcHBlckBh cm0uY29tPiwgIlBoaWwgWWFuZyAoQXJtICBUZWNobm9sb2d5IENoaW5hKSINCj4gPj4gPFBoaWwu WWFuZ0Bhcm0uY29tPg0KPiA+PiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtu aTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyDQo+ID4+IHN5bmNocm9uaXphdGlvbg0KPiA+Pg0K PiA+PiBFeHRlcm5hbCBFbWFpbA0KPiA+Pg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+Pj4gRGF0ZTogVGh1LCAxMyBTZXAgMjAxOCAxNzo0MDo1MyArMDAwMA0KPiA+Pj4gRnJv bTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+ ID4+PiBUbzogSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbT4sIE9s YSBMaWxqZWRhaGwNCj4gPj4+IDxPbGEuTGlsamVkYWhsQGFybS5jb20+DQo+ID4+PiBDQzogIktv a2tpbGFnYWRkYSwgS2lyYW4iIDxLaXJhbi5Lb2traWxhZ2FkZGFAY2F2aXVtLmNvbT4sICJHYXZp biBIdQ0KPiA+Pj4gKEFybSAgVGVjaG5vbG9neSBDaGluYSkiIDxHYXZpbi5IdUBhcm0uY29tPiwg RmVycnVoIFlpZ2l0DQo+ID4+PiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4sICJKYWNvYiwgIEpl cmluIg0KPiA+Pj4gIDxKZXJpbi5KYWNvYktvbGxhbnVra2FyYW5AY2F2aXVtLmNvbT4sICJkZXZA ZHBkay5vcmciDQo+ID4+PiA8ZGV2QGRwZGsub3JnPiwgbmQgIDxuZEBhcm0uY29tPiwgU3RldmUg Q2FwcGVyDQo+ID4+PiA8U3RldmUuQ2FwcGVyQGFybS5jb20+LCAiUGhpbCBZYW5nIChBcm0gVGVj aG5vbG9neSBDaGluYSkiDQo+ID4+PiA8UGhpbC5ZYW5nQGFybS5jb20+DQo+ID4+PiBTdWJqZWN0 OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2Vy DQo+ID4+PiBzeW5jaHJvbml6YXRpb24NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gSGkgSmVyaW4sDQo+ ID4+PiAgICAgICAgIElzIHRoZXJlIGFueSByZWFzb24gZm9yIGhhdmluZyAnUlRFX1JJTkdfVVNF X0MxMV9NRU1fTU9ERUwnLA0KPiB3aGljaCBpcyBzcGVjaWZpYyB0byBydGVfcmluZz8gSSBkbyBu b3Qgc2VlIGEgbmVlZCBmb3IgY2hvb3Npbmcgb25seSBzb21lDQo+IGFsZ29yaXRobXMgdG8gd29y ayB3aXRoIEMxMSBtb2RlbC4gSSBzdWdnZXN0IHRoYXQgd2UgY2hhbmdlIHRoaXMgdG8NCj4gJ1JU RV9VU0VfQzExX01FTV9NT0RFTCcgc28gdGhhdCBpdCBjYW4gYXBwbHkgdG8gYWxsIGxpYnJhcmll cy9hbGdvcml0aG1zLg0KPiA+Pg0KPiA+Pg0KPiA+PiBZZXMuIE1ha2VzIHNlbnNlIHRvIG1lIHRv IGtlZXAgb25seSBzaW5nbGUgY29uZmlnIG9wdGlvbi4NCj4gPj4NCj4gPj4gcnRlX3JpbmcgaGFz IDIgc2V0cyBvZiBhbGdvcml0aG1zIGZvciBBcm0gYXJjaGl0ZWN0dXJlLCBvbmUgd2l0aCBDMTEN Cj4gbWVtb3J5IG1vZGVsIGFuZCB0aGUgb3RoZXIgd2l0aCBiYXJyaWVycy4gR29pbmcgZm9yd2Fy ZCAoZm9yIGV4OiBmb3IgS05JKSwgSQ0KPiB0aGluayB3ZSBzaG91bGQgc3VwcG9ydCBDMTEgbWVt b3J5IG1vZGVsIG9ubHkgYW5kIHNraXAgdGhlIGJhcnJpZXJzLg0KPiA+DQo+ID4gSU1PLCBCb3Ro IHNob3VsZCBiZSBzdXBwb3J0ZWQgYW5kIHNldCBOIGFzIGluIHRoZSBjb25maWcvY29tbW9uX2Jh c2UuDQo+ID4gQmFzZWQgb24gYXJjaGl0ZWN0dXJlIG9yIG1pY3JvIGFyY2hpdGVjdHVyZSB0aGUg cGVyZm9ybWFuY2UgY2FuIHZhcnkuDQo+ID4gU28ga2VlcGluZyBib3RoIG9wdGlvbnMgYW5kIGFs bG93aW5nIHRvIG92ZXJyaWRlIHRvIGFyY2gvbWljcm8gYXJjaA0KPiA+IHNwZWNpZmljIGNvbmZp ZyBmaWxlIG1ha2VzIHNlbnNlIHRvIG1lLihsaWtlIGV4aXN0aW5nIG1vZGVsLCBhcyBzbXBfKg0K PiA+IG9wcyBhcmUgY29tcGlsZXIgTk9QIGZvciB4ODYpDQo+IA0KPiBIaSBKZXJpbiwgSG9ubmFw cGEsICBLaXJhbiwNCj4gDQo+IFdpbGwgdGhlcmUgYmUgYSBuZXcgdmVyc2lvbiBmb3IgdGhpcyBy ZWxlYXNlPw0KPiANCj4gSSBjYW4gc2VlIHR3byBvcHRpb25zOg0KPiAxLSBBZGQgcmVhZC93cml0 ZSBiYXJyaWVycyBmb3IgYm90aCBsaWJyYXJ5IGFuZCBrZXJuZWwgcGFydHMuDQo+IDItIFVzZSBj MTEgYXRvbWljcw0KPiAgIDJhLSBjaGFuZ2UgZXhpc3RpbmcgUlRFX1JJTkdfVVNFX0MxMV9NRU1f TU9ERUwgdG8NCj4gUlRFX1VTRV9DMTFfTUVNX01PREVMDQo+ICAgMmItIFVzZSBSVEVfVVNFX0Mx MV9NRU1fTU9ERUwgdG8gaW1wbGVtZW50IGMxMSBhdG9taWMgZm9yIGFybSBhbmQNCj4gcHBjDQo+ IA0KPiAyKSBzZWVtcyBhZ3JlZWQgb24sIGJ1dCBpcyBpdCBjbGVhciB3aG8gd2lsbCB3b3JrIG9u IGl0Pw0KDQpTb3JyeSBmb3IgdGhlIGxhdGUgcmVwbHkuIFdlIGhhdmUgaW1wbGVtZW50ZWQgMiks IGN1cnJlbnRseSB1bmRlcmdvaW5nIGludGVybmFsIHJldmlldy4gV2Ugd2lsbCBnZXQgdGhpcyBv dXQgdG9kYXkuIFdlIHdpbGwgd29yayB0aHJvdWdoIHRoZSBjb21tdW5pdHkgcmV2aWV3cyBxdWlj a2x5IGFmdGVyIHRoYXQuDQoNCj4gDQo+IEFuZCAxKSBsb29rcyBlYXNpZXIgdG8gaW1wbGVtZW50 LCBpZiAyKSB3b24ndCBtYWtlIHRpbWUgZm9yIHJlbGVhc2UgY2FuIHdlDQo+IGZhbGxiYWNrIHRv IHRoaXMgb25lPw0KPiANCj4gVGhhbmtzLA0KPiBmZXJydWgNCj4gDQo+ID4NCj4gPj4gQWxzbywg ZG8geW91IHNlZSBhbnkgaXNzdWVzIGluIG1ha2luZyBDMTEgbWVtb3J5IG1vZGVsIGRlZmF1bHQg Zm9yIEFybQ0KPiBhcmNoaXRlY3R1cmU/DQo+ID4NCj4gPiBJdCBpcyBhbHJlYWR5IHNldCBkZWZh dWx0IFkgdG8gYXJtNjQuIHNlZSBjb25maWcvY29tbW9uX2FybXY4YV9saW51eGFwcC4NCj4gPg0K PiA+IEFuZCBpdCBpcyBwb3NzaWJsZSBmb3IgbWljcm8gYXJjaGl0ZWN0dXJlIHRvIG92ZXJyaWRl LCBzZWUNCj4gPiBjb25maWcvZGVmY29uZmlnX2FybTY0LXRodW5kZXJ4LWxpbnV4YXBwLWdjYw0K PiA+DQo+ID4NCj4gPj4NCj4gPj4+DQo+ID4+PiBUaGFuayB5b3UsDQo+ID4+PiBIb25uYXBwYQ0K PiA+Pj4NCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBKZXJp biBKYWNvYiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0KPiA+Pj4gU2VudDogV2Vk bmVzZGF5LCBBdWd1c3QgMjksIDIwMTggMzo1OCBBTQ0KPiA+Pj4gVG86IE9sYSBMaWxqZWRhaGwg PE9sYS5MaWxqZWRhaGxAYXJtLmNvbT4NCj4gPj4+IENjOiBLb2traWxhZ2FkZGEsIEtpcmFuIDxL aXJhbi5Lb2traWxhZ2FkZGFAY2F2aXVtLmNvbT47IEhvbm5hcHBhDQo+ID4+PiBOYWdhcmFoYWxs aSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IEdhdmluIEh1DQo+ID4+PiA8R2F2aW4u SHVAYXJtLmNvbT47IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IEphY29i LA0KPiA+Pj4gSmVyaW4gPEplcmluLkphY29iS29sbGFudWtrYXJhbkBjYXZpdW0uY29tPjsgZGV2 QGRwZGsub3JnOyBuZA0KPiA+Pj4gPG5kQGFybS5jb20+OyBTdGV2ZSBDYXBwZXIgPFN0ZXZlLkNh cHBlckBhcm0uY29tPg0KPiA+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBr bmk6IGZpeCBrbmkgUnggZmlmbyBwcm9kdWNlcg0KPiA+Pj4gc3luY2hyb25pemF0aW9uDQo+ID4+ Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBEYXRlOiBXZWQsIDI5 IEF1ZyAyMDE4IDA4OjQ3OjU2ICswMDAwDQo+ID4+Pj4gRnJvbTogT2xhIExpbGplZGFobCA8T2xh LkxpbGplZGFobEBhcm0uY29tPg0KPiA+Pj4+IFRvOiBKZXJpbiBKYWNvYiA8amVyaW4uamFjb2JA Y2F2aXVtbmV0d29ya3MuY29tPg0KPiA+Pj4+IENDOiAiS29ra2lsYWdhZGRhLCBLaXJhbiIgPEtp cmFuLktva2tpbGFnYWRkYUBjYXZpdW0uY29tPiwgSG9ubmFwcGENCj4gPj4+PiBOYWdhcmFoYWxs aSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4sIEdhdmluIEh1DQo+ID4+Pj4gPEdhdmlu Lkh1QGFybS5jb20+LCAgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPiwgIkph Y29iLA0KPiBKZXJpbiINCj4gPj4+PiAgPEplcmluLkphY29iS29sbGFudWtrYXJhbkBjYXZpdW0u Y29tPiwgImRldkBkcGRrLm9yZyINCj4gPj4+PiA8ZGV2QGRwZGsub3JnPiwgbmQgIDxuZEBhcm0u Y29tPiwgU3RldmUgQ2FwcGVyDQo+ID4+Pj4gPFN0ZXZlLkNhcHBlckBhcm0uY29tPg0KPiA+Pj4+ IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2Ml0ga25pOiBmaXgga25pIFJ4IGZpZm8g cHJvZHVjZXINCj4gPj4+PiBzeW5jaHJvbml6YXRpb24NCj4gPj4+PiB1c2VyLWFnZW50OiBNaWNy b3NvZnQtTWFjT3V0bG9vay8xMC4xMC4wLjE4MDgxMg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBU aGVyZSB3YXMgYSBtZW50aW9uIG9mIHJ0ZV9yaW5nIHdoaWNoIGlzIGEgZGlmZmVyZW50IGRhdGEg c3RydWN0dXJlLiBCdXQNCj4gcGVyaGFwcyBJIG1pc3VuZGVyc3Rvb2Qgd2h5IHRoaXMgd2FzIG1l bnRpb25lZCBhbmQgdGhlIGlkZWEgd2FzIG9ubHkgdG8NCj4gdXNlIHRoZSBDMTEgbWVtb3J5IG1v ZGVsIGFzIGlzIGFsc28gdXNlZCBpbiBydGVfcmluZyBub3dhZGF5cy4NCj4gPj4+Pg0KPiA+Pj4+ IEJ1dCB3aHkgd291bGQgd2UgaGF2ZSBkaWZmZXJlbnQgY29kZSBmb3IgeDg2IGFuZCBmb3Igb3Ro ZXINCj4gYXJjaGl0ZWN0dXJlcyAoQVJNLCBQb3dlcik/IElmIHdlIHVzZSB0aGUgQzExIG1lbW9y eSBtb2RlbCAoYW5kIGUuZy4gR0NDDQo+IF9fYXRvbWljIGJ1aWx0aW5zKSwgdGhlIGNvZGUgZ2Vu ZXJhdGVkIGZvciB4ODYgd2lsbCBiZSB0aGUgc2FtZS4NCj4gX19hdG9taWNfbG9hZChfX0FUT01J Q19BQ1FVSVJFKSBhbmQNCj4gX19hdG9taWNfc3RvcmUoX19BVE9NSUNfUkVMRUFTRSkgc2hvdWxk IHRyYW5zbGF0ZSB0byBwbGFpbiBsb2FkcyBhbmQNCj4gc3RvcmVzIG9uIHg4Nj8NCj4gPj4+DQo+ ID4+PiAjIE9uZSByZWFzb24gd2FzIF9fYXRvbWljIGJ1aWx0aW5zICBwcmltaXRpdmVzIHdlcmUg aW1wbGVtZW50ZWQgaW4gZ2NjDQo+IDQuNyBhbmQgeDg2IHdvdWxkIGxpa2UgdG8gc3VwcG9ydCA8 IGdjYyA0LjcgYW5kIElDQyBjb21waWxlci4NCj4gPj4+ICMgVGhlIHRoZW1lIHdhcyBubyBjaGFu Z2UgaW4gdGhlIGV4aXN0aW5nIGNvZGUgZm9yIHg4Ni5JIGFtIG5vdCBzdXJlDQo+IGFib3V0IHRo ZSBjb2RlIGdlbmVyYXRpb24gZm9yIHg4NiB3aXRoIF9fYXRvbWljIGJ1aWx0aW5zLCBJIGxldCB4 ODYNCj4gbWFpbnRhaW5lcnMgdG8gY29tbWVudHMgb24gdGhpcy4NCj4gPj4+DQo+ID4+Pg0KPiA+ Pj4+DQo+ID4+Pj4gLS0gT2xhDQo+ID4+Pj4NCj4gPj4+PiDvu79PbiAyOS8wOC8yMDE4LCAxMDoy OCwgIkplcmluIEphY29iIiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPg0KPiB3cm90 ZToNCj4gPj4+Pg0KPiA+Pj4+ICAgICAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+ ICAgICA+IERhdGU6IFdlZCwgMjkgQXVnIDIwMTggMDc6MzQ6MzQgKzAwMDANCj4gPj4+PiAgICAg PiBGcm9tOiBPbGEgTGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFybS5jb20+DQo+ID4+Pj4gICAg ID4gVG86ICJLb2traWxhZ2FkZGEsIEtpcmFuIiA8S2lyYW4uS29ra2lsYWdhZGRhQGNhdml1bS5j b20+LA0KPiBIb25uYXBwYQ0KPiA+Pj4+ICAgICA+ICBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFn YXJhaGFsbGlAYXJtLmNvbT4sIEdhdmluIEh1DQo+IDxHYXZpbi5IdUBhcm0uY29tPiwNCj4gPj4+ PiAgICAgPiAgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPiwgIkphY29iLCAg SmVyaW4iDQo+ID4+Pj4gICAgID4gIDxKZXJpbi5KYWNvYktvbGxhbnVra2FyYW5AY2F2aXVtLmNv bT4NCj4gPj4+PiAgICAgPiBDQzogImRldkBkcGRrLm9yZyIgPGRldkBkcGRrLm9yZz4sIG5kIDxu ZEBhcm0uY29tPiwgU3RldmUNCj4gQ2FwcGVyDQo+ID4+Pj4gICAgID4gIDxTdGV2ZS5DYXBwZXJA YXJtLmNvbT4NCj4gPj4+PiAgICAgPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjJd IGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyDQo+ID4+Pj4gICAgID4gIHN5bmNocm9uaXph dGlvbg0KPiA+Pj4+ICAgICA+IHVzZXItYWdlbnQ6IE1pY3Jvc29mdC1NYWNPdXRsb29rLzEwLjEw LjAuMTgwODEyDQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPiBJcyB0aGUgcnRlX2tuaSBrZXJu ZWwvdXNlciBiaW5hcnkgaW50ZXJmYWNlIHN1YmplY3QgdG8gYmFja3dhcmRzDQo+IGNvbXBhdGli aWxpdHkgcmVxdWlyZW1lbnRzPyBPciBjYW4gd2UgY2hhbmdlIGl0IGZvciBhIG5ldyBEUERLIHJl bGVhc2U/DQo+ID4+Pj4NCj4gPj4+PiAgICAgV2hhdCB3b3VsZCBiZSB0aGUgY2hhbmdlIGluIGlu dGVyZmFjZT8gSXMgaXQgcmVtb3ZpbmcgdGhlIHZvbGF0aWxlIGZvcg0KPiA+Pj4+ICAgICBDMTEg Y2FzZSwgVGhlbiB5b3UgY2FuIHVzZSBhbm9ueW1vdXMgdW5pb24gT1IgI2RlZmluZSB0byBrZWVw IHRoZQ0KPiBzaXplDQo+ID4+Pj4gICAgIGFuZCBvZmZzZXQgb2YgdGhlIGVsZW1lbnQgaW50YWN0 Lg0KPiA+Pj4+DQo+ID4+Pj4gICAgIHN0cnVjdCBydGVfa25pX2ZpZm8gew0KPiA+Pj4+ICAgICAj aWZuZGVmIFJURV9DMTEuLi4NCj4gPj4+PiAgICAgICAgICAgICB2b2xhdGlsZSB1bnNpZ25lZCB3 cml0ZTsgICAgIC8qKjwgTmV4dCBwb3NpdGlvbiB0byBiZSB3cml0dGVuKi8NCj4gPj4+PiAgICAg ICAgICAgICB2b2xhdGlsZSB1bnNpZ25lZCByZWFkOyAgICAgIC8qKjwgTmV4dCBwb3NpdGlvbiB0 byBiZSByZWFkICovDQo+ID4+Pj4gICAgICNlbHNlDQo+ID4+Pj4gICAgICAgICAgICAgdW5zaWdu ZWQgd3JpdGU7ICAgICAvKio8IE5leHQgcG9zaXRpb24gdG8gYmUgd3JpdHRlbiovDQo+ID4+Pj4g ICAgICAgICAgICAgdW5zaWduZWQgcmVhZDsgICAgICAvKio8IE5leHQgcG9zaXRpb24gdG8gYmUg cmVhZCAqLw0KPiA+Pj4+ICAgICAjZW5kaWYNCj4gPj4+PiAgICAgICAgICAgICB1bnNpZ25lZCBs ZW47ICAgICAgICAgICAgICAgIC8qKjwgQ2lyY3VsYXIgYnVmZmVyIGxlbmd0aCAqLw0KPiA+Pj4+ ICAgICAgICAgICAgIHVuc2lnbmVkIGVsZW1fc2l6ZTsgICAgICAgICAgLyoqPCBQb2ludGVyIHNp emUgLSBmb3IgMzIvNjQgYml0T1MgKi8NCj4gPj4+PiAgICAgICAgICAgICB2b2lkICp2b2xhdGls ZSBidWZmZXJbXTsgICAgIC8qKjwgVGhlIGJ1ZmZlciBjb250YWlucyBtYnVmDQo+ID4+Pj4gICAg IHBvaW50ZXJzICovDQo+ID4+Pj4gICAgIH07DQo+ID4+Pj4NCj4gPj4+PiAgICAgQW5vbnltb3Vz IHVuaW9uIGV4YW1wbGU6DQo+ID4+Pj4gICAgIGh0dHBzOi8vZ2l0LmRwZGsub3JnL2RwZGsvdHJl ZS9saWIvbGlicnRlX21idWYvcnRlX21idWYuaCNuNDYxDQo+ID4+Pj4NCj4gPj4+PiAgICAgWW91 IGNhbiBjaGVjayB0aGUgQUJJIGJyZWFrYWdlIGJ5IGRldnRvb2xzL3ZhbGlkYXRlLWFiaS5zaA0K PiA+Pj4+DQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPiAtLSBPbGENCj4gPj4+PiAgICAgPg0K PiA+Pj4+ICAgICA+IEZyb206ICJLb2traWxhZ2FkZGEsIEtpcmFuIiA8S2lyYW4uS29ra2lsYWdh ZGRhQGNhdml1bS5jb20+DQo+ID4+Pj4gICAgID4gRGF0ZTogV2VkbmVzZGF5LCAyOSBBdWd1c3Qg MjAxOCBhdCAwNzo1MA0KPiA+Pj4+ICAgICA+IFRvOiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9u bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4sDQo+IEdhdmluIEh1IDxHYXZpbi5IdUBhcm0uY29t PiwgRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPiwgIkphY29iLA0KPiBKZXJp biIgPEplcmluLkphY29iS29sbGFudWtrYXJhbkBjYXZpdW0uY29tPg0KPiA+Pj4+ICAgICA+IENj OiAiZGV2QGRwZGsub3JnIiA8ZGV2QGRwZGsub3JnPiwgbmQgPG5kQGFybS5jb20+LCBPbGENCj4g TGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFybS5jb20+LCBTdGV2ZSBDYXBwZXIgPFN0ZXZlLkNh cHBlckBhcm0uY29tPg0KPiA+Pj4+ICAgICA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRD SCB2Ml0ga25pOiBmaXgga25pIFJ4IGZpZm8gcHJvZHVjZXINCj4gc3luY2hyb25pemF0aW9uDQo+ ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPg0KPiA+Pj4+ICAgICA+IEFncmVlZC4gUGxlYXNlIGdv IGEgaGVhZCBhbmQgbWFrZSB0aGUgY2hhbmdlcy4gWW91IG5lZWQgdG8gbWFrZQ0KPiBzYW1lIGNo YW5nZSBpbiBrZXJuZWwgc2lkZSBhbHNvLiBBbmQgcGxlYXNlIHVzZSBjMTEgcmluZyAoc2VlIHJ0 ZV9yaW5nKQ0KPiBtZWNoYW5pc20gc28gdGhhdCBpdCB3b24ndCBpbXBhY3Qgb3RoZXIgcGxhdGZv cm1zIGxpa2UgaW50ZWwuIFdlIG5lZWQgdGhpcw0KPiBjaGFuZ2UganVzdCBmb3IgYXJtIGFuZCBw cGMuDQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXw0KPiA+Pj4+ICAgICA+IEZyb206IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25uYXBw YS5OYWdhcmFoYWxsaUBhcm0uY29tPg0KPiA+Pj4+ICAgICA+IFNlbnQ6IFdlZG5lc2RheSwgQXVn dXN0IDI5LCAyMDE4IDEwOjI5IEFNDQo+ID4+Pj4gICAgID4gVG86IEdhdmluIEh1OyBLb2traWxh Z2FkZGEsIEtpcmFuOyBGZXJydWggWWlnaXQ7IEphY29iLCBKZXJpbg0KPiA+Pj4+ICAgICA+IENj OiBkZXZAZHBkay5vcmc7IG5kOyBPbGEgTGlsamVkYWhsOyBTdGV2ZSBDYXBwZXINCj4gPj4+PiAg ICAgPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBm aWZvIHByb2R1Y2VyDQo+IHN5bmNocm9uaXphdGlvbg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAg ID4NCj4gPj4+PiAgICAgPiBFeHRlcm5hbCBFbWFpbA0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAg ID4gSSBhZ3JlZSB3aXRoIEdhdmluIGhlcmUuIFN0b3JlIHRvIGZpZm8tPndyaXRlIGFuZCBmaWZv LT5yZWFkIGNhbiBnZXQNCj4gaG9pc3RlZCByZXN1bHRpbmcgaW4gYWNjZXNzaW5nIGludmFsaWQg YnVmZmVyIGFycmF5IGVudHJpZXMgb3Igb3ZlciB3cml0aW5nIG9mIHRoZQ0KPiBidWZmZXIgYXJy YXkgZW50cmllcy4NCj4gPj4+PiAgICAgPg0KPiA+Pj4+ICAgICA+IElNTywgd2Ugc2hvdWxkIHNv bHZlIHRoaXMgdXNpbmcgYzExIGF0b21pY3MuIFRoaXMgd2lsbCBhbHNvIGhlbHANCj4gcmVtb3Zl IHRoZSB1c2Ugb2Yg4oCYdm9sYXRpbGXigJkgZnJvbSDigJhydGVfa25pX2ZpZm/igJkgc3RydWN0 dXJlLg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPg0KPiA+Pj4+ICAg ICA+IElmIHlvdSB3YW50IHVzIHRvIHB1dCB0b2dldGhlciBhIHBhdGNoIHdpdGggdGhpcyBpZGVh LCBwbGVhc2UgbGV0IHVzDQo+IGtub3cuDQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPg0KPiA+ Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4gVGhhbmsgeW91LA0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4g ICAgID4gSG9ubmFwcGENCj4gPj4+PiAgICAgPg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4N Cj4gPj4+PiAgICAgPiBGcm9tOiBHYXZpbiBIdQ0KPiA+Pj4+ICAgICA+IFNlbnQ6IFR1ZXNkYXks IEF1Z3VzdCAyOCwgMjAxOCAyOjMxIFBNDQo+ID4+Pj4gICAgID4gVG86IEtva2tpbGFnYWRkYSwg S2lyYW4gPEtpcmFuLktva2tpbGFnYWRkYUBjYXZpdW0uY29tPjsgRmVycnVoDQo+IFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPjsgSmFjb2IsIEplcmluDQo+IDxKZXJpbi5KYWNvYktvbGxh bnVra2FyYW5AY2F2aXVtLmNvbT4NCj4gPj4+PiAgICAgPiBDYzogZGV2QGRwZGsub3JnOyBIb25u YXBwYSBOYWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IG5kIDxu ZEBhcm0uY29tPjsgT2xhIExpbGplZGFobA0KPiA8T2xhLkxpbGplZGFobEBhcm0uY29tPjsgU3Rl dmUgQ2FwcGVyIDxTdGV2ZS5DYXBwZXJAYXJtLmNvbT4NCj4gPj4+PiAgICAgPiBTdWJqZWN0OiBS RTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIGtuaTogZml4IGtuaSBSeCBmaWZvIHByb2R1Y2VyDQo+ IHN5bmNocm9uaXphdGlvbg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAg Pg0KPiA+Pj4+ICAgICA+IEFzc3VtaW5nIHJlYWRlciBhbmQgd3JpdGVyIG1heSBleGVjdXRlIG9u IGRpZmZlcmVudCBDUFUncywgdGhpcw0KPiBiZWNvbWUgc3RhbmRhcmQgbXVsdGl0aHJlYWRlZCBw cm9ncmFtbWluZy4NCj4gPj4+PiAgICAgPg0KPiA+Pj4+ICAgICA+IFdlIGFyZSBjb25jZXJuZWQg YWJvdXQgdGhhdCB1cGRhdGUgdGhlIHJlYWRlciBwb2ludGVyIHRvbw0KPiBlYXJseSh3ZWFrIG9y ZGVyaW5nIG1heSByZW9yZGVyIGl0IGJlZm9yZSByZWFkaW5nIGZyb20gdGhlIHNsb3RzKSwgdGhh dCBtZWFucw0KPiB0aGUgc2xvdHMgYXJlIHJlbGVhc2VkIGFuZCBtYXkgaW1tZWRpYXRlbHkgb3Zl cndyaXR0ZW4gYnkgdGhlIHdyaXRlciB0aGVuDQo+IHlvdSBnZXQg4oCcdG9vIG5ld+KAnSBkYXRh IGFuZCBnZXQgbG9zdCBvZiB0aGUgb2xkIGRhdGEuDQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAg Pg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4gRnJvbTogS29ra2lsYWdhZGRhLCBLaXJhbg0K PiA8S2lyYW4uS29ra2lsYWdhZGRhQGNhdml1bS5jb208bWFpbHRvOktpcmFuLktva2tpbGFnYWRk YUBjYXZpdW0uY29tPj4NCj4gPj4+PiAgICAgPiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMjgsIDIw MTggNjo0NCBQTQ0KPiA+Pj4+ICAgICA+IFRvOiBHYXZpbiBIdSA8R2F2aW4uSHVAYXJtLmNvbTxt YWlsdG86R2F2aW4uSHVAYXJtLmNvbT4+Ow0KPiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBp bnRlbC5jb208bWFpbHRvOmZlcnJ1aC55aWdpdEBpbnRlbC5jb20+PjsgSmFjb2IsDQo+IEplcmlu DQo+IDxKZXJpbi5KYWNvYktvbGxhbnVra2FyYW5AY2F2aXVtLmNvbTxtYWlsdG86SmVyaW4uSmFj b2JLb2xsYW51a2thcmFuQGNhDQo+IHZpdW0uY29tPj4NCj4gPj4+PiAgICAgPiBDYzogZGV2QGRw ZGsub3JnPG1haWx0bzpkZXZAZHBkay5vcmc+OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA8SG9u bmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbTxtYWlsdG86SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJt LmNvbT4+DQo+ID4+Pj4gICAgID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBr bmk6IGZpeCBrbmkgUnggZmlmbyBwcm9kdWNlcg0KPiBzeW5jaHJvbml6YXRpb24NCj4gPj4+PiAg ICAgPg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPiBJbiB0aGlzIGlu c3RhbmNlIHRoZXJlIHdvbid0IGJlIGFueSBwcm9ibGVtLCBhcyB1bnRpbCB0aGUgdmFsdWUgb2YN Cj4gZmlmby0+d3JpdGUgY2hhbmdlcywgdGhpcyBsb29wIHdvbid0IGdldCBleGVjdXRlZC4gQXMg b2Ygbm93IHdlIGRpZG4ndCBzZWUgYW55DQo+IGlzc3VlIHdpdGggaXQgYW5kIGZvciBwZXJmb3Jt YW5jZSByZWFzb25zLCB3ZSBkb24ndCB3YW50IHRvIGtlZXAgcmVhZCBiYXJyaWVyLg0KPiA+Pj4+ ICAgICA+DQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAgPg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4g ICAgID4NCj4gPj4+PiAgICAgPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4gRnJvbTogR2F2aW4gSHUgPEdhdmluLkh1QGFybS5jb208 bWFpbHRvOkdhdmluLkh1QGFybS5jb20+Pg0KPiA+Pj4+ICAgICA+IFNlbnQ6IE1vbmRheSwgQXVn dXN0IDI3LCAyMDE4IDk6MTAgUE0NCj4gPj4+PiAgICAgPiBUbzogRmVycnVoIFlpZ2l0OyBLb2tr aWxhZ2FkZGEsIEtpcmFuOyBKYWNvYiwgSmVyaW4NCj4gPj4+PiAgICAgPiBDYzogZGV2QGRwZGsu b3JnPG1haWx0bzpkZXZAZHBkay5vcmc+OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA+Pj4+ICAg ICA+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtQQVRDSCB2Ml0ga25pOiBmaXgga25pIFJ4IGZp Zm8gcHJvZHVjZXINCj4gc3luY2hyb25pemF0aW9uDQo+ID4+Pj4gICAgID4NCj4gPj4+PiAgICAg Pg0KPiA+Pj4+ICAgICA+DQo+ID4+Pj4gICAgID4gRXh0ZXJuYWwgRW1haWwNCj4gPj4+PiAgICAg Pg0KPiA+Pj4+ICAgICA+IFRoaXMgZml4IGlzIG5vdCBjb21wbGV0ZSwga25pX2ZpZm9fZ2V0IHJl cXVpcmVzIGEgcmVhZCBmZW5jZSBhbHNvLA0KPiBvdGhlcndpc2UgaXQgcHJvYmFibHkgZ2V0cyBz dGFsZSBkYXRhIG9uIGEgd2VhayBvcmRlcmluZyBwbGF0Zm9ybS4NCj4gPj4+PiAgICAgPg0KPiA+ Pj4+ICAgICA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiAgICAgPiA+IEZy b206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5vcmc8bWFpbHRvOmRldi0NCj4gYm91bmNlc0BkcGRr Lm9yZz4+IE9uIEJlaGFsZiBPZiBGZXJydWggWWlnaXQNCj4gPj4+PiAgICAgPiA+IFNlbnQ6IE1v bmRheSwgQXVndXN0IDI3LCAyMDE4IDEwOjA4IFBNDQo+ID4+Pj4gICAgID4gPiBUbzogS2lyYW4g S3VtYXINCj4gPGtrb2traWxhZ2FkZGFAY2F2aXVtbmV0d29ya3MuY29tPG1haWx0bzpra29ra2ls YWdhZGRhQGNhdml1bW5ldHdvcg0KPiBrcy5jb20+PjsNCj4gPj4+PiAgICAgPiA+DQo+IGplcmlu LmphY29iQGNhdml1bW5ldHdvcmtzLmNvbTxtYWlsdG86amVyaW4uamFjb2JAY2F2aXVtbmV0d29y a3MuY29tPg0KPiA+Pj4+ICAgICA+ID4gQ2M6IGRldkBkcGRrLm9yZzxtYWlsdG86ZGV2QGRwZGsu b3JnPg0KPiA+Pj4+ICAgICA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYyXSBr bmk6IGZpeCBrbmkgUnggZmlmbyBwcm9kdWNlcg0KPiA+Pj4+ICAgICA+ID4gc3luY2hyb25pemF0 aW9uDQo+ID4+Pj4gICAgID4gPg0KPiA+Pj4+ICAgICA+ID4gT24gOC8xNi8yMDE4IDEwOjU1IEFN LCBLaXJhbiBLdW1hciB3cm90ZToNCj4gPj4+PiAgICAgPiA+ID4gV2l0aCBleGlzdGluZyBjb2Rl IGluIGtuaV9maWZvX3B1dCwgcnhfcSB2YWx1ZXMgYXJlIG5vdCBiZWluZw0KPiB1cGRhdGVkDQo+ ID4+Pj4gICAgID4gPiA+IGJlZm9yZSB1cGRhdGluZyBmaWZvX3dyaXRlLiBXaGlsZSByZWFkaW5n IHJ4X3EgaW4NCj4ga25pX25ldF9yeF9ub3JtYWwsDQo+ID4+Pj4gICAgID4gPiA+IFRoaXMgaXMg Y2F1c2luZyB0aGUgc3luYyBpc3N1ZSBvbiBvdGhlciBjb3JlLiBTbyBhZGRpbmcgYSB3cml0ZQ0K PiA+Pj4+ICAgICA+ID4gPiBiYXJyaWVyIHRvIG1ha2Ugc3VyZSB0aGUgdmFsdWVzIGJlaW5nIHN5 bmNlZCBiZWZvcmUgdXBkYXRpbmcNCj4gZmlmb193cml0ZS4NCj4gPj4+PiAgICAgPiA+ID4NCj4g Pj4+PiAgICAgPiA+ID4gRml4ZXM6IDNmYzVjYTJmNjM1MiAoImtuaTogaW5pdGlhbCBpbXBvcnQi KQ0KPiA+Pj4+ICAgICA+ID4gPg0KPiA+Pj4+ICAgICA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBLaXJh biBLdW1hcg0KPiA8a2tva2tpbGFnYWRkYUBjYXZpdW1uZXR3b3Jrcy5jb208bWFpbHRvOmtrb2tr aWxhZ2FkZGFAY2F2aXVtbmV0d29yDQo+IGtzLmNvbT4+DQo+ID4+Pj4gICAgID4gPiA+IEFja2Vk LWJ5OiBKZXJpbiBKYWNvYg0KPiA8amVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tPG1haWx0 bzpqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20NCj4gPj4NCj4gPj4+PiAgICAgPiA+DQo+ ID4+Pj4gICAgID4gPiBBY2tlZC1ieTogRmVycnVoIFlpZ2l0DQo+IDxmZXJydWgueWlnaXRAaW50 ZWwuY29tPG1haWx0bzpmZXJydWgueWlnaXRAaW50ZWwuY29tPj4NCj4gPj4+PiAgICAgPiBJTVBP UlRBTlQgTk9USUNFOiBUaGUgY29udGVudHMgb2YgdGhpcyBlbWFpbCBhbmQgYW55DQo+IGF0dGFj aG1lbnRzIGFyZSBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHByaXZpbGVnZWQuIElmIHlv dSBhcmUgbm90IHRoZQ0KPiBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNl bmRlciBpbW1lZGlhdGVseSBhbmQgZG8gbm90IGRpc2Nsb3NlDQo+IHRoZSBjb250ZW50cyB0byBh bnkgb3RoZXIgcGVyc29uLCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5 IHRoZQ0KPiBpbmZvcm1hdGlvbiBpbiBhbnkgbWVkaXVtLiBUaGFuayB5b3UuDQo+ID4+Pj4NCj4g Pj4+Pg0KDQo=