From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Wentland, Harry" Subject: Re: [PATCH v2 04/10] drm/amd/display: dc/bios: add support for DCE6 Date: Wed, 17 Oct 2018 19:53:28 +0000 Message-ID: <4366d902-ebd2-50ac-9f6c-ba14da12f084@amd.com> References: <20181017083513.20913-1-issor.oruam@gmail.com> <20181017083513.20913-5-issor.oruam@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181017083513.20913-5-issor.oruam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Content-Language: en-US Content-ID: <19D892DEAEB8384CBC085E016F5192E3-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Mauro Rossi , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Deucher, Alexander" , "mike-4+n8WJKc9ve9FHfhHBbuYA@public.gmane.org" , "sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" , "ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" T24gMjAxOC0xMC0xNyA0OjM1IGEubS4sIE1hdXJvIFJvc3NpIHdyb3RlOg0KPiBEQ0U2IHRhcmdl dHMgYXJlIGFkZGVkIHJlcGxpY2F0aW5nIGV4aXN0aW5nIERDRTggaW1wbGVtZW50YXRpb24uDQo+ IC0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvTWFrZWZpbGUgIHwg ICA5ICsNCj4gIC4uLi9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9oZWxwZXIuYyAgICB8 ICAgOCArDQo+ICAuLi4vZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVscGVyLmggICAg fCAgIDMgKw0KPiAgLi4uL2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlX2hlbHBlcjIuYyAg IHwgICA4ICsNCj4gIC4uLi9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9oZWxwZXIyLmgg ICB8ICAgMyArDQo+ICAuLi4vYmlvcy9kY2U2MC9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2U2MC5j ICAgfCAzNTQgKysrKysrKysrKysrKysrKysrDQo+ICAuLi4vYmlvcy9kY2U2MC9jb21tYW5kX3Rh YmxlX2hlbHBlcl9kY2U2MC5oICAgfCAgMzMgKysNCj4gIDcgZmlsZXMgY2hhbmdlZCwgNDE4IGlu c2VydGlvbnMoKykNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvYmlvcy9kY2U2MC9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2U2MC5jDQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlNjAv Y29tbWFuZF90YWJsZV9oZWxwZXJfZGNlNjAuaA0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2Jpb3MvTWFrZWZpbGUNCj4gaW5kZXggMjM5ZTg2YmJlYzVhLi5lZDZiNWU5 NzYzZjYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9z L01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL01h a2VmaWxlDQo+IEBAIC0zMSw2ICszMSwxNSBAQCBBTURfREFMX0JJT1MgPSAkKGFkZHByZWZpeCAk KEFNRERBTFBBVEgpL2RjL2Jpb3MvLCQoQklPUykpDQo+ICANCj4gIEFNRF9ESVNQTEFZX0ZJTEVT ICs9ICQoQU1EX0RBTF9CSU9TKQ0KPiAgDQo+ICsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+ICsj IERDRSA2eA0KPiArIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiArIyBBbGwgRENFNi54IGFyZSBk ZXJpdmVkIGZyb20gRENFNi4wLCBzbyA2LjAgTVVTVCBiZSBkZWZpbmVkIGlmIEFOWSBvZg0KPiAr IyBEQ0U2LnggaXMgY29tcGlsZWQuDQo+ICtpZmRlZiBDT05GSUdfRFJNX0FNRF9EQ19TSQ0KPiAr QU1EX0RJU1BMQVlfRklMRVMgKz0gJChBTUREQUxQQVRIKS9kYy9iaW9zL2RjZTYwL2NvbW1hbmRf dGFibGVfaGVscGVyX2RjZTYwLm8NCj4gK2VuZGlmDQo+ICsNCj4gICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMNCj4gICMgRENFIDh4DQo+ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJs ZV9oZWxwZXIuYw0KPiBpbmRleCAyNTNiYmIxZWVhNjAuLjQ4YjRlZjAzZmM4ZiAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9o ZWxwZXIuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9jb21t YW5kX3RhYmxlX2hlbHBlci5jDQo+IEBAIC0zNiw2ICszNiwxNCBAQCBib29sIGRhbF9iaW9zX3Bh cnNlcl9pbml0X2NtZF90YmxfaGVscGVyKA0KPiAgCWVudW0gZGNlX3ZlcnNpb24gZGNlKQ0KPiAg ew0KPiAgCXN3aXRjaCAoZGNlKSB7DQo+ICsjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQ19T SSkNCj4gKwljYXNlIERDRV9WRVJTSU9OXzZfMDoNCj4gKwljYXNlIERDRV9WRVJTSU9OXzZfMToN Cj4gKwljYXNlIERDRV9WRVJTSU9OXzZfNDoNCj4gKwkJKmggPSBkYWxfY21kX3RibF9oZWxwZXJf ZGNlNjBfZ2V0X3RhYmxlKCk7DQoNCkNhbiB3ZSBqdXN0IHBvaW50IHRoZXNlIHRvIHRoZSBkY2U4 MCB2ZXJzaW9uIHNpbmNlIHRoZXkncmUgZXhhY3RseSB0aGUgc2FtZT8NCg0KPiArCQlyZXR1cm4g dHJ1ZTsNCj4gKyNlbmRpZg0KPiArDQo+ICAJY2FzZSBEQ0VfVkVSU0lPTl84XzA6DQo+ICAJY2Fz ZSBEQ0VfVkVSU0lPTl84XzE6DQo+ICAJY2FzZSBEQ0VfVkVSU0lPTl84XzM6DQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9jb21tYW5kX3RhYmxlX2hl bHBlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJs ZV9oZWxwZXIuaA0KPiBpbmRleCA0YzM3ODlkZjI1M2QuLmRmZDMwYWFmNDAzMiAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9o ZWxwZXIuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9jb21t YW5kX3RhYmxlX2hlbHBlci5oDQo+IEBAIC0yNiw2ICsyNiw5IEBADQo+ICAjaWZuZGVmIF9fREFM X0NPTU1BTkRfVEFCTEVfSEVMUEVSX0hfXw0KPiAgI2RlZmluZSBfX0RBTF9DT01NQU5EX1RBQkxF X0hFTFBFUl9IX18NCj4gIA0KPiArI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENfU0kpDQo+ ICsjaW5jbHVkZSAiZGNlNjAvY29tbWFuZF90YWJsZV9oZWxwZXJfZGNlNjAuaCINCj4gKyNlbmRp Zg0KPiAgI2luY2x1ZGUgImRjZTgwL2NvbW1hbmRfdGFibGVfaGVscGVyX2RjZTgwLmgiDQo+ICAj aW5jbHVkZSAiZGNlMTEwL2NvbW1hbmRfdGFibGVfaGVscGVyX2RjZTExMC5oIg0KPiAgI2luY2x1 ZGUgImRjZTExMi9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2UxMTIuaCINCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVscGVy Mi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFuZF90YWJsZV9o ZWxwZXIyLmMNCj4gaW5kZXggNjViMDA2YWQzNzJlLi45MjI4OGM1ODI5MzQgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFibGVfaGVs cGVyMi5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1h bmRfdGFibGVfaGVscGVyMi5jDQo+IEBAIC0zNyw2ICszNywxNCBAQCBib29sIGRhbF9iaW9zX3Bh cnNlcl9pbml0X2NtZF90YmxfaGVscGVyMigNCj4gIAllbnVtIGRjZV92ZXJzaW9uIGRjZSkNCj4g IHsNCj4gIAlzd2l0Y2ggKGRjZSkgew0KPiArI2lmIGRlZmluZWQoQ09ORklHX0RSTV9BTURfRENf U0kpDQo+ICsJY2FzZSBEQ0VfVkVSU0lPTl82XzA6DQo+ICsJY2FzZSBEQ0VfVkVSU0lPTl82XzE6 DQo+ICsJY2FzZSBEQ0VfVkVSU0lPTl82XzQ6DQo+ICsJCSpoID0gZGFsX2NtZF90YmxfaGVscGVy X2RjZTYwX2dldF90YWJsZSgpOw0KDQpTYW1lIGFzIGFib3ZlLg0KDQpIYXJyeQ0KDQo+ICsJCXJl dHVybiB0cnVlOw0KPiArI2VuZGlmDQo+ICsNCj4gIAljYXNlIERDRV9WRVJTSU9OXzhfMDoNCj4g IAljYXNlIERDRV9WRVJTSU9OXzhfMToNCj4gIAljYXNlIERDRV9WRVJTSU9OXzhfMzoNCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRfdGFi bGVfaGVscGVyMi5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvY29tbWFu ZF90YWJsZV9oZWxwZXIyLmgNCj4gaW5kZXggNzg1ZmNiMjBhMWI5Li42NmUwYTNlNzM3NjggMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2NvbW1hbmRf dGFibGVfaGVscGVyMi5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9i aW9zL2NvbW1hbmRfdGFibGVfaGVscGVyMi5oDQo+IEBAIC0yNiw2ICsyNiw5IEBADQo+ICAjaWZu ZGVmIF9fREFMX0NPTU1BTkRfVEFCTEVfSEVMUEVSMl9IX18NCj4gICNkZWZpbmUgX19EQUxfQ09N TUFORF9UQUJMRV9IRUxQRVIyX0hfXw0KPiAgDQo+ICsjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FN RF9EQ19TSSkNCj4gKyNpbmNsdWRlICJkY2U2MC9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2U2MC5o Ig0KPiArI2VuZGlmDQo+ICAjaW5jbHVkZSAiZGNlODAvY29tbWFuZF90YWJsZV9oZWxwZXJfZGNl ODAuaCINCj4gICNpbmNsdWRlICJkY2UxMTAvY29tbWFuZF90YWJsZV9oZWxwZXJfZGNlMTEwLmgi DQo+ICAjaW5jbHVkZSAiZGNlMTEyL2NvbW1hbmRfdGFibGVfaGVscGVyMl9kY2UxMTIuaCINCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iaW9zL2RjZTYwL2Nv bW1hbmRfdGFibGVfaGVscGVyX2RjZTYwLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvYmlvcy9kY2U2MC9jb21tYW5kX3RhYmxlX2hlbHBlcl9kY2U2MC5jDQo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNTUyNzc4Y2U5ODM1DQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlNjAv Y29tbWFuZF90YWJsZV9oZWxwZXJfZGNlNjAuYw0KPiBAQCAtMCwwICsxLDM1NCBAQA0KPiArLyoN Cj4gKyAqIENvcHlyaWdodCAyMDEyLTE1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCj4g KyAqDQo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQ0KPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwNCj4gKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24NCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLA0KPiArICogYW5kL29yIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlDQo+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOg0KPiArICoNCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluDQo+ ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4N Cj4gKyAqDQo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KPiArICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQo+ ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U LiAgSU4gTk8gRVZFTlQgU0hBTEwNCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFV VEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUg0KPiArICogT1RIRVIg TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsDQo+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1INCj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4NCj4gKyAqDQo+ICsgKiBBdXRob3JzOiBBTUQNCj4gKyAqDQo+ICsgKi8NCj4gKw0K PiArI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiDQo+ICsNCj4gKyNpbmNsdWRlICJhdG9tLmgiDQo+ ICsNCj4gKyNpbmNsdWRlICJpbmNsdWRlL2dycGhfb2JqZWN0X2lkLmgiDQo+ICsjaW5jbHVkZSAi aW5jbHVkZS9ncnBoX29iamVjdF9kZWZzLmgiDQo+ICsjaW5jbHVkZSAiaW5jbHVkZS9iaW9zX3Bh cnNlcl90eXBlcy5oIg0KPiArDQo+ICsjaW5jbHVkZSAiLi4vY29tbWFuZF90YWJsZV9oZWxwZXIu aCINCj4gKw0KPiArc3RhdGljIHVpbnQ4X3QgZW5jb2Rlcl9hY3Rpb25fdG9fYXRvbShlbnVtIGJw X2VuY29kZXJfY29udHJvbF9hY3Rpb24gYWN0aW9uKQ0KPiArew0KPiArCXVpbnQ4X3QgYXRvbV9h Y3Rpb24gPSAwOw0KPiArDQo+ICsJc3dpdGNoIChhY3Rpb24pIHsNCj4gKwljYXNlIEVOQ09ERVJf Q09OVFJPTF9FTkFCTEU6DQo+ICsJCWF0b21fYWN0aW9uID0gQVRPTV9FTkFCTEU7DQo+ICsJCWJy ZWFrOw0KPiArCWNhc2UgRU5DT0RFUl9DT05UUk9MX0RJU0FCTEU6DQo+ICsJCWF0b21fYWN0aW9u ID0gQVRPTV9ESVNBQkxFOw0KPiArCQlicmVhazsNCj4gKwljYXNlIEVOQ09ERVJfQ09OVFJPTF9T RVRVUDoNCj4gKwkJYXRvbV9hY3Rpb24gPSBBVE9NX0VOQ09ERVJfQ01EX1NFVFVQOw0KPiArCQli cmVhazsNCj4gKwljYXNlIEVOQ09ERVJfQ09OVFJPTF9JTklUOg0KPiArCQlhdG9tX2FjdGlvbiA9 IEFUT01fRU5DT0RFUl9JTklUOw0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0KPiArCQlCUkVB S19UT19ERUJVR0dFUigpOyAvKiBVbmhhbmRsZSBhY3Rpb24gaW4gZHJpdmVyLiEhICovDQo+ICsJ CWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBhdG9tX2FjdGlvbjsNCj4gK30NCj4gKw0K PiArc3RhdGljIGJvb2wgZW5naW5lX2JwX3RvX2F0b20oZW51bSBlbmdpbmVfaWQgaWQsIHVpbnQz Ml90ICphdG9tX2VuZ2luZV9pZCkNCj4gK3sNCj4gKwlib29sIHJlc3VsdCA9IGZhbHNlOw0KPiAr DQo+ICsJaWYgKGF0b21fZW5naW5lX2lkICE9IE5VTEwpDQo+ICsJCXN3aXRjaCAoaWQpIHsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHQToNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzFfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHQjoNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzJfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHQzoNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzNfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHRDoNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzRfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHRToNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzVfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHRjoNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzZfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfRElHRzoNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RJRzdfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJY2FzZSBFTkdJTkVfSURfREFDQToNCj4gKwkJCSphdG9tX2VuZ2luZV9pZCA9IEFTSUNfSU5U X0RBQzFfRU5DT0RFUl9JRDsNCj4gKwkJCXJlc3VsdCA9IHRydWU7DQo+ICsJCQlicmVhazsNCj4g KwkJZGVmYXVsdDoNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsNCj4gKwlyZXR1cm4gcmVzdWx0 Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgYm9vbCBjbG9ja19zb3VyY2VfaWRfdG9fYXRvbSgNCj4g KwllbnVtIGNsb2NrX3NvdXJjZV9pZCBpZCwNCj4gKwl1aW50MzJfdCAqYXRvbV9wbGxfaWQpDQo+ ICt7DQo+ICsJYm9vbCByZXN1bHQgPSB0cnVlOw0KPiArDQo+ICsJaWYgKGF0b21fcGxsX2lkICE9 IE5VTEwpDQo+ICsJCXN3aXRjaCAoaWQpIHsNCj4gKwkJY2FzZSBDTE9DS19TT1VSQ0VfSURfUExM MDoNCj4gKwkJCSphdG9tX3BsbF9pZCA9IEFUT01fUFBMTDA7DQo+ICsJCQlicmVhazsNCj4gKwkJ Y2FzZSBDTE9DS19TT1VSQ0VfSURfUExMMToNCj4gKwkJCSphdG9tX3BsbF9pZCA9IEFUT01fUFBM TDE7DQo+ICsJCQlicmVhazsNCj4gKwkJY2FzZSBDTE9DS19TT1VSQ0VfSURfUExMMjoNCj4gKwkJ CSphdG9tX3BsbF9pZCA9IEFUT01fUFBMTDI7DQo+ICsJCQlicmVhazsNCj4gKwkJY2FzZSBDTE9D S19TT1VSQ0VfSURfRVhURVJOQUw6DQo+ICsJCQkqYXRvbV9wbGxfaWQgPSBBVE9NX1BQTExfSU5W QUxJRDsNCj4gKwkJCWJyZWFrOw0KPiArCQljYXNlIENMT0NLX1NPVVJDRV9JRF9ERlM6DQo+ICsJ CQkqYXRvbV9wbGxfaWQgPSBBVE9NX0VYVF9QTEwxOw0KPiArCQkJYnJlYWs7DQo+ICsJCWNhc2Ug Q0xPQ0tfU09VUkNFX0lEX1ZDRToNCj4gKwkJCS8qIGZvciBWQ0UgZW5jb2RpbmcsDQo+ICsJCQkg KiB3ZSBuZWVkIHRvIHBhc3MgaW4gQVRPTV9QUExMX0lOVkFMSUQNCj4gKwkJCSAqLw0KPiArCQkJ KmF0b21fcGxsX2lkID0gQVRPTV9QUExMX0lOVkFMSUQ7DQo+ICsJCQlicmVhazsNCj4gKwkJY2Fz ZSBDTE9DS19TT1VSQ0VfSURfRFBfRFRPOg0KPiArCQkJLyogV2hlbiBwcm9ncmFtbWluZyBEUCBE VE8gUExMIElEIHNob3VsZCBiZSBpbnZhbGlkICovDQo+ICsJCQkqYXRvbV9wbGxfaWQgPSBBVE9N X1BQTExfSU5WQUxJRDsNCj4gKwkJCWJyZWFrOw0KPiArCQljYXNlIENMT0NLX1NPVVJDRV9JRF9V TkRFRklORUQ6DQo+ICsJCQlCUkVBS19UT19ERUJVR0dFUigpOyAvKiBjaGVjayB3aGVuIHRoaXMg d2lsbCBoYXBwZW4hICovDQo+ICsJCQkqYXRvbV9wbGxfaWQgPSBBVE9NX1BQTExfSU5WQUxJRDsN Cj4gKwkJCXJlc3VsdCA9IGZhbHNlOw0KPiArCQkJYnJlYWs7DQo+ICsJCWRlZmF1bHQ6DQo+ICsJ CQlyZXN1bHQgPSBmYWxzZTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsNCj4gKwlyZXR1cm4g cmVzdWx0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdWludDhfdCBjbG9ja19zb3VyY2VfaWRfdG9f YXRvbV9waHlfY2xrX3NyY19pZCgNCj4gKwkJZW51bSBjbG9ja19zb3VyY2VfaWQgaWQpDQo+ICt7 DQo+ICsJdWludDhfdCBhdG9tX3BoeV9jbGtfc3JjX2lkID0gMDsNCj4gKw0KPiArCXN3aXRjaCAo aWQpIHsNCj4gKwljYXNlIENMT0NLX1NPVVJDRV9JRF9QTEwwOg0KPiArCQlhdG9tX3BoeV9jbGtf c3JjX2lkID0gQVRPTV9UUkFOU01JVFRFUl9DT05GSUdfVjVfUDBQTEw7DQo+ICsJCWJyZWFrOw0K PiArCWNhc2UgQ0xPQ0tfU09VUkNFX0lEX1BMTDE6DQo+ICsJCWF0b21fcGh5X2Nsa19zcmNfaWQg PSBBVE9NX1RSQU5TTUlUVEVSX0NPTkZJR19WNV9QMVBMTDsNCj4gKwkJYnJlYWs7DQo+ICsJY2Fz ZSBDTE9DS19TT1VSQ0VfSURfUExMMjoNCj4gKwkJYXRvbV9waHlfY2xrX3NyY19pZCA9IEFUT01f VFJBTlNNSVRURVJfQ09ORklHX1Y1X1AyUExMOw0KPiArCQlicmVhazsNCj4gKwljYXNlIENMT0NL X1NPVVJDRV9JRF9FWFRFUk5BTDoNCj4gKwkJYXRvbV9waHlfY2xrX3NyY19pZCA9IEFUT01fVFJB TlNNSVRURVJfQ09ORklHX1Y1X1JFRkNMS19TUkNfRVhUOw0KPiArCQlicmVhazsNCj4gKwlkZWZh dWx0Og0KPiArCQlhdG9tX3BoeV9jbGtfc3JjX2lkID0gQVRPTV9UUkFOU01JVFRFUl9DT05GSUdf VjVfUDFQTEw7DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBhdG9tX3BoeV9j bGtfc3JjX2lkID4+IDI7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB1aW50OF90IHNpZ25hbF90eXBl X3RvX2F0b21fZGlnX21vZGUoZW51bSBzaWduYWxfdHlwZSBzKQ0KPiArew0KPiArCXVpbnQ4X3Qg YXRvbV9kaWdfbW9kZSA9IEFUT01fVFJBTlNNSVRURVJfRElHTU9ERV9WNV9EUDsNCj4gKw0KPiAr CXN3aXRjaCAocykgew0KPiArCWNhc2UgU0lHTkFMX1RZUEVfRElTUExBWV9QT1JUOg0KPiArCWNh c2UgU0lHTkFMX1RZUEVfRURQOg0KPiArCQlhdG9tX2RpZ19tb2RlID0gQVRPTV9UUkFOU01JVFRF Ul9ESUdNT0RFX1Y1X0RQOw0KPiArCQlicmVhazsNCj4gKwljYXNlIFNJR05BTF9UWVBFX0xWRFM6 DQo+ICsJCWF0b21fZGlnX21vZGUgPSBBVE9NX1RSQU5TTUlUVEVSX0RJR01PREVfVjVfTFZEUzsN Cj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBTSUdOQUxfVFlQRV9EVklfU0lOR0xFX0xJTks6DQo+ICsJ Y2FzZSBTSUdOQUxfVFlQRV9EVklfRFVBTF9MSU5LOg0KPiArCQlhdG9tX2RpZ19tb2RlID0gQVRP TV9UUkFOU01JVFRFUl9ESUdNT0RFX1Y1X0RWSTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBTSUdO QUxfVFlQRV9IRE1JX1RZUEVfQToNCj4gKwkJYXRvbV9kaWdfbW9kZSA9IEFUT01fVFJBTlNNSVRU RVJfRElHTU9ERV9WNV9IRE1JOw0KPiArCQlicmVhazsNCj4gKwljYXNlIFNJR05BTF9UWVBFX0RJ U1BMQVlfUE9SVF9NU1Q6DQo+ICsJCWF0b21fZGlnX21vZGUgPSBBVE9NX1RSQU5TTUlUVEVSX0RJ R01PREVfVjVfRFBfTVNUOw0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0KPiArCQlhdG9tX2Rp Z19tb2RlID0gQVRPTV9UUkFOU01JVFRFUl9ESUdNT0RFX1Y1X0RWSTsNCj4gKwkJYnJlYWs7DQo+ ICsJfQ0KPiArDQo+ICsJcmV0dXJuIGF0b21fZGlnX21vZGU7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyB1aW50OF90IGhwZF9zZWxfdG9fYXRvbShlbnVtIGhwZF9zb3VyY2VfaWQgaWQpDQo+ICt7DQo+ ICsJdWludDhfdCBhdG9tX2hwZF9zZWwgPSAwOw0KPiArDQo+ICsJc3dpdGNoIChpZCkgew0KPiAr CWNhc2UgSFBEX1NPVVJDRUlEMToNCj4gKwkJYXRvbV9ocGRfc2VsID0gQVRPTV9UUkFOU01JVFRF Ul9DT05GSUdfVjVfSFBEMV9TRUw7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgSFBEX1NPVVJDRUlE MjoNCj4gKwkJYXRvbV9ocGRfc2VsID0gQVRPTV9UUkFOU01JVFRFUl9DT05GSUdfVjVfSFBEMl9T RUw7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgSFBEX1NPVVJDRUlEMzoNCj4gKwkJYXRvbV9ocGRf c2VsID0gQVRPTV9UUkFOU01JVFRFUl9DT05GSUdfVjVfSFBEM19TRUw7DQo+ICsJCWJyZWFrOw0K PiArCWNhc2UgSFBEX1NPVVJDRUlENDoNCj4gKwkJYXRvbV9ocGRfc2VsID0gQVRPTV9UUkFOU01J VFRFUl9DT05GSUdfVjVfSFBENF9TRUw7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgSFBEX1NPVVJD RUlENToNCj4gKwkJYXRvbV9ocGRfc2VsID0gQVRPTV9UUkFOU01JVFRFUl9DT05GSUdfVjVfSFBE NV9TRUw7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgSFBEX1NPVVJDRUlENjoNCj4gKwkJYXRvbV9o cGRfc2VsID0gQVRPTV9UUkFOU01JVFRFUl9DT05GSUdfVjVfSFBENl9TRUw7DQo+ICsJCWJyZWFr Ow0KPiArCWNhc2UgSFBEX1NPVVJDRUlEX1VOS05PV046DQo+ICsJZGVmYXVsdDoNCj4gKwkJYXRv bV9ocGRfc2VsID0gMDsNCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiArCXJldHVybiBhdG9tX2hwZF9z ZWwgPj4gNDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHVpbnQ4X3QgZGlnX2VuY29kZXJfc2VsX3Rv X2F0b20oZW51bSBlbmdpbmVfaWQgaWQpDQo+ICt7DQo+ICsJdWludDhfdCBhdG9tX2RpZ19lbmNv ZGVyX3NlbCA9IDA7DQo+ICsNCj4gKwlzd2l0Y2ggKGlkKSB7DQo+ICsJY2FzZSBFTkdJTkVfSURf RElHQToNCj4gKwkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19E SUdBX1NFTDsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBFTkdJTkVfSURfRElHQjoNCj4gKwkJYXRv bV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdCX1NFTDsNCj4gKwkJ YnJlYWs7DQo+ICsJY2FzZSBFTkdJTkVfSURfRElHQzoNCj4gKwkJYXRvbV9kaWdfZW5jb2Rlcl9z ZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdDX1NFTDsNCj4gKwkJYnJlYWs7DQo+ICsJY2Fz ZSBFTkdJTkVfSURfRElHRDoNCj4gKwkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5N U0lUVEVSX1Y1X19ESUdEX1NFTDsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBFTkdJTkVfSURfRElH RToNCj4gKwkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdF X1NFTDsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBFTkdJTkVfSURfRElHRjoNCj4gKwkJYXRvbV9k aWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdGX1NFTDsNCj4gKwkJYnJl YWs7DQo+ICsJY2FzZSBFTkdJTkVfSURfRElHRzoNCj4gKwkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwg PSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdHX1NFTDsNCj4gKwkJYnJlYWs7DQo+ICsJZGVmYXVs dDoNCj4gKwkJYXRvbV9kaWdfZW5jb2Rlcl9zZWwgPSBBVE9NX1RSQU5NU0lUVEVSX1Y1X19ESUdB X1NFTDsNCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIGF0b21fZGlnX2VuY29k ZXJfc2VsOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdWludDhfdCBwaHlfaWRfdG9fYXRvbShlbnVt IHRyYW5zbWl0dGVyIHQpDQo+ICt7DQo+ICsJdWludDhfdCBhdG9tX3BoeV9pZDsNCj4gKw0KPiAr CXN3aXRjaCAodCkgew0KPiArCWNhc2UgVFJBTlNNSVRURVJfVU5JUEhZX0E6DQo+ICsJCWF0b21f cGh5X2lkID0gQVRPTV9QSFlfSURfVU5JUEhZQTsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBUUkFO U01JVFRFUl9VTklQSFlfQjoNCj4gKwkJYXRvbV9waHlfaWQgPSBBVE9NX1BIWV9JRF9VTklQSFlC Ow0KPiArCQlicmVhazsNCj4gKwljYXNlIFRSQU5TTUlUVEVSX1VOSVBIWV9DOg0KPiArCQlhdG9t X3BoeV9pZCA9IEFUT01fUEhZX0lEX1VOSVBIWUM7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgVFJB TlNNSVRURVJfVU5JUEhZX0Q6DQo+ICsJCWF0b21fcGh5X2lkID0gQVRPTV9QSFlfSURfVU5JUEhZ RDsNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBUUkFOU01JVFRFUl9VTklQSFlfRToNCj4gKwkJYXRv bV9waHlfaWQgPSBBVE9NX1BIWV9JRF9VTklQSFlFOw0KPiArCQlicmVhazsNCj4gKwljYXNlIFRS QU5TTUlUVEVSX1VOSVBIWV9GOg0KPiArCQlhdG9tX3BoeV9pZCA9IEFUT01fUEhZX0lEX1VOSVBI WUY7DQo+ICsJCWJyZWFrOw0KPiArCWNhc2UgVFJBTlNNSVRURVJfVU5JUEhZX0c6DQo+ICsJCWF0 b21fcGh5X2lkID0gQVRPTV9QSFlfSURfVU5JUEhZRzsNCj4gKwkJYnJlYWs7DQo+ICsJZGVmYXVs dDoNCj4gKwkJYXRvbV9waHlfaWQgPSBBVE9NX1BIWV9JRF9VTklQSFlBOw0KPiArCQlicmVhazsN Cj4gKwl9DQo+ICsJcmV0dXJuIGF0b21fcGh5X2lkOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdWlu dDhfdCBkaXNwX3Bvd2VyX2dhdGluZ19hY3Rpb25fdG9fYXRvbSgNCj4gKwllbnVtIGJwX3BpcGVf Y29udHJvbF9hY3Rpb24gYWN0aW9uKQ0KPiArew0KPiArCXVpbnQ4X3QgYXRvbV9waXBlX2FjdGlv biA9IDA7DQo+ICsNCj4gKwlzd2l0Y2ggKGFjdGlvbikgew0KPiArCWNhc2UgQVNJQ19QSVBFX0RJ U0FCTEU6DQo+ICsJCWF0b21fcGlwZV9hY3Rpb24gPSBBVE9NX0RJU0FCTEU7DQo+ICsJCWJyZWFr Ow0KPiArCWNhc2UgQVNJQ19QSVBFX0VOQUJMRToNCj4gKwkJYXRvbV9waXBlX2FjdGlvbiA9IEFU T01fRU5BQkxFOw0KPiArCQlicmVhazsNCj4gKwljYXNlIEFTSUNfUElQRV9JTklUOg0KPiArCQlh dG9tX3BpcGVfYWN0aW9uID0gQVRPTV9JTklUOw0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0K PiArCQlCUkVBS19UT19ERUJVR0dFUigpOyAvKiBVbmhhbmRsZSBhY3Rpb24gaW4gZHJpdmVyISAq Lw0KPiArCQlicmVhazsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gYXRvbV9waXBlX2FjdGlvbjsN Cj4gK30NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21tYW5kX3RhYmxlX2hlbHBlciBj b21tYW5kX3RhYmxlX2hlbHBlcl9mdW5jcyA9IHsNCj4gKwkuY29udHJvbGxlcl9pZF90b19hdG9t ID0gZGFsX2NtZF90YWJsZV9oZWxwZXJfY29udHJvbGxlcl9pZF90b19hdG9tLA0KPiArCS5lbmNv ZGVyX2FjdGlvbl90b19hdG9tID0gZW5jb2Rlcl9hY3Rpb25fdG9fYXRvbSwNCj4gKwkuZW5naW5l X2JwX3RvX2F0b20gPSBlbmdpbmVfYnBfdG9fYXRvbSwNCj4gKwkuY2xvY2tfc291cmNlX2lkX3Rv X2F0b20gPSBjbG9ja19zb3VyY2VfaWRfdG9fYXRvbSwNCj4gKwkuY2xvY2tfc291cmNlX2lkX3Rv X2F0b21fcGh5X2Nsa19zcmNfaWQgPQ0KPiArCQljbG9ja19zb3VyY2VfaWRfdG9fYXRvbV9waHlf Y2xrX3NyY19pZCwNCj4gKwkuc2lnbmFsX3R5cGVfdG9fYXRvbV9kaWdfbW9kZSA9IHNpZ25hbF90 eXBlX3RvX2F0b21fZGlnX21vZGUsDQo+ICsJLmhwZF9zZWxfdG9fYXRvbSA9IGhwZF9zZWxfdG9f YXRvbSwNCj4gKwkuZGlnX2VuY29kZXJfc2VsX3RvX2F0b20gPSBkaWdfZW5jb2Rlcl9zZWxfdG9f YXRvbSwNCj4gKwkucGh5X2lkX3RvX2F0b20gPSBwaHlfaWRfdG9fYXRvbSwNCj4gKwkuZGlzcF9w b3dlcl9nYXRpbmdfYWN0aW9uX3RvX2F0b20gPSBkaXNwX3Bvd2VyX2dhdGluZ19hY3Rpb25fdG9f YXRvbSwNCj4gKwkuYXNzaWduX2NvbnRyb2xfcGFyYW1ldGVyID0NCj4gKwkJZGFsX2NtZF90YWJs ZV9oZWxwZXJfYXNzaWduX2NvbnRyb2xfcGFyYW1ldGVyLA0KPiArCS5jbG9ja19zb3VyY2VfaWRf dG9fcmVmX2Nsa19zcmMgPQ0KPiArCQlkYWxfY21kX3RhYmxlX2hlbHBlcl9jbG9ja19zb3VyY2Vf aWRfdG9fcmVmX2Nsa19zcmMsDQo+ICsJLnRyYW5zbWl0dGVyX2JwX3RvX2F0b20gPSBkYWxfY21k X3RhYmxlX2hlbHBlcl90cmFuc21pdHRlcl9icF90b19hdG9tLA0KPiArCS5lbmNvZGVyX2lkX3Rv X2F0b20gPSBkYWxfY21kX3RhYmxlX2hlbHBlcl9lbmNvZGVyX2lkX3RvX2F0b20sDQo+ICsJLmVu Y29kZXJfbW9kZV9icF90b19hdG9tID0NCj4gKwkJZGFsX2NtZF90YWJsZV9oZWxwZXJfZW5jb2Rl cl9tb2RlX2JwX3RvX2F0b20sDQo+ICt9Ow0KPiArDQo+ICtjb25zdCBzdHJ1Y3QgY29tbWFuZF90 YWJsZV9oZWxwZXIgKmRhbF9jbWRfdGJsX2hlbHBlcl9kY2U2MF9nZXRfdGFibGUodm9pZCkNCj4g K3sNCj4gKwlyZXR1cm4gJmNvbW1hbmRfdGFibGVfaGVscGVyX2Z1bmNzOw0KPiArfQ0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jpb3MvZGNlNjAvY29tbWFu ZF90YWJsZV9oZWxwZXJfZGNlNjAuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9i aW9zL2RjZTYwL2NvbW1hbmRfdGFibGVfaGVscGVyX2RjZTYwLmgNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi41OTFjNzk2ZDBiZjENCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmlvcy9kY2U2MC9jb21t YW5kX3RhYmxlX2hlbHBlcl9kY2U2MC5oDQo+IEBAIC0wLDAgKzEsMzMgQEANCj4gKy8qDQo+ICsg KiBDb3B5cmlnaHQgMjAxMi0xNSBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuDQo+ICsgKg0K PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGENCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksDQo+ICsgKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uDQo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwNCj4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQ0K PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoNCj4gKyAqDQo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbg0KPiArICog YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuDQo+ICsg Kg0KPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFO VFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1INCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLA0KPiArICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMDQo+ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1Io UykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1INCj4gKyAqIE9USEVSIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LA0KPiArICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SDQo+ICsgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdB UkUuDQo+ICsgKg0KPiArICogQXV0aG9yczogQU1EDQo+ICsgKg0KPiArICovDQo+ICsNCj4gKyNp Zm5kZWYgX19EQUxfQ09NTUFORF9UQUJMRV9IRUxQRVJfRENFNjBfSF9fDQo+ICsjZGVmaW5lIF9f REFMX0NPTU1BTkRfVEFCTEVfSEVMUEVSX0RDRTYwX0hfXw0KPiArDQo+ICtzdHJ1Y3QgY29tbWFu ZF90YWJsZV9oZWxwZXI7DQo+ICsNCj4gK2NvbnN0IHN0cnVjdCBjb21tYW5kX3RhYmxlX2hlbHBl ciAqZGFsX2NtZF90YmxfaGVscGVyX2RjZTYwX2dldF90YWJsZSh2b2lkKTsNCj4gKw0KPiArI2Vu ZGlmDQo+IA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==