From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.100; helo=mga07.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 51F2D210F93CF for ; Wed, 5 Sep 2018 02:56:49 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Sep 2018 02:56:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,333,1531810800"; d="scan'208";a="71760743" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga006.jf.intel.com with ESMTP; 05 Sep 2018 02:56:40 -0700 Received: from fmsmsx126.amr.corp.intel.com (10.18.125.43) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 5 Sep 2018 02:56:24 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX126.amr.corp.intel.com (10.18.125.43) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 5 Sep 2018 02:56:23 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.226]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.150]) with mapi id 14.03.0319.002; Wed, 5 Sep 2018 17:55:20 +0800 From: "Zeng, Star" To: Laszlo Ersek , edk2-devel-01 CC: Gerd Hoffmann , "Wang, Jian J" , "Ni, Ruiyu" , "Shi, Steven" , "Zeng, Star" Thread-Topic: [PATCH] MdeModulePkg/EhciDxe: fix host controller reset condition in BindingStart Thread-Index: AQHUQTNuAy95qhbdEkexZhGyLikIpqTeP02A//+vewCAAWrUYIAAFJqAgAILxvA= Date: Wed, 5 Sep 2018 09:55:20 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BBB55E8@shsmsx102.ccr.corp.intel.com> References: <20180831140330.26888-1-lersek@redhat.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BBB4C09@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BBB4E60@shsmsx102.ccr.corp.intel.com> <9aa5a24b-44b4-fb14-cb68-35028edf0906@redhat.com> In-Reply-To: <9aa5a24b-44b4-fb14-cb68-35028edf0906@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/EhciDxe: fix host controller reset condition in BindingStart X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Sep 2018 09:56:49 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhZ3JlZSB0byBjb21taXQgdGhpcyBwYXRjaCBmaXJzdC4gUmV2aWV3ZWQtYnk6IFN0YXIgWmVu ZyA8c3Rhci56ZW5nQGludGVsLmNvbT4gdG8gdGhpcyBwYXRjaC4NCg0KVG8gZnVydGhlciBlbmhh bmNlIHdpdGggYW4gYWJzdHJhY3RlZCBmdW5jdGlvbiwgaG93IGFib3V0IGxpa2UgYmVsb3c/DQoN CkJPT0xFQU4NCkVoY0lzRGVidWdQb3J0SW5Vc2UgKA0KSU4gQ09OU1QgVVNCMl9IQ19ERVYgKkVo YywNCklOIFVJTlQ4ICAgICAgICAgICAgICpQb3J0TnVtYmVyIE9QVElPTkFMDQopDQoNClRoYW5r cywNClN0YXINCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBMYXN6bG8gRXJzZWsg W21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0gDQpTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgNCwg MjAxOCA2OjM4IFBNDQpUbzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IGVkazIt ZGV2ZWwtMDEgPGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KQ2M6IEdlcmQgSG9mZm1hbm4gPGty YXhlbEByZWRoYXQuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBO aSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IFNoaSwgU3RldmVuIDxzdGV2ZW4uc2hpQGlu dGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9FaGNpRHhlOiBmaXgg aG9zdCBjb250cm9sbGVyIHJlc2V0IGNvbmRpdGlvbiBpbiBCaW5kaW5nU3RhcnQNCg0KT24gMDkv MDQvMTggMDM6MjcsIFplbmcsIFN0YXIgd3JvdGU6DQo+IE9oLCB5ZXMuIEdvdCB0aGUgcG9pbnQs IHRoZSBwYXRjaCBpcyBjb3JyZWN0IGluZGVlZC4gOikgVGhhbmtzIGZvciB0aGUgDQo+IGV4cGxh bmF0aW9uLg0KPg0KPiBNYXliZSwgYW4gYWJzdHJhY3RlZCBmdW5jdGlvbiB3aWxsIG1ha2UgdGhl IGxvZ2ljIG1vcmUgY2xlYXIsIGxpa2UgDQo+IEVoY0lzRGVidWdQb3J0SW5Vc2UoKS4NCj4gV2hh dCBkbyB5b3UgdGhpbms/DQoNCkhhaGEsIEkgdGhvdWdodCBvZiBhbG1vc3QgZXhhY3RseSB0aGUg c2FtZSBuYW1lIChqdXN0ICJJc0RlYnVnUG9ydEluVXNlKCkiLCBhbmQgbWFraW5nIGl0IFNUQVRJ QykgOikgVWx0aW1hdGVseSBob3dldmVyLCBJIGRpZG4ndCBwcm9wb3NlIGl0LCBmb3IgdGhlIGZv bGxvd2luZyByZWFzb246DQoNClRoZXJlIGlzIGFub3RoZXIgY29uZGl0aW9uYWwgaHVuayBhZGRl ZCBieSBjb21taXQgMDk5NDNmNWVjYzBmLCBuYW1lbHkgaW4gdGhlIEVoY0dldFJvb3RIdWJQb3J0 U3RhdHVzKCkgZnVuY3Rpb24uIEluIHRoZSBCdWd6aWxsYSwgSSB3cm90ZToNCg0KPiAgIC0gaW4g dGhlIEVoY0dldFJvb3RIdWJQb3J0U3RhdHVzKCkgZnVuY3Rpb24sIGlmIHRoZSBzdGF0dXMgcmVx dWVzdA0KPiAgICAgcmVmZXJzIHRvIHRoZSBkZWJ1ZyBwb3J0LCBhbmQgdGhlIGRlYnVnIHBvcnQg aXMgaW4gdXNlLCB0aGVuIHdlDQo+ICAgICBkb24ndCBhY3R1YWxseSBmZXRjaCB0aGUgc3RhdHVz IG9mIHRoZSBwb3J0LCB3ZSBqdXN0IHJlcG9ydA0KPiAgICAgc3RhdHVzPTAsIHN0YXR1c19jaGFu Z2U9MC4NCg0KYW5kIHRoZSBjb2RlIGdvZXMgbGlrZSB0aGlzOg0KDQo+ICAgaWYgKChFaGMtPkRl YnVnUG9ydE51bSAhPSAwKSAmJiAoUG9ydE51bWJlciA9PSAoRWhjLT5EZWJ1Z1BvcnROdW0gLSAx KSkpIHsNCj4gICAgIERiZ0N0cmxTdGF0dXMgPSBFaGNSZWFkRGJnUmVnaXN0ZXIoRWhjLCAwKTsN Cj4gICAgIGlmICgoRGJnQ3RybFN0YXR1cyAmIChVU0JfREVCVUdfUE9SVF9JTl9VU0UgfCBVU0Jf REVCVUdfUE9SVF9PV05FUikpID09IChVU0JfREVCVUdfUE9SVF9JTl9VU0UgfCBVU0JfREVCVUdf UE9SVF9PV05FUikpIHsNCj4gICAgICAgZ290byBPTl9FWElUOw0KPiAgICAgfQ0KPiAgIH0NCg0K SW4gdGhpcyBjYXNlLCB3ZSBub3Qgb25seSBjaGVjayB3aGV0aGVyIHRoZSBob3N0IGNvbnRyb2xs ZXIgaGFzIGEgZGVidWcgcG9ydCAoKmFueSogcG9ydCkgYW5kIHRoYXQgcG9ydCBpcyBpbiB1c2Us IHdlIGFsc28gY2hlY2sgd2hldGhlciB0aGUgc3RhdHVzIHJlcXVlc3QgcmVmZXJzIHNwZWNpZmlj YWxseSB0byB0aGF0IHBvcnQuDQoNClRoaXMgYWRkaXRpb25hbCByZXN0cmljdGlvbiBpcyBub3Qg ZWFzeSB0byBleHByZXNzIHdpdGggRWhjSXNEZWJ1Z1BvcnRJblVzZSgpLiBJZiB3ZSB3cm90ZQ0K DQogIGlmIChFaGNJc0RlYnVnUG9ydEluVXNlICgpICYmIChQb3J0TnVtYmVyID09IChFaGMtPkRl YnVnUG9ydE51bSAtIDEpKSkgew0KICAgIGdvdG8gT05fRVhJVDsNCiAgfQ0KDQp0aGVuIHRoYXQg d291bGRuJ3QgYmUgMTAwJSB0aGUgc2FtZSwgYmVjYXVzZSBpbiB0aGlzIHJlZm9ybXVsYXRlZCBj b25kaXRpb24sIHdlIGNvdWxkIGFjY2VzcyB0aGUgTU1JTyBkZWJ1ZyBzdGF0dXMgcmVnaXN0ZXIg KmJlZm9yZSogd2UgZGVjaWRlZCB0aGF0IHRoZSByb290IGh1YiBwb3J0IHN0YXR1cyByZXF1ZXN0 IHJlZmVycyB0byAqYW5vdGhlciogcG9ydC4NCg0KSG93IGFib3V0IHRoZSBmb2xsb3dpbmcgZnVu Y3Rpb246DQoNCj4gLyoqDQo+ICAgQ2hlY2sgd2hldGhlciB0aGUgaG9zdCBjb250cm9sbGVyIGhh cyBhbiBpbi11c2UgZGVidWcgcG9ydC4NCj4NCj4gICBAcGFyYW1baW5dIEVoYyAgICAgICAgIFRo ZSBFbmhhbmNlZCBIb3N0IENvbnRyb2xsZXIgdG8gcXVlcnkuDQo+DQo+ICAgQHBhcmFtW2luXSBQ b3J0TnVtYmVyICBJZiBQb3J0TnVtYmVyIGlzIGluIFswLCBNQVhfVUlOVDhdLCB0aGVuIHF1ZXJ5 IHdoZXRoZXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgIFBvcnROdW1iZXIgb24gRWhjIGlz IGFuIGluLXVzZSBkZWJ1ZyBwb3J0LiBPdGhlcndpc2UsDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICBxdWVyeSB3aGV0aGVyIEVoYyBoYXMgYW55IGluLXVzZSBkZWJ1ZyBwb3J0Lg0KPg0KPiAg IEByZXR2YWwgVFJVRSAgIFBvcnROdW1iZXIgb24gRWhjIGlzIGFuIGluLXVzZSBkZWJ1ZyBwb3J0 IChpZiBQb3J0TnVtYmVyIGlzIGluDQo+ICAgICAgICAgICAgICAgICAgWzAsIE1BWF9VSU5UOF0p LCBvciBzb21lIHBvcnQgb24gRWhjIGlzIGFuIGluLXVzZSBkZWJ1ZyBwb3J0DQo+ICAgICAgICAg ICAgICAgICAgKG90aGVyd2lzZSkuDQo+DQo+ICAgQHJldHZhbCBGQUxTRSAgUG9ydE51bWJlciBv biBFaGMgaXMgbm90IGFuIGluLXVzZSBkZWJ1ZyBwb3J0IChpZiBQb3J0TnVtYmVyDQo+ICAgICAg ICAgICAgICAgICAgaXMgaW4gWzAsIE1BWF9VSU5UOF0pLCBvciBubyBwb3J0IG9uIEVoYyBpcyBh biBpbi11c2UgZGVidWcNCj4gICAgICAgICAgICAgICAgICBwb3J0IChvdGhlcndpc2UpLg0KPiAq Ki8NCj4gQk9PTEVBTg0KPiBFaGNJc0RlYnVnUG9ydEluVXNlICgNCj4gICBJTiBDT05TVCBVU0Iy X0hDX0RFViAqRWhjLA0KPiAgIElOIElOVDE2ICAgICAgICAgICAgIFBvcnROdW1iZXINCj4gICAp DQo+IHsNCj4gICBVSU5UMzIgU3RhdGU7DQo+ICAgVUlOVDMyIE1hc2s7DQo+DQo+ICAgaWYgKEVo Yy0+RGVidWdQb3J0TnVtID09IDApIHsNCj4gICAgIHJldHVybiBGQUxTRTsNCj4gICB9DQo+DQo+ ICAgaWYgKFBvcnROdW1iZXIgPj0gMCAmJiBQb3J0TnVtYmVyIDw9IE1BWF9VSU5UOCAmJg0KPiAg ICAgICAoVUlOVDgpUG9ydE51bWJlciAhPSBFaGMtPkRlYnVnUG9ydE51bSAtIDEpIHsNCj4gICAg IHJldHVybiBGQUxTRTsNCj4gICB9DQo+DQo+ICAgU3RhdGUgPSBFaGNSZWFkRGJnUmVnaXN0ZXIo RWhjLCAwKTsNCj4gICBNYXNrID0gVVNCX0RFQlVHX1BPUlRfSU5fVVNFIHwgVVNCX0RFQlVHX1BP UlRfT1dORVI7DQo+ICAgcmV0dXJuIChTdGF0ZSAmIE1hc2spID09IE1hc2s7DQo+IH0NCg0KVGhl biB3ZSBjYW4gY2FsbA0KDQogIEVoY0lzRGVidWdQb3J0SW5Vc2UgKEVoYywgLTEpDQoNCmluIEVo Y1Jlc2V0KCkgYW5kIEVoY0RyaXZlckJpbmRpbmdTdGFydCgpLCBhbmQgd2UgY2FuIGNhbGwNCg0K ICBFaGNJc0RlYnVnUG9ydEluVXNlIChFaGMsIFBvcnROdW1iZXIpDQoNCmluIEVoY0dldFJvb3RI dWJQb3J0U3RhdHVzKCkuDQoNCldoYXQgZG8geW91IHRoaW5rPw0KDQouLi4gQW55d2F5LCBJIHdv dWxkIGxpa2UgdG8gYXBwZW5kIHN1Y2ggYSBwYXRjaCBzZXBhcmF0ZWx5IHRvIHRoZSBzZXJpZXMN Ci0tIEknZCBsaWtlIHRvIGtlZXAgdGhlIGJ1Z2ZpeCBhbmQgdGhlIHJlZmFjdG9yaW5nIHNlcGFy YXRlLg0KDQpUaGFua3MsDQpMYXN6bG8NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gU2VudDog TW9uZGF5LCBTZXB0ZW1iZXIgMywgMjAxOCA3OjQ2IFBNDQo+IFRvOiBaZW5nLCBTdGFyIDxzdGFy LnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbC0wMSANCj4gPGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnPg0KPiBDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBXYW5nLCBKaWFu IEogDQo+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVs LmNvbT47IFNoaSwgU3RldmVuIA0KPiA8c3RldmVuLnNoaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6 IFJlOiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9FaGNpRHhlOiBmaXggaG9zdCBjb250cm9sbGVyIHJl c2V0IA0KPiBjb25kaXRpb24gaW4gQmluZGluZ1N0YXJ0DQo+DQo+IEhpIFN0YXIsDQo+DQo+IE9u IDA5LzAzLzE4IDEwOjM1LCBaZW5nLCBTdGFyIHdyb3RlOg0KPj4gR29vZCBmaW5kaW5nLg0KPj4N Cj4+IFRoZXJlIGlzIGFub3RoZXIgcGxhY2UgYXQNCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFu b2NvcmUvZWRrMi9ibG9iL21hc3Rlci9NZGVNb2R1bGVQa2cvQnVzL1BjaS9FaA0KPj4gYw0KPj4g aUR4ZS9FaGNpLmMjTDE1MCB3aGljaCBoYXMgc2ltaWxhciBsb2dpYywgcGxlYXNlIHVwZGF0ZSBp dCBhbHNvLg0KPg0KPiBJIGF1ZGl0ZWQgYWxsIHRoZSAiRGVidWdQb3J0TnVtIiBjaGVja3MgdGhh dCB3ZXJlIGFkZGVkIGJ5IGNvbW1pdCAwOTk0M2Y1ZWNjMGYsIGhlcmU6DQo+DQo+ICAgaHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI5I2MxNg0KPg0KPiBU aGUgbG9jYXRpb24gdGhhdCB5b3UgbWVudGlvbiBpcyBpbiB0aGUgRWhjUmVzZXQoKSBmdW5jdGlv bi4gSXQgaXMgY292ZXJlZCBpbiBteSBhbmFseXNpcyBsaW5rZWQgYWJvdmUsIGFuZCBpdCBuZWVk cyBubyB1cGRhdGUsIGJlY2F1c2UgaXQgaXMgY29ycmVjdC4NCj4NCj4gTmFtZWx5LCBpbiBFaGNS ZXNldCgpLCB0aGUgY29uZGl0aW9uIGNhcHR1cmVzIHdoZW4gdGhlIHJlc2V0IG11c3QgYmUgDQo+ ICpza2lwcGVkKi4gRm9yIHRoYXQsIHRoZSBjb25kaXRpb24gaXMsDQo+DQo+ICAgb25lIG9mIHRo ZSBVU0IgcG9ydHMgb24gdGhlIGhvc3QgY29udHJvbGxlciBpcyBhIGRlYnVnIHBvcnQsIEFORA0K PiAgIHRoZSBkZWJ1ZyBwb3J0IGlzIGluIHVzZQ0KPg0KPiBXaGVuIHRoaXMgY29uZGl0aW9uIGhv bGRzLCB3ZSBzZXQgU3RhdHVzIHRvIEVGSV9TVUNDRVNTLCBhbmQganVtcCB0byANCj4gT05fRVhJ VCAodGhhdCBpcywgd2Ugc2tpcCB0aGUgcmUtc2V0IGFuZCByZXR1cm4gc3VjY2VzcyB3aXRob3V0 IGRvaW5nIA0KPiBhbnl0aGluZykuIFRoaXMgaXMgd3JpdHRlbiBpbiBDIGFzDQo+DQo+PiAgICAg aWYgKEVoYy0+RGVidWdQb3J0TnVtICE9IDApIHsNCj4+ICAgICAgIERiZ0N0cmxTdGF0dXMgPSBF aGNSZWFkRGJnUmVnaXN0ZXIoRWhjLCAwKTsNCj4+ICAgICAgIGlmICgoRGJnQ3RybFN0YXR1cyAm IChVU0JfREVCVUdfUE9SVF9JTl9VU0UgfCBVU0JfREVCVUdfUE9SVF9PV05FUikpID09IChVU0Jf REVCVUdfUE9SVF9JTl9VU0UgfCBVU0JfREVCVUdfUE9SVF9PV05FUikpIHsNCj4+ICAgICAgICAg U3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+PiAgICAgICAgIGdvdG8gT05fRVhJVDsNCj4+ICAgICAg IH0NCj4+ICAgICB9DQo+DQo+IEhvd2V2ZXIsIGF0IHRoZSBsb2NhdGlvbiB0aGF0IHRoZSBwYXRj aCBtb2RpZmllcywgdGhlIGNvbmRpdGlvbiByZWZlcnMgdG8gdGhlICpvcHBvc2l0ZSogY2FzZSwg dGhhdCBpcywgd2hlbiB0aGUgcmVzZXQgbXVzdCAqbm90KiBiZSBza2lwcGVkLg0KPiBGb3IgdGhh dCwgd2UgaGF2ZSB0byBuZWdhdGUgdGhlIGNvbmRpdGlvbiBzZWVuIGFib3ZlLg0KPg0KPiBGb3Ig dGhlIG5lZ2F0aW9uLCB3ZSB1c2UgRGUgTW9yZ2FuJ3MgTGF3cywgdGhhdCBpczoNCj4NCj4gICAh KEEgJiYgQikgPT0gKCFBIHx8ICFCKQ0KPg0KPiBUaGF0IGlzOg0KPg0KPiAgICpubyogVVNCIHBv cnQgb24gdGhlIGhvc3QgY29udHJvbGxlciBpcyBhIGRlYnVnIHBvcnQsICpPUioNCj4gICB0aGUg ZGVidWcgcG9ydCBpcyAqbm90KiBpbiB1c2UNCj4NCj4gQW5kIHRoaXMgaXMgd3JpdHRlbiwgaW4g QywgYXMNCj4NCj4+ICAgaWYgKEVoYy0+RGVidWdQb3J0TnVtID09IDApIHsNCj4+ICAgICBFaGNS ZXNldEhDIChFaGMsIEVIQ19SRVNFVF9USU1FT1VUKTsNCj4+ICAgfSBlbHNlIHsNCj4+ICAgICBT dGF0ZSA9IEVoY1JlYWREYmdSZWdpc3RlcihFaGMsIDApOw0KPj4gICAgIGlmICgoU3RhdGUgJiAo VVNCX0RFQlVHX1BPUlRfSU5fVVNFIHwgVVNCX0RFQlVHX1BPUlRfT1dORVIpKSAhPSAoVVNCX0RF QlVHX1BPUlRfSU5fVVNFIHwgVVNCX0RFQlVHX1BPUlRfT1dORVIpKSB7DQo+PiAgICAgICBFaGNS ZXNldEhDIChFaGMsIEVIQ19SRVNFVF9USU1FT1VUKTsNCj4+ICAgICB9DQo+PiAgIH0NCj4NCj4g VGhlIG9yaWdpbmFsIGNvbW1pdCAoMDk5NDNmNWVjYzBmKSBnb3QgdGhlIEVoY1Jlc2V0KCkgbW9k aWZpY2F0aW9uIHJpZ2h0ICh0aGF0IGlzLCB0aGUgY29uZGl0aW9uIGlzIGFscmVhZHkgY29ycmVj dCk7IHdoYXQgaXQgZ290IHdyb25nIHdhcyB0aGUgbmVnYXRpb24gb2YgdGhlIGNvbmRpdGlvbiwg Zm9yIEVoY0RyaXZlckJpbmRpbmdTdGFydCgpLiBUaGF0J3MgdGhlIG9ubHkgdGhpbmcgd2UgaGF2 ZSB0byBjb3JyZWN0IGluIHRoaXMgcGF0Y2guDQo+DQo+IFRoYW5rcywNCj4gTGFzemxvDQo+DQo+ DQo+Pg0KPj4NCj4+IFRoYW5rcywNCj4+IFN0YXINCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4+ IFNlbnQ6IEZyaWRheSwgQXVndXN0IDMxLCAyMDE4IDEwOjA0IFBNDQo+PiBUbzogZWRrMi1kZXZl bC0wMSA8ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQo+PiBDYzogR2VyZCBIb2ZmbWFubiA8a3Jh eGVsQHJlZGhhdC5jb20+OyBXYW5nLCBKaWFuIEogDQo+PiA8amlhbi5qLndhbmdAaW50ZWwuY29t PjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIA0KPj4gPHN0YXIu emVuZ0BpbnRlbC5jb20+OyBTaGksIFN0ZXZlbiA8c3RldmVuLnNoaUBpbnRlbC5jb20+DQo+PiBT dWJqZWN0OiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9FaGNpRHhlOiBmaXggaG9zdCBjb250cm9sbGVy IHJlc2V0IA0KPj4gY29uZGl0aW9uIGluIEJpbmRpbmdTdGFydA0KPj4NCj4+IENvbW1pdCAwOTk0 M2Y1ZWNjMGYgKCJNZGVNb2R1bGVQa2c6IFNraXAgdG8gbWFuYWdlIHVzYiBkZWJ1ZyBwb3J0IGlu IA0KPj4gRURLSUkgRUhDSSBkcml2ZXIgaWYgaXQncyB1c2VkIGJ5IHVzYiBkZWJ1ZyBwb3J0IGRy aXZlciIsIDIwMTItMDQtMjgpIA0KPj4gbWFkZSB0aGUgaG9zdCBjb250cm9sbGVyIHJlc2V0IGlu IEVoY0RyaXZlckJpbmRpbmdTdGFydCgpIGNvbmRpdGlvbmFsLg0KPj4gVGhlIGludGVudCB3YXMg dG8gYXZvaWQgdGhlIHJlc2V0IHdoZW4NCj4+IC0gb25lIG9mIHRoZSBVU0IgcG9ydHMgb24gdGhl IGhvc3QgY29udHJvbGxlciB3YXMgYSBEZWJ1ZyBQb3J0LCBBTkQNCj4+IC0gdGhlIERlYnVnIFBv cnQgd2FzIGluIHVzZS4NCj4+DQo+PiBUaGlzIHRyYW5zbGF0ZXMgdG8gdGhlIGZvbGxvd2luZyBw b3NpdGl2ZSBjb25kaXRpb246IHJlc2V0IHRoZSBjb250cm9sbGVyIG9ubHkgaWY6DQo+PiAtIG5v IFVTQiBwb3J0IG9uIHRoZSBob3N0IGNvbnRyb2xsZXIgaXMgYSBEZWJ1ZyBQb3J0LCBPUg0KPj4g LSB0aGUgRGVidWcgUG9ydCBpcyBub3QgaW4gdXNlLg0KPj4NCj4+IENvbW1pdCAwOTk0M2Y1ZWNj MGYgZmFpbGVkIHRvIGltcGxlbWVudCB0aGUgZmlyc3Qgc3ViY29uZGl0aW9uLCBhbmQgdGh1cyB0 aGUgcmVzdWx0IGlzIHRvbyBzdHJpY3Qgbm93IChmb3IgcmVzZXR0aW5nIHRoZSBob3N0IGNvbnRy b2xsZXIpLiBSZWxheCBpdCB0byB0aGUgY29ycmVjdCBjb25kaXRpb24uDQo+Pg0KPj4gVGhpcyBp c3N1ZSB3YXMgZm91bmQgYnkgU3RldmVuIFNoaSBvbiBRRU1VLiBRRU1VJ3MgRUhDSSBkZXZpY2Ug bW9kZWwgZG9lcyBub3QgaGF2ZSBhIERlYnVnIFBvcnQuIEluIHJlcGVhdGVkIGRpc2Nvbm5lY3Qg LyBjb25uZWN0IGN5Y2xlcywgdGhlIGNvbnRyb2xsZXIgaXMgbmV2ZXIgcmVzZXQgaW4gRWhjRHJp dmVyQmluZGluZ1N0YXJ0KCksIHRoZXJlZm9yZSB0aGUgZGV2aWNlcyBvbiB0aGUgY29udHJvbGxl ciBhcmUgbmV2ZXIgcmUtZW51bWVyYXRlZCBhZnRlciBhIGRpc2Nvbm5lY3QuDQo+Pg0KPj4gQ2M6 IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPj4gQ2M6IEppYW4gSiBXYW5nIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+PiBDYzogUnVpeXUgTmkgPHJ1aXl1Lm5pQGludGVsLmNv bT4NCj4+IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+PiBDYzogU3RldmVu IFNoaSA8c3RldmVuLnNoaUBpbnRlbC5jb20+DQo+PiBSZXBvcnRlZC1ieTogU3RldmVuIFNoaSA8 c3RldmVuLnNoaUBpbnRlbC5jb20+DQo+PiBSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3Jl Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyOQ0KPj4gRml4ZXM6IDA5OTQzZjVlY2MwZmJjMGM5OGM1 MTFjODI3MDNhMGJhM2IyYjU4MTkNCj4+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29u dHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4+IFNpZ25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+DQo+PiAtLS0NCj4+DQo+PiBOb3RlczoNCj4+ICAgICBSZXBvOiAg IGh0dHBzOi8vZ2l0aHViLmNvbS9sZXJzZWsvZWRrMi5naXQNCj4+ICAgICBCcmFuY2g6IGVoY2lf c3RhcnRfcmVzZXRfMTEyOQ0KPj4NCj4+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9FaGNpRHhlL0Vo Y2kuYyB8IDQgKysrLQ0KPj4gIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvRWhjaUR4 ZS9FaGNpLmMNCj4+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvRWhjaUR4ZS9FaGNpLmMNCj4+IGlu ZGV4IDMwYWQyYjJmZmVlZi4uODllZDAzNGI5MDkzIDEwMDY0NA0KPj4gLS0tIGEvTWRlTW9kdWxl UGtnL0J1cy9QY2kvRWhjaUR4ZS9FaGNpLmMNCj4+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNp L0VoY2lEeGUvRWhjaS5jDQo+PiBAQCAtMTkxNiwxMSArMTkxNiwxMyBAQCBFaGNEcml2ZXJCaW5k aW5nU3RhcnQgKA0KPj4gICAgLy8NCj4+ICAgIGlmIChGZWF0dXJlUGNkR2V0IChQY2RUdXJuT2Zm VXNiTGVnYWN5U3VwcG9ydCkpIHsNCj4+ICAgICAgRWhjQ2xlYXJMZWdhY3lTdXBwb3J0IChFaGMp Ow0KPj4gICAgfQ0KPj4NCj4+IC0gIGlmIChFaGMtPkRlYnVnUG9ydE51bSAhPSAwKSB7DQo+PiAr ICBpZiAoRWhjLT5EZWJ1Z1BvcnROdW0gPT0gMCkgew0KPj4gKyAgICBFaGNSZXNldEhDIChFaGMs IEVIQ19SRVNFVF9USU1FT1VUKTsgIH0gZWxzZSB7DQo+PiAgICAgIFN0YXRlID0gRWhjUmVhZERi Z1JlZ2lzdGVyKEVoYywgMCk7DQo+PiAgICAgIGlmICgoU3RhdGUgJiAoVVNCX0RFQlVHX1BPUlRf SU5fVVNFIHwgVVNCX0RFQlVHX1BPUlRfT1dORVIpKSAhPSAoVVNCX0RFQlVHX1BPUlRfSU5fVVNF IHwgVVNCX0RFQlVHX1BPUlRfT1dORVIpKSB7DQo+PiAgICAgICAgRWhjUmVzZXRIQyAoRWhjLCBF SENfUkVTRVRfVElNRU9VVCk7DQo+PiAgICAgIH0NCj4+ICAgIH0NCj4+IC0tDQo+PiAyLjE0LjEu My5nYjdjZjZlMDI0MDFiDQo+Pg0KPg0KDQo=