From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (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 2EE7D21E2BE33 for ; Fri, 15 Sep 2017 05:59:08 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Sep 2017 06:02:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,396,1500966000"; d="scan'208";a="152237170" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga006.fm.intel.com with ESMTP; 15 Sep 2017 06:02:07 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 15 Sep 2017 06:02:07 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 15 Sep 2017 06:02:07 -0700 Received: from shsmsx151.ccr.corp.intel.com ([169.254.3.98]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Fri, 15 Sep 2017 21:02:05 +0800 From: "Ni, Ruiyu" To: Laszlo Ersek , "Zeng, Star" , Paulo Alcantara , "Yao, Jiewen" CC: "Dong, Eric" , "Bi, Dandan" , "edk2-devel@lists.01.org" , "Kinney, Michael D" , Ard Biesheuvel , "Leif Lindholm (Linaro address)" Thread-Topic: [PATCH] MdeModulePkg/UdfDxe: Remove negative comparison of unsigned number Thread-Index: AQHTLEskx9CGisWrR0GLLW4ASFMy06KxvhcAgAAKtgCAAyxSAIAAQwiAgACz0mA= Date: Fri, 15 Sep 2017 13:02:04 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5BA42C1D@SHSMSX151.ccr.corp.intel.com> References: <8c5a7ec1d6f908eabda755bb6d3bc9a28b14210e.1505277490.git.pcacjr@zytor.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B940874@shsmsx102.ccr.corp.intel.com> <37D67821-E356-4E48-B175-3107DEF070AC@zytor.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B95A36E@SHSMSX151.ccr.corp.intel.com> <5cc939b5-e0df-e4a4-b2f5-9f95672f15e7@redhat.com> In-Reply-To: <5cc939b5-e0df-e4a4-b2f5-9f95672f15e7@redhat.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/UdfDxe: Remove negative comparison of unsigned number X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Sep 2017 12:59:08 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWdyZWUgd2l0aCBtb3N0IG9mIHlvdXIgd29yZHMuDQpCdWlsZCBmYXJtIGlzIHZlcnkgbmVlZGVk IGZvciB0aGlzIGNhc2UuDQoNCkJ1dCBhcyBJIHNhaWQgaW4gYW5vdGhlciBtYWlsLCB0aGVyZSBp cyBhIGJ1ZyAoIzcwNykgaW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbg0KYW5kIEkgZXhwZWN0IGl0 IHRvIGJlIGZpeGVkIEFTQVAuIE91ciBRQSBpcyBjb21wbGFpbmluZyENCg0KLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCkZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQu Y29tXSANClNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDE1LCAyMDE3IDY6MTUgUE0NClRvOiBaZW5n LCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgUGF1bG8gQWxjYW50YXJhIDxwY2FjanJAenl0 b3IuY29tPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbiA8amll d2VuLnlhb0BpbnRlbC5jb20+DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47 IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9y ZzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgQXJkIEJp ZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBMZWlmIExpbmRob2xtIChMaW5h cm8gYWRkcmVzcykgPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4NClN1YmplY3Q6IFJlOiBbUEFU Q0hdIE1kZU1vZHVsZVBrZy9VZGZEeGU6IFJlbW92ZSBuZWdhdGl2ZSBjb21wYXJpc29uIG9mIHVu c2lnbmVkIG51bWJlcg0KDQpIaSBTdGFyLA0KDQpPbiAwOS8xNS8xNyAwODoxNCwgWmVuZywgU3Rh ciB3cm90ZToNCj4gSGksDQo+DQo+IEJhc2VkIG9uIHJlY2VudCBpc3N1ZXMgYWJvdXQgVURGIHNp bmNlIHRoZSBjb2RlIHdhcyBwdXNoZWQgZm9yIA0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9waXBl cm1haWwvZWRrMi1kZXZlbC8yMDE3LVNlcHRlbWJlci8wMTQzNjAuaHRtbCwgDQo+IEkgd2FudCB0 byByYWlzZSBzb21lIHF1ZXN0aW9ucyBraW5kbHkuDQo+DQo+IGh0dHBzOi8vbGlzdHMuMDEub3Jn L3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDQwOS5odG1sDQo+IGh0dHBz Oi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDUx OC5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTct U2VwdGVtYmVyLzAxNDU0Mi5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9l ZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDQ4OS5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEu b3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDU1MS5odG1sDQo+IGh0 dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAx NDU2MC5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIw MTctU2VwdGVtYmVyLzAxNDY0OS5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFp bC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDY5NC5odG1sDQo+IGh0dHBzOi8vbGlzdHMu MDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDY5NS5odG1sDQo+ DQo+IElzIHRoZSBjb2RlIGV4cGVjdGVkIHRvIGJlIGdvdCB1cHN0cmVhbSBvcmlnaW5hbGx5PyAo SSBtYXkgYmUgYSBzdHVwaWQgDQo+IHF1ZXN0aW9uIHNpbmNlIHRoZSBjb2RlIGhhcyBiZWVuIGdv dHRlbiB1cHN0cmVhbSwgSSBqdXN0IHdhbnQgdG8gDQo+IGRvdWJsZSBjb25maXJtIHRoYXQgYXMg UGF1bG8ncyByZXBseSBiZWxvdyAiSSBiZWxpZXZlZCB0aGF0IGl0IHdvdWxkIA0KPiBuZXZlciBn ZXQgdXBzdHJlYW0iLikgSXMgdGhlIGNvZGUgcmVhZHkgdG8gYmUgaW4gbWFzdGVyPyBTaG91bGQg aXQgYmUgDQo+IGluIFN0YWdpbmcgYnJhbmNoIGZpcnN0Pw0KPg0KPg0KPiBQYXVsbywNCj4gQ291 bGQgeW91IGhlbHAgZG8gbW9yZSBldmFsdWF0aW9uIHRvIHRoZSBjb2RlIGFzIHlvdSBzYWlkICJJ ICpkbyoga25vdyANCj4gdGhhdCB0aGUgY29kZSByZWFsbHkgbmVlZHMgcmVmYWN0b3JpbmcsIGRv Y3VtZW50YXRpb24sIGV0YyI/IEkgYmVsaWV2ZSANCj4geW91IGFyZSBtb3N0IGZhbWlsaWFyIHdp dGggdGhlIGNvZGUgYW5kIGtub3cgaXRzIHF1YWxpdHkuIDopDQo+DQo+DQo+IEJUVzogTW9yZSB0 ZXN0IHNlZW1zIG5lZWQgdG8gYmUgZG9uZSBiZWZvcmUgdGhlIGNvZGUgY2hlY2sgaW4sIGZvciAN Cj4gZXhhbXBsZSwgYnVpbGQgd2l0aCB2YXJpb3VzIHRvb2wgY2hhaW5zLCBFQ0Mgc2NhbiBmb3Ig Y29kaW5nIHN0eWxlLCANCj4gc3RhdGljIHRvb2wgc2NhbiwgZXRjLiBUaGF0IGlzIHdoYXQgd2Uo ZXNwZWNpYWxseSBtZSkgbmVlZCB0byBpbXByb3ZlIA0KPiBpbiBmdXR1cmUgd2hlbiBkZXZlbG9w aW5nIGFuZCByZXZpZXdpbmcuDQo+IEFueXdheSwgbGV0J3MgaGVscCBrZWVwIGltcHJvdmluZyBV REYgY29kZXMuDQoNCkkndmUgYmVlbiB0aGlua2luZyBhYm91dCB0aGVzZSBxdWVzdGlvbnMuDQoN CkkgdGhpbmsgYSBzdGFnaW5nIGJyYW5jaCBpcyBhcHByb3ByaWF0ZSB3aGVuIGEgZmVhdHVyZSBj b250YWlucyBpbnRydXNpdmUgY2hhbmdlcyB0aGF0IHJpc2sgYnJlYWtpbmcgY29yZSBmdW5jdGlv bmFsaXR5LCBmb3Igc2V2ZXJhbCAobWF5YmUgYWxsKSBwbGF0Zm9ybXMuIEluIG15IG9waW5pb24s IHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciBVZGZEeGU7IHRoZSBvbmx5IGZ1bmN0aW9uYWwgcmVn cmVzc2lvbnMgaXQgY291bGQgaGF2ZSBjYXVzZWQgKGJ1dCBkaWRuJ3QhKSB3ZXJlIGluIFBhcnRp dGlvbkR4ZSwgYW5kIGluIHRoZSBnZW5lcmljIGRyaXZlciBiaW5kaW5nIGNvZGUuIElzc3VlcyBp biB0aGVzZSBwYXJ0cyBjb3VsZCBoYXZlIGludGVyZmVyZWQgd2l0aCB0aGUgbm9ybWFsIG9wZXJh dGlvbiBvZiBvdGhlciBwYXJ0cyBvZiB0aGUgZmlybXdhcmUsIGJ1dCB0aGVzZSBwYXJ0cyB3ZXJl IG5vdCBsYXJnZSwgYW5kIHRoZXkgd2VyZSB0aG9yb3VnaGx5IHJldmlld2VkLg0KDQpUaGUgYnVp bGQgYnJlYWthZ2VzIHdlcmUgYW5ub3lpbmcgKEkga25vdyBmaXJzdCBoYW5kKS4gSG93ZXZlciwg dGhhdCdzIGV4YWN0bHkgYW4gYXJlYSB3aGVyZSBhIHN0YWdpbmcgYnJhbmNoIGRvZXNuJ3QgaGVs cC4gU3VjaCBidWlsZCBicmVha2FnZXMgY2FuIG9ubHkgYmUgZm91bmQgdmlhIGFjdHVhbCBleHBv c3VyZSB0byBhIGxhcmdlIHNldCBvZiB0b29sY2hhaW5zLCBhbmQgdGhleSBjYW4gb25seSBiZSBh dm9pZGVkIChkdXJpbmcgZGV2ZWxvcG1lbnQpIHdpdGggbG9uZw0KZWRrMiBkZXZlbG9wbWVudCBl eHBlcmllbmNlLg0KDQpGb3IgZXhhbXBsZSwgY29udHJpYnV0b3JzIHRoYXQgbWFpbmx5IHVzZSBN U1ZDIHRlbmQgdG8gKnJlbWVtYmVyKiB0byBjYXN0ICZJbnRlcmZhY2UgdG8gKFZPSUQqKikgd2hl biBmZXRjaGluZyBpdCwgZXZlbiB0aG91Z2ggTVNWQyBkb2Vzbid0IGNvbXBsYWluIGlmIGl0J3Mg bm90IGRvbmUgLS0gdGhlIGRldmVsb3BlcnMga25vdyBmcm9tIG1lbW9yeSB0aGF0IEdDQyB3aWxs IGNvbXBsYWluIChmb3IgZ29vZCByZWFzb24gYWN0dWFsbHksIGV2ZW4gdGhlIChWT0lEKiopIGNh c3QgaXMgcXVlc3Rpb25hYmxlLCBidXQgSSBkaWdyZXNzKS4gU2ltaWxhcmx5LCBldmVuIHRob3Vn aCBnY2MgZG9lc24ndCBjb21wbGFpbiBhYm91dCAiVWludDMyVmFyaWFibGUgPSBVaW50NjRWYXJp YWJsZSIsIHBlb3BsZSB0aGF0IG1vc3RseSB1c2UgZ2NjIG5vdyAqcmVtZW1iZXIqIHRvIGFkZCBh biBleHBsaWNpdCAoVUlOVDMyKSBjYXN0LCBvdGhlcndpc2UgLS0gdGhleSBrbm93IC0tIE1TVkMg d2lsbCBjb21wbGFpbi4NCg0KRXZlbiB3aXRoIHRoaXMgZXhwZXJpZW5jZSwgYW5kIGluIHNwaXRl IG9mIHRoZSBjb2RlIHJldmlldyB0aGF0IHdlIHJlZ3VsYXJseSBkbywgc3VjaCBidWlsZCBpc3N1 ZXMgc2xpcCB0aHJvdWdoIHF1aXRlIGZyZXF1ZW50bHkuIFRoZSBvbmx5IGRpZmZlcmVuY2UgaW4g dGhpcyBjYXNlIHdhcyB0aGF0IHRoZSBjb2RlIGFkZGl0aW9uIHdhcyBsYXJnZSAofjU1MDAgbGlu ZXMpLCBzbyB3ZSBnb3QgbWFueSB3YXJuaW5ncyBhbGwgYXQgb25jZS4NCg0KUHV0dGluZyB0aGUg ZHJpdmVyIG9uIGEgc3RhZ2luZyBicmFuY2ggZmlyc3Qgd291bGQgaGF2ZSBhY3R1YWxseSBoYW1w ZXJlZCB0aGUgZGlzY292ZXJ5IG9mIHRoZXNlIGlzc3Vlcy4gU2ltaWxhcmx5LCBpbmNsdWRpbmcg VWRmRHhlIGluIE92bWZQa2csIEFybVZpcnRQa2csIGFuZCBOdDMyUGtnIG9ubHkgY29uZGl0aW9u YWxseSAoZS5nLiB3aXRoIC1EVURGX0VOQUJMRSksIHdvdWxkIGhhdmUgaGFkIHRoZSBzYW1lIGVm ZmVjdCAtLSBtb3N0IHBlb3BsZSB3b3VsZG4ndCBoYXZlIGNhcmVkIGFib3V0IFVkZkR4ZSBhdCBh bGwsIGFuZCBVZGZEeGUgd291bGRuJ3QgaGF2ZSBiZWVuIGV4cG9zZWQgdG8gYSBnb29kIG51bWJl ciBvZiB0b29sY2hhaW5zLg0KDQooTm90ZSB0aGF0IFVkZkR4ZSB3YXNuJ3QgaW1tZWRpYXRlbHkg aW5jbHVkZWQgaW4gTWRlTW9kdWxlUGtnLmRzYywgc28gaXQncyBub3QgbGlrZSB0aGUgZHJpdmVy IGJyb2tlIHRoZSBidWlsZGluZyBvZiBvbmUgb2YgdGhlIG1vc3QgaW1wb3J0YW50IFBhY2thZ2Vz IGluIHRoZSB0cmVlLiBBbHRob3VnaCwgYmFzZWQgb24gdGhlIHdpZGUgZmVlZGJhY2ssIG5vdyBJ IHdvbmRlciBpZiBPdm1mUGtnICppcyogb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBwYWNrYWdl cyBpbiB0aGUgdGhyZWUsIGhhaGEgOikNCikNCg0KVGhlIGJ1aWxkIGJyZWFrYWdlcyBjb3VsZCBo YXZlIGJlZW4gYXZvaWRlZCBpbiBhZHZhbmNlIG9ubHkgaWY6DQoNCi0gcGVvcGxlIHdpdGggYWNj ZXNzIHRvIHZhcmlvdXMgdG9vbGNoYWlucyB3b3VsZCBoYXZlIG9mZmVyZWQgdG8NCiAgdGVzdC1i dWlsZCBQYXVsbydzIHByaXZhdGUgYnJhbmNoIChvciBhIHN0YWdpbmcgYnJhbmNoKSBiZWZvcmUg bWVyZ2luZw0KICB0aGUgZHJpdmVyLA0KDQotIG9yIGlmIGEgYnVpbGQgZmFybSAvIENJIGVudmly b25tZW50IGV4aXN0ZWQgdGhhdCBleGVyY2lzZWQgKmFsbCoNCiAgdG9vbGNoYWlucyAobm8gZXhj ZXB0aW9ucyEpLg0KDQpOb25lIG9mIHRoZXNlIHR3byBvcHRpb25zIHNlZW1lZCB0byB3b3JrLCBz byBJJ20gYWN0dWFsbHkgaGFwcGllciB3aXRoIHRoZSB3YXkgdGhpbmdzIHR1cm5lZCBvdXQsIGVm ZmVjdGl2ZWx5IGZvcmNpbmcgcGVvcGxlIHRvIGhlbHAuIChJJ20gc2F5aW5nIHRoaXMgYWZ0ZXIg cGVyc29uYWxseSBoYXZpbmcgbXkgdXJnZW50IFRPRE8gbGlzdCBkaXNydXB0ZWQgYnkgdGhlDQpm YWxsb3V0LikNCg0KUmVnYXJkaW5nIHRoZSByZXZpZXcgcHJvY2Vzcywgbm9ib2R5IGNhbiBiZSBl eHBlY3RlZCB0byB0aG9yb3VnaGx5IHJldmlldyBhIH41NTAwIGNvZGUgZHJvcC4gVGhpcyBkb2Vz bid0IG1lYW4gdGhlIGRyaXZlciBzaG91bGRuJ3QgaGF2ZSBiZWVuIGluY2x1ZGVkIC0tIGl0IGFi c29sdXRlbHkgc2hvdWxkIGhhdmUgYmVlbjsgaXQncyBwZXJmZWN0bHkgZmluZSBpZiB3ZSBjYWxs IGl0ICJleHBlcmltZW50YWwiIGZvciBub3csIGFzIGxvbmcgYXMgaXQgZG9lc24ndCBnZXQgaW4g cGVvcGxlJ3Mgd2F5LiBJIGRvbid0IHRoaW5rIHRoaXMganVzdGlmaWVzIGEgc3RhZ2luZyBicmFu Y2g7IEkgdGhpbmsgc3VjaCBtYXRlcmlhbCBzaG91bGQgYmUgYXZhaWxhYmxlIHRvIGRldmVsb3Bl cnMgb24gdGhlIG1hc3RlciBicmFuY2gsIGJ1dCBwZXJoYXBzIG5vdCB1bmRlciBNZGVNb2R1bGVQ a2cuDQoNCldlJ3ZlIHRhbGtlZCBtYW55IHRpbWVzIGFib3V0IEZpbGVTeXN0ZW1Qa2cgZm9yIGV4 YW1wbGUsIGJ1dCBpdCBqdXN0IGRvZXNuJ3Qgc2VlbSB0byBoYXBwZW4gLS0gaXQgd291bGQgcmVx dWlyZSBuZXcgTWFpbnRhaW5lcnMgdG8gYmUgYWRkZWQgdG8gTWFpbnRhaW5lcnMudHh0LCBhbmQg YXBwYXJlbnRseSB0aGF0J3MgYW4gdW5zdXJtb3VudGFibGUgb2JzdGFjbGUuIEluIGRpZmZlcmVu dCBwcm9qZWN0cywgYSBGaWxlU3lzdGVtUGtnL0V4cGVyaW1lbnRhbC9VZGZEeGUvIGRpcmVjdG9y eSB3b3VsZCBoYXZlIGJlZW4gY3JlYXRlZCwgYW5kIFBhdWxvIHdvdWxkIGhhdmUgYmVlbiBhZGRl ZCBtaW5pbWFsbHkgYXMgUmV2aWV3ZXIgZm9yIHRoYXQgb25lIHN1YmRpcmVjdG9yeS4gVGhhbmtm dWxseSwgYXQgbGVhc3QgcmVnaXN0ZXJpbmcgaW4gdGhlIFRpYW5vQ29yZSBCdWd6aWxsYSwgYW5k IGFzc2lnbmluZyBidWdzIHRvIHRoZSByZWFsIG93bmVyLCBhcmVuJ3QgZGlmZmljdWx0IHRoaW5n cyB0byBkby4NCg0KSWYgeW91IHJlY2FsbCwgYXQgb25lIHBvaW50IEkgInRocmVhdGVuZWQiIHRv IGluY2x1ZGUgVWRmRHhlIHNvbWV3aGVyZSB1bmRlciBPdm1mUGtnLCBldmVuIHRob3VnaCBpdCBk aWRuJ3QgYmVsb25nIHRoZXJlIGF0IGFsbC4gSSBqdXN0IGNvdWxkbid0IGJlYXIgaXQgYW55IGxv bmdlciB0aGF0IGEgdXNlZnVsLCBhbGJlaXQgc29tZXdoYXQgdW5wb2xpc2hlZCwgY29udHJpYnV0 aW9uIGNvdWxkbid0IGJlIGFjY2VwdGVkIHNpbXBseSBiZWNhdXNlIHdlIGNvdWxkbid0IGZpbmQg dGhlIHJpZ2h0IHBsYWNlIGZvciBpdCwgYW5kIHdlIHdlcmUgYXBwYXJlbnRseSAqYWxzbyogdW53 aWxsaW5nIHRvICpjcmVhdGUqIHRoZSByaWdodCBwbGFjZSBmb3IgaXQuDQoNClNvIHVsdGltYXRl bHkgaXQgbGFuZGVkIHVuZGVyIE1kZU1vZHVsZVBrZy4gTm90IHRoZSBiZXN0IGxvY2F0aW9uLCBi dXQgaXQgd2lsbCBkby4NCg0KVHlpbmcgaW4gd2l0aCBwYXRjaCByZXZpZXcsIGFuZCBtb3JlIGdl bmVyYWxseSB3aXRoIHRoZSBkZXZlbG9wbWVudCBwcm9jZXNzLCBzdWNoIGxhcmdlIGZlYXR1cmVz IHNob3VsZCBiZSBkZXZlbG9wZWQgaW4gdmVyeSBzbWFsbCBzdGVwcyAobWFueSBzbWFsbCBwYXRj aGVzKSwgb3ZlciBhIGxvbmdlciB0aW1lLCBwb3N0aW5nIHByb3RvdHlwZXMgZWFybHkgZm9yIHJl dmlldy4gV2hpbGUgb24gb25lIGhhbmQsIHdlIGNvdWxkIGF0dHJpYnV0ZSB0aGUgb3Zlcmx5IGNv YXJzZSBzdHJ1Y3R1cmluZyBvZiB0aGUgcGF0Y2ggc2VyaWVzIHRvIHRoZSBmYWN0IHRoYXQgVWRm RHhlIGhhZCBiZWVuIFBhdWxvJ3MgZmlyc3QgbGFyZ2UgZWRrMiBjb250cmlidXRpb24gLS0gaS5l LiwgaGUgbWF5IGhhdmUgbGFja2VkIHRoZSBleHBlcmllbmNlIHRoYXQgaGUgc2hvdWxkIHN0YXJ0 IHdpdGggdGhlIGRyaXZlciBtb2RlbCBmaXJzdCwgd2l0aG91dCBhY3R1YWwgZnVuY3Rpb25hbGl0 eSwgdGhlbiBidWlsZCB1cCB0aGUgVURGIHN0dWZmIGZyb20gc21hbGwgYmxvY2tzLCBhbmQgZmlu YWxseSBpbnRlZ3JhdGUgd2l0aCBQYXJ0aXRpb25EeGUgLS0sIGl0IGNlcnRhaW5seSBkaWRuJ3Qg aGVscCB0aGF0IHRoZSBwcm9qZWN0IGJhc2ljYWxseSBkaWVkIHRocmVlIHllYXJzIGFnbyBkdWUg dG8gbGFjayBvZiBpbnRlcmVzdCwgYW5hbHlzaXMgcGFyYWx5c2lzLCBhbmQgaW5hYmlsaXR5IHRv IG1ha2UgYSBkZWNpc2lvbiBhYm91dCB0aGUgZGV2aWNlIHBhdGggbm9kZS4NCg0KSW4gc3VtbWFy eToNCg0KLSBCdWlsZCBicmVha2FnZXMgY2FuIG9ubHkgYmUgcHJldmVudGVkIGlmIHdlIGVpdGhl ciBpbnRyb2R1Y2UgYSBidWlsZA0KICBmYXJtIHdpdGggKnVuaXZlcnNhbCogdG9vbGNoYWluIGNv dmVyYWdlLCBvciBpbmRpdmlkdWFsIGRldmVsb3BlcnMNCiAgb2ZmZXIgdGhlIGNvbnRyaWJ1dG9y IHRvIGZldGNoIGhpcy9oZXIgYnJhbmNoIGFuZCB0ZXN0LWJ1aWxkIGl0IGZvcg0KICBoaW0vaGVy Lg0KDQotIEV4cGVyaW1lbnRhbCBtYXRlcmlhbCBzaG91bGQgYmUgZmluZSB0byBhZGQgdG8gdGhl IG1hc3RlciBicmFuY2gsIGFzDQogIGxvbmcgYXMgaXQgaXMgbm90IGRpc3J1cHRpdmUgdG8gY29y ZSBmdW5jdGlvbmFsaXR5LiBJdCBzaG91bGQgYmUNCiAgY2xlYXJseSBwbGFjZWQgYXMgZXhwZXJp bWVudGFsIGludG8gdGhlIHByb2plY3QgdHJlZS4gQW5kLCBpdCBzaG91bGQNCiAgbm90IGJlIGRp ZmZpY3VsdCB0byBhc3NpZ24gZGVkaWNhdGVkIFJldmlld2VycyAvIE1haW50YWluZXJzDQogICgi b3duZXJzIikgdG8ganVzdCB0aGUgcmVsZXZhbnQgc3ViZGlyZWN0b3JpZXMuIEl0J3MgZmluZSB0 byBleGNsdWRlDQogIGV4cGVyaW1lbnRhbCBkcml2ZXJzIGZyb20gcGxhdGZvcm0gYnVpbGRzIGJ5 IGRlZmF1bHQsIGJ1dCB0aGF0IGNob2ljZQ0KICByZWFsbHkgZGVwZW5kcyBvbiB0aGUgcHJldmlv dXMgcG9pbnQgKGkuZS4sIHBlb3BsZSB0aGVuIHJlYWxseSBoYXZlIHRvDQogIGhlbHAgb3V0IHdp dGggdGVzdC1idWlsZGluZywgb3RoZXJ3aXNlIHRvb2xjaGFpbiBjb3ZlcmFnZSB3aWxsDQogIHN1 ZmZlci4pDQoNCi0gTGFyZ2UgY29kZSBkcm9wcyBhcmUgbm90IHVuY29tbW9uIGZyb20gc2Vhc29u ZWQgZWRrMiBkZXZlbG9wZXJzDQogIGVpdGhlci4gV2Ugc2hvdWxkIGFsbCB0YWtlIGNhcmUgdG8g ZXJlY3QgYnJhbmQgbmV3IGNvZGUgKGRyaXZlcnMsDQogIG1vZHVsZXMsIGFwcGxpY2F0aW9ucykg aW4gc21hbGwgbG9naWNhbCBzdGVwcy4gVGhpcyByZXF1aXJlcyBhDQogIGRpZmZlcmVudCB0aGlu a2luZyBmcm9tIGp1c3Qgd3JpdGluZyB0aGUgY29kZS4gSXQgcmVxdWlyZXMgdGhlDQogIHByb2dy YW1tZXIgdG8gYXNrIHRoZW1zZWx2ZXMsICJob3cgYW0gSSBnb2luZyB0byB3YWxrIG15IHBlZXJz IHRocm91Z2gNCiAgdGhpcyBuZXcgY29kZSIuIEl0IHRha2VzIGV4dHJhIHdvcmssIGluIGZhY3Qg YSB3aG9sZSBzZXBhcmF0ZSB3b3JrDQogIHBoYXNlLCB0byByZS1zdHJ1Y3R1cmUgc29tZW9uZSdz IGNvZGUgLS0gYWZ0ZXIgaXQgaXMgZnVuY3Rpb25hbGx5DQogIGNvbXBsZXRlIC0tIGZvciBwdWJs aWMgcmV2aWV3Lg0KDQpPa2F5LCBJIHJhbnRlZCBlbm91Z2guIFRoYW5rcyBmb3IgbGlzdGVuaW5n LCBhbmQgdGhhbmsgeW91IGV2ZXJ5b25lIGZvciB5b3VyIGRlZGljYXRpb24gdG8gZml4aW5nIHRo ZSBidWlsZCBpc3N1ZXMgdXJnZW50bHkhDQoNCkxhc3psbw0K