From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.3286.1571297217292007722 for ; Thu, 17 Oct 2019 00:26:57 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: nathaniel.l.desimone@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Oct 2019 00:26:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,306,1566889200"; d="scan'208";a="397431172" Received: from orsmsx109.amr.corp.intel.com ([10.22.240.7]) by fmsmga006.fm.intel.com with ESMTP; 17 Oct 2019 00:26:56 -0700 Received: from orsmsx112.amr.corp.intel.com (10.22.240.13) by ORSMSX109.amr.corp.intel.com (10.22.240.7) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 17 Oct 2019 00:26:56 -0700 Received: from orsmsx114.amr.corp.intel.com ([169.254.8.228]) by ORSMSX112.amr.corp.intel.com ([169.254.3.185]) with mapi id 14.03.0439.000; Thu, 17 Oct 2019 00:26:55 -0700 From: "Nate DeSimone" To: "devel@edk2.groups.io" , "Ni, Ray" , "Kubacki, Michael A" CC: "Chaganty, Rangasai V" Subject: Re: [edk2-devel] [edk2-platforms][PATCH V1 1/1] IntelSiliconPkg/BootMediaLib: Reduce library API Thread-Topic: [edk2-devel] [edk2-platforms][PATCH V1 1/1] IntelSiliconPkg/BootMediaLib: Reduce library API Thread-Index: AQHVgtYM/2+M1z/iyUesZefE9qqxjqdbX78AgAAOdoCAACwcAIAAyBEAgADjsICAASQmQA== Date: Thu, 17 Oct 2019 07:26:54 +0000 Message-ID: <02A34F284D1DA44BB705E61F7180EF0AAEF71F42@ORSMSX114.amr.corp.intel.com> References: <20191014212616.18376-1-michael.a.kubacki@intel.com> <734D49CCEBEEF84792F5B80ED585239D5C322E81@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C32317E@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C3249F2@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C3249F2@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNzg3YzFmNTUtZDgwNS00ZmU2LTkyYTEtMzAyOWJmNmM0ZTljIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiN2pzQjRFVjVmSmhFM1N3RmxQcjVcL3JHUmFqT05VVVlaTW9FM1pzZXZtdGo4dDVcLzRCYkJRM0FPZ1FFeklReUpBIn0= x-ctpclassification: CTP_NT x-originating-ip: [10.22.254.140] MIME-Version: 1.0 Return-Path: nathaniel.l.desimone@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmF5LA0KDQpUaGlzIHJlYWxseSBjb21lcyBkb3duIHRvIGEgcGhpbG9zb3BoaWNhbCBxdWVz dGlvbiBvZiBob3cgbXVjaCBkbyB3ZSB3aXNoIHRvIHNoaWVsZCB0aGUgdXNlciBvZiB0aGUgQm9v dE1lZGlhTGliIGFnYWluc3QgdGhlIG51YW5jZXMgb2YgdGhlIGxpYnJhcnkncyB1bmRlcmx5aW5n IGltcGxlbWVudGF0aW9uLg0KDQpUaGUgcHJpbWFyeSBmdW5jdGlvbiBvZiBCb290TWVkaWFMaWIg aXMgcmV0cmlldmFsIG9mIHN0YXRlLiBBbGwgb2YgdGhlIGZ1bmN0aW9ucyBpbiBCb290TWVkaWFM aWIgYXJlIGFjY2Vzc29yczogQm9vdE1lZGlhSXNTcGkoKSwgR2V0Qm9vdE1lZGlhVHlwZSgpLCBl dGMuIFNpbmNlIHRoZSBwdXJwb3NlIG9mIHRoZSBsaWJyYXJ5IGlzIHRoZSBtYW5pcHVsYXRpb24g b2Ygc3RhdGVmdWwgZGF0YSwgaXQgZ2VuZXJhbGx5IGlzIGFzc3VtZWQgYnkgbW9zdCBwcm9ncmFt bWVycyB0aGF0IHRoZSBkYXRhIGFjY2Vzc29ycyB0aGVtc2VsdmVzIGFyZSBzdGF0ZWxlc3MuIElu IHNpbXBsZXIgd29yZHMsIG1vc3QgcHJvZ3JhbW1lcnMgZXhwZWN0IHRvIGJlIGFibGUgdG8gY2Fs bCB0aGUgQm9vdE1lZGlhSXNTcGkoKSBmdW5jdGlvbiB3aXRob3V0IGhhdmluZyB0byBjb25zaWRl ciB3aGF0IHRoZSBjdXJyZW50IGVudmlyb25tZW50YWwgY29udGV4dCBpcyBvZiB0aGUgc3lzdGVt Lg0KDQpJbiB5b3VyIHByb3Bvc2FsLCB0aGUgcHJvZ3JhbW1lciBtdXN0IGNvbnNpZGVyIGlmIHRo ZXkgYXJlIHdyaXRpbmcgUEVJLCBEWEUsIFNNTSwgYW5kIFJ1bnRpbWVEWEUgY29kZSB3aGVuIHVz aW5nIHRoZSBCb290TWVkaWFMaWIuIEkgY29uc2lkZXIgaXQgdmVyeSBjb25mdXNpbmcgaWYgSSB3 YXMgcmVxdWlyZWQgdG8gY2FsbCBCb290TWVkaWFJc1NwaSgpIGV2ZXJ5d2hlcmUgaW4gUEVJLCB3 aGlsZSBhdCB0aGUgc2FtZSB0aW1lIEkgd2FzIHJlcXVpcmVkIHRvIG9ubHkgY2FsbCBCb290TWVk aWFJc1NwaSgpIGZyb20gdGhlIGVudHJ5IHBvaW50IGZvciBTTU0gb3IgUnVudGltZURYRSBkcml2 ZXJzLiBNaWNoYWVsJ3Mgc29sdXRpb24gYWJzdHJhY3RzIGF3YXkgdGhpcyBjb21wbGV4aXR5IGFu ZCBhbGxvd3MgYSBzaW5nbGUgcHJvZ3JhbW1pbmcgbW9kZWwgdG8gYmUgdXNlZCBldmVyeXdoZXJl Lg0KDQpJIGFncmVlIHdpdGggTWljaGFlbCB0aGF0IGVuY2Fwc3VsYXRpb24gb2YgdGhlIGVudmly b25tZW50YWwgc3RhdGUgaXMgZGVzaXJhYmxlIGVzcGVjaWFsbHkgZm9yIGNvZGUgdGhhdCBpcyB1 c2VkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBVRUZJIHZhcmlhYmxlIHNlcnZpY2VzLiBBbmQg SSByZWNvbW1lbmQgdGhhdCB0aGUgY29kZSBiZSBtZXJnZWQgYXMtaXMuDQoNClJlZ2FyZHMsDQpO YXRlDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBOaSwgUmF5DQpTZW50OiBU dWVzZGF5LCBPY3RvYmVyIDE1LCAyMDE5IDExOjMwIFBNDQpUbzogS3ViYWNraSwgTWljaGFlbCBB IDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6 IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NClN1 YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW2VkazItcGxhdGZvcm1zXVtQQVRDSCBWMSAxLzFdIElu dGVsU2lsaWNvblBrZy9Cb290TWVkaWFMaWI6IFJlZHVjZSBsaWJyYXJ5IEFQSQ0KDQo+IE15IGNv bmNlcm5zIHdpdGggdGhhdCBhcHByb2FjaDoNCj4gDQo+IDEuIEluIGdlbmVyYWwsIEkgYmVsaWV2 ZSBpdCBpcyBiZXR0ZXIgaWYgdGhlIGxpYnJhcnkgcmVhZHMgdGhlIHZhbHVlIA0KPiBvbmNlIGFu ZCBjYWNoZXMgaXQuIFRoZSBmaXJtd2FyZSBib290IG1lZGlhIGlzIGZpeGVkIGFmdGVyIHBvd2Vy LW9uIGJ5IA0KPiBuYXR1cmUgYW5kIGluIHNvbWUgcGxhdGZvcm1zLCBib290IG1lZGlhIGluZm9y bWF0aW9uIG1heSBiZSBwcm92aWRlZCANCj4gdG8gdGhlIElCQiBpbiBhIHRlbXBvcmFyeSBTUkFN IChvciBvdGhlciB2b2xhdGlsZSBtZW1vcnkpIGVhcmx5IGluIHRoZSANCj4gYm9vdCBmbG93IHRo YXQgaXMgdGVtcG9yYXJ5IChlLmcuIG5vdCBhY2Nlc3NpYmxlIGFmdGVyIG1haW4gbWVtb3J5IA0K PiBpbml0aWFsaXphdGlvbikuIEhlcmUgdGhlIEhPQiB0byBnbG9iYWwgdmFyaWFibGUgdHJhbnNp dGlvbiBpbiBEWEUsIA0KPiBSdW50aW1lIERYRSwgU01NIGlzIGEgdHJhbnNwYXJlbnQgbWVjaGFu aXNtIHRvIHRoZSBsaWJyYXJ5IGNvbnN1bWVycyANCj4gdG8gZ2V0IHRoZSBib290IG1lZGlhIGlu Zm9ybWF0aW9uIHJlZ2FyZGxlc3Mgb2YgZWFybHkgYm9vdCBtZW1vcnkgcHJvcGVydGllcy4NCg0K SSBqdXN0IGZlZWwgdGhhdCBoYXZpbmcgdHdvIGxpYnJhcnkgaW5zdGFuY2VzIGluY3JlYXNlcyB0 aGUgY29tcGxleGl0eS4NClRoZXJlIHdlcmUgYWxyZWFkeSBhcmd1bWVudHMgYXJvdW5kIEVES0lJ IGxpa2UgdGhlcmUgYXJlIHNvIG1hbnkgaW5zdGFuY2VzIGZvciBhIGxpYnJhcnkgY2xhc3MgYW5k IHBlb3BsZSBkb24ndCBrbm93IHdoaWNoIG9uZSBpcyBiZWluZyB1c2VkLg0KQnV0IGlmIHlvdSBp bnNpc3QsIEkgYW0gb2sgd2l0aCB0aGF0LiBSZW1vdmluZyB1bm5lY2Vzc2FyeSBBUElzIHJlc29s dmVkIG1vc3Qgb2YgbXkgY29uY2VybnMuDQoNCj4gDQo+IDIuIEZvcmNpbmcgbGlicmFyeSBjb25z dW1lcnMgdG8gY2FjaGUgcHV0cyB1bm5lY2Vzc2FyeSBidXJkZW4gb24gYSANCj4gbGFyZ2UgbnVt YmVyIG9mIGxpYnJhcnkgY29uc3VtZXJzIHRvOg0KPiAgIDEuYS4gVW5kZXJzdGFuZCB0aGUgbGli cmFyeSBpbXBsZW1lbnRhdGlvbiAobGFjayBvZiBlbmNhcHN1bGF0aW9uKS4NCg0KSW4gZmFjdCB0 aGUgdmFsdWUgb2Ygc2luZ2xlIGxpYnJhcnkgaW5zdGFuY2UgSSBjYW4gc2VlIGlzIGNhbGxlciBk b2Vzbid0IG5lZWQgdG8gZGlnIGludG8gdGhlIGRldGFpbHMgb2YgdGhlIGxpYnJhcnkgaW1wbGVt ZW50YXRpb24uIEFsbCB0aGV5IG5lZWQgdG8ga25vdyBpcyB0aGUgbGlicmFyeSBnZXRzIHRoZSBp bmZvIGZyb20gSE9CIGV2ZXJ5IHRpbWUgdGhlIEFQSSBpcyBjYWxsZWQuDQpXaXRoIHRoZSB0d28g bGliIGluc3RhbmNlcywgY29uc3VtZXJzIG5lZWQgdG8gYmUgYXdhcmUgb2YgdGhlIGRpZmZlcmVu dCBpbXBsZW1lbnRhdGlvbnMuDQpJIGFtIG5vdCB1c2luZyB0aGlzIHRvIHN1cHBvcnQgbXkgcG9p bnQuIEp1c3QgcHJvdmlkaW5nIG15IHRob3VnaHQuDQoNCj4gICAxLmIuIFVuZGVyc3RhbmQgdGhl IG51YW5jZXMgb2YgdGhlaXIgZHJpdmVyIHR5cGUgaW4gcmVsYXRpb24gdG8gdGhlIA0KPiBsaWJy YXJ5IGltcGxlbWVudGF0aW9uLg0KDQpJIHRoaW5rIGhhdmluZyBhIHNpbmdsZSBpbnN0YW5jZSBh dm9pZHMgRFNDIHdyaXRlcnMgdG8gc3VwcGx5IHR3byBpbnN0YW5jZXMgZm9yIGRpZmZlcmVudCBt b2R1bGVzLiBNaWdodCBiZSBkaWZmZXJlbnQgZnJvbSB3aGF0IHlvdSB0aGlua/CfmIoNCg0KDQo+ ICAgMS5jLiBQZXJmb3JtIHRoaXMgZXZhbHVhdGlvbiBldmVyeSB0aW1lIHRoZSBsaWJyYXJ5IGlz IHVzZWQuDQoNCkFncmVlLg0KDQo+ICAgMS5kLiBJbXBsZW1lbnQgb3ZlcmhlYWQgdG8gbWFuYWdl IHRoZSBkYXRhIGluIGEgZ2xvYmFsIHZhcmlhYmxlIHdoZW4gDQo+IHRoaXMgY291bGQgYXV0b21h dGljYWxseSBiZSBsaW5rZWQgYnkgdGhlIGxpYnJhcnkuDQpTb21lIGNhbGxlcnMgbWF5IG5vdCBi ZSBhd2FyZSBvZiB0aGUgbGliIGltcGxlbWVudGF0aW9uIGRldGFpbHMuIFNvIHRoZXkgbWF5IHN0 aWxsIGNob29zZSB0byBjYWNoZSB0byBnbG9iYWwgdmFyaWFibGVzLg0KU29tZSBjYWxsZXJzIG1h eSB1c2UgaXQgb25seSBvbmNlLiBIYXZpbmcgYSBsaWIgZ2xvYmFsIHZhcmlhYmxlIGlzIGFsc28g YSB3YXN0ZS4NCg0KPiANCj4gMy4gSWYgdGhlIEhPQiBpcyB1c2VkLCBpdCBibHVycyB0aGUgaW1w bGVtZW50YXRpb24gYmV0d2VlbiB0aGUgSE9CIA0KPiBwcm9kdWNlciBwaGFzZSAoUEVJKSBhbmQg SE9CIGNvbnN1bWVyIHBoYXNlIChEWEUpLg0KDQpEb24ndCB1bmRlcnN0YW5kLg0KDQo+IA0KPiBX ZSBoYXZlIG1hbnkgbGlicmFyaWVzIHdpdGggcGhhc2Utc3BlY2lmaWMgaW5zdGFuY2VzLiBXaGVu IGl0IHJlZHVjZXMgDQo+IHByb2dyYW1taW5nIG1pc3Rha2VzIGFuZCBlYXNlcyBpbnRlZ3JhdGlv biBJIGJlbGlldmUgdGhpcyBpcyANCj4gYmVuZWZpY2lhbC4gSW4gdGhpcyBjYXNlLCBJIGZlZWwg dGhlIG5ldCByZXN1bHQgZm9yIGxpYnJhcnkgY29uc3VtZXJzIA0KPiBpcyBiZXR0ZXIgaWYgdGhl eSBzaW1wbHkgbWFuYWdlIHRoZSBpbnN0YW5jZSBpbiB0aGUgRFNDIGFzIG9wcG9zZWQgdG8gDQo+ IG1vZGlmeWluZyBzb3VyY2UgaW4gZHJpdmVycyBvbiBhIGNhc2UtYnktY2FzZSBiYXNpcyBkZXBl bmRlbnQgb24gdGhlIGxpYnJhcnkgaW1wbGVtZW50YXRpb24uDQoNCklmIGEgc2luZ2xlIGluc3Rh bmNlIGNhbiBzdXBwb3J0IHRoZSByZWFsIG5lZWRzIEkgdGVuZCB0byB1c2Ugc2luZ2xlIGluc3Rh bmNlcy4NCkl0IG1ha2VzIHRoZSBjb2RlIGxvZ2ljIGVhc3kgdG8gdHJhY2UuIEkgbGlrZSB0aGUg bXVsdGlwbGUgaW5zdGFuY2VzIGlkZWEgYnV0IHdhbnQgdG8gYXZvaWQgb3Zlci11c2luZyB0aGVt Lg0KDQpBZ2FpbiBJIGFtIGp1c3QgcHJvdmlkaW5nIHdoYXQgSSB0aGluay4gVGhleSBhcmUgbm90 IGhlcmUgdG8gc3VwcG9ydCBteSBwb2ludC4NCkkgYW0gb2sgd2l0aCBjdXJyZW50IGltcGxlbWVu dGF0aW9uLiDwn5iKDQoNCj4gDQo+IFRoYW5rcywNCj4gTWljaGFlbA0KPiANCj4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+ DQo+ID4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDE0LCAyMDE5IDk6NTkgUE0NCj4gPiBUbzogS3Vi YWNraSwgTWljaGFlbCBBIDxtaWNoYWVsLmEua3ViYWNraUBpbnRlbC5jb20+OyANCj4gPiBkZXZl bEBlZGsyLmdyb3Vwcy5pbw0KPiA+IENjOiBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2FzYWku di5jaGFnYW50eUBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLXBsYXRmb3Jtc11b UEFUQ0ggVjEgMS8xXSBJbnRlbFNpbGljb25Qa2cvQm9vdE1lZGlhTGliOg0KPiA+IFJlZHVjZSBs aWJyYXJ5IEFQSQ0KPiA+DQo+ID4gTWlrZSwNCj4gPiBJIGRvbid0IHRoaW5rIHRoZSBsaWJyYXJ5 IG5lZWRzIHRvIGNhY2hlIHRoZSBib290IG1lZGlhIHR5cGUgZm9yIFJUIA0KPiA+IGFuZA0KPiBT TU0uDQo+ID4gUlQgYW5kIFNNTSBtb2R1bGVzIGNhbiBoYXZlIGEgbW9kdWxlIGxvY2FsIHZhcmlh YmxlIHRvIGNhY2hlIHRoZSANCj4gPiBib290IG1lZGlhIHR5cGUuDQo+ID4gSXQgc2ltcGxpZmll cyB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBsaWJyYXJ5IGFuZCBhbHNvIHRoZSANCj4gPiBw bGF0Zm9ybSBEU0MgYmVjYXVzZSB0aGVyZSBpcyBubyBuZWVkIHRvIGNob29zZSBkaWZmZXJlbnQg bGlicmFyeSANCj4gPiBpbnN0YW5jZXMgZm9yIGRpZmZlcmVudCBtb2R1bGVzLg0KPiA+DQo+ID4g SW4gYW5vdGhlciB3b3JkLCBJIHRoaW5rIHlvdSBjYW4ga2VlcCB0aGUgUEVJIHZlcnNpb24gYXMg YSBiYXNlIA0KPiA+IGxpYnJhcnkgaW5zdGFuY2VzIGFuZCBhbGwgbW9kdWxlcyBjYW4gdXNlIHRo YXQgaW5zdGFuY2UuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gUmF5DQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBLdWJhY2tpLCBNaWNoYWVsIEEgPG1p Y2hhZWwuYS5rdWJhY2tpQGludGVsLmNvbT4NCj4gPiA+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIg MTUsIDIwMTkgMTA6MjIgQU0NCj4gPiA+IFRvOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFu Z2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItcGxh dGZvcm1zXVtQQVRDSCBWMSAxLzFdDQo+IEludGVsU2lsaWNvblBrZy9Cb290TWVkaWFMaWI6DQo+ ID4gPiBSZWR1Y2UgbGlicmFyeSBBUEkNCj4gPiA+DQo+ID4gPiBUaGUgdHdvIGxpYnJhcnkgaW5z dGFuY2VzIHdvcmsgd2l0aGluIHRoZSBjb25zdHJhaW50cyBvZiBQRUksIERYRSwgDQo+ID4gPiBS dW50aW1lIERYRSwgYW5kIFNNTS4NCj4gPiA+DQo+ID4gPiBJIGNhbm5vdCBmaW5kIGhvdyBhIHNp bmdsZSBpbnN0YW5jZSBjYW4gc3VwcG9ydCBhbGwgdGhlc2UgDQo+ID4gPiBlbnZpcm9ubWVudHMg KGluIGFzIGNsZWFuIGEgbWFubmVyKSBhcyBpcyBkb25lIHdpdGggdGhlIHR3byBpbnN0YW5jZXMu DQo+ID4gPg0KPiA+ID4gUmVsZXZhbnQgY29uc3RyYWludHM6DQo+ID4gPiAqIFBFSTogQ2Fubm90 IHdyaXRlIHRvIGdsb2JhbCB2YXJpYWJsZQ0KPiA+ID4gKiBSdW50aW1lIERYRSAvIFNNTTogQm9v dCBTZXJ2aWNlcyBhcmUgbm90IGF2YWlsYWJsZSBvdXRzaWRlIA0KPiA+ID4gbW9kdWxlIGVudHJ5 IHBvaW50DQo+ID4gPg0KPiA+ID4gU29sdXRpb246DQo+ID4gPiAqIFBFSSBpbnN0YW5jZTogQWx3 YXlzIHJldHJpZXZlIHRoZSB2YWx1ZSBmcm9tIGEgSE9CICh1c2UgaGVhcCBmb3IgUi9XKS4NCj4g PiA+ICogRFhFLCBSdW50aW1lIERYRSwgU01NIGluc3RhbmNlOiBSZXRyaWV2ZSB0aGUgdmFsdWUg ZnJvbSB0aGUgSE9CIA0KPiA+ID4gaW4gdGhlIGVudHJ5IHBvaW50DQo+ID4gPiAoY29uc3RydWN0 b3IpIHdoZW4gdGhlIGRyaXZlciBpcyBkaXNwYXRjaGVkIGFuZCBCb290IFNlcnZpY2VzIGFyZSAN Cj4gPiA+IGF2YWlsYWJsZSBhbmQgc3RvcmUgdGhlIHZhbHVlIGluIGEgZ2xvYmFsIHZhcmlhYmxl IHNvIGl0IGNhbiBiZSANCj4gPiA+IGFjY2Vzc2VkIGluIFJ1bnRpbWUgRFhFIGFuZCBTTU0uDQo+ ID4gPg0KPiA+ID4gVHdvIHNlcGFyYXRlIGluc3RhbmNlcyByZXNvbHZlIHRoZXNlIHJlcXVpcmVt ZW50cyBxdWl0ZSBuYXR1cmFsbHkuDQo+ID4gPg0KPiA+ID4gSG93IHdvdWxkIHlvdSBwcm9wb3Nl IG1lZXRpbmcgdGhlIHNhbWUgbGV2ZWwgb2Ygc3VwcG9ydCB3aXRoIG9uZSANCj4gPiA+IGluc3Rh bmNlPw0KPiA+ID4NCj4gPiA+IFRoYW5rcywNCj4gPiA+IE1pY2hhZWwNCj4gPiA+DQo+ID4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20+DQo+ID4gPiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAxNCwgMjAxOSA2OjMw IFBNDQo+ID4gPiA+IFRvOiBLdWJhY2tpLCBNaWNoYWVsIEEgPG1pY2hhZWwuYS5rdWJhY2tpQGlu dGVsLmNvbT47IA0KPiA+ID4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiBDYzogQ2hh Z2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KPiA+ID4g PiBTdWJqZWN0OiBSRTogW2VkazItcGxhdGZvcm1zXVtQQVRDSCBWMSAxLzFdDQo+ID4gSW50ZWxT aWxpY29uUGtnL0Jvb3RNZWRpYUxpYjoNCj4gPiA+ID4gUmVkdWNlIGxpYnJhcnkgQVBJDQo+ID4g PiA+DQo+ID4gPiA+IFJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4g PiA+DQo+ID4gPiA+IE1pa2UsDQo+ID4gPiA+IFRoYW5rcyBmb3IgcmVkdWNpbmcgdGhlIEFQSS4N Cj4gPiA+ID4NCj4gPiA+ID4gRm9yIHRoZSBvdGhlciBjb21tZW50cyBJIHJhaXNlZCAoc2luZ2xl IGxpYnJhcnkgaW5zdGFuY2UgdXNhYmxlIA0KPiA+ID4gPiBmb3IgUEVJIGFuZCBEWEUpLCBkbyB5 b3UgaGF2ZSBhbnkgY29tbWVudHM/DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBLdWJhY2tpLCBNaWNoYWVsIEEg PG1pY2hhZWwuYS5rdWJhY2tpQGludGVsLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDE1LCAyMDE5IDU6MjYgQU0NCj4gPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPiA+ID4gPiBDYzogQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdhc2FpLnYuY2hhZ2Fu dHlAaW50ZWwuY29tPjsgTmksIA0KPiA+ID4gPiA+IFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4g PiA+ID4gPiBTdWJqZWN0OiBbZWRrMi1wbGF0Zm9ybXNdW1BBVENIIFYxIDEvMV0NCj4gSW50ZWxT aWxpY29uUGtnL0Jvb3RNZWRpYUxpYjoNCj4gPiA+ID4gPiBSZWR1Y2UgbGlicmFyeSBBUEkNCj4g PiA+ID4gPg0KPiA+ID4gPiA+IFJlbW92ZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgZnJvbSBG aXJtd2FyZUJvb3RNZWRpYUxpYi5oOg0KPiA+ID4gPiA+ICAqIEZpcm13YXJlQm9vdE1lZGlhSXNT cGkgKCkNCj4gPiA+ID4gPiAgKiBGaXJtd2FyZUJvb3RNZWRpYUlzVWZzICgpDQo+ID4gPiA+ID4g ICogRmlybXdhcmVCb290TWVkaWFJc0VtbWMgKCkNCj4gPiA+ID4gPiAgKiBGaXJtd2FyZUJvb3RN ZWRpYUlzTnZtZSAoKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSXQgaXMgcHJlZmVycmVkIHRvIGhh dmUgYSBzaW5nbGUgbWV0aG9kIHRvIHJldHJpZXZlIHRoZSANCj4gPiA+ID4gPiBmaXJtd2FyZSBi b290DQo+ID4gPiA+IG1lZGlhLg0KPiA+ID4gPiA+IFRvIHJlZHVjZSBvdmVyYWxsIG1haW50ZW5h bmNlIGVmZm9ydCBvdmVyIHRpbWUsIHRoZSANCj4gPiA+ID4gPiBGaXJtd2FyZUJvb3RNZWRpYUlz WHh4ICgpIHBhdHRlcm4gaXMgcmVtb3ZlZCBpbiBmYXZvciBvZiANCj4gPiA+ID4gPiByZXR1cm5p bmcgdGhlIGZpcm13YXJlIGJvb3QgbWVkaWEgdHlwZSB2aWENCj4gR2V0RmlybXdhcmVCb290TWVk aWFUeXBlICgpLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQ2M6IFNhaSBDaGFnYW50eSA8cmFuZ2Fz YWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGlu dGVsLmNvbT4NCj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hh ZWwuYS5rdWJhY2tpQGludGVsLmNvbT4NCj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IFNpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtn L0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliL0R4ZVNtbUZpcm0NCj4gPiA+ID4gPiB3YXJl Qm9vdE1lZGlhTGliLmluZiB8ICAgMSAtDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiBT aWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxp Yi9QZWlGDQo+ID4gPiA+IGlyDQo+ID4gPiA+IG13DQo+ID4gPiA+IGFyDQo+ID4gPiA+IGVCDQo+ ID4gPiA+ID4gb290TWVkaWFMaWIuaW5mICAgIHwgICAxIC0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IFNpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0luY2x1ZGUvTGlicmFyeS9GaXJtd2FyZUJv b3RNZWRpDQo+ID4gPiA+ID4gYUwNCj4gPiA+ID4gPiBpYg0KPiA+ID4gPiA+IC5oDQo+ID4gPiA+ ID4gfCAgNDggLS0tLS0tLS0tDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiBTaWxpY29u L0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi9GaXJt DQo+ID4gPiA+IHdhDQo+ID4gPiA+IHJlDQo+ID4gPiA+IEJvDQo+ID4gPiA+IG8NCj4gPiA+ID4g PiB0TWVkaWFMaWIuYyAgICAgICAgIHwgMTA5IC0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+ ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTU5IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IGEvU2lsaWNv bi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvRHhl U21tRmkNCj4gPiA+ID4gPiByDQo+ID4gPiA+ID4gbXdhcmVCb290TWVkaWFMaWIuaW5mDQo+ID4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNv blBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi9EeGVTbW1GaQ0KPiA+ID4gPiA+IHIN Cj4gPiA+ID4gPiBtd2FyZUJvb3RNZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiBpbmRleCA4M2VkNWYw NGFmLi43ZTEwYjVmN2E3IDEwMDY0NA0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPg0KPiA+DQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFyeS9Q ZWlEeGVTbW1Cb290TWVkaWFMaWIvRHhlU21tRmkNCj4gPiA+ID4gPiByDQo+ID4gPiA+ID4gbXdh cmVCb290TWVkaWFMaWIuaW5mDQo+ID4gPiA+ID4gKysrDQo+ID4gPiA+ID4NCj4gPiA+DQo+IGIv U2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVkaWFM aWIvRHhlU21tDQo+ID4gPiA+ID4gKysrIEZpcm13YXJlQm9vdE1lZGlhTGliLmluZg0KPiA+ID4g PiA+IEBAIC0yNyw3ICsyNyw2IEBADQo+ID4gPiA+ID4gICMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICBbU291cmNlc10NCj4gPiA+ID4gPiAtICBGaXJtd2FyZUJvb3RNZWRpYUxpYi5jDQo+ID4gPiA+ ID4gICAgRHhlU21tRmlybXdhcmVCb290TWVkaWFMaWIuYw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g IFtQYWNrYWdlc10NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gYS9TaWxpY29uL0lu dGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxpYi8NCj4gPiA+ ID4gPiBQZQ0KPiA+ID4gPiA+IGlGDQo+ID4gPiA+ID4gaXINCj4gPiA+ID4gPiBtdw0KPiA+ID4g PiA+IGFyDQo+ID4gPiA+ID4gZUJvb3RNZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiBiL1NpbGljb24v SW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1lZGlhTGliLw0KPiA+ ID4gPiA+IFBlDQo+ID4gPiA+ID4gaUYNCj4gPiA+ID4gPiBpcg0KPiA+ID4gPiA+IG13DQo+ID4g PiA+ID4gYXINCj4gPiA+ID4gPiBlQm9vdE1lZGlhTGliLmluZg0KPiA+ID4gPiA+IGluZGV4IDA2 M2M0MDI3ZDMuLmZmMWRhMzEzODcgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gYS9T aWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RNZWRpYUxp Yi8NCj4gPiA+ID4gPiBQZQ0KPiA+ID4gPiA+IGlGDQo+ID4gPiA+ID4gaXINCj4gPiA+ID4gPiBt dw0KPiA+ID4gPiA+IGFyDQo+ID4gPiA+ID4gZUJvb3RNZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiAr KysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9MaWJyYXJ5L1BlaUR4ZVNtbUJvb3RN ZWRpYQ0KPiA+ID4gPiA+ICsrKyBMaQ0KPiA+ID4gPiA+ICsrKyBiLw0KPiA+ID4gPiA+ICsrKyBQ ZQ0KPiA+ID4gPiA+ICsrKyBpRg0KPiA+ID4gPiA+ICsrKyBpcg0KPiA+ID4gPiA+ICsrKyBtd2Fy ZUJvb3RNZWRpYUxpYi5pbmYNCj4gPiA+ID4gPiBAQCAtMjIsNyArMjIsNiBAQA0KPiA+ID4gPiA+ ICAgIExJQlJBUllfQ0xBU1MgICAgICAgID0gRmlybXdhcmVCb290TWVkaWFMaWINCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICBbU291cmNlc10NCj4gPiA+ID4gPiAtICBGaXJtd2FyZUJvb3RNZWRpYUxp Yi5jDQo+ID4gPiA+ID4gICAgUGVpRmlybXdhcmVCb290TWVkaWFMaWIuYw0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gIFtQYWNrYWdlc10NCj4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+ID4gYS9T aWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbmNsdWRlL0xpYnJhcnkvRmlybXdhcmVCb290 TWUNCj4gPiA+ID4gPiBkaQ0KPiA+ID4gPiA+IGFMDQo+ID4gPiA+ID4gaWINCj4gPiA+ID4gPiAu aA0KPiA+ID4gPiA+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvSW5jbHVkZS9MaWJy YXJ5L0Zpcm13YXJlQm9vdE1lDQo+ID4gPiA+ID4gZGkNCj4gPiA+ID4gPiBhTA0KPiA+ID4gPiA+ IGliDQo+ID4gPiA+ID4gLmgNCj4gPiA+ID4gPiBpbmRleCBhY2E5NTkzYTg0Li5iMzZlYmFjZjMw IDEwMDY0NA0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNp bGljb25Qa2cvSW5jbHVkZS9MaWJyYXJ5L0Zpcm13YXJlQm9vdE1lDQo+ID4gPiA+ID4gZGkNCj4g PiA+ID4gPiBhTA0KPiA+ID4gPiA+IGliDQo+ID4gPiA+ID4gLmgNCj4gPiA+ID4gPiArKysgYi9T aWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbmNsdWRlL0xpYnJhcnkvRmlybXdhcmVCbw0K PiA+ID4gPiA+ICsrKyBvdA0KPiA+ID4gPiA+ICsrKyBNZQ0KPiA+ID4gPiA+ICsrKyBkaQ0KPiA+ ID4gPiA+ICsrKyBhTA0KPiA+ID4gPiA+ICsrKyBpYg0KPiA+ID4gPiA+ICsrKyAuaA0KPiA+ID4g PiA+IEBAIC01NSw1MiArNTUsNCBAQCBGaXJtd2FyZUJvb3RNZWRpYUlzS25vd24gKA0KPiA+ID4g PiA+ICAgIFZPSUQNCj4gPiA+ID4gPiAgICApOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLS8qKg0K PiA+ID4gPiA+IC0gIERldGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3Rp bmcgZnJvbSBTUEkuDQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+IC0gIEByZXR2YWwgVFJVRSAgICAg ICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIFNQSQ0KPiA+ID4gPiA+IC0gIEBy ZXR2YWwgRkFMU0UgICAgICAgUGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIGEgbm9u LVNQSQ0KPiBkZXZpY2UNCj4gPiBvcg0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiBib290IG1lZGlh IGlzIHVua25vd24NCj4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ID4gLUJPT0xFQU4NCj4gPiA+ID4g PiAtRUZJQVBJDQo+ID4gPiA+ID4gLUZpcm13YXJlQm9vdE1lZGlhSXNTcGkgKA0KPiA+ID4gPiA+ IC0gIFZPSUQNCj4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtLyoqDQo+ ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGlu ZyBmcm9tIFVGUy4NCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gLSAgQHJldHZhbCBUUlVFICAgICAg ICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gVUZTDQo+ID4gPiA+ID4gLSAgQHJl dHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24t VUZTDQo+IGRldmljZQ0KPiA+ID4gb3INCj4gPiA+ID4gPiB0aGUgYm9vdCBtZWRpYSBpcyB1bmtu b3duDQo+ID4gPiA+ID4gLSoqLw0KPiA+ID4gPiA+IC1CT09MRUFODQo+ID4gPiA+ID4gLUVGSUFQ SQ0KPiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RNZWRpYUlzVWZzICgNCj4gPiA+ID4gPiAtICBWT0lE DQo+ID4gPiA+ID4gLSAgKTsNCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gLS8qKg0KPiA+ID4gPiA+ IC0gIERldGVybWluZXMgaWYgdGhlIHBsYXRmb3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBl TU1DLg0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtICBAcmV0dmFsIFRSVUUgICAgICAgIFBsYXRm b3JtIGZpcm13YXJlIGlzIGJvb3RpbmcgZnJvbSBlTU1DDQo+ID4gPiA+ID4gLSAgQHJldHZhbCBG QUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24tZU1NQw0K PiA+ID4gZGV2aWNlDQo+ID4gPiA+IG9yDQo+ID4gPiA+ID4gdGhlIGJvb3QgbWVkaWEgaXMgdW5r bm93bg0KPiA+ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+IC1FRklB UEkNCj4gPiA+ID4gPiAtRmlybXdhcmVCb290TWVkaWFJc0VtbWMgKA0KPiA+ID4gPiA+IC0gIFZP SUQNCj4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtLyoqDQo+ID4gPiA+ ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9t IE5WTWUuDQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+IC0gIEByZXR2YWwgVFJVRSAgICAgICAgUGxh dGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4gPiA+ID4gLSAgQHJldHZh bCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24tTlZN ZQ0KPiA+ID4gZGV2aWNlDQo+ID4gPiA+IG9yDQo+ID4gPiA+ID4gdGhlIGJvb3QgbWVkaWEgaXMg dW5rbm93bg0KPiA+ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+IC1F RklBUEkNCj4gPiA+ID4gPiAtRmlybXdhcmVCb290TWVkaWFJc052bWUgKA0KPiA+ID4gPiA+IC0g IFZPSUQNCj4gPiA+ID4gPiAtICApOw0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAgI2VuZGlmDQo+ ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGlj b25Qa2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvDQo+ID4gPiA+ID4gRmkNCj4gPiA+ ID4gPiBybQ0KPiA+ID4gPiA+IHdhDQo+ID4gPiA+ID4gcmUNCj4gPiA+ID4gPiBCDQo+ID4gPiA+ ID4gb290TWVkaWFMaWIuYw0KPiA+ID4gPiA+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Q a2cvTGlicmFyeS9QZWlEeGVTbW1Cb290TWVkaWFMaWIvDQo+ID4gPiA+ID4gRmkNCj4gPiA+ID4g PiBybQ0KPiA+ID4gPiA+IHdhDQo+ID4gPiA+ID4gcmUNCj4gPiA+ID4gPiBCDQo+ID4gPiA+ID4g b290TWVkaWFMaWIuYw0KPiA+ID4gPiA+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4g PiA+IGluZGV4IDExYTE0ZDE3MmQuLjAwMDAwMDAwMDANCj4gPiA+ID4gPiAtLS0NCj4gPiA+ID4g PiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0xpYnJhcnkvUGVpRHhlU21tQm9vdE1l ZGlhTGliLw0KPiA+ID4gPiA+IEZpDQo+ID4gPiA+ID4gcm0NCj4gPiA+ID4gPiB3YQ0KPiA+ID4g PiA+IHJlDQo+ID4gPiA+ID4gQg0KPiA+ID4gPiA+IG9vdE1lZGlhTGliLmMNCj4gPiA+ID4gPiAr KysgL2Rldi9udWxsDQo+ID4gPiA+ID4gQEAgLTEsMTA5ICswLDAgQEANCj4gPiA+ID4gPiAtLyoq IEBmaWxlDQo+ID4gPiA+ID4gLSAgVGhpcyBsaWJyYXJ5IGlkZW50aWZpZXMgdGhlIGZpcm13YXJl IGJvb3QgbWVkaWEgZGV2aWNlLg0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtICBUaGUgZmlybXdh cmUgYm9vdCBtZWRpYSBkZXZpY2UgaXMgdXNlZCB0byBtYWtlIHN5c3RlbSANCj4gPiA+ID4gPiBp bml0aWFsaXphdGlvbiBkZWNpc2lvbnMgaW4gdGhlIGJvb3QgZmxvdyBkZXBlbmRlbnQNCj4gPiA+ ID4gPiAtICB1cG9uIGZpcm13YXJlIGJvb3QgbWVkaWEuIE5vdGUgdGhhdCB0aGUgZmlybXdhcmUg Ym9vdCBtZWRpYSANCj4gPiA+ID4gPiBpcyB0aGUgc3RvcmFnZSBtZWRpYSB0aGF0IHRoZSBib290 IGZpcm13YXJlIGlzIHN0b3JlZCBvbi4NCj4gPiA+ID4gPiAtICBJdCBpcyBub3QgdGhlIE9TIHN0 b3JhZ2UgbWVkaWEgd2hpY2ggbWF5IGJlIHN0b3JlZCB1cG9uIGEgDQo+ID4gPiA+ID4gZGlmZmVy ZW50DQo+ID4gPiA+ID4gbm9uLSB2b2xhdGlsZSBzdG9yYWdlIGRldmljZS4NCj4gPiA+ID4gPiAt DQo+ID4gPiA+ID4gLSAgVGhpcyBmaWxlIGNvbnRhaW5zIGxpYnJhcnkgaW1wbGVtZW50YXRpb24g Y29tbW9uIHRvIGFsbCBib290IHBoYXNlcy4NCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gLUNvcHly aWdodCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ID4gPiA+ID4g cmVzZXJ2ZWQuPEJSPg0KPiA+ID4gPiA+IC1TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ID4gLQ0K PiA+ID4gPiA+IC0jaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gPiA+ID4gLSNpbmNs dWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+IC0jaW5jbHVkZSANCj4gPiA+ID4gPiA8TGlicmFyeS9G aXJtd2FyZUJvb3RNZWRpYUxpYi5oPg0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtLyoqDQo+ID4g PiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBm cm9tIFNQSS4NCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gLSAgQHJldHZhbCBUUlVFICAgICAgICBQ bGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gU1BJDQo+ID4gPiA+ID4gLSAgQHJldHZh bCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24tU1BJ DQo+IGRldmljZQ0KPiA+IG9yDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+IGJvb3QgbWVkaWEgaXMg dW5rbm93bg0KPiA+ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+IC1F RklBUEkNCj4gPiA+ID4gPiAtRmlybXdhcmVCb290TWVkaWFJc1NwaSAoDQo+ID4gPiA+ID4gLSAg Vk9JRA0KPiA+ID4gPiA+IC0gICkNCj4gPiA+ID4gPiAtew0KPiA+ID4gPiA+IC0gIEVGSV9TVEFU VVMgICAgICAgICAgU3RhdHVzOw0KPiA+ID4gPiA+IC0gIEZXX0JPT1RfTUVESUFfVFlQRSAgQm9v dE1lZGlhOw0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtICBTdGF0dXMgPSBHZXRGaXJtd2FyZUJv b3RNZWRpYVR5cGUgKCZCb290TWVkaWEpOw0KPiA+ID4gPiA+IC0gIGlmIChFRklfRVJST1IgKFN0 YXR1cykgfHwgQm9vdE1lZGlhICE9IEZ3Qm9vdE1lZGlhU3BpKSB7DQo+ID4gPiA+ID4gLSAgICBy ZXR1cm4gRkFMU0U7DQo+ID4gPiA+ID4gLSAgfSBlbHNlIHsNCj4gPiA+ID4gPiAtICAgIHJldHVy biBUUlVFOw0KPiA+ID4gPiA+IC0gIH0NCj4gPiA+ID4gPiAtfQ0KPiA+ID4gPiA+IC0NCj4gPiA+ ID4gPiAtLyoqDQo+ID4gPiA+ID4gLSAgRGV0ZXJtaW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdh cmUgaXMgYm9vdGluZyBmcm9tIFVGUy4NCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gLSAgQHJldHZh bCBUUlVFICAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gVUZTDQo+ID4g PiA+ID4gLSAgQHJldHZhbCBGQUxTRSAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5n IGZyb20gYSBub24tVUZTDQo+IGRldmljZQ0KPiA+ID4gb3INCj4gPiA+ID4gPiB0aGUgYm9vdCBt ZWRpYSBpcyB1bmtub3duDQo+ID4gPiA+ID4gLSoqLw0KPiA+ID4gPiA+IC1CT09MRUFODQo+ID4g PiA+ID4gLUVGSUFQSQ0KPiA+ID4gPiA+IC1GaXJtd2FyZUJvb3RNZWRpYUlzVWZzICgNCj4gPiA+ ID4gPiAtICBWT0lEDQo+ID4gPiA+ID4gLSAgKQ0KPiA+ID4gPiA+IC17DQo+ID4gPiA+ID4gLSAg RUZJX1NUQVRVUyAgICAgICAgICBTdGF0dXM7DQo+ID4gPiA+ID4gLSAgRldfQk9PVF9NRURJQV9U WVBFICBCb290TWVkaWE7DQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+IC0gIFN0YXR1cyA9IEdldEZp cm13YXJlQm9vdE1lZGlhVHlwZSAoJkJvb3RNZWRpYSk7DQo+ID4gPiA+ID4gLSAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSB8fCBCb290TWVkaWEgIT0gRndCb290TWVkaWFVZnMpIHsNCj4gPiA+ID4g PiAtICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ID4gPiAtICB9IGVsc2Ugew0KPiA+ID4gPiA+IC0g ICAgcmV0dXJuIFRSVUU7DQo+ID4gPiA+ID4gLSAgfQ0KPiA+ID4gPiA+IC19DQo+ID4gPiA+ID4g LQ0KPiA+ID4gPiA+IC0vKioNCj4gPiA+ID4gPiAtICBEZXRlcm1pbmVzIGlmIHRoZSBwbGF0Zm9y bSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gZU1NQy4NCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4g LSAgQHJldHZhbCBUUlVFICAgICAgICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20g ZU1NQw0KPiA+ID4gPiA+IC0gIEByZXR2YWwgRkFMU0UgICAgICAgUGxhdGZvcm0gZmlybXdhcmUg aXMgYm9vdGluZyBmcm9tIGEgbm9uLWVNTUMNCj4gPiA+IGRldmljZQ0KPiA+ID4gPiBvcg0KPiA+ ID4gPiA+IHRoZSBib290IG1lZGlhIGlzIHVua25vd24NCj4gPiA+ID4gPiAtKiovDQo+ID4gPiA+ ID4gLUJPT0xFQU4NCj4gPiA+ID4gPiAtRUZJQVBJDQo+ID4gPiA+ID4gLUZpcm13YXJlQm9vdE1l ZGlhSXNFbW1jICgNCj4gPiA+ID4gPiAtICBWT0lEDQo+ID4gPiA+ID4gLSAgKQ0KPiA+ID4gPiA+ IC17DQo+ID4gPiA+ID4gLSAgRUZJX1NUQVRVUyAgICAgICAgICBTdGF0dXM7DQo+ID4gPiA+ID4g LSAgRldfQk9PVF9NRURJQV9UWVBFICBCb290TWVkaWE7DQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ IC0gIFN0YXR1cyA9IEdldEZpcm13YXJlQm9vdE1lZGlhVHlwZSAoJkJvb3RNZWRpYSk7DQo+ID4g PiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCBCb290TWVkaWEgIT0gRndCb290TWVk aWFFbW1jKSB7DQo+ID4gPiA+ID4gLSAgICByZXR1cm4gRkFMU0U7DQo+ID4gPiA+ID4gLSAgfSBl bHNlIHsNCj4gPiA+ID4gPiAtICAgIHJldHVybiBUUlVFOw0KPiA+ID4gPiA+IC0gIH0NCj4gPiA+ ID4gPiAtfQ0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtLyoqDQo+ID4gPiA+ID4gLSAgRGV0ZXJt aW5lcyBpZiB0aGUgcGxhdGZvcm0gZmlybXdhcmUgaXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4g PiA+ID4gLQ0KPiA+ID4gPiA+IC0gIEByZXR2YWwgVFJVRSAgICAgICAgUGxhdGZvcm0gZmlybXdh cmUgaXMgYm9vdGluZyBmcm9tIE5WTWUuDQo+ID4gPiA+ID4gLSAgQHJldHZhbCBGQUxTRSAgICAg ICBQbGF0Zm9ybSBmaXJtd2FyZSBpcyBib290aW5nIGZyb20gYSBub24tTlZNZQ0KPiA+ID4gZGV2 aWNlDQo+ID4gPiA+IG9yDQo+ID4gPiA+ID4gdGhlIGJvb3QgbWVkaWEgaXMgdW5rbm93bg0KPiA+ ID4gPiA+IC0qKi8NCj4gPiA+ID4gPiAtQk9PTEVBTg0KPiA+ID4gPiA+IC1FRklBUEkNCj4gPiA+ ID4gPiAtRmlybXdhcmVCb290TWVkaWFJc052bWUgKA0KPiA+ID4gPiA+IC0gIFZPSUQNCj4gPiA+ ID4gPiAtICApDQo+ID4gPiA+ID4gLXsNCj4gPiA+ID4gPiAtICBFRklfU1RBVFVTICAgICAgICAg IFN0YXR1czsNCj4gPiA+ID4gPiAtICBGV19CT09UX01FRElBX1RZUEUgIEJvb3RNZWRpYTsNCj4g PiA+ID4gPiAtDQo+ID4gPiA+ID4gLSAgU3RhdHVzID0gR2V0RmlybXdhcmVCb290TWVkaWFUeXBl ICgmQm9vdE1lZGlhKTsNCj4gPiA+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IEJv b3RNZWRpYSAhPSBGd0Jvb3RNZWRpYU52bWUpIHsNCj4gPiA+ID4gPiAtICAgIHJldHVybiBGQUxT RTsNCj4gPiA+ID4gPiAtICB9IGVsc2Ugew0KPiA+ID4gPiA+IC0gICAgcmV0dXJuIFRSVUU7DQo+ ID4gPiA+ID4gLSAgfQ0KPiA+ID4gPiA+IC19DQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAyLjE2 LjIud2luZG93cy4xDQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IA0KDQoNCg0KDQo=