From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.8.90; helo=nam03-dm3-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-oln040092008090.outbound.protection.outlook.com [40.92.8.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id AEE07210E8D7E for ; Thu, 9 Aug 2018 21:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6NJRm9RWhilBDjlxCGiDBCvYyC/MukM6fsoYOFosgNs=; b=l4FxdfRKvCDZZBRJCT1pu1LWywDAg5Nw8K8yqAHeHJiWjQaNjc1fPupsDqrUMgmurU0WogB5aM2Ripz8eXDr5hgYmAj5CHA9Xliqy35DHDjBP3QrDHHLtjm6bZtZEgn4A8alu5PYDqtrF+t5TRDx1dgUqiZwcep0CigNDqgXE7ExzgksZJwhcrIAz1L8eiAY6pOQ7zUUYIiFfrybdc5kJu90zuMzCd3QTYR9/zSwJ9UmM5uNeYAlkGEBieHE5LRstXQrqR8USgF9YtcGRtPdmfepYNu6sljnvraoT9xn7PlJWZnB2vopx6RSV1EQ+6eequ5gXHIVCcaWHHNQ913PPA== Received: from DM3NAM03FT005.eop-NAM03.prod.protection.outlook.com (10.152.82.58) by DM3NAM03HT147.eop-NAM03.prod.protection.outlook.com (10.152.82.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.1038.13; Fri, 10 Aug 2018 04:01:50 +0000 Received: from SN6PR19MB2269.namprd19.prod.outlook.com (10.152.82.57) by DM3NAM03FT005.mail.protection.outlook.com (10.152.82.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.1038.3 via Frontend Transport; Fri, 10 Aug 2018 04:01:50 +0000 Received: from SN6PR19MB2269.namprd19.prod.outlook.com ([fe80::5d26:33cc:d7fe:4a38]) by SN6PR19MB2269.namprd19.prod.outlook.com ([fe80::5d26:33cc:d7fe:4a38%3]) with mapi id 15.20.1017.019; Fri, 10 Aug 2018 04:01:50 +0000 From: Fan Jeff To: "Dong, Eric" , 'Laszlo Ersek' CC: "Ni, Ruiyu" , "Kinney, Michael D" , "edk2-devel@lists.01.org" Thread-Topic: =?utf-8?B?W2VkazJdIOetlOWkjTogIFtQYXRjaCB2MiAyLzJdIFVlZmlDcHVQa2cvQ3B1?= =?utf-8?B?UzNEYXRhRHhlOiBDaGFuZ2UgTWVtb3J5IFR5cGUgYW5kIGFkZHJlc3MgbGlt?= =?utf-8?Q?itation.?= Thread-Index: AQHUMF7d1hlJbwiboU2jhnzIKi5tOA== Date: Fri, 10 Aug 2018 04:01:50 +0000 Message-ID: References: <20180808074006.21360-1-eric.dong@intel.com> <20180808074006.21360-2-eric.dong@intel.com> , , In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:3400F3665946BA246711513A9A3EEF7332DF2CD4FA1C0C494A9242803A973FE9; UpperCasedChecksum:C2A53F5B3E42A25A924D50BBE326523EDA3F7B99BA330DE84B06DFB2A268B775; SizeAsReceived:7733; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [Ns9/howSsLJwzwUE0LeUX1n5hoQNCQC1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM3NAM03HT147; 6:Ln2gR693Da6oTAnF1O4GxkkaaeoGUiDj9UJClLZaf3Uz+LLNtAO6cKZfoyG9bmc5+2B2vMpou2lbihvdJouQ/30Mm2tktCIUWa3ihlsyPz7DdrZ06y4lwfN4ZJbHcqwPrP7GUxkF/wFsiP2oXZj5d5zzqGQZboQT4rgafPbW3BAmUHsaT7bL8NY/y/SBWdi5tbZKe8afU7jJT03zLkOBWH0XfpWItfseN95lOIUe34GiFz1QGR1TDFeskWJmSyu8/ggVzjecJo1zg3/Qc3uUO1TnuwqAEP9/3KDxSS8dy56GNdwDTBiPCUT5OORRasnZAJTdsLAr6Pv8xCBe27ttIBJT7qS1VpsGR9X6jZy++lNoxOpaLGKm749kyheQD0/wp+iHqYaa9/DYfPNP1RGLq98+brcYdN0ra8Hm1nHDJUp024uWiCU1WqJK3idgpEcyn73a6zObeCLfxPS3nUjrIw==; 5:cBHnljVKpr8cMp7Q3X3sxexozFOwb35HrywRkF2um+oVspMJVF64Bgy+tls4bxeAwy9uL/TN+FMhsnBtx0UoKiC2K77fqUfm4YuRMSYAm18+Bb1T5WMrHbRDTMGvm+T5sSqLys7hxEdXilPbiEAvv7+6K5tKhL2hU8UUt63bhN4=; 7:/4DpPbgJlvebjdFxgkvSpDy7Pt7ocMpkc71hW44TGwWj9QrrjFCf9Mj5ngy1yC3pFYohj85wxDKPCmNsuqEez8Ikpc84qRgYH8ymPyJ3DxiWkJtU1q1CRplQIeE5pCnfLZ8ptChpASQGezbE/nEAGbNiCNeQminw3DKiKnHAHZ4D9uN+lUOBVa1mXPABYnikFSDTsOY+FApGtVOCJoxY5P9Q/RlhL2hr1x5zP0qr+mb+xMPu3lddv731iTp/27fh x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101475)(1601125500)(1701031045); SRVR:DM3NAM03HT147; x-ms-traffictypediagnostic: DM3NAM03HT147: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(4566010)(82015058); SRVR:DM3NAM03HT147; BCL:0; PCL:0; RULEID:; SRVR:DM3NAM03HT147; x-forefront-prvs: 07607ED19A x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(189003)(199004)(13464003)(446003)(14444005)(5250100002)(256004)(106356001)(224303003)(33656002)(966005)(105586002)(104016004)(6506007)(53546011)(45080400002)(7696005)(476003)(76176011)(14454004)(73972006)(82202002)(20460500001)(11346002)(97736004)(6436002)(4001150100001)(5660300001)(68736007)(486006)(83332001)(93886005)(56003)(2940100002)(236005)(87572001)(9686003)(55016002)(2900100001)(74316002)(99286004)(19627235002)(54906003)(110136005)(4326008)(54896002)(6306002)(81156014)(8936002)(606006)(6346003)(575784001)(25786009)(26005)(102836004)(86362001)(45954006)(15852004); DIR:OUT; SFP:1901; SCL:1; SRVR:DM3NAM03HT147; H:SN6PR19MB2269.namprd19.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: hotmail.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vanjeff_919@hotmail.com; x-microsoft-antispam-message-info: TIZ08lvMHSwSAm0Gb/B7cOKD94Kv8jvbYr+UYn+q3JD+eIhRmtoZf/q/QDNlfGO5HNri0E+Uy0ZXUWF9NybKy1Fm31a9ujYetpOlta6sgHzPik05i8YXhls2nVOZsM01FmbbJr4s0ov72c50mWY2l8n6YBZ6eaFQ/AtbDKisUv1tYsFkWhxa4TQl09wt+EadnB/Ymh2w0etx643YQ1td+as/ok2Bzdm5eM9qFfQswrQ= MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: d4d70346-2c10-4f39-8c00-e767963926d9 X-MS-Exchange-CrossTenant-Network-Message-Id: 5ef5d6fb-4667-4d6f-0d88-08d5fe76002c X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: d4d70346-2c10-4f39-8c00-e767963926d9 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Aug 2018 04:01:50.4645 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3NAM03HT147 X-Content-Filtered-By: Mailman/MimeDel 2.1.27 Subject: =?UTF-8?B?562U5aSNOiDnrZTlpI06IFtQYXRjaCB2MiAyLzJdIFVlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlOiBDaGFuZ2UgTWVtb3J5IFR5cGUgYW5kIGFkZHJlc3MgbGltaXRhdGlvbi4=?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Aug 2018 04:01:53 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U29ycnkuIENvcnJlY3Qgc29tZSBjcml0aWNhbCB3b3JkaW5nLg0KDQoNCg0K4oCcQUNQSSBOVlMg YW5kIDRHIGxpbWl0YXRpb24gYXJlIGhpc3RvcnkgcmVhc29uIGFuZCBhcmUgTk9UIG5lY2Vzc2Fy eSBjdXJyZW50bHku4oCdDQoNCg0KDQpKZWZmDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0K5Y+R5Lu25Lq6OiBlZGsyLWRldmVsIDxlZGsyLWRldmVsLWJvdW5jZXNAbGlz dHMuMDEub3JnPiDku6PooaggRmFuIEplZmYgPHZhbmplZmZfOTE5QGhvdG1haWwuY29tPg0K5Y+R 6YCB5pe26Ze0OiBGcmlkYXksIEF1Z3VzdCAxMCwgMjAxOCAxMjowMDowOCBQTQ0K5pS25Lu25Lq6 OiBEb25nLCBFcmljOyAnTGFzemxvIEVyc2VrJw0K5oqE6YCBOiBOaSwgUnVpeXU7IEtpbm5leSwg TWljaGFlbCBEOyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0K5Li76aKYOiBbZWRrMl0g562U5aSN OiBbUGF0Y2ggdjIgMi8yXSBVZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZTogQ2hhbmdlIE1lbW9yeSBU eXBlIGFuZCBhZGRyZXNzIGxpbWl0YXRpb24uDQoNCkhpLA0KDQoNCg0KQUNQSSBOVlMgYW5kIDRH IGxpbWl0YXRpb24gYXJlIGhpc3RvcnkgcmVhc29uIGFuZCBhcmUgbmVjZXNzYXJ5IGN1cnJlbnRs eS4gIEkgYWdyZWUgdG8gZG8gc3VjaCBjbGVhbnVwIGZyb20gaGVhZGVyIGZpbGUgYW5kIGltcGxl bWVudGF0aW9uLg0KDQoNCg0KTG9uZyB0ZXJtLCBjb3VsZCB3ZSB0aGluayBvZiBjb21iaW5lIENw dUZlYXR1cmVzRHhlIGFuZCBDcHVTM0RhdGFEeGU/DQoNCg0KDQpKZWZmDQoNCg0KDQrlj5HpgIHo h6ogV2luZG93cyAxMCDniYjpgq7ku7Y8aHR0cHM6Ly9nby5taWNyb3NvZnQuY29tL2Z3bGluay8/ TGlua0lkPTU1MDk4Nj7lupTnlKgNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQrlj5Hku7bkuro6IGVkazItZGV2ZWwgPGVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5v cmc+IOS7o+ihqCBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPg0K5Y+R6YCB5pe26Ze0 OiBGcmlkYXksIEF1Z3VzdCAxMCwgMjAxOCAxMTozOToxNiBBTQ0K5pS25Lu25Lq6OiAnTGFzemxv IEVyc2VrJw0K5oqE6YCBOiBOaSwgUnVpeXU7IEtpbm5leSwgTWljaGFlbCBEOyBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0K5Li76aKYOiBSZTogW2VkazJdIFtQYXRjaCB2MiAyLzJdIFVlZmlDcHVQ a2cvQ3B1UzNEYXRhRHhlOiBDaGFuZ2UgTWVtb3J5IFR5cGUgYW5kIGFkZHJlc3MgbGltaXRhdGlv bi4NCg0KSGkgTGFzemxvLA0KDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10g T24gQmVoYWxmIE9mDQo+IExhc3psbyBFcnNlaw0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0IDks IDIwMTggMTI6NTUgQU0NCj4gVG86IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ IENjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BhdGNoIHYyIDIvMl0gVWVmaUNwdVBrZy9DcHVTM0RhdGFE eGU6IENoYW5nZQ0KPiBNZW1vcnkgVHlwZSBhbmQgYWRkcmVzcyBsaW1pdGF0aW9uLg0KPg0KPiBI ZWxsbyBFcmljLA0KPg0KPiBPbiAwOC8wOC8xOCAwOTo0MCwgRXJpYyBEb25nIHdyb3RlOg0KPiA+ IEJlY2F1c2UgQ3B1UzNEYXRhIG1lbW9yeSB3aWxsIGJlIGNvcHkgdG8gc21yYW0gYXQgU21tUmVh ZFRvTG9jaw0KPiBwb2ludCwNCj4gPiBzbyB0aGUgbWVtb3J5IHR5cGUgbm8gbmVlZCB0byBiZSBB Q1BJIE5WUyB0eXBlLCBhbHNvIHRoZSBhZGRyZXNzIG5vdA0KPiA+IGxpbWl0IHRvIGJlbG93IDRH Lg0KPiA+IFRoaXMgY2hhbmdlIHJlbW92ZSB0aGUgbGltaXQgb2YgQUNQSSBOVlMgbWVtb3J5IHR5 cGUgYW5kIGJlbG93IDRHLg0KPiA+DQo+ID4gUGFzcyBPUyBib290IGFuZCByZXN1bWUgZnJvbSBT MyB0ZXN0Lg0KPiA+DQo+ID4gQnVnejogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3No b3dfYnVnLmNnaT9pZD05NTkNCj4gPg0KPiA+IFJlcG9ydGVkLWJ5OiBNYXJ2aW4gSMOkdXNlciA8 TWFydmluLkhhZXVzZXJAb3V0bG9vay5jb20+DQo+ID4gU3VnZ2VzdGVkLWJ5OiBGYW4gSmVmZiA8 dmFuamVmZl85MTlAaG90bWFpbC5jb20+DQo+DQo+ICgxKSBJIGJlbGlldmUgdGhlc2UgdGFncyBk b24ndCBhcHBseSB0byB0aGlzIHBhdGNoIC0tIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYQ0KPiBu ZXcgaWRlYSAvIGFkZGl0aW9uLg0KPg0KDQpZZXMsIHdpbGwgcmVtb3ZlIGl0IGluIG15IG5leHQg dmVyc2lvbiBwYXRjaC4NCg0KPg0KPiA+IENjOiBNYXJ2aW4gSMOkdXNlciA8TWFydmluLkhhZXVz ZXJAb3V0bG9vay5jb20+DQo+ID4gQ2M6IEZhbiBKZWZmIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNv bT4NCj4gPiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiBDYzogUnVp eXUgTmkgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9D b3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTogRXJpYyBE b25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBVZWZpQ3B1UGtnL0NwdVMz RGF0YUR4ZS9DcHVTM0RhdGEuYyAgICAgIHwgNjAgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+IC0tDQo+ID4gIFVlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YUR4ZS5pbmYg fCAgMSArDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRp b25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1 UzNEYXRhLmMNCj4gPiBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YS5jDQo+ID4g aW5kZXggZGNjYjQwNmI4ZC4uZDhlYjhjOTc2ZiAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtn L0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGEuYw0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRh RHhlL0NwdVMzRGF0YS5jDQo+ID4gQEAgLTMxLDYgKzMxLDcgQEAgV0lUSE9VVCBXQVJSQU5USUVT IE9SIFJFUFJFU0VOVEFUSU9OUyBPRg0KPiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1Q TElFRC4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+ DQo+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gICNpbmNsdWRlIDxMaWJy YXJ5L010cnJMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxp Yi5oPg0KPiA+DQo+ID4gICNpbmNsdWRlIDxQcm90b2NvbC9NcFNlcnZpY2UuaD4NCj4gPiAgI2lu Y2x1ZGUgPEd1aWQvRXZlbnRHcm91cC5oPg0KPiA+IEBAIC00NSw0MiArNDYsNiBAQCB0eXBlZGVm IHN0cnVjdCB7DQo+ID4gICAgSUEzMl9ERVNDUklQVE9SICAgICAgICAgICBJZHRyUHJvZmlsZTsN Cj4gPiAgfSBBQ1BJX0NQVV9EQVRBX0VYOw0KPiA+DQo+ID4gLS8qKg0KPiA+IC0gIEFsbG9jYXRl IEVmaUFDUElNZW1vcnlOVlMgYmVsb3cgNEcgbWVtb3J5IGFkZHJlc3MuDQo+ID4gLQ0KPiA+IC0g IFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIEVmaUFDUElNZW1vcnlOVlMgYmVsb3cgNEcgbWVtb3J5 IGFkZHJlc3MuDQo+ID4gLQ0KPiA+IC0gIEBwYXJhbVtpbl0gU2l6ZSAgIFNpemUgb2YgbWVtb3J5 IHRvIGFsbG9jYXRlLg0KPiA+IC0NCj4gPiAtICBAcmV0dXJuICAgICAgIEFsbG9jYXRlZCBhZGRy ZXNzIGZvciBvdXRwdXQuDQo+ID4gLQ0KPiA+IC0qKi8NCj4gPiAtVk9JRCAqDQo+ID4gLUFsbG9j YXRlQWNwaU52c01lbW9yeUJlbG93NEcgKA0KPiA+IC0gIElOIFVJTlROICBTaXplDQo+ID4gLSAg KQ0KPiA+IC17DQo+ID4gLSAgRUZJX1BIWVNJQ0FMX0FERFJFU1MgIEFkZHJlc3M7DQo+ID4gLSAg RUZJX1NUQVRVUyAgICAgICAgICAgIFN0YXR1czsNCj4gPiAtICBWT0lEICAgICAgICAgICAgICAg ICAgKkJ1ZmZlcjsNCj4gPiAtDQo+ID4gLSAgQWRkcmVzcyA9IEJBU0VfNEdCIC0gMTsNCj4gPiAt ICBTdGF0dXMgID0gZ0JTLT5BbGxvY2F0ZVBhZ2VzICgNCj4gPiAtICAgICAgICAgICAgICAgICAg IEFsbG9jYXRlTWF4QWRkcmVzcywNCj4gPiAtICAgICAgICAgICAgICAgICAgIEVmaUFDUElNZW1v cnlOVlMsDQo+ID4gLSAgICAgICAgICAgICAgICAgICBFRklfU0laRV9UT19QQUdFUyAoU2l6ZSks DQo+ID4gLSAgICAgICAgICAgICAgICAgICAmQWRkcmVzcw0KPiA+IC0gICAgICAgICAgICAgICAg ICAgKTsNCj4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gLSAgICByZXR1cm4g TlVMTDsNCj4gPiAtICB9DQo+ID4gLQ0KPiA+IC0gIEJ1ZmZlciA9IChWT0lEICopKFVJTlROKUFk ZHJlc3M7DQo+ID4gLSAgWmVyb01lbSAoQnVmZmVyLCBTaXplKTsNCj4gPiAtDQo+ID4gLSAgcmV0 dXJuIEJ1ZmZlcjsNCj4gPiAtfQ0KPiA+IC0NCj4gPiAgLyoqDQo+ID4gICAgQ2FsbGJhY2sgZnVu Y3Rpb24gZXhlY3V0ZWQgd2hlbiB0aGUgRW5kT2ZEeGUgZXZlbnQgZ3JvdXAgaXMgc2lnbmFsZWQu DQo+ID4NCj4gPiBAQCAtMTUwLDcgKzExNSw2IEBAIENwdVMzRGF0YUluaXRpYWxpemUgKA0KPiA+ ICAgIEVGSV9NUF9TRVJWSUNFU19QUk9UT0NPTCAgICpNcFNlcnZpY2VzOw0KPiA+ICAgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgIE51bWJlck9mQ3B1czsNCj4gPiAgICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICBOdW1iZXJPZkVuYWJsZWRQcm9jZXNzb3JzOw0KPiA+IC0gIFZPSUQgICAg ICAgICAgICAgICAgICAgICAgICpTdGFjazsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgICBUYWJsZVNpemU7DQo+ID4gICAgQ1BVX1JFR0lTVEVSX1RBQkxFICAgICAgICAgKlJlZ2lz dGVyVGFibGU7DQo+ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4g QEAgLTE3MSwxMCArMTM1LDcgQEAgQ3B1UzNEYXRhSW5pdGlhbGl6ZSAoDQo+ID4gICAgLy8NCj4g PiAgICBPbGRBY3BpQ3B1RGF0YSA9IChBQ1BJX0NQVV9EQVRBICopIChVSU5UTikgUGNkR2V0NjQN Cj4gPiAoUGNkQ3B1UzNEYXRhQWRkcmVzcyk7DQo+ID4NCj4gPiAtICAvLw0KPiA+IC0gIC8vIEFs bG9jYXRlIEFDUEkgTlZTIG1lbW9yeSBiZWxvdyA0RyBtZW1vcnkgZm9yIHVzZSBvbiBBQ1BJIFMz DQo+IHJlc3VtZS4NCj4gPiAtICAvLw0KPiA+IC0gIEFjcGlDcHVEYXRhRXggPSBBbGxvY2F0ZUFj cGlOdnNNZW1vcnlCZWxvdzRHIChzaXplb2YNCj4gPiAoQUNQSV9DUFVfREFUQV9FWCkpOw0KPiA+ ICsgIEFjcGlDcHVEYXRhRXggPSBBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdFUyAoc2l6 ZW9mDQo+ID4gKyAoQUNQSV9DUFVfREFUQV9FWCkpKTsNCj4NCj4gKDIpIEluIHRoZSBvcmlnaW5h bCBBbGxvY2F0ZUFjcGlOdnNNZW1vcnlCZWxvdzRHKCkgZnVuY3Rpb24sIHdlIGhhdmUgYQ0KPiBa ZXJvTWVtKCkgY2FsbC4gRm9yIGNvbXBhdGliaWxpdHksIEkgdGhpbmsgd2Ugc2hvdWxkIGNhbGwN Cj4gQWxsb2NhdGVaZXJvUGFnZXMoKSBoZXJlLg0KPg0KPiAoUHJldmlvdXNseSwgdGhlIHRyYWls aW5nIHBvcnRpb24gb2YgdGhlIGxhc3QgcGFnZSBtYXkgbm90IGhhdmUgYmVlbiB6ZXJvZWQsDQo+ IGJ1dCBpdCdzIG5vdCBhIHByb2JsZW0gdG8gemVybyBtb3JlIHRoYW4gYmVmb3JlLikNCj4NCg0K QWdyZWUsIHdpbGwgdXNlIEFsbG9jYXRlWmVyb1BhZ2VzLg0KDQo+DQo+ICgzKSBUaGUgIlVlZmlD cHVQa2cvSW5jbHVkZS9BY3BpQ3B1RGF0YS5oIiBoZWFkZXIgc3RhdGVzIHRoYXQNCj4gQUNQSV9D UFVfREFUQSAodGhlIHN0cnVjdHVyZSBpdHNlbGYpICJtdXN0IGJlIGFsbG9jYXRlZCBiZWxvdyA0 R0IgZnJvbQ0KPiBtZW1vcnkgb2YgdHlwZSBFZmlBQ1BJTWVtb3J5TlZTIi4NCj4NCj4gSWYgd2Ug aGF2ZSBkZXRlcm1pbmVkIHRoYXQgdGhpcyBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LCB0aGVuOg0K PiAtIHdlIHNob3VsZCBmaXJzdCB1cGRhdGUgdGhlIGRvY3VtZW50YXRpb24gaW4gIkFjcGlDcHVE YXRhLmgiIGZpcnN0LA0KPiAtIHRoZSBjb21taXQgbWVzc2FnZSBzaG91bGQgY2FyZWZ1bGx5IGV4 cGxhaW4gd2h5IHRoZSBjaGFuZ2UgaXMgdmFsaWQuDQo+DQoNCkFncmVlLCB3aWxsIGRvIGl0Lg0K DQo+IEluIHBhcnRpY3VsYXIsIG15IGNvbmNlcm4gaXMgbm90IGFib3V0IHRoZSBub3JtYWwgYm9v dCBwYXRoLiAoVGhlIG5vcm1hbCBib290DQo+IHBhdGggaXMgZXhwbGFpbmVkIGZvciBleGFtcGxl IGluIHRoZSBtZXNzYWdlIG9mIGNvbW1pdCA5MmI4N2YxYzhjMGIsDQo+ICJPdm1mUGtnOiBidWls ZCBDcHVTM0RhdGFEeGUgZm9yIC1EIFNNTV9SRVFVSVJFIiwNCj4gMjAxNS0xMS0zMC4pIEkgYWdy ZWUgdGhhdCBjb3B5aW5nIGZyb20gQm9vdFNlcnZpY2VzRGF0YSB0eXBlIG1lbW9yeSBpbnRvDQo+ IFNNUkFNIGlzIGZpbmUsIGR1cmluZyBub3JtYWwgYm9vdC4NCj4NCj4gSW5zdGVhZCwgbXkgY29u Y2VybiBpcyB3aXRoIHRoZSBTMyByZXN1bWUgcGF0aCwgd2hlbiB0aGUgZGF0YSBmcm9tIHRoZQ0K PiBTTVJBTSBidWZmZXIgaXMgKnJlc3RvcmVkKi4gSSBzZWVtIHRvIHJlY2FsbCBhIGNhc2Ugd2hl biB0aGUgZGF0YSB3YXMgZmlyc3QNCj4gcmVzdG9yZWQgZnJvbSBTTVJBTSB0byB0aGUgb3JpZ2lu YWwgQWNwaU5WUyBhbGxvY2F0aW9uLg0KDQpJIHNlYXJjaGVkIHRoZSBjb2RlIGJhc2UgYW5kIG5v dCBmb3VuZCBhbnkgY29kZSBuZWVkcyB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBBY3BpTlZTIG1l bW9yeS4NCg0KPiBJZiB3ZSBtYWtlIHRoYXQNCj4gYXJlYSBCb290U2VydmljZXNEYXRhIG5vdywg dGhlbiB0aGUgT1Mgd2lsbCByZXVzZSBpdCwgYW5kIHRoZW4gYXQNCj4gUzMgcmVzdW1lLCB3ZSBv dmVyd3JpdGUgT1MgZGF0YS4NCj4NCg0KPiAuLi4gQWZ0ZXIgcmV2aWV3aW5nIHRoZSBHZXRBY3Bp Q3B1RGF0YSgpIGZ1bmN0aW9uIGluDQo+ICJVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVMz LmMiLCBJICp0aGluayogdGhpcyBpcyBhIHZhbGlkIGNoYW5nZSwNCj4gYmVjYXVzZSBHZXRBY3Bp Q3B1RGF0YSgpIG5ldmVyIHJlbWVtYmVycyB0aGUgYWRkcmVzcyBvZiB0aGUNCj4gQUNQSV9DUFVf REFUQSBzdHJ1Y3R1cmUsIG9yIHRoZSBhZGRyZXNzZXMgb2YgaXRzIGZpZWxkcy4NCj4NCj4gSG93 ZXZlciwgSSB3b3VsZCBsaWtlIE1pa2UgdG8gcmV2aWV3IHRoaXMgYXMgd2VsbCAoQ0MnaW5nIGhp bSkuDQo+DQo+DQo+ICg0KSBCZWNhdXNlIEFDUElfQ1BVX0RBVEFfRVggY29udGFpbnMgTXRyclRh YmxlLCBHZHRyUHJvZmlsZSBhbmQNCj4gSWR0clByb2ZpbGUgdG9vLCBub3QganVzdCBBQ1BJX0NQ VV9EQVRBLCB0aGUgYWJvdmUgY2hhbmdlIG1vdmVzIGFsbCBvZiB0aG9zZQ0KPiBmaWVsZHMgaW50 byBCb290U2VydmljZXNEYXRhIHR5cGUgbWVtb3J5LiBJbiB0dXJuLCB0aGUNCj4gRUZJX1BIWVNJ Q0FMX0FERFJFU1MgZmllbGRzIGluIEFDUElfQ1BVX0RBVEEgdGhhdCBoYXZlIHRoZSBzYW1lIG5h bWVzDQo+IHdpbGwgcG9pbnQgaW50byBCb290U2VydmljZXNEYXRhIHR5cGUgbWVtb3J5Lg0KPg0K PiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSByZXF1aXJlbWVudHMgdGhhdCBhcmUgZG9jdW1lbnRl ZCBpbg0KPiAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRhLmgiIGZvciBhbGwgdGhyZWUg ZmllbGRzOiBNdHJyVGFibGUsDQo+IEdkdHJQcm9maWxlIGFuZCBJZHRyUHJvZmlsZS4NCj4NCg0K SSB3aWxsIGFkZCBhIHNlcGFyYXRlIHBhdGNoIHRvIHJlbW92ZSB0aGUgbWVtb3J5IHR5cGUgYW5k IGJlbG93IDRHIGxpbWl0YXRpb24gaW4gdGhlIGhlYWRlciBmaWxlLg0KDQo+IElmIHdlIHdhbnQg dG8gY2hhbmdlIHRoZSBhbGxvY2F0aW9uIG9mIHRoZXNlIG9iamVjdHMgKG9mIHR5cGUgTVRSUl9T RVRUSU5HUywNCj4gSUEzMl9ERVNDUklQVE9SIGFuZCBJQTMyX0RFU0NSSVBUT1IsIHJlc3BlY3Rp dmVseSksIHRoZW4gd2Ugc2hvdWxkIGF1ZGl0DQo+IHRoZWlyIHVzZSBkdXJpbmcgUzMgcmVzdW1l IGluIHRoZSBQaVNtbUNwdUR4ZVNtbSBkcml2ZXIsIGFuZCBkb2N1bWVudA0KPiB0aGVtIG9uZS1i eS1vbmUuDQo+DQo+IC4uLiBCYXNlZCBvbiBHZXRBY3BpQ3B1RGF0YSgpIGFnYWluLCBJICp0aGlu ayogdGhpcyBpcyB2YWxpZCBjaGFuZ2UsDQo+IGZ1bmN0aW9uYWxseSBzcGVha2luZywgYnV0IEkn ZCBsaWtlIE1pa2UgdG8gcmV2aWV3IGFzIHdlbGwuDQo+DQo+DQo+ID4gICAgQVNTRVJUIChBY3Bp Q3B1RGF0YUV4ICE9IE5VTEwpOw0KPiA+ICAgIEFjcGlDcHVEYXRhID0gJkFjcGlDcHVEYXRhRXgt PkFjcGlDcHVEYXRhOw0KPiA+DQo+ID4gQEAgLTIxMCwxMSArMTcxLDE2IEBAIENwdVMzRGF0YUlu aXRpYWxpemUgKA0KPiA+ICAgIEFjcGlDcHVEYXRhLT5NdHJyVGFibGUgICAgPQ0KPiAoRUZJX1BI WVNJQ0FMX0FERFJFU1MpKFVJTlROKSZBY3BpQ3B1RGF0YUV4LT5NdHJyVGFibGU7DQo+ID4NCj4g PiAgICAvLw0KPiA+IC0gIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciBhbGwgQ1BVcw0KPiA+ ICsgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciBhbGwgQ1BVcywgdXNlIEFDUEkgTlZTIG1l bW9yeSB0eXBlDQo+ID4gKyBiZWNhdXNlIGl0IHdpbGwgIC8vIG5vdCBjb3B5IHRvIHNtcmFtIGF0 IFNtbSByZWFkeSB0byBsb2NrIHBvaW50Lg0KPiA+ICAgIC8vDQo+ID4gLSAgU3RhY2sgPSBBbGxv Y2F0ZUFjcGlOdnNNZW1vcnlCZWxvdzRHIChOdW1iZXJPZkNwdXMgKg0KPiA+IEFjcGlDcHVEYXRh LT5TdGFja1NpemUpOw0KPiA+IC0gIEFTU0VSVCAoU3RhY2sgIT0gTlVMTCk7DQo+ID4gLSAgQWNw aUNwdURhdGEtPlN0YWNrQWRkcmVzcyA9IChFRklfUEhZU0lDQUxfQUREUkVTUykoVUlOVE4pU3Rh Y2s7DQo+ID4gKyAgU3RhdHVzICA9IGdCUy0+QWxsb2NhdGVQYWdlcyAoDQo+ID4gKyAgICAgICAg ICAgICAgICAgICBBbGxvY2F0ZUFueVBhZ2VzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgRWZp QUNQSU1lbW9yeU5WUywNCj4gPiArICAgICAgICAgICAgICAgICAgIEVGSV9TSVpFX1RPX1BBR0VT IChOdW1iZXJPZkNwdXMgKiBBY3BpQ3B1RGF0YS0NCj4gPlN0YWNrU2l6ZSksDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAmQWNwaUNwdURhdGEtPlN0YWNrQWRkcmVzcw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgKTsNCj4gPiArICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPg0KPiAoNSkg VGhlIGxlYWRpbmcgY29tbWVudCBzaG91bGQgYmUgY2xhcmlmaWVkLiBXZSBzaG91bGQgc3RhdGUg dGhhdCBkdXJpbmcNCj4gUzMgcmVzdW1lLCB0aGUgc3RhY2sgd2lsbCBvbmx5IGJlIHVzZWQgYXMg c2NyYXRjaCBzcGFjZSwgaS5lLiB3ZSB3b24ndCByZWFkDQo+IGFueXRoaW5nIGZyb20gaXQgYmVm b3JlIHdlIHdyaXRlIHRvIGl0LCBpbiBQaVNtbUNwdUR4ZVNlbW0uDQo+IE90aGVyd2lzZSwgaXQg d291bGQgYmUgYSBzZWN1cml0eSBidWcgdG8ga2VlcCB0aGUgYXJlYSBpbiBBY3BpTlZTIGFuZCBu b3QgaW4NCj4gU01SQU0uDQoNCkFncmVlLCB3aWxsIHVwZGF0ZSB0aGUgY29tbWVudHMuDQoNCj4N Cj4NCj4gKDYpIFRoaXMgY2hhbmdlIHJlcXVpcmVzIGEgc2VwYXJhdGUgaW52ZXN0aWdhdGlvbiBm cm9tIHRoZSByZXN0IG9mIHRoZSBwYXRjaCwNCj4gc28gaXQgc2hvdWxkIGJlIGluIGEgc2VwYXJh dGUgcGF0Y2guDQo+DQo+IFRoYXQgaW1wbGllcyB3ZSBzaG91bGQgZmlyc3QgY2hhbmdlIHRoaXMg Y2FsbCBzaXRlLCBhbmQgdGhlbiByZW1vdmUNCj4gQWxsb2NhdGVBY3BpTnZzTWVtb3J5QmVsb3c0 RygpIGluIGEgZmluYWwgcGF0Y2guDQoNCkFncmVlLCB3aWxsIGNyZWF0ZSBhIHNlcGFyYXRlIHBh dGNoIGZvciB0aGlzIGlzc3VlLg0KDQo+DQo+DQo+ICg3KSBXaHkgaXMgaXQgT0sgdG8gbGlmdCB0 aGUgNEdCIGxpbWl0YXRpb24/IC4uLiBJIHRoaW5rIGl0IG1heSBiZSB2YWxpZCBpbmRlZWQsDQo+ IGJlY2F1c2UgUHJlcGFyZUFwU3RhcnR1cFZlY3RvcigpIHN0b3JlcyBTdGFja0FkZHJlc3MgdG8g Im1FeGNoYW5nZUluZm8tDQo+ID5TdGFja1N0YXJ0IiAod2hpY2ggaGFzIHR5cGUgKFZPSUQqKSks IGFuZCBiZWNhdXNlDQo+ICJVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2NC9NcEZ1bmNzLm5h c20iIHJlYWRzIHRoZSBsYXR0ZXIgd2l0aDoNCj4NCj4gICAgICAgICBhZGQgIGVkaSwgU3RhY2tT dGFydEFkZHJlc3NMb2NhdGlvbg0KPiAgICAgICAgIGFkZCAgcmF4LCBxd29yZCBbZWRpXQ0KPiAg ICAgICAgIG1vdiAgcnNwLCByYXgNCj4gICAgICAgICBtb3YgIHF3b3JkIFtlZGldLCByYXgNCj4N Cj4gaW4gbG9uZy1tb2RlIGNvZGUuIEJ1dCwgYWdhaW4sIHRoaXMgc2hvdWxkIGJlIGRvY3VtZW50 ZWQgaW4gdGhlDQo+IChzZXBhcmF0ZSkgcGF0Y2gncyBjb21taXQgbWVzc2FnZS4NCj4NCj4NCj4g KDgpIFRoZSBjaGFuZ2UgYnJlYWtzIHRoZSBkb2N1bWVudGF0aW9uIG9uICJBQ1BJX0NQVV9EQVRB LlN0YWNrQWRkcmVzcyIsDQo+IGluICJVZWZpQ3B1UGtnL0luY2x1ZGUvQWNwaUNwdURhdGEuaCIu IFRoZSBkb2N1bWVudGF0aW9uIHNob3VsZCBiZQ0KPiB1cGRhdGVkLg0KPg0KPg0KPiA+DQo+ID4g ICAgLy8NCj4gPiAgICAvLyBHZXQgdGhlIGJvb3QgcHJvY2Vzc29yJ3MgR0RUIGFuZCBJRFQgQEAg LTIyNyw3ICsxOTMsNyBAQA0KPiA+IENwdVMzRGF0YUluaXRpYWxpemUgKA0KPiA+ICAgIC8vDQo+ ID4gICAgR2R0U2l6ZSA9IEFjcGlDcHVEYXRhRXgtPkdkdHJQcm9maWxlLkxpbWl0ICsgMTsNCj4g PiAgICBJZHRTaXplID0gQWNwaUNwdURhdGFFeC0+SWR0clByb2ZpbGUuTGltaXQgKyAxOw0KPiA+ IC0gIEdkdCA9IEFsbG9jYXRlQWNwaU52c01lbW9yeUJlbG93NEcgKEdkdFNpemUgKyBJZHRTaXpl KTsNCj4gPiArICBHZHQgPSBBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdFUyAoR2R0U2l6 ZSArIElkdFNpemUpKTsNCj4gPiAgICBBU1NFUlQgKEdkdCAhPSBOVUxMKTsNCj4gPiAgICBJZHQg PSAoVk9JRCAqKSgoVUlOVE4pR2R0ICsgR2R0U2l6ZSk7DQo+ID4gICAgQ29weU1lbSAoR2R0LCAo Vk9JRCAqKUFjcGlDcHVEYXRhRXgtPkdkdHJQcm9maWxlLkJhc2UsIEdkdFNpemUpOw0KPg0KPiAo OSkgVGhpcyBjaGFuZ2UgYnJlYWtzIHRoZSByZXF1aXJlbWVudHMgaW4NCj4gIlVlZmlDcHVQa2cv SW5jbHVkZS9BY3BpQ3B1RGF0YS5oIiB0aGF0IGJvdGggIkFDUElfQ1BVX0RBVEEuR2R0clByb2Zp bGUtDQo+ID5CYXNlIiBhbmQgIkFDUElfQ1BVX0RBVEEuSWR0clByb2ZpbGUtPkJhc2UiDQo+IHBv aW50IGludG8gQWNwaU5WUyBkYXRhLg0KPg0KPiAoIlRoZSBidWZmZXIgZm9yIEdEVCBtdXN0IGFs c28gYmUgYWxsb2NhdGVkIGJlbG93IDRHQiBmcm9tIG1lbW9yeSBvZiB0eXBlDQo+IEVmaUFDUElN ZW1vcnlOVlMiIC8gIlRoZSBidWZmZXIgZm9yIElEVCBtdXN0IGFsc28gYmUgYWxsb2NhdGVkIGJl bG93IDRHQg0KPiBmcm9tIG1lbW9yeSBvZiB0eXBlIEVmaUFDUElNZW1vcnlOVlMiLikNCj4NCj4N Cj4gKDEwKSBBbmQsIGluZGVlZCwgdGhpcyBpcyB0aGUgYnVnIHRoYXQgSSBzdXNwZWN0ZWQgaW4g cG9pbnQgKDMpLCB3aXRoIHJlZ2FyZCB0bw0KPiB0aGUgUzMgcmVzdW1lIHBhdGguIE5hbWVseToN Cj4NCj4NCj4gUGxlYXNlIGNvbnNpZGVyIHRoZSBHZXRBY3BpQ3B1RGF0YSgpIGZ1bmN0aW9uIGlu DQo+ICJVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0NwdVMzLmMiLiBUaGlzIGZ1bmN0aW9uOg0K Pg0KPiAoMTBhKSBjb3BpZXMgdGhlIElEVCBhbmQgR0RUICpkZXNjcmlwdG9ycyogaW50byBkeW5h bWljYWxseSBhbGxvY2F0ZWQNCj4gU01SQU0sIHBvaW50ZWQtdG8gYnkgdGhlICJtQWNwaUNwdURh dGEuR2R0clByb2ZpbGUiIGFuZA0KPiAibUFjcGlDcHVEYXRhLklkdHJQcm9maWxlIiBmaWVsZHM7 DQo+DQo+ICgxMGIpIGNvcGllcyB0aGUgSURUIGFuZCBHRFQgdGhlbXNlbHZlcyBpbnRvIGR5bmFt aWNhbGx5IGFsbG9jYXRlZCBTTVJBTSwNCj4gcG9pbnRlZC10byBieSB0aGUgIm1HZHRGb3JBcCIg YW5kICJtSWR0Rm9yQXAiIGdsb2JhbCB2YXJpYWJsZXMsDQo+DQo+ICgxMGMpICpkb2VzIG5vdCog dXBkYXRlIHRoZSAiQmFzZSIgbWVtYmVycyBvZiB0aGUgSURUIGFuZCBHRFQgZGVzY3JpcHRvcnMN Cj4gdGhhdCBhcmUgc2F2ZWQgaW4gU01SQU0gaW4gc3RlcCAoMTBhKS4gVGhvc2UgY29udGludWUg dG8gcG9pbnQgdG8gbWVtb3J5DQo+IHRoYXQgd2FzIGFsbG9jYXRlZCBieSBDcHVTM0RhdGFEeGUg aW4gdGhlDQo+IENwdVMzRGF0YUluaXRpYWxpemUoKSBmdW5jdGlvbi4NCg0KQWdyZWUgdGhpcyBp cyBhIGJ1Zywgd2lsbCBjcmVhdGUgYSBzZXBhcmF0ZSBwYXRjaCB0byBmaXggdGhpcyBpc3N1ZS4N Cg0KPg0KPg0KPiBOb3csIGNvbnNpZGVyIHRoZSBQcmVwYXJlQXBTdGFydHVwVmVjdG9yKCkgZnVu Y3Rpb24gaW4NCj4gIlVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vQ3B1UzMuYyIsIHdoaWNoIHJ1 bnMgZHVyaW5nIFMzIHJlc3VtZS4NCj4gVGhhdA0KPiBmdW5jdGlvbjoNCj4NCj4gKDEwZCkgY29w aWVzIHRoZSBJRFQgYW5kIEdEVCBkZXNjcmlwdG9ycyB0aGF0IHdlcmUgc2F2ZWQgaW4gKDEwYSkg aW50bw0KPiAibUV4Y2hhbmdlSW5mbyIgLS0gdGhpcyBpcyBqdXN0IGFuIFNNUkFNLXRvLVNNUkFN IGNvcHksIGhvd2V2ZXIgdGhlIEJhc2UNCj4gbWVtYmVycyBvZiB0aGUgZGVzY3JpcHRvcnMgcG9p bnQgdG8gdGhlIG9yaWdpbmFsIENwdVMzRGF0YUR4ZSBhbGxvY2F0aW9uLA0KPg0KPiAoMTBlKSB0 aGUgSURUIGFuZCB0aGUgR0RUIGFyZSB0aGVtc2VsdmVzIHJlc3RvcmVkIGZyb20gc3RlcCAoMTBi KSwgaS5lLg0KPiBmcm9tIHRoZSAibUdkdEZvckFwIiBhbmQgIm1JZHRGb3JBcCIgU01SQU0gZ2xv YmFsIHZhcmlhYmxlcywgdG8gdGhlDQo+IG9yaWdpbmFsIENwdVMzRGF0YUR4ZSBhbGxvY2F0aW9u IGFkZHJlc3MuIFRoZSBjb21tZW50IHNheXM6DQo+DQo+ID4gICAvLw0KPiA+ICAgLy8gQ29weSBB UCdzIEdEVCwgSURUIGFuZCBNYWNoaW5lIENoZWNrIGhhbmRsZXIgZnJvbSBTTVJBTSB0byBBQ1BJ DQo+IE5WUyBtZW1vcnkNCj4gPiAgIC8vDQo+DQo+IEluIG90aGVyIHdvcmRzLCB3aGlsZSB0aGUg SURUIGFuZCBHRFQgKmRlc2NyaXB0b3JzKiBhcmVuJ3QgcmVzdG9yZWQgaW4tcGxhY2UsDQo+IHRo ZSBJRFQgYW5kIEdEVCB0aGVtc2VsdmVzIGFyZS4NCj4NCj4gVGhpcyBtZWFucyB0aGF0IHRoZSBh Ym92ZSBjb2RlIGNoYW5nZSBjYXVzZXMgUGlTbW1DcHVEeGVTbW0gdG8NCj4gb3ZlcndyaXRlIE9T IG1lbW9yeSBhdCBTMyByZXN1bWUuDQo+DQo+DQo+IENvbnRpbnVpbmc6DQo+DQo+IE9uIDA4LzA4 LzE4IDA5OjQwLCBFcmljIERvbmcgd3JvdGU6DQo+ID4gQEAgLTI0Myw3ICsyMDksNyBAQCBDcHVT M0RhdGFJbml0aWFsaXplICgNCj4gPiAgICAgIC8vIEFsbG9jYXRlIGJ1ZmZlciBmb3IgZW1wdHkg UmVnaXN0ZXJUYWJsZSBhbmQgUHJlU21tSW5pdFJlZ2lzdGVyVGFibGUNCj4gZm9yIGFsbCBDUFVz DQo+ID4gICAgICAvLw0KPiA+ICAgICAgVGFibGVTaXplID0gMiAqIE51bWJlck9mQ3B1cyAqIHNp emVvZiAoQ1BVX1JFR0lTVEVSX1RBQkxFKTsNCj4gPiAtICAgIFJlZ2lzdGVyVGFibGUgPSAoQ1BV X1JFR0lTVEVSX1RBQkxFDQo+ICopQWxsb2NhdGVBY3BpTnZzTWVtb3J5QmVsb3c0RyAoVGFibGVT aXplKTsNCj4gPiArICAgIFJlZ2lzdGVyVGFibGUgPSBBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9U T19QQUdFUyAoVGFibGVTaXplKSk7DQo+ID4gICAgICBBU1NFUlQgKFJlZ2lzdGVyVGFibGUgIT0g TlVMTCk7DQo+ID4NCj4gPiAgICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE51bWJlck9mQ3B1 czsgSW5kZXgrKykgew0KPg0KPiAoMTEpIFRoaXMgbG9va3MgdmFsaWQsIGJleW9uZCBicmVha2lu ZyB0aGUgZG9jdW1lbnRhdGlvbiBpbg0KPiAiVWVmaUNwdVBrZy9JbmNsdWRlL0FjcGlDcHVEYXRh LmgiLCBvZiB0aGUgbWVtYmVycw0KPiAiUHJlU21tSW5pdFJlZ2lzdGVyVGFibGUiIGFuZCAiUmVn aXN0ZXJUYWJsZSIuDQo+DQo+DQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvQ3B1UzNEYXRh RHhlL0NwdVMzRGF0YUR4ZS5pbmYNCj4gPiBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMz RGF0YUR4ZS5pbmYNCj4gPiBpbmRleCA0ODBjOThlYmNkLi5jMTY3MzE1MjljIDEwMDY0NA0KPiA+ IC0tLSBhL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMzRGF0YUR4ZS5pbmYNCj4gPiArKysg Yi9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGFEeGUuaW5mDQo+ID4gQEAgLTUxLDYg KzUxLDcgQEANCj4gPiAgICBEZWJ1Z0xpYg0KPiA+ICAgIEJhc2VMaWINCj4gPiAgICBNdHJyTGli DQo+ID4gKyAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+DQo+ID4gIFtHdWlkc10NCj4gPiAgICBn RWZpRW5kT2ZEeGVFdmVudEdyb3VwR3VpZCAgICAgICAgICMjIENPTlNVTUVTICAgIyMgRXZlbnQN Cj4gPg0KPg0KPiBJIGZlZWwgdW5jb21mb3J0YWJsZSBhYm91dCB0aGlzIHBhdGNoLiBJdCBpcyB2 ZXJ5IHRyaWNreSB0byByZXZpZXcsIGFuZCBpZiB3ZQ0KPiBtYWtlIG1pc3Rha2VzLCB3ZSBjb3Vs ZCBjb3JydXB0IE9TIGRhdGEsIG9yICh3b3JzZSkgcGVyaGFwcyBldmVuDQo+IGNvbXByb21pc2Ug U01SQU0uDQo+DQo+IEFuZCwgYWxsIHRoZSBnYWlucyB0aGF0IEkgY2FuIGltYWdpbmUgYXJlLCAi c2F2ZSBhIGZldyAzMi1iaXQgQWNwaU5WUyBwYWdlcyIuIEkNCj4gaGF2ZW4ndCBtZWFzdXJlZCwg YnV0IGl0IGRvZXNuJ3QgbG9vayBsaWtlIGFuIGF0dHJhY3RpdmUgdHJhZGUtb2ZmIHRvIG1lLiBB bmQsDQo+IHBsYXRmb3JtcyB0aGF0IGRpc2FibGUgUzMgdmlhICJQY2RBY3BpUzNFbmFibGUiDQo+ IGRvbid0IGFsbG9jYXRlIHRoaXMgbWVtb3J5IGFueXdheS4NCj4NCj4gRnVydGhlcm1vcmUsIHRo ZSBtZW1vcnkgZm9vdHByaW50IG9wdGltaXphdGlvbiBkb2VzIG5vdCBzZWVtIHJlbGF0ZWQgdG8g dGhlDQo+IENwdVMzRGF0YUR4ZSAvIER4ZVJlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIgZGVwZW5kZW5j eSBpc3N1ZSB0aGF0IE1hcnZpbg0KPiByZXBvcnRlZCAoYW5kIHRoYXQgaXMgdHJhY2tlZCBpbiBi dWcgIzk1OSkuDQo+DQo+IEkgc3VnZ2VzdCB0aGF0IHdlIGRyb3AgdGhpcyBwYXRjaC4NCg0KV2Ug aGF2ZSByZWFjaCB0aGUgYWdyZWVtZW50IHRoYXQgdGhpcyBpcyBhICJOb3QgYSBjb3JyZWN0bHkg dXNlZCIgY29kZSBidWcsIGFuZCBpdCBpcyBjYXVzZWQgYnkgbm90IGRvIHRoZSByZWxhdGVkIGNv ZGUgY2xlYW4gd2hlbiBlbmFibGUgbmV3IGZlYXR1cmVzLiAgU28gSSBwcmVmZXIgdG8gZG8gdGhp cyBjbGVhbiB1cCB0byBtYWtlIGNvZGUgbW9yZSBjbGVhbi4NCg0KPg0KPiBUaGFua3MsDQo+IExh c3psbw0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBo dHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRldmVsIG1haWxp bmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCmh0dHBzOi8vbGlzdHMuMDEub3JnL21h aWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCmVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQplZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRl dmVsDQo=