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.web10.55969.1600071555967305634 for ; Mon, 14 Sep 2020 01:19:16 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=lNxaKS6r; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: zhichao.gao@intel.com) IronPort-SDR: Ry5iSuOPIC7+hVep4GaXOBZ8qtSp5xU41RMdyUawdVuJnPBBChnO80tj4Cbfhsm4lO0KcOCB5E 7B5x4Kov6hag== X-IronPort-AV: E=McAfee;i="6000,8403,9743"; a="156438126" X-IronPort-AV: E=Sophos;i="5.76,425,1592895600"; d="scan'208";a="156438126" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2020 01:19:14 -0700 IronPort-SDR: MfuF6cW/d9jpgbp5F02Q+0BDojCro2jafOfqttu4b/naFoUsJj9N0q3Dl7Wugn2bQ8T3Xhypi1 akGnd1aGqBFg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,425,1592895600"; d="scan'208";a="335215935" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga008.jf.intel.com with ESMTP; 14 Sep 2020 01:19:14 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 14 Sep 2020 01:19:13 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 14 Sep 2020 01:19:12 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.1713.5 via Frontend Transport; Mon, 14 Sep 2020 01:19:12 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) 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.1713.5; Mon, 14 Sep 2020 01:19:11 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=me0nBsWKs0GniudOKKTbrpvO2BXkrdhfF1i5NuALG90jorvtWVVZtkRNfHYdrKi9Uw3TRUXkFVowJAX+ODY9n3TkT5qb2XBJvDBvjpjpAWmuwXYv+dqhgtsMU5w1mhMuWVwbladgsHY9mj6jKAk0NcDywjZ3hCkgcREkymt/dQIr+p6cCaJ6HnH4avHh1QFv2H97J3b8k7XqgiRzYLXHWI3ARwJWBlaoGXuUZYp+dBznsXPft9ktfoEoXJ6/PTbOLkYGgopKLzz92JgQeUbiSGzxyojT4aTwYI7GXMC+VBuI7/ezV51XmbEVzYOoWRYzjDYtpZgkqK8rKcwHKROKow== 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-SenderADCheck; bh=+lgnWRg+Teg7UkLSW5g9jDOSvgOAiki1JHnuA5SbmQI=; b=IIlk50D2AfvO0M7+uxS4ssSvTL8OgiU4d9nDIBFYw164qEXzV9FqhZLmWbQ6dkFpn+Si2KzZ2Ca5eNWpDJ6aOLig4lR7hmxYg1FFrougKhP6CF1Bv3kVtl0SLD0pqdvfztWU2cWeD+dF/3bxIw/1iWHmp/FR6UubUQk1RcxmjNqeQ1jg3KhfqjVKIGrblhV+39EAU+Whl5O4fDvtH+wEF+FWVv9nCSfusx2QCHaRF+iDDgBGAKfPYENyWmxAG21jVkyVTjczmAusHjvM1fHWXNqnMDHVuo0QUJUnXGVY3dGNi8/E08/quo5QxvlQvxm64Wpus76SKjOMHRhuTNfigw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+lgnWRg+Teg7UkLSW5g9jDOSvgOAiki1JHnuA5SbmQI=; b=lNxaKS6rESFUxdcfIwy9xUKJbE7Xy6dfu9xnidPPq62WRFfILBLErItJf+BBnH4lS55uAmNQc21mPkgsZXnmW8h1BPuTxVIzXAjjvDUEv4hDY5pC+nLy/K3xesClGPGQ9Ma4CBpjCPaa4SDb3bjRjMLfHNDdc3f9Cf7evENvOL8= Received: from DM6PR11MB4425.namprd11.prod.outlook.com (2603:10b6:5:1d9::31) by DM6PR11MB4657.namprd11.prod.outlook.com (2603:10b6:5:2a6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Mon, 14 Sep 2020 08:19:10 +0000 Received: from DM6PR11MB4425.namprd11.prod.outlook.com ([fe80::8dc1:7146:874:83f7]) by DM6PR11MB4425.namprd11.prod.outlook.com ([fe80::8dc1:7146:874:83f7%6]) with mapi id 15.20.3370.019; Mon, 14 Sep 2020 08:19:10 +0000 From: "Gao, Zhichao" To: Vladimir Olovyannikov , Laszlo Ersek , "devel@edk2.groups.io" CC: Maciej Rabeda , "Wu, Jiaxin" , "Fu, Siyuan" , "Ni, Ray" , "Gao, Liming" , Nd , Samer El-Haj-Mahmoud Subject: Re: [PATCH v11 0/1] ShellPkg/DynamicCommand: add HttpDynamicCommand Thread-Topic: [PATCH v11 0/1] ShellPkg/DynamicCommand: add HttpDynamicCommand Thread-Index: AQHWiF2n1zv43lyznkOBYgnwDtbQ/KlnT4AggABBVICAADrVsA== Date: Mon, 14 Sep 2020 08:19:10 +0000 Message-ID: References: <20200909184904.11129-1-vladimir.olovyannikov@broadcom.com> <066d9426ea1b5f9eb025ed50ee41ab1d@mail.gmail.com> In-Reply-To: <066d9426ea1b5f9eb025ed50ee41ab1d@mail.gmail.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: broadcom.com; dkim=none (message not signed) header.d=none;broadcom.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6244945a-4ac3-4fbd-4faa-08d85886dbb1 x-ms-traffictypediagnostic: DM6PR11MB4657: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: yyKvwE13+w4lMc9PwaJpRk0bt+DdBxOhYNTf+R3YoHrX8ayNQc+sD781WmqQAPMKhOvc16r2C9CwBo851Pye4fLD39G+J+CpAgw2vdM2eZsCXd2yX7lwN2aFurgk4ruE19YC1cPf1NfyofQcM5ySk19IKaV/HtUVSx9ZuF7Om3zMXTwcAohOsrPkUI7LZVE+TVRvQbueLOpAwDYGbiNtfm789MFAh848za5kV2+3959V0jNKdQztEvCChuWa4Qqut8ourOm6FEVFRVBVQ8GgF250EN21NDPyVM9haYlObAW6X2KodfcX3Ef3YDySosvtMNofwHpnigMTK4/UiAc2eHmRJ+satm2ihVphApNfX9TaiKRgClSsKa1mH2ZZN/L37TTCtrK8orA0bR8BF0by6w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4425.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(39860400002)(346002)(376002)(396003)(366004)(5660300002)(4326008)(7696005)(6506007)(53546011)(52536014)(54906003)(71200400001)(110136005)(478600001)(8676002)(9686003)(26005)(186003)(316002)(966005)(66446008)(64756008)(66556008)(55016002)(66476007)(2906002)(86362001)(76116006)(33656002)(66946007)(8936002)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: dVa6Kg199+U8Qx8+7W36KS3w7XVcRu9dr3tbp1BfIFigtXQf2yvvuaQ0iaOmuC7bMm3Aavs0GX6xhW9N8BxuCGw+UPIBrxkcN3c+nxREShazhr0LumQrGqAgelb6AUnoLMgdtwudA6a22Zizo5RsdY0i9H5djgeHrR8jmLhihnZjQw0HSf5UT2uC/n9JXwRBHaKwHxKjl7vaA+MZmAUTrYa9u1EBBG4G3Lx/bD3rfXVrE+9ju5bwBr48r2dx0k7MmEEWkgBYy0a/1OBalpLHlU2LlROSDWsSAWY0QmK4ZOdnuUaAEoROi/Wmb/bQONzv5ZwutEYZ0D7sZZf6gMK80N/4kmZ0NF7k61gK25nF/BrLmwmQFxx9sYxl78q5q2NbORhNRb2T0NrOHLbrqSnpk6LaKY8ACJxnby3SQ116D+xkBMrHT26dldWte74akY3Q1i+WkHzulIk0bXDxQcCUtSactS61wdMXcq3ZueAszptgIz3qXsYZna6tIcy0CTMm/PVoGgfk5l4lJQsznotGxm6bp0CRI+53HWdV9dHDjiWE+98VK/I7WXNGzh/4Eqr1Wj593hpfHJJgjKDirfn18SSTQ65woH3XfMuR+ZX552Bvlu/0tXxOovjr9JCqlKEILDJq1TDUsjLEMQfVw+WZkQ== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4425.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6244945a-4ac3-4fbd-4faa-08d85886dbb1 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2020 08:19:10.5598 (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: 11u3foenLz6W3Qoj0MAwLeKVayTauvdJmQd29V6L/q7DozfebTeQedW+E3EpKQiehMTE4l0x1rPRKisem/S96Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4657 Return-Path: zhichao.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgVmxhZGltaXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVmxh ZGltaXIgT2xvdnlhbm5pa292IDx2bGFkaW1pci5vbG92eWFubmlrb3ZAYnJvYWRjb20uY29tPg0K PiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAxNCwgMjAyMCAxMjozOCBQTQ0KPiBUbzogR2FvLCBa aGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRo YXQuY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IE1hY2llaiBSYWJlZGEgPG1h Y2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPjsgV3UsIEppYXhpbg0KPiA8amlheGluLnd1QGlu dGVsLmNvbT47IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+OyBOaSwgUmF5DQo+IDxy YXkubmlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgTmQg PG5kQGFybS5jb20+Ow0KPiBTYW1lciBFbC1IYWotTWFobW91ZCA8U2FtZXIuRWwtSGFqLU1haG1v dWRAYXJtLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2MTEgMC8xXSBTaGVsbFBrZy9EeW5h bWljQ29tbWFuZDogYWRkDQo+IEh0dHBEeW5hbWljQ29tbWFuZA0KPiANCj4gSGkgWmhpY2hhbywN Cj4gVGhhbmsgeW91IGZvciByZXZpZXdpbmcuDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gRnJvbTogR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ ID4gU2VudDogU3VuZGF5LCBTZXB0ZW1iZXIgMTMsIDIwMjAgNTo1MiBQTQ0KPiA+IFRvOiBWbGFk aW1pciBPbG92eWFubmlrb3YgPHZsYWRpbWlyLm9sb3Z5YW5uaWtvdkBicm9hZGNvbS5jb20+OyBM YXN6bG8NCj4gPiBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiA+IENjOiBNYWNpZWogUmFiZWRhIDxtYWNpZWoucmFiZWRhQGxpbnV4LmludGVsLmNvbT47 IFd1LCBKaWF4aW4NCj4gPiA8amlheGluLnd1QGludGVsLmNvbT47IEZ1LCBTaXl1YW4gPHNpeXVh bi5mdUBpbnRlbC5jb20+OyBOaSwgUmF5DQo+ID4gPHJheS5uaUBpbnRlbC5jb20+OyBHYW8sIExp bWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBOZA0KPiA+IDxuZEBhcm0uY29tPjsgU2FtZXIg RWwtSGFqLU1haG1vdWQgPFNhbWVyLkVsLUhhai0gTWFobW91ZEBhcm0uY29tPg0KPiA+IFN1Ympl Y3Q6IFJFOiBbUEFUQ0ggdjExIDAvMV0gU2hlbGxQa2cvRHluYW1pY0NvbW1hbmQ6IGFkZA0KPiA+ IEh0dHBEeW5hbWljQ29tbWFuZA0KPiA+DQo+ID4gSGkgVmxhZGltaXIvTGFzemxvLA0KPiA+DQo+ ID4gU29ycnkgZm9yIHRoZSBsYXRlIHJlc3BvbnNlLiBSZWNlbnRseSwgSSBhbSBidXN5IHdpdGgg b3RoZXIgd29ya3MgZm9yDQo+ID4gcmVjZW50IHdlZWtzLiBTbyBJIGNhbm5vdCBzcGVuZCBtdWNo IHRpbWUgb24gRURLMiBvcGVuIHNvdXJjZS4NCj4gPiBBcG9sb2dpemUgZm9yIHRoZSBpbmNvbnZl bmllbnQuDQo+ID4NCj4gPiBJIGRpZG7igJl0IGdpdmUgdGhlIGNvbW1lbnRzIG9uIHRoZSB0aW1l IGZ1bmN0aW9uIGJlY2F1c2UgSSBmb3VuZCBpdCBpcw0KPiA+IGNvcGllZCBmcm9tIEVtYmVkZGVk UGtnJ3MgVGltZUJhc2VMaWIuIEFuZCBJIGFzc3VtZXMgaXQgd29ya3MgZmluZQ0KPiA+IHdpdGhv dXQgYW55IGlzc3VlIGFzIGl0IGhhcyBiZWVuIGluIHRoZSB0cnVuayBmb3IgYSBsb25nIHRpbWUu IEJ1dA0KPiA+IGFjdHVhbGx5IGl0IGNhbm5vdCBwYXNzIHRoZSBNUyBWUyBYNjQgYnVpbGQuIFRo ZSBsaWIgd2FzIG5vdCBhZGRlZCBpbg0KPiA+IHRoZSBwYWNrYWdlIGRzYyBmaWxlIHNvIHRoZSBi dWlsZCBlcnJvciB3YXMgbm90IGZvdW5kIGJlZm9yZS4gSSBob3BlDQo+ID4gd2UgY2FuIGRpcmVj dGx5IHVzZSB0aGUgVGltZUJhc2VMaWIgaW5zdGVhZCBvZiBqdXN0IHVzZSBpdHMgaGVhZGVyDQo+ ID4gZmlsZSBhbmQga2VlcCB0aGUgZHVwbGljYXRlZCBjb2RlLiBUaGlzIGNhbiBiZSBhIGZ1dHVy ZQ0KPiA+IGZpeC9vcHRpbWl6YXRpb24uDQo+IFllcywgdGhpcyBpbml0aWFsbHkgd2FzIHRoZSBp bnRlbnRpb24sIGJ1dCB4NjQgYnVpbGQgb2YNCj4gU2hlbGxQa2cvSHR0cER5bmFtaWNDb21tYW5k IGZhaWxlZCwgc28gSSBzd2l0Y2hlZCB0byB0aGUgaHlicmlkOiBVc2UNCj4gY29uc3RhbnRzIGZy b20gVGltZUJhc2VMaWIsIGFuZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uIGluIHRoZQ0KPiBIdHRw RHluYW1pY0NvbW1hbmQgaXRzZWxmLg0KPiA+DQo+ID4gT3RoZXIgY29kZSBkb2Vzbid0IGNoYW5n ZSB0aGUgbG9naWMgc2luY2UgVjkuIFNvIEkgaGF2ZSBubyBjb21tZW50cyBvbg0KPiA+IHRoZSBp bXBsZW1lbnRhdGlvbiBleGNlcHQgdGhlIG5ldyB0aW1lIGZ1bmN0aW9uLiBXaXRoIHRoZSB0aW1l DQo+ID4gZnVuY3Rpb24gaXNzdWUgZml4ZWQsIEkgYW0gZ2xhZCB0byBnaXZlIHRoZSBSLUIgYW5k IGhlbHAgdG8gbWVyZ2UgdGhlIHBhdGNoLg0KPiBDYW4geW91IHBsZWFzZSBsZXQgbWUga25vdyB3 aGF0IHRoZSBpc3N1ZSBpcz8gVGhlIHJldHVybiBub3cgY29ycmVzcG9uZHMgdG8NCj4gVGltZUJh c2VMaWIgcmV0dXJuIHZhbHVlcy4NCj4gVGltZUJhc2VMaWIgbGlicmFyeSBpdHNlbGYgbmVlZHMg dG8gYmUgZml4ZWQgdG8gcmV0dXJuIHByb3BlciB0eXBlIG9mDQo+IEVmaVRpbWVUb0Vwb2NoLg0K PiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/DQoNCk5vLiBJIHRoaW5rIHlvdSBjYW4gZml4IHRoZSB0 aW1lIHJlbGF0ZWQgY29kZSBhcyBMYXN6bG8ncyBzdWdnZXN0aW9uLiBUaGUgb3B0aW1pemF0aW9u IGNhbiBiZSBkb25lIGluIHRoZSBmdXR1cmUuDQpCdXQgbXkgcG9pbnQgaXMsIHdlIHNob3VsZCBy ZWNvcmQgdGhlIGJ1aWxkIGVycm9yIGluIHRoZSBFbWJlZGRlZFBrZyBCYXNlVGltZUxpYi4gV2l0 aCB0aGF0IGZpeGVkLCB0aGlzIGRyaXZlciBjYW4gYmUgb3B0aW1pemVkIHRvIHJlbW92ZSB0aGUg ZHVwbGljYXRlZCBjb2RlLiBJIGhhdmUgZmlsZSBhIEJaIGZvciBpdDogaHR0cHM6Ly9idWd6aWxs YS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTYyLiBJIHdvdWxkIGZpeCBpdCB3aGVu IEkgYW0gZnJlZS4NCg0KVGhhbmtzLA0KWmhpY2hhbw0KDQo+IA0KPiBUaGFuayB5b3UsDQo+IFZs YWRpbWlyDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gWmhpY2hhbw0KPiA+DQo+ID4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogVmxhZGltaXIgT2xvdnlhbm5pa292IDx2 bGFkaW1pci5vbG92eWFubmlrb3ZAYnJvYWRjb20uY29tPg0KPiA+ID4gU2VudDogU2F0dXJkYXks IFNlcHRlbWJlciAxMiwgMjAyMCAxOjA0IEFNDQo+ID4gPiBUbzogTGFzemxvIEVyc2VrIDxsZXJz ZWtAcmVkaGF0LmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogR2FvLCBaaGlj aGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBNYWNpZWogUmFiZWRhDQo+ID4gPiA8bWFjaWVq LnJhYmVkYUBsaW51eC5pbnRlbC5jb20+OyBXdSwgSmlheGluIDxqaWF4aW4ud3VAaW50ZWwuY29t PjsNCj4gPiA+IEZ1LCBTaXl1YW4gPHNpeXVhbi5mdUBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPjsgR2FvLA0KPiA+ID4gTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47 IE5kIDxuZEBhcm0uY29tPjsgU2FtZXIgRWwtSGFqLU1haG1vdWQNCj4gPiA+IDxTYW1lci5FbC1I YWotTWFobW91ZEBhcm0uY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2MTEgMC8xXSBT aGVsbFBrZy9EeW5hbWljQ29tbWFuZDogYWRkDQo+ID4gPiBIdHRwRHluYW1pY0NvbW1hbmQNCj4g PiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gPiA+IFNlbnQ6IEZyaWRheSwgU2Vw dGVtYmVyIDExLCAyMDIwIDEyOjIwIEFNDQo+ID4gPiA+IFRvOiBWbGFkaW1pciBPbG92eWFubmlr b3YgPHZsYWRpbWlyLm9sb3Z5YW5uaWtvdkBicm9hZGNvbS5jb20+Ow0KPiA+ID4gPiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiBDYzogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVs LmNvbT47IE1hY2llaiBSYWJlZGENCj4gPiA+ID4gPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwu Y29tPjsgSmlheGluIFd1IDxqaWF4aW4ud3VAaW50ZWwuY29tPjsNCj4gPiA+ID4gU2l5dWFuIEZ1 IDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPjsgTGltaW5n DQo+ID4gPiA+IEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBOZCA8bmRAYXJtLmNvbT47IFNh bWVyIEVsLUhhai0NCj4gPiBNYWhtb3VkDQo+ID4gPiA+IDxTYW1lci5FbC1IYWotTWFobW91ZEBh cm0uY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENIIHYxMSAwLzFdIFNoZWxsUGtnL0R5 bmFtaWNDb21tYW5kOiBhZGQNCj4gPiA+ID4gSHR0cER5bmFtaWNDb21tYW5kDQo+ID4gPiA+DQo+ ID4gPiA+IE9uIDA5LzEwLzIwIDIyOjMzLCBWbGFkaW1pciBPbG92eWFubmlrb3Ygd3JvdGU6DQo+ ID4gPiA+ID4gSGkgTGFzemxvLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhh dC5jb20+DQo+ID4gPiA+ID4+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDksIDIwMjAgMTE6 MzMgUE0NCj4gPiA+ID4NCj4gPiA+ID4gPj4+IFBBVENIIHYxMSBjaGFuZ2VzOg0KPiA+ID4gPiA+ Pj4gQWRkcmVzcyBjb21tZW50cyBmcm9tIExhc3psbzoNCj4gPiA+ID4gPj4+ICAgLSB1c2UgVGlt ZUJhc2VMaWIuaCBoZWFkZXIgdG8gZ2V0IHJpZCBvZiBkdXBsaWNhdGVkIGNvbnN0YW50czsNCj4g PiA+ID4gPj4+ICAgLSBleHBsaWNpdGx5IHJldHVybiBVSU5UMzIgaW4gRWZpVGltZVRvRXBvY2go KS4NCj4gPiA+ID4gPj4NCj4gPiA+ID4gPj4gdG8gYmUgY2xlYXIsIEkgZXhwbGljaXRseSAqZGlz YWdyZWUqIHdpdGggcmV0dXJuaW5nIFVJTlQzMiBmcm9tDQo+ID4gPiA+ID4+IEVmaVRpbWVUb0Vw b2NoKCkuDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IEknbSBub3QgImRlbWFuZGluZyIgKG9yIGV2 ZW4gc3VnZ2VzdGluZykgdGhhdCB5b3UgdXBkYXRlIHRoZQ0KPiA+ID4gPiA+PiBFZmlUaW1lVG9F cG9jaCgpIGltcGxlbWVudGF0aW9uIGluIHRoaXMgcGF0Y2ggdG8gcmV0dXJuIFVJTlROLA0KPiA+ ID4gPiA+PiBidXQgSSdkIGxpa2UgdG8gYmUgdmVyeSBjbGVhciB0aGF0LCBJTU8sIGZvciBFZmlU aW1lVG9FcG9jaCgpDQo+ID4gPiA+ID4+IHRvIHN1ZmZlciBmcm9tIGEgeWVhciAyMTA2IHByb2Js ZW0gb24gNjQtYml0IHN5c3RlbXMgdG9vLCBpcw0KPiA+ID4gPiA+PiBiYWQgZGVzaWduLiBTbyBw bGVhc2UgZG9uJ3QgbGlzdCB0aGUgVUlOVDMyIHJldHVybiB0eXBlIGFzIG15DQo+ID4gPiA+ID4+ IHN1Z2dlc3Rpb24gLS0gdGhhdCdzIHRoZSBleGFjdCBvcHBvc2l0ZSBvZiB3aGF0IEknZCBhY3R1 YWxseQ0KPiA+ID4gPiA+PiBzdWdnZXN0Lg0KPiA+ID4gPg0KPiA+ID4gPiA+IFNvcnJ5LCBJIG11 c3QgaGF2ZSBtaXN1bmRlcnN0b29kLiBEbyB5b3Ugd2FudCBtZSB0byByZXN1Ym1pdCB0aGUNCj4g PiA+ID4gPiBwYXRjaD8gSSBhbSBvcGVuIHRvIGlkZWFzLg0KPiA+ID4gPg0KPiA+ID4gPiBJZGVh bGx5Og0KPiA+ID4gPg0KPiA+ID4gPiAtIGNoYW5nZSB0aGUgcmV0dXJuIHR5cGUgb2YgRWZpVGlt ZVRvRXBvY2goKSB0byBVTklUTg0KPiA+ID4gPg0KPiA+ID4gPiAtIGRyb3AgdGhlIGZpbmFsIFVJ TlQzMiBjYXN0IGZyb20gRWZpVGltZVRvRXBvY2goKQ0KPiA+ID4gPg0KPiA+ID4gPiAtIGNoYW5n ZSB0aGUgdHlwZSBvZiBFbGFwc2VkU2Vjb25kcyB0byBVSU5UTg0KPiA+ID4gPg0KPiA+ID4gPiAt IGNoYW5nZSB0aGUgZXhwcmVzc2lvbg0KPiA+ID4gPg0KPiA+ID4gPiAgICAgRWxhcHNlZFNlY29u ZHMgPiAxID8gRWxhcHNlZFNlY29uZHMgOiAxDQo+ID4gPiA+DQo+ID4gPiA+ICAgdG8NCj4gPiA+ ID4NCj4gPiA+ID4gICAgIEVsYXBzZWRTZWNvbmRzID4gMSA/IChVSU5UNjQpRWxhcHNlZFNlY29u ZHMgOiAxDQo+ID4gPiA+DQo+ID4gPiA+IC0gcHJpbnQgdGhlIGV4cHJlc3Npb24gbWVudGlvbmVk IGFib3ZlIHdpdGggdGhlIGZvcm1hdCBzcGVjaWZpZXINCj4gPiA+ID4gJUx1DQo+ID4gPiBJIHNl ZS4gQmFzaWNhbGx5LCBpdCBpcyBQQVRDSCB2MTAuIEkganVzdCB3YW50ZWQgdG8gcmV1c2UNCj4g PiA+IFRpbWVCYXNlTGliLmggY29uc3RhbnRzIGluIFBBVENIIHYxMS4NCj4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+ICpCVVQqLiBUaGVzZSBhcmUgcmVhbGx5IGp1c3Qgc21hbGwgZGV0YWlscy4gSXQg d291bGQgYmUgT0sgdG8gZml4DQo+ID4gPiA+IHRoZXNlIHVwIGxhdGVyLCBpbmNyZW1lbnRhbGx5 LiBXaGVyZSBJIHNlZSBhIHJlYWwgcHJvYmxlbSBpcyB0aGUNCj4gPiA+ID4gbGFjayBvZiB0aW1l bHkgZmVlZGJhY2sgZnJvbSB0aGUgU2hlbGxQa2cgbWFpbnRhaW5lcnMuDQo+ID4gPiBBZ3JlZWQu IEhvcGVmdWxseSwgaXQgY2FuIGJlIHJldmlld2VkIHNvbWV0aW1lIHNvb24uDQo+ID4gPg0KPiA+ ID4gVGhhbmsgeW91LA0KPiA+ID4gVmxhZGltaXINCj4gPiA+ID4NCj4gPiA+ID4gTGFzemxvDQo=