From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 3F4FB21B02822 for ; Wed, 12 Sep 2018 08:43:09 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Sep 2018 08:43:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,365,1531810800"; d="scan'208";a="70318733" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga008.fm.intel.com with ESMTP; 12 Sep 2018 08:42:05 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Sep 2018 08:42:05 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Sep 2018 08:42:05 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.205]) with mapi id 14.03.0319.002; Wed, 12 Sep 2018 23:42:03 +0800 From: "Gao, Liming" To: Laszlo Ersek CC: "edk2-devel@lists.01.org" , "Yao, Jiewen" , "Dong, Eric" , "Kinney, Michael D" , "Leif Lindholm (Linaro address)" , Ard Biesheuvel , Andrew Fish , "Cetola, Stephano" Thread-Topic: [edk2] [Patch] UefiCpuPkg PiSmmCpuDxeSmm: Update SmiEntry function run the same position Thread-Index: AQHUSleqlDA3wq+4skWHF+7ZTG6wjKTsHNGAgACjmxA= Date: Wed, 12 Sep 2018 15:42:02 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E2F66CA@SHSMSX104.ccr.corp.intel.com> References: <1536729218-8884-1-git-send-email-liming.gao@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMGNjMTBmYTktOTA4Ny00YTgwLTllZTItM2Y4OWYzYjZiZDhmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiWm9YTTFGNkk2Y2x2czd2dmNxNzBpemx5TWQ1Q0U1aXFJSWlaWTN2WUcrcmZiMVdraVgrNkY4TEZNcngxXC9KM3oifQ== dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch] UefiCpuPkg PiSmmCpuDxeSmm: Update SmiEntry function run the same position X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Sep 2018 15:43:10 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvOg0KICBCZWZvcmUgY29tbWl0IGUyMWUzNTVlMmNhN2ZlZmIxNWI0ZGY3MDc4Zjk5NWQz ZmI5YzJiODksIGptcCBfU21pSGFuZGxlciBpcyBjb21tZW50ZWQuIEFuZCBiZWxvdyBjb2RlLCBB U01fUEZYKENwdVNtbURlYnVnRW50cnkpIGlzIG1vdmVkIGludG8gcmF4LCB0aGVuIGNhbGwgaXQu IEJ1dCwgdGhpcyBjb2RlIGRvZXNuJ3Qgd29yayBpbiBYQ09ERTUgdG9vbCBjaGFpbi4gTGlrZSB5 b3Ugc2F5LCBYQ09ERTUgZG9lc24ndCBnZW5lcmF0ZWQgdGhlIGFic29sdXRlIGFkZHJlc3MgaW4g dGhlIEVGSSBpbWFnZS4gU28sIHJheCBzdG9yZXMgdGhlIHJlbGF0aXZlIGFkZHJlc3MuIE9uY2Ug dGhpcyBsb2dpYyBpcyBtb3ZlZCB0byBhbm90aGVyIHBsYWNlLCBpdCB3aWxsIG5vdCB3b3JrLiAN CjsgICBqbXAgICAgIF9TbWlIYW5kbGVyICAgICAgICAgICAgICAgICA7IGluc3RydWN0aW9uIGlz IG5vdCBuZWVkZWQNCi4uLg0KICAgIG1vdiAgICAgcmF4LCBBU01fUEZYKENwdVNtbURlYnVnRW50 cnkpDQogICAgY2FsbCAgICByYXgNCg0KIENvbW1pdCBlMjFlMzU1ZTJjYTdmZWZiMTViNGRmNzA3 OGY5OTVkM2ZiOWMyYjg5IGlzIHRvIHN1cHBvcnQgWENPREU1LiBJIGNob29zZSBvbmUgdHJpY2t5 IHdheSB0byBmaXggaXQuIEFsdGhvdWdoIFNtaUVudHJ5IGxvZ2ljIGlzIGNvcGllZCB0byBhbm90 aGVyIHBsYWNlIGFuZCBydW4sIGJ1dCBoZXJlIEkgZW5hYmxlIGptcCBfU21pSGFuZGxlciB0byBq bXAgdGhlIG9yaWdpbmFsIGNvZGUgbG9jYXRpb24sIHRoZW4gY2FsbCBBU01fUEZYKENwdVNtbURl YnVnRW50cnkpIHdpdGggdGhlIHJlbGF0aXZlIGFkZHJlc3MgY2FuIHdvcmsuDQogICAgbW92ICAg ICByYXgsIHN0cmljdCBxd29yZCAwICAgICAgICAgOyAgIG1vdiAgICAgcmF4LCBfU21pSGFuZGxl cg0KX1NtaUhhbmRsZXJBYnNBZGRyOg0KICAgIGptcCAgICAgcmF4DQouLi4NCiAgICBjYWxsICAg IEFTTV9QRlgoQ3B1U21tRGVidWdFbnRyeSkNCg0KICBUb2RheSwgSmlld2VuIHJhaXNlcyB0aGUg aXNzdWUgdGhhdCBTbWlIYW5kbGVyIHNob3VsZCBydW4gaW4gdGhlIGNvcGllZCBhZGRyZXNzLCBj YW4ndCBydW4gaW4gdGhlIGNvbW1vbiBhZGRyZXNzLiBTbywgSSB1cGRhdGUgaXRzIGxvZ2ljIGFu ZCByZW1vdmUgam1wIF9TbWlIYW5kbGVyLCB0aGVuIGtlZXAgY29kZSBjb250aW51ZSBydW4gaW4g Y29waWVkIGFkZHJlc3MuIEJ1dCwgSSBzdGlsbCBuZWVkIHRvIGZpeCB1cCBDcHVTbW1EZWJ1Z0Vu dHJ5IGFkZHJlc3MgdG8gdGhlIGFic29sdXRlIGFkZHJlc3MuIFRoZXkgYXJlIGJvdGggZm9yIHRo aXMgaXNzdWUuIFRoZXkgY2FuJ3QgYmUgc2VwYXJhdGVkLiANCg0KLi4uDQogICAgbW92ICAgICBy YXgsIHN0cmljdCBxd29yZCAwICAgICAgICAgOyAgIGNhbGwgICAgQVNNX1BGWChDcHVTbW1EZWJ1 Z0VudHJ5KQ0KQ3B1U21tRGVidWdFbnRyeUFic0FkZHI6DQogICAgY2FsbCAgICByYXgNCg0KVGhh bmtzDQpMaW1pbmcNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFzemxv IEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgU2Vw dGVtYmVyIDEyLCAyMDE4IDk6MjQgUE0NCj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGlu dGVsLmNvbT4NCj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgS2lu bmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTGVpZiBMaW5k aG9sbSAoTGluYXJvIGFkZHJlc3MpIDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+OyBBcmQgQmll c2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47DQo+IEFuZHJldyBGaXNoIDxhZmlz aEBhcHBsZS5jb20+OyBDZXRvbGEsIFN0ZXBoYW5vIDxzdGVwaGFuby5jZXRvbGFAaW50ZWwuY29t Pg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQYXRjaF0gVWVmaUNwdVBrZyBQaVNtbUNwdUR4ZVNt bTogVXBkYXRlIFNtaUVudHJ5IGZ1bmN0aW9uIHJ1biB0aGUgc2FtZSBwb3NpdGlvbg0KPiANCj4g T24gMDkvMTIvMTggMDc6MTMsIExpbWluZyBHYW8gd3JvdGU6DQo+ID4gMS4gUmVtb3ZlIGptcCBf U21pSGFuZGxlciwgYW5kIHJ1biB0aGUgY29kZSBhdCB0aGUgc2FtZSBwb3NpdGlvbi4NCj4gPiAy LiBGaXggdXAgdGhlIGZ1bmN0aW9uIGNhbGwgYWRkcmVzcyBhcyB0aGUgYWJzb2x1dGUgYWRkcmVz cy4NCj4gPiBWZXJpZnkgT1ZNRiBTTU0gYm9vdCB0byBzaGVsbCB3aXRoIFZTMjAxNywgR0NDNSBh bmQgWENPREU1IHRvb2wgY2hhaW4uDQo+ID4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9D b3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTogTGltaW5n IEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+DQo+ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4g PiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIFVl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtaUVudHJ5Lm5hc20gfCAzNCArKysrKysrKysr KysrKysrKysrKystLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1g2NC9TbWlFbnRyeS5uYXNtIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Y NjQvU21pRW50cnkubmFzbQ0KPiA+IGluZGV4IDMxNWQwZjguLmQ4MjU5ZGUgMTAwNjQ0DQo+ID4g LS0tIGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9YNjQvU21pRW50cnkubmFzbQ0KPiA+ICsr KyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtaUVudHJ5Lm5hc20NCj4gPiBAQCAt MTczLDkgKzE3Myw2IEBAIFNtaUhhbmRsZXJJZHRyQWJzQWRkcjoNCj4gPiAgICAgIG1vdiAgICAg Z3MsIGVheA0KPiA+ICAgICAgbW92ICAgICBheCwgW3JieCArIERTQ19TU10NCj4gPiAgICAgIG1v diAgICAgc3MsIGVheA0KPiA+IC0gICAgbW92ICAgICByYXgsIHN0cmljdCBxd29yZCAwICAgICAg ICAgOyAgIG1vdiAgICAgcmF4LCBfU21pSGFuZGxlcg0KPiA+IC1fU21pSGFuZGxlckFic0FkZHI6 DQo+ID4gLSAgICBqbXAgICAgIHJheA0KPiA+DQo+ID4gIF9TbWlIYW5kbGVyOg0KPiA+ICAgICAg bW92ICAgICByYngsIFtyc3AgKyAweDhdICAgICAgICAgICAgIDsgcmN4IDwtIENwdUluZGV4DQo+ ID4gQEAgLTE4OSwxMyArMTg2LDE5IEBAIF9TbWlIYW5kbGVyOg0KPiA+ICAgICAgYWRkICAgICBy c3AsIC0weDIwDQo+ID4NCj4gPiAgICAgIG1vdiAgICAgcmN4LCByYngNCj4gPiAtICAgIGNhbGwg ICAgQVNNX1BGWChDcHVTbW1EZWJ1Z0VudHJ5KQ0KPiA+ICsgICAgbW92ICAgICByYXgsIHN0cmlj dCBxd29yZCAwICAgICAgICAgOyAgIGNhbGwgICAgQVNNX1BGWChDcHVTbW1EZWJ1Z0VudHJ5KQ0K PiA+ICtDcHVTbW1EZWJ1Z0VudHJ5QWJzQWRkcjoNCj4gPiArICAgIGNhbGwgICAgcmF4DQo+ID4N Cj4gPiAgICAgIG1vdiAgICAgcmN4LCByYngNCj4gPiAtICAgIGNhbGwgICAgQVNNX1BGWChTbWlS ZW5kZXp2b3VzKQ0KPiA+ICsgICAgbW92ICAgICByYXgsIHN0cmljdCBxd29yZCAwICAgICAgICAg OyAgIGNhbGwgICAgQVNNX1BGWChTbWlSZW5kZXp2b3VzKQ0KPiA+ICtTbWlSZW5kZXp2b3VzQWJz QWRkcjoNCj4gPiArICAgIGNhbGwgICAgcmF4DQo+ID4NCj4gPiAgICAgIG1vdiAgICAgcmN4LCBy YngNCj4gPiAtICAgIGNhbGwgICAgQVNNX1BGWChDcHVTbW1EZWJ1Z0V4aXQpDQo+ID4gKyAgICBt b3YgICAgIHJheCwgc3RyaWN0IHF3b3JkIDAgICAgICAgICA7ICAgY2FsbCAgICBBU01fUEZYKENw dVNtbURlYnVnRXhpdCkNCj4gPiArQ3B1U21tRGVidWdFeGl0QWJzQWRkcjoNCj4gPiArICAgIGNh bGwgICAgcmF4DQo+ID4NCj4gPiAgICAgIGFkZCAgICAgcnNwLCAweDIwDQo+ID4NCj4gPiBAQCAt MjA2LDcgKzIwOSw4IEBAIF9TbWlIYW5kbGVyOg0KPiA+DQo+ID4gICAgICBhZGQgICAgIHJzcCwg MHgyMDANCj4gPg0KPiA+IC0gICAgbGVhICAgICByYXgsIFtBU01fUEZYKG1YZFN1cHBvcnRlZCld DQo+ID4gKyAgICBtb3YgICAgIHJheCwgc3RyaWN0IHF3b3JkIDAgICAgICAgICA7ICAgICAgIGxl YSAgICAgcmF4LCBbQVNNX1BGWChtWGRTdXBwb3J0ZWQpXQ0KPiA+ICttWGRTdXBwb3J0ZWRBYnNB ZGRyOg0KPiA+ICAgICAgbW92ICAgICBhbCwgW3JheF0NCj4gPiAgICAgIGNtcCAgICAgYWwsIDAN Cj4gPiAgICAgIGp6ICAgICAgLjENCj4gPiBAQCAtMjMwLDcgKzIzNCwxOSBAQCBBU01fUEZYKFBp U21tQ3B1U21pRW50cnlGaXh1cEFkZHJlc3MpOg0KPiA+ICAgICAgbGVhICAgIHJjeCwgW1NtaUhh bmRsZXJJZHRyQWJzQWRkcl0NCj4gPiAgICAgIG1vdiAgICBxd29yZCBbcmN4IC0gOF0sIHJheA0K PiA+DQo+ID4gLSAgICBsZWEgICAgcmF4LCBbX1NtaUhhbmRsZXJdDQo+ID4gLSAgICBsZWEgICAg cmN4LCBbX1NtaUhhbmRsZXJBYnNBZGRyXQ0KPiA+ICsgICAgbGVhICAgIHJheCwgW0FTTV9QRlgo Q3B1U21tRGVidWdFbnRyeSldDQo+ID4gKyAgICBsZWEgICAgcmN4LCBbQ3B1U21tRGVidWdFbnRy eUFic0FkZHJdDQo+ID4gKyAgICBtb3YgICAgcXdvcmQgW3JjeCAtIDhdLCByYXgNCj4gPiArDQo+ ID4gKyAgICBsZWEgICAgcmF4LCBbQVNNX1BGWChTbWlSZW5kZXp2b3VzKV0NCj4gPiArICAgIGxl YSAgICByY3gsIFtTbWlSZW5kZXp2b3VzQWJzQWRkcl0NCj4gPiArICAgIG1vdiAgICBxd29yZCBb cmN4IC0gOF0sIHJheA0KPiA+ICsNCj4gPiArICAgIGxlYSAgICByYXgsIFtBU01fUEZYKENwdVNt bURlYnVnRXhpdCldDQo+ID4gKyAgICBsZWEgICAgcmN4LCBbQ3B1U21tRGVidWdFeGl0QWJzQWRk cl0NCj4gPiArICAgIG1vdiAgICBxd29yZCBbcmN4IC0gOF0sIHJheA0KPiA+ICsNCj4gPiArICAg IGxlYSAgICByYXgsIFtBU01fUEZYKG1YZFN1cHBvcnRlZCldDQo+ID4gKyAgICBsZWEgICAgcmN4 LCBbbVhkU3VwcG9ydGVkQWJzQWRkcl0NCj4gPiAgICAgIG1vdiAgICBxd29yZCBbcmN4IC0gOF0s IHJheA0KPiA+ICAgICAgcmV0DQo+ID4NCj4gDQo+IChhKSBUaGUgcGF0Y2ggc2VlbXMgdG8gZG8g dHdvIHRoaW5ncyAobGlzdGVkIGFzICgxKSBhbmQgKDIpIGluIHRoZQ0KPiBjb21taXQgbWVzc2Fn ZSkuIFRoZXkgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIHNlcGFyYXRlIHBhdGNoZXMsIGluIGEN Cj4gc2VyaWVzLg0KPiANCj4gDQo+IChiKSBSZWdhcmRpbmcgcGFydCAoMSk6IHdoeSBkaWQgImpt cCBfU21pSGFuZGxlciIgZXhpc3QgaW4gdGhlIGZpcnN0IHBsYWNlPw0KPiANCj4gVGhhdCBqdW1w IGluc3RydWN0aW9uIHdhcyBvcmlnaW5hbGx5IGFkZGVkIGluIGNvbW1pdCA5YTM2ZDRkYzNmNWU6 DQo+IA0KPiAgICAgIlVlZmlDcHVQa2cgUGlTbW1DcHVEeGVTbW06IENvbnZlcnQgWDY0L1NtaUVu dHJ5LmFzbSB0byBOQVNNIiwNCj4gICAgICAyMDE2LTA2LTI4DQo+IA0KPiB3aXRoIHRoZSBjb21t ZW50DQo+IA0KPiAgICAgImluc3RydWN0aW9uIGlzIG5vdCBuZWVkZWQiLg0KPiANCj4gSWYgaXQg d2FzIG5vdCBuZWVkZWQsIHRoZW4gd2h5IGhhZCB3ZSBhZGRlZCBpdD8NCj4gDQo+IEZvciB0aGF0 LCBsZXQncyBsb29rIGF0ICJVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2NC9TbWlFbnRyeS5h c20iDQo+IGluc3RlYWQgKHRoYXQgaXMsIHRoZSBwcmUtTkFTTSBmaWxlIGZyb20gd2hpY2ggdGhl IE5BU00gdmVyc2lvbiB3YXMNCj4gY3JlYXRlZCkuIEluIHRoYXQgZmlsZSwgdGhlIHNhbWUgY29t bWVudCB3YXMgaW50cm9kdWNlZCBhcyBwYXJ0IG9mDQo+IGNvbW1pdCA0MjdlMzU3MzQyNmY6DQo+ IA0KPiAgICAgIlVlZmlDcHVQa2c6IEFkZCBQaVNtbUNwdUR4ZVNtbSBtb2R1bGUgWDY0IGZpbGVz IiwgMjAxNS0xMC0xOQ0KPiANCj4gVGhhdCBtZWFucyB0aGF0IHdlJ3ZlIGhhZCB0aGlzIHVubmVj ZXNzYXJ5IGp1bXAgZXZlciBzaW5jZSB0aGUgaW5jZXB0aW9uDQo+IG9mIFBpU21tQ3B1RHhlU21t IChpbiB0aGUgb3BlbiBzb3VyY2UgZWRrMiB0cmVlKS4gQW5kIG5vdyB3ZSBhcmUNCj4gcmVtb3Zp bmcgdGhlIGp1bXAsIGZvciBjb2RlIHNpbXBsaWZpY2F0aW9uLg0KPiANCj4gVGhhdCdzIGEgZ29v ZCB0aGluZy4gQnV0IGl0IHNob3VsZCBiZSBhIHNlcGFyYXRlIHBhdGNoLCB3aXRoIHRoZQ0KPiBh cmd1bWVudCBjbGVhcmx5IHNwZWxsZWQgb3V0Og0KPiANCj4gICAgIFJlbW92ZSB0aGUgX1NtaUhh bmRsZXIgbGFiZWwgYW5kIGFsbCB0aGUgaW5zdHJ1Y3Rpb25zIHRoYXQNCj4gICAgIGZhY2lsaXRh dGUgdGhlIGp1bXAgdG8gaXQsIGJlY2F1c2UgdGhlIGp1bXAgdG8gX1NtaUhhbmRsZXIgaGFzDQo+ ICAgICBhbHdheXMgYmVlbiB1bm5lY2Vzc2FyeSwgYXMgc3RhdGVkIGJ5IHRoZSBjb21tZW50IGlu IG9yaWdpbmFsIGNvbW1pdA0KPiAgICAgNDI3ZTM1NzM0MjZmIGFzIHdlbGwuDQo+IA0KPiBOb3Rl OiB0aGUgX1NtaUhhbmRsZXIgbGFiZWwgaXRzZWxmIHNob3VsZCBsaWtlbHkgYmUgcmVtb3ZlZCB0 b28sIG5vdA0KPiBqdXN0IF9TbWlIYW5kbGVyQWJzQWRkci4gSXQgaXMgbmV2ZXIgcmVmZXJlbmNl ZCwgYWZ0ZXIgdGhlIGNoYW5nZS4NCj4gDQo+IA0KPiAoYykgSSBtdXN0IHNheSB0aGF0IHRoZSBk ZXNjcmlwdGlvbiBvZiBwYXJ0ICgyKSBpcyBleHRyZW1lbHkgbGFja2luZy4NCj4gSSd2ZSBoYWQg dG8gc3BlbmQgbW9yZSB0aGFuIHR3byBob3VycyB0byByZWNvbnN0cnVjdCB0aGUgYXJndW1lbnQu DQo+IE5vcm1hbGx5IHRoZSBjb21taXQgbWVzc2FnZSBzaG91bGQgZGVzY3JpYmUNCj4gDQo+IC0g d2hhdCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IgaXMsIGZvciB3aGF0IHVzZSBjYXNlLA0KPiAtIHdo YXQgdGhlIGN1cnJlbnQgKHByb2JsZW1hdGljKSBiZWhhdmlvciBpcywgb24gdGhlIG1hc3RlciBi cmFuY2gsDQo+IC0gaG93IHRoZSBjaGFuZ2UgYWRkcmVzc2VzIHRoZSBpc3N1ZSwNCj4gLSBpZiB0 aGVyZSBpcyBhIEJaIGZvciB0aGUgaXNzdWUsIGl0IHNob3VsZCBiZSByZWZlcmVuY2VkLg0KPiAN Cj4gU28gaGVyZSdzIG15IHVuZGVyc3RhbmRpbmcgb2YgcGFydCAoMikgLS0gd2hpY2ggc2hvdWxk IGJlIGEgc2VwYXJhdGUNCj4gcGF0Y2gsIGFnYWluIC0tOg0KPiANCj4gKiBCZWZvcmUgY29tbWl0 IGUyMWUzNTVlMmNhN2YsIHdlIGhhZA0KPiANCj4gICAgIG1vdiAgICAgcmF4LCBBU01fUEZYKENw dVNtbURlYnVnRW50cnkpDQo+ICAgICBjYWxsICAgIHJheA0KPiANCj4gVGhpcyB3YXMgbm90IGdv b2QsIGJlY2F1c2UgWENPREUgY2FuIG9ubHkgaGFuZGxlIFJJUC1yZWxhdGl2ZSBhZGRyZXNzaW5n DQo+IGluIGFzc2VtYmx5IGNvZGUuIFNvIGluIGJ1ZyA4NDkgLyBjb21taXQgZTIxZTM1NWUyY2E3 Ziwgd2UgY2hhbmdlZCBpdCB0bzoNCj4gDQo+ICAgICBjYWxsICAgIEFTTV9QRlgoQ3B1U21tRGVi dWdFbnRyeSkNCj4gDQo+ICogV2hpbGUgdGhpcyB3YXMgZ29vZCBmb3IgWENPREUgKEkgZ3Vlc3M/ KSwgaXQgd2Fzbid0IGdvb2QgZm9yIHJ1bnRpbWUNCj4gYmVoYXZpb3IuIEJlY2F1c2U6IHRoaXMg YXNzZW1ibHkgY29kZSBpcyB1c2VkIGFzIGEgdGVtcGxhdGUsIGl0IGlzDQo+IGNvcGllZCB0byBh IGRpZmZlcmVudCBwbGFjZSwgYW5kIGp1bXBzIC8gY2FsbHMgLyBkYXRhIHJlZmVyZW5jZXMgbWFk ZQ0KPiBmcm9tIHRoYXQgb3RoZXIgcGxhY2Ugd2lsbCBub3Qgd29yayB3aXRoIHRoZSBzYW1lIHJl bGF0aXZlIGRpc3RhbmNlLiBGb3INCj4gcnVudGltZSwgd2UgbmVlZCB0aGUganVtcHMgLyBjYWxs cyAvIGRhdGEgcmVmZXJlbmNlcyB0byBiZSBhYnNvbHV0ZSwNCj4gZGVzcGl0ZSBYQ09ERSBub3Qg c3VwcG9ydGluZyBzdWNoLg0KPiANCj4gKiBUaGVyZWZvcmUgd2Ugc3BsaXQgdGhlIHNvbHV0aW9u IGluIHR3by4gSW4gdGhlDQo+IFBpU21tQ3B1U21pRW50cnlGaXh1cEFkZHJlc3Mgcm91dGluZSwg d2UgdXNlIHRoZSBMRUEgaW5zdHJ1Y3Rpb24gKHdpdGgNCj4gUklQLXJlbGF0aXZlIGFkZHJlc3Np bmcpIHRvIGNhbGN1bGF0ZSB0aGUgYWJzb2x1dGUgYWRkcmVzc2VzIHRoYXQgYXJlDQo+IG5lZWRl ZC4gWENPREUgY29wZXMgd2l0aCB0aGVzZSBMRUEgaW5zdHJ1Y3Rpb25zIGp1c3QgZmluZS4gVGhl biB3ZSBwYXRjaA0KPiB0aGUgYWJzb2x1dGUgYWRkcmVzc2VzIGludG8gdGhlIHRlbXBsYXRlIGlu c3RydWN0aW9ucywgc28gdGhhdCB0aGUgY29kZSwNCj4gd2hlbiBjb3BpZWQgdG8gYW5vdGhlciBw bGFjZSwgd2lsbCBjb250aW51ZSB0byB3b3JrIGNvcnJlY3RseSAtLSB0aGUNCj4gYWJzb2x1dGUg YWRkcmVzc2VzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhlIGNvcHlpbmcuDQo+IA0KPiANCj4gSWYg dGhpcyBpcyBjb3JyZWN0LCB0aGVuIHBsZWFzZSBkb2N1bWVudCBhbGwgb2YgaXQgaW4gdGhlIGNv bW1pdA0KPiBtZXNzYWdlLiAoT3IsIHBsZWFzZSBvcGVuIGEgQlosIGFuZCBkb2N1bWVudCBhbGwg b2YgaXQgdGhlcmUsIGFuZA0KPiByZWZlcmVuY2UgdGhlIEJaIGluIHRoZSBjb21taXQgbWVzc2Fn ZS4pIEkgcmVhbGx5IHNob3VsZG4ndCBoYXZlIHRvDQo+IHNwZW5kIGhvdXJzIHRvIHJlY29uc3Ry dWN0IHRoZSB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYml0cyBhbmQgcGllY2VzIGluDQo+IHRoZSBj b21taXQgbG9nIGFuZCBpbiB2YXJpb3VzIG1haWxpbmcgbGlzdCB0aHJlYWRzLg0KPiANCj4gDQo+ IChkKSBOb3cgaGVyZSdzIG15IGZpbmFsIHF1ZXN0aW9uLiBJZiB0aGUgY3VycmVudCAoUklQLXJl bGF0aXZlKSBjYWxscw0KPiBhcmUgaW5jb3JyZWN0LCBhbmQgdGhpcyBwYXRjaCBpcyBuZWVkZWQg dG8gZml4IHRoZW0sIHRoZW46DQo+IA0KPiAtIFdoeSBhbSBJIG5vdCBleHBlcmllbmNpbmcgYW55 IGlzc3VlcyBvbiBteSBzaWRlPw0KPiANCj4gLSBXaHkgd2VyZW4ndCB0aGUgaXNzdWVzIGluIHF1 ZXN0aW9uIGZvdW5kIHdoZW4geW91IHdlcmUgd29ya2luZyBvbg0KPiAgIGJ1ZyA4NDkgLyBjb21t aXQgZTIxZTM1NWUyY2E3ZiBpbiB0aGUgZmlyc3QgcGxhY2U/IFdoYXQgaGFzIGNoYW5nZWQgb3IN Cj4gICBleHBvc2VkIHRoZSByZW1haW5pbmcgcHJvYmxlbT8NCj4gDQo+IA0KPiAoZSkgVGhlIGN1 cnJlbnQgc3RhbmRhcmQgb2YgY29tbWl0IGRvY3VtZW50YXRpb24gaXMgdW5hY2NlcHRhYmxlIGZv ciBhDQo+IG1hdHVyZSBvcGVuIHNvdXJjZSAmIG9wZW4gZGV2ZWxvcG1lbnQgcHJvamVjdC4gSnVz dCB3cml0aW5nIGdvb2QgY29kZSBpcw0KPiBlbnRpcmVseSBpbnN1ZmZpY2llbnQuIFBhdGNoZXMg YXJlIG5vdCB3cml0dGVuIGFuZCBwb3N0ZWQgZm9yIHNwZWNpZmljDQo+IGVtcGxveWVycywgb3Ig Zm9yIHNwZWNpZmljIGNvbGxlYWd1ZXMgYXQgdGhlIHNhbWUgb2ZmaWNlLCBidXQgZm9yIHRoZQ0K PiBnbG9iYWwgVGlhbm9Db3JlL2VkazIgY29tbXVuaXR5Lg0KPiANCj4gV2UndmUgZGlzY3Vzc2Vk IHRoaXMgc2V2ZXJhbCB0aW1lcyBub3cgYXQgdGhlIHN0ZXdhcmRzJyBtZWV0aW5nLCBhbmQNCj4g aXQncyBoaWdoIHRpbWUgd2Ugc3RhcnRlZCBlbmZvcmNpbmcgaXQuDQo+IA0KPiBOYWNrZWQtYnk6 IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IA0KPiBJIHRoaW5rIG5leHQgdGlt ZSBJIG1pZ2h0IG5hY2sgYSBwYXRjaCB3aXRob3V0IGxvb2tpbmcgYXQgdGhlIGNvZGUgZXZlbiwN Cj4gaWYgdGhlIGNvbW1pdCBtZXNzYWdlIChhbmQgdGhlIEJaIHJlZmVyZW5jZWQgYnkgaXQsIGlm IGFueSkgYXJlDQo+IHVuc2F0aXNmYWN0b3J5Lg0KPiANCj4gSSBkbyBoaWdobHkgYXBwcmVjaWF0 ZSB0aGF0IHlvdSB0ZXN0ZWQgdGhlIGNoYW5nZSB3aXRoIE9WTUYuDQo+IA0KPiBUaGFua3MsDQo+ IExhc3psbw0K