From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web09.2474.1664515747903875110 for ; Thu, 29 Sep 2022 22:29:08 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=CRtpi8ad; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: yi1.li@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1664515748; x=1696051748; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=d9GzrgMFiwyq3S4CGA+lLR7hZf/FA8tJ8QxcvgBOUUU=; b=CRtpi8adfd7OgCYnOJAF+0Gracc6y6Ip4NxRzQbR8qXU0ABGUtBx3xW0 zOJVaJCB2zTQ1e9NN77UJm9bwMcaLO+xJnuKKoqStbJ8piYoOHK9/0LnM c19QYL8DUklxtZHmnmqUR6ODaGOwwnjXPk7nb4WgEDZQPuWWXATG6oNWx +qH8FSISx+mE/cTlwyNryDoes7Klu1YyVRbSogpRcq2CzBT4ATxbJSmZd BDXvrL3pkC557/ZrNk7ZfD7g+UGG+Pkfsjn+ZD0quVLJBNlMx88NOIOZI +fU7gwEkmnIsp+F7vV6Los/9sSBlxVRfxuwCjk4ta5uk81Vg2bBXxM+DD A==; X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="300825322" X-IronPort-AV: E=Sophos;i="5.93,357,1654585200"; d="scan'208";a="300825322" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2022 22:28:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10485"; a="685151520" X-IronPort-AV: E=Sophos;i="5.93,357,1654585200"; d="scan'208";a="685151520" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 29 Sep 2022 22:28:52 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 22:28:46 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Thu, 29 Sep 2022 22:28:45 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Thu, 29 Sep 2022 22:28:45 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Thu, 29 Sep 2022 22:28:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jPPw08LrQCn+Ha0azvOF4zpg5KQ04VUXJjZPpKMmrJYUnyvu5SYWTNPzV1xMYOoL/PvA/b355rnu+mb5NWhPrHJV24uCPJY7ttbpMQt7sp1RepDYgd1x1hoaZ6glR8PGoNjEfr62URLNsIsmhxWF9bpQMZnXOcWCx272sj75BNa2FsaozIsnSvSihRvHEs/afvxklVCge6awOZhH1P1EElAGogyTk0+wOAAI/P/RCIRpk/mR8X0e4RBObUry11sDUsi4ByNWVgO0BvPRzR6NBVoK9pkPcuYPGxOqVZz8EOBmjCoJOXDSoQuP/l6+Lzc6d7OIqJ1SkTt6gFZnT1Or+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d9GzrgMFiwyq3S4CGA+lLR7hZf/FA8tJ8QxcvgBOUUU=; b=SSjV7BuBCEiZxcvm11/L9FNeZAvuwiGzjRBYNttW7WHQpUrKQY2gKaBBb5doJYNaH5MJNXzU/xiGym2rifOLKxM32zXH9J/TDbujytsF9rQVsYSPzWMBu5jPYj5DPG+8yXbAAu3oKB6jzl8BI+8MZgS5sYl7Flpz0cx7DdigLFtnQ/WJznFyIMSHuqy1ZYTsFvhly+Ye1MOs64BOMtd9/U8hOs4wdyZYr/bqV0V8YWfHSIObSBpzhbttkO5rhZF4oQh5wykm3pEph5REVCww4BAGXbH9eCenwJpnIjKnGPmcss6uQZOCyUqp5ipbz24r7nfnjbR74WcoorimtgUMXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SJ1PR11MB6227.namprd11.prod.outlook.com (2603:10b6:a03:45a::10) by LV2PR11MB6024.namprd11.prod.outlook.com (2603:10b6:408:17a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Fri, 30 Sep 2022 05:28:43 +0000 Received: from SJ1PR11MB6227.namprd11.prod.outlook.com ([fe80::bd4b:a704:7db6:70d4]) by SJ1PR11MB6227.namprd11.prod.outlook.com ([fe80::bd4b:a704:7db6:70d4%7]) with mapi id 15.20.5654.020; Fri, 30 Sep 2022 05:28:43 +0000 From: "Li, Yi" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Yao, Jiewen" , "Wang, Jian J" , "Lu, Xiaoyu1" , "Jiang, Guomin" Subject: Re: [edk2-devel] [PATCH 3/3] CryptoPkg: Add new Tls APIs to DXE and protocol Thread-Topic: [edk2-devel] [PATCH 3/3] CryptoPkg: Add new Tls APIs to DXE and protocol Thread-Index: AQHY0XESdLXh6a1dyECta6vETjR0sK33co6AgAAE4DA= Date: Fri, 30 Sep 2022 05:28:42 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ1PR11MB6227:EE_|LV2PR11MB6024:EE_ x-ms-office365-filtering-correlation-id: 5178a16c-c22d-4d17-5571-08daa2a4a38f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mLv9WgufWvBZP+ziGVGxWI8thC95U3t6XtsYgapM6ENKNjK8yhCe1B9O86iLtIuV+Px3yA0mdC5GbHgywwdjVCeBERjQgIMXGltuN9e1qEqUcaasAUbcE0TPZTpVPK1ZcF5Kw8EzHKzugJly2wmrIC3Pn7yMQETBYz+Q7WobKUrJARIXpxdFf/Y+L8FmqFvdp6SFeuCMA6I3IHAmFCslfCkgip/y0RTq7OfjGy/g8cTarxzxTRzQnHHZmRACQfOjXRzcY0plpoY9gCXSztozUYX5TGSmYtnfod3XOvrVUp0UAqNq1P0gYBWCn82uHppU8zxr8B9MimVJaYpFR2BnhzpXIxZzmiSJJdoDn3HzSXcZyhPpuHTw5h1xkcot8XjlkAcMCFLm6K+nzfYV7N1rVg+oN2NwGNSZ0oVKcIgw/JUW5JHTjOjK53OWNlEkyqthMcZwV5fzD9VtnPcfHB13LFRir2OGxtJtg0ViJFJhVrgTnfk2/kbx6TQDTATI/2pzU3rorV4Y/m8UwFN/PMpg3NmpQSwOL1NsnedkWx1Nh+KRykgarQ3DQyduKxzaxtXamaTPHH3Z2d3vm2w7k2KOov6688Hbte9bGCl89m0BujrSgUM/JOjZgdRCBkXwG2RBBTOiNKqQV1ALT82L2ODVQurzL7WaBUKzKQlHKSX3KSspd126y5sJ8uON6biuOEhacrlO3mYRjzCRFJeHSfXq6iG1Gt0GC41S5OqR/EIb1N8gfB+LoP6TP8qKmZgPCJhJvAkc+XeApOGl0C0f9r4vldheoVP2+moWfke689lgDDwjcVvKTqfeGXO+wpV/55S8Sb1QkqDhz+kzwLqQ5sR6yw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ1PR11MB6227.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(136003)(346002)(376002)(39860400002)(396003)(451199015)(66899015)(316002)(110136005)(54906003)(33656002)(86362001)(38070700005)(122000001)(64756008)(38100700002)(83380400001)(186003)(82960400001)(26005)(966005)(478600001)(66946007)(9686003)(66446008)(66556008)(66476007)(53546011)(4326008)(107886003)(30864003)(76116006)(7696005)(71200400001)(41300700001)(8676002)(2906002)(6506007)(5660300002)(8936002)(52536014)(55016003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RThYZjF6a3hKelR0TXNIUWVhbVI2RkFHT0pySy9FOGR1MlEvMjVjeXBmWS9Y?= =?utf-8?B?bjBXY3dwODJMbUFvWUU1NjVJWjVpbERVNkx6dzNmNTdTNHdaeVFXOW96Z1VO?= =?utf-8?B?QlVYTjgyMm96NlF2dmdqcGR3cWkrSE9wOEI1cERtelRCVG14R3ZqMlZYNXU5?= =?utf-8?B?cXFRYUxxUEdqeVJ3enNWNTB0Kzg3T2JmYkxWazZBYUFEckd2QzdnWXBpa2ls?= =?utf-8?B?NWI2RVZ2QkEvMWltSkdvdmJHclhOTTlGRWQrS2FxVitjUDFob0dxRWY0NlFo?= =?utf-8?B?SUgxSEJiY2dUK3VIOGZwenh1Zzkrbm43bHB0c1N0dTU5UGlEQUo2S3BZTTEz?= =?utf-8?B?UzJGRjkybTlvOGRmWXRLWjJSb2V6OWNqZm9PQ1hZUVJ4MVoweVd6L2R5YVdl?= =?utf-8?B?Q3dlWjRiZFYxWCs0ZithelZnTEV3ekNmeTlWdC9Lc1VOMytWVWljYW5rcFZz?= =?utf-8?B?NUtPL1VEL2NlR2c3V0t5REZhMG12UWZvei8vU2tqdmNvUXpodTc2ZW1kSC9G?= =?utf-8?B?TXRZb3VEWWp5TTB4TXlQblJHcXc2U1hiM0tRTE80S3VHa1A2NE1BRE1GR2Zy?= =?utf-8?B?emhqS0I2TkI5ZnVzTWlEcXYvME9rd0xOSkpoaUZBdzZYYmE1WXZFd082ckk1?= =?utf-8?B?QXhLOHZhYWZnMUpMWnlWeE5jSkpMQUpES2tmVVEwZWNVOXd3b0lkVVNJK2lD?= =?utf-8?B?UVMzWmJjcVpwcmxoSkYycjJabjZtZEVMNUZLM2lUbkR5NmFxUW1DLzFDYzFu?= =?utf-8?B?TjA5U1pvSzZTMFA4MUxGdW95MjZtL3pUY0tmanJtRXZIcnFkTS80K21XdlVR?= =?utf-8?B?M3dGNzU5RTlkM0hkYXpBODVyNnJhUGJJd1BjVHI1RDMxU21LOWlzMGNVVk1Z?= =?utf-8?B?S3BMUG5JdnRiWDcxVisvbkR5Nk1vN3hObEVLWldkMkRKUkdQOXQ2S2hZTi8x?= =?utf-8?B?TS9yUDBZUVk1V2dwL08wWERwL2UyL2E0aGxia2x2QU9idlk1dWVMbTZnb1ds?= =?utf-8?B?UWpUMnZ3Ny9QMjFlOENkYVYvQ2FVL2o1d21JMXRNbUVBWThVbXMrVlBGVkJV?= =?utf-8?B?M05YRVY2RWVyVDVUOUVJSWxmUUl3K0pYTkVnZWRjNndYVEVMNk11Qk96SDhU?= =?utf-8?B?ZkJiMGZqQ0htSlV0S252bkhUT1RzekVmUFV1dkE3SVRNdHZqM25RWjRDaDhw?= =?utf-8?B?MXNsTTM0WUxLNmVLLzZPclBmeC9DNDJKYzNTRm52WkV5NW1veE5jNnJiTlZy?= =?utf-8?B?eXhyWml4QUVaZXcvMmljQkRzRFlhdnRKVUNYL1RVYkZQSWtsZENWYVZPVmtw?= =?utf-8?B?WldEamdzTXozUE00eEZLd0JaNzBrUWtDN0dnT2Y5cUorbGRxTzRXMkwvOXRZ?= =?utf-8?B?b3Fqb2lpV2hvSUdtdE9iSERmQVJMZGRBTVFmNDhRWG9ZOVJmVzl0ZEFBd09z?= =?utf-8?B?WjNIQmNzdzZGWloyeVFDUEF0ZGpUaEtIMEhHc0RjY1BIbW53ditkUUlRb3pz?= =?utf-8?B?eVZJNzkwTWxRTEFwT1I0cTZLcFVRMi9nUWc4M05Ebm45SDFZMUptY2doWHBX?= =?utf-8?B?QmhaUG1kNnd0MjdKM09zUTA2dktSb3VFWU1UVURLMVRpTUloangvbFpCTTRv?= =?utf-8?B?aWtZSEJLRXhXVDQycERIRmltY3czcHpCQW1Db3g3RkRCa0hDQTVGdnV2d01H?= =?utf-8?B?TTBYdzM2T25rR1ZCaFRITjNuZ1BOb05yNlJCZ29GTzRSWHBSYm1BSWZUanpS?= =?utf-8?B?R1lIcktuTzFuUm5xdVRPcjR1KytZbFB6VVVEbkdRL2kxZWs1MUZUdk95bXMx?= =?utf-8?B?VXE2VkpxUG5YNUVTOTFMVVdWcXBYRThxQ3prL1MweHlyV0cvVFlVOFI5anNN?= =?utf-8?B?UVV5Q3lrOFJScHFrb2JjdytHWXlWN2pzczd5K0ZiM2hLWXBKeEV0eEtaS2lx?= =?utf-8?B?MDk5NFJ2M0w4K0RpL3RzQkFZV3Rad3MzeVQvQ2ZzNW1tdzBucHRiN2hCYmNl?= =?utf-8?B?a0VIcWpod2pTY29zZTc5NkpZOXRvck9BS3RQMjNjblFQUGUxVUhnMVdQTWYv?= =?utf-8?B?RmRBYTBPU1Vad005eGhUSVNaanRCSzhEVVQ3WmZXblF4YU9ybnR1bUE4ZkZn?= =?utf-8?Q?B3CY=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ1PR11MB6227.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5178a16c-c22d-4d17-5571-08daa2a4a38f X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2022 05:28:42.8133 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GhALKxBT/92YDQqglnuo+2D8LiQIG8ukwdm2maedZiCeCtGv+tdd2xtJAt+J1dn+RfELwXo60Eeqx7AouwDAJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR11MB6024 Return-Path: yi1.li@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzLCBuZXh0IHBhdGNoIHNldCB3aWxsIGZpeCBpdC4NCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4gDQpTZW50OiBGcmlkYXksIFNlcHRlbWJlciAzMCwgMjAyMiAxOjA5IFBNDQpUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IExpLCBZaTEgPHlpMS5saUBpbnRlbC5jb20+OyBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpDYzogWWFvLCBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ OyBMdSwgWGlhb3l1MSA8eGlhb3l1MS5sdUBpbnRlbC5jb20+OyBKaWFuZywgR3VvbWluIDxndW9t aW4uamlhbmdAaW50ZWwuY29tPg0KU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMy8z XSBDcnlwdG9Qa2c6IEFkZCBuZXcgVGxzIEFQSXMgdG8gRFhFIGFuZCBwcm90b2NvbA0KDQpJIHNl ZSBvbmUgaXNzdWUgd2l0aCBhZGRpbmcgbmV3IGJpdHMgdG8gdGhlIGNyeXB0byBzZXJ2aWNlcyBz dHJ1Y3R1cmVkIFBDRC4NCg0KQ29tbWVudCBiZWxvdy4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExpLCBZaQ0KPiBTZW50OiBTdW5kYXksIFNlcHRlbWJl ciAyNSwgMjAyMiAxMToyNyBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IExp LCBZaTEgPHlpMS5saUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5j b20+OyANCj4gV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBMdSwgWGlhb3l1 MSANCj4gPHhpYW95dTEubHVAaW50ZWwuY29tPjsgSmlhbmcsIEd1b21pbiA8Z3VvbWluLmppYW5n QGludGVsLmNvbT4NCj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSCAzLzNdIENyeXB0b1Br ZzogQWRkIG5ldyBUbHMgQVBJcyB0byBEWEUgDQo+IGFuZCBwcm90b2NvbA0KPiANCj4gUkVGOiBo dHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM4OTINCj4gDQo+ IFRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyBuZXcgVGxzIGxpYnJhcnkgZnVuY3Rpb25zIGZv ciBDcnlwdG8gRUZJIA0KPiBEcml2ZXIgYW5kIFByb3RvY29sLg0KPiANCj4gQ2M6IEppZXdlbiBZ YW8gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5n QGludGVsLmNvbT4NCj4gQ2M6IFhpYW95dSBMdSA8eGlhb3l1MS5sdUBpbnRlbC5jb20+DQo+IENj OiBHdW9taW4gSmlhbmcgPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6 IFlpIExpIDx5aTEubGlAaW50ZWwuY29tPg0KPiAtLS0NCj4gIENyeXB0b1BrZy9Ecml2ZXIvQ3J5 cHRvLmMgICAgICAgICAgICAgICAgICAgICB8IDE1NSArKysrKysrKysrKysrKysrKy0NCj4gIC4u Li9QY2QvUGNkQ3J5cHRvU2VydmljZUZhbWlseUVuYWJsZS5oICAgICAgICB8ICAgNSArDQo+ICAu Li4vQmFzZUNyeXB0TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5jICAgICAgfCAxNDYgKysrKysr KysrKysrKysrKy0NCj4gIENyeXB0b1BrZy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5oICAgICAg ICAgICB8IDEzNiArKysrKysrKysrKysrKy0NCj4gIDQgZmlsZXMgY2hhbmdlZCwgNDM1IGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvQ3J5cHRvUGtnL0Ry aXZlci9DcnlwdG8uYyBiL0NyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRvLmMgDQo+IGluZGV4IDdhODI2 NmFhYmEuLmYxZmY3Nzg1NWMgMTAwNjQ0DQo+IC0tLSBhL0NyeXB0b1BrZy9Ecml2ZXIvQ3J5cHRv LmMNCj4gKysrIGIvQ3J5cHRvUGtnL0RyaXZlci9DcnlwdG8uYw0KPiBAQCAtNDIzOCw2ICs0MjM4 LDI4IEBAIENyeXB0b1NlcnZpY2VUbHNXcml0ZSAoDQo+ICAgIHJldHVybiBDQUxMX0JBU0VDUllQ VExJQiAoVGxzLlNlcnZpY2VzLldyaXRlLCBUbHNXcml0ZSwgKFRscywgDQo+IEJ1ZmZlciwgQnVm ZmVyU2l6ZSksIDApOyAgfQ0KPiANCj4gKy8qKg0KPiArICBTaHV0ZG93biBhIFRMUyBjb25uZWN0 aW9uLg0KPiArDQo+ICsgIFNodXRkb3duIHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVh c2luZyB0aGUgcmVzb3VyY2VzLCANCj4gKyBtZWFuaW5nIGEgbmV3ICBjb25uZWN0aW9uIGNhbiBi ZSBzdGFydGVkIHdpdGhvdXQgY2FsbGluZyBUbHNOZXcoKSANCj4gKyBhbmQgd2l0aG91dCBzZXR0 aW5nICBjZXJ0aWZpY2F0ZXMgZXRjLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gICAgICAgVGxzICAg ICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdCB0byBzaHV0ZG93bi4NCj4gKw0KPiAr ICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgIFRoZSBUTFMgaXMgc2h1dGRvd24gc3Vj Y2Vzc2Z1bGx5Lg0KPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFRscyBpcyBO VUxMLg0KPiArICBAcmV0dmFsIEVGSV9QUk9UT0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJy b3Igb2NjdXJyZWQuDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArQ3J5cHRv U2VydmljZVRsc1NodXRkb3duICgNCj4gKyAgSU4gICAgIFZPSUQgICpUbHMNCj4gKyAgKQ0KPiAr ew0KPiArICByZXR1cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKFRscy5TZXJ2aWNlcy5TaHV0ZG93biwg VGxzU2h1dGRvd24sIA0KPiArKFRscyksIEVGSV9VTlNVUFBPUlRFRCk7IH0NCj4gKw0KPiAgLyoq DQo+ICAgIFNldCBhIG5ldyBUTFMvU1NMIG1ldGhvZCBmb3IgYSBwYXJ0aWN1bGFyIFRMUyBvYmpl Y3QuDQo+IA0KPiBAQCAtNDQ2MywxMSArNDQ4NSw0MSBAQCBDcnlwdG9TZXJ2aWNlVGxzU2V0SG9z dFB1YmxpY0NlcnQgKA0KPiAgLyoqDQo+ICAgIEFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IHRv IHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCj4gDQo+IC0gIFRoaXMgZnVuY3Rpb24gYWRkcyB0 aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKFBFTS1lbmNvZGVkIFJTQSBvciBQS0NTIzggDQo+IHByaXZh dGUNCj4gKyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVu Y29kZWQgb3IgDQo+ICsgUEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCj4gKyAga2V5KSBp bnRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdCBmb3IgVExTIG5lZ290aWF0aW9uLg0KPiArDQo+ ICsgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QuDQo+ ICsgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9m IGEgREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgb3IgUEtDUyM4IHByaXZhdGUga2V5Lg0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICBU aGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCj4gKyAgQHBhcmFtW2luXSAgUGFzc3dv cmQgICAgUG9pbnRlciB0byBOVUxMLXRlcm1pbmF0ZWQgcHJpdmF0ZSBrZXkgcGFzc3dvcmQsIHNl dCBpdCB0byBOVUxMDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHByaXZhdGUga2V5 IG5vdCBlbmNyeXB0ZWQuDQo+ICsNCj4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgIFRoZSBv cGVyYXRpb24gc3VjY2VlZGVkLg0KPiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgVGhpcyBm dW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkLg0KPiArICBAcmV0dmFsICBFRklfQUJPUlRFRCAgICAg SW52YWxpZCBwcml2YXRlIGtleSBkYXRhLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4g K0VGSUFQSQ0KPiArQ3J5cHRvU2VydmljZVRsc1NldEhvc3RQcml2YXRlS2V5RXggKA0KPiArICBJ TiAgICAgVk9JRCAgICpUbHMsDQo+ICsgIElOICAgICBWT0lEICAgKkRhdGEsDQo+ICsgIElOICAg ICBVSU5UTiAgRGF0YVNpemUsDQo+ICsgIElOICAgICBWT0lEICAgKlBhc3N3b3JkICBPUFRJT05B TA0KPiArICApDQo+ICt7DQo+ICsgIHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxzU2V0LlNl cnZpY2VzLkhvc3RQcml2YXRlS2V5RXgsIA0KPiArVGxzU2V0SG9zdFByaXZhdGVLZXlFeCwgKFRs cywgRGF0YSwgRGF0YVNpemUsIFBhc3N3b3JkKSwNCj4gRUZJX1VOU1VQUE9SVEVEKTsNCj4gK30N Cj4gKw0KPiArLyoqDQo+ICsgIEFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IHRvIHRoZSBzcGVj aWZpZWQgVExTIG9iamVjdC4NCj4gKw0KPiArICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2Fs IHByaXZhdGUga2V5IChERVItZW5jb2RlZCBvciANCj4gKyBQRU0tZW5jb2RlZCBvciBQS0NTIzgg cHJpdmF0ZQ0KPiAgICBrZXkpIGludG8gdGhlIHNwZWNpZmllZCBUTFMgb2JqZWN0IGZvciBUTFMg bmVnb3RpYXRpb24uDQo+IA0KPiAgICBAcGFyYW1baW5dICBUbHMgICAgICAgICBQb2ludGVyIHRv IHRoZSBUTFMgb2JqZWN0Lg0KPiAtICBAcGFyYW1baW5dICBEYXRhICAgICAgICBQb2ludGVyIHRv IHRoZSBkYXRhIGJ1ZmZlciBvZiBhIFBFTS1lbmNvZGVkIFJTQQ0KPiArICBAcGFyYW1baW5dICBE YXRhICAgICAgICBQb2ludGVyIHRvIHRoZSBkYXRhIGJ1ZmZlciBvZiBhIERFUi1lbmNvZGVkIG9y IFBFTS1lbmNvZGVkDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIFBLQ1MjOCBwcml2 YXRlIGtleS4NCj4gICAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgVGhlIHNpemUgb2YgZGF0YSBi dWZmZXIgaW4gYnl0ZXMuDQo+IA0KPiBAQCAtNDUxMSw2ICs0NTYzLDU5IEBAIENyeXB0b1NlcnZp Y2VUbHNTZXRDZXJ0UmV2b2NhdGlvbkxpc3QgKA0KPiAgICByZXR1cm4gQ0FMTF9CQVNFQ1JZUFRM SUIgKFRsc1NldC5TZXJ2aWNlcy5DZXJ0UmV2b2NhdGlvbkxpc3QsIA0KPiBUbHNTZXRDZXJ0UmV2 b2NhdGlvbkxpc3QsIChEYXRhLCBEYXRhU2l6ZSksIEVGSV9VTlNVUFBPUlRFRCk7ICB9DQo+IA0K PiArLyoqDQo+ICsgIFNldCB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBsaXN0IHRvIHVzZWQgYnkg dGhlIFRMUyBvYmplY3QuDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBzaWduYXR1 cmUgYWxnb3JpdGhtcyBmb3IgdXNlIGJ5IGEgc3BlY2lmaWVkIFRMUyBvYmplY3QuDQo+ICsNCj4g KyAgQHBhcmFtW2luXSAgVGxzICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0 Lg0KPiArICBAcGFyYW1baW5dICBEYXRhICAgICAgICAgICAgICAgQXJyYXkgb2YgVUlOVDggb2Yg c2lnbmF0dXJlIGFsZ29yaXRobXMuIFRoZSBhcnJheSBjb25zaXN0cyBvZg0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFpcnMgb2YgdGhlIGhhc2ggYWxnb3JpdGhtIGFuZCB0 aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBhcyBkZWZpbmVkDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbiBSRkMgNTI0Ng0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAg ICAgICAgVGhlIGxlbmd0aCB0aGUgU2lnbmF0dXJlQWxnb0xpc3QuIE11c3QgYmUgZGl2aXNpYmxl IGJ5IDIuDQo+ICsNCj4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBzaWdu YXR1cmUgYWxnb3JpdGhtIGxpc3Qgd2FzIHNldCBzdWNjZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwg IEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4NCj4gKyAg QHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEICAgICAgIE5vIHN1cHBvcnRlZCBUTFMgc2lnbmF0dXJl IGFsZ29yaXRobSB3YXMgZm91bmQgaW4gU2lnbmF0dXJlQWxnb0xpc3QNCj4gKyAgQHJldHZhbCAg RUZJX09VVF9PRl9SRVNPVVJDRVMgIE1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4NCj4gKw0KPiAr KiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK0NyeXB0b1NlcnZpY2VUbHNTZXRTaWdu YXR1cmVBbGdvTGlzdCAoDQo+ICsgIElOICAgICBWT0lEICAgKlRscywNCj4gKyAgSU4gICAgIFVJ TlQ4ICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlROICBEYXRhU2l6ZQ0KPiArICApDQo+ICt7DQo+ ICsgIHJldHVybiBDQUxMX0JBU0VDUllQVExJQiAoVGxzU2V0LlNlcnZpY2VzLlNpZ25hdHVyZUFs Z29MaXN0LCANCj4gK1Rsc1NldFNpZ25hdHVyZUFsZ29MaXN0LCAoVGxzLCBEYXRhLCBEYXRhU2l6 ZSksIEVGSV9VTlNVUFBPUlRFRCk7IH0NCj4gKw0KPiArLyoqDQo+ICsgIFNldCB0aGUgRUMgY3Vy dmUgdG8gYmUgdXNlZCBmb3IgVExTIGZsb3dzDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBzZXRz IHRoZSBFQyBjdXJ2ZSB0byBiZSB1c2VkIGZvciBUTFMgZmxvd3MuDQo+ICsNCj4gKyAgQHBhcmFt W2luXSAgVGxzICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KPiArICBA cGFyYW1baW5dICBEYXRhICAgICAgICAgICAgICAgQW4gRUMgbmFtZWQgY3VydmUgYXMgZGVmaW5l ZCBpbiBzZWN0aW9uIDUuMS4xIG9mIFJGQyA0NDkyLg0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6 ZSAgICAgICAgICAgU2l6ZSBvZiBEYXRhLCBpdCBzaG91bGQgYmUgc2l6ZW9mIChVSU5UMzIpDQo+ ICsNCj4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBFQyBjdXJ2ZSB3YXMg c2V0IHN1Y2Nlc3NmdWxseS4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRo ZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLg0KPiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQg ICAgICAgVGhlIHJlcXVlc3RlZCBUTFMgRUMgY3VydmUgaXMgbm90IHN1cHBvcnRlZA0KPiArDQo+ ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArQ3J5cHRvU2VydmljZVRsc1NldEVj Q3VydmUgKA0KPiArICBJTiAgICAgVk9JRCAgICpUbHMsDQo+ICsgIElOICAgICBVSU5UOCAgKkRh dGEsDQo+ICsgIElOICAgICBVSU5UTiAgRGF0YVNpemUNCj4gKyAgKQ0KPiArew0KPiArICByZXR1 cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKFRsc1NldC5TZXJ2aWNlcy5FY0N1cnZlLCBUbHNTZXRFY0N1 cnZlLCANCj4gKyhUbHMsIERhdGEsIERhdGFTaXplKSwgRUZJX1VOU1VQUE9SVEVEKTsgfQ0KPiAr DQo+ICAvKioNCj4gICAgR2V0cyB0aGUgcHJvdG9jb2wgdmVyc2lvbiB1c2VkIGJ5IHRoZSBzcGVj aWZpZWQgVExTIGNvbm5lY3Rpb24uDQo+IA0KPiBAQCAtNDgyNiw2ICs0OTMxLDQ0IEBAIENyeXB0 b1NlcnZpY2VUbHNHZXRDZXJ0UmV2b2NhdGlvbkxpc3QgKA0KPiAgICByZXR1cm4gQ0FMTF9CQVNF Q1JZUFRMSUIgKFRsc0dldC5TZXJ2aWNlcy5DZXJ0UmV2b2NhdGlvbkxpc3QsIA0KPiBUbHNHZXRD ZXJ0UmV2b2NhdGlvbkxpc3QsIChEYXRhLCBEYXRhU2l6ZSksIEVGSV9VTlNVUFBPUlRFRCk7ICB9 DQo+IA0KPiArLyoqDQo+ICsgIERlcml2ZSBrZXlpbmcgbWF0ZXJpYWwgZnJvbSBhIFRMUyBjb25u ZWN0aW9uLg0KPiArDQo+ICsgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBrZXlpbmcgbWF0ZXJpYWwg dXNpbmcgdGhlIG1lY2hhbmlzbSBkZXNjcmliZWQgDQo+ICsgaW4gUkZDICA1NzA1Lg0KPiArDQo+ ICsgIEBwYXJhbVtpbl0gICAgICBUbHMgICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVj dA0KPiArICBAcGFyYW1baW5dICAgICAgTGFiZWwgICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBr ZXkgZm9yIHRoZSBQUkYgZnVuY3Rpb24NCj4gKyAgQHBhcmFtW2luXSAgICAgIENvbnRleHQgICAg ICBPcHRpb25hbCBjb250ZXh0DQo+ICsgIEBwYXJhbVtpbl0gICAgICBDb250ZXh0TGVuICAgVGhl IGxlbmd0aCBvZiB0aGUgY29udGV4dCB2YWx1ZSBpbiBieXRlcw0KPiArICBAcGFyYW1bb3V0XSAg ICAgS2V5QnVmZmVyICAgIEJ1ZmZlciB0byBob2xkIHRoZSBvdXRwdXQgb2YgdGhlIFRMUy1QUkYN Cj4gKyAgQHBhcmFtW2luXSAgICAgIEtleUJ1ZmZlckxlbiBUaGUgbGVuZ3RoIG9mIHRoZSBLZXlC dWZmZXINCj4gKw0KPiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgICBUaGUgb3Bl cmF0aW9uIHN1Y2NlZWRlZC4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAg VGhlIFRMUyBvYmplY3QgaXMgaW52YWxpZC4NCj4gKyAgQHJldHZhbCAgRUZJX1BST1RPQ09MX0VS Uk9SICAgICAgU29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4NCj4gKw0KPiArKiovDQo+ICtFRklf U1RBVFVTDQo+ICtFRklBUEkNCj4gK0NyeXB0b1NlcnZpY2VUbHNHZXRFeHBvcnRLZXkgKA0KPiAr ICBJTiAgICAgVk9JRCAgICAgICAgKlRscywNCj4gKyAgSU4gICAgIENPTlNUIFZPSUQgICpMYWJl bCwNCj4gKyAgSU4gICAgIENPTlNUIFZPSUQgICpDb250ZXh0LA0KPiArICBJTiAgICAgVUlOVE4g ICAgICAgQ29udGV4dExlbiwNCj4gKyAgT1VUICAgIFZPSUQgICAgICAgICpLZXlCdWZmZXIsDQo+ ICsgIElOICAgICBVSU5UTiAgICAgICBLZXlCdWZmZXJMZW4NCj4gKyAgKQ0KPiArew0KPiArICBy ZXR1cm4gQ0FMTF9CQVNFQ1JZUFRMSUIgKA0KPiArICAgICAgICAgICBUbHNHZXQuU2VydmljZXMu RXhwb3J0S2V5LA0KPiArICAgICAgICAgICBUbHNHZXRFeHBvcnRLZXksDQo+ICsgICAgICAgICAg IChUbHMsIExhYmVsLCBDb250ZXh0LCBDb250ZXh0TGVuLA0KPiArICAgICAgICAgICAgS2V5QnVm ZmVyLCBLZXlCdWZmZXJMZW4pLA0KPiArICAgICAgICAgICBFRklfVU5TVVBQT1JURUQNCj4gKyAg ICAgICAgICAgKTsNCj4gK30NCj4gKw0KPiAgLyoqDQo+ICAgIENhcnJpZXMgb3V0IHRoZSBSU0Et U1NBIHNpZ25hdHVyZSBnZW5lcmF0aW9uIHdpdGggRU1TQS1QU1MgZW5jb2Rpbmcgc2NoZW1lLg0K PiANCj4gQEAgLTYyNjYsNCArNjQwOSwxMiBAQCBjb25zdCBFREtJSV9DUllQVE9fUFJPVE9DT0wg IG1FZGtpaUNyeXB0byA9IHsNCj4gICAgQ3J5cHRvU2VydmljZUVjR2VuZXJhdGVLZXksDQo+ICAg IENyeXB0b1NlcnZpY2VFY0dldFB1YktleSwNCj4gICAgQ3J5cHRvU2VydmljZUVjRGhDb21wdXRl S2V5LA0KPiArICAvLy8gVExTIChjb250aW51ZWQpDQo+ICsgIENyeXB0b1NlcnZpY2VUbHNTaHV0 ZG93biwNCj4gKyAgLy8vIFRMUyBTZXQgKGNvbnRpbnVlZCkNCj4gKyAgQ3J5cHRvU2VydmljZVRs c1NldEhvc3RQcml2YXRlS2V5RXgsDQo+ICsgIENyeXB0b1NlcnZpY2VUbHNTZXRTaWduYXR1cmVB bGdvTGlzdCwNCj4gKyAgQ3J5cHRvU2VydmljZVRsc1NldEVjQ3VydmUsDQo+ICsgIC8vLyBUTFMg R2V0IChjb250aW51ZWQpDQo+ICsgIENyeXB0b1NlcnZpY2VUbHNHZXRFeHBvcnRLZXkNCj4gIH07 DQo+IGRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvSW5jbHVkZS9QY2QvUGNkQ3J5cHRvU2VydmljZUZh bWlseUVuYWJsZS5oIA0KPiBiL0NyeXB0b1BrZy9JbmNsdWRlL1BjZC9QY2RDcnlwdG9TZXJ2aWNl RmFtaWx5RW5hYmxlLmgNCj4gaW5kZXggNDViYWZjMjE2MS4uNzBjYWEyMTIyYiAxMDA2NDQNCj4g LS0tIGEvQ3J5cHRvUGtnL0luY2x1ZGUvUGNkL1BjZENyeXB0b1NlcnZpY2VGYW1pbHlFbmFibGUu aA0KPiArKysgYi9DcnlwdG9Qa2cvSW5jbHVkZS9QY2QvUGNkQ3J5cHRvU2VydmljZUZhbWlseUVu YWJsZS5oDQo+IEBAIC0yNjksNiArMjY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICAgICAg VUlOVDggICAgQ3RybFRyYWZmaWNJbiAgOiAxOw0KPiAgICAgICAgVUlOVDggICAgUmVhZCAgICAg ICAgICAgOiAxOw0KPiAgICAgICAgVUlOVDggICAgV3JpdGUgICAgICAgICAgOiAxOw0KPiArICAg ICAgVUlOVDggICAgU2h1dGRvd24gICAgICAgOiAxOw0KPiAgICAgIH0gU2VydmljZXM7DQo+ICAg ICAgVUlOVDMyICAgIEZhbWlseTsNCj4gICAgfSBUbHM7DQo+IEBAIC0yODMsOCArMjg0LDExIEBA IHR5cGVkZWYgc3RydWN0IHsNCj4gICAgICAgIFVJTlQ4ICAgIFNlc3Npb25JZCAgICAgICAgICA6 IDE7DQo+ICAgICAgICBVSU5UOCAgICBDYUNlcnRpZmljYXRlICAgICAgOiAxOw0KPiAgICAgICAg VUlOVDggICAgSG9zdFB1YmxpY0NlcnQgICAgIDogMTsNCj4gKyAgICAgIFVJTlQ4ICAgIEhvc3RQ cml2YXRlS2V5RXggICA6IDE7DQoNCg0KTmV3IGJpdHMgbXVzdCBiZSBhZGRlZCB0byB0aGUgZW5k IG9mIHRoZSBTZXJ2aWNlcyBzdHJ1Y3QuICBNb3ZlIGFmdGVyIEVjQ3VydmUuDQoNCj4gICAgICAg IFVJTlQ4ICAgIEhvc3RQcml2YXRlS2V5ICAgICA6IDE7DQo+ICAgICAgICBVSU5UOCAgICBDZXJ0 UmV2b2NhdGlvbkxpc3QgOiAxOw0KPiArICAgICAgVUlOVDggICAgU2lnbmF0dXJlQWxnb0xpc3Qg IDogMTsNCj4gKyAgICAgIFVJTlQ4ICAgIEVjQ3VydmUgICAgICAgICAgICA6IDE7DQo+ICAgICAg fSBTZXJ2aWNlczsNCj4gICAgICBVSU5UMzIgICAgRmFtaWx5Ow0KPiAgICB9IFRsc1NldDsNCj4g QEAgLTMwMyw2ICszMDcsNyBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ICAgICAgICBVSU5UOCAgICBI b3N0UHVibGljQ2VydCAgICAgICA6IDE7DQo+ICAgICAgICBVSU5UOCAgICBIb3N0UHJpdmF0ZUtl eSAgICAgICA6IDE7DQo+ICAgICAgICBVSU5UOCAgICBDZXJ0UmV2b2NhdGlvbkxpc3QgICA6IDE7 DQo+ICsgICAgICBVSU5UOCAgICBFeHBvcnRLZXkgICAgICAgICAgICA6IDE7DQo+ICAgICAgfSBT ZXJ2aWNlczsNCj4gICAgICBVSU5UMzIgICAgRmFtaWx5Ow0KPiAgICB9IFRsc0dldDsNCj4gZGlm ZiAtLWdpdCBhL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk9uUHJvdG9jb2xQcGkvQ3J5 cHRMaWIuYyANCj4gYi9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWJPblByb3RvY29sUHBp L0NyeXB0TGliLmMNCj4gaW5kZXggNzkxZTJlZjU5OS4uNTJiOTM0YTU0NSAxMDA2NDQNCj4gLS0t IGEvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliT25Qcm90b2NvbFBwaS9DcnlwdExpYi5j DQo+ICsrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VDcnlwdExpYk9uUHJvdG9jb2xQcGkvQ3J5 cHRMaWIuYw0KPiBAQCAtMzQ3NCw2ICszNDc0LDI4IEBAIFRsc1dyaXRlICgNCj4gICAgQ0FMTF9D UllQVE9fU0VSVklDRSAoVGxzV3JpdGUsIChUbHMsIEJ1ZmZlciwgQnVmZmVyU2l6ZSksIDApOyAg fQ0KPiANCj4gKy8qKg0KPiArICBTaHV0ZG93biBhIFRMUyBjb25uZWN0aW9uLg0KPiArDQo+ICsg IFNodXRkb3duIHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVhc2luZyB0aGUgcmVzb3Vy Y2VzLCANCj4gKyBtZWFuaW5nIGEgbmV3ICBjb25uZWN0aW9uIGNhbiBiZSBzdGFydGVkIHdpdGhv dXQgY2FsbGluZyBUbHNOZXcoKSANCj4gKyBhbmQgd2l0aG91dCBzZXR0aW5nICBjZXJ0aWZpY2F0 ZXMgZXRjLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gICAgICAgVGxzICAgICAgICAgICAgUG9pbnRl ciB0byB0aGUgVExTIG9iamVjdCB0byBzaHV0ZG93bi4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICAgICAgICAgIFRoZSBUTFMgaXMgc2h1dGRvd24gc3VjY2Vzc2Z1bGx5Lg0KPiAr ICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFRscyBpcyBOVUxMLg0KPiArICBAcmV0 dmFsIEVGSV9QUk9UT0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQo+ ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArVGxzU2h1dGRvd24gKA0KPiArICBJ TiAgICAgVk9JRCAgKlRscw0KPiArICApDQo+ICt7DQo+ICsgIENBTExfQ1JZUFRPX1NFUlZJQ0Ug KFRsc1NodXRkb3duLCAoVGxzKSwgRUZJX1VOU1VQUE9SVEVEKTsgfQ0KPiArDQo+ICAvKioNCj4g ICAgU2V0IGEgbmV3IFRMUy9TU0wgbWV0aG9kIGZvciBhIHBhcnRpY3VsYXIgVExTIG9iamVjdC4N Cj4gDQo+IEBAIC0zNjk5LDExICszNzIxLDQxIEBAIFRsc1NldEhvc3RQdWJsaWNDZXJ0ICgNCj4g IC8qKg0KPiAgICBBZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSB0byB0aGUgc3BlY2lmaWVkIFRM UyBvYmplY3QuDQo+IA0KPiAtICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHByaXZhdGUg a2V5IChQRU0tZW5jb2RlZCBSU0Egb3IgUEtDUyM4IA0KPiBwcml2YXRlDQo+ICsgIFRoaXMgZnVu Y3Rpb24gYWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgKERFUi1lbmNvZGVkIG9yIA0KPiArIFBF TS1lbmNvZGVkIG9yIFBLQ1MjOCBwcml2YXRlDQo+ICAgIGtleSkgaW50byB0aGUgc3BlY2lmaWVk IFRMUyBvYmplY3QgZm9yIFRMUyBuZWdvdGlhdGlvbi4NCj4gDQo+ICAgIEBwYXJhbVtpbl0gIFRs cyAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFRMUyBvYmplY3QuDQo+IC0gIEBwYXJhbVtpbl0gIERh dGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgUEVNLWVuY29kZWQgUlNB DQo+ICsgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIgdG8gdGhlIGRhdGEgYnVmZmVy IG9mIGEgREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgb3IgUEtDUyM4IHByaXZhdGUga2V5Lg0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAg ICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCj4gKyAgQHBhcmFtW2luXSAgUGFz c3dvcmQgICAgUG9pbnRlciB0byBOVUxMLXRlcm1pbmF0ZWQgcHJpdmF0ZSBrZXkgcGFzc3dvcmQs IHNldCBpdCB0byBOVUxMDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHByaXZhdGUg a2V5IG5vdCBlbmNyeXB0ZWQuDQo+ICsNCj4gKyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgIFRo ZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0KPiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgVGhp cyBmdW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkLg0KPiArICBAcmV0dmFsICBFRklfQUJPUlRFRCAg ICAgSW52YWxpZCBwcml2YXRlIGtleSBkYXRhLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMN Cj4gK0VGSUFQSQ0KPiArVGxzU2V0SG9zdFByaXZhdGVLZXlFeCAoDQo+ICsgIElOICAgICBWT0lE ICAgKlRscywNCj4gKyAgSU4gICAgIFZPSUQgICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlROICBE YXRhU2l6ZSwNCj4gKyAgSU4gICAgIFZPSUQgICAqUGFzc3dvcmQgIE9QVElPTkFMDQo+ICsgICkN Cj4gK3sNCj4gKyAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxzU2V0SG9zdFByaXZhdGVLZXlFeCwg KFRscywgRGF0YSwgRGF0YVNpemUsIA0KPiArUGFzc3dvcmQpLCBFRklfVU5TVVBQT1JURUQpOyB9 DQo+ICsNCj4gKy8qKg0KPiArICBBZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSB0byB0aGUgc3Bl Y2lmaWVkIFRMUyBvYmplY3QuDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2Nh bCBwcml2YXRlIGtleSAoREVSLWVuY29kZWQgb3IgDQo+ICsgUEVNLWVuY29kZWQgb3IgUEtDUyM4 IHByaXZhdGUNCj4gKyAga2V5KSBpbnRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdCBmb3IgVExT IG5lZ290aWF0aW9uLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgIFBvaW50ZXIg dG8gdGhlIFRMUyBvYmplY3QuDQo+ICsgIEBwYXJhbVtpbl0gIERhdGEgICAgICAgIFBvaW50ZXIg dG8gdGhlIGRhdGEgYnVmZmVyIG9mIGEgREVSLWVuY29kZWQgb3IgUEVNLWVuY29kZWQNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3IgUEtDUyM4IHByaXZhdGUga2V5Lg0KPiAgICBAcGFy YW1baW5dICBEYXRhU2l6ZSAgICBUaGUgc2l6ZSBvZiBkYXRhIGJ1ZmZlciBpbiBieXRlcy4NCj4g DQo+IEBAIC0zNzQ3LDYgKzM3OTksNTkgQEAgVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0ICgNCj4g ICAgQ0FMTF9DUllQVE9fU0VSVklDRSAoVGxzU2V0Q2VydFJldm9jYXRpb25MaXN0LCAoRGF0YSwg RGF0YVNpemUpLCANCj4gRUZJX1VOU1VQUE9SVEVEKTsgIH0NCj4gDQo+ICsvKioNCj4gKyAgU2V0 IHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtIGxpc3QgdG8gdXNlZCBieSB0aGUgVExTIG9iamVjdC4N Cj4gKw0KPiArICBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIHNpZ25hdHVyZSBhbGdvcml0aG1zIGZv ciB1c2UgYnkgYSBzcGVjaWZpZWQgVExTIG9iamVjdC4NCj4gKw0KPiArICBAcGFyYW1baW5dICBU bHMgICAgICAgICAgICAgICAgUG9pbnRlciB0byBhIFRMUyBvYmplY3QuDQo+ICsgIEBwYXJhbVtp bl0gIERhdGEgICAgICAgICAgICAgICBBcnJheSBvZiBVSU5UOCBvZiBzaWduYXR1cmUgYWxnb3Jp dGhtcy4gVGhlIGFycmF5IGNvbnNpc3RzIG9mDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYWlycyBvZiB0aGUgaGFzaCBhbGdvcml0aG0gYW5kIHRoZSBzaWduYXR1cmUgYWxn b3JpdGhtIGFzIGRlZmluZWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu IFJGQyA1MjQ2DQo+ICsgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgICAgICAgICBUaGUgbGVuZ3Ro IHRoZSBTaWduYXR1cmVBbGdvTGlzdC4gTXVzdCBiZSBkaXZpc2libGUgYnkgMi4NCj4gKw0KPiAr ICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIHNpZ25hdHVyZSBhbGdvcml0aG0g bGlzdCB3YXMgc2V0IHN1Y2Nlc3NmdWxseS4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFS QU1FVEVSIFRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLg0KPiArICBAcmV0dmFsICBFRklfVU5T VVBQT1JURUQgICAgICAgTm8gc3VwcG9ydGVkIFRMUyBzaWduYXR1cmUgYWxnb3JpdGhtIHdhcyBm b3VuZCBpbiBTaWduYXR1cmVBbGdvTGlzdA0KPiArICBAcmV0dmFsICBFRklfT1VUX09GX1JFU09V UkNFUyAgTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFU VVMNCj4gK0VGSUFQSQ0KPiArVGxzU2V0U2lnbmF0dXJlQWxnb0xpc3QgKA0KPiArICBJTiAgICAg Vk9JRCAgICpUbHMsDQo+ICsgIElOICAgICBVSU5UOCAgKkRhdGEsDQo+ICsgIElOICAgICBVSU5U TiAgRGF0YVNpemUNCj4gKyAgKQ0KPiArew0KPiArICBDQUxMX0NSWVBUT19TRVJWSUNFIChUbHNT ZXRTaWduYXR1cmVBbGdvTGlzdCwgKFRscywgRGF0YSwgDQo+ICtEYXRhU2l6ZSksIEVGSV9VTlNV UFBPUlRFRCk7IH0NCj4gKw0KPiArLyoqDQo+ICsgIFNldCB0aGUgRUMgY3VydmUgdG8gYmUgdXNl ZCBmb3IgVExTIGZsb3dzDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBFQyBjdXJ2 ZSB0byBiZSB1c2VkIGZvciBUTFMgZmxvd3MuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgVGxzICAg ICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KPiArICBAcGFyYW1baW5dICBE YXRhICAgICAgICAgICAgICAgQW4gRUMgbmFtZWQgY3VydmUgYXMgZGVmaW5lZCBpbiBzZWN0aW9u IDUuMS4xIG9mIFJGQyA0NDkyLg0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAgICAg U2l6ZSBvZiBEYXRhLCBpdCBzaG91bGQgYmUgc2l6ZW9mIChVSU5UMzIpDQo+ICsNCj4gKyAgQHJl dHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBFQyBjdXJ2ZSB3YXMgc2V0IHN1Y2Nlc3Nm dWxseS4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIFRoZSBwYXJhbWV0ZXJz IGFyZSBpbnZhbGlkLg0KPiArICBAcmV0dmFsICBFRklfVU5TVVBQT1JURUQgICAgICAgVGhlIHJl cXVlc3RlZCBUTFMgRUMgY3VydmUgaXMgbm90IHN1cHBvcnRlZA0KPiArDQo+ICsqKi8NCj4gK0VG SV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArVGxzU2V0RWNDdXJ2ZSAoDQo+ICsgIElOICAgICBWT0lE ICAgKlRscywNCj4gKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlROICBE YXRhU2l6ZQ0KPiArICApDQo+ICt7DQo+ICsgIENBTExfQ1JZUFRPX1NFUlZJQ0UgKFRsc1NldFNp Z25hdHVyZUFsZ29MaXN0LCAoVGxzLCBEYXRhLCANCj4gK0RhdGFTaXplKSwgRUZJX1VOU1VQUE9S VEVEKTsgfQ0KPiArDQo+ICAvKioNCj4gICAgR2V0cyB0aGUgcHJvdG9jb2wgdmVyc2lvbiB1c2Vk IGJ5IHRoZSBzcGVjaWZpZWQgVExTIGNvbm5lY3Rpb24uDQo+IA0KPiBAQCAtNDA2Miw2ICs0MTY3 LDQzIEBAIFRsc0dldENlcnRSZXZvY2F0aW9uTGlzdCAoDQo+ICAgIENBTExfQ1JZUFRPX1NFUlZJ Q0UgKFRsc0dldENlcnRSZXZvY2F0aW9uTGlzdCwgKERhdGEsIERhdGFTaXplKSwgDQo+IEVGSV9V TlNVUFBPUlRFRCk7ICB9DQo+IA0KPiArLyoqDQo+ICsgIERlcml2ZSBrZXlpbmcgbWF0ZXJpYWwg ZnJvbSBhIFRMUyBjb25uZWN0aW9uLg0KPiArDQo+ICsgIFRoaXMgZnVuY3Rpb24gZXhwb3J0cyBr ZXlpbmcgbWF0ZXJpYWwgdXNpbmcgdGhlIG1lY2hhbmlzbSBkZXNjcmliZWQgDQo+ICsgaW4gUkZD ICA1NzA1Lg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gICAgICBUbHMgICAgICAgICAgUG9pbnRlciB0 byB0aGUgVExTIG9iamVjdA0KPiArICBAcGFyYW1baW5dICAgICAgTGFiZWwgICAgICAgIERlc2Ny aXB0aW9uIG9mIHRoZSBrZXkgZm9yIHRoZSBQUkYgZnVuY3Rpb24NCj4gKyAgQHBhcmFtW2luXSAg ICAgIENvbnRleHQgICAgICBPcHRpb25hbCBjb250ZXh0DQo+ICsgIEBwYXJhbVtpbl0gICAgICBD b250ZXh0TGVuICAgVGhlIGxlbmd0aCBvZiB0aGUgY29udGV4dCB2YWx1ZSBpbiBieXRlcw0KPiAr ICBAcGFyYW1bb3V0XSAgICAgS2V5QnVmZmVyICAgIEJ1ZmZlciB0byBob2xkIHRoZSBvdXRwdXQg b2YgdGhlIFRMUy1QUkYNCj4gKyAgQHBhcmFtW2luXSAgICAgIEtleUJ1ZmZlckxlbiBUaGUgbGVu Z3RoIG9mIHRoZSBLZXlCdWZmZXINCj4gKw0KPiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAg ICAgICAgICBUaGUgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCj4gKyAgQHJldHZhbCAgRUZJX0lOVkFM SURfUEFSQU1FVEVSICAgVGhlIFRMUyBvYmplY3QgaXMgaW52YWxpZC4NCj4gKyAgQHJldHZhbCAg RUZJX1BST1RPQ09MX0VSUk9SICAgICAgU29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4NCj4gKw0K PiArKiovDQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK1Rsc0dldEV4cG9ydEtleSAoDQo+ ICsgIElOICAgICBWT0lEICAgICAgICAqVGxzLA0KPiArICBJTiAgICAgQ09OU1QgVk9JRCAgKkxh YmVsLA0KPiArICBJTiAgICAgQ09OU1QgVk9JRCAgKkNvbnRleHQsDQo+ICsgIElOICAgICBVSU5U TiAgICAgICBDb250ZXh0TGVuLA0KPiArICBPVVQgICAgVk9JRCAgICAgICAgKktleUJ1ZmZlciwN Cj4gKyAgSU4gICAgIFVJTlROICAgICAgIEtleUJ1ZmZlckxlbg0KPiArICApDQo+ICt7DQo+ICsg IENBTExfQ1JZUFRPX1NFUlZJQ0UgKA0KPiArICAgIFRsc0dldEV4cG9ydEtleSwNCj4gKyAgICAo VGxzLCBMYWJlbCwgQ29udGV4dCwgQ29udGV4dExlbiwNCj4gKyAgICAgS2V5QnVmZmVyLCBLZXlC dWZmZXJMZW4pLA0KPiArICAgIEVGSV9VTlNVUFBPUlRFRA0KPiArICAgICk7DQo+ICt9DQo+ICsN Cj4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gIC8vICAgIEJpZyBudW1iZXIg cHJpbWl0aXZlDQo+ICAvLyANCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT0gZGlm ZiAtLWdpdCBhL0NyeXB0b1BrZy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5oIA0KPiBiL0NyeXB0 b1BrZy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5oDQo+IGluZGV4IDJmMjY3YzdmNTUuLjYyOTNl ZmEzNmIgMTAwNjQ0DQo+IC0tLSBhL0NyeXB0b1BrZy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5o DQo+ICsrKyBiL0NyeXB0b1BrZy9Qcml2YXRlL1Byb3RvY29sL0NyeXB0by5oDQo+IEBAIC0yMSw3 ICsyMSw3IEBADQo+ICAvLy8gdGhlIEVESyBJSSBDcnlwdG8gUHJvdG9jb2wgaXMgZXh0ZW5kZWQs IHRoaXMgdmVyc2lvbiBkZWZpbmUgbXVzdCANCj4gYmUgIC8vLyBpbmNyZWFzZWQuDQo+ICAvLy8N Cj4gLSNkZWZpbmUgRURLSUlfQ1JZUFRPX1ZFUlNJT04gIDEzDQo+ICsjZGVmaW5lIEVES0lJX0NS WVBUT19WRVJTSU9OICAxNA0KPiANCj4gIC8vLw0KPiAgLy8vIEVESyBJSSBDcnlwdG8gUHJvdG9j b2wgZm9yd2FyZCBkZWNsYXJhdGlvbiBAQCAtMzE4Niw2ICszMTg2LDI1IEBAIA0KPiBJTlRODQo+ ICAgIElOICAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgQnVmZmVyU2l6ZQ0KPiAgICApOw0K PiANCj4gKy8qKg0KPiArICBTaHV0ZG93biBhIFRMUyBjb25uZWN0aW9uLg0KPiArDQo+ICsgIFNo dXRkb3duIHRoZSBUTFMgY29ubmVjdGlvbiB3aXRob3V0IHJlbGVhc2luZyB0aGUgcmVzb3VyY2Vz LCANCj4gKyBtZWFuaW5nIGEgbmV3ICBjb25uZWN0aW9uIGNhbiBiZSBzdGFydGVkIHdpdGhvdXQg Y2FsbGluZyBUbHNOZXcoKSANCj4gKyBhbmQgd2l0aG91dCBzZXR0aW5nICBjZXJ0aWZpY2F0ZXMg ZXRjLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gICAgICAgVGxzICAgICAgICAgICAgUG9pbnRlciB0 byB0aGUgVExTIG9iamVjdCB0byBzaHV0ZG93bi4NCj4gKw0KPiArICBAcmV0dmFsIEVGSV9TVUND RVNTICAgICAgICAgICAgIFRoZSBUTFMgaXMgc2h1dGRvd24gc3VjY2Vzc2Z1bGx5Lg0KPiArICBA cmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgIFRscyBpcyBOVUxMLg0KPiArICBAcmV0dmFs IEVGSV9QUk9UT0NPTF9FUlJPUiAgICAgIFNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuDQo+ICsq Ki8NCj4gK3R5cGVkZWYNCj4gK0VGSV9TVEFUVVMNCj4gKyhFRklBUEkgKkVES0lJX0NSWVBUT19U TFNfU0hVVERPV04pKA0KPiArICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICpUbHMN Cj4gKyAgKTsNCj4gKw0KPiAgLyoqDQo+ICAgIFNldCBhIG5ldyBUTFMvU1NMIG1ldGhvZCBmb3Ig YSBwYXJ0aWN1bGFyIFRMUyBvYmplY3QuDQo+IA0KPiBAQCAtMzM4NCwxMSArMzQwMywzOCBAQCBF RklfU1RBVFVTDQo+ICAvKioNCj4gICAgQWRkcyB0aGUgbG9jYWwgcHJpdmF0ZSBrZXkgdG8gdGhl IHNwZWNpZmllZCBUTFMgb2JqZWN0Lg0KPiANCj4gLSAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBs b2NhbCBwcml2YXRlIGtleSAoUEVNLWVuY29kZWQgUlNBIG9yIFBLQ1MjOCANCj4gcHJpdmF0ZQ0K PiArICBUaGlzIGZ1bmN0aW9uIGFkZHMgdGhlIGxvY2FsIHByaXZhdGUga2V5IChERVItZW5jb2Rl ZCBvciANCj4gKyBQRU0tZW5jb2RlZCBvciBQS0NTIzggcHJpdmF0ZQ0KPiArICBrZXkpIGludG8g dGhlIHNwZWNpZmllZCBUTFMgb2JqZWN0IGZvciBUTFMgbmVnb3RpYXRpb24uDQo+ICsNCj4gKyAg QHBhcmFtW2luXSAgVGxzICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdC4NCj4gKyAg QHBhcmFtW2luXSAgRGF0YSAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2YgYSBE RVItZW5jb2RlZCBvciBQRU0tZW5jb2RlZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBv ciBQS0NTIzggcHJpdmF0ZSBrZXkuDQo+ICsgIEBwYXJhbVtpbl0gIERhdGFTaXplICAgIFRoZSBz aXplIG9mIGRhdGEgYnVmZmVyIGluIGJ5dGVzLg0KPiArICBAcGFyYW1baW5dICBQYXNzd29yZCAg ICBQb2ludGVyIHRvIE5VTEwtdGVybWluYXRlZCBwcml2YXRlIGtleSBwYXNzd29yZCwgc2V0IGl0 IHRvIE5VTEwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHJpdmF0ZSBrZXkgbm90 IGVuY3J5cHRlZC4NCj4gKw0KPiArICBAcmV0dmFsICBFRklfU1VDQ0VTUyAgICAgVGhlIG9wZXJh dGlvbiBzdWNjZWVkZWQuDQo+ICsgIEByZXR2YWwgIEVGSV9VTlNVUFBPUlRFRCBUaGlzIGZ1bmN0 aW9uIGlzIG5vdCBzdXBwb3J0ZWQuDQo+ICsgIEByZXR2YWwgIEVGSV9BQk9SVEVEICAgICBJbnZh bGlkIHByaXZhdGUga2V5IGRhdGEuDQo+ICsNCj4gKyoqLw0KPiArdHlwZWRlZg0KPiArRUZJX1NU QVRVUw0KPiArKEVGSUFQSSAqRURLSUlfQ1JZUFRPX1RMU19TRVRfSE9TVF9QUklWQVRFX0tFWV9F WCkoDQo+ICsgIElOICAgICBWT0lEICAgICAgICAgICAgICAgICAgICAgKlRscywNCj4gKyAgSU4g ICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJTlROICAg ICAgICAgICAgICAgICAgICBEYXRhU2l6ZSwNCj4gKyAgSU4gICAgIFZPSUQgICAgICAgICAgICAg ICAgICAgICAqUGFzc3dvcmQgIE9QVElPTkFMDQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArICBB ZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSB0byB0aGUgc3BlY2lmaWVkIFRMUyBvYmplY3QuDQo+ ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBsb2NhbCBwcml2YXRlIGtleSAoREVSLWVu Y29kZWQgb3IgDQo+ICsgUEVNLWVuY29kZWQgb3IgUEtDUyM4IHByaXZhdGUNCj4gICAga2V5KSBp bnRvIHRoZSBzcGVjaWZpZWQgVExTIG9iamVjdCBmb3IgVExTIG5lZ290aWF0aW9uLg0KPiANCj4g ICAgQHBhcmFtW2luXSAgVGxzICAgICAgICAgUG9pbnRlciB0byB0aGUgVExTIG9iamVjdC4NCj4g LSAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgUG9pbnRlciB0byB0aGUgZGF0YSBidWZmZXIgb2Yg YSBQRU0tZW5jb2RlZCBSU0ENCj4gKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgUG9pbnRlciB0 byB0aGUgZGF0YSBidWZmZXIgb2YgYSBERVItZW5jb2RlZCBvciBQRU0tZW5jb2RlZA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvciBQS0NTIzggcHJpdmF0ZSBrZXkuDQo+ICAgIEBwYXJh bVtpbl0gIERhdGFTaXplICAgIFRoZSBzaXplIG9mIGRhdGEgYnVmZmVyIGluIGJ5dGVzLg0KPiAN Cj4gQEAgLTM2ODAsNiArMzcyNiw4MiBAQCBFRklfU1RBVFVTDQo+ICAgIElOIE9VVCBVSU5UTiAg ICAgICAgICAgICAgICAgICAgKkRhdGFTaXplDQo+ICAgICk7DQo+IA0KPiArLyoqDQo+ICsgIFNl dCB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobSBsaXN0IHRvIHVzZWQgYnkgdGhlIFRMUyBvYmplY3Qu DQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtcyBm b3IgdXNlIGJ5IGEgc3BlY2lmaWVkIFRMUyBvYmplY3QuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAg VGxzICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBUTFMgb2JqZWN0Lg0KPiArICBAcGFyYW1b aW5dICBEYXRhICAgICAgICAgICAgICAgQXJyYXkgb2YgVUlOVDggb2Ygc2lnbmF0dXJlIGFsZ29y aXRobXMuIFRoZSBhcnJheSBjb25zaXN0cyBvZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFpcnMgb2YgdGhlIGhhc2ggYWxnb3JpdGhtIGFuZCB0aGUgc2lnbmF0dXJlIGFs Z29yaXRobSBhcyBkZWZpbmVkDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp biBSRkMgNTI0Ng0KPiArICBAcGFyYW1baW5dICBEYXRhU2l6ZSAgICAgICAgICAgVGhlIGxlbmd0 aCB0aGUgU2lnbmF0dXJlQWxnb0xpc3QuIE11c3QgYmUgZGl2aXNpYmxlIGJ5IDIuDQo+ICsNCj4g KyAgQHJldHZhbCAgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBzaWduYXR1cmUgYWxnb3JpdGht IGxpc3Qgd2FzIHNldCBzdWNjZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwgIEVGSV9JTlZBTElEX1BB UkFNRVRFUiBUaGUgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4NCj4gKyAgQHJldHZhbCAgRUZJX1VO U1VQUE9SVEVEICAgICAgIE5vIHN1cHBvcnRlZCBUTFMgc2lnbmF0dXJlIGFsZ29yaXRobSB3YXMg Zm91bmQgaW4gU2lnbmF0dXJlQWxnb0xpc3QNCj4gKyAgQHJldHZhbCAgRUZJX09VVF9PRl9SRVNP VVJDRVMgIE1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4NCj4gKw0KPiArKiovDQo+ICt0eXBlZGVm DQo+ICtFRklfU1RBVFVTDQo+ICsoRUZJQVBJICpFREtJSV9DUllQVE9fVExTX1NFVF9TSUdOQVRV UkVfQUxHT19MSVNUKSgNCj4gKyAgSU4gICAgIFZPSUQgICAqVGxzLA0KPiArICBJTiAgICAgVUlO VDggICpEYXRhLA0KPiArICBJTiAgICAgVUlOVE4gIERhdGFTaXplDQo+ICsgICk7DQo+ICsNCj4g Ky8qKg0KPiArICBTZXQgdGhlIEVDIGN1cnZlIHRvIGJlIHVzZWQgZm9yIFRMUyBmbG93cw0KPiAr DQo+ICsgIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgRUMgY3VydmUgdG8gYmUgdXNlZCBmb3IgVExT IGZsb3dzLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gIFRscyAgICAgICAgICAgICAgICBQb2ludGVy IHRvIGEgVExTIG9iamVjdC4NCj4gKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgICAgICAgIEFu IEVDIG5hbWVkIGN1cnZlIGFzIGRlZmluZWQgaW4gc2VjdGlvbiA1LjEuMSBvZiBSRkMgNDQ5Mi4N Cj4gKyAgQHBhcmFtW2luXSAgRGF0YVNpemUgICAgICAgICAgIFNpemUgb2YgRGF0YSwgaXQgc2hv dWxkIGJlIHNpemVvZiAoVUlOVDMyKQ0KPiArDQo+ICsgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAg ICAgICAgICBUaGUgRUMgY3VydmUgd2FzIHNldCBzdWNjZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwg IEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4NCj4gKyAg QHJldHZhbCAgRUZJX1VOU1VQUE9SVEVEICAgICAgIFRoZSByZXF1ZXN0ZWQgVExTIEVDIGN1cnZl IGlzIG5vdCBzdXBwb3J0ZWQNCj4gKw0KPiArKiovDQo+ICt0eXBlZGVmDQo+ICtFRklfU1RBVFVT DQo+ICsoRUZJQVBJICpFREtJSV9DUllQVE9fVExTX1NFVF9FQ19DVVJWRSkoDQo+ICsgIElOICAg ICBWT0lEICAgKlRscywNCj4gKyAgSU4gICAgIFVJTlQ4ICAqRGF0YSwNCj4gKyAgSU4gICAgIFVJ TlROICBEYXRhU2l6ZQ0KPiArICApOw0KPiArDQo+ICsvKioNCj4gKyAgRGVyaXZlIGtleWluZyBt YXRlcmlhbCBmcm9tIGEgVExTIGNvbm5lY3Rpb24uDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiBl eHBvcnRzIGtleWluZyBtYXRlcmlhbCB1c2luZyB0aGUgbWVjaGFuaXNtIGRlc2NyaWJlZCANCj4g KyBpbiBSRkMgIDU3MDUuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgICAgIFRscyAgICAgICAgICBQ b2ludGVyIHRvIHRoZSBUTFMgb2JqZWN0DQo+ICsgIEBwYXJhbVtpbl0gICAgICBMYWJlbCAgICAg ICAgRGVzY3JpcHRpb24gb2YgdGhlIGtleSBmb3IgdGhlIFBSRiBmdW5jdGlvbg0KPiArICBAcGFy YW1baW5dICAgICAgQ29udGV4dCAgICAgIE9wdGlvbmFsIGNvbnRleHQNCj4gKyAgQHBhcmFtW2lu XSAgICAgIENvbnRleHRMZW4gICBUaGUgbGVuZ3RoIG9mIHRoZSBjb250ZXh0IHZhbHVlIGluIGJ5 dGVzDQo+ICsgIEBwYXJhbVtvdXRdICAgICBLZXlCdWZmZXIgICAgQnVmZmVyIHRvIGhvbGQgdGhl IG91dHB1dCBvZiB0aGUgVExTLVBSRg0KPiArICBAcGFyYW1baW5dICAgICAgS2V5QnVmZmVyTGVu IFRoZSBsZW5ndGggb2YgdGhlIEtleUJ1ZmZlcg0KPiArDQo+ICsgIEByZXR2YWwgIEVGSV9TVUND RVNTICAgICAgICAgICAgIFRoZSBvcGVyYXRpb24gc3VjY2VlZGVkLg0KPiArICBAcmV0dmFsICBF RklfSU5WQUxJRF9QQVJBTUVURVIgICBUaGUgVExTIG9iamVjdCBpcyBpbnZhbGlkLg0KPiArICBA cmV0dmFsICBFRklfUFJPVE9DT0xfRVJST1IgICAgICBTb21lIG90aGVyIGVycm9yIG9jY3VycmVk Lg0KPiArDQo+ICsqKi8NCj4gK3R5cGVkZWYNCj4gK0VGSV9TVEFUVVMNCj4gKyhFRklBUEkgKkVE S0lJX0NSWVBUT19UTFNfR0VUX0VYUE9SVF9LRVkpKA0KPiArICBJTiAgICAgVk9JRCAgICAgICAg ICAgICAgICAgICAgICpUbHMsDQo+ICsgIElOICAgICBDT05TVCBWT0lEICAgICAgICAgICAgICAq TGFiZWwsDQo+ICsgIElOICAgICBDT05TVCBWT0lEICAgICAgICAgICAgICAgKkNvbnRleHQsDQo+ ICsgIElOICAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgQ29udGV4dExlbiwNCj4gKyAgT1VU ICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAqS2V5QnVmZmVyLA0KPiArICBJTiAgICAgVUlO VE4gICAgICAgICAgICAgICAgICAgIEtleUJ1ZmZlckxlbg0KPiArICApOw0KPiArDQo+ICAvKioN Cj4gICAgR2V0cyB0aGUgQ0Etc3VwcGxpZWQgY2VydGlmaWNhdGUgcmV2b2NhdGlvbiBsaXN0IGRh dGEgc2V0IGluIHRoZSBzcGVjaWZpZWQNCj4gICAgVExTIG9iamVjdC4NCj4gQEAgLTQ5NTQsNiAr NTA3NiwxNCBAQCBzdHJ1Y3QgX0VES0lJX0NSWVBUT19QUk9UT0NPTCB7DQo+ICAgIEVES0lJX0NS WVBUT19FQ19HRU5FUkFURV9LRVkgICAgICAgICAgICAgICAgICAgICAgICBFY0dlbmVyYXRlS2V5 Ow0KPiAgICBFREtJSV9DUllQVE9fRUNfR0VUX1BVQl9LRVkgICAgICAgICAgICAgICAgICAgICAg ICAgRWNHZXRQdWJLZXk7DQo+ICAgIEVES0lJX0NSWVBUT19FQ19ESF9DT01QVVRFX0tFWSAgICAg ICAgICAgICAgICAgICAgICBFY0RoQ29tcHV0ZUtleTsNCj4gKyAgLy8vIFRMUyAoY29udGludWVk KQ0KPiArICBFREtJSV9DUllQVE9fVExTX1NIVVRET1dOICAgICAgICAgICAgICAgICAgICAgICAg ICAgVGxzU2h1dGRvd247DQo+ICsgIC8vLyBUTFMgU2V0IChjb250aW51ZWQpDQo+ICsgIEVES0lJ X0NSWVBUT19UTFNfU0VUX0hPU1RfUFJJVkFURV9LRVlfRVggICAgICAgICAgICBUbHNTZXRIb3N0 UHJpdmF0ZUtleUV4Ow0KPiArICBFREtJSV9DUllQVE9fVExTX1NFVF9TSUdOQVRVUkVfQUxHT19M SVNUICAgICAgICAgICAgVGxzU2V0U2lnbmF0dXJlQWxnb0xpc3Q7DQo+ICsgIEVES0lJX0NSWVBU T19UTFNfU0VUX0VDX0NVUlZFICAgICAgICAgICAgICAgICAgICAgICBUbHNTZXRFY0N1cnZlOw0K PiArICAvLy8gVExTIEdldCAoY29udGludWVkKQ0KPiArICBFREtJSV9DUllQVE9fVExTX0dFVF9F WFBPUlRfS0VZICAgICAgICAgICAgICAgICAgICAgVGxzR2V0RXhwb3J0S2V5Ow0KPiAgfTsNCj4g DQo+ICBleHRlcm4gR1VJRCAgZ0Vka2lpQ3J5cHRvUHJvdG9jb2xHdWlkOw0KPiAtLQ0KPiAyLjMx LjEud2luZG93cy4xDQo+IA0KPiANCj4gDQo+IA0KPiANCg0K