From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (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 EFCF181C4E for ; Wed, 14 Dec 2016 00:43:21 -0800 (PST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP; 14 Dec 2016 00:43:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,346,1477983600"; d="scan'208";a="1071888379" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 14 Dec 2016 00:43:21 -0800 Received: from fmsmsx157.amr.corp.intel.com (10.18.116.73) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 14 Dec 2016 00:43:21 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX157.amr.corp.intel.com (10.18.116.73) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 14 Dec 2016 00:43:20 -0800 Received: from shsmsx151.ccr.corp.intel.com ([169.254.3.77]) by shsmsx102.ccr.corp.intel.com ([169.254.2.54]) with mapi id 14.03.0248.002; Wed, 14 Dec 2016 16:43:17 +0800 From: "Fu, Siyuan" To: "Wu, Jiaxin" , "edk2-devel@lists.01.org" CC: "Long, Qin" , "Ye, Ting" , "Zhang, Lubo" , "Gao, Liming" , "Kinney, Michael D" , Thomas Palmer Thread-Topic: [Patch 01/10] MdePkg: Add TLS related protocol definition Thread-Index: AQHSVdyCT4ai066ATkqhcwRO+5rrXaEHIHnQ Date: Wed, 14 Dec 2016 08:43:16 +0000 Message-ID: References: <1481700859-76060-1-git-send-email-jiaxin.wu@intel.com> <1481700859-76060-2-git-send-email-jiaxin.wu@intel.com> In-Reply-To: <1481700859-76060-2-git-send-email-jiaxin.wu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNGMzMGZjYjYtNTdhYi00M2NhLWEyOTMtMGI3ODk5ZDI2MGVjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IkhFdkorcDUxMEhhOWhqYmNvQjh3Mk9HK1pRUlhvRGwwZUtYZldyd3FJVWc9In0= x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch 01/10] MdePkg: Add TLS related protocol definition X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Dec 2016 08:43:22 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 DQoNClJldmlld2VkLWJ5OiBGdSBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+DQoNCg0KDQoN Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBXdSwgSmlheGluIA0KU2VudDogMjAx NsTqMTLUwjE0yNUgMTU6MzQNClRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IExvbmcs IFFpbiA8cWluLmxvbmdAaW50ZWwuY29tPjsgWWUsIFRpbmcgPHRpbmcueWVAaW50ZWwuY29tPjsg RnUsIFNpeXVhbiA8c2l5dWFuLmZ1QGludGVsLmNvbT47IFpoYW5nLCBMdWJvIDxsdWJvLnpoYW5n QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwg TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFRob21hcyBQYWxtZXIgPHRo b21hcy5wYWxtZXJAaHBlLmNvbT47IFd1LCBKaWF4aW4gPGppYXhpbi53dUBpbnRlbC5jb20+DQpT dWJqZWN0OiBbUGF0Y2ggMDEvMTBdIE1kZVBrZzogQWRkIFRMUyByZWxhdGVkIHByb3RvY29sIGRl ZmluaXRpb24NCg0KVGhpcyBwYXRjaCBpcyB1c2VkIHRvIGFkZCBUbHMuaCBhbmQgVGxzQ29uZmln LmggaGVhZGVyIGZpbGVzIHRvIGRlZmluZSBFRkkgVExTIENvbmZpZ3VyYXRpb24gUHJvdG9jb2ws IEVGSSBUTFMgU2VydmljZSBCaW5kaW5nIFByb3RvY29sIGFuZCBFRkkgVExTIENvbmZpZ3VyYXRp b24gUHJvdG9jb2wuDQoNCkNjOiBMb25nIFFpbiA8cWluLmxvbmdAaW50ZWwuY29tPg0KQ2M6IFll IFRpbmcgPHRpbmcueWVAaW50ZWwuY29tPg0KQ2M6IEZ1IFNpeXVhbiA8c2l5dWFuLmZ1QGludGVs LmNvbT4NCkNjOiBaaGFuZyBMdWJvIDxsdWJvLnpoYW5nQGludGVsLmNvbT4NCkNjOiBMaW1pbmcg R2FvIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCkNjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCkNjOiBUaG9tYXMgUGFsbWVyIDx0aG9tYXMucGFsbWVyQGhw ZS5jb20+DQpDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1l bnQgMS4wDQpTaWduZWQtb2ZmLWJ5OiBXdSBKaWF4aW4gPGppYXhpbi53dUBpbnRlbC5jb20+DQot LS0NCiBNZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9UbHMuaCAgICAgICB8IDQ2MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCiBNZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9UbHND b25maWcuaCB8IDEzMiArKysrKysrKysrKw0KIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAg ICAgICAgIHwgICA5ICsNCiAzIGZpbGVzIGNoYW5nZWQsIDYwMSBpbnNlcnRpb25zKCspDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Rscy5oICBjcmVhdGUgbW9k ZSAxMDA2NDQgTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvVGxzQ29uZmlnLmgNCg0KZGlmZiAtLWdp dCBhL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Rscy5oIGIvTWRlUGtnL0luY2x1ZGUvUHJvdG9j b2wvVGxzLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXggMDAwMDAwMC4uNTFhM2NkYQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvVGxzLmgNCkBAIC0wLDAg KzEsNDYwIEBADQorLyoqIEBmaWxlDQorICBFRkkgVExTIFByb3RvY29scyBhcyBkZWZpbmVkIGlu IFVFRkkgMi41Lg0KKw0KKyAgVGhlIEVGSSBUTFMgU2VydmljZSBCaW5kaW5nIFByb3RvY29sIGlz IHVzZWQgdG8gbG9jYXRlIEVGSSBUTFMgDQorIFByb3RvY29sIGRyaXZlcnMgIHRvIGNyZWF0ZSBh bmQgZGVzdHJveSBjaGlsZCBvZiB0aGUgZHJpdmVyIHRvIA0KKyBjb21tdW5pY2F0ZSB3aXRoIG90 aGVyIGhvc3QgdXNpbmcgIFRMUyBwcm90b2NvbC4NCisgIFRoZSBFRkkgVExTIFByb3RvY29sIHBy b3ZpZGVzIHRoZSBhYmlsaXR5IHRvIG1hbmFnZSBUTFMgc2Vzc2lvbi4NCisNCisgIENvcHlyaWdo dCAoYykgMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPiAg VGhpcyANCisgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIGFyZSBsaWNl bnNlZCBhbmQgbWFkZSANCisgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u cyBvZiB0aGUgQlNEIExpY2Vuc2UgIHdoaWNoIA0KKyBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1 dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgDQorIGZvdW5kIGF0ICBo dHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQorDQorICBUSEUg UFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElT IiBCQVNJUywgIA0KKyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFO WSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KKw0KKyAgQHBhciBSZXZpc2lvbiBS ZWZlcmVuY2U6DQorICBUaGlzIFByb3RvY29sIGlzIGludHJvZHVjZWQgaW4gVUVGSSBTcGVjaWZp Y2F0aW9uIDIuNQ0KKw0KKyoqLw0KKw0KKyNpZm5kZWYgX19FRklfVExTX1BST1RPQ09MX0hfXw0K KyNkZWZpbmUgX19FRklfVExTX1BST1RPQ09MX0hfXw0KKw0KKy8vLw0KKy8vLyBUaGUgRUZJIFRM UyBTZXJ2aWNlIEJpbmRpbmcgUHJvdG9jb2wgaXMgdXNlZCB0byBsb2NhdGUgRUZJIFRMUyANCitQ cm90b2NvbCBkcml2ZXJzIHRvIC8vLyBjcmVhdGUgYW5kIGRlc3Ryb3kgY2hpbGQgb2YgdGhlIGRy aXZlciB0byANCitjb21tdW5pY2F0ZSB3aXRoIG90aGVyIGhvc3QgdXNpbmcgVExTIC8vLyBwcm90 b2NvbC4NCisvLy8NCisjZGVmaW5lIEVGSV9UTFNfU0VSVklDRV9CSU5ESU5HX1BST1RPQ09MX0dV SUQgXA0KKyAgeyBcDQorICAgIDB4OTUyY2I3OTUsIDB4ZmYzNiwgMHg0OGNmLCB7MHhhMiwgMHg0 OSwgMHg0ZCwgMHhmNCwgMHg4NiwgMHhkNiwgDQorMHhhYiwgMHg4ZCB9IFwNCisgIH0NCisNCisv Ly8NCisvLy8gVGhlIEVGSSBUTFMgcHJvdG9jb2wgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gbWFu YWdlIFRMUyBzZXNzaW9uLg0KKy8vLw0KKyNkZWZpbmUgRUZJX1RMU19QUk9UT0NPTF9HVUlEIFwN CisgIHsgXA0KKyAgICAweGNhOTU5ZiwgMHg2Y2ZhLCAweDRkYjEsIHsweDk1LCAweGJjLCAweGU0 LCAweDZjLCAweDQ3LCAweDUxLCANCisweDQzLCAweDkwIH0gXA0KKyAgfQ0KKw0KK3R5cGVkZWYg c3RydWN0IF9FRklfVExTX1BST1RPQ09MIEVGSV9UTFNfUFJPVE9DT0w7DQorDQorLy8vDQorLy8v IEVGSV9UTFNfU0VTU0lPTl9EQVRBX1RZUEUNCisvLy8NCit0eXBlZGVmIGVudW0gew0KKyAgLy8v DQorICAvLy8gU2Vzc2lvbiBDb25maWd1cmF0aW9uDQorICAvLy8NCisNCisgIC8vLw0KKyAgLy8v IFRMUyBzZXNzaW9uIFZlcnNpb24uIFRoZSBjb3JyZXNwb25kaW5nIERhdGEgaXMgb2YgdHlwZSBF RklfVExTX1ZFUlNJT04uDQorICAvLy8NCisgIEVmaVRsc1ZlcnNpb24sDQorICAvLy8NCisgIC8v LyBUTFMgc2Vzc2lvbiBhcyBjbGllbnQgb3IgYXMgc2VydmVyLiBUaGUgY29ycmVzcG9uZGluZyBE YXRhIGlzIG9mICANCisgLy8vIEVGSV9UTFNfQ09OTkVDVElPTl9FTkQuDQorICAvLy8NCisgIEVm aVRsc0Nvbm5lY3Rpb25FbmQsDQorICAvLy8NCisgIC8vLyBBIHByaW9yaXR5IGxpc3Qgb2YgcHJl ZmVycmVkIGFsZ29yaXRobXMgZm9yIHRoZSBUTFMgc2Vzc2lvbi4NCisgIC8vLyBUaGUgY29ycmVz cG9uZGluZyBEYXRhIGlzIGEgbGlzdCBvZiBFRklfVExTX0NJUEhFUi4NCisgIC8vLw0KKyAgRWZp VGxzQ2lwaGVyTGlzdCwNCisgIC8vLw0KKyAgLy8vIFRMUyBzZXNzaW9uIGNvbXByZXNzaW9uIG1l dGhvZC4NCisgIC8vLyBUaGUgY29ycmVzcG9uZGluZyBEYXRhIGlzIG9mIHR5cGUgRUZJX1RMU19D T01QUkVTU0lPTi4NCisgIC8vLw0KKyAgRWZpVGxzQ29tcHJlc3Npb25NZXRob2QsDQorICAvLy8N CisgIC8vLyBUTFMgc2Vzc2lvbiBleHRlbnNpb24gZGF0YS4NCisgIC8vLyBUaGUgY29ycmVzcG9u ZGluZyBEYXRhIGlzIGEgbGlzdCBvZiB0eXBlIEVGSV9UTFNfRVhURU5ESU9OLg0KKyAgLy8vDQor ICBFZmlUbHNFeHRlbnNpb25EYXRhLA0KKyAgLy8vDQorICAvLy8gVExTIHNlc3Npb24gdmVyaWZ5 IG1ldGhvZC4NCisgIC8vLyBUaGUgY29ycmVzcG9uZGluZyBEYXRhIGlzIG9mIHR5cGUgRUZJX1RM U19WRVJJRlkuDQorICAvLy8NCisgIEVmaVRsc1ZlcmlmeU1ldGhvZCwNCisgIC8vLw0KKyAgLy8v IFRMUyBzZXNzaW9uIGRhdGEgc2Vzc2lvbiBJRC4NCisgIC8vLyBGb3IgU2V0U2Vzc2lvbkRhdGEo KSwgaXQgaXMgVExTIHNlc3Npb24gSUQgdXNlZCBmb3Igc2Vzc2lvbiByZXN1bXB0aW9uLg0KKyAg Ly8vIEZvciBHZXRTZXNzaW9uRGF0YSgpLCBpdCBpcyB0aGUgVExTIHNlc3Npb24gSUQgdXNlZCBm b3IgY3VycmVudCBzZXNzaW9uLg0KKyAgLy8vIFRoZSBjb3JyZXNwb25kaW5nIERhdGEgaXMgb2Yg dHlwZSBFRklfVExTX1NFU1NJT05fSUQuDQorICAvLy8NCisgIEVmaVRsc1Nlc3Npb25JRCwNCisg IC8vLw0KKyAgLy8vIFRMUyBzZXNzaW9uIGRhdGEgc2Vzc2lvbiBzdGF0ZS4NCisgIC8vLyBUaGUg Y29ycmVzcG9uZGluZyBEYXRhIGlzIG9mIHR5cGUgRUZJX1RMU19TRVNTSU9OX1NUQVRFLg0KKyAg Ly8vDQorICBFZmlUbHNTZXNzaW9uU3RhdGUsDQorDQorICAvLy8NCisgIC8vLyBTZXNzaW9uIGlu Zm9ybWF0aW9uDQorICAvLy8NCisNCisgIC8vLw0KKyAgLy8vIFRMUyBzZXNzaW9uIGRhdGEgY2xp ZW50IHJhbmRvbS4NCisgIC8vLyBUaGUgY29ycmVzcG9uZGluZyBEYXRhIGlzIG9mIHR5cGUgRUZJ X1RMU19SQU5ET00uDQorICAvLy8NCisgIEVmaVRsc0NsaWVudFJhbmRvbSwNCisgIC8vLw0KKyAg Ly8vIFRMUyBzZXNzaW9uIGRhdGEgc2VydmVyIHJhbmRvbS4NCisgIC8vLyBUaGUgY29ycmVzcG9u ZGluZyBEYXRhIGlzIG9mIHR5cGUgRUZJX1RMU19SQU5ET00uDQorICAvLy8NCisgIEVmaVRsc1Nl cnZlclJhbmRvbSwNCisgIC8vLw0KKyAgLy8vIFRMUyBzZXNzaW9uIGRhdGEga2V5IG1hdGVyaWFs Lg0KKyAgLy8vIFRoZSBjb3JyZXNwb25kaW5nIERhdGEgaXMgb2YgdHlwZSBFRklfVExTX01BU1RF Ul9TRUNSRVQuDQorICAvLy8NCisgIEVmaVRsc0tleU1hdGVyaWFsLA0KKw0KKyAgRWZpVGxzU2Vz c2lvbkRhdGFUeXBlTWF4aW11bQ0KKw0KK30gRUZJX1RMU19TRVNTSU9OX0RBVEFfVFlQRTsNCisN CisvLy8NCisvLy8gRUZJX1RMU19WRVJTSU9ODQorLy8vIE5vdGU6IFRoZSBUTFMgdmVyc2lvbiBk ZWZpbml0aW9uIGlzIGZyb20gU1NMMy4wIHRvIHRoZSBsYXRlc3QgVExTIChlLmcuIDEuMikuDQor Ly8vICAgICAgIFNTTDIuMCBpcyBvYnNvbGV0ZSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLg0KKy8v Lw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgIE1h am9yOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgTWlub3I7DQorfSBFRklfVExT X1ZFUlNJT047DQorDQorLy8vDQorLy8vIEVGSV9UTFNfQ09OTkVDVElPTl9FTkQgdG8gZGVmaW5l IFRMUyBzZXNzaW9uIGFzIGNsaWVudCBvciBzZXJ2ZXIuDQorLy8vDQordHlwZWRlZiBlbnVtIHsN CisgIEVmaVRsc0NsaWVudCwNCisgIEVmaVRsc1NlcnZlciwNCit9IEVGSV9UTFNfQ09OTkVDVElP Tl9FTkQ7DQorDQorLy8vDQorLy8vIEVGSV9UTFNfQ0lQSEVSDQorLy8vIE5vdGU6IFRoZSBkZWZp bml0aW9uIG9mIEVGSV9UTFNfQ0lQSEVSIGRlZmluaXRpb24gaXMgZnJvbSAiUkZDIDUyNDYsIEEu NC4xLg0KKy8vLyAgICAgICBIZWxsbyBNZXNzYWdlcyIuIFRoZSB2YWx1ZSBvZiBFRklfVExTX0NJ UEhFUiBpcyBmcm9tIFRMUyBDaXBoZXINCisvLy8gICAgICAgU3VpdGUgUmVnaXN0cnkgb2YgSUFO QS4NCisvLy8NCit0eXBlZGVmIHN0cnVjdCB7DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAg ICAgICBEYXRhMTsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEyOw0KK30g RUZJX1RMU19DSVBIRVI7DQorDQorLy8vDQorLy8vIEVGSV9UTFNfQ09NUFJFU1NJT04NCisvLy8g Tm90ZTogVGhlIHZhbHVlIG9mIEVGSV9UTFNfQ09NUFJFU1NJT04gZGVmaW5pdGlvbiBpcyBmcm9t ICJSRkMgMzc0OSIuDQorLy8vDQordHlwZWRlZiBVSU5UOCBFRklfVExTX0NPTVBSRVNTSU9OOw0K Kw0KKy8vLw0KKy8vLyBFRklfVExTX0VYVEVOU0lPTg0KKy8vLyBOb3RlOiBUaGUgZGVmaW5pdGlv biBvZiBFRklfVExTX0VYVEVOU0lPTiBpZiBmcm9tICJSRkMgNTI0NiBBLjQuMS4NCisvLy8gICAg ICAgSGVsbG8gTWVzc2FnZXMiLg0KKy8vLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQxNiAg ICAgICAgICAgICAgICAgICAgICAgIEV4dGVuc2lvblR5cGU7DQorICBVSU5UMTYgICAgICAgICAg ICAgICAgICAgICAgICBMZW5ndGg7DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICBE YXRhWzFdOw0KK30gRUZJX1RMU19FWFRFTlNJT047DQorDQorLy8vDQorLy8vIEVGSV9UTFNfVkVS SUZZDQorLy8vIFVzZSBlaXRoZXIgRUZJX1RMU19WRVJJRllfTk9ORSBvciBFRklfVExTX1ZFUklG WV9QRUVSLCB0aGUgbGFzdCB0d28gDQorb3B0aW9ucyAvLy8gYXJlICdPUmVkJyB3aXRoIEVGSV9U TFNfVkVSSUZZX1BFRVIgaWYgdGhleSBhcmUgZGVzaXJlZC4NCisvLy8NCit0eXBlZGVmIFVJTlQz MiAgRUZJX1RMU19WRVJJRlk7DQorLy8vDQorLy8vIE5vIGNlcnRpZmljYXRlcyB3aWxsIGJlIHNl bnQgb3IgdGhlIFRMUy9TU0xoYW5kc2hha2Ugd2lsbCBiZSANCitjb250aW51ZWQgcmVnYXJkbGVz cyAvLy8gb2YgdGhlIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiByZXN1bHQuDQorLy8vDQorI2Rl ZmluZSBFRklfVExTX1ZFUklGWV9OT05FICAgICAgICAgICAgICAgICAgMHgwDQorLy8vDQorLy8v IFRoZSBUTFMvU1NMIGhhbmRzaGFrZSBpcyBpbW1lZGlhdGVseSB0ZXJtaW5hdGVkIHdpdGggYW4g YWxlcnQgDQorbWVzc2FnZSBjb250YWluaW5nIC8vLyB0aGUgcmVhc29uIGZvciB0aGUgY2VydGlm aWNhdGUgdmVyaWZpY2F0aW9uIGZhaWx1cmUuDQorLy8vDQorI2RlZmluZSBFRklfVExTX1ZFUklG WV9QRUVSICAgICAgICAgICAgICAgICAgMHgxDQorLy8vDQorLy8vIFRMUyBzZXNzaW9uIHdpbGwg ZmFpbCBwZWVyIGNlcnRpZmljYXRlIGlzIGFic2VudC4NCisvLy8NCisjZGVmaW5lIEVGSV9UTFNf VkVSSUZZX0ZBSUxfSUZfTk9fUEVFUl9DRVJUICAweDIgLy8vIC8vLyBUTFMgc2Vzc2lvbiANCitv bmx5IHZlcmlmeSBjbGllbnQgb25jZSwgYW5kIGRvZXNuJ3QgcmVxdWVzdCBjZXJmaWZpY2F0ZSBk dXJpbmcgLy8vIA0KK3JlLW5lZ290aWF0aW9uLg0KKy8vLw0KKyNkZWZpbmUgRUZJX1RMU19WRVJJ RllfQ0xJRU5UX09OQ0UgICAgICAgICAgIDB4NA0KKw0KKy8vLw0KKy8vLyBFRklfVExTX1JBTkRP TQ0KKy8vLyBOb3RlOiBUaGUgZGVmaW5pdGlvbiBvZiBFRklfVExTX1JBTkRPTSBpcyBmcm9tICJS RkMgNTI0NiBBLjQuMS4NCisvLy8gICAgICAgSGVsbG8gTWVzc2FnZXMiLg0KKy8vLw0KK3R5cGVk ZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgIEdtdFVuaXhUaW1l Ow0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgUmFuZG9tQnl0ZXNbMjhdOw0KK30g RUZJX1RMU19SQU5ET007DQorDQorLy8vDQorLy8vIEVGSV9UTFNfTUFTVEVSX1NFQ1JFVA0KKy8v LyBOb3RlOiBUaGUgZGVmaW5pdGlvbiBvZiBFRklfVExTX01BU1RFUl9TRUNSRVQgaXMgZnJvbSAi UkZDIDUyNDYgOC4xLg0KKy8vLyAgICAgICBDb21wdXRpbmcgdGhlIE1hc3RlciBTZWNyZXQiLg0K Ky8vLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAg IERhdGFbNDhdOw0KK30gRUZJX1RMU19NQVNURVJfU0VDUkVUOw0KKw0KKy8vLw0KKy8vLyBFRklf VExTX1NFU1NJT05fSUQNCisvLy8gTm90ZTogVGhlIGRlZmluaXRpb24gb2YgRUZJX1RMU19TRVNT SU9OX0lEIGlzIGZyb20gIlJGQyA1MjQ2IEEuNC4xLiBIZWxsbyBNZXNzYWdlcyIuDQorLy8vDQor I2RlZmluZSBNQVhfVExTX1NFU1NJT05fSURfTEVOR1RIICAzMg0KK3R5cGVkZWYgc3RydWN0IHsN CisgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aDsNCisgIFVJTlQ4ICAgICAg ICAgICAgICAgICAgICAgICAgIERhdGFbTUFYX1RMU19TRVNTSU9OX0lEX0xFTkdUSF07DQorfSBF RklfVExTX1NFU1NJT05fSUQ7DQorDQorLy8vDQorLy8vIEVGSV9UTFNfU0VTU0lPTl9TVEFURQ0K Ky8vLw0KK3R5cGVkZWYgZW51bSB7DQorICAvLy8NCisgIC8vLyBXaGVuIGEgbmV3IGNoaWxkIG9m IFRMUyBwcm90b2NvbCBpcyBjcmVhdGVkLCB0aGUgaW5pdGlhbCBzdGF0ZSBvZiANCitUTFMgc2Vz c2lvbg0KKyAgLy8vIGlzIEVmaVRsc1Nlc3Npb25Ob3RTdGFydGVkLg0KKyAgLy8vDQorICBFZmlU bHNTZXNzaW9uTm90U3RhcnRlZCwNCisgIC8vLw0KKyAgLy8vIFRoZSBjb25zdW1lciBjYW4gY2Fs bCBCdWlsZFJlc3BvbnNlUGFja2V0KCkgd2l0aCBOVUxMIHRvIGdldCANCitDbGllbnRIZWxsbyB0 bw0KKyAgLy8vIHN0YXJ0IHRoZSBUTFMgc2Vzc2lvbi4gVGhlbiB0aGUgc3RhdHVzIGlzIEVmaVRs c1Nlc3Npb25IYW5kU2hha2luZy4NCisgIC8vLw0KKyAgRWZpVGxzU2Vzc2lvbkhhbmRTaGFraW5n LA0KKyAgLy8vDQorICAvLy8gRHVyaW5nIGhhbmRzaGFrZSwgdGhlIGNvbnN1bWVyIG5lZWQgY2Fs bCBCdWlsZFJlc3BvbnNlUGFja2V0KCkgDQord2l0aCBpbnB1dA0KKyAgLy8vIGRhdGEgZnJvbSBw ZWVyLCB0aGVuIGdldCByZXNwb25zZSBwYWNrZXQgYW5kIHNlbmQgdG8gcGVlci4gQWZ0ZXIgDQor aGFuZHNoYWtlDQorICAvLy8gZmluaXNoLCB0aGUgVExTIHNlc3Npb24gc3RhdHVzIGJlY29tZXMg DQorRWZpVGxzU2Vzc2lvbkRhdGFUcmFuc2ZlcnJpbmcsIGFuZA0KKyAgLy8vIGNvbnN1bWVyIGNh biB1c2UgUHJvY2Vzc1BhY2tldCgpIGZvciBkYXRhIHRyYW5zZmVycmluZy4NCisgIC8vLw0KKyAg RWZpVGxzU2Vzc2lvbkRhdGFUcmFuc2ZlcnJpbmcsDQorICAvLy8NCisgIC8vLyBGaW5hbGx5LCBp ZiBjb25zdW1lciB3YW50cyB0byBhY3RpdmUgY2xvc2UgVExTIHNlc3Npb24sIGNvbnN1bWVyIA0K K25lZWQNCisgIC8vLyBjYWxsIFNldFNlc3Npb25EYXRhIHRvIHNldCBUTFMgc2Vzc2lvbiBzdGF0 ZSB0byANCitFZmlUbHNTZXNzaW9uQ2xvc2luZywgYW5kDQorICAvLy8gY2FsbCBCdWlsZFJlc3Bv bnNlUGFja2V0KCkgd2l0aCBOVUxMIHRvIGdldCBDbG9zZU5vdGlmeSBhbGVydCANCittZXNzYWdl LA0KKyAgLy8vIGFuZCBzZW50IGl0IG91dC4NCisgIC8vLw0KKyAgRWZpVGxzU2Vzc2lvbkNsb3Np bmcsDQorICAvLy8NCisgIC8vLyBJZiBhbnkgZXJyb3IgaGFwcGVuIGR1cmluZyBwYXJzaW5nIEFw cGxpY2F0aW9uRGF0YSBjb250ZW50IHR5cGUsIA0KK0VGSV9BQk9SVA0KKyAgLy8vIHdpbGwgYmUg cmV0dXJuZWQgYnkgUHJvY2Vzc1BhY2tldCgpLCBhbmQgVExTIHNlc3Npb24gc3RhdGUgd2lsbCAN CitiZWNvbWUNCisgIC8vLyBFZmlUbHNTZXNzaW9uRXJyb3IuIFRoZW4gY29uc3VtZXIgbmVlZCBj YWxsIEJ1aWxkUmVzcG9uc2VQYWNrZXQoKSANCit3aXRoDQorICAvLy8gTlVMTCB0byBnZXQgYWxl cnQgbWVzc2FnZSBhbmQgc2VudCBpdCBvdXQuDQorICAvLy8NCisgIEVmaVRsc1Nlc3Npb25FcnJv ciwNCisNCisgIEVmaVRsc1Nlc3Npb25TdGF0ZU1heGltdW0NCisNCit9IEVGSV9UTFNfU0VTU0lP Tl9TVEFURTsNCisNCisvLy8NCisvLy8gRUZJX1RMU19GUkFHTUVOVF9EQVRBDQorLy8vDQordHlw ZWRlZiBzdHJ1Y3Qgew0KKyAgLy8vDQorICAvLy8gTGVuZ3RoIG9mIGRhdGEgYnVmZmVyIGluIHRo ZSBmcmFnbWVudC4NCisgIC8vLw0KKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgRnJh Z21lbnRMZW5ndGg7DQorICAvLy8NCisgIC8vLyBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBp biB0aGUgZnJhZ21lbnQuDQorICAvLy8NCisgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAg ICpGcmFnbWVudEJ1ZmZlcjsNCit9IEVGSV9UTFNfRlJBR01FTlRfREFUQTsNCisNCisvLy8NCisv Ly8gRUZJX1RMU19DUllQVF9NT0RFDQorLy8vDQordHlwZWRlZiBlbnVtIHsNCisgIC8vLw0KKyAg Ly8vIEVuY3J5cHQgZGF0YSBwcm92aWRlZCBpbiB0aGUgZnJhZ21lbnQgYnVmZmVycy4NCisgIC8v Lw0KKyAgRWZpVGxzRW5jcnlwdCwNCisgIC8vLw0KKyAgLy8vIERlY3J5cHQgZGF0YSBwcm92aWRl ZCBpbiB0aGUgZnJhZ21lbnQgYnVmZmVycy4NCisgIC8vLw0KKyAgRWZpVGxzRGVjcnlwdCwNCit9 IEVGSV9UTFNfQ1JZUFRfTU9ERTsNCisNCisvKioNCisgIFNldCBUTFMgc2Vzc2lvbiBkYXRhLg0K Kw0KKyAgVGhlIFNldFNlc3Npb25EYXRhKCkgZnVuY3Rpb24gc2V0IGRhdGEgZm9yIGEgbmV3IFRM UyBzZXNzaW9uLiBBbGwgDQorIHNlc3Npb24gZGF0YSBzaG91bGQgIGJlIHNldCBiZWZvcmUgQnVp bGRSZXNwb25zZVBhY2tldCgpIGludm9rZWQuDQorDQorICBAcGFyYW1baW5dICBUaGlzICAgICAg ICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIEVGSV9UTFNfUFJPVE9DT0wgaW5zdGFuY2UuDQorICBA cGFyYW1baW5dICBEYXRhVHlwZSAgICAgICAgICAgIFRMUyBzZXNzaW9uIGRhdGEgdHlwZS4NCisg IEBwYXJhbVtpbl0gIERhdGEgICAgICAgICAgICAgICAgUG9pbnRlciB0byBzZXNzaW9uIGRhdGEu DQorICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAgICAgIFRvdGFsIHNpemUgb2Ygc2Vzc2lv biBkYXRhLg0KKw0KKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgVExTIHNl c3Npb24gZGF0YSBpcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KKyAgQHJldHZhbCBFRklfSU5WQUxJRF9Q QVJBTUVURVIgICBPbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgaXMgVFJV RToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBOVUxMLg0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhIGlzIE5VTEwuDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFTaXplIGlzIDAuDQorICBAcmV0dmFsIEVGSV9V TlNVUFBPUlRFRCAgICAgICAgIFRoZSBEYXRhVHlwZSBpcyB1bnN1cHBvcnRlZC4NCisgIEByZXR2 YWwgRUZJX0FDQ0VTU19ERU5JRUQgICAgICAgSWYgdGhlIERhdGFUeXBlIGlzIG9uZSBvZiBiZWxv dzoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWZpVGxzQ2xpZW50UmFuZG9t DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVmaVRsc1NlcnZlclJhbmRvbQ0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlUbHNLZXlNYXRlcmlhbA0KKyAg QHJldHZhbCBFRklfTk9UX1JFQURZICAgICAgICAgICBDdXJyZW50IFRMUyBzZXNzaW9uIHN0YXRl IGlzIE5PVA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlUbHNTZXNzaW9u U3RhdGVOb3RTdGFydGVkLg0KKyAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgICBSZXF1 aXJlZCBzeXN0ZW0gcmVzb3VyY2VzIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQuDQorKiovDQordHlw ZWRlZg0KK0VGSV9TVEFUVVMNCisoRUZJQVBJICpFRklfVExTX1NFVF9TRVNTSU9OX0RBVEEpICgN CisgIElOIEVGSV9UTFNfUFJPVE9DT0wgICAgICAgICAgICAgICAgKlRoaXMsDQorICBJTiBFRklf VExTX1NFU1NJT05fREFUQV9UWVBFICAgICAgIERhdGFUeXBlLA0KKyAgSU4gVk9JRCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqRGF0YSwNCisgIElOIFVJTlROICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGF0YVNpemUNCisgICk7DQorDQorLyoqDQorICBHZXQgVExTIHNlc3Npb24gZGF0 YS4NCisNCisgIFRoZSBHZXRTZXNzaW9uRGF0YSgpIGZ1bmN0aW9uIHJldHVybiB0aGUgVExTIHNl c3Npb24gaW5mb3JtYXRpb24uDQorDQorICBAcGFyYW1baW5dICAgICAgIFRoaXMgICAgICAgICAg IFBvaW50ZXIgdG8gdGhlIEVGSV9UTFNfUFJPVE9DT0wgaW5zdGFuY2UuDQorICBAcGFyYW1baW5d ICAgICAgIERhdGFUeXBlICAgICAgIFRMUyBzZXNzaW9uIGRhdGEgdHlwZS4NCisgIEBwYXJhbVtp biwgb3V0XSAgRGF0YSAgICAgICAgICAgUG9pbnRlciB0byBzZXNzaW9uIGRhdGEuDQorICBAcGFy YW1baW4sIG91dF0gIERhdGFTaXplICAgICAgIFRvdGFsIHNpemUgb2Ygc2Vzc2lvbiBkYXRhLiBP biBpbnB1dCwgaXQgbWVhbnMNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl IHNpemUgb2YgRGF0YSBidWZmZXIuIE9uIG91dHB1dCwgaXQgbWVhbnMgdGhlIHNpemUNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgY29waWVkIERhdGEgYnVmZmVyIGlmIEVG SV9TVUNDRVNTLCBhbmQgbWVhbnMgdGhlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemUgb2YgZGVzaXJlZCBEYXRhIGJ1ZmZlciBpZiBFRklfQlVGRkVSX1RPT19TTUFMTC4N CisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgVGhlIFRMUyBzZXNzaW9uIGRh dGEgaXMgZ290IHN1Y2Nlc3NmdWxseS4NCisgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVS ICAgT25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGlzIFRSVUU6DQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgTlVMTC4NCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGF0YVNpemUgaXMgTlVMTC4NCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGF0YSBpcyBOVUxMIGlmICpEYXRhU2l6ZSBpcyBub3QgemVy by4NCisgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgVGhlIERhdGFUeXBlIGlzIHVu c3VwcG9ydGVkLg0KKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgICBUaGUgVExTIHNl c3Npb24gZGF0YSBpcyBub3QgZm91bmQuDQorICBAcmV0dmFsIEVGSV9OT1RfUkVBRFkgICAgICAg ICAgIFRoZSBEYXRhVHlwZSBpcyBub3QgcmVhZHkgaW4gY3VycmVudCBzZXNzaW9uIHN0YXRlLg0K KyAgQHJldHZhbCBFRklfQlVGRkVSX1RPT19TTUFMTCAgICBUaGUgYnVmZmVyIGlzIHRvbyBzbWFs bCB0byBob2xkIHRoZSBkYXRhLg0KKyoqLw0KK3R5cGVkZWYNCitFRklfU1RBVFVTDQorKEVGSUFQ SSAqRUZJX1RMU19HRVRfU0VTU0lPTl9EQVRBKSAoDQorICBJTiBFRklfVExTX1BST1RPQ09MICAg ICAgICAgICAgICAgICpUaGlzLA0KKyAgSU4gRUZJX1RMU19TRVNTSU9OX0RBVEFfVFlQRSAgICAg ICBEYXRhVHlwZSwNCisgIElOIE9VVCBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgKkRhdGEs ICBPUFRJT05BTA0KKyAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAqRGF0YVNp emUNCisgICk7DQorDQorLyoqDQorICBCdWlsZCByZXNwb25zZSBwYWNrZXQgYWNjb3JkaW5nIHRv IFRMUyBzdGF0ZSBtYWNoaW5lLiBUaGlzIGZ1bmN0aW9uIA0KK2lzIG9ubHkgdmFsaWQgZm9yDQor ICBhbGVydCwgaGFuZHNoYWtlIGFuZCBjaGFuZ2VfY2lwaGVyX3NwZWMgY29udGVudCB0eXBlLg0K Kw0KKyAgVGhlIEJ1aWxkUmVzcG9uc2VQYWNrZXQoKSBmdW5jdGlvbiBidWlsZHMgVExTIHJlc3Bv bnNlIHBhY2tldCBpbiANCisgcmVzcG9uc2UgdG8gdGhlIFRMUyAgcmVxdWVzdCBwYWNrZXQgc3Bl Y2lmaWVkIGJ5IFJlcXVlc3RCdWZmZXIgYW5kIA0KKyBSZXF1ZXN0U2l6ZS4gSWYgUmVxdWVzdEJ1 ZmZlciBpcyBOVUxMIGFuZCAgUmVxdWVzdFNpemUgaXMgMCwgYW5kIFRMUyANCisgc2Vzc2lvbiBz dGF0dXMgaXMgRWZpVGxzU2Vzc2lvbk5vdFN0YXJ0ZWQsIHRoZSBUTFMgc2Vzc2lvbiAgd2lsbCBi ZSANCisgaW5pdGlhdGVkIGFuZCB0aGUgcmVzcG9uc2UgcGFja2V0IG5lZWRzIHRvIGJlIENsaWVu dEhlbGxvLiBJZiANCisgUmVxdWVzdEJ1ZmZlciBpcyAgTlVMTCBhbmQgUmVxdWVzdFNpemUgaXMg MCwgYW5kIFRMUyBzZXNzaW9uIHN0YXR1cyBpcyANCisgRWZpVGxzU2Vzc2lvbkNsb3NpbmcsIHRo ZSBUTFMgIHNlc3Npb24gd2lsbCBiZSBjbG9zZWQgYW5kIHJlc3BvbnNlIA0KKyBwYWNrZXQgbmVl ZHMgdG8gYmUgQ2xvc2VOb3RpZnkuIElmIFJlcXVlc3RCdWZmZXIgaXMgIE5VTEwgYW5kIA0KKyBS ZXF1ZXN0U2l6ZSBpcyAwLCBhbmQgVExTIHNlc3Npb24gc3RhdHVzIGlzIEVmaVRsc1Nlc3Npb25F cnJvciwgdGhlIFRMUyAgc2Vzc2lvbiBoYXMgZXJyb3JzIGFuZCB0aGUgcmVzcG9uc2UgcGFja2V0 IG5lZWRzIHRvIGJlIEFsZXJ0IG1lc3NhZ2UgYmFzZWQgb24gZXJyb3IgIHR5cGUuDQorDQorICBA cGFyYW1baW5dICAgICAgIFRoaXMgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIEVGSV9UTFNfUFJP VE9DT0wgaW5zdGFuY2UuDQorICBAcGFyYW1baW5dICAgICAgIFJlcXVlc3RCdWZmZXIgIFBvaW50 ZXIgdG8gdGhlIG1vc3QgcmVjZW50bHkgcmVjZWl2ZWQgVExTIHBhY2tldC4gTlVMTA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFucyBUTFMgbmVlZCBpbml0aWF0ZSB0aGUg VExTIHNlc3Npb24gYW5kIHJlc3BvbnNlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhY2tldCBuZWVkIHRvIGJlIENsaWVudEhlbGxvLg0KKyAgQHBhcmFtW2luXSAgICAgICBS ZXF1ZXN0U2l6ZSAgICBQYWNrZXQgc2l6ZSBpbiBieXRlcyBmb3IgdGhlIG1vc3QgcmVjZW50bHkg cmVjZWl2ZWQgVExTDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldC4g MCBpcyBvbmx5IHZhbGlkIHdoZW4gUmVxdWVzdEJ1ZmZlciBpcyBOVUxMLg0KKyAgQHBhcmFtW291 dF0gICAgICBCdWZmZXIgICAgICAgICBQb2ludGVyIHRvIHRoZSBidWZmZXIgdG8gaG9sZCB0aGUg YnVpbHQgcGFja2V0Lg0KKyAgQHBhcmFtW2luLCBvdXRdICBCdWZmZXJTaXplICAgICBQb2ludGVy IHRvIHRoZSBidWZmZXIgc2l6ZSBpbiBieXRlcy4gT24gaW5wdXQsIGl0IGlzDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgc2l6ZSBwcm92aWRlZCBieSB0aGUg Y2FsbGVyLiBPbiBvdXRwdXQsIGl0DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlzIHRoZSBidWZmZXIgc2l6ZSBpbiBmYWN0IG5lZWRlZCB0byBjb250YWluIHRoZQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrZXQuDQorDQorICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICAgICAgICAgIFRoZSByZXF1aXJlZCBUTFMgcGFja2V0IGlzIGJ1aWx0IHN1Y2Nl c3NmdWxseS4NCisgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgT25lIG9yIG1vcmUg b2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGlzIFRSVUU6DQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRoaXMgaXMgTlVMTC4NCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVxdWVzdEJ1ZmZlciBpcyBOVUxMIGJ1dCBSZXF1ZXN0U2l6ZSBpcyBOT1QgMC4N CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdFNpemUgaXMgMCBidXQg UmVxdWVzdEJ1ZmZlciBpcyBOT1QgTlVMTC4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQnVmZmVyU2l6ZSBpcyBOVUxMLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCdWZmZXIgaXMgTlVMTCBpZiAqQnVmZmVyU2l6ZSBpcyBub3QgemVyby4NCisgIEByZXR2 YWwgRUZJX0JVRkZFUl9UT09fU01BTEwgICAgQnVmZmVyU2l6ZSBpcyB0b28gc21hbGwgdG8gaG9s ZCB0aGUgcmVzcG9uc2UgcGFja2V0Lg0KKyAgQHJldHZhbCBFRklfTk9UX1JFQURZICAgICAgICAg ICBDdXJyZW50IFRMUyBzZXNzaW9uIHN0YXRlIGlzIE5PVCByZWFkeSB0byBidWlsZA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNwb25zZVBhY2tldC4NCisgIEByZXR2YWwg RUZJX0FCT1JURUQgICAgICAgICAgICAgU29tZXRoaW5nIHdyb25nIGJ1aWxkIHJlc3BvbnNlIHBh Y2tldC4NCisqKi8NCit0eXBlZGVmDQorRUZJX1NUQVRVUw0KKyhFRklBUEkgKkVGSV9UTFNfQlVJ TERfUkVTUE9OU0VfUEFDS0VUKSAoDQorICBJTiBFRklfVExTX1BST1RPQ09MICAgICAgICAgICAg ICAgICpUaGlzLA0KKyAgSU4gVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAqUmVxdWVz dEJ1ZmZlciwgT1BUSU9OQUwNCisgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVxdWVzdFNpemUsIE9QVElPTkFMDQorICBPVVQgVUlOVDggICAgICAgICAgICAgICAgICAgICAg ICAgICpCdWZmZXIsIE9QVElPTkFMDQorICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICpCdWZmZXJTaXplDQorICApOw0KKw0KKy8qKg0KKyAgRGVjcnlwdCBvciBlbmNyeXB0IFRM UyBwYWNrZXQgZHVyaW5nIHNlc3Npb24uIFRoaXMgZnVuY3Rpb24gaXMgb25seSANCit2YWxpZCBh ZnRlcg0KKyAgc2Vzc2lvbiBjb25uZWN0ZWQgYW5kIGZvciBhcHBsaWNhdGlvbl9kYXRhIGNvbnRl bnQgdHlwZS4NCisNCisgIFRoZSBQcm9jZXNzUGFja2V0ICgpIGZ1bmN0aW9uIHByb2Nlc3MgZWFj aCBpbmJvdW5kIG9yIG91dGJvdW5kIFRMUyBBUFAgcGFja2V0Lg0KKw0KKyAgQHBhcmFtW2luXSAg ICAgICBUaGlzICAgICAgICAgICBQb2ludGVyIHRvIHRoZSBFRklfVExTX1BST1RPQ09MIGluc3Rh bmNlLg0KKyAgQHBhcmFtW2luLCBvdXRdICBGcmFnbWVudFRhYmxlICBQb2ludGVyIHRvIGEgbGlz dCBvZiBmcmFnbWVudC4gVGhlIGNhbGxlciB3aWxsIHRha2UNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzcG9uc2libGUgdG8gaGFuZGxlIHRoZSBvcmlnaW5hbCBGcmFnbWVu dFRhYmxlIHdoaWxlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0IG1heSBi ZSByZWFsbG9jYXRlZCBpbiBUTFMgZHJpdmVyLiBJZiBDcnlwdE1vZGUgaXMNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWZpVGxzRW5jcnlwdCwgb24gaW5wdXQgdGhlc2UgZnJh Z21lbnRzIGNvbnRhaW4gdGhlIFRMUw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoZWFkZXIgYW5kIHBsYWluIHRleHQgVExTIEFQUCBwYXlsb2FkOyBvbiBvdXRwdXQgdGhlc2UN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRzIGNvbnRhaW4gdGhl IFRMUyBoZWFkZXIgYW5kIGN5cGhlciB0ZXh0IFRMUw0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBUFAgcGF5bG9hZC4gSWYgQ3J5cHRNb2RlIGlzIEVmaVRsc0RlY3J5cHQsIG9u IGlucHV0DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXNlIGZyYWdtZW50 cyBjb250YWluIHRoZSBUTFMgaGVhZGVyIGFuZCBjeXBoZXIgdGV4dA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUTFMgQVBQIHBheWxvYWQ7IG9uIG91dHB1dCB0aGVzZSBmcmFn bWVudHMgY29udGFpbiB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVExT IGhlYWRlciBhbmQgcGxhaW4gdGV4dCBUTFMgQVBQIHBheWxvYWQuDQorICBAcGFyYW1baW5dICAg ICAgIEZyYWdtZW50Q291bnQgIE51bWJlciBvZiBmcmFnbWVudC4NCisgIEBwYXJhbVtpbl0gICAg ICAgQ3J5cHRNb2RlICAgICAgQ3J5cHQgbW9kZS4NCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1Mg ICAgICAgICAgICAgVGhlIG9wZXJhdGlvbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KKyAgQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBPbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgaXMgVFJVRToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VGhpcyBpcyBOVUxMLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFnbWVu dFRhYmxlIGlzIE5VTEwuDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYWdt ZW50Q291bnQgaXMgTlVMTC4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3J5 cHRvTW9kZSBpcyBpbnZhbGlkLg0KKyAgQHJldHZhbCBFRklfTk9UX1JFQURZICAgICAgICAgICBD dXJyZW50IFRMUyBzZXNzaW9uIHN0YXRlIGlzIE5PVA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFZmlUbHNTZXNzaW9uRGF0YVRyYW5zZmVycmluZy4NCisgIEByZXR2YWwgRUZJ X0FCT1JURUQgICAgICAgICAgICAgU29tZXRoaW5nIHdyb25nIGRlY3J5cHRpb24gdGhlIG1lc3Nh Z2UuIFRMUyBzZXNzaW9uDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1 cyB3aWxsIGJlY29tZSBFZmlUbHNTZXNzaW9uRXJyb3IuIFRoZSBjYWxsZXIgbmVlZA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsIEJ1aWxkUmVzcG9uc2VQYWNrZXQoKSB0 byBnZW5lcmF0ZSBFcnJvciBBbGVydA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZXNzYWdlIGFuZCBzZW5kIGl0IG91dC4NCisgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJD RVMgICAgTm8gZW5vdWdoIHJlc291cmNlIHRvIGZpbmlzaCB0aGUgb3BlcmF0aW9uLg0KKyoqLw0K K3R5cGVkZWYNCitFRklfU1RBVFVTDQorKEVGSUFQSSAqRUZJX1RMU19QUk9DRVNTX1BBQ0tFVCkg KA0KKyAgSU4gRUZJX1RMU19QUk9UT0NPTCAgICAgICAgICAgICAgICAqVGhpcywNCisgIElOIE9V VCBFRklfVExTX0ZSQUdNRU5UX0RBVEEgICAgICAgKipGcmFnbWVudFRhYmxlLA0KKyAgSU4gVUlO VDMyICAgICAgICAgICAgICAgICAgICAgICAgICAqRnJhZ21lbnRDb3VudCwNCisgIElOIEVGSV9U TFNfQ1JZUFRfTU9ERSAgICAgICAgICAgICAgQ3J5cHRNb2RlDQorICApOw0KKw0KKy8vLw0KKy8v LyBUaGUgRUZJX1RMU19QUk9UT0NPTCBpcyB1c2VkIHRvIGNyZWF0ZSwgZGVzdHJveSBhbmQgbWFu YWdlIFRMUyBzZXNzaW9uLg0KKy8vLyBGb3IgZGV0YWlsIG9mIFRMUywgcGxlYXNlIHJlZmVyIHRv IFRMUyByZWxhdGVkIFJGQy4NCisvLy8NCitzdHJ1Y3QgX0VGSV9UTFNfUFJPVE9DT0wgew0KKyAg RUZJX1RMU19TRVRfU0VTU0lPTl9EQVRBICAgICAgICAgICBTZXRTZXNzaW9uRGF0YTsNCisgIEVG SV9UTFNfR0VUX1NFU1NJT05fREFUQSAgICAgICAgICAgR2V0U2Vzc2lvbkRhdGE7DQorICBFRklf VExTX0JVSUxEX1JFU1BPTlNFX1BBQ0tFVCAgICAgIEJ1aWxkUmVzcG9uc2VQYWNrZXQ7DQorICBF RklfVExTX1BST0NFU1NfUEFDS0VUICAgICAgICAgICAgIFByb2Nlc3NQYWNrZXQ7DQorfTsNCisN CitleHRlcm4gRUZJX0dVSUQgZ0VmaVRsc1NlcnZpY2VCaW5kaW5nUHJvdG9jb2xHdWlkOw0KK2V4 dGVybiBFRklfR1VJRCBnRWZpVGxzUHJvdG9jb2xHdWlkOw0KKw0KKyNlbmRpZiAgLy8gX19FRklf VExTX1BST1RPQ09MX0hfXw0KZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Rs c0NvbmZpZy5oIGIvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvVGxzQ29uZmlnLmgNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi40YjYyYmY1DQotLS0gL2Rldi9udWxsDQorKysg Yi9NZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9UbHNDb25maWcuaA0KQEAgLTAsMCArMSwxMzIgQEAN CisvKiogQGZpbGUNCisgIEVGSSBUTFMgQ29uZmlndXJhdGlvbiBQcm90b2NvbCBhcyBkZWZpbmVk IGluIFVFRkkgMi41Lg0KKyAgVGhlIEVGSSBUTFMgQ29uZmlndXJhdGlvbiBQcm90b2NvbCBwcm92 aWRlcyBhIHdheSB0byBzZXQgYW5kIGdldCBUTFMgY29uZmlndXJhdGlvbi4NCisNCisgIENvcHly aWdodCAoYykgMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS PiAgVGhpcyANCisgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIGFyZSBs aWNlbnNlZCBhbmQgbWFkZSANCisgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0 aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgIHdoaWNoIA0KKyBhY2NvbXBhbmllcyB0aGlzIGRpc3Ry aWJ1dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgDQorIGZvdW5kIGF0 ICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwDQorDQorICBU SEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFT IElTIiBCQVNJUywgIA0KKyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9G IEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KKw0KKyAgQHBhciBSZXZpc2lv biBSZWZlcmVuY2U6DQorICBUaGlzIFByb3RvY29sIGlzIGludHJvZHVjZWQgaW4gVUVGSSBTcGVj aWZpY2F0aW9uIDIuNQ0KKw0KKyoqLw0KKyNpZm5kZWYgX19FRklfVExTX0NPTkZJR1VSQVRJT05f UFJPVE9DT0xfSF9fDQorI2RlZmluZSBfX0VGSV9UTFNfQ09ORklHVVJBVElPTl9QUk9UT0NPTF9I X18NCisNCisvLy8NCisvLy8gVGhlIEVGSSBDb25maWd1cmF0aW9uIHByb3RvY29sIHByb3ZpZGVz IGEgd2F5IHRvIHNldCBhbmQgZ2V0IFRMUyBjb25maWd1cmF0aW9uLg0KKy8vLw0KKyNkZWZpbmUg RUZJX1RMU19DT05GSUdVUkFUSU9OX1BST1RPQ09MX0dVSUQgIFwNCisgIHsgXA0KKyAgICAweDE2 ODJmZTQ0LCAweGJkN2EsIDB4NDQwNywgeyAweGI3LCAweGM3LCAweGRjLCAweGEzLCAweDdjLCAw eGEzLCANCisweDkyLCAweDJkIH0gIFwNCisgIH0NCisNCit0eXBlZGVmIHN0cnVjdCBfRUZJX1RM U19DT05GSUdVUkFUSU9OX1BST1RPQ09MIA0KK0VGSV9UTFNfQ09ORklHVVJBVElPTl9QUk9UT0NP TDsNCisNCisvLy8NCisvLy8gRUZJX1RMU19DT05GSUdfREFUQV9UWVBFDQorLy8vDQordHlwZWRl ZiBlbnVtIHsNCisgIC8vLw0KKyAgLy8vIExvY2FsIGhvc3QgY29uZmlndXJhdGlvbiBkYXRhOiBw dWJsaWMgY2VydGlmaWNhdGUgZGF0YS4NCisgIC8vLyBUaGlzIGRhdGEgc2hvdWxkIGJlIERFUi1l bmNvZGVkIGJpbmFyeVguNTA5IGNlcnRpZmljYXRlDQorICAvLy8gb3IgUEVNZW5jb2RlZCBYLjUw OSBjZXJ0aWZpY2F0ZS4NCisgIC8vLw0KKyAgRWZpVGxzQ29uZmlnRGF0YVR5cGVIb3N0UHVibGlj Q2VydCwNCisgIC8vLw0KKyAgLy8vIExvY2FsIGhvc3QgY29uZmlndXJhdGlvbiBkYXRhOiBwcml2 YXRlIGtleSBkYXRhLg0KKyAgLy8vDQorICBFZmlUbHNDb25maWdEYXRhVHlwZUhvc3RQcml2YXRl S2V5LA0KKyAgLy8vDQorICAvLy8gQ0EgY2VydGlmaWNhdGUgdG8gdmVyaWZ5IHBlZXIuIFRoaXMg ZGF0YSBzaG91bGQgYmUgUEVNLWVuY29kZWQNCisgIC8vLyBSU0Egb3IgUEtDUyM4IHByaXZhdGUg a2V5Lg0KKyAgLy8vDQorICBFZmlUbHNDb25maWdEYXRhVHlwZUNBQ2VydGlmaWNhdGUsDQorICAv Ly8NCisgIC8vLyBDQS1zdXBwbGllZCBDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIExpc3QgZGF0YS4g VGhpcyBkYXRhIHNob3VsZA0KKyAgLy8vIGJlIERFUi1lbmNvZGVkIENSTCBkYXRhLg0KKyAgLy8v DQorICBFZmlUbHNDb25maWdEYXRhVHlwZUNlcnRSZXZvY2F0aW9uTGlzdCwNCisNCisgIEVmaVRs c0NvbmZpZ0RhdGFUeXBlTWF4aW11bQ0KKw0KK30gRUZJX1RMU19DT05GSUdfREFUQV9UWVBFOw0K Kw0KKy8qKg0KKyAgU2V0IFRMUyBjb25maWd1cmF0aW9uIGRhdGEuDQorDQorICBUaGUgU2V0RGF0 YSgpIGZ1bmN0aW9uIHNldHMgVExTIGNvbmZpZ3VyYXRpb24gdG8gbm9uLXZvbGF0aWxlIHN0b3Jh Z2UgDQorIG9yIHZvbGF0aWxlICBzdG9yYWdlLg0KKw0KKyAgQHBhcmFtW2luXSAgVGhpcyAgICAg ICAgICAgICAgICBQb2ludGVyIHRvIHRoZSBFRklfVExTX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wg aW5zdGFuY2UuDQorICBAcGFyYW1baW5dICBEYXRhVHlwZSAgICAgICAgICAgIENvbmZpZ3VyYXRp b24gZGF0YSB0eXBlLg0KKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgICAgICAgICBQb2ludGVy IHRvIGNvbmZpZ3VyYXRpb24gZGF0YS4NCisgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgICAgICAg ICAgVG90YWwgc2l6ZSBvZiBjb25maWd1cmF0aW9uIGRhdGEuDQorDQorICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICAgICAgICAgIFRoZSBUTFMgY29uZmlndXJhdGlvbiBkYXRhIGlzIHNldCBzdWNj ZXNzZnVsbHkuDQorICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIE9uZSBvciBtb3Jl IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBpcyBUUlVFOg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUaGlzIGlzIE5VTEwuDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERhdGEgaXMgTlVMTC4NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGF0YVNpemUgaXMgMC4NCisgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgVGhl IERhdGFUeXBlIGlzIHVuc3VwcG9ydGVkLg0KKyAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNF UyAgICBSZXF1aXJlZCBzeXN0ZW0gcmVzb3VyY2VzIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQuDQor DQorKiovDQordHlwZWRlZg0KK0VGSV9TVEFUVVMNCisoRUZJQVBJICpFRklfVExTX0NPTkZJR1VS QVRJT05fU0VUX0RBVEEpKA0KKyAgSU4gRUZJX1RMU19DT05GSUdVUkFUSU9OX1BST1RPQ09MICAq VGhpcywNCisgIElOIEVGSV9UTFNfQ09ORklHX0RBVEFfVFlQRSAgICAgICAgRGF0YVR5cGUsDQor ICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICpEYXRhLA0KKyAgSU4gVUlOVE4g ICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhU2l6ZQ0KKyAgKTsNCisNCisvKioNCisgIEdl dCBUTFMgY29uZmlndXJhdGlvbiBkYXRhLg0KKw0KKyAgVGhlIEdldERhdGEoKSBmdW5jdGlvbiBn ZXRzIFRMUyBjb25maWd1cmF0aW9uLg0KKw0KKyAgQHBhcmFtW2luXSAgICAgICBUaGlzICAgICAg ICAgICBQb2ludGVyIHRvIHRoZSBFRklfVExTX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgaW5zdGFu Y2UuDQorICBAcGFyYW1baW5dICAgICAgIERhdGFUeXBlICAgICAgIENvbmZpZ3VyYXRpb24gZGF0 YSB0eXBlLg0KKyAgQHBhcmFtW2luLCBvdXRdICBEYXRhICAgICAgICAgICBQb2ludGVyIHRvIGNv bmZpZ3VyYXRpb24gZGF0YS4NCisgIEBwYXJhbVtpbiwgb3V0XSAgRGF0YVNpemUgICAgICAgVG90 YWwgc2l6ZSBvZiBjb25maWd1cmF0aW9uIGRhdGEuIE9uIGlucHV0LCBpdCBtZWFucw0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc2l6ZSBvZiBEYXRhIGJ1ZmZlci4gT24g b3V0cHV0LCBpdCBtZWFucyB0aGUgc2l6ZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvZiBjb3BpZWQgRGF0YSBidWZmZXIgaWYgRUZJX1NVQ0NFU1MsIGFuZCBtZWFucyB0aGUN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBvZiBkZXNpcmVkIERhdGEg YnVmZmVyIGlmIEVGSV9CVUZGRVJfVE9PX1NNQUxMLg0KKw0KKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgICBUaGUgVExTIGNvbmZpZ3VyYXRpb24gZGF0YSBpcyBnb3Qgc3VjY2Vzc2Z1 bGx5Lg0KKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBPbmUgb3IgbW9yZSBvZiB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgaXMgVFJVRToNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGhpcyBpcyBOVUxMLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEYXRhU2l6ZSBpcyBOVUxMLg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEYXRhIGlzIE5VTEwgaWYgKkRhdGFTaXplIGlzIG5vdCB6ZXJvLg0KKyAgQHJldHZhbCBFRklf VU5TVVBQT1JURUQgICAgICAgICBUaGUgRGF0YVR5cGUgaXMgdW5zdXBwb3J0ZWQuDQorICBAcmV0 dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgIFRoZSBUTFMgY29uZmlndXJhdGlvbiBkYXRhIGlz IG5vdCBmb3VuZC4NCisgIEByZXR2YWwgRUZJX0JVRkZFUl9UT09fU01BTEwgICAgVGhlIGJ1ZmZl ciBpcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgZGF0YS4NCisNCisqKi8NCit0eXBlZGVmDQorRUZJ X1NUQVRVUw0KKyhFRklBUEkgKkVGSV9UTFNfQ09ORklHVVJBVElPTl9HRVRfREFUQSkoDQorICBJ TiBFRklfVExTX0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgICpUaGlzLA0KKyAgSU4gRUZJX1RMU19D T05GSUdfREFUQV9UWVBFICAgICAgICBEYXRhVHlwZSwNCisgIElOIE9VVCBWT0lEICAgICAgICAg ICAgICAgICAgICAgICAgKkRhdGEsICBPUFRJT05BTA0KKyAgSU4gT1VUIFVJTlROICAgICAgICAg ICAgICAgICAgICAgICAqRGF0YVNpemUNCisgICk7DQorDQorLy8vDQorLy8vIFRoZSBFRklfVExT X0NPTkZJR1VSQVRJT05fUFJPVE9DT0wgaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBhIHdheSB0byAN CitzZXQgYW5kIGdldCAvLy8gVExTIGNvbmZpZ3VyYXRpb24sIHN1Y2ggYXMgQ2VydGlmaWNhdGUs IHByaXZhdGUga2V5IGRhdGEuDQorLy8vDQorc3RydWN0IF9FRklfVExTX0NPTkZJR1VSQVRJT05f UFJPVE9DT0wgew0KKyAgRUZJX1RMU19DT05GSUdVUkFUSU9OX1NFVF9EQVRBICAgICBTZXREYXRh Ow0KKyAgRUZJX1RMU19DT05GSUdVUkFUSU9OX0dFVF9EQVRBICAgICBHZXREYXRhOw0KK307DQor DQorZXh0ZXJuIEVGSV9HVUlEIGdFZmlUbHNDb25maWd1cmF0aW9uUHJvdG9jb2xHdWlkOw0KKw0K KyNlbmRpZiAgLy9fX0VGSV9UTFNfQ09ORklHVVJBVElPTl9QUk9UT0NPTF9IX18NCmRpZmYgLS1n aXQgYS9NZGVQa2cvTWRlUGtnLmRlYyBiL01kZVBrZy9NZGVQa2cuZGVjIGluZGV4IDNlMDhiZWQu LmYyYmRiMzAgMTAwNjQ0DQotLS0gYS9NZGVQa2cvTWRlUGtnLmRlYw0KKysrIGIvTWRlUGtnL01k ZVBrZy5kZWMNCkBAIC0xNjA3LDEwICsxNjA3LDE5IEBADQogICBnRWZpSHR0cFByb3RvY29sR3Vp ZCAgICAgICAgICAgICAgICAgPSB7IDB4N2E1OWIyOWIsIDB4OTEwYiwgMHg0MTcxLCB7MHg4Miwg MHg0MiwgMHhhOCwgMHg1YSwgMHgwZCwgMHhmMiwgMHg1YiwgMHg1YiB9fQ0KIA0KICAgIyMgSW5j bHVkZS9Qcm90b2NvbC9IdHRwVXRpbGl0aWVzLmgNCiAgIGdFZmlIdHRwVXRpbGl0aWVzUHJvdG9j b2xHdWlkICAgICAgICA9IHsgMHgzZTM1YzE2MywgMHg0MDc0LCAweDQ1ZGQsIHsweDQzLCAweDFl LCAweDIzLCAweDk4LCAweDlkLCAweGQ4LCAweDZiLCAweDMyIH19DQogDQorICAjIyBJbmNsdWRl L1Byb3RvY29sL1Rscy5oDQorICBnRWZpVGxzU2VydmljZUJpbmRpbmdQcm90b2NvbEd1aWQgICA9 IHsgMHg5NTJjYjc5NSwgMHhmZjM2LCAweDQ4Y2YsIHsweGEyLCAweDQ5LCAweDRkLCAweGY0LCAw eDg2LCAweGQ2LCAweGFiLCAweDhkIH19DQorDQorICAjIyBJbmNsdWRlL1Byb3RvY29sL1Rscy5o DQorICBnRWZpVGxzUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICA9IHsgMHhjYTk1OWYsIDB4 NmNmYSwgMHg0ZGIxLCB7MHg5NSwgMHhiYywgMHhlNCwgMHg2YywgMHg0NywgMHg1MSwgMHg0Mywg MHg5MCB9fQ0KKyAgDQorICAjIyBJbmNsdWRlL1Byb3RvY29sL1Rsc0NvbmZpZy5oDQorICBnRWZp VGxzQ29uZmlndXJhdGlvblByb3RvY29sR3VpZCAgICA9IHsgMHgxNjgyZmU0NCwgMHhiZDdhLCAw eDQ0MDcsIHsgMHhiNywgMHhjNywgMHhkYywgMHhhMywgMHg3YywgMHhhMywgMHg5MiwgMHgyZCB9 fQ0KKw0KICAgIyMgSW5jbHVkZS9Qcm90b2NvbC9SZXN0LmgNCiAgIGdFZmlSZXN0UHJvdG9jb2xH dWlkICAgICAgICAgICAgICAgICA9ICB7IDB4MGRiNDhhMzYsIDB4NGU1NCwgMHhlYTljLCB7MHg5 YiwgMHgwOSwgMHgxZSwgMHhhNSwgMHhiZSwgMHgzYSwgMHg2NiwgMHgwYiB9fQ0KIA0KICAgIyMg SW5jbHVkZS9Qcm90b2NvbC9TdXBwbGljYW50LmgNCiAgIGdFZmlTdXBwbGljYW50U2VydmljZUJp bmRpbmdQcm90b2NvbEd1aWQgID0geyAweDQ1YmNkOThlLCAweDU5YWQsIDB4NDE3NCwgeyAweDk1 LCAweDQ2LCAweDM0LCAweDRhLCAweDcsIDB4NDgsIDB4NTgsIDB4OTggfX0NCi0tDQoxLjkuNS5t c3lzZ2l0LjENCg0K