From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIHy8-0004XK-E2 for barebox@lists.infradead.org; Tue, 15 Sep 2020 20:54:33 +0000 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Tue, 15 Sep 2020 22:54:12 +0200 Message-Id: <20200915205417.15484-3-u.kleine-koenig@pengutronix.de> In-Reply-To: <20200915205417.15484-1-u.kleine-koenig@pengutronix.de> References: <20200915205417.15484-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 2/7] LICENSES: add used licenses to make spdxcheck happy To: barebox@lists.infradead.org VGhlc2UgYXJlIGNvcGllZCB2ZXJiYXRpbSBmcm9tIHRoZSBMaW51eCBrZXJuZWwgKDUuOS1yYzMp LiBGcm9tIHRoZQpMaW51eC1zeXNjYWxsLW5vdGUgZXhjZXB0aW9uIGEgZmV3IGl0ZW1zIGhhZCB0 byBiZSByZW1vdmVkIGZyb20gdGhlClNQRFgtTGljZW5zZXM6IGxpc3QgdG8gbWFrZSBzcGR4Y2hl Y2sgaGFwcHkuCgpTaWduZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29l bmlnQHBlbmd1dHJvbml4LmRlPgotLS0KIExJQ0VOU0VTL2RlcHJlY2F0ZWQvSVNDICAgICAgICAg ICAgICAgIHwgIDI0ICsrCiBMSUNFTlNFUy9kZXByZWNhdGVkL1gxMSAgICAgICAgICAgICAgICB8 ICAzNyArKwogTElDRU5TRVMvZHVhbC9BcGFjaGUtMi4wICAgICAgICAgICAgICAgfCAxODcgKysr KysrKysrCiBMSUNFTlNFUy9leGNlcHRpb25zL0xpbnV4LXN5c2NhbGwtbm90ZSB8ICAyNSArKwog TElDRU5TRVMvcHJlZmVycmVkL0JTRC0yLUNsYXVzZSAgICAgICAgfCAgMzIgKysKIExJQ0VOU0VT L3ByZWZlcnJlZC9MR1BMLTIuMSAgICAgICAgICAgIHwgNTA0ICsrKysrKysrKysrKysrKysrKysr KysrKysKIExJQ0VOU0VTL3ByZWZlcnJlZC9MR1BMLTIuMS1vci1sYXRlciAgIHwgNDY4IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiBzY3JpcHRzL3NwZHhjaGVjay5weSAgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogOCBmaWxlcyBjaGFuZ2VkLCA4MTEgaW5zZXJ0aW9ucygrKSwgNDY5IGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExJQ0VOU0VTL2RlcHJlY2F0ZWQvSVNDCiBjcmVh dGUgbW9kZSAxMDA2NDQgTElDRU5TRVMvZGVwcmVjYXRlZC9YMTEKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBMSUNFTlNFUy9kdWFsL0FwYWNoZS0yLjAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMSUNFTlNFUy9l eGNlcHRpb25zL0xpbnV4LXN5c2NhbGwtbm90ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IExJQ0VOU0VT L3ByZWZlcnJlZC9CU0QtMi1DbGF1c2UKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMSUNFTlNFUy9wcmVm ZXJyZWQvTEdQTC0yLjEKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMSUNFTlNFUy9wcmVmZXJyZWQvTEdQ TC0yLjEtb3ItbGF0ZXIKCmRpZmYgLS1naXQgYS9MSUNFTlNFUy9kZXByZWNhdGVkL0lTQyBiL0xJ Q0VOU0VTL2RlcHJlY2F0ZWQvSVNDCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uODk1M2MzMTQyMDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTElDRU5TRVMvZGVwcmVjYXRl ZC9JU0MKQEAgLTAsMCArMSwyNCBAQAorVmFsaWQtTGljZW5zZS1JZGVudGlmaWVyOiBJU0MKK1NQ RFgtVVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL0lTQy5odG1sCitVc2FnZS1HdWlkZToK KyAgVG8gdXNlIHRoZSBJU0MgTGljZW5zZSBwdXQgdGhlIGZvbGxvd2luZyBTUERYIHRhZy92YWx1 ZSBwYWlyIGludG8gYQorICBjb21tZW50IGFjY29yZGluZyB0byB0aGUgcGxhY2VtZW50IGd1aWRl bGluZXMgaW4gdGhlIGxpY2Vuc2luZyBydWxlcworICBkb2N1bWVudGF0aW9uOgorICAgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBJU0MKK0xpY2Vuc2UtVGV4dDoKKworSVNDIExpY2Vuc2UKKwor Q29weXJpZ2h0IChjKSA8eWVhcj4gPGNvcHlyaWdodCBob2xkZXJzPgorCitQZXJtaXNzaW9uIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBh bnkKK3B1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlk ZWQgdGhhdCB0aGUgYWJvdmUKK2NvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUworV0lUSCBSRUdB UkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRgor TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9S IEJFIExJQUJMRSBGT1IgQU5ZCitTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFV RU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMKK1dIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00g TE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04KK09GIENP TlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQg T0YgT1IgSU4KK0NPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMg U09GVFdBUkUuCmRpZmYgLS1naXQgYS9MSUNFTlNFUy9kZXByZWNhdGVkL1gxMSBiL0xJQ0VOU0VT L2RlcHJlY2F0ZWQvWDExCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u ZmU0MzUzZmQwMDAwCi0tLSAvZGV2L251bGwKKysrIGIvTElDRU5TRVMvZGVwcmVjYXRlZC9YMTEK QEAgLTAsMCArMSwzNyBAQAorVmFsaWQtTGljZW5zZS1JZGVudGlmaWVyOiBYMTEKK1NQRFgtVVJM OiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL1gxMS5odG1sCitVc2FnZS1HdWlkZToKKyAgVG8g dXNlIHRoZSBYMTEgcHV0IHRoZSBmb2xsb3dpbmcgU1BEWCB0YWcvdmFsdWUgcGFpciBpbnRvIGEg Y29tbWVudAorICBhY2NvcmRpbmcgdG8gdGhlIHBsYWNlbWVudCBndWlkZWxpbmVzIGluIHRoZSBs aWNlbnNpbmcgcnVsZXMKKyAgZG9jdW1lbnRhdGlvbjoKKyAgICBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogWDExCitMaWNlbnNlLVRleHQ6CisKKworWDExIExpY2Vuc2UKKworQ29weXJpZ2h0IChD KSAxOTk2IFggQ29uc29ydGl1bQorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK K3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KK3RoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCitTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu IElOIE5PIEVWRU5UIFNIQUxMIFRIRQorWCBDT05TT1JUSVVNIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUgorSU4gQU4gQUNUSU9OIE9G IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4K K0NPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5H UyBJTiBUSEUgU09GVFdBUkUuCisKK0V4Y2VwdCBhcyBjb250YWluZWQgaW4gdGhpcyBub3RpY2Us IHRoZSBuYW1lIG9mIHRoZSBYIENvbnNvcnRpdW0gc2hhbGwgbm90CitiZSB1c2VkIGluIGFkdmVy dGlzaW5nIG9yIG90aGVyd2lzZSB0byBwcm9tb3RlIHRoZSBzYWxlLCB1c2Ugb3Igb3RoZXIKK2Rl YWxpbmdzIGluIHRoaXMgU29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIGF1dGhvcml6YXRp b24gZnJvbSB0aGUgWAorQ29uc29ydGl1bS4KKworWCBXaW5kb3cgU3lzdGVtIGlzIGEgdHJhZGVt YXJrIG9mIFggQ29uc29ydGl1bSwgSW5jLgpkaWZmIC0tZ2l0IGEvTElDRU5TRVMvZHVhbC9BcGFj aGUtMi4wIGIvTElDRU5TRVMvZHVhbC9BcGFjaGUtMi4wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNmU4OWRkZWFiMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTElDRU5T RVMvZHVhbC9BcGFjaGUtMi4wCkBAIC0wLDAgKzEsMTg3IEBACitWYWxpZC1MaWNlbnNlLUlkZW50 aWZpZXI6IEFwYWNoZS0yLjAKK1NQRFgtVVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL0Fw YWNoZS0yLjAuaHRtbAorVXNhZ2UtR3VpZGU6CisgIERvIE5PVCB1c2UuIFRoZSBBcGFjaGUtMi4w IGlzIG5vdCBHUEwyIGNvbXBhdGlibGUuIEl0IG1heSBvbmx5IGJlIHVzZWQKKyAgZm9yIGR1YWwt bGljZW5zZWQgZmlsZXMgd2hlcmUgdGhlIG90aGVyIGxpY2Vuc2UgaXMgR1BMMiBjb21wYXRpYmxl LgorICBJZiB5b3UgZW5kIHVwIHVzaW5nIHRoaXMgaXQgTVVTVCBiZSB1c2VkIHRvZ2V0aGVyIHdp dGggYSBHUEwyIGNvbXBhdGlibGUKKyAgbGljZW5zZSB1c2luZyAiT1IiLgorICBUbyB1c2UgdGhl IEFwYWNoZSBMaWNlbnNlIHZlcnNpb24gMi4wIHB1dCB0aGUgZm9sbG93aW5nIFNQRFggdGFnL3Zh bHVlCisgIHBhaXIgaW50byBhIGNvbW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBwbGFjZW1lbnQgZ3Vp ZGVsaW5lcyBpbiB0aGUKKyAgbGljZW5zaW5nIHJ1bGVzIGRvY3VtZW50YXRpb246CisgICAgU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKK0xpY2Vuc2UtVGV4dDoKKworQXBhY2hl IExpY2Vuc2UKKworVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorCitodHRwOi8vd3d3LmFwYWNo ZS5vcmcvbGljZW5zZXMvCisKK1RFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVD VElPTiwgQU5EIERJU1RSSUJVVElPTgorCisxLiBEZWZpbml0aW9ucy4KKworIkxpY2Vuc2UiIHNo YWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwg YW5kCitkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0 aGlzIGRvY3VtZW50LgorCisiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25l ciBvciBlbnRpdHkgYXV0aG9yaXplZCBieSB0aGUKK2NvcHlyaWdodCBvd25lciB0aGF0IGlzIGdy YW50aW5nIHRoZSBMaWNlbnNlLgorCisiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlv biBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsIG90aGVyCitlbnRpdGllcyB0aGF0IGNvbnRy b2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uIGNvbnRyb2wgd2l0aAor dGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJv bCIgbWVhbnMgKGkpIHRoZQorcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhl IGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2gKK2VudGl0eSwgd2hldGhlciBieSBjb250 cmFjdCBvciBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5CitwZXJjZW50ICg1 MCUpIG9yIG1vcmUgb2YgdGhlIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lh bAorb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisiWW91IiAob3IgIllvdXIiKSBzaGFsbCBt ZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGV4ZXJjaXNpbmcKK3Blcm1pc3Npb25z IGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhl IHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKK2luY2x1ZGluZyBidXQg bm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24gc291cmNl LAorYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBh bnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsIHRyYW5zZm9ybWF0aW9uCitvciB0cmFu c2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGNv bXBpbGVkCitvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sIGFuZCBjb252ZXJz aW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsg b2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sCittYWRlIGF2 YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEgY29weXJpZ2h0IG5v dGljZSB0aGF0CitpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yayAoYW4gZXhh bXBsZSBpcyBwcm92aWRlZCBpbiB0aGUKK0FwcGVuZGl4IGJlbG93KS4KKworIkRlcml2YXRpdmUg V29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdCBm b3JtLAordGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9y IHdoaWNoIHRoZSBlZGl0b3JpYWwKK3JldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9u cywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucyByZXByZXNlbnQsIGFzCithIHdob2xlLCBhbiBvcmln aW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBMaWNlbnNl LAorRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbiBz ZXBhcmFibGUgZnJvbSwgb3IKK21lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBp bnRlcmZhY2VzIG9mLCB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZQorV29ya3MgdGhlcmVvZi4KKwor IkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRp bmcgdGhlIG9yaWdpbmFsCit2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9u cyBvciBhZGRpdGlvbnMgdG8gdGhhdCBXb3JrIG9yCitEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2Ys IHRoYXQgaXMgaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yCitpbmNsdXNp b24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lciBvciBieSBhbiBpbmRpdmlkdWFs IG9yIExlZ2FsCitFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mIHRoZSBj b3B5cmlnaHQgb3duZXIuIEZvciB0aGUKK3B1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1 Ym1pdHRlZCIgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywKK3ZlcmJhbCwgb3Igd3JpdHRl biBjb21tdW5pY2F0aW9uIHNlbnQgdG8gdGhlIExpY2Vuc29yIG9yIGl0cworcmVwcmVzZW50YXRp dmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGNvbW11bmljYXRpb24gb24gZWxlY3Ry b25pYworbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLCBhbmQgaXNz dWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0CithcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9m LCB0aGUgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcKK2FuZCBpbXByb3Zp bmcgdGhlIFdvcmssIGJ1dCBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1 b3VzbHkKK21hcmtlZCBvciBvdGhlcndpc2UgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBj b3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhCitDb250cmlidXRpb24uIgorCisiQ29udHJpYnV0b3Ii IHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBv bgorYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGlj ZW5zb3IgYW5kCitzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKwor Mi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIG9mIHRoaXMKKyAgIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdy YW50cyB0byBZb3UgYSBwZXJwZXR1YWwsIHdvcmxkd2lkZSwKKyAgIG5vbi1leGNsdXNpdmUsIG5v LWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZSBjb3B5cmlnaHQgbGljZW5zZSB0bwor ICAgcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3Bs YXksIHB1YmxpY2x5CisgICBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUg V29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzCisgICBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZv cm0uCisKKzMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZiB0aGlzCisgICBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVi eSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLCB3b3JsZHdpZGUsCisgICBub24tZXhjbHVzaXZl LCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUgKGV4Y2VwdCBhcyBzdGF0ZWQg aW4KKyAgIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLCB1 c2UsIG9mZmVyIHRvIHNlbGwsCisgICBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNm ZXIgdGhlIFdvcmssIHdoZXJlIHN1Y2ggbGljZW5zZQorICAgYXBwbGllcyBvbmx5IHRvIHRob3Nl IHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQKKyAgIGFy ZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9y IGJ5CisgICBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykgd2l0aCB0aGUgV29y ayB0byB3aGljaCBzdWNoCisgICBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91 IGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbgorICAgYWdhaW5zdCBhbnkgZW50aXR5IChpbmNs dWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYQorICAgbGF3c3VpdCkgYWxs ZWdpbmcgdGhhdCB0aGUgV29yayBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGlu CisgICB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3Qgb3IgY29udHJpYnV0b3J5IHBhdGVudCBp bmZyaW5nZW1lbnQsIHRoZW4KKyAgIGFueSBwYXRlbnQgbGljZW5zZXMgZ3JhbnRlZCB0byBZb3Ug dW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsKKyAgIHNoYWxsIHRlcm1pbmF0ZSBhcyBv ZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKzQuIFJlZGlzdHJpYnV0aW9u LiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIFdvcmsgb3IK KyAgIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywKKyAgIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3Zp ZGVkIHRoYXQgWW91IG1lZXQgdGhlIGZvbGxvd2luZworICAgY29uZGl0aW9uczoKKworICAgYS4g WW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvciBEZXJpdmF0 aXZlIFdvcmtzIGEKKyAgICAgIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgYi4gWW91 IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2Vz IHN0YXRpbmcKKyAgICAgIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgYy4g WW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29y a3MgdGhhdCBZb3UKKyAgICAgIGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJh ZGVtYXJrLCBhbmQgYXR0cmlidXRpb24gbm90aWNlcworICAgICAgZnJvbSB0aGUgU291cmNlIGZv cm0gb2YgdGhlIFdvcmssIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAg ICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAg ZC4gSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBp dHMKKyAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlv dSBkaXN0cmlidXRlIG11c3QKKyAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBh dHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4KKyAgICAgIHN1Y2ggTk9USUNFIGZp bGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55Cisg ICAgICBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUgb2YgdGhl IGZvbGxvd2luZworICAgICAgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3Ry aWJ1dGVkIGFzIHBhcnQgb2YgdGhlCisgICAgICBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhl IFNvdXJjZSBmb3JtIG9yIGRvY3VtZW50YXRpb24sIGlmCisgICAgICBwcm92aWRlZCBhbG9uZyB3 aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwgd2l0aGluIGEgZGlzcGxheQorICAgICAgZ2Vu ZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQgd2hlcmV2ZXIgc3VjaCB0aGly ZC1wYXJ0eQorICAgICAgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cyBvZiB0 aGUgTk9USUNFIGZpbGUgYXJlIGZvcgorICAgICAgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5 IGFuZCBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5CisgICAgICBhZGQgWW91ciBv d24gYXR0cmlidXRpb24gbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdQor ICAgICAgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJ Q0UgdGV4dCBmcm9tIHRoZQorICAgICAgV29yaywgcHJvdmlkZWQgdGhhdCBzdWNoIGFkZGl0aW9u YWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUKKyAgICAgIGNvbnN0cnVlZCBhcyBtb2Rp ZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQg c3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQgbWF5CisgICAgcHJvdmlkZSBhZGRp dGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2Us CisgICAgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25z LCBvciBmb3IgYW55IHN1Y2gKKyAgICBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3Zp ZGVkIFlvdXIgdXNlLCByZXByb2R1Y3Rpb24sIGFuZAorICAgIGRpc3RyaWJ1dGlvbiBvZiB0aGUg V29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aCB0aGUgY29uZGl0aW9ucyBzdGF0ZWQKKyAgICBp biB0aGlzIExpY2Vuc2UuCisKKzUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNz IFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwgYW55CisgICBDb250cmlidXRpb24gaW50 ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSBZb3UgdG8K KyAgIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg b2YgdGhpcyBMaWNlbnNlLAorICAgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25k aXRpb25zLiBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLAorICAgbm90aGluZyBoZXJlaW4gc2hh bGwgc3VwZXJzZWRlIG9yIG1vZGlmeSB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlCisgICBsaWNl bnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQgd2l0aCBMaWNlbnNvciByZWdhcmRp bmcgc3VjaAorICAgQ29udHJpYnV0aW9ucy4KKworNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNl IGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgbmFtZXMsIHRy YWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29y LAorICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNl IGluIGRlc2NyaWJpbmcgdGhlCisgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5n IHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworNy4gRGlzY2xhaW1lciBvZiBXYXJy YW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0bworICAg aW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoIENvbnRyaWJ1 dG9yIHByb3ZpZGVzCisgICBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywg V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMKKyAgIE9GIEFOWSBLSU5ELCBlaXRoZXIg ZXhwcmVzcyBvciBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwKKyAgIGFu eSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCisg ICBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBZ b3UgYXJlIHNvbGVseQorICAgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3By aWF0ZW5lc3Mgb2YgdXNpbmcgb3IKKyAgIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1 bWUgYW55IHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyCisgICBleGVyY2lzZSBvZiBwZXJtaXNz aW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKzguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJ biBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LCB3aGV0aGVyCisgICBpbiB0b3J0 IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsIHVubGVzcyBy ZXF1aXJlZAorICAgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jv c3NseSBuZWdsaWdlbnQgYWN0cykgb3IKKyAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBh bnkgQ29udHJpYnV0b3IgYmUgbGlhYmxlIHRvIFlvdSBmb3IKKyAgIGRhbWFnZXMsIGluY2x1ZGlu ZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCwgb3IKKyAgIGNvbnNl cXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYSByZXN1bHQgb2Yg dGhpcworICAgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRo ZSBXb3JrIChpbmNsdWRpbmcgYnV0CisgICBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3Nz IG9mIGdvb2R3aWxsLCB3b3JrIHN0b3BwYWdlLCBjb21wdXRlcgorICAgZmFpbHVyZSBvciBtYWxm dW5jdGlvbiwgb3IgYW55IGFuZCBhbGwgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yCisgICBs b3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUg cG9zc2liaWxpdHkgb2YKKyAgIHN1Y2ggZGFtYWdlcy4KKworOS4gQWNjZXB0aW5nIFdhcnJhbnR5 IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZyB0aGUKKyAgIFdv cmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwg YW5kIGNoYXJnZSBhCisgICBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5 LCBpbmRlbW5pdHksIG9yIG90aGVyIGxpYWJpbGl0eQorICAgb2JsaWdhdGlvbnMgYW5kL29yIHJp Z2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcyBMaWNlbnNlLiBIb3dldmVyLCBpbgorICAgYWNjZXB0 aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkgb24gWW91ciBvd24gYmVoYWxm IGFuZCBvbgorICAgWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmIG9mIGFu eSBvdGhlciBDb250cmlidXRvciwgYW5kCisgICBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5p ZnksIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvcgorICAgaGFybWxlc3MgZm9yIGFu eSBsaWFiaWxpdHkgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNo CisgICBDb250cmlidXRvciBieSByZWFzb24gb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2Fy cmFudHkgb3IgYWRkaXRpb25hbAorICAgbGlhYmlsaXR5LgorCitFTkQgT0YgVEVSTVMgQU5EIENP TkRJVElPTlMKZGlmZiAtLWdpdCBhL0xJQ0VOU0VTL2V4Y2VwdGlvbnMvTGludXgtc3lzY2FsbC1u b3RlIGIvTElDRU5TRVMvZXhjZXB0aW9ucy9MaW51eC1zeXNjYWxsLW5vdGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NzZkMWI1MjliMDAKLS0tIC9kZXYvbnVsbAor KysgYi9MSUNFTlNFUy9leGNlcHRpb25zL0xpbnV4LXN5c2NhbGwtbm90ZQpAQCAtMCwwICsxLDI1 IEBACitTUERYLUV4Y2VwdGlvbi1JZGVudGlmaWVyOiBMaW51eC1zeXNjYWxsLW5vdGUKK1NQRFgt VVJMOiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzL0xpbnV4LXN5c2NhbGwtbm90ZS5odG1sCitT UERYLUxpY2Vuc2VzOiBHUEwtMi4wLCBHUEwtMi4wKywgTEdQTC0yLjEsIExHUEwtMi4xKywgR1BM LTIuMC1vbmx5LCBHUEwtMi4wLW9yLWxhdGVyCitVc2FnZS1HdWlkZToKKyAgVGhpcyBleGNlcHRp b24gaXMgdXNlZCB0b2dldGhlciB3aXRoIG9uZSBvZiB0aGUgYWJvdmUgU1BEWC1MaWNlbnNlcwor ICB0byBtYXJrIHVzZXIgc3BhY2UgQVBJICh1YXBpKSBoZWFkZXIgZmlsZXMgc28gdGhleSBjYW4g YmUgaW5jbHVkZWQKKyAgaW50byBub24gR1BMIGNvbXBsaWFudCB1c2VyIHNwYWNlIGFwcGxpY2F0 aW9uIGNvZGUuCisgIFRvIHVzZSB0aGlzIGV4Y2VwdGlvbiBhZGQgaXQgd2l0aCB0aGUga2V5d29y ZCBXSVRIIHRvIG9uZSBvZiB0aGUKKyAgaWRlbnRpZmllcnMgaW4gdGhlIFNQRFgtTGljZW5zZXMg dGFnOgorICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiA8U1BEWC1MaWNlbnNlPiBXSVRIIExp bnV4LXN5c2NhbGwtbm90ZQorTGljZW5zZS1UZXh0OgorCisgICBOT1RFISBUaGlzIGNvcHlyaWdo dCBkb2VzICpub3QqIGNvdmVyIHVzZXIgcHJvZ3JhbXMgdGhhdCB1c2Uga2VybmVsCisgc2Vydmlj ZXMgYnkgbm9ybWFsIHN5c3RlbSBjYWxscyAtIHRoaXMgaXMgbWVyZWx5IGNvbnNpZGVyZWQgbm9y bWFsIHVzZQorIG9mIHRoZSBrZXJuZWwsIGFuZCBkb2VzICpub3QqIGZhbGwgdW5kZXIgdGhlIGhl YWRpbmcgb2YgImRlcml2ZWQgd29yayIuCisgQWxzbyBub3RlIHRoYXQgdGhlIEdQTCBiZWxvdyBp cyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorIEZvdW5kYXRpb24sIGJ1dCB0aGUg aW5zdGFuY2Ugb2YgY29kZSB0aGF0IGl0IHJlZmVycyB0byAodGhlIExpbnV4Cisga2VybmVsKSBp cyBjb3B5cmlnaHRlZCBieSBtZSBhbmQgb3RoZXJzIHdobyBhY3R1YWxseSB3cm90ZSBpdC4KKwor IEFsc28gbm90ZSB0aGF0IHRoZSBvbmx5IHZhbGlkIHZlcnNpb24gb2YgdGhlIEdQTCBhcyBmYXIg YXMgdGhlIGtlcm5lbAorIGlzIGNvbmNlcm5lZCBpcyBfdGhpc18gcGFydGljdWxhciB2ZXJzaW9u IG9mIHRoZSBsaWNlbnNlIChpZSB2Miwgbm90CisgdjIuMiBvciB2My54IG9yIHdoYXRldmVyKSwg dW5sZXNzIGV4cGxpY2l0bHkgb3RoZXJ3aXNlIHN0YXRlZC4KKworCQkJTGludXMgVG9ydmFsZHMK KwpkaWZmIC0tZ2l0IGEvTElDRU5TRVMvcHJlZmVycmVkL0JTRC0yLUNsYXVzZSBiL0xJQ0VOU0VT L3ByZWZlcnJlZC9CU0QtMi1DbGF1c2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5kYTM2NmUyY2U1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MSUNFTlNFUy9wcmVmZXJy ZWQvQlNELTItQ2xhdXNlCkBAIC0wLDAgKzEsMzIgQEAKK1ZhbGlkLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlCitTUERYLVVSTDogaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy9CU0Qt Mi1DbGF1c2UuaHRtbAorVXNhZ2UtR3VpZGU6CisgIFRvIHVzZSB0aGUgQlNEIDItY2xhdXNlICJT aW1wbGlmaWVkIiBMaWNlbnNlIHB1dCB0aGUgZm9sbG93aW5nIFNQRFgKKyAgdGFnL3ZhbHVlIHBh aXIgaW50byBhIGNvbW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBwbGFjZW1lbnQgZ3VpZGVsaW5lcyBp bgorICB0aGUgbGljZW5zaW5nIHJ1bGVzIGRvY3VtZW50YXRpb246CisgICAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZQorTGljZW5zZS1UZXh0OgorCitDb3B5cmlnaHQgKGMp IDx5ZWFyPiA8b3duZXI+IC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2Rp ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnMgYXJlIG1ldDoKKworMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgdGhpcyBsaXN0IG9mIGNvbmRp dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKworMi4gUmVkaXN0cmlidXRpb25z IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgIG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ciBpbiB0aGUKKyAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFOWSBF WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg VE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUKK0xJQUJMRSBGT1Ig QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK K0NPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS T0NVUkVNRU5UIE9GCitTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKK0lOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCitDT05UUkFDVCwg U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX SVNFKQorQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgpkaWZm IC0tZ2l0IGEvTElDRU5TRVMvcHJlZmVycmVkL0xHUEwtMi4xIGIvTElDRU5TRVMvcHJlZmVycmVk L0xHUEwtMi4xCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWFjMThh NDM2MTQwCi0tLSAvZGV2L251bGwKKysrIGIvTElDRU5TRVMvcHJlZmVycmVkL0xHUEwtMi4xCkBA IC0wLDAgKzEsNTA0IEBACitWYWxpZC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xCitWYWxp ZC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xKworVmFsaWQtTGljZW5zZS1JZGVudGlmaWVy OiBMR1BMLTIuMS1vci1sYXRlcgorU1BEWC1VUkw6IGh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMv TEdQTC0yLjEuaHRtbAorVXNhZ2UtR3VpZGU6CisgIFRvIHVzZSB0aGlzIGxpY2Vuc2UgaW4gc291 cmNlIGNvZGUsIHB1dCBvbmUgb2YgdGhlIGZvbGxvd2luZyBTUERYCisgIHRhZy92YWx1ZSBwYWly cyBpbnRvIGEgY29tbWVudCBhY2NvcmRpbmcgdG8gdGhlIHBsYWNlbWVudAorICBndWlkZWxpbmVz IGluIHRoZSBsaWNlbnNpbmcgcnVsZXMgZG9jdW1lbnRhdGlvbi4KKyAgRm9yICdHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKExHUEwpIHZlcnNpb24gMi4xIG9ubHknIHVzZToKKyAg ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTEdQTC0yLjEKKyAgRm9yICdHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgKExHUEwpIHZlcnNpb24gMi4xIG9yIGFueSBsYXRlcgorICB2 ZXJzaW9uJyB1c2U6CisgICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xKworTGlj ZW5zZS1UZXh0OgorCitHTlUgTEVTU0VSIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKK1ZlcnNpb24g Mi4xLCBGZWJydWFyeSAxOTk5CisKK0NvcHlyaWdodCAoQykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKzUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKworRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkg YW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoaXMKK2xpY2Vuc2UgZG9jdW1lbnQs IGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KKworW1RoaXMgaXMgdGhlIGZpcnN0IHJl bGVhc2VkIHZlcnNpb24gb2YgdGhlIExlc3NlciBHUEwuIEl0IGFsc28gY291bnRzIGFzCit0aGUg c3VjY2Vzc29yIG9mIHRoZSBHTlUgTGlicmFyeSBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLCBo ZW5jZSB0aGUKK3ZlcnNpb24gbnVtYmVyIDIuMS5dCisKK1ByZWFtYmxlCisKK1RoZSBsaWNlbnNl cyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRv bSB0bworc2hhcmUgYW5kIGNoYW5nZSBpdC4gQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZXMgYXJlCitpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRv IHNoYXJlIGFuZCBjaGFuZ2UgZnJlZSBzb2Z0d2FyZS0tdG8KK21ha2Ugc3VyZSB0aGUgc29mdHdh cmUgaXMgZnJlZSBmb3IgYWxsIGl0cyB1c2Vycy4KKworVGhpcyBsaWNlbnNlLCB0aGUgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFwcGxpZXMgdG8gc29tZSBzcGVjaWFsbHkKK2Rlc2ln bmF0ZWQgc29mdHdhcmUgcGFja2FnZXMtLXR5cGljYWxseSBsaWJyYXJpZXMtLW9mIHRoZSBGcmVl IFNvZnR3YXJlCitGb3VuZGF0aW9uIGFuZCBvdGhlciBhdXRob3JzIHdobyBkZWNpZGUgdG8gdXNl IGl0LiBZb3UgY2FuIHVzZSBpdCB0b28sIGJ1dAord2Ugc3VnZ2VzdCB5b3UgZmlyc3QgdGhpbmsg Y2FyZWZ1bGx5IGFib3V0IHdoZXRoZXIgdGhpcyBsaWNlbnNlIG9yIHRoZQorb3JkaW5hcnkgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBpcyB0aGUgYmV0dGVyIHN0cmF0ZWd5IHRvIHVzZSBpbiBhbnkK K3BhcnRpY3VsYXIgY2FzZSwgYmFzZWQgb24gdGhlIGV4cGxhbmF0aW9ucyBiZWxvdy4KKworV2hl biB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20g b2YgdXNlLCBub3QKK3ByaWNlLiBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2ln bmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdSBoYXZlCit0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRl IGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvciB0aGlzCitzZXJ2aWNlIGlm IHlvdSB3aXNoKTsgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0IGlm IHlvdQord2FudCBpdDsgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgYW5kIHVzZSBw aWVjZXMgb2YgaXQgaW4gbmV3IGZyZWUKK3Byb2dyYW1zOyBhbmQgdGhhdCB5b3UgYXJlIGluZm9y bWVkIHRoYXQgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCisKK1RvIHByb3RlY3QgeW91ciByaWdo dHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKK2Rpc3RyaWJ1dG9y cyB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhl c2UKK3JpZ2h0cy4gVGhlc2UgcmVzdHJpY3Rpb25zIHRyYW5zbGF0ZSB0byBjZXJ0YWluIHJlc3Bv bnNpYmlsaXRpZXMgZm9yIHlvdSBpZgoreW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJy YXJ5IG9yIGlmIHlvdSBtb2RpZnkgaXQuCisKK0ZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0 ZSBjb3BpZXMgb2YgdGhlIGxpYnJhcnksIHdoZXRoZXIgZ3JhdGlzIG9yIGZvcgorYSBmZWUsIHlv dSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxsIHRoZSByaWdodHMgdGhhdCB3ZSBnYXZlIHlv dS4gWW91CittdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0 IHRoZSBzb3VyY2UgY29kZS4gSWYgeW91CitsaW5rIG90aGVyIGNvZGUgd2l0aCB0aGUgbGlicmFy eSwgeW91IG11c3QgcHJvdmlkZSBjb21wbGV0ZSBvYmplY3QgZmlsZXMgdG8KK3RoZSByZWNpcGll bnRzLCBzbyB0aGF0IHRoZXkgY2FuIHJlbGluayB0aGVtIHdpdGggdGhlIGxpYnJhcnkgYWZ0ZXIg bWFraW5nCitjaGFuZ2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZyBpdC4gQW5kIHlv dSBtdXN0IHNob3cgdGhlbSB0aGVzZQordGVybXMgc28gdGhleSBrbm93IHRoZWlyIHJpZ2h0cy4K KworV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkgd2Ug Y29weXJpZ2h0IHRoZQorbGlicmFyeSwgYW5kICgyKSB3ZSBvZmZlciB5b3UgdGhpcyBsaWNlbnNl LCB3aGljaCBnaXZlcyB5b3UgbGVnYWwKK3Blcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBh bmQvb3IgbW9kaWZ5IHRoZSBsaWJyYXJ5LgorCitUbyBwcm90ZWN0IGVhY2ggZGlzdHJpYnV0b3Is IHdlIHdhbnQgdG8gbWFrZSBpdCB2ZXJ5IGNsZWFyIHRoYXQgdGhlcmUgaXMgbm8KK3dhcnJhbnR5 IGZvciB0aGUgZnJlZSBsaWJyYXJ5LiBBbHNvLCBpZiB0aGUgbGlicmFyeSBpcyBtb2RpZmllZCBi eSBzb21lb25lCitlbHNlIGFuZCBwYXNzZWQgb24sIHRoZSByZWNpcGllbnRzIHNob3VsZCBrbm93 IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90Cit0aGUgb3JpZ2luYWwgdmVyc2lvbiwgc28gdGhh dCB0aGUgb3JpZ2luYWwgYXV0aG9yJ3MgcmVwdXRhdGlvbiB3aWxsIG5vdCBiZQorYWZmZWN0ZWQg YnkgcHJvYmxlbXMgdGhhdCBtaWdodCBiZSBpbnRyb2R1Y2VkIGJ5IG90aGVycy4KKworRmluYWxs eSwgc29mdHdhcmUgcGF0ZW50cyBwb3NlIGEgY29uc3RhbnQgdGhyZWF0IHRvIHRoZSBleGlzdGVu Y2Ugb2YgYW55CitmcmVlIHByb2dyYW0uIFdlIHdpc2ggdG8gbWFrZSBzdXJlIHRoYXQgYSBjb21w YW55IGNhbm5vdCBlZmZlY3RpdmVseQorcmVzdHJpY3QgdGhlIHVzZXJzIG9mIGEgZnJlZSBwcm9n cmFtIGJ5IG9idGFpbmluZyBhIHJlc3RyaWN0aXZlIGxpY2Vuc2UKK2Zyb20gYSBwYXRlbnQgaG9s ZGVyLiBUaGVyZWZvcmUsIHdlIGluc2lzdCB0aGF0IGFueSBwYXRlbnQgbGljZW5zZSBvYnRhaW5l ZAorZm9yIGEgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBtdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCB0 aGUgZnVsbCBmcmVlZG9tIG9mCit1c2Ugc3BlY2lmaWVkIGluIHRoaXMgbGljZW5zZS4KKworTW9z dCBHTlUgc29mdHdhcmUsIGluY2x1ZGluZyBzb21lIGxpYnJhcmllcywgaXMgY292ZXJlZCBieSB0 aGUgb3JkaW5hcnkgR05VCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiBUaGlzIGxpY2Vuc2UsIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitMaWNlbnNlLCBhcHBsaWVzIHRvIGNlcnRhaW4g ZGVzaWduYXRlZCBsaWJyYXJpZXMsIGFuZCBpcyBxdWl0ZSBkaWZmZXJlbnQKK2Zyb20gdGhlIG9y ZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuIFdlIHVzZSB0aGlzIGxpY2Vuc2UgZm9yIGNl cnRhaW4KK2xpYnJhcmllcyBpbiBvcmRlciB0byBwZXJtaXQgbGlua2luZyB0aG9zZSBsaWJyYXJp ZXMgaW50byBub24tZnJlZQorcHJvZ3JhbXMuCisKK1doZW4gYSBwcm9ncmFtIGlzIGxpbmtlZCB3 aXRoIGEgbGlicmFyeSwgd2hldGhlciBzdGF0aWNhbGx5IG9yIHVzaW5nIGEKK3NoYXJlZCBsaWJy YXJ5LCB0aGUgY29tYmluYXRpb24gb2YgdGhlIHR3byBpcyBsZWdhbGx5IHNwZWFraW5nIGEgY29t YmluZWQKK3dvcmssIGEgZGVyaXZhdGl2ZSBvZiB0aGUgb3JpZ2luYWwgbGlicmFyeS4gVGhlIG9y ZGluYXJ5IEdlbmVyYWwgUHVibGljCitMaWNlbnNlIHRoZXJlZm9yZSBwZXJtaXRzIHN1Y2ggbGlu a2luZyBvbmx5IGlmIHRoZSBlbnRpcmUgY29tYmluYXRpb24gZml0cworaXRzIGNyaXRlcmlhIG9m IGZyZWVkb20uIFRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBwZXJtaXRzIG1vcmUg bGF4Citjcml0ZXJpYSBmb3IgbGlua2luZyBvdGhlciBjb2RlIHdpdGggdGhlIGxpYnJhcnkuCisK K1dlIGNhbGwgdGhpcyBsaWNlbnNlIHRoZSAiTGVzc2VyIiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGJlY2F1c2UgaXQgZG9lcworTGVzcyB0byBwcm90ZWN0IHRoZSB1c2VyJ3MgZnJlZWRvbSB0aGFu IHRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYworTGljZW5zZS4gSXQgYWxzbyBwcm92aWRlcyBv dGhlciBmcmVlIHNvZnR3YXJlIGRldmVsb3BlcnMgTGVzcyBvZiBhbgorYWR2YW50YWdlIG92ZXIg Y29tcGV0aW5nIG5vbi1mcmVlIHByb2dyYW1zLiBUaGVzZSBkaXNhZHZhbnRhZ2VzIGFyZSB0aGUK K3JlYXNvbiB3ZSB1c2UgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1h bnkKK2xpYnJhcmllcy4gSG93ZXZlciwgdGhlIExlc3NlciBsaWNlbnNlIHByb3ZpZGVzIGFkdmFu dGFnZXMgaW4gY2VydGFpbgorc3BlY2lhbCBjaXJjdW1zdGFuY2VzLgorCitGb3IgZXhhbXBsZSwg b24gcmFyZSBvY2Nhc2lvbnMsIHRoZXJlIG1heSBiZSBhIHNwZWNpYWwgbmVlZCB0byBlbmNvdXJh Z2UKK3RoZSB3aWRlc3QgcG9zc2libGUgdXNlIG9mIGEgY2VydGFpbiBsaWJyYXJ5LCBzbyB0aGF0 IGl0IGJlY29tZXMgYSBkZS1mYWN0bworc3RhbmRhcmQuIFRvIGFjaGlldmUgdGhpcywgbm9uLWZy ZWUgcHJvZ3JhbXMgbXVzdCBiZSBhbGxvd2VkIHRvIHVzZSB0aGUKK2xpYnJhcnkuIEEgbW9yZSBm cmVxdWVudCBjYXNlIGlzIHRoYXQgYSBmcmVlIGxpYnJhcnkgZG9lcyB0aGUgc2FtZSBqb2IgYXMK K3dpZGVseSB1c2VkIG5vbi1mcmVlIGxpYnJhcmllcy4gSW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBs aXR0bGUgdG8gZ2FpbiBieQorbGltaXRpbmcgdGhlIGZyZWUgbGlicmFyeSB0byBmcmVlIHNvZnR3 YXJlIG9ubHksIHNvIHdlIHVzZSB0aGUgTGVzc2VyCitHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgor CitJbiBvdGhlciBjYXNlcywgcGVybWlzc2lvbiB0byB1c2UgYSBwYXJ0aWN1bGFyIGxpYnJhcnkg aW4gbm9uLWZyZWUgcHJvZ3JhbXMKK2VuYWJsZXMgYSBncmVhdGVyIG51bWJlciBvZiBwZW9wbGUg dG8gdXNlIGEgbGFyZ2UgYm9keSBvZiBmcmVlCitzb2Z0d2FyZS4gRm9yIGV4YW1wbGUsIHBlcm1p c3Npb24gdG8gdXNlIHRoZSBHTlUgQyBMaWJyYXJ5IGluIG5vbi1mcmVlCitwcm9ncmFtcyBlbmFi bGVzIG1hbnkgbW9yZSBwZW9wbGUgdG8gdXNlIHRoZSB3aG9sZSBHTlUgb3BlcmF0aW5nIHN5c3Rl bSwgYXMKK3dlbGwgYXMgaXRzIHZhcmlhbnQsIHRoZSBHTlUvTGludXggb3BlcmF0aW5nIHN5c3Rl bS4KKworQWx0aG91Z2ggdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIExlc3Mg cHJvdGVjdGl2ZSBvZiB0aGUgdXNlcnMnCitmcmVlZG9tLCBpdCBkb2VzIGVuc3VyZSB0aGF0IHRo ZSB1c2VyIG9mIGEgcHJvZ3JhbSB0aGF0IGlzIGxpbmtlZCB3aXRoIHRoZQorTGlicmFyeSBoYXMg dGhlIGZyZWVkb20gYW5kIHRoZSB3aGVyZXdpdGhhbCB0byBydW4gdGhhdCBwcm9ncmFtIHVzaW5n IGEKK21vZGlmaWVkIHZlcnNpb24gb2YgdGhlIExpYnJhcnkuCisKK1RoZSBwcmVjaXNlIHRlcm1z IGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlv bgorZm9sbG93LiBQYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4g YSAid29yayBiYXNlZCBvbiB0aGUKK2xpYnJhcnkiIGFuZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUg bGlicmFyeSIuIFRoZSBmb3JtZXIgY29udGFpbnMgY29kZQorZGVyaXZlZCBmcm9tIHRoZSBsaWJy YXJ5LCB3aGVyZWFzIHRoZSBsYXR0ZXIgbXVzdCBiZSBjb21iaW5lZCB3aXRoIHRoZQorbGlicmFy eSBpbiBvcmRlciB0byBydW4uCisKK1RFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBE SVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgorCiswLiBUaGlzIExpY2Vuc2UgQWdyZWVtZW50 IGFwcGxpZXMgdG8gYW55IHNvZnR3YXJlIGxpYnJhcnkgb3Igb3RoZXIgcHJvZ3JhbQorICAgd2hp Y2ggY29udGFpbnMgYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG9yIG90 aGVyCisgICBhdXRob3JpemVkIHBhcnR5IHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoaXMKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChh bHNvIGNhbGxlZCAidGhpcyBMaWNlbnNlIikuIEVhY2gKKyAgIGxpY2Vuc2VlIGlzIGFkZHJlc3Nl ZCBhcyAieW91Ii4KKworICAgQSAibGlicmFyeSIgbWVhbnMgYSBjb2xsZWN0aW9uIG9mIHNvZnR3 YXJlIGZ1bmN0aW9ucyBhbmQvb3IgZGF0YQorICAgcHJlcGFyZWQgc28gYXMgdG8gYmUgY29udmVu aWVudGx5IGxpbmtlZCB3aXRoIGFwcGxpY2F0aW9uIHByb2dyYW1zCisgICAod2hpY2ggdXNlIHNv bWUgb2YgdGhvc2UgZnVuY3Rpb25zIGFuZCBkYXRhKSB0byBmb3JtIGV4ZWN1dGFibGVzLgorCisg ICBUaGUgIkxpYnJhcnkiLCBiZWxvdywgcmVmZXJzIHRvIGFueSBzdWNoIHNvZnR3YXJlIGxpYnJh cnkgb3Igd29yayB3aGljaAorICAgaGFzIGJlZW4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlc2UgdGVy bXMuIEEgIndvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkiCisgICBtZWFucyBlaXRoZXIgdGhlIExp YnJhcnkgb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3OgorICAgdGhh dCBpcyB0byBzYXksIGEgd29yayBjb250YWluaW5nIHRoZSBMaWJyYXJ5IG9yIGEgcG9ydGlvbiBv ZiBpdCwgZWl0aGVyCisgICB2ZXJiYXRpbSBvciB3aXRoIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRy YW5zbGF0ZWQgc3RyYWlnaHRmb3J3YXJkbHkgaW50bworICAgYW5vdGhlciBsYW5ndWFnZS4gKEhl cmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0CisgICBsaW1pdGF0aW9u IGluIHRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikKKworICAgIlNvdXJjZSBjb2RlIiBmb3IgYSB3 b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IgbWFraW5nCisgICBt b2RpZmljYXRpb25zIHRvIGl0LiBGb3IgYSBsaWJyYXJ5LCBjb21wbGV0ZSBzb3VyY2UgY29kZSBt ZWFucyBhbGwgdGhlCisgICBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMs IHBsdXMgYW55IGFzc29jaWF0ZWQgaW50ZXJmYWNlCisgICBkZWZpbml0aW9uIGZpbGVzLCBwbHVz IHRoZSBzY3JpcHRzIHVzZWQgdG8gY29udHJvbCBjb21waWxhdGlvbiBhbmQKKyAgIGluc3RhbGxh dGlvbiBvZiB0aGUgbGlicmFyeS4KKworICAgIEFjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5n LCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90CisgICAgY292ZXJlZCBieSB0 aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiBUaGUgYWN0IG9mIHJ1bm5p bmcKKyAgICBhIHByb2dyYW0gdXNpbmcgdGhlIExpYnJhcnkgaXMgbm90IHJlc3RyaWN0ZWQsIGFu ZCBvdXRwdXQgZnJvbSBzdWNoIGEKKyAgICBwcm9ncmFtIGlzIGNvdmVyZWQgb25seSBpZiBpdHMg Y29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlCisgICAgTGlicmFyeSAoaW5k ZXBlbmRlbnQgb2YgdGhlIHVzZSBvZiB0aGUgTGlicmFyeSBpbiBhIHRvb2wgZm9yIHdyaXRpbmcK KyAgICBpdCkuIFdoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgTGlicmFy eSBkb2VzIGFuZCB3aGF0IHRoZQorICAgIHByb2dyYW0gdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IGRv ZXMuCisKKzEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2Yg dGhlIExpYnJhcnkncyBjb21wbGV0ZQorICAgc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQs IGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CisgICBjb25zcGljdW91c2x5IGFuZCBh cHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlCisgICBjb3B5 cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwg dGhlIG5vdGljZXMKKyAgIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJz ZW5jZSBvZiBhbnkgd2FycmFudHk7IGFuZAorICAgZGlzdHJpYnV0ZSBhIGNvcHkgb2YgdGhpcyBM aWNlbnNlIGFsb25nIHdpdGggdGhlIExpYnJhcnkuCisKKyAgIFlvdSBtYXkgY2hhcmdlIGEgZmVl IGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAorICAgeW91 IG1heSBhdCB5b3VyIG9wdGlvbiBvZmZlciB3YXJyYW50eSBwcm90ZWN0aW9uIGluIGV4Y2hhbmdl IGZvciBhIGZlZS4KKworMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBvZiB0 aGUgTGlicmFyeSBvciBhbnkgcG9ydGlvbiBvZiBpdCwKKyAgIHRodXMgZm9ybWluZyBhIHdvcmsg YmFzZWQgb24gdGhlIExpYnJhcnksIGFuZCBjb3B5IGFuZCBkaXN0cmlidXRlIHN1Y2gKKyAgIG1v ZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxIGFib3ZlLCBw cm92aWRlZCB0aGF0CisgICB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgor CisgICBhKSBUaGUgbW9kaWZpZWQgd29yayBtdXN0IGl0c2VsZiBiZSBhIHNvZnR3YXJlIGxpYnJh cnkuCisKKyAgIGIpIFlvdSBtdXN0IGNhdXNlIHRoZSBmaWxlcyBtb2RpZmllZCB0byBjYXJyeSBw cm9taW5lbnQgbm90aWNlcyBzdGF0aW5nCisgICAgICB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBmaWxl cyBhbmQgdGhlIGRhdGUgb2YgYW55IGNoYW5nZS4KKworICAgYykgWW91IG11c3QgY2F1c2UgdGhl IHdob2xlIG9mIHRoZSB3b3JrIHRvIGJlIGxpY2Vuc2VkIGF0IG5vIGNoYXJnZSB0bworICAgICAg YWxsIHRoaXJkIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KKworICAg ZCkgSWYgYSBmYWNpbGl0eSBpbiB0aGUgbW9kaWZpZWQgTGlicmFyeSByZWZlcnMgdG8gYSBmdW5j dGlvbiBvciBhIHRhYmxlCisgICAgICBvZiBkYXRhIHRvIGJlIHN1cHBsaWVkIGJ5IGFuIGFwcGxp Y2F0aW9uIHByb2dyYW0gdGhhdCB1c2VzIHRoZQorICAgICAgZmFjaWxpdHksIG90aGVyIHRoYW4g YXMgYW4gYXJndW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2lsaXR5IGlzCisgICAgICBpbnZva2Vk LCB0aGVuIHlvdSBtdXN0IG1ha2UgYSBnb29kIGZhaXRoIGVmZm9ydCB0byBlbnN1cmUgdGhhdCwg aW4KKyAgICAgIHRoZSBldmVudCBhbiBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgc3VjaCBm dW5jdGlvbiBvciB0YWJsZSwgdGhlCisgICAgICBmYWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5k IHBlcmZvcm1zIHdoYXRldmVyIHBhcnQgb2YgaXRzIHB1cnBvc2UKKyAgICAgIHJlbWFpbnMgbWVh bmluZ2Z1bC4KKworICAgKEZvciBleGFtcGxlLCBhIGZ1bmN0aW9uIGluIGEgbGlicmFyeSB0byBj b21wdXRlIHNxdWFyZSByb290cyBoYXMgYQorICAgIHB1cnBvc2UgdGhhdCBpcyBlbnRpcmVseSB3 ZWxsLWRlZmluZWQgaW5kZXBlbmRlbnQgb2YgdGhlCisgICAgYXBwbGljYXRpb24uIFRoZXJlZm9y ZSwgU3Vic2VjdGlvbiAyZCByZXF1aXJlcyB0aGF0IGFueQorICAgIGFwcGxpY2F0aW9uLXN1cHBs aWVkIGZ1bmN0aW9uIG9yIHRhYmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlvbiBtdXN0IGJlCisgICAg b3B0aW9uYWw6IGlmIHRoZSBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgaXQsIHRoZSBzcXVh cmUgcm9vdAorICAgIGZ1bmN0aW9uIG11c3Qgc3RpbGwgY29tcHV0ZSBzcXVhcmUgcm9vdHMuKQor CisgICBUaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3 aG9sZS4gSWYKKyAgIGlkZW50aWZpYWJsZSBzZWN0aW9ucyBvZiB0aGF0IHdvcmsgYXJlIG5vdCBk ZXJpdmVkIGZyb20gdGhlIExpYnJhcnksIGFuZAorICAgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lk ZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KKyAgIHRoZW1zZWx2ZXMsIHRo ZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBub3QgYXBwbHkgdG8gdGhvc2UKKyAg IHNlY3Rpb25zIHdoZW4geW91IGRpc3RyaWJ1dGUgdGhlbSBhcyBzZXBhcmF0ZSB3b3Jrcy4gQnV0 IHdoZW4geW91CisgICBkaXN0cmlidXRlIHRoZSBzYW1lIHNlY3Rpb25zIGFzIHBhcnQgb2YgYSB3 aG9sZSB3aGljaCBpcyBhIHdvcmsgYmFzZWQgb24KKyAgIHRoZSBMaWJyYXJ5LCB0aGUgZGlzdHJp YnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZiB0aGlzCisgICBMaWNl bnNlLCB3aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUg ZW50aXJlCisgICB3aG9sZSwgYW5kIHRodXMgdG8gZWFjaCBhbmQgZXZlcnkgcGFydCByZWdhcmRs ZXNzIG9mIHdobyB3cm90ZSBpdC4KKworICAgVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2Yg dGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0CisgICB5b3VyIHJpZ2h0cyB0 byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8K KyAgIGV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVy aXZhdGl2ZSBvcgorICAgY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgTGlicmFyeS4KKwor ICAgSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNl ZCBvbiB0aGUgTGlicmFyeQorICAgd2l0aCB0aGUgTGlicmFyeSAob3Igd2l0aCBhIHdvcmsgYmFz ZWQgb24gdGhlIExpYnJhcnkpIG9uIGEgdm9sdW1lIG9mIGEKKyAgIHN0b3JhZ2Ugb3IgZGlzdHJp YnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRlciB0aGUKKyAg IHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KKworMy4gWW91IG1heSBvcHQgdG8gYXBwbHkgdGhlIHRl cm1zIG9mIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgaW5zdGVh ZCBvZiB0aGlzIExpY2Vuc2UgdG8gYSBnaXZlbiBjb3B5IG9mIHRoZSBMaWJyYXJ5LiBUbyBkbwor ICAgdGhpcywgeW91IG11c3QgYWx0ZXIgYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhp cyBMaWNlbnNlLCBzbyB0aGF0CisgICB0aGV5IHJlZmVyIHRvIHRoZSBvcmRpbmFyeSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLAorICAgaW5zdGVhZCBvZiB0byB0aGlzIExp Y2Vuc2UuIChJZiBhIG5ld2VyIHZlcnNpb24gdGhhbiB2ZXJzaW9uIDIgb2YgdGhlCisgICBvcmRp bmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBoYXMgYXBwZWFyZWQsIHRoZW4geW91IGNh biBzcGVjaWZ5CisgICB0aGF0IHZlcnNpb24gaW5zdGVhZCBpZiB5b3Ugd2lzaC4pIERvIG5vdCBt YWtlIGFueSBvdGhlciBjaGFuZ2UgaW4gdGhlc2UKKyAgIG5vdGljZXMuCisKKyAgIE9uY2UgdGhp cyBjaGFuZ2UgaXMgbWFkZSBpbiBhIGdpdmVuIGNvcHksIGl0IGlzIGlycmV2ZXJzaWJsZSBmb3Ig dGhhdAorICAgY29weSwgc28gdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFwcGxpZXMgdG8gYWxsCisgICBzdWJzZXF1ZW50IGNvcGllcyBhbmQgZGVyaXZhdGl2ZSB3b3Jr cyBtYWRlIGZyb20gdGhhdCBjb3B5LgorCisgICBUaGlzIG9wdGlvbiBpcyB1c2VmdWwgd2hlbiB5 b3Ugd2lzaCB0byBjb3B5IHBhcnQgb2YgdGhlIGNvZGUgb2YgdGhlCisgICBMaWJyYXJ5IGludG8g YSBwcm9ncmFtIHRoYXQgaXMgbm90IGEgbGlicmFyeS4KKworNC4gWW91IG1heSBjb3B5IGFuZCBk aXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhIHBvcnRpb24gb3IgZGVyaXZhdGl2ZSBvZgorICAg aXQsIHVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVu ZGVyIHRoZSB0ZXJtcworICAgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0 IHlvdSBhY2NvbXBhbnkgaXQgd2l0aCB0aGUKKyAgIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFj aGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSwgd2hpY2ggbXVzdCBiZQorICAgZGlzdHJpYnV0ZWQg dW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYSBtZWRpdW0KKyAg IGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgorCisgICBJZiBkaXN0 cmlidXRpb24gb2Ygb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZyBhY2Nlc3MgdG8gY29w eSBmcm9tIGEKKyAgIGRlc2lnbmF0ZWQgcGxhY2UsIHRoZW4gb2ZmZXJpbmcgZXF1aXZhbGVudCBh Y2Nlc3MgdG8gY29weSB0aGUgc291cmNlCisgICBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2Ugc2F0 aXNmaWVzIHRoZSByZXF1aXJlbWVudCB0byBkaXN0cmlidXRlIHRoZQorICAgc291cmNlIGNvZGUs IGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdCBjb21wZWxsZWQgdG8gY29weSB0aGUK KyAgIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKworNS4gQSBwcm9ncmFtIHRo YXQgY29udGFpbnMgbm8gZGVyaXZhdGl2ZSBvZiBhbnkgcG9ydGlvbiBvZiB0aGUgTGlicmFyeSwg YnV0CisgICBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIExpYnJhcnkgYnkgYmVpbmcgY29t cGlsZWQgb3IgbGlua2VkIHdpdGgKKyAgIGl0LCBpcyBjYWxsZWQgYSAid29yayB0aGF0IHVzZXMg dGhlIExpYnJhcnkiLiBTdWNoIGEgd29yaywgaW4gaXNvbGF0aW9uLAorICAgaXMgbm90IGEgZGVy aXZhdGl2ZSB3b3JrIG9mIHRoZSBMaWJyYXJ5LCBhbmQgdGhlcmVmb3JlIGZhbGxzIG91dHNpZGUg dGhlCisgICBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCisKKyAgIEhvd2V2ZXIsIGxpbmtpbmcgYSAi d29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkgY3JlYXRlcworICAg YW4gZXhlY3V0YWJsZSB0aGF0IGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVz ZSBpdCBjb250YWlucworICAgcG9ydGlvbnMgb2YgdGhlIExpYnJhcnkpLCByYXRoZXIgdGhhbiBh ICJ3b3JrIHRoYXQgdXNlcyB0aGUKKyAgIGxpYnJhcnkiLiBUaGUgZXhlY3V0YWJsZSBpcyB0aGVy ZWZvcmUgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UuIFNlY3Rpb24gNgorICAgc3RhdGVzIHRlcm1z IGZvciBkaXN0cmlidXRpb24gb2Ygc3VjaCBleGVjdXRhYmxlcy4KKworICAgV2hlbiBhICJ3b3Jr IHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgdXNlcyBtYXRlcmlhbCBmcm9tIGEgaGVhZGVyIGZpbGUK KyAgIHRoYXQgaXMgcGFydCBvZiB0aGUgTGlicmFyeSwgdGhlIG9iamVjdCBjb2RlIGZvciB0aGUg d29yayBtYXkgYmUgYQorICAgZGVyaXZhdGl2ZSB3b3JrIG9mIHRoZSBMaWJyYXJ5IGV2ZW4gdGhv dWdoIHRoZSBzb3VyY2UgY29kZSBpcworICAgbm90LiBXaGV0aGVyIHRoaXMgaXMgdHJ1ZSBpcyBl c3BlY2lhbGx5IHNpZ25pZmljYW50IGlmIHRoZSB3b3JrIGNhbiBiZQorICAgbGlua2VkIHdpdGhv dXQgdGhlIExpYnJhcnksIG9yIGlmIHRoZSB3b3JrIGlzIGl0c2VsZiBhIGxpYnJhcnkuIFRoZQor ICAgdGhyZXNob2xkIGZvciB0aGlzIHRvIGJlIHRydWUgaXMgbm90IHByZWNpc2VseSBkZWZpbmVk IGJ5IGxhdy4KKworICAgSWYgc3VjaCBhbiBvYmplY3QgZmlsZSB1c2VzIG9ubHkgbnVtZXJpY2Fs IHBhcmFtZXRlcnMsIGRhdGEgc3RydWN0dXJlCisgICBsYXlvdXRzIGFuZCBhY2Nlc3NvcnMsIGFu ZCBzbWFsbCBtYWNyb3MgYW5kIHNtYWxsIGlubGluZSBmdW5jdGlvbnMgKHRlbgorICAgbGluZXMg b3IgbGVzcyBpbiBsZW5ndGgpLCB0aGVuIHRoZSB1c2Ugb2YgdGhlIG9iamVjdCBmaWxlIGlzCisg ICB1bnJlc3RyaWN0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBsZWdhbGx5IGEgZGVy aXZhdGl2ZQorICAgd29yay4gKEV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhpcyBvYmplY3QgY29k ZSBwbHVzIHBvcnRpb25zIG9mIHRoZQorICAgTGlicmFyeSB3aWxsIHN0aWxsIGZhbGwgdW5kZXIg U2VjdGlvbiA2LikKKworICAgT3RoZXJ3aXNlLCBpZiB0aGUgd29yayBpcyBhIGRlcml2YXRpdmUg b2YgdGhlIExpYnJhcnksIHlvdSBtYXkKKyAgIGRpc3RyaWJ1dGUgdGhlIG9iamVjdCBjb2RlIGZv ciB0aGUgd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbgorICAgNi4gQW55IGV4ZWN1dGFi bGVzIGNvbnRhaW5pbmcgdGhhdCB3b3JrIGFsc28gZmFsbCB1bmRlciBTZWN0aW9uIDYsCisgICB3 aGV0aGVyIG9yIG5vdCB0aGV5IGFyZSBsaW5rZWQgZGlyZWN0bHkgd2l0aCB0aGUgTGlicmFyeSBp dHNlbGYuCisKKzYuIEFzIGFuIGV4Y2VwdGlvbiB0byB0aGUgU2VjdGlvbnMgYWJvdmUsIHlvdSBt YXkgYWxzbyBjb21iaW5lIG9yIGxpbmsgYQorICAgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5 IiB3aXRoIHRoZSBMaWJyYXJ5IHRvIHByb2R1Y2UgYSB3b3JrCisgICBjb250YWluaW5nIHBvcnRp b25zIG9mIHRoZSBMaWJyYXJ5LCBhbmQgZGlzdHJpYnV0ZSB0aGF0IHdvcmsgdW5kZXIgdGVybXMK KyAgIG9mIHlvdXIgY2hvaWNlLCBwcm92aWRlZCB0aGF0IHRoZSB0ZXJtcyBwZXJtaXQgbW9kaWZp Y2F0aW9uIG9mIHRoZSB3b3JrCisgICBmb3IgdGhlIGN1c3RvbWVyJ3Mgb3duIHVzZSBhbmQgcmV2 ZXJzZSBlbmdpbmVlcmluZyBmb3IgZGVidWdnaW5nIHN1Y2gKKyAgIG1vZGlmaWNhdGlvbnMuCisK KyAgIFlvdSBtdXN0IGdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIGVhY2ggY29weSBvZiB0aGUg d29yayB0aGF0IHRoZQorICAgTGlicmFyeSBpcyB1c2VkIGluIGl0IGFuZCB0aGF0IHRoZSBMaWJy YXJ5IGFuZCBpdHMgdXNlIGFyZSBjb3ZlcmVkIGJ5CisgICB0aGlzIExpY2Vuc2UuIFlvdSBtdXN0 IHN1cHBseSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiBJZiB0aGUgd29yayBkdXJpbmcKKyAgIGV4 ZWN1dGlvbiBkaXNwbGF5cyBjb3B5cmlnaHQgbm90aWNlcywgeW91IG11c3QgaW5jbHVkZSB0aGUg Y29weXJpZ2h0CisgICBub3RpY2UgZm9yIHRoZSBMaWJyYXJ5IGFtb25nIHRoZW0sIGFzIHdlbGwg YXMgYSByZWZlcmVuY2UgZGlyZWN0aW5nIHRoZQorICAgdXNlciB0byB0aGUgY29weSBvZiB0aGlz IExpY2Vuc2UuIEFsc28sIHlvdSBtdXN0IGRvIG9uZSBvZiB0aGVzZSB0aGluZ3M6CisKKyAgIGEp IEFjY29tcGFueSB0aGUgd29yayB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hp bmUtcmVhZGFibGUKKyAgICAgIHNvdXJjZSBjb2RlIGZvciB0aGUgTGlicmFyeSBpbmNsdWRpbmcg d2hhdGV2ZXIgY2hhbmdlcyB3ZXJlIHVzZWQgaW4KKyAgICAgIHRoZSB3b3JrICh3aGljaCBtdXN0 IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUpOworICAgICAgYW5k LCBpZiB0aGUgd29yayBpcyBhbiBleGVjdXRhYmxlIGxpbmtlZCB3aXRoIHRoZSBMaWJyYXJ5LCB3 aXRoIHRoZQorICAgICAgY29tcGxldGUgbWFjaGluZS1yZWFkYWJsZSAid29yayB0aGF0IHVzZXMg dGhlIExpYnJhcnkiLCBhcyBvYmplY3QKKyAgICAgIGNvZGUgYW5kL29yIHNvdXJjZSBjb2RlLCBz byB0aGF0IHRoZSB1c2VyIGNhbiBtb2RpZnkgdGhlIExpYnJhcnkgYW5kCisgICAgICB0aGVuIHJl bGluayB0byBwcm9kdWNlIGEgbW9kaWZpZWQgZXhlY3V0YWJsZSBjb250YWluaW5nIHRoZSBtb2Rp ZmllZAorICAgICAgTGlicmFyeS4gKEl0IGlzIHVuZGVyc3Rvb2QgdGhhdCB0aGUgdXNlciB3aG8g Y2hhbmdlcyB0aGUgY29udGVudHMgb2YKKyAgICAgIGRlZmluaXRpb25zIGZpbGVzIGluIHRoZSBM aWJyYXJ5IHdpbGwgbm90IG5lY2Vzc2FyaWx5IGJlIGFibGUgdG8KKyAgICAgIHJlY29tcGlsZSB0 aGUgYXBwbGljYXRpb24gdG8gdXNlIHRoZSBtb2RpZmllZCBkZWZpbml0aW9ucy4pCisKKyAgIGIp IFVzZSBhIHN1aXRhYmxlIHNoYXJlZCBsaWJyYXJ5IG1lY2hhbmlzbSBmb3IgbGlua2luZyB3aXRo IHRoZQorICAgICAgTGlicmFyeS4gQSBzdWl0YWJsZSBtZWNoYW5pc20gaXMgb25lIHRoYXQgKDEp IHVzZXMgYXQgcnVuIHRpbWUgYSBjb3B5CisgICAgICBvZiB0aGUgbGlicmFyeSBhbHJlYWR5IHBy ZXNlbnQgb24gdGhlIHVzZXIncyBjb21wdXRlciBzeXN0ZW0sIHJhdGhlcgorICAgICAgdGhhbiBj b3B5aW5nIGxpYnJhcnkgZnVuY3Rpb25zIGludG8gdGhlIGV4ZWN1dGFibGUsIGFuZCAoMikgd2ls bAorICAgICAgb3BlcmF0ZSBwcm9wZXJseSB3aXRoIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUg bGlicmFyeSwgaWYgdGhlIHVzZXIKKyAgICAgIGluc3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUg bW9kaWZpZWQgdmVyc2lvbiBpcyBpbnRlcmZhY2UtY29tcGF0aWJsZQorICAgICAgd2l0aCB0aGUg dmVyc2lvbiB0aGF0IHRoZSB3b3JrIHdhcyBtYWRlIHdpdGguCisKKyAgIGMpIEFjY29tcGFueSB0 aGUgd29yayB3aXRoIGEgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlCisg ICAgICB5ZWFycywgdG8gZ2l2ZSB0aGUgc2FtZSB1c2VyIHRoZSBtYXRlcmlhbHMgc3BlY2lmaWVk IGluIFN1YnNlY3Rpb24KKyAgICAgIDZhLCBhYm92ZSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhh biB0aGUgY29zdCBvZiBwZXJmb3JtaW5nIHRoaXMKKyAgICAgIGRpc3RyaWJ1dGlvbi4KKworICAg ZCkgSWYgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNjZXNz IHRvIGNvcHkgZnJvbSBhCisgICAgICBkZXNpZ25hdGVkIHBsYWNlLCBvZmZlciBlcXVpdmFsZW50 IGFjY2VzcyB0byBjb3B5IHRoZSBhYm92ZSBzcGVjaWZpZWQKKyAgICAgIG1hdGVyaWFscyBmcm9t IHRoZSBzYW1lIHBsYWNlLgorCisgICBlKSBWZXJpZnkgdGhhdCB0aGUgdXNlciBoYXMgYWxyZWFk eSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlc2UgbWF0ZXJpYWxzCisgICAgICBvciB0aGF0IHlvdSBo YXZlIGFscmVhZHkgc2VudCB0aGlzIHVzZXIgYSBjb3B5LgorCisgICBGb3IgYW4gZXhlY3V0YWJs ZSwgdGhlIHJlcXVpcmVkIGZvcm0gb2YgdGhlICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIK KyAgIG11c3QgaW5jbHVkZSBhbnkgZGF0YSBhbmQgdXRpbGl0eSBwcm9ncmFtcyBuZWVkZWQgZm9y IHJlcHJvZHVjaW5nIHRoZQorICAgZXhlY3V0YWJsZSBmcm9tIGl0LiBIb3dldmVyLCBhcyBhIHNw ZWNpYWwgZXhjZXB0aW9uLCB0aGUgbWF0ZXJpYWxzIHRvIGJlCisgICBkaXN0cmlidXRlZCBuZWVk IG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgaXMgbm9ybWFsbHkgZGlzdHJpYnV0ZWQgKGluCisg ICBlaXRoZXIgc291cmNlIG9yIGJpbmFyeSBmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRz IChjb21waWxlciwKKyAgIGtlcm5lbCwgYW5kIHNvIG9uKSBvZiB0aGUgb3BlcmF0aW5nIHN5c3Rl bSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLAorICAgdW5sZXNzIHRoYXQgY29tcG9uZW50 IGl0c2VsZiBhY2NvbXBhbmllcyB0aGUgZXhlY3V0YWJsZS4KKworICAgSXQgbWF5IGhhcHBlbiB0 aGF0IHRoaXMgcmVxdWlyZW1lbnQgY29udHJhZGljdHMgdGhlIGxpY2Vuc2UgcmVzdHJpY3Rpb25z CisgICBvZiBvdGhlciBwcm9wcmlldGFyeSBsaWJyYXJpZXMgdGhhdCBkbyBub3Qgbm9ybWFsbHkg YWNjb21wYW55IHRoZQorICAgb3BlcmF0aW5nIHN5c3RlbS4gU3VjaCBhIGNvbnRyYWRpY3Rpb24g bWVhbnMgeW91IGNhbm5vdCB1c2UgYm90aCB0aGVtCisgICBhbmQgdGhlIExpYnJhcnkgdG9nZXRo ZXIgaW4gYW4gZXhlY3V0YWJsZSB0aGF0IHlvdSBkaXN0cmlidXRlLgorCis3LiBZb3UgbWF5IHBs YWNlIGxpYnJhcnkgZmFjaWxpdGllcyB0aGF0IGFyZSBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJh cnkKKyAgIHNpZGUtYnktc2lkZSBpbiBhIHNpbmdsZSBsaWJyYXJ5IHRvZ2V0aGVyIHdpdGggb3Ro ZXIgbGlicmFyeSBmYWNpbGl0aWVzCisgICBub3QgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIGFu ZCBkaXN0cmlidXRlIHN1Y2ggYSBjb21iaW5lZCBsaWJyYXJ5LAorICAgcHJvdmlkZWQgdGhhdCB0 aGUgc2VwYXJhdGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5 CisgICBhbmQgb2YgdGhlIG90aGVyIGxpYnJhcnkgZmFjaWxpdGllcyBpcyBvdGhlcndpc2UgcGVy bWl0dGVkLCBhbmQgcHJvdmlkZWQKKyAgIHRoYXQgeW91IGRvIHRoZXNlIHR3byB0aGluZ3M6CisK KyAgIGEpIEFjY29tcGFueSB0aGUgY29tYmluZWQgbGlicmFyeSB3aXRoIGEgY29weSBvZiB0aGUg c2FtZSB3b3JrIGJhc2VkIG9uCisgICAgICB0aGUgTGlicmFyeSwgdW5jb21iaW5lZCB3aXRoIGFu eSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMuIFRoaXMgbXVzdAorICAgICAgYmUgZGlzdHJpYnV0 ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBTZWN0aW9ucyBhYm92ZS4KKworICAgYikgR2l2ZSBw cm9taW5lbnQgbm90aWNlIHdpdGggdGhlIGNvbWJpbmVkIGxpYnJhcnkgb2YgdGhlIGZhY3QgdGhh dCBwYXJ0CisgICAgICBvZiBpdCBpcyBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnksIGFuZCBl eHBsYWluaW5nIHdoZXJlIHRvIGZpbmQKKyAgICAgIHRoZSBhY2NvbXBhbnlpbmcgdW5jb21iaW5l ZCBmb3JtIG9mIHRoZSBzYW1lIHdvcmsuCisKKzguIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwg c3VibGljZW5zZSwgbGluayB3aXRoLCBvciBkaXN0cmlidXRlIHRoZQorICAgTGlicmFyeSBleGNl cHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gQW55IGF0dGVtcHQK KyAgIG90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3Ig ZGlzdHJpYnV0ZSB0aGUKKyAgIExpYnJhcnkgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxs eSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcworICAgTGljZW5zZS4gSG93ZXZlciwg cGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UKKyAg IHVuZGVyIHRoaXMgTGljZW5zZSB3aWxsIG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0 ZWQgc28gbG9uZyBhcworICAgc3VjaCBwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2Uu CisKKzkuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNl IHlvdSBoYXZlIG5vdCBzaWduZWQKKyAgIGl0LiBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRz IHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvciBkaXN0cmlidXRlCisgICB0aGUgTGlicmFyeSBv ciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gVGhlc2UgYWN0aW9ucyBhcmUgcHJvaGliaXRlZCBieSBs YXcKKyAgIGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gVGhlcmVmb3JlLCBieSBt b2RpZnlpbmcgb3IKKyAgIGRpc3RyaWJ1dGluZyB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFz ZWQgb24gdGhlIExpYnJhcnkpLCB5b3UKKyAgIGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0 aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZCBhbGwgaXRzIHRlcm1zIGFuZAorICAgY29uZGl0aW9u cyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZyB0aGUgTGlicmFyeSBvciB3 b3JrcworICAgYmFzZWQgb24gaXQuCisKKzEwLiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0 aGUgTGlicmFyeSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCisgICAgTGlicmFyeSksIHRoZSBy ZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKKyAgICBv cmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlLCBsaW5rIHdpdGggb3IgbW9kaWZ5 IHRoZSBMaWJyYXJ5CisgICAgc3ViamVjdCB0byB0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4g WW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCisgICAgcmVzdHJpY3Rpb25zIG9uIHRoZSBy ZWNpcGllbnRzJyBleGVyY2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQKKyAgICBoZXJlaW4uIFlv dSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZAor ICAgIHBhcnRpZXMgd2l0aCB0aGlzIExpY2Vuc2UuCisKKzExLiBJZiwgYXMgYSBjb25zZXF1ZW5j ZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CisgICAgaW5mcmlu Z2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRlbnQgaXNz dWVzKSwKKyAgICBjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3Vy dCBvcmRlciwgYWdyZWVtZW50IG9yCisgICAgb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhl IGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdAorICAgIGV4Y3VzZSB5b3Ug ZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuIElmIHlvdSBjYW5ub3QKKyAgICBk aXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9u cyB1bmRlciB0aGlzCisgICAgTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0 aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdQorICAgIG1heSBub3QgZGlzdHJpYnV0ZSB0 aGUgTGlicmFyeSBhdCBhbGwuIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudCBsaWNlbnNlCisgICAg d291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24gb2YgdGhlIExpYnJh cnkgYnkgYWxsCisgICAgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGly ZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4gdGhlCisgICAgb25seSB3YXkgeW91IGNvdWxkIHNhdGlz ZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4KKyAgICBlbnRp cmVseSBmcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeS4KKworICAgIElmIGFueSBwb3J0 aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRl cgorICAgIGFueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNl Y3Rpb24gaXMgaW50ZW5kZWQgdG8KKyAgICBhcHBseSwgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hv bGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKKyAgICBjaXJjdW1zdGFuY2VzLgorCisg ICAgSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRv IGluZnJpbmdlIGFueQorICAgIHBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1z IG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CisgICAgc3VjaCBjbGFpbXM7IHRoaXMgc2Vj dGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQorICAgIGludGVncml0 eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtIHdoaWNoIGlzIGltcGxl bWVudGVkCisgICAgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiBNYW55IHBlb3BsZSBoYXZl IG1hZGUgZ2VuZXJvdXMKKyAgICBjb250cmlidXRpb25zIHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNv ZnR3YXJlIGRpc3RyaWJ1dGVkIHRocm91Z2ggdGhhdAorICAgIHN5c3RlbSBpbiByZWxpYW5jZSBv biBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQgc3lzdGVtOyBpdCBpcyB1cAorICAgIHRv IHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nIHRvIGRp c3RyaWJ1dGUKKyAgICBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGlj ZW5zZWUgY2Fubm90IGltcG9zZSB0aGF0CisgICAgY2hvaWNlLgorCisgICAgVGhpcyBzZWN0aW9u IGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRv CisgICAgYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCisKKzEy LiBJZiB0aGUgZGlzdHJpYnV0aW9uIGFuZC9vciB1c2Ugb2YgdGhlIExpYnJhcnkgaXMgcmVzdHJp Y3RlZCBpbiBjZXJ0YWluCisgICAgY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNv cHlyaWdodGVkIGludGVyZmFjZXMsIHRoZSBvcmlnaW5hbAorICAgIGNvcHlyaWdodCBob2xkZXIg d2hvIHBsYWNlcyB0aGUgTGlicmFyeSB1bmRlciB0aGlzIExpY2Vuc2UgbWF5IGFkZCBhbgorICAg IGV4cGxpY2l0IGdlb2dyYXBoaWNhbCBkaXN0cmlidXRpb24gbGltaXRhdGlvbiBleGNsdWRpbmcg dGhvc2UKKyAgICBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBv bmx5IGluIG9yIGFtb25nIGNvdW50cmllcworICAgIG5vdCB0aHVzIGV4Y2x1ZGVkLiBJbiBzdWNo IGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMgdGhlCisgICAgbGltaXRhdGlvbiBhcyBp ZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KKworMTMuIFRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25z IG9mCisgICAgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0 aW1lLiBTdWNoIG5ldyB2ZXJzaW9ucworICAgIHdpbGwgYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8g dGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4KKyAgICBkZXRhaWwgdG8gYWRk cmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCisKKyAgICBFYWNoIHZlcnNpb24gaXMgZ2l2 ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gSWYgdGhlIExpYnJhcnkKKyAgICBz cGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0 byBpdCBhbmQgImFueQorICAgIGxhdGVyIHZlcnNpb24iLCB5b3UgaGF2ZSB0aGUgb3B0aW9uIG9m IGZvbGxvd2luZyB0aGUgdGVybXMgYW5kCisgICAgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCB2 ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieQorICAgIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24uIElmIHRoZSBMaWJyYXJ5IGRvZXMgbm90IHNwZWNpZnkgYSBs aWNlbnNlCisgICAgdmVyc2lvbiBudW1iZXIsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2 ZXIgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgICAgU29mdHdhcmUgRm91bmRhdGlvbi4KKworMTQu IElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBMaWJyYXJ5IGludG8gb3Ro ZXIgZnJlZQorICAgIHByb2dyYW1zIHdob3NlIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFyZSBp bmNvbXBhdGlibGUgd2l0aCB0aGVzZSwKKyAgICB3cml0ZSB0byB0aGUgYXV0aG9yIHRvIGFzayBm b3IgcGVybWlzc2lvbi4gRm9yIHNvZnR3YXJlIHdoaWNoIGlzCisgICAgY29weXJpZ2h0ZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAgICBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMgbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiBP dXIgZGVjaXNpb24gd2lsbCBiZQorICAgIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzIG9mIHByZXNl cnZpbmcgdGhlIGZyZWUgc3RhdHVzIG9mIGFsbAorICAgIGRlcml2YXRpdmVzIG9mIG91ciBmcmVl IHNvZnR3YXJlIGFuZCBvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlCisgICAgb2Yg c29mdHdhcmUgZ2VuZXJhbGx5LgorCitOTyBXQVJSQU5UWQorCisxNS4gQkVDQVVTRSBUSEUgTElC UkFSWSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKKyAg ICBGT1IgVEhFIExJQlJBUlksIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUg TEFXLiBFWENFUFQgV0hFTgorICAgIE9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09Q WVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKKyAgICBQUk9WSURFIFRIRSBMSUJS QVJZICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRUlUSEVSCisgICAgRVhQ UkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q TElFRAorICAgIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gVEhFCisgICAgRU5USVJFIFJJU0sgQVMgVE8gVEhFIFFVQUxJ VFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBMSUJSQVJZIElTIFdJVEgKKyAgICBZT1UuIFNIT1VM RCBUSEUgTElCUkFSWSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxM CisgICAgTkVDRVNTQVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uCisKKzE2LiBJ TiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRP IElOIFdSSVRJTkcKKyAgICBXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIg UEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SCisgICAgUkVESVNUUklCVVRFIFRIRSBMSUJSQVJZ IEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IKKyAgICBEQU1BR0VTLCBJ TkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElB TAorICAgIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNF IFRIRSBMSUJSQVJZCisgICAgKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRiBE QVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQKKyAgICBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNU QUlORUQgQlkgWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQSBGQUlMVVJFIE9GCisgICAgVEhFIExJ QlJBUlkgVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBTT0ZUV0FSRSksIEVWRU4gSUYgU1VDSCBI T0xERVIgT1IKKyAgICBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ TElUWSBPRiBTVUNIIERBTUFHRVMuCisKK0VORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworCitI b3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgTGlicmFyaWVzCisKK0lmIHlvdSBk ZXZlbG9wIGEgbmV3IGxpYnJhcnksIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRl c3QKK3Bvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB3ZSByZWNvbW1lbmQgbWFraW5nIGl0IGZy ZWUgc29mdHdhcmUgdGhhdAorZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlLiBZ b3UgY2FuIGRvIHNvIGJ5IHBlcm1pdHRpbmcKK3JlZGlzdHJpYnV0aW9uIHVuZGVyIHRoZXNlIHRl cm1zIChvciwgYWx0ZXJuYXRpdmVseSwgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorb3JkaW5hcnkg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSkuCisKK1RvIGFwcGx5IHRoZXNlIHRlcm1zLCBhdHRhY2gg dGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBsaWJyYXJ5LiBJdCBpcworc2FmZXN0IHRvIGF0 dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0 aXZlbHkKK2NvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNo b3VsZCBoYXZlIGF0IGxlYXN0IHRoZQorImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRv IHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KKworb25lIGxpbmUgdG8gZ2l2ZSB0aGUg bGlicmFyeSdzIG5hbWUgYW5kIGFuIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLgorQ29weXJpZ2h0IChD KSB5ZWFyIG5hbWUgb2YgYXV0aG9yCisKK1RoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cit1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK K3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0Cit5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKK1RoaXMg bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LCBidXQgV0lUSE9VVAorQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gU2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKK2ZvciBtb3Jl IGRldGFpbHMuCisKK1lvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKK0luYy4sIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EgQWxz byBhZGQKK2luZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFu ZCBwYXBlciBtYWlsLgorCitZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlv dSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91cgorc2Nob29sLCBpZiBhbnksIHRvIHNpZ24g YSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgbGlicmFyeSwgaWYKK25lY2Vzc2FyeS4g SGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgorCitZb3lvZHluZSwgSW5jLiwgaGVy ZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluCit0aGUgbGlicmFyeSBgRnJv YicgKGEgbGlicmFyeSBmb3IgdHdlYWtpbmcga25vYnMpIHdyaXR0ZW4KK2J5IEphbWVzIFJhbmRv bSBIYWNrZXIuCisKK3NpZ25hdHVyZSBvZiBUeSBDb29uLCAxIEFwcmlsIDE5OTAKK1R5IENvb24s IFByZXNpZGVudCBvZiBWaWNlCitUaGF0J3MgYWxsIHRoZXJlIGlzIHRvIGl0IQpkaWZmIC0tZ2l0 IGEvTElDRU5TRVMvcHJlZmVycmVkL0xHUEwtMi4xLW9yLWxhdGVyIGIvTElDRU5TRVMvcHJlZmVy cmVkL0xHUEwtMi4xLW9yLWxhdGVyCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGJi MTU2ZTc3ZDUuLjAwMDAwMDAwMDAwMAotLS0gYS9MSUNFTlNFUy9wcmVmZXJyZWQvTEdQTC0yLjEt b3ItbGF0ZXIKKysrIC9kZXYvbnVsbApAQCAtMSw0NjggKzAsMCBAQAotR05VIExFU1NFUiBHRU5F UkFMIFBVQkxJQyBMSUNFTlNFCi0KLVZlcnNpb24gMi4xLCBGZWJydWFyeSAxOTk5Ci0KLUNvcHly aWdodCAoQykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLQotNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQot Ci1FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBj b3BpZXMgb2YgdGhpcyBsaWNlbnNlCi1kb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBh bGxvd2VkLgotCi1bVGhpcyBpcyB0aGUgZmlyc3QgcmVsZWFzZWQgdmVyc2lvbiBvZiB0aGUgTGVz c2VyIEdQTC4gSXQgYWxzbyBjb3VudHMgYXMgdGhlCi1zdWNjZXNzb3Igb2YgdGhlIEdOVSBMaWJy YXJ5IFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIsIGhlbmNlIHRoZSB2ZXJzaW9uCi1udW1iZXIg Mi4xLl0KLQotUHJlYW1ibGUKLQotVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBk ZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlCi1hbmQgY2hhbmdlIGl0 LiBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlcyBhcmUgaW50ZW5k ZWQgdG8KLWd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlIHNv ZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlCi1zb2Z0d2FyZSBpcyBmcmVlIGZvciBhbGwgaXRzIHVz ZXJzLgotCi1UaGlzIGxpY2Vuc2UsIHRoZSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg YXBwbGllcyB0byBzb21lIHNwZWNpYWxseQotZGVzaWduYXRlZCBzb2Z0d2FyZSBwYWNrYWdlcy0t dHlwaWNhbGx5IGxpYnJhcmllcy0tb2YgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotYW5k IG90aGVyIGF1dGhvcnMgd2hvIGRlY2lkZSB0byB1c2UgaXQuIFlvdSBjYW4gdXNlIGl0IHRvbywg YnV0IHdlIHN1Z2dlc3QKLXlvdSBmaXJzdCB0aGluayBjYXJlZnVsbHkgYWJvdXQgd2hldGhlciB0 aGlzIGxpY2Vuc2Ugb3IgdGhlIG9yZGluYXJ5IEdlbmVyYWwKLVB1YmxpYyBMaWNlbnNlIGlzIHRo ZSBiZXR0ZXIgc3RyYXRlZ3kgdG8gdXNlIGluIGFueSBwYXJ0aWN1bGFyIGNhc2UsIGJhc2VkCi1v biB0aGUgZXhwbGFuYXRpb25zIGJlbG93LgotCi1XaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdh cmUsIHdlIGFyZSByZWZlcnJpbmcgdG8gZnJlZWRvbSBvZiB1c2UsIG5vdCBwcmljZS4KLU91ciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlcyBhcmUgZGVzaWduZWQgdG8gbWFrZSBzdXJlIHRoYXQgeW91 IGhhdmUgdGhlIGZyZWVkb20KLXRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUg KGFuZCBjaGFyZ2UgZm9yIHRoaXMgc2VydmljZSBpZiB5b3UKLXdpc2gpOyB0aGF0IHlvdSByZWNl aXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91IHdhbnQgaXQ7IHRoYXQgeW91Ci1j YW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBhbmQgdXNlIHBpZWNlcyBvZiBpdCBpbiBuZXcgZnJlZSBw cm9ncmFtczsgYW5kIHRoYXQKLXlvdSBhcmUgaW5mb3JtZWQgdGhhdCB5b3UgY2FuIGRvIHRoZXNl IHRoaW5ncy4KLQotVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBtYWtlIHJlc3Ry aWN0aW9ucyB0aGF0IGZvcmJpZCBkaXN0cmlidXRvcnMKLXRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0 cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGVzZSByaWdodHMuIFRoZXNlIHJlc3RyaWN0 aW9ucwotdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlv dSBkaXN0cmlidXRlIGNvcGllcyBvZgotdGhlIGxpYnJhcnkgb3IgaWYgeW91IG1vZGlmeSBpdC4K LQotRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgbGlicmFyeSwg d2hldGhlciBncmF0aXMgb3IgZm9yCi1hIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50 cyBhbGwgdGhlIHJpZ2h0cyB0aGF0IHdlIGdhdmUgeW91LiBZb3UgbXVzdAotbWFrZSBzdXJlIHRo YXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlIHNvdXJjZSBjb2RlLiBJZiB5b3Ug bGluawotb3RoZXIgY29kZSB3aXRoIHRoZSBsaWJyYXJ5LCB5b3UgbXVzdCBwcm92aWRlIGNvbXBs ZXRlIG9iamVjdCBmaWxlcyB0byB0aGUKLXJlY2lwaWVudHMsIHNvIHRoYXQgdGhleSBjYW4gcmVs aW5rIHRoZW0gd2l0aCB0aGUgbGlicmFyeSBhZnRlciBtYWtpbmcgY2hhbmdlcwotdG8gdGhlIGxp YnJhcnkgYW5kIHJlY29tcGlsaW5nIGl0LiBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRl cm1zIHNvIHRoZXkKLWtub3cgdGhlaXIgcmlnaHRzLgotCi1XZSBwcm90ZWN0IHlvdXIgcmlnaHRz IHdpdGggYSB0d28tc3RlcCBtZXRob2Q6ICgxKSB3ZSBjb3B5cmlnaHQgdGhlIGxpYnJhcnksCi1h bmQgKDIpIHdlIG9mZmVyIHlvdSB0aGlzIGxpY2Vuc2UsIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBw ZXJtaXNzaW9uIHRvIGNvcHksCi1kaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIGxpYnJhcnku Ci0KLVRvIHByb3RlY3QgZWFjaCBkaXN0cmlidXRvciwgd2Ugd2FudCB0byBtYWtlIGl0IHZlcnkg Y2xlYXIgdGhhdCB0aGVyZSBpcyBubwotd2FycmFudHkgZm9yIHRoZSBmcmVlIGxpYnJhcnkuIEFs c28sIGlmIHRoZSBsaWJyYXJ5IGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUKLWVsc2UgYW5kIHBhc3Nl ZCBvbiwgdGhlIHJlY2lwaWVudHMgc2hvdWxkIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBu b3QKLXRoZSBvcmlnaW5hbCB2ZXJzaW9uLCBzbyB0aGF0IHRoZSBvcmlnaW5hbCBhdXRob3IncyBy ZXB1dGF0aW9uIHdpbGwgbm90IGJlCi1hZmZlY3RlZCBieSBwcm9ibGVtcyB0aGF0IG1pZ2h0IGJl IGludHJvZHVjZWQgYnkgb3RoZXJzLgotCi1GaW5hbGx5LCBzb2Z0d2FyZSBwYXRlbnRzIHBvc2Ug YSBjb25zdGFudCB0aHJlYXQgdG8gdGhlIGV4aXN0ZW5jZSBvZiBhbnkgZnJlZQotcHJvZ3JhbS4g V2Ugd2lzaCB0byBtYWtlIHN1cmUgdGhhdCBhIGNvbXBhbnkgY2Fubm90IGVmZmVjdGl2ZWx5IHJl c3RyaWN0IHRoZQotdXNlcnMgb2YgYSBmcmVlIHByb2dyYW0gYnkgb2J0YWluaW5nIGEgcmVzdHJp Y3RpdmUgbGljZW5zZSBmcm9tIGEgcGF0ZW50IGhvbGRlci4KLVRoZXJlZm9yZSwgd2UgaW5zaXN0 IHRoYXQgYW55IHBhdGVudCBsaWNlbnNlIG9idGFpbmVkIGZvciBhIHZlcnNpb24gb2YgdGhlCi1s aWJyYXJ5IG11c3QgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBmdWxsIGZyZWVkb20gb2YgdXNlIHNw ZWNpZmllZCBpbiB0aGlzCi1saWNlbnNlLgotCi1Nb3N0IEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5n IHNvbWUgbGlicmFyaWVzLCBpcyBjb3ZlcmVkIGJ5IHRoZSBvcmRpbmFyeSBHTlUKLUdlbmVyYWwg UHVibGljIExpY2Vuc2UuIFRoaXMgbGljZW5zZSwgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSwKLWFwcGxpZXMgdG8gY2VydGFpbiBkZXNpZ25hdGVkIGxpYnJhcmllcywgYW5k IGlzIHF1aXRlIGRpZmZlcmVudCBmcm9tIHRoZSBvcmRpbmFyeQotR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZS4gV2UgdXNlIHRoaXMgbGljZW5zZSBmb3IgY2VydGFpbiBsaWJyYXJpZXMgaW4gb3JkZXIK LXRvIHBlcm1pdCBsaW5raW5nIHRob3NlIGxpYnJhcmllcyBpbnRvIG5vbi1mcmVlIHByb2dyYW1z LgotCi1XaGVuIGEgcHJvZ3JhbSBpcyBsaW5rZWQgd2l0aCBhIGxpYnJhcnksIHdoZXRoZXIgc3Rh dGljYWxseSBvciB1c2luZyBhIHNoYXJlZAotbGlicmFyeSwgdGhlIGNvbWJpbmF0aW9uIG9mIHRo ZSB0d28gaXMgbGVnYWxseSBzcGVha2luZyBhIGNvbWJpbmVkIHdvcmssIGEKLWRlcml2YXRpdmUg b2YgdGhlIG9yaWdpbmFsIGxpYnJhcnkuIFRoZSBvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIHRoZXJlZm9yZQotcGVybWl0cyBzdWNoIGxpbmtpbmcgb25seSBpZiB0aGUgZW50aXJlIGNv bWJpbmF0aW9uIGZpdHMgaXRzIGNyaXRlcmlhIG9mIGZyZWVkb20uCi1UaGUgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgcGVybWl0cyBtb3JlIGxheCBjcml0ZXJpYSBmb3IgbGlua2luZyBv dGhlcgotY29kZSB3aXRoIHRoZSBsaWJyYXJ5LgotCi1XZSBjYWxsIHRoaXMgbGljZW5zZSB0aGUg Ikxlc3NlciIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBiZWNhdXNlIGl0IGRvZXMgTGVzcwotdG8g cHJvdGVjdCB0aGUgdXNlcidzIGZyZWVkb20gdGhhbiB0aGUgb3JkaW5hcnkgR2VuZXJhbCBQdWJs aWMgTGljZW5zZS4gSXQKLWFsc28gcHJvdmlkZXMgb3RoZXIgZnJlZSBzb2Z0d2FyZSBkZXZlbG9w ZXJzIExlc3Mgb2YgYW4gYWR2YW50YWdlIG92ZXIgY29tcGV0aW5nCi1ub24tZnJlZSBwcm9ncmFt cy4gVGhlc2UgZGlzYWR2YW50YWdlcyBhcmUgdGhlIHJlYXNvbiB3ZSB1c2UgdGhlIG9yZGluYXJ5 Ci1HZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtYW55IGxpYnJhcmllcy4gSG93ZXZlciwgdGhl IExlc3NlciBsaWNlbnNlIHByb3ZpZGVzCi1hZHZhbnRhZ2VzIGluIGNlcnRhaW4gc3BlY2lhbCBj aXJjdW1zdGFuY2VzLgotCi1Gb3IgZXhhbXBsZSwgb24gcmFyZSBvY2Nhc2lvbnMsIHRoZXJlIG1h eSBiZSBhIHNwZWNpYWwgbmVlZCB0byBlbmNvdXJhZ2UgdGhlCi13aWRlc3QgcG9zc2libGUgdXNl IG9mIGEgY2VydGFpbiBsaWJyYXJ5LCBzbyB0aGF0IGl0IGJlY29tZXMgYSBkZS1mYWN0byBzdGFu ZGFyZC4KLVRvIGFjaGlldmUgdGhpcywgbm9uLWZyZWUgcHJvZ3JhbXMgbXVzdCBiZSBhbGxvd2Vk IHRvIHVzZSB0aGUgbGlicmFyeS4gQSBtb3JlCi1mcmVxdWVudCBjYXNlIGlzIHRoYXQgYSBmcmVl IGxpYnJhcnkgZG9lcyB0aGUgc2FtZSBqb2IgYXMgd2lkZWx5IHVzZWQgbm9uLWZyZWUKLWxpYnJh cmllcy4gSW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBsaXR0bGUgdG8gZ2FpbiBieSBsaW1pdGluZyB0 aGUgZnJlZSBsaWJyYXJ5Ci10byBmcmVlIHNvZnR3YXJlIG9ubHksIHNvIHdlIHVzZSB0aGUgTGVz c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCi0KLUluIG90aGVyIGNhc2VzLCBwZXJtaXNzaW9u IHRvIHVzZSBhIHBhcnRpY3VsYXIgbGlicmFyeSBpbiBub24tZnJlZSBwcm9ncmFtcwotZW5hYmxl cyBhIGdyZWF0ZXIgbnVtYmVyIG9mIHBlb3BsZSB0byB1c2UgYSBsYXJnZSBib2R5IG9mIGZyZWUg c29mdHdhcmUuIEZvcgotZXhhbXBsZSwgcGVybWlzc2lvbiB0byB1c2UgdGhlIEdOVSBDIExpYnJh cnkgaW4gbm9uLWZyZWUgcHJvZ3JhbXMgZW5hYmxlcwotbWFueSBtb3JlIHBlb3BsZSB0byB1c2Ug dGhlIHdob2xlIEdOVSBvcGVyYXRpbmcgc3lzdGVtLCBhcyB3ZWxsIGFzIGl0cyB2YXJpYW50LAot dGhlIEdOVS9MaW51eCBvcGVyYXRpbmcgc3lzdGVtLgotCi1BbHRob3VnaCB0aGUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgaXMgTGVzcyBwcm90ZWN0aXZlIG9mIHRoZSB1c2VycycKLWZy ZWVkb20sIGl0IGRvZXMgZW5zdXJlIHRoYXQgdGhlIHVzZXIgb2YgYSBwcm9ncmFtIHRoYXQgaXMg bGlua2VkIHdpdGggdGhlCi1MaWJyYXJ5IGhhcyB0aGUgZnJlZWRvbSBhbmQgdGhlIHdoZXJld2l0 aGFsIHRvIHJ1biB0aGF0IHByb2dyYW0gdXNpbmcgYSBtb2RpZmllZAotdmVyc2lvbiBvZiB0aGUg TGlicmFyeS4KLQotVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcs IGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uCi1mb2xsb3cuIFBheSBjbG9zZSBhdHRlbnRp b24gdG8gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhICJ3b3JrIGJhc2VkIG9uIHRoZQotbGlicmFy eSIgYW5kIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBsaWJyYXJ5Ii4gVGhlIGZvcm1lciBjb250YWlu cyBjb2RlIGRlcml2ZWQKLWZyb20gdGhlIGxpYnJhcnksIHdoZXJlYXMgdGhlIGxhdHRlciBtdXN0 IGJlIGNvbWJpbmVkIHdpdGggdGhlIGxpYnJhcnkgaW4KLW9yZGVyIHRvIHJ1bi4KLQotVEVSTVMg QU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9O Ci0KLTAuIFRoaXMgTGljZW5zZSBBZ3JlZW1lbnQgYXBwbGllcyB0byBhbnkgc29mdHdhcmUgbGli cmFyeSBvciBvdGhlciBwcm9ncmFtCi13aGljaCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkg dGhlIGNvcHlyaWdodCBob2xkZXIgb3Igb3RoZXIgYXV0aG9yaXplZAotcGFydHkgc2F5aW5nIGl0 IG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMZXNzZXIgR2VuZXJh bAotUHVibGljIExpY2Vuc2UgKGFsc28gY2FsbGVkICJ0aGlzIExpY2Vuc2UiKS4gRWFjaCBsaWNl bnNlZSBpcyBhZGRyZXNzZWQgYXMKLSJ5b3UiLgotCi1BICJsaWJyYXJ5IiBtZWFucyBhIGNvbGxl Y3Rpb24gb2Ygc29mdHdhcmUgZnVuY3Rpb25zIGFuZC9vciBkYXRhIHByZXBhcmVkCi1zbyBhcyB0 byBiZSBjb252ZW5pZW50bHkgbGlua2VkIHdpdGggYXBwbGljYXRpb24gcHJvZ3JhbXMgKHdoaWNo IHVzZSBzb21lCi1vZiB0aG9zZSBmdW5jdGlvbnMgYW5kIGRhdGEpIHRvIGZvcm0gZXhlY3V0YWJs ZXMuCi0KLVRoZSAiTGlicmFyeSIsIGJlbG93LCByZWZlcnMgdG8gYW55IHN1Y2ggc29mdHdhcmUg bGlicmFyeSBvciB3b3JrIHdoaWNoIGhhcwotYmVlbiBkaXN0cmlidXRlZCB1bmRlciB0aGVzZSB0 ZXJtcy4gQSAid29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSIgbWVhbnMgZWl0aGVyCi10aGUgTGli cmFyeSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6IHRoYXQgaXMg dG8gc2F5LCBhCi13b3JrIGNvbnRhaW5pbmcgdGhlIExpYnJhcnkgb3IgYSBwb3J0aW9uIG9mIGl0 LCBlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zCi1hbmQvb3IgdHJhbnNsYXRl ZCBzdHJhaWdodGZvcndhcmRseSBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UuIChIZXJlaW5hZnRlciwg dHJhbnNsYXRpb24KLWlzIGluY2x1ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbiB0aGUgdGVybSAi bW9kaWZpY2F0aW9uIi4pCi0KLSJTb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJl ZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yIG1ha2luZyBtb2RpZmljYXRpb25zCi10byBpdC4g Rm9yIGEgbGlicmFyeSwgY29tcGxldGUgc291cmNlIGNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2Ug Y29kZSBmb3IgYWxsCi1tb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueSBhc3NvY2lhdGVkIGlu dGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzCi10aGUgc2NyaXB0cyB1c2VkIHRvIGNvbnRy b2wgY29tcGlsYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgbGlicmFyeS4KLQotQWN0aXZp dGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFy ZSBub3QgY292ZXJlZAotYnkgdGhpcyBMaWNlbnNlOyB0aGV5IGFyZSBvdXRzaWRlIGl0cyBzY29w ZS4gVGhlIGFjdCBvZiBydW5uaW5nIGEgcHJvZ3JhbQotdXNpbmcgdGhlIExpYnJhcnkgaXMgbm90 IHJlc3RyaWN0ZWQsIGFuZCBvdXRwdXQgZnJvbSBzdWNoIGEgcHJvZ3JhbSBpcyBjb3ZlcmVkCi1v bmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFy eSAoaW5kZXBlbmRlbnQgb2YKLXRoZSB1c2Ugb2YgdGhlIExpYnJhcnkgaW4gYSB0b29sIGZvciB3 cml0aW5nIGl0KS4gV2hldGhlciB0aGF0IGlzIHRydWUgZGVwZW5kcwotb24gd2hhdCB0aGUgTGli cmFyeSBkb2VzIGFuZCB3aGF0IHRoZSBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgTGlicmFyeSBkb2Vz LgotCi0xLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRo ZSBMaWJyYXJ5J3MgY29tcGxldGUgc291cmNlCi1jb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBh bnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAotYXBwcm9wcmlh dGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCBkaXNjbGFpbWVyCi1vZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZSBub3RpY2Vz IHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0bwotdGhlIGFic2VuY2Ugb2YgYW55IHdh cnJhbnR5OyBhbmQgZGlzdHJpYnV0ZSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGgK LXRoZSBMaWJyYXJ5LgotCi1Zb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFj dCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQgeW91Ci1tYXkgYXQgeW91ciBvcHRpb24gb2Zm ZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCi0KLTIuIFlvdSBt YXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIExpYnJhcnkgb3IgYW55IHBvcnRp b24gb2YgaXQsCi10aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBhbmQg Y29weSBhbmQgZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMKLW9yIHdvcmsgdW5kZXIgdGhl IHRlcm1zIG9mIFNlY3Rpb24gMSBhYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFs bAotb2YgdGhlc2UgY29uZGl0aW9uczoKLQotICAgICAgYSkgVGhlIG1vZGlmaWVkIHdvcmsgbXVz dCBpdHNlbGYgYmUgYSBzb2Z0d2FyZSBsaWJyYXJ5LgotCi1iKSBZb3UgbXVzdCBjYXVzZSB0aGUg ZmlsZXMgbW9kaWZpZWQgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0Ci15 b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCi0KLWMpIFlv dSBtdXN0IGNhdXNlIHRoZSB3aG9sZSBvZiB0aGUgd29yayB0byBiZSBsaWNlbnNlZCBhdCBubyBj aGFyZ2UgdG8gYWxsCi10aGlyZCBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vu c2UuCi0KLWQpIElmIGEgZmFjaWxpdHkgaW4gdGhlIG1vZGlmaWVkIExpYnJhcnkgcmVmZXJzIHRv IGEgZnVuY3Rpb24gb3IgYSB0YWJsZSBvZgotZGF0YSB0byBiZSBzdXBwbGllZCBieSBhbiBhcHBs aWNhdGlvbiBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgZmFjaWxpdHksIG90aGVyCi10aGFuIGFzIGFu IGFyZ3VtZW50IHBhc3NlZCB3aGVuIHRoZSBmYWNpbGl0eSBpcyBpbnZva2VkLCB0aGVuIHlvdSBt dXN0IG1ha2UKLWEgZ29vZCBmYWl0aCBlZmZvcnQgdG8gZW5zdXJlIHRoYXQsIGluIHRoZSBldmVu dCBhbiBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkKLXN1Y2ggZnVuY3Rpb24gb3IgdGFibGUs IHRoZSBmYWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5kIHBlcmZvcm1zIHdoYXRldmVyCi1wYXJ0 IG9mIGl0cyBwdXJwb3NlIHJlbWFpbnMgbWVhbmluZ2Z1bC4KLQotKEZvciBleGFtcGxlLCBhIGZ1 bmN0aW9uIGluIGEgbGlicmFyeSB0byBjb21wdXRlIHNxdWFyZSByb290cyBoYXMgYSBwdXJwb3Nl Ci10aGF0IGlzIGVudGlyZWx5IHdlbGwtZGVmaW5lZCBpbmRlcGVuZGVudCBvZiB0aGUgYXBwbGlj YXRpb24uIFRoZXJlZm9yZSwgU3Vic2VjdGlvbgotMmQgcmVxdWlyZXMgdGhhdCBhbnkgYXBwbGlj YXRpb24tc3VwcGxpZWQgZnVuY3Rpb24gb3IgdGFibGUgdXNlZCBieSB0aGlzIGZ1bmN0aW9uCi1t dXN0IGJlIG9wdGlvbmFsOiBpZiB0aGUgYXBwbGljYXRpb24gZG9lcyBub3Qgc3VwcGx5IGl0LCB0 aGUgc3F1YXJlIHJvb3QgZnVuY3Rpb24KLW11c3Qgc3RpbGwgY29tcHV0ZSBzcXVhcmUgcm9vdHMu KQotCi1UaGVzZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3 aG9sZS4gSWYgaWRlbnRpZmlhYmxlCi1zZWN0aW9ucyBvZiB0aGF0IHdvcmsgYXJlIG5vdCBkZXJp dmVkIGZyb20gdGhlIExpYnJhcnksIGFuZCBjYW4gYmUgcmVhc29uYWJseQotY29uc2lkZXJlZCBp bmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4gdGhlbXNlbHZlcywgdGhlbiB0aGlzIExp Y2Vuc2UsCi1hbmQgaXRzIHRlcm1zLCBkbyBub3QgYXBwbHkgdG8gdGhvc2Ugc2VjdGlvbnMgd2hl biB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzCi1zZXBhcmF0ZSB3b3Jrcy4gQnV0IHdoZW4geW91IGRp c3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlCi13aGljaCBpcyBh IHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnksIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xl IG11c3QgYmUKLW9uIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25z IGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kCi10byB0aGUgZW50aXJlIHdob2xlLCBhbmQgdGh1 cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlCi1pdC4KLQot VGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0 cyBvciBjb250ZXN0IHlvdXIKLXJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4gZW50aXJlbHkgYnkgeW91 OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8gZXhlcmNpc2UKLXRoZSByaWdodCB0byBjb250cm9s IHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvciBjb2xsZWN0aXZlIHdvcmtzIGJhc2Vk Ci1vbiB0aGUgTGlicmFyeS4KLQotSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5v dGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgTGlicmFyeSB3aXRoCi10aGUgTGlicmFyeSAob3Ig d2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkpIG9uIGEgdm9sdW1lIG9mIGEgc3RvcmFn ZQotb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1 bmRlciB0aGUgc2NvcGUgb2YgdGhpcwotTGljZW5zZS4KLQotMy4gWW91IG1heSBvcHQgdG8gYXBw bHkgdGhlIHRlcm1zIG9mIHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot aW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UgdG8gYSBnaXZlbiBjb3B5IG9mIHRoZSBMaWJyYXJ5LiBU byBkbyB0aGlzLCB5b3UgbXVzdAotYWx0ZXIgYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8g dGhpcyBMaWNlbnNlLCBzbyB0aGF0IHRoZXkgcmVmZXIgdG8gdGhlCi1vcmRpbmFyeSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLCBpbnN0ZWFkIG9mIHRvIHRoaXMgTGljZW5z ZS4KLShJZiBhIG5ld2VyIHZlcnNpb24gdGhhbiB2ZXJzaW9uIDIgb2YgdGhlIG9yZGluYXJ5IEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi1oYXMgYXBwZWFyZWQsIHRoZW4geW91IGNhbiBzcGVj aWZ5IHRoYXQgdmVyc2lvbiBpbnN0ZWFkIGlmIHlvdSB3aXNoLikgRG8gbm90Ci1tYWtlIGFueSBv dGhlciBjaGFuZ2UgaW4gdGhlc2Ugbm90aWNlcy4KLQotT25jZSB0aGlzIGNoYW5nZSBpcyBtYWRl IGluIGEgZ2l2ZW4gY29weSwgaXQgaXMgaXJyZXZlcnNpYmxlIGZvciB0aGF0IGNvcHksCi1zbyB0 aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBhbGwgc3Vi c2VxdWVudCBjb3BpZXMKLWFuZCBkZXJpdmF0aXZlIHdvcmtzIG1hZGUgZnJvbSB0aGF0IGNvcHku Ci0KLVRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIHlvdSB3aXNoIHRvIGNvcHkgcGFydCBvZiB0 aGUgY29kZSBvZiB0aGUgTGlicmFyeQotaW50byBhIHByb2dyYW0gdGhhdCBpcyBub3QgYSBsaWJy YXJ5LgotCi00LiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgKG9yIGEg cG9ydGlvbiBvciBkZXJpdmF0aXZlIG9mCi1pdCwgdW5kZXIgU2VjdGlvbiAyKSBpbiBvYmplY3Qg Y29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mCi1TZWN0aW9ucyAxIGFu ZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFjY29tcGFueSBpdCB3aXRoIHRoZSBjb21wbGV0 ZSBjb3JyZXNwb25kaW5nCi1tYWNoaW5lLXJlYWRhYmxlIHNvdXJjZSBjb2RlLCB3aGljaCBtdXN0 IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZgotU2VjdGlvbnMgMSBhbmQgMiBhYm92 ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4K LQotSWYgZGlzdHJpYnV0aW9uIG9mIG9iamVjdCBjb2RlIGlzIG1hZGUgYnkgb2ZmZXJpbmcgYWNj ZXNzIHRvIGNvcHkgZnJvbSBhIGRlc2lnbmF0ZWQKLXBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2 YWxlbnQgYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUKLXBsYWNl IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnQgdG8gZGlzdHJpYnV0ZSB0aGUgc291cmNlIGNvZGUs IGV2ZW4gdGhvdWdoCi10aGlyZCBwYXJ0aWVzIGFyZSBub3QgY29tcGVsbGVkIHRvIGNvcHkgdGhl IHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KLQotNS4gQSBwcm9ncmFtIHRoYXQg Y29udGFpbnMgbm8gZGVyaXZhdGl2ZSBvZiBhbnkgcG9ydGlvbiBvZiB0aGUgTGlicmFyeSwgYnV0 Ci1pcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIExpYnJhcnkgYnkgYmVpbmcgY29tcGlsZWQg b3IgbGlua2VkIHdpdGggaXQsCi1pcyBjYWxsZWQgYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJh cnkiLiBTdWNoIGEgd29yaywgaW4gaXNvbGF0aW9uLCBpcyBub3QKLWEgZGVyaXZhdGl2ZSB3b3Jr IG9mIHRoZSBMaWJyYXJ5LCBhbmQgdGhlcmVmb3JlIGZhbGxzIG91dHNpZGUgdGhlIHNjb3BlIG9m Ci10aGlzIExpY2Vuc2UuCi0KLUhvd2V2ZXIsIGxpbmtpbmcgYSAid29yayB0aGF0IHVzZXMgdGhl IExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkgY3JlYXRlcyBhbgotZXhlY3V0YWJsZSB0aGF0IGlz IGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVzZSBpdCBjb250YWlucyBwb3J0aW9u cwotb2YgdGhlIExpYnJhcnkpLCByYXRoZXIgdGhhbiBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgbGli cmFyeSIuIFRoZSBleGVjdXRhYmxlCi1pcyB0aGVyZWZvcmUgY292ZXJlZCBieSB0aGlzIExpY2Vu c2UuIFNlY3Rpb24gNiBzdGF0ZXMgdGVybXMgZm9yIGRpc3RyaWJ1dGlvbgotb2Ygc3VjaCBleGVj dXRhYmxlcy4KLQotV2hlbiBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgdXNlcyBtYXRl cmlhbCBmcm9tIGEgaGVhZGVyIGZpbGUgdGhhdAotaXMgcGFydCBvZiB0aGUgTGlicmFyeSwgdGhl IG9iamVjdCBjb2RlIGZvciB0aGUgd29yayBtYXkgYmUgYSBkZXJpdmF0aXZlIHdvcmsKLW9mIHRo ZSBMaWJyYXJ5IGV2ZW4gdGhvdWdoIHRoZSBzb3VyY2UgY29kZSBpcyBub3QuIFdoZXRoZXIgdGhp cyBpcyB0cnVlIGlzCi1lc3BlY2lhbGx5IHNpZ25pZmljYW50IGlmIHRoZSB3b3JrIGNhbiBiZSBs aW5rZWQgd2l0aG91dCB0aGUgTGlicmFyeSwgb3IgaWYKLXRoZSB3b3JrIGlzIGl0c2VsZiBhIGxp YnJhcnkuIFRoZSB0aHJlc2hvbGQgZm9yIHRoaXMgdG8gYmUgdHJ1ZSBpcyBub3QgcHJlY2lzZWx5 Ci1kZWZpbmVkIGJ5IGxhdy4KLQotSWYgc3VjaCBhbiBvYmplY3QgZmlsZSB1c2VzIG9ubHkgbnVt ZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEgc3RydWN0dXJlIGxheW91dHMKLWFuZCBhY2Nlc3NvcnMs IGFuZCBzbWFsbCBtYWNyb3MgYW5kIHNtYWxsIGlubGluZSBmdW5jdGlvbnMgKHRlbiBsaW5lcyBv ciBsZXNzCi1pbiBsZW5ndGgpLCB0aGVuIHRoZSB1c2Ugb2YgdGhlIG9iamVjdCBmaWxlIGlzIHVu cmVzdHJpY3RlZCwgcmVnYXJkbGVzcyBvZgotd2hldGhlciBpdCBpcyBsZWdhbGx5IGEgZGVyaXZh dGl2ZSB3b3JrLiAoRXhlY3V0YWJsZXMgY29udGFpbmluZyB0aGlzIG9iamVjdAotY29kZSBwbHVz IHBvcnRpb25zIG9mIHRoZSBMaWJyYXJ5IHdpbGwgc3RpbGwgZmFsbCB1bmRlciBTZWN0aW9uIDYu KQotCi1PdGhlcndpc2UsIGlmIHRoZSB3b3JrIGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFy eSwgeW91IG1heSBkaXN0cmlidXRlCi10aGUgb2JqZWN0IGNvZGUgZm9yIHRoZSB3b3JrIHVuZGVy IHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDYuIEFueSBleGVjdXRhYmxlcwotY29udGFpbmluZyB0aGF0 IHdvcmsgYWxzbyBmYWxsIHVuZGVyIFNlY3Rpb24gNiwgd2hldGhlciBvciBub3QgdGhleSBhcmUg bGlua2VkCi1kaXJlY3RseSB3aXRoIHRoZSBMaWJyYXJ5IGl0c2VsZi4KLQotNi4gQXMgYW4gZXhj ZXB0aW9uIHRvIHRoZSBTZWN0aW9ucyBhYm92ZSwgeW91IG1heSBhbHNvIGNvbWJpbmUgb3IgbGlu ayBhICJ3b3JrCi10aGF0IHVzZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkgdG8gcHJv ZHVjZSBhIHdvcmsgY29udGFpbmluZyBwb3J0aW9ucwotb2YgdGhlIExpYnJhcnksIGFuZCBkaXN0 cmlidXRlIHRoYXQgd29yayB1bmRlciB0ZXJtcyBvZiB5b3VyIGNob2ljZSwgcHJvdmlkZWQKLXRo YXQgdGhlIHRlcm1zIHBlcm1pdCBtb2RpZmljYXRpb24gb2YgdGhlIHdvcmsgZm9yIHRoZSBjdXN0 b21lcidzIG93biB1c2UKLWFuZCByZXZlcnNlIGVuZ2luZWVyaW5nIGZvciBkZWJ1Z2dpbmcgc3Vj aCBtb2RpZmljYXRpb25zLgotCi1Zb3UgbXVzdCBnaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCBl YWNoIGNvcHkgb2YgdGhlIHdvcmsgdGhhdCB0aGUgTGlicmFyeQotaXMgdXNlZCBpbiBpdCBhbmQg dGhhdCB0aGUgTGlicmFyeSBhbmQgaXRzIHVzZSBhcmUgY292ZXJlZCBieSB0aGlzIExpY2Vuc2Uu Ci1Zb3UgbXVzdCBzdXBwbHkgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gSWYgdGhlIHdvcmsgZHVy aW5nIGV4ZWN1dGlvbiBkaXNwbGF5cwotY29weXJpZ2h0IG5vdGljZXMsIHlvdSBtdXN0IGluY2x1 ZGUgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIHRoZSBMaWJyYXJ5IGFtb25nCi10aGVtLCBhcyB3 ZWxsIGFzIGEgcmVmZXJlbmNlIGRpcmVjdGluZyB0aGUgdXNlciB0byB0aGUgY29weSBvZiB0aGlz IExpY2Vuc2UuCi1BbHNvLCB5b3UgbXVzdCBkbyBvbmUgb2YgdGhlc2UgdGhpbmdzOgotCi1hKSBB Y2NvbXBhbnkgdGhlIHdvcmsgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNoaW5l LXJlYWRhYmxlIHNvdXJjZQotY29kZSBmb3IgdGhlIExpYnJhcnkgaW5jbHVkaW5nIHdoYXRldmVy IGNoYW5nZXMgd2VyZSB1c2VkIGluIHRoZSB3b3JrICh3aGljaAotbXVzdCBiZSBkaXN0cmlidXRl ZCB1bmRlciBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlKTsgYW5kLCBpZiB0aGUgd29yayBpcyBhbgot ZXhlY3V0YWJsZSBsaW5rZWQgd2l0aCB0aGUgTGlicmFyeSwgd2l0aCB0aGUgY29tcGxldGUgbWFj aGluZS1yZWFkYWJsZSAid29yawotdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiwgYXMgb2JqZWN0IGNv ZGUgYW5kL29yIHNvdXJjZSBjb2RlLCBzbyB0aGF0IHRoZSB1c2VyCi1jYW4gbW9kaWZ5IHRoZSBM aWJyYXJ5IGFuZCB0aGVuIHJlbGluayB0byBwcm9kdWNlIGEgbW9kaWZpZWQgZXhlY3V0YWJsZSBj b250YWluaW5nCi10aGUgbW9kaWZpZWQgTGlicmFyeS4gKEl0IGlzIHVuZGVyc3Rvb2QgdGhhdCB0 aGUgdXNlciB3aG8gY2hhbmdlcyB0aGUgY29udGVudHMKLW9mIGRlZmluaXRpb25zIGZpbGVzIGlu IHRoZSBMaWJyYXJ5IHdpbGwgbm90IG5lY2Vzc2FyaWx5IGJlIGFibGUgdG8gcmVjb21waWxlCi10 aGUgYXBwbGljYXRpb24gdG8gdXNlIHRoZSBtb2RpZmllZCBkZWZpbml0aW9ucy4pCi0KLWIpIFVz ZSBhIHN1aXRhYmxlIHNoYXJlZCBsaWJyYXJ5IG1lY2hhbmlzbSBmb3IgbGlua2luZyB3aXRoIHRo ZSBMaWJyYXJ5LiBBCi1zdWl0YWJsZSBtZWNoYW5pc20gaXMgb25lIHRoYXQgKDEpIHVzZXMgYXQg cnVuIHRpbWUgYSBjb3B5IG9mIHRoZSBsaWJyYXJ5Ci1hbHJlYWR5IHByZXNlbnQgb24gdGhlIHVz ZXIncyBjb21wdXRlciBzeXN0ZW0sIHJhdGhlciB0aGFuIGNvcHlpbmcgbGlicmFyeQotZnVuY3Rp b25zIGludG8gdGhlIGV4ZWN1dGFibGUsIGFuZCAoMikgd2lsbCBvcGVyYXRlIHByb3Blcmx5IHdp dGggYSBtb2RpZmllZAotdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgaWYgdGhlIHVzZXIgaW5zdGFs bHMgb25lLCBhcyBsb25nIGFzIHRoZSBtb2RpZmllZAotdmVyc2lvbiBpcyBpbnRlcmZhY2UtY29t cGF0aWJsZSB3aXRoIHRoZSB2ZXJzaW9uIHRoYXQgdGhlIHdvcmsgd2FzIG1hZGUgd2l0aC4KLQot YykgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQg bGVhc3QgdGhyZWUgeWVhcnMsCi10byBnaXZlIHRoZSBzYW1lIHVzZXIgdGhlIG1hdGVyaWFscyBz cGVjaWZpZWQgaW4gU3Vic2VjdGlvbiA2YSwgYWJvdmUsIGZvcgotYSBjaGFyZ2Ugbm8gbW9yZSB0 aGFuIHRoZSBjb3N0IG9mIHBlcmZvcm1pbmcgdGhpcyBkaXN0cmlidXRpb24uCi0KLWQpIElmIGRp c3RyaWJ1dGlvbiBvZiB0aGUgd29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5 IGZyb20gYSBkZXNpZ25hdGVkCi1wbGFjZSwgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29w eSB0aGUgYWJvdmUgc3BlY2lmaWVkIG1hdGVyaWFscyBmcm9tCi10aGUgc2FtZSBwbGFjZS4KLQot ZSkgVmVyaWZ5IHRoYXQgdGhlIHVzZXIgaGFzIGFscmVhZHkgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZXNlIG1hdGVyaWFscyBvcgotdGhhdCB5b3UgaGF2ZSBhbHJlYWR5IHNlbnQgdGhpcyB1c2VyIGEg Y29weS4KLQotRm9yIGFuIGV4ZWN1dGFibGUsIHRoZSByZXF1aXJlZCBmb3JtIG9mIHRoZSAid29y ayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIG11c3QKLWluY2x1ZGUgYW55IGRhdGEgYW5kIHV0aWxp dHkgcHJvZ3JhbXMgbmVlZGVkIGZvciByZXByb2R1Y2luZyB0aGUgZXhlY3V0YWJsZQotZnJvbSBp dC4gSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIG1hdGVyaWFscyB0byBiZSBk aXN0cmlidXRlZAotbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRp c3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yCi1iaW5hcnkgZm9ybSkgd2l0aCB0aGUgbWFq b3IgY29tcG9uZW50cyAoY29tcGlsZXIsIGtlcm5lbCwgYW5kIHNvIG9uKSBvZiB0aGUKLW9wZXJh dGluZyBzeXN0ZW0gb24gd2hpY2ggdGhlIGV4ZWN1dGFibGUgcnVucywgdW5sZXNzIHRoYXQgY29t cG9uZW50IGl0c2VsZgotYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCi0KLUl0IG1heSBoYXBw ZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRpY3RzIHRoZSBsaWNlbnNlIHJlc3RyaWN0 aW9ucyBvZgotb3RoZXIgcHJvcHJpZXRhcnkgbGlicmFyaWVzIHRoYXQgZG8gbm90IG5vcm1hbGx5 IGFjY29tcGFueSB0aGUgb3BlcmF0aW5nIHN5c3RlbS4KLVN1Y2ggYSBjb250cmFkaWN0aW9uIG1l YW5zIHlvdSBjYW5ub3QgdXNlIGJvdGggdGhlbSBhbmQgdGhlIExpYnJhcnkgdG9nZXRoZXIKLWlu IGFuIGV4ZWN1dGFibGUgdGhhdCB5b3UgZGlzdHJpYnV0ZS4KLQotNy4gWW91IG1heSBwbGFjZSBs aWJyYXJ5IGZhY2lsaXRpZXMgdGhhdCBhcmUgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5IHNp ZGUtYnktc2lkZQotaW4gYSBzaW5nbGUgbGlicmFyeSB0b2dldGhlciB3aXRoIG90aGVyIGxpYnJh cnkgZmFjaWxpdGllcyBub3QgY292ZXJlZCBieQotdGhpcyBMaWNlbnNlLCBhbmQgZGlzdHJpYnV0 ZSBzdWNoIGEgY29tYmluZWQgbGlicmFyeSwgcHJvdmlkZWQgdGhhdCB0aGUgc2VwYXJhdGUKLWRp c3RyaWJ1dGlvbiBvZiB0aGUgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSBhbmQgb2YgdGhlIG90 aGVyIGxpYnJhcnkgZmFjaWxpdGllcwotaXMgb3RoZXJ3aXNlIHBlcm1pdHRlZCwgYW5kIHByb3Zp ZGVkIHRoYXQgeW91IGRvIHRoZXNlIHR3byB0aGluZ3M6Ci0KLWEpIEFjY29tcGFueSB0aGUgY29t YmluZWQgbGlicmFyeSB3aXRoIGEgY29weSBvZiB0aGUgc2FtZSB3b3JrIGJhc2VkIG9uIHRoZQot TGlicmFyeSwgdW5jb21iaW5lZCB3aXRoIGFueSBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMuIFRo aXMgbXVzdCBiZSBkaXN0cmlidXRlZAotdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBTZWN0aW9ucyBh Ym92ZS4KLQotYikgR2l2ZSBwcm9taW5lbnQgbm90aWNlIHdpdGggdGhlIGNvbWJpbmVkIGxpYnJh cnkgb2YgdGhlIGZhY3QgdGhhdCBwYXJ0IG9mCi1pdCBpcyBhIHdvcmsgYmFzZWQgb24gdGhlIExp YnJhcnksIGFuZCBleHBsYWluaW5nIHdoZXJlIHRvIGZpbmQgdGhlIGFjY29tcGFueWluZwotdW5j b21iaW5lZCBmb3JtIG9mIHRoZSBzYW1lIHdvcmsuCi0KLTguIFlvdSBtYXkgbm90IGNvcHksIG1v ZGlmeSwgc3VibGljZW5zZSwgbGluayB3aXRoLCBvciBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5Ci1l eGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gQW55IGF0dGVt cHQgb3RoZXJ3aXNlIHRvCi1jb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3Ig ZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBpcyB2b2lkLCBhbmQKLXdpbGwgYXV0b21hdGljYWxseSB0 ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLiBIb3dldmVyLCBwYXJ0aWVz Ci13aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIgdGhp cyBMaWNlbnNlIHdpbGwgbm90Ci1oYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9u ZyBhcyBzdWNoIHBhcnRpZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KLQotOS4gWW91IGFy ZSBub3QgcmVxdWlyZWQgdG8gYWNjZXB0IHRoaXMgTGljZW5zZSwgc2luY2UgeW91IGhhdmUgbm90 IHNpZ25lZAotaXQuIEhvd2V2ZXIsIG5vdGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24g dG8gbW9kaWZ5IG9yIGRpc3RyaWJ1dGUgdGhlCi1MaWJyYXJ5IG9yIGl0cyBkZXJpdmF0aXZlIHdv cmtzLiBUaGVzZSBhY3Rpb25zIGFyZSBwcm9oaWJpdGVkIGJ5IGxhdyBpZiB5b3UKLWRvIG5vdCBh Y2NlcHQgdGhpcyBMaWNlbnNlLiBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBkaXN0cmlidXRp bmcgdGhlIExpYnJhcnkKLShvciBhbnkgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSksIHlvdSBp bmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlCi10byBkbyBzbywgYW5kIGFs bCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBt b2RpZnlpbmcKLXRoZSBMaWJyYXJ5IG9yIHdvcmtzIGJhc2VkIG9uIGl0LgotCi0xMC4gRWFjaCB0 aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRo ZSBMaWJyYXJ5KSwKLXRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vu c2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3IKLXRvIGNvcHksIGRpc3RyaWJ1dGUsIGxpbmsg d2l0aCBvciBtb2RpZnkgdGhlIExpYnJhcnkgc3ViamVjdCB0byB0aGVzZSB0ZXJtcwotYW5kIGNv bmRpdGlvbnMuIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlciByZXN0cmljdGlvbnMgb24g dGhlIHJlY2lwaWVudHMnCi1leGVyY2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgaGVyZWluLiBZ b3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nCi1jb21wbGlhbmNlIGJ5IHRoaXJk IHBhcnRpZXMgd2l0aCB0aGlzIExpY2Vuc2UuCi0KLTExLiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBv ZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50IGluZnJpbmdlbWVudAot b3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLCBj b25kaXRpb25zIGFyZSBpbXBvc2VkCi1vbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFn cmVlbWVudCBvciBvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUKLWNvbmRpdGlvbnMgb2Yg dGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdCBleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMg b2YKLXRoaXMgTGljZW5zZS4gSWYgeW91IGNhbm5vdCBkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlz Znkgc2ltdWx0YW5lb3VzbHkgeW91cgotb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBMaWNlbnNlIGFu ZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzCi1hIGNvbnNlcXVlbmNl IHlvdSBtYXkgbm90IGRpc3RyaWJ1dGUgdGhlIExpYnJhcnkgYXQgYWxsLiBGb3IgZXhhbXBsZSwg aWYgYQotcGF0ZW50IGxpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0 cmlidXRpb24gb2YgdGhlIExpYnJhcnkKLWJ5IGFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMg ZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbiB0aGUKLW9ubHkgd2F5IHlv dSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0byByZWZy YWluIGVudGlyZWx5Ci1mcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeS4KLQotSWYgYW55 IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxl IHVuZGVyIGFueQotcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBz ZWN0aW9uIGlzIGludGVuZGVkIHRvIGFwcGx5LAotYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUg aXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIgY2lyY3Vtc3RhbmNlcy4KLQotSXQgaXMgbm90 IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFu eSBwYXRlbnRzCi1vciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2 YWxpZGl0eSBvZiBhbnkgc3VjaCBjbGFpbXM7Ci10aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1 cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUgaW50ZWdyaXR5IG9mIHRoZSBmcmVlCi1zb2Z0d2FyZSBk aXN0cmlidXRpb24gc3lzdGVtIHdoaWNoIGlzIGltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNl IHByYWN0aWNlcy4KLU1hbnkgcGVvcGxlIGhhdmUgbWFkZSBnZW5lcm91cyBjb250cmlidXRpb25z IHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlCi1kaXN0cmlidXRlZCB0aHJvdWdoIHRoYXQg c3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdAotc3lz dGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUg aXMgd2lsbGluZyB0bwotZGlzdHJpYnV0ZSBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0 ZW0gYW5kIGEgbGljZW5zZWUgY2Fubm90IGltcG9zZQotdGhhdCBjaG9pY2UuCi0KLVRoaXMgc2Vj dGlvbiBpcyBpbnRlbmRlZCB0byBtYWtlIHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZl ZCB0byBiZSBhCi1jb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCi0KLTEy LiBJZiB0aGUgZGlzdHJpYnV0aW9uIGFuZC9vciB1c2Ugb2YgdGhlIExpYnJhcnkgaXMgcmVzdHJp Y3RlZCBpbiBjZXJ0YWluCi1jb3VudHJpZXMgZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJp Z2h0ZWQgaW50ZXJmYWNlcywgdGhlIG9yaWdpbmFsIGNvcHlyaWdodAotaG9sZGVyIHdobyBwbGFj ZXMgdGhlIExpYnJhcnkgdW5kZXIgdGhpcyBMaWNlbnNlIG1heSBhZGQgYW4gZXhwbGljaXQgZ2Vv Z3JhcGhpY2FsCi1kaXN0cmlidXRpb24gbGltaXRhdGlvbiBleGNsdWRpbmcgdGhvc2UgY291bnRy aWVzLCBzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcwotcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcg Y291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiBJbiBzdWNoIGNhc2UsIHRoaXMKLUxpY2Vuc2Ug aW5jb3Jwb3JhdGVzIHRoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2Yg dGhpcyBMaWNlbnNlLgotCi0xMy4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVi bGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMgb2YKLXRoZSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gU3VjaCBuZXcgdmVyc2lvbnMgd2lsbAot YmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZm ZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3MKLW5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KLQotRWFj aCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIElmIHRo ZSBMaWJyYXJ5IHNwZWNpZmllcwotYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hp Y2ggYXBwbGllcyB0byBpdCBhbmQgImFueSBsYXRlciB2ZXJzaW9uIiwKLXlvdSBoYXZlIHRoZSBv cHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhh dCB2ZXJzaW9uCi1vciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbi4gSWYgdGhlCi1MaWJyYXJ5IGRvZXMgbm90IHNwZWNpZnkgYSBs aWNlbnNlIHZlcnNpb24gbnVtYmVyLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbgotZXZlciBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLQotMTQuIElmIHlvdSB3 aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBMaWJyYXJ5IGludG8gb3RoZXIgZnJlZSBw cm9ncmFtcwotd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGluY29tcGF0aWJsZSB3 aXRoIHRoZXNlLCB3cml0ZSB0byB0aGUgYXV0aG9yCi10byBhc2sgZm9yIHBlcm1pc3Npb24uIEZv ciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQotRm91 bmRhdGlvbiwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgd2Ugc29tZXRp bWVzIG1ha2UgZXhjZXB0aW9ucwotZm9yIHRoaXMuIE91ciBkZWNpc2lvbiB3aWxsIGJlIGd1aWRl ZCBieSB0aGUgdHdvIGdvYWxzIG9mIHByZXNlcnZpbmcgdGhlIGZyZWUKLXN0YXR1cyBvZiBhbGwg ZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kIG9mIHByb21vdGluZyB0aGUgc2hh cmluZwotYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KLQotICAgTk8gV0FSUkFOVFkK LQotMTUuIEJFQ0FVU0UgVEhFIExJQlJBUlkgSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRI RVJFIElTIE5PIFdBUlJBTlRZIEZPUgotVEhFIExJQlJBUlksIFRPIFRIRSBFWFRFTlQgUEVSTUlU VEVEIEJZIEFQUExJQ0FCTEUgTEFXLiBFWENFUFQgV0hFTiBPVEhFUldJU0UKLVNUQVRFRCBJTiBX UklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURF IFRIRSBMSUJSQVJZCi0iQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhF UiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLAotQlVUIE5PVCBMSU1JVEVEIFRPLCBU SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiBUSEUgRU5USVJFIFJJU0sgQVMgVE8gVEhFIFFVQUxJVFkg QU5EIFBFUkZPUk1BTkNFCi1PRiBUSEUgTElCUkFSWSBJUyBXSVRIIFlPVS4gU0hPVUxEIFRIRSBM SUJSQVJZIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRQotVEhFIENPU1QgT0YgQUxMIE5FQ0VT U0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgotCi0xNi4gSU4gTk8gRVZFTlQg VU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5H Ci1XSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBN T0RJRlkgQU5EL09SIFJFRElTVFJJQlVURQotVEhFIExJQlJBUlkgQVMgUEVSTUlUVEVEIEFCT1ZF LCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZCi1HRU5FUkFMLCBT UEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBP RiBUSEUgVVNFCi1PUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBMSUJSQVJZIChJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIExPU1MgT0YgREFUQQotT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFD Q1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkgWU9VIE9SIFRISVJEIFBBUlRJRVMKLU9SIEEg RkFJTFVSRSBPRiBUSEUgTElCUkFSWSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFNPRlRXQVJF KSwgRVZFTiBJRiBTVUNICi1IT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBP RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgotRU5EIE9GIFRFUk1TIEFORCBDT05E SVRJT05TCi0KLUhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBMaWJyYXJpZXMK LQotSWYgeW91IGRldmVsb3AgYSBuZXcgbGlicmFyeSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9m IHRoZSBncmVhdGVzdCBwb3NzaWJsZQotdXNlIHRvIHRoZSBwdWJsaWMsIHdlIHJlY29tbWVuZCBt YWtpbmcgaXQgZnJlZSBzb2Z0d2FyZSB0aGF0IGV2ZXJ5b25lIGNhbgotcmVkaXN0cmlidXRlIGFu ZCBjaGFuZ2UuIFlvdSBjYW4gZG8gc28gYnkgcGVybWl0dGluZyByZWRpc3RyaWJ1dGlvbiB1bmRl cgotdGhlc2UgdGVybXMgKG9yLCBhbHRlcm5hdGl2ZWx5LCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IG9yZGluYXJ5IEdlbmVyYWwgUHVibGljCi1MaWNlbnNlKS4KLQotVG8gYXBwbHkgdGhlc2UgdGVy bXMsIGF0dGFjaCB0aGUgZm9sbG93aW5nIG5vdGljZXMgdG8gdGhlIGxpYnJhcnkuIEl0IGlzIHNh ZmVzdAotdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8g bW9zdCBlZmZlY3RpdmVseSBjb252ZXkKLXRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBl YWNoIGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdGhlICJjb3B5cmlnaHQiCi1saW5lIGFuZCBh IHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgotCi08b25lIGxpbmUg dG8gZ2l2ZSB0aGUgbGlicmFyeSdzIG5hbWUgYW5kIGFuIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLj4K LQotQ29weXJpZ2h0IChDKSA8eWVhcj4gPG5hbWUgb2YgYXV0aG9yPgotCi1UaGlzIGxpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dCB1bmRlcgotdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCi1Tb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKLWFueSBsYXRl ciB2ZXJzaW9uLgotCi1UaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKLUFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCi1G T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlCi1kZXRhaWxzLgotCi1Zb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKLXdp dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4sIDUxCi1GcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B IDAyMTEwLTEzMDEgVVNBCi0KLUFsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0 IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLgotCi1Zb3Ugc2hvdWxkIGFsc28gZ2V0 IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91ciBzY2hv b2wsCi1pZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgbGli cmFyeSwgaWYgbmVjZXNzYXJ5LiBIZXJlCi1pcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgot Ci1Zb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0 IGluCi0KLXRoZSBsaWJyYXJ5IGBGcm9iJyAoYSBsaWJyYXJ5IGZvciB0d2Vha2luZyBrbm9icykg d3JpdHRlbgotCi1ieSBKYW1lcyBSYW5kb20gSGFja2VyLgotCi08IHNpZ25hdHVyZSBvZiBUeSBD b29uID4gLCAxIEFwcmlsIDE5OTAKLQotVHkgQ29vbiwgUHJlc2lkZW50IG9mIFZpY2UKLQotVGhh dCdzIGFsbCB0aGVyZSBpcyB0byBpdCEKZGlmZiAtLWdpdCBhL3NjcmlwdHMvc3BkeGNoZWNrLnB5 IGIvc2NyaXB0cy9zcGR4Y2hlY2sucHkKaW5kZXggN2UwOGM2ZTQxMzZlLi42Mzc0ZTA3OGE1ZjIg MTAwNzU1Ci0tLSBhL3NjcmlwdHMvc3BkeGNoZWNrLnB5CisrKyBiL3NjcmlwdHMvc3BkeGNoZWNr LnB5CkBAIC0zMiw3ICszMiw4IEBAIGNsYXNzIFNQRFhkYXRhKG9iamVjdCk6CiBkZWYgcmVhZF9z cGR4ZGF0YShyZXBvKToKIAogICAgICMgVGhlIHN1YmRpcmVjdG9yaWVzIG9mIExJQ0VOU0VTIGlu IHRoZSBrZXJuZWwgc291cmNlCi0gICAgbGljZW5zZV9kaXJzID0gWyAicHJlZmVycmVkIiBdCisg ICAgIyBOb3RlOiBleGNlcHRpb25zIG5lZWRzIHRvIGJlIHBhcnNlZCBhcyBsYXN0IGRpcmVjdG9y eS4KKyAgICBsaWNlbnNlX2RpcnMgPSBbICJwcmVmZXJyZWQiLCAiZHVhbCIsICJkZXByZWNhdGVk IiwgImV4Y2VwdGlvbnMiIF0KICAgICBsaWN0cmVlID0gcmVwby5oZWFkLmNvbW1pdC50cmVlWydM SUNFTlNFUyddCiAKICAgICBzcGR4ID0gU1BEWGRhdGEoKQotLSAKMi4yNy4wCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxp c3QKYmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vYmFyZWJveAo=