From unknown Mon Aug 18 09:02:56 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33268: 26.1.50; Can't decode the utf-8 text file Resent-From: Zhang Haijun Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Nov 2018 07:45:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 33268 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 33268@debbugs.gnu.org X-Debbugs-Original-To: "bug-gnu-emacs@gnu.org" Received: via spool by submit@debbugs.gnu.org id=B.154140385926860 (code B ref -1); Mon, 05 Nov 2018 07:45:01 +0000 Received: (at submit) by debbugs.gnu.org; 5 Nov 2018 07:44:19 +0000 Received: from localhost ([127.0.0.1]:34534 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gJZYZ-0006zA-Dd for submit@debbugs.gnu.org; Mon, 05 Nov 2018 02:44:19 -0500 Received: from eggs.gnu.org ([208.118.235.92]:56415) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gJXr9-0004Je-Dy for submit@debbugs.gnu.org; Mon, 05 Nov 2018 00:55:23 -0500 Received: from lists.gnu.org ([2001:4830:134:3::11]:59540) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gJXqu-0001Jv-2l for submit@debbugs.gnu.org; Mon, 05 Nov 2018 00:55:16 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37556) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gJXp6-0002Uz-Nl for bug-gnu-emacs@gnu.org; Mon, 05 Nov 2018 00:55:07 -0500 Received: from mail-oln040092253074.outbound.protection.outlook.com ([40.92.253.74]:16966 helo=APC01-SG2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gJDgp-0004vO-KH for bug-gnu-emacs@gnu.org; Sun, 04 Nov 2018 03:23:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=py0Jk5zh/f9cpdd0MbUGOBqD2qgmwe7GmBIATOV+3J4=; b=mXUVQjCFfLv6cEWy4PH3TUvVp/KuMKzaTo2PDCOKDdPHbYlwpu68CsZ8Ig8jlcgpIBtiG/FFC/093WAEBw7aipJm5/pAA8nZcxSWYrKwo4yV2PeoGgNB0RGC8gg/QkcEzUKPwdyFG6EGJV+7RBEVJYGKM6cADi0Rd5txiPDKU2RuMTdv8x2S8loRjtEBRr+B32u7+9d6uuXr3gv8fd5QvYpvs8ZH88BIVgvnQUp2UXV2WXtoQ1pylVsHzz4p9f7sQNrPJ/Ue1SoGL49/7EgnPSnnzpd4so4/ytokTQc9F/tvaJ8OrhprrzOivk2uU6LHaEnmuLif8En7dJSqyPz0zA== Received: from HK2APC01FT061.eop-APC01.prod.protection.outlook.com (10.152.248.52) by HK2APC01HT239.eop-APC01.prod.protection.outlook.com (10.152.248.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1294.14; Sun, 4 Nov 2018 08:23:15 +0000 Received: from SG2PR0601MB1405.apcprd06.prod.outlook.com (10.152.248.60) by HK2APC01FT061.mail.protection.outlook.com (10.152.249.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1294.14 via Frontend Transport; Sun, 4 Nov 2018 08:23:15 +0000 Received: from SG2PR0601MB1405.apcprd06.prod.outlook.com ([fe80::dceb:f317:489c:37bc]) by SG2PR0601MB1405.apcprd06.prod.outlook.com ([fe80::dceb:f317:489c:37bc%6]) with mapi id 15.20.1294.028; Sun, 4 Nov 2018 08:23:15 +0000 From: Zhang Haijun Thread-Topic: 26.1.50; Can't decode the utf-8 text file Thread-Index: AQHUdBeixK4Yequ+ykKLC2Fwz0htAA== Date: Sun, 4 Nov 2018 08:23:15 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-clientproxiedby: HK0PR01CA0043.apcprd01.prod.exchangelabs.com (2603:1096:203:3e::31) To SG2PR0601MB1405.apcprd06.prod.outlook.com (2a01:111:e400:79ff::7) x-incomingtopheadermarker: OriginalChecksum:9B255CEDF43E8ACB6BFDC49BD8ABEB6AFB9ABA03F413309B62679DEE30A742E2; UpperCasedChecksum:53EF2FC929B812560F52634A637CDD32F4099EEC8FDF1755A8C35ADCA7BF4A31; SizeAsReceived:7481; Count:49 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [Fl0RIAjUzFwyT0HMZDIhzy7ON3ZZVfyD] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HK2APC01HT239; 6:oTzm+CQYpFd8cJkz/uUEW5C0JQkPyATO+gjdxD4ESWhpBgQ4qv7L0VMI4g9XjqJxIbA47v65vky3iJ/2zYkC9S0liobkyehXscX+hjenViuZ1e070RhgsjWGyyB9E2ksNvb6Tt5QcZX4kYVh97fFF3bN1aEztywr4dNW5NnH7w2Ebrtm6C1DfwKE4T0aOpaFTfLvapF+8zgbJjIo43d2nkB2CzYICUZIehrHK/o8BBDgHm8Qq+NKRdqLbABRJ6V9e/SOmc9azLexbDm5qkp1GbxEuZMB78UOpjuisYaeQwL24vzMgju77dMd10ZlP0ijLFZCSMai7/WzoWx9Ta4VnT10qmKtGd8qUSf2jBFWZmv+8jlPTwJqC0sJQknLhFb+416VHQkps8SYamANyqhKLGYJWfyjYnJeqdMAie98u7lxfMl31aQH5vdSf8z+xk+ZWFWa5yaG8jYEG23FTHWukg==; 5:cFNPBnwKQrFAO5jI/qOUnY5t5sp46NBOGoB7wF3n4XeO/W6eReFswDVKbBOZasomDHT2zTG8RUyWjjPhsA5sMxcHJFX0Af5e7/4JZmmeC3JZCaSnhMB9tnuf58FDKAlMSWrx4oU0/kcAvx6nPDtFltUOoq3O9a6pv46609XIPg4=; 7:1dKTq/+mqd4EdKvk1ObsqOY+kEKbR0Zs3u5te+U5DX7dSQSaUWuSFd3CK8+kuOu7p6Jq4VyBulpcUCMYb45D6KFJvL4eWBuwik0GLs1pIJ9gBHGDL3RT0OFgF/StklZmvxOwKKQ1Fb1vjSUXDIMfKA== x-incomingheadercount: 49 x-eopattributedmessage: 0 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125500)(1603101475)(1701031045); SRVR:HK2APC01HT239; x-ms-traffictypediagnostic: HK2APC01HT239: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(4566010)(102415395)(82015058); SRVR:HK2APC01HT239; BCL:0; PCL:0; RULEID:; SRVR:HK2APC01HT239; x-microsoft-antispam-message-info: T1HLMeCmz2LGqJJeGAULVLMBPPLhm5QTo0slhmoApfwggKuSPCUDS/NCWQ1OtEAD Content-Type: multipart/mixed; boundary="_002_SG2PR0601MB14054507023872F6BA159D40A8C90SG2PR0601MB1405_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 54485d23-c432-40fe-8436-6091d627118c X-MS-Exchange-CrossTenant-Network-Message-Id: 65a85eef-b429-4461-e9bc-08d6422ec385 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 54485d23-c432-40fe-8436-6091d627118c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Nov 2018 08:23:15.5862 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2APC01HT239 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Mon, 05 Nov 2018 02:44:16 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --_002_SG2PR0601MB14054507023872F6BA159D40A8C90SG2PR0601MB1405_ Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 T3BlbiB0aGUgYXR0YWNobWVudCB0ZXh0IGZpbGUgd2l0aCAiZW1hY3MgLVEiLiBUaGVyZSBhcmUg bWFueSANCnVucmVjb2duaXplZCBjaGFycyhsaWtlIFwzNDJcMjAwXDIzMCkuIEZvbGxvd2luZyBp cyB0aGUgZW5jb2RpbmcgaW5mbyBvZiANCnRoZSBidWZmZXIuDQoNCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj0gLS0gbm8tY29udmVyc2lvbiAoYWxp YXM6IGJpbmFyeSkNCg0KRG8gbm8gY29udmVyc2lvbi4NCg0KV2hlbiB5b3UgdmlzaXQgYSBmaWxl IHdpdGggdGhpcyBjb2RpbmcsIHRoZSBmaWxlIGlzIHJlYWQgaW50byBhDQp1bmlieXRlIGJ1ZmZl ciBhcyBpcywgdGh1cyBlYWNoIGJ5dGUgb2YgYSBmaWxlIGlzIHRyZWF0ZWQgYXMgYQ0KY2hhcmFj dGVyLg0KVHlwZTogcmF3LXRleHQgKHRleHQgd2l0aCByYW5kb20gYmluYXJ5IGNoYXJhY3RlcnMp DQpFT0wgdHlwZTogTEYNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQoNCkJ1dCBpZiBJIHJ1biB0aGUgY29tbWFuZCByZXZlcnQtYnVmZmVyLCB0aGVu IHRoZXJlIGlzIG5vIHVucmVjb2duaXplZCANCmNoYXJzLiBFbmNvZGluZyBpbmZvIG9mIHRoZSBi dWZmZXIgYmVjb21lczoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpVIC0tIHV0Zi04LXVuaXggKGFsaWFzOiBtdWxlLXV0Zi04LXVuaXggY3A2 NTAwMS11bml4KQ0KDQpVVEYtOCAobm8gc2lnbmF0dXJlIChCT00pKQ0KVHlwZTogdXRmLTggKFVU Ri04OiBFbWFjcyBpbnRlcm5hbCBtdWx0aWJ5dGUgZm9ybSkNCkVPTCB0eXBlOiBMRg0KVGhpcyBj b2Rpbmcgc3lzdGVtIGVuY29kZXMgdGhlIGZvbGxvd2luZyBjaGFyc2V0czoNCiAgIHVuaWNvZGUN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoN Cg0KSW4gR05VIEVtYWNzIDI2LjEuNTAgKGJ1aWxkIDQsIHg4Nl82NC1wYy1saW51eC1nbnUsIEdU SysgVmVyc2lvbiAzLjIyLjI2KQ0KICBvZiAyMDE4LTExLTA0IGJ1aWx0IG9uIGNlbnRvczcuaG9t ZQ0KUmVwb3NpdG9yeSByZXZpc2lvbjogN2NhZGIzMjgwOTJlMzU0MjI1MTQ5YmJjNzRjMmRkYWY0 YjQ5YjYzOA0KV2luZG93aW5nIHN5c3RlbSBkaXN0cmlidXRvciAnVGhlIFguT3JnIEZvdW5kYXRp b24nLCB2ZXJzaW9uIDExLjAuMTE5MDUwMDANClJlY2VudCBtZXNzYWdlczoNCkZvciBpbmZvcm1h dGlvbiBhYm91dCBHTlUgRW1hY3MgYW5kIHRoZSBHTlUgc3lzdGVtLCB0eXBlIEMtaCBDLWEuDQpR dWl0IFszIHRpbWVzXQ0KdXNlci1lcnJvcjogQmVnaW5uaW5nIG9mIGhpc3Rvcnk7IG5vIHByZWNl ZGluZyBpdGVtDQpmdW5jYWxsLWludGVyYWN0aXZlbHk6IEVuZCBvZiBidWZmZXINCg0KQ29uZmln dXJlZCB1c2luZzoNCiAgJ2NvbmZpZ3VyZSAtLXByZWZpeD0vaG9tZS9qdW4vYXBwcy9lbWFjcy0y NiAtLXdpdGhvdXQtbWFrZWluZm8NCiAgLS13aXRoLXgtdG9vbGtpdD1ndGszIC0td2l0aC1tb2R1 bGVzJw0KDQpDb25maWd1cmVkIGZlYXR1cmVzOg0KWFBNIEpQRUcgVElGRiBHSUYgUE5HIFJTVkcg SU1BR0VNQUdJQ0sgU09VTkQgREJVUyBHU0VUVElOR1MgR0xJQiBOT1RJRlkNCkxJQlNFTElOVVgg R05VVExTIExJQlhNTDIgRlJFRVRZUEUgWEZUIFpMSUIgVE9PTEtJVF9TQ1JPTExfQkFSUyBHVEsz IFgxMQ0KWERCRSBYSU0gTU9EVUxFUyBUSFJFQURTDQoNCkltcG9ydGFudCBzZXR0aW5nczoNCiAg IHZhbHVlIG9mICRMQU5HOiBlbl9VUy5VVEYtOA0KICAgdmFsdWUgb2YgJFhNT0RJRklFUlM6IEBp bT1mY2l0eA0KICAgbG9jYWxlLWNvZGluZy1zeXN0ZW06IHV0Zi04LXVuaXgNCg0KTWFqb3IgbW9k ZTogVGV4dA0KDQpNaW5vciBtb2RlcyBpbiBlZmZlY3Q6DQogICBkaWZmLWF1dG8tcmVmaW5lLW1v ZGU6IHQNCiAgIHRvb2x0aXAtbW9kZTogdA0KICAgZ2xvYmFsLWVsZG9jLW1vZGU6IHQNCiAgIGVs ZWN0cmljLWluZGVudC1tb2RlOiB0DQogICBtb3VzZS13aGVlbC1tb2RlOiB0DQogICB0b29sLWJh ci1tb2RlOiB0DQogICBtZW51LWJhci1tb2RlOiB0DQogICBmaWxlLW5hbWUtc2hhZG93LW1vZGU6 IHQNCiAgIGdsb2JhbC1mb250LWxvY2stbW9kZTogdA0KICAgZm9udC1sb2NrLW1vZGU6IHQNCiAg IGJsaW5rLWN1cnNvci1tb2RlOiB0DQogICBhdXRvLWNvbXBvc2l0aW9uLW1vZGU6IHQNCiAgIGF1 dG8tZW5jcnlwdGlvbi1tb2RlOiB0DQogICBhdXRvLWNvbXByZXNzaW9uLW1vZGU6IHQNCiAgIGxp bmUtbnVtYmVyLW1vZGU6IHQNCiAgIHRyYW5zaWVudC1tYXJrLW1vZGU6IHQNCg0KTG9hZC1wYXRo IHNoYWRvd3M6DQpOb25lIGZvdW5kLg0KDQpGZWF0dXJlczoNCihzaGFkb3cgc29ydCBtYWlsLWV4 dHIgZW1hY3NidWcgbWVzc2FnZSBybWMgcHVueSBzZXEgYnl0ZS1vcHQgZ3YNCmJ5dGVjb21wIGJ5 dGUtY29tcGlsZSBjY29udiBjbC1sb2FkZGVmcyBjbC1saWIgZGlyZWQgZGlyZWQtbG9hZGRlZnMN CmZvcm1hdC1zcGVjIHJmYzgyMiBtbWwgbW1sLXNlYyBwYXNzd29yZC1jYWNoZSBlcGEgZGVyaXZl ZCBlcGcgZXBnLWNvbmZpZw0KZ251cy11dGlsIHJtYWlsIHJtYWlsLWxvYWRkZWZzIG1tLWRlY29k ZSBtbS1ib2RpZXMgbW0tZW5jb2RlIG1haWwtcGFyc2UNCnJmYzIyMzEgbWFpbGFiYnJldiBnbW0t dXRpbHMgbWFpbGhlYWRlciBzZW5kbWFpbCByZmMyMDQ3IHJmYzIwNDUNCmlldGYtZHJ1bXMgbW0t dXRpbCBtYWlsLXByc3ZyIG1haWwtdXRpbHMgdmMtZ2l0IGRpZmYtbW9kZSBlYXN5bWVudQ0KZWFz eS1tbW9kZSBlbGVjLXBhaXIgdGltZS1kYXRlIG11bGUtdXRpbCB0b29sdGlwIGVsZG9jIGVsZWN0 cmljIHVuaXF1aWZ5DQplZGlmZi1ob29rIHZjLWhvb2tzIGxpc3AtZmxvYXQtdHlwZSBtd2hlZWwg dGVybS94LXdpbiB4LXdpbg0KdGVybS9jb21tb24td2luIHgtZG5kIHRvb2wtYmFyIGRuZCBmb250 c2V0IGltYWdlIHJlZ2V4cC1vcHQgZnJpbmdlDQp0YWJ1bGF0ZWQtbGlzdCByZXBsYWNlIG5ld2Nv bW1lbnQgdGV4dC1tb2RlIGVsaXNwLW1vZGUgbGlzcC1tb2RlDQpwcm9nLW1vZGUgcmVnaXN0ZXIg cGFnZSBtZW51LWJhciByZm4tZXNoYWRvdyBpc2VhcmNoIHRpbWVyIHNlbGVjdA0Kc2Nyb2xsLWJh ciBtb3VzZSBqaXQtbG9jayBmb250LWxvY2sgc3ludGF4IGZhY2VtZW51IGZvbnQtY29yZQ0KdGVy bS90dHktY29sb3JzIGZyYW1lIGNsLWdlbmVyaWMgY2hhbSBnZW9yZ2lhbiB1dGYtOC1sYW5nIG1p c2MtbGFuZw0KdmlldG5hbWVzZSB0aWJldGFuIHRoYWkgdGFpLXZpZXQgbGFvIGtvcmVhbiBqYXBh bmVzZSBldWNqcC1tcyBjcDUxOTMyDQpoZWJyZXcgZ3JlZWsgcm9tYW5pYW4gc2xvdmFrIGN6ZWNo IGV1cm9wZWFuIGV0aGlvcGljIGluZGlhbiBjeXJpbGxpYw0KY2hpbmVzZSBjb21wb3NpdGUgY2hh cnNjcmlwdCBjaGFycHJvcCBjYXNlLXRhYmxlIGVwYS1ob29rIGprYS1jbXByLWhvb2sNCmhlbHAg c2ltcGxlIGFiYnJldiBvYmFycmF5IG1pbmlidWZmZXIgY2wtcHJlbG9hZGVkIG5hZHZpY2UgbG9h ZGRlZnMNCmJ1dHRvbiBmYWNlcyBjdXMtZmFjZSBtYWNyb2V4cCBmaWxlcyB0ZXh0LXByb3BlcnRp ZXMgb3ZlcmxheSBzaGExIG1kNQ0KYmFzZTY0IGZvcm1hdCBlbnYgY29kZS1wYWdlcyBtdWxlIGN1 c3RvbSB3aWRnZXQgaGFzaHRhYmxlLXByaW50LXJlYWRhYmxlDQpiYWNrcXVvdGUgdGhyZWFkcyBk YnVzYmluZCBpbm90aWZ5IGR5bmFtaWMtc2V0dGluZyBzeXN0ZW0tZm9udC1zZXR0aW5nDQpmb250 LXJlbmRlci1zZXR0aW5nIG1vdmUtdG9vbGJhciBndGsgeC10b29sa2l0IHggbXVsdGktdHR5DQpt YWtlLW5ldHdvcmstcHJvY2VzcyBlbWFjcykNCg0KTWVtb3J5IGluZm9ybWF0aW9uOg0KKChjb25z ZXMgMTYgOTg0NjYgMTQwNzgpDQogIChzeW1ib2xzIDQ4IDIwNzg0IDEpDQogIChtaXNjcyA0MCA0 MiAxNTQpDQogIChzdHJpbmdzIDMyIDI5ODkyIDE1MTEpDQogIChzdHJpbmctYnl0ZXMgMSA3OTEw NjEpDQogICh2ZWN0b3JzIDE2IDE0NzIzKQ0KICAodmVjdG9yLXNsb3RzIDggNTEwMTMyIDcyMzgp DQogIChmbG9hdHMgOCA1MSAzNzIpDQogIChpbnRlcnZhbHMgNTYgMjIyIDApDQogIChidWZmZXJz IDk5MiAxMykNCiAgKGhlYXAgMTAyNCAyNDQ3NCAzMDcxKSkNCg== --_002_SG2PR0601MB14054507023872F6BA159D40A8C90SG2PR0601MB1405_ Content-Type: text/plain; name="emacs-26.txt" Content-Description: emacs-26.txt Content-Disposition: attachment; filename="emacs-26.txt"; size=2471664; creation-date="Sun, 04 Nov 2018 08:23:14 GMT"; modification-date="Sun, 04 Nov 2018 08:23:14 GMT" Content-ID: <5C70C953D4C8774FB65A418625402687@apcprd06.prod.outlook.com> Content-Transfer-Encoding: base64 KiBBYm91dApUaGlzIGlzIGVtYWNzLmluZm8sIHByb2R1Y2VkIGJ5IG1ha2VpbmZvIHZlcnNpb24g NS4xIGZyb20gZW1hY3MudGV4aS4KClRoaXMgaXMgdGhlIOKAmEdOVSBFbWFjcyBNYW51YWzigJks IHVwZGF0ZWQgZm9yIEVtYWNzIHZlcnNpb24gMjYuMS41MC4KCiAgIENvcHlyaWdodCDCqSAxOTg1 4oCTMTk4NywgMTk5M+KAkzIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgogICAg IFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkg dGhpcwogICAgIGRvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1l bnRhdGlvbiBMaWNlbnNlLAogICAgIFZlcnNpb24gMS4zIG9yIGFueSBsYXRlciB2ZXJzaW9uIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQogICAgIEZvdW5kYXRpb247IHdpdGggdGhlIElu dmFyaWFudCBTZWN0aW9ucyBiZWluZyDigJxUaGUgR05VIE1hbmlmZXN0byzigJ0KICAgICDigJxE aXN0cmlidXRpb27igJ0gYW5kIOKAnEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFLOKAnSB3aXRo IHRoZQogICAgIEZyb250LUNvdmVyIFRleHRzIGJlaW5nIOKAnEEgR05VIE1hbnVhbCzigJ0gYW5k IHdpdGggdGhlIEJhY2stQ292ZXIKICAgICBUZXh0cyBhcyBpbiAoYSkgYmVsb3cuICBBIGNvcHkg b2YgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlCiAgICAgc2VjdGlvbiBlbnRpdGxlZCDi gJxHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2Uu4oCdCgogICAgIChhKSBUaGUgRlNG4oCZ cyBCYWNrLUNvdmVyIFRleHQgaXM6IOKAnFlvdSBoYXZlIHRoZSBmcmVlZG9tIHRvIGNvcHkgYW5k CiAgICAgbW9kaWZ5IHRoaXMgR05VIG1hbnVhbC4gIEJ1eWluZyBjb3BpZXMgZnJvbSB0aGUgRlNG IHN1cHBvcnRzIGl0IGluCiAgICAgZGV2ZWxvcGluZyBHTlUgYW5kIHByb21vdGluZyBzb2Z0d2Fy ZSBmcmVlZG9tLuKAnQoKVGhlIEVtYWNzIEVkaXRvcgoKRW1hY3MgaXMgdGhlIGV4dGVuc2libGUs IGN1c3RvbWl6YWJsZSwgc2VsZi1kb2N1bWVudGluZyByZWFsLXRpbWUKZGlzcGxheSBlZGl0b3Iu ICBUaGlzIG1hbnVhbCBkZXNjcmliZXMgaG93IHRvIGVkaXQgd2l0aCBFbWFjcyBhbmQgc29tZQpv ZiB0aGUgd2F5cyB0byBjdXN0b21pemUgaXQ7IGl0IGNvcnJlc3BvbmRzIHRvIEdOVSBFbWFjcyB2 ZXJzaW9uCjI2LjEuNTAuCgogICBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBpbiBFbWFjcywgdHlw ZSDigJho4oCZIHRvIHJlYWQgYSBiYXNpYwppbnRyb2R1Y3Rpb24gdG8gdGhlIEluZm8gZG9jdW1l bnRhdGlvbiBzeXN0ZW0uCgogICBGb3IgaW5mb3JtYXRpb24gb24gZXh0ZW5kaW5nIEVtYWNzLCBz ZWUgKm5vdGUgRW1hY3MgTGlzcDogKGVsaXNwKVRvcC4KCiAgIFRoaXMgaXMgdGhlIOKAmEdOVSBF bWFjcyBNYW51YWzigJksIHVwZGF0ZWQgZm9yIEVtYWNzIHZlcnNpb24gMjYuMS41MC4KCiAgIENv cHlyaWdodCDCqSAxOTg14oCTMTk4NywgMTk5M+KAkzIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCgogICAgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBkaXN0cmlidXRl IGFuZC9vciBtb2RpZnkgdGhpcwogICAgIGRvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLAogICAgIFZlcnNpb24gMS4zIG9yIGFueSBs YXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQogICAgIEZvdW5kYXRp b247IHdpdGggdGhlIEludmFyaWFudCBTZWN0aW9ucyBiZWluZyDigJxUaGUgR05VIE1hbmlmZXN0 byzigJ0KICAgICDigJxEaXN0cmlidXRpb27igJ0gYW5kIOKAnEdOVSBHRU5FUkFMIFBVQkxJQyBM SUNFTlNFLOKAnSB3aXRoIHRoZQogICAgIEZyb250LUNvdmVyIFRleHRzIGJlaW5nIOKAnEEgR05V IE1hbnVhbCzigJ0gYW5kIHdpdGggdGhlIEJhY2stQ292ZXIKICAgICBUZXh0cyBhcyBpbiAoYSkg YmVsb3cuICBBIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlCiAgICAgc2Vj dGlvbiBlbnRpdGxlZCDigJxHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2Uu4oCdCgogICAg IChhKSBUaGUgRlNG4oCZcyBCYWNrLUNvdmVyIFRleHQgaXM6IOKAnFlvdSBoYXZlIHRoZSBmcmVl ZG9tIHRvIGNvcHkgYW5kCiAgICAgbW9kaWZ5IHRoaXMgR05VIG1hbnVhbC4gIEJ1eWluZyBjb3Bp ZXMgZnJvbSB0aGUgRlNGIHN1cHBvcnRzIGl0IGluCiAgICAgZGV2ZWxvcGluZyBHTlUgYW5kIHBy b21vdGluZyBzb2Z0d2FyZSBmcmVlZG9tLuKAnQoKKiBJbmRleAoKKyBEaXN0cmliOjogICAgICAg ICAgICAgSG93IHRvIGdldCB0aGUgbGF0ZXN0IEVtYWNzIGRpc3RyaWJ1dGlvbi4KKyBJbnRybzo6 ICAgICAgICAgICAgICAgQW4gaW50cm9kdWN0aW9uIHRvIEVtYWNzIGNvbmNlcHRzLgoKKiogSW1w b3J0YW50IEdlbmVyYWwgQ29uY2VwdHMKKyBTY3JlZW46OiAgICAgICAgICAgICAgSG93IHRvIGlu dGVycHJldCB3aGF0IHlvdSBzZWUgb24gdGhlIHNjcmVlbi4KKyBVc2VyIElucHV0OjogICAgICAg ICAgS2luZHMgb2YgaW5wdXQgZXZlbnRzIChjaGFyYWN0ZXJzLCBidXR0b25zLAogICAgICAgICAg ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGtleXMpLgorIEtleXM6OiAgICAgICAgICAgICAgICBL ZXkgc2VxdWVuY2VzOiB3aGF0IHlvdSB0eXBlIHRvIHJlcXVlc3Qgb25lCiAgICAgICAgICAgICAg ICAgICAgICAgICAgZWRpdGluZyBhY3Rpb24uCisgQ29tbWFuZHM6OiAgICAgICAgICAgIE5hbWVk IGZ1bmN0aW9ucyBydW4gYnkga2V5IHNlcXVlbmNlcyB0byBkbyBlZGl0aW5nLgorIEVudGVyaW5n IEVtYWNzOjogICAgICBTdGFydGluZyBFbWFjcyBmcm9tIHRoZSBzaGVsbC4KKyBFeGl0aW5nOjog ICAgICAgICAgICAgU3RvcHBpbmcgb3Iga2lsbGluZyBFbWFjcy4KCioqIEZ1bmRhbWVudGFsIEVk aXRpbmcgQ29tbWFuZHMKKyBCYXNpYzo6ICAgICAgICAgICAgICAgVGhlIG1vc3QgYmFzaWMgZWRp dGluZyBjb21tYW5kcy4KKyBNaW5pYnVmZmVyOjogICAgICAgICAgRW50ZXJpbmcgYXJndW1lbnRz IHRoYXQgYXJlIHByb21wdGVkIGZvci4KKyBNLXg6OiAgICAgICAgICAgICAgICAgSW52b2tpbmcg Y29tbWFuZHMgYnkgdGhlaXIgbmFtZXMuCisgSGVscDo6ICAgICAgICAgICAgICAgIENvbW1hbmRz IGZvciBhc2tpbmcgRW1hY3MgYWJvdXQgaXRzIGNvbW1hbmRzLgoKKiogSW1wb3J0YW50IFRleHQt Q2hhbmdpbmcgQ29tbWFuZHMKKyBNYXJrOjogICAgICAgICAgICAgICAgVGhlIG1hcms6IGhvdyB0 byBkZWxpbWl0IGEgcmVnaW9uIG9mIHRleHQuCisgS2lsbGluZzo6ICAgICAgICAgICAgIEtpbGxp bmcgKGN1dHRpbmcpIGFuZCB5YW5raW5nIChjb3B5aW5nKSB0ZXh0LgorIFJlZ2lzdGVyczo6ICAg ICAgICAgICBTYXZpbmcgYSB0ZXh0IHN0cmluZyBvciBhIGxvY2F0aW9uIGluIHRoZSBidWZmZXIu CisgRGlzcGxheTo6ICAgICAgICAgICAgIENvbnRyb2xsaW5nIHdoYXQgdGV4dCBpcyBkaXNwbGF5 ZWQuCisgU2VhcmNoOjogICAgICAgICAgICAgIEZpbmRpbmcgb3IgcmVwbGFjaW5nIG9jY3VycmVu Y2VzIG9mIGEgc3RyaW5nLgorIEZpeGl0OjogICAgICAgICAgICAgICBDb21tYW5kcyBlc3BlY2lh bGx5IHVzZWZ1bCBmb3IgZml4aW5nIHR5cG9zLgorIEtleWJvYXJkIE1hY3Jvczo6ICAgICBSZWNv cmRpbmcgYSBzZXF1ZW5jZSBvZiBrZXlzdHJva2VzIHRvIGJlIHJlcGxheWVkLgoKKiogTWFqb3Ig U3RydWN0dXJlcyBvZiBFbWFjcworIEZpbGVzOjogICAgICAgICAgICAgICBBbGwgYWJvdXQgaGFu ZGxpbmcgZmlsZXMuCisgQnVmZmVyczo6ICAgICAgICAgICAgIE11bHRpcGxlIGJ1ZmZlcnM7IGVk aXRpbmcgc2V2ZXJhbCBmaWxlcyBhdCBvbmNlLgorIFdpbmRvd3M6OiAgICAgICAgICAgICBWaWV3 aW5nIG11bHRpcGxlIHBpZWNlcyBvZiB0ZXh0IGluIG9uZSBmcmFtZS4KKyBGcmFtZXM6OiAgICAg ICAgICAgICAgVXNpbmcgbXVsdGlwbGUgd2luZG93cyBvbiB5b3VyIGRpc3BsYXkuCisgSW50ZXJu YXRpb25hbDo6ICAgICAgIFVzaW5nIG5vbi1BU0NJSSBjaGFyYWN0ZXIgc2V0cy4KCioqIEFkdmFu Y2VkIEZlYXR1cmVzCisgTW9kZXM6OiAgICAgICAgICAgICAgIE1ham9yIGFuZCBtaW5vciBtb2Rl cyBhbHRlciBFbWFjc+KAmXMgYmFzaWMgYmVoYXZpb3IuCisgSW5kZW50YXRpb246OiAgICAgICAg IEVkaXRpbmcgdGhlIHdoaXRlIHNwYWNlIGF0IHRoZSBiZWdpbm5pbmdzIG9mIGxpbmVzLgorIFRl eHQ6OiAgICAgICAgICAgICAgICBDb21tYW5kcyBhbmQgbW9kZXMgZm9yIGVkaXRpbmcgaHVtYW4g bGFuZ3VhZ2VzLgorIFByb2dyYW1zOjogICAgICAgICAgICBDb21tYW5kcyBhbmQgbW9kZXMgZm9y IGVkaXRpbmcgcHJvZ3JhbXMuCisgQnVpbGRpbmc6OiAgICAgICAgICAgIENvbXBpbGluZywgcnVu bmluZyBhbmQgZGVidWdnaW5nIHByb2dyYW1zLgorIE1haW50YWluaW5nOjogICAgICAgICBGZWF0 dXJlcyBmb3IgbWFpbnRhaW5pbmcgbGFyZ2UgcHJvZ3JhbXMuCisgQWJicmV2czo6ICAgICAgICAg ICAgIERlZmluaW5nIHRleHQgYWJicmV2aWF0aW9ucyB0byByZWR1Y2UgdHlwaW5nLgorIERpcmVk OjogICAgICAgICAgICAgICBEaXJlY3RvcnkgYW5kIGZpbGUgbWFuYWdlci4KKyBDYWxlbmRhci9E aWFyeTo6ICAgICAgQ2FsZW5kYXIgYW5kIGRpYXJ5IGZhY2lsaXRpZXMuCisgU2VuZGluZyBNYWls OjogICAgICAgIFNlbmRpbmcgbWFpbCBpbiBFbWFjcy4KKyBSbWFpbDo6ICAgICAgICAgICAgICAg UmVhZGluZyBtYWlsIGluIEVtYWNzLgorIEdudXM6OiAgICAgICAgICAgICAgICBBIGZsZXhpYmxl IG1haWwgYW5kIG5ld3MgcmVhZGVyLgorIEhvc3QgU2VjdXJpdHk6OiAgICAgICBTZWN1cml0eSBp c3N1ZXMgb24gYSBzaW5nbGUgY29tcHV0ZXIuCisgTmV0d29yayBTZWN1cml0eTo6ICAgIE1hbmFn aW5nIHRoZSBuZXR3b3JrIHNlY3VyaXR5LgorIERvY3VtZW50IFZpZXc6OiAgICAgICBWaWV3aW5n IFBERiwgUFMgYW5kIERWSSBmaWxlcy4KKyBTaGVsbDo6ICAgICAgICAgICAgICAgRXhlY3V0aW5n IHNoZWxsIGNvbW1hbmRzIGZyb20gRW1hY3MuCisgRW1hY3MgU2VydmVyOjogICAgICAgIFVzaW5n IEVtYWNzIGFzIGFuIGVkaXRpbmcgc2VydmVyLgorIFByaW50aW5nOjogICAgICAgICAgICBQcmlu dGluZyBoYXJkY29waWVzIG9mIGJ1ZmZlcnMgb3IgcmVnaW9ucy4KKyBTb3J0aW5nOjogICAgICAg ICAgICAgU29ydGluZyBsaW5lcywgcGFyYWdyYXBocyBvciBwYWdlcyB3aXRoaW4gRW1hY3MuCisg UGljdHVyZSBNb2RlOjogICAgICAgIEVkaXRpbmcgcGljdHVyZXMgbWFkZSB1cCBvZiB0ZXh0IGNo YXJhY3RlcnMuCisgRWRpdGluZyBCaW5hcnkgRmlsZXM6OiAgRWRpdGluZyBiaW5hcnkgZmlsZXMg d2l0aCBIZXhsIG1vZGUuCisgU2F2aW5nIEVtYWNzIFNlc3Npb25zOjogU2F2aW5nIEVtYWNzIHN0 YXRlIGZyb20gb25lIHNlc3Npb24gdG8gdGhlIG5leHQuCisgUmVjdXJzaXZlIEVkaXQ6OiAgICAg IFBlcmZvcm1pbmcgZWRpdHMgd2hpbGUgd2l0aGluIGFub3RoZXIgY29tbWFuZC4KKyBIeXBlcmxp bmtpbmc6OiAgICAgICAgRm9sbG93aW5nIGxpbmtzIGluIGJ1ZmZlcnMuCisgQW11c2VtZW50czo6 ICAgICAgICAgIFZhcmlvdXMgZ2FtZXMgYW5kIGhhY2tzLgorIFBhY2thZ2VzOjogICAgICAgICAg ICBJbnN0YWxsaW5nIGFkZGl0aW9uYWwgZmVhdHVyZXMuCisgQ3VzdG9taXphdGlvbjo6ICAgICAg IE1vZGlmeWluZyB0aGUgYmVoYXZpb3Igb2YgRW1hY3MuCgoqKiBSZWNvdmVyeSBmcm9tIFByb2Js ZW1zCisgUXVpdHRpbmc6OiAgICAgICAgICAgIFF1aXR0aW5nIGFuZCBhYm9ydGluZy4KKyBMb3Nz YWdlOjogICAgICAgICAgICAgV2hhdCB0byBkbyBpZiBFbWFjcyBpcyBodW5nIG9yIG1hbGZ1bmN0 aW9uaW5nLgorIEJ1Z3M6OiAgICAgICAgICAgICAgICBIb3cgYW5kIHdoZW4gdG8gcmVwb3J0IGEg YnVnLgorIENvbnRyaWJ1dGluZzo6ICAgICAgICBIb3cgdG8gY29udHJpYnV0ZSBpbXByb3ZlbWVu dHMgdG8gRW1hY3MuCisgU2VydmljZTo6ICAgICAgICAgICAgIEhvdyB0byBnZXQgaGVscCBmb3Ig eW91ciBvd24gRW1hY3MgbmVlZHMuCgoqKiBBcHBlbmRpY2VzCisgQ29weWluZzo6ICAgICAgICAg ICAgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBnaXZlcyB5b3UgcGVybWlzc2lvbgog ICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHJlZGlzdHJpYnV0ZSBHTlUgRW1hY3Mgb24gY2Vy dGFpbiB0ZXJtczsKICAgICAgICAgICAgICAgICAgICAgICAgICBpdCBhbHNvIGV4cGxhaW5zIHRo YXQgdGhlcmUgaXMgbm8gd2FycmFudHkuCisgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNl OjogVGhlIGxpY2Vuc2UgZm9yIHRoaXMgZG9jdW1lbnRhdGlvbi4KKyBFbWFjcyBJbnZvY2F0aW9u OjogICAgSGFpcnkgc3RhcnR1cCBvcHRpb25zLgorIFggUmVzb3VyY2VzOjogICAgICAgICBYIHJl c291cmNlcyBmb3IgY3VzdG9taXppbmcgRW1hY3MuCisgQW50aW5ld3M6OiAgICAgICAgICAgIElu Zm9ybWF0aW9uIGFib3V0IEVtYWNzIHZlcnNpb24gMjUuCisgTWFjIE9TIC8gR05Vc3RlcDo6ICAg ICBVc2luZyBFbWFjcyB1bmRlciBtYWNPUyBhbmQgR05Vc3RlcC4KKyBNaWNyb3NvZnQgV2luZG93 czo6ICAgVXNpbmcgRW1hY3Mgb24gTWljcm9zb2Z0IFdpbmRvd3MgYW5kIE1TLURPUy4KKyBNYW5p ZmVzdG86OiAgICAgICAgICAgV2hhdOKAmXMgR05VPyAgR2514oCZcyBOb3QgVW5peCEKCisgR2xv c3Nhcnk6OiAgICAgICAgICAgIFRlcm1zIHVzZWQgaW4gdGhpcyBtYW51YWwuCisgQWNrbm93bGVk Z21lbnRzOjogICAgIE1ham9yIGNvbnRyaWJ1dG9ycyB0byBHTlUgRW1hY3MuCgoqKiBJbmRleGVz IChlYWNoIGluZGV4IGNvbnRhaW5zIGEgbGFyZ2UgbWVudSkKKyBLZXkgSW5kZXg6OiAgICAgICAg ICAgQW4gaXRlbSBmb3IgZWFjaCBzdGFuZGFyZCBFbWFjcyBrZXkgc2VxdWVuY2UuCisgT3B0aW9u IEluZGV4OjogICAgICAgIEFuIGl0ZW0gZm9yIGV2ZXJ5IGNvbW1hbmQtbGluZSBvcHRpb24uCisg Q29tbWFuZCBJbmRleDo6ICAgICAgIEFuIGl0ZW0gZm9yIGVhY2ggc3RhbmRhcmQgY29tbWFuZCBu YW1lLgorIFZhcmlhYmxlIEluZGV4OjogICAgICBBbiBpdGVtIGZvciBlYWNoIHZhcmlhYmxlIGRv Y3VtZW50ZWQgaW4gdGhpcyBtYW51YWwuCisgQ29uY2VwdCBJbmRleDo6ICAgICAgIEFuIGl0ZW0g Zm9yIGNvbmNlcHRzIGFuZCBvdGhlciBnZW5lcmFsIHN1YmplY3RzLgoKCiogRGV0YWlsZWQgSW5k ZXgKCkhlcmUgYXJlIHNvbWUgb3RoZXIgbm9kZXMgd2hpY2ggYXJlIHJlYWxseSBzdWJub2RlcyBv ZiB0aGUgb25lcwphbHJlYWR5IGxpc3RlZCwgbWVudGlvbmVkIGhlcmUgc28geW91IGNhbiBnZXQg dG8gdGhlbSBpbiBvbmUgc3RlcDoKCioqIFRoZSBPcmdhbml6YXRpb24gb2YgdGhlIFNjcmVlbgoK KyBQb2ludDo6ICAgICAgICAgICAgICAgVGhlIHBsYWNlIGluIHRoZSB0ZXh0IHdoZXJlIGVkaXRp bmcgY29tbWFuZHMgb3BlcmF0ZS4KKyBFY2hvIEFyZWE6OiAgICAgICAgICAgU2hvcnQgbWVzc2Fn ZXMgYXBwZWFyIGF0IHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4KKyBNb2RlIExpbmU6OiAgICAg ICAgICAgSW50ZXJwcmV0aW5nIHRoZSBtb2RlIGxpbmUuCisgTWVudSBCYXI6OiAgICAgICAgICAg IEhvdyB0byB1c2UgdGhlIG1lbnUgYmFyLgoKKiogQmFzaWMgRWRpdGluZyBDb21tYW5kcwoKKyBJ bnNlcnRpbmcgVGV4dDo6ICAgICAgSW5zZXJ0aW5nIHRleHQgYnkgc2ltcGx5IHR5cGluZyBpdC4K KyBNb3ZpbmcgUG9pbnQ6OiAgICAgICAgTW92aW5nIHRoZSBjdXJzb3IgdG8gdGhlIHBsYWNlIHdo ZXJlIHlvdSB3YW50IHRvCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSBzb21ldGhpbmcu CisgRXJhc2luZzo6ICAgICAgICAgICAgIERlbGV0aW5nIGFuZCBraWxsaW5nIHRleHQuCisgQmFz aWMgVW5kbzo6ICAgICAgICAgIFVuZG9pbmcgcmVjZW50IGNoYW5nZXMgaW4gdGhlIHRleHQuCisg QmFzaWMgRmlsZXM6OiAgICAgICAgIFZpc2l0aW5nLCBjcmVhdGluZywgYW5kIHNhdmluZyBmaWxl cy4KKyBCYXNpYyBIZWxwOjogICAgICAgICAgQXNraW5nIHdoYXQgYSBjaGFyYWN0ZXIgZG9lcy4K KyBCbGFuayBMaW5lczo6ICAgICAgICAgTWFraW5nIGFuZCBkZWxldGluZyBibGFuayBsaW5lcy4K KyBDb250aW51YXRpb24gTGluZXM6OiAgSG93IEVtYWNzIGRpc3BsYXlzIGxpbmVzIHRvbyB3aWRl IGZvciB0aGUgc2NyZWVuLgorIFBvc2l0aW9uIEluZm86OiAgICAgICBXaGF0IGxpbmUsIHJvdywg b3IgY29sdW1uIGlzIHBvaW50IG9uPworIEFyZ3VtZW50czo6ICAgICAgICAgICBOdW1lcmljIGFy Z3VtZW50cyBmb3IgcmVwZWF0aW5nIGEgY29tbWFuZCBOIHRpbWVzLgorIFJlcGVhdGluZzo6ICAg ICAgICAgICBSZXBlYXRpbmcgdGhlIHByZXZpb3VzIGNvbW1hbmQgcXVpY2tseS4KCioqIFRoZSBN aW5pYnVmZmVyCgorIEJhc2ljIE1pbmlidWZmZXI6OiAgICAgIEJhc2ljIHVzYWdlIG9mIHRoZSBt aW5pYnVmZmVyLgorIE1pbmlidWZmZXIgRmlsZTo6ICAgICBFbnRlcmluZyBmaWxlIG5hbWVzIHdp dGggdGhlIG1pbmlidWZmZXIuCisgTWluaWJ1ZmZlciBFZGl0OjogICAgIEhvdyB0byBlZGl0IGlu IHRoZSBtaW5pYnVmZmVyLgorIENvbXBsZXRpb246OiAgICAgICAgICBBbiBhYmJyZXZpYXRpb24g ZmFjaWxpdHkgZm9yIG1pbmlidWZmZXIgaW5wdXQuCisgTWluaWJ1ZmZlciBIaXN0b3J5OjogIFJl dXNpbmcgcmVjZW50IG1pbmlidWZmZXIgYXJndW1lbnRzLgorIFJlcGV0aXRpb246OiAgICAgICAg ICBSZS1leGVjdXRpbmcgY29tbWFuZHMgdGhhdCB1c2VkIHRoZSBtaW5pYnVmZmVyLgorIFBhc3N3 b3Jkczo6ICAgICAgICAgICBFbnRlcmluZyBwYXNzd29yZHMgaW4gdGhlIGVjaG8gYXJlYS4KKyBZ ZXMgb3IgTm8gUHJvbXB0czo6ICAgUmVwbHlpbmcgeWVzIG9yIG5vIGluIHRoZSBlY2hvIGFyZWEu CgoqKiBDb21wbGV0aW9uCgorIENvbXBsZXRpb24gRXhhbXBsZTo6ICBFeGFtcGxlcyBvZiB1c2lu ZyBjb21wbGV0aW9uLgorIENvbXBsZXRpb24gQ29tbWFuZHM6OiBBIGxpc3Qgb2YgY29tcGxldGlv biBjb21tYW5kcy4KKyBDb21wbGV0aW9uIEV4aXQ6OiAgICAgQ29tcGxldGlvbiBhbmQgbWluaWJ1 ZmZlciB0ZXh0IHN1Ym1pc3Npb24uCisgQ29tcGxldGlvbiBTdHlsZXM6OiAgIEhvdyBjb21wbGV0 aW9uIG1hdGNoZXMgYXJlIGNob3Nlbi4KKyBDb21wbGV0aW9uIE9wdGlvbnM6OiAgT3B0aW9ucyBm b3IgY29tcGxldGlvbi4KCioqIEhlbHAKCisgSGVscCBTdW1tYXJ5OjogICAgICAgIEJyaWVmIGxp c3Qgb2YgYWxsIEhlbHAgY29tbWFuZHMuCisgS2V5IEhlbHA6OiAgICAgICAgICAgIEFza2luZyB3 aGF0IGEga2V5IGRvZXMgaW4gRW1hY3MuCisgTmFtZSBIZWxwOjogICAgICAgICAgIEFza2luZyBh Ym91dCBhIGNvbW1hbmQsIHZhcmlhYmxlIG9yIGZ1bmN0aW9uIG5hbWUuCisgQXByb3Bvczo6ICAg ICAgICAgICAgIEFza2luZyB3aGF0IHBlcnRhaW5zIHRvIGEgZ2l2ZW4gdG9waWMuCisgSGVscCBN b2RlOjogICAgICAgICAgIFNwZWNpYWwgZmVhdHVyZXMgb2YgSGVscCBtb2RlIGFuZCBIZWxwIGJ1 ZmZlcnMuCisgUGFja2FnZSBLZXl3b3Jkczo6ICAgIEZpbmRpbmcgTGlzcCBsaWJyYXJpZXMgYnkg a2V5d29yZHMgKHRvcGljcykuCisgTGFuZ3VhZ2UgSGVscDo6ICAgICAgIEhlbHAgcmVsYXRpbmcg dG8gaW50ZXJuYXRpb25hbCBsYW5ndWFnZSBzdXBwb3J0LgorIE1pc2MgSGVscDo6ICAgICAgICAg ICBPdGhlciBoZWxwIGNvbW1hbmRzLgorIEhlbHAgRmlsZXM6OiAgICAgICAgICBDb21tYW5kcyB0 byBkaXNwbGF5IGF1eGlsaWFyeSBoZWxwIGZpbGVzLgorIEhlbHAgRWNobzo6ICAgICAgICAgICBI ZWxwIG9uIGFjdGl2ZSB0ZXh0IGFuZCB0b29sdGlwcy4KCioqIFRoZSBNYXJrIGFuZCB0aGUgUmVn aW9uCgorIFNldHRpbmcgTWFyazo6ICAgICAgICBDb21tYW5kcyB0byBzZXQgdGhlIG1hcmsuCisg TWFya2luZyBPYmplY3RzOjogICAgIENvbW1hbmRzIHRvIHB1dCByZWdpb24gYXJvdW5kIHRleHR1 YWwgdW5pdHMuCisgVXNpbmcgUmVnaW9uOjogICAgICAgIFN1bW1hcnkgb2Ygd2F5cyB0byBvcGVy YXRlIG9uIGNvbnRlbnRzIG9mIHRoZSByZWdpb24uCisgTWFyayBSaW5nOjogICAgICAgICAgIFBy ZXZpb3VzIG1hcmsgcG9zaXRpb25zIHNhdmVkIHNvIHlvdSBjYW4gZ28gYmFjayB0aGVyZS4KKyBH bG9iYWwgTWFyayBSaW5nOjogICAgUHJldmlvdXMgbWFyayBwb3NpdGlvbnMgaW4gdmFyaW91cyBi dWZmZXJzLgorIFNoaWZ0IFNlbGVjdGlvbjo6ICAgICBVc2luZyBzaGlmdGVkIGN1cnNvciBtb3Rp b24ga2V5cy4KKyBEaXNhYmxlZCBUcmFuc2llbnQgTWFyazo6IExlYXZpbmcgcmVnaW9ucyB1bmhp Z2hsaWdodGVkIGJ5IGRlZmF1bHQuCgoqKiBLaWxsaW5nIGFuZCBNb3ZpbmcgVGV4dAoKKyBEZWxl dGlvbiBhbmQgS2lsbGluZzo6IENvbW1hbmRzIHRoYXQgcmVtb3ZlIHRleHQuCisgWWFua2luZzo6 ICAgICAgICAgICAgIENvbW1hbmRzIHRoYXQgaW5zZXJ0IHRleHQuCisgQ3V0IGFuZCBQYXN0ZTo6 ICAgICAgIENsaXBib2FyZCBhbmQgc2VsZWN0aW9ucyBvbiBncmFwaGljYWwgZGlzcGxheXMuCisg QWNjdW11bGF0aW5nIFRleHQ6OiAgIE90aGVyIG1ldGhvZHMgdG8gYWRkIHRleHQgdG8gdGhlIGJ1 ZmZlci4KKyBSZWN0YW5nbGVzOjogICAgICAgICAgT3BlcmF0aW5nIG9uIHRleHQgaW4gcmVjdGFu Z3VsYXIgYXJlYXMuCisgQ1VBIEJpbmRpbmdzOjogICAgICAgIFVzaW5nIOKAmEMteOKAmS/igJhD LWPigJkv4oCYQy124oCZIHRvIGtpbGwgYW5kIHlhbmsuCgoqKiBEZWxldGlvbiBhbmQgS2lsbGlu ZwoKKyBEZWxldGlvbjo6ICAgICAgICAgICAgQ29tbWFuZHMgZm9yIGRlbGV0aW5nIHNtYWxsIGFt b3VudHMgb2YgdGV4dCBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICBibGFuayBhcmVhcy4K KyBLaWxsaW5nIGJ5IExpbmVzOjogICAgSG93IHRvIGtpbGwgZW50aXJlIGxpbmVzIG9mIHRleHQg YXQgb25lIHRpbWUuCisgT3RoZXIgS2lsbCBDb21tYW5kczo6IENvbW1hbmRzIHRvIGtpbGwgbGFy Z2UgcmVnaW9ucyBvZiB0ZXh0IGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRhY3Rp YyB1bml0cyBzdWNoIGFzIHdvcmRzIGFuZCBzZW50ZW5jZXMuCisgS2lsbCBPcHRpb25zOjogICAg ICAgIE9wdGlvbnMgdGhhdCBhZmZlY3Qga2lsbGluZy4KCioqIFlhbmtpbmcKCisgS2lsbCBSaW5n OjogICAgICAgICAgIFdoZXJlIGtpbGxlZCB0ZXh0IGlzIHN0b3JlZC4KKyBFYXJsaWVyIEtpbGxz OjogICAgICAgWWFua2luZyBzb21ldGhpbmcga2lsbGVkIHNvbWUgdGltZSBhZ28uCisgQXBwZW5k aW5nIEtpbGxzOjogICAgIFNldmVyYWwga2lsbHMgaW4gYSByb3cgYWxsIHlhbmsgdG9nZXRoZXIu CgoqKiBDdXQgYW5kIFBhc3RlIE9wZXJhdGlvbnMgb24gR3JhcGhpY2FsIERpc3BsYXlzCgorIENs aXBib2FyZDo6ICAgICAgICAgICBIb3cgRW1hY3MgdXNlcyB0aGUgc3lzdGVtIGNsaXBib2FyZC4K KyBQcmltYXJ5IFNlbGVjdGlvbjo6ICAgVGhlIHRlbXBvcmFyaWx5IHNlbGVjdGVkIHRleHQgc2Vs ZWN0aW9uLgorIFNlY29uZGFyeSBTZWxlY3Rpb246OiBDdXR0aW5nIHdpdGhvdXQgYWx0ZXJpbmcg cG9pbnQgYW5kIG1hcmsuCgoqKiBSZWdpc3RlcnMKCisgUG9zaXRpb24gUmVnaXN0ZXJzOjogICAg ICAgU2F2aW5nIHBvc2l0aW9ucyBpbiByZWdpc3RlcnMuCisgVGV4dCBSZWdpc3RlcnM6OiAgICAg ICAgICAgU2F2aW5nIHRleHQgaW4gcmVnaXN0ZXJzLgorIFJlY3RhbmdsZSBSZWdpc3RlcnM6OiAg ICAgIFNhdmluZyByZWN0YW5nbGVzIGluIHJlZ2lzdGVycy4KKyBDb25maWd1cmF0aW9uIFJlZ2lz dGVyczo6ICBTYXZpbmcgd2luZG93IGNvbmZpZ3VyYXRpb25zIGluIHJlZ2lzdGVycy4KKyBOdW1i ZXIgUmVnaXN0ZXJzOjogICAgICAgICBOdW1iZXJzIGluIHJlZ2lzdGVycy4KKyBGaWxlIFJlZ2lz dGVyczo6ICAgICAgICAgICBGaWxlIG5hbWVzIGluIHJlZ2lzdGVycy4KKyBLZXlib2FyZCBNYWNy byBSZWdpc3RlcnM6OiBLZXlib2FyZCBtYWNyb3MgaW4gcmVnaXN0ZXJzLgorIEJvb2ttYXJrczo6 ICAgICAgICAgICAgICAgIEJvb2ttYXJrcyBhcmUgbGlrZSByZWdpc3RlcnMsIGJ1dCBwZXJzaXN0 ZW50LgoKKiogQ29udHJvbGxpbmcgdGhlIERpc3BsYXkKCisgU2Nyb2xsaW5nOjogICAgICAgICAg ICAgIENvbW1hbmRzIHRvIG1vdmUgdGV4dCB1cCBhbmQgZG93biBpbiBhIHdpbmRvdy4KKyBSZWNl bnRlcmluZzo6ICAgICAgICAgICAgQSBzY3JvbGwgY29tbWFuZCB0aGF0IGNlbnRlcnMgdGhlIGN1 cnJlbnQgbGluZS4KKyBBdXRvIFNjcm9sbGluZzo6ICAgICAgICAgUmVkaXNwbGF5IHNjcm9sbHMg dGV4dCBhdXRvbWF0aWNhbGx5IHdoZW4gbmVlZGVkLgorIEhvcml6b250YWwgU2Nyb2xsaW5nOjog ICBNb3ZpbmcgdGV4dCBsZWZ0IGFuZCByaWdodCBpbiBhIHdpbmRvdy4KKyBOYXJyb3dpbmc6OiAg ICAgICAgICAgICAgUmVzdHJpY3RpbmcgZGlzcGxheSBhbmQgZWRpdGluZyB0byBhIHBvcnRpb24K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgYnVmZmVyLgorIFZpZXcgTW9kZTo6 ICAgICAgICAgICAgICBWaWV3aW5nIHJlYWQtb25seSBidWZmZXJzLgorIEZvbGxvdyBNb2RlOjog ICAgICAgICAgICBGb2xsb3cgbW9kZSBsZXRzIHR3byB3aW5kb3dzIHNjcm9sbCBhcyBvbmUuCisg RmFjZXM6OiAgICAgICAgICAgICAgICAgIEhvdyB0byBjaGFuZ2UgdGhlIGRpc3BsYXkgc3R5bGUg dXNpbmcgZmFjZXMuCisgQ29sb3JzOjogICAgICAgICAgICAgICAgIFNwZWNpZnlpbmcgY29sb3Jz IGZvciBmYWNlcy4KKyBTdGFuZGFyZCBGYWNlczo6ICAgICAgICAgVGhlIG1haW4gcHJlZGVmaW5l ZCBmYWNlcy4KKyBUZXh0IFNjYWxlOjogICAgICAgICAgICAgSW5jcmVhc2luZyBvciBkZWNyZWFz aW5nIHRleHQgc2l6ZSBpbiBhIGJ1ZmZlci4KKyBGb250IExvY2s6OiAgICAgICAgICAgICAgTWlu b3IgbW9kZSBmb3Igc3ludGFjdGljIGhpZ2hsaWdodGluZyB1c2luZyBmYWNlcy4KKyBIaWdobGln aHQgSW50ZXJhY3RpdmVseTo6IFRlbGwgRW1hY3Mgd2hhdCB0ZXh0IHRvIGhpZ2hsaWdodC4KKyBG cmluZ2VzOjogICAgICAgICAgICAgICAgRW5hYmxpbmcgb3IgZGlzYWJsaW5nIHdpbmRvdyBmcmlu Z2VzLgorIERpc3BsYXlpbmcgQm91bmRhcmllczo6ICBEaXNwbGF5aW5nIHRvcCBhbmQgYm90dG9t IG9mIHRoZSBidWZmZXIuCisgVXNlbGVzcyBXaGl0ZXNwYWNlOjogICAgIFNob3dpbmcgcG9zc2li bHkgc3B1cmlvdXMgdHJhaWxpbmcgd2hpdGVzcGFjZS4KKyBTZWxlY3RpdmUgRGlzcGxheTo6ICAg ICAgSGlkaW5nIGxpbmVzIHdpdGggbG90cyBvZiBpbmRlbnRhdGlvbi4KKyBPcHRpb25hbCBNb2Rl IExpbmU6OiAgICAgT3B0aW9uYWwgbW9kZSBsaW5lIGRpc3BsYXkgZmVhdHVyZXMuCisgVGV4dCBE aXNwbGF5OjogICAgICAgICAgIEhvdyB0ZXh0IGNoYXJhY3RlcnMgYXJlIG5vcm1hbGx5IGRpc3Bs YXllZC4KKyBDdXJzb3IgRGlzcGxheTo6ICAgICAgICAgRmVhdHVyZXMgZm9yIGRpc3BsYXlpbmcg dGhlIGN1cnNvci4KKyBMaW5lIFRydW5jYXRpb246OiAgICAgICAgVHJ1bmNhdGluZyBsaW5lcyB0 byBmaXQgdGhlIHNjcmVlbiB3aWR0aCBpbnN0ZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2YgY29udGludWluZyB0aGVtIHRvIG11bHRpcGxlIHNjcmVlbiBsaW5lcy4KKyBWaXN1YWwg TGluZSBNb2RlOjogICAgICAgV29yZCB3cmFwIGFuZCBzY3JlZW4gbGluZS1iYXNlZCBlZGl0aW5n LgorIERpc3BsYXkgQ3VzdG9tOjogICAgICAgICBJbmZvcm1hdGlvbiBvbiB2YXJpYWJsZXMgZm9y IGN1c3RvbWl6aW5nIGRpc3BsYXkuCgoqKiBTZWFyY2hpbmcgYW5kIFJlcGxhY2VtZW50CgorIElu Y3JlbWVudGFsIFNlYXJjaDo6ICAgICBTZWFyY2ggaGFwcGVucyBhcyB5b3UgdHlwZSB0aGUgc3Ry aW5nLgorIE5vbmluY3JlbWVudGFsIFNlYXJjaDo6ICBTcGVjaWZ5IGVudGlyZSBzdHJpbmcgYW5k IHRoZW4gc2VhcmNoLgorIFdvcmQgU2VhcmNoOjogICAgICAgICAgICBTZWFyY2ggZm9yIHNlcXVl bmNlIG9mIHdvcmRzLgorIFN5bWJvbCBTZWFyY2g6OiAgICAgICAgICBTZWFyY2ggZm9yIGEgc291 cmNlIGNvZGUgc3ltYm9sLgorIFJlZ2V4cCBTZWFyY2g6OiAgICAgICAgICBTZWFyY2ggZm9yIG1h dGNoIGZvciBhIHJlZ2V4cC4KKyBSZWdleHBzOjogICAgICAgICAgICAgICAgU3ludGF4IG9mIHJl Z3VsYXIgZXhwcmVzc2lvbnMuCisgUmVnZXhwIEJhY2tzbGFzaDo6ICAgICAgIFJlZ3VsYXIgZXhw cmVzc2lvbiBjb25zdHJ1Y3RzIHN0YXJ0aW5nIHdpdGgg4oCYXOKAmS4KKyBSZWdleHAgRXhhbXBs ZTo6ICAgICAgICAgQSBjb21wbGV4IHJlZ3VsYXIgZXhwcmVzc2lvbiBleHBsYWluZWQuCisgTGF4 IFNlYXJjaDo6ICAgICAgICAgICAgICAgIFNlYXJjaCBpZ25vcmVzIHNvbWUgZGlzdGluY3Rpb25z IGJldHdlZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaW1pbGFyIGNoYXJhY3Rl cnMsIGxpa2UgbGV0dGVyLWNhc2UuCisgUmVwbGFjZTo6ICAgICAgICAgICAgICAgIFNlYXJjaCwg YW5kIHJlcGxhY2Ugc29tZSBvciBhbGwgbWF0Y2hlcy4KKyBPdGhlciBSZXBlYXRpbmcgU2VhcmNo OjogT3BlcmF0aW5nIG9uIGFsbCBtYXRjaGVzIGZvciBzb21lIHJlZ2V4cC4KKyBTZWFyY2ggQ3Vz dG9taXphdGlvbnM6OiAgVmFyaW91cyBzZWFyY2ggY3VzdG9taXphdGlvbnMuCgoqKiBJbmNyZW1l bnRhbCBTZWFyY2gKCisgQmFzaWMgSXNlYXJjaDo6ICAgICAgICBCYXNpYyBpbmNyZW1lbnRhbCBz ZWFyY2ggY29tbWFuZHMuCisgUmVwZWF0IElzZWFyY2g6OiAgICAgICBTZWFyY2hpbmcgZm9yIHRo ZSBzYW1lIHN0cmluZyBhZ2Fpbi4KKyBJc2VhcmNoIFlhbms6OiAgICAgICAgIENvbW1hbmRzIHRo YXQgZ3JhYiB0ZXh0IGludG8gdGhlIHNlYXJjaCBzdHJpbmcKICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3IgZWxzZSBlZGl0IHRoZSBzZWFyY2ggc3RyaW5nLgorIEVycm9yIGluIElzZWFyY2g6 OiAgICAgV2hlbiB5b3VyIHN0cmluZyBpcyBub3QgZm91bmQuCisgU3BlY2lhbCBJc2VhcmNoOjog ICAgICBTcGVjaWFsIGlucHV0IGluIGluY3JlbWVudGFsIHNlYXJjaC4KKyBOb3QgRXhpdGluZyBJ c2VhcmNoOjogIFByZWZpeCBhcmd1bWVudCBhbmQgc2Nyb2xsaW5nIGNvbW1hbmRzLgorIElzZWFy Y2ggTWluaWJ1ZmZlcjo6ICAgSW5jcmVtZW50YWwgc2VhcmNoIG9mIHRoZSBtaW5pYnVmZmVyIGhp c3RvcnkuCgoqKiBSZXBsYWNlbWVudCBDb21tYW5kcwoKKyBVbmNvbmRpdGlvbmFsIFJlcGxhY2U6 OiAgUmVwbGFjaW5nIGFsbCBtYXRjaGVzIGZvciBhIHN0cmluZy4KKyBSZWdleHAgUmVwbGFjZTo6 ICAgICAgICAgUmVwbGFjaW5nIGFsbCBtYXRjaGVzIGZvciBhIHJlZ2V4cC4KKyBSZXBsYWNlbWVu dCBhbmQgTGF4IE1hdGNoZXM6OgogICAgICAgICAgICAgICAgICAgICAgICAgICBMYXggc2VhcmNo aW5nIGZvciB0ZXh0IHRvIHJlcGxhY2UuCisgUXVlcnkgUmVwbGFjZTo6ICAgICAgICAgIEhvdyB0 byB1c2UgcXVlcnlpbmcuCgoqKiBDb21tYW5kcyBmb3IgRml4aW5nIFR5cG9zCgorIFVuZG86OiAg ICAgICAgICAgICAgICBUaGUgVW5kbyBjb21tYW5kcy4KKyBUcmFuc3Bvc2U6OiAgICAgICAgICAg RXhjaGFuZ2luZyB0d28gY2hhcmFjdGVycywgd29yZHMsIGxpbmVzLCBsaXN0cy4uLgorIEZpeGlu ZyBDYXNlOjogICAgICAgICBDb3JyZWN0aW5nIGNhc2Ugb2YgbGFzdCB3b3JkIGVudGVyZWQuCisg U3BlbGxpbmc6OiAgICAgICAgICAgIEFwcGx5IHNwZWxsaW5nIGNoZWNrZXIgdG8gYSB3b3JkLCBv ciBhIHdob2xlIGZpbGUuCgoqKiBLZXlib2FyZCBNYWNyb3MKCisgQmFzaWMgS2V5Ym9hcmQgTWFj cm86OiAgICAgRGVmaW5pbmcgYW5kIHJ1bm5pbmcga2V5Ym9hcmQgbWFjcm9zLgorIEtleWJvYXJk IE1hY3JvIFJpbmc6OiAgICAgIFdoZXJlIHByZXZpb3VzIGtleWJvYXJkIG1hY3JvcyBhcmUgc2F2 ZWQuCisgS2V5Ym9hcmQgTWFjcm8gQ291bnRlcjo6ICAgSW5zZXJ0aW5nIGluY3JlbWVudGluZyBu dW1iZXJzIGluIG1hY3Jvcy4KKyBLZXlib2FyZCBNYWNybyBRdWVyeTo6ICAgICBNYWtpbmcga2V5 Ym9hcmQgbWFjcm9zIGRvIGRpZmZlcmVudCB0aGluZ3MgZWFjaAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpbWUuCisgU2F2ZSBLZXlib2FyZCBNYWNybzo6ICAgICAgR2l2aW5nIGtl eWJvYXJkIG1hY3JvcyBuYW1lczsgc2F2aW5nIHRoZW0gaW4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWxlcy4KKyBFZGl0IEtleWJvYXJkIE1hY3JvOjogICAgICBFZGl0aW5nIGtl eWJvYXJkIG1hY3Jvcy4KKyBLZXlib2FyZCBNYWNybyBTdGVwLUVkaXQ6OiBJbnRlcmFjdGl2ZWx5 IGV4ZWN1dGluZyBhbmQgZWRpdGluZyBhIGtleWJvYXJkCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWFjcm8uCgoqKiBGaWxlIEhhbmRsaW5nCgorIEZpbGUgTmFtZXM6OiAgICAgICAg ICBIb3cgdG8gdHlwZSBhbmQgZWRpdCBmaWxlLW5hbWUgYXJndW1lbnRzLgorIFZpc2l0aW5nOjog ICAgICAgICAgICBWaXNpdGluZyBhIGZpbGUgcHJlcGFyZXMgRW1hY3MgdG8gZWRpdCB0aGUgZmls ZS4KKyBTYXZpbmc6OiAgICAgICAgICAgICAgU2F2aW5nIG1ha2VzIHlvdXIgY2hhbmdlcyBwZXJt YW5lbnQuCisgUmV2ZXJ0aW5nOjogICAgICAgICAgIFJldmVydGluZyBjYW5jZWxzIGFsbCB0aGUg Y2hhbmdlcyBub3Qgc2F2ZWQuCisgQXV0b3JldmVydDo6ICAgICAgICAgIEF1dG8gUmV2ZXJ0aW5n IG5vbi1maWxlIGJ1ZmZlcnMuCisgQXV0byBTYXZlOjogICAgICAgICAgIEF1dG8gU2F2ZSBwZXJp b2RpY2FsbHkgcHJvdGVjdHMgYWdhaW5zdCBsb3NzIG9mIGRhdGEuCisgRmlsZSBBbGlhc2VzOjog ICAgICAgIEhhbmRsaW5nIG11bHRpcGxlIG5hbWVzIGZvciBvbmUgZmlsZS4KKyBEaXJlY3Rvcmll czo6ICAgICAgICAgQ3JlYXRpbmcsIGRlbGV0aW5nLCBhbmQgbGlzdGluZyBmaWxlIGRpcmVjdG9y aWVzLgorIENvbXBhcmluZyBGaWxlczo6ICAgICBGaW5kaW5nIHdoZXJlIHR3byBmaWxlcyBkaWZm ZXIuCisgRGlmZiBNb2RlOjogICAgICAgICAgIE1vZGUgZm9yIGVkaXRpbmcgZmlsZSBkaWZmZXJl bmNlcy4KKyBDb3B5aW5nIGFuZCBOYW1pbmc6OiAgQ29weWluZywgbmFtaW5nIGFuZCByZW5hbWlu ZyBmaWxlcy4KKyBNaXNjIEZpbGUgT3BzOjogICAgICAgT3RoZXIgdGhpbmdzIHlvdSBjYW4gZG8g b24gZmlsZXMuCisgQ29tcHJlc3NlZCBGaWxlczo6ICAgIEFjY2Vzc2luZyBjb21wcmVzc2VkIGZp bGVzLgorIEZpbGUgQXJjaGl2ZXM6OiAgICAgICBPcGVyYXRpbmcgb24gdGFyLCB6aXAsIGphciBl dGMuIGFyY2hpdmUgZmlsZXMuCisgUmVtb3RlIEZpbGVzOjogICAgICAgIEFjY2Vzc2luZyBmaWxl cyBvbiBvdGhlciBtYWNoaW5lcy4KKyBRdW90ZWQgRmlsZSBOYW1lczo6ICAgUXVvdGluZyBzcGVj aWFsIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lcy4KKyBGaWxlIE5hbWUgQ2FjaGU6OiAgICAgQ29t cGxldGlvbiBhZ2FpbnN0IGEgbGlzdCBvZiBmaWxlcyB5b3Ugb2Z0ZW4gdXNlLgorIEZpbGUgQ29u dmVuaWVuY2VzOjogICBDb252ZW5pZW5jZSBGZWF0dXJlcyBmb3IgRmluZGluZyBGaWxlcy4KKyBG aWxlc2V0czo6ICAgICAgICAgICAgSGFuZGxpbmcgc2V0cyBvZiBmaWxlcy4KCioqIFNhdmluZyBG aWxlcwoKKyBTYXZlIENvbW1hbmRzOjogICAgICAgQ29tbWFuZHMgZm9yIHNhdmluZyBmaWxlcy4K KyBCYWNrdXA6OiAgICAgICAgICAgICAgSG93IEVtYWNzIHNhdmVzIHRoZSBvbGQgdmVyc2lvbiBv ZiB5b3VyIGZpbGUuCisgQ3VzdG9taXplIFNhdmU6OiAgICAgIEN1c3RvbWl6aW5nIHRoZSBzYXZp bmcgb2YgZmlsZXMuCisgSW50ZXJsb2NraW5nOjogICAgICAgIEhvdyBFbWFjcyBwcm90ZWN0cyBh Z2FpbnN0IHNpbXVsdGFuZW91cyBlZGl0aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgb2Yg b25lIGZpbGUgYnkgdHdvIHVzZXJzLgorIEZpbGUgU2hhZG93aW5nOjogICAgICBDb3B5aW5nIGZp bGVzIHRvIHNoYWRvd3MgYXV0b21hdGljYWxseS4KKyBUaW1lIFN0YW1wczo6ICAgICAgICAgRW1h Y3MgY2FuIHVwZGF0ZSB0aW1lIHN0YW1wcyBvbiBzYXZlZCBmaWxlcy4KCioqIEJhY2t1cCBGaWxl cwoKKyBCYWNrdXAgTmFtZXM6OiAgICAgICAgSG93IGJhY2t1cCBmaWxlcyBhcmUgbmFtZWQuCisg QmFja3VwIERlbGV0aW9uOjogICAgIEVtYWNzIGRlbGV0ZXMgZXhjZXNzIG51bWJlcmVkIGJhY2t1 cHMuCisgQmFja3VwIENvcHlpbmc6OiAgICAgIEJhY2t1cHMgY2FuIGJlIG1hZGUgYnkgY29weWlu ZyBvciByZW5hbWluZy4KCioqIEF1dG8gUmV2ZXJ0aW5nIE5vbi1GaWxlIEJ1ZmZlcnMKCisgQXV0 byBSZXZlcnRpbmcgdGhlIEJ1ZmZlciBNZW51OjogQXV0byBSZXZlcnQgb2YgdGhlIEJ1ZmZlciBN ZW51LgorIEF1dG8gUmV2ZXJ0aW5nIERpcmVkOjogICAgICAgICAgIEF1dG8gUmV2ZXJ0IG9mIERp cmVkIGJ1ZmZlcnMuCgoqKiBBdXRvLVNhdmluZzogUHJvdGVjdGlvbiBBZ2FpbnN0IERpc2FzdGVy cwoKKyBBdXRvIFNhdmUgRmlsZXM6OiAgICAgVGhlIGZpbGUgd2hlcmUgYXV0by1zYXZlZCBjaGFu Z2VzIGFyZQogICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbGx5IG1hZGUgdW50aWwgeW91 IHNhdmUgdGhlIGZpbGUuCisgQXV0byBTYXZlIENvbnRyb2w6OiAgIENvbnRyb2xsaW5nIHdoZW4g YW5kIGhvdyBvZnRlbiB0byBhdXRvLXNhdmUuCisgUmVjb3Zlcjo6ICAgICAgICAgICAgIFJlY292 ZXJpbmcgdGV4dCBmcm9tIGF1dG8tc2F2ZSBmaWxlcy4KCioqIFVzaW5nIE11bHRpcGxlIEJ1ZmZl cnMKCisgU2VsZWN0IEJ1ZmZlcjo6ICAgICAgIENyZWF0aW5nIGEgbmV3IGJ1ZmZlciBvciByZXNl bGVjdGluZyBhbiBvbGQgb25lLgorIExpc3QgQnVmZmVyczo6ICAgICAgICBHZXR0aW5nIGEgbGlz dCBvZiBidWZmZXJzIHRoYXQgZXhpc3QuCisgTWlzYyBCdWZmZXI6OiAgICAgICAgIFJlbmFtaW5n OyBjaGFuZ2luZyByZWFkLW9ubHkgc3RhdHVzOyBjb3B5aW5nIHRleHQuCisgS2lsbCBCdWZmZXI6 OiAgICAgICAgIEtpbGxpbmcgYnVmZmVycyB5b3Ugbm8gbG9uZ2VyIG5lZWQuCisgU2V2ZXJhbCBC dWZmZXJzOjogICAgIEhvdyB0byBnbyB0aHJvdWdoIHRoZSBsaXN0IG9mIGFsbCBidWZmZXJzCiAg ICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG9wZXJhdGUgdmFyaW91c2x5IG9uIHNldmVyYWwg b2YgdGhlbS4KKyBJbmRpcmVjdCBCdWZmZXJzOjogICAgQW4gaW5kaXJlY3QgYnVmZmVyIHNoYXJl cyB0aGUgdGV4dCBvZiBhbm90aGVyIGJ1ZmZlci4KKyBCdWZmZXIgQ29udmVuaWVuY2U6OiAgQ29u dmVuaWVuY2UgYW5kIGN1c3RvbWl6YXRpb24gZmVhdHVyZXMgZm9yCiAgICAgICAgICAgICAgICAg ICAgICAgICAgYnVmZmVyIGhhbmRsaW5nLgoKKiogQ29udmVuaWVuY2UgRmVhdHVyZXMgYW5kIEN1 c3RvbWl6YXRpb24gb2YgQnVmZmVyIEhhbmRsaW5nCgorIFVuaXF1aWZ5OjogICAgICAgICAgICBN YWtpbmcgYnVmZmVyIG5hbWVzIHVuaXF1ZSB3aXRoIGRpcmVjdG9yeSBwYXJ0cy4KKyBJY29tcGxl dGU6OiAgICAgICAgICAgRmFzdCBtaW5pYnVmZmVyIHNlbGVjdGlvbi4KKyBCdWZmZXIgTWVudXM6 OiAgICAgICAgQ29uZmlndXJhYmxlIGJ1ZmZlciBtZW51LgoKKiogTXVsdGlwbGUgV2luZG93cwoK KyBCYXNpYyBXaW5kb3c6OiAgICAgICAgSW50cm9kdWN0aW9uIHRvIEVtYWNzIHdpbmRvd3MuCisg U3BsaXQgV2luZG93OjogICAgICAgIE5ldyB3aW5kb3dzIGFyZSBtYWRlIGJ5IHNwbGl0dGluZyBl eGlzdGluZyB3aW5kb3dzLgorIE90aGVyIFdpbmRvdzo6ICAgICAgICBNb3ZpbmcgdG8gYW5vdGhl ciB3aW5kb3cgb3IgZG9pbmcgc29tZXRoaW5nIHRvIGl0LgorIFBvcCBVcCBXaW5kb3c6OiAgICAg ICBGaW5kaW5nIGEgZmlsZSBvciBidWZmZXIgaW4gYW5vdGhlciB3aW5kb3cuCisgQ2hhbmdlIFdp bmRvdzo6ICAgICAgIERlbGV0aW5nIHdpbmRvd3MgYW5kIGNoYW5naW5nIHRoZWlyIHNpemVzLgor IERpc3BsYXlpbmcgQnVmZmVyczo6ICBIb3cgRW1hY3MgcGlja3MgYSB3aW5kb3cgZm9yIGRpc3Bs YXlpbmcgYSBidWZmZXIuCisgVGVtcG9yYXJ5IERpc3BsYXlzOjogIERpc3BsYXlpbmcgbm9uLWVk aXRhYmxlIGJ1ZmZlcnMuCisgV2luZG93IENvbnZlbmllbmNlOjogIENvbnZlbmllbmNlIGZ1bmN0 aW9ucyBmb3Igd2luZG93IGhhbmRsaW5nLgoKKiogRGlzcGxheWluZyBhIEJ1ZmZlciBpbiBhIFdp bmRvdwoKKyBXaW5kb3cgQ2hvaWNlOjogICAgICAgSG93IOKAmGRpc3BsYXktYnVmZmVy4oCZIHdv cmtzLgoKKiogRnJhbWVzIGFuZCBHcmFwaGljYWwgRGlzcGxheXMKCisgTW91c2UgQ29tbWFuZHM6 OiAgICAgIE1vdmluZywgY3V0dGluZywgYW5kIHBhc3RpbmcsIHdpdGggdGhlIG1vdXNlLgorIFdv cmQgYW5kIExpbmUgTW91c2U6OiBNb3VzZSBjb21tYW5kcyBmb3Igc2VsZWN0aW5nIHdob2xlIHdv cmRzIG9yIGxpbmVzLgorIE1vdXNlIFJlZmVyZW5jZXM6OiAgICBVc2luZyB0aGUgbW91c2UgdG8g c2VsZWN0IGFuIGl0ZW0gZnJvbSBhIGxpc3QuCisgTWVudSBNb3VzZSBDbGlja3M6OiAgIE1vdXNl IGNsaWNrcyB0aGF0IGJyaW5nIHVwIG1lbnVzLgorIE1vZGUgTGluZSBNb3VzZTo6ICAgICBNb3Vz ZSBjbGlja3Mgb24gdGhlIG1vZGUgbGluZS4KKyBDcmVhdGluZyBGcmFtZXM6OiAgICAgQ3JlYXRp bmcgYWRkaXRpb25hbCBFbWFjcyBmcmFtZXMgd2l0aCB2YXJpb3VzIGNvbnRlbnRzLgorIEZyYW1l IENvbW1hbmRzOjogICAgICBJY29uaWZ5aW5nLCBkZWxldGluZywgYW5kIHN3aXRjaGluZyBmcmFt ZXMuCisgRm9udHM6OiAgICAgICAgICAgICAgIENoYW5naW5nIHRoZSBmcmFtZSBmb250LgorIFNw ZWVkYmFyOjogICAgICAgICAgICBIb3cgdG8gbWFrZSBhbmQgdXNlIGEgc3BlZWRiYXIgZnJhbWUu CisgTXVsdGlwbGUgRGlzcGxheXM6OiAgIEhvdyBvbmUgRW1hY3MgaW5zdGFuY2UgY2FuIHRhbGsg dG8gc2V2ZXJhbCBkaXNwbGF5cy4KKyBGcmFtZSBQYXJhbWV0ZXJzOjogICAgQ2hhbmdpbmcgdGhl IGNvbG9ycyBhbmQgb3RoZXIgbW9kZXMgb2YgZnJhbWVzLgorIFNjcm9sbCBCYXJzOjogICAgICAg ICBIb3cgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIHNjcm9sbCBiYXJzOyBob3cgdG8gdXNlIHRoZW0u CisgV2luZG93IERpdmlkZXJzOjogICAgIFdpbmRvdyBzZXBhcmF0b3JzIHRoYXQgY2FuIGJlIGRy YWdnZWQgd2l0aCB0aGUgbW91c2UuCisgRHJhZyBhbmQgRHJvcDo6ICAgICAgIFVzaW5nIGRyYWcg YW5kIGRyb3AgdG8gb3BlbiBmaWxlcyBhbmQgaW5zZXJ0IHRleHQuCisgTWVudSBCYXJzOjogICAg ICAgICAgIEVuYWJsaW5nIGFuZCBkaXNhYmxpbmcgdGhlIG1lbnUgYmFyLgorIFRvb2wgQmFyczo6 ICAgICAgICAgICBFbmFibGluZyBhbmQgZGlzYWJsaW5nIHRoZSB0b29sIGJhci4KKyBEaWFsb2cg Qm94ZXM6OiAgICAgICAgQ29udHJvbGxpbmcgdXNlIG9mIGRpYWxvZyBib3hlcy4KKyBUb29sdGlw czo6ICAgICAgICAgICAgRGlzcGxheWluZyBpbmZvcm1hdGlvbiBhdCB0aGUgY3VycmVudCBtb3Vz ZSBwb3NpdGlvbi4KKyBNb3VzZSBBdm9pZGFuY2U6OiAgICAgUHJldmVudGluZyB0aGUgbW91c2Ug cG9pbnRlciBmcm9tIG9ic2N1cmluZyB0ZXh0LgorIE5vbi1XaW5kb3cgVGVybWluYWxzOjogIE11 bHRpcGxlIGZyYW1lcyBvbiB0ZXJtaW5hbHMgdGhhdCBzaG93IG9ubHkgb25lLgorIFRleHQtT25s eSBNb3VzZTo6ICAgICBVc2luZyB0aGUgbW91c2UgaW4gdGV4dCB0ZXJtaW5hbHMuCgoqKiBJbnRl cm5hdGlvbmFsIENoYXJhY3RlciBTZXQgU3VwcG9ydAoKKyBJbnRlcm5hdGlvbmFsIENoYXJzOjog ICAgIEJhc2ljIGNvbmNlcHRzIG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgorIExhbmd1YWdlIEVu dmlyb25tZW50czo6ICAgU2V0dGluZyB0aGluZ3MgdXAgZm9yIHRoZSBsYW5ndWFnZSB5b3UgdXNl LgorIElucHV0IE1ldGhvZHM6OiAgICAgICAgICAgRW50ZXJpbmcgdGV4dCBjaGFyYWN0ZXJzIG5v dCBvbiB5b3VyIGtleWJvYXJkLgorIFNlbGVjdCBJbnB1dCBNZXRob2Q6OiAgICAgU3BlY2lmeWlu ZyB5b3VyIGNob2ljZSBvZiBpbnB1dCBtZXRob2RzLgorIENvZGluZyBTeXN0ZW1zOjogICAgICAg ICAgQ2hhcmFjdGVyIHNldCBjb252ZXJzaW9uIHdoZW4geW91IHJlYWQgYW5kCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlIGZpbGVzLCBhbmQgc28gb24uCisgUmVjb2duaXplIENv ZGluZzo6ICAgICAgICBIb3cgRW1hY3MgZmlndXJlcyBvdXQgd2hpY2ggY29udmVyc2lvbiB0byB1 c2UuCisgU3BlY2lmeSBDb2Rpbmc6OiAgICAgICAgICBTcGVjaWZ5aW5nIGEgZmlsZeKAmXMgY29k aW5nIHN5c3RlbSBleHBsaWNpdGx5LgorIE91dHB1dCBDb2Rpbmc6OiAgICAgICAgICAgQ2hvb3Np bmcgY29kaW5nIHN5c3RlbXMgZm9yIG91dHB1dC4KKyBUZXh0IENvZGluZzo6ICAgICAgICAgICAg IENob29zaW5nIGNvbnZlcnNpb24gdG8gdXNlIGZvciBmaWxlIHRleHQuCisgQ29tbXVuaWNhdGlv biBDb2Rpbmc6OiAgICBDb2Rpbmcgc3lzdGVtcyBmb3IgaW50ZXJwcm9jZXNzIGNvbW11bmljYXRp b24uCisgRmlsZSBOYW1lIENvZGluZzo6ICAgICAgICBDb2Rpbmcgc3lzdGVtcyBmb3IgZmlsZSBf bmFtZXNfLgorIFRlcm1pbmFsIENvZGluZzo6ICAgICAgICAgU3BlY2lmeWluZyBjb2Rpbmcgc3lz dGVtcyBmb3IgY29udmVydGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5h bCBpbnB1dCBhbmQgb3V0cHV0LgorIEZvbnRzZXRzOjogICAgICAgICAgICAgICAgRm9udHNldHMg YXJlIGNvbGxlY3Rpb25zIG9mIGZvbnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo YXQgY292ZXIgdGhlIHdob2xlIHNwZWN0cnVtIG9mIGNoYXJhY3RlcnMuCisgRGVmaW5pbmcgRm9u dHNldHM6OiAgICAgICBEZWZpbmluZyBhIG5ldyBmb250c2V0LgorIE1vZGlmeWluZyBGb250c2V0 czo6ICAgICAgTW9kaWZ5aW5nIGFuIGV4aXN0aW5nIGZvbnRzZXQuCisgVW5kaXNwbGF5YWJsZSBD aGFyYWN0ZXJzOjpXaGVuIGNoYXJhY3RlcnMgZG9u4oCZdCBkaXNwbGF5LgorIFVuaWJ5dGUgTW9k ZTo6ICAgICAgICAgICAgWW91IGNhbiBwaWNrIG9uZSBFdXJvcGVhbiBjaGFyYWN0ZXIgc2V0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHVzZSB3aXRob3V0IG11bHRpYnl0ZSBjaGFy YWN0ZXJzLgorIENoYXJzZXRzOjogICAgICAgICAgICAgICAgSG93IEVtYWNzIGdyb3VwcyBpdHMg aW50ZXJuYWwgY2hhcmFjdGVyIGNvZGVzLgorIEJpZGlyZWN0aW9uYWwgRWRpdGluZzo6ICAgU3Vw cG9ydCBmb3IgcmlnaHQtdG8tbGVmdCBzY3JpcHRzLgoKKiogTWFqb3IgYW5kIE1pbm9yIE1vZGVz CgorIE1ham9yIE1vZGVzOjogICAgICAgICBUZXh0IG1vZGUgdnMuIExpc3AgbW9kZSB2cy4gQyBt b2RlLi4uCisgTWlub3IgTW9kZXM6OiAgICAgICAgIEVhY2ggbWlub3IgbW9kZSBpcyBhIGZlYXR1 cmUgeW91IGNhbiB0dXJuIG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXBlbmRlbnRs eSBvZiBhbnkgb3RoZXJzLgorIENob29zaW5nIE1vZGVzOjogICAgICBIb3cgbW9kZXMgYXJlIGNo b3NlbiB3aGVuIHZpc2l0aW5nIGZpbGVzLgoKKiogSW5kZW50YXRpb24KCisgSW5kZW50YXRpb24g Q29tbWFuZHM6OiAgTW9yZSBjb21tYW5kcyBmb3IgcGVyZm9ybWluZyBpbmRlbnRhdGlvbi4KKyBU YWIgU3RvcHM6OiAgICAgICAgICAgICBTdG9wIHBvaW50cyBmb3IgaW5kZW50YXRpb24gaW4gVGV4 dCBtb2Rlcy4KKyBKdXN0IFNwYWNlczo6ICAgICAgICAgICBVc2luZyBvbmx5IHNwYWNlIGNoYXJh Y3RlcnMgZm9yIGluZGVudGF0aW9uLgorIEluZGVudCBDb252ZW5pZW5jZTo6ICAgIE9wdGlvbmFs IGluZGVudGF0aW9uIGZlYXR1cmVzLgoKKiogQ29tbWFuZHMgZm9yIEh1bWFuIExhbmd1YWdlcwoK KyBXb3Jkczo6ICAgICAgICAgICAgICAgTW92aW5nIG92ZXIgYW5kIGtpbGxpbmcgd29yZHMuCisg U2VudGVuY2VzOjogICAgICAgICAgIE1vdmluZyBvdmVyIGFuZCBraWxsaW5nIHNlbnRlbmNlcy4K KyBQYXJhZ3JhcGhzOjogICAgICAgICAgTW92aW5nIG92ZXIgcGFyYWdyYXBocy4KKyBQYWdlczo6 ICAgICAgICAgICAgICAgTW92aW5nIG92ZXIgcGFnZXMuCisgUXVvdGF0aW9uIE1hcmtzOjogICAg IEluc2VydGluZyBxdW90YXRpb24gbWFya3MuCisgRmlsbGluZzo6ICAgICAgICAgICAgIEZpbGxp bmcgb3IganVzdGlmeWluZyB0ZXh0LgorIENhc2U6OiAgICAgICAgICAgICAgICBDaGFuZ2luZyB0 aGUgY2FzZSBvZiB0ZXh0LgorIFRleHQgTW9kZTo6ICAgICAgICAgICBUaGUgbWFqb3IgbW9kZXMg Zm9yIGVkaXRpbmcgdGV4dCBmaWxlcy4KKyBPdXRsaW5lIE1vZGU6OiAgICAgICAgRWRpdGluZyBv dXRsaW5lcy4KKyBPcmcgTW9kZTo6ICAgICAgICAgICAgVGhlIEVtYWNzIG9yZ2FuaXplci4KKyBU ZVggTW9kZTo6ICAgICAgICAgICAgRWRpdGluZyBUZVggYW5kIExhVGVYIGZpbGVzLgorIEhUTUwg TW9kZTo6ICAgICAgICAgICBFZGl0aW5nIEhUTUwgYW5kIFNHTUwgZmlsZXMuCisgTnJvZmYgTW9k ZTo6ICAgICAgICAgIEVkaXRpbmcgaW5wdXQgdG8gdGhlIG5yb2ZmIGZvcm1hdHRlci4KKyBFbnJp Y2hlZCBUZXh0OjogICAgICAgRWRpdGluZyB0ZXh0IGVucmljaGVkIHdpdGggZm9udHMsIGNvbG9y cywgZXRjLgorIFRleHQgQmFzZWQgVGFibGVzOjogICBDb21tYW5kcyBmb3IgZWRpdGluZyB0ZXh0 LWJhc2VkIHRhYmxlcy4KKyBUd28tQ29sdW1uOjogICAgICAgICAgU3BsaXR0aW5nIHRleHQgY29s dW1ucyBpbnRvIHNlcGFyYXRlIHdpbmRvd3MuCgoqKiBGaWxsaW5nIFRleHQKCisgQXV0byBGaWxs OjogICAgICAgICAgIEF1dG8gRmlsbCBtb2RlIGJyZWFrcyBsb25nIGxpbmVzIGF1dG9tYXRpY2Fs bHkuCisgRmlsbCBDb21tYW5kczo6ICAgICAgIENvbW1hbmRzIHRvIHJlZmlsbCBwYXJhZ3JhcGhz IGFuZCBjZW50ZXIgbGluZXMuCisgRmlsbCBQcmVmaXg6OiAgICAgICAgIEZpbGxpbmcgcGFyYWdy YXBocyB0aGF0IGFyZSBpbmRlbnRlZAogICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGluIGEg Y29tbWVudCwgZXRjLgorIEFkYXB0aXZlIEZpbGw6OiAgICAgICBIb3cgRW1hY3MgY2FuIGRldGVy bWluZSB0aGUgZmlsbCBwcmVmaXggYXV0b21hdGljYWxseS4KCioqIE91dGxpbmUgTW9kZQoKKyBP dXRsaW5lIEZvcm1hdDo6ICAgICAgV2hhdCB0aGUgdGV4dCBvZiBhbiBvdXRsaW5lIGxvb2tzIGxp a2UuCisgT3V0bGluZSBNb3Rpb246OiAgICAgIFNwZWNpYWwgY29tbWFuZHMgZm9yIG1vdmluZyB0 aHJvdWdoIG91dGxpbmVzLgorIE91dGxpbmUgVmlzaWJpbGl0eTo6ICBDb21tYW5kcyB0byBjb250 cm9sIHdoYXQgaXMgdmlzaWJsZS4KKyBPdXRsaW5lIFZpZXdzOjogICAgICAgT3V0bGluZXMgYW5k IG11bHRpcGxlIHZpZXdzLgorIEZvbGRvdXQ6OiAgICAgICAgICAgICBGb2xkaW5nIG1lYW5zIHpv b21pbmcgaW4gb24gb3V0bGluZXMuCgoqKiBPcmcgTW9kZQoKKyBPcmcgT3JnYW5pemVyOjogICAg ICAgTWFuYWdpbmcgVE9ETyBsaXN0cyBhbmQgYWdlbmRhcy4KKyBPcmcgQXV0aG9yaW5nOjogICAg ICAgRXhwb3J0aW5nIE9yZyBidWZmZXJzIHRvIHZhcmlvdXMgZm9ybWF0cy4KCioqIFRlWCBNb2Rl CgorIFRlWCBFZGl0aW5nOjogICAgICAgICBTcGVjaWFsIGNvbW1hbmRzIGZvciBlZGl0aW5nIGlu IFRlWCBtb2RlLgorIExhVGVYIEVkaXRpbmc6OiAgICAgICBBZGRpdGlvbmFsIGNvbW1hbmRzIGZv ciBMYVRlWCBpbnB1dCBmaWxlcy4KKyBUZVggUHJpbnQ6OiAgICAgICAgICAgQ29tbWFuZHMgZm9y IHByaW50aW5nIHBhcnQgb2YgYSBmaWxlIHdpdGggVGVYLgorIFRlWCBNaXNjOjogICAgICAgICAg ICBDdXN0b21pemF0aW9uIG9mIFRlWCBtb2RlLCBhbmQgcmVsYXRlZCBmZWF0dXJlcy4KCioqIEVu cmljaGVkIFRleHQKCisgRW5yaWNoZWQgTW9kZTo6ICAgICAgICAgICBFbnRlcmluZyBhbmQgZXhp dGluZyBFbnJpY2hlZCBtb2RlLgorIEhhcmQgYW5kIFNvZnQgTmV3bGluZXM6OiAgVGhlcmUgYXJl IHR3byBkaWZmZXJlbnQga2luZHMgb2YgbmV3bGluZXMuCisgRWRpdGluZyBGb3JtYXQgSW5mbzo6 ICAgICBIb3cgdG8gZWRpdCB0ZXh0IHByb3BlcnRpZXMuCisgRW5yaWNoZWQgRmFjZXM6OiAgICAg ICAgICBCb2xkLCBpdGFsaWMsIHVuZGVybGluZSwgZXRjLgorIEVucmljaGVkIEluZGVudGF0aW9u OjogICAgQ2hhbmdpbmcgdGhlIGxlZnQgYW5kIHJpZ2h0IG1hcmdpbnMuCisgRW5yaWNoZWQgSnVz dGlmaWNhdGlvbjo6ICBDZW50ZXJpbmcsIHNldHRpbmcgdGV4dCBmbHVzaCB3aXRoIHRoZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IG9yIHJpZ2h0IG1hcmdpbiwgZXRjLgorIEVu cmljaGVkIFByb3BlcnRpZXM6OiAgICAgVGhlIOKAnFNwZWNpYWwgdGV4dCBwcm9wZXJ0aWVz4oCd IHN1Ym1lbnUuCgoKKiogRWRpdGluZyBUZXh0LWJhc2VkIFRhYmxlcwoKKyBUYWJsZSBEZWZpbml0 aW9uOjogICAgV2hhdCBpcyBhIHRleHQgYmFzZWQgdGFibGUuCisgVGFibGUgQ3JlYXRpb246OiAg ICAgIEhvdyB0byBjcmVhdGUgYSB0YWJsZS4KKyBUYWJsZSBSZWNvZ25pdGlvbjo6ICAgSG93IHRv IGFjdGl2YXRlIGFuZCBkZWFjdGl2YXRlIHRhYmxlcy4KKyBDZWxsIENvbW1hbmRzOjogICAgICAg Q2VsbC1vcmllbnRlZCBjb21tYW5kcyBpbiBhIHRhYmxlLgorIENlbGwgSnVzdGlmaWNhdGlvbjo6 ICBKdXN0aWZ5aW5nIGNlbGwgY29udGVudHMuCisgVGFibGUgUm93cyBhbmQgQ29sdW1uczo6IElu c2VydGluZyBhbmQgZGVsZXRpbmcgcm93cyBhbmQgY29sdW1ucy4KKyBUYWJsZSBDb252ZXJzaW9u OjogICAgQ29udmVydGluZyBiZXR3ZWVuIHBsYWluIHRleHQgYW5kIHRhYmxlcy4KKyBUYWJsZSBN aXNjOjogICAgICAgICAgVGFibGUgbWlzY2VsbGFueS4KCioqIEVkaXRpbmcgUHJvZ3JhbXMKCisg UHJvZ3JhbSBNb2Rlczo6ICAgICAgIE1ham9yIG1vZGVzIGZvciBlZGl0aW5nIHByb2dyYW1zLgor IERlZnVuczo6ICAgICAgICAgICAgICBDb21tYW5kcyB0byBvcGVyYXRlIG9uIG1ham9yIHRvcC1s ZXZlbCBwYXJ0cwogICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGEgcHJvZ3JhbS4KKyBQcm9n cmFtIEluZGVudDo6ICAgICAgQWRqdXN0aW5nIGluZGVudGF0aW9uIHRvIHNob3cgdGhlIG5lc3Rp bmcuCisgUGFyZW50aGVzZXM6OiAgICAgICAgIENvbW1hbmRzIHRoYXQgb3BlcmF0ZSBvbiBwYXJl bnRoZXNlcy4KKyBDb21tZW50czo6ICAgICAgICAgICAgSW5zZXJ0aW5nLCBraWxsaW5nLCBhbmQg YWxpZ25pbmcgY29tbWVudHMuCisgRG9jdW1lbnRhdGlvbjo6ICAgICAgIEdldHRpbmcgZG9jdW1l bnRhdGlvbiBvZiBmdW5jdGlvbnMgeW91IHBsYW4gdG8gY2FsbC4KKyBIaWRlc2hvdzo6ICAgICAg ICAgICAgRGlzcGxheWluZyBibG9ja3Mgc2VsZWN0aXZlbHkuCisgU3ltYm9sIENvbXBsZXRpb246 OiAgIENvbXBsZXRpb24gb24gc3ltYm9sIG5hbWVzIG9mIHlvdXIgcHJvZ3JhbSBvciBsYW5ndWFn ZS4KKyBNaXhlZENhc2UgV29yZHM6OiAgICAgRGVhbGluZyB3aXRoIGlkZW50aWZpZXJzTGlrZVRo aXMuCisgU2VtYW50aWM6OiAgICAgICAgICAgIFN1aXRlIG9mIGVkaXRpbmcgdG9vbHMgYmFzZWQg b24gc291cmNlIGNvZGUgcGFyc2luZy4KKyBNaXNjIGZvciBQcm9ncmFtczo6ICAgT3RoZXIgRW1h Y3MgZmVhdHVyZXMgdXNlZnVsIGZvciBlZGl0aW5nIHByb2dyYW1zLgorIEMgTW9kZXM6OiAgICAg ICAgICAgICBTcGVjaWFsIGNvbW1hbmRzIG9mIEMsIEMrKywgT2JqZWN0aXZlLUMsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgSmF2YSwgSURMLCBQaWtlIGFuZCBBV0sgbW9kZXMuCisgQXNtIE1v ZGU6OiAgICAgICAgICAgIEFzbSBtb2RlIGFuZCBpdHMgc3BlY2lhbCBmZWF0dXJlcy4KKyBGb3J0 cmFuOjogICAgICAgICAgICAgRm9ydHJhbiBtb2RlIGFuZCBpdHMgc3BlY2lhbCBmZWF0dXJlcy4K CioqIFRvcC1MZXZlbCBEZWZpbml0aW9ucywgb3IgRGVmdW5zCgorIExlZnQgTWFyZ2luIFBhcmVu OjogICBBbiBvcGVuLXBhcmVuIG9yIHNpbWlsYXIgb3BlbmluZyBkZWxpbWl0ZXIKICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGFydHMgYSBkZWZ1biBpZiBpdCBpcyBhdCB0aGUgbGVmdCBtYXJn aW4uCisgTW92aW5nIGJ5IERlZnVuczo6ICAgIENvbW1hbmRzIHRvIG1vdmUgb3ZlciBvciBtYXJr IGEgbWFqb3IgZGVmaW5pdGlvbi4KKyBJbWVudTo6ICAgICAgICAgICAgICAgTWFraW5nIGJ1ZmZl ciBpbmRleGVzIGFzIG1lbnVzLgorIFdoaWNoIEZ1bmN0aW9uOjogICAgICBXaGljaCBGdW5jdGlv biBtb2RlIHNob3dzIHdoaWNoIGZ1bmN0aW9uIHlvdSBhcmUgaW4uCgoqKiBJbmRlbnRhdGlvbiBm b3IgUHJvZ3JhbXMKCisgQmFzaWMgSW5kZW50OjogICAgICAgIEluZGVudGluZyBhIHNpbmdsZSBs aW5lLgorIE11bHRpLWxpbmUgSW5kZW50OjogICBDb21tYW5kcyB0byByZWluZGVudCBtYW55IGxp bmVzIGF0IG9uY2UuCisgTGlzcCBJbmRlbnQ6OiAgICAgICAgIFNwZWNpZnlpbmcgaG93IGVhY2gg TGlzcCBmdW5jdGlvbiBzaG91bGQgYmUgaW5kZW50ZWQuCisgQyBJbmRlbnQ6OiAgICAgICAgICAg IEV4dHJhIGZlYXR1cmVzIGZvciBpbmRlbnRpbmcgQyBhbmQgcmVsYXRlZCBtb2Rlcy4KKyBDdXN0 b20gQyBJbmRlbnQ6OiAgICAgQ29udHJvbGxpbmcgaW5kZW50YXRpb24gc3R5bGUgZm9yIEMgYW5k IHJlbGF0ZWQgbW9kZXMuCgoqKiBDb21tYW5kcyBmb3IgRWRpdGluZyB3aXRoIFBhcmVudGhlc2Vz CgorIEV4cHJlc3Npb25zOjogICAgICAgICBFeHByZXNzaW9ucyB3aXRoIGJhbGFuY2VkIHBhcmVu dGhlc2VzLgorIE1vdmluZyBieSBQYXJlbnM6OiAgICBDb21tYW5kcyBmb3IgbW92aW5nIHVwLCBk b3duIGFuZCBhY3Jvc3MKICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3RydWN0dXJl IG9mIHBhcmVudGhlc2VzLgorIE1hdGNoaW5nOjogICAgICAgICAgICBJbnNlcnRpb24gb2YgYSBj bG9zZS1kZWxpbWl0ZXIgZmxhc2hlcyBtYXRjaGluZyBvcGVuLgoKKiogTWFuaXB1bGF0aW5nIENv bW1lbnRzCgorIENvbW1lbnQgQ29tbWFuZHM6OiAgICBJbnNlcnRpbmcsIGtpbGxpbmcsIGFuZCBh bGlnbmluZyBjb21tZW50cy4KKyBNdWx0aS1MaW5lIENvbW1lbnRzOjogQ29tbWFuZHMgZm9yIGFk ZGluZyBhbmQgZWRpdGluZyBtdWx0aS1saW5lIGNvbW1lbnRzLgorIE9wdGlvbnMgZm9yIENvbW1l bnRzOjpDdXN0b21pemluZyB0aGUgY29tbWVudCBmZWF0dXJlcy4KCioqIERvY3VtZW50YXRpb24g TG9va3VwCgorIEluZm8gTG9va3VwOjogICAgICAgIExvb2tpbmcgdXAgbGlicmFyeSBmdW5jdGlv bnMgYW5kIGNvbW1hbmRzIGluIEluZm8gZmlsZXMuCisgTWFuIFBhZ2U6OiAgICAgICAgICAgTG9v a2luZyB1cCBtYW4gcGFnZXMgb2YgbGlicmFyeSBmdW5jdGlvbnMgYW5kIGNvbW1hbmRzLgorIExp c3AgRG9jOjogICAgICAgICAgIExvb2tpbmcgdXAgRW1hY3MgTGlzcCBmdW5jdGlvbnMsIGV0Yy4K CioqIEMgYW5kIFJlbGF0ZWQgTW9kZXMKCisgTW90aW9uIGluIEM6OiAgICAgICAgIENvbW1hbmRz IHRvIG1vdmUgYnkgQyBzdGF0ZW1lbnRzLCBldGMuCisgRWxlY3RyaWMgQzo6ICAgICAgICAgIENv bG9uIGFuZCBvdGhlciBjaGFycyBjYW4gYXV0b21hdGljYWxseSByZWluZGVudC4KKyBIdW5ncnkg RGVsZXRlOjogICAgICAgQSBtb3JlIHBvd2VyZnVsIERFTCBjb21tYW5kLgorIE90aGVyIEMgQ29t bWFuZHM6OiAgICBGaWxsaW5nIGNvbW1lbnRzLCB2aWV3aW5nIGV4cGFuc2lvbiBvZiBtYWNyb3Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG90aGVyIG5lYXQgZmVhdHVyZXMuCgoqKiBG b3J0cmFuIE1vZGUKCisgRm9ydHJhbiBNb3Rpb246OiAgICAgIE1vdmluZyBwb2ludCBieSBzdGF0 ZW1lbnRzIG9yIHN1YnByb2dyYW1zLgorIEZvcnRyYW4gSW5kZW50OjogICAgICBJbmRlbnRhdGlv biBjb21tYW5kcyBmb3IgRm9ydHJhbi4KKyBGb3J0cmFuIENvbW1lbnRzOjogICAgSW5zZXJ0aW5n IGFuZCBhbGlnbmluZyBjb21tZW50cy4KKyBGb3J0cmFuIEF1dG9maWxsOjogICAgQXV0byBmaWxs IHN1cHBvcnQgZm9yIEZvcnRyYW4uCisgRm9ydHJhbiBDb2x1bW5zOjogICAgIE1lYXN1cmluZyBj b2x1bW5zIGZvciB2YWxpZCBGb3J0cmFuLgorIEZvcnRyYW4gQWJicmV2OjogICAgICBCdWlsdC1p biBhYmJyZXZzIGZvciBGb3J0cmFuIGtleXdvcmRzLgoKKiogRm9ydHJhbiBJbmRlbnRhdGlvbgoK KyBGb3JJbmRlbnQgQ29tbWFuZHM6OiAgQ29tbWFuZHMgZm9yIGluZGVudGluZyBhbmQgZmlsbGlu ZyBGb3J0cmFuLgorIEZvckluZGVudCBDb250OjogICAgICBIb3cgY29udGludWF0aW9uIGxpbmVz IGluZGVudC4KKyBGb3JJbmRlbnQgTnVtOjogICAgICAgSG93IGxpbmUgbnVtYmVycyBhdXRvLWlu ZGVudC4KKyBGb3JJbmRlbnQgQ29udjo6ICAgICAgQ29udmVudGlvbnMgeW91IG11c3Qgb2JleSB0 byBhdm9pZCB0cm91YmxlLgorIEZvckluZGVudCBWYXJzOjogICAgICBWYXJpYWJsZXMgY29udHJv bGxpbmcgRm9ydHJhbiBpbmRlbnQgc3R5bGUuCgoqKiBDb21waWxpbmcgYW5kIFRlc3RpbmcgUHJv Z3JhbXMKCisgQ29tcGlsYXRpb246OiAgICAgICAgIENvbXBpbGluZyBwcm9ncmFtcyBpbiBsYW5n dWFnZXMgb3RoZXIKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGFuIExpc3AgKEMsIFBhc2Nh bCwgZXRjLikuCisgQ29tcGlsYXRpb24gTW9kZTo6ICAgIFRoZSBtb2RlIGZvciB2aXNpdGluZyBj b21waWxlciBlcnJvcnMuCisgQ29tcGlsYXRpb24gU2hlbGw6OiAgIEN1c3RvbWl6aW5nIHlvdXIg c2hlbGwgcHJvcGVybHkKICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdXNlIGluIHRoZSBj b21waWxhdGlvbiBidWZmZXIuCisgR3JlcCBTZWFyY2hpbmc6OiAgICAgIFNlYXJjaGluZyB3aXRo IGdyZXAuCisgRmx5bWFrZTo6ICAgICAgICAgICAgIEZpbmRpbmcgc3ludGF4IGVycm9ycyBvbiB0 aGUgZmx5LgorIERlYnVnZ2Vyczo6ICAgICAgICAgICBSdW5uaW5nIHN5bWJvbGljIGRlYnVnZ2Vy cyBmb3Igbm9uLUxpc3AgcHJvZ3JhbXMuCisgRXhlY3V0aW5nIExpc3A6OiAgICAgIFZhcmlvdXMg bW9kZXMgZm9yIGVkaXRpbmcgTGlzcCBwcm9ncmFtcywKICAgICAgICAgICAgICAgICAgICAgICAg ICB3aXRoIGRpZmZlcmVudCBmYWNpbGl0aWVzIGZvciBydW5uaW5nCiAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhlIExpc3AgcHJvZ3JhbXMuCisgTGlzcCBMaWJyYXJpZXM6OiAgICAgIEhvdyBM aXNwIHByb2dyYW1zIGFyZSBsb2FkZWQgaW50byBFbWFjcy4KKyBMaXNwIEV2YWw6OiAgICAgICAg ICAgRXhlY3V0aW5nIGEgc2luZ2xlIExpc3AgZXhwcmVzc2lvbiBpbiBFbWFjcy4KKyBMaXNwIElu dGVyYWN0aW9uOjogICAgRXhlY3V0aW5nIExpc3AgaW4gYW4gRW1hY3MgYnVmZmVyLgorIEV4dGVy bmFsIExpc3A6OiAgICAgICBDb21tdW5pY2F0aW5nIHRocm91Z2ggRW1hY3Mgd2l0aCBhIHNlcGFy YXRlIExpc3AuCgoqKiBSdW5uaW5nIERlYnVnZ2VycyBVbmRlciBFbWFjcwoKKyBTdGFydGluZyBH VUQ6OiAgICAgICAgSG93IHRvIHN0YXJ0IGEgZGVidWdnZXIgc3VicHJvY2Vzcy4KKyBEZWJ1Z2dl ciBPcGVyYXRpb246OiAgQ29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBkZWJ1Z2dlciBhbmQgc291cmNl IGJ1ZmZlcnMuCisgQ29tbWFuZHMgb2YgR1VEOjogICAgIEtleSBiaW5kaW5ncyBmb3IgY29tbW9u IGNvbW1hbmRzLgorIEdVRCBDdXN0b21pemF0aW9uOjogICBEZWZpbmluZyB5b3VyIG93biBjb21t YW5kcyBmb3IgR1VELgorIEdEQiBHcmFwaGljYWwgSW50ZXJmYWNlOjogIEFuIGVuaGFuY2VkIG1v ZGUgdGhhdCB1c2VzIEdEQiBmZWF0dXJlcyB0bwogICAgICAgICAgICAgICAgICAgICAgICAgIGlt cGxlbWVudCBhIGdyYXBoaWNhbCBkZWJ1Z2dpbmcgZW52aXJvbm1lbnQuCgoqKiBHREIgR3JhcGhp Y2FsIEludGVyZmFjZQoKKyBHREIgVXNlciBJbnRlcmZhY2UgTGF5b3V0OjogICBDb250cm9sIHRo ZSBudW1iZXIgb2YgZGlzcGxheWVkIGJ1ZmZlcnMuCisgU291cmNlIEJ1ZmZlcnM6OiAgICAgICAg ICAgICAgVXNlIHRoZSBtb3VzZSBpbiB0aGUgZnJpbmdlL21hcmdpbiB0bwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgeW91ciBwcm9ncmFtLgorIEJyZWFrcG9pbnRzIEJ1 ZmZlcjo6ICAgICAgICAgIEEgYnJlYWtwb2ludCBjb250cm9sIHBhbmVsLgorIFRocmVhZHMgQnVm ZmVyOjogICAgICAgICAgICAgIERpc3BsYXlzIHlvdXIgdGhyZWFkcy4KKyBTdGFjayBCdWZmZXI6 OiAgICAgICAgICAgICAgICBTZWxlY3QgYSBmcmFtZSBmcm9tIHRoZSBjYWxsIHN0YWNrLgorIE90 aGVyIEdEQiBCdWZmZXJzOjogICAgICAgICAgIE90aGVyIGJ1ZmZlcnMgZm9yIGNvbnRyb2xsaW5n IHRoZSBHREIgc3RhdGUuCisgV2F0Y2ggRXhwcmVzc2lvbnM6OiAgICAgICAgICAgTW9uaXRvciB2 YXJpYWJsZSB2YWx1ZXMgaW4gdGhlIHNwZWVkYmFyLgorIE11bHRpdGhyZWFkZWQgRGVidWdnaW5n OjogICAgIERlYnVnZ2luZyBwcm9ncmFtcyB3aXRoIHNldmVyYWwgdGhyZWFkcy4KCioqIE1haW50 YWluaW5nIExhcmdlIFByb2dyYW1zCgorIFZlcnNpb24gQ29udHJvbDo6ICAgICBVc2luZyB2ZXJz aW9uIGNvbnRyb2wgc3lzdGVtcy4KKyBDaGFuZ2UgTG9nOjogICAgICAgICAgTWFpbnRhaW5pbmcg YSBjaGFuZ2UgaGlzdG9yeSBmb3IgeW91ciBwcm9ncmFtLgorIFhyZWY6OiAgICAgICAgICAgICAg ICBGaW5kIGRlZmluaXRpb25zIGFuZCByZWZlcmVuY2VzIG9mIGFueSBmdW5jdGlvbiwKICAgICAg ICAgICAgICAgICAgICAgICAgICBtZXRob2QsIHN0cnVjdCwgbWFjcm8sIOKApiBpbiB5b3VyIHBy b2dyYW0uCisgRURFOjogICAgICAgICAgICAgICAgIEFuIGludGVncmF0ZWQgZGV2ZWxvcG1lbnQg ZW52aXJvbm1lbnQgZm9yIEVtYWNzLgorIEVtZXJnZTo6ICAgICAgICAgICAgICBBIGNvbnZlbmll bnQgd2F5IG9mIG1lcmdpbmcgdHdvIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS4KCioqIFZlcnNpb24g Q29udHJvbAoKKyBJbnRyb2R1Y3Rpb24gdG8gVkM6OiAgSG93IHZlcnNpb24gY29udHJvbCB3b3Jr cyBpbiBnZW5lcmFsLgorIFZDIE1vZGUgTGluZTo6ICAgICAgICBIb3cgdGhlIG1vZGUgbGluZSBz aG93cyB2ZXJzaW9uIGNvbnRyb2wgc3RhdHVzLgorIEJhc2ljIFZDIEVkaXRpbmc6OiAgICBIb3cg dG8gZWRpdCBhIGZpbGUgdW5kZXIgdmVyc2lvbiBjb250cm9sLgorIExvZyBCdWZmZXI6OiAgICAg ICAgICBGZWF0dXJlcyBhdmFpbGFibGUgaW4gbG9nIGVudHJ5IGJ1ZmZlcnMuCisgUmVnaXN0ZXJp bmc6OiAgICAgICAgIFB1dHRpbmcgYSBmaWxlIHVuZGVyIHZlcnNpb24gY29udHJvbC4KKyBPbGQg UmV2aXNpb25zOjogICAgICAgRXhhbWluaW5nIGFuZCBjb21wYXJpbmcgb2xkIHZlcnNpb25zLgor IFZDIENoYW5nZSBMb2c6OiAgICAgICBWaWV3aW5nIHRoZSBWQyBDaGFuZ2UgTG9nLgorIFZDIFVu ZG86OiAgICAgICAgICAgICBDYW5jZWxpbmcgY2hhbmdlcyBiZWZvcmUgb3IgYWZ0ZXIgY29tbWl0 dGluZy4KKyBWQyBJZ25vcmU6OiAgICAgICAgICAgSWdub3JlIGZpbGVzIHVuZGVyIHZlcnNpb24g Y29udHJvbCBzeXN0ZW0uCisgVkMgRGlyZWN0b3J5IE1vZGU6OiAgIExpc3RpbmcgZmlsZXMgbWFu YWdlZCBieSB2ZXJzaW9uIGNvbnRyb2wuCisgQnJhbmNoZXM6OiAgICAgICAgICAgIE11bHRpcGxl IGxpbmVzIG9mIGRldmVsb3BtZW50LgorIE1pc2NlbGxhbmVvdXMgVkM6OiAgICBWYXJpb3VzIG90 aGVyIGNvbW1hbmRzIGFuZCBmZWF0dXJlcyBvZiBWQy4KKyBDdXN0b21pemluZyBWQzo6ICAgICAg VmFyaWFibGVzIHRoYXQgY2hhbmdlIFZD4oCZcyBiZWhhdmlvci4KCioqIEludHJvZHVjdGlvbiB0 byBWZXJzaW9uIENvbnRyb2wKCisgV2h5IFZlcnNpb24gQ29udHJvbD86OiAgICBVbmRlcnN0YW5k aW5nIHRoZSBwcm9ibGVtcyBpdCBhZGRyZXNzZXMuCisgVmVyc2lvbiBDb250cm9sIFN5c3RlbXM6 OiBTdXBwb3J0ZWQgdmVyc2lvbiBjb250cm9sIGJhY2stZW5kIHN5c3RlbXMuCisgVkNTIENvbmNl cHRzOjogICAgICAgICAgICBXb3JkcyBhbmQgY29uY2VwdHMgcmVsYXRlZCB0byB2ZXJzaW9uIGNv bnRyb2wuCisgVkNTIE1lcmdpbmc6OiAgICAgICAgICAgICBIb3cgZmlsZSBjb25mbGljdHMgYXJl IGhhbmRsZWQuCisgVkNTIENoYW5nZXNldHM6OiAgICAgICAgICBIb3cgY2hhbmdlcyBhcmUgZ3Jv dXBlZC4KKyBWQ1MgUmVwb3NpdG9yaWVzOjogICAgICAgIFdoZXJlIHZlcnNpb24gY29udHJvbCBy ZXBvc2l0b3JpZXMgYXJlIHN0b3JlZC4KKyBUeXBlcyBvZiBMb2cgRmlsZTo6ICAgICAgIFRoZSBW Q1MgbG9nIGluIGNvbnRyYXN0IHRvIHRoZSBDaGFuZ2VMb2cuCgoqKiBCYXNpYyBFZGl0aW5nIHVu ZGVyIFZlcnNpb24gQ29udHJvbAoKKyBWQyBXaXRoIEEgTWVyZ2luZyBWQ1M6OiAgV2l0aG91dCBs b2NraW5nOiBkZWZhdWx0IG1vZGUgZm9yIENWUy4KKyBWQyBXaXRoIEEgTG9ja2luZyBWQ1M6OiAg UkNTIGluIGl0cyBkZWZhdWx0IG1vZGUsIFNDQ1MsIGFuZCBvcHRpb25hbGx5IENWUy4KKyBBZHZh bmNlZCBDLXggdiB2OjogICAgICAgQWR2YW5jZWQgZmVhdHVyZXMgYXZhaWxhYmxlIHdpdGggYSBw cmVmaXggYXJndW1lbnQuCgoqKiBWQyBEaXJlY3RvcnkgTW9kZQoKKyBWQyBEaXJlY3RvcnkgQnVm ZmVyOjogICBXaGF0IHRoZSBidWZmZXIgbG9va3MgbGlrZSBhbmQgbWVhbnMuCisgVkMgRGlyZWN0 b3J5IENvbW1hbmRzOjogQ29tbWFuZHMgdG8gdXNlIGluIGEgVkMgZGlyZWN0b3J5IGJ1ZmZlci4K CioqIFZlcnNpb24gQ29udHJvbCBCcmFuY2hlcwoKKyBTd2l0Y2hpbmcgQnJhbmNoZXM6OiAgICBI b3cgdG8gZ2V0IHRvIGFub3RoZXIgZXhpc3RpbmcgYnJhbmNoLgorIFB1bGxpbmcgLyBQdXNoaW5n OjogICAgIFJlY2VpdmluZy9zZW5kaW5nIGNoYW5nZXMgZnJvbS90byBlbHNld2hlcmUuCisgTWVy Z2luZzo6ICAgICAgICAgICAgICAgVHJhbnNmZXJyaW5nIGNoYW5nZXMgYmV0d2VlbiBicmFuY2hl cy4KKyBDcmVhdGluZyBCcmFuY2hlczo6ICAgICBIb3cgdG8gc3RhcnQgYSBuZXcgYnJhbmNoLgoK KiogTWlzY2VsbGFuZW91cyBDb21tYW5kcyBhbmQgRmVhdHVyZXMgb2YgVkMKCisgQ2hhbmdlIExv Z3MgYW5kIFZDOjogICAgR2VuZXJhdGluZyBhIGNoYW5nZSBsb2cgZmlsZSBmcm9tIGxvZyBlbnRy aWVzLgorIFZDIERlbGV0ZS9SZW5hbWU6OiAgICAgIERlbGV0aW5nIGFuZCByZW5hbWluZyB2ZXJz aW9uLWNvbnRyb2xsZWQgZmlsZXMuCisgUmV2aXNpb24gVGFnczo6ICAgICAgICAgU3ltYm9saWMg bmFtZXMgZm9yIHJldmlzaW9ucy4KKyBWZXJzaW9uIEhlYWRlcnM6OiAgICAgICBJbnNlcnRpbmcg dmVyc2lvbiBjb250cm9sIGhlYWRlcnMgaW50byB3b3JraW5nIGZpbGVzLgoKKiogQ3VzdG9taXpp bmcgVkMKCisgR2VuZXJhbCBWQyBPcHRpb25zOjogICAgT3B0aW9ucyB0aGF0IGFwcGx5IHRvIG11 bHRpcGxlIGJhY2sgZW5kcy4KKyBSQ1MgYW5kIFNDQ1M6OiAgICAgICAgICBPcHRpb25zIGZvciBS Q1MgYW5kIFNDQ1MuCisgQ1ZTIE9wdGlvbnM6OiAgICAgICAgICAgT3B0aW9ucyBmb3IgQ1ZTLgoK KiogQ2hhbmdlIExvZ3MKCisgQ2hhbmdlIExvZyBDb21tYW5kczo6IENvbW1hbmRzIGZvciBlZGl0 aW5nIGNoYW5nZSBsb2cgZmlsZXMuCisgRm9ybWF0IG9mIENoYW5nZUxvZzo6IFdoYXQgdGhlIGNo YW5nZSBsb2cgZmlsZSBsb29rcyBsaWtlLgoKKiogWHJlZgoKKyBGaW5kIElkZW50aWZpZXJzOjog ICAgQ29tbWFuZHMgdG8gZmluZCB3aGVyZSBhbiBpZGVudGlmaWVyIGlzIGRlZmluZWQKICAgICAg ICAgICAgICAgICAgICAgICAgICBvciByZWZlcmVuY2VkLCB0byBsaXN0IGlkZW50aWZpZXJzLCBl dGMuCisgVGFncyBUYWJsZXM6OiAgICAgICAgIFRhZ3MgdGFibGUgcmVjb3JkcyB3aGljaCBmaWxl IGRlZmluZXMgYSBzeW1ib2wuCisgU2VsZWN0IFRhZ3MgVGFibGU6OiAgIEhvdyB0byB2aXNpdCBh IHNwZWNpZmljIHRhZ3MgdGFibGUuCgoqKiBGaW5kIElkZW50aWZpZXJzCgorIExvb2tpbmcgVXAg SWRlbnRpZmllcnM6OiBDb21tYW5kcyB0byBmaW5kIHRoZSBkZWZpbml0aW9uIG9mIGEgc3BlY2lm aWMgdGFnLgorIFhyZWYgQ29tbWFuZHM6OiAgICAgICAgICBDb21tYW5kcyBpbiB0aGUg4oCYKnhy ZWYq4oCZIGJ1ZmZlci4KKyBJZGVudGlmaWVyIFNlYXJjaDo6ICAgICAgU2VhcmNoaW5nIGFuZCBy ZXBsYWNpbmcgaWRlbnRpZmllcnMuCisgTGlzdCBJZGVudGlmaWVyczo6ICAgICAgIExpc3Rpbmcg aWRlbnRpZmllcnMgYW5kIGNvbXBsZXRpbmcgb24gdGhlbS4KCioqIFRhZ3MgVGFibGVzCgorIFRh ZyBTeW50YXg6OiAgICAgICAgICBUYWcgc3ludGF4IGZvciB2YXJpb3VzIHR5cGVzIG9mIGNvZGUg YW5kIHRleHQgZmlsZXMuCisgQ3JlYXRlIFRhZ3MgVGFibGU6OiAgIENyZWF0aW5nIGEgdGFncyB0 YWJsZSB3aXRoIOKAmGV0YWdz4oCZLgorIEV0YWdzIFJlZ2V4cHM6OiAgICAgICBDcmVhdGUgYXJi aXRyYXJ5IHRhZ3MgdXNpbmcgcmVndWxhciBleHByZXNzaW9ucy4KCioqIE1lcmdpbmcgRmlsZXMg d2l0aCBFbWVyZ2UKCisgT3ZlcnZpZXcgb2YgRW1lcmdlOjogIEhvdyB0byBzdGFydCBFbWVyZ2Uu ICBCYXNpYyBjb25jZXB0cy4KKyBTdWJtb2RlcyBvZiBFbWVyZ2U6OiAgRmFzdCBtb2RlIHZzLiBF ZGl0IG1vZGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBQcmVmZXJzIG1vZGUgYW5k IEF1dG8gQWR2YW5jZSBtb2RlLgorIFN0YXRlIG9mIERpZmZlcmVuY2U6OiBZb3UgZG8gdGhlIG1l cmdlIGJ5IHNwZWNpZnlpbmcgc3RhdGUgQSBvciBCCiAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGVhY2ggZGlmZmVyZW5jZS4KKyBNZXJnZSBDb21tYW5kczo6ICAgICAgQ29tbWFuZHMgZm9y IHNlbGVjdGluZyBhIGRpZmZlcmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdp bmcgc3RhdGVzIG9mIGRpZmZlcmVuY2VzLCBldGMuCisgRXhpdGluZyBFbWVyZ2U6OiAgICAgIFdo YXQgdG8gZG8gd2hlbiB5b3XigJl2ZSBmaW5pc2hlZCB0aGUgbWVyZ2UuCisgQ29tYmluaW5nIGlu IEVtZXJnZTo6ICAgICBIb3cgdG8ga2VlcCBib3RoIGFsdGVybmF0aXZlcyBmb3IgYSBkaWZmZXJl bmNlLgorIEZpbmUgUG9pbnRzIG9mIEVtZXJnZTo6ICAgTWlzY2VsbGFuZW91cyBpc3N1ZXMuCgoq KiBBYmJyZXZzCgorIEFiYnJldiBDb25jZXB0czo6ICAgICBGdW5kYW1lbnRhbHMgb2YgZGVmaW5l ZCBhYmJyZXZzLgorIERlZmluaW5nIEFiYnJldnM6OiAgICBEZWZpbmluZyBhbiBhYmJyZXYsIHNv IGl0IHdpbGwgZXhwYW5kIHdoZW4gdHlwZWQuCisgRXhwYW5kaW5nIEFiYnJldnM6OiAgIENvbnRy b2xsaW5nIGV4cGFuc2lvbjogcHJlZml4ZXMsIGNhbmNlbGluZyBleHBhbnNpb24uCisgRWRpdGlu ZyBBYmJyZXZzOjogICAgIFZpZXdpbmcgb3IgZWRpdGluZyB0aGUgZW50aXJlIGxpc3Qgb2YgZGVm aW5lZCBhYmJyZXZzLgorIFNhdmluZyBBYmJyZXZzOjogICAgICBTYXZpbmcgdGhlIGVudGlyZSBs aXN0IG9mIGFiYnJldnMgZm9yIGFub3RoZXIgc2Vzc2lvbi4KKyBEeW5hbWljIEFiYnJldnM6OiAg ICAgQWJicmV2aWF0aW9ucyBmb3Igd29yZHMgYWxyZWFkeSBpbiB0aGUgYnVmZmVyLgorIERhYmJy ZXYgQ3VzdG9taXphdGlvbjo6IFdoYXQgaXMgYSB3b3JkLCBmb3IgZHluYW1pYyBhYmJyZXZzLiAg Q2FzZSBoYW5kbGluZy4KCioqIEVkaXRpbmcgUGljdHVyZXMKCisgQmFzaWMgUGljdHVyZTo6ICAg ICAgICAgQmFzaWMgY29uY2VwdHMgYW5kIHNpbXBsZSBjb21tYW5kcyBvZiBQaWN0dXJlIE1vZGUu CisgSW5zZXJ0IGluIFBpY3R1cmU6OiAgICAgQ29udHJvbGxpbmcgZGlyZWN0aW9uIG9mIGN1cnNv ciBtb3Rpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyIHNlbGYtaW5zZXJ0aW5n IGNoYXJhY3RlcnMuCisgVGFicyBpbiBQaWN0dXJlOjogICAgICAgVmFyaW91cyBmZWF0dXJlcyBm b3IgdGFiIHN0b3BzIGFuZCBpbmRlbnRhdGlvbi4KKyBSZWN0YW5nbGVzIGluIFBpY3R1cmU6OiBD bGVhcmluZyBhbmQgc3VwZXJpbXBvc2luZyByZWN0YW5nbGVzLgoKKiogRGlyZWQsIHRoZSBEaXJl Y3RvcnkgRWRpdG9yCgorIERpcmVkIEVudGVyOjogICAgICAgICAgICAgIEhvdyB0byBpbnZva2Ug RGlyZWQuCisgRGlyZWQgTmF2aWdhdGlvbjo6ICAgICAgICAgU3BlY2lhbCBtb3Rpb24gY29tbWFu ZHMgaW4gdGhlIERpcmVkIGJ1ZmZlci4KKyBEaXJlZCBEZWxldGlvbjo6ICAgICAgICAgICBEZWxl dGluZyBmaWxlcyB3aXRoIERpcmVkLgorIEZsYWdnaW5nIE1hbnkgRmlsZXM6OiAgICAgIEZsYWdn aW5nIGZpbGVzIGJhc2VkIG9uIHRoZWlyIG5hbWVzLgorIERpcmVkIFZpc2l0aW5nOjogICAgICAg ICAgIE90aGVyIGZpbGUgb3BlcmF0aW9ucyB0aHJvdWdoIERpcmVkLgorIE1hcmtzIHZzIEZsYWdz OjogICAgICAgICAgIEZsYWdnaW5nIGZvciBkZWxldGlvbiB2cyBtYXJraW5nLgorIE9wZXJhdGlu ZyBvbiBGaWxlczo6ICAgICAgIEhvdyB0byBjb3B5LCByZW5hbWUsIHByaW50LCBjb21wcmVzcywg ZXRjLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIG9uZSBmaWxlIG9yIHNl dmVyYWwgZmlsZXMuCisgU2hlbGwgQ29tbWFuZHMgaW4gRGlyZWQ6OiAgUnVubmluZyBhIHNoZWxs IGNvbW1hbmQgb24gdGhlIG1hcmtlZCBmaWxlcy4KKyBUcmFuc2Zvcm1pbmcgRmlsZSBOYW1lczo6 ICBVc2luZyBwYXR0ZXJucyB0byByZW5hbWUgbXVsdGlwbGUgZmlsZXMuCisgQ29tcGFyaXNvbiBp biBEaXJlZDo6ICAgICAgUnVubmluZyDigJhkaWZm4oCZIGJ5IHdheSBvZiBEaXJlZC4KKyBTdWJk aXJlY3RvcmllcyBpbiBEaXJlZDo6ICBBZGRpbmcgc3ViZGlyZWN0b3JpZXMgdG8gdGhlIERpcmVk IGJ1ZmZlci4KKyBTdWJkaXIgU3dpdGNoZXM6OiAgICAgICAgICBTdWJkaXJlY3Rvcnkgc3dpdGNo ZXMgaW4gRGlyZWQuCisgU3ViZGlyZWN0b3J5IE1vdGlvbjo6ICAgICAgTW92aW5nIGFjcm9zcyBz dWJkaXJlY3RvcmllcywgYW5kIHVwIGFuZCBkb3duLgorIEhpZGluZyBTdWJkaXJlY3Rvcmllczo6 ICAgIE1ha2luZyBzdWJkaXJlY3RvcmllcyB2aXNpYmxlIG9yIGludmlzaWJsZS4KKyBEaXJlZCBV cGRhdGluZzo6ICAgICAgICAgICBEaXNjYXJkaW5nIGxpbmVzIGZvciBmaWxlcyBvZiBubyBpbnRl cmVzdC4KKyBEaXJlZCBhbmQgRmluZDo6ICAgICAgICAgICBVc2luZyDigJhmaW5k4oCZIHRvIGNo b29zZSB0aGUgZmlsZXMgZm9yIERpcmVkLgorIFdkaXJlZDo6ICAgICAgICAgICAgICAgICAgIE9w ZXJhdGluZyBvbiBmaWxlcyBieSBlZGl0aW5nIHRoZSBEaXJlZCBidWZmZXIuCisgSW1hZ2UtRGly ZWQ6OiAgICAgICAgICAgICAgVmlld2luZyBpbWFnZSB0aHVtYm5haWxzIGluIERpcmVkLgorIE1p c2MgRGlyZWQgRmVhdHVyZXM6OiAgICAgIFZhcmlvdXMgb3RoZXIgZmVhdHVyZXMuCgoqKiBUaGUg Q2FsZW5kYXIgYW5kIHRoZSBEaWFyeQoKKyBDYWxlbmRhciBNb3Rpb246OiAgICAgTW92aW5nIHRo cm91Z2ggdGhlIGNhbGVuZGFyOyBzZWxlY3RpbmcgYSBkYXRlLgorIFNjcm9sbCBDYWxlbmRhcjo6 ICAgICBCcmluZ2luZyBlYXJsaWVyIG9yIGxhdGVyIG1vbnRocyBvbnRvIHRoZSBzY3JlZW4uCisg Q291bnRpbmcgRGF5czo6ICAgICAgIEhvdyBtYW55IGRheXMgYXJlIHRoZXJlIGJldHdlZW4gdHdv IGRhdGVzPworIEdlbmVyYWwgQ2FsZW5kYXI6OiAgICBFeGl0aW5nIG9yIHJlY29tcHV0aW5nIHRo ZSBjYWxlbmRhci4KKyBXcml0aW5nIENhbGVuZGFyIEZpbGVzOjogV3JpdGluZyBjYWxlbmRhcnMg dG8gZmlsZXMgb2YgdmFyaW91cyBmb3JtYXRzLgorIEhvbGlkYXlzOjogICAgICAgICAgICBEaXNw bGF5aW5nIGRhdGVzIG9mIGhvbGlkYXlzLgorIFN1bnJpc2UvU3Vuc2V0OjogICAgICBEaXNwbGF5 aW5nIGxvY2FsIHRpbWVzIG9mIHN1bnJpc2UgYW5kIHN1bnNldC4KKyBMdW5hciBQaGFzZXM6OiAg ICAgICAgRGlzcGxheWluZyBwaGFzZXMgb2YgdGhlIG1vb24uCisgT3RoZXIgQ2FsZW5kYXJzOjog ICAgIENvbnZlcnRpbmcgZGF0ZXMgdG8gb3RoZXIgY2FsZW5kYXIgc3lzdGVtcy4KKyBEaWFyeTo6 ICAgICAgICAgICAgICAgRGlzcGxheWluZyBldmVudHMgZnJvbSB5b3VyIGRpYXJ5LgorIERheWxp Z2h0IFNhdmluZzo6ICAgICBIb3cgdG8gc3BlY2lmeSB3aGVuIGRheWxpZ2h0IHNhdmluZyB0aW1l IGlzIGFjdGl2ZS4KKyBUaW1lIEludGVydmFsczo6ICAgICAgS2VlcGluZyB0cmFjayBvZiB0aW1l IGludGVydmFscy4KKyBBZHZhbmNlZCBDYWxlbmRhci9EaWFyeSBVc2FnZTo6IEFkdmFuY2VkIENh bGVuZGFyL0RpYXJ5IGN1c3RvbWl6YXRpb24uCgoqKiBNb3ZlbWVudCBpbiB0aGUgQ2FsZW5kYXIK CisgQ2FsZW5kYXIgVW5pdCBNb3Rpb246OiAgICAgIE1vdmluZyBieSBkYXlzLCB3ZWVrcywgbW9u dGhzLCBhbmQgeWVhcnMuCisgTW92ZSB0byBCZWdpbm5pbmcgb3IgRW5kOjogIE1vdmluZyB0byBz dGFydC9lbmQgb2Ygd2Vla3MsIG1vbnRocywgYW5kIHllYXJzLgorIFNwZWNpZmllZCBEYXRlczo6 ICAgICAgICAgICBNb3ZpbmcgdG8gdGhlIGN1cnJlbnQgZGF0ZSBvciBhbm90aGVyCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWMgZGF0ZS4KCioqIENvbnZlcnNpb24gVG8g YW5kIEZyb20gT3RoZXIgQ2FsZW5kYXJzCgorIENhbGVuZGFyIFN5c3RlbXM6OiAgICAgICBUaGUg Y2FsZW5kYXJzIEVtYWNzIHVuZGVyc3RhbmRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGFzaWRlIGZyb20gR3JlZ29yaWFuKS4KKyBUbyBPdGhlciBDYWxlbmRhcjo6ICAgICAgQ29udmVy dGluZyB0aGUgc2VsZWN0ZWQgZGF0ZSB0byB2YXJpb3VzIGNhbGVuZGFycy4KKyBGcm9tIE90aGVy IENhbGVuZGFyOjogICAgTW92aW5nIHRvIGEgZGF0ZSBzcGVjaWZpZWQgaW4gYW5vdGhlciBjYWxl bmRhci4KCioqIFRoZSBEaWFyeQoKKyBGb3JtYXQgb2YgRGlhcnkgRmlsZTo6ICAgRW50ZXJpbmcg ZXZlbnRzIGluIHlvdXIgZGlhcnkuCisgRGlzcGxheWluZyB0aGUgRGlhcnk6OiAgIFZpZXdpbmcg ZGlhcnkgZW50cmllcyBhbmQgYXNzb2NpYXRlZCBjYWxlbmRhciBkYXRlcy4KKyBEYXRlIEZvcm1h dHM6OiAgICAgICAgICAgVmFyaW91cyB3YXlzIHlvdSBjYW4gc3BlY2lmeSBkYXRlcy4KKyBBZGRp bmcgdG8gRGlhcnk6OiAgICAgICAgQ29tbWFuZHMgdG8gY3JlYXRlIGRpYXJ5IGVudHJpZXMuCisg U3BlY2lhbCBEaWFyeSBFbnRyaWVzOjogIEFubml2ZXJzYXJpZXMsIGJsb2NrcyBvZiBkYXRlcywg Y3ljbGljIGVudHJpZXMsIGV0Yy4KKyBBcHBvaW50bWVudHM6OiAgICAgICAgICAgUmVtaW5kZXJz IHdoZW4gaXTigJlzIHRpbWUgdG8gZG8gc29tZXRoaW5nLgorIEltcG9ydGluZyBEaWFyeTo6ICAg ICAgICBDb252ZXJ0aW5nIGRpYXJ5IGV2ZW50cyB0by9mcm9tIG90aGVyIGZvcm1hdHMuCgoqKiBN b3JlIGFkdmFuY2VkIGZlYXR1cmVzIG9mIHRoZSBDYWxlbmRhciBhbmQgRGlhcnkKCisgQ2FsZW5k YXIgQ3VzdG9taXppbmc6OiAgIENhbGVuZGFyIGxheW91dCBhbmQgaG9va3MuCisgSG9saWRheSBD dXN0b21pemluZzo6ICAgIERlZmluaW5nIHlvdXIgb3duIGhvbGlkYXlzLgorIE1heWFuIENhbGVu ZGFyOjogICAgICAgICBNb3ZpbmcgdG8gYSBkYXRlIHNwZWNpZmllZCBpbiBhIE1heWFuIGNhbGVu ZGFyLgorIERhdGUgRGlzcGxheSBGb3JtYXQ6OiAgICBDaGFuZ2luZyB0aGUgZm9ybWF0LgorIFRp bWUgRGlzcGxheSBGb3JtYXQ6OiAgICBDaGFuZ2luZyB0aGUgZm9ybWF0LgorIERpYXJ5IEN1c3Rv bWl6aW5nOjogICAgICBEZWZhdWx0cyB5b3UgY2FuIHNldC4KKyBOb24tR3JlZ29yaWFuIERpYXJ5 OjogICAgRGlhcnkgZW50cmllcyBiYXNlZCBvbiBvdGhlciBjYWxlbmRhcnMuCisgRGlhcnkgRGlz cGxheTo6ICAgICAgICAgIEEgY2hvaWNlIG9mIHdheXMgdG8gZGlzcGxheSB0aGUgZGlhcnkuCisg RmFuY3kgRGlhcnkgRGlzcGxheTo6ICAgIFNvcnRpbmcgZGlhcnkgZW50cmllcywgdXNpbmcgaW5j bHVkZWQgZGlhcnkgZmlsZXMuCisgU2V4cCBEaWFyeSBFbnRyaWVzOjogICAgIE1vcmUgZmxleGli bGUgZGlhcnkgZW50cmllcy4KCioqIFNlbmRpbmcgTWFpbAoKKyBNYWlsIEZvcm1hdDo6ICAgICAg ICAgRm9ybWF0IG9mIGEgbWFpbCBtZXNzYWdlLgorIE1haWwgSGVhZGVyczo6ICAgICAgICBEZXRh aWxzIG9mIHNvbWUgc3RhbmRhcmQgbWFpbCBoZWFkZXIgZmllbGRzLgorIE1haWwgQWxpYXNlczo6 ICAgICAgICBBYmJyZXZpYXRpbmcgYW5kIGdyb3VwaW5nIG1haWwgYWRkcmVzc2VzLgorIE1haWwg Q29tbWFuZHM6OiAgICAgICBTcGVjaWFsIGNvbW1hbmRzIGZvciBlZGl0aW5nIG1haWwgYmVpbmcg Y29tcG9zZWQuCisgTWFpbCBTaWduYXR1cmU6OiAgICAgIEFkZGluZyBhIHNpZ25hdHVyZSB0byBl dmVyeSBtZXNzYWdlLgorIE1haWwgQW11c2VtZW50czo6ICAgICBEaXN0cmFjdGluZyB0aGUgTlNB OyBhZGRpbmcgZm9ydHVuZSBtZXNzYWdlcy4KKyBNYWlsIE1ldGhvZHM6OiAgICAgICAgVXNpbmcg YWx0ZXJuYXRpdmUgbWFpbC1jb21wb3NpdGlvbiBtZXRob2RzLgoKKiogTWFpbCBDb21tYW5kcwoK KyBNYWlsIFNlbmRpbmc6OiAgICAgICAgQ29tbWFuZHMgdG8gc2VuZCB0aGUgbWVzc2FnZS4KKyBI ZWFkZXIgRWRpdGluZzo6ICAgICAgQ29tbWFuZHMgdG8gbW92ZSB0byBoZWFkZXIgZmllbGRzIGFu ZCBlZGl0IHRoZW0uCisgQ2l0aW5nIE1haWw6OiAgICAgICAgIFF1b3RpbmcgYSBtZXNzYWdlIHlv dSBhcmUgcmVwbHlpbmcgdG8uCisgTWFpbCBNaXNjOjogICAgICAgICAgIEF0dGFjaG1lbnRzLCBz cGVsbCBjaGVja2luZywgZXRjLgoKKiogUmVhZGluZyBNYWlsIHdpdGggUm1haWwKCisgUm1haWwg QmFzaWNzOjogICAgICAgIEJhc2ljIGNvbmNlcHRzIG9mIFJtYWlsLCBhbmQgc2ltcGxlIHVzZS4K KyBSbWFpbCBTY3JvbGxpbmc6OiAgICAgU2Nyb2xsaW5nIHRocm91Z2ggYSBtZXNzYWdlLgorIFJt YWlsIE1vdGlvbjo6ICAgICAgICBNb3ZpbmcgdG8gYW5vdGhlciBtZXNzYWdlLgorIFJtYWlsIERl bGV0aW9uOjogICAgICBEZWxldGluZyBhbmQgZXhwdW5naW5nIG1lc3NhZ2VzLgorIFJtYWlsIElu Ym94OjogICAgICAgICBIb3cgbWFpbCBnZXRzIGludG8gdGhlIFJtYWlsIGZpbGUuCisgUm1haWwg RmlsZXM6OiAgICAgICAgIFVzaW5nIG11bHRpcGxlIFJtYWlsIGZpbGVzLgorIFJtYWlsIE91dHB1 dDo6ICAgICAgICBDb3B5aW5nIG1lc3NhZ2Ugb3V0IHRvIGZpbGVzLgorIFJtYWlsIExhYmVsczo6 ICAgICAgICBDbGFzc2lmeWluZyBtZXNzYWdlcyBieSBsYWJlbGluZyB0aGVtLgorIFJtYWlsIEF0 dHJpYnV0ZXM6OiAgICBDZXJ0YWluIHN0YW5kYXJkIGxhYmVscywgY2FsbGVkIGF0dHJpYnV0ZXMu CisgUm1haWwgUmVwbHk6OiAgICAgICAgIFNlbmRpbmcgcmVwbGllcyB0byBtZXNzYWdlcyB5b3Ug YXJlIHZpZXdpbmcuCisgUm1haWwgU3VtbWFyeTo6ICAgICAgIFN1bW1hcmllcyBzaG93IGJyaWVm IGluZm8gb24gbWFueSBtZXNzYWdlcy4KKyBSbWFpbCBTb3J0aW5nOjogICAgICAgU29ydGluZyBt ZXNzYWdlcyBpbiBSbWFpbC4KKyBSbWFpbCBEaXNwbGF5OjogICAgICAgSG93IFJtYWlsIGRpc3Bs YXlzIGEgbWVzc2FnZTsgY3VzdG9taXphdGlvbi4KKyBSbWFpbCBDb2Rpbmc6OiAgICAgICAgSG93 IFJtYWlsIGhhbmRsZXMgZGVjb2RpbmcgY2hhcmFjdGVyIHNldHMuCisgUm1haWwgRWRpdGluZzo6 ICAgICAgIEVkaXRpbmcgbWVzc2FnZSB0ZXh0IGFuZCBoZWFkZXJzIGluIFJtYWlsLgorIFJtYWls IERpZ2VzdDo6ICAgICAgICBFeHRyYWN0aW5nIHRoZSBtZXNzYWdlcyBmcm9tIGEgZGlnZXN0IG1l c3NhZ2UuCisgUm1haWwgUm90MTM6OiAgICAgICAgIFJlYWRpbmcgbWVzc2FnZXMgZW5jb2RlZCBp biB0aGUgcm90MTMgY29kZS4KKyBNb3ZlbWFpbDo6ICAgICAgICAgICAgTW9yZSBkZXRhaWxzIG9m IGZldGNoaW5nIG5ldyBtYWlsLgorIFJlbW90ZSBNYWlsYm94ZXM6OiAgICBSZXRyaWV2aW5nIG1h aWwgZnJvbSByZW1vdGUgbWFpbGJveGVzLgorIE90aGVyIE1haWxib3ggRm9ybWF0czo6IFJldHJp ZXZpbmcgbWFpbCBmcm9tIGxvY2FsIG1haWxib3hlcyBpbgogICAgICAgICAgICAgICAgICAgICAg ICAgIHZhcmlvdXMgZm9ybWF0cy4KCioqIFJtYWlsIFN1bW1hcmllcwoKKyBSbWFpbCBNYWtlIFN1 bW1hcnk6OiAgTWFraW5nIHZhcmlvdXMgc29ydHMgb2Ygc3VtbWFyaWVzLgorIFJtYWlsIFN1bW1h cnkgRWRpdDo6ICBNYW5pcHVsYXRpbmcgbWVzc2FnZXMgZnJvbSB0aGUgc3VtbWFyeS4KCioqIEdu dXMKCisgQnVmZmVycyBvZiBHbnVzOjogICAgIFRoZSBncm91cCwgc3VtbWFyeSwgYW5kIGFydGlj bGUgYnVmZmVycy4KKyBHbnVzIFN0YXJ0dXA6OiAgICAgICAgV2hhdCB5b3Ugc2hvdWxkIGtub3cg YWJvdXQgc3RhcnRpbmcgR251cy4KKyBHbnVzIEdyb3VwIEJ1ZmZlcjo6ICAgQSBzaG9ydCBkZXNj cmlwdGlvbiBvZiBHbnVzIGdyb3VwIGNvbW1hbmRzLgorIEdudXMgU3VtbWFyeSBCdWZmZXI6OiBB IHNob3J0IGRlc2NyaXB0aW9uIG9mIEdudXMgc3VtbWFyeSBjb21tYW5kcy4KCioqIERvY3VtZW50 IFZpZXdpbmcKCisgRG9jVmlldyBOYXZpZ2F0aW9uOjogIE5hdmlnYXRpbmcgRG9jVmlldyBidWZm ZXJzLgorIERvY1ZpZXcgU2VhcmNoaW5nOjogICBTZWFyY2hpbmcgaW5zaWRlIGRvY3VtZW50cy4K KyBEb2NWaWV3IFNsaWNpbmc6OiAgICAgU3BlY2lmeWluZyB3aGljaCBwYXJ0IG9mIGEgcGFnZSBp cyBkaXNwbGF5ZWQuCisgRG9jVmlldyBDb252ZXJzaW9uOjogIEluZmx1ZW5jaW5nIGFuZCB0cmln Z2VyaW5nIGNvbnZlcnNpb24uCgoqKiBSdW5uaW5nIFNoZWxsIENvbW1hbmRzIGZyb20gRW1hY3MK CisgU2luZ2xlIFNoZWxsOjogICAgICAgIEhvdyB0byBydW4gb25lIHNoZWxsIGNvbW1hbmQgYW5k IHJldHVybi4KKyBJbnRlcmFjdGl2ZSBTaGVsbDo6ICAgUGVybWFuZW50IHNoZWxsIHRha2luZyBp bnB1dCB2aWEgRW1hY3MuCisgU2hlbGwgTW9kZTo6ICAgICAgICAgIFNwZWNpYWwgRW1hY3MgY29t bWFuZHMgdXNlZCB3aXRoIHBlcm1hbmVudCBzaGVsbC4KKyBTaGVsbCBQcm9tcHRzOjogICAgICAg VHdvIHdheXMgdG8gcmVjb2duaXplIHNoZWxsIHByb21wdHMuCisgU2hlbGwgSGlzdG9yeTo6ICAg ICAgIFJlcGVhdGluZyBwcmV2aW91cyBjb21tYW5kcyBpbiBhIHNoZWxsIGJ1ZmZlci4KKyBEaXJl Y3RvcnkgVHJhY2tpbmc6OiAgS2VlcGluZyB0cmFjayB3aGVuIHRoZSBzdWJzaGVsbCBjaGFuZ2Vz IGRpcmVjdG9yeS4KKyBTaGVsbCBPcHRpb25zOjogICAgICAgT3B0aW9ucyBmb3IgY3VzdG9taXpp bmcgU2hlbGwgbW9kZS4KKyBUZXJtaW5hbCBlbXVsYXRvcjo6ICAgQW4gRW1hY3Mgd2luZG93IGFz IGEgdGVybWluYWwgZW11bGF0b3IuCisgVGVybSBNb2RlOjogICAgICAgICAgIFNwZWNpYWwgRW1h Y3MgY29tbWFuZHMgdXNlZCBpbiBUZXJtIG1vZGUuCisgUmVtb3RlIEhvc3Q6OiAgICAgICAgIENv bm5lY3RpbmcgdG8gYW5vdGhlciBjb21wdXRlci4KKyBTZXJpYWwgVGVybWluYWw6OiAgICAgQ29u bmVjdGluZyB0byBhIHNlcmlhbCBwb3J0LgoKKiogU2hlbGwgQ29tbWFuZCBIaXN0b3J5CgorIFNo ZWxsIFJpbmc6OiAgICAgICAgICAgRmV0Y2hpbmcgY29tbWFuZHMgZnJvbSB0aGUgaGlzdG9yeSBs aXN0LgorIFNoZWxsIEhpc3RvcnkgQ29weWluZzo6TW92aW5nIHRvIGEgY29tbWFuZCBhbmQgdGhl biBjb3B5aW5nIGl0LgorIEhpc3RvcnkgUmVmZXJlbmNlczo6ICAgRXhwYW5kaW5nIOKAmCHigJkt c3R5bGUgaGlzdG9yeSByZWZlcmVuY2VzLgoKKiogVXNpbmcgRW1hY3MgYXMgYSBTZXJ2ZXIKCisg VENQIEVtYWNzIHNlcnZlcjo6ICAgICBMaXN0ZW5pbmcgdG8gYSBUQ1Agc29ja2V0LgorIEludm9r aW5nIGVtYWNzY2xpZW50OjogQ29ubmVjdGluZyB0byB0aGUgRW1hY3Mgc2VydmVyLgorIGVtYWNz Y2xpZW50IE9wdGlvbnM6OiAgRW1hY3MgY2xpZW50IHN0YXJ0dXAgb3B0aW9ucy4KCioqIFByaW50 aW5nIEhhcmQgQ29waWVzCgorIFBvc3RTY3JpcHQ6OiAgICAgICAgICAgUHJpbnRpbmcgYnVmZmVy cyBvciByZWdpb25zIGFzIFBvc3RTY3JpcHQuCisgUG9zdFNjcmlwdCBWYXJpYWJsZXM6OiBDdXN0 b21pemluZyB0aGUgUG9zdFNjcmlwdCBwcmludGluZyBjb21tYW5kcy4KKyBQcmludGluZyBQYWNr YWdlOjogICAgIEFuIG9wdGlvbmFsIGFkdmFuY2VkIHByaW50aW5nIGludGVyZmFjZS4KCioqIEh5 cGVybGlua2luZyBhbmQgTmF2aWdhdGlvbiBGZWF0dXJlcwoKKyBFV1c6OiAgICAgICAgICAgICAg ICAgQSB3ZWIgYnJvd3NlciBpbiBFbWFjcy4KKyBFbWJlZGRlZCBXZWJLaXQgV2lkZ2V0czo6IEVt YmVkZGluZyBicm93c2VyIHdpZGdldHMgaW4gRW1hY3MgYnVmZmVycy4KKyBCcm93c2UtVVJMOjog ICAgICAgICAgRm9sbG93aW5nIFVSTHMuCisgR290byBBZGRyZXNzIG1vZGU6OiAgIEFjdGl2YXRp bmcgVVJMcy4KKyBGRkFQOjogICAgICAgICAgICAgICAgRmluZGluZyBmaWxlcyBldGMuIGF0IHBv aW50LgoKKiogRW1hY3MgTGlzcCBQYWNrYWdlcwoKKyBQYWNrYWdlIE1lbnU6OiAgICAgICAgIEJ1 ZmZlciBmb3Igdmlld2luZyBhbmQgbWFuYWdpbmcgcGFja2FnZXMuCisgUGFja2FnZSBJbnN0YWxs YXRpb246OiBPcHRpb25zIGZvciBwYWNrYWdlIGluc3RhbGxhdGlvbi4KKyBQYWNrYWdlIEZpbGVz OjogICAgICAgIFdoZXJlIHBhY2thZ2VzIGFyZSBpbnN0YWxsZWQuCgoqKiBDdXN0b21pemF0aW9u CgorIEVhc3kgQ3VzdG9taXphdGlvbjo6ICBDb252ZW5pZW50IHdheSB0byBicm93c2UgYW5kIGNo YW5nZSBzZXR0aW5ncy4KKyBWYXJpYWJsZXM6OiAgICAgICAgICAgTWFueSBFbWFjcyBjb21tYW5k cyBleGFtaW5lIEVtYWNzIHZhcmlhYmxlcwogICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGRl Y2lkZSB3aGF0IHRvIGRvOyBieSBzZXR0aW5nIHZhcmlhYmxlcywKICAgICAgICAgICAgICAgICAg ICAgICAgICB5b3UgY2FuIGNvbnRyb2wgdGhlaXIgZnVuY3Rpb25pbmcuCisgS2V5IEJpbmRpbmdz OjogICAgICAgIFRoZSBrZXltYXBzIHNheSB3aGF0IGNvbW1hbmQgZWFjaCBrZXkgcnVucy4KICAg ICAgICAgICAgICAgICAgICAgICAgICBCeSBjaGFuZ2luZyB0aGVtLCB5b3UgY2FuIHJlZGVmaW5l IGtleXMuCisgSW5pdCBGaWxlOjogICAgICAgICAgIEhvdyB0byB3cml0ZSBjb21tb24gY3VzdG9t aXphdGlvbnMgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24g ZmlsZS4KCioqIEVhc3kgQ3VzdG9taXphdGlvbiBJbnRlcmZhY2UKCisgQ3VzdG9taXphdGlvbiBH cm91cHM6OiAgICAgSG93IHNldHRpbmdzIGFyZSBjbGFzc2lmaWVkLgorIEJyb3dzaW5nIEN1c3Rv bTo6ICAgICAgICAgIEJyb3dzaW5nIGFuZCBzZWFyY2hpbmcgZm9yIHNldHRpbmdzLgorIENoYW5n aW5nIGEgVmFyaWFibGU6OiAgICAgIEhvdyB0byBlZGl0IGFuIG9wdGlvbuKAmXMgdmFsdWUgYW5k IHNldCB0aGUgb3B0aW9uLgorIFNhdmluZyBDdXN0b21pemF0aW9uczo6ICAgIFNhdmluZyBjdXN0 b21pemF0aW9ucyBmb3IgZnV0dXJlIEVtYWNzIHNlc3Npb25zLgorIEZhY2UgQ3VzdG9taXphdGlv bjo6ICAgICAgIEhvdyB0byBlZGl0IHRoZSBhdHRyaWJ1dGVzIG9mIGEgZmFjZS4KKyBTcGVjaWZp YyBDdXN0b21pemF0aW9uOjogICBDdXN0b21pemluZyBzcGVjaWZpYyBzZXR0aW5ncyBvciBncm91 cHMuCisgQ3VzdG9tIFRoZW1lczo6ICAgICAgICAgICAgQ29sbGVjdGlvbnMgb2YgY3VzdG9taXph dGlvbiBzZXR0aW5ncy4KKyBDcmVhdGluZyBDdXN0b20gVGhlbWVzOjogICBIb3cgdG8gY3JlYXRl IGEgbmV3IGN1c3RvbSB0aGVtZS4KCioqIFZhcmlhYmxlcwoKKyBFeGFtaW5pbmc6OiAgICAgICAg ICAgRXhhbWluaW5nIG9yIHNldHRpbmcgb25lIHZhcmlhYmxl4oCZcyB2YWx1ZS4KKyBIb29rczo6 ICAgICAgICAgICAgICAgSG9vayB2YXJpYWJsZXMgbGV0IHlvdSBzcGVjaWZ5IHByb2dyYW1zIGZv ciBwYXJ0cwogICAgICAgICAgICAgICAgICAgICAgICAgIG9mIEVtYWNzIHRvIHJ1biBvbiBwYXJ0 aWN1bGFyIG9jY2FzaW9ucy4KKyBMb2NhbHM6OiAgICAgICAgICAgICAgUGVyLWJ1ZmZlciB2YWx1 ZXMgb2YgdmFyaWFibGVzLgorIEZpbGUgVmFyaWFibGVzOjogICAgICBIb3cgZmlsZXMgY2FuIHNw ZWNpZnkgdmFyaWFibGUgdmFsdWVzLgorIERpcmVjdG9yeSBWYXJpYWJsZXM6OiBIb3cgdmFyaWFi bGUgdmFsdWVzIGNhbiBiZSBzcGVjaWZpZWQgYnkgZGlyZWN0b3J5LgoKKiogTG9jYWwgVmFyaWFi bGVzIGluIEZpbGVzCgorIFNwZWNpZnlpbmcgRmlsZSBWYXJpYWJsZXM6OiBTcGVjaWZ5aW5nIGZp bGUgbG9jYWwgdmFyaWFibGVzLgorIFNhZmUgRmlsZSBWYXJpYWJsZXM6OiAgICAgICBNYWtpbmcg c3VyZSBmaWxlIGxvY2FsIHZhcmlhYmxlcyBhcmUgc2FmZS4KCioqIEN1c3RvbWl6aW5nIEtleSBC aW5kaW5ncwoKKyBLZXltYXBzOjogICAgICAgICAgICAgR2VuZXJhbGl0aWVzLiAgVGhlIGdsb2Jh bCBrZXltYXAuCisgUHJlZml4IEtleW1hcHM6OiAgICAgIEtleW1hcHMgZm9yIHByZWZpeCBrZXlz LgorIExvY2FsIEtleW1hcHM6OiAgICAgICBNYWpvciBhbmQgbWlub3IgbW9kZXMgaGF2ZSB0aGVp ciBvd24ga2V5bWFwcy4KKyBNaW5pYnVmZmVyIE1hcHM6OiAgICAgVGhlIG1pbmlidWZmZXIgdXNl cyBpdHMgb3duIGxvY2FsIGtleW1hcHMuCisgUmViaW5kaW5nOjogICAgICAgICAgIEhvdyB0byBy ZWRlZmluZSBvbmUga2V54oCZcyBtZWFuaW5nIGNvbnZlbmllbnRseS4KKyBJbml0IFJlYmluZGlu Zzo6ICAgICAgUmViaW5kaW5nIGtleXMgd2l0aCB5b3VyIGluaXRpYWxpemF0aW9uIGZpbGUuCisg TW9kaWZpZXIgS2V5czo6ICAgICAgIFVzaW5nIG1vZGlmaWVyIGtleXMgaW4ga2V5IGJpbmRpbmdz LgorIEZ1bmN0aW9uIEtleXM6OiAgICAgICBSZWJpbmRpbmcgdGVybWluYWwgZnVuY3Rpb24ga2V5 cy4KKyBOYW1lZCBBU0NJSSBDaGFyczo6ICAgRGlzdGluZ3Vpc2hpbmcgPFRBQj4gZnJvbSDigJhD LWnigJksIGFuZCBzbyBvbi4KKyBNb3VzZSBCdXR0b25zOjogICAgICAgUmViaW5kaW5nIG1vdXNl IGJ1dHRvbnMgaW4gRW1hY3MuCisgRGlzYWJsaW5nOjogICAgICAgICAgIERpc2FibGluZyBhIGNv bW1hbmQgbWVhbnMgY29uZmlybWF0aW9uIGlzIHJlcXVpcmVkCiAgICAgICAgICAgICAgICAgICAg ICAgICAgYmVmb3JlIGl0IGNhbiBiZSBleGVjdXRlZC4gIFRoaXMgaXMgZG9uZSB0byBwcm90ZWN0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5uZXJzIGZyb20gc3VycHJpc2VzLgoKKiog VGhlIEVtYWNzIEluaXRpYWxpemF0aW9uIEZpbGUKCisgSW5pdCBTeW50YXg6OiAgICAgICAgIFN5 bnRheCBvZiBjb25zdGFudHMgaW4gRW1hY3MgTGlzcC4KKyBJbml0IEV4YW1wbGVzOjogICAgICAg SG93IHRvIGRvIHNvbWUgdGhpbmdzIHdpdGggYW4gaW5pdCBmaWxlLgorIFRlcm1pbmFsIEluaXQ6 OiAgICAgICBFYWNoIHRlcm1pbmFsIHR5cGUgY2FuIGhhdmUgYW4gaW5pdCBmaWxlLgorIEZpbmQg SW5pdDo6ICAgICAgICAgICBIb3cgRW1hY3MgZmluZHMgdGhlIGluaXQgZmlsZS4KKyBJbml0IE5v bi1BU0NJSTo6ICAgICAgVXNpbmcgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gYW4gaW5pdCBmaWxl LgoKKiogRGVhbGluZyB3aXRoIEVtYWNzIFRyb3VibGUKCisgREVMIERvZXMgTm90IERlbGV0ZTo6 IFdoYXQgdG8gZG8gaWYgPERFTD4gZG9lc27igJl0IGRlbGV0ZS4KKyBTdHVjayBSZWN1cnNpdmU6 OiAgICAg4oCZWy4uLl3igJkgaW4gbW9kZSBsaW5lIGFyb3VuZCB0aGUgcGFyZW50aGVzZXMuCisg U2NyZWVuIEdhcmJsZWQ6OiAgICAgIEdhcmJhZ2Ugb24gdGhlIHNjcmVlbi4KKyBUZXh0IEdhcmJs ZWQ6OiAgICAgICAgR2FyYmFnZSBpbiB0aGUgdGV4dC4KKyBNZW1vcnkgRnVsbDo6ICAgICAgICAg SG93IHRvIGNvcGUgd2hlbiB5b3UgcnVuIG91dCBvZiBtZW1vcnkuCisgQ3Jhc2hpbmc6OiAgICAg ICAgICAgIFdoYXQgRW1hY3MgZG9lcyB3aGVuIGl0IGNyYXNoZXMuCisgQWZ0ZXIgYSBDcmFzaDo6 ICAgICAgIFJlY292ZXJpbmcgZWRpdGluZyBpbiBhbiBFbWFjcyBzZXNzaW9uIHRoYXQgY3Jhc2hl ZC4KKyBFbWVyZ2VuY3kgRXNjYXBlOjogICAgV2hhdCB0byBkbyBpZiBFbWFjcyBzdG9wcyByZXNw b25kaW5nLgoKKiogUmVwb3J0aW5nIEJ1Z3MKCisgS25vd24gUHJvYmxlbXM6OiAgICAgIEhvdyB0 byByZWFkIGFib3V0IGtub3duIHByb2JsZW1zIGFuZCBidWdzLgorIEJ1ZyBDcml0ZXJpYTo6ICAg ICAgICBIYXZlIHlvdSByZWFsbHkgZm91bmQgYSBidWc/CisgVW5kZXJzdGFuZGluZyBCdWcgUmVw b3J0aW5nOjogSG93IHRvIHJlcG9ydCBhIGJ1ZyBlZmZlY3RpdmVseS4KKyBDaGVja2xpc3Q6OiAg ICAgICAgICAgU3RlcHMgdG8gZm9sbG93IGZvciBhIGdvb2QgYnVnIHJlcG9ydC4KKyBTZW5kaW5n IFBhdGNoZXM6OiAgICAgSG93IHRvIHNlbmQgYSBwYXRjaCBmb3IgR05VIEVtYWNzLgoKKiogQ29u dHJpYnV0aW5nIHRvIEVtYWNzIERldmVsb3BtZW50CgorIENvZGluZyBTdGFuZGFyZHM6OiAgICAg R05VIEVtYWNzIGNvZGluZyBzdGFuZGFyZHMuCisgQ29weXJpZ2h0IEFzc2lnbm1lbnQ6OiBBc3Np Z25pbmcgY29weXJpZ2h0IHRvIHRoZSBGU0YuCgoqKiBDb21tYW5kIExpbmUgQXJndW1lbnRzIGZv ciBFbWFjcyBJbnZvY2F0aW9uCgorIEFjdGlvbiBBcmd1bWVudHM6OiAgICBBcmd1bWVudHMgdG8g dmlzaXQgZmlsZXMsIGxvYWQgbGlicmFyaWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgIGFu ZCBjYWxsIGZ1bmN0aW9ucy4KKyBJbml0aWFsIE9wdGlvbnM6OiAgICAgQXJndW1lbnRzIHRoYXQg dGFrZSBlZmZlY3Qgd2hpbGUgc3RhcnRpbmcgRW1hY3MuCisgQ29tbWFuZCBFeGFtcGxlOjogICAg IEV4YW1wbGVzIG9mIHVzaW5nIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgRW52aXJvbm1lbnQ6 OiAgICAgICAgIEVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IEVtYWNzIHVzZXMuCisgRGlzcGxh eSBYOjogICAgICAgICAgIENoYW5naW5nIHRoZSBkZWZhdWx0IGRpc3BsYXkgYW5kIHVzaW5nIHJl bW90ZSBsb2dpbi4KKyBGb250IFg6OiAgICAgICAgICAgICAgQ2hvb3NpbmcgYSBmb250IGZvciB0 ZXh0LCB1bmRlciBYLgorIENvbG9ycyBYOjogICAgICAgICAgICBDaG9vc2luZyBkaXNwbGF5IGNv bG9ycy4KKyBXaW5kb3cgU2l6ZSBYOjogICAgICAgU3RhcnQtdXAgd2luZG93IHNpemUsIHVuZGVy IFguCisgQm9yZGVycyBYOjogICAgICAgICAgIEludGVybmFsIGFuZCBvdXRlciBib3JkZXJzLCB1 bmRlciBYLgorIFRpdGxlIFg6OiAgICAgICAgICAgICBTcGVjaWZ5aW5nIHRoZSBpbml0aWFsIGZy YW1l4oCZcyB0aXRsZS4KKyBJY29ucyBYOjogICAgICAgICAgICAgQ2hvb3Npbmcgd2hhdCBzb3J0 IG9mIGljb24gdG8gdXNlLCB1bmRlciBYLgorIE1pc2MgWDo6ICAgICAgICAgICAgICBPdGhlciBk aXNwbGF5IG9wdGlvbnMuCgoqKiBFbnZpcm9ubWVudCBWYXJpYWJsZXMKCisgR2VuZXJhbCBWYXJp YWJsZXM6OiAgIEVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFsbCB2ZXJzaW9ucyBvZiBFbWFj cyB1c2UuCisgTWlzYyBWYXJpYWJsZXM6OiAgICAgIENlcnRhaW4gc3lzdGVtLXNwZWNpZmljIHZh cmlhYmxlcy4KKyBNUy1XaW5kb3dzIFJlZ2lzdHJ5OjogQW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGVu dmlyb25tZW50IG9uIE1TLVdpbmRvd3MuCgoqKiBYIE9wdGlvbnMgYW5kIFJlc291cmNlcwoKKyBS ZXNvdXJjZXM6OiAgICAgICAgICAgVXNpbmcgWCByZXNvdXJjZXMgd2l0aCBFbWFjcyAoaW4gZ2Vu ZXJhbCkuCisgVGFibGUgb2YgUmVzb3VyY2VzOjogIFRhYmxlIG9mIHNwZWNpZmljIFggcmVzb3Vy Y2VzIHRoYXQgYWZmZWN0IEVtYWNzLgorIEx1Y2lkIFJlc291cmNlczo6ICAgICBYIHJlc291cmNl cyBmb3IgTHVjaWQgbWVudXMuCisgTW90aWYgUmVzb3VyY2VzOjogICAgIFggcmVzb3VyY2VzIGZv ciBNb3RpZiBhbmQgTGVzc1RpZiBtZW51cy4KKyBHVEsgcmVzb3VyY2VzOjogICAgICAgUmVzb3Vy Y2VzIGZvciBHVEsgd2lkZ2V0cy4KCioqIEdUSyByZXNvdXJjZXMKCisgR1RLIFJlc291cmNlIEJh c2ljczo6ICAgQmFzaWMgdXNhZ2Ugb2YgR1RLKyByZXNvdXJjZXMuCisgR1RLIFdpZGdldCBOYW1l czo6ICAgICAgSG93IEdUSysgd2lkZ2V0cyBhcmUgbmFtZWQuCisgR1RLIE5hbWVzIGluIEVtYWNz OjogICAgR1RLKyB3aWRnZXRzIHVzZWQgYnkgRW1hY3MuCisgR1RLIHN0eWxlczo6ICAgICAgICAg ICAgV2hhdCBjYW4gYmUgY3VzdG9taXplZCBpbiBhIEdUSysgd2lkZ2V0LgoKKiogRW1hY3MgYW5k IG1hY09TIC8gR05Vc3RlcAoKKyBNYWMgLyBHTlVzdGVwIEJhc2ljczo6ICAgICAgICBCYXNpYyBF bWFjcyB1c2FnZSB1bmRlciBHTlVzdGVwIG9yIG1hY09TLgorIE1hYyAvIEdOVXN0ZXAgQ3VzdG9t aXphdGlvbjo6IEN1c3RvbWl6YXRpb25zIHVuZGVyIEdOVXN0ZXAgb3IgbWFjT1MuCisgTWFjIC8g R05Vc3RlcCBFdmVudHM6OiAgICAgICAgSG93IHdpbmRvdyBzeXN0ZW0gZXZlbnRzIGFyZSBoYW5k bGVkLgorIEdOVXN0ZXAgU3VwcG9ydDo6ICAgICAgICAgICAgIERldGFpbHMgb24gc3RhdHVzIG9m IEdOVXN0ZXAgc3VwcG9ydC4KCioqIEVtYWNzIGFuZCBNaWNyb3NvZnQgV2luZG93cy9NUy1ET1MK CisgV2luZG93cyBTdGFydHVwOjogICAgIEhvdyB0byBzdGFydCBFbWFjcyBvbiBXaW5kb3dzLgor IFRleHQgYW5kIEJpbmFyeTo6ICAgICBUZXh0IGZpbGVzIHVzZSBDUkxGIHRvIHRlcm1pbmF0ZSBs aW5lcy4KKyBXaW5kb3dzIEZpbGVzOjogICAgICAgRmlsZS1uYW1lIGNvbnZlbnRpb25zIG9uIFdp bmRvd3MuCisgbHMgaW4gTGlzcDo6ICAgICAgICAgIEVtdWxhdGlvbiBvZiDigJhsc+KAmSBmb3Ig RGlyZWQuCisgV2luZG93cyBIT01FOjogICAgICAgIFdoZXJlIEVtYWNzIGxvb2tzIGZvciB5b3Vy IOKAmC5lbWFjc+KAmSBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBpdCBzdGFy dHMgdXAuCisgV2luZG93cyBLZXlib2FyZDo6ICAgIFdpbmRvd3Mtc3BlY2lmaWMga2V5Ym9hcmQg ZmVhdHVyZXMuCisgV2luZG93cyBNb3VzZTo6ICAgICAgIFdpbmRvd3Mtc3BlY2lmaWMgbW91c2Ug ZmVhdHVyZXMuCisgV2luZG93cyBQcm9jZXNzZXM6OiAgIFJ1bm5pbmcgc3VicHJvY2Vzc2VzIG9u IFdpbmRvd3MuCisgV2luZG93cyBQcmludGluZzo6ICAgIEhvdyB0byBzcGVjaWZ5IHRoZSBwcmlu dGVyIG9uIE1TLVdpbmRvd3MuCisgV2luZG93cyBGb250czo6ICAgICAgIFNwZWNpZnlpbmcgZm9u dHMgb24gTVMtV2luZG93cy4KKyBXaW5kb3dzIE1pc2M6OiAgICAgICAgTWlzY2VsbGFuZW91cyBX aW5kb3dzIGZlYXR1cmVzLgorIE1TLURPUzo6ICAgICAgICAgICAgICBVc2luZyBFbWFjcyBvbiBN Uy1ET1MuCgoqKiBFbWFjcyBhbmQgTVMtRE9TCgorIE1TLURPUyBLZXlib2FyZDo6ICAgICBLZXli b2FyZCBjb252ZW50aW9ucyBvbiBNUy1ET1MuCisgTVMtRE9TIE1vdXNlOjogICAgICAgIE1vdXNl IGNvbnZlbnRpb25zIG9uIE1TLURPUy4KKyBNUy1ET1MgRGlzcGxheTo6ICAgICAgRm9udHMsIGZy YW1lcyBhbmQgZGlzcGxheSBzaXplIG9uIE1TLURPUy4KKyBNUy1ET1MgRmlsZSBOYW1lczo6ICAg RmlsZSBuYW1lIGNvbnZlbnRpb25zIG9uIE1TLURPUy4KKyBNUy1ET1MgUHJpbnRpbmc6OiAgICAg UHJpbnRpbmcgc3BlY2lmaWNzIG9uIE1TLURPUy4KKyBNUy1ET1MgYW5kIE1VTEU6OiAgICAgU3Vw cG9ydCBmb3IgaW50ZXJuYXRpb25hbGl6YXRpb24gb24gTVMtRE9TLgorIE1TLURPUyBQcm9jZXNz ZXM6OiAgICBSdW5uaW5nIHN1YnByb2Nlc3NlcyBvbiBNUy1ET1MuCgoKCiogRGlzdHJpYnV0aW9u CgpHTlUgRW1hY3MgaXMgImZyZWUgc29mdHdhcmUiOyB0aGlzIG1lYW5zIHRoYXQgZXZlcnlvbmUg aXMgZnJlZSB0byB1c2UgaXQKYW5kIGZyZWUgdG8gcmVkaXN0cmlidXRlIGl0IHVuZGVyIGNlcnRh aW4gY29uZGl0aW9ucy4gIEdOVSBFbWFjcyBpcyBub3QKaW4gdGhlIHB1YmxpYyBkb21haW47IGl0 IGlzIGNvcHlyaWdodGVkIGFuZCB0aGVyZSBhcmUgcmVzdHJpY3Rpb25zIG9uCml0cyBkaXN0cmli dXRpb24sIGJ1dCB0aGVzZSByZXN0cmljdGlvbnMgYXJlIGRlc2lnbmVkIHRvIHBlcm1pdApldmVy eXRoaW5nIHRoYXQgYSBnb29kIGNvb3BlcmF0aW5nIGNpdGl6ZW4gd291bGQgd2FudCB0byBkby4g IFdoYXQgaXMKbm90IGFsbG93ZWQgaXMgdG8gdHJ5IHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZnVy dGhlciBzaGFyaW5nIGFueSB2ZXJzaW9uCm9mIEdOVSBFbWFjcyB0aGF0IHRoZXkgbWlnaHQgZ2V0 IGZyb20geW91LiAgVGhlIHByZWNpc2UgY29uZGl0aW9ucyBhcmUKZm91bmQgaW4gdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHRoYXQgY29tZXMgd2l0aCBFbWFjcyBhbmQgYWxzbwphcHBl YXJzIGluIHRoaXMgbWFudWFsKDEpLiAgKk5vdGUgQ29weWluZzo6LgoKICAgT25lIHdheSB0byBn ZXQgYSBjb3B5IG9mIEdOVSBFbWFjcyBpcyBmcm9tIHNvbWVvbmUgZWxzZSB3aG8gaGFzIGl0LgpZ b3UgbmVlZCBub3QgYXNrIGZvciBvdXIgcGVybWlzc2lvbiB0byBkbyBzbywgb3IgdGVsbCBhbnlv bmUgZWxzZTsganVzdApjb3B5IGl0LiAgSWYgeW91IGhhdmUgYWNjZXNzIHRvIHRoZSBJbnRlcm5l dCwgeW91IGNhbiBnZXQgdGhlIGxhdGVzdApkaXN0cmlidXRpb24gdmVyc2lvbiBvZiBHTlUgRW1h Y3MgYnkgYW5vbnltb3VzIEZUUDsgc2VlCjxodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzPiBvbiBvdXIgd2Vic2l0ZSBmb3IgbW9yZQppbmZvcm1hdGlvbi4KCiAgIFlvdSBtYXkgYWxz byByZWNlaXZlIEdOVSBFbWFjcyB3aGVuIHlvdSBidXkgYSBjb21wdXRlci4gIENvbXB1dGVyCm1h bnVmYWN0dXJlcnMgYXJlIGZyZWUgdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb24gdGhlIHNhbWUgdGVy bXMgdGhhdCBhcHBseQp0byBldmVyeW9uZSBlbHNlLiAgVGhlc2UgdGVybXMgcmVxdWlyZSB0aGVt IHRvIGdpdmUgeW91IHRoZSBmdWxsCnNvdXJjZXMsIGluY2x1ZGluZyB3aGF0ZXZlciBjaGFuZ2Vz IHRoZXkgbWF5IGhhdmUgbWFkZSwgYW5kIHRvIHBlcm1pdAp5b3UgdG8gcmVkaXN0cmlidXRlIHRo ZSBHTlUgRW1hY3MgcmVjZWl2ZWQgZnJvbSB0aGVtIHVuZGVyIHRoZSB1c3VhbAp0ZXJtcyBvZiB0 aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEluIG90aGVyIHdvcmRzLCB0aGUgcHJvZ3JhbSBt dXN0CmJlIGZyZWUgZm9yIHlvdSB3aGVuIHlvdSBnZXQgaXQsIG5vdCBqdXN0IGZyZWUgZm9yIHRo ZSBtYW51ZmFjdHVyZXIuCgogICBJZiB5b3UgZmluZCBHTlUgRW1hY3MgdXNlZnVsLCBwbGVhc2Ug KnNlbmQgYSBkb25hdGlvbiogdG8gdGhlIEZyZWUKU29mdHdhcmUgRm91bmRhdGlvbiB0byBzdXBw b3J0IG91ciB3b3JrLiAgRG9uYXRpb25zIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24g YXJlIHRheC1kZWR1Y3RpYmxlIGluIHRoZSBVUy4gIElmIHlvdSB1c2UgR05VIEVtYWNzIGF0IHlv dXIKd29ya3BsYWNlLCBwbGVhc2Ugc3VnZ2VzdCB0aGF0IHRoZSBjb21wYW55IG1ha2UgYSBkb25h dGlvbi4gIFRvIGRvbmF0ZSwKc2VlIDxodHRwczovL215LmZzZi5vcmcvZG9uYXRlLz4uICBGb3Ig b3RoZXIgd2F5cyBpbiB3aGljaCB5b3UgY2FuIGhlbHAsCnNlZSA8aHR0cHM6Ly93d3cuZ251Lm9y Zy9oZWxwL2hlbHAuaHRtbD4uCgogICBXZSBhbHNvIHNlbGwgaGFyZGNvcHkgdmVyc2lvbnMgb2Yg dGhpcyBtYW51YWwgYW5kIOKAmEFuIEludHJvZHVjdGlvbiB0bwpQcm9ncmFtbWluZyBpbiBFbWFj cyBMaXNw4oCZLCBieSBSb2JlcnQgSi4gQ2hhc3NlbGwuICBZb3UgY2FuIHZpc2l0IG91cgpvbmxp bmUgc3RvcmUgYXQgPGh0dHBzOi8vc2hvcC5mc2Yub3JnLz4uICBUaGUgaW5jb21lIGZyb20gc2Fs ZXMgZ29lcyB0bwpzdXBwb3J0IHRoZSBmb3VuZGF0aW9u4oCZcyBwdXJwb3NlOiB0aGUgZGV2ZWxv cG1lbnQgb2YgbmV3IGZyZWUgc29mdHdhcmUsCmFuZCBpbXByb3ZlbWVudHMgdG8gb3VyIGV4aXN0 aW5nIHByb2dyYW1zIGluY2x1ZGluZyBHTlUgRW1hY3MuCgogICBJZiB5b3UgbmVlZCB0byBjb250 YWN0IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHNlZQo8aHR0cHM6Ly93d3cuZnNmLm9y Zy9hYm91dC9jb250YWN0Lz4sIG9yIHdyaXRlIHRvCgogICAgIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbgogICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IKICAgICBCb3N0b24sIE1B IDAyMTEwLTEzMDEKICAgICBVU0EKCiAgIC0tLS0tLS0tLS0gRm9vdG5vdGVzIC0tLS0tLS0tLS0K CiAgICgxKSBUaGlzIG1hbnVhbCBpcyBpdHNlbGYgY292ZXJlZCBieSB0aGUgR05VIEZyZWUgRG9j dW1lbnRhdGlvbgpMaWNlbnNlLiAgVGhpcyBsaWNlbnNlIGlzIHNpbWlsYXIgaW4gc3Bpcml0IHRv IHRoZSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlLCBidXQgaXMgbW9yZSBzdWl0YWJsZSBmb3IgZG9j dW1lbnRhdGlvbi4gICpOb3RlIEdOVSBGcmVlCkRvY3VtZW50YXRpb24gTGljZW5zZTo6LgoKCiog SW50cm9kdWN0aW9uCgpZb3UgYXJlIHJlYWRpbmcgYWJvdXQgR05VIEVtYWNzLCB0aGUgR05VIGlu Y2FybmF0aW9uIG9mIHRoZSBhZHZhbmNlZCwKc2VsZi1kb2N1bWVudGluZywgY3VzdG9taXphYmxl LCBleHRlbnNpYmxlIGVkaXRvciBFbWFjcy4gIChUaGUg4oCYR+KAmSBpbgpHTlUgKEdOVeKAmXMg Tm90IFVuaXgpIGlzIG5vdCBzaWxlbnQuKQoKICAgV2UgY2FsbCBFbWFjcyAiYWR2YW5jZWQiIGJl Y2F1c2UgaXQgY2FuIGRvIG11Y2ggbW9yZSB0aGFuIHNpbXBsZQppbnNlcnRpb24gYW5kIGRlbGV0 aW9uIG9mIHRleHQuICBJdCBjYW4gY29udHJvbCBzdWJwcm9jZXNzZXMsIGluZGVudApwcm9ncmFt cyBhdXRvbWF0aWNhbGx5LCBzaG93IG11bHRpcGxlIGZpbGVzIGF0IG9uY2UsIGFuZCBtb3JlLiAg RW1hY3MKZWRpdGluZyBjb21tYW5kcyBvcGVyYXRlIGluIHRlcm1zIG9mIGNoYXJhY3RlcnMsIHdv cmRzLCBsaW5lcywKc2VudGVuY2VzLCBwYXJhZ3JhcGhzLCBhbmQgcGFnZXMsIGFzIHdlbGwgYXMg ZXhwcmVzc2lvbnMgYW5kIGNvbW1lbnRzIGluCnZhcmlvdXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Vz LgoKICAgIlNlbGYtZG9jdW1lbnRpbmciIG1lYW5zIHRoYXQgYXQgYW55IHRpbWUgeW91IGNhbiB1 c2Ugc3BlY2lhbApjb21tYW5kcywga25vd24gYXMgImhlbHAgY29tbWFuZHMiLCB0byBmaW5kIG91 dCB3aGF0IHlvdXIgb3B0aW9ucyBhcmUsCm9yIHRvIGZpbmQgb3V0IHdoYXQgYW55IGNvbW1hbmQg ZG9lcywgb3IgdG8gZmluZCBhbGwgdGhlIGNvbW1hbmRzIHRoYXQKcGVydGFpbiB0byBhIGdpdmVu IHRvcGljLiAgKk5vdGUgSGVscDo6LgoKICAgIkN1c3RvbWl6YWJsZSIgbWVhbnMgdGhhdCB5b3Ug Y2FuIGVhc2lseSBhbHRlciB0aGUgYmVoYXZpb3Igb2YgRW1hY3MKY29tbWFuZHMgaW4gc2ltcGxl IHdheXMuICBGb3IgaW5zdGFuY2UsIGlmIHlvdSB1c2UgYSBwcm9ncmFtbWluZwpsYW5ndWFnZSBp biB3aGljaCBjb21tZW50cyBzdGFydCB3aXRoIOKAmDwqKuKAmSBhbmQgZW5kIHdpdGgg4oCYKio+ 4oCZLCB5b3UgY2FuCnRlbGwgdGhlIEVtYWNzIGNvbW1lbnQgbWFuaXB1bGF0aW9uIGNvbW1hbmRz IHRvIHVzZSB0aG9zZSBzdHJpbmdzICgqbm90ZQpDb21tZW50czo6KS4gIFRvIHRha2UgYW5vdGhl ciBleGFtcGxlLCB5b3UgY2FuIHJlYmluZCB0aGUgYmFzaWMgY3Vyc29yCm1vdGlvbiBjb21tYW5k cyAodXAsIGRvd24sIGxlZnQgYW5kIHJpZ2h0KSB0byBhbnkga2V5cyBvbiB0aGUga2V5Ym9hcmQK dGhhdCB5b3UgZmluZCBjb21mb3J0YWJsZS4gICpOb3RlIEN1c3RvbWl6YXRpb246Oi4KCiAgICJF eHRlbnNpYmxlIiBtZWFucyB0aGF0IHlvdSBjYW4gZ28gYmV5b25kIHNpbXBsZSBjdXN0b21pemF0 aW9uIGFuZApjcmVhdGUgZW50aXJlbHkgbmV3IGNvbW1hbmRzLiAgTmV3IGNvbW1hbmRzIGFyZSBz aW1wbHkgcHJvZ3JhbXMgd3JpdHRlbgppbiB0aGUgTGlzcCBsYW5ndWFnZSwgd2hpY2ggYXJlIHJ1 biBieSBFbWFjc+KAmXMgb3duIExpc3AgaW50ZXJwcmV0ZXIuCkV4aXN0aW5nIGNvbW1hbmRzIGNh biBldmVuIGJlIHJlZGVmaW5lZCBpbiB0aGUgbWlkZGxlIG9mIGFuIGVkaXRpbmcKc2Vzc2lvbiwg d2l0aG91dCBoYXZpbmcgdG8gcmVzdGFydCBFbWFjcy4gIE1vc3Qgb2YgdGhlIGVkaXRpbmcgY29t bWFuZHMKaW4gRW1hY3MgYXJlIHdyaXR0ZW4gaW4gTGlzcDsgdGhlIGZldyBleGNlcHRpb25zIGNv dWxkIGhhdmUgYmVlbiB3cml0dGVuCmluIExpc3AgYnV0IHVzZSBDIGluc3RlYWQgZm9yIGVmZmlj aWVuY3kuICBXcml0aW5nIGFuIGV4dGVuc2lvbiBpcwpwcm9ncmFtbWluZywgYnV0IG5vbi1wcm9n cmFtbWVycyBjYW4gdXNlIGl0IGFmdGVyd2FyZHMuICAqTm90ZSBFbWFjcwpMaXNwIEludHJvOiAo ZWludHIpVG9wLCBpZiB5b3Ugd2FudCB0byBsZWFybiBFbWFjcyBMaXNwIHByb2dyYW1taW5nLgoK CiogMSBUaGUgT3JnYW5pemF0aW9uIG9mIHRoZSBTY3JlZW4KCk9uIGEgZ3JhcGhpY2FsIGRpc3Bs YXksIHN1Y2ggYXMgb24gR05VL0xpbnV4IHVzaW5nIHRoZSBYIFdpbmRvdyBTeXN0ZW0sCkVtYWNz IG9jY3VwaWVzIGEgZ3JhcGhpY2FsIHdpbmRvdy4gIE9uIGEgdGV4dCB0ZXJtaW5hbCwgRW1hY3Mg b2NjdXBpZXMKdGhlIGVudGlyZSB0ZXJtaW5hbCBzY3JlZW4uICBXZSB3aWxsIHVzZSB0aGUgdGVy bSAiZnJhbWUiIHRvIG1lYW4gYQpncmFwaGljYWwgd2luZG93IG9yIHRlcm1pbmFsIHNjcmVlbiBv Y2N1cGllZCBieSBFbWFjcy4gIEVtYWNzIGJlaGF2ZXMKdmVyeSBzaW1pbGFybHkgb24gYm90aCBr aW5kcyBvZiBmcmFtZXMuICBJdCBub3JtYWxseSBzdGFydHMgb3V0IHdpdGgKanVzdCBvbmUgZnJh bWUsIGJ1dCB5b3UgY2FuIGNyZWF0ZSBhZGRpdGlvbmFsIGZyYW1lcyBpZiB5b3Ugd2lzaCAoKm5v dGUKRnJhbWVzOjopLgoKICAgRWFjaCBmcmFtZSBjb25zaXN0cyBvZiBzZXZlcmFsIGRpc3RpbmN0 IHJlZ2lvbnMuICBBdCB0aGUgdG9wIG9mIHRoZQpmcmFtZSBpcyBhICJtZW51IGJhciIsIHdoaWNo IGFsbG93cyB5b3UgdG8gYWNjZXNzIGNvbW1hbmRzIHZpYSBhIHNlcmllcwpvZiBtZW51cy4gIE9u IGEgZ3JhcGhpY2FsIGRpc3BsYXksIGRpcmVjdGx5IGJlbG93IHRoZSBtZW51IGJhciBpcyBhCiJ0 b29sIGJhciIsIGEgcm93IG9mIGljb25zIHRoYXQgcGVyZm9ybSBlZGl0aW5nIGNvbW1hbmRzIHdo ZW4geW91IGNsaWNrCm9uIHRoZW0uICBBdCB0aGUgdmVyeSBib3R0b20gb2YgdGhlIGZyYW1lIGlz IGFuICJlY2hvIGFyZWEiLCB3aGVyZQppbmZvcm1hdGl2ZSBtZXNzYWdlcyBhcmUgZGlzcGxheWVk IGFuZCB3aGVyZSB5b3UgZW50ZXIgaW5mb3JtYXRpb24gd2hlbgpFbWFjcyBhc2tzIGZvciBpdC4K CiAgIFRoZSBtYWluIGFyZWEgb2YgdGhlIGZyYW1lLCBiZWxvdyB0aGUgdG9vbCBiYXIgKGlmIG9u ZSBleGlzdHMpIGFuZAphYm92ZSB0aGUgZWNobyBhcmVhLCBpcyBjYWxsZWQgInRoZSB3aW5kb3ci LiAgSGVuY2Vmb3J0aCBpbiB0aGlzIG1hbnVhbCwKd2Ugd2lsbCB1c2UgdGhlIHdvcmQg4oCcd2lu ZG934oCdIGluIHRoaXMgc2Vuc2UuICBHcmFwaGljYWwgZGlzcGxheSBzeXN0ZW1zCmNvbW1vbmx5 IHVzZSB0aGUgd29yZCDigJx3aW5kb3figJ0gd2l0aCBhIGRpZmZlcmVudCBtZWFuaW5nOyBidXQs IGFzIHN0YXRlZAphYm92ZSwgd2UgcmVmZXIgdG8gdGhvc2UgZ3JhcGhpY2FsIHdpbmRvd3MgYXMg 4oCcZnJhbWVz4oCdLgoKICAgQW4gRW1hY3Mgd2luZG93IGlzIHdoZXJlIHRoZSAiYnVmZmVyIuKA lHRoZSB0ZXh0IG9yIG90aGVyIGdyYXBoaWNzIHlvdQphcmUgZWRpdGluZyBvciB2aWV3aW5n4oCU aXMgZGlzcGxheWVkLiAgT24gYSBncmFwaGljYWwgZGlzcGxheSwgdGhlIHdpbmRvdwpwb3NzZXNz ZXMgYSAic2Nyb2xsIGJhciIgb24gb25lIHNpZGUsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNjcm9s bAp0aHJvdWdoIHRoZSBidWZmZXIuICBUaGUgbGFzdCBsaW5lIG9mIHRoZSB3aW5kb3cgaXMgYSAi bW9kZSBsaW5lIi4gIFRoaXMKZGlzcGxheXMgdmFyaW91cyBpbmZvcm1hdGlvbiBhYm91dCB3aGF0 IGlzIGdvaW5nIG9uIGluIHRoZSBidWZmZXIsIHN1Y2gKYXMgd2hldGhlciB0aGVyZSBhcmUgdW5z YXZlZCBjaGFuZ2VzLCB0aGUgZWRpdGluZyBtb2RlcyB0aGF0IGFyZSBpbiB1c2UsCnRoZSBjdXJy ZW50IGxpbmUgbnVtYmVyLCBhbmQgc28gZm9ydGguCgogICBXaGVuIHlvdSBzdGFydCBFbWFjcywg dGhlcmUgaXMgbm9ybWFsbHkgb25seSBvbmUgd2luZG93IGluIHRoZSBmcmFtZS4KSG93ZXZlciwg eW91IGNhbiBzdWJkaXZpZGUgdGhpcyB3aW5kb3cgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkg dG8KY3JlYXRlIG11bHRpcGxlIHdpbmRvd3MsIGVhY2ggb2Ygd2hpY2ggY2FuIGluZGVwZW5kZW50 bHkgZGlzcGxheSBhCmJ1ZmZlciAoKm5vdGUgV2luZG93czo6KS4KCiAgIEF0IGFueSB0aW1lLCBv bmUgd2luZG93IGlzIHRoZSAic2VsZWN0ZWQgd2luZG93Ii4gIE9uIGEgZ3JhcGhpY2FsCmRpc3Bs YXksIHRoZSBzZWxlY3RlZCB3aW5kb3cgc2hvd3MgYSBtb3JlIHByb21pbmVudCBjdXJzb3IgKHVz dWFsbHkKc29saWQgYW5kIGJsaW5raW5nKTsgb3RoZXIgd2luZG93cyBzaG93IGEgbGVzcyBwcm9t aW5lbnQgY3Vyc29yICh1c3VhbGx5CmEgaG9sbG93IGJveCkuICBPbiBhIHRleHQgdGVybWluYWws IHRoZXJlIGlzIG9ubHkgb25lIGN1cnNvciwgd2hpY2ggaXMKc2hvd24gaW4gdGhlIHNlbGVjdGVk IHdpbmRvdy4gIFRoZSBidWZmZXIgZGlzcGxheWVkIGluIHRoZSBzZWxlY3RlZAp3aW5kb3cgaXMg Y2FsbGVkIHRoZSAiY3VycmVudCBidWZmZXIiLCBhbmQgaXQgaXMgd2hlcmUgZWRpdGluZyBoYXBw ZW5zLgpNb3N0IEVtYWNzIGNvbW1hbmRzIGltcGxpY2l0bHkgYXBwbHkgdG8gdGhlIGN1cnJlbnQg YnVmZmVyOyB0aGUgdGV4dApkaXNwbGF5ZWQgaW4gdW5zZWxlY3RlZCB3aW5kb3dzIGlzIG1vc3Rs eSB2aXNpYmxlIGZvciByZWZlcmVuY2UuICBJZiB5b3UKdXNlIG11bHRpcGxlIGZyYW1lcyBvbiBh IGdyYXBoaWNhbCBkaXNwbGF5LCBzZWxlY3RpbmcgYSBwYXJ0aWN1bGFyIGZyYW1lCnNlbGVjdHMg YSB3aW5kb3cgaW4gdGhhdCBmcmFtZS4KCisgTWVudToKCiAgLSBQb2ludDo6ICAgICAgICAgICAg IFRoZSBwbGFjZSBpbiB0aGUgdGV4dCB3aGVyZSBlZGl0aW5nIGNvbW1hbmRzIG9wZXJhdGUuCiAg LSBFY2hvIEFyZWE6OiAgICAgICAgIFNob3J0IG1lc3NhZ2VzIGFwcGVhciBhdCB0aGUgYm90dG9t IG9mIHRoZSBzY3JlZW4uCiAgLSBNb2RlIExpbmU6OiAgICAgICAgIEludGVycHJldGluZyB0aGUg bW9kZSBsaW5lLgogIC0gTWVudSBCYXI6OiAgICAgICAgICBIb3cgdG8gdXNlIHRoZSBtZW51IGJh ci4KCgoqKiAxLjEgUG9pbnQKClRoZSBjdXJzb3IgaW4gdGhlIHNlbGVjdGVkIHdpbmRvdyBzaG93 cyB0aGUgbG9jYXRpb24gd2hlcmUgbW9zdCBlZGl0aW5nCmNvbW1hbmRzIHRha2UgZWZmZWN0LCB3 aGljaCBpcyBjYWxsZWQgInBvaW50IigxKS4gIE1hbnkgRW1hY3MgY29tbWFuZHMKbW92ZSBwb2lu dCB0byBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBidWZmZXI7IGZvciBleGFtcGxlLCB5b3UgY2Fu IHBsYWNlCnBvaW50IGJ5IGNsaWNraW5nIG1vdXNlIGJ1dHRvbiAxIChub3JtYWxseSB0aGUgbGVm dCBidXR0b24pIGF0IHRoZQpkZXNpcmVkIGxvY2F0aW9uLgoKICAgQnkgZGVmYXVsdCwgdGhlIGN1 cnNvciBpbiB0aGUgc2VsZWN0ZWQgd2luZG93IGlzIGRyYXduIGFzIGEgc29saWQKYmxvY2sgYW5k IGFwcGVhcnMgdG8gYmUgX29uXyBhIGNoYXJhY3RlciwgYnV0IHlvdSBzaG91bGQgdGhpbmsgb2Yg cG9pbnQKYXMgX2JldHdlZW5fIHR3byBjaGFyYWN0ZXJzOyBpdCBpcyBzaXR1YXRlZCBfYmVmb3Jl XyB0aGUgY2hhcmFjdGVyIHVuZGVyCnRoZSBjdXJzb3IuICBGb3IgZXhhbXBsZSwgaWYgeW91ciB0 ZXh0IGxvb2tzIGxpa2Ug4oCYZnJvYuKAmSB3aXRoIHRoZSBjdXJzb3IKb3ZlciB0aGUg4oCYYuKA mSwgdGhlbiBwb2ludCBpcyBiZXR3ZWVuIHRoZSDigJhv4oCZIGFuZCB0aGUg4oCYYuKAmS4gIElm IHlvdSBpbnNlcnQKdGhlIGNoYXJhY3RlciDigJgh4oCZIGF0IHRoYXQgcG9zaXRpb24sIHRoZSBy ZXN1bHQgaXMg4oCYZnJvIWLigJksIHdpdGggcG9pbnQKYmV0d2VlbiB0aGUg4oCYIeKAmSBhbmQg dGhlIOKAmGLigJkuICBUaHVzLCB0aGUgY3Vyc29yIHJlbWFpbnMgb3ZlciB0aGUg4oCYYuKAmSwg YXMKYmVmb3JlLgoKICAgSWYgeW91IGFyZSBlZGl0aW5nIHNldmVyYWwgZmlsZXMgaW4gRW1hY3Ms IGVhY2ggaW4gaXRzIG93biBidWZmZXIsCmVhY2ggYnVmZmVyIGhhcyBpdHMgb3duIHZhbHVlIG9m IHBvaW50LiAgQSBidWZmZXIgdGhhdCBpcyBub3QgY3VycmVudGx5CmRpc3BsYXllZCByZW1lbWJl cnMgaXRzIHZhbHVlIG9mIHBvaW50IGlmIHlvdSBsYXRlciBkaXNwbGF5IGl0IGFnYWluLgpGdXJ0 aGVybW9yZSwgaWYgYSBidWZmZXIgaXMgZGlzcGxheWVkIGluIG11bHRpcGxlIHdpbmRvd3MsIGVh Y2ggb2YgdGhvc2UKd2luZG93cyBoYXMgaXRzIG93biB2YWx1ZSBvZiBwb2ludC4KCiAgICpOb3Rl IEN1cnNvciBEaXNwbGF5OjosIGZvciBvcHRpb25zIHRoYXQgY29udHJvbCBob3cgRW1hY3MgZGlz cGxheXMKdGhlIGN1cnNvci4KCiAgIC0tLS0tLS0tLS0gRm9vdG5vdGVzIC0tLS0tLS0tLS0KCiAg ICgxKSBUaGUgdGVybSDigJxwb2ludOKAnSBjb21lcyBmcm9tIHRoZSBjaGFyYWN0ZXIg4oCYLuKA mSwgd2hpY2ggd2FzIHRoZQpjb21tYW5kIGluIFRFQ08gKHRoZSBsYW5ndWFnZSBpbiB3aGljaCB0 aGUgb3JpZ2luYWwgRW1hY3Mgd2FzIHdyaXR0ZW4pCmZvciBhY2Nlc3NpbmcgdGhlIGVkaXRpbmcg cG9zaXRpb24uCgoKKiogMS4yIFRoZSBFY2hvIEFyZWEKClRoZSBsaW5lIGF0IHRoZSB2ZXJ5IGJv dHRvbSBvZiB0aGUgZnJhbWUgaXMgdGhlICJlY2hvIGFyZWEiLiAgSXQgaXMgdXNlZAp0byBkaXNw bGF5IHNtYWxsIGFtb3VudHMgb2YgdGV4dCBmb3IgdmFyaW91cyBwdXJwb3Nlcy4KCiAgIFRoZSBl Y2hvIGFyZWEgaXMgc28tbmFtZWQgYmVjYXVzZSBvbmUgb2YgdGhlIHRoaW5ncyBpdCBpcyB1c2Vk IGZvciBpcwoiZWNob2luZyIsIHdoaWNoIG1lYW5zIGRpc3BsYXlpbmcgdGhlIGNoYXJhY3RlcnMg b2YgYSBtdWx0aS1jaGFyYWN0ZXIKY29tbWFuZCBhcyB5b3UgdHlwZS4gIFNpbmdsZS1jaGFyYWN0 ZXIgY29tbWFuZHMgYXJlIG5vdCBlY2hvZWQuCk11bHRpLWNoYXJhY3RlciBjb21tYW5kcyAoKm5v dGUgS2V5czo6KSBhcmUgZWNob2VkIGlmIHlvdSBwYXVzZSBmb3IgbW9yZQp0aGFuIGEgc2Vjb25k IGluIHRoZSBtaWRkbGUgb2YgYSBjb21tYW5kLiAgRW1hY3MgdGhlbiBlY2hvZXMgYWxsIHRoZQpj aGFyYWN0ZXJzIG9mIHRoZSBjb21tYW5kIHNvIGZhciwgdG8gcHJvbXB0IHlvdSBmb3IgdGhlIHJl c3QuICBPbmNlCmVjaG9pbmcgaGFzIHN0YXJ0ZWQsIHRoZSByZXN0IG9mIHRoZSBjb21tYW5kIGVj aG9lcyBpbW1lZGlhdGVseSBhcyB5b3UKdHlwZSBpdC4gIFRoaXMgYmVoYXZpb3IgaXMgZGVzaWdu ZWQgdG8gZ2l2ZSBjb25maWRlbnQgdXNlcnMgZmFzdApyZXNwb25zZSwgd2hpbGUgZ2l2aW5nIGhl c2l0YW50IHVzZXJzIG1heGltdW0gZmVlZGJhY2suCgogICBUaGUgZWNobyBhcmVhIGlzIGFsc28g dXNlZCB0byBkaXNwbGF5IGFuICJlcnJvciBtZXNzYWdlIiB3aGVuIGEKY29tbWFuZCBjYW5ub3Qg ZG8gaXRzIGpvYi4gIEVycm9yIG1lc3NhZ2VzIG1heSBiZSBhY2NvbXBhbmllZCBieSBiZWVwaW5n Cm9yIGJ5IGZsYXNoaW5nIHRoZSBzY3JlZW4uCgogICBTb21lIGNvbW1hbmRzIGRpc3BsYXkgaW5m b3JtYXRpdmUgbWVzc2FnZXMgaW4gdGhlIGVjaG8gYXJlYSB0byB0ZWxsCnlvdSB3aGF0IHRoZSBj b21tYW5kIGhhcyBkb25lLCBvciB0byBwcm92aWRlIHlvdSB3aXRoIHNvbWUgc3BlY2lmaWMKaW5m b3JtYXRpb24uICBUaGVzZSAiaW5mb3JtYXRpdmUiIG1lc3NhZ2VzLCB1bmxpa2UgZXJyb3IgbWVz c2FnZXMsIGFyZQpub3QgYWNjb21wYW5pZWQgd2l0aCBhIGJlZXAgb3IgZmxhc2guICBGb3IgZXhh bXBsZSwg4oCYQy14ID3igJkgKGhvbGQgZG93bgo8Q3RybD4gYW5kIHR5cGUg4oCYeOKAmSwgdGhl biBsZXQgZ28gb2YgPEN0cmw+IGFuZCB0eXBlIOKAmD3igJkpIGRpc3BsYXlzIGEKbWVzc2FnZSBk ZXNjcmliaW5nIHRoZSBjaGFyYWN0ZXIgYXQgcG9pbnQsIGl0cyBwb3NpdGlvbiBpbiB0aGUgYnVm ZmVyLAphbmQgaXRzIGN1cnJlbnQgY29sdW1uIGluIHRoZSB3aW5kb3cuICBDb21tYW5kcyB0aGF0 IHRha2UgYSBsb25nIHRpbWUKb2Z0ZW4gZGlzcGxheSBtZXNzYWdlcyBlbmRpbmcgaW4g4oCYLi4u 4oCZIHdoaWxlIHRoZXkgYXJlIHdvcmtpbmcgKHNvbWV0aW1lcwphbHNvIGluZGljYXRpbmcgaG93 IG11Y2ggcHJvZ3Jlc3MgaGFzIGJlZW4gbWFkZSwgYXMgYSBwZXJjZW50YWdlKSwgYW5kCmFkZCDi gJhkb25l4oCZIHdoZW4gdGhleSBhcmUgZmluaXNoZWQuCgogICBJbmZvcm1hdGl2ZSBlY2hvIGFy ZWEgbWVzc2FnZXMgYXJlIHNhdmVkIGluIGEgc3BlY2lhbCBidWZmZXIgbmFtZWQK4oCYKk1lc3Nh Z2VzKuKAmS4gIChXZSBoYXZlIG5vdCBleHBsYWluZWQgYnVmZmVycyB5ZXQ7IHNlZSAqbm90ZSBC dWZmZXJzOjosCmZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZW0uKSAgSWYgeW91IG1pc3Mg YSBtZXNzYWdlIHRoYXQgYXBwZWFyZWQKYnJpZWZseSBvbiB0aGUgc2NyZWVuLCB5b3UgY2FuIHN3 aXRjaCB0byB0aGUg4oCYKk1lc3NhZ2VzKuKAmSBidWZmZXIgdG8gc2VlCml0IGFnYWluLiAgVGhl IOKAmCpNZXNzYWdlcyrigJkgYnVmZmVyIGlzIGxpbWl0ZWQgdG8gYSBjZXJ0YWluIG51bWJlciBv ZgpsaW5lcywgc3BlY2lmaWVkIGJ5IHRoZSB2YXJpYWJsZSDigJhtZXNzYWdlLWxvZy1tYXjigJku ICAoV2UgaGF2ZSBub3QKZXhwbGFpbmVkIHZhcmlhYmxlcyBlaXRoZXI7IHNlZSAqbm90ZSBWYXJp YWJsZXM6OiwgZm9yIG1vcmUgaW5mb3JtYXRpb24KYWJvdXQgdGhlbS4pICBCZXlvbmQgdGhpcyBs aW1pdCwgb25lIGxpbmUgaXMgZGVsZXRlZCBmcm9tIHRoZSBiZWdpbm5pbmcKd2hlbmV2ZXIgYSBu ZXcgbWVzc2FnZSBsaW5lIGlzIGFkZGVkIGF0IHRoZSBlbmQuCgogICAqTm90ZSBEaXNwbGF5IEN1 c3RvbTo6LCBmb3Igb3B0aW9ucyB0aGF0IGNvbnRyb2wgaG93IEVtYWNzIHVzZXMgdGhlCmVjaG8g YXJlYS4KCiAgIFRoZSBlY2hvIGFyZWEgaXMgYWxzbyB1c2VkIHRvIGRpc3BsYXkgdGhlICJtaW5p YnVmZmVyIiwgYSBzcGVjaWFsCndpbmRvdyB3aGVyZSB5b3UgY2FuIGlucHV0IGFyZ3VtZW50cyB0 byBjb21tYW5kcywgc3VjaCBhcyB0aGUgbmFtZSBvZiBhCmZpbGUgdG8gYmUgZWRpdGVkLiAgV2hl biB0aGUgbWluaWJ1ZmZlciBpcyBpbiB1c2UsIHRoZSB0ZXh0IGRpc3BsYXllZCBpbgp0aGUgZWNo byBhcmVhIGJlZ2lucyB3aXRoIGEgInByb21wdCBzdHJpbmciLCBhbmQgdGhlIGFjdGl2ZSBjdXJz b3IKYXBwZWFycyB3aXRoaW4gdGhlIG1pbmlidWZmZXIsIHdoaWNoIGlzIHRlbXBvcmFyaWx5IGNv bnNpZGVyZWQgdGhlCnNlbGVjdGVkIHdpbmRvdy4gIFlvdSBjYW4gYWx3YXlzIGdldCBvdXQgb2Yg dGhlIG1pbmlidWZmZXIgYnkgdHlwaW5nCuKAmEMtZ+KAmS4gICpOb3RlIE1pbmlidWZmZXI6Oi4K CgoqKiAxLjMgVGhlIE1vZGUgTGluZQoKQXQgdGhlIGJvdHRvbSBvZiBlYWNoIHdpbmRvdyBpcyBh ICJtb2RlIGxpbmUiLCB3aGljaCBkZXNjcmliZXMgd2hhdCBpcwpnb2luZyBvbiBpbiB0aGUgY3Vy cmVudCBidWZmZXIuICBXaGVuIHRoZXJlIGlzIG9ubHkgb25lIHdpbmRvdywgdGhlIG1vZGUKbGlu ZSBhcHBlYXJzIHJpZ2h0IGFib3ZlIHRoZSBlY2hvIGFyZWE7IGl0IGlzIHRoZSBuZXh0LXRvLWxh c3QgbGluZSBpbgp0aGUgZnJhbWUuICBPbiBhIGdyYXBoaWNhbCBkaXNwbGF5LCB0aGUgbW9kZSBs aW5lIGlzIGRyYXduIHdpdGggYSAzRCBib3gKYXBwZWFyYW5jZS4gIEVtYWNzIGFsc28gdXN1YWxs eSBkcmF3cyB0aGUgbW9kZSBsaW5lIG9mIHRoZSBzZWxlY3RlZAp3aW5kb3cgd2l0aCBhIGRpZmZl cmVudCBjb2xvciB0aGFuIHRoYXQgb2YgdW5zZWxlY3RlZCB3aW5kb3dzLCBpbiBvcmRlcgp0byBt YWtlIGl0IHN0YW5kIG91dC4KCiAgIFRoZSB0ZXh0IGRpc3BsYXllZCBpbiB0aGUgbW9kZSBsaW5l IGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDoKCiAgICAgIENTOkNILUZSICBCVUYgICAgICBQT1Mg TElORSAgIChNQUpPUiBNSU5PUikKCk9uIGEgdGV4dCB0ZXJtaW5hbCwgdGhpcyB0ZXh0IGlzIGZv bGxvd2VkIGJ5IGEgc2VyaWVzIG9mIGRhc2hlcwpleHRlbmRpbmcgdG8gdGhlIHJpZ2h0IGVkZ2Ug b2YgdGhlIHdpbmRvdy4gIFRoZXNlIGRhc2hlcyBhcmUgb21pdHRlZCBvbgphIGdyYXBoaWNhbCBk aXNwbGF5LgoKICAgVGhlIENTIHN0cmluZyBhbmQgdGhlIGNvbG9uIGNoYXJhY3RlciBhZnRlciBp dCBkZXNjcmliZSB0aGUgY2hhcmFjdGVyCnNldCBhbmQgbmV3bGluZSBjb252ZW50aW9uIHVzZWQg Zm9yIHRoZSBjdXJyZW50IGJ1ZmZlci4gIE5vcm1hbGx5LCBFbWFjcwphdXRvbWF0aWNhbGx5IGhh bmRsZXMgdGhlc2Ugc2V0dGluZ3MgZm9yIHlvdSwgYnV0IGl0IGlzIHNvbWV0aW1lcyB1c2VmdWwK dG8gaGF2ZSB0aGlzIGluZm9ybWF0aW9uLgoKICAgQ1MgZGVzY3JpYmVzIHRoZSBjaGFyYWN0ZXIg c2V0IG9mIHRoZSB0ZXh0IGluIHRoZSBidWZmZXIgKCpub3RlCkNvZGluZyBTeXN0ZW1zOjopLiAg SWYgaXQgaXMgYSBkYXNoICjigJgt4oCZKSwgdGhhdCBpbmRpY2F0ZXMgbm8gc3BlY2lhbApjaGFy YWN0ZXIgc2V0IGhhbmRsaW5nICh3aXRoIHRoZSBwb3NzaWJsZSBleGNlcHRpb24gb2YgZW5kLW9m LWxpbmUKY29udmVudGlvbnMsIGRlc2NyaWJlZCBpbiB0aGUgbmV4dCBwYXJhZ3JhcGgpLiAg4oCY PeKAmSBtZWFucyBubyBjb252ZXJzaW9uCndoYXRzb2V2ZXIsIGFuZCBpcyB1c3VhbGx5IHVzZWQg Zm9yIGZpbGVzIGNvbnRhaW5pbmcgbm9uLXRleHR1YWwgZGF0YS4KT3RoZXIgY2hhcmFjdGVycyBy ZXByZXNlbnQgdmFyaW91cyAiY29kaW5nIHN5c3RlbXMi4oCUZm9yIGV4YW1wbGUsIOKAmDHigJkK cmVwcmVzZW50cyBJU08gTGF0aW4tMS4KCiAgIE9uIGEgdGV4dCB0ZXJtaW5hbCwgQ1MgaXMgcHJl Y2VkZWQgYnkgdHdvIGFkZGl0aW9uYWwgY2hhcmFjdGVycyB0aGF0CmRlc2NyaWJlIHRoZSBjb2Rp bmcgc3lzdGVtcyBmb3Iga2V5Ym9hcmQgaW5wdXQgYW5kIHRlcm1pbmFsIG91dHB1dC4KRnVydGhl cm1vcmUsIGlmIHlvdSBhcmUgdXNpbmcgYW4gaW5wdXQgbWV0aG9kLCBDUyBpcyBwcmVjZWRlZCBi eSBhCnN0cmluZyB0aGF0IGlkZW50aWZpZXMgdGhlIGlucHV0IG1ldGhvZCAoKm5vdGUgSW5wdXQg TWV0aG9kczo6KS4KCiAgIFRoZSBjaGFyYWN0ZXIgYWZ0ZXIgQ1MgaXMgdXN1YWxseSBhIGNvbG9u LiAgSWYgYSBkaWZmZXJlbnQgc3RyaW5nIGlzCmRpc3BsYXllZCwgdGhhdCBpbmRpY2F0ZXMgYSBu b250cml2aWFsIGVuZC1vZi1saW5lIGNvbnZlbnRpb24gZm9yCmVuY29kaW5nIGEgZmlsZS4gIFVz dWFsbHksIGxpbmVzIG9mIHRleHQgYXJlIHNlcGFyYXRlZCBieSAibmV3bGluZQpjaGFyYWN0ZXJz IiBpbiBhIGZpbGUsIGJ1dCB0d28gb3RoZXIgY29udmVudGlvbnMgYXJlIHNvbWV0aW1lcyB1c2Vk LgpUaGUgTVMtRE9TIGNvbnZlbnRpb24gdXNlcyBhIGNhcnJpYWdlIHJldHVybiBjaGFyYWN0ZXIg Zm9sbG93ZWQgYnkgYQpsaW5lZmVlZCBjaGFyYWN0ZXI7IHdoZW4gZWRpdGluZyBzdWNoIGZpbGVz LCB0aGUgY29sb24gY2hhbmdlcyB0byBlaXRoZXIKYSBiYWNrc2xhc2ggKOKAmFzigJkpIG9yIOKA mChET1Mp4oCZLCBkZXBlbmRpbmcgb24gdGhlIG9wZXJhdGluZyBzeXN0ZW0uCkFub3RoZXIgY29u dmVudGlvbiwgZW1wbG95ZWQgYnkgb2xkZXIgTWFjaW50b3NoIHN5c3RlbXMsIHVzZXMgYSBjYXJy aWFnZQpyZXR1cm4gY2hhcmFjdGVyIGluc3RlYWQgb2YgYSBuZXdsaW5lOyB3aGVuIGVkaXRpbmcg c3VjaCBmaWxlcywgdGhlCmNvbG9uIGNoYW5nZXMgdG8gZWl0aGVyIGEgZm9yd2FyZCBzbGFzaCAo 4oCYL+KAmSkgb3Ig4oCYKE1hYynigJkuICBPbiBzb21lCnN5c3RlbXMsIEVtYWNzIGRpc3BsYXlz IOKAmChVbml4KeKAmSBpbnN0ZWFkIG9mIHRoZSBjb2xvbiBmb3IgZmlsZXMgdGhhdCB1c2UKbmV3 bGluZSBhcyB0aGUgbGluZSBzZXBhcmF0b3IuCgogICBPbiBmcmFtZXMgY3JlYXRlZCBmb3Ig4oCY ZW1hY3NjbGllbnTigJkgKCpub3RlIEludm9raW5nIGVtYWNzY2xpZW50OjopLAp0aGUgbmV4dCBj aGFyYWN0ZXIgaXMg4oCYQOKAmS4gIFRoaXMgaW5kaWNhdGlvbiBpcyB0eXBpY2FsIGZvciBmcmFt ZXMgb2YgYW4KRW1hY3MgcHJvY2VzcyBydW5uaW5nIGFzIGEgZGFlbW9uICgqbm90ZSBFbWFjcyBT ZXJ2ZXI6OikuCgogICBUaGUgbmV4dCBlbGVtZW50IG9uIHRoZSBtb2RlIGxpbmUgaXMgdGhlIHN0 cmluZyBpbmRpY2F0ZWQgYnkgQ0guClRoaXMgc2hvd3MgdHdvIGRhc2hlcyAo4oCYLS3igJkpIGlm IHRoZSBidWZmZXIgZGlzcGxheWVkIGluIHRoZSB3aW5kb3cgaGFzCnRoZSBzYW1lIGNvbnRlbnRz IGFzIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUgb24gdGhlIGRpc2s7IGkuZS4sIGlmIHRoZQpidWZm ZXIgaXMgdW5tb2RpZmllZC4gIElmIHRoZSBidWZmZXIgaXMgbW9kaWZpZWQsIGl0IHNob3dzIHR3 byBzdGFycwoo4oCYKirigJkpLiAgRm9yIGEgcmVhZC1vbmx5IGJ1ZmZlciwgaXQgc2hvd3Mg4oCY JSrigJkgaWYgdGhlIGJ1ZmZlciBpcwptb2RpZmllZCwgYW5kIOKAmCUl4oCZIG90aGVyd2lzZS4K CiAgIFRoZSBjaGFyYWN0ZXIgYWZ0ZXIgQ0ggaXMgbm9ybWFsbHkgYSBkYXNoICjigJgt4oCZKS4g IEhvd2V2ZXIsIGlmCuKAmGRlZmF1bHQtZGlyZWN0b3J54oCZICgqbm90ZSBGaWxlIE5hbWVzOjop IGZvciB0aGUgY3VycmVudCBidWZmZXIgaXMgb24gYQpyZW1vdGUgbWFjaGluZSwg4oCYQOKAmSBp cyBkaXNwbGF5ZWQgaW5zdGVhZC4KCiAgIEZSIGdpdmVzIHRoZSBzZWxlY3RlZCBmcmFtZSBuYW1l ICgqbm90ZSBGcmFtZXM6OikuICBJdCBhcHBlYXJzIG9ubHkKb24gdGV4dCB0ZXJtaW5hbHMuICBU aGUgaW5pdGlhbCBmcmFtZeKAmXMgbmFtZSBpcyDigJhGMeKAmS4KCiAgIEJVRiBpcyB0aGUgbmFt ZSBvZiB0aGUgYnVmZmVyIGRpc3BsYXllZCBpbiB0aGUgd2luZG93LiAgVXN1YWxseSwgdGhpcwpp cyB0aGUgc2FtZSBhcyB0aGUgbmFtZSBvZiBhIGZpbGUgeW91IGFyZSBlZGl0aW5nLiAgKk5vdGUg QnVmZmVyczo6LgoKICAgUE9TIHRlbGxzIHlvdSB3aGV0aGVyIHRoZXJlIGlzIGFkZGl0aW9uYWwg dGV4dCBhYm92ZSB0aGUgdG9wIG9mIHRoZQp3aW5kb3csIG9yIGJlbG93IHRoZSBib3R0b20uICBJ ZiB5b3VyIGJ1ZmZlciBpcyBzbWFsbCBhbmQgYWxsIG9mIGl0IGlzCnZpc2libGUgaW4gdGhlIHdp bmRvdywgUE9TIGlzIOKAmEFsbOKAmS4gIE90aGVyd2lzZSwgaXQgaXMg4oCYVG9w4oCZIGlmIHlv dSBhcmUKbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIsIOKAmEJvdOKAmSBp ZiB5b3UgYXJlIGxvb2tpbmcgYXQgdGhlCmVuZCBvZiB0aGUgYnVmZmVyLCBvciDigJhOTiXigJks IHdoZXJlIE5OIGlzIHRoZSBwZXJjZW50YWdlIG9mIHRoZSBidWZmZXIKYWJvdmUgdGhlIHRvcCBv ZiB0aGUgd2luZG93LiAgV2l0aCBTaXplIEluZGljYXRpb24gbW9kZSwgeW91IGNhbiBkaXNwbGF5 CnRoZSBzaXplIG9mIHRoZSBidWZmZXIgYXMgd2VsbC4gICpOb3RlIE9wdGlvbmFsIE1vZGUgTGlu ZTo6LgoKICAgTElORSBpcyB0aGUgY2hhcmFjdGVyIOKAmEzigJkgZm9sbG93ZWQgYnkgdGhlIGxp bmUgbnVtYmVyIGF0IHBvaW50LiAgKFlvdQpjYW4gZGlzcGxheSB0aGUgY3VycmVudCBjb2x1bW4g bnVtYmVyIHRvbywgYnkgdHVybmluZyBvbiBDb2x1bW4gTnVtYmVyCm1vZGUuICAqTm90ZSBPcHRp b25hbCBNb2RlIExpbmU6Oi4pCgogICBNQUpPUiBpcyB0aGUgbmFtZSBvZiB0aGUgIm1ham9yIG1v ZGUiIHVzZWQgaW4gdGhlIGJ1ZmZlci4gIEEgbWFqb3IKbW9kZSBpcyBhIHByaW5jaXBhbCBlZGl0 aW5nIG1vZGUgZm9yIHRoZSBidWZmZXIsIHN1Y2ggYXMgVGV4dCBtb2RlLCBMaXNwCm1vZGUsIEMg bW9kZSwgYW5kIHNvIGZvcnRoLiAgKk5vdGUgTWFqb3IgTW9kZXM6Oi4gIFNvbWUgbWFqb3IgbW9k ZXMKZGlzcGxheSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFmdGVyIHRoZSBtYWpvciBtb2RlIG5h bWUuICBGb3IgZXhhbXBsZSwKQ29tcGlsYXRpb24gYnVmZmVycyBhbmQgU2hlbGwgYnVmZmVycyBk aXNwbGF5IHRoZSBzdGF0dXMgb2YgdGhlCnN1YnByb2Nlc3MuCgogICBNSU5PUiBpcyBhIGxpc3Qg b2Ygc29tZSBvZiB0aGUgZW5hYmxlZCAibWlub3IgbW9kZXMiLCB3aGljaCBhcmUKb3B0aW9uYWwg ZWRpdGluZyBtb2RlcyB0aGF0IHByb3ZpZGUgYWRkaXRpb25hbCBmZWF0dXJlcyBvbiB0b3Agb2Yg dGhlCm1ham9yIG1vZGUuICAqTm90ZSBNaW5vciBNb2Rlczo6LgoKICAgU29tZSBmZWF0dXJlcyBh cmUgbGlzdGVkIHRvZ2V0aGVyIHdpdGggdGhlIG1pbm9yIG1vZGVzIHdoZW5ldmVyIHRoZXkKYXJl IHR1cm5lZCBvbiwgZXZlbiB0aG91Z2ggdGhleSBhcmUgbm90IHJlYWxseSBtaW5vciBtb2Rlcy4g IOKAmE5hcnJvd+KAmQptZWFucyB0aGF0IHRoZSBidWZmZXIgYmVpbmcgZGlzcGxheWVkIGhhcyBl ZGl0aW5nIHJlc3RyaWN0ZWQgdG8gb25seSBhCnBvcnRpb24gb2YgaXRzIHRleHQgKCpub3RlIE5h cnJvd2luZzo6KS4gIOKAmERlZuKAmSBtZWFucyB0aGF0IGEga2V5Ym9hcmQKbWFjcm8gaXMgY3Vy cmVudGx5IGJlaW5nIGRlZmluZWQgKCpub3RlIEtleWJvYXJkIE1hY3Jvczo6KS4KCiAgIEluIGFk ZGl0aW9uLCBpZiBFbWFjcyBpcyBpbnNpZGUgYSByZWN1cnNpdmUgZWRpdGluZyBsZXZlbCwgc3F1 YXJlCmJyYWNrZXRzICjigJhb4oCmXeKAmSkgYXBwZWFyIGFyb3VuZCB0aGUgcGFyZW50aGVzZXMg dGhhdCBzdXJyb3VuZCB0aGUgbW9kZXMuCklmIEVtYWNzIGlzIGluIG9uZSByZWN1cnNpdmUgZWRp dGluZyBsZXZlbCB3aXRoaW4gYW5vdGhlciwgZG91YmxlIHNxdWFyZQpicmFja2V0cyBhcHBlYXIs IGFuZCBzbyBvbi4gIFNpbmNlIHJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVscyBhZmZlY3QgRW1hY3MK Z2xvYmFsbHksIHN1Y2ggc3F1YXJlIGJyYWNrZXRzIGFwcGVhciBpbiB0aGUgbW9kZSBsaW5lIG9m IGV2ZXJ5IHdpbmRvdy4KKk5vdGUgUmVjdXJzaXZlIEVkaXQ6Oi4KCiAgIFlvdSBjYW4gY2hhbmdl IHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBtb2RlIGxpbmUgYXMgd2VsbCBhcyB0aGUgZm9ybWF0Cm9m IGl0cyBjb250ZW50cy4gICpOb3RlIE9wdGlvbmFsIE1vZGUgTGluZTo6LiAgSW4gYWRkaXRpb24s IHRoZSBtb2RlCmxpbmUgaXMgbW91c2Utc2Vuc2l0aXZlOyBjbGlja2luZyBvbiBkaWZmZXJlbnQg cGFydHMgb2YgdGhlIG1vZGUgbGluZQpwZXJmb3JtcyB2YXJpb3VzIGNvbW1hbmRzLiAgKk5vdGUg TW9kZSBMaW5lIE1vdXNlOjouICBBbHNvLCBob3ZlcmluZyB0aGUKbW91c2UgcG9pbnRlciBhYm92 ZSBtb3VzZS1zZW5zaXRpdmUgcG9ydGlvbnMgb2YgdGhlIG1vZGUgbGluZSBzaG93cwp0b29sdGlw cyAoKm5vdGUgVG9vbHRpcHM6Oikgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5kcyB5b3Ug Y2FuCmludm9rZSBieSBjbGlja2luZyBvbiB0aGUgbW9kZSBsaW5lLgoKCioqIDEuNCBUaGUgTWVu dSBCYXIKCkVhY2ggRW1hY3MgZnJhbWUgbm9ybWFsbHkgaGFzIGEgIm1lbnUgYmFyIiBhdCB0aGUg dG9wIHdoaWNoIHlvdSBjYW4gdXNlCnRvIHBlcmZvcm0gY29tbW9uIG9wZXJhdGlvbnMuICBUaGVy ZeKAmXMgbm8gbmVlZCB0byBsaXN0IHRoZW0gaGVyZSwgYXMgeW91CmNhbiBtb3JlIGVhc2lseSBz ZWUgdGhlbSB5b3Vyc2VsZi4KCiAgIE9uIGEgZGlzcGxheSB0aGF0IHN1cHBvcnRzIGEgbW91c2Us IHlvdSBjYW4gdXNlIHRoZSBtb3VzZSB0byBjaG9vc2UgYQpjb21tYW5kIGZyb20gdGhlIG1lbnUg YmFyLiAgQW4gYXJyb3cgb24gdGhlIHJpZ2h0IGVkZ2Ugb2YgYSBtZW51IGl0ZW0KbWVhbnMgaXQg bGVhZHMgdG8gYSBzdWJzaWRpYXJ5IG1lbnUsIG9yICJzdWJtZW51Ii4gIEEg4oCYLi4u4oCZIGF0 IHRoZSBlbmQKb2YgYSBtZW51IGl0ZW0gbWVhbnMgdGhhdCB0aGUgY29tbWFuZCB3aWxsIHByb21w dCB5b3UgZm9yIGZ1cnRoZXIgaW5wdXQKYmVmb3JlIGl0IGFjdHVhbGx5IGRvZXMgYW55dGhpbmcu CgogICBTb21lIG9mIHRoZSBjb21tYW5kcyBpbiB0aGUgbWVudSBiYXIgaGF2ZSBvcmRpbmFyeSBr ZXkgYmluZGluZ3MgYXMKd2VsbDsgaWYgc28sIGEga2V5IGJpbmRpbmcgaXMgc2hvd24gYWZ0ZXIg dGhlIGl0ZW0gaXRzZWxmLiAgVG8gdmlldyB0aGUKZnVsbCBjb21tYW5kIG5hbWUgYW5kIGRvY3Vt ZW50YXRpb24gZm9yIGEgbWVudSBpdGVtLCB0eXBlIOKAmEMtaCBr4oCZLCBhbmQKdGhlbiBzZWxl Y3QgdGhlIG1lbnUgYmFyIHdpdGggdGhlIG1vdXNlIGluIHRoZSB1c3VhbCB3YXkgKCpub3RlIEtl eQpIZWxwOjopLgoKICAgSW5zdGVhZCBvZiB1c2luZyB0aGUgbW91c2UsIHlvdSBjYW4gYWxzbyBp bnZva2UgdGhlIGZpcnN0IG1lbnUgYmFyCml0ZW0gYnkgcHJlc3NpbmcgPEYxMD4gKHRvIHJ1biB0 aGUgY29tbWFuZCDigJhtZW51LWJhci1vcGVu4oCZKS4gIFlvdSBjYW4KdGhlbiBuYXZpZ2F0ZSB0 aGUgbWVudXMgd2l0aCB0aGUgYXJyb3cga2V5cyBvciB3aXRoIOKAmEMtYuKAmSwg4oCYQy1m4oCZ CihsZWZ0L3JpZ2h0KSwg4oCYQy1w4oCZLCBhbmQg4oCYQy1u4oCZICh1cC9kb3duKS4gIFRvIGFj dGl2YXRlIGEgc2VsZWN0ZWQgbWVudQppdGVtLCBwcmVzcyA8UkVUPjsgdG8gY2FuY2VsIG1lbnUg bmF2aWdhdGlvbiwgcHJlc3Mg4oCYQy1n4oCZIG9yIOKAmDxFU0M+CjxFU0M+IDxFU0M+4oCZLiAg KEhvd2V2ZXIsIG5vdGUgdGhhdCB3aGVuIEVtYWNzIHdhcyBidWlsdCB3aXRoIGEgR1VJCnRvb2xr aXQsIHRoZSBtZW51cyBhcmUgZHJhd24gYW5kIGNvbnRyb2xsZWQgYnkgdGhlIHRvb2xraXQsIGFu ZCB0aGUga2V5CnNlcXVlbmNlcyB0byBjYW5jZWwgbWVudSBuYXZpZ2F0aW9uIG1pZ2h0IGJlIGRp ZmZlcmVudCBmcm9tIHRoZSBhYm92ZQpkZXNjcmlwdGlvbi4pCgogICBPbiBhIHRleHQgdGVybWlu YWwsIHlvdSBjYW4gb3B0aW9uYWxseSBhY2Nlc3MgdGhlIG1lbnUtYmFyIG1lbnVzIGluCnRoZSBl Y2hvIGFyZWEuICBUbyB0aGlzIGVuZCwgY3VzdG9taXplIHRoZSB2YXJpYWJsZQrigJh0dHktbWVu dS1vcGVuLXVzZS10bW3igJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLiAgVGhlbiB0eXBpbmcg PEYxMD4gd2lsbApydW4gdGhlIGNvbW1hbmQg4oCYdG1tLW1lbnViYXLigJkgaW5zdGVhZCBvZiBk cm9wcGluZyBkb3duIHRoZSBtZW51LiAgKFlvdQpjYW4gYWxzbyB0eXBlIOKAmE0tYOKAmSwgd2hp Y2ggYWx3YXlzIGludm9rZXMg4oCYdG1tLW1lbnViYXLigJkuKSAg4oCYdG1tLW1lbnViYXLigJkK bGV0cyB5b3Ugc2VsZWN0IGEgbWVudSBpdGVtIHdpdGggdGhlIGtleWJvYXJkLiAgQSBwcm92aXNp b25hbCBjaG9pY2UKYXBwZWFycyBpbiB0aGUgZWNobyBhcmVhLiAgWW91IGNhbiB1c2UgdGhlIHVw IGFuZCBkb3duIGFycm93IGtleXMgdG8KbW92ZSB0aHJvdWdoIHRoZSBtZW51IHRvIGRpZmZlcmVu dCBpdGVtcywgYW5kIHRoZW4geW91IGNhbiB0eXBlIDxSRVQ+IHRvCnNlbGVjdCB0aGUgaXRlbS4g IEVhY2ggbWVudSBpdGVtIGlzIGFsc28gZGVzaWduYXRlZCBieSBhIGxldHRlciBvciBkaWdpdAoo dXN1YWxseSB0aGUgaW5pdGlhbCBvZiBzb21lIHdvcmQgaW4gdGhlIGl0ZW3igJlzIG5hbWUpLiAg VGhpcyBsZXR0ZXIgb3IKZGlnaXQgaXMgc2VwYXJhdGVkIGZyb20gdGhlIGl0ZW0gbmFtZSBieSDi gJg9PT7igJkuICBZb3UgY2FuIHR5cGUgdGhlIGl0ZW3igJlzCmxldHRlciBvciBkaWdpdCB0byBz ZWxlY3QgdGhlIGl0ZW0uCgoKKiAyIEtpbmRzIG9mIFVzZXIgSW5wdXQKCkdOVSBFbWFjcyBpcyBw cmltYXJpbHkgZGVzaWduZWQgZm9yIHVzZSB3aXRoIHRoZSBrZXlib2FyZC4gIFdoaWxlIGl0IGlz CnBvc3NpYmxlIHRvIHVzZSB0aGUgbW91c2UgdG8gaXNzdWUgZWRpdGluZyBjb21tYW5kcyB0aHJv dWdoIHRoZSBtZW51IGJhcgphbmQgdG9vbCBiYXIsIHRoYXQgaXMgbm90IGFzIGVmZmljaWVudCBh cyB1c2luZyB0aGUga2V5Ym9hcmQuClRoZXJlZm9yZSwgdGhpcyBtYW51YWwgbWFpbmx5IGRvY3Vt ZW50cyBob3cgdG8gZWRpdCB3aXRoIHRoZSBrZXlib2FyZC4KCiAgIEtleWJvYXJkIGlucHV0IGlu dG8gRW1hY3MgaXMgYmFzZWQgb24gYSBoZWF2aWx5LWV4dGVuZGVkIHZlcnNpb24gb2YKQVNDSUku ICBTaW1wbGUgY2hhcmFjdGVycywgbGlrZSDigJhh4oCZLCDigJhC4oCZLCDigJgz4oCZLCDigJg9 4oCZLCBhbmQgdGhlIHNwYWNlCmNoYXJhY3RlciAoZGVub3RlZCBhcyA8U1BDPiksIGFyZSBlbnRl cmVkIGJ5IHR5cGluZyB0aGUgY29ycmVzcG9uZGluZwprZXkuICAiQ29udHJvbCBjaGFyYWN0ZXJz Iiwgc3VjaCBhcyA8UkVUPiwgPFRBQj4sIDxERUw+LCA8RVNDPiwgPEYxPiwKPEhvbWU+LCBhbmQg PExFRlQ+LCBhcmUgYWxzbyBlbnRlcmVkIHRoaXMgd2F5LCBhcyBhcmUgY2VydGFpbiBjaGFyYWN0 ZXJzCmZvdW5kIG9uIG5vbi1FbmdsaXNoIGtleWJvYXJkcyAoKm5vdGUgSW50ZXJuYXRpb25hbDo6 KS4KCiAgIEVtYWNzIGFsc28gcmVjb2duaXplcyBjb250cm9sIGNoYXJhY3RlcnMgdGhhdCBhcmUg ZW50ZXJlZCB1c2luZwoibW9kaWZpZXIga2V5cyIuICBUd28gY29tbW9ubHktdXNlZCBtb2RpZmll ciBrZXlzIGFyZSA8Q29udHJvbD4gKHVzdWFsbHkKbGFiZWxlZCA8Q3RybD4pLCBhbmQgPE1ldGE+ ICh1c3VhbGx5IGxhYmVsZWQgPEFsdD4pKDEpLiAgRm9yIGV4YW1wbGUsCuKAmENvbnRyb2wtYeKA mSBpcyBlbnRlcmVkIGJ5IGhvbGRpbmcgZG93biB0aGUgPEN0cmw+IGtleSB3aGlsZSBwcmVzc2lu ZwrigJhh4oCZOyB3ZSB3aWxsIHJlZmVyIHRvIHRoaXMgYXMg4oCYQy1h4oCZIGZvciBzaG9ydC4g IFNpbWlsYXJseSwg4oCYPE1ldGE+LWHigJksCm9yIOKAmE0tYeKAmSBmb3Igc2hvcnQsIGlzIGVu dGVyZWQgYnkgaG9sZGluZyBkb3duIHRoZSA8QWx0PiBrZXkgYW5kCnByZXNzaW5nIOKAmGHigJku ICBNb2RpZmllciBrZXlzIGNhbiBhbHNvIGJlIGFwcGxpZWQgdG8gbm9uLWFscGhhbnVtZXJpY2Fs CmNoYXJhY3RlcnMsIGUuZy4sIOKAmEMtPEYxPuKAmSBvciDigJhNLTxMRUZUPuKAmS4KCiAgIFlv dSBjYW4gYWxzbyB0eXBlIE1ldGEgY2hhcmFjdGVycyB1c2luZyB0d28tY2hhcmFjdGVyIHNlcXVl bmNlcwpzdGFydGluZyB3aXRoIDxFU0M+LiAgVGh1cywgeW91IGNhbiBlbnRlciDigJhNLWHigJkg YnkgdHlwaW5nIOKAmDxFU0M+IGHigJkuCllvdSBjYW4gZW50ZXIg4oCYQy1NLWHigJkgKGhvbGRp bmcgZG93biBib3RoIDxDdHJsPiBhbmQgPEFsdD4sIHRoZW4gcHJlc3NpbmcK4oCYYeKAmSkgYnkg dHlwaW5nIOKAmDxFU0M+IEMtYeKAmS4gIFVubGlrZSA8TWV0YT4sIDxFU0M+IGlzIGVudGVyZWQg YXMgYQpzZXBhcmF0ZSBjaGFyYWN0ZXIuICBZb3UgZG9u4oCZdCBob2xkIGRvd24gPEVTQz4gd2hp bGUgdHlwaW5nIHRoZSBuZXh0CmNoYXJhY3RlcjsgaW5zdGVhZCwgcHJlc3MgPEVTQz4gYW5kIHJl bGVhc2UgaXQsIHRoZW4gZW50ZXIgdGhlIG5leHQKY2hhcmFjdGVyLiAgVGhpcyBmZWF0dXJlIGlz IHVzZWZ1bCBvbiBjZXJ0YWluIHRleHQgdGVybWluYWxzIHdoZXJlIHRoZQo8TWV0YT4ga2V5IGRv ZXMgbm90IGZ1bmN0aW9uIHJlbGlhYmx5LgoKICAgT24gZ3JhcGhpY2FsIGRpc3BsYXlzLCB0aGUg d2luZG93IG1hbmFnZXIgbWlnaHQgYmxvY2sgc29tZSBrZXlib2FyZAppbnB1dHMsIGluY2x1ZGlu ZyDigJhNLTxUQUI+4oCZLCDigJhNLTxTUEM+4oCZLCDigJhDLU0tZOKAmSBhbmQg4oCYQy1NLWzi gJkuICBJZiB5b3UKaGF2ZSB0aGlzIHByb2JsZW0sIHlvdSBjYW4gZWl0aGVyIGN1c3RvbWl6ZSB5 b3VyIHdpbmRvdyBtYW5hZ2VyIHRvIG5vdApibG9jayB0aG9zZSBrZXlzLCBvciByZWJpbmQgdGhl IGFmZmVjdGVkIEVtYWNzIGNvbW1hbmRzICgqbm90ZQpDdXN0b21pemF0aW9uOjopLgoKICAgU2lt cGxlIGNoYXJhY3RlcnMgYW5kIGNvbnRyb2wgY2hhcmFjdGVycywgYXMgd2VsbCBhcyBjZXJ0YWlu Cm5vbi1rZXlib2FyZCBpbnB1dHMgc3VjaCBhcyBtb3VzZSBjbGlja3MsIGFyZSBjb2xsZWN0aXZl bHkgcmVmZXJyZWQgdG8KYXMgImlucHV0IGV2ZW50cyIuICBGb3IgZGV0YWlscyBhYm91dCBob3cg RW1hY3MgaW50ZXJuYWxseSBoYW5kbGVzIGlucHV0CmV2ZW50cywgc2VlICpub3RlIChlbGlzcClJ bnB1dCBFdmVudHM6Oi4KCiAgIC0tLS0tLS0tLS0gRm9vdG5vdGVzIC0tLS0tLS0tLS0KCiAgICgx KSBXZSByZWZlciB0byA8QWx0PiBhcyA8TWV0YT4gZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KCgoq IDMgS2V5cwoKU29tZSBFbWFjcyBjb21tYW5kcyBhcmUgaW52b2tlZCBieSBqdXN0IG9uZSBpbnB1 dCBldmVudDsgZm9yIGV4YW1wbGUsCuKAmEMtZuKAmSBtb3ZlcyBmb3J3YXJkIG9uZSBjaGFyYWN0 ZXIgaW4gdGhlIGJ1ZmZlci4gIE90aGVyIGNvbW1hbmRzIHRha2UKdHdvIG9yIG1vcmUgaW5wdXQg ZXZlbnRzIHRvIGludm9rZSwgc3VjaCBhcyDigJhDLXggQy1m4oCZIGFuZCDigJhDLXggNCBDLWbi gJkuCgogICBBICJrZXkgc2VxdWVuY2UiLCBvciAia2V5IiBmb3Igc2hvcnQsIGlzIGEgc2VxdWVu Y2Ugb2Ygb25lIG9yIG1vcmUKaW5wdXQgZXZlbnRzIHRoYXQgaXMgbWVhbmluZ2Z1bCBhcyBhIHVu aXQuICBJZiBhIGtleSBzZXF1ZW5jZSBpbnZva2VzIGEKY29tbWFuZCwgd2UgY2FsbCBpdCBhICJj b21wbGV0ZSBrZXkiOyBmb3IgZXhhbXBsZSwg4oCYQy1m4oCZLCDigJhDLXggQy1m4oCZIGFuZAri gJhDLXggNCBDLWbigJkgYXJlIGFsbCBjb21wbGV0ZSBrZXlzLiAgSWYgYSBrZXkgc2VxdWVuY2Ug aXNu4oCZdCBsb25nIGVub3VnaAp0byBpbnZva2UgYSBjb21tYW5kLCB3ZSBjYWxsIGl0IGEgInBy ZWZpeCBrZXkiOyBmcm9tIHRoZSBwcmVjZWRpbmcKZXhhbXBsZSwgd2Ugc2VlIHRoYXQg4oCYQy14 4oCZIGFuZCDigJhDLXggNOKAmSBhcmUgcHJlZml4IGtleXMuICBFdmVyeSBrZXkKc2VxdWVuY2Ug aXMgZWl0aGVyIGEgY29tcGxldGUga2V5IG9yIGEgcHJlZml4IGtleS4KCiAgIEEgcHJlZml4IGtl eSBjb21iaW5lcyB3aXRoIHRoZSBmb2xsb3dpbmcgaW5wdXQgZXZlbnQgdG8gbWFrZSBhIGxvbmdl cgprZXkgc2VxdWVuY2UuICBGb3IgZXhhbXBsZSwg4oCYQy144oCZIGlzIGEgcHJlZml4IGtleSwg c28gdHlwaW5nIOKAmEMteOKAmSBhbG9uZQpkb2VzIG5vdCBpbnZva2UgYSBjb21tYW5kOyBpbnN0 ZWFkLCBFbWFjcyB3YWl0cyBmb3IgZnVydGhlciBpbnB1dCAoaWYKeW91IHBhdXNlIGZvciBsb25n ZXIgdGhhbiBhIHNlY29uZCwgaXQgZWNob2VzIHRoZSDigJhDLXjigJkga2V5IHRvIHByb21wdApm b3IgdGhhdCBpbnB1dDsgKm5vdGUgRWNobyBBcmVhOjopLiAg4oCYQy144oCZIGNvbWJpbmVzIHdp dGggdGhlIG5leHQgaW5wdXQKZXZlbnQgdG8gbWFrZSBhIHR3by1ldmVudCBrZXkgc2VxdWVuY2Us IHdoaWNoIGNvdWxkIGl0c2VsZiBiZSBhIHByZWZpeAprZXkgKHN1Y2ggYXMg4oCYQy14IDTigJkp LCBvciBhIGNvbXBsZXRlIGtleSAoc3VjaCBhcyDigJhDLXggQy1m4oCZKS4gIFRoZXJlIGlzCm5v IGxpbWl0IHRvIHRoZSBsZW5ndGggb2Yga2V5IHNlcXVlbmNlcywgYnV0IGluIHByYWN0aWNlIHRo ZXkgYXJlIHNlbGRvbQpsb25nZXIgdGhhbiB0aHJlZSBvciBmb3VyIGlucHV0IGV2ZW50cy4KCiAg IFlvdSBjYW7igJl0IGFkZCBpbnB1dCBldmVudHMgb250byBhIGNvbXBsZXRlIGtleS4gIEZvciBl eGFtcGxlLCBiZWNhdXNlCuKAmEMtZuKAmSBpcyBhIGNvbXBsZXRlIGtleSwgdGhlIHR3by1ldmVu dCBzZXF1ZW5jZSDigJhDLWYgQy1r4oCZIGlzIHR3byBrZXkKc2VxdWVuY2VzLCBub3Qgb25lLgoK ICAgQnkgZGVmYXVsdCwgdGhlIHByZWZpeCBrZXlzIGluIEVtYWNzIGFyZSDigJhDLWPigJksIOKA mEMtaOKAmSwg4oCYQy144oCZLCDigJhDLXgKPFJFVD7igJksIOKAmEMteCBA4oCZLCDigJhDLXgg YeKAmSwg4oCYQy14IG7igJksIOKAmEMteCBy4oCZLCDigJhDLXggduKAmSwg4oCYQy14IDTigJks IOKAmEMteCA14oCZLArigJhDLXggNuKAmSwgPEVTQz4sIOKAmE0tZ+KAmSwgYW5kIOKAmE0tb+KA mS4gICg8RjE+IGFuZCA8RjI+IGFyZSBhbGlhc2VzIGZvciDigJhDLWjigJkKYW5kIOKAmEMteCA2 4oCZLikgIFRoaXMgbGlzdCBpcyBub3QgY2FzdCBpbiBzdG9uZTsgaWYgeW91IGN1c3RvbWl6ZSBF bWFjcywKeW91IGNhbiBtYWtlIG5ldyBwcmVmaXgga2V5cy4gIFlvdSBjb3VsZCBldmVuIGVsaW1p bmF0ZSBzb21lIG9mIHRoZQpzdGFuZGFyZCBvbmVzLCB0aG91Z2ggdGhpcyBpcyBub3QgcmVjb21t ZW5kZWQgZm9yIG1vc3QgdXNlcnM7IGZvcgpleGFtcGxlLCBpZiB5b3UgcmVtb3ZlIHRoZSBwcmVm aXggZGVmaW5pdGlvbiBvZiDigJhDLXggNOKAmSwgdGhlbiDigJhDLXggNApDLWbigJkgYmVjb21l cyBhbiBpbnZhbGlkIGtleSBzZXF1ZW5jZS4gICpOb3RlIEtleSBCaW5kaW5nczo6LgoKICAgVHlw aW5nIHRoZSBoZWxwIGNoYXJhY3RlciAo4oCYQy1o4oCZIG9yIDxGMT4pIGFmdGVyIGEgcHJlZml4 IGtleSBkaXNwbGF5cwphIGxpc3Qgb2YgdGhlIGNvbW1hbmRzIHN0YXJ0aW5nIHdpdGggdGhhdCBw cmVmaXguICBUaGUgc29sZSBleGNlcHRpb24gdG8KdGhpcyBydWxlIGlzIDxFU0M+OiDigJg8RVND PiBDLWjigJkgaXMgZXF1aXZhbGVudCB0byDigJhDLU0taOKAmSwgd2hpY2ggZG9lcwpzb21ldGhp bmcgZWxzZSBlbnRpcmVseS4gIFlvdSBjYW4sIGhvd2V2ZXIsIHVzZSA8RjE+IHRvIGRpc3BsYXkg YSBsaXN0Cm9mIGNvbW1hbmRzIHN0YXJ0aW5nIHdpdGggPEVTQz4uCgoKKiA0IEtleXMgYW5kIENv bW1hbmRzCgpUaGlzIG1hbnVhbCBpcyBmdWxsIG9mIHBhc3NhZ2VzIHRoYXQgdGVsbCB5b3Ugd2hh dCBwYXJ0aWN1bGFyIGtleXMgZG8uCkJ1dCBFbWFjcyBkb2VzIG5vdCBhc3NpZ24gbWVhbmluZ3Mg dG8ga2V5cyBkaXJlY3RseS4gIEluc3RlYWQsIEVtYWNzCmFzc2lnbnMgbWVhbmluZ3MgdG8gbmFt ZWQgImNvbW1hbmRzIiwgYW5kIHRoZW4gZ2l2ZXMga2V5cyB0aGVpciBtZWFuaW5ncwpieSAiYmlu ZGluZyIgdGhlbSB0byBjb21tYW5kcy4KCiAgIEV2ZXJ5IGNvbW1hbmQgaGFzIGEgbmFtZSBjaG9z ZW4gYnkgYSBwcm9ncmFtbWVyLiAgVGhlIG5hbWUgaXMgdXN1YWxseQptYWRlIG9mIGEgZmV3IEVu Z2xpc2ggd29yZHMgc2VwYXJhdGVkIGJ5IGRhc2hlczsgZm9yIGV4YW1wbGUsCuKAmG5leHQtbGlu ZeKAmSBvciDigJhmb3J3YXJkLXdvcmTigJkuICBJbnRlcm5hbGx5LCBlYWNoIGNvbW1hbmQgaXMg YSBzcGVjaWFsCnR5cGUgb2YgTGlzcCAiZnVuY3Rpb24iLCBhbmQgdGhlIGFjdGlvbnMgYXNzb2Np YXRlZCB3aXRoIHRoZSBjb21tYW5kIGFyZQpwZXJmb3JtZWQgYnkgcnVubmluZyB0aGUgZnVuY3Rp b24uICAqTm90ZSBXaGF0IElzIGEgRnVuY3Rpb246CihlbGlzcClXaGF0IElzIGEgRnVuY3Rpb24u CgogICBUaGUgYmluZGluZ3MgYmV0d2VlbiBrZXlzIGFuZCBjb21tYW5kcyBhcmUgcmVjb3JkZWQg aW4gdGFibGVzIGNhbGxlZAoia2V5bWFwcyIuICAqTm90ZSBLZXltYXBzOjouCgogICBXaGVuIHdl IHNheSB0aGF0IOKAnOKAmEMtbuKAmSBtb3ZlcyBkb3duIHZlcnRpY2FsbHkgb25lIGxpbmXigJ0g d2UgYXJlCmdsb3NzaW5nIG92ZXIgYSBzdWJ0bGUgZGlzdGluY3Rpb24gdGhhdCBpcyBpcnJlbGV2 YW50IGluIG9yZGluYXJ5IHVzZSwKYnV0IHZpdGFsIGZvciBFbWFjcyBjdXN0b21pemF0aW9uLiAg VGhlIGNvbW1hbmQg4oCYbmV4dC1saW5l4oCZIGRvZXMgYQp2ZXJ0aWNhbCBtb3ZlIGRvd253YXJk LiAg4oCYQy1u4oCZIGhhcyB0aGlzIGVmZmVjdCBfYmVjYXVzZV8gaXQgaXMgYm91bmQgdG8K4oCY bmV4dC1saW5l4oCZLiAgSWYgeW91IHJlYmluZCDigJhDLW7igJkgdG8gdGhlIGNvbW1hbmQg4oCY Zm9yd2FyZC13b3Jk4oCZLCDigJhDLW7igJkKd2lsbCBtb3ZlIGZvcndhcmQgb25lIHdvcmQgaW5z dGVhZC4KCiAgIEluIHRoaXMgbWFudWFsLCB3ZSB3aWxsIG9mdGVuIHNwZWFrIG9mIGtleXMgbGlr ZSDigJhDLW7igJkgYXMgY29tbWFuZHMsCmV2ZW4gdGhvdWdoIHN0cmljdGx5IHNwZWFraW5nIHRo ZSBrZXkgaXMgYm91bmQgdG8gYSBjb21tYW5kLiAgVXN1YWxseSwKd2Ugc3RhdGUgdGhlIG5hbWUg b2YgdGhlIGNvbW1hbmQgd2hpY2ggcmVhbGx5IGRvZXMgdGhlIHdvcmsgaW4KcGFyZW50aGVzZXMg YWZ0ZXIgbWVudGlvbmluZyB0aGUga2V5IHRoYXQgcnVucyBpdC4gIEZvciBleGFtcGxlLCB3ZSB3 aWxsCnNheSB0aGF0IOKAnFRoZSBjb21tYW5kIOKAmEMtbuKAmSAo4oCYbmV4dC1saW5l4oCZKSBt b3ZlcyBwb2ludCB2ZXJ0aWNhbGx5IGRvd27igJ0sCm1lYW5pbmcgdGhhdCB0aGUgY29tbWFuZCDi gJhuZXh0LWxpbmXigJkgbW92ZXMgdmVydGljYWxseSBkb3duLCBhbmQgdGhlIGtleQrigJhDLW7i gJkgaXMgbm9ybWFsbHkgYm91bmQgdG8gaXQuCgogICBTaW5jZSB3ZSBhcmUgZGlzY3Vzc2luZyBj dXN0b21pemF0aW9uLCB3ZSBzaG91bGQgdGVsbCB5b3UgYWJvdXQKInZhcmlhYmxlcyIuICBPZnRl biB0aGUgZGVzY3JpcHRpb24gb2YgYSBjb21tYW5kIHdpbGwgc2F5LCDigJxUbyBjaGFuZ2UKdGhp cywgc2V0IHRoZSB2YXJpYWJsZSDigJhtdW1ibGUtZm9v4oCZLuKAnSBBIHZhcmlhYmxlIGlzIGEg bmFtZSB1c2VkIHRvIHN0b3JlCmEgdmFsdWUuICBNb3N0IG9mIHRoZSB2YXJpYWJsZXMgZG9jdW1l bnRlZCBpbiB0aGlzIG1hbnVhbCBhcmUgbWVhbnQgZm9yCmN1c3RvbWl6YXRpb246IHNvbWUgY29t bWFuZCBvciBvdGhlciBwYXJ0IG9mIEVtYWNzIGV4YW1pbmVzIHRoZSB2YXJpYWJsZQphbmQgYmVo YXZlcyBkaWZmZXJlbnRseSBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlIHRoYXQgeW91IHNldC4gIFlv dSBjYW4KaWdub3JlIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMgdW50aWwgeW91IGFy ZSBpbnRlcmVzdGVkIGluCmN1c3RvbWl6aW5nIHRoZW0uICBUaGVuIHJlYWQgdGhlIGJhc2ljIGlu Zm9ybWF0aW9uIG9uIHZhcmlhYmxlcyAoKm5vdGUKVmFyaWFibGVzOjopIGFuZCB0aGUgaW5mb3Jt YXRpb24gYWJvdXQgc3BlY2lmaWMgdmFyaWFibGVzIHdpbGwgbWFrZQpzZW5zZS4KCgoqIDUgRW50 ZXJpbmcgRW1hY3MKClRoZSB1c3VhbCB3YXkgdG8gaW52b2tlIEVtYWNzIGlzIHdpdGggdGhlIHNo ZWxsIGNvbW1hbmQg4oCYZW1hY3PigJkuICBGcm9tIGEKdGVybWluYWwgd2luZG93IHJ1bm5pbmcg YSBVbml4IHNoZWxsIG9uIGEgR1VJIHRlcm1pbmFsLCB5b3UgY2FuIHJ1bgpFbWFjcyBpbiB0aGUg YmFja2dyb3VuZCB3aXRoIOKAmGVtYWNzICbigJk7IHRoaXMgd2F5LCBFbWFjcyB3b27igJl0IHRp ZSB1cCB0aGUKdGVybWluYWwgd2luZG93LCBzbyB5b3UgY2FuIHVzZSBpdCB0byBydW4gb3RoZXIg c2hlbGwgY29tbWFuZHMuICAoRm9yCmNvbXBhcmFibGUgbWV0aG9kcyBvZiBzdGFydGluZyBFbWFj cyBvbiBNUy1XaW5kb3dzLCBzZWUgKm5vdGUgV2luZG93cwpTdGFydHVwOjouKQoKICAgV2hlbiBF bWFjcyBzdGFydHMgdXAsIHRoZSBpbml0aWFsIGZyYW1lIGRpc3BsYXlzIGEgc3BlY2lhbCBidWZm ZXIKbmFtZWQg4oCYKkdOVSBFbWFjcyrigJkuICBUaGlzICJzdGFydHVwIHNjcmVlbiIgY29udGFp bnMgaW5mb3JtYXRpb24gYWJvdXQKRW1hY3MgYW5kICJsaW5rcyIgdG8gY29tbW9uIHRhc2tzIHRo YXQgYXJlIHVzZWZ1bCBmb3IgYmVnaW5uaW5nIHVzZXJzLgpGb3IgaW5zdGFuY2UsIGFjdGl2YXRp bmcgdGhlIOKAmEVtYWNzIFR1dG9yaWFs4oCZIGxpbmsgb3BlbnMgdGhlIEVtYWNzCnR1dG9yaWFs OyB0aGlzIGRvZXMgdGhlIHNhbWUgdGhpbmcgYXMgdGhlIGNvbW1hbmQg4oCYQy1oIHTigJkKKOKA mGhlbHAtd2l0aC10dXRvcmlhbOKAmSkuICBUbyBhY3RpdmF0ZSBhIGxpbmssIGVpdGhlciBtb3Zl IHBvaW50IG9udG8gaXQKYW5kIHR5cGUg4oCYPFJFVD7igJksIG9yIGNsaWNrIG9uIGl0IHdpdGgg 4oCYbW91c2UtMeKAmSAodGhlIGxlZnQgbW91c2UgYnV0dG9uKS4KCiAgIFVzaW5nIGEgY29tbWFu ZCBsaW5lIGFyZ3VtZW50LCB5b3UgY2FuIHRlbGwgRW1hY3MgdG8gdmlzaXQgb25lIG9yCm1vcmUg ZmlsZXMgYXMgc29vbiBhcyBpdCBzdGFydHMgdXAuICBGb3IgZXhhbXBsZSwg4oCYZW1hY3MgZm9v LnR4dOKAmSBzdGFydHMKRW1hY3Mgd2l0aCBhIGJ1ZmZlciBkaXNwbGF5aW5nIHRoZSBjb250ZW50 cyBvZiB0aGUgZmlsZSDigJhmb28udHh04oCZLiAgVGhpcwpmZWF0dXJlIGV4aXN0cyBtYWlubHkg Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBlZGl0b3JzLCB3aGljaCBhcmUKZGVzaWduZWQg dG8gYmUgbGF1bmNoZWQgZnJvbSB0aGUgc2hlbGwgZm9yIHNob3J0IGVkaXRpbmcgc2Vzc2lvbnMu ICBJZgp5b3UgY2FsbCBFbWFjcyB0aGlzIHdheSwgdGhlIGluaXRpYWwgZnJhbWUgaXMgc3BsaXQg aW50byB0d28gd2luZG93c+KAlG9uZQpzaG93aW5nIHRoZSBzcGVjaWZpZWQgZmlsZSwgYW5kIHRo ZSBvdGhlciBzaG93aW5nIHRoZSBzdGFydHVwIHNjcmVlbi4KKk5vdGUgV2luZG93czo6LgoKICAg R2VuZXJhbGx5LCBpdCBpcyB1bm5lY2Vzc2FyeSBhbmQgd2FzdGVmdWwgdG8gc3RhcnQgRW1hY3Mg YWZyZXNoIGVhY2gKdGltZSB5b3Ugd2FudCB0byBlZGl0IGEgZmlsZS4gIFRoZSByZWNvbW1lbmRl ZCB3YXkgdG8gdXNlIEVtYWNzIGlzIHRvCnN0YXJ0IGl0IGp1c3Qgb25jZSwganVzdCBhZnRlciB5 b3UgbG9nIGluLCBhbmQgZG8gYWxsIHlvdXIgZWRpdGluZyBpbgp0aGUgc2FtZSBFbWFjcyBzZXNz aW9uLiAgKk5vdGUgRmlsZXM6OiwgZm9yIGluZm9ybWF0aW9uIG9uIHZpc2l0aW5nIG1vcmUKdGhh biBvbmUgZmlsZS4gIElmIHlvdSB1c2UgRW1hY3MgdGhpcyB3YXksIHRoZSBFbWFjcyBzZXNzaW9u IGFjY3VtdWxhdGVzCnZhbHVhYmxlIGNvbnRleHQsIHN1Y2ggYXMgdGhlIGtpbGwgcmluZywgcmVn aXN0ZXJzLCB1bmRvIGhpc3RvcnksIGFuZAptYXJrIHJpbmcgZGF0YSwgd2hpY2ggdG9nZXRoZXIg bWFrZSBlZGl0aW5nIG1vcmUgY29udmVuaWVudC4gIFRoZXNlCmZlYXR1cmVzIGFyZSBkZXNjcmli ZWQgbGF0ZXIgaW4gdGhlIG1hbnVhbC4KCiAgIFRvIGVkaXQgYSBmaWxlIGZyb20gYW5vdGhlciBw cm9ncmFtIHdoaWxlIEVtYWNzIGlzIHJ1bm5pbmcsIHlvdSBjYW4KdXNlIHRoZSDigJhlbWFjc2Ns aWVudOKAmSBoZWxwZXIgcHJvZ3JhbSB0byBvcGVuIGEgZmlsZSBpbiB0aGUgZXhpc3RpbmcKRW1h Y3Mgc2Vzc2lvbi4gICpOb3RlIEVtYWNzIFNlcnZlcjo6LgoKICAgRW1hY3MgYWNjZXB0cyBvdGhl ciBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRoYXQgdGVsbCBpdCB0byBsb2FkCmNlcnRhaW4gTGlz cCBmaWxlcywgd2hlcmUgdG8gcHV0IHRoZSBpbml0aWFsIGZyYW1lLCBhbmQgc28gZm9ydGguICAq Tm90ZQpFbWFjcyBJbnZvY2F0aW9uOjouCgogICBJZiB0aGUgdmFyaWFibGUg4oCYaW5oaWJpdC1z dGFydHVwLXNjcmVlbuKAmSBpcyBub24t4oCYbmls4oCZLCBFbWFjcyBkb2VzIG5vdApkaXNwbGF5 IHRoZSBzdGFydHVwIHNjcmVlbi4gIEluIHRoYXQgY2FzZSwgaWYgb25lIG9yIG1vcmUgZmlsZXMg d2VyZQpzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZSwgRW1hY3Mgc2ltcGx5IGRpc3BsYXlz IHRob3NlIGZpbGVzOwpvdGhlcndpc2UsIGl0IGRpc3BsYXlzIGEgYnVmZmVyIG5hbWVkIOKAmCpz Y3JhdGNoKuKAmSwgd2hpY2ggY2FuIGJlIHVzZWQgdG8KZXZhbHVhdGUgRW1hY3MgTGlzcCBleHBy ZXNzaW9ucyBpbnRlcmFjdGl2ZWx5LiAgKk5vdGUgTGlzcApJbnRlcmFjdGlvbjo6LiAgWW91IGNh biBzZXQgdGhlIHZhcmlhYmxlIOKAmGluaGliaXQtc3RhcnR1cC1zY3JlZW7igJkgdXNpbmcKdGhl IEN1c3RvbWl6ZSBmYWNpbGl0eSAoKm5vdGUgRWFzeSBDdXN0b21pemF0aW9uOjopLCBvciBieSBl ZGl0aW5nIHlvdXIKaW5pdGlhbGl6YXRpb24gZmlsZSAoKm5vdGUgSW5pdCBGaWxlOjopLigxKQoK ICAgWW91IGNhbiBhbHNvIGZvcmNlIEVtYWNzIHRvIGRpc3BsYXkgYSBmaWxlIG9yIGRpcmVjdG9y eSBhdCBzdGFydHVwIGJ5CnNldHRpbmcgdGhlIHZhcmlhYmxlIOKAmGluaXRpYWwtYnVmZmVyLWNo b2ljZeKAmSB0byBhIHN0cmluZyBuYW1pbmcgdGhhdApmaWxlIG9yIGRpcmVjdG9yeS4gIFRoZSB2 YWx1ZSBvZiDigJhpbml0aWFsLWJ1ZmZlci1jaG9pY2XigJkgbWF5IGFsc28gYmUgYQpmdW5jdGlv biAob2Ygbm8gYXJndW1lbnRzKSB0aGF0IHNob3VsZCByZXR1cm4gYSBidWZmZXIgd2hpY2ggaXMg dGhlbgpkaXNwbGF5ZWQuICBJZiDigJhpbml0aWFsLWJ1ZmZlci1jaG9pY2XigJkgaXMgbm9uLeKA mG5pbOKAmSwgdGhlbiBpZiB5b3Ugc3BlY2lmeQphbnkgZmlsZXMgb24gdGhlIGNvbW1hbmQgbGlu ZSwgRW1hY3Mgc3RpbGwgdmlzaXRzIHRoZW0sIGJ1dCBkb2VzIG5vdApkaXNwbGF5IHRoZW0gaW5p dGlhbGx5LgoKICAgLS0tLS0tLS0tLSBGb290bm90ZXMgLS0tLS0tLS0tLQoKICAgKDEpIFNldHRp bmcg4oCYaW5oaWJpdC1zdGFydHVwLXNjcmVlbuKAmSBpbiDigJhzaXRlLXN0YXJ0LmVs4oCZIGRv ZXNu4oCZdCB3b3JrLApiZWNhdXNlIHRoZSBzdGFydHVwIHNjcmVlbiBpcyBzZXQgdXAgYmVmb3Jl IHJlYWRpbmcg4oCYc2l0ZS1zdGFydC5lbOKAmS4KKk5vdGUgSW5pdCBGaWxlOjosIGZvciBpbmZv cm1hdGlvbiBhYm91dCDigJhzaXRlLXN0YXJ0LmVs4oCZLgoKCiogNiBFeGl0aW5nIEVtYWNzCgri gJhDLXggQy1j4oCZCiAgICAgS2lsbCBFbWFjcyAo4oCYc2F2ZS1idWZmZXJzLWtpbGwtdGVybWlu YWzigJkpLgrigJhDLXrigJkKICAgICBPbiBhIHRleHQgdGVybWluYWwsIHN1c3BlbmQgRW1hY3M7 IG9uIGEgZ3JhcGhpY2FsIGRpc3BsYXksIGljb25pZnkKICAgICAob3Ig4oCcbWluaW1pemXigJ0p IHRoZSBzZWxlY3RlZCBmcmFtZSAo4oCYc3VzcGVuZC1mcmFtZeKAmSkuCgogICAiS2lsbGluZyIg RW1hY3MgbWVhbnMgdGVybWluYXRpbmcgdGhlIEVtYWNzIHByb2dyYW0uICBUbyBkbyB0aGlzLAp0 eXBlIOKAmEMteCBDLWPigJkgKOKAmHNhdmUtYnVmZmVycy1raWxsLXRlcm1pbmFs4oCZKS4gIEEg dHdvLWNoYXJhY3RlciBrZXkKc2VxdWVuY2UgaXMgdXNlZCB0byBtYWtlIGl0IGhhcmRlciB0byB0 eXBlIGJ5IGFjY2lkZW50LiAgSWYgdGhlcmUgYXJlCmFueSBtb2RpZmllZCBmaWxlLXZpc2l0aW5n IGJ1ZmZlcnMgd2hlbiB5b3UgdHlwZSDigJhDLXggQy1j4oCZLCBFbWFjcyBmaXJzdApvZmZlcnMg dG8gc2F2ZSB0aGVzZSBidWZmZXJzLiAgSWYgeW91IGRvIG5vdCBzYXZlIHRoZW0gYWxsLCBpdCBh c2tzIGZvcgpjb25maXJtYXRpb24gYWdhaW4sIHNpbmNlIHRoZSB1bnNhdmVkIGNoYW5nZXMgd2ls bCBiZSBsb3N0LiAgRW1hY3MgYWxzbwphc2tzIGZvciBjb25maXJtYXRpb24gaWYgYW55IHN1YnBy b2Nlc3NlcyBhcmUgc3RpbGwgcnVubmluZywgc2luY2UKa2lsbGluZyBFbWFjcyB3aWxsIGFsc28g a2lsbCB0aGUgc3VicHJvY2Vzc2VzICgqbm90ZSBTaGVsbDo6KS4KCiAgIOKAmEMteCBDLWPigJkg YmVoYXZlcyBzcGVjaWFsbHkgaWYgeW91IGFyZSB1c2luZyBFbWFjcyBhcyBhIHNlcnZlci4gIElm CnlvdSB0eXBlIGl0IGZyb20gYSBjbGllbnQgZnJhbWUsIGl0IGNsb3NlcyB0aGUgY2xpZW50IGNv bm5lY3Rpb24uICAqTm90ZQpFbWFjcyBTZXJ2ZXI6Oi4KCiAgIEVtYWNzIGNhbiwgb3B0aW9uYWxs eSwgcmVjb3JkIGNlcnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbiB3aGVuIHlvdQpraWxsIGl0LCBz dWNoIGFzIHRoZSBmaWxlcyB5b3Ugd2VyZSB2aXNpdGluZyBhdCB0aGUgdGltZS4gIFRoaXMKaW5m b3JtYXRpb24gaXMgdGhlbiBhdmFpbGFibGUgdGhlIG5leHQgdGltZSB5b3Ugc3RhcnQgRW1hY3Mu ICAqTm90ZQpTYXZpbmcgRW1hY3MgU2Vzc2lvbnM6Oi4KCiAgIElmIHRoZSB2YWx1ZSBvZiB0aGUg dmFyaWFibGUg4oCYY29uZmlybS1raWxsLWVtYWNz4oCZIGlzIG5vbi3igJhuaWzigJksIOKAmEMt eApDLWPigJkgYXNzdW1lcyB0aGF0IGl0cyB2YWx1ZSBpcyBhIHByZWRpY2F0ZSBmdW5jdGlvbiwg YW5kIGNhbGxzIHRoYXQKZnVuY3Rpb24uICBJZiB0aGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbiBj YWxsIGlzIG5vbi3igJhuaWzigJksIHRoZSBzZXNzaW9uCmlzIGtpbGxlZCwgb3RoZXJ3aXNlIEVt YWNzIGNvbnRpbnVlcyB0byBydW4uICBPbmUgY29udmVuaWVudCBmdW5jdGlvbiB0bwp1c2UgYXMg dGhlIHZhbHVlIG9mIOKAmGNvbmZpcm0ta2lsbC1lbWFjc+KAmSBpcyB0aGUgZnVuY3Rpb24g4oCY eWVzLW9yLW5vLXDigJkuClRoZSBkZWZhdWx0IHZhbHVlIG9mIOKAmGNvbmZpcm0ta2lsbC1lbWFj c+KAmSBpcyDigJhuaWzigJkuCgogICBJZiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIOKAmGNv bmZpcm0ta2lsbC1wcm9jZXNzZXPigJkgaXMg4oCYbmls4oCZLCDigJhDLXgKQy1j4oCZIGRvZXMg bm90IGFzayBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBraWxsaW5nIHN1YnByb2Nlc3NlcyBzdGFy dGVkCmJ5IEVtYWNzLiAgVGhlIHZhbHVlIGlzIOKAmHTigJkgYnkgZGVmYXVsdC4KCiAgIFRvIGZ1 cnRoZXIgY3VzdG9taXplIHdoYXQgaGFwcGVucyB3aGVuIEVtYWNzIGlzIGV4aXRpbmcsIHNlZSAq bm90ZQooZWxpc3ApS2lsbGluZyBFbWFjczo6LgoKICAgVG8ga2lsbCBFbWFjcyB3aXRob3V0IGJl aW5nIHByb21wdGVkIGFib3V0IHNhdmluZywgdHlwZSDigJhNLXgKa2lsbC1lbWFjc+KAmS4KCiAg IOKAmEMteuKAmSBydW5zIHRoZSBjb21tYW5kIOKAmHN1c3BlbmQtZnJhbWXigJkuICBPbiBhIGdy YXBoaWNhbCBkaXNwbGF5LCB0aGlzCmNvbW1hbmQgIm1pbmltaXplcyIgKG9yICJpY29uaWZpZXMi KSB0aGUgc2VsZWN0ZWQgRW1hY3MgZnJhbWUsIGhpZGluZyBpdAppbiBhIHdheSB0aGF0IGxldHMg eW91IGJyaW5nIGl0IGJhY2sgbGF0ZXIgKGV4YWN0bHkgaG93IHRoaXMgaGlkaW5nCm9jY3VycyBk ZXBlbmRzIG9uIHRoZSB3aW5kb3cgc3lzdGVtKS4gIE9uIGEgdGV4dCB0ZXJtaW5hbCwgdGhlIOKA mEMteuKAmQpjb21tYW5kICJzdXNwZW5kcyIgRW1hY3MsIHN0b3BwaW5nIHRoZSBwcm9ncmFtIHRl bXBvcmFyaWx5IGFuZCByZXR1cm5pbmcKY29udHJvbCB0byB0aGUgcGFyZW50IHByb2Nlc3MgKHVz dWFsbHkgYSBzaGVsbCk7IGluIG1vc3Qgc2hlbGxzLCB5b3UgY2FuCnJlc3VtZSBFbWFjcyBhZnRl ciBzdXNwZW5kaW5nIGl0IHdpdGggdGhlIHNoZWxsIGNvbW1hbmQg4oCYJWVtYWNz4oCZLgoKICAg VGV4dCB0ZXJtaW5hbHMgdXN1YWxseSBsaXN0ZW4gZm9yIGNlcnRhaW4gc3BlY2lhbCBjaGFyYWN0 ZXJzIHdob3NlCm1lYW5pbmcgaXMgdG8ga2lsbCBvciBzdXNwZW5kIHRoZSBwcm9ncmFtIHlvdSBh cmUgcnVubmluZy4gIFRoaXMKdGVybWluYWwgZmVhdHVyZSBpcyB0dXJuZWQgb2ZmIHdoaWxlIHlv dSBhcmUgaW4gRW1hY3MuICBUaGUgbWVhbmluZ3Mgb2YK4oCYQy164oCZIGFuZCDigJhDLXggQy1j 4oCZIGFzIGtleXMgaW4gRW1hY3Mgd2VyZSBpbnNwaXJlZCBieSB0aGUgdXNlIG9mIOKAmEMteuKA mQphbmQg4oCYQy1j4oCZIG9uIHNldmVyYWwgb3BlcmF0aW5nIHN5c3RlbXMgYXMgdGhlIGNoYXJh Y3RlcnMgZm9yIHN0b3BwaW5nIG9yCmtpbGxpbmcgYSBwcm9ncmFtLCBidXQgdGhhdCBpcyB0aGVp ciBvbmx5IHJlbGF0aW9uc2hpcCB3aXRoIHRoZQpvcGVyYXRpbmcgc3lzdGVtLiAgWW91IGNhbiBj dXN0b21pemUgdGhlc2Uga2V5cyB0byBydW4gYW55IGNvbW1hbmRzIG9mCnlvdXIgY2hvaWNlICgq bm90ZSBLZXltYXBzOjopLgoKCiogNyBCYXNpYyBFZGl0aW5nIENvbW1hbmRzCgpIZXJlIHdlIGV4 cGxhaW4gdGhlIGJhc2ljcyBvZiBob3cgdG8gZW50ZXIgdGV4dCwgbWFrZSBjb3JyZWN0aW9ucywg YW5kCnNhdmUgdGhlIHRleHQgaW4gYSBmaWxlLiAgSWYgdGhpcyBtYXRlcmlhbCBpcyBuZXcgdG8g eW91LCB3ZSBzdWdnZXN0IHlvdQpmaXJzdCBydW4gdGhlIEVtYWNzIGxlYXJuLWJ5LWRvaW5nIHR1 dG9yaWFsLCBieSB0eXBpbmcg4oCYQy1oIHTigJkKKOKAmGhlbHAtd2l0aC10dXRvcmlhbOKAmSku CgorIE1lbnU6CgoKICAtIEluc2VydGluZyBUZXh0OjogICAgICBJbnNlcnRpbmcgdGV4dCBieSBz aW1wbHkgdHlwaW5nIGl0LgogIC0gTW92aW5nIFBvaW50OjogICAgICAgIE1vdmluZyB0aGUgY3Vy c29yIHRvIHRoZSBwbGFjZSB3aGVyZSB5b3Ugd2FudCB0bwogICAgICAgICAgICAgICAgICAgICAg ICAgIGNoYW5nZSBzb21ldGhpbmcuCiAgLSBFcmFzaW5nOjogICAgICAgICAgICAgRGVsZXRpbmcg YW5kIGtpbGxpbmcgdGV4dC4KICAtIEJhc2ljIFVuZG86OiAgICAgICAgICBVbmRvaW5nIHJlY2Vu dCBjaGFuZ2VzIGluIHRoZSB0ZXh0LgogIC0gRmlsZXM6IEJhc2ljIEZpbGVzLiAgIFZpc2l0aW5n LCBjcmVhdGluZywgYW5kIHNhdmluZyBmaWxlcy4KICAtIEhlbHA6IEJhc2ljIEhlbHAuICAgICBB c2tpbmcgd2hhdCBhIGNoYXJhY3RlciBkb2VzLgogIC0gQmxhbmsgTGluZXM6OiAgICAgICAgIE1h a2luZyBhbmQgZGVsZXRpbmcgYmxhbmsgbGluZXMuCiAgLSBDb250aW51YXRpb24gTGluZXM6OiAg SG93IEVtYWNzIGRpc3BsYXlzIGxpbmVzIHRvbyB3aWRlIGZvciB0aGUgc2NyZWVuLgogIC0gUG9z aXRpb24gSW5mbzo6ICAgICAgIFdoYXQgbGluZSwgcm93LCBvciBjb2x1bW4gaXMgcG9pbnQgb24/ CiAgLSBBcmd1bWVudHM6OiAgICAgICAgICAgTnVtZXJpYyBhcmd1bWVudHMgZm9yIHJlcGVhdGlu ZyBhIGNvbW1hbmQgTiB0aW1lcy4KICAtIFJlcGVhdGluZzo6ICAgICAgICAgICBSZXBlYXRpbmcg dGhlIHByZXZpb3VzIGNvbW1hbmQgcXVpY2tseS4KCgoqKiA3LjEgSW5zZXJ0aW5nIFRleHQKCllv dSBjYW4gaW5zZXJ0IGFuIG9yZGluYXJ5ICJncmFwaGljIGNoYXJhY3RlciIgKGUuZy4sIOKAmGHi gJksIOKAmELigJksIOKAmDPigJksIGFuZArigJg94oCZKSBieSB0eXBpbmcgdGhlIGFzc29jaWF0 ZWQga2V5LiAgVGhpcyBhZGRzIHRoZSBjaGFyYWN0ZXIgdG8gdGhlCmJ1ZmZlciBhdCBwb2ludC4g IEluc2VydGlvbiBtb3ZlcyBwb2ludCBmb3J3YXJkLCBzbyB0aGF0IHBvaW50IHJlbWFpbnMKanVz dCBhZnRlciB0aGUgaW5zZXJ0ZWQgdGV4dC4gICpOb3RlIFBvaW50OjouCgogICBUbyBlbmQgYSBs aW5lIGFuZCBzdGFydCBhIG5ldyBvbmUsIHR5cGUgPFJFVD4gKOKAmG5ld2xpbmXigJkpLiAgKFRo ZQo8UkVUPiBrZXkgbWF5IGJlIGxhYmVsZWQgPFJldHVybj4sIG9yIDxFbnRlcj4sIG9yIHdpdGgg YSBmdW5ueS1sb29raW5nCmxlZnQtcG9pbnRpbmcgYXJyb3cgb24geW91ciBrZXlib2FyZCwgYnV0 IHdlIHJlZmVyIHRvIGl0IGFzIDxSRVQ+IGluCnRoaXMgbWFudWFsLikgIFRoaXMgY29tbWFuZCBp bnNlcnRzIGEgbmV3bGluZSBjaGFyYWN0ZXIgaW50byB0aGUgYnVmZmVyLAp0aGVuIGluZGVudHMg KCpub3RlIEluZGVudGF0aW9uOjopIGFjY29yZGluZyB0byB0aGUgbWFqb3IgbW9kZS4gIElmCnBv aW50IGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsIHRoZSBlZmZlY3QgaXMgdG8gY3JlYXRlIGEg bmV3IGJsYW5rCmxpbmUgYWZ0ZXIgaXQgYW5kIGluZGVudCB0aGUgbmV3IGxpbmU7IGlmIHBvaW50 IGlzIGluIHRoZSBtaWRkbGUgb2YgYQpsaW5lLCB0aGUgbGluZSBpcyBzcGxpdCBhdCB0aGF0IHBv c2l0aW9uLiAgVG8gdHVybiBvZmYgdGhlCmF1dG8taW5kZW50YXRpb24sIHlvdSBjYW4gZWl0aGVy IGRpc2FibGUgRWxlY3RyaWMgSW5kZW50IG1vZGUgKCpub3RlCkluZGVudCBDb252ZW5pZW5jZTo6 KSBvciB0eXBlIOKAmEMtauKAmSwgd2hpY2ggaW5zZXJ0cyBqdXN0IGEgbmV3bGluZSwKd2l0aG91 dCBhbnkgYXV0by1pbmRlbnRhdGlvbi4KCiAgIEFzIHdlIGV4cGxhaW4gbGF0ZXIgaW4gdGhpcyBt YW51YWwsIHlvdSBjYW4gY2hhbmdlIHRoZSB3YXkgRW1hY3MKaGFuZGxlcyB0ZXh0IGluc2VydGlv biBieSB0dXJuaW5nIG9uICJtaW5vciBtb2RlcyIuICBGb3IgaW5zdGFuY2UsIHRoZQptaW5vciBt b2RlIGNhbGxlZCBBdXRvIEZpbGwgbW9kZSBzcGxpdHMgbGluZXMgYXV0b21hdGljYWxseSB3aGVu IHRoZXkKZ2V0IHRvbyBsb25nICgqbm90ZSBGaWxsaW5nOjopLiAgVGhlIG1pbm9yIG1vZGUgY2Fs bGVkIE92ZXJ3cml0ZSBtb2RlCmNhdXNlcyBpbnNlcnRlZCBjaGFyYWN0ZXJzIHRvIHJlcGxhY2Ug KG92ZXJ3cml0ZSkgZXhpc3RpbmcgdGV4dCwgaW5zdGVhZApvZiBzaG92aW5nIGl0IHRvIHRoZSBy aWdodC4gICpOb3RlIE1pbm9yIE1vZGVzOjouCgogICBPbmx5IGdyYXBoaWMgY2hhcmFjdGVycyBj YW4gYmUgaW5zZXJ0ZWQgYnkgdHlwaW5nIHRoZSBhc3NvY2lhdGVkIGtleTsKb3RoZXIga2V5cyBh Y3QgYXMgZWRpdGluZyBjb21tYW5kcyBhbmQgZG8gbm90IGluc2VydCB0aGVtc2VsdmVzLiAgRm9y Cmluc3RhbmNlLCA8REVMPiBydW5zIHRoZSBjb21tYW5kIOKAmGRlbGV0ZS1iYWNrd2FyZC1jaGFy 4oCZIGJ5IGRlZmF1bHQgKHNvbWUKbW9kZXMgYmluZCBpdCB0byBhIGRpZmZlcmVudCBjb21tYW5k KTsgaXQgZG9lcyBub3QgaW5zZXJ0IGEgbGl0ZXJhbArigJhERUzigJkgY2hhcmFjdGVyIChBU0NJ SSBjaGFyYWN0ZXIgY29kZSAxMjcpLgoKICAgVG8gaW5zZXJ0IGEgbm9uLWdyYXBoaWMgY2hhcmFj dGVyLCBvciBhIGNoYXJhY3RlciB0aGF0IHlvdXIga2V5Ym9hcmQKZG9lcyBub3Qgc3VwcG9ydCwg Zmlyc3QgInF1b3RlIiBpdCBieSB0eXBpbmcg4oCYQy1x4oCZICjigJhxdW90ZWQtaW5zZXJ04oCZ KS4KVGhlcmUgYXJlIHR3byB3YXlzIHRvIHVzZSDigJhDLXHigJk6CgogICDigKIg4oCYQy1x4oCZ IGZvbGxvd2VkIGJ5IGFueSBub24tZ3JhcGhpYyBjaGFyYWN0ZXIgKGV2ZW4g4oCYQy1n4oCZKSBp bnNlcnRzCiAgICAgdGhhdCBjaGFyYWN0ZXIuICBGb3IgaW5zdGFuY2UsIOKAmEMtcSA8REVMPuKA mSBpbnNlcnRzIGEgbGl0ZXJhbCDigJhERUzigJkKICAgICBjaGFyYWN0ZXIuCgogICDigKIg4oCY Qy1x4oCZIGZvbGxvd2VkIGJ5IGEgc2VxdWVuY2Ugb2Ygb2N0YWwgZGlnaXRzIGluc2VydHMgdGhl IGNoYXJhY3RlcgogICAgIHdpdGggdGhlIHNwZWNpZmllZCBvY3RhbCBjaGFyYWN0ZXIgY29kZS4g IFlvdSBjYW4gdXNlIGFueSBudW1iZXIgb2YKICAgICBvY3RhbCBkaWdpdHM7IGFueSBub24tZGln aXQgdGVybWluYXRlcyB0aGUgc2VxdWVuY2UuICBJZiB0aGUKICAgICB0ZXJtaW5hdGluZyBjaGFy YWN0ZXIgaXMgPFJFVD4sIHRoYXQgPFJFVD4gc2VydmVzIG9ubHkgdG8gdGVybWluYXRlCiAgICAg dGhlIHNlcXVlbmNlLiAgQW55IG90aGVyIG5vbi1kaWdpdCB0ZXJtaW5hdGVzIHRoZSBzZXF1ZW5j ZSBhbmQgdGhlbgogICAgIGFjdHMgYXMgbm9ybWFsIGlucHV04oCUdGh1cywg4oCYQy1xIDEgMCAx IELigJkgaW5zZXJ0cyDigJhBQuKAmS4KCiAgICAgVGhlIHVzZSBvZiBvY3RhbCBzZXF1ZW5jZXMg aXMgZGlzYWJsZWQgaW4gb3JkaW5hcnkgbm9uLWJpbmFyeQogICAgIE92ZXJ3cml0ZSBtb2RlLCB0 byBnaXZlIHlvdSBhIGNvbnZlbmllbnQgd2F5IHRvIGluc2VydCBhIGRpZ2l0CiAgICAgaW5zdGVh ZCBvZiBvdmVyd3JpdGluZyB3aXRoIGl0LgoKVG8gdXNlIGRlY2ltYWwgb3IgaGV4YWRlY2ltYWwg aW5zdGVhZCBvZiBvY3RhbCwgc2V0IHRoZSB2YXJpYWJsZQrigJhyZWFkLXF1b3RlZC1jaGFyLXJh ZGl44oCZIHRvIDEwIG9yIDE2LiAgSWYgdGhlIHJhZGl4IGlzIDE2LCB0aGUgbGV0dGVycwrigJhh 4oCZIHRvIOKAmGbigJkgc2VydmUgYXMgcGFydCBvZiBhIGNoYXJhY3RlciBjb2RlLCBqdXN0IGxp a2UgZGlnaXRzLiAgQ2FzZSBpcwppZ25vcmVkLgoKICAgQSBmZXcgY29tbW9uIFVuaWNvZGUgY2hh cmFjdGVycyBjYW4gYmUgaW5zZXJ0ZWQgdmlhIGEgY29tbWFuZApzdGFydGluZyB3aXRoIOKAmEMt eCA44oCZLiAgRm9yIGV4YW1wbGUsIOKAmEMteCA4IFvigJkgaW5zZXJ0cyDigJggd2hpY2ggaXMK VW5pY29kZSBjb2RlLXBvaW50IOKAmFUrMjAxOOKAmSBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFS Sywgc29tZXRpbWVzIGNhbGxlZAphIGxlZnQgc2luZ2xlIOKAnGN1cnZlZCBxdW90ZeKAnSBvciDi gJxjdXJseSBxdW90ZeKAnS4gIFNpbWlsYXJseSwg4oCYQy14IDggXeKAmSwK4oCYQy14IDgge+KA mSBhbmQg4oCYQy14IDggfeKAmSBpbnNlcnQgdGhlIGN1cnZlZCBxdW90ZXMg4oCZLCDigJwgYW5k IOKAnSwKcmVzcGVjdGl2ZWx5LiAgQWxzbywgYSB3b3JraW5nIEFsdCBrZXkgYWN0cyBsaWtlIOKA mEMteCA44oCZOyBlLmcuLCDigJhBLVvigJkKYWN0cyBsaWtlIOKAmEMteCA4IFvigJkgYW5kIGlu c2VydHMg4oCYLiAgVG8gc2VlIHdoaWNoIGNoYXJhY3RlcnMgaGF2ZSDigJhDLXggOOKAmQpzaG9y dGhhbmRzLCB0eXBlIOKAmEMteCA4IEMtaOKAmS4KCiAgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4g dXNlIHRoZSBjb21tYW5kIOKAmEMteCA4IDxSRVQ+4oCZICjigJhpbnNlcnQtY2hhcuKAmSkuClRo aXMgcHJvbXB0cyBmb3IgdGhlIFVuaWNvZGUgbmFtZSBvciBjb2RlLXBvaW50IG9mIGEgY2hhcmFj dGVyLCB1c2luZwp0aGUgbWluaWJ1ZmZlci4gIElmIHlvdSBlbnRlciBhIG5hbWUsIHRoZSBjb21t YW5kIHByb3ZpZGVzIGNvbXBsZXRpb24KKCpub3RlIENvbXBsZXRpb246OikuICBJZiB5b3UgZW50 ZXIgYSBjb2RlLXBvaW50LCBpdCBzaG91bGQgYmUgYXMgYQpoZXhhZGVjaW1hbCBudW1iZXIgKHRo ZSBjb252ZW50aW9uIGZvciBVbmljb2RlKSwgb3IgYSBudW1iZXIgd2l0aCBhCnNwZWNpZmllZCBy YWRpeCwgZS5nLiwg4oCYI28yMzA3MuKAmSAob2N0YWwpOyAqTm90ZSAoZWxpc3ApSW50ZWdlciBC YXNpY3M6Oi4KVGhlIGNvbW1hbmQgdGhlbiBpbnNlcnRzIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJh Y3RlciBpbnRvIHRoZSBidWZmZXIuCgogICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBhbGwg aW5zZXJ0IHRoZSBzYW1lIGNoYXJhY3RlcjoKCiAgICAgQy14IDggPFJFVD4gbGVmdCBzaW5nbGUg cXVvdGF0aW9uIG1hcmsgPFJFVD4KICAgICBDLXggOCA8UkVUPiBsZWZ0IHNpbiA8VEFCPiA8UkVU PgogICAgIEMteCA4IDxSRVQ+IDIwMTggPFJFVD4KICAgICBDLXggOCBbCiAgICAgQS1bICAoaWYg dGhlIEFsdCBrZXkgd29ya3MpCiAgICAgYCAgICAoaW4gRWxlY3RyaWMgUXVvdGUgbW9kZSkKCiAg IEEgbnVtZXJpYyBhcmd1bWVudCB0byDigJhDLXHigJkgb3Ig4oCYQy14IDggLi4u4oCZIHNwZWNp ZmllcyBob3cgbWFueSBjb3BpZXMKb2YgdGhlIGNoYXJhY3RlciB0byBpbnNlcnQgKCpub3RlIEFy Z3VtZW50czo6KS4KCiAgIEluIGFkZGl0aW9uLCBpbiBzb21lIGNvbnRleHRzLCBpZiB5b3UgdHlw ZSBhIHF1b3RhdGlvbiB1c2luZyBncmF2ZQphY2NlbnQgYW5kIGFwb3N0cm9waGUgYGxpa2UgdGhp cycsIGl0IGlzIGNvbnZlcnRlZCB0byBhIGZvcm0g4oCYbGlrZSB0aGlz4oCZCnVzaW5nIHNpbmds ZSBxdW90YXRpb24gbWFya3MsIGV2ZW4gd2l0aG91dCDigJhDLXggOOKAmSBjb21tYW5kcy4gIFNp bWlsYXJseSwKdHlwaW5nIGEgcXVvdGF0aW9uIGBgbGlrZSB0aGlzJycgdXNpbmcgZG91YmxlIGdy YXZlIGFjY2VudCBhbmQKYXBvc3Ryb3BoZSBjb252ZXJ0cyBpdCB0byBhIGZvcm0g4oCcbGlrZSB0 aGlz4oCdIHVzaW5nIGRvdWJsZSBxdW90YXRpb24KbWFya3MuICAqTm90ZSBRdW90YXRpb24gTWFy a3M6Oi4KCgoqKiA3LjIgQ2hhbmdpbmcgdGhlIExvY2F0aW9uIG9mIFBvaW50CgpUbyBkbyBtb3Jl IHRoYW4gaW5zZXJ0IGNoYXJhY3RlcnMsIHlvdSBoYXZlIHRvIGtub3cgaG93IHRvIG1vdmUgcG9p bnQKKCpub3RlIFBvaW50OjopLiAgVGhlIGtleWJvYXJkIGNvbW1hbmRzIOKAmEMtZuKAmSwg4oCY Qy1i4oCZLCDigJhDLW7igJksIGFuZCDigJhDLXDigJkKbW92ZSBwb2ludCB0byB0aGUgcmlnaHQs IGxlZnQsIGRvd24sIGFuZCB1cCwgcmVzcGVjdGl2ZWx5LiAgWW91IGNhbiBhbHNvCm1vdmUgcG9p bnQgdXNpbmcgdGhlICJhcnJvdyBrZXlzIiBwcmVzZW50IG9uIG1vc3Qga2V5Ym9hcmRzOiA8UklH SFQ+LAo8TEVGVD4sIDxET1dOPiwgYW5kIDxVUD47IGhvd2V2ZXIsIG1hbnkgRW1hY3MgdXNlcnMg ZmluZCB0aGF0IGl0IGlzCnNsb3dlciB0byB1c2UgdGhlIGFycm93IGtleXMgdGhhbiB0aGUgY29u dHJvbCBrZXlzLCBiZWNhdXNlIHlvdSBuZWVkIHRvCm1vdmUgeW91ciBoYW5kIHRvIHRoZSBhcmVh IG9mIHRoZSBrZXlib2FyZCB3aGVyZSB0aG9zZSBrZXlzIGFyZSBsb2NhdGVkLgoKICAgWW91IGNh biBhbHNvIGNsaWNrIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbiB0byBtb3ZlIHBvaW50IHRvIHRoZQpw b3NpdGlvbiBjbGlja2VkLiAgRW1hY3MgYWxzbyBwcm92aWRlcyBhIHZhcmlldHkgb2YgYWRkaXRp b25hbCBrZXlib2FyZApjb21tYW5kcyB0aGF0IG1vdmUgcG9pbnQgaW4gbW9yZSBzb3BoaXN0aWNh dGVkIHdheXMuCgrigJhDLWbigJkKICAgICBNb3ZlIGZvcndhcmQgb25lIGNoYXJhY3RlciAo4oCY Zm9yd2FyZC1jaGFy4oCZKS4KCuKAmDxSSUdIVD7igJkKICAgICBUaGlzIGNvbW1hbmQgKOKAmHJp Z2h0LWNoYXLigJkpIGJlaGF2ZXMgbGlrZSDigJhDLWbigJksIGV4Y2VwdCB3aGVuIHBvaW50CiAg ICAgaXMgaW4gYSByaWdodC10by1sZWZ0IHBhcmFncmFwaCAoKm5vdGUgQmlkaXJlY3Rpb25hbCBF ZGl0aW5nOjopLgoK4oCYQy1i4oCZCiAgICAgTW92ZSBiYWNrd2FyZCBvbmUgY2hhcmFjdGVyICji gJhiYWNrd2FyZC1jaGFy4oCZKS4KCuKAmDxMRUZUPuKAmQogICAgIFRoaXMgY29tbWFuZCAo4oCY bGVmdC1jaGFy4oCZKSBiZWhhdmVzIGxpa2Ug4oCYQy1i4oCZLCBleGNlcHQgaWYgdGhlCiAgICAg Y3VycmVudCBwYXJhZ3JhcGggaXMgcmlnaHQtdG8tbGVmdCAoKm5vdGUgQmlkaXJlY3Rpb25hbCBF ZGl0aW5nOjopLgoK4oCYQy1u4oCZCuKAmDxET1dOPuKAmQogICAgIE1vdmUgZG93biBvbmUgc2Ny ZWVuIGxpbmUgKOKAmG5leHQtbGluZeKAmSkuICBUaGlzIGNvbW1hbmQgYXR0ZW1wdHMgdG8KICAg ICBrZWVwIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIHVuY2hhbmdlZCwgc28gaWYgeW91IHN0YXJ0 IGluIHRoZQogICAgIG1pZGRsZSBvZiBvbmUgbGluZSwgeW91IG1vdmUgdG8gdGhlIG1pZGRsZSBv ZiB0aGUgbmV4dC4KCuKAmEMtcOKAmQrigJg8VVA+4oCZCiAgICAgTW92ZSB1cCBvbmUgc2NyZWVu IGxpbmUgKOKAmHByZXZpb3VzLWxpbmXigJkpLiAgVGhpcyBjb21tYW5kIHByZXNlcnZlcwogICAg IHBvc2l0aW9uIHdpdGhpbiB0aGUgbGluZSwgbGlrZSDigJhDLW7igJkuCgrigJhDLWHigJkK4oCY PEhvbWU+4oCZCiAgICAgTW92ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lICjigJhtb3Zl LWJlZ2lubmluZy1vZi1saW5l4oCZKS4KCuKAmEMtZeKAmQrigJg8RW5kPuKAmQogICAgIE1vdmUg dG8gdGhlIGVuZCBvZiB0aGUgbGluZSAo4oCYbW92ZS1lbmQtb2YtbGluZeKAmSkuCgrigJhNLWbi gJkKICAgICBNb3ZlIGZvcndhcmQgb25lIHdvcmQgKOKAmGZvcndhcmQtd29yZOKAmSkuICAqTm90 ZSBXb3Jkczo6LgoK4oCYQy08UklHSFQ+4oCZCuKAmE0tPFJJR0hUPuKAmQogICAgIFRoaXMgY29t bWFuZCAo4oCYcmlnaHQtd29yZOKAmSkgYmVoYXZlcyBsaWtlIOKAmE0tZuKAmSwgZXhjZXB0IGl0 IG1vdmVzCiAgICAgX2JhY2t3YXJkXyBieSBvbmUgd29yZCBpZiB0aGUgY3VycmVudCBwYXJhZ3Jh cGggaXMgcmlnaHQtdG8tbGVmdC4KICAgICAqTm90ZSBCaWRpcmVjdGlvbmFsIEVkaXRpbmc6Oi4K CuKAmE0tYuKAmQogICAgIE1vdmUgYmFja3dhcmQgb25lIHdvcmQgKOKAmGJhY2t3YXJkLXdvcmTi gJkpLiAgKk5vdGUgV29yZHM6Oi4KCuKAmEMtPExFRlQ+4oCZCuKAmE0tPExFRlQ+4oCZCiAgICAg VGhpcyBjb21tYW5kICjigJhsZWZ0LXdvcmTigJkpIGJlaGF2ZXMgbGlrZSDigJhNLWLigJksIGV4 Y2VwdCBpdCBtb3ZlcwogICAgIF9mb3J3YXJkXyBieSBvbmUgd29yZCBpZiB0aGUgY3VycmVudCBw YXJhZ3JhcGggaXMgcmlnaHQtdG8tbGVmdC4KICAgICAqTm90ZSBCaWRpcmVjdGlvbmFsIEVkaXRp bmc6Oi4KCuKAmE0tcuKAmQogICAgIFdpdGhvdXQgbW92aW5nIHRoZSB0ZXh0IG9uIHRoZSBzY3Jl ZW4sIHJlcG9zaXRpb24gcG9pbnQgb24gdGhlIGxlZnQKICAgICBtYXJnaW4gb2YgdGhlIGNlbnRl ci1tb3N0IHRleHQgbGluZSBvZiB0aGUgd2luZG93OyBvbiBzdWJzZXF1ZW50CiAgICAgY29uc2Vj dXRpdmUgaW52b2NhdGlvbnMsIG1vdmUgcG9pbnQgdG8gdGhlIGxlZnQgbWFyZ2luIG9mIHRoZQog ICAgIHRvcC1tb3N0IGxpbmUsIHRoZSBib3R0b20tbW9zdCBsaW5lLCBhbmQgc28gZm9ydGgsIGlu IGN5Y2xpYyBvcmRlcgogICAgICjigJhtb3ZlLXRvLXdpbmRvdy1saW5lLXRvcC1ib3R0b23igJkp LgoKICAgICBBIG51bWVyaWMgYXJndW1lbnQgc2F5cyB3aGljaCBzY3JlZW4gbGluZSB0byBwbGFj ZSBwb2ludCBvbiwKICAgICBjb3VudGluZyBkb3dud2FyZCBmcm9tIHRoZSB0b3Agb2YgdGhlIHdp bmRvdyAoemVybyBtZWFucyB0aGUgdG9wCiAgICAgbGluZSkuICBBIG5lZ2F0aXZlIGFyZ3VtZW50 IGNvdW50cyBsaW5lcyB1cCBmcm9tIHRoZSBib3R0b20gKOKIkjEKICAgICBtZWFucyB0aGUgYm90 dG9tIGxpbmUpLiAgKk5vdGUgQXJndW1lbnRzOjosIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uCiAg ICAgbnVtZXJpYyBhcmd1bWVudHMuCgrigJhNLTzigJkKICAgICBNb3ZlIHRvIHRoZSB0b3Agb2Yg dGhlIGJ1ZmZlciAo4oCYYmVnaW5uaW5nLW9mLWJ1ZmZlcuKAmSkuICBXaXRoCiAgICAgbnVtZXJp YyBhcmd1bWVudCBOLCBtb3ZlIHRvIE4vMTAgb2YgdGhlIHdheSBmcm9tIHRoZSB0b3AuICBPbgog ICAgIGdyYXBoaWNhbCBkaXNwbGF5cywg4oCYQy08SE9NRT7igJkgZG9lcyB0aGUgc2FtZS4KCuKA mE0tPuKAmQogICAgIE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgYnVmZmVyICjigJhlbmQtb2YtYnVm ZmVy4oCZKS4gIE9uIGdyYXBoaWNhbAogICAgIGRpc3BsYXlzLCDigJhDLTxFTkQ+4oCZIGRvZXMg dGhlIHNhbWUuCgrigJhDLXbigJkK4oCYPFBhZ2VEb3duPuKAmQrigJg8bmV4dD7igJkKICAgICBT Y3JvbGwgdGhlIGRpc3BsYXkgb25lIHNjcmVlbiBmb3J3YXJkLCBhbmQgbW92ZSBwb2ludCBvbnNj cmVlbiBpZgogICAgIG5lY2Vzc2FyeSAo4oCYc2Nyb2xsLXVwLWNvbW1hbmTigJkpLiAgKk5vdGUg U2Nyb2xsaW5nOjouCgrigJhNLXbigJkK4oCYPFBhZ2VVcD7igJkK4oCYPHByaW9yPuKAmQogICAg IFNjcm9sbCBvbmUgc2NyZWVuIGJhY2t3YXJkLCBhbmQgbW92ZSBwb2ludCBvbnNjcmVlbiBpZiBu ZWNlc3NhcnkKICAgICAo4oCYc2Nyb2xsLWRvd24tY29tbWFuZOKAmSkuICAqTm90ZSBTY3JvbGxp bmc6Oi4KCuKAmE0tZyBj4oCZCiAgICAgUmVhZCBhIG51bWJlciBOIGFuZCBtb3ZlIHBvaW50IHRv IGJ1ZmZlciBwb3NpdGlvbiBOLiAgUG9zaXRpb24gMSBpcwogICAgIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGJ1ZmZlci4KCuKAmE0tZyBNLWfigJkK4oCYTS1nIGfigJkKICAgICBSZWFkIGEgbnVtYmVy IE4gYW5kIG1vdmUgcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiBsaW5lIG51bWJlciBOCiAgICAg KOKAmGdvdG8tbGluZeKAmSkuICBMaW5lIDEgaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgYnVmZmVy LiAgSWYgcG9pbnQgaXMKICAgICBvbiBvciBqdXN0IGFmdGVyIGEgbnVtYmVyIGluIHRoZSBidWZm ZXIsIHRoYXQgaXMgdGhlIGRlZmF1bHQgZm9yIE4uCiAgICAgSnVzdCB0eXBlIDxSRVQ+IGluIHRo ZSBtaW5pYnVmZmVyIHRvIHVzZSBpdC4gIFlvdSBjYW4gYWxzbyBzcGVjaWZ5CiAgICAgTiBieSBn aXZpbmcg4oCYTS1nIE0tZ+KAmSBhIG51bWVyaWMgcHJlZml4IGFyZ3VtZW50LiAgKk5vdGUgU2Vs ZWN0CiAgICAgQnVmZmVyOjosIGZvciB0aGUgYmVoYXZpb3Igb2Yg4oCYTS1nIE0tZ+KAmSB3aGVu IHlvdSBnaXZlIGl0IGEgcGxhaW4KICAgICBwcmVmaXggYXJndW1lbnQuCgrigJhNLWcgPFRBQj7i gJkKICAgICBSZWFkIGEgbnVtYmVyIE4gYW5kIG1vdmUgdG8gY29sdW1uIE4gaW4gdGhlIGN1cnJl bnQgbGluZS4gIENvbHVtbiAwCiAgICAgaXMgdGhlIGxlZnRtb3N0IGNvbHVtbi4gIElmIGNhbGxl ZCB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBtb3ZlIHRvCiAgICAgdGhlIGNvbHVtbiBudW1iZXIg c3BlY2lmaWVkIGJ5IHRoZSBhcmd1bWVudOKAmXMgbnVtZXJpYyB2YWx1ZS4KCuKAmEMteCBDLW7i gJkKICAgICBVc2UgdGhlIGN1cnJlbnQgY29sdW1uIG9mIHBvaW50IGFzIHRoZSAic2VtaXBlcm1h bmVudCBnb2FsIGNvbHVtbiIKICAgICBmb3Ig4oCYQy1u4oCZIGFuZCDigJhDLXDigJkgKOKAmHNl dC1nb2FsLWNvbHVtbuKAmSkgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLgogICAgIFdoZW4gYSBzZW1p cGVybWFuZW50IGdvYWwgY29sdW1uIGlzIGluIGVmZmVjdCwgdGhvc2UgY29tbWFuZHMKICAgICBh bHdheXMgdHJ5IHRvIG1vdmUgdG8gdGhpcyBjb2x1bW4sIG9yIGFzIGNsb3NlIGFzIHBvc3NpYmxl IHRvIGl0LAogICAgIGFmdGVyIG1vdmluZyB2ZXJ0aWNhbGx5LiAgVGhlIGdvYWwgY29sdW1uIHJl bWFpbnMgaW4gZWZmZWN0IHVudGlsCiAgICAgY2FuY2VsZWQuCgrigJhDLXUgQy14IEMtbuKAmQog ICAgIENhbmNlbCB0aGUgZ29hbCBjb2x1bW4uICBIZW5jZWZvcnRoLCDigJhDLW7igJkgYW5kIOKA mEMtcOKAmSB0cnkgdG8KICAgICBwcmVzZXJ2ZSB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiwgYXMg dXN1YWwuCgogICBXaGVuIGEgbGluZSBvZiB0ZXh0IGluIHRoZSBidWZmZXIgaXMgbG9uZ2VyIHRo YW4gdGhlIHdpZHRoIG9mIHRoZQp3aW5kb3csIEVtYWNzIHVzdWFsbHkgZGlzcGxheXMgaXQgb24g dHdvIG9yIG1vcmUgInNjcmVlbiBsaW5lcyIuICBGb3IKY29udmVuaWVuY2UsIOKAmEMtbuKAmSBh bmQg4oCYQy1w4oCZIG1vdmUgcG9pbnQgYnkgc2NyZWVuIGxpbmVzLCBhcyBkbyB0aGUKZXF1aXZh bGVudCBrZXlzIOKAmDxkb3duPuKAmSBhbmQg4oCYPHVwPuKAmS4gIFlvdSBjYW4gZm9yY2UgdGhl c2UgY29tbWFuZHMgdG8KbW92ZSBhY2NvcmRpbmcgdG8gImxvZ2ljYWwgbGluZXMiIChpLmUuLCBh Y2NvcmRpbmcgdG8gdGhlIHRleHQgbGluZXMgaW4KdGhlIGJ1ZmZlcikgYnkgc2V0dGluZyB0aGUg dmFyaWFibGUg4oCYbGluZS1tb3ZlLXZpc3VhbOKAmSB0byDigJhuaWzigJk7IGlmIGEKbG9naWNh bCBsaW5lIG9jY3VwaWVzIG11bHRpcGxlIHNjcmVlbiBsaW5lcywgdGhlIGN1cnNvciB0aGVuIHNr aXBzIG92ZXIKdGhlIGFkZGl0aW9uYWwgc2NyZWVuIGxpbmVzLiAgRm9yIGRldGFpbHMsIHNlZSAq bm90ZSBDb250aW51YXRpb24KTGluZXM6Oi4gICpOb3RlIFZhcmlhYmxlczo6LCBmb3IgaG93IHRv IHNldCB2YXJpYWJsZXMgc3VjaCBhcwrigJhsaW5lLW1vdmUtdmlzdWFs4oCZLgoKICAgVW5saWtl IOKAmEMtbuKAmSBhbmQg4oCYQy1w4oCZLCBtb3N0IG9mIHRoZSBFbWFjcyBjb21tYW5kcyB0aGF0 IHdvcmsgb24gbGluZXMKd29yayBvbiBfbG9naWNhbF8gbGluZXMuICBGb3IgaW5zdGFuY2UsIOKA mEMtYeKAmSAo4oCYbW92ZS1iZWdpbm5pbmctb2YtbGluZeKAmSkKYW5kIOKAmEMtZeKAmSAo4oCY bW92ZS1lbmQtb2YtbGluZeKAmSkgcmVzcGVjdGl2ZWx5IG1vdmUgdG8gdGhlIGJlZ2lubmluZyBh bmQKZW5kIG9mIHRoZSBsb2dpY2FsIGxpbmUuICBXaGVuZXZlciB3ZSBlbmNvdW50ZXIgY29tbWFu ZHMgdGhhdCB3b3JrIG9uCnNjcmVlbiBsaW5lcywgc3VjaCBhcyDigJhDLW7igJkgYW5kIOKAmEMt cOKAmSwgd2Ugd2lsbCBwb2ludCB0aGVzZSBvdXQuCgogICBXaGVuIOKAmGxpbmUtbW92ZS12aXN1 YWzigJkgaXMg4oCYbmls4oCZLCB5b3UgY2FuIGFsc28gc2V0IHRoZSB2YXJpYWJsZQrigJh0cmFj ay1lb2zigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLiAgVGhlbiDigJhDLW7igJkgYW5kIOKA mEMtcOKAmSwgd2hlbiBzdGFydGluZwphdCB0aGUgZW5kIG9mIHRoZSBsb2dpY2FsIGxpbmUsIG1v dmUgdG8gdGhlIGVuZCBvZiB0aGUgbmV4dCBsb2dpY2FsCmxpbmUuICBOb3JtYWxseSwg4oCYdHJh Y2stZW9s4oCZIGlzIOKAmG5pbOKAmS4KCiAgIOKAmEMtbuKAmSBub3JtYWxseSBzdG9wcyBhdCB0 aGUgZW5kIG9mIHRoZSBidWZmZXIgd2hlbiB5b3UgdXNlIGl0IG9uIHRoZQpsYXN0IGxpbmUgaW4g dGhlIGJ1ZmZlci4gIEhvd2V2ZXIsIGlmIHlvdSBzZXQgdGhlIHZhcmlhYmxlCuKAmG5leHQtbGlu ZS1hZGQtbmV3bGluZXPigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLCDigJhDLW7igJkgb24g dGhlIGxhc3QgbGluZSBvZgphIGJ1ZmZlciBjcmVhdGVzIGFuIGFkZGl0aW9uYWwgbGluZSBhdCB0 aGUgZW5kIGFuZCBtb3ZlcyBkb3duIGludG8gaXQuCgoKKiogNy4zIEVyYXNpbmcgVGV4dAoK4oCY PERFTD7igJkK4oCYPEJBQ0tTUEFDRT7igJkKICAgICBEZWxldGUgdGhlIGNoYXJhY3RlciBiZWZv cmUgcG9pbnQsIG9yIHRoZSByZWdpb24gaWYgaXQgaXMgYWN0aXZlCiAgICAgKOKAmGRlbGV0ZS1i YWNrd2FyZC1jaGFy4oCZKS4KCuKAmDxEZWxldGU+4oCZCiAgICAgRGVsZXRlIHRoZSBjaGFyYWN0 ZXIgYWZ0ZXIgcG9pbnQsIG9yIHRoZSByZWdpb24gaWYgaXQgaXMgYWN0aXZlCiAgICAgKOKAmGRl bGV0ZS1mb3J3YXJkLWNoYXLigJkpLgoK4oCYQy1k4oCZCiAgICAgRGVsZXRlIHRoZSBjaGFyYWN0 ZXIgYWZ0ZXIgcG9pbnQgKOKAmGRlbGV0ZS1jaGFy4oCZKS4KCuKAmEMta+KAmQogICAgIEtpbGwg dG8gdGhlIGVuZCBvZiB0aGUgbGluZSAo4oCYa2lsbC1saW5l4oCZKS4KCuKAmE0tZOKAmQogICAg IEtpbGwgZm9yd2FyZCB0byB0aGUgZW5kIG9mIHRoZSBuZXh0IHdvcmQgKOKAmGtpbGwtd29yZOKA mSkuCgrigJhNLTxERUw+4oCZCuKAmE0tPEJBQ0tTUEFDRT7igJkKICAgICBLaWxsIGJhY2sgdG8g dGhlIGJlZ2lubmluZyBvZiB0aGUgcHJldmlvdXMgd29yZAogICAgICjigJhiYWNrd2FyZC1raWxs LXdvcmTigJkpLgoKICAgVGhlIOKAmDxERUw+4oCZICjigJhkZWxldGUtYmFja3dhcmQtY2hhcuKA mSkgY29tbWFuZCByZW1vdmVzIHRoZSBjaGFyYWN0ZXIKYmVmb3JlIHBvaW50LCBtb3ZpbmcgdGhl IGN1cnNvciBhbmQgdGhlIGNoYXJhY3RlcnMgYWZ0ZXIgaXQgYmFja3dhcmRzLgpJZiBwb2ludCB3 YXMgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsIHRoaXMgZGVsZXRlcyB0aGUgcHJlY2VkaW5n Cm5ld2xpbmUsIGpvaW5pbmcgdGhpcyBsaW5lIHRvIHRoZSBwcmV2aW91cyBvbmUuCgogICBJZiwg aG93ZXZlciwgdGhlIHJlZ2lvbiBpcyBhY3RpdmUsIOKAmDxERUw+4oCZIGluc3RlYWQgZGVsZXRl cyB0aGUgdGV4dAppbiB0aGUgcmVnaW9uLiAgKk5vdGUgTWFyazo6LCBmb3IgYSBkZXNjcmlwdGlv biBvZiB0aGUgcmVnaW9uLgoKICAgT24gbW9zdCBrZXlib2FyZHMsIDxERUw+IGlzIGxhYmVsZWQg PEJBQ0tTUEFDRT4sIGJ1dCB3ZSByZWZlciB0byBpdAphcyA8REVMPiBpbiB0aGlzIG1hbnVhbC4g IChEbyBub3QgY29uZnVzZSA8REVMPiB3aXRoIHRoZSA8RGVsZXRlPiBrZXk7CndlIHdpbGwgZGlz Y3VzcyA8RGVsZXRlPiBtb21lbnRhcmlseS4pICBPbiBzb21lIHRleHQgdGVybWluYWxzLCBFbWFj cwptYXkgbm90IHJlY29nbml6ZSB0aGUgPERFTD4ga2V5IHByb3Blcmx5LiAgKk5vdGUgREVMIERv ZXMgTm90IERlbGV0ZTo6LAppZiB5b3UgZW5jb3VudGVyIHRoaXMgcHJvYmxlbS4KCiAgIFRoZSA8 RGVsZXRlPiAo4oCYZGVsZXRlLWZvcndhcmQtY2hhcuKAmSkgY29tbWFuZCBkZWxldGVzIGluIHRo ZSBvcHBvc2l0ZQpkaXJlY3Rpb246IGl0IGRlbGV0ZXMgdGhlIGNoYXJhY3RlciBhZnRlciBwb2lu dCwgaS5lLiwgdGhlIGNoYXJhY3Rlcgp1bmRlciB0aGUgY3Vyc29yLiAgSWYgcG9pbnQgd2FzIGF0 IHRoZSBlbmQgb2YgYSBsaW5lLCB0aGlzIGpvaW5zIHRoZQpmb2xsb3dpbmcgbGluZSBvbnRvIHRo aXMgb25lLiAgTGlrZSDigJg8REVMPuKAmSwgaXQgZGVsZXRlcyB0aGUgdGV4dCBpbiB0aGUKcmVn aW9uIGlmIHRoZSByZWdpb24gaXMgYWN0aXZlICgqbm90ZSBNYXJrOjopLgoKICAg4oCYQy1k4oCZ ICjigJhkZWxldGUtY2hhcuKAmSkgZGVsZXRlcyB0aGUgY2hhcmFjdGVyIGFmdGVyIHBvaW50LCBz aW1pbGFyIHRvCjxEZWxldGU+LCBidXQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSByZWdpb24g aXMgYWN0aXZlLgoKICAgKk5vdGUgRGVsZXRpb246OiwgZm9yIG1vcmUgZGV0YWlsZWQgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIGFib3ZlCmRlbGV0aW9uIGNvbW1hbmRzLgoKICAg4oCYQy1r4oCZICji gJhraWxsLWxpbmXigJkpIGVyYXNlcyAoa2lsbHMpIGEgbGluZSBhdCBhIHRpbWUuICBJZiB5b3Ug dHlwZQrigJhDLWvigJkgYXQgdGhlIGJlZ2lubmluZyBvciBtaWRkbGUgb2YgYSBsaW5lLCBpdCBr aWxscyBhbGwgdGhlIHRleHQgdXAgdG8KdGhlIGVuZCBvZiB0aGUgbGluZS4gIElmIHlvdSB0eXBl IOKAmEMta+KAmSBhdCB0aGUgZW5kIG9mIGEgbGluZSwgaXQgam9pbnMKdGhhdCBsaW5lIHdpdGgg dGhlIGZvbGxvd2luZyBsaW5lLgoKICAgKk5vdGUgS2lsbGluZzo6LCBmb3IgbW9yZSBpbmZvcm1h dGlvbiBhYm91dCDigJhDLWvigJkgYW5kIHJlbGF0ZWQKY29tbWFuZHMuCgoKKiogNy40IFVuZG9p bmcgQ2hhbmdlcwoK4oCYQy0v4oCZCuKAmEMteCB14oCZCuKAmEMtX+KAmQogICAgIFVuZG8gb25l IGVudHJ5IG9mIHRoZSB1bmRvIHJlY29yZHPigJR1c3VhbGx5LCBvbmUgY29tbWFuZCB3b3J0aAog ICAgICjigJh1bmRv4oCZKS4gIChUaGUgZmlyc3Qga2V5IG1pZ2h0IGJlIHVuYXZhaWxhYmxlIG9u IHRleHQtbW9kZQogICAgIGRpc3BsYXlzLikKCiAgIEVtYWNzIHJlY29yZHMgYSBsaXN0IG9mIGNo YW5nZXMgbWFkZSBpbiB0aGUgYnVmZmVyIHRleHQsIHNvIHlvdSBjYW4KdW5kbyByZWNlbnQgY2hh bmdlcy4gIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUg4oCYdW5kb+KAmSBjb21tYW5kLCB3aGljaCBp cwpib3VuZCB0byDigJhDLS/igJkgKGFzIHdlbGwgYXMg4oCYQy14IHXigJkgYW5kIOKAmEMtX+KA mSkuICBOb3JtYWxseSwgdGhpcyBjb21tYW5kCnVuZG9lcyB0aGUgbGFzdCBjaGFuZ2UsIG1vdmlu ZyBwb2ludCBiYWNrIHRvIHdoZXJlIGl0IHdhcyBiZWZvcmUgdGhlCmNoYW5nZS4gIFRoZSB1bmRv IGNvbW1hbmQgYXBwbGllcyBvbmx5IHRvIGNoYW5nZXMgaW4gdGhlIGJ1ZmZlcjsgeW91CmNhbuKA mXQgdXNlIGl0IHRvIHVuZG8gY3Vyc29yIG1vdGlvbi4KCiAgIEFsdGhvdWdoIGVhY2ggZWRpdGlu ZyBjb21tYW5kIHVzdWFsbHkgbWFrZXMgYSBzZXBhcmF0ZSBlbnRyeSBpbiB0aGUKdW5kbyByZWNv cmRzLCB2ZXJ5IHNpbXBsZSBjb21tYW5kcyBtYXkgYmUgZ3JvdXBlZCB0b2dldGhlci4gIFNvbWV0 aW1lcywKYW4gZW50cnkgbWF5IGNvdmVyIGp1c3QgcGFydCBvZiBhIGNvbXBsZXggY29tbWFuZC4K CiAgIElmIHlvdSByZXBlYXQg4oCYQy0v4oCZIChvciBpdHMgYWxpYXNlcyksIGVhY2ggcmVwZXRp dGlvbiB1bmRvZXMgYW5vdGhlciwKZWFybGllciBjaGFuZ2UsIGJhY2sgdG8gdGhlIGxpbWl0IG9m IHRoZSB1bmRvIGluZm9ybWF0aW9uIGF2YWlsYWJsZS4gIElmCmFsbCByZWNvcmRlZCBjaGFuZ2Vz IGhhdmUgYWxyZWFkeSBiZWVuIHVuZG9uZSwgdGhlIHVuZG8gY29tbWFuZCBkaXNwbGF5cwphbiBl cnJvciBtZXNzYWdlIGFuZCBkb2VzIG5vdGhpbmcuCgogICBUbyBsZWFybiBtb3JlIGFib3V0IHRo ZSDigJh1bmRv4oCZIGNvbW1hbmQsIHNlZSAqbm90ZSBVbmRvOjouCgoKKiogNy41IEZpbGVzCgpU ZXh0IHRoYXQgeW91IGluc2VydCBpbiBhbiBFbWFjcyBidWZmZXIgbGFzdHMgb25seSBhcyBsb25n IGFzIHRoZSBFbWFjcwpzZXNzaW9uLiAgVG8ga2VlcCBhbnkgdGV4dCBwZXJtYW5lbnRseSwgeW91 IG11c3QgcHV0IGl0IGluIGEgImZpbGUiLgoKICAgU3VwcG9zZSB0aGVyZSBpcyBhIGZpbGUgbmFt ZWQg4oCYdGVzdC5lbWFjc+KAmSBpbiB5b3VyIGhvbWUgZGlyZWN0b3J5LgpUbyBiZWdpbiBlZGl0 aW5nIHRoaXMgZmlsZSBpbiBFbWFjcywgdHlwZQoKICAgICBDLXggQy1mIHRlc3QuZW1hY3MgPFJF VD4KCkhlcmUgdGhlIGZpbGUgbmFtZSBpcyBnaXZlbiBhcyBhbiAiYXJndW1lbnQiIHRvIHRoZSBj b21tYW5kIOKAmEMteCBDLWbigJkKKOKAmGZpbmQtZmlsZeKAmSkuICBUaGF0IGNvbW1hbmQgdXNl cyB0aGUgIm1pbmlidWZmZXIiIHRvIHJlYWQgdGhlIGFyZ3VtZW50LAphbmQgeW91IHR5cGUgPFJF VD4gdG8gdGVybWluYXRlIHRoZSBhcmd1bWVudCAoKm5vdGUgTWluaWJ1ZmZlcjo6KS4KCiAgIEVt YWNzIG9iZXlzIHRoaXMgY29tbWFuZCBieSAidmlzaXRpbmciIHRoZSBmaWxlOiBpdCBjcmVhdGVz IGEgYnVmZmVyLApjb3BpZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIGludG8gdGhlIGJ1ZmZl ciwgYW5kIHRoZW4gZGlzcGxheXMgdGhlCmJ1ZmZlciBmb3IgZWRpdGluZy4gIElmIHlvdSBhbHRl ciB0aGUgdGV4dCwgeW91IGNhbiAic2F2ZSIgdGhlIG5ldyB0ZXh0CmluIHRoZSBmaWxlIGJ5IHR5 cGluZyDigJhDLXggQy1z4oCZICjigJhzYXZlLWJ1ZmZlcuKAmSkuICBUaGlzIGNvcGllcyB0aGUK YWx0ZXJlZCBidWZmZXIgY29udGVudHMgYmFjayBpbnRvIHRoZSBmaWxlIOKAmHRlc3QuZW1hY3Pi gJksIG1ha2luZyB0aGVtCnBlcm1hbmVudC4gIFVudGlsIHlvdSBzYXZlLCB0aGUgY2hhbmdlZCB0 ZXh0IGV4aXN0cyBvbmx5IGluc2lkZSBFbWFjcywKYW5kIHRoZSBmaWxlIOKAmHRlc3QuZW1hY3Pi gJkgaXMgdW5hbHRlcmVkLgoKICAgVG8gY3JlYXRlIGEgZmlsZSwganVzdCB2aXNpdCBpdCB3aXRo IOKAmEMteCBDLWbigJkgYXMgaWYgaXQgYWxyZWFkeQpleGlzdGVkLiAgVGhpcyBjcmVhdGVzIGFu IGVtcHR5IGJ1ZmZlciwgaW4gd2hpY2ggeW91IGNhbiBpbnNlcnQgdGhlIHRleHQKeW91IHdhbnQg dG8gcHV0IGluIHRoZSBmaWxlLiAgRW1hY3MgYWN0dWFsbHkgY3JlYXRlcyB0aGUgZmlsZSB0aGUg Zmlyc3QKdGltZSB5b3Ugc2F2ZSB0aGlzIGJ1ZmZlciB3aXRoIOKAmEMteCBDLXPigJkuCgogICBU byBsZWFybiBtb3JlIGFib3V0IHVzaW5nIGZpbGVzIGluIEVtYWNzLCBzZWUgKm5vdGUgRmlsZXM6 Oi4KCgoqKiA3LjYgSGVscAoKSWYgeW91IGZvcmdldCB3aGF0IGEga2V5IGRvZXMsIHlvdSBjYW4g ZmluZCBvdXQgYnkgdHlwaW5nIOKAmEMtaCBr4oCZCijigJhkZXNjcmliZS1rZXnigJkpLCBmb2xs b3dlZCBieSB0aGUga2V5IG9mIGludGVyZXN0OyBmb3IgZXhhbXBsZSwg4oCYQy1oIGsKQy1u4oCZ IHRlbGxzIHlvdSB3aGF0IOKAmEMtbuKAmSBkb2VzLgoKICAgVGhlIHByZWZpeCBrZXkg4oCYQy1o 4oCZIHN0YW5kcyBmb3Ig4oCcaGVscOKAnS4gIFRoZSBrZXkgPEYxPiBzZXJ2ZXMgYXMgYW4KYWxp YXMgZm9yIOKAmEMtaOKAmS4gIEFwYXJ0IGZyb20g4oCYQy1oIGvigJksIHRoZXJlIGFyZSBtYW55 IG90aGVyIGhlbHAgY29tbWFuZHMKcHJvdmlkaW5nIGRpZmZlcmVudCBraW5kcyBvZiBoZWxwLgoK ICAgKk5vdGUgSGVscDo6LCBmb3IgZGV0YWlscy4KCgoqKiA3LjcgQmxhbmsgTGluZXMKCkhlcmUg YXJlIHNwZWNpYWwgY29tbWFuZHMgYW5kIHRlY2huaXF1ZXMgZm9yIGluc2VydGluZyBhbmQgZGVs ZXRpbmcKYmxhbmsgbGluZXMuCgrigJhDLW/igJkKICAgICBJbnNlcnQgYSBibGFuayBsaW5lIGFm dGVyIHRoZSBjdXJzb3IgKOKAmG9wZW4tbGluZeKAmSkuCuKAmEMteCBDLW/igJkKICAgICBEZWxl dGUgYWxsIGJ1dCBvbmUgb2YgbWFueSBjb25zZWN1dGl2ZSBibGFuayBsaW5lcwogICAgICjigJhk ZWxldGUtYmxhbmstbGluZXPigJkpLgoKICAgV2UgaGF2ZSBzZWVuIGhvdyDigJg8UkVUPuKAmSAo 4oCYbmV3bGluZeKAmSkgc3RhcnRzIGEgbmV3IGxpbmUgb2YgdGV4dC4KSG93ZXZlciwgaXQgbWF5 IGJlIGVhc2llciB0byBzZWUgd2hhdCB5b3UgYXJlIGRvaW5nIGlmIHlvdSBmaXJzdCBtYWtlIGEK YmxhbmsgbGluZSBhbmQgdGhlbiBpbnNlcnQgdGhlIGRlc2lyZWQgdGV4dCBpbnRvIGl0LiAgVGhp cyBpcyBlYXN5IHRvIGRvCnVzaW5nIHRoZSBrZXkg4oCYQy1v4oCZICjigJhvcGVuLWxpbmXigJkp LCB3aGljaCBpbnNlcnRzIGEgbmV3bGluZSBhZnRlciBwb2ludApidXQgbGVhdmVzIHBvaW50IGlu IGZyb250IG9mIHRoZSBuZXdsaW5lLiAgQWZ0ZXIg4oCYQy1v4oCZLCB0eXBlIHRoZSB0ZXh0CmZv ciB0aGUgbmV3IGxpbmUuCgogICBZb3UgY2FuIG1ha2Ugc2V2ZXJhbCBibGFuayBsaW5lcyBieSB0 eXBpbmcg4oCYQy1v4oCZIHNldmVyYWwgdGltZXMsIG9yIGJ5CmdpdmluZyBpdCBhIG51bWVyaWMg YXJndW1lbnQgc3BlY2lmeWluZyBob3cgbWFueSBibGFuayBsaW5lcyB0byBtYWtlLgoqTm90ZSBB cmd1bWVudHM6OiwgZm9yIGhvdy4gIElmIHlvdSBoYXZlIGEgZmlsbCBwcmVmaXgsIHRoZSDigJhD LW/igJkKY29tbWFuZCBpbnNlcnRzIHRoZSBmaWxsIHByZWZpeCBvbiB0aGUgbmV3IGxpbmUsIGlm IHR5cGVkIGF0IHRoZQpiZWdpbm5pbmcgb2YgYSBsaW5lLiAgKk5vdGUgRmlsbCBQcmVmaXg6Oi4K CiAgIFRoZSBlYXN5IHdheSB0byBnZXQgcmlkIG9mIGV4dHJhIGJsYW5rIGxpbmVzIGlzIHdpdGgg dGhlIGNvbW1hbmQg4oCYQy14CkMtb+KAmSAo4oCYZGVsZXRlLWJsYW5rLWxpbmVz4oCZKS4gIElm IHBvaW50IGxpZXMgd2l0aGluIGEgcnVuIG9mIHNldmVyYWwKYmxhbmsgbGluZXMsIOKAmEMteCBD LW/igJkgZGVsZXRlcyBhbGwgYnV0IG9uZSBvZiB0aGVtLiAgSWYgcG9pbnQgaXMgb24gYQpzaW5n bGUgYmxhbmsgbGluZSwg4oCYQy14IEMtb+KAmSBkZWxldGVzIGl0LiAgSWYgcG9pbnQgaXMgb24g YSBub25ibGFuawpsaW5lLCDigJhDLXggQy1v4oCZIGRlbGV0ZXMgYWxsIGZvbGxvd2luZyBibGFu ayBsaW5lcywgaWYgYW55IGV4aXN0cy4KCgoqKiA3LjggQ29udGludWF0aW9uIExpbmVzCgpTb21l dGltZXMsIGEgbGluZSBvZiB0ZXh0IGluIHRoZSBidWZmZXLigJRhICJsb2dpY2FsIGxpbmUi4oCU aXMgdG9vIGxvbmcgdG8KZml0IGluIHRoZSB3aW5kb3csIGFuZCBFbWFjcyBkaXNwbGF5cyBpdCBh cyB0d28gb3IgbW9yZSAic2NyZWVuIGxpbmVzIi4KVGhpcyBpcyBjYWxsZWQgImxpbmUgd3JhcHBp bmciIG9yICJjb250aW51YXRpb24iLCBhbmQgdGhlIGxvbmcgbG9naWNhbApsaW5lIGlzIGNhbGxl ZCBhICJjb250aW51ZWQgbGluZSIuICBPbiBhIGdyYXBoaWNhbCBkaXNwbGF5LCBFbWFjcwppbmRp Y2F0ZXMgbGluZSB3cmFwcGluZyB3aXRoIHNtYWxsIGJlbnQgYXJyb3dzIGluIHRoZSBsZWZ0IGFu ZCByaWdodAp3aW5kb3cgZnJpbmdlcy4gIE9uIGEgdGV4dCB0ZXJtaW5hbCwgRW1hY3MgaW5kaWNh dGVzIGxpbmUgd3JhcHBpbmcgYnkKZGlzcGxheWluZyBhIOKAmFzigJkgY2hhcmFjdGVyIGF0IHRo ZSByaWdodCBtYXJnaW4uCgogICBNb3N0IGNvbW1hbmRzIHRoYXQgYWN0IG9uIGxpbmVzIGFjdCBv biBsb2dpY2FsIGxpbmVzLCBub3Qgc2NyZWVuCmxpbmVzLiAgRm9yIGluc3RhbmNlLCDigJhDLWvi gJkga2lsbHMgYSBsb2dpY2FsIGxpbmUuICBBcyBkZXNjcmliZWQgZWFybGllciwK4oCYQy1u4oCZ ICjigJhuZXh0LWxpbmXigJkpIGFuZCDigJhDLXDigJkgKOKAmHByZXZpb3VzLWxpbmXigJkpIGFy ZSBzcGVjaWFsIGV4Y2VwdGlvbnM6CnRoZXkgbW92ZSBwb2ludCBkb3duIGFuZCB1cCwgcmVzcGVj dGl2ZWx5LCBieSBvbmUgc2NyZWVuIGxpbmUgKCpub3RlCk1vdmluZyBQb2ludDo6KS4KCiAgIEVt YWNzIGNhbiBvcHRpb25hbGx5ICJ0cnVuY2F0ZSIgbG9uZyBsb2dpY2FsIGxpbmVzIGluc3RlYWQg b2YKY29udGludWluZyB0aGVtLiAgVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IGxvZ2ljYWwgbGluZSBv Y2N1cGllcyBhIHNpbmdsZQpzY3JlZW4gbGluZTsgaWYgaXQgaXMgbG9uZ2VyIHRoYW4gdGhlIHdp ZHRoIG9mIHRoZSB3aW5kb3csIHRoZSByZXN0IG9mCnRoZSBsaW5lIGlzIG5vdCBkaXNwbGF5ZWQu ICBPbiBhIGdyYXBoaWNhbCBkaXNwbGF5LCBhIHRydW5jYXRlZCBsaW5lIGlzCmluZGljYXRlZCBi eSBhIHNtYWxsIHN0cmFpZ2h0IGFycm93IGluIHRoZSByaWdodCBmcmluZ2U7IG9uIGEgdGV4dAp0 ZXJtaW5hbCwgaXQgaXMgaW5kaWNhdGVkIGJ5IGEg4oCYJOKAmSBjaGFyYWN0ZXIgaW4gdGhlIHJp Z2h0IG1hcmdpbi4gICpOb3RlCkxpbmUgVHJ1bmNhdGlvbjo6LgoKICAgQnkgZGVmYXVsdCwgY29u dGludWVkIGxpbmVzIGFyZSB3cmFwcGVkIGF0IHRoZSByaWdodCB3aW5kb3cgZWRnZS4KU2luY2Ug dGhlIHdyYXBwaW5nIG1heSBvY2N1ciBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZCwgY29udGludWVk IGxpbmVzCmNhbiBiZSBkaWZmaWN1bHQgdG8gcmVhZC4gIFRoZSB1c3VhbCBzb2x1dGlvbiBpcyB0 byBicmVhayB5b3VyIGxpbmVzCmJlZm9yZSB0aGV5IGdldCB0b28gbG9uZywgYnkgaW5zZXJ0aW5n IG5ld2xpbmVzLiAgSWYgeW91IHByZWZlciwgeW91IGNhbgptYWtlIEVtYWNzIGluc2VydCBhIG5l d2xpbmUgYXV0b21hdGljYWxseSB3aGVuIGEgbGluZSBnZXRzIHRvbyBsb25nLCBieQp1c2luZyBB dXRvIEZpbGwgbW9kZS4gICpOb3RlIEZpbGxpbmc6Oi4KCiAgIFNvbWV0aW1lcywgeW91IG1heSBu ZWVkIHRvIGVkaXQgZmlsZXMgY29udGFpbmluZyBtYW55IGxvbmcgbG9naWNhbApsaW5lcywgYW5k IGl0IG1heSBub3QgYmUgcHJhY3RpY2FsIHRvIGJyZWFrIHRoZW0gYWxsIHVwIGJ5IGFkZGluZwpu ZXdsaW5lcy4gIEluIHRoYXQgY2FzZSwgeW91IGNhbiB1c2UgVmlzdWFsIExpbmUgbW9kZSwgd2hp Y2ggZW5hYmxlcwoid29yZCB3cmFwcGluZyI6IGluc3RlYWQgb2Ygd3JhcHBpbmcgbG9uZyBsaW5l cyBleGFjdGx5IGF0IHRoZSByaWdodAp3aW5kb3cgZWRnZSwgRW1hY3Mgd3JhcHMgdGhlbSBhdCB0 aGUgd29yZCBib3VuZGFyaWVzIChpLmUuLCBzcGFjZSBvciB0YWIKY2hhcmFjdGVycykgbmVhcmVz dCB0byB0aGUgcmlnaHQgd2luZG93IGVkZ2UuICBWaXN1YWwgTGluZSBtb2RlIGFsc28KcmVkZWZp bmVzIGVkaXRpbmcgY29tbWFuZHMgc3VjaCBhcyDigJhDLWHigJksIOKAmEMtbuKAmSwgYW5kIOKA mEMta+KAmSB0byBvcGVyYXRlIG9uCnNjcmVlbiBsaW5lcyByYXRoZXIgdGhhbiBsb2dpY2FsIGxp bmVzLiAgKk5vdGUgVmlzdWFsIExpbmUgTW9kZTo6LgoKCioqIDcuOSBDdXJzb3IgUG9zaXRpb24g SW5mb3JtYXRpb24KCkhlcmUgYXJlIGNvbW1hbmRzIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YKcGFydHMgb2YgdGhlIGJ1ZmZlciwgYW5kIHRvIGNvdW50 IHdvcmRzIGFuZCBsaW5lcy4KCuKAmE0teCB3aGF0LWxpbmXigJkKICAgICBEaXNwbGF5IHRoZSBs aW5lIG51bWJlciBvZiBwb2ludC4K4oCYTS14IGxpbmUtbnVtYmVyLW1vZGXigJkK4oCYTS14IGNv bHVtbi1udW1iZXItbW9kZeKAmQogICAgIFRvZ2dsZSBhdXRvbWF0aWMgZGlzcGxheSBvZiB0aGUg Y3VycmVudCBsaW5lIG51bWJlciBvciBjb2x1bW4KICAgICBudW1iZXIuICAqTm90ZSBPcHRpb25h bCBNb2RlIExpbmU6Oi4gIElmIHlvdSB3YW50IHRvIGhhdmUgYSBsaW5lCiAgICAgbnVtYmVyIGRp c3BsYXllZCBiZWZvcmUgZWFjaCBsaW5lLCBzZWUgKm5vdGUgRGlzcGxheSBDdXN0b206Oi4KCuKA mE0tPeKAmQogICAgIERpc3BsYXkgdGhlIG51bWJlciBvZiBsaW5lcywgd29yZHMsIGFuZCBjaGFy YWN0ZXJzIHRoYXQgYXJlIHByZXNlbnQKICAgICBpbiB0aGUgcmVnaW9uICjigJhjb3VudC13b3Jk cy1yZWdpb27igJkpLiAgKk5vdGUgTWFyazo6LCBmb3IKICAgICBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgcmVnaW9uLgoK4oCYTS14IGNvdW50LXdvcmRz4oCZCiAgICAgRGlzcGxheSB0aGUgbnVtYmVy IG9mIGxpbmVzLCB3b3JkcywgYW5kIGNoYXJhY3RlcnMgdGhhdCBhcmUgcHJlc2VudAogICAgIGlu IHRoZSBidWZmZXIuICBJZiB0aGUgcmVnaW9uIGlzIGFjdGl2ZSAoKm5vdGUgTWFyazo6KSwgZGlz cGxheSB0aGUKICAgICBudW1iZXJzIGZvciB0aGUgcmVnaW9uIGluc3RlYWQuCgrigJhDLXggPeKA mQogICAgIERpc3BsYXkgdGhlIGNoYXJhY3RlciBjb2RlIG9mIGNoYXJhY3RlciBhZnRlciBwb2lu dCwgY2hhcmFjdGVyCiAgICAgcG9zaXRpb24gb2YgcG9pbnQsIGFuZCBjb2x1bW4gb2YgcG9pbnQg KOKAmHdoYXQtY3Vyc29yLXBvc2l0aW9u4oCZKS4K4oCYTS14IGhsLWxpbmUtbW9kZeKAmQogICAg IEVuYWJsZSBvciBkaXNhYmxlIGhpZ2hsaWdodGluZyBvZiB0aGUgY3VycmVudCBsaW5lLiAgKk5v dGUgQ3Vyc29yCiAgICAgRGlzcGxheTo6LgrigJhNLXggc2l6ZS1pbmRpY2F0aW9uLW1vZGXigJkK ICAgICBUb2dnbGUgYXV0b21hdGljIGRpc3BsYXkgb2YgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlci4g ICpOb3RlIE9wdGlvbmFsCiAgICAgTW9kZSBMaW5lOjouCgogICDigJhNLXggd2hhdC1saW5l4oCZ IGRpc3BsYXlzIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGluIHRoZSBlY2hvIGFyZWEuClRoaXMg Y29tbWFuZCBpcyB1c3VhbGx5IHJlZHVuZGFudCBiZWNhdXNlIHRoZSBjdXJyZW50IGxpbmUgbnVt YmVyIGlzCnNob3duIGluIHRoZSBtb2RlIGxpbmUgKCpub3RlIE1vZGUgTGluZTo6KS4gIEhvd2V2 ZXIsIGlmIHlvdSBuYXJyb3cgdGhlCmJ1ZmZlciwgdGhlIG1vZGUgbGluZSBzaG93cyB0aGUgbGlu ZSBudW1iZXIgcmVsYXRpdmUgdG8gdGhlIGFjY2Vzc2libGUKcG9ydGlvbiAoKm5vdGUgTmFycm93 aW5nOjopLiAgQnkgY29udHJhc3QsIOKAmHdoYXQtbGluZeKAmSBkaXNwbGF5cyBib3RoIHRoZQps aW5lIG51bWJlciByZWxhdGl2ZSB0byB0aGUgbmFycm93ZWQgcmVnaW9uIGFuZCB0aGUgbGluZSBu dW1iZXIgcmVsYXRpdmUKdG8gdGhlIHdob2xlIGJ1ZmZlci4KCiAgIOKAmE0tPeKAmSAo4oCYY291 bnQtd29yZHMtcmVnaW9u4oCZKSBkaXNwbGF5cyBhIG1lc3NhZ2UgcmVwb3J0aW5nIHRoZSBudW1i ZXIKb2YgbGluZXMsIHdvcmRzLCBhbmQgY2hhcmFjdGVycyBpbiB0aGUgcmVnaW9uICgqbm90ZSBN YXJrOjosIGZvciBhbgpleHBsYW5hdGlvbiBvZiB0aGUgcmVnaW9uKS4gIFdpdGggYSBwcmVmaXgg YXJndW1lbnQsIOKAmEMtdSBNLT3igJksIHRoZQpjb21tYW5kIGRpc3BsYXlzIGEgY291bnQgZm9y IHRoZSBlbnRpcmUgYnVmZmVyLgoKICAgVGhlIGNvbW1hbmQg4oCYTS14IGNvdW50LXdvcmRz4oCZ IGRvZXMgdGhlIHNhbWUgam9iLCBidXQgd2l0aCBhIGRpZmZlcmVudApjYWxsaW5nIGNvbnZlbnRp b24uICBJdCBkaXNwbGF5cyBhIGNvdW50IGZvciB0aGUgcmVnaW9uIGlmIHRoZSByZWdpb24gaXMK YWN0aXZlLCBhbmQgZm9yIHRoZSBidWZmZXIgb3RoZXJ3aXNlLgoKICAgVGhlIGNvbW1hbmQg4oCY Qy14ID3igJkgKOKAmHdoYXQtY3Vyc29yLXBvc2l0aW9u4oCZKSBzaG93cyBpbmZvcm1hdGlvbiBh Ym91dAp0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIHRoZSBidWZmZXIgY29udGVudHMg YXQgdGhhdCBwb3NpdGlvbi4KSXQgZGlzcGxheXMgYSBsaW5lIGluIHRoZSBlY2hvIGFyZWEgdGhh dCBsb29rcyBsaWtlIHRoaXM6CgogICAgIENoYXI6IGMgKDk5LCAjbzE0MywgI3g2MykgcG9pbnQ9 MjgwNjIgb2YgMzYxNjggKDc4JSkgY29sdW1uPTUzCgogICBBZnRlciDigJhDaGFyOuKAmSwgdGhp cyBzaG93cyB0aGUgY2hhcmFjdGVyIGluIHRoZSBidWZmZXIgYXQgcG9pbnQuICBUaGUKdGV4dCBp bnNpZGUgdGhlIHBhcmVudGhlc2lzIHNob3dzIHRoZSBjb3JyZXNwb25kaW5nIGRlY2ltYWwsIG9j dGFsIGFuZApoZXggY2hhcmFjdGVyIGNvZGVzOyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBo b3cg4oCYQy14ID3igJkgZGlzcGxheXMKY2hhcmFjdGVyIGluZm9ybWF0aW9uLCBzZWUgKm5vdGUg SW50ZXJuYXRpb25hbCBDaGFyczo6LiAgQWZ0ZXIg4oCYcG9pbnQ94oCZCmlzIHRoZSBwb3NpdGlv biBvZiBwb2ludCBhcyBhIGNoYXJhY3RlciBjb3VudCAodGhlIGZpcnN0IGNoYXJhY3RlciBpbgp0 aGUgYnVmZmVyIGlzIHBvc2l0aW9uIDEsIHRoZSBzZWNvbmQgY2hhcmFjdGVyIGlzIHBvc2l0aW9u IDIsIGFuZCBzbwpvbikuICBUaGUgbnVtYmVyIGFmdGVyIHRoYXQgaXMgdGhlIHRvdGFsIG51bWJl ciBvZiBjaGFyYWN0ZXJzIGluIHRoZQpidWZmZXIsIGFuZCB0aGUgbnVtYmVyIGluIHBhcmVudGhl c2lzIGV4cHJlc3NlcyB0aGUgcG9zaXRpb24gYXMgYQpwZXJjZW50YWdlIG9mIHRoZSB0b3RhbC4g IEFmdGVyIOKAmGNvbHVtbj3igJkgaXMgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YKcG9pbnQs IGluIGNvbHVtbnMgY291bnRpbmcgZnJvbSB0aGUgbGVmdCBlZGdlIG9mIHRoZSB3aW5kb3cuCgog ICBJZiB0aGUgYnVmZmVyIGhhcyBiZWVuIG5hcnJvd2VkLCBtYWtpbmcgc29tZSBvZiB0aGUgdGV4 dCBhdCB0aGUKYmVnaW5uaW5nIGFuZCB0aGUgZW5kIHRlbXBvcmFyaWx5IGluYWNjZXNzaWJsZSwg 4oCYQy14ID3igJkgZGlzcGxheXMKYWRkaXRpb25hbCB0ZXh0IGRlc2NyaWJpbmcgdGhlIGN1cnJl bnRseSBhY2Nlc3NpYmxlIHJhbmdlLiAgRm9yIGV4YW1wbGUsCml0IG1pZ2h0IGRpc3BsYXkgdGhp czoKCiAgICAgQ2hhcjogQyAoNjcsICNvMTAzLCAjeDQzKSBwb2ludD0yNTIgb2YgODg5ICgyOCUp IDwyMzEtNTk5PiBjb2x1bW49MAoKd2hlcmUgdGhlIHR3byBleHRyYSBudW1iZXJzIGdpdmUgdGhl IHNtYWxsZXN0IGFuZCBsYXJnZXN0IGNoYXJhY3Rlcgpwb3NpdGlvbiB0aGF0IHBvaW50IGlzIGFs bG93ZWQgdG8gYXNzdW1lLiAgVGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0aG9zZQp0d28gcG9zaXRp b25zIGFyZSB0aGUgYWNjZXNzaWJsZSBvbmVzLiAgKk5vdGUgTmFycm93aW5nOjouCgogICBSZWxh dGVkLCBidXQgZGlmZmVyZW50IGZlYXR1cmUgaXMg4oCYZGlzcGxheS1saW5lLW51bWJlcnMtbW9k ZeKAmSAoKm5vdGUKRGlzcGxheSBDdXN0b206OikuCgoKKiogNy4xMCBOdW1lcmljIEFyZ3VtZW50 cwoKSW4gdGhlIHRlcm1pbm9sb2d5IG9mIG1hdGhlbWF0aWNzIGFuZCBjb21wdXRpbmcsICJhcmd1 bWVudCIgbWVhbnMg4oCcZGF0YQpwcm92aWRlZCB0byBhIGZ1bmN0aW9uIG9yIG9wZXJhdGlvbuKA nS4gIFlvdSBjYW4gZ2l2ZSBhbnkgRW1hY3MgY29tbWFuZCBhCiJudW1lcmljIGFyZ3VtZW50IiAo YWxzbyBjYWxsZWQgYSAicHJlZml4IGFyZ3VtZW50IikuICBTb21lIGNvbW1hbmRzCmludGVycHJl dCB0aGUgYXJndW1lbnQgYXMgYSByZXBldGl0aW9uIGNvdW50LiAgRm9yIGV4YW1wbGUsIGdpdmlu ZyDigJhDLWbigJkKYW4gYXJndW1lbnQgb2YgdGVuIGNhdXNlcyBpdCB0byBtb3ZlIHBvaW50IGZv cndhcmQgYnkgdGVuIGNoYXJhY3RlcnMKaW5zdGVhZCBvZiBvbmUuICBXaXRoIHRoZXNlIGNvbW1h bmRzLCBubyBhcmd1bWVudCBpcyBlcXVpdmFsZW50IHRvIGFuCmFyZ3VtZW50IG9mIG9uZSwgYW5k IG5lZ2F0aXZlIGFyZ3VtZW50cyBjYXVzZSB0aGVtIHRvIG1vdmUgb3IgYWN0IGluIHRoZQpvcHBv c2l0ZSBkaXJlY3Rpb24uCgogICBUaGUgZWFzaWVzdCB3YXkgdG8gc3BlY2lmeSBhIG51bWVyaWMg YXJndW1lbnQgaXMgdG8gdHlwZSBhIGRpZ2l0CmFuZC9vciBhIG1pbnVzIHNpZ24gd2hpbGUgaG9s ZGluZyBkb3duIHRoZSA8TWV0YT4ga2V5LiAgRm9yIGV4YW1wbGUsCgogICAgIE0tNSBDLW4KCm1v dmVzIGRvd24gZml2ZSBsaW5lcy4gIFRoZSBrZXlzIOKAmE0tMeKAmSwg4oCYTS0y4oCZLCBhbmQg c28gb24sIGFzIHdlbGwgYXMK4oCYTS0t4oCZLCBhcmUgYm91bmQgdG8gY29tbWFuZHMgKOKAmGRp Z2l0LWFyZ3VtZW504oCZIGFuZCDigJhuZWdhdGl2ZS1hcmd1bWVudOKAmSkKdGhhdCBzZXQgdXAg YW4gYXJndW1lbnQgZm9yIHRoZSBuZXh0IGNvbW1hbmQuICDigJhNLS3igJkgd2l0aG91dCBkaWdp dHMKbm9ybWFsbHkgbWVhbnMg4oiSMS4KCiAgIElmIHlvdSBlbnRlciBtb3JlIHRoYW4gb25lIGRp Z2l0LCB5b3UgbmVlZCBub3QgaG9sZCBkb3duIHRoZSA8TWV0YT4Ka2V5IGZvciB0aGUgc2Vjb25k IGFuZCBzdWJzZXF1ZW50IGRpZ2l0cy4gIFRodXMsIHRvIG1vdmUgZG93biBmaWZ0eQpsaW5lcywg dHlwZQoKICAgICBNLTUgMCBDLW4KCk5vdGUgdGhhdCB0aGlzIF9kb2VzIG5vdF8gaW5zZXJ0IGZp dmUgY29waWVzIG9mIOKAmDDigJkgYW5kIG1vdmUgZG93biBvbmUKbGluZSwgYXMgeW91IG1pZ2h0 IGV4cGVjdOKAlHRoZSDigJgw4oCZIGlzIHRyZWF0ZWQgYXMgcGFydCBvZiB0aGUgcHJlZml4CmFy Z3VtZW50LgoKICAgKFdoYXQgaWYgeW91IGRvIHdhbnQgdG8gaW5zZXJ0IGZpdmUgY29waWVzIG9m IOKAmDDigJk/ICBUeXBlIOKAmE0tNSBDLXUgMOKAmS4KSGVyZSwg4oCYQy114oCZIHRlcm1pbmF0 ZXMgdGhlIHByZWZpeCBhcmd1bWVudCwgc28gdGhhdCB0aGUgbmV4dCBrZXlzdHJva2UKYmVnaW5z IHRoZSBjb21tYW5kIHRoYXQgeW91IHdhbnQgdG8gZXhlY3V0ZS4gIE5vdGUgdGhhdCB0aGlzIG1l YW5pbmcgb2YK4oCYQy114oCZIGFwcGxpZXMgb25seSB0byB0aGlzIGNhc2UuICBGb3IgdGhlIHVz dWFsIHJvbGUgb2Yg4oCYQy114oCZLCBzZWUKYmVsb3cuKQoKICAgSW5zdGVhZCBvZiB0eXBpbmcg 4oCYTS0x4oCZLCDigJhNLTLigJksIGFuZCBzbyBvbiwgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSBh Cm51bWVyaWMgYXJndW1lbnQgaXMgdG8gdHlwZSDigJhDLXXigJkgKOKAmHVuaXZlcnNhbC1hcmd1 bWVudOKAmSkgZm9sbG93ZWQgYnkKc29tZSBkaWdpdHMsIG9yIChmb3IgYSBuZWdhdGl2ZSBhcmd1 bWVudCkgYSBtaW51cyBzaWduIGZvbGxvd2VkIGJ5CmRpZ2l0cy4gIEEgbWludXMgc2lnbiB3aXRo b3V0IGRpZ2l0cyBub3JtYWxseSBtZWFucyDiiJIxLgoKICAg4oCYQy114oCZIGFsb25lIGhhcyB0 aGUgc3BlY2lhbCBtZWFuaW5nIG9mIOKAnGZvdXIgdGltZXPigJ06IGl0IG11bHRpcGxpZXMKdGhl IGFyZ3VtZW50IGZvciB0aGUgbmV4dCBjb21tYW5kIGJ5IGZvdXIuICDigJhDLXUgQy114oCZIG11 bHRpcGxpZXMgaXQgYnkKc2l4dGVlbi4gIFRodXMsIOKAmEMtdSBDLXUgQy1m4oCZIG1vdmVzIGZv cndhcmQgc2l4dGVlbiBjaGFyYWN0ZXJzLiAgT3RoZXIKdXNlZnVsIGNvbWJpbmF0aW9ucyBhcmUg 4oCYQy11IEMtbuKAmSwg4oCYQy11IEMtdSBDLW7igJkgKG1vdmUgZG93biBhIGdvb2QKZnJhY3Rp b24gb2YgYSBzY3JlZW4pLCDigJhDLXUgQy11IEMtb+KAmSAobWFrZSBzaXh0ZWVuIGJsYW5rIGxp bmVzKSwgYW5kCuKAmEMtdSBDLWvigJkgKGtpbGwgZm91ciBsaW5lcykuCgogICBZb3UgY2FuIHVz ZSBhIG51bWVyaWMgYXJndW1lbnQgYmVmb3JlIGEgc2VsZi1pbnNlcnRpbmcgY2hhcmFjdGVyIHRv Cmluc2VydCBtdWx0aXBsZSBjb3BpZXMgb2YgaXQuICBUaGlzIGlzIHN0cmFpZ2h0Zm9yd2FyZCB3 aGVuIHRoZQpjaGFyYWN0ZXIgaXMgbm90IGEgZGlnaXQ7IGZvciBleGFtcGxlLCDigJhDLXUgNiA0 IGHigJkgaW5zZXJ0cyA2NCBjb3BpZXMgb2YKdGhlIGNoYXJhY3RlciDigJhh4oCZLiAgQnV0IHRo aXMgZG9lcyBub3Qgd29yayBmb3IgaW5zZXJ0aW5nIGRpZ2l0czsg4oCYQy11IDYgNCAx4oCZCnNw ZWNpZmllcyBhbiBhcmd1bWVudCBvZiA2NDEuICBZb3UgY2FuIHNlcGFyYXRlIHRoZSBhcmd1bWVu dCBmcm9tIHRoZQpkaWdpdCB0byBpbnNlcnQgd2l0aCBhbm90aGVyIOKAmEMtdeKAmTsgZm9yIGV4 YW1wbGUsIOKAmEMtdSA2IDQgQy11IDHigJkgZG9lcwppbnNlcnQgNjQgY29waWVzIG9mIHRoZSBj aGFyYWN0ZXIg4oCYMeKAmS4KCiAgIFNvbWUgY29tbWFuZHMgY2FyZSB3aGV0aGVyIHRoZXJlIGlz IGFuIGFyZ3VtZW50LCBidXQgaWdub3JlIGl0cwp2YWx1ZS4gIEZvciBleGFtcGxlLCB0aGUgY29t bWFuZCDigJhNLXHigJkgKOKAmGZpbGwtcGFyYWdyYXBo4oCZKSBmaWxscyB0ZXh0Owp3aXRoIGFu IGFyZ3VtZW50LCBpdCBqdXN0aWZpZXMgdGhlIHRleHQgYXMgd2VsbC4gICgqTm90ZSBGaWxsaW5n OjosIGZvcgptb3JlIGluZm9ybWF0aW9uIG9uIOKAmE0tceKAmS4pICBGb3IgdGhlc2UgY29tbWFu ZHMsIGl0IGlzIGVub3VnaCB0byBzcGVjaWZ5CnRoZSBhcmd1bWVudCB3aXRoIGEgc2luZ2xlIOKA mEMtdeKAmS4KCiAgIFNvbWUgY29tbWFuZHMgdXNlIHRoZSB2YWx1ZSBvZiB0aGUgYXJndW1lbnQg YXMgYSByZXBlYXQgY291bnQgYnV0IGRvCnNvbWV0aGluZyBzcGVjaWFsIHdoZW4gdGhlcmUgaXMg bm8gYXJndW1lbnQuICBGb3IgZXhhbXBsZSwgdGhlIGNvbW1hbmQK4oCYQy1r4oCZICjigJhraWxs LWxpbmXigJkpIHdpdGggYXJndW1lbnQgTiBraWxscyBOIGxpbmVzLCBpbmNsdWRpbmcgdGhlaXIK dGVybWluYXRpbmcgbmV3bGluZXMuICBCdXQg4oCYQy1r4oCZIHdpdGggbm8gYXJndW1lbnQgaXMg c3BlY2lhbDogaXQga2lsbHMKdGhlIHRleHQgdXAgdG8gdGhlIG5leHQgbmV3bGluZSwgb3IsIGlm IHBvaW50IGlzIHJpZ2h0IGF0IHRoZSBlbmQgb2YgdGhlCmxpbmUsIGl0IGtpbGxzIHRoZSBuZXds aW5lIGl0c2VsZi4gIFRodXMsIHR3byDigJhDLWvigJkgY29tbWFuZHMgd2l0aCBubwphcmd1bWVu dHMgY2FuIGtpbGwgYSBub25ibGFuayBsaW5lLCBqdXN0IGxpa2Ug4oCYQy1r4oCZIHdpdGggYW4g YXJndW1lbnQgb2YKb25lLiAgKCpOb3RlIEtpbGxpbmc6OiwgZm9yIG1vcmUgaW5mb3JtYXRpb24g b24g4oCYQy1r4oCZLikKCiAgIEEgZmV3IGNvbW1hbmRzIHRyZWF0IGEgcGxhaW4g4oCYQy114oCZ IGRpZmZlcmVudGx5IGZyb20gYW4gb3JkaW5hcnkKYXJndW1lbnQuICBBIGZldyBvdGhlcnMgbWF5 IHRyZWF0IGFuIGFyZ3VtZW50IG9mIGp1c3QgYSBtaW51cyBzaWduCmRpZmZlcmVudGx5IGZyb20g YW4gYXJndW1lbnQgb2Yg4oiSMS4gIFRoZXNlIHVudXN1YWwgY2FzZXMgYXJlIGRlc2NyaWJlZAp3 aGVuIHRoZXkgY29tZSB1cDsgdGhleSBleGlzdCB0byBtYWtlIGFuIGluZGl2aWR1YWwgY29tbWFu ZCBtb3JlCmNvbnZlbmllbnQsIGFuZCB0aGV5IGFyZSBkb2N1bWVudGVkIGluIHRoYXQgY29tbWFu ZOKAmXMgZG9jdW1lbnRhdGlvbgpzdHJpbmcuCgogICBXZSB1c2UgdGhlIHRlcm0gInByZWZpeCBh cmd1bWVudCIgdG8gZW1waGFzaXplIHRoYXQgeW91IHR5cGUgc3VjaAphcmd1bWVudHMgYmVmb3Jl IHRoZSBjb21tYW5kLCBhbmQgdG8gZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIG1pbmlidWZmZXIKYXJn dW1lbnRzICgqbm90ZSBNaW5pYnVmZmVyOjopLCB3aGljaCBhcmUgZW50ZXJlZCBhZnRlciBpbnZv a2luZyB0aGUKY29tbWFuZC4KCiAgIE9uIGdyYXBoaWNhbCBkaXNwbGF5cywg4oCYQy0w4oCZLCDi gJhDLTHigJksIGV0Yy4gYWN0IHRoZSBzYW1lIGFzIOKAmE0tMOKAmSwK4oCYTS0x4oCZLCBldGMu CgoKKiogNy4xMSBSZXBlYXRpbmcgYSBDb21tYW5kCgpNYW55IHNpbXBsZSBjb21tYW5kcywgc3Vj aCBhcyB0aG9zZSBpbnZva2VkIHdpdGggYSBzaW5nbGUga2V5IG9yIHdpdGgK4oCYTS14IENPTU1B TkQtTkFNRSA8UkVUPuKAmSwgY2FuIGJlIHJlcGVhdGVkIGJ5IGludm9raW5nIHRoZW0gd2l0aCBh Cm51bWVyaWMgYXJndW1lbnQgdGhhdCBzZXJ2ZXMgYXMgYSByZXBlYXQgY291bnQgKCpub3RlIEFy Z3VtZW50czo6KS4KSG93ZXZlciwgaWYgdGhlIGNvbW1hbmQgeW91IHdhbnQgdG8gcmVwZWF0IHBy b21wdHMgZm9yIGlucHV0LCBvciB1c2VzIGEKbnVtZXJpYyBhcmd1bWVudCBpbiBhbm90aGVyIHdh eSwgdGhhdCBtZXRob2Qgd29u4oCZdCB3b3JrLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IHrigJkg KOKAmHJlcGVhdOKAmSkgcHJvdmlkZXMgYW5vdGhlciB3YXkgdG8gcmVwZWF0IGFuCkVtYWNzIGNv bW1hbmQgbWFueSB0aW1lcy4gIFRoaXMgY29tbWFuZCByZXBlYXRzIHRoZSBwcmV2aW91cyBFbWFj cwpjb21tYW5kLCB3aGF0ZXZlciB0aGF0IHdhcy4gIFJlcGVhdGluZyBhIGNvbW1hbmQgdXNlcyB0 aGUgc2FtZSBhcmd1bWVudHMKdGhhdCB3ZXJlIHVzZWQgYmVmb3JlOyBpdCBkb2VzIG5vdCByZWFk IG5ldyBhcmd1bWVudHMgZWFjaCB0aW1lLgoKICAgVG8gcmVwZWF0IHRoZSBjb21tYW5kIG1vcmUg dGhhbiBvbmNlLCB0eXBlIGFkZGl0aW9uYWwg4oCYeuKAmeKAmXM6IGVhY2gg4oCYeuKAmQpyZXBl YXRzIHRoZSBjb21tYW5kIG9uZSBtb3JlIHRpbWUuICBSZXBldGl0aW9uIGVuZHMgd2hlbiB5b3Ug dHlwZSBhCmNoYXJhY3RlciBvdGhlciB0aGFuIOKAmHrigJkgb3IgcHJlc3MgYSBtb3VzZSBidXR0 b24uCgogICBGb3IgZXhhbXBsZSwgc3VwcG9zZSB5b3UgdHlwZSDigJhDLXUgMiAwIEMtZOKAmSB0 byBkZWxldGUgMjAgY2hhcmFjdGVycy4KWW91IGNhbiByZXBlYXQgdGhhdCBjb21tYW5kIChpbmNs dWRpbmcgaXRzIGFyZ3VtZW50KSB0aHJlZSBhZGRpdGlvbmFsCnRpbWVzLCB0byBkZWxldGUgYSB0 b3RhbCBvZiA4MCBjaGFyYWN0ZXJzLCBieSB0eXBpbmcg4oCYQy14IHogeiB64oCZLiAgVGhlCmZp cnN0IOKAmEMteCB64oCZIHJlcGVhdHMgdGhlIGNvbW1hbmQgb25jZSwgYW5kIGVhY2ggc3Vic2Vx dWVudCDigJh64oCZIHJlcGVhdHMKaXQgb25jZSBhZ2Fpbi4KCgoqIDggVGhlIE1pbmlidWZmZXIK ClRoZSAibWluaWJ1ZmZlciIgaXMgd2hlcmUgRW1hY3MgY29tbWFuZHMgcmVhZCBjb21wbGljYXRl ZCBhcmd1bWVudHMsCnN1Y2ggYXMgZmlsZSBuYW1lcywgYnVmZmVyIG5hbWVzLCBFbWFjcyBjb21t YW5kIG5hbWVzLCBvciBMaXNwCmV4cHJlc3Npb25zLiAgV2UgY2FsbCBpdCB0aGUg4oCcbWluaWJ1 ZmZlcuKAnSBiZWNhdXNlIGl04oCZcyBhIHNwZWNpYWwtcHVycG9zZQpidWZmZXIgd2l0aCBhIHNt YWxsIGFtb3VudCBvZiBzY3JlZW4gc3BhY2UuICBZb3UgY2FuIHVzZSB0aGUgdXN1YWwgRW1hY3MK ZWRpdGluZyBjb21tYW5kcyBpbiB0aGUgbWluaWJ1ZmZlciB0byBlZGl0IHRoZSBhcmd1bWVudCB0 ZXh0LgoKKyBNZW51OgoKICAtIEJhc2ljIE1pbmlidWZmZXI6OiAgICAgIEJhc2ljIHVzYWdlIG9m IHRoZSBtaW5pYnVmZmVyLgogIC0gTWluaWJ1ZmZlciBGaWxlOjogICAgICAgRW50ZXJpbmcgZmls ZSBuYW1lcyB3aXRoIHRoZSBtaW5pYnVmZmVyLgogIC0gTWluaWJ1ZmZlciBFZGl0OjogICAgICAg SG93IHRvIGVkaXQgaW4gdGhlIG1pbmlidWZmZXIuCiAgLSBDb21wbGV0aW9uOjogICAgICAgICAg ICBBbiBhYmJyZXZpYXRpb24gZmFjaWxpdHkgZm9yIG1pbmlidWZmZXIgaW5wdXQuCiAgLSBNaW5p YnVmZmVyIEhpc3Rvcnk6OiAgICBSZXVzaW5nIHJlY2VudCBtaW5pYnVmZmVyIGFyZ3VtZW50cy4K ICAtIFJlcGV0aXRpb246OiAgICAgICAgICAgIFJlLWV4ZWN1dGluZyBjb21tYW5kcyB0aGF0IHVz ZWQgdGhlIG1pbmlidWZmZXIuCiAgLSBQYXNzd29yZHM6OiAgICAgICAgICAgICBFbnRlcmluZyBw YXNzd29yZHMgaW4gdGhlIGVjaG8gYXJlYS4KICAtIFllcyBvciBObyBQcm9tcHRzOjogICAgIFJl cGx5aW5nIHllcyBvciBubyBpbiB0aGUgZWNobyBhcmVhLgoKCioqIDguMSBVc2luZyB0aGUgTWlu aWJ1ZmZlcgoKV2hlbiB0aGUgbWluaWJ1ZmZlciBpcyBpbiB1c2UsIGl0IGFwcGVhcnMgaW4gdGhl IGVjaG8gYXJlYSwgd2l0aCBhCmN1cnNvci4gIFRoZSBtaW5pYnVmZmVyIHN0YXJ0cyB3aXRoIGEg InByb21wdCIsIHVzdWFsbHkgZW5kaW5nIHdpdGggYQpjb2xvbi4gIFRoZSBwcm9tcHQgc3RhdGVz IHdoYXQga2luZCBvZiBpbnB1dCBpcyBleHBlY3RlZCwgYW5kIGhvdyBpdAp3aWxsIGJlIHVzZWQu ICBUaGUgcHJvbXB0IGlzIGhpZ2hsaWdodGVkIHVzaW5nIHRoZSDigJhtaW5pYnVmZmVyLXByb21w dOKAmQpmYWNlICgqbm90ZSBGYWNlczo6KS4KCiAgIFRoZSBzaW1wbGVzdCB3YXkgdG8gZW50ZXIg YSBtaW5pYnVmZmVyIGFyZ3VtZW50IGlzIHRvIHR5cGUgdGhlIHRleHQsCnRoZW4gPFJFVD4gdG8g c3VibWl0IHRoZSBhcmd1bWVudCBhbmQgZXhpdCB0aGUgbWluaWJ1ZmZlci4KQWx0ZXJuYXRpdmVs eSwgeW91IGNhbiB0eXBlIOKAmEMtZ+KAmSB0byBleGl0IHRoZSBtaW5pYnVmZmVyIGJ5IGNhbmNl bGluZwp0aGUgY29tbWFuZCBhc2tpbmcgZm9yIHRoZSBhcmd1bWVudCAoKm5vdGUgUXVpdHRpbmc6 OikuCgogICBTb21ldGltZXMsIHRoZSBwcm9tcHQgc2hvd3MgYSAiZGVmYXVsdCBhcmd1bWVudCIs IGluc2lkZSBwYXJlbnRoZXNlcwpiZWZvcmUgdGhlIGNvbG9uLiAgVGhpcyBkZWZhdWx0IHdpbGwg YmUgdXNlZCBhcyB0aGUgYXJndW1lbnQgaWYgeW91IGp1c3QKdHlwZSA8UkVUPi4gIEZvciBleGFt cGxlLCBjb21tYW5kcyB0aGF0IHJlYWQgYnVmZmVyIG5hbWVzIHVzdWFsbHkgc2hvdyBhCmJ1ZmZl ciBuYW1lIGFzIHRoZSBkZWZhdWx0OyB5b3UgY2FuIHR5cGUgPFJFVD4gdG8gb3BlcmF0ZSBvbiB0 aGF0CmRlZmF1bHQgYnVmZmVyLgoKICAgSWYgeW91IGVuYWJsZSBNaW5pYnVmZmVyIEVsZWN0cmlj IERlZmF1bHQgbW9kZSwgYSBnbG9iYWwgbWlub3IgbW9kZSwKRW1hY3MgaGlkZXMgdGhlIGRlZmF1 bHQgYXJndW1lbnQgYXMgc29vbiBhcyB5b3UgbW9kaWZ5IHRoZSBjb250ZW50cyBvZgp0aGUgbWlu aWJ1ZmZlciAoc2luY2UgdHlwaW5nIDxSRVQ+IHdvdWxkIG5vIGxvbmdlciBzdWJtaXQgdGhhdCBk ZWZhdWx0KS4KSWYgeW91IGV2ZXIgYnJpbmcgYmFjayB0aGUgb3JpZ2luYWwgbWluaWJ1ZmZlciB0 ZXh0LCB0aGUgcHJvbXB0IGFnYWluCnNob3dzIHRoZSBkZWZhdWx0LiAgRnVydGhlcm1vcmUsIGlm IHlvdSBjaGFuZ2UgdGhlIHZhcmlhYmxlCuKAmG1pbmlidWZmZXItZWxkZWYtc2hvcnRlbi1kZWZh dWx04oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1ZSwgdGhlIGRlZmF1bHQKYXJndW1lbnQgaXMg ZGlzcGxheWVkIGFzIOKAmFtERUZBVUxULUFSR13igJkgaW5zdGVhZCBvZiDigJgoZGVmYXVsdApE RUZBVUxULUFSRynigJksIHNhdmluZyBzb21lIHNjcmVlbiBzcGFjZS4gIFRvIGVuYWJsZSB0aGlz IG1pbm9yIG1vZGUsCnR5cGUg4oCYTS14IG1pbmlidWZmZXItZWxlY3RyaWMtZGVmYXVsdC1tb2Rl 4oCZLgoKICAgU2luY2UgdGhlIG1pbmlidWZmZXIgYXBwZWFycyBpbiB0aGUgZWNobyBhcmVhLCBp dCBjYW4gY29uZmxpY3Qgd2l0aApvdGhlciB1c2VzIG9mIHRoZSBlY2hvIGFyZWEuICBJZiBhbiBl cnJvciBtZXNzYWdlIG9yIGFuIGluZm9ybWF0aXZlCm1lc3NhZ2UgaXMgZW1pdHRlZCB3aGlsZSB0 aGUgbWluaWJ1ZmZlciBpcyBhY3RpdmUsIHRoZSBtZXNzYWdlIGhpZGVzIHRoZQptaW5pYnVmZmVy IGZvciBhIGZldyBzZWNvbmRzLCBvciB1bnRpbCB5b3UgdHlwZSBzb21ldGhpbmc7IHRoZW4gdGhl Cm1pbmlidWZmZXIgY29tZXMgYmFjay4gIFdoaWxlIHRoZSBtaW5pYnVmZmVyIGlzIGluIHVzZSwg RW1hY3MgZG9lcyBub3QKZWNobyBrZXlzdHJva2VzLgoKCioqIDguMiBNaW5pYnVmZmVycyBmb3Ig RmlsZSBOYW1lcwoKQ29tbWFuZHMgc3VjaCBhcyDigJhDLXggQy1m4oCZICjigJhmaW5kLWZpbGXi gJkpIHVzZSB0aGUgbWluaWJ1ZmZlciB0byByZWFkIGEKZmlsZSBuYW1lIGFyZ3VtZW50ICgqbm90 ZSBCYXNpYyBGaWxlczo6KS4gIFdoZW4gdGhlIG1pbmlidWZmZXIgaXMgdXNlZAp0byByZWFkIGEg ZmlsZSBuYW1lLCBpdCB0eXBpY2FsbHkgc3RhcnRzIG91dCB3aXRoIHNvbWUgaW5pdGlhbCB0ZXh0 CmVuZGluZyBpbiBhIHNsYXNoLiAgVGhpcyBpcyB0aGUgImRlZmF1bHQgZGlyZWN0b3J5Ii4gIEZv ciBleGFtcGxlLCBpdAptYXkgc3RhcnQgb3V0IGxpa2UgdGhpczoKCiAgICAgRmluZCBmaWxlOiAv dTIvZW1hY3Mvc3JjLwoKSGVyZSwg4oCYRmluZCBmaWxlOiDigJkgaXMgdGhlIHByb21wdCBhbmQg 4oCYL3UyL2VtYWNzL3NyYy/igJkgaXMgdGhlIGRlZmF1bHQKZGlyZWN0b3J5LiAgSWYgeW91IG5v dyB0eXBlIOKAmGJ1ZmZlci5j4oCZIGFzIGlucHV0LCB0aGF0IHNwZWNpZmllcyB0aGUgZmlsZQri gJgvdTIvZW1hY3Mvc3JjL2J1ZmZlci5j4oCZLiAgKk5vdGUgRmlsZSBOYW1lczo6LCBmb3IgaW5m b3JtYXRpb24gYWJvdXQgdGhlCmRlZmF1bHQgZGlyZWN0b3J5LgoKICAgQWx0ZXJuYXRpdmUgZGVm YXVsdHMgZm9yIHRoZSBmaWxlIG5hbWUgeW91IG1heSB3YW50IGFyZSBhdmFpbGFibGUgYnkKdHlw aW5nIOKAmE0tbuKAmSwgc2VlICpub3RlIE1pbmlidWZmZXIgSGlzdG9yeTo6LgoKICAgWW91IGNh biBzcGVjaWZ5IGEgZmlsZSBpbiB0aGUgcGFyZW50IGRpcmVjdG9yeSB3aXRoIOKAmC4u4oCZOgri gJgvYS9iLy4uL2Zvby5lbOKAmSBpcyBlcXVpdmFsZW50IHRvIOKAmC9hL2Zvby5lbOKAmS4gIEFs dGVybmF0aXZlbHksIHlvdSBjYW4KdXNlIOKAmE0tPERFTD7igJkgdG8ga2lsbCBkaXJlY3Rvcnkg bmFtZXMgYmFja3dhcmRzICgqbm90ZSBXb3Jkczo6KS4KCiAgIFRvIHNwZWNpZnkgYSBmaWxlIGlu IGEgY29tcGxldGVseSBkaWZmZXJlbnQgZGlyZWN0b3J5LCB5b3UgY2FuIGtpbGwKdGhlIGVudGly ZSBkZWZhdWx0IHdpdGgg4oCYQy1hIEMta+KAmSAoKm5vdGUgTWluaWJ1ZmZlciBFZGl0OjopLgpB bHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGlnbm9yZSB0aGUgZGVmYXVsdCwgYW5kIGVudGVyIGFuIGFi c29sdXRlIGZpbGUKbmFtZSBzdGFydGluZyB3aXRoIGEgc2xhc2ggb3IgYSB0aWxkZSBhZnRlciB0 aGUgZGVmYXVsdCBkaXJlY3RvcnkuICBGb3IKZXhhbXBsZSwgeW91IGNhbiBzcGVjaWZ5IOKAmC9l dGMvdGVybWNhcOKAmSBhcyBmb2xsb3dzOgoKICAgICBGaW5kIGZpbGU6IC91Mi9lbWFjcy9zcmMv L2V0Yy90ZXJtY2FwCgpBIGRvdWJsZSBzbGFzaCBjYXVzZXMgRW1hY3MgdG8gaWdub3JlIGV2ZXJ5 dGhpbmcgYmVmb3JlIHRoZSBzZWNvbmQgc2xhc2gKaW4gdGhlIHBhaXIuICBJbiB0aGUgZXhhbXBs ZSBhYm92ZSwg4oCYL3UyL2VtYWNzL3NyYy/igJkgaXMgaWdub3JlZCwgc28gdGhlCmFyZ3VtZW50 IHlvdSBzdXBwbGllZCBpcyDigJgvZXRjL3Rlcm1jYXDigJkuICBUaGUgaWdub3JlZCBwYXJ0IG9m IHRoZSBmaWxlCm5hbWUgaXMgZGltbWVkIGlmIHRoZSB0ZXJtaW5hbCBhbGxvd3MgaXQuICAoVG8g ZGlzYWJsZSB0aGlzIGRpbW1pbmcsCnR1cm4gb2ZmIEZpbGUgTmFtZSBTaGFkb3cgbW9kZSB3aXRo IHRoZSBjb21tYW5kCuKAmE0teCBmaWxlLW5hbWUtc2hhZG93LW1vZGXigJkuKQoKICAgV2hlbiBj b21wbGV0aW5nIHJlbW90ZSBmaWxlIG5hbWVzICgqbm90ZSBSZW1vdGUgRmlsZXM6OiksIGEgZG91 YmxlCnNsYXNoIGJlaGF2ZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHk6IGl0IGNhdXNlcyBFbWFjcyB0 byBpZ25vcmUgb25seSB0aGUKZmlsZS1uYW1lIHBhcnQsIGxlYXZpbmcgdGhlIHJlc3QgKG1ldGhv ZCwgaG9zdCBhbmQgdXNlcm5hbWUsIGV0Yy4pCmludGFjdC4gIFR5cGluZyB0aHJlZSBzbGFzaGVz IGluIGEgcm93IGlnbm9yZXMgZXZlcnl0aGluZyBpbiByZW1vdGUgZmlsZQpuYW1lcy4gICpOb3Rl ICh0cmFtcClGaWxlIG5hbWUgY29tcGxldGlvbjo6LgoKICAgRW1hY3MgaW50ZXJwcmV0cyDigJh+ L+KAmSBhcyB5b3VyIGhvbWUgZGlyZWN0b3J5LiAgVGh1cywg4oCYfi9mb28vYmFyLnR4dOKAmQpz cGVjaWZpZXMgYSBmaWxlIG5hbWVkIOKAmGJhci50eHTigJksIGluc2lkZSBhIGRpcmVjdG9yeSBu YW1lZCDigJhmb2/igJksIHdoaWNoCmlzIGluIHR1cm4gbG9jYXRlZCBpbiB5b3VyIGhvbWUgZGly ZWN0b3J5LiAgSW4gYWRkaXRpb24sIOKAmH5VU0VSLUlEL+KAmQptZWFucyB0aGUgaG9tZSBkaXJl Y3Rvcnkgb2YgYSB1c2VyIHdob3NlIGxvZ2luIG5hbWUgaXMgVVNFUi1JRC4gIEFueQpsZWFkaW5n IGRpcmVjdG9yeSBuYW1lIGluIGZyb250IG9mIHRoZSDigJh+4oCZIGlzIGlnbm9yZWQ6IHRodXMs CuKAmC91Mi9lbWFjcy9+L2Zvby9iYXIudHh04oCZIGlzIGVxdWl2YWxlbnQgdG8g4oCYfi9mb28v YmFyLnR4dOKAmS4KCiAgIE9uIE1TLVdpbmRvd3MgYW5kIE1TLURPUyBzeXN0ZW1zLCB3aGVyZSBh IHVzZXIgZG9lc27igJl0IGFsd2F5cyBoYXZlIGEKaG9tZSBkaXJlY3RvcnksIEVtYWNzIHVzZXMg c2V2ZXJhbCBhbHRlcm5hdGl2ZXMuICBGb3IgTVMtV2luZG93cywgc2VlCipub3RlIFdpbmRvd3Mg SE9NRTo6OyBmb3IgTVMtRE9TLCBzZWUgKm5vdGUgTVMtRE9TIEZpbGUgTmFtZXM6Oi4gIE9uCnRo ZXNlIHN5c3RlbXMsIHRoZSDigJh+VVNFUi1JRC/igJkgY29uc3RydWN0IGlzIHN1cHBvcnRlZCBv bmx5IGZvciB0aGUKY3VycmVudCB1c2VyLCBpLmUuLCBvbmx5IGlmIFVTRVItSUQgaXMgdGhlIGN1 cnJlbnQgdXNlcuKAmXMgbG9naW4gbmFtZS4KCiAgIFRvIHByZXZlbnQgRW1hY3MgZnJvbSBpbnNl cnRpbmcgdGhlIGRlZmF1bHQgZGlyZWN0b3J5IHdoZW4gcmVhZGluZwpmaWxlIG5hbWVzLCBjaGFu Z2UgdGhlIHZhcmlhYmxlIOKAmGluc2VydC1kZWZhdWx0LWRpcmVjdG9yeeKAmSB0byDigJhuaWzi gJkuICBJbgp0aGF0IGNhc2UsIHRoZSBtaW5pYnVmZmVyIHN0YXJ0cyBvdXQgZW1wdHkuICBOb25l dGhlbGVzcywgcmVsYXRpdmUgZmlsZQpuYW1lIGFyZ3VtZW50cyBhcmUgc3RpbGwgaW50ZXJwcmV0 ZWQgYmFzZWQgb24gdGhlIHNhbWUgZGVmYXVsdApkaXJlY3RvcnkuCgogICBZb3UgY2FuIGFsc28g ZW50ZXIgcmVtb3RlIGZpbGUgbmFtZXMgaW4gdGhlIG1pbmlidWZmZXIuICAqTm90ZSBSZW1vdGUK RmlsZXM6Oi4KCgoqKiA4LjMgRWRpdGluZyBpbiB0aGUgTWluaWJ1ZmZlcgoKVGhlIG1pbmlidWZm ZXIgaXMgYW4gRW1hY3MgYnVmZmVyLCBhbGJlaXQgYSBwZWN1bGlhciBvbmUsIGFuZCB0aGUgdXN1 YWwKRW1hY3MgY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBmb3IgZWRpdGluZyB0aGUgYXJndW1lbnQg dGV4dC4gIChUaGUKcHJvbXB0LCBob3dldmVyLCBpcyAicmVhZC1vbmx5IiwgYW5kIGNhbm5vdCBi ZSBjaGFuZ2VkLikKCiAgIFNpbmNlIDxSRVQ+IGluIHRoZSBtaW5pYnVmZmVyIHN1Ym1pdHMgdGhl IGFyZ3VtZW50LCB5b3UgY2Fu4oCZdCB1c2UgaXQKdG8gaW5zZXJ0IGEgbmV3bGluZS4gIFlvdSBj YW4gZG8gdGhhdCB3aXRoIOKAmEMtcSBDLWrigJksIHdoaWNoIGluc2VydHMgYQrigJhDLWrigJkg Y29udHJvbCBjaGFyYWN0ZXIsIHdoaWNoIGlzIGZvcm1hbGx5IGVxdWl2YWxlbnQgdG8gYSBuZXds aW5lCmNoYXJhY3RlciAoKm5vdGUgSW5zZXJ0aW5nIFRleHQ6OikuICBBbHRlcm5hdGl2ZWx5LCB5 b3UgY2FuIHVzZSB0aGUK4oCYQy1v4oCZICjigJhvcGVuLWxpbmXigJkpIGNvbW1hbmQgKCpub3Rl IEJsYW5rIExpbmVzOjopLgoKICAgSW5zaWRlIGEgbWluaWJ1ZmZlciwgdGhlIGtleXMgPFRBQj4s IDxTUEM+LCBhbmQg4oCYP+KAmSBhcmUgb2Z0ZW4gYm91bmQKdG8gImNvbXBsZXRpb24gY29tbWFu ZHMiLCB3aGljaCBhbGxvdyB5b3UgdG8gZWFzaWx5IGZpbGwgaW4gdGhlIGRlc2lyZWQKdGV4dCB3 aXRob3V0IHR5cGluZyBhbGwgb2YgaXQuICAqTm90ZSBDb21wbGV0aW9uOjouICBBcyB3aXRoIDxS RVQ+LCB5b3UKY2FuIHVzZSDigJhDLXHigJkgdG8gaW5zZXJ0IGEgPFRBQj4sIDxTUEM+LCBvciDi gJg/4oCZIGNoYXJhY3Rlci4KCiAgIEZvciBjb252ZW5pZW5jZSwg4oCYQy1h4oCZICjigJhtb3Zl LWJlZ2lubmluZy1vZi1saW5l4oCZKSBpbiBhIG1pbmlidWZmZXIKbW92ZXMgcG9pbnQgdG8gdGhl IGJlZ2lubmluZyBvZiB0aGUgYXJndW1lbnQgdGV4dCwgbm90IHRoZSBiZWdpbm5pbmcgb2YKdGhl IHByb21wdC4gIEZvciBleGFtcGxlLCB0aGlzIGFsbG93cyB5b3UgdG8gZXJhc2UgdGhlIGVudGly ZSBhcmd1bWVudAp3aXRoIOKAmEMtYSBDLWvigJkuCgogICBXaGVuIHRoZSBtaW5pYnVmZmVyIGlz IGFjdGl2ZSwgdGhlIGVjaG8gYXJlYSBpcyB0cmVhdGVkIG11Y2ggbGlrZSBhbgpvcmRpbmFyeSBF bWFjcyB3aW5kb3cuICBGb3IgaW5zdGFuY2UsIHlvdSBjYW4gc3dpdGNoIHRvIGFub3RoZXIgd2lu ZG93Cih3aXRoIOKAmEMteCBv4oCZKSwgZWRpdCB0ZXh0IHRoZXJlLCB0aGVuIHJldHVybiB0byB0 aGUgbWluaWJ1ZmZlciB3aW5kb3cgdG8KZmluaXNoIHRoZSBhcmd1bWVudC4gIFlvdSBjYW4gZXZl biBraWxsIHRleHQgaW4gYW5vdGhlciB3aW5kb3csIHJldHVybgp0byB0aGUgbWluaWJ1ZmZlciB3 aW5kb3csIGFuZCB5YW5rIHRoZSB0ZXh0IGludG8gdGhlIGFyZ3VtZW50LiAgVGhlcmUKYXJlIHNv bWUgcmVzdHJpY3Rpb25zIG9uIHRoZSBtaW5pYnVmZmVyIHdpbmRvdywgaG93ZXZlcjogZm9yIGlu c3RhbmNlLAp5b3UgY2Fubm90IHNwbGl0IGl0LiAgKk5vdGUgV2luZG93czo6LgoKICAgTm9ybWFs bHksIHRoZSBtaW5pYnVmZmVyIHdpbmRvdyBvY2N1cGllcyBhIHNpbmdsZSBzY3JlZW4gbGluZS4K SG93ZXZlciwgaWYgeW91IGFkZCB0d28gb3IgbW9yZSBsaW5lc+KAmSB3b3J0aCBvZiB0ZXh0IGlu dG8gdGhlCm1pbmlidWZmZXIsIGl0IGV4cGFuZHMgYXV0b21hdGljYWxseSB0byBhY2NvbW1vZGF0 ZSB0aGUgdGV4dC4gIFRoZQp2YXJpYWJsZSDigJhyZXNpemUtbWluaS13aW5kb3dz4oCZIGNvbnRy b2xzIHRoZSByZXNpemluZyBvZiB0aGUgbWluaWJ1ZmZlci4KVGhlIGRlZmF1bHQgdmFsdWUgaXMg 4oCYZ3Jvdy1vbmx54oCZLCB3aGljaCBtZWFucyB0aGUgYmVoYXZpb3Igd2UgaGF2ZSBqdXN0CmRl c2NyaWJlZC4gIElmIHRoZSB2YWx1ZSBpcyDigJh04oCZLCB0aGUgbWluaWJ1ZmZlciB3aW5kb3cg d2lsbCBhbHNvIHNocmluawphdXRvbWF0aWNhbGx5IGlmIHlvdSByZW1vdmUgc29tZSBsaW5lcyBv ZiB0ZXh0IGZyb20gdGhlIG1pbmlidWZmZXIsIGRvd24KdG8gYSBtaW5pbXVtIG9mIG9uZSBzY3Jl ZW4gbGluZS4gIElmIHRoZSB2YWx1ZSBpcyDigJhuaWzigJksIHRoZSBtaW5pYnVmZmVyCndpbmRv dyBuZXZlciBjaGFuZ2VzIHNpemUgYXV0b21hdGljYWxseSwgYnV0IHlvdSBjYW4gdXNlIHRoZSB1 c3VhbAp3aW5kb3ctcmVzaXppbmcgY29tbWFuZHMgb24gaXQgKCpub3RlIFdpbmRvd3M6OikuCgog ICBUaGUgdmFyaWFibGUg4oCYbWF4LW1pbmktd2luZG93LWhlaWdodOKAmSBjb250cm9scyB0aGUg bWF4aW11bSBoZWlnaHQgZm9yCnJlc2l6aW5nIHRoZSBtaW5pYnVmZmVyIHdpbmRvdy4gIEEgZmxv YXRpbmctcG9pbnQgbnVtYmVyIHNwZWNpZmllcyBhCmZyYWN0aW9uIG9mIHRoZSBmcmFtZeKAmXMg aGVpZ2h0OyBhbiBpbnRlZ2VyIHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIKb2YgbGluZXM7 IOKAmG5pbOKAmSBtZWFucyBkbyBub3QgcmVzaXplIHRoZSBtaW5pYnVmZmVyIHdpbmRvdyBhdXRv bWF0aWNhbGx5LgpUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwLjI1LgoKICAgVGhlIOKAmEMtTS124oCZ IGNvbW1hbmQgaW4gdGhlIG1pbmlidWZmZXIgc2Nyb2xscyB0aGUgaGVscCB0ZXh0IGZyb20KY29t bWFuZHMgdGhhdCBkaXNwbGF5IGhlbHAgdGV4dCBvZiBhbnkgc29ydCBpbiBhbm90aGVyIHdpbmRv dy4gIFlvdSBjYW4KYWxzbyBzY3JvbGwgdGhlIGhlbHAgdGV4dCB3aXRoIOKAmE0tPFBhZ2VVcD7i gJkgYW5kIOKAmE0tPFBhZ2VEb3duPuKAmSAob3IsCmVxdWl2YWxlbnRseSwg4oCYTS08cHJpb3I+ 4oCZIGFuZCDigJhNLTxuZXh0PuKAmSkuICBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsCndpdGgg bG9uZyBsaXN0cyBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucy4gICpOb3RlIE90aGVyIFdpbmRvdzo6 LgoKICAgRW1hY3Mgbm9ybWFsbHkgZGlzYWxsb3dzIG1vc3QgY29tbWFuZHMgdGhhdCB1c2UgdGhl IG1pbmlidWZmZXIgd2hpbGUKdGhlIG1pbmlidWZmZXIgaXMgYWN0aXZlLiAgVG8gYWxsb3cgc3Vj aCBjb21tYW5kcyBpbiB0aGUgbWluaWJ1ZmZlciwgc2V0CnRoZSB2YXJpYWJsZSDigJhlbmFibGUt cmVjdXJzaXZlLW1pbmlidWZmZXJz4oCZIHRvIOKAmHTigJkuCgogICBXaGVuIG5vdCBhY3RpdmUs IHRoZSBtaW5pYnVmZmVyIGlzIGluIOKAmG1pbmlidWZmZXItaW5hY3RpdmUtbW9kZeKAmSwgYW5k CmNsaWNraW5nIOKAmG1vdXNlLTHigJkgdGhlcmUgc2hvd3MgdGhlIOKAmCpNZXNzYWdlcyrigJkg YnVmZmVyLiAgSWYgeW91IHVzZSBhCmRlZGljYXRlZCBmcmFtZSBmb3IgbWluaWJ1ZmZlcnMsIEVt YWNzIGFsc28gcmVjb2duaXplcyBjZXJ0YWluIGtleXMKdGhlcmUsIGZvciBleGFtcGxlLCDigJhu 4oCZIHRvIG1ha2UgYSBuZXcgZnJhbWUuCgoKKiogOC40IENvbXBsZXRpb24KCllvdSBjYW4gb2Z0 ZW4gdXNlIGEgZmVhdHVyZSBjYWxsZWQgImNvbXBsZXRpb24iIHRvIGhlbHAgZW50ZXIgYXJndW1l bnRzLgpUaGlzIG1lYW5zIHRoYXQgYWZ0ZXIgeW91IHR5cGUgcGFydCBvZiB0aGUgYXJndW1lbnQs IEVtYWNzIGNhbiBmaWxsIGluCnRoZSByZXN0LCBvciBzb21lIG9mIGl0LCBiYXNlZCBvbiB3aGF0 IHdhcyB0eXBlZCBzbyBmYXIuCgogICBXaGVuIGNvbXBsZXRpb24gaXMgYXZhaWxhYmxlLCBjZXJ0 YWluIGtleXMgKHVzdWFsbHkgPFRBQj4sIDxSRVQ+LCBhbmQKPFNQQz4pIGFyZSByZWJvdW5kIGlu IHRoZSBtaW5pYnVmZmVyIHRvIHNwZWNpYWwgY29tcGxldGlvbiBjb21tYW5kcwooKm5vdGUgQ29t cGxldGlvbiBDb21tYW5kczo6KS4gIFRoZXNlIGNvbW1hbmRzIGF0dGVtcHQgdG8gY29tcGxldGUg dGhlCnRleHQgaW4gdGhlIG1pbmlidWZmZXIsIGJhc2VkIG9uIGEgc2V0IG9mICJjb21wbGV0aW9u IGFsdGVybmF0aXZlcyIKcHJvdmlkZWQgYnkgdGhlIGNvbW1hbmQgdGhhdCByZXF1ZXN0ZWQgdGhl IGFyZ3VtZW50LiAgWW91IGNhbiB1c3VhbGx5CnR5cGUg4oCYP+KAmSB0byBzZWUgYSBsaXN0IG9m IGNvbXBsZXRpb24gYWx0ZXJuYXRpdmVzLgoKICAgQWx0aG91Z2ggY29tcGxldGlvbiBpcyB1c3Vh bGx5IGRvbmUgaW4gdGhlIG1pbmlidWZmZXIsIHRoZSBmZWF0dXJlIGlzCnNvbWV0aW1lcyBhdmFp bGFibGUgaW4gb3JkaW5hcnkgYnVmZmVycyB0b28uICAqTm90ZSBTeW1ib2wgQ29tcGxldGlvbjo6 LgoKKyBNZW51OgoKICAtIENvbXBsZXRpb24gRXhhbXBsZTo6ICAgICAgIEV4YW1wbGVzIG9mIHVz aW5nIGNvbXBsZXRpb24uCiAgLSBDb21wbGV0aW9uIENvbW1hbmRzOjogICAgICBBIGxpc3Qgb2Yg Y29tcGxldGlvbiBjb21tYW5kcy4KICAtIENvbXBsZXRpb24gRXhpdDo6ICAgICAgICAgIENvbXBs ZXRpb24gYW5kIG1pbmlidWZmZXIgdGV4dCBzdWJtaXNzaW9uLgogIC0gQ29tcGxldGlvbiBTdHls ZXM6OiAgICAgICAgSG93IGNvbXBsZXRpb24gbWF0Y2hlcyBhcmUgY2hvc2VuLgogIC0gQ29tcGxl dGlvbiBPcHRpb25zOjogICAgICAgT3B0aW9ucyBmb3IgY29tcGxldGlvbi4KCgoqKiogOC40LjEg Q29tcGxldGlvbiBFeGFtcGxlCgpBIHNpbXBsZSBleGFtcGxlIG1heSBoZWxwIGhlcmUuICDigJhN LXjigJkgdXNlcyB0aGUgbWluaWJ1ZmZlciB0byByZWFkIHRoZQpuYW1lIG9mIGEgY29tbWFuZCwg c28gY29tcGxldGlvbiB3b3JrcyBieSBtYXRjaGluZyB0aGUgbWluaWJ1ZmZlciB0ZXh0CmFnYWlu c3QgdGhlIG5hbWVzIG9mIGV4aXN0aW5nIEVtYWNzIGNvbW1hbmRzLiAgU3VwcG9zZSB5b3Ugd2lz aCB0byBydW4KdGhlIGNvbW1hbmQg4oCYYXV0by1maWxsLW1vZGXigJkuICBZb3UgY2FuIGRvIHRo YXQgYnkgdHlwaW5nIOKAmE0teAphdXRvLWZpbGwtbW9kZSA8UkVUPuKAmSwgYnV0IGl0IGlzIGVh c2llciB0byB1c2UgY29tcGxldGlvbi4KCiAgIElmIHlvdSB0eXBlIOKAmE0teCBhIHUgPFRBQj7i gJksIHRoZSA8VEFCPiBsb29rcyBmb3IgY29tcGxldGlvbgphbHRlcm5hdGl2ZXMgKGluIHRoaXMg Y2FzZSwgY29tbWFuZCBuYW1lcykgdGhhdCBzdGFydCB3aXRoIOKAmGF14oCZLiAgVGhlcmUKYXJl IHNldmVyYWwsIGluY2x1ZGluZyDigJhhdXRvLWZpbGwtbW9kZeKAmSBhbmQg4oCYYXV0b2NvbmYt bW9kZeKAmSwgYnV0IHRoZXkKYWxsIGJlZ2luIHdpdGgg4oCYYXV0b+KAmSwgc28gdGhlIOKAmGF1 4oCZIGluIHRoZSBtaW5pYnVmZmVyIGNvbXBsZXRlcyB0bwrigJhhdXRv4oCZLiAgKE1vcmUgY29t bWFuZHMgbWF5IGJlIGRlZmluZWQgaW4geW91ciBFbWFjcyBzZXNzaW9uLiAgRm9yCmV4YW1wbGUs IGlmIGEgY29tbWFuZCBjYWxsZWQg4oCYYXV0aG9yaXplLW1l4oCZIHdhcyBkZWZpbmVkLCBFbWFj cyBjb3VsZApvbmx5IGNvbXBsZXRlIGFzIGZhciBhcyDigJhhdXTigJkuKQoKICAgSWYgeW91IHR5 cGUgPFRBQj4gYWdhaW4gaW1tZWRpYXRlbHksIGl0IGNhbm5vdCBkZXRlcm1pbmUgdGhlIG5leHQK Y2hhcmFjdGVyOyBpdCBjb3VsZCBiZSDigJgt4oCZLCDigJhh4oCZLCBvciDigJhj4oCZLiAgU28g aXQgZG9lcyBub3QgYWRkIGFueQpjaGFyYWN0ZXJzOyBpbnN0ZWFkLCA8VEFCPiBkaXNwbGF5cyBh IGxpc3Qgb2YgYWxsIHBvc3NpYmxlIGNvbXBsZXRpb25zCmluIGFub3RoZXIgd2luZG93LgoKICAg TmV4dCwgdHlwZSDigJgtZuKAmS4gIFRoZSBtaW5pYnVmZmVyIG5vdyBjb250YWlucyDigJhhdXRv LWbigJksIGFuZCB0aGUgb25seQpjb21tYW5kIG5hbWUgdGhhdCBzdGFydHMgd2l0aCB0aGlzIGlz IOKAmGF1dG8tZmlsbC1tb2Rl4oCZLiAgSWYgeW91IG5vdyB0eXBlCjxUQUI+LCBjb21wbGV0aW9u IGZpbGxzIGluIHRoZSByZXN0IG9mIHRoZSBhcmd1bWVudCDigJhhdXRvLWZpbGwtbW9kZeKAmQpp bnRvIHRoZSBtaW5pYnVmZmVyLgoKICAgSGVuY2UsIHR5cGluZyBqdXN0IOKAmGEgdSA8VEFCPiAt IGYgPFRBQj7igJkgYWxsb3dzIHlvdSB0byBlbnRlcgrigJhhdXRvLWZpbGwtbW9kZeKAmS4KCgoq KiogOC40LjIgQ29tcGxldGlvbiBDb21tYW5kcwoKSGVyZSBpcyBhIGxpc3Qgb2YgdGhlIGNvbXBs ZXRpb24gY29tbWFuZHMgZGVmaW5lZCBpbiB0aGUgbWluaWJ1ZmZlciB3aGVuCmNvbXBsZXRpb24g aXMgYWxsb3dlZC4KCuKAmDxUQUI+4oCZCiAgICAgQ29tcGxldGUgdGhlIHRleHQgaW4gdGhlIG1p bmlidWZmZXIgYXMgbXVjaCBhcyBwb3NzaWJsZTsgaWYgdW5hYmxlCiAgICAgdG8gY29tcGxldGUs IGRpc3BsYXkgYSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zCiAgICAgKOKAmG1pbmlidWZm ZXItY29tcGxldGXigJkpLgrigJg8U1BDPuKAmQogICAgIENvbXBsZXRlIHVwIHRvIG9uZSB3b3Jk IGZyb20gdGhlIG1pbmlidWZmZXIgdGV4dCBiZWZvcmUgcG9pbnQKICAgICAo4oCYbWluaWJ1ZmZl ci1jb21wbGV0ZS13b3Jk4oCZKS4gIFRoaXMgY29tbWFuZCBpcyBub3QgYXZhaWxhYmxlIGZvcgog ICAgIGFyZ3VtZW50cyB0aGF0IG9mdGVuIGluY2x1ZGUgc3BhY2VzLCBzdWNoIGFzIGZpbGUgbmFt ZXMuCuKAmDxSRVQ+4oCZCiAgICAgU3VibWl0IHRoZSB0ZXh0IGluIHRoZSBtaW5pYnVmZmVyIGFz IHRoZSBhcmd1bWVudCwgcG9zc2libHkKICAgICBjb21wbGV0aW5nIGZpcnN0ICjigJhtaW5pYnVm ZmVyLWNvbXBsZXRlLWFuZC1leGl04oCZKS4gICpOb3RlCiAgICAgQ29tcGxldGlvbiBFeGl0Ojou CuKAmD/igJkKICAgICBEaXNwbGF5IGEgbGlzdCBvZiBjb21wbGV0aW9ucyAo4oCYbWluaWJ1ZmZl ci1jb21wbGV0aW9uLWhlbHDigJkpLgoKICAgPFRBQj4gKOKAmG1pbmlidWZmZXItY29tcGxldGXi gJkpIGlzIHRoZSBtb3N0IGZ1bmRhbWVudGFsIGNvbXBsZXRpb24KY29tbWFuZC4gIEl0IHNlYXJj aGVzIGZvciBhbGwgcG9zc2libGUgY29tcGxldGlvbnMgdGhhdCBtYXRjaCB0aGUKZXhpc3Rpbmcg bWluaWJ1ZmZlciB0ZXh0LCBhbmQgYXR0ZW1wdHMgdG8gY29tcGxldGUgYXMgbXVjaCBhcyBpdCBj YW4uCipOb3RlIENvbXBsZXRpb24gU3R5bGVzOjosIGZvciBob3cgY29tcGxldGlvbiBhbHRlcm5h dGl2ZXMgYXJlIGNob3Nlbi4KCiAgIDxTUEM+ICjigJhtaW5pYnVmZmVyLWNvbXBsZXRlLXdvcmTi gJkpIGNvbXBsZXRlcyBsaWtlIDxUQUI+LCBidXQgb25seSB1cAp0byB0aGUgbmV4dCBoeXBoZW4g b3Igc3BhY2UuICBJZiB5b3UgaGF2ZSDigJhhdXRvLWbigJkgaW4gdGhlIG1pbmlidWZmZXIgYW5k CnR5cGUgPFNQQz4sIGl0IGZpbmRzIHRoYXQgdGhlIGNvbXBsZXRpb24gaXMg4oCYYXV0by1maWxs LW1vZGXigJksIGJ1dCBpdApvbmx5IGluc2VydHMg4oCYaWxsLeKAmSwgZ2l2aW5nIOKAmGF1dG8t ZmlsbC3igJkuICBBbm90aGVyIDxTUEM+IGF0IHRoaXMgcG9pbnQKY29tcGxldGVzIGFsbCB0aGUg d2F5IHRvIOKAmGF1dG8tZmlsbC1tb2Rl4oCZLgoKICAgSWYgPFRBQj4gb3IgPFNQQz4gaXMgdW5h YmxlIHRvIGNvbXBsZXRlLCBpdCBkaXNwbGF5cyBhIGxpc3Qgb2YKbWF0Y2hpbmcgY29tcGxldGlv biBhbHRlcm5hdGl2ZXMgKGlmIHRoZXJlIGFyZSBhbnkpIGluIGFub3RoZXIgd2luZG93LgpZb3Ug Y2FuIGRpc3BsYXkgdGhlIHNhbWUgbGlzdCB3aXRoIOKAmD/igJkgKOKAmG1pbmlidWZmZXItY29t cGxldGlvbi1oZWxw4oCZKS4KVGhlIGZvbGxvd2luZyBjb21tYW5kcyBjYW4gYmUgdXNlZCB3aXRo IHRoZSBjb21wbGV0aW9uIGxpc3Q6CgrigJhNLXbigJkK4oCYPFBhZ2VVcD7igJkK4oCYPHByaW9y PuKAmQogICAgIFR5cGluZyDigJhNLXbigJksIHdoaWxlIGluIHRoZSBtaW5pYnVmZmVyLCBzZWxl Y3RzIHRoZSB3aW5kb3cgc2hvd2luZwogICAgIHRoZSBjb21wbGV0aW9uIGxpc3QgKOKAmHN3aXRj aC10by1jb21wbGV0aW9uc+KAmSkuICBUaGlzIHBhdmVzIHRoZSB3YXkKICAgICBmb3IgdXNpbmcg dGhlIGNvbW1hbmRzIGJlbG93LiAgPFBhZ2VVcD4gb3IgPHByaW9yPiBkb2VzIHRoZSBzYW1lLgog ICAgIFlvdSBjYW4gYWxzbyBzZWxlY3QgdGhlIHdpbmRvdyBpbiBvdGhlciB3YXlzICgqbm90ZSBX aW5kb3dzOjopLgoK4oCYPFJFVD7igJkK4oCYbW91c2UtMeKAmQrigJhtb3VzZS0y4oCZCiAgICAg V2hpbGUgaW4gdGhlIGNvbXBsZXRpb24gbGlzdCBidWZmZXIsIHRoaXMgY2hvb3NlcyB0aGUgY29t cGxldGlvbiBhdAogICAgIHBvaW50ICjigJhjaG9vc2UtY29tcGxldGlvbuKAmSkuCgrigJg8UklH SFQ+4oCZCiAgICAgV2hpbGUgaW4gdGhlIGNvbXBsZXRpb24gbGlzdCBidWZmZXIsIHRoaXMgbW92 ZXMgcG9pbnQgdG8gdGhlCiAgICAgZm9sbG93aW5nIGNvbXBsZXRpb24gYWx0ZXJuYXRpdmUgKOKA mG5leHQtY29tcGxldGlvbuKAmSkuCgrigJg8TEVGVD7igJkKICAgICBXaGlsZSBpbiB0aGUgY29t cGxldGlvbiBsaXN0IGJ1ZmZlciwgdGhpcyBtb3ZlcyBwb2ludCB0byB0aGUKICAgICBwcmV2aW91 cyBjb21wbGV0aW9uIGFsdGVybmF0aXZlICjigJhwcmV2aW91cy1jb21wbGV0aW9u4oCZKS4KCgoq KiogOC40LjMgQ29tcGxldGlvbiBFeGl0CgpXaGVuIGEgY29tbWFuZCByZWFkcyBhbiBhcmd1bWVu dCB1c2luZyB0aGUgbWluaWJ1ZmZlciB3aXRoIGNvbXBsZXRpb24sCml0IGFsc28gY29udHJvbHMg d2hhdCBoYXBwZW5zIHdoZW4geW91IHR5cGUgPFJFVD4KKOKAmG1pbmlidWZmZXItY29tcGxldGUt YW5kLWV4aXTigJkpIHRvIHN1Ym1pdCB0aGUgYXJndW1lbnQuICBUaGVyZSBhcmUgZm91cgp0eXBl cyBvZiBiZWhhdmlvcjoKCiAgIOKAoiAiU3RyaWN0IGNvbXBsZXRpb24iIGFjY2VwdHMgb25seSBl eGFjdCBjb21wbGV0aW9uIG1hdGNoZXMuICBUeXBpbmcKICAgICA8UkVUPiBleGl0cyB0aGUgbWlu aWJ1ZmZlciBvbmx5IGlmIHRoZSBtaW5pYnVmZmVyIHRleHQgaXMgYW4gZXhhY3QKICAgICBtYXRj aCwgb3IgY29tcGxldGVzIHRvIG9uZS4gIE90aGVyd2lzZSwgRW1hY3MgcmVmdXNlcyB0byBleGl0 IHRoZQogICAgIG1pbmlidWZmZXI7IGluc3RlYWQgaXQgdHJpZXMgdG8gY29tcGxldGUsIGFuZCBp ZiBubyBjb21wbGV0aW9uIGNhbgogICAgIGJlIGRvbmUgaXQgbW9tZW50YXJpbHkgZGlzcGxheXMg 4oCYW05vIG1hdGNoXeKAmSBhZnRlciB0aGUgbWluaWJ1ZmZlcgogICAgIHRleHQuICAoWW91IGNh biBzdGlsbCBsZWF2ZSB0aGUgbWluaWJ1ZmZlciBieSB0eXBpbmcg4oCYQy1n4oCZIHRvCiAgICAg Y2FuY2VsIHRoZSBjb21tYW5kLikKCiAgICAgQW4gZXhhbXBsZSBvZiBhIGNvbW1hbmQgdGhhdCB1 c2VzIHRoaXMgYmVoYXZpb3IgaXMg4oCYTS144oCZLCBzaW5jZSBpdAogICAgIGlzIG1lYW5pbmds ZXNzIGZvciBpdCB0byBhY2NlcHQgYSBub24tZXhpc3RlbnQgY29tbWFuZCBuYW1lLgoKICAg4oCi ICJDYXV0aW91cyBjb21wbGV0aW9uIiBpcyBsaWtlIHN0cmljdCBjb21wbGV0aW9uLCBleGNlcHQg PFJFVD4gZXhpdHMKICAgICBvbmx5IGlmIHRoZSB0ZXh0IGlzIGFscmVhZHkgYW4gZXhhY3QgbWF0 Y2guICBJZiB0aGUgdGV4dCBjb21wbGV0ZXMKICAgICB0byBhbiBleGFjdCBtYXRjaCwgPFJFVD4g cGVyZm9ybXMgdGhhdCBjb21wbGV0aW9uIGJ1dCBkb2VzIG5vdCBleGl0CiAgICAgeWV0OyB5b3Ug bXVzdCB0eXBlIGEgc2Vjb25kIDxSRVQ+IHRvIGV4aXQuCgogICAgIENhdXRpb3VzIGNvbXBsZXRp b24gaXMgdXNlZCBmb3IgcmVhZGluZyBmaWxlIG5hbWVzIGZvciBmaWxlcyB0aGF0CiAgICAgbXVz dCBhbHJlYWR5IGV4aXN0LCBmb3IgZXhhbXBsZS4KCiAgIOKAoiAiUGVybWlzc2l2ZSBjb21wbGV0 aW9uIiBhbGxvd3MgYW55IGlucHV0OyB0aGUgY29tcGxldGlvbiBjYW5kaWRhdGVzCiAgICAgYXJl IGp1c3Qgc3VnZ2VzdGlvbnMuICBUeXBpbmcgPFJFVD4gZG9lcyBub3QgY29tcGxldGUsIGl0IGp1 c3QKICAgICBzdWJtaXRzIHRoZSBhcmd1bWVudCBhcyB5b3UgaGF2ZSBlbnRlcmVkIGl0LgoKICAg 4oCiICJQZXJtaXNzaXZlIGNvbXBsZXRpb24gd2l0aCBjb25maXJtYXRpb24iIGlzIGxpa2UgcGVy bWlzc2l2ZQogICAgIGNvbXBsZXRpb24sIHdpdGggYW4gZXhjZXB0aW9uOiBpZiB5b3UgdHlwZWQg PFRBQj4gYW5kIHRoaXMKICAgICBjb21wbGV0ZWQgdGhlIHRleHQgdXAgdG8gc29tZSBpbnRlcm1l ZGlhdGUgc3RhdGUgKGkuZS4sIG9uZSB0aGF0IGlzCiAgICAgbm90IHlldCBhbiBleGFjdCBjb21w bGV0aW9uIG1hdGNoKSwgdHlwaW5nIDxSRVQ+IHJpZ2h0IGFmdGVyd2FyZAogICAgIGRvZXMgbm90 IHN1Ym1pdCB0aGUgYXJndW1lbnQuICBJbnN0ZWFkLCBFbWFjcyBhc2tzIGZvciBjb25maXJtYXRp b24KICAgICBieSBtb21lbnRhcmlseSBkaXNwbGF5aW5nIOKAmFtDb25maXJtXeKAmSBhZnRlciB0 aGUgdGV4dDsgdHlwZSA8UkVUPgogICAgIGFnYWluIHRvIGNvbmZpcm0gYW5kIHN1Ym1pdCB0aGUg dGV4dC4gIFRoaXMgY2F0Y2hlcyBhIGNvbW1vbgogICAgIG1pc3Rha2UsIGluIHdoaWNoIG9uZSB0 eXBlcyA8UkVUPiBiZWZvcmUgcmVhbGl6aW5nIHRoYXQgPFRBQj4gZGlkCiAgICAgbm90IGNvbXBs ZXRlIGFzIGZhciBhcyBkZXNpcmVkLgoKICAgICBZb3UgY2FuIHR3ZWFrIHRoZSBjb25maXJtYXRp b24gYmVoYXZpb3IgYnkgY3VzdG9taXppbmcgdGhlIHZhcmlhYmxlCiAgICAg4oCYY29uZmlybS1u b25leGlzdGVudC1maWxlLW9yLWJ1ZmZlcuKAmS4gIFRoZSBkZWZhdWx0IHZhbHVlLAogICAgIOKA mGFmdGVyLWNvbXBsZXRpb27igJksIGdpdmVzIHRoZSBiZWhhdmlvciB3ZSBoYXZlIGp1c3QgZGVz Y3JpYmVkLiAgSWYKICAgICB5b3UgY2hhbmdlIGl0IHRvIOKAmG5pbOKAmSwgRW1hY3MgZG9lcyBu b3QgYXNrIGZvciBjb25maXJtYXRpb24sCiAgICAgZmFsbGluZyBiYWNrIG9uIHBlcm1pc3NpdmUg Y29tcGxldGlvbi4gIElmIHlvdSBjaGFuZ2UgaXQgdG8gYW55CiAgICAgb3RoZXIgbm9uLeKAmG5p bOKAmSB2YWx1ZSwgRW1hY3MgYXNrcyBmb3IgY29uZmlybWF0aW9uIHdoZXRoZXIgb3Igbm90CiAg ICAgdGhlIHByZWNlZGluZyBjb21tYW5kIHdhcyA8VEFCPi4KCiAgICAgVGhpcyBiZWhhdmlvciBp cyB1c2VkIGJ5IG1vc3QgY29tbWFuZHMgdGhhdCByZWFkIGZpbGUgbmFtZXMsIGxpa2UKICAgICDi gJhDLXggQy1m4oCZLCBhbmQgY29tbWFuZHMgdGhhdCByZWFkIGJ1ZmZlciBuYW1lcywgbGlrZSDi gJhDLXggYuKAmS4KCgoqKiogOC40LjQgSG93IENvbXBsZXRpb24gQWx0ZXJuYXRpdmVzIEFyZSBD aG9zZW4KCkNvbXBsZXRpb24gY29tbWFuZHMgd29yayBieSBuYXJyb3dpbmcgYSBsYXJnZSBsaXN0 IG9mIHBvc3NpYmxlCmNvbXBsZXRpb24gYWx0ZXJuYXRpdmVzIHRvIGEgc21hbGxlciBzdWJzZXQg dGhhdCBtYXRjaGVzIHdoYXQgeW91IGhhdmUKdHlwZWQgaW4gdGhlIG1pbmlidWZmZXIuICBJbiAq bm90ZSBDb21wbGV0aW9uIEV4YW1wbGU6Oiwgd2UgZ2F2ZSBhCnNpbXBsZSBleGFtcGxlIG9mIHN1 Y2ggbWF0Y2hpbmcuICBUaGUgcHJvY2VkdXJlIG9mIGRldGVybWluaW5nIHdoYXQKY29uc3RpdHV0 ZXMgYSBtYXRjaCBpcyBxdWl0ZSBpbnRyaWNhdGUuICBFbWFjcyBhdHRlbXB0cyB0byBvZmZlcgpw bGF1c2libGUgY29tcGxldGlvbnMgdW5kZXIgbW9zdCBjaXJjdW1zdGFuY2VzLgoKICAgRW1hY3Mg cGVyZm9ybXMgY29tcGxldGlvbiB1c2luZyBvbmUgb3IgbW9yZSAiY29tcGxldGlvbiBzdHlsZXMi 4oCUc2V0cwpvZiBjcml0ZXJpYSBmb3IgbWF0Y2hpbmcgbWluaWJ1ZmZlciB0ZXh0IHRvIGNvbXBs ZXRpb24gYWx0ZXJuYXRpdmVzLgpEdXJpbmcgY29tcGxldGlvbiwgRW1hY3MgdHJpZXMgZWFjaCBj b21wbGV0aW9uIHN0eWxlIGluIHR1cm4uICBJZiBhCnN0eWxlIHlpZWxkcyBvbmUgb3IgbW9yZSBt YXRjaGVzLCB0aGF0IGlzIHVzZWQgYXMgdGhlIGxpc3Qgb2YgY29tcGxldGlvbgphbHRlcm5hdGl2 ZXMuICBJZiBhIHN0eWxlIHByb2R1Y2VzIG5vIG1hdGNoZXMsIEVtYWNzIGZhbGxzIGJhY2sgb24g dGhlCm5leHQgc3R5bGUuCgogICBUaGUgbGlzdCB2YXJpYWJsZSDigJhjb21wbGV0aW9uLXN0eWxl c+KAmSBzcGVjaWZpZXMgdGhlIGNvbXBsZXRpb24gc3R5bGVzCnRvIHVzZS4gIEVhY2ggbGlzdCBl bGVtZW50IGlzIHRoZSBuYW1lIG9mIGEgY29tcGxldGlvbiBzdHlsZSAoYSBMaXNwCnN5bWJvbCku ICBUaGUgZGVmYXVsdCBjb21wbGV0aW9uIHN0eWxlcyBhcmUgKGluIG9yZGVyKToKCuKAmGJhc2lj 4oCZCiAgICAgQSBtYXRjaGluZyBjb21wbGV0aW9uIGFsdGVybmF0aXZlIG11c3QgaGF2ZSB0aGUg c2FtZSBiZWdpbm5pbmcgYXMKICAgICB0aGUgdGV4dCBpbiB0aGUgbWluaWJ1ZmZlciBiZWZvcmUg cG9pbnQuICBGdXJ0aGVybW9yZSwgaWYgdGhlcmUgaXMKICAgICBhbnkgdGV4dCBpbiB0aGUgbWlu aWJ1ZmZlciBhZnRlciBwb2ludCwgdGhlIHJlc3Qgb2YgdGhlIGNvbXBsZXRpb24KICAgICBhbHRl cm5hdGl2ZSBtdXN0IGNvbnRhaW4gdGhhdCB0ZXh0IGFzIGEgc3Vic3RyaW5nLgoK4oCYcGFydGlh bC1jb21wbGV0aW9u4oCZCiAgICAgVGhpcyBhZ2dyZXNzaXZlIGNvbXBsZXRpb24gc3R5bGUgZGl2 aWRlcyB0aGUgbWluaWJ1ZmZlciB0ZXh0IGludG8KICAgICB3b3JkcyBzZXBhcmF0ZWQgYnkgaHlw aGVucyBvciBzcGFjZXMsIGFuZCBjb21wbGV0ZXMgZWFjaCB3b3JkCiAgICAgc2VwYXJhdGVseS4g IChGb3IgZXhhbXBsZSwgd2hlbiBjb21wbGV0aW5nIGNvbW1hbmQgbmFtZXMsIOKAmGVtLWwtbeKA mQogICAgIGNvbXBsZXRlcyB0byDigJhlbWFjcy1saXNwLW1vZGXigJkuKQoKICAgICBGdXJ0aGVy bW9yZSwgYSDigJgq4oCZIGluIHRoZSBtaW5pYnVmZmVyIHRleHQgaXMgdHJlYXRlZCBhcyBhCiAg ICAgIndpbGRjYXJkIuKAlGl0IG1hdGNoZXMgYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIGF0IHRo ZSBjb3JyZXNwb25kaW5nCiAgICAgcG9zaXRpb24gaW4gdGhlIGNvbXBsZXRpb24gYWx0ZXJuYXRp dmUuCgrigJhlbWFjczIy4oCZCiAgICAgVGhpcyBjb21wbGV0aW9uIHN0eWxlIGlzIHNpbWlsYXIg dG8g4oCYYmFzaWPigJksIGV4Y2VwdCB0aGF0IGl0IGlnbm9yZXMKICAgICB0aGUgdGV4dCBpbiB0 aGUgbWluaWJ1ZmZlciBhZnRlciBwb2ludC4gIEl0IGlzIHNvLW5hbWVkIGJlY2F1c2UgaXQKICAg ICBjb3JyZXNwb25kcyB0byB0aGUgY29tcGxldGlvbiBiZWhhdmlvciBpbiBFbWFjcyAyMi4KClRo ZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBjb21wbGV0aW9uIHN0eWxlcyBhcmUgYWxzbyBkZWZpbmVk LCBhbmQgeW91IGNhbgphZGQgdGhlbSB0byDigJhjb21wbGV0aW9uLXN0eWxlc+KAmSBpZiB5b3Ug d2lzaCAoKm5vdGUgQ3VzdG9taXphdGlvbjo6KToKCuKAmHN1YnN0cmluZ+KAmQogICAgIEEgbWF0 Y2hpbmcgY29tcGxldGlvbiBhbHRlcm5hdGl2ZSBtdXN0IGNvbnRhaW4gdGhlIHRleHQgaW4gdGhl CiAgICAgbWluaWJ1ZmZlciBiZWZvcmUgcG9pbnQsIGFuZCB0aGUgdGV4dCBpbiB0aGUgbWluaWJ1 ZmZlciBhZnRlcgogICAgIHBvaW50LCBhcyBzdWJzdHJpbmdzIChpbiB0aGF0IHNhbWUgb3JkZXIp LgoKICAgICBUaHVzLCBpZiB0aGUgdGV4dCBpbiB0aGUgbWluaWJ1ZmZlciBpcyDigJhmb29iYXLi gJksIHdpdGggcG9pbnQgYmV0d2VlbgogICAgIOKAmGZvb+KAmSBhbmQg4oCYYmFy4oCZLCB0aGF0 IG1hdGNoZXMg4oCYQWZvb0JiYXJD4oCZLCB3aGVyZSBBLCBCLCBhbmQgQyBjYW4gYmUKICAgICBh bnkgc3RyaW5nIGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nLgoK4oCYaW5pdGlhbHPigJkKICAg ICBUaGlzIHZlcnkgYWdncmVzc2l2ZSBjb21wbGV0aW9uIHN0eWxlIGF0dGVtcHRzIHRvIGNvbXBs ZXRlIGFjcm9ueW1zCiAgICAgYW5kIGluaXRpYWxpc21zLiAgRm9yIGV4YW1wbGUsIHdoZW4gY29t cGxldGluZyBjb21tYW5kIG5hbWVzLCBpdAogICAgIG1hdGNoZXMg4oCYbGNo4oCZIHRvIOKAmGxp c3QtY29tbWFuZC1oaXN0b3J54oCZLgoKVGhlcmUgaXMgYWxzbyBhIHZlcnkgc2ltcGxlIGNvbXBs ZXRpb24gc3R5bGUgY2FsbGVkIOKAmGVtYWNzMjHigJkuICBJbiB0aGlzCnN0eWxlLCBpZiB0aGUg dGV4dCBpbiB0aGUgbWluaWJ1ZmZlciBpcyDigJhmb29iYXLigJksIG9ubHkgbWF0Y2hlcyBzdGFy dGluZwp3aXRoIOKAmGZvb2JhcuKAmSBhcmUgY29uc2lkZXJlZC4KCiAgIFlvdSBjYW4gdXNlIGRp ZmZlcmVudCBjb21wbGV0aW9uIHN0eWxlcyBpbiBkaWZmZXJlbnQgc2l0dWF0aW9ucywgYnkKc2V0 dGluZyB0aGUgdmFyaWFibGUg4oCYY29tcGxldGlvbi1jYXRlZ29yeS1vdmVycmlkZXPigJkuICBG b3IgZXhhbXBsZSwgdGhlCmRlZmF1bHQgc2V0dGluZyBzYXlzIHRvIHVzZSBvbmx5IOKAmGJhc2lj 4oCZIGFuZCDigJhzdWJzdHJpbmfigJkgY29tcGxldGlvbiBmb3IKYnVmZmVyIG5hbWVzLgoKCioq KiA4LjQuNSBDb21wbGV0aW9uIE9wdGlvbnMKCkNhc2UgaXMgc2lnbmlmaWNhbnQgd2hlbiBjb21w bGV0aW5nIGNhc2Utc2Vuc2l0aXZlIGFyZ3VtZW50cywgc3VjaCBhcwpjb21tYW5kIG5hbWVzLiAg Rm9yIGV4YW1wbGUsIHdoZW4gY29tcGxldGluZyBjb21tYW5kIG5hbWVzLCDigJhBVeKAmSBkb2Vz Cm5vdCBjb21wbGV0ZSB0byDigJhhdXRvLWZpbGwtbW9kZeKAmS4gIENhc2UgZGlmZmVyZW5jZXMg YXJlIGlnbm9yZWQgd2hlbgpjb21wbGV0aW5nIGFyZ3VtZW50cyBpbiB3aGljaCBjYXNlIGRvZXMg bm90IG1hdHRlci4KCiAgIFdoZW4gY29tcGxldGluZyBmaWxlIG5hbWVzLCBjYXNlIGRpZmZlcmVu Y2VzIGFyZSBpZ25vcmVkIGlmIHRoZQp2YXJpYWJsZSDigJhyZWFkLWZpbGUtbmFtZS1jb21wbGV0 aW9uLWlnbm9yZS1jYXNl4oCZIGlzIG5vbi3igJhuaWzigJkuICBUaGUKZGVmYXVsdCB2YWx1ZSBp cyDigJhuaWzigJkgb24gc3lzdGVtcyB0aGF0IGhhdmUgY2FzZS1zZW5zaXRpdmUgZmlsZS1uYW1l cywKc3VjaCBhcyBHTlUvTGludXg7IGl0IGlzIG5vbi3igJhuaWzigJkgb24gc3lzdGVtcyB0aGF0 IGhhdmUgY2FzZS1pbnNlbnNpdGl2ZQpmaWxlLW5hbWVzLCBzdWNoIGFzIE1pY3Jvc29mdCBXaW5k b3dzLiAgV2hlbiBjb21wbGV0aW5nIGJ1ZmZlciBuYW1lcywKY2FzZSBkaWZmZXJlbmNlcyBhcmUg aWdub3JlZCBpZiB0aGUgdmFyaWFibGUK4oCYcmVhZC1idWZmZXItY29tcGxldGlvbi1pZ25vcmUt Y2FzZeKAmSBpcyBub24t4oCYbmls4oCZOyB0aGUgZGVmYXVsdCBpcyDigJhuaWzigJkuCgogICBX aGVuIGNvbXBsZXRpbmcgZmlsZSBuYW1lcywgRW1hY3MgdXN1YWxseSBvbWl0cyBjZXJ0YWluIGFs dGVybmF0aXZlcwp0aGF0IGFyZSBjb25zaWRlcmVkIHVubGlrZWx5IHRvIGJlIGNob3NlbiwgYXMg ZGV0ZXJtaW5lZCBieSB0aGUgbGlzdAp2YXJpYWJsZSDigJhjb21wbGV0aW9uLWlnbm9yZWQtZXh0 ZW5zaW9uc+KAmS4gIEVhY2ggZWxlbWVudCBpbiB0aGUgbGlzdApzaG91bGQgYmUgYSBzdHJpbmc7 IGFueSBmaWxlIG5hbWUgZW5kaW5nIGluIHN1Y2ggYSBzdHJpbmcgaXMgaWdub3JlZCBhcwphIGNv bXBsZXRpb24gYWx0ZXJuYXRpdmUuICBBbnkgZWxlbWVudCBlbmRpbmcgaW4gYSBzbGFzaCAo4oCY L+KAmSkKcmVwcmVzZW50cyBhIHN1YmRpcmVjdG9yeSBuYW1lLiAgVGhlIHN0YW5kYXJkIHZhbHVl IG9mCuKAmGNvbXBsZXRpb24taWdub3JlZC1leHRlbnNpb25z4oCZIGhhcyBzZXZlcmFsIGVsZW1l bnRzIGluY2x1ZGluZyDigJgiLm8i4oCZLArigJgiLmVsYyLigJksIGFuZCDigJgifiLigJkuICBG b3IgZXhhbXBsZSwgaWYgYSBkaXJlY3RvcnkgY29udGFpbnMg4oCYZm9vLmPigJkgYW5kCuKAmGZv by5lbGPigJksIOKAmGZvb+KAmSBjb21wbGV0ZXMgdG8g4oCYZm9vLmPigJkuICBIb3dldmVyLCBp ZiBfYWxsXyBwb3NzaWJsZQpjb21wbGV0aW9ucyBlbmQgaW4gb3RoZXJ3aXNlLWlnbm9yZWQgc3Ry aW5ncywgdGhleSBhcmUgbm90IGlnbm9yZWQ6IGluCnRoZSBwcmV2aW91cyBleGFtcGxlLCDigJhm b28uZeKAmSBjb21wbGV0ZXMgdG8g4oCYZm9vLmVsY+KAmS4gIEVtYWNzIGRpc3JlZ2FyZHMK4oCY Y29tcGxldGlvbi1pZ25vcmVkLWV4dGVuc2lvbnPigJkgd2hlbiBzaG93aW5nIGNvbXBsZXRpb24g YWx0ZXJuYXRpdmVzIGluCnRoZSBjb21wbGV0aW9uIGxpc3QuCgogICBTaGVsbCBjb21wbGV0aW9u IGlzIGFuIGV4dGVuZGVkIHZlcnNpb24gb2YgZmlsZW5hbWUgY29tcGxldGlvbiwgKm5vdGUKU2hl bGwgT3B0aW9uczo6LgoKICAgSWYg4oCYY29tcGxldGlvbi1hdXRvLWhlbHDigJkgaXMgc2V0IHRv IOKAmG5pbOKAmSwgdGhlIGNvbXBsZXRpb24gY29tbWFuZHMKbmV2ZXIgZGlzcGxheSB0aGUgY29t cGxldGlvbiBsaXN0IGJ1ZmZlcjsgeW91IG11c3QgdHlwZSDigJg/4oCZIHRvIGRpc3BsYXkKdGhl IGxpc3QuICBJZiB0aGUgdmFsdWUgaXMg4oCYbGF6eeKAmSwgRW1hY3Mgb25seSBzaG93cyB0aGUg Y29tcGxldGlvbiBsaXN0CmJ1ZmZlciBvbiB0aGUgc2Vjb25kIGF0dGVtcHQgdG8gY29tcGxldGUu ICBJbiBvdGhlciB3b3JkcywgaWYgdGhlcmUgaXMKbm90aGluZyB0byBjb21wbGV0ZSwgdGhlIGZp cnN0IDxUQUI+IGVjaG9lcyDigJhOZXh0IGNoYXIgbm90IHVuaXF1ZeKAmTsgdGhlCnNlY29uZCA8 VEFCPiBzaG93cyB0aGUgY29tcGxldGlvbiBsaXN0IGJ1ZmZlci4KCiAgIElmIOKAmGNvbXBsZXRp b24tY3ljbGUtdGhyZXNob2xk4oCZIGlzIG5vbi3igJhuaWzigJksIGNvbXBsZXRpb24gY29tbWFu ZHMgY2FuCmN5Y2xlIHRocm91Z2ggY29tcGxldGlvbiBhbHRlcm5hdGl2ZXMuICBOb3JtYWxseSwg aWYgdGhlcmUgaXMgbW9yZSB0aGFuCm9uZSBjb21wbGV0aW9uIGFsdGVybmF0aXZlIGZvciB0aGUg dGV4dCBpbiB0aGUgbWluaWJ1ZmZlciwgYSBjb21wbGV0aW9uCmNvbW1hbmQgY29tcGxldGVzIHVw IHRvIHRoZSBsb25nZXN0IGNvbW1vbiBzdWJzdHJpbmcuICBJZiB5b3UgY2hhbmdlCuKAmGNvbXBs ZXRpb24tY3ljbGUtdGhyZXNob2xk4oCZIHRvIOKAmHTigJksIHRoZSBjb21wbGV0aW9uIGNvbW1h bmQgaW5zdGVhZApjb21wbGV0ZXMgdG8gdGhlIGZpcnN0IG9mIHRob3NlIGNvbXBsZXRpb24gYWx0 ZXJuYXRpdmVzOyBlYWNoIHN1YnNlcXVlbnQKaW52b2NhdGlvbiBvZiB0aGUgY29tcGxldGlvbiBj b21tYW5kIHJlcGxhY2VzIHRoYXQgd2l0aCB0aGUgbmV4dApjb21wbGV0aW9uIGFsdGVybmF0aXZl LCBpbiBhIGN5Y2xpYyBtYW5uZXIuICBJZiB5b3UgZ2l2ZQrigJhjb21wbGV0aW9uLWN5Y2xlLXRo cmVzaG9sZOKAmSBhIG51bWVyaWMgdmFsdWUgTiwgY29tcGxldGlvbiBjb21tYW5kcwpzd2l0Y2gg dG8gdGhpcyBjeWNsaW5nIGJlaGF2aW9yIG9ubHkgd2hlbiB0aGVyZSBhcmUgTiBvciBmZXdlcgph bHRlcm5hdGl2ZXMuCgoKKiogOC41IE1pbmlidWZmZXIgSGlzdG9yeQoKRXZlcnkgYXJndW1lbnQg dGhhdCB5b3UgZW50ZXIgd2l0aCB0aGUgbWluaWJ1ZmZlciBpcyBzYXZlZCBpbiBhCiJtaW5pYnVm ZmVyIGhpc3RvcnkgbGlzdCIgc28geW91IGNhbiBlYXNpbHkgdXNlIGl0IGFnYWluIGxhdGVyLiAg WW91IGNhbgp1c2UgdGhlIGZvbGxvd2luZyBhcmd1bWVudHMgdG8gcXVpY2tseSBmZXRjaCBhbiBl YXJsaWVyIGFyZ3VtZW50IGludG8KdGhlIG1pbmlidWZmZXI6CgrigJhNLXDigJkKICAgICBNb3Zl IHRvIHRoZSBwcmV2aW91cyBpdGVtIGluIHRoZSBtaW5pYnVmZmVyIGhpc3RvcnksIGFuIGVhcmxp ZXIKICAgICBhcmd1bWVudCAo4oCYcHJldmlvdXMtaGlzdG9yeS1lbGVtZW504oCZKS4K4oCYTS1u 4oCZCiAgICAgTW92ZSB0byB0aGUgbmV4dCBpdGVtIGluIHRoZSBtaW5pYnVmZmVyIGhpc3RvcnkK ICAgICAo4oCYbmV4dC1oaXN0b3J5LWVsZW1lbnTigJkpLgrigJg8VVA+4oCZCuKAmDxET1dOPuKA mQogICAgIExpa2Ug4oCYTS1w4oCZIGFuZCDigJhNLW7igJksIGJ1dCBtb3ZlIHRvIHRoZSBwcmV2 aW91cyBvciBuZXh0IGxpbmUgb2YgYQogICAgIG11bHRpLWxpbmUgaXRlbSBiZWZvcmUgZ29pbmcg dG8gdGhlIHByZXZpb3VzIGhpc3RvcnkgaXRlbQogICAgICjigJhwcmV2aW91cy1saW5lLW9yLWhp c3RvcnktZWxlbWVudOKAmSBhbmQKICAgICDigJhuZXh0LWxpbmUtb3ItaGlzdG9yeS1lbGVtZW50 4oCZKSAuCuKAmE0tciBSRUdFWFAgPFJFVD7igJkKICAgICBNb3ZlIHRvIGFuIGVhcmxpZXIgaXRl bSBpbiB0aGUgbWluaWJ1ZmZlciBoaXN0b3J5IHRoYXQgbWF0Y2hlcwogICAgIFJFR0VYUCAo4oCY cHJldmlvdXMtbWF0Y2hpbmctaGlzdG9yeS1lbGVtZW504oCZKS4K4oCYTS1zIFJFR0VYUCA8UkVU PuKAmQogICAgIE1vdmUgdG8gYSBsYXRlciBpdGVtIGluIHRoZSBtaW5pYnVmZmVyIGhpc3Rvcnkg dGhhdCBtYXRjaGVzIFJFR0VYUAogICAgICjigJhuZXh0LW1hdGNoaW5nLWhpc3RvcnktZWxlbWVu dOKAmSkuCgogICBXaGlsZSBpbiB0aGUgbWluaWJ1ZmZlciwg4oCYTS1w4oCZICjigJhwcmV2aW91 cy1oaXN0b3J5LWVsZW1lbnTigJkpIG1vdmVzCnRocm91Z2ggdGhlIG1pbmlidWZmZXIgaGlzdG9y eSBsaXN0LCBvbmUgaXRlbSBhdCBhIHRpbWUuICBFYWNoIOKAmE0tcOKAmQpmZXRjaGVzIGFuIGVh cmxpZXIgaXRlbSBmcm9tIHRoZSBoaXN0b3J5IGxpc3QgaW50byB0aGUgbWluaWJ1ZmZlciwKcmVw bGFjaW5nIGl0cyBleGlzdGluZyBjb250ZW50cy4gIFR5cGluZyDigJhNLW7igJkgKOKAmG5leHQt aGlzdG9yeS1lbGVtZW504oCZKQptb3ZlcyB0aHJvdWdoIHRoZSBtaW5pYnVmZmVyIGhpc3Rvcnkg bGlzdCBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLApmZXRjaGluZyBsYXRlciBlbnRyaWVzIGlu dG8gdGhlIG1pbmlidWZmZXIuCgogICBJZiB5b3UgdHlwZSDigJhNLW7igJkgaW4gdGhlIG1pbmli dWZmZXIgd2hlbiB0aGVyZSBhcmUgbm8gbGF0ZXIgZW50cmllcwppbiB0aGUgbWluaWJ1ZmZlciBo aXN0b3J5IChlLmcuLCBpZiB5b3UgaGF2ZW7igJl0IHByZXZpb3VzbHkgdHlwZWQg4oCYTS1w4oCZ KSwKRW1hY3MgdHJpZXMgZmV0Y2hpbmcgZnJvbSBhIGxpc3Qgb2YgZGVmYXVsdCBhcmd1bWVudHM6 IHZhbHVlcyB0aGF0IHlvdQphcmUgbGlrZWx5IHRvIGVudGVyLiAgWW91IGNhbiB0aGluayBvZiB0 aGlzIGFzIG1vdmluZyB0aHJvdWdoIHRoZQrigJxmdXR1cmUgaGlzdG9yeeKAnS4KCiAgIFRoZSDi gJxmdXR1cmUgaGlzdG9yeeKAnSBmb3IgZmlsZSBuYW1lcyBpbmNsdWRlcyBzZXZlcmFsIHBvc3Np YmxlCmFsdGVybmF0aXZlcyB5b3UgbWF5IGZpbmQgdXNlZnVsLCBzdWNoIGFzIHRoZSBmaWxlIG5h bWUgb3IgdGhlIFVSTCBhdApwb2ludCBpbiB0aGUgY3VycmVudCBidWZmZXIuICBUaGUgZGVmYXVs dHMgcHV0IGludG8gdGhlIOKAnGZ1dHVyZSBoaXN0b3J54oCdCmluIHRoaXMgY2FzZSBhcmUgY29u dHJvbGxlZCBieSB0aGUgZnVuY3Rpb25zIG1lbnRpb25lZCBpbiB0aGUgdmFsdWUgb2YKdGhlIG9w dGlvbiDigJhmaWxlLW5hbWUtYXQtcG9pbnQtZnVuY3Rpb25z4oCZLiAgQnkgZGVmYXVsdCwgaXRz IHZhbHVlCmludm9rZXMgdGhlIOKAmGZmYXDigJkgcGFja2FnZSAoKm5vdGUgRkZBUDo6KSwgd2hp Y2ggdHJpZXMgdG8gZ3Vlc3MgdGhlCmRlZmF1bHQgZmlsZSBvciBVUkwgZnJvbSB0aGUgdGV4dCBh cm91bmQgcG9pbnQuICBUbyBkaXNhYmxlIHRoaXMKZ3Vlc3NpbmcsIGN1c3RvbWl6ZSB0aGUgb3B0 aW9uIHRvIGEg4oCYbmls4oCZIHZhbHVlLCB0aGVuIHRoZSDigJxmdXR1cmUKaGlzdG9yeeKAnSBv ZiBmaWxlIG5hbWVzIHdpbGwgaW5jbHVkZSBvbmx5IHRoZSBmaWxlLCBpZiBhbnksIHZpc2l0ZWQg YnkKdGhlIGN1cnJlbnQgYnVmZmVyLCBhbmQgdGhlIGRlZmF1bHQgZGlyZWN0b3J5LgoKICAgVGhl IGFycm93IGtleXMg4oCYPFVQPuKAmSBhbmQg4oCYPERPV04+4oCZIHdvcmsgbGlrZSDigJhNLXDi gJkgYW5kIOKAmE0tbuKAmSwgYnV0IGlmCnRoZSBjdXJyZW50IGhpc3RvcnkgaXRlbSBpcyBsb25n ZXIgdGhhbiBhIHNpbmdsZSBsaW5lLCB0aGV5IGFsbG93IHlvdSB0bwptb3ZlIHRvIHRoZSBwcmV2 aW91cyBvciBuZXh0IGxpbmUgb2YgdGhlIGN1cnJlbnQgaGlzdG9yeSBpdGVtIGJlZm9yZQpnb2lu ZyB0byB0aGUgcHJldmlvdXMgb3IgbmV4dCBoaXN0b3J5IGl0ZW0uCgogICBJZiB5b3UgZWRpdCB0 aGUgdGV4dCBpbnNlcnRlZCBieSB0aGUg4oCYTS1w4oCZIG9yIOKAmE0tbuKAmSBtaW5pYnVmZmVy Cmhpc3RvcnkgY29tbWFuZHMsIHRoaXMgZG9lcyBub3QgY2hhbmdlIGl0cyBlbnRyeSBpbiB0aGUg aGlzdG9yeSBsaXN0LgpIb3dldmVyLCB0aGUgZWRpdGVkIGFyZ3VtZW50IGRvZXMgZ28gYXQgdGhl IGVuZCBvZiB0aGUgaGlzdG9yeSBsaXN0IHdoZW4KeW91IHN1Ym1pdCBpdC4KCiAgIFlvdSBjYW4g dXNlIOKAmE0tcuKAmSAo4oCYcHJldmlvdXMtbWF0Y2hpbmctaGlzdG9yeS1lbGVtZW504oCZKSB0 byBzZWFyY2gKdGhyb3VnaCBvbGRlciBlbGVtZW50cyBpbiB0aGUgaGlzdG9yeSBsaXN0LCBhbmQg 4oCYTS1z4oCZCijigJhuZXh0LW1hdGNoaW5nLWhpc3RvcnktZWxlbWVudOKAmSkgdG8gc2VhcmNo IHRocm91Z2ggbmV3ZXIgZW50cmllcy4gIEVhY2gKb2YgdGhlc2UgY29tbWFuZHMgYXNrcyBmb3Ig YSAicmVndWxhciBleHByZXNzaW9uIiBhcyBhbiBhcmd1bWVudCwgYW5kCmZldGNoZXMgdGhlIGZp cnN0IG1hdGNoaW5nIGVudHJ5IGludG8gdGhlIG1pbmlidWZmZXIuICAqTm90ZSBSZWdleHBzOjos CmZvciBhbiBleHBsYW5hdGlvbiBvZiByZWd1bGFyIGV4cHJlc3Npb25zLiAgQSBudW1lcmljIHBy ZWZpeCBhcmd1bWVudCBOCm1lYW5zIHRvIGZldGNoIHRoZSBOdGggbWF0Y2hpbmcgZW50cnkuICBU aGVzZSBjb21tYW5kcyBhcmUgdW51c3VhbCwgaW4KdGhhdCB0aGV5IHVzZSB0aGUgbWluaWJ1ZmZl ciB0byByZWFkIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gYXJndW1lbnQsCmV2ZW4gdGhvdWdoIHRo ZXkgYXJlIGludm9rZWQgZnJvbSB0aGUgbWluaWJ1ZmZlci4gIEFuIHVwcGVyLWNhc2UgbGV0dGVy CmluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gbWFrZXMgdGhlIHNlYXJjaCBjYXNlLXNlbnNpdGl2 ZSAoKm5vdGUgTGF4ClNlYXJjaDo6KS4KCiAgIFlvdSBjYW4gYWxzbyBzZWFyY2ggdGhyb3VnaCB0 aGUgaGlzdG9yeSB1c2luZyBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCipOb3RlIElzZWFyY2ggTWlu aWJ1ZmZlcjo6LgoKICAgRW1hY3Mga2VlcHMgc2VwYXJhdGUgaGlzdG9yeSBsaXN0cyBmb3Igc2V2 ZXJhbCBkaWZmZXJlbnQga2luZHMgb2YKYXJndW1lbnRzLiAgRm9yIGV4YW1wbGUsIHRoZXJlIGlz IGEgbGlzdCBmb3IgZmlsZSBuYW1lcywgdXNlZCBieSBhbGwgdGhlCmNvbW1hbmRzIHRoYXQgcmVh ZCBmaWxlIG5hbWVzLiAgT3RoZXIgaGlzdG9yeSBsaXN0cyBpbmNsdWRlIGJ1ZmZlcgpuYW1lcywg Y29tbWFuZCBuYW1lcyAodXNlZCBieSDigJhNLXjigJkpLCBhbmQgY29tbWFuZCBhcmd1bWVudHMg KHVzZWQgYnkKY29tbWFuZHMgbGlrZSDigJhxdWVyeS1yZXBsYWNl4oCZKS4KCiAgIFRoZSB2YXJp YWJsZSDigJhoaXN0b3J5LWxlbmd0aOKAmSBzcGVjaWZpZXMgdGhlIG1heGltdW0gbGVuZ3RoIG9m IGEKbWluaWJ1ZmZlciBoaXN0b3J5IGxpc3Q7IGFkZGluZyBhIG5ldyBlbGVtZW50IGRlbGV0ZXMg dGhlIG9sZGVzdCBlbGVtZW50CmlmIHRoZSBsaXN0IGdldHMgdG9vIGxvbmcuICBJZiB0aGUgdmFs dWUgaXMg4oCYdOKAmSwgdGhlcmUgaXMgbm8gbWF4aW11bQpsZW5ndGguCgogICBUaGUgdmFyaWFi bGUg4oCYaGlzdG9yeS1kZWxldGUtZHVwbGljYXRlc+KAmSBzcGVjaWZpZXMgd2hldGhlciB0byBk ZWxldGUKZHVwbGljYXRlcyBpbiBoaXN0b3J5LiAgSWYgaXQgaXMgbm9uLeKAmG5pbOKAmSwgYWRk aW5nIGEgbmV3IGVsZW1lbnQgZGVsZXRlcwpmcm9tIHRoZSBsaXN0IGFsbCBvdGhlciBlbGVtZW50 cyB0aGF0IGFyZSBlcXVhbCB0byBpdC4gIFRoZSBkZWZhdWx0IGlzCuKAmG5pbOKAmS4KCgoqKiA4 LjYgUmVwZWF0aW5nIE1pbmlidWZmZXIgQ29tbWFuZHMKCkV2ZXJ5IGNvbW1hbmQgdGhhdCB1c2Vz IHRoZSBtaW5pYnVmZmVyIG9uY2UgaXMgcmVjb3JkZWQgb24gYSBzcGVjaWFsCmhpc3RvcnkgbGlz dCwgdGhlICJjb21tYW5kIGhpc3RvcnkiLCB0b2dldGhlciB3aXRoIHRoZSB2YWx1ZXMgb2YgaXRz CmFyZ3VtZW50cywgc28gdGhhdCB5b3UgY2FuIHJlcGVhdCB0aGUgZW50aXJlIGNvbW1hbmQuICBJ biBwYXJ0aWN1bGFyLApldmVyeSB1c2Ugb2Yg4oCYTS144oCZIGlzIHJlY29yZGVkIHRoZXJlLCBz aW5jZSDigJhNLXjigJkgdXNlcyB0aGUgbWluaWJ1ZmZlciB0bwpyZWFkIHRoZSBjb21tYW5kIG5h bWUuCgrigJhDLXggPEVTQz4gPEVTQz7igJkKICAgICBSZS1leGVjdXRlIGEgcmVjZW50IG1pbmli dWZmZXIgY29tbWFuZCBmcm9tIHRoZSBjb21tYW5kIGhpc3RvcnkKICAgICAo4oCYcmVwZWF0LWNv bXBsZXgtY29tbWFuZOKAmSkuCuKAmE0teCBsaXN0LWNvbW1hbmQtaGlzdG9yeeKAmQogICAgIERp c3BsYXkgdGhlIGVudGlyZSBjb21tYW5kIGhpc3RvcnksIHNob3dpbmcgYWxsIHRoZSBjb21tYW5k cyDigJhDLXgKICAgICA8RVNDPiA8RVNDPuKAmSBjYW4gcmVwZWF0LCBtb3N0IHJlY2VudCBmaXJz dC4KCiAgIOKAmEMteCA8RVNDPiA8RVNDPuKAmSByZS1leGVjdXRlcyBhIHJlY2VudCBjb21tYW5k IHRoYXQgdXNlZCB0aGUKbWluaWJ1ZmZlci4gIFdpdGggbm8gYXJndW1lbnQsIGl0IHJlcGVhdHMg dGhlIGxhc3Qgc3VjaCBjb21tYW5kLiAgQQpudW1lcmljIGFyZ3VtZW50IHNwZWNpZmllcyB3aGlj aCBjb21tYW5kIHRvIHJlcGVhdDsgMSBtZWFucyB0aGUgbGFzdApvbmUsIDIgdGhlIHByZXZpb3Vz LCBhbmQgc28gb24uCgogICDigJhDLXggPEVTQz4gPEVTQz7igJkgd29ya3MgYnkgdHVybmluZyB0 aGUgcHJldmlvdXMgY29tbWFuZCBpbnRvIGEgTGlzcApleHByZXNzaW9uIGFuZCB0aGVuIGVudGVy aW5nIGEgbWluaWJ1ZmZlciBpbml0aWFsaXplZCB3aXRoIHRoZSB0ZXh0IGZvcgp0aGF0IGV4cHJl c3Npb24uICBFdmVuIGlmIHlvdSBkb27igJl0IGtub3cgTGlzcCwgaXQgd2lsbCBwcm9iYWJseSBi ZQpvYnZpb3VzIHdoaWNoIGNvbW1hbmQgaXMgZGlzcGxheWVkIGZvciByZXBldGl0aW9uLiAgSWYg eW91IHR5cGUganVzdAo8UkVUPiwgdGhhdCByZXBlYXRzIHRoZSBjb21tYW5kIHVuY2hhbmdlZC4g IFlvdSBjYW4gYWxzbyBjaGFuZ2UgdGhlCmNvbW1hbmQgYnkgZWRpdGluZyB0aGUgTGlzcCBleHBy ZXNzaW9uIGJlZm9yZSB5b3UgZXhlY3V0ZSBpdC4gIFRoZQpleGVjdXRlZCBjb21tYW5kIGlzIGFk ZGVkIHRvIHRoZSBmcm9udCBvZiB0aGUgY29tbWFuZCBoaXN0b3J5IHVubGVzcyBpdAppcyBpZGVu dGljYWwgdG8gdGhlIG1vc3QgcmVjZW50IGl0ZW0uCgogICBPbmNlIGluc2lkZSB0aGUgbWluaWJ1 ZmZlciBmb3Ig4oCYQy14IDxFU0M+IDxFU0M+4oCZLCB5b3UgY2FuIHVzZSB0aGUKdXN1YWwgbWlu aWJ1ZmZlciBoaXN0b3J5IGNvbW1hbmRzICgqbm90ZSBNaW5pYnVmZmVyIEhpc3Rvcnk6OikgdG8g bW92ZQp0aHJvdWdoIHRoZSBoaXN0b3J5IGxpc3QuICBBZnRlciBmaW5kaW5nIHRoZSBkZXNpcmVk IHByZXZpb3VzIGNvbW1hbmQsCnlvdSBjYW4gZWRpdCBpdHMgZXhwcmVzc2lvbiBhcyB1c3VhbCBh bmQgdGhlbiBleGVjdXRlIGl0IGJ5IHR5cGluZwo8UkVUPi4KCiAgIEluY3JlbWVudGFsIHNlYXJj aCBkb2VzIG5vdCwgc3RyaWN0bHkgc3BlYWtpbmcsIHVzZSB0aGUgbWluaWJ1ZmZlci4KVGhlcmVm b3JlLCBhbHRob3VnaCBpdCBiZWhhdmVzIGxpa2UgYSBjb21wbGV4IGNvbW1hbmQsIGl0IG5vcm1h bGx5IGRvZXMKbm90IGFwcGVhciBpbiB0aGUgaGlzdG9yeSBsaXN0IGZvciDigJhDLXggPEVTQz4g PEVTQz7igJkuICBZb3UgY2FuIG1ha2UKaW5jcmVtZW50YWwgc2VhcmNoIGNvbW1hbmRzIGFwcGVh ciBpbiB0aGUgaGlzdG9yeSBieSBzZXR0aW5nCuKAmGlzZWFyY2gtcmVzdW1lLWluLWNvbW1hbmQt aGlzdG9yeeKAmSB0byBhIG5vbi3igJhuaWzigJkgdmFsdWUuICAqTm90ZQpJbmNyZW1lbnRhbCBT ZWFyY2g6Oi4KCiAgIFRoZSBsaXN0IG9mIHByZXZpb3VzIG1pbmlidWZmZXItdXNpbmcgY29tbWFu ZHMgaXMgc3RvcmVkIGFzIGEgTGlzcApsaXN0IGluIHRoZSB2YXJpYWJsZSDigJhjb21tYW5kLWhp c3RvcnnigJkuICBFYWNoIGVsZW1lbnQgaXMgYSBMaXNwCmV4cHJlc3Npb24gdGhhdCBkZXNjcmli ZXMgb25lIGNvbW1hbmQgYW5kIGl0cyBhcmd1bWVudHMuICBMaXNwIHByb2dyYW1zCmNhbiByZS1l eGVjdXRlIGEgY29tbWFuZCBieSBjYWxsaW5nIOKAmGV2YWzigJkgd2l0aCB0aGUg4oCYY29tbWFu ZC1oaXN0b3J54oCZCmVsZW1lbnQuCgoKKiogOC43IEVudGVyaW5nIHBhc3N3b3JkcwoKU29tZXRp bWVzLCB5b3UgbWF5IG5lZWQgdG8gZW50ZXIgYSBwYXNzd29yZCBpbnRvIEVtYWNzLiAgRm9yIGlu c3RhbmNlLAp3aGVuIHlvdSB0ZWxsIEVtYWNzIHRvIHZpc2l0IGEgZmlsZSBvbiBhbm90aGVyIG1h Y2hpbmUgdmlhIGEgbmV0d29yawpwcm90b2NvbCBzdWNoIGFzIEZUUCwgeW91IG9mdGVuIG5lZWQg dG8gc3VwcGx5IGEgcGFzc3dvcmQgdG8gZ2FpbiBhY2Nlc3MKdG8gdGhlIG1hY2hpbmUgKCpub3Rl IFJlbW90ZSBGaWxlczo6KS4KCiAgIEVudGVyaW5nIGEgcGFzc3dvcmQgaXMgc2ltaWxhciB0byB1 c2luZyBhIG1pbmlidWZmZXIuICBFbWFjcyBkaXNwbGF5cwphIHByb21wdCBpbiB0aGUgZWNobyBh cmVhIChzdWNoIGFzIOKAmFBhc3N3b3JkOiDigJkpOyBhZnRlciB5b3UgdHlwZSB0aGUKcmVxdWly ZWQgcGFzc3dvcmQsIHByZXNzIDxSRVQ+IHRvIHN1Ym1pdCBpdC4gIFRvIHByZXZlbnQgb3RoZXJz IGZyb20Kc2VlaW5nIHlvdXIgcGFzc3dvcmQsIGV2ZXJ5IGNoYXJhY3RlciB5b3UgdHlwZSBpcyBk aXNwbGF5ZWQgYXMgYSBkb3QKKOKAmC7igJkpIGluc3RlYWQgb2YgaXRzIHVzdWFsIGZvcm0uCgog ICBNb3N0IG9mIHRoZSBmZWF0dXJlcyBhbmQgY29tbWFuZHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBt aW5pYnVmZmVyCl9jYW5ub3RfIGJlIHVzZWQgd2hlbiBlbnRlcmluZyBhIHBhc3N3b3JkLiAgVGhl cmUgaXMgbm8gaGlzdG9yeSBvcgpjb21wbGV0aW9uLCBhbmQgeW91IGNhbm5vdCBjaGFuZ2Ugd2lu ZG93cyBvciBwZXJmb3JtIGFueSBvdGhlciBhY3Rpb24Kd2l0aCBFbWFjcyB1bnRpbCB5b3UgaGF2 ZSBzdWJtaXR0ZWQgdGhlIHBhc3N3b3JkLgoKICAgV2hpbGUgeW91IGFyZSB0eXBpbmcgdGhlIHBh c3N3b3JkLCB5b3UgbWF5IHByZXNzIDxERUw+IHRvIGRlbGV0ZQpiYWNrd2FyZHMsIHJlbW92aW5n IHRoZSBsYXN0IGNoYXJhY3RlciBlbnRlcmVkLiAg4oCYQy114oCZIGRlbGV0ZXMKZXZlcnl0aGlu ZyB5b3UgaGF2ZSB0eXBlZCBzbyBmYXIuICDigJhDLWfigJkgcXVpdHMgdGhlIHBhc3N3b3JkIHBy b21wdAooKm5vdGUgUXVpdHRpbmc6OikuICDigJhDLXnigJkgaW5zZXJ0cyB0aGUgY3VycmVudCBr aWxsIGludG8gdGhlIHBhc3N3b3JkCigqbm90ZSBLaWxsaW5nOjopLiAgWW91IG1heSB0eXBlIGVp dGhlciA8UkVUPiBvciA8RVNDPiB0byBzdWJtaXQgdGhlCnBhc3N3b3JkLiAgQW55IG90aGVyIHNl bGYtaW5zZXJ0aW5nIGNoYXJhY3RlciBrZXkgaW5zZXJ0cyB0aGUgYXNzb2NpYXRlZApjaGFyYWN0 ZXIgaW50byB0aGUgcGFzc3dvcmQsIGFuZCBhbGwgb3RoZXIgaW5wdXQgaXMgaWdub3JlZC4KCgoq KiA4LjggWWVzIG9yIE5vIFByb21wdHMKCkFuIEVtYWNzIGNvbW1hbmQgbWF5IHJlcXVpcmUgeW91 IHRvIGFuc3dlciBhIHllcy1vci1ubyBxdWVzdGlvbiBkdXJpbmcKdGhlIGNvdXJzZSBvZiBpdHMg ZXhlY3V0aW9uLiAgU3VjaCBxdWVyaWVzIGNvbWUgaW4gdHdvIG1haW4gdmFyaWV0aWVzLgoKICAg Rm9yIHRoZSBmaXJzdCB0eXBlIG9mIHllcy1vci1ubyBxdWVyeSwgdGhlIHByb21wdCBlbmRzIHdp dGgg4oCYKHkgb3IKbinigJkuICBTdWNoIGEgcXVlcnkgZG9lcyBub3QgYWN0dWFsbHkgdXNlIHRo ZSBtaW5pYnVmZmVyOyB0aGUgcHJvbXB0CmFwcGVhcnMgaW4gdGhlIGVjaG8gYXJlYSwgYW5kIHlv dSBhbnN3ZXIgYnkgdHlwaW5nIGVpdGhlciDigJh54oCZIG9yIOKAmG7igJksCndoaWNoIGltbWVk aWF0ZWx5IGRlbGl2ZXJzIHRoZSByZXNwb25zZS4gIEZvciBleGFtcGxlLCBpZiB5b3UgdHlwZSDi gJhDLXgKQy134oCZICjigJh3cml0ZS1maWxl4oCZKSB0byBzYXZlIGEgYnVmZmVyLCBhbmQgZW50 ZXIgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcKZmlsZSwgRW1hY3MgaXNzdWVzIGEgcHJvbXB0IGxp a2UgdGhpczoKCiAgICAgRmlsZSDigJhmb28uZWzigJkgZXhpc3RzOyBvdmVyd3JpdGU/ICh5IG9y IG4pCgpCZWNhdXNlIHRoaXMgcXVlcnkgZG9lcyBub3QgYWN0dWFsbHkgdXNlIHRoZSBtaW5pYnVm ZmVyLCB0aGUgdXN1YWwKbWluaWJ1ZmZlciBlZGl0aW5nIGNvbW1hbmRzIGNhbm5vdCBiZSB1c2Vk LiAgSG93ZXZlciwgeW91IGNhbiBwZXJmb3JtCnNvbWUgd2luZG93IHNjcm9sbGluZyBvcGVyYXRp b25zIHdoaWxlIHRoZSBxdWVyeSBpcyBhY3RpdmU6IOKAmEMtbOKAmQpyZWNlbnRlcnMgdGhlIHNl bGVjdGVkIHdpbmRvdzsg4oCYQy124oCZIChvciA8UGFnZURvd24+LCBvciA8bmV4dD4pIHNjcm9s bHMKZm9yd2FyZDsg4oCYTS124oCZIChvciA8UGFnZVVwPiwgb3IgPHByaW9yPikgc2Nyb2xscyBi YWNrd2FyZDsg4oCYQy1NLXbigJkKc2Nyb2xscyBmb3J3YXJkIGluIHRoZSBuZXh0IHdpbmRvdzsg YW5kIOKAmEMtTS1TLXbigJkgc2Nyb2xscyBiYWNrd2FyZCBpbgp0aGUgbmV4dCB3aW5kb3cuICBU eXBpbmcg4oCYQy1n4oCZIGRpc21pc3NlcyB0aGUgcXVlcnksIGFuZCBxdWl0cyB0aGUKY29tbWFu ZCB0aGF0IGlzc3VlZCBpdCAoKm5vdGUgUXVpdHRpbmc6OikuCgogICBUaGUgc2Vjb25kIHR5cGUg b2YgeWVzLW9yLW5vIHF1ZXJ5IGlzIHR5cGljYWxseSBlbXBsb3llZCBpZiBnaXZpbmcKdGhlIHdy b25nIGFuc3dlciB3b3VsZCBoYXZlIHNlcmlvdXMgY29uc2VxdWVuY2VzOyBpdCB1c2VzIHRoZQpt aW5pYnVmZmVyLCBhbmQgZmVhdHVyZXMgYSBwcm9tcHQgZW5kaW5nIHdpdGgg4oCYKHllcyBvciBu bynigJkuICBGb3IKZXhhbXBsZSwgaWYgeW91IGludm9rZSDigJhDLXgga+KAmSAo4oCYa2lsbC1i dWZmZXLigJkpIG9uIGEgZmlsZS12aXNpdGluZyBidWZmZXIKd2l0aCB1bnNhdmVkIGNoYW5nZXMs IEVtYWNzIGFjdGl2YXRlcyB0aGUgbWluaWJ1ZmZlciB3aXRoIGEgcHJvbXB0IGxpa2UKdGhpczoK CiAgICAgQnVmZmVyIGZvby5lbCBtb2RpZmllZDsga2lsbCBhbnl3YXk/ICh5ZXMgb3Igbm8pCgpU byBhbnN3ZXIsIHlvdSBtdXN0IHR5cGUg4oCYeWVz4oCZIG9yIOKAmG5v4oCZIGludG8gdGhlIG1p bmlidWZmZXIsIGZvbGxvd2VkIGJ5CjxSRVQ+LiAgVGhlIG1pbmlidWZmZXIgYmVoYXZlcyBhcyBk ZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHNlY3Rpb25zOwp5b3UgY2FuIHN3aXRjaCB0byBhbm90 aGVyIHdpbmRvdyB3aXRoIOKAmEMteCBv4oCZLCB1c2UgdGhlIGhpc3RvcnkgY29tbWFuZHMK4oCY TS1w4oCZIGFuZCDigJhNLW7igJksIGV0Yy4gIFR5cGUg4oCYQy1n4oCZIHRvIHF1aXQgdGhlIG1p bmlidWZmZXIgYW5kIHRoZQpxdWVyeWluZyBjb21tYW5kLgoKCiogOSBSdW5uaW5nIENvbW1hbmRz IGJ5IE5hbWUKCkV2ZXJ5IEVtYWNzIGNvbW1hbmQgaGFzIGEgbmFtZSB0aGF0IHlvdSBjYW4gdXNl IHRvIHJ1biBpdC4gIEZvcgpjb252ZW5pZW5jZSwgbWFueSBjb21tYW5kcyBhbHNvIGhhdmUga2V5 IGJpbmRpbmdzLiAgWW91IGNhbiBydW4gdGhvc2UKY29tbWFuZHMgYnkgdHlwaW5nIHRoZSBrZXlz LCBvciBydW4gdGhlbSBieSBuYW1lLiAgTW9zdCBFbWFjcyBjb21tYW5kcwpoYXZlIG5vIGtleSBi aW5kaW5ncywgc28gdGhlIG9ubHkgd2F5IHRvIHJ1biB0aGVtIGlzIGJ5IG5hbWUuICAoKk5vdGUK S2V5IEJpbmRpbmdzOjosIGZvciBob3cgdG8gc2V0IHVwIGtleSBiaW5kaW5ncy4pCgogICBCeSBj b252ZW50aW9uLCBhIGNvbW1hbmQgbmFtZSBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSB3b3JkcywK c2VwYXJhdGVkIGJ5IGh5cGhlbnM7IGZvciBleGFtcGxlLCDigJhhdXRvLWZpbGwtbW9kZeKAmSBv ciDigJhtYW51YWwtZW50cnnigJkuCkNvbW1hbmQgbmFtZXMgbW9zdGx5IHVzZSBjb21wbGV0ZSBF bmdsaXNoIHdvcmRzIHRvIG1ha2UgdGhlbSBlYXNpZXIgdG8KcmVtZW1iZXIuCgogICBUbyBydW4g YSBjb21tYW5kIGJ5IG5hbWUsIHN0YXJ0IHdpdGgg4oCYTS144oCZLCB0eXBlIHRoZSBjb21tYW5k IG5hbWUsCnRoZW4gdGVybWluYXRlIGl0IHdpdGggPFJFVD4uICDigJhNLXjigJkgdXNlcyB0aGUg bWluaWJ1ZmZlciB0byByZWFkIHRoZQpjb21tYW5kIG5hbWUuICBUaGUgc3RyaW5nIOKAmE0teOKA mSBhcHBlYXJzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCm1pbmlidWZmZXIgYXMgYSAicHJvbXB0 IiB0byByZW1pbmQgeW91IHRvIGVudGVyIGEgY29tbWFuZCBuYW1lIHRvIGJlCnJ1bi4gIDxSRVQ+ IGV4aXRzIHRoZSBtaW5pYnVmZmVyIGFuZCBydW5zIHRoZSBjb21tYW5kLiAgKk5vdGUKTWluaWJ1 ZmZlcjo6LCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgbWluaWJ1ZmZlci4KCiAgIFlvdSBj YW4gdXNlIGNvbXBsZXRpb24gdG8gZW50ZXIgdGhlIGNvbW1hbmQgbmFtZS4gIEZvciBleGFtcGxl LCB0bwppbnZva2UgdGhlIGNvbW1hbmQg4oCYZm9yd2FyZC1jaGFy4oCZLCB5b3UgY2FuIHR5cGUK CiAgICAgTS14IGZvcndhcmQtY2hhciA8UkVUPgoKb3IKCiAgICAgTS14IGZvcncgPFRBQj4gYyA8 UkVUPgoKTm90ZSB0aGF0IOKAmGZvcndhcmQtY2hhcuKAmSBpcyB0aGUgc2FtZSBjb21tYW5kIHRo YXQgeW91IGludm9rZSB3aXRoIHRoZQprZXkg4oCYQy1m4oCZLiAgVGhlIGV4aXN0ZW5jZSBvZiBh IGtleSBiaW5kaW5nIGRvZXMgbm90IHN0b3AgeW91IGZyb20KcnVubmluZyB0aGUgY29tbWFuZCBi eSBuYW1lLgoKICAgV2hlbiDigJhNLXjigJkgY29tcGxldGVzIG9uIGNvbW1hbmRzLCBpdCBpZ25v cmVzIHRoZSBjb21tYW5kcyB0aGF0IGFyZQpkZWNsYXJlZCAib2Jzb2xldGUiOyBmb3IgdGhlc2Us IHlvdSB3aWxsIGhhdmUgdG8gdHlwZSB0aGVpciBmdWxsIG5hbWUuCk9ic29sZXRlIGNvbW1hbmRz IGFyZSB0aG9zZSBmb3Igd2hpY2ggbmV3ZXIsIGJldHRlciBhbHRlcm5hdGl2ZXMgZXhpc3QsCmFu ZCB3aGljaCBhcmUgc2xhdGVkIGZvciByZW1vdmFsIGluIHNvbWUgZnV0dXJlIEVtYWNzIHJlbGVh c2UuCgogICBUbyBjYW5jZWwgdGhlIOKAmE0teOKAmSBhbmQgbm90IHJ1biBhIGNvbW1hbmQsIHR5 cGUg4oCYQy1n4oCZIGluc3RlYWQgb2YKZW50ZXJpbmcgdGhlIGNvbW1hbmQgbmFtZS4gIFRoaXMg dGFrZXMgeW91IGJhY2sgdG8gY29tbWFuZCBsZXZlbC4KCiAgIFRvIHBhc3MgYSBudW1lcmljIGFy Z3VtZW50IHRvIHRoZSBjb21tYW5kIHlvdSBhcmUgaW52b2tpbmcgd2l0aArigJhNLXjigJksIHNw ZWNpZnkgdGhlIG51bWVyaWMgYXJndW1lbnQgYmVmb3JlIOKAmE0teOKAmS4gIFRoZSBhcmd1bWVu dCB2YWx1ZQphcHBlYXJzIGluIHRoZSBwcm9tcHQgd2hpbGUgdGhlIGNvbW1hbmQgbmFtZSBpcyBi ZWluZyByZWFkLCBhbmQgZmluYWxseQrigJhNLXjigJkgcGFzc2VzIHRoZSBhcmd1bWVudCB0byB0 aGF0IGNvbW1hbmQuICBGb3IgZXhhbXBsZSwgdG8gcGFzcyB0aGUKbnVtZXJpYyBhcmd1bWVudCBv ZiA0MiB0byB0aGUgY29tbWFuZCDigJhmb3J3YXJkLWNoYXLigJkgeW91IGNhbiB0eXBlIOKAmEMt dQo0MiBNLXggZm9yd2FyZC1jaGFyIDxSRVQ+4oCZLgoKICAgV2hlbiB0aGUgY29tbWFuZCB5b3Ug cnVuIHdpdGgg4oCYTS144oCZIGhhcyBhIGtleSBiaW5kaW5nLCBFbWFjcyBtZW50aW9ucwp0aGlz IGluIHRoZSBlY2hvIGFyZWEgYWZ0ZXIgcnVubmluZyB0aGUgY29tbWFuZC4gIEZvciBleGFtcGxl LCBpZiB5b3UKdHlwZSDigJhNLXggZm9yd2FyZC13b3Jk4oCZLCB0aGUgbWVzc2FnZSBzYXlzIHRo YXQgeW91IGNhbiBydW4gdGhlIHNhbWUKY29tbWFuZCBieSB0eXBpbmcg4oCYTS1m4oCZLiAgWW91 IGNhbiB0dXJuIG9mZiB0aGVzZSBtZXNzYWdlcyBieSBzZXR0aW5nIHRoZQp2YXJpYWJsZSDigJhz dWdnZXN0LWtleS1iaW5kaW5nc+KAmSB0byDigJhuaWzigJkuICBUaGUgdmFsdWUgb2YK4oCYc3Vn Z2VzdC1rZXktYmluZGluZ3PigJkgY2FuIGFsc28gYmUgYSBudW1iZXIsIGluIHdoaWNoIGNhc2Ug RW1hY3Mgd2lsbApzaG93IHRoZSBiaW5kaW5nIGZvciB0aGF0IG1hbnkgc2Vjb25kcyBiZWZvcmUg cmVtb3ZpbmcgaXQgZnJvbSBkaXNwbGF5LgpUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBkaXNw bGF5IHRoZSBiaW5kaW5nIGZvciAyIHNlY29uZHMuCgogICBDb21tYW5kcyB0aGF0IGRvbuKAmXQg aGF2ZSBrZXkgYmluZGluZ3MsIGNhbiBzdGlsbCBiZSBpbnZva2VkIGFmdGVyCnR5cGluZyBsZXNz IHRoYW4gdGhlaXIgZnVsbCBuYW1lIGF0IHRoZSDigJhNLXjigJkgcHJvbXB0LiAgRW1hY3MgbWVu dGlvbnMKc3VjaCBzaG9ydGhhbmRzIGluIHRoZSBlY2hvIGFyZWEgaWYgdGhleSBhcmUgc2lnbmlm aWNhbnRseSBzaG9ydGVyIHRoYW4KdGhlIGZ1bGwgY29tbWFuZCBuYW1lLCBhbmQg4oCYZXh0ZW5k ZWQtY29tbWFuZC1zdWdnZXN0LXNob3J0ZXLigJkgaXMKbm9uLeKAmG5pbOKAmS4gIFRoZSBzZXR0 aW5nIG9mIOKAmHN1Z2dlc3Qta2V5LWJpbmRpbmdz4oCZIGFmZmVjdHMgdGhlc2UgaGludHMgYXMK d2VsbC4KCiAgIEluIHRoaXMgbWFudWFsLCB3aGVuIHdlIHNwZWFrIG9mIHJ1bm5pbmcgYSBjb21t YW5kIGJ5IG5hbWUsIHdlIG9mdGVuCm9taXQgdGhlIDxSRVQ+IHRoYXQgdGVybWluYXRlcyB0aGUg bmFtZS4gIFRodXMgd2UgbWlnaHQgc2F5IOKAmE0teAphdXRvLWZpbGwtbW9kZeKAmSByYXRoZXIg dGhhbiDigJhNLXggYXV0by1maWxsLW1vZGUgPFJFVD7igJkuICBXZSBtZW50aW9uIHRoZQo8UkVU PiBvbmx5IGZvciBlbXBoYXNpcywgc3VjaCBhcyB3aGVuIHRoZSBjb21tYW5kIGlzIGZvbGxvd2Vk IGJ5CmFyZ3VtZW50cy4KCiAgIOKAmE0teOKAmSB3b3JrcyBieSBydW5uaW5nIHRoZSBjb21tYW5k IOKAmGV4ZWN1dGUtZXh0ZW5kZWQtY29tbWFuZOKAmSwgd2hpY2gKaXMgcmVzcG9uc2libGUgZm9y IHJlYWRpbmcgdGhlIG5hbWUgb2YgYW5vdGhlciBjb21tYW5kIGFuZCBpbnZva2luZyBpdC4KCgoq IDEwIEhlbHAKCkVtYWNzIHByb3ZpZGVzIGEgd2lkZSB2YXJpZXR5IG9mIGhlbHAgY29tbWFuZHMs IGFsbCBhY2Nlc3NpYmxlIHRocm91Z2gKdGhlIHByZWZpeCBrZXkg4oCYQy1o4oCZIChvciwgZXF1 aXZhbGVudGx5LCB0aGUgZnVuY3Rpb24ga2V5IDxGMT4pLiAgVGhlc2UKaGVscCBjb21tYW5kcyBh cmUgZGVzY3JpYmVkIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuICBZb3UgY2FuIGFsc28KdHlw ZSDigJhDLWggQy1o4oCZIHRvIHZpZXcgYSBsaXN0IG9mIGhlbHAgY29tbWFuZHMgKOKAmGhlbHAt Zm9yLWhlbHDigJkpLiAgWW91CmNhbiBzY3JvbGwgdGhlIGxpc3Qgd2l0aCA8U1BDPiBhbmQgPERF TD4sIHRoZW4gdHlwZSB0aGUgaGVscCBjb21tYW5kIHlvdQp3YW50LiAgVG8gY2FuY2VsLCB0eXBl IOKAmEMtZ+KAmS4KCiAgIE1hbnkgaGVscCBjb21tYW5kcyBkaXNwbGF5IHRoZWlyIGluZm9ybWF0 aW9uIGluIGEgc3BlY2lhbCAiaGVscApidWZmZXIiLiAgSW4gdGhpcyBidWZmZXIsIHlvdSBjYW4g dHlwZSA8U1BDPiBhbmQgPERFTD4gdG8gc2Nyb2xsIGFuZAp0eXBlIDxSRVQ+IHRvIGZvbGxvdyBo eXBlcmxpbmtzLiAgKk5vdGUgSGVscCBNb2RlOjouCgogICBJZiB5b3UgYXJlIGxvb2tpbmcgZm9y IGEgY2VydGFpbiBmZWF0dXJlLCBidXQgZG9u4oCZdCBrbm93IHdoYXQgaXQgaXMKY2FsbGVkIG9y IHdoZXJlIHRvIGxvb2ssIHdlIHJlY29tbWVuZCB0aHJlZSBtZXRob2RzLiAgRmlyc3QsIHRyeSBh bgphcHJvcG9zIGNvbW1hbmQsIHRoZW4gdHJ5IHNlYXJjaGluZyB0aGUgbWFudWFsIGluZGV4LCB0 aGVuIGxvb2sgaW4gdGhlCkZBUSBhbmQgdGhlIHBhY2thZ2Uga2V5d29yZHMuCgrigJhDLWggYSBU T1BJQ1MgPFJFVD7igJkKICAgICBUaGlzIHNlYXJjaGVzIGZvciBjb21tYW5kcyB3aG9zZSBuYW1l cyBtYXRjaCB0aGUgYXJndW1lbnQgVE9QSUNTLgogICAgIFRoZSBhcmd1bWVudCBjYW4gYmUgYSBr ZXl3b3JkLCBhIGxpc3Qgb2Yga2V5d29yZHMsIG9yIGEgcmVndWxhcgogICAgIGV4cHJlc3Npb24g KCpub3RlIFJlZ2V4cHM6OikuICAqTm90ZSBBcHJvcG9zOjouCgrigJhDLWggaSBkIG0gZW1hY3Mg PFJFVD4gaSBUT1BJQyA8UkVUPuKAmQogICAgIFRoaXMgc2VhcmNoZXMgZm9yIFRPUElDIGluIHRo ZSBpbmRpY2VzIG9mIHRoZSBFbWFjcyBJbmZvIG1hbnVhbCwKICAgICBkaXNwbGF5aW5nIHRoZSBm aXJzdCBtYXRjaCBmb3VuZC4gIFByZXNzIOKAmCzigJkgdG8gc2VlIHN1YnNlcXVlbnQKICAgICBt YXRjaGVzLiAgWW91IGNhbiB1c2UgYSByZWd1bGFyIGV4cHJlc3Npb24gYXMgVE9QSUMuCgrigJhD LWggaSBkIG0gZW1hY3MgPFJFVD4gcyBUT1BJQyA8UkVUPuKAmQogICAgIFNpbWlsYXIsIGJ1dCBz ZWFyY2hlcyB0aGUgX3RleHRfIG9mIHRoZSBtYW51YWwgcmF0aGVyIHRoYW4gdGhlCiAgICAgaW5k aWNlcy4KCuKAmEMtaCBDLWbigJkKICAgICBUaGlzIGRpc3BsYXlzIHRoZSBFbWFjcyBGQVEsIHVz aW5nIEluZm8uCgrigJhDLWggcOKAmQogICAgIFRoaXMgZGlzcGxheXMgdGhlIGF2YWlsYWJsZSBF bWFjcyBwYWNrYWdlcyBiYXNlZCBvbiBrZXl3b3Jkcy4KICAgICAqTm90ZSBQYWNrYWdlIEtleXdv cmRzOjouCgogICDigJhDLWjigJkgb3IgPEYxPiBtZWFuIOKAnGhlbHDigJ0gaW4gdmFyaW91cyBv dGhlciBjb250ZXh0cyBhcyB3ZWxsLiAgRm9yCmluc3RhbmNlLCB5b3UgY2FuIHR5cGUgdGhlbSBh ZnRlciBhIHByZWZpeCBrZXkgdG8gdmlldyBhIGxpc3Qgb2YgdGhlCmtleXMgdGhhdCBjYW4gZm9s bG93IHRoZSBwcmVmaXgga2V5LiAgKFlvdSBjYW4gYWxzbyB1c2Ug4oCYP+KAmSBpbiB0aGlzCmNv bnRleHQuICBBIGZldyBwcmVmaXgga2V5cyBkb27igJl0IHN1cHBvcnQg4oCYQy1o4oCZIG9yIOKA mD/igJkgaW4gdGhpcyB3YXksCmJlY2F1c2UgdGhleSBkZWZpbmUgb3RoZXIgbWVhbmluZ3MgZm9y IHRob3NlIGlucHV0cywgYnV0IHRoZXkgYWxsCnN1cHBvcnQgPEYxPi4pCgorIE1lbnU6CgogIC0g SGVscCBTdW1tYXJ5OjogICAgICAgIEJyaWVmIGxpc3Qgb2YgYWxsIEhlbHAgY29tbWFuZHMuCiAg LSBLZXkgSGVscDo6ICAgICAgICAgICAgQXNraW5nIHdoYXQgYSBrZXkgZG9lcyBpbiBFbWFjcy4K ICAtIE5hbWUgSGVscDo6ICAgICAgICAgICBBc2tpbmcgYWJvdXQgYSBjb21tYW5kLCB2YXJpYWJs ZSBvciBmdW5jdGlvbiBuYW1lLgogIC0gQXByb3Bvczo6ICAgICAgICAgICAgIEFza2luZyB3aGF0 IHBlcnRhaW5zIHRvIGEgZ2l2ZW4gdG9waWMuCiAgLSBIZWxwIE1vZGU6OiAgICAgICAgICAgU3Bl Y2lhbCBmZWF0dXJlcyBvZiBIZWxwIG1vZGUgYW5kIEhlbHAgYnVmZmVycy4KICAtIFBhY2thZ2Ug S2V5d29yZHM6OiAgICBGaW5kaW5nIExpc3AgbGlicmFyaWVzIGJ5IGtleXdvcmRzICh0b3BpY3Mp LgogIC0gTGFuZ3VhZ2UgSGVscDo6ICAgICAgIEhlbHAgcmVsYXRpbmcgdG8gaW50ZXJuYXRpb25h bCBsYW5ndWFnZSBzdXBwb3J0LgogIC0gTWlzYyBIZWxwOjogICAgICAgICAgIE90aGVyIGhlbHAg Y29tbWFuZHMuCiAgLSBIZWxwIEZpbGVzOjogICAgICAgICAgQ29tbWFuZHMgdG8gZGlzcGxheSBh dXhpbGlhcnkgaGVscCBmaWxlcy4KICAtIEhlbHAgRWNobzo6ICAgICAgICAgICBIZWxwIG9uIGFj dGl2ZSB0ZXh0IGFuZCB0b29sdGlwcyAo4oCcYmFsbG9vbiBoZWxw4oCdKS4KCgoqKiAxMC4xIEhl bHAgU3VtbWFyeQoKSGVyZSBpcyBhIHN1bW1hcnkgb2YgaGVscCBjb21tYW5kcyBmb3IgYWNjZXNz aW5nIHRoZSBidWlsdC1pbgpkb2N1bWVudGF0aW9uLiAgTW9zdCBvZiB0aGVzZSBhcmUgZGVzY3Jp YmVkIGluIG1vcmUgZGV0YWlsIGluIHRoZQpmb2xsb3dpbmcgc2VjdGlvbnMuCgrigJhDLWggYSBU T1BJQ1MgPFJFVD7igJkKICAgICBEaXNwbGF5IGEgbGlzdCBvZiBjb21tYW5kcyB3aG9zZSBuYW1l cyBtYXRjaCBUT1BJQ1MKICAgICAo4oCYYXByb3Bvcy1jb21tYW5k4oCZKS4K4oCYQy1oIGLigJkK ICAgICBEaXNwbGF5IGFsbCBhY3RpdmUga2V5IGJpbmRpbmdzOyBtaW5vciBtb2RlIGJpbmRpbmdz IGZpcnN0LCB0aGVuCiAgICAgdGhvc2Ugb2YgdGhlIG1ham9yIG1vZGUsIHRoZW4gZ2xvYmFsIGJp bmRpbmdzCiAgICAgKOKAmGRlc2NyaWJlLWJpbmRpbmdz4oCZKS4K4oCYQy1oIGMgS0VZ4oCZCiAg ICAgU2hvdyB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCB0aGF0IHRoZSBrZXkgc2VxdWVuY2UgS0VZ IGlzIGJvdW5kIHRvCiAgICAgKOKAmGRlc2NyaWJlLWtleS1icmllZmx54oCZKS4gIEhlcmUg4oCY Y+KAmSBzdGFuZHMgZm9yIOKAnGNoYXJhY3RlcuKAnS4gIEZvcgogICAgIG1vcmUgZXh0ZW5zaXZl IGluZm9ybWF0aW9uIG9uIEtFWSwgdXNlIOKAmEMtaCBr4oCZLgrigJhDLWggZCBUT1BJQ1MgPFJF VD7igJkKICAgICBEaXNwbGF5IHRoZSBjb21tYW5kcyBhbmQgdmFyaWFibGVzIHdob3NlIGRvY3Vt ZW50YXRpb24gbWF0Y2hlcwogICAgIFRPUElDUyAo4oCYYXByb3Bvcy1kb2N1bWVudGF0aW9u4oCZ KS4K4oCYQy1oIGXigJkKICAgICBEaXNwbGF5IHRoZSDigJgqTWVzc2FnZXMq4oCZIGJ1ZmZlciAo 4oCYdmlldy1lY2hvLWFyZWEtbWVzc2FnZXPigJkpLgrigJhDLWggZiBGVU5DVElPTiA8UkVUPuKA mQogICAgIERpc3BsYXkgZG9jdW1lbnRhdGlvbiBvbiB0aGUgTGlzcCBmdW5jdGlvbiBuYW1lZCBG VU5DVElPTgogICAgICjigJhkZXNjcmliZS1mdW5jdGlvbuKAmSkuICBTaW5jZSBjb21tYW5kcyBh cmUgTGlzcCBmdW5jdGlvbnMsIHRoaXMKICAgICB3b3JrcyBmb3IgY29tbWFuZHMgdG9vLgrigJhD LWggaOKAmQogICAgIERpc3BsYXkgdGhlIOKAmEhFTExP4oCZIGZpbGUsIHdoaWNoIHNob3dzIGV4 YW1wbGVzIG9mIHZhcmlvdXMgY2hhcmFjdGVyCiAgICAgc2V0cy4K4oCYQy1oIGnigJkKICAgICBS dW4gSW5mbywgdGhlIEdOVSBkb2N1bWVudGF0aW9uIGJyb3dzZXIgKOKAmGluZm/igJkpLiAgVGhl IEVtYWNzIG1hbnVhbAogICAgIGlzIGF2YWlsYWJsZSBpbiBJbmZvLgrigJhDLWggayBLRVnigJkK ICAgICBEaXNwbGF5IHRoZSBuYW1lIGFuZCBkb2N1bWVudGF0aW9uIG9mIHRoZSBjb21tYW5kIHRo YXQgS0VZIHJ1bnMKICAgICAo4oCYZGVzY3JpYmUta2V54oCZKS4K4oCYQy1oIGzigJkKICAgICBE aXNwbGF5IGEgZGVzY3JpcHRpb24gb2YgeW91ciBsYXN0IDMwMCBrZXlzdHJva2VzICjigJh2aWV3 LWxvc3NhZ2XigJkpLgrigJhDLWggbeKAmQogICAgIERpc3BsYXkgZG9jdW1lbnRhdGlvbiBvZiB0 aGUgY3VycmVudCBtYWpvciBtb2RlIGFuZCBtaW5vciBtb2RlcwogICAgICjigJhkZXNjcmliZS1t b2Rl4oCZKS4K4oCYQy1oIG7igJkKICAgICBEaXNwbGF5IG5ld3Mgb2YgcmVjZW50IEVtYWNzIGNo YW5nZXMgKOKAmHZpZXctZW1hY3MtbmV3c+KAmSkuCuKAmEMtaCBvIFNZTUJPTOKAmQogICAgIERp c3BsYXkgZG9jdW1lbnRhdGlvbiBvZiB0aGUgTGlzcCBzeW1ib2wgbmFtZWQgU1lNQk9MCiAgICAg KOKAmGRlc2NyaWJlLXN5bWJvbOKAmSkuICBUaGlzIHdpbGwgc2hvdyB0aGUgZG9jdW1lbnRhdGlv biBvZiBhbGwga2luZHMKICAgICBvZiBzeW1ib2xzOiBmdW5jdGlvbnMsIHZhcmlhYmxlcywgYW5k IGZhY2VzLgrigJhDLWggcOKAmQogICAgIEZpbmQgcGFja2FnZXMgYnkgdG9waWMga2V5d29yZCAo 4oCYZmluZGVyLWJ5LWtleXdvcmTigJkpLiAgVGhpcyBsaXN0cwogICAgIHBhY2thZ2VzIHVzaW5n IGEgcGFja2FnZSBtZW51IGJ1ZmZlci4gICpOb3RlIFBhY2thZ2VzOjouCuKAmEMtaCBQIFBBQ0tB R0UgPFJFVD7igJkKICAgICBEaXNwbGF5IGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIHNwZWNpZmll ZCBwYWNrYWdlCiAgICAgKOKAmGRlc2NyaWJlLXBhY2thZ2XigJkpLgrigJhDLWggcuKAmQogICAg IERpc3BsYXkgdGhlIEVtYWNzIG1hbnVhbCBpbiBJbmZvICjigJhpbmZvLWVtYWNzLW1hbnVhbOKA mSkuCuKAmEMtaCBz4oCZCiAgICAgRGlzcGxheSB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQg InN5bnRheCB0YWJsZSIKICAgICAo4oCYZGVzY3JpYmUtc3ludGF44oCZKS4gIFRoZSBzeW50YXgg dGFibGUgc2F5cyB3aGljaCBjaGFyYWN0ZXJzIGFyZQogICAgIG9wZW5pbmcgZGVsaW1pdGVycywg d2hpY2ggYXJlIHBhcnRzIG9mIHdvcmRzLCBhbmQgc28gb24uICAqTm90ZQogICAgIFN5bnRheCBU YWJsZXM6IChlbGlzcClTeW50YXggVGFibGVzLCBmb3IgZGV0YWlscy4K4oCYQy1oIHTigJkKICAg ICBFbnRlciB0aGUgRW1hY3MgaW50ZXJhY3RpdmUgdHV0b3JpYWwgKOKAmGhlbHAtd2l0aC10dXRv cmlhbOKAmSkuCuKAmEMtaCB2IFZBUiA8UkVUPuKAmQogICAgIERpc3BsYXkgdGhlIGRvY3VtZW50 YXRpb24gb2YgdGhlIExpc3AgdmFyaWFibGUgVkFSCiAgICAgKOKAmGRlc2NyaWJlLXZhcmlhYmxl 4oCZKS4K4oCYQy1oIHcgQ09NTUFORCA8UkVUPuKAmQogICAgIFNob3cgd2hpY2gga2V5cyBydW4g dGhlIGNvbW1hbmQgbmFtZWQgQ09NTUFORCAo4oCYd2hlcmUtaXPigJkpLgrigJhDLWggQyBDT0RJ TkcgPFJFVD7igJkKICAgICBEZXNjcmliZSB0aGUgY29kaW5nIHN5c3RlbSBDT0RJTkcgKOKAmGRl c2NyaWJlLWNvZGluZy1zeXN0ZW3igJkpLgrigJhDLWggQyA8UkVUPuKAmQogICAgIERlc2NyaWJl IHRoZSBjb2Rpbmcgc3lzdGVtcyBjdXJyZW50bHkgaW4gdXNlLgrigJhDLWggRiBDT01NQU5EIDxS RVQ+4oCZCiAgICAgRW50ZXIgSW5mbyBhbmQgZ28gdG8gdGhlIG5vZGUgdGhhdCBkb2N1bWVudHMg dGhlIEVtYWNzIGNvbW1hbmQKICAgICBDT01NQU5EICjigJhJbmZvLWdvdG8tZW1hY3MtY29tbWFu ZC1ub2Rl4oCZKS4K4oCYQy1oIEkgTUVUSE9EIDxSRVQ+4oCZCiAgICAgRGVzY3JpYmUgdGhlIGlu cHV0IG1ldGhvZCBNRVRIT0QgKOKAmGRlc2NyaWJlLWlucHV0LW1ldGhvZOKAmSkuCuKAmEMtaCBL IEtFWeKAmQogICAgIEVudGVyIEluZm8gYW5kIGdvIHRvIHRoZSBub2RlIHRoYXQgZG9jdW1lbnRz IHRoZSBrZXkgc2VxdWVuY2UgS0VZCiAgICAgKOKAmEluZm8tZ290by1lbWFjcy1rZXktY29tbWFu ZC1ub2Rl4oCZKS4K4oCYQy1oIEwgTEFOR1VBR0UtRU5WIDxSRVQ+4oCZCiAgICAgRGlzcGxheSBp bmZvcm1hdGlvbiBvbiB0aGUgY2hhcmFjdGVyIHNldHMsIGNvZGluZyBzeXN0ZW1zLCBhbmQKICAg ICBpbnB1dCBtZXRob2RzIHVzZWQgaW4gbGFuZ3VhZ2UgZW52aXJvbm1lbnQgTEFOR1VBR0UtRU5W CiAgICAgKOKAmGRlc2NyaWJlLWxhbmd1YWdlLWVudmlyb25tZW504oCZKS4K4oCYQy1oIFMgU1lN Qk9MIDxSRVQ+4oCZCiAgICAgRGlzcGxheSB0aGUgSW5mbyBkb2N1bWVudGF0aW9uIG9uIHN5bWJv bCBTWU1CT0wgYWNjb3JkaW5nIHRvIHRoZQogICAgIHByb2dyYW1taW5nIGxhbmd1YWdlIHlvdSBh cmUgZWRpdGluZyAo4oCYaW5mby1sb29rdXAtc3ltYm9s4oCZKS4K4oCYQy1oIC7igJkKICAgICBE aXNwbGF5IHRoZSBoZWxwIG1lc3NhZ2UgZm9yIGEgc3BlY2lhbCB0ZXh0IGFyZWEsIGlmIHBvaW50 IGlzIGluCiAgICAgb25lICjigJhkaXNwbGF5LWxvY2FsLWhlbHDigJkpLiAgKFRoZXNlIGluY2x1 ZGUsIGZvciBleGFtcGxlLCBsaW5rcyBpbgogICAgIOKAmCpIZWxwKuKAmSBidWZmZXJzLikKCgoq KiAxMC4yIERvY3VtZW50YXRpb24gZm9yIGEgS2V5CgpUaGUgaGVscCBjb21tYW5kcyB0byBnZXQg aW5mb3JtYXRpb24gYWJvdXQgYSBrZXkgc2VxdWVuY2UgYXJlIOKAmEMtaCBj4oCZCijigJhkZXNj cmliZS1rZXktYnJpZWZseeKAmSkgYW5kIOKAmEMtaCBr4oCZICjigJhkZXNjcmliZS1rZXnigJkp LgoKICAg4oCYQy1oIGMgS0VZ4oCZIGRpc3BsYXlzIGluIHRoZSBlY2hvIGFyZWEgdGhlIG5hbWUg b2YgdGhlIGNvbW1hbmQgdGhhdApLRVkgaXMgYm91bmQgdG8uICBGb3IgZXhhbXBsZSwg4oCYQy1o IGMgQy1m4oCZIGRpc3BsYXlzIOKAmGZvcndhcmQtY2hhcuKAmS4KCiAgIOKAmEMtaCBrIEtFWeKA mSBpcyBzaW1pbGFyIGJ1dCBnaXZlcyBtb3JlIGluZm9ybWF0aW9uOiBpdCBkaXNwbGF5cyBhIGhl bHAKYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGNvbW1hbmTigJlzICJkb2N1bWVudGF0aW9uIHN0cmlu ZyIsIHdoaWNoIGRlc2NyaWJlcwpleGFjdGx5IHdoYXQgdGhlIGNvbW1hbmQgZG9lcy4KCiAgIOKA mEMtaCBLIEtFWeKAmSBkaXNwbGF5cyB0aGUgc2VjdGlvbiBvZiB0aGUgRW1hY3MgbWFudWFsIHRo YXQgZGVzY3JpYmVzCnRoZSBjb21tYW5kIGNvcnJlc3BvbmRpbmcgdG8gS0VZLgoKICAg4oCYQy1o IGPigJksIOKAmEMtaCBr4oCZIGFuZCDigJhDLWggS+KAmSB3b3JrIGZvciBhbnkgc29ydCBvZiBr ZXkgc2VxdWVuY2VzLAppbmNsdWRpbmcgZnVuY3Rpb24ga2V5cywgbWVudXMsIGFuZCBtb3VzZSBl dmVudHMgKGV4Y2VwdCB0aGF0IOKAmEMtaCBj4oCZCmlnbm9yZXMgbW91c2UgbW92ZW1lbnQgZXZl bnRzKS4gIEZvciBpbnN0YW5jZSwgYWZ0ZXIg4oCYQy1oIGvigJkgeW91IGNhbgpzZWxlY3QgYSBt ZW51IGl0ZW0gZnJvbSB0aGUgbWVudSBiYXIsIHRvIHZpZXcgdGhlIGRvY3VtZW50YXRpb24gc3Ry aW5nCm9mIHRoZSBjb21tYW5kIGl0IHJ1bnMuCgogICDigJhDLWggdyBDT01NQU5EIDxSRVQ+4oCZ IGxpc3RzIHRoZSBrZXlzIHRoYXQgYXJlIGJvdW5kIHRvIENPTU1BTkQuICBJdApkaXNwbGF5cyB0 aGUgbGlzdCBpbiB0aGUgZWNobyBhcmVhLiAgSWYgaXQgc2F5cyB0aGUgY29tbWFuZCBpcyBub3Qg b24KYW55IGtleSwgdGhhdCBtZWFucyB5b3UgbXVzdCB1c2Ug4oCYTS144oCZIHRvIHJ1biBpdC4g IOKAmEMtaCB34oCZIHJ1bnMgdGhlCmNvbW1hbmQg4oCYd2hlcmUtaXPigJkuCgoKKiogMTAuMyBI ZWxwIGJ5IENvbW1hbmQgb3IgVmFyaWFibGUgTmFtZQoK4oCYQy1oIGYgRlVOQ1RJT04gPFJFVD7i gJkgKOKAmGRlc2NyaWJlLWZ1bmN0aW9u4oCZKSBkaXNwbGF5cyB0aGUgZG9jdW1lbnRhdGlvbgpv ZiBMaXNwIGZ1bmN0aW9uIEZVTkNUSU9OLCBpbiBhIHdpbmRvdy4gIFNpbmNlIGNvbW1hbmRzIGFy ZSBMaXNwCmZ1bmN0aW9ucywgeW91IGNhbiB1c2UgdGhpcyBtZXRob2QgdG8gdmlldyB0aGUgZG9j dW1lbnRhdGlvbiBvZiBhbnkKY29tbWFuZCB3aG9zZSBuYW1lIHlvdSBrbm93LiAgRm9yIGV4YW1w bGUsCgogICAgIEMtaCBmIGF1dG8tZmlsbC1tb2RlIDxSRVQ+CgpkaXNwbGF5cyB0aGUgZG9jdW1l bnRhdGlvbiBvZiDigJhhdXRvLWZpbGwtbW9kZeKAmS4gIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRv CmdldCB0aGUgZG9jdW1lbnRhdGlvbiBvZiBhIGNvbW1hbmQgdGhhdCBpcyBub3QgYm91bmQgdG8g YW55IGtleSAob25lCndoaWNoIHlvdSB3b3VsZCBub3JtYWxseSBydW4gdXNpbmcg4oCYTS144oCZ KS4KCiAgIOKAmEMtaCBm4oCZIGlzIGFsc28gdXNlZnVsIGZvciBMaXNwIGZ1bmN0aW9ucyB0aGF0 IHlvdSB1c2UgaW4gYSBMaXNwCnByb2dyYW0uICBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUganVz dCB3cml0dGVuIHRoZSBleHByZXNzaW9uCuKAmChtYWtlLXZlY3RvciBsZW4p4oCZIGFuZCB3YW50 IHRvIGNoZWNrIHRoYXQgeW91IGFyZSB1c2luZyDigJhtYWtlLXZlY3RvcuKAmQpwcm9wZXJseSwg dHlwZSDigJhDLWggZiBtYWtlLXZlY3RvciA8UkVUPuKAmS4gIEJlY2F1c2Ug4oCYQy1oIGbigJkg YWxsb3dzIGFsbApmdW5jdGlvbiBuYW1lcywgbm90IGp1c3QgY29tbWFuZCBuYW1lcywgeW91IG1h eSBmaW5kIHRoYXQgc29tZSBvZiB5b3VyCmZhdm9yaXRlIGNvbXBsZXRpb24gYWJicmV2aWF0aW9u cyB0aGF0IHdvcmsgaW4g4oCYTS144oCZIGRvbuKAmXQgd29yayBpbiDigJhDLWgKZuKAmS4gIEFu IGFiYnJldmlhdGlvbiB0aGF0IGlzIHVuaXF1ZSBhbW9uZyBjb21tYW5kIG5hbWVzIG1heSBub3Qg YmUKdW5pcXVlIGFtb25nIGFsbCBmdW5jdGlvbiBuYW1lcy4KCiAgIElmIHlvdSB0eXBlIOKAmEMt aCBmIDxSRVQ+4oCZLCBpdCBkZXNjcmliZXMgdGhlIGZ1bmN0aW9uIGNhbGxlZCBieSB0aGUKaW5u ZXJtb3N0IExpc3AgZXhwcmVzc2lvbiBpbiB0aGUgYnVmZmVyIGFyb3VuZCBwb2ludCwgX3Byb3Zp ZGVkXyB0aGF0CmZ1bmN0aW9uIG5hbWUgaXMgYSB2YWxpZCwgZGVmaW5lZCBMaXNwIGZ1bmN0aW9u LiAgKFRoYXQgbmFtZSBhcHBlYXJzIGFzCnRoZSBkZWZhdWx0IHdoaWxlIHlvdSBlbnRlciB0aGUg YXJndW1lbnQuKSAgRm9yIGV4YW1wbGUsIGlmIHBvaW50IGlzCmxvY2F0ZWQgZm9sbG93aW5nIHRo ZSB0ZXh0IOKAmChtYWtlLXZlY3RvciAoY2FyIHgp4oCZLCB0aGUgaW5uZXJtb3N0IGxpc3QKY29u dGFpbmluZyBwb2ludCBpcyB0aGUgb25lIHRoYXQgc3RhcnRzIHdpdGgg4oCYKG1ha2UtdmVjdG9y 4oCZLCBzbyDigJhDLWggZgo8UkVUPuKAmSBkZXNjcmliZXMgdGhlIGZ1bmN0aW9uIOKAmG1ha2Ut dmVjdG9y4oCZLgoKICAg4oCYQy1oIGbigJkgaXMgYWxzbyB1c2VmdWwganVzdCB0byB2ZXJpZnkg dGhhdCB5b3Ugc3BlbGxlZCBhIGZ1bmN0aW9uCm5hbWUgY29ycmVjdGx5LiAgSWYgdGhlIG1pbmli dWZmZXIgcHJvbXB0IGZvciDigJhDLWggZuKAmSBzaG93cyB0aGUgZnVuY3Rpb24KbmFtZSBmcm9t IHRoZSBidWZmZXIgYXMgdGhlIGRlZmF1bHQsIGl0IG1lYW5zIHRoYXQgbmFtZSBpcyBkZWZpbmVk IGFzIGEKTGlzcCBmdW5jdGlvbi4gIFR5cGUg4oCYQy1n4oCZIHRvIGNhbmNlbCB0aGUg4oCYQy1o IGbigJkgY29tbWFuZCBpZiB5b3UgZG9u4oCZdApyZWFsbHkgd2FudCB0byB2aWV3IHRoZSBkb2N1 bWVudGF0aW9uLgoKICAg4oCYQy1oIHbigJkgKOKAmGRlc2NyaWJlLXZhcmlhYmxl4oCZKSBpcyBs aWtlIOKAmEMtaCBm4oCZIGJ1dCBkZXNjcmliZXMgTGlzcAp2YXJpYWJsZXMgaW5zdGVhZCBvZiBM aXNwIGZ1bmN0aW9ucy4gIEl0cyBkZWZhdWx0IGlzIHRoZSBMaXNwIHN5bWJvbAphcm91bmQgb3Ig YmVmb3JlIHBvaW50LCBpZiB0aGF0IGlzIHRoZSBuYW1lIG9mIGEgZGVmaW5lZCBMaXNwIHZhcmlh YmxlLgoqTm90ZSBWYXJpYWJsZXM6Oi4KCiAgIEhlbHAgYnVmZmVycyB0aGF0IGRlc2NyaWJlIEVt YWNzIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zIG5vcm1hbGx5CmhhdmUgaHlwZXJsaW5rcyB0byB0 aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgaWYgeW91IGhhdmUgdGhlIHNvdXJjZQpmaWxl cyBpbnN0YWxsZWQgKCpub3RlIEh5cGVybGlua2luZzo6KS4KCiAgIFRvIGZpbmQgYSBjb21tYW5k 4oCZcyBkb2N1bWVudGF0aW9uIGluIGEgbWFudWFsLCB1c2Ug4oCYQy1oIEbigJkKKOKAmEluZm8t Z290by1lbWFjcy1jb21tYW5kLW5vZGXigJkpLiAgVGhpcyBrbm93cyBhYm91dCB2YXJpb3VzIG1h bnVhbHMsIG5vdApqdXN0IHRoZSBFbWFjcyBtYW51YWwsIGFuZCBmaW5kcyB0aGUgcmlnaHQgb25l LgoKICAg4oCYQy1oIG/igJkgKOKAmGRlc2NyaWJlLXN5bWJvbOKAmSkgaXMgbGlrZSDigJhDLWgg ZuKAmSBhbmQg4oCYQy1oIHbigJksIGJ1dCBpdApkZXNjcmliZXMgYW55IHN5bWJvbCwgYmUgaXQg YSBmdW5jdGlvbiwgYSB2YXJpYWJsZSwgb3IgYSBmYWNlLiAgSWYgdGhlCnN5bWJvbCBoYXMgbW9y ZSB0aGFuIG9uZSBkZWZpbml0aW9uLCBsaWtlIGl0IGhhcyBib3RoIGRlZmluaXRpb24gYXMgYQpm dW5jdGlvbiBhbmQgYXMgYSB2YXJpYWJsZSwgdGhpcyBjb21tYW5kIHdpbGwgc2hvdyB0aGUgZG9j dW1lbnRhdGlvbiBvZgphbGwgb2YgdGhlbSwgb25lIGFmdGVyIHRoZSBvdGhlci4KCgoqKiAxMC40 IEFwcm9wb3MKClRoZSAiYXByb3BvcyIgY29tbWFuZHMgYW5zd2VyIHF1ZXN0aW9ucyBsaWtlLCDi gJxXaGF0IGFyZSB0aGUgY29tbWFuZHMgZm9yCndvcmtpbmcgd2l0aCBmaWxlcz/igJ0gTW9yZSBw cmVjaXNlbHksIHlvdSBzcGVjaWZ5IGFuICJhcHJvcG9zIHBhdHRlcm4iLAp3aGljaCBtZWFucyBl aXRoZXIgYSB3b3JkLCBhIGxpc3Qgb2Ygd29yZHMsIG9yIGEgcmVndWxhciBleHByZXNzaW9uLgoK ICAgRWFjaCBvZiB0aGUgZm9sbG93aW5nIGFwcm9wb3MgY29tbWFuZHMgcmVhZHMgYW4gYXByb3Bv cyBwYXR0ZXJuIGluCnRoZSBtaW5pYnVmZmVyLCBzZWFyY2hlcyBmb3IgaXRlbXMgdGhhdCBtYXRj aCB0aGUgcGF0dGVybiwgYW5kIGRpc3BsYXlzCnRoZSByZXN1bHRzIGluIGEgZGlmZmVyZW50IHdp bmRvdy4KCuKAmEMtaCBh4oCZCiAgICAgU2VhcmNoIGZvciBjb21tYW5kcyAo4oCYYXByb3Bvcy1j b21tYW5k4oCZKS4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQsCiAgICAgc2VhcmNoIGZvciBub25p bnRlcmFjdGl2ZSBmdW5jdGlvbnMgdG9vLgoK4oCYTS14IGFwcm9wb3PigJkKICAgICBTZWFyY2gg Zm9yIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLiAgQm90aCBpbnRlcmFjdGl2ZSBmdW5jdGlvbnMK ICAgICAoY29tbWFuZHMpIGFuZCBub25pbnRlcmFjdGl2ZSBmdW5jdGlvbnMgY2FuIGJlIGZvdW5k IGJ5IHRoaXMuCgrigJhNLXggYXByb3Bvcy11c2VyLW9wdGlvbuKAmQogICAgIFNlYXJjaCBmb3Ig dXNlci1jdXN0b21pemFibGUgdmFyaWFibGVzLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwKICAg ICBzZWFyY2ggZm9yIG5vbi1jdXN0b21pemFibGUgdmFyaWFibGVzIHRvby4KCuKAmE0teCBhcHJv cG9zLXZhcmlhYmxl4oCZCiAgICAgU2VhcmNoIGZvciB2YXJpYWJsZXMuICBXaXRoIGEgcHJlZml4 IGFyZ3VtZW50LCBzZWFyY2ggZm9yCiAgICAgY3VzdG9taXphYmxlIHZhcmlhYmxlcyBvbmx5LgoK 4oCYTS14IGFwcm9wb3MtbG9jYWwtdmFyaWFibGXigJkKICAgICBTZWFyY2ggZm9yIGJ1ZmZlci1s b2NhbCB2YXJpYWJsZXMuCgrigJhNLXggYXByb3Bvcy12YWx1ZeKAmQogICAgIFNlYXJjaCBmb3Ig dmFyaWFibGVzIHdob3NlIHZhbHVlcyBtYXRjaCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uCiAgICAg V2l0aCBhIHByZWZpeCBhcmd1bWVudCwgc2VhcmNoIGFsc28gZm9yIGZ1bmN0aW9ucyB3aXRoIGRl ZmluaXRpb25zCiAgICAgbWF0Y2hpbmcgdGhlIHBhdHRlcm4sIGFuZCBMaXNwIHN5bWJvbHMgd2l0 aCBwcm9wZXJ0aWVzIG1hdGNoaW5nIHRoZQogICAgIHBhdHRlcm4uCgrigJhNLXggYXByb3Bvcy1s b2NhbC12YWx1ZeKAmQogICAgIFNlYXJjaCBmb3IgYnVmZmVyLWxvY2FsIHZhcmlhYmxlcyB3aG9z ZSB2YWx1ZXMgbWF0Y2ggdGhlIHNwZWNpZmllZAogICAgIHBhdHRlcm4uCgrigJhDLWggZOKAmQog ICAgIFNlYXJjaCBmb3IgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgd2hvc2UgZG9jdW1lbnRhdGlv biBzdHJpbmdzCiAgICAgbWF0Y2ggdGhlIHNwZWNpZmllZCBwYXR0ZXJuICjigJhhcHJvcG9zLWRv Y3VtZW50YXRpb27igJkpLgoKICAgVGhlIHNpbXBsZXN0IGtpbmQgb2YgYXByb3BvcyBwYXR0ZXJu IGlzIG9uZSB3b3JkLiAgQW55dGhpbmcKY29udGFpbmluZyB0aGF0IHdvcmQgbWF0Y2hlcyB0aGUg cGF0dGVybi4gIFRodXMsIHRvIGZpbmQgY29tbWFuZHMgdGhhdAp3b3JrIG9uIGZpbGVzLCB0eXBl IOKAmEMtaCBhIGZpbGUgPFJFVD7igJkuICBUaGlzIGRpc3BsYXlzIGEgbGlzdCBvZiBhbGwKY29t bWFuZCBuYW1lcyB0aGF0IGNvbnRhaW4g4oCYZmlsZeKAmSwgaW5jbHVkaW5nIOKAmGNvcHktZmls ZeKAmSwg4oCYZmluZC1maWxl4oCZLAphbmQgc28gb24uICBFYWNoIGNvbW1hbmQgbmFtZSBjb21l cyB3aXRoIGEgYnJpZWYgZGVzY3JpcHRpb24gYW5kIGEgbGlzdApvZiBrZXlzIHlvdSBjYW4gY3Vy cmVudGx5IGludm9rZSBpdCB3aXRoLiAgSW4gb3VyIGV4YW1wbGUsIGl0IHdvdWxkIHNheQp0aGF0 IHlvdSBjYW4gaW52b2tlIOKAmGZpbmQtZmlsZeKAmSBieSB0eXBpbmcg4oCYQy14IEMtZuKAmS4K CiAgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgZnVuY3Rpb24gZGVmaW5pdGlvbiwgdmFy aWFibGUgb3Igc3ltYm9sCnByb3BlcnR5IGxpc3RlZCBpbiBhbiBhcHJvcG9zIGJ1ZmZlciwgeW91 IGNhbiBjbGljayBvbiBpdCB3aXRoIOKAmG1vdXNlLTHigJkKb3Ig4oCYbW91c2UtMuKAmSwgb3Ig bW92ZSB0aGVyZSBhbmQgdHlwZSA8UkVUPi4KCiAgIFdoZW4geW91IHNwZWNpZnkgbW9yZSB0aGFu IG9uZSB3b3JkIGluIHRoZSBhcHJvcG9zIHBhdHRlcm4sIGEgbmFtZQptdXN0IGNvbnRhaW4gYXQg bGVhc3QgdHdvIG9mIHRoZSB3b3JkcyBpbiBvcmRlciB0byBtYXRjaC4gIFRodXMsIGlmIHlvdQph cmUgbG9va2luZyBmb3IgY29tbWFuZHMgdG8ga2lsbCBhIGNodW5rIG9mIHRleHQgYmVmb3JlIHBv aW50LCB5b3UgY291bGQKdHJ5IOKAmEMtaCBhIGtpbGwgYmFjayBiYWNrd2FyZCBiZWhpbmQgYmVm b3JlIDxSRVQ+4oCZLiAgVGhlIHJlYWwgY29tbWFuZApuYW1lIOKAmGtpbGwtYmFja3dhcmTigJkg d2lsbCBtYXRjaCB0aGF0OyBpZiB0aGVyZSB3ZXJlIGEgY29tbWFuZArigJhraWxsLXRleHQtYmVm b3Jl4oCZLCBpdCB3b3VsZCBhbHNvIG1hdGNoLCBzaW5jZSBpdCBjb250YWlucyB0d28gb2YgdGhl CnNwZWNpZmllZCB3b3Jkcy4KCiAgIEZvciBldmVuIGdyZWF0ZXIgZmxleGliaWxpdHksIHlvdSBj YW4gc3BlY2lmeSBhIHJlZ3VsYXIgZXhwcmVzc2lvbgooKm5vdGUgUmVnZXhwczo6KS4gIEFuIGFw cm9wb3MgcGF0dGVybiBpcyBpbnRlcnByZXRlZCBhcyBhIHJlZ3VsYXIKZXhwcmVzc2lvbiBpZiBp dCBjb250YWlucyBhbnkgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBzcGVjaWFsCmNoYXJhY3Rl cnMsIOKAmF4kKis/Llxb4oCZLgoKICAgRm9sbG93aW5nIHRoZSBjb252ZW50aW9ucyBmb3IgbmFt aW5nIEVtYWNzIGNvbW1hbmRzLCBoZXJlIGFyZSBzb21lCndvcmRzIHRoYXQgeW914oCZbGwgZmlu ZCB1c2VmdWwgaW4gYXByb3BvcyBwYXR0ZXJucy4gIEJ5IHVzaW5nIHRoZW0gaW4K4oCYQy1oIGHi gJksIHlvdSB3aWxsIGFsc28gZ2V0IGEgZmVlbCBmb3IgdGhlIG5hbWluZyBjb252ZW50aW9ucy4K CiAgICAgY2hhciwgbGluZSwgd29yZCwgc2VudGVuY2UsIHBhcmFncmFwaCwgcmVnaW9uLCBwYWdl LCBzZXhwLCBsaXN0LAogICAgIGRlZnVuLCByZWN0LCBidWZmZXIsIGZyYW1lLCB3aW5kb3csIGZh Y2UsIGZpbGUsIGRpciwgcmVnaXN0ZXIsCiAgICAgbW9kZSwgYmVnaW5uaW5nLCBlbmQsIGZvcndh cmQsIGJhY2t3YXJkLCBuZXh0LCBwcmV2aW91cywgdXAsIGRvd24sCiAgICAgc2VhcmNoLCBnb3Rv LCBraWxsLCBkZWxldGUsIG1hcmssIGluc2VydCwgeWFuaywgZmlsbCwgaW5kZW50LCBjYXNlLAog ICAgIGNoYW5nZSwgc2V0LCB3aGF0LCBsaXN0LCBmaW5kLCB2aWV3LCBkZXNjcmliZSwgZGVmYXVs dC4KCiAgIElmIHRoZSB2YXJpYWJsZSDigJhhcHJvcG9zLWRvLWFsbOKAmSBpcyBub24t4oCYbmls 4oCZLCBtb3N0IGFwcm9wb3MgY29tbWFuZHMKYmVoYXZlIGFzIGlmIHRoZXkgaGFkIGJlZW4gZ2l2 ZW4gYSBwcmVmaXggYXJndW1lbnQuICBUaGVyZSBpcyBvbmUKZXhjZXB0aW9uOiDigJhhcHJvcG9z LXZhcmlhYmxl4oCZIHdpdGhvdXQgYSBwcmVmaXggYXJndW1lbnQgd2lsbCBhbHdheXMKc2VhcmNo IGZvciBhbGwgdmFyaWFibGVzLCBubyBtYXR0ZXIgd2hhdCB0aGUgdmFsdWUgb2Yg4oCYYXByb3Bv cy1kby1hbGzigJkKaXMuCgogICBCeSBkZWZhdWx0LCBhbGwgYXByb3BvcyBjb21tYW5kcyBleGNl cHQg4oCYYXByb3Bvcy1kb2N1bWVudGF0aW9u4oCZIGxpc3QKdGhlaXIgcmVzdWx0cyBpbiBhbHBo YWJldGljYWwgb3JkZXIuICBJZiB0aGUgdmFyaWFibGUK4oCYYXByb3Bvcy1zb3J0LWJ5LXNjb3Jl c+KAmSBpcyBub24t4oCYbmls4oCZLCB0aGVzZSBjb21tYW5kcyBpbnN0ZWFkIHRyeSB0bwpndWVz cyB0aGUgcmVsZXZhbmNlIG9mIGVhY2ggcmVzdWx0LCBhbmQgZGlzcGxheSB0aGUgbW9zdCByZWxl dmFudCBvbmVzCmZpcnN0LiAgVGhlIOKAmGFwcm9wb3MtZG9jdW1lbnRhdGlvbuKAmSBjb21tYW5k IGxpc3RzIGl0cyByZXN1bHRzIGluIG9yZGVyCm9mIHJlbGV2YW5jZSBieSBkZWZhdWx0OyB0byBs aXN0IHRoZW0gaW4gYWxwaGFiZXRpY2FsIG9yZGVyLCBjaGFuZ2UgdGhlCnZhcmlhYmxlIOKAmGFw cm9wb3MtZG9jdW1lbnRhdGlvbi1zb3J0LWJ5LXNjb3Jlc+KAmSB0byDigJhuaWzigJkuCgoKKiog MTAuNSBIZWxwIE1vZGUgQ29tbWFuZHMKCkhlbHAgYnVmZmVycyBwcm92aWRlIHRoZSBzYW1lIGNv bW1hbmRzIGFzIFZpZXcgbW9kZSAoKm5vdGUgVmlldyBNb2RlOjopOwpmb3IgaW5zdGFuY2UsIDxT UEM+IHNjcm9sbHMgZm9yd2FyZCwgYW5kIDxERUw+IG9yIOKAmFMtPFNQQz7igJkgc2Nyb2xscwpi YWNrd2FyZC4gIEEgZmV3IHNwZWNpYWwgY29tbWFuZHMgYXJlIGFsc28gcHJvdmlkZWQ6CgrigJg8 UkVUPuKAmQogICAgIEZvbGxvdyBhIGNyb3NzIHJlZmVyZW5jZSBhdCBwb2ludCAo4oCYaGVscC1m b2xsb3figJkpLgrigJg8VEFCPuKAmQogICAgIE1vdmUgcG9pbnQgZm9yd2FyZCB0byB0aGUgbmV4 dCBoeXBlcmxpbmsgKOKAmGZvcndhcmQtYnV0dG9u4oCZKS4K4oCYUy08VEFCPuKAmQogICAgIE1v dmUgcG9pbnQgYmFjayB0byB0aGUgcHJldmlvdXMgaHlwZXJsaW5rICjigJhiYWNrd2FyZC1idXR0 b27igJkpLgrigJhtb3VzZS0x4oCZCuKAmG1vdXNlLTLigJkKICAgICBGb2xsb3cgYSBoeXBlcmxp bmsgdGhhdCB5b3UgY2xpY2sgb24uCuKAmEMtYyBDLWPigJkKICAgICBTaG93IGFsbCBkb2N1bWVu dGF0aW9uIGFib3V0IHRoZSBzeW1ib2wgYXQgcG9pbnQKICAgICAo4oCYaGVscC1mb2xsb3ctc3lt Ym9s4oCZKS4K4oCYQy1jIEMtZuKAmQrigJhy4oCZCiAgICAgR28gZm9yd2FyZCB0byB0aGUgbmV4 dCBoZWxwIHRvcGljICjigJhoZWxwLWdvLWZvcndhcmTigJkpLgrigJhDLWMgQy1i4oCZCuKAmGzi gJkKICAgICBHbyBiYWNrIHRvIHRoZSBwcmV2aW91cyBoZWxwIHRvcGljICjigJhoZWxwLWdvLWJh Y2vigJkpLgoKICAgV2hlbiBhIGZ1bmN0aW9uIG5hbWUsIHZhcmlhYmxlIG5hbWUsIG9yIGZhY2Ug bmFtZSAoKm5vdGUgRmFjZXM6OikKYXBwZWFycyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUg aGVscCBidWZmZXIsIGl0IGlzIG5vcm1hbGx5IGFuCnVuZGVybGluZWQgImh5cGVybGluayIuICBU byB2aWV3IHRoZSBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24sIG1vdmUKcG9pbnQgdGhlcmUgYW5k IHR5cGUgPFJFVD4gKOKAmGhlbHAtZm9sbG934oCZKSwgb3IgY2xpY2sgb24gdGhlIGh5cGVybGlu awp3aXRoIOKAmG1vdXNlLTHigJkgb3Ig4oCYbW91c2UtMuKAmS4gIERvaW5nIHNvIHJlcGxhY2Vz IHRoZSBjb250ZW50cyBvZiB0aGUgaGVscApidWZmZXI7IHRvIHJldHJhY2UgeW91ciBzdGVwcywg dHlwZSDigJhDLWMgQy1i4oCZIG9yIOKAmGzigJkgKOKAmGhlbHAtZ28tYmFja+KAmSkuCldoaWxl IHJldHJhY2luZyB5b3VyIHN0ZXBzLCB5b3UgY2FuIGdvIGZvcndhcmQgYnkgdXNpbmcg4oCYQy1j IEMtZuKAmSBvciDigJhy4oCZCijigJhoZWxwLWdvLWZvcndhcmTigJkpLgoKICAgQSBoZWxwIGJ1 ZmZlciBjYW4gYWxzbyBjb250YWluIGh5cGVybGlua3MgdG8gSW5mbyBtYW51YWxzLCBzb3VyY2UK Y29kZSBkZWZpbml0aW9ucywgYW5kIFVSTHMgKHdlYiBwYWdlcykuICBUaGUgZmlyc3QgdHdvIGFy ZSBvcGVuZWQgaW4KRW1hY3MsIGFuZCB0aGUgdGhpcmQgdXNpbmcgYSB3ZWIgYnJvd3NlciB2aWEg dGhlIOKAmGJyb3dzZS11cmzigJkgY29tbWFuZAooKm5vdGUgQnJvd3NlLVVSTDo6KS4KCiAgIElu IGEgaGVscCBidWZmZXIsIDxUQUI+ICjigJhmb3J3YXJkLWJ1dHRvbuKAmSkgbW92ZXMgcG9pbnQg Zm9yd2FyZCB0byB0aGUKbmV4dCBoeXBlcmxpbmssIHdoaWxlIOKAmFMtPFRBQj7igJkgKOKAmGJh Y2t3YXJkLWJ1dHRvbuKAmSkgbW92ZXMgcG9pbnQgYmFjayB0bwp0aGUgcHJldmlvdXMgaHlwZXJs aW5rLiAgVGhlc2UgY29tbWFuZHMgYWN0IGN5Y2xpY2FsbHk7IGZvciBpbnN0YW5jZSwKdHlwaW5n IDxUQUI+IGF0IHRoZSBsYXN0IGh5cGVybGluayBtb3ZlcyBiYWNrIHRvIHRoZSBmaXJzdCBoeXBl cmxpbmsuCgogICBUbyB2aWV3IGFsbCBkb2N1bWVudGF0aW9uIGFib3V0IGFueSBzeW1ib2wgaW4g dGhlIHRleHQsIG1vdmUgcG9pbnQgdG8KdGhlIHN5bWJvbCBhbmQgdHlwZSDigJhDLWMgQy1j4oCZ ICjigJhoZWxwLWZvbGxvdy1zeW1ib2zigJkpLiAgVGhpcyBzaG93cyB0aGUKZG9jdW1lbnRhdGlv biBmb3IgYWxsIHRoZSBtZWFuaW5ncyBvZiB0aGUgc3ltYm9s4oCUYXMgYSB2YXJpYWJsZSwgYXMg YQpmdW5jdGlvbiwgYW5kL29yIGFzIGEgZmFjZS4KCgoqKiAxMC42IEtleXdvcmQgU2VhcmNoIGZv ciBQYWNrYWdlcwoKTW9zdCBvcHRpb25hbCBmZWF0dXJlcyBpbiBFbWFjcyBhcmUgZ3JvdXBlZCBp bnRvICJwYWNrYWdlcyIuICBFbWFjcwpjb250YWlucyBzZXZlcmFsIGh1bmRyZWQgYnVpbHQtaW4g cGFja2FnZXMsIGFuZCBtb3JlIGNhbiBiZSBpbnN0YWxsZWQKb3ZlciB0aGUgbmV0d29yayAoKm5v dGUgUGFja2FnZXM6OikuCgogICBUbyBtYWtlIGl0IGVhc2llciB0byBmaW5kIHBhY2thZ2VzIHJl bGF0ZWQgdG8gYSB0b3BpYywgbW9zdCBwYWNrYWdlcwphcmUgYXNzb2NpYXRlZCB3aXRoIG9uZSBv ciBtb3JlICJrZXl3b3JkcyIgYmFzZWQgb24gd2hhdCB0aGV5IGRvLiAgVHlwZQrigJhDLWggcOKA mSAo4oCYZmluZGVyLWJ5LWtleXdvcmTigJkpIHRvIGJyaW5nIHVwIGEgbGlzdCBvZiBwYWNrYWdl IGtleXdvcmRzLAp0b2dldGhlciB3aXRoIGEgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUga2V5d29y ZHMgbWVhbi4gIFRvIHZpZXcgYSBsaXN0Cm9mIHBhY2thZ2VzIGZvciBhIGdpdmVuIGtleXdvcmQs IHR5cGUgPFJFVD4gb24gdGhhdCBsaW5lOyB0aGlzIGRpc3BsYXlzCnRoZSBsaXN0IG9mIHBhY2th Z2VzIGluIGEgUGFja2FnZSBNZW51IGJ1ZmZlciAoKm5vdGUgUGFja2FnZSBNZW51OjopLgoKICAg 4oCYQy1oIFDigJkgKOKAmGRlc2NyaWJlLXBhY2thZ2XigJkpIHByb21wdHMgZm9yIHRoZSBuYW1l IG9mIGEgcGFja2FnZSAoKm5vdGUKUGFja2FnZXM6OiksIGFuZCBkaXNwbGF5cyBhIGhlbHAgYnVm ZmVyIGRlc2NyaWJpbmcgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlCnBhY2thZ2UgYW5kIHRoZSBmZWF0 dXJlcyB0aGF0IGl0IGltcGxlbWVudHMuICBUaGUgYnVmZmVyIGxpc3RzIHRoZQprZXl3b3JkcyB0 aGF0IHJlbGF0ZSB0byB0aGUgcGFja2FnZSBpbiB0aGUgZm9ybSBvZiBidXR0b25zLiAgQ2xpY2sg b24gYQpidXR0b24gd2l0aCDigJhtb3VzZS0x4oCZIG9yIOKAmG1vdXNlLTLigJkgdG8gc2VlIHRo ZSBsaXN0IG9mIG90aGVyIHBhY2thZ2VzCnJlbGF0ZWQgdG8gdGhhdCBrZXl3b3JkLgoKCioqIDEw LjcgSGVscCBmb3IgSW50ZXJuYXRpb25hbCBMYW5ndWFnZSBTdXBwb3J0CgpGb3IgaW5mb3JtYXRp b24gb24gYSBzcGVjaWZpYyBsYW5ndWFnZSBlbnZpcm9ubWVudCAoKm5vdGUgTGFuZ3VhZ2UKRW52 aXJvbm1lbnRzOjopLCB0eXBlIOKAmEMtaCBM4oCZICjigJhkZXNjcmliZS1sYW5ndWFnZS1lbnZp cm9ubWVudOKAmSkuICBUaGlzCmRpc3BsYXlzIGEgaGVscCBidWZmZXIgZGVzY3JpYmluZyB0aGUg bGFuZ3VhZ2VzIHN1cHBvcnRlZCBieSB0aGUKbGFuZ3VhZ2UgZW52aXJvbm1lbnQsIGFuZCBsaXN0 aW5nIHRoZSBhc3NvY2lhdGVkIGNoYXJhY3RlciBzZXRzLCBjb2RpbmcKc3lzdGVtcywgYW5kIGlu cHV0IG1ldGhvZHMsIGFzIHdlbGwgYXMgc29tZSBzYW1wbGUgdGV4dCBmb3IgdGhhdApsYW5ndWFn ZSBlbnZpcm9ubWVudC4KCiAgIFRoZSBjb21tYW5kIOKAmEMtaCBo4oCZICjigJh2aWV3LWhlbGxv LWZpbGXigJkpIGRpc3BsYXlzIHRoZSBmaWxlCuKAmGV0Yy9IRUxMT+KAmSwgd2hpY2ggZGVtb25z dHJhdGVzIHZhcmlvdXMgY2hhcmFjdGVyIHNldHMgYnkgc2hvd2luZyBob3cgdG8Kc2F5IOKAnGhl bGxv4oCdIGluIG1hbnkgbGFuZ3VhZ2VzLgoKICAgVGhlIGNvbW1hbmQg4oCYQy1oIEnigJkgKOKA mGRlc2NyaWJlLWlucHV0LW1ldGhvZOKAmSkgZGVzY3JpYmVzIGFuIGlucHV0Cm1ldGhvZOKAlGVp dGhlciBhIHNwZWNpZmllZCBpbnB1dCBtZXRob2QsIG9yIGJ5IGRlZmF1bHQgdGhlIGlucHV0IG1l dGhvZApjdXJyZW50bHkgaW4gdXNlLiAgKk5vdGUgSW5wdXQgTWV0aG9kczo6LgoKICAgVGhlIGNv bW1hbmQg4oCYQy1oIEPigJkgKOKAmGRlc2NyaWJlLWNvZGluZy1zeXN0ZW3igJkpIGRlc2NyaWJl cyBjb2RpbmcKc3lzdGVtc+KAlGVpdGhlciBhIHNwZWNpZmllZCBjb2Rpbmcgc3lzdGVtLCBvciB0 aGUgb25lcyBjdXJyZW50bHkgaW4gdXNlLgoqTm90ZSBDb2RpbmcgU3lzdGVtczo6LgoKCioqIDEw LjggT3RoZXIgSGVscCBDb21tYW5kcwoK4oCYQy1oIGnigJkgKOKAmGluZm/igJkpIHJ1bnMgdGhl IEluZm8gcHJvZ3JhbSwgd2hpY2ggYnJvd3NlcyBzdHJ1Y3R1cmVkCmRvY3VtZW50YXRpb24gZmls ZXMuICBUaGUgZW50aXJlIEVtYWNzIG1hbnVhbCBpcyBhdmFpbGFibGUgd2l0aGluIEluZm8sCmFs b25nIHdpdGggbWFueSBvdGhlciBtYW51YWxzIGZvciB0aGUgR05VIHN5c3RlbS4gIFR5cGUg4oCY aOKAmSBhZnRlcgplbnRlcmluZyBJbmZvIHRvIHJ1biBhIHR1dG9yaWFsIG9uIHVzaW5nIEluZm8u CgogICBXaXRoIGEgbnVtZXJpYyBhcmd1bWVudCBOLCDigJhDLWggaeKAmSBzZWxlY3RzIHRoZSBJ bmZvIGJ1ZmZlcgrigJgqaW5mbyo8Tj7igJkuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0 byBicm93c2UgbXVsdGlwbGUgSW5mbyBtYW51YWxzCnNpbXVsdGFuZW91c2x5LiAgSWYgeW91IHNw ZWNpZnkganVzdCDigJhDLXXigJkgYXMgdGhlIHByZWZpeCBhcmd1bWVudCwg4oCYQy1oCmnigJkg cHJvbXB0cyBmb3IgdGhlIG5hbWUgb2YgYSBkb2N1bWVudGF0aW9uIGZpbGUsIHNvIHlvdSBjYW4g YnJvd3NlIGEKZmlsZSB3aGljaCBkb2VzbuKAmXQgaGF2ZSBhbiBlbnRyeSBpbiB0aGUgdG9wLWxl dmVsIEluZm8gbWVudS4KCiAgIFRoZSBoZWxwIGNvbW1hbmRzIOKAmEMtaCBGIEZVTkNUSU9OIDxS RVQ+4oCZIGFuZCDigJhDLWggSyBLRVnigJksIGRlc2NyaWJlZAphYm92ZSwgZW50ZXIgSW5mbyBh bmQgZ28gc3RyYWlnaHQgdG8gdGhlIGRvY3VtZW50YXRpb24gb2YgRlVOQ1RJT04gb3IKS0VZLgoK ICAgV2hlbiBlZGl0aW5nIGEgcHJvZ3JhbSwgaWYgeW91IGhhdmUgYW4gSW5mbyB2ZXJzaW9uIG9m IHRoZSBtYW51YWwgZm9yCnRoZSBwcm9ncmFtbWluZyBsYW5ndWFnZSwgeW91IGNhbiB1c2Ug4oCY Qy1oIFPigJkgKOKAmGluZm8tbG9va3VwLXN5bWJvbOKAmSkgdG8KZmluZCBhbiBlbnRyeSBmb3Ig YSBzeW1ib2wgKGtleXdvcmQsIGZ1bmN0aW9uIG9yIHZhcmlhYmxlKSBpbiB0aGUgcHJvcGVyCm1h bnVhbC4gIFRoZSBkZXRhaWxzIG9mIGhvdyB0aGlzIGNvbW1hbmQgd29ya3MgZGVwZW5kIG9uIHRo ZSBtYWpvciBtb2RlLgoKICAgSWYgc29tZXRoaW5nIHN1cnByaXNpbmcgaGFwcGVucywgYW5kIHlv dSBhcmUgbm90IHN1cmUgd2hhdCB5b3UgdHlwZWQsCnVzZSDigJhDLWggbOKAmSAo4oCYdmlldy1s b3NzYWdl4oCZKS4gIOKAmEMtaCBs4oCZIGRpc3BsYXlzIHlvdXIgbGFzdCAzMDAgaW5wdXQKa2V5 c3Ryb2tlcyBhbmQgdGhlIGNvbW1hbmRzIHRoZXkgaW52b2tlZC4gIElmIHlvdSBzZWUgY29tbWFu ZHMgdGhhdCB5b3UKYXJlIG5vdCBmYW1pbGlhciB3aXRoLCB5b3UgY2FuIHVzZSDigJhDLWgga+KA mSBvciDigJhDLWggZuKAmSB0byBmaW5kIG91dCB3aGF0CnRoZXkgZG8uCgogICBUbyByZXZpZXcg cmVjZW50IGVjaG8gYXJlYSBtZXNzYWdlcywgdXNlIOKAmEMtaCBl4oCZCijigJh2aWV3LWVjaG8t YXJlYS1tZXNzYWdlc+KAmSkuICBUaGlzIGRpc3BsYXlzIHRoZSBidWZmZXIg4oCYKk1lc3NhZ2Vz KuKAmSwKd2hlcmUgdGhvc2UgbWVzc2FnZXMgYXJlIGtlcHQuCgogICBFYWNoIEVtYWNzIG1ham9y IG1vZGUgdHlwaWNhbGx5IHJlZGVmaW5lcyBhIGZldyBrZXlzIGFuZCBtYWtlcyBvdGhlcgpjaGFu Z2VzIGluIGhvdyBlZGl0aW5nIHdvcmtzLiAg4oCYQy1oIG3igJkgKOKAmGRlc2NyaWJlLW1vZGXi gJkpIGRpc3BsYXlzCmRvY3VtZW50YXRpb24gb24gdGhlIGN1cnJlbnQgbWFqb3IgbW9kZSwgd2hp Y2ggbm9ybWFsbHkgZGVzY3JpYmVzIHRoZQpjb21tYW5kcyBhbmQgZmVhdHVyZXMgdGhhdCBhcmUg Y2hhbmdlZCBpbiB0aGlzIG1vZGUsIGFuZCBhbHNvIGl0cyBrZXkKYmluZGluZ3MuCgogICDigJhD LWggYuKAmSAo4oCYZGVzY3JpYmUtYmluZGluZ3PigJkpIGFuZCDigJhDLWggc+KAmSAo4oCYZGVz Y3JpYmUtc3ludGF44oCZKSBzaG93Cm90aGVyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50 IGVudmlyb25tZW50IHdpdGhpbiBFbWFjcy4gIOKAmEMtaCBi4oCZCmRpc3BsYXlzIGEgbGlzdCBv ZiBhbGwgdGhlIGtleSBiaW5kaW5ncyBub3cgaW4gZWZmZWN0OiBmaXJzdCB0aGUgbG9jYWwKYmlu ZGluZ3Mgb2YgdGhlIGN1cnJlbnQgbWlub3IgbW9kZXMsIHRoZW4gdGhlIGxvY2FsIGJpbmRpbmdz IGRlZmluZWQgYnkKdGhlIGN1cnJlbnQgbWFqb3IgbW9kZSwgYW5kIGZpbmFsbHkgdGhlIGdsb2Jh bCBiaW5kaW5ncyAoKm5vdGUgS2V5CkJpbmRpbmdzOjopLiAg4oCYQy1oIHPigJkgZGlzcGxheXMg dGhlIGNvbnRlbnRzIG9mIHRoZSBzeW50YXggdGFibGUsIHdpdGgKZXhwbGFuYXRpb25zIG9mIGVh Y2ggY2hhcmFjdGVy4oCZcyBzeW50YXggKCpub3RlIFN5bnRheCBUYWJsZXM6CihlbGlzcClTeW50 YXggVGFibGVzLikuCgogICBZb3UgY2FuIGdldCBhIGxpc3Qgb2Ygc3ViY29tbWFuZHMgZm9yIGEg cGFydGljdWxhciBwcmVmaXgga2V5IGJ5CnR5cGluZyDigJhDLWjigJksIOKAmD/igJksIG9yIDxG MT4gKOKAmGRlc2NyaWJlLXByZWZpeC1iaW5kaW5nc+KAmSkgYWZ0ZXIgdGhlIHByZWZpeAprZXku ICAoVGhlcmUgYXJlIGEgZmV3IHByZWZpeCBrZXlzIGZvciB3aGljaCBub3QgYWxsIG9mIHRoZXNl IGtleXMKd29ya+KAlHRob3NlIHRoYXQgcHJvdmlkZSB0aGVpciBvd24gYmluZGluZ3MgZm9yIHRo YXQga2V5LiAgT25lIG9mIHRoZXNlCnByZWZpeCBrZXlzIGlzIDxFU0M+LCBiZWNhdXNlIOKAmDxF U0M+IEMtaOKAmSBpcyBhY3R1YWxseSDigJhDLU0taOKAmSwgd2hpY2gKbWFya3MgYSBkZWZ1bi4g IEhvd2V2ZXIsIOKAmDxFU0M+IDxGMT7igJkgYW5kIOKAmDxFU0M+ID/igJkgd29yayBmaW5lLikK CgoqKiAxMC45IEhlbHAgRmlsZXMKCkFwYXJ0IGZyb20gdGhlIGJ1aWx0LWluIGRvY3VtZW50YXRp b24gYW5kIG1hbnVhbHMsIEVtYWNzIGNvbnRhaW5zCnNldmVyYWwgb3RoZXIgZmlsZXMgZGVzY3Jp YmluZyB0b3BpY3MgbGlrZSBjb3B5aW5nIGNvbmRpdGlvbnMsIHJlbGVhc2UKbm90ZXMsIGluc3Ry dWN0aW9ucyBmb3IgZGVidWdnaW5nIGFuZCByZXBvcnRpbmcgYnVncywgYW5kIHNvIGZvcnRoLiAg WW91CmNhbiB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kcyB0byB2aWV3IHRoZXNlIGZpbGVzLiAg QXBhcnQgZnJvbSDigJhDLWggZ+KAmSwKdGhleSBhbGwgaGF2ZSB0aGUgZm9ybSDigJhDLWggQy1D SEFS4oCZLgoK4oCYQy1oIEMtY+KAmQogICAgIERpc3BsYXkgdGhlIHJ1bGVzIHVuZGVyIHdoaWNo IHlvdSBjYW4gY29weSBhbmQgcmVkaXN0cmlidXRlIEVtYWNzCiAgICAgKOKAmGRlc2NyaWJlLWNv cHlpbmfigJkpLgrigJhDLWggQy1k4oCZCiAgICAgRGlzcGxheSBoZWxwIGZvciBkZWJ1Z2dpbmcg RW1hY3MgKOKAmHZpZXctZW1hY3MtZGVidWdnaW5n4oCZKS4K4oCYQy1oIEMtZeKAmQogICAgIERp c3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdG8gZ2V0IGV4dGVybmFsIHBhY2thZ2VzCiAg ICAgKOKAmHZpZXctZXh0ZXJuYWwtcGFja2FnZXPigJkpLgrigJhDLWggQy1m4oCZCiAgICAgRGlz cGxheSB0aGUgRW1hY3MgZnJlcXVlbnRseS1hbnN3ZXJlZC1xdWVzdGlvbnMgbGlzdAogICAgICji gJh2aWV3LWVtYWNzLUZBUeKAmSkuCuKAmEMtaCBn4oCZCiAgICAgVmlzaXQgdGhlIHBhZ2UgKGh0 dHBzOi8vd3d3LmdudS5vcmcpIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIEdOVQogICAgIFBy b2plY3QgKOKAmGRlc2NyaWJlLWdudS1wcm9qZWN04oCZKS4K4oCYQy1oIEMtbeKAmQogICAgIERp c3BsYXkgaW5mb3JtYXRpb24gYWJvdXQgb3JkZXJpbmcgcHJpbnRlZCBjb3BpZXMgb2YgRW1hY3Mg bWFudWFscwogICAgICjigJh2aWV3LW9yZGVyLW1hbnVhbHPigJkpLgrigJhDLWggQy1u4oCZCiAg ICAgRGlzcGxheSB0aGUgbmV3cywgd2hpY2ggbGlzdHMgdGhlIG5ldyBmZWF0dXJlcyBpbiB0aGlz IHZlcnNpb24gb2YKICAgICBFbWFjcyAo4oCYdmlldy1lbWFjcy1uZXdz4oCZKS4K4oCYQy1oIEMt b+KAmQogICAgIERpc3BsYXkgaG93IHRvIG9yZGVyIG9yIGRvd25sb2FkIHRoZSBsYXRlc3QgdmVy c2lvbiBvZiBFbWFjcyBhbmQKICAgICBvdGhlciBHTlUgc29mdHdhcmUgKOKAmGRlc2NyaWJlLWRp c3RyaWJ1dGlvbuKAmSkuCuKAmEMtaCBDLXDigJkKICAgICBEaXNwbGF5IHRoZSBsaXN0IG9mIGtu b3duIEVtYWNzIHByb2JsZW1zLCBzb21ldGltZXMgd2l0aCBzdWdnZXN0ZWQKICAgICB3b3JrYXJv dW5kcyAo4oCYdmlldy1lbWFjcy1wcm9ibGVtc+KAmSkuCuKAmEMtaCBDLXTigJkKICAgICBEaXNw bGF5IHRoZSBFbWFjcyB0by1kbyBsaXN0ICjigJh2aWV3LWVtYWNzLXRvZG/igJkpLgrigJhDLWgg Qy134oCZCiAgICAgRGlzcGxheSB0aGUgZnVsbCBkZXRhaWxzIG9uIHRoZSBjb21wbGV0ZSBhYnNl bmNlIG9mIHdhcnJhbnR5IGZvcgogICAgIEdOVSBFbWFjcyAo4oCYZGVzY3JpYmUtbm8td2FycmFu dHnigJkpLgoKCioqIDEwLjEwIEhlbHAgb24gQWN0aXZlIFRleHQgYW5kIFRvb2x0aXBzCgpJbiBF bWFjcywgc3RyZXRjaGVzIG9mICJhY3RpdmUgdGV4dCIgKHRleHQgdGhhdCBkb2VzIHNvbWV0aGlu ZyBzcGVjaWFsCmluIHJlc3BvbnNlIHRvIG1vdXNlIGNsaWNrcyBvciA8UkVUPikgb2Z0ZW4gaGF2 ZSBhc3NvY2lhdGVkIGhlbHAgdGV4dC4KVGhpcyBpbmNsdWRlcyBoeXBlcmxpbmtzIGluIEVtYWNz IGJ1ZmZlcnMsIGFzIHdlbGwgYXMgcGFydHMgb2YgdGhlIG1vZGUKbGluZS4gIE9uIGdyYXBoaWNh bCBkaXNwbGF5cywgYXMgd2VsbCBhcyBzb21lIHRleHQgdGVybWluYWxzIHdoaWNoCnN1cHBvcnQg bW91c2UgdHJhY2tpbmcsIG1vdmluZyB0aGUgbW91c2Ugb3ZlciB0aGUgYWN0aXZlIHRleHQgZGlz cGxheXMKdGhlIGhlbHAgdGV4dCBhcyBhICJ0b29sdGlwIi4gICpOb3RlIFRvb2x0aXBzOjouCgog ICBPbiB0ZXJtaW5hbHMgdGhhdCBkb27igJl0IHN1cHBvcnQgbW91c2UtdHJhY2tpbmcsIHlvdSBj YW4gZGlzcGxheSB0aGUKaGVscCB0ZXh0IGZvciBhY3RpdmUgYnVmZmVyIHRleHQgYXQgcG9pbnQg YnkgdHlwaW5nIOKAmEMtaCAu4oCZCijigJhkaXNwbGF5LWxvY2FsLWhlbHDigJkpLiAgVGhpcyBz aG93cyB0aGUgaGVscCB0ZXh0IGluIHRoZSBlY2hvIGFyZWEuICBUbwpkaXNwbGF5IGhlbHAgdGV4 dCBhdXRvbWF0aWNhbGx5IHdoZW5ldmVyIGl0IGlzIGF2YWlsYWJsZSBhdCBwb2ludCwgc2V0CnRo ZSB2YXJpYWJsZSDigJhoZWxwLWF0LXB0LWRpc3BsYXktd2hlbi1pZGxl4oCZIHRvIOKAmHTigJku CgoKKiAxMSBUaGUgTWFyayBhbmQgdGhlIFJlZ2lvbgoKTWFueSBFbWFjcyBjb21tYW5kcyBvcGVy YXRlIG9uIGFuIGFyYml0cmFyeSBjb250aWd1b3VzIHBhcnQgb2YgdGhlCmN1cnJlbnQgYnVmZmVy LiAgVG8gc3BlY2lmeSB0aGUgdGV4dCBmb3Igc3VjaCBhIGNvbW1hbmQgdG8gb3BlcmF0ZSBvbiwK eW91IHNldCAidGhlIG1hcmsiIGF0IG9uZSBlbmQgb2YgaXQsIGFuZCBtb3ZlIHBvaW50IHRvIHRo ZSBvdGhlciBlbmQuClRoZSB0ZXh0IGJldHdlZW4gcG9pbnQgYW5kIHRoZSBtYXJrIGlzIGNhbGxl ZCAidGhlIHJlZ2lvbiIuICBUaGUgcmVnaW9uCmFsd2F5cyBleHRlbmRzIGJldHdlZW4gcG9pbnQg YW5kIHRoZSBtYXJrLCBubyBtYXR0ZXIgd2hpY2ggb25lIGNvbWVzCmVhcmxpZXIgaW4gdGhlIHRl eHQ7IGVhY2ggdGltZSB5b3UgbW92ZSBwb2ludCwgdGhlIHJlZ2lvbiBjaGFuZ2VzLgoKICAgU2V0 dGluZyB0aGUgbWFyayBhdCBhIHBvc2l0aW9uIGluIHRoZSB0ZXh0IGFsc28gImFjdGl2YXRlcyIg aXQuICBXaGVuCnRoZSBtYXJrIGlzIGFjdGl2ZSwgd2Ugc2F5IGFsc28gdGhhdCB0aGUgcmVnaW9u IGlzIGFjdGl2ZTsgRW1hY3MKaW5kaWNhdGVzIGl0cyBleHRlbnQgYnkgaGlnaGxpZ2h0aW5nIHRo ZSB0ZXh0IHdpdGhpbiBpdCwgdXNpbmcgdGhlCuKAmHJlZ2lvbuKAmSBmYWNlICgqbm90ZSBGYWNl IEN1c3RvbWl6YXRpb246OikuCgogICBBZnRlciBjZXJ0YWluIG5vbi1tb3Rpb24gY29tbWFuZHMs IGluY2x1ZGluZyBhbnkgY29tbWFuZCB0aGF0IGNoYW5nZXMKdGhlIHRleHQgaW4gdGhlIGJ1ZmZl ciwgRW1hY3MgYXV0b21hdGljYWxseSAiZGVhY3RpdmF0ZXMiIHRoZSBtYXJrOyB0aGlzCnR1cm5z IG9mZiB0aGUgaGlnaGxpZ2h0aW5nLiAgWW91IGNhbiBhbHNvIGV4cGxpY2l0bHkgZGVhY3RpdmF0 ZSB0aGUgbWFyawphdCBhbnkgdGltZSwgYnkgdHlwaW5nIOKAmEMtZ+KAmSAoKm5vdGUgUXVpdHRp bmc6OikuCgogICBUaGUgYWJvdmUgZGVmYXVsdCBiZWhhdmlvciBpcyBrbm93biBhcyBUcmFuc2ll bnQgTWFyayBtb2RlLgpEaXNhYmxpbmcgVHJhbnNpZW50IE1hcmsgbW9kZSBzd2l0Y2hlcyBFbWFj cyB0byBhbiBhbHRlcm5hdGl2ZSBiZWhhdmlvciwKaW4gd2hpY2ggdGhlIHJlZ2lvbiBpcyB1c3Vh bGx5IG5vdCBoaWdobGlnaHRlZC4gICpOb3RlIERpc2FibGVkClRyYW5zaWVudCBNYXJrOjouCgog ICBTZXR0aW5nIHRoZSBtYXJrIGluIG9uZSBidWZmZXIgaGFzIG5vIGVmZmVjdCBvbiB0aGUgbWFy a3MgaW4gb3RoZXIKYnVmZmVycy4gIFdoZW4geW91IHJldHVybiB0byBhIGJ1ZmZlciB3aXRoIGFu IGFjdGl2ZSBtYXJrLCB0aGUgbWFyayBpcwphdCB0aGUgc2FtZSBwbGFjZSBhcyBiZWZvcmUuICBX aGVuIG11bHRpcGxlIHdpbmRvd3Mgc2hvdyB0aGUgc2FtZQpidWZmZXIsIHRoZXkgY2FuIGhhdmUg ZGlmZmVyZW50IHZhbHVlcyBvZiBwb2ludCwgYW5kIHRodXMgZGlmZmVyZW50CnJlZ2lvbnMsIGJ1 dCB0aGV5IGFsbCBzaGFyZSBvbmUgY29tbW9uIG1hcmsgcG9zaXRpb24uICAqTm90ZSBXaW5kb3dz OjouCk9yZGluYXJpbHksIG9ubHkgdGhlIHNlbGVjdGVkIHdpbmRvdyBoaWdobGlnaHRzIGl0cyBy ZWdpb247IGhvd2V2ZXIsIGlmCnRoZSB2YXJpYWJsZSDigJhoaWdobGlnaHQtbm9uc2VsZWN0ZWQt d2luZG93c+KAmSBpcyBub24t4oCYbmls4oCZLCBlYWNoIHdpbmRvdwpoaWdobGlnaHRzIGl0cyBv d24gcmVnaW9uLgoKICAgVGhlcmUgaXMgYW5vdGhlciBraW5kIG9mIHJlZ2lvbjogdGhlIHJlY3Rh bmd1bGFyIHJlZ2lvbi4gICpOb3RlClJlY3RhbmdsZXM6Oi4KCisgTWVudToKCiAgLSBTZXR0aW5n IE1hcms6OiAgICAgICAgICAgIENvbW1hbmRzIHRvIHNldCB0aGUgbWFyay4KICAtIE1hcmtpbmcg T2JqZWN0czo6ICAgICAgICAgQ29tbWFuZHMgdG8gcHV0IHJlZ2lvbiBhcm91bmQgdGV4dHVhbCB1 bml0cy4KICAtIFVzaW5nIFJlZ2lvbjo6ICAgICAgICAgICAgU3VtbWFyeSBvZiB3YXlzIHRvIG9w ZXJhdGUgb24gY29udGVudHMgb2YgdGhlIHJlZ2lvbi4KICAtIE1hcmsgUmluZzo6ICAgICAgICAg ICAgICAgUHJldmlvdXMgbWFyayBwb3NpdGlvbnMgc2F2ZWQgc28geW91IGNhbiBnbyBiYWNrIHRo ZXJlLgogIC0gR2xvYmFsIE1hcmsgUmluZzo6ICAgICAgICBQcmV2aW91cyBtYXJrIHBvc2l0aW9u cyBpbiB2YXJpb3VzIGJ1ZmZlcnMuCiAgLSBTaGlmdCBTZWxlY3Rpb246OiAgICAgICAgIFVzaW5n IHNoaWZ0ZWQgY3Vyc29yIG1vdGlvbiBrZXlzLgogIC0gRGlzYWJsZWQgVHJhbnNpZW50IE1hcms6 OiBMZWF2aW5nIHJlZ2lvbnMgdW5oaWdobGlnaHRlZCBieSBkZWZhdWx0LgoKCioqIDExLjEgU2V0 dGluZyB0aGUgTWFyawoKSGVyZSBhcmUgc29tZSBjb21tYW5kcyBmb3Igc2V0dGluZyB0aGUgbWFy azoKCuKAmEMtPFNQQz7igJkKICAgICBTZXQgdGhlIG1hcmsgYXQgcG9pbnQsIGFuZCBhY3RpdmF0 ZSBpdCAo4oCYc2V0LW1hcmstY29tbWFuZOKAmSkuCuKAmEMtQOKAmQogICAgIFRoZSBzYW1lLgri gJhDLXggQy144oCZCiAgICAgU2V0IHRoZSBtYXJrIGF0IHBvaW50LCBhbmQgYWN0aXZhdGUgaXQ7 IHRoZW4gbW92ZSBwb2ludCB3aGVyZSB0aGUKICAgICBtYXJrIHVzZWQgdG8gYmUgKOKAmGV4Y2hh bmdlLXBvaW50LWFuZC1tYXJr4oCZKS4K4oCYRHJhZy1tb3VzZS0x4oCZCiAgICAgU2V0IHBvaW50 IGFuZCB0aGUgbWFyayBhcm91bmQgdGhlIHRleHQgeW91IGRyYWcgYWNyb3NzLgrigJhtb3VzZS0z 4oCZCiAgICAgU2V0IHRoZSBtYXJrIGF0IHBvaW50LCB0aGVuIG1vdmUgcG9pbnQgdG8gd2hlcmUg eW91IGNsaWNrCiAgICAgKOKAmG1vdXNlLXNhdmUtdGhlbi1raWxs4oCZKS4K4oCY4oCYU2hpZnRl ZCBjdXJzb3IgbW90aW9uIGtleXPigJnigJkKICAgICBTZXQgdGhlIG1hcmsgYXQgcG9pbnQgaWYg dGhlIG1hcmsgaXMgaW5hY3RpdmUsIHRoZW4gbW92ZSBwb2ludC4KICAgICAqTm90ZSBTaGlmdCBT ZWxlY3Rpb246Oi4KCiAgIFRoZSBtb3N0IGNvbW1vbiB3YXkgdG8gc2V0IHRoZSBtYXJrIGlzIHdp dGgg4oCYQy08U1BDPuKAmQoo4oCYc2V0LW1hcmstY29tbWFuZOKAmSkoMSkuICBUaGlzIHNldHMg dGhlIG1hcmsgd2hlcmUgcG9pbnQgaXMsIGFuZAphY3RpdmF0ZXMgaXQuICBZb3UgY2FuIHRoZW4g bW92ZSBwb2ludCBhd2F5LCBsZWF2aW5nIHRoZSBtYXJrIGJlaGluZC4KCiAgIEZvciBleGFtcGxl LCBzdXBwb3NlIHlvdSB3aXNoIHRvIGNvbnZlcnQgcGFydCBvZiB0aGUgYnVmZmVyIHRvIHVwcGVy CmNhc2UuICBUbyBhY2NvbXBsaXNoIHRoaXMsIGdvIHRvIG9uZSBlbmQgb2YgdGhlIGRlc2lyZWQg dGV4dCwgdHlwZQrigJhDLTxTUEM+4oCZLCBhbmQgbW92ZSBwb2ludCB1bnRpbCB0aGUgZGVzaXJl ZCBwb3J0aW9uIG9mIHRleHQgaXMKaGlnaGxpZ2h0ZWQuICBOb3cgdHlwZSDigJhDLXggQy114oCZ ICjigJh1cGNhc2UtcmVnaW9u4oCZKS4gIFRoaXMgY29udmVydHMgdGhlCnRleHQgaW4gdGhlIHJl Z2lvbiB0byB1cHBlciBjYXNlLCBhbmQgdGhlbiBkZWFjdGl2YXRlcyB0aGUgbWFyay4KCiAgIFdo ZW5ldmVyIHRoZSBtYXJrIGlzIGFjdGl2ZSwgeW91IGNhbiBkZWFjdGl2YXRlIGl0IGJ5IHR5cGlu ZyDigJhDLWfigJkKKCpub3RlIFF1aXR0aW5nOjopLiAgTW9zdCBjb21tYW5kcyB0aGF0IG9wZXJh dGUgb24gdGhlIHJlZ2lvbiBhbHNvCmF1dG9tYXRpY2FsbHkgZGVhY3RpdmF0ZSB0aGUgbWFyaywg bGlrZSDigJhDLXggQy114oCZIGluIHRoZSBhYm92ZSBleGFtcGxlLgoKICAgSW5zdGVhZCBvZiBz ZXR0aW5nIHRoZSBtYXJrIGluIG9yZGVyIHRvIG9wZXJhdGUgb24gYSByZWdpb24sIHlvdSBjYW4K YWxzbyB1c2UgaXQgdG8gcmVtZW1iZXIgYSBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyIChieSB0eXBp bmcg4oCYQy08U1BDPgpDLTxTUEM+4oCZKSwgYW5kIGxhdGVyIGp1bXAgYmFjayB0aGVyZSAoYnkg dHlwaW5nIOKAmEMtdSBDLTxTUEM+4oCZKS4gICpOb3RlCk1hcmsgUmluZzo6LCBmb3IgZGV0YWls cy4KCiAgIFRoZSBjb21tYW5kIOKAmEMteCBDLXjigJkgKOKAmGV4Y2hhbmdlLXBvaW50LWFuZC1t YXJr4oCZKSBleGNoYW5nZXMgdGhlCnBvc2l0aW9ucyBvZiBwb2ludCBhbmQgdGhlIG1hcmsuICDi gJhDLXggQy144oCZIGlzIHVzZWZ1bCB3aGVuIHlvdSBhcmUKc2F0aXNmaWVkIHdpdGggdGhlIHBv c2l0aW9uIG9mIHBvaW50IGJ1dCB3YW50IHRvIG1vdmUgdGhlIG90aGVyIGVuZCBvZgp0aGUgcmVn aW9uICh3aGVyZSB0aGUgbWFyayBpcykuICBVc2luZyDigJhDLXggQy144oCZIGEgc2Vjb25kIHRp bWUsIGlmCm5lY2Vzc2FyeSwgcHV0cyB0aGUgbWFyayBhdCB0aGUgbmV3IHBvc2l0aW9uIHdpdGgg cG9pbnQgYmFjayBhdCBpdHMKb3JpZ2luYWwgcG9zaXRpb24uICBOb3JtYWxseSwgaWYgdGhlIG1h cmsgaXMgaW5hY3RpdmUsIHRoaXMgY29tbWFuZApmaXJzdCByZWFjdGl2YXRlcyB0aGUgbWFyayB3 aGVyZXZlciBpdCB3YXMgbGFzdCBzZXQsIHRvIGVuc3VyZSB0aGF0IHRoZQpyZWdpb24gaXMgbGVm dCBoaWdobGlnaHRlZC4gIEhvd2V2ZXIsIGlmIHlvdSBjYWxsIGl0IHdpdGggYSBwcmVmaXgKYXJn dW1lbnQsIGl0IGxlYXZlcyB0aGUgbWFyayBpbmFjdGl2ZSBhbmQgdGhlIHJlZ2lvbiB1bmhpZ2hs aWdodGVkOyB5b3UKY2FuIHVzZSB0aGlzIHRvIGp1bXAgdG8gdGhlIG1hcmsgaW4gYSBtYW5uZXIg c2ltaWxhciB0byDigJhDLXUgQy08U1BDPuKAmS4KCiAgIFlvdSBjYW4gYWxzbyBzZXQgdGhlIG1h cmsgd2l0aCB0aGUgbW91c2UuICBJZiB5b3UgcHJlc3MgdGhlIGxlZnQKbW91c2UgYnV0dG9uICji gJhkb3duLW1vdXNlLTHigJkpIGFuZCBkcmFnIHRoZSBtb3VzZSBhY3Jvc3MgYSByYW5nZSBvZiB0 ZXh0LAp0aGlzIHNldHMgdGhlIG1hcmsgd2hlcmUgeW91IGZpcnN0IHByZXNzZWQgdGhlIG1vdXNl IGJ1dHRvbiBhbmQgcHV0cwpwb2ludCB3aGVyZSB5b3UgcmVsZWFzZSBpdC4gIEFsdGVybmF0aXZl bHksIGNsaWNraW5nIHRoZSByaWdodCBtb3VzZQpidXR0b24gKOKAmG1vdXNlLTPigJkpIHNldHMg dGhlIG1hcmsgYXQgcG9pbnQgYW5kIHRoZW4gbW92ZXMgcG9pbnQgdG8gd2hlcmUKeW91IGNsaWNr ZWQuICAqTm90ZSBNb3VzZSBDb21tYW5kczo6LCBmb3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0 aW9uIG9mCnRoZXNlIG1vdXNlIGNvbW1hbmRzLgoKICAgRmluYWxseSwgeW91IGNhbiBzZXQgdGhl IG1hcmsgYnkgaG9sZGluZyBkb3duIHRoZSBzaGlmdCBrZXkgd2hpbGUKdHlwaW5nIGNlcnRhaW4g Y3Vyc29yIG1vdGlvbiBjb21tYW5kcyAoc3VjaCBhcyDigJhTLTxSSUdIVD7igJksIOKAmFMtQy1m 4oCZLArigJhTLUMtbuKAmSwgZXRjLikuICBUaGlzIGlzIGNhbGxlZCAic2hpZnQtc2VsZWN0aW9u Ii4gIEl0IHNldHMgdGhlIG1hcmsgYXQKcG9pbnQgYmVmb3JlIG1vdmluZyBwb2ludCwgYnV0IG9u bHkgaWYgdGhlcmUgaXMgbm8gYWN0aXZlIG1hcmsgc2V0IHZpYSBhCnByZXZpb3VzIHNoaWZ0LXNl bGVjdGlvbiBvciBtb3VzZSBjb21tYW5kcy4gIFRoZSBtYXJrIHNldCBieSBtb3VzZQpjb21tYW5k cyBhbmQgYnkgc2hpZnQtc2VsZWN0aW9uIGJlaGF2ZXMgc2xpZ2h0bHkgZGlmZmVyZW50bHkgZnJv bSB0aGUKdXN1YWwgbWFyazogYW55IHN1YnNlcXVlbnQgdW5zaGlmdGVkIGN1cnNvciBtb3Rpb24g Y29tbWFuZCBkZWFjdGl2YXRlcwppdCBhdXRvbWF0aWNhbGx5LiAgRm9yIGRldGFpbHMsIHNlZSAq bm90ZSBTaGlmdCBTZWxlY3Rpb246Oi4KCiAgIE1hbnkgY29tbWFuZHMgdGhhdCBpbnNlcnQgdGV4 dCwgc3VjaCBhcyDigJhDLXnigJkgKOKAmHlhbmvigJkpLCBzZXQgdGhlIG1hcmsKYXQgdGhlIG90 aGVyIGVuZCBvZiB0aGUgaW5zZXJ0ZWQgdGV4dCwgd2l0aG91dCBhY3RpdmF0aW5nIGl0LiAgVGhp cyBsZXRzCnlvdSBlYXNpbHkgcmV0dXJuIHRvIHRoYXQgcG9zaXRpb24gKCpub3RlIE1hcmsgUmlu Zzo6KS4gIFlvdSBjYW4gdGVsbAp0aGF0IGEgY29tbWFuZCBkb2VzIHRoaXMgd2hlbiBpdCBzaG93 cyDigJhNYXJrIHNldOKAmSBpbiB0aGUgZWNobyBhcmVhLgoKICAgVW5kZXIgWCwgZXZlcnkgdGlt ZSB0aGUgYWN0aXZlIHJlZ2lvbiBjaGFuZ2VzLCBFbWFjcyBzYXZlcyB0aGUgdGV4dAppbiB0aGUg cmVnaW9uIHRvIHRoZSAicHJpbWFyeSBzZWxlY3Rpb24iLiAgVGhpcyBsZXRzIHlvdSBpbnNlcnQg dGhhdAp0ZXh0IGludG8gb3RoZXIgWCBhcHBsaWNhdGlvbnMgd2l0aCDigJhtb3VzZS0y4oCZIGNs aWNrcy4gICpOb3RlIFByaW1hcnkKU2VsZWN0aW9uOjouCgogICAtLS0tLS0tLS0tIEZvb3Rub3Rl cyAtLS0tLS0tLS0tCgogICAoMSkgVGhlcmUgaXMgbm8g4oCYQy08U1BDPuKAmSBjaGFyYWN0ZXIg aW4gQVNDSUk7IHVzdWFsbHksIHR5cGluZwrigJhDLTxTUEM+4oCZIG9uIGEgdGV4dCB0ZXJtaW5h bCBnaXZlcyB0aGUgY2hhcmFjdGVyIOKAmEMtQOKAmS4gIFRoaXMga2V5IGlzCmFsc28gYm91bmQg dG8g4oCYc2V0LW1hcmstY29tbWFuZOKAmSwgc28gdW5sZXNzIHlvdSBhcmUgdW5sdWNreSBlbm91 Z2ggdG8KaGF2ZSBhIHRleHQgdGVybWluYWwgdGhhdCBiZWhhdmVzIGRpZmZlcmVudGx5LCB5b3Ug bWlnaHQgYXMgd2VsbCB0aGluawpvZiDigJhDLUDigJkgYXMg4oCYQy08U1BDPuKAmS4KCgoqKiAx MS4yIENvbW1hbmRzIHRvIE1hcmsgVGV4dHVhbCBPYmplY3RzCgpIZXJlIGFyZSBjb21tYW5kcyBm b3IgcGxhY2luZyBwb2ludCBhbmQgdGhlIG1hcmsgYXJvdW5kIGEgdGV4dHVhbCBvYmplY3QKc3Vj aCBhcyBhIHdvcmQsIGxpc3QsIHBhcmFncmFwaCBvciBwYWdlOgoK4oCYTS1A4oCZCiAgICAgU2V0 IG1hcmsgYXQgdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkICjigJhtYXJrLXdvcmTigJkpLiAgVGhp cyBkb2VzIG5vdAogICAgIG1vdmUgcG9pbnQuCuKAmEMtTS1A4oCZCiAgICAgU2V0IG1hcmsgYWZ0 ZXIgZW5kIG9mIGZvbGxvd2luZyBiYWxhbmNlZCBleHByZXNzaW9uICjigJhtYXJrLXNleHDigJkp LgogICAgIFRoaXMgZG9lcyBub3QgbW92ZSBwb2ludC4K4oCYTS1o4oCZCiAgICAgTW92ZSBwb2lu dCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IHBhcmFncmFwaCwgYW5kIHNldCBtYXJr CiAgICAgYXQgdGhlIGVuZCAo4oCYbWFyay1wYXJhZ3JhcGjigJkpLgrigJhDLU0taOKAmQogICAg IE1vdmUgcG9pbnQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBkZWZ1biwgYW5kIHNl dCBtYXJrIGF0CiAgICAgdGhlIGVuZCAo4oCYbWFyay1kZWZ1buKAmSkuCuKAmEMteCBDLXDigJkK ICAgICBNb3ZlIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgcGFnZSwgYW5k IHNldCBtYXJrIGF0CiAgICAgdGhlIGVuZCAo4oCYbWFyay1wYWdl4oCZKS4K4oCYQy14IGjigJkK ICAgICBNb3ZlIHBvaW50IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJ1ZmZlciwgYW5kIHNldCBt YXJrIGF0IHRoZSBlbmQKICAgICAo4oCYbWFyay13aG9sZS1idWZmZXLigJkpLgoKICAg4oCYTS1A 4oCZICjigJhtYXJrLXdvcmTigJkpIHNldHMgdGhlIG1hcmsgYXQgdGhlIGVuZCBvZiB0aGUgbmV4 dCB3b3JkICgqbm90ZQpXb3Jkczo6LCBmb3IgaW5mb3JtYXRpb24gYWJvdXQgd29yZHMpLiAgUmVw ZWF0ZWQgaW52b2NhdGlvbnMgb2YgdGhpcwpjb21tYW5kIGV4dGVuZCB0aGUgcmVnaW9uIGJ5IGFk dmFuY2luZyB0aGUgbWFyayBvbmUgd29yZCBhdCBhIHRpbWUuICBBcwphbiBleGNlcHRpb24sIGlm IHRoZSBtYXJrIGlzIGFjdGl2ZSBhbmQgbG9jYXRlZCBiZWZvcmUgcG9pbnQsIOKAmE0tQOKAmQpt b3ZlcyB0aGUgbWFyayBiYWNrd2FyZHMgZnJvbSBpdHMgY3VycmVudCBwb3NpdGlvbiBvbmUgd29y ZCBhdCBhIHRpbWUuCgogICBUaGlzIGNvbW1hbmQgYWxzbyBhY2NlcHRzIGEgbnVtZXJpYyBhcmd1 bWVudCBOLCB3aGljaCB0ZWxscyBpdCB0bwphZHZhbmNlIHRoZSBtYXJrIGJ5IE4gd29yZHMuICBB IG5lZ2F0aXZlIGFyZ3VtZW50IG1vdmVzIHRoZSBtYXJrIGJhY2sgYnkKTiB3b3Jkcy4KCiAgIFNp bWlsYXJseSwg4oCYQy1NLUDigJkgKOKAmG1hcmstc2V4cOKAmSkgcHV0cyB0aGUgbWFyayBhdCB0 aGUgZW5kIG9mIHRoZSBuZXh0CmJhbGFuY2VkIGV4cHJlc3Npb24gKCpub3RlIEV4cHJlc3Npb25z OjopLiAgUmVwZWF0ZWQgaW52b2NhdGlvbnMgZXh0ZW5kCnRoZSByZWdpb24gdG8gc3Vic2VxdWVu dCBleHByZXNzaW9ucywgd2hpbGUgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtZXJpYwphcmd1bWVu dHMgbW92ZSB0aGUgbWFyayBmb3J3YXJkIG9yIGJhY2t3YXJkIGJ5IHRoZSBzcGVjaWZpZWQgbnVt YmVyIG9mCmV4cHJlc3Npb25zLgoKICAgVGhlIG90aGVyIGNvbW1hbmRzIGluIHRoZSBhYm92ZSBs aXN0IHNldCBib3RoIHBvaW50IGFuZCBtYXJrLCBzbyBhcwp0byBkZWxpbWl0IGFuIG9iamVjdCBp biB0aGUgYnVmZmVyLiAg4oCYTS1o4oCZICjigJhtYXJrLXBhcmFncmFwaOKAmSkgbWFya3MKcGFy YWdyYXBocyAoKm5vdGUgUGFyYWdyYXBoczo6KSwg4oCYQy1NLWjigJkgKOKAmG1hcmstZGVmdW7i gJkpIG1hcmtzIHRvcC1sZXZlbApkZWZpbml0aW9ucyAoKm5vdGUgTW92aW5nIGJ5IERlZnVuczo6 KSwgYW5kIOKAmEMteCBDLXDigJkgKOKAmG1hcmstcGFnZeKAmSkKbWFya3MgcGFnZXMgKCpub3Rl IFBhZ2VzOjopLiAgUmVwZWF0ZWQgaW52b2NhdGlvbnMgYWdhaW4gcGxheSB0aGUgc2FtZQpyb2xl LCBleHRlbmRpbmcgdGhlIHJlZ2lvbiB0byBjb25zZWN1dGl2ZSBvYmplY3RzOyBzaW1pbGFybHks IG51bWVyaWMKYXJndW1lbnRzIHNwZWNpZnkgaG93IG1hbnkgb2JqZWN0cyB0byBtb3ZlIHRoZSBt YXJrIGJ5LgoKICAg4oCYQy14IGjigJkgKOKAmG1hcmstd2hvbGUtYnVmZmVy4oCZKSBzZXRzIHVw IHRoZSBlbnRpcmUgYnVmZmVyIGFzIHRoZQpyZWdpb24sIGJ5IHB1dHRpbmcgcG9pbnQgYXQgdGhl IGJlZ2lubmluZyBhbmQgdGhlIG1hcmsgYXQgdGhlIGVuZC4KCgoqKiAxMS4zIE9wZXJhdGluZyBv biB0aGUgUmVnaW9uCgpPbmNlIHlvdSBoYXZlIGEgcmVnaW9uLCBoZXJlIGFyZSBzb21lIG9mIHRo ZSB3YXlzIHlvdSBjYW4gb3BlcmF0ZSBvbiBpdDoKCiAgIOKAoiBLaWxsIGl0IHdpdGgg4oCYQy13 4oCZICgqbm90ZSBLaWxsaW5nOjopLgogICDigKIgQ29weSBpdCB0byB0aGUga2lsbCByaW5nIHdp dGgg4oCYTS134oCZICgqbm90ZSBZYW5raW5nOjopLgogICDigKIgQ29udmVydCBjYXNlIHdpdGgg 4oCYQy14IEMtbOKAmSBvciDigJhDLXggQy114oCZICgqbm90ZSBDYXNlOjopLgogICDigKIgVW5k byBjaGFuZ2VzIHdpdGhpbiBpdCB1c2luZyDigJhDLXUgQy0v4oCZICgqbm90ZSBVbmRvOjopLgog ICDigKIgUmVwbGFjZSB0ZXh0IHdpdGhpbiBpdCB1c2luZyDigJhNLSXigJkgKCpub3RlIFF1ZXJ5 IFJlcGxhY2U6OikuCiAgIOKAoiBJbmRlbnQgaXQgd2l0aCDigJhDLXggPFRBQj7igJkgb3Ig4oCY Qy1NLVzigJkgKCpub3RlIEluZGVudGF0aW9uOjopLgogICDigKIgRmlsbCBpdCBhcyB0ZXh0IHdp dGgg4oCYTS14IGZpbGwtcmVnaW9u4oCZICgqbm90ZSBGaWxsaW5nOjopLgogICDigKIgQ2hlY2sg dGhlIHNwZWxsaW5nIG9mIHdvcmRzIHdpdGhpbiBpdCB3aXRoIOKAmE0tJOKAmSAoKm5vdGUKICAg ICBTcGVsbGluZzo6KS4KICAg4oCiIEV2YWx1YXRlIGl0IGFzIExpc3AgY29kZSB3aXRoIOKAmE0t eCBldmFsLXJlZ2lvbuKAmSAoKm5vdGUgTGlzcAogICAgIEV2YWw6OikuCiAgIOKAoiBTYXZlIGl0 IGluIGEgcmVnaXN0ZXIgd2l0aCDigJhDLXggciBz4oCZICgqbm90ZSBSZWdpc3RlcnM6OikuCiAg IOKAoiBTYXZlIGl0IGluIGEgYnVmZmVyIG9yIGEgZmlsZSAoKm5vdGUgQWNjdW11bGF0aW5nIFRl eHQ6OikuCgogICBTb21lIGNvbW1hbmRzIGhhdmUgYSBkZWZhdWx0IGJlaGF2aW9yIHdoZW4gdGhl IG1hcmsgaXMgaW5hY3RpdmUsIGJ1dApvcGVyYXRlIG9uIHRoZSByZWdpb24gaWYgdGhlIG1hcmsg aXMgYWN0aXZlLiAgRm9yIGV4YW1wbGUsIOKAmE0tJOKAmQoo4oCYaXNwZWxsLXdvcmTigJkpIG5v cm1hbGx5IGNoZWNrcyB0aGUgc3BlbGxpbmcgb2YgdGhlIHdvcmQgYXQgcG9pbnQsIGJ1dAppdCBj aGVja3MgdGhlIHRleHQgaW4gdGhlIHJlZ2lvbiBpZiB0aGUgbWFyayBpcyBhY3RpdmUgKCpub3Rl ClNwZWxsaW5nOjopLiAgTm9ybWFsbHksIHN1Y2ggY29tbWFuZHMgdXNlIHRoZWlyIGRlZmF1bHQg YmVoYXZpb3IgaWYgdGhlCnJlZ2lvbiBpcyBlbXB0eSAoaS5lLiwgaWYgbWFyayBhbmQgcG9pbnQg YXJlIGF0IHRoZSBzYW1lIHBvc2l0aW9uKS4gIElmCnlvdSB3YW50IHRoZW0gdG8gb3BlcmF0ZSBv biB0aGUgZW1wdHkgcmVnaW9uLCBjaGFuZ2UgdGhlIHZhcmlhYmxlCuKAmHVzZS1lbXB0eS1hY3Rp dmUtcmVnaW9u4oCZIHRvIOKAmHTigJkuCgogICBBcyBkZXNjcmliZWQgaW4gKm5vdGUgRXJhc2lu Zzo6LCB0aGUgPERFTD4gKOKAmGJhY2t3YXJkLWRlbGV0ZS1jaGFy4oCZKQphbmQgPERlbGV0ZT4g KOKAmGRlbGV0ZS1mb3J3YXJkLWNoYXLigJkpIGNvbW1hbmRzIGFsc28gYWN0IHRoaXMgd2F5LiAg SWYgdGhlCm1hcmsgaXMgYWN0aXZlLCB0aGV5IGRlbGV0ZSB0aGUgdGV4dCBpbiB0aGUgcmVnaW9u LiAgKEFzIGFuIGV4Y2VwdGlvbiwKaWYgeW91IHN1cHBseSBhIG51bWVyaWMgYXJndW1lbnQgTiwg d2hlcmUgTiBpcyBub3Qgb25lLCB0aGVzZSBjb21tYW5kcwpkZWxldGUgTiBjaGFyYWN0ZXJzIHJl Z2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgbWFyayBpcyBhY3RpdmUpLiAgSWYgeW91CmNoYW5nZSB0 aGUgdmFyaWFibGUg4oCYZGVsZXRlLWFjdGl2ZS1yZWdpb27igJkgdG8g4oCYbmls4oCZLCB0aGVu IHRoZXNlIGNvbW1hbmRzCmRvbuKAmXQgYWN0IGRpZmZlcmVudGx5IHdoZW4gdGhlIG1hcmsgaXMg YWN0aXZlLiAgSWYgeW91IGNoYW5nZSB0aGUgdmFsdWUKdG8g4oCYa2lsbOKAmSwgdGhlc2UgY29t bWFuZHMgImtpbGwiIHRoZSByZWdpb24gaW5zdGVhZCBvZiBkZWxldGluZyBpdAooKm5vdGUgS2ls bGluZzo6KS4KCiAgIE90aGVyIGNvbW1hbmRzIGFsd2F5cyBvcGVyYXRlIG9uIHRoZSByZWdpb24s IGFuZCBoYXZlIG5vIGRlZmF1bHQKYmVoYXZpb3IuICBTdWNoIGNvbW1hbmRzIHVzdWFsbHkgaGF2 ZSB0aGUgd29yZCDigJhyZWdpb27igJkgaW4gdGhlaXIgbmFtZXMsCmxpa2Ug4oCYQy134oCZICji gJhraWxsLXJlZ2lvbuKAmSkgYW5kIOKAmEMteCBDLXXigJkgKOKAmHVwY2FzZS1yZWdpb27igJkp LiAgSWYgdGhlIG1hcmsKaXMgaW5hY3RpdmUsIHRoZXkgb3BlcmF0ZSBvbiB0aGUgImluYWN0aXZl IHJlZ2lvbiLigJR0aGF0IGlzLCBvbiB0aGUgdGV4dApiZXR3ZWVuIHBvaW50IGFuZCB0aGUgcG9z aXRpb24gYXQgd2hpY2ggdGhlIG1hcmsgd2FzIGxhc3Qgc2V0ICgqbm90ZQpNYXJrIFJpbmc6Oiku ICBUbyBkaXNhYmxlIHRoaXMgYmVoYXZpb3IsIGNoYW5nZSB0aGUgdmFyaWFibGUK4oCYbWFyay1l dmVuLWlmLWluYWN0aXZl4oCZIHRvIOKAmG5pbOKAmS4gIFRoZW4gdGhlc2UgY29tbWFuZHMgd2ls bCBpbnN0ZWFkCnNpZ25hbCBhbiBlcnJvciBpZiB0aGUgbWFyayBpcyBpbmFjdGl2ZS4KCiAgIEJ5 IGRlZmF1bHQsIHRleHQgaW5zZXJ0aW9uIG9jY3VycyBub3JtYWxseSBldmVuIGlmIHRoZSBtYXJr IGlzCmFjdGl2ZeKAlGZvciBleGFtcGxlLCB0eXBpbmcg4oCYYeKAmSBpbnNlcnRzIHRoZSBjaGFy YWN0ZXIg4oCYYeKAmSwgdGhlbgpkZWFjdGl2YXRlcyB0aGUgbWFyay4gIERlbGV0ZSBTZWxlY3Rp b24gbW9kZSwgYSBtaW5vciBtb2RlLCBtb2RpZmllcwp0aGlzIGJlaGF2aW9yOiBpZiB5b3UgZW5h YmxlIHRoYXQgbW9kZSwgdGhlbiBpbnNlcnRpbmcgdGV4dCB3aGlsZSB0aGUKbWFyayBpcyBhY3Rp dmUgY2F1c2VzIHRoZSB0ZXh0IGluIHRoZSByZWdpb24gdG8gYmUgZGVsZXRlZCBmaXJzdC4gIFRv CnRvZ2dsZSBEZWxldGUgU2VsZWN0aW9uIG1vZGUgb24gb3Igb2ZmLCB0eXBlIOKAmE0teApkZWxl dGUtc2VsZWN0aW9uLW1vZGXigJkuCgoKKiogMTEuNCBUaGUgTWFyayBSaW5nCgpFYWNoIGJ1ZmZl ciByZW1lbWJlcnMgcHJldmlvdXMgbG9jYXRpb25zIG9mIHRoZSBtYXJrLCBpbiB0aGUgIm1hcmsK cmluZyIuICBDb21tYW5kcyB0aGF0IHNldCB0aGUgbWFyayBhbHNvIHB1c2ggdGhlIG9sZCBtYXJr IG9udG8gdGhpcwpyaW5nLiAgT25lIG9mIHRoZSB1c2VzIG9mIHRoZSBtYXJrIHJpbmcgaXMgdG8g cmVtZW1iZXIgc3BvdHMgdGhhdCB5b3UKbWF5IHdhbnQgdG8gZ28gYmFjayB0by4KCuKAmEMtPFNQ Qz4gQy08U1BDPuKAmQogICAgIFNldCB0aGUgbWFyaywgcHVzaGluZyBpdCBvbnRvIHRoZSBtYXJr IHJpbmcsIHdpdGhvdXQgYWN0aXZhdGluZyBpdC4K4oCYQy11IEMtPFNQQz7igJkKICAgICBNb3Zl IHBvaW50IHRvIHdoZXJlIHRoZSBtYXJrIHdhcywgYW5kIHJlc3RvcmUgdGhlIG1hcmsgZnJvbSB0 aGUKICAgICByaW5nIG9mIGZvcm1lciBtYXJrcy4KCiAgIFRoZSBjb21tYW5kIOKAmEMtPFNQQz4g Qy08U1BDPuKAmSBpcyBoYW5keSB3aGVuIHlvdSB3YW50IHRvIHVzZSB0aGUgbWFyawp0byByZW1l bWJlciBhIHBvc2l0aW9uIHRvIHdoaWNoIHlvdSBtYXkgd2lzaCB0byByZXR1cm4uICBJdCBwdXNo ZXMgdGhlCmN1cnJlbnQgcG9pbnQgb250byB0aGUgbWFyayByaW5nLCB3aXRob3V0IGFjdGl2YXRp bmcgdGhlIG1hcmsgKHdoaWNoCndvdWxkIGNhdXNlIEVtYWNzIHRvIGhpZ2hsaWdodCB0aGUgcmVn aW9uKS4gIFRoaXMgaXMgYWN0dWFsbHkgdHdvCmNvbnNlY3V0aXZlIGludm9jYXRpb25zIG9mIOKA mEMtPFNQQz7igJkgKOKAmHNldC1tYXJrLWNvbW1hbmTigJkpOyB0aGUgZmlyc3QK4oCYQy08U1BD PuKAmSBzZXRzIHRoZSBtYXJrLCBhbmQgdGhlIHNlY29uZCDigJhDLTxTUEM+4oCZIGRlYWN0aXZh dGVzIGl0LiAgKFdoZW4KVHJhbnNpZW50IE1hcmsgbW9kZSBpcyBvZmYsIOKAmEMtPFNQQz4gQy08 U1BDPuKAmSBpbnN0ZWFkIGFjdGl2YXRlcwpUcmFuc2llbnQgTWFyayBtb2RlIHRlbXBvcmFyaWx5 OyAqbm90ZSBEaXNhYmxlZCBUcmFuc2llbnQgTWFyazo6LikKCiAgIFRvIHJldHVybiB0byBhIG1h cmtlZCBwb3NpdGlvbiwgdXNlIOKAmHNldC1tYXJrLWNvbW1hbmTigJkgd2l0aCBhIHByZWZpeAph cmd1bWVudDog4oCYQy11IEMtPFNQQz7igJkuICBUaGlzIG1vdmVzIHBvaW50IHRvIHdoZXJlIHRo ZSBtYXJrIHdhcywgYW5kCmRlYWN0aXZhdGVzIHRoZSBtYXJrIGlmIGl0IHdhcyBhY3RpdmUuICBF YWNoIHN1YnNlcXVlbnQg4oCYQy11IEMtPFNQQz7igJkKanVtcHMgdG8gYSBwcmlvciBwb3NpdGlv biBzdG9yZWQgaW4gdGhlIG1hcmsgcmluZy4gIFRoZSBwb3NpdGlvbnMgeW91Cm1vdmUgdGhyb3Vn aCBpbiB0aGlzIHdheSBhcmUgbm90IGxvc3Q7IHRoZXkgZ28gdG8gdGhlIGVuZCBvZiB0aGUgcmlu Zy4KCiAgIElmIHlvdSBzZXQg4oCYc2V0LW1hcmstY29tbWFuZC1yZXBlYXQtcG9w4oCZIHRvIG5v bi3igJhuaWzigJksIHRoZW4KaW1tZWRpYXRlbHkgYWZ0ZXIgeW91IHR5cGUg4oCYQy11IEMtPFNQ Qz7igJksIHlvdSBjYW4gdHlwZSDigJhDLTxTUEM+4oCZIGluc3RlYWQKb2Yg4oCYQy11IEMtPFNQ Qz7igJkgdG8gY3ljbGUgdGhyb3VnaCB0aGUgbWFyayByaW5nLiAgQnkgZGVmYXVsdCwK4oCYc2V0 LW1hcmstY29tbWFuZC1yZXBlYXQtcG9w4oCZIGlzIOKAmG5pbOKAmS4KCiAgIEVhY2ggYnVmZmVy IGhhcyBpdHMgb3duIG1hcmsgcmluZy4gIEFsbCBlZGl0aW5nIGNvbW1hbmRzIHVzZSB0aGUKY3Vy cmVudCBidWZmZXLigJlzIG1hcmsgcmluZy4gIEluIHBhcnRpY3VsYXIsIOKAmEMtdSBDLTxTUEM+ 4oCZIGFsd2F5cyBzdGF5cwppbiB0aGUgc2FtZSBidWZmZXIuCgogICBUaGUgdmFyaWFibGUg4oCY bWFyay1yaW5nLW1heOKAmSBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMK dG8ga2VlcCBpbiB0aGUgbWFyayByaW5nLiAgVGhpcyBkZWZhdWx0cyB0byAxNiBlbnRyaWVzLiAg SWYgdGhhdCBtYW55CmVudHJpZXMgZXhpc3QgYW5kIGFub3RoZXIgb25lIGlzIHB1c2hlZCwgdGhl IGVhcmxpZXN0IG9uZSBpbiB0aGUgbGlzdCBpcwpkaXNjYXJkZWQuICBSZXBlYXRpbmcg4oCYQy11 IEMtPFNQQz7igJkgY3ljbGVzIHRocm91Z2ggdGhlIHBvc2l0aW9ucwpjdXJyZW50bHkgaW4gdGhl IHJpbmcuCgogICBJZiB5b3Ugd2FudCB0byBtb3ZlIGJhY2sgdG8gdGhlIHNhbWUgcGxhY2Ugb3Zl ciBhbmQgb3ZlciwgdGhlIG1hcmsKcmluZyBtYXkgbm90IGJlIGNvbnZlbmllbnQgZW5vdWdoLiAg SWYgc28sIHlvdSBjYW4gcmVjb3JkIHRoZSBwb3NpdGlvbgppbiBhIHJlZ2lzdGVyIGZvciBsYXRl ciByZXRyaWV2YWwgKCpub3RlIFNhdmluZyBQb3NpdGlvbnMgaW4gUmVnaXN0ZXJzOgpQb3NpdGlv biBSZWdpc3RlcnMuKS4KCgoqKiAxMS41IFRoZSBHbG9iYWwgTWFyayBSaW5nCgpJbiBhZGRpdGlv biB0byB0aGUgb3JkaW5hcnkgbWFyayByaW5nIHRoYXQgYmVsb25ncyB0byBlYWNoIGJ1ZmZlciwg RW1hY3MKaGFzIGEgc2luZ2xlICJnbG9iYWwgbWFyayByaW5nIi4gIEVhY2ggdGltZSB5b3Ugc2V0 IGEgbWFyaywgdGhpcyBpcwpyZWNvcmRlZCBpbiB0aGUgZ2xvYmFsIG1hcmsgcmluZyBpbiBhZGRp dGlvbiB0byB0aGUgY3VycmVudCBidWZmZXLigJlzIG93bgptYXJrIHJpbmcsIGlmIHlvdSBoYXZl IHN3aXRjaGVkIGJ1ZmZlcnMgc2luY2UgdGhlIHByZXZpb3VzIG1hcmsgc2V0dGluZy4KSGVuY2Us IHRoZSBnbG9iYWwgbWFyayByaW5nIHJlY29yZHMgYSBzZXF1ZW5jZSBvZiBidWZmZXJzIHRoYXQg eW91IGhhdmUKYmVlbiBpbiwgYW5kLCBmb3IgZWFjaCBidWZmZXIsIGEgcGxhY2Ugd2hlcmUgeW91 IHNldCB0aGUgbWFyay4gIFRoZQpsZW5ndGggb2YgdGhlIGdsb2JhbCBtYXJrIHJpbmcgaXMgY29u dHJvbGxlZCBieSDigJhnbG9iYWwtbWFyay1yaW5nLW1heOKAmSwKYW5kIGlzIDE2IGJ5IGRlZmF1 bHQuCgogICBUaGUgY29tbWFuZCDigJhDLXggQy08U1BDPuKAmSAo4oCYcG9wLWdsb2JhbC1tYXJr 4oCZKSBqdW1wcyB0byB0aGUgYnVmZmVyIGFuZApwb3NpdGlvbiBvZiB0aGUgbGF0ZXN0IGVudHJ5 IGluIHRoZSBnbG9iYWwgcmluZy4gIEl0IGFsc28gcm90YXRlcyB0aGUKcmluZywgc28gdGhhdCBz dWNjZXNzaXZlIHVzZXMgb2Yg4oCYQy14IEMtPFNQQz7igJkgdGFrZSB5b3UgdG8gZWFybGllcgpi dWZmZXJzIGFuZCBtYXJrIHBvc2l0aW9ucy4KCgoqKiAxMS42IFNoaWZ0IFNlbGVjdGlvbgoKSWYg eW91IGhvbGQgZG93biB0aGUgc2hpZnQga2V5IHdoaWxlIHR5cGluZyBhIGN1cnNvciBtb3Rpb24g Y29tbWFuZCwKdGhpcyBzZXRzIHRoZSBtYXJrIGJlZm9yZSBtb3ZpbmcgcG9pbnQsIHNvIHRoYXQg dGhlIHJlZ2lvbiBleHRlbmRzIGZyb20KdGhlIG9yaWdpbmFsIHBvc2l0aW9uIG9mIHBvaW50IHRv IGl0cyBuZXcgcG9zaXRpb24uICBUaGlzIGZlYXR1cmUgaXMKcmVmZXJyZWQgdG8gYXMgInNoaWZ0 LXNlbGVjdGlvbiIuICBJdCBpcyBzaW1pbGFyIHRvIHRoZSB3YXkgdGV4dCBpcwpzZWxlY3RlZCBp biBvdGhlciBlZGl0b3JzLgoKICAgVGhlIG1hcmsgc2V0IHZpYSBzaGlmdC1zZWxlY3Rpb24gYmVo YXZlcyBhIGxpdHRsZSBkaWZmZXJlbnRseSBmcm9tCndoYXQgd2UgaGF2ZSBkZXNjcmliZWQgYWJv dmUuICBGaXJzdGx5LCBpbiBhZGRpdGlvbiB0byB0aGUgdXN1YWwgd2F5cyBvZgpkZWFjdGl2YXRp bmcgdGhlIG1hcmsgKHN1Y2ggYXMgY2hhbmdpbmcgdGhlIGJ1ZmZlciB0ZXh0IG9yIHR5cGluZwri gJhDLWfigJkpLCB0aGUgbWFyayBpcyBkZWFjdGl2YXRlZCBieSBhbnkgX3Vuc2hpZnRlZF8gY3Vy c29yIG1vdGlvbgpjb21tYW5kLiAgU2Vjb25kbHksIGFueSBzdWJzZXF1ZW50IF9zaGlmdGVkXyBj dXJzb3IgbW90aW9uIGNvbW1hbmQKYXZvaWRzIHNldHRpbmcgdGhlIG1hcmsgYW5ldy4gIFRoZXJl Zm9yZSwgYSBzZXJpZXMgb2Ygc2hpZnRlZCBjdXJzb3IKbW90aW9uIGNvbW1hbmRzIHdpbGwgY29u dGludW91c2x5IGFkanVzdCB0aGUgcmVnaW9uLgoKICAgU2hpZnQtc2VsZWN0aW9uIG9ubHkgd29y a3MgaWYgdGhlIHNoaWZ0ZWQgY3Vyc29yIG1vdGlvbiBrZXkgaXMgbm90CmFscmVhZHkgYm91bmQg dG8gYSBzZXBhcmF0ZSBjb21tYW5kICgqbm90ZSBDdXN0b21pemF0aW9uOjopLiAgRm9yCmV4YW1w bGUsIGlmIHlvdSBiaW5kIOKAmFMtQy1m4oCZIHRvIGFub3RoZXIgY29tbWFuZCwgdHlwaW5nIOKA mFMtQy1m4oCZIHJ1bnMKdGhhdCBjb21tYW5kIGluc3RlYWQgb2YgcGVyZm9ybWluZyBhIHNoaWZ0 LXNlbGVjdGVkIHZlcnNpb24gb2Yg4oCYQy1m4oCZCijigJhmb3J3YXJkLWNoYXLigJkpLgoKICAg QSBtYXJrIHNldCB2aWEgbW91c2UgY29tbWFuZHMgYmVoYXZlcyB0aGUgc2FtZSBhcyBhIG1hcmsg c2V0IHZpYQpzaGlmdC1zZWxlY3Rpb24gKCpub3RlIFNldHRpbmcgTWFyazo6KS4gIEZvciBleGFt cGxlLCBpZiB5b3Ugc3BlY2lmeSBhCnJlZ2lvbiBieSBkcmFnZ2luZyB0aGUgbW91c2UsIHlvdSBj YW4gY29udGludWUgdG8gZXh0ZW5kIHRoZSByZWdpb24KdXNpbmcgc2hpZnRlZCBjdXJzb3IgbW90 aW9uIGNvbW1hbmRzLiAgSW4gZWl0aGVyIGNhc2UsIGFueSB1bnNoaWZ0ZWQKY3Vyc29yIG1vdGlv biBjb21tYW5kIGRlYWN0aXZhdGVzIHRoZSBtYXJrLgoKICAgVG8gdHVybiBvZmYgc2hpZnQtc2Vs ZWN0aW9uLCBzZXQg4oCYc2hpZnQtc2VsZWN0LW1vZGXigJkgdG8g4oCYbmls4oCZLiAgRG9pbmcK c28gZG9lcyBub3QgZGlzYWJsZSBzZXR0aW5nIHRoZSBtYXJrIHZpYSBtb3VzZSBjb21tYW5kcy4K CgoqKiAxMS43IERpc2FibGluZyBUcmFuc2llbnQgTWFyayBNb2RlCgpUaGUgZGVmYXVsdCBiZWhh dmlvciBvZiB0aGUgbWFyayBhbmQgcmVnaW9uLCBpbiB3aGljaCBzZXR0aW5nIHRoZSBtYXJrCmFj dGl2YXRlcyBpdCBhbmQgaGlnaGxpZ2h0cyB0aGUgcmVnaW9uLCBpcyBjYWxsZWQgVHJhbnNpZW50 IE1hcmsgbW9kZS4KVGhpcyBpcyBhIG1pbm9yIG1vZGUgdGhhdCBpcyBlbmFibGVkIGJ5IGRlZmF1 bHQuICBJdCBjYW4gYmUgdG9nZ2xlZCB3aXRoCuKAmE0teCB0cmFuc2llbnQtbWFyay1tb2Rl4oCZ LCBvciB3aXRoIHRoZSDigJhBY3RpdmUgUmVnaW9uIEhpZ2hsaWdodGluZ+KAmSBtZW51Cml0ZW0g aW4gdGhlIOKAmE9wdGlvbnPigJkgbWVudS4gIFR1cm5pbmcgaXQgb2ZmIHN3aXRjaGVzIEVtYWNz IHRvIGFuCmFsdGVybmF0aXZlIG1vZGUgb2Ygb3BlcmF0aW9uOgoKICAg4oCiIFNldHRpbmcgdGhl IG1hcmssIHdpdGggY29tbWFuZHMgbGlrZSDigJhDLTxTUEM+4oCZIG9yIOKAmEMteCBDLXjigJks IGRvZXMKICAgICBub3QgaGlnaGxpZ2h0IHRoZSByZWdpb24uICBUaGVyZWZvcmUsIHlvdSBjYW7i gJl0IHRlbGwgYnkgbG9va2luZwogICAgIHdoZXJlIHRoZSBtYXJrIGlzIGxvY2F0ZWQ7IHlvdSBo YXZlIHRvIHJlbWVtYmVyLgoKICAgICBUaGUgdXN1YWwgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVt IGlzIHRvIHNldCB0aGUgbWFyayBhbmQgdGhlbiB1c2UKICAgICBpdCBzb29uLCBiZWZvcmUgeW91 IGZvcmdldCB3aGVyZSBpdCBpcy4gIFlvdSBjYW4gYWxzbyBjaGVjayB3aGVyZQogICAgIHRoZSBt YXJrIGlzIGJ5IHVzaW5nIOKAmEMteCBDLXjigJksIHdoaWNoIGV4Y2hhbmdlcyB0aGUgcG9zaXRp b25zIG9mCiAgICAgdGhlIHBvaW50IGFuZCB0aGUgbWFyayAoKm5vdGUgU2V0dGluZyBNYXJrOjop LgoKICAg4oCiIFNvbWUgY29tbWFuZHMsIHdoaWNoIG9yZGluYXJpbHkgYWN0IG9uIHRoZSByZWdp b24gd2hlbiB0aGUgbWFyayBpcwogICAgIGFjdGl2ZSwgbm8gbG9uZ2VyIGRvIHNvLiAgRm9yIGV4 YW1wbGUsIG5vcm1hbGx5IOKAmE0tJeKAmQogICAgICjigJhxdWVyeS1yZXBsYWNl4oCZKSBwZXJm b3JtcyByZXBsYWNlbWVudHMgd2l0aGluIHRoZSByZWdpb24sIGlmIHRoZQogICAgIG1hcmsgaXMg YWN0aXZlLiAgV2hlbiBUcmFuc2llbnQgTWFyayBtb2RlIGlzIG9mZiwgaXQgYWx3YXlzCiAgICAg b3BlcmF0ZXMgZnJvbSBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIuICBDb21tYW5kcyB0 aGF0IGFjdAogICAgIHRoaXMgd2F5IGFyZSBpZGVudGlmaWVkIGluIHRoZWlyIG93biBkb2N1bWVu dGF0aW9uLgoKICAgV2hpbGUgVHJhbnNpZW50IE1hcmsgbW9kZSBpcyBvZmYsIHlvdSBjYW4gYWN0 aXZhdGUgaXQgdGVtcG9yYXJpbHkKdXNpbmcg4oCYQy08U1BDPiBDLTxTUEM+4oCZIG9yIOKAmEMt dSBDLXggQy144oCZLgoK4oCYQy08U1BDPiBDLTxTUEM+4oCZCiAgICAgU2V0IHRoZSBtYXJrIGF0 IHBvaW50IChsaWtlIHBsYWluIOKAmEMtPFNQQz7igJkpIGFuZCBlbmFibGUgVHJhbnNpZW50CiAg ICAgTWFyayBtb2RlIGp1c3Qgb25jZSwgdW50aWwgdGhlIG1hcmsgaXMgZGVhY3RpdmF0ZWQuICAo VGhpcyBpcyBub3QKICAgICByZWFsbHkgYSBzZXBhcmF0ZSBjb21tYW5kOyB5b3UgYXJlIHVzaW5n IHRoZSDigJhDLTxTUEM+4oCZIGNvbW1hbmQKICAgICB0d2ljZS4pCgrigJhDLXUgQy14IEMteOKA mQogICAgIEV4Y2hhbmdlIHBvaW50IGFuZCBtYXJrLCBhY3RpdmF0ZSB0aGUgbWFyayBhbmQgZW5h YmxlIFRyYW5zaWVudAogICAgIE1hcmsgbW9kZSB0ZW1wb3JhcmlseSwgdW50aWwgdGhlIG1hcmsg aXMgbmV4dCBkZWFjdGl2YXRlZC4gIChUaGlzCiAgICAgaXMgdGhlIOKAmEMteCBDLXjigJkgY29t bWFuZCwg4oCYZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmvigJksIHdpdGggYSBwcmVmaXgKICAgICBh cmd1bWVudC4pCgogICBUaGVzZSBjb21tYW5kcyBzZXQgb3IgYWN0aXZhdGUgdGhlIG1hcmssIGFu ZCBlbmFibGUgVHJhbnNpZW50IE1hcmsKbW9kZSBvbmx5IHVudGlsIHRoZSBtYXJrIGlzIGRlYWN0 aXZhdGVkLiAgT25lIHJlYXNvbiB5b3UgbWF5IHdhbnQgdG8gdXNlCnRoZW0gaXMgdGhhdCBzb21l IGNvbW1hbmRzIG9wZXJhdGUgb24gdGhlIGVudGlyZSBidWZmZXIgaW5zdGVhZCBvZiB0aGUKcmVn aW9uIHdoZW4gVHJhbnNpZW50IE1hcmsgbW9kZSBpcyBvZmYuICBFbmFibGluZyBUcmFuc2llbnQg TWFyayBtb2RlCm1vbWVudGFyaWx5IGdpdmVzIHlvdSBhIHdheSB0byB1c2UgdGhlc2UgY29tbWFu ZHMgb24gdGhlIHJlZ2lvbi4KCiAgIFdoZW4geW91IHNwZWNpZnkgYSByZWdpb24gd2l0aCB0aGUg bW91c2UgKCpub3RlIFNldHRpbmcgTWFyazo6KSwgb3IKd2l0aCBzaGlmdC1zZWxlY3Rpb24gKCpu b3RlIFNoaWZ0IFNlbGVjdGlvbjo6KSwgdGhpcyBsaWtld2lzZSBhY3RpdmF0ZXMKVHJhbnNpZW50 IE1hcmsgbW9kZSB0ZW1wb3JhcmlseSBhbmQgaGlnaGxpZ2h0cyB0aGUgcmVnaW9uLgoKCiogMTIg S2lsbGluZyBhbmQgTW92aW5nIFRleHQKCkluIEVtYWNzLCAia2lsbGluZyIgbWVhbnMgZXJhc2lu ZyB0ZXh0IGFuZCBjb3B5aW5nIGl0IGludG8gdGhlICJraWxsCnJpbmciLiAgIllhbmtpbmciIG1l YW5zIGJyaW5naW5nIHRleHQgZnJvbSB0aGUga2lsbCByaW5nIGJhY2sgaW50byB0aGUKYnVmZmVy LiAgKFNvbWUgYXBwbGljYXRpb25zIHVzZSB0aGUgdGVybXMg4oCcY3V0dGluZ+KAnSBhbmQg4oCc cGFzdGluZ+KAnSBmb3IKc2ltaWxhciBvcGVyYXRpb25zLikgIFRoZSBraWxsIHJpbmcgaXMgc28t bmFtZWQgYmVjYXVzZSBpdCBjYW4gYmUKdmlzdWFsaXplZCBhcyBhIHNldCBvZiBibG9ja3Mgb2Yg dGV4dCBhcnJhbmdlZCBpbiBhIHJpbmcsIHdoaWNoIHlvdSBjYW4KYWNjZXNzIGluIGN5Y2xpYyBv cmRlci4gICpOb3RlIEtpbGwgUmluZzo6LgoKICAgS2lsbGluZyBhbmQgeWFua2luZyBhcmUgdGhl IG1vc3QgY29tbW9uIHdheSB0byBtb3ZlIG9yIGNvcHkgdGV4dAp3aXRoaW4gRW1hY3MuICBJdCBp cyB2ZXJ5IHZlcnNhdGlsZSwgYmVjYXVzZSB0aGVyZSBhcmUgY29tbWFuZHMgZm9yCmtpbGxpbmcg bWFueSBkaWZmZXJlbnQgdHlwZXMgb2Ygc3ludGFjdGljIHVuaXRzLgoKKyBNZW51OgoKICAtIERl bGV0aW9uIGFuZCBLaWxsaW5nOjogQ29tbWFuZHMgdGhhdCByZW1vdmUgdGV4dC4KICAtIFlhbmtp bmc6OiAgICAgICAgICAgICAgQ29tbWFuZHMgdGhhdCBpbnNlcnQgdGV4dC4KICAtIEN1dCBhbmQg UGFzdGU6OiAgICAgICAgQ2xpcGJvYXJkIGFuZCBzZWxlY3Rpb25zIG9uIGdyYXBoaWNhbCBkaXNw bGF5cy4KICAtIEFjY3VtdWxhdGluZyBUZXh0OjogICAgT3RoZXIgbWV0aG9kcyB0byBhZGQgdGV4 dCB0byB0aGUgYnVmZmVyLgogIC0gUmVjdGFuZ2xlczo6ICAgICAgICAgICBPcGVyYXRpbmcgb24g dGV4dCBpbiByZWN0YW5ndWxhciBhcmVhcy4KICAtIENVQSBCaW5kaW5nczo6ICAgICAgICAgVXNp bmcg4oCYQy144oCZL+KAmEMtY+KAmS/igJhDLXbigJkgdG8ga2lsbCBhbmQgeWFuay4KCgoqKiAx Mi4xIERlbGV0aW9uIGFuZCBLaWxsaW5nCgpNb3N0IGNvbW1hbmRzIHdoaWNoIGVyYXNlIHRleHQg ZnJvbSB0aGUgYnVmZmVyIHNhdmUgaXQgaW4gdGhlIGtpbGwgcmluZwooKm5vdGUgS2lsbCBSaW5n OjopLiAgVGhlc2UgYXJlIGtub3duIGFzICJraWxsIiBjb21tYW5kcywgYW5kIHRoZWlyCm5hbWVz IG5vcm1hbGx5IGNvbnRhaW4gdGhlIHdvcmQg4oCYa2lsbOKAmSAoZS5nLiwg4oCYa2lsbC1saW5l 4oCZKS4gIFRoZSBraWxsCnJpbmcgc3RvcmVzIHNldmVyYWwgcmVjZW50IGtpbGxzLCBub3QganVz dCB0aGUgbGFzdCBvbmUsIHNvIGtpbGxpbmcgaXMgYQp2ZXJ5IHNhZmUgb3BlcmF0aW9uOiB5b3Ug ZG9u4oCZdCBoYXZlIHRvIHdvcnJ5IG11Y2ggYWJvdXQgbG9zaW5nIHRleHQgdGhhdAp5b3UgcHJl dmlvdXNseSBraWxsZWQuICBUaGUga2lsbCByaW5nIGlzIHNoYXJlZCBieSBhbGwgYnVmZmVycywg c28gdGV4dAp0aGF0IGlzIGtpbGxlZCBpbiBvbmUgYnVmZmVyIGNhbiBiZSB5YW5rZWQgaW50byBh bm90aGVyIGJ1ZmZlci4KCiAgIFdoZW4geW91IHVzZSDigJhDLS/igJkgKOKAmHVuZG/igJkpIHRv IHVuZG8gYSBraWxsIGNvbW1hbmQgKCpub3RlIFVuZG86OiksCnRoYXQgYnJpbmdzIHRoZSBraWxs ZWQgdGV4dCBiYWNrIGludG8gdGhlIGJ1ZmZlciwgYnV0IGRvZXMgbm90IHJlbW92ZSBpdApmcm9t IHRoZSBraWxsIHJpbmcuCgogICBPbiBncmFwaGljYWwgZGlzcGxheXMsIGtpbGxpbmcgdGV4dCBh bHNvIGNvcGllcyBpdCB0byB0aGUgc3lzdGVtCmNsaXBib2FyZC4gICpOb3RlIEN1dCBhbmQgUGFz dGU6Oi4KCiAgIENvbW1hbmRzIHRoYXQgZXJhc2UgdGV4dCBidXQgZG8gbm90IHNhdmUgaXQgaW4g dGhlIGtpbGwgcmluZyBhcmUKa25vd24gYXMgImRlbGV0ZSIgY29tbWFuZHM7IHRoZWlyIG5hbWVz IHVzdWFsbHkgY29udGFpbiB0aGUgd29yZArigJhkZWxldGXigJkuICBUaGVzZSBpbmNsdWRlIOKA mEMtZOKAmSAo4oCYZGVsZXRlLWNoYXLigJkpIGFuZCA8REVMPgoo4oCYZGVsZXRlLWJhY2t3YXJk LWNoYXLigJkpLCB3aGljaCBkZWxldGUgb25seSBvbmUgY2hhcmFjdGVyIGF0IGEgdGltZSwgYW5k CnRob3NlIGNvbW1hbmRzIHRoYXQgZGVsZXRlIG9ubHkgc3BhY2VzIG9yIG5ld2xpbmVzLiAgQ29t bWFuZHMgdGhhdCBjYW4KZXJhc2Ugc2lnbmlmaWNhbnQgYW1vdW50cyBvZiBub250cml2aWFsIGRh dGEgZ2VuZXJhbGx5IGRvIGEga2lsbApvcGVyYXRpb24gaW5zdGVhZC4KCiAgIFlvdSBjYW4gYWxz byB1c2UgdGhlIG1vdXNlIHRvIGtpbGwgYW5kIHlhbmsuICAqTm90ZSBDdXQgYW5kIFBhc3RlOjou CgorIE1lbnU6CgogIC0gRGVsZXRpb246OiAgICAgICAgICAgIENvbW1hbmRzIGZvciBkZWxldGlu ZyBzbWFsbCBhbW91bnRzIG9mIHRleHQgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgYmxh bmsgYXJlYXMuCiAgLSBLaWxsaW5nIGJ5IExpbmVzOjogICAgSG93IHRvIGtpbGwgZW50aXJlIGxp bmVzIG9mIHRleHQgYXQgb25lIHRpbWUuCiAgLSBPdGhlciBLaWxsIENvbW1hbmRzOjogQ29tbWFu ZHMgdG8ga2lsbCBsYXJnZSByZWdpb25zIG9mIHRleHQgYW5kCiAgICAgICAgICAgICAgICAgICAg ICAgICAgc3ludGFjdGljIHVuaXRzIHN1Y2ggYXMgd29yZHMgYW5kIHNlbnRlbmNlcy4KICAtIEtp bGwgT3B0aW9uczo6ICAgICAgICBPcHRpb25zIHRoYXQgYWZmZWN0IGtpbGxpbmcuCgoKKioqIDEy LjEuMSBEZWxldGlvbgoKRGVsZXRpb24gbWVhbnMgZXJhc2luZyB0ZXh0IGFuZCBub3Qgc2F2aW5n IGl0IGluIHRoZSBraWxsIHJpbmcuICBGb3IgdGhlCm1vc3QgcGFydCwgdGhlIEVtYWNzIGNvbW1h bmRzIHRoYXQgZGVsZXRlIHRleHQgYXJlIHRob3NlIHRoYXQgZXJhc2UganVzdApvbmUgY2hhcmFj dGVyIG9yIG9ubHkgd2hpdGVzcGFjZS4KCuKAmDxERUw+4oCZCuKAmDxCQUNLU1BBQ0U+4oCZCiAg ICAgRGVsZXRlIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIsIG9yIHRoZSB0ZXh0IGluIHRoZSByZWdp b24gaWYgaXQgaXMKICAgICBhY3RpdmUgKOKAmGRlbGV0ZS1iYWNrd2FyZC1jaGFy4oCZKS4KCuKA mDxEZWxldGU+4oCZCiAgICAgRGVsZXRlIHRoZSBuZXh0IGNoYXJhY3Rlciwgb3IgdGhlIHRleHQg aW4gdGhlIHJlZ2lvbiBpZiBpdCBpcwogICAgIGFjdGl2ZSAo4oCYZGVsZXRlLWZvcndhcmQtY2hh cuKAmSkuCgrigJhDLWTigJkKICAgICBEZWxldGUgdGhlIG5leHQgY2hhcmFjdGVyICjigJhkZWxl dGUtY2hhcuKAmSkuCgrigJhNLVzigJkKICAgICBEZWxldGUgc3BhY2VzIGFuZCB0YWJzIGFyb3Vu ZCBwb2ludCAo4oCYZGVsZXRlLWhvcml6b250YWwtc3BhY2XigJkpLgrigJhNLTxTUEM+4oCZCiAg ICAgRGVsZXRlIHNwYWNlcyBhbmQgdGFicyBhcm91bmQgcG9pbnQsIGxlYXZpbmcgb25lIHNwYWNl CiAgICAgKOKAmGp1c3Qtb25lLXNwYWNl4oCZKS4K4oCYQy14IEMtb+KAmQogICAgIERlbGV0ZSBi bGFuayBsaW5lcyBhcm91bmQgdGhlIGN1cnJlbnQgbGluZSAo4oCYZGVsZXRlLWJsYW5rLWxpbmVz 4oCZKS4K4oCYTS1e4oCZCiAgICAgSm9pbiB0d28gbGluZXMgYnkgZGVsZXRpbmcgdGhlIGludGVy dmVuaW5nIG5ld2xpbmUsIGFsb25nIHdpdGggYW55CiAgICAgaW5kZW50YXRpb24gZm9sbG93aW5n IGl0ICjigJhkZWxldGUtaW5kZW50YXRpb27igJkpLgoKICAgV2UgaGF2ZSBhbHJlYWR5IGRlc2Ny aWJlZCB0aGUgYmFzaWMgZGVsZXRpb24gY29tbWFuZHMgPERFTD4KKOKAmGRlbGV0ZS1iYWNrd2Fy ZC1jaGFy4oCZKSwgPGRlbGV0ZT4gKOKAmGRlbGV0ZS1mb3J3YXJkLWNoYXLigJkpLCBhbmQg4oCY Qy1k4oCZCijigJhkZWxldGUtY2hhcuKAmSkuICAqTm90ZSBFcmFzaW5nOjouICBXaXRoIGEgbnVt ZXJpYyBhcmd1bWVudCwgdGhleSBkZWxldGUKdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgY2hhcmFj dGVycy4gIElmIHRoZSBudW1lcmljIGFyZ3VtZW50IGlzIG9taXR0ZWQKb3Igb25lLCA8REVMPiBh bmQgPGRlbGV0ZT4gZGVsZXRlIGFsbCB0aGUgdGV4dCBpbiB0aGUgcmVnaW9uIGlmIGl0IGlzCmFj dGl2ZSAoKm5vdGUgVXNpbmcgUmVnaW9uOjopLgoKICAgVGhlIG90aGVyIGRlbGV0ZSBjb21tYW5k cyBhcmUgdGhvc2UgdGhhdCBkZWxldGUgb25seSB3aGl0ZXNwYWNlCmNoYXJhY3RlcnM6IHNwYWNl cywgdGFicyBhbmQgbmV3bGluZXMuICDigJhNLVzigJkKKOKAmGRlbGV0ZS1ob3Jpem9udGFsLXNw YWNl4oCZKSBkZWxldGVzIGFsbCB0aGUgc3BhY2VzIGFuZCB0YWIgY2hhcmFjdGVycwpiZWZvcmUg YW5kIGFmdGVyIHBvaW50LiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgdGhpcyBvbmx5IGRlbGV0 ZXMKc3BhY2VzIGFuZCB0YWIgY2hhcmFjdGVycyBiZWZvcmUgcG9pbnQuICDigJhNLTxTUEM+4oCZ ICjigJhqdXN0LW9uZS1zcGFjZeKAmSkKZG9lcyBsaWtld2lzZSBidXQgbGVhdmVzIGEgc2luZ2xl IHNwYWNlIGJlZm9yZSBwb2ludCwgcmVnYXJkbGVzcyBvZiB0aGUKbnVtYmVyIG9mIHNwYWNlcyB0 aGF0IGV4aXN0ZWQgcHJldmlvdXNseSAoZXZlbiBpZiB0aGVyZSB3ZXJlIG5vbmUKYmVmb3JlKS4g IFdpdGggYSBudW1lcmljIGFyZ3VtZW50IE4sIGl0IGxlYXZlcyBOIHNwYWNlcyBiZWZvcmUgcG9p bnQgaWYKTiBpcyBwb3NpdGl2ZTsgaWYgTiBpcyBuZWdhdGl2ZSwgaXQgZGVsZXRlcyBuZXdsaW5l cyBpbiBhZGRpdGlvbiB0bwpzcGFjZXMgYW5kIHRhYnMsIGxlYXZpbmcgLU4gc3BhY2VzIGJlZm9y ZSBwb2ludC4gIFRoZSBjb21tYW5kCuKAmGN5Y2xlLXNwYWNpbmfigJkgYWN0cyBsaWtlIGEgbW9y ZSBmbGV4aWJsZSB2ZXJzaW9uIG9mIOKAmGp1c3Qtb25lLXNwYWNl4oCZLgpJdCBkb2VzIGRpZmZl cmVudCB0aGluZ3MgaWYgeW91IGNhbGwgaXQgcmVwZWF0ZWRseSBpbiBzdWNjZXNzaW9uLiAgVGhl CmZpcnN0IGNhbGwgYWN0cyBsaWtlIOKAmGp1c3Qtb25lLXNwYWNl4oCZLCB0aGUgbmV4dCByZW1v dmVzIGFsbCB3aGl0ZXNwYWNlLAphbmQgYSB0aGlyZCBjYWxsIHJlc3RvcmVzIHRoZSBvcmlnaW5h bCB3aGl0ZXNwYWNlLgoKICAg4oCYQy14IEMtb+KAmSAo4oCYZGVsZXRlLWJsYW5rLWxpbmVz4oCZ KSBkZWxldGVzIGFsbCBibGFuayBsaW5lcyBhZnRlciB0aGUKY3VycmVudCBsaW5lLiAgSWYgdGhl IGN1cnJlbnQgbGluZSBpcyBibGFuaywgaXQgZGVsZXRlcyBhbGwgYmxhbmsgbGluZXMKcHJlY2Vk aW5nIHRoZSBjdXJyZW50IGxpbmUgYXMgd2VsbCAobGVhdmluZyBvbmUgYmxhbmsgbGluZSwgdGhl IGN1cnJlbnQKbGluZSkuICBPbiBhIHNvbGl0YXJ5IGJsYW5rIGxpbmUsIGl0IGRlbGV0ZXMgdGhh dCBsaW5lLgoKICAg4oCYTS1e4oCZICjigJhkZWxldGUtaW5kZW50YXRpb27igJkpIGpvaW5zIHRo ZSBjdXJyZW50IGxpbmUgYW5kIHRoZSBwcmV2aW91cwpsaW5lLCBieSBkZWxldGluZyBhIG5ld2xp bmUgYW5kIGFsbCBzdXJyb3VuZGluZyBzcGFjZXMsIHVzdWFsbHkgbGVhdmluZwphIHNpbmdsZSBz cGFjZS4gICpOb3RlIE0tXjogSW5kZW50YXRpb24uCgogICBUaGUgY29tbWFuZCDigJhkZWxldGUt ZHVwbGljYXRlLWxpbmVz4oCZIHNlYXJjaGVzIHRoZSByZWdpb24gZm9yCmlkZW50aWNhbCBsaW5l cywgYW5kIHJlbW92ZXMgYWxsIGJ1dCBvbmUgY29weSBvZiBlYWNoLiAgTm9ybWFsbHkgaXQKa2Vl cHMgdGhlIGZpcnN0IGluc3RhbmNlIG9mIGVhY2ggcmVwZWF0ZWQgbGluZSwgYnV0IHdpdGggYSDi gJhDLXXigJkgcHJlZml4CmFyZ3VtZW50IGl0IGtlZXBzIHRoZSBsYXN0LiAgV2l0aCBhIOKAmEMt dSBDLXXigJkgcHJlZml4IGFyZ3VtZW50LCBpdCBvbmx5CnNlYXJjaGVzIGZvciBhZGphY2VudCBp ZGVudGljYWwgbGluZXMuICBUaGlzIGlzIGEgbW9yZSBlZmZpY2llbnQgbW9kZSBvZgpvcGVyYXRp b24sIHVzZWZ1bCB3aGVuIHRoZSBsaW5lcyBoYXZlIGFscmVhZHkgYmVlbiBzb3J0ZWQuICBXaXRo IGEg4oCYQy11CkMtdSBDLXXigJkgcHJlZml4IGFyZ3VtZW50LCBpdCByZXRhaW5zIHJlcGVhdGVk IGJsYW5rIGxpbmVzLgoKCioqKiAxMi4xLjIgS2lsbGluZyBieSBMaW5lcwoK4oCYQy1r4oCZCiAg ICAgS2lsbCByZXN0IG9mIGxpbmUgb3Igb25lIG9yIG1vcmUgbGluZXMgKOKAmGtpbGwtbGluZeKA mSkuCuKAmEMtUy1iYWNrc3BhY2XigJkKICAgICBLaWxsIGFuIGVudGlyZSBsaW5lIGF0IG9uY2Ug KOKAmGtpbGwtd2hvbGUtbGluZeKAmSkKCiAgIFRoZSBzaW1wbGVzdCBraWxsIGNvbW1hbmQgaXMg 4oCYQy1r4oCZICjigJhraWxsLWxpbmXigJkpLiAgSWYgdXNlZCBhdCB0aGUgZW5kCm9mIGEgbGlu ZSwgaXQga2lsbHMgdGhlIGxpbmUtZW5kaW5nIG5ld2xpbmUgY2hhcmFjdGVyLCBtZXJnaW5nIHRo ZSBuZXh0CmxpbmUgaW50byB0aGUgY3VycmVudCBvbmUgKHRodXMsIGEgYmxhbmsgbGluZSBpcyBl bnRpcmVseSByZW1vdmVkKS4KT3RoZXJ3aXNlLCDigJhDLWvigJkga2lsbHMgYWxsIHRoZSB0ZXh0 IGZyb20gcG9pbnQgdXAgdG8gdGhlIGVuZCBvZiB0aGUKbGluZTsgaWYgcG9pbnQgd2FzIG9yaWdp bmFsbHkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSwgdGhpcyBsZWF2ZXMKdGhlIGxpbmUg YmxhbmsuCgogICBTcGFjZXMgYW5kIHRhYnMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSBhcmUgaWdu b3JlZCB3aGVuIGRlY2lkaW5nCndoaWNoIGNhc2UgYXBwbGllcy4gIEFzIGxvbmcgYXMgcG9pbnQg aXMgYWZ0ZXIgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2UKY2hhcmFjdGVyIGluIHRoZSBsaW5lLCB5 b3UgY2FuIGJlIHN1cmUgdGhhdCDigJhDLWvigJkgd2lsbCBraWxsIHRoZSBuZXdsaW5lLgpUbyBr aWxsIGFuIGVudGlyZSBub24tYmxhbmsgbGluZSwgZ28gdG8gdGhlIGJlZ2lubmluZyBhbmQgdHlw ZSDigJhDLWvigJkKdHdpY2UuCgogICBJbiB0aGlzIGNvbnRleHQsIOKAnGxpbmXigJ0gbWVhbnMg YSBsb2dpY2FsIHRleHQgbGluZSwgbm90IGEgc2NyZWVuIGxpbmUKKCpub3RlIENvbnRpbnVhdGlv biBMaW5lczo6KS4KCiAgIFdoZW4g4oCYQy1r4oCZIGlzIGdpdmVuIGEgcG9zaXRpdmUgYXJndW1l bnQgTiwgaXQga2lsbHMgTiBsaW5lcyBhbmQgdGhlCm5ld2xpbmVzIHRoYXQgZm9sbG93IHRoZW0g KHRleHQgb24gdGhlIGN1cnJlbnQgbGluZSBiZWZvcmUgcG9pbnQgaXMgbm90CmtpbGxlZCkuICBX aXRoIGEgbmVnYXRpdmUgYXJndW1lbnQg4oiSTiwgaXQga2lsbHMgTiBsaW5lcyBwcmVjZWRpbmcg dGhlCmN1cnJlbnQgbGluZSwgdG9nZXRoZXIgd2l0aCB0aGUgdGV4dCBvbiB0aGUgY3VycmVudCBs aW5lIGJlZm9yZSBwb2ludC4K4oCYQy1r4oCZIHdpdGggYW4gYXJndW1lbnQgb2YgemVybyBraWxs cyB0aGUgdGV4dCBiZWZvcmUgcG9pbnQgb24gdGhlCmN1cnJlbnQgbGluZS4KCiAgIElmIHRoZSB2 YXJpYWJsZSDigJhraWxsLXdob2xlLWxpbmXigJkgaXMgbm9uLeKAmG5pbOKAmSwg4oCYQy1r4oCZ IGF0IHRoZSB2ZXJ5CmJlZ2lubmluZyBvZiBhIGxpbmUga2lsbHMgdGhlIGVudGlyZSBsaW5lIGlu Y2x1ZGluZyB0aGUgZm9sbG93aW5nCm5ld2xpbmUuICBUaGlzIHZhcmlhYmxlIGlzIG5vcm1hbGx5 IOKAmG5pbOKAmS4KCiAgIOKAmEMtUy1iYWNrc3BhY2XigJkgKOKAmGtpbGwtd2hvbGUtbGluZeKA mSkga2lsbHMgYSB3aG9sZSBsaW5lIGluY2x1ZGluZyBpdHMKbmV3bGluZSwgcmVnYXJkbGVzcyBv ZiB0aGUgcG9zaXRpb24gb2YgcG9pbnQgd2l0aGluIHRoZSBsaW5lLiAgTm90ZSB0aGF0Cm1hbnkg dGV4dCB0ZXJtaW5hbHMgd2lsbCBwcmV2ZW50IHlvdSBmcm9tIHR5cGluZyB0aGUga2V5IHNlcXVl bmNlCuKAmEMtUy1iYWNrc3BhY2XigJkuCgoKKioqIDEyLjEuMyBPdGhlciBLaWxsIENvbW1hbmRz CgrigJhDLXfigJkKICAgICBLaWxsIHRoZSByZWdpb24gKOKAmGtpbGwtcmVnaW9u4oCZKS4K4oCY TS134oCZCiAgICAgQ29weSB0aGUgcmVnaW9uIGludG8gdGhlIGtpbGwgcmluZyAo4oCYa2lsbC1y aW5nLXNhdmXigJkpLgrigJhNLWTigJkKICAgICBLaWxsIHRoZSBuZXh0IHdvcmQgKOKAmGtpbGwt d29yZOKAmSkuICAqTm90ZSBXb3Jkczo6LgrigJhNLTxERUw+4oCZCiAgICAgS2lsbCBvbmUgd29y ZCBiYWNrd2FyZHMgKOKAmGJhY2t3YXJkLWtpbGwtd29yZOKAmSkuCuKAmEMteCA8REVMPuKAmQog ICAgIEtpbGwgYmFjayB0byBiZWdpbm5pbmcgb2Ygc2VudGVuY2UgKOKAmGJhY2t3YXJkLWtpbGwt c2VudGVuY2XigJkpLgogICAgICpOb3RlIFNlbnRlbmNlczo6LgrigJhNLWvigJkKICAgICBLaWxs IHRvIHRoZSBlbmQgb2YgdGhlIHNlbnRlbmNlICjigJhraWxsLXNlbnRlbmNl4oCZKS4K4oCYQy1N LWvigJkKICAgICBLaWxsIHRoZSBmb2xsb3dpbmcgYmFsYW5jZWQgZXhwcmVzc2lvbiAo4oCYa2ls bC1zZXhw4oCZKS4gICpOb3RlCiAgICAgRXhwcmVzc2lvbnM6Oi4K4oCYTS16IENIQVLigJkKICAg ICBLaWxsIHRocm91Z2ggdGhlIG5leHQgb2NjdXJyZW5jZSBvZiBDSEFSICjigJh6YXAtdG8tY2hh cuKAmSkuCgogICBPbmUgb2YgdGhlIGNvbW1vbmx5LXVzZWQga2lsbCBjb21tYW5kcyBpcyDigJhD LXfigJkgKOKAmGtpbGwtcmVnaW9u4oCZKSwKd2hpY2gga2lsbHMgdGhlIHRleHQgaW4gdGhlIHJl Z2lvbiAoKm5vdGUgTWFyazo6KS4gIFNpbWlsYXJseSwg4oCYTS134oCZCijigJhraWxsLXJpbmct c2F2ZeKAmSkgY29waWVzIHRoZSB0ZXh0IGluIHRoZSByZWdpb24gaW50byB0aGUga2lsbCByaW5n CndpdGhvdXQgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgYnVmZmVyLiAgSWYgdGhlIG1hcmsgaXMgaW5h Y3RpdmUgd2hlbiB5b3UKdHlwZSDigJhDLXfigJkgb3Ig4oCYTS134oCZLCB0aGUgY29tbWFuZCBh Y3RzIG9uIHRoZSB0ZXh0IGJldHdlZW4gcG9pbnQgYW5kCndoZXJlIHlvdSBsYXN0IHNldCB0aGUg bWFyayAoKm5vdGUgVXNpbmcgUmVnaW9uOjopLgoKICAgRW1hY3MgYWxzbyBwcm92aWRlcyBjb21t YW5kcyB0byBraWxsIHNwZWNpZmljIHN5bnRhY3RpYyB1bml0czogd29yZHMsCndpdGgg4oCYTS08 REVMPuKAmSBhbmQg4oCYTS1k4oCZICgqbm90ZSBXb3Jkczo6KTsgYmFsYW5jZWQgZXhwcmVzc2lv bnMsIHdpdGgK4oCYQy1NLWvigJkgKCpub3RlIEV4cHJlc3Npb25zOjopOyBhbmQgc2VudGVuY2Vz LCB3aXRoIOKAmEMteCA8REVMPuKAmSBhbmQg4oCYTS1r4oCZCigqbm90ZSBTZW50ZW5jZXM6Oiku CgogICBUaGUgY29tbWFuZCDigJhNLXrigJkgKOKAmHphcC10by1jaGFy4oCZKSBjb21iaW5lcyBr aWxsaW5nIHdpdGggc2VhcmNoaW5nOiBpdApyZWFkcyBhIGNoYXJhY3RlciBhbmQga2lsbHMgZnJv bSBwb2ludCB1cCB0byAoYW5kIGluY2x1ZGluZykgdGhlIG5leHQKb2NjdXJyZW5jZSBvZiB0aGF0 IGNoYXJhY3RlciBpbiB0aGUgYnVmZmVyLiAgQSBudW1lcmljIGFyZ3VtZW50IGFjdHMgYXMKYSBy ZXBlYXQgY291bnQ7IGEgbmVnYXRpdmUgYXJndW1lbnQgbWVhbnMgdG8gc2VhcmNoIGJhY2t3YXJk IGFuZCBraWxsCnRleHQgYmVmb3JlIHBvaW50LgoKCioqKiAxMi4xLjQgT3B0aW9ucyBmb3IgS2ls bGluZwoKU29tZSBzcGVjaWFsaXplZCBidWZmZXJzIGNvbnRhaW4gInJlYWQtb25seSB0ZXh0Iiwg d2hpY2ggY2Fubm90IGJlCm1vZGlmaWVkIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIGtpbGxlZC4g IFRoZSBraWxsIGNvbW1hbmRzIHdvcmsKc3BlY2lhbGx5IGluIGEgcmVhZC1vbmx5IGJ1ZmZlcjog dGhleSBtb3ZlIG92ZXIgdGV4dCBhbmQgY29weSBpdCB0byB0aGUKa2lsbCByaW5nLCB3aXRob3V0 IGFjdHVhbGx5IGRlbGV0aW5nIGl0IGZyb20gdGhlIGJ1ZmZlci4gIE5vcm1hbGx5LCB0aGV5CmFs c28gYmVlcCBhbmQgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIHdoZW4gdGhpcyBoYXBwZW5zLiAg QnV0IGlmIHlvdQpzZXQgdGhlIHZhcmlhYmxlIOKAmGtpbGwtcmVhZC1vbmx5LW9r4oCZIHRvIGEg bm9uLeKAmG5pbOKAmSB2YWx1ZSwgdGhleSBqdXN0CnByaW50IGEgbWVzc2FnZSBpbiB0aGUgZWNo byBhcmVhIHRvIGV4cGxhaW4gd2h5IHRoZSB0ZXh0IGhhcyBub3QgYmVlbgplcmFzZWQuCgogICBJ ZiB5b3UgY2hhbmdlIHRoZSB2YXJpYWJsZSDigJhraWxsLWRvLW5vdC1zYXZlLWR1cGxpY2F0ZXPi gJkgdG8gYQpub24t4oCYbmls4oCZIHZhbHVlLCBpZGVudGljYWwgc3Vic2VxdWVudCBraWxscyB5 aWVsZCBhIHNpbmdsZSBraWxsLXJpbmcKZW50cnksIHdpdGhvdXQgZHVwbGljYXRpb24uCgoKKiog MTIuMiBZYW5raW5nCgoiWWFua2luZyIgbWVhbnMgcmVpbnNlcnRpbmcgdGV4dCBwcmV2aW91c2x5 IGtpbGxlZC4gIFRoZSB1c3VhbCB3YXkgdG8KbW92ZSBvciBjb3B5IHRleHQgaXMgdG8ga2lsbCBp dCBhbmQgdGhlbiB5YW5rIGl0IGVsc2V3aGVyZS4KCuKAmEMteeKAmQogICAgIFlhbmsgdGhlIGxh c3Qga2lsbCBpbnRvIHRoZSBidWZmZXIsIGF0IHBvaW50ICjigJh5YW5r4oCZKS4K4oCYTS154oCZ CiAgICAgUmVwbGFjZSB0aGUgdGV4dCBqdXN0IHlhbmtlZCB3aXRoIGFuIGVhcmxpZXIgYmF0Y2gg b2Yga2lsbGVkIHRleHQKICAgICAo4oCYeWFuay1wb3DigJkpLiAgKk5vdGUgRWFybGllciBLaWxs czo6LgrigJhDLU0td+KAmQogICAgIENhdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZCwgaWYgaXQg aXMgYSBraWxsIGNvbW1hbmQsIHRvIGFwcGVuZCB0bwogICAgIHRoZSBwcmV2aW91cyBraWxsICji gJhhcHBlbmQtbmV4dC1raWxs4oCZKS4gICpOb3RlIEFwcGVuZGluZyBLaWxsczo6LgoKICAgVGhl IGJhc2ljIHlhbmtpbmcgY29tbWFuZCBpcyDigJhDLXnigJkgKOKAmHlhbmvigJkpLiAgSXQgaW5z ZXJ0cyB0aGUgbW9zdApyZWNlbnQga2lsbCwgbGVhdmluZyB0aGUgY3Vyc29yIGF0IHRoZSBlbmQg b2YgdGhlIGluc2VydGVkIHRleHQuICBJdAphbHNvIHNldHMgdGhlIG1hcmsgYXQgdGhlIGJlZ2lu bmluZyBvZiB0aGUgaW5zZXJ0ZWQgdGV4dCwgd2l0aG91dAphY3RpdmF0aW5nIHRoZSBtYXJrOyB0 aGlzIGxldHMgeW91IGp1bXAgZWFzaWx5IHRvIHRoYXQgcG9zaXRpb24sIGlmIHlvdQp3aXNoLCB3 aXRoIOKAmEMtdSBDLTxTUEM+4oCZICgqbm90ZSBNYXJrIFJpbmc6OikuCgogICBXaXRoIGEgcGxh aW4gcHJlZml4IGFyZ3VtZW50ICjigJhDLXUgQy154oCZKSwgdGhlIGNvbW1hbmQgaW5zdGVhZCBs ZWF2ZXMKdGhlIGN1cnNvciBpbiBmcm9udCBvZiB0aGUgaW5zZXJ0ZWQgdGV4dCwgYW5kIHNldHMg dGhlIG1hcmsgYXQgdGhlIGVuZC4KVXNpbmcgYW55IG90aGVyIHByZWZpeCBhcmd1bWVudCBzcGVj aWZpZXMgYW4gZWFybGllciBraWxsOyBlLmcuLCDigJhDLXUgNApDLXnigJkgcmVpbnNlcnRzIHRo ZSBmb3VydGggbW9zdCByZWNlbnQga2lsbC4gICpOb3RlIEVhcmxpZXIgS2lsbHM6Oi4KCiAgIE9u IGdyYXBoaWNhbCBkaXNwbGF5cywg4oCYQy154oCZIGZpcnN0IGNoZWNrcyBpZiBhbm90aGVyIGFw cGxpY2F0aW9uIGhhcwpwbGFjZWQgYW55IHRleHQgaW4gdGhlIHN5c3RlbSBjbGlwYm9hcmQgbW9y ZSByZWNlbnRseSB0aGFuIHRoZSBsYXN0CkVtYWNzIGtpbGwuICBJZiBzbywgaXQgaW5zZXJ0cyB0 aGUgY2xpcGJvYXJk4oCZcyB0ZXh0IGluc3RlYWQuICBUaHVzLApFbWFjcyBlZmZlY3RpdmVseSB0 cmVhdHMg4oCcY3V04oCdIG9yIOKAnGNvcHnigJ0gY2xpcGJvYXJkIG9wZXJhdGlvbnMgcGVyZm9y bWVkCmluIG90aGVyIGFwcGxpY2F0aW9ucyBsaWtlIEVtYWNzIGtpbGxzLCBleGNlcHQgdGhhdCB0 aGV5IGFyZSBub3QKcmVjb3JkZWQgaW4gdGhlIGtpbGwgcmluZy4gICpOb3RlIEN1dCBhbmQgUGFz dGU6OiwgZm9yIGRldGFpbHMuCgorIE1lbnU6CgogIC0gS2lsbCBSaW5nOjogICAgICAgICAgIFdo ZXJlIGtpbGxlZCB0ZXh0IGlzIHN0b3JlZC4KICAtIEVhcmxpZXIgS2lsbHM6OiAgICAgICBZYW5r aW5nIHNvbWV0aGluZyBraWxsZWQgc29tZSB0aW1lIGFnby4KICAtIEFwcGVuZGluZyBLaWxsczo6 ICAgICBTZXZlcmFsIGtpbGxzIGluIGEgcm93IGFsbCB5YW5rIHRvZ2V0aGVyLgoKCioqKiAxMi4y LjEgVGhlIEtpbGwgUmluZwoKVGhlICJraWxsIHJpbmciIGlzIGEgbGlzdCBvZiBibG9ja3Mgb2Yg dGV4dCB0aGF0IHdlcmUgcHJldmlvdXNseSBraWxsZWQuClRoZXJlIGlzIG9ubHkgb25lIGtpbGwg cmluZywgc2hhcmVkIGJ5IGFsbCBidWZmZXJzLCBzbyB5b3UgY2FuIGtpbGwgdGV4dAppbiBvbmUg YnVmZmVyIGFuZCB5YW5rIGl0IGluIGFub3RoZXIgYnVmZmVyLiAgVGhpcyBpcyB0aGUgdXN1YWwg d2F5IHRvCm1vdmUgdGV4dCBmcm9tIG9uZSBidWZmZXIgdG8gYW5vdGhlci4gIChUaGVyZSBhcmUg c2V2ZXJhbCBvdGhlciBtZXRob2RzOgpmb3IgaW5zdGFuY2UsIHlvdSBjb3VsZCBzdG9yZSB0aGUg dGV4dCBpbiBhIHJlZ2lzdGVyOyBzZWUgKm5vdGUKUmVnaXN0ZXJzOjouICAqTm90ZSBBY2N1bXVs YXRpbmcgVGV4dDo6LCBmb3Igc29tZSBvdGhlciB3YXlzIHRvIG1vdmUKdGV4dCBhcm91bmQuKQoK ICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGtpbGwgcmluZyBpcyBjb250 cm9sbGVkIGJ5IHRoZQp2YXJpYWJsZSDigJhraWxsLXJpbmctbWF44oCZLiAgVGhlIGRlZmF1bHQg aXMgNjAuICBJZiB5b3UgbWFrZSBhIG5ldyBraWxsCndoZW4gdGhpcyBsaW1pdCBoYXMgYmVlbiBy ZWFjaGVkLCBFbWFjcyBtYWtlcyByb29tIGJ5IGRlbGV0aW5nIHRoZQpvbGRlc3QgZW50cnkgaW4g dGhlIGtpbGwgcmluZy4KCiAgIFRoZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIGtpbGwgcmluZyBh cmUgc3RvcmVkIGluIGEgdmFyaWFibGUgbmFtZWQK4oCYa2lsbC1yaW5n4oCZOyB5b3UgY2FuIHZp ZXcgdGhlIGVudGlyZSBjb250ZW50cyBvZiB0aGUga2lsbCByaW5nIHdpdGgg4oCYQy1oCnYga2ls bC1yaW5n4oCZLgoKCioqKiAxMi4yLjIgWWFua2luZyBFYXJsaWVyIEtpbGxzCgpBcyBleHBsYWlu ZWQgaW4gKm5vdGUgWWFua2luZzo6LCB5b3UgY2FuIHVzZSBhIG51bWVyaWMgYXJndW1lbnQgdG8g 4oCYQy154oCZCnRvIHlhbmsgdGV4dCB0aGF0IGlzIG5vIGxvbmdlciB0aGUgbW9zdCByZWNlbnQg a2lsbC4gIFRoaXMgaXMgdXNlZnVsIGlmCnlvdSByZW1lbWJlciB3aGljaCBraWxsIHJpbmcgZW50 cnkgeW91IHdhbnQuICBJZiB5b3UgZG9u4oCZdCwgeW91IGNhbiB1c2UKdGhlIOKAmE0teeKAmSAo 4oCYeWFuay1wb3DigJkpIGNvbW1hbmQgdG8gY3ljbGUgdGhyb3VnaCB0aGUgcG9zc2liaWxpdGll cy4KCiAgIElmIHRoZSBwcmV2aW91cyBjb21tYW5kIHdhcyBhIHlhbmsgY29tbWFuZCwg4oCYTS15 4oCZIHRha2VzIHRoZSB0ZXh0IHRoYXQKd2FzIHlhbmtlZCBhbmQgcmVwbGFjZXMgaXQgd2l0aCB0 aGUgdGV4dCBmcm9tIGFuIGVhcmxpZXIga2lsbC4gIFNvLCB0bwpyZWNvdmVyIHRoZSB0ZXh0IG9m IHRoZSBuZXh0LXRvLXRoZS1sYXN0IGtpbGwsIGZpcnN0IHVzZSDigJhDLXnigJkgdG8geWFuawp0 aGUgbGFzdCBraWxsLCBhbmQgdGhlbiB1c2Ug4oCYTS154oCZIHRvIHJlcGxhY2UgaXQgd2l0aCB0 aGUgcHJldmlvdXMga2lsbC4K4oCYTS154oCZIGlzIGFsbG93ZWQgb25seSBhZnRlciBhIOKAmEMt eeKAmSBvciBhbm90aGVyIOKAmE0teeKAmS4KCiAgIFlvdSBjYW4gdW5kZXJzdGFuZCDigJhNLXni gJkgaW4gdGVybXMgb2YgYSBsYXN0LXlhbmsgcG9pbnRlciB3aGljaCBwb2ludHMKYXQgYW4gZW50 cnkgaW4gdGhlIGtpbGwgcmluZy4gIEVhY2ggdGltZSB5b3Uga2lsbCwgdGhlIGxhc3QteWFuayBw b2ludGVyCm1vdmVzIHRvIHRoZSBuZXdseSBtYWRlIGVudHJ5IGF0IHRoZSBmcm9udCBvZiB0aGUg cmluZy4gIOKAmEMteeKAmSB5YW5rcyB0aGUKZW50cnkgd2hpY2ggdGhlIGxhc3QteWFuayBwb2lu dGVyIHBvaW50cyB0by4gIOKAmE0teeKAmSBtb3ZlcyB0aGUgbGFzdC15YW5rCnBvaW50ZXIgdG8g YSBkaWZmZXJlbnQgZW50cnksIGFuZCB0aGUgdGV4dCBpbiB0aGUgYnVmZmVyIGNoYW5nZXMgdG8K bWF0Y2guICBFbm91Z2gg4oCYTS154oCZIGNvbW1hbmRzIGNhbiBtb3ZlIHRoZSBwb2ludGVyIHRv IGFueSBlbnRyeSBpbiB0aGUKcmluZywgc28geW91IGNhbiBnZXQgYW55IGVudHJ5IGludG8gdGhl IGJ1ZmZlci4gIEV2ZW50dWFsbHkgdGhlIHBvaW50ZXIKcmVhY2hlcyB0aGUgZW5kIG9mIHRoZSBy aW5nOyB0aGUgbmV4dCDigJhNLXnigJkgbG9vcHMgYmFjayBhcm91bmQgdG8gdGhlCmZpcnN0IGVu dHJ5IGFnYWluLgoKICAg4oCYTS154oCZIG1vdmVzIHRoZSBsYXN0LXlhbmsgcG9pbnRlciBhcm91 bmQgdGhlIHJpbmcsIGJ1dCBpdCBkb2VzIG5vdApjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBlbnRy aWVzIGluIHRoZSByaW5nLCB3aGljaCBhbHdheXMgcnVucyBmcm9tIHRoZQptb3N0IHJlY2VudCBr aWxsIGF0IHRoZSBmcm9udCB0byB0aGUgb2xkZXN0IG9uZSBzdGlsbCByZW1lbWJlcmVkLgoKICAg 4oCYTS154oCZIGNhbiB0YWtlIGEgbnVtZXJpYyBhcmd1bWVudCwgd2hpY2ggdGVsbHMgaXQgaG93 IG1hbnkgZW50cmllcyB0bwphZHZhbmNlIHRoZSBsYXN0LXlhbmsgcG9pbnRlciBieS4gIEEgbmVn YXRpdmUgYXJndW1lbnQgbW92ZXMgdGhlIHBvaW50ZXIKdG93YXJkIHRoZSBmcm9udCBvZiB0aGUg cmluZzsgZnJvbSB0aGUgZnJvbnQgb2YgdGhlIHJpbmcsIGl0IG1vdmVzCmFyb3VuZCB0byB0aGUg bGFzdCBlbnRyeSBhbmQgY29udGludWVzIGZvcndhcmQgZnJvbSB0aGVyZS4KCiAgIE9uY2UgdGhl IHRleHQgeW91IGFyZSBsb29raW5nIGZvciBpcyBicm91Z2h0IGludG8gdGhlIGJ1ZmZlciwgeW91 IGNhbgpzdG9wIGRvaW5nIOKAmE0teeKAmSBjb21tYW5kcyBhbmQgaXQgd2lsbCBzdGF5IHRoZXJl LiAgSXTigJlzIGp1c3QgYSBjb3B5IG9mCnRoZSBraWxsIHJpbmcgZW50cnksIHNvIGVkaXRpbmcg aXQgaW4gdGhlIGJ1ZmZlciBkb2VzIG5vdCBjaGFuZ2Ugd2hhdOKAmXMKaW4gdGhlIHJpbmcuICBB cyBsb25nIGFzIG5vIG5ldyBraWxsaW5nIGlzIGRvbmUsIHRoZSBsYXN0LXlhbmsgcG9pbnRlcgpy ZW1haW5zIGF0IHRoZSBzYW1lIHBsYWNlIGluIHRoZSBraWxsIHJpbmcsIHNvIHJlcGVhdGluZyDi gJhDLXnigJkgd2lsbCB5YW5rCmFub3RoZXIgY29weSBvZiB0aGUgc2FtZSBwcmV2aW91cyBraWxs LgoKICAgV2hlbiB5b3UgY2FsbCDigJhDLXnigJkgd2l0aCBhIG51bWVyaWMgYXJndW1lbnQsIHRo YXQgYWxzbyBzZXRzIHRoZQpsYXN0LXlhbmsgcG9pbnRlciB0byB0aGUgZW50cnkgdGhhdCBpdCB5 YW5rcy4KCgoqKiogMTIuMi4zIEFwcGVuZGluZyBLaWxscwoKTm9ybWFsbHksIGVhY2gga2lsbCBj b21tYW5kIHB1c2hlcyBhIG5ldyBlbnRyeSBvbnRvIHRoZSBraWxsIHJpbmcuCkhvd2V2ZXIsIHR3 byBvciBtb3JlIGtpbGwgY29tbWFuZHMgaW4gYSByb3cgY29tYmluZSB0aGVpciB0ZXh0IGludG8g YQpzaW5nbGUgZW50cnksIHNvIHRoYXQgYSBzaW5nbGUg4oCYQy154oCZIHlhbmtzIGFsbCB0aGUg dGV4dCBhcyBhIHVuaXQsIGp1c3QKYXMgaXQgd2FzIGJlZm9yZSBpdCB3YXMga2lsbGVkLgoKICAg VGh1cywgaWYgeW91IHdhbnQgdG8geWFuayB0ZXh0IGFzIGEgdW5pdCwgeW91IG5lZWQgbm90IGtp bGwgYWxsIG9mIGl0CndpdGggb25lIGNvbW1hbmQ7IHlvdSBjYW4ga2VlcCBraWxsaW5nIGxpbmUg YWZ0ZXIgbGluZSwgb3Igd29yZCBhZnRlcgp3b3JkLCB1bnRpbCB5b3UgaGF2ZSBraWxsZWQgaXQg YWxsLCBhbmQgeW91IGNhbiBzdGlsbCBnZXQgaXQgYWxsIGJhY2sgYXQKb25jZS4KCiAgIENvbW1h bmRzIHRoYXQga2lsbCBmb3J3YXJkIGZyb20gcG9pbnQgYWRkIG9udG8gdGhlIGVuZCBvZiB0aGUK cHJldmlvdXMga2lsbGVkIHRleHQuICBDb21tYW5kcyB0aGF0IGtpbGwgYmFja3dhcmQgZnJvbSBw b2ludCBhZGQgdGV4dApvbnRvIHRoZSBiZWdpbm5pbmcuICBUaGlzIHdheSwgYW55IHNlcXVlbmNl IG9mIG1peGVkIGZvcndhcmQgYW5kCmJhY2t3YXJkIGtpbGwgY29tbWFuZHMgcHV0cyBhbGwgdGhl IGtpbGxlZCB0ZXh0IGludG8gb25lIGVudHJ5IHdpdGhvdXQKcmVhcnJhbmdlbWVudC4gIE51bWVy aWMgYXJndW1lbnRzIGRvIG5vdCBicmVhayB0aGUgc2VxdWVuY2Ugb2YgYXBwZW5kaW5nCmtpbGxz LiAgRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhlIGJ1ZmZlciBjb250YWlucyB0aGlzIHRleHQ6Cgog ICAgIFRoaXMgaXMgYSBsaW5lIOKYhW9mIHNhbXBsZSB0ZXh0LgoKd2l0aCBwb2ludCBzaG93biBi eSDimIUuICBJZiB5b3UgdHlwZSDigJhNLWQgTS08REVMPiBNLWQgTS08REVMPuKAmSwga2lsbGlu ZwphbHRlcm5hdGVseSBmb3J3YXJkIGFuZCBiYWNrd2FyZCwgeW91IGVuZCB1cCB3aXRoIOKAmGEg bGluZSBvZiBzYW1wbGXigJkgYXMKb25lIGVudHJ5IGluIHRoZSBraWxsIHJpbmcsIGFuZCDigJhU aGlzIGlzICB0ZXh0LuKAmSBpbiB0aGUgYnVmZmVyLiAgKE5vdGUKdGhlIGRvdWJsZSBzcGFjZSBi ZXR3ZWVuIOKAmGlz4oCZIGFuZCDigJh0ZXh04oCZLCB3aGljaCB5b3UgY2FuIGNsZWFuIHVwIHdp dGgK4oCYTS08U1BDPuKAmSBvciDigJhNLXHigJkuKQoKICAgQW5vdGhlciB3YXkgdG8ga2lsbCB0 aGUgc2FtZSB0ZXh0IGlzIHRvIG1vdmUgYmFjayB0d28gd29yZHMgd2l0aCDigJhNLWIKTS1i4oCZ LCB0aGVuIGtpbGwgYWxsIGZvdXIgd29yZHMgZm9yd2FyZCB3aXRoIOKAmEMtdSBNLWTigJkuICBU aGlzIHByb2R1Y2VzCmV4YWN0bHkgdGhlIHNhbWUgcmVzdWx0cyBpbiB0aGUgYnVmZmVyIGFuZCBp biB0aGUga2lsbCByaW5nLiAg4oCYTS1mIE0tZgpDLXUgTS08REVMPuKAmSBraWxscyB0aGUgc2Ft ZSB0ZXh0LCBhbGwgZ29pbmcgYmFja3dhcmQ7IG9uY2UgYWdhaW4sIHRoZQpyZXN1bHQgaXMgdGhl IHNhbWUuICBUaGUgdGV4dCBpbiB0aGUga2lsbCByaW5nIGVudHJ5IGFsd2F5cyBoYXMgdGhlIHNh bWUKb3JkZXIgdGhhdCBpdCBoYWQgaW4gdGhlIGJ1ZmZlciBiZWZvcmUgeW91IGtpbGxlZCBpdC4K CiAgIElmIGEga2lsbCBjb21tYW5kIGlzIHNlcGFyYXRlZCBmcm9tIHRoZSBsYXN0IGtpbGwgY29t bWFuZCBieSBvdGhlcgpjb21tYW5kcyAobm90IGp1c3QgbnVtZXJpYyBhcmd1bWVudHMpLCBpdCBz dGFydHMgYSBuZXcgZW50cnkgb24gdGhlIGtpbGwKcmluZy4gIEJ1dCB5b3UgY2FuIGZvcmNlIGl0 IHRvIGNvbWJpbmUgd2l0aCB0aGUgbGFzdCBraWxsZWQgdGV4dCwgYnkKdHlwaW5nIOKAmEMtTS13 4oCZICjigJhhcHBlbmQtbmV4dC1raWxs4oCZKSByaWdodCBiZWZvcmVoYW5kLiAgVGhlIOKAmEMt TS134oCZIHRlbGxzCml0cyBmb2xsb3dpbmcgY29tbWFuZCwgaWYgaXQgaXMgYSBraWxsIGNvbW1h bmQsIHRvIHRyZWF0IHRoZSBraWxsIGFzCnBhcnQgb2YgdGhlIHNlcXVlbmNlIG9mIHByZXZpb3Vz IGtpbGxzLiAgQXMgdXN1YWwsIHRoZSBraWxsIGlzIGFwcGVuZGVkCnRvIHRoZSBwcmV2aW91cyBr aWxsZWQgdGV4dCBpZiB0aGUgY29tbWFuZCBraWxscyBmb3J3YXJkLCBhbmQgcHJlcGVuZGVkCmlm IHRoZSBjb21tYW5kIGtpbGxzIGJhY2t3YXJkLiAgSW4gdGhpcyB3YXksIHlvdSBjYW4ga2lsbCBz ZXZlcmFsCnNlcGFyYXRlZCBwaWVjZXMgb2YgdGV4dCBhbmQgYWNjdW11bGF0ZSB0aGVtIHRvIGJl IHlhbmtlZCBiYWNrIGluIG9uZQpwbGFjZS4KCiAgIEEga2lsbCBjb21tYW5kIGZvbGxvd2luZyDi gJhNLXfigJkgKOKAmGtpbGwtcmluZy1zYXZl4oCZKSBkb2VzIG5vdCBhcHBlbmQgdG8KdGhlIHRl eHQgdGhhdCDigJhNLXfigJkgY29waWVkIGludG8gdGhlIGtpbGwgcmluZy4KCgoxMi4zIOKAnEN1 dCBhbmQgUGFzdGXigJ0gT3BlcmF0aW9ucyBvbiBHcmFwaGljYWwgRGlzcGxheXMKCkluIG1vc3Qg Z3JhcGhpY2FsIGRlc2t0b3AgZW52aXJvbm1lbnRzLCB5b3UgY2FuIHRyYW5zZmVyIGRhdGEgKHVz dWFsbHkKdGV4dCkgYmV0d2VlbiBkaWZmZXJlbnQgYXBwbGljYXRpb25zIHVzaW5nIGEgc3lzdGVt IGZhY2lsaXR5IGNhbGxlZCB0aGUKImNsaXBib2FyZCIuICBPbiBYLCB0d28gb3RoZXIgc2ltaWxh ciBmYWNpbGl0aWVzIGFyZSBhdmFpbGFibGU6IHRoZQpwcmltYXJ5IHNlbGVjdGlvbiBhbmQgdGhl IHNlY29uZGFyeSBzZWxlY3Rpb24uICBXaGVuIEVtYWNzIGlzIHJ1biBvbiBhCmdyYXBoaWNhbCBk aXNwbGF5LCBpdHMga2lsbCBhbmQgeWFuayBjb21tYW5kcyBpbnRlZ3JhdGUgd2l0aCB0aGVzZQpm YWNpbGl0aWVzLCBzbyB0aGF0IHlvdSBjYW4gZWFzaWx5IHRyYW5zZmVyIHRleHQgYmV0d2VlbiBF bWFjcyBhbmQgb3RoZXIKZ3JhcGhpY2FsIGFwcGxpY2F0aW9ucy4KCiAgIEJ5IGRlZmF1bHQsIEVt YWNzIHVzZXMgVVRGLTggYXMgdGhlIGNvZGluZyBzeXN0ZW0gZm9yIGludGVyLXByb2dyYW0KdGV4 dCB0cmFuc2ZlcnMuICBJZiB5b3UgZmluZCB0aGF0IHRoZSBwYXN0ZWQgdGV4dCBpcyBub3Qgd2hh dCB5b3UKZXhwZWN0ZWQsIHlvdSBjYW4gc3BlY2lmeSBhbm90aGVyIGNvZGluZyBzeXN0ZW0gYnkg dHlwaW5nIOKAmEMteCA8UkVUPiB44oCZCm9yIOKAmEMteCA8UkVUPiBY4oCZLiAgWW91IGNhbiBh bHNvIHJlcXVlc3QgYSBkaWZmZXJlbnQgZGF0YSB0eXBlIGJ5CmN1c3RvbWl6aW5nIOKAmHgtc2Vs ZWN0LXJlcXVlc3QtdHlwZeKAmS4gICpOb3RlIENvbW11bmljYXRpb24gQ29kaW5nOjouCgorIE1l bnU6CgogIC0gQ2xpcGJvYXJkOjogICAgICAgICAgIEhvdyBFbWFjcyB1c2VzIHRoZSBzeXN0ZW0g Y2xpcGJvYXJkLgogIC0gUHJpbWFyeSBTZWxlY3Rpb246OiAgIFRoZSB0ZW1wb3JhcmlseSBzZWxl Y3RlZCB0ZXh0IHNlbGVjdGlvbi4KICAtIFNlY29uZGFyeSBTZWxlY3Rpb246OiBDdXR0aW5nIHdp dGhvdXQgYWx0ZXJpbmcgcG9pbnQgYW5kIG1hcmsuCgoKKioqIDEyLjMuMSBVc2luZyB0aGUgQ2xp cGJvYXJkCgpUaGUgImNsaXBib2FyZCIgaXMgdGhlIGZhY2lsaXR5IHRoYXQgbW9zdCBncmFwaGlj YWwgYXBwbGljYXRpb25zIHVzZSBmb3IK4oCcY3V0dGluZyBhbmQgcGFzdGluZ+KAnS4gIFdoZW4g dGhlIGNsaXBib2FyZCBleGlzdHMsIHRoZSBraWxsIGFuZCB5YW5rCmNvbW1hbmRzIGluIEVtYWNz IG1ha2UgdXNlIG9mIGl0LgoKICAgV2hlbiB5b3Uga2lsbCBzb21lIHRleHQgd2l0aCBhIGNvbW1h bmQgc3VjaCBhcyDigJhDLXfigJkgKOKAmGtpbGwtcmVnaW9u4oCZKSwKb3IgY29weSBpdCB0byB0 aGUga2lsbCByaW5nIHdpdGggYSBjb21tYW5kIHN1Y2ggYXMg4oCYTS134oCZCijigJhraWxsLXJp bmctc2F2ZeKAmSksIHRoYXQgdGV4dCBpcyBhbHNvIHB1dCBpbiB0aGUgY2xpcGJvYXJkLgoKICAg V2hlbiBhbiBFbWFjcyBraWxsIGNvbW1hbmQgcHV0cyB0ZXh0IGluIHRoZSBjbGlwYm9hcmQsIHRo ZSBleGlzdGluZwpjbGlwYm9hcmQgY29udGVudHMgYXJlIG5vcm1hbGx5IGxvc3QuICBPcHRpb25h bGx5LCB5b3UgY2FuIGNoYW5nZQrigJhzYXZlLWludGVycHJvZ3JhbS1wYXN0ZS1iZWZvcmUta2ls bOKAmSB0byDigJh04oCZLiAgVGhlbiBFbWFjcyB3aWxsIGZpcnN0CnNhdmUgdGhlIGNsaXBib2Fy ZCB0byBpdHMga2lsbCByaW5nLCBwcmV2ZW50aW5nIHlvdSBmcm9tIGxvc2luZyB0aGUgb2xkCmNs aXBib2FyZCBkYXRh4oCUYXQgdGhlIHJpc2sgb2YgaGlnaCBtZW1vcnkgY29uc3VtcHRpb24gaWYg dGhhdCBkYXRhIHR1cm5zCm91dCB0byBiZSBsYXJnZS4KCiAgIFlhbmsgY29tbWFuZHMsIHN1Y2gg YXMg4oCYQy154oCZICjigJh5YW5r4oCZKSwgYWxzbyB1c2UgdGhlIGNsaXBib2FyZC4gIElmCmFu b3RoZXIgYXBwbGljYXRpb24g4oCcb3duc+KAnSB0aGUgY2xpcGJvYXJk4oCUaS5lLiwgaWYgeW91 IGN1dCBvciBjb3BpZWQgdGV4dAp0aGVyZSBtb3JlIHJlY2VudGx5IHRoYW4geW91ciBsYXN0IGtp bGwgY29tbWFuZCBpbiBFbWFjc+KAlHRoZW4gRW1hY3MKeWFua3MgZnJvbSB0aGUgY2xpcGJvYXJk IGluc3RlYWQgb2YgdGhlIGtpbGwgcmluZy4KCiAgIE5vcm1hbGx5LCByb3RhdGluZyB0aGUga2ls bCByaW5nIHdpdGgg4oCYTS154oCZICjigJh5YW5rLXBvcOKAmSkgZG9lcyBub3QKYWx0ZXIgdGhl IGNsaXBib2FyZC4gIEhvd2V2ZXIsIGlmIHlvdSBjaGFuZ2Ug4oCYeWFuay1wb3AtY2hhbmdlLXNl bGVjdGlvbuKAmQp0byDigJh04oCZLCB0aGVuIOKAmE0teeKAmSBzYXZlcyB0aGUgbmV3IHlhbmsg dG8gdGhlIGNsaXBib2FyZC4KCiAgIFRvIHByZXZlbnQga2lsbCBhbmQgeWFuayBjb21tYW5kcyBm cm9tIGFjY2Vzc2luZyB0aGUgY2xpcGJvYXJkLApjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmHNlbGVj dC1lbmFibGUtY2xpcGJvYXJk4oCZIHRvIOKAmG5pbOKAmS4KCiAgIE1hbnkgWCBkZXNrdG9wIGVu dmlyb25tZW50cyBzdXBwb3J0IGEgZmVhdHVyZSBjYWxsZWQgdGhlICJjbGlwYm9hcmQKbWFuYWdl ciIuICBJZiB5b3UgZXhpdCBFbWFjcyB3aGlsZSBpdCBpcyB0aGUgY3VycmVudCDigJxvd25lcuKA nSBvZiB0aGUKY2xpcGJvYXJkIGRhdGEsIGFuZCB0aGVyZSBpcyBhIGNsaXBib2FyZCBtYW5hZ2Vy IHJ1bm5pbmcsIEVtYWNzCnRyYW5zZmVycyB0aGUgY2xpcGJvYXJkIGRhdGEgdG8gdGhlIGNsaXBi b2FyZCBtYW5hZ2VyIHNvIHRoYXQgaXQgaXMgbm90Cmxvc3QuICBJbiBzb21lIGNpcmN1bXN0YW5j ZXMsIHRoaXMgbWF5IGNhdXNlIGEgZGVsYXkgd2hlbiBleGl0aW5nIEVtYWNzOwppZiB5b3Ugd2lz aCB0byBwcmV2ZW50IEVtYWNzIGZyb20gdHJhbnNmZXJyaW5nIGRhdGEgdG8gdGhlIGNsaXBib2Fy ZAptYW5hZ2VyLCBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmHgtc2VsZWN0LWVuYWJsZS1jbGlwYm9h cmQtbWFuYWdlcuKAmSB0bwrigJhuaWzigJkuCgogICBTaW5jZSBzdHJpbmdzIGNvbnRhaW5pbmcg TlVMIGJ5dGVzIGFyZSB1c3VhbGx5IHRydW5jYXRlZCB3aGVuIHBhc3NlZAp0aHJvdWdoIHRoZSBj bGlwYm9hcmQsIEVtYWNzIHJlcGxhY2VzIHN1Y2ggY2hhcmFjdGVycyB3aXRoIOKAnFww4oCdIGJl Zm9yZQp0cmFuc2ZlcnJpbmcgdGhlbSB0byB0aGUgc3lzdGVt4oCZcyBjbGlwYm9hcmQuCgogICBQ cmlvciB0byBFbWFjcyAyNCwgdGhlIGtpbGwgYW5kIHlhbmsgY29tbWFuZHMgdXNlZCB0aGUgcHJp bWFyeQpzZWxlY3Rpb24gKCpub3RlIFByaW1hcnkgU2VsZWN0aW9uOjopLCBub3QgdGhlIGNsaXBi b2FyZC4gIElmIHlvdSBwcmVmZXIKdGhpcyBiZWhhdmlvciwgY2hhbmdlIOKAmHNlbGVjdC1lbmFi bGUtY2xpcGJvYXJk4oCZIHRvIOKAmG5pbOKAmSwK4oCYc2VsZWN0LWVuYWJsZS1wcmltYXJ54oCZ IHRvIOKAmHTigJksIGFuZCDigJhtb3VzZS1kcmFnLWNvcHktcmVnaW9u4oCZIHRvIOKAmHTigJku ICBJbgp0aGlzIGNhc2UsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgdG8gYWN0 IGV4cGxpY2l0bHkgb24gdGhlCmNsaXBib2FyZDog4oCYY2xpcGJvYXJkLWtpbGwtcmVnaW9u4oCZ IGtpbGxzIHRoZSByZWdpb24gYW5kIHNhdmVzIGl0IHRvIHRoZQpjbGlwYm9hcmQ7IOKAmGNsaXBi b2FyZC1raWxsLXJpbmctc2F2ZeKAmSBjb3BpZXMgdGhlIHJlZ2lvbiB0byB0aGUga2lsbCByaW5n CmFuZCBzYXZlcyBpdCB0byB0aGUgY2xpcGJvYXJkOyBhbmQg4oCYY2xpcGJvYXJkLXlhbmvigJkg eWFua3MgdGhlIGNvbnRlbnRzCm9mIHRoZSBjbGlwYm9hcmQgYXQgcG9pbnQuCgoKKioqIDEyLjMu MiBDdXQgYW5kIFBhc3RlIHdpdGggT3RoZXIgV2luZG93IEFwcGxpY2F0aW9ucwoKVW5kZXIgdGhl IFggV2luZG93IFN5c3RlbSwgdGhlcmUgZXhpc3RzIGEgInByaW1hcnkgc2VsZWN0aW9uIiBjb250 YWluaW5nCnRoZSBsYXN0IHN0cmV0Y2ggb2YgdGV4dCBzZWxlY3RlZCBpbiBhbiBYIGFwcGxpY2F0 aW9uICh1c3VhbGx5IGJ5CmRyYWdnaW5nIHRoZSBtb3VzZSkuICBUeXBpY2FsbHksIHRoaXMgdGV4 dCBjYW4gYmUgaW5zZXJ0ZWQgaW50byBvdGhlciBYCmFwcGxpY2F0aW9ucyBieSDigJhtb3VzZS0y 4oCZIGNsaWNrcy4gIFRoZSBwcmltYXJ5IHNlbGVjdGlvbiBpcyBzZXBhcmF0ZQpmcm9tIHRoZSBj bGlwYm9hcmQuICBJdHMgY29udGVudHMgYXJlIG1vcmUgZnJhZ2lsZTsgdGhleSBhcmUgb3Zlcndy aXR0ZW4KZWFjaCB0aW1lIHlvdSBzZWxlY3QgdGV4dCB3aXRoIHRoZSBtb3VzZSwgd2hlcmVhcyB0 aGUgY2xpcGJvYXJkIGlzIG9ubHkKb3ZlcndyaXR0ZW4gYnkgZXhwbGljaXQgY3V0IG9yIGNvcHkg Y29tbWFuZHMuCgogICBVbmRlciBYLCB3aGVuZXZlciB0aGUgcmVnaW9uIGlzIGFjdGl2ZSAoKm5v dGUgTWFyazo6KSwgdGhlIHRleHQgaW4KdGhlIHJlZ2lvbiBpcyBzYXZlZCBpbiB0aGUgcHJpbWFy eSBzZWxlY3Rpb24uICBUaGlzIGFwcGxpZXMgcmVnYXJkbGVzcwpvZiB3aGV0aGVyIHRoZSByZWdp b24gd2FzIG1hZGUgYnkgZHJhZ2dpbmcgb3IgY2xpY2tpbmcgdGhlIG1vdXNlICgqbm90ZQpNb3Vz ZSBDb21tYW5kczo6KSwgb3IgYnkga2V5Ym9hcmQgY29tbWFuZHMgKGUuZy4sIGJ5IHR5cGluZyDi gJhDLTxTUEM+4oCZCmFuZCBtb3ZpbmcgcG9pbnQ7ICpub3RlIFNldHRpbmcgTWFyazo6KS4KCiAg IElmIHlvdSBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmHNlbGVjdC1hY3RpdmUtcmVnaW9uc+KAmSB0 byDigJhvbmx54oCZLCBFbWFjcwpzYXZlcyBvbmx5IHRlbXBvcmFyaWx5IGFjdGl2ZSByZWdpb25z IHRvIHRoZSBwcmltYXJ5IHNlbGVjdGlvbiwgaS5lLiwKdGhvc2UgbWFkZSB3aXRoIHRoZSBtb3Vz ZSBvciB3aXRoIHNoaWZ0IHNlbGVjdGlvbiAoKm5vdGUgU2hpZnQKU2VsZWN0aW9uOjopLiAgSWYg eW91IGNoYW5nZSDigJhzZWxlY3QtYWN0aXZlLXJlZ2lvbnPigJkgdG8g4oCYbmls4oCZLCBFbWFj cwphdm9pZHMgc2F2aW5nIGFjdGl2ZSByZWdpb25zIHRvIHRoZSBwcmltYXJ5IHNlbGVjdGlvbiBl bnRpcmVseS4KCiAgIFRvIGluc2VydCB0aGUgcHJpbWFyeSBzZWxlY3Rpb24gaW50byBhbiBFbWFj cyBidWZmZXIsIGNsaWNrIOKAmG1vdXNlLTLigJkKKOKAmG1vdXNlLXlhbmstcHJpbWFyeeKAmSkg d2hlcmUgeW91IHdhbnQgdG8gaW5zZXJ0IGl0LiAgKk5vdGUgTW91c2UKQ29tbWFuZHM6Oi4KCiAg IE1TLVdpbmRvd3MgcHJvdmlkZXMgbm8gcHJpbWFyeSBzZWxlY3Rpb24sIGJ1dCBFbWFjcyBlbXVs YXRlcyBpdAp3aXRoaW4gYSBzaW5nbGUgRW1hY3Mgc2Vzc2lvbiBieSBzdG9yaW5nIHRoZSBzZWxl Y3RlZCB0ZXh0IGludGVybmFsbHkuClRoZXJlZm9yZSwgYWxsIHRoZSBmZWF0dXJlcyBhbmQgY29t bWFuZHMgcmVsYXRlZCB0byB0aGUgcHJpbWFyeQpzZWxlY3Rpb24gd29yayBvbiBXaW5kb3dzIGFz IHRoZXkgZG8gb24gWCwgZm9yIGN1dHRpbmcgYW5kIHBhc3RpbmcKd2l0aGluIHRoZSBzYW1lIHNl c3Npb24sIGJ1dCBub3QgYWNyb3NzIEVtYWNzIHNlc3Npb25zIG9yIHdpdGggb3RoZXIKYXBwbGlj YXRpb25zLgoKCioqKiAxMi4zLjMgU2Vjb25kYXJ5IFNlbGVjdGlvbgoKSW4gYWRkaXRpb24gdG8g dGhlIHByaW1hcnkgc2VsZWN0aW9uLCB0aGUgWCBXaW5kb3cgU3lzdGVtIHByb3ZpZGVzIGEKc2Vj b25kIHNpbWlsYXIgZmFjaWxpdHkga25vd24gYXMgdGhlICJzZWNvbmRhcnkgc2VsZWN0aW9uIi4g IE5vd2FkYXlzLApmZXcgWCBhcHBsaWNhdGlvbnMgbWFrZSB1c2Ugb2YgdGhlIHNlY29uZGFyeSBz ZWxlY3Rpb24sIGJ1dCB5b3UgY2FuCmFjY2VzcyBpdCB1c2luZyB0aGUgZm9sbG93aW5nIEVtYWNz IGNvbW1hbmRzOgoK4oCYTS1EcmFnLW1vdXNlLTHigJkKICAgICBTZXQgdGhlIHNlY29uZGFyeSBz ZWxlY3Rpb24sIHdpdGggb25lIGVuZCBhdCB0aGUgcGxhY2Ugd2hlcmUgeW91CiAgICAgcHJlc3Mg ZG93biB0aGUgYnV0dG9uLCBhbmQgdGhlIG90aGVyIGVuZCBhdCB0aGUgcGxhY2Ugd2hlcmUgeW91 CiAgICAgcmVsZWFzZSBpdCAo4oCYbW91c2Utc2V0LXNlY29uZGFyeeKAmSkuICBUaGUgc2VsZWN0 ZWQgdGV4dCBpcwogICAgIGhpZ2hsaWdodGVkLCB1c2luZyB0aGUg4oCYc2Vjb25kYXJ5LXNlbGVj dGlvbuKAmSBmYWNlLCBhcyB5b3UgZHJhZy4KICAgICBUaGUgd2luZG93IHNjcm9sbHMgYXV0b21h dGljYWxseSBpZiB5b3UgZHJhZyB0aGUgbW91c2Ugb2ZmIHRoZSB0b3AKICAgICBvciBib3R0b20g b2YgdGhlIHdpbmRvdywganVzdCBsaWtlIOKAmG1vdXNlLXNldC1yZWdpb27igJkgKCpub3RlIE1v dXNlCiAgICAgQ29tbWFuZHM6OikuCgogICAgIFRoaXMgY29tbWFuZCBkb2VzIG5vdCBhbHRlciB0 aGUga2lsbCByaW5nLgoK4oCYTS1tb3VzZS0x4oCZCiAgICAgU2V0IG9uZSBlbmRwb2ludCBmb3Ig dGhlICJzZWNvbmRhcnkgc2VsZWN0aW9uIgogICAgICjigJhtb3VzZS1zdGFydC1zZWNvbmRhcnni gJkpLgoK4oCYTS1tb3VzZS0z4oCZCiAgICAgU2V0IHRoZSBzZWNvbmRhcnkgc2VsZWN0aW9uLCB3 aXRoIG9uZSBlbmQgYXQgdGhlIHBvc2l0aW9uIGNsaWNrZWQKICAgICBhbmQgdGhlIG90aGVyIGF0 IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgd2l0aCDigJhNLW1vdXNlLTHigJkKICAgICAo4oCYbW91 c2Utc2Vjb25kYXJ5LXNhdmUtdGhlbi1raWxs4oCZKS4gIFRoaXMgYWxzbyBwdXRzIHRoZSBzZWxl Y3RlZAogICAgIHRleHQgaW4gdGhlIGtpbGwgcmluZy4gIEEgc2Vjb25kIOKAmE0tbW91c2UtM+KA mSBhdCB0aGUgc2FtZSBwbGFjZQogICAgIGtpbGxzIHRoZSBzZWNvbmRhcnkgc2VsZWN0aW9uIGp1 c3QgbWFkZS4KCuKAmE0tbW91c2UtMuKAmQogICAgIEluc2VydCB0aGUgc2Vjb25kYXJ5IHNlbGVj dGlvbiB3aGVyZSB5b3UgY2xpY2ssIHBsYWNpbmcgcG9pbnQgYXQKICAgICB0aGUgZW5kIG9mIHRo ZSB5YW5rZWQgdGV4dCAo4oCYbW91c2UteWFuay1zZWNvbmRhcnnigJkpLgoKICAgRG91YmxlIG9y IHRyaXBsZSBjbGlja2luZyBvZiDigJhNLW1vdXNlLTHigJkgb3BlcmF0ZXMgb24gd29yZHMgYW5k IGxpbmVzLAptdWNoIGxpa2Ug4oCYbW91c2UtMeKAmS4KCiAgIElmIOKAmG1vdXNlLXlhbmstYXQt cG9pbnTigJkgaXMgbm9uLeKAmG5pbOKAmSwg4oCYTS1tb3VzZS0y4oCZIHlhbmtzIGF0IHBvaW50 LgpUaGVuIGl0IGRvZXMgbm90IG1hdHRlciBwcmVjaXNlbHkgd2hlcmUgeW91IGNsaWNrLCBvciBl dmVuIHdoaWNoIG9mIHRoZQpmcmFtZeKAmXMgd2luZG93cyB5b3UgY2xpY2sgb24uICAqTm90ZSBN b3VzZSBDb21tYW5kczo6LgoKCioqIDEyLjQgQWNjdW11bGF0aW5nIFRleHQKClVzdWFsbHkgd2Ug Y29weSBvciBtb3ZlIHRleHQgYnkga2lsbGluZyBpdCBhbmQgeWFua2luZyBpdCwgYnV0IHRoZXJl IGFyZQpvdGhlciBjb252ZW5pZW50IG1ldGhvZHMgZm9yIGNvcHlpbmcgb25lIGJsb2NrIG9mIHRl eHQgaW4gbWFueSBwbGFjZXMsCm9yIGZvciBjb3B5aW5nIG1hbnkgc2NhdHRlcmVkIGJsb2NrcyBv ZiB0ZXh0IGludG8gb25lIHBsYWNlLiAgSGVyZSB3ZQpkZXNjcmliZSB0aGUgY29tbWFuZHMgdG8g YWNjdW11bGF0ZSBzY2F0dGVyZWQgcGllY2VzIG9mIHRleHQgaW50byBhCmJ1ZmZlciBvciBpbnRv IGEgZmlsZS4KCuKAmE0teCBhcHBlbmQtdG8tYnVmZmVy4oCZCiAgICAgQXBwZW5kIHJlZ2lvbiB0 byB0aGUgY29udGVudHMgb2YgYSBzcGVjaWZpZWQgYnVmZmVyLgrigJhNLXggcHJlcGVuZC10by1i dWZmZXLigJkKICAgICBQcmVwZW5kIHJlZ2lvbiB0byB0aGUgY29udGVudHMgb2YgYSBzcGVjaWZp ZWQgYnVmZmVyLgrigJhNLXggY29weS10by1idWZmZXLigJkKICAgICBDb3B5IHJlZ2lvbiBpbnRv IGEgc3BlY2lmaWVkIGJ1ZmZlciwgZGVsZXRpbmcgdGhhdCBidWZmZXLigJlzIG9sZAogICAgIGNv bnRlbnRzLgrigJhNLXggaW5zZXJ0LWJ1ZmZlcuKAmQogICAgIEluc2VydCB0aGUgY29udGVudHMg b2YgYSBzcGVjaWZpZWQgYnVmZmVyIGludG8gY3VycmVudCBidWZmZXIgYXQKICAgICBwb2ludC4K 4oCYTS14IGFwcGVuZC10by1maWxl4oCZCiAgICAgQXBwZW5kIHJlZ2lvbiB0byB0aGUgY29udGVu dHMgb2YgYSBzcGVjaWZpZWQgZmlsZSwgYXQgdGhlIGVuZC4KCiAgIFRvIGFjY3VtdWxhdGUgdGV4 dCBpbnRvIGEgYnVmZmVyLCB1c2Ug4oCYTS14IGFwcGVuZC10by1idWZmZXLigJkuICBUaGlzCnJl YWRzIGEgYnVmZmVyIG5hbWUsIHRoZW4gaW5zZXJ0cyBhIGNvcHkgb2YgdGhlIHJlZ2lvbiBpbnRv IHRoZSBidWZmZXIKc3BlY2lmaWVkLiAgSWYgeW91IHNwZWNpZnkgYSBub25leGlzdGVudCBidWZm ZXIsIOKAmGFwcGVuZC10by1idWZmZXLigJkKY3JlYXRlcyB0aGUgYnVmZmVyLiAgVGhlIHRleHQg aXMgaW5zZXJ0ZWQgd2hlcmV2ZXIgcG9pbnQgaXMgaW4gdGhhdApidWZmZXIuICBJZiB5b3UgaGF2 ZSBiZWVuIHVzaW5nIHRoZSBidWZmZXIgZm9yIGVkaXRpbmcsIHRoZSBjb3BpZWQgdGV4dApnb2Vz IGludG8gdGhlIG1pZGRsZSBvZiB0aGUgdGV4dCBvZiB0aGUgYnVmZmVyLCBzdGFydGluZyBmcm9t IHdoZXJldmVyCnBvaW50IGhhcHBlbnMgdG8gYmUgYXQgdGhhdCBtb21lbnQuCgogICBQb2ludCBp biB0aGF0IGJ1ZmZlciBpcyBsZWZ0IGF0IHRoZSBlbmQgb2YgdGhlIGNvcGllZCB0ZXh0LCBzbwpz dWNjZXNzaXZlIHVzZXMgb2Yg4oCYYXBwZW5kLXRvLWJ1ZmZlcuKAmSBhY2N1bXVsYXRlIHRoZSB0 ZXh0IGluIHRoZQpzcGVjaWZpZWQgYnVmZmVyIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZXkgd2Vy ZSBjb3BpZWQuICBTdHJpY3RseQpzcGVha2luZywg4oCYYXBwZW5kLXRvLWJ1ZmZlcuKAmSBkb2Vz IG5vdCBhbHdheXMgYXBwZW5kIHRvIHRoZSB0ZXh0IGFscmVhZHkKaW4gdGhlIGJ1ZmZlcuKAlGl0 IGFwcGVuZHMgb25seSBpZiBwb2ludCBpbiB0aGF0IGJ1ZmZlciBpcyBhdCB0aGUgZW5kLgpIb3dl dmVyLCBpZiDigJhhcHBlbmQtdG8tYnVmZmVy4oCZIGlzIHRoZSBvbmx5IGNvbW1hbmQgeW91IHVz ZSB0byBhbHRlciBhCmJ1ZmZlciwgdGhlbiBwb2ludCBpcyBhbHdheXMgYXQgdGhlIGVuZC4KCiAg IOKAmE0teCBwcmVwZW5kLXRvLWJ1ZmZlcuKAmSBpcyBqdXN0IGxpa2Ug4oCYYXBwZW5kLXRvLWJ1 ZmZlcuKAmSBleGNlcHQgdGhhdApwb2ludCBpbiB0aGUgb3RoZXIgYnVmZmVyIGlzIGxlZnQgYmVm b3JlIHRoZSBjb3BpZWQgdGV4dCwgc28gc3VjY2Vzc2l2ZQp1c2VzIG9mIHRoaXMgY29tbWFuZCBh ZGQgdGV4dCBpbiByZXZlcnNlIG9yZGVyLiAg4oCYTS14IGNvcHktdG8tYnVmZmVy4oCZIGlzCnNp bWlsYXIsIGV4Y2VwdCB0aGF0IGFueSBleGlzdGluZyB0ZXh0IGluIHRoZSBvdGhlciBidWZmZXIg aXMgZGVsZXRlZCwKc28gdGhlIGJ1ZmZlciBpcyBsZWZ0IGNvbnRhaW5pbmcganVzdCB0aGUgdGV4 dCBuZXdseSBjb3BpZWQgaW50byBpdC4KCiAgIFRoZSBjb21tYW5kIOKAmE0teCBpbnNlcnQtYnVm ZmVy4oCZIGNhbiBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZQphY2N1bXVsYXRlZCB0ZXh0IGZyb20g YW5vdGhlciBidWZmZXIuICBUaGlzIHByb21wdHMgZm9yIHRoZSBuYW1lIG9mIGEKYnVmZmVyLCBh bmQgaW5zZXJ0cyBhIGNvcHkgb2YgYWxsIHRoZSB0ZXh0IGluIHRoYXQgYnVmZmVyIGludG8gdGhl CmN1cnJlbnQgYnVmZmVyIGF0IHBvaW50LCBsZWF2aW5nIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcg b2YgdGhlIGluc2VydGVkCnRleHQuICBJdCBhbHNvIGFkZHMgdGhlIHBvc2l0aW9uIG9mIHRoZSBl bmQgb2YgdGhlIGluc2VydGVkIHRleHQgdG8gdGhlCm1hcmsgcmluZywgd2l0aG91dCBhY3RpdmF0 aW5nIHRoZSBtYXJrLiAgKk5vdGUgQnVmZmVyczo6LCBmb3IgYmFja2dyb3VuZAppbmZvcm1hdGlv biBvbiBidWZmZXJzLgoKICAgSW5zdGVhZCBvZiBhY2N1bXVsYXRpbmcgdGV4dCBpbiBhIGJ1ZmZl ciwgeW91IGNhbiBhcHBlbmQgdGV4dApkaXJlY3RseSBpbnRvIGEgZmlsZSB3aXRoIOKAmE0teCBh cHBlbmQtdG8tZmlsZeKAmS4gIFRoaXMgcHJvbXB0cyBmb3IgYQpmaWxlbmFtZSwgYW5kIGFkZHMg dGhlIHRleHQgb2YgdGhlIHJlZ2lvbiB0byB0aGUgZW5kIG9mIHRoZSBzcGVjaWZpZWQKZmlsZS4g IFRoZSBmaWxlIGlzIGNoYW5nZWQgaW1tZWRpYXRlbHkgb24gZGlzay4KCiAgIFlvdSBzaG91bGQg dXNlIOKAmGFwcGVuZC10by1maWxl4oCZIG9ubHkgd2l0aCBmaWxlcyB0aGF0IGFyZSBfbm90XyBi ZWluZwp2aXNpdGVkIGluIEVtYWNzLiAgVXNpbmcgaXQgb24gYSBmaWxlIHRoYXQgeW91IGFyZSBl ZGl0aW5nIGluIEVtYWNzCndvdWxkIGNoYW5nZSB0aGUgZmlsZSBiZWhpbmQgRW1hY3PigJlzIGJh Y2ssIHdoaWNoIGNhbiBsZWFkIHRvIGxvc2luZyBzb21lCm9mIHlvdXIgZWRpdGluZy4KCiAgIEFu b3RoZXIgd2F5IHRvIG1vdmUgdGV4dCBhcm91bmQgaXMgdG8gc3RvcmUgaXQgaW4gYSByZWdpc3Rl ci4gICpOb3RlClJlZ2lzdGVyczo6LgoKCioqIDEyLjUgUmVjdGFuZ2xlcwoKIlJlY3RhbmdsZSIg Y29tbWFuZHMgb3BlcmF0ZSBvbiByZWN0YW5ndWxhciBhcmVhcyBvZiB0aGUgdGV4dDogYWxsIHRo ZQpjaGFyYWN0ZXJzIGJldHdlZW4gYSBjZXJ0YWluIHBhaXIgb2YgY29sdW1ucywgaW4gYSBjZXJ0 YWluIHJhbmdlIG9mCmxpbmVzLiAgRW1hY3MgaGFzIGNvbW1hbmRzIHRvIGtpbGwgcmVjdGFuZ2xl cywgeWFuayBraWxsZWQgcmVjdGFuZ2xlcywKY2xlYXIgdGhlbSBvdXQsIGZpbGwgdGhlbSB3aXRo IGJsYW5rcyBvciB0ZXh0LCBvciBkZWxldGUgdGhlbS4KUmVjdGFuZ2xlIGNvbW1hbmRzIGFyZSB1 c2VmdWwgd2l0aCB0ZXh0IGluIG11bHRpY29sdW1uIGZvcm1hdHMsIGFuZCBmb3IKY2hhbmdpbmcg dGV4dCBpbnRvIG9yIG91dCBvZiBzdWNoIGZvcm1hdHMuCgogICBUbyBzcGVjaWZ5IGEgcmVjdGFu Z2xlIGZvciBhIGNvbW1hbmQgdG8gd29yayBvbiwgc2V0IHRoZSBtYXJrIGF0IG9uZQpjb3JuZXIg YW5kIHBvaW50IGF0IHRoZSBvcHBvc2l0ZSBjb3JuZXIuICBUaGUgcmVjdGFuZ2xlIHRodXMgc3Bl Y2lmaWVkCmlzIGNhbGxlZCB0aGUgInJlZ2lvbi1yZWN0YW5nbGUiLiAgSWYgcG9pbnQgYW5kIHRo ZSBtYXJrIGFyZSBpbiB0aGUgc2FtZQpjb2x1bW4sIHRoZSByZWdpb24tcmVjdGFuZ2xlIGlzIGVt cHR5LiAgSWYgdGhleSBhcmUgaW4gdGhlIHNhbWUgbGluZSwKdGhlIHJlZ2lvbi1yZWN0YW5nbGUg aXMgb25lIGxpbmUgaGlnaC4KCiAgIFRoZSByZWdpb24tcmVjdGFuZ2xlIGlzIGNvbnRyb2xsZWQg aW4gbXVjaCB0aGUgc2FtZSB3YXkgYXMgdGhlIHJlZ2lvbgppcyBjb250cm9sbGVkLiAgQnV0IHJl bWVtYmVyIHRoYXQgYSBnaXZlbiBjb21iaW5hdGlvbiBvZiBwb2ludCBhbmQgbWFyawp2YWx1ZXMg Y2FuIGJlIGludGVycHJldGVkIGVpdGhlciBhcyBhIHJlZ2lvbiBvciBhcyBhIHJlY3RhbmdsZSwK ZGVwZW5kaW5nIG9uIHRoZSBjb21tYW5kIHRoYXQgdXNlcyB0aGVtLgoK4oCYQy14IHIga+KAmQog ICAgIEtpbGwgdGhlIHRleHQgb2YgdGhlIHJlZ2lvbi1yZWN0YW5nbGUsIHNhdmluZyBpdHMgY29u dGVudHMgYXMgdGhlCiAgICAgbGFzdCBraWxsZWQgcmVjdGFuZ2xlICjigJhraWxsLXJlY3Rhbmds ZeKAmSkuCuKAmEMteCByIE0td+KAmQogICAgIFNhdmUgdGhlIHRleHQgb2YgdGhlIHJlZ2lvbi1y ZWN0YW5nbGUgYXMgdGhlIGxhc3Qga2lsbGVkIHJlY3RhbmdsZQogICAgICjigJhjb3B5LXJlY3Rh bmdsZS1hcy1raWxs4oCZKS4K4oCYQy14IHIgZOKAmQogICAgIERlbGV0ZSB0aGUgdGV4dCBvZiB0 aGUgcmVnaW9uLXJlY3RhbmdsZSAo4oCYZGVsZXRlLXJlY3RhbmdsZeKAmSkuCuKAmEMteCByIHni gJkKICAgICBZYW5rIHRoZSBsYXN0IGtpbGxlZCByZWN0YW5nbGUgd2l0aCBpdHMgdXBwZXIgbGVm dCBjb3JuZXIgYXQgcG9pbnQKICAgICAo4oCYeWFuay1yZWN0YW5nbGXigJkpLgrigJhDLXggciBv 4oCZCiAgICAgSW5zZXJ0IGJsYW5rIHNwYWNlIHRvIGZpbGwgdGhlIHNwYWNlIG9mIHRoZSByZWdp b24tcmVjdGFuZ2xlCiAgICAgKOKAmG9wZW4tcmVjdGFuZ2xl4oCZKS4gIFRoaXMgcHVzaGVzIHRo ZSBwcmV2aW91cyBjb250ZW50cyBvZiB0aGUKICAgICByZWdpb24tcmVjdGFuZ2xlIHRvIHRoZSBy aWdodC4K4oCYQy14IHIgTuKAmQogICAgIEluc2VydCBsaW5lIG51bWJlcnMgYWxvbmcgdGhlIGxl ZnQgZWRnZSBvZiB0aGUgcmVnaW9uLXJlY3RhbmdsZQogICAgICjigJhyZWN0YW5nbGUtbnVtYmVy LWxpbmVz4oCZKS4gIFRoaXMgcHVzaGVzIHRoZSBwcmV2aW91cyBjb250ZW50cyBvZgogICAgIHRo ZSByZWdpb24tcmVjdGFuZ2xlIHRvIHRoZSByaWdodC4K4oCYQy14IHIgY+KAmQogICAgIENsZWFy IHRoZSByZWdpb24tcmVjdGFuZ2xlIGJ5IHJlcGxhY2luZyBhbGwgb2YgaXRzIGNvbnRlbnRzIHdp dGgKICAgICBzcGFjZXMgKOKAmGNsZWFyLXJlY3RhbmdsZeKAmSkuCuKAmE0teCBkZWxldGUtd2hp dGVzcGFjZS1yZWN0YW5nbGXigJkKICAgICBEZWxldGUgd2hpdGVzcGFjZSBpbiBlYWNoIG9mIHRo ZSBsaW5lcyBvbiB0aGUgc3BlY2lmaWVkIHJlY3RhbmdsZSwKICAgICBzdGFydGluZyBmcm9tIHRo ZSBsZWZ0IGVkZ2UgY29sdW1uIG9mIHRoZSByZWN0YW5nbGUuCuKAmEMteCByIHQgU1RSSU5HIDxS RVQ+4oCZCiAgICAgUmVwbGFjZSByZWN0YW5nbGUgY29udGVudHMgd2l0aCBTVFJJTkcgb24gZWFj aCBsaW5lCiAgICAgKOKAmHN0cmluZy1yZWN0YW5nbGXigJkpLgrigJhNLXggc3RyaW5nLWluc2Vy dC1yZWN0YW5nbGUgPFJFVD4gU1RSSU5HIDxSRVQ+4oCZCiAgICAgSW5zZXJ0IFNUUklORyBvbiBl YWNoIGxpbmUgb2YgdGhlIHJlY3RhbmdsZS4K4oCYQy14IDxTUEM+4oCZCiAgICAgVG9nZ2xlIFJl Y3RhbmdsZSBNYXJrIG1vZGUgKOKAmHJlY3RhbmdsZS1tYXJrLW1vZGXigJkpLiAgV2hlbiB0aGlz IG1vZGUKICAgICBpcyBhY3RpdmUsIHRoZSByZWdpb24tcmVjdGFuZ2xlIGlzIGhpZ2hsaWdodGVk IGFuZCBjYW4gYmUKICAgICBzaHJ1bmsvZ3Jvd24sIGFuZCB0aGUgc3RhbmRhcmQga2lsbCBhbmQg eWFuayBjb21tYW5kcyBvcGVyYXRlIG9uCiAgICAgaXQuCgogICBUaGUgcmVjdGFuZ2xlIG9wZXJh dGlvbnMgZmFsbCBpbnRvIHR3byBjbGFzc2VzOiBjb21tYW5kcyB0byBlcmFzZSBvcgppbnNlcnQg cmVjdGFuZ2xlcywgYW5kIGNvbW1hbmRzIHRvIG1ha2UgYmxhbmsgcmVjdGFuZ2xlcy4KCiAgIFRo ZXJlIGFyZSB0d28gd2F5cyB0byBlcmFzZSB0aGUgdGV4dCBpbiBhIHJlY3RhbmdsZTog4oCYQy14 IHIgZOKAmQoo4oCYZGVsZXRlLXJlY3RhbmdsZeKAmSkgdG8gZGVsZXRlIHRoZSB0ZXh0IG91dHJp Z2h0LCBvciDigJhDLXggciBr4oCZCijigJhraWxsLXJlY3RhbmdsZeKAmSkgdG8gcmVtb3ZlIHRo ZSB0ZXh0IGFuZCBzYXZlIGl0IGFzIHRoZSAibGFzdCBraWxsZWQKcmVjdGFuZ2xlIi4gIEluIGJv dGggY2FzZXMsIGVyYXNpbmcgdGhlIHJlZ2lvbi1yZWN0YW5nbGUgaXMgbGlrZSBlcmFzaW5nCnRo ZSBzcGVjaWZpZWQgdGV4dCBvbiBlYWNoIGxpbmUgb2YgdGhlIHJlY3RhbmdsZTsgaWYgdGhlcmUg aXMgYW55CmZvbGxvd2luZyB0ZXh0IG9uIHRoZSBsaW5lLCBpdCBtb3ZlcyBiYWNrd2FyZHMgdG8g ZmlsbCB0aGUgZ2FwLgoKICAgS2lsbGluZyBhIHJlY3RhbmdsZSBpcyBub3Qga2lsbGluZyBpbiB0 aGUgdXN1YWwgc2Vuc2U7IHRoZSByZWN0YW5nbGUKaXMgbm90IHN0b3JlZCBpbiB0aGUga2lsbCBy aW5nLCBidXQgaW4gYSBzcGVjaWFsIHBsYWNlIHRoYXQgb25seSByZWNvcmRzCnRoZSBtb3N0IHJl Y2VudCByZWN0YW5nbGUga2lsbGVkLiAgVGhpcyBpcyBiZWNhdXNlIHlhbmtpbmcgYSByZWN0YW5n bGUKaXMgc28gZGlmZmVyZW50IGZyb20geWFua2luZyBsaW5lYXIgdGV4dCB0aGF0IGRpZmZlcmVu dCB5YW5rIGNvbW1hbmRzCmhhdmUgdG8gYmUgdXNlZC4gIFlhbmstcG9wcGluZyBpcyBub3QgZGVm aW5lZCBmb3IgcmVjdGFuZ2xlcy4KCiAgIOKAmEMteCByIE0td+KAmSAo4oCYY29weS1yZWN0YW5n bGUtYXMta2lsbOKAmSkgaXMgdGhlIGVxdWl2YWxlbnQgb2Yg4oCYTS134oCZIGZvcgpyZWN0YW5n bGVzOiBpdCByZWNvcmRzIHRoZSByZWN0YW5nbGUgYXMgdGhlIGxhc3Qga2lsbGVkIHJlY3Rhbmds ZSwKd2l0aG91dCBkZWxldGluZyB0aGUgdGV4dCBmcm9tIHRoZSBidWZmZXIuCgogICBUbyB5YW5r IHRoZSBsYXN0IGtpbGxlZCByZWN0YW5nbGUsIHR5cGUg4oCYQy14IHIgeeKAmSAo4oCYeWFuay1y ZWN0YW5nbGXigJkpLgpUaGUgcmVjdGFuZ2xl4oCZcyBmaXJzdCBsaW5lIGlzIGluc2VydGVkIGF0 IHBvaW50LCB0aGUgcmVjdGFuZ2xl4oCZcyBzZWNvbmQKbGluZSBpcyBpbnNlcnRlZCBhdCB0aGUg c2FtZSBob3Jpem9udGFsIHBvc2l0aW9uIG9uZSBsaW5lIHZlcnRpY2FsbHkKYmVsb3csIGFuZCBz byBvbi4gIFRoZSBudW1iZXIgb2YgbGluZXMgYWZmZWN0ZWQgaXMgZGV0ZXJtaW5lZCBieSB0aGUK aGVpZ2h0IG9mIHRoZSBzYXZlZCByZWN0YW5nbGUuCgogICBGb3IgZXhhbXBsZSwgeW91IGNhbiBj b252ZXJ0IHR3byBzaW5nbGUtY29sdW1uIGxpc3RzIGludG8gYQpkb3VibGUtY29sdW1uIGxpc3Qg Ynkga2lsbGluZyBvbmUgb2YgdGhlIHNpbmdsZS1jb2x1bW4gbGlzdHMgYXMgYQpyZWN0YW5nbGUs IGFuZCB0aGVuIHlhbmtpbmcgaXQgYmVzaWRlIHRoZSBvdGhlciBsaXN0LgoKICAgWW91IGNhbiBh bHNvIGNvcHkgcmVjdGFuZ2xlcyBpbnRvIGFuZCBvdXQgb2YgcmVnaXN0ZXJzIHdpdGgg4oCYQy14 IHIgcgpS4oCZIGFuZCDigJhDLXggciBpIFLigJkuICAqTm90ZSBSZWN0YW5nbGUgUmVnaXN0ZXJz OjouCgogICBUaGVyZSBhcmUgdHdvIGNvbW1hbmRzIHlvdSBjYW4gdXNlIGZvciBtYWtpbmcgYmxh bmsgcmVjdGFuZ2xlczog4oCYQy14CnIgY+KAmSAo4oCYY2xlYXItcmVjdGFuZ2xl4oCZKSBibGFu a3Mgb3V0IGV4aXN0aW5nIHRleHQgaW4gdGhlCnJlZ2lvbi1yZWN0YW5nbGUsIGFuZCDigJhDLXgg ciBv4oCZICjigJhvcGVuLXJlY3RhbmdsZeKAmSkgaW5zZXJ0cyBhIGJsYW5rCnJlY3RhbmdsZS4K CiAgIOKAmE0teCBkZWxldGUtd2hpdGVzcGFjZS1yZWN0YW5nbGXigJkgZGVsZXRlcyBob3Jpem9u dGFsIHdoaXRlc3BhY2UKc3RhcnRpbmcgZnJvbSBhIHBhcnRpY3VsYXIgY29sdW1uLiAgVGhpcyBh cHBsaWVzIHRvIGVhY2ggb2YgdGhlIGxpbmVzIGluCnRoZSByZWN0YW5nbGUsIGFuZCB0aGUgY29s dW1uIGlzIHNwZWNpZmllZCBieSB0aGUgbGVmdCBlZGdlIG9mIHRoZQpyZWN0YW5nbGUuICBUaGUg cmlnaHQgZWRnZSBvZiB0aGUgcmVjdGFuZ2xlIGRvZXMgbm90IG1ha2UgYW55IGRpZmZlcmVuY2UK dG8gdGhpcyBjb21tYW5kLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IHIgTuKAmSAo4oCYcmVjdGFu Z2xlLW51bWJlci1saW5lc+KAmSkgaW5zZXJ0cyBsaW5lIG51bWJlcnMKYWxvbmcgdGhlIGxlZnQg ZWRnZSBvZiB0aGUgcmVnaW9uLXJlY3RhbmdsZS4gIE5vcm1hbGx5LCB0aGUgbnVtYmVyaW5nCmJl Z2lucyBmcm9tIDEgKGZvciB0aGUgZmlyc3QgbGluZSBvZiB0aGUgcmVjdGFuZ2xlKS4gIFdpdGgg YSBwcmVmaXgKYXJndW1lbnQsIHRoZSBjb21tYW5kIHByb21wdHMgZm9yIGEgbnVtYmVyIHRvIGJl Z2luIGZyb20sIGFuZCBmb3IgYQpmb3JtYXQgc3RyaW5nIHdpdGggd2hpY2ggdG8gcHJpbnQgdGhl IG51bWJlcnMgKCpub3RlIChlbGlzcClGb3JtYXR0aW5nClN0cmluZ3M6OikuCgogICBUaGUgY29t bWFuZCDigJhDLXggciB04oCZICjigJhzdHJpbmctcmVjdGFuZ2xl4oCZKSByZXBsYWNlcyB0aGUg Y29udGVudHMgb2YgYQpyZWdpb24tcmVjdGFuZ2xlIHdpdGggYSBzdHJpbmcgb24gZWFjaCBsaW5l LiAgVGhlIHN0cmluZ+KAmXMgd2lkdGggbmVlZApub3QgYmUgdGhlIHNhbWUgYXMgdGhlIHdpZHRo IG9mIHRoZSByZWN0YW5nbGUuICBJZiB0aGUgc3RyaW5n4oCZcyB3aWR0aCBpcwpsZXNzLCB0aGUg dGV4dCBhZnRlciB0aGUgcmVjdGFuZ2xlIHNoaWZ0cyBsZWZ0OyBpZiB0aGUgc3RyaW5nIGlzIHdp ZGVyCnRoYW4gdGhlIHJlY3RhbmdsZSwgdGhlIHRleHQgYWZ0ZXIgdGhlIHJlY3RhbmdsZSBzaGlm dHMgcmlnaHQuCgogICBUaGUgY29tbWFuZCDigJhNLXggc3RyaW5nLWluc2VydC1yZWN0YW5nbGXi gJkgaXMgc2ltaWxhciB0bwrigJhzdHJpbmctcmVjdGFuZ2xl4oCZLCBidXQgaW5zZXJ0cyB0aGUg c3RyaW5nIG9uIGVhY2ggbGluZSwgc2hpZnRpbmcgdGhlCm9yaWdpbmFsIHRleHQgdG8gdGhlIHJp Z2h0LgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IDxTUEM+4oCZICjigJhyZWN0YW5nbGUtbWFyay1t b2Rl4oCZKSB0b2dnbGVzIHdoZXRoZXIgdGhlCnJlZ2lvbi1yZWN0YW5nbGUgb3IgdGhlIHN0YW5k YXJkIHJlZ2lvbiBpcyBoaWdobGlnaHRlZCAoZmlyc3QgYWN0aXZhdGluZwp0aGUgcmVnaW9uIGlm IG5lY2Vzc2FyeSkuICBXaGVuIHRoaXMgbW9kZSBpcyBlbmFibGVkLCBjb21tYW5kcyB0aGF0CnJl c2l6ZSB0aGUgcmVnaW9uICjigJhDLWbigJksIOKAmEMtbuKAmSBldGMuKSBkbyBzbyBpbiBhIHJl Y3Rhbmd1bGFyIGZhc2hpb24sCmFuZCBraWxsaW5nIGFuZCB5YW5raW5nIG9wZXJhdGUgb24gdGhl IHJlY3RhbmdsZS4gICpOb3RlIEtpbGxpbmc6Oi4gIFRoZQptb2RlIHBlcnNpc3RzIG9ubHkgYXMg bG9uZyBhcyB0aGUgcmVnaW9uIGlzIGFjdGl2ZS4KCiAgIFVubGlrZSB0aGUgc3RhbmRhcmQgcmVn aW9uLCB0aGUgcmVnaW9uLXJlY3RhbmdsZSBjYW4gaGF2ZSBpdHMgY29ybmVycwpleHRlbmRlZCBw YXN0IHRoZSBlbmQgb2YgYnVmZmVyLCBvciBpbnNpZGUgc3RyZXRjaGVzIG9mIHdoaXRlIHNwYWNl IHRoYXQKcG9pbnQgbm9ybWFsbHkgY2Fubm90IGVudGVyLCBsaWtlIGluIHRoZSBtaWRkbGUgb2Yg YSBUQUIgY2hhcmFjdGVyLgoKICAgV2hlbiB0aGUgcmVnaW9uIGlzIGluIHJlY3RhbmdsZS1tYXJr LW1vZGUsIOKAmEMteCBDLXjigJkgcnVucyB0aGUgY29tbWFuZArigJhyZWN0YW5nbGUtZXhjaGFu Z2UtcG9pbnQtYW5kLW1hcmvigJksIHdoaWNoIGN5Y2xlcyBiZXR3ZWVuIHRoZSBmb3VyCmNvcm5l cnMgb2YgdGhlIHJlZ2lvbi1yZWN0YW5nbGUuICBUaGlzIGNvbWVzIGluIGhhbmR5IGlmIHlvdSB3 YW50IHRvCm1vZGlmeSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgcmVnaW9uLXJlY3RhbmdsZSBiZWZv cmUgaW52b2tpbmcgYW4Kb3BlcmF0aW9uIG9uIHRoZSBtYXJrZWQgdGV4dC4KCgoqKiAxMi42IENV QSBCaW5kaW5ncwoKVGhlIGNvbW1hbmQg4oCYTS14IGN1YS1tb2Rl4oCZIHNldHMgdXAga2V5IGJp bmRpbmdzIHRoYXQgYXJlIGNvbXBhdGlibGUgd2l0aAp0aGUgQ29tbW9uIFVzZXIgQWNjZXNzIChD VUEpIHN5c3RlbSB1c2VkIGluIG1hbnkgb3RoZXIgYXBwbGljYXRpb25zLgoKICAgV2hlbiBDVUEg bW9kZSBpcyBlbmFibGVkLCB0aGUga2V5cyDigJhDLXjigJksIOKAmEMtY+KAmSwg4oCYQy124oCZ LCBhbmQg4oCYQy164oCZCmludm9rZSBjb21tYW5kcyB0aGF0IGN1dCAoa2lsbCksIGNvcHksIHBh c3RlICh5YW5rKSwgYW5kIHVuZG8KcmVzcGVjdGl2ZWx5LiAgVGhlIOKAmEMteOKAmSBhbmQg4oCY Qy1j4oCZIGtleXMgcGVyZm9ybSBjdXQgYW5kIGNvcHkgb25seSBpZiB0aGUKcmVnaW9uIGlzIGFj dGl2ZS4gIE90aGVyd2lzZSwgdGhleSBzdGlsbCBhY3QgYXMgcHJlZml4IGtleXMsIHNvIHRoYXQK c3RhbmRhcmQgRW1hY3MgY29tbWFuZHMgbGlrZSDigJhDLXggQy1j4oCZIHN0aWxsIHdvcmsuICBO b3RlIHRoYXQgdGhpcyBtZWFucwp0aGUgdmFyaWFibGUg4oCYbWFyay1ldmVuLWlmLWluYWN0aXZl 4oCZIGhhcyBubyBlZmZlY3QgZm9yIOKAmEMteOKAmSBhbmQg4oCYQy1j4oCZCigqbm90ZSBVc2lu ZyBSZWdpb246OikuCgogICBUbyBlbnRlciBhbiBFbWFjcyBjb21tYW5kIGxpa2Ug4oCYQy14IEMt ZuKAmSB3aGlsZSB0aGUgbWFyayBpcyBhY3RpdmUsCnVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBt ZXRob2RzOiBlaXRoZXIgaG9sZCDigJhTaGlmdOKAmSB0b2dldGhlciB3aXRoIHRoZQpwcmVmaXgg a2V5LCBlLmcuLCDigJhTLUMteCBDLWbigJksIG9yIHF1aWNrbHkgdHlwZSB0aGUgcHJlZml4IGtl eSB0d2ljZSwKZS5nLiwg4oCYQy14IEMteCBDLWbigJkuCgogICBUbyBkaXNhYmxlIHRoZSBvdmVy cmlkaW5nIG9mIHN0YW5kYXJkIEVtYWNzIGJpbmRpbmcgYnkgQ1VBIG1vZGUsCndoaWxlIHJldGFp bmluZyB0aGUgb3RoZXIgZmVhdHVyZXMgb2YgQ1VBIG1vZGUgZGVzY3JpYmVkIGJlbG93LCBzZXQg dGhlCnZhcmlhYmxlIOKAmGN1YS1lbmFibGUtY3VhLWtleXPigJkgdG8g4oCYbmls4oCZLgoKICAg Q1VBIG1vZGUgYnkgZGVmYXVsdCBhY3RpdmF0ZXMgRGVsZXRlLVNlbGVjdGlvbiBtb2RlICgqbm90 ZSBNb3VzZQpDb21tYW5kczo6KSBzbyB0aGF0IHR5cGVkIHRleHQgcmVwbGFjZXMgdGhlIGFjdGl2 ZSByZWdpb24uICBUbyB1c2UgQ1VBCndpdGhvdXQgdGhpcyBiZWhhdmlvciwgc2V0IHRoZSB2YXJp YWJsZSDigJhjdWEtZGVsZXRlLXNlbGVjdGlvbuKAmSB0byDigJhuaWzigJkuCgogICBDVUEgbW9k ZSBwcm92aWRlcyBlbmhhbmNlZCByZWN0YW5nbGUgc3VwcG9ydCB3aXRoIHZpc2libGUgcmVjdGFu Z2xlCmhpZ2hsaWdodGluZy4gIFVzZSDigJhDLTxSRVQ+4oCZIHRvIHN0YXJ0IGEgcmVjdGFuZ2xl LCBleHRlbmQgaXQgdXNpbmcgdGhlCm1vdmVtZW50IGNvbW1hbmRzLCBhbmQgY3V0IG9yIGNvcHkg aXQgdXNpbmcg4oCYQy144oCZIG9yIOKAmEMtY+KAmS4gIDxSRVQ+IG1vdmVzCnRoZSBjdXJzb3Ig dG8gdGhlIG5leHQgKGNsb2Nrd2lzZSkgY29ybmVyIG9mIHRoZSByZWN0YW5nbGUsIHNvIHlvdSBj YW4KZWFzaWx5IGV4cGFuZCBpdCBpbiBhbnkgZGlyZWN0aW9uLiAgTm9ybWFsIHRleHQgeW91IHR5 cGUgaXMgaW5zZXJ0ZWQgdG8KdGhlIGxlZnQgb3IgcmlnaHQgb2YgZWFjaCBsaW5lIGluIHRoZSBy ZWN0YW5nbGUgKG9uIHRoZSBzYW1lIHNpZGUgYXMgdGhlCmN1cnNvcikuCgogICBZb3UgY2FuIHVz ZSB0aGlzIHJlY3RhbmdsZSBzdXBwb3J0IHdpdGhvdXQgYWN0aXZhdGluZyBDVUEgYnkgY2FsbGlu Zwp0aGUg4oCYY3VhLXJlY3RhbmdsZS1tYXJrLW1vZGXigJkgY29tbWFuZC4gIFRoZXJl4oCZcyBh bHNvIHRoZSBzdGFuZGFyZApjb21tYW5kIOKAmHJlY3RhbmdsZS1tYXJrLW1vZGXigJksIHNlZSAq bm90ZSBSZWN0YW5nbGVzOjouCgogICBXaXRoIENVQSB5b3UgY2FuIGVhc2lseSBjb3B5IHRleHQg YW5kIHJlY3RhbmdsZXMgaW50byBhbmQgb3V0IG9mCnJlZ2lzdGVycyBieSBwcm92aWRpbmcgYSBv bmUtZGlnaXQgbnVtZXJpYyBwcmVmaXggdG8gdGhlIGtpbGwsIGNvcHksIGFuZAp5YW5rIGNvbW1h bmRzLCBlLmcuLCDigJhDLTEgQy1j4oCZIGNvcGllcyB0aGUgcmVnaW9uIGludG8gcmVnaXN0ZXIg 4oCYMeKAmSwgYW5kCuKAmEMtMiBDLXbigJkgeWFua3MgdGhlIGNvbnRlbnRzIG9mIHJlZ2lzdGVy IOKAmDLigJkuCgogICBDVUEgbW9kZSBhbHNvIGhhcyBhIGdsb2JhbCBtYXJrIGZlYXR1cmUgd2hp Y2ggYWxsb3dzIGVhc3kgbW92aW5nIGFuZApjb3B5aW5nIG9mIHRleHQgYmV0d2VlbiBidWZmZXJz LiAgVXNlIOKAmEMtUy08U1BDPuKAmSB0byB0b2dnbGUgdGhlIGdsb2JhbAptYXJrIG9uIGFuZCBv ZmYuICBXaGVuIHRoZSBnbG9iYWwgbWFyayBpcyBvbiwgYWxsIHRleHQgdGhhdCB5b3Uga2lsbCBv cgpjb3B5IGlzIGF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQgYXQgdGhlIGdsb2JhbCBtYXJrLCBhbmQg dGV4dCB5b3UgdHlwZSBpcwppbnNlcnRlZCBhdCB0aGUgZ2xvYmFsIG1hcmsgcmF0aGVyIHRoYW4g YXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uCgogICBGb3IgZXhhbXBsZSwgdG8gY29weSB3b3JkcyBm cm9tIHZhcmlvdXMgYnVmZmVycyBpbnRvIGEgd29yZCBsaXN0IGluIGEKZ2l2ZW4gYnVmZmVyLCBz ZXQgdGhlIGdsb2JhbCBtYXJrIGluIHRoZSB0YXJnZXQgYnVmZmVyLCB0aGVuIG5hdmlnYXRlIHRv CmVhY2ggb2YgdGhlIHdvcmRzIHlvdSB3YW50IGluIHRoZSBsaXN0LCBtYXJrIGl0IChlLmcuLCB3 aXRoIOKAmFMtTS1m4oCZKSwKY29weSBpdCB0byB0aGUgbGlzdCB3aXRoIOKAmEMtY+KAmSBvciDi gJhNLXfigJksIGFuZCBpbnNlcnQgYSBuZXdsaW5lIGFmdGVyIHRoZQp3b3JkIGluIHRoZSB0YXJn ZXQgbGlzdCBieSBwcmVzc2luZyA8UkVUPi4KCgoqIDEzIFJlZ2lzdGVycwoKRW1hY3MgInJlZ2lz dGVycyIgYXJlIGNvbXBhcnRtZW50cyB3aGVyZSB5b3UgY2FuIHNhdmUgdGV4dCwgcmVjdGFuZ2xl cywKcG9zaXRpb25zLCBhbmQgb3RoZXIgdGhpbmdzIGZvciBsYXRlciB1c2UuICBPbmNlIHlvdSBz YXZlIHRleHQgb3IgYQpyZWN0YW5nbGUgaW4gYSByZWdpc3RlciwgeW91IGNhbiBjb3B5IGl0IGlu dG8gdGhlIGJ1ZmZlciBvbmNlIG9yIG1hbnkKdGltZXM7IG9uY2UgeW91IHNhdmUgYSBwb3NpdGlv biBpbiBhIHJlZ2lzdGVyLCB5b3UgY2FuIGp1bXAgYmFjayB0byB0aGF0CnBvc2l0aW9uIG9uY2Ug b3IgbWFueSB0aW1lcy4KCiAgIEVhY2ggcmVnaXN0ZXIgaGFzIGEgbmFtZSB0aGF0IGNvbnNpc3Rz IG9mIGEgc2luZ2xlIGNoYXJhY3Rlciwgd2hpY2gKd2Ugd2lsbCBkZW5vdGUgYnkgUjsgUiBjYW4g YmUgYSBsZXR0ZXIgKHN1Y2ggYXMg4oCYYeKAmSkgb3IgYSBudW1iZXIgKHN1Y2gKYXMg4oCYMeKA mSk7IGNhc2UgbWF0dGVycywgc28gcmVnaXN0ZXIg4oCYYeKAmSBpcyBub3QgdGhlIHNhbWUgYXMg cmVnaXN0ZXIg4oCYQeKAmS4KWW91IGNhbiBhbHNvIHNldCBhIHJlZ2lzdGVyIGluIG5vbi1hbHBo YW51bWVyaWMgY2hhcmFjdGVycywgZm9yIGluc3RhbmNlCuKAmCrigJkgb3Ig4oCYQy1k4oCZLiAg Tm90ZSwgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBzZXQgYSByZWdpc3RlciBpbiDigJhDLWfigJkg b3IK4oCYRVND4oCZLCBiZWNhdXNlIHRoZXNlIGtleXMgYXJlIHJlc2VydmVkIGZvciBxdWl0dGlu ZyAoKm5vdGUgUXVpdHRpbmc6OikuCgogICBBIHJlZ2lzdGVyIGNhbiBzdG9yZSBhIHBvc2l0aW9u LCBhIHBpZWNlIG9mIHRleHQsIGEgcmVjdGFuZ2xlLCBhCm51bWJlciwgYSB3aW5kb3cgY29uZmln dXJhdGlvbiwgb3IgYSBmaWxlIG5hbWUsIGJ1dCBvbmx5IG9uZSB0aGluZyBhdAphbnkgZ2l2ZW4g dGltZS4gIFdoYXRldmVyIHlvdSBzdG9yZSBpbiBhIHJlZ2lzdGVyIHJlbWFpbnMgdGhlcmUgdW50 aWwKeW91IHN0b3JlIHNvbWV0aGluZyBlbHNlIGluIHRoYXQgcmVnaXN0ZXIuICBUbyBzZWUgd2hh dCByZWdpc3RlciBSCmNvbnRhaW5zLCB1c2Ug4oCYTS14IHZpZXctcmVnaXN0ZXLigJk6CgrigJhN LXggdmlldy1yZWdpc3RlciA8UkVUPiBS4oCZCiAgICAgRGlzcGxheSBhIGRlc2NyaXB0aW9uIG9m IHdoYXQgcmVnaXN0ZXIgUiBjb250YWlucy4KCiAgIEFsbCBvZiB0aGUgY29tbWFuZHMgdGhhdCBw cm9tcHQgZm9yIGEgcmVnaXN0ZXIgd2lsbCBkaXNwbGF5IGEgcHJldmlldwp3aW5kb3cgdGhhdCBs aXN0cyB0aGUgZXhpc3RpbmcgcmVnaXN0ZXJzIChpZiB0aGVyZSBhcmUgYW55KSBhZnRlciBhCnNo b3J0IGRlbGF5LiAgVG8gY2hhbmdlIHRoZSBsZW5ndGggb2YgdGhlIGRlbGF5LCBjdXN0b21pemUK 4oCYcmVnaXN0ZXItcHJldmlldy1kZWxheeKAmS4gIFRvIHByZXZlbnQgdGhpcyBkaXNwbGF5LCBz ZXQgdGhhdCBvcHRpb24gdG8K4oCYbmls4oCZLiAgWW91IGNhbiBleHBsaWNpdGx5IHJlcXVlc3Qg YSBwcmV2aWV3IHdpbmRvdyBieSBwcmVzc2luZyDigJhDLWjigJkgb3IKPEYxPi4KCiAgICJCb29r bWFya3MiIHJlY29yZCBmaWxlcyBhbmQgcG9zaXRpb25zIGluIHRoZW0sIHNvIHlvdSBjYW4gcmV0 dXJuIHRvCnRob3NlIHBvc2l0aW9ucyB3aGVuIHlvdSBsb29rIGF0IHRoZSBmaWxlIGFnYWluLiAg Qm9va21hcmtzIGFyZSBzaW1pbGFyCmluIHNwaXJpdCB0byByZWdpc3RlcnMsIHNvIHRoZXkgYXJl IGFsc28gZG9jdW1lbnRlZCBpbiB0aGlzIGNoYXB0ZXIuCgorIE1lbnU6CgogIC0gUG9zaXRpb24g UmVnaXN0ZXJzOjogICAgICAgU2F2aW5nIHBvc2l0aW9ucyBpbiByZWdpc3RlcnMuCiAgLSBUZXh0 IFJlZ2lzdGVyczo6ICAgICAgICAgICBTYXZpbmcgdGV4dCBpbiByZWdpc3RlcnMuCiAgLSBSZWN0 YW5nbGUgUmVnaXN0ZXJzOjogICAgICBTYXZpbmcgcmVjdGFuZ2xlcyBpbiByZWdpc3RlcnMuCiAg LSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyczo6ICBTYXZpbmcgd2luZG93IGNvbmZpZ3VyYXRpb25z IGluIHJlZ2lzdGVycy4KICAtIE51bWJlciBSZWdpc3RlcnM6OiAgICAgICAgIE51bWJlcnMgaW4g cmVnaXN0ZXJzLgogIC0gRmlsZSBSZWdpc3RlcnM6OiAgICAgICAgICAgRmlsZSBuYW1lcyBpbiBy ZWdpc3RlcnMuCiAgLSBLZXlib2FyZCBNYWNybyBSZWdpc3RlcnM6OiBLZXlib2FyZCBtYWNyb3Mg aW4gcmVnaXN0ZXJzLgogIC0gQm9va21hcmtzOjogICAgICAgICAgICAgICAgQm9va21hcmtzIGFy ZSBsaWtlIHJlZ2lzdGVycywgYnV0IHBlcnNpc3RlbnQuCgoKKiogMTMuMSBTYXZpbmcgUG9zaXRp b25zIGluIFJlZ2lzdGVycwoK4oCYQy14IHIgPFNQQz4gUuKAmQogICAgIFJlY29yZCB0aGUgcG9z aXRpb24gb2YgcG9pbnQgYW5kIHRoZSBjdXJyZW50IGJ1ZmZlciBpbiByZWdpc3RlciBSCiAgICAg KOKAmHBvaW50LXRvLXJlZ2lzdGVy4oCZKS4K4oCYQy14IHIgaiBS4oCZCiAgICAgSnVtcCB0byB0 aGUgcG9zaXRpb24gYW5kIGJ1ZmZlciBzYXZlZCBpbiByZWdpc3RlciBSCiAgICAgKOKAmGp1bXAt dG8tcmVnaXN0ZXLigJkpLgoKICAgVHlwaW5nIOKAmEMteCByIDxTUEM+4oCZICjigJhwb2ludC10 by1yZWdpc3RlcuKAmSksIGZvbGxvd2VkIGJ5IGEgY2hhcmFjdGVyCuKAmFLigJksIHNhdmVzIGJv dGggdGhlIHBvc2l0aW9uIG9mIHBvaW50IGFuZCB0aGUgY3VycmVudCBidWZmZXIgaW4gcmVnaXN0 ZXIKUi4gIFRoZSByZWdpc3RlciByZXRhaW5zIHRoaXMgaW5mb3JtYXRpb24gdW50aWwgeW91IHN0 b3JlIHNvbWV0aGluZyBlbHNlCmluIGl0LgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IHIgaiBS4oCZ IHN3aXRjaGVzIHRvIHRoZSBidWZmZXIgcmVjb3JkZWQgaW4gcmVnaXN0ZXIKUiwgYW5kIG1vdmVz IHBvaW50IHRvIHRoZSByZWNvcmRlZCBwb3NpdGlvbi4gIFRoZSBjb250ZW50cyBvZiB0aGUKcmVn aXN0ZXIgYXJlIG5vdCBjaGFuZ2VkLCBzbyB5b3UgY2FuIGp1bXAgdG8gdGhlIHNhdmVkIHBvc2l0 aW9uIGFueQpudW1iZXIgb2YgdGltZXMuCgogICBJZiB5b3UgdXNlIOKAmEMteCByIGrigJkgdG8g Z28gdG8gYSBzYXZlZCBwb3NpdGlvbiwgYnV0IHRoZSBidWZmZXIgaXQgd2FzCnNhdmVkIGZyb20g aGFzIGJlZW4ga2lsbGVkLCDigJhDLXggciBq4oCZIHRyaWVzIHRvIGNyZWF0ZSB0aGUgYnVmZmVy IGFnYWluCmJ5IHZpc2l0aW5nIHRoZSBzYW1lIGZpbGUuICBPZiBjb3Vyc2UsIHRoaXMgd29ya3Mg b25seSBmb3IgYnVmZmVycyB0aGF0CndlcmUgdmlzaXRpbmcgZmlsZXMuCgoKKiogMTMuMiBTYXZp bmcgVGV4dCBpbiBSZWdpc3RlcnMKCldoZW4geW91IHdhbnQgdG8gaW5zZXJ0IGEgY29weSBvZiB0 aGUgc2FtZSBwaWVjZSBvZiB0ZXh0IHNldmVyYWwgdGltZXMsCml0IG1heSBiZSBpbmNvbnZlbmll bnQgdG8geWFuayBpdCBmcm9tIHRoZSBraWxsIHJpbmcsIHNpbmNlIGVhY2gKc3Vic2VxdWVudCBr aWxsIG1vdmVzIHRoYXQgZW50cnkgZnVydGhlciBkb3duIHRoZSByaW5nLiAgQW4gYWx0ZXJuYXRp dmUKaXMgdG8gc3RvcmUgdGhlIHRleHQgaW4gYSByZWdpc3RlciBhbmQgbGF0ZXIgcmV0cmlldmUg aXQuCgrigJhDLXggciBzIFLigJkKICAgICBDb3B5IHJlZ2lvbiBpbnRvIHJlZ2lzdGVyIFIgKOKA mGNvcHktdG8tcmVnaXN0ZXLigJkpLgrigJhDLXggciBpIFLigJkKICAgICBJbnNlcnQgdGV4dCBm cm9tIHJlZ2lzdGVyIFIgKOKAmGluc2VydC1yZWdpc3RlcuKAmSkuCuKAmE0teCBhcHBlbmQtdG8t cmVnaXN0ZXIgPFJFVD4gUuKAmQogICAgIEFwcGVuZCByZWdpb24gdG8gdGV4dCBpbiByZWdpc3Rl ciBSLgoKICAgICBXaGVuIHJlZ2lzdGVyIFIgY29udGFpbnMgdGV4dCwgeW91IGNhbiB1c2Ug4oCY Qy14IHIgK+KAmQogICAgICjigJhpbmNyZW1lbnQtcmVnaXN0ZXLigJkpIHRvIGFwcGVuZCB0byB0 aGF0IHJlZ2lzdGVyLiAgTm90ZSB0aGF0CiAgICAgY29tbWFuZCDigJhDLXggciAr4oCZIGJlaGF2 ZXMgZGlmZmVyZW50bHkgaWYgUiBjb250YWlucyBhIG51bWJlci4KICAgICAqTm90ZSBOdW1iZXIg UmVnaXN0ZXJzOjouCgrigJhNLXggcHJlcGVuZC10by1yZWdpc3RlciA8UkVUPiBS4oCZCiAgICAg UHJlcGVuZCByZWdpb24gdG8gdGV4dCBpbiByZWdpc3RlciBSLgoKICAg4oCYQy14IHIgcyBS4oCZ IHN0b3JlcyBhIGNvcHkgb2YgdGhlIHRleHQgb2YgdGhlIHJlZ2lvbiBpbnRvIHRoZSByZWdpc3Rl cgpuYW1lZCBSLiAgSWYgdGhlIG1hcmsgaXMgaW5hY3RpdmUsIEVtYWNzIGZpcnN0IHJlYWN0aXZh dGVzIHRoZSBtYXJrCndoZXJlIGl0IHdhcyBsYXN0IHNldC4gIFRoZSBtYXJrIGlzIGRlYWN0aXZh dGVkIGF0IHRoZSBlbmQgb2YgdGhpcwpjb21tYW5kLiAgKk5vdGUgTWFyazo6LiAg4oCYQy11IEMt eCByIHMgUuKAmSwgdGhlIHNhbWUgY29tbWFuZCB3aXRoIGEgcHJlZml4CmFyZ3VtZW50LCBjb3Bp ZXMgdGhlIHRleHQgaW50byByZWdpc3RlciBSIGFuZCBkZWxldGVzIHRoZSB0ZXh0IGZyb20gdGhl CmJ1ZmZlciBhcyB3ZWxsOyB5b3UgY2FuIHRoaW5rIG9mIHRoaXMgYXMgbW92aW5nIHRoZSByZWdp b24gdGV4dCBpbnRvIHRoZQpyZWdpc3Rlci4KCiAgIOKAmE0teCBhcHBlbmQtdG8tcmVnaXN0ZXIg PFJFVD4gUuKAmSBhcHBlbmRzIHRoZSBjb3B5IG9mIHRoZSB0ZXh0IGluIHRoZQpyZWdpb24gdG8g dGhlIHRleHQgYWxyZWFkeSBzdG9yZWQgaW4gdGhlIHJlZ2lzdGVyIG5hbWVkIFIuICBJZiBpbnZv a2VkCndpdGggYSBwcmVmaXggYXJndW1lbnQsIGl0IGRlbGV0ZXMgdGhlIHJlZ2lvbiBhZnRlciBh cHBlbmRpbmcgaXQgdG8gdGhlCnJlZ2lzdGVyLiAgVGhlIGNvbW1hbmQg4oCYcHJlcGVuZC10by1y ZWdpc3RlcuKAmSBpcyBzaW1pbGFyLCBleGNlcHQgdGhhdCBpdApfcHJlcGVuZHNfIHRoZSByZWdp b24gdGV4dCB0byB0aGUgdGV4dCBpbiB0aGUgcmVnaXN0ZXIgaW5zdGVhZCBvZgpfYXBwZW5kaW5n XyBpdC4KCiAgIFdoZW4geW91IGFyZSBjb2xsZWN0aW5nIHRleHQgdXNpbmcg4oCYYXBwZW5kLXRv LXJlZ2lzdGVy4oCZIGFuZArigJhwcmVwZW5kLXRvLXJlZ2lzdGVy4oCZLCB5b3UgbWF5IHdhbnQg dG8gc2VwYXJhdGUgaW5kaXZpZHVhbCBjb2xsZWN0ZWQKcGllY2VzIHVzaW5nIGEgc2VwYXJhdG9y LiAgSW4gdGhhdCBjYXNlLCBjb25maWd1cmUgYQrigJhyZWdpc3Rlci1zZXBhcmF0b3LigJkgYW5k IHN0b3JlIHRoZSBzZXBhcmF0b3IgdGV4dCBpbiB0byB0aGF0IHJlZ2lzdGVyLgpGb3IgZXhhbXBs ZSwgdG8gZ2V0IGRvdWJsZSBuZXdsaW5lcyBhcyB0ZXh0IHNlcGFyYXRvciBkdXJpbmcgdGhlCmNv bGxlY3Rpb24gcHJvY2VzcywgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBzZXR0aW5nLgoKICAg ICAoc2V0cSByZWdpc3Rlci1zZXBhcmF0b3IgPyspCiAgICAgKHNldC1yZWdpc3RlciByZWdpc3Rl ci1zZXBhcmF0b3IgIlxuXG4iKQoKICAg4oCYQy14IHIgaSBS4oCZIGluc2VydHMgaW4gdGhlIGJ1 ZmZlciB0aGUgdGV4dCBmcm9tIHJlZ2lzdGVyIFIuICBOb3JtYWxseQppdCBsZWF2ZXMgcG9pbnQg YWZ0ZXIgdGhlIHRleHQgYW5kIHNldHMgdGhlIG1hcmsgYmVmb3JlLCB3aXRob3V0CmFjdGl2YXRp bmcgaXQuICBXaXRoIGEgbnVtZXJpYyBhcmd1bWVudCwgaXQgaW5zdGVhZCBwdXRzIHBvaW50IGJl Zm9yZQp0aGUgdGV4dCBhbmQgdGhlIG1hcmsgYWZ0ZXIuCgoKKiogMTMuMyBTYXZpbmcgUmVjdGFu Z2xlcyBpbiBSZWdpc3RlcnMKCkEgcmVnaXN0ZXIgY2FuIGNvbnRhaW4gYSByZWN0YW5nbGUgaW5z dGVhZCBvZiBsaW5lYXIgdGV4dC4gICpOb3RlClJlY3RhbmdsZXM6OiwgZm9yIGJhc2ljIGluZm9y bWF0aW9uIG9uIGhvdyB0byBzcGVjaWZ5IGEgcmVjdGFuZ2xlIGluIHRoZQpidWZmZXIuCgrigJhD LXggciByIFLigJkKICAgICBDb3B5IHRoZSByZWdpb24tcmVjdGFuZ2xlIGludG8gcmVnaXN0ZXIg UgogICAgICjigJhjb3B5LXJlY3RhbmdsZS10by1yZWdpc3RlcuKAmSkuICBXaXRoIG51bWVyaWMg YXJndW1lbnQsIGRlbGV0ZSBpdAogICAgIGFzIHdlbGwuCuKAmEMteCByIGkgUuKAmQogICAgIElu c2VydCB0aGUgcmVjdGFuZ2xlIHN0b3JlZCBpbiByZWdpc3RlciBSIChpZiBpdCBjb250YWlucyBh CiAgICAgcmVjdGFuZ2xlKSAo4oCYaW5zZXJ0LXJlZ2lzdGVy4oCZKS4KCiAgIFRoZSDigJhDLXgg ciBpIFLigJkgKOKAmGluc2VydC1yZWdpc3RlcuKAmSkgY29tbWFuZCwgcHJldmlvdXNseSBkb2N1 bWVudGVkIGluCipub3RlIFRleHQgUmVnaXN0ZXJzOjosIGluc2VydHMgYSByZWN0YW5nbGUgcmF0 aGVyIHRoYW4gYSB0ZXh0IHN0cmluZywKaWYgdGhlIHJlZ2lzdGVyIGNvbnRhaW5zIGEgcmVjdGFu Z2xlLgoKCioqIDEzLjQgU2F2aW5nIFdpbmRvdyBDb25maWd1cmF0aW9ucyBpbiBSZWdpc3RlcnMK CllvdSBjYW4gc2F2ZSB0aGUgd2luZG93IGNvbmZpZ3VyYXRpb24gb2YgdGhlIHNlbGVjdGVkIGZy YW1lIGluIGEKcmVnaXN0ZXIsIG9yIGV2ZW4gdGhlIGNvbmZpZ3VyYXRpb24gb2YgYWxsIHdpbmRv d3MgaW4gYWxsIGZyYW1lcywgYW5kCnJlc3RvcmUgdGhlIGNvbmZpZ3VyYXRpb24gbGF0ZXIuICAq Tm90ZSBXaW5kb3dzOjosIGZvciBpbmZvcm1hdGlvbiBhYm91dAp3aW5kb3cgY29uZmlndXJhdGlv bnMuCgrigJhDLXggciB3IFLigJkKICAgICBTYXZlIHRoZSBzdGF0ZSBvZiB0aGUgc2VsZWN0ZWQg ZnJhbWXigJlzIHdpbmRvd3MgaW4gcmVnaXN0ZXIgUgogICAgICjigJh3aW5kb3ctY29uZmlndXJh dGlvbi10by1yZWdpc3RlcuKAmSkuCuKAmEMteCByIGYgUuKAmQogICAgIFNhdmUgdGhlIHN0YXRl IG9mIGFsbCBmcmFtZXMsIGluY2x1ZGluZyBhbGwgdGhlaXIgd2luZG93cywgaW4KICAgICByZWdp c3RlciBSICjigJhmcmFtZXNldC10by1yZWdpc3RlcuKAmSkuCgogICBVc2Ug4oCYQy14IHIgaiBS 4oCZIHRvIHJlc3RvcmUgYSB3aW5kb3cgb3IgZnJhbWUgY29uZmlndXJhdGlvbi4gIFRoaXMgaXMK dGhlIHNhbWUgY29tbWFuZCB1c2VkIHRvIHJlc3RvcmUgYSBjdXJzb3IgcG9zaXRpb24uICBXaGVu IHlvdSByZXN0b3JlIGEKZnJhbWUgY29uZmlndXJhdGlvbiwgYW55IGV4aXN0aW5nIGZyYW1lcyBu b3QgaW5jbHVkZWQgaW4gdGhlCmNvbmZpZ3VyYXRpb24gYmVjb21lIGludmlzaWJsZS4gIElmIHlv dSB3aXNoIHRvIGRlbGV0ZSB0aGVzZSBmcmFtZXMKaW5zdGVhZCwgdXNlIOKAmEMtdSBDLXggciBq IFLigJkuCgoKKiogMTMuNSBLZWVwaW5nIE51bWJlcnMgaW4gUmVnaXN0ZXJzCgpUaGVyZSBhcmUg Y29tbWFuZHMgdG8gc3RvcmUgYSBudW1iZXIgaW4gYSByZWdpc3RlciwgdG8gaW5zZXJ0IHRoZSBu dW1iZXIKaW4gdGhlIGJ1ZmZlciBpbiBkZWNpbWFsLCBhbmQgdG8gaW5jcmVtZW50IGl0LiAgVGhl c2UgY29tbWFuZHMgY2FuIGJlCnVzZWZ1bCBpbiBrZXlib2FyZCBtYWNyb3MgKCpub3RlIEtleWJv YXJkIE1hY3Jvczo6KS4KCuKAmEMtdSBOVU1CRVIgQy14IHIgbiBS4oCZCiAgICAgU3RvcmUgTlVN QkVSIGludG8gcmVnaXN0ZXIgUiAo4oCYbnVtYmVyLXRvLXJlZ2lzdGVy4oCZKS4K4oCYQy11IE5V TUJFUiBDLXggciArIFLigJkKICAgICBJZiBSIGNvbnRhaW5zIGEgbnVtYmVyLCBpbmNyZW1lbnQg dGhlIG51bWJlciBpbiB0aGF0IHJlZ2lzdGVyIGJ5CiAgICAgTlVNQkVSLiAgTm90ZSB0aGF0IGNv bW1hbmQg4oCYQy14IHIgK+KAmSAo4oCYaW5jcmVtZW50LXJlZ2lzdGVy4oCZKSBiZWhhdmVzCiAg ICAgZGlmZmVyZW50bHkgaWYgUiBjb250YWlucyB0ZXh0LiAgKk5vdGUgVGV4dCBSZWdpc3RlcnM6 Oi4K4oCYQy14IHIgaSBS4oCZCiAgICAgSW5zZXJ0IHRoZSBudW1iZXIgZnJvbSByZWdpc3RlciBS IGludG8gdGhlIGJ1ZmZlci4KCiAgIOKAmEMteCByIGnigJkgaXMgdGhlIHNhbWUgY29tbWFuZCB1 c2VkIHRvIGluc2VydCBhbnkgb3RoZXIgc29ydCBvZgpyZWdpc3RlciBjb250ZW50cyBpbnRvIHRo ZSBidWZmZXIuICDigJhDLXggciAr4oCZIHdpdGggbm8gbnVtZXJpYyBhcmd1bWVudAppbmNyZW1l bnRzIHRoZSByZWdpc3RlciB2YWx1ZSBieSAxOyDigJhDLXggciBu4oCZIHdpdGggbm8gbnVtZXJp YyBhcmd1bWVudApzdG9yZXMgemVybyBpbiB0aGUgcmVnaXN0ZXIuCgoKKiogMTMuNiBLZWVwaW5n IEZpbGUgTmFtZXMgaW4gUmVnaXN0ZXJzCgpJZiB5b3UgdmlzaXQgY2VydGFpbiBmaWxlIG5hbWVz IGZyZXF1ZW50bHksIHlvdSBjYW4gdmlzaXQgdGhlbSBtb3JlCmNvbnZlbmllbnRseSBpZiB5b3Ug cHV0IHRoZWlyIG5hbWVzIGluIHJlZ2lzdGVycy4gIEhlcmXigJlzIHRoZSBMaXNwIGNvZGUKdXNl ZCB0byBwdXQgYSBmaWxlIE5BTUUgaW50byByZWdpc3RlciBSOgoKICAgICAoc2V0LXJlZ2lzdGVy IFIgJyhmaWxlIC4gTkFNRSkpCgpGb3IgZXhhbXBsZSwKCiAgICAgKHNldC1yZWdpc3RlciA/eiAn KGZpbGUgLiAiL2dkL2dudS9lbWFjcy8xOS4wL3NyYy9DaGFuZ2VMb2ciKSkKCnB1dHMgdGhlIGZp bGUgbmFtZSBzaG93biBpbiByZWdpc3RlciDigJh64oCZLgoKICAgVG8gdmlzaXQgdGhlIGZpbGUg d2hvc2UgbmFtZSBpcyBpbiByZWdpc3RlciBSLCB0eXBlIOKAmEMteCByIGogUuKAmS4KKFRoaXMg aXMgdGhlIHNhbWUgY29tbWFuZCB1c2VkIHRvIGp1bXAgdG8gYSBwb3NpdGlvbiBvciByZXN0b3Jl IGEgZnJhbWUKY29uZmlndXJhdGlvbi4pCgoKKiogMTMuNyBLZXlib2FyZCBNYWNybyBSZWdpc3Rl cnMKCklmIHlvdSBuZWVkIHRvIGV4ZWN1dGUgYSBrZXlib2FyZCBtYWNybyAoKm5vdGUgS2V5Ym9h cmQgTWFjcm9zOjopCmZyZXF1ZW50bHksIGl0IGlzIG1vcmUgY29udmVuaWVudCB0byBwdXQgaXQg aW4gYSByZWdpc3RlciBvciBzYXZlIGl0Cigqbm90ZSBTYXZlIEtleWJvYXJkIE1hY3JvOjopLiAg 4oCYQy14IEMtayB4IFLigJkgKOKAmGttYWNyby10by1yZWdpc3RlcuKAmSkKc3RvcmVzIHRoZSBs YXN0IGtleWJvYXJkIG1hY3JvIGluIHJlZ2lzdGVyIFIuCgogICBUbyBleGVjdXRlIHRoZSBrZXli b2FyZCBtYWNybyBpbiByZWdpc3RlciBSLCB0eXBlIOKAmEMteCByIGogUuKAmS4gIChUaGlzCmlz IHRoZSBzYW1lIGNvbW1hbmQgdXNlZCB0byBqdW1wIHRvIGEgcG9zaXRpb24gb3IgcmVzdG9yZSBh IGZyYW1lc2V0LikKCgoqKiAxMy44IEJvb2ttYXJrcwoKIkJvb2ttYXJrcyIgYXJlIHNvbWV3aGF0 IGxpa2UgcmVnaXN0ZXJzIGluIHRoYXQgdGhleSByZWNvcmQgcG9zaXRpb25zCnlvdSBjYW4ganVt cCB0by4gIFVubGlrZSByZWdpc3RlcnMsIHRoZXkgaGF2ZSBsb25nIG5hbWVzLCBhbmQgdGhleQpw ZXJzaXN0IGF1dG9tYXRpY2FsbHkgZnJvbSBvbmUgRW1hY3Mgc2Vzc2lvbiB0byB0aGUgbmV4dC4g IFRoZQpwcm90b3R5cGljYWwgdXNlIG9mIGJvb2ttYXJrcyBpcyB0byByZWNvcmQgd2hlcmUgeW91 IHdlcmUgcmVhZGluZyBpbgp2YXJpb3VzIGZpbGVzLgoK4oCYQy14IHIgbSA8UkVUPuKAmQogICAg IFNldCB0aGUgYm9va21hcmsgZm9yIHRoZSB2aXNpdGVkIGZpbGUsIGF0IHBvaW50LgoK4oCYQy14 IHIgbSBCT09LTUFSSyA8UkVUPuKAmQogICAgIFNldCB0aGUgYm9va21hcmsgbmFtZWQgQk9PS01B UksgYXQgcG9pbnQgKOKAmGJvb2ttYXJrLXNldOKAmSkuCgrigJhDLXggciBNIEJPT0tNQVJLIDxS RVQ+4oCZCiAgICAgTGlrZSDigJhDLXggciBt4oCZLCBidXQgZG9u4oCZdCBvdmVyd3JpdGUgYW4g ZXhpc3RpbmcgYm9va21hcmsuCgrigJhDLXggciBiIEJPT0tNQVJLIDxSRVQ+4oCZCiAgICAgSnVt cCB0byB0aGUgYm9va21hcmsgbmFtZWQgQk9PS01BUksgKOKAmGJvb2ttYXJrLWp1bXDigJkpLgoK 4oCYQy14IHIgbOKAmQogICAgIExpc3QgYWxsIGJvb2ttYXJrcyAo4oCYbGlzdC1ib29rbWFya3Pi gJkpLgoK4oCYTS14IGJvb2ttYXJrLXNhdmXigJkKICAgICBTYXZlIGFsbCB0aGUgY3VycmVudCBi b29rbWFyayB2YWx1ZXMgaW4gdGhlIGRlZmF1bHQgYm9va21hcmsgZmlsZS4KCiAgIFRvIHJlY29y ZCB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgdmlzaXRlZCBmaWxlLCB1c2UgdGhlIGNvbW1h bmQK4oCYQy14IHIgbeKAmSwgd2hpY2ggc2V0cyBhIGJvb2ttYXJrIHVzaW5nIHRoZSB2aXNpdGVk IGZpbGUgbmFtZSBhcyB0aGUKZGVmYXVsdCBmb3IgdGhlIGJvb2ttYXJrIG5hbWUuICBJZiB5b3Ug bmFtZSBlYWNoIGJvb2ttYXJrIGFmdGVyIHRoZSBmaWxlCml0IHBvaW50cyB0bywgdGhlbiB5b3Ug Y2FuIGNvbnZlbmllbnRseSByZXZpc2l0IGFueSBvZiB0aG9zZSBmaWxlcyB3aXRoCuKAmEMteCBy IGLigJksIGFuZCBtb3ZlIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgYm9va21hcmsgYXQgdGhlIHNh bWUgdGltZS4KCiAgIFRoZSBjb21tYW5kIOKAmEMteCByIE3igJkgKOKAmGJvb2ttYXJrLXNldC1u by1vdmVyd3JpdGXigJkpIHdvcmtzIGxpa2UK4oCYQy14IHIgbeKAmSwgYnV0IGl0IHNpZ25hbHMg YW4gZXJyb3IgaWYgdGhlIHNwZWNpZmllZCBib29rbWFyayBhbHJlYWR5CmV4aXN0cywgaW5zdGVh ZCBvZiBvdmVyd3JpdGluZyBpdC4KCiAgIFRvIGRpc3BsYXkgYSBsaXN0IG9mIGFsbCB5b3VyIGJv b2ttYXJrcyBpbiBhIHNlcGFyYXRlIGJ1ZmZlciwgdHlwZQrigJhDLXggciBs4oCZICjigJhsaXN0 LWJvb2ttYXJrc+KAmSkuICBJZiB5b3Ugc3dpdGNoIHRvIHRoYXQgYnVmZmVyLCB5b3UgY2FuIHVz ZQppdCB0byBlZGl0IHlvdXIgYm9va21hcmsgZGVmaW5pdGlvbnMgb3IgYW5ub3RhdGUgdGhlIGJv b2ttYXJrcy4gIFR5cGUK4oCYQy1oIG3igJkgaW4gdGhlIGJvb2ttYXJrIGJ1ZmZlciBmb3IgbW9y ZSBpbmZvcm1hdGlvbiBhYm91dCBpdHMgc3BlY2lhbAplZGl0aW5nIGNvbW1hbmRzLgoKICAgV2hl biB5b3Uga2lsbCBFbWFjcywgRW1hY3Mgc2F2ZXMgeW91ciBib29rbWFya3MsIGlmIHlvdSBoYXZl IGNoYW5nZWQKYW55IGJvb2ttYXJrIHZhbHVlcy4gIFlvdSBjYW4gYWxzbyBzYXZlIHRoZSBib29r bWFya3MgYXQgYW55IHRpbWUgd2l0aAp0aGUg4oCYTS14IGJvb2ttYXJrLXNhdmXigJkgY29tbWFu ZC4gIEJvb2ttYXJrcyBhcmUgc2F2ZWQgdG8gdGhlIGZpbGUK4oCYfi8uZW1hY3MuZC9ib29rbWFy a3PigJkgKGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgdmVyc2lvbnMgb2YgRW1hY3MsCmlm IHlvdSBoYXZlIGEgZmlsZSBuYW1lZCDigJh+Ly5lbWFjcy5ibWvigJksIHRoYXQgaXMgdXNlZCBp bnN0ZWFkKS4gIFRoZQpib29rbWFyayBjb21tYW5kcyBsb2FkIHlvdXIgZGVmYXVsdCBib29rbWFy ayBmaWxlIGF1dG9tYXRpY2FsbHkuICBUaGlzCnNhdmluZyBhbmQgbG9hZGluZyBpcyBob3cgYm9v a21hcmtzIHBlcnNpc3QgZnJvbSBvbmUgRW1hY3Mgc2Vzc2lvbiB0bwp0aGUgbmV4dC4KCiAgIElm IHlvdSBzZXQgdGhlIHZhcmlhYmxlIOKAmGJvb2ttYXJrLXNhdmUtZmxhZ+KAmSB0byAxLCBlYWNo IGNvbW1hbmQgdGhhdApzZXRzIGEgYm9va21hcmsgd2lsbCBhbHNvIHNhdmUgeW91ciBib29rbWFy a3M7IHRoaXMgd2F5LCB5b3UgZG9u4oCZdCBsb3NlCmFueSBib29rbWFyayB2YWx1ZXMgZXZlbiBp ZiBFbWFjcyBjcmFzaGVzLiAgVGhlIHZhbHVlLCBpZiBhIG51bWJlciwgc2F5cwpob3cgbWFueSBi b29rbWFyayBtb2RpZmljYXRpb25zIHNob3VsZCBnbyBieSBiZXR3ZWVuIHNhdmluZy4gIElmIHlv dSBzZXQKdGhpcyB2YXJpYWJsZSB0byDigJhuaWzigJksIEVtYWNzIG9ubHkgc2F2ZXMgYm9va21h cmtzIGlmIHlvdSBleHBsaWNpdGx5IHVzZQrigJhNLXggYm9va21hcmstc2F2ZeKAmS4KCiAgIFRo ZSB2YXJpYWJsZSDigJhib29rbWFyay1kZWZhdWx0LWZpbGXigJkgc3BlY2lmaWVzIHRoZSBmaWxl IGluIHdoaWNoIHRvCnNhdmUgYm9va21hcmtzIGJ5IGRlZmF1bHQuCgogICBCb29rbWFyayBwb3Np dGlvbiB2YWx1ZXMgYXJlIHNhdmVkIHdpdGggc3Vycm91bmRpbmcgY29udGV4dCwgc28gdGhhdAri gJhib29rbWFyay1qdW1w4oCZIGNhbiBmaW5kIHRoZSBwcm9wZXIgcG9zaXRpb24gZXZlbiBpZiB0 aGUgZmlsZSBpcwptb2RpZmllZCBzbGlnaHRseS4gIFRoZSB2YXJpYWJsZSDigJhib29rbWFyay1z ZWFyY2gtc2l6ZeKAmSBzYXlzIGhvdyBtYW55CmNoYXJhY3RlcnMgb2YgY29udGV4dCB0byByZWNv cmQgb24gZWFjaCBzaWRlIG9mIHRoZSBib29rbWFya+KAmXMgcG9zaXRpb24uCgogICBIZXJlIGFy ZSBzb21lIGFkZGl0aW9uYWwgY29tbWFuZHMgZm9yIHdvcmtpbmcgd2l0aCBib29rbWFya3M6Cgri gJhNLXggYm9va21hcmstbG9hZCA8UkVUPiBGSUxFTkFNRSA8UkVUPuKAmQogICAgIExvYWQgYSBm aWxlIG5hbWVkIEZJTEVOQU1FIHRoYXQgY29udGFpbnMgYSBsaXN0IG9mIGJvb2ttYXJrIHZhbHVl cy4KICAgICBZb3UgY2FuIHVzZSB0aGlzIGNvbW1hbmQsIGFzIHdlbGwgYXMg4oCYYm9va21hcmst d3JpdGXigJksIHRvIHdvcmsgd2l0aAogICAgIG90aGVyIGZpbGVzIG9mIGJvb2ttYXJrIHZhbHVl cyBpbiBhZGRpdGlvbiB0byB5b3VyIGRlZmF1bHQgYm9va21hcmsKICAgICBmaWxlLgoK4oCYTS14 IGJvb2ttYXJrLXdyaXRlIDxSRVQ+IEZJTEVOQU1FIDxSRVQ+4oCZCiAgICAgU2F2ZSBhbGwgdGhl IGN1cnJlbnQgYm9va21hcmsgdmFsdWVzIGluIHRoZSBmaWxlIEZJTEVOQU1FLgoK4oCYTS14IGJv b2ttYXJrLWRlbGV0ZSA8UkVUPiBCT09LTUFSSyA8UkVUPuKAmQogICAgIERlbGV0ZSB0aGUgYm9v a21hcmsgbmFtZWQgQk9PS01BUksuCgrigJhNLXggYm9va21hcmstaW5zZXJ0LWxvY2F0aW9uIDxS RVQ+IEJPT0tNQVJLIDxSRVQ+4oCZCiAgICAgSW5zZXJ0IGluIHRoZSBidWZmZXIgdGhlIG5hbWUg b2YgdGhlIGZpbGUgdGhhdCBib29rbWFyayBCT09LTUFSSwogICAgIHBvaW50cyB0by4KCuKAmE0t eCBib29rbWFyay1pbnNlcnQgPFJFVD4gQk9PS01BUksgPFJFVD7igJkKICAgICBJbnNlcnQgaW4g dGhlIGJ1ZmZlciB0aGUgX2NvbnRlbnRzXyBvZiB0aGUgZmlsZSB0aGF0IGJvb2ttYXJrCiAgICAg Qk9PS01BUksgcG9pbnRzIHRvLgoKCiogMTQgQ29udHJvbGxpbmcgdGhlIERpc3BsYXkKClNpbmNl IG9ubHkgcGFydCBvZiBhIGxhcmdlIGJ1ZmZlciBmaXRzIGluIHRoZSB3aW5kb3csIEVtYWNzIGhh cyB0byBzaG93Cm9ubHkgYSBwYXJ0IG9mIGl0LiAgVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyBjb21t YW5kcyBhbmQgdmFyaWFibGVzIHRoYXQKbGV0IHlvdSBzcGVjaWZ5IHdoaWNoIHBhcnQgb2YgdGhl IHRleHQgeW91IHdhbnQgdG8gc2VlLCBhbmQgaG93IHRoZSB0ZXh0CmlzIGRpc3BsYXllZC4KCisg TWVudToKCiAgLSBTY3JvbGxpbmc6OiAgICAgICAgICAgICAgQ29tbWFuZHMgdG8gbW92ZSB0ZXh0 IHVwIGFuZCBkb3duIGluIGEgd2luZG93LgogIC0gUmVjZW50ZXJpbmc6OiAgICAgICAgICAgIEEg c2Nyb2xsIGNvbW1hbmQgdGhhdCBjZW50ZXJzIHRoZSBjdXJyZW50IGxpbmUuCiAgLSBBdXRvIFNj cm9sbGluZzo6ICAgICAgICAgUmVkaXNwbGF5IHNjcm9sbHMgdGV4dCBhdXRvbWF0aWNhbGx5IHdo ZW4gbmVlZGVkLgogIC0gSG9yaXpvbnRhbCBTY3JvbGxpbmc6OiAgIE1vdmluZyB0ZXh0IGxlZnQg YW5kIHJpZ2h0IGluIGEgd2luZG93LgogIC0gTmFycm93aW5nOjogICAgICAgICAgICAgIFJlc3Ry aWN0aW5nIGRpc3BsYXkgYW5kIGVkaXRpbmcgdG8gYSBwb3J0aW9uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2YgdGhlIGJ1ZmZlci4KICAtIFZpZXcgTW9kZTo6ICAgICAgICAgICAgICBW aWV3aW5nIHJlYWQtb25seSBidWZmZXJzLgogIC0gRm9sbG93IE1vZGU6OiAgICAgICAgICAgIEZv bGxvdyBtb2RlIGxldHMgdHdvIHdpbmRvd3Mgc2Nyb2xsIGFzIG9uZS4KICAtIEZhY2VzOjogICAg ICAgICAgICAgICAgICBIb3cgdG8gY2hhbmdlIHRoZSBkaXNwbGF5IHN0eWxlIHVzaW5nIGZhY2Vz LgogIC0gQ29sb3JzOjogICAgICAgICAgICAgICAgIFNwZWNpZnlpbmcgY29sb3JzIGZvciBmYWNl cy4KICAtIFN0YW5kYXJkIEZhY2VzOjogICAgICAgICBUaGUgbWFpbiBwcmVkZWZpbmVkIGZhY2Vz LgogIC0gVGV4dCBTY2FsZTo6ICAgICAgICAgICAgIEluY3JlYXNpbmcgb3IgZGVjcmVhc2luZyB0 ZXh0IHNpemUgaW4gYSBidWZmZXIuCiAgLSBGb250IExvY2s6OiAgICAgICAgICAgICAgTWlub3Ig bW9kZSBmb3Igc3ludGFjdGljIGhpZ2hsaWdodGluZyB1c2luZyBmYWNlcy4KICAtIEhpZ2hsaWdo dCBJbnRlcmFjdGl2ZWx5OjogVGVsbCBFbWFjcyB3aGF0IHRleHQgdG8gaGlnaGxpZ2h0LgogIC0g RnJpbmdlczo6ICAgICAgICAgICAgICAgIEVuYWJsaW5nIG9yIGRpc2FibGluZyB3aW5kb3cgZnJp bmdlcy4KICAtIERpc3BsYXlpbmcgQm91bmRhcmllczo6ICBEaXNwbGF5aW5nIHRvcCBhbmQgYm90 dG9tIG9mIHRoZSBidWZmZXIuCiAgLSBVc2VsZXNzIFdoaXRlc3BhY2U6OiAgICAgU2hvd2luZyBw b3NzaWJseSBzcHVyaW91cyB0cmFpbGluZyB3aGl0ZXNwYWNlLgogIC0gU2VsZWN0aXZlIERpc3Bs YXk6OiAgICAgIEhpZGluZyBsaW5lcyB3aXRoIGxvdHMgb2YgaW5kZW50YXRpb24uCiAgLSBPcHRp b25hbCBNb2RlIExpbmU6OiAgICAgT3B0aW9uYWwgbW9kZSBsaW5lIGRpc3BsYXkgZmVhdHVyZXMu CiAgLSBUZXh0IERpc3BsYXk6OiAgICAgICAgICAgSG93IHRleHQgY2hhcmFjdGVycyBhcmUgbm9y bWFsbHkgZGlzcGxheWVkLgogIC0gQ3Vyc29yIERpc3BsYXk6OiAgICAgICAgIEZlYXR1cmVzIGZv ciBkaXNwbGF5aW5nIHRoZSBjdXJzb3IuCiAgLSBMaW5lIFRydW5jYXRpb246OiAgICAgICAgVHJ1 bmNhdGluZyBsaW5lcyB0byBmaXQgdGhlIHNjcmVlbiB3aWR0aCBpbnN0ZWFkCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2YgY29udGludWluZyB0aGVtIHRvIG11bHRpcGxlIHNjcmVlbiBs aW5lcy4KICAtIFZpc3VhbCBMaW5lIE1vZGU6OiAgICAgICBXb3JkIHdyYXAgYW5kIHNjcmVlbiBs aW5lLWJhc2VkIGVkaXRpbmcuCiAgLSBEaXNwbGF5IEN1c3RvbTo6ICAgICAgICAgSW5mb3JtYXRp b24gb24gdmFyaWFibGVzIGZvciBjdXN0b21pemluZyBkaXNwbGF5LgoKCioqIDE0LjEgU2Nyb2xs aW5nCgpJZiBhIHdpbmRvdyBpcyB0b28gc21hbGwgdG8gZGlzcGxheSBhbGwgdGhlIHRleHQgaW4g aXRzIGJ1ZmZlciwgaXQKZGlzcGxheXMgb25seSBhIHBvcnRpb24gb2YgaXQuICAiU2Nyb2xsaW5n IiBjb21tYW5kcyBjaGFuZ2Ugd2hpY2gKcG9ydGlvbiBvZiB0aGUgYnVmZmVyIGlzIGRpc3BsYXll ZC4KCiAgIFNjcm9sbGluZyBmb3J3YXJkIG9yIHVwIGFkdmFuY2VzIHRoZSBwb3J0aW9uIG9mIHRo ZSBidWZmZXIgZGlzcGxheWVkCmluIHRoZSB3aW5kb3c7IGVxdWl2YWxlbnRseSwgaXQgbW92ZXMg dGhlIGJ1ZmZlciB0ZXh0IHVwd2FyZHMgcmVsYXRpdmUKdG8gdGhlIHdpbmRvdy4gIFNjcm9sbGlu ZyBiYWNrd2FyZCBvciBkb3duIGRpc3BsYXlzIGFuIGVhcmxpZXIgcG9ydGlvbgpvZiB0aGUgYnVm ZmVyLCBhbmQgbW92ZXMgdGhlIHRleHQgZG93bndhcmRzIHJlbGF0aXZlIHRvIHRoZSB3aW5kb3cu CgogICBJbiBFbWFjcywgc2Nyb2xsaW5nIHVwIG9yIGRvd24gcmVmZXJzIHRvIHRoZSBkaXJlY3Rp b24gdGhhdCB0aGUgdGV4dAptb3ZlcyBpbiB0aGUgd2luZG93LCBfbm90XyB0aGUgZGlyZWN0aW9u IHRoYXQgdGhlIHdpbmRvdyBtb3ZlcyByZWxhdGl2ZQp0byB0aGUgdGV4dC4gIFRoaXMgdGVybWlu b2xvZ3kgd2FzIGFkb3B0ZWQgYnkgRW1hY3MgYmVmb3JlIHRoZSBtb2Rlcm4KbWVhbmluZyBvZiDi gJxzY3JvbGxpbmcgdXDigJ0gYW5kIOKAnHNjcm9sbGluZyBkb3du4oCdIGJlY2FtZSB3aWRlc3By ZWFkLgpIZW5jZSwgdGhlIHN0cmFuZ2UgcmVzdWx0IHRoYXQgPFBhZ2VEb3duPiBzY3JvbGxzIHVw IGluIHRoZSBFbWFjcyBzZW5zZS4KCiAgIFRoZSBwb3J0aW9uIG9mIGEgYnVmZmVyIGRpc3BsYXll ZCBpbiBhIHdpbmRvdyBhbHdheXMgY29udGFpbnMgcG9pbnQuCklmIHlvdSBtb3ZlIHBvaW50IHBh c3QgdGhlIGJvdHRvbSBvciB0b3Agb2YgdGhlIHdpbmRvdywgc2Nyb2xsaW5nIG9jY3VycwphdXRv bWF0aWNhbGx5IHRvIGJyaW5nIGl0IGJhY2sgb25zY3JlZW4gKCpub3RlIEF1dG8gU2Nyb2xsaW5n OjopLiAgWW91CmNhbiBhbHNvIHNjcm9sbCBleHBsaWNpdGx5IHdpdGggdGhlc2UgY29tbWFuZHM6 CgrigJhDLXbigJkK4oCYPFBhZ2VEb3duPuKAmQrigJg8bmV4dD7igJkKICAgICBTY3JvbGwgZm9y d2FyZCBieSBuZWFybHkgYSBmdWxsIHdpbmRvdyAo4oCYc2Nyb2xsLXVwLWNvbW1hbmTigJkpLgri gJhNLXbigJkK4oCYPFBhZ2VVcD7igJkK4oCYPHByaW9yPuKAmQogICAgIFNjcm9sbCBiYWNrd2Fy ZCAo4oCYc2Nyb2xsLWRvd24tY29tbWFuZOKAmSkuCgogICDigJhDLXbigJkgKOKAmHNjcm9sbC11 cC1jb21tYW5k4oCZKSBzY3JvbGxzIGZvcndhcmQgYnkgbmVhcmx5IHRoZSB3aG9sZQp3aW5kb3cg aGVpZ2h0LiAgVGhlIGVmZmVjdCBpcyB0byB0YWtlIHRoZSB0d28gbGluZXMgYXQgdGhlIGJvdHRv bSBvZiB0aGUKd2luZG93IGFuZCBwdXQgdGhlbSBhdCB0aGUgdG9wLCBmb2xsb3dlZCBieSBsaW5l cyB0aGF0IHdlcmUgbm90CnByZXZpb3VzbHkgdmlzaWJsZS4gIElmIHBvaW50IHdhcyBpbiB0aGUg dGV4dCB0aGF0IHNjcm9sbGVkIG9mZiB0aGUgdG9wLAppdCBlbmRzIHVwIG9uIHRoZSB3aW5kb3fi gJlzIG5ldyB0b3Btb3N0IGxpbmUuICBUaGUgPFBhZ2VEb3duPiAob3IgPG5leHQ+KQprZXkgaXMg ZXF1aXZhbGVudCB0byDigJhDLXbigJkuCgogICDigJhNLXbigJkgKOKAmHNjcm9sbC1kb3duLWNv bW1hbmTigJkpIHNjcm9sbHMgYmFja3dhcmQgaW4gYSBzaW1pbGFyIHdheS4gIFRoZQo8UGFnZVVw PiAob3IgPHByaW9yPikga2V5IGlzIGVxdWl2YWxlbnQgdG8g4oCYTS124oCZLgoKICAgVGhlIG51 bWJlciBvZiBsaW5lcyBvZiBvdmVybGFwIGxlZnQgYnkgdGhlc2Ugc2Nyb2xsIGNvbW1hbmRzIGlz CmNvbnRyb2xsZWQgYnkgdGhlIHZhcmlhYmxlIOKAmG5leHQtc2NyZWVuLWNvbnRleHQtbGluZXPi gJksIHdob3NlIGRlZmF1bHQKdmFsdWUgaXMgMi4gIFlvdSBjYW4gc3VwcGx5IHRoZSBjb21tYW5k cyB3aXRoIGEgbnVtZXJpYyBwcmVmaXggYXJndW1lbnQsCk4sIHRvIHNjcm9sbCBieSBOIGxpbmVz OyBFbWFjcyBhdHRlbXB0cyB0byBsZWF2ZSBwb2ludCB1bmNoYW5nZWQsIHNvCnRoYXQgdGhlIHRl eHQgYW5kIHBvaW50IG1vdmUgdXAgb3IgZG93biB0b2dldGhlci4gIOKAmEMtduKAmSB3aXRoIGEg bmVnYXRpdmUKYXJndW1lbnQgaXMgbGlrZSDigJhNLXbigJkgYW5kIHZpY2UgdmVyc2EuCgogICBC eSBkZWZhdWx0LCB0aGVzZSBjb21tYW5kcyBzaWduYWwgYW4gZXJyb3IgKGJ5IGJlZXBpbmcgb3Ig Zmxhc2hpbmcKdGhlIHNjcmVlbikgaWYgbm8gbW9yZSBzY3JvbGxpbmcgaXMgcG9zc2libGUsIGJl Y2F1c2UgdGhlIHdpbmRvdyBoYXMKcmVhY2hlZCB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiB0aGUg YnVmZmVyLiAgSWYgeW91IGNoYW5nZSB0aGUgdmFyaWFibGUK4oCYc2Nyb2xsLWVycm9yLXRvcC1i b3R0b23igJkgdG8g4oCYdOKAmSwgdGhlc2UgY29tbWFuZHMgbW92ZSBwb2ludCB0byB0aGUKZmFy dGhlc3QgcG9zc2libGUgcG9zaXRpb24uICBJZiBwb2ludCBpcyBhbHJlYWR5IHRoZXJlLCB0aGUg Y29tbWFuZHMKc2lnbmFsIGFuIGVycm9yLgoKICAgU29tZSB1c2VycyBsaWtlIHNjcm9sbCBjb21t YW5kcyB0byBrZWVwIHBvaW50IGF0IHRoZSBzYW1lIHNjcmVlbgpwb3NpdGlvbiwgc28gdGhhdCBz Y3JvbGxpbmcgYmFjayB0byB0aGUgc2FtZSBzY3JlZW4gY29udmVuaWVudGx5IHJldHVybnMKcG9p bnQgdG8gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLiAgWW91IGNhbiBlbmFibGUgdGhpcyBiZWhhdmlv ciB2aWEgdGhlCnZhcmlhYmxlIOKAmHNjcm9sbC1wcmVzZXJ2ZS1zY3JlZW4tcG9zaXRpb27igJku ICBJZiB0aGUgdmFsdWUgaXMg4oCYdOKAmSwgRW1hY3MKYWRqdXN0cyBwb2ludCB0byBrZWVwIHRo ZSBjdXJzb3IgYXQgdGhlIHNhbWUgc2NyZWVuIHBvc2l0aW9uIHdoZW5ldmVyIGEKc2Nyb2xsIGNv bW1hbmQgbW92ZXMgaXQgb2ZmLXdpbmRvdywgcmF0aGVyIHRoYW4gbW92aW5nIGl0IHRvIHRoZSB0 b3Btb3N0Cm9yIGJvdHRvbW1vc3QgbGluZS4gIFdpdGggYW55IG90aGVyIG5vbi3igJhuaWzigJkg dmFsdWUsIEVtYWNzIGFkanVzdHMgcG9pbnQKdGhpcyB3YXkgZXZlbiBpZiB0aGUgc2Nyb2xsIGNv bW1hbmQgbGVhdmVzIHBvaW50IGluIHRoZSB3aW5kb3cuICBUaGlzCnZhcmlhYmxlIGFmZmVjdHMg YWxsIHRoZSBzY3JvbGwgY29tbWFuZHMgZG9jdW1lbnRlZCBpbiB0aGlzIHNlY3Rpb24sIGFzCndl bGwgYXMgc2Nyb2xsaW5nIHdpdGggdGhlIG1vdXNlIHdoZWVsICgqbm90ZSBNb3VzZSBDb21tYW5k czo6KTsgaW4KZ2VuZXJhbCwgaXQgYWZmZWN0cyBhbnkgY29tbWFuZCB0aGF0IGhhcyBhIG5vbi3i gJhuaWzigJkg4oCYc2Nyb2xsLWNvbW1hbmTigJkKcHJvcGVydHkuICAqTm90ZSAoZWxpc3ApUHJv cGVydHkgTGlzdHM6Oi4KCiAgIFNvbWV0aW1lcywgcGFydGljdWxhcmx5IHdoZW4geW91IGhvbGQg ZG93biBrZXlzIHN1Y2ggYXMg4oCYQy124oCZIGFuZArigJhNLXbigJksIGFjdGl2YXRpbmcga2V5 Ym9hcmQgYXV0by1yZXBlYXQsIEVtYWNzIGZhaWxzIHRvIGtlZXAgdXAgd2l0aCB0aGUKcmFwaWQg cmF0ZSBvZiBzY3JvbGxpbmcgcmVxdWVzdGVkOyB0aGUgZGlzcGxheSBkb2VzbuKAmXQgdXBkYXRl IGFuZCBFbWFjcwpjYW4gYmVjb21lIHVucmVzcG9uc2l2ZSB0byBpbnB1dCBmb3IgcXVpdGUgYSBs b25nIHRpbWUuICBZb3UgY2FuIGNvdW50ZXIKdGhpcyBzbHVnZ2lzaG5lc3MgYnkgc2V0dGluZyB0 aGUgdmFyaWFibGUg4oCYZmFzdC1idXQtaW1wcmVjaXNlLXNjcm9sbGluZ+KAmQp0byBhIG5vbi3i gJhuaWzigJkgdmFsdWUuICBUaGlzIGluc3RydWN0cyB0aGUgc2Nyb2xsaW5nIGNvbW1hbmRzIG5v dCB0bwpmb250aWZ5ICgqbm90ZSBGb250IExvY2s6OikgYW55IHVuZm9udGlmaWVkIHRleHQgdGhl eSBzY3JvbGwgb3ZlciwKaW5zdGVhZCB0byBhc3N1bWUgaXQgaGFzIHRoZSBkZWZhdWx0IGZhY2Uu ICBUaGlzIGNhbiBjYXVzZSBFbWFjcyB0bwpzY3JvbGwgdG8gc29tZXdoYXQgd3JvbmcgYnVmZmVy IHBvc2l0aW9ucyB3aGVuIHRoZSBmYWNlcyBpbiB1c2UgYXJlIG5vdAphbGwgdGhlIHNhbWUgc2l6 ZSwgZXZlbiB3aXRoIHNpbmdsZSAoaS5lLiwgd2l0aG91dCBhdXRvLXJlcGVhdCkKc2Nyb2xsaW5n IG9wZXJhdGlvbnMuCgogICBUaGUgY29tbWFuZHMg4oCYTS14IHNjcm9sbC11cOKAmSBhbmQg4oCY TS14IHNjcm9sbC1kb3du4oCZIGJlaGF2ZSBzaW1pbGFybHkKdG8g4oCYc2Nyb2xsLXVwLWNvbW1h bmTigJkgYW5kIOKAmHNjcm9sbC1kb3duLWNvbW1hbmTigJksIGV4Y2VwdCB0aGV5IGRvIG5vdApv YmV5IOKAmHNjcm9sbC1lcnJvci10b3AtYm90dG9t4oCZLiAgUHJpb3IgdG8gRW1hY3MgMjQsIHRo ZXNlIHdlcmUgdGhlCmRlZmF1bHQgY29tbWFuZHMgZm9yIHNjcm9sbGluZyB1cCBhbmQgZG93bi4g IFRoZSBjb21tYW5kcyDigJhNLXgKc2Nyb2xsLXVwLWxpbmXigJkgYW5kIOKAmE0teCBzY3JvbGwt ZG93bi1saW5l4oCZIHNjcm9sbCB0aGUgY3VycmVudCB3aW5kb3cgYnkKb25lIGxpbmUgYXQgYSB0 aW1lLiAgSWYgeW91IGludGVuZCB0byB1c2UgYW55IG9mIHRoZXNlIGNvbW1hbmRzLCB5b3UKbWln aHQgd2FudCB0byBnaXZlIHRoZW0ga2V5IGJpbmRpbmdzICgqbm90ZSBJbml0IFJlYmluZGluZzo6 KS4KCgoqKiAxNC4yIFJlY2VudGVyaW5nCgrigJhDLWzigJkKICAgICBTY3JvbGwgdGhlIHNlbGVj dGVkIHdpbmRvdyBzbyB0aGUgY3VycmVudCBsaW5lIGlzIHRoZSBjZW50ZXItbW9zdAogICAgIHRl eHQgbGluZTsgb24gc3Vic2VxdWVudCBjb25zZWN1dGl2ZSBpbnZvY2F0aW9ucywgbWFrZSB0aGUg Y3VycmVudAogICAgIGxpbmUgdGhlIHRvcCBsaW5lLCB0aGUgYm90dG9tIGxpbmUsIGFuZCBzbyBv biBpbiBjeWNsaWMgb3JkZXIuCiAgICAgUG9zc2libHkgcmVkaXNwbGF5IHRoZSBzY3JlZW4gdG9v ICjigJhyZWNlbnRlci10b3AtYm90dG9t4oCZKS4KCuKAmE0teCByZWNlbnRlcuKAmQogICAgIFNj cm9sbCB0aGUgc2VsZWN0ZWQgd2luZG93IHNvIHRoZSBjdXJyZW50IGxpbmUgaXMgdGhlIGNlbnRl ci1tb3N0CiAgICAgdGV4dCBsaW5lLiAgUG9zc2libHkgcmVkaXNwbGF5IHRoZSBzY3JlZW4gdG9v LgoK4oCYQy1NLWzigJkKICAgICBTY3JvbGwgaGV1cmlzdGljYWxseSB0byBicmluZyB1c2VmdWwg aW5mb3JtYXRpb24gb250byB0aGUgc2NyZWVuCiAgICAgKOKAmHJlcG9zaXRpb24td2luZG934oCZ KS4KCiAgIFRoZSDigJhDLWzigJkgKOKAmHJlY2VudGVyLXRvcC1ib3R0b23igJkpIGNvbW1hbmQg InJlY2VudGVycyIgdGhlIHNlbGVjdGVkCndpbmRvdywgc2Nyb2xsaW5nIGl0IHNvIHRoYXQgdGhl IGN1cnJlbnQgc2NyZWVuIGxpbmUgaXMgZXhhY3RseSBpbiB0aGUKY2VudGVyIG9mIHRoZSB3aW5k b3csIG9yIGFzIGNsb3NlIHRvIHRoZSBjZW50ZXIgYXMgcG9zc2libGUuCgogICBUeXBpbmcg4oCY Qy1s4oCZIHR3aWNlIGluIGEgcm93ICjigJhDLWwgQy1s4oCZKSBzY3JvbGxzIHRoZSB3aW5kb3cg c28gdGhhdApwb2ludCBpcyBvbiB0aGUgdG9wbW9zdCBzY3JlZW4gbGluZS4gIFR5cGluZyBhIHRo aXJkIOKAmEMtbOKAmSBzY3JvbGxzIHRoZQp3aW5kb3cgc28gdGhhdCBwb2ludCBpcyBvbiB0aGUg Ym90dG9tLW1vc3Qgc2NyZWVuIGxpbmUuICBFYWNoIHN1Y2Nlc3NpdmUK4oCYQy1s4oCZIGN5Y2xl cyB0aHJvdWdoIHRoZXNlIHRocmVlIHBvc2l0aW9ucy4KCiAgIFlvdSBjYW4gY2hhbmdlIHRoZSBj eWNsaW5nIG9yZGVyIGJ5IGN1c3RvbWl6aW5nIHRoZSBsaXN0IHZhcmlhYmxlCuKAmHJlY2VudGVy LXBvc2l0aW9uc+KAmS4gIEVhY2ggbGlzdCBlbGVtZW50IHNob3VsZCBiZSB0aGUgc3ltYm9sIOKA mHRvcOKAmSwK4oCYbWlkZGxl4oCZLCBvciDigJhib3R0b23igJksIG9yIGEgbnVtYmVyOyBhbiBp bnRlZ2VyIG1lYW5zIHRvIG1vdmUgdGhlIGxpbmUgdG8KdGhlIHNwZWNpZmllZCBzY3JlZW4gbGlu ZSwgd2hpbGUgYSBmbG9hdGluZy1wb2ludCBudW1iZXIgYmV0d2VlbiAwLjAgYW5kCjEuMCBzcGVj aWZpZXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzY3JlZW4gc3BhY2UgZnJvbSB0aGUgdG9wIG9mIHRo ZQp3aW5kb3cuICBUaGUgZGVmYXVsdCwg4oCYKG1pZGRsZSB0b3AgYm90dG9tKeKAmSwgaXMgdGhl IGN5Y2xpbmcgb3JkZXIKZGVzY3JpYmVkIGFib3ZlLiAgRnVydGhlcm1vcmUsIGlmIHlvdSBjaGFu Z2UgdGhlIHZhcmlhYmxlCuKAmHNjcm9sbC1tYXJnaW7igJkgdG8gYSBub24temVybyB2YWx1ZSBO LCDigJhDLWzigJkgYWx3YXlzIGxlYXZlcyBhdCBsZWFzdCBOCnNjcmVlbiBsaW5lcyBiZXR3ZWVu IHBvaW50IGFuZCB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgd2luZG93ICgqbm90ZQpBdXRvIFNj cm9sbGluZzo6KS4KCiAgIFlvdSBjYW4gYWxzbyBnaXZlIOKAmEMtbOKAmSBhIHByZWZpeCBhcmd1 bWVudC4gIEEgcGxhaW4gcHJlZml4IGFyZ3VtZW50LArigJhDLXUgQy1s4oCZLCBzaW1wbHkgcmVj ZW50ZXJzIHBvaW50LiAgQSBwb3NpdGl2ZSBhcmd1bWVudCBOIHB1dHMgcG9pbnQgTgpsaW5lcyBk b3duIGZyb20gdGhlIHRvcCBvZiB0aGUgd2luZG93LiAgQW4gYXJndW1lbnQgb2YgemVybyBwdXRz IHBvaW50Cm9uIHRoZSB0b3Btb3N0IGxpbmUuICBBIG5lZ2F0aXZlIGFyZ3VtZW50IC1OIHB1dHMg cG9pbnQgTiBsaW5lcyBmcm9tIHRoZQpib3R0b20gb2YgdGhlIHdpbmRvdy4gIFdoZW4gZ2l2ZW4g YW4gYXJndW1lbnQsIOKAmEMtbOKAmSBkb2VzIG5vdCBjbGVhciB0aGUKc2NyZWVuIG9yIGN5Y2xl IHRocm91Z2ggZGlmZmVyZW50IHNjcmVlbiBwb3NpdGlvbnMuCgogICBJZiB0aGUgdmFyaWFibGUg 4oCYcmVjZW50ZXItcmVkaXNwbGF54oCZIGhhcyBhIG5vbi3igJhuaWzigJkgdmFsdWUsIGVhY2gK aW52b2NhdGlvbiBvZiDigJhDLWzigJkgYWxzbyBjbGVhcnMgYW5kIHJlZGlzcGxheXMgdGhlIHNj cmVlbjsgdGhlIHNwZWNpYWwKdmFsdWUg4oCYdHR54oCZICh0aGUgZGVmYXVsdCkgc2F5cyB0byBk byB0aGlzIG9uIHRleHQtdGVybWluYWwgZnJhbWVzIG9ubHkuClJlZGlzcGxheWluZyBpcyB1c2Vm dWwgaW4gY2FzZSB0aGUgc2NyZWVuIGJlY29tZXMgZ2FyYmxlZCBmb3IgYW55IHJlYXNvbgooKm5v dGUgU2NyZWVuIEdhcmJsZWQ6OikuCgogICBUaGUgbW9yZSBwcmltaXRpdmUgY29tbWFuZCDigJhN LXggcmVjZW50ZXLigJkgYmVoYXZlcyBsaWtlCuKAmHJlY2VudGVyLXRvcC1ib3R0b23igJksIGJ1 dCBkb2VzIG5vdCBjeWNsZSBhbW9uZyBzY3JlZW4gcG9zaXRpb25zLgoKICAg4oCYQy1NLWzigJkg KOKAmHJlcG9zaXRpb24td2luZG934oCZKSBzY3JvbGxzIHRoZSBjdXJyZW50IHdpbmRvdwpoZXVy aXN0aWNhbGx5IGluIGEgd2F5IGRlc2lnbmVkIHRvIGdldCB1c2VmdWwgaW5mb3JtYXRpb24gb250 byB0aGUKc2NyZWVuLiAgRm9yIGV4YW1wbGUsIGluIGEgTGlzcCBmaWxlLCB0aGlzIGNvbW1hbmQg dHJpZXMgdG8gZ2V0IHRoZQplbnRpcmUgY3VycmVudCBkZWZ1biBvbnRvIHRoZSBzY3JlZW4gaWYg cG9zc2libGUuCgoKKiogMTQuMyBBdXRvbWF0aWMgU2Nyb2xsaW5nCgpFbWFjcyBwZXJmb3JtcyAi YXV0b21hdGljIHNjcm9sbGluZyIgd2hlbiBwb2ludCBtb3ZlcyBvdXQgb2YgdGhlIHZpc2libGUK cG9ydGlvbiBvZiB0aGUgdGV4dC4gIE5vcm1hbGx5LCBhdXRvbWF0aWMgc2Nyb2xsaW5nIGNlbnRl cnMgcG9pbnQKdmVydGljYWxseSBpbiB0aGUgd2luZG93LCBidXQgdGhlcmUgYXJlIHNldmVyYWwg d2F5cyB0byBhbHRlciB0aGlzCmJlaGF2aW9yLgoKICAgSWYgeW91IHNldCDigJhzY3JvbGwtY29u c2VydmF0aXZlbHnigJkgdG8gYSBzbWFsbCBudW1iZXIgTiwgdGhlbiBtb3ZpbmcKcG9pbnQganVz dCBhIGxpdHRsZSBvZmYgdGhlIHNjcmVlbiAobm8gbW9yZSB0aGFuIE4gbGluZXMpIGNhdXNlcyBF bWFjcwp0byBzY3JvbGwganVzdCBlbm91Z2ggdG8gYnJpbmcgcG9pbnQgYmFjayBvbiBzY3JlZW47 IGlmIGRvaW5nIHNvIGZhaWxzCnRvIG1ha2UgcG9pbnQgdmlzaWJsZSwgRW1hY3Mgc2Nyb2xscyBq dXN0IGZhciBlbm91Z2ggdG8gY2VudGVyIHBvaW50IGluCnRoZSB3aW5kb3cuICBJZiB5b3Ugc2V0 IOKAmHNjcm9sbC1jb25zZXJ2YXRpdmVseeKAmSB0byBhIGxhcmdlIG51bWJlcgoobGFyZ2VyIHRo YW4gMTAwKSwgYXV0b21hdGljIHNjcm9sbGluZyBuZXZlciBjZW50ZXJzIHBvaW50LCBubyBtYXR0 ZXIKaG93IGZhciBwb2ludCBtb3ZlczsgRW1hY3MgYWx3YXlzIHNjcm9sbHMgdGV4dCBqdXN0IGVu b3VnaCB0byBicmluZwpwb2ludCBpbnRvIHZpZXcsIGVpdGhlciBhdCB0aGUgdG9wIG9yIGJvdHRv bSBvZiB0aGUgd2luZG93IGRlcGVuZGluZyBvbgp0aGUgc2Nyb2xsIGRpcmVjdGlvbi4gIEJ5IGRl ZmF1bHQsIOKAmHNjcm9sbC1jb25zZXJ2YXRpdmVseeKAmSBpcyAwLCB3aGljaAptZWFucyB0byBh bHdheXMgY2VudGVyIHBvaW50IGluIHRoZSB3aW5kb3cuCgogICBBbm90aGVyIHdheSB0byBjb250 cm9sIGF1dG9tYXRpYyBzY3JvbGxpbmcgaXMgdG8gY3VzdG9taXplIHRoZQp2YXJpYWJsZSDigJhz Y3JvbGwtc3RlcOKAmS4gIEl0cyB2YWx1ZSBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgbGluZXMg YnkKd2hpY2ggdG8gYXV0b21hdGljYWxseSBzY3JvbGwsIHdoZW4gcG9pbnQgbW92ZXMgb2ZmIHRo ZSBzY3JlZW4uICBJZgpzY3JvbGxpbmcgYnkgdGhhdCBudW1iZXIgb2YgbGluZXMgZmFpbHMgdG8g YnJpbmcgcG9pbnQgYmFjayBpbnRvIHZpZXcsCnBvaW50IGlzIGNlbnRlcmVkIGluc3RlYWQuICBU aGUgZGVmYXVsdCB2YWx1ZSBpcyB6ZXJvLCB3aGljaCAoYnkKZGVmYXVsdCkgY2F1c2VzIHBvaW50 IHRvIGFsd2F5cyBiZSBjZW50ZXJlZCBhZnRlciBzY3JvbGxpbmcuCgogICBBIHRoaXJkIHdheSB0 byBjb250cm9sIGF1dG9tYXRpYyBzY3JvbGxpbmcgaXMgdG8gY3VzdG9taXplIHRoZQp2YXJpYWJs ZXMg4oCYc2Nyb2xsLXVwLWFnZ3Jlc3NpdmVseeKAmSBhbmQg4oCYc2Nyb2xsLWRvd24tYWdncmVz c2l2ZWx54oCZLCB3aGljaApkaXJlY3RseSBzcGVjaWZ5IHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBv ZiBwb2ludCBhZnRlciBzY3JvbGxpbmcuICBUaGUKdmFsdWUgb2Yg4oCYc2Nyb2xsLXVwLWFnZ3Jl c3NpdmVseeKAmSBzaG91bGQgYmUgZWl0aGVyIOKAmG5pbOKAmSAodGhlIGRlZmF1bHQpLApvciBh IGZsb2F0aW5nIHBvaW50IG51bWJlciBGIGJldHdlZW4gMCBhbmQgMS4gIFRoZSBsYXR0ZXIgbWVh bnMgdGhhdAp3aGVuIHBvaW50IGdvZXMgYmVsb3cgdGhlIGJvdHRvbSB3aW5kb3cgZWRnZSAoaS5l Liwgc2Nyb2xsaW5nIGZvcndhcmQpLApFbWFjcyBzY3JvbGxzIHRoZSB3aW5kb3cgc28gdGhhdCBw b2ludCBpcyBGIHBhcnRzIG9mIHRoZSB3aW5kb3cgaGVpZ2h0CmZyb20gdGhlIGJvdHRvbSB3aW5k b3cgZWRnZS4gIFRodXMsIGxhcmdlciBGIG1lYW5zIG1vcmUgYWdncmVzc2l2ZQpzY3JvbGxpbmc6 IG1vcmUgbmV3IHRleHQgaXMgYnJvdWdodCBpbnRvIHZpZXcuICBUaGUgZGVmYXVsdCB2YWx1ZSwK 4oCYbmls4oCZLCBpcyBlcXVpdmFsZW50IHRvIDAuNS4KCiAgIExpa2V3aXNlLCDigJhzY3JvbGwt ZG93bi1hZ2dyZXNzaXZlbHnigJkgaXMgdXNlZCB3aGVuIHBvaW50IGdvZXMgYWJvdmUKdGhlIHRv cCB3aW5kb3cgZWRnZSAoaS5lLiwgc2Nyb2xsaW5nIGJhY2t3YXJkKS4gIFRoZSB2YWx1ZSBzcGVj aWZpZXMgaG93CmZhciBwb2ludCBzaG91bGQgYmUgZnJvbSB0aGUgdG9wIG1hcmdpbiBvZiB0aGUg d2luZG93IGFmdGVyIHNjcm9sbGluZy4KVGh1cywgYXMgd2l0aCDigJhzY3JvbGwtdXAtYWdncmVz c2l2ZWx54oCZLCBhIGxhcmdlciB2YWx1ZSBpcyBtb3JlCmFnZ3Jlc3NpdmUuCgogICBOb3RlIHRo YXQgdGhlIHZhcmlhYmxlcyDigJhzY3JvbGwtY29uc2VydmF0aXZlbHnigJksIOKAmHNjcm9sbC1z dGVw4oCZLCBhbmQK4oCYc2Nyb2xsLXVwLWFnZ3Jlc3NpdmVseeKAmSAvIOKAmHNjcm9sbC1kb3du LWFnZ3Jlc3NpdmVseeKAmSBjb250cm9sIGF1dG9tYXRpYwpzY3JvbGxpbmcgaW4gY29udHJhZGlj dG9yeSB3YXlzLiAgVGhlcmVmb3JlLCB5b3Ugc2hvdWxkIHBpY2sgbm8gbW9yZQp0aGFuIG9uZSBv ZiB0aGVzZSBtZXRob2RzIHRvIGN1c3RvbWl6ZSBhdXRvbWF0aWMgc2Nyb2xsaW5nLiAgSW4gY2Fz ZSB5b3UKY3VzdG9taXplIG11bHRpcGxlIHZhcmlhYmxlcywgdGhlIG9yZGVyIG9mIHByaW9yaXR5 IGlzOgrigJhzY3JvbGwtY29uc2VydmF0aXZlbHnigJksIHRoZW4g4oCYc2Nyb2xsLXN0ZXDigJks IGFuZCBmaW5hbGx5CuKAmHNjcm9sbC11cC1hZ2dyZXNzaXZlbHnigJkgLyDigJhzY3JvbGwtZG93 bi1hZ2dyZXNzaXZlbHnigJkuCgogICBUaGUgdmFyaWFibGUg4oCYc2Nyb2xsLW1hcmdpbuKAmSBy ZXN0cmljdHMgaG93IGNsb3NlIHBvaW50IGNhbiBjb21lIHRvCnRoZSB0b3Agb3IgYm90dG9tIG9m IGEgd2luZG93IChldmVuIGlmIGFnZ3Jlc3NpdmUgc2Nyb2xsaW5nIHNwZWNpZmllcyBhCmZyYWN0 aW9uIEYgdGhhdCBpcyBsYXJnZXIgdGhhbiB0aGUgd2luZG93IHBvcnRpb24gYmV0d2VlbiB0aGUg dG9wIGFuZAp0aGUgYm90dG9tIG1hcmdpbnMpLiAgSXRzIHZhbHVlIGlzIGEgbnVtYmVyIG9mIHNj cmVlbiBsaW5lczsgaWYgcG9pbnQKY29tZXMgd2l0aGluIHRoYXQgbWFueSBsaW5lcyBvZiB0aGUg dG9wIG9yIGJvdHRvbSBvZiB0aGUgd2luZG93LCBFbWFjcwpwZXJmb3JtcyBhdXRvbWF0aWMgc2Ny b2xsaW5nLiAgQnkgZGVmYXVsdCwg4oCYc2Nyb2xsLW1hcmdpbuKAmSBpcyAwLiAgVGhlCmVmZmVj dGl2ZSBtYXJnaW4gc2l6ZSBpcyBsaW1pdGVkIHRvIGEgcXVhcnRlciBvZiB0aGUgd2luZG93IGhl aWdodCBieQpkZWZhdWx0LCBidXQgdGhpcyBsaW1pdCBjYW4gYmUgaW5jcmVhc2VkIHVwIHRvIGhh bGYgKG9yIGRlY3JlYXNlZCBkb3duCnRvIHplcm8pIGJ5IGN1c3RvbWl6aW5nIOKAmG1heGltdW0t c2Nyb2xsLW1hcmdpbuKAmS4KCgoqKiAxNC40IEhvcml6b250YWwgU2Nyb2xsaW5nCgoiSG9yaXpv bnRhbCBzY3JvbGxpbmciIG1lYW5zIHNoaWZ0aW5nIGFsbCB0aGUgbGluZXMgc2lkZXdheXMgd2l0 aGluIGEKd2luZG93LCBzbyB0aGF0IHNvbWUgb2YgdGhlIHRleHQgbmVhciB0aGUgbGVmdCBtYXJn aW4gaXMgbm90IGRpc3BsYXllZC4KV2hlbiB0aGUgdGV4dCBpbiBhIHdpbmRvdyBpcyBzY3JvbGxl ZCBob3Jpem9udGFsbHksIHRleHQgbGluZXMgYXJlCnRydW5jYXRlZCByYXRoZXIgdGhhbiBjb250 aW51ZWQgKCpub3RlIExpbmUgVHJ1bmNhdGlvbjo6KS4gIElmIGEgd2luZG93CnNob3dzIHRydW5j YXRlZCBsaW5lcywgRW1hY3MgcGVyZm9ybXMgYXV0b21hdGljIGhvcml6b250YWwgc2Nyb2xsaW5n CndoZW5ldmVyIHBvaW50IG1vdmVzIG9mZiB0aGUgbGVmdCBvciByaWdodCBlZGdlIG9mIHRoZSBz Y3JlZW4uICBCeQpkZWZhdWx0LCBhbGwgdGhlIGxpbmVzIGluIHRoZSB3aW5kb3cgYXJlIHNjcm9s bGVkIGhvcml6b250YWxseSB0b2dldGhlciwKYnV0IGlmIHlvdSBzZXQgdGhlIHZhcmlhYmxlIOKA mGF1dG8taHNjcm9sbC1tb2Rl4oCZIHRvIHRoZSBzcGVjaWFsIHZhbHVlIG9mCuKAmGN1cnJlbnQt bGluZeKAmSwgb25seSB0aGUgbGluZSBzaG93aW5nIHRoZSBjdXJzb3Igd2lsbCBiZSBzY3JvbGxl ZC4gIFRvCmRpc2FibGUgYXV0b21hdGljIGhvcml6b250YWwgc2Nyb2xsaW5nIGVudGlyZWx5LCBz ZXQgdGhlIHZhcmlhYmxlCuKAmGF1dG8taHNjcm9sbC1tb2Rl4oCZIHRvIOKAmG5pbOKAmS4gIE5v dGUgdGhhdCB3aGVuIHRoZSBhdXRvbWF0aWMgaG9yaXpvbnRhbApzY3JvbGxpbmcgaXMgdHVybmVk IG9mZiwgaWYgcG9pbnQgbW92ZXMgb2ZmIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4sIHRoZQpjdXJz b3IgZGlzYXBwZWFycyB0byBpbmRpY2F0ZSB0aGF0LiAgKE9uIHRleHQgdGVybWluYWxzLCB0aGUg Y3Vyc29yIGlzCmxlZnQgYXQgdGhlIGVkZ2UgaW5zdGVhZC4pCgogICBUaGUgdmFyaWFibGUg4oCY aHNjcm9sbC1tYXJnaW7igJkgY29udHJvbHMgaG93IGNsb3NlIHBvaW50IGNhbiBnZXQgdG8gdGhl CndpbmRvd+KAmXMgbGVmdCBhbmQgcmlnaHQgZWRnZXMgYmVmb3JlIGF1dG9tYXRpYyBzY3JvbGxp bmcgb2NjdXJzLiAgSXQgaXMKbWVhc3VyZWQgaW4gY29sdW1ucy4gIEZvciBleGFtcGxlLCBpZiB0 aGUgdmFsdWUgaXMgNSwgdGhlbiBtb3ZpbmcgcG9pbnQKd2l0aGluIDUgY29sdW1ucyBvZiBhbiBl ZGdlIGNhdXNlcyBob3Jpem9udGFsIHNjcm9sbGluZyBhd2F5IGZyb20gdGhhdAplZGdlLgoKICAg VGhlIHZhcmlhYmxlIOKAmGhzY3JvbGwtc3RlcOKAmSBkZXRlcm1pbmVzIGhvdyBtYW55IGNvbHVt bnMgdG8gc2Nyb2xsIHRoZQp3aW5kb3cgd2hlbiBwb2ludCBnZXRzIHRvbyBjbG9zZSB0byB0aGUg ZWRnZS4gIFplcm8sIHRoZSBkZWZhdWx0IHZhbHVlLAptZWFucyB0byBjZW50ZXIgcG9pbnQgaG9y aXpvbnRhbGx5IHdpdGhpbiB0aGUgd2luZG93LiAgQSBwb3NpdGl2ZQppbnRlZ2VyIHZhbHVlIHNw ZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gc2Nyb2xsIGJ5LiAgQQpmbG9hdGluZy1w b2ludCBudW1iZXIgKHdob3NlIHZhbHVlIHNob3VsZCBiZSBiZXR3ZWVuIDAgYW5kIDEpIHNwZWNp Zmllcwp0aGUgZnJhY3Rpb24gb2YgdGhlIHdpbmRvd+KAmXMgd2lkdGggdG8gc2Nyb2xsIGJ5LgoK ICAgWW91IGNhbiBhbHNvIHBlcmZvcm0gZXhwbGljaXQgaG9yaXpvbnRhbCBzY3JvbGxpbmcgd2l0 aCB0aGUgZm9sbG93aW5nCmNvbW1hbmRzOgoK4oCYQy14IDzigJkKICAgICBTY3JvbGwgdGV4dCBp biBjdXJyZW50IHdpbmRvdyB0byB0aGUgbGVmdCAo4oCYc2Nyb2xsLWxlZnTigJkpLgrigJhDLXgg PuKAmQogICAgIFNjcm9sbCB0byB0aGUgcmlnaHQgKOKAmHNjcm9sbC1yaWdodOKAmSkuCgogICDi gJhDLXggPOKAmSAo4oCYc2Nyb2xsLWxlZnTigJkpIHNjcm9sbHMgdGV4dCBpbiB0aGUgc2VsZWN0 ZWQgd2luZG93IHRvIHRoZQpsZWZ0IGJ5IHRoZSBmdWxsIHdpZHRoIG9mIHRoZSB3aW5kb3csIGxl c3MgdHdvIGNvbHVtbnMuICAoSW4gb3RoZXIKd29yZHMsIHRoZSB0ZXh0IGluIHRoZSB3aW5kb3cg bW92ZXMgbGVmdCByZWxhdGl2ZSB0byB0aGUgd2luZG93LikgIFdpdGgKYSBudW1lcmljIGFyZ3Vt ZW50IE4sIGl0IHNjcm9sbHMgYnkgTiBjb2x1bW5zLgoKICAgSWYgdGhlIHRleHQgaXMgc2Nyb2xs ZWQgdG8gdGhlIGxlZnQsIGFuZCBwb2ludCBtb3ZlcyBvZmYgdGhlIGxlZnQKZWRnZSBvZiB0aGUg d2luZG93LCB0aGUgY3Vyc29yIHdpbGwgZnJlZXplIGF0IHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlCndp bmRvdywgdW50aWwgcG9pbnQgbW92ZXMgYmFjayB0byB0aGUgZGlzcGxheWVkIHBvcnRpb24gb2Yg dGhlIHRleHQuClRoaXMgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIGN1cnJlbnQgc2V0dGluZyBvZiDi gJhhdXRvLWhzY3JvbGwtbW9kZeKAmSwKd2hpY2gsIGZvciB0ZXh0IHNjcm9sbGVkIHRvIHRoZSBs ZWZ0LCBvbmx5IGFmZmVjdHMgdGhlIGJlaGF2aW9yIGF0IHRoZQpyaWdodCBlZGdlIG9mIHRoZSB3 aW5kb3cuCgogICDigJhDLXggPuKAmSAo4oCYc2Nyb2xsLXJpZ2h04oCZKSBzY3JvbGxzIHNpbWls YXJseSB0byB0aGUgcmlnaHQuICBUaGUgd2luZG93CmNhbm5vdCBiZSBzY3JvbGxlZCBhbnkgZmFy dGhlciB0byB0aGUgcmlnaHQgb25jZSBpdCBpcyBkaXNwbGF5ZWQKbm9ybWFsbHksIHdpdGggZWFj aCBsaW5lIHN0YXJ0aW5nIGF0IHRoZSB3aW5kb3figJlzIGxlZnQgbWFyZ2luOwphdHRlbXB0aW5n IHRvIGRvIHNvIGhhcyBubyBlZmZlY3QuICBUaGlzIG1lYW5zIHRoYXQgeW91IGRvbuKAmXQgaGF2 ZSB0bwpjYWxjdWxhdGUgdGhlIGFyZ3VtZW50IHByZWNpc2VseSBmb3Ig4oCYQy14ID7igJk7IGFu eSBzdWZmaWNpZW50bHkgbGFyZ2UKYXJndW1lbnQgd2lsbCByZXN0b3JlIHRoZSBub3JtYWwgZGlz cGxheS4KCiAgIElmIHlvdSB1c2UgdGhvc2UgY29tbWFuZHMgdG8gc2Nyb2xsIGEgd2luZG93IGhv cml6b250YWxseSwgdGhhdCBzZXRzCmEgbG93ZXIgYm91bmQgZm9yIGF1dG9tYXRpYyBob3Jpem9u dGFsIHNjcm9sbGluZy4gIEF1dG9tYXRpYyBzY3JvbGxpbmcKd2lsbCBjb250aW51ZSB0byBzY3Jv bGwgdGhlIHdpbmRvdywgYnV0IG5ldmVyIGZhcnRoZXIgdG8gdGhlIHJpZ2h0IHRoYW4KdGhlIGFt b3VudCB5b3UgcHJldmlvdXNseSBzZXQgYnkg4oCYc2Nyb2xsLWxlZnTigJkuICBXaGVuCuKAmGF1 dG8taHNjcm9sbC1tb2Rl4oCZIGlzIHNldCB0byDigJhjdXJyZW50LWxpbmXigJksIGFsbCB0aGUg bGluZXMgb3RoZXIgdGhhbgp0aGUgb25lIHNob3dpbmcgdGhlIGN1cnNvciB3aWxsIGJlIHNjcm9s bGVkIGJ5IHRoYXQgbWluaW1hbCBhbW91bnQuCgoKKiogMTQuNSBOYXJyb3dpbmcKCiJOYXJyb3dp bmciIG1lYW5zIGZvY3VzaW5nIGluIG9uIHNvbWUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyLCBtYWtp bmcgdGhlCnJlc3QgdGVtcG9yYXJpbHkgaW5hY2Nlc3NpYmxlLiAgVGhlIHBvcnRpb24gd2hpY2gg eW91IGNhbiBzdGlsbCBnZXQgdG8KaXMgY2FsbGVkIHRoZSAiYWNjZXNzaWJsZSBwb3J0aW9uIi4g IENhbmNlbGluZyB0aGUgbmFycm93aW5nLCB3aGljaAptYWtlcyB0aGUgZW50aXJlIGJ1ZmZlciBv bmNlIGFnYWluIGFjY2Vzc2libGUsIGlzIGNhbGxlZCAid2lkZW5pbmciLgpUaGUgYm91bmRzIG9m IG5hcnJvd2luZyBpbiBlZmZlY3QgaW4gYSBidWZmZXIgYXJlIGNhbGxlZCB0aGUgYnVmZmVy4oCZ cwoicmVzdHJpY3Rpb24iLgoKICAgTmFycm93aW5nIGNhbiBtYWtlIGl0IGVhc2llciB0byBjb25j ZW50cmF0ZSBvbiBhIHNpbmdsZSBzdWJyb3V0aW5lIG9yCnBhcmFncmFwaCBieSBlbGltaW5hdGlu ZyBjbHV0dGVyLiAgSXQgY2FuIGFsc28gYmUgdXNlZCB0byBsaW1pdCB0aGUKcmFuZ2Ugb2Ygb3Bl cmF0aW9uIG9mIGEgcmVwbGFjZSBjb21tYW5kIG9yIHJlcGVhdGluZyBrZXlib2FyZCBtYWNyby4K CuKAmEMteCBuIG7igJkKICAgICBOYXJyb3cgZG93biB0byBiZXR3ZWVuIHBvaW50IGFuZCBtYXJr ICjigJhuYXJyb3ctdG8tcmVnaW9u4oCZKS4K4oCYQy14IG4gd+KAmQogICAgIFdpZGVuIHRvIG1h a2UgdGhlIGVudGlyZSBidWZmZXIgYWNjZXNzaWJsZSBhZ2FpbiAo4oCYd2lkZW7igJkpLgrigJhD LXggbiBw4oCZCiAgICAgTmFycm93IGRvd24gdG8gdGhlIGN1cnJlbnQgcGFnZSAo4oCYbmFycm93 LXRvLXBhZ2XigJkpLgrigJhDLXggbiBk4oCZCiAgICAgTmFycm93IGRvd24gdG8gdGhlIGN1cnJl bnQgZGVmdW4gKOKAmG5hcnJvdy10by1kZWZ1buKAmSkuCgogICBXaGVuIHlvdSBoYXZlIG5hcnJv d2VkIGRvd24gdG8gYSBwYXJ0IG9mIHRoZSBidWZmZXIsIHRoYXQgcGFydAphcHBlYXJzIHRvIGJl IGFsbCB0aGVyZSBpcy4gIFlvdSBjYW7igJl0IHNlZSB0aGUgcmVzdCwgeW91IGNhbuKAmXQgbW92 ZSBpbnRvCml0IChtb3Rpb24gY29tbWFuZHMgd29u4oCZdCBnbyBvdXRzaWRlIHRoZSBhY2Nlc3Np YmxlIHBhcnQpLCB5b3UgY2Fu4oCZdApjaGFuZ2UgaXQgaW4gYW55IHdheS4gIEhvd2V2ZXIsIGl0 IGlzIG5vdCBnb25lLCBhbmQgaWYgeW91IHNhdmUgdGhlIGZpbGUKYWxsIHRoZSBpbmFjY2Vzc2li bGUgdGV4dCB3aWxsIGJlIHNhdmVkLiAgVGhlIHdvcmQg4oCYTmFycm934oCZIGFwcGVhcnMgaW4K dGhlIG1vZGUgbGluZSB3aGVuZXZlciBuYXJyb3dpbmcgaXMgaW4gZWZmZWN0LgoKICAgVGhlIHBy aW1hcnkgbmFycm93aW5nIGNvbW1hbmQgaXMg4oCYQy14IG4gbuKAmSAo4oCYbmFycm93LXRvLXJl Z2lvbuKAmSkuICBJdApzZXRzIHRoZSBjdXJyZW50IGJ1ZmZlcuKAmXMgcmVzdHJpY3Rpb25zIHNv IHRoYXQgdGhlIHRleHQgaW4gdGhlIGN1cnJlbnQKcmVnaW9uIHJlbWFpbnMgYWNjZXNzaWJsZSwg YnV0IGFsbCB0ZXh0IGJlZm9yZSB0aGUgcmVnaW9uIG9yIGFmdGVyIHRoZQpyZWdpb24gaXMgaW5h Y2Nlc3NpYmxlLiAgUG9pbnQgYW5kIG1hcmsgZG8gbm90IGNoYW5nZS4KCiAgIEFsdGVybmF0aXZl bHksIHVzZSDigJhDLXggbiBw4oCZICjigJhuYXJyb3ctdG8tcGFnZeKAmSkgdG8gbmFycm93IGRv d24gdG8gdGhlCmN1cnJlbnQgcGFnZS4gICpOb3RlIFBhZ2VzOjosIGZvciB0aGUgZGVmaW5pdGlv biBvZiBhIHBhZ2UuICDigJhDLXggbiBk4oCZCijigJhuYXJyb3ctdG8tZGVmdW7igJkpIG5hcnJv d3MgZG93biB0byB0aGUgZGVmdW4gY29udGFpbmluZyBwb2ludCAoKm5vdGUKRGVmdW5zOjopLgoK ICAgVGhlIHdheSB0byBjYW5jZWwgbmFycm93aW5nIGlzIHRvIHdpZGVuIHdpdGgg4oCYQy14IG4g d+KAmSAo4oCYd2lkZW7igJkpLgpUaGlzIG1ha2VzIGFsbCB0ZXh0IGluIHRoZSBidWZmZXIgYWNj ZXNzaWJsZSBhZ2Fpbi4KCiAgIFlvdSBjYW4gZ2V0IGluZm9ybWF0aW9uIG9uIHdoYXQgcGFydCBv ZiB0aGUgYnVmZmVyIHlvdSBhcmUgbmFycm93ZWQKZG93biB0byB1c2luZyB0aGUg4oCYQy14ID3i gJkgY29tbWFuZC4gICpOb3RlIFBvc2l0aW9uIEluZm86Oi4KCiAgIEJlY2F1c2UgbmFycm93aW5n IGNhbiBlYXNpbHkgY29uZnVzZSB1c2VycyB3aG8gZG8gbm90IHVuZGVyc3RhbmQgaXQsCuKAmG5h cnJvdy10by1yZWdpb27igJkgaXMgbm9ybWFsbHkgYSBkaXNhYmxlZCBjb21tYW5kLiAgQXR0ZW1w dGluZyB0byB1c2UKdGhpcyBjb21tYW5kIGFza3MgZm9yIGNvbmZpcm1hdGlvbiBhbmQgZ2l2ZXMg eW91IHRoZSBvcHRpb24gb2YgZW5hYmxpbmcKaXQ7IGlmIHlvdSBlbmFibGUgdGhlIGNvbW1hbmQs IGNvbmZpcm1hdGlvbiB3aWxsIG5vIGxvbmdlciBiZSByZXF1aXJlZApmb3IgaXQuICAqTm90ZSBE aXNhYmxpbmc6Oi4KCgoqKiAxNC42IFZpZXcgTW9kZQoKVmlldyBtb2RlIGlzIGEgbWlub3IgbW9k ZSB0aGF0IGxldHMgeW91IHNjYW4gYSBidWZmZXIgYnkgc2VxdWVudGlhbApzY3JlZW5mdWxzLiAg SXQgcHJvdmlkZXMgY29tbWFuZHMgZm9yIHNjcm9sbGluZyB0aHJvdWdoIHRoZSBidWZmZXIKY29u dmVuaWVudGx5IGJ1dCBub3QgZm9yIGNoYW5naW5nIGl0LiAgQXBhcnQgZnJvbSB0aGUgdXN1YWwg RW1hY3MgY3Vyc29yCm1vdGlvbiBjb21tYW5kcywgeW91IGNhbiB0eXBlIDxTUEM+IHRvIHNjcm9s bCBmb3J3YXJkIG9uZSB3aW5kb3dmdWwsCuKAmFMtPFNQQz7igJkgb3IgPERFTD4gdG8gc2Nyb2xs IGJhY2t3YXJkLCBhbmQg4oCYc+KAmSB0byBzdGFydCBhbiBpbmNyZW1lbnRhbApzZWFyY2guCgog ICBUeXBpbmcg4oCYceKAmSAo4oCYVmlldy1xdWl04oCZKSBkaXNhYmxlcyBWaWV3IG1vZGUsIGFu ZCBzd2l0Y2hlcyBiYWNrIHRvIHRoZQpidWZmZXIgYW5kIHBvc2l0aW9uIGJlZm9yZSBWaWV3IG1v ZGUgd2FzIGVuYWJsZWQuICBUeXBpbmcg4oCYZeKAmQoo4oCYVmlldy1leGl04oCZKSBkaXNhYmxl cyBWaWV3IG1vZGUsIGtlZXBpbmcgdGhlIGN1cnJlbnQgYnVmZmVyIGFuZApwb3NpdGlvbi4KCiAg IOKAmE0teCB2aWV3LWJ1ZmZlcuKAmSBwcm9tcHRzIGZvciBhbiBleGlzdGluZyBFbWFjcyBidWZm ZXIsIHN3aXRjaGVzIHRvCml0LCBhbmQgZW5hYmxlcyBWaWV3IG1vZGUuICDigJhNLXggdmlldy1m aWxl4oCZIHByb21wdHMgZm9yIGEgZmlsZSBhbmQKdmlzaXRzIGl0IHdpdGggVmlldyBtb2RlIGVu YWJsZWQuCgoKKiogMTQuNyBGb2xsb3cgTW9kZQoKIkZvbGxvdyBtb2RlIiBpcyBhIG1pbm9yIG1v ZGUgdGhhdCBtYWtlcyB0d28gd2luZG93cywgYm90aCBzaG93aW5nIHRoZQpzYW1lIGJ1ZmZlciwg c2Nyb2xsIGFzIGEgc2luZ2xlIHRhbGwgdmlydHVhbCB3aW5kb3cuICBUbyB1c2UgRm9sbG93Cm1v ZGUsIGdvIHRvIGEgZnJhbWUgd2l0aCBqdXN0IG9uZSB3aW5kb3csIHNwbGl0IGl0IGludG8gdHdv IHNpZGUtYnktc2lkZQp3aW5kb3dzIHVzaW5nIOKAmEMteCAz4oCZLCBhbmQgdGhlbiB0eXBlIOKA mE0teCBmb2xsb3ctbW9kZeKAmS4gIEZyb20gdGhlbiBvbiwKeW91IGNhbiBlZGl0IHRoZSBidWZm ZXIgaW4gZWl0aGVyIG9mIHRoZSB0d28gd2luZG93cywgb3Igc2Nyb2xsIGVpdGhlcgpvbmU7IHRo ZSBvdGhlciB3aW5kb3cgZm9sbG93cyBpdC4KCiAgIEluIEZvbGxvdyBtb2RlLCBpZiB5b3UgbW92 ZSBwb2ludCBvdXRzaWRlIHRoZSBwb3J0aW9uIHZpc2libGUgaW4gb25lCndpbmRvdyBhbmQgaW50 byB0aGUgcG9ydGlvbiB2aXNpYmxlIGluIHRoZSBvdGhlciB3aW5kb3csIHRoYXQgc2VsZWN0cwp0 aGUgb3RoZXIgd2luZG934oCUYWdhaW4sIHRyZWF0aW5nIHRoZSB0d28gYXMgaWYgdGhleSB3ZXJl IHBhcnRzIG9mIG9uZQpsYXJnZSB3aW5kb3cuCgogICBUbyB0dXJuIG9mZiBGb2xsb3cgbW9kZSwg dHlwZSDigJhNLXggZm9sbG93LW1vZGXigJkgYSBzZWNvbmQgdGltZS4KCgoqKiAxNC44IFRleHQg RmFjZXMKCkVtYWNzIGNhbiBkaXNwbGF5IHRleHQgaW4gc2V2ZXJhbCBkaWZmZXJlbnQgc3R5bGVz LCBjYWxsZWQgImZhY2VzIi4KRWFjaCBmYWNlIGNhbiBzcGVjaWZ5IHZhcmlvdXMgImZhY2UgYXR0 cmlidXRlcyIsIHN1Y2ggYXMgdGhlIGZvbnQsCmhlaWdodCwgd2VpZ2h0LCBzbGFudCwgZm9yZWdy b3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvciwgYW5kIHVuZGVybGluaW5nCm9yIG92ZXJsaW5pbmcu ICBNb3N0IG1ham9yIG1vZGVzIGFzc2lnbiBmYWNlcyB0byB0aGUgdGV4dCBhdXRvbWF0aWNhbGx5 LAp2aWEgRm9udCBMb2NrIG1vZGUuICAqTm90ZSBGb250IExvY2s6OiwgZm9yIG1vcmUgaW5mb3Jt YXRpb24gYWJvdXQgaG93CnRoZXNlIGZhY2VzIGFyZSBhc3NpZ25lZC4KCiAgIFRvIHNlZSB3aGF0 IGZhY2VzIGFyZSBjdXJyZW50bHkgZGVmaW5lZCwgYW5kIHdoYXQgdGhleSBsb29rIGxpa2UsCnR5 cGUg4oCYTS14IGxpc3QtZmFjZXMtZGlzcGxheeKAmS4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQs IHRoaXMgcHJvbXB0cyBmb3IKYSByZWd1bGFyIGV4cHJlc3Npb24sIGFuZCBkaXNwbGF5cyBvbmx5 IGZhY2VzIHdpdGggbmFtZXMgbWF0Y2hpbmcgdGhhdApyZWd1bGFyIGV4cHJlc3Npb24gKCpub3Rl IFJlZ2V4cHM6OikuCgogICBJdOKAmXMgcG9zc2libGUgZm9yIGEgZ2l2ZW4gZmFjZSB0byBsb29r IGRpZmZlcmVudCBpbiBkaWZmZXJlbnQgZnJhbWVzLgpGb3IgaW5zdGFuY2UsIHNvbWUgdGV4dCB0 ZXJtaW5hbHMgZG8gbm90IHN1cHBvcnQgYWxsIGZhY2UgYXR0cmlidXRlcywKcGFydGljdWxhcmx5 IGZvbnQsIGhlaWdodCwgYW5kIHdpZHRoLCBhbmQgc29tZSBzdXBwb3J0IGEgbGltaXRlZCByYW5n ZQpvZiBjb2xvcnMuICBJbiBhZGRpdGlvbiwgbW9zdCBFbWFjcyBmYWNlcyBhcmUgZGVmaW5lZCBz byB0aGF0IHRoZWlyCmF0dHJpYnV0ZXMgYXJlIGRpZmZlcmVudCBvbiBsaWdodCBhbmQgZGFyayBm cmFtZSBiYWNrZ3JvdW5kcywgZm9yCnJlYXNvbnMgb2YgbGVnaWJpbGl0eS4gIEJ5IGRlZmF1bHQs IEVtYWNzIGF1dG9tYXRpY2FsbHkgY2hvb3NlcyB3aGljaApzZXQgb2YgZmFjZSBhdHRyaWJ1dGVz IHRvIGRpc3BsYXkgb24gZWFjaCBmcmFtZSwgYmFzZWQgb24gdGhlIGZyYW1l4oCZcwpjdXJyZW50 IGJhY2tncm91bmQgY29sb3IuICBIb3dldmVyLCB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgYnkgZ2l2 aW5nIHRoZQp2YXJpYWJsZSDigJhmcmFtZS1iYWNrZ3JvdW5kLW1vZGXigJkgYSBub24t4oCYbmls 4oCZIHZhbHVlLiAgQSB2YWx1ZSBvZiDigJhkYXJr4oCZCm1ha2VzIEVtYWNzIHRyZWF0IGFsbCBm cmFtZXMgYXMgaWYgdGhleSBoYXZlIGEgZGFyayBiYWNrZ3JvdW5kLCB3aGVyZWFzCmEgdmFsdWUg b2Yg4oCYbGlnaHTigJkgbWFrZXMgaXQgdHJlYXQgYWxsIGZyYW1lcyBhcyBpZiB0aGV5IGhhdmUg YSBsaWdodApiYWNrZ3JvdW5kLgoKICAgWW91IGNhbiBjdXN0b21pemUgYSBmYWNlIHRvIGFsdGVy IGl0cyBhdHRyaWJ1dGVzLCBhbmQgc2F2ZSB0aG9zZQpjdXN0b21pemF0aW9ucyBmb3IgZnV0dXJl IEVtYWNzIHNlc3Npb25zLiAgKk5vdGUgRmFjZSBDdXN0b21pemF0aW9uOjosCmZvciBkZXRhaWxz LgoKICAgVGhlIOKAmGRlZmF1bHTigJkgZmFjZSBpcyB0aGUgZGVmYXVsdCBmb3IgZGlzcGxheWlu ZyB0ZXh0LCBhbmQgYWxsIG9mIGl0cwphdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQuICBJdHMgYmFj a2dyb3VuZCBjb2xvciBpcyBhbHNvIHVzZWQgYXMgdGhlCmZyYW1l4oCZcyBiYWNrZ3JvdW5kIGNv bG9yLiAgKk5vdGUgQ29sb3JzOjouCgogICBBbm90aGVyIHNwZWNpYWwgZmFjZSBpcyB0aGUg4oCY Y3Vyc29y4oCZIGZhY2UuICBPbiBncmFwaGljYWwgZGlzcGxheXMsCnRoZSBiYWNrZ3JvdW5kIGNv bG9yIG9mIHRoaXMgZmFjZSBpcyB1c2VkIHRvIGRyYXcgdGhlIHRleHQgY3Vyc29yLiAgTm9uZQpv ZiB0aGUgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzIGZhY2UgaGF2ZSBhbnkgZWZmZWN0OyB0aGUg Zm9yZWdyb3VuZApjb2xvciBmb3IgdGV4dCB1bmRlciB0aGUgY3Vyc29yIGlzIHRha2VuIGZyb20g dGhlIGJhY2tncm91bmQgY29sb3Igb2YKdGhlIHVuZGVybHlpbmcgdGV4dC4gIE9uIHRleHQgdGVy bWluYWxzLCB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgdGV4dApjdXJzb3IgaXMgZGV0ZXJtaW5lZCBi eSB0aGUgdGVybWluYWwsIG5vdCBieSB0aGUg4oCYY3Vyc29y4oCZIGZhY2UuCgogICBZb3UgY2Fu IGFsc28gdXNlIFggcmVzb3VyY2VzIHRvIHNwZWNpZnkgYXR0cmlidXRlcyBvZiBhbnkgcGFydGlj dWxhcgpmYWNlLiAgKk5vdGUgUmVzb3VyY2VzOjouCgogICBFbWFjcyBjYW4gZGlzcGxheSB2YXJp YWJsZS13aWR0aCBmb250cywgYnV0IHNvbWUgRW1hY3MgY29tbWFuZHMsCnBhcnRpY3VsYXJseSBp bmRlbnRhdGlvbiBjb21tYW5kcywgZG8gbm90IGFjY291bnQgZm9yIHZhcmlhYmxlIGNoYXJhY3Rl cgpkaXNwbGF5IHdpZHRocy4gIFRoZXJlZm9yZSwgd2UgcmVjb21tZW5kIG5vdCB1c2luZyB2YXJp YWJsZS13aWR0aCBmb250cwpmb3IgbW9zdCBmYWNlcywgcGFydGljdWxhcmx5IHRob3NlIGFzc2ln bmVkIGJ5IEZvbnQgTG9jayBtb2RlLgoKCioqIDE0LjkgQ29sb3JzIGZvciBGYWNlcwoKRmFjZXMg Y2FuIGhhdmUgdmFyaW91cyBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycy4gIFdoZW4g eW91CnNwZWNpZnkgYSBjb2xvciBmb3IgYSBmYWNl4oCUZm9yIGluc3RhbmNlLCB3aGVuIGN1c3Rv bWl6aW5nIHRoZSBmYWNlCigqbm90ZSBGYWNlIEN1c3RvbWl6YXRpb246OinigJR5b3UgY2FuIHVz ZSBlaXRoZXIgYSAiY29sb3IgbmFtZSIgb3IgYW4KIlJHQiB0cmlwbGV0Ii4KCiAgIEEgY29sb3Ig bmFtZSBpcyBhIHByZS1kZWZpbmVkIG5hbWUsIHN1Y2ggYXMg4oCYZGFyayBvcmFuZ2XigJkgb3Ig 4oCYbWVkaXVtCnNlYSBncmVlbuKAmS4gIFRvIHZpZXcgYSBsaXN0IG9mIGNvbG9yIG5hbWVzLCB0 eXBlIOKAmE0teApsaXN0LWNvbG9ycy1kaXNwbGF54oCZLiAgVG8gY29udHJvbCB0aGUgb3JkZXIg aW4gd2hpY2ggY29sb3JzIGFyZSBzaG93biwKY3VzdG9taXplIOKAmGxpc3QtY29sb3JzLXNvcnTi gJkuICBJZiB5b3UgcnVuIHRoaXMgY29tbWFuZCBvbiBhIGdyYXBoaWNhbApkaXNwbGF5LCBpdCBz aG93cyB0aGUgZnVsbCByYW5nZSBvZiBjb2xvciBuYW1lcyBrbm93biB0byBFbWFjcyAodGhlc2UK YXJlIHRoZSBzdGFuZGFyZCBYMTEgY29sb3IgbmFtZXMsIGRlZmluZWQgaW4gWOKAmXMg4oCYcmdi LnR4dOKAmSBmaWxlKS4gIElmCnlvdSBydW4gdGhlIGNvbW1hbmQgb24gYSB0ZXh0IHRlcm1pbmFs LCBpdCBzaG93cyBvbmx5IGEgc21hbGwgc3Vic2V0IG9mCmNvbG9ycyB0aGF0IGNhbiBiZSBzYWZl bHkgZGlzcGxheWVkIG9uIHN1Y2ggdGVybWluYWxzLiAgSG93ZXZlciwgRW1hY3MKdW5kZXJzdGFu ZHMgWDExIGNvbG9yIG5hbWVzIGV2ZW4gb24gdGV4dCB0ZXJtaW5hbHM7IGlmIGEgZmFjZSBpcyBn aXZlbiBhCmNvbG9yIHNwZWNpZmllZCBieSBhbiBYMTEgY29sb3IgbmFtZSwgaXQgaXMgZGlzcGxh eWVkIHVzaW5nIHRoZQpjbG9zZXN0LW1hdGNoaW5nIHRlcm1pbmFsIGNvbG9yLgoKICAgQW4gUkdC IHRyaXBsZXQgaXMgYSBzdHJpbmcgb2YgdGhlIGZvcm0g4oCYI1JSR0dCQuKAmS4gIEVhY2ggb2Yg dGhlIFIsIEcsCmFuZCBCIGNvbXBvbmVudHMgaXMgYSBoZXhhZGVjaW1hbCBudW1iZXIgc3BlY2lm eWluZyB0aGUgY29tcG9uZW504oCZcwpyZWxhdGl2ZSBpbnRlbnNpdHksIG9uZSB0byBmb3VyIGRp Z2l0cyBsb25nICh1c3VhbGx5IHR3byBkaWdpdHMgYXJlCnVzZWQpLiAgVGhlIGNvbXBvbmVudHMg bXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBkaWdpdHMuICBGb3IKaGV4YWRlY2ltYWwgdmFs dWVzIEEgdG8gRiwgZWl0aGVyIHVwcGVyIG9yIGxvd2VyIGNhc2UgYXJlIGFjY2VwdGFibGUuCgog ICBUaGUg4oCYTS14IGxpc3QtY29sb3JzLWRpc3BsYXnigJkgY29tbWFuZCBhbHNvIHNob3dzIHRo ZSBlcXVpdmFsZW50IFJHQgp0cmlwbGV0IGZvciBlYWNoIG5hbWVkIGNvbG9yLiAgRm9yIGluc3Rh bmNlLCDigJhtZWRpdW0gc2VhIGdyZWVu4oCZIGlzCmVxdWl2YWxlbnQgdG8g4oCYIzNDQjM3MeKA mS4KCiAgIFlvdSBjYW4gY2hhbmdlIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9y cyBvZiBhIGZhY2Ugd2l0aArigJhNLXggc2V0LWZhY2UtZm9yZWdyb3VuZOKAmSBhbmQg4oCYTS14 IHNldC1mYWNlLWJhY2tncm91bmTigJkuICBUaGVzZSBjb21tYW5kcwpwcm9tcHQgaW4gdGhlIG1p bmlidWZmZXIgZm9yIGEgZmFjZSBuYW1lIGFuZCBhIGNvbG9yLCB3aXRoIGNvbXBsZXRpb24sCmFu ZCB0aGVuIHNldCB0aGF0IGZhY2UgdG8gdXNlIHRoZSBzcGVjaWZpZWQgY29sb3IuICBUaGV5IGFm ZmVjdCB0aGUgZmFjZQpjb2xvcnMgb24gYWxsIGZyYW1lcywgYnV0IHRoZWlyIGVmZmVjdHMgZG8g bm90IHBlcnNpc3QgZm9yIGZ1dHVyZSBFbWFjcwpzZXNzaW9ucywgdW5saWtlIHVzaW5nIHRoZSBj dXN0b21pemF0aW9uIGJ1ZmZlciBvciBYIHJlc291cmNlcy4gIFlvdSBjYW4KYWxzbyB1c2UgZnJh bWUgcGFyYW1ldGVycyB0byBzZXQgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMgZm9y IGEKc3BlY2lmaWMgZnJhbWU7ICpOb3RlIEZyYW1lIFBhcmFtZXRlcnM6Oi4KCgoqKiAxNC4xMCBT dGFuZGFyZCBGYWNlcwoKSGVyZSBhcmUgdGhlIHN0YW5kYXJkIGZhY2VzIGZvciBzcGVjaWZ5aW5n IHRleHQgYXBwZWFyYW5jZS4gIFlvdSBjYW4KYXBwbHkgdGhlbSB0byBzcGVjaWZpYyB0ZXh0IHdo ZW4geW91IHdhbnQgdGhlIGVmZmVjdHMgdGhleSBwcm9kdWNlLgoK4oCYZGVmYXVsdOKAmQogICAg IFRoaXMgZmFjZSBpcyB1c2VkIGZvciBvcmRpbmFyeSB0ZXh0IHRoYXQgZG9lc27igJl0IHNwZWNp ZnkgYW55IGZhY2UuCiAgICAgSXRzIGJhY2tncm91bmQgY29sb3IgaXMgdXNlZCBhcyB0aGUgZnJh bWXigJlzIGJhY2tncm91bmQgY29sb3IuCuKAmGJvbGTigJkKICAgICBUaGlzIGZhY2UgdXNlcyBh IGJvbGQgdmFyaWFudCBvZiB0aGUgZGVmYXVsdCBmb250LgrigJhpdGFsaWPigJkKICAgICBUaGlz IGZhY2UgdXNlcyBhbiBpdGFsaWMgdmFyaWFudCBvZiB0aGUgZGVmYXVsdCBmb250LgrigJhib2xk LWl0YWxpY+KAmQogICAgIFRoaXMgZmFjZSB1c2VzIGEgYm9sZCBpdGFsaWMgdmFyaWFudCBvZiB0 aGUgZGVmYXVsdCBmb250LgrigJh1bmRlcmxpbmXigJkKICAgICBUaGlzIGZhY2UgdW5kZXJsaW5l cyB0ZXh0LgrigJhmaXhlZC1waXRjaOKAmQogICAgIFRoaXMgZmFjZSBmb3JjZXMgdXNlIG9mIGEg Zml4ZWQtd2lkdGggZm9udC4gIEl04oCZcyByZWFzb25hYmxlIHRvCiAgICAgY3VzdG9taXplIHRo aXMgZmFjZSB0byB1c2UgYSBkaWZmZXJlbnQgZml4ZWQtd2lkdGggZm9udCwgaWYgeW91CiAgICAg bGlrZSwgYnV0IHlvdSBzaG91bGQgbm90IG1ha2UgaXQgYSB2YXJpYWJsZS13aWR0aCBmb250Lgri gJhmaXhlZC1waXRjaC1zZXJpZuKAmQogICAgIFRoaXMgZmFjZSBpcyBsaWtlIOKAmGZpeGVkLXBp dGNo4oCZLCBleGNlcHQgdGhlIGZvbnQgaGFzIHNlcmlmcyBhbmQKICAgICBsb29rcyBtb3JlIGxp a2UgdHJhZGl0aW9uYWwgdHlwZXdyaXRpbmcuCuKAmHZhcmlhYmxlLXBpdGNo4oCZCiAgICAgVGhp cyBmYWNlIGZvcmNlcyB1c2Ugb2YgYSB2YXJpYWJsZS13aWR0aCBmb250LgrigJhzaGFkb3figJkK ICAgICBUaGlzIGZhY2UgaXMgdXNlZCBmb3IgbWFraW5nIHRoZSB0ZXh0IGxlc3Mgbm90aWNlYWJs ZSB0aGFuIHRoZQogICAgIHN1cnJvdW5kaW5nIG9yZGluYXJ5IHRleHQuICBVc3VhbGx5IHRoaXMg Y2FuIGJlIGFjaGlldmVkIGJ5IHVzaW5nCiAgICAgc2hhZGVzIG9mIGdyYXkgaW4gY29udHJhc3Qg d2l0aCBlaXRoZXIgYmxhY2sgb3Igd2hpdGUgZGVmYXVsdAogICAgIGZvcmVncm91bmQgY29sb3Iu CgogICBIZXJl4oCZcyBhbiBpbmNvbXBsZXRlIGxpc3Qgb2YgZmFjZXMgdXNlZCB0byBoaWdobGln aHQgcGFydHMgb2YgdGhlCnRleHQgdGVtcG9yYXJpbHkgZm9yIHNwZWNpZmljIHB1cnBvc2VzLiAg KE1hbnkgb3RoZXIgbW9kZXMgZGVmaW5lIHRoZWlyCm93biBmYWNlcyBmb3IgdGhpcyBwdXJwb3Nl LikKCuKAmGhpZ2hsaWdodOKAmQogICAgIFRoaXMgZmFjZSBpcyB1c2VkIGZvciB0ZXh0IGhpZ2hs aWdodGluZyBpbiB2YXJpb3VzIGNvbnRleHRzLCBzdWNoCiAgICAgYXMgd2hlbiB0aGUgbW91c2Ug Y3Vyc29yIGlzIG1vdmVkIG92ZXIgYSBoeXBlcmxpbmsuCuKAmGlzZWFyY2jigJkKICAgICBUaGlz IGZhY2UgaXMgdXNlZCB0byBoaWdobGlnaHQgdGhlIGN1cnJlbnQgSXNlYXJjaCBtYXRjaCAoKm5v dGUKICAgICBJbmNyZW1lbnRhbCBTZWFyY2g6OikuCuKAmHF1ZXJ5LXJlcGxhY2XigJkKICAgICBU aGlzIGZhY2UgaXMgdXNlZCB0byBoaWdobGlnaHQgdGhlIGN1cnJlbnQgUXVlcnkgUmVwbGFjZSBt YXRjaAogICAgICgqbm90ZSBSZXBsYWNlOjopLgrigJhsYXp5LWhpZ2hsaWdodOKAmQogICAgIFRo aXMgZmFjZSBpcyB1c2VkIHRvIGhpZ2hsaWdodCBsYXp5IG1hdGNoZXMgZm9yIElzZWFyY2ggYW5k IFF1ZXJ5CiAgICAgUmVwbGFjZSAobWF0Y2hlcyBvdGhlciB0aGFuIHRoZSBjdXJyZW50IG9uZSku CuKAmHJlZ2lvbuKAmQogICAgIFRoaXMgZmFjZSBpcyB1c2VkIGZvciBkaXNwbGF5aW5nIGFuIGFj dGl2ZSByZWdpb24gKCpub3RlIE1hcms6OikuCiAgICAgV2hlbiBFbWFjcyBpcyBidWlsdCB3aXRo IEdUSysgc3VwcG9ydCwgaXRzIGNvbG9ycyBhcmUgdGFrZW4gZnJvbQogICAgIHRoZSBjdXJyZW50 IEdUSysgdGhlbWUuCuKAmHNlY29uZGFyeS1zZWxlY3Rpb27igJkKICAgICBUaGlzIGZhY2UgaXMg dXNlZCBmb3IgZGlzcGxheWluZyBhIHNlY29uZGFyeSBYIHNlbGVjdGlvbiAoKm5vdGUKICAgICBT ZWNvbmRhcnkgU2VsZWN0aW9uOjopLgrigJh0cmFpbGluZy13aGl0ZXNwYWNl4oCZCiAgICAgVGhl IGZhY2UgZm9yIGhpZ2hsaWdodGluZyBleGNlc3Mgc3BhY2VzIGFuZCB0YWJzIGF0IHRoZSBlbmQg b2YgYQogICAgIGxpbmUgd2hlbiDigJhzaG93LXRyYWlsaW5nLXdoaXRlc3BhY2XigJkgaXMgbm9u LeKAmG5pbOKAmSAoKm5vdGUgVXNlbGVzcwogICAgIFdoaXRlc3BhY2U6OikuCuKAmGVzY2FwZS1n bHlwaOKAmQogICAgIFRoZSBmYWNlIGZvciBkaXNwbGF5aW5nIGNvbnRyb2wgY2hhcmFjdGVycyBh bmQgZXNjYXBlIHNlcXVlbmNlcwogICAgICgqbm90ZSBUZXh0IERpc3BsYXk6OikuCuKAmGhvbW9n bHlwaOKAmQogICAgIFRoZSBmYWNlIGZvciBkaXNwbGF5aW5nIGxvb2thbGlrZSBjaGFyYWN0ZXJz LCBpLmUuLCBjaGFyYWN0ZXJzIHRoYXQKICAgICBsb29rIGxpa2UgYnV0IGFyZSBub3QgdGhlIGNo YXJhY3RlcnMgYmVpbmcgcmVwcmVzZW50ZWQgKCpub3RlIFRleHQKICAgICBEaXNwbGF5OjopLgri gJhub2JyZWFrLXNwYWNl4oCZCiAgICAgVGhlIGZhY2UgZm9yIGRpc3BsYXlpbmcgbm8tYnJlYWsg c3BhY2UgY2hhcmFjdGVycyAoKm5vdGUgVGV4dAogICAgIERpc3BsYXk6OikuCuKAmG5vYnJlYWst aHlwaGVu4oCZCiAgICAgVGhlIGZhY2UgZm9yIGRpc3BsYXlpbmcgbm8tYnJlYWsgaHlwaGVuIGNo YXJhY3RlcnMgKCpub3RlIFRleHQKICAgICBEaXNwbGF5OjopLgoKICAgVGhlIGZvbGxvd2luZyBm YWNlcyBjb250cm9sIHRoZSBhcHBlYXJhbmNlIG9mIHBhcnRzIG9mIHRoZSBFbWFjcwpmcmFtZToK CuKAmG1vZGUtbGluZeKAmQogICAgIFRoaXMgZmFjZSBpcyB1c2VkIGZvciB0aGUgbW9kZSBsaW5l IG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQKICAgICB3aW5kb3csIGFuZCBmb3IgbWVudSBiYXJz IHdoZW4gdG9vbGtpdCBtZW51cyBhcmUgbm90IHVzZWQuICBCeQogICAgIGRlZmF1bHQsIGl04oCZ cyBkcmF3biB3aXRoIHNoYWRvd3MgZm9yIGEgcmFpc2VkIGVmZmVjdCBvbiBncmFwaGljYWwKICAg ICBkaXNwbGF5cywgYW5kIGRyYXduIGFzIHRoZSBpbnZlcnNlIG9mIHRoZSBkZWZhdWx0IGZhY2Ug b24KICAgICBub24td2luZG93ZWQgdGVybWluYWxzLgrigJhtb2RlLWxpbmUtaW5hY3RpdmXigJkK ICAgICBMaWtlIOKAmG1vZGUtbGluZeKAmSwgYnV0IHVzZWQgZm9yIG1vZGUgbGluZXMgb2YgdGhl IHdpbmRvd3Mgb3RoZXIgdGhhbgogICAgIHRoZSBzZWxlY3RlZCBvbmUgKGlmIOKAmG1vZGUtbGlu ZS1pbi1ub24tc2VsZWN0ZWQtd2luZG93c+KAmSBpcwogICAgIG5vbi3igJhuaWzigJkpLiAgVGhp cyBmYWNlIGluaGVyaXRzIGZyb20g4oCYbW9kZS1saW5l4oCZLCBzbyBjaGFuZ2VzIGluCiAgICAg dGhhdCBmYWNlIGFmZmVjdCBtb2RlIGxpbmVzIGluIGFsbCB3aW5kb3dzLgrigJhtb2RlLWxpbmUt aGlnaGxpZ2h04oCZCiAgICAgTGlrZSDigJhoaWdobGlnaHTigJksIGJ1dCB1c2VkIGZvciBtb3Vz ZS1zZW5zaXRpdmUgcG9ydGlvbnMgb2YgdGV4dCBvbgogICAgIG1vZGUgbGluZXMuICBTdWNoIHBv cnRpb25zIG9mIHRleHQgdHlwaWNhbGx5IHBvcCB1cCB0b29sdGlwcyAoKm5vdGUKICAgICBUb29s dGlwczo6KSB3aGVuIHRoZSBtb3VzZSBwb2ludGVyIGhvdmVycyBhYm92ZSB0aGVtLgrigJhtb2Rl LWxpbmUtYnVmZmVyLWlk4oCZCiAgICAgVGhpcyBmYWNlIGlzIHVzZWQgZm9yIGJ1ZmZlciBpZGVu dGlmaWNhdGlvbiBwYXJ0cyBpbiB0aGUgbW9kZSBsaW5lLgrigJhoZWFkZXItbGluZeKAmQogICAg IFNpbWlsYXIgdG8g4oCYbW9kZS1saW5l4oCZIGZvciBhIHdpbmRvd+KAmXMgaGVhZGVyIGxpbmUs IHdoaWNoIGFwcGVhcnMgYXQKICAgICB0aGUgdG9wIG9mIGEgd2luZG93IGp1c3QgYXMgdGhlIG1v ZGUgbGluZSBhcHBlYXJzIGF0IHRoZSBib3R0b20uCiAgICAgTW9zdCB3aW5kb3dzIGRvIG5vdCBo YXZlIGEgaGVhZGVyIGxpbmXigJRvbmx5IHNvbWUgc3BlY2lhbCBtb2RlcywKICAgICBzdWNoIElu Zm8gbW9kZSwgY3JlYXRlIG9uZS4K4oCYaGVhZGVyLWxpbmUtaGlnaGxpZ2h04oCZCiAgICAgU2lt aWxhciB0byDigJhoaWdobGlnaHTigJkgYW5kIOKAmG1vZGUtbGluZS1oaWdobGlnaHTigJksIGJ1 dCB1c2VkIGZvcgogICAgIG1vdXNlLXNlbnNpdGl2ZSBwb3J0aW9ucyBvZiB0ZXh0IG9uIGhlYWRl ciBsaW5lcy4gIFRoaXMgaXMgYQogICAgIHNlcGFyYXRlIGZhY2UgYmVjYXVzZSB0aGUg4oCYaGVh ZGVyLWxpbmXigJkgZmFjZSBtaWdodCBiZSBjdXN0b21pemVkIGluCiAgICAgYSB3YXkgdGhhdCBk b2VzIG5vdCBpbnRlcmFjdCB3ZWxsIHdpdGgg4oCYaGlnaGxpZ2h04oCZLgrigJh2ZXJ0aWNhbC1i b3JkZXLigJkKICAgICBUaGlzIGZhY2UgaXMgdXNlZCBmb3IgdGhlIHZlcnRpY2FsIGRpdmlkZXIg YmV0d2VlbiB3aW5kb3dzIG9uIHRleHQKICAgICB0ZXJtaW5hbHMuCuKAmG1pbmlidWZmZXItcHJv bXB04oCZCiAgICAgVGhpcyBmYWNlIGlzIHVzZWQgZm9yIHRoZSBwcm9tcHQgc3RyaW5ncyBkaXNw bGF5ZWQgaW4gdGhlCiAgICAgbWluaWJ1ZmZlci4gIEJ5IGRlZmF1bHQsIEVtYWNzIGF1dG9tYXRp Y2FsbHkgYWRkcyB0aGlzIGZhY2UgdG8gdGhlCiAgICAgdmFsdWUgb2Yg4oCYbWluaWJ1ZmZlci1w cm9tcHQtcHJvcGVydGllc+KAmSwgd2hpY2ggaXMgYSBsaXN0IG9mIHRleHQKICAgICBwcm9wZXJ0 aWVzICgqbm90ZSAoZWxpc3ApVGV4dCBQcm9wZXJ0aWVzOjopIHVzZWQgdG8gZGlzcGxheSB0aGUK ICAgICBwcm9tcHQgdGV4dC4gIChUaGlzIHZhcmlhYmxlIHRha2VzIGVmZmVjdCB3aGVuIHlvdSBl bnRlciB0aGUKICAgICBtaW5pYnVmZmVyLikK4oCYZnJpbmdl4oCZCiAgICAgVGhlIGZhY2UgZm9y IHRoZSBmcmluZ2VzIHRvIHRoZSBsZWZ0IGFuZCByaWdodCBvZiB3aW5kb3dzIG9uCiAgICAgZ3Jh cGhpYyBkaXNwbGF5cy4gIChUaGUgZnJpbmdlcyBhcmUgdGhlIG5hcnJvdyBwb3J0aW9ucyBvZiB0 aGUKICAgICBFbWFjcyBmcmFtZSBiZXR3ZWVuIHRoZSB0ZXh0IGFyZWEgYW5kIHRoZSB3aW5kb3fi gJlzIHJpZ2h0IGFuZCBsZWZ0CiAgICAgYm9yZGVycy4pICAqTm90ZSBGcmluZ2VzOjouCuKAmGN1 cnNvcuKAmQogICAgIFRoZSDigJg6YmFja2dyb3VuZOKAmSBhdHRyaWJ1dGUgb2YgdGhpcyBmYWNl IHNwZWNpZmllcyB0aGUgY29sb3Igb2YgdGhlCiAgICAgdGV4dCBjdXJzb3IuICAqTm90ZSBDdXJz b3IgRGlzcGxheTo6LgrigJh0b29sdGlw4oCZCiAgICAgVGhpcyBmYWNlIGlzIHVzZWQgZm9yIHRv b2x0aXAgdGV4dC4gIEJ5IGRlZmF1bHQsIGlmIEVtYWNzIGlzIGJ1aWx0CiAgICAgd2l0aCBHVEsr IHN1cHBvcnQsIHRvb2x0aXBzIGFyZSBkcmF3biB2aWEgR1RLKyBhbmQgdGhpcyBmYWNlIGhhcyBu bwogICAgIGVmZmVjdC4gICpOb3RlIFRvb2x0aXBzOjouCuKAmG1vdXNl4oCZCiAgICAgVGhpcyBm YWNlIGRldGVybWluZXMgdGhlIGNvbG9yIG9mIHRoZSBtb3VzZSBwb2ludGVyLgoKICAgVGhlIGZv bGxvd2luZyBmYWNlcyBsaWtld2lzZSBjb250cm9sIHRoZSBhcHBlYXJhbmNlIG9mIHBhcnRzIG9m IHRoZQpFbWFjcyBmcmFtZSwgYnV0IG9ubHkgb24gdGV4dCB0ZXJtaW5hbHMsIG9yIHdoZW4gRW1h Y3MgaXMgYnVpbHQgb24gWAp3aXRoIG5vIHRvb2xraXQgc3VwcG9ydC4gIChGb3IgYWxsIG90aGVy IGNhc2VzLCB0aGUgYXBwZWFyYW5jZSBvZiB0aGUKcmVzcGVjdGl2ZSBmcmFtZSBlbGVtZW50cyBp cyBkZXRlcm1pbmVkIGJ5IHN5c3RlbS13aWRlIHNldHRpbmdzLikKCuKAmHNjcm9sbC1iYXLigJkK ICAgICBUaGlzIGZhY2UgZGV0ZXJtaW5lcyB0aGUgdmlzdWFsIGFwcGVhcmFuY2Ugb2YgdGhlIHNj cm9sbCBiYXIuCiAgICAgKk5vdGUgU2Nyb2xsIEJhcnM6Oi4K4oCYdG9vbC1iYXLigJkKICAgICBU aGlzIGZhY2UgZGV0ZXJtaW5lcyB0aGUgY29sb3Igb2YgdG9vbCBiYXIgaWNvbnMuICAqTm90ZSBU b29sCiAgICAgQmFyczo6LgrigJhtZW514oCZCiAgICAgVGhpcyBmYWNlIGRldGVybWluZXMgdGhl IGNvbG9ycyBhbmQgZm9udCBvZiBFbWFjc+KAmXMgbWVudXMuICAqTm90ZQogICAgIE1lbnUgQmFy czo6LgrigJh0dHktbWVudS1lbmFibGVkLWZhY2XigJkKICAgICBUaGlzIGZhY2UgaXMgdXNlZCB0 byBkaXNwbGF5IGVuYWJsZWQgbWVudSBpdGVtcyBvbiB0ZXh0LW1vZGUKICAgICB0ZXJtaW5hbHMu CuKAmHR0eS1tZW51LWRpc2FibGVkLWZhY2XigJkKICAgICBUaGlzIGZhY2UgaXMgdXNlZCB0byBk aXNwbGF5IGRpc2FibGVkIG1lbnUgaXRlbXMgb24gdGV4dC1tb2RlCiAgICAgdGVybWluYWxzLgri gJh0dHktbWVudS1zZWxlY3RlZC1mYWNl4oCZCiAgICAgVGhpcyBmYWNlIGlzIHVzZWQgdG8gZGlz cGxheSBvbiB0ZXh0LW1vZGUgdGVybWluYWxzIHRoZSBtZW51IGl0ZW0KICAgICB0aGF0IHdvdWxk IGJlIHNlbGVjdGVkIGlmIHlvdSBjbGljayBhIG1vdXNlIG9yIHByZXNzIDxSRVQ+LgoKCioqIDE0 LjExIFRleHQgU2NhbGUKClRvIGluY3JlYXNlIHRoZSBoZWlnaHQgb2YgdGhlIGRlZmF1bHQgZmFj ZSBpbiB0aGUgY3VycmVudCBidWZmZXIsIHR5cGUK4oCYQy14IEMtK+KAmSBvciDigJhDLXggQy09 4oCZLiAgVG8gZGVjcmVhc2UgaXQsIHR5cGUg4oCYQy14IEMtLeKAmS4gIFRvIHJlc3RvcmUgdGhl CmRlZmF1bHQgKGdsb2JhbCkgZmFjZSBoZWlnaHQsIHR5cGUg4oCYQy14IEMtMOKAmS4gIFRoZXNl IGtleXMgYXJlIGFsbCBib3VuZAp0byB0aGUgc2FtZSBjb21tYW5kLCDigJh0ZXh0LXNjYWxlLWFk anVzdOKAmSwgd2hpY2ggbG9va3MgYXQgdGhlIGxhc3Qga2V5CnR5cGVkIHRvIGRldGVybWluZSB3 aGljaCBhY3Rpb24gdG8gdGFrZS4KCiAgIFRoZSBmaW5hbCBrZXkgb2YgdGhlc2UgY29tbWFuZHMg bWF5IGJlIHJlcGVhdGVkIHdpdGhvdXQgdGhlIGxlYWRpbmcK4oCYQy144oCZLiAgRm9yIGluc3Rh bmNlLCDigJhDLXggQy09IEMtPSBDLT3igJkgaW5jcmVhc2VzIHRoZSBmYWNlIGhlaWdodCBieQp0 aHJlZSBzdGVwcy4gIEVhY2ggc3RlcCBzY2FsZXMgdGhlIHRleHQgaGVpZ2h0IGJ5IGEgZmFjdG9y IG9mIDEuMjsgdG8KY2hhbmdlIHRoaXMgZmFjdG9yLCBjdXN0b21pemUgdGhlIHZhcmlhYmxlIOKA mHRleHQtc2NhbGUtbW9kZS1zdGVw4oCZLiAgQQpudW1lcmljIGFyZ3VtZW50IG9mIDAgdG8gdGhl IOKAmHRleHQtc2NhbGUtYWRqdXN04oCZIGNvbW1hbmQgcmVzdG9yZXMgdGhlCmRlZmF1bHQgaGVp Z2h0LCB0aGUgc2FtZSBhcyB0eXBpbmcg4oCYQy14IEMtMOKAmS4KCiAgIFRoZSBjb21tYW5kcyDi gJh0ZXh0LXNjYWxlLWluY3JlYXNl4oCZIGFuZCDigJh0ZXh0LXNjYWxlLWRlY3JlYXNl4oCZIGlu Y3JlYXNlCm9yIGRlY3JlYXNlIHRoZSBoZWlnaHQgb2YgdGhlIGRlZmF1bHQgZmFjZSwganVzdCBs aWtlIOKAmEMteCBDLSvigJkgYW5kIOKAmEMteApDLS3igJkgcmVzcGVjdGl2ZWx5LiAgWW91IG1h eSBmaW5kIGl0IGNvbnZlbmllbnQgdG8gYmluZCB0byB0aGVzZQpjb21tYW5kcywgcmF0aGVyIHRo YW4g4oCYdGV4dC1zY2FsZS1hZGp1c3TigJkuCgogICBUaGUgY29tbWFuZCDigJh0ZXh0LXNjYWxl LXNldOKAmSBzY2FsZXMgdGhlIGhlaWdodCBvZiB0aGUgZGVmYXVsdCBmYWNlIGluCnRoZSBjdXJy ZW50IGJ1ZmZlciB0byBhbiBhYnNvbHV0ZSBsZXZlbCBzcGVjaWZpZWQgYnkgaXRzIHByZWZpeAph cmd1bWVudC4KCiAgIFRoZSBhYm92ZSBjb21tYW5kcyBhdXRvbWF0aWNhbGx5IGVuYWJsZSB0aGUg bWlub3IgbW9kZQrigJh0ZXh0LXNjYWxlLW1vZGXigJkgaWYgdGhlIGN1cnJlbnQgZm9udCBzY2Fs aW5nIGlzIG90aGVyIHRoYW4gMSwgYW5kCmRpc2FibGUgaXQgb3RoZXJ3aXNlLgoKCioqIDE0LjEy IEZvbnQgTG9jayBtb2RlCgpGb250IExvY2sgbW9kZSBpcyBhIG1pbm9yIG1vZGUsIGFsd2F5cyBs b2NhbCB0byBhIHBhcnRpY3VsYXIgYnVmZmVyLAp3aGljaCBhc3NpZ25zIGZhY2VzIHRvIChvciAi Zm9udGlmaWVzIikgdGhlIHRleHQgaW4gdGhlIGJ1ZmZlci4gIEVhY2gKYnVmZmVy4oCZcyBtYWpv ciBtb2RlIHRlbGxzIEZvbnQgTG9jayBtb2RlIHdoaWNoIHRleHQgdG8gZm9udGlmeTsgZm9yCmlu c3RhbmNlLCBwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2RlcyBmb250aWZ5IHN5bnRhY3RpY2FsbHkg cmVsZXZhbnQKY29uc3RydWN0cyBsaWtlIGNvbW1lbnRzLCBzdHJpbmdzLCBhbmQgZnVuY3Rpb24g bmFtZXMuCgogICBGb250IExvY2sgbW9kZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuICBUbyB0b2dn bGUgaXQgaW4gdGhlIGN1cnJlbnQKYnVmZmVyLCB0eXBlIOKAmE0teCBmb250LWxvY2stbW9kZeKA mS4gIEEgcG9zaXRpdmUgbnVtZXJpYyBhcmd1bWVudAp1bmNvbmRpdGlvbmFsbHkgZW5hYmxlcyBG b250IExvY2sgbW9kZSwgYW5kIGEgbmVnYXRpdmUgb3IgemVybyBhcmd1bWVudApkaXNhYmxlcyBp dC4KCiAgIFR5cGUg4oCYTS14IGdsb2JhbC1mb250LWxvY2stbW9kZeKAmSB0byB0b2dnbGUgRm9u dCBMb2NrIG1vZGUgaW4gYWxsCmJ1ZmZlcnMuICBUbyBpbXBvc2UgdGhpcyBzZXR0aW5nIGZvciBm dXR1cmUgRW1hY3Mgc2Vzc2lvbnMsIGN1c3RvbWl6ZQp0aGUgdmFyaWFibGUg4oCYZ2xvYmFsLWZv bnQtbG9jay1tb2Rl4oCZICgqbm90ZSBFYXN5IEN1c3RvbWl6YXRpb246OiksIG9yCmFkZCB0aGUg Zm9sbG93aW5nIGxpbmUgdG8geW91ciBpbml0IGZpbGU6CgogICAgIChnbG9iYWwtZm9udC1sb2Nr LW1vZGUgMCkKCklmIHlvdSBoYXZlIGRpc2FibGVkIEdsb2JhbCBGb250IExvY2sgbW9kZSwgeW91 IGNhbiBzdGlsbCBlbmFibGUgRm9udApMb2NrIGZvciBzcGVjaWZpYyBtYWpvciBtb2RlcyBieSBh ZGRpbmcgdGhlIGZ1bmN0aW9uIOKAmGZvbnQtbG9jay1tb2Rl4oCZIHRvCnRoZSBtb2RlIGhvb2tz ICgqbm90ZSBIb29rczo6KS4gIEZvciBleGFtcGxlLCB0byBlbmFibGUgRm9udCBMb2NrIG1vZGUK Zm9yIGVkaXRpbmcgQyBmaWxlcywgeW91IGNhbiBkbyB0aGlzOgoKICAgICAoYWRkLWhvb2sgJ2Mt bW9kZS1ob29rICdmb250LWxvY2stbW9kZSkKCiAgIEZvbnQgTG9jayBtb2RlIHVzZXMgc2V2ZXJh bCBzcGVjaWZpY2FsbHkgbmFtZWQgZmFjZXMgdG8gZG8gaXRzIGpvYiwKaW5jbHVkaW5nIOKAmGZv bnQtbG9jay1zdHJpbmctZmFjZeKAmSwg4oCYZm9udC1sb2NrLWNvbW1lbnQtZmFjZeKAmSwgYW5k IG90aGVycy4KVGhlIGVhc2llc3Qgd2F5IHRvIGZpbmQgdGhlbSBhbGwgaXMgdG8gdXNlIOKAmE0t eCBjdXN0b21pemUtZ3JvdXAgPFJFVD4KZm9udC1sb2NrLWZhY2VzIDxSRVQ+4oCZLiAgWW91IGNh biB0aGVuIHVzZSB0aGF0IGN1c3RvbWl6YXRpb24gYnVmZmVyIHRvCmN1c3RvbWl6ZSB0aGUgYXBw ZWFyYW5jZSBvZiB0aGVzZSBmYWNlcy4gICpOb3RlIEZhY2UgQ3VzdG9taXphdGlvbjo6LgoKICAg WW91IGNhbiBjdXN0b21pemUgdGhlIHZhcmlhYmxlIOKAmGZvbnQtbG9jay1tYXhpbXVtLWRlY29y YXRpb27igJkgdG8KYWx0ZXIgdGhlIGFtb3VudCBvZiBmb250aWZpY2F0aW9uIGFwcGxpZWQgYnkg Rm9udCBMb2NrIG1vZGUsIGZvciBtYWpvcgptb2RlcyB0aGF0IHN1cHBvcnQgdGhpcyBmZWF0dXJl LiAgVGhlIHZhbHVlIHNob3VsZCBiZSBhIG51bWJlciAod2l0aCAxCnJlcHJlc2VudGluZyBhIG1p bmltYWwgYW1vdW50IG9mIGZvbnRpZmljYXRpb247IHNvbWUgbW9kZXMgc3VwcG9ydApsZXZlbHMg YXMgaGlnaCBhcyAzKTsgb3Ig4oCYdOKAmSwgbWVhbmluZyDigJxhcyBoaWdoIGFzIHBvc3NpYmxl 4oCdICh0aGUKZGVmYXVsdCkuICBUbyBiZSBlZmZlY3RpdmUgZm9yIGEgZ2l2ZW4gZmlsZSBidWZm ZXIsIHRoZSBjdXN0b21pemF0aW9uIG9mCuKAmGZvbnQtbG9jay1tYXhpbXVtLWRlY29yYXRpb27i gJkgc2hvdWxkIGJlIGRvbmUgX2JlZm9yZV8gdGhlIGZpbGUgaXMKdmlzaXRlZDsgaWYgeW91IGFs cmVhZHkgaGF2ZSB0aGUgZmlsZSB2aXNpdGVkIGluIGEgYnVmZmVyIHdoZW4geW91CmN1c3RvbWl6 ZSB0aGlzIHZhcmlhYmxlLCBraWxsIHRoZSBidWZmZXIgYW5kIHZpc2l0IHRoZSBmaWxlIGFnYWlu IGFmdGVyCnRoZSBjdXN0b21pemF0aW9uLgoKICAgWW91IGNhbiBhbHNvIHNwZWNpZnkgZGlmZmVy ZW50IG51bWJlcnMgZm9yIHBhcnRpY3VsYXIgbWFqb3IgbW9kZXM7CmZvciBleGFtcGxlLCB0byB1 c2UgbGV2ZWwgMSBmb3IgQy9DKysgbW9kZXMsIGFuZCB0aGUgZGVmYXVsdCBsZXZlbApvdGhlcndp c2UsIHVzZSB0aGUgdmFsdWUKCiAgICAgJygoYy1tb2RlIC4gMSkgKGMrKy1tb2RlIC4gMSkpKQoK ICAgQ29tbWVudCBhbmQgc3RyaW5nIGZvbnRpZmljYXRpb24gKG9yIOKAnHN5bnRhY3RpY+KAnSBm b250aWZpY2F0aW9uKQpyZWxpZXMgb24gYW5hbHlzaXMgb2YgdGhlIHN5bnRhY3RpYyBzdHJ1Y3R1 cmUgb2YgdGhlIGJ1ZmZlciB0ZXh0LiAgRm9yCnRoZSBzYWtlIG9mIHNwZWVkLCBzb21lIG1vZGVz LCBpbmNsdWRpbmcgTGlzcCBtb2RlLCByZWx5IG9uIGEgc3BlY2lhbApjb252ZW50aW9uOiBhbiBv cGVuLXBhcmVudGhlc2lzIG9yIG9wZW4tYnJhY2UgaW4gdGhlIGxlZnRtb3N0IGNvbHVtbgphbHdh eXMgZGVmaW5lcyB0aGUgYmVnaW5uaW5nIG9mIGEgZGVmdW4sIGFuZCBpcyB0aHVzIGFsd2F5cyBv dXRzaWRlIGFueQpzdHJpbmcgb3IgY29tbWVudC4gIFRoZXJlZm9yZSwgeW91IHNob3VsZCBhdm9p ZCBwbGFjaW5nIGFuCm9wZW4tcGFyZW50aGVzaXMgb3Igb3Blbi1icmFjZSBpbiB0aGUgbGVmdG1v c3QgY29sdW1uLCBpZiBpdCBpcyBpbnNpZGUgYQpzdHJpbmcgb3IgY29tbWVudC4gICpOb3RlIExl ZnQgTWFyZ2luIFBhcmVuOjosIGZvciBkZXRhaWxzLgoKICAgRm9udCBMb2NrIGhpZ2hsaWdodGlu ZyBwYXR0ZXJucyBhbHJlYWR5IGV4aXN0IGZvciBtb3N0IG1vZGVzLCBidXQgeW91Cm1heSB3YW50 IHRvIGZvbnRpZnkgYWRkaXRpb25hbCBwYXR0ZXJucy4gIFlvdSBjYW4gdXNlIHRoZSBmdW5jdGlv bgrigJhmb250LWxvY2stYWRkLWtleXdvcmRz4oCZLCB0byBhZGQgeW91ciBvd24gaGlnaGxpZ2h0 aW5nIHBhdHRlcm5zIGZvciBhCnBhcnRpY3VsYXIgbW9kZS4gIEZvciBleGFtcGxlLCB0byBoaWdo bGlnaHQg4oCYRklYTUU64oCZIHdvcmRzIGluIEMKY29tbWVudHMsIHVzZSB0aGlzOgoKICAgICAo YWRkLWhvb2sgJ2MtbW9kZS1ob29rCiAgICAgICAgICAgICAgIChsYW1iZGEgKCkKICAgICAgICAg ICAgICAgIChmb250LWxvY2stYWRkLWtleXdvcmRzIG5pbAogICAgICAgICAgICAgICAgICcoKCJc XDxcXChGSVhNRVxcKToiIDEKICAgICAgICAgICAgICAgICAgICBmb250LWxvY2std2FybmluZy1m YWNlIHQpKSkpKQoKVG8gcmVtb3ZlIGtleXdvcmRzIGZyb20gdGhlIGZvbnQtbG9jayBoaWdobGln aHRpbmcgcGF0dGVybnMsIHVzZSB0aGUKZnVuY3Rpb24g4oCYZm9udC1sb2NrLXJlbW92ZS1rZXl3 b3Jkc+KAmS4gICpOb3RlIChlbGlzcClTZWFyY2gtYmFzZWQKRm9udGlmaWNhdGlvbjo6LgoKICAg Rm9udGlmeWluZyBsYXJnZSBidWZmZXJzIGNhbiB0YWtlIGEgbG9uZyB0aW1lLiAgVG8gYXZvaWQg bGFyZ2UgZGVsYXlzCndoZW4gYSBmaWxlIGlzIHZpc2l0ZWQsIEVtYWNzIGluaXRpYWxseSBmb250 aWZpZXMgb25seSB0aGUgdmlzaWJsZQpwb3J0aW9uIG9mIGEgYnVmZmVyLiAgQXMgeW91IHNjcm9s bCB0aHJvdWdoIHRoZSBidWZmZXIsIGVhY2ggcG9ydGlvbgp0aGF0IGJlY29tZXMgdmlzaWJsZSBp cyBmb250aWZpZWQgYXMgc29vbiBhcyBpdCBpcyBkaXNwbGF5ZWQ7IHRoaXMgdHlwZQpvZiBGb250 IExvY2sgaXMgY2FsbGVkICJKdXN0LUluLVRpbWUiIChvciAiSklUIikgTG9jay4gIFlvdSBjYW4g Y29udHJvbApob3cgSklUIExvY2sgYmVoYXZlcywgaW5jbHVkaW5nIHRlbGxpbmcgaXQgdG8gcGVy Zm9ybSBmb250aWZpY2F0aW9uCndoaWxlIGlkbGUsIGJ5IGN1c3RvbWl6aW5nIHZhcmlhYmxlcyBp biB0aGUgY3VzdG9taXphdGlvbiBncm91cArigJhqaXQtbG9ja+KAmS4gICpOb3RlIFNwZWNpZmlj IEN1c3RvbWl6YXRpb246Oi4KCgoqKiAxNC4xMyBJbnRlcmFjdGl2ZSBIaWdobGlnaHRpbmcKCkhp Z2hsaWdodCBDaGFuZ2VzIG1vZGUgaXMgYSBtaW5vciBtb2RlIHRoYXQgImhpZ2hsaWdodHMiIHRo ZSBwYXJ0cyBvZgp0aGUgYnVmZmVyIHRoYXQgd2VyZSBjaGFuZ2VkIG1vc3QgcmVjZW50bHksIGJ5 IGdpdmluZyB0aGF0IHRleHQgYQpkaWZmZXJlbnQgZmFjZS4gIFRvIGVuYWJsZSBvciBkaXNhYmxl IEhpZ2hsaWdodCBDaGFuZ2VzIG1vZGUsIHVzZSDigJhNLXgKaGlnaGxpZ2h0LWNoYW5nZXMtbW9k ZeKAmS4KCiAgIEhpIExvY2sgbW9kZSBpcyBhIG1pbm9yIG1vZGUgdGhhdCBoaWdobGlnaHRzIHRl eHQgdGhhdCBtYXRjaGVzCnJlZ3VsYXIgZXhwcmVzc2lvbnMgeW91IHNwZWNpZnkuICBGb3IgZXhh bXBsZSwgeW91IGNhbiB1c2UgaXQgdG8KaGlnaGxpZ2h0IGFsbCB0aGUgcmVmZXJlbmNlcyB0byBh IGNlcnRhaW4gdmFyaWFibGUgaW4gYSBwcm9ncmFtIHNvdXJjZQpmaWxlLCBoaWdobGlnaHQgY2Vy dGFpbiBwYXJ0cyBpbiBhIHZvbHVtaW5vdXMgb3V0cHV0IG9mIHNvbWUgcHJvZ3JhbSwgb3IKaGln aGxpZ2h0IGNlcnRhaW4gbmFtZXMgaW4gYW4gYXJ0aWNsZS4gIFRvIGVuYWJsZSBvciBkaXNhYmxl IEhpIExvY2sKbW9kZSwgdXNlIHRoZSBjb21tYW5kIOKAmE0teCBoaS1sb2NrLW1vZGXigJkuICBU byBlbmFibGUgSGkgTG9jayBtb2RlIGZvcgphbGwgYnVmZmVycywgdXNlIOKAmE0teCBnbG9iYWwt aGktbG9jay1tb2Rl4oCZIG9yIHBsYWNlCuKAmChnbG9iYWwtaGktbG9jay1tb2RlIDEp4oCZIGlu IHlvdXIg4oCYLmVtYWNz4oCZIGZpbGUuCgogICBIaSBMb2NrIG1vZGUgd29ya3MgbGlrZSBGb250 IExvY2sgbW9kZSAoKm5vdGUgRm9udCBMb2NrOjopLCBleGNlcHQKdGhhdCB5b3Ugc3BlY2lmeSBl eHBsaWNpdGx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb25zIHRvIGhpZ2hsaWdodC4gIFlvdQpjYW4g Y29udHJvbCB0aGVtIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kcy4gIChUaGUga2V5IGJpbmRp bmdzIGJlbG93CnRoYXQgYmVnaW4gd2l0aCDigJhDLXggd+KAmSBhcmUgZGVwcmVjYXRlZCBpbiBm YXZvciBvZiB0aGUgZ2xvYmFsIOKAmE0tcyBo4oCZCmJpbmRpbmdzLCBhbmQgd2lsbCBiZSByZW1v dmVkIGluIHNvbWUgZnV0dXJlIEVtYWNzIHZlcnNpb24uKQoK4oCYTS1zIGggciBSRUdFWFAgPFJF VD4gRkFDRSA8UkVUPuKAmQrigJhDLXggdyBoIFJFR0VYUCA8UkVUPiBGQUNFIDxSRVQ+4oCZCiAg ICAgSGlnaGxpZ2h0IHRleHQgdGhhdCBtYXRjaGVzIFJFR0VYUCB1c2luZyBmYWNlIEZBQ0UKICAg ICAo4oCYaGlnaGxpZ2h0LXJlZ2V4cOKAmSkuICBUaGUgaGlnaGxpZ2h0aW5nIHdpbGwgcmVtYWlu IGFzIGxvbmcgYXMgdGhlCiAgICAgYnVmZmVyIGlzIGxvYWRlZC4gIEZvciBleGFtcGxlLCB0byBo aWdobGlnaHQgYWxsIG9jY3VycmVuY2VzIG9mIHRoZQogICAgIHdvcmQg4oCcd2hpbeKAnSB1c2lu ZyB0aGUgZGVmYXVsdCBmYWNlIChhIHllbGxvdyBiYWNrZ3JvdW5kKSwgdHlwZSDigJhNLXMKICAg ICBoIHIgd2hpbSA8UkVUPiA8UkVUPuKAmS4gIEFueSBmYWNlIGNhbiBiZSB1c2VkIGZvciBoaWdo bGlnaHRpbmcsIEhpCiAgICAgTG9jayBwcm92aWRlcyBzZXZlcmFsIG9mIGl0cyBvd24gYW5kIHRo ZXNlIGFyZSBwcmUtbG9hZGVkIGludG8gYQogICAgIGxpc3Qgb2YgZGVmYXVsdCB2YWx1ZXMuICBX aGlsZSBiZWluZyBwcm9tcHRlZCBmb3IgYSBmYWNlIHVzZSDigJhNLW7igJkKICAgICBhbmQg4oCY TS1w4oCZIHRvIGN5Y2xlIHRocm91Z2ggdGhlbS4KCiAgICAgU2V0dGluZyB0aGUgb3B0aW9uIOKA mGhpLWxvY2stYXV0by1zZWxlY3QtZmFjZeKAmSB0byBhIG5vbi3igJhuaWzigJkgdmFsdWUKICAg ICBjYXVzZXMgdGhpcyBjb21tYW5kIChhbmQgb3RoZXIgSGkgTG9jayBjb21tYW5kcyB0aGF0IHJl YWQgZmFjZXMpIHRvCiAgICAgYXV0b21hdGljYWxseSBjaG9vc2UgdGhlIG5leHQgZmFjZSBmcm9t IHRoZSBkZWZhdWx0IGxpc3Qgd2l0aG91dAogICAgIHByb21wdGluZy4KCiAgICAgWW91IGNhbiB1 c2UgdGhpcyBjb21tYW5kIG11bHRpcGxlIHRpbWVzLCBzcGVjaWZ5aW5nIHZhcmlvdXMgcmVndWxh cgogICAgIGV4cHJlc3Npb25zIHRvIGhpZ2hsaWdodCBpbiBkaWZmZXJlbnQgd2F5cy4KCuKAmE0t cyBoIHUgUkVHRVhQIDxSRVQ+4oCZCuKAmEMteCB3IHIgUkVHRVhQIDxSRVQ+4oCZCiAgICAgVW5o aWdobGlnaHQgUkVHRVhQICjigJh1bmhpZ2hsaWdodC1yZWdleHDigJkpLiAgSWYgeW91IGludm9r ZSB0aGlzIGZyb20KICAgICB0aGUgbWVudSwgeW91IHNlbGVjdCB0aGUgZXhwcmVzc2lvbiB0byB1 bmhpZ2hsaWdodCBmcm9tIGEgbGlzdC4gIElmCiAgICAgeW91IGludm9rZSB0aGlzIGZyb20gdGhl IGtleWJvYXJkLCB5b3UgdXNlIHRoZSBtaW5pYnVmZmVyLiAgSXQgd2lsbAogICAgIHNob3cgdGhl IG1vc3QgcmVjZW50bHkgYWRkZWQgcmVndWxhciBleHByZXNzaW9uOyB1c2Ug4oCYTS1u4oCZIHRv IHNob3cKICAgICB0aGUgbmV4dCBvbGRlciBleHByZXNzaW9uIGFuZCDigJhNLXDigJkgdG8gc2Vs ZWN0IHRoZSBuZXh0IG5ld2VyCiAgICAgZXhwcmVzc2lvbi4gIChZb3UgY2FuIGFsc28gdHlwZSB0 aGUgZXhwcmVzc2lvbiBieSBoYW5kLCB3aXRoCiAgICAgY29tcGxldGlvbi4pICBXaGVuIHRoZSBl eHByZXNzaW9uIHlvdSB3YW50IHRvIHVuaGlnaGxpZ2h0IGFwcGVhcnMKICAgICBpbiB0aGUgbWlu aWJ1ZmZlciwgcHJlc3Mg4oCYPFJFVD7igJkgdG8gZXhpdCB0aGUgbWluaWJ1ZmZlciBhbmQKICAg ICB1bmhpZ2hsaWdodCBpdC4KCuKAmE0tcyBoIGwgUkVHRVhQIDxSRVQ+IEZBQ0UgPFJFVD7igJkK 4oCYQy14IHcgbCBSRUdFWFAgPFJFVD4gRkFDRSA8UkVUPuKAmQogICAgIEhpZ2hsaWdodCBlbnRp cmUgbGluZXMgY29udGFpbmluZyBhIG1hdGNoIGZvciBSRUdFWFAsIHVzaW5nIGZhY2UKICAgICBG QUNFICjigJhoaWdobGlnaHQtbGluZXMtbWF0Y2hpbmctcmVnZXhw4oCZKS4KCuKAmE0tcyBoIHAg UEhSQVNFIDxSRVQ+IEZBQ0UgPFJFVD7igJkK4oCYQy14IHcgcCBQSFJBU0UgPFJFVD4gRkFDRSA8 UkVUPuKAmQogICAgIEhpZ2hsaWdodCBtYXRjaGVzIG9mIFBIUkFTRSwgdXNpbmcgZmFjZSBGQUNF ICjigJhoaWdobGlnaHQtcGhyYXNl4oCZKS4KICAgICBQSFJBU0UgY2FuIGJlIGFueSByZWdleHAs IGJ1dCBzcGFjZXMgd2lsbCBiZSByZXBsYWNlZCBieSBtYXRjaGVzIHRvCiAgICAgd2hpdGVzcGFj ZSBhbmQgaW5pdGlhbCBsb3dlci1jYXNlIGxldHRlcnMgd2lsbCBiZWNvbWUgY2FzZQogICAgIGlu c2Vuc2l0aXZlLgoK4oCYTS1zIGggLuKAmQrigJhDLXggdyAu4oCZCiAgICAgSGlnaGxpZ2h0IHRo ZSBzeW1ib2wgZm91bmQgbmVhciBwb2ludCwgdXNpbmcgdGhlIG5leHQgYXZhaWxhYmxlCiAgICAg ZmFjZSAo4oCYaGlnaGxpZ2h0LXN5bWJvbC1hdC1wb2ludOKAmSkuCgrigJhNLXMgaCB34oCZCuKA mEMteCB3IGLigJkKICAgICBJbnNlcnQgYWxsIHRoZSBjdXJyZW50IGhpZ2hsaWdodGluZyByZWdl eHAvZmFjZSBwYWlycyBpbnRvIHRoZQogICAgIGJ1ZmZlciBhdCBwb2ludCwgd2l0aCBjb21tZW50 IGRlbGltaXRlcnMgdG8gcHJldmVudCB0aGVtIGZyb20KICAgICBjaGFuZ2luZyB5b3VyIHByb2dy YW0uICAoVGhpcyBrZXkgYmluZGluZyBydW5zIHRoZQogICAgIOKAmGhpLWxvY2std3JpdGUtaW50 ZXJhY3RpdmUtcGF0dGVybnPigJkgY29tbWFuZC4pCgogICAgIFRoZXNlIHBhdHRlcm5zIGFyZSBl eHRyYWN0ZWQgZnJvbSB0aGUgY29tbWVudHMsIGlmIGFwcHJvcHJpYXRlLCBpZgogICAgIHlvdSBp bnZva2Ug4oCYTS14IGhpLWxvY2stZmluZC1wYXR0ZXJuc+KAmSwgb3IgaWYgeW91IHZpc2l0IHRo ZSBmaWxlCiAgICAgd2hpbGUgSGkgTG9jayBtb2RlIGlzIGVuYWJsZWQgKHNpbmNlIHRoYXQgcnVu cwogICAgIOKAmGhpLWxvY2stZmluZC1wYXR0ZXJuc+KAmSkuCgrigJhNLXMgaCBm4oCZCuKAmEMt eCB3IGnigJkKICAgICBFeHRyYWN0IHJlZ2V4cC9mYWNlIHBhaXJzIGZyb20gY29tbWVudHMgaW4g dGhlIGN1cnJlbnQgYnVmZmVyCiAgICAgKOKAmGhpLWxvY2stZmluZC1wYXR0ZXJuc+KAmSkuICBU aHVzLCB5b3UgY2FuIGVudGVyIHBhdHRlcm5zCiAgICAgaW50ZXJhY3RpdmVseSB3aXRoIOKAmGhp Z2hsaWdodC1yZWdleHDigJksIHN0b3JlIHRoZW0gaW50byB0aGUgZmlsZQogICAgIHdpdGgg4oCY aGktbG9jay13cml0ZS1pbnRlcmFjdGl2ZS1wYXR0ZXJuc+KAmSwgZWRpdCB0aGVtIChwZXJoYXBz CiAgICAgaW5jbHVkaW5nIGRpZmZlcmVudCBmYWNlcyBmb3IgZGlmZmVyZW50IHBhcmVudGhlc2l6 ZWQgcGFydHMgb2YgdGhlCiAgICAgbWF0Y2gpLCBhbmQgZmluYWxseSB1c2UgdGhpcyBjb21tYW5k ICjigJhoaS1sb2NrLWZpbmQtcGF0dGVybnPigJkpIHRvCiAgICAgaGF2ZSBIaSBMb2NrIGhpZ2hs aWdodCB0aGUgZWRpdGVkIHBhdHRlcm5zLgoKICAgICBUaGUgdmFyaWFibGUg4oCYaGktbG9jay1m aWxlLXBhdHRlcm5zLXBvbGljeeKAmSBjb250cm9scyB3aGV0aGVyIEhpCiAgICAgTG9jayBtb2Rl IHNob3VsZCBhdXRvbWF0aWNhbGx5IGV4dHJhY3QgYW5kIGhpZ2hsaWdodCBwYXR0ZXJucyBmb3Vu ZAogICAgIGluIGEgZmlsZSB3aGVuIGl0IGlzIHZpc2l0ZWQuICBJdHMgdmFsdWUgY2FuIGJlIOKA mG5pbOKAmSAobmV2ZXIKICAgICBoaWdobGlnaHQpLCDigJhhc2vigJkgKHF1ZXJ5IHRoZSB1c2Vy KSwgb3IgYSBmdW5jdGlvbi4gIElmIGl0IGlzIGEKICAgICBmdW5jdGlvbiwg4oCYaGktbG9jay1m aW5kLXBhdHRlcm5z4oCZIGNhbGxzIGl0IHdpdGggdGhlIHBhdHRlcm5zIGFzCiAgICAgYXJndW1l bnQ7IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIG5vbi3igJhuaWzigJksIHRoZSBwYXR0ZXJucyBh cmUgdXNlZC4KICAgICBUaGUgZGVmYXVsdCBpcyDigJhhc2vigJkuICBOb3RlIHRoYXQgcGF0dGVy bnMgYXJlIGFsd2F5cyBoaWdobGlnaHRlZCBpZgogICAgIHlvdSBjYWxsIOKAmGhpLWxvY2stZmlu ZC1wYXR0ZXJuc+KAmSBkaXJlY3RseSwgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUKICAgICBvZiB0 aGlzIHZhcmlhYmxlLgoKICAgICBBbHNvLCDigJhoaS1sb2NrLWZpbmQtcGF0dGVybnPigJkgZG9l cyBub3RoaW5nIGlmIHRoZSBjdXJyZW50IG1ham9yCiAgICAgbW9kZeKAmXMgc3ltYm9sIGlzIGEg bWVtYmVyIG9mIHRoZSBsaXN0IOKAmGhpLWxvY2stZXhjbHVkZS1tb2Rlc+KAmS4KCgoqKiAxNC4x NCBXaW5kb3cgRnJpbmdlcwoKT24gZ3JhcGhpY2FsIGRpc3BsYXlzLCBlYWNoIEVtYWNzIHdpbmRv dyBub3JtYWxseSBoYXMgbmFycm93ICJmcmluZ2VzIgpvbiB0aGUgbGVmdCBhbmQgcmlnaHQgZWRn ZXMuICBUaGUgZnJpbmdlcyBhcmUgdXNlZCB0byBkaXNwbGF5IHN5bWJvbHMKdGhhdCBwcm92aWRl IGluZm9ybWF0aW9uIGFib3V0IHRoZSB0ZXh0IGluIHRoZSB3aW5kb3cuICBZb3UgY2FuIHR5cGUK 4oCYTS14IGZyaW5nZS1tb2Rl4oCZIHRvIHRvZ2dsZSBkaXNwbGF5IG9mIHRoZSBmcmluZ2VzIG9y IHRvIG1vZGlmeSB0aGVpcgp3aWR0aC4gIFRoaXMgY29tbWFuZCBhZmZlY3RzIGZyaW5nZXMgaW4g YWxsIGZyYW1lczsgdG8gbW9kaWZ5IGZyaW5nZXMgb24KdGhlIHNlbGVjdGVkIGZyYW1lIG9ubHks IHVzZSDigJhNLXggc2V0LWZyaW5nZS1zdHlsZeKAmS4gIFlvdSBjYW4gbWFrZSB5b3VyCmNoYW5n ZXMgdG8gdGhlIGZyaW5nZXMgcGVybWFuZW50IGJ5IGN1c3RvbWl6aW5nIHRoZSB2YXJpYWJsZQri gJhmcmluZ2UtbW9kZeKAmS4KCiAgIFRoZSBtb3N0IGNvbW1vbiB1c2Ugb2YgdGhlIGZyaW5nZXMg aXMgdG8gaW5kaWNhdGUgYSBjb250aW51YXRpb24gbGluZQooKm5vdGUgQ29udGludWF0aW9uIExp bmVzOjopLiAgV2hlbiBvbmUgbGluZSBvZiB0ZXh0IGlzIHNwbGl0IGludG8KbXVsdGlwbGUgc2Ny ZWVuIGxpbmVzLCB0aGUgbGVmdCBmcmluZ2Ugc2hvd3MgYSBjdXJ2aW5nIGFycm93IGZvciBlYWNo CnNjcmVlbiBsaW5lIGV4Y2VwdCB0aGUgZmlyc3QsIGluZGljYXRpbmcgdGhhdCB0aGlzIGlzIG5v dCB0aGUgcmVhbApiZWdpbm5pbmcuICBUaGUgcmlnaHQgZnJpbmdlIHNob3dzIGEgY3VydmluZyBh cnJvdyBmb3IgZWFjaCBzY3JlZW4gbGluZQpleGNlcHQgdGhlIGxhc3QsIGluZGljYXRpbmcgdGhh dCB0aGlzIGlzIG5vdCB0aGUgcmVhbCBlbmQuICBJZiB0aGUKbGluZeKAmXMgZGlyZWN0aW9uIGlz IHJpZ2h0LXRvLWxlZnQgKCpub3RlIEJpZGlyZWN0aW9uYWwgRWRpdGluZzo6KSwgdGhlCm1lYW5p bmdzIG9mIHRoZSBjdXJ2aW5nIGFycm93cyBpbiB0aGUgZnJpbmdlcyBhcmUgc3dhcHBlZC4KCiAg IFRoZSBmcmluZ2VzIGluZGljYXRlIGxpbmUgdHJ1bmNhdGlvbiAoKm5vdGUgTGluZSBUcnVuY2F0 aW9uOjopIHdpdGgKc2hvcnQgaG9yaXpvbnRhbCBhcnJvd3MgbWVhbmluZyB0aGVyZeKAmXMgbW9y ZSB0ZXh0IG9uIHRoaXMgbGluZSB3aGljaCBpcwpzY3JvbGxlZCBob3Jpem9udGFsbHkgb3V0IG9m IHZpZXcuICBDbGlja2luZyB0aGUgbW91c2Ugb24gb25lIG9mIHRoZQphcnJvd3Mgc2Nyb2xscyB0 aGUgZGlzcGxheSBob3Jpem9udGFsbHkgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgYXJyb3cuCgog ICBUaGUgZnJpbmdlcyBjYW4gYWxzbyBpbmRpY2F0ZSBvdGhlciB0aGluZ3MsIHN1Y2ggYXMgYnVm ZmVyIGJvdW5kYXJpZXMKKCpub3RlIERpc3BsYXlpbmcgQm91bmRhcmllczo6KSwgYW5kIHdoZXJl IGEgcHJvZ3JhbSB5b3UgYXJlIGRlYnVnZ2luZwppcyBleGVjdXRpbmcgKCpub3RlIERlYnVnZ2Vy czo6KS4KCiAgIFRoZSBmcmluZ2UgaXMgYWxzbyB1c2VkIGZvciBkcmF3aW5nIHRoZSBjdXJzb3Is IGlmIHRoZSBjdXJyZW50IGxpbmUKaXMgZXhhY3RseSBhcyB3aWRlIGFzIHRoZSB3aW5kb3cgYW5k IHBvaW50IGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuClRvIGRpc2FibGUgdGhpcywgY2hhbmdl IHRoZSB2YXJpYWJsZSDigJhvdmVyZmxvdy1uZXdsaW5lLWludG8tZnJpbmdl4oCZIHRvCuKAmG5p bOKAmTsgdGhpcyBjYXVzZXMgRW1hY3MgdG8gY29udGludWUgb3IgdHJ1bmNhdGUgbGluZXMgdGhh dCBhcmUgZXhhY3RseQphcyB3aWRlIGFzIHRoZSB3aW5kb3cuCgogICBJZiB5b3UgY3VzdG9taXpl IOKAmGZyaW5nZS1tb2Rl4oCZIHRvIHJlbW92ZSB0aGUgZnJpbmdlcyBvbiBvbmUgb3IgYm90aApz aWRlcyBvZiB0aGUgd2luZG93IGRpc3BsYXksIHRoZSBmZWF0dXJlcyB0aGF0IGRpc3BsYXkgb24g dGhlIGZyaW5nZSBhcmUKbm90IGF2YWlsYWJsZS4gIEluZGljYXRvcnMgb2YgbGluZSBjb250aW51 YXRpb24gYW5kIHRydW5jYXRpb24gYXJlIGFuCmV4Y2VwdGlvbjogd2hlbiBmcmluZ2VzIGFyZSBu b3QgYXZhaWxhYmxlLCBFbWFjcyB1c2VzIHRoZSBsZWZ0bW9zdCBhbmQKcmlnaHRtb3N0IGNoYXJh Y3RlciBjZWxscyB0byBpbmRpY2F0ZSBjb250aW51YXRpb24gYW5kIHRydW5jYXRpb24gd2l0aApz cGVjaWFsIEFTQ0lJIGNoYXJhY3RlcnMsIHNlZSAqbm90ZSBDb250aW51YXRpb24gTGluZXM6Oiwg YW5kICpub3RlIExpbmUKVHJ1bmNhdGlvbjo6LiAgVGhpcyByZWR1Y2VzIHRoZSB3aWR0aCBhdmFp bGFibGUgZm9yIGRpc3BsYXlpbmcgdGV4dCBvbgplYWNoIGxpbmUsIGJlY2F1c2UgdGhlIGNoYXJh Y3RlciBjZWxscyB1c2VkIGZvciB0cnVuY2F0aW9uIGFuZApjb250aW51YXRpb24gaW5kaWNhdG9y cyBhcmUgcmVzZXJ2ZWQgZm9yIHRoYXQgcHVycG9zZS4gIFNpbmNlIGJ1ZmZlcgp0ZXh0IGNhbiBp bmNsdWRlIGJpZGlyZWN0aW9uYWwgdGV4dCwgYW5kIHRodXMgYm90aCBsZWZ0LXRvLXJpZ2h0IGFu ZApyaWdodC10by1sZWZ0IHBhcmFncmFwaHMgKCpub3RlIEJpZGlyZWN0aW9uYWwgRWRpdGluZzo6 KSwgcmVtb3Zpbmcgb25seQpvbmUgb2YgdGhlIGZyaW5nZXMgc3RpbGwgcmVzZXJ2ZXMgdHdvIGNo YXJhY3RlciBjZWxscywgb25lIG9uIGVhY2ggc2lkZQpvZiB0aGUgd2luZG93LCBmb3IgdHJ1bmNh dGlvbiBhbmQgY29udGludWF0aW9uIGluZGljYXRvcnMsIGJlY2F1c2UgdGhlc2UKaW5kaWNhdG9y cyBhcmUgZGlzcGxheWVkIG9uIG9wcG9zaXRlIHNpZGVzIG9mIHRoZSB3aW5kb3cgaW4KcmlnaHQt dG8tbGVmdCBwYXJhZ3JhcGhzLgoKCioqIDE0LjE1IERpc3BsYXlpbmcgQm91bmRhcmllcwoKT24g Z3JhcGhpY2FsIGRpc3BsYXlzLCBFbWFjcyBjYW4gaW5kaWNhdGUgdGhlIGJ1ZmZlciBib3VuZGFy aWVzIGluIHRoZQpmcmluZ2VzLiAgSWYgeW91IGVuYWJsZSB0aGlzIGZlYXR1cmUsIHRoZSBmaXJz dCBsaW5lIGFuZCB0aGUgbGFzdCBsaW5lCmFyZSBtYXJrZWQgd2l0aCBhbmdsZSBpbWFnZXMgaW4g dGhlIGZyaW5nZXMuICBUaGlzIGNhbiBiZSBjb21iaW5lZCB3aXRoCnVwIGFuZCBkb3duIGFycm93 IGltYWdlcyB3aGljaCBzYXkgd2hldGhlciBpdCBpcyBwb3NzaWJsZSB0byBzY3JvbGwgdGhlCndp bmRvdy4KCiAgIFRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUg4oCYaW5kaWNhdGUtYnVmZmVyLWJv dW5kYXJpZXPigJkgY29udHJvbHMgaG93CnRoZSBidWZmZXIgYm91bmRhcmllcyBhbmQgd2luZG93 IHNjcm9sbGluZyBpcyBpbmRpY2F0ZWQgaW4gdGhlIGZyaW5nZXMuCklmIHRoZSB2YWx1ZSBpcyDi gJhsZWZ04oCZIG9yIOKAmHJpZ2h04oCZLCBib3RoIGFuZ2xlIGFuZCBhcnJvdyBiaXRtYXBzIGFy ZQpkaXNwbGF5ZWQgaW4gdGhlIGxlZnQgb3IgcmlnaHQgZnJpbmdlLCByZXNwZWN0aXZlbHkuCgog ICBJZiB2YWx1ZSBpcyBhbiBhbGlzdCAoKm5vdGUgKGVsaXNwKUFzc29jaWF0aW9uIExpc3RzOjop LCBlYWNoIGVsZW1lbnQK4oCYKElORElDQVRPUiAuIFBPU0lUSU9OKeKAmSBzcGVjaWZpZXMgdGhl IHBvc2l0aW9uIG9mIG9uZSBvZiB0aGUKaW5kaWNhdG9ycy4gIFRoZSBJTkRJQ0FUT1IgbXVzdCBi ZSBvbmUgb2Yg4oCYdG9w4oCZLCDigJhib3R0b23igJksIOKAmHVw4oCZLCDigJhkb3du4oCZLApv ciDigJh04oCZIHdoaWNoIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgdGhlIGlu ZGljYXRvcnMgbm90CnByZXNlbnQgaW4gdGhlIGFsaXN0LiAgVGhlIFBPU0lUSU9OIGlzIG9uZSBv ZiDigJhsZWZ04oCZLCDigJhyaWdodOKAmSwgb3Ig4oCYbmls4oCZCndoaWNoIHNwZWNpZmllcyBu b3QgdG8gc2hvdyB0aGlzIGluZGljYXRvci4KCiAgIEZvciBleGFtcGxlLCDigJgoKHRvcCAuIGxl ZnQpICh0IC4gcmlnaHQpKeKAmSBwbGFjZXMgdGhlIHRvcCBhbmdsZSBiaXRtYXAKaW4gbGVmdCBm cmluZ2UsIHRoZSBib3R0b20gYW5nbGUgYml0bWFwIGluIHJpZ2h0IGZyaW5nZSwgYW5kIGJvdGgg YXJyb3cKYml0bWFwcyBpbiByaWdodCBmcmluZ2UuICBUbyBzaG93IGp1c3QgdGhlIGFuZ2xlIGJp dG1hcHMgaW4gdGhlIGxlZnQKZnJpbmdlLCBidXQgbm8gYXJyb3cgYml0bWFwcywgdXNlIOKAmCgo dG9wIC4gbGVmdCkgKGJvdHRvbSAuIGxlZnQpKeKAmS4KCgoqKiAxNC4xNiBVc2VsZXNzIFdoaXRl c3BhY2UKCkl0IGlzIGVhc3kgdG8gbGVhdmUgdW5uZWNlc3Nhcnkgc3BhY2VzIGF0IHRoZSBlbmQg b2YgYSBsaW5lLCBvciBlbXB0eQpsaW5lcyBhdCB0aGUgZW5kIG9mIGEgYnVmZmVyLCB3aXRob3V0 IHJlYWxpemluZyBpdC4gIEluIG1vc3QgY2FzZXMsIHRoaXMKInRyYWlsaW5nIHdoaXRlc3BhY2Ui IGhhcyBubyBlZmZlY3QsIGJ1dCBzb21ldGltZXMgaXQgY2FuIGJlIGEgbnVpc2FuY2UuCgogICBZ b3UgY2FuIG1ha2UgdHJhaWxpbmcgd2hpdGVzcGFjZSBhdCB0aGUgZW5kIG9mIGEgbGluZSB2aXNp YmxlIGJ5CnNldHRpbmcgdGhlIGJ1ZmZlci1sb2NhbCB2YXJpYWJsZSDigJhzaG93LXRyYWlsaW5n LXdoaXRlc3BhY2XigJkgdG8g4oCYdOKAmS4KVGhlbiBFbWFjcyBkaXNwbGF5cyB0cmFpbGluZyB3 aGl0ZXNwYWNlLCB1c2luZyB0aGUgZmFjZQrigJh0cmFpbGluZy13aGl0ZXNwYWNl4oCZLgoKICAg VGhpcyBmZWF0dXJlIGRvZXMgbm90IGFwcGx5IHdoZW4gcG9pbnQgaXMgYXQgdGhlIGVuZCBvZiB0 aGUgbGluZQpjb250YWluaW5nIHRoZSB3aGl0ZXNwYWNlLiAgU3RyaWN0bHkgc3BlYWtpbmcsIHRo YXQgaXMgdHJhaWxpbmcKd2hpdGVzcGFjZSBub25ldGhlbGVzcywgYnV0IGRpc3BsYXlpbmcgaXQg c3BlY2lhbGx5IGluIHRoYXQgY2FzZSBsb29rcwp1Z2x5IHdoaWxlIHlvdSBhcmUgdHlwaW5nIGlu IG5ldyB0ZXh0LiAgSW4gdGhpcyBzcGVjaWFsIGNhc2UsIHRoZQpsb2NhdGlvbiBvZiBwb2ludCBp cyBlbm91Z2ggdG8gc2hvdyB5b3UgdGhhdCB0aGUgc3BhY2VzIGFyZSBwcmVzZW50LgoKICAgVHlw ZSDigJhNLXggZGVsZXRlLXRyYWlsaW5nLXdoaXRlc3BhY2XigJkgdG8gZGVsZXRlIGFsbCB0cmFp bGluZwp3aGl0ZXNwYWNlLiAgVGhpcyBjb21tYW5kIGRlbGV0ZXMgYWxsIGV4dHJhIHNwYWNlcyBh dCB0aGUgZW5kIG9mIGVhY2gKbGluZSBpbiB0aGUgYnVmZmVyLCBhbmQgYWxsIGVtcHR5IGxpbmVz IGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlcjsgdG8KaWdub3JlIHRoZSBsYXR0ZXIsIGNoYW5nZSB0 aGUgdmFyaWFibGUg4oCYZGVsZXRlLXRyYWlsaW5nLWxpbmVz4oCZIHRvIOKAmG5pbOKAmS4KSWYg dGhlIHJlZ2lvbiBpcyBhY3RpdmUsIHRoZSBjb21tYW5kIGluc3RlYWQgZGVsZXRlcyBleHRyYSBz cGFjZXMgYXQgdGhlCmVuZCBvZiBlYWNoIGxpbmUgaW4gdGhlIHJlZ2lvbi4KCiAgIE9uIGdyYXBo aWNhbCBkaXNwbGF5cywgRW1hY3MgY2FuIGluZGljYXRlIHVudXNlZCBsaW5lcyBhdCB0aGUgZW5k IG9mCnRoZSB3aW5kb3cgd2l0aCBhIHNtYWxsIGltYWdlIGluIHRoZSBsZWZ0IGZyaW5nZSAoKm5v dGUgRnJpbmdlczo6KS4gIFRoZQppbWFnZSBhcHBlYXJzIGZvciBzY3JlZW4gbGluZXMgdGhhdCBk byBub3QgY29ycmVzcG9uZCB0byBhbnkgYnVmZmVyCnRleHQsIHNvIGJsYW5rIGxpbmVzIGF0IHRo ZSBlbmQgb2YgdGhlIGJ1ZmZlciBzdGFuZCBvdXQgYmVjYXVzZSB0aGV5CmxhY2sgdGhpcyBpbWFn ZS4gIFRvIGVuYWJsZSB0aGlzIGZlYXR1cmUsIHNldCB0aGUgYnVmZmVyLWxvY2FsIHZhcmlhYmxl CuKAmGluZGljYXRlLWVtcHR5LWxpbmVz4oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1ZS4gIFlv dSBjYW4gZW5hYmxlIG9yIGRpc2FibGUKdGhpcyBmZWF0dXJlIGZvciBhbGwgbmV3IGJ1ZmZlcnMg Ynkgc2V0dGluZyB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzCnZhcmlhYmxlLCBlLmcuLCDigJgo c2V0cS1kZWZhdWx0IGluZGljYXRlLWVtcHR5LWxpbmVzIHQp4oCZLgoKICAgV2hpdGVzcGFjZSBt b2RlIGlzIGEgYnVmZmVyLWxvY2FsIG1pbm9yIG1vZGUgdGhhdCBsZXRzIHlvdSB2aXN1YWxpemUK bWFueSBraW5kcyBvZiB3aGl0ZXNwYWNlIGluIHRoZSBidWZmZXIsIGJ5IGVpdGhlciBkcmF3aW5n IHRoZSB3aGl0ZXNwYWNlCmNoYXJhY3RlcnMgd2l0aCBhIHNwZWNpYWwgZmFjZSBvciBkaXNwbGF5 aW5nIHRoZW0gYXMgc3BlY2lhbCBnbHlwaHMuICBUbwp0b2dnbGUgdGhpcyBtb2RlLCB0eXBlIOKA mE0teCB3aGl0ZXNwYWNlLW1vZGXigJkuICBUaGUga2luZHMgb2Ygd2hpdGVzcGFjZQp2aXN1YWxp emVkIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBsaXN0IHZhcmlhYmxlIOKAmHdoaXRlc3BhY2Utc3R5 bGXigJkuCkluZGl2aWR1YWwgZWxlbWVudHMgaW4gdGhhdCBsaXN0IGNhbiBiZSB0b2dnbGVkIG9u IG9yIG9mZiBpbiB0aGUgY3VycmVudApidWZmZXIgYnkgdHlwaW5nIOKAmE0teCB3aGl0ZXNwYWNl LXRvZ2dsZS1vcHRpb25z4oCZLiAgSGVyZSBpcyBhIHBhcnRpYWwKbGlzdCBvZiBwb3NzaWJsZSBl bGVtZW50cyAoc2VlIHRoZSB2YXJpYWJsZeKAmXMgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZ1bGwK bGlzdCk6CgrigJhmYWNl4oCZCiAgICAgRW5hYmxlIGFsbCB2aXN1YWxpemF0aW9ucyB3aGljaCB1 c2Ugc3BlY2lhbCBmYWNlcy4gIFRoaXMgZWxlbWVudAogICAgIGhhcyBhIHNwZWNpYWwgbWVhbmlu ZzogaWYgaXQgaXMgYWJzZW50IGZyb20gdGhlIGxpc3QsIG5vbmUgb2YgdGhlCiAgICAgb3RoZXIg dmlzdWFsaXphdGlvbnMgdGFrZSBlZmZlY3QgZXhjZXB0IOKAmHNwYWNlLW1hcmvigJksIOKAmHRh Yi1tYXJr4oCZLAogICAgIGFuZCDigJhuZXdsaW5lLW1hcmvigJkuCgrigJh0cmFpbGluZ+KAmQog ICAgIEhpZ2hsaWdodCB0cmFpbGluZyB3aGl0ZXNwYWNlLgoK4oCYdGFic+KAmQogICAgIEhpZ2hs aWdodCB0YWIgY2hhcmFjdGVycy4KCuKAmHNwYWNlc+KAmQogICAgIEhpZ2hsaWdodCBzcGFjZSBh bmQgbm9uLWJyZWFraW5nIHNwYWNlIGNoYXJhY3RlcnMuCgrigJhsaW5lc+KAmQogICAgIEhpZ2hs aWdodCBsaW5lcyBsb25nZXIgdGhhbiA4MCBjb2x1bW5zLiAgVG8gY2hhbmdlIHRoZSBjb2x1bW4K ICAgICBsaW1pdCwgY3VzdG9taXplIHRoZSB2YXJpYWJsZSDigJh3aGl0ZXNwYWNlLWxpbmUtY29s dW1u4oCZLgoK4oCYbmV3bGluZeKAmQogICAgIEhpZ2hsaWdodCBuZXdsaW5lcy4KCuKAmGVtcHR5 4oCZCiAgICAgSGlnaGxpZ2h0IGVtcHR5IGxpbmVzIGF0IHRoZSBiZWdpbm5pbmcgYW5kL29yIGVu ZCBvZiB0aGUgYnVmZmVyLgoK4oCYYmlnLWluZGVudOKAmQogICAgIEhpZ2hsaWdodCB0b28tZGVl cCBpbmRlbnRhdGlvbi4gIEJ5IGRlZmF1bHQgYW55IHNlcXVlbmNlIG9mIGF0CiAgICAgbGVhc3Qg NCBjb25zZWN1dGl2ZSB0YWIgY2hhcmFjdGVycyBvciAzMiBjb25zZWN1dGl2ZSBzcGFjZQogICAg IGNoYXJhY3RlcnMgaXMgaGlnaGxpZ2h0ZWQuICBUbyBjaGFuZ2UgdGhhdCwgY3VzdG9taXplIHRo ZSByZWd1bGFyCiAgICAgZXhwcmVzc2lvbiDigJh3aGl0ZXNwYWNlLWJpZy1pbmRlbnQtcmVnZXhw 4oCZLgoK4oCYc3BhY2UtbWFya+KAmQogICAgIERyYXcgc3BhY2UgYW5kIG5vbi1icmVha2luZyBj aGFyYWN0ZXJzIHdpdGggYSBzcGVjaWFsIGdseXBoLgoK4oCYdGFiLW1hcmvigJkKICAgICBEcmF3 IHRhYiBjaGFyYWN0ZXJzIHdpdGggYSBzcGVjaWFsIGdseXBoLgoK4oCYbmV3bGluZS1tYXJr4oCZ CiAgICAgRHJhdyBuZXdsaW5lIGNoYXJhY3RlcnMgd2l0aCBhIHNwZWNpYWwgZ2x5cGguCgogICBH bG9iYWwgV2hpdGVzcGFjZSBtb2RlIGlzIGEgZ2xvYmFsIG1pbm9yIG1vZGUgdGhhdCBsZXRzIHlv dSB2aXN1YWxpemUKd2hpdGVzcGFjZSBpbiBhbGwgYnVmZmVycy4gIFRvIHRvZ2dsZSBpbmRpdmlk dWFsIGZlYXR1cmVzLCB1c2Ug4oCYTS14Cmdsb2JhbC13aGl0ZXNwYWNlLXRvZ2dsZS1vcHRpb25z 4oCZLgoKCioqIDE0LjE3IFNlbGVjdGl2ZSBEaXNwbGF5CgpFbWFjcyBoYXMgdGhlIGFiaWxpdHkg dG8gaGlkZSBsaW5lcyBpbmRlbnRlZCBtb3JlIHRoYW4gYSBnaXZlbiBudW1iZXIgb2YKY29sdW1u cy4gIFlvdSBjYW4gdXNlIHRoaXMgdG8gZ2V0IGFuIG92ZXJ2aWV3IG9mIGEgcGFydCBvZiBhIHBy b2dyYW0uCgogICBUbyBoaWRlIGxpbmVzIGluIHRoZSBjdXJyZW50IGJ1ZmZlciwgdHlwZSDigJhD LXggJOKAmQoo4oCYc2V0LXNlbGVjdGl2ZS1kaXNwbGF54oCZKSB3aXRoIGEgbnVtZXJpYyBhcmd1 bWVudCBOLiAgVGhlbiBsaW5lcyB3aXRoIGF0CmxlYXN0IE4gY29sdW1ucyBvZiBpbmRlbnRhdGlv biBkaXNhcHBlYXIgZnJvbSB0aGUgc2NyZWVuLiAgVGhlIG9ubHkKaW5kaWNhdGlvbiBvZiB0aGVp ciBwcmVzZW5jZSBpcyB0aGF0IHRocmVlIGRvdHMgKOKAmOKApuKAmSkgYXBwZWFyIGF0IHRoZSBl bmQKb2YgZWFjaCB2aXNpYmxlIGxpbmUgdGhhdCBpcyBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBo aWRkZW4gb25lcy4KCiAgIFRoZSBjb21tYW5kcyDigJhDLW7igJkgYW5kIOKAmEMtcOKAmSBtb3Zl IGFjcm9zcyB0aGUgaGlkZGVuIGxpbmVzIGFzIGlmIHRoZXkKd2VyZSBub3QgdGhlcmUuCgogICBU aGUgaGlkZGVuIGxpbmVzIGFyZSBzdGlsbCBwcmVzZW50IGluIHRoZSBidWZmZXIsIGFuZCBtb3N0 IGVkaXRpbmcKY29tbWFuZHMgc2VlIHRoZW0gYXMgdXN1YWwsIHNvIHlvdSBtYXkgZmluZCBwb2lu dCBpbiB0aGUgbWlkZGxlIG9mIHRoZQpoaWRkZW4gdGV4dC4gIFdoZW4gdGhpcyBoYXBwZW5zLCB0 aGUgY3Vyc29yIGFwcGVhcnMgYXQgdGhlIGVuZCBvZiB0aGUKcHJldmlvdXMgbGluZSwgYWZ0ZXIg dGhlIHRocmVlIGRvdHMuICBJZiBwb2ludCBpcyBhdCB0aGUgZW5kIG9mIHRoZQp2aXNpYmxlIGxp bmUsIGJlZm9yZSB0aGUgbmV3bGluZSB0aGF0IGVuZHMgaXQsIHRoZSBjdXJzb3IgYXBwZWFycyBi ZWZvcmUKdGhlIHRocmVlIGRvdHMuCgogICBUbyBtYWtlIGFsbCBsaW5lcyB2aXNpYmxlIGFnYWlu LCB0eXBlIOKAmEMteCAk4oCZIHdpdGggbm8gYXJndW1lbnQuCgogICBJZiB5b3Ugc2V0IHRoZSB2 YXJpYWJsZSDigJhzZWxlY3RpdmUtZGlzcGxheS1lbGxpcHNlc+KAmSB0byDigJhuaWzigJksIHRo ZQp0aHJlZSBkb3RzIGRvIG5vdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiBhIGxpbmUgdGhhdCBwcmVj ZWRlcyBoaWRkZW4KbGluZXMuICBUaGVuIHRoZXJlIGlzIG5vIHZpc2libGUgaW5kaWNhdGlvbiBv ZiB0aGUgaGlkZGVuIGxpbmVzLiAgVGhpcwp2YXJpYWJsZSBiZWNvbWVzIGxvY2FsIGF1dG9tYXRp Y2FsbHkgd2hlbiBzZXQuCgogICBTZWUgYWxzbyAqbm90ZSBPdXRsaW5lIE1vZGU6OiBmb3IgYW5v dGhlciB3YXkgdG8gaGlkZSBwYXJ0IG9mIHRoZQp0ZXh0IGluIGEgYnVmZmVyLgoKCioqIDE0LjE4 IE9wdGlvbmFsIE1vZGUgTGluZSBGZWF0dXJlcwoKVGhlIGJ1ZmZlciBwZXJjZW50YWdlIFBPUyBp bmRpY2F0ZXMgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIGJ1ZmZlciBhYm92ZQp0aGUgdG9wIG9mIHRo ZSB3aW5kb3cuICBZb3UgY2FuIGFkZGl0aW9uYWxseSBkaXNwbGF5IHRoZSBzaXplIG9mIHRoZQpi dWZmZXIgYnkgdHlwaW5nIOKAmE0teCBzaXplLWluZGljYXRpb24tbW9kZeKAmSB0byB0dXJuIG9u IFNpemUgSW5kaWNhdGlvbgptb2RlLiAgVGhlIHNpemUgd2lsbCBiZSBkaXNwbGF5ZWQgaW1tZWRp YXRlbHkgZm9sbG93aW5nIHRoZSBidWZmZXIKcGVyY2VudGFnZSBsaWtlIHRoaXM6CgogICAgIFBP UyBvZiBTSVpFCgpIZXJlIFNJWkUgaXMgdGhlIGh1bWFuIHJlYWRhYmxlIHJlcHJlc2VudGF0aW9u IG9mIHRoZSBudW1iZXIgb2YKY2hhcmFjdGVycyBpbiB0aGUgYnVmZmVyLCB3aGljaCBtZWFucyB0 aGF0IOKAmGvigJkgZm9yIDEwXjMsIOKAmE3igJkgZm9yIDEwXjYsCuKAmEfigJkgZm9yIDEwXjks IGV0Yy4sIGFyZSB1c2VkIHRvIGFiYnJldmlhdGUuCgogICBUaGUgY3VycmVudCBsaW5lIG51bWJl ciBvZiBwb2ludCBhcHBlYXJzIGluIHRoZSBtb2RlIGxpbmUgd2hlbiBMaW5lCk51bWJlciBtb2Rl IGlzIGVuYWJsZWQuICBVc2UgdGhlIGNvbW1hbmQg4oCYTS14IGxpbmUtbnVtYmVyLW1vZGXigJkg dG8gdHVybgp0aGlzIG1vZGUgb24gYW5kIG9mZjsgbm9ybWFsbHkgaXQgaXMgb24uICBUaGUgbGlu ZSBudW1iZXIgYXBwZWFycyBhZnRlcgp0aGUgYnVmZmVyIHBlcmNlbnRhZ2UgUE9TLCB3aXRoIHRo ZSBsZXR0ZXIg4oCYTOKAmSB0byBpbmRpY2F0ZSB3aGF0IGl0IGlzLgoKICAgU2ltaWxhcmx5LCB5 b3UgY2FuIGRpc3BsYXkgdGhlIGN1cnJlbnQgY29sdW1uIG51bWJlciBieSB0dXJuaW5nIG9uCkNv bHVtbiBOdW1iZXIgbW9kZSB3aXRoIOKAmE0teCBjb2x1bW4tbnVtYmVyLW1vZGXigJkuICBUaGUg Y29sdW1uIG51bWJlciBpcwppbmRpY2F0ZWQgYnkgdGhlIGxldHRlciDigJhD4oCZLiAgSG93ZXZl ciwgd2hlbiBib3RoIG9mIHRoZXNlIG1vZGVzIGFyZQplbmFibGVkLCB0aGUgbGluZSBhbmQgY29s dW1uIG51bWJlcnMgYXJlIGRpc3BsYXllZCBpbiBwYXJlbnRoZXNlcywgdGhlCmxpbmUgbnVtYmVy IGZpcnN0LCByYXRoZXIgdGhhbiB3aXRoIOKAmEzigJkgYW5kIOKAmEPigJkuICBGb3IgZXhhbXBs ZToK4oCYKDU2MSwyKeKAmS4gICpOb3RlIE1pbm9yIE1vZGVzOjosIGZvciBtb3JlIGluZm9ybWF0 aW9uIGFib3V0IG1pbm9yIG1vZGVzCmFuZCBhYm91dCBob3cgdG8gdXNlIHRoZXNlIGNvbW1hbmRz LgoKICAgSW4gQ29sdW1uIE51bWJlciBtb2RlLCB0aGUgZGlzcGxheWVkIGNvbHVtbiBudW1iZXIg Y291bnRzIGZyb20gemVybwpzdGFydGluZyBhdCB0aGUgbGVmdCBtYXJnaW4gb2YgdGhlIHdpbmRv dy4gIElmIHlvdSB3b3VsZCBwcmVmZXIgZm9yIHRoZQpkaXNwbGF5ZWQgY29sdW1uIG51bWJlciB0 byBjb3VudCBmcm9tIG9uZSwgeW91IG1heSBzZXQK4oCYY29sdW1uLW51bWJlci1pbmRpY2F0b3It emVyby1iYXNlZOKAmSB0byDigJhuaWzigJkuCgogICBJZiB5b3UgaGF2ZSBuYXJyb3dlZCB0aGUg YnVmZmVyICgqbm90ZSBOYXJyb3dpbmc6OiksIHRoZSBkaXNwbGF5ZWQKbGluZSBudW1iZXIgaXMg cmVsYXRpdmUgdG8gdGhlIGFjY2Vzc2libGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyLiAgVGh1cywK aXQgaXNu4oCZdCBzdWl0YWJsZSBhcyBhbiBhcmd1bWVudCB0byDigJhnb3RvLWxpbmXigJkuICAo VXNlIOKAmHdoYXQtbGluZeKAmQpjb21tYW5kIHRvIHNlZSB0aGUgbGluZSBudW1iZXIgcmVsYXRp dmUgdG8gdGhlIHdob2xlIGZpbGUuKQoKICAgSWYgdGhlIGJ1ZmZlciBpcyB2ZXJ5IGxhcmdlIChs YXJnZXIgdGhhbiB0aGUgdmFsdWUgb2YK4oCYbGluZS1udW1iZXItZGlzcGxheS1saW1pdOKAmSks IEVtYWNzIHdvbuKAmXQgY29tcHV0ZSB0aGUgbGluZSBudW1iZXIsCmJlY2F1c2UgdGhhdCB3b3Vs ZCBiZSB0b28gc2xvdzsgdGhlcmVmb3JlLCB0aGUgbGluZSBudW1iZXIgd29u4oCZdCBhcHBlYXIK b24gdGhlIG1vZGUtbGluZS4gIFRvIHJlbW92ZSB0aGlzIGxpbWl0LCBzZXQg4oCYbGluZS1udW1i ZXItZGlzcGxheS1saW1pdOKAmQp0byDigJhuaWzigJkuCgogICBMaW5lLW51bWJlciBjb21wdXRh dGlvbiBjYW4gYWxzbyBiZSBzbG93IGlmIHRoZSBsaW5lcyBpbiB0aGUgYnVmZmVyCmFyZSB0b28g bG9uZy4gIEZvciB0aGlzIHJlYXNvbiwgRW1hY3MgZG9lc27igJl0IGRpc3BsYXkgbGluZSBudW1i ZXJzIGlmCnRoZSBhdmVyYWdlIHdpZHRoLCBpbiBjaGFyYWN0ZXJzLCBvZiBsaW5lcyBuZWFyIHBv aW50IGlzIGxhcmdlciB0aGFuIHRoZQp2YWx1ZSBvZiDigJhsaW5lLW51bWJlci1kaXNwbGF5LWxp bWl0LXdpZHRo4oCZLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMjAwCmNoYXJhY3RlcnMuCgogICBF bWFjcyBjYW4gb3B0aW9uYWxseSBkaXNwbGF5IHRoZSB0aW1lIGFuZCBzeXN0ZW0gbG9hZCBpbiBh bGwgbW9kZQpsaW5lcy4gIFRvIGVuYWJsZSB0aGlzIGZlYXR1cmUsIHR5cGUg4oCYTS14IGRpc3Bs YXktdGltZeKAmSBvciBjdXN0b21pemUgdGhlCm9wdGlvbiDigJhkaXNwbGF5LXRpbWUtbW9kZeKA mS4gIFRoZSBpbmZvcm1hdGlvbiBhZGRlZCB0byB0aGUgbW9kZSBsaW5lCmxvb2tzIGxpa2UgdGhp czoKCiAgICAgSEg6TU1QTSBMLkxMCgpIZXJlIEhIIGFuZCBNTSBhcmUgdGhlIGhvdXIgYW5kIG1p bnV0ZSwgZm9sbG93ZWQgYWx3YXlzIGJ5IOKAmEFN4oCZIG9yIOKAmFBN4oCZLgpMLkxMIGlzIHRo ZSBhdmVyYWdlIG51bWJlciwgY29sbGVjdGVkIGZvciB0aGUgbGFzdCBmZXcgbWludXRlcywgb2YK cHJvY2Vzc2VzIGluIHRoZSB3aG9sZSBzeXN0ZW0gdGhhdCB3ZXJlIGVpdGhlciBydW5uaW5nIG9y IHJlYWR5IHRvIHJ1bgooaS5lLiwgd2VyZSB3YWl0aW5nIGZvciBhbiBhdmFpbGFibGUgcHJvY2Vz c29yKS4gIChTb21lIGZpZWxkcyBtYXkgYmUKbWlzc2luZyBpZiB5b3VyIG9wZXJhdGluZyBzeXN0 ZW0gY2Fubm90IHN1cHBvcnQgdGhlbS4pICBJZiB5b3UgcHJlZmVyCnRpbWUgZGlzcGxheSBpbiAy NC1ob3VyIGZvcm1hdCwgc2V0IHRoZSB2YXJpYWJsZQrigJhkaXNwbGF5LXRpbWUtMjRoci1mb3Jt YXTigJkgdG8g4oCYdOKAmS4KCiAgIFRoZSB3b3JkIOKAmE1haWzigJkgYXBwZWFycyBhZnRlciB0 aGUgbG9hZCBsZXZlbCBpZiB0aGVyZSBpcyBtYWlsIGZvciB5b3UKdGhhdCB5b3UgaGF2ZSBub3Qg cmVhZCB5ZXQuICBPbiBncmFwaGljYWwgZGlzcGxheXMsIHlvdSBjYW4gdXNlIGFuIGljb24KaW5z dGVhZCBvZiDigJhNYWls4oCZIGJ5IGN1c3RvbWl6aW5nIOKAmGRpc3BsYXktdGltZS11c2UtbWFp bC1pY29u4oCZOyB0aGlzIG1heQpzYXZlIHNvbWUgc3BhY2Ugb24gdGhlIG1vZGUgbGluZS4gIFlv dSBjYW4gY3VzdG9taXplCuKAmGRpc3BsYXktdGltZS1tYWlsLWZhY2XigJkgdG8gbWFrZSB0aGUg bWFpbCBpbmRpY2F0b3IgcHJvbWluZW50LiAgVXNlCuKAmGRpc3BsYXktdGltZS1tYWlsLWZpbGXi gJkgdG8gc3BlY2lmeSB0aGUgbWFpbCBmaWxlIHRvIGNoZWNrLCBvciBzZXQK4oCYZGlzcGxheS10 aW1lLW1haWwtZGlyZWN0b3J54oCZIHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB0byBjaGVjayBm b3IKaW5jb21pbmcgbWFpbCAoYW55IG5vbmVtcHR5IHJlZ3VsYXIgZmlsZSBpbiB0aGUgZGlyZWN0 b3J5IGlzIGNvbnNpZGVyZWQKdG8gYmUgbmV3bHkgYXJyaXZlZCBtYWlsKS4KCiAgIFdoZW4gcnVu bmluZyBFbWFjcyBvbiBhIGxhcHRvcCBjb21wdXRlciwgeW91IGNhbiBkaXNwbGF5IHRoZSBiYXR0 ZXJ5CmNoYXJnZSBvbiB0aGUgbW9kZS1saW5lLCBieSB1c2luZyB0aGUgY29tbWFuZCDigJhkaXNw bGF5LWJhdHRlcnktbW9kZeKAmSBvcgpjdXN0b21pemluZyB0aGUgdmFyaWFibGUg4oCYZGlzcGxh eS1iYXR0ZXJ5LW1vZGXigJkuICBUaGUgdmFyaWFibGUK4oCYYmF0dGVyeS1tb2RlLWxpbmUtZm9y bWF04oCZIGRldGVybWluZXMgdGhlIHdheSB0aGUgYmF0dGVyeSBjaGFyZ2UgaXMKZGlzcGxheWVk OyB0aGUgZXhhY3QgbW9kZS1saW5lIG1lc3NhZ2UgZGVwZW5kcyBvbiB0aGUgb3BlcmF0aW5nIHN5 c3RlbSwKYW5kIGl0IHVzdWFsbHkgc2hvd3MgdGhlIGN1cnJlbnQgYmF0dGVyeSBjaGFyZ2UgYXMg YSBwZXJjZW50YWdlIG9mIHRoZQp0b3RhbCBjaGFyZ2UuCgogICBPbiBncmFwaGljYWwgZGlzcGxh eXMsIHRoZSBtb2RlIGxpbmUgaXMgZHJhd24gYXMgYSAzRCBib3guICBJZiB5b3UKZG9u4oCZdCBs aWtlIHRoaXMgZWZmZWN0LCB5b3UgY2FuIGRpc2FibGUgaXQgYnkgY3VzdG9taXppbmcgdGhlCuKA mG1vZGUtbGluZeKAmSBmYWNlIGFuZCBzZXR0aW5nIGl0cyDigJhib3jigJkgYXR0cmlidXRlIHRv IOKAmG5pbOKAmS4gICpOb3RlIEZhY2UKQ3VzdG9taXphdGlvbjo6LgoKICAgQnkgZGVmYXVsdCwg dGhlIG1vZGUgbGluZSBvZiBub25zZWxlY3RlZCB3aW5kb3dzIGlzIGRpc3BsYXllZCBpbiBhCmRp ZmZlcmVudCBmYWNlLCBjYWxsZWQg4oCYbW9kZS1saW5lLWluYWN0aXZl4oCZLiAgT25seSB0aGUg c2VsZWN0ZWQgd2luZG93CmlzIGRpc3BsYXllZCBpbiB0aGUg4oCYbW9kZS1saW5l4oCZIGZhY2Uu ICBUaGlzIGhlbHBzIHNob3cgd2hpY2ggd2luZG93IGlzCnNlbGVjdGVkLiAgV2hlbiB0aGUgbWlu aWJ1ZmZlciBpcyBzZWxlY3RlZCwgc2luY2UgaXQgaGFzIG5vIG1vZGUgbGluZSwKdGhlIHdpbmRv dyBmcm9tIHdoaWNoIHlvdSBhY3RpdmF0ZWQgdGhlIG1pbmlidWZmZXIgaGFzIGl0cyBtb2RlIGxp bmUKZGlzcGxheWVkIHVzaW5nIOKAmG1vZGUtbGluZeKAmTsgYXMgYSByZXN1bHQsIG9yZGluYXJ5 IGVudHJ5IHRvIHRoZQptaW5pYnVmZmVyIGRvZXMgbm90IGNoYW5nZSBhbnkgbW9kZSBsaW5lcy4K CiAgIFlvdSBjYW4gZGlzYWJsZSB1c2Ugb2Yg4oCYbW9kZS1saW5lLWluYWN0aXZl4oCZIGJ5IHNl dHRpbmcgdmFyaWFibGUK4oCYbW9kZS1saW5lLWluLW5vbi1zZWxlY3RlZC13aW5kb3dz4oCZIHRv IOKAmG5pbOKAmTsgdGhlbiBhbGwgbW9kZSBsaW5lcyBhcmUKZGlzcGxheWVkIGluIHRoZSDigJht b2RlLWxpbmXigJkgZmFjZS4KCiAgIFlvdSBjYW4gY3VzdG9taXplIHRoZSBtb2RlIGxpbmUgZGlz cGxheSBmb3IgZWFjaCBvZiB0aGUgZW5kLW9mLWxpbmUKZm9ybWF0cyBieSBzZXR0aW5nIGVhY2gg b2YgdGhlIHZhcmlhYmxlcyDigJhlb2wtbW5lbW9uaWMtdW5peOKAmSwK4oCYZW9sLW1uZW1vbmlj LWRvc+KAmSwg4oCYZW9sLW1uZW1vbmljLW1hY+KAmSwgYW5kIOKAmGVvbC1tbmVtb25pYy11bmRl Y2lkZWTigJkgdG8KdGhlIHN0cmluZ3MgeW91IHByZWZlci4KCgoqKiAxNC4xOSBIb3cgVGV4dCBJ cyBEaXNwbGF5ZWQKCk1vc3QgY2hhcmFjdGVycyBhcmUgInByaW50aW5nIGNoYXJhY3RlcnMiOiB3 aGVuIHRoZXkgYXBwZWFyIGluIGEgYnVmZmVyLAp0aGV5IGFyZSBkaXNwbGF5ZWQgbGl0ZXJhbGx5 IG9uIHRoZSBzY3JlZW4uICBQcmludGluZyBjaGFyYWN0ZXJzIGluY2x1ZGUKQVNDSUkgbnVtYmVy cywgbGV0dGVycywgYW5kIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMsIGFzIHdlbGwgYXMgbWFueQpu b24tQVNDSUkgY2hhcmFjdGVycy4KCiAgIFRoZSBBU0NJSSBjaGFyYWN0ZXIgc2V0IGNvbnRhaW5z IG5vbi1wcmludGluZyAiY29udHJvbCBjaGFyYWN0ZXJzIi4KVHdvIG9mIHRoZXNlIGFyZSBkaXNw bGF5ZWQgc3BlY2lhbGx5OiB0aGUgbmV3bGluZSBjaGFyYWN0ZXIgKFVuaWNvZGUKY29kZSBwb2lu dCDigJhVKzAwMEHigJkpIGlzIGRpc3BsYXllZCBieSBzdGFydGluZyBhIG5ldyBsaW5lLCB3aGls ZSB0aGUgdGFiCmNoYXJhY3RlciAo4oCYVSswMDA54oCZKSBpcyBkaXNwbGF5ZWQgYXMgYSBzcGFj ZSB0aGF0IGV4dGVuZHMgdG8gdGhlIG5leHQKdGFiIHN0b3AgY29sdW1uIChub3JtYWxseSBldmVy eSA4IGNvbHVtbnMpLiAgVGhlIG51bWJlciBvZiBzcGFjZXMgcGVyCnRhYiBpcyBjb250cm9sbGVk IGJ5IHRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUg4oCYdGFiLXdpZHRo4oCZLCB3aGljaCBtdXN0 CmhhdmUgYW4gaW50ZWdlciB2YWx1ZSBiZXR3ZWVuIDEgYW5kIDEwMDAsIGluY2x1c2l2ZS4gIE5v dGUgdGhhdCBob3cgdGhlCnRhYiBjaGFyYWN0ZXIgaW4gdGhlIGJ1ZmZlciBpcyBkaXNwbGF5ZWQg aGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUKZGVmaW5pdGlvbiBvZiA8VEFCPiBhcyBhIGNvbW1h bmQuCgogICBPdGhlciBBU0NJSSBjb250cm9sIGNoYXJhY3RlcnMsIHdob3NlIGNvZGVzIGFyZSBi ZWxvdyDigJhVKzAwMjDigJkgKG9jdGFsCjQwLCBkZWNpbWFsIDMyKSwgYXJlIGRpc3BsYXllZCBh cyBhIGNhcmV0ICjigJhe4oCZKSBmb2xsb3dlZCBieSB0aGUKbm9uLWNvbnRyb2wgdmVyc2lvbiBv ZiB0aGUgY2hhcmFjdGVyLCB3aXRoIHRoZSDigJhlc2NhcGUtZ2x5cGjigJkgZmFjZS4gIEZvcgpp bnN0YW5jZSwgdGhlIOKAmGNvbnRyb2wtQeKAmSBjaGFyYWN0ZXIsIOKAmFUrMDAwMeKAmSwgaXMg ZGlzcGxheWVkIGFzIOKAmF5B4oCZLgoKICAgVGhlIHJhdyBieXRlcyB3aXRoIGNvZGVzIOKAmFUr MDA4MOKAmSAob2N0YWwgMjAwKSB0aHJvdWdoIOKAmFUrMDA5RuKAmSAob2N0YWwKMjM3KSBhcmUg ZGlzcGxheWVkIGFzICJvY3RhbCBlc2NhcGUgc2VxdWVuY2VzIiwgd2l0aCB0aGUg4oCYZXNjYXBl LWdseXBo4oCZCmZhY2UuICBGb3IgaW5zdGFuY2UsIGNoYXJhY3RlciBjb2RlIOKAmFUrMDA5OOKA mSAob2N0YWwgMjMwKSBpcyBkaXNwbGF5ZWQgYXMK4oCYXDIzMOKAmS4gIElmIHlvdSBjaGFuZ2Ug dGhlIGJ1ZmZlci1sb2NhbCB2YXJpYWJsZSDigJhjdGwtYXJyb3figJkgdG8g4oCYbmls4oCZLAp0 aGUgQVNDSUkgY29udHJvbCBjaGFyYWN0ZXJzIGFyZSBhbHNvIGRpc3BsYXllZCBhcyBvY3RhbCBl c2NhcGUKc2VxdWVuY2VzIGluc3RlYWQgb2YgY2FyZXQgZXNjYXBlIHNlcXVlbmNlcy4KCiAgIFNv bWUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaGF2ZSB0aGUgc2FtZSBhcHBlYXJhbmNlIGFzIGFuIEFT Q0lJIHNwYWNlCm9yIGh5cGhlbiAobWludXMpIGNoYXJhY3Rlci4gIFN1Y2ggY2hhcmFjdGVycyBj YW4gY2F1c2UgcHJvYmxlbXMgaWYgdGhleQphcmUgZW50ZXJlZCBpbnRvIGEgYnVmZmVyIHdpdGhv dXQgeW91ciByZWFsaXphdGlvbiwgZS5nLiwgYnkgeWFua2luZzsKZm9yIGluc3RhbmNlLCBzb3Vy Y2UgY29kZSBjb21waWxlcnMgdHlwaWNhbGx5IGRvIG5vdCB0cmVhdCBub24tQVNDSUkKc3BhY2Vz IGFzIHdoaXRlc3BhY2UgY2hhcmFjdGVycy4gIFRvIGRlYWwgd2l0aCB0aGlzIHByb2JsZW0sIEVt YWNzCmRpc3BsYXlzIHN1Y2ggY2hhcmFjdGVycyBzcGVjaWFsbHk6IGl0IGRpc3BsYXlzIOKAmFUr MDBBMOKAmSAobm8tYnJlYWsKc3BhY2UpIHdpdGggdGhlIOKAmG5vYnJlYWstc3BhY2XigJkgZmFj ZSwgYW5kIGl0IGRpc3BsYXlzIOKAmFUrMDBBROKAmSAoc29mdApoeXBoZW4pLCDigJhVKzIwMTDi gJkgKGh5cGhlbiksIGFuZCDigJhVKzIwMTHigJkgKG5vbi1icmVha2luZyBoeXBoZW4pIHdpdGgg dGhlCuKAmG5vYnJlYWstaHlwaGVu4oCZIGZhY2UuICBUbyBkaXNhYmxlIHRoaXMsIGNoYW5nZSB0 aGUgdmFyaWFibGUK4oCYbm9icmVhay1jaGFyLWRpc3BsYXnigJkgdG8g4oCYbmls4oCZLiAgSWYg eW91IGdpdmUgdGhpcyB2YXJpYWJsZSBhIG5vbi3igJhuaWzigJkKYW5kIG5vbi3igJh04oCZIHZh bHVlLCBFbWFjcyBpbnN0ZWFkIGRpc3BsYXlzIHN1Y2ggY2hhcmFjdGVycyBhcyBhCmhpZ2hsaWdo dGVkIGJhY2tzbGFzaCBmb2xsb3dlZCBieSBhIHNwYWNlIG9yIGh5cGhlbi4KCiAgIFlvdSBjYW4g Y3VzdG9taXplIHRoZSB3YXkgYW55IHBhcnRpY3VsYXIgY2hhcmFjdGVyIGNvZGUgaXMgZGlzcGxh eWVkCmJ5IG1lYW5zIG9mIGEgZGlzcGxheSB0YWJsZS4gICpOb3RlIERpc3BsYXkgVGFibGVzOiAo ZWxpc3ApRGlzcGxheQpUYWJsZXMuCgogICBPbiBncmFwaGljYWwgZGlzcGxheXMsIHNvbWUgY2hh cmFjdGVycyBtYXkgaGF2ZSBubyBnbHlwaHMgaW4gYW55IG9mCnRoZSBmb250cyBhdmFpbGFibGUg dG8gRW1hY3MuICBUaGVzZSAiZ2x5cGhsZXNzIGNoYXJhY3RlcnMiIGFyZSBub3JtYWxseQpkaXNw bGF5ZWQgYXMgYm94ZXMgY29udGFpbmluZyB0aGUgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIGNvZGUu ClNpbWlsYXJseSwgb24gdGV4dCB0ZXJtaW5hbHMsIGNoYXJhY3RlcnMgdGhhdCBjYW5ub3QgYmUg ZGlzcGxheWVkIHVzaW5nCnRoZSB0ZXJtaW5hbCBlbmNvZGluZyAoKm5vdGUgVGVybWluYWwgQ29k aW5nOjopIGFyZSBub3JtYWxseSBkaXNwbGF5ZWQKYXMgcXVlc3Rpb24gc2lnbnMuICBZb3UgY2Fu IGNvbnRyb2wgdGhlIGRpc3BsYXkgbWV0aG9kIGJ5IGN1c3RvbWl6aW5nCnRoZSB2YXJpYWJsZSDi gJhnbHlwaGxlc3MtY2hhci1kaXNwbGF5LWNvbnRyb2zigJkuICBZb3UgY2FuIGFsc28gY3VzdG9t aXplCnRoZSDigJhnbHlwaGxlc3MtY2hhcuKAmSBmYWNlIHRvIG1ha2UgdGhlc2UgY2hhcmFjdGVy cyBtb3JlIHByb21pbmVudCBvbgpkaXNwbGF5LiAgKk5vdGUgR2x5cGhsZXNzIENoYXJhY3RlciBE aXNwbGF5OiAoZWxpc3ApR2x5cGhsZXNzIENoYXJzLCBmb3IKZGV0YWlscy4KCiAgIEVtYWNzIHRy aWVzIHRvIGRldGVybWluZSBpZiB0aGUgY3VydmVkIHF1b3RlcyDigJjigJjigJkgYW5kIOKAmOKA meKAmSBjYW4gYmUKZGlzcGxheWVkIG9uIHRoZSBjdXJyZW50IGRpc3BsYXkuICBCeSBkZWZhdWx0 LCBpZiB0aGlzIHNlZW1zIHRvIGJlIHNvLAp0aGVuIEVtYWNzIHdpbGwgdHJhbnNsYXRlIHRoZSBB U0NJSSBxdW90ZXMgKOKAmGDigJkgYW5kIOKAmCfigJkpLCB3aGVuIHRoZXkKYXBwZWFyIGluIG1l c3NhZ2VzIGFuZCBoZWxwIHRleHRzLCB0byB0aGVzZSBjdXJ2ZWQgcXVvdGVzLiAgWW91IGNhbgpp bmZsdWVuY2Ugb3IgaW5oaWJpdCB0aGlzIHRyYW5zbGF0aW9uIGJ5IGN1c3RvbWl6aW5nIHRoZSB1 c2VyIG9wdGlvbgrigJh0ZXh0LXF1b3Rpbmctc3R5bGXigJkgKCpub3RlIChlbGlzcClLZXlzIGlu IERvY3VtZW50YXRpb246OikuCgogICBJZiB0aGUgY3VydmVkIHF1b3RlcyDigJjigJjigJksIOKA mOKAmeKAmSwg4oCY4oCc4oCZLCBhbmQg4oCY4oCd4oCZIGFyZSBrbm93biB0byBsb29rIGp1c3QK bGlrZSBBU0NJSSBjaGFyYWN0ZXJzLCB0aGV5IGFyZSBzaG93biB3aXRoIHRoZSDigJhob21vZ2x5 cGjigJkgZmFjZS4gIEN1cnZlZApxdW90ZXMgdGhhdCBhcmUga25vd24gbm90IHRvIGJlIGRpc3Bs YXlhYmxlIGFyZSBzaG93biBhcyB0aGVpciBBU0NJSQphcHByb3hpbWF0aW9ucyDigJhg4oCZLCDi gJgn4oCZLCBhbmQg4oCYIuKAmSB3aXRoIHRoZSDigJhob21vZ2x5cGjigJkgZmFjZS4KCgoqKiAx NC4yMCBEaXNwbGF5aW5nIHRoZSBDdXJzb3IKCk9uIGEgdGV4dCB0ZXJtaW5hbCwgdGhlIGN1cnNv cuKAmXMgYXBwZWFyYW5jZSBpcyBjb250cm9sbGVkIGJ5IHRoZQp0ZXJtaW5hbCwgbGFyZ2VseSBv dXQgb2YgdGhlIGNvbnRyb2wgb2YgRW1hY3MuICBTb21lIHRlcm1pbmFscyBvZmZlciB0d28KZGlm ZmVyZW50IGN1cnNvcnM6IGEgdmlzaWJsZSBzdGF0aWMgY3Vyc29yLCBhbmQgYSB2ZXJ5IHZpc2li bGUgYmxpbmtpbmcKY3Vyc29yLiAgQnkgZGVmYXVsdCwgRW1hY3MgdXNlcyB0aGUgdmVyeSB2aXNp YmxlIGN1cnNvciwgYW5kIHN3aXRjaGVzIHRvCml0IHdoZW4geW91IHN0YXJ0IG9yIHJlc3VtZSBF bWFjcy4gIElmIHRoZSB2YXJpYWJsZSDigJh2aXNpYmxlLWN1cnNvcuKAmSBpcwrigJhuaWzigJkg d2hlbiBFbWFjcyBzdGFydHMgb3IgcmVzdW1lcywgaXQgdXNlcyB0aGUgbm9ybWFsIGN1cnNvci4K CiAgIE9uIGEgZ3JhcGhpY2FsIGRpc3BsYXksIG1hbnkgbW9yZSBwcm9wZXJ0aWVzIG9mIHRoZSB0 ZXh0IGN1cnNvciBjYW4KYmUgYWx0ZXJlZC4gIFRvIGN1c3RvbWl6ZSBpdHMgY29sb3IsIGNoYW5n ZSB0aGUg4oCYOmJhY2tncm91bmTigJkgYXR0cmlidXRlCm9mIHRoZSBmYWNlIG5hbWVkIOKAmGN1 cnNvcuKAmSAoKm5vdGUgRmFjZSBDdXN0b21pemF0aW9uOjopLiAgKFRoZSBvdGhlcgphdHRyaWJ1 dGVzIG9mIHRoaXMgZmFjZSBoYXZlIG5vIGVmZmVjdDsgdGhlIHRleHQgc2hvd24gdW5kZXIgdGhl IGN1cnNvcgppcyBkcmF3biB1c2luZyB0aGUgZnJhbWXigJlzIGJhY2tncm91bmQgY29sb3IuKSAg VG8gY2hhbmdlIGl0cyBzaGFwZSwKY3VzdG9taXplIHRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUg 4oCYY3Vyc29yLXR5cGXigJk7IHBvc3NpYmxlIHZhbHVlcyBhcmUK4oCYYm944oCZICh0aGUgZGVm YXVsdCksIOKAmGhvbGxvd+KAmSAoYSBob2xsb3cgYm94KSwg4oCYYmFy4oCZIChhIHZlcnRpY2Fs IGJhciksCuKAmChiYXIgLiBOKeKAmSAoYSB2ZXJ0aWNhbCBiYXIgTiBwaXhlbHMgd2lkZSksIOKA mGhiYXLigJkgKGEgaG9yaXpvbnRhbCBiYXIpLArigJgoaGJhciAuIE4p4oCZIChhIGhvcml6b250 YWwgYmFyIE4gcGl4ZWxzIHRhbGwpLCBvciDigJhuaWzigJkgKG5vIGN1cnNvciBhdAphbGwpLgoK ICAgQnkgZGVmYXVsdCwgdGhlIGN1cnNvciBzdG9wcyBibGlua2luZyBhZnRlciAxMCBibGlua3Ms IGlmIEVtYWNzIGRvZXMKbm90IGdldCBhbnkgaW5wdXQgZHVyaW5nIHRoYXQgdGltZTsgYW55IGlu cHV0IGV2ZW50IHJlc3RhcnRzIHRoZSBjb3VudC4KWW91IGNhbiBjdXN0b21pemUgdGhlIHZhcmlh YmxlIOKAmGJsaW5rLWN1cnNvci1ibGlua3PigJkgdG8gY29udHJvbCB0aGF0OgppdHMgdmFsdWUg c2F5cyBob3cgbWFueSB0aW1lcyB0byBibGluayB3aXRob3V0IGlucHV0IGJlZm9yZSBzdG9wcGlu Zy4KU2V0dGluZyB0aGF0IHZhcmlhYmxlIHRvIGEgemVybyBvciBuZWdhdGl2ZSB2YWx1ZSB3aWxs IG1ha2UgdGhlIGN1cnNvcgpibGluayBmb3JldmVyLiAgVG8gZGlzYWJsZSBjdXJzb3IgYmxpbmtp bmcgYWx0b2dldGhlciwgY2hhbmdlIHRoZQp2YXJpYWJsZSDigJhibGluay1jdXJzb3ItbW9kZeKA mSB0byDigJhuaWzigJkgKCpub3RlIEVhc3kgQ3VzdG9taXphdGlvbjo6KSwgb3IKYWRkIHRoZSBs aW5lCgogICAgICAgKGJsaW5rLWN1cnNvci1tb2RlIDApCgp0byB5b3VyIGluaXQgZmlsZS4gIEFs dGVybmF0aXZlbHksIHlvdSBjYW4gY2hhbmdlIGhvdyB0aGUgY3Vyc29yIGxvb2tzCndoZW4gaXQg YmxpbmtzIG9mZiBieSBjdXN0b21pemluZyB0aGUgbGlzdCB2YXJpYWJsZQrigJhibGluay1jdXJz b3ItYWxpc3TigJkuICBFYWNoIGVsZW1lbnQgaW4gdGhlIGxpc3Qgc2hvdWxkIGhhdmUgdGhlIGZv cm0K4oCYKE9OLVRZUEUgLiBPRkYtVFlQRSnigJk7IHRoaXMgbWVhbnMgdGhhdCBpZiB0aGUgY3Vy c29yIGlzIGRpc3BsYXllZCBhcwpPTi1UWVBFIHdoZW4gaXQgYmxpbmtzIG9uICh3aGVyZSBPTi1U WVBFIGlzIG9uZSBvZiB0aGUgY3Vyc29yIHR5cGVzCmRlc2NyaWJlZCBhYm92ZSksIHRoZW4gaXQg aXMgZGlzcGxheWVkIGFzIE9GRi1UWVBFIHdoZW4gaXQgYmxpbmtzIG9mZi4KCiAgIFNvbWUgY2hh cmFjdGVycywgc3VjaCBhcyB0YWIgY2hhcmFjdGVycywgYXJlIGV4dHJhIHdpZGUuICBXaGVuIHRo ZQpjdXJzb3IgaXMgcG9zaXRpb25lZCBvdmVyIHN1Y2ggYSBjaGFyYWN0ZXIsIGl0IGlzIG5vcm1h bGx5IGRyYXduIHdpdGgKdGhlIGRlZmF1bHQgY2hhcmFjdGVyIHdpZHRoLiAgWW91IGNhbiBtYWtl IHRoZSBjdXJzb3Igc3RyZXRjaCB0byBjb3Zlcgp3aWRlIGNoYXJhY3RlcnMsIGJ5IGNoYW5naW5n IHRoZSB2YXJpYWJsZSDigJh4LXN0cmV0Y2gtY3Vyc29y4oCZIHRvIGEKbm9uLeKAmG5pbOKAmSB2 YWx1ZS4KCiAgIFRoZSBjdXJzb3Igbm9ybWFsbHkgYXBwZWFycyBpbiBub24tc2VsZWN0ZWQgd2lu ZG93cyBhcyBhIG5vbi1ibGlua2luZwpob2xsb3cgYm94LiAgKEZvciBhIGJhciBjdXJzb3IsIGl0 IGluc3RlYWQgYXBwZWFycyBhcyBhIHRoaW5uZXIgYmFyLikKVG8gdHVybiBvZmYgY3Vyc29ycyBp biBub24tc2VsZWN0ZWQgd2luZG93cywgY2hhbmdlIHRoZSB2YXJpYWJsZQrigJhjdXJzb3ItaW4t bm9uLXNlbGVjdGVkLXdpbmRvd3PigJkgdG8g4oCYbmls4oCZLgoKICAgVG8gbWFrZSB0aGUgY3Vy c29yIGV2ZW4gbW9yZSB2aXNpYmxlLCB5b3UgY2FuIHVzZSBITCBMaW5lIG1vZGUsIGEKbWlub3Ig bW9kZSB0aGF0IGhpZ2hsaWdodHMgdGhlIGxpbmUgY29udGFpbmluZyBwb2ludC4gIFVzZSDigJhN LXgKaGwtbGluZS1tb2Rl4oCZIHRvIGVuYWJsZSBvciBkaXNhYmxlIGl0IGluIHRoZSBjdXJyZW50 IGJ1ZmZlci4gIOKAmE0teApnbG9iYWwtaGwtbGluZS1tb2Rl4oCZIGVuYWJsZXMgb3IgZGlzYWJs ZXMgdGhlIHNhbWUgbW9kZSBnbG9iYWxseS4KCgoqKiAxNC4yMSBMaW5lIFRydW5jYXRpb24KCkFz IGFuIGFsdGVybmF0aXZlIHRvIGNvbnRpbnVhdGlvbiAoKm5vdGUgQ29udGludWF0aW9uIExpbmVz OjopLCBFbWFjcwpjYW4gZGlzcGxheSBsb25nIGxpbmVzIGJ5ICJ0cnVuY2F0aW9uIi4gIFRoaXMg bWVhbnMgdGhhdCBhbGwgdGhlCmNoYXJhY3RlcnMgdGhhdCBkbyBub3QgZml0IGluIHRoZSB3aWR0 aCBvZiB0aGUgc2NyZWVuIG9yIHdpbmRvdyBkbyBub3QKYXBwZWFyIGF0IGFsbC4gIE9uIGdyYXBo aWNhbCBkaXNwbGF5cywgYSBzbWFsbCBzdHJhaWdodCBhcnJvdyBpbiB0aGUKZnJpbmdlIGluZGlj YXRlcyB0cnVuY2F0aW9uIGF0IGVpdGhlciBlbmQgb2YgdGhlIGxpbmUuICBPbiB0ZXh0CnRlcm1p bmFscywgdGhpcyBpcyBpbmRpY2F0ZWQgd2l0aCDigJgk4oCZIHNpZ25zIGluIHRoZSByaWdodG1v c3QgYW5kL29yCmxlZnRtb3N0IGNvbHVtbnMuCgogICBIb3Jpem9udGFsIHNjcm9sbGluZyBhdXRv bWF0aWNhbGx5IGNhdXNlcyBsaW5lIHRydW5jYXRpb24gKCpub3RlCkhvcml6b250YWwgU2Nyb2xs aW5nOjopLiAgWW91IGNhbiBleHBsaWNpdGx5IGVuYWJsZSBsaW5lIHRydW5jYXRpb24gZm9yCmEg cGFydGljdWxhciBidWZmZXIgd2l0aCB0aGUgY29tbWFuZCDigJhNLXggdG9nZ2xlLXRydW5jYXRl LWxpbmVz4oCZLiAgVGhpcwp3b3JrcyBieSBsb2NhbGx5IGNoYW5naW5nIHRoZSB2YXJpYWJsZSDi gJh0cnVuY2F0ZS1saW5lc+KAmS4gIElmIHRoYXQKdmFyaWFibGUgaXMgbm9uLeKAmG5pbOKAmSwg bG9uZyBsaW5lcyBhcmUgdHJ1bmNhdGVkOyBpZiBpdCBpcyDigJhuaWzigJksIHRoZXkKYXJlIGNv bnRpbnVlZCBvbnRvIG11bHRpcGxlIHNjcmVlbiBsaW5lcy4gIFNldHRpbmcgdGhlIHZhcmlhYmxl CuKAmHRydW5jYXRlLWxpbmVz4oCZIGluIGFueSB3YXkgbWFrZXMgaXQgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgYnVmZmVyOyB1bnRpbAp0aGF0IHRpbWUsIHRoZSBkZWZhdWx0IHZhbHVlLCB3aGljaCBp cyBub3JtYWxseSDigJhuaWzigJksIGlzIGluIGVmZmVjdC4KCiAgIElmIGEgc3BsaXQgd2luZG93 IGJlY29tZXMgdG9vIG5hcnJvdywgRW1hY3MgbWF5IGF1dG9tYXRpY2FsbHkgZW5hYmxlCmxpbmUg dHJ1bmNhdGlvbi4gICpOb3RlIFNwbGl0IFdpbmRvdzo6LCBmb3IgdGhlIHZhcmlhYmxlCuKAmHRy dW5jYXRlLXBhcnRpYWwtd2lkdGgtd2luZG93c+KAmSB3aGljaCBjb250cm9scyB0aGlzLgoKCioq IDE0LjIyIFZpc3VhbCBMaW5lIE1vZGUKCkFub3RoZXIgYWx0ZXJuYXRpdmUgdG8gb3JkaW5hcnkg bGluZSBjb250aW51YXRpb24gaXMgdG8gdXNlICJ3b3JkIHdyYXAiLgpIZXJlLCBlYWNoIGxvbmcg bG9naWNhbCBsaW5lIGlzIGRpdmlkZWQgaW50byB0d28gb3IgbW9yZSBzY3JlZW4gbGluZXMsCmxp a2UgaW4gb3JkaW5hcnkgbGluZSBjb250aW51YXRpb24uICBIb3dldmVyLCBFbWFjcyBhdHRlbXB0 cyB0byB3cmFwIHRoZQpsaW5lIGF0IHdvcmQgYm91bmRhcmllcyBuZWFyIHRoZSByaWdodCB3aW5k b3cgZWRnZS4gIChJZiB0aGUgbGluZeKAmXMKZGlyZWN0aW9uIGlzIHJpZ2h0LXRvLWxlZnQsIGl0 IGlzIHdyYXBwZWQgYXQgdGhlIGxlZnQgd2luZG93IGVkZ2UKaW5zdGVhZC4pICBUaGlzIG1ha2Vz IHRoZSB0ZXh0IGVhc2llciB0byByZWFkLCBhcyB3cmFwcGluZyBkb2VzIG5vdApvY2N1ciBpbiB0 aGUgbWlkZGxlIG9mIHdvcmRzLgoKICAgV29yZCB3cmFwIGlzIGVuYWJsZWQgYnkgVmlzdWFsIExp bmUgbW9kZSwgYW4gb3B0aW9uYWwgbWlub3IgbW9kZS4gIFRvCnR1cm4gb24gVmlzdWFsIExpbmUg bW9kZSBpbiB0aGUgY3VycmVudCBidWZmZXIsIHR5cGUg4oCYTS14CnZpc3VhbC1saW5lLW1vZGXi gJk7IHJlcGVhdGluZyB0aGlzIGNvbW1hbmQgdHVybnMgaXQgb2ZmLiAgWW91IGNhbiBhbHNvCnR1 cm4gb24gVmlzdWFsIExpbmUgbW9kZSB1c2luZyB0aGUgbWVudSBiYXI6IGluIHRoZSBPcHRpb25z IG1lbnUsIHNlbGVjdAp0aGUg4oCYTGluZSBXcmFwcGluZyBpbiB0aGlzIEJ1ZmZlcuKAmSBzdWJt ZW51LCBmb2xsb3dlZCBieSB0aGUg4oCYV29yZCBXcmFwCihWaXN1YWwgTGluZSBtb2RlKeKAmSBt ZW51IGl0ZW0uICBXaGlsZSBWaXN1YWwgTGluZSBtb2RlIGlzIGVuYWJsZWQsIHRoZQptb2RlIGxp bmUgc2hvd3MgdGhlIHN0cmluZyDigJh3cmFw4oCZIGluIHRoZSBtb2RlIGRpc3BsYXkuICBUaGUg Y29tbWFuZCDigJhNLXgKZ2xvYmFsLXZpc3VhbC1saW5lLW1vZGXigJkgdG9nZ2xlcyBWaXN1YWwg TGluZSBtb2RlIGluIGFsbCBidWZmZXJzLgoKICAgSW4gVmlzdWFsIExpbmUgbW9kZSwgc29tZSBl ZGl0aW5nIGNvbW1hbmRzIHdvcmsgb24gc2NyZWVuIGxpbmVzCmluc3RlYWQgb2YgbG9naWNhbCBs aW5lczog4oCYQy1h4oCZICjigJhiZWdpbm5pbmctb2YtdmlzdWFsLWxpbmXigJkpIG1vdmVzIHRv CnRoZSBiZWdpbm5pbmcgb2YgdGhlIHNjcmVlbiBsaW5lLCDigJhDLWXigJkgKOKAmGVuZC1vZi12 aXN1YWwtbGluZeKAmSkgbW92ZXMgdG8KdGhlIGVuZCBvZiB0aGUgc2NyZWVuIGxpbmUsIGFuZCDi gJhDLWvigJkgKOKAmGtpbGwtdmlzdWFsLWxpbmXigJkpIGtpbGxzIHRleHQgdG8KdGhlIGVuZCBv ZiB0aGUgc2NyZWVuIGxpbmUuCgogICBUbyBtb3ZlIGJ5IGxvZ2ljYWwgbGluZXMsIHVzZSB0aGUg Y29tbWFuZHMg4oCYTS14IG5leHQtbG9naWNhbC1saW5l4oCZCmFuZCDigJhNLXggcHJldmlvdXMt bG9naWNhbC1saW5l4oCZLiAgVGhlc2UgbW92ZSBwb2ludCB0byB0aGUgbmV4dCBsb2dpY2FsCmxp bmUgYW5kIHRoZSBwcmV2aW91cyBsb2dpY2FsIGxpbmUgcmVzcGVjdGl2ZWx5LCByZWdhcmRsZXNz IG9mIHdoZXRoZXIKVmlzdWFsIExpbmUgbW9kZSBpcyBlbmFibGVkLiAgSWYgeW91IHVzZSB0aGVz ZSBjb21tYW5kcyBmcmVxdWVudGx5LCBpdAptYXkgYmUgY29udmVuaWVudCB0byBhc3NpZ24ga2V5 IGJpbmRpbmdzIHRvIHRoZW0uICAqTm90ZSBJbml0ClJlYmluZGluZzo6LgoKICAgQnkgZGVmYXVs dCwgd29yZC13cmFwcGVkIGxpbmVzIGRvIG5vdCBkaXNwbGF5IGZyaW5nZSBpbmRpY2F0b3JzLgpW aXN1YWwgTGluZSBtb2RlIGlzIG9mdGVuIHVzZWQgdG8gZWRpdCBmaWxlcyB0aGF0IGNvbnRhaW4g bWFueSBsb25nCmxvZ2ljYWwgbGluZXMsIHNvIGhhdmluZyBhIGZyaW5nZSBpbmRpY2F0b3IgZm9y IGVhY2ggd3JhcHBlZCBsaW5lIHdvdWxkCmJlIHZpc3VhbGx5IGRpc3RyYWN0aW5nLiAgWW91IGNh biBjaGFuZ2UgdGhpcyBieSBjdXN0b21pemluZyB0aGUKdmFyaWFibGUg4oCYdmlzdWFsLWxpbmUt ZnJpbmdlLWluZGljYXRvcnPigJkuCgoKKiogMTQuMjMgQ3VzdG9taXphdGlvbiBvZiBEaXNwbGF5 CgpUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHZhcmlhYmxlcyB0aGF0IGNvbnRyb2wgbWlzY2VsbGFu ZW91cyBhc3BlY3RzIG9mCnRoZSBhcHBlYXJhbmNlIG9mIHRoZSBFbWFjcyBzY3JlZW4uICBCZWdp bm5pbmcgdXNlcnMgY2FuIHNraXAgaXQuCgogICBJZiB5b3Ugd2FudCB0byBoYXZlIEVtYWNzIGRp c3BsYXkgbGluZSBudW1iZXJzIGZvciBldmVyeSBsaW5lIGluIHRoZQpidWZmZXIsIGN1c3RvbWl6 ZSB0aGUgYnVmZmVyLWxvY2FsIHZhcmlhYmxlIOKAmGRpc3BsYXktbGluZS1udW1iZXJz4oCZOyBp dAppcyDigJhuaWzigJkgYnkgZGVmYXVsdC4gIFRoaXMgdmFyaWFibGUgY2FuIGhhdmUgc2V2ZXJh bCBkaWZmZXJlbnQgdmFsdWVzIHRvCnN1cHBvcnQgdmFyaW91cyBtb2RlcyBvZiBsaW5lLW51bWJl ciBkaXNwbGF5OgoK4oCYdOKAmQogICAgIERpc3BsYXkgKGFuIGFic29sdXRlKSBsaW5lIG51bWJl ciBiZWZvcmUgZWFjaCBub24tY29udGludWF0aW9uCiAgICAgc2NyZWVuIGxpbmUgdGhhdCBkaXNw bGF5cyBidWZmZXIgdGV4dC4gIElmIHRoZSBsaW5lIGlzIGEKICAgICBjb250aW51YXRpb24gbGlu ZSwgb3IgaWYgdGhlIGVudGlyZSBzY3JlZW4gbGluZSBkaXNwbGF5cyBhIGRpc3BsYXkKICAgICBv ciBhbiBvdmVybGF5IHN0cmluZywgdGhhdCBsaW5lIHdpbGwgbm90IGJlIG51bWJlcmVkLgoK4oCY cmVsYXRpdmXigJkKICAgICBEaXNwbGF5IHJlbGF0aXZlIGxpbmUgbnVtYmVycyBiZWZvcmUgbm9u LWNvbnRpbnVhdGlvbiBsaW5lcyB3aGljaAogICAgIHNob3cgYnVmZmVyIHRleHQuICBUaGUgbGlu ZSBudW1iZXJzIGFyZSByZWxhdGl2ZSB0byB0aGUgbGluZQogICAgIHNob3dpbmcgcG9pbnQsIHNv IHRoZSBudW1iZXJzIGdyb3cgYm90aCB1cCBhbmQgZG93biBhcyBsaW5lcyBiZWNvbWUKICAgICBm YXJ0aGVyIGZyb20gdGhlIGN1cnJlbnQgbGluZS4KCuKAmHZpc3VhbOKAmQogICAgIFRoaXMgdmFs dWUgY2F1c2VzIEVtYWNzIHRvIGNvdW50IGxpbmVzIHZpc3VhbGx5OiBvbmx5IGxpbmVzCiAgICAg YWN0dWFsbHkgc2hvd24gb24gdGhlIGRpc3BsYXkgd2lsbCBiZSBjb3VudGVkIChkaXNyZWdhcmRp bmcgYW55CiAgICAgbGluZXMgaW4gaW52aXNpYmxlIHBhcnRzIG9mIHRleHQpLCBhbmQgbGluZXMg d2hpY2ggd3JhcCB0byBjb25zdW1lCiAgICAgbW9yZSB0aGFuIG9uZSBzY3JlZW4gbGluZSB3aWxs IGJlIG51bWJlcmVkIHRoYXQgbWFueSB0aW1lcy4gIFRoZQogICAgIGRpc3BsYXllZCBudW1iZXJz IGFyZSByZWxhdGl2ZSwgYXMgd2l0aCDigJhyZWxhdGl2ZeKAmSB2YWx1ZSBhYm92ZS4KICAgICBU aGlzIGlzIGhhbmR5IGluIG1vZGVzIHRoYXQgZm9sZCB0ZXh0LCBzdWNoIGFzIE91dGxpbmUgbW9k ZSAoKm5vdGUKICAgICBPdXRsaW5lIE1vZGU6OiksIGFuZCB3aGVuIHlvdSBuZWVkIHRvIG1vdmUg YnkgZXhhY3QgbnVtYmVyIG9mCiAgICAgc2NyZWVuIGxpbmVzLgoKYW55dGhpbmcgZWxzZQogICAg IEFueSBvdGhlciBub24t4oCYbmls4oCZIHZhbHVlIGlzIHRyZWF0ZWQgYXMg4oCYdOKAmS4KCiAg IFRoZSBjb21tYW5kIOKAmE0teCBkaXNwbGF5LWxpbmUtbnVtYmVycy1tb2Rl4oCZIHByb3ZpZGVz IGEgY29udmVuaWVudCB3YXkKdG8gdHVybiBvbiBkaXNwbGF5IG9mIGxpbmUgbnVtYmVycy4gIFRo aXMgbW9kZSBoYXMgYSBnbG9iYWxpemVkIHZhcmlhbnQsCuKAmGdsb2JhbC1kaXNwbGF5LWxpbmUt bnVtYmVycy1tb2Rl4oCZLiAgVGhlIHVzZXIgb3B0aW9uCuKAmGRpc3BsYXktbGluZS1udW1iZXJz LXR5cGXigJkgY29udHJvbHMgd2hpY2ggc3ViLW1vZGUgb2YgbGluZS1udW1iZXIKZGlzcGxheSwg ZGVzY3JpYmVkIGFib3ZlLCB3aWxsIHRoZXNlIG1vZGVzIGFjdGl2YXRlLgoKTm90ZSB0aGF0IGxp bmUgbnVtYmVycyBhcmUgbm90IGRpc3BsYXllZCBpbiB0aGUgbWluaWJ1ZmZlciBhbmQgaW4gdGhl CnRvb2x0aXBzLCBldmVuIGlmIHlvdSB0dXJuIG9uIOKAmGRpc3BsYXktbGluZS1udW1iZXJzLW1v ZGXigJkgZ2xvYmFsbHkuCgogICBXaGVuIEVtYWNzIGRpc3BsYXlzIHJlbGF0aXZlIGxpbmUgbnVt YmVycywgeW91IGNhbiBjb250cm9sIHRoZSBudW1iZXIKZGlzcGxheWVkIGJlZm9yZSB0aGUgY3Vy cmVudCBsaW5lLCB0aGUgbGluZSBzaG93aW5nIHBvaW50LiAgQnkgZGVmYXVsdCwKRW1hY3MgZGlz cGxheXMgdGhlIGFic29sdXRlIG51bWJlciBvZiB0aGUgY3VycmVudCBsaW5lIHRoZXJlLCBldmVu CnRob3VnaCBhbGwgdGhlIG90aGVyIGxpbmUgbnVtYmVycyBhcmUgcmVsYXRpdmUuICBJZiB5b3Ug Y3VzdG9taXplIHRoZQp2YXJpYWJsZSDigJhkaXNwbGF5LWxpbmUtbnVtYmVycy1jdXJyZW50LWFi c29sdXRl4oCZIHRvIGEg4oCYbmls4oCZIHZhbHVlLCB0aGUKbnVtYmVyIGRpc3BsYXllZCBmb3Ig dGhlIGN1cnJlbnQgbGluZSB3aWxsIGJlIHplcm8uICBUaGlzIGlzIGhhbmR5IGlmCnlvdSBkb27i gJl0IGNhcmUgYWJvdXQgdGhlIG51bWJlciBvZiB0aGUgY3VycmVudCBsaW5lLCBhbmQgd2FudCB0 byBsZWF2ZQptb3JlIGhvcml6b250YWwgc3BhY2UgZm9yIHRleHQgaW4gbGFyZ2UgYnVmZmVycy4K CiAgIEluIGEgbmFycm93ZWQgYnVmZmVyICgqbm90ZSBOYXJyb3dpbmc6OikgbGluZXMgYXJlIG5v cm1hbGx5IG51bWJlcmVkCnN0YXJ0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5hcnJvd2lu Zy4gIEhvd2V2ZXIsIGlmIHlvdSBjdXN0b21pemUKdGhlIHZhcmlhYmxlIOKAmGRpc3BsYXktbGlu ZS1udW1iZXJzLXdpZGVu4oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1ZSwgbGluZQpudW1iZXJz IHdpbGwgZGlzcmVnYXJkIGFueSBuYXJyb3dpbmcgYW5kIHdpbGwgc3RhcnQgYXQgdGhlIGZpcnN0 CmNoYXJhY3RlciBvZiB0aGUgYnVmZmVyLgoKICAgSW4gc2VsZWN0aXZlIGRpc3BsYXkgbW9kZSAo Km5vdGUgU2VsZWN0aXZlIERpc3BsYXk6OiksIGFuZCBvdGhlcgptb2RlcyB0aGF0IGhpZGUgbWFu eSBsaW5lcyBmcm9tIGRpc3BsYXkgKHN1Y2ggYXMgT3V0bGluZSBhbmQgT3JnIG1vZGVzKSwKeW91 IG1heSB3aXNoIHRvIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGVzCuKAmGRpc3BsYXktbGluZS1udW1i ZXJzLXdpZHRoLXN0YXJ04oCZIGFuZCDigJhkaXNwbGF5LWxpbmUtbnVtYmVycy1ncm93LW9ubHni gJksCm9yIHNldCDigJhkaXNwbGF5LWxpbmUtbnVtYmVycy13aWR0aOKAmSB0byBhIGxhcmdlIGVu b3VnaCB2YWx1ZSwgdG8gYXZvaWQKb2NjYXNpb25hbCBtaXNjYWxjdWxhdGlvbnMgb2Ygc3BhY2Ug cmVzZXJ2ZWQgZm9yIHRoZSBsaW5lIG51bWJlcnMuCgogICBUaGUgbGluZSBudW1iZXJzIGFyZSBk aXNwbGF5ZWQgaW4gYSBzcGVjaWFsIGZhY2Ug4oCYbGluZS1udW1iZXLigJkuICBUaGUKY3VycmVu dCBsaW5lIG51bWJlciBpcyBkaXNwbGF5ZWQgaW4gYSBkaWZmZXJlbnQgZmFjZSwK4oCYbGluZS1u dW1iZXItY3VycmVudC1saW5l4oCZLCBzbyB5b3UgY2FuIG1ha2UgdGhlIGN1cnJlbnQgbGluZeKA mXMgbnVtYmVyCmhhdmUgYSBkaXN0aW5jdCBhcHBlYXJhbmNlLCB3aGljaCB3aWxsIGhlbHAgbG9j YXRpbmcgdGhlIGxpbmUgc2hvd2luZwpwb2ludC4KCiAgIElmIHRoZSB2YXJpYWJsZSDigJh2aXNp YmxlLWJlbGzigJkgaXMgbm9uLeKAmG5pbOKAmSwgRW1hY3MgYXR0ZW1wdHMgdG8gbWFrZQp0aGUg d2hvbGUgc2NyZWVuIGJsaW5rIHdoZW4gaXQgd291bGQgbm9ybWFsbHkgbWFrZSBhbiBhdWRpYmxl IGJlbGwKc291bmQuICBUaGlzIHZhcmlhYmxlIGhhcyBubyBlZmZlY3QgaWYgeW91ciB0ZXJtaW5h bCBkb2VzIG5vdCBoYXZlIGEgd2F5CnRvIG1ha2UgdGhlIHNjcmVlbiBibGluay4KCiAgIFRoZSB2 YXJpYWJsZSDigJhlY2hvLWtleXN0cm9rZXPigJkgY29udHJvbHMgdGhlIGVjaG9pbmcgb2YKbXVs dGktY2hhcmFjdGVyIGtleXM7IGl0cyB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgb2Yg cGF1c2UKcmVxdWlyZWQgdG8gY2F1c2UgZWNob2luZyB0byBzdGFydCwgb3IgemVybywgbWVhbmlu ZyBkb27igJl0IGVjaG8gYXQgYWxsLgpUaGUgdmFsdWUgdGFrZXMgZWZmZWN0IHdoZW4gdGhlcmUg aXMgc29tZXRoaW5nIHRvIGVjaG8uICAqTm90ZSBFY2hvCkFyZWE6Oi4KCiAgIE9uIGdyYXBoaWNh bCBkaXNwbGF5cywgRW1hY3MgZGlzcGxheXMgdGhlIG1vdXNlIHBvaW50ZXIgYXMgYW4KaG91cmds YXNzIGlmIEVtYWNzIGlzIGJ1c3kuICBUbyBkaXNhYmxlIHRoaXMgZmVhdHVyZSwgc2V0IHRoZSB2 YXJpYWJsZQrigJhkaXNwbGF5LWhvdXJnbGFzc+KAmSB0byDigJhuaWzigJkuICBUaGUgdmFyaWFi bGUg4oCYaG91cmdsYXNzLWRlbGF54oCZIGRldGVybWluZXMKdGhlIG51bWJlciBvZiBzZWNvbmRz IG9mIGJ1c3kgdGltZSBiZWZvcmUgdGhlIGhvdXJnbGFzcyBpcyBzaG93bjsgdGhlCmRlZmF1bHQg aXMgMS4KCiAgIElmIHRoZSBtb3VzZSBwb2ludGVyIGxpZXMgaW5zaWRlIGFuIEVtYWNzIGZyYW1l LCBFbWFjcyBtYWtlcyBpdAppbnZpc2libGUgZWFjaCB0aW1lIHlvdSB0eXBlIGEgY2hhcmFjdGVy IHRvIGluc2VydCB0ZXh0LCB0byBwcmV2ZW50IGl0CmZyb20gb2JzY3VyaW5nIHRoZSB0ZXh0LiAg KFRvIGJlIHByZWNpc2UsIHRoZSBoaWRpbmcgb2NjdXJzIHdoZW4geW91CnR5cGUgYSBzZWxmLWlu c2VydGluZyBjaGFyYWN0ZXIuICAqTm90ZSBJbnNlcnRpbmcgVGV4dDo6LikgIE1vdmluZyB0aGUK bW91c2UgcG9pbnRlciBtYWtlcyBpdCB2aXNpYmxlIGFnYWluLiAgVG8gZGlzYWJsZSB0aGlzIGZl YXR1cmUsIHNldCB0aGUKdmFyaWFibGUg4oCYbWFrZS1wb2ludGVyLWludmlzaWJsZeKAmSB0byDi gJhuaWzigJkuCgogICBPbiBncmFwaGljYWwgZGlzcGxheXMsIHRoZSB2YXJpYWJsZSDigJh1bmRl cmxpbmUtbWluaW11bS1vZmZzZXTigJkKZGV0ZXJtaW5lcyB0aGUgbWluaW11bSBkaXN0YW5jZSBi ZXR3ZWVuIHRoZSBiYXNlbGluZSBhbmQgdW5kZXJsaW5lLCBpbgpwaXhlbHMsIGZvciB1bmRlcmxp bmVkIHRleHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWUgaXMgMTsgaW5jcmVhc2luZyBpdAptYXkg aW1wcm92ZSB0aGUgbGVnaWJpbGl0eSBvZiB1bmRlcmxpbmVkIHRleHQgZm9yIGNlcnRhaW4gZm9u dHMuCihIb3dldmVyLCBFbWFjcyB3aWxsIG5ldmVyIGRyYXcgdGhlIHVuZGVybGluZSBiZWxvdyB0 aGUgY3VycmVudCBsaW5lCmFyZWEuKSAgVGhlIHZhcmlhYmxlIOKAmHgtdW5kZXJsaW5lLWF0LWRl c2NlbnQtbGluZeKAmSBkZXRlcm1pbmVzIGhvdyB0bwpkcmF3IHVuZGVybGluZWQgdGV4dC4gIFRo ZSBkZWZhdWx0IGlzIOKAmG5pbOKAmSwgd2hpY2ggbWVhbnMgdG8gZHJhdyBpdCBhdAp0aGUgYmFz ZWxpbmUgbGV2ZWwgb2YgdGhlIGZvbnQ7IGlmIHlvdSBjaGFuZ2UgaXQgdG8g4oCYdOKAmSwgRW1h Y3MgZHJhd3MgdGhlCnVuZGVybGluZSBhdCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGZvbnTigJlz IGRlc2NlbnQgbGluZS4gIChJZgpub24tZGVmYXVsdCBsaW5lIHNwYWNpbmcgd2FzIHNwZWNpZmll ZCBmb3IgdGhlIHVuZGVybGluZWQgdGV4dCwgc2VlCipub3RlIChlbGlzcClMaW5lIEhlaWdodDo6 LCBFbWFjcyBkcmF3cyB0aGUgdW5kZXJsaW5lIGJlbG93IHRoZQphZGRpdGlvbmFsIHNwYWNpbmcu KQoKICAgVGhlIHZhcmlhYmxlIOKAmG92ZXJsaW5lLW1hcmdpbuKAmSBzcGVjaWZpZXMgdGhlIHZl cnRpY2FsIHBvc2l0aW9uIG9mIGFuCm92ZXJsaW5lIGFib3ZlIHRoZSB0ZXh0LCBpbmNsdWRpbmcg dGhlIGhlaWdodCBvZiB0aGUgb3ZlcmxpbmUgaXRzZWxmLCBpbgpwaXhlbHM7IHRoZSBkZWZhdWx0 IGlzIDIuCgogICBPbiBzb21lIHRleHQgdGVybWluYWxzLCBib2xkIGZhY2UgYW5kIGludmVyc2Ug dmlkZW8gdG9nZXRoZXIgcmVzdWx0CmluIHRleHQgdGhhdCBpcyBoYXJkIHRvIHJlYWQuICBDYWxs IHRoZSBmdW5jdGlvbgrigJh0dHktc3VwcHJlc3MtYm9sZC1pbnZlcnNlLWRlZmF1bHQtY29sb3Jz 4oCZIHdpdGggYSBub24t4oCYbmls4oCZIGFyZ3VtZW50IHRvCnN1cHByZXNzIHRoZSBlZmZlY3Qg b2YgYm9sZC1mYWNlIGluIHRoaXMgY2FzZS4KCiAgIFJhdyBieXRlcyBhcmUgZGlzcGxheWVkIGlu IG9jdGFsIGZvcm1hdCBieSBkZWZhdWx0LCBmb3IgZXhhbXBsZSBhCmJ5dGUgd2l0aCBhIGRlY2lt YWwgdmFsdWUgb2YgMTI4IGlzIGRpc3BsYXllZCBhcyDigJhcMjAw4oCZLiAgVG8gY2hhbmdlCmRp c3BsYXkgdG8gdGhlIGhleGFkZWNpbWFsIGZvcm1hdCBvZiDigJhceDgw4oCZLCBzZXQgdGhlIHZh cmlhYmxlCuKAmGRpc3BsYXktcmF3LWJ5dGVzLWFzLWhleOKAmSB0byDigJh04oCZLgoKCiogMTUg U2VhcmNoaW5nIGFuZCBSZXBsYWNlbWVudAoKTGlrZSBvdGhlciBlZGl0b3JzLCBFbWFjcyBoYXMg Y29tbWFuZHMgdG8gc2VhcmNoIGZvciBvY2N1cnJlbmNlcyBvZiBhCnN0cmluZy4gIEVtYWNzIGFs c28gaGFzIGNvbW1hbmRzIHRvIHJlcGxhY2Ugb2NjdXJyZW5jZXMgb2YgYSBzdHJpbmcgd2l0aAph IGRpZmZlcmVudCBzdHJpbmcuICBUaGVyZSBhcmUgYWxzbyBjb21tYW5kcyB0aGF0IGRvIHRoZSBz YW1lIHRoaW5nLCBidXQKc2VhcmNoIGZvciBwYXR0ZXJucyBpbnN0ZWFkIG9mIGZpeGVkIHN0cmlu Z3MuCgogICBZb3UgY2FuIGFsc28gc2VhcmNoIG11bHRpcGxlIGZpbGVzIHVuZGVyIHRoZSBjb250 cm9sIG9mIOKAmHhyZWbigJkgKCpub3RlCklkZW50aWZpZXIgU2VhcmNoOjopIG9yIHRocm91Z2gg dGhlIERpcmVkIOKAmEHigJkgY29tbWFuZCAoKm5vdGUgT3BlcmF0aW5nCm9uIEZpbGVzOjopLCBv ciBhc2sgdGhlIOKAmGdyZXDigJkgcHJvZ3JhbSB0byBkbyBpdCAoKm5vdGUgR3JlcApTZWFyY2hp bmc6OikuCgorIE1lbnU6CgogIC0gSW5jcmVtZW50YWwgU2VhcmNoOjogICAgICAgIFNlYXJjaCBo YXBwZW5zIGFzIHlvdSB0eXBlIHRoZSBzdHJpbmcuCiAgLSBOb25pbmNyZW1lbnRhbCBTZWFyY2g6 OiAgICAgU3BlY2lmeSBlbnRpcmUgc3RyaW5nIGFuZCB0aGVuIHNlYXJjaC4KICAtIFdvcmQgU2Vh cmNoOjogICAgICAgICAgICAgICBTZWFyY2ggZm9yIHNlcXVlbmNlIG9mIHdvcmRzLgogIC0gU3lt Ym9sIFNlYXJjaDo6ICAgICAgICAgICAgIFNlYXJjaCBmb3IgYSBzb3VyY2UgY29kZSBzeW1ib2wu CiAgLSBSZWdleHAgU2VhcmNoOjogICAgICAgICAgICAgU2VhcmNoIGZvciBtYXRjaCBmb3IgYSBy ZWdleHAuCiAgLSBSZWdleHBzOjogICAgICAgICAgICAgICAgICAgU3ludGF4IG9mIHJlZ3VsYXIg ZXhwcmVzc2lvbnMuCiAgLSBSZWdleHAgQmFja3NsYXNoOjogICAgICAgICAgUmVndWxhciBleHBy ZXNzaW9uIGNvbnN0cnVjdHMgc3RhcnRpbmcgd2l0aCDigJhc4oCZLgogIC0gUmVnZXhwIEV4YW1w bGU6OiAgICAgICAgICAgIEEgY29tcGxleCByZWd1bGFyIGV4cHJlc3Npb24gZXhwbGFpbmVkLgog IC0gTGF4IFNlYXJjaDo6ICAgICAgICAgICAgICAgIFNlYXJjaCBpZ25vcmVzIHNvbWUgZGlzdGlu Y3Rpb25zIGFtb25nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltaWxhciBjaGFy YWN0ZXJzLCBsaWtlIGxldHRlci1jYXNlLgogIC0gUmVwbGFjZTo6ICAgICAgICAgICAgICAgICAg IFNlYXJjaCwgYW5kIHJlcGxhY2Ugc29tZSBvciBhbGwgbWF0Y2hlcy4KICAtIE90aGVyIFJlcGVh dGluZyBTZWFyY2g6OiAgICBPcGVyYXRpbmcgb24gYWxsIG1hdGNoZXMgZm9yIHNvbWUgcmVnZXhw LgogIC0gU2VhcmNoIEN1c3RvbWl6YXRpb25zOjogICAgIFZhcmlvdXMgc2VhcmNoIGN1c3RvbWl6 YXRpb25zLgoKCioqIDE1LjEgSW5jcmVtZW50YWwgU2VhcmNoCgpUaGUgcHJpbmNpcGFsIHNlYXJj aCBjb21tYW5kIGluIEVtYWNzIGlzICJpbmNyZW1lbnRhbCI6IGl0IGJlZ2lucwpzZWFyY2hpbmcg YXMgc29vbiBhcyB5b3UgdHlwZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzZWFyY2ggc3Ry aW5nLgpBcyB5b3UgdHlwZSBpbiB0aGUgc2VhcmNoIHN0cmluZywgRW1hY3Mgc2hvd3MgeW91IHdo ZXJlIHRoZSBzdHJpbmcgKGFzCnlvdSBoYXZlIHR5cGVkIGl0IHNvIGZhcikgd291bGQgYmUgZm91 bmQuICBXaGVuIHlvdSBoYXZlIHR5cGVkIGVub3VnaApjaGFyYWN0ZXJzIHRvIGlkZW50aWZ5IHRo ZSBwbGFjZSB5b3Ugd2FudCwgeW91IGNhbiBzdG9wLiAgRGVwZW5kaW5nIG9uCndoYXQgeW91IHBs YW4gdG8gZG8gbmV4dCwgeW91IG1heSBvciBtYXkgbm90IG5lZWQgdG8gdGVybWluYXRlIHRoZQpz ZWFyY2ggZXhwbGljaXRseSB3aXRoIDxSRVQ+LgoK4oCYQy1z4oCZCiAgICAgSW5jcmVtZW50YWwg c2VhcmNoIGZvcndhcmQgKOKAmGlzZWFyY2gtZm9yd2FyZOKAmSkuCuKAmEMtcuKAmQogICAgIElu Y3JlbWVudGFsIHNlYXJjaCBiYWNrd2FyZCAo4oCYaXNlYXJjaC1iYWNrd2FyZOKAmSkuCgogICBZ b3UgY2FuIGFsc28gaW52b2tlIGluY3JlbWVudGFsIHNlYXJjaCBmcm9tIHRoZSBtZW51IGJhcuKA mXMK4oCYRWRpdC0+U2VhcmNo4oCZIG1lbnUuCgorIE1lbnU6CgogIC0gQmFzaWMgSXNlYXJjaDo6 ICAgICAgICBCYXNpYyBpbmNyZW1lbnRhbCBzZWFyY2ggY29tbWFuZHMuCiAgLSBSZXBlYXQgSXNl YXJjaDo6ICAgICAgIFNlYXJjaGluZyBmb3IgdGhlIHNhbWUgc3RyaW5nIGFnYWluLgogIC0gSXNl YXJjaCBZYW5rOjogICAgICAgICBDb21tYW5kcyB0aGF0IGdyYWIgdGV4dCBpbnRvIHRoZSBzZWFy Y2ggc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGVsc2UgZWRpdCB0aGUgc2Vh cmNoIHN0cmluZy4KICAtIEVycm9yIGluIElzZWFyY2g6OiAgICAgV2hlbiB5b3VyIHN0cmluZyBp cyBub3QgZm91bmQuCiAgLSBTcGVjaWFsIElzZWFyY2g6OiAgICAgIFNwZWNpYWwgaW5wdXQgaW4g aW5jcmVtZW50YWwgc2VhcmNoLgogIC0gTm90IEV4aXRpbmcgSXNlYXJjaDo6ICBQcmVmaXggYXJn dW1lbnQgYW5kIHNjcm9sbGluZyBjb21tYW5kcy4KICAtIElzZWFyY2ggTWluaWJ1ZmZlcjo6ICAg SW5jcmVtZW50YWwgc2VhcmNoIG9mIHRoZSBtaW5pYnVmZmVyIGhpc3RvcnkuCgoKKioqIDE1LjEu MSBCYXNpY3Mgb2YgSW5jcmVtZW50YWwgU2VhcmNoCgrigJhDLXPigJkKICAgICBCZWdpbiBpbmNy ZW1lbnRhbCBzZWFyY2ggKOKAmGlzZWFyY2gtZm9yd2FyZOKAmSkuCuKAmEMtcuKAmQogICAgIEJl Z2luIHJldmVyc2UgaW5jcmVtZW50YWwgc2VhcmNoICjigJhpc2VhcmNoLWJhY2t3YXJk4oCZKS4K CiAgIOKAmEMtc+KAmSAo4oCYaXNlYXJjaC1mb3J3YXJk4oCZKSBzdGFydHMgYSBmb3J3YXJkIGlu Y3JlbWVudGFsIHNlYXJjaC4gIEl0CnJlYWRzIGNoYXJhY3RlcnMgZnJvbSB0aGUga2V5Ym9hcmQs IGFuZCBtb3ZlcyBwb2ludCBqdXN0IHBhc3QgdGhlIGVuZCBvZgp0aGUgbmV4dCBvY2N1cnJlbmNl IG9mIHRob3NlIGNoYXJhY3RlcnMgaW4gdGhlIGJ1ZmZlci4KCiAgIEZvciBpbnN0YW5jZSwgaWYg eW91IHR5cGUg4oCYQy1z4oCZIGFuZCB0aGVuIOKAmEbigJksIHRoYXQgcHV0cyB0aGUgY3Vyc29y CmFmdGVyIHRoZSBmaXJzdCDigJhG4oCZIHRoYXQgb2NjdXJzIGluIHRoZSBidWZmZXIgYWZ0ZXIg dGhlIHN0YXJ0aW5nIHBvaW50LgpJZiB5b3UgdGhlbiB0eXBlIOKAmE/igJksIHRoZSBjdXJzb3Ig bW92ZXMgdG8ganVzdCBhZnRlciB0aGUgZmlyc3Qg4oCYRk/igJk7IHRoZQrigJhG4oCZIGluIHRo YXQg4oCYRk/igJkgbWlnaHQgbm90IGJlIHRoZSBmaXJzdCDigJhG4oCZIHByZXZpb3VzbHkgZm91 bmQuICBBZnRlcgphbm90aGVyIOKAmE/igJksIHRoZSBjdXJzb3IgbW92ZXMgdG8ganVzdCBhZnRl ciB0aGUgZmlyc3Qg4oCYRk9P4oCZLgoKICAgQXQgZWFjaCBzdGVwLCBFbWFjcyBoaWdobGlnaHRz IHRoZSAiY3VycmVudCBtYXRjaCLigJR0aGUgYnVmZmVyIHRleHQKdGhhdCBtYXRjaGVzIHRoZSBz ZWFyY2ggc3RyaW5n4oCUdXNpbmcgdGhlIOKAmGlzZWFyY2jigJkgZmFjZSAoKm5vdGUgRmFjZXM6 OikuCipOb3RlIFNlYXJjaCBDdXN0b21pemF0aW9uczo6LCBmb3IgdmFyaW91cyBvcHRpb25zIHRo YXQgY3VzdG9taXplIHRoaXMKaGlnaGxpZ2h0aW5nLiAgVGhlIGN1cnJlbnQgc2VhcmNoIHN0cmlu ZyBpcyBhbHNvIGRpc3BsYXllZCBpbiB0aGUgZWNobwphcmVhLgoKICAgSWYgeW91IG1ha2UgYSBt aXN0YWtlIHR5cGluZyB0aGUgc2VhcmNoIHN0cmluZywgdHlwZSA8REVMPi4gIEVhY2gKPERFTD4g Y2FuY2VscyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlYXJjaCBzdHJpbmcuICAqTm90ZSBF cnJvciBpbgpJc2VhcmNoOjosIGZvciBtb3JlIGFib3V0IGRlYWxpbmcgd2l0aCB1bnN1Y2Nlc3Nm dWwgc2VhcmNoLgoKICAgV2hlbiB5b3UgYXJlIHNhdGlzZmllZCB3aXRoIHRoZSBwbGFjZSB5b3Ug aGF2ZSByZWFjaGVkLCB0eXBlIDxSRVQ+LgpUaGlzIHN0b3BzIHNlYXJjaGluZywgbGVhdmluZyB0 aGUgY3Vyc29yIHdoZXJlIHRoZSBzZWFyY2ggYnJvdWdodCBpdC4KQWxzbywgYW55IGNvbW1hbmQg bm90IHNwZWNpYWxseSBtZWFuaW5nZnVsIGluIHNlYXJjaGVzIHN0b3BzIHRoZQpzZWFyY2hpbmcg YW5kIGlzIHRoZW4gZXhlY3V0ZWQuICBUaHVzLCB0eXBpbmcg4oCYQy1h4oCZIGV4aXRzIHRoZSBz ZWFyY2ggYW5kCnRoZW4gbW92ZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZTsgdHlwaW5n IG9uZSBvZiB0aGUgYXJyb3cga2V5cwpleGl0cyB0aGUgc2VhcmNoIGFuZCBwZXJmb3JtcyB0aGUg cmVzcGVjdGl2ZSBtb3ZlbWVudCBjb21tYW5kOyBldGMuCjxSRVQ+IGlzIG5lY2Vzc2FyeSBvbmx5 IGlmIHRoZSBuZXh0IGNvbW1hbmQgeW91IHdhbnQgdG8gdHlwZSBpcyBhCnByaW50aW5nIGNoYXJh Y3RlciwgPERFTD4sIDxSRVQ+LCBvciBhbm90aGVyIGNoYXJhY3RlciB0aGF0IGlzIHNwZWNpYWwK d2l0aGluIHNlYXJjaGVzICjigJhDLXHigJksIOKAmEMtd+KAmSwg4oCYQy1y4oCZLCDigJhDLXPi gJksIOKAmEMteeKAmSwg4oCYTS154oCZLCDigJhNLXLigJksIOKAmE0tY+KAmSwK4oCYTS1l4oCZ LCBhbmQgc29tZSBvdGhlcnMgZGVzY3JpYmVkIGJlbG93KS4gIFlvdSBjYW4gZmluZS10dW5lIHRo ZSBjb21tYW5kcwp0aGF0IGV4aXQgdGhlIHNlYXJjaDsgc2VlICpub3RlIE5vdCBFeGl0aW5nIElz ZWFyY2g6Oi4KCiAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGVudGVyaW5nIDxSRVQ+IHdoZW4g dGhlIHNlYXJjaCBzdHJpbmcgaXMKZW1wdHkgbGF1bmNoZXMgbm9uaW5jcmVtZW50YWwgc2VhcmNo ICgqbm90ZSBOb25pbmNyZW1lbnRhbCBTZWFyY2g6OikuCihUaGlzIGNhbiBiZSBjdXN0b21pemVk OyBzZWUgKm5vdGUgU2VhcmNoIEN1c3RvbWl6YXRpb25zOjouKQoKICAgVG8gYWJhbmRvbiB0aGUg c2VhcmNoIGFuZCByZXR1cm4gdG8gdGhlIHBsYWNlIHdoZXJlIHlvdSBzdGFydGVkLCB0eXBlCuKA mDxFU0M+IDxFU0M+IDxFU0M+4oCZICjigJhpc2VhcmNoLWNhbmNlbOKAmSkgb3Ig4oCYQy1nIEMt Z+KAmSAo4oCYaXNlYXJjaC1hYm9ydOKAmSkuCgogICBXaGVuIHlvdSBleGl0IHRoZSBpbmNyZW1l bnRhbCBzZWFyY2gsIGl0IGFkZHMgdGhlIG9yaWdpbmFsIHZhbHVlIG9mCnBvaW50IHRvIHRoZSBt YXJrIHJpbmcsIHdpdGhvdXQgYWN0aXZhdGluZyB0aGUgbWFyazsgeW91IGNhbiB0aHVzIHVzZQri gJhDLXUgQy08U1BDPuKAmSBvciDigJhDLXggQy144oCZIHRvIHJldHVybiB0byB3aGVyZSB5b3Ug d2VyZSBiZWZvcmUgYmVnaW5uaW5nCnRoZSBzZWFyY2guICAqTm90ZSBNYXJrIFJpbmc6Oi4gIChF bWFjcyBvbmx5IGRvZXMgdGhpcyBpZiB0aGUgbWFyayB3YXMKbm90IGFscmVhZHkgYWN0aXZlOyBp ZiB0aGUgbWFyayB3YXMgYWN0aXZlIHdoZW4geW91IHN0YXJ0ZWQgdGhlIHNlYXJjaCwKYm90aCDi gJhDLXUgQy08U1BDPuKAmSBhbmQg4oCYQy14IEMteOKAmSB3aWxsIGdvIHRvIHRoZSBtYXJrLikK CiAgIFRvIHNlYXJjaCBiYWNrd2FyZHMsIHVzZSDigJhDLXLigJkgKOKAmGlzZWFyY2gtYmFja3dh cmTigJkpIGluc3RlYWQgb2Yg4oCYQy1z4oCZCnRvIHN0YXJ0IHRoZSBzZWFyY2guICBBIGJhY2t3 YXJkIHNlYXJjaCBmaW5kcyBtYXRjaGVzIHRoYXQgZW5kIGJlZm9yZQp0aGUgc3RhcnRpbmcgcG9p bnQsIGp1c3QgYXMgYSBmb3J3YXJkIHNlYXJjaCBmaW5kcyBtYXRjaGVzIHRoYXQgYmVnaW4KYWZ0 ZXIgaXQuCgoKKioqIDE1LjEuMiBSZXBlYXRpbmcgSW5jcmVtZW50YWwgU2VhcmNoCgpTdXBwb3Nl IHlvdSBzZWFyY2ggZm9yd2FyZCBmb3Ig4oCYRk9P4oCZIGFuZCBmaW5kIGEgbWF0Y2gsIGJ1dCBu b3QgdGhlIG9uZQp5b3UgZXhwZWN0ZWQgdG8gZmluZDogdGhlIOKAmEZPT+KAmSB5b3Ugd2VyZSBh aW1pbmcgZm9yIG9jY3VycyBsYXRlciBpbiB0aGUKYnVmZmVyLiAgSW4gdGhpcyBldmVudCwgdHlw ZSBhbm90aGVyIOKAmEMtc+KAmSB0byBtb3ZlIHRvIHRoZSBuZXh0Cm9jY3VycmVuY2Ugb2YgdGhl IHNlYXJjaCBzdHJpbmcuICBZb3UgY2FuIHJlcGVhdCB0aGlzIGFueSBudW1iZXIgb2YKdGltZXMu ICBJZiB5b3Ugb3ZlcnNob290LCB5b3UgY2FuIGNhbmNlbCBzb21lIOKAmEMtc+KAmSBjaGFyYWN0 ZXJzIHdpdGgKPERFTD4uICBTaW1pbGFybHksIGVhY2gg4oCYQy1y4oCZIGluIGEgYmFja3dhcmQg aW5jcmVtZW50YWwgc2VhcmNoIHJlcGVhdHMKdGhlIGJhY2t3YXJkIHNlYXJjaC4KCiAgIElmIHlv dSBwYXVzZSBmb3IgYSBsaXR0bGUgd2hpbGUgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCwgRW1h Y3MKaGlnaGxpZ2h0cyBhbGwgdGhlIG90aGVyIHBvc3NpYmxlIG1hdGNoZXMgZm9yIHRoZSBzZWFy Y2ggc3RyaW5nIHRoYXQgYXJlCnByZXNlbnQgb24gdGhlIHNjcmVlbi4gIFRoaXMgaGVscHMgeW91 IGFudGljaXBhdGUgd2hlcmUgeW91IGNhbiBnZXQgdG8KYnkgdHlwaW5nIOKAmEMtc+KAmSBvciDi gJhDLXLigJkgdG8gcmVwZWF0IHRoZSBzZWFyY2guICBUaGUgb3RoZXIgbWF0Y2hlcyBhcmUKaGln aGxpZ2h0ZWQgZGlmZmVyZW50bHkgZnJvbSB0aGUgY3VycmVudCBtYXRjaCwgdXNpbmcgdGhlIGN1 c3RvbWl6YWJsZQpmYWNlIOKAmGxhenktaGlnaGxpZ2h04oCZICgqbm90ZSBGYWNlczo6KS4gIElm IHlvdSBkb27igJl0IGxpa2UgdGhpcyBmZWF0dXJlLAp5b3UgY2FuIGRpc2FibGUgaXQgYnkgc2V0 dGluZyDigJhpc2VhcmNoLWxhenktaGlnaGxpZ2h04oCZIHRvIOKAmG5pbOKAmS4gIEZvcgpvdGhl ciBjdXN0b21pemF0aW9ucyByZWxhdGVkIHRvIGhpZ2hsaWdodGluZyBtYXRjaGVzLCBzZWUgKm5v dGUgU2VhcmNoCkN1c3RvbWl6YXRpb25zOjouCgogICBBZnRlciBleGl0aW5nIGEgc2VhcmNoLCB5 b3UgY2FuIHNlYXJjaCBmb3IgdGhlIHNhbWUgc3RyaW5nIGFnYWluIGJ5CnR5cGluZyBqdXN0IOKA mEMtcyBDLXPigJkuICBUaGUgZmlyc3Qg4oCYQy1z4oCZIGlzIHRoZSBrZXkgdGhhdCBpbnZva2Vz CmluY3JlbWVudGFsIHNlYXJjaCwgYW5kIHRoZSBzZWNvbmQg4oCYQy1z4oCZIG1lYW5zIHRvIHNl YXJjaCBhZ2FpbiBmb3IgdGhlCmxhc3Qgc2VhcmNoIHN0cmluZy4gIFNpbWlsYXJseSwg4oCYQy1y IEMtcuKAmSBzZWFyY2hlcyBiYWNrd2FyZCBmb3IgdGhlIGxhc3QKc2VhcmNoIHN0cmluZy4gIElu IGRldGVybWluaW5nIHRoZSBsYXN0IHNlYXJjaCBzdHJpbmcsIGl0IGRvZXNu4oCZdCBtYXR0ZXIK d2hldGhlciB0aGF0IHN0cmluZyB3YXMgc2VhcmNoZWQgZm9yIHdpdGgg4oCYQy1z4oCZIG9yIOKA mEMtcuKAmS4KCiAgIElmIHlvdSBhcmUgc2VhcmNoaW5nIGZvcndhcmQgYnV0IHlvdSByZWFsaXpl IHlvdSB3ZXJlIGxvb2tpbmcgZm9yCnNvbWV0aGluZyBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvaW50 LCB0eXBlIOKAmEMtcuKAmSB0byBzd2l0Y2ggdG8gYSBiYWNrd2FyZApzZWFyY2gsIGxlYXZpbmcg dGhlIHNlYXJjaCBzdHJpbmcgdW5jaGFuZ2VkLiAgU2ltaWxhcmx5LCDigJhDLXPigJkgaW4gYQpi YWNrd2FyZCBzZWFyY2ggc3dpdGNoZXMgdG8gYSBmb3J3YXJkIHNlYXJjaC4KCiAgIElmIGEgc2Vh cmNoIGlzIGZhaWxpbmcgYW5kIHlvdSBhc2sgdG8gcmVwZWF0IGl0IGJ5IHR5cGluZyBhbm90aGVy CuKAmEMtc+KAmSwgaXQgc3RhcnRzIGFnYWluIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgYnVm ZmVyLiAgUmVwZWF0aW5nIGEKZmFpbGluZyByZXZlcnNlIHNlYXJjaCB3aXRoIOKAmEMtcuKAmSBz dGFydHMgYWdhaW4gZnJvbSB0aGUgZW5kLiAgVGhpcyBpcwpjYWxsZWQgIndyYXBwaW5nIGFyb3Vu ZCIsIGFuZCDigJhXcmFwcGVk4oCZIGFwcGVhcnMgaW4gdGhlIHNlYXJjaCBwcm9tcHQKb25jZSB0 aGlzIGhhcyBoYXBwZW5lZC4gIElmIHlvdSBrZWVwIG9uIGdvaW5nIHBhc3QgdGhlIG9yaWdpbmFs IHN0YXJ0aW5nCnBvaW50IG9mIHRoZSBzZWFyY2gsIGl0IGNoYW5nZXMgdG8g4oCYT3ZlcndyYXBw ZWTigJksIHdoaWNoIG1lYW5zIHRoYXQgeW91CmFyZSByZXZpc2l0aW5nIG1hdGNoZXMgdGhhdCB5 b3UgaGF2ZSBhbHJlYWR5IHNlZW4uCgogICBUbyByZXVzZSBlYXJsaWVyIHNlYXJjaCBzdHJpbmdz LCB1c2UgdGhlICJzZWFyY2ggcmluZyIuICBUaGUgY29tbWFuZHMK4oCYTS1w4oCZIGFuZCDigJhN LW7igJkgbW92ZSB0aHJvdWdoIHRoZSByaW5nIHRvIHBpY2sgYSBzZWFyY2ggc3RyaW5nIHRvIHJl dXNlLgpUaGVzZSBjb21tYW5kcyBsZWF2ZSB0aGUgc2VsZWN0ZWQgc2VhcmNoIHJpbmcgZWxlbWVu dCBpbiB0aGUgbWluaWJ1ZmZlciwKd2hlcmUgeW91IGNhbiBlZGl0IGl0LiAgVHlwZSDigJhDLXPi gJkv4oCYQy1y4oCZIG9yIDxSRVQ+IHRvIGFjY2VwdCB0aGUgc3RyaW5nCmFuZCBzdGFydCBzZWFy Y2hpbmcgZm9yIGl0LiAgVGhlIG51bWJlciBvZiBtb3N0IHJlY2VudGx5IHVzZWQgc2VhcmNoCnN0 cmluZ3Mgc2F2ZWQgaW4gdGhlIHNlYXJjaCByaW5nIGlzIHNwZWNpZmllZCBieSB0aGUgdmFyaWFi bGUK4oCYc2VhcmNoLXJpbmctbWF44oCZLCAxNiBieSBkZWZhdWx0LgoKICAgVG8gZWRpdCB0aGUg Y3VycmVudCBzZWFyY2ggc3RyaW5nIGluIHRoZSBtaW5pYnVmZmVyIHdpdGhvdXQgcmVwbGFjaW5n Cml0IHdpdGggaXRlbXMgZnJvbSB0aGUgc2VhcmNoIHJpbmcsIHR5cGUg4oCYTS1l4oCZIG9yIGNs aWNrIOKAmG1vdXNlLTHigJkgaW4gdGhlCm1pbmlidWZmZXIuICBUeXBlIDxSRVQ+LCDigJhDLXPi gJkgb3Ig4oCYQy1y4oCZIHRvIGZpbmlzaCBlZGl0aW5nIHRoZSBzdHJpbmcgYW5kCnNlYXJjaCBm b3IgaXQuICBUeXBlIOKAmEMtZuKAmSBvciDigJg8UklHSFQ+4oCZIHRvIGFkZCB0byB0aGUgc2Vh cmNoIHN0cmluZwpjaGFyYWN0ZXJzIGZvbGxvd2luZyBwb2ludCBmcm9tIHRoZSBidWZmZXIgZnJv bSB3aGljaCB5b3Ugc3RhcnRlZCB0aGUKc2VhcmNoLgoKCioqKiAxNS4xLjMgSXNlYXJjaCBZYW5r aW5nCgpJbiBtYW55IGNhc2VzLCB5b3Ugd2lsbCB3YW50IHRvIHVzZSB0ZXh0IGF0IG9yIG5lYXIg cG9pbnQgYXMgeW91ciBzZWFyY2gKc3RyaW5nLiAgVGhlIGNvbW1hbmRzIGRlc2NyaWJlZCBpbiB0 aGlzIHN1YnNlY3Rpb24gbGV0IHlvdSBkbyB0aGF0CmNvbnZlbmllbnRseS4KCiAgIOKAmEMtd+KA mSAo4oCYaXNlYXJjaC15YW5rLXdvcmQtb3ItY2hhcuKAmSkgYXBwZW5kcyB0aGUgbmV4dCBjaGFy YWN0ZXIgb3IKd29yZCBhdCBwb2ludCB0byB0aGUgc2VhcmNoIHN0cmluZy4gIFRoaXMgaXMgYW4g ZWFzeSB3YXkgdG8gc2VhcmNoIGZvcgphbm90aGVyIG9jY3VycmVuY2Ugb2YgdGhlIHRleHQgYXQg cG9pbnQuICAoVGhlIGRlY2lzaW9uIG9mIHdoZXRoZXIgdG8KY29weSBhIGNoYXJhY3RlciBvciBh IHdvcmQgaXMgaGV1cmlzdGljLikKCiAgIFNpbWlsYXJseSwg4oCYTS1zIEMtZeKAmSAo4oCYaXNl YXJjaC15YW5rLWxpbmXigJkpIGFwcGVuZHMgdGhlIHJlc3Qgb2YgdGhlCmN1cnJlbnQgbGluZSB0 byB0aGUgc2VhcmNoIHN0cmluZy4gIElmIHBvaW50IGlzIGFscmVhZHkgYXQgdGhlIGVuZCBvZiBh CmxpbmUsIGl0IGFwcGVuZHMgdGhlIG5leHQgbGluZS4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQg TiwgaXQgYXBwZW5kcwp0aGUgbmV4dCBOIGxpbmVzLgoKICAgV2l0aGluIGluY3JlbWVudGFsIHNl YXJjaCwg4oCYQy154oCZICjigJhpc2VhcmNoLXlhbmsta2lsbOKAmSkgYXBwZW5kcyB0aGUKY3Vy cmVudCBraWxsIHRvIHRoZSBzZWFyY2ggc3RyaW5nLiAg4oCYTS154oCZICjigJhpc2VhcmNoLXlh bmstcG9w4oCZKSwgaWYKY2FsbGVkIGFmdGVyIOKAmEMteeKAmSwgcmVwbGFjZXMgdGhhdCBhcHBl bmRlZCB0ZXh0IHdpdGggYW4gZWFybGllciBraWxsLApzaW1pbGFyIHRvIHRoZSB1c3VhbCDigJhN LXnigJkgKOKAmHlhbmstcG9w4oCZKSBjb21tYW5kICgqbm90ZSBZYW5raW5nOjopLgpDbGlja2lu ZyDigJhtb3VzZS0y4oCZIGluIHRoZSBlY2hvIGFyZWEgYXBwZW5kcyB0aGUgY3VycmVudCBYIHNl bGVjdGlvbgooKm5vdGUgUHJpbWFyeSBTZWxlY3Rpb246OikgdG8gdGhlIHNlYXJjaCBzdHJpbmcK KOKAmGlzZWFyY2gteWFuay14LXNlbGVjdGlvbuKAmSkuCgogICDigJhDLU0td+KAmSAo4oCYaXNl YXJjaC1kZWwtY2hhcuKAmSkgZGVsZXRlcyB0aGUgbGFzdCBjaGFyYWN0ZXIgZnJvbSB0aGUKc2Vh cmNoIHN0cmluZywgYW5kIOKAmEMtTS154oCZICjigJhpc2VhcmNoLXlhbmstY2hhcuKAmSkgYXBw ZW5kcyB0aGUgY2hhcmFjdGVyCmFmdGVyIHBvaW50IHRvIHRoZSBzZWFyY2ggc3RyaW5nLiAgQW4g YWx0ZXJuYXRpdmUgbWV0aG9kIHRvIGFkZCB0aGUKY2hhcmFjdGVyIGFmdGVyIHBvaW50IGlzIHRv IGVudGVyIHRoZSBtaW5pYnVmZmVyIHdpdGgg4oCYTS1l4oCZICgqbm90ZQpSZXBlYXQgSXNlYXJj aDo6KSBhbmQgdHlwZSDigJhDLWbigJkgb3Ig4oCYPFJJR0hUPuKAmSBhdCB0aGUgZW5kIG9mIHRo ZSBzZWFyY2gKc3RyaW5nIGluIHRoZSBtaW5pYnVmZmVyLiAgRWFjaCDigJhDLWbigJkgb3Ig4oCY PFJJR0hUPuKAmSB5b3UgdHlwZSBhZGRzIGFub3RoZXIKY2hhcmFjdGVyIGZvbGxvd2luZyBwb2lu dCB0byB0aGUgc2VhcmNoIHN0cmluZy4KCiAgIE5vcm1hbGx5LCB3aGVuIHRoZSBzZWFyY2ggaXMg Y2FzZS1pbnNlbnNpdGl2ZSwgdGV4dCB5YW5rZWQgaW50byB0aGUKc2VhcmNoIHN0cmluZyBpcyBj b252ZXJ0ZWQgdG8gbG93ZXIgY2FzZSwgc28gdGhhdCB0aGUgc2VhcmNoIHJlbWFpbnMKY2FzZS1p bnNlbnNpdGl2ZSAoKm5vdGUgY2FzZSBmb2xkaW5nOiBMYXggU2VhcmNoLikuICBIb3dldmVyLCBp ZiB0aGUKdmFsdWUgb2YgdGhlIHZhcmlhYmxlIOKAmHNlYXJjaC11cHBlci1jYXNl4oCZICgqbm90 ZSBzZWFyY2gtdXBwZXItY2FzZTogTGF4ClNlYXJjaC4pIGlzIG90aGVyIHRoYW4g4oCYbm90LXlh bmtz4oCZLCB0aGF0IGRpc2FibGVzIHRoaXMgZG93bi1jYXNpbmcuCgoKKioqIDE1LjEuNCBFcnJv cnMgaW4gSW5jcmVtZW50YWwgU2VhcmNoCgpJZiB5b3VyIHN0cmluZyBpcyBub3QgZm91bmQgYXQg YWxsLCB0aGUgZWNobyBhcmVhIHNheXMg4oCYRmFpbGluZwpJLVNlYXJjaOKAmSwgYW5kIHRoZSBj dXJzb3IgbW92ZXMgcGFzdCB0aGUgcGxhY2Ugd2hlcmUgRW1hY3MgZm91bmQgYXMgbXVjaApvZiB5 b3VyIHN0cmluZyBhcyBpdCBjb3VsZC4gIFRodXMsIGlmIHlvdSBzZWFyY2ggZm9yIOKAmEZPT1Ti gJksIGFuZCB0aGVyZQppcyBubyDigJhGT09U4oCZLCB5b3UgbWlnaHQgc2VlIHRoZSBjdXJzb3Ig YWZ0ZXIgdGhlIOKAmEZPT+KAmSBpbiDigJhGT09M4oCZLiAgSW4KdGhlIGVjaG8gYXJlYSwgdGhl IHBhcnQgb2YgdGhlIHNlYXJjaCBzdHJpbmcgdGhhdCBmYWlsZWQgdG8gbWF0Y2ggaXMKaGlnaGxp Z2h0ZWQgdXNpbmcgdGhlIGZhY2Ug4oCYaXNlYXJjaC1mYWls4oCZLgoKICAgQXQgdGhpcyBwb2lu dCwgdGhlcmUgYXJlIHNldmVyYWwgdGhpbmdzIHlvdSBjYW4gZG8uICBJZiB5b3VyIHN0cmluZwp3 YXMgbWlzdHlwZWQsIHlvdSBjYW4gdXNlIDxERUw+IHRvIGVyYXNlIHNvbWUgb2YgaXQgYW5kIGNv cnJlY3QgaXQsIG9yCnlvdSBjYW4gdHlwZSDigJhNLWXigJkgYW5kIGVkaXQgaXQuICBJZiB5b3Ug bGlrZSB0aGUgcGxhY2UgeW91IGhhdmUgZm91bmQsCnlvdSBjYW4gdHlwZSA8UkVUPiB0byByZW1h aW4gdGhlcmUuICBPciB5b3UgY2FuIHR5cGUg4oCYQy1n4oCZLCB3aGljaApyZW1vdmVzIGZyb20g dGhlIHNlYXJjaCBzdHJpbmcgdGhlIGNoYXJhY3RlcnMgdGhhdCBjb3VsZCBub3QgYmUgZm91bmQK KHRoZSDigJhU4oCZIGluIOKAmEZPT1TigJkpLCBsZWF2aW5nIHRob3NlIHRoYXQgd2VyZSBmb3Vu ZCAodGhlIOKAmEZPT+KAmSBpbgrigJhGT09U4oCZKS4gIEEgc2Vjb25kIOKAmEMtZ+KAmSBhdCB0 aGF0IHBvaW50IGNhbmNlbHMgdGhlIHNlYXJjaCBlbnRpcmVseSwKcmV0dXJuaW5nIHBvaW50IHRv IHdoZXJlIGl0IHdhcyB3aGVuIHRoZSBzZWFyY2ggc3RhcnRlZC4KCiAgIFRoZSBxdWl0IGNvbW1h bmQsIOKAmEMtZ+KAmSwgZG9lcyBzcGVjaWFsIHRoaW5ncyBkdXJpbmcgc2VhcmNoZXM7IGp1c3QK d2hhdCBpdCBkb2VzIGRlcGVuZHMgb24gdGhlIHN0YXR1cyBvZiB0aGUgc2VhcmNoLiAgSWYgdGhl IHNlYXJjaCBoYXMKZm91bmQgd2hhdCB5b3Ugc3BlY2lmaWVkIGFuZCBpcyB3YWl0aW5nIGZvciBp bnB1dCwg4oCYQy1n4oCZIGNhbmNlbHMgdGhlCmVudGlyZSBzZWFyY2gsIG1vdmluZyB0aGUgY3Vy c29yIGJhY2sgdG8gd2hlcmUgeW91IHN0YXJ0ZWQgdGhlIHNlYXJjaC4KSWYg4oCYQy1n4oCZIGlz IHR5cGVkIHdoZW4gdGhlcmUgYXJlIGNoYXJhY3RlcnMgaW4gdGhlIHNlYXJjaCBzdHJpbmcgdGhh dApoYXZlIG5vdCBiZWVuIGZvdW5k4oCUYmVjYXVzZSBFbWFjcyBpcyBzdGlsbCBzZWFyY2hpbmcg Zm9yIHRoZW0sIG9yCmJlY2F1c2UgaXQgaGFzIGZhaWxlZCB0byBmaW5kIHRoZW3igJR0aGVuIHRo ZSBzZWFyY2ggc3RyaW5nIGNoYXJhY3RlcnMKd2hpY2ggaGF2ZSBub3QgYmVlbiBmb3VuZCBhcmUg ZGlzY2FyZGVkIGZyb20gdGhlIHNlYXJjaCBzdHJpbmcuICBXaXRoCnRoZW0gZ29uZSwgdGhlIHNl YXJjaCBpcyBub3cgc3VjY2Vzc2Z1bCBhbmQgd2FpdGluZyBmb3IgbW9yZSBpbnB1dCwgc28gYQpz ZWNvbmQg4oCYQy1n4oCZIHdpbGwgY2FuY2VsIHRoZSBlbnRpcmUgc2VhcmNoLgoKCioqKiAxNS4x LjUgU3BlY2lhbCBJbnB1dCBmb3IgSW5jcmVtZW50YWwgU2VhcmNoCgpJbiBhZGRpdGlvbiB0byBj aGFyYWN0ZXJzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgc3Vic2VjdGlvbnMsIHNvbWUgb2YK dGhlIG90aGVyIGNoYXJhY3RlcnMgeW91IHR5cGUgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCBo YXZlIHNwZWNpYWwKZWZmZWN0cy4gIFRoZXkgYXJlIGRlc2NyaWJlZCBoZXJlLgoKICAgVG8gdG9n Z2xlIGxheCBzcGFjZSBtYXRjaGluZyAoKm5vdGUgbGF4IHNwYWNlIG1hdGNoaW5nOiBMYXggU2Vh cmNoLiksCnR5cGUg4oCYTS1zIDxTUEM+4oCZLgoKICAgVG8gdG9nZ2xlIGNhc2Ugc2Vuc2l0aXZp dHkgb2YgdGhlIHNlYXJjaCwgdHlwZSDigJhNLWPigJkgb3Ig4oCYTS1zIGPigJkuCipOb3RlIGNh c2UgZm9sZGluZzogTGF4IFNlYXJjaC4gIElmIHRoZSBzZWFyY2ggc3RyaW5nIGluY2x1ZGVzCnVw cGVyLWNhc2UgbGV0dGVycywgdGhlIHNlYXJjaCBpcyBjYXNlLXNlbnNpdGl2ZSBieSBkZWZhdWx0 LgoKICAgVG8gdG9nZ2xlIHdoZXRoZXIgb3Igbm90IHRoZSBzZWFyY2ggd2lsbCBjb25zaWRlciBz aW1pbGFyIGFuZAplcXVpdmFsZW50IGNoYXJhY3RlcnMgYXMgYSBtYXRjaCwgdHlwZSDigJhNLXMg J+KAmS4gICpOb3RlIGNoYXJhY3Rlcgpmb2xkaW5nOiBMYXggU2VhcmNoLiAgSWYgdGhlIHNlYXJj aCBzdHJpbmcgaW5jbHVkZXMgYWNjZW50ZWQgY2hhcmFjdGVycywKdGhhdCBkaXNhYmxlcyBjaGFy YWN0ZXIgZm9sZGluZyBkdXJpbmcgdGhhdCBzZWFyY2guCgogICBUbyB0b2dnbGUgd2hldGhlciBv ciBub3QgaW52aXNpYmxlIHRleHQgaXMgc2VhcmNoZWQsIHR5cGUg4oCYTS1zIGnigJkKKOKAmGlz ZWFyY2gtdG9nZ2xlLWludmlzaWJsZeKAmSkuICAqTm90ZSBPdXRsaW5lIFNlYXJjaDo6LgoKICAg VG8gdG9nZ2xlIGJldHdlZW4gbm9uLXJlZ2V4cCBhbmQgcmVnZXhwIGluY3JlbWVudGFsIHNlYXJj aCwgdHlwZQrigJhNLXLigJkgb3Ig4oCYTS1zIHLigJkgKOKAmGlzZWFyY2gtdG9nZ2xlLXJlZ2V4 cOKAmSkuICAqTm90ZSBSZWdleHAgU2VhcmNoOjouCgogICBUbyB0b2dnbGUgc3ltYm9sIG1vZGUs IHR5cGUg4oCYTS1zIF/igJkuICAqTm90ZSBTeW1ib2wgU2VhcmNoOjouCgogICBUbyBzZWFyY2gg Zm9yIGEgbmV3bGluZSBjaGFyYWN0ZXIsIHR5cGUg4oCYQy1q4oCZIGFzIHBhcnQgb2YgdGhlIHNl YXJjaApzdHJpbmcuCgogICBUbyBzZWFyY2ggZm9yIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCB1c2Ug b25lIG9mIHRoZSBmb2xsb3dpbmcgbWV0aG9kczoKCiAgIOKAoiBUeXBlIOKAmEMtceKAmSwgZm9s bG93ZWQgYnkgYSBub24tZ3JhcGhpYyBjaGFyYWN0ZXIgb3IgYSBzZXF1ZW5jZSBvZgogICAgIG9j dGFsIGRpZ2l0cy4gIFRoaXMgYWRkcyBhIGNoYXJhY3RlciB0byB0aGUgc2VhcmNoIHN0cmluZywg c2ltaWxhcgogICAgIHRvIGluc2VydGluZyBpbnRvIGEgYnVmZmVyIHVzaW5nIOKAmEMtceKAmSAo Km5vdGUgSW5zZXJ0aW5nIFRleHQ6OikuCiAgICAgRm9yIGV4YW1wbGUsIOKAmEMtcSBDLXPigJkg ZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCBhZGRzIHRoZQogICAgIOKAmGNvbnRyb2wtU+KAmSBj aGFyYWN0ZXIgdG8gdGhlIHNlYXJjaCBzdHJpbmcuCgogICDigKIgVHlwZSDigJhDLXggOCA8UkVU PuKAmSwgZm9sbG93ZWQgYnkgYSBVbmljb2RlIG5hbWUgb3IgY29kZS1wb2ludCBpbgogICAgIGhl eC4gIFRoaXMgYWRkcyB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBpbnRvIHRoZSBzZWFyY2ggc3Ry aW5nLAogICAgIHNpbWlsYXIgdG8gdGhlIHVzdWFsIOKAmGluc2VydC1jaGFy4oCZIGNvbW1hbmQg KCpub3RlIEluc2VydGluZwogICAgIFRleHQ6OikuCgogICDigKIgVXNlIGFuIGlucHV0IG1ldGhv ZCAoKm5vdGUgSW5wdXQgTWV0aG9kczo6KS4gIElmIGFuIGlucHV0IG1ldGhvZCBpcwogICAgIGVu YWJsZWQgaW4gdGhlIGN1cnJlbnQgYnVmZmVyIHdoZW4geW91IHN0YXJ0IHRoZSBzZWFyY2gsIHRo ZSBzYW1lCiAgICAgbWV0aG9kIHdpbGwgYmUgYWN0aXZlIGluIHRoZSBtaW5pYnVmZmVyIHdoZW4g eW91IHR5cGUgdGhlIHNlYXJjaAogICAgIHN0cmluZy4gIFdoaWxlIHR5cGluZyB0aGUgc2VhcmNo IHN0cmluZywgeW91IGNhbiB0b2dnbGUgdGhlIGlucHV0CiAgICAgbWV0aG9kIHdpdGgg4oCYQy1c 4oCZICjigJhpc2VhcmNoLXRvZ2dsZS1pbnB1dC1tZXRob2TigJkpLiAgWW91IGNhbiBhbHNvCiAg ICAgdHVybiBvbiBhIG5vbi1kZWZhdWx0IGlucHV0IG1ldGhvZCB3aXRoIOKAmEMtXuKAmQogICAg ICjigJhpc2VhcmNoLXRvZ2dsZS1zcGVjaWZpZWQtaW5wdXQtbWV0aG9k4oCZKSwgd2hpY2ggcHJv bXB0cyBmb3IgdGhlCiAgICAgbmFtZSBvZiB0aGUgaW5wdXQgbWV0aG9kLiAgV2hlbiBhbiBpbnB1 dCBtZXRob2QgaXMgYWN0aXZlIGR1cmluZwogICAgIGluY3JlbWVudGFsIHNlYXJjaCwgdGhlIHNl YXJjaCBwcm9tcHQgaW5jbHVkZXMgdGhlIGlucHV0IG1ldGhvZAogICAgIG1uZW1vbmljLCBsaWtl IHRoaXM6CgogICAgICAgICAgSS1zZWFyY2ggW0lNXToKCiAgICAgd2hlcmUgSU0gaXMgdGhlIG1u ZW1vbmljIG9mIHRoZSBhY3RpdmUgaW5wdXQgbWV0aG9kLiAgQW55IGlucHV0CiAgICAgbWV0aG9k IHlvdSBlbmFibGUgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCByZW1haW5zIGVuYWJsZWQgaW4g dGhlCiAgICAgY3VycmVudCBidWZmZXIgYWZ0ZXJ3YXJkcy4KCiAgIFR5cGluZyDigJhNLXMgb+KA mSBpbiBpbmNyZW1lbnRhbCBzZWFyY2ggaW52b2tlcyDigJhpc2VhcmNoLW9jY3Vy4oCZLCB3aGlj aApydW5zIOKAmG9jY3Vy4oCZIHdpdGggdGhlIGN1cnJlbnQgc2VhcmNoIHN0cmluZy4gICpOb3Rl IG9jY3VyOiBPdGhlcgpSZXBlYXRpbmcgU2VhcmNoLgoKICAgVHlwaW5nIOKAmE0tJeKAmSBpbiBp bmNyZW1lbnRhbCBzZWFyY2ggaW52b2tlcyDigJhxdWVyeS1yZXBsYWNl4oCZIG9yCuKAmHF1ZXJ5 LXJlcGxhY2UtcmVnZXhw4oCZIChkZXBlbmRpbmcgb24gc2VhcmNoIG1vZGUpIHdpdGggdGhlIGN1 cnJlbnQKc2VhcmNoIHN0cmluZyB1c2VkIGFzIHRoZSBzdHJpbmcgdG8gcmVwbGFjZS4gIEEgbmVn YXRpdmUgcHJlZml4IGFyZ3VtZW50Cm1lYW5zIHRvIHJlcGxhY2UgYmFja3dhcmQuICAqTm90ZSBR dWVyeSBSZXBsYWNlOjouCgogICBUeXBpbmcg4oCYTS08VEFCPuKAmSBpbiBpbmNyZW1lbnRhbCBz ZWFyY2ggaW52b2tlcyDigJhpc2VhcmNoLWNvbXBsZXRl4oCZLAp3aGljaCBhdHRlbXB0cyB0byBj b21wbGV0ZSB0aGUgc2VhcmNoIHN0cmluZyB1c2luZyB0aGUgc2VhcmNoIHJpbmcgKHRoZQpwcmV2 aW91cyBzZWFyY2ggc3RyaW5ncyB5b3UgdXNlZCkgYXMgYSBsaXN0IG9mIGNvbXBsZXRpb24gYWx0 ZXJuYXRpdmVzLgoqTm90ZSBDb21wbGV0aW9uOjouICBJbiBtYW55IG9wZXJhdGluZyBzeXN0ZW1z LCB0aGUg4oCYTS08VEFCPuKAmSBrZXkKc2VxdWVuY2UgaXMgY2FwdHVyZWQgYnkgdGhlIHdpbmRv dyBtYW5hZ2VyOyB5b3UgdGhlbiBuZWVkIHRvIHJlYmluZArigJhpc2VhcmNoLWNvbXBsZXRl4oCZ IHRvIGFub3RoZXIga2V5IHNlcXVlbmNlIGlmIHlvdSB3YW50IHRvIHVzZSBpdCAoKm5vdGUKUmVi aW5kaW5nOjopLgoKICAgWW91IGNhbiBleGl0IHRoZSBzZWFyY2ggd2hpbGUgbGVhdmluZyB0aGUg bWF0Y2hlcyBmb3IgdGhlIGxhc3Qgc2VhcmNoCnN0cmluZyBoaWdobGlnaHRlZCBvbiBkaXNwbGF5 LiAgVG8gdGhpcyBlbmQsIHR5cGUg4oCYTS1zIGggcuKAmQoo4oCYaXNlYXJjaC1oaWdobGlnaHQt cmVnZXhw4oCZKSwgd2hpY2ggd2lsbCBydW4g4oCYaGlnaGxpZ2h0LXJlZ2V4cOKAmSAoKm5vdGUK SGlnaGxpZ2h0IEludGVyYWN0aXZlbHk6OikgcGFzc2luZyBpdCB0aGUgcmVnZXhwIGRlcml2ZWQg ZnJvbSB0aGUgbGFzdApzZWFyY2ggc3RyaW5nIGFuZCBwcm9tcHRpbmcgeW91IGZvciB0aGUgZmFj ZSB0byB1c2UgZm9yIGhpZ2hsaWdodGluZy4KVG8gcmVtb3ZlIHRoZSBoaWdobGlnaHRpbmcsIHR5 cGUg4oCYTS1zIGggdeKAmSAo4oCYdW5oaWdobGlnaHQtcmVnZXhw4oCZKS4KCiAgIFdoZW4gaW5j cmVtZW50YWwgc2VhcmNoIGlzIGFjdGl2ZSwgeW91IGNhbiB0eXBlIOKAmEMtaCBDLWjigJkKKOKA mGlzZWFyY2gtaGVscC1tYXDigJkpIHRvIGFjY2VzcyBpbnRlcmFjdGl2ZSBoZWxwIG9wdGlvbnMs IGluY2x1ZGluZyBhCmxpc3Qgb2Ygc3BlY2lhbCBrZXkgYmluZGluZ3MuICBUaGVzZSBrZXkgYmlu ZGluZ3MgYXJlIHBhcnQgb2YgdGhlIGtleW1hcArigJhpc2VhcmNoLW1vZGUtbWFw4oCZICgqbm90 ZSBLZXltYXBzOjopLgoKCioqKiAxNS4xLjYgTm90IEV4aXRpbmcgSW5jcmVtZW50YWwgU2VhcmNo CgpUaGlzIHN1YnNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byBjb250cm9sIHdoZXRoZXIgdHlwaW5n IGEgY29tbWFuZCBub3QKc3BlY2lmaWNhbGx5IG1lYW5pbmdmdWwgaW4gc2VhcmNoZXMgZXhpdHMg dGhlIHNlYXJjaCBiZWZvcmUgZXhlY3V0aW5nCnRoZSBjb21tYW5kLiAgSXQgYWxzbyBkZXNjcmli ZXMgdHdvIGNhdGVnb3JpZXMgb2YgY29tbWFuZHMgd2hpY2ggeW91IGNhbgp0eXBlIHdpdGhvdXQg ZXhpdGluZyB0aGUgY3VycmVudCBpbmNyZW1lbnRhbCBzZWFyY2gsIGV2ZW4gdGhvdWdoIHRoZXkK YXJlIG5vdCB0aGVtc2VsdmVzIHBhcnQgb2YgaW5jcmVtZW50YWwgc2VhcmNoLgoKICAgTm9ybWFs bHksIHR5cGluZyBhIGNvbW1hbmQgdGhhdCBpcyBub3QgYm91bmQgYnkgdGhlIGluY3JlbWVudGFs CnNlYXJjaCBleGl0cyB0aGUgc2VhcmNoIGJlZm9yZSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuICBU aHVzLCB0aGUgY29tbWFuZApvcGVyYXRlcyBvbiB0aGUgYnVmZmVyIGZyb20gd2hpY2ggeW91IGlu dm9rZWQgdGhlIHNlYXJjaC4gIEhvd2V2ZXIsIGlmCnlvdSBjdXN0b21pemUgdGhlIHZhcmlhYmxl IOKAmHNlYXJjaC1leGl0LW9wdGlvbuKAmSB0byDigJhuaWzigJksIHRoZSBjaGFyYWN0ZXJzCndo aWNoIHlvdSB0eXBlIHRoYXQgYXJlIG5vdCBpbnRlcnByZXRlZCBieSB0aGUgaW5jcmVtZW50YWwg c2VhcmNoIGFyZQpzaW1wbHkgYXBwZW5kZWQgdG8gdGhlIHNlYXJjaCBzdHJpbmcuICBUaGlzIGlz IHNvIHlvdSBjb3VsZCBpbmNsdWRlIGluCnRoZSBzZWFyY2ggc3RyaW5nIGNvbnRyb2wgY2hhcmFj dGVycywgc3VjaCBhcyDigJhDLWHigJksIHRoYXQgd291bGQgbm9ybWFsbHkKZXhpdCB0aGUgc2Vh cmNoIGFuZCBpbnZva2UgdGhlIGNvbW1hbmQgYm91bmQgdG8gdGhlbSBvbiB0aGUgYnVmZmVyLgoK UHJlZml4IEFyZ3VtZW50cwogICAgIEluIGluY3JlbWVudGFsIHNlYXJjaCwgd2hlbiB5b3UgdHlw ZSBhIGNvbW1hbmQgdGhhdCBzcGVjaWZpZXMgYQogICAgIHByZWZpeCBhcmd1bWVudCAoKm5vdGUg QXJndW1lbnRzOjopLCBieSBkZWZhdWx0IGl0IHdpbGwgYXBwbHkKICAgICBlaXRoZXIgdG8gdGhl IG5leHQgYWN0aW9uIGluIHRoZSBzZWFyY2ggb3IgdG8gdGhlIGNvbW1hbmQgdGhhdAogICAgIGV4 aXRzIHRoZSBzZWFyY2guICBJbiBvdGhlciB3b3JkcywgZW50ZXJpbmcgYSBwcmVmaXggYXJndW1l bnQgd2lsbAogICAgIG5vdCBieSBpdHNlbGYgdGVybWluYXRlIHRoZSBzZWFyY2guCgogICAgIElu IHByZXZpb3VzIHZlcnNpb25zIG9mIEVtYWNzLCBlbnRlcmluZyBhIHByZWZpeCBhcmd1bWVudCBh bHdheXMKICAgICB0ZXJtaW5hdGVkIHRoZSBzZWFyY2guICBZb3UgY2FuIHJldmVydCB0byB0aGlz IGJlaGF2aW9yIGJ5IHNldHRpbmcKICAgICB0aGUgdmFyaWFibGUg4oCYaXNlYXJjaC1hbGxvdy1w cmVmaXjigJkgdG8g4oCYbmls4oCZLgoKICAgICBXaGVuIOKAmGlzZWFyY2gtYWxsb3ctc2Nyb2xs 4oCZIGlzIG5vbi3igJhuaWzigJkgKHNlZSBiZWxvdyksIHByZWZpeAogICAgIGFyZ3VtZW50cyBh bHdheXMgaGF2ZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBkZXNjcmliZWQgYWJvdmUsIGkuZS4sCiAg ICAgdGhleSBkb27igJl0IHRlcm1pbmF0ZSB0aGUgc2VhcmNoLCBldmVuIGlmIOKAmGlzZWFyY2gt YWxsb3ctcHJlZml44oCZIGlzCiAgICAg4oCYbmls4oCZLgoKU2Nyb2xsaW5nIENvbW1hbmRzCiAg ICAgTm9ybWFsbHksIHNjcm9sbGluZyBjb21tYW5kcyBleGl0IGluY3JlbWVudGFsIHNlYXJjaC4g IElmIHlvdQogICAgIGNoYW5nZSB0aGUgdmFyaWFibGUg4oCYaXNlYXJjaC1hbGxvdy1zY3JvbGzi gJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLAogICAgIHRoYXQgZW5hYmxlcyB0aGUgdXNlIG9m IHRoZSBzY3JvbGwtYmFyLCBhcyB3ZWxsIGFzIGtleWJvYXJkCiAgICAgc2Nyb2xsaW5nIGNvbW1h bmRzIGxpa2Ug4oCYQy124oCZLCDigJhNLXbigJksIGFuZCDigJhDLWzigJkgKCpub3RlCiAgICAg U2Nyb2xsaW5nOjopLiAgVGhpcyBhcHBsaWVzIG9ubHkgdG8gY2FsbGluZyB0aGVzZSBjb21tYW5k cyB2aWEKICAgICB0aGVpciBib3VuZCBrZXkgc2VxdWVuY2Vz4oCUdHlwaW5nIOKAmE0teOKAmSB3 aWxsIHN0aWxsIGV4aXQgdGhlIHNlYXJjaC4KICAgICBZb3UgY2FuIGdpdmUgcHJlZml4IGFyZ3Vt ZW50cyB0byB0aGVzZSBjb21tYW5kcyBpbiB0aGUgdXN1YWwgd2F5LgogICAgIFRoaXMgZmVhdHVy ZSB3b27igJl0IGxldCB5b3Ugc2Nyb2xsIHRoZSBjdXJyZW50IG1hdGNoIG91dCBvZgogICAgIHZp c2liaWxpdHksIGhvd2V2ZXIuCgogICAgIFRoZSDigJhpc2VhcmNoLWFsbG93LXNjcm9sbOKAmSBm ZWF0dXJlIGFsc28gYWZmZWN0cyBzb21lIG90aGVyCiAgICAgY29tbWFuZHMsIHN1Y2ggYXMg4oCY Qy14IDLigJkgKOKAmHNwbGl0LXdpbmRvdy1iZWxvd+KAmSkgYW5kIOKAmEMteCBe4oCZCiAgICAg KOKAmGVubGFyZ2Utd2luZG934oCZKSwgd2hpY2ggZG9u4oCZdCBleGFjdGx5IHNjcm9sbCBidXQg ZG8gYWZmZWN0IHdoZXJlCiAgICAgdGhlIHRleHQgYXBwZWFycyBvbiB0aGUgc2NyZWVuLiAgSXQg YXBwbGllcyB0byBhbnkgY29tbWFuZCB3aG9zZQogICAgIG5hbWUgaGFzIGEgbm9uLeKAmG5pbOKA mSDigJhpc2VhcmNoLXNjcm9sbOKAmSBwcm9wZXJ0eS4gIFNvIHlvdSBjYW4gY29udHJvbAogICAg IHdoaWNoIGNvbW1hbmRzIGFyZSBhZmZlY3RlZCBieSBjaGFuZ2luZyB0aGVzZSBwcm9wZXJ0aWVz LgoKICAgICBGb3IgZXhhbXBsZSwgdG8gbWFrZSDigJhDLWggbOKAmSB1c2FibGUgd2l0aGluIGFu IGluY3JlbWVudGFsIHNlYXJjaCBpbgogICAgIGFsbCBmdXR1cmUgRW1hY3Mgc2Vzc2lvbnMsIHVz ZSDigJhDLWggY+KAmSB0byBmaW5kIHdoYXQgY29tbWFuZCBpdCBydW5zCiAgICAgKCpub3RlIEtl eSBIZWxwOjopLCB3aGljaCBpcyDigJh2aWV3LWxvc3NhZ2XigJkuICBUaGVuIHlvdSBjYW4gcHV0 IHRoZQogICAgIGZvbGxvd2luZyBsaW5lIGluIHlvdXIgaW5pdCBmaWxlICgqbm90ZSBJbml0IEZp bGU6Oik6CgogICAgICAgICAgKHB1dCAndmlldy1sb3NzYWdlICdpc2VhcmNoLXNjcm9sbCB0KQoK ICAgICBUaGlzIGZlYXR1cmUgY2FuIGJlIGFwcGxpZWQgdG8gYW55IGNvbW1hbmQgdGhhdCBkb2Vz buKAmXQgcGVybWFuZW50bHkKICAgICBjaGFuZ2UgcG9pbnQsIHRoZSBidWZmZXIgY29udGVudHMs IHRoZSBtYXRjaCBkYXRhLCB0aGUgY3VycmVudAogICAgIGJ1ZmZlciwgb3IgdGhlIHNlbGVjdGVk IHdpbmRvdyBhbmQgZnJhbWUuICBUaGUgY29tbWFuZCBtdXN0IG5vdAogICAgIGl0c2VsZiBhdHRl bXB0IGFuIGluY3JlbWVudGFsIHNlYXJjaC4gIFRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBpZgog ICAgIOKAmGlzZWFyY2gtYWxsb3ctc2Nyb2xs4oCZIGlzIOKAmG5pbOKAmSAod2hpY2ggaXQgaXMg YnkgZGVmYXVsdCkuCgoKKioqIDE1LjEuNyBTZWFyY2hpbmcgdGhlIE1pbmlidWZmZXIKCklmIHlv dSBzdGFydCBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggd2hpbGUgdGhlIG1pbmlidWZmZXIgaXMgYWN0 aXZlLCBFbWFjcwpzZWFyY2hlcyB0aGUgY29udGVudHMgb2YgdGhlIG1pbmlidWZmZXIuICBVbmxp a2Ugc2VhcmNoaW5nIGFuIG9yZGluYXJ5CmJ1ZmZlciwgdGhlIHNlYXJjaCBzdHJpbmcgaXMgbm90 IHNob3duIGluIHRoZSBlY2hvIGFyZWEsIGJlY2F1c2UgdGhhdCBpcwp1c2VkIHRvIGRpc3BsYXkg dGhlIG1pbmlidWZmZXIuCgogICBJZiBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggZmFpbHMgaW4gdGhl IG1pbmlidWZmZXIsIGl0IHRyaWVzIHNlYXJjaGluZwp0aGUgbWluaWJ1ZmZlciBoaXN0b3J5LiAg Kk5vdGUgTWluaWJ1ZmZlciBIaXN0b3J5OjouICBZb3UgY2FuIHZpc3VhbGl6ZQp0aGUgbWluaWJ1 ZmZlciBhbmQgaXRzIGhpc3RvcnkgYXMgYSBzZXJpZXMgb2YgcGFnZXMsIHdpdGggdGhlIGVhcmxp ZXN0Cmhpc3RvcnkgZWxlbWVudCBvbiB0aGUgZmlyc3QgcGFnZSBhbmQgdGhlIGN1cnJlbnQgbWlu aWJ1ZmZlciBvbiB0aGUgbGFzdApwYWdlLiAgQSBmb3J3YXJkIHNlYXJjaCwg4oCYQy1z4oCZLCBz ZWFyY2hlcyBmb3J3YXJkIHRvIGxhdGVyIHBhZ2VzOyBhCnJldmVyc2Ugc2VhcmNoLCDigJhDLXLi gJksIHNlYXJjaGVzIGJhY2t3YXJkcyB0byBlYXJsaWVyIHBhZ2VzLiAgTGlrZSBpbgpvcmRpbmFy eSBidWZmZXIgc2VhcmNoLCBhIGZhaWxpbmcgc2VhcmNoIGNhbiB3cmFwIGFyb3VuZCwgZ29pbmcg ZnJvbSB0aGUKbGFzdCBwYWdlIHRvIHRoZSBmaXJzdCBwYWdlIG9yIHZpY2UgdmVyc2EuCgogICBX aGVuIHRoZSBjdXJyZW50IG1hdGNoIGlzIG9uIGEgaGlzdG9yeSBlbGVtZW50LCB0aGF0IGhpc3Rv cnkgZWxlbWVudAppcyBwdWxsZWQgaW50byB0aGUgbWluaWJ1ZmZlci4gIElmIHlvdSBleGl0IHRo ZSBpbmNyZW1lbnRhbCBzZWFyY2gKbm9ybWFsbHkgKGUuZy4sIGJ5IHR5cGluZyA8UkVUPiksIGl0 IHJlbWFpbnMgaW4gdGhlIG1pbmlidWZmZXIKYWZ0ZXJ3YXJkcy4gIENhbmNlbGluZyB0aGUgc2Vh cmNoLCB3aXRoIOKAmEMtZ+KAmSwgcmVzdG9yZXMgdGhlIGNvbnRlbnRzIG9mCnRoZSBtaW5pYnVm ZmVyIHdoZW4geW91IGJlZ2FuIHRoZSBzZWFyY2guCgoKKiogMTUuMiBOb25pbmNyZW1lbnRhbCBT ZWFyY2gKCkVtYWNzIGFsc28gaGFzIGNvbnZlbnRpb25hbCBub25pbmNyZW1lbnRhbCBzZWFyY2gg Y29tbWFuZHMsIHdoaWNoCnJlcXVpcmUgeW91IHRvIHR5cGUgdGhlIGVudGlyZSBzZWFyY2ggc3Ry aW5nIGJlZm9yZSBzZWFyY2hpbmcgYmVnaW5zLgoK4oCYQy1zIDxSRVQ+IFNUUklORyA8UkVUPuKA mQogICAgIFNlYXJjaCBmb3IgU1RSSU5HLgrigJhDLXIgPFJFVD4gU1RSSU5HIDxSRVQ+4oCZCiAg ICAgU2VhcmNoIGJhY2t3YXJkIGZvciBTVFJJTkcuCgogICBUbyBzdGFydCBhIG5vbmluY3JlbWVu dGFsIHNlYXJjaCwgZmlyc3QgdHlwZSDigJhDLXMgPFJFVD7igJkuICBUaGlzCmVudGVycyB0aGUg bWluaWJ1ZmZlciB0byByZWFkIHRoZSBzZWFyY2ggc3RyaW5nOyB0ZXJtaW5hdGUgdGhlIHN0cmlu Zwp3aXRoIDxSRVQ+LCBhbmQgdGhlbiB0aGUgc2VhcmNoIHRha2VzIHBsYWNlLiAgSWYgdGhlIHN0 cmluZyBpcyBub3QKZm91bmQsIHRoZSBzZWFyY2ggY29tbWFuZCBzaWduYWxzIGFuIGVycm9yLgoK ICAgV2hlbiB5b3UgdHlwZSDigJhDLXMgPFJFVD7igJksIHRoZSDigJhDLXPigJkgaW52b2tlcyBp bmNyZW1lbnRhbCBzZWFyY2ggYXMKdXN1YWwuICBUaGF0IGNvbW1hbmQgaXMgc3BlY2lhbGx5IHBy b2dyYW1tZWQgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvcgpub25pbmNyZW1lbnRhbCBzZWFyY2gs IGlmIHRoZSBzdHJpbmcgeW91IHNwZWNpZnkgaXMgZW1wdHkuICAoU3VjaCBhbgplbXB0eSBhcmd1 bWVudCB3b3VsZCBvdGhlcndpc2UgYmUgdXNlbGVzcy4pICDigJhDLXIgPFJFVD7igJkgZG9lcyBs aWtld2lzZSwKaW52b2tpbmcgdGhlIG5vbmluY3JlbWVudGFsIGJhY2t3YXJkLXNlYXJjaGluZyBj b21tYW5kLgoKICAgTm9uaW5jcmVtZW50YWwgc2VhcmNoIGNhbiBhbHNvIGJlIGludm9rZWQgZnJv bSB0aGUgbWVudSBiYXLigJlzCuKAmEVkaXQtPlNlYXJjaOKAmSBtZW51LgoKICAgWW91IGNhbiBh bHNvIHVzZSB0d28gc2ltcGxlciBjb21tYW5kcywg4oCYTS14IHNlYXJjaC1mb3J3YXJk4oCZIGFu ZCDigJhNLXgKc2VhcmNoLWJhY2t3YXJk4oCZLiAgVGhlc2UgY29tbWFuZHMgbG9vayBmb3IgdGhl IGxpdGVyYWwgc3RyaW5ncyB5b3UKc3BlY2lmeSwgYW5kIGRvbuKAmXQgc3VwcG9ydCBhbnkgb2Yg dGhlIGxheC1zZWFyY2ggZmVhdHVyZXMgKCpub3RlIExheApTZWFyY2g6OikgZXhjZXB0IGNhc2Ug Zm9sZGluZy4KCgoqKiAxNS4zIFdvcmQgU2VhcmNoCgpBICJ3b3JkIHNlYXJjaCIgZmluZHMgYSBz ZXF1ZW5jZSBvZiB3b3JkcyB3aXRob3V0IHJlZ2FyZCB0byB0aGUgdHlwZSBvZgpwdW5jdHVhdGlv biBiZXR3ZWVuIHRoZW0uICBGb3IgaW5zdGFuY2UsIGlmIHlvdSBlbnRlciBhIHNlYXJjaCBzdHJp bmcKdGhhdCBjb25zaXN0cyBvZiB0d28gd29yZHMgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNl LCB0aGUgc2VhcmNoCm1hdGNoZXMgYW55IHNlcXVlbmNlIG9mIHRob3NlIHR3byB3b3JkcyBzZXBh cmF0ZWQgYnkgb25lIG9yIG1vcmUgc3BhY2VzLApuZXdsaW5lcywgb3Igb3RoZXIgcHVuY3R1YXRp b24gY2hhcmFjdGVycy4gIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bApmb3Igc2VhcmNoaW5n IHRleHQgZG9jdW1lbnRzLCBiZWNhdXNlIHlvdSBkb27igJl0IGhhdmUgdG8gd29ycnkgd2hldGhl cgp0aGUgd29yZHMgeW91IGFyZSBsb29raW5nIGZvciBhcmUgc2VwYXJhdGVkIGJ5IG5ld2xpbmVz IG9yIHNwYWNlcy4gIE5vdGUKdGhhdCBtYWpvciBtb2RlcyBmb3IgcHJvZ3JhbW1pbmcgbGFuZ3Vh Z2VzIG9yIG90aGVyIHNwZWNpYWxpemVkIG1vZGVzCmNhbiBtb2RpZnkgdGhlIGRlZmluaXRpb24g b2YgYSB3b3JkIHRvIHN1aXQgdGhlaXIgc3ludGFjdGljIG5lZWRzLgoK4oCYTS1zIHfigJkKICAg ICBJZiBpbmNyZW1lbnRhbCBzZWFyY2ggaXMgYWN0aXZlLCB0b2dnbGUgd29yZCBzZWFyY2ggbW9k ZQogICAgICjigJhpc2VhcmNoLXRvZ2dsZS13b3Jk4oCZKTsgb3RoZXJ3aXNlLCBiZWdpbiBhbiBp bmNyZW1lbnRhbCBmb3J3YXJkCiAgICAgd29yZCBzZWFyY2ggKOKAmGlzZWFyY2gtZm9yd2FyZC13 b3Jk4oCZKS4K4oCYTS1zIHcgPFJFVD4gV09SRFMgPFJFVD7igJkKICAgICBTZWFyY2ggZm9yIFdP UkRTLCB1c2luZyBhIGZvcndhcmQgbm9uaW5jcmVtZW50YWwgd29yZCBzZWFyY2guCuKAmE0tcyB3 IEMtciA8UkVUPiBXT1JEUyA8UkVUPuKAmQogICAgIFNlYXJjaCBiYWNrd2FyZCBmb3IgV09SRFMs IHVzaW5nIGEgbm9uaW5jcmVtZW50YWwgd29yZCBzZWFyY2guCuKAmE0tcyBNLXfigJkKICAgICBT ZWFyY2ggdGhlIFdlYiBmb3IgdGhlIHRleHQgaW4gcmVnaW9uLgoKICAgVG8gYmVnaW4gYSBmb3J3 YXJkIGluY3JlbWVudGFsIHdvcmQgc2VhcmNoLCB0eXBlIOKAmE0tcyB34oCZLiAgSWYKaW5jcmVt ZW50YWwgc2VhcmNoIGlzIG5vdCBhbHJlYWR5IGFjdGl2ZSwgdGhpcyBydW5zIHRoZSBjb21tYW5k CuKAmGlzZWFyY2gtZm9yd2FyZC13b3Jk4oCZLiAgSWYgaW5jcmVtZW50YWwgc2VhcmNoIGlzIGFs cmVhZHkgYWN0aXZlCih3aGV0aGVyIGEgZm9yd2FyZCBvciBiYWNrd2FyZCBzZWFyY2gpLCDigJhN LXMgd+KAmSBzd2l0Y2hlcyB0byBhIHdvcmQKc2VhcmNoIHdoaWxlIGtlZXBpbmcgdGhlIGRpcmVj dGlvbiBvZiB0aGUgc2VhcmNoIGFuZCB0aGUgY3VycmVudCBzZWFyY2gKc3RyaW5nIHVuY2hhbmdl ZC4gIFlvdSBjYW4gdG9nZ2xlIHdvcmQgc2VhcmNoIGJhY2sgb2ZmIGJ5IHR5cGluZyDigJhNLXMg d+KAmQphZ2Fpbi4KCiAgIFRvIGJlZ2luIGEgbm9uaW5jcmVtZW50YWwgd29yZCBzZWFyY2gsIHR5 cGUg4oCYTS1zIHcgPFJFVD7igJkgZm9yIGEKZm9yd2FyZCBzZWFyY2gsIG9yIOKAmE0tcyB3IEMt ciA8UkVUPuKAmSBmb3IgYSBiYWNrd2FyZCBzZWFyY2guICBUaGVzZSBydW4KdGhlIGNvbW1hbmRz IOKAmHdvcmQtc2VhcmNoLWZvcndhcmTigJkgYW5kIOKAmHdvcmQtc2VhcmNoLWJhY2t3YXJk4oCZ CnJlc3BlY3RpdmVseS4KCiAgIEluY3JlbWVudGFsIGFuZCBub25pbmNyZW1lbnRhbCB3b3JkIHNl YXJjaGVzIGRpZmZlciBzbGlnaHRseSBpbiB0aGUKd2F5IHRoZXkgZmluZCBhIG1hdGNoLiAgSW4g YSBub25pbmNyZW1lbnRhbCB3b3JkIHNlYXJjaCwgZWFjaCB3b3JkIGluCnRoZSBzZWFyY2ggc3Ry aW5nIG11c3QgZXhhY3RseSBtYXRjaCBhIHdob2xlIHdvcmQuICBJbiBhbiBpbmNyZW1lbnRhbAp3 b3JkIHNlYXJjaCwgdGhlIG1hdGNoaW5nIGlzIG1vcmUgbGF4OiB3aGlsZSB5b3UgYXJlIHR5cGlu ZyB0aGUgc2VhcmNoCnN0cmluZywgaXRzIGZpcnN0IGFuZCBsYXN0IHdvcmRzIG5lZWQgbm90IG1h dGNoIHdob2xlIHdvcmRzLiAgVGhpcyBpcyBzbwp0aGF0IHRoZSBtYXRjaGluZyBjYW4gcHJvY2Vl ZCBpbmNyZW1lbnRhbGx5IGFzIHlvdSB0eXBlLiAgVGhpcwphZGRpdGlvbmFsIGxheGl0eSBkb2Vz IG5vdCBhcHBseSB0byB0aGUgbGF6eSBoaWdobGlnaHQgKCpub3RlCkluY3JlbWVudGFsIFNlYXJj aDo6KSwgd2hpY2ggYWx3YXlzIG1hdGNoZXMgd2hvbGUgd29yZHMuICBXaGlsZSB5b3UgYXJlCnR5 cGluZyB0aGUgc2VhcmNoIHN0cmluZywg4oCYUGVuZGluZ+KAmSBhcHBlYXJzIGluIHRoZSBzZWFy Y2ggcHJvbXB0IHVudGlsCnlvdSB1c2UgYSBzZWFyY2ggcmVwZWF0aW5nIGtleSBsaWtlIOKAmEMt c+KAmS4KCiAgIFRoZSB3b3JkIHNlYXJjaCBjb21tYW5kcyBkb27igJl0IHBlcmZvcm0gY2hhcmFj dGVyIGZvbGRpbmcsIGFuZAp0b2dnbGluZyBsYXggd2hpdGVzcGFjZSBtYXRjaGluZyAoKm5vdGUg bGF4IHNwYWNlIG1hdGNoaW5nOiBMYXggU2VhcmNoLikKaGFzIG5vIGVmZmVjdCBvbiB0aGVtLgoK ICAgVG8gc2VhcmNoIHRoZSBXZWIgZm9yIHRoZSB0ZXh0IGluIHJlZ2lvbiwgdHlwZSDigJhNLXMg TS134oCZLiAgVGhpcwpjb21tYW5kIHBlcmZvcm1zIGFuIEludGVybmV0IHNlYXJjaCBmb3IgdGhl IHdvcmRzIGluIHJlZ2lvbiB1c2luZyB0aGUKc2VhcmNoIGVuZ2luZSB3aG9zZSBVUkwgaXMgc3Bl Y2lmaWVkIGJ5IHRoZSB2YXJpYWJsZSDigJhld3ctc2VhcmNoLXByZWZpeOKAmQooKm5vdGUgRVdX OiAoZXd3KUJhc2ljcy4pLiAgSWYgdGhlIHJlZ2lvbiBpcyBub3QgYWN0aXZlLCBvciBkb2VzbuKA mXQKY29udGFpbiBhbnkgd29yZHMsIHRoaXMgY29tbWFuZCBwcm9tcHRzIHRoZSB1c2VyIGZvciBh IFVSTCBvciBrZXl3b3Jkcwp0byBzZWFyY2guCgoKKiogMTUuNCBTeW1ib2wgU2VhcmNoCgpBICJz eW1ib2wgc2VhcmNoIiBpcyBtdWNoIGxpa2UgYW4gb3JkaW5hcnkgc2VhcmNoLCBleGNlcHQgdGhh dCB0aGUKYm91bmRhcmllcyBvZiB0aGUgc2VhcmNoIG11c3QgbWF0Y2ggdGhlIGJvdW5kYXJpZXMg b2YgYSBzeW1ib2wuICBUaGUKbWVhbmluZyBvZiAic3ltYm9sIiBpbiB0aGlzIGNvbnRleHQgZGVw ZW5kcyBvbiB0aGUgbWFqb3IgbW9kZSwgYW5kCnVzdWFsbHkgcmVmZXJzIHRvIGEgc291cmNlIGNv ZGUgdG9rZW4sIHN1Y2ggYXMgYSBMaXNwIHN5bWJvbCBpbiBFbWFjcwpMaXNwIG1vZGUuICBGb3Ig aW5zdGFuY2UsIGlmIHlvdSBwZXJmb3JtIGFuIGluY3JlbWVudGFsIHN5bWJvbCBzZWFyY2gKZm9y IHRoZSBMaXNwIHN5bWJvbCDigJhmb3J3YXJkLXdvcmTigJksIGl0IHdvdWxkIG5vdCBtYXRjaAri gJhpc2VhcmNoLWZvcndhcmQtd29yZOKAmS4gIFRoaXMgZmVhdHVyZSBpcyB0aHVzIG1haW5seSB1 c2VmdWwgZm9yCnNlYXJjaGluZyBzb3VyY2UgY29kZS4KCuKAmE0tcyBf4oCZCiAgICAgSWYgaW5j cmVtZW50YWwgc2VhcmNoIGlzIGFjdGl2ZSwgdG9nZ2xlIHN5bWJvbCBzZWFyY2ggbW9kZQogICAg ICjigJhpc2VhcmNoLXRvZ2dsZS1zeW1ib2zigJkpOyBvdGhlcndpc2UsIGJlZ2luIGFuIGluY3Jl bWVudGFsIGZvcndhcmQKICAgICBzeW1ib2wgc2VhcmNoICjigJhpc2VhcmNoLWZvcndhcmQtc3lt Ym9s4oCZKS4K4oCYTS1zIC7igJkKICAgICBTdGFydCBhIHN5bWJvbCBpbmNyZW1lbnRhbCBzZWFy Y2ggZm9yd2FyZCB3aXRoIHRoZSBzeW1ib2wgZm91bmQKICAgICBuZWFyIHBvaW50IGFkZGVkIHRv IHRoZSBzZWFyY2ggc3RyaW5nIGluaXRpYWxseS4K4oCYTS1zIF8gPFJFVD4gU1lNQk9MIDxSRVQ+ 4oCZCiAgICAgU2VhcmNoIGZvcndhcmQgZm9yIFNZTUJPTCwgbm9uaW5jcmVtZW50YWxseS4K4oCY TS1zIF8gQy1yIDxSRVQ+IFNZTUJPTCA8UkVUPuKAmQogICAgIFNlYXJjaCBiYWNrd2FyZCBmb3Ig U1lNQk9MLCBub25pbmNyZW1lbnRhbGx5LgoKICAgVG8gYmVnaW4gYSBmb3J3YXJkIGluY3JlbWVu dGFsIHN5bWJvbCBzZWFyY2gsIHR5cGUg4oCYTS1zIF/igJkgKG9yIOKAmE0tcwou4oCZIGlmIHRo ZSBzeW1ib2wgdG8gc2VhcmNoIGlzIG5lYXIgcG9pbnQpLiAgSWYgaW5jcmVtZW50YWwgc2VhcmNo IGlzIG5vdAphbHJlYWR5IGFjdGl2ZSwgdGhpcyBydW5zIHRoZSBjb21tYW5kIOKAmGlzZWFyY2gt Zm9yd2FyZC1zeW1ib2zigJkuICBJZgppbmNyZW1lbnRhbCBzZWFyY2ggaXMgYWxyZWFkeSBhY3Rp dmUsIOKAmE0tcyBf4oCZIHN3aXRjaGVzIHRvIGEgc3ltYm9sCnNlYXJjaCwgcHJlc2VydmluZyB0 aGUgZGlyZWN0aW9uIG9mIHRoZSBzZWFyY2ggYW5kIHRoZSBjdXJyZW50IHNlYXJjaApzdHJpbmc7 IHlvdSBjYW4gZGlzYWJsZSBzeW1ib2wgc2VhcmNoIGJ5IHR5cGluZyDigJhNLXMgX+KAmSBhZ2Fp bi4gIEluCmluY3JlbWVudGFsIHN5bWJvbCBzZWFyY2gsIHdoaWxlIHlvdSBhcmUgdHlwaW5nIHRo ZSBzZWFyY2ggc3RyaW5nLCBvbmx5CnRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlYXJjaCBzdHJpbmcg aXMgcmVxdWlyZWQgdG8gbWF0Y2ggdGhlIGJlZ2lubmluZyBvZgphIHN5bWJvbCwgYW5kIOKAmFBl bmRpbmfigJkgYXBwZWFycyBpbiB0aGUgc2VhcmNoIHByb21wdCB1bnRpbCB5b3UgdXNlIGEKc2Vh cmNoIHJlcGVhdGluZyBrZXkgbGlrZSDigJhDLXPigJkuCgogICBUbyBiZWdpbiBhIG5vbmluY3Jl bWVudGFsIHN5bWJvbCBzZWFyY2gsIHR5cGUg4oCYTS1zIF8gPFJFVD7igJkgZm9yIGEKZm9yd2Fy ZCBzZWFyY2gsIG9yIOKAmE0tcyBfIEMtciA8UkVUPuKAmSBvciBhIGJhY2t3YXJkIHNlYXJjaC4g IEluCm5vbmluY3JlbWVudGFsIHN5bWJvbCBzZWFyY2hlcywgdGhlIGJlZ2lubmluZyBhbmQgZW5k IG9mIHRoZSBzZWFyY2gKc3RyaW5nIGFyZSByZXF1aXJlZCB0byBtYXRjaCB0aGUgYmVnaW5uaW5n IGFuZCBlbmQgb2YgYSBzeW1ib2wsCnJlc3BlY3RpdmVseS4KCiAgIFRoZSBzeW1ib2wgc2VhcmNo IGNvbW1hbmRzIGRvbuKAmXQgcGVyZm9ybSBjaGFyYWN0ZXIgZm9sZGluZywgYW5kCnRvZ2dsaW5n IGxheCB3aGl0ZXNwYWNlIG1hdGNoaW5nICgqbm90ZSBsYXggc3BhY2UgbWF0Y2hpbmc6IExheCBT ZWFyY2guKQpoYXMgbm8gZWZmZWN0IG9uIHRoZW0uCgoKKiogMTUuNSBSZWd1bGFyIEV4cHJlc3Np b24gU2VhcmNoCgpBICJyZWd1bGFyIGV4cHJlc3Npb24iIChvciAicmVnZXhwIiBmb3Igc2hvcnQp IGlzIGEgcGF0dGVybiB0aGF0IGRlbm90ZXMKYSBjbGFzcyBvZiBhbHRlcm5hdGl2ZSBzdHJpbmdz IHRvIG1hdGNoLiAgRW1hY3MgcHJvdmlkZXMgYm90aAppbmNyZW1lbnRhbCBhbmQgbm9uaW5jcmVt ZW50YWwgd2F5cyB0byBzZWFyY2ggZm9yIGEgbWF0Y2ggZm9yIGEgcmVnZXhwLgpUaGUgc3ludGF4 IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaXMgZXhwbGFpbmVkIGluIHRoZSBuZXh0IHNlY3Rpb24u CgrigJhDLU0tc+KAmQogICAgIEJlZ2luIGluY3JlbWVudGFsIHJlZ2V4cCBzZWFyY2ggKOKAmGlz ZWFyY2gtZm9yd2FyZC1yZWdleHDigJkpLgrigJhDLU0tcuKAmQogICAgIEJlZ2luIHJldmVyc2Ug aW5jcmVtZW50YWwgcmVnZXhwIHNlYXJjaAogICAgICjigJhpc2VhcmNoLWJhY2t3YXJkLXJlZ2V4 cOKAmSkuCgogICBJbmNyZW1lbnRhbCBzZWFyY2ggZm9yIGEgcmVnZXhwIGlzIGRvbmUgYnkgdHlw aW5nIOKAmEMtTS1z4oCZCijigJhpc2VhcmNoLWZvcndhcmQtcmVnZXhw4oCZKSwgYnkgaW52b2tp bmcg4oCYQy1z4oCZIHdpdGggYSBwcmVmaXggYXJndW1lbnQKKHdob3NlIHZhbHVlIGRvZXMgbm90 IG1hdHRlciksIG9yIGJ5IHR5cGluZyDigJhNLXLigJkgd2l0aGluIGEgZm9yd2FyZAppbmNyZW1l bnRhbCBzZWFyY2guICBUaGlzIGNvbW1hbmQgcmVhZHMgYSBzZWFyY2ggc3RyaW5nIGluY3JlbWVu dGFsbHkKanVzdCBsaWtlIOKAmEMtc+KAmSwgYnV0IGl0IHRyZWF0cyB0aGUgc2VhcmNoIHN0cmlu ZyBhcyBhIHJlZ2V4cCByYXRoZXIgdGhhbgpsb29raW5nIGZvciBhbiBleGFjdCBtYXRjaCBhZ2Fp bnN0IHRoZSB0ZXh0IGluIHRoZSBidWZmZXIuICBFYWNoIHRpbWUKeW91IGFkZCB0ZXh0IHRvIHRo ZSBzZWFyY2ggc3RyaW5nLCB5b3UgbWFrZSB0aGUgcmVnZXhwIGxvbmdlciwgYW5kIHRoZQpuZXcg cmVnZXhwIGlzIHNlYXJjaGVkIGZvci4gIFRvIHNlYXJjaCBiYWNrd2FyZCBmb3IgYSByZWdleHAs IHVzZQrigJhDLU0tcuKAmSAo4oCYaXNlYXJjaC1iYWNrd2FyZC1yZWdleHDigJkpLCDigJhDLXLi gJkgd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgb3IK4oCYTS1y4oCZIHdpdGhpbiBhIGJhY2t3YXJk IGluY3JlbWVudGFsIHNlYXJjaC4KCiAgIEFsbCBvZiB0aGUgc3BlY2lhbCBrZXkgc2VxdWVuY2Vz IGluIGFuIG9yZGluYXJ5IGluY3JlbWVudGFsIHNlYXJjaAooKm5vdGUgU3BlY2lhbCBJc2VhcmNo OjopIGRvIHNpbWlsYXIgdGhpbmdzIGluIGFuIGluY3JlbWVudGFsIHJlZ2V4cApzZWFyY2guICBG b3IgaW5zdGFuY2UsIHR5cGluZyDigJhDLXPigJkgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhcnRpbmcg dGhlCnNlYXJjaCByZXRyaWV2ZXMgdGhlIGxhc3QgaW5jcmVtZW50YWwgc2VhcmNoIHJlZ2V4cCB1 c2VkIGFuZCBzZWFyY2hlcwpmb3J3YXJkIGZvciBpdC4gIEluY3JlbWVudGFsIHJlZ2V4cCBhbmQg bm9uLXJlZ2V4cCBzZWFyY2hlcyBoYXZlCmluZGVwZW5kZW50IGRlZmF1bHRzLiAgVGhleSBhbHNv IGhhdmUgc2VwYXJhdGUgc2VhcmNoIHJpbmdzLCB3aGljaCB5b3UKY2FuIGFjY2VzcyB3aXRoIOKA mE0tcOKAmSBhbmQg4oCYTS1u4oCZLiAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHNlYXJjaCByZWdl eHBzCnNhdmVkIGluIHRoZSBzZWFyY2ggcmluZyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBv ZgrigJhyZWdleHAtc2VhcmNoLXJpbmctbWF44oCZLCAxNiBieSBkZWZhdWx0LgoKICAgVW5saWtl IG9yZGluYXJ5IGluY3JlbWVudGFsIHNlYXJjaCwgaW5jcmVtZW50YWwgcmVnZXhwIHNlYXJjaCBk b2VzCm5vdCB1c2UgbGF4IHNwYWNlIG1hdGNoaW5nIGJ5IGRlZmF1bHQuICBUbyB0b2dnbGUgdGhp cyBmZWF0dXJlIHVzZSDigJhNLXMKPFNQQz7igJkgKOKAmGlzZWFyY2gtdG9nZ2xlLWxheC13aGl0 ZXNwYWNl4oCZKS4gIFRoZW4gYW55IDxTUEM+IHR5cGVkIGluCmluY3JlbWVudGFsIHJlZ2V4cCBz ZWFyY2ggd2lsbCBtYXRjaCBhbnkgc2VxdWVuY2Ugb2Ygb25lIG9yIG1vcmUKd2hpdGVzcGFjZSBj aGFyYWN0ZXJzLiAgVGhlIHZhcmlhYmxlIOKAmHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cOKAmQpz cGVjaWZpZXMgdGhlIHJlZ2V4cCBmb3IgdGhlIGxheCBzcGFjZSBtYXRjaGluZy4gICpOb3RlIFNw ZWNpYWwKSXNlYXJjaDo6LgoKICAgQWxzbyB1bmxpa2Ugb3JkaW5hcnkgaW5jcmVtZW50YWwgc2Vh cmNoLCBpbmNyZW1lbnRhbCByZWdleHAgc2VhcmNoCmNhbm5vdCB1c2UgY2hhcmFjdGVyIGZvbGRp bmcgKCpub3RlIExheCBTZWFyY2g6OikuICAoSWYgeW91IHRvZ2dsZQpjaGFyYWN0ZXIgZm9sZGlu ZyBkdXJpbmcgaW5jcmVtZW50YWwgcmVnZXhwIHNlYXJjaCB3aXRoIOKAmE0tcyAn4oCZLCB0aGUK c2VhcmNoIGJlY29tZXMgYSBub24tcmVnZXhwIHNlYXJjaCBhbmQgdGhlIHNlYXJjaCBwYXR0ZXJu IHlvdSB0eXBlZCBpcwppbnRlcnByZXRlZCBhcyBhIGxpdGVyYWwgc3RyaW5nLikKCiAgIEluIHNv bWUgY2FzZXMsIGFkZGluZyBjaGFyYWN0ZXJzIHRvIHRoZSByZWdleHAgaW4gYW4gaW5jcmVtZW50 YWwKcmVnZXhwIHNlYXJjaCBjYW4gbWFrZSB0aGUgY3Vyc29yIG1vdmUgYmFjayBhbmQgc3RhcnQg YWdhaW4uICBGb3IKZXhhbXBsZSwgaWYgeW91IGhhdmUgc2VhcmNoZWQgZm9yIOKAmGZvb+KAmSBh bmQgeW91IGFkZCDigJhcfGJhcuKAmSwgdGhlIGN1cnNvcgpiYWNrcyB1cCBpbiBjYXNlIHRoZSBm aXJzdCDigJhiYXLigJkgcHJlY2VkZXMgdGhlIGZpcnN0IOKAmGZvb+KAmS4gICpOb3RlClJlZ2V4 cHM6Oi4KCiAgIEZvcndhcmQgYW5kIGJhY2t3YXJkIHJlZ2V4cCBzZWFyY2ggYXJlIG5vdCBzeW1t ZXRyaWNhbCwgYmVjYXVzZQpyZWdleHAgbWF0Y2hpbmcgaW4gRW1hY3MgYWx3YXlzIG9wZXJhdGVz IGZvcndhcmQsIHN0YXJ0aW5nIHdpdGggdGhlCmJlZ2lubmluZyBvZiB0aGUgcmVnZXhwLiAgVGh1 cywgZm9yd2FyZCByZWdleHAgc2VhcmNoIHNjYW5zIGZvcndhcmQsCnRyeWluZyBhIGZvcndhcmQg bWF0Y2ggYXQgZWFjaCBwb3NzaWJsZSBzdGFydGluZyBwb3NpdGlvbi4gIEJhY2t3YXJkCnJlZ2V4 cCBzZWFyY2ggc2NhbnMgYmFja3dhcmQsIHRyeWluZyBhIGZvcndhcmQgbWF0Y2ggYXQgZWFjaCBw b3NzaWJsZQpzdGFydGluZyBwb3NpdGlvbi4gIFRoZXNlIHNlYXJjaCBtZXRob2RzIGFyZSBub3Qg bWlycm9yIGltYWdlcy4KCiAgIE5vbmluY3JlbWVudGFsIHNlYXJjaCBmb3IgYSByZWdleHAgaXMg ZG9uZSB3aXRoIHRoZSBjb21tYW5kcwrigJhyZS1zZWFyY2gtZm9yd2FyZOKAmSBhbmQg4oCYcmUt c2VhcmNoLWJhY2t3YXJk4oCZLiAgWW91IGNhbiBpbnZva2UgdGhlc2Ugd2l0aArigJhNLXjigJks IG9yIGJ5IHdheSBvZiBpbmNyZW1lbnRhbCByZWdleHAgc2VhcmNoIHdpdGgg4oCYQy1NLXMgPFJF VD7igJkgYW5kCuKAmEMtTS1yIDxSRVQ+4oCZLiAgV2hlbiB5b3UgaW52b2tlIHRoZXNlIGNvbW1h bmRzIHdpdGgg4oCYTS144oCZLCB0aGV5IHNlYXJjaApmb3IgdGhlIGV4YWN0IHJlZ2V4cCB5b3Ug c3BlY2lmeSwgYW5kIHRodXMgZG9u4oCZdCBzdXBwb3J0IGFueSBsYXgtc2VhcmNoCmZlYXR1cmVz ICgqbm90ZSBMYXggU2VhcmNoOjopIGV4Y2VwdCBjYXNlIGZvbGRpbmcuCgogICBJZiB5b3UgdXNl IHRoZSBpbmNyZW1lbnRhbCByZWdleHAgc2VhcmNoIGNvbW1hbmRzIHdpdGggYSBwcmVmaXgKYXJn dW1lbnQsIHRoZXkgcGVyZm9ybSBvcmRpbmFyeSBzdHJpbmcgc2VhcmNoLCBsaWtlIOKAmGlzZWFy Y2gtZm9yd2FyZOKAmQphbmQg4oCYaXNlYXJjaC1iYWNrd2FyZOKAmS4gICpOb3RlIEluY3JlbWVu dGFsIFNlYXJjaDo6LgoKCioqIDE1LjYgU3ludGF4IG9mIFJlZ3VsYXIgRXhwcmVzc2lvbnMKClRo aXMgc2VjdGlvbiAoYW5kIHRoaXMgbWFudWFsIGluIGdlbmVyYWwpIGRlc2NyaWJlcyByZWd1bGFy IGV4cHJlc3Npb24KZmVhdHVyZXMgdGhhdCB1c2VycyB0eXBpY2FsbHkgdXNlLiAgKk5vdGUgKGVs aXNwKVJlZ3VsYXIgRXhwcmVzc2lvbnM6OiwKZm9yIGFkZGl0aW9uYWwgZmVhdHVyZXMgdXNlZCBt YWlubHkgaW4gTGlzcCBwcm9ncmFtcy4KCiAgIFJlZ3VsYXIgZXhwcmVzc2lvbnMgaGF2ZSBhIHN5 bnRheCBpbiB3aGljaCBhIGZldyBjaGFyYWN0ZXJzIGFyZQpzcGVjaWFsIGNvbnN0cnVjdHMgYW5k IHRoZSByZXN0IGFyZSAib3JkaW5hcnkiLiAgQW4gb3JkaW5hcnkgY2hhcmFjdGVyCm1hdGNoZXMg dGhhdCBzYW1lIGNoYXJhY3RlciBhbmQgbm90aGluZyBlbHNlLiAgVGhlIHNwZWNpYWwgY2hhcmFj dGVycwphcmUg4oCYJF4uKis/W1zigJkuICBUaGUgY2hhcmFjdGVyIOKAmF3igJkgaXMgc3BlY2lh bCBpZiBpdCBlbmRzIGEgY2hhcmFjdGVyCmFsdGVybmF0aXZlIChzZWUgYmVsb3cpLiAgVGhlIGNo YXJhY3RlciDigJgt4oCZIGlzIHNwZWNpYWwgaW5zaWRlIGEKY2hhcmFjdGVyIGFsdGVybmF0aXZl LiAgQW55IG90aGVyIGNoYXJhY3RlciBhcHBlYXJpbmcgaW4gYSByZWd1bGFyCmV4cHJlc3Npb24g aXMgb3JkaW5hcnksIHVubGVzcyBhIOKAmFzigJkgcHJlY2VkZXMgaXQuICAoV2hlbiB5b3UgdXNl IHJlZ3VsYXIKZXhwcmVzc2lvbnMgaW4gYSBMaXNwIHByb2dyYW0sIGVhY2gg4oCYXOKAmSBtdXN0 IGJlIGRvdWJsZWQsIHNlZSB0aGUgZXhhbXBsZQpuZWFyIHRoZSBlbmQgb2YgdGhpcyBzZWN0aW9u LikKCiAgIEZvciBleGFtcGxlLCDigJhm4oCZIGlzIG5vdCBhIHNwZWNpYWwgY2hhcmFjdGVyLCBz byBpdCBpcyBvcmRpbmFyeSwgYW5kCnRoZXJlZm9yZSDigJhm4oCZIGlzIGEgcmVndWxhciBleHBy ZXNzaW9uIHRoYXQgbWF0Y2hlcyB0aGUgc3RyaW5nIOKAmGbigJkgYW5kIG5vCm90aGVyIHN0cmlu Zy4gIChJdCBkb2VzIF9ub3RfIG1hdGNoIHRoZSBzdHJpbmcg4oCYZmbigJkuKSAgTGlrZXdpc2Us IOKAmG/igJkgaXMKYSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtYXRjaGVzIG9ubHkg4oCYb+KA mS4gIChXaGVuIGNhc2UgZGlzdGluY3Rpb25zIGFyZQpiZWluZyBpZ25vcmVkLCB0aGVzZSByZWdl eHBzIGFsc28gbWF0Y2gg4oCYRuKAmSBhbmQg4oCYT+KAmSwgYnV0IHdlIGNvbnNpZGVyCnRoaXMg YSBnZW5lcmFsaXphdGlvbiBvZiDigJx0aGUgc2FtZSBzdHJpbmfigJ0sIHJhdGhlciB0aGFuIGFu IGV4Y2VwdGlvbi4pCgogICBBbnkgdHdvIHJlZ3VsYXIgZXhwcmVzc2lvbnMgQSBhbmQgQiBjYW4g YmUgY29uY2F0ZW5hdGVkLiAgVGhlIHJlc3VsdAppcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aGlj aCBtYXRjaGVzIGEgc3RyaW5nIGlmIEEgbWF0Y2hlcyBzb21lIGFtb3VudApvZiB0aGUgYmVnaW5u aW5nIG9mIHRoYXQgc3RyaW5nIGFuZCBCIG1hdGNoZXMgdGhlIHJlc3Qgb2YgdGhlIHN0cmluZy4K QXMgYSB0cml2aWFsIGV4YW1wbGUsIGNvbmNhdGVuYXRpbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lv bnMg4oCYZuKAmSBhbmQg4oCYb+KAmQpnaXZlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIOKAmGZv 4oCZLCB3aGljaCBtYXRjaGVzIG9ubHkgdGhlIHN0cmluZyDigJhmb+KAmS4KVG8gZG8gc29tZXRo aW5nIGxlc3MgdHJpdmlhbCwgeW91IG5lZWQgdG8gdXNlIG9uZSBvZiB0aGUgc3BlY2lhbApjaGFy YWN0ZXJzLiAgSGVyZSBpcyBhIGxpc3Qgb2YgdGhlbS4KCuKAmC7igJkgKFBlcmlvZCkKICAgICBp cyBhIHNwZWNpYWwgY2hhcmFjdGVyIHRoYXQgbWF0Y2hlcyBhbnkgc2luZ2xlIGNoYXJhY3RlciBl eGNlcHQgYQogICAgIG5ld2xpbmUuICBGb3IgZXhhbXBsZSwgdGhlIHJlZ3VsYXIgZXhwcmVzc2lv bnMg4oCYYS5i4oCZIG1hdGNoZXMgYW55CiAgICAgdGhyZWUtY2hhcmFjdGVyIHN0cmluZyB0aGF0 IGJlZ2lucyB3aXRoIOKAmGHigJkgYW5kIGVuZHMgd2l0aCDigJhi4oCZLgoK4oCYKuKAmQogICAg IGlzIG5vdCBhIGNvbnN0cnVjdCBieSBpdHNlbGY7IGl0IGlzIGEgcG9zdGZpeCBvcGVyYXRvciB0 aGF0IG1lYW5zCiAgICAgdG8gbWF0Y2ggdGhlIHByZWNlZGluZyByZWd1bGFyIGV4cHJlc3Npb24g cmVwZXRpdGl2ZWx5IGFueSBudW1iZXIKICAgICBvZiB0aW1lcywgYXMgbWFueSB0aW1lcyBhcyBw b3NzaWJsZS4gIFRodXMsIOKAmG8q4oCZIG1hdGNoZXMgYW55IG51bWJlcgogICAgIG9mIOKAmG/i gJlzLCBpbmNsdWRpbmcgbm8g4oCYb+KAmXMuCgogICAgIOKAmCrigJkgYWx3YXlzIGFwcGxpZXMg dG8gdGhlIF9zbWFsbGVzdF8gcG9zc2libGUgcHJlY2VkaW5nIGV4cHJlc3Npb24uCiAgICAgVGh1 cywg4oCYZm8q4oCZIGhhcyBhIHJlcGVhdGluZyDigJhv4oCZLCBub3QgYSByZXBlYXRpbmcg4oCY Zm/igJkuICBJdCBtYXRjaGVzCiAgICAg4oCYZuKAmSwg4oCYZm/igJksIOKAmGZvb+KAmSwgYW5k IHNvIG9uLgoKICAgICBUaGUgbWF0Y2hlciBwcm9jZXNzZXMgYSDigJgq4oCZIGNvbnN0cnVjdCBi eSBtYXRjaGluZywgaW1tZWRpYXRlbHksIGFzCiAgICAgbWFueSByZXBldGl0aW9ucyBhcyBjYW4g YmUgZm91bmQuICBUaGVuIGl0IGNvbnRpbnVlcyB3aXRoIHRoZSByZXN0CiAgICAgb2YgdGhlIHBh dHRlcm4uICBJZiB0aGF0IGZhaWxzLCBiYWNrdHJhY2tpbmcgb2NjdXJzLCBkaXNjYXJkaW5nCiAg ICAgc29tZSBvZiB0aGUgbWF0Y2hlcyBvZiB0aGUg4oCYKuKAmS1tb2RpZmllZCBjb25zdHJ1Y3Qg aW4gY2FzZSB0aGF0CiAgICAgbWFrZXMgaXQgcG9zc2libGUgdG8gbWF0Y2ggdGhlIHJlc3Qgb2Yg dGhlIHBhdHRlcm4uICBGb3IgZXhhbXBsZSwKICAgICBpbiBtYXRjaGluZyDigJhjYSphcuKAmSBh Z2FpbnN0IHRoZSBzdHJpbmcg4oCYY2FhYXLigJksIHRoZSDigJhhKuKAmSBmaXJzdAogICAgIHRy aWVzIHRvIG1hdGNoIGFsbCB0aHJlZSDigJhh4oCZczsgYnV0IHRoZSByZXN0IG9mIHRoZSBwYXR0 ZXJuIGlzIOKAmGFy4oCZCiAgICAgYW5kIHRoZXJlIGlzIG9ubHkg4oCYcuKAmSBsZWZ0IHRvIG1h dGNoLCBzbyB0aGlzIHRyeSBmYWlscy4gIFRoZSBuZXh0CiAgICAgYWx0ZXJuYXRpdmUgaXMgZm9y IOKAmGEq4oCZIHRvIG1hdGNoIG9ubHkgdHdvIOKAmGHigJlzLiAgV2l0aCB0aGlzIGNob2ljZSwK ICAgICB0aGUgcmVzdCBvZiB0aGUgcmVnZXhwIG1hdGNoZXMgc3VjY2Vzc2Z1bGx5LgoK4oCYK+KA mQogICAgIGlzIGEgcG9zdGZpeCBvcGVyYXRvciwgc2ltaWxhciB0byDigJgq4oCZIGV4Y2VwdCB0 aGF0IGl0IG11c3QgbWF0Y2ggdGhlCiAgICAgcHJlY2VkaW5nIGV4cHJlc3Npb24gYXQgbGVhc3Qg b25jZS4gIFRodXMsIOKAmGNhK3LigJkgbWF0Y2hlcyB0aGUKICAgICBzdHJpbmdzIOKAmGNhcuKA mSBhbmQg4oCYY2FhYWFy4oCZIGJ1dCBub3QgdGhlIHN0cmluZyDigJhjcuKAmSwgd2hlcmVhcyDi gJhjYSpy4oCZCiAgICAgbWF0Y2hlcyBhbGwgdGhyZWUgc3RyaW5ncy4KCuKAmD/igJkKICAgICBp cyBhIHBvc3RmaXggb3BlcmF0b3IsIHNpbWlsYXIgdG8g4oCYKuKAmSBleGNlcHQgdGhhdCBpdCBj YW4gbWF0Y2ggdGhlCiAgICAgcHJlY2VkaW5nIGV4cHJlc3Npb24gZWl0aGVyIG9uY2Ugb3Igbm90 IGF0IGFsbC4gIFRodXMsIOKAmGNhP3LigJkKICAgICBtYXRjaGVzIOKAmGNhcuKAmSBvciDigJhj cuKAmSwgYW5kIG5vdGhpbmcgZWxzZS4KCuKAmCo/4oCZLCDigJgrP+KAmSwg4oCYPz/igJkKICAg ICBhcmUgbm9uLSJncmVlZHkiIHZhcmlhbnRzIG9mIHRoZSBvcGVyYXRvcnMgYWJvdmUuICBUaGUg bm9ybWFsCiAgICAgb3BlcmF0b3JzIOKAmCrigJksIOKAmCvigJksIOKAmD/igJkgbWF0Y2ggYXMg bXVjaCBhcyB0aGV5IGNhbiwgYXMgbG9uZyBhcyB0aGUKICAgICBvdmVyYWxsIHJlZ2V4cCBjYW4g c3RpbGwgbWF0Y2guICBXaXRoIGEgZm9sbG93aW5nIOKAmD/igJksIHRoZXkgd2lsbAogICAgIG1h dGNoIGFzIGxpdHRsZSBhcyBwb3NzaWJsZS4KCiAgICAgVGh1cywgYm90aCDigJhhYirigJkgYW5k IOKAmGFiKj/igJkgY2FuIG1hdGNoIHRoZSBzdHJpbmcg4oCYYeKAmSBhbmQgdGhlIHN0cmluZwog ICAgIOKAmGFiYmJi4oCZOyBidXQgaWYgeW91IHRyeSB0byBtYXRjaCB0aGVtIGJvdGggYWdhaW5z dCB0aGUgdGV4dCDigJhhYmJi4oCZLAogICAgIOKAmGFiKuKAmSB3aWxsIG1hdGNoIGl0IGFsbCAo dGhlIGxvbmdlc3QgdmFsaWQgbWF0Y2gpLCB3aGlsZSDigJhhYio/4oCZCiAgICAgd2lsbCBtYXRj aCBqdXN0IOKAmGHigJkgKHRoZSBzaG9ydGVzdCB2YWxpZCBtYXRjaCkuCgogICAgIE5vbi1ncmVl ZHkgb3BlcmF0b3JzIG1hdGNoIHRoZSBzaG9ydGVzdCBwb3NzaWJsZSBzdHJpbmcgc3RhcnRpbmcg YXQKICAgICBhIGdpdmVuIHN0YXJ0aW5nIHBvaW50OyBpbiBhIGZvcndhcmQgc2VhcmNoLCB0aG91 Z2gsIHRoZSBlYXJsaWVzdAogICAgIHBvc3NpYmxlIHN0YXJ0aW5nIHBvaW50IGZvciBtYXRjaCBp cyBhbHdheXMgdGhlIG9uZSBjaG9zZW4uICBUaHVzLAogICAgIGlmIHlvdSBzZWFyY2ggZm9yIOKA mGEuKj8k4oCZIGFnYWluc3QgdGhlIHRleHQg4oCYYWJiYWLigJkgZm9sbG93ZWQgYnkgYQogICAg IG5ld2xpbmUsIGl0IG1hdGNoZXMgdGhlIHdob2xlIHN0cmluZy4gIFNpbmNlIGl0IF9jYW5fIG1h dGNoCiAgICAgc3RhcnRpbmcgYXQgdGhlIGZpcnN0IOKAmGHigJksIGl0IGRvZXMuCgrigJhce05c feKAmQogICAgIGlzIGEgcG9zdGZpeCBvcGVyYXRvciBzcGVjaWZ5aW5nIE4gcmVwZXRpdGlvbnPi gJR0aGF0IGlzLCB0aGUKICAgICBwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIG11c3QgbWF0 Y2ggZXhhY3RseSBOIHRpbWVzIGluIGEgcm93LgogICAgIEZvciBleGFtcGxlLCDigJh4XHs0XH3i gJkgbWF0Y2hlcyB0aGUgc3RyaW5nIOKAmHh4eHjigJkgYW5kIG5vdGhpbmcgZWxzZS4KCuKAmFx7 TixNXH3igJkKICAgICBpcyBhIHBvc3RmaXggb3BlcmF0b3Igc3BlY2lmeWluZyBiZXR3ZWVuIE4g YW5kIE0gcmVwZXRpdGlvbnPigJR0aGF0CiAgICAgaXMsIHRoZSBwcmVjZWRpbmcgcmVndWxhciBl eHByZXNzaW9uIG11c3QgbWF0Y2ggYXQgbGVhc3QgTiB0aW1lcywKICAgICBidXQgbm8gbW9yZSB0 aGFuIE0gdGltZXMuICBJZiBNIGlzIG9taXR0ZWQsIHRoZW4gdGhlcmUgaXMgbm8gdXBwZXIKICAg ICBsaW1pdCwgYnV0IHRoZSBwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIG11c3QgbWF0Y2gg YXQgbGVhc3QgTgogICAgIHRpbWVzLgogICAgIOKAmFx7MCwxXH3igJkgaXMgZXF1aXZhbGVudCB0 byDigJg/4oCZLgogICAgIOKAmFx7MCxcfeKAmSBpcyBlcXVpdmFsZW50IHRvIOKAmCrigJkuCiAg ICAg4oCYXHsxLFx94oCZIGlzIGVxdWl2YWxlbnQgdG8g4oCYK+KAmS4KCuKAmFsg4oCmIF3igJkK ICAgICBpcyBhICJjaGFyYWN0ZXIgc2V0IiwgYmVnaW5uaW5nIHdpdGgg4oCYW+KAmSBhbmQgdGVy bWluYXRlZCBieSDigJhd4oCZLgoKICAgICBJbiB0aGUgc2ltcGxlc3QgY2FzZSwgdGhlIGNoYXJh Y3RlcnMgYmV0d2VlbiB0aGUgdHdvIGJyYWNrZXRzIGFyZQogICAgIHdoYXQgdGhpcyBzZXQgY2Fu IG1hdGNoLiAgVGh1cywg4oCYW2FkXeKAmSBtYXRjaGVzIGVpdGhlciBvbmUg4oCYYeKAmSBvcgog ICAgIG9uZSDigJhk4oCZLCBhbmQg4oCYW2FkXSrigJkgbWF0Y2hlcyBhbnkgc3RyaW5nIGNvbXBv c2VkIG9mIGp1c3Qg4oCYYeKAmXMgYW5kCiAgICAg4oCYZOKAmXMgKGluY2x1ZGluZyB0aGUgZW1w dHkgc3RyaW5nKS4gIEl0IGZvbGxvd3MgdGhhdCDigJhjW2FkXSpy4oCZCiAgICAgbWF0Y2hlcyDi gJhjcuKAmSwg4oCYY2Fy4oCZLCDigJhjZHLigJksIOKAmGNhZGRhYXLigJksIGV0Yy4KCiAgICAg WW91IGNhbiBhbHNvIGluY2x1ZGUgY2hhcmFjdGVyIHJhbmdlcyBpbiBhIGNoYXJhY3RlciBzZXQs IGJ5CiAgICAgd3JpdGluZyB0aGUgc3RhcnRpbmcgYW5kIGVuZGluZyBjaGFyYWN0ZXJzIHdpdGgg YSDigJgt4oCZIGJldHdlZW4gdGhlbS4KICAgICBUaHVzLCDigJhbYS16XeKAmSBtYXRjaGVzIGFu eSBsb3dlci1jYXNlIEFTQ0lJIGxldHRlci4gIFJhbmdlcyBtYXkgYmUKICAgICBpbnRlcm1peGVk IGZyZWVseSB3aXRoIGluZGl2aWR1YWwgY2hhcmFjdGVycywgYXMgaW4g4oCYW2EteiQlLl3igJks CiAgICAgd2hpY2ggbWF0Y2hlcyBhbnkgbG93ZXItY2FzZSBBU0NJSSBsZXR0ZXIgb3Ig4oCYJOKA mSwg4oCYJeKAmSBvciBwZXJpb2QuCiAgICAgQXMgYW5vdGhlciBleGFtcGxlLCDigJhbzrEtz4nO r13igJkgbWF0Y2hlcyBhbGwgbG93ZXItY2FzZSBHcmVlayBsZXR0ZXJzLgoKICAgICBZb3UgY2Fu IGFsc28gaW5jbHVkZSBjZXJ0YWluIHNwZWNpYWwgImNoYXJhY3RlciBjbGFzc2VzIiBpbiBhCiAg ICAgY2hhcmFjdGVyIHNldC4gIEEg4oCYWzrigJkgYW5kIGJhbGFuY2luZyDigJg6XeKAmSBlbmNs b3NlIGEgY2hhcmFjdGVyIGNsYXNzCiAgICAgaW5zaWRlIGEgY2hhcmFjdGVyIGFsdGVybmF0aXZl LiAgRm9yIGluc3RhbmNlLCDigJhbWzphbG51bTpdXeKAmQogICAgIG1hdGNoZXMgYW55IGxldHRl ciBvciBkaWdpdC4gICpOb3RlIChlbGlzcClDaGFyIENsYXNzZXM6OiwgZm9yIGEKICAgICBsaXN0 IG9mIGNoYXJhY3RlciBjbGFzc2VzLgoKICAgICBUbyBpbmNsdWRlIGEg4oCYXeKAmSBpbiBhIGNo YXJhY3RlciBzZXQsIHlvdSBtdXN0IG1ha2UgaXQgdGhlIGZpcnN0CiAgICAgY2hhcmFjdGVyLiAg Rm9yIGV4YW1wbGUsIOKAmFtdYV3igJkgbWF0Y2hlcyDigJhd4oCZIG9yIOKAmGHigJkuICBUbyBp bmNsdWRlIGEKICAgICDigJgt4oCZLCB3cml0ZSDigJgt4oCZIGFzIHRoZSBmaXJzdCBvciBsYXN0 IGNoYXJhY3RlciBvZiB0aGUgc2V0LCBvciBwdXQgaXQKICAgICBhZnRlciBhIHJhbmdlLiAgVGh1 cywg4oCYW10tXeKAmSBtYXRjaGVzIGJvdGgg4oCYXeKAmSBhbmQg4oCYLeKAmS4KCiAgICAgVG8g aW5jbHVkZSDigJhe4oCZIGluIGEgc2V0LCBwdXQgaXQgYW55d2hlcmUgYnV0IGF0IHRoZSBiZWdp bm5pbmcgb2YKICAgICB0aGUgc2V0LiAgKEF0IHRoZSBiZWdpbm5pbmcsIGl0IGNvbXBsZW1lbnRz IHRoZSBzZXTigJRzZWUgYmVsb3cuKQoKICAgICBXaGVuIHlvdSB1c2UgYSByYW5nZSBpbiBjYXNl LWluc2Vuc2l0aXZlIHNlYXJjaCwgeW91IHNob3VsZCB3cml0ZQogICAgIGJvdGggZW5kcyBvZiB0 aGUgcmFuZ2UgaW4gdXBwZXIgY2FzZSwgb3IgYm90aCBpbiBsb3dlciBjYXNlLCBvcgogICAgIGJv dGggc2hvdWxkIGJlIG5vbi1sZXR0ZXJzLiAgVGhlIGJlaGF2aW9yIG9mIGEgbWl4ZWQtY2FzZSBy YW5nZQogICAgIHN1Y2ggYXMg4oCYQS164oCZIGlzIHNvbWV3aGF0IGlsbC1kZWZpbmVkLCBhbmQg aXQgbWF5IGNoYW5nZSBpbiBmdXR1cmUKICAgICBFbWFjcyB2ZXJzaW9ucy4KCuKAmFteIOKApiBd 4oCZCiAgICAg4oCYW17igJkgYmVnaW5zIGEgImNvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgc2V0Iiwg d2hpY2ggbWF0Y2hlcyBhbnkKICAgICBjaGFyYWN0ZXIgZXhjZXB0IHRoZSBvbmVzIHNwZWNpZmll ZC4gIFRodXMsIOKAmFteYS16MC05QS1aXeKAmSBtYXRjaGVzCiAgICAgYWxsIGNoYXJhY3RlcnMg X2V4Y2VwdF8gQVNDSUkgbGV0dGVycyBhbmQgZGlnaXRzLgoKICAgICDigJhe4oCZIGlzIG5vdCBz cGVjaWFsIGluIGEgY2hhcmFjdGVyIHNldCB1bmxlc3MgaXQgaXMgdGhlIGZpcnN0CiAgICAgY2hh cmFjdGVyLiAgVGhlIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlIOKAmF7igJkgaXMgdHJlYXRlZCBh cyBpZiBpdAogICAgIHdlcmUgZmlyc3QgKGluIG90aGVyIHdvcmRzLCDigJgt4oCZIGFuZCDigJhd 4oCZIGFyZSBub3Qgc3BlY2lhbCB0aGVyZSkuCgogICAgIEEgY29tcGxlbWVudGVkIGNoYXJhY3Rl ciBzZXQgY2FuIG1hdGNoIGEgbmV3bGluZSwgdW5sZXNzIG5ld2xpbmUgaXMKICAgICBtZW50aW9u ZWQgYXMgb25lIG9mIHRoZSBjaGFyYWN0ZXJzIG5vdCB0byBtYXRjaC4gIFRoaXMgaXMgaW4KICAg ICBjb250cmFzdCB0byB0aGUgaGFuZGxpbmcgb2YgcmVnZXhwcyBpbiBwcm9ncmFtcyBzdWNoIGFz IOKAmGdyZXDigJkuCgrigJhe4oCZCiAgICAgaXMgYSBzcGVjaWFsIGNoYXJhY3RlciB0aGF0IG1h dGNoZXMgdGhlIGVtcHR5IHN0cmluZywgYnV0IG9ubHkgYXQKICAgICB0aGUgYmVnaW5uaW5nIG9m IGEgbGluZSBpbiB0aGUgdGV4dCBiZWluZyBtYXRjaGVkLiAgT3RoZXJ3aXNlIGl0CiAgICAgZmFp bHMgdG8gbWF0Y2ggYW55dGhpbmcuICBUaHVzLCDigJheZm9v4oCZIG1hdGNoZXMgYSDigJhmb2/i gJkgdGhhdCBvY2N1cnMKICAgICBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbGluZS4KCiAgICAgRm9y IGhpc3RvcmljYWwgY29tcGF0aWJpbGl0eSByZWFzb25zLCDigJhe4oCZIGNhbiBiZSB1c2VkIHdp dGggdGhpcwogICAgIG1lYW5pbmcgb25seSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZWd1bGFy IGV4cHJlc3Npb24sIG9yIGFmdGVyCiAgICAg4oCYXCjigJkgb3Ig4oCYXHzigJkuCgrigJgk4oCZ CiAgICAgaXMgc2ltaWxhciB0byDigJhe4oCZIGJ1dCBtYXRjaGVzIG9ubHkgYXQgdGhlIGVuZCBv ZiBhIGxpbmUuICBUaHVzLAogICAgIOKAmHgrJOKAmSBtYXRjaGVzIGEgc3RyaW5nIG9mIG9uZSDi gJh44oCZIG9yIG1vcmUgYXQgdGhlIGVuZCBvZiBhIGxpbmUuCgogICAgIEZvciBoaXN0b3JpY2Fs IGNvbXBhdGliaWxpdHkgcmVhc29ucywg4oCYJOKAmSBjYW4gYmUgdXNlZCB3aXRoIHRoaXMKICAg ICBtZWFuaW5nIG9ubHkgYXQgdGhlIGVuZCBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uLCBvciBi ZWZvcmUg4oCYXCnigJkKICAgICBvciDigJhcfOKAmS4KCuKAmFzigJkKICAgICBoYXMgdHdvIGZ1 bmN0aW9uczogaXQgcXVvdGVzIHRoZSBzcGVjaWFsIGNoYXJhY3RlcnMgKGluY2x1ZGluZwogICAg IOKAmFzigJkpLCBhbmQgaXQgaW50cm9kdWNlcyBhZGRpdGlvbmFsIHNwZWNpYWwgY29uc3RydWN0 cy4KCiAgICAgQmVjYXVzZSDigJhc4oCZIHF1b3RlcyBzcGVjaWFsIGNoYXJhY3RlcnMsIOKAmFwk 4oCZIGlzIGEgcmVndWxhciBleHByZXNzaW9uCiAgICAgdGhhdCBtYXRjaGVzIG9ubHkg4oCYJOKA mSwgYW5kIOKAmFxb4oCZIGlzIGEgcmVndWxhciBleHByZXNzaW9uIHRoYXQKICAgICBtYXRjaGVz IG9ubHkg4oCYW+KAmSwgYW5kIHNvIG9uLgoKICAgICBTZWUgdGhlIGZvbGxvd2luZyBzZWN0aW9u IGZvciB0aGUgc3BlY2lhbCBjb25zdHJ1Y3RzIHRoYXQgYmVnaW4KICAgICB3aXRoIOKAmFzigJku CgogICBOb3RlOiBmb3IgaGlzdG9yaWNhbCBjb21wYXRpYmlsaXR5LCBzcGVjaWFsIGNoYXJhY3Rl cnMgYXJlIHRyZWF0ZWQgYXMKb3JkaW5hcnkgb25lcyBpZiB0aGV5IGFyZSBpbiBjb250ZXh0cyB3 aGVyZSB0aGVpciBzcGVjaWFsIG1lYW5pbmdzIG1ha2UKbm8gc2Vuc2UuICBGb3IgZXhhbXBsZSwg 4oCYKmZvb+KAmSB0cmVhdHMg4oCYKuKAmSBhcyBvcmRpbmFyeSBzaW5jZSB0aGVyZSBpcyBubwpw cmVjZWRpbmcgZXhwcmVzc2lvbiBvbiB3aGljaCB0aGUg4oCYKuKAmSBjYW4gYWN0LiAgSXQgaXMg cG9vciBwcmFjdGljZSB0bwpkZXBlbmQgb24gdGhpcyBiZWhhdmlvcjsgaXQgaXMgYmV0dGVyIHRv IHF1b3RlIHRoZSBzcGVjaWFsIGNoYXJhY3Rlcgphbnl3YXksIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUg aXQgYXBwZWFycy4KCiAgIEFzIGEg4oCYXOKAmSBpcyBub3Qgc3BlY2lhbCBpbnNpZGUgYSBjaGFy YWN0ZXIgYWx0ZXJuYXRpdmUsIGl0IGNhbiBuZXZlcgpyZW1vdmUgdGhlIHNwZWNpYWwgbWVhbmlu ZyBvZiDigJgt4oCZIG9yIOKAmF3igJkuICBTbyB5b3Ugc2hvdWxkIG5vdCBxdW90ZSB0aGVzZQpj aGFyYWN0ZXJzIHdoZW4gdGhleSBoYXZlIG5vIHNwZWNpYWwgbWVhbmluZyBlaXRoZXIuICBUaGlz IHdvdWxkIG5vdApjbGFyaWZ5IGFueXRoaW5nLCBzaW5jZSBiYWNrc2xhc2hlcyBjYW4gbGVnaXRp bWF0ZWx5IHByZWNlZGUgdGhlc2UKY2hhcmFjdGVycyB3aGVyZSB0aGV5IF9oYXZlXyBzcGVjaWFs IG1lYW5pbmcsIGFzIGluIOKAmFteXF3igJkgKOKAmCJbXlxcXSLigJkKZm9yIExpc3Agc3RyaW5n IHN5bnRheCksIHdoaWNoIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgZXhjZXB0IGEKYmFj a3NsYXNoLgoKCioqIDE1LjcgQmFja3NsYXNoIGluIFJlZ3VsYXIgRXhwcmVzc2lvbnMKCkZvciB0 aGUgbW9zdCBwYXJ0LCDigJhc4oCZIGZvbGxvd2VkIGJ5IGFueSBjaGFyYWN0ZXIgbWF0Y2hlcyBv bmx5IHRoYXQKY2hhcmFjdGVyLiAgSG93ZXZlciwgdGhlcmUgYXJlIHNldmVyYWwgZXhjZXB0aW9u czogdHdvLWNoYXJhY3RlcgpzZXF1ZW5jZXMgc3RhcnRpbmcgd2l0aCDigJhc4oCZIHRoYXQgaGF2 ZSBzcGVjaWFsIG1lYW5pbmdzLiAgVGhlIHNlY29uZApjaGFyYWN0ZXIgaW4gdGhlIHNlcXVlbmNl IGlzIGFsd2F5cyBhbiBvcmRpbmFyeSBjaGFyYWN0ZXIgd2hlbiB1c2VkIG9uCml0cyBvd24uICBI ZXJlIGlzIGEgdGFibGUgb2Yg4oCYXOKAmSBjb25zdHJ1Y3RzLgoK4oCYXHzigJkKICAgICBzcGVj aWZpZXMgYW4gYWx0ZXJuYXRpdmUuICBUd28gcmVndWxhciBleHByZXNzaW9ucyBBIGFuZCBCIHdp dGgKICAgICDigJhcfOKAmSBpbiBiZXR3ZWVuIGZvcm0gYW4gZXhwcmVzc2lvbiB0aGF0IG1hdGNo ZXMgc29tZSB0ZXh0IGlmIGVpdGhlcgogICAgIEEgbWF0Y2hlcyBpdCBvciBCIG1hdGNoZXMgaXQu ICBJdCB3b3JrcyBieSB0cnlpbmcgdG8gbWF0Y2ggQSwgYW5kCiAgICAgaWYgdGhhdCBmYWlscywg YnkgdHJ5aW5nIHRvIG1hdGNoIEIuCgogICAgIFRodXMsIOKAmGZvb1x8YmFy4oCZIG1hdGNoZXMg ZWl0aGVyIOKAmGZvb+KAmSBvciDigJhiYXLigJkgYnV0IG5vIG90aGVyIHN0cmluZy4KCiAgICAg 4oCYXHzigJkgYXBwbGllcyB0byB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBzdXJyb3VuZGluZyBleHBy ZXNzaW9ucy4gIE9ubHkKICAgICBhIHN1cnJvdW5kaW5nIOKAmFwoIOKApiBcKeKAmSBncm91cGlu ZyBjYW4gbGltaXQgdGhlIGdyb3VwaW5nIHBvd2VyIG9mCiAgICAg4oCYXHzigJkuCgogICAgIEZ1 bGwgYmFja3RyYWNraW5nIGNhcGFiaWxpdHkgZXhpc3RzIHRvIGhhbmRsZSBtdWx0aXBsZSB1c2Vz IG9mCiAgICAg4oCYXHzigJkuCgrigJhcKCDigKYgXCnigJkKICAgICBpcyBhIGdyb3VwaW5nIGNv bnN0cnVjdCB0aGF0IHNlcnZlcyB0aHJlZSBwdXJwb3NlczoKCiAgICAgICAxLiBUbyBlbmNsb3Nl IGEgc2V0IG9mIOKAmFx84oCZIGFsdGVybmF0aXZlcyBmb3Igb3RoZXIgb3BlcmF0aW9ucy4KICAg ICAgICAgIFRodXMsIOKAmFwoZm9vXHxiYXJcKXjigJkgbWF0Y2hlcyBlaXRoZXIg4oCYZm9veOKA mSBvciDigJhiYXJ44oCZLgoKICAgICAgIDIuIFRvIGVuY2xvc2UgYSBjb21wbGljYXRlZCBleHBy ZXNzaW9uIGZvciB0aGUgcG9zdGZpeCBvcGVyYXRvcnMKICAgICAgICAgIOKAmCrigJksIOKAmCvi gJkgYW5kIOKAmD/igJkgdG8gb3BlcmF0ZSBvbi4gIFRodXMsIOKAmGJhXChuYVwpKuKAmSBtYXRj aGVzCiAgICAgICAgICDigJhiYW5hbmFuYeKAmSwgZXRjLiwgd2l0aCBhbnkgKHplcm8gb3IgbW9y ZSkgbnVtYmVyIG9mIOKAmG5h4oCZCiAgICAgICAgICBzdHJpbmdzLgoKICAgICAgIDMuIFRvIHJl Y29yZCBhIG1hdGNoZWQgc3Vic3RyaW5nIGZvciBmdXR1cmUgcmVmZXJlbmNlLgoKICAgICBUaGlz IGxhc3QgYXBwbGljYXRpb24gaXMgbm90IGEgY29uc2VxdWVuY2Ugb2YgdGhlIGlkZWEgb2YgYQog ICAgIHBhcmVudGhldGljYWwgZ3JvdXBpbmc7IGl0IGlzIGEgc2VwYXJhdGUgZmVhdHVyZSB0aGF0 IGlzIGFzc2lnbmVkCiAgICAgYXMgYSBzZWNvbmQgbWVhbmluZyB0byB0aGUgc2FtZSDigJhcKCDi gKYgXCnigJkgY29uc3RydWN0LiAgSW4gcHJhY3RpY2UKICAgICB0aGVyZSBpcyB1c3VhbGx5IG5v IGNvbmZsaWN0IGJldHdlZW4gdGhlIHR3byBtZWFuaW5nczsgd2hlbiB0aGVyZQogICAgIGlzIGEg Y29uZmxpY3QsIHlvdSBjYW4gdXNlIGEgc2h5IGdyb3VwLCBkZXNjcmliZWQgYmVsb3cuCgrigJhc KD86IOKApiBcKeKAmQogICAgIHNwZWNpZmllcyBhICJzaHkgZ3JvdXAiIHRoYXQgZG9lcyBub3Qg cmVjb3JkIHRoZSBtYXRjaGVkIHN1YnN0cmluZzsKICAgICB5b3UgY2Fu4oCZdCByZWZlciBiYWNr IHRvIGl0IHdpdGgg4oCYXETigJkgKHNlZSBiZWxvdykuICBUaGlzIGlzIHVzZWZ1bAogICAgIGlu IG1lY2hhbmljYWxseSBjb21iaW5pbmcgcmVndWxhciBleHByZXNzaW9ucywgc28gdGhhdCB5b3Ug Y2FuIGFkZAogICAgIGdyb3VwcyBmb3Igc3ludGFjdGljIHB1cnBvc2VzIHdpdGhvdXQgaW50ZXJm ZXJpbmcgd2l0aCB0aGUKICAgICBudW1iZXJpbmcgb2YgdGhlIGdyb3VwcyB0aGF0IGFyZSBtZWFu dCB0byBiZSByZWZlcnJlZCB0by4KCuKAmFxE4oCZCiAgICAgbWF0Y2hlcyB0aGUgc2FtZSB0ZXh0 IHRoYXQgbWF0Y2hlZCB0aGUgRHRoIG9jY3VycmVuY2Ugb2YgYSDigJhcKCDigKYKICAgICBcKeKA mSBjb25zdHJ1Y3QuICBUaGlzIGlzIGNhbGxlZCBhICJiYWNrIHJlZmVyZW5jZSIuCgogICAgIEFm dGVyIHRoZSBlbmQgb2YgYSDigJhcKCDigKYgXCnigJkgY29uc3RydWN0LCB0aGUgbWF0Y2hlciBy ZW1lbWJlcnMgdGhlCiAgICAgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHRleHQgbWF0Y2hlZCBi eSB0aGF0IGNvbnN0cnVjdC4gIFRoZW4sCiAgICAgbGF0ZXIgb24gaW4gdGhlIHJlZ3VsYXIgZXhw cmVzc2lvbiwgeW91IGNhbiB1c2Ug4oCYXOKAmSBmb2xsb3dlZCBieSB0aGUKICAgICBkaWdpdCBE IHRvIG1lYW4g4oCcbWF0Y2ggdGhlIHNhbWUgdGV4dCBtYXRjaGVkIHRoZSBEdGggdGltZSBieSB0 aGUKICAgICDigJhcKCDigKYgXCnigJkgY29uc3RydWN04oCdLgoKICAgICBUaGUgc3RyaW5ncyBt YXRjaGluZyB0aGUgZmlyc3QgbmluZSDigJhcKCDigKYgXCnigJkgY29uc3RydWN0cyBhcHBlYXJp bmcKICAgICBpbiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhcmUgYXNzaWduZWQgbnVtYmVycyAxIHRo cm91Z2ggOSBpbiB0aGUKICAgICBvcmRlciB0aGF0IHRoZSBvcGVuLXBhcmVudGhlc2VzIGFwcGVh ciBpbiB0aGUgcmVndWxhciBleHByZXNzaW9uLgogICAgIFNvIHlvdSBjYW4gdXNlIOKAmFwx4oCZ IHRocm91Z2gg4oCYXDnigJkgdG8gcmVmZXIgdG8gdGhlIHRleHQgbWF0Y2hlZCBieQogICAgIHRo ZSBjb3JyZXNwb25kaW5nIOKAmFwoIOKApiBcKeKAmSBjb25zdHJ1Y3RzLgoKICAgICBGb3IgZXhh bXBsZSwg4oCYXCguKlwpXDHigJkgbWF0Y2hlcyBhbnkgbmV3bGluZS1mcmVlIHN0cmluZyB0aGF0 IGlzCiAgICAgY29tcG9zZWQgb2YgdHdvIGlkZW50aWNhbCBoYWx2ZXMuICBUaGUg4oCYXCguKlwp 4oCZIG1hdGNoZXMgdGhlIGZpcnN0CiAgICAgaGFsZiwgd2hpY2ggbWF5IGJlIGFueXRoaW5nLCBi dXQgdGhlIOKAmFwx4oCZIHRoYXQgZm9sbG93cyBtdXN0IG1hdGNoCiAgICAgdGhlIHNhbWUgZXhh Y3QgdGV4dC4KCiAgICAgSWYgYSBwYXJ0aWN1bGFyIOKAmFwoIOKApiBcKeKAmSBjb25zdHJ1Y3Qg bWF0Y2hlcyBtb3JlIHRoYW4gb25jZSAod2hpY2gKICAgICBjYW4gZWFzaWx5IGhhcHBlbiBpZiBp dCBpcyBmb2xsb3dlZCBieSDigJgq4oCZKSwgb25seSB0aGUgbGFzdCBtYXRjaCBpcwogICAgIHJl Y29yZGVkLgoK4oCYXGDigJkKICAgICBtYXRjaGVzIHRoZSBlbXB0eSBzdHJpbmcsIGJ1dCBvbmx5 IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZwogICAgIG9yIGJ1ZmZlciAob3IgaXRzIGFj Y2Vzc2libGUgcG9ydGlvbikgYmVpbmcgbWF0Y2hlZCBhZ2FpbnN0LgoK4oCYXCfigJkKICAgICBt YXRjaGVzIHRoZSBlbXB0eSBzdHJpbmcsIGJ1dCBvbmx5IGF0IHRoZSBlbmQgb2YgdGhlIHN0cmlu ZyBvcgogICAgIGJ1ZmZlciAob3IgaXRzIGFjY2Vzc2libGUgcG9ydGlvbikgYmVpbmcgbWF0Y2hl ZCBhZ2FpbnN0LgoK4oCYXD3igJkKICAgICBtYXRjaGVzIHRoZSBlbXB0eSBzdHJpbmcsIGJ1dCBv bmx5IGF0IHBvaW50LgoK4oCYXGLigJkKICAgICBtYXRjaGVzIHRoZSBlbXB0eSBzdHJpbmcsIGJ1 dCBvbmx5IGF0IHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGEKICAgICB3b3JkLiAgVGh1cywg4oCY XGJmb29cYuKAmSBtYXRjaGVzIGFueSBvY2N1cnJlbmNlIG9mIOKAmGZvb+KAmSBhcyBhCiAgICAg c2VwYXJhdGUgd29yZC4gIOKAmFxiYmFsbHM/XGLigJkgbWF0Y2hlcyDigJhiYWxs4oCZIG9yIOKA mGJhbGxz4oCZIGFzIGEKICAgICBzZXBhcmF0ZSB3b3JkLgoKICAgICDigJhcYuKAmSBtYXRjaGVz IGF0IHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIHRoZSBidWZmZXIgcmVnYXJkbGVzcyBvZgogICAg IHdoYXQgdGV4dCBhcHBlYXJzIG5leHQgdG8gaXQuCgrigJhcQuKAmQogICAgIG1hdGNoZXMgdGhl IGVtcHR5IHN0cmluZywgYnV0IF9ub3RfIGF0IHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGEKICAg ICB3b3JkLgoK4oCYXDzigJkKICAgICBtYXRjaGVzIHRoZSBlbXB0eSBzdHJpbmcsIGJ1dCBvbmx5 IGF0IHRoZSBiZWdpbm5pbmcgb2YgYSB3b3JkLgogICAgIOKAmFw84oCZIG1hdGNoZXMgYXQgdGhl IGJlZ2lubmluZyBvZiB0aGUgYnVmZmVyIG9ubHkgaWYgYQogICAgIHdvcmQtY29uc3RpdHVlbnQg Y2hhcmFjdGVyIGZvbGxvd3MuCgrigJhcPuKAmQogICAgIG1hdGNoZXMgdGhlIGVtcHR5IHN0cmlu ZywgYnV0IG9ubHkgYXQgdGhlIGVuZCBvZiBhIHdvcmQuICDigJhcPuKAmQogICAgIG1hdGNoZXMg YXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIG9ubHkgaWYgdGhlIGNvbnRlbnRzIGVuZCB3aXRoIGEK ICAgICB3b3JkLWNvbnN0aXR1ZW50IGNoYXJhY3Rlci4KCuKAmFx34oCZCiAgICAgbWF0Y2hlcyBh bnkgd29yZC1jb25zdGl0dWVudCBjaGFyYWN0ZXIuICBUaGUgc3ludGF4IHRhYmxlCiAgICAgZGV0 ZXJtaW5lcyB3aGljaCBjaGFyYWN0ZXJzIHRoZXNlIGFyZS4gICpOb3RlIFN5bnRheCBUYWJsZXM6 CiAgICAgKGVsaXNwKVN5bnRheCBUYWJsZXMuCgrigJhcV+KAmQogICAgIG1hdGNoZXMgYW55IGNo YXJhY3RlciB0aGF0IGlzIG5vdCBhIHdvcmQtY29uc3RpdHVlbnQuCgrigJhcXzzigJkKICAgICBt YXRjaGVzIHRoZSBlbXB0eSBzdHJpbmcsIGJ1dCBvbmx5IGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBz eW1ib2wuICBBCiAgICAgc3ltYm9sIGlzIGEgc2VxdWVuY2Ugb2Ygb25lIG9yIG1vcmUgc3ltYm9s LWNvbnN0aXR1ZW50IGNoYXJhY3RlcnMuCiAgICAgQSBzeW1ib2wtY29uc3RpdHVlbnQgY2hhcmFj dGVyIGlzIGEgY2hhcmFjdGVyIHdob3NlIHN5bnRheCBpcwogICAgIGVpdGhlciDigJh34oCZIG9y IOKAmF/igJkuICDigJhcXzzigJkgbWF0Y2hlcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZm ZXIKICAgICBvbmx5IGlmIGEgc3ltYm9sLWNvbnN0aXR1ZW50IGNoYXJhY3RlciBmb2xsb3dzLiAg QXMgd2l0aCB3b3JkcywgdGhlCiAgICAgc3ludGF4IHRhYmxlIGRldGVybWluZXMgd2hpY2ggY2hh cmFjdGVycyBhcmUgc3ltYm9sLWNvbnN0aXR1ZW50LgoK4oCYXF8+4oCZCiAgICAgbWF0Y2hlcyB0 aGUgZW1wdHkgc3RyaW5nLCBidXQgb25seSBhdCB0aGUgZW5kIG9mIGEgc3ltYm9sLiAg4oCYXF8+ 4oCZCiAgICAgbWF0Y2hlcyBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgb25seSBpZiB0aGUgY29u dGVudHMgZW5kIHdpdGggYQogICAgIHN5bWJvbC1jb25zdGl0dWVudCBjaGFyYWN0ZXIuCgrigJhc c0PigJkKICAgICBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgd2hvc2Ugc3ludGF4IGlzIEMuICBIZXJl IEMgaXMgYSBjaGFyYWN0ZXIKICAgICB0aGF0IGRlc2lnbmF0ZXMgYSBwYXJ0aWN1bGFyIHN5bnRh eCBjbGFzczogdGh1cywg4oCYd+KAmSBmb3Igd29yZAogICAgIGNvbnN0aXR1ZW50LCDigJgt4oCZ IG9yIOKAmCDigJkgZm9yIHdoaXRlc3BhY2UsIOKAmC7igJkgZm9yIG9yZGluYXJ5CiAgICAgcHVu Y3R1YXRpb24sIGV0Yy4gICpOb3RlIFN5bnRheCBUYWJsZXM6IChlbGlzcClTeW50YXggVGFibGVz LgoK4oCYXFND4oCZCiAgICAgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIHdob3NlIHN5bnRheCBpcyBu b3QgQy4KCuKAmFxjQ+KAmQogICAgIG1hdGNoZXMgYW55IGNoYXJhY3RlciB0aGF0IGJlbG9uZ3Mg dG8gdGhlIGNhdGVnb3J5IEMuICBGb3IgZXhhbXBsZSwKICAgICDigJhcY2PigJkgbWF0Y2hlcyBD aGluZXNlIGNoYXJhY3RlcnMsIOKAmFxjZ+KAmSBtYXRjaGVzIEdyZWVrIGNoYXJhY3RlcnMsCiAg ICAgZXRjLiAgRm9yIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUga25vd24gY2F0ZWdvcmllcywgdHlw ZSDigJhNLXgKICAgICBkZXNjcmliZS1jYXRlZ29yaWVzIDxSRVQ+4oCZLgoK4oCYXEND4oCZCiAg ICAgbWF0Y2hlcyBhbnkgY2hhcmFjdGVyIHRoYXQgZG9lcyBfbm90XyBiZWxvbmcgdG8gY2F0ZWdv cnkgQy4KCiAgIFRoZSBjb25zdHJ1Y3RzIHRoYXQgcGVydGFpbiB0byB3b3JkcyBhbmQgc3ludGF4 IGFyZSBjb250cm9sbGVkIGJ5IHRoZQpzZXR0aW5nIG9mIHRoZSBzeW50YXggdGFibGUuICAqTm90 ZSBTeW50YXggVGFibGVzOiAoZWxpc3ApU3ludGF4IFRhYmxlcy4KCgoqKiAxNS44IFJlZ3VsYXIg RXhwcmVzc2lvbiBFeGFtcGxlCgpIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSByZWdleHDigJRzaW1p bGFyIHRvIHRoZSByZWdleHAgdGhhdCBFbWFjcyB1c2VzLCBieQpkZWZhdWx0LCB0byByZWNvZ25p emUgdGhlIGVuZCBvZiBhIHNlbnRlbmNlLCBub3QgaW5jbHVkaW5nIHRoZSBmb2xsb3dpbmcKc3Bh Y2UgKGkuZS4sIHRoZSB2YXJpYWJsZSDigJhzZW50ZW5jZS1lbmQtYmFzZeKAmSk6CgogICAgIFsu PyFdW11cIicpfV0qCgpUaGlzIGNvbnRhaW5zIHR3byBwYXJ0cyBpbiBzdWNjZXNzaW9uOiBhIGNo YXJhY3RlciBzZXQgbWF0Y2hpbmcgcGVyaW9kLArigJg/4oCZLCBvciDigJgh4oCZLCBhbmQgYSBj aGFyYWN0ZXIgc2V0IG1hdGNoaW5nIGNsb3NlLWJyYWNrZXRzLCBxdW90ZXMsIG9yCnBhcmVudGhl c2VzLCByZXBlYXRlZCB6ZXJvIG9yIG1vcmUgdGltZXMuCgoKKiogMTUuOSBMYXggTWF0Y2hpbmcg RHVyaW5nIFNlYXJjaGluZwoKTm9ybWFsbHksIHlvdeKAmWQgd2FudCBzZWFyY2ggY29tbWFuZHMg dG8gZGlzcmVnYXJkIGNlcnRhaW4gbWlub3IKZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgc2VhcmNo IHN0cmluZyB5b3UgdHlwZSBhbmQgdGhlIHRleHQgYmVpbmcKc2VhcmNoZWQuICBGb3IgZXhhbXBs ZSwgc2VxdWVuY2VzIG9mIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBvZiBkaWZmZXJlbnQKbGVuZ3Ro IGFyZSB1c3VhbGx5IHBlcmNlaXZlZCBhcyBlcXVpdmFsZW50OyBsZXR0ZXItY2FzZSBkaWZmZXJl bmNlcwp1c3VhbGx5IGRvbuKAmXQgbWF0dGVyOyBldGMuICBUaGlzIGlzIGtub3duIGFzICJjaGFy YWN0ZXIgZXF1aXZhbGVuY2UiLgoKICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgRW1hY3Mg bGF4IHNlYXJjaCBmZWF0dXJlcywgYW5kIGhvdyB0bwp0YWlsb3IgdGhlbSB0byB5b3VyIG5lZWRz LgoKICAgQnkgZGVmYXVsdCwgc2VhcmNoIGNvbW1hbmRzIHBlcmZvcm0gImxheCBzcGFjZSBtYXRj aGluZyI6IGVhY2ggc3BhY2UsCm9yIHNlcXVlbmNlIG9mIHNwYWNlcywgbWF0Y2hlcyBhbnkgc2Vx dWVuY2Ugb2Ygb25lIG9yIG1vcmUgd2hpdGVzcGFjZQpjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0LiAg KEluY3JlbWVudGFsIHJlZ2V4cCBzZWFyY2ggaGFzIGEgc2VwYXJhdGUKZGVmYXVsdDsgc2VlICpu b3RlIFJlZ2V4cCBTZWFyY2g6Oi4pICBIZW5jZSwg4oCYZm9vIGJhcuKAmSBtYXRjaGVzCuKAmGZv byBiYXLigJksIOKAmGZvbyAgYmFy4oCZLCDigJhmb28gICBiYXLigJksIGFuZCBzbyBvbiAoYnV0 IG5vdCDigJhmb29iYXLigJkpLiAgTW9yZQpwcmVjaXNlbHksIEVtYWNzIG1hdGNoZXMgZWFjaCBz ZXF1ZW5jZSBvZiBzcGFjZSBjaGFyYWN0ZXJzIGluIHRoZSBzZWFyY2gKc3RyaW5nIHRvIGEgcmVn dWxhciBleHByZXNzaW9uIHNwZWNpZmllZCBieSB0aGUgdmFyaWFibGUK4oCYc2VhcmNoLXdoaXRl c3BhY2UtcmVnZXhw4oCZLiAgRm9yIGV4YW1wbGUsIHRvIG1ha2Ugc3BhY2VzIG1hdGNoIHNlcXVl bmNlcwpvZiBuZXdsaW5lcyBhcyB3ZWxsIGFzIHNwYWNlcywgc2V0IGl0IHRvIOKAmCJbWzpzcGFj ZTpdXG5dKyLigJkuICBUaGUKZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHZhcmlhYmxlIGRlcGVuZHMg b24gdGhlIGJ1ZmZlcuKAmXMgbWFqb3IgbW9kZTsgbW9zdAptYWpvciBtb2RlcyBjbGFzc2lmeSBz cGFjZXMsIHRhYnMsIGFuZCBmb3JtZmVlZCBjaGFyYWN0ZXJzIGFzCndoaXRlc3BhY2UuCgogICBJ ZiB5b3Ugd2FudCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgdG8gbWF0Y2ggZXhhY3RseSwgeW91IGNh biB0dXJuIGxheApzcGFjZSBtYXRjaGluZyBvZmYgYnkgdHlwaW5nIOKAmE0tcyA8U1BDPuKAmQoo 4oCYaXNlYXJjaC10b2dnbGUtbGF4LXdoaXRlc3BhY2XigJkpIHdpdGhpbiBhbiBpbmNyZW1lbnRh bCBzZWFyY2guICBBbm90aGVyCuKAmE0tcyA8U1BDPuKAmSB0dXJucyBsYXggc3BhY2UgbWF0Y2hp bmcgYmFjayBvbi4gIFRvIGRpc2FibGUgbGF4IHdoaXRlc3BhY2UKbWF0Y2hpbmcgZm9yIGFsbCBz ZWFyY2hlcywgY2hhbmdlIOKAmHNlYXJjaC13aGl0ZXNwYWNlLXJlZ2V4cOKAmSB0byDigJhuaWzi gJk7CnRoZW4gZWFjaCBzcGFjZSBpbiB0aGUgc2VhcmNoIHN0cmluZyBtYXRjaGVzIGV4YWN0bHkg b25lIHNwYWNlLgoKICAgU2VhcmNoZXMgaW4gRW1hY3MgYnkgZGVmYXVsdCBpZ25vcmUgdGhlIGNh c2Ugb2YgdGhlIHRleHQgdGhleSBhcmUKc2VhcmNoaW5nIHRocm91Z2gsIGlmIHlvdSBzcGVjaWZ5 IHRoZSBzZWFyY2ggc3RyaW5nIGluIGxvd2VyIGNhc2UuClRodXMsIGlmIHlvdSBzcGVjaWZ5IHNl YXJjaGluZyBmb3Ig4oCYZm9v4oCZLCB0aGVuIOKAmEZvb+KAmSBhbmQg4oCYZk9P4oCZIGFsc28K bWF0Y2guICBSZWdleHBzLCBhbmQgaW4gcGFydGljdWxhciBjaGFyYWN0ZXIgc2V0cywgYmVoYXZl IGxpa2V3aXNlOgrigJhbYWJd4oCZIG1hdGNoZXMg4oCYYeKAmSBvciDigJhB4oCZIG9yIOKAmGLi gJkgb3Ig4oCYQuKAmS4gIFRoaXMgZmVhdHVyZSBpcyBrbm93biBhcyAiY2FzZQpmb2xkaW5nIiwg YW5kIGl0IGlzIHN1cHBvcnRlZCBpbiBib3RoIGluY3JlbWVudGFsIGFuZCBub24taW5jcmVtZW50 YWwKc2VhcmNoIG1vZGVzLgoKICAgQW4gdXBwZXItY2FzZSBsZXR0ZXIgYW55d2hlcmUgaW4gdGhl IHNlYXJjaCBzdHJpbmcgbWFrZXMgdGhlIHNlYXJjaApjYXNlLXNlbnNpdGl2ZS4gIFRodXMsIHNl YXJjaGluZyBmb3Ig4oCYRm9v4oCZIGRvZXMgbm90IGZpbmQg4oCYZm9v4oCZIG9yIOKAmEZPT+KA mS4KVGhpcyBhcHBsaWVzIHRvIHJlZ3VsYXIgZXhwcmVzc2lvbiBzZWFyY2ggYXMgd2VsbCBhcyB0 byBsaXRlcmFsIHN0cmluZwpzZWFyY2guICBUaGUgZWZmZWN0IGNlYXNlcyBpZiB5b3UgZGVsZXRl IHRoZSB1cHBlci1jYXNlIGxldHRlciBmcm9tIHRoZQpzZWFyY2ggc3RyaW5nLiAgVGhlIHZhcmlh YmxlIOKAmHNlYXJjaC11cHBlci1jYXNl4oCZIGNvbnRyb2xzIHRoaXM6IGlmIGl0IGlzCm5vbi3i gJhuaWzigJkgKHRoZSBkZWZhdWx0KSwgYW4gdXBwZXItY2FzZSBjaGFyYWN0ZXIgaW4gdGhlIHNl YXJjaCBzdHJpbmcKbWFrZXMgdGhlIHNlYXJjaCBjYXNlLXNlbnNpdGl2ZTsgc2V0dGluZyBpdCB0 byDigJhuaWzigJkgZGlzYWJsZXMgdGhpcwplZmZlY3Qgb2YgdXBwZXItY2FzZSBjaGFyYWN0ZXJz LgoKICAgSWYgeW91IHNldCB0aGUgdmFyaWFibGUg4oCYY2FzZS1mb2xkLXNlYXJjaOKAmSB0byDi gJhuaWzigJksIHRoZW4gYWxsIGxldHRlcnMKbXVzdCBtYXRjaCBleGFjdGx5LCBpbmNsdWRpbmcg Y2FzZS4gIFRoaXMgaXMgYSBwZXItYnVmZmVyIHZhcmlhYmxlOwphbHRlcmluZyB0aGUgdmFyaWFi bGUgbm9ybWFsbHkgYWZmZWN0cyBvbmx5IHRoZSBjdXJyZW50IGJ1ZmZlciwgdW5sZXNzCnlvdSBj aGFuZ2UgaXRzIGRlZmF1bHQgdmFsdWUuICAqTm90ZSBMb2NhbHM6Oi4gIFRoaXMgdmFyaWFibGUg YXBwbGllcyB0bwpub25pbmNyZW1lbnRhbCBzZWFyY2hlcyBhbHNvLCBpbmNsdWRpbmcgdGhvc2Ug cGVyZm9ybWVkIGJ5IHRoZSByZXBsYWNlCmNvbW1hbmRzICgqbm90ZSBSZXBsYWNlOjopIGFuZCB0 aGUgbWluaWJ1ZmZlciBoaXN0b3J5IG1hdGNoaW5nIGNvbW1hbmRzCigqbm90ZSBNaW5pYnVmZmVy IEhpc3Rvcnk6OikuCgogICBUeXBpbmcg4oCYTS1j4oCZIG9yIOKAmE0tcyBj4oCZICjigJhpc2Vh cmNoLXRvZ2dsZS1jYXNlLWZvbGTigJkpIHdpdGhpbiBhbgppbmNyZW1lbnRhbCBzZWFyY2ggdG9n Z2xlcyB0aGUgY2FzZSBzZW5zaXRpdml0eSBvZiB0aGF0IHNlYXJjaC4gIFRoZQplZmZlY3QgZG9l cyBub3QgZXh0ZW5kIGJleW9uZCB0aGUgY3VycmVudCBpbmNyZW1lbnRhbCBzZWFyY2gsIGJ1dCBp dApkb2VzIG92ZXJyaWRlIHRoZSBlZmZlY3Qgb2YgYWRkaW5nIG9yIHJlbW92aW5nIGFuIHVwcGVy LWNhc2UgbGV0dGVyIGluCnRoZSBjdXJyZW50IHNlYXJjaC4KCiAgIFNldmVyYWwgcmVsYXRlZCB2 YXJpYWJsZXMgY29udHJvbCBjYXNlLXNlbnNpdGl2aXR5IG9mIHNlYXJjaGluZyBhbmQKbWF0Y2hp bmcgZm9yIHNwZWNpZmljIGNvbW1hbmRzIG9yIGFjdGl2aXRpZXMuICBGb3IgaW5zdGFuY2UsCuKA mHRhZ3MtY2FzZS1mb2xkLXNlYXJjaOKAmSBjb250cm9scyBjYXNlIHNlbnNpdGl2aXR5IGZvciDi gJhmaW5kLXRhZ+KAmS4gIFRvCmZpbmQgdGhlc2UgdmFyaWFibGVzLCBkbyDigJhNLXggYXByb3Bv cy12YXJpYWJsZSA8UkVUPiBjYXNlLWZvbGQtc2VhcmNoCjxSRVQ+4oCZLgoKICAgQ2FzZSBmb2xk aW5nIGRpc3JlZ2FyZHMgY2FzZSBkaXN0aW5jdGlvbnMgYW1vbmcgY2hhcmFjdGVycywgbWFraW5n CnVwcGVyLWNhc2UgY2hhcmFjdGVycyBtYXRjaCBsb3dlci1jYXNlIHZhcmlhbnRzLCBhbmQgdmlj ZSB2ZXJzYS4gIEEKZ2VuZXJhbGl6YXRpb24gb2YgY2FzZSBmb2xkaW5nIGlzICJjaGFyYWN0ZXIg Zm9sZGluZyIsIHdoaWNoIGRpc3JlZ2FyZHMKd2lkZXIgY2xhc3NlcyBvZiBkaXN0aW5jdGlvbnMg YW1vbmcgc2ltaWxhciBjaGFyYWN0ZXJzLiAgRm9yIGluc3RhbmNlLAp1bmRlciBjaGFyYWN0ZXIg Zm9sZGluZyB0aGUgbGV0dGVyIOKAmGHigJkgbWF0Y2hlcyBhbGwgb2YgaXRzIGFjY2VudGVkCmNv dXNpbnMgbGlrZSDigJjDpOKAmSBhbmQg4oCYw6HigJksIGkuZS4sIHRoZSBtYXRjaCBkaXNyZWdh cmRzIHRoZSBkaWFjcml0aWNzIHRoYXQKZGlzdGluZ3Vpc2ggdGhlc2UgdmFyaWFudHMuICBJbiBh ZGRpdGlvbiwg4oCYYeKAmSBtYXRjaGVzIG90aGVyIGNoYXJhY3RlcnMKdGhhdCByZXNlbWJsZSBp dCwgb3IgaGF2ZSBpdCBhcyBwYXJ0IG9mIHRoZWlyIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiwK c3VjaCBhcyBVKzI0OUMgUEFSRU5USEVTSVpFRCBMQVRJTiBTTUFMTCBMRVRURVIgQSBhbmQgVSsy MTAwIEFDQ09VTlQgT0YKKHdoaWNoIGxvb2tzIGxpa2UgYSBzbWFsbCDigJhh4oCZIG92ZXIg4oCY Y+KAmSkuICBTaW1pbGFybHksIHRoZSBBU0NJSQpkb3VibGUtcXVvdGUgY2hhcmFjdGVyIOKAmCLi gJkgbWF0Y2hlcyBhbGwgdGhlIG90aGVyIHZhcmlhbnRzIG9mIGRvdWJsZQpxdW90ZXMgZGVmaW5l ZCBieSB0aGUgVW5pY29kZSBzdGFuZGFyZC4gIEZpbmFsbHksIGNoYXJhY3RlciBmb2xkaW5nIGNh bgptYWtlIGEgc2VxdWVuY2Ugb2Ygb25lIG9yIG1vcmUgY2hhcmFjdGVycyBtYXRjaCBhbm90aGVy IHNlcXVlbmNlIG9mIGEKZGlmZmVyZW50IGxlbmd0aDogZm9yIGV4YW1wbGUsIHRoZSBzZXF1ZW5j ZSBvZiB0d28gY2hhcmFjdGVycyDigJhmZuKAmQptYXRjaGVzIFUrRkIwMCBMQVRJTiBTTUFMTCBM SUdBVFVSRSBGRi4gIENoYXJhY3RlciBzZXF1ZW5jZXMgdGhhdCBhcmUKbm90IGlkZW50aWNhbCwg YnV0IG1hdGNoIHVuZGVyIGNoYXJhY3RlciBmb2xkaW5nIGFyZSBrbm93biBhcwoiZXF1aXZhbGVu dCBjaGFyYWN0ZXIgc2VxdWVuY2VzIi4KCiAgIEdlbmVyYWxseSwgc2VhcmNoIGNvbW1hbmRzIGlu IEVtYWNzIGRvIG5vdCBieSBkZWZhdWx0IHBlcmZvcm0KY2hhcmFjdGVyIGZvbGRpbmcgaW4gb3Jk ZXIgdG8gbWF0Y2ggZXF1aXZhbGVudCBjaGFyYWN0ZXIgc2VxdWVuY2VzLiAgWW91CmNhbiBlbmFi bGUgdGhpcyBiZWhhdmlvciBieSBjdXN0b21pemluZyB0aGUgdmFyaWFibGUK4oCYc2VhcmNoLWRl ZmF1bHQtbW9kZeKAmSB0byDigJhjaGFyLWZvbGQtdG8tcmVnZXhw4oCZLiAgKk5vdGUgU2VhcmNo CkN1c3RvbWl6YXRpb25zOjouICBXaXRoaW4gYW4gaW5jcmVtZW50YWwgc2VhcmNoLCB0eXBpbmcg 4oCYTS1zICfigJkKKOKAmGlzZWFyY2gtdG9nZ2xlLWNoYXItZm9sZOKAmSkgdG9nZ2xlcyBjaGFy YWN0ZXIgZm9sZGluZywgYnV0IG9ubHkgZm9yCnRoYXQgc2VhcmNoLiAgKFJlcGxhY2UgY29tbWFu ZHMgaGF2ZSBhIGRpZmZlcmVudCBkZWZhdWx0LCBjb250cm9sbGVkIGJ5CmEgc2VwYXJhdGUgb3B0 aW9uOyBzZWUgKm5vdGUgUmVwbGFjZW1lbnQgYW5kIExheCBNYXRjaGVzOjouKQoKICAgTGlrZSB3 aXRoIGNhc2UgZm9sZGluZywgdHlwaW5nIGFuIGV4cGxpY2l0IHZhcmlhbnQgb2YgYSBjaGFyYWN0 ZXIsCnN1Y2ggYXMg4oCYw6TigJksIGFzIHBhcnQgb2YgdGhlIHNlYXJjaCBzdHJpbmcgZGlzYWJs ZXMgY2hhcmFjdGVyIGZvbGRpbmcgZm9yCnRoYXQgc2VhcmNoLiAgSWYgeW91IGRlbGV0ZSBzdWNo IGEgY2hhcmFjdGVyIGZyb20gdGhlIHNlYXJjaCBzdHJpbmcsCnRoaXMgZWZmZWN0IGNlYXNlcy4K CgoqKiAxNS4xMCBSZXBsYWNlbWVudCBDb21tYW5kcwoKRW1hY3MgcHJvdmlkZXMgc2V2ZXJhbCBj b21tYW5kcyBmb3IgcGVyZm9ybWluZyBzZWFyY2gtYW5kLXJlcGxhY2UKb3BlcmF0aW9ucy4gIElu IGFkZGl0aW9uIHRvIHRoZSBzaW1wbGUg4oCYTS14IHJlcGxhY2Utc3RyaW5n4oCZIGNvbW1hbmQs CnRoZXJlIGlzIOKAmE0tJeKAmSAo4oCYcXVlcnktcmVwbGFjZeKAmSksIHdoaWNoIHByZXNlbnRz IGVhY2ggb2NjdXJyZW5jZSBvZiB0aGUKc2VhcmNoIHBhdHRlcm4gYW5kIGFza3MgeW91IHdoZXRo ZXIgdG8gcmVwbGFjZSBpdC4KCiAgIFRoZSByZXBsYWNlIGNvbW1hbmRzIG5vcm1hbGx5IG9wZXJh dGUgb24gdGhlIHRleHQgZnJvbSBwb2ludCB0byB0aGUKZW5kIG9mIHRoZSBidWZmZXIuICBXaGVu IHRoZSByZWdpb24gaXMgYWN0aXZlLCB0aGV5IG9wZXJhdGUgb24gaXQKaW5zdGVhZCAoKm5vdGUg TWFyazo6KS4gIFRoZSBiYXNpYyByZXBsYWNlIGNvbW1hbmRzIHJlcGxhY2Ugb25lICJzZWFyY2gK c3RyaW5nIiAob3IgcmVnZXhwKSB3aXRoIG9uZSAicmVwbGFjZW1lbnQgc3RyaW5nIi4gIEl0IGlz IHBvc3NpYmxlIHRvCnBlcmZvcm0gc2V2ZXJhbCByZXBsYWNlbWVudHMgaW4gcGFyYWxsZWwsIHVz aW5nIHRoZSBjb21tYW5kCuKAmGV4cGFuZC1yZWdpb24tYWJicmV2c+KAmSAoKm5vdGUgRXhwYW5k aW5nIEFiYnJldnM6OikuCgorIE1lbnU6CgogIC0gVW5jb25kaXRpb25hbCBSZXBsYWNlOjogICBS ZXBsYWNpbmcgYWxsIG1hdGNoZXMgZm9yIGEgc3RyaW5nLgogIC0gUmVnZXhwIFJlcGxhY2U6OiAg ICAgICAgICBSZXBsYWNpbmcgYWxsIG1hdGNoZXMgZm9yIGEgcmVnZXhwLgogIC0gUmVwbGFjZW1l bnQgYW5kIExheCBNYXRjaGVzOjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheCBzZWFy Y2hpbmcgZm9yIHRleHQgdG8gcmVwbGFjZS4KICAtIFF1ZXJ5IFJlcGxhY2U6OiAgICAgICAgICAg SG93IHRvIHVzZSBxdWVyeWluZy4KCgoqKiogMTUuMTAuMSBVbmNvbmRpdGlvbmFsIFJlcGxhY2Vt ZW50CgrigJhNLXggcmVwbGFjZS1zdHJpbmcgPFJFVD4gU1RSSU5HIDxSRVQ+IE5FV1NUUklORyA8 UkVUPuKAmQogICAgIFJlcGxhY2UgZXZlcnkgb2NjdXJyZW5jZSBvZiBTVFJJTkcgd2l0aCBORVdT VFJJTkcuCgogICBUbyByZXBsYWNlIGV2ZXJ5IGluc3RhbmNlIG9mIOKAmGZvb+KAmSBhZnRlciBw b2ludCB3aXRoIOKAmGJhcuKAmSwgdXNlIHRoZQpjb21tYW5kIOKAmE0teCByZXBsYWNlLXN0cmlu Z+KAmSB3aXRoIHRoZSB0d28gYXJndW1lbnRzIOKAmGZvb+KAmSBhbmQg4oCYYmFy4oCZLgpSZXBs YWNlbWVudCBoYXBwZW5zIG9ubHkgaW4gdGhlIHRleHQgYWZ0ZXIgcG9pbnQsIHNvIGlmIHlvdSB3 YW50IHRvCmNvdmVyIHRoZSB3aG9sZSBidWZmZXIgeW91IG11c3QgZ28gdG8gdGhlIGJlZ2lubmlu ZyBmaXJzdC4gIEFsbApvY2N1cnJlbmNlcyB1cCB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIgYXJl IHJlcGxhY2VkOyB0byBsaW1pdApyZXBsYWNlbWVudCB0byBwYXJ0IG9mIHRoZSBidWZmZXIsIGFj dGl2YXRlIHRoZSByZWdpb24gYXJvdW5kIHRoYXQgcGFydC4KV2hlbiB0aGUgcmVnaW9uIGlzIGFj dGl2ZSwgcmVwbGFjZW1lbnQgaXMgbGltaXRlZCB0byB0aGUgcmVnaW9uICgqbm90ZQpNYXJrOjop LgoKICAgV2hlbiDigJhyZXBsYWNlLXN0cmluZ+KAmSBleGl0cywgaXQgbGVhdmVzIHBvaW50IGF0 IHRoZSBsYXN0IG9jY3VycmVuY2UKcmVwbGFjZWQuICBJdCBhZGRzIHRoZSBwcmlvciBwb3NpdGlv biBvZiBwb2ludCAod2hlcmUgdGhlCuKAmHJlcGxhY2Utc3RyaW5n4oCZIGNvbW1hbmQgd2FzIGlz c3VlZCkgdG8gdGhlIG1hcmsgcmluZywgd2l0aG91dAphY3RpdmF0aW5nIHRoZSBtYXJrOyB1c2Ug 4oCYQy11IEMtPFNQQz7igJkgdG8gbW92ZSBiYWNrIHRoZXJlLiAgKk5vdGUgTWFyawpSaW5nOjou CgogICBBIHByZWZpeCBhcmd1bWVudCByZXN0cmljdHMgcmVwbGFjZW1lbnQgdG8gbWF0Y2hlcyB0 aGF0IGFyZQpzdXJyb3VuZGVkIGJ5IHdvcmQgYm91bmRhcmllcy4KCiAgICpOb3RlIFJlcGxhY2Vt ZW50IGFuZCBMYXggTWF0Y2hlczo6LCBmb3IgZGV0YWlscyBhYm91dApjYXNlLXNlbnNpdGl2aXR5 IGFuZCBjaGFyYWN0ZXIgZm9sZGluZyBpbiByZXBsYWNlIGNvbW1hbmRzLgoKCioqKiAxNS4xMC4y IFJlZ2V4cCBSZXBsYWNlbWVudAoKVGhlIOKAmE0teCByZXBsYWNlLXN0cmluZ+KAmSBjb21tYW5k IHJlcGxhY2VzIGV4YWN0IG1hdGNoZXMgZm9yIGEgc2luZ2xlCnN0cmluZy4gIFRoZSBzaW1pbGFy IGNvbW1hbmQg4oCYTS14IHJlcGxhY2UtcmVnZXhw4oCZIHJlcGxhY2VzIGFueSBtYXRjaCBmb3IK YSBzcGVjaWZpZWQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gKCpub3RlIFJlZ2V4cHM6Oiku CgrigJhNLXggcmVwbGFjZS1yZWdleHAgPFJFVD4gUkVHRVhQIDxSRVQ+IE5FV1NUUklORyA8UkVU PuKAmQogICAgIFJlcGxhY2UgZXZlcnkgbWF0Y2ggZm9yIFJFR0VYUCB3aXRoIE5FV1NUUklORy4K CiAgIEluIOKAmHJlcGxhY2UtcmVnZXhw4oCZLCB0aGUgTkVXU1RSSU5HIG5lZWQgbm90IGJlIGNv bnN0YW50OiBpdCBjYW4gcmVmZXIKdG8gYWxsIG9yIHBhcnQgb2Ygd2hhdCBpcyBtYXRjaGVkIGJ5 IHRoZSBSRUdFWFAuICDigJhcJuKAmSBpbiBORVdTVFJJTkcKc3RhbmRzIGZvciB0aGUgZW50aXJl IG1hdGNoIGJlaW5nIHJlcGxhY2VkLiAg4oCYXETigJkgaW4gTkVXU1RSSU5HLCB3aGVyZSBECmlz IGEgZGlnaXQgc3RhcnRpbmcgZnJvbSAxLCBzdGFuZHMgZm9yIHdoYXRldmVyIG1hdGNoZWQgdGhl IER0aApwYXJlbnRoZXNpemVkIGdyb3VwaW5nIGluIFJFR0VYUC4gIChUaGlzIGlzIGNhbGxlZCBh IOKAnGJhY2sgcmVmZXJlbmNl4oCdLikK4oCYXCPigJkgcmVmZXJzIHRvIHRoZSBjb3VudCBvZiBy ZXBsYWNlbWVudHMgYWxyZWFkeSBtYWRlIGluIHRoaXMgY29tbWFuZCwKYXMgYSBkZWNpbWFsIG51 bWJlci4gIEluIHRoZSBmaXJzdCByZXBsYWNlbWVudCwg4oCYXCPigJkgc3RhbmRzIGZvciDigJgw 4oCZOyBpbgp0aGUgc2Vjb25kLCBmb3Ig4oCYMeKAmTsgYW5kIHNvIG9uLiAgRm9yIGV4YW1wbGUs CgogICAgIE0teCByZXBsYWNlLXJlZ2V4cCA8UkVUPiBjW2FkXStyIDxSRVQ+IFwmLXNhZmUgPFJF VD4KCnJlcGxhY2VzIChmb3IgZXhhbXBsZSkg4oCYY2FkcuKAmSB3aXRoIOKAmGNhZHItc2FmZeKA mSBhbmQg4oCYY2RkcuKAmSB3aXRoCuKAmGNkZHItc2FmZeKAmS4KCiAgICAgTS14IHJlcGxhY2Ut cmVnZXhwIDxSRVQ+IFwoY1thZF0rclwpLXNhZmUgPFJFVD4gXDEgPFJFVD4KCnBlcmZvcm1zIHRo ZSBpbnZlcnNlIHRyYW5zZm9ybWF0aW9uLiAgVG8gaW5jbHVkZSBhIOKAmFzigJkgaW4gdGhlIHRl eHQgdG8KcmVwbGFjZSB3aXRoLCB5b3UgbXVzdCBlbnRlciDigJhcXOKAmS4KCiAgIElmIHlvdSB3 YW50IHRvIGVudGVyIHBhcnQgb2YgdGhlIHJlcGxhY2VtZW50IHN0cmluZyBieSBoYW5kIGVhY2gK dGltZSwgdXNlIOKAmFw/4oCZIGluIHRoZSByZXBsYWNlbWVudCBzdHJpbmcuICBFYWNoIHJlcGxh Y2VtZW50IHdpbGwgYXNrIHlvdQp0byBlZGl0IHRoZSByZXBsYWNlbWVudCBzdHJpbmcgaW4gdGhl IG1pbmlidWZmZXIsIHB1dHRpbmcgcG9pbnQgd2hlcmUKdGhlIOKAmFw/4oCZIHdhcy4KCiAgIFRo ZSByZW1haW5kZXIgb2YgdGhpcyBzdWJzZWN0aW9uIGlzIGludGVuZGVkIGZvciBzcGVjaWFsaXpl ZCB0YXNrcwphbmQgcmVxdWlyZXMga25vd2xlZGdlIG9mIExpc3AuICBNb3N0IHJlYWRlcnMgY2Fu IHNraXAgaXQuCgogICBZb3UgY2FuIHVzZSBMaXNwIGV4cHJlc3Npb25zIHRvIGNhbGN1bGF0ZSBw YXJ0cyBvZiB0aGUgcmVwbGFjZW1lbnQKc3RyaW5nLiAgVG8gZG8gdGhpcywgd3JpdGUg4oCYXCzi gJkgZm9sbG93ZWQgYnkgdGhlIGV4cHJlc3Npb24gaW4gdGhlCnJlcGxhY2VtZW50IHN0cmluZy4g IEVhY2ggcmVwbGFjZW1lbnQgY2FsY3VsYXRlcyB0aGUgdmFsdWUgb2YgdGhlCmV4cHJlc3Npb24g YW5kIGNvbnZlcnRzIGl0IHRvIHRleHQgd2l0aG91dCBxdW90aW5nIChpZiBpdOKAmXMgYSBzdHJp bmcsCnRoaXMgbWVhbnMgdXNpbmcgdGhlIHN0cmluZ+KAmXMgY29udGVudHMpLCBhbmQgdXNlcyBp dCBpbiB0aGUgcmVwbGFjZW1lbnQKc3RyaW5nIGluIHBsYWNlIG9mIHRoZSBleHByZXNzaW9uIGl0 c2VsZi4gIElmIHRoZSBleHByZXNzaW9uIGlzIGEKc3ltYm9sLCBvbmUgc3BhY2UgaW4gdGhlIHJl cGxhY2VtZW50IHN0cmluZyBhZnRlciB0aGUgc3ltYm9sIG5hbWUgZ29lcwp3aXRoIHRoZSBzeW1i b2wgbmFtZSwgc28gdGhlIHZhbHVlIHJlcGxhY2VzIHRoZW0gYm90aC4KCiAgIEluc2lkZSBzdWNo IGFuIGV4cHJlc3Npb24sIHlvdSBjYW4gdXNlIHNvbWUgc3BlY2lhbCBzZXF1ZW5jZXMuICDigJhc JuKAmQphbmQg4oCYXETigJkgcmVmZXIgaGVyZSwgYXMgdXN1YWwsIHRvIHRoZSBlbnRpcmUgbWF0 Y2ggYXMgYSBzdHJpbmcsIGFuZCB0byBhCnN1Ym1hdGNoIGFzIGEgc3RyaW5nLiAgRCBtYXkgYmUg bXVsdGlwbGUgZGlnaXRzLCBhbmQgdGhlIHZhbHVlIG9mIOKAmFxE4oCZCmlzIOKAmG5pbOKAmSBp ZiB0aGUgROKAmXRoIHBhcmVudGhlc2l6ZWQgZ3JvdXBpbmcgZGlkIG5vdCBtYXRjaC4gIFlvdSBj YW4gYWxzbwp1c2Ug4oCYXCMm4oCZIGFuZCDigJhcI0TigJkgdG8gcmVmZXIgdG8gdGhvc2UgbWF0 Y2hlcyBhcyBudW1iZXJzICh0aGlzIGlzIHZhbGlkCndoZW4gdGhlIG1hdGNoIG9yIHN1Ym1hdGNo IGhhcyB0aGUgZm9ybSBvZiBhIG51bWVyYWwpLiAg4oCYXCPigJkgaGVyZSB0b28Kc3RhbmRzIGZv ciB0aGUgbnVtYmVyIG9mIGFscmVhZHktY29tcGxldGVkIHJlcGxhY2VtZW50cy4KCiAgIFJlcGVh dGluZyBvdXIgZXhhbXBsZSB0byBleGNoYW5nZSDigJh44oCZIGFuZCDigJh54oCZLCB3ZSBjYW4g dGh1cyBkbyBpdCBhbHNvCnRoaXMgd2F5OgoKICAgICBNLXggcmVwbGFjZS1yZWdleHAgPFJFVD4g XCh4XClcfHkgPFJFVD4KICAgICBcLChpZiBcMSAieSIgIngiKSA8UkVUPgoKICAgRm9yIGNvbXB1 dGluZyByZXBsYWNlbWVudCBzdHJpbmdzIGZvciDigJhcLOKAmSwgdGhlIOKAmGZvcm1hdOKAmSBm dW5jdGlvbiBpcwpvZnRlbiB1c2VmdWwgKCpub3RlIChlbGlzcClGb3JtYXR0aW5nIFN0cmluZ3M6 OikuICBGb3IgZXhhbXBsZSwgdG8gYWRkCmNvbnNlY3V0aXZlbHkgbnVtYmVyZWQgc3RyaW5ncyBs aWtlIOKAmEFCQzAwMDQy4oCZIHRvIGNvbHVtbnMgNzMgdG8gODAKKHVubGVzcyB0aGV5IGFyZSBh bHJlYWR5IG9jY3VwaWVkKSwgeW91IGNhbiB1c2UKCiAgICAgTS14IHJlcGxhY2UtcmVnZXhwIDxS RVQ+IF4uXHswLDcyXH0kIDxSRVQ+CiAgICAgXCwoZm9ybWF0ICIlLTcyc0FCQyUwNWQiIFwmIFwj KSA8UkVUPgoKCioqKiAxNS4xMC4zIFJlcGxhY2UgQ29tbWFuZHMgYW5kIExheCBNYXRjaGVzCgpU aGlzIHN1YnNlY3Rpb24gZGVzY3JpYmVzIHRoZSBiZWhhdmlvciBvZiByZXBsYWNlIGNvbW1hbmRz IHdpdGggcmVzcGVjdAp0byBsYXggbWF0Y2hlcyAoKm5vdGUgTGF4IFNlYXJjaDo6KSBhbmQgaG93 IHRvIGN1c3RvbWl6ZSBpdC4gIEluCmdlbmVyYWwsIHJlcGxhY2UgY29tbWFuZHMgbW9zdGx5IGRl ZmF1bHQgdG8gc3RyaWN0ZXIgbWF0Y2hpbmcgdGhhbiB0aGVpcgpzZWFyY2ggY291bnRlcnBhcnRz LgoKICAgVW5saWtlIGluY3JlbWVudGFsIHNlYXJjaCwgdGhlIHJlcGxhY2VtZW50IGNvbW1hbmRz IGRvIG5vdCB1c2UgbGF4CnNwYWNlIG1hdGNoaW5nICgqbm90ZSBsYXggc3BhY2UgbWF0Y2hpbmc6 IExheCBTZWFyY2guKSBieSBkZWZhdWx0LiAgVG8KZW5hYmxlIGxheCBzcGFjZSBtYXRjaGluZyBm b3IgcmVwbGFjZW1lbnQsIGNoYW5nZSB0aGUgdmFyaWFibGUK4oCYcmVwbGFjZS1sYXgtd2hpdGVz cGFjZeKAmSB0byBub24t4oCYbmls4oCZLiAgKFRoaXMgb25seSBhZmZlY3RzIGhvdyBFbWFjcwpm aW5kcyB0aGUgdGV4dCB0byByZXBsYWNlLCBub3QgdGhlIHJlcGxhY2VtZW50IHRleHQuKQoKICAg QSBjb21wYW5pb24gdmFyaWFibGUg4oCYcmVwbGFjZS1yZWdleHAtbGF4LXdoaXRlc3BhY2XigJkg Y29udHJvbHMgd2hldGhlcgrigJhxdWVyeS1yZXBsYWNlLXJlZ2V4cOKAmSB1c2VzIGxheCB3aGl0 ZXNwYWNlIG1hdGNoaW5nIHdoZW4gc2VhcmNoaW5nIGZvcgpwYXR0ZXJucy4KCiAgIElmIHRoZSBm aXJzdCBhcmd1bWVudCBvZiBhIHJlcGxhY2UgY29tbWFuZCBpcyBhbGwgbG93ZXIgY2FzZSwgdGhl CmNvbW1hbmQgaWdub3JlcyBjYXNlIHdoaWxlIHNlYXJjaGluZyBmb3Igb2NjdXJyZW5jZXMgdG8g cmVwbGFjZeKAlHByb3ZpZGVkCuKAmGNhc2UtZm9sZC1zZWFyY2jigJkgaXMgbm9uLeKAmG5pbOKA mS4gIElmIOKAmGNhc2UtZm9sZC1zZWFyY2jigJkgaXMgc2V0IHRvIOKAmG5pbOKAmSwKY2FzZSBp cyBhbHdheXMgc2lnbmlmaWNhbnQgaW4gYWxsIHNlYXJjaGVzLgoKICAgSW4gYWRkaXRpb24sIHdo ZW4gdGhlIE5FV1NUUklORyBhcmd1bWVudCBpcyBhbGwgb3IgcGFydGx5IGxvd2VyIGNhc2UsCnJl cGxhY2VtZW50IGNvbW1hbmRzIHRyeSB0byBwcmVzZXJ2ZSB0aGUgY2FzZSBwYXR0ZXJuIG9mIGVh Y2gKb2NjdXJyZW5jZS4gIFRodXMsIHRoZSBjb21tYW5kCgogICAgIE0teCByZXBsYWNlLXN0cmlu ZyA8UkVUPiBmb28gPFJFVD4gYmFyIDxSRVQ+CgpyZXBsYWNlcyBhIGxvd2VyIGNhc2Ug4oCYZm9v 4oCZIHdpdGggYSBsb3dlciBjYXNlIOKAmGJhcuKAmSwgYW4gYWxsLWNhcHMg4oCYRk9P4oCZCndp dGgg4oCYQkFS4oCZLCBhbmQgYSBjYXBpdGFsaXplZCDigJhGb2/igJkgd2l0aCDigJhCYXLigJku ICAoVGhlc2UgdGhyZWUKYWx0ZXJuYXRpdmVz4oCUbG93ZXIgY2FzZSwgYWxsIGNhcHMsIGFuZCBj YXBpdGFsaXplZCwgYXJlIHRoZSBvbmx5IG9uZXMKdGhhdCDigJhyZXBsYWNlLXN0cmluZ+KAmSBj YW4gZGlzdGluZ3Vpc2guKQoKICAgSWYgdXBwZXItY2FzZSBsZXR0ZXJzIGFyZSB1c2VkIGluIHRo ZSByZXBsYWNlbWVudCBzdHJpbmcsIHRoZXkgcmVtYWluCnVwcGVyIGNhc2UgZXZlcnkgdGltZSB0 aGF0IHRleHQgaXMgaW5zZXJ0ZWQuICBJZiB1cHBlci1jYXNlIGxldHRlcnMgYXJlCnVzZWQgaW4g dGhlIGZpcnN0IGFyZ3VtZW50LCB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGFsd2F5cyBzdWJzdGl0 dXRlZApleGFjdGx5IGFzIGdpdmVuLCB3aXRoIG5vIGNhc2UgY29udmVyc2lvbi4gIExpa2V3aXNl LCBpZiBlaXRoZXIK4oCYY2FzZS1yZXBsYWNl4oCZIG9yIOKAmGNhc2UtZm9sZC1zZWFyY2jigJkg aXMgc2V0IHRvIOKAmG5pbOKAmSwgcmVwbGFjZW1lbnQgaXMKZG9uZSB3aXRob3V0IGNhc2UgY29u dmVyc2lvbi4KCiAgIFRoZSByZXBsYWNlbWVudCBjb21tYW5kcyBieSBkZWZhdWx0IGRvIG5vdCB1 c2UgY2hhcmFjdGVyIGZvbGRpbmcKKCpub3RlIGNoYXJhY3RlciBmb2xkaW5nOiBMYXggU2VhcmNo Likgd2hlbiBsb29raW5nIGZvciB0aGUgdGV4dCB0bwpyZXBsYWNlLiAgVG8gZW5hYmxlIGNoYXJh Y3RlciBmb2xkaW5nIGZvciBtYXRjaGluZyBpbiDigJhxdWVyeS1yZXBsYWNl4oCZCmFuZCDigJhy ZXBsYWNlLXN0cmluZ+KAmSwgc2V0IHRoZSB2YXJpYWJsZSDigJhyZXBsYWNlLWNoYXItZm9sZOKA mSB0byBhCm5vbi3igJhuaWzigJkgdmFsdWUuICAoVGhpcyBzZXR0aW5nIGRvZXMgbm90IGFmZmVj dCB0aGUgcmVwbGFjZW1lbnQgdGV4dCwKb25seSBob3cgRW1hY3MgZmluZHMgdGhlIHRleHQgdG8g cmVwbGFjZS4gIEl0IGFsc28gZG9lc27igJl0IGFmZmVjdArigJhyZXBsYWNlLXJlZ2V4cOKAmS4p CgoKKioqIDE1LjEwLjQgUXVlcnkgUmVwbGFjZQoK4oCYTS0lIFNUUklORyA8UkVUPiBORVdTVFJJ TkcgPFJFVD7igJkKICAgICBSZXBsYWNlIHNvbWUgb2NjdXJyZW5jZXMgb2YgU1RSSU5HIHdpdGgg TkVXU1RSSU5HLgrigJhDLU0tJSBSRUdFWFAgPFJFVD4gTkVXU1RSSU5HIDxSRVQ+4oCZCiAgICAg UmVwbGFjZSBzb21lIG1hdGNoZXMgZm9yIFJFR0VYUCB3aXRoIE5FV1NUUklORy4KCiAgIElmIHlv dSB3YW50IHRvIGNoYW5nZSBvbmx5IHNvbWUgb2YgdGhlIG9jY3VycmVuY2VzIG9mIOKAmGZvb+KA mSB0byDigJhiYXLigJksCm5vdCBhbGwgb2YgdGhlbSwgdXNlIOKAmE0tJeKAmSAo4oCYcXVlcnkt cmVwbGFjZeKAmSkuICBUaGlzIGNvbW1hbmQgZmluZHMKb2NjdXJyZW5jZXMgb2Yg4oCYZm9v4oCZ IG9uZSBieSBvbmUsIGRpc3BsYXlzIGVhY2ggb2NjdXJyZW5jZSBhbmQgYXNrcyB5b3UKd2hldGhl ciB0byByZXBsYWNlIGl0LiAgQXNpZGUgZnJvbSBxdWVyeWluZywg4oCYcXVlcnktcmVwbGFjZeKA mSB3b3JrcyBqdXN0Cmxpa2Ug4oCYcmVwbGFjZS1zdHJpbmfigJkgKCpub3RlIFVuY29uZGl0aW9u YWwgUmVwbGFjZTo6KS4gIEluIHBhcnRpY3VsYXIsCml0IHByZXNlcnZlcyBjYXNlIHByb3ZpZGVk IOKAmGNhc2UtcmVwbGFjZeKAmSBpcyBub24t4oCYbmls4oCZLCBhcyBpdCBub3JtYWxseQppcyAo Km5vdGUgUmVwbGFjZW1lbnQgYW5kIExheCBNYXRjaGVzOjopLiAgQSBudW1lcmljIGFyZ3VtZW50 IG1lYW5zIHRvCmNvbnNpZGVyIG9ubHkgb2NjdXJyZW5jZXMgdGhhdCBhcmUgYm91bmRlZCBieSB3 b3JkLWRlbGltaXRlciBjaGFyYWN0ZXJzLgpBIG5lZ2F0aXZlIHByZWZpeCBhcmd1bWVudCByZXBs YWNlcyBiYWNrd2FyZC4KCiAgIOKAmEMtTS0l4oCZIHBlcmZvcm1zIHJlZ2V4cCBzZWFyY2ggYW5k IHJlcGxhY2UgKOKAmHF1ZXJ5LXJlcGxhY2UtcmVnZXhw4oCZKS4KSXQgd29ya3MgbGlrZSDigJhy ZXBsYWNlLXJlZ2V4cOKAmSBleGNlcHQgdGhhdCBpdCBxdWVyaWVzIGxpa2UK4oCYcXVlcnktcmVw bGFjZeKAmS4KCiAgIFlvdSBjYW4gcmV1c2UgZWFybGllciByZXBsYWNlbWVudHMgd2l0aCB0aGVz ZSBjb21tYW5kcy4gIFdoZW4K4oCYcXVlcnktcmVwbGFjZeKAmSBvciDigJhxdWVyeS1yZXBsYWNl LXJlZ2V4cOKAmSBwcm9tcHRzIGZvciB0aGUgc2VhcmNoIHN0cmluZywKdXNlIOKAmE0tcOKAmSBh bmQg4oCYTS1u4oCZIHRvIHNob3cgcHJldmlvdXMgcmVwbGFjZW1lbnRzIGluIHRoZSBmb3JtIOKA mEZST00gLT4KVE/igJksIHdoZXJlIEZST00gaXMgdGhlIHNlYXJjaCBwYXR0ZXJuLCBUTyBpcyBp dHMgcmVwbGFjZW1lbnQsIGFuZCB0aGUKc2VwYXJhdG9yIGJldHdlZW4gdGhlbSBpcyBkZXRlcm1p bmVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUK4oCYcXVlcnktcmVwbGFjZS1mcm9tLXRv LXNlcGFyYXRvcuKAmS4gIFR5cGUgPFJFVD4gdG8gc2VsZWN0IHRoZSBkZXNpcmVkCnJlcGxhY2Vt ZW50LiAgSWYgdGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgaXMg4oCYbmls4oCZLCByZXBsYWNl bWVudHMgYXJlCm5vdCBhZGRlZCB0byB0aGUgY29tbWFuZCBoaXN0b3J5LCBhbmQgY2Fubm90IGJl IHJldXNlZC4KCiAgIFRoZXNlIGNvbW1hbmRzIGhpZ2hsaWdodCB0aGUgY3VycmVudCBtYXRjaCB1 c2luZyB0aGUgZmFjZQrigJhxdWVyeS1yZXBsYWNl4oCZLiAgWW91IGNhbiBkaXNhYmxlIHRoaXMg aGlnaGxpZ2h0IGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlCuKAmHF1ZXJ5LXJlcGxhY2UtaGlnaGxp Z2h04oCZIHRvIOKAmG5pbOKAmS4gIFRoZXkgaGlnaGxpZ2h0IG90aGVyIG1hdGNoZXMgdXNpbmcK 4oCYbGF6eS1oaWdobGlnaHTigJkganVzdCBsaWtlIGluY3JlbWVudGFsIHNlYXJjaCAoKm5vdGUg SW5jcmVtZW50YWwKU2VhcmNoOjopOyB0aGlzIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nCuKA mHF1ZXJ5LXJlcGxhY2UtbGF6eS1oaWdobGlnaHTigJkgdG8g4oCYbmls4oCZLiAgQnkgZGVmYXVs dCwK4oCYcXVlcnktcmVwbGFjZS1yZWdleHDigJkgd2lsbCBzaG93IHRoZSBzdWJzdGl0dXRlZCBy ZXBsYWNlbWVudCBzdHJpbmcgZm9yCnRoZSBjdXJyZW50IG1hdGNoIGluIHRoZSBtaW5pYnVmZmVy LiAgSWYgeW91IHdhbnQgdG8ga2VlcCBzcGVjaWFsCnNlcXVlbmNlcyDigJhcJuKAmSBhbmQg4oCY XE7igJkgdW5leHBhbmRlZCwgY3VzdG9taXplCuKAmHF1ZXJ5LXJlcGxhY2Utc2hvdy1yZXBsYWNl bWVudOKAmSB2YXJpYWJsZS4KCiAgIFRoZSB2YXJpYWJsZSDigJhxdWVyeS1yZXBsYWNlLXNraXAt cmVhZC1vbmx54oCZLCBpZiBzZXQgbm9uLeKAmG5pbOKAmSwgd2lsbApjYXVzZSByZXBsYWNlbWVu dCBjb21tYW5kcyB0byBpZ25vcmUgbWF0Y2hlcyBpbiByZWFkLW9ubHkgdGV4dC4gIFRoZQpkZWZh dWx0IGlzIG5vdCB0byBpZ25vcmUgdGhlbS4KCiAgIFRoZSBjaGFyYWN0ZXJzIHlvdSBjYW4gdHlw ZSB3aGVuIHlvdSBhcmUgc2hvd24gYSBtYXRjaCBmb3IgdGhlIHN0cmluZwpvciByZWdleHAgYXJl OgoK4oCYPFNQQz7igJkK4oCYeeKAmQogICAgIHRvIHJlcGxhY2UgdGhlIG9jY3VycmVuY2Ugd2l0 aCBORVdTVFJJTkcuCgrigJg8REVMPuKAmQrigJg8RGVsZXRlPuKAmQrigJg8QkFDS1NQQUNFPuKA mQrigJhu4oCZCiAgICAgdG8gc2tpcCB0byB0aGUgbmV4dCBvY2N1cnJlbmNlIHdpdGhvdXQgcmVw bGFjaW5nIHRoaXMgb25lLgoK4oCYLCAoQ29tbWEp4oCZCiAgICAgdG8gcmVwbGFjZSB0aGlzIG9j Y3VycmVuY2UgYW5kIGRpc3BsYXkgdGhlIHJlc3VsdC4gIFlvdSBhcmUgdGhlbgogICAgIGFza2Vk IGZvciBhbm90aGVyIGlucHV0IGNoYXJhY3RlciB0byBzYXkgd2hhdCB0byBkbyBuZXh0LiAgU2lu Y2UKICAgICB0aGUgcmVwbGFjZW1lbnQgaGFzIGFscmVhZHkgYmVlbiBtYWRlLCA8REVMPiBhbmQg PFNQQz4gYXJlCiAgICAgZXF1aXZhbGVudCBpbiB0aGlzIHNpdHVhdGlvbjsgYm90aCBtb3ZlIHRv IHRoZSBuZXh0IG9jY3VycmVuY2UuCgogICAgIFlvdSBjYW4gdHlwZSDigJhDLXLigJkgYXQgdGhp cyBwb2ludCAoc2VlIGJlbG93KSB0byBhbHRlciB0aGUgcmVwbGFjZWQKICAgICB0ZXh0LiAgWW91 IGNhbiBhbHNvIHR5cGUg4oCYQy14IHXigJkgdG8gdW5kbyB0aGUgcmVwbGFjZW1lbnQ7IHRoaXMK ICAgICBleGl0cyB0aGUg4oCYcXVlcnktcmVwbGFjZeKAmSwgc28gaWYgeW91IHdhbnQgdG8gZG8g ZnVydGhlciByZXBsYWNlbWVudAogICAgIHlvdSBtdXN0IHVzZSDigJhDLXggPEVTQz4gPEVTQz4g PFJFVD7igJkgdG8gcmVzdGFydCAoKm5vdGUKICAgICBSZXBldGl0aW9uOjopLgoK4oCYPFJFVD7i gJkK4oCYceKAmQogICAgIHRvIGV4aXQgd2l0aG91dCBkb2luZyBhbnkgbW9yZSByZXBsYWNlbWVu dHMuCgrigJguIChQZXJpb2Qp4oCZCiAgICAgdG8gcmVwbGFjZSB0aGlzIG9jY3VycmVuY2UgYW5k IHRoZW4gZXhpdCB3aXRob3V0IHNlYXJjaGluZyBmb3IgbW9yZQogICAgIG9jY3VycmVuY2VzLgoK 4oCYIeKAmQogICAgIHRvIHJlcGxhY2UgYWxsIHJlbWFpbmluZyBvY2N1cnJlbmNlcyB3aXRob3V0 IGFza2luZyBhZ2Fpbi4KCuKAmF7igJkKICAgICB0byBnbyBiYWNrIHRvIHRoZSBwb3NpdGlvbiBv ZiB0aGUgcHJldmlvdXMgb2NjdXJyZW5jZSAob3Igd2hhdCB1c2VkCiAgICAgdG8gYmUgYW4gb2Nj dXJyZW5jZSksIGluIGNhc2UgeW91IGNoYW5nZWQgaXQgYnkgbWlzdGFrZSBvciB3YW50IHRvCiAg ICAgcmVleGFtaW5lIGl0LgoK4oCYdeKAmQogICAgIHRvIHVuZG8gdGhlIGxhc3QgcmVwbGFjZW1l bnQgYW5kIGdvIGJhY2sgdG8gd2hlcmUgdGhhdCByZXBsYWNlbWVudAogICAgIHdhcyBtYWRlLgoK 4oCYVeKAmQogICAgIHRvIHVuZG8gYWxsIHRoZSByZXBsYWNlbWVudHMgYW5kIGdvIGJhY2sgdG8g d2hlcmUgdGhlIGZpcnN0CiAgICAgcmVwbGFjZW1lbnQgd2FzIG1hZGUuCgrigJhDLXLigJkKICAg ICB0byBlbnRlciBhIHJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVsLCBpbiBjYXNlIHRoZSBvY2N1cnJl bmNlIG5lZWRzIHRvCiAgICAgYmUgZWRpdGVkIHJhdGhlciB0aGFuIGp1c3QgcmVwbGFjZWQgd2l0 aCBORVdTVFJJTkcuICBXaGVuIHlvdSBhcmUKICAgICBkb25lLCBleGl0IHRoZSByZWN1cnNpdmUg ZWRpdGluZyBsZXZlbCB3aXRoIOKAmEMtTS1j4oCZIHRvIHByb2NlZWQgdG8KICAgICB0aGUgbmV4 dCBvY2N1cnJlbmNlLiAgKk5vdGUgUmVjdXJzaXZlIEVkaXQ6Oi4KCuKAmEMtd+KAmQogICAgIHRv IGRlbGV0ZSB0aGUgb2NjdXJyZW5jZSwgYW5kIHRoZW4gZW50ZXIgYSByZWN1cnNpdmUgZWRpdGlu ZyBsZXZlbAogICAgIGFzIGluIOKAmEMtcuKAmS4gIFVzZSB0aGUgcmVjdXJzaXZlIGVkaXQgdG8g aW5zZXJ0IHRleHQgdG8gcmVwbGFjZSB0aGUKICAgICBkZWxldGVkIG9jY3VycmVuY2Ugb2YgU1RS SU5HLiAgV2hlbiBkb25lLCBleGl0IHRoZSByZWN1cnNpdmUKICAgICBlZGl0aW5nIGxldmVsIHdp dGgg4oCYQy1NLWPigJkgdG8gcHJvY2VlZCB0byB0aGUgbmV4dCBvY2N1cnJlbmNlLgoK4oCYZeKA mQogICAgIHRvIGVkaXQgdGhlIHJlcGxhY2VtZW50IHN0cmluZyBpbiB0aGUgbWluaWJ1ZmZlci4g IFdoZW4geW91IGV4aXQKICAgICB0aGUgbWluaWJ1ZmZlciBieSB0eXBpbmcgPFJFVD4sIHRoZSBt aW5pYnVmZmVyIGNvbnRlbnRzIHJlcGxhY2UgdGhlCiAgICAgY3VycmVudCBvY2N1cnJlbmNlIG9m IHRoZSBwYXR0ZXJuLiAgVGhleSBhbHNvIGJlY29tZSB0aGUgbmV3CiAgICAgcmVwbGFjZW1lbnQg c3RyaW5nIGZvciBhbnkgZnVydGhlciBvY2N1cnJlbmNlcy4KCuKAmEMtbOKAmQogICAgIHRvIHJl ZGlzcGxheSB0aGUgc2NyZWVuLiAgVGhlbiB5b3UgbXVzdCB0eXBlIGFub3RoZXIgY2hhcmFjdGVy IHRvCiAgICAgc3BlY2lmeSB3aGF0IHRvIGRvIHdpdGggdGhpcyBvY2N1cnJlbmNlLgoK4oCYWSAo VXBwZXItY2FzZSnigJkKICAgICB0byByZXBsYWNlIGFsbCByZW1haW5pbmcgb2NjdXJyZW5jZXMg aW4gYWxsIHJlbWFpbmluZyBidWZmZXJzIGluCiAgICAgbXVsdGktYnVmZmVyIHJlcGxhY2VtZW50 cyAobGlrZSB0aGUgRGlyZWQg4oCYUeKAmSBjb21tYW5kIHRoYXQgcGVyZm9ybXMKICAgICBxdWVy eSByZXBsYWNlIG9uIHNlbGVjdGVkIGZpbGVzKS4gIEl0IGFuc3dlcnMgdGhpcyBxdWVzdGlvbiBh bmQgYWxsCiAgICAgc3Vic2VxdWVudCBxdWVzdGlvbnMgaW4gdGhlIHNlcmllcyB3aXRoIOKAnHll c+KAnSwgd2l0aG91dCBmdXJ0aGVyIHVzZXIKICAgICBpbnRlcmFjdGlvbi4KCuKAmE4gKFVwcGVy LWNhc2Up4oCZCiAgICAgdG8gc2tpcCB0byB0aGUgbmV4dCBidWZmZXIgaW4gbXVsdGktYnVmZmVy IHJlcGxhY2VtZW50cyB3aXRob3V0CiAgICAgcmVwbGFjaW5nIHJlbWFpbmluZyBvY2N1cnJlbmNl cyBpbiB0aGUgY3VycmVudCBidWZmZXIuICBJdCBhbnN3ZXJzCiAgICAgdGhpcyBxdWVzdGlvbiDi gJxub+KAnSwgZ2l2ZXMgdXAgb24gdGhlIHF1ZXN0aW9ucyBmb3IgdGhlIGN1cnJlbnQKICAgICBi dWZmZXIsIGFuZCBjb250aW51ZXMgdG8gdGhlIG5leHQgYnVmZmVyIGluIHRoZSBzZXF1ZW5jZS4K CuKAmEMtaOKAmQrigJg/4oCZCuKAmDxGMT7igJkKICAgICB0byBkaXNwbGF5IGEgbWVzc2FnZSBz dW1tYXJpemluZyB0aGVzZSBvcHRpb25zLiAgVGhlbiB5b3UgbXVzdCB0eXBlCiAgICAgYW5vdGhl ciBjaGFyYWN0ZXIgdG8gc3BlY2lmeSB3aGF0IHRvIGRvIHdpdGggdGhpcyBvY2N1cnJlbmNlLgoK ICAgQXNpZGUgZnJvbSB0aGlzLCBhbnkgb3RoZXIgY2hhcmFjdGVyIGV4aXRzIHRoZSDigJhxdWVy eS1yZXBsYWNl4oCZLCBhbmQKaXMgdGhlbiByZXJlYWQgYXMgcGFydCBvZiBhIGtleSBzZXF1ZW5j ZS4gIFRodXMsIGlmIHlvdSB0eXBlIOKAmEMta+KAmSwgaXQKZXhpdHMgdGhlIOKAmHF1ZXJ5LXJl cGxhY2XigJkgYW5kIHRoZW4ga2lsbHMgdG8gZW5kIG9mIGxpbmUuICBJbiBwYXJ0aWN1bGFyLAri gJhDLWfigJkgc2ltcGx5IGV4aXRzIHRoZSDigJhxdWVyeS1yZXBsYWNl4oCZLgoKICAgVG8gcmVz dGFydCBhIOKAmHF1ZXJ5LXJlcGxhY2XigJkgb25jZSBpdCBpcyBleGl0ZWQsIHVzZSDigJhDLXgg PEVTQz4KPEVTQz7igJksIHdoaWNoIHJlcGVhdHMgdGhlIOKAmHF1ZXJ5LXJlcGxhY2XigJkgYmVj YXVzZSBpdCB1c2VkIHRoZSBtaW5pYnVmZmVyCnRvIHJlYWQgaXRzIGFyZ3VtZW50cy4gICpOb3Rl IEMteCA8RVNDPiA8RVNDPjogUmVwZXRpdGlvbi4KCiAgIFRoZSBvcHRpb24g4oCYc2VhcmNoLWlu dmlzaWJsZeKAmSBkZXRlcm1pbmVzIGhvdyDigJhxdWVyeS1yZXBsYWNl4oCZIHRyZWF0cwppbnZp c2libGUgdGV4dC4gICpOb3RlIE91dGxpbmUgU2VhcmNoOjouCgogICAqTm90ZSBPcGVyYXRpbmcg b24gRmlsZXM6OiwgZm9yIHRoZSBEaXJlZCDigJhR4oCZIGNvbW1hbmQgd2hpY2ggcGVyZm9ybXMK cXVlcnkgcmVwbGFjZSBvbiBzZWxlY3RlZCBmaWxlcy4gIFNlZSBhbHNvICpub3RlIFRyYW5zZm9y bWluZyBGaWxlCk5hbWVzOjosIGZvciBEaXJlZCBjb21tYW5kcyB0byByZW5hbWUsIGNvcHksIG9y IGxpbmsgZmlsZXMgYnkgcmVwbGFjaW5nCnJlZ2V4cCBtYXRjaGVzIGluIGZpbGUgbmFtZXMuCgoK KiogMTUuMTEgT3RoZXIgU2VhcmNoLWFuZC1Mb29wIENvbW1hbmRzCgpIZXJlIGFyZSBzb21lIG90 aGVyIGNvbW1hbmRzIHRoYXQgZmluZCBtYXRjaGVzIGZvciBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4K VGhleSBhbGwgaWdub3JlIGNhc2UgaW4gbWF0Y2hpbmcsIGlmIHRoZSBwYXR0ZXJuIGNvbnRhaW5z IG5vIHVwcGVyLWNhc2UKbGV0dGVycyBhbmQg4oCYY2FzZS1mb2xkLXNlYXJjaOKAmSBpcyBub24t 4oCYbmls4oCZLiAgQXNpZGUgZnJvbSDigJhtdWx0aS1vY2N1cuKAmQphbmQg4oCYbXVsdGktb2Nj dXItaW4tbWF0Y2hpbmctYnVmZmVyc+KAmSwgd2hpY2ggYWx3YXlzIHNlYXJjaCB0aGUgd2hvbGUK YnVmZmVyLCBhbGwgb3BlcmF0ZSBvbiB0aGUgdGV4dCBmcm9tIHBvaW50IHRvIHRoZSBlbmQgb2Yg dGhlIGJ1ZmZlciwgb3IKb24gdGhlIHJlZ2lvbiBpZiBpdCBpcyBhY3RpdmUuCgrigJhNLXggbXVs dGktaXNlYXJjaC1idWZmZXJz4oCZCiAgICAgUHJvbXB0IGZvciBvbmUgb3IgbW9yZSBidWZmZXIg bmFtZXMsIGVuZGluZyB3aXRoIDxSRVQ+OyB0aGVuLCBiZWdpbgogICAgIGEgbXVsdGktYnVmZmVy IGluY3JlbWVudGFsIHNlYXJjaCBpbiB0aG9zZSBidWZmZXJzLiAgKElmIHRoZSBzZWFyY2gKICAg ICBmYWlscyBpbiBvbmUgYnVmZmVyLCB0aGUgbmV4dCDigJhDLXPigJkgdHJpZXMgc2VhcmNoaW5n IHRoZSBuZXh0CiAgICAgc3BlY2lmaWVkIGJ1ZmZlciwgYW5kIHNvIGZvcnRoLikgIFdpdGggYSBw cmVmaXggYXJndW1lbnQsIHByb21wdAogICAgIGZvciBhIHJlZ2V4cCBhbmQgYmVnaW4gYSBtdWx0 aS1idWZmZXIgaW5jcmVtZW50YWwgc2VhcmNoIGluIGJ1ZmZlcnMKICAgICBtYXRjaGluZyB0aGF0 IHJlZ2V4cC4KCuKAmE0teCBtdWx0aS1pc2VhcmNoLWJ1ZmZlcnMtcmVnZXhw4oCZCiAgICAgVGhp cyBjb21tYW5kIGlzIGp1c3QgbGlrZSDigJhtdWx0aS1pc2VhcmNoLWJ1ZmZlcnPigJksIGV4Y2Vw dCBpdAogICAgIHBlcmZvcm1zIGFuIGluY3JlbWVudGFsIHJlZ2V4cCBzZWFyY2guCgrigJhNLXgg bXVsdGktaXNlYXJjaC1maWxlc+KAmQogICAgIFByb21wdCBmb3Igb25lIG9yIG1vcmUgZmlsZSBu YW1lcywgZW5kaW5nIHdpdGggPFJFVD47IHRoZW4sIGJlZ2luIGEKICAgICBtdWx0aS1maWxlIGlu Y3JlbWVudGFsIHNlYXJjaCBpbiB0aG9zZSBmaWxlcy4gIChJZiB0aGUgc2VhcmNoIGZhaWxzCiAg ICAgaW4gb25lIGZpbGUsIHRoZSBuZXh0IOKAmEMtc+KAmSB0cmllcyBzZWFyY2hpbmcgdGhlIG5l eHQgc3BlY2lmaWVkCiAgICAgZmlsZSwgYW5kIHNvIGZvcnRoLikgIFdpdGggYSBwcmVmaXggYXJn dW1lbnQsIHByb21wdCBmb3IgYSByZWdleHAKICAgICBhbmQgYmVnaW4gYSBtdWx0aS1maWxlIGlu Y3JlbWVudGFsIHNlYXJjaCBpbiBmaWxlcyBtYXRjaGluZyB0aGF0CiAgICAgcmVnZXhwLgoK4oCY TS14IG11bHRpLWlzZWFyY2gtZmlsZXMtcmVnZXhw4oCZCiAgICAgVGhpcyBjb21tYW5kIGlzIGp1 c3QgbGlrZSDigJhtdWx0aS1pc2VhcmNoLWZpbGVz4oCZLCBleGNlcHQgaXQgcGVyZm9ybXMKICAg ICBhbiBpbmNyZW1lbnRhbCByZWdleHAgc2VhcmNoLgoKICAgICBJbiBzb21lIG1vZGVzIHRoYXQg c2V0IHRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUKICAgICDigJhtdWx0aS1pc2VhcmNoLW5leHQt YnVmZmVyLWZ1bmN0aW9u4oCZIChlLmcuLCBpbiBDaGFuZ2UgTG9nIG1vZGUpIGEKICAgICBtdWx0 aS1maWxlIGluY3JlbWVudGFsIHNlYXJjaCBpcyBhY3RpdmF0ZWQgYXV0b21hdGljYWxseS4KCuKA mE0teCBvY2N1cuKAmQrigJhNLXMgb+KAmQogICAgIFByb21wdCBmb3IgYSByZWdleHAsIGFuZCBk aXNwbGF5IGEgbGlzdCBzaG93aW5nIGVhY2ggbGluZSBpbiB0aGUKICAgICBidWZmZXIgdGhhdCBj b250YWlucyBhIG1hdGNoIGZvciBpdC4gIElmIHlvdSB0eXBlIOKAmE0tbuKAmSBhdCB0aGUKICAg ICBwcm9tcHQsIHlvdSBjYW4gcmV1c2Ugc2VhcmNoIHN0cmluZ3MgZnJvbSBwcmV2aW91cyBpbmNy ZW1lbnRhbAogICAgIHNlYXJjaGVzLiAgVGhlIHRleHQgdGhhdCBtYXRjaGVkIGlzIGhpZ2hsaWdo dGVkIHVzaW5nIHRoZSDigJhtYXRjaOKAmQogICAgIGZhY2UuICBBIG51bWVyaWMgYXJndW1lbnQg TiBzcGVjaWZpZXMgdGhhdCBOIGxpbmVzIG9mIGNvbnRleHQgYXJlCiAgICAgdG8gYmUgZGlzcGxh eWVkIGJlZm9yZSBhbmQgYWZ0ZXIgZWFjaCBtYXRjaGluZyBsaW5lLgoKICAgICBUaGUgZGVmYXVs dCBudW1iZXIgb2YgY29udGV4dCBsaW5lcyBpcyBzcGVjaWZpZWQgYnkgdGhlIHZhcmlhYmxlCiAg ICAg4oCYbGlzdC1tYXRjaGluZy1saW5lcy1kZWZhdWx0LWNvbnRleHQtbGluZXPigJkuICBXaGVu CiAgICAg4oCYbGlzdC1tYXRjaGluZy1saW5lcy1qdW1wLXRvLWN1cnJlbnQtbGluZeKAmSBpcyBu b24t4oCYbmls4oCZIHRoZSBjdXJyZW50CiAgICAgbGluZSBpcyBzaG93biBoaWdobGlnaHRlZCB3 aXRoIGZhY2UKICAgICDigJhsaXN0LW1hdGNoaW5nLWxpbmVzLWN1cnJlbnQtbGluZS1mYWNl4oCZ IGFuZCB0aGUgcG9pbnQgaXMgc2V0IGF0IHRoZQogICAgIGZpcnN0IG1hdGNoIGFmdGVyIHN1Y2gg bGluZS4KCiAgICAgWW91IGNhbiBhbHNvIHJ1biDigJhNLXMgb+KAmSB3aGVuIGFuIGluY3JlbWVu dGFsIHNlYXJjaCBpcyBhY3RpdmU7IHRoaXMKICAgICB1c2VzIHRoZSBjdXJyZW50IHNlYXJjaCBz dHJpbmcuCgogICAgIE5vdGUgdGhhdCBtYXRjaGVzIGZvciB0aGUgcmVnZXhwIHlvdSB0eXBlIGFy ZSBleHRlbmRlZCB0byBpbmNsdWRlCiAgICAgY29tcGxldGUgbGluZXMsIGFuZCBhIG1hdGNoIHRo YXQgc3RhcnRzIGJlZm9yZSB0aGUgcHJldmlvdXMgbWF0Y2gKICAgICBlbmRzIGlzIG5vdCBjb25z aWRlcmVkIGEgbWF0Y2guCgogICAgIEluIHRoZSDigJgqT2NjdXIq4oCZIGJ1ZmZlciwgeW91IGNh biBjbGljayBvbiBlYWNoIGVudHJ5LCBvciBtb3ZlIHBvaW50CiAgICAgdGhlcmUgYW5kIHR5cGUg PFJFVD4sIHRvIHZpc2l0IHRoZSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZQogICAgIGJ1 ZmZlciB0aGF0IHdhcyBzZWFyY2hlZC4gIOKAmG/igJkgYW5kIOKAmEMtb+KAmSBkaXNwbGF5IHRo ZSBtYXRjaCBpbgogICAgIGFub3RoZXIgd2luZG93OyDigJhDLW/igJkgZG9lcyBub3Qgc2VsZWN0 IGl0LiAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbgogICAgIHVzZSB0aGUg4oCYQy14IGDigJkgKOKA mG5leHQtZXJyb3LigJkpIGNvbW1hbmQgdG8gdmlzaXQgdGhlIG9jY3VycmVuY2VzIG9uZQogICAg IGJ5IG9uZSAoKm5vdGUgQ29tcGlsYXRpb24gTW9kZTo6KS4KCiAgICAgVHlwaW5nIOKAmGXigJkg aW4gdGhlIOKAmCpPY2N1cirigJkgYnVmZmVyIHN3aXRjaGVzIHRvIE9jY3VyIEVkaXQgbW9kZSwg aW4KICAgICB3aGljaCBlZGl0cyBtYWRlIHRvIHRoZSBlbnRyaWVzIGFyZSBhbHNvIGFwcGxpZWQg dG8gdGhlIHRleHQgaW4gdGhlCiAgICAgb3JpZ2luYXRpbmcgYnVmZmVyLiAgVHlwZSDigJhDLWMg Qy1j4oCZIHRvIHJldHVybiB0byBPY2N1ciBtb2RlLgoKICAgICBUaGUgY29tbWFuZCDigJhNLXgg bGlzdC1tYXRjaGluZy1saW5lc+KAmSBpcyBhIHN5bm9ueW0gZm9yIOKAmE0teCBvY2N1cuKAmS4K CuKAmE0teCBtdWx0aS1vY2N1cuKAmQogICAgIFRoaXMgY29tbWFuZCBpcyBqdXN0IGxpa2Ug4oCY b2NjdXLigJksIGV4Y2VwdCBpdCBpcyBhYmxlIHRvIHNlYXJjaAogICAgIHRocm91Z2ggbXVsdGlw bGUgYnVmZmVycy4gIEl0IGFza3MgeW91IHRvIHNwZWNpZnkgdGhlIGJ1ZmZlciBuYW1lcwogICAg IG9uZSBieSBvbmUuCgrigJhNLXggbXVsdGktb2NjdXItaW4tbWF0Y2hpbmctYnVmZmVyc+KAmQog ICAgIFRoaXMgY29tbWFuZCBpcyBzaW1pbGFyIHRvIOKAmG11bHRpLW9jY3Vy4oCZLCBleGNlcHQg dGhlIGJ1ZmZlcnMgdG8KICAgICBzZWFyY2ggYXJlIHNwZWNpZmllZCBieSBhIHJlZ3VsYXIgZXhw cmVzc2lvbiB0aGF0IG1hdGNoZXMgdmlzaXRlZAogICAgIGZpbGUgbmFtZXMuICBXaXRoIGEgcHJl Zml4IGFyZ3VtZW50LCBpdCB1c2VzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24KICAgICB0byBtYXRj aCBidWZmZXIgbmFtZXMgaW5zdGVhZC4KCuKAmE0teCBob3ctbWFueeKAmQogICAgIFByb21wdCBm b3IgYSByZWdleHAsIGFuZCBwcmludCB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgZm9yIGl0IGluIHRo ZQogICAgIGJ1ZmZlciBhZnRlciBwb2ludC4gIElmIHRoZSByZWdpb24gaXMgYWN0aXZlLCB0aGlz IG9wZXJhdGVzIG9uIHRoZQogICAgIHJlZ2lvbiBpbnN0ZWFkLgoK4oCYTS14IGZsdXNoLWxpbmVz 4oCZCiAgICAgUHJvbXB0IGZvciBhIHJlZ2V4cCwgYW5kIGRlbGV0ZSBlYWNoIGxpbmUgdGhhdCBj b250YWlucyBhIG1hdGNoIGZvcgogICAgIGl0LCBvcGVyYXRpbmcgb24gdGhlIHRleHQgYWZ0ZXIg cG9pbnQuICBUaGlzIGNvbW1hbmQgZGVsZXRlcyB0aGUKICAgICBjdXJyZW50IGxpbmUgaWYgaXQg Y29udGFpbnMgYSBtYXRjaCBzdGFydGluZyBhZnRlciBwb2ludC4gIElmIHRoZQogICAgIHJlZ2lv biBpcyBhY3RpdmUsIGl0IG9wZXJhdGVzIG9uIHRoZSByZWdpb24gaW5zdGVhZDsgaWYgYSBsaW5l CiAgICAgcGFydGlhbGx5IGNvbnRhaW5lZCBpbiB0aGUgcmVnaW9uIGNvbnRhaW5zIGEgbWF0Y2gg ZW50aXJlbHkKICAgICBjb250YWluZWQgaW4gdGhlIHJlZ2lvbiwgaXQgaXMgZGVsZXRlZC4KCiAg ICAgSWYgYSBtYXRjaCBpcyBzcGxpdCBhY3Jvc3MgbGluZXMsIOKAmGZsdXNoLWxpbmVz4oCZIGRl bGV0ZXMgYWxsIHRob3NlCiAgICAgbGluZXMuICBJdCBkZWxldGVzIHRoZSBsaW5lcyBiZWZvcmUg c3RhcnRpbmcgdG8gbG9vayBmb3IgdGhlIG5leHQKICAgICBtYXRjaDsgaGVuY2UsIGl0IGlnbm9y ZXMgYSBtYXRjaCBzdGFydGluZyBvbiB0aGUgc2FtZSBsaW5lIGF0IHdoaWNoCiAgICAgYW5vdGhl ciBtYXRjaCBlbmRlZC4KCuKAmE0teCBrZWVwLWxpbmVz4oCZCiAgICAgUHJvbXB0IGZvciBhIHJl Z2V4cCwgYW5kIGRlbGV0ZSBlYWNoIGxpbmUgdGhhdCBfZG9lcyBub3RfIGNvbnRhaW4gYQogICAg IG1hdGNoIGZvciBpdCwgb3BlcmF0aW5nIG9uIHRoZSB0ZXh0IGFmdGVyIHBvaW50LiAgSWYgcG9p bnQgaXMgbm90CiAgICAgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsIHRoaXMgY29tbWFuZCBh bHdheXMga2VlcHMgdGhlIGN1cnJlbnQKICAgICBsaW5lLiAgSWYgdGhlIHJlZ2lvbiBpcyBhY3Rp dmUsIHRoZSBjb21tYW5kIG9wZXJhdGVzIG9uIHRoZSByZWdpb24KICAgICBpbnN0ZWFkOyBpdCBu ZXZlciBkZWxldGVzIGxpbmVzIHRoYXQgYXJlIG9ubHkgcGFydGlhbGx5IGNvbnRhaW5lZAogICAg IGluIHRoZSByZWdpb24gKGEgbmV3bGluZSB0aGF0IGVuZHMgYSBsaW5lIGNvdW50cyBhcyBwYXJ0 IG9mIHRoYXQKICAgICBsaW5lKS4KCiAgICAgSWYgYSBtYXRjaCBpcyBzcGxpdCBhY3Jvc3MgbGlu ZXMsIHRoaXMgY29tbWFuZCBrZWVwcyBhbGwgdGhvc2UKICAgICBsaW5lcy4KCgoqKiAxNS4xMiBU YWlsb3JpbmcgU2VhcmNoIHRvIFlvdXIgTmVlZHMKClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgbWlz Y2VsbGFuZW91cyBzZWFyY2gtcmVsYXRlZCBjdXN0b21pemF0aW9ucyBub3QKZGVzY3JpYmVkIGVs c2V3aGVyZS4KCiAgIFRoZSBkZWZhdWx0IHNlYXJjaCBtb2RlIGZvciB0aGUgaW5jcmVtZW50YWwg c2VhcmNoIGlzIHNwZWNpZmllZCBieQp0aGUgdmFyaWFibGUg4oCYc2VhcmNoLWRlZmF1bHQtbW9k ZeKAmS4gIEl0IGNhbiBiZSDigJhuaWzigJksIOKAmHTigJksIG9yIGEKZnVuY3Rpb24uICBJZiBp dCBpcyDigJhuaWzigJksIHRoZSBkZWZhdWx0IG1vZGUgaXMgdG8gZG8gbGl0ZXJhbCBzZWFyY2hl cwp3aXRob3V0IGNoYXJhY3RlciBmb2xkaW5nLCBidXQgd2l0aCBjYXNlIGZvbGRpbmcgYW5kIGxh eC13aGl0ZXNwYWNlCm1hdGNoZXMgYXMgZGV0ZXJtaW5lZCBieSDigJhjYXNlLWZvbGQtc2VhcmNo 4oCZIGFuZArigJhzZWFyY2gtd2hpdGVzcGFjZS1yZWdleHDigJksIHJlc3BlY3RpdmVseSAoKm5v dGUgTGF4IFNlYXJjaDo6KS4gIElmIHRoZQp2YWx1ZSBpcyDigJh04oCZLCBpbmNyZW1lbnRhbCBz ZWFyY2ggZGVmYXVsdHMgdG8gcmVnZXhwIHNlYXJjaGVzLiAgVGhlCmRlZmF1bHQgdmFsdWUgc3Bl Y2lmaWVzIGEgZnVuY3Rpb24gdGhhdCBvbmx5IHBlcmZvcm1zIGNhc2UgZm9sZGluZyBhbmQKbGF4 LXdoaXRlc3BhY2UgbWF0Y2hpbmcuCgogICBUaGUgY3VycmVudCBtYXRjaCBvZiBhbiBvbi1nb2lu ZyBpbmNyZW1lbnRhbCBzZWFyY2ggaXMgaGlnaGxpZ2h0ZWQKdXNpbmcgdGhlIOKAmGlzZWFyY2ji gJkgZmFjZS4gIFRoaXMgaGlnaGxpZ2h0aW5nIGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nCnRo ZSB2YXJpYWJsZSDigJhzZWFyY2gtaGlnaGxpZ2h04oCZIHRvIOKAmG5pbOKAmS4KCiAgIFRoZSBv dGhlciBtYXRjaGVzIGZvciB0aGUgc2VhcmNoIHN0cmluZyB0aGF0IGFyZSB2aXNpYmxlIG9uIGRp c3BsYXkKYXJlIGhpZ2hsaWdodGVkIHVzaW5nIHRoZSDigJhsYXp5LWhpZ2hsaWdodOKAmSBmYWNl LiAgU2V0dGluZyB0aGUgdmFyaWFibGUK4oCYaXNlYXJjaC1sYXp5LWhpZ2hsaWdodOKAmSB0byDi gJhuaWzigJkgZGlzYWJsZXMgdGhpcyBoaWdobGlnaHRpbmcuICBIZXJlIGFyZQpzb21lIG90aGVy IHZhcmlhYmxlcyB0aGF0IGN1c3RvbWl6ZSB0aGUgbGF6eSBoaWdobGlnaHRpbmc6CgrigJhsYXp5 LWhpZ2hsaWdodC1pbml0aWFsLWRlbGF54oCZCiAgICAgVGltZSBpbiBzZWNvbmRzIHRvIHdhaXQg YmVmb3JlIGhpZ2hsaWdodGluZyB2aXNpYmxlIG1hdGNoZXMuCgrigJhsYXp5LWhpZ2hsaWdodC1p bnRlcnZhbOKAmQogICAgIFRpbWUgaW4gc2Vjb25kcyBiZXR3ZWVuIGhpZ2hsaWdodGluZyBzdWNj ZXNzaXZlIG1hdGNoZXMuCgrigJhsYXp5LWhpZ2hsaWdodC1tYXgtYXQtYS10aW1l4oCZCiAgICAg VGhlIG1heGltdW0gbnVtYmVyIG9mIG1hdGNoZXMgdG8gaGlnaGxpZ2h0IGJlZm9yZSBjaGVja2lu ZyBmb3IKICAgICBpbnB1dC4gIEEgbGFyZ2UgbnVtYmVyIGNhbiB0YWtlIHNvbWUgdGltZSB0byBo aWdobGlnaHQsIHNvIGlmIHlvdQogICAgIHdhbnQgdG8gY29udGludWUgc2VhcmNoaW5nIGFuZCB0 eXBlIOKAmEMtc+KAmSBvciDigJhDLXLigJkgZHVyaW5nIHRoYXQKICAgICB0aW1lLCBFbWFjcyB3 aWxsIG5vdCByZXNwb25kIHVudGlsIGl0IGZpbmlzaGVzIGhpZ2hsaWdodGluZyBhbGwKICAgICB0 aG9zZSBtYXRjaGVzLiAgVGh1cywgc21hbGxlciB2YWx1ZXMgbWFrZSBFbWFjcyBtb3JlIHJlc3Bv bnNpdmUuCgogICBOb3JtYWxseSwgZW50ZXJpbmcgPFJFVD4gd2l0aGluIGluY3JlbWVudGFsIHNl YXJjaCB3aGVuIHRoZSBzZWFyY2gKc3RyaW5nIGlzIGVtcHR5IGxhdW5jaGVzIGEgbm9uaW5jcmVt ZW50YWwgc2VhcmNoLiAgKEFjdHVhbGx5LCBpdCBsZXRzCnlvdSBlZGl0IHRoZSBzZWFyY2ggc3Ry aW5nLCBhbmQgdGhlIG5leHQgPFJFVD4gZG9lcyB0aGUgc2VhcmNoLikKSG93ZXZlciwgaWYgeW91 IGN1c3RvbWl6ZSB0aGUgdmFyaWFibGUg4oCYc2VhcmNoLW5vbmluY3JlbWVudGFsLWluc3RlYWTi gJkKdG8g4oCYbmls4oCZLCB0eXBpbmcgPFJFVD4gd2lsbCBhbHdheXMgZXhpdCB0aGUgaW5jcmVt ZW50YWwgc2VhcmNoLCBldmVuIGlmCnRoZSBzZWFyY2ggc3RyaW5nIGlzIGVtcHR5LgoKICAgQnkg ZGVmYXVsdCwgaW5jcmVtZW50YWwgc2VhcmNoIGFuZCBxdWVyeS1yZXBsYWNlIGNvbW1hbmRzIG1h dGNoCmludmlzaWJsZSB0ZXh0LCBidXQgaGlkZSBhbnkgc3VjaCBtYXRjaGVzIGFzIHNvb24gYXMg dGhlIGN1cnJlbnQgbWF0Y2gKbW92ZXMgb2ZmIHRoZSBpbnZpc2libGUgdGV4dC4gIElmIHlvdSBj dXN0b21pemUgdGhlIHZhcmlhYmxlCuKAmGlzZWFyY2gtaGlkZS1pbW1lZGlhdGVseeKAmSB0byDi gJhuaWzigJksIGFueSBpbnZpc2libGUgdGV4dCB3aGVyZSBtYXRjaGVzCndlcmUgZm91bmQgc3Rh eXMgb24gZGlzcGxheSB1bnRpbCB0aGUgc2VhcmNoIG9yIHRoZSByZXBsYWNlIGNvbW1hbmQKZXhp dHMuCgogICBTZWFyY2hpbmcgaW5jcmVtZW50YWxseSBvbiBzbG93IHRlcm1pbmFscywgc3VjaCBh cyBkaXNwbGF5cyBjb25uZWN0ZWQKdG8gcmVtb3RlIG1hY2hpbmVzIG92ZXIgc2xvdyBjb25uZWN0 aW9uLCBjb3VsZCBiZSBhbm5veWluZyBkdWUgdG8gdGhlCm5lZWQgdG8gcmVkcmF3IGxhcmdlIHBv cnRpb25zIG9mIHRoZSBkaXNwbGF5IGFzIHRoZSBzZWFyY2ggcHJvY2VlZHMuCkVtYWNzIHByb3Zp ZGVzIGEgc3BlY2lhbCBkaXNwbGF5IG1vZGUgZm9yIHNsb3cgdGVybWluYWxzLCB3aGVyZWJ5IHNl YXJjaApwb3BzIHVwIGEgc2VwYXJhdGUgc21hbGwgd2luZG93IGFuZCBkaXNwbGF5cyB0aGUgdGV4 dCBzdXJyb3VuZGluZyB0aGUKbWF0Y2ggaW4gdGhhdCB3aW5kb3cuICBTbWFsbCB3aW5kb3dzIGRp c3BsYXkgZmFzdGVyLCBzbyB0aGUgYW5ub3lpbmcKZWZmZWN0IG9mIHNsb3cgc3BlZWQgaXMgYWxs ZXZpYXRlZC4gIFRoZSB2YXJpYWJsZSDigJhzZWFyY2gtc2xvdy1zcGVlZOKAmQpkZXRlcm1pbmVz IHRoZSBiYXVkIHJhdGUgdGhyZXNob2xkIGJlbG93IHdoaWNoIEVtYWNzIHdpbGwgdXNlIHRoaXMK ZGlzcGxheSBtb2RlLiAgVGhlIHZhcmlhYmxlIOKAmHNlYXJjaC1zbG93LXdpbmRvdy1saW5lc+KA mSBjb250cm9scyB0aGUKbnVtYmVyIG9mIGxpbmVzIGluIHRoZSB3aW5kb3cgRW1hY3MgcG9wcyB1 cCBmb3IgZGlzcGxheWluZyB0aGUgc2VhcmNoCnJlc3VsdHM7IHRoZSBkZWZhdWx0IGlzIDEgbGlu ZS4gIE5vcm1hbGx5LCB0aGlzIHdpbmRvdyB3aWxsIHBvcCB1cCBhdAp0aGUgYm90dG9tIG9mIHRo ZSB3aW5kb3cgdGhhdCBkaXNwbGF5cyB0aGUgYnVmZmVyIHdoZXJlIHlvdSBzdGFydApzZWFyY2hp bmcsIGJ1dCBpZiB0aGUgdmFsdWUgb2Yg4oCYc2VhcmNoLXNsb3ctd2luZG93LWxpbmVz4oCZIGlz IG5lZ2F0aXZlLAp0aGF0IG1lYW5zIHRvIHB1dCB0aGUgd2luZG93IGF0IHRoZSB0b3AgYW5kIGdp dmUgaXQgdGhlIG51bWJlciBvZiBsaW5lcwp0aGF0IGlzIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiDi gJhzZWFyY2gtc2xvdy13aW5kb3ctbGluZXPigJkuCgoKKiAxNiBDb21tYW5kcyBmb3IgRml4aW5n IFR5cG9zCgpJbiB0aGlzIGNoYXB0ZXIgd2UgZGVzY3JpYmUgY29tbWFuZHMgdGhhdCBhcmUgdXNl ZnVsIHdoZW4geW91IGNhdGNoIGEKbWlzdGFrZSB3aGlsZSBlZGl0aW5nLiAgVGhlIG1vc3QgZnVu ZGFtZW50YWwgb2YgdGhlc2UgY29tbWFuZHMgaXMgdGhlCnVuZG8gY29tbWFuZCDigJhDLS/igJkg KGFsc28gYm91bmQgdG8g4oCYQy14IHXigJkgYW5kIOKAmEMtX+KAmSkuICBUaGlzIHVuZG9lcyBh CnNpbmdsZSBjb21tYW5kLCBvciBhIHBhcnQgb2YgYSBjb21tYW5kIChhcyBpbiB0aGUgY2FzZSBv ZgrigJhxdWVyeS1yZXBsYWNl4oCZKSwgb3Igc2V2ZXJhbCBjb25zZWN1dGl2ZSBjaGFyYWN0ZXIg aW5zZXJ0aW9ucy4KQ29uc2VjdXRpdmUgcmVwZXRpdGlvbnMgb2Yg4oCYQy0v4oCZIHVuZG8gZWFy bGllciBhbmQgZWFybGllciBjaGFuZ2VzLCBiYWNrCnRvIHRoZSBsaW1pdCBvZiB0aGUgdW5kbyBp bmZvcm1hdGlvbiBhdmFpbGFibGUuCgogICBBc2lkZSBmcm9tIHRoZSBjb21tYW5kcyBkZXNjcmli ZWQgaGVyZSwgeW91IGNhbiBlcmFzZSB0ZXh0IHVzaW5nCmRlbGV0aW9uIGNvbW1hbmRzIHN1Y2gg YXMgPERFTD4gKOKAmGRlbGV0ZS1iYWNrd2FyZC1jaGFy4oCZKS4gIFRoZXNlIHdlcmUKZGVzY3Jp YmVkIGVhcmxpZXIgaW4gdGhpcyBtYW51YWwuICAqTm90ZSBFcmFzaW5nOjouCgorIE1lbnU6Cgog IC0gVW5kbzo6ICAgICAgICBUaGUgVW5kbyBjb21tYW5kcy4KICAtIFRyYW5zcG9zZTo6ICAgRXhj aGFuZ2luZyB0d28gY2hhcmFjdGVycywgd29yZHMsIGxpbmVzLCBsaXN0cy4uLgogIC0gRml4aW5n IENhc2U6OiBDb3JyZWN0aW5nIGNhc2Ugb2YgbGFzdCB3b3JkIGVudGVyZWQuCiAgLSBTcGVsbGlu Zzo6ICAgIEFwcGx5IHNwZWxsaW5nIGNoZWNrZXIgdG8gYSB3b3JkLCBvciBhIHdob2xlIGZpbGUu CgoKKiogMTYuMSBVbmRvCgpUaGUgInVuZG8iIGNvbW1hbmQgcmV2ZXJzZXMgcmVjZW50IGNoYW5n ZXMgaW4gdGhlIGJ1ZmZlcuKAmXMgdGV4dC4gIEVhY2gKYnVmZmVyIHJlY29yZHMgY2hhbmdlcyBp bmRpdmlkdWFsbHksIGFuZCB0aGUgdW5kbyBjb21tYW5kIGFsd2F5cyBhcHBsaWVzCnRvIHRoZSBj dXJyZW50IGJ1ZmZlci4gIFlvdSBjYW4gdW5kbyBhbGwgdGhlIGNoYW5nZXMgaW4gYSBidWZmZXIg Zm9yIGFzCmZhciBiYWNrIGFzIHRoZSBidWZmZXLigJlzIHJlY29yZHMgZ28uICBVc3VhbGx5LCBl YWNoIGVkaXRpbmcgY29tbWFuZAptYWtlcyBhIHNlcGFyYXRlIGVudHJ5IGluIHRoZSB1bmRvIHJl Y29yZHMsIGJ1dCBzb21lIGNvbW1hbmRzIHN1Y2ggYXMK4oCYcXVlcnktcmVwbGFjZeKAmSBkaXZp ZGUgdGhlaXIgY2hhbmdlcyBpbnRvIG11bHRpcGxlIGVudHJpZXMgZm9yCmZsZXhpYmlsaXR5IGlu IHVuZG9pbmcuICBDb25zZWN1dGl2ZSBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGNvbW1hbmRzIGFyZQp1 c3VhbGx5IGdyb3VwZWQgdG9nZXRoZXIgaW50byBhIHNpbmdsZSB1bmRvIHJlY29yZCwgdG8gbWFr ZSB1bmRvaW5nIGxlc3MKdGVkaW91cy4KCuKAmEMtL+KAmQrigJhDLXggdeKAmQrigJhDLV/igJkK ICAgICBVbmRvIG9uZSBlbnRyeSBpbiB0aGUgY3VycmVudCBidWZmZXLigJlzIHVuZG8gcmVjb3Jk cyAo4oCYdW5kb+KAmSkuCgogICBUbyBiZWdpbiB0byB1bmRvLCB0eXBlIOKAmEMtL+KAmSAob3Ig aXRzIGFsaWFzZXMsIOKAmEMtX+KAmSBvciDigJhDLXggdeKAmSkoMSkuClRoaXMgdW5kb2VzIHRo ZSBtb3N0IHJlY2VudCBjaGFuZ2UgaW4gdGhlIGJ1ZmZlciwgYW5kIG1vdmVzIHBvaW50IGJhY2sK dG8gd2hlcmUgaXQgd2FzIGJlZm9yZSB0aGF0IGNoYW5nZS4gIENvbnNlY3V0aXZlIHJlcGV0aXRp b25zIG9mIOKAmEMtL+KAmQoob3IgaXRzIGFsaWFzZXMpIHVuZG8gZWFybGllciBhbmQgZWFybGll ciBjaGFuZ2VzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4KSWYgYWxsIHRoZSByZWNvcmRlZCBjaGFu Z2VzIGhhdmUgYWxyZWFkeSBiZWVuIHVuZG9uZSwgdGhlIHVuZG8gY29tbWFuZApzaWduYWxzIGFu IGVycm9yLgoKICAgQW55IGNvbW1hbmQgb3RoZXIgdGhhbiBhbiB1bmRvIGNvbW1hbmQgYnJlYWtz IHRoZSBzZXF1ZW5jZSBvZiB1bmRvCmNvbW1hbmRzLiAgU3RhcnRpbmcgZnJvbSB0aGF0IG1vbWVu dCwgdGhlIGVudGlyZSBzZXF1ZW5jZSBvZiB1bmRvCmNvbW1hbmRzIHRoYXQgeW91IGhhdmUganVz dCBwZXJmb3JtZWQgYXJlIHRoZW1zZWx2ZXMgcGxhY2VkIGludG8gdGhlCnVuZG8gcmVjb3JkLiAg VGhlcmVmb3JlLCB0byByZS1hcHBseSBjaGFuZ2VzIHlvdSBoYXZlIHVuZG9uZSwgdHlwZSDigJhD LWbigJkKb3IgYW55IG90aGVyIGNvbW1hbmQgdGhhdCBoYXJtbGVzc2x5IGJyZWFrcyB0aGUgc2Vx dWVuY2Ugb2YgdW5kb2luZzsKdGhlbiB0eXBlIOKAmEMtL+KAmSBvbmUgb3IgbW9yZSB0aW1lcyB0 byB1bmRvIHNvbWUgb2YgdGhlIHVuZG8gY29tbWFuZHMuCgogICBBbHRlcm5hdGl2ZWx5LCBpZiB5 b3Ugd2FudCB0byByZXN1bWUgdW5kb2luZywgd2l0aG91dCByZWRvaW5nCnByZXZpb3VzIHVuZG8g Y29tbWFuZHMsIHVzZSDigJhNLXggdW5kby1vbmx54oCZLiAgVGhpcyBpcyBsaWtlIOKAmHVuZG/i gJksIGJ1dAp3aWxsIG5vdCByZWRvIGNoYW5nZXMgeW91IGhhdmUganVzdCB1bmRvbmUuCgogICBJ ZiB5b3Ugbm90aWNlIHRoYXQgYSBidWZmZXIgaGFzIGJlZW4gbW9kaWZpZWQgYWNjaWRlbnRhbGx5 LCB0aGUKZWFzaWVzdCB3YXkgdG8gcmVjb3ZlciBpcyB0byB0eXBlIOKAmEMtL+KAmSByZXBlYXRl ZGx5IHVudGlsIHRoZSBzdGFycwpkaXNhcHBlYXIgZnJvbSB0aGUgZnJvbnQgb2YgdGhlIG1vZGUg bGluZSAoKm5vdGUgTW9kZSBMaW5lOjopLiAgV2hlbmV2ZXIKYW4gdW5kbyBjb21tYW5kIG1ha2Vz IHRoZSBzdGFycyBkaXNhcHBlYXIgZnJvbSB0aGUgbW9kZSBsaW5lLCBpdCBtZWFucwp0aGF0IHRo ZSBidWZmZXIgY29udGVudHMgYXJlIHRoZSBzYW1lIGFzIHRoZXkgd2VyZSB3aGVuIHRoZSBmaWxl IHdhcwpsYXN0IHJlYWQgaW4gb3Igc2F2ZWQuICBJZiB5b3UgZG8gbm90IHJlbWVtYmVyIHdoZXRo ZXIgeW91IGNoYW5nZWQgdGhlCmJ1ZmZlciBkZWxpYmVyYXRlbHksIHR5cGUg4oCYQy0v4oCZIG9u Y2UuICBXaGVuIHlvdSBzZWUgdGhlIGxhc3QgY2hhbmdlIHlvdQptYWRlIHVuZG9uZSwgeW91IHdp bGwgc2VlIHdoZXRoZXIgaXQgd2FzIGFuIGludGVudGlvbmFsIGNoYW5nZS4gIElmIGl0CndhcyBh biBhY2NpZGVudCwgbGVhdmUgaXQgdW5kb25lLiAgSWYgaXQgd2FzIGRlbGliZXJhdGUsIHJlZG8g dGhlIGNoYW5nZQphcyBkZXNjcmliZWQgYWJvdmUuCgogICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2Fu IGRpc2NhcmQgYWxsIHRoZSBjaGFuZ2VzIHNpbmNlIHRoZSBidWZmZXIgd2FzCmxhc3QgdmlzaXRl ZCBvciBzYXZlZCB3aXRoIOKAmE0teCByZXZlcnQtYnVmZmVy4oCZICgqbm90ZSBSZXZlcnRpbmc6 OikuCgogICBXaGVuIHRoZXJlIGlzIGFuIGFjdGl2ZSByZWdpb24sIGFueSB1c2Ugb2Yg4oCYdW5k b+KAmSBwZXJmb3JtcyAic2VsZWN0aXZlCnVuZG8iOiBpdCB1bmRvZXMgdGhlIG1vc3QgcmVjZW50 IGNoYW5nZSB3aXRoaW4gdGhlIHJlZ2lvbiwgaW5zdGVhZCBvZgp0aGUgZW50aXJlIGJ1ZmZlci4g IEhvd2V2ZXIsIHdoZW4gVHJhbnNpZW50IE1hcmsgbW9kZSBpcyBvZmYgKCpub3RlCkRpc2FibGVk IFRyYW5zaWVudCBNYXJrOjopLCDigJhDLS/igJkgYWx3YXlzIG9wZXJhdGVzIG9uIHRoZSBlbnRp cmUgYnVmZmVyLAppZ25vcmluZyB0aGUgcmVnaW9uLiAgSW4gdGhpcyBjYXNlLCB5b3UgY2FuIHBl cmZvcm0gc2VsZWN0aXZlIHVuZG8gYnkKc3VwcGx5aW5nIGEgcHJlZml4IGFyZ3VtZW50IHRvIHRo ZSDigJh1bmRv4oCZIGNvbW1hbmQ6IOKAmEMtdSBDLS/igJkuICBUbyB1bmRvCmZ1cnRoZXIgY2hh bmdlcyBpbiB0aGUgc2FtZSByZWdpb24sIHJlcGVhdCB0aGUg4oCYdW5kb+KAmSBjb21tYW5kIChu byBwcmVmaXgKYXJndW1lbnQgaXMgbmVlZGVkKS4KCiAgIFNvbWUgc3BlY2lhbGl6ZWQgYnVmZmVy cyBkbyBub3QgbWFrZSB1bmRvIHJlY29yZHMuICBCdWZmZXJzIHdob3NlCm5hbWVzIHN0YXJ0IHdp dGggc3BhY2VzIG5ldmVyIGRvOyB0aGVzZSBidWZmZXJzIGFyZSB1c2VkIGludGVybmFsbHkgYnkK RW1hY3MgdG8gaG9sZCB0ZXh0IHRoYXQgdXNlcnMgZG9u4oCZdCBub3JtYWxseSBsb29rIGF0IG9y IGVkaXQuCgogICBXaGVuIHRoZSB1bmRvIGluZm9ybWF0aW9uIGZvciBhIGJ1ZmZlciBiZWNvbWVz IHRvbyBsYXJnZSwgRW1hY3MKZGlzY2FyZHMgdGhlIG9sZGVzdCByZWNvcmRzIGZyb20gdGltZSB0 byB0aW1lIChkdXJpbmcgImdhcmJhZ2UKY29sbGVjdGlvbiIpLiAgWW91IGNhbiBzcGVjaWZ5IGhv dyBtdWNoIHVuZG8gaW5mb3JtYXRpb24gdG8ga2VlcCBieQpzZXR0aW5nIHRoZSB2YXJpYWJsZXMg 4oCYdW5kby1saW1pdOKAmSwg4oCYdW5kby1zdHJvbmctbGltaXTigJksIGFuZArigJh1bmRvLW91 dGVyLWxpbWl04oCZLiAgVGhlaXIgdmFsdWVzIGFyZSBleHByZXNzZWQgaW4gYnl0ZXMuCgogICBU aGUgdmFyaWFibGUg4oCYdW5kby1saW1pdOKAmSBzZXRzIGEgc29mdCBsaW1pdDogRW1hY3Mga2Vl cHMgdW5kbyBkYXRhCmZvciBlbm91Z2ggY29tbWFuZHMgdG8gcmVhY2ggdGhpcyBzaXplLCBhbmQg cGVyaGFwcyBleGNlZWQgaXQsIGJ1dCBkb2VzCm5vdCBrZWVwIGRhdGEgZm9yIGFueSBlYXJsaWVy IGNvbW1hbmRzIGJleW9uZCB0aGF0LiAgSXRzIGRlZmF1bHQgdmFsdWUKaXMgODAwMDAuICBUaGUg dmFyaWFibGUg4oCYdW5kby1zdHJvbmctbGltaXTigJkgc2V0cyBhIHN0cmljdGVyIGxpbWl0OiBh bnkKcHJldmlvdXMgY29tbWFuZCAodGhvdWdoIG5vdCB0aGUgbW9zdCByZWNlbnQgb25lKSB0aGF0 IHB1c2hlcyB0aGUgc2l6ZQpwYXN0IHRoaXMgYW1vdW50IGlzIGZvcmdvdHRlbi4gIFRoZSBkZWZh dWx0IHZhbHVlIG9mIOKAmHVuZG8tc3Ryb25nLWxpbWl04oCZCmlzIDEyMDAwMC4KCiAgIFJlZ2Fy ZGxlc3Mgb2YgdGhlIHZhbHVlcyBvZiB0aG9zZSB2YXJpYWJsZXMsIHRoZSBtb3N0IHJlY2VudCBj aGFuZ2UKaXMgbmV2ZXIgZGlzY2FyZGVkIHVubGVzcyBpdCBnZXRzIGJpZ2dlciB0aGFuIOKAmHVu ZG8tb3V0ZXItbGltaXTigJkKKG5vcm1hbGx5IDEyLDAwMCwwMDApLiAgQXQgdGhhdCBwb2ludCwg RW1hY3MgZGlzY2FyZHMgdGhlIHVuZG8gZGF0YSBhbmQKd2FybnMgeW91IGFib3V0IGl0LiAgVGhp cyBpcyB0aGUgb25seSBzaXR1YXRpb24gaW4gd2hpY2ggeW91IGNhbm5vdCB1bmRvCnRoZSBsYXN0 IGNvbW1hbmQuICBJZiB0aGlzIGhhcHBlbnMsIHlvdSBjYW4gaW5jcmVhc2UgdGhlIHZhbHVlIG9m CuKAmHVuZG8tb3V0ZXItbGltaXTigJkgdG8gbWFrZSBpdCBldmVuIGxlc3MgbGlrZWx5IHRvIGhh cHBlbiBpbiB0aGUgZnV0dXJlLgpCdXQgaWYgeW91IGRpZG7igJl0IGV4cGVjdCB0aGUgY29tbWFu ZCB0byBjcmVhdGUgc3VjaCBsYXJnZSB1bmRvIGRhdGEsCnRoZW4gaXQgaXMgcHJvYmFibHkgYSBi dWcgYW5kIHlvdSBzaG91bGQgcmVwb3J0IGl0LiAgKk5vdGUgUmVwb3J0aW5nCkJ1Z3M6IEJ1Z3Mu CgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgQXNpZGUgZnJvbSDi gJhDLS/igJksIHRoZSDigJh1bmRv4oCZIGNvbW1hbmQgaXMgYWxzbyBib3VuZCB0byDigJhDLXgg deKAmQpiZWNhdXNlIHRoYXQgaXMgbW9yZSBzdHJhaWdodGZvcndhcmQgZm9yIGJlZ2lubmVycyB0 byByZW1lbWJlcjog4oCYdeKAmQpzdGFuZHMgZm9yIOKAnHVuZG/igJ0uICBJdCBpcyBhbHNvIGJv dW5kIHRvIOKAmEMtX+KAmSBiZWNhdXNlIHR5cGluZyDigJhDLS/igJkgb24Kc29tZSB0ZXh0IHRl cm1pbmFscyBhY3R1YWxseSBlbnRlcnMg4oCYQy1f4oCZLgoKCioqIDE2LjIgVHJhbnNwb3Npbmcg VGV4dAoK4oCYQy104oCZCiAgICAgVHJhbnNwb3NlIHR3byBjaGFyYWN0ZXJzICjigJh0cmFuc3Bv c2UtY2hhcnPigJkpLgrigJhNLXTigJkKICAgICBUcmFuc3Bvc2UgdHdvIHdvcmRzICjigJh0cmFu c3Bvc2Utd29yZHPigJkpLgrigJhDLU0tdOKAmQogICAgIFRyYW5zcG9zZSB0d28gYmFsYW5jZWQg ZXhwcmVzc2lvbnMgKOKAmHRyYW5zcG9zZS1zZXhwc+KAmSkuCuKAmEMteCBDLXTigJkKICAgICBU cmFuc3Bvc2UgdHdvIGxpbmVzICjigJh0cmFuc3Bvc2UtbGluZXPigJkpLgoKICAgVGhlIGNvbW1v biBlcnJvciBvZiB0cmFuc3Bvc2luZyB0d28gY2hhcmFjdGVycyBjYW4gYmUgZml4ZWQsIHdoZW4K dGhleSBhcmUgYWRqYWNlbnQsIHdpdGggdGhlIOKAmEMtdOKAmSBjb21tYW5kICjigJh0cmFuc3Bv c2UtY2hhcnPigJkpLgpOb3JtYWxseSwg4oCYQy104oCZIHRyYW5zcG9zZXMgdGhlIHR3byBjaGFy YWN0ZXJzIG9uIGVpdGhlciBzaWRlIG9mIHBvaW50LgpXaGVuIGdpdmVuIGF0IHRoZSBlbmQgb2Yg YSBsaW5lLCByYXRoZXIgdGhhbiB0cmFuc3Bvc2luZyB0aGUgbGFzdApjaGFyYWN0ZXIgb2YgdGhl IGxpbmUgd2l0aCB0aGUgbmV3bGluZSwgd2hpY2ggd291bGQgYmUgdXNlbGVzcywg4oCYQy104oCZ CnRyYW5zcG9zZXMgdGhlIGxhc3QgdHdvIGNoYXJhY3RlcnMgb24gdGhlIGxpbmUuICBTbywgaWYg eW91IGNhdGNoIHlvdXIKdHJhbnNwb3NpdGlvbiBlcnJvciByaWdodCBhd2F5LCB5b3UgY2FuIGZp eCBpdCB3aXRoIGp1c3QgYSDigJhDLXTigJkuICBJZgp5b3UgZG9u4oCZdCBjYXRjaCBpdCBzbyBm YXN0LCB5b3UgbXVzdCBtb3ZlIHRoZSBjdXJzb3IgYmFjayBiZXR3ZWVuIHRoZQp0d28gdHJhbnNw b3NlZCBjaGFyYWN0ZXJzIGJlZm9yZSB5b3UgdHlwZSDigJhDLXTigJkuICBJZiB5b3UgdHJhbnNw b3NlZCBhCnNwYWNlIHdpdGggdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSB3b3JkIGJlZm9yZSBp dCwgdGhlIHdvcmQgbW90aW9uCmNvbW1hbmRzICjigJhNLWbigJksIOKAmE0tYuKAmSwgZXRjLikg IGFyZSBhIGdvb2Qgd2F5IG9mIGdldHRpbmcgdGhlcmUuCk90aGVyd2lzZSwgYSByZXZlcnNlIHNl YXJjaCAo4oCYQy1y4oCZKSBpcyBvZnRlbiB0aGUgYmVzdCB3YXkuICAqTm90ZQpTZWFyY2g6Oi4K CiAgIOKAmE0tdOKAmSB0cmFuc3Bvc2VzIHRoZSB3b3JkIGJlZm9yZSBwb2ludCB3aXRoIHRoZSB3 b3JkIGFmdGVyIHBvaW50CijigJh0cmFuc3Bvc2Utd29yZHPigJkpLiAgSXQgbW92ZXMgcG9pbnQg Zm9yd2FyZCBvdmVyIGEgd29yZCwgZHJhZ2dpbmcgdGhlCndvcmQgcHJlY2VkaW5nIG9yIGNvbnRh aW5pbmcgcG9pbnQgZm9yd2FyZCBhcyB3ZWxsLiAgVGhlIHB1bmN0dWF0aW9uCmNoYXJhY3RlcnMg YmV0d2VlbiB0aGUgd29yZHMgZG8gbm90IG1vdmUuICBGb3IgZXhhbXBsZSwg4oCYRk9PLCBCQVLi gJkKdHJhbnNwb3NlcyBpbnRvIOKAmEJBUiwgRk9P4oCZIHJhdGhlciB0aGFuIOKAmEJBUiBGT08s 4oCZLiAgV2hlbiBwb2ludCBpcyBhdCB0aGUKZW5kIG9mIHRoZSBsaW5lLCBpdCB3aWxsIHRyYW5z cG9zZSB0aGUgd29yZCBiZWZvcmUgcG9pbnQgd2l0aCB0aGUgZmlyc3QKd29yZCBvbiB0aGUgbmV4 dCBsaW5lLgoKICAg4oCYQy1NLXTigJkgKOKAmHRyYW5zcG9zZS1zZXhwc+KAmSkgaXMgYSBzaW1p bGFyIGNvbW1hbmQgZm9yIHRyYW5zcG9zaW5nIHR3bwpleHByZXNzaW9ucyAoKm5vdGUgRXhwcmVz c2lvbnM6OiksIGFuZCDigJhDLXggQy104oCZICjigJh0cmFuc3Bvc2UtbGluZXPigJkpCmV4Y2hh bmdlcyBsaW5lcy4gIFRoZXkgd29yayBsaWtlIOKAmE0tdOKAmSBleGNlcHQgYXMgcmVnYXJkcyB0 aGUgdW5pdHMgb2YKdGV4dCB0aGV5IHRyYW5zcG9zZS4KCiAgIEEgbnVtZXJpYyBhcmd1bWVudCB0 byBhIHRyYW5zcG9zZSBjb21tYW5kIHNlcnZlcyBhcyBhIHJlcGVhdCBjb3VudDoKaXQgdGVsbHMg dGhlIHRyYW5zcG9zZSBjb21tYW5kIHRvIG1vdmUgdGhlIGNoYXJhY3RlciAob3Igd29yZCBvcgpl eHByZXNzaW9uIG9yIGxpbmUpIGJlZm9yZSBvciBjb250YWluaW5nIHBvaW50IGFjcm9zcyBzZXZl cmFsIG90aGVyCmNoYXJhY3RlcnMgKG9yIHdvcmRzIG9yIGV4cHJlc3Npb25zIG9yIGxpbmVzKS4g IEZvciBleGFtcGxlLCDigJhDLXUgMyBDLXTigJkKbW92ZXMgdGhlIGNoYXJhY3RlciBiZWZvcmUg cG9pbnQgZm9yd2FyZCBhY3Jvc3MgdGhyZWUgb3RoZXIgY2hhcmFjdGVycy4KSXQgd291bGQgY2hh bmdlIOKAmGbimIVvb2JhcuKAmSBpbnRvIOKAmG9vYmbimIVhcuKAmS4gIFRoaXMgaXMgZXF1aXZh bGVudCB0bwpyZXBlYXRpbmcg4oCYQy104oCZIHRocmVlIHRpbWVzLiAg4oCYQy11IC0gNCBNLXTi gJkgbW92ZXMgdGhlIHdvcmQgYmVmb3JlIHBvaW50CmJhY2t3YXJkIGFjcm9zcyBmb3VyIHdvcmRz LiAg4oCYQy11IC0gQy1NLXTigJkgd291bGQgY2FuY2VsIHRoZSBlZmZlY3Qgb2YKcGxhaW4g4oCY Qy1NLXTigJkuCgogICBBIG51bWVyaWMgYXJndW1lbnQgb2YgemVybyBpcyBhc3NpZ25lZCBhIHNw ZWNpYWwgbWVhbmluZyAoYmVjYXVzZQpvdGhlcndpc2UgYSBjb21tYW5kIHdpdGggYSByZXBlYXQg Y291bnQgb2YgemVybyB3b3VsZCBkbyBub3RoaW5nKTogdG8KdHJhbnNwb3NlIHRoZSBjaGFyYWN0 ZXIgKG9yIHdvcmQgb3IgZXhwcmVzc2lvbiBvciBsaW5lKSBlbmRpbmcgYWZ0ZXIKcG9pbnQgd2l0 aCB0aGUgb25lIGVuZGluZyBhZnRlciB0aGUgbWFyay4KCgoqKiAxNi4zIENhc2UgQ29udmVyc2lv bgoK4oCYTS0tIE0tbOKAmQogICAgIENvbnZlcnQgbGFzdCB3b3JkIHRvIGxvd2VyIGNhc2UuICBO b3RlIOKAmE1ldGEtLeKAmSBpcyBNZXRhLW1pbnVzLgrigJhNLS0gTS114oCZCiAgICAgQ29udmVy dCBsYXN0IHdvcmQgdG8gYWxsIHVwcGVyIGNhc2UuCuKAmE0tLSBNLWPigJkKICAgICBDb252ZXJ0 IGxhc3Qgd29yZCB0byBsb3dlciBjYXNlIHdpdGggY2FwaXRhbCBpbml0aWFsLgoKICAgQSB2ZXJ5 IGNvbW1vbiBlcnJvciBpcyB0byB0eXBlIHdvcmRzIGluIHRoZSB3cm9uZyBjYXNlLiAgQmVjYXVz ZSBvZgp0aGlzLCB0aGUgd29yZCBjYXNlLWNvbnZlcnNpb24gY29tbWFuZHMg4oCYTS1s4oCZLCDi gJhNLXXigJksIGFuZCDigJhNLWPigJkgaGF2ZSBhCnNwZWNpYWwgZmVhdHVyZSB3aGVuIHVzZWQg d2l0aCBhIG5lZ2F0aXZlIGFyZ3VtZW50OiB0aGV5IGRvIG5vdCBtb3ZlIHRoZQpjdXJzb3IuICBB cyBzb29uIGFzIHlvdSBzZWUgeW91IGhhdmUgbWlzdHlwZWQgdGhlIGxhc3Qgd29yZCwgeW91IGNh bgpzaW1wbHkgY2FzZS1jb252ZXJ0IGl0IGFuZCBnbyBvbiB0eXBpbmcuICAqTm90ZSBDYXNlOjou CgoKKiogMTYuNCBDaGVja2luZyBhbmQgQ29ycmVjdGluZyBTcGVsbGluZwoKVGhpcyBzZWN0aW9u IGRlc2NyaWJlcyB0aGUgY29tbWFuZHMgdG8gY2hlY2sgdGhlIHNwZWxsaW5nIG9mIGEgc2luZ2xl CndvcmQgb3Igb2YgYSBwb3J0aW9uIG9mIGEgYnVmZmVyLiAgVGhlc2UgY29tbWFuZHMgb25seSB3 b3JrIGlmIGEKc3BlbGxpbmcgY2hlY2tlciBwcm9ncmFtLCBvbmUgb2YgSHVuc3BlbGwsIEFzcGVs bCwgSXNwZWxsIG9yIEVuY2hhbnQsIGlzCmluc3RhbGxlZC4gIFRoZXNlIHByb2dyYW1zIGFyZSBu b3QgcGFydCBvZiBFbWFjcywgYnV0IG9uZSBvZiB0aGVtIGlzCnVzdWFsbHkgaW5zdGFsbGVkIG9u IEdOVS9MaW51eCBhbmQgb3RoZXIgZnJlZSBvcGVyYXRpbmcgc3lzdGVtcy4gICpOb3RlCkFzcGVs bDogKGFzcGVsbClUb3AuCgrigJhNLSTigJkKICAgICBDaGVjayBhbmQgY29ycmVjdCBzcGVsbGlu ZyBvZiB0aGUgd29yZCBhdCBwb2ludCAo4oCYaXNwZWxsLXdvcmTigJkpLgogICAgIElmIHRoZSBy ZWdpb24gaXMgYWN0aXZlLCBkbyBpdCBmb3IgYWxsIHdvcmRzIGluIHRoZSByZWdpb24gaW5zdGVh ZC4K4oCYTS14IGlzcGVsbOKAmQogICAgIENoZWNrIGFuZCBjb3JyZWN0IHNwZWxsaW5nIG9mIGFs bCB3b3JkcyBpbiB0aGUgYnVmZmVyLiAgSWYgdGhlCiAgICAgcmVnaW9uIGlzIGFjdGl2ZSwgZG8g aXQgZm9yIGFsbCB3b3JkcyBpbiB0aGUgcmVnaW9uIGluc3RlYWQuCuKAmE0teCBpc3BlbGwtYnVm ZmVy4oCZCiAgICAgQ2hlY2sgYW5kIGNvcnJlY3Qgc3BlbGxpbmcgaW4gdGhlIGJ1ZmZlci4K4oCY TS14IGlzcGVsbC1yZWdpb27igJkKICAgICBDaGVjayBhbmQgY29ycmVjdCBzcGVsbGluZyBpbiB0 aGUgcmVnaW9uLgrigJhNLXggaXNwZWxsLW1lc3NhZ2XigJkKICAgICBDaGVjayBhbmQgY29ycmVj dCBzcGVsbGluZyBpbiBhIGRyYWZ0IG1haWwgbWVzc2FnZSwgZXhjbHVkaW5nIGNpdGVkCiAgICAg bWF0ZXJpYWwuCuKAmE0teCBpc3BlbGwtY2hhbmdlLWRpY3Rpb25hcnkgPFJFVD4gRElDVCA8UkVU PuKAmQogICAgIFJlc3RhcnQgdGhlIHNwZWxsLWNoZWNrZXIgcHJvY2VzcywgdXNpbmcgRElDVCBh cyB0aGUgZGljdGlvbmFyeS4K4oCYTS14IGlzcGVsbC1raWxsLWlzcGVsbOKAmQogICAgIEtpbGwg dGhlIHNwZWxsLWNoZWNrZXIgc3VicHJvY2Vzcy4K4oCYTS08VEFCPuKAmQrigJg8RVNDPiA8VEFC PuKAmQrigJhDLU0taeKAmQogICAgIENvbXBsZXRlIHRoZSB3b3JkIGJlZm9yZSBwb2ludCBiYXNl ZCBvbiB0aGUgc3BlbGxpbmcgZGljdGlvbmFyeQogICAgICjigJhpc3BlbGwtY29tcGxldGUtd29y ZOKAmSkuCuKAmE0teCBmbHlzcGVsbC1tb2Rl4oCZCiAgICAgRW5hYmxlIEZseXNwZWxsIG1vZGUs IHdoaWNoIGhpZ2hsaWdodHMgYWxsIG1pc3NwZWxsZWQgd29yZHMuCuKAmE0teCBmbHlzcGVsbC1w cm9nLW1vZGXigJkKICAgICBFbmFibGUgRmx5c3BlbGwgbW9kZSBmb3IgY29tbWVudHMgYW5kIHN0 cmluZ3Mgb25seS4KCiAgIFRvIGNoZWNrIHRoZSBzcGVsbGluZyBvZiB0aGUgd29yZCBhcm91bmQg b3IgYmVmb3JlIHBvaW50LCBhbmQKb3B0aW9uYWxseSBjb3JyZWN0IGl0IGFzIHdlbGwsIHR5cGUg 4oCYTS0k4oCZICjigJhpc3BlbGwtd29yZOKAmSkuICBJZiBhIHJlZ2lvbgppcyBhY3RpdmUsIOKA mE0tJOKAmSBjaGVja3MgdGhlIHNwZWxsaW5nIG9mIGFsbCB3b3JkcyB3aXRoaW4gdGhlIHJlZ2lv bi4KKk5vdGUgTWFyazo6LiAgKFdoZW4gVHJhbnNpZW50IE1hcmsgbW9kZSBpcyBvZmYsIOKAmE0t JOKAmSBhbHdheXMgYWN0cyBvbgp0aGUgd29yZCBhcm91bmQgb3IgYmVmb3JlIHBvaW50LCBpZ25v cmluZyB0aGUgcmVnaW9uOyAqbm90ZSBEaXNhYmxlZApUcmFuc2llbnQgTWFyazo6LikKCiAgIFNp bWlsYXJseSwgdGhlIGNvbW1hbmQg4oCYTS14IGlzcGVsbOKAmSBwZXJmb3JtcyBzcGVsbC1jaGVj a2luZyBpbiB0aGUKcmVnaW9uIGlmIG9uZSBpcyBhY3RpdmUsIG9yIGluIHRoZSBlbnRpcmUgYnVm ZmVyIG90aGVyd2lzZS4gIFRoZQpjb21tYW5kcyDigJhNLXggaXNwZWxsLWJ1ZmZlcuKAmSBhbmQg 4oCYTS14IGlzcGVsbC1yZWdpb27igJkgZXhwbGljaXRseSBwZXJmb3JtCnNwZWxsLWNoZWNraW5n IG9uIHRoZSBlbnRpcmUgYnVmZmVyIG9yIHRoZSByZWdpb24gcmVzcGVjdGl2ZWx5LiAgVG8KY2hl Y2sgc3BlbGxpbmcgaW4gYW4gZW1haWwgbWVzc2FnZSB5b3UgYXJlIHdyaXRpbmcsIHVzZSDigJhN LXgKaXNwZWxsLW1lc3NhZ2XigJk7IHRoYXQgY29tbWFuZCBjaGVja3MgdGhlIHdob2xlIGJ1ZmZl ciwgZXhjZXB0IGZvcgptYXRlcmlhbCB0aGF0IGlzIGluZGVudGVkIG9yIGFwcGVhcnMgdG8gYmUg Y2l0ZWQgZnJvbSBvdGhlciBtZXNzYWdlcy4KKk5vdGUgU2VuZGluZyBNYWlsOjouCgogICBXaGVu IG9uZSBvZiB0aGVzZSBjb21tYW5kcyBlbmNvdW50ZXJzIHdoYXQgYXBwZWFycyB0byBiZSBhbiBp bmNvcnJlY3QKd29yZCwgaXQgYXNrcyB5b3Ugd2hhdCB0byBkby4gIEl0IHVzdWFsbHkgZGlzcGxh eXMgYSBsaXN0IG9mIG51bWJlcmVkCiJuZWFyLW1pc3NlcyLigJR3b3JkcyB0aGF0IGFyZSBjbG9z ZSB0byB0aGUgaW5jb3JyZWN0IHdvcmQuICBUaGVuIHlvdSBtdXN0CnR5cGUgYSBzaW5nbGUtY2hh cmFjdGVyIHJlc3BvbnNlLiAgSGVyZSBhcmUgdGhlIHZhbGlkIHJlc3BvbnNlczoKCuKAmERJR0lU 4oCZCiAgICAgUmVwbGFjZSB0aGUgd29yZCwganVzdCB0aGlzIHRpbWUsIHdpdGggb25lIG9mIHRo ZSBkaXNwbGF5ZWQKICAgICBuZWFyLW1pc3Nlcy4gIEVhY2ggbmVhci1taXNzIGlzIGxpc3RlZCB3 aXRoIGEgZGlnaXQ7IHR5cGUgdGhhdAogICAgIGRpZ2l0IHRvIHNlbGVjdCBpdC4KCuKAmDxTUEM+ 4oCZCiAgICAgU2tpcCB0aGlzIHdvcmTigJRjb250aW51ZSB0byBjb25zaWRlciBpdCBpbmNvcnJl Y3QsIGJ1dCBkb27igJl0IGNoYW5nZQogICAgIGl0IGhlcmUuCgrigJhyIE5FVyA8UkVUPuKAmQog ICAgIFJlcGxhY2UgdGhlIHdvcmQsIGp1c3QgdGhpcyB0aW1lLCB3aXRoIE5FVy4gIChUaGUgcmVw bGFjZW1lbnQKICAgICBzdHJpbmcgd2lsbCBiZSByZXNjYW5uZWQgZm9yIG1vcmUgc3BlbGxpbmcg ZXJyb3JzLikKCuKAmFIgTkVXIDxSRVQ+4oCZCiAgICAgUmVwbGFjZSB0aGUgd29yZCB3aXRoIE5F VywgYW5kIGRvIGEg4oCYcXVlcnktcmVwbGFjZeKAmSBzbyB5b3UgY2FuCiAgICAgcmVwbGFjZSBp dCBlbHNld2hlcmUgaW4gdGhlIGJ1ZmZlciBpZiB5b3Ugd2lzaC4gIChUaGUgcmVwbGFjZW1lbnRz CiAgICAgd2lsbCBiZSByZXNjYW5uZWQgZm9yIG1vcmUgc3BlbGxpbmcgZXJyb3JzLikKCuKAmGHi gJkKICAgICBBY2NlcHQgdGhlIGluY29ycmVjdCB3b3Jk4oCUdHJlYXQgaXQgYXMgY29ycmVjdCwg YnV0IG9ubHkgaW4gdGhpcwogICAgIGVkaXRpbmcgc2Vzc2lvbi4KCuKAmEHigJkKICAgICBBY2Nl cHQgdGhlIGluY29ycmVjdCB3b3Jk4oCUdHJlYXQgaXQgYXMgY29ycmVjdCwgYnV0IG9ubHkgaW4g dGhpcwogICAgIGVkaXRpbmcgc2Vzc2lvbiBhbmQgZm9yIHRoaXMgYnVmZmVyLgoK4oCYaeKAmQog ICAgIEluc2VydCB0aGlzIHdvcmQgaW4geW91ciBwcml2YXRlIGRpY3Rpb25hcnkgZmlsZSBzbyB0 aGF0IGl0IHdpbGwgYmUKICAgICBjb25zaWRlcmVkIGNvcnJlY3QgZnJvbSBub3cgb24sIGV2ZW4g aW4gZnV0dXJlIHNlc3Npb25zLgoK4oCYbeKAmQogICAgIExpa2Ug4oCYaeKAmSwgYnV0IHlvdSBj YW4gYWxzbyBzcGVjaWZ5IGRpY3Rpb25hcnkgY29tcGxldGlvbgogICAgIGluZm9ybWF0aW9uLgoK 4oCYdeKAmQogICAgIEluc2VydCB0aGUgbG93ZXItY2FzZSB2ZXJzaW9uIG9mIHRoaXMgd29yZCBp biB5b3VyIHByaXZhdGUKICAgICBkaWN0aW9uYXJ5IGZpbGUuCgrigJhsIFdPUkQgPFJFVD7igJkK ICAgICBMb29rIGluIHRoZSBkaWN0aW9uYXJ5IGZvciB3b3JkcyB0aGF0IG1hdGNoIFdPUkQuICBU aGVzZSB3b3JkcwogICAgIGJlY29tZSB0aGUgbmV3IGxpc3Qgb2YgbmVhci1taXNzZXM7IHlvdSBj YW4gc2VsZWN0IG9uZSBvZiB0aGVtIGFzCiAgICAgdGhlIHJlcGxhY2VtZW50IGJ5IHR5cGluZyBh IGRpZ2l0LiAgWW91IGNhbiB1c2Ug4oCYKuKAmSBpbiBXT1JEIGFzIGEKICAgICB3aWxkY2FyZC4K CuKAmEMtZ+KAmQrigJhY4oCZCiAgICAgUXVpdCBpbnRlcmFjdGl2ZSBzcGVsbC1jaGVja2luZywg bGVhdmluZyBwb2ludCBhdCB0aGUgd29yZCB0aGF0IHdhcwogICAgIGJlaW5nIGNoZWNrZWQuICBZ b3UgY2FuIHJlc3RhcnQgY2hlY2tpbmcgYWdhaW4gYWZ0ZXJ3YXJkIHdpdGgg4oCYQy11CiAgICAg TS0k4oCZLgoK4oCYeOKAmQogICAgIFF1aXQgaW50ZXJhY3RpdmUgc3BlbGwtY2hlY2tpbmcgYW5k IG1vdmUgcG9pbnQgYmFjayB0byB3aGVyZSBpdCB3YXMKICAgICB3aGVuIHlvdSBzdGFydGVkIHNw ZWxsLWNoZWNraW5nLgoK4oCYceKAmQogICAgIFF1aXQgaW50ZXJhY3RpdmUgc3BlbGwtY2hlY2tp bmcgYW5kIGtpbGwgdGhlIHNwZWxsLWNoZWNrZXIKICAgICBzdWJwcm9jZXNzLgoK4oCYP+KAmQog ICAgIFNob3cgdGhlIGxpc3Qgb2Ygb3B0aW9ucy4KCiAgIEluIFRleHQgbW9kZSBhbmQgcmVsYXRl ZCBtb2Rlcywg4oCYTS08VEFCPuKAmSAo4oCYaXNwZWxsLWNvbXBsZXRlLXdvcmTigJkpCnBlcmZv cm1zIGluLWJ1ZmZlciBjb21wbGV0aW9uIGJhc2VkIG9uIHNwZWxsaW5nIGNvcnJlY3Rpb24uICBJ bnNlcnQgdGhlCmJlZ2lubmluZyBvZiBhIHdvcmQsIGFuZCB0aGVuIHR5cGUg4oCYTS08VEFCPuKA mTsgdGhpcyBzaG93cyBhIGxpc3Qgb2YKY29tcGxldGlvbnMuICAoSWYgeW91ciB3aW5kb3cgbWFu YWdlciBpbnRlcmNlcHRzIOKAmE0tPFRBQj7igJksIHR5cGUg4oCYPEVTQz4KPFRBQj7igJkgb3Ig 4oCYQy1NLWnigJkuKSAgRWFjaCBjb21wbGV0aW9uIGlzIGxpc3RlZCB3aXRoIGEgZGlnaXQgb3IK Y2hhcmFjdGVyOyB0eXBlIHRoYXQgZGlnaXQgb3IgY2hhcmFjdGVyIHRvIGNob29zZSBpdC4KCiAg IE9uY2Ugc3RhcnRlZCwgdGhlIHNwZWxsLWNoZWNrZXIgc3VicHJvY2VzcyBjb250aW51ZXMgdG8g cnVuLCB3YWl0aW5nCmZvciBzb21ldGhpbmcgdG8gZG8sIHNvIHRoYXQgc3Vic2VxdWVudCBzcGVs bC1jaGVja2luZyBjb21tYW5kcyBjb21wbGV0ZQptb3JlIHF1aWNrbHkuICBJZiB5b3Ugd2FudCB0 byBnZXQgcmlkIG9mIHRoZSBwcm9jZXNzLCB1c2Ug4oCYTS14CmlzcGVsbC1raWxsLWlzcGVsbOKA mS4gIFRoaXMgaXMgbm90IHVzdWFsbHkgbmVjZXNzYXJ5LCBzaW5jZSB0aGUgcHJvY2Vzcwp1c2Vz IG5vIHByb2Nlc3NvciB0aW1lIGV4Y2VwdCB3aGVuIHlvdSBkbyBzcGVsbGluZyBjb3JyZWN0aW9u LgoKICAgU3BlbGwtY2hlY2tlcnMgbG9vayB1cCBzcGVsbGluZyBpbiB0d28gZGljdGlvbmFyaWVz OiB0aGUgc3RhbmRhcmQKZGljdGlvbmFyeSBhbmQgeW91ciBwZXJzb25hbCBkaWN0aW9uYXJ5LiAg VGhlIHN0YW5kYXJkIGRpY3Rpb25hcnkgaXMKc3BlY2lmaWVkIGJ5IHRoZSB2YXJpYWJsZSDigJhp c3BlbGwtbG9jYWwtZGljdGlvbmFyeeKAmSBvciwgaWYgdGhhdCBpcwrigJhuaWzigJksIGJ5IHRo ZSB2YXJpYWJsZSDigJhpc3BlbGwtZGljdGlvbmFyeeKAmS4gIElmIGJvdGggYXJlIOKAmG5pbOKA mSwgdGhlCnNwZWxsaW5nIHByb2dyYW3igJlzIGRlZmF1bHQgZGljdGlvbmFyeSBpcyB1c2VkLiAg VGhlIGNvbW1hbmQg4oCYTS14CmlzcGVsbC1jaGFuZ2UtZGljdGlvbmFyeeKAmSBzZXRzIHRoZSBz dGFuZGFyZCBkaWN0aW9uYXJ5IGZvciB0aGUgYnVmZmVyCmFuZCB0aGVuIHJlc3RhcnRzIHRoZSBz dWJwcm9jZXNzLCBzbyB0aGF0IGl0IHdpbGwgdXNlIGEgZGlmZmVyZW50CnN0YW5kYXJkIGRpY3Rp b25hcnkuICBZb3VyIHBlcnNvbmFsIGRpY3Rpb25hcnkgaXMgc3BlY2lmaWVkIGJ5IHRoZQp2YXJp YWJsZSDigJhpc3BlbGwtcGVyc29uYWwtZGljdGlvbmFyeeKAmS4gIElmIHRoYXQgaXMg4oCYbmls 4oCZLCB0aGUgc3BlbGxpbmcKcHJvZ3JhbSBsb29rcyBmb3IgYSBwZXJzb25hbCBkaWN0aW9uYXJ5 IGluIGEgZGVmYXVsdCBsb2NhdGlvbiwgd2hpY2ggaXMKc3BlY2lmaWMgdG8gZWFjaCBzcGVsbC1j aGVja2VyLgoKICAgQSBzZXBhcmF0ZSBkaWN0aW9uYXJ5IGlzIHVzZWQgZm9yIHdvcmQgY29tcGxl dGlvbi4gIFRoZSB2YXJpYWJsZQrigJhpc3BlbGwtY29tcGxldGUtd29yZC1kaWN04oCZIHNwZWNp ZmllcyB0aGUgZmlsZSBuYW1lIG9mIHRoaXMgZGljdGlvbmFyeS4KVGhlIGNvbXBsZXRpb24gZGlj dGlvbmFyeSBtdXN0IGJlIGRpZmZlcmVudCBiZWNhdXNlIGl0IGNhbm5vdCB1c2UgdGhlCmluZm9y bWF0aW9uIGFib3V0IHJvb3RzIGFuZCBhZmZpeGVzIG9mIHRoZSB3b3Jkcywgd2hpY2ggc3BlbGwt Y2hlY2tpbmcKdXNlcyB0byBkZXRlY3QgdmFyaWF0aW9ucyBvZiB3b3Jkcy4gIEZvciBzb21lIGxh bmd1YWdlcywgdGhlcmUgaXMgYQpzcGVsbC1jaGVja2luZyBkaWN0aW9uYXJ5IGJ1dCBubyB3b3Jk IGNvbXBsZXRpb24gZGljdGlvbmFyeS4KCiAgIEZseXNwZWxsIG1vZGUgaXMgYSBtaW5vciBtb2Rl IHRoYXQgcGVyZm9ybXMgYXV0b21hdGljIHNwZWxsLWNoZWNraW5nCm9mIHRoZSB0ZXh0IHlvdSB0 eXBlIGFzIHlvdSB0eXBlIGl0LiAgV2hlbiBpdCBmaW5kcyBhIHdvcmQgdGhhdCBpdCBkb2VzCm5v dCByZWNvZ25pemUsIGl0IGhpZ2hsaWdodHMgdGhhdCB3b3JkLiAgVHlwZSDigJhNLXggZmx5c3Bl bGwtbW9kZeKAmSB0bwp0b2dnbGUgRmx5c3BlbGwgbW9kZSBpbiB0aGUgY3VycmVudCBidWZmZXIu ICBUbyBlbmFibGUgRmx5c3BlbGwgbW9kZSBpbgphbGwgdGV4dCBtb2RlIGJ1ZmZlcnMsIGFkZCDi gJhmbHlzcGVsbC1tb2Rl4oCZIHRvIOKAmHRleHQtbW9kZS1ob29r4oCZLiAgKk5vdGUKSG9va3M6 Oi4gIE5vdGUgdGhhdCwgYXMgRmx5c3BlbGwgbW9kZSBuZWVkcyB0byBjaGVjayBlYWNoIHdvcmQg YWNyb3NzCndoaWNoIHlvdSBtb3ZlLCBpdCB3aWxsIHNsb3cgZG93biBjdXJzb3IgbW90aW9uIGFu ZCBzY3JvbGxpbmcgY29tbWFuZHMuCkl0IGFsc28gZG9lc27igJl0IGF1dG9tYXRpY2FsbHkgY2hl Y2sgdGhlIHRleHQgeW91IGRpZG7igJl0IHR5cGUgb3IgbW92ZQphY3Jvc3M7IHVzZSDigJhmbHlz cGVsbC1yZWdpb27igJkgb3Ig4oCYZmx5c3BlbGwtYnVmZmVy4oCZIGZvciB0aGF0LgoKICAgV2hl biBGbHlzcGVsbCBtb2RlIGhpZ2hsaWdodHMgYSB3b3JkIGFzIG1pc3NwZWxsZWQsIHlvdSBjYW4g Y2xpY2sgb24KaXQgd2l0aCDigJhtb3VzZS0y4oCZICjigJhmbHlzcGVsbC1jb3JyZWN0LXdvcmTi gJkpIHRvIGRpc3BsYXkgYSBtZW51IG9mCnBvc3NpYmxlIGNvcnJlY3Rpb25zIGFuZCBhY3Rpb25z LiAgSW4gYWRkaXRpb24sIOKAmEMtLuKAmSBvciDigJg8RVNDPi08VEFCPuKAmQoo4oCYZmx5c3Bl bGwtYXV0by1jb3JyZWN0LXdvcmTigJkpIHdpbGwgcHJvcG9zZSB2YXJpb3VzIHN1Y2Nlc3NpdmUK Y29ycmVjdGlvbnMgZm9yIHRoZSB3b3JkIGF0IHBvaW50LCBhbmQg4oCYQy1jICTigJkKKOKAmGZs eXNwZWxsLWNvcnJlY3Qtd29yZC1iZWZvcmUtcG9pbnTigJkpIHdpbGwgcG9wIHVwIGEgbWVudSBv ZiBwb3NzaWJsZQpjb3JyZWN0aW9ucy4gIE9mIGNvdXJzZSwgeW91IGNhbiBhbHdheXMgY29ycmVj dCB0aGUgbWlzc3BlbGxlZCB3b3JkIGJ5CmVkaXRpbmcgaXQgbWFudWFsbHkgaW4gYW55IHdheSB5 b3UgbGlrZS4KCiAgIEZseXNwZWxsIFByb2cgbW9kZSB3b3JrcyBqdXN0IGxpa2Ugb3JkaW5hcnkg Rmx5c3BlbGwgbW9kZSwgZXhjZXB0CnRoYXQgaXQgb25seSBjaGVja3Mgd29yZHMgaW4gY29tbWVu dHMgYW5kIHN0cmluZyBjb25zdGFudHMuICBUaGlzCmZlYXR1cmUgaXMgdXNlZnVsIGZvciBlZGl0 aW5nIHByb2dyYW1zLiAgVHlwZSDigJhNLXggZmx5c3BlbGwtcHJvZy1tb2Rl4oCZCnRvIGVuYWJs ZSBvciBkaXNhYmxlIHRoaXMgbW9kZSBpbiB0aGUgY3VycmVudCBidWZmZXIuICBUbyBlbmFibGUg dGhpcwptb2RlIGluIGFsbCBwcm9ncmFtbWluZyBtb2RlIGJ1ZmZlcnMsIGFkZCDigJhmbHlzcGVs bC1wcm9nLW1vZGXigJkgdG8K4oCYcHJvZy1tb2RlLWhvb2vigJkgKCpub3RlIEhvb2tzOjopLgoK CiogMTcgS2V5Ym9hcmQgTWFjcm9zCgpJbiB0aGlzIGNoYXB0ZXIgd2UgZGVzY3JpYmUgaG93IHRv IHJlY29yZCBhIHNlcXVlbmNlIG9mIGVkaXRpbmcgY29tbWFuZHMKc28geW91IGNhbiByZXBlYXQg aXQgY29udmVuaWVudGx5IGxhdGVyLgoKICAgQSAia2V5Ym9hcmQgbWFjcm8iIGlzIGEgY29tbWFu ZCBkZWZpbmVkIGJ5IGFuIEVtYWNzIHVzZXIgdG8gc3RhbmQgZm9yCmFub3RoZXIgc2VxdWVuY2Ug b2Yga2V5cy4gIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzY292ZXIgdGhhdCB5b3UgYXJlCmFib3V0 IHRvIHR5cGUg4oCYQy1uIE0tZCBDLWTigJkgZm9ydHkgdGltZXMsIHlvdSBjYW4gc3BlZWQgeW91 ciB3b3JrIGJ5CmRlZmluaW5nIGEga2V5Ym9hcmQgbWFjcm8gdG8gZG8g4oCYQy1uIE0tZCBDLWTi gJksIGFuZCB0aGVuIGV4ZWN1dGluZyBpdCAzOQptb3JlIHRpbWVzLgoKICAgWW91IGRlZmluZSBh IGtleWJvYXJkIG1hY3JvIGJ5IGV4ZWN1dGluZyBhbmQgcmVjb3JkaW5nIHRoZSBjb21tYW5kcwp3 aGljaCBhcmUgaXRzIGRlZmluaXRpb24uICBQdXQgZGlmZmVyZW50bHksIGFzIHlvdSBkZWZpbmUg YSBrZXlib2FyZAptYWNybywgdGhlIGRlZmluaXRpb24gaXMgYmVpbmcgZXhlY3V0ZWQgZm9yIHRo ZSBmaXJzdCB0aW1lLiAgVGhpcyB3YXksCnlvdSBjYW4gc2VlIHRoZSBlZmZlY3RzIG9mIHlvdXIg Y29tbWFuZHMsIHNvIHRoYXQgeW91IGRvbuKAmXQgaGF2ZSB0bwpmaWd1cmUgdGhlbSBvdXQgaW4g eW91ciBoZWFkLiAgV2hlbiB5b3UgY2xvc2UgdGhlIGRlZmluaXRpb24sIHRoZQprZXlib2FyZCBt YWNybyBpcyBkZWZpbmVkIGFuZCBhbHNvIGhhcyBiZWVuLCBpbiBlZmZlY3QsIGV4ZWN1dGVkIG9u Y2UuCllvdSBjYW4gdGhlbiBkbyB0aGUgd2hvbGUgdGhpbmcgb3ZlciBhZ2FpbiBieSBpbnZva2lu ZyB0aGUgbWFjcm8uCgogICBLZXlib2FyZCBtYWNyb3MgZGlmZmVyIGZyb20gb3JkaW5hcnkgRW1h Y3MgY29tbWFuZHMgaW4gdGhhdCB0aGV5IGFyZQp3cml0dGVuIGluIHRoZSBFbWFjcyBjb21tYW5k IGxhbmd1YWdlIHJhdGhlciB0aGFuIGluIExpc3AuICBUaGlzIG1ha2VzCml0IGVhc2llciBmb3Ig dGhlIG5vdmljZSB0byB3cml0ZSB0aGVtLCBhbmQgbWFrZXMgdGhlbSBtb3JlIGNvbnZlbmllbnQK YXMgdGVtcG9yYXJ5IGhhY2tzLiAgSG93ZXZlciwgdGhlIEVtYWNzIGNvbW1hbmQgbGFuZ3VhZ2Ug aXMgbm90IHBvd2VyZnVsCmVub3VnaCBhcyBhIHByb2dyYW1taW5nIGxhbmd1YWdlIHRvIGJlIHVz ZWZ1bCBmb3Igd3JpdGluZyBhbnl0aGluZwppbnRlbGxpZ2VudCBvciBnZW5lcmFsLiAgRm9yIHN1 Y2ggdGhpbmdzLCBMaXNwIG11c3QgYmUgdXNlZC4KCisgTWVudToKCiAgLSBCYXNpYyBLZXlib2Fy ZCBNYWNybzo6ICAgICBEZWZpbmluZyBhbmQgcnVubmluZyBrZXlib2FyZCBtYWNyb3MuCiAgLSBL ZXlib2FyZCBNYWNybyBSaW5nOjogICAgICBXaGVyZSBwcmV2aW91cyBrZXlib2FyZCBtYWNyb3Mg YXJlIHNhdmVkLgogIC0gS2V5Ym9hcmQgTWFjcm8gQ291bnRlcjo6ICAgSW5zZXJ0aW5nIGluY3Jl bWVudGluZyBudW1iZXJzIGluIG1hY3Jvcy4KICAtIEtleWJvYXJkIE1hY3JvIFF1ZXJ5OjogICAg IE1ha2luZyBrZXlib2FyZCBtYWNyb3MgZG8gZGlmZmVyZW50IHRoaW5ncyBlYWNoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgogIC0gU2F2ZSBLZXlib2FyZCBNYWNybzo6ICAg ICAgR2l2aW5nIGtleWJvYXJkIG1hY3JvcyBuYW1lczsgc2F2aW5nIHRoZW0gaW4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpbGVzLgogIC0gRWRpdCBLZXlib2FyZCBNYWNybzo6ICAg ICAgRWRpdGluZyBrZXlib2FyZCBtYWNyb3MuCiAgLSBLZXlib2FyZCBNYWNybyBTdGVwLUVkaXQ6 OiBJbnRlcmFjdGl2ZWx5IGV4ZWN1dGluZyBhbmQgZWRpdGluZyBhIGtleWJvYXJkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtYWNyby4KCgoqKiAxNy4xIEJhc2ljIFVzZQoK4oCYPEYz PuKAmQrigJhDLXggKOKAmQogICAgIFN0YXJ0IGRlZmluaW5nIGEga2V5Ym9hcmQgbWFjcm8KICAg ICAo4oCYa21hY3JvLXN0YXJ0LW1hY3JvLW9yLWluc2VydC1jb3VudGVy4oCZKS4K4oCYPEY0PuKA mQrigJhDLXggZeKAmQogICAgIElmIGEga2V5Ym9hcmQgbWFjcm8gaXMgYmVpbmcgZGVmaW5lZCwg ZW5kIHRoZSBkZWZpbml0aW9uOwogICAgIG90aGVyd2lzZSwgZXhlY3V0ZSB0aGUgbW9zdCByZWNl bnQga2V5Ym9hcmQgbWFjcm8KICAgICAo4oCYa21hY3JvLWVuZC1vci1jYWxsLW1hY3Jv4oCZKS4K 4oCYQy11IDxGMz7igJkK4oCYQy11IEMteCAo4oCZCiAgICAgUmUtZXhlY3V0ZSBsYXN0IGtleWJv YXJkIG1hY3JvLCB0aGVuIGFwcGVuZCBrZXlzIHRvIGl0cyBkZWZpbml0aW9uLgrigJhDLXUgQy11 IDxGMz7igJkK4oCYQy11IEMtdSBDLXggKOKAmQogICAgIEFwcGVuZCBrZXlzIHRvIHRoZSBsYXN0 IGtleWJvYXJkIG1hY3JvIHdpdGhvdXQgcmUtZXhlY3V0aW5nIGl0LgrigJhDLXggQy1rIHLigJkK ICAgICBSdW4gdGhlIGxhc3Qga2V5Ym9hcmQgbWFjcm8gb24gZWFjaCBsaW5lIHRoYXQgYmVnaW5z IGluIHRoZSByZWdpb24KICAgICAo4oCYYXBwbHktbWFjcm8tdG8tcmVnaW9uLWxpbmVz4oCZKS4K CiAgIFRvIHN0YXJ0IGRlZmluaW5nIGEga2V5Ym9hcmQgbWFjcm8sIHR5cGUgPEYzPi4gIEZyb20g dGhlbiBvbiwgeW91cgprZXlzIGNvbnRpbnVlIHRvIGJlIGV4ZWN1dGVkLCBidXQgYWxzbyBiZWNv bWUgcGFydCBvZiB0aGUgZGVmaW5pdGlvbiBvZgp0aGUgbWFjcm8uICDigJhEZWbigJkgYXBwZWFy cyBpbiB0aGUgbW9kZSBsaW5lIHRvIHJlbWluZCB5b3Ugb2Ygd2hhdCBpcwpnb2luZyBvbi4gIFdo ZW4geW91IGFyZSBmaW5pc2hlZCwgdHlwZSA8RjQ+ICjigJhrbWFjcm8tZW5kLW9yLWNhbGwtbWFj cm/igJkpCnRvIHRlcm1pbmF0ZSB0aGUgZGVmaW5pdGlvbi4gIEZvciBleGFtcGxlLAoKICAgICA8 RjM+IE0tZiBmb28gPEY0PgoKZGVmaW5lcyBhIG1hY3JvIHRvIG1vdmUgZm9yd2FyZCBhIHdvcmQg YW5kIHRoZW4gaW5zZXJ0IOKAmGZvb+KAmS4gIE5vdGUgdGhhdAo8RjM+IGFuZCA8RjQ+IGRvIG5v dCBiZWNvbWUgcGFydCBvZiB0aGUgbWFjcm8uCgogICBBZnRlciBkZWZpbmluZyB0aGUgbWFjcm8s IHlvdSBjYW4gY2FsbCBpdCB3aXRoIDxGND4uICBGb3IgdGhlIGFib3ZlCmV4YW1wbGUsIHRoaXMg aGFzIHRoZSBzYW1lIGVmZmVjdCBhcyB0eXBpbmcg4oCYTS1mIGZvb+KAmSBhZ2Fpbi4gIChOb3Rl IHRoZQp0d28gcm9sZXMgb2YgdGhlIDxGND4gY29tbWFuZDogaXQgZW5kcyB0aGUgbWFjcm8gaWYg eW91IGFyZSBpbiB0aGUKcHJvY2VzcyBvZiBkZWZpbmluZyBvbmUsIG9yIGNhbGxzIHRoZSBsYXN0 IG1hY3JvIG90aGVyd2lzZS4pICBZb3UgY2FuCmFsc28gc3VwcGx5IDxGND4gd2l0aCBhIG51bWVy aWMgcHJlZml4IGFyZ3VtZW50IOKAmG7igJksIHdoaWNoIG1lYW5zIHRvCmludm9rZSB0aGUgbWFj cm8g4oCYbuKAmSB0aW1lcy4gIEFuIGFyZ3VtZW50IG9mIHplcm8gcmVwZWF0cyB0aGUgbWFjcm8K aW5kZWZpbml0ZWx5LCB1bnRpbCBpdCBnZXRzIGFuIGVycm9yIG9yIHlvdSB0eXBlIOKAmEMtZ+KA mSAob3IsIG9uIE1TLURPUywK4oCYQy08QlJFQUs+4oCZKS4KCiAgIFRoZSBhYm92ZSBleGFtcGxl IGRlbW9uc3RyYXRlcyBhIGhhbmR5IHRyaWNrIHRoYXQgeW91IGNhbiBlbXBsb3kgd2l0aAprZXli b2FyZCBtYWNyb3M6IGlmIHlvdSB3aXNoIHRvIHJlcGVhdCBhbiBvcGVyYXRpb24gYXQgcmVndWxh cmx5IHNwYWNlZApwbGFjZXMgaW4gdGhlIHRleHQsIGluY2x1ZGUgYSBtb3Rpb24gY29tbWFuZCBh cyBwYXJ0IG9mIHRoZSBtYWNyby4gIEluCnRoaXMgY2FzZSwgcmVwZWF0aW5nIHRoZSBtYWNybyBp bnNlcnRzIHRoZSBzdHJpbmcg4oCYZm9v4oCZIGFmdGVyIGVhY2gKc3VjY2Vzc2l2ZSB3b3JkLgoK ICAgQWZ0ZXIgdGVybWluYXRpbmcgdGhlIGRlZmluaXRpb24gb2YgYSBrZXlib2FyZCBtYWNybywg eW91IGNhbiBhcHBlbmQKbW9yZSBrZXlzdHJva2VzIHRvIGl0cyBkZWZpbml0aW9uIGJ5IHR5cGlu ZyDigJhDLXUgPEYzPuKAmS4gIFRoaXMgaXMKZXF1aXZhbGVudCB0byBwbGFpbiA8RjM+IGZvbGxv d2VkIGJ5IHJldHlwaW5nIHRoZSB3aG9sZSBkZWZpbml0aW9uIHNvCmZhci4gIEFzIGEgY29uc2Vx dWVuY2UsIGl0IHJlLWV4ZWN1dGVzIHRoZSBtYWNybyBhcyBwcmV2aW91c2x5IGRlZmluZWQuCklm IHlvdSBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmGttYWNyby1leGVjdXRlLWJlZm9yZS1hcHBlbmTi gJkgdG8g4oCYbmls4oCZLCB0aGUKZXhpc3RpbmcgbWFjcm8gd2lsbCBub3QgYmUgcmUtZXhlY3V0 ZWQgYmVmb3JlIGFwcGVuZGluZyB0byBpdCAodGhlCmRlZmF1bHQgaXMg4oCYdOKAmSkuICBZb3Ug Y2FuIGFsc28gYWRkIHRvIHRoZSBlbmQgb2YgdGhlIGRlZmluaXRpb24gb2YgdGhlCmxhc3Qga2V5 Ym9hcmQgbWFjcm8gd2l0aG91dCByZS1leGVjdXRpbmcgaXQgYnkgdHlwaW5nIOKAmEMtdSBDLXUg PEYzPuKAmS4KCiAgIFdoZW4gYSBjb21tYW5kIHJlYWRzIGFuIGFyZ3VtZW50IHdpdGggdGhlIG1p bmlidWZmZXIsIHlvdXIgbWluaWJ1ZmZlcgppbnB1dCBiZWNvbWVzIHBhcnQgb2YgdGhlIG1hY3Jv IGFsb25nIHdpdGggdGhlIGNvbW1hbmQuICBTbyB3aGVuIHlvdQpyZXBsYXkgdGhlIG1hY3JvLCB0 aGUgY29tbWFuZCBnZXRzIHRoZSBzYW1lIGFyZ3VtZW50IGFzIHdoZW4geW91IGVudGVyZWQKdGhl IG1hY3JvLiAgRm9yIGV4YW1wbGUsCgogICAgIDxGMz4gQy1hIEMtayBDLXggYiBmb28gPFJFVD4g Qy15IEMteCBiIDxSRVQ+IDxGND4KCmRlZmluZXMgYSBtYWNybyB0aGF0IGtpbGxzIHRoZSBjdXJy ZW50IGxpbmUsIHlhbmtzIGl0IGludG8gdGhlIGJ1ZmZlcgrigJhmb2/igJksIHRoZW4gcmV0dXJu cyB0byB0aGUgb3JpZ2luYWwgYnVmZmVyLgoKICAgTW9zdCBrZXlib2FyZCBjb21tYW5kcyB3b3Jr IGFzIHVzdWFsIGluIGEga2V5Ym9hcmQgbWFjcm8gZGVmaW5pdGlvbiwKd2l0aCBzb21lIGV4Y2Vw dGlvbnMuICBUeXBpbmcg4oCYQy1n4oCZICjigJhrZXlib2FyZC1xdWl04oCZKSBxdWl0cyB0aGUg a2V5Ym9hcmQKbWFjcm8gZGVmaW5pdGlvbi4gIFR5cGluZyDigJhDLU0tY+KAmSAo4oCYZXhpdC1y ZWN1cnNpdmUtZWRpdOKAmSkgY2FuIGJlCnVucmVsaWFibGU6IGl0IHdvcmtzIGFzIHlvdeKAmWQg ZXhwZWN0IGlmIGV4aXRpbmcgYSByZWN1cnNpdmUgZWRpdCB0aGF0CnN0YXJ0ZWQgd2l0aGluIHRo ZSBtYWNybywgYnV0IGlmIGl0IGV4aXRzIGEgcmVjdXJzaXZlIGVkaXQgdGhhdCBzdGFydGVkCmJl Zm9yZSB5b3UgaW52b2tlZCB0aGUga2V5Ym9hcmQgbWFjcm8sIGl0IGFsc28gbmVjZXNzYXJpbHkg ZXhpdHMgdGhlCmtleWJvYXJkIG1hY3JvIHRvby4gIE1vdXNlIGV2ZW50cyBhcmUgYWxzbyB1bnJl bGlhYmxlLCBldmVuIHRob3VnaCB5b3UKY2FuIHVzZSB0aGVtIGluIGEga2V5Ym9hcmQgbWFjcm86 IHdoZW4gdGhlIG1hY3JvIHJlcGxheXMgdGhlIG1vdXNlCmV2ZW50LCBpdCB1c2VzIHRoZSBvcmln aW5hbCBtb3VzZSBwb3NpdGlvbiBvZiB0aGF0IGV2ZW50LCB0aGUgcG9zaXRpb24KdGhhdCB0aGUg bW91c2UgaGFkIHdoaWxlIHlvdSB3ZXJlIGRlZmluaW5nIHRoZSBtYWNyby4gIFRoZSBlZmZlY3Qg b2YKdGhpcyBtYXkgYmUgaGFyZCB0byBwcmVkaWN0LgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IEMt ayBy4oCZICjigJhhcHBseS1tYWNyby10by1yZWdpb24tbGluZXPigJkpIHJlcGVhdHMgdGhlCmxh c3QgZGVmaW5lZCBrZXlib2FyZCBtYWNybyBvbiBlYWNoIGxpbmUgdGhhdCBiZWdpbnMgaW4gdGhl IHJlZ2lvbi4gIEl0CmRvZXMgdGhpcyBsaW5lIGJ5IGxpbmUsIGJ5IG1vdmluZyBwb2ludCB0byB0 aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGFuZAp0aGVuIGV4ZWN1dGluZyB0aGUgbWFjcm8uCgog ICBJbiBhZGRpdGlvbiB0byB0aGUgPEYzPiBhbmQgPEY0PiBjb21tYW5kcyBkZXNjcmliZWQgYWJv dmUsIEVtYWNzIGFsc28Kc3VwcG9ydHMgYW4gb2xkZXIgc2V0IG9mIGtleSBiaW5kaW5ncyBmb3Ig ZGVmaW5pbmcgYW5kIGV4ZWN1dGluZwprZXlib2FyZCBtYWNyb3MuICBUbyBiZWdpbiBhIG1hY3Jv IGRlZmluaXRpb24sIHR5cGUg4oCYQy14ICjigJkKKOKAmGttYWNyby1zdGFydC1tYWNyb+KAmSk7 IGFzIHdpdGggPEYzPiwgYSBwcmVmaXggYXJndW1lbnQgYXBwZW5kcyB0aGlzCmRlZmluaXRpb24g dG8gdGhlIGxhc3Qga2V5Ym9hcmQgbWFjcm8uICBUbyBlbmQgYSBtYWNybyBkZWZpbml0aW9uLCB0 eXBlCuKAmEMteCAp4oCZICjigJhrbWFjcm8tZW5kLW1hY3Jv4oCZKS4gIFRvIGV4ZWN1dGUgdGhl IG1vc3QgcmVjZW50IG1hY3JvLCB0eXBlCuKAmEMteCBl4oCZICjigJhrbWFjcm8tZW5kLWFuZC1j YWxsLW1hY3Jv4oCZKS4gIElmIHlvdSBlbnRlciDigJhDLXggZeKAmSB3aGlsZQpkZWZpbmluZyBh IG1hY3JvLCB0aGUgbWFjcm8gaXMgdGVybWluYXRlZCBhbmQgZXhlY3V0ZWQgaW1tZWRpYXRlbHku CkltbWVkaWF0ZWx5IGFmdGVyIHR5cGluZyDigJhDLXggZeKAmSwgeW91IGNhbiB0eXBlIOKAmGXi gJkgcmVwZWF0ZWRseSB0bwppbW1lZGlhdGVseSByZXBlYXQgdGhlIG1hY3JvIG9uZSBvciBtb3Jl IHRpbWVzLiAgWW91IGNhbiBhbHNvIGdpdmUg4oCYQy14CmXigJkgYSByZXBlYXQgYXJndW1lbnQs IGp1c3QgbGlrZSA8RjQ+ICh3aGVuIGl0IGlzIHVzZWQgdG8gZXhlY3V0ZSBhCm1hY3JvKS4KCiAg IOKAmEMteCAp4oCZIGNhbiBiZSBnaXZlbiBhIHJlcGVhdCBjb3VudCBhcyBhbiBhcmd1bWVudC4g IFRoaXMgbWVhbnMgdG8KcmVwZWF0IHRoZSBtYWNybyByaWdodCBhZnRlciBkZWZpbmluZyBpdC4g IFRoZSBtYWNybyBkZWZpbml0aW9uIGl0c2VsZgpjb3VudHMgYXMgdGhlIGZpcnN0IHJlcGV0aXRp b24sIHNpbmNlIGl0IGlzIGV4ZWN1dGVkIGFzIHlvdSBkZWZpbmUgaXQsCnNvIOKAmEMtdSA0IEMt eCAp4oCZIGV4ZWN1dGVzIHRoZSBtYWNybyBpbW1lZGlhdGVseSAzIGFkZGl0aW9uYWwgdGltZXMu CgoKKiogMTcuMiBUaGUgS2V5Ym9hcmQgTWFjcm8gUmluZwoKQWxsIGRlZmluZWQga2V5Ym9hcmQg bWFjcm9zIGFyZSByZWNvcmRlZCBpbiB0aGUgImtleWJvYXJkIG1hY3JvIHJpbmciLgpUaGVyZSBp cyBvbmx5IG9uZSBrZXlib2FyZCBtYWNybyByaW5nLCBzaGFyZWQgYnkgYWxsIGJ1ZmZlcnMuCgri gJhDLXggQy1rIEMta+KAmQogICAgIEV4ZWN1dGUgdGhlIGtleWJvYXJkIG1hY3JvIGF0IHRoZSBo ZWFkIG9mIHRoZSByaW5nCiAgICAgKOKAmGttYWNyby1lbmQtb3ItY2FsbC1tYWNyby1yZXBlYXTi gJkpLgrigJhDLXggQy1rIEMtbuKAmQogICAgIFJvdGF0ZSB0aGUga2V5Ym9hcmQgbWFjcm8gcmlu ZyB0byB0aGUgbmV4dCBtYWNybyAoZGVmaW5lZCBlYXJsaWVyKQogICAgICjigJhrbWFjcm8tY3lj bGUtcmluZy1uZXh04oCZKS4K4oCYQy14IEMtayBDLXDigJkKICAgICBSb3RhdGUgdGhlIGtleWJv YXJkIG1hY3JvIHJpbmcgdG8gdGhlIHByZXZpb3VzIG1hY3JvIChkZWZpbmVkCiAgICAgbGF0ZXIp ICjigJhrbWFjcm8tY3ljbGUtcmluZy1wcmV2aW91c+KAmSkuCgogICBBbGwgY29tbWFuZHMgd2hp Y2ggb3BlcmF0ZSBvbiB0aGUga2V5Ym9hcmQgbWFjcm8gcmluZyB1c2UgdGhlIHNhbWUK4oCYQy14 IEMta+KAmSBwcmVmaXguICBNb3N0IG9mIHRoZXNlIGNvbW1hbmRzIGNhbiBiZSBleGVjdXRlZCBh bmQgcmVwZWF0ZWQKaW1tZWRpYXRlbHkgYWZ0ZXIgZWFjaCBvdGhlciB3aXRob3V0IHJlcGVhdGlu ZyB0aGUg4oCYQy14IEMta+KAmSBwcmVmaXguCkZvciBleGFtcGxlLAoKICAgICBDLXggQy1rIEMt cCBDLXAgQy1rIEMtayBDLWsgQy1uIEMtbiBDLWsgQy1wIEMtayBDLWQKCndpbGwgcm90YXRlIHRo ZSBrZXlib2FyZCBtYWNybyByaW5nIHRvIHRoZSBzZWNvbmQtcHJldmlvdXMgbWFjcm8sCmV4ZWN1 dGUgdGhlIHJlc3VsdGluZyBoZWFkIG1hY3JvIHRocmVlIHRpbWVzLCByb3RhdGUgYmFjayB0byB0 aGUKb3JpZ2luYWwgaGVhZCBtYWNybywgZXhlY3V0ZSB0aGF0IG9uY2UsIHJvdGF0ZSB0byB0aGUg cHJldmlvdXMgbWFjcm8sCmV4ZWN1dGUgdGhhdCwgYW5kIGZpbmFsbHkgZGVsZXRlIGl0IGZyb20g dGhlIG1hY3JvIHJpbmcuCgogICBUaGUgY29tbWFuZCDigJhDLXggQy1rIEMta+KAmSAo4oCYa21h Y3JvLWVuZC1vci1jYWxsLW1hY3JvLXJlcGVhdOKAmSkKZXhlY3V0ZXMgdGhlIGtleWJvYXJkIG1h Y3JvIGF0IHRoZSBoZWFkIG9mIHRoZSBtYWNybyByaW5nLiAgWW91IGNhbgpyZXBlYXQgdGhlIG1h Y3JvIGltbWVkaWF0ZWx5IGJ5IHR5cGluZyBhbm90aGVyIOKAmEMta+KAmSwgb3IgeW91IGNhbiBy b3RhdGUKdGhlIG1hY3JvIHJpbmcgaW1tZWRpYXRlbHkgYnkgdHlwaW5nIOKAmEMtbuKAmSBvciDi gJhDLXDigJkuCgogICBXaGVuIGEga2V5Ym9hcmQgbWFjcm8gaXMgYmVpbmcgZGVmaW5lZCwg4oCY Qy14IEMtayBDLWvigJkgYmVoYXZlcyBsaWtlCjxGND4gZXhjZXB0IHRoYXQsIGltbWVkaWF0ZWx5 IGFmdGVyd2FyZCwgeW91IGNhbiB1c2UgbW9zdCBrZXkgYmluZGluZ3MKb2YgdGhpcyBzZWN0aW9u IHdpdGhvdXQgdGhlIOKAmEMteCBDLWvigJkgcHJlZml4LiAgRm9yIGluc3RhbmNlLCBhbm90aGVy CuKAmEMta+KAmSB3aWxsIHJlLWV4ZWN1dGUgdGhlIG1hY3JvLgoKICAgVGhlIGNvbW1hbmRzIOKA mEMteCBDLWsgQy1u4oCZICjigJhrbWFjcm8tY3ljbGUtcmluZy1uZXh04oCZKSBhbmQg4oCYQy14 IEMtawpDLXDigJkgKOKAmGttYWNyby1jeWNsZS1yaW5nLXByZXZpb3Vz4oCZKSByb3RhdGUgdGhl IG1hY3JvIHJpbmcsIGJyaW5naW5nIHRoZQpuZXh0IG9yIHByZXZpb3VzIGtleWJvYXJkIG1hY3Jv IHRvIHRoZSBoZWFkIG9mIHRoZSBtYWNybyByaW5nLiAgVGhlCmRlZmluaXRpb24gb2YgdGhlIG5l dyBoZWFkIG1hY3JvIGlzIGRpc3BsYXllZCBpbiB0aGUgZWNobyBhcmVhLiAgWW91IGNhbgpjb250 aW51ZSB0byByb3RhdGUgdGhlIG1hY3JvIHJpbmcgaW1tZWRpYXRlbHkgYnkgcmVwZWF0aW5nIGp1 c3Qg4oCYQy1u4oCZCmFuZCDigJhDLXDigJkgdW50aWwgdGhlIGRlc2lyZWQgbWFjcm8gaXMgYXQg dGhlIGhlYWQgb2YgdGhlIHJpbmcuICBUbwpleGVjdXRlIHRoZSBuZXcgbWFjcm8gcmluZyBoZWFk IGltbWVkaWF0ZWx5LCBqdXN0IHR5cGUg4oCYQy1r4oCZLgoKICAgTm90ZSB0aGF0IEVtYWNzIHRy ZWF0cyB0aGUgaGVhZCBvZiB0aGUgbWFjcm8gcmluZyBhcyB0aGUgbGFzdCBkZWZpbmVkCmtleWJv YXJkIG1hY3JvLiAgRm9yIGluc3RhbmNlLCA8RjQ+IHdpbGwgZXhlY3V0ZSB0aGF0IG1hY3JvLCBh bmQg4oCYQy14CkMtayBu4oCZIHdpbGwgZ2l2ZSBpdCBhIG5hbWUuCgogICBUaGUgbWF4aW11bSBu dW1iZXIgb2YgbWFjcm9zIHN0b3JlZCBpbiB0aGUga2V5Ym9hcmQgbWFjcm8gcmluZyBpcwpkZXRl cm1pbmVkIGJ5IHRoZSBjdXN0b21pemFibGUgdmFyaWFibGUg4oCYa21hY3JvLXJpbmctbWF44oCZ LgoKCioqIDE3LjMgVGhlIEtleWJvYXJkIE1hY3JvIENvdW50ZXIKCkVhY2gga2V5Ym9hcmQgbWFj cm8gaGFzIGFuIGFzc29jaWF0ZWQgY291bnRlciwgd2hpY2ggaXMgaW5pdGlhbGl6ZWQgdG8gMAp3 aGVuIHlvdSBzdGFydCBkZWZpbmluZyB0aGUgbWFjcm8uICBUaGlzIGNvdW50ZXIgYWxsb3dzIHlv dSB0byBpbnNlcnQgYQpudW1iZXIgaW50byB0aGUgYnVmZmVyIHRoYXQgZGVwZW5kcyBvbiB0aGUg bnVtYmVyIG9mIHRpbWVzIHRoZSBtYWNybyBoYXMKYmVlbiBjYWxsZWQuICBUaGUgY291bnRlciBp cyBpbmNyZW1lbnRlZCBlYWNoIHRpbWUgaXRzIHZhbHVlIGlzIGluc2VydGVkCmludG8gdGhlIGJ1 ZmZlci4KCuKAmDxGMz7igJkKICAgICBJbiBhIGtleWJvYXJkIG1hY3JvIGRlZmluaXRpb24sIGlu c2VydCB0aGUga2V5Ym9hcmQgbWFjcm8gY291bnRlcgogICAgIHZhbHVlIGluIHRoZSBidWZmZXIg KOKAmGttYWNyby1zdGFydC1tYWNyby1vci1pbnNlcnQtY291bnRlcuKAmSkuCuKAmEMteCBDLWsg Qy1p4oCZCiAgICAgSW5zZXJ0IHRoZSBrZXlib2FyZCBtYWNybyBjb3VudGVyIHZhbHVlIGluIHRo ZSBidWZmZXIKICAgICAo4oCYa21hY3JvLWluc2VydC1jb3VudGVy4oCZKS4K4oCYQy14IEMtayBD LWPigJkKICAgICBTZXQgdGhlIGtleWJvYXJkIG1hY3JvIGNvdW50ZXIgKOKAmGttYWNyby1zZXQt Y291bnRlcuKAmSkuCuKAmEMteCBDLWsgQy1h4oCZCiAgICAgQWRkIHRoZSBwcmVmaXggYXJnIHRv IHRoZSBrZXlib2FyZCBtYWNybyBjb3VudGVyCiAgICAgKOKAmGttYWNyby1hZGQtY291bnRlcuKA mSkuCuKAmEMteCBDLWsgQy1m4oCZCiAgICAgU3BlY2lmeSB0aGUgZm9ybWF0IGZvciBpbnNlcnRp bmcgdGhlIGtleWJvYXJkIG1hY3JvIGNvdW50ZXIKICAgICAo4oCYa21hY3JvLXNldC1mb3JtYXTi gJkpLgoKICAgV2hlbiB5b3UgYXJlIGRlZmluaW5nIGEga2V5Ym9hcmQgbWFjcm8sIHRoZSBjb21t YW5kIDxGMz4KKOKAmGttYWNyby1zdGFydC1tYWNyby1vci1pbnNlcnQtY291bnRlcuKAmSkgaW5z ZXJ0cyB0aGUgY3VycmVudCB2YWx1ZSBvZgp0aGUga2V5Ym9hcmQgbWFjcm/igJlzIGNvdW50ZXIg aW50byB0aGUgYnVmZmVyLCBhbmQgaW5jcmVtZW50cyB0aGUgY291bnRlcgpieSAxLiAgKElmIHlv dSBhcmUgbm90IGRlZmluaW5nIGEgbWFjcm8sIDxGMz4gYmVnaW5zIGEgbWFjcm8gZGVmaW5pdGlv bgppbnN0ZWFkLiAgKk5vdGUgQmFzaWMgS2V5Ym9hcmQgTWFjcm86Oi4pICBZb3UgY2FuIHVzZSBh IG51bWVyaWMgcHJlZml4CmFyZ3VtZW50IHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgaW5jcmVtZW50 LiAgSWYgeW91IGp1c3Qgc3BlY2lmeSBhIOKAmEMtdeKAmQpwcmVmaXgsIHRoYXQgaXMgdGhlIHNh bWUgYXMgYW4gaW5jcmVtZW50IG9mIHplcm86IGl0IGluc2VydHMgdGhlIGN1cnJlbnQKY291bnRl ciB2YWx1ZSB3aXRob3V0IGNoYW5naW5nIGl0LgoKICAgQXMgYW4gZXhhbXBsZSwgbGV0IHVzIHNo b3cgaG93IHRoZSBrZXlib2FyZCBtYWNybyBjb3VudGVyIGNhbiBiZSB1c2VkCnRvIGJ1aWxkIGEg bnVtYmVyZWQgbGlzdC4gIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcga2V5IHNlcXVlbmNlOgoKICAg ICA8RjM+IEMtYSA8RjM+IC4gPFNQQz4gPEY0PgoKQXMgcGFydCBvZiB0aGlzIGtleWJvYXJkIG1h Y3JvIGRlZmluaXRpb24sIHRoZSBzdHJpbmcg4oCYMC4g4oCZIHdhcyBpbnNlcnRlZAppbnRvIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgbGluZS4gIElmIHlvdSBub3cgbW92ZSBzb21ld2hl cmUgZWxzZQppbiB0aGUgYnVmZmVyIGFuZCB0eXBlIDxGND4gdG8gaW52b2tlIHRoZSBtYWNybywg dGhlIHN0cmluZyDigJgxLiDigJkgaXMKaW5zZXJ0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGF0 IGxpbmUuICBTdWJzZXF1ZW50IGludm9jYXRpb25zIGluc2VydArigJgyLiDigJksIOKAmDMuIOKA mSwgYW5kIHNvIGZvcnRoLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IEMtayBDLWnigJkgKOKAmGtt YWNyby1pbnNlcnQtY291bnRlcuKAmSkgZG9lcyB0aGUgc2FtZQp0aGluZyBhcyA8RjM+LCBidXQg aXQgY2FuIGJlIHVzZWQgb3V0c2lkZSBhIGtleWJvYXJkIG1hY3JvIGRlZmluaXRpb24uCldoZW4g bm8ga2V5Ym9hcmQgbWFjcm8gaXMgYmVpbmcgZGVmaW5lZCBvciBleGVjdXRlZCwgaXQgaW5zZXJ0 cyBhbmQKaW5jcmVtZW50cyB0aGUgY291bnRlciBvZiB0aGUgbWFjcm8gYXQgdGhlIGhlYWQgb2Yg dGhlIGtleWJvYXJkIG1hY3JvCnJpbmcuCgogICBUaGUgY29tbWFuZCDigJhDLXggQy1rIEMtY+KA mSAo4oCYa21hY3JvLXNldC1jb3VudGVy4oCZKSBzZXRzIHRoZSBjdXJyZW50Cm1hY3JvIGNvdW50 ZXIgdG8gdGhlIHZhbHVlIG9mIHRoZSBudW1lcmljIGFyZ3VtZW50LiAgSWYgeW91IHVzZSBpdApp bnNpZGUgdGhlIG1hY3JvLCBpdCBvcGVyYXRlcyBvbiBlYWNoIHJlcGV0aXRpb24gb2YgdGhlIG1h Y3JvLiAgSWYgeW91CnNwZWNpZnkganVzdCDigJhDLXXigJkgYXMgdGhlIHByZWZpeCwgd2hpbGUg ZXhlY3V0aW5nIHRoZSBtYWNybywgdGhhdCByZXNldHMKdGhlIGNvdW50ZXIgdG8gdGhlIHZhbHVl IGl0IGhhZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50CnJlcGV0aXRpb24gb2YgdGhl IG1hY3JvICh1bmRvaW5nIGFueSBpbmNyZW1lbnRzIHNvIGZhciBpbiB0aGlzCnJlcGV0aXRpb24p LgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IEMtayBDLWHigJkgKOKAmGttYWNyby1hZGQtY291bnRl cuKAmSkgYWRkcyB0aGUgcHJlZml4CmFyZ3VtZW50IHRvIHRoZSBjdXJyZW50IG1hY3JvIGNvdW50 ZXIuICBXaXRoIGp1c3Qg4oCYQy114oCZIGFzIGFyZ3VtZW50LCBpdApyZXNldHMgdGhlIGNvdW50 ZXIgdG8gdGhlIGxhc3QgdmFsdWUgaW5zZXJ0ZWQgYnkgYW55IGtleWJvYXJkIG1hY3JvLgooTm9y bWFsbHksIHdoZW4geW91IHVzZSB0aGlzLCB0aGUgbGFzdCBpbnNlcnRpb24gd2lsbCBiZSBpbiB0 aGUgc2FtZQptYWNybyBhbmQgaXQgd2lsbCBiZSB0aGUgc2FtZSBjb3VudGVyLikKCiAgIFRoZSBj b21tYW5kIOKAmEMteCBDLWsgQy1m4oCZICjigJhrbWFjcm8tc2V0LWZvcm1hdOKAmSkgcHJvbXB0 cyBmb3IgdGhlCmZvcm1hdCB0byB1c2Ugd2hlbiBpbnNlcnRpbmcgdGhlIG1hY3JvIGNvdW50ZXIu ICBUaGUgZGVmYXVsdCBmb3JtYXQgaXMK4oCYJWTigJksIHdoaWNoIG1lYW5zIHRvIGluc2VydCB0 aGUgbnVtYmVyIGluIGRlY2ltYWwgd2l0aG91dCBhbnkgcGFkZGluZy4KWW91IGNhbiBleGl0IHdp dGggZW1wdHkgbWluaWJ1ZmZlciB0byByZXNldCB0aGUgZm9ybWF0IHRvIHRoaXMgZGVmYXVsdC4K WW91IGNhbiBzcGVjaWZ5IGFueSBmb3JtYXQgc3RyaW5nIHRoYXQgdGhlIOKAmGZvcm1hdOKAmSBm dW5jdGlvbiBhY2NlcHRzIGFuZAp0aGF0IG1ha2VzIHNlbnNlIHdpdGggYSBzaW5nbGUgaW50ZWdl ciBleHRyYSBhcmd1bWVudCAoKm5vdGUKKGVsaXNwKUZvcm1hdHRpbmcgU3RyaW5nczo6KS4gIERv IG5vdCBwdXQgdGhlIGZvcm1hdCBzdHJpbmcgaW5zaWRlCmRvdWJsZSBxdW90ZXMgd2hlbiB5b3Ug aW5zZXJ0IGl0IGluIHRoZSBtaW5pYnVmZmVyLgoKICAgSWYgeW91IHVzZSB0aGlzIGNvbW1hbmQg d2hpbGUgbm8ga2V5Ym9hcmQgbWFjcm8gaXMgYmVpbmcgZGVmaW5lZCBvcgpleGVjdXRlZCwgdGhl IG5ldyBmb3JtYXQgYWZmZWN0cyBhbGwgc3Vic2VxdWVudCBtYWNybyBkZWZpbml0aW9ucy4KRXhp c3RpbmcgbWFjcm9zIGNvbnRpbnVlIHRvIHVzZSB0aGUgZm9ybWF0IGluIGVmZmVjdCB3aGVuIHRo ZXkgd2VyZQpkZWZpbmVkLiAgSWYgeW91IHNldCB0aGUgZm9ybWF0IHdoaWxlIGRlZmluaW5nIGEg a2V5Ym9hcmQgbWFjcm8sIHRoaXMKYWZmZWN0cyB0aGUgbWFjcm8gYmVpbmcgZGVmaW5lZCBmcm9t IHRoYXQgcG9pbnQgb24sIGJ1dCBpdCBkb2VzIG5vdAphZmZlY3Qgc3Vic2VxdWVudCBtYWNyb3Mu ICBFeGVjdXRpb24gb2YgdGhlIG1hY3JvIHdpbGwsIGF0IGVhY2ggc3RlcCwKdXNlIHRoZSBmb3Jt YXQgaW4gZWZmZWN0IGF0IHRoYXQgc3RlcCBkdXJpbmcgaXRzIGRlZmluaXRpb24uICBDaGFuZ2Vz IHRvCnRoZSBtYWNybyBmb3JtYXQgZHVyaW5nIGV4ZWN1dGlvbiBvZiBhIG1hY3JvLCBsaWtlIHRo ZSBjb3JyZXNwb25kaW5nCmNoYW5nZXMgZHVyaW5nIGl0cyBkZWZpbml0aW9uLCBoYXZlIG5vIGVm ZmVjdCBvbiBzdWJzZXF1ZW50IG1hY3Jvcy4KCiAgIFRoZSBmb3JtYXQgc2V0IGJ5IOKAmEMteCBD LWsgQy1m4oCZIGRvZXMgbm90IGFmZmVjdCBpbnNlcnRpb24gb2YgbnVtYmVycwpzdG9yZWQgaW4g cmVnaXN0ZXJzLgoKICAgSWYgeW91IHVzZSBhIHJlZ2lzdGVyIGFzIGEgY291bnRlciwgaW5jcmVt ZW50aW5nIGl0IG9uIGVhY2gKcmVwZXRpdGlvbiBvZiB0aGUgbWFjcm8sIHRoYXQgYWNjb21wbGlz aGVzIHRoZSBzYW1lIHRoaW5nIGFzIGEga2V5Ym9hcmQKbWFjcm8gY291bnRlci4gICpOb3RlIE51 bWJlciBSZWdpc3RlcnM6Oi4gIEZvciBtb3N0IHB1cnBvc2VzLCBpdCBpcwpzaW1wbGVyIHRvIHVz ZSBhIGtleWJvYXJkIG1hY3JvIGNvdW50ZXIuCgoKKiogMTcuNCBFeGVjdXRpbmcgTWFjcm9zIHdp dGggVmFyaWF0aW9ucwoKSW4gYSBrZXlib2FyZCBtYWNybywgeW91IGNhbiBjcmVhdGUgYW4gZWZm ZWN0IHNpbWlsYXIgdG8gdGhhdCBvZgrigJhxdWVyeS1yZXBsYWNl4oCZLCBpbiB0aGF0IHRoZSBt YWNybyBhc2tzIHlvdSBlYWNoIHRpbWUgYXJvdW5kIHdoZXRoZXIgdG8KbWFrZSBhIGNoYW5nZS4K CuKAmEMteCBx4oCZCiAgICAgV2hlbiB0aGlzIHBvaW50IGlzIHJlYWNoZWQgZHVyaW5nIG1hY3Jv IGV4ZWN1dGlvbiwgYXNrIGZvcgogICAgIGNvbmZpcm1hdGlvbiAo4oCYa2JkLW1hY3JvLXF1ZXJ5 4oCZKS4KCiAgIFdoaWxlIGRlZmluaW5nIHRoZSBtYWNybywgdHlwZSDigJhDLXggceKAmSBhdCB0 aGUgcG9pbnQgd2hlcmUgeW91IHdhbnQKdGhlIHF1ZXJ5IHRvIG9jY3VyLiAgRHVyaW5nIG1hY3Jv IGRlZmluaXRpb24sIHRoZSDigJhDLXggceKAmSBkb2VzIG5vdGhpbmcsCmJ1dCB3aGVuIHlvdSBy dW4gdGhlIG1hY3JvIGxhdGVyLCDigJhDLXggceKAmSBhc2tzIHlvdSBpbnRlcmFjdGl2ZWx5IHdo ZXRoZXIKdG8gY29udGludWUuCgogICBUaGUgdmFsaWQgcmVzcG9uc2VzIHdoZW4g4oCYQy14IHHi gJkgYXNrcyBhcmU6Cgo8U1BDPiAob3Ig4oCYeeKAmSkKICAgICBDb250aW51ZSBleGVjdXRpbmcg dGhlIGtleWJvYXJkIG1hY3JvLgoKPERFTD4gKG9yIOKAmG7igJkpCiAgICAgU2tpcCB0aGUgcmVt YWluZGVyIG9mIHRoaXMgcmVwZXRpdGlvbiBvZiB0aGUgbWFjcm8sIGFuZCBzdGFydCByaWdodAog ICAgIGF3YXkgd2l0aCB0aGUgbmV4dCByZXBldGl0aW9uLgoKPFJFVD4gKG9yIOKAmHHigJkpCiAg ICAgU2tpcCB0aGUgcmVtYWluZGVyIG9mIHRoaXMgcmVwZXRpdGlvbiBhbmQgY2FuY2VsIGZ1cnRo ZXIKICAgICByZXBldGl0aW9ucy4KCuKAmEMtcuKAmQogICAgIEVudGVyIGEgcmVjdXJzaXZlIGVk aXRpbmcgbGV2ZWwsIGluIHdoaWNoIHlvdSBjYW4gcGVyZm9ybSBlZGl0aW5nCiAgICAgd2hpY2gg aXMgbm90IHBhcnQgb2YgdGhlIG1hY3JvLiAgV2hlbiB5b3UgZXhpdCB0aGUgcmVjdXJzaXZlIGVk aXQKICAgICB1c2luZyDigJhDLU0tY+KAmSwgeW91IGFyZSBhc2tlZCBhZ2FpbiBob3cgdG8gY29u dGludWUgd2l0aCB0aGUKICAgICBrZXlib2FyZCBtYWNyby4gIElmIHlvdSB0eXBlIGEgPFNQQz4g YXQgdGhpcyB0aW1lLCB0aGUgcmVzdCBvZiB0aGUKICAgICBtYWNybyBkZWZpbml0aW9uIGlzIGV4 ZWN1dGVkLiAgSXQgaXMgdXAgdG8geW91IHRvIGxlYXZlIHBvaW50IGFuZAogICAgIHRoZSB0ZXh0 IGluIGEgc3RhdGUgc3VjaCB0aGF0IHRoZSByZXN0IG9mIHRoZSBtYWNybyB3aWxsIGRvIHdoYXQK ICAgICB5b3Ugd2FudC4KCiAgIOKAmEMtdSBDLXggceKAmSwgd2hpY2ggaXMg4oCYQy14IHHigJkg d2l0aCBhIG51bWVyaWMgYXJndW1lbnQsIHBlcmZvcm1zIGEKY29tcGxldGVseSBkaWZmZXJlbnQg ZnVuY3Rpb24uICBJdCBlbnRlcnMgYSByZWN1cnNpdmUgZWRpdCByZWFkaW5nIGlucHV0CmZyb20g dGhlIGtleWJvYXJkLCBib3RoIHdoZW4geW91IHR5cGUgaXQgZHVyaW5nIHRoZSBkZWZpbml0aW9u IG9mIHRoZQptYWNybywgYW5kIHdoZW4gaXQgaXMgZXhlY3V0ZWQgZnJvbSB0aGUgbWFjcm8uICBE dXJpbmcgZGVmaW5pdGlvbiwgdGhlCmVkaXRpbmcgeW91IGRvIGluc2lkZSB0aGUgcmVjdXJzaXZl IGVkaXQgZG9lcyBub3QgYmVjb21lIHBhcnQgb2YgdGhlCm1hY3JvLiAgRHVyaW5nIG1hY3JvIGV4 ZWN1dGlvbiwgdGhlIHJlY3Vyc2l2ZSBlZGl0IGdpdmVzIHlvdSBhIGNoYW5jZSB0bwpkbyBzb21l IHBhcnRpY3VsYXJpemVkIGVkaXRpbmcgb24gZWFjaCByZXBldGl0aW9uLiAgKk5vdGUgUmVjdXJz aXZlCkVkaXQ6Oi4KCgoqKiAxNy41IE5hbWluZyBhbmQgU2F2aW5nIEtleWJvYXJkIE1hY3JvcwoK 4oCYQy14IEMtayBu4oCZCiAgICAgR2l2ZSBhIGNvbW1hbmQgbmFtZSAoZm9yIHRoZSBkdXJhdGlv biBvZiB0aGUgRW1hY3Mgc2Vzc2lvbikgdG8gdGhlCiAgICAgbW9zdCByZWNlbnRseSBkZWZpbmVk IGtleWJvYXJkIG1hY3JvICjigJhrbWFjcm8tbmFtZS1sYXN0LW1hY3Jv4oCZKS4K4oCYQy14IEMt ayBi4oCZCiAgICAgQmluZCB0aGUgbW9zdCByZWNlbnRseSBkZWZpbmVkIGtleWJvYXJkIG1hY3Jv IHRvIGEga2V5IHNlcXVlbmNlCiAgICAgKGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHNlc3Npb24p ICjigJhrbWFjcm8tYmluZC10by1rZXnigJkpLgrigJhNLXggaW5zZXJ0LWtiZC1tYWNyb+KAmQog ICAgIEluc2VydCBpbiB0aGUgYnVmZmVyIGEga2V5Ym9hcmQgbWFjcm/igJlzIGRlZmluaXRpb24s IGFzIExpc3AgY29kZS4KCiAgIElmIHlvdSB3aXNoIHRvIHNhdmUgYSBrZXlib2FyZCBtYWNybyBm b3IgbGF0ZXIgdXNlLCB5b3UgY2FuIGdpdmUgaXQgYQpuYW1lIHVzaW5nIOKAmEMteCBDLWsgbuKA mSAo4oCYa21hY3JvLW5hbWUtbGFzdC1tYWNyb+KAmSkuICBUaGlzIHJlYWRzIGEgbmFtZSBhcwph biBhcmd1bWVudCB1c2luZyB0aGUgbWluaWJ1ZmZlciBhbmQgZGVmaW5lcyB0aGF0IG5hbWUgdG8g ZXhlY3V0ZSB0aGUKbGFzdCBrZXlib2FyZCBtYWNybywgaW4gaXRzIGN1cnJlbnQgZm9ybS4gIChJ ZiB5b3UgbGF0ZXIgYWRkIHRvIHRoZQpkZWZpbml0aW9uIG9mIHRoaXMgbWFjcm8sIHRoYXQgZG9l cyBub3QgYWx0ZXIgdGhlIG5hbWXigJlzIGRlZmluaXRpb24gYXMgYQptYWNyby4pICBUaGUgbWFj cm8gbmFtZSBpcyBhIExpc3Agc3ltYm9sLCBhbmQgZGVmaW5pbmcgaXQgaW4gdGhpcyB3YXkKbWFr ZXMgaXQgYSB2YWxpZCBjb21tYW5kIG5hbWUgZm9yIGNhbGxpbmcgd2l0aCDigJhNLXjigJkgb3Ig Zm9yIGJpbmRpbmcgYQprZXkgdG8gd2l0aCDigJhnbG9iYWwtc2V0LWtleeKAmSAoKm5vdGUgS2V5 bWFwczo6KS4gIElmIHlvdSBzcGVjaWZ5IGEgbmFtZQp0aGF0IGhhcyBhIHByaW9yIGRlZmluaXRp b24gb3RoZXIgdGhhbiBhIGtleWJvYXJkIG1hY3JvLCBhbiBlcnJvcgptZXNzYWdlIGlzIHNob3du IGFuZCBub3RoaW5nIGlzIGNoYW5nZWQuCgogICBZb3UgY2FuIGFsc28gYmluZCB0aGUgbGFzdCBr ZXlib2FyZCBtYWNybyAoaW4gaXRzIGN1cnJlbnQgZm9ybSkgdG8gYQprZXksIHVzaW5nIOKAmEMt eCBDLWsgYuKAmSAo4oCYa21hY3JvLWJpbmQtdG8ta2V54oCZKSBmb2xsb3dlZCBieSB0aGUga2V5 CnNlcXVlbmNlIHlvdSB3YW50IHRvIGJpbmQuICBZb3UgY2FuIGJpbmQgdG8gYW55IGtleSBzZXF1 ZW5jZSBpbiB0aGUKZ2xvYmFsIGtleW1hcCwgYnV0IHNpbmNlIG1vc3Qga2V5IHNlcXVlbmNlcyBh bHJlYWR5IGhhdmUgb3RoZXIgYmluZGluZ3MsCnlvdSBzaG91bGQgc2VsZWN0IHRoZSBrZXkgc2Vx dWVuY2UgY2FyZWZ1bGx5LiAgSWYgeW91IHRyeSB0byBiaW5kIHRvIGEKa2V5IHNlcXVlbmNlIHdp dGggYW4gZXhpc3RpbmcgYmluZGluZyAoaW4gYW55IGtleW1hcCksIHRoaXMgY29tbWFuZCBhc2tz CnlvdSBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSByZXBsYWNpbmcgdGhlIGV4aXN0aW5nIGJpbmRp bmcuCgogICBUbyBhdm9pZCBwcm9ibGVtcyBjYXVzZWQgYnkgb3ZlcnJpZGluZyBleGlzdGluZyBi aW5kaW5ncywgdGhlIGtleQpzZXF1ZW5jZXMg4oCYQy14IEMtayAw4oCZIHRocm91Z2gg4oCYQy14 IEMtayA54oCZIGFuZCDigJhDLXggQy1rIEHigJkgdGhyb3VnaCDigJhDLXgKQy1rIFrigJkgYXJl IHJlc2VydmVkIGZvciB5b3VyIG93biBrZXlib2FyZCBtYWNybyBiaW5kaW5ncy4gIEluIGZhY3Qs IHRvCmJpbmQgdG8gb25lIG9mIHRoZXNlIGtleSBzZXF1ZW5jZXMsIHlvdSBvbmx5IG5lZWQgdG8g dHlwZSB0aGUgZGlnaXQgb3IKbGV0dGVyIHJhdGhlciB0aGFuIHRoZSB3aG9sZSBrZXkgc2VxdWVu Y2VzLiAgRm9yIGV4YW1wbGUsCgogICAgIEMteCBDLWsgYiA0Cgp3aWxsIGJpbmQgdGhlIGxhc3Qg a2V5Ym9hcmQgbWFjcm8gdG8gdGhlIGtleSBzZXF1ZW5jZSDigJhDLXggQy1rIDTigJkuCgogICBP bmNlIGEgbWFjcm8gaGFzIGEgY29tbWFuZCBuYW1lLCB5b3UgY2FuIHNhdmUgaXRzIGRlZmluaXRp b24gaW4gYQpmaWxlLiAgVGhlbiBpdCBjYW4gYmUgdXNlZCBpbiBhbm90aGVyIGVkaXRpbmcgc2Vz c2lvbi4gIEZpcnN0LCB2aXNpdCB0aGUKZmlsZSB5b3Ugd2FudCB0byBzYXZlIHRoZSBkZWZpbml0 aW9uIGluLiAgVGhlbiB1c2UgdGhpcyBjb21tYW5kOgoKICAgICBNLXggaW5zZXJ0LWtiZC1tYWNy byA8UkVUPiBNQUNST05BTUUgPFJFVD4KClRoaXMgaW5zZXJ0cyBzb21lIExpc3AgY29kZSB0aGF0 LCB3aGVuIGV4ZWN1dGVkIGxhdGVyLCB3aWxsIGRlZmluZSB0aGUKc2FtZSBtYWNybyB3aXRoIHRo ZSBzYW1lIGRlZmluaXRpb24gaXQgaGFzIG5vdy4gIChZb3UgZG9u4oCZdCBuZWVkIHRvCnVuZGVy c3RhbmQgTGlzcCBjb2RlIHRvIGRvIHRoaXMsIGJlY2F1c2Ug4oCYaW5zZXJ0LWtiZC1tYWNyb+KA mSB3cml0ZXMgdGhlCkxpc3AgY29kZSBmb3IgeW91LikgIFRoZW4gc2F2ZSB0aGUgZmlsZS4gIFlv dSBjYW4gbG9hZCB0aGUgZmlsZSBsYXRlcgp3aXRoIOKAmGxvYWQtZmlsZeKAmSAoKm5vdGUgTGlz cCBMaWJyYXJpZXM6OikuICBJZiB0aGUgZmlsZSB5b3Ugc2F2ZSBpbiBpcwp5b3VyIGluaXQgZmls ZSDigJh+Ly5lbWFjc+KAmSAoKm5vdGUgSW5pdCBGaWxlOjopIHRoZW4gdGhlIG1hY3JvIHdpbGwg YmUKZGVmaW5lZCBlYWNoIHRpbWUgeW91IHJ1biBFbWFjcy4KCiAgIElmIHlvdSBnaXZlIOKAmGlu c2VydC1rYmQtbWFjcm/igJkgYSBudW1lcmljIGFyZ3VtZW50LCBpdCBtYWtlcwphZGRpdGlvbmFs IExpc3AgY29kZSB0byByZWNvcmQgdGhlIGtleXMgKGlmIGFueSkgdGhhdCB5b3UgaGF2ZSBib3Vu ZCB0bwpNQUNST05BTUUsIHNvIHRoYXQgdGhlIG1hY3JvIHdpbGwgYmUgcmVhc3NpZ25lZCB0aGUg c2FtZSBrZXlzIHdoZW4geW91CmxvYWQgdGhlIGZpbGUuCgoKKiogMTcuNiBFZGl0aW5nIGEgS2V5 Ym9hcmQgTWFjcm8KCuKAmEMteCBDLWsgQy1l4oCZCiAgICAgRWRpdCB0aGUgbGFzdCBkZWZpbmVk IGtleWJvYXJkIG1hY3JvICjigJhrbWFjcm8tZWRpdC1tYWNyb+KAmSkuCuKAmEMteCBDLWsgZSBO QU1FIDxSRVQ+4oCZCiAgICAgRWRpdCBhIHByZXZpb3VzbHkgZGVmaW5lZCBrZXlib2FyZCBtYWNy byBOQU1FICjigJhlZGl0LWtiZC1tYWNyb+KAmSkuCuKAmEMteCBDLWsgbOKAmQogICAgIEVkaXQg dGhlIGxhc3QgMzAwIGtleXN0cm9rZXMgYXMgYSBrZXlib2FyZCBtYWNybwogICAgICjigJhrbWFj cm8tZWRpdC1sb3NzYWdl4oCZKS4KCiAgIFlvdSBjYW4gZWRpdCB0aGUgbGFzdCBrZXlib2FyZCBt YWNybyBieSB0eXBpbmcg4oCYQy14IEMtayBDLWXigJkgb3Ig4oCYQy14CkMtayA8UkVUPuKAmSAo 4oCYa21hY3JvLWVkaXQtbWFjcm/igJkpLiAgVGhpcyBmb3JtYXRzIHRoZSBtYWNybyBkZWZpbml0 aW9uIGluCmEgYnVmZmVyIGFuZCBlbnRlcnMgYSBzcGVjaWFsaXplZCBtYWpvciBtb2RlIGZvciBl ZGl0aW5nIGl0LiAgVHlwZSDigJhDLWgKbeKAmSBvbmNlIGluIHRoYXQgYnVmZmVyIHRvIGRpc3Bs YXkgZGV0YWlscyBvZiBob3cgdG8gZWRpdCB0aGUgbWFjcm8uCldoZW4geW91IGFyZSBmaW5pc2hl ZCBlZGl0aW5nLCB0eXBlIOKAmEMtYyBDLWPigJkuCgogICBZb3UgY2FuIGVkaXQgYSBuYW1lZCBr ZXlib2FyZCBtYWNybyBvciBhIG1hY3JvIGJvdW5kIHRvIGEga2V5IGJ5CnR5cGluZyDigJhDLXgg Qy1rIGXigJkgKOKAmGVkaXQta2JkLW1hY3Jv4oCZKS4gIEZvbGxvdyB0aGF0IHdpdGggdGhlIGtl eWJvYXJkCmlucHV0IHRoYXQgeW91IHdvdWxkIHVzZSB0byBpbnZva2UgdGhlIG1hY3Jv4oCU4oCY Qy14IGXigJkgb3Ig4oCYTS14IE5BTUXigJkgb3IKc29tZSBvdGhlciBrZXkgc2VxdWVuY2UuCgog ICBZb3UgY2FuIGVkaXQgdGhlIGxhc3QgMzAwIGtleXN0cm9rZXMgYXMgYSBtYWNybyBieSB0eXBp bmcg4oCYQy14IEMtayBs4oCZCijigJhrbWFjcm8tZWRpdC1sb3NzYWdl4oCZKS4KCgoqKiAxNy43 IFN0ZXB3aXNlIEVkaXRpbmcgYSBLZXlib2FyZCBNYWNybwoKWW91IGNhbiBpbnRlcmFjdGl2ZWx5 IHJlcGxheSBhbmQgZWRpdCB0aGUgbGFzdCBrZXlib2FyZCBtYWNybywgb25lCmNvbW1hbmQgYXQg YSB0aW1lLCBieSB0eXBpbmcg4oCYQy14IEMtayA8U1BDPuKAmSAo4oCYa21hY3JvLXN0ZXAtZWRp dC1tYWNyb+KAmSkuClVubGVzcyB5b3UgcXVpdCB0aGUgbWFjcm8gdXNpbmcg4oCYceKAmSBvciDi gJhDLWfigJksIHRoZSBlZGl0ZWQgbWFjcm8gcmVwbGFjZXMKdGhlIGxhc3QgbWFjcm8gb24gdGhl IG1hY3JvIHJpbmcuCgogICBUaGlzIG1hY3JvIGVkaXRpbmcgZmVhdHVyZSBzaG93cyB0aGUgbGFz dCBtYWNybyBpbiB0aGUgbWluaWJ1ZmZlcgp0b2dldGhlciB3aXRoIHRoZSBmaXJzdCAob3IgbmV4 dCkgY29tbWFuZCB0byBiZSBleGVjdXRlZCwgYW5kIHByb21wdHMKeW91IGZvciBhbiBhY3Rpb24u ICBZb3UgY2FuIGVudGVyIOKAmD/igJkgdG8gZ2V0IGEgc3VtbWFyeSBvZiB5b3VyIG9wdGlvbnMu ClRoZXNlIGFjdGlvbnMgYXJlIGF2YWlsYWJsZToKCiAgIOKAoiA8U1BDPiBhbmQg4oCYeeKAmSBl eGVjdXRlIHRoZSBjdXJyZW50IGNvbW1hbmQsIGFuZCBhZHZhbmNlIHRvIHRoZSBuZXh0CiAgICAg Y29tbWFuZCBpbiB0aGUga2V5Ym9hcmQgbWFjcm8uCiAgIOKAoiDigJhu4oCZLCDigJhk4oCZLCBh bmQgPERFTD4gc2tpcCBhbmQgZGVsZXRlIHRoZSBjdXJyZW50IGNvbW1hbmQuCiAgIOKAoiDigJhm 4oCZIHNraXBzIHRoZSBjdXJyZW50IGNvbW1hbmQgaW4gdGhpcyBleGVjdXRpb24gb2YgdGhlIGtl eWJvYXJkCiAgICAgbWFjcm8sIGJ1dCBkb2VzbuKAmXQgZGVsZXRlIGl0IGZyb20gdGhlIG1hY3Jv LgogICDigKIgPFRBQj4gZXhlY3V0ZXMgdGhlIGN1cnJlbnQgY29tbWFuZCwgYXMgd2VsbCBhcyBh bGwgc2ltaWxhciBjb21tYW5kcwogICAgIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgY3VycmVu dCBjb21tYW5kOyBmb3IgZXhhbXBsZSwgPFRBQj4gbWF5CiAgICAgYmUgdXNlZCB0byBpbnNlcnQg YSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIChjb3JyZXNwb25kaW5nIHRvIGEKICAgICBzZXF1ZW5j ZSBvZiDigJhzZWxmLWluc2VydC1jb21tYW5k4oCZIGNvbW1hbmRzKS4KICAg4oCiIOKAmGPigJkg Y29udGludWVzIGV4ZWN1dGlvbiAod2l0aG91dCBmdXJ0aGVyIGVkaXRpbmcpIHVudGlsIHRoZSBl bmQgb2YKICAgICB0aGUga2V5Ym9hcmQgbWFjcm8uICBJZiBleGVjdXRpb24gdGVybWluYXRlcyBu b3JtYWxseSwgdGhlIGVkaXRlZAogICAgIG1hY3JvIHJlcGxhY2VzIHRoZSBvcmlnaW5hbCBrZXli b2FyZCBtYWNyby4KICAg4oCiIOKAmEMta+KAmSBza2lwcyBhbmQgZGVsZXRlcyB0aGUgcmVzdCBv ZiB0aGUga2V5Ym9hcmQgbWFjcm8sIHRlcm1pbmF0ZXMKICAgICBzdGVwLWVkaXRpbmcsIGFuZCBy ZXBsYWNlcyB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgbWFjcm8gd2l0aCB0aGUKICAgICBlZGl0ZWQg bWFjcm8uCiAgIOKAoiDigJhx4oCZIGFuZCDigJhDLWfigJkgY2FuY2VscyB0aGUgc3RlcC1lZGl0 aW5nIG9mIHRoZSBrZXlib2FyZCBtYWNybzsKICAgICBkaXNjYXJkaW5nIGFueSBjaGFuZ2VzIG1h ZGUgdG8gdGhlIGtleWJvYXJkIG1hY3JvLgogICDigKIg4oCYaSBLRVnigKYgQy1q4oCZIHJlYWRz IGFuZCBleGVjdXRlcyBhIHNlcmllcyBvZiBrZXkgc2VxdWVuY2VzIChub3QKICAgICBpbmNsdWRp bmcgdGhlIGZpbmFsIOKAmEMtauKAmSksIGFuZCBpbnNlcnRzIHRoZW0gYmVmb3JlIHRoZSBjdXJy ZW50CiAgICAgY29tbWFuZCBpbiB0aGUga2V5Ym9hcmQgbWFjcm8sIHdpdGhvdXQgYWR2YW5jaW5n IG92ZXIgdGhlIGN1cnJlbnQKICAgICBjb21tYW5kLgogICDigKIg4oCYSSBLRVnigKbigJkgcmVh ZHMgb25lIGtleSBzZXF1ZW5jZSwgZXhlY3V0ZXMgaXQsIGFuZCBpbnNlcnRzIGl0IGJlZm9yZQog ICAgIHRoZSBjdXJyZW50IGNvbW1hbmQgaW4gdGhlIGtleWJvYXJkIG1hY3JvLCB3aXRob3V0IGFk dmFuY2luZyBvdmVyCiAgICAgdGhlIGN1cnJlbnQgY29tbWFuZC4KICAg4oCiIOKAmHIgS0VZ4oCm IEMtauKAmSByZWFkcyBhbmQgZXhlY3V0ZXMgYSBzZXJpZXMgb2Yga2V5IHNlcXVlbmNlcyAobm90 CiAgICAgaW5jbHVkaW5nIHRoZSBmaW5hbCDigJhDLWrigJkpLCBhbmQgcmVwbGFjZXMgdGhlIGN1 cnJlbnQgY29tbWFuZCBpbiB0aGUKICAgICBrZXlib2FyZCBtYWNybyB3aXRoIHRoZW0sIGFkdmFu Y2luZyBvdmVyIHRoZSBpbnNlcnRlZCBrZXkKICAgICBzZXF1ZW5jZXMuCiAgIOKAoiDigJhSIEtF WeKApuKAmSByZWFkcyBvbmUga2V5IHNlcXVlbmNlLCBleGVjdXRlcyBpdCwgYW5kIHJlcGxhY2Vz IHRoZQogICAgIGN1cnJlbnQgY29tbWFuZCBpbiB0aGUga2V5Ym9hcmQgbWFjcm8gd2l0aCB0aGF0 IGtleSBzZXF1ZW5jZSwKICAgICBhZHZhbmNpbmcgb3ZlciB0aGUgaW5zZXJ0ZWQga2V5IHNlcXVl bmNlLgogICDigKIg4oCYYSBLRVnigKYgQy1q4oCZIGV4ZWN1dGVzIHRoZSBjdXJyZW50IGNvbW1h bmQsIHRoZW4gcmVhZHMgYW5kIGV4ZWN1dGVzCiAgICAgYSBzZXJpZXMgb2Yga2V5IHNlcXVlbmNl cyAobm90IGluY2x1ZGluZyB0aGUgZmluYWwg4oCYQy1q4oCZKSwgYW5kCiAgICAgaW5zZXJ0cyB0 aGVtIGFmdGVyIHRoZSBjdXJyZW50IGNvbW1hbmQgaW4gdGhlIGtleWJvYXJkIG1hY3JvOyBpdAog ICAgIHRoZW4gYWR2YW5jZXMgb3ZlciB0aGUgY3VycmVudCBjb21tYW5kIGFuZCB0aGUgaW5zZXJ0 ZWQga2V5CiAgICAgc2VxdWVuY2VzLgogICDigKIg4oCYQSBLRVnigKYgQy1q4oCZIGV4ZWN1dGVz IHRoZSByZXN0IG9mIHRoZSBjb21tYW5kcyBpbiB0aGUga2V5Ym9hcmQKICAgICBtYWNybywgdGhl biByZWFkcyBhbmQgZXhlY3V0ZXMgYSBzZXJpZXMgb2Yga2V5IHNlcXVlbmNlcyAobm90CiAgICAg aW5jbHVkaW5nIHRoZSBmaW5hbCDigJhDLWrigJkpLCBhbmQgYXBwZW5kcyB0aGVtIGF0IHRoZSBl bmQgb2YgdGhlCiAgICAga2V5Ym9hcmQgbWFjcm87IGl0IHRoZW4gdGVybWluYXRlcyB0aGUgc3Rl cC1lZGl0aW5nIGFuZCByZXBsYWNlcwogICAgIHRoZSBvcmlnaW5hbCBrZXlib2FyZCBtYWNybyB3 aXRoIHRoZSBlZGl0ZWQgbWFjcm8uCgoKKiAxOCBGaWxlIEhhbmRsaW5nCgpUaGUgb3BlcmF0aW5n IHN5c3RlbSBzdG9yZXMgZGF0YSBwZXJtYW5lbnRseSBpbiBuYW1lZCAiZmlsZXMiLCBzbyBtb3N0 Cm9mIHRoZSB0ZXh0IHlvdSBlZGl0IHdpdGggRW1hY3MgY29tZXMgZnJvbSBhIGZpbGUgYW5kIGlz IHVsdGltYXRlbHkKc3RvcmVkIGluIGEgZmlsZS4KCiAgIFRvIGVkaXQgYSBmaWxlLCB5b3UgbXVz dCB0ZWxsIEVtYWNzIHRvIHJlYWQgdGhlIGZpbGUgYW5kIHByZXBhcmUgYQpidWZmZXIgY29udGFp bmluZyBhIGNvcHkgb2YgdGhlIGZpbGXigJlzIHRleHQuICBUaGlzIGlzIGNhbGxlZCAidmlzaXRp bmciCnRoZSBmaWxlLiAgRWRpdGluZyBjb21tYW5kcyBhcHBseSBkaXJlY3RseSB0byB0ZXh0IGlu IHRoZSBidWZmZXI7IHRoYXQKaXMsIHRvIHRoZSBjb3B5IGluc2lkZSBFbWFjcy4gIFlvdXIgY2hh bmdlcyBhcHBlYXIgaW4gdGhlIGZpbGUgaXRzZWxmCm9ubHkgd2hlbiB5b3UgInNhdmUiIHRoZSBi dWZmZXIgYmFjayBpbnRvIHRoZSBmaWxlLgoKICAgSW4gYWRkaXRpb24gdG8gdmlzaXRpbmcgYW5k IHNhdmluZyBmaWxlcywgRW1hY3MgY2FuIGRlbGV0ZSwgY29weSwKcmVuYW1lLCBhbmQgYXBwZW5k IHRvIGZpbGVzLCBrZWVwIG11bHRpcGxlIHZlcnNpb25zIG9mIHRoZW0sIGFuZCBvcGVyYXRlCm9u IGZpbGUgZGlyZWN0b3JpZXMuCgorIE1lbnU6CgogIC0gRmlsZSBOYW1lczo6ICAgICAgICAgIEhv dyB0byB0eXBlIGFuZCBlZGl0IGZpbGUtbmFtZSBhcmd1bWVudHMuCiAgLSBWaXNpdGluZzo6ICAg ICAgICAgICAgVmlzaXRpbmcgYSBmaWxlIHByZXBhcmVzIEVtYWNzIHRvIGVkaXQgdGhlIGZpbGUu CiAgLSBTYXZpbmc6OiAgICAgICAgICAgICAgU2F2aW5nIG1ha2VzIHlvdXIgY2hhbmdlcyBwZXJt YW5lbnQuCiAgLSBSZXZlcnRpbmc6OiAgICAgICAgICAgUmV2ZXJ0aW5nIGNhbmNlbHMgYWxsIHRo ZSBjaGFuZ2VzIG5vdCBzYXZlZC4KICAtIEF1dG9yZXZlcnQ6OiAgICAgICAgICBBdXRvIFJldmVy dGluZyBub24tZmlsZSBidWZmZXJzLgogIC0gQXV0byBTYXZlOjogICAgICAgICAgIEF1dG8gU2F2 ZSBwZXJpb2RpY2FsbHkgcHJvdGVjdHMgYWdhaW5zdCBsb3NzIG9mIGRhdGEuCiAgLSBGaWxlIEFs aWFzZXM6OiAgICAgICAgSGFuZGxpbmcgbXVsdGlwbGUgbmFtZXMgZm9yIG9uZSBmaWxlLgogIC0g RGlyZWN0b3JpZXM6OiAgICAgICAgIENyZWF0aW5nLCBkZWxldGluZywgYW5kIGxpc3RpbmcgZmls ZSBkaXJlY3Rvcmllcy4KICAtIENvbXBhcmluZyBGaWxlczo6ICAgICBGaW5kaW5nIHdoZXJlIHR3 byBmaWxlcyBkaWZmZXIuCiAgLSBEaWZmIE1vZGU6OiAgICAgICAgICAgTW9kZSBmb3IgZWRpdGlu ZyBmaWxlIGRpZmZlcmVuY2VzLgogIC0gQ29weWluZyBhbmQgTmFtaW5nOjogIENvcHlpbmcsIG5h bWluZyBhbmQgcmVuYW1pbmcgZmlsZXMuCiAgLSBNaXNjIEZpbGUgT3BzOjogICAgICAgT3RoZXIg dGhpbmdzIHlvdSBjYW4gZG8gb24gZmlsZXMuCiAgLSBDb21wcmVzc2VkIEZpbGVzOjogICAgQWNj ZXNzaW5nIGNvbXByZXNzZWQgZmlsZXMuCiAgLSBGaWxlIEFyY2hpdmVzOjogICAgICAgT3BlcmF0 aW5nIG9uIHRhciwgemlwLCBqYXIgZXRjLiBhcmNoaXZlIGZpbGVzLgogIC0gUmVtb3RlIEZpbGVz OjogICAgICAgIEFjY2Vzc2luZyBmaWxlcyBvbiBvdGhlciBtYWNoaW5lcy4KICAtIFF1b3RlZCBG aWxlIE5hbWVzOjogICBRdW90aW5nIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVzLgog IC0gRmlsZSBOYW1lIENhY2hlOjogICAgIENvbXBsZXRpb24gYWdhaW5zdCBhIGxpc3Qgb2YgZmls ZXMgeW91IG9mdGVuIHVzZS4KICAtIEZpbGUgQ29udmVuaWVuY2VzOjogICBDb252ZW5pZW5jZSBG ZWF0dXJlcyBmb3IgRmluZGluZyBGaWxlcy4KICAtIEZpbGVzZXRzOjogICAgICAgICAgICBIYW5k bGluZyBzZXRzIG9mIGZpbGVzLgoKCioqIDE4LjEgRmlsZSBOYW1lcwoKTWFueSBFbWFjcyBjb21t YW5kcyB0aGF0IG9wZXJhdGUgb24gYSBmaWxlIHJlcXVpcmUgeW91IHRvIHNwZWNpZnkgdGhlCmZp bGUgbmFtZSwgdXNpbmcgdGhlIG1pbmlidWZmZXIgKCpub3RlIE1pbmlidWZmZXIgRmlsZTo6KS4K CiAgIFdoaWxlIGluIHRoZSBtaW5pYnVmZmVyLCB5b3UgY2FuIHVzZSB0aGUgdXN1YWwgY29tcGxl dGlvbiBhbmQgaGlzdG9yeQpjb21tYW5kcyAoKm5vdGUgTWluaWJ1ZmZlcjo6KS4gIE5vdGUgdGhh dCBmaWxlIG5hbWUgY29tcGxldGlvbiBpZ25vcmVzCmZpbGUgbmFtZXMgd2hvc2UgZXh0ZW5zaW9u cyBhcHBlYXIgaW4gdGhlIHZhcmlhYmxlCuKAmGNvbXBsZXRpb24taWdub3JlZC1leHRlbnNpb25z 4oCZICgqbm90ZSBDb21wbGV0aW9uIE9wdGlvbnM6OikuICBOb3RlIGFsc28KdGhhdCBtb3N0IGNv bW1hbmRzIHVzZSBwZXJtaXNzaXZlIGNvbXBsZXRpb24gd2l0aCBjb25maXJtYXRpb24gZm9yCnJl YWRpbmcgZmlsZSBuYW1lczogeW91IGFyZSBhbGxvd2VkIHRvIHN1Ym1pdCBhIG5vbmV4aXN0ZW50 IGZpbGUgbmFtZSwKYnV0IGlmIHlvdSB0eXBlIDxSRVQ+IGltbWVkaWF0ZWx5IGFmdGVyIGNvbXBs ZXRpbmcgdXAgdG8gYSBub25leGlzdGVudApmaWxlIG5hbWUsIEVtYWNzIHByaW50cyDigJhbQ29u ZmlybV3igJkgYW5kIHlvdSBtdXN0IHR5cGUgYSBzZWNvbmQgPFJFVD4gdG8KY29uZmlybS4gICpO b3RlIENvbXBsZXRpb24gRXhpdDo6LCBmb3IgZGV0YWlscy4KCiAgIE1pbmlidWZmZXIgaGlzdG9y eSBjb21tYW5kcyBvZmZlciBzb21lIHNwZWNpYWwgZmVhdHVyZXMgZm9yIHJlYWRpbmcKZmlsZSBu YW1lcywgc2VlICpub3RlIE1pbmlidWZmZXIgSGlzdG9yeTo6LgoKICAgRWFjaCBidWZmZXIgaGFz IGEgImRlZmF1bHQgZGlyZWN0b3J5Iiwgc3RvcmVkIGluIHRoZSBidWZmZXItbG9jYWwKdmFyaWFi bGUg4oCYZGVmYXVsdC1kaXJlY3RvcnnigJkuICBXaGVuZXZlciBFbWFjcyByZWFkcyBhIGZpbGUg bmFtZSB1c2luZwp0aGUgbWluaWJ1ZmZlciwgaXQgdXN1YWxseSBpbnNlcnRzIHRoZSBkZWZhdWx0 IGRpcmVjdG9yeSBpbnRvIHRoZQptaW5pYnVmZmVyIGFzIHRoZSBpbml0aWFsIGNvbnRlbnRzLiAg WW91IGNhbiBpbmhpYml0IHRoaXMgaW5zZXJ0aW9uIGJ5CmNoYW5naW5nIHRoZSB2YXJpYWJsZSDi gJhpbnNlcnQtZGVmYXVsdC1kaXJlY3RvcnnigJkgdG8g4oCYbmls4oCZICgqbm90ZQpNaW5pYnVm ZmVyIEZpbGU6OikuICBSZWdhcmRsZXNzLCBFbWFjcyBhbHdheXMgYXNzdW1lcyB0aGF0IGFueSBy ZWxhdGl2ZQpmaWxlIG5hbWUgaXMgcmVsYXRpdmUgdG8gdGhlIGRlZmF1bHQgZGlyZWN0b3J5LCBl LmcuLCBlbnRlcmluZyBhIGZpbGUKbmFtZSB3aXRob3V0IGEgZGlyZWN0b3J5IHNwZWNpZmllcyBh IGZpbGUgaW4gdGhlIGRlZmF1bHQgZGlyZWN0b3J5LgoKICAgV2hlbiB5b3UgdmlzaXQgYSBmaWxl LCBFbWFjcyBzZXRzIOKAmGRlZmF1bHQtZGlyZWN0b3J54oCZIGluIHRoZSB2aXNpdGluZwpidWZm ZXIgdG8gdGhlIGRpcmVjdG9yeSBvZiBpdHMgZmlsZS4gIFdoZW4geW91IGNyZWF0ZSBhIG5ldyBi dWZmZXIgdGhhdAppcyBub3QgdmlzaXRpbmcgYSBmaWxlLCB2aWEgYSBjb21tYW5kIGxpa2Ug4oCY Qy14IGLigJksIGl0cyBkZWZhdWx0CmRpcmVjdG9yeSBpcyB1c3VhbGx5IGNvcGllZCBmcm9tIHRo ZSBidWZmZXIgdGhhdCB3YXMgY3VycmVudCBhdCB0aGUgdGltZQooKm5vdGUgU2VsZWN0IEJ1ZmZl cjo6KS4gIFlvdSBjYW4gdXNlIHRoZSBjb21tYW5kIOKAmE0teCBwd2TigJkgdG8gc2VlIHRoZQp2 YWx1ZSBvZiDigJhkZWZhdWx0LWRpcmVjdG9yeeKAmSBpbiB0aGUgY3VycmVudCBidWZmZXIuICBU aGUgY29tbWFuZCDigJhNLXgKY2TigJkgcHJvbXB0cyBmb3IgYSBkaXJlY3RvcnnigJlzIG5hbWUs IGFuZCBzZXRzIHRoZSBidWZmZXLigJlzCuKAmGRlZmF1bHQtZGlyZWN0b3J54oCZIHRvIHRoYXQg ZGlyZWN0b3J5IChkb2luZyB0aGlzIGRvZXMgbm90IGNoYW5nZSB0aGUKYnVmZmVy4oCZcyBmaWxl IG5hbWUsIGlmIGFueSkuCgogICBBcyBhbiBleGFtcGxlLCB3aGVuIHlvdSB2aXNpdCB0aGUgZmls ZSDigJgvdS9ybXMvZ251L2dudS50YXNrc+KAmSwgdGhlCmRlZmF1bHQgZGlyZWN0b3J5IGlzIHNl dCB0byDigJgvdS9ybXMvZ251L+KAmS4gIElmIHlvdSBpbnZva2UgYSBjb21tYW5kIHRoYXQKcmVh ZHMgYSBmaWxlIG5hbWUsIGVudGVyaW5nIGp1c3Qg4oCYZm9v4oCZIGluIHRoZSBtaW5pYnVmZmVy LCB3aXRoIGEKZGlyZWN0b3J5IG9taXR0ZWQsIHNwZWNpZmllcyB0aGUgZmlsZSDigJgvdS9ybXMv Z251L2Zvb+KAmTsgZW50ZXJpbmcK4oCYLi4vLmxvZ2lu4oCZIHNwZWNpZmllcyDigJgvdS9ybXMv LmxvZ2lu4oCZOyBhbmQgZW50ZXJpbmcg4oCYbmV3L2Zvb+KAmSBzcGVjaWZpZXMK4oCYL3Uvcm1z L2dudS9uZXcvZm9v4oCZLgoKICAgV2hlbiB0eXBpbmcgYSBmaWxlIG5hbWUgaW50byB0aGUgbWlu aWJ1ZmZlciwgeW91IGNhbiBtYWtlIHVzZSBvZiBhCmNvdXBsZSBvZiBzaG9ydGN1dHM6IGEgZG91 YmxlIHNsYXNoIGlnbm9yZXMgZXZlcnl0aGluZyBiZWZvcmUgdGhlIHNlY29uZApzbGFzaCBpbiB0 aGUgcGFpciwgYW5kIOKAmH4v4oCZIGlzIHlvdXIgaG9tZSBkaXJlY3RvcnkuICAqTm90ZSBNaW5p YnVmZmVyCkZpbGU6Oi4KCiAgIFRoZSBjaGFyYWN0ZXIg4oCYJOKAmSBpcyB1c2VkIHRvIHN1YnN0 aXR1dGUgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgaW50bwphIGZpbGUgbmFtZS4gIFRoZSBuYW1l IG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBjb25zaXN0cyBvZiBhbGwgdGhlCmFscGhhbnVt ZXJpYyBjaGFyYWN0ZXJzIGFmdGVyIHRoZSDigJgk4oCZOyBhbHRlcm5hdGl2ZWx5LCBpdCBjYW4g YmUgZW5jbG9zZWQKaW4gYnJhY2VzIGFmdGVyIHRoZSDigJgk4oCZLiAgRm9yIGV4YW1wbGUsIGlm IHlvdSBoYXZlIHVzZWQgdGhlIHNoZWxsCmNvbW1hbmQg4oCYZXhwb3J0IEZPTz1ybXMvaGFja3Pi gJkgdG8gc2V0IHVwIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkCuKAmEZPT+KAmSwgdGhl biBib3RoIOKAmC91LyRGT08vdGVzdC5j4oCZIGFuZCDigJgvdS8ke0ZPT30vdGVzdC5j4oCZIGFy ZQphYmJyZXZpYXRpb25zIGZvciDigJgvdS9ybXMvaGFja3MvdGVzdC5j4oCZLiAgSWYgdGhlIGVu dmlyb25tZW50IHZhcmlhYmxlIGlzCm5vdCBkZWZpbmVkLCBubyBzdWJzdGl0dXRpb24gb2NjdXJz LCBzbyB0aGF0IHRoZSBjaGFyYWN0ZXIg4oCYJOKAmSBzdGFuZHMKZm9yIGl0c2VsZi4gIE5vdGUg dGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgc2V0IG91dHNpZGUgRW1hY3MgYWZmZWN0CkVtYWNz IG9ubHkgaWYgdGhleSBhcmUgYXBwbGllZCBiZWZvcmUgRW1hY3MgaXMgc3RhcnRlZC4KCiAgIFRv IGFjY2VzcyBhIGZpbGUgd2l0aCDigJgk4oCZIGluIGl0cyBuYW1lLCBpZiB0aGUg4oCYJOKAmSBj YXVzZXMgZXhwYW5zaW9uLAp0eXBlIOKAmCQk4oCZLiAgVGhpcyBwYWlyIGlzIGNvbnZlcnRlZCB0 byBhIHNpbmdsZSDigJgk4oCZIGF0IHRoZSBzYW1lIHRpbWUgdGhhdAp2YXJpYWJsZSBzdWJzdGl0 dXRpb24gaXMgcGVyZm9ybWVkIGZvciBhIHNpbmdsZSDigJgk4oCZLiAgQWx0ZXJuYXRpdmVseSwK cXVvdGUgdGhlIHdob2xlIGZpbGUgbmFtZSB3aXRoIOKAmC864oCZICgqbm90ZSBRdW90ZWQgRmls ZSBOYW1lczo6KS4gIEZpbGUKbmFtZXMgd2hpY2ggYmVnaW4gd2l0aCBhIGxpdGVyYWwg4oCYfuKA mSBzaG91bGQgYWxzbyBiZSBxdW90ZWQgd2l0aCDigJgvOuKAmS4KCiAgIFlvdSBjYW4gaW5jbHVk ZSBub24tQVNDSUkgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVzLiAgKk5vdGUgRmlsZSBOYW1lCkNv ZGluZzo6LgoKCioqIDE4LjIgVmlzaXRpbmcgRmlsZXMKCuKAmEMteCBDLWbigJkKICAgICBWaXNp dCBhIGZpbGUgKOKAmGZpbmQtZmlsZeKAmSkuCuKAmEMteCBDLXLigJkKICAgICBWaXNpdCBhIGZp bGUgZm9yIHZpZXdpbmcsIHdpdGhvdXQgYWxsb3dpbmcgY2hhbmdlcyB0byBpdAogICAgICjigJhm aW5kLWZpbGUtcmVhZC1vbmx54oCZKS4K4oCYQy14IEMtduKAmQogICAgIFZpc2l0IGEgZGlmZmVy ZW50IGZpbGUgaW5zdGVhZCBvZiB0aGUgb25lIHZpc2l0ZWQgbGFzdAogICAgICjigJhmaW5kLWFs dGVybmF0ZS1maWxl4oCZKS4K4oCYQy14IDQgZuKAmQogICAgIFZpc2l0IGEgZmlsZSwgaW4gYW5v dGhlciB3aW5kb3cgKOKAmGZpbmQtZmlsZS1vdGhlci13aW5kb3figJkpLiAgRG9u4oCZdAogICAg IGFsdGVyIHdoYXQgaXMgZGlzcGxheWVkIGluIHRoZSBzZWxlY3RlZCB3aW5kb3cuCuKAmEMteCA1 IGbigJkKICAgICBWaXNpdCBhIGZpbGUsIGluIGEgbmV3IGZyYW1lICjigJhmaW5kLWZpbGUtb3Ro ZXItZnJhbWXigJkpLiAgRG9u4oCZdAogICAgIGFsdGVyIHdoYXQgaXMgZGlzcGxheWVkIGluIHRo ZSBzZWxlY3RlZCBmcmFtZS4K4oCYTS14IGZpbmQtZmlsZS1saXRlcmFsbHnigJkKICAgICBWaXNp dCBhIGZpbGUgd2l0aCBubyBjb252ZXJzaW9uIG9mIHRoZSBjb250ZW50cy4KCiAgICJWaXNpdGlu ZyIgYSBmaWxlIG1lYW5zIHJlYWRpbmcgaXRzIGNvbnRlbnRzIGludG8gYW4gRW1hY3MgYnVmZmVy IHNvCnlvdSBjYW4gZWRpdCB0aGVtLiAgRW1hY3MgbWFrZXMgYSBuZXcgYnVmZmVyIGZvciBlYWNo IGZpbGUgdGhhdCB5b3UKdmlzaXQuCgogICBUbyB2aXNpdCBhIGZpbGUsIHR5cGUg4oCYQy14IEMt ZuKAmSAo4oCYZmluZC1maWxl4oCZKSBhbmQgdXNlIHRoZSBtaW5pYnVmZmVyCnRvIGVudGVyIHRo ZSBuYW1lIG9mIHRoZSBkZXNpcmVkIGZpbGUuICBXaGlsZSBpbiB0aGUgbWluaWJ1ZmZlciwgeW91 IGNhbgphYm9ydCB0aGUgY29tbWFuZCBieSB0eXBpbmcg4oCYQy1n4oCZLiAgKk5vdGUgRmlsZSBO YW1lczo6LCBmb3IgZGV0YWlscwphYm91dCBlbnRlcmluZyBmaWxlIG5hbWVzIGludG8gbWluaWJ1 ZmZlcnMuCgogICBJZiB0aGUgc3BlY2lmaWVkIGZpbGUgZXhpc3RzIGJ1dCB0aGUgc3lzdGVtIGRv ZXMgbm90IGFsbG93IHlvdSB0bwpyZWFkIGl0LCBhbiBlcnJvciBtZXNzYWdlIGlzIGRpc3BsYXll ZCBpbiB0aGUgZWNobyBhcmVhIChvbiBHTlUgYW5kIFVuaXgKc3lzdGVtcyB5b3UgbWlnaHQgYmUg YWJsZSB0byB2aXNpdCBzdWNoIGEgZmlsZSB1c2luZyB0aGUg4oCYc3XigJkgb3Ig4oCYc3Vkb+KA mQptZXRob2RzOyAqbm90ZSBSZW1vdGUgRmlsZXM6OikuICBPdGhlcndpc2UsIHlvdSBjYW4gdGVs bCB0aGF0IOKAmEMteCBDLWbigJkKaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYnkgdGhlIGFw cGVhcmFuY2Ugb2YgbmV3IHRleHQgb24gdGhlIHNjcmVlbiwKYW5kIGJ5IHRoZSBidWZmZXIgbmFt ZSBzaG93biBpbiB0aGUgbW9kZSBsaW5lICgqbm90ZSBNb2RlIExpbmU6OikuCkVtYWNzIG5vcm1h bGx5IGNvbnN0cnVjdHMgdGhlIGJ1ZmZlciBuYW1lIGZyb20gdGhlIGZpbGUgbmFtZSwgb21pdHRp bmcKdGhlIGRpcmVjdG9yeSBuYW1lLiAgRm9yIGV4YW1wbGUsIGEgZmlsZSBuYW1lZCDigJgvdXNy L3Jtcy9lbWFjcy50ZXjigJkgaXMKdmlzaXRlZCBpbiBhIGJ1ZmZlciBuYW1lZCDigJhlbWFjcy50 ZXjigJkuICBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgYnVmZmVyCndpdGggdGhhdCBuYW1lLCBFbWFj cyBjb25zdHJ1Y3RzIGEgdW5pcXVlIG5hbWU7IHRoZSBub3JtYWwgbWV0aG9kIGlzIHRvCmFkZCBh IHN1ZmZpeCBiYXNlZCBvbiB0aGUgZGlyZWN0b3J5IG5hbWUgKGUuZy4sIOKAmDxybXM+4oCZLCDi gJg8dG1wPuKAmSwgYW5kIHNvCm9uKSwgYnV0IHlvdSBjYW4gc2VsZWN0IG90aGVyIG1ldGhvZHMu ICAqTm90ZSBVbmlxdWlmeTo6LgoKICAgVG8gY3JlYXRlIGEgbmV3IGZpbGUsIGp1c3QgdmlzaXQg aXQgdXNpbmcgdGhlIHNhbWUgY29tbWFuZCwg4oCYQy14CkMtZuKAmS4gIEVtYWNzIGRpc3BsYXlz IOKAmChOZXcgZmlsZSnigJkgaW4gdGhlIGVjaG8gYXJlYSwgYnV0IGluIG90aGVyCnJlc3BlY3Rz IGJlaGF2ZXMgYXMgaWYgeW91IGhhZCB2aXNpdGVkIGFuIGV4aXN0aW5nIGVtcHR5IGZpbGUuCgog ICBBZnRlciB2aXNpdGluZyBhIGZpbGUsIHRoZSBjaGFuZ2VzIHlvdSBtYWtlIHdpdGggZWRpdGlu ZyBjb21tYW5kcyBhcmUKbWFkZSBpbiB0aGUgRW1hY3MgYnVmZmVyLiAgVGhleSBkbyBub3QgdGFr ZSBlZmZlY3QgaW4gdGhlIHZpc2l0ZWQgZmlsZSwKdW50aWwgeW91ICJzYXZlIiB0aGUgYnVmZmVy ICgqbm90ZSBTYXZpbmc6OikuICBJZiBhIGJ1ZmZlciBjb250YWlucwpjaGFuZ2VzIHRoYXQgaGF2 ZSBub3QgYmVlbiBzYXZlZCwgd2Ugc2F5IHRoZSBidWZmZXIgaXMgIm1vZGlmaWVkIi4gIFRoaXMK aW1wbGllcyB0aGF0IHNvbWUgY2hhbmdlcyB3aWxsIGJlIGxvc3QgaWYgdGhlIGJ1ZmZlciBpcyBu b3Qgc2F2ZWQuICBUaGUKbW9kZSBsaW5lIGRpc3BsYXlzIHR3byBzdGFycyBuZWFyIHRoZSBsZWZ0 IG1hcmdpbiB0byBpbmRpY2F0ZSB0aGF0IHRoZQpidWZmZXIgaXMgbW9kaWZpZWQuCgogICBJZiB5 b3UgdmlzaXQgYSBmaWxlIHRoYXQgaXMgYWxyZWFkeSBpbiBFbWFjcywg4oCYQy14IEMtZuKAmSBz d2l0Y2hlcyB0bwp0aGUgZXhpc3RpbmcgYnVmZmVyIGluc3RlYWQgb2YgbWFraW5nIGFub3RoZXIg Y29weS4gIEJlZm9yZSBkb2luZyBzbywgaXQKY2hlY2tzIHdoZXRoZXIgdGhlIGZpbGUgaGFzIGNo YW5nZWQgc2luY2UgeW91IGxhc3QgdmlzaXRlZCBvciBzYXZlZCBpdC4KSWYgdGhlIGZpbGUgaGFz IGNoYW5nZWQsIEVtYWNzIG9mZmVycyB0byByZXJlYWQgaXQuCgogICBJZiB5b3UgdHJ5IHRvIHZp c2l0IGEgZmlsZSBsYXJnZXIgdGhhbiDigJhsYXJnZS1maWxlLXdhcm5pbmctdGhyZXNob2xk4oCZ Cih0aGUgZGVmYXVsdCBpcyAxMDAwMDAwMCwgd2hpY2ggaXMgYWJvdXQgMTAgbWVnYWJ5dGVzKSwg RW1hY3MgYXNrcyB5b3UKZm9yIGNvbmZpcm1hdGlvbiBmaXJzdC4gIFlvdSBjYW4gYW5zd2VyIOKA mHnigJkgdG8gcHJvY2VlZCB3aXRoIHZpc2l0aW5nIHRoZQpmaWxlLiAgTm90ZSwgaG93ZXZlciwg dGhhdCBFbWFjcyBjYW5ub3QgdmlzaXQgZmlsZXMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4KdGhlIG1h eGltdW0gRW1hY3MgYnVmZmVyIHNpemUsIHdoaWNoIGlzIGxpbWl0ZWQgYnkgdGhlIGFtb3VudCBv ZiBtZW1vcnkKRW1hY3MgY2FuIGFsbG9jYXRlIGFuZCBieSB0aGUgaW50ZWdlcnMgdGhhdCBFbWFj cyBjYW4gcmVwcmVzZW50ICgqbm90ZQpCdWZmZXJzOjopLiAgSWYgeW91IHRyeSwgRW1hY3MgZGlz cGxheXMgYW4gZXJyb3IgbWVzc2FnZSBzYXlpbmcgdGhhdCB0aGUKbWF4aW11bSBidWZmZXIgc2l6 ZSBoYXMgYmVlbiBleGNlZWRlZC4KCiAgIElmIHRoZSBmaWxlIG5hbWUgeW91IHNwZWNpZnkgY29u dGFpbnMgc2hlbGwtc3R5bGUgd2lsZGNhcmQKY2hhcmFjdGVycywgRW1hY3MgdmlzaXRzIGFsbCB0 aGUgZmlsZXMgdGhhdCBtYXRjaCBpdC4gIChPbgpjYXNlLWluc2Vuc2l0aXZlIGZpbGVzeXN0ZW1z LCBFbWFjcyBtYXRjaGVzIHRoZSB3aWxkY2FyZHMgZGlzcmVnYXJkaW5nCnRoZSBsZXR0ZXIgY2Fz ZS4pICBXaWxkY2FyZHMgaW5jbHVkZSDigJg/4oCZLCDigJgq4oCZLCBhbmQg4oCYW+KApl3igJkg c2VxdWVuY2VzLiAgVG8KZW50ZXIgdGhlIHdpbGQgY2FyZCDigJg/4oCZIGluIGEgZmlsZSBuYW1l IGluIHRoZSBtaW5pYnVmZmVyLCB5b3UgbmVlZCB0bwp0eXBlIOKAmEMtcSA/4oCZLiAgKk5vdGUg UXVvdGVkIEZpbGUgTmFtZXM6OiwgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0bwp2aXNpdCBhIGZp bGUgd2hvc2UgbmFtZSBhY3R1YWxseSBjb250YWlucyB3aWxkY2FyZCBjaGFyYWN0ZXJzLiAgWW91 IGNhbgpkaXNhYmxlIHRoZSB3aWxkY2FyZCBmZWF0dXJlIGJ5IGN1c3RvbWl6aW5nIOKAmGZpbmQt ZmlsZS13aWxkY2FyZHPigJkuCgogICBJZiB5b3UgdmlzaXQgdGhlIHdyb25nIGZpbGUgdW5pbnRl bnRpb25hbGx5IGJ5IHR5cGluZyBpdHMgbmFtZQppbmNvcnJlY3RseSwgdHlwZSDigJhDLXggQy12 4oCZICjigJhmaW5kLWFsdGVybmF0ZS1maWxl4oCZKSB0byB2aXNpdCB0aGUgZmlsZQp5b3UgcmVh bGx5IHdhbnRlZC4gIOKAmEMteCBDLXbigJkgaXMgc2ltaWxhciB0byDigJhDLXggQy1m4oCZLCBi dXQgaXQga2lsbHMgdGhlCmN1cnJlbnQgYnVmZmVyIChhZnRlciBmaXJzdCBvZmZlcmluZyB0byBz YXZlIGl0IGlmIGl0IGlzIG1vZGlmaWVkKS4KV2hlbiDigJhDLXggQy124oCZIHJlYWRzIHRoZSBm aWxlIG5hbWUgdG8gdmlzaXQsIGl0IGluc2VydHMgdGhlIGVudGlyZQpkZWZhdWx0IGZpbGUgbmFt ZSBpbiB0aGUgYnVmZmVyLCB3aXRoIHBvaW50IGp1c3QgYWZ0ZXIgdGhlIGRpcmVjdG9yeQpwYXJ0 OyB0aGlzIGlzIGNvbnZlbmllbnQgaWYgeW91IG1hZGUgYSBzbGlnaHQgZXJyb3IgaW4gdHlwaW5n IHRoZSBuYW1lLgoKICAgSWYgeW91IHZpc2l0IGEgZmlsZSB0aGF0IGlzIGFjdHVhbGx5IGEgZGly ZWN0b3J5LCBFbWFjcyBpbnZva2VzCkRpcmVkLCB0aGUgRW1hY3MgZGlyZWN0b3J5IGJyb3dzZXIu ICAqTm90ZSBEaXJlZDo6LiAgWW91IGNhbiBkaXNhYmxlCnRoaXMgYmVoYXZpb3IgYnkgc2V0dGlu ZyB0aGUgdmFyaWFibGUg4oCYZmluZC1maWxlLXJ1bi1kaXJlZOKAmSB0byDigJhuaWzigJk7IGlu CnRoYXQgY2FzZSwgaXQgaXMgYW4gZXJyb3IgdG8gdHJ5IHRvIHZpc2l0IGEgZGlyZWN0b3J5LgoK ICAgRmlsZXMgd2hpY2ggYXJlIGFjdHVhbGx5IGNvbGxlY3Rpb25zIG9mIG90aGVyIGZpbGVzLCBv ciAiZmlsZQphcmNoaXZlcyIsIGFyZSB2aXNpdGVkIGluIHNwZWNpYWwgbW9kZXMgd2hpY2ggaW52 b2tlIGEgRGlyZWQtbGlrZQplbnZpcm9ubWVudCB0byBhbGxvdyBvcGVyYXRpb25zIG9uIGFyY2hp dmUgbWVtYmVycy4gICpOb3RlIEZpbGUKQXJjaGl2ZXM6OiwgZm9yIG1vcmUgYWJvdXQgdGhlc2Ug ZmVhdHVyZXMuCgogICBJZiB5b3UgdmlzaXQgYSBmaWxlIHRoYXQgdGhlIG9wZXJhdGluZyBzeXN0 ZW0gd29u4oCZdCBsZXQgeW91IG1vZGlmeSwKb3IgdGhhdCBpcyBtYXJrZWQgcmVhZC1vbmx5LCBF bWFjcyBtYWtlcyB0aGUgYnVmZmVyIHJlYWQtb25seSB0b28sIHNvCnRoYXQgeW91IHdvbuKAmXQg Z28gYWhlYWQgYW5kIG1ha2UgY2hhbmdlcyB0aGF0IHlvdeKAmWxsIGhhdmUgdHJvdWJsZSBzYXZp bmcKYWZ0ZXJ3YXJkLiAgWW91IGNhbiBtYWtlIHRoZSBidWZmZXIgd3JpdGFibGUgd2l0aCDigJhD LXggQy1x4oCZCijigJhyZWFkLW9ubHktbW9kZeKAmSkuICAqTm90ZSBNaXNjIEJ1ZmZlcjo6LgoK ICAgSWYgeW91IHdhbnQgdG8gdmlzaXQgYSBmaWxlIGFzIHJlYWQtb25seSBpbiBvcmRlciB0byBw cm90ZWN0IHlvdXJzZWxmCmZyb20gZW50ZXJpbmcgY2hhbmdlcyBhY2NpZGVudGFsbHksIHZpc2l0 IGl0IHdpdGggdGhlIGNvbW1hbmQg4oCYQy14IEMtcuKAmQoo4oCYZmluZC1maWxlLXJlYWQtb25s eeKAmSkgaW5zdGVhZCBvZiDigJhDLXggQy1m4oCZLgoKICAg4oCYQy14IDQgZuKAmSAo4oCYZmlu ZC1maWxlLW90aGVyLXdpbmRvd+KAmSkgaXMgbGlrZSDigJhDLXggQy1m4oCZIGV4Y2VwdCB0aGF0 CnRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgc3BlY2lmaWVkIGZpbGUgaXMgc2VsZWN0ZWQgaW4g YW5vdGhlciB3aW5kb3cuClRoZSB3aW5kb3cgdGhhdCB3YXMgc2VsZWN0ZWQgYmVmb3JlIOKAmEMt eCA0IGbigJkgY29udGludWVzIHRvIHNob3cgdGhlIHNhbWUKYnVmZmVyIGl0IHdhcyBhbHJlYWR5 IHNob3dpbmcuICBJZiB0aGlzIGNvbW1hbmQgaXMgdXNlZCB3aGVuIG9ubHkgb25lCndpbmRvdyBp cyBiZWluZyBkaXNwbGF5ZWQsIHRoYXQgd2luZG93IGlzIHNwbGl0IGluIHR3bywgd2l0aCBvbmUg d2luZG93CnNob3dpbmcgdGhlIHNhbWUgYnVmZmVyIGFzIGJlZm9yZSwgYW5kIHRoZSBvdGhlciBv bmUgc2hvd2luZyB0aGUgbmV3bHkKcmVxdWVzdGVkIGZpbGUuICAqTm90ZSBXaW5kb3dzOjouCgog ICDigJhDLXggNSBm4oCZICjigJhmaW5kLWZpbGUtb3RoZXItZnJhbWXigJkpIGlzIHNpbWlsYXIs IGJ1dCBvcGVucyBhIG5ldwpmcmFtZSwgb3Igc2VsZWN0cyBhbnkgZXhpc3RpbmcgZnJhbWUgc2hv d2luZyB0aGUgc3BlY2lmaWVkIGZpbGUuICAqTm90ZQpGcmFtZXM6Oi4KCiAgIE9uIGdyYXBoaWNh bCBkaXNwbGF5cywgdGhlcmUgYXJlIHR3byBhZGRpdGlvbmFsIG1ldGhvZHMgZm9yIHZpc2l0aW5n CmZpbGVzLiAgRmlyc3RseSwgd2hlbiBFbWFjcyBpcyBidWlsdCB3aXRoIGEgc3VpdGFibGUgR1VJ IHRvb2xraXQsCmNvbW1hbmRzIGludm9rZWQgd2l0aCB0aGUgbW91c2UgKGJ5IGNsaWNraW5nIG9u IHRoZSBtZW51IGJhciBvciB0b29sCmJhcikgdXNlIHRoZSB0b29sa2l04oCZcyBzdGFuZGFyZCBm aWxlIHNlbGVjdGlvbiBkaWFsb2cgaW5zdGVhZCBvZgpwcm9tcHRpbmcgZm9yIHRoZSBmaWxlIG5h bWUgaW4gdGhlIG1pbmlidWZmZXIuICBPbiBHTlUvTGludXggYW5kIFVuaXgKcGxhdGZvcm1zLCBF bWFjcyBkb2VzIHRoaXMgd2hlbiBidWlsdCB3aXRoIEdUSyssIExlc3NUaWYsIGFuZCBNb3RpZgp0 b29sa2l0czsgb24gTVMtV2luZG93cyBhbmQgTWFjLCB0aGUgR1VJIHZlcnNpb24gZG9lcyB0aGF0 IGJ5IGRlZmF1bHQuCkZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY3VzdG9taXplIHRoaXMsIHNl ZSAqbm90ZSBEaWFsb2cgQm94ZXM6Oi4KCiAgIFNlY29uZGx5LCBFbWFjcyBzdXBwb3J0cyBkcmFn IGFuZCBkcm9wOiBkcm9wcGluZyBhIGZpbGUgaW50byBhbgpvcmRpbmFyeSBFbWFjcyB3aW5kb3cg dmlzaXRzIHRoZSBmaWxlIHVzaW5nIHRoYXQgd2luZG93LiAgQXMgYW4KZXhjZXB0aW9uLCBkcm9w cGluZyBhIGZpbGUgaW50byBhIHdpbmRvdyBkaXNwbGF5aW5nIGEgRGlyZWQgYnVmZmVyIG1vdmVz Cm9yIGNvcGllcyB0aGUgZmlsZSBpbnRvIHRoZSBkaXNwbGF5ZWQgZGlyZWN0b3J5LiAgRm9yIGRl dGFpbHMsIHNlZSAqbm90ZQpEcmFnIGFuZCBEcm9wOjosIGFuZCAqbm90ZSBNaXNjIERpcmVkIEZl YXR1cmVzOjouCgogICBPbiB0ZXh0LW1vZGUgdGVybWluYWxzIGFuZCBvbiBncmFwaGljYWwgZGlz cGxheXMgd2hlbiBFbWFjcyB3YXMgYnVpbHQKd2l0aG91dCBhIEdVSSB0b29sa2l0LCB5b3UgY2Fu IHZpc2l0IGZpbGVzIHZpYSB0aGUgbWVudS1iYXIg4oCYRmlsZeKAmSBtZW51LAp3aGljaCBoYXMg dGhlIOKAmFZpc2l0IE5ldyBGaWxl4oCZIGFuZCB0aGUg4oCYT3BlbiBGaWxl4oCZIGl0ZW1zLgoK ICAgRWFjaCB0aW1lIHlvdSB2aXNpdCBhIGZpbGUsIEVtYWNzIGF1dG9tYXRpY2FsbHkgc2NhbnMg aXRzIGNvbnRlbnRzIHRvCmRldGVjdCB3aGF0IGNoYXJhY3RlciBlbmNvZGluZyBhbmQgZW5kLW9m LWxpbmUgY29udmVudGlvbiBpdCB1c2VzLCBhbmQKY29udmVydHMgdGhlc2UgdG8gRW1hY3PigJlz IGludGVybmFsIGVuY29kaW5nIGFuZCBlbmQtb2YtbGluZSBjb252ZW50aW9uCndpdGhpbiB0aGUg YnVmZmVyLiAgV2hlbiB5b3Ugc2F2ZSB0aGUgYnVmZmVyLCBFbWFjcyBwZXJmb3JtcyB0aGUgaW52 ZXJzZQpjb252ZXJzaW9uLCB3cml0aW5nIHRoZSBmaWxlIHRvIGRpc2sgd2l0aCBpdHMgb3JpZ2lu YWwgZW5jb2RpbmcgYW5kCmVuZC1vZi1saW5lIGNvbnZlbnRpb24uICAqTm90ZSBDb2RpbmcgU3lz dGVtczo6LgoKICAgSWYgeW91IHdpc2ggdG8gZWRpdCBhIGZpbGUgYXMgYSBzZXF1ZW5jZSBvZiBB U0NJSSBjaGFyYWN0ZXJzIHdpdGggbm8Kc3BlY2lhbCBlbmNvZGluZyBvciBjb252ZXJzaW9uLCB1 c2UgdGhlIOKAmE0teCBmaW5kLWZpbGUtbGl0ZXJhbGx54oCZCmNvbW1hbmQuICBUaGlzIHZpc2l0 cyBhIGZpbGUsIGxpa2Ug4oCYQy14IEMtZuKAmSwgYnV0IGRvZXMgbm90IGRvIGZvcm1hdApjb252 ZXJzaW9uICgqbm90ZSBGb3JtYXQgQ29udmVyc2lvbjogKGVsaXNwKUZvcm1hdCBDb252ZXJzaW9u LiksCmNoYXJhY3RlciBjb2RlIGNvbnZlcnNpb24gKCpub3RlIENvZGluZyBTeXN0ZW1zOjopLCBv ciBhdXRvbWF0aWMKdW5jb21wcmVzc2lvbiAoKm5vdGUgQ29tcHJlc3NlZCBGaWxlczo6KSwgYW5k IGRvZXMgbm90IGFkZCBhIGZpbmFsCm5ld2xpbmUgYmVjYXVzZSBvZiDigJhyZXF1aXJlLWZpbmFs LW5ld2xpbmXigJkgKCpub3RlIEN1c3RvbWl6ZSBTYXZlOjopLiAgSWYKeW91IGhhdmUgYWxyZWFk eSB2aXNpdGVkIHRoZSBzYW1lIGZpbGUgaW4gdGhlIHVzdWFsIChub24tbGl0ZXJhbCkKbWFubmVy LCB0aGlzIGNvbW1hbmQgYXNrcyB5b3Ugd2hldGhlciB0byB2aXNpdCBpdCBsaXRlcmFsbHkgaW5z dGVhZC4KCiAgIFR3byBzcGVjaWFsIGhvb2sgdmFyaWFibGVzIGFsbG93IGV4dGVuc2lvbnMgdG8g bW9kaWZ5IHRoZSBvcGVyYXRpb24Kb2YgdmlzaXRpbmcgZmlsZXMuICBWaXNpdGluZyBhIGZpbGUg dGhhdCBkb2VzIG5vdCBleGlzdCBydW5zIHRoZQpmdW5jdGlvbnMgaW4g4oCYZmluZC1maWxlLW5v dC1mb3VuZC1mdW5jdGlvbnPigJk7IHRoaXMgdmFyaWFibGUgaG9sZHMgYSBsaXN0Cm9mIGZ1bmN0 aW9ucywgd2hpY2ggYXJlIGNhbGxlZCBvbmUgYnkgb25lICh3aXRoIG5vIGFyZ3VtZW50cykgdW50 aWwgb25lCm9mIHRoZW0gcmV0dXJucyBub24t4oCYbmls4oCZLiAgVGhpcyBpcyBub3QgYSBub3Jt YWwgaG9vaywgYW5kIHRoZSBuYW1lIGVuZHMKaW4g4oCYLWZ1bmN0aW9uc+KAmSByYXRoZXIgdGhh biDigJgtaG9va+KAmSB0byBpbmRpY2F0ZSB0aGF0IGZhY3QuCgogICBTdWNjZXNzZnVsIHZpc2l0 aW5nIG9mIGFueSBmaWxlLCB3aGV0aGVyIGV4aXN0aW5nIG9yIG5vdCwgY2FsbHMgdGhlCmZ1bmN0 aW9ucyBpbiDigJhmaW5kLWZpbGUtaG9va+KAmSwgd2l0aCBubyBhcmd1bWVudHMuICBUaGlzIHZh cmlhYmxlIGlzIGEKbm9ybWFsIGhvb2suICBJbiB0aGUgY2FzZSBvZiBhIG5vbmV4aXN0ZW50IGZp bGUsIHRoZQrigJhmaW5kLWZpbGUtbm90LWZvdW5kLWZ1bmN0aW9uc+KAmSBhcmUgcnVuIGZpcnN0 LiAgKk5vdGUgSG9va3M6Oi4KCiAgIFRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8gc3BlY2lmeSBh dXRvbWF0aWNhbGx5IHRoZSBtYWpvciBtb2RlIGZvcgplZGl0aW5nIHRoZSBmaWxlICgqbm90ZSBD aG9vc2luZyBNb2Rlczo6KSwgYW5kIHRvIHNwZWNpZnkgbG9jYWwKdmFyaWFibGVzIGRlZmluZWQg Zm9yIHRoYXQgZmlsZSAoKm5vdGUgRmlsZSBWYXJpYWJsZXM6OikuCgoKKiogMTguMyBTYXZpbmcg RmlsZXMKCiJTYXZpbmciIGEgYnVmZmVyIGluIEVtYWNzIG1lYW5zIHdyaXRpbmcgaXRzIGNvbnRl bnRzIGJhY2sgaW50byB0aGUgZmlsZQp0aGF0IHdhcyB2aXNpdGVkIGluIHRoZSBidWZmZXIuCgor IE1lbnU6CgogIC0gU2F2ZSBDb21tYW5kczo6ICAgICAgIENvbW1hbmRzIGZvciBzYXZpbmcgZmls ZXMuCiAgLSBCYWNrdXA6OiAgICAgICAgICAgICAgSG93IEVtYWNzIHNhdmVzIHRoZSBvbGQgdmVy c2lvbiBvZiB5b3VyIGZpbGUuCiAgLSBDdXN0b21pemUgU2F2ZTo6ICAgICAgQ3VzdG9taXppbmcg dGhlIHNhdmluZyBvZiBmaWxlcy4KICAtIEludGVybG9ja2luZzo6ICAgICAgICBIb3cgRW1hY3Mg cHJvdGVjdHMgYWdhaW5zdCBzaW11bHRhbmVvdXMgZWRpdGluZwogICAgICAgICAgICAgICAgICAg ICAgICAgIG9mIG9uZSBmaWxlIGJ5IHR3byB1c2Vycy4KICAtIFNoYWRvd2luZzogRmlsZSBTaGFk b3dpbmcuICBDb3B5aW5nIGZpbGVzIHRvIOKAnHNoYWRvd3PigJ0gYXV0b21hdGljYWxseS4KICAt IFRpbWUgU3RhbXBzOjogICAgICAgICBFbWFjcyBjYW4gdXBkYXRlIHRpbWUgc3RhbXBzIG9uIHNh dmVkIGZpbGVzLgoKCioqKiAxOC4zLjEgQ29tbWFuZHMgZm9yIFNhdmluZyBGaWxlcwoKVGhlc2Ug YXJlIHRoZSBjb21tYW5kcyB0aGF0IHJlbGF0ZSB0byBzYXZpbmcgYW5kIHdyaXRpbmcgZmlsZXMu CgrigJhDLXggQy1z4oCZCiAgICAgU2F2ZSB0aGUgY3VycmVudCBidWZmZXIgdG8gaXRzIGZpbGUg KOKAmHNhdmUtYnVmZmVy4oCZKS4K4oCYQy14IHPigJkKICAgICBTYXZlIGFueSBvciBhbGwgYnVm ZmVycyB0byB0aGVpciBmaWxlcyAo4oCYc2F2ZS1zb21lLWJ1ZmZlcnPigJkpLgrigJhNLX7igJkK ICAgICBGb3JnZXQgdGhhdCB0aGUgY3VycmVudCBidWZmZXIgaGFzIGJlZW4gY2hhbmdlZCAo4oCY bm90LW1vZGlmaWVk4oCZKS4KICAgICBXaXRoIHByZWZpeCBhcmd1bWVudCAo4oCYQy114oCZKSwg bWFyayB0aGUgY3VycmVudCBidWZmZXIgYXMgY2hhbmdlZC4K4oCYQy14IEMtd+KAmQogICAgIFNh dmUgdGhlIGN1cnJlbnQgYnVmZmVyIHdpdGggYSBzcGVjaWZpZWQgZmlsZSBuYW1lICjigJh3cml0 ZS1maWxl4oCZKS4K4oCYTS14IHNldC12aXNpdGVkLWZpbGUtbmFtZeKAmQogICAgIENoYW5nZSB0 aGUgZmlsZSBuYW1lIHVuZGVyIHdoaWNoIHRoZSBjdXJyZW50IGJ1ZmZlciB3aWxsIGJlIHNhdmVk LgoKICAgV2hlbiB5b3Ugd2lzaCB0byBzYXZlIHRoZSBmaWxlIGFuZCBtYWtlIHlvdXIgY2hhbmdl cyBwZXJtYW5lbnQsIHR5cGUK4oCYQy14IEMtc+KAmSAo4oCYc2F2ZS1idWZmZXLigJkpLiAgQWZ0 ZXIgc2F2aW5nIGlzIGZpbmlzaGVkLCDigJhDLXggQy1z4oCZIGRpc3BsYXlzCmEgbWVzc2FnZSBs aWtlIHRoaXM6CgogICAgIFdyb3RlIC91L3Jtcy9nbnUvZ251LnRhc2tzCgpJZiB0aGUgY3VycmVu dCBidWZmZXIgaXMgbm90IG1vZGlmaWVkIChubyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGluIGl0 CnNpbmNlIHRoZSBidWZmZXIgd2FzIGNyZWF0ZWQgb3IgbGFzdCBzYXZlZCksIHNhdmluZyBpcyBu b3QgcmVhbGx5IGRvbmUsCmJlY2F1c2UgaXQgd291bGQgaGF2ZSBubyBlZmZlY3QuICBJbnN0ZWFk LCDigJhDLXggQy1z4oCZIGRpc3BsYXlzIGEgbWVzc2FnZQpsaWtlIHRoaXMgaW4gdGhlIGVjaG8g YXJlYToKCiAgICAgKE5vIGNoYW5nZXMgbmVlZCB0byBiZSBzYXZlZCkKCiAgIFdpdGggYSBwcmVm aXggYXJndW1lbnQsIOKAmEMtdSBDLXggQy1z4oCZLCBFbWFjcyBhbHNvIG1hcmtzIHRoZSBidWZm ZXIgdG8KYmUgYmFja2VkIHVwIHdoZW4gdGhlIG5leHQgc2F2ZSBpcyBkb25lLiAgKk5vdGUgQmFj a3VwOjouCgogICBUaGUgY29tbWFuZCDigJhDLXggc+KAmSAo4oCYc2F2ZS1zb21lLWJ1ZmZlcnPi gJkpIG9mZmVycyB0byBzYXZlIGFueSBvciBhbGwKbW9kaWZpZWQgYnVmZmVycy4gIEl0IGFza3Mg eW91IHdoYXQgdG8gZG8gd2l0aCBlYWNoIGJ1ZmZlci4gIFRoZQpwb3NzaWJsZSByZXNwb25zZXMg YXJlIGFuYWxvZ291cyB0byB0aG9zZSBvZiDigJhxdWVyeS1yZXBsYWNl4oCZOgoK4oCYeeKAmQog ICAgIFNhdmUgdGhpcyBidWZmZXIgYW5kIGFzayBhYm91dCB0aGUgcmVzdCBvZiB0aGUgYnVmZmVy cy4K4oCYbuKAmQogICAgIERvbuKAmXQgc2F2ZSB0aGlzIGJ1ZmZlciwgYnV0IGFzayBhYm91dCB0 aGUgcmVzdCBvZiB0aGUgYnVmZmVycy4K4oCYIeKAmQogICAgIFNhdmUgdGhpcyBidWZmZXIgYW5k IGFsbCB0aGUgcmVzdCB3aXRoIG5vIG1vcmUgcXVlc3Rpb25zLgrigJg8UkVUPuKAmQogICAgIFRl cm1pbmF0ZSDigJhzYXZlLXNvbWUtYnVmZmVyc+KAmSB3aXRob3V0IGFueSBtb3JlIHNhdmluZy4K 4oCYLuKAmQogICAgIFNhdmUgdGhpcyBidWZmZXIsIHRoZW4gZXhpdCDigJhzYXZlLXNvbWUtYnVm ZmVyc+KAmSB3aXRob3V0IGV2ZW4gYXNraW5nCiAgICAgYWJvdXQgb3RoZXIgYnVmZmVycy4K4oCY Qy1y4oCZCiAgICAgVmlldyB0aGUgYnVmZmVyIHRoYXQgeW91IGFyZSBjdXJyZW50bHkgYmVpbmcg YXNrZWQgYWJvdXQuICBXaGVuIHlvdQogICAgIGV4aXQgVmlldyBtb2RlLCB5b3UgZ2V0IGJhY2sg dG8g4oCYc2F2ZS1zb21lLWJ1ZmZlcnPigJksIHdoaWNoIGFza3MgdGhlCiAgICAgcXVlc3Rpb24g YWdhaW4uCuKAmGTigJkKICAgICBEaWZmIHRoZSBidWZmZXIgYWdhaW5zdCBpdHMgY29ycmVzcG9u ZGluZyBmaWxlLCBzbyB5b3UgY2FuIHNlZSB3aGF0CiAgICAgY2hhbmdlcyB5b3Ugd291bGQgYmUg c2F2aW5nLiAgVGhpcyBjYWxscyB0aGUgY29tbWFuZAogICAgIOKAmGRpZmYtYnVmZmVyLXdpdGgt ZmlsZeKAmSAoKm5vdGUgQ29tcGFyaW5nIEZpbGVzOjopLgrigJhDLWjigJkKICAgICBEaXNwbGF5 IGEgaGVscCBtZXNzYWdlIGFib3V0IHRoZXNlIG9wdGlvbnMuCgpZb3UgY2FuIGN1c3RvbWl6ZSB0 aGUgdmFsdWUgb2Yg4oCYc2F2ZS1zb21lLWJ1ZmZlcnMtZGVmYXVsdC1wcmVkaWNhdGXigJkgdG8K Y29udHJvbCB3aGljaCBidWZmZXJzIEVtYWNzIHdpbGwgYXNrIGFib3V0LgoKICAg4oCYQy14IEMt Y+KAmSwgdGhlIGtleSBzZXF1ZW5jZSB0byBleGl0IEVtYWNzLCBpbnZva2VzCuKAmHNhdmUtc29t ZS1idWZmZXJz4oCZIGFuZCB0aGVyZWZvcmUgYXNrcyB0aGUgc2FtZSBxdWVzdGlvbnMuCgogICBJ ZiB5b3UgaGF2ZSBjaGFuZ2VkIGEgYnVmZmVyIGJ1dCBkbyBub3Qgd2lzaCB0byBzYXZlIHRoZSBj aGFuZ2VzLCB5b3UKc2hvdWxkIHRha2Ugc29tZSBhY3Rpb24gdG8gcHJldmVudCBpdC4gIE90aGVy d2lzZSwgZWFjaCB0aW1lIHlvdSB1c2UK4oCYQy14IHPigJkgb3Ig4oCYQy14IEMtY+KAmSwgeW91 IGFyZSBsaWFibGUgdG8gc2F2ZSB0aGlzIGJ1ZmZlciBieSBtaXN0YWtlLgpPbmUgdGhpbmcgeW91 IGNhbiBkbyBpcyB0eXBlIOKAmE0tfuKAmSAo4oCYbm90LW1vZGlmaWVk4oCZKSwgd2hpY2ggY2xl YXJzIG91dAp0aGUgaW5kaWNhdGlvbiB0aGF0IHRoZSBidWZmZXIgaXMgbW9kaWZpZWQuICBJZiB5 b3UgZG8gdGhpcywgbm9uZSBvZiB0aGUKc2F2ZSBjb21tYW5kcyB3aWxsIGJlbGlldmUgdGhhdCB0 aGUgYnVmZmVyIG5lZWRzIHRvIGJlIHNhdmVkLiAgKOKAmH7igJkgaXMKb2Z0ZW4gdXNlZCBhcyBh IG1hdGhlbWF0aWNhbCBzeW1ib2wgZm9yIOKAnG5vdOKAnTsgdGh1cyDigJhNLX7igJkgaXMg4oCc bm904oCdLAptZXRhZmllZC4pICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNhbmNlbCBhbGwgdGhl IGNoYW5nZXMgbWFkZSBzaW5jZSB0aGUKZmlsZSB3YXMgdmlzaXRlZCBvciBzYXZlZCwgYnkgcmVh ZGluZyB0aGUgdGV4dCBmcm9tIHRoZSBmaWxlIGFnYWluLgpUaGlzIGlzIGNhbGxlZCAicmV2ZXJ0 aW5nIi4gICpOb3RlIFJldmVydGluZzo6LiAgKFlvdSBjb3VsZCBhbHNvIHVuZG8KYWxsIHRoZSBj aGFuZ2VzIGJ5IHJlcGVhdGluZyB0aGUgdW5kbyBjb21tYW5kIOKAmEMteCB14oCZIHVudGlsIHlv dSBoYXZlCnVuZG9uZSBhbGwgdGhlIGNoYW5nZXM7IGJ1dCByZXZlcnRpbmcgaXMgZWFzaWVyLikK CiAgIOKAmE0teCBzZXQtdmlzaXRlZC1maWxlLW5hbWXigJkgYWx0ZXJzIHRoZSBuYW1lIG9mIHRo ZSBmaWxlIHRoYXQgdGhlCmN1cnJlbnQgYnVmZmVyIGlzIHZpc2l0aW5nLiAgSXQgcmVhZHMgdGhl IG5ldyBmaWxlIG5hbWUgdXNpbmcgdGhlCm1pbmlidWZmZXIuICBUaGVuIGl0IG1hcmtzIHRoZSBi dWZmZXIgYXMgdmlzaXRpbmcgdGhhdCBmaWxlIG5hbWUsIGFuZApjaGFuZ2VzIHRoZSBidWZmZXIg bmFtZSBjb3JyZXNwb25kaW5nbHkuICDigJhzZXQtdmlzaXRlZC1maWxlLW5hbWXigJkgZG9lcwpu b3Qgc2F2ZSB0aGUgYnVmZmVyIGluIHRoZSBuZXdseSB2aXNpdGVkIGZpbGU7IGl0IGp1c3QgYWx0 ZXJzIHRoZQpyZWNvcmRzIGluc2lkZSBFbWFjcyBpbiBjYXNlIHlvdSBkbyBzYXZlIGxhdGVyLiAg SXQgYWxzbyBtYXJrcyB0aGUKYnVmZmVyIGFzIG1vZGlmaWVkIHNvIHRoYXQg4oCYQy14IEMtc+KA mSBpbiB0aGF0IGJ1ZmZlciBfd2lsbF8gc2F2ZS4KCiAgIElmIHlvdSB3aXNoIHRvIG1hcmsgdGhl IGJ1ZmZlciBhcyB2aXNpdGluZyBhIGRpZmZlcmVudCBmaWxlIGFuZCBzYXZlCml0IHJpZ2h0IGF3 YXksIHVzZSDigJhDLXggQy134oCZICjigJh3cml0ZS1maWxl4oCZKS4gIFRoaXMgaXMgZXF1aXZh bGVudCB0bwrigJhzZXQtdmlzaXRlZC1maWxlLW5hbWXigJkgZm9sbG93ZWQgYnkg4oCYQy14IEMt c+KAmSwgZXhjZXB0IHRoYXQg4oCYQy14IEMtd+KAmQphc2tzIGZvciBjb25maXJtYXRpb24gaWYg dGhlIGZpbGUgZXhpc3RzLiAg4oCYQy14IEMtc+KAmSB1c2VkIG9uIGEgYnVmZmVyCnRoYXQgaXMg bm90IHZpc2l0aW5nIGEgZmlsZSBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIOKAmEMteCBDLXfigJk7 IHRoYXQgaXMsCml0IHJlYWRzIGEgZmlsZSBuYW1lLCBtYXJrcyB0aGUgYnVmZmVyIGFzIHZpc2l0 aW5nIHRoYXQgZmlsZSwgYW5kIHNhdmVzCml0IHRoZXJlLiAgVGhlIGRlZmF1bHQgZmlsZSBuYW1l IGluIGEgYnVmZmVyIHRoYXQgaXMgbm90IHZpc2l0aW5nIGEgZmlsZQppcyBtYWRlIGJ5IGNvbWJp bmluZyB0aGUgYnVmZmVyIG5hbWUgd2l0aCB0aGUgYnVmZmVy4oCZcyBkZWZhdWx0IGRpcmVjdG9y eQooKm5vdGUgRmlsZSBOYW1lczo6KS4KCiAgIElmIHRoZSBuZXcgZmlsZSBuYW1lIGltcGxpZXMg YSBtYWpvciBtb2RlLCB0aGVuIOKAmEMteCBDLXfigJkgc3dpdGNoZXMgdG8KdGhhdCBtYWpvciBt b2RlLCBpbiBtb3N0IGNhc2VzLiAgVGhlIGNvbW1hbmQg4oCYc2V0LXZpc2l0ZWQtZmlsZS1uYW1l 4oCZCmFsc28gZG9lcyB0aGlzLiAgKk5vdGUgQ2hvb3NpbmcgTW9kZXM6Oi4KCiAgIElmIEVtYWNz IGlzIGFib3V0IHRvIHNhdmUgYSBmaWxlIGFuZCBzZWVzIHRoYXQgdGhlIGRhdGUgb2YgdGhlIGxh dGVzdAp2ZXJzaW9uIG9uIGRpc2sgZG9lcyBub3QgbWF0Y2ggd2hhdCBFbWFjcyBsYXN0IHJlYWQg b3Igd3JvdGUsIEVtYWNzCm5vdGlmaWVzIHlvdSBvZiB0aGlzIGZhY3QsIGJlY2F1c2UgaXQgcHJv YmFibHkgaW5kaWNhdGVzIGEgcHJvYmxlbQpjYXVzZWQgYnkgc2ltdWx0YW5lb3VzIGVkaXRpbmcg YW5kIHJlcXVpcmVzIHlvdXIgaW1tZWRpYXRlIGF0dGVudGlvbi4KKk5vdGUgU2ltdWx0YW5lb3Vz IEVkaXRpbmc6IEludGVybG9ja2luZy4KCgoqKiogMTguMy4yIEJhY2t1cCBGaWxlcwoKT24gbW9z dCBvcGVyYXRpbmcgc3lzdGVtcywgcmV3cml0aW5nIGEgZmlsZSBhdXRvbWF0aWNhbGx5IGRlc3Ry b3lzIGFsbApyZWNvcmQgb2Ygd2hhdCB0aGUgZmlsZSB1c2VkIHRvIGNvbnRhaW4uICBUaHVzLCBz YXZpbmcgYSBmaWxlIGZyb20gRW1hY3MKdGhyb3dzIGF3YXkgdGhlIG9sZCBjb250ZW50cyBvZiB0 aGUgZmlsZeKAlG9yIGl0IHdvdWxkLCBleGNlcHQgdGhhdCBFbWFjcwpjYXJlZnVsbHkgY29waWVz IHRoZSBvbGQgY29udGVudHMgdG8gYW5vdGhlciBmaWxlLCBjYWxsZWQgdGhlICJiYWNrdXAiCmZp bGUsIGJlZm9yZSBhY3R1YWxseSBzYXZpbmcuCgogICBFbWFjcyBtYWtlcyBhIGJhY2t1cCBmb3Ig YSBmaWxlIG9ubHkgdGhlIGZpcnN0IHRpbWUgdGhlIGZpbGUgaXMgc2F2ZWQKZnJvbSBhIGJ1ZmZl ci4gIE5vIG1hdHRlciBob3cgbWFueSB0aW1lcyB5b3Ugc3Vic2VxdWVudGx5IHNhdmUgdGhlIGZp bGUsCml0cyBiYWNrdXAgcmVtYWlucyB1bmNoYW5nZWQuICBIb3dldmVyLCBpZiB5b3Uga2lsbCB0 aGUgYnVmZmVyIGFuZCB0aGVuCnZpc2l0IHRoZSBmaWxlIGFnYWluLCBhIG5ldyBiYWNrdXAgZmls ZSB3aWxsIGJlIG1hZGUuCgogICBGb3IgbW9zdCBmaWxlcywgdGhlIHZhcmlhYmxlIOKAmG1ha2Ut YmFja3VwLWZpbGVz4oCZIGRldGVybWluZXMgd2hldGhlcgp0byBtYWtlIGJhY2t1cCBmaWxlcy4g IE9uIG1vc3Qgb3BlcmF0aW5nIHN5c3RlbXMsIGl0cyBkZWZhdWx0IHZhbHVlIGlzCuKAmHTigJks IHNvIHRoYXQgRW1hY3MgZG9lcyB3cml0ZSBiYWNrdXAgZmlsZXMuCgogICBGb3IgZmlsZXMgbWFu YWdlZCBieSBhIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gKCpub3RlIFZlcnNpb24KQ29udHJvbDo6 KSwgdGhlIHZhcmlhYmxlIOKAmHZjLW1ha2UtYmFja3VwLWZpbGVz4oCZIGRldGVybWluZXMgd2hl dGhlciB0bwptYWtlIGJhY2t1cCBmaWxlcy4gIEJ5IGRlZmF1bHQgaXQgaXMg4oCYbmls4oCZLCBz aW5jZSBiYWNrdXAgZmlsZXMgYXJlCnJlZHVuZGFudCB3aGVuIHlvdSBzdG9yZSBhbGwgdGhlIHBy ZXZpb3VzIHZlcnNpb25zIGluIGEgdmVyc2lvbiBjb250cm9sCnN5c3RlbS4gICpOb3RlIEdlbmVy YWwgVkMgT3B0aW9uczo6LgoKICAgQXQgeW91ciBvcHRpb24sIEVtYWNzIGNhbiBrZWVwIGVpdGhl ciBhIHNpbmdsZSBiYWNrdXAgZm9yIGVhY2ggZmlsZSwKb3IgbWFrZSBhIHNlcmllcyBvZiBudW1i ZXJlZCBiYWNrdXAgZmlsZXMgZm9yIGVhY2ggZmlsZSB0aGF0IHlvdSBlZGl0LgoqTm90ZSBCYWNr dXAgTmFtZXM6Oi4KCiAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSDigJhiYWNrdXAtZW5hYmxl LXByZWRpY2F0ZeKAmSB2YXJpYWJsZSBwcmV2ZW50cwpiYWNrdXAgZmlsZXMgYmVpbmcgd3JpdHRl biBmb3IgZmlsZXMgaW4gdGhlIGRpcmVjdG9yaWVzIHVzZWQgZm9yCnRlbXBvcmFyeSBmaWxlcywg c3BlY2lmaWVkIGJ5IOKAmHRlbXBvcmFyeS1maWxlLWRpcmVjdG9yeeKAmSBvcgrigJhzbWFsbC10 ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnnigJkuCgogICBZb3UgY2FuIGV4cGxpY2l0bHkgdGVsbCBF bWFjcyB0byBtYWtlIGFub3RoZXIgYmFja3VwIGZpbGUgZnJvbSBhCmJ1ZmZlciwgZXZlbiB0aG91 Z2ggdGhhdCBidWZmZXIgaGFzIGJlZW4gc2F2ZWQgYmVmb3JlLiAgSWYgeW91IHNhdmUgdGhlCmJ1 ZmZlciB3aXRoIOKAmEMtdSBDLXggQy1z4oCZLCB0aGUgdmVyc2lvbiB0aHVzIHNhdmVkIHdpbGwg YmUgbWFkZSBpbnRvIGEKYmFja3VwIGZpbGUgaWYgeW91IHNhdmUgdGhlIGJ1ZmZlciBhZ2Fpbi4g IOKAmEMtdSBDLXUgQy14IEMtc+KAmSBzYXZlcyB0aGUKYnVmZmVyLCBidXQgZmlyc3QgbWFrZXMg dGhlIHByZXZpb3VzIGZpbGUgY29udGVudHMgaW50byBhIG5ldyBiYWNrdXAKZmlsZS4gIOKAmEMt dSBDLXUgQy11IEMteCBDLXPigJkgZG9lcyBib3RoIHRoaW5nczogaXQgbWFrZXMgYSBiYWNrdXAg ZnJvbQp0aGUgcHJldmlvdXMgY29udGVudHMsIGFuZCBhcnJhbmdlcyB0byBtYWtlIGFub3RoZXIg ZnJvbSB0aGUgbmV3bHkgc2F2ZWQKY29udGVudHMgaWYgeW91IHNhdmUgYWdhaW4uCgogICBZb3Ug Y2FuIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGUg4oCYYmFja3VwLWRpcmVjdG9yeS1hbGlzdOKAmSB0 byBzcGVjaWZ5CnRoYXQgZmlsZXMgbWF0Y2hpbmcgY2VydGFpbiBwYXR0ZXJucyBzaG91bGQgYmUg YmFja2VkIHVwIGluIHNwZWNpZmljCmRpcmVjdG9yaWVzLiAgQSB0eXBpY2FsIHVzZSBpcyB0byBh ZGQgYW4gZWxlbWVudCDigJgoIi4iIC4gRElSKeKAmSB0byBtYWtlCmFsbCBiYWNrdXBzIGluIHRo ZSBkaXJlY3Rvcnkgd2l0aCBhYnNvbHV0ZSBuYW1lIERJUi4gIEVtYWNzIG1vZGlmaWVzIHRoZQpi YWNrdXAgZmlsZSBuYW1lcyB0byBhdm9pZCBjbGFzaGVzIGJldHdlZW4gZmlsZXMgd2l0aCB0aGUg c2FtZSBuYW1lcwpvcmlnaW5hdGluZyBpbiBkaWZmZXJlbnQgZGlyZWN0b3JpZXMuICBBbHRlcm5h dGl2ZWx5LCBhZGRpbmcsIOKAmCgiLiIgLgoiLn4iKeKAmSB3b3VsZCBtYWtlIGJhY2t1cHMgaW4g dGhlIGludmlzaWJsZSBzdWJkaXJlY3Rvcnkg4oCYLn7igJkgb2YgdGhlCm9yaWdpbmFsIGZpbGXi gJlzIGRpcmVjdG9yeS4gIEVtYWNzIGNyZWF0ZXMgdGhlIGRpcmVjdG9yeSwgaWYgbmVjZXNzYXJ5 LAp0byBtYWtlIHRoZSBiYWNrdXAuCgorIE1lbnU6CgogIC0gTmFtZXM6IEJhY2t1cCBOYW1lcy4g ICAgICAgICAgSG93IGJhY2t1cCBmaWxlcyBhcmUgbmFtZWQuCiAgLSBEZWxldGlvbjogQmFja3Vw IERlbGV0aW9uLiAgICBFbWFjcyBkZWxldGVzIGV4Y2VzcyBudW1iZXJlZCBiYWNrdXBzLgogIC0g Q29weWluZzogQmFja3VwIENvcHlpbmcuICAgICAgQmFja3VwcyBjYW4gYmUgbWFkZSBieSBjb3B5 aW5nIG9yIHJlbmFtaW5nLgoKCioqKiogMTguMy4yLjEgU2luZ2xlIG9yIE51bWJlcmVkIEJhY2t1 cHMKCldoZW4gRW1hY3MgbWFrZXMgYSBiYWNrdXAgZmlsZSwgaXRzIG5hbWUgaXMgbm9ybWFsbHkg Y29uc3RydWN0ZWQgYnkKYXBwZW5kaW5nIOKAmH7igJkgdG8gdGhlIGZpbGUgbmFtZSBiZWluZyBl ZGl0ZWQ7IHRodXMsIHRoZSBiYWNrdXAgZmlsZSBmb3IK4oCYZXZhbC5j4oCZIHdvdWxkIGJlIOKA mGV2YWwuY37igJkuCgogICBJZiBhY2Nlc3MgY29udHJvbCBzdG9wcyBFbWFjcyBmcm9tIHdyaXRp bmcgYmFja3VwIGZpbGVzIHVuZGVyIHRoZQp1c3VhbCBuYW1lcywgaXQgd3JpdGVzIHRoZSBiYWNr dXAgZmlsZSBhcyDigJh+Ly5lbWFjcy5kLyViYWNrdXAlfuKAmS4gIE9ubHkKb25lIHN1Y2ggZmls ZSBjYW4gZXhpc3QsIHNvIG9ubHkgdGhlIG1vc3QgcmVjZW50bHkgbWFkZSBzdWNoIGJhY2t1cCBp cwphdmFpbGFibGUuCgogICBFbWFjcyBjYW4gYWxzbyBtYWtlICJudW1iZXJlZCBiYWNrdXAgZmls ZXMiLiAgTnVtYmVyZWQgYmFja3VwIGZpbGUKbmFtZXMgY29udGFpbiDigJgufuKAmSwgdGhlIG51 bWJlciwgYW5kIGFub3RoZXIg4oCYfuKAmSBhZnRlciB0aGUgb3JpZ2luYWwgZmlsZQpuYW1lLiAg VGh1cywgdGhlIGJhY2t1cCBmaWxlcyBvZiDigJhldmFsLmPigJkgd291bGQgYmUgY2FsbGVkIOKA mGV2YWwuYy5+MX7igJksCuKAmGV2YWwuYy5+Mn7igJksIGFuZCBzbyBvbiwgYWxsIHRoZSB3YXkg dGhyb3VnaCBuYW1lcyBsaWtlIOKAmGV2YWwuYy5+MjU5fuKAmQphbmQgYmV5b25kLgoKICAgVGhl IHZhcmlhYmxlIOKAmHZlcnNpb24tY29udHJvbOKAmSBkZXRlcm1pbmVzIHdoZXRoZXIgdG8gbWFr ZSBzaW5nbGUKYmFja3VwIGZpbGVzIG9yIG11bHRpcGxlIG51bWJlcmVkIGJhY2t1cCBmaWxlcy4g IEl0cyBwb3NzaWJsZSB2YWx1ZXMKYXJlOgoK4oCYbmls4oCZCiAgICAgTWFrZSBudW1iZXJlZCBi YWNrdXBzIGZvciBmaWxlcyB0aGF0IGhhdmUgbnVtYmVyZWQgYmFja3VwcyBhbHJlYWR5LgogICAg IE90aGVyd2lzZSwgbWFrZSBzaW5nbGUgYmFja3Vwcy4gIFRoaXMgaXMgdGhlIGRlZmF1bHQuCuKA mHTigJkKICAgICBNYWtlIG51bWJlcmVkIGJhY2t1cHMuCuKAmG5ldmVy4oCZCiAgICAgTmV2ZXIg bWFrZSBudW1iZXJlZCBiYWNrdXBzOyBhbHdheXMgbWFrZSBzaW5nbGUgYmFja3Vwcy4KClRoZSB1 c3VhbCB3YXkgdG8gc2V0IHRoaXMgdmFyaWFibGUgaXMgZ2xvYmFsbHksIHRocm91Z2ggeW91ciBp bml0IGZpbGUKb3IgdGhlIGN1c3RvbWl6YXRpb24gYnVmZmVyLiAgSG93ZXZlciwgeW91IGNhbiBz ZXQg4oCYdmVyc2lvbi1jb250cm9s4oCZCmxvY2FsbHkgaW4gYW4gaW5kaXZpZHVhbCBidWZmZXIg dG8gY29udHJvbCB0aGUgbWFraW5nIG9mIGJhY2t1cHMgZm9yCnRoYXQgYnVmZmVy4oCZcyBmaWxl ICgqbm90ZSBMb2NhbHM6OikuICBZb3UgY2FuIGhhdmUgRW1hY3Mgc2V0CuKAmHZlcnNpb24tY29u dHJvbOKAmSBsb2NhbGx5IHdoZW5ldmVyIHlvdSB2aXNpdCBhIGdpdmVuIGZpbGUgKCpub3RlIEZp bGUKVmFyaWFibGVzOjopLiAgU29tZSBtb2Rlcywgc3VjaCBhcyBSbWFpbCBtb2RlLCBzZXQgdGhp cyB2YXJpYWJsZS4KCiAgIElmIHlvdSBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIOKAmFZF UlNJT05fQ09OVFJPTOKAmSwgdG8gdGVsbAp2YXJpb3VzIEdOVSB1dGlsaXRpZXMgd2hhdCB0byBk byB3aXRoIGJhY2t1cCBmaWxlcywgRW1hY3MgYWxzbyBvYmV5cyB0aGUKZW52aXJvbm1lbnQgdmFy aWFibGUgYnkgc2V0dGluZyB0aGUgTGlzcCB2YXJpYWJsZSDigJh2ZXJzaW9uLWNvbnRyb2zigJkK YWNjb3JkaW5nbHkgYXQgc3RhcnR1cC4gIElmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZeKAmXMg dmFsdWUgaXMg4oCYdOKAmSBvcgrigJhudW1iZXJlZOKAmSwgdGhlbiDigJh2ZXJzaW9uLWNvbnRy b2zigJkgYmVjb21lcyDigJh04oCZOyBpZiB0aGUgdmFsdWUgaXMg4oCYbmls4oCZIG9yCuKAmGV4 aXN0aW5n4oCZLCB0aGVuIOKAmHZlcnNpb24tY29udHJvbOKAmSBiZWNvbWVzIOKAmG5pbOKAmTsg aWYgaXQgaXMg4oCYbmV2ZXLigJkgb3IK4oCYc2ltcGxl4oCZLCB0aGVuIOKAmHZlcnNpb24tY29u dHJvbOKAmSBiZWNvbWVzIOKAmG5ldmVy4oCZLgoKICAgSWYgeW91IHNldCB0aGUgdmFyaWFibGUg 4oCYbWFrZS1iYWNrdXAtZmlsZS1uYW1lLWZ1bmN0aW9u4oCZIHRvIGEKc3VpdGFibGUgTGlzcCBm dW5jdGlvbiwgeW91IGNhbiBvdmVycmlkZSB0aGUgdXN1YWwgd2F5IEVtYWNzIGNvbnN0cnVjdHMK YmFja3VwIGZpbGUgbmFtZXMuCgoKKioqKiAxOC4zLjIuMiBBdXRvbWF0aWMgRGVsZXRpb24gb2Yg QmFja3VwcwoKVG8gcHJldmVudCBleGNlc3NpdmUgY29uc3VtcHRpb24gb2YgZGlzayBzcGFjZSwg RW1hY3MgY2FuIGRlbGV0ZQpudW1iZXJlZCBiYWNrdXAgdmVyc2lvbnMgYXV0b21hdGljYWxseS4g IEdlbmVyYWxseSBFbWFjcyBrZWVwcyB0aGUgZmlyc3QKZmV3IGJhY2t1cHMgYW5kIHRoZSBsYXRl c3QgZmV3IGJhY2t1cHMsIGRlbGV0aW5nIGFueSBpbiBiZXR3ZWVuLiAgVGhpcwpoYXBwZW5zIGV2 ZXJ5IHRpbWUgYSBuZXcgYmFja3VwIGlzIG1hZGUuCgogICBUaGUgdHdvIHZhcmlhYmxlcyDigJhr ZXB0LW9sZC12ZXJzaW9uc+KAmSBhbmQg4oCYa2VwdC1uZXctdmVyc2lvbnPigJkgY29udHJvbAp0 aGlzIGRlbGV0aW9uLiAgVGhlaXIgdmFsdWVzIGFyZSwgcmVzcGVjdGl2ZWx5LCB0aGUgbnVtYmVy IG9mIG9sZGVzdAoobG93ZXN0LW51bWJlcmVkKSBiYWNrdXBzIHRvIGtlZXAgYW5kIHRoZSBudW1i ZXIgb2YgbmV3ZXN0CihoaWdoZXN0LW51bWJlcmVkKSBvbmVzIHRvIGtlZXAsIGVhY2ggdGltZSBh IG5ldyBiYWNrdXAgaXMgbWFkZS4gIFRoZQpiYWNrdXBzIGluIHRoZSBtaWRkbGUgKGV4Y2x1ZGlu ZyB0aG9zZSBvbGRlc3QgYW5kIG5ld2VzdCkgYXJlIHRoZSBleGNlc3MKbWlkZGxlIHZlcnNpb25z 4oCUdGhvc2UgYmFja3VwcyBhcmUgZGVsZXRlZC4gIFRoZXNlIHZhcmlhYmxlc+KAmSB2YWx1ZXMg YXJlCnVzZWQgd2hlbiBpdCBpcyB0aW1lIHRvIGRlbGV0ZSBleGNlc3MgdmVyc2lvbnMsIGp1c3Qg YWZ0ZXIgYSBuZXcgYmFja3VwCnZlcnNpb24gaXMgbWFkZTsgdGhlIG5ld2x5IG1hZGUgYmFja3Vw IGlzIGluY2x1ZGVkIGluIHRoZSBjb3VudCBpbgrigJhrZXB0LW5ldy12ZXJzaW9uc+KAmS4gIEJ5 IGRlZmF1bHQsIGJvdGggdmFyaWFibGVzIGFyZSAyLgoKICAgSWYg4oCYZGVsZXRlLW9sZC12ZXJz aW9uc+KAmSBpcyDigJh04oCZLCBFbWFjcyBkZWxldGVzIHRoZSBleGNlc3MgYmFja3VwCmZpbGVz IHNpbGVudGx5LiAgSWYgaXQgaXMg4oCYbmls4oCZLCB0aGUgZGVmYXVsdCwgRW1hY3MgYXNrcyB5 b3Ugd2hldGhlciBpdApzaG91bGQgZGVsZXRlIHRoZSBleGNlc3MgYmFja3VwIHZlcnNpb25zLiAg SWYgaXQgaGFzIGFueSBvdGhlciB2YWx1ZSwKdGhlbiBFbWFjcyBuZXZlciBhdXRvbWF0aWNhbGx5 IGRlbGV0ZXMgYmFja3Vwcy4KCiAgIERpcmVk4oCZcyDigJgu4oCZIChQZXJpb2QpIGNvbW1hbmQg Y2FuIGFsc28gYmUgdXNlZCB0byBkZWxldGUgb2xkIHZlcnNpb25zLgoqTm90ZSBGbGFnZ2luZyBN YW55IEZpbGVzOjouCgoKKioqKiAxOC4zLjIuMyBDb3B5aW5nIHZzLiBSZW5hbWluZwoKQmFja3Vw IGZpbGVzIGNhbiBiZSBtYWRlIGJ5IGNvcHlpbmcgdGhlIG9sZCBmaWxlIG9yIGJ5IHJlbmFtaW5n IGl0LgpUaGlzIG1ha2VzIGEgZGlmZmVyZW5jZSB3aGVuIHRoZSBvbGQgZmlsZSBoYXMgbXVsdGlw bGUgbmFtZXMgKGhhcmQKbGlua3MpLiAgSWYgdGhlIG9sZCBmaWxlIGlzIHJlbmFtZWQgaW50byB0 aGUgYmFja3VwIGZpbGUsIHRoZW4gdGhlCmFsdGVybmF0ZSBuYW1lcyBiZWNvbWUgbmFtZXMgZm9y IHRoZSBiYWNrdXAgZmlsZS4gIElmIHRoZSBvbGQgZmlsZSBpcwpjb3BpZWQgaW5zdGVhZCwgdGhl biB0aGUgYWx0ZXJuYXRlIG5hbWVzIHJlbWFpbiBuYW1lcyBmb3IgdGhlIGZpbGUgdGhhdAp5b3Ug YXJlIGVkaXRpbmcsIGFuZCB0aGUgY29udGVudHMgYWNjZXNzZWQgYnkgdGhvc2UgbmFtZXMgd2ls bCBiZSB0aGUKbmV3IGNvbnRlbnRzLgoKICAgVGhlIG1ldGhvZCBvZiBtYWtpbmcgYSBiYWNrdXAg ZmlsZSBtYXkgYWxzbyBhZmZlY3QgdGhlIGZpbGXigJlzIG93bmVyCmFuZCBncm91cC4gIElmIGNv cHlpbmcgaXMgdXNlZCwgdGhlc2UgZG8gbm90IGNoYW5nZS4gIElmIHJlbmFtaW5nIGlzCnVzZWQs IHlvdSBiZWNvbWUgdGhlIGZpbGXigJlzIG93bmVyLCBhbmQgdGhlIGZpbGXigJlzIGdyb3VwIGJl Y29tZXMgdGhlCmRlZmF1bHQgKGRpZmZlcmVudCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIGRpZmZl cmVudCBkZWZhdWx0cyBmb3IgdGhlCmdyb3VwKS4KCiAgIFRoZSBjaG9pY2Ugb2YgcmVuYW1pbmcg b3IgY29weWluZyBpcyBtYWRlIGFzIGZvbGxvd3M6CgogICDigKIgSWYgdGhlIHZhcmlhYmxlIOKA mGJhY2t1cC1ieS1jb3B5aW5n4oCZIGlzIG5vbi3igJhuaWzigJkgKHRoZSBkZWZhdWx0IGlzCiAg ICAg4oCYbmls4oCZKSwgdXNlIGNvcHlpbmcuCgogICDigKIgT3RoZXJ3aXNlLCBpZiB0aGUgdmFy aWFibGUg4oCYYmFja3VwLWJ5LWNvcHlpbmctd2hlbi1saW5rZWTigJkgaXMKICAgICBub24t4oCY bmls4oCZICh0aGUgZGVmYXVsdCBpcyDigJhuaWzigJkpLCBhbmQgdGhlIGZpbGUgaGFzIG11bHRp cGxlIG5hbWVzLAogICAgIHVzZSBjb3B5aW5nLgoKICAg4oCiIE90aGVyd2lzZSwgaWYgdGhlIHZh cmlhYmxlIOKAmGJhY2t1cC1ieS1jb3B5aW5nLXdoZW4tbWlzbWF0Y2jigJkgaXMKICAgICBub24t 4oCYbmls4oCZICh0aGUgZGVmYXVsdCBpcyDigJh04oCZKSwgYW5kIHJlbmFtaW5nIHdvdWxkIGNo YW5nZSB0aGUKICAgICBmaWxl4oCZcyBvd25lciBvciBncm91cCwgdXNlIGNvcHlpbmcuCgogICAg IElmIHlvdSBjaGFuZ2Ug4oCYYmFja3VwLWJ5LWNvcHlpbmctd2hlbi1taXNtYXRjaOKAmSB0byDi gJhuaWzigJksIEVtYWNzCiAgICAgY2hlY2tzIHRoZSBudW1lcmljIHVzZXItaWQgb2YgdGhlIGZp bGXigJlzIG93bmVyLiAgSWYgdGhpcyBpcyBoaWdoZXIKICAgICB0aGFuIOKAmGJhY2t1cC1ieS1j b3B5aW5nLXdoZW4tcHJpdmlsZWdlZC1taXNtYXRjaOKAmSwgdGhlbiBpdCBiZWhhdmVzCiAgICAg YXMgdGhvdWdoIOKAmGJhY2t1cC1ieS1jb3B5aW5nLXdoZW4tbWlzbWF0Y2jigJkgaXMgbm9uLeKA mG5pbOKAmSBhbnl3YXkuCgogICDigKIgT3RoZXJ3aXNlLCByZW5hbWluZyBpcyB0aGUgZGVmYXVs dCBjaG9pY2UuCgogICBXaGVuIGEgZmlsZSBpcyBtYW5hZ2VkIHdpdGggYSB2ZXJzaW9uIGNvbnRy b2wgc3lzdGVtICgqbm90ZSBWZXJzaW9uCkNvbnRyb2w6OiksIEVtYWNzIGRvZXMgbm90IG5vcm1h bGx5IG1ha2UgYmFja3VwcyBpbiB0aGUgdXN1YWwgd2F5IGZvcgp0aGF0IGZpbGUuICBCdXQgImNv bW1pdHRpbmciIChhLmsuYS4gImNoZWNraW5nIGluIiwgKm5vdGUgVkNTCkNvbmNlcHRzOjopIG5l dyB2ZXJzaW9ucyBvZiBmaWxlcyBpcyBzaW1pbGFyIGluIHNvbWUgd2F5cyB0byBtYWtpbmcKYmFj a3Vwcy4gIE9uZSB1bmZvcnR1bmF0ZSBzaW1pbGFyaXR5IGlzIHRoYXQgdGhlc2Ugb3BlcmF0aW9u cyB0eXBpY2FsbHkKYnJlYWsgaGFyZCBsaW5rcywgZGlzY29ubmVjdGluZyB0aGUgZmlsZSBuYW1l IHlvdSB2aXNpdGVkIGZyb20gYW55CmFsdGVybmF0ZSBuYW1lcyBmb3IgdGhlIHNhbWUgZmlsZS4g IFRoaXMgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aApFbWFjc+KAlHRoZSB2ZXJzaW9uIGNvbnRyb2wg c3lzdGVtIGRvZXMgaXQuCgoKKioqIDE4LjMuMyBDdXN0b21pemluZyBTYXZpbmcgb2YgRmlsZXMK CklmIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg4oCYcmVxdWlyZS1maW5hbC1uZXdsaW5l4oCZ IGlzIOKAmHTigJksIHNhdmluZyBvcgp3cml0aW5nIGEgZmlsZSBzaWxlbnRseSBwdXRzIGEgbmV3 bGluZSBhdCB0aGUgZW5kIGlmIHRoZXJlIGlzbuKAmXQgYWxyZWFkeQpvbmUgdGhlcmUuICBJZiB0 aGUgdmFsdWUgaXMg4oCYdmlzaXTigJksIEVtYWNzIGFkZHMgYSBuZXdsaW5lIGF0IHRoZSBlbmQg b2YKYW55IGZpbGUgdGhhdCBkb2VzbuKAmXQgaGF2ZSBvbmUsIGp1c3QgYWZ0ZXIgaXQgdmlzaXRz IHRoZSBmaWxlLiAgKFRoaXMKbWFya3MgdGhlIGJ1ZmZlciBhcyBtb2RpZmllZCwgYW5kIHlvdSBj YW4gdW5kbyBpdC4pICBJZiB0aGUgdmFsdWUgaXMK4oCYdmlzaXQtc2F2ZeKAmSwgRW1hY3MgYWRk cyBzdWNoIG5ld2xpbmVzIGJvdGggb24gdmlzaXRpbmcgYW5kIG9uIHNhdmluZy4KSWYgdGhlIHZh bHVlIGlzIOKAmG5pbOKAmSwgRW1hY3MgbGVhdmVzIHRoZSBlbmQgb2YgdGhlIGZpbGUgdW5jaGFu Z2VkOyBhbnkKb3RoZXIgbm9uLeKAmG5pbOKAmSB2YWx1ZSBtZWFucyBFbWFjcyBhc2tzIHlvdSB3 aGV0aGVyIHRvIGFkZCBhIG5ld2xpbmUuClRoZSBkZWZhdWx0IGlzIOKAmG5pbOKAmS4KCiAgIFNv bWUgbWFqb3IgbW9kZXMgYXJlIGRlc2lnbmVkIGZvciBzcGVjaWZpYyBraW5kcyBvZiBmaWxlcyB0 aGF0IGFyZQphbHdheXMgc3VwcG9zZWQgdG8gZW5kIGluIG5ld2xpbmVzLiAgU3VjaCBtYWpvciBt b2RlcyBzZXQgdGhlIHZhcmlhYmxlCuKAmHJlcXVpcmUtZmluYWwtbmV3bGluZeKAmSB0byB0aGUg dmFsdWUgb2Yg4oCYbW9kZS1yZXF1aXJlLWZpbmFsLW5ld2xpbmXigJksCndoaWNoIGRlZmF1bHRz IHRvIOKAmHTigJkuICBCeSBzZXR0aW5nIHRoZSBsYXR0ZXIgdmFyaWFibGUsIHlvdSBjYW4gY29u dHJvbApob3cgdGhlc2UgbW9kZXMgaGFuZGxlIGZpbmFsIG5ld2xpbmVzLgoKICAgTm9ybWFsbHks IHdoZW4gYSBwcm9ncmFtIHdyaXRlcyBhIGZpbGUsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGJyaWVm bHkKY2FjaGVzIHRoZSBmaWxl4oCZcyBkYXRhIGluIG1haW4gbWVtb3J5IGJlZm9yZSBjb21taXR0 aW5nIHRoZSBkYXRhIHRvCmRpc2suICBUaGlzIGNhbiBncmVhdGx5IGltcHJvdmUgcGVyZm9ybWFu Y2U7IGZvciBleGFtcGxlLCB3aGVuIHJ1bm5pbmcKb24gbGFwdG9wcywgaXQgY2FuIGF2b2lkIGEg ZGlzayBzcGluLXVwIGVhY2ggdGltZSBhIGZpbGUgaXMgd3JpdHRlbi4KSG93ZXZlciwgaXQgcmlz a3MgZGF0YSBsb3NzIGlmIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGNyYXNoZXMgYmVmb3JlCmNvbW1p dHRpbmcgdGhlIGNhY2hlIHRvIGRpc2suCgogICBUbyBsZXNzZW4gdGhpcyByaXNrLCBFbWFjcyBj YW4gaW52b2tlIHRoZSDigJhmc3luY+KAmSBzeXN0ZW0gY2FsbCBhZnRlcgpzYXZpbmcgYSBmaWxl LiAgVXNpbmcg4oCYZnN5bmPigJkgZG9lcyBub3QgZWxpbWluYXRlIHRoZSByaXNrIG9mIGRhdGEg bG9zcywKcGFydGx5IGJlY2F1c2UgbWFueSBzeXN0ZW1zIGRvIG5vdCBpbXBsZW1lbnQg4oCYZnN5 bmPigJkgcHJvcGVybHksIGFuZApwYXJ0bHkgYmVjYXVzZSBFbWFjc+KAmXMgZmlsZS1zYXZpbmcg cHJvY2VkdXJlIHR5cGljYWxseSByZWxpZXMgYWxzbyBvbgpkaXJlY3RvcnkgdXBkYXRlcyB0aGF0 IG1pZ2h0IG5vdCBzdXJ2aXZlIGEgY3Jhc2ggZXZlbiBpZiDigJhmc3luY+KAmSB3b3Jrcwpwcm9w ZXJseS4KCiAgIFRoZSDigJh3cml0ZS1yZWdpb24taW5oaWJpdC1mc3luY+KAmSB2YXJpYWJsZSBj b250cm9scyB3aGV0aGVyIEVtYWNzCmludm9rZXMg4oCYZnN5bmPigJkgYWZ0ZXIgc2F2aW5nIGEg ZmlsZS4gIFRoZSB2YXJpYWJsZeKAmXMgZGVmYXVsdCB2YWx1ZSBpcwrigJhuaWzigJkgd2hlbiBF bWFjcyBpcyBpbnRlcmFjdGl2ZSwgYW5kIOKAmHTigJkgd2hlbiBFbWFjcyBydW5zIGluIGJhdGNo IG1vZGUKKCpub3RlIEJhdGNoIE1vZGU6IEluaXRpYWwgT3B0aW9ucy4pLgoKICAgRW1hY3MgbmV2 ZXIgdXNlcyDigJhmc3luY+KAmSB3aGVuIHdyaXRpbmcgYXV0by1zYXZlIGZpbGVzLCBhcyB0aGVz ZSBmaWxlcwptaWdodCBsb3NlIGRhdGEgYW55d2F5LgoKCioqKiAxOC4zLjQgUHJvdGVjdGlvbiBh Z2FpbnN0IFNpbXVsdGFuZW91cyBFZGl0aW5nCgpTaW11bHRhbmVvdXMgZWRpdGluZyBvY2N1cnMg d2hlbiB0d28gdXNlcnMgdmlzaXQgdGhlIHNhbWUgZmlsZSwgYm90aAptYWtlIGNoYW5nZXMsIGFu ZCB0aGVuIGJvdGggc2F2ZSB0aGVtLiAgSWYgbm9ib2R5IGlzIGluZm9ybWVkIHRoYXQgdGhpcwpp cyBoYXBwZW5pbmcsIHdoaWNoZXZlciB1c2VyIHNhdmVzIGZpcnN0IHdvdWxkIGxhdGVyIGZpbmQg dGhhdCB0aGVpcgpjaGFuZ2VzIHdlcmUgbG9zdC4KCiAgIE9uIHNvbWUgc3lzdGVtcywgRW1hY3Mg bm90aWNlcyBpbW1lZGlhdGVseSB3aGVuIHRoZSBzZWNvbmQgdXNlcgpzdGFydHMgdG8gY2hhbmdl IHRoZSBmaWxlLCBhbmQgaXNzdWVzIGFuIGltbWVkaWF0ZSB3YXJuaW5nLiAgT24gYWxsCnN5c3Rl bXMsIEVtYWNzIGNoZWNrcyB3aGVuIHlvdSBzYXZlIHRoZSBmaWxlLCBhbmQgd2FybnMgaWYgeW91 IGFyZSBhYm91dAp0byBvdmVyd3JpdGUgYW5vdGhlciB1c2Vy4oCZcyBjaGFuZ2VzLiAgWW91IGNh biBwcmV2ZW50IGxvc3Mgb2YgdGhlIG90aGVyCnVzZXLigJlzIHdvcmsgYnkgdGFraW5nIHRoZSBw cm9wZXIgY29ycmVjdGl2ZSBhY3Rpb24gaW5zdGVhZCBvZiBzYXZpbmcgdGhlCmZpbGUuCgogICBX aGVuIHlvdSBtYWtlIHRoZSBmaXJzdCBtb2RpZmljYXRpb24gaW4gYW4gRW1hY3MgYnVmZmVyIHRo YXQgaXMKdmlzaXRpbmcgYSBmaWxlLCBFbWFjcyByZWNvcmRzIHRoYXQgdGhlIGZpbGUgaXMgImxv Y2tlZCIgYnkgeW91LiAgKEl0CmRvZXMgdGhpcyBieSBjcmVhdGluZyBhIHNwZWNpYWxseS1uYW1l ZCBzeW1ib2xpYyBsaW5rKDEpIHdpdGggc3BlY2lhbApjb250ZW50cyBpbiB0aGUgc2FtZSBkaXJl Y3RvcnkuICAqTm90ZSAoZWxpc3ApRmlsZSBMb2Nrczo6LCBmb3IgbW9yZQpkZXRhaWxzLikgIEVt YWNzIHJlbW92ZXMgdGhlIGxvY2sgd2hlbiB5b3Ugc2F2ZSB0aGUgY2hhbmdlcy4gIFRoZSBpZGVh CmlzIHRoYXQgdGhlIGZpbGUgaXMgbG9ja2VkIHdoZW5ldmVyIGFuIEVtYWNzIGJ1ZmZlciB2aXNp dGluZyBpdCBoYXMKdW5zYXZlZCBjaGFuZ2VzLgoKICAgWW91IGNhbiBwcmV2ZW50IHRoZSBjcmVh dGlvbiBvZiBsb2NrIGZpbGVzIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlCuKAmGNyZWF0ZS1sb2Nr ZmlsZXPigJkgdG8g4oCYbmls4oCZLiAgKkNhdXRpb246KiBieSBkb2luZyBzbyB5b3Ugd2lsbCBs b3NlIHRoZQpiZW5lZml0cyB0aGF0IHRoaXMgZmVhdHVyZSBwcm92aWRlcy4KCiAgIElmIHlvdSBi ZWdpbiB0byBtb2RpZnkgdGhlIGJ1ZmZlciB3aGlsZSB0aGUgdmlzaXRlZCBmaWxlIGlzIGxvY2tl ZCBieQpzb21lb25lIGVsc2UsIHRoaXMgY29uc3RpdHV0ZXMgYSAiY29sbGlzaW9uIi4gIFdoZW4g RW1hY3MgZGV0ZWN0cyBhCmNvbGxpc2lvbiwgaXQgYXNrcyB5b3Ugd2hhdCB0byBkbywgYnkgY2Fs bGluZyB0aGUgTGlzcCBmdW5jdGlvbgrigJhhc2stdXNlci1hYm91dC1sb2Nr4oCZLiAgWW91IGNh biByZWRlZmluZSB0aGlzIGZ1bmN0aW9uIGZvciB0aGUgc2FrZSBvZgpjdXN0b21pemF0aW9uLiAg VGhlIHN0YW5kYXJkIGRlZmluaXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc2tzIHlvdSBhCnF1ZXN0 aW9uIGFuZCBhY2NlcHRzIHRocmVlIHBvc3NpYmxlIGFuc3dlcnM6CgrigJhz4oCZCiAgICAgU3Rl YWwgdGhlIGxvY2suICBXaG9ldmVyIHdhcyBhbHJlYWR5IGNoYW5naW5nIHRoZSBmaWxlIGxvc2Vz IHRoZQogICAgIGxvY2ssIGFuZCB5b3UgZ2FpbiB0aGUgbG9jay4K4oCYcOKAmQogICAgIFByb2Nl ZWQuICBHbyBhaGVhZCBhbmQgZWRpdCB0aGUgZmlsZSBkZXNwaXRlIGl0cyBiZWluZyBsb2NrZWQg YnkKICAgICBzb21lb25lIGVsc2UuCuKAmHHigJkKICAgICBRdWl0LiAgVGhpcyBjYXVzZXMgYW4g ZXJyb3IgKOKAmGZpbGUtbG9ja2Vk4oCZKSwgYW5kIHRoZSBidWZmZXIKICAgICBjb250ZW50cyBy ZW1haW4gdW5jaGFuZ2Vk4oCUdGhlIG1vZGlmaWNhdGlvbiB5b3Ugd2VyZSB0cnlpbmcgdG8gbWFr ZQogICAgIGRvZXMgbm90IGFjdHVhbGx5IHRha2UgcGxhY2UuCgogICBJZiBFbWFjcyBvciB0aGUg b3BlcmF0aW5nIHN5c3RlbSBjcmFzaGVzLCB0aGlzIG1heSBsZWF2ZSBiZWhpbmQgbG9jawpmaWxl cyB3aGljaCBhcmUgc3RhbGUsIHNvIHlvdSBtYXkgb2NjYXNpb25hbGx5IGdldCB3YXJuaW5ncyBh Ym91dApzcHVyaW91cyBjb2xsaXNpb25zLiAgV2hlbiB5b3UgZGV0ZXJtaW5lIHRoYXQgdGhlIGNv bGxpc2lvbiBpcyBzcHVyaW91cywKanVzdCB1c2Ug4oCYcOKAmSB0byB0ZWxsIEVtYWNzIHRvIGdv IGFoZWFkIGFueXdheS4KCiAgIE5vdGUgdGhhdCBsb2NraW5nIHdvcmtzIG9uIHRoZSBiYXNpcyBv ZiBhIGZpbGUgbmFtZTsgaWYgYSBmaWxlIGhhcwptdWx0aXBsZSBuYW1lcywgRW1hY3MgZG9lcyBu b3QgcHJldmVudCB0d28gdXNlcnMgZnJvbSBlZGl0aW5nIGl0CnNpbXVsdGFuZW91c2x5IHVuZGVy IGRpZmZlcmVudCBuYW1lcy4KCiAgIEEgbG9jayBmaWxlIGNhbm5vdCBiZSB3cml0dGVuIGluIHNv bWUgY2lyY3Vtc3RhbmNlcywgZS5nLiwgaWYgRW1hY3MKbGFja3MgdGhlIHN5c3RlbSBwZXJtaXNz aW9ucyBvciBjYW5ub3QgY3JlYXRlIGxvY2sgZmlsZXMgZm9yIHNvbWUgb3RoZXIKcmVhc29uLiAg SW4gdGhlc2UgY2FzZXMsIEVtYWNzIGNhbiBzdGlsbCBkZXRlY3QgdGhlIGNvbGxpc2lvbiB3aGVu IHlvdQp0cnkgdG8gc2F2ZSBhIGZpbGUsIGJ5IGNoZWNraW5nIHRoZSBmaWxl4oCZcyBsYXN0LW1v ZGlmaWNhdGlvbiBkYXRlLiAgSWYKdGhlIGZpbGUgaGFzIGNoYW5nZWQgc2luY2UgdGhlIGxhc3Qg dGltZSBFbWFjcyB2aXNpdGVkIG9yIHNhdmVkIGl0LCB0aGF0CmltcGxpZXMgdGhhdCBjaGFuZ2Vz IGhhdmUgYmVlbiBtYWRlIGluIHNvbWUgb3RoZXIgd2F5LCBhbmQgd2lsbCBiZSBsb3N0CmlmIEVt YWNzIHByb2NlZWRzIHdpdGggc2F2aW5nLiAgRW1hY3MgdGhlbiBkaXNwbGF5cyBhIHdhcm5pbmcg bWVzc2FnZQphbmQgYXNrcyBmb3IgY29uZmlybWF0aW9uIGJlZm9yZSBzYXZpbmc7IGFuc3dlciDi gJh5ZXPigJkgdG8gc2F2ZSwgYW5kIOKAmG5v4oCZCm9yIOKAmEMtZ+KAmSBjYW5jZWwgdGhlIHNh dmUuCgogICBJZiB5b3UgYXJlIG5vdGlmaWVkIHRoYXQgc2ltdWx0YW5lb3VzIGVkaXRpbmcgaGFz IGFscmVhZHkgdGFrZW4KcGxhY2UsIG9uZSB3YXkgdG8gY29tcGFyZSB0aGUgYnVmZmVyIHRvIGl0 cyBmaWxlIGlzIHRoZSDigJhNLXgKZGlmZi1idWZmZXItd2l0aC1maWxl4oCZIGNvbW1hbmQuICAq Tm90ZSBDb21wYXJpbmcgRmlsZXM6Oi4KCiAgIC0tLS0tLS0tLS0gRm9vdG5vdGVzIC0tLS0tLS0t LS0KCiAgICgxKSBJZiB5b3VyIGZpbGUgc3lzdGVtIGRvZXMgbm90IHN1cHBvcnQgc3ltYm9saWMg bGlua3MsIGEgcmVndWxhcgpmaWxlIGlzIHVzZWQuCgoKKioqIDE4LjMuNSBTaGFkb3dpbmcgRmls ZXMKCllvdSBjYW4gYXJyYW5nZSB0byBrZWVwIGlkZW50aWNhbCAic2hhZG93IiBjb3BpZXMgb2Yg Y2VydGFpbiBmaWxlcyBpbgptb3JlIHRoYW4gb25lIHBsYWNl4oCUcG9zc2libHkgb24gZGlmZmVy ZW50IG1hY2hpbmVzLiAgVG8gZG8gdGhpcywgZmlyc3QKeW91IG11c3Qgc2V0IHVwIGEgInNoYWRv dyBmaWxlIGdyb3VwIiwgd2hpY2ggaXMgYSBzZXQgb2YKaWRlbnRpY2FsbHktbmFtZWQgZmlsZXMg c2hhcmVkIGJldHdlZW4gYSBsaXN0IG9mIHNpdGVzLiAgVGhlIGZpbGUgZ3JvdXAKaXMgcGVybWFu ZW50IGFuZCBhcHBsaWVzIHRvIGZ1cnRoZXIgRW1hY3Mgc2Vzc2lvbnMgYXMgd2VsbCBhcyB0aGUK Y3VycmVudCBvbmUuICBPbmNlIHRoZSBncm91cCBpcyBzZXQgdXAsIGV2ZXJ5IHRpbWUgeW91IGV4 aXQgRW1hY3MsIGl0CndpbGwgY29weSB0aGUgZmlsZSB5b3UgZWRpdGVkIHRvIHRoZSBvdGhlciBm aWxlcyBpbiBpdHMgZ3JvdXAuICBZb3UgY2FuCmFsc28gZG8gdGhlIGNvcHlpbmcgd2l0aG91dCBl eGl0aW5nIEVtYWNzLCBieSB0eXBpbmcK4oCYTS14IHNoYWRvdy1jb3B5LWZpbGVz4oCZLgoKICAg QSAic2hhZG93IGNsdXN0ZXIiIGlzIGEgZ3JvdXAgb2YgaG9zdHMgdGhhdCBzaGFyZSBkaXJlY3Rv cmllcywgc28KdGhhdCBjb3B5aW5nIHRvIG9yIGZyb20gb25lIG9mIHRoZW0gaXMgc3VmZmljaWVu dCB0byB1cGRhdGUgdGhlIGZpbGUgb24KYWxsIG9mIHRoZW0uICBFYWNoIHNoYWRvdyBjbHVzdGVy IGhhcyBhIG5hbWUsIGFuZCBzcGVjaWZpZXMgdGhlIG5ldHdvcmsKYWRkcmVzcyBvZiBhIHByaW1h cnkgaG9zdCAodGhlIG9uZSB3ZSBjb3B5IGZpbGVzIHRvKSwgYW5kIGEgcmVndWxhcgpleHByZXNz aW9uIHRoYXQgbWF0Y2hlcyB0aGUgaG9zdCBuYW1lcyBvZiBhbGwgdGhlIG90aGVyIGhvc3RzIGlu IHRoZQpjbHVzdGVyLiAgWW91IGNhbiBkZWZpbmUgYSBzaGFkb3cgY2x1c3RlciB3aXRoCuKAmE0t eCBzaGFkb3ctZGVmaW5lLWNsdXN0ZXLigJkuCgrigJhNLXggc2hhZG93LWluaXRpYWxpemXigJkK ICAgICBTZXQgdXAgZmlsZSBzaGFkb3dpbmcuCuKAmE0teCBzaGFkb3ctZGVmaW5lLWxpdGVyYWwt Z3JvdXDigJkKICAgICBEZWNsYXJlIGEgc2luZ2xlIGZpbGUgdG8gYmUgc2hhcmVkIGJldHdlZW4g c2l0ZXMuCuKAmE0teCBzaGFkb3ctZGVmaW5lLXJlZ2V4cC1ncm91cOKAmQogICAgIE1ha2UgYWxs IGZpbGVzIHRoYXQgbWF0Y2ggZWFjaCBvZiBhIGdyb3VwIG9mIGZpbGVzIGJlIHNoYXJlZAogICAg IGJldHdlZW4gaG9zdHMuCuKAmE0teCBzaGFkb3ctZGVmaW5lLWNsdXN0ZXIgPFJFVD4gTkFNRSA8 UkVUPuKAmQogICAgIERlZmluZSBhIHNoYWRvdyBmaWxlIGNsdXN0ZXIgTkFNRS4K4oCYTS14IHNo YWRvdy1jb3B5LWZpbGVz4oCZCiAgICAgQ29weSBhbGwgcGVuZGluZyBzaGFkb3cgZmlsZXMuCuKA mE0teCBzaGFkb3ctY2FuY2Vs4oCZCiAgICAgQ2FuY2VsIHRoZSBpbnN0cnVjdGlvbiB0byBzaGFk b3cgc29tZSBmaWxlcy4KCiAgIFRvIHNldCB1cCBhIHNoYWRvdyBmaWxlIGdyb3VwLCB1c2Ug4oCY TS14IHNoYWRvdy1kZWZpbmUtbGl0ZXJhbC1ncm91cOKAmQpvciDigJhNLXggc2hhZG93LWRlZmlu ZS1yZWdleHAtZ3JvdXDigJkuICBTZWUgdGhlaXIgZG9jdW1lbnRhdGlvbiBzdHJpbmdzCmZvciBm dXJ0aGVyIGluZm9ybWF0aW9uLgoKICAgQmVmb3JlIGNvcHlpbmcgYSBmaWxlIHRvIGl0cyBzaGFk b3dzLCBFbWFjcyBhc2tzIGZvciBjb25maXJtYXRpb24uCllvdSBjYW4gYW5zd2VyIOKAnG5v4oCd IHRvIGJ5cGFzcyBjb3B5aW5nIG9mIHRoaXMgZmlsZSwgdGhpcyB0aW1lLiAgSWYgeW91CndhbnQg dG8gY2FuY2VsIHRoZSBzaGFkb3dpbmcgcGVybWFuZW50bHkgZm9yIGEgY2VydGFpbiBmaWxlLCB1 c2Ug4oCYTS14IHNoYWRvdy1jYW5jZWzigJkKdG8gZWxpbWluYXRlIG9yIGNoYW5nZSB0aGUgc2hh ZG93IGZpbGUgZ3JvdXAuCgogICBGaWxlIFNoYWRvd2luZyBpcyBub3QgYXZhaWxhYmxlIG9uIE1T IFdpbmRvd3MuCgoKKioqIDE4LjMuNiBVcGRhdGluZyBUaW1lIFN0YW1wcyBBdXRvbWF0aWNhbGx5 CgpZb3UgY2FuIGFycmFuZ2UgdG8gcHV0IGEgdGltZSBzdGFtcCBpbiBhIGZpbGUsIHNvIHRoYXQg aXQgaXMgdXBkYXRlZAphdXRvbWF0aWNhbGx5IGVhY2ggdGltZSB5b3UgZWRpdCBhbmQgc2F2ZSB0 aGUgZmlsZS4gIFRoZSB0aW1lIHN0YW1wIG11c3QKYmUgaW4gdGhlIGZpcnN0IGVpZ2h0IGxpbmVz IG9mIHRoZSBmaWxlLCBhbmQgeW91IHNob3VsZCBpbnNlcnQgaXQgbGlrZQp0aGlzOgoKICAgICBU aW1lLXN0YW1wOiA8PgoKb3IgbGlrZSB0aGlzOgoKICAgICBUaW1lLXN0YW1wOiAiICIKCiAgIFRo ZW4gYWRkIHRoZSBmdW5jdGlvbiDigJh0aW1lLXN0YW1w4oCZIHRvIHRoZSBob29rIOKAmGJlZm9y ZS1zYXZlLWhvb2vigJkKKCpub3RlIEhvb2tzOjopLiAgV2hlbiB5b3Ugc2F2ZSB0aGUgZmlsZSwg dGhpcyBmdW5jdGlvbiB0aGVuCmF1dG9tYXRpY2FsbHkgdXBkYXRlcyB0aGUgdGltZSBzdGFtcCB3 aXRoIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUuCllvdSBjYW4gYWxzbyB1c2UgdGhlIGNvbW1h bmQg4oCYTS14IHRpbWUtc3RhbXDigJkgdG8gdXBkYXRlIHRoZSB0aW1lIHN0YW1wCm1hbnVhbGx5 LiAgQnkgZGVmYXVsdCB0aGUgdGltZSBzdGFtcCBpcyBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHlv dXIKbG9jYWxlIHNldHRpbmcgKCpub3RlIEVudmlyb25tZW50OjopIGFuZCB0aW1lIHpvbmUgKCpu b3RlIChlbGlzcClUaW1lIG9mCkRheTo6KS4gIEZvciBjdXN0b21pemF0aW9ucywgc2VlIHRoZSBD dXN0b20gZ3JvdXAg4oCYdGltZS1zdGFtcOKAmS4KCgoqKiAxOC40IFJldmVydGluZyBhIEJ1ZmZl cgoKSWYgeW91IGhhdmUgbWFkZSBleHRlbnNpdmUgY2hhbmdlcyB0byBhIGZpbGUtdmlzaXRpbmcg YnVmZmVyIGFuZCB0aGVuCmNoYW5nZSB5b3VyIG1pbmQsIHlvdSBjYW4gInJldmVydCIgdGhlIGNo YW5nZXMgYW5kIGdvIGJhY2sgdG8gdGhlIHNhdmVkCnZlcnNpb24gb2YgdGhlIGZpbGUuICBUbyBk byB0aGlzLCB0eXBlIOKAmE0teCByZXZlcnQtYnVmZmVy4oCZLiAgU2luY2UKcmV2ZXJ0aW5nIHVu aW50ZW50aW9uYWxseSBjb3VsZCBsb3NlIGEgbG90IG9mIHdvcmssIEVtYWNzIGFza3MgZm9yCmNv bmZpcm1hdGlvbiBmaXJzdC4KCiAgIFRoZSDigJhyZXZlcnQtYnVmZmVy4oCZIGNvbW1hbmQgdHJp ZXMgdG8gcG9zaXRpb24gcG9pbnQgaW4gc3VjaCBhIHdheQp0aGF0LCBpZiB0aGUgZmlsZSB3YXMg ZWRpdGVkIG9ubHkgc2xpZ2h0bHksIHlvdSB3aWxsIGJlIGF0IGFwcHJveGltYXRlbHkKdGhlIHNh bWUgcGFydCBvZiB0aGUgdGV4dCBhcyBiZWZvcmUuICBCdXQgaWYgeW91IGhhdmUgbWFkZSBtYWpv cgpjaGFuZ2VzLCBwb2ludCBtYXkgZW5kIHVwIGluIGEgdG90YWxseSBkaWZmZXJlbnQgbG9jYXRp b24uCgogICBSZXZlcnRpbmcgbWFya3MgdGhlIGJ1ZmZlciBhcyBub3QgbW9kaWZpZWQuICBJdCBh bHNvIGNsZWFycyB0aGUKYnVmZmVy4oCZcyB1bmRvIGhpc3RvcnkgKCpub3RlIFVuZG86OikuICBU aHVzLCB0aGUgcmV2ZXJzaW9uIGNhbm5vdCBiZQp1bmRvbmXigJRpZiB5b3UgY2hhbmdlIHlvdXIg bWluZCB5ZXQgYWdhaW4sIHlvdSBjYW7igJl0IHVzZSB0aGUgdW5kbwpjb21tYW5kcyB0byBicmlu ZyB0aGUgcmV2ZXJ0ZWQgY2hhbmdlcyBiYWNrLgoKICAgU29tZSBraW5kcyBvZiBidWZmZXJzIHRo YXQgYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggZmlsZXMsIHN1Y2ggYXMKRGlyZWQgYnVmZmVycywg Y2FuIGFsc28gYmUgcmV2ZXJ0ZWQuICBGb3IgdGhlbSwgcmV2ZXJ0aW5nIG1lYW5zCnJlY2FsY3Vs YXRpbmcgdGhlaXIgY29udGVudHMuICBCdWZmZXJzIGNyZWF0ZWQgZXhwbGljaXRseSB3aXRoIOKA mEMteCBi4oCZCmNhbm5vdCBiZSByZXZlcnRlZDsg4oCYcmV2ZXJ0LWJ1ZmZlcuKAmSByZXBvcnRz IGFuIGVycm9yIGlmIHlvdSB0cnkuCgogICBXaGVuIHlvdSBlZGl0IGEgZmlsZSB0aGF0IGNoYW5n ZXMgYXV0b21hdGljYWxseSBhbmQgZnJlcXVlbnRseeKAlGZvcgpleGFtcGxlLCBhIGxvZyBvZiBv dXRwdXQgZnJvbSBhIHByb2Nlc3MgdGhhdCBjb250aW51ZXMgdG8gcnVu4oCUaXQgbWF5IGJlCnVz ZWZ1bCBmb3IgRW1hY3MgdG8gcmV2ZXJ0IHRoZSBmaWxlIHdpdGhvdXQgcXVlcnlpbmcgeW91LiAg VG8gcmVxdWVzdAp0aGlzIGJlaGF2aW9yLCBzZXQgdGhlIHZhcmlhYmxlIOKAmHJldmVydC13aXRo b3V0LXF1ZXJ54oCZIHRvIGEgbGlzdCBvZgpyZWd1bGFyIGV4cHJlc3Npb25zLiAgV2hlbiBhIGZp bGUgbmFtZSBtYXRjaGVzIG9uZSBvZiB0aGVzZSByZWd1bGFyCmV4cHJlc3Npb25zLCDigJhmaW5k LWZpbGXigJkgYW5kIOKAmHJldmVydC1idWZmZXLigJkgd2lsbCByZXZlcnQgaXQKYXV0b21hdGlj YWxseSBpZiBpdCBoYXMgY2hhbmdlZOKAlHByb3ZpZGVkIHRoZSBidWZmZXIgaXRzZWxmIGlzIG5v dAptb2RpZmllZC4gIChJZiB5b3UgaGF2ZSBlZGl0ZWQgdGhlIHRleHQsIGl0IHdvdWxkIGJlIHdy b25nIHRvIGRpc2NhcmQKeW91ciBjaGFuZ2VzLikKCiAgIFlvdSBjYW4gYWxzbyB0ZWxsIEVtYWNz IHRvIHJldmVydCBidWZmZXJzIHBlcmlvZGljYWxseS4gIFRvIGRvIHRoaXMKZm9yIGEgc3BlY2lm aWMgYnVmZmVyLCBlbmFibGUgdGhlIG1pbm9yIG1vZGUgQXV0by1SZXZlcnQgbW9kZSBieSB0eXBp bmcK4oCYTS14IGF1dG8tcmV2ZXJ0LW1vZGXigJkuICBUaGlzIGF1dG9tYXRpY2FsbHkgcmV2ZXJ0 cyB0aGUgY3VycmVudCBidWZmZXIKd2hlbiBpdHMgdmlzaXRlZCBmaWxlIGNoYW5nZXMgb24gZGlz ay4gIFRvIGRvIHRoZSBzYW1lIGZvciBhbGwgZmlsZQpidWZmZXJzLCB0eXBlIOKAmE0teCBnbG9i YWwtYXV0by1yZXZlcnQtbW9kZeKAmSB0byBlbmFibGUgR2xvYmFsIEF1dG8tUmV2ZXJ0Cm1vZGUu ICBUaGVzZSBtaW5vciBtb2RlcyBkbyBub3QgY2hlY2sgb3IgcmV2ZXJ0IHJlbW90ZSBmaWxlcywg YmVjYXVzZQp0aGF0IGlzIHVzdWFsbHkgdG9vIHNsb3cuICBUaGlzIGJlaGF2aW9yIGNhbiBiZSBj aGFuZ2VkIGJ5IHNldHRpbmcgdGhlCnZhcmlhYmxlIOKAmGF1dG8tcmV2ZXJ0LXJlbW90ZS1maWxl c+KAmSB0byBub24t4oCYbmls4oCZLgoKICAgQnkgZGVmYXVsdCwgQXV0by1SZXZlcnQgbW9kZSB3 b3JrcyB1c2luZyAiZmlsZSBub3RpZmljYXRpb25zIiwKd2hlcmVieSBjaGFuZ2VzIGluIHRoZSBm aWxlc3lzdGVtIGFyZSByZXBvcnRlZCB0byBFbWFjcyBieSB0aGUgT1MuIFlvdQpjYW4gZGlzYWJs ZSB1c2Ugb2YgZmlsZSBub3RpZmljYXRpb25zIGJ5IGN1c3RvbWl6aW5nIHRoZSB2YXJpYWJsZQri gJhhdXRvLXJldmVydC11c2Utbm90aWZ54oCZIHRvIGEg4oCYbmls4oCZIHZhbHVlLCB0aGVuIEVt YWNzIHdpbGwgY2hlY2sgZm9yCmZpbGUgY2hhbmdlcyBieSBwb2xsaW5nIGV2ZXJ5IGZpdmUgc2Vj b25kcy4gIFlvdSBjYW4gY2hhbmdlIHRoZSBwb2xsaW5nCmludGVydmFsIHRocm91Z2ggdGhlIHZh cmlhYmxlIOKAmGF1dG8tcmV2ZXJ0LWludGVydmFs4oCZLgoKICAgTm90IGFsbCBzeXN0ZW1zIHN1 cHBvcnQgZmlsZSBub3RpZmljYXRpb25zOyB3aGVyZSB0aGV5IGFyZSBub3QKc3VwcG9ydGVkLCDi gJhhdXRvLXJldmVydC11c2Utbm90aWZ54oCZIHdpbGwgYmUg4oCYbmls4oCZIGJ5IGRlZmF1bHQu CgogICBPbmUgdXNlIG9mIEF1dG8tUmV2ZXJ0IG1vZGUgaXMgdG8g4oCcdGFpbOKAnSBhIGZpbGUg c3VjaCBhcyBhIHN5c3RlbSBsb2csCnNvIHRoYXQgY2hhbmdlcyBtYWRlIHRvIHRoYXQgZmlsZSBi eSBvdGhlciBwcm9ncmFtcyBhcmUgY29udGludW91c2x5CmRpc3BsYXllZC4gIFRvIGRvIHRoaXMs IGp1c3QgbW92ZSB0aGUgcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgYnVmZmVyLAphbmQgaXQgd2ls bCBzdGF5IHRoZXJlIGFzIHRoZSBmaWxlIGNvbnRlbnRzIGNoYW5nZS4gIEhvd2V2ZXIsIGlmIHlv dSBhcmUKc3VyZSB0aGF0IHRoZSBmaWxlIHdpbGwgb25seSBjaGFuZ2UgYnkgZ3Jvd2luZyBhdCB0 aGUgZW5kLCB1c2UKQXV0by1SZXZlcnQgVGFpbCBtb2RlIGluc3RlYWQgKOKAmGF1dG8tcmV2ZXJ0 LXRhaWwtbW9kZeKAmSkuICBJdCBpcyBtb3JlCmVmZmljaWVudCBmb3IgdGhpcy4gIEF1dG8tUmV2 ZXJ0IFRhaWwgbW9kZSB3b3JrcyBhbHNvIGZvciByZW1vdGUgZmlsZXMuCgogICBXaGVuIGEgYnVm ZmVyIGlzIGF1dG8tcmV2ZXJ0ZWQsIGEgbWVzc2FnZSBpcyBnZW5lcmF0ZWQuICBUaGlzIGNhbiBi ZQpzdXBwcmVzc2VkIGJ5IHNldHRpbmcg4oCYYXV0by1yZXZlcnQtdmVyYm9zZeKAmSB0byDigJhu aWzigJkuCgogICBJbiBEaXJlZCBidWZmZXJzICgqbm90ZSBEaXJlZDo6KSwgQXV0by1SZXZlcnQg bW9kZSByZWZyZXNoZXMgdGhlCmJ1ZmZlciB3aGVuIGEgZmlsZSBpcyBjcmVhdGVkIG9yIGRlbGV0 ZWQgaW4gdGhlIGJ1ZmZlcuKAmXMgZGlyZWN0b3J5LgoKICAgKk5vdGUgVkMgVW5kbzo6LCBmb3Ig Y29tbWFuZHMgdG8gcmV2ZXJ0IHRvIGVhcmxpZXIgdmVyc2lvbnMgb2YgZmlsZXMKdW5kZXIgdmVy c2lvbiBjb250cm9sLiAgKk5vdGUgVkMgTW9kZSBMaW5lOjosIGZvciBBdXRvIFJldmVydApwZWN1 bGlhcml0aWVzIHdoZW4gdmlzaXRpbmcgZmlsZXMgdW5kZXIgdmVyc2lvbiBjb250cm9sLgoKCioq IDE4LjUgQXV0byBSZXZlcnRpbmcgTm9uLUZpbGUgQnVmZmVycwoKR2xvYmFsIEF1dG8gUmV2ZXJ0 IE1vZGUgbm9ybWFsbHkgb25seSByZXZlcnRzIGZpbGUgYnVmZmVycy4gIFRoZXJlIGFyZQp0d28g d2F5cyB0byBhdXRvLXJldmVydCBjZXJ0YWluIG5vbi1maWxlIGJ1ZmZlcnM6IGJ5IGVuYWJsaW5n IEF1dG8KUmV2ZXJ0IE1vZGUgaW4gdGhvc2UgYnVmZmVycyAodXNpbmcg4oCYTS14IGF1dG8tcmV2 ZXJ0LW1vZGXigJkpOyBhbmQgYnkKc2V0dGluZyDigJhnbG9iYWwtYXV0by1yZXZlcnQtbm9uLWZp bGUtYnVmZmVyc+KAmSB0byBhIG5vbi3igJhuaWzigJkgdmFsdWUuICBUaGUKbGF0dGVyIGVuYWJs ZXMgQXV0byBSZXZlcnRpbmcgZm9yIGFsbCB0eXBlcyBvZiBidWZmZXJzIGZvciB3aGljaCBpdCBp cwppbXBsZW1lbnRlZCAobGlzdGVkIGluIHRoZSBtZW51IGJlbG93KS4KCiAgIExpa2UgZmlsZSBi dWZmZXJzLCBub24tZmlsZSBidWZmZXJzIHNob3VsZCBub3JtYWxseSBub3QgcmV2ZXJ0IHdoaWxl CnlvdSBhcmUgd29ya2luZyBvbiB0aGVtLCBvciB3aGlsZSB0aGV5IGNvbnRhaW4gaW5mb3JtYXRp b24gdGhhdCBtaWdodApnZXQgbG9zdCBhZnRlciByZXZlcnRpbmcuICBUaGVyZWZvcmUsIHRoZXkg ZG8gbm90IHJldmVydCBpZiB0aGV5IGFyZQptb2RpZmllZC4gIFRoaXMgY2FuIGdldCB0cmlja3ks IGJlY2F1c2UgZGVjaWRpbmcgd2hlbiBhIG5vbi1maWxlIGJ1ZmZlcgpzaG91bGQgYmUgbWFya2Vk IG1vZGlmaWVkIGlzIHVzdWFsbHkgbW9yZSBkaWZmaWN1bHQgdGhhbiBmb3IgZmlsZQpidWZmZXJz LgoKICAgQW5vdGhlciB0cmlja3kgZGV0YWlsIGlzIHRoYXQsIGZvciBlZmZpY2llbmN5IHJlYXNv bnMsIEF1dG8gUmV2ZXJ0Cm9mdGVuIGRvZXMgbm90IHRyeSB0byBkZXRlY3QgYWxsIHBvc3NpYmxl IGNoYW5nZXMgaW4gdGhlIGJ1ZmZlciwgb25seQpjaGFuZ2VzIHRoYXQgYXJlIG1ham9yIG9yIGVh c3kgdG8gZGV0ZWN0LiAgSGVuY2UsIGVuYWJsaW5nCmF1dG8tcmV2ZXJ0aW5nIGZvciBhIG5vbi1m aWxlIGJ1ZmZlciBkb2VzIG5vdCBhbHdheXMgZ3VhcmFudGVlIHRoYXQgYWxsCmluZm9ybWF0aW9u IGluIHRoZSBidWZmZXIgaXMgdXAtdG8tZGF0ZSwgYW5kIGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1h a2UKbWFudWFsIHJldmVydHMgdXNlbGVzcy4KCiAgIEF0IHRoZSBvdGhlciBleHRyZW1lLCBjZXJ0 YWluIGJ1ZmZlcnMgYXV0b21hdGljYWxseSByZXZlcnQgZXZlcnkK4oCYYXV0by1yZXZlcnQtaW50 ZXJ2YWzigJkgc2Vjb25kcy4gIChUaGlzIGN1cnJlbnRseSBvbmx5IGFwcGxpZXMgdG8gdGhlCkJ1 ZmZlciBNZW51LikgIEluIHRoaXMgY2FzZSwgQXV0byBSZXZlcnQgZG9lcyBub3QgcHJpbnQgYW55 IG1lc3NhZ2VzCndoaWxlIHJldmVydGluZywgZXZlbiB3aGVuIOKAmGF1dG8tcmV2ZXJ0LXZlcmJv c2XigJkgaXMgbm9uLeKAmG5pbOKAmS4KCiAgIFRoZSBkZXRhaWxzIGRlcGVuZCBvbiB0aGUgcGFy dGljdWxhciB0eXBlcyBvZiBidWZmZXJzIGFuZCBhcmUKZXhwbGFpbmVkIGluIHRoZSBjb3JyZXNw b25kaW5nIHNlY3Rpb25zLgoKKyBNZW51OgoKICAtIEF1dG8gUmV2ZXJ0aW5nIHRoZSBCdWZmZXIg TWVudTo6IEF1dG8gUmV2ZXJ0IG9mIHRoZSBCdWZmZXIgTWVudS4KICAtIEF1dG8gUmV2ZXJ0aW5n IERpcmVkOjogICAgICAgICAgIEF1dG8gUmV2ZXJ0IG9mIERpcmVkIGJ1ZmZlcnMuCgoKKioqIDE4 LjUuMSBBdXRvIFJldmVydGluZyB0aGUgQnVmZmVyIE1lbnUKCklmIGF1dG8tcmV2ZXJ0aW5nIG9m IG5vbi1maWxlIGJ1ZmZlcnMgaXMgZW5hYmxlZCwgdGhlIEJ1ZmZlciBNZW51ICgqbm90ZQpTZXZl cmFsIEJ1ZmZlcnM6OikgYXV0b21hdGljYWxseSByZXZlcnRzIGV2ZXJ5IOKAmGF1dG8tcmV2ZXJ0 LWludGVydmFs4oCZCnNlY29uZHMsIHdoZXRoZXIgdGhlcmUgaXMgYSBuZWVkIGZvciBpdCBvciBu b3QuICAoSXQgd291bGQgcHJvYmFibHkgdGFrZQpsb25nZXIgdG8gY2hlY2sgd2hldGhlciB0aGVy ZSBpcyBhIG5lZWQgdGhhbiB0byBhY3R1YWxseSByZXZlcnQuKQoKICAgSWYgdGhlIEJ1ZmZlciBN ZW51IGluYXBwcm9wcmlhdGVseSBnZXRzIG1hcmtlZCBtb2RpZmllZCwganVzdCByZXZlcnQKaXQg bWFudWFsbHkgdXNpbmcg4oCYZ+KAmSBhbmQgYXV0by1yZXZlcnRpbmcgd2lsbCByZXN1bWUuICBI b3dldmVyLCBpZiB5b3UKbWFya2VkIGNlcnRhaW4gYnVmZmVycyB0byBnZXQgZGVsZXRlZCBvciB0 byBiZSBkaXNwbGF5ZWQsIHlvdSBoYXZlIHRvIGJlCmNhcmVmdWwsIGJlY2F1c2UgcmV2ZXJ0aW5n IGVyYXNlcyBhbGwgbWFya3MuICBUaGUgZmFjdCB0aGF0IGFkZGluZyBtYXJrcwpzZXRzIHRoZSBi dWZmZXLigJlzIG1vZGlmaWVkIGZsYWcgcHJldmVudHMgQXV0byBSZXZlcnQgZnJvbSBhdXRvbWF0 aWNhbGx5CmVyYXNpbmcgdGhlIG1hcmtzLgoKCioqKiAxOC41LjIgQXV0byBSZXZlcnRpbmcgRGly ZWQgYnVmZmVycwoKRGlyZWQgYnVmZmVycyBvbmx5IGF1dG8tcmV2ZXJ0IHdoZW4gdGhlIGZpbGUg bGlzdCBvZiB0aGUgYnVmZmVy4oCZcyBtYWluCmRpcmVjdG9yeSBjaGFuZ2VzIChlLmcuLCB3aGVu IGEgbmV3IGZpbGUgaXMgYWRkZWQgb3IgZGVsZXRlZCkuICBUaGV5IGRvCm5vdCBhdXRvLXJldmVy dCB3aGVuIGluZm9ybWF0aW9uIGFib3V0IGEgcGFydGljdWxhciBmaWxlIGNoYW5nZXMgKGUuZy4s CndoZW4gdGhlIHNpemUgY2hhbmdlcykgb3Igd2hlbiBpbnNlcnRlZCBzdWJkaXJlY3RvcmllcyBj aGFuZ2UuICBUbyBiZQpzdXJlIHRoYXQgX2FsbF8gbGlzdGVkIGluZm9ybWF0aW9uIGlzIHVwIHRv IGRhdGUsIHlvdSBoYXZlIHRvIG1hbnVhbGx5CnJldmVydCB1c2luZyDigJhn4oCZLCBfZXZlbl8g aWYgYXV0by1yZXZlcnRpbmcgaXMgZW5hYmxlZCBpbiB0aGUgRGlyZWQKYnVmZmVyLiAgU29tZXRp bWVzLCB5b3UgbWlnaHQgZ2V0IHRoZSBpbXByZXNzaW9uIHRoYXQgbW9kaWZ5aW5nIG9yCnNhdmlu ZyBmaWxlcyBsaXN0ZWQgaW4gdGhlIG1haW4gZGlyZWN0b3J5IGFjdHVhbGx5IGRvZXMgY2F1c2UK YXV0by1yZXZlcnRpbmcuICBUaGlzIGlzIGJlY2F1c2UgbWFraW5nIGNoYW5nZXMgdG8gYSBmaWxl LCBvciBzYXZpbmcgaXQsCnZlcnkgb2Z0ZW4gY2F1c2VzIGNoYW5nZXMgaW4gdGhlIGRpcmVjdG9y eSBpdHNlbGY7IGZvciBpbnN0YW5jZSwgdGhyb3VnaApiYWNrdXAgZmlsZXMgb3IgYXV0by1zYXZl IGZpbGVzLiAgSG93ZXZlciwgdGhpcyBpcyBub3QgZ3VhcmFudGVlZC4KCiAgIElmIHRoZSBEaXJl ZCBidWZmZXIgaXMgbWFya2VkIG1vZGlmaWVkIGFuZCB0aGVyZSBhcmUgbm8gY2hhbmdlcyB5b3UK d2FudCB0byBwcm90ZWN0LCB0aGVuIG1vc3Qgb2YgdGhlIHRpbWUgeW91IGNhbiBtYWtlIGF1dG8t cmV2ZXJ0aW5nCnJlc3VtZSBieSBtYW51YWxseSByZXZlcnRpbmcgdGhlIGJ1ZmZlciB1c2luZyDi gJhn4oCZLiAgVGhlcmUgaXMgb25lCmV4Y2VwdGlvbi4gIElmIHlvdSBmbGFnIG9yIG1hcmsgZmls ZXMsIHlvdSBjYW4gc2FmZWx5IHJldmVydCB0aGUgYnVmZmVyLgpUaGlzIHdpbGwgbm90IGVyYXNl IHRoZSBmbGFncyBvciBtYXJrcyAodW5sZXNzIHRoZSBtYXJrZWQgZmlsZSBoYXMgYmVlbgpkZWxl dGVkLCBvZiBjb3Vyc2UpLiAgSG93ZXZlciwgdGhlIGJ1ZmZlciB3aWxsIHN0YXkgbW9kaWZpZWQs IGV2ZW4gYWZ0ZXIKcmV2ZXJ0aW5nLCBhbmQgYXV0by1yZXZlcnRpbmcgd2lsbCBub3QgcmVzdW1l LiAgVGhpcyBpcyBiZWNhdXNlLCBpZiB5b3UKZmxhZyBvciBtYXJrIGZpbGVzLCB5b3UgbWF5IGJl IHdvcmtpbmcgb24gdGhlIGJ1ZmZlciBhbmQgeW91IG1pZ2h0IG5vdAp3YW50IHRoZSBidWZmZXIg dG8gY2hhbmdlIHdpdGhvdXQgd2FybmluZy4gIElmIHlvdSB3YW50IGF1dG8tcmV2ZXJ0aW5nCnRv IHJlc3VtZSBpbiB0aGUgcHJlc2VuY2Ugb2YgbWFya3MgYW5kIGZsYWdzLCBtYXJrIHRoZSBidWZm ZXIKbm9uLW1vZGlmaWVkIHVzaW5nIOKAmE0tfuKAmS4gIEhvd2V2ZXIsIGFkZGluZywgZGVsZXRp bmcgb3IgY2hhbmdpbmcgbWFya3MKb3IgZmxhZ3Mgd2lsbCBtYXJrIGl0IG1vZGlmaWVkIGFnYWlu LgoKICAgUmVtb3RlIERpcmVkIGJ1ZmZlcnMgYXJlIGN1cnJlbnRseSBub3QgYXV0by1yZXZlcnRl ZC4gIE5laXRoZXIgYXJlCkRpcmVkIGJ1ZmZlcnMgZm9yIHdoaWNoIHlvdSB1c2VkIHNoZWxsIHdp bGRjYXJkcyBvciBmaWxlIGFyZ3VtZW50cyB0bwpsaXN0IG9ubHkgc29tZSBvZiB0aGUgZmlsZXMu ICDigJgqRmluZCrigJkgYW5kIOKAmCpMb2NhdGUq4oCZIGJ1ZmZlcnMgZG8gbm90CmF1dG8tcmV2 ZXJ0IGVpdGhlci4KCiAgIE5vdGUgdGhhdCBhdXRvLXJldmVydGluZyBEaXJlZCBidWZmZXJzIG1h eSBub3Qgd29yayBzYXRpc2ZhY3RvcmlseSBvbgpzb21lIHN5c3RlbXMuCgoKKiogMTguNiBBdXRv LVNhdmluZzogUHJvdGVjdGlvbiBBZ2FpbnN0IERpc2FzdGVycwoKRnJvbSB0aW1lIHRvIHRpbWUs IEVtYWNzIGF1dG9tYXRpY2FsbHkgc2F2ZXMgZWFjaCB2aXNpdGVkIGZpbGUgaW4gYQpzZXBhcmF0 ZSBmaWxlLCB3aXRob3V0IGFsdGVyaW5nIHRoZSBmaWxlIHlvdSBhY3R1YWxseSB1c2UuICBUaGlz IGlzCmNhbGxlZCAiYXV0by1zYXZpbmciLiAgSXQgcHJldmVudHMgeW91IGZyb20gbG9zaW5nIG1v cmUgdGhhbiBhIGxpbWl0ZWQKYW1vdW50IG9mIHdvcmsgaWYgdGhlIHN5c3RlbSBjcmFzaGVzLgoK ICAgV2hlbiBFbWFjcyBkZXRlcm1pbmVzIHRoYXQgaXQgaXMgdGltZSBmb3IgYXV0by1zYXZpbmcs IGl0IGNvbnNpZGVycwplYWNoIGJ1ZmZlciwgYW5kIGVhY2ggaXMgYXV0by1zYXZlZCBpZiBhdXRv LXNhdmluZyBpcyBlbmFibGVkIGZvciBpdCBhbmQKaXQgaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSB0 aGUgbGFzdCB0aW1lIGl0IHdhcyBhdXRvLXNhdmVkLiAgVGhlIG1lc3NhZ2UK4oCYQXV0by1zYXZp bmcuLi7igJkgaXMgZGlzcGxheWVkIGluIHRoZSBlY2hvIGFyZWEgZHVyaW5nIGF1dG8tc2F2aW5n LCBpZgphbnkgZmlsZXMgYXJlIGFjdHVhbGx5IGF1dG8tc2F2ZWQuICBFcnJvcnMgb2NjdXJyaW5n IGR1cmluZyBhdXRvLXNhdmluZwphcmUgY2F1Z2h0IHNvIHRoYXQgdGhleSBkbyBub3QgaW50ZXJm ZXJlIHdpdGggdGhlIGV4ZWN1dGlvbiBvZiBjb21tYW5kcwp5b3UgaGF2ZSBiZWVuIHR5cGluZy4K CisgTWVudToKCiAgLSBGaWxlczogQXV0byBTYXZlIEZpbGVzLiAgICAgICBUaGUgZmlsZSB3aGVy ZSBhdXRvLXNhdmVkIGNoYW5nZXMgYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhY3R1YWxseSBtYWRlIHVudGlsIHlvdSBzYXZlIHRoZSBmaWxlLgogIC0gQ29udHJvbDogQXV0 byBTYXZlIENvbnRyb2wuICAgQ29udHJvbGxpbmcgd2hlbiBhbmQgaG93IG9mdGVuIHRvIGF1dG8t c2F2ZS4KICAtIFJlY292ZXI6OiAgICAgICAgICAgICAgICAgICAgIFJlY292ZXJpbmcgdGV4dCBm cm9tIGF1dG8tc2F2ZSBmaWxlcy4KCgoqKiogMTguNi4xIEF1dG8tU2F2ZSBGaWxlcwoKQXV0by1z YXZpbmcgZG9lcyBub3Qgbm9ybWFsbHkgc2F2ZSBpbiB0aGUgZmlsZXMgdGhhdCB5b3UgdmlzaXRl ZCwKYmVjYXVzZSBpdCBjYW4gYmUgdmVyeSB1bmRlc2lyYWJsZSB0byBzYXZlIGEgY2hhbmdlIHRo YXQgeW91IGRpZCBub3QKd2FudCB0byBtYWtlIHBlcm1hbmVudC4gIEluc3RlYWQsIGF1dG8tc2F2 aW5nIGlzIGRvbmUgaW4gYSBkaWZmZXJlbnQKZmlsZSBjYWxsZWQgdGhlICJhdXRvLXNhdmUgZmls ZSIsIGFuZCB0aGUgdmlzaXRlZCBmaWxlIGlzIGNoYW5nZWQgb25seQp3aGVuIHlvdSByZXF1ZXN0 IHNhdmluZyBleHBsaWNpdGx5IChzdWNoIGFzIHdpdGgg4oCYQy14IEMtc+KAmSkuCgogICBOb3Jt YWxseSwgdGhlIGF1dG8tc2F2ZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcg4oCYI+KA mSB0byB0aGUKZnJvbnQgYW5kIHJlYXIgb2YgdGhlIHZpc2l0ZWQgZmlsZSBuYW1lLiAgVGh1cywg YSBidWZmZXIgdmlzaXRpbmcgZmlsZQrigJhmb28uY+KAmSBpcyBhdXRvLXNhdmVkIGluIGEgZmls ZSDigJgjZm9vLmMj4oCZLiAgTW9zdCBidWZmZXJzIHRoYXQgYXJlIG5vdAp2aXNpdGluZyBmaWxl cyBhcmUgYXV0by1zYXZlZCBvbmx5IGlmIHlvdSByZXF1ZXN0IGl0IGV4cGxpY2l0bHk7IHdoZW4K dGhleSBhcmUgYXV0by1zYXZlZCwgdGhlIGF1dG8tc2F2ZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBh cHBlbmRpbmcg4oCYI+KAmSB0bwp0aGUgZnJvbnQgYW5kIHJlYXIgb2YgYnVmZmVyIG5hbWUsIHRo ZW4gYWRkaW5nIGRpZ2l0cyBhbmQgbGV0dGVycyBhdCB0aGUKZW5kIGZvciB1bmlxdWVuZXNzLiAg Rm9yIGV4YW1wbGUsIHRoZSDigJgqbWFpbCrigJkgYnVmZmVyIGluIHdoaWNoIHlvdQpjb21wb3Nl IG1lc3NhZ2VzIHRvIGJlIHNlbnQgbWlnaHQgYmUgYXV0by1zYXZlZCBpbiBhIGZpbGUgbmFtZWQK 4oCYIyptYWlsKiM3MDRqdXXigJkuICBBdXRvLXNhdmUgZmlsZSBuYW1lcyBhcmUgbWFkZSB0aGlz IHdheSB1bmxlc3MgeW91CnJlcHJvZ3JhbSBwYXJ0cyBvZiBFbWFjcyB0byBkbyBzb21ldGhpbmcg ZGlmZmVyZW50ICh0aGUgZnVuY3Rpb25zCuKAmG1ha2UtYXV0by1zYXZlLWZpbGUtbmFtZeKAmSBh bmQg4oCYYXV0by1zYXZlLWZpbGUtbmFtZS1w4oCZKS4gIFRoZSBmaWxlIG5hbWUKdG8gYmUgdXNl ZCBmb3IgYXV0by1zYXZpbmcgaW4gYSBidWZmZXIgaXMgY2FsY3VsYXRlZCB3aGVuIGF1dG8tc2F2 aW5nIGlzCnR1cm5lZCBvbiBpbiB0aGF0IGJ1ZmZlci4KCiAgIFRoZSB2YXJpYWJsZSDigJhhdXRv LXNhdmUtZmlsZS1uYW1lLXRyYW5zZm9ybXPigJkgYWxsb3dzIGEgZGVncmVlIG9mCmNvbnRyb2wg b3ZlciB0aGUgYXV0by1zYXZlIGZpbGUgbmFtZS4gIEl0IGxldHMgeW91IHNwZWNpZnkgYSBzZXJp ZXMgb2YKcmVndWxhciBleHByZXNzaW9ucyBhbmQgcmVwbGFjZW1lbnRzIHRvIHRyYW5zZm9ybSB0 aGUgYXV0byBzYXZlIGZpbGUKbmFtZS4gIFRoZSBkZWZhdWx0IHZhbHVlIHB1dHMgdGhlIGF1dG8t c2F2ZSBmaWxlcyBmb3IgcmVtb3RlIGZpbGVzCigqbm90ZSBSZW1vdGUgRmlsZXM6OikgaW50byB0 aGUgdGVtcG9yYXJ5IGZpbGUgZGlyZWN0b3J5IG9uIHRoZSBsb2NhbAptYWNoaW5lLgoKICAgV2hl biB5b3UgZGVsZXRlIGEgc3Vic3RhbnRpYWwgcGFydCBvZiB0aGUgdGV4dCBpbiBhIGxhcmdlIGJ1 ZmZlciwKYXV0byBzYXZlIHR1cm5zIG9mZiB0ZW1wb3JhcmlseSBpbiB0aGF0IGJ1ZmZlci4gIFRo aXMgaXMgYmVjYXVzZSBpZiB5b3UKZGVsZXRlZCB0aGUgdGV4dCB1bmludGVudGlvbmFsbHksIHlv dSBtaWdodCBmaW5kIHRoZSBhdXRvLXNhdmUgZmlsZSBtb3JlCnVzZWZ1bCBpZiBpdCBjb250YWlu cyB0aGUgZGVsZXRlZCB0ZXh0LiAgVG8gcmVlbmFibGUgYXV0by1zYXZpbmcgYWZ0ZXIKdGhpcyBo YXBwZW5zLCBzYXZlIHRoZSBidWZmZXIgd2l0aCDigJhDLXggQy1z4oCZLCBvciB1c2Ug4oCYQy11 IDEgTS14CmF1dG8tc2F2ZS1tb2Rl4oCZLgoKICAgSWYgeW91IHdhbnQgYXV0by1zYXZpbmcgdG8g YmUgZG9uZSBpbiB0aGUgdmlzaXRlZCBmaWxlIHJhdGhlciB0aGFuIGluCmEgc2VwYXJhdGUgYXV0 by1zYXZlIGZpbGUsIGVuYWJsZSB0aGUgZ2xvYmFsIG1pbm9yIG1vZGUK4oCYYXV0by1zYXZlLXZp c2l0ZWQtbW9kZeKAmS4gIEluIHRoaXMgbW9kZSwgYXV0by1zYXZpbmcgaXMgaWRlbnRpY2FsIHRv CmV4cGxpY2l0IHNhdmluZy4gIE5vdGUgdGhhdCB0aGlzIG1vZGUgaXMgb3J0aG9nb25hbCB0byB0 aGUg4oCYYXV0by1zYXZl4oCZCm1vZGUgZGVzY3JpYmVkIGFib3ZlOyB5b3UgY2FuIGVuYWJsZSBi b3RoIGF0IHRoZSBzYW1lIHRpbWUuICBIb3dldmVyLCBpZgrigJhhdXRvLXNhdmXigJkgbW9kZSBp cyBhY3RpdmUgaW4gc29tZSBidWZmZXIgYW5kIHRoZSBvYnNvbGV0ZQrigJhhdXRvLXNhdmUtdmlz aXRlZC1maWxlLW5hbWXigJkgdmFyaWFibGUgaXMgc2V0IHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1 ZSwgdGhhdApidWZmZXIgd29u4oCZdCBiZSBhZmZlY3RlZCBieSDigJhhdXRvLXNhdmUtdmlzaXRl ZC1tb2Rl4oCZLgoKICAgWW91IGNhbiB1c2UgdGhlIHZhcmlhYmxlIOKAmGF1dG8tc2F2ZS12aXNp dGVkLWludGVydmFs4oCZIHRvIGN1c3RvbWl6ZQp0aGUgaW50ZXJ2YWwgYmV0d2VlbiBhdXRvLXNh dmUgb3BlcmF0aW9ucyBpbiDigJhhdXRvLXNhdmUtdmlzaXRlZC1tb2Rl4oCZOwpieSBkZWZhdWx0 IGl04oCZcyBmaXZlIHNlY29uZHMuICDigJhhdXRvLXNhdmUtaW50ZXJ2YWzigJkgYW5kCuKAmGF1 dG8tc2F2ZS10aW1lb3V04oCZIGhhdmUgbm8gZWZmZWN0IG9uIOKAmGF1dG8tc2F2ZS12aXNpdGVk LW1vZGXigJkuICAqTm90ZQpBdXRvIFNhdmUgQ29udHJvbDo6LCBmb3IgZGV0YWlscyBvbiB0aGVz ZSB2YXJpYWJsZXMuCgogICBBIGJ1ZmZlcuKAmXMgYXV0by1zYXZlIGZpbGUgaXMgZGVsZXRlZCB3 aGVuIHlvdSBzYXZlIHRoZSBidWZmZXIgaW4gaXRzCnZpc2l0ZWQgZmlsZS4gIChZb3UgY2FuIGlu aGliaXQgdGhpcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZQrigJhkZWxldGUtYXV0by1zYXZlLWZp bGVz4oCZIHRvIOKAmG5pbOKAmS4pICBDaGFuZ2luZyB0aGUgdmlzaXRlZCBmaWxlIG5hbWUgd2l0 aArigJhDLXggQy134oCZIG9yIOKAmHNldC12aXNpdGVkLWZpbGUtbmFtZeKAmSByZW5hbWVzIGFu eSBhdXRvLXNhdmUgZmlsZSB0byBnbwp3aXRoIHRoZSBuZXcgdmlzaXRlZCBuYW1lLgoKCioqKiAx OC42LjIgQ29udHJvbGxpbmcgQXV0by1TYXZpbmcKCkVhY2ggdGltZSB5b3UgdmlzaXQgYSBmaWxl LCBhdXRvLXNhdmluZyBpcyB0dXJuZWQgb24gZm9yIHRoYXQgZmlsZeKAmXMKYnVmZmVyIGlmIHRo ZSB2YXJpYWJsZSDigJhhdXRvLXNhdmUtZGVmYXVsdOKAmSBpcyBub24t4oCYbmls4oCZIChidXQg bm90IGluCmJhdGNoIG1vZGU7ICpub3RlIEluaXRpYWwgT3B0aW9uczo6KS4gIFRoZSBkZWZhdWx0 IGZvciB0aGlzIHZhcmlhYmxlIGlzCuKAmHTigJksIHNvIGF1dG8tc2F2aW5nIGlzIHRoZSB1c3Vh bCBwcmFjdGljZSBmb3IgZmlsZS12aXNpdGluZyBidWZmZXJzLiAgVG8KdG9nZ2xlIGF1dG8tc2F2 aW5nIGluIHRoZSBjdXJyZW50IGJ1ZmZlciwgdHlwZSDigJhNLXggYXV0by1zYXZlLW1vZGXigJku CkF1dG8gU2F2ZSBtb2RlIGFjdHMgYXMgYSBidWZmZXItbG9jYWwgbWlub3IgbW9kZSAoKm5vdGUg TWlub3IgTW9kZXM6OikuCgogICBFbWFjcyBhdXRvLXNhdmVzIHBlcmlvZGljYWxseSBiYXNlZCBv biBob3cgbWFueSBjaGFyYWN0ZXJzIHlvdSBoYXZlCnR5cGVkIHNpbmNlIHRoZSBsYXN0IGF1dG8t c2F2ZS4gIFRoZSB2YXJpYWJsZSDigJhhdXRvLXNhdmUtaW50ZXJ2YWzigJkKc3BlY2lmaWVzIGhv dyBtYW55IGNoYXJhY3RlcnMgdGhlcmUgYXJlIGJldHdlZW4gYXV0by1zYXZlcy4gIEJ5IGRlZmF1 bHQsCml0IGlzIDMwMC4gIEVtYWNzIGRvZXNu4oCZdCBhY2NlcHQgdmFsdWVzIHRoYXQgYXJlIHRv byBzbWFsbDogaWYgeW91CmN1c3RvbWl6ZSDigJhhdXRvLXNhdmUtaW50ZXJ2YWzigJkgdG8gYSB2 YWx1ZSBsZXNzIHRoYW4gMjAsIEVtYWNzIHdpbGwKYmVoYXZlIGFzIGlmIHRoZSB2YWx1ZSBpcyAy MC4KCiAgIEF1dG8tc2F2aW5nIGFsc28gdGFrZXMgcGxhY2Ugd2hlbiB5b3Ugc3RvcCB0eXBpbmcg Zm9yIGEgd2hpbGUuICBCeQpkZWZhdWx0LCBpdCBkb2VzIHRoaXMgYWZ0ZXIgMzAgc2Vjb25kcyBv ZiBpZGxlbmVzcyAoYXQgdGhpcyB0aW1lLCBFbWFjcwptYXkgYWxzbyBwZXJmb3JtIGdhcmJhZ2Ug Y29sbGVjdGlvbjsgKm5vdGUgKGVsaXNwKUdhcmJhZ2UgQ29sbGVjdGlvbjo6KS4KVG8gY2hhbmdl IHRoaXMgaW50ZXJ2YWwsIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGUg4oCYYXV0by1zYXZlLXRpbWVv dXTigJkuClRoZSBhY3R1YWwgdGltZSBwZXJpb2QgaXMgbG9uZ2VyIGlmIHRoZSBjdXJyZW50IGJ1 ZmZlciBpcyBsb25nOyB0aGlzIGlzCmEgaGV1cmlzdGljIHdoaWNoIGFpbXMgdG8ga2VlcCBvdXQg b2YgeW91ciB3YXkgd2hlbiB5b3UgYXJlIGVkaXRpbmcgbG9uZwpidWZmZXJzLCBpbiB3aGljaCBh dXRvLXNhdmUgdGFrZXMgYW4gYXBwcmVjaWFibGUgYW1vdW50IG9mIHRpbWUuCkF1dG8tc2F2aW5n IGR1cmluZyBpZGxlIHBlcmlvZHMgYWNjb21wbGlzaGVzIHR3byB0aGluZ3M6IGZpcnN0LCBpdCBt YWtlcwpzdXJlIGFsbCB5b3VyIHdvcmsgaXMgc2F2ZWQgaWYgeW91IGdvIGF3YXkgZnJvbSB0aGUg dGVybWluYWwgZm9yIGEKd2hpbGU7IHNlY29uZCwgaXQgbWF5IGF2b2lkIHNvbWUgYXV0by1zYXZp bmcgd2hpbGUgeW91IGFyZSBhY3R1YWxseQp0eXBpbmcuCgogICBXaGVuIOKAmGF1dG8tc2F2ZS12 aXNpdGVkLW1vZGXigJkgaXMgZW5hYmxlZCwgRW1hY3Mgd2lsbCBhdXRvLXNhdmUKZmlsZS12aXNp dGluZyBidWZmZXJzIGFmdGVyIGZpdmUgc2Vjb25kcyBvZiBpZGxlIHRpbWUuICBZb3UgY2FuCmN1 c3RvbWl6ZSB0aGUgdmFyaWFibGUg4oCYYXV0by1zYXZlLXZpc2l0ZWQtaW50ZXJ2YWzigJkgdG8g Y2hhbmdlIHRoZSBpZGxlCnRpbWUgaW50ZXJ2YWwuCgogICBFbWFjcyBhbHNvIGRvZXMgYXV0by1z YXZpbmcgd2hlbmV2ZXIgaXQgZ2V0cyBhIGZhdGFsIGVycm9yLiAgVGhpcwppbmNsdWRlcyBraWxs aW5nIHRoZSBFbWFjcyBqb2Igd2l0aCBhIHNoZWxsIGNvbW1hbmQgc3VjaCBhcyDigJhraWxsCiVl bWFjc+KAmSwgb3IgZGlzY29ubmVjdGluZyBhIHBob25lIGxpbmUgb3IgbmV0d29yayBjb25uZWN0 aW9uLgoKICAgWW91IGNhbiBwZXJmb3JtIGFuIGF1dG8tc2F2ZSBleHBsaWNpdGx5IHdpdGggdGhl IGNvbW1hbmQg4oCYTS14CmRvLWF1dG8tc2F2ZeKAmS4KCgoqKiogMTguNi4zIFJlY292ZXJpbmcg RGF0YSBmcm9tIEF1dG8tU2F2ZXMKCllvdSBjYW4gdXNlIHRoZSBjb250ZW50cyBvZiBhbiBhdXRv LXNhdmUgZmlsZSB0byByZWNvdmVyIGZyb20gYSBsb3NzIG9mCmRhdGEgd2l0aCB0aGUgY29tbWFu ZCDigJhNLXggcmVjb3Zlci1maWxlIDxSRVQ+IEZJTEUgPFJFVD7igJkuICBUaGlzIHZpc2l0cwpG SUxFIGFuZCB0aGVuIChhZnRlciB5b3VyIGNvbmZpcm1hdGlvbikgcmVzdG9yZXMgdGhlIGNvbnRl bnRzIGZyb20gaXRzCmF1dG8tc2F2ZSBmaWxlIOKAmCNGSUxFI+KAmS4gIFlvdSBjYW4gdGhlbiBz YXZlIHdpdGgg4oCYQy14IEMtc+KAmSB0byBwdXQgdGhlCnJlY292ZXJlZCB0ZXh0IGludG8gRklM RSBpdHNlbGYuICBGb3IgZXhhbXBsZSwgdG8gcmVjb3ZlciBmaWxlIOKAmGZvby5j4oCZCmZyb20g aXRzIGF1dG8tc2F2ZSBmaWxlIOKAmCNmb28uYyPigJksIGRvOgoKICAgICBNLXggcmVjb3Zlci1m aWxlIDxSRVQ+IGZvby5jIDxSRVQ+CiAgICAgeWVzIDxSRVQ+CiAgICAgQy14IEMtcwoKICAgQmVm b3JlIGFza2luZyBmb3IgY29uZmlybWF0aW9uLCDigJhNLXggcmVjb3Zlci1maWxl4oCZIGRpc3Bs YXlzIGEKZGlyZWN0b3J5IGxpc3RpbmcgZGVzY3JpYmluZyB0aGUgc3BlY2lmaWVkIGZpbGUgYW5k IHRoZSBhdXRvLXNhdmUgZmlsZSwKc28geW91IGNhbiBjb21wYXJlIHRoZWlyIHNpemVzIGFuZCBk YXRlcy4gIElmIHRoZSBhdXRvLXNhdmUgZmlsZSBpcwpvbGRlciwg4oCYTS14IHJlY292ZXItZmls ZeKAmSBkb2VzIG5vdCBvZmZlciB0byByZWFkIGl0LgoKICAgSWYgRW1hY3Mgb3IgdGhlIGNvbXB1 dGVyIGNyYXNoZXMsIHlvdSBjYW4gcmVjb3ZlciBhbGwgdGhlIGZpbGVzIHlvdQp3ZXJlIGVkaXRp bmcgZnJvbSB0aGVpciBhdXRvIHNhdmUgZmlsZXMgd2l0aCB0aGUgY29tbWFuZCDigJhNLXgKcmVj b3Zlci1zZXNzaW9u4oCZLiAgVGhpcyBmaXJzdCBzaG93cyB5b3UgYSBsaXN0IG9mIHJlY29yZGVk IGludGVycnVwdGVkCnNlc3Npb25zLiAgTW92ZSBwb2ludCB0byB0aGUgb25lIHlvdSBjaG9vc2Us IGFuZCB0eXBlIOKAmEMtYyBDLWPigJkuCgogICBUaGVuIOKAmHJlY292ZXItc2Vzc2lvbuKAmSBh c2tzIGFib3V0IGVhY2ggb2YgdGhlIGZpbGVzIHRoYXQgd2VyZSBiZWluZwplZGl0ZWQgZHVyaW5n IHRoYXQgc2Vzc2lvbiwgYXNraW5nIHdoZXRoZXIgdG8gcmVjb3ZlciB0aGF0IGZpbGUuICBJZiB5 b3UKYW5zd2VyIOKAmHnigJksIGl0IGNhbGxzIOKAmHJlY292ZXItZmlsZeKAmSwgd2hpY2ggd29y a3MgaW4gaXRzIG5vcm1hbCBmYXNoaW9uLgpJdCBzaG93cyB0aGUgZGF0ZXMgb2YgdGhlIG9yaWdp bmFsIGZpbGUgYW5kIGl0cyBhdXRvLXNhdmUgZmlsZSwgYW5kIGFza3MKb25jZSBhZ2FpbiB3aGV0 aGVyIHRvIHJlY292ZXIgdGhhdCBmaWxlLgoKICAgV2hlbiDigJhyZWNvdmVyLXNlc3Npb27igJkg aXMgZG9uZSwgdGhlIGZpbGVzIHlvdeKAmXZlIGNob3NlbiB0byByZWNvdmVyCmFyZSBwcmVzZW50 IGluIEVtYWNzIGJ1ZmZlcnMuICBZb3Ugc2hvdWxkIHRoZW4gc2F2ZSB0aGVtLiAgT25seQp0aGlz 4oCUc2F2aW5nIHRoZW3igJR1cGRhdGVzIHRoZSBmaWxlcyB0aGVtc2VsdmVzLgoKICAgRW1hY3Mg cmVjb3JkcyBpbmZvcm1hdGlvbiBhYm91dCBpbnRlcnJ1cHRlZCBzZXNzaW9ucyBpbiBmaWxlcyBu YW1lZArigJguc2F2ZXMtUElELUhPU1ROQU1FfuKAmSBpbiB0aGUgZGlyZWN0b3J5IOKAmH4vLmVt YWNzLmQvYXV0by1zYXZlLWxpc3Qv4oCZLgpUaGlzIGRpcmVjdG9yeSBpcyBkZXRlcm1pbmVkIGJ5 IHRoZSB2YXJpYWJsZQrigJhhdXRvLXNhdmUtbGlzdC1maWxlLXByZWZpeOKAmS4gIElmIHlvdSBz ZXQg4oCYYXV0by1zYXZlLWxpc3QtZmlsZS1wcmVmaXjigJkKdG8g4oCYbmls4oCZLCBzZXNzaW9u cyBhcmUgbm90IHJlY29yZGVkIGZvciByZWNvdmVyeS4KCgoqKiAxOC43IEZpbGUgTmFtZSBBbGlh c2VzCgpTeW1ib2xpYyBsaW5rcyBhbmQgaGFyZCBsaW5rcyBib3RoIG1ha2UgaXQgcG9zc2libGUg Zm9yIHNldmVyYWwgZmlsZQpuYW1lcyB0byByZWZlciB0byB0aGUgc2FtZSBmaWxlLiAgSGFyZCBs aW5rcyBhcmUgYWx0ZXJuYXRlIG5hbWVzIHRoYXQKcmVmZXIgZGlyZWN0bHkgdG8gdGhlIGZpbGU7 IGFsbCB0aGUgbmFtZXMgYXJlIGVxdWFsbHkgdmFsaWQsIGFuZCBubyBvbmUKb2YgdGhlbSBpcyBw cmVmZXJyZWQuICBCeSBjb250cmFzdCwgYSBzeW1ib2xpYyBsaW5rIGlzIGEga2luZCBvZiBkZWZp bmVkCmFsaWFzOiB3aGVuIOKAmGZvb+KAmSBpcyBhIHN5bWJvbGljIGxpbmsgdG8g4oCYYmFy4oCZ LCB5b3UgY2FuIHVzZSBlaXRoZXIgbmFtZQp0byByZWZlciB0byB0aGUgZmlsZSwgYnV0IOKAmGJh cuKAmSBpcyB0aGUgcmVhbCBuYW1lLCB3aGlsZSDigJhmb2/igJkgaXMganVzdCBhbgphbGlhcy4g IE1vcmUgY29tcGxleCBjYXNlcyBvY2N1ciB3aGVuIHN5bWJvbGljIGxpbmtzIHBvaW50IHRvCmRp cmVjdG9yaWVzLgoKICAgTm9ybWFsbHksIGlmIHlvdSB2aXNpdCBhIGZpbGUgd2hpY2ggRW1hY3Mg aXMgYWxyZWFkeSB2aXNpdGluZyB1bmRlciBhCmRpZmZlcmVudCBuYW1lLCBFbWFjcyBkaXNwbGF5 cyBhIG1lc3NhZ2UgaW4gdGhlIGVjaG8gYXJlYSBhbmQgdXNlcyB0aGUKZXhpc3RpbmcgYnVmZmVy IHZpc2l0aW5nIHRoYXQgZmlsZS4gIFRoaXMgY2FuIGhhcHBlbiBvbiBzeXN0ZW1zIHRoYXQKc3Vw cG9ydCBoYXJkIG9yIHN5bWJvbGljIGxpbmtzLCBvciBpZiB5b3UgdXNlIGEgbG9uZyBmaWxlIG5h bWUgb24gYQpzeXN0ZW0gdGhhdCB0cnVuY2F0ZXMgbG9uZyBmaWxlIG5hbWVzLCBvciBvbiBhIGNh c2UtaW5zZW5zaXRpdmUgZmlsZQpzeXN0ZW0uICBZb3UgY2FuIHN1cHByZXNzIHRoZSBtZXNzYWdl IGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlCuKAmGZpbmQtZmlsZS1zdXBwcmVzcy1zYW1lLWZpbGUt d2FybmluZ3PigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLiAgWW91IGNhbgpkaXNhYmxlIHRo aXMgZmVhdHVyZSBlbnRpcmVseSBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZQrigJhmaW5kLWZpbGUt ZXhpc3Rpbmctb3RoZXItbmFtZeKAmSB0byDigJhuaWzigJk6IHRoZW4gaWYgeW91IHZpc2l0IHRo ZSBzYW1lCmZpbGUgdW5kZXIgdHdvIGRpZmZlcmVudCBuYW1lcywgeW91IGdldCBhIHNlcGFyYXRl IGJ1ZmZlciBmb3IgZWFjaCBmaWxlCm5hbWUuCgogICBJZiB0aGUgdmFyaWFibGUg4oCYZmluZC1m aWxlLXZpc2l0LXRydWVuYW1l4oCZIGlzIG5vbi3igJhuaWzigJksIHRoZW4gdGhlCmZpbGUgbmFt ZSByZWNvcmRlZCBmb3IgYSBidWZmZXIgaXMgdGhlIGZpbGXigJlzICJ0cnVlbmFtZSIgKG1hZGUg YnkKcmVwbGFjaW5nIGFsbCBzeW1ib2xpYyBsaW5rcyB3aXRoIHRoZWlyIHRhcmdldCBuYW1lcyks IHJhdGhlciB0aGFuIHRoZQpuYW1lIHlvdSBzcGVjaWZ5LiAgU2V0dGluZyDigJhmaW5kLWZpbGUt dmlzaXQtdHJ1ZW5hbWXigJkgYWxzbyBpbXBsaWVzIHRoZQplZmZlY3Qgb2Yg4oCYZmluZC1maWxl LWV4aXN0aW5nLW90aGVyLW5hbWXigJkuCgogICBTb21ldGltZXMsIGEgZGlyZWN0b3J5IGlzIG9y ZGluYXJpbHkgYWNjZXNzZWQgdGhyb3VnaCBhIHN5bWJvbGljCmxpbmssIGFuZCB5b3UgbWF5IHdh bnQgRW1hY3MgdG8gcHJlZmVyZW50aWFsbHkgc2hvdyBpdHMgbGlua2VkIG5hbWUuICBUbwpkbyB0 aGlzLCBjdXN0b21pemUg4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmS4gIEVhY2ggZWxlbWVu dCBpbiB0aGlzIGxpc3QKc2hvdWxkIGhhdmUgdGhlIGZvcm0g4oCYKEZST00gLiBUTynigJksIHdo aWNoIG1lYW5zIHRvIHJlcGxhY2UgRlJPTSB3aXRoIFRPCndoZW5ldmVyIEZST00gYXBwZWFycyBp biBhIGRpcmVjdG9yeSBuYW1lLiAgVGhlIEZST00gc3RyaW5nIGlzIGEgcmVndWxhcgpleHByZXNz aW9uICgqbm90ZSBSZWdleHBzOjopLiAgSXQgaXMgbWF0Y2hlZCBhZ2FpbnN0IGRpcmVjdG9yeSBu YW1lcwphbmNob3JlZCBhdCB0aGUgZmlyc3QgY2hhcmFjdGVyLCBhbmQgc2hvdWxkIHN0YXJ0IHdp dGgg4oCYXGDigJkgKHRvIHN1cHBvcnQKZGlyZWN0b3J5IG5hbWVzIHdpdGggZW1iZWRkZWQgbmV3 bGluZXMsIHdoaWNoIHdvdWxkIGRlZmVhdCDigJhe4oCZKS4gIFRoZSBUTwpzdHJpbmcgc2hvdWxk IGJlIGFuIG9yZGluYXJ5IGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIHBvaW50aW5nIHRvIHRoZQpz YW1lIGRpcmVjdG9yeS4gIERvIG5vdCB1c2Ug4oCYfuKAmSB0byBzdGFuZCBmb3IgYSBob21lIGRp cmVjdG9yeSBpbiB0aGUgVE8Kc3RyaW5nOyBFbWFjcyBwZXJmb3JtcyB0aGVzZSBzdWJzdGl0dXRp b25zIHNlcGFyYXRlbHkuICBIZXJl4oCZcyBhbgpleGFtcGxlLCBmcm9tIGEgc3lzdGVtIG9uIHdo aWNoIOKAmC9ob21lL2ZzZuKAmSBpcyBub3JtYWxseSBhY2Nlc3NlZCB0aHJvdWdoCmEgc3ltYm9s aWMgbGluayBuYW1lZCDigJgvZnNm4oCZOgoKICAgICAoKCJcXGAvaG9tZS9mc2YiIC4gIi9mc2Yi KSkKCgoqKiAxOC44IEZpbGUgRGlyZWN0b3JpZXMKClRoZSBmaWxlIHN5c3RlbSBncm91cHMgZmls ZXMgaW50byAiZGlyZWN0b3JpZXMiLiAgQSAiZGlyZWN0b3J5IGxpc3RpbmciCmlzIGEgbGlzdCBv ZiBhbGwgdGhlIGZpbGVzIGluIGEgZGlyZWN0b3J5LiAgRW1hY3MgcHJvdmlkZXMgY29tbWFuZHMg dG8KY3JlYXRlIGFuZCBkZWxldGUgZGlyZWN0b3JpZXMsIGFuZCB0byBtYWtlIGRpcmVjdG9yeSBs aXN0aW5ncyBpbiBicmllZgpmb3JtYXQgKGZpbGUgbmFtZXMgb25seSkgYW5kIHZlcmJvc2UgZm9y bWF0IChzaXplcywgZGF0ZXMsIGFuZCBvdGhlcgphdHRyaWJ1dGVzIGluY2x1ZGVkKS4gIEVtYWNz IGFsc28gaW5jbHVkZXMgYSBkaXJlY3RvcnkgYnJvd3NlciBmZWF0dXJlCmNhbGxlZCBEaXJlZCwg d2hpY2ggeW91IGNhbiBpbnZva2Ugd2l0aCDigJhDLXggZOKAmTsgc2VlICpub3RlIERpcmVkOjou CgrigJhDLXggQy1kIERJUi1PUi1QQVRURVJOIDxSRVQ+4oCZCiAgICAgRGlzcGxheSBhIGJyaWVm IGRpcmVjdG9yeSBsaXN0aW5nICjigJhsaXN0LWRpcmVjdG9yeeKAmSkuCuKAmEMtdSBDLXggQy1k IERJUi1PUi1QQVRURVJOIDxSRVQ+4oCZCiAgICAgRGlzcGxheSBhIHZlcmJvc2UgZGlyZWN0b3J5 IGxpc3RpbmcuCuKAmE0teCBtYWtlLWRpcmVjdG9yeSA8UkVUPiBESVJOQU1FIDxSRVQ+4oCZCiAg ICAgQ3JlYXRlIGEgbmV3IGRpcmVjdG9yeSBuYW1lZCBESVJOQU1FLgrigJhNLXggZGVsZXRlLWRp cmVjdG9yeSA8UkVUPiBESVJOQU1FIDxSRVQ+4oCZCiAgICAgRGVsZXRlIHRoZSBkaXJlY3Rvcnkg bmFtZWQgRElSTkFNRS4gIElmIGl0IGlzbuKAmXQgZW1wdHksIHlvdSB3aWxsIGJlCiAgICAgYXNr ZWQgd2hldGhlciB5b3Ugd2FudCB0byBkZWxldGUgaXQgcmVjdXJzaXZlbHkuCgogICBUaGUgY29t bWFuZCB0byBkaXNwbGF5IGEgZGlyZWN0b3J5IGxpc3RpbmcgaXMg4oCYQy14IEMtZOKAmQoo4oCY bGlzdC1kaXJlY3RvcnnigJkpLiAgSXQgcmVhZHMgdXNpbmcgdGhlIG1pbmlidWZmZXIgYSBmaWxl IG5hbWUgd2hpY2ggaXMKZWl0aGVyIGEgZGlyZWN0b3J5IHRvIGJlIGxpc3RlZCBvciBhIHdpbGRj YXJkLWNvbnRhaW5pbmcgcGF0dGVybiBmb3IgdGhlCmZpbGVzIHRvIGJlIGxpc3RlZC4gIEZvciBl eGFtcGxlLAoKICAgICBDLXggQy1kIC91Mi9lbWFjcy9ldGMgPFJFVD4KCmxpc3RzIGFsbCB0aGUg ZmlsZXMgaW4gZGlyZWN0b3J5IOKAmC91Mi9lbWFjcy9ldGPigJkuICBIZXJlIGlzIGFuIGV4YW1w bGUgb2YKc3BlY2lmeWluZyBhIGZpbGUgbmFtZSBwYXR0ZXJuOgoKICAgICBDLXggQy1kIC91Mi9l bWFjcy9zcmMvKi5jIDxSRVQ+CgogICBOb3JtYWxseSwg4oCYQy14IEMtZOKAmSBkaXNwbGF5cyBh IGJyaWVmIGRpcmVjdG9yeSBsaXN0aW5nIGNvbnRhaW5pbmcKanVzdCBmaWxlIG5hbWVzLiAgQSBu dW1lcmljIGFyZ3VtZW50IChyZWdhcmRsZXNzIG9mIHZhbHVlKSB0ZWxscyBpdCB0bwptYWtlIGEg dmVyYm9zZSBsaXN0aW5nIGluY2x1ZGluZyBzaXplcywgZGF0ZXMsIGFuZCBvd25lcnMgKGxpa2Ug 4oCYbHMKLWzigJkpLgoKICAgVGhlIHRleHQgb2YgYSBkaXJlY3RvcnkgbGlzdGluZyBpcyBtb3N0 bHkgb2J0YWluZWQgYnkgcnVubmluZyDigJhsc+KAmSBpbgphbiBpbmZlcmlvciBwcm9jZXNzLiAg VHdvIEVtYWNzIHZhcmlhYmxlcyBjb250cm9sIHRoZSBzd2l0Y2hlcyBwYXNzZWQgdG8K4oCYbHPi gJk6IOKAmGxpc3QtZGlyZWN0b3J5LWJyaWVmLXN3aXRjaGVz4oCZIGlzIGEgc3RyaW5nIGdpdmlu ZyB0aGUgc3dpdGNoZXMgdG8KdXNlIGluIGJyaWVmIGxpc3RpbmdzICjigJgiLUNGIuKAmSBieSBk ZWZhdWx0KSwgYW5kCuKAmGxpc3QtZGlyZWN0b3J5LXZlcmJvc2Utc3dpdGNoZXPigJkgaXMgYSBz dHJpbmcgZ2l2aW5nIHRoZSBzd2l0Y2hlcyB0byB1c2UKaW4gYSB2ZXJib3NlIGxpc3RpbmcgKOKA mCItbCLigJkgYnkgZGVmYXVsdCkuCgogICBJbiB2ZXJib3NlIGRpcmVjdG9yeSBsaXN0aW5ncywg RW1hY3MgYWRkcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUKYW1vdW50IG9mIGZyZWUgc3BhY2Ugb24g dGhlIGRpc2sgdGhhdCBjb250YWlucyB0aGUgZGlyZWN0b3J5LiAgWW91IGNhbgpjdXN0b21pemUg aG93IHRoaXMgaXMgZG9uZSBmb3IgbG9jYWwgZmlsZXN5c3RlbXMgdmlhIHRoZSB2YXJpYWJsZXMK 4oCYZGlyZWN0b3J5LWZyZWUtc3BhY2UtcHJvZ3JhbeKAmSBhbmQg4oCYZGlyZWN0b3J5LWZyZWUt c3BhY2UtYXJnc+KAmTogdGhlCmZvcm1lciBzcGVjaWZpZXMgd2hhdCBwcm9ncmFtIHRvIHJ1biAo ZGVmYXVsdDog4oCYZGbigJkpLCB0aGUgbGF0dGVyIHdoaWNoCmFyZ3VtZW50cyB0byBwYXNzIHRv IHRoYXQgcHJvZ3JhbSAoZGVmYXVsdCBpcyBzeXN0ZW0tZGVwZW5kZW50KS4gIChPbgpNUy1XaW5k b3dzIGFuZCBNUy1ET1MsIHRoZXNlIHR3byB2YXJpYWJsZXMgYXJlIGlnbm9yZWQsIGFuZCBhbiBp bnRlcm5hbApFbWFjcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGlz IHVzZWQgaW5zdGVhZC4pCgogICBUaGUgY29tbWFuZCDigJhNLXggZGVsZXRlLWRpcmVjdG9yeeKA mSBwcm9tcHRzIGZvciBhIGRpcmVjdG9yeeKAmXMgbmFtZQp1c2luZyB0aGUgbWluaWJ1ZmZlciwg YW5kIGRlbGV0ZXMgdGhlIGRpcmVjdG9yeSBpZiBpdCBpcyBlbXB0eS4gIElmIHRoZQpkaXJlY3Rv cnkgaXMgbm90IGVtcHR5LCB5b3Ugd2lsbCBiZSBhc2tlZCB3aGV0aGVyIHlvdSB3YW50IHRvIGRl bGV0ZSBpdApyZWN1cnNpdmVseS4gIE9uIHN5c3RlbXMgdGhhdCBoYXZlIGEg4oCcVHJhc2jigJ0g KG9yIOKAnFJlY3ljbGUgQmlu4oCdKSBmZWF0dXJlLAp5b3UgY2FuIG1ha2UgdGhpcyBjb21tYW5k IG1vdmUgdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkgdG8gdGhlIFRyYXNoCmluc3RlYWQgb2YgZGVs ZXRpbmcgaXQgb3V0cmlnaHQsIGJ5IGNoYW5naW5nIHRoZSB2YXJpYWJsZQrigJhkZWxldGUtYnkt bW92aW5nLXRvLXRyYXNo4oCZIHRvIOKAmHTigJkuICAqTm90ZSBNaXNjIEZpbGUgT3BzOjosIGZv ciBtb3JlCmluZm9ybWF0aW9uIGFib3V0IHVzaW5nIHRoZSBUcmFzaC4KCgoqKiAxOC45IENvbXBh cmluZyBGaWxlcwoKVGhlIGNvbW1hbmQg4oCYTS14IGRpZmbigJkgcHJvbXB0cyBmb3IgdHdvIGZp bGUgbmFtZXMsIHVzaW5nIHRoZSBtaW5pYnVmZmVyLAphbmQgZGlzcGxheXMgdGhlIGRpZmZlcmVu Y2VzIGJldHdlZW4gdGhlIHR3byBmaWxlcyBpbiBhIGJ1ZmZlciBuYW1lZArigJgqZGlmZirigJku ICBUaGlzIHdvcmtzIGJ5IHJ1bm5pbmcgdGhlIOKAmGRpZmbigJkgcHJvZ3JhbSwgdXNpbmcgb3B0 aW9ucyB0YWtlbgpmcm9tIHRoZSB2YXJpYWJsZSDigJhkaWZmLXN3aXRjaGVz4oCZLiAgVGhlIHZh bHVlIG9mIOKAmGRpZmYtc3dpdGNoZXPigJkgc2hvdWxkCmJlIGEgc3RyaW5nOyB0aGUgZGVmYXVs dCBpcyDigJgiLXUi4oCZIHRvIHNwZWNpZnkgYSB1bmlmaWVkIGNvbnRleHQgZGlmZi4KKk5vdGUg RGlmZjogKGRpZmZ1dGlscylUb3AsIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSDigJhk aWZm4oCZCnByb2dyYW0uCgogICBUaGUgb3V0cHV0IG9mIHRoZSDigJhkaWZm4oCZIGNvbW1hbmQg aXMgc2hvd24gdXNpbmcgYSBtYWpvciBtb2RlIGNhbGxlZApEaWZmIG1vZGUuICAqTm90ZSBEaWZm IE1vZGU6Oi4KCiAgIEEgKG11Y2ggbW9yZSBzb3BoaXN0aWNhdGVkKSBhbHRlcm5hdGl2ZSBpcyDi gJhNLXggZWRpZmbigJkgKCpub3RlIEVkaWZmOgooZWRpZmYpVG9wLikuCgogICBUaGUgY29tbWFu ZCDigJhNLXggZGlmZi1iYWNrdXDigJkgY29tcGFyZXMgYSBzcGVjaWZpZWQgZmlsZSB3aXRoIGl0 cyBtb3N0CnJlY2VudCBiYWNrdXAuICBJZiB5b3Ugc3BlY2lmeSB0aGUgbmFtZSBvZiBhIGJhY2t1 cCBmaWxlLCDigJhkaWZmLWJhY2t1cOKAmQpjb21wYXJlcyBpdCB3aXRoIHRoZSBzb3VyY2UgZmls ZSB0aGF0IGl0IGlzIGEgYmFja3VwIG9mLiAgSW4gYWxsIG90aGVyCnJlc3BlY3RzLCB0aGlzIGJl aGF2ZXMgbGlrZSDigJhNLXggZGlmZuKAmS4KCiAgIFRoZSBjb21tYW5kIOKAmE0teCBkaWZmLWJ1 ZmZlci13aXRoLWZpbGXigJkgY29tcGFyZXMgYSBzcGVjaWZpZWQgYnVmZmVyCndpdGggaXRzIGNv cnJlc3BvbmRpbmcgZmlsZS4gIFRoaXMgc2hvd3MgeW91IHdoYXQgY2hhbmdlcyB5b3Ugd291bGQg bWFrZQp0byB0aGUgZmlsZSBpZiB5b3Ugc2F2ZSB0aGUgYnVmZmVyLgoKICAgVGhlIGNvbW1hbmQg 4oCYTS14IGNvbXBhcmUtd2luZG93c+KAmSBjb21wYXJlcyB0aGUgdGV4dCBpbiB0aGUgY3VycmVu dAp3aW5kb3cgd2l0aCB0aGF0IGluIHRoZSB3aW5kb3cgdGhhdCB3YXMgdGhlIHNlbGVjdGVkIHdp bmRvdyBiZWZvcmUgeW91CnNlbGVjdGVkIHRoZSBjdXJyZW50IG9uZS4gIChGb3IgbW9yZSBpbmZv cm1hdGlvbiBhYm91dCB3aW5kb3dzIGluIEVtYWNzLAoqbm90ZSBXaW5kb3dzOjouKSAgQ29tcGFy aXNvbiBzdGFydHMgYXQgcG9pbnQgaW4gZWFjaCB3aW5kb3csIGFmdGVyCnB1c2hpbmcgZWFjaCBp bml0aWFsIHBvaW50IHZhbHVlIG9uIHRoZSBtYXJrIHJpbmcgKCpub3RlIE1hcmsgUmluZzo6KSBp bgppdHMgcmVzcGVjdGl2ZSBidWZmZXIuICBUaGVuIGl0IG1vdmVzIHBvaW50IGZvcndhcmQgaW4g ZWFjaCB3aW5kb3csIG9uZQpjaGFyYWN0ZXIgYXQgYSB0aW1lLCB1bnRpbCBpdCByZWFjaGVzIGNo YXJhY3RlcnMgdGhhdCBkb27igJl0IG1hdGNoLiAgVGhlbgp0aGUgY29tbWFuZCBleGl0cy4KCiAg IElmIHBvaW50IGluIHRoZSB0d28gd2luZG93cyBpcyBmb2xsb3dlZCBieSBub24tbWF0Y2hpbmcg dGV4dCB3aGVuIHRoZQpjb21tYW5kIHN0YXJ0cywg4oCYTS14IGNvbXBhcmUtd2luZG93c+KAmSB0 cmllcyBoZXVyaXN0aWNhbGx5IHRvIGFkdmFuY2UgdXAKdG8gbWF0Y2hpbmcgdGV4dCBpbiB0aGUg dHdvIHdpbmRvd3MsIGFuZCB0aGVuIGV4aXRzLiAgU28gaWYgeW91IHVzZSDigJhNLXgKY29tcGFy ZS13aW5kb3dz4oCZIHJlcGVhdGVkbHksIGVhY2ggdGltZSBpdCBlaXRoZXIgc2tpcHMgb25lIG1h dGNoaW5nCnJhbmdlIG9yIGZpbmRzIHRoZSBzdGFydCBvZiBhbm90aGVyLgoKICAgV2l0aCBhIG51 bWVyaWMgYXJndW1lbnQsIOKAmGNvbXBhcmUtd2luZG93c+KAmSBpZ25vcmVzIGNoYW5nZXMgaW4K d2hpdGVzcGFjZS4gIElmIHRoZSB2YXJpYWJsZSDigJhjb21wYXJlLWlnbm9yZS1jYXNl4oCZIGlz IG5vbi3igJhuaWzigJksIHRoZQpjb21wYXJpc29uIGlnbm9yZXMgZGlmZmVyZW5jZXMgaW4gY2Fz ZSBhcyB3ZWxsLiAgSWYgdGhlIHZhcmlhYmxlCuKAmGNvbXBhcmUtaWdub3JlLXdoaXRlc3BhY2Xi gJkgaXMgbm9uLeKAmG5pbOKAmSwg4oCYY29tcGFyZS13aW5kb3dz4oCZIGJ5IGRlZmF1bHQKaWdu b3JlcyBjaGFuZ2VzIGluIHdoaXRlc3BhY2UsIGJ1dCBhIHByZWZpeCBhcmd1bWVudCB0dXJucyB0 aGF0IG9mZiBmb3IKdGhhdCBzaW5nbGUgaW52b2NhdGlvbiBvZiB0aGUgY29tbWFuZC4KCiAgIFlv dSBjYW4gdXNlIOKAmE0teCBzbWVyZ2UtbW9kZeKAmSB0byB0dXJuIG9uIFNtZXJnZSBtb2RlLCBh IG1pbm9yIG1vZGUKZm9yIGVkaXRpbmcgb3V0cHV0IGZyb20gdGhlIOKAmGRpZmYz4oCZIHByb2dy YW0uICBUaGlzIGlzIHR5cGljYWxseSB0aGUKcmVzdWx0IG9mIGEgZmFpbGVkIG1lcmdlIGZyb20g YSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHVwZGF0ZSBvdXRzaWRlClZDLCBkdWUgdG8gY29uZmxp Y3RpbmcgY2hhbmdlcyB0byBhIGZpbGUuICBTbWVyZ2UgbW9kZSBwcm92aWRlcyBjb21tYW5kcwp0 byByZXNvbHZlIGNvbmZsaWN0cyBieSBzZWxlY3Rpbmcgc3BlY2lmaWMgY2hhbmdlcy4KCiAgICpO b3RlIEVtZXJnZTo6LCBmb3IgdGhlIEVtZXJnZSBmYWNpbGl0eSwgd2hpY2ggcHJvdmlkZXMgYSBw b3dlcmZ1bAppbnRlcmZhY2UgZm9yIG1lcmdpbmcgZmlsZXMuCgoKKiogMTguMTAgRGlmZiBNb2Rl CgpEaWZmIG1vZGUgaXMgYSBtYWpvciBtb2RlIHVzZWQgZm9yIHRoZSBvdXRwdXQgb2Yg4oCYTS14 IGRpZmbigJkgYW5kIG90aGVyCnNpbWlsYXIgY29tbWFuZHMuICBUaGlzIGtpbmQgb2Ygb3V0cHV0 IGlzIGNhbGxlZCBhICJwYXRjaCIsIGJlY2F1c2UgaXQKY2FuIGJlIHBhc3NlZCB0byB0aGUg4oCY cGF0Y2jigJkgY29tbWFuZCB0byBhdXRvbWF0aWNhbGx5IGFwcGx5IHRoZQpzcGVjaWZpZWQgY2hh bmdlcy4gIFRvIHNlbGVjdCBEaWZmIG1vZGUgbWFudWFsbHksIHR5cGUg4oCYTS14IGRpZmYtbW9k ZeKAmS4KCiAgIFRoZSBjaGFuZ2VzIHNwZWNpZmllZCBpbiBhIHBhdGNoIGFyZSBncm91cGVkIGlu dG8gImh1bmtzIiwgd2hpY2ggYXJlCmNvbnRpZ3VvdXMgY2h1bmtzIG9mIHRleHQgdGhhdCBjb250 YWluIG9uZSBvciBtb3JlIGNoYW5nZWQgbGluZXMuICBIdW5rcwpjYW4gYWxzbyBpbmNsdWRlIHVu Y2hhbmdlZCBsaW5lcyB0byBwcm92aWRlIGNvbnRleHQgZm9yIHRoZSBjaGFuZ2VzLgpFYWNoIGh1 bmsgaXMgcHJlY2VkZWQgYnkgYSAiaHVuayBoZWFkZXIiLCB3aGljaCBzcGVjaWZpZXMgdGhlIG9s ZCBhbmQKbmV3IGxpbmUgbnVtYmVycyBhdCB3aGljaCB0aGUgaHVuayBvY2N1cnMuICBEaWZmIG1v ZGUgaGlnaGxpZ2h0cyBlYWNoCmh1bmsgaGVhZGVyLCB0byBkaXN0aW5ndWlzaCBpdCBmcm9tIHRo ZSBhY3R1YWwgY29udGVudHMgb2YgdGhlIGh1bmsuCgogICBZb3UgY2FuIGVkaXQgYSBEaWZmIG1v ZGUgYnVmZmVyIGxpa2UgYW55IG90aGVyIGJ1ZmZlci4gIChJZiBpdCBpcwpyZWFkLW9ubHksIHlv dSBuZWVkIHRvIG1ha2UgaXQgd3JpdGFibGUgZmlyc3QuICAqTm90ZSBNaXNjIEJ1ZmZlcjo6LikK V2hlbmV2ZXIgeW91IGNoYW5nZSBhIGh1bmssIERpZmYgbW9kZSBhdHRlbXB0cyB0byBhdXRvbWF0 aWNhbGx5IGNvcnJlY3QKdGhlIGxpbmUgbnVtYmVycyBpbiB0aGUgaHVuayBoZWFkZXJzLCB0byBl bnN1cmUgdGhhdCB0aGUgcGF0Y2ggcmVtYWlucwpjb3JyZWN0LiAgVG8gZGlzYWJsZSBhdXRvbWF0 aWMgbGluZSBudW1iZXIgY29ycmVjdGlvbiwgY2hhbmdlIHRoZQp2YXJpYWJsZSDigJhkaWZmLXVw ZGF0ZS1vbi10aGUtZmx54oCZIHRvIOKAmG5pbOKAmS4KCiAgIERpZmYgbW9kZSB0cmVhdHMgZWFj aCBodW5rIGFzIGFuIGVycm9yIG1lc3NhZ2UsIHNpbWlsYXIgdG8KQ29tcGlsYXRpb24gbW9kZS4g IFRodXMsIHlvdSBjYW4gdXNlIGNvbW1hbmRzIHN1Y2ggYXMg4oCYQy14IGDigJkgdG8gdmlzaXQK dGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGxvY2F0aW9ucy4gICpOb3RlIENvbXBpbGF0aW9uIE1v ZGU6Oi4KCiAgIEluIGFkZGl0aW9uLCBEaWZmIG1vZGUgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBj b21tYW5kcyB0byBuYXZpZ2F0ZSwKbWFuaXB1bGF0ZSBhbmQgYXBwbHkgcGFydHMgb2YgcGF0Y2hl czoKCuKAmE0tbuKAmQogICAgIE1vdmUgdG8gdGhlIG5leHQgaHVuay1zdGFydCAo4oCYZGlmZi1o dW5rLW5leHTigJkpLgoKICAgICBUaGlzIGNvbW1hbmQgaGFzIGEgc2lkZSBlZmZlY3Q6IGl0ICJy ZWZpbmVzIiB0aGUgaHVuayB5b3UgbW92ZSB0bywKICAgICBoaWdobGlnaHRpbmcgaXRzIGNoYW5n ZXMgd2l0aCBiZXR0ZXIgZ3JhbnVsYXJpdHkuICBUbyBkaXNhYmxlIHRoaXMKICAgICBmZWF0dXJl LCB0eXBlIOKAmE0teCBkaWZmLWF1dG8tcmVmaW5lLW1vZGXigJkgdG8gdG9nZ2xlIG9mZiB0aGUg bWlub3IKICAgICBtb2RlIERpZmYgQXV0by1SZWZpbmUgbW9kZS4gIFRvIGRpc2FibGUgRGlmZiBB dXRvLVJlZmluZSBtb2RlIGJ5CiAgICAgZGVmYXVsdCwgYWRkIHRoaXMgdG8geW91ciBpbml0IGZp bGUgKCpub3RlIEhvb2tzOjopOgoKICAgICAgICAgIChhZGQtaG9vayAnZGlmZi1tb2RlLWhvb2sK ICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpIChkaWZmLWF1dG8tcmVmaW5lLW1vZGUgLTEp KSkKCuKAmE0tcOKAmQogICAgIE1vdmUgdG8gdGhlIHByZXZpb3VzIGh1bmstc3RhcnQgKOKAmGRp ZmYtaHVuay1wcmV24oCZKS4gIExpa2Ug4oCYTS1u4oCZLAogICAgIHRoaXMgaGFzIHRoZSBzaWRl LWVmZmVjdCBvZiByZWZpbmluZyB0aGUgaHVuayB5b3UgbW92ZSB0bywgdW5sZXNzCiAgICAgeW91 IGRpc2FibGUgRGlmZiBBdXRvLVJlZmluZSBtb2RlLgoK4oCYTS194oCZCiAgICAgTW92ZSB0byB0 aGUgbmV4dCBmaWxlLXN0YXJ0LCBpbiBhIG11bHRpLWZpbGUgcGF0Y2gKICAgICAo4oCYZGlmZi1m aWxlLW5leHTigJkpLgoK4oCYTS174oCZCiAgICAgTW92ZSB0byB0aGUgcHJldmlvdXMgZmlsZS1z dGFydCwgaW4gYSBtdWx0aS1maWxlIHBhdGNoCiAgICAgKOKAmGRpZmYtZmlsZS1wcmV24oCZKS4K CuKAmE0ta+KAmQogICAgIEtpbGwgdGhlIGh1bmsgYXQgcG9pbnQgKOKAmGRpZmYtaHVuay1raWxs 4oCZKS4KCuKAmE0tS+KAmQogICAgIEluIGEgbXVsdGktZmlsZSBwYXRjaCwga2lsbCB0aGUgY3Vy cmVudCBmaWxlIHBhcnQuCiAgICAgKOKAmGRpZmYtZmlsZS1raWxs4oCZKS4KCuKAmEMtYyBDLWHi gJkKICAgICBBcHBseSB0aGlzIGh1bmsgdG8gaXRzIHRhcmdldCBmaWxlICjigJhkaWZmLWFwcGx5 LWh1bmvigJkpLiAgV2l0aCBhCiAgICAgcHJlZml4IGFyZ3VtZW50IG9mIOKAmEMtdeKAmSwgcmV2 ZXJ0IHRoaXMgaHVuay4KCuKAmEMtYyBDLWLigJkKICAgICBIaWdobGlnaHQgdGhlIGNoYW5nZXMg b2YgdGhlIGh1bmsgYXQgcG9pbnQgd2l0aCBhIGZpbmVyIGdyYW51bGFyaXR5CiAgICAgKOKAmGRp ZmYtcmVmaW5lLWh1bmvigJkpLiAgVGhpcyBhbGxvd3MgeW91IHRvIHNlZSBleGFjdGx5IHdoaWNo IHBhcnRzCiAgICAgb2YgZWFjaCBjaGFuZ2VkIGxpbmUgd2VyZSBhY3R1YWxseSBjaGFuZ2VkLgoK 4oCYQy1jIEMtY+KAmQogICAgIEdvIHRvIHRoZSBzb3VyY2UgZmlsZSBhbmQgbGluZSBjb3JyZXNw b25kaW5nIHRvIHRoaXMgaHVuawogICAgICjigJhkaWZmLWdvdG8tc291cmNl4oCZKS4KCuKAmEMt YyBDLWXigJkKICAgICBTdGFydCBhbiBFZGlmZiBzZXNzaW9uIHdpdGggdGhlIHBhdGNoICjigJhk aWZmLWVkaWZmLXBhdGNo4oCZKS4gICpOb3RlCiAgICAgRWRpZmY6IChlZGlmZilUb3AuCgrigJhD LWMgQy1u4oCZCiAgICAgUmVzdHJpY3QgdGhlIHZpZXcgdG8gdGhlIGN1cnJlbnQgaHVuayAo4oCY ZGlmZi1yZXN0cmljdC12aWV34oCZKS4KICAgICAqTm90ZSBOYXJyb3dpbmc6Oi4gIFdpdGggYSBw cmVmaXggYXJndW1lbnQgb2Yg4oCYQy114oCZLCByZXN0cmljdCB0aGUKICAgICB2aWV3IHRvIHRo ZSBjdXJyZW50IGZpbGUgb2YgYSBtdWx0aXBsZS1maWxlIHBhdGNoLiAgVG8gd2lkZW4gYWdhaW4s CiAgICAgdXNlIOKAmEMteCBuIHfigJkgKOKAmHdpZGVu4oCZKS4KCuKAmEMtYyBDLXLigJkKICAg ICBSZXZlcnNlIHRoZSBkaXJlY3Rpb24gb2YgY29tcGFyaXNvbiBmb3IgdGhlIGVudGlyZSBidWZm ZXIKICAgICAo4oCYZGlmZi1yZXZlcnNlLWRpcmVjdGlvbuKAmSkuCgrigJhDLWMgQy1z4oCZCiAg ICAgU3BsaXQgdGhlIGh1bmsgYXQgcG9pbnQgKOKAmGRpZmYtc3BsaXQtaHVua+KAmSkuICBUaGlz IGlzIGZvciBtYW51YWxseQogICAgIGVkaXRpbmcgcGF0Y2hlcywgYW5kIG9ubHkgd29ya3Mgd2l0 aCB0aGUgInVuaWZpZWQgZGlmZiBmb3JtYXQiCiAgICAgcHJvZHVjZWQgYnkgdGhlIOKAmC114oCZ IG9yIOKAmC0tdW5pZmllZOKAmSBvcHRpb25zIHRvIHRoZSDigJhkaWZm4oCZIHByb2dyYW0uCiAg ICAgSWYgeW91IG5lZWQgdG8gc3BsaXQgYSBodW5rIGluIHRoZSAiY29udGV4dCBkaWZmIGZvcm1h dCIgcHJvZHVjZWQKICAgICBieSB0aGUg4oCYLWPigJkgb3Ig4oCYLS1jb250ZXh04oCZIG9wdGlv bnMgdG8g4oCYZGlmZuKAmSwgZmlyc3QgY29udmVydCB0aGUKICAgICBidWZmZXIgdG8gdGhlIHVu aWZpZWQgZGlmZiBmb3JtYXQgd2l0aCDigJhDLWMgQy114oCZLgoK4oCYQy1jIEMtZOKAmQogICAg IENvbnZlcnQgdGhlIGVudGlyZSBidWZmZXIgdG8gdGhlICJjb250ZXh0IGRpZmYgZm9ybWF0Igog ICAgICjigJhkaWZmLXVuaWZpZWQtPmNvbnRleHTigJkpLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVu dCwgY29udmVydCBvbmx5CiAgICAgdGhlIHRleHQgd2l0aGluIHRoZSByZWdpb24uCgrigJhDLWMg Qy114oCZCiAgICAgQ29udmVydCB0aGUgZW50aXJlIGJ1ZmZlciB0byB1bmlmaWVkIGRpZmYgZm9y bWF0CiAgICAgKOKAmGRpZmYtY29udGV4dC0+dW5pZmllZOKAmSkuICBXaXRoIGEgcHJlZml4IGFy Z3VtZW50LCBjb252ZXJ0IHVuaWZpZWQKICAgICBmb3JtYXQgdG8gY29udGV4dCBmb3JtYXQuICBX aGVuIHRoZSBtYXJrIGlzIGFjdGl2ZSwgY29udmVydCBvbmx5CiAgICAgdGhlIHRleHQgd2l0aGlu IHRoZSByZWdpb24uCgrigJhDLWMgQy134oCZCiAgICAgUmUtZGlmZiB0aGUgY3VycmVudCBodW5r LCBkaXNyZWdhcmRpbmcgY2hhbmdlcyBpbiB3aGl0ZXNwYWNlCiAgICAgKOKAmGRpZmYtaWdub3Jl LXdoaXRlc3BhY2UtaHVua+KAmSkuCgrigJhDLXggNCBB4oCZCiAgICAgR2VuZXJhdGUgYSBDaGFu Z2VMb2cgZW50cnksIGxpa2Ug4oCYQy14IDQgYeKAmSBkb2VzICgqbm90ZSBDaGFuZ2UKICAgICBM b2c6OiksIGZvciBlYWNoIG9uZSBvZiB0aGUgaHVua3MKICAgICAo4oCYZGlmZi1hZGQtY2hhbmdl LWxvZy1lbnRyaWVzLW90aGVyLXdpbmRvd+KAmSkuICBUaGlzIGNyZWF0ZXMgYQogICAgIHNrZWxl dG9uIG9mIHRoZSBsb2cgb2YgY2hhbmdlcyB0aGF0IHlvdSBjYW4gbGF0ZXIgZmlsbCB3aXRoIHRo ZQogICAgIGFjdHVhbCBkZXNjcmlwdGlvbnMgb2YgdGhlIGNoYW5nZXMuICDigJhDLXggNCBh4oCZ IGl0c2VsZiBpbiBEaWZmIG1vZGUKICAgICBvcGVyYXRlcyBvbiBiZWhhbGYgb2YgdGhlIGN1cnJl bnQgaHVua+KAmXMgZmlsZSwgYnV0IGdldHMgdGhlCiAgICAgZnVuY3Rpb24gbmFtZSBmcm9tIHRo ZSBwYXRjaCBpdHNlbGYuICBUaGlzIGlzIHVzZWZ1bCBmb3IgbWFraW5nIGxvZwogICAgIGVudHJp ZXMgZm9yIGZ1bmN0aW9ucyB0aGF0IGFyZSBkZWxldGVkIGJ5IHRoZSBwYXRjaC4KCiAgIFBhdGNo ZXMgc29tZXRpbWVzIGluY2x1ZGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBvbiBtb2RpZmllZCBsaW5l cywgYXMKYW4gdW5pbnRlbnRpb25hbCBhbmQgdW5kZXNpcmVkIGNoYW5nZS4gIFRoZXJlIGFyZSB0 d28gd2F5cyB0byBkZWFsIHdpdGgKdGhpcyBwcm9ibGVtLiAgRmlyc3RseSwgaWYgeW91IGVuYWJs ZSBXaGl0ZXNwYWNlIG1vZGUgaW4gYSBEaWZmIGJ1ZmZlcgooKm5vdGUgVXNlbGVzcyBXaGl0ZXNw YWNlOjopLCBpdCBhdXRvbWF0aWNhbGx5IGhpZ2hsaWdodHMgdHJhaWxpbmcKd2hpdGVzcGFjZSBp biBtb2RpZmllZCBsaW5lcy4gIFNlY29uZGx5LCB5b3UgY2FuIHVzZSB0aGUgY29tbWFuZCDigJhN LXgKZGlmZi1kZWxldGUtdHJhaWxpbmctd2hpdGVzcGFjZeKAmSwgd2hpY2ggc2VhcmNoZXMgZm9y IHRyYWlsaW5nIHdoaXRlc3BhY2UKaW4gdGhlIGxpbmVzIG1vZGlmaWVkIGJ5IHRoZSBwYXRjaCwg YW5kIHJlbW92ZXMgdGhhdCB3aGl0ZXNwYWNlIGluIGJvdGgKdGhlIHBhdGNoIGFuZCB0aGUgcGF0 Y2hlZCBzb3VyY2UgZmlsZShzKS4gIFRoaXMgY29tbWFuZCBkb2VzIG5vdCBzYXZlCnRoZSBtb2Rp ZmljYXRpb25zIHRoYXQgaXQgbWFrZXMsIHNvIHlvdSBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gc2F2 ZSB0aGUKY2hhbmdlcyAodGhlIGxpc3Qgb2YgbW9kaWZpZWQgZmlsZXMgaXMgZGlzcGxheWVkIGlu IHRoZSBlY2hvIGFyZWEpLgpXaXRoIGEgcHJlZml4IGFyZ3VtZW50LCBpdCB0cmllcyB0byBtb2Rp ZnkgdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlcwpyYXRoZXIgdGhhbiB0aGUgcGF0Y2hlZCBzb3Vy Y2UgZmlsZXMuCgoKKiogMTguMTEgQ29weWluZywgTmFtaW5nIGFuZCBSZW5hbWluZyBGaWxlcwoK RW1hY3MgaGFzIHNldmVyYWwgY29tbWFuZHMgZm9yIGNvcHlpbmcsIG5hbWluZywgYW5kIHJlbmFt aW5nIGZpbGVzLiAgQWxsCm9mIHRoZW0gcmVhZCB0d28gZmlsZSBuYW1lcywgT0xEIChvciBUQVJH RVQpIGFuZCBORVcsIHVzaW5nIHRoZQptaW5pYnVmZmVyLCBhbmQgdGhlbiBjb3B5IG9yIGFkanVz dCBhIGZpbGXigJlzIG5hbWUgYWNjb3JkaW5nbHk7IHRoZXkgZG8Kbm90IGFjY2VwdCB3aWxkY2Fy ZCBmaWxlIG5hbWVzLgoKICAgSW4gYWxsIHRoZXNlIGNvbW1hbmRzLCBpZiB0aGUgYXJndW1lbnQg TkVXIGlzIGp1c3QgYSBkaXJlY3RvcnkgbmFtZQooKm5vdGUgKGVsaXNwKURpcmVjdG9yeSBOYW1l czo6KSwgdGhlIHJlYWwgbmV3IG5hbWUgaXMgaW4gdGhhdApkaXJlY3RvcnksIHdpdGggdGhlIHNh bWUgbm9uLWRpcmVjdG9yeSBjb21wb25lbnQgYXMgT0xELiAgRm9yIGV4YW1wbGUsCnRoZSBjb21t YW5kIOKAmE0teCByZW5hbWUtZmlsZSA8UkVUPiB+L2ZvbyA8UkVUPiAvdG1wLyA8UkVUPuKAmSBy ZW5hbWVzCuKAmH4vZm9v4oCZIHRvIOKAmC90bXAvZm9v4oCZLiAgT24gR05VIGFuZCBvdGhlciBQ T1NJWC1saWtlIHN5c3RlbXMsIGRpcmVjdG9yeQpuYW1lcyBlbmQgaW4g4oCYL+KAmS4KCiAgIEFs bCB0aGVzZSBjb21tYW5kcyBhc2sgZm9yIGNvbmZpcm1hdGlvbiB3aGVuIHRoZSBuZXcgZmlsZSBu YW1lCmFscmVhZHkgZXhpc3RzLgoKICAg4oCYTS14IGNvcHktZmlsZeKAmSBjb3BpZXMgdGhlIGNv bnRlbnRzIG9mIHRoZSBmaWxlIE9MRCB0byB0aGUgZmlsZSBORVcuCgogICDigJhNLXggY29weS1k aXJlY3RvcnnigJkgY29waWVzIGRpcmVjdG9yaWVzLCBzaW1pbGFyIHRvIHRoZSDigJhjcCAtcuKA mSBzaGVsbApjb21tYW5kLiAgSWYgTkVXIGlzIGEgZGlyZWN0b3J5IG5hbWUsIGl0IGNyZWF0ZXMg YSBjb3B5IG9mIHRoZSBPTEQKZGlyZWN0b3J5IGFuZCBwdXRzIGl0IGluIE5FVy4gIE90aGVyd2lz ZSBpdCBjb3BpZXMgYWxsIHRoZSBjb250ZW50cyBvZgpPTEQgaW50byBhIG5ldyBkaXJlY3Rvcnkg bmFtZWQgTkVXLgoKICAg4oCYTS14IHJlbmFtZS1maWxl4oCZIHJlbmFtZXMgZmlsZSBPTEQgYXMg TkVXLiAgSWYgdGhlIGZpbGUgbmFtZSBORVcKYWxyZWFkeSBleGlzdHMsIHlvdSBtdXN0IGNvbmZp cm0gd2l0aCDigJh5ZXPigJkgb3IgcmVuYW1pbmcgaXMgbm90IGRvbmU7CnRoaXMgaXMgYmVjYXVz ZSByZW5hbWluZyBjYXVzZXMgdGhlIG9sZCBtZWFuaW5nIG9mIHRoZSBuYW1lIE5FVyB0byBiZQps b3N0LiAgSWYgT0xEIGFuZCBORVcgYXJlIG9uIGRpZmZlcmVudCBmaWxlIHN5c3RlbXMsIHRoZSBm aWxlIE9MRCBpcwpjb3BpZWQgYW5kIGRlbGV0ZWQuCgogICBJZiBhIGZpbGUgaXMgdW5kZXIgdmVy c2lvbiBjb250cm9sICgqbm90ZSBWZXJzaW9uIENvbnRyb2w6OiksIHlvdQpzaG91bGQgcmVuYW1l IGl0IHVzaW5nIOKAmE0teCB2Yy1yZW5hbWUtZmlsZeKAmSBpbnN0ZWFkIG9mCuKAmE0teCByZW5h bWUtZmlsZeKAmS4gICpOb3RlIFZDIERlbGV0ZS9SZW5hbWU6Oi4KCiAgIOKAmE0teCBhZGQtbmFt ZS10by1maWxl4oCZIGFkZHMgYW4gYWRkaXRpb25hbCBuYW1lIHRvIGFuIGV4aXN0aW5nIGZpbGUK d2l0aG91dCByZW1vdmluZyB0aGUgb2xkIG5hbWUuICBUaGUgbmV3IG5hbWUgaXMgY3JlYXRlZCBh cyBhIGhhcmQgbGluawp0byB0aGUgZXhpc3RpbmcgZmlsZS4gIFRoZSBuZXcgbmFtZSBtdXN0IGJl bG9uZyBvbiB0aGUgc2FtZSBmaWxlIHN5c3RlbQp0aGF0IHRoZSBmaWxlIGlzIG9uLiAgT24gTVMt V2luZG93cywgdGhpcyBjb21tYW5kIHdvcmtzIG9ubHkgaWYgdGhlIGZpbGUKcmVzaWRlcyBpbiBh biBOVEZTIGZpbGUgc3lzdGVtLiAgT24gTVMtRE9TLCBhbmQgc29tZSByZW1vdGUgc3lzdGVtCnR5 cGVzLCBpdCB3b3JrcyBieSBjb3B5aW5nIHRoZSBmaWxlLgoKICAg4oCYTS14IG1ha2Utc3ltYm9s aWMtbGlua+KAmSBjcmVhdGVzIGEgc3ltYm9saWMgbGluayBuYW1lZCBORVcsIHdoaWNoCnBvaW50 cyBhdCBUQVJHRVQuICBUaGUgZWZmZWN0IGlzIHRoYXQgZnV0dXJlIGF0dGVtcHRzIHRvIG9wZW4g ZmlsZSBORVcKd2lsbCByZWZlciB0byB3aGF0ZXZlciBmaWxlIGlzIG5hbWVkIFRBUkdFVCBhdCB0 aGUgdGltZSB0aGUgb3BlbmluZyBpcwpkb25lLCBvciB3aWxsIGdldCBhbiBlcnJvciBpZiB0aGUg bmFtZSBUQVJHRVQgaXMgbm9uZXhpc3RlbnQgYXQgdGhhdAp0aW1lLiAgVGhpcyBjb21tYW5kIGRv ZXMgbm90IGV4cGFuZCB0aGUgYXJndW1lbnQgVEFSR0VULCBzbyB0aGF0IGl0CmFsbG93cyB5b3Ug dG8gc3BlY2lmeSBhIHJlbGF0aXZlIG5hbWUgYXMgdGhlIHRhcmdldCBvZiB0aGUgbGluay4KSG93 ZXZlciwgdGhpcyBjb21tYW5kIGRvZXMgZXhwYW5kIGxlYWRpbmcg4oCYfuKAmSBpbiBUQVJHRVQg c28gdGhhdCB5b3UgY2FuCmVhc2lseSBzcGVjaWZ5IGhvbWUgZGlyZWN0b3JpZXMsIGFuZCBzdHJp cHMgbGVhZGluZyDigJgvOuKAmSBzbyB0aGF0IHlvdSBjYW4Kc3BlY2lmeSByZWxhdGl2ZSBuYW1l cyBiZWdpbm5pbmcgd2l0aCBsaXRlcmFsIOKAmH7igJkgb3Ig4oCYLzrigJkuICAqTm90ZSBRdW90 ZWQKRmlsZSBOYW1lczo6LiAgT24gTVMtV2luZG93cywgdGhpcyBjb21tYW5kIHdvcmtzIG9ubHkg b24gTVMgV2luZG93cwpWaXN0YSBhbmQgbGF0ZXIuICBXaGVuIE5FVyBpcyByZW1vdGUsIGl0IHdv cmtzIGRlcGVuZGluZyBvbiB0aGUgc3lzdGVtCnR5cGUuCgoKKiogMTguMTIgTWlzY2VsbGFuZW91 cyBGaWxlIE9wZXJhdGlvbnMKCkVtYWNzIGhhcyBjb21tYW5kcyBmb3IgcGVyZm9ybWluZyBtYW55 IG90aGVyIG9wZXJhdGlvbnMgb24gZmlsZXMuICBBbGwKb3BlcmF0ZSBvbiBvbmUgZmlsZTsgdGhl eSBkbyBub3QgYWNjZXB0IHdpbGRjYXJkIGZpbGUgbmFtZXMuCgogICDigJhNLXggZGVsZXRlLWZp bGXigJkgcHJvbXB0cyBmb3IgYSBmaWxlIGFuZCBkZWxldGVzIGl0LiAgSWYgeW91IGFyZQpkZWxl dGluZyBtYW55IGZpbGVzIGluIG9uZSBkaXJlY3RvcnksIGl0IG1heSBiZSBtb3JlIGNvbnZlbmll bnQgdG8gdXNlCkRpcmVkIHJhdGhlciB0aGFuIOKAmGRlbGV0ZS1maWxl4oCZLiAgKk5vdGUgRGly ZWQgRGVsZXRpb246Oi4KCiAgIOKAmE0teCBtb3ZlLWZpbGUtdG8tdHJhc2jigJkgbW92ZXMgYSBm aWxlIGludG8gdGhlIHN5c3RlbSAiVHJhc2giIChvcgoiUmVjeWNsZSBCaW4iKS4gIFRoaXMgaXMg YSBmYWNpbGl0eSBhdmFpbGFibGUgb24gbW9zdCBvcGVyYXRpbmcgc3lzdGVtczsKZmlsZXMgdGhh dCBhcmUgbW92ZWQgaW50byB0aGUgVHJhc2ggY2FuIGJlIGJyb3VnaHQgYmFjayBsYXRlciBpZiB5 b3UKY2hhbmdlIHlvdXIgbWluZC4KCiAgIEJ5IGRlZmF1bHQsIEVtYWNzIGRlbGV0aW9uIGNvbW1h bmRzIGRvIF9ub3RfIHVzZSB0aGUgVHJhc2guICBUbyB1c2UKdGhlIFRyYXNoICh3aGVuIGl0IGlz IGF2YWlsYWJsZSkgZm9yIGNvbW1vbiBkZWxldGlvbiBjb21tYW5kcywgY2hhbmdlCnRoZSB2YXJp YWJsZSDigJhkZWxldGUtYnktbW92aW5nLXRvLXRyYXNo4oCZIHRvIOKAmHTigJkuICBUaGlzIGFm ZmVjdHMgdGhlCmNvbW1hbmRzIOKAmE0teCBkZWxldGUtZmlsZeKAmSBhbmQg4oCYTS14IGRlbGV0 ZS1kaXJlY3RvcnnigJkgKCpub3RlCkRpcmVjdG9yaWVzOjopLCBhcyB3ZWxsIGFzIHRoZSBkZWxl dGlvbiBjb21tYW5kcyBpbiBEaXJlZCAoKm5vdGUgRGlyZWQKRGVsZXRpb246OikuICBTdXBwbHlp bmcgYSBwcmVmaXggYXJndW1lbnQgdG8g4oCYTS14IGRlbGV0ZS1maWxl4oCZIG9yIOKAmE0teApk ZWxldGUtZGlyZWN0b3J54oCZIG1ha2VzIHRoZW0gZGVsZXRlIG91dHJpZ2h0LCBpbnN0ZWFkIG9m IHVzaW5nIHRoZQpUcmFzaCwgcmVnYXJkbGVzcyBvZiDigJhkZWxldGUtYnktbW92aW5nLXRvLXRy YXNo4oCZLgoKICAgSWYgYSBmaWxlIGlzIHVuZGVyIHZlcnNpb24gY29udHJvbCAoKm5vdGUgVmVy c2lvbiBDb250cm9sOjopLCB5b3UKc2hvdWxkIGRlbGV0ZSBpdCB1c2luZyDigJhNLXggdmMtZGVs ZXRlLWZpbGXigJkgaW5zdGVhZCBvZiDigJhNLXgKZGVsZXRlLWZpbGXigJkuICAqTm90ZSBWQyBE ZWxldGUvUmVuYW1lOjouCgogICDigJhNLXggaW5zZXJ0LWZpbGXigJkgKGFsc28g4oCYQy14IGni gJkpIGluc2VydHMgYSBjb3B5IG9mIHRoZSBjb250ZW50cyBvZgp0aGUgc3BlY2lmaWVkIGZpbGUg aW50byB0aGUgY3VycmVudCBidWZmZXIgYXQgcG9pbnQsIGxlYXZpbmcgcG9pbnQKdW5jaGFuZ2Vk IGJlZm9yZSB0aGUgY29udGVudHMuICBUaGUgcG9zaXRpb24gYWZ0ZXIgdGhlIGluc2VydGVkIGNv bnRlbnRzCmlzIGFkZGVkIHRvIHRoZSBtYXJrIHJpbmcsIHdpdGhvdXQgYWN0aXZhdGluZyB0aGUg bWFyayAoKm5vdGUgTWFyawpSaW5nOjopLgoKICAg4oCYTS14IGluc2VydC1maWxlLWxpdGVyYWxs eeKAmSBpcyBsaWtlIOKAmE0teCBpbnNlcnQtZmlsZeKAmSwgZXhjZXB0IHRoZQpmaWxlIGlzIGlu c2VydGVkIGxpdGVyYWxseTogaXQgaXMgdHJlYXRlZCBhcyBhIHNlcXVlbmNlIG9mIEFTQ0lJCmNo YXJhY3RlcnMgd2l0aCBubyBzcGVjaWFsIGVuY29kaW5nIG9yIGNvbnZlcnNpb24sIHNpbWlsYXIg dG8gdGhlIOKAmE0teApmaW5kLWZpbGUtbGl0ZXJhbGx54oCZIGNvbW1hbmQgKCpub3RlIFZpc2l0 aW5nOjopLgoKICAg4oCYTS14IHdyaXRlLXJlZ2lvbuKAmSBpcyB0aGUgaW52ZXJzZSBvZiDigJhN LXggaW5zZXJ0LWZpbGXigJk7IGl0IGNvcGllcyB0aGUKY29udGVudHMgb2YgdGhlIHJlZ2lvbiBp bnRvIHRoZSBzcGVjaWZpZWQgZmlsZS4gIOKAmE0teCBhcHBlbmQtdG8tZmlsZeKAmQphZGRzIHRo ZSB0ZXh0IG9mIHRoZSByZWdpb24gdG8gdGhlIGVuZCBvZiB0aGUgc3BlY2lmaWVkIGZpbGUuICAq Tm90ZQpBY2N1bXVsYXRpbmcgVGV4dDo6LiAgVGhlIHZhcmlhYmxlIOKAmHdyaXRlLXJlZ2lvbi1p bmhpYml0LWZzeW5j4oCZIGFwcGxpZXMKdG8gdGhlc2UgY29tbWFuZHMsIGFzIHdlbGwgYXMgc2F2 aW5nIGZpbGVzOyBzZWUgKm5vdGUgQ3VzdG9taXplIFNhdmU6Oi4KCiAgIOKAmE0teCBzZXQtZmls ZS1tb2Rlc+KAmSByZWFkcyBhIGZpbGUgbmFtZSBmb2xsb3dlZCBieSBhICJmaWxlIG1vZGUiLCBh bmQKYXBwbGllcyB0aGF0IGZpbGUgbW9kZSB0byB0aGUgc3BlY2lmaWVkIGZpbGUuICBGaWxlIG1v ZGVzLCBhbHNvIGNhbGxlZAoiZmlsZSBwZXJtaXNzaW9ucyIsIGRldGVybWluZSB3aGV0aGVyIGEg ZmlsZSBjYW4gYmUgcmVhZCwgd3JpdHRlbiB0bywgb3IKZXhlY3V0ZWQsIGFuZCBieSB3aG9tLiAg VGhpcyBjb21tYW5kIHJlYWRzIGZpbGUgbW9kZXMgdXNpbmcgdGhlIHNhbWUKc3ltYm9saWMgb3Ig b2N0YWwgZm9ybWF0IGFjY2VwdGVkIGJ5IHRoZSDigJhjaG1vZOKAmSBjb21tYW5kOyBmb3IgaW5z dGFuY2UsCuKAmHUreOKAmSBtZWFucyB0byBhZGQgZXhlY3V0aW9uIHBlcm1pc3Npb24gZm9yIHRo ZSB1c2VyIHdobyBvd25zIHRoZSBmaWxlLgpJdCBoYXMgbm8gZWZmZWN0IG9uIG9wZXJhdGluZyBz eXN0ZW1zIHRoYXQgZG8gbm90IHN1cHBvcnQgZmlsZSBtb2Rlcy4K4oCYY2htb2TigJkgaXMgYSBj b252ZW5pZW5jZSBhbGlhcyBmb3IgdGhpcyBmdW5jdGlvbi4KCgoqKiAxOC4xMyBBY2Nlc3Npbmcg Q29tcHJlc3NlZCBGaWxlcwoKRW1hY3MgYXV0b21hdGljYWxseSB1bmNvbXByZXNzZXMgY29tcHJl c3NlZCBmaWxlcyB3aGVuIHlvdSB2aXNpdCB0aGVtLAphbmQgYXV0b21hdGljYWxseSByZWNvbXBy ZXNzZXMgdGhlbSBpZiB5b3UgYWx0ZXIgdGhlbSBhbmQgc2F2ZSB0aGVtLgpFbWFjcyByZWNvZ25p emVzIGNvbXByZXNzZWQgZmlsZXMgYnkgdGhlaXIgZmlsZSBuYW1lcy4gIEZpbGUgbmFtZXMKZW5k aW5nIGluIOKAmC5neuKAmSBpbmRpY2F0ZSBhIGZpbGUgY29tcHJlc3NlZCB3aXRoIOKAmGd6aXDi gJkuICBPdGhlciBlbmRpbmdzCmluZGljYXRlIG90aGVyIGNvbXByZXNzaW9uIHByb2dyYW1zLgoK ICAgQXV0b21hdGljIHVuY29tcHJlc3Npb24gYW5kIGNvbXByZXNzaW9uIGFwcGx5IHRvIGFsbCB0 aGUgb3BlcmF0aW9ucwppbiB3aGljaCBFbWFjcyB1c2VzIHRoZSBjb250ZW50cyBvZiBhIGZpbGUu ICBUaGlzIGluY2x1ZGVzIHZpc2l0aW5nIGl0LApzYXZpbmcgaXQsIGluc2VydGluZyBpdHMgY29u dGVudHMgaW50byBhIGJ1ZmZlciwgbG9hZGluZyBpdCwgYW5kIGJ5dGUKY29tcGlsaW5nIGl0LgoK ICAgVG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUsIHR5cGUgdGhlIGNvbW1hbmQg4oCYTS14CmF1dG8t Y29tcHJlc3Npb24tbW9kZeKAmS4gIFlvdSBjYW4gZGlzYWJsZSBpdCBwZXJtYW5lbnRseSBieSBj dXN0b21pemluZwp0aGUgdmFyaWFibGUg4oCYYXV0by1jb21wcmVzc2lvbi1tb2Rl4oCZLgoKCioq IDE4LjE0IEZpbGUgQXJjaGl2ZXMKCkEgZmlsZSB3aG9zZSBuYW1lIGVuZHMgaW4g4oCYLnRhcuKA mSBpcyBub3JtYWxseSBhbiAiYXJjaGl2ZSIgbWFkZSBieSB0aGUK4oCYdGFy4oCZIHByb2dyYW0u ICBFbWFjcyB2aWV3cyB0aGVzZSBmaWxlcyBpbiBhIHNwZWNpYWwgbW9kZSBjYWxsZWQgVGFyCm1v ZGUgd2hpY2ggcHJvdmlkZXMgYSBEaXJlZC1saWtlIGxpc3Qgb2YgdGhlIGNvbnRlbnRzICgqbm90 ZSBEaXJlZDo6KS4KWW91IGNhbiBtb3ZlIGFyb3VuZCB0aHJvdWdoIHRoZSBsaXN0IGp1c3QgYXMg eW91IHdvdWxkIGluIERpcmVkLCBhbmQKdmlzaXQgdGhlIHN1YmZpbGVzIGNvbnRhaW5lZCBpbiB0 aGUgYXJjaGl2ZS4gIEhvd2V2ZXIsIG5vdCBhbGwgRGlyZWQKY29tbWFuZHMgYXJlIGF2YWlsYWJs ZSBpbiBUYXIgbW9kZS4KCiAgIElmIEF1dG8gQ29tcHJlc3Npb24gbW9kZSBpcyBlbmFibGVkICgq bm90ZSBDb21wcmVzc2VkIEZpbGVzOjopLCB0aGVuClRhciBtb2RlIGlzIHVzZWQgYWxzbyBmb3Ig Y29tcHJlc3NlZCBhcmNoaXZlc+KAlGZpbGVzIHdpdGggZXh0ZW5zaW9ucwrigJgudGd64oCZLCDi gJgudGFyLlrigJkgYW5kIOKAmC50YXIuZ3rigJkuCgogICBUaGUga2V5cyDigJhl4oCZLCDigJhm 4oCZIGFuZCA8UkVUPiBhbGwgZXh0cmFjdCBhIGNvbXBvbmVudCBmaWxlIGludG8gaXRzIG93bgpi dWZmZXIuICBZb3UgY2FuIGVkaXQgaXQgdGhlcmUsIGFuZCBpZiB5b3Ugc2F2ZSB0aGUgYnVmZmVy LCB0aGUgZWRpdGVkCnZlcnNpb24gd2lsbCByZXBsYWNlIHRoZSB2ZXJzaW9uIGluIHRoZSBUYXIg YnVmZmVyLiAgQ2xpY2tpbmcgd2l0aCB0aGUKbW91c2Ugb24gdGhlIGZpbGUgbmFtZSBpbiB0aGUg VGFyIGJ1ZmZlciBkb2VzIGxpa2V3aXNlLiAg4oCYduKAmSBleHRyYWN0cyBhCmZpbGUgaW50byBh IGJ1ZmZlciBpbiBWaWV3IG1vZGUgKCpub3RlIFZpZXcgTW9kZTo6KS4gIOKAmG/igJkgZXh0cmFj dHMgdGhlCmZpbGUgYW5kIGRpc3BsYXlzIGl0IGluIGFub3RoZXIgd2luZG93LCBzbyB5b3UgY291 bGQgZWRpdCB0aGUgZmlsZSBhbmQKb3BlcmF0ZSBvbiB0aGUgYXJjaGl2ZSBzaW11bHRhbmVvdXNs eS4KCiAgIFRoZSDigJhJ4oCZIGtleSBhZGRzIGEgbmV3IChyZWd1bGFyKSBmaWxlIHRvIHRoZSBh cmNoaXZlLiAgVGhlIGZpbGUgaXMKaW5pdGlhbGx5IGVtcHR5LCBidXQgY2FuIHJlYWRpbHkgYmUg ZWRpdGVkIHVzaW5nIHRoZSBjb21tYW5kcyBhYm92ZS4KVGhlIGNvbW1hbmQgaW5zZXJ0cyB0aGUg bmV3IGZpbGUgYmVmb3JlIHRoZSBjdXJyZW50IG9uZSwgc28gdGhhdCB1c2luZwppdCBvbiB0aGUg dG9wbW9zdCBsaW5lIG9mIHRoZSBUYXIgYnVmZmVyIG1ha2VzIHRoZSBuZXcgZmlsZSB0aGUgZmly c3QKb25lIGluIHRoZSBhcmNoaXZlLCBhbmQgdXNpbmcgaXQgYXQgdGhlIGVuZCBvZiB0aGUgYnVm ZmVyIG1ha2VzIGl0IHRoZQpsYXN0IG9uZS4KCiAgIOKAmGTigJkgbWFya3MgYSBmaWxlIGZvciBk ZWxldGlvbiB3aGVuIHlvdSBsYXRlciB1c2Ug4oCYeOKAmSwgYW5kIOKAmHXigJkgdW5tYXJrcwph IGZpbGUsIGFzIGluIERpcmVkLiAg4oCYQ+KAmSBjb3BpZXMgYSBmaWxlIGZyb20gdGhlIGFyY2hp dmUgdG8gZGlzayBhbmQg4oCYUuKAmQpyZW5hbWVzIGEgZmlsZSB3aXRoaW4gdGhlIGFyY2hpdmUu ICDigJhn4oCZIHJldmVydHMgdGhlIGJ1ZmZlciBmcm9tIHRoZQphcmNoaXZlIG9uIGRpc2suICBU aGUga2V5cyDigJhN4oCZLCDigJhH4oCZLCBhbmQg4oCYT+KAmSBjaGFuZ2UgdGhlIGZpbGXigJlz CnBlcm1pc3Npb24gYml0cywgZ3JvdXAsIGFuZCBvd25lciwgcmVzcGVjdGl2ZWx5LgoKICAgU2F2 aW5nIHRoZSBUYXIgYnVmZmVyIHdyaXRlcyBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBhcmNoaXZlIHRv IGRpc2sKd2l0aCB0aGUgY2hhbmdlcyB5b3UgbWFkZSB0byB0aGUgY29tcG9uZW50cy4KCiAgIFlv dSBkb27igJl0IG5lZWQgdGhlIOKAmHRhcuKAmSBwcm9ncmFtIHRvIHVzZSBUYXIgbW9kZeKAlEVt YWNzIHJlYWRzIHRoZQphcmNoaXZlcyBkaXJlY3RseS4gIEhvd2V2ZXIsIGFjY2Vzc2luZyBjb21w cmVzc2VkIGFyY2hpdmVzIHJlcXVpcmVzIHRoZQphcHByb3ByaWF0ZSB1bmNvbXByZXNzaW9uIHBy b2dyYW0uCgogICBBIHNlcGFyYXRlIGJ1dCBzaW1pbGFyIEFyY2hpdmUgbW9kZSBpcyB1c2VkIGZv ciDigJhhcmPigJksIOKAmGphcuKAmSwg4oCYbHpo4oCZLArigJh6aXDigJksIOKAmHJhcuKAmSwg 4oCYN3rigJksIGFuZCDigJh6b2/igJkgYXJjaGl2ZXMsIGFzIHdlbGwgYXMg4oCYZXhl4oCZIGZp bGVzIHRoYXQgYXJlCnNlbGYtZXh0cmFjdGluZyBleGVjdXRhYmxlcy4KCiAgIFRoZSBrZXkgYmlu ZGluZ3Mgb2YgQXJjaGl2ZSBtb2RlIGFyZSBzaW1pbGFyIHRvIHRob3NlIGluIFRhciBtb2RlLAp3 aXRoIHRoZSBhZGRpdGlvbiBvZiB0aGUg4oCYbeKAmSBrZXkgd2hpY2ggbWFya3MgYSBmaWxlIGZv ciBzdWJzZXF1ZW50Cm9wZXJhdGlvbnMsIGFuZCDigJhNLTxERUw+4oCZIHdoaWNoIHVubWFya3Mg YWxsIHRoZSBtYXJrZWQgZmlsZXMuICBBbHNvLCB0aGUK4oCYYeKAmSBrZXkgdG9nZ2xlcyB0aGUg ZGlzcGxheSBvZiBkZXRhaWxlZCBmaWxlIGluZm9ybWF0aW9uLCBmb3IgdGhvc2UKYXJjaGl2ZSB0 eXBlcyB3aGVyZSBpdCB3b27igJl0IGZpdCBpbiBhIHNpbmdsZSBsaW5lLiAgT3BlcmF0aW9ucyBz dWNoIGFzCnJlbmFtaW5nIGEgc3ViZmlsZSwgb3IgY2hhbmdpbmcgaXRzIG1vZGUgb3Igb3duZXIs IGFyZSBzdXBwb3J0ZWQgb25seQpmb3Igc29tZSBvZiB0aGUgYXJjaGl2ZSBmb3JtYXRzLgoKICAg VW5saWtlIFRhciBtb2RlLCBBcmNoaXZlIG1vZGUgcnVucyB0aGUgYXJjaGl2aW5nIHByb2dyYW1z IHRvIHVucGFjawphbmQgcmVwYWNrIGFyY2hpdmVzLiAgSG93ZXZlciwgeW91IGRvbuKAmXQgbmVl ZCB0aGVzZSBwcm9ncmFtcyB0byBsb29rIGF0CnRoZSBhcmNoaXZlIHRhYmxlIG9mIGNvbnRlbnRz LCBvbmx5IHRvIGV4dHJhY3Qgb3IgbWFuaXB1bGF0ZSB0aGUKc3ViZmlsZXMgaW4gdGhlIGFyY2hp dmUuICBEZXRhaWxzIG9mIHRoZSBwcm9ncmFtIG5hbWVzIGFuZCB0aGVpciBvcHRpb25zCmNhbiBi ZSBzZXQgaW4gdGhlIOKAmEFyY2hpdmXigJkgQ3VzdG9taXplIGdyb3VwICgqbm90ZSBDdXN0b21p emF0aW9uCkdyb3Vwczo6KS4KCgoqKiAxOC4xNSBSZW1vdGUgRmlsZXMKCllvdSBjYW4gcmVmZXIg dG8gZmlsZXMgb24gb3RoZXIgbWFjaGluZXMgdXNpbmcgYSBzcGVjaWFsIGZpbGUgbmFtZQpzeW50 YXg6CgogICAgIC9NRVRIT0Q6SE9TVDpGSUxFTkFNRQogICAgIC9NRVRIT0Q6VVNFUkBIT1NUOkZJ TEVOQU1FCiAgICAgL01FVEhPRDpVU0VSQEhPU1QjUE9SVDpGSUxFTkFNRQoKVG8gY2Fycnkgb3V0 IHRoaXMgcmVxdWVzdCwgRW1hY3MgdXNlcyBhIHJlbW90ZS1sb2dpbiBwcm9ncmFtIHN1Y2ggYXMK 4oCYc3No4oCZLiAgWW91IG11c3QgYWx3YXlzIHNwZWNpZnkgaW4gdGhlIGZpbGUgbmFtZSB3aGlj aCBtZXRob2QgdG8gdXNl4oCUZm9yCmV4YW1wbGUsIOKAmC9zc2g6VVNFUkBIT1NUOkZJTEVOQU1F 4oCZIHVzZXMg4oCYc3No4oCZLiAgV2hlbiB5b3Ugc3BlY2lmeSB0aGUKcHNldWRvIG1ldGhvZCDi gJgt4oCZIGluIHRoZSBmaWxlIG5hbWUsIEVtYWNzIGNob29zZXMgdGhlIG1ldGhvZCBhcyBmb2xs b3dzOgoKICAxLiBJZiB0aGUgaG9zdCBuYW1lIHN0YXJ0cyB3aXRoIOKAmGZ0cC7igJkgKHdpdGgg ZG90KSwgRW1hY3MgdXNlcyBGVFAuCiAgMi4gSWYgdGhlIHVzZXIgbmFtZSBpcyDigJhmdHDigJkg b3Ig4oCYYW5vbnltb3Vz4oCZLCBFbWFjcyB1c2VzIEZUUC4KICAzLiBJZiB0aGUgdmFyaWFibGUg 4oCYdHJhbXAtZGVmYXVsdC1tZXRob2TigJkgaXMgc2V0IHRvIOKAmGZ0cOKAmSwgRW1hY3MgdXNl cwogICAgIEZUUC4KICA0LiBJZiDigJhzc2gtYWdlbnTigJkgaXMgcnVubmluZywgRW1hY3MgdXNl cyDigJhzY3DigJkuCiAgNS4gT3RoZXJ3aXNlLCBFbWFjcyB1c2VzIOKAmHNzaOKAmS4KCllvdSBj YW4gZW50aXJlbHkgdHVybiBvZmYgdGhlIHJlbW90ZSBmaWxlIG5hbWUgZmVhdHVyZSBieSBzZXR0 aW5nIHRoZQp2YXJpYWJsZSDigJh0cmFtcC1tb2Rl4oCZIHRvIOKAmG5pbOKAmS4gIFlvdSBjYW4g dHVybiBvZmYgdGhlIGZlYXR1cmUgaW4KaW5kaXZpZHVhbCBjYXNlcyBieSBxdW90aW5nIHRoZSBm aWxlIG5hbWUgd2l0aCDigJgvOuKAmSAoKm5vdGUgUXVvdGVkIEZpbGUKTmFtZXM6OikuCgogICBS ZW1vdGUgZmlsZSBhY2Nlc3MgdGhyb3VnaCBGVFAgaXMgaGFuZGxlZCBieSB0aGUgQW5nZS1GVFAg cGFja2FnZSwKd2hpY2ggaXMgZG9jdW1lbnRlZCBpbiB0aGUgZm9sbG93aW5nLiAgUmVtb3RlIGZp bGUgYWNjZXNzIHRocm91Z2ggdGhlCm90aGVyIG1ldGhvZHMgaXMgaGFuZGxlZCBieSB0aGUgVHJh bXAgcGFja2FnZSwgd2hpY2ggaGFzIGl0cyBvd24gbWFudWFsLgoqTm90ZSBUaGUgVHJhbXAgTWFu dWFsOiAodHJhbXApVG9wLgoKICAgV2hlbiB0aGUgQW5nZS1GVFAgcGFja2FnZSBpcyB1c2VkLCBF bWFjcyBsb2dzIGluIHRocm91Z2ggRlRQIHVzaW5nCnRoZSBuYW1lIFVTRVIsIGlmIHRoYXQgaXMg c3BlY2lmaWVkIGluIHRoZSByZW1vdGUgZmlsZSBuYW1lLiAgSWYgVVNFUiBpcwp1bnNwZWNpZmll ZCwgRW1hY3MgbG9ncyBpbiB1c2luZyB5b3VyIHVzZXIgbmFtZSBvbiB0aGUgbG9jYWwgc3lzdGVt OyBidXQKaWYgeW91IHNldCB0aGUgdmFyaWFibGUg4oCYYW5nZS1mdHAtZGVmYXVsdC11c2Vy4oCZ IHRvIGEgc3RyaW5nLCB0aGF0IHN0cmluZwppcyB1c2VkIGluc3RlYWQuICBXaGVuIGxvZ2dpbmcg aW4sIEVtYWNzIG1heSBhbHNvIGFzayBmb3IgYSBwYXNzd29yZC4KCiAgIEZvciBwZXJmb3JtYW5j ZSByZWFzb25zLCBFbWFjcyBkb2VzIG5vdCBtYWtlIGJhY2t1cCBmaWxlcyBmb3IgZmlsZXMKYWNj ZXNzZWQgdmlhIEZUUCBieSBkZWZhdWx0LiAgVG8gbWFrZSBpdCBkbyBzbywgY2hhbmdlIHRoZSB2 YXJpYWJsZQrigJhhbmdlLWZ0cC1tYWtlLWJhY2t1cC1maWxlc+KAmSB0byBhIG5vbi3igJhuaWzi gJkgdmFsdWUuCgogICBCeSBkZWZhdWx0LCBhdXRvLXNhdmUgZmlsZXMgZm9yIHJlbW90ZSBmaWxl cyBhcmUgbWFkZSBpbiB0aGUKdGVtcG9yYXJ5IGZpbGUgZGlyZWN0b3J5IG9uIHRoZSBsb2NhbCBt YWNoaW5lLCBhcyBzcGVjaWZpZWQgYnkgdGhlCnZhcmlhYmxlIOKAmGF1dG8tc2F2ZS1maWxlLW5h bWUtdHJhbnNmb3Jtc+KAmS4gICpOb3RlIEF1dG8gU2F2ZSBGaWxlczo6LgoKICAgVG8gdmlzaXQg ZmlsZXMgYWNjZXNzaWJsZSBieSBhbm9ueW1vdXMgRlRQLCB5b3UgdXNlIHNwZWNpYWwgdXNlcgpu YW1lcyDigJhhbm9ueW1vdXPigJkgb3Ig4oCYZnRw4oCZLiAgUGFzc3dvcmRzIGZvciB0aGVzZSB1 c2VyIG5hbWVzIGFyZSBoYW5kbGVkCnNwZWNpYWxseS4gIFRoZSB2YXJpYWJsZSDigJhhbmdlLWZ0 cC1nZW5lcmF0ZS1hbm9ueW1vdXMtcGFzc3dvcmTigJkgY29udHJvbHMKd2hhdCBoYXBwZW5zOiBp ZiB0aGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJsZSBpcyBhIHN0cmluZywgdGhlbiB0aGF0CnN0cmlu ZyBpcyB1c2VkIGFzIHRoZSBwYXNzd29yZDsgaWYgbm9uLeKAmG5pbOKAmSAodGhlIGRlZmF1bHQp LCB0aGVuIHRoZQp2YWx1ZSBvZiDigJh1c2VyLW1haWwtYWRkcmVzc+KAmSBpcyB1c2VkOyBpZiDi gJhuaWzigJksIHRoZW4gRW1hY3MgcHJvbXB0cyB5b3UKZm9yIGEgcGFzc3dvcmQgYXMgdXN1YWwg KCpub3RlIFBhc3N3b3Jkczo6KS4KCiAgIFNvbWV0aW1lcyB5b3UgbWF5IGJlIHVuYWJsZSB0byBh Y2Nlc3MgZmlsZXMgb24gYSByZW1vdGUgbWFjaGluZQpiZWNhdXNlIGEgImZpcmV3YWxsIiBpbiBi ZXR3ZWVuIGJsb2NrcyB0aGUgY29ubmVjdGlvbiBmb3Igc2VjdXJpdHkKcmVhc29ucy4gIElmIHlv dSBjYW4gbG9nIGluIG9uIGEgImdhdGV3YXkiIG1hY2hpbmUgZnJvbSB3aGljaCB0aGUgdGFyZ2V0 CmZpbGVzIF9hcmVfIGFjY2Vzc2libGUsIGFuZCB3aG9zZSBGVFAgc2VydmVyIHN1cHBvcnRzIGdh dGV3YXlpbmcKZmVhdHVyZXMsIHlvdSBjYW4gc3RpbGwgdXNlIHJlbW90ZSBmaWxlIG5hbWVzOyBh bGwgeW91IGhhdmUgdG8gZG8gaXMKc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSBtYWNo aW5lIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlCuKAmGFuZ2UtZnRwLWdhdGV3YXktaG9zdOKAmSwg YW5kIHNldCDigJhhbmdlLWZ0cC1zbWFydC1nYXRld2F54oCZIHRvIOKAmHTigJkuCk90aGVyd2lz ZSB5b3UgbWF5IGJlIGFibGUgdG8gbWFrZSByZW1vdGUgZmlsZSBuYW1lcyB3b3JrLCBidXQgdGhl CnByb2NlZHVyZSBpcyBjb21wbGV4LiAgWW91IGNhbiByZWFkIHRoZSBpbnN0cnVjdGlvbnMgYnkg dHlwaW5nIOKAmE0teApmaW5kZXItY29tbWVudGFyeSA8UkVUPiBhbmdlLWZ0cCA8UkVUPuKAmS4K CgoqKiAxOC4xNiBRdW90ZWQgRmlsZSBOYW1lcwoKWW91IGNhbiAicXVvdGUiIGFuIGFic29sdXRl IGZpbGUgbmFtZSB0byBwcmV2ZW50IHNwZWNpYWwgY2hhcmFjdGVycyBhbmQKc3ludGF4IGluIGl0 IGZyb20gaGF2aW5nIHRoZWlyIHNwZWNpYWwgZWZmZWN0cy4gIFRoZSB3YXkgdG8gZG8gdGhpcyBp cwp0byBhZGQg4oCYLzrigJkgYXQgdGhlIGJlZ2lubmluZy4KCiAgIEZvciBleGFtcGxlLCB5b3Ug Y2FuIHF1b3RlIGEgbG9jYWwgZmlsZSBuYW1lIHdoaWNoIGFwcGVhcnMgcmVtb3RlLCB0bwpwcmV2 ZW50IGl0IGZyb20gYmVpbmcgdHJlYXRlZCBhcyBhIHJlbW90ZSBmaWxlIG5hbWUuICBUaHVzLCBp ZiB5b3UgaGF2ZQphIGRpcmVjdG9yeSBuYW1lZCDigJgvZm9vOuKAmSBhbmQgYSBmaWxlIG5hbWVk IOKAmGJhcuKAmSBpbiBpdCwgeW91IGNhbiByZWZlciB0bwp0aGF0IGZpbGUgaW4gRW1hY3MgYXMg 4oCYLzovZm9vOi9iYXLigJkuCgogICBJZiB5b3Ugd2FudCB0byBxdW90ZSBvbmx5IHNwZWNpYWwg Y2hhcmFjdGVycyBpbiB0aGUgbG9jYWwgcGFydCBvZiBhCnJlbW90ZSBmaWxlIG5hbWUsIHlvdSBj YW4gcXVvdGUganVzdCB0aGUgbG9jYWwgcGFydC4K4oCYL3NzaDpiYXo6LzovZm9vOi9iYXLigJkg cmVmZXJzIHRvIHRoZSBmaWxlIOKAmGJhcuKAmSBvZiBkaXJlY3Rvcnkg4oCYL2ZvbzrigJkgb24K dGhlIGhvc3Qg4oCYYmF64oCZLgoKICAg4oCYLzrigJkgY2FuIGFsc28gcHJldmVudCDigJh+4oCZ IGZyb20gYmVpbmcgdHJlYXRlZCBhcyBhIHNwZWNpYWwgY2hhcmFjdGVyCmZvciBhIHVzZXLigJlz IGhvbWUgZGlyZWN0b3J5LiAgRm9yIGV4YW1wbGUsIOKAmC86L3RtcC9+aGFja+KAmSByZWZlcnMg dG8gYQpmaWxlIHdob3NlIG5hbWUgaXMg4oCYfmhhY2vigJkgaW4gZGlyZWN0b3J5IOKAmC90bXDi gJkuCgogICBRdW90aW5nIHdpdGgg4oCYLzrigJkgaXMgYWxzbyBhIHdheSB0byBlbnRlciBpbiB0 aGUgbWluaWJ1ZmZlciBhIGZpbGUKbmFtZSB0aGF0IGNvbnRhaW5zIOKAmCTigJkuICBJbiBvcmRl ciBmb3IgdGhpcyB0byB3b3JrLCB0aGUg4oCYLzrigJkgbXVzdCBiZSBhdAp0aGUgYmVnaW5uaW5n IG9mIHRoZSBtaW5pYnVmZmVyIGNvbnRlbnRzLiAgKFlvdSBjYW4gYWxzbyBkb3VibGUgZWFjaAri gJgk4oCZOyBzZWUgKm5vdGUgRmlsZSBOYW1lcyB3aXRoICQ6Oi4pCgogICBZb3UgY2FuIGFsc28g cXVvdGUgd2lsZGNhcmQgY2hhcmFjdGVycyB3aXRoIOKAmC864oCZLCBmb3IgdmlzaXRpbmcuICBG b3IKZXhhbXBsZSwg4oCYLzovdG1wL2ZvbypiYXLigJkgdmlzaXRzIHRoZSBmaWxlIOKAmC90bXAv Zm9vKmJhcuKAmS4KCiAgIEFub3RoZXIgbWV0aG9kIG9mIGdldHRpbmcgdGhlIHNhbWUgcmVzdWx0 IGlzIHRvIGVudGVyCuKAmC90bXAvZm9vWypdYmFy4oCZLCB3aGljaCBpcyBhIHdpbGRjYXJkIHNw ZWNpZmljYXRpb24gdGhhdCBtYXRjaGVzIG9ubHkK4oCYL3RtcC9mb28qYmFy4oCZLiAgSG93ZXZl ciwgaW4gbWFueSBjYXNlcyB0aGVyZSBpcyBubyBuZWVkIHRvIHF1b3RlIHRoZQp3aWxkY2FyZCBj aGFyYWN0ZXJzIGJlY2F1c2UgZXZlbiB1bnF1b3RlZCB0aGV5IGdpdmUgdGhlIHJpZ2h0IHJlc3Vs dC4KRm9yIGV4YW1wbGUsIGlmIHRoZSBvbmx5IGZpbGUgbmFtZSBpbiDigJgvdG1w4oCZIHRoYXQg c3RhcnRzIHdpdGgg4oCYZm9v4oCZIGFuZAplbmRzIHdpdGgg4oCYYmFy4oCZIGlzIOKAmGZvbypi YXLigJksIHRoZW4gc3BlY2lmeWluZyDigJgvdG1wL2ZvbypiYXLigJkgd2lsbCB2aXNpdApvbmx5 IOKAmC90bXAvZm9vKmJhcuKAmS4KCgoqKiAxOC4xNyBGaWxlIE5hbWUgQ2FjaGUKCllvdSBjYW4g dXNlIHRoZSAiZmlsZSBuYW1lIGNhY2hlIiB0byBtYWtlIGl0IGVhc3kgdG8gbG9jYXRlIGEgZmls ZSBieQpuYW1lLCB3aXRob3V0IGhhdmluZyB0byByZW1lbWJlciBleGFjdGx5IHdoZXJlIGl0IGlz IGxvY2F0ZWQuICBXaGVuCnR5cGluZyBhIGZpbGUgbmFtZSBpbiB0aGUgbWluaWJ1ZmZlciwg4oCY Qy08VEFCPuKAmQoo4oCYZmlsZS1jYWNoZS1taW5pYnVmZmVyLWNvbXBsZXRl4oCZKSBjb21wbGV0 ZXMgaXQgdXNpbmcgdGhlIGZpbGUgbmFtZQpjYWNoZS4gIElmIHlvdSByZXBlYXQg4oCYQy08VEFC PuKAmSwgdGhhdCBjeWNsZXMgdGhyb3VnaCB0aGUgcG9zc2libGUKY29tcGxldGlvbnMgb2Ygd2hh dCB5b3UgaGFkIG9yaWdpbmFsbHkgdHlwZWQuICAoSG93ZXZlciwgbm90ZSB0aGF0IHRoZQrigJhD LTxUQUI+4oCZIGNoYXJhY3RlciBjYW5ub3QgYmUgdHlwZWQgb24gbW9zdCB0ZXh0IHRlcm1pbmFs cy4pCgogICBUaGUgZmlsZSBuYW1lIGNhY2hlIGRvZXMgbm90IGZpbGwgdXAgYXV0b21hdGljYWxs eS4gIEluc3RlYWQsIHlvdQpsb2FkIGZpbGUgbmFtZXMgaW50byB0aGUgY2FjaGUgdXNpbmcgdGhl c2UgY29tbWFuZHM6CgrigJhNLXggZmlsZS1jYWNoZS1hZGQtZGlyZWN0b3J5IDxSRVQ+IERJUkVD VE9SWSA8UkVUPuKAmQogICAgIEFkZCBlYWNoIGZpbGUgbmFtZSBpbiBESVJFQ1RPUlkgdG8gdGhl IGZpbGUgbmFtZSBjYWNoZS4K4oCYTS14IGZpbGUtY2FjaGUtYWRkLWRpcmVjdG9yeS11c2luZy1m aW5kIDxSRVQ+IERJUkVDVE9SWSA8UkVUPuKAmQogICAgIEFkZCBlYWNoIGZpbGUgbmFtZSBpbiBE SVJFQ1RPUlkgYW5kIGFsbCBvZiBpdHMgbmVzdGVkCiAgICAgc3ViZGlyZWN0b3JpZXMgdG8gdGhl IGZpbGUgbmFtZSBjYWNoZS4K4oCYTS14IGZpbGUtY2FjaGUtYWRkLWRpcmVjdG9yeS11c2luZy1s b2NhdGUgPFJFVD4gRElSRUNUT1JZIDxSRVQ+4oCZCiAgICAgQWRkIGVhY2ggZmlsZSBuYW1lIGlu IERJUkVDVE9SWSBhbmQgYWxsIG9mIGl0cyBuZXN0ZWQKICAgICBzdWJkaXJlY3RvcmllcyB0byB0 aGUgZmlsZSBuYW1lIGNhY2hlLCB1c2luZyDigJhsb2NhdGXigJkgdG8gZmluZCB0aGVtCiAgICAg YWxsLgrigJhNLXggZmlsZS1jYWNoZS1hZGQtZGlyZWN0b3J5LWxpc3QgPFJFVD4gVkFSSUFCTEUg PFJFVD7igJkKICAgICBBZGQgZWFjaCBmaWxlIG5hbWUgaW4gZWFjaCBkaXJlY3RvcnkgbGlzdGVk IGluIFZBUklBQkxFIHRvIHRoZSBmaWxlCiAgICAgbmFtZSBjYWNoZS4gIFZBUklBQkxFIHNob3Vs ZCBiZSBhIExpc3AgdmFyaWFibGUgd2hvc2UgdmFsdWUgaXMgYQogICAgIGxpc3Qgb2YgZGlyZWN0 b3JpZXMsIGxpa2Ug4oCYbG9hZC1wYXRo4oCZLgrigJhNLXggZmlsZS1jYWNoZS1jbGVhci1jYWNo ZSA8UkVUPuKAmQogICAgIENsZWFyIHRoZSBjYWNoZTsgdGhhdCBpcywgcmVtb3ZlIGFsbCBmaWxl IG5hbWVzIGZyb20gaXQuCgogICBUaGUgZmlsZSBuYW1lIGNhY2hlIGlzIG5vdCBwZXJzaXN0ZW50 OiBpdCBpcyBrZXB0IGFuZCBtYWludGFpbmVkIG9ubHkKZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUg RW1hY3Mgc2Vzc2lvbi4gIFlvdSBjYW4gdmlldyB0aGUgY29udGVudHMgb2YgdGhlCmNhY2hlIHdp dGggdGhlIOKAmGZpbGUtY2FjaGUtZGlzcGxheeKAmSBjb21tYW5kLgoKCioqIDE4LjE4IENvbnZl bmllbmNlIEZlYXR1cmVzIGZvciBGaW5kaW5nIEZpbGVzCgpJbiB0aGlzIHNlY3Rpb24sIHdlIGlu dHJvZHVjZSBzb21lIGNvbnZlbmllbnQgZmFjaWxpdGllcyBmb3IgZmluZGluZwpyZWNlbnRseS1v cGVuZWQgZmlsZXMsIHJlYWRpbmcgZmlsZSBuYW1lcyBmcm9tIGEgYnVmZmVyLCBhbmQgdmlld2lu ZwppbWFnZSBmaWxlcy4KCiAgIElmIHlvdSBlbmFibGUgUmVjZW50ZiBtb2RlLCB3aXRoIOKAmE0t eCByZWNlbnRmLW1vZGXigJksIHRoZSDigJhGaWxl4oCZIG1lbnUKaW5jbHVkZXMgYSBzdWJtZW51 IGNvbnRhaW5pbmcgYSBsaXN0IG9mIHJlY2VudGx5IG9wZW5lZCBmaWxlcy4gIOKAmE0teApyZWNl bnRmLXNhdmUtbGlzdOKAmSBzYXZlcyB0aGUgY3VycmVudCDigJhyZWNlbnQtZmlsZS1saXN04oCZ IHRvIGEgZmlsZSwgYW5kCuKAmE0teCByZWNlbnRmLWVkaXQtbGlzdOKAmSBlZGl0cyBpdC4KCiAg IFRoZSDigJhNLXggZmZhcOKAmSBjb21tYW5kIGdlbmVyYWxpemVzIOKAmGZpbmQtZmlsZeKAmSB3 aXRoIG1vcmUgcG93ZXJmdWwKaGV1cmlzdGljIGRlZmF1bHRzICgqbm90ZSBGRkFQOjopLCBvZnRl biBiYXNlZCBvbiB0aGUgdGV4dCBhdCBwb2ludC4KUGFydGlhbCBDb21wbGV0aW9uIG1vZGUgb2Zm ZXJzIG90aGVyIGZlYXR1cmVzIGV4dGVuZGluZyDigJhmaW5kLWZpbGXigJksCndoaWNoIGNhbiBi ZSB1c2VkIHdpdGgg4oCYZmZhcOKAmS4gICpOb3RlIENvbXBsZXRpb24gT3B0aW9uczo6LgoKICAg VmlzaXRpbmcgaW1hZ2UgZmlsZXMgYXV0b21hdGljYWxseSBzZWxlY3RzIEltYWdlIG1vZGUuICBJ biB0aGlzIG1ham9yCm1vZGUsIHlvdSBjYW4gdHlwZSDigJhDLWMgQy1j4oCZICjigJhpbWFnZS10 b2dnbGUtZGlzcGxheeKAmSkgdG8gdG9nZ2xlIGJldHdlZW4KZGlzcGxheWluZyB0aGUgZmlsZSBh cyBhbiBpbWFnZSBpbiB0aGUgRW1hY3MgYnVmZmVyLCBhbmQgZGlzcGxheWluZyBpdHMKdW5kZXJs eWluZyB0ZXh0IChvciByYXcgYnl0ZSkgcmVwcmVzZW50YXRpb24uICBBZGRpdGlvbmFsbHkgeW91 IGNhbiB0eXBlCuKAmEMtYyBDLXjigJkgKOKAmGltYWdlLXRvZ2dsZS1oZXgtZGlzcGxheeKAmSkg dG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheWluZyB0aGUKZmlsZSBhcyBhbiBpbWFnZSBpbiB0aGUg RW1hY3MgYnVmZmVyLCBhbmQgZGlzcGxheWluZyBpdCBpbiBoZXgKcmVwcmVzZW50YXRpb24uICBE aXNwbGF5aW5nIHRoZSBmaWxlIGFzIGFuIGltYWdlIHdvcmtzIG9ubHkgaWYgRW1hY3MgaXMKY29t cGlsZWQgd2l0aCBzdXBwb3J0IGZvciBkaXNwbGF5aW5nIHN1Y2ggaW1hZ2VzLiAgSWYgdGhlIGRp c3BsYXllZAppbWFnZSBpcyB3aWRlciBvciB0YWxsZXIgdGhhbiB0aGUgZnJhbWUsIHRoZSB1c3Vh bCBwb2ludCBtb3Rpb24ga2V5cwoo4oCYQy1m4oCZLCDigJhDLXDigJksIGFuZCBzbyBmb3J0aCkg Y2F1c2UgZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBpbWFnZSB0byBiZQpkaXNwbGF5ZWQuICBZb3Ug Y2FuIHByZXNzIOKAmG7igJkgKOKAmGltYWdlLW5leHQtZmlsZeKAmSkgYW5kIOKAmHDigJkKKOKA mGltYWdlLXByZXZpb3VzLWZpbGXigJkpIHRvIHZpc2l0IHRoZSBuZXh0IGltYWdlIGZpbGUgYW5k IHRoZSBwcmV2aW91cwppbWFnZSBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSwgcmVzcGVjdGl2 ZWx5LgoKICAgSWYgdGhlIGltYWdlIGNhbiBiZSBhbmltYXRlZCwgdGhlIGNvbW1hbmQgPFJFVD4K KOKAmGltYWdlLXRvZ2dsZS1hbmltYXRpb27igJkpIHN0YXJ0cyBvciBzdG9wcyB0aGUgYW5pbWF0 aW9uLiAgQW5pbWF0aW9uCnBsYXlzIG9uY2UsIHVubGVzcyB0aGUgb3B0aW9uIOKAmGltYWdlLWFu aW1hdGUtbG9vcOKAmSBpcyBub24t4oCYbmls4oCZLiAgV2l0aArigJhm4oCZICjigJhpbWFnZS1u ZXh0LWZyYW1l4oCZKSBhbmQg4oCYYuKAmSAo4oCYaW1hZ2UtcHJldmlvdXMtZnJhbWXigJkpIHlv dSBjYW4gc3RlcAp0aHJvdWdoIHRoZSBpbmRpdmlkdWFsIGZyYW1lcy4gIEJvdGggY29tbWFuZHMg YWNjZXB0IGEgbnVtZXJpYyBwcmVmaXggdG8Kc3RlcCB0aHJvdWdoIHNldmVyYWwgZnJhbWVzIGF0 IG9uY2UuICBZb3UgY2FuIGdvIHRvIGEgc3BlY2lmaWMgZnJhbWUKd2l0aCDigJhG4oCZICjigJhp bWFnZS1nb3RvLWZyYW1l4oCZKS4gIEZyYW1lcyBhcmUgaW5kZXhlZCBmcm9tIDEuICBUeXBpbmcg 4oCYYSAr4oCZCijigJhpbWFnZS1pbmNyZWFzZS1zcGVlZOKAmSkgaW5jcmVhc2VzIHRoZSBzcGVl ZCBvZiB0aGUgYW5pbWF0aW9uLCDigJhhIC3igJkKKOKAmGltYWdlLWRlY3JlYXNlLXNwZWVk4oCZ KSBkZWNyZWFzZXMgaXQsIGFuZCDigJhhIHLigJkgKOKAmGltYWdlLXJldmVyc2Utc3BlZWTigJkp CnJldmVyc2VzIGl0LiAgVGhlIGNvbW1hbmQg4oCYYSAw4oCZICjigJhpbWFnZS1yZXNldC1zcGVl ZOKAmSkgcmVzZXRzIHRoZSBzcGVlZAp0byB0aGUgb3JpZ2luYWwgdmFsdWUuCgogICBJZiBFbWFj cyB3YXMgY29tcGlsZWQgd2l0aCBzdXBwb3J0IGZvciB0aGUgSW1hZ2VNYWdpY2sgbGlicmFyeSwg aXQKY2FuIHVzZSBJbWFnZU1hZ2ljayB0byByZW5kZXIgYSB3aWRlIHZhcmlldHkgb2YgaW1hZ2Vz LiAgVGhlIHZhcmlhYmxlCuKAmGltYWdlbWFnaWNrLWVuYWJsZWQtdHlwZXPigJkgbGlzdHMgdGhl IGltYWdlIHR5cGVzIHRoYXQgRW1hY3MgbWF5IHJlbmRlcgp1c2luZyBJbWFnZU1hZ2ljazsgZWFj aCBlbGVtZW50IGluIHRoZSBsaXN0IHNob3VsZCBiZSBhbiBpbnRlcm5hbApJbWFnZU1hZ2ljayBu YW1lIGZvciBhbiBpbWFnZSB0eXBlLCBhcyBhIHN5bWJvbCBvciBhbiBlcXVpdmFsZW50IHN0cmlu ZwooZS5nLiwg4oCYQk1Q4oCZIGZvciDigJguYm1w4oCZIGltYWdlcykuICBUbyBlbmFibGUgSW1h Z2VNYWdpY2sgZm9yIGFsbCBwb3NzaWJsZQppbWFnZSB0eXBlcywgY2hhbmdlIOKAmGltYWdlbWFn aWNrLWVuYWJsZWQtdHlwZXPigJkgdG8g4oCYdOKAmS4gIFRoZSB2YXJpYWJsZQrigJhpbWFnZW1h Z2ljay10eXBlcy1pbmhpYml04oCZIGxpc3RzIHRoZSBpbWFnZSB0eXBlcyB3aGljaCBzaG91bGQg bmV2ZXIgYmUKcmVuZGVyZWQgdXNpbmcgSW1hZ2VNYWdpY2ssIHJlZ2FyZGxlc3Mgb2YgdGhlIHZh bHVlIG9mCuKAmGltYWdlbWFnaWNrLWVuYWJsZWQtdHlwZXPigJkgKHRoZSBkZWZhdWx0IGxpc3Qg aW5jbHVkZXMgdHlwZXMgbGlrZSDigJhD4oCZCmFuZCDigJhIVE1M4oCZLCB3aGljaCBJbWFnZU1h Z2ljayBjYW4gcmVuZGVyIGFzIGFuIGltYWdlIGJ1dCBFbWFjcyBzaG91bGQKbm90KS4gIFRvIGRp c2FibGUgSW1hZ2VNYWdpY2sgZW50aXJlbHksIGNoYW5nZQrigJhpbWFnZW1hZ2ljay10eXBlcy1p bmhpYml04oCZIHRvIOKAmHTigJkuCgogICBUaGUgSW1hZ2UtRGlyZWQgcGFja2FnZSBjYW4gYWxz byBiZSB1c2VkIHRvIHZpZXcgaW1hZ2VzIGFzCnRodW1ibmFpbHMuICAqTm90ZSBJbWFnZS1EaXJl ZDo6LgoKCioqIDE4LjE5IEZpbGVzZXRzCgpJZiB5b3UgcmVndWxhcmx5IGVkaXQgYSBjZXJ0YWlu IGdyb3VwIG9mIGZpbGVzLCB5b3UgY2FuIGRlZmluZSB0aGVtIGFzIGEKImZpbGVzZXQiLiAgVGhp cyBsZXRzIHlvdSBwZXJmb3JtIGNlcnRhaW4gb3BlcmF0aW9ucywgc3VjaCBhcyB2aXNpdGluZywK 4oCYcXVlcnktcmVwbGFjZeKAmSwgYW5kIHNoZWxsIGNvbW1hbmRzIG9uIGFsbCB0aGUgZmlsZXMg YXQgb25jZS4gIFRvIG1ha2UKdXNlIG9mIGZpbGVzZXRzLCB5b3UgbXVzdCBmaXJzdCBhZGQgdGhl IGV4cHJlc3Npb24g4oCYKGZpbGVzZXRzLWluaXQp4oCZIHRvCnlvdXIgaW5pdCBmaWxlICgqbm90 ZSBJbml0IEZpbGU6OikuICBUaGlzIGFkZHMgYSDigJhGaWxlc2V0c+KAmSBzdWItbWVudSB0bwp0 aGUgbWVudSBiYXLigJlzIOKAmEZpbGXigJkgbWVudS4KCiAgIFRoZSBzaW1wbGVzdCB3YXkgdG8g ZGVmaW5lIGEgZmlsZXNldCBpcyBieSBhZGRpbmcgZmlsZXMgdG8gaXQgb25lIGF0CmEgdGltZS4g IFRvIGFkZCBhIGZpbGUgdG8gZmlsZXNldCBOQU1FLCB2aXNpdCB0aGUgZmlsZSBhbmQgdHlwZSDi gJhNLXgKZmlsZXNldHMtYWRkLWJ1ZmZlciA8UkVUPiBOQU1FIDxSRVQ+4oCZLiAgSWYgdGhlcmUg aXMgbm8gZmlsZXNldCBOQU1FLAp0aGlzIGNyZWF0ZXMgYSBuZXcgb25lLCB3aGljaCBpbml0aWFs bHkgY29udGFpbnMgb25seSB0aGUgY3VycmVudCBmaWxlLgpUaGUgY29tbWFuZCDigJhNLXggZmls ZXNldHMtcmVtb3ZlLWJ1ZmZlcuKAmSByZW1vdmVzIHRoZSBjdXJyZW50IGZpbGUgZnJvbSBhCmZp bGVzZXQuCgogICBZb3UgY2FuIGFsc28gZWRpdCB0aGUgbGlzdCBvZiBmaWxlc2V0cyBkaXJlY3Rs eSwgd2l0aCDigJhNLXgKZmlsZXNldHMtZWRpdOKAmSAob3IgYnkgY2hvb3Npbmcg4oCYRWRpdCBG aWxlc2V0c+KAmSBmcm9tIHRoZSDigJhGaWxlc2V0c+KAmQptZW51KS4gIFRoZSBlZGl0aW5nIGlz IHBlcmZvcm1lZCBpbiBhIEN1c3RvbWl6ZSBidWZmZXIgKCpub3RlIEVhc3kKQ3VzdG9taXphdGlv bjo6KS4gIE5vcm1hbGx5LCBhIGZpbGVzZXQgaXMgYSBzaW1wbGUgbGlzdCBvZiBmaWxlcywgYnV0 CnlvdSBjYW4gYWxzbyBkZWZpbmUgYSBmaWxlc2V0IGFzIGEgcmVndWxhciBleHByZXNzaW9uIG1h dGNoaW5nIGZpbGUKbmFtZXMuICBTb21lIGV4YW1wbGVzIG9mIHRoZXNlIG1vcmUgY29tcGxpY2F0 ZWQgZmlsZXNldHMgYXJlIHNob3duIGluCnRoZSBDdXN0b21pemUgYnVmZmVyLiAgUmVtZW1iZXIg dG8gc2VsZWN0IOKAmFNhdmUgZm9yIGZ1dHVyZSBzZXNzaW9uc+KAmSBpZgp5b3Ugd2FudCB0byB1 c2UgdGhlIHNhbWUgZmlsZXNldHMgaW4gZnV0dXJlIEVtYWNzIHNlc3Npb25zLgoKICAgWW91IGNh biB1c2UgdGhlIGNvbW1hbmQg4oCYTS14IGZpbGVzZXRzLW9wZW7igJkgdG8gdmlzaXQgYWxsIHRo ZSBmaWxlcyBpbgphIGZpbGVzZXQsIGFuZCDigJhNLXggZmlsZXNldHMtY2xvc2XigJkgdG8gY2xv c2UgdGhlbS4gIFVzZSDigJhNLXgKZmlsZXNldHMtcnVuLWNtZOKAmSB0byBydW4gYSBzaGVsbCBj b21tYW5kIG9uIGFsbCB0aGUgZmlsZXMgaW4gYSBmaWxlc2V0LgpUaGVzZSBjb21tYW5kcyBhcmUg YWxzbyBhdmFpbGFibGUgZnJvbSB0aGUg4oCYRmlsZXNldHPigJkgbWVudSwgd2hlcmUgZWFjaApl eGlzdGluZyBmaWxlc2V0IGlzIHJlcHJlc2VudGVkIGJ5IGEgc3VibWVudS4KCiAgICpOb3RlIFZl cnNpb24gQ29udHJvbDo6LCBmb3IgYSBkaWZmZXJlbnQgY29uY2VwdCBvZiBmaWxlc2V0czogZ3Jv dXBzCm9mIGZpbGVzIGJ1bmRsZWQgdG9nZXRoZXIgZm9yIHZlcnNpb24gY29udHJvbCBvcGVyYXRp b25zLiAgRmlsZXNldHMgb2YKdGhhdCB0eXBlIGFyZSB1bm5hbWVkLCBhbmQgZG8gbm90IHBlcnNp c3QgYWNyb3NzIEVtYWNzIHNlc3Npb25zLgoKCiogMTkgVXNpbmcgTXVsdGlwbGUgQnVmZmVycwoK VGhlIHRleHQgeW91IGFyZSBlZGl0aW5nIGluIEVtYWNzIHJlc2lkZXMgaW4gYW4gb2JqZWN0IGNh bGxlZCBhCiJidWZmZXIiLiAgRWFjaCB0aW1lIHlvdSB2aXNpdCBhIGZpbGUsIGEgYnVmZmVyIGlz IHVzZWQgdG8gaG9sZCB0aGUKZmlsZeKAmXMgdGV4dC4gIEVhY2ggdGltZSB5b3UgaW52b2tlIERp cmVkLCBhIGJ1ZmZlciBpcyB1c2VkIHRvIGhvbGQgdGhlCmRpcmVjdG9yeSBsaXN0aW5nLiAgSWYg eW91IHNlbmQgYSBtZXNzYWdlIHdpdGgg4oCYQy14IG3igJksIGEgYnVmZmVyIGlzIHVzZWQKdG8g aG9sZCB0aGUgdGV4dCBvZiB0aGUgbWVzc2FnZS4gIFdoZW4geW91IGFzayBmb3IgYSBjb21tYW5k 4oCZcwpkb2N1bWVudGF0aW9uLCB0aGF0IGFwcGVhcnMgaW4gYSBidWZmZXIgbmFtZWQg4oCYKkhl bHAq4oCZLgoKICAgRWFjaCBidWZmZXIgaGFzIGEgdW5pcXVlIG5hbWUsIHdoaWNoIGNhbiBiZSBv ZiBhbnkgbGVuZ3RoLiAgV2hlbiBhCmJ1ZmZlciBpcyBkaXNwbGF5ZWQgaW4gYSB3aW5kb3csIGl0 cyBuYW1lIGlzIHNob3duIGluIHRoZSBtb2RlIGxpbmUKKCpub3RlIE1vZGUgTGluZTo6KS4gIFRo ZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVwcGVyIGFuZCBsb3dlciBjYXNlCm1hdHRlcnMgaW4gYnVm ZmVyIG5hbWVzLiAgTW9zdCBidWZmZXJzIGFyZSBtYWRlIGJ5IHZpc2l0aW5nIGZpbGVzLCBhbmQK dGhlaXIgbmFtZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgZmlsZXPigJkgbmFtZXM7IGhvd2V2ZXIs IHlvdSBjYW4gYWxzbwpjcmVhdGUgYW4gZW1wdHkgYnVmZmVyIHdpdGggYW55IG5hbWUgeW91IHdh bnQuICBBIG5ld2x5IHN0YXJ0ZWQgRW1hY3MKaGFzIHNldmVyYWwgYnVmZmVycywgaW5jbHVkaW5n IG9uZSBuYW1lZCDigJgqc2NyYXRjaCrigJksIHdoaWNoIGNhbiBiZSB1c2VkCmZvciBldmFsdWF0 aW5nIExpc3AgZXhwcmVzc2lvbnMgYW5kIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IGZpbGUK KCpub3RlIExpc3AgSW50ZXJhY3Rpb246OikuCgogICBBdCBhbnkgdGltZSwgb25lIGFuZCBvbmx5 IG9uZSBidWZmZXIgaXMgInNlbGVjdGVkIjsgd2UgY2FsbCBpdCB0aGUKImN1cnJlbnQgYnVmZmVy Ii4gIFdlIHNvbWV0aW1lcyBzYXkgdGhhdCBhIGNvbW1hbmQgb3BlcmF0ZXMgb24g4oCcdGhlCmJ1 ZmZlcuKAnTsgdGhpcyByZWFsbHkgbWVhbnMgdGhhdCBpdCBvcGVyYXRlcyBvbiB0aGUgY3VycmVu dCBidWZmZXIuICBXaGVuCnRoZXJlIGlzIG9ubHkgb25lIEVtYWNzIHdpbmRvdywgdGhlIGJ1ZmZl ciBkaXNwbGF5ZWQgaW4gdGhhdCB3aW5kb3cgaXMKY3VycmVudC4gIFdoZW4gdGhlcmUgYXJlIG11 bHRpcGxlIHdpbmRvd3MsIHRoZSBidWZmZXIgZGlzcGxheWVkIGluIHRoZQoic2VsZWN0ZWQgd2lu ZG93IiBpcyBjdXJyZW50LiAgKk5vdGUgV2luZG93czo6LgoKICAgQSBidWZmZXLigJlzICJjb250 ZW50cyIgY29uc2lzdCBvZiBhIHNlcmllcyBvZiBjaGFyYWN0ZXJzLCBlYWNoIG9mCndoaWNoIG9w dGlvbmFsbHkgY2FycmllcyBhIHNldCBvZiB0ZXh0IHByb3BlcnRpZXMgKCpub3RlIFRleHQKcHJv cGVydGllczogSW50ZXJuYXRpb25hbCBDaGFycy4pIHRoYXQgY2FuIHNwZWNpZnkgbW9yZSBpbmZv cm1hdGlvbgphYm91dCB0aGF0IGNoYXJhY3Rlci4KCiAgIEFzaWRlIGZyb20gaXRzIHRleHR1YWwg Y29udGVudHMsIGVhY2ggYnVmZmVyIHJlY29yZHMgc2V2ZXJhbCBwaWVjZXMKb2YgaW5mb3JtYXRp b24sIHN1Y2ggYXMgd2hhdCBmaWxlIGl0IGlzIHZpc2l0aW5nIChpZiBhbnkpLCB3aGV0aGVyIGl0 IGlzCm1vZGlmaWVkLCBhbmQgd2hhdCBtYWpvciBtb2RlIGFuZCBtaW5vciBtb2RlcyBhcmUgaW4g ZWZmZWN0ICgqbm90ZQpNb2Rlczo6KS4gIFRoZXNlIGFyZSBzdG9yZWQgaW4gImJ1ZmZlci1sb2Nh bCB2YXJpYWJsZXMi4oCUdmFyaWFibGVzIHRoYXQKY2FuIGhhdmUgYSBkaWZmZXJlbnQgdmFsdWUg aW4gZWFjaCBidWZmZXIuICAqTm90ZSBMb2NhbHM6Oi4KCiAgIEEgYnVmZmVy4oCZcyBzaXplIGNh bm5vdCBiZSBsYXJnZXIgdGhhbiBzb21lIG1heGltdW0sIHdoaWNoIGlzIGRlZmluZWQKYnkgdGhl IGxhcmdlc3QgYnVmZmVyIHBvc2l0aW9uIHJlcHJlc2VudGFibGUgYnkgIkVtYWNzIGludGVnZXJz Ii4gIFRoaXMKaXMgYmVjYXVzZSBFbWFjcyB0cmFja3MgYnVmZmVyIHBvc2l0aW9ucyB1c2luZyB0 aGF0IGRhdGEgdHlwZS4gIEZvcgp0eXBpY2FsIDY0LWJpdCBtYWNoaW5lcywgdGhpcyBtYXhpbXVt IGJ1ZmZlciBzaXplIGlzIDJeezYxfSAtIDIgYnl0ZXMsCm9yIGFib3V0IDIgRWlCLiAgRm9yIHR5 cGljYWwgMzItYml0IG1hY2hpbmVzLCB0aGUgbWF4aW11bSBpcyB1c3VhbGx5CjJeezI5fSAtIDIg Ynl0ZXMsIG9yIGFib3V0IDUxMiBNaUIuICBCdWZmZXIgc2l6ZXMgYXJlIGFsc28gbGltaXRlZCBi eQp0aGUgYW1vdW50IG9mIG1lbW9yeSBpbiB0aGUgc3lzdGVtLgoKKyBNZW51OgoKICAtIFNlbGVj dCBCdWZmZXI6OiAgICAgICBDcmVhdGluZyBhIG5ldyBidWZmZXIgb3IgcmVzZWxlY3RpbmcgYW4g b2xkIG9uZS4KICAtIExpc3QgQnVmZmVyczo6ICAgICAgICBHZXR0aW5nIGEgbGlzdCBvZiBidWZm ZXJzIHRoYXQgZXhpc3QuCiAgLSBNaXNjIEJ1ZmZlcjo6ICAgICAgICAgUmVuYW1pbmc7IGNoYW5n aW5nIHJlYWQtb25seSBzdGF0dXM7IGNvcHlpbmcgdGV4dC4KICAtIEtpbGwgQnVmZmVyOjogICAg ICAgICBLaWxsaW5nIGJ1ZmZlcnMgeW91IG5vIGxvbmdlciBuZWVkLgogIC0gU2V2ZXJhbCBCdWZm ZXJzOjogICAgIEhvdyB0byBnbyB0aHJvdWdoIHRoZSBsaXN0IG9mIGFsbCBidWZmZXJzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIG9wZXJhdGUgdmFyaW91c2x5IG9uIHNldmVyYWwgb2Yg dGhlbS4KICAtIEluZGlyZWN0IEJ1ZmZlcnM6OiAgICBBbiBpbmRpcmVjdCBidWZmZXIgc2hhcmVz IHRoZSB0ZXh0IG9mIGFub3RoZXIgYnVmZmVyLgogIC0gQnVmZmVyIENvbnZlbmllbmNlOjogIENv bnZlbmllbmNlIGFuZCBjdXN0b21pemF0aW9uIGZlYXR1cmVzIGZvcgogICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1ZmZlciBoYW5kbGluZy4KCgoqKiAxOS4xIENyZWF0aW5nIGFuZCBTZWxlY3Rp bmcgQnVmZmVycwoK4oCYQy14IGIgQlVGRkVSIDxSRVQ+4oCZCiAgICAgU2VsZWN0IG9yIGNyZWF0 ZSBhIGJ1ZmZlciBuYW1lZCBCVUZGRVIgKOKAmHN3aXRjaC10by1idWZmZXLigJkpLgrigJhDLXgg NCBiIEJVRkZFUiA8UkVUPuKAmQogICAgIFNpbWlsYXIsIGJ1dCBzZWxlY3QgQlVGRkVSIGluIGFu b3RoZXIgd2luZG93CiAgICAgKOKAmHN3aXRjaC10by1idWZmZXItb3RoZXItd2luZG934oCZKS4K 4oCYQy14IDUgYiBCVUZGRVIgPFJFVD7igJkKICAgICBTaW1pbGFyLCBidXQgc2VsZWN0IEJVRkZF UiBpbiBhIHNlcGFyYXRlIGZyYW1lCiAgICAgKOKAmHN3aXRjaC10by1idWZmZXItb3RoZXItZnJh bWXigJkpLgrigJhDLXggPExFRlQ+4oCZCiAgICAgU2VsZWN0IHRoZSBwcmV2aW91cyBidWZmZXIg aW4gdGhlIGJ1ZmZlciBsaXN0ICjigJhwcmV2aW91cy1idWZmZXLigJkpLgrigJhDLXggPFJJR0hU PuKAmQogICAgIFNlbGVjdCB0aGUgbmV4dCBidWZmZXIgaW4gdGhlIGJ1ZmZlciBsaXN0ICjigJhu ZXh0LWJ1ZmZlcuKAmSkuCuKAmEMtdSBNLWcgTS1n4oCZCuKAmEMtdSBNLWcgZ+KAmQogICAgIFJl YWQgYSBudW1iZXIgTiBhbmQgbW92ZSB0byBsaW5lIE4gaW4gdGhlIG1vc3QgcmVjZW50bHkgc2Vs ZWN0ZWQKICAgICBidWZmZXIgb3RoZXIgdGhhbiB0aGUgY3VycmVudCBidWZmZXIsIGluIGFub3Ro ZXIgd2luZG93LgoKICAgVGhlIOKAmEMteCBi4oCZICjigJhzd2l0Y2gtdG8tYnVmZmVy4oCZKSBj b21tYW5kIHJlYWRzIGEgYnVmZmVyIG5hbWUgdXNpbmcKdGhlIG1pbmlidWZmZXIuICBUaGVuIGl0 IG1ha2VzIHRoYXQgYnVmZmVyIGN1cnJlbnQsIGFuZCBkaXNwbGF5cyBpdCBpbgp0aGUgY3VycmVu dGx5LXNlbGVjdGVkIHdpbmRvdy4gIEFuIGVtcHR5IGlucHV0IHNwZWNpZmllcyB0aGUgYnVmZmVy IHRoYXQKd2FzIGN1cnJlbnQgbW9zdCByZWNlbnRseSBhbW9uZyB0aG9zZSBub3Qgbm93IGRpc3Bs YXllZCBpbiBhbnkgd2luZG93LgoKICAgV2hpbGUgZW50ZXJpbmcgdGhlIGJ1ZmZlciBuYW1lLCB5 b3UgY2FuIHVzZSB0aGUgdXN1YWwgY29tcGxldGlvbiBhbmQKaGlzdG9yeSBjb21tYW5kcyAoKm5v dGUgTWluaWJ1ZmZlcjo6KS4gIE5vdGUgdGhhdCDigJhDLXggYuKAmSwgYW5kIHJlbGF0ZWQKY29t bWFuZHMsIHVzZSAicGVybWlzc2l2ZSBjb21wbGV0aW9uIHdpdGggY29uZmlybWF0aW9uIiBmb3Ig bWluaWJ1ZmZlcgpjb21wbGV0aW9uOiBpZiB5b3UgdHlwZSA8UkVUPiB3aGVuIHRoZSBtaW5pYnVm ZmVyIHRleHQgbmFtZXMgYQpub25leGlzdGVudCBidWZmZXIsIEVtYWNzIHByaW50cyDigJhbQ29u ZmlybV3igJkgYW5kIHlvdSBtdXN0IHR5cGUgYSBzZWNvbmQKPFJFVD4gdG8gc3VibWl0IHRoYXQg YnVmZmVyIG5hbWUuICAqTm90ZSBDb21wbGV0aW9uIEV4aXQ6OiwgZm9yIGRldGFpbHMuCkZvciBv dGhlciBjb21wbGV0aW9uIG9wdGlvbnMgYW5kIGZlYXR1cmVzLCBzZWUgKm5vdGUgQ29tcGxldGlv bgpPcHRpb25zOjouCgogICBJZiB5b3Ugc3BlY2lmeSBhIGJ1ZmZlciB0aGF0IGRvZXMgbm90IGV4 aXN0LCDigJhDLXggYuKAmSBjcmVhdGVzIGEgbmV3LAplbXB0eSBidWZmZXIgdGhhdCBpcyBub3Qg dmlzaXRpbmcgYW55IGZpbGUsIGFuZCBzZWxlY3RzIGl0IGZvciBlZGl0aW5nLgpUaGUgZGVmYXVs dCB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg4oCYbWFqb3ItbW9kZeKAmSBkZXRlcm1pbmVzIHRoZSBu ZXcKYnVmZmVy4oCZcyBtYWpvciBtb2RlOyB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBGdW5kYW1lbnRh bCBtb2RlLiAgKk5vdGUgTWFqb3IKTW9kZXM6Oi4gIE9uZSByZWFzb24gdG8gY3JlYXRlIGEgbmV3 IGJ1ZmZlciBpcyB0byB1c2UgaXQgZm9yIG1ha2luZwp0ZW1wb3Jhcnkgbm90ZXMuICBJZiB5b3Ug dHJ5IHRvIHNhdmUgaXQsIEVtYWNzIGFza3MgZm9yIHRoZSBmaWxlIG5hbWUgdG8KdXNlLCBhbmQg dGhlIGJ1ZmZlcuKAmXMgbWFqb3IgbW9kZSBpcyByZS1lc3RhYmxpc2hlZCB0YWtpbmcgdGhhdCBm aWxlIG5hbWUKaW50byBhY2NvdW50ICgqbm90ZSBDaG9vc2luZyBNb2Rlczo6KS4KCiAgIEZvciBj b252ZW5pZW50bHkgc3dpdGNoaW5nIGJldHdlZW4gYSBmZXcgYnVmZmVycywgdXNlIHRoZSBjb21t YW5kcwrigJhDLXggPExFRlQ+4oCZIGFuZCDigJhDLXggPFJJR0hUPuKAmS4gIOKAmEMteCA8TEVG VD7igJkgKOKAmHByZXZpb3VzLWJ1ZmZlcuKAmSkKc2VsZWN0cyB0aGUgcHJldmlvdXMgYnVmZmVy IChmb2xsb3dpbmcgdGhlIG9yZGVyIG9mIG1vc3QgcmVjZW50CnNlbGVjdGlvbiBpbiB0aGUgY3Vy cmVudCBmcmFtZSksIHdoaWxlIOKAmEMteCA8UklHSFQ+4oCZICjigJhuZXh0LWJ1ZmZlcuKAmSkK bW92ZXMgdGhyb3VnaCBidWZmZXJzIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4KCiAgIFRvIHNl bGVjdCBhIGJ1ZmZlciBpbiBhIHdpbmRvdyBvdGhlciB0aGFuIHRoZSBjdXJyZW50IG9uZSAoKm5v dGUKV2luZG93czo6KSwgdHlwZSDigJhDLXggNCBi4oCZICjigJhzd2l0Y2gtdG8tYnVmZmVyLW90 aGVyLXdpbmRvd+KAmSkuICBUaGlzCnByb21wdHMgZm9yIGEgYnVmZmVyIG5hbWUgdXNpbmcgdGhl IG1pbmlidWZmZXIsIGRpc3BsYXlzIHRoYXQgYnVmZmVyIGluCmFub3RoZXIgd2luZG93LCBhbmQg c2VsZWN0cyB0aGF0IHdpbmRvdy4KCiAgIFNpbWlsYXJseSwg4oCYQy14IDUgYuKAmSAo4oCYc3dp dGNoLXRvLWJ1ZmZlci1vdGhlci1mcmFtZeKAmSkgcHJvbXB0cyBmb3IgYQpidWZmZXIgbmFtZSwg ZGlzcGxheXMgdGhhdCBidWZmZXIgaW4gYW5vdGhlciBmcmFtZSAoKm5vdGUgRnJhbWVzOjopLCBh bmQKc2VsZWN0cyB0aGF0IGZyYW1lLiAgSWYgdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IGJlaW5nIHNo b3duIGluIGEgd2luZG93IG9uCmFub3RoZXIgZnJhbWUsIEVtYWNzIHNlbGVjdHMgdGhhdCB3aW5k b3cgYW5kIGZyYW1lIGluc3RlYWQgb2YgY3JlYXRpbmcgYQpuZXcgZnJhbWUuCgogICAqTm90ZSBE aXNwbGF5aW5nIEJ1ZmZlcnM6OiwgZm9yIGhvdyB0aGUg4oCYQy14IDQgYuKAmSBhbmQg4oCYQy14 IDUgYuKAmQpjb21tYW5kcyBnZXQgdGhlIHdpbmRvdyBhbmQvb3IgZnJhbWUgdG8gZGlzcGxheSBp bi4KCiAgIEluIGFkZGl0aW9uLCDigJhDLXggQy1m4oCZLCBhbmQgYW55IG90aGVyIGNvbW1hbmQg Zm9yIHZpc2l0aW5nIGEgZmlsZSwKY2FuIGFsc28gYmUgdXNlZCB0byBzd2l0Y2ggdG8gYW4gZXhp c3RpbmcgZmlsZS12aXNpdGluZyBidWZmZXIuICAqTm90ZQpWaXNpdGluZzo6LgoKICAg4oCYQy11 IE0tZyBNLWfigJksIHRoYXQgaXMg4oCYZ290by1saW5l4oCZIHdpdGggYSBwbGFpbiBwcmVmaXgg YXJndW1lbnQsCnJlYWRzIGEgbnVtYmVyIE4gdXNpbmcgdGhlIG1pbmlidWZmZXIsIHNlbGVjdHMg dGhlIG1vc3QgcmVjZW50bHkKc2VsZWN0ZWQgYnVmZmVyIG90aGVyIHRoYW4gdGhlIGN1cnJlbnQg YnVmZmVyIGluIGFub3RoZXIgd2luZG93LCBhbmQKdGhlbiBtb3ZlcyBwb2ludCB0byB0aGUgYmVn aW5uaW5nIG9mIGxpbmUgbnVtYmVyIE4gaW4gdGhhdCBidWZmZXIuICBUaGlzCmlzIG1haW5seSB1 c2VmdWwgaW4gYSBidWZmZXIgdGhhdCByZWZlcnMgdG8gbGluZSBudW1iZXJzIGluIGFub3RoZXIK YnVmZmVyOiBpZiBwb2ludCBpcyBvbiBvciBqdXN0IGFmdGVyIGEgbnVtYmVyLCDigJhnb3RvLWxp bmXigJkgdXNlcyB0aGF0Cm51bWJlciBhcyB0aGUgZGVmYXVsdCBmb3IgTi4gIE5vdGUgdGhhdCBw cmVmaXggYXJndW1lbnRzIG90aGVyIHRoYW4ganVzdArigJhDLXXigJkgYmVoYXZlIGRpZmZlcmVu dGx5LiAg4oCYQy11IDQgTS1nIE0tZ+KAmSBnb2VzIHRvIGxpbmUgNCBpbiB0aGUKX2N1cnJlbnRf IGJ1ZmZlciwgd2l0aG91dCByZWFkaW5nIGEgbnVtYmVyIGZyb20gdGhlIG1pbmlidWZmZXIuCihS ZW1lbWJlciB0aGF0IOKAmE0tZyBNLWfigJkgd2l0aG91dCBwcmVmaXggYXJndW1lbnQgcmVhZHMg YSBudW1iZXIgTiBhbmQKdGhlbiBtb3ZlcyB0byBsaW5lIG51bWJlciBOIGluIHRoZSBjdXJyZW50 IGJ1ZmZlci4gICpOb3RlIE1vdmluZwpQb2ludDo6LikKCiAgIEVtYWNzIHVzZXMgYnVmZmVyIG5h bWVzIHRoYXQgc3RhcnQgd2l0aCBhIHNwYWNlIGZvciBpbnRlcm5hbApwdXJwb3Nlcy4gIEl0IHRy ZWF0cyB0aGVzZSBidWZmZXJzIHNwZWNpYWxseSBpbiBtaW5vciB3YXlz4oCUZm9yIGV4YW1wbGUs CmJ5IGRlZmF1bHQgdGhleSBkbyBub3QgcmVjb3JkIHVuZG8gaW5mb3JtYXRpb24uICBJdCBpcyBi ZXN0IHRvIGF2b2lkCnVzaW5nIHN1Y2ggYnVmZmVyIG5hbWVzIHlvdXJzZWxmLgoKCioqIDE5LjIg TGlzdGluZyBFeGlzdGluZyBCdWZmZXJzCgrigJhDLXggQy1i4oCZCiAgICAgTGlzdCB0aGUgZXhp c3RpbmcgYnVmZmVycyAo4oCYbGlzdC1idWZmZXJz4oCZKS4KCiAgIFRvIGRpc3BsYXkgYSBsaXN0 IG9mIGV4aXN0aW5nIGJ1ZmZlcnMsIHR5cGUg4oCYQy14IEMtYuKAmS4gIFRoaXMgcG9wcyB1cAph IGJ1ZmZlciBtZW51IGluIGEgYnVmZmVyIG5hbWVkIOKAmCpCdWZmZXIgTGlzdCrigJkuICBFYWNo IGxpbmUgaW4gdGhlIGxpc3QKc2hvd3Mgb25lIGJ1ZmZlcuKAmXMgbmFtZSwgc2l6ZSwgbWFqb3Ig bW9kZSBhbmQgdmlzaXRlZCBmaWxlLiAgVGhlIGJ1ZmZlcnMKYXJlIGxpc3RlZCBpbiB0aGUgb3Jk ZXIgdGhhdCB0aGV5IHdlcmUgY3VycmVudDsgdGhlIGJ1ZmZlcnMgdGhhdCB3ZXJlCmN1cnJlbnQg bW9zdCByZWNlbnRseSBjb21lIGZpcnN0LiAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdGhl IGxpc3QKb2YgYnVmZmVycyBpcyBkaXNwbGF5ZWQgYW5kIGhvdyB0byBpbnRlcnByZXQgdGhlIHZh cmlvdXMgaW5kaWNhdGlvbnMgaW4KdGhlIGxpc3Q7IHNlZSAqbm90ZSBTZXZlcmFsIEJ1ZmZlcnM6 OiwgZm9yIGRlc2NyaXB0aW9uIG9mIHRoZSBzcGVjaWFsCm1vZGUgaW4gdGhlIOKAmCpCdWZmZXIg TGlzdCrigJkgYnVmZmVyIGFuZCB0aGUgY29tbWFuZHMgYXZhaWxhYmxlIHRoZXJlLgoKICAg4oCY LuKAmSBpbiB0aGUgZmlyc3QgZmllbGQgb2YgYSBsaW5lIGluZGljYXRlcyB0aGF0IHRoZSBidWZm ZXIgaXMKY3VycmVudC4gIOKAmCXigJkgaW5kaWNhdGVzIGEgcmVhZC1vbmx5IGJ1ZmZlci4gIOKA mCrigJkgaW5kaWNhdGVzIHRoYXQgdGhlCmJ1ZmZlciBpcyBtb2RpZmllZC4gIElmIHNldmVyYWwg YnVmZmVycyBhcmUgbW9kaWZpZWQsIGl0IG1heSBiZSB0aW1lIHRvCnNhdmUgc29tZSB3aXRoIOKA mEMteCBz4oCZICgqbm90ZSBTYXZlIENvbW1hbmRzOjopLiAgSGVyZSBpcyBhbiBleGFtcGxlIG9m IGEKYnVmZmVyIGxpc3Q6CgogICAgIENSTSBCdWZmZXIgICAgICAgICAgICAgICAgU2l6ZSAgTW9k ZSAgICAgICAgICAgICAgRmlsZQogICAgIC4gKiAuZW1hY3MgICAgICAgICAgICAgICAgMzI5NCAg RW1hY3MtTGlzcCAgICAgICAgfi8uZW1hY3MKICAgICAgJSAgKkhlbHAqICAgICAgICAgICAgICAg ICAxMDEgIEhlbHAKICAgICAgICAgc2VhcmNoLmMgICAgICAgICAgICAgODYwNTUgIEMgICAgICAg ICAgICAgICAgIH4vY3ZzL2VtYWNzL3NyYy9zZWFyY2guYwogICAgICAlICBzcmMgICAgICAgICAg ICAgICAgICAyMDk1OSAgRGlyZWQgYnkgbmFtZSAgICAgfi9jdnMvZW1hY3Mvc3JjLwogICAgICAg KiAqbWFpbCogICAgICAgICAgICAgICAgICA0MiAgTWFpbAogICAgICAlICBIRUxMTyAgICAgICAg ICAgICAgICAgMTYwNyAgRnVuZGFtZW50YWwgICAgICAgfi9jdnMvZW1hY3MvZXRjL0hFTExPCiAg ICAgICUgIE5FV1MgICAgICAgICAgICAgICAgNDgxMTg0ICBPdXRsaW5lICAgICAgICAgICB+L2N2 cy9lbWFjcy9ldGMvTkVXUwogICAgICAgICAqc2NyYXRjaCogICAgICAgICAgICAgIDE5MSAgTGlz cCBJbnRlcmFjdGlvbgogICAgICAgKiAqTWVzc2FnZXMqICAgICAgICAgICAgMTU1NCAgTWVzc2Fn ZXMKClRoZSBidWZmZXIg4oCYKkhlbHAq4oCZIHdhcyBtYWRlIGJ5IGEgaGVscCByZXF1ZXN0ICgq bm90ZSBIZWxwOjopOyBpdCBpcyBub3QKdmlzaXRpbmcgYW55IGZpbGUuICBUaGUgYnVmZmVyIOKA mHNyY+KAmSB3YXMgbWFkZSBieSBEaXJlZCBvbiB0aGUgZGlyZWN0b3J5CuKAmH4vY3ZzL2VtYWNz L3NyYy/igJkuICBZb3UgY2FuIGxpc3Qgb25seSBidWZmZXJzIHRoYXQgYXJlIHZpc2l0aW5nIGZp bGVzCmJ5IGdpdmluZyB0aGUgY29tbWFuZCBhIHByZWZpeCBhcmd1bWVudCwgYXMgaW4g4oCYQy11 IEMteCBDLWLigJkuCgogICDigJhsaXN0LWJ1ZmZlcnPigJkgb21pdHMgYnVmZmVycyB3aG9zZSBu YW1lcyBiZWdpbiB3aXRoIGEgc3BhY2UsIHVubGVzcwp0aGV5IHZpc2l0IGZpbGVzOiBzdWNoIGJ1 ZmZlcnMgYXJlIHVzZWQgaW50ZXJuYWxseSBieSBFbWFjcy4KCgoqKiAxOS4zIE1pc2NlbGxhbmVv dXMgQnVmZmVyIE9wZXJhdGlvbnMKCuKAmEMteCBDLXHigJkKICAgICBUb2dnbGUgcmVhZC1vbmx5 IHN0YXR1cyBvZiBidWZmZXIgKOKAmHJlYWQtb25seS1tb2Rl4oCZKS4K4oCYTS14IHJlbmFtZS1i dWZmZXIgPFJFVD4gQlVGRkVSIDxSRVQ+4oCZCiAgICAgQ2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBj dXJyZW50IGJ1ZmZlci4K4oCYTS14IHJlbmFtZS11bmlxdWVseeKAmQogICAgIFJlbmFtZSB0aGUg Y3VycmVudCBidWZmZXIgYnkgYWRkaW5nIOKAmDxOVU1CRVI+4oCZIHRvIHRoZSBlbmQuCuKAmE0t eCB2aWV3LWJ1ZmZlciA8UkVUPiBCVUZGRVIgPFJFVD7igJkKICAgICBTY3JvbGwgdGhyb3VnaCBi dWZmZXIgQlVGRkVSLiAgKk5vdGUgVmlldyBNb2RlOjouCgogICBBIGJ1ZmZlciBjYW4gYmUgInJl YWQtb25seSIsIHdoaWNoIG1lYW5zIHRoYXQgY29tbWFuZHMgdG8gaW5zZXJ0IG9yCmRlbGV0ZSBp dHMgdGV4dCBhcmUgbm90IGFsbG93ZWQuICAoSG93ZXZlciwgb3RoZXIgY29tbWFuZHMsIGxpa2Ug 4oCYQy14CjxSRVQ+IGbigJksIGNhbiBzdGlsbCBtYXJrIGl0IGFzIG1vZGlmaWVkLCAqbm90ZSBU ZXh0IENvZGluZzo6KS4gIFRoZSBtb2RlCmxpbmUgaW5kaWNhdGVzIHJlYWQtb25seSBidWZmZXJz IHdpdGgg4oCYJSXigJkgb3Ig4oCYJSrigJkgbmVhciB0aGUgbGVmdCBtYXJnaW4uCipOb3RlIE1v ZGUgTGluZTo6LiAgUmVhZC1vbmx5IGJ1ZmZlcnMgYXJlIHVzdWFsbHkgbWFkZSBieSBzdWJzeXN0 ZW1zCnN1Y2ggYXMgRGlyZWQgYW5kIFJtYWlsIHRoYXQgaGF2ZSBzcGVjaWFsIGNvbW1hbmRzIHRv IG9wZXJhdGUgb24gdGhlCnRleHQuICBWaXNpdGluZyBhIGZpbGUgd2hvc2UgYWNjZXNzIGNvbnRy b2wgc2F5cyB5b3UgY2Fubm90IHdyaXRlIGl0CmFsc28gbWFrZXMgdGhlIGJ1ZmZlciByZWFkLW9u bHkuCgogICBUaGUgY29tbWFuZCDigJhDLXggQy1x4oCZICjigJhyZWFkLW9ubHktbW9kZeKAmSkg bWFrZXMgYSByZWFkLW9ubHkgYnVmZmVyCndyaXRhYmxlLCBhbmQgbWFrZXMgYSB3cml0YWJsZSBi dWZmZXIgcmVhZC1vbmx5LiAgVGhpcyB3b3JrcyBieSBzZXR0aW5nCnRoZSB2YXJpYWJsZSDigJhi dWZmZXItcmVhZC1vbmx54oCZLCB3aGljaCBoYXMgYSBsb2NhbCB2YWx1ZSBpbiBlYWNoIGJ1ZmZl cgphbmQgbWFrZXMgdGhlIGJ1ZmZlciByZWFkLW9ubHkgaWYgaXRzIHZhbHVlIGlzIG5vbi3igJhu aWzigJkuICBJZiB5b3UgY2hhbmdlCnRoZSBvcHRpb24g4oCYdmlldy1yZWFkLW9ubHnigJkgdG8g YSBub24t4oCYbmls4oCZIHZhbHVlLCBtYWtpbmcgdGhlIGJ1ZmZlcgpyZWFkLW9ubHkgd2l0aCDi gJhDLXggQy1x4oCZIGFsc28gZW5hYmxlcyBWaWV3IG1vZGUgaW4gdGhlIGJ1ZmZlciAoKm5vdGUK VmlldyBNb2RlOjopLgoKICAg4oCYTS14IHJlbmFtZS1idWZmZXLigJkgY2hhbmdlcyB0aGUgbmFt ZSBvZiB0aGUgY3VycmVudCBidWZmZXIuICBZb3UKc3BlY2lmeSB0aGUgbmV3IG5hbWUgYXMgYSBt aW5pYnVmZmVyIGFyZ3VtZW50OyB0aGVyZSBpcyBubyBkZWZhdWx0LiAgSWYKeW91IHNwZWNpZnkg YSBuYW1lIHRoYXQgaXMgaW4gdXNlIGZvciBzb21lIG90aGVyIGJ1ZmZlciwgYW4gZXJyb3IKaGFw cGVucyBhbmQgbm8gcmVuYW1pbmcgaXMgZG9uZS4KCiAgIOKAmE0teCByZW5hbWUtdW5pcXVlbHni gJkgcmVuYW1lcyB0aGUgY3VycmVudCBidWZmZXIgdG8gYSBzaW1pbGFyIG5hbWUKd2l0aCBhIG51 bWVyaWMgc3VmZml4IGFkZGVkIHRvIG1ha2UgaXQgYm90aCBkaWZmZXJlbnQgYW5kIHVuaXF1ZS4g IFRoaXMKY29tbWFuZCBkb2VzIG5vdCBuZWVkIGFuIGFyZ3VtZW50LiAgSXQgaXMgdXNlZnVsIGZv ciBjcmVhdGluZyBtdWx0aXBsZQpzaGVsbCBidWZmZXJzOiBpZiB5b3UgcmVuYW1lIHRoZSDigJgq c2hlbGwq4oCZIGJ1ZmZlciwgdGhlbiBkbyDigJhNLXggc2hlbGzigJkKYWdhaW4sIGl0IG1ha2Vz IGEgbmV3IHNoZWxsIGJ1ZmZlciBuYW1lZCDigJgqc2hlbGwq4oCZOyBtZWFud2hpbGUsIHRoZSBv bGQKc2hlbGwgYnVmZmVyIGNvbnRpbnVlcyB0byBleGlzdCB1bmRlciBpdHMgbmV3IG5hbWUuICBU aGlzIG1ldGhvZCBpcyBhbHNvCmdvb2QgZm9yIG1haWwgYnVmZmVycywgY29tcGlsYXRpb24gYnVm ZmVycywgYW5kIG1vc3QgRW1hY3MgZmVhdHVyZXMgdGhhdApjcmVhdGUgc3BlY2lhbCBidWZmZXJz IHdpdGggcGFydGljdWxhciBuYW1lcy4gIChXaXRoIHNvbWUgb2YgdGhlc2UKZmVhdHVyZXMsIHN1 Y2ggYXMg4oCYTS14IGNvbXBpbGXigJksIOKAmE0teCBncmVw4oCZLCB5b3UgbmVlZCB0byBzd2l0 Y2ggdG8gc29tZQpvdGhlciBidWZmZXIgYmVmb3JlIHVzaW5nIHRoZSBjb21tYW5kIGFnYWluLCBv dGhlcndpc2UgaXQgd2lsbCByZXVzZSB0aGUKY3VycmVudCBidWZmZXIgZGVzcGl0ZSB0aGUgbmFt ZSBjaGFuZ2UuKQoKICAgVGhlIGNvbW1hbmRzIOKAmE0teCBhcHBlbmQtdG8tYnVmZmVy4oCZIGFu ZCDigJhNLXggaW5zZXJ0LWJ1ZmZlcuKAmSBjYW4gYWxzbwpiZSB1c2VkIHRvIGNvcHkgdGV4dCBm cm9tIG9uZSBidWZmZXIgdG8gYW5vdGhlci4gICpOb3RlIEFjY3VtdWxhdGluZwpUZXh0OjouCgoK KiogMTkuNCBLaWxsaW5nIEJ1ZmZlcnMKCklmIHlvdSBjb250aW51ZSBhbiBFbWFjcyBzZXNzaW9u IGZvciBhIHdoaWxlLCB5b3UgbWF5IGFjY3VtdWxhdGUgYSBsYXJnZQpudW1iZXIgb2YgYnVmZmVy cy4gIFlvdSBtYXkgdGhlbiBmaW5kIGl0IGNvbnZlbmllbnQgdG8gImtpbGwiIHRoZQpidWZmZXJz IHlvdSBubyBsb25nZXIgbmVlZC4gIChTb21lIG90aGVyIGVkaXRvcnMgY2FsbCB0aGlzIG9wZXJh dGlvbgoiY2xvc2UiLCBhbmQgdGFsayBhYm91dCDigJxjbG9zaW5nIHRoZSBidWZmZXLigJ0gb3Ig 4oCcY2xvc2luZyB0aGUgZmlsZeKAnQp2aXNpdGVkIGluIHRoZSBidWZmZXIuKSAgT24gbW9zdCBv cGVyYXRpbmcgc3lzdGVtcywga2lsbGluZyBhIGJ1ZmZlcgpyZWxlYXNlcyB0aGUgbWVtb3J5IEVt YWNzIHVzZWQgZm9yIHRoZSBidWZmZXIgYmFjayB0byB0aGUgb3BlcmF0aW5nCnN5c3RlbSBzbyB0 aGF0IG90aGVyIHByb2dyYW1zIGNhbiB1c2UgaXQuICBIZXJlIGFyZSBzb21lIGNvbW1hbmRzIGZv cgpraWxsaW5nIGJ1ZmZlcnM6CgrigJhDLXggayBCVUZGRVIgPFJFVD7igJkKICAgICBLaWxsIGJ1 ZmZlciBCVUZGRVIgKOKAmGtpbGwtYnVmZmVy4oCZKS4K4oCYTS14IGtpbGwtc29tZS1idWZmZXJz 4oCZCiAgICAgT2ZmZXIgdG8ga2lsbCBlYWNoIGJ1ZmZlciwgb25lIGJ5IG9uZS4K4oCYTS14IGtp bGwtbWF0Y2hpbmctYnVmZmVyc+KAmQogICAgIE9mZmVyIHRvIGtpbGwgYWxsIGJ1ZmZlcnMgbWF0 Y2hpbmcgYSByZWd1bGFyIGV4cHJlc3Npb24uCgogICDigJhDLXgga+KAmSAo4oCYa2lsbC1idWZm ZXLigJkpIGtpbGxzIG9uZSBidWZmZXIsIHdob3NlIG5hbWUgeW91IHNwZWNpZnkgaW4KdGhlIG1p bmlidWZmZXIuICBUaGUgZGVmYXVsdCwgdXNlZCBpZiB5b3UgdHlwZSBqdXN0IDxSRVQ+IGluIHRo ZQptaW5pYnVmZmVyLCBpcyB0byBraWxsIHRoZSBjdXJyZW50IGJ1ZmZlci4gIElmIHlvdSBraWxs IHRoZSBjdXJyZW50CmJ1ZmZlciwgYW5vdGhlciBidWZmZXIgYmVjb21lcyBjdXJyZW50OiBvbmUg dGhhdCB3YXMgY3VycmVudCBpbiB0aGUKcmVjZW50IHBhc3QgYnV0IGlzIG5vdCBkaXNwbGF5ZWQg aW4gYW55IHdpbmRvdyBub3cuICBJZiB5b3UgYXNrIHRvIGtpbGwKYSBmaWxlLXZpc2l0aW5nIGJ1 ZmZlciB0aGF0IGlzIG1vZGlmaWVkLCB0aGVuIHlvdSBtdXN0IGNvbmZpcm0gd2l0aArigJh5ZXPi gJkgYmVmb3JlIHRoZSBidWZmZXIgaXMga2lsbGVkLgoKICAgVGhlIGNvbW1hbmQg4oCYTS14IGtp bGwtc29tZS1idWZmZXJz4oCZIGFza3MgYWJvdXQgZWFjaCBidWZmZXIsIG9uZSBieQpvbmUuICBB biBhbnN3ZXIgb2Yg4oCYeWVz4oCZIG1lYW5zIHRvIGtpbGwgdGhlIGJ1ZmZlciwganVzdCBsaWtl CuKAmGtpbGwtYnVmZmVy4oCZLiAgVGhpcyBjb21tYW5kIGlnbm9yZXMgYnVmZmVycyB3aG9zZSBu YW1lcyBiZWdpbiB3aXRoIGEKc3BhY2UsIHdoaWNoIGFyZSB1c2VkIGludGVybmFsbHkgYnkgRW1h Y3MuCgogICBUaGUgY29tbWFuZCDigJhNLXgga2lsbC1tYXRjaGluZy1idWZmZXJz4oCZIHByb21w dHMgZm9yIGEgcmVndWxhcgpleHByZXNzaW9uIGFuZCBraWxscyBhbGwgYnVmZmVycyB3aG9zZSBu YW1lcyBtYXRjaCB0aGF0IGV4cHJlc3Npb24uCipOb3RlIFJlZ2V4cHM6Oi4gIExpa2Ug4oCYa2ls bC1zb21lLWJ1ZmZlcnPigJksIGl0IGFza3MgZm9yIGNvbmZpcm1hdGlvbgpiZWZvcmUgZWFjaCBr aWxsLiAgVGhpcyBjb21tYW5kIG5vcm1hbGx5IGlnbm9yZXMgYnVmZmVycyB3aG9zZSBuYW1lcwpi ZWdpbiB3aXRoIGEgc3BhY2UsIHdoaWNoIGFyZSB1c2VkIGludGVybmFsbHkgYnkgRW1hY3MuICBU byBraWxsCmludGVybmFsIGJ1ZmZlcnMgYXMgd2VsbCwgY2FsbCDigJhraWxsLW1hdGNoaW5nLWJ1 ZmZlcnPigJkgd2l0aCBhIHByZWZpeAphcmd1bWVudC4KCiAgIFRoZSBCdWZmZXIgTWVudSBmZWF0 dXJlIGlzIGFsc28gY29udmVuaWVudCBmb3Iga2lsbGluZyB2YXJpb3VzCmJ1ZmZlcnMuICAqTm90 ZSBTZXZlcmFsIEJ1ZmZlcnM6Oi4KCiAgIElmIHlvdSB3YW50IHRvIGRvIHNvbWV0aGluZyBzcGVj aWFsIGV2ZXJ5IHRpbWUgYSBidWZmZXIgaXMga2lsbGVkLAp5b3UgY2FuIGFkZCBob29rIGZ1bmN0 aW9ucyB0byB0aGUgaG9vayDigJhraWxsLWJ1ZmZlci1ob29r4oCZICgqbm90ZQpIb29rczo6KS4K CiAgIElmIHlvdSBydW4gb25lIEVtYWNzIHNlc3Npb24gZm9yIGEgcGVyaW9kIG9mIGRheXMsIGFz IG1hbnkgcGVvcGxlIGRvLAppdCBjYW4gZmlsbCB1cCB3aXRoIGJ1ZmZlcnMgdGhhdCB5b3UgdXNl ZCBzZXZlcmFsIGRheXMgYWdvLiAgVGhlIGNvbW1hbmQK4oCYTS14IGNsZWFuLWJ1ZmZlci1saXN0 4oCZIGlzIGEgY29udmVuaWVudCB3YXkgdG8gcHVyZ2UgdGhlbTsgaXQga2lsbHMgYWxsCnRoZSB1 bm1vZGlmaWVkIGJ1ZmZlcnMgdGhhdCB5b3UgaGF2ZSBub3QgdXNlZCBmb3IgYSBsb25nIHRpbWUu ICBBbgpvcmRpbmFyeSBidWZmZXIgaXMga2lsbGVkIGlmIGl0IGhhcyBub3QgYmVlbiBkaXNwbGF5 ZWQgZm9yIHRocmVlIGRheXM7Cmhvd2V2ZXIsIHlvdSBjYW4gc3BlY2lmeSBjZXJ0YWluIGJ1ZmZl cnMgdGhhdCBzaG91bGQgbmV2ZXIgYmUga2lsbGVkCmF1dG9tYXRpY2FsbHksIGFuZCBvdGhlcnMg dGhhdCBzaG91bGQgYmUga2lsbGVkIGlmIHRoZXkgaGF2ZSBiZWVuIHVudXNlZApmb3IgYSBtZXJl IGhvdXIuICBUaGVzZSBkZWZhdWx0cywgYW5kIG90aGVyIGFzcGVjdHMgb2YgdGhpcyBjb21tYW5k 4oCZcwpiZWhhdmlvciwgY2FuIGJlIGNvbnRyb2xsZWQgYnkgY3VzdG9taXppbmcgc2V2ZXJhbCBv cHRpb25zIGRlc2NyaWJlZCBpbgp0aGUgZG9jIHN0cmluZyBvZiDigJhjbGVhbi1idWZmZXItbGlz dOKAmS4KCiAgIFlvdSBjYW4gYWxzbyBoYXZlIHRoaXMgYnVmZmVyIHB1cmdpbmcgZG9uZSBmb3Ig eW91LCBvbmNlIGEgZGF5LCBieQplbmFibGluZyBNaWRuaWdodCBtb2RlLiAgTWlkbmlnaHQgbW9k ZSBvcGVyYXRlcyBlYWNoIGRheSBhdCBtaWRuaWdodDsgYXQKdGhhdCB0aW1lLCBpdCBydW5zIOKA mGNsZWFuLWJ1ZmZlci1saXN04oCZLCBvciB3aGljaGV2ZXIgZnVuY3Rpb25zIHlvdSBoYXZlCnBs YWNlZCBpbiB0aGUgbm9ybWFsIGhvb2sg4oCYbWlkbmlnaHQtaG9va+KAmSAoKm5vdGUgSG9va3M6 OikuICBUbyBlbmFibGUKTWlkbmlnaHQgbW9kZSwgdXNlIHRoZSBDdXN0b21pemF0aW9uIGJ1ZmZl ciB0byBzZXQgdGhlIHZhcmlhYmxlCuKAmG1pZG5pZ2h0LW1vZGXigJkgdG8g4oCYdOKAmS4gICpO b3RlIEVhc3kgQ3VzdG9taXphdGlvbjo6LgoKCioqIDE5LjUgT3BlcmF0aW5nIG9uIFNldmVyYWwg QnVmZmVycwoK4oCYTS14IGJ1ZmZlci1tZW514oCZCiAgICAgQmVnaW4gZWRpdGluZyBhIGJ1ZmZl ciBsaXN0aW5nIGFsbCBFbWFjcyBidWZmZXJzLgrigJhNLXggYnVmZmVyLW1lbnUtb3RoZXItd2lu ZG934oCZCiAgICAgU2ltaWxhciwgYnV0IGRvIGl0IGluIGFub3RoZXIgd2luZG93LgoKICAgVGhl ICJCdWZmZXIgTWVudSIgb3BlbmVkIGJ5IOKAmEMteCBDLWLigJkgKCpub3RlIExpc3QgQnVmZmVy czo6KSBkb2VzIG5vdAptZXJlbHkgbGlzdCBidWZmZXJzLiAgSXQgYWxzbyBhbGxvd3MgeW91IHRv IHBlcmZvcm0gdmFyaW91cyBvcGVyYXRpb25zCm9uIGJ1ZmZlcnMsIHRocm91Z2ggYW4gaW50ZXJm YWNlIHNpbWlsYXIgdG8gRGlyZWQgKCpub3RlIERpcmVkOjopLiAgWW91CmNhbiBzYXZlIGJ1ZmZl cnMsIGtpbGwgdGhlbSAoaGVyZSBjYWxsZWQgImRlbGV0aW5nIiB0aGVtLCBmb3IKY29uc2lzdGVu Y3kgd2l0aCBEaXJlZCksIG9yIGRpc3BsYXkgdGhlbS4KCiAgIFRvIHVzZSB0aGUgQnVmZmVyIE1l bnUsIHR5cGUg4oCYQy14IEMtYuKAmSBhbmQgc3dpdGNoIHRvIHRoZSB3aW5kb3cKZGlzcGxheWlu ZyB0aGUg4oCYKkJ1ZmZlciBMaXN0KuKAmSBidWZmZXIuICBZb3UgY2FuIGFsc28gdHlwZSDigJhN LXgKYnVmZmVyLW1lbnXigJkgdG8gb3BlbiB0aGUgQnVmZmVyIE1lbnUgaW4gdGhlIHNlbGVjdGVk IHdpbmRvdy4KQWx0ZXJuYXRpdmVseSwgdGhlIGNvbW1hbmQg4oCYTS14IGJ1ZmZlci1tZW51LW90 aGVyLXdpbmRvd+KAmSBvcGVucyB0aGUKQnVmZmVyIE1lbnUgaW4gYW5vdGhlciB3aW5kb3csIGFu ZCBzZWxlY3RzIHRoYXQgd2luZG93LgoKICAgVGhlIEJ1ZmZlciBNZW51IGlzIGEgcmVhZC1vbmx5 IGJ1ZmZlciwgYW5kIGNhbiBiZSBjaGFuZ2VkIG9ubHkKdGhyb3VnaCB0aGUgc3BlY2lhbCBjb21t YW5kcyBkZXNjcmliZWQgaW4gdGhpcyBzZWN0aW9uLiAgVGhlIHVzdWFsCmN1cnNvciBtb3Rpb24g Y29tbWFuZHMgY2FuIGJlIHVzZWQgaW4gdGhpcyBidWZmZXIuICBUaGUgZm9sbG93aW5nCmNvbW1h bmRzIGFwcGx5IHRvIHRoZSBidWZmZXIgZGVzY3JpYmVkIG9uIHRoZSBjdXJyZW50IGxpbmU6Cgri gJhk4oCZCiAgICAgRmxhZyB0aGUgYnVmZmVyIGZvciBkZWxldGlvbiAoa2lsbGluZyksIHRoZW4g bW92ZSBwb2ludCB0byB0aGUgbmV4dAogICAgIGxpbmUgKOKAmEJ1ZmZlci1tZW51LWRlbGV0ZeKA mSkuICBUaGUgZGVsZXRpb24gZmxhZyBpcyBpbmRpY2F0ZWQgYnkgdGhlCiAgICAgY2hhcmFjdGVy IOKAmETigJkgb24gdGhlIGxpbmUsIGJlZm9yZSB0aGUgYnVmZmVyIG5hbWUuICBUaGUgZGVsZXRp b24KICAgICBvY2N1cnMgb25seSB3aGVuIHlvdSB0eXBlIHRoZSDigJh44oCZIGNvbW1hbmQgKHNl ZSBiZWxvdykuCgrigJhDLWTigJkKICAgICBMaWtlIOKAmGTigJksIGJ1dCBtb3ZlIHBvaW50IHVw IGluc3RlYWQgb2YgZG93bgogICAgICjigJhCdWZmZXItbWVudS1kZWxldGUtYmFja3dhcmRz4oCZ KS4KCuKAmHPigJkKICAgICBGbGFnIHRoZSBidWZmZXIgZm9yIHNhdmluZyAo4oCYQnVmZmVyLW1l bnUtc2F2ZeKAmSkuICBUaGUgc2F2ZSBmbGFnIGlzCiAgICAgaW5kaWNhdGVkIGJ5IHRoZSBjaGFy YWN0ZXIg4oCYU+KAmSBvbiB0aGUgbGluZSwgYmVmb3JlIHRoZSBidWZmZXIgbmFtZS4KICAgICBU aGUgc2F2aW5nIG9jY3VycyBvbmx5IHdoZW4geW91IHR5cGUg4oCYeOKAmS4gIFlvdSBtYXkgcmVx dWVzdCBib3RoCiAgICAgc2F2aW5nIGFuZCBkZWxldGlvbiBmb3IgdGhlIHNhbWUgYnVmZmVyLgoK 4oCYeOKAmQogICAgIFBlcmZvcm0gYWxsIGZsYWdnZWQgZGVsZXRpb25zIGFuZCBzYXZlcyAo4oCY QnVmZmVyLW1lbnUtZXhlY3V0ZeKAmSkuCgrigJh14oCZCiAgICAgUmVtb3ZlIGFsbCBmbGFncyBm cm9tIHRoZSBjdXJyZW50IGxpbmUsIGFuZCBtb3ZlIGRvd24KICAgICAo4oCYQnVmZmVyLW1lbnUt dW5tYXJr4oCZKS4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQsIG1vdmVzIHVwIGFmdGVyCiAgICAg cmVtb3ZpbmcgdGhlIGZsYWdzLgoK4oCYPERFTD7igJkKICAgICBNb3ZlIHRvIHRoZSBwcmV2aW91 cyBsaW5lIGFuZCByZW1vdmUgYWxsIGZsYWdzIG9uIHRoYXQgbGluZQogICAgICjigJhCdWZmZXIt bWVudS1iYWNrdXAtdW5tYXJr4oCZKS4KCuKAmE0tPERFTD7igJkKICAgICBSZW1vdmUgYSBwYXJ0 aWN1bGFyIGZsYWcgZnJvbSBhbGwgbGluZXMKICAgICAo4oCYQnVmZmVyLW1lbnUtdW5tYXJrLWFs bC1idWZmZXJz4oCZKS4gIFRoaXMgYXNrcyBmb3IgYSBzaW5nbGUKICAgICBjaGFyYWN0ZXIsIGFu ZCB1bm1hcmtzIGJ1ZmZlcnMgbWFya2VkIHdpdGggdGhhdCBjaGFyYWN0ZXI7IHR5cGluZwogICAg IDxSRVQ+IHJlbW92ZXMgYWxsIG1hcmtzLgoK4oCYVeKAmQogICAgIFJlbW92ZSBhbGwgZmxhZ3Mg ZnJvbSBhbGwgdGhlIGxpbmVzICjigJhCdWZmZXItbWVudS11bm1hcmstYWxs4oCZKS4KClRoZSBj b21tYW5kcyBmb3IgcmVtb3ZpbmcgZmxhZ3MsIOKAmGTigJkgYW5kIOKAmEMtZOKAmSwgYWNjZXB0 IGEgbnVtZXJpYwphcmd1bWVudCBhcyBhIHJlcGVhdCBjb3VudC4KCiAgIFRoZSBmb2xsb3dpbmcg Y29tbWFuZHMgb3BlcmF0ZSBpbW1lZGlhdGVseSBvbiB0aGUgYnVmZmVyIGxpc3RlZCBvbgp0aGUg Y3VycmVudCBsaW5lLiAgVGhleSBhbHNvIGFjY2VwdCBhIG51bWVyaWMgYXJndW1lbnQgYXMgYSBy ZXBlYXQKY291bnQuCgrigJh+4oCZCiAgICAgTWFyayB0aGUgYnVmZmVyIGFzIHVubW9kaWZpZWQg KOKAmEJ1ZmZlci1tZW51LW5vdC1tb2RpZmllZOKAmSkuICAqTm90ZQogICAgIFNhdmUgQ29tbWFu ZHM6Oi4KCuKAmCXigJkKICAgICBUb2dnbGUgdGhlIGJ1ZmZlcuKAmXMgcmVhZC1vbmx5IHN0YXR1 cwogICAgICjigJhCdWZmZXItbWVudS10b2dnbGUtcmVhZC1vbmx54oCZKS4gICpOb3RlIE1pc2Mg QnVmZmVyOjouCgrigJh04oCZCiAgICAgVmlzaXQgdGhlIGJ1ZmZlciBhcyBhIHRhZ3MgdGFibGUg KOKAmEJ1ZmZlci1tZW51LXZpc2l0LXRhZ3MtdGFibGXigJkpLgogICAgICpOb3RlIFNlbGVjdCBU YWdzIFRhYmxlOjouCgogICBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSB1c2VkIHRvIHNlbGVj dCBhbm90aGVyIGJ1ZmZlciBvciBidWZmZXJzOgoK4oCYceKAmQogICAgIFF1aXQgdGhlIEJ1ZmZl ciBNZW51ICjigJhxdWl0LXdpbmRvd+KAmSkuICBUaGUgbW9zdCByZWNlbnQgZm9ybWVybHkKICAg ICB2aXNpYmxlIGJ1ZmZlciBpcyBkaXNwbGF5ZWQgaW4gaXRzIHBsYWNlLgoK4oCYPFJFVD7igJkK 4oCYZuKAmQogICAgIFNlbGVjdCB0aGlzIGxpbmXigJlzIGJ1ZmZlciwgcmVwbGFjaW5nIHRoZSDi gJgqQnVmZmVyIExpc3Qq4oCZIGJ1ZmZlciBpbgogICAgIGl0cyB3aW5kb3cgKOKAmEJ1ZmZlci1t ZW51LXRoaXMtd2luZG934oCZKS4KCuKAmG/igJkKICAgICBTZWxlY3QgdGhpcyBsaW5l4oCZcyBi dWZmZXIgaW4gYW5vdGhlciB3aW5kb3csIGFzIGlmIGJ5IOKAmEMteCA0IGLigJksCiAgICAgbGVh dmluZyDigJgqQnVmZmVyIExpc3Qq4oCZIHZpc2libGUgKOKAmEJ1ZmZlci1tZW51LW90aGVyLXdp bmRvd+KAmSkuCgrigJhDLW/igJkKICAgICBEaXNwbGF5IHRoaXMgbGluZeKAmXMgYnVmZmVyIGlu IGFub3RoZXIgd2luZG93LCB3aXRob3V0IHNlbGVjdGluZyBpdAogICAgICjigJhCdWZmZXItbWVu dS1zd2l0Y2gtb3RoZXItd2luZG934oCZKS4KCuKAmDHigJkKICAgICBTZWxlY3QgdGhpcyBsaW5l 4oCZcyBidWZmZXIgaW4gYSBmdWxsLWZyYW1lIHdpbmRvdwogICAgICjigJhCdWZmZXItbWVudS0x LXdpbmRvd+KAmSkuCgrigJgy4oCZCiAgICAgU2V0IHVwIHR3byB3aW5kb3dzIG9uIHRoZSBjdXJy ZW50IGZyYW1lLCB3aXRoIHRoaXMgbGluZeKAmXMgYnVmZmVyCiAgICAgc2VsZWN0ZWQgaW4gb25l LCBhbmQgYSBwcmV2aW91c2x5IGN1cnJlbnQgYnVmZmVyIChhc2lkZSBmcm9tCiAgICAg4oCYKkJ1 ZmZlciBMaXN0KuKAmSkgaW4gdGhlIG90aGVyICjigJhCdWZmZXItbWVudS0yLXdpbmRvd+KAmSku CgrigJhi4oCZCiAgICAgQnVyeSB0aGlzIGxpbmXigJlzIGJ1ZmZlciAo4oCYQnVmZmVyLW1lbnUt YnVyeeKAmSkgKGkuZS4sIG1vdmUgaXQgdG8gdGhlCiAgICAgZW5kIG9mIHRoZSBidWZmZXIgbGlz dCkuCgrigJht4oCZCiAgICAgTWFyayB0aGlzIGxpbmXigJlzIGJ1ZmZlciB0byBiZSBkaXNwbGF5 ZWQgaW4gYW5vdGhlciB3aW5kb3cgaWYgeW91CiAgICAgZXhpdCB3aXRoIHRoZSDigJh24oCZIGNv bW1hbmQgKOKAmEJ1ZmZlci1tZW51LW1hcmvigJkpLiAgVGhlIGRpc3BsYXkgZmxhZwogICAgIGlz IGluZGljYXRlZCBieSB0aGUgY2hhcmFjdGVyIOKAmD7igJkgYXQgdGhlIGJlZ2lubmluZyBvZiB0 aGUgbGluZS4gIChBCiAgICAgc2luZ2xlIGJ1ZmZlciBtYXkgbm90IGhhdmUgYm90aCBkZWxldGlv biBhbmQgZGlzcGxheSBmbGFncy4pCgrigJh24oCZCiAgICAgU2VsZWN0IHRoaXMgbGluZeKAmXMg YnVmZmVyLCBhbmQgYWxzbyBkaXNwbGF5IGluIG90aGVyIHdpbmRvd3MgYW55CiAgICAgYnVmZmVy cyBmbGFnZ2VkIHdpdGggdGhlIOKAmG3igJkgY29tbWFuZCAo4oCYQnVmZmVyLW1lbnUtc2VsZWN0 4oCZKS4gIElmCiAgICAgeW91IGhhdmUgbm90IGZsYWdnZWQgYW55IGJ1ZmZlcnMsIHRoaXMgY29t bWFuZCBpcyBlcXVpdmFsZW50IHRvCiAgICAg4oCYMeKAmS4KCiAgIFRoZSBmb2xsb3dpbmcgY29t bWFuZHMgYWZmZWN0IHRoZSBlbnRpcmUgYnVmZmVyIGxpc3Q6CgrigJhT4oCZCiAgICAgU29ydCB0 aGUgQnVmZmVyIE1lbnUgZW50cmllcyBhY2NvcmRpbmcgdG8gdGhlaXIgdmFsdWVzIGluIHRoZQog ICAgIGNvbHVtbiBhdCBwb2ludC4gIFdpdGggYSBudW1lcmljIHByZWZpeCBhcmd1bWVudCBOLCBz b3J0IGFjY29yZGluZwogICAgIHRvIHRoZSBOLXRoIGNvbHVtbiAo4oCYdGFidWxhdGVkLWxpc3Qt c29ydOKAmSkuCgrigJhU4oCZCiAgICAgRGVsZXRlLCBvciByZWluc2VydCwgbGluZXMgZm9yIG5v bi1maWxlIGJ1ZmZlcnMKICAgICAo4oCYQnVmZmVyLW1lbnUtdG9nZ2xlLWZpbGVzLW9ubHnigJkp LiAgVGhpcyBjb21tYW5kIHRvZ2dsZXMgdGhlCiAgICAgaW5jbHVzaW9uIG9mIHN1Y2ggYnVmZmVy cyBpbiB0aGUgYnVmZmVyIGxpc3QuCgogICBOb3JtYWxseSwgdGhlIGJ1ZmZlciDigJgqQnVmZmVy IExpc3Qq4oCZIGlzIG5vdCB1cGRhdGVkIGF1dG9tYXRpY2FsbHkKd2hlbiBidWZmZXJzIGFyZSBj cmVhdGVkIGFuZCBraWxsZWQ7IGl0cyBjb250ZW50cyBhcmUganVzdCB0ZXh0LiAgSWYgeW91Cmhh dmUgY3JlYXRlZCwgZGVsZXRlZCBvciByZW5hbWVkIGJ1ZmZlcnMsIHRoZSB3YXkgdG8gdXBkYXRl IOKAmCpCdWZmZXIKTGlzdCrigJkgdG8gc2hvdyB3aGF0IHlvdSBoYXZlIGRvbmUgaXMgdG8gdHlw ZSDigJhn4oCZICjigJhyZXZlcnQtYnVmZmVy4oCZKS4gIFlvdQpjYW4gbWFrZSB0aGlzIGhhcHBl biByZWd1bGFybHkgZXZlcnkg4oCYYXV0by1yZXZlcnQtaW50ZXJ2YWzigJkgc2Vjb25kcyBpZgp5 b3UgZW5hYmxlIEF1dG8gUmV2ZXJ0IG1vZGUgaW4gdGhpcyBidWZmZXIsIGFzIGxvbmcgYXMgaXQg aXMgbm90IG1hcmtlZAptb2RpZmllZC4gIEdsb2JhbCBBdXRvIFJldmVydCBtb2RlIGFwcGxpZXMg dG8gdGhlIOKAmCpCdWZmZXIgTGlzdCrigJkgYnVmZmVyCm9ubHkgaWYg4oCYZ2xvYmFsLWF1dG8t cmV2ZXJ0LW5vbi1maWxlLWJ1ZmZlcnPigJkgaXMgbm9uLeKAmG5pbOKAmS4gICpOb3RlCmdsb2Jh bC1hdXRvLXJldmVydC1ub24tZmlsZS1idWZmZXJzOiBBdXRvcmV2ZXJ0LCBmb3IgZGV0YWlscy4K CgoqKiAxOS42IEluZGlyZWN0IEJ1ZmZlcnMKCkFuICJpbmRpcmVjdCBidWZmZXIiIHNoYXJlcyB0 aGUgdGV4dCBvZiBzb21lIG90aGVyIGJ1ZmZlciwgd2hpY2ggaXMKY2FsbGVkIHRoZSAiYmFzZSBi dWZmZXIiIG9mIHRoZSBpbmRpcmVjdCBidWZmZXIuICBJbiBzb21lIHdheXMgaXQgaXMgYQpidWZm ZXIgYW5hbG9ndWUgb2YgYSBzeW1ib2xpYyBsaW5rIGJldHdlZW4gZmlsZXMuCgrigJhNLXggbWFr ZS1pbmRpcmVjdC1idWZmZXIgPFJFVD4gQkFTRS1CVUZGRVIgPFJFVD4gSU5ESVJFQ1QtTkFNRSA8 UkVUPuKAmQogICAgIENyZWF0ZSBhbiBpbmRpcmVjdCBidWZmZXIgbmFtZWQgSU5ESVJFQ1QtTkFN RSB3aXRoIGJhc2UgYnVmZmVyCiAgICAgQkFTRS1CVUZGRVIuCuKAmE0teCBjbG9uZS1pbmRpcmVj dC1idWZmZXIgPFJFVD7igJkKICAgICBDcmVhdGUgYW4gaW5kaXJlY3QgYnVmZmVyIHRoYXQgaXMg YSB0d2luIGNvcHkgb2YgdGhlIGN1cnJlbnQKICAgICBidWZmZXIuCuKAmEMteCA0IGPigJkKICAg ICBDcmVhdGUgYW4gaW5kaXJlY3QgYnVmZmVyIHRoYXQgaXMgYSB0d2luIGNvcHkgb2YgdGhlIGN1 cnJlbnQKICAgICBidWZmZXIsIGFuZCBzZWxlY3QgaXQgaW4gYW5vdGhlciB3aW5kb3cKICAgICAo 4oCYY2xvbmUtaW5kaXJlY3QtYnVmZmVyLW90aGVyLXdpbmRvd+KAmSkuCgogICBUaGUgdGV4dCBv ZiB0aGUgaW5kaXJlY3QgYnVmZmVyIGlzIGFsd2F5cyBpZGVudGljYWwgdG8gdGhlIHRleHQgb2YK aXRzIGJhc2UgYnVmZmVyOyBjaGFuZ2VzIG1hZGUgYnkgZWRpdGluZyBlaXRoZXIgb25lIGFyZSB2 aXNpYmxlCmltbWVkaWF0ZWx5IGluIHRoZSBvdGhlci4gIEJ1dCBpbiBhbGwgb3RoZXIgcmVzcGVj dHMsIHRoZSBpbmRpcmVjdApidWZmZXIgYW5kIGl0cyBiYXNlIGJ1ZmZlciBhcmUgY29tcGxldGVs eSBzZXBhcmF0ZS4gIFRoZXkgY2FuIGhhdmUKZGlmZmVyZW50IG5hbWVzLCBkaWZmZXJlbnQgdmFs dWVzIG9mIHBvaW50LCBkaWZmZXJlbnQgbmFycm93aW5nLApkaWZmZXJlbnQgbWFya2VycywgZGlm ZmVyZW50IG1ham9yIG1vZGVzLCBhbmQgZGlmZmVyZW50IGxvY2FsIHZhcmlhYmxlcy4KCiAgIEFu IGluZGlyZWN0IGJ1ZmZlciBjYW5ub3QgdmlzaXQgYSBmaWxlLCBidXQgaXRzIGJhc2UgYnVmZmVy IGNhbi4gIElmCnlvdSB0cnkgdG8gc2F2ZSB0aGUgaW5kaXJlY3QgYnVmZmVyLCB0aGF0IGFjdHVh bGx5IHdvcmtzIGJ5IHNhdmluZyB0aGUKYmFzZSBidWZmZXIuICBLaWxsaW5nIHRoZSBiYXNlIGJ1 ZmZlciBlZmZlY3RpdmVseSBraWxscyB0aGUgaW5kaXJlY3QKYnVmZmVyLCBidXQga2lsbGluZyBh biBpbmRpcmVjdCBidWZmZXIgaGFzIG5vIGVmZmVjdCBvbiBpdHMgYmFzZSBidWZmZXIuCgogICBP bmUgd2F5IHRvIHVzZSBpbmRpcmVjdCBidWZmZXJzIGlzIHRvIGRpc3BsYXkgbXVsdGlwbGUgdmll d3Mgb2YgYW4Kb3V0bGluZS4gICpOb3RlIE91dGxpbmUgVmlld3M6Oi4KCiAgIEEgcXVpY2sgYW5k IGhhbmR5IHdheSB0byBtYWtlIGFuIGluZGlyZWN0IGJ1ZmZlciBpcyB3aXRoIHRoZSBjb21tYW5k CuKAmE0teCBjbG9uZS1pbmRpcmVjdC1idWZmZXLigJkuICBJdCBjcmVhdGVzIGFuZCBzZWxlY3Rz IGFuIGluZGlyZWN0IGJ1ZmZlcgp3aG9zZSBiYXNlIGJ1ZmZlciBpcyB0aGUgY3VycmVudCBidWZm ZXIuICBXaXRoIGEgbnVtZXJpYyBhcmd1bWVudCwgaXQKcHJvbXB0cyBmb3IgdGhlIG5hbWUgb2Yg dGhlIGluZGlyZWN0IGJ1ZmZlcjsgb3RoZXJ3aXNlIGl0IHVzZXMgdGhlIG5hbWUKb2YgdGhlIGN1 cnJlbnQgYnVmZmVyLCB3aXRoIGEg4oCYPE4+4oCZIHN1ZmZpeCBhZGRlZC4gIOKAmEMteCA0IGPi gJkKKOKAmGNsb25lLWluZGlyZWN0LWJ1ZmZlci1vdGhlci13aW5kb3figJkpIHdvcmtzIGxpa2Ug 4oCYTS14CmNsb25lLWluZGlyZWN0LWJ1ZmZlcuKAmSwgYnV0IGl0IHNlbGVjdHMgdGhlIG5ldyBi dWZmZXIgaW4gYW5vdGhlciB3aW5kb3cuClRoZXNlIGZ1bmN0aW9ucyBydW4gdGhlIGhvb2sg4oCY Y2xvbmUtaW5kaXJlY3QtYnVmZmVyLWhvb2vigJkgYWZ0ZXIgY3JlYXRpbmcKdGhlIGluZGlyZWN0 IGJ1ZmZlci4KCiAgIFRoZSBtb3JlIGdlbmVyYWwgd2F5IHRvIG1ha2UgYW4gaW5kaXJlY3QgYnVm ZmVyIGlzIHdpdGggdGhlIGNvbW1hbmQK4oCYTS14IG1ha2UtaW5kaXJlY3QtYnVmZmVy4oCZLiAg SXQgY3JlYXRlcyBhbiBpbmRpcmVjdCBidWZmZXIgbmFtZWQKSU5ESVJFQ1QtTkFNRSBmcm9tIGEg YnVmZmVyIEJBU0UtQlVGRkVSLCBwcm9tcHRpbmcgZm9yIGJvdGggdXNpbmcgdGhlCm1pbmlidWZm ZXIuCgoKKiogMTkuNyBDb252ZW5pZW5jZSBGZWF0dXJlcyBhbmQgQ3VzdG9taXphdGlvbiBvZiBC dWZmZXIgSGFuZGxpbmcKClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgc2V2ZXJhbCBtb2RlcyBhbmQg ZmVhdHVyZXMgdGhhdCBtYWtlIGl0IG1vcmUKY29udmVuaWVudCB0byBzd2l0Y2ggYmV0d2VlbiBi dWZmZXJzLgoKKyBNZW51OgoKICAtIFVuaXF1aWZ5OjogICAgICAgICAgICAgICBNYWtpbmcgYnVm ZmVyIG5hbWVzIHVuaXF1ZSB3aXRoIGRpcmVjdG9yeSBwYXJ0cy4KICAtIEljb21wbGV0ZTo6ICAg ICAgICAgICAgICBGYXN0IG1pbmlidWZmZXIgc2VsZWN0aW9uLgogIC0gQnVmZmVyIE1lbnVzOjog ICAgICAgICAgIENvbmZpZ3VyYWJsZSBidWZmZXIgbWVudS4KCgoqKiogMTkuNy4xIE1ha2luZyBC dWZmZXIgTmFtZXMgVW5pcXVlCgpXaGVuIHNldmVyYWwgYnVmZmVycyB2aXNpdCBpZGVudGljYWxs eS1uYW1lZCBmaWxlcywgRW1hY3MgbXVzdCBnaXZlIHRoZQpidWZmZXJzIGRpc3RpbmN0IG5hbWVz LiAgVGhlIGRlZmF1bHQgbWV0aG9kIGFkZHMgYSBzdWZmaXggYmFzZWQgb24gdGhlCm5hbWVzIG9m IHRoZSBkaXJlY3RvcmllcyB0aGF0IGNvbnRhaW4gdGhlIGZpbGVzLiAgRm9yIGV4YW1wbGUsIGlm IHlvdQp2aXNpdCBmaWxlcyDigJgvZm9vL2Jhci9tdW1ibGUvbmFtZeKAmSBhbmQg4oCYL2Jhei9x dXV4L211bWJsZS9uYW1l4oCZIGF0IHRoZQpzYW1lIHRpbWUsIHRoZWlyIGJ1ZmZlcnMgd2lsbCBi ZSBuYW1lZCDigJhuYW1lPGJhci9tdW1ibGU+4oCZIGFuZArigJhuYW1lPHF1dXgvbXVtYmxlPuKA mSwgcmVzcGVjdGl2ZWx5LiAgRW1hY3MgYWRkcyBhcyBtYW55IGRpcmVjdG9yeSBwYXJ0cwphcyBh cmUgbmVlZGVkIHRvIG1ha2UgYSB1bmlxdWUgbmFtZS4KCiAgIFlvdSBjYW4gY2hvb3NlIGZyb20g c2V2ZXJhbCBkaWZmZXJlbnQgc3R5bGVzIGZvciBjb25zdHJ1Y3RpbmcgdW5pcXVlCmJ1ZmZlciBu YW1lcywgYnkgY3VzdG9taXppbmcgdGhlIG9wdGlvbiDigJh1bmlxdWlmeS1idWZmZXItbmFtZS1z dHlsZeKAmS4KCiAgIFRoZSDigJhmb3J3YXJk4oCZIG5hbWluZyBtZXRob2QgaW5jbHVkZXMgcGFy dCBvZiB0aGUgZmlsZeKAmXMgZGlyZWN0b3J5Cm5hbWUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg YnVmZmVyIG5hbWU7IHVzaW5nIHRoaXMgbWV0aG9kLCBidWZmZXJzCnZpc2l0aW5nIHRoZSBmaWxl cyDigJgvdS9ybXMvdG1wL01ha2VmaWxl4oCZIGFuZArigJgvdXNyL3Byb2plY3RzL3phcGhvZC9N YWtlZmlsZeKAmSB3b3VsZCBiZSBuYW1lZCDigJh0bXAvTWFrZWZpbGXigJkgYW5kCuKAmHphcGhv ZC9NYWtlZmlsZeKAmS4KCiAgIEluIGNvbnRyYXN0LCB0aGUg4oCYcG9zdC1mb3J3YXJk4oCZIG5h bWluZyBtZXRob2Qgd291bGQgY2FsbCB0aGUgYnVmZmVycwrigJhNYWtlZmlsZXx0bXDigJkgYW5k IOKAmE1ha2VmaWxlfHphcGhvZOKAmS4gIFRoZSBkZWZhdWx0IG1ldGhvZArigJhwb3N0LWZvcndh cmQtYW5nbGUtYnJhY2tldHPigJkgaXMgbGlrZSDigJhwb3N0LWZvcndhcmTigJksIGV4Y2VwdCB0 aGF0IGl0CmVuY2xvc2VzIHRoZSB1bmlxdWUgcGF0aCBpbiBhbmdsZSBicmFja2V0cy4gIFRoZSDi gJhyZXZlcnNl4oCZIG5hbWluZyBtZXRob2QKd291bGQgY2FsbCB0aGVtIOKAmE1ha2VmaWxlXHRt cOKAmSBhbmQg4oCYTWFrZWZpbGVcemFwaG9k4oCZLiAgVGhlIG5vbnRyaXZpYWwKZGlmZmVyZW5j ZSBiZXR3ZWVuIOKAmHBvc3QtZm9yd2FyZOKAmSBhbmQg4oCYcmV2ZXJzZeKAmSBvY2N1cnMgd2hl biBqdXN0IG9uZQpkaXJlY3RvcnkgbmFtZSBpcyBub3QgZW5vdWdoIHRvIGRpc3Rpbmd1aXNoIHR3 byBmaWxlczsgdGhlbiDigJhyZXZlcnNl4oCZCnB1dHMgdGhlIGRpcmVjdG9yeSBuYW1lcyBpbiBy ZXZlcnNlIG9yZGVyLCBzbyB0aGF0IOKAmC90b3AvbWlkZGxlL2ZpbGXigJkKYmVjb21lcyDigJhm aWxlXG1pZGRsZVx0b3DigJksIHdoaWxlIOKAmHBvc3QtZm9yd2FyZOKAmSBwdXRzIHRoZW0gaW4g Zm9yd2FyZApvcmRlciBhZnRlciB0aGUgZmlsZSBuYW1lLCBhcyBpbiDigJhmaWxlfHRvcC9taWRk bGXigJkuICBJZgrigJh1bmlxdWlmeS1idWZmZXItbmFtZS1zdHlsZeKAmSBpcyBzZXQgdG8g4oCY bmls4oCZLCB0aGUgYnVmZmVyIG5hbWVzIHNpbXBseQpnZXQg4oCYPDI+4oCZLCDigJg8Mz7igJks IGV0Yy4gYXBwZW5kZWQuCgogICBXaGljaCBydWxlIHRvIGZvbGxvdyBmb3IgcHV0dGluZyB0aGUg ZGlyZWN0b3J5IG5hbWVzIGluIHRoZSBidWZmZXIKbmFtZSBpcyBub3QgdmVyeSBpbXBvcnRhbnQg aWYgeW91IGFyZSBnb2luZyB0byBfbG9va18gYXQgdGhlIGJ1ZmZlcgpuYW1lcyBiZWZvcmUgeW91 IHR5cGUgb25lLiAgQnV0IGFzIGFuIGV4cGVyaWVuY2VkIHVzZXIsIGlmIHlvdSBrbm93IHRoZQpy dWxlLCB5b3Ugd29u4oCZdCBoYXZlIHRvIGxvb2suICBBbmQgdGhlbiB5b3UgbWF5IGZpbmQgdGhh dCBvbmUgcnVsZSBvcgphbm90aGVyIGlzIGVhc2llciBmb3IgeW91IHRvIHJlbWVtYmVyIGFuZCBh cHBseSBxdWlja2x5LgoKCioqKiAxOS43LjIgRmFzdCBtaW5pYnVmZmVyIHNlbGVjdGlvbgoKSWNv bXBsZXRlIGdsb2JhbCBtaW5vciBtb2RlIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gcXVp Y2tseSBzZWxlY3QKYW4gZWxlbWVudCBhbW9uZyB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgaW4g YSBtaW5pYnVmZmVyLiAgV2hlbgplbmFibGVkLCB0eXBpbmcgaW4gdGhlIG1pbmlidWZmZXIgY29u dGludW91c2x5IGRpc3BsYXlzIGEgbGlzdCBvZgpwb3NzaWJsZSBjb21wbGV0aW9ucyB0aGF0IG1h dGNoIHRoZSBzdHJpbmcgeW91IGhhdmUgdHlwZWQuCgogICBBdCBhbnkgdGltZSwgeW91IGNhbiB0 eXBlIOKAmEMtauKAmSB0byBzZWxlY3QgdGhlIGZpcnN0IGNvbXBsZXRpb24gaW4gdGhlCmxpc3Qu ICBTbyB0aGUgd2F5IHRvIHNlbGVjdCBhIHBhcnRpY3VsYXIgY29tcGxldGlvbiBpcyB0byBtYWtl IGl0IHRoZQpmaXJzdCBpbiB0aGUgbGlzdC4gIFRoZXJlIGFyZSB0d28gd2F5cyB0byBkbyB0aGlz LiAgWW91IGNhbiB0eXBlIG1vcmUgb2YKdGhlIGNvbXBsZXRpb24gbmFtZSBhbmQgdGh1cyBuYXJy b3cgZG93biB0aGUgbGlzdCwgZXhjbHVkaW5nIHVud2FudGVkCmNvbXBsZXRpb25zIGFib3ZlIHRo ZSBkZXNpcmVkIG9uZS4gIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIOKAmEMtLuKAmSBhbmQK 4oCYQy0s4oCZIHRvIHJvdGF0ZSB0aGUgbGlzdCB1bnRpbCB0aGUgZGVzaXJlZCBidWZmZXIgaXMg Zmlyc3QuCgogICDigJhNLTxUQUI+4oCZIHdpbGwgc2VsZWN0IHRoZSBmaXJzdCBjb21wbGV0aW9u IGluIHRoZSBsaXN0LCBsaWtlIOKAmEMtauKAmQpidXQgd2l0aG91dCBleGl0aW5nIHRoZSBtaW5p YnVmZmVyLCBzbyB5b3UgY2FuIGVkaXQgaXQgZnVydGhlci4gIFRoaXMgaXMKdHlwaWNhbGx5IHVz ZWQgd2hlbiBlbnRlcmluZyBhIGZpbGUgbmFtZSwgd2hlcmUg4oCYTS08VEFCPuKAmSBjYW4gYmUg dXNlZCBhCmZldyB0aW1lcyB0byBkZXNjZW5kIGluIHRoZSBoaWVyYXJjaHkgb2YgZGlyZWN0b3Jp ZXMuCgogICBUbyBlbmFibGUgSWNvbXBsZXRlIG1vZGUsIHR5cGUg4oCYTS14IGljb21wbGV0ZS1t b2Rl4oCZLCBvciBjdXN0b21pemUgdGhlCnZhcmlhYmxlIOKAmGljb21wbGV0ZS1tb2Rl4oCZIHRv IOKAmHTigJkgKCpub3RlIEVhc3kgQ3VzdG9taXphdGlvbjo6KS4KCgoqKiogMTkuNy4zIEN1c3Rv bWl6aW5nIEJ1ZmZlciBNZW51cwoK4oCYTS14IGJzLXNob3figJkKICAgICBNYWtlIGEgbGlzdCBv ZiBidWZmZXJzIHNpbWlsYXJseSB0byDigJhNLXggbGlzdC1idWZmZXJz4oCZIGJ1dAogICAgIGN1 c3RvbWl6YWJsZS4K4oCYTS14IGlidWZmZXLigJkKICAgICBNYWtlIGEgbGlzdCBvZiBidWZmZXJz IGFuZCBvcGVyYXRlIG9uIHRoZW0gaW4gRGlyZWQtbGlrZSBmYXNoaW9uLgoKICAg4oCYTS14IGJz LXNob3figJkgcG9wcyB1cCBhIGJ1ZmZlciBsaXN0IHNpbWlsYXIgdG8gdGhlIG9uZSBub3JtYWxs eQpkaXNwbGF5ZWQgYnkg4oCYQy14IEMtYuKAmSwgYnV0IHdob3NlIGRpc3BsYXkgeW91IGNhbiBj dXN0b21pemUgaW4gYSBtb3JlCmZsZXhpYmxlIGZhc2hpb24uICBGb3IgZXhhbXBsZSwgeW91IGNh biBzcGVjaWZ5IHRoZSBsaXN0IG9mIGJ1ZmZlcgphdHRyaWJ1dGVzIHRvIHNob3csIHRoZSBtaW5p bXVtIGFuZCBtYXhpbXVtIHdpZHRoIG9mIGJ1ZmZlciBuYW1lIGNvbHVtbiwKYSByZWdleHAgZm9y IG5hbWVzIG9mIGJ1ZmZlcnMgdGhhdCB3aWxsIG5ldmVyIGJlIHNob3duIGFuZCB0aG9zZSB3aGlj aAp3aWxsIGFsd2F5cyBiZSBzaG93biwgZXRjLiAgSWYgeW91IHByZWZlciB0aGlzIHRvIHRoZSB1 c3VhbCBidWZmZXIgbGlzdCwKeW91IGNhbiBiaW5kIHRoaXMgY29tbWFuZCB0byDigJhDLXggQy1i 4oCZLiAgVG8gY3VzdG9taXplIHRoaXMgYnVmZmVyIGxpc3QsCnVzZSB0aGUg4oCYYnPigJkgQ3Vz dG9tIGdyb3VwICgqbm90ZSBFYXN5IEN1c3RvbWl6YXRpb246OiksIG9yIGludm9rZQrigJhicy1j dXN0b21pemXigJkuCgogICBNU0IgZ2xvYmFsIG1pbm9yIG1vZGUgKOKAnE1TQuKAnSBzdGFuZHMg Zm9yIOKAnG1vdXNlIHNlbGVjdCBidWZmZXLigJ0pCnByb3ZpZGVzIGEgZGlmZmVyZW50IGFuZCBj dXN0b21pemFibGUgbW91c2UgYnVmZmVyIG1lbnUgd2hpY2ggeW91IG1heQpwcmVmZXIuICBJdCBy ZXBsYWNlcyB0aGUg4oCYbW91c2UtYnVmZmVyLW1lbnXigJkgY29tbWFuZHMsIG5vcm1hbGx5IGJv dW5kIHRvCuKAmEMtRG93bi1tb3VzZS0x4oCZIGFuZCDigJhDLTxGMTA+4oCZLCB3aXRoIGl0cyBv d24gY29tbWFuZHMsIGFuZCBhbHNvIG1vZGlmaWVzCnRoZSBtZW51LWJhciBidWZmZXIgbWVudS4g IFlvdSBjYW4gY3VzdG9taXplIHRoZSBtZW51IGluIHRoZSDigJhtc2LigJkKQ3VzdG9tIGdyb3Vw LgoKICAgSUJ1ZmZlciBpcyBhIG1ham9yIG1vZGUgZm9yIHZpZXdpbmcgYSBsaXN0IG9mIGJ1ZmZl cnMgYW5kIG9wZXJhdGluZwpvbiB0aGVtIGluIGEgd2F5IGFuYWxvZ291cyB0byB0aGF0IG9mIERp cmVkICgqbm90ZSBEaXJlZDo6KSwgaW5jbHVkaW5nCmZpbHRlcmluZywgbWFya2luZywgc29ydGlu ZyBpbiB2YXJpb3VzIHdheXMsIGFuZCBhY3Rpbmcgb24gYnVmZmVycy4KCgoqIDIwIE11bHRpcGxl IFdpbmRvd3MKCkVtYWNzIGNhbiBzcGxpdCBhIGZyYW1lIGludG8gdHdvIG9yIG1hbnkgd2luZG93 cy4gIE11bHRpcGxlIHdpbmRvd3MgY2FuCmRpc3BsYXkgcGFydHMgb2YgZGlmZmVyZW50IGJ1ZmZl cnMsIG9yIGRpZmZlcmVudCBwYXJ0cyBvZiBvbmUgYnVmZmVyLgpNdWx0aXBsZSBmcmFtZXMgYWx3 YXlzIGltcGx5IG11bHRpcGxlIHdpbmRvd3MsIGJlY2F1c2UgZWFjaCBmcmFtZSBoYXMKaXRzIG93 biBzZXQgb2Ygd2luZG93cy4gIEVhY2ggd2luZG93IGJlbG9uZ3MgdG8gb25lIGFuZCBvbmx5IG9u ZSBmcmFtZS4KCisgTWVudToKCiAgLSBCYXNpYyBXaW5kb3c6OiAgICAgICAgSW50cm9kdWN0aW9u IHRvIEVtYWNzIHdpbmRvd3MuCiAgLSBTcGxpdCBXaW5kb3c6OiAgICAgICAgTmV3IHdpbmRvd3Mg YXJlIG1hZGUgYnkgc3BsaXR0aW5nIGV4aXN0aW5nIHdpbmRvd3MuCiAgLSBPdGhlciBXaW5kb3c6 OiAgICAgICAgTW92aW5nIHRvIGFub3RoZXIgd2luZG93IG9yIGRvaW5nIHNvbWV0aGluZyB0byBp dC4KICAtIFBvcCBVcCBXaW5kb3c6OiAgICAgICBGaW5kaW5nIGEgZmlsZSBvciBidWZmZXIgaW4g YW5vdGhlciB3aW5kb3cuCiAgLSBDaGFuZ2UgV2luZG93OjogICAgICAgRGVsZXRpbmcgd2luZG93 cyBhbmQgY2hhbmdpbmcgdGhlaXIgc2l6ZXMuCiAgLSBEaXNwbGF5aW5nIEJ1ZmZlcnM6OiAgSG93 IEVtYWNzIHBpY2tzIGEgd2luZG93IGZvciBkaXNwbGF5aW5nIGEgYnVmZmVyLgogIC0gV2luZG93 IENvbnZlbmllbmNlOjogIENvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3Igd2luZG93IGhhbmRsaW5n LgoKCioqIDIwLjEgQ29uY2VwdHMgb2YgRW1hY3MgV2luZG93cwoKRWFjaCBFbWFjcyB3aW5kb3cg ZGlzcGxheXMgb25lIEVtYWNzIGJ1ZmZlciBhdCBhbnkgdGltZS4gIEEgc2luZ2xlCmJ1ZmZlciBt YXkgYXBwZWFyIGluIG1vcmUgdGhhbiBvbmUgd2luZG93OyBpZiBpdCBkb2VzLCBhbnkgY2hhbmdl cyBpbgppdHMgdGV4dCBhcmUgZGlzcGxheWVkIGluIGFsbCB0aGUgd2luZG93cyB3aGVyZSBpdCBh cHBlYXJzLiAgQnV0IHRoZXNlCndpbmRvd3MgY2FuIHNob3cgZGlmZmVyZW50IHBhcnRzIG9mIHRo ZSBidWZmZXIsIGJlY2F1c2UgZWFjaCB3aW5kb3cgaGFzCml0cyBvd24gdmFsdWUgb2YgcG9pbnQu CgogICBBdCBhbnkgdGltZSwgb25lIEVtYWNzIHdpbmRvdyBpcyB0aGUgInNlbGVjdGVkIHdpbmRv dyI7IHRoZSBidWZmZXIKdGhpcyB3aW5kb3cgaXMgZGlzcGxheWluZyBpcyB0aGUgY3VycmVudCBi dWZmZXIuICBPbiBncmFwaGljYWwgZGlzcGxheXMsCnRoZSBwb2ludCBpcyBpbmRpY2F0ZWQgYnkg YSBzb2xpZCBibGlua2luZyBjdXJzb3IgaW4gdGhlIHNlbGVjdGVkCndpbmRvdywgYW5kIGJ5IGEg aG9sbG93IGJveCBpbiBub24tc2VsZWN0ZWQgd2luZG93cy4gIE9uIHRleHQgdGVybWluYWxzLAp0 aGUgY3Vyc29yIGlzIGRyYXduIG9ubHkgaW4gdGhlIHNlbGVjdGVkIHdpbmRvdy4gICpOb3RlIEN1 cnNvcgpEaXNwbGF5OjouCgogICBDb21tYW5kcyB0byBtb3ZlIHBvaW50IGFmZmVjdCB0aGUgdmFs dWUgb2YgcG9pbnQgZm9yIHRoZSBzZWxlY3RlZApFbWFjcyB3aW5kb3cgb25seS4gIFRoZXkgZG8g bm90IGNoYW5nZSB0aGUgdmFsdWUgb2YgcG9pbnQgaW4gb3RoZXIgRW1hY3MKd2luZG93cywgZXZl biB0aG9zZSBzaG93aW5nIHRoZSBzYW1lIGJ1ZmZlci4gIFRoZSBzYW1lIGlzIHRydWUgZm9yCmJ1 ZmZlci1zd2l0Y2hpbmcgY29tbWFuZHMgc3VjaCBhcyDigJhDLXggYuKAmTsgdGhleSBkbyBub3Qg YWZmZWN0IG90aGVyCndpbmRvd3MgYXQgYWxsLiAgSG93ZXZlciwgdGhlcmUgYXJlIG90aGVyIGNv bW1hbmRzIHN1Y2ggYXMg4oCYQy14IDQgYuKAmQp0aGF0IHNlbGVjdCBhIGRpZmZlcmVudCB3aW5k b3cgYW5kIHN3aXRjaCBidWZmZXJzIGluIGl0LiAgQWxzbywgYWxsCmNvbW1hbmRzIHRoYXQgZGlz cGxheSBpbmZvcm1hdGlvbiBpbiBhIHdpbmRvdywgaW5jbHVkaW5nIChmb3IgZXhhbXBsZSkK4oCY Qy1oIGbigJkgKOKAmGRlc2NyaWJlLWZ1bmN0aW9u4oCZKSBhbmQg4oCYQy14IEMtYuKAmSAo4oCY bGlzdC1idWZmZXJz4oCZKSwgd29yayBieQpzd2l0Y2hpbmcgYnVmZmVycyBpbiBhIG5vbnNlbGVj dGVkIHdpbmRvdyB3aXRob3V0IGFmZmVjdGluZyB0aGUgc2VsZWN0ZWQKd2luZG93LgoKICAgV2hl biBtdWx0aXBsZSB3aW5kb3dzIHNob3cgdGhlIHNhbWUgYnVmZmVyLCB0aGV5IGNhbiBoYXZlIGRp ZmZlcmVudApyZWdpb25zLCBiZWNhdXNlIHRoZXkgY2FuIGhhdmUgZGlmZmVyZW50IHZhbHVlcyBv ZiBwb2ludC4gIEhvd2V2ZXIsIHRoZXkKYWxsIGhhdmUgdGhlIHNhbWUgdmFsdWUgZm9yIHRoZSBt YXJrLCBiZWNhdXNlIGVhY2ggYnVmZmVyIGhhcyBvbmx5IG9uZQptYXJrIHBvc2l0aW9uLgoKICAg RWFjaCB3aW5kb3cgaGFzIGl0cyBvd24gbW9kZSBsaW5lLCB3aGljaCBkaXNwbGF5cyB0aGUgYnVm ZmVyIG5hbWUsCm1vZGlmaWNhdGlvbiBzdGF0dXMgYW5kIG1ham9yIGFuZCBtaW5vciBtb2RlcyBv ZiB0aGUgYnVmZmVyIHRoYXQgaXMKZGlzcGxheWVkIGluIHRoZSB3aW5kb3cuICBUaGUgc2VsZWN0 ZWQgd2luZG934oCZcyBtb2RlIGxpbmUgYXBwZWFycyBpbiBhCmRpZmZlcmVudCBjb2xvci4gICpO b3RlIE1vZGUgTGluZTo6LCBmb3IgZGV0YWlscy4KCgoqKiAyMC4yIFNwbGl0dGluZyBXaW5kb3dz CgrigJhDLXggMuKAmQogICAgIFNwbGl0IHRoZSBzZWxlY3RlZCB3aW5kb3cgaW50byB0d28gd2lu ZG93cywgb25lIGFib3ZlIHRoZSBvdGhlcgogICAgICjigJhzcGxpdC13aW5kb3ctYmVsb3figJkp LgrigJhDLXggM+KAmQogICAgIFNwbGl0IHRoZSBzZWxlY3RlZCB3aW5kb3cgaW50byB0d28gd2lu ZG93cywgcG9zaXRpb25lZCBzaWRlIGJ5IHNpZGUKICAgICAo4oCYc3BsaXQtd2luZG93LXJpZ2h0 4oCZKS4K4oCYQy1tb3VzZS0y4oCZCiAgICAgSW4gdGhlIG1vZGUgbGluZSBvZiBhIHdpbmRvdywg c3BsaXQgdGhhdCB3aW5kb3cuCgogICDigJhDLXggMuKAmSAo4oCYc3BsaXQtd2luZG93LWJlbG93 4oCZKSBzcGxpdHMgdGhlIHNlbGVjdGVkIHdpbmRvdyBpbnRvIHR3bwp3aW5kb3dzLCBvbmUgYWJv dmUgdGhlIG90aGVyLiAgQWZ0ZXIgc3BsaXR0aW5nLCB0aGUgc2VsZWN0ZWQgd2luZG93IGlzCnRo ZSB1cHBlciBvbmUsIGFuZCB0aGUgbmV3bHkgc3BsaXQtb2ZmIHdpbmRvdyBpcyBiZWxvdy4gIEJv dGggd2luZG93cwpoYXZlIHRoZSBzYW1lIHZhbHVlIG9mIHBvaW50IGFzIGJlZm9yZSwgYW5kIGRp c3BsYXkgdGhlIHNhbWUgcG9ydGlvbiBvZgp0aGUgYnVmZmVyIChvciBhcyBjbG9zZSB0byBpdCBh cyBwb3NzaWJsZSkuICBJZiBuZWNlc3NhcnksIHRoZSB3aW5kb3dzCmFyZSBzY3JvbGxlZCB0byBr ZWVwIHBvaW50IG9uLXNjcmVlbi4gIEJ5IGRlZmF1bHQsIHRoZSB0d28gd2luZG93cyBlYWNoCmdl dCBoYWxmIHRoZSBoZWlnaHQgb2YgdGhlIG9yaWdpbmFsIHdpbmRvdy4gIEEgcG9zaXRpdmUgbnVt ZXJpYyBhcmd1bWVudApzcGVjaWZpZXMgaG93IG1hbnkgbGluZXMgdG8gZ2l2ZSB0byB0aGUgdG9w IHdpbmRvdzsgYSBuZWdhdGl2ZSBudW1lcmljCmFyZ3VtZW50IHNwZWNpZmllcyBob3cgbWFueSBs aW5lcyB0byBnaXZlIHRvIHRoZSBib3R0b20gd2luZG93LgoKICAgSWYgeW91IGNoYW5nZSB0aGUg dmFyaWFibGUg4oCYc3BsaXQtd2luZG93LWtlZXAtcG9pbnTigJkgdG8g4oCYbmls4oCZLCDigJhD LXgKMuKAmSBpbnN0ZWFkIGFkanVzdHMgdGhlIHBvcnRpb24gb2YgdGhlIGJ1ZmZlciBkaXNwbGF5 ZWQgYnkgdGhlIHR3bwp3aW5kb3dzLCBhcyB3ZWxsIGFzIHRoZSB2YWx1ZSBvZiBwb2ludCBpbiBl YWNoIHdpbmRvdywgaW4gb3JkZXIgdG8ga2VlcAp0aGUgdGV4dCBvbiB0aGUgc2NyZWVuIGFzIGNs b3NlIGFzIHBvc3NpYmxlIHRvIHdoYXQgaXQgd2FzIGJlZm9yZTsKZnVydGhlcm1vcmUsIGlmIHBv aW50IHdhcyBpbiB0aGUgbG93ZXIgaGFsZiBvZiB0aGUgb3JpZ2luYWwgd2luZG93LCB0aGUKYm90 dG9tIHdpbmRvdyBpcyBzZWxlY3RlZCBpbnN0ZWFkIG9mIHRoZSB1cHBlciBvbmUuCgogICDigJhD LXggM+KAmSAo4oCYc3BsaXQtd2luZG93LXJpZ2h04oCZKSBzcGxpdHMgdGhlIHNlbGVjdGVkIHdp bmRvdyBpbnRvIHR3bwpzaWRlLWJ5LXNpZGUgd2luZG93cy4gIFRoZSBsZWZ0IHdpbmRvdyBpcyB0 aGUgc2VsZWN0ZWQgb25lOyB0aGUgcmlnaHQKd2luZG93IGRpc3BsYXlzIHRoZSBzYW1lIHBvcnRp b24gb2YgdGhlIHNhbWUgYnVmZmVyLCBhbmQgaGFzIHRoZSBzYW1lCnZhbHVlIG9mIHBvaW50LiAg QSBwb3NpdGl2ZSBudW1lcmljIGFyZ3VtZW50IHNwZWNpZmllcyBob3cgbWFueSBjb2x1bW5zCnRv IGdpdmUgdGhlIGxlZnQgd2luZG93OyBhIG5lZ2F0aXZlIG51bWVyaWMgYXJndW1lbnQgc3BlY2lm aWVzIGhvdyBtYW55CmNvbHVtbnMgdG8gZ2l2ZSB0aGUgcmlnaHQgd2luZG93LgoKICAgV2hlbiB5 b3Ugc3BsaXQgYSB3aW5kb3cgd2l0aCDigJhDLXggM+KAmSwgZWFjaCByZXN1bHRpbmcgd2luZG93 IG9jY3VwaWVzCmxlc3MgdGhhbiB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgZnJhbWUuICBJZiBpdCBi ZWNvbWVzIHRvbyBuYXJyb3csIHRoZQpidWZmZXIgbWF5IGJlIGRpZmZpY3VsdCB0byByZWFkIGlm IGNvbnRpbnVhdGlvbiBsaW5lcyBhcmUgaW4gdXNlICgqbm90ZQpDb250aW51YXRpb24gTGluZXM6 OikuICBUaGVyZWZvcmUsIEVtYWNzIGF1dG9tYXRpY2FsbHkgc3dpdGNoZXMgdG8gbGluZQp0cnVu Y2F0aW9uIGlmIHRoZSB3aW5kb3cgd2lkdGggYmVjb21lcyBuYXJyb3dlciB0aGFuIDUwIGNvbHVt bnMuICBUaGlzCnRydW5jYXRpb24gb2NjdXJzIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRo ZSB2YXJpYWJsZQrigJh0cnVuY2F0ZS1saW5lc+KAmSAoKm5vdGUgTGluZSBUcnVuY2F0aW9uOjop OyBpdCBpcyBpbnN0ZWFkIGNvbnRyb2xsZWQgYnkKdGhlIHZhcmlhYmxlIOKAmHRydW5jYXRlLXBh cnRpYWwtd2lkdGgtd2luZG93c+KAmS4gIElmIHRoZSB2YWx1ZSBvZiB0aGlzCnZhcmlhYmxlIGlz IGEgcG9zaXRpdmUgaW50ZWdlciAodGhlIGRlZmF1bHQgaXMgNTApLCB0aGF0IHNwZWNpZmllcyB0 aGUKbWluaW11bSB0b3RhbCB3aWR0aCBmb3IgYSBwYXJ0aWFsLXdpZHRoIHdpbmRvdyBiZWZvcmUg YXV0b21hdGljIGxpbmUKdHJ1bmNhdGlvbiBvY2N1cnM7IGlmIHRoZSB2YWx1ZSBpcyDigJhuaWzi gJksIGF1dG9tYXRpYyBsaW5lIHRydW5jYXRpb24gaXMKZGlzYWJsZWQ7IGFuZCBmb3IgYW55IG90 aGVyIG5vbi3igJhuaWzigJkgdmFsdWUsIEVtYWNzIHRydW5jYXRlcyBsaW5lcyBpbgpldmVyeSBw YXJ0aWFsLXdpZHRoIHdpbmRvdyByZWdhcmRsZXNzIG9mIGl0cyB3aWR0aC4gIFRoZSB0b3RhbCB3 aWR0aCBvZgphIHdpbmRvdyBpcyBpbiBjb2x1bW4gdW5pdHMgYXMgcmVwb3J0ZWQgYnkg4oCYd2lu ZG93LXRvdGFsLXdpZHRo4oCZICgqbm90ZQooZWxpc3ApV2luZG93IFNpemVzOjopLCBpdCBpbmNs dWRlcyB0aGUgZnJpbmdlcywgdGhlIGNvbnRpbnVhdGlvbiBhbmQKdHJ1bmNhdGlvbiBnbHlwaHMs IHRoZSBtYXJnaW5zLCBhbmQgdGhlIHNjcm9sbCBiYXIuCgogICBPbiB0ZXh0IHRlcm1pbmFscywg c2lkZS1ieS1zaWRlIHdpbmRvd3MgYXJlIHNlcGFyYXRlZCBieSBhIHZlcnRpY2FsCmRpdmlkZXIg d2hpY2ggaXMgZHJhd24gdXNpbmcgdGhlIOKAmHZlcnRpY2FsLWJvcmRlcuKAmSBmYWNlLgoKICAg SWYgeW91IGNsaWNrIOKAmEMtbW91c2UtMuKAmSBpbiB0aGUgbW9kZSBsaW5lIG9mIGEgd2luZG93 LCB0aGF0IHNwbGl0cwp0aGUgd2luZG93LCBwdXR0aW5nIGEgdmVydGljYWwgZGl2aWRlciB3aGVy ZSB5b3UgY2xpY2suICBEZXBlbmRpbmcgb24KaG93IEVtYWNzIGlzIGNvbXBpbGVkLCB5b3UgY2Fu IGFsc28gc3BsaXQgYSB3aW5kb3cgYnkgY2xpY2tpbmcK4oCYQy1tb3VzZS0y4oCZIGluIHRoZSBz Y3JvbGwgYmFyLCB3aGljaCBwdXRzIGEgaG9yaXpvbnRhbCBkaXZpZGVyIHdoZXJlIHlvdQpjbGlj ayAodGhpcyBmZWF0dXJlIGRvZXMgbm90IHdvcmsgd2hlbiBFbWFjcyB1c2VzIEdUSysgc2Nyb2xs IGJhcnMpLgoKICAgQnkgZGVmYXVsdCwgd2hlbiB5b3Ugc3BsaXQgYSB3aW5kb3csIEVtYWNzIGdp dmVzIGVhY2ggb2YgdGhlCnJlc3VsdGluZyB3aW5kb3dzIGRpbWVuc2lvbnMgdGhhdCBhcmUgYW4g aW50ZWdyYWwgbXVsdGlwbGUgb2YgdGhlCmRlZmF1bHQgZm9udCBzaXplIG9mIHRoZSBmcmFtZS4g IFRoYXQgbWlnaHQgc3ViZGl2aWRlIHRoZSBzY3JlZW4gZXN0YXRlCnVuZXZlbmx5IGJldHdlZW4g dGhlIHJlc3VsdGluZyB3aW5kb3dzLiAgSWYgeW91IHNldCB0aGUgdmFyaWFibGUK4oCYd2luZG93 LXJlc2l6ZS1waXhlbHdpc2XigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLCBFbWFjcyB3aWxs IGdpdmUgZWFjaAp3aW5kb3cgdGhlIHNhbWUgbnVtYmVyIG9mIHBpeGVscyAoZ2l2ZSBvciB0YWtl IG9uZSBwaXhlbCBpZiB0aGUgaW5pdGlhbApkaW1lbnNpb24gd2FzIGFuIG9kZCBudW1iZXIgb2Yg cGl4ZWxzKS4gIE5vdGUgdGhhdCB3aGVuIGEgZnJhbWXigJlzIHBpeGVsCnNpemUgaXMgbm90IGEg bXVsdGlwbGUgb2YgdGhlIGZyYW1l4oCZcyBjaGFyYWN0ZXIgc2l6ZSwgYXQgbGVhc3Qgb25lCndp bmRvdyBtYXkgZ2V0IHJlc2l6ZWQgcGl4ZWx3aXNlIGV2ZW4gaWYgdGhpcyBvcHRpb24gaXMg4oCY bmls4oCZLgoKCioqIDIwLjMgVXNpbmcgT3RoZXIgV2luZG93cwoK4oCYQy14IG/igJkKICAgICBT ZWxlY3QgYW5vdGhlciB3aW5kb3cgKOKAmG90aGVyLXdpbmRvd+KAmSkuCuKAmEMtTS124oCZCiAg ICAgU2Nyb2xsIHRoZSBuZXh0IHdpbmRvdyAo4oCYc2Nyb2xsLW90aGVyLXdpbmRvd+KAmSkuCuKA mG1vdXNlLTHigJkKICAgICDigJhtb3VzZS0x4oCZLCBpbiB0aGUgdGV4dCBhcmVhIG9mIGEgd2lu ZG93LCBzZWxlY3RzIHRoZSB3aW5kb3cgYW5kCiAgICAgbW92ZXMgcG9pbnQgdG8gdGhlIHBvc2l0 aW9uIGNsaWNrZWQuICBDbGlja2luZyBpbiB0aGUgbW9kZSBsaW5lCiAgICAgc2VsZWN0cyB0aGUg d2luZG93IHdpdGhvdXQgbW92aW5nIHBvaW50IGluIGl0LgoKICAgV2l0aCB0aGUga2V5Ym9hcmQs IHlvdSBjYW4gc3dpdGNoIHdpbmRvd3MgYnkgdHlwaW5nIOKAmEMteCBv4oCZCijigJhvdGhlci13 aW5kb3figJkpLiAgVGhhdCBpcyBhbiDigJhv4oCZLCBmb3Ig4oCcb3RoZXLigJ0sIG5vdCBhIHpl cm8uICBXaGVuIHRoZXJlCmFyZSBtb3JlIHRoYW4gdHdvIHdpbmRvd3MsIHRoaXMgY29tbWFuZCBt b3ZlcyB0aHJvdWdoIGFsbCB0aGUgd2luZG93cyBpbgphIGN5Y2xpYyBvcmRlciwgZ2VuZXJhbGx5 IHRvcCB0byBib3R0b20gYW5kIGxlZnQgdG8gcmlnaHQuICBBZnRlciB0aGUKcmlnaHRtb3N0IGFu ZCBib3R0b21tb3N0IHdpbmRvdywgaXQgZ29lcyBiYWNrIHRvIHRoZSBvbmUgYXQgdGhlIHVwcGVy CmxlZnQgY29ybmVyLiAgQSBudW1lcmljIGFyZ3VtZW50IG1lYW5zIHRvIG1vdmUgc2V2ZXJhbCBz dGVwcyBpbiB0aGUKY3ljbGljIG9yZGVyIG9mIHdpbmRvd3MuICBBIG5lZ2F0aXZlIGFyZ3VtZW50 IG1vdmVzIGFyb3VuZCB0aGUgY3ljbGUgaW4KdGhlIG9wcG9zaXRlIG9yZGVyLiAgV2hlbiB0aGUg bWluaWJ1ZmZlciBpcyBhY3RpdmUsIHRoZSBtaW5pYnVmZmVyCndpbmRvdyBpcyB0aGUgbGFzdCB3 aW5kb3cgaW4gdGhlIGN5Y2xlOyB5b3UgY2FuIHN3aXRjaCBmcm9tIHRoZQptaW5pYnVmZmVyIHdp bmRvdyB0byBvbmUgb2YgdGhlIG90aGVyIHdpbmRvd3MsIGFuZCBsYXRlciBzd2l0Y2ggYmFjayBh bmQKZmluaXNoIHN1cHBseWluZyB0aGUgbWluaWJ1ZmZlciBhcmd1bWVudCB0aGF0IGlzIHJlcXVl c3RlZC4gICpOb3RlCk1pbmlidWZmZXIgRWRpdDo6LgoKICAgVGhlIHVzdWFsIHNjcm9sbGluZyBj b21tYW5kcyAoKm5vdGUgRGlzcGxheTo6KSBhcHBseSB0byB0aGUgc2VsZWN0ZWQKd2luZG93IG9u bHksIGJ1dCB0aGVyZSBpcyBvbmUgY29tbWFuZCB0byBzY3JvbGwgdGhlIG5leHQgd2luZG93Lgri gJhDLU0tduKAmSAo4oCYc2Nyb2xsLW90aGVyLXdpbmRvd+KAmSkgc2Nyb2xscyB0aGUgd2luZG93 IHRoYXQg4oCYQy14IG/igJkgd291bGQKc2VsZWN0LiAgSXQgdGFrZXMgYXJndW1lbnRzLCBwb3Np dGl2ZSBhbmQgbmVnYXRpdmUsIGxpa2Ug4oCYQy124oCZLiAgKEluIHRoZQptaW5pYnVmZmVyLCDi gJhDLU0tduKAmSBzY3JvbGxzIHRoZSBoZWxwIHdpbmRvdyBhc3NvY2lhdGVkIHdpdGggdGhlCm1p bmlidWZmZXIsIGlmIGFueSwgcmF0aGVyIHRoYW4gdGhlIG5leHQgd2luZG93IGluIHRoZSBzdGFu ZGFyZCBjeWNsaWMKb3JkZXI7ICpub3RlIE1pbmlidWZmZXIgRWRpdDo6LikKCiAgIElmIHlvdSBz ZXQg4oCYbW91c2UtYXV0b3NlbGVjdC13aW5kb3figJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVl LCBtb3ZpbmcgdGhlCm1vdXNlIG92ZXIgYSBkaWZmZXJlbnQgd2luZG93IHNlbGVjdHMgdGhhdCB3 aW5kb3cuICBUaGlzIGZlYXR1cmUgaXMgb2ZmCmJ5IGRlZmF1bHQuCgoKKiogMjAuNCBEaXNwbGF5 aW5nIGluIEFub3RoZXIgV2luZG93CgrigJhDLXggNOKAmSBpcyBhIHByZWZpeCBrZXkgZm9yIGEg dmFyaWV0eSBvZiBjb21tYW5kcyB0aGF0IHN3aXRjaCB0byBhCmJ1ZmZlciBpbiBhIGRpZmZlcmVu dCB3aW5kb3figJRlaXRoZXIgYW5vdGhlciBleGlzdGluZyB3aW5kb3csIG9yIGEgbmV3CndpbmRv dyBjcmVhdGVkIGJ5IHNwbGl0dGluZyB0aGUgc2VsZWN0ZWQgd2luZG93LiAgKk5vdGUgV2luZG93 IENob2ljZTo6LApmb3IgaG93IEVtYWNzIHBpY2tzIG9yIGNyZWF0ZXMgdGhlIHdpbmRvdyB0byB1 c2UuCgrigJhDLXggNCBiIEJVRk5BTUUgPFJFVD7igJkKICAgICBTZWxlY3QgYnVmZmVyIEJVRk5B TUUgaW4gYW5vdGhlciB3aW5kb3cKICAgICAo4oCYc3dpdGNoLXRvLWJ1ZmZlci1vdGhlci13aW5k b3figJkpLiAgKk5vdGUgU2VsZWN0IEJ1ZmZlcjo6LgoK4oCYQy14IDQgQy1vIEJVRk5BTUUgPFJF VD7igJkKICAgICBEaXNwbGF5IGJ1ZmZlciBCVUZOQU1FIGluIHNvbWUgd2luZG93LCB3aXRob3V0 IHRyeWluZyB0byBzZWxlY3QgaXQKICAgICAo4oCYZGlzcGxheS1idWZmZXLigJkpLiAgKk5vdGUg RGlzcGxheWluZyBCdWZmZXJzOjosIGZvciBkZXRhaWxzIGFib3V0CiAgICAgaG93IHRoZSB3aW5k b3cgaXMgY2hvc2VuLgoK4oCYQy14IDQgZiBGSUxFTkFNRSA8UkVUPuKAmQogICAgIFZpc2l0IGZp bGUgRklMRU5BTUUgYW5kIHNlbGVjdCBpdHMgYnVmZmVyIGluIGFub3RoZXIgd2luZG93CiAgICAg KOKAmGZpbmQtZmlsZS1vdGhlci13aW5kb3figJkpLiAgKk5vdGUgVmlzaXRpbmc6Oi4KCuKAmEMt eCA0IGQgRElSRUNUT1JZIDxSRVQ+4oCZCiAgICAgU2VsZWN0IGEgRGlyZWQgYnVmZmVyIGZvciBk aXJlY3RvcnkgRElSRUNUT1JZIGluIGFub3RoZXIgd2luZG93CiAgICAgKOKAmGRpcmVkLW90aGVy LXdpbmRvd+KAmSkuICAqTm90ZSBEaXJlZDo6LgoK4oCYQy14IDQgbeKAmQogICAgIFN0YXJ0IGNv bXBvc2luZyBhIG1haWwgbWVzc2FnZSwgc2ltaWxhciB0byDigJhDLXggbeKAmSAoKm5vdGUgU2Vu ZGluZwogICAgIE1haWw6OiksIGJ1dCBpbiBhbm90aGVyIHdpbmRvdyAo4oCYY29tcG9zZS1tYWls LW90aGVyLXdpbmRvd+KAmSkuCgrigJhDLXggNCAu4oCZCiAgICAgRmluZCB0aGUgZGVmaW5pdGlv biBvZiBhbiBpZGVudGlmaWVyLCBzaW1pbGFyIHRvIOKAmE0tLuKAmSAoKm5vdGUKICAgICBYcmVm OjopLCBidXQgaW4gYW5vdGhlciB3aW5kb3cKICAgICAo4oCYeHJlZi1maW5kLWRlZmluaXRpb25z LW90aGVyLXdpbmRvd+KAmSkuCuKAmEMteCA0IHIgRklMRU5BTUUgPFJFVD7igJkKICAgICBWaXNp dCBmaWxlIEZJTEVOQU1FIHJlYWQtb25seSwgYW5kIHNlbGVjdCBpdHMgYnVmZmVyIGluIGFub3Ro ZXIKICAgICB3aW5kb3cgKOKAmGZpbmQtZmlsZS1yZWFkLW9ubHktb3RoZXItd2luZG934oCZKS4g ICpOb3RlIFZpc2l0aW5nOjouCgoKKiogMjAuNSBEZWxldGluZyBhbmQgUmVzaXppbmcgV2luZG93 cwoK4oCYQy14IDDigJkKICAgICBEZWxldGUgdGhlIHNlbGVjdGVkIHdpbmRvdyAo4oCYZGVsZXRl LXdpbmRvd+KAmSkuCuKAmEMteCAx4oCZCiAgICAgRGVsZXRlIGFsbCB3aW5kb3dzIGluIHRoZSBz ZWxlY3RlZCBmcmFtZSBleGNlcHQgdGhlIHNlbGVjdGVkIHdpbmRvdwogICAgICjigJhkZWxldGUt b3RoZXItd2luZG93c+KAmSkuCuKAmEMteCA0IDDigJkKICAgICBEZWxldGUgdGhlIHNlbGVjdGVk IHdpbmRvdyBhbmQga2lsbCB0aGUgYnVmZmVyIHRoYXQgd2FzIHNob3dpbmcgaW4KICAgICBpdCAo 4oCYa2lsbC1idWZmZXItYW5kLXdpbmRvd+KAmSkuICBUaGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhp cyBrZXkKICAgICBzZXF1ZW5jZSBpcyBhIHplcm8uCuKAmEMteCBe4oCZCiAgICAgTWFrZSBzZWxl Y3RlZCB3aW5kb3cgdGFsbGVyICjigJhlbmxhcmdlLXdpbmRvd+KAmSkuCuKAmEMteCB94oCZCiAg ICAgTWFrZSBzZWxlY3RlZCB3aW5kb3cgd2lkZXIgKOKAmGVubGFyZ2Utd2luZG93LWhvcml6b250 YWxseeKAmSkuCuKAmEMteCB74oCZCiAgICAgTWFrZSBzZWxlY3RlZCB3aW5kb3cgbmFycm93ZXIg KOKAmHNocmluay13aW5kb3ctaG9yaXpvbnRhbGx54oCZKS4K4oCYQy14IC3igJkKICAgICBTaHJp bmsgdGhpcyB3aW5kb3cgaWYgaXRzIGJ1ZmZlciBkb2VzbuKAmXQgbmVlZCBzbyBtYW55IGxpbmVz CiAgICAgKOKAmHNocmluay13aW5kb3ctaWYtbGFyZ2VyLXRoYW4tYnVmZmVy4oCZKS4K4oCYQy14 ICvigJkKICAgICBNYWtlIGFsbCB3aW5kb3dzIHRoZSBzYW1lIGhlaWdodCAo4oCYYmFsYW5jZS13 aW5kb3dz4oCZKS4KCiAgIFRvIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgd2luZG93LCB0eXBlIOKAmEMt eCAw4oCZICjigJhkZWxldGUtd2luZG934oCZKS4gIChUaGF0CmlzIGEgemVyby4pICBPbmNlIGEg d2luZG93IGlzIGRlbGV0ZWQsIHRoZSBzcGFjZSB0aGF0IGl0IG9jY3VwaWVkIGlzCmdpdmVuIHRv IGFuIGFkamFjZW50IHdpbmRvdyAoYnV0IG5vdCB0aGUgbWluaWJ1ZmZlciB3aW5kb3csIGV2ZW4g aWYgdGhhdAppcyBhY3RpdmUgYXQgdGhlIHRpbWUpLiAgRGVsZXRpbmcgdGhlIHdpbmRvdyBoYXMg bm8gZWZmZWN0IG9uIHRoZSBidWZmZXIKaXQgdXNlZCB0byBkaXNwbGF5OyB0aGUgYnVmZmVyIGNv bnRpbnVlcyB0byBleGlzdCwgYW5kIHlvdSBjYW4gc3RpbGwKc3dpdGNoIHRvIGl0IHdpdGgg4oCY Qy14IGLigJkuCgogICDigJhDLXggNCAw4oCZICjigJhraWxsLWJ1ZmZlci1hbmQtd2luZG934oCZ KSBpcyBhIHN0cm9uZ2VyIGNvbW1hbmQgdGhhbiDigJhDLXgKMOKAmTsgaXQga2lsbHMgdGhlIGN1 cnJlbnQgYnVmZmVyIGFuZCB0aGVuIGRlbGV0ZXMgdGhlIHNlbGVjdGVkIHdpbmRvdy4KCiAgIOKA mEMteCAx4oCZICjigJhkZWxldGUtb3RoZXItd2luZG93c+KAmSkgZGVsZXRlcyBhbGwgdGhlIHdp bmRvd3MsIF9leGNlcHRfCnRoZSBzZWxlY3RlZCBvbmU7IHRoZSBzZWxlY3RlZCB3aW5kb3cgZXhw YW5kcyB0byB1c2UgdGhlIHdob2xlIGZyYW1lLgooVGhpcyBjb21tYW5kIGNhbm5vdCBiZSB1c2Vk IHdoaWxlIHRoZSBtaW5pYnVmZmVyIHdpbmRvdyBpcyBhY3RpdmU7CmF0dGVtcHRpbmcgdG8gZG8g c28gc2lnbmFscyBhbiBlcnJvci4pCgogICBUaGUgY29tbWFuZCDigJhDLXggXuKAmSAo4oCYZW5s YXJnZS13aW5kb3figJkpIG1ha2VzIHRoZSBzZWxlY3RlZCB3aW5kb3cgb25lCmxpbmUgdGFsbGVy LCB0YWtpbmcgc3BhY2UgZnJvbSBhIHZlcnRpY2FsbHkgYWRqYWNlbnQgd2luZG93IHdpdGhvdXQK Y2hhbmdpbmcgdGhlIGhlaWdodCBvZiB0aGUgZnJhbWUuICBXaXRoIGEgcG9zaXRpdmUgbnVtZXJp YyBhcmd1bWVudCwKdGhpcyBjb21tYW5kIGluY3JlYXNlcyB0aGUgd2luZG93IGhlaWdodCBieSB0 aGF0IG1hbnkgbGluZXM7IHdpdGggYQpuZWdhdGl2ZSBhcmd1bWVudCwgaXQgcmVkdWNlcyB0aGUg aGVpZ2h0IGJ5IHRoYXQgbWFueSBsaW5lcy4gIElmIHRoZXJlCmFyZSBubyB2ZXJ0aWNhbGx5IGFk amFjZW50IHdpbmRvd3MgKGkuZS4sIHRoZSB3aW5kb3cgaXMgYXQgdGhlIGZ1bGwKZnJhbWUgaGVp Z2h0KSwgdGhhdCBzaWduYWxzIGFuIGVycm9yLiAgVGhlIGNvbW1hbmQgYWxzbyBzaWduYWxzIGFu IGVycm9yCmlmIHlvdSBhdHRlbXB0IHRvIHJlZHVjZSB0aGUgaGVpZ2h0IG9mIGFueSB3aW5kb3cg YmVsb3cgYSBjZXJ0YWluCm1pbmltdW0gbnVtYmVyIG9mIGxpbmVzLCBzcGVjaWZpZWQgYnkgdGhl IHZhcmlhYmxlIOKAmHdpbmRvdy1taW4taGVpZ2h04oCZCih0aGUgZGVmYXVsdCBpcyA0KS4KCiAg IFNpbWlsYXJseSwg4oCYQy14IH3igJkgKOKAmGVubGFyZ2Utd2luZG93LWhvcml6b250YWxseeKA mSkgbWFrZXMgdGhlIHNlbGVjdGVkCndpbmRvdyB3aWRlciwgYW5kIOKAmEMteCB74oCZICjigJhz aHJpbmstd2luZG93LWhvcml6b250YWxseeKAmSkgbWFrZXMgaXQKbmFycm93ZXIuICBUaGVzZSBj b21tYW5kcyBzaWduYWwgYW4gZXJyb3IgaWYgeW91IGF0dGVtcHQgdG8gcmVkdWNlIHRoZQp3aWR0 aCBvZiBhbnkgd2luZG93IGJlbG93IGEgY2VydGFpbiBtaW5pbXVtIG51bWJlciBvZiBjb2x1bW5z LCBzcGVjaWZpZWQKYnkgdGhlIHZhcmlhYmxlIOKAmHdpbmRvdy1taW4td2lkdGjigJkgKHRoZSBk ZWZhdWx0IGlzIDEwKS4KCiAgIE1vdXNlIGNsaWNrcyBvbiB0aGUgbW9kZSBsaW5lICgqbm90ZSBN b2RlIExpbmUgTW91c2U6Oikgb3Igb24gd2luZG93CmRpdmlkZXJzICgqbm90ZSBXaW5kb3cgRGl2 aWRlcnM6OikgcHJvdmlkZSBhbm90aGVyIHdheSB0byBjaGFuZ2Ugd2luZG93CmhlaWdodHMgYW5k IHRvIHNwbGl0IG9yIGRlbGV0ZSB3aW5kb3dzLgoKICAg4oCYQy14IC3igJkgKOKAmHNocmluay13 aW5kb3ctaWYtbGFyZ2VyLXRoYW4tYnVmZmVy4oCZKSByZWR1Y2VzIHRoZSBoZWlnaHQgb2YKdGhl IHNlbGVjdGVkIHdpbmRvdywgaWYgaXQgaXMgdGFsbGVyIHRoYW4gbmVjZXNzYXJ5IHRvIHNob3cg dGhlIHdob2xlCnRleHQgb2YgdGhlIGJ1ZmZlciBpdCBpcyBkaXNwbGF5aW5nLiAgSXQgZ2l2ZXMg dGhlIGV4dHJhIGxpbmVzIHRvIG90aGVyCndpbmRvd3MgaW4gdGhlIGZyYW1lLgoKICAgWW91IGNh biBhbHNvIHVzZSDigJhDLXggK+KAmSAo4oCYYmFsYW5jZS13aW5kb3dz4oCZKSB0byBldmVuIG91 dCB0aGUgaGVpZ2h0cwpvZiBhbGwgdGhlIHdpbmRvd3MgaW4gdGhlIHNlbGVjdGVkIGZyYW1lLgoK CioqIDIwLjYgRGlzcGxheWluZyBhIEJ1ZmZlciBpbiBhIFdpbmRvdwoKSXQgaXMgYSBjb21tb24g RW1hY3Mgb3BlcmF0aW9uIHRvIGRpc3BsYXkgb3IgcG9wIHVwIHNvbWUgYnVmZmVyIGluCnJlc3Bv bnNlIHRvIGEgdXNlciBjb21tYW5kLiAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IHdheXMg aW4gd2hpY2gKY29tbWFuZHMgZG8gdGhpcy4KCiAgIE1hbnkgY29tbWFuZHMsIGxpa2Ug4oCYQy14 IEMtZuKAmSAo4oCYZmluZC1maWxl4oCZKSwgZGlzcGxheSB0aGUgYnVmZmVyIGJ5CuKAnHRha2lu ZyBvdmVy4oCdIHRoZSBzZWxlY3RlZCB3aW5kb3csIGV4cGVjdGluZyB0aGF0IHRoZSB1c2Vy4oCZ cyBhdHRlbnRpb24Kd2lsbCBiZSBkaXZlcnRlZCB0byB0aGF0IGJ1ZmZlci4gIFRoZXNlIGNvbW1h bmRzIHVzdWFsbHkgd29yayBieSBjYWxsaW5nCuKAmHN3aXRjaC10by1idWZmZXLigJkgaW50ZXJu YWxseSAoKm5vdGUgU2VsZWN0IEJ1ZmZlcjo6KS4KCiAgIFNvbWUgY29tbWFuZHMgdHJ5IHRvIGRp c3BsYXkgaW50ZWxsaWdlbnRseSwgdHJ5aW5nIG5vdCB0byB0YWtlIG92ZXIKdGhlIHNlbGVjdGVk IHdpbmRvdywgZS5nLiwgYnkgc3BsaXR0aW5nIG9mZiBhIG5ldyB3aW5kb3cgYW5kIGRpc3BsYXlp bmcKdGhlIGRlc2lyZWQgYnVmZmVyIHRoZXJlLiAgU3VjaCBjb21tYW5kcywgd2hpY2ggaW5jbHVk ZSB0aGUgdmFyaW91cyBoZWxwCmNvbW1hbmRzICgqbm90ZSBIZWxwOjopLCB3b3JrIGJ5IGNhbGxp bmcg4oCYZGlzcGxheS1idWZmZXLigJkgaW50ZXJuYWxseS4KKk5vdGUgV2luZG93IENob2ljZTo6 LCBmb3IgZGV0YWlscy4KCiAgIE90aGVyIGNvbW1hbmRzIGRvIHRoZSBzYW1lIGFzIOKAmGRpc3Bs YXktYnVmZmVy4oCZLCBhbmQgYWRkaXRpb25hbGx5CnNlbGVjdCB0aGUgZGlzcGxheWluZyB3aW5k b3cgc28gdGhhdCB5b3UgY2FuIGJlZ2luIGVkaXRpbmcgaXRzIGJ1ZmZlci4KVGhlIGNvbW1hbmQg 4oCYQy14IGDigJkgKOKAmG5leHQtZXJyb3LigJkpIGlzIG9uZSBleGFtcGxlICgqbm90ZSBDb21w aWxhdGlvbgpNb2RlOjopLiAgU3VjaCBjb21tYW5kcyB3b3JrIGJ5IGNhbGxpbmcgdGhlIGZ1bmN0 aW9uIOKAmHBvcC10by1idWZmZXLigJkKaW50ZXJuYWxseS4gICpOb3RlIFN3aXRjaGluZyB0byBh IEJ1ZmZlciBpbiBhIFdpbmRvdzogKGVsaXNwKVN3aXRjaGluZwpCdWZmZXJzLgoKICAgQ29tbWFu ZHMgd2l0aCBuYW1lcyBlbmRpbmcgaW4g4oCYLW90aGVyLXdpbmRvd+KAmSBiZWhhdmUgbGlrZQri gJhkaXNwbGF5LWJ1ZmZlcuKAmSwgZXhjZXB0IHRoYXQgdGhleSBuZXZlciBkaXNwbGF5IGluIHRo ZSBzZWxlY3RlZCB3aW5kb3cuClNldmVyYWwgb2YgdGhlc2UgY29tbWFuZHMgYXJlIGJvdW5kIGlu IHRoZSDigJhDLXggNOKAmSBwcmVmaXgga2V5ICgqbm90ZSBQb3AKVXAgV2luZG93OjopLgoKICAg Q29tbWFuZHMgd2l0aCBuYW1lcyBlbmRpbmcgaW4g4oCYLW90aGVyLWZyYW1l4oCZIGJlaGF2ZSBs aWtlCuKAmGRpc3BsYXktYnVmZmVy4oCZLCBleGNlcHQgdGhhdCB0aGV5IChpKSBuZXZlciBkaXNw bGF5IGluIHRoZSBzZWxlY3RlZAp3aW5kb3cgYW5kIChpaSkgcHJlZmVyIHRvIGNyZWF0ZSBhIG5l dyBmcmFtZSB0byBkaXNwbGF5IHRoZSBkZXNpcmVkCmJ1ZmZlciBpbnN0ZWFkIG9mIHNwbGl0dGlu ZyBhIHdpbmRvd+KAlGFzIHRob3VnaCB0aGUgdmFyaWFibGUK4oCYcG9wLXVwLWZyYW1lc+KAmSBp cyBzZXQgdG8g4oCYdOKAmSAoKm5vdGUgV2luZG93IENob2ljZTo6KS4gIFNldmVyYWwgb2YgdGhl c2UKY29tbWFuZHMgYXJlIGJvdW5kIGluIHRoZSDigJhDLXggNeKAmSBwcmVmaXgga2V5LgoKKyBN ZW51OgoKICAtIFdpbmRvdyBDaG9pY2U6OiAgIEhvdyDigJhkaXNwbGF5LWJ1ZmZlcuKAmSB3b3Jr cy4KICAtIFRlbXBvcmFyeSBEaXNwbGF5czo6ICAgRGlzcGxheWluZyBub24tZWRpdGFibGUgYnVm ZmVycy4KCgoqKiogMjAuNi4xIEhvdyDigJhkaXNwbGF5LWJ1ZmZlcuKAmSB3b3JrcwoKVGhlIOKA mGRpc3BsYXktYnVmZmVy4oCZIGNvbW1hbmQgKGFzIHdlbGwgYXMgY29tbWFuZHMgdGhhdCBjYWxs IGl0CmludGVybmFsbHkpIGNob29zZXMgYSB3aW5kb3cgdG8gZGlzcGxheSBieSBmb2xsb3dpbmcg dGhlIHN0ZXBzIGdpdmVuCmJlbG93LiAgKk5vdGUgQ2hvb3NpbmcgYSBXaW5kb3cgZm9yIERpc3Bs YXk6IChlbGlzcClDaG9vc2luZyBXaW5kb3csIGZvcgpkZXRhaWxzIGFib3V0IGhvdyB0byBhbHRl ciB0aGlzIHNlcXVlbmNlIG9mIHN0ZXBzLgoKICAg4oCiIEZpcnN0LCBjaGVjayBpZiB0aGUgYnVm ZmVyIHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHNlbGVjdGVkCiAgICAgd2luZG93IHJlZ2Fy ZGxlc3Mgb2Ygb3RoZXIgY29uc2lkZXJhdGlvbnMuICBZb3UgY2FuIHRlbGwgRW1hY3MgdG8KICAg ICBkbyB0aGlzIGJ5IGFkZGluZyB0aGUgZGVzaXJlZCBidWZmZXLigJlzIG5hbWUgdG8gdGhlIGxp c3QKICAgICDigJhzYW1lLXdpbmRvdy1idWZmZXItbmFtZXPigJksIG9yIGFkZGluZyBhIG1hdGNo aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbgogICAgIHRvIHRoZSBsaXN0IOKAmHNhbWUtd2luZG93LXJl Z2V4cHPigJkuICBCeSBkZWZhdWx0LCB0aGVzZSB2YXJpYWJsZXMgYXJlCiAgICAg4oCYbmls4oCZ LCBzbyB0aGlzIHN0ZXAgaXMgc2tpcHBlZC4KCiAgIOKAoiBPdGhlcndpc2UsIGlmIHRoZSBidWZm ZXIgaXMgYWxyZWFkeSBkaXNwbGF5ZWQgaW4gYW4gZXhpc3RpbmcKICAgICB3aW5kb3csIHJldXNl IHRoYXQgd2luZG93LiAgTm9ybWFsbHksIG9ubHkgd2luZG93cyBvbiB0aGUgc2VsZWN0ZWQKICAg ICBmcmFtZSBhcmUgY29uc2lkZXJlZCwgYnV0IHdpbmRvd3Mgb24gb3RoZXIgZnJhbWVzIGFyZSBh bHNvIHJldXNhYmxlCiAgICAgaWYgeW91IGNoYW5nZSDigJhwb3AtdXAtZnJhbWVz4oCZIChzZWUg YmVsb3cpIHRvIOKAmHTigJkuCgogICDigKIgT3RoZXJ3aXNlLCBvcHRpb25hbGx5IGNyZWF0ZSBh IG5ldyBmcmFtZSBhbmQgZGlzcGxheSB0aGUgYnVmZmVyCiAgICAgdGhlcmUuICBCeSBkZWZhdWx0 LCB0aGlzIHN0ZXAgaXMgc2tpcHBlZC4gIFRvIGVuYWJsZSBpdCwgY2hhbmdlIHRoZQogICAgIHZh cmlhYmxlIOKAmHBvcC11cC1mcmFtZXPigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLiAgVGhl IHNwZWNpYWwgdmFsdWUKICAgICDigJhncmFwaGljLW9ubHnigJkgbWVhbnMgdG8gZG8gdGhpcyBv bmx5IG9uIGdyYXBoaWNhbCBkaXNwbGF5cy4KCiAgIOKAoiBPdGhlcndpc2UsIHRyeSB0byBjcmVh dGUgYSBuZXcgd2luZG93IGJ5IHNwbGl0dGluZyBhIHdpbmRvdyBvbiB0aGUKICAgICBzZWxlY3Rl ZCBmcmFtZSwgYW5kIGRpc3BsYXkgdGhlIGJ1ZmZlciBpbiB0aGF0IG5ldyB3aW5kb3cuCgogICAg IFRoZSBzcGxpdCBjYW4gYmUgZWl0aGVyIHZlcnRpY2FsIG9yIGhvcml6b250YWwsIGRlcGVuZGlu ZyBvbiB0aGUKICAgICB2YXJpYWJsZXMg4oCYc3BsaXQtaGVpZ2h0LXRocmVzaG9sZOKAmSBhbmQg 4oCYc3BsaXQtd2lkdGgtdGhyZXNob2xk4oCZLgogICAgIFRoZXNlIHZhcmlhYmxlcyBzaG91bGQg aGF2ZSBpbnRlZ2VyIHZhbHVlcy4gIElmCiAgICAg4oCYc3BsaXQtaGVpZ2h0LXRocmVzaG9sZOKA mSBpcyBzbWFsbGVyIHRoYW4gdGhlIGNob3NlbiB3aW5kb3figJlzCiAgICAgaGVpZ2h0LCB0aGUg c3BsaXQgcHV0cyB0aGUgbmV3IHdpbmRvdyBiZWxvdy4gIE90aGVyd2lzZSwgaWYKICAgICDigJhz cGxpdC13aWR0aC10aHJlc2hvbGTigJkgaXMgc21hbGxlciB0aGFuIHRoZSB3aW5kb3figJlzIHdp ZHRoLCB0aGUKICAgICBzcGxpdCBwdXRzIHRoZSBuZXcgd2luZG93IG9uIHRoZSByaWdodC4gIElm IG5laXRoZXIgY29uZGl0aW9uCiAgICAgaG9sZHMsIEVtYWNzIHRyaWVzIHRvIHNwbGl0IHNvIHRo YXQgdGhlIG5ldyB3aW5kb3cgaXMgYmVsb3figJRidXQKICAgICBvbmx5IGlmIHRoZSB3aW5kb3cg d2FzIG5vdCBzcGxpdCBiZWZvcmUgKHRvIGF2b2lkIGV4Y2Vzc2l2ZQogICAgIHNwbGl0dGluZyku CgogICDigKIgT3RoZXJ3aXNlLCBkaXNwbGF5IHRoZSBidWZmZXIgaW4gYSB3aW5kb3cgcHJldmlv dXNseSBzaG93aW5nIGl0LgogICAgIE5vcm1hbGx5LCBvbmx5IHdpbmRvd3Mgb24gdGhlIHNlbGVj dGVkIGZyYW1lIGFyZSBjb25zaWRlcmVkLCBidXQgaWYKICAgICDigJhwb3AtdXAtZnJhbWVz4oCZ IGlzIG5vbi3igJhuaWzigJkgdGhlIHdpbmRvdyBtYXkgYmUgYWxzbyBvbiBhbm90aGVyCiAgICAg ZnJhbWUuCgogICDigKIgT3RoZXJ3aXNlLCBkaXNwbGF5IHRoZSBidWZmZXIgaW4gYW4gZXhpc3Rp bmcgd2luZG93IG9uIHRoZSBzZWxlY3RlZAogICAgIGZyYW1lLgoKICAg4oCiIElmIGFsbCB0aGUg YWJvdmUgbWV0aG9kcyBmYWlsIGZvciB3aGF0ZXZlciByZWFzb24sIGNyZWF0ZSBhIG5ldwogICAg IGZyYW1lIGFuZCBkaXNwbGF5IHRoZSBidWZmZXIgdGhlcmUuCgogICBBIG1vcmUgYWR2YW5jZWQg YW5kIGZsZXhpYmxlIHdheSB0byBjdXN0b21pemUgdGhlIGJlaGF2aW9yIG9mCuKAmGRpc3BsYXkt YnVmZmVy4oCZIGlzIGJ5IHVzaW5nIHRoZSBvcHRpb24g4oCYZGlzcGxheS1idWZmZXItYWxpc3Ti gJkgbWVudGlvbmVkCmluIHRoZSBuZXh0IHNlY3Rpb24uCgoKKioqIDIwLjYuMiBEaXNwbGF5aW5n IG5vbi1lZGl0YWJsZSBidWZmZXJzLgoKU29tZSBidWZmZXJzIGFyZSBzaG93biBpbiB3aW5kb3dz IGZvciBwZXJ1c2FsIHJhdGhlciB0aGFuIGZvciBlZGl0aW5nLgpIZWxwIGNvbW1hbmRzICgqbm90 ZSBIZWxwOjopIHR5cGljYWxseSB1c2UgYSBidWZmZXIgY2FsbGVkIOKAmCpIZWxwKuKAmSBmb3IK dGhhdCBwdXJwb3NlLCBtaW5pYnVmZmVyIGNvbXBsZXRpb24gKCpub3RlIENvbXBsZXRpb246Oikg dXNlcyBhIGJ1ZmZlcgpjYWxsZWQg4oCYKkNvbXBsZXRpb25zKuKAmSBpbnN0ZWFkLiAgU3VjaCBi dWZmZXJzIGFyZSB1c3VhbGx5IGRpc3BsYXllZCBvbmx5CmZvciBhIHNob3J0IHBlcmlvZCBvZiB0 aW1lLgoKICAgTm9ybWFsbHksIEVtYWNzIGNob29zZXMgdGhlIHdpbmRvdyBmb3Igc3VjaCB0ZW1w b3JhcnkgZGlzcGxheXMgdmlhCuKAmGRpc3BsYXktYnVmZmVy4oCZIGFzIGRlc2NyaWJlZCBhYm92 ZS4gIFRoZSDigJgqQ29tcGxldGlvbnMq4oCZIGJ1ZmZlciwgb24gdGhlCm90aGVyIGhhbmQsIGlz IG5vcm1hbGx5IGRpc3BsYXllZCBpbiBhIHdpbmRvdyBhdCB0aGUgYm90dG9tIG9mIHRoZQpzZWxl Y3RlZCBmcmFtZSwgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIHdpbmRvd3MgYWxyZWFkeSBz aG93biBvbgp0aGF0IGZyYW1lLgoKICAgSWYgeW91IHByZWZlciBFbWFjcyB0byBkaXNwbGF5IGEg dGVtcG9yYXJ5IGJ1ZmZlciBpbiBhIGRpZmZlcmVudApmYXNoaW9uLCB3ZSByZWNvbW1lbmQgY3Vz dG9taXppbmcgdGhlIHZhcmlhYmxlIOKAmGRpc3BsYXktYnVmZmVyLWFsaXN04oCZCigqbm90ZSBD aG9vc2luZyBhIFdpbmRvdyBmb3IgRGlzcGxheTogKGVsaXNwKUNob29zaW5nIFdpbmRvdy4pLiAg Rm9yCmV4YW1wbGUsIHRvIGRpc3BsYXkg4oCYKkNvbXBsZXRpb25zKuKAmSBieSBzcGxpdHRpbmcg YSB3aW5kb3cgYXMgZGVzY3JpYmVkCmluIHRoZSBwcmV2aW91cyBzZWN0aW9uLCB1c2UgdGhlIGZv bGxvd2luZyBmb3JtIGluIHlvdXIgaW5pdGlhbGl6YXRpb24KZmlsZSAoKm5vdGUgSW5pdCBGaWxl OjopOgoKICAgICAoY3VzdG9taXplLXNldC12YXJpYWJsZQogICAgICAnZGlzcGxheS1idWZmZXIt YWxpc3QKICAgICAgJygoIlxcKkNvbXBsZXRpb25zXFwqIiBkaXNwbGF5LWJ1ZmZlci1wb3AtdXAt d2luZG93KSkpCgogICBUaGUg4oCYKkNvbXBsZXRpb25zKuKAmSBidWZmZXIgaXMgYWxzbyBzcGVj aWFsIGluIHRoZSBzZW5zZSB0aGF0IEVtYWNzCnVzdWFsbHkgdHJpZXMgdG8gbWFrZSBpdHMgd2lu ZG93IGp1c3QgYXMgbGFyZ2UgYXMgbmVjZXNzYXJ5IHRvIGRpc3BsYXkKYWxsIG9mIGl0cyBjb250 ZW50cy4gIFRvIHJlc2l6ZSB3aW5kb3dzIHNob3dpbmcgb3RoZXIgdGVtcG9yYXJ5IGRpc3BsYXlz Cmxpa2UsIGZvciBleGFtcGxlLCB0aGUg4oCYKkhlbHAq4oCZIGJ1ZmZlciBhY2NvcmRpbmdseSwg dHVybiBvbiB0aGUgbWlub3IKbW9kZSAoKm5vdGUgTWlub3IgTW9kZXM6Oikg4oCYdGVtcC1idWZm ZXItcmVzaXplLW1vZGXigJkgKCpub3RlIFRlbXBvcmFyeQpEaXNwbGF5czogKGVsaXNwKVRlbXBv cmFyeSBEaXNwbGF5cy4pLgoKICAgVGhlIG1heGltdW0gc2l6ZSBvZiB3aW5kb3dzIHJlc2l6ZWQg Ynkg4oCYdGVtcC1idWZmZXItcmVzaXplLW1vZGXigJkgY2FuCmJlIGNvbnRyb2xsZWQgYnkgY3Vz dG9taXppbmcgdGhlIG9wdGlvbnMg4oCYdGVtcC1idWZmZXItbWF4LWhlaWdodOKAmSBhbmQK4oCY dGVtcC1idWZmZXItbWF4LXdpZHRo4oCZICgqbm90ZSBUZW1wb3JhcnkgRGlzcGxheXM6IChlbGlz cClUZW1wb3JhcnkKRGlzcGxheXMuKSBhbmQgY2Fubm90IGV4Y2VlZCB0aGUgc2l6ZSBvZiB0aGUg Y29udGFpbmluZyBmcmFtZS4KCgoqKiAyMC43IENvbnZlbmllbmNlIEZlYXR1cmVzIGZvciBXaW5k b3cgSGFuZGxpbmcKCldpbm5lciBtb2RlIGlzIGEgZ2xvYmFsIG1pbm9yIG1vZGUgdGhhdCByZWNv cmRzIHRoZSBjaGFuZ2VzIGluIHRoZQp3aW5kb3cgY29uZmlndXJhdGlvbiAoaS5lLiwgaG93IHRo ZSBmcmFtZXMgYXJlIHBhcnRpdGlvbmVkIGludG8Kd2luZG93cyksIHNvIHRoYXQgeW91IGNhbiB1 bmRvIHRoZW0uICBZb3UgY2FuIHRvZ2dsZSBXaW5uZXIgbW9kZSB3aXRoCuKAmE0teCB3aW5uZXIt bW9kZeKAmSwgb3IgYnkgY3VzdG9taXppbmcgdGhlIHZhcmlhYmxlIOKAmHdpbm5lci1tb2Rl4oCZ LiAgV2hlbgp0aGUgbW9kZSBpcyBlbmFibGVkLCDigJhDLWMgbGVmdOKAmSAo4oCYd2lubmVyLXVu ZG/igJkpIHVuZG9lcyB0aGUgbGFzdCB3aW5kb3cKY29uZmlndXJhdGlvbiBjaGFuZ2UuICBJZiB5 b3UgY2hhbmdlIHlvdXIgbWluZCB3aGlsZSB1bmRvaW5nLCB5b3UgY2FuCnJlZG8gdGhlIGNoYW5n ZXMgeW91IGhhZCB1bmRvbmUgdXNpbmcg4oCYQy1jIHJpZ2h04oCZICjigJhNLXggd2lubmVyLXJl ZG/igJkpLgoKICAgRm9sbG93IG1vZGUgKOKAmE0teCBmb2xsb3ctbW9kZeKAmSkgc3luY2hyb25p emVzIHNldmVyYWwgd2luZG93cyBvbiB0aGUKc2FtZSBidWZmZXIgc28gdGhhdCB0aGV5IGFsd2F5 cyBkaXNwbGF5IGFkamFjZW50IHNlY3Rpb25zIG9mIHRoYXQKYnVmZmVyLiAgKk5vdGUgRm9sbG93 IE1vZGU6Oi4KCiAgIFRoZSBXaW5kbW92ZSBwYWNrYWdlIGRlZmluZXMgY29tbWFuZHMgZm9yIG1v dmluZyBkaXJlY3Rpb25hbGx5CmJldHdlZW4gbmVpZ2hib3Jpbmcgd2luZG93cyBpbiBhIGZyYW1l LiAg4oCYTS14IHdpbmRtb3ZlLXJpZ2h04oCZIHNlbGVjdHMKdGhlIHdpbmRvdyBpbW1lZGlhdGVs eSB0byB0aGUgcmlnaHQgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBvbmUsIGFuZApzaW1pbGFy bHkgZm9yIHRoZSBsZWZ0LCB1cCwgYW5kIGRvd24gY291bnRlcnBhcnRzLiAg4oCYTS14CndpbmRt b3ZlLWRlZmF1bHQta2V5YmluZGluZ3PigJkgYmluZHMgdGhlc2UgY29tbWFuZHMgdG8g4oCYUy1y aWdodOKAmSBldGMuOwpkb2luZyBzbyBkaXNhYmxlcyBzaGlmdCBzZWxlY3Rpb24gZm9yIHRob3Nl IGtleXMgKCpub3RlIFNoaWZ0ClNlbGVjdGlvbjo6KS4KCiAgIFRoZSBjb21tYW5kIOKAmE0teCBj b21wYXJlLXdpbmRvd3PigJkgbGV0cyB5b3UgY29tcGFyZSB0aGUgdGV4dCBzaG93biBpbgpkaWZm ZXJlbnQgd2luZG93cy4gICpOb3RlIENvbXBhcmluZyBGaWxlczo6LgoKICAgU2Nyb2xsIEFsbCBt b2RlICjigJhNLXggc2Nyb2xsLWFsbC1tb2Rl4oCZKSBpcyBhIGdsb2JhbCBtaW5vciBtb2RlIHRo YXQKY2F1c2VzIHNjcm9sbGluZyBjb21tYW5kcyBhbmQgcG9pbnQgbW90aW9uIGNvbW1hbmRzIHRv IGFwcGx5IHRvIGV2ZXJ5CnNpbmdsZSB3aW5kb3cuCgoKKiAyMSBGcmFtZXMgYW5kIEdyYXBoaWNh bCBEaXNwbGF5cwoKV2hlbiBFbWFjcyBpcyBzdGFydGVkIG9uIGEgZ3JhcGhpY2FsIGRpc3BsYXks IGUuZy4sIG9uIHRoZSBYIFdpbmRvdwpTeXN0ZW0sIGl0IG9jY3VwaWVzIGEgZ3JhcGhpY2FsIHN5 c3RlbS1sZXZlbCBkaXNwbGF5IHJlZ2lvbi4gIEluIHRoaXMKbWFudWFsLCB3ZSBjYWxsIHRoaXMg YSAiZnJhbWUiLCByZXNlcnZpbmcgdGhlIHdvcmQg4oCcd2luZG934oCdIGZvciB0aGUgcGFydApv ZiB0aGUgZnJhbWUgdXNlZCBmb3IgZGlzcGxheWluZyBhIGJ1ZmZlci4gIEEgZnJhbWUgaW5pdGlh bGx5IGNvbnRhaW5zCm9uZSB3aW5kb3csIGJ1dCBpdCBjYW4gYmUgc3ViZGl2aWRlZCBpbnRvIG11 bHRpcGxlIHdpbmRvd3MgKCpub3RlCldpbmRvd3M6OikuICBBIGZyYW1lIG5vcm1hbGx5IGFsc28g Y29udGFpbnMgYSBtZW51IGJhciwgdG9vbCBiYXIsIGFuZAplY2hvIGFyZWEuCgogICBZb3UgY2Fu IGFsc28gY3JlYXRlIGFkZGl0aW9uYWwgZnJhbWVzICgqbm90ZSBDcmVhdGluZyBGcmFtZXM6Oiku ICBBbGwKZnJhbWVzIGNyZWF0ZWQgaW4gdGhlIHNhbWUgRW1hY3Mgc2Vzc2lvbiBoYXZlIGFjY2Vz cyB0byB0aGUgc2FtZQp1bmRlcmx5aW5nIGJ1ZmZlcnMgYW5kIG90aGVyIGRhdGEuICBGb3IgaW5z dGFuY2UsIGlmIGEgYnVmZmVyIGlzIGJlaW5nCnNob3duIGluIG1vcmUgdGhhbiBvbmUgZnJhbWUs IGFueSBjaGFuZ2VzIG1hZGUgdG8gaXQgaW4gb25lIGZyYW1lIHNob3cKdXAgaW1tZWRpYXRlbHkg aW4gdGhlIG90aGVyIGZyYW1lcyB0b28uCgogICBUeXBpbmcg4oCYQy14IEMtY+KAmSBjbG9zZXMg YWxsIHRoZSBmcmFtZXMgb24gdGhlIGN1cnJlbnQgZGlzcGxheSwgYW5kCmVuZHMgdGhlIEVtYWNz IHNlc3Npb24gaWYgaXQgaGFzIG5vIGZyYW1lcyBvcGVuIG9uIGFueSBvdGhlciBkaXNwbGF5cwoo Km5vdGUgRXhpdGluZzo6KS4gIFRvIGNsb3NlIGp1c3QgdGhlIHNlbGVjdGVkIGZyYW1lLCB0eXBl IOKAmEMteCA1IDDigJkKKHRoYXQgaXMgemVybywgbm90IOKAmG/igJkpLgoKICAgVGhpcyBjaGFw dGVyIGRlc2NyaWJlcyBFbWFjcyBmZWF0dXJlcyBzcGVjaWZpYyB0byBncmFwaGljYWwgZGlzcGxh eXMKKHBhcnRpY3VsYXJseSBtb3VzZSBjb21tYW5kcyksIGFuZCBmZWF0dXJlcyBmb3IgbWFuYWdp bmcgbXVsdGlwbGUKZnJhbWVzLiAgT24gdGV4dCB0ZXJtaW5hbHMsIG1hbnkgb2YgdGhlc2UgZmVh dHVyZXMgYXJlIHVuYXZhaWxhYmxlLgpIb3dldmVyLCBpdCBpcyBzdGlsbCBwb3NzaWJsZSB0byBj cmVhdGUgbXVsdGlwbGUgZnJhbWVzIG9uIHRleHQKdGVybWluYWxzOyBzdWNoIGZyYW1lcyBhcmUg ZGlzcGxheWVkIG9uZSBhdCBhIHRpbWUsIGZpbGxpbmcgdGhlIGVudGlyZQp0ZXJtaW5hbCBzY3Jl ZW4gKCpub3RlIE5vbi1XaW5kb3cgVGVybWluYWxzOjopLiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0 bwp1c2UgdGhlIG1vdXNlIG9uIHNvbWUgdGV4dCB0ZXJtaW5hbHMgKCpub3RlIFRleHQtT25seSBN b3VzZTo6LCBmb3IgZG9pbmcKc28gb24gR05VIGFuZCBVbml4IHN5c3RlbXM7IGFuZCAqbm90ZSBN Uy1ET1MgTW91c2U6OiwgZm9yIGRvaW5nIHNvIG9uCk1TLURPUykuIE1lbnVzIGFyZSBzdXBwb3J0 ZWQgb24gYWxsIHRleHQgdGVybWluYWxzLgoKKyBNZW51OgoKICAtIE1vdXNlIENvbW1hbmRzOjog ICAgICBNb3ZpbmcsIGN1dHRpbmcsIGFuZCBwYXN0aW5nLCB3aXRoIHRoZSBtb3VzZS4KICAtIFdv cmQgYW5kIExpbmUgTW91c2U6OiBNb3VzZSBjb21tYW5kcyBmb3Igc2VsZWN0aW5nIHdob2xlIHdv cmRzIG9yIGxpbmVzLgogIC0gTW91c2UgUmVmZXJlbmNlczo6ICAgIFVzaW5nIHRoZSBtb3VzZSB0 byBzZWxlY3QgYW4gaXRlbSBmcm9tIGEgbGlzdC4KICAtIE1lbnUgTW91c2UgQ2xpY2tzOjogICBN b3VzZSBjbGlja3MgdGhhdCBicmluZyB1cCBtZW51cy4KICAtIE1vZGUgTGluZSBNb3VzZTo6ICAg ICBNb3VzZSBjbGlja3Mgb24gdGhlIG1vZGUgbGluZS4KICAtIENyZWF0aW5nIEZyYW1lczo6ICAg ICBDcmVhdGluZyBhZGRpdGlvbmFsIEVtYWNzIGZyYW1lcyB3aXRoIHZhcmlvdXMgY29udGVudHMu CiAgLSBGcmFtZSBDb21tYW5kczo6ICAgICAgSWNvbmlmeWluZywgZGVsZXRpbmcsIGFuZCBzd2l0 Y2hpbmcgZnJhbWVzLgogIC0gRm9udHM6OiAgICAgICAgICAgICAgIENoYW5naW5nIHRoZSBmcmFt ZSBmb250LgogIC0gU3BlZWRiYXI6OiAgICAgICAgICAgIEhvdyB0byBtYWtlIGFuZCB1c2UgYSBz cGVlZGJhciBmcmFtZS4KICAtIE11bHRpcGxlIERpc3BsYXlzOjogICBIb3cgb25lIEVtYWNzIGlu c3RhbmNlIGNhbiB0YWxrIHRvIHNldmVyYWwgZGlzcGxheXMuCiAgLSBGcmFtZSBQYXJhbWV0ZXJz OjogICAgQ2hhbmdpbmcgdGhlIGNvbG9ycyBhbmQgb3RoZXIgbW9kZXMgb2YgZnJhbWVzLgogIC0g U2Nyb2xsIEJhcnM6OiAgICAgICAgIEhvdyB0byBlbmFibGUgYW5kIGRpc2FibGUgc2Nyb2xsIGJh cnM7IGhvdyB0byB1c2UgdGhlbS4KICAtIFdpbmRvdyBEaXZpZGVyczo6ICAgICBXaW5kb3cgc2Vw YXJhdG9ycyB0aGF0IGNhbiBiZSBkcmFnZ2VkIHdpdGggdGhlIG1vdXNlLgogIC0gRHJhZyBhbmQg RHJvcDo6ICAgICAgIFVzaW5nIGRyYWcgYW5kIGRyb3AgdG8gb3BlbiBmaWxlcyBhbmQgaW5zZXJ0 IHRleHQuCiAgLSBNZW51IEJhcnM6OiAgICAgICAgICAgRW5hYmxpbmcgYW5kIGRpc2FibGluZyB0 aGUgbWVudSBiYXIuCiAgLSBUb29sIEJhcnM6OiAgICAgICAgICAgRW5hYmxpbmcgYW5kIGRpc2Fi bGluZyB0aGUgdG9vbCBiYXIuCiAgLSBEaWFsb2cgQm94ZXM6OiAgICAgICAgQ29udHJvbGxpbmcg dXNlIG9mIGRpYWxvZyBib3hlcy4KICAtIFRvb2x0aXBzOjogICAgICAgICAgICBEaXNwbGF5aW5n IGluZm9ybWF0aW9uIGF0IHRoZSBjdXJyZW50IG1vdXNlIHBvc2l0aW9uLgogIC0gTW91c2UgQXZv aWRhbmNlOjogICAgIFByZXZlbnRpbmcgdGhlIG1vdXNlIHBvaW50ZXIgZnJvbSBvYnNjdXJpbmcg dGV4dC4KICAtIE5vbi1XaW5kb3cgVGVybWluYWxzOjogIE11bHRpcGxlIGZyYW1lcyBvbiB0ZXJt aW5hbHMgdGhhdCBzaG93IG9ubHkgb25lLgogIC0gVGV4dC1Pbmx5IE1vdXNlOjogICAgIFVzaW5n IHRoZSBtb3VzZSBpbiB0ZXh0IHRlcm1pbmFscy4KCgoqKiAyMS4xIE1vdXNlIENvbW1hbmRzIGZv ciBFZGl0aW5nCgrigJhtb3VzZS0x4oCZCiAgICAgTW92ZSBwb2ludCB0byB3aGVyZSB5b3UgY2xp Y2sgKOKAmG1vdXNlLXNldC1wb2ludOKAmSkuCgrigJhEcmFnLW1vdXNlLTHigJkKICAgICBBY3Rp dmF0ZSB0aGUgcmVnaW9uIGFyb3VuZCB0aGUgdGV4dCBzZWxlY3RlZCBieSBkcmFnZ2luZywgYW5k IHB1dAogICAgIHRoZSB0ZXh0IGluIHRoZSBwcmltYXJ5IHNlbGVjdGlvbiAo4oCYbW91c2Utc2V0 LXJlZ2lvbuKAmSkuCgrigJhtb3VzZS0y4oCZCiAgICAgTW92ZSBwb2ludCB0byB3aGVyZSB5b3Ug Y2xpY2ssIGFuZCBpbnNlcnQgdGhlIGNvbnRlbnRzIG9mIHRoZQogICAgIHByaW1hcnkgc2VsZWN0 aW9uIHRoZXJlICjigJhtb3VzZS15YW5rLXByaW1hcnnigJkpLgoK4oCYbW91c2UtM+KAmQogICAg IElmIHRoZSByZWdpb24gaXMgYWN0aXZlLCBtb3ZlIHRoZSBuZWFyZXIgZW5kIG9mIHRoZSByZWdp b24gdG8gdGhlCiAgICAgY2xpY2sgcG9zaXRpb247IG90aGVyd2lzZSwgc2V0IG1hcmsgYXQgdGhl IGN1cnJlbnQgdmFsdWUgb2YgcG9pbnQKICAgICBhbmQgcG9pbnQgYXQgdGhlIGNsaWNrIHBvc2l0 aW9uLiAgU2F2ZSB0aGUgcmVzdWx0aW5nIHJlZ2lvbiBpbiB0aGUKICAgICBraWxsIHJpbmc7IG9u IGEgc2Vjb25kIGNsaWNrLCBraWxsIGl0ICjigJhtb3VzZS1zYXZlLXRoZW4ta2lsbOKAmSkuCgog ICBUaGUgbW9zdCBiYXNpYyBtb3VzZSBjb21tYW5kIGlzIOKAmG1vdXNlLXNldC1wb2ludOKAmSwg d2hpY2ggaXMgaW52b2tlZApieSBjbGlja2luZyB3aXRoIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbiwg 4oCYbW91c2UtMeKAmSwgaW4gdGhlIHRleHQgYXJlYSBvZiBhCndpbmRvdy4gIFRoaXMgbW92ZXMg cG9pbnQgdG8gdGhlIHBvc2l0aW9uIHdoZXJlIHlvdSBjbGlja2VkLiAgSWYgdGhhdAp3aW5kb3cg d2FzIG5vdCB0aGUgc2VsZWN0ZWQgd2luZG93LCBpdCBiZWNvbWVzIHRoZSBzZWxlY3RlZCB3aW5k b3cuICBZb3UKY2FuIGFsc28gYWN0aXZhdGUgYSByZWdpb24gYnkgZG91YmxlLWNsaWNraW5nIOKA mG1vdXNlLTHigJkgKCpub3RlIFdvcmQgYW5kCkxpbmUgTW91c2U6OikuCgogICBOb3JtYWxseSwg aWYgdGhlIGZyYW1lIHlvdSBjbGlja2VkIGluIHdhcyBub3QgdGhlIHNlbGVjdGVkIGZyYW1lLCBp dAppcyBtYWRlIHRoZSBzZWxlY3RlZCBmcmFtZSwgaW4gYWRkaXRpb24gdG8gc2VsZWN0aW5nIHRo ZSB3aW5kb3cgYW5kCnNldHRpbmcgdGhlIGN1cnNvci4gIE9uIHRoZSBYIFdpbmRvdyBTeXN0ZW0s IHlvdSBjYW4gY2hhbmdlIHRoaXMgYnkKc2V0dGluZyB0aGUgdmFyaWFibGUg4oCYeC1tb3VzZS1j bGljay1mb2N1cy1pZ25vcmUtcG9zaXRpb27igJkgdG8g4oCYdOKAmS4gIEluCnRoYXQgY2FzZSwg dGhlIGluaXRpYWwgY2xpY2sgb24gYW4gdW5zZWxlY3RlZCBmcmFtZSBqdXN0IHNlbGVjdHMgdGhl CmZyYW1lLCB3aXRob3V0IGRvaW5nIGFueXRoaW5nIGVsc2U7IGNsaWNraW5nIGFnYWluIHNlbGVj dHMgdGhlIHdpbmRvdwphbmQgc2V0cyB0aGUgY3Vyc29yIHBvc2l0aW9uLgoKICAgSG9sZGluZyBk b3duIOKAmG1vdXNlLTHigJkgYW5kIGRyYWdnaW5nIHRoZSBtb3VzZSBvdmVyIGEgc3RyZXRjaCBv ZiB0ZXh0CmFjdGl2YXRlcyB0aGUgcmVnaW9uIGFyb3VuZCB0aGF0IHRleHQgKOKAmG1vdXNlLXNl dC1yZWdpb27igJkpLCBwbGFjaW5nIHRoZQptYXJrIHdoZXJlIHlvdSBzdGFydGVkIGhvbGRpbmcg ZG93biB0aGUgbW91c2UgYnV0dG9uLCBhbmQgcG9pbnQgd2hlcmUKeW91IHJlbGVhc2UgaXQgKCpu b3RlIE1hcms6OikuICBJbiBhZGRpdGlvbiwgdGhlIHRleHQgaW4gdGhlIHJlZ2lvbgpiZWNvbWVz IHRoZSBwcmltYXJ5IHNlbGVjdGlvbiAoKm5vdGUgUHJpbWFyeSBTZWxlY3Rpb246OikuCgogICBJ ZiB5b3UgY2hhbmdlIHRoZSB2YXJpYWJsZSDigJhtb3VzZS1kcmFnLWNvcHktcmVnaW9u4oCZIHRv IGEgbm9uLeKAmG5pbOKAmQp2YWx1ZSwgZHJhZ2dpbmcgdGhlIG1vdXNlIG92ZXIgYSBzdHJldGNo IG9mIHRleHQgYWxzbyBhZGRzIHRoZSB0ZXh0IHRvCnRoZSBraWxsIHJpbmcuICBUaGUgZGVmYXVs dCBpcyDigJhuaWzigJkuCgogICBJZiB5b3UgbW92ZSB0aGUgbW91c2Ugb2ZmIHRoZSB0b3Agb3Ig Ym90dG9tIG9mIHRoZSB3aW5kb3cgd2hpbGUKZHJhZ2dpbmcsIHRoZSB3aW5kb3cgc2Nyb2xscyBh dCBhIHN0ZWFkeSByYXRlIHVudGlsIHlvdSBtb3ZlIHRoZSBtb3VzZQpiYWNrIGludG8gdGhlIHdp bmRvdy4gIFRoaXMgd2F5LCB5b3UgY2FuIHNlbGVjdCByZWdpb25zIHRoYXQgZG9u4oCZdCBmaXQK ZW50aXJlbHkgb24gdGhlIHNjcmVlbi4gIFRoZSBudW1iZXIgb2YgbGluZXMgc2Nyb2xsZWQgcGVy IHN0ZXAgZGVwZW5kcwpvbiBob3cgZmFyIGF3YXkgZnJvbSB0aGUgd2luZG93IGVkZ2UgdGhlIG1v dXNlIGhhcyBnb25lOyB0aGUgdmFyaWFibGUK4oCYbW91c2Utc2Nyb2xsLW1pbi1saW5lc+KAmSBz cGVjaWZpZXMgYSBtaW5pbXVtIHN0ZXAgc2l6ZS4KCiAgIENsaWNraW5nIHdpdGggdGhlIG1pZGRs ZSBtb3VzZSBidXR0b24sIOKAmG1vdXNlLTLigJksIG1vdmVzIHBvaW50IHRvIHRoZQpwb3NpdGlv biB3aGVyZSB5b3UgY2xpY2tlZCBhbmQgaW5zZXJ0cyB0aGUgY29udGVudHMgb2YgdGhlIHByaW1h cnkKc2VsZWN0aW9uICjigJhtb3VzZS15YW5rLXByaW1hcnnigJkpLiAgKk5vdGUgUHJpbWFyeSBT ZWxlY3Rpb246Oi4gIFRoaXMKYmVoYXZpb3IgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIFggYXBw bGljYXRpb25zLiAgQWx0ZXJuYXRpdmVseSwgeW91CmNhbiByZWJpbmQg4oCYbW91c2UtMuKAmSB0 byDigJhtb3VzZS15YW5rLWF0LWNsaWNr4oCZLCB3aGljaCBwZXJmb3JtcyBhIHlhbmsgYXQKdGhl IHBvc2l0aW9uIHlvdSBjbGljay4KCiAgIElmIHlvdSBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmG1v dXNlLXlhbmstYXQtcG9pbnTigJkgdG8gYSBub24t4oCYbmls4oCZCnZhbHVlLCDigJhtb3VzZS0y 4oCZIGRvZXMgbm90IG1vdmUgcG9pbnQ7IGl0IGluc2VydHMgdGhlIHRleHQgYXQgcG9pbnQsCnJl Z2FyZGxlc3Mgb2Ygd2hlcmUgeW91IGNsaWNrZWQgb3IgZXZlbiB3aGljaCBvZiB0aGUgZnJhbWXi gJlzIHdpbmRvd3MgeW91CmNsaWNrZWQgb24uICBUaGlzIHZhcmlhYmxlIGFmZmVjdHMgYm90aCDi gJhtb3VzZS15YW5rLXByaW1hcnnigJkgYW5kCuKAmG1vdXNlLXlhbmstYXQtY2xpY2vigJkuCgog ICBDbGlja2luZyB3aXRoIHRoZSByaWdodCBtb3VzZSBidXR0b24sIOKAmG1vdXNlLTPigJksIHJ1 bnMgdGhlIGNvbW1hbmQK4oCYbW91c2Utc2F2ZS10aGVuLWtpbGzigJkuICBUaGlzIHBlcmZvcm1z IHNldmVyYWwgYWN0aW9ucyBkZXBlbmRpbmcgb24Kd2hlcmUgeW91IGNsaWNrIGFuZCB0aGUgc3Rh dHVzIG9mIHRoZSByZWdpb246CgogICDigKIgSWYgbm8gcmVnaW9uIGlzIGFjdGl2ZSwgY2xpY2tp bmcg4oCYbW91c2UtM+KAmSBhY3RpdmF0ZXMgdGhlIHJlZ2lvbiwKICAgICBwbGFjaW5nIHRoZSBt YXJrIHdoZXJlIHBvaW50IHdhcyBhbmQgcG9pbnQgYXQgdGhlIGNsaWNrZWQgcG9zaXRpb24uCgog ICDigKIgSWYgYSByZWdpb24gaXMgYWN0aXZlLCBjbGlja2luZyDigJhtb3VzZS0z4oCZIGFkanVz dHMgdGhlIG5lYXJlciBlbmQgb2YKICAgICB0aGUgcmVnaW9uIGJ5IG1vdmluZyBpdCB0byB0aGUg Y2xpY2tlZCBwb3NpdGlvbi4gIFRoZSBhZGp1c3RlZAogICAgIHJlZ2lvbuKAmXMgdGV4dCBpcyBj b3BpZWQgdG8gdGhlIGtpbGwgcmluZzsgaWYgdGhlIHRleHQgaW4gdGhlCiAgICAgb3JpZ2luYWwg cmVnaW9uIHdhcyBhbHJlYWR5IG9uIHRoZSBraWxsIHJpbmcsIGl0IHJlcGxhY2VzIGl0IHRoZXJl LgoKICAg4oCiIElmIHlvdSBvcmlnaW5hbGx5IHNwZWNpZmllZCB0aGUgcmVnaW9uIHVzaW5nIGEg ZG91YmxlIG9yIHRyaXBsZQogICAgIOKAmG1vdXNlLTHigJksIHNvIHRoYXQgdGhlIHJlZ2lvbiBp cyBkZWZpbmVkIHRvIGNvbnNpc3Qgb2YgZW50aXJlIHdvcmRzCiAgICAgb3IgbGluZXMgKCpub3Rl IFdvcmQgYW5kIExpbmUgTW91c2U6OiksIHRoZW4gYWRqdXN0aW5nIHRoZSByZWdpb24KICAgICB3 aXRoIOKAmG1vdXNlLTPigJkgYWxzbyBwcm9jZWVkcyBieSBlbnRpcmUgd29yZHMgb3IgbGluZXMu CgogICDigKIgSWYgeW91IHVzZSDigJhtb3VzZS0z4oCZIGEgc2Vjb25kIHRpbWUgY29uc2VjdXRp dmVseSwgYXQgdGhlIHNhbWUKICAgICBwbGFjZSwgdGhhdCBraWxscyB0aGUgcmVnaW9uIGFscmVh ZHkgc2VsZWN0ZWQuICBUaHVzLCB0aGUgc2ltcGxlc3QKICAgICB3YXkgdG8ga2lsbCB0ZXh0IHdp dGggdGhlIG1vdXNlIGlzIHRvIGNsaWNrIOKAmG1vdXNlLTHigJkgYXQgb25lIGVuZCwKICAgICB0 aGVuIGNsaWNrIOKAmG1vdXNlLTPigJkgdHdpY2UgYXQgdGhlIG90aGVyIGVuZC4gIFRvIGNvcHkg dGhlIHRleHQgaW50bwogICAgIHRoZSBraWxsIHJpbmcgd2l0aG91dCBkZWxldGluZyBpdCBmcm9t IHRoZSBidWZmZXIsIHByZXNzIOKAmG1vdXNlLTPigJkKICAgICBqdXN0IG9uY2XigJRvciBqdXN0 IGRyYWcgYWNyb3NzIHRoZSB0ZXh0IHdpdGgg4oCYbW91c2UtMeKAmS4gIFRoZW4geW91CiAgICAg Y2FuIGNvcHkgaXQgZWxzZXdoZXJlIGJ5IHlhbmtpbmcgaXQuCgogICBUaGUg4oCYbW91c2Utc2F2 ZS10aGVuLWtpbGzigJkgY29tbWFuZCBhbHNvIG9iZXlzIHRoZSB2YXJpYWJsZQrigJhtb3VzZS1k cmFnLWNvcHktcmVnaW9u4oCZIChkZXNjcmliZWQgYWJvdmUpLiAgSWYgdGhlIHZhbHVlIGlzIG5v bi3igJhuaWzigJksCnRoZW4gd2hlbmV2ZXIgdGhlIGNvbW1hbmQgc2V0cyBvciBhZGp1c3RzIHRo ZSBhY3RpdmUgcmVnaW9uLCB0aGUgdGV4dCBpbgp0aGUgcmVnaW9uIGlzIGFsc28gYWRkZWQgdG8g dGhlIGtpbGwgcmluZy4gIElmIHRoZSBsYXRlc3Qga2lsbCByaW5nCmVudHJ5IGhhZCBiZWVuIGFk ZGVkIHRoZSBzYW1lIHdheSwgdGhhdCBlbnRyeSBpcyByZXBsYWNlZCByYXRoZXIgdGhhbgptYWtp bmcgYSBuZXcgZW50cnkuCgogICBXaGVuZXZlciB5b3Ugc2V0IHRoZSByZWdpb24gdXNpbmcgYW55 IG9mIHRoZSBtb3VzZSBjb21tYW5kcyBkZXNjcmliZWQKYWJvdmUsIHRoZSBtYXJrIHdpbGwgYmUg ZGVhY3RpdmF0ZWQgYnkgYW55IHN1YnNlcXVlbnQgdW5zaGlmdGVkIGN1cnNvcgptb3Rpb24gY29t bWFuZCwgaW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIHdheXMgb2YgZGVhY3RpdmF0aW5nIHRoZSBt YXJrLgoqTm90ZSBTaGlmdCBTZWxlY3Rpb246Oi4KCiAgIFNvbWUgbWljZSBoYXZlIGEg4oCcd2hl ZWzigJ0gd2hpY2ggY2FuIGJlIHVzZWQgZm9yIHNjcm9sbGluZy4gIEVtYWNzCnN1cHBvcnRzIHNj cm9sbGluZyB3aW5kb3dzIHdpdGggdGhlIG1vdXNlIHdoZWVsLCBieSBkZWZhdWx0LCBvbiBtb3N0 CmdyYXBoaWNhbCBkaXNwbGF5cy4gIFRvIHRvZ2dsZSB0aGlzIGZlYXR1cmUsIHVzZSDigJhNLXgg bW91c2Utd2hlZWwtbW9kZeKAmS4KVGhlIHZhcmlhYmxlcyDigJhtb3VzZS13aGVlbC1mb2xsb3ct bW91c2XigJkgYW5kIOKAmG1vdXNlLXdoZWVsLXNjcm9sbC1hbW91bnTigJkKZGV0ZXJtaW5lIHdo ZXJlIGFuZCBieSBob3cgbXVjaCBidWZmZXJzIGFyZSBzY3JvbGxlZC4gIFRoZSB2YXJpYWJsZQri gJhtb3VzZS13aGVlbC1wcm9ncmVzc2l2ZS1zcGVlZOKAmSBkZXRlcm1pbmVzIHdoZXRoZXIgdGhl IHNjcm9sbCBzcGVlZCBpcwpsaW5rZWQgdG8gaG93IGZhc3QgeW91IG1vdmUgdGhlIHdoZWVsLgoK ICAgRW1hY3MgY2FuIGFsc28gc3VwcG9ydCBob3Jpem9udGFsIHNjcm9sbGluZyBpZiB5b3VyIG1v dXNl4oCZcyB3aGVlbCBjYW4KYmUgdGlsdGVkLiAgVGhpcyBmZWF0dXJlIGlzIG9mZiBieSBkZWZh dWx0OyB0aGUgdmFyaWFibGUK4oCYbW91c2Utd2hlZWwtdGlsdC1zY3JvbGzigJkgdHVybnMgaXQg b24uICBJZiB5b3XigJlkIGxpa2UgdG8gcmV2ZXJzZSB0aGUKZGlyZWN0aW9uIG9mIGhvcml6b250 YWwgc2Nyb2xsaW5nLCBjdXN0b21pemUgdGhlIHZhcmlhYmxlCuKAmG1vdXNlLXdoZWVsLWZsaXAt ZGlyZWN0aW9u4oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1ZS4KCgoqKiAyMS4yIE1vdXNlIENv bW1hbmRzIGZvciBXb3JkcyBhbmQgTGluZXMKClRoZXNlIHZhcmlhbnRzIG9mIOKAmG1vdXNlLTHi gJkgc2VsZWN0IGVudGlyZSB3b3JkcyBvciBsaW5lcyBhdCBhIHRpbWUuCkVtYWNzIGFjdGl2YXRl cyB0aGUgcmVnaW9uIGFyb3VuZCB0aGUgc2VsZWN0ZWQgdGV4dCwgd2hpY2ggaXMgYWxzbwpjb3Bp ZWQgdG8gdGhlIGtpbGwgcmluZy4KCuKAmERvdWJsZS1tb3VzZS0x4oCZCiAgICAgU2VsZWN0IHRo ZSB0ZXh0IGFyb3VuZCB0aGUgd29yZCBvciBjaGFyYWN0ZXIgd2hpY2ggeW91IGNsaWNrIG9uLgoK ICAgICBEb3VibGUtY2xpY2tpbmcgb24gYSBjaGFyYWN0ZXIgd2l0aCBzeW1ib2wgc3ludGF4IChz dWNoIGFzCiAgICAgdW5kZXJzY29yZSwgaW4gQyBtb2RlKSBzZWxlY3RzIHRoZSBzeW1ib2wgc3Vy cm91bmRpbmcgdGhhdAogICAgIGNoYXJhY3Rlci4gIERvdWJsZS1jbGlja2luZyBvbiBhIGNoYXJh Y3RlciB3aXRoIG9wZW4tIG9yCiAgICAgY2xvc2UtcGFyZW50aGVzaXMgc3ludGF4IHNlbGVjdHMg dGhlIHBhcmVudGhldGljYWwgZ3JvdXBpbmcgd2hpY2gKICAgICB0aGF0IGNoYXJhY3RlciBzdGFy dHMgb3IgZW5kcy4gIERvdWJsZS1jbGlja2luZyBvbiBhIGNoYXJhY3RlciB3aXRoCiAgICAgc3Ry aW5nLWRlbGltaXRlciBzeW50YXggKHN1Y2ggYXMgYSBzaW5nbGUtcXVvdGUgb3IgZG91YmxlLXF1 b3RlIGluCiAgICAgQykgc2VsZWN0cyB0aGUgc3RyaW5nIGNvbnN0YW50IChFbWFjcyB1c2VzIGhl dXJpc3RpY3MgdG8gZmlndXJlIG91dAogICAgIHdoZXRoZXIgdGhhdCBjaGFyYWN0ZXIgaXMgdGhl IGJlZ2lubmluZyBvciB0aGUgZW5kIG9mIGl0KS4KCiAgICAgRG91YmxlLWNsaWNraW5nIG9uIHRo ZSBiZWdpbm5pbmcgb2YgYSBwYXJlbnRoZXRpY2FsIGdyb3VwaW5nIG9yCiAgICAgYmVnaW5uaW5n IHN0cmluZy1kZWxpbWl0ZXIgbW92ZXMgcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgcmVnaW9uLAog ICAgIHNjcm9sbGluZyB0aGUgYnVmZmVyIGRpc3BsYXkgZm9yd2FyZCBpZiBuZWNlc3NhcnkgdG8g c2hvdyB0aGUgbmV3CiAgICAgbG9jYXRpb24gb2YgcG9pbnQuICBEb3VibGUtY2xpY2tpbmcgb24g dGhlIGVuZCBvZiBhIHBhcmVudGhldGljYWwKICAgICBncm91cGluZyBvciBlbmQgc3RyaW5nLWRl bGltaXRlciBrZWVwcyBwb2ludCBhdCB0aGUgZW5kIG9mIHRoZQogICAgIHJlZ2lvbiBieSBkZWZh dWx0LCBzbyB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZWdpb24gd2lsbCBub3QgYmUKICAgICB2aXNp YmxlIGlmIGl0IGlzIGFib3ZlIHRoZSB0b3Agb2YgdGhlIHdpbmRvdzsgc2V0dGluZyB0aGUgdXNl cgogICAgIG9wdGlvbiDigJhtb3VzZS1zZWxlY3QtcmVnaW9uLW1vdmUtdG8tYmVnaW5uaW5n4oCZ IHRvIG5vbi3igJhuaWzigJkgY2hhbmdlcwogICAgIHRoaXMgdG8gbW92ZSBwb2ludCB0byB0aGUg YmVnaW5uaW5nIG9mIHRoZSByZWdpb24sIHNjcm9sbGluZyB0aGUKICAgICBkaXNwbGF5IGJhY2t3 YXJkIGlmIG5lY2Vzc2FyeS4KCuKAmERvdWJsZS1EcmFnLW1vdXNlLTHigJkKICAgICBTZWxlY3Qg dGhlIHRleHQgeW91IGRyYWcgYWNyb3NzLCBpbiB1bml0cyBvZiB3aG9sZSB3b3Jkcy4KCuKAmFRy aXBsZS1tb3VzZS0x4oCZCiAgICAgU2VsZWN0IHRoZSBsaW5lIHlvdSBjbGljayBvbi4KCuKAmFRy aXBsZS1EcmFnLW1vdXNlLTHigJkKICAgICBTZWxlY3QgdGhlIHRleHQgeW91IGRyYWcgYWNyb3Nz LCBpbiB1bml0cyBvZiB3aG9sZSBsaW5lcy4KCgoqKiAyMS4zIEZvbGxvd2luZyBSZWZlcmVuY2Vz IHdpdGggdGhlIE1vdXNlCgpTb21lIEVtYWNzIGJ1ZmZlcnMgaW5jbHVkZSAiYnV0dG9ucyIsIG9y ICJoeXBlcmxpbmtzIjogcGllY2VzIG9mIHRleHQKdGhhdCBwZXJmb3JtIHNvbWUgYWN0aW9uIChl LmcuLCBmb2xsb3dpbmcgYSByZWZlcmVuY2UpIHdoZW4gYWN0aXZhdGVkCihlLmcuLCBieSBjbGlj a2luZyBvbiB0aGVtKS4gIFVzdWFsbHksIGEgYnV0dG9u4oCZcyB0ZXh0IGlzIHZpc3VhbGx5Cmhp Z2hsaWdodGVkOiBpdCBpcyB1bmRlcmxpbmVkLCBvciBhIGJveCBpcyBkcmF3biBhcm91bmQgaXQu ICBJZiB5b3UgbW92ZQp0aGUgbW91c2Ugb3ZlciBhIGJ1dHRvbiwgdGhlIHNoYXBlIG9mIHRoZSBt b3VzZSBjdXJzb3IgY2hhbmdlcyBhbmQgdGhlCmJ1dHRvbiBsaWdodHMgdXAuICBJZiB5b3UgY2hh bmdlIHRoZSB2YXJpYWJsZSDigJhtb3VzZS1oaWdobGlnaHTigJkgdG8K4oCYbmls4oCZLCBFbWFj cyBkaXNhYmxlcyB0aGlzIGhpZ2hsaWdodGluZy4KCiAgIFlvdSBjYW4gYWN0aXZhdGUgYSBidXR0 b24gYnkgbW92aW5nIHBvaW50IHRvIGl0IGFuZCB0eXBpbmcgPFJFVD4sIG9yCmJ5IGNsaWNraW5n IGVpdGhlciDigJhtb3VzZS0x4oCZIG9yIOKAmG1vdXNlLTLigJkgb24gdGhlIGJ1dHRvbi4gIEZv ciBleGFtcGxlLAppbiBhIERpcmVkIGJ1ZmZlciwgZWFjaCBmaWxlIG5hbWUgaXMgYSBidXR0b247 IGFjdGl2YXRpbmcgaXQgY2F1c2VzCkVtYWNzIHRvIHZpc2l0IHRoYXQgZmlsZSAoKm5vdGUgRGly ZWQ6OikuICBJbiBhIOKAmCpDb21waWxhdGlvbirigJkgYnVmZmVyLAplYWNoIGVycm9yIG1lc3Nh Z2UgaXMgYSBidXR0b24sIGFuZCBhY3RpdmF0aW5nIGl0IHZpc2l0cyB0aGUgc291cmNlIGNvZGUK Zm9yIHRoYXQgZXJyb3IgKCpub3RlIENvbXBpbGF0aW9uOjopLgoKICAgQWx0aG91Z2ggY2xpY2tp bmcg4oCYbW91c2UtMeKAmSBvbiBhIGJ1dHRvbiB1c3VhbGx5IGFjdGl2YXRlcyB0aGUgYnV0dG9u LAppZiB5b3UgaG9sZCB0aGUgbW91c2UgYnV0dG9uIGRvd24gZm9yIGEgcGVyaW9kIG9mIHRpbWUg YmVmb3JlIHJlbGVhc2luZwppdCAoc3BlY2lmaWNhbGx5LCBmb3IgbW9yZSB0aGFuIDQ1MCBtaWxs aXNlY29uZHMpLCB0aGVuIEVtYWNzIG1vdmVzCnBvaW50IHdoZXJlIHlvdSBjbGlja2VkLCB3aXRo b3V0IGFjdGl2YXRpbmcgdGhlIGJ1dHRvbi4gIEluIHRoaXMgd2F5LAp5b3UgY2FuIHVzZSB0aGUg bW91c2UgdG8gbW92ZSBwb2ludCBvdmVyIGEgYnV0dG9uIHdpdGhvdXQgYWN0aXZhdGluZyBpdC4K RHJhZ2dpbmcgdGhlIG1vdXNlIG92ZXIgb3Igb250byBhIGJ1dHRvbiBoYXMgaXRzIHVzdWFsIGJl aGF2aW9yIG9mCnNldHRpbmcgdGhlIHJlZ2lvbiwgYW5kIGRvZXMgbm90IGFjdGl2YXRlIHRoZSBi dXR0b24uCgogICBZb3UgY2FuIGNoYW5nZSBob3cg4oCYbW91c2UtMeKAmSBhcHBsaWVzIHRvIGJ1 dHRvbnMgYnkgY3VzdG9taXppbmcgdGhlCnZhcmlhYmxlIOKAmG1vdXNlLTEtY2xpY2stZm9sbG93 cy1saW5r4oCZLiAgSWYgdGhlIHZhbHVlIGlzIGEgcG9zaXRpdmUKaW50ZWdlciwgdGhhdCBkZXRl cm1pbmVzIGhvdyBsb25nIHlvdSBuZWVkIHRvIGhvbGQgdGhlIG1vdXNlIGJ1dHRvbiBkb3duCmZv ciwgaW4gbWlsbGlzZWNvbmRzLCB0byBjYW5jZWwgYnV0dG9uIGFjdGl2YXRpb247IHRoZSBkZWZh dWx0IGlzIDQ1MCwKYXMgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGguICBJZiB0 aGUgdmFsdWUgaXMg4oCYbmls4oCZLArigJhtb3VzZS0x4oCZIGp1c3Qgc2V0cyBwb2ludCB3aGVy ZSB5b3UgY2xpY2tlZCwgYW5kIGRvZXMgbm90IGFjdGl2YXRlCmJ1dHRvbnMuICBJZiB0aGUgdmFs dWUgaXMg4oCYZG91Ymxl4oCZLCBkb3VibGUgY2xpY2tzIGFjdGl2YXRlIGJ1dHRvbnMgYnV0CnNp bmdsZSBjbGlja3MganVzdCBzZXQgcG9pbnQuCgogICBOb3JtYWxseSwg4oCYbW91c2UtMeKAmSBv biBhIGJ1dHRvbiBhY3RpdmF0ZXMgdGhlIGJ1dHRvbiBldmVuIGlmIGl0IGlzIGluCmEgbm9uLXNl bGVjdGVkIHdpbmRvdy4gIElmIHlvdSBjaGFuZ2UgdGhlIHZhcmlhYmxlCuKAmG1vdXNlLTEtY2xp Y2staW4tbm9uLXNlbGVjdGVkLXdpbmRvd3PigJkgdG8g4oCYbmls4oCZLCDigJhtb3VzZS0x4oCZ IG9uIGEgYnV0dG9uCmluIGFuIHVuc2VsZWN0ZWQgd2luZG93IG1vdmVzIHBvaW50IHRvIHRoZSBj bGlja2VkIHBvc2l0aW9uIGFuZCBzZWxlY3RzCnRoYXQgd2luZG93LCB3aXRob3V0IGFjdGl2YXRp bmcgdGhlIGJ1dHRvbi4KCgoqKiAyMS40IE1vdXNlIENsaWNrcyBmb3IgTWVudXMKClNldmVyYWwg bW91c2UgY2xpY2tzIHdpdGggdGhlIDxDdHJsPiBhbmQgPFNISUZUPiBtb2RpZmllcnMgYnJpbmcg dXAKbWVudXMuCgrigJhDLW1vdXNlLTHigJkKICAgICBUaGlzIG1lbnUgaXMgZm9yIHNlbGVjdGlu ZyBhIGJ1ZmZlci4KCiAgICAgVGhlIE1TQiAo4oCcbW91c2Ugc2VsZWN0IGJ1ZmZlcuKAnSkgZ2xv YmFsIG1pbm9yIG1vZGUgbWFrZXMgdGhpcyBtZW51CiAgICAgc21hcnRlciBhbmQgbW9yZSBjdXN0 b21pemFibGUuICAqTm90ZSBCdWZmZXIgTWVudXM6Oi4KCuKAmEMtbW91c2UtMuKAmQogICAgIFRo aXMgbWVudSBjb250YWlucyBlbnRyaWVzIGZvciBleGFtaW5pbmcgZmFjZXMgYW5kIG90aGVyIHRl eHQKICAgICBwcm9wZXJ0aWVzLCBhbmQgd2VsbCBhcyBmb3Igc2V0dGluZyB0aGVtICh0aGUgbGF0 dGVyIGlzIG1haW5seQogICAgIHVzZWZ1bCB3aGVuIGVkaXRpbmcgZW5yaWNoZWQgdGV4dDsgKm5v dGUgRW5yaWNoZWQgVGV4dDo6KS4KCuKAmEMtbW91c2UtM+KAmQogICAgIFRoaXMgbWVudSBpcyBt b2RlLXNwZWNpZmljLiAgRm9yIG1vc3QgbW9kZXMgaWYgTWVudS1iYXIgbW9kZSBpcyBvbiwKICAg ICB0aGlzIG1lbnUgaGFzIHRoZSBzYW1lIGl0ZW1zIGFzIGFsbCB0aGUgbW9kZS1zcGVjaWZpYyBt ZW51LWJhcgogICAgIG1lbnVzIHB1dCB0b2dldGhlci4gIFNvbWUgbW9kZXMgbWF5IHNwZWNpZnkg YSBkaWZmZXJlbnQgbWVudSBmb3IKICAgICB0aGlzIGJ1dHRvbi4gIElmIE1lbnUgQmFyIG1vZGUg aXMgb2ZmLCB0aGlzIG1lbnUgY29udGFpbnMgYWxsIHRoZQogICAgIGl0ZW1zIHdoaWNoIHdvdWxk IGJlIHByZXNlbnQgaW4gdGhlIG1lbnUgYmFy4oCUbm90IGp1c3QgdGhlCiAgICAgbW9kZS1zcGVj aWZpYyBvbmVz4oCUc28gdGhhdCB5b3UgY2FuIGFjY2VzcyB0aGVtIHdpdGhvdXQgaGF2aW5nIHRv CiAgICAgZGlzcGxheSB0aGUgbWVudSBiYXIuCgrigJhTLW1vdXNlLTHigJkKICAgICBUaGlzIG1l bnUgaXMgZm9yIGNoYW5naW5nIHRoZSBkZWZhdWx0IGZhY2Ugd2l0aGluIHRoZSB3aW5kb3figJlz CiAgICAgYnVmZmVyLiAgKk5vdGUgVGV4dCBTY2FsZTo6LgoKICAgU29tZSBncmFwaGljYWwgYXBw bGljYXRpb25zIHVzZSDigJhtb3VzZS0z4oCZIGZvciBhIG1vZGUtc3BlY2lmaWMgbWVudS4KSWYg eW91IHByZWZlciDigJhtb3VzZS0z4oCZIGluIEVtYWNzIHRvIGJyaW5nIHVwIHN1Y2ggYSBtZW51 IGluc3RlYWQgb2YKcnVubmluZyB0aGUg4oCYbW91c2Utc2F2ZS10aGVuLWtpbGzigJkgY29tbWFu ZCwgcmViaW5kIOKAmG1vdXNlLTPigJkgYnkgYWRkaW5nCnRoZSBmb2xsb3dpbmcgbGluZSB0byB5 b3VyIGluaXQgZmlsZSAoKm5vdGUgSW5pdCBSZWJpbmRpbmc6Oik6CgogICAgIChnbG9iYWwtc2V0 LWtleSBbbW91c2UtM10gJ21vdXNlLXBvcHVwLW1lbnViYXItc3R1ZmYpCgoKKiogMjEuNSBNb2Rl IExpbmUgTW91c2UgQ29tbWFuZHMKCllvdSBjYW4gdXNlIG1vdXNlIGNsaWNrcyBvbiB3aW5kb3cg bW9kZSBsaW5lcyB0byBzZWxlY3QgYW5kIG1hbmlwdWxhdGUKd2luZG93cy4KCiAgIFNvbWUgYXJl YXMgb2YgdGhlIG1vZGUgbGluZSwgc3VjaCBhcyB0aGUgYnVmZmVyIG5hbWUsIGFuZCBtYWpvciBh bmQKbWlub3IgbW9kZSBuYW1lcywgaGF2ZSB0aGVpciBvd24gc3BlY2lhbCBtb3VzZSBiaW5kaW5n cy4gIFRoZXNlIGFyZWFzCmFyZSBoaWdobGlnaHRlZCB3aGVuIHlvdSBob2xkIHRoZSBtb3VzZSBv dmVyIHRoZW0sIGFuZCBpbmZvcm1hdGlvbiBhYm91dAp0aGUgc3BlY2lhbCBiaW5kaW5ncyB3aWxs IGJlIGRpc3BsYXllZCAoKm5vdGUgVG9vbHRpcHM6OikuICBUaGlzCnNlY3Rpb27igJlzIGNvbW1h bmRzIGRvIG5vdCBhcHBseSBpbiB0aG9zZSBhcmVhcy4KCuKAmG1vdXNlLTHigJkKICAgICDigJht b3VzZS0x4oCZIG9uIGEgbW9kZSBsaW5lIHNlbGVjdHMgdGhlIHdpbmRvdyBpdCBiZWxvbmdzIHRv LiAgQnkKICAgICBkcmFnZ2luZyDigJhtb3VzZS0x4oCZIG9uIHRoZSBtb2RlIGxpbmUsIHlvdSBj YW4gbW92ZSBpdCwgdGh1cyBjaGFuZ2luZwogICAgIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvd3Mg YWJvdmUgYW5kIGJlbG93LiAgQ2hhbmdpbmcgaGVpZ2h0cyB3aXRoCiAgICAgdGhlIG1vdXNlIGlu IHRoaXMgd2F5IG5ldmVyIGRlbGV0ZXMgd2luZG93cywgaXQganVzdCByZWZ1c2VzIHRvCiAgICAg bWFrZSBhbnkgd2luZG93IHNtYWxsZXIgdGhhbiB0aGUgbWluaW11bSBoZWlnaHQuCgrigJhtb3Vz ZS0y4oCZCiAgICAg4oCYbW91c2UtMuKAmSBvbiBhIG1vZGUgbGluZSBleHBhbmRzIHRoYXQgd2lu ZG93IHRvIGZpbGwgaXRzIGZyYW1lLgoK4oCYbW91c2UtM+KAmQogICAgIOKAmG1vdXNlLTPigJkg b24gYSBtb2RlIGxpbmUgZGVsZXRlcyB0aGUgd2luZG93IGl0IGJlbG9uZ3MgdG8uICBJZiB0aGUK ICAgICBmcmFtZSBoYXMgb25seSBvbmUgd2luZG93LCBpdCBkb2VzIG5vdGhpbmcuCgrigJhDLW1v dXNlLTLigJkKICAgICDigJhDLW1vdXNlLTLigJkgb24gYSBtb2RlIGxpbmUgc3BsaXRzIHRoYXQg d2luZG93LCBwcm9kdWNpbmcgdHdvCiAgICAgc2lkZS1ieS1zaWRlIHdpbmRvd3Mgd2l0aCB0aGUg Ym91bmRhcnkgcnVubmluZyB0aHJvdWdoIHRoZSBjbGljawogICAgIHBvc2l0aW9uICgqbm90ZSBT cGxpdCBXaW5kb3c6OikuCgogICBGdXJ0aGVybW9yZSwgYnkgY2xpY2tpbmcgYW5kIGRyYWdnaW5n IOKAmG1vdXNlLTHigJkgb24gdGhlIGRpdmlkZXIKYmV0d2VlbiB0d28gc2lkZS1ieS1zaWRlIG1v ZGUgbGluZXMsIHlvdSBjYW4gbW92ZSB0aGUgdmVydGljYWwgYm91bmRhcnkKdG8gdGhlIGxlZnQg b3IgcmlnaHQuCgogICBOb3RlIHRoYXQgcmVzaXppbmcgd2luZG93cyBpcyBhZmZlY3RlZCBieSB0 aGUgdmFsdWUgb2YK4oCYd2luZG93LXJlc2l6ZS1waXhlbHdpc2XigJksIHNlZSAqbm90ZSBTcGxp dCBXaW5kb3c6Oi4KCgoqKiAyMS42IENyZWF0aW5nIEZyYW1lcwoKVGhlIHByZWZpeCBrZXkg4oCY Qy14IDXigJkgaXMgYW5hbG9nb3VzIHRvIOKAmEMteCA04oCZLiAgV2hlcmVhcyBlYWNoIOKAmEMt eCA04oCZCmNvbW1hbmQgcG9wcyB1cCBhIGJ1ZmZlciBpbiBhIGRpZmZlcmVudCB3aW5kb3cgaW4g dGhlIHNlbGVjdGVkIGZyYW1lCigqbm90ZSBQb3AgVXAgV2luZG93OjopLCB0aGUg4oCYQy14IDXi gJkgY29tbWFuZHMgdXNlIGEgZGlmZmVyZW50IGZyYW1lLiAgSWYKYW4gZXhpc3RpbmcgdmlzaWJs ZSBvciBpY29uaWZpZWQgKGEuay5hLiDigJxtaW5pbWl6ZWTigJ0sICpub3RlCihlbGlzcClWaXNp YmlsaXR5IG9mIEZyYW1lczo6KSBmcmFtZSBhbHJlYWR5IGRpc3BsYXlzIHRoZSByZXF1ZXN0ZWQK YnVmZmVyLCB0aGF0IGZyYW1lIGlzIHJhaXNlZCBhbmQgZGVpY29uaWZpZWQgKOKAnHVuLW1pbmlt aXplZOKAnSk7Cm90aGVyd2lzZSwgYSBuZXcgZnJhbWUgaXMgY3JlYXRlZCBvbiB0aGUgY3VycmVu dCBkaXNwbGF5IHRlcm1pbmFsLgoKICAgVGhlIHZhcmlvdXMg4oCYQy14IDXigJkgY29tbWFuZHMg ZGlmZmVyIGluIGhvdyB0aGV5IGZpbmQgb3IgY3JlYXRlIHRoZQpidWZmZXIgdG8gc2VsZWN0OgoK 4oCYQy14IDUgMuKAmQogICAgIENyZWF0ZSBhIG5ldyBmcmFtZSAo4oCYbWFrZS1mcmFtZS1jb21t YW5k4oCZKS4K4oCYQy14IDUgYiBCVUZOQU1FIDxSRVQ+4oCZCiAgICAgU2VsZWN0IGJ1ZmZlciBC VUZOQU1FIGluIGFub3RoZXIgZnJhbWUuICBUaGlzIHJ1bnMKICAgICDigJhzd2l0Y2gtdG8tYnVm ZmVyLW90aGVyLWZyYW1l4oCZLgrigJhDLXggNSBmIEZJTEVOQU1FIDxSRVQ+4oCZCiAgICAgVmlz aXQgZmlsZSBGSUxFTkFNRSBhbmQgc2VsZWN0IGl0cyBidWZmZXIgaW4gYW5vdGhlciBmcmFtZS4g IFRoaXMKICAgICBydW5zIOKAmGZpbmQtZmlsZS1vdGhlci1mcmFtZeKAmS4gICpOb3RlIFZpc2l0 aW5nOjouCuKAmEMteCA1IGQgRElSRUNUT1JZIDxSRVQ+4oCZCiAgICAgU2VsZWN0IGEgRGlyZWQg YnVmZmVyIGZvciBkaXJlY3RvcnkgRElSRUNUT1JZIGluIGFub3RoZXIgZnJhbWUuCiAgICAgVGhp cyBydW5zIOKAmGRpcmVkLW90aGVyLWZyYW1l4oCZLiAgKk5vdGUgRGlyZWQ6Oi4K4oCYQy14IDUg beKAmQogICAgIFN0YXJ0IGNvbXBvc2luZyBhIG1haWwgbWVzc2FnZSBpbiBhbm90aGVyIGZyYW1l LiAgVGhpcyBydW5zCiAgICAg4oCYY29tcG9zZS1tYWlsLW90aGVyLWZyYW1l4oCZLiAgSXQgaXMg dGhlIG90aGVyLWZyYW1lIHZhcmlhbnQgb2Yg4oCYQy14CiAgICAgbeKAmS4gICpOb3RlIFNlbmRp bmcgTWFpbDo6LgrigJhDLXggNSAu4oCZCiAgICAgRmluZCB0aGUgZGVmaW5pdGlvbiBvZiBhbiBp ZGVudGlmaWVyIGluIGFub3RoZXIgZnJhbWUuICBUaGlzIHJ1bnMKICAgICDigJh4cmVmLWZpbmQt ZGVmaW5pdGlvbnMtb3RoZXItZnJhbWXigJksIHRoZSBtdWx0aXBsZS1mcmFtZSB2YXJpYW50IG9m CiAgICAg4oCYTS0u4oCZLiAgKk5vdGUgWHJlZjo6LgrigJhDLXggNSByIEZJTEVOQU1FIDxSRVQ+ 4oCZCiAgICAgVmlzaXQgZmlsZSBGSUxFTkFNRSByZWFkLW9ubHksIGFuZCBzZWxlY3QgaXRzIGJ1 ZmZlciBpbiBhbm90aGVyCiAgICAgZnJhbWUuICBUaGlzIHJ1bnMg4oCYZmluZC1maWxlLXJlYWQt b25seS1vdGhlci1mcmFtZeKAmS4gICpOb3RlCiAgICAgVmlzaXRpbmc6Oi4KCiAgIFlvdSBjYW4g Y29udHJvbCB0aGUgYXBwZWFyYW5jZSBhbmQgYmVoYXZpb3Igb2YgdGhlIG5ld2x5LWNyZWF0ZWQK ZnJhbWVzIGJ5IHNwZWNpZnlpbmcgImZyYW1lIHBhcmFtZXRlcnMiLiAgKk5vdGUgRnJhbWUgUGFy YW1ldGVyczo6LgoKCioqIDIxLjcgRnJhbWUgQ29tbWFuZHMKClRoZSBmb2xsb3dpbmcgY29tbWFu ZHMgYXJlIHVzZWQgdG8gZGVsZXRlIGFuZCBvcGVyYXRlIG9uIGZyYW1lczoKCuKAmEMteCA1IDDi gJkKICAgICBEZWxldGUgdGhlIHNlbGVjdGVkIGZyYW1lICjigJhkZWxldGUtZnJhbWXigJkpLiAg VGhpcyBzaWduYWxzIGFuIGVycm9yCiAgICAgaWYgdGhlcmUgaXMgb25seSBvbmUgZnJhbWUuCgri gJhDLXrigJkKICAgICBNaW5pbWl6ZSAob3IgaWNvbmlmeSkgdGhlIHNlbGVjdGVkIEVtYWNzIGZy YW1lICjigJhzdXNwZW5kLWZyYW1l4oCZKS4KICAgICAqTm90ZSBFeGl0aW5nOjouCgrigJhDLXgg NSBv4oCZCiAgICAgU2VsZWN0IGFub3RoZXIgZnJhbWUsIGFuZCByYWlzZSBpdC4gIElmIHlvdSBy ZXBlYXQgdGhpcyBjb21tYW5kLCBpdAogICAgIGN5Y2xlcyB0aHJvdWdoIGFsbCB0aGUgZnJhbWVz IG9uIHlvdXIgdGVybWluYWwuCgrigJhDLXggNSAx4oCZCiAgICAgRGVsZXRlIGFsbCBmcmFtZXMg b24gdGhlIGN1cnJlbnQgdGVybWluYWwsIGV4Y2VwdCB0aGUgc2VsZWN0ZWQgb25lLgoK4oCYTS08 RjEwPuKAmQogICAgIFRvZ2dsZSB0aGUgbWF4aW1pemF0aW9uIHN0YXRlIG9mIHRoZSBjdXJyZW50 IGZyYW1lLiAgV2hlbiBhIGZyYW1lCiAgICAgaXMgbWF4aW1pemVkLCBpdCBmaWxscyB0aGUgc2Ny ZWVuLgoK4oCYPEYxMT7igJkKICAgICBUb2dnbGUgZnVsbC1zY3JlZW4gbW9kZSBmb3IgdGhlIGN1 cnJlbnQgZnJhbWUuICAoVGhlIGRpZmZlcmVuY2UKICAgICBiZXR3ZWVuIGZ1bGwtc2NyZWVuIGFu ZCBtYXhpbWl6ZWQgaXMgbm9ybWFsbHkgdGhhdCB0aGUgZm9ybWVyIGhpZGVzCiAgICAgd2luZG93 IG1hbmFnZXIgZGVjb3JhdGlvbnMsIGdpdmluZyBzbGlnaHRseSBtb3JlIHNjcmVlbiBzcGFjZSB0 bwogICAgIEVtYWNzIGl0c2VsZi4pCgogICBOb3RlIHRoYXQgd2l0aCBzb21lIHdpbmRvdyBtYW5h Z2VycyB5b3UgbWF5IGhhdmUgdG8gY3VzdG9taXplIHRoZQp2YXJpYWJsZSDigJhmcmFtZS1yZXNp emUtcGl4ZWx3aXNl4oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1ZSBpbiBvcmRlciB0byBtYWtl CmEgZnJhbWUgdHJ1bHkgbWF4aW1pemVkIG9yIGZ1bGwtc2NyZWVuLiAgVGhpcyB2YXJpYWJsZSwg d2hlbiBzZXQgdG8gYQpub24t4oCYbmls4oCZIHZhbHVlLCBpbiBnZW5lcmFsIGFsbG93cyByZXNp emluZyBmcmFtZXMgYXQgcGl4ZWwgcmVzb2x1dGlvbiwKcmF0aGVyIHRoYW4gaW4gaW50ZWdyYWwg bXVsdGlwbGVzIG9mIGxpbmVzIGFuZCBjb2x1bW5zLgoKICAgVGhlIOKAmEMteCA1IDDigJkgKOKA mGRlbGV0ZS1mcmFtZeKAmSkgY29tbWFuZCBkZWxldGVzIHRoZSBzZWxlY3RlZCBmcmFtZS4KSG93 ZXZlciwgaXQgd2lsbCByZWZ1c2UgdG8gZGVsZXRlIHRoZSBsYXN0IGZyYW1lIGluIGFuIEVtYWNz IHNlc3Npb24sIHRvCnByZXZlbnQgeW91IGZyb20gbG9zaW5nIHRoZSBhYmlsaXR5IHRvIGludGVy YWN0IHdpdGggdGhlIEVtYWNzIHNlc3Npb24uCk5vdGUgdGhhdCB3aGVuIEVtYWNzIGlzIHJ1biBh cyBhIGRhZW1vbiAoKm5vdGUgRW1hY3MgU2VydmVyOjopLCB0aGVyZSBpcwphbHdheXMgYSB2aXJ0 dWFsIGZyYW1lIHRoYXQgcmVtYWlucyBhZnRlciBhbGwgdGhlIG9yZGluYXJ5LCBpbnRlcmFjdGl2 ZQpmcmFtZXMgYXJlIGRlbGV0ZWQuICBJbiB0aGlzIGNhc2UsIOKAmEMteCA1IDDigJkgY2FuIGRl bGV0ZSB0aGUgbGFzdAppbnRlcmFjdGl2ZSBmcmFtZTsgeW91IGNhbiB1c2Ug4oCYZW1hY3NjbGll bnTigJkgdG8gcmVjb25uZWN0IHRvIHRoZSBFbWFjcwpzZXNzaW9uLgoKICAgVGhlIOKAmEMteCA1 IDHigJkgKOKAmGRlbGV0ZS1vdGhlci1mcmFtZXPigJkpIGNvbW1hbmQgZGVsZXRlcyBhbGwgb3Ro ZXIKZnJhbWVzIG9uIHRoZSBjdXJyZW50IHRlcm1pbmFsICh0aGlzIHRlcm1pbmFsIHJlZmVycyB0 byBlaXRoZXIgYQpncmFwaGljYWwgZGlzcGxheSwgb3IgYSB0ZXh0IHRlcm1pbmFsOyAqbm90ZSBO b24tV2luZG93IFRlcm1pbmFsczo6KS4KSWYgdGhlIEVtYWNzIHNlc3Npb24gaGFzIGZyYW1lcyBv cGVuIG9uIG90aGVyIGdyYXBoaWNhbCBkaXNwbGF5cyBvciB0ZXh0CnRlcm1pbmFscywgdGhvc2Ug YXJlIG5vdCBkZWxldGVkLgoKICAgVGhlIOKAmEMteCA1IG/igJkgKOKAmG90aGVyLWZyYW1l4oCZ KSBjb21tYW5kIHNlbGVjdHMgdGhlIG5leHQgZnJhbWUgb24gdGhlCmN1cnJlbnQgdGVybWluYWwu ICBJZiB5b3UgYXJlIHVzaW5nIEVtYWNzIG9uIHRoZSBYIFdpbmRvdyBTeXN0ZW0gd2l0aCBhCndp bmRvdyBtYW5hZ2VyIHRoYXQgc2VsZWN0cyAob3IgImdpdmVzIGZvY3VzIHRvIikgd2hhdGV2ZXIg ZnJhbWUgdGhlCm1vdXNlIGN1cnNvciBpcyBvdmVyLCB5b3UgaGF2ZSB0byBjaGFuZ2UgdGhlIHZh cmlhYmxlCuKAmGZvY3VzLWZvbGxvd3MtbW91c2XigJkgdG8g4oCYdOKAmSBpbiBvcmRlciBmb3Ig dGhpcyBjb21tYW5kIHRvIHdvcmsgcHJvcGVybHkuClRoZW4gaW52b2tpbmcg4oCYQy14IDUgb+KA mSB3aWxsIGFsc28gd2FycCB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSBjaG9zZW4KZnJhbWUuCgoK KiogMjEuOCBGb250cwoKQnkgZGVmYXVsdCwgRW1hY3MgZGlzcGxheXMgdGV4dCBvbiBncmFwaGlj YWwgZGlzcGxheXMgdXNpbmcgYSAxMC1wb2ludAptb25vc3BhY2UgZm9udC4gIFRoZXJlIGFyZSBz ZXZlcmFsIGRpZmZlcmVudCB3YXlzIHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQKZm9udDoKCiAgIOKA oiBDbGljayBvbiDigJhTZXQgRGVmYXVsdCBGb2504oCZIGluIHRoZSDigJhPcHRpb25z4oCZIG1l bnUuICBUaGlzIG1ha2VzIHRoZQogICAgIHNlbGVjdGVkIGZvbnQgdGhlIGRlZmF1bHQgb24gYWxs IGV4aXN0aW5nIGdyYXBoaWNhbCBmcmFtZXMuICBUbwogICAgIHNhdmUgdGhpcyBmb3IgZnV0dXJl IHNlc3Npb25zLCBjbGljayBvbiDigJhTYXZlIE9wdGlvbnPigJkgaW4gdGhlCiAgICAg4oCYT3B0 aW9uc+KAmSBtZW51LgoKICAg4oCiIEFkZCBhIGxpbmUgdG8geW91ciBpbml0IGZpbGUsIG1vZGlm eWluZyB0aGUgdmFyaWFibGUKICAgICDigJhkZWZhdWx0LWZyYW1lLWFsaXN04oCZIHRvIHNwZWNp ZnkgdGhlIOKAmGZvbnTigJkgcGFyYW1ldGVyICgqbm90ZSBGcmFtZQogICAgIFBhcmFtZXRlcnM6 OiksIGxpa2UgdGhpczoKCiAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2RlZmF1bHQtZnJhbWUtYWxp c3QKICAgICAgICAgICAgICAgICAgICAgICAnKGZvbnQgLiAiRGVqYVZ1IFNhbnMgTW9uby0xMCIp KQoKICAgICBUaGlzIG1ha2VzIHRoZSBmb250IHRoZSBkZWZhdWx0IG9uIGFsbCBncmFwaGljYWwg ZnJhbWVzIGNyZWF0ZWQKICAgICBhZnRlciByZXN0YXJ0aW5nIEVtYWNzIHdpdGggdGhhdCBpbml0 IGZpbGUuCgogICDigKIgQWRkIGFuIOKAmGVtYWNzLmZvbnTigJkgWCByZXNvdXJjZSBzZXR0aW5n IHRvIHlvdXIgWCByZXNvdXJjZSBmaWxlLAogICAgIGxpa2UgdGhpczoKCiAgICAgICAgICBlbWFj cy5mb250OiBEZWphVnUgU2FucyBNb25vLTEyCgogICAgIFlvdSBtdXN0IHJlc3RhcnQgWCwgb3Ig dXNlIHRoZSDigJh4cmRi4oCZIGNvbW1hbmQsIGZvciB0aGUgWCByZXNvdXJjZXMKICAgICBmaWxl IHRvIHRha2UgZWZmZWN0LiAgKk5vdGUgUmVzb3VyY2VzOjouICBEbyBub3QgcXVvdGUgZm9udCBu YW1lcwogICAgIGluIFggcmVzb3VyY2UgZmlsZXMuCgogICDigKIgSWYgeW91IGFyZSBydW5uaW5n IEVtYWNzIG9uIHRoZSBHTk9NRSBkZXNrdG9wLCB5b3UgY2FuIHRlbGwgRW1hY3MKICAgICB0byB1 c2UgdGhlIGRlZmF1bHQgc3lzdGVtIGZvbnQgYnkgc2V0dGluZyB0aGUgdmFyaWFibGUKICAgICDi gJhmb250LXVzZS1zeXN0ZW0tZm9udOKAmSB0byDigJh04oCZICh0aGUgZGVmYXVsdCBpcyDigJhu aWzigJkpLiAgRm9yIHRoaXMgdG8KICAgICB3b3JrLCBFbWFjcyBtdXN0IGhhdmUgYmVlbiBjb21w aWxlZCB3aXRoIHN1cHBvcnQgZm9yIEdzZXR0aW5ncyAob3IKICAgICB0aGUgb2xkZXIgR2NvbmYp LgoKICAg4oCiIFVzZSB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbiDigJgtZm7igJkgKG9yIOKAmC0t Zm9udOKAmSkuICAqTm90ZSBGb250IFg6Oi4KCiAgIFRvIGNoZWNrIHdoYXQgZm9udCB5b3XigJly ZSBjdXJyZW50bHkgdXNpbmcsIHRoZSDigJhDLXUgQy14ID3igJkgY29tbWFuZApjYW4gYmUgaGVs cGZ1bC4gIEl0IGRlc2NyaWJlcyB0aGUgY2hhcmFjdGVyIGF0IHBvaW50LCBhbmQgbmFtZXMgdGhl IGZvbnQKdGhhdCBpdOKAmXMgcmVuZGVyZWQgaW4uCgogICBPbiBYLCB0aGVyZSBhcmUgZm91ciBk aWZmZXJlbnQgd2F5cyB0byBleHByZXNzIGEgZm9udCBuYW1lLiAgVGhlCmZpcnN0IGlzIHRvIHVz ZSBhICJGb250Y29uZmlnIHBhdHRlcm4iLiAgRm9udGNvbmZpZyBwYXR0ZXJucyBoYXZlIHRoZQpm b2xsb3dpbmcgZm9ybToKCiAgICAgRk9OVE5BTUVbLUZPTlRTSVpFXVs6TkFNRTE9VkFMVUVTMV1b Ok5BTUUyPVZBTFVFUzJdLi4uCgpXaXRoaW4gdGhpcyBmb3JtYXQsIGFueSBvZiB0aGUgZWxlbWVu dHMgaW4gYnJhY2tldHMgbWF5IGJlIG9taXR0ZWQuCkhlcmUsIEZPTlROQU1FIGlzIHRoZSAiZmFt aWx5IG5hbWUiIG9mIHRoZSBmb250LCBzdWNoIGFzIOKAmE1vbm9zcGFjZeKAmSBvcgrigJhEZWph VnUgU2FucyBNb25v4oCZOyBGT05UU0laRSBpcyB0aGUgInBvaW50IHNpemUiIG9mIHRoZSBmb250 IChvbmUKInByaW50ZXLigJlzIHBvaW50IiBpcyBhYm91dCAxLzcyIG9mIGFuIGluY2gpOyBhbmQg dGhlIOKAmE5BTUU9VkFMVUVT4oCZCmVudHJpZXMgc3BlY2lmeSBzZXR0aW5ncyBzdWNoIGFzIHRo ZSBzbGFudCBhbmQgd2VpZ2h0IG9mIHRoZSBmb250LiAgRWFjaApWQUxVRVMgbWF5IGJlIGEgc2lu Z2xlIHZhbHVlLCBvciBhIGxpc3Qgb2YgdmFsdWVzIHNlcGFyYXRlZCBieSBjb21tYXMuCkluIGFk ZGl0aW9uLCBzb21lIHByb3BlcnR5IHZhbHVlcyBhcmUgdmFsaWQgd2l0aCBvbmx5IG9uZSBraW5k IG9mCnByb3BlcnR5IG5hbWUsIGluIHdoaWNoIGNhc2UgdGhlIOKAmE5BTUU94oCZIHBhcnQgbWF5 IGJlIG9taXR0ZWQuCgogICBIZXJlIGlzIGEgbGlzdCBvZiBjb21tb24gZm9udCBwcm9wZXJ0aWVz OgoK4oCYc2xhbnTigJkKICAgICBPbmUgb2Yg4oCYaXRhbGlj4oCZLCDigJhvYmxpcXVl4oCZLCBv ciDigJhyb21hbuKAmS4KCuKAmHdlaWdodOKAmQogICAgIE9uZSBvZiDigJhsaWdodOKAmSwg4oCY bWVkaXVt4oCZLCDigJhkZW1pYm9sZOKAmSwg4oCYYm9sZOKAmSBvciDigJhibGFja+KAmS4KCuKA mHN0eWxl4oCZCiAgICAgU29tZSBmb250cyBkZWZpbmUgc3BlY2lhbCBzdHlsZXMgd2hpY2ggYXJl IGEgY29tYmluYXRpb24gb2Ygc2xhbnQKICAgICBhbmQgd2VpZ2h0LiAgRm9yIGluc3RhbmNlLCDi gJhEZWphdnUgU2Fuc+KAmSBkZWZpbmVzIHRoZSDigJhib29r4oCZIHN0eWxlLAogICAgIHdoaWNo IG92ZXJyaWRlcyB0aGUgc2xhbnQgYW5kIHdlaWdodCBwcm9wZXJ0aWVzLgoK4oCYd2lkdGjigJkK ICAgICBPbmUgb2Yg4oCYY29uZGVuc2Vk4oCZLCDigJhub3JtYWzigJksIG9yIOKAmGV4cGFuZGVk 4oCZLgoK4oCYc3BhY2luZ+KAmQogICAgIE9uZSBvZiDigJhtb25vc3BhY2XigJksIOKAmHByb3Bv cnRpb25hbOKAmSwg4oCYZHVhbC13aWR0aOKAmSwgb3Ig4oCYY2hhcmNlbGzigJkuCgpIZXJlIGFy ZSBzb21lIGV4YW1wbGVzIG9mIEZvbnRjb25maWcgcGF0dGVybnM6CgogICAgIE1vbm9zcGFjZQog ICAgIE1vbm9zcGFjZS0xMgogICAgIE1vbm9zcGFjZS0xMjpib2xkCiAgICAgRGVqYVZ1IFNhbnMg TW9ubzpib2xkOml0YWxpYwogICAgIE1vbm9zcGFjZS0xMjp3ZWlnaHQ9Ym9sZDpzbGFudD1pdGFs aWMKCiAgIEZvciBhIG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgRm9udGNvbmZpZyBwYXR0 ZXJucywgc2VlIHRoZQpGb250Y29uZmlnIG1hbnVhbCwgd2hpY2ggaXMgZGlzdHJpYnV0ZWQgd2l0 aCBGb250Y29uZmlnIGFuZCBhdmFpbGFibGUKb25saW5lIGF0IDxodHRwczovL2ZvbnRjb25maWcu b3JnL2ZvbnRjb25maWctdXNlci5odG1sPi4KCiAgIFRoZSBzZWNvbmQgd2F5IHRvIHNwZWNpZnkg YSBmb250IGlzIHRvIHVzZSBhICJHVEsgZm9udCBwYXR0ZXJuIi4KVGhlc2UgaGF2ZSB0aGUgc3lu dGF4CgogICAgIEZPTlROQU1FIFtQUk9QRVJUSUVTXSBbRk9OVFNJWkVdCgp3aGVyZSBGT05UTkFN RSBpcyB0aGUgZmFtaWx5IG5hbWUsIFBST1BFUlRJRVMgaXMgYSBsaXN0IG9mIHByb3BlcnR5CnZh bHVlcyBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBhbmQgRk9OVFNJWkUgaXMgdGhlIHBvaW50IHNpemUu ICBUaGUKcHJvcGVydGllcyB0aGF0IHlvdSBtYXkgc3BlY2lmeSBmb3IgR1RLIGZvbnQgcGF0dGVy bnMgYXJlIGFzIGZvbGxvd3M6CgogICDigKIgU2xhbnQgcHJvcGVydGllczog4oCYSXRhbGlj4oCZ IG9yIOKAmE9ibGlxdWXigJkuICBJZiBvbWl0dGVkLCB0aGUgZGVmYXVsdAogICAgIChyb21hbikg c2xhbnQgaXMgaW1wbGllZC4KICAg4oCiIFdlaWdodCBwcm9wZXJ0aWVzOiDigJhCb2xk4oCZLCDi gJhCb29r4oCZLCDigJhMaWdodOKAmSwg4oCYTWVkaXVt4oCZLCDigJhTZW1pLWJvbGTigJksCiAg ICAgb3Ig4oCYVWx0cmEtbGlnaHTigJkuICBJZiBvbWl0dGVkLCDigJhNZWRpdW3igJkgd2VpZ2h0 IGlzIGltcGxpZWQuCiAgIOKAoiBXaWR0aCBwcm9wZXJ0aWVzOiDigJhTZW1pLUNvbmRlbnNlZOKA mSBvciDigJhDb25kZW5zZWTigJkuICBJZiBvbWl0dGVkLCBhCiAgICAgZGVmYXVsdCB3aWR0aCBp cyB1c2VkLgoKSGVyZSBhcmUgc29tZSBleGFtcGxlcyBvZiBHVEsgZm9udCBwYXR0ZXJuczoKCiAg ICAgTW9ub3NwYWNlIDEyCiAgICAgTW9ub3NwYWNlIEJvbGQgSXRhbGljIDEyCgogICBUaGUgdGhp cmQgd2F5IHRvIHNwZWNpZnkgYSBmb250IGlzIHRvIHVzZSBhbiAiWExGRCIgKCJYIExvZ2ljYWwg Rm9udApEZXNjcmlwdGlvbiIpLiAgVGhpcyBpcyB0aGUgdHJhZGl0aW9uYWwgbWV0aG9kIGZvciBz cGVjaWZ5aW5nIGZvbnRzCnVuZGVyIFguICBFYWNoIFhMRkQgY29uc2lzdHMgb2YgZm91cnRlZW4g d29yZHMgb3IgbnVtYmVycywgc2VwYXJhdGVkIGJ5CmRhc2hlcywgbGlrZSB0aGlzOgoKICAgICAt bWlzYy1maXhlZC1tZWRpdW0tci1zZW1pY29uZGVuc2VkLS0xMy0qLSotKi1jLTYwLWlzbzg4NTkt MQoKQSB3aWxkY2FyZCBjaGFyYWN0ZXIgKOKAmCrigJkpIGluIGFuIFhMRkQgbWF0Y2hlcyBhbnkg c2VxdWVuY2Ugb2YgY2hhcmFjdGVycwooaW5jbHVkaW5nIG5vbmUpLCBhbmQg4oCYP+KAmSBtYXRj aGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyLiAgSG93ZXZlciwKbWF0Y2hpbmcgaXMgaW1wbGVtZW50 YXRpb24tZGVwZW5kZW50LCBhbmQgY2FuIGJlIGluYWNjdXJhdGUgd2hlbgp3aWxkY2FyZHMgbWF0 Y2ggZGFzaGVzIGluIGEgbG9uZyBuYW1lLiAgRm9yIHJlbGlhYmxlIHJlc3VsdHMsIHN1cHBseSBh bGwKMTQgZGFzaGVzIGFuZCB1c2Ugd2lsZGNhcmRzIG9ubHkgd2l0aGluIGEgZmllbGQuICBDYXNl IGlzIGluc2lnbmlmaWNhbnQKaW4gYW4gWExGRC4gIFRoZSBzeW50YXggZm9yIGFuIFhMRkQgaXMg YXMgZm9sbG93czoKCiAgICAgLU1BS0VSLUZBTUlMWS1XRUlHSFQtU0xBTlQtV0lEVEhUWVBFLVNU WUxF4oCmCiAgICAg4oCmLVBJWEVMUy1IRUlHSFQtSE9SSVotVkVSVC1TUEFDSU5HLVdJRFRILVJF R0lTVFJZLUVOQ09ESU5HCgpUaGUgZW50cmllcyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6 CgpNQUtFUgogICAgIFRoZSBuYW1lIG9mIHRoZSBmb250IG1hbnVmYWN0dXJlci4KRkFNSUxZCiAg ICAgVGhlIG5hbWUgb2YgdGhlIGZvbnQgZmFtaWx5IChlLmcuLCDigJhjb3VyaWVy4oCZKS4KV0VJ R0hUCiAgICAgVGhlIGZvbnQgd2VpZ2h04oCUbm9ybWFsbHkgZWl0aGVyIOKAmGJvbGTigJksIOKA mG1lZGl1beKAmSBvciDigJhsaWdodOKAmS4gIFNvbWUKICAgICBmb250IG5hbWVzIHN1cHBvcnQg b3RoZXIgdmFsdWVzLgpTTEFOVAogICAgIFRoZSBmb250IHNsYW504oCUbm9ybWFsbHkg4oCYcuKA mSAocm9tYW4pLCDigJhp4oCZIChpdGFsaWMpLCDigJhv4oCZIChvYmxpcXVlKSwKICAgICDigJhy aeKAmSAocmV2ZXJzZSBpdGFsaWMpLCBvciDigJhvdOKAmSAob3RoZXIpLiAgU29tZSBmb250IG5h bWVzIHN1cHBvcnQKICAgICBvdGhlciB2YWx1ZXMuCldJRFRIVFlQRQogICAgIFRoZSBmb250IHdp ZHRo4oCUbm9ybWFsbHkg4oCYbm9ybWFs4oCZLCDigJhjb25kZW5zZWTigJksIOKAmHNlbWljb25k ZW5zZWTigJksIG9yCiAgICAg4oCYZXh0ZW5kZWTigJkuICBTb21lIGZvbnQgbmFtZXMgc3VwcG9y dCBvdGhlciB2YWx1ZXMuClNUWUxFCiAgICAgQW4gb3B0aW9uYWwgYWRkaXRpb25hbCBzdHlsZSBu YW1lLiAgVXN1YWxseSBpdCBpcyBlbXB0eeKAlG1vc3QgWExGRHMKICAgICBoYXZlIHR3byBoeXBo ZW5zIGluIGEgcm93IGF0IHRoaXMgcG9pbnQuICBUaGUgc3R5bGUgbmFtZSBjYW4gYWxzbwogICAg IHNwZWNpZnkgYSB0d28tbGV0dGVyIElTTy02MzkgbGFuZ3VhZ2UgbmFtZSwgbGlrZSDigJhqYeKA mSBvciDigJhrb+KAmTsgc29tZQogICAgIGZvbnRzIHRoYXQgc3VwcG9ydCBDSksgc2NyaXB0cyBo YXZlIHRoYXQgc3BlbGxlZCBvdXQgaW4gdGhlIHN0eWxlCiAgICAgbmFtZSBwYXJ0LgpQSVhFTFMK ICAgICBUaGUgZm9udCBoZWlnaHQsIGluIHBpeGVscy4KSEVJR0hUCiAgICAgVGhlIGZvbnQgaGVp Z2h0IG9uIHRoZSBzY3JlZW4sIG1lYXN1cmVkIGluIHRlbnRocyBvZiBhIHByaW50ZXLigJlzCiAg ICAgcG9pbnQuICBUaGlzIGlzIHRoZSBwb2ludCBzaXplIG9mIHRoZSBmb250LCB0aW1lcyB0ZW4u ICBGb3IgYSBnaXZlbgogICAgIHZlcnRpY2FsIHJlc29sdXRpb24sIEhFSUdIVCBhbmQgUElYRUxT IGFyZSBwcm9wb3J0aW9uYWw7IHRoZXJlZm9yZSwKICAgICBpdCBpcyBjb21tb24gdG8gc3BlY2lm eSBqdXN0IG9uZSBvZiB0aGVtIGFuZCB1c2Ug4oCYKuKAmSBmb3IgdGhlIG90aGVyLgpIT1JJWgog ICAgIFRoZSBob3Jpem9udGFsIHJlc29sdXRpb24sIGluIHBpeGVscyBwZXIgaW5jaCwgb2YgdGhl IHNjcmVlbiBmb3IKICAgICB3aGljaCB0aGUgZm9udCBpcyBpbnRlbmRlZC4KVkVSVAogICAgIFRo ZSB2ZXJ0aWNhbCByZXNvbHV0aW9uLCBpbiBwaXhlbHMgcGVyIGluY2gsIG9mIHRoZSBzY3JlZW4g Zm9yCiAgICAgd2hpY2ggdGhlIGZvbnQgaXMgaW50ZW5kZWQuICBOb3JtYWxseSB0aGUgcmVzb2x1 dGlvbiBvZiB0aGUgZm9udHMKICAgICBvbiB5b3VyIHN5c3RlbSBpcyB0aGUgcmlnaHQgdmFsdWUg Zm9yIHlvdXIgc2NyZWVuOyB0aGVyZWZvcmUsIHlvdQogICAgIG5vcm1hbGx5IHNwZWNpZnkg4oCY KuKAmSBmb3IgdGhpcyBhbmQgSE9SSVouClNQQUNJTkcKICAgICBUaGlzIGlzIOKAmG3igJkgKG1v bm9zcGFjZSksIOKAmHDigJkgKHByb3BvcnRpb25hbCkgb3Ig4oCYY+KAmSAoY2hhcmFjdGVyCiAg ICAgY2VsbCkuCldJRFRICiAgICAgVGhlIGF2ZXJhZ2UgY2hhcmFjdGVyIHdpZHRoLCBpbiBwaXhl bHMsIG11bHRpcGxpZWQgYnkgdGVuLgpSRUdJU1RSWQpFTkNPRElORwogICAgIFRoZSBYIGZvbnQg Y2hhcmFjdGVyIHNldCB0aGF0IHRoZSBmb250IGRlcGljdHMuICAoWCBmb250IGNoYXJhY3Rlcgog ICAgIHNldHMgYXJlIG5vdCB0aGUgc2FtZSBhcyBFbWFjcyBjaGFyYWN0ZXIgc2V0cywgYnV0IHRo ZXkgYXJlCiAgICAgc2ltaWxhci4pICBZb3UgY2FuIHVzZSB0aGUg4oCYeGZvbnRzZWzigJkgcHJv Z3JhbSB0byBjaGVjayB3aGljaAogICAgIGNob2ljZXMgeW91IGhhdmUuICBOb3JtYWxseSB5b3Ug c2hvdWxkIHVzZSDigJhpc284ODU54oCZIGZvciBSRUdJU1RSWQogICAgIGFuZCDigJgx4oCZIGZv ciBFTkNPRElORy4KCiAgIFRoZSBmb3VydGggYW5kIGZpbmFsIG1ldGhvZCBvZiBzcGVjaWZ5aW5n IGEgZm9udCBpcyB0byB1c2UgYSBmb250Cm5pY2tuYW1lLiAgQ2VydGFpbiBmb250cyBoYXZlIHNo b3J0ZXIgbmlja25hbWVzLCB3aGljaCB5b3UgY2FuIHVzZQppbnN0ZWFkIG9mIGEgbm9ybWFsIGZv bnQgc3BlY2lmaWNhdGlvbi4gIEZvciBpbnN0YW5jZSwg4oCYNngxM+KAmSBpcwplcXVpdmFsZW50 IHRvCgogICAgIC1taXNjLWZpeGVkLW1lZGl1bS1yLXNlbWljb25kZW5zZWQtLTEzLSotKi0qLWMt NjAtaXNvODg1OS0xCgogICBPbiBYLCBFbWFjcyByZWNvZ25pemVzIHR3byB0eXBlcyBvZiBmb250 czogImNsaWVudC1zaWRlIiBmb250cywgd2hpY2gKYXJlIHByb3ZpZGVkIGJ5IHRoZSBYZnQgYW5k IEZvbnRjb25maWcgbGlicmFyaWVzLCBhbmQgInNlcnZlci1zaWRlIgpmb250cywgd2hpY2ggYXJl IHByb3ZpZGVkIGJ5IHRoZSBYIHNlcnZlciBpdHNlbGYuICBNb3N0IGNsaWVudC1zaWRlCmZvbnRz IHN1cHBvcnQgYWR2YW5jZWQgZm9udCBmZWF0dXJlcyBzdWNoIGFzIGFudGlhbGlhc2luZyBhbmQg c3VicGl4ZWwKaGludGluZywgd2hpbGUgc2VydmVyLXNpZGUgZm9udHMgZG8gbm90LiAgRm9udGNv bmZpZyBhbmQgR1RLIHBhdHRlcm5zCm1hdGNoIG9ubHkgY2xpZW50LXNpZGUgZm9udHMuCgogICBZ b3Ugd2lsbCBwcm9iYWJseSB3YW50IHRvIHVzZSBhIGZpeGVkLXdpZHRoIGRlZmF1bHQgZm9udOKA lHRoYXQgaXMsIGEKZm9udCBpbiB3aGljaCBhbGwgY2hhcmFjdGVycyBoYXZlIHRoZSBzYW1lIHdp ZHRoLiAgRm9yIFhmdCBhbmQKRm9udGNvbmZpZyBmb250cywgeW91IGNhbiB1c2UgdGhlIOKAmGZj LWxpc3TigJkgY29tbWFuZCB0byBsaXN0IHRoZQphdmFpbGFibGUgZml4ZWQtd2lkdGggZm9udHMs IGxpa2UgdGhpczoKCiAgICAgZmMtbGlzdCA6c3BhY2luZz1tb25vCiAgICAgZmMtbGlzdCA6c3Bh Y2luZz1jaGFyY2VsbAoKRm9yIHNlcnZlci1zaWRlIFggZm9udHMsIHlvdSBjYW4gdXNlIHRoZSDi gJh4bHNmb250c+KAmSBwcm9ncmFtIHRvIGxpc3QgdGhlCmF2YWlsYWJsZSBmaXhlZC13aWR0aCBm b250cywgbGlrZSB0aGlzOgoKICAgICB4bHNmb250cyAtZm4gJyp4KicgfCBncmVwIC1FICdeWzAt OV0reFswLTldKycKICAgICB4bHNmb250cyAtZm4gJyotKi0qLSotKi0qLSotKi0qLSotKi1tKicK ICAgICB4bHNmb250cyAtZm4gJyotKi0qLSotKi0qLSotKi0qLSotKi1jKicKCkFueSBmb250IHdp dGgg4oCYbeKAmSBvciDigJhj4oCZIGluIHRoZSBTUEFDSU5HIGZpZWxkIG9mIHRoZSBYTEZEIGlz IGEKZml4ZWQtd2lkdGggZm9udC4gIFRvIHNlZSB3aGF0IGEgcGFydGljdWxhciBmb250IGxvb2tz IGxpa2UsIHVzZSB0aGUK4oCYeGZk4oCZIGNvbW1hbmQuICBGb3IgZXhhbXBsZToKCiAgICAgeGZk IC1mbiA2eDEzCgpkaXNwbGF5cyB0aGUgZW50aXJlIGZvbnQg4oCYNngxM+KAmS4KCiAgIFdoaWxl IHJ1bm5pbmcgRW1hY3MsIHlvdSBjYW4gYWxzbyBzZXQgdGhlIGZvbnQgb2YgYSBzcGVjaWZpYyBr aW5kIG9mCnRleHQgKCpub3RlIEZhY2VzOjopLCBvciBhIHBhcnRpY3VsYXIgZnJhbWUgKCpub3Rl IEZyYW1lIFBhcmFtZXRlcnM6OikuCgoKKiogMjEuOSBTcGVlZGJhciBGcmFtZXMKClRoZSAic3Bl ZWRiYXIiIGlzIGEgc3BlY2lhbCBmcmFtZSBmb3IgY29udmVuaWVudGx5IG5hdmlnYXRpbmcgaW4g b3IKb3BlcmF0aW5nIG9uIGFub3RoZXIgZnJhbWUuICBUaGUgc3BlZWRiYXIsIHdoZW4gaXQgZXhp c3RzLCBpcyBhbHdheXMKYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgZnJhbWUsIGNhbGxlZCBp dHMgImF0dGFjaGVkIGZyYW1lIjsgYWxsCnNwZWVkYmFyIG9wZXJhdGlvbnMgYWN0IG9uIHRoYXQg ZnJhbWUuCgogICBUeXBlIOKAmE0teCBzcGVlZGJhcuKAmSB0byBjcmVhdGUgdGhlIHNwZWVkYmFy IGFuZCBhc3NvY2lhdGUgaXQgd2l0aCB0aGUKY3VycmVudCBmcmFtZS4gIFRvIGRpc21pc3MgdGhl IHNwZWVkYmFyLCB0eXBlIOKAmE0teCBzcGVlZGJhcuKAmSBhZ2Fpbiwgb3IKc2VsZWN0IHRoZSBz cGVlZGJhciBhbmQgdHlwZSDigJhx4oCZLiAgKFlvdSBjYW4gYWxzbyBkZWxldGUgdGhlIHNwZWVk YmFyCmZyYW1lIGxpa2UgYW55IG90aGVyIEVtYWNzIGZyYW1lLikgIElmIHlvdSB3aXNoIHRvIGFz c29jaWF0ZSB0aGUKc3BlZWRiYXIgd2l0aCBhIGRpZmZlcmVudCBmcmFtZSwgZGlzbWlzcyBpdCBh bmQgY2FsbCDigJhNLXggc3BlZWRiYXLigJkgZnJvbQp0aGF0IGZyYW1lLgoKICAgVGhlIHNwZWVk YmFyIGNhbiBvcGVyYXRlIGluIHZhcmlvdXMgbW9kZXMuICBJdHMgZGVmYXVsdCBtb2RlIGlzICJG aWxlCkRpc3BsYXkiIG1vZGUsIHdoaWNoIHNob3dzIHRoZSBmaWxlcyBpbiB0aGUgY3VycmVudCBk aXJlY3Rvcnkgb2YgdGhlCnNlbGVjdGVkIHdpbmRvdyBvZiB0aGUgYXR0YWNoZWQgZnJhbWUsIG9u ZSBmaWxlIHBlciBsaW5lLiAgQ2xpY2tpbmcgb24gYQpub24tZGlyZWN0b3J5IHZpc2l0cyB0aGF0 IGZpbGUgaW4gdGhlIHNlbGVjdGVkIHdpbmRvdyBvZiB0aGUgYXR0YWNoZWQKZnJhbWUsIGFuZCBj bGlja2luZyBvbiBhIGRpcmVjdG9yeSBzaG93cyB0aGF0IGRpcmVjdG9yeSBpbiB0aGUgc3BlZWRi YXIKKCpub3RlIE1vdXNlIFJlZmVyZW5jZXM6OikuICBFYWNoIGxpbmUgYWxzbyBoYXMgYSBib3gs IOKAmFsrXeKAmSBvciDigJg8Kz7igJksCnRoYXQgeW91IGNhbiBjbGljayBvbiB0byAiZXhwYW5k IiB0aGUgY29udGVudHMgb2YgdGhhdCBpdGVtLiAgRXhwYW5kaW5nCmEgZGlyZWN0b3J5IGFkZHMg dGhlIGNvbnRlbnRzIG9mIHRoYXQgZGlyZWN0b3J5IHRvIHRoZSBzcGVlZGJhciBkaXNwbGF5LAp1 bmRlcm5lYXRoIHRoZSBkaXJlY3RvcnnigJlzIG93biBsaW5lLiAgRXhwYW5kaW5nIGFuIG9yZGlu YXJ5IGZpbGUgYWRkcyBhCmxpc3Qgb2YgdGhlIHRhZ3MgaW4gdGhhdCBmaWxlIHRvIHRoZSBzcGVl ZGJhciBkaXNwbGF5OyB5b3UgY2FuIGNsaWNrIG9uCmEgdGFnIG5hbWUgdG8ganVtcCB0byB0aGF0 IHRhZyBpbiB0aGUgc2VsZWN0ZWQgd2luZG93IG9mIHRoZSBhdHRhY2hlZApmcmFtZS4gIFdoZW4g YSBmaWxlIG9yIGRpcmVjdG9yeSBpcyBleHBhbmRlZCwgdGhlIOKAmFsrXeKAmSBjaGFuZ2VzIHRv CuKAmFstXeKAmTsgeW91IGNhbiBjbGljayBvbiB0aGF0IGJveCB0byAiY29udHJhY3QiIHRoZSBp dGVtLCBoaWRpbmcgaXRzCmNvbnRlbnRzLgoKICAgWW91IG5hdmlnYXRlIHRocm91Z2ggdGhlIHNw ZWVkYmFyIHVzaW5nIHRoZSBrZXlib2FyZCwgdG9vLiAgVHlwaW5nCjxSRVQ+IHdoaWxlIHBvaW50 IGlzIG9uIGEgbGluZSBpbiB0aGUgc3BlZWRiYXIgaXMgZXF1aXZhbGVudCB0byBjbGlja2luZwp0 aGUgaXRlbSBvbiB0aGUgY3VycmVudCBsaW5lLCBhbmQgPFNQQz4gZXhwYW5kcyBvciBjb250cmFj dHMgdGhlIGl0ZW0uCuKAmFXigJkgZGlzcGxheXMgdGhlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhl IGN1cnJlbnQgZGlyZWN0b3J5LiAgVG8gY29weSwKZGVsZXRlLCBvciByZW5hbWUgdGhlIGZpbGUg b24gdGhlIGN1cnJlbnQgbGluZSwgdHlwZSDigJhD4oCZLCDigJhE4oCZLCBhbmQg4oCYUuKAmQpy ZXNwZWN0aXZlbHkuICBUbyBjcmVhdGUgYSBuZXcgZGlyZWN0b3J5LCB0eXBlIOKAmE3igJkuCgog ICBBbm90aGVyIGdlbmVyYWwtcHVycG9zZSBzcGVlZGJhciBtb2RlIGlzICJCdWZmZXIgRGlzcGxh eSIgbW9kZTsgaW4KdGhpcyBtb2RlLCB0aGUgc3BlZWRiYXIgZGlzcGxheXMgYSBsaXN0IG9mIEVt YWNzIGJ1ZmZlcnMuICBUbyBzd2l0Y2ggdG8KdGhpcyBtb2RlLCB0eXBlIOKAmGLigJkgaW4gdGhl IHNwZWVkYmFyLiAgVG8gcmV0dXJuIHRvIEZpbGUgRGlzcGxheSBtb2RlLAp0eXBlIOKAmGbigJku ICBZb3UgY2FuIGFsc28gY2hhbmdlIHRoZSBkaXNwbGF5IG1vZGUgYnkgY2xpY2tpbmcg4oCYbW91 c2UtM+KAmQphbnl3aGVyZSBpbiB0aGUgc3BlZWRiYXIgd2luZG93IChvciDigJhtb3VzZS0x4oCZ IG9uIHRoZSBtb2RlLWxpbmUpIGFuZApzZWxlY3Rpbmcg4oCYRGlzcGxheXPigJkgaW4gdGhlIHBv cC11cCBtZW51LgoKICAgU29tZSBtYWpvciBtb2RlcywgaW5jbHVkaW5nIFJtYWlsIG1vZGUsIElu Zm8sIGFuZCBHVUQsIGhhdmUKc3BlY2lhbGl6ZWQgd2F5cyBvZiBwdXR0aW5nIHVzZWZ1bCBpdGVt cyBpbnRvIHRoZSBzcGVlZGJhciBmb3IgeW91IHRvCnNlbGVjdC4gIEZvciBleGFtcGxlLCBpbiBS bWFpbCBtb2RlLCB0aGUgc3BlZWRiYXIgc2hvd3MgYSBsaXN0IG9mIFJtYWlsCmZpbGVzLCBhbmQg bGV0cyB5b3UgbW92ZSB0aGUgY3VycmVudCBtZXNzYWdlIHRvIGFub3RoZXIgUm1haWwgZmlsZSBi eQpjbGlja2luZyBvbiBpdHMg4oCYPE0+4oCZIGJveC4KCiAgIEZvciBtb3JlIGRldGFpbHMgb24g dXNpbmcgYW5kIHByb2dyYW1taW5nIHRoZSBzcGVlZGJhciwgKk5vdGUKU3BlZWRiYXI6IChzcGVl ZGJhcilUb3AuCgoKKiogMjEuMTAgTXVsdGlwbGUgRGlzcGxheXMKCkEgc2luZ2xlIEVtYWNzIGNh biB0YWxrIHRvIG1vcmUgdGhhbiBvbmUgWCBkaXNwbGF5LiAgSW5pdGlhbGx5LCBFbWFjcwp1c2Vz IGp1c3Qgb25lIGRpc3BsYXnigJR0aGUgb25lIHNwZWNpZmllZCB3aXRoIHRoZSDigJhESVNQTEFZ 4oCZIGVudmlyb25tZW50CnZhcmlhYmxlIG9yIHdpdGggdGhlIOKAmC0tZGlzcGxheeKAmSBvcHRp b24gKCpub3RlIEluaXRpYWwgT3B0aW9uczo6KS4gIFRvCmNvbm5lY3QgdG8gYW5vdGhlciBkaXNw bGF5LCB1c2UgdGhlIGNvbW1hbmQg4oCYbWFrZS1mcmFtZS1vbi1kaXNwbGF54oCZOgoK4oCYTS14 IG1ha2UtZnJhbWUtb24tZGlzcGxheSA8UkVUPiBESVNQTEFZIDxSRVQ+4oCZCiAgICAgQ3JlYXRl IGEgbmV3IGZyYW1lIG9uIGRpc3BsYXkgRElTUExBWS4KCiAgIEEgc2luZ2xlIFggc2VydmVyIGNh biBoYW5kbGUgbW9yZSB0aGFuIG9uZSBzY3JlZW4uICBXaGVuIHlvdSBvcGVuCmZyYW1lcyBvbiB0 d28gc2NyZWVucyBiZWxvbmdpbmcgdG8gb25lIHNlcnZlciwgRW1hY3Mga25vd3MgdGhleSBzaGFy ZSBhCnNpbmdsZSBrZXlib2FyZCwgYW5kIGl0IHRyZWF0cyBhbGwgdGhlIGNvbW1hbmRzIGFycml2 aW5nIGZyb20gdGhlc2UKc2NyZWVucyBhcyBhIHNpbmdsZSBzdHJlYW0gb2YgaW5wdXQuCgogICBX aGVuIHlvdSBvcGVuIGZyYW1lcyBvbiBkaWZmZXJlbnQgWCBzZXJ2ZXJzLCBFbWFjcyBtYWtlcyBh IHNlcGFyYXRlCmlucHV0IHN0cmVhbSBmb3IgZWFjaCBzZXJ2ZXIuICBFYWNoIHNlcnZlciBhbHNv IGhhcyBpdHMgb3duIHNlbGVjdGVkCmZyYW1lLiAgVGhlIGNvbW1hbmRzIHlvdSBlbnRlciB3aXRo IGEgcGFydGljdWxhciBYIHNlcnZlciBhcHBseSB0byB0aGF0CnNlcnZlcuKAmXMgc2VsZWN0ZWQg ZnJhbWUuCgoKKiogMjEuMTEgRnJhbWUgUGFyYW1ldGVycwoKWW91IGNhbiBjb250cm9sIHRoZSBk ZWZhdWx0IGFwcGVhcmFuY2UgYW5kIGJlaGF2aW9yIG9mIGFsbCBmcmFtZXMgYnkKc3BlY2lmeWlu ZyBhIGRlZmF1bHQgbGlzdCBvZiAiZnJhbWUgcGFyYW1ldGVycyIgaW4gdGhlIHZhcmlhYmxlCuKA mGRlZmF1bHQtZnJhbWUtYWxpc3TigJkuICBJdHMgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBvZiBl bnRyaWVzLCBlYWNoCnNwZWNpZnlpbmcgYSBwYXJhbWV0ZXIgbmFtZSBhbmQgYSB2YWx1ZSBmb3Ig dGhhdCBwYXJhbWV0ZXIuICBUaGVzZQplbnRyaWVzIHRha2UgZWZmZWN0IHdoZW5ldmVyIEVtYWNz IGNyZWF0ZXMgYSBuZXcgZnJhbWUsIGluY2x1ZGluZyB0aGUKaW5pdGlhbCBmcmFtZS4KCiAgIEZv ciBleGFtcGxlLCB5b3UgY2FuIGFkZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIHlvdXIgaW5pdCBm aWxlICgqbm90ZQpJbml0IEZpbGU6OikgdG8gc2V0IHRoZSBkZWZhdWx0IGZyYW1lIHdpZHRoIHRv IDkwIGNoYXJhY3RlciBjb2x1bW5zLCB0aGUKZGVmYXVsdCBmcmFtZSBoZWlnaHQgdG8gNDAgY2hh cmFjdGVyIHJvd3MsIGFuZCB0aGUgZGVmYXVsdCBmb250IHRvCuKAmE1vbm9zcGFjZS0xMOKAmToK CiAgICAgKGFkZC10by1saXN0ICdkZWZhdWx0LWZyYW1lLWFsaXN0ICcod2lkdGggIC4gOTApKQog ICAgIChhZGQtdG8tbGlzdCAnZGVmYXVsdC1mcmFtZS1hbGlzdCAnKGhlaWdodCAuIDQwKSkKICAg ICAoYWRkLXRvLWxpc3QgJ2RlZmF1bHQtZnJhbWUtYWxpc3QgJyhmb250IC4gIk1vbm9zcGFjZS0x MCIpKQoKICAgRm9yIGEgbGlzdCBvZiBmcmFtZSBwYXJhbWV0ZXJzIGFuZCB0aGVpciBlZmZlY3Rz LCBzZWUgKm5vdGUKKGVsaXNwKUZyYW1lIFBhcmFtZXRlcnM6Oi4KCiAgIFlvdSBjYW4gYWxzbyBz cGVjaWZ5IGEgbGlzdCBvZiBmcmFtZSBwYXJhbWV0ZXJzIHdoaWNoIGFwcGx5IHRvIGp1c3QKdGhl IGluaXRpYWwgZnJhbWUsIGJ5IGN1c3RvbWl6aW5nIHRoZSB2YXJpYWJsZSDigJhpbml0aWFsLWZy YW1lLWFsaXN04oCZLgoKICAgSWYgRW1hY3MgaXMgY29tcGlsZWQgdG8gdXNlIGFuIFggdG9vbGtp dCwgZnJhbWUgcGFyYW1ldGVycyB0aGF0CnNwZWNpZnkgY29sb3JzIGFuZCBmb250cyBkb27igJl0 IGFmZmVjdCBtZW51cyBhbmQgdGhlIG1lbnUgYmFyLCBzaW5jZQp0aG9zZSBhcmUgZHJhd24gYnkg dGhlIHRvb2xraXQgYW5kIG5vdCBkaXJlY3RseSBieSBFbWFjcy4KCiAgIE5vdGUgdGhhdCBpZiB5 b3UgYXJlIHVzaW5nIHRoZSBkZXNrdG9wIGxpYnJhcnkgdG8gc2F2ZSBhbmQgcmVzdG9yZQp5b3Vy IHNlc3Npb25zLCB0aGUgZnJhbWVzIHRvIGJlIHJlc3RvcmVkIGFyZSByZWNvcmRlZCBpbiB0aGUg ZGVza3RvcApmaWxlLCB0b2dldGhlciB3aXRoIHRoZWlyIHBhcmFtZXRlcnMuICBXaGVuIHRoZXNl IGZyYW1lcyBhcmUgcmVzdG9yZWQsCnRoZSByZWNvcmRlZCBwYXJhbWV0ZXJzIHRha2UgcHJlY2Vk ZW5jZSBvdmVyIHRoZSBmcmFtZSBwYXJhbWV0ZXJzCnNwZWNpZmllZCBieSDigJhkZWZhdWx0LWZy YW1lLWFsaXN04oCZIGFuZCDigJhpbml0aWFsLWZyYW1lLWFsaXN04oCZIGluIHlvdXIKaW5pdCBm aWxlLiAgKk5vdGUgU2F2aW5nIEVtYWNzIFNlc3Npb25zOjosIGZvciBob3cgdG8gYXZvaWQgdGhh dC4KCgoqKiAyMS4xMiBTY3JvbGwgQmFycwoKT24gZ3JhcGhpY2FsIGRpc3BsYXlzLCB0aGVyZSBp cyBhICJ2ZXJ0aWNhbCBzY3JvbGwgYmFyIiBvbiB0aGUgc2lkZSBvZgplYWNoIEVtYWNzIHdpbmRv dy4gIENsaWNraW5nIOKAmG1vdXNlLTHigJkgb24gdGhlIHNjcm9sbCBiYXLigJlzIHVwIGFuZCBk b3duCmJ1dHRvbnMgc2Nyb2xscyB0aGUgd2luZG93IGJ5IG9uZSBsaW5lIGF0IGEgdGltZSAoYnV0 IHNvbWUgdG9vbGtpdHMKYWxsb3cgeW91IHRvIGN1c3RvbWl6ZSB0aGUgc2Nyb2xsIGJhcnMgdG8g bm90IGhhdmUgdGhvc2UgYnV0dG9ucykuCkNsaWNraW5nIOKAmG1vdXNlLTHigJkgYWJvdmUgb3Ig YmVsb3cgdGhlIHNjcm9sbCBiYXLigJlzIGlubmVyIGJveCBzY3JvbGxzIHRoZQp3aW5kb3cgYnkg bmVhcmx5IHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSB3aW5kb3csIGxpa2Ug4oCYTS124oCZIGFu ZCDigJhDLXbigJkKcmVzcGVjdGl2ZWx5ICgqbm90ZSBNb3ZpbmcgUG9pbnQ6OikuICAoVGhpcywg dG9vLCBjYW4gYmVoYXZlIGRpZmZlcmVudGx5CndpdGggc29tZSB0b29sa2l0cy4pICBEcmFnZ2lu ZyB0aGUgaW5uZXIgYm94IHNjcm9sbHMgY29udGludW91c2x5LgoKICAgSWYgRW1hY3MgaXMgY29t cGlsZWQgb24gdGhlIFggV2luZG93IFN5c3RlbSB3aXRob3V0IFggdG9vbGtpdApzdXBwb3J0LCB0 aGUgc2Nyb2xsIGJhciBiZWhhdmVzIGRpZmZlcmVudGx5LiAgQ2xpY2tpbmcg4oCYbW91c2UtMeKA mQphbnl3aGVyZSBvbiB0aGUgc2Nyb2xsIGJhciBzY3JvbGxzIGZvcndhcmQgbGlrZSDigJhDLXbi gJksIHdoaWxlIOKAmG1vdXNlLTPigJkKc2Nyb2xscyBiYWNrd2FyZCBsaWtlIOKAmE0tduKAmS4g IENsaWNraW5nIOKAmG1vdXNlLTLigJkgaW4gdGhlIHNjcm9sbCBiYXIgbGV0cwp5b3UgZHJhZyB0 aGUgaW5uZXIgYm94IHVwIGFuZCBkb3duLgoKICAgVG8gdG9nZ2xlIHRoZSB1c2Ugb2YgdmVydGlj YWwgc2Nyb2xsIGJhcnMsIHR5cGUg4oCYTS14CnNjcm9sbC1iYXItbW9kZeKAmS4gIFRoaXMgY29t bWFuZCBhcHBsaWVzIHRvIGFsbCBmcmFtZXMsIGluY2x1ZGluZyBmcmFtZXMKeWV0IHRvIGJlIGNy ZWF0ZWQuICBUbyB0b2dnbGUgdmVydGljYWwgc2Nyb2xsIGJhcnMgZm9yIGp1c3QgdGhlIHNlbGVj dGVkCmZyYW1lLCB1c2UgdGhlIGNvbW1hbmQg4oCYTS14IHRvZ2dsZS1zY3JvbGwtYmFy4oCZLgoK ICAgVG8gY29udHJvbCB0aGUgdXNlIG9mIHZlcnRpY2FsIHNjcm9sbCBiYXJzIGF0IHN0YXJ0dXAs IGN1c3RvbWl6ZSB0aGUKdmFyaWFibGUg4oCYc2Nyb2xsLWJhci1tb2Rl4oCZLiAgSXRzIHZhbHVl IHNob3VsZCBiZSBlaXRoZXIg4oCYcmlnaHTigJkgKHB1dApzY3JvbGwgYmFycyBvbiB0aGUgcmln aHQgc2lkZSBvZiB3aW5kb3dzKSwg4oCYbGVmdOKAmSAocHV0IHRoZW0gb24gdGhlCmxlZnQpLCBv ciDigJhuaWzigJkgKGRpc2FibGUgdmVydGljYWwgc2Nyb2xsIGJhcnMpLiAgQnkgZGVmYXVsdCwg RW1hY3MgcHV0cwpzY3JvbGwgYmFycyBvbiB0aGUgcmlnaHQgaWYgaXQgd2FzIGNvbXBpbGVkIHdp dGggR1RLKyBzdXBwb3J0IG9uIHRoZSBYCldpbmRvdyBTeXN0ZW0sIGFuZCBvbiBNUy1XaW5kb3dz IG9yIG1hY09TOyBFbWFjcyBwdXRzIHNjcm9sbCBiYXJzIG9uIHRoZQpsZWZ0IGlmIGNvbXBpbGVk IG9uIHRoZSBYIFdpbmRvdyBTeXN0ZW0gd2l0aG91dCBHVEsrIHN1cHBvcnQgKGZvbGxvd2luZwp0 aGUgb2xkIGNvbnZlbnRpb24gZm9yIFggYXBwbGljYXRpb25zKS4KCiAgIFlvdSBjYW4gYWxzbyB1 c2UgdGhlIFggcmVzb3VyY2Ug4oCYdmVydGljYWxTY3JvbGxCYXJz4oCZIHRvIGVuYWJsZSBvcgpk aXNhYmxlIHRoZSBzY3JvbGwgYmFycyAoKm5vdGUgUmVzb3VyY2VzOjopLiAgVG8gY29udHJvbCB0 aGUgc2Nyb2xsIGJhcgp3aWR0aCwgY2hhbmdlIHRoZSDigJhzY3JvbGwtYmFyLXdpZHRo4oCZIGZy YW1lIHBhcmFtZXRlciAoKm5vdGUgKGVsaXNwKUZyYW1lClBhcmFtZXRlcnM6OikuCgogICBJZiB5 b3XigJlyZSB1c2luZyBFbWFjcyBvbiBYICh3aXRoIEdUSysgb3IgTW90aWYpLCB5b3UgY2FuIGN1 c3RvbWl6ZQp0aGUgdmFyaWFibGUg4oCYc2Nyb2xsLWJhci1hZGp1c3QtdGh1bWItcG9ydGlvbuKA mSB0byBjb250cm9sCiJvdmVyc2Nyb2xsaW5nIiBvZiB0aGUgc2Nyb2xsIGJhciwgaS5lLiwgZHJh Z2dpbmcgdGhlIHRodW1iIGRvd24gZXZlbgp3aGVuIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBpcyB2 aXNpYmxlLiAgSWYgaXRzIHZhbHVlIGlzIG5vbi3igJhuaWzigJksIHRoZQpzY3JvbGwgYmFyIGNh biBiZSBkcmFnZ2VkIGRvd253YXJkcyBldmVuIGlmIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciBpcwpz aG93bjsgaWYg4oCYbmls4oCZLCB0aGUgdGh1bWIgd2lsbCBiZSBhdCB0aGUgYm90dG9tIHdoZW4g dGhlIGVuZCBvZiB0aGUKYnVmZmVyIGlzIHNob3duLiAgWW91IGNhbm5vdCBvdmVyLXNjcm9sbCB3 aGVuIHRoZSBlbnRpcmUgYnVmZmVyIGlzCnZpc2libGUuCgogICBUaGUgdmlzdWFsIGFwcGVhcmFu Y2Ugb2YgdGhlIHNjcm9sbCBiYXJzIGlzIGNvbnRyb2xsZWQgYnkgdGhlCuKAmHNjcm9sbC1iYXLi gJkgZmFjZS4gIChTb21lIHRvb2xraXRzLCBzdWNoIGFzIEdUSysgYW5kIE1TLVdpbmRvd3MsIGln bm9yZQp0aGlzIGZhY2U7IHRoZSBzY3JvbGwtYmFyIGFwcGVhcmFuY2UgdGhlcmUgY2FuIG9ubHkg YmUgY3VzdG9taXplZApzeXN0ZW0td2lkZSwgZm9yIEdUSysgKm5vdGUgR1RLIHJlc291cmNlczo6 KS4KCiAgIE9uIGdyYXBoaWNhbCBmcmFtZXMsIHZlcnRpY2FsIHNjcm9sbCBiYXJzIGltcGxpY2l0 bHkgc2VydmUgdG8Kc2VwYXJhdGUgc2lkZS1ieS1zaWRlIHdpbmRvd3MgdmlzdWFsbHkuICBXaGVu IHZlcnRpY2FsIHNjcm9sbCBiYXJzIGFyZQpkaXNhYmxlZCwgRW1hY3MgYnkgZGVmYXVsdCBzZXBh cmF0ZXMgc3VjaCB3aW5kb3dzIHdpdGggdGhlIGhlbHAgb2YgYQpvbmUtcGl4ZWwgd2lkZSAidmVy dGljYWwgYm9yZGVyIi4gIFRoYXQgYm9yZGVyIG9jY3VwaWVzIHRoZSBmaXJzdCBwaXhlbApjb2x1 bW4gb2YgdGhlIHdpbmRvdyBvbiB0aGUgcmlnaHQgYW5kIG1heSB0aHVzIG92ZXJkcmF3IHRoZSBs ZWZ0bW9zdApwaXhlbHMgb2YgYW55IGdseXBoIGRpc3BsYXllZCB0aGVyZS4gIElmIHRoZXNlIHBp eGVscyBjb252ZXkgaW1wb3J0YW50CmluZm9ybWF0aW9uLCB5b3UgY2FuIG1ha2UgdGhlbSB2aXNp YmxlIGJ5IGVuYWJsaW5nIHdpbmRvdyBkaXZpZGVycywgc2VlCipub3RlIFdpbmRvdyBEaXZpZGVy czo6LiAgVG8gcmVwbGljYXRlIHRoZSBsb29rIG9mIHZlcnRpY2FsIGJvcmRlcnMsIHNldAp0aGUg 4oCYcmlnaHQtZGl2aWRlci13aWR0aOKAmSBwYXJhbWV0ZXIgb2YgZnJhbWVzIHRvIG9uZSBhbmQg aGF2ZSB0aGUK4oCYd2luZG93LWRpdmlkZXLigJkgZmFjZSBpbmhlcml0IGZyb20gdGhhdCBvZiDi gJh2ZXJ0aWNhbC1ib3JkZXLigJksICpub3RlCldpbmRvdyBEaXZpZGVyczogKGVsaXNwKVdpbmRv dyBEaXZpZGVycy4KCiAgIE9uIGdyYXBoaWNhbCBkaXNwbGF5cyB3aXRoIHRvb2xraXQgc3VwcG9y dCwgRW1hY3MgbWF5IGFsc28gc3VwcGx5IGEKImhvcml6b250YWwgc2Nyb2xsIGJhciIgb24gdGhl IGJvdHRvbSBvZiBlYWNoIHdpbmRvdy4gIENsaWNraW5nCuKAmG1vdXNlLTHigJkgb24gdGhhdCBz Y3JvbGwgYmFy4oCZcyBsZWZ0IGFuZCByaWdodCBidXR0b25zIHNjcm9sbHMgdGhlIHdpbmRvdwpo b3Jpem9udGFsbHkgYnkgb25lIGNvbHVtbiBhdCBhIHRpbWUuICAoTm90ZSB0aGF0IHNvbWUgdG9v bGtpdHMgYWxsb3cKY3VzdG9taXphdGlvbnMgb2YgdGhlIHNjcm9sbCBiYXIgdGhhdCBjYXVzZSB0 aGVzZSBidXR0b25zIG5vdCB0byBiZQpzaG93bi4pICBDbGlja2luZyDigJhtb3VzZS0x4oCZIG9u IHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBzY3JvbGwgYmFy4oCZcwppbm5lciBib3ggc2Nyb2xs cyB0aGUgd2luZG93IGJ5IGZvdXIgY29sdW1ucy4gIERyYWdnaW5nIHRoZSBpbm5lciBib3gKc2Ny b2xscyB0aGUgd2luZG93IGNvbnRpbnVvdXNseS4KCiAgIE5vdGUgdGhhdCBzdWNoIGhvcml6b250 YWwgc2Nyb2xsaW5nIGNhbiBtYWtlIHRoZSB3aW5kb3figJlzIHBvc2l0aW9uIG9mCnBvaW50IGRp c2FwcGVhciBvbiB0aGUgbGVmdCBvciB0aGUgcmlnaHQuICBUeXBpbmcgYSBjaGFyYWN0ZXIgdG8g aW5zZXJ0CnRleHQgb3IgbW92aW5nIHBvaW50IHdpdGggYSBrZXlib2FyZCBjb21tYW5kIHdpbGwg dXN1YWxseSBicmluZyBpdCBiYWNrCmludG8gdmlldy4KCiAgIFRvIHRvZ2dsZSB0aGUgdXNlIG9m IGhvcml6b250YWwgc2Nyb2xsIGJhcnMsIHR5cGUg4oCYTS14Cmhvcml6b250YWwtc2Nyb2xsLWJh ci1tb2Rl4oCZLiAgVGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gYWxsIGZyYW1lcywKaW5jbHVkaW5n IGZyYW1lcyB5ZXQgdG8gYmUgY3JlYXRlZC4gIFRvIHRvZ2dsZSBob3Jpem9udGFsIHNjcm9sbCBi YXJzCmZvciBqdXN0IHRoZSBzZWxlY3RlZCBmcmFtZSwgdXNlIHRoZSBjb21tYW5kIOKAmE0teAp0 b2dnbGUtaG9yaXpvbnRhbC1zY3JvbGwtYmFy4oCZLgoKICAgVG8gY29udHJvbCB0aGUgdXNlIG9m IGhvcml6b250YWwgc2Nyb2xsIGJhcnMgYXQgc3RhcnR1cCwgY3VzdG9taXplCnRoZSB2YXJpYWJs ZSDigJhob3Jpem9udGFsLXNjcm9sbC1iYXItbW9kZeKAmS4KCiAgIFlvdSBjYW4gYWxzbyB1c2Ug dGhlIFggcmVzb3VyY2Ug4oCYaG9yaXpvbnRhbFNjcm9sbEJhcnPigJkgdG8gZW5hYmxlIG9yCmRp c2FibGUgaG9yaXpvbnRhbCBzY3JvbGwgYmFycyAoKm5vdGUgUmVzb3VyY2VzOjopLiAgVG8gY29u dHJvbCB0aGUKc2Nyb2xsIGJhciBoZWlnaHQsIGNoYW5nZSB0aGUg4oCYc2Nyb2xsLWJhci1oZWln aHTigJkgZnJhbWUgcGFyYW1ldGVyICgqbm90ZQooZWxpc3ApRnJhbWUgUGFyYW1ldGVyczo6KS4K CgoqKiAyMS4xMyBXaW5kb3cgRGl2aWRlcnMKCk9uIGdyYXBoaWNhbCBkaXNwbGF5cywgeW91IGNh biB1c2UgIndpbmRvdyBkaXZpZGVycyIgaW4gb3JkZXIgdG8Kc2VwYXJhdGUgd2luZG93cyB2aXN1 YWxseS4gIFdpbmRvdyBkaXZpZGVycyBhcmUgYmFycyB0aGF0IGNhbiBiZSBkcmFnZ2VkCndpdGgg dGhlIG1vdXNlLCB0aHVzIGFsbG93aW5nIHlvdSB0byBlYXNpbHkgcmVzaXplIGFkamFjZW50IHdp bmRvd3MuCgogICBUbyB0b2dnbGUgdGhlIGRpc3BsYXkgb2Ygd2luZG93IGRpdmlkZXJzLCB1c2Ug dGhlIGNvbW1hbmQg4oCYTS14CndpbmRvdy1kaXZpZGVyLW1vZGXigJkuCgogICBUbyBjdXN0b21p emUgd2hlcmUgZGl2aWRlcnMgc2hvdWxkIGFwcGVhciwgdXNlIHRoZSBvcHRpb24K4oCYd2luZG93 LWRpdmlkZXItZGVmYXVsdC1wbGFjZXPigJkuICBJdHMgdmFsdWUgc2hvdWxkIGJlIGVpdGhlcgri gJhib3R0b20tb25seeKAmSAodG8gc2hvdyBkaXZpZGVycyBvbmx5IG9uIHRoZSBib3R0b20gb2Yg d2luZG93cyksCuKAmHJpZ2h0LW9ubHnigJkgKHRvIHNob3cgZGl2aWRlcnMgb25seSBvbiB0aGUg cmlnaHQgb2Ygd2luZG93cyksIG9yIOKAmHTigJkgKHRvCnNob3cgdGhlbSBvbiB0aGUgYm90dG9t IGFuZCBvbiB0aGUgcmlnaHQpLgoKICAgVG8gYWRqdXN0IHRoZSB3aWR0aCBvZiB3aW5kb3cgZGl2 aWRlcnMgZGlzcGxheWVkIGJ5IHRoaXMgbW9kZQpjdXN0b21pemUgdGhlIG9wdGlvbnMg4oCYd2lu ZG93LWRpdmlkZXItZGVmYXVsdC1ib3R0b20td2lkdGjigJkgYW5kCuKAmHdpbmRvdy1kaXZpZGVy LWRlZmF1bHQtcmlnaHQtd2lkdGjigJkuCgogICBXaGVuIHZlcnRpY2FsIHNjcm9sbCBiYXJzIGFy ZSBkaXNhYmxlZCwgZGl2aWRlcnMgY2FuIGJlIGFsc28gdXNlZnVsCnRvIG1ha2UgdGhlIGZpcnN0 IHBpeGVsIGNvbHVtbiBvZiBhIHdpbmRvdyB2aXNpYmxlLCB3aGljaCB3b3VsZCBiZQpvdGhlcndp c2UgY292ZXJlZCBieSB0aGUgdmVydGljYWwgYm9yZGVyIHVzZWQgdG8gc2VwYXJhdGUgc2lkZS1i eS1zaWRlCndpbmRvd3MgKCpub3RlIFNjcm9sbCBCYXJzOjopLgoKICAgRm9yIG1vcmUgZGV0YWls cyBhYm91dCB3aW5kb3cgZGl2aWRlcnMgc2VlICpub3RlIFdpbmRvdyBEaXZpZGVyczoKKGVsaXNw KVdpbmRvdyBEaXZpZGVycy4KCgoqKiAyMS4xNCBEcmFnIGFuZCBEcm9wCgpJbiBtb3N0IGdyYXBo aWNhbCBkZXNrdG9wIGVudmlyb25tZW50cywgRW1hY3MgaGFzIGJhc2ljIHN1cHBvcnQgZm9yCiJk cmFnIGFuZCBkcm9wIiBvcGVyYXRpb25zLiAgRm9yIGluc3RhbmNlLCBkcm9wcGluZyB0ZXh0IG9u dG8gYW4gRW1hY3MKZnJhbWUgaW5zZXJ0cyB0aGUgdGV4dCB3aGVyZSBpdCBpcyBkcm9wcGVkLiAg RHJvcHBpbmcgYSBmaWxlIG9udG8gYW4KRW1hY3MgZnJhbWUgdmlzaXRzIHRoYXQgZmlsZS4gIEFz IGEgc3BlY2lhbCBjYXNlLCBkcm9wcGluZyB0aGUgZmlsZSBvbiBhCkRpcmVkIGJ1ZmZlciBtb3Zl cyBvciBjb3BpZXMgdGhlIGZpbGUgKGFjY29yZGluZyB0byB0aGUgY29udmVudGlvbnMgb2YKdGhl IGFwcGxpY2F0aW9uIGl0IGNhbWUgZnJvbSkgaW50byB0aGUgZGlyZWN0b3J5IGRpc3BsYXllZCBp biB0aGF0CmJ1ZmZlci4KCiAgIERyb3BwaW5nIGEgZmlsZSBub3JtYWxseSB2aXNpdHMgaXQgaW4g dGhlIHdpbmRvdyB5b3UgZHJvcCBpdCBvbi4gIElmCnlvdSBwcmVmZXIgdG8gdmlzaXQgdGhlIGZp bGUgaW4gYSBuZXcgd2luZG93IGluIHN1Y2ggY2FzZXMsIGN1c3RvbWl6ZQp0aGUgdmFyaWFibGUg 4oCYZG5kLW9wZW4tZmlsZS1vdGhlci13aW5kb3figJkuCgogICBUaGUgWERORCBhbmQgTW90aWYg ZHJhZyBhbmQgZHJvcCBwcm90b2NvbHMsIGFuZCB0aGUgb2xkIEtERSAxLngKcHJvdG9jb2wsIGFy ZSBjdXJyZW50bHkgc3VwcG9ydGVkLgoKICAgRW1hY3MgY2FuIGFsc28gb3B0aW9uYWxseSBkcmFn IHRoZSByZWdpb24gd2l0aCB0aGUgbW91c2UgaW50byBhbm90aGVyCnBvcnRpb24gb2YgdGhpcyBv ciBhbm90aGVyIGJ1ZmZlci4gIFRvIGVuYWJsZSB0aGF0LCBjdXN0b21pemUgdGhlCnZhcmlhYmxl IOKAmG1vdXNlLWRyYWctYW5kLWRyb3AtcmVnaW9u4oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1 ZS4gIE5vcm1hbGx5LAp0aGUgdGV4dCBpcyBtb3ZlZCwgaS5lLiAgY3V0IGFuZCBwYXN0ZWQsIHdo ZW4gdGhlIGRlc3RpbmF0aW9uIGlzIHRoZQpzYW1lIGJ1ZmZlciBhcyB0aGUgb3JpZ2luOyBkcm9w cGluZyB0aGUgcmVnaW9uIG9uIGFub3RoZXIgYnVmZmVyIGNvcGllcwp0aGUgdGV4dCBpbnN0ZWFk LiAgSWYgdGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgbmFtZXMgYSBtb2RpZmllciBrZXksCnN1 Y2ggYXMg4oCYc2hpZnTigJksIOKAmGNvbnRyb2zigJkgb3Ig4oCYYWx04oCZLCB0aGVuIHByZXNz aW5nIHRoYXQgbW9kaWZpZXIga2V5CndoZW4gZHJvcHBpbmcgdGhlIHRleHQgd2lsbCBjb3B5IGl0 IGluc3RlYWQgb2YgY3V0dGluZyBpdCwgZXZlbiBpZiB5b3UKZHJvcCBvbiB0aGUgc2FtZSBidWZm ZXIgYXMgdGhlIG9uZSBmcm9tIHdoaWNoIHRoZSB0ZXh0IGNhbWUuCgogICBJbiBvcmRlciB0byBj dXQgdGV4dCBldmVuIHdoZW4gc291cmNlIGFuZCBkZXN0aW5hdGlvbiBidWZmZXJzIGRpZmZlciwK c2V0IHRoZSBvcHRpb24g4oCYbW91c2UtZHJhZy1hbmQtZHJvcC1yZWdpb24tY3V0LXdoZW4tYnVm ZmVycy1kaWZmZXLigJkgdG8gYQpub24t4oCYbmls4oCZIHZhbHVlLiAgQnkgZGVmYXVsdCwgb24g YSBncmFwaGljIGRpc3BsYXkgdGhlIHNlbGVjdGVkIHRleHQgaXMKc2hvd24gaW4gYSB0b29sdGlw IGFuZCBwb2ludCBtb3ZlcyB0b2dldGhlciB3aXRoIHRoZSBtb3VzZSBjdXJzb3IgZHVyaW5nCmRy YWdnaW5nLiAgVG8gc3VwcHJlc3Mgc3VjaCBiZWhhdmlvciwgc2V0IHRoZSBvcHRpb25zCuKAmG1v dXNlLWRyYWctYW5kLWRyb3AtcmVnaW9uLXNob3ctdG9vbHRpcOKAmSBhbmQvb3IK4oCYbW91c2Ut ZHJhZy1hbmQtZHJvcC1yZWdpb24tc2hvdy1jdXJzb3LigJkgdG8g4oCYbmls4oCZLgoKCioqIDIx LjE1IE1lbnUgQmFycwoKWW91IGNhbiB0b2dnbGUgdGhlIHVzZSBvZiBtZW51IGJhcnMgd2l0aCDi gJhNLXggbWVudS1iYXItbW9kZeKAmS4gIFdpdGggbm8KYXJndW1lbnQsIHRoaXMgY29tbWFuZCB0 b2dnbGVzIE1lbnUgQmFyIG1vZGUsIGEgZ2xvYmFsIG1pbm9yIG1vZGUuICBXaXRoCmFuIGFyZ3Vt ZW50LCB0aGUgY29tbWFuZCB0dXJucyBNZW51IEJhciBtb2RlIG9uIGlmIHRoZSBhcmd1bWVudCBp cwpwb3NpdGl2ZSwgb2ZmIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgcG9zaXRpdmUuICBUbyBjb250 cm9sIHRoZSB1c2Ugb2YKbWVudSBiYXJzIGF0IHN0YXJ0dXAsIGN1c3RvbWl6ZSB0aGUgdmFyaWFi bGUg4oCYbWVudS1iYXItbW9kZeKAmS4KCiAgIEV4cGVydCB1c2VycyBvZnRlbiB0dXJuIG9mZiB0 aGUgbWVudSBiYXIsIGVzcGVjaWFsbHkgb24gdGV4dAp0ZXJtaW5hbHMsIHdoZXJlIHRoaXMgbWFr ZXMgb25lIGFkZGl0aW9uYWwgbGluZSBhdmFpbGFibGUgZm9yIHRleHQuICBJZgp0aGUgbWVudSBi YXIgaXMgb2ZmLCB5b3UgY2FuIHN0aWxsIHBvcCB1cCBhIG1lbnUgb2YgaXRzIGNvbnRlbnRzIHdp dGgK4oCYQy1tb3VzZS0z4oCZIG9uIGEgZGlzcGxheSB3aGljaCBzdXBwb3J0cyBwb3AtdXAgbWVu dXMuICAqTm90ZSBNZW51IE1vdXNlCkNsaWNrczo6LgoKICAgKk5vdGUgTWVudSBCYXI6OiwgZm9y IGluZm9ybWF0aW9uIG9uIGhvdyB0byBpbnZva2UgY29tbWFuZHMgd2l0aCB0aGUKbWVudSBiYXIu ICAqTm90ZSBYIFJlc291cmNlczo6LCBmb3IgaG93IHRvIGN1c3RvbWl6ZSB0aGUgbWVudSBiYXIg bWVudXPigJkKdmlzdWFsIGFwcGVhcmFuY2UuCgoKKiogMjEuMTYgVG9vbCBCYXJzCgpPbiBncmFw aGljYWwgZGlzcGxheXMsIEVtYWNzIHB1dHMgYSAidG9vbCBiYXIiIGF0IHRoZSB0b3Agb2YgZWFj aCBmcmFtZSwKanVzdCBiZWxvdyB0aGUgbWVudSBiYXIuICBUaGlzIGlzIGEgcm93IG9mIGljb25z IHdoaWNoIHlvdSBjYW4gY2xpY2sgb24Kd2l0aCB0aGUgbW91c2UgdG8gaW52b2tlIHZhcmlvdXMg Y29tbWFuZHMuCgogICBUaGUgZ2xvYmFsIChkZWZhdWx0KSB0b29sIGJhciBjb250YWlucyBnZW5l cmFsIGNvbW1hbmRzLiAgU29tZSBtYWpvcgptb2RlcyBkZWZpbmUgdGhlaXIgb3duIHRvb2wgYmFy czsgd2hlbmV2ZXIgYSBidWZmZXIgd2l0aCBzdWNoIGEgbWFqb3IKbW9kZSBpcyBjdXJyZW50LCB0 aGUgbW9kZeKAmXMgdG9vbCBiYXIgcmVwbGFjZXMgdGhlIGdsb2JhbCB0b29sIGJhci4KCiAgIFRv IHRvZ2dsZSB0aGUgdXNlIG9mIHRvb2wgYmFycywgdHlwZSDigJhNLXggdG9vbC1iYXItbW9kZeKA mS4gIFRoaXMKY29tbWFuZCBhcHBsaWVzIHRvIGFsbCBmcmFtZXMsIGluY2x1ZGluZyBmcmFtZXMg eWV0IHRvIGJlIGNyZWF0ZWQuICBUbwpjb250cm9sIHRoZSB1c2Ugb2YgdG9vbCBiYXJzIGF0IHN0 YXJ0dXAsIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGUK4oCYdG9vbC1iYXItbW9kZeKAmS4KCiAgIFdo ZW4gRW1hY3MgaXMgY29tcGlsZWQgd2l0aCBHVEsrIHN1cHBvcnQsIGVhY2ggdG9vbCBiYXIgaXRl bSBjYW4KY29uc2lzdCBvZiBhbiBpbWFnZSwgb3IgYSB0ZXh0IGxhYmVsLCBvciBib3RoLiAgQnkg ZGVmYXVsdCwgRW1hY3MKZm9sbG93cyB0aGUgR25vbWUgZGVza3RvcOKAmXMgdG9vbCBiYXIgc3R5 bGUgc2V0dGluZzsgaWYgbm9uZSBpcyBkZWZpbmVkLAppdCBkaXNwbGF5cyB0b29sIGJhciBpdGVt cyBhcyBqdXN0IGltYWdlcy4gIFRvIGltcG9zZSBhIHNwZWNpZmljIHRvb2wKYmFyIHN0eWxlLCBj dXN0b21pemUgdGhlIHZhcmlhYmxlIOKAmHRvb2wtYmFyLXN0eWxl4oCZLgoKICAgWW91IGNhbiBh bHNvIGNvbnRyb2wgdGhlIHBsYWNlbWVudCBvZiB0aGUgdG9vbCBiYXIgZm9yIHRoZSBHVEsrIHRv b2wKYmFyIHdpdGggdGhlIGZyYW1lIHBhcmFtZXRlciDigJh0b29sLWJhci1wb3NpdGlvbuKAmS4g ICpOb3RlIChlbGlzcClGcmFtZQpQYXJhbWV0ZXJzOjouCgogICBOUyBidWlsZHMgY29uc2lkZXIg dGhlIHRvb2wgYmFyIHRvIGJlIGEgd2luZG93IGRlY29yYXRpb24sIGFuZAp0aGVyZWZvcmUgZG8g bm90IGRpc3BsYXkgaXQgd2hlbiBhIHdpbmRvdyBpcyB1bmRlY29yYXRlZC4gICpOb3RlCihlbGlz cClGcmFtZSBQYXJhbWV0ZXJzOjouICBPbiBtYWNPUyB0aGUgdG9vbCBiYXIgaXMgaGlkZGVuIHdo ZW4gdGhlCmZyYW1lIGlzIHB1dCBpbnRvIGZ1bGxzY3JlZW4sIGJ1dCBjYW4gYmUgZGlzcGxheWVk IGJ5IG1vdmluZyB0aGUgbW91c2UKcG9pbnRlciB0byB0aGUgdG9wIG9mIHRoZSBzY3JlZW4uCgoK KiogMjEuMTcgVXNpbmcgRGlhbG9nIEJveGVzCgpBIGRpYWxvZyBib3ggaXMgYSBzcGVjaWFsIGtp bmQgb2YgbWVudSBmb3IgYXNraW5nIHlvdSBhIHllcy1vci1ubwpxdWVzdGlvbiBvciBzb21lIG90 aGVyIHNwZWNpYWwgcXVlc3Rpb24uICBNYW55IEVtYWNzIGNvbW1hbmRzIHVzZSBhCmRpYWxvZyBi b3ggdG8gYXNrIGEgeWVzLW9yLW5vIHF1ZXN0aW9uLCBpZiB5b3UgdXNlZCB0aGUgbW91c2UgdG8g aW52b2tlCnRoZSBjb21tYW5kIHRoYXQgbGVkIHRvIHRoZSBxdWVzdGlvbi4KCiAgIFRvIGRpc2Fi bGUgdGhlIHVzZSBvZiBkaWFsb2cgYm94ZXMsIGNoYW5nZSB0aGUgdmFyaWFibGUK4oCYdXNlLWRp YWxvZy1ib3jigJkgdG8g4oCYbmls4oCZLiAgSW4gdGhhdCBjYXNlLCBFbWFjcyBhbHdheXMgcGVy Zm9ybXMKeWVzLW9yLW5vIHByb21wdHMgdXNpbmcgdGhlIGVjaG8gYXJlYSBhbmQga2V5Ym9hcmQg aW5wdXQuICBUaGlzIHZhcmlhYmxlCmFsc28gY29udHJvbHMgd2hldGhlciB0byB1c2UgZmlsZSBz ZWxlY3Rpb24gd2luZG93cyAoYnV0IHRob3NlIGFyZSBub3QKc3VwcG9ydGVkIG9uIGFsbCBwbGF0 Zm9ybXMpLgoKICAgQSBmaWxlIHNlbGVjdGlvbiB3aW5kb3cgaXMgYSBzcGVjaWFsIGtpbmQgb2Yg ZGlhbG9nIGJveCBmb3IgYXNraW5nCmZvciBmaWxlIG5hbWVzLiAgWW91IGNhbiBjdXN0b21pemUg dGhlIHZhcmlhYmxlIOKAmHVzZS1maWxlLWRpYWxvZ+KAmSB0bwpzdXBwcmVzcyB0aGUgdXNlIG9m IGZpbGUgc2VsZWN0aW9uIHdpbmRvd3MsIGV2ZW4gaWYgeW91IHN0aWxsIHdhbnQgb3RoZXIKa2lu ZHMgb2YgZGlhbG9ncy4gIFRoaXMgdmFyaWFibGUgaGFzIG5vIGVmZmVjdCBpZiB5b3UgaGF2ZSBz dXBwcmVzc2VkCmFsbCBkaWFsb2cgYm94ZXMgd2l0aCB0aGUgdmFyaWFibGUg4oCYdXNlLWRpYWxv Zy1ib3jigJkuCgogICBXaGVuIEVtYWNzIGlzIGNvbXBpbGVkIHdpdGggR1RLKyBzdXBwb3J0LCBp dCB1c2VzIHRoZSBHVEsrIGZpbGUKY2hvb3NlciBkaWFsb2cuICBFbWFjcyBhZGRzIGFuIGFkZGl0 aW9uYWwgdG9nZ2xlIGJ1dHRvbiB0byB0aGlzIGRpYWxvZywKd2hpY2ggeW91IGNhbiB1c2UgdG8g ZW5hYmxlIG9yIGRpc2FibGUgdGhlIGRpc3BsYXkgb2YgaGlkZGVuIGZpbGVzCihmaWxlcyBzdGFy dGluZyB3aXRoIGEgZG90KSBpbiB0aGF0IGRpYWxvZy4gIElmIHlvdSB3YW50IHRoaXMgdG9nZ2xl IHRvCmJlIGFjdGl2YXRlZCBieSBkZWZhdWx0LCBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmHgtZ3Rr LXNob3ctaGlkZGVuLWZpbGVz4oCZCnRvIOKAmHTigJkuICBJbiBhZGRpdGlvbiwgRW1hY3MgYWRk cyBoZWxwIHRleHQgdG8gdGhlIEdUSysgZmlsZSBjaG9vc2VyCmRpYWxvZzsgdG8gZGlzYWJsZSB0 aGlzIGhlbHAgdGV4dCwgY2hhbmdlIHRoZSB2YXJpYWJsZQrigJh4LWd0ay1maWxlLWRpYWxvZy1o ZWxwLXRleHTigJkgdG8g4oCYbmls4oCZLgoKCioqIDIxLjE4IFRvb2x0aXBzCgoiVG9vbHRpcHMi IGFyZSBzbWFsbCBzcGVjaWFsIGZyYW1lcyB0aGF0IGRpc3BsYXkgdGV4dCBpbmZvcm1hdGlvbiBh dCB0aGUKY3VycmVudCBtb3VzZSBwb3NpdGlvbi4gIFRoZXkgYWN0aXZhdGUgd2hlbiB0aGVyZSBp cyBhIHBhdXNlIGluIG1vdXNlCm1vdmVtZW50IG92ZXIgc29tZSBzaWduaWZpY2FudCBwaWVjZSBv ZiB0ZXh0IGluIGEgd2luZG93LCBvciB0aGUgbW9kZQpsaW5lLCBvciBzb21lIG90aGVyIHBhcnQg b2YgdGhlIEVtYWNzIGZyYW1lIHN1Y2ggYXMgYSB0b29sIGJhciBidXR0b24gb3IKbWVudSBpdGVt LgoKICAgWW91IGNhbiB0b2dnbGUgdGhlIHVzZSBvZiB0b29sdGlwcyB3aXRoIHRoZSBjb21tYW5k IOKAmE0teAp0b29sdGlwLW1vZGXigJkuICBXaGVuIFRvb2x0aXAgbW9kZSBpcyBkaXNhYmxlZCwg dGhlIGhlbHAgdGV4dCBpcwpkaXNwbGF5ZWQgaW4gdGhlIGVjaG8gYXJlYSBpbnN0ZWFkLiAgVG8g Y29udHJvbCB0aGUgdXNlIG9mIHRvb2x0aXBzIGF0CnN0YXJ0dXAsIGN1c3RvbWl6ZSB0aGUgdmFy aWFibGUg4oCYdG9vbHRpcC1tb2Rl4oCZLgoKICAgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgcHJv dmlkZSBjdXN0b21pemF0aW9uIG9wdGlvbnMgZm9yIHRvb2x0aXAKZGlzcGxheToKCuKAmHRvb2x0 aXAtZGVsYXnigJkKICAgICBUaGlzIHZhcmlhYmxlIHNwZWNpZmllcyBob3cgbG9uZyBFbWFjcyBz aG91bGQgd2FpdCBiZWZvcmUKICAgICBkaXNwbGF5aW5nIHRoZSBmaXJzdCB0b29sdGlwLiAgVGhl IHZhbHVlIGlzIGluIHNlY29uZHMuCgrigJh0b29sdGlwLXNob3J0LWRlbGF54oCZCiAgICAgVGhp cyB2YXJpYWJsZSBzcGVjaWZpZXMgaG93IGxvbmcgRW1hY3Mgc2hvdWxkIHdhaXQgYmVmb3JlCiAg ICAgZGlzcGxheWluZyBzdWJzZXF1ZW50IHRvb2x0aXBzIG9uIGRpZmZlcmVudCBpdGVtcywgaGF2 aW5nIGFscmVhZHkKICAgICBkaXNwbGF5ZWQgdGhlIGZpcnN0IHRvb2x0aXAuICBUaGUgdmFsdWUg aXMgaW4gc2Vjb25kcy4KCuKAmHRvb2x0aXAtaGlkZS1kZWxheeKAmQogICAgIFRoZSBudW1iZXIg b2Ygc2Vjb25kcyBzaW5jZSBkaXNwbGF5aW5nIGEgdG9vbHRpcCB0byBoaWRlIGl0LCBpZiB0aGUK ICAgICBtb3VzZSBkb2VzbuKAmXQgbW92ZS4KCuKAmHRvb2x0aXAteC1vZmZzZXTigJkK4oCYdG9v bHRpcC15LW9mZnNldOKAmQogICAgIFRoZSBYIGFuZCBZIG9mZnNldHMsIGluIHBpeGVscywgb2Yg dGhlIGxlZnQgdG9wIGNvcm5lciBvZiB0aGUKICAgICB0b29sdGlwIGZyb20gdGhlIG1vdXNlIHBv aW50ZXIgcG9zaXRpb24uICBOb3RlIHRoYXQgdGhlc2UgYXJlCiAgICAgaWdub3JlZCBpZiDigJh0 b29sdGlwLWZyYW1lLXBhcmFtZXRlcnPigJkgd2FzIGN1c3RvbWl6ZWQgdG8gaW5jbHVkZSwKICAg ICByZXNwZWN0aXZlbHksIHRoZSDigJhsZWZ04oCZIGFuZCDigJh0b3DigJkgcGFyYW1ldGVycy4g IFRoZSB2YWx1ZXMgb2YgdGhlCiAgICAgb2Zmc2V0cyBzaG91bGQgYmUgY2hvc2VuIHNvIHRoYXQg dGhlIHRvb2x0aXAgZG9lc27igJl0IGNvdmVyIHRoZQogICAgIG1vdXNlIHBvaW50ZXLigJlzIGhv dCBzcG90LCBvciBpdCBtaWdodCBpbnRlcmZlcmUgd2l0aCBjbGlja2luZyB0aGUKICAgICBtb3Vz ZS4KCuKAmHRvb2x0aXAtZnJhbWUtcGFyYW1ldGVyc+KAmQogICAgIFRoZSBmcmFtZSBwYXJhbWV0 ZXJzIHVzZWQgZm9yIGRpc3BsYXlpbmcgdG9vbHRpcHMuICAqTm90ZQogICAgIChlbGlzcClGcmFt ZSBQYXJhbWV0ZXJzOjosIGFuZCBhbHNvICpub3RlIChlbGlzcClUb29sdGlwczo6LgoKICAgRm9y IGFkZGl0aW9uYWwgY3VzdG9taXphdGlvbiBvcHRpb25zIGZvciBkaXNwbGF5aW5nIHRvb2x0aXBz LCB1c2UK4oCYTS14IGN1c3RvbWl6ZS1ncm91cCA8UkVUPiB0b29sdGlwIDxSRVQ+4oCZLgoKICAg SWYgRW1hY3MgaXMgYnVpbHQgd2l0aCBHVEsrIHN1cHBvcnQsIGl0IGRpc3BsYXlzIHRvb2x0aXBz IHZpYSBHVEsrLAp1c2luZyB0aGUgZGVmYXVsdCBhcHBlYXJhbmNlIG9mIEdUSysgdG9vbHRpcHMu ICBUbyBkaXNhYmxlIHRoaXMsIGNoYW5nZQp0aGUgdmFyaWFibGUg4oCYeC1ndGstdXNlLXN5c3Rl bS10b29sdGlwc+KAmSB0byDigJhuaWzigJkuICBJZiB5b3UgZG8gdGhpcywgb3IKaWYgRW1hY3Mg aXMgYnVpbHQgd2l0aG91dCBHVEsrIHN1cHBvcnQsIG1vc3QgYXR0cmlidXRlcyBvZiB0aGUgdG9v bHRpcAp0ZXh0IGFyZSBzcGVjaWZpZWQgYnkgdGhlIOKAmHRvb2x0aXDigJkgZmFjZSwgYW5kIGJ5 IFggcmVzb3VyY2VzICgqbm90ZSBYClJlc291cmNlczo6KS4KCiAgICJHVUQgdG9vbHRpcHMiIGFy ZSBzcGVjaWFsIHRvb2x0aXBzIHRoYXQgc2hvdyB0aGUgdmFsdWVzIG9mIHZhcmlhYmxlcwp3aGVu IGRlYnVnZ2luZyBhIHByb2dyYW0gd2l0aCBHVUQuICAqTm90ZSBEZWJ1Z2dlciBPcGVyYXRpb246 Oi4KCgoqKiAyMS4xOSBNb3VzZSBBdm9pZGFuY2UKCk9uIGdyYXBoaWNhbCB0ZXJtaW5hbHMsIHRo ZSBtb3VzZSBwb2ludGVyIG1heSBvYnNjdXJlIHRoZSB0ZXh0IGluIHRoZQpFbWFjcyBmcmFtZS4g IEVtYWNzIHByb3ZpZGVzIHR3byBtZXRob2RzIHRvIGF2b2lkIHRoaXMgcHJvYmxlbS4KCiAgIEZp cnN0bHksIEVtYWNzIGhpZGVzIHRoZSBtb3VzZSBwb2ludGVyIGVhY2ggdGltZSB5b3UgdHlwZSBh CnNlbGYtaW5zZXJ0aW5nIGNoYXJhY3RlciwgaWYgdGhlIHBvaW50ZXIgbGllcyBpbnNpZGUgYW4g RW1hY3MgZnJhbWU7Cm1vdmluZyB0aGUgbW91c2UgcG9pbnRlciBtYWtlcyBpdCB2aXNpYmxlIGFn YWluLiAgVG8gZGlzYWJsZSB0aGlzCmZlYXR1cmUsIHNldCB0aGUgdmFyaWFibGUg4oCYbWFrZS1w b2ludGVyLWludmlzaWJsZeKAmSB0byDigJhuaWzigJkuICAqTm90ZQpEaXNwbGF5IEN1c3RvbTo6 LgoKICAgU2Vjb25kbHksIHlvdSBjYW4gdXNlIE1vdXNlIEF2b2lkYW5jZSBtb2RlLCBhIG1pbm9y IG1vZGUsIHRvIGtlZXAgdGhlCm1vdXNlIHBvaW50ZXIgYXdheSBmcm9tIHBvaW50LiAgVG8gdXNl IE1vdXNlIEF2b2lkYW5jZSBtb2RlLCBjdXN0b21pemUKdGhlIHZhcmlhYmxlIOKAmG1vdXNlLWF2 b2lkYW5jZS1tb2Rl4oCZLiAgWW91IGNhbiBzZXQgdGhpcyB0byB2YXJpb3VzIHZhbHVlcwp0byBt b3ZlIHRoZSBtb3VzZSBpbiBzZXZlcmFsIHdheXM6CgrigJhiYW5pc2jigJkKICAgICBNb3ZlIHRo ZSBwb2ludGVyIHRvIGEgY29ybmVyIG9mIHRoZSBmcmFtZSBvbiBhbnkga2V5LXByZXNzLiAgWW91 CiAgICAgY2FuIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGUg4oCYbW91c2UtYXZvaWRhbmNlLWJhbmlz aC1wb3NpdGlvbuKAmSB0bwogICAgIHNwZWNpZnkgd2hlcmUgdGhlIHBvaW50ZXIgZ29lcyB3aGVu IGl0IGlzIGJhbmlzaGVkLgrigJhleGlsZeKAmQogICAgIEJhbmlzaCB0aGUgcG9pbnRlciBvbmx5 IGlmIHRoZSBjdXJzb3IgZ2V0cyB0b28gY2xvc2UsIGFuZCBhbGxvdyBpdAogICAgIHRvIHJldHVy biBvbmNlIHRoZSBjdXJzb3IgaXMgb3V0IG9mIHRoZSB3YXkuCuKAmGp1bXDigJkKICAgICBJZiB0 aGUgY3Vyc29yIGdldHMgdG9vIGNsb3NlIHRvIHRoZSBwb2ludGVyLCBkaXNwbGFjZSB0aGUgcG9p bnRlcgogICAgIGJ5IGEgcmFuZG9tIGRpc3RhbmNlIGFuZCBkaXJlY3Rpb24uCuKAmGFuaW1hdGXi gJkKICAgICBBcyDigJhqdW1w4oCZLCBidXQgc2hvd3Mgc3RlcHMgYWxvbmcgdGhlIHdheSBmb3Ig aWxsdXNpb24gb2YgbW90aW9uLgrigJhjYXQtYW5kLW1vdXNl4oCZCiAgICAgVGhlIHNhbWUgYXMg 4oCYYW5pbWF0ZeKAmS4K4oCYcHJvdGV1c+KAmQogICAgIEFzIOKAmGFuaW1hdGXigJksIGJ1dCBj aGFuZ2VzIHRoZSBzaGFwZSBvZiB0aGUgbW91c2UgcG9pbnRlciB0b28uCgogICBZb3UgY2FuIGFs c28gdXNlIHRoZSBjb21tYW5kIOKAmE0teCBtb3VzZS1hdm9pZGFuY2UtbW9kZeKAmSB0byBlbmFi bGUgdGhlCm1vZGUuICBXaGVuZXZlciBNb3VzZSBBdm9pZGFuY2UgbW9kZSBtb3ZlcyB0aGUgbW91 c2UsIGl0IGFsc28gcmFpc2VzIHRoZQpmcmFtZS4KCgoqKiAyMS4yMCBOb24tV2luZG93IFRlcm1p bmFscwoKT24gYSB0ZXh0IHRlcm1pbmFsLCBFbWFjcyBjYW4gZGlzcGxheSBvbmx5IG9uZSBFbWFj cyBmcmFtZSBhdCBhIHRpbWUuCkhvd2V2ZXIsIHlvdSBjYW4gc3RpbGwgY3JlYXRlIG11bHRpcGxl IEVtYWNzIGZyYW1lcywgYW5kIHN3aXRjaCBiZXR3ZWVuCnRoZW0uICBTd2l0Y2hpbmcgZnJhbWVz IG9uIHRoZXNlIHRlcm1pbmFscyBpcyBtdWNoIGxpa2Ugc3dpdGNoaW5nCmJldHdlZW4gZGlmZmVy ZW50IHdpbmRvdyBjb25maWd1cmF0aW9ucy4KCiAgIFVzZSDigJhDLXggNSAy4oCZIHRvIGNyZWF0 ZSBhIG5ldyBmcmFtZSBhbmQgc3dpdGNoIHRvIGl0OyB1c2Ug4oCYQy14IDUgb+KAmQp0byBjeWNs ZSB0aHJvdWdoIHRoZSBleGlzdGluZyBmcmFtZXM7IHVzZSDigJhDLXggNSAw4oCZIHRvIGRlbGV0 ZSB0aGUKY3VycmVudCBmcmFtZS4KCiAgIEVhY2ggZnJhbWUgaGFzIGEgbnVtYmVyIHRvIGRpc3Rp bmd1aXNoIGl0LiAgSWYgeW91ciB0ZXJtaW5hbCBjYW4KZGlzcGxheSBvbmx5IG9uZSBmcmFtZSBh dCBhIHRpbWUsIHRoZSBzZWxlY3RlZCBmcmFtZeKAmXMgbnVtYmVyIE4gYXBwZWFycwpuZWFyIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIG1vZGUgbGluZSwgaW4gdGhlIGZvcm0g4oCYRk7igJkuCgogICDi gJhGTuKAmSBpcyBpbiBmYWN0IHRoZSBmcmFtZeKAmXMgaW5pdGlhbCBuYW1lLiAgWW91IGNhbiBn aXZlIGZyYW1lcyBtb3JlCm1lYW5pbmdmdWwgbmFtZXMgaWYgeW91IHdpc2gsIGFuZCB5b3UgY2Fu IHNlbGVjdCBhIGZyYW1lIGJ5IGl0cyBuYW1lLgpVc2UgdGhlIGNvbW1hbmQg4oCYTS14IHNldC1m cmFtZS1uYW1lIDxSRVQ+IE5BTUUgPFJFVD7igJkgdG8gc3BlY2lmeSBhIG5ldwpuYW1lIGZvciB0 aGUgc2VsZWN0ZWQgZnJhbWUsIGFuZCB1c2Ug4oCYTS14IHNlbGVjdC1mcmFtZS1ieS1uYW1lIDxS RVQ+Ck5BTUUgPFJFVD7igJkgdG8gc2VsZWN0IGEgZnJhbWUgYWNjb3JkaW5nIHRvIGl0cyBuYW1l LiAgVGhlIG5hbWUgeW91CnNwZWNpZnkgYXBwZWFycyBpbiB0aGUgbW9kZSBsaW5lIHdoZW4gdGhl IGZyYW1lIGlzIHNlbGVjdGVkLgoKCioqIDIxLjIxIFVzaW5nIGEgTW91c2UgaW4gVGV4dCBUZXJt aW5hbHMKClNvbWUgdGV4dCB0ZXJtaW5hbHMgc3VwcG9ydCBtb3VzZSBjbGlja3MgaW4gdGhlIHRl cm1pbmFsIHdpbmRvdy4KCiAgIEluIGEgdGVybWluYWwgZW11bGF0b3Igd2hpY2ggaXMgY29tcGF0 aWJsZSB3aXRoIOKAmHh0ZXJt4oCZLCB5b3UgY2FuIHVzZQrigJhNLXggeHRlcm0tbW91c2UtbW9k ZeKAmSB0byBnaXZlIEVtYWNzIGNvbnRyb2wgb3ZlciBzaW1wbGUgdXNlcyBvZiB0aGUKbW91c2Xi gJRiYXNpY2FsbHksIG9ubHkgbm9uLW1vZGlmaWVkIHNpbmdsZSBjbGlja3MgYXJlIHN1cHBvcnRl ZC4gIE5ld2VyCnZlcnNpb25zIG9mIOKAmHh0ZXJt4oCZIGFsc28gc3VwcG9ydCBtb3VzZS10cmFj a2luZy4gIFRoZSBub3JtYWwg4oCYeHRlcm3igJkKbW91c2UgZnVuY3Rpb25hbGl0eSBmb3Igc3Vj aCBjbGlja3MgaXMgc3RpbGwgYXZhaWxhYmxlIGJ5IGhvbGRpbmcgZG93bgp0aGUgPFNISUZUPiBr ZXkgd2hlbiB5b3UgcHJlc3MgdGhlIG1vdXNlIGJ1dHRvbi4gIFh0ZXJtIE1vdXNlIG1vZGUgaXMg YQpnbG9iYWwgbWlub3IgbW9kZSAoKm5vdGUgTWlub3IgTW9kZXM6OikuICBSZXBlYXRpbmcgdGhl IGNvbW1hbmQgdHVybnMKdGhlIG1vZGUgb2ZmIGFnYWluLgoKICAgSW4gdGhlIGNvbnNvbGUgb24g R05VL0xpbnV4LCB5b3UgY2FuIHVzZSDigJhNLXggZ3BtLW1vdXNlLW1vZGXigJkgdG8KZW5hYmxl IG1vdXNlIHN1cHBvcnQuICBZb3UgbXVzdCBoYXZlIHRoZSBncG0gc2VydmVyIGluc3RhbGxlZCBh bmQKcnVubmluZyBvbiB5b3VyIHN5c3RlbSBpbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLiAgTm90 ZSB0aGF0IHdoZW4gdGhpcwptb2RlIGlzIGVuYWJsZWQsIHlvdSBjYW5ub3QgdXNlIHRoZSBtb3Vz ZSB0byB0cmFuc2ZlciB0ZXh0IGJldHdlZW4gRW1hY3MKYW5kIG90aGVyIHByb2dyYW1zIHdoaWNo IHVzZSBHUE0uIFRoaXMgaXMgZHVlIHRvIGxpbWl0YXRpb25zIGluIEdQTSBhbmQKdGhlIExpbnV4 IGtlcm5lbC4KCiAgICpOb3RlIE1TLURPUyBNb3VzZTo6LCBmb3IgaW5mb3JtYXRpb24gYWJvdXQg bW91c2Ugc3VwcG9ydCBvbiBNUy1ET1MuCgoKKiAyMiBJbnRlcm5hdGlvbmFsIENoYXJhY3RlciBT ZXQgU3VwcG9ydAoKRW1hY3Mgc3VwcG9ydHMgYSB3aWRlIHZhcmlldHkgb2YgaW50ZXJuYXRpb25h bCBjaGFyYWN0ZXIgc2V0cywgaW5jbHVkaW5nCkV1cm9wZWFuIGFuZCBWaWV0bmFtZXNlIHZhcmlh bnRzIG9mIHRoZSBMYXRpbiBhbHBoYWJldCwgYXMgd2VsbCBhcwpBcmFiaWMgc2NyaXB0cywgQnJh aG1pYyBzY3JpcHRzIChmb3IgbGFuZ3VhZ2VzIHN1Y2ggYXMgQmVuZ2FsaSwgSGluZGksCmFuZCBU aGFpKSwgQ3lyaWxsaWMsIEV0aGlvcGljLCBHZW9yZ2lhbiwgR3JlZWssIEhhbiAoZm9yIENoaW5l c2UgYW5kCkphcGFuZXNlKSwgSGFuZ3VsIChmb3IgS29yZWFuKSwgSGVicmV3IGFuZCBJUEEuICBF bWFjcyBhbHNvIHN1cHBvcnRzCnZhcmlvdXMgZW5jb2RpbmdzIG9mIHRoZXNlIGNoYXJhY3RlcnMg dGhhdCBhcmUgdXNlZCBieSBvdGhlcgppbnRlcm5hdGlvbmFsaXplZCBzb2Z0d2FyZSwgc3VjaCBh cyB3b3JkIHByb2Nlc3NvcnMgYW5kIG1haWxlcnMuCgogICBFbWFjcyBhbGxvd3MgZWRpdGluZyB0 ZXh0IHdpdGggaW50ZXJuYXRpb25hbCBjaGFyYWN0ZXJzIGJ5IHN1cHBvcnRpbmcKYWxsIHRoZSBy ZWxhdGVkIGFjdGl2aXRpZXM6CgogICDigKIgWW91IGNhbiB2aXNpdCBmaWxlcyB3aXRoIG5vbi1B U0NJSSBjaGFyYWN0ZXJzLCBzYXZlIG5vbi1BU0NJSSB0ZXh0LAogICAgIGFuZCBwYXNzIG5vbi1B U0NJSSB0ZXh0IGJldHdlZW4gRW1hY3MgYW5kIHByb2dyYW1zIGl0IGludm9rZXMgKHN1Y2gKICAg ICBhcyBjb21waWxlcnMsIHNwZWxsLWNoZWNrZXJzLCBhbmQgbWFpbGVycykuICBTZXR0aW5nIHlv dXIgbGFuZ3VhZ2UKICAgICBlbnZpcm9ubWVudCAoKm5vdGUgTGFuZ3VhZ2UgRW52aXJvbm1lbnRz OjopIHRha2VzIGNhcmUgb2Ygc2V0dGluZwogICAgIHVwIHRoZSBjb2Rpbmcgc3lzdGVtcyBhbmQg b3RoZXIgb3B0aW9ucyBmb3IgYSBzcGVjaWZpYyBsYW5ndWFnZSBvcgogICAgIGN1bHR1cmUuICBB bHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHNwZWNpZnkgaG93IEVtYWNzIHNob3VsZCBlbmNvZGUgb3IK ICAgICBkZWNvZGUgdGV4dCBmb3IgZWFjaCBjb21tYW5kOyBzZWUgKm5vdGUgVGV4dCBDb2Rpbmc6 Oi4KCiAgIOKAoiBZb3UgY2FuIGRpc3BsYXkgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgZW5jb2RlZCBi eSB0aGUgdmFyaW91cwogICAgIHNjcmlwdHMuICBUaGlzIHdvcmtzIGJ5IHVzaW5nIGFwcHJvcHJp YXRlIGZvbnRzIG9uIGdyYXBoaWNzCiAgICAgZGlzcGxheXMgKCpub3RlIERlZmluaW5nIEZvbnRz ZXRzOjopLCBhbmQgYnkgc2VuZGluZyBzcGVjaWFsIGNvZGVzCiAgICAgdG8gdGV4dCBkaXNwbGF5 cyAoKm5vdGUgVGVybWluYWwgQ29kaW5nOjopLiAgSWYgc29tZSBjaGFyYWN0ZXJzIGFyZQogICAg IGRpc3BsYXllZCBpbmNvcnJlY3RseSwgcmVmZXIgdG8gKm5vdGUgVW5kaXNwbGF5YWJsZSBDaGFy YWN0ZXJzOjosCiAgICAgd2hpY2ggZGVzY3JpYmVzIHBvc3NpYmxlIHByb2JsZW1zIGFuZCBleHBs YWlucyBob3cgdG8gc29sdmUgdGhlbS4KCiAgIOKAoiBDaGFyYWN0ZXJzIGZyb20gc2NyaXB0cyB3 aG9zZSBuYXR1cmFsIG9yZGVyaW5nIG9mIHRleHQgaXMgZnJvbQogICAgIHJpZ2h0IHRvIGxlZnQg YXJlIHJlb3JkZXJlZCBmb3IgZGlzcGxheSAoKm5vdGUgQmlkaXJlY3Rpb25hbAogICAgIEVkaXRp bmc6OikuICBUaGVzZSBzY3JpcHRzIGluY2x1ZGUgQXJhYmljLCBIZWJyZXcsIFN5cmlhYywgVGhh YW5hLAogICAgIGFuZCBhIGZldyBvdGhlcnMuCgogICDigKIgWW91IGNhbiBpbnNlcnQgbm9uLUFT Q0lJIGNoYXJhY3RlcnMgb3Igc2VhcmNoIGZvciB0aGVtLiAgVG8gZG8KICAgICB0aGF0LCB5b3Ug Y2FuIHNwZWNpZnkgYW4gaW5wdXQgbWV0aG9kICgqbm90ZSBTZWxlY3QgSW5wdXQgTWV0aG9kOjop CiAgICAgc3VpdGFibGUgZm9yIHlvdXIgbGFuZ3VhZ2UsIG9yIHVzZSB0aGUgZGVmYXVsdCBpbnB1 dCBtZXRob2Qgc2V0IHVwCiAgICAgd2hlbiB5b3UgY2hvb3NlIHlvdXIgbGFuZ3VhZ2UgZW52aXJv bm1lbnQuICBJZiB5b3VyIGtleWJvYXJkIGNhbgogICAgIHByb2R1Y2Ugbm9uLUFTQ0lJIGNoYXJh Y3RlcnMsIHlvdSBjYW4gc2VsZWN0IGFuIGFwcHJvcHJpYXRlCiAgICAga2V5Ym9hcmQgY29kaW5n IHN5c3RlbSAoKm5vdGUgVGVybWluYWwgQ29kaW5nOjopLCBhbmQgRW1hY3Mgd2lsbAogICAgIGFj Y2VwdCB0aG9zZSBjaGFyYWN0ZXJzLiAgTGF0aW4tMSBjaGFyYWN0ZXJzIGNhbiBhbHNvIGJlIGlu cHV0IGJ5CiAgICAgdXNpbmcgdGhlIOKAmEMteCA44oCZIHByZWZpeCwgc2VlICpub3RlIFVuaWJ5 dGUgTW9kZTo6LgoKICAgICBXaXRoIHRoZSBYIFdpbmRvdyBTeXN0ZW0sIHlvdXIgbG9jYWxlIHNo b3VsZCBiZSBzZXQgdG8gYW4KICAgICBhcHByb3ByaWF0ZSB2YWx1ZSB0byBtYWtlIHN1cmUgRW1h Y3MgaW50ZXJwcmV0cyBrZXlib2FyZCBpbnB1dAogICAgIGNvcnJlY3RseTsgc2VlICpub3RlIGxv Y2FsZXM6IExhbmd1YWdlIEVudmlyb25tZW50cy4KCiAgIFRoZSByZXN0IG9mIHRoaXMgY2hhcHRl ciBkZXNjcmliZXMgdGhlc2UgaXNzdWVzIGluIGRldGFpbC4KCisgTWVudToKCiAgLSBJbnRlcm5h dGlvbmFsIENoYXJzOjogICAgIEJhc2ljIGNvbmNlcHRzIG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXJz LgogIC0gTGFuZ3VhZ2UgRW52aXJvbm1lbnRzOjogICBTZXR0aW5nIHRoaW5ncyB1cCBmb3IgdGhl IGxhbmd1YWdlIHlvdSB1c2UuCiAgLSBJbnB1dCBNZXRob2RzOjogICAgICAgICAgIEVudGVyaW5n IHRleHQgY2hhcmFjdGVycyBub3Qgb24geW91ciBrZXlib2FyZC4KICAtIFNlbGVjdCBJbnB1dCBN ZXRob2Q6OiAgICAgU3BlY2lmeWluZyB5b3VyIGNob2ljZSBvZiBpbnB1dCBtZXRob2RzLgogIC0g Q29kaW5nIFN5c3RlbXM6OiAgICAgICAgICBDaGFyYWN0ZXIgc2V0IGNvbnZlcnNpb24gd2hlbiB5 b3UgcmVhZCBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUgZmlsZXMsIGFu ZCBzbyBvbi4KICAtIFJlY29nbml6ZSBDb2Rpbmc6OiAgICAgICAgSG93IEVtYWNzIGZpZ3VyZXMg b3V0IHdoaWNoIGNvbnZlcnNpb24gdG8gdXNlLgogIC0gU3BlY2lmeSBDb2Rpbmc6OiAgICAgICAg ICBTcGVjaWZ5aW5nIGEgZmlsZeKAmXMgY29kaW5nIHN5c3RlbSBleHBsaWNpdGx5LgogIC0gT3V0 cHV0IENvZGluZzo6ICAgICAgICAgICBDaG9vc2luZyBjb2Rpbmcgc3lzdGVtcyBmb3Igb3V0cHV0 LgogIC0gVGV4dCBDb2Rpbmc6OiAgICAgICAgICAgICBDaG9vc2luZyBjb252ZXJzaW9uIHRvIHVz ZSBmb3IgZmlsZSB0ZXh0LgogIC0gQ29tbXVuaWNhdGlvbiBDb2Rpbmc6OiAgICBDb2Rpbmcgc3lz dGVtcyBmb3IgaW50ZXJwcm9jZXNzIGNvbW11bmljYXRpb24uCiAgLSBGaWxlIE5hbWUgQ29kaW5n OjogICAgICAgIENvZGluZyBzeXN0ZW1zIGZvciBmaWxlIF9uYW1lc18uCiAgLSBUZXJtaW5hbCBD b2Rpbmc6OiAgICAgICAgIFNwZWNpZnlpbmcgY29kaW5nIHN5c3RlbXMgZm9yIGNvbnZlcnRpbmcK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybWluYWwgaW5wdXQgYW5kIG91dHB1dC4K ICAtIEZvbnRzZXRzOjogICAgICAgICAgICAgICAgRm9udHNldHMgYXJlIGNvbGxlY3Rpb25zIG9m IGZvbnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgY292ZXIgdGhlIHdob2xl IHNwZWN0cnVtIG9mIGNoYXJhY3RlcnMuCiAgLSBEZWZpbmluZyBGb250c2V0czo6ICAgICAgIERl ZmluaW5nIGEgbmV3IGZvbnRzZXQuCiAgLSBNb2RpZnlpbmcgRm9udHNldHM6OiAgICAgIE1vZGlm eWluZyBhbiBleGlzdGluZyBmb250c2V0LgogIC0gVW5kaXNwbGF5YWJsZSBDaGFyYWN0ZXJzOjog V2hlbiBjaGFyYWN0ZXJzIGRvbuKAmXQgZGlzcGxheS4KICAtIFVuaWJ5dGUgTW9kZTo6ICAgICAg ICAgICAgWW91IGNhbiBwaWNrIG9uZSBFdXJvcGVhbiBjaGFyYWN0ZXIgc2V0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRvIHVzZSB3aXRob3V0IG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgog IC0gQ2hhcnNldHM6OiAgICAgICAgICAgICAgICBIb3cgRW1hY3MgZ3JvdXBzIGl0cyBpbnRlcm5h bCBjaGFyYWN0ZXIgY29kZXMuCiAgLSBCaWRpcmVjdGlvbmFsIEVkaXRpbmc6OiAgIFN1cHBvcnQg Zm9yIHJpZ2h0LXRvLWxlZnQgc2NyaXB0cy4KCgoqKiAyMi4xIEludHJvZHVjdGlvbiB0byBJbnRl cm5hdGlvbmFsIENoYXJhY3RlciBTZXRzCgpUaGUgdXNlcnMgb2YgaW50ZXJuYXRpb25hbCBjaGFy YWN0ZXIgc2V0cyBhbmQgc2NyaXB0cyBoYXZlIGVzdGFibGlzaGVkCm1hbnkgbW9yZS1vci1sZXNz IHN0YW5kYXJkIGNvZGluZyBzeXN0ZW1zIGZvciBzdG9yaW5nIGZpbGVzLiAgVGhlc2UKY29kaW5n IHN5c3RlbXMgYXJlIHR5cGljYWxseSAibXVsdGlieXRlIiwgbWVhbmluZyB0aGF0IHNlcXVlbmNl cyBvZiB0d28Kb3IgbW9yZSBieXRlcyBhcmUgdXNlZCB0byByZXByZXNlbnQgaW5kaXZpZHVhbCBu b24tQVNDSUkgY2hhcmFjdGVycy4KCiAgIEludGVybmFsbHksIEVtYWNzIHVzZXMgaXRzIG93biBt dWx0aWJ5dGUgY2hhcmFjdGVyIGVuY29kaW5nLCB3aGljaCBpcwphIHN1cGVyc2V0IG9mIHRoZSAi VW5pY29kZSIgc3RhbmRhcmQuICBUaGlzIGludGVybmFsIGVuY29kaW5nIGFsbG93cwpjaGFyYWN0 ZXJzIGZyb20gYWxtb3N0IGV2ZXJ5IGtub3duIHNjcmlwdCB0byBiZSBpbnRlcm1peGVkIGluIGEg c2luZ2xlCmJ1ZmZlciBvciBzdHJpbmcuICBFbWFjcyB0cmFuc2xhdGVzIGJldHdlZW4gdGhlIG11 bHRpYnl0ZSBjaGFyYWN0ZXIKZW5jb2RpbmcgYW5kIHZhcmlvdXMgb3RoZXIgY29kaW5nIHN5c3Rl bXMgd2hlbiByZWFkaW5nIGFuZCB3cml0aW5nCmZpbGVzLCBhbmQgd2hlbiBleGNoYW5naW5nIGRh dGEgd2l0aCBzdWJwcm9jZXNzZXMuCgogICBUaGUgY29tbWFuZCDigJhDLWggaOKAmSAo4oCYdmll dy1oZWxsby1maWxl4oCZKSBkaXNwbGF5cyB0aGUgZmlsZQrigJhldGMvSEVMTE/igJksIHdoaWNo IGlsbHVzdHJhdGVzIHZhcmlvdXMgc2NyaXB0cyBieSBzaG93aW5nIGhvdyB0byBzYXkK4oCcaGVs bG/igJ0gaW4gbWFueSBsYW5ndWFnZXMuICBJZiBzb21lIGNoYXJhY3RlcnMgY2Fu4oCZdCBiZSBk aXNwbGF5ZWQgb24KeW91ciB0ZXJtaW5hbCwgdGhleSBhcHBlYXIgYXMg4oCYP+KAmSBvciBhcyBo b2xsb3cgYm94ZXMgKCpub3RlClVuZGlzcGxheWFibGUgQ2hhcmFjdGVyczo6KS4KCiAgIEtleWJv YXJkcywgZXZlbiBpbiB0aGUgY291bnRyaWVzIHdoZXJlIHRoZXNlIGNoYXJhY3RlciBzZXRzIGFy ZSB1c2VkLApnZW5lcmFsbHkgZG9u4oCZdCBoYXZlIGtleXMgZm9yIGFsbCB0aGUgY2hhcmFjdGVy cyBpbiB0aGVtLiAgWW91IGNhbgppbnNlcnQgY2hhcmFjdGVycyB0aGF0IHlvdXIga2V5Ym9hcmQg ZG9lcyBub3Qgc3VwcG9ydCwgdXNpbmcg4oCYQy14IDgKPFJFVD7igJkgKOKAmGluc2VydC1jaGFy 4oCZKS4gICpOb3RlIEluc2VydGluZyBUZXh0OjouICBTaG9ydGhhbmRzIGFyZQphdmFpbGFibGUg Zm9yIHNvbWUgY29tbW9uIGNoYXJhY3RlcnM7IGZvciBleGFtcGxlLCB5b3UgY2FuIGluc2VydCBh IGxlZnQKc2luZ2xlIHF1b3RhdGlvbiBtYXJrIOKAmCBieSB0eXBpbmcg4oCYQy14IDggW+KAmSwg b3IgaW4gRWxlY3RyaWMgUXVvdGUgbW9kZSwKdXN1YWxseSBieSBzaW1wbHkgdHlwaW5nIOKAmGDi gJkuICAqTm90ZSBRdW90YXRpb24gTWFya3M6Oi4gIEVtYWNzIGFsc28Kc3VwcG9ydHMgdmFyaW91 cyAiaW5wdXQgbWV0aG9kcyIsIHR5cGljYWxseSBvbmUgZm9yIGVhY2ggc2NyaXB0IG9yCmxhbmd1 YWdlLCB3aGljaCBtYWtlIGl0IGVhc2llciB0byB0eXBlIGNoYXJhY3RlcnMgaW4gdGhlIHNjcmlw dC4gICpOb3RlCklucHV0IE1ldGhvZHM6Oi4KCiAgIFRoZSBwcmVmaXgga2V5IOKAmEMteCA8UkVU PuKAmSBpcyB1c2VkIGZvciBjb21tYW5kcyB0aGF0IHBlcnRhaW4gdG8KbXVsdGlieXRlIGNoYXJh Y3RlcnMsIGNvZGluZyBzeXN0ZW1zLCBhbmQgaW5wdXQgbWV0aG9kcy4KCiAgIFRoZSBjb21tYW5k IOKAmEMteCA94oCZICjigJh3aGF0LWN1cnNvci1wb3NpdGlvbuKAmSkgc2hvd3MgaW5mb3JtYXRp b24gYWJvdXQKdGhlIGNoYXJhY3RlciBhdCBwb2ludC4gIEluIGFkZGl0aW9uIHRvIHRoZSBjaGFy YWN0ZXIgcG9zaXRpb24sIHdoaWNoCndhcyBkZXNjcmliZWQgaW4gKm5vdGUgUG9zaXRpb24gSW5m bzo6LCB0aGlzIGNvbW1hbmQgZGlzcGxheXMgaG93IHRoZQpjaGFyYWN0ZXIgaXMgZW5jb2RlZC4g IEZvciBpbnN0YW5jZSwgaXQgZGlzcGxheXMgdGhlIGZvbGxvd2luZyBsaW5lIGluCnRoZSBlY2hv IGFyZWEgZm9yIHRoZSBjaGFyYWN0ZXIg4oCYY+KAmToKCiAgICAgQ2hhcjogYyAoOTksICNvMTQz LCAjeDYzKSBwb2ludD0yODA2MiBvZiAzNjE2OCAoNzglKSBjb2x1bW49NTMKCiAgIFRoZSBmb3Vy IHZhbHVlcyBhZnRlciDigJhDaGFyOuKAmSBkZXNjcmliZSB0aGUgY2hhcmFjdGVyIHRoYXQgZm9s bG93cwpwb2ludCwgZmlyc3QgYnkgc2hvd2luZyBpdCBhbmQgdGhlbiBieSBnaXZpbmcgaXRzIGNo YXJhY3RlciBjb2RlIGluCmRlY2ltYWwsIG9jdGFsIGFuZCBoZXguICBGb3IgYSBub24tQVNDSUkg bXVsdGlieXRlIGNoYXJhY3RlciwgdGhlc2UgYXJlCmZvbGxvd2VkIGJ5IOKAmGZpbGXigJkgYW5k IHRoZSBjaGFyYWN0ZXLigJlzIHJlcHJlc2VudGF0aW9uLCBpbiBoZXgsIGluIHRoZQpidWZmZXLi gJlzIGNvZGluZyBzeXN0ZW0sIGlmIHRoYXQgY29kaW5nIHN5c3RlbSBlbmNvZGVzIHRoZSBjaGFy YWN0ZXIKc2FmZWx5IGFuZCB3aXRoIGEgc2luZ2xlIGJ5dGUgKCpub3RlIENvZGluZyBTeXN0ZW1z OjopLiAgSWYgdGhlCmNoYXJhY3RlcuKAmXMgZW5jb2RpbmcgaXMgbG9uZ2VyIHRoYW4gb25lIGJ5 dGUsIEVtYWNzIHNob3dzIOKAmGZpbGUgLi4u4oCZLgoKICAgT24gcmFyZSBvY2Nhc2lvbnMsIEVt YWNzIGVuY291bnRlcnMgInJhdyBieXRlcyI6IHNpbmdsZSBieXRlcyB3aG9zZQp2YWx1ZXMgYXJl IGluIHRoZSByYW5nZSAxMjggKDAyMDAgb2N0YWwpIHRocm91Z2ggMjU1ICgwMzc3IG9jdGFsKSwg d2hpY2gKRW1hY3MgY2Fubm90IGludGVycHJldCBhcyBwYXJ0IG9mIGEga25vd24gZW5jb2Rpbmcg b2Ygc29tZSBub24tQVNDSUkKY2hhcmFjdGVyLiAgU3VjaCByYXcgYnl0ZXMgYXJlIHRyZWF0ZWQg YXMgaWYgdGhleSBiZWxvbmdlZCB0byBhIHNwZWNpYWwKY2hhcmFjdGVyIHNldCDigJhlaWdodC1i aXTigJk7IEVtYWNzIGRpc3BsYXlzIHRoZW0gYXMgZXNjYXBlZCBvY3RhbCBjb2RlcwoodGhpcyBj YW4gYmUgY3VzdG9taXplZDsgKm5vdGUgRGlzcGxheSBDdXN0b206OikuICBJbiB0aGlzIGNhc2Us IOKAmEMteCA94oCZCnNob3dzIOKAmHJhdy1ieXRl4oCZIGluc3RlYWQgb2Yg4oCYZmlsZeKAmS4g IEluIGFkZGl0aW9uLCDigJhDLXggPeKAmSBzaG93cyB0aGUKY2hhcmFjdGVyIGNvZGVzIG9mIHJh dyBieXRlcyBhcyBpZiB0aGV5IHdlcmUgaW4gdGhlIHJhbmdlCuKAmCN4M0ZGRjgwLi4jeDNGRkZG RuKAmSwgd2hpY2ggaXMgd2hlcmUgRW1hY3MgbWFwcyB0aGVtIHRvIGRpc3Rpbmd1aXNoIHRoZW0K ZnJvbSBVbmljb2RlIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIOKAmCN4MDA4MC4uI3gwMEZG4oCZ LgoKICAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCAo4oCYQy11IEMteCA94oCZKSwgdGhpcyBjb21t YW5kIGRpc3BsYXlzIGEKZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgdGhlIGNoYXJhY3RlciBpbiBh IHdpbmRvdzoKCiAgIOKAoiBUaGUgY2hhcmFjdGVyIHNldCBuYW1lLCBhbmQgdGhlIGNvZGVzIHRo YXQgaWRlbnRpZnkgdGhlIGNoYXJhY3RlcgogICAgIHdpdGhpbiB0aGF0IGNoYXJhY3RlciBzZXQ7 IEFTQ0lJIGNoYXJhY3RlcnMgYXJlIGlkZW50aWZpZWQgYXMKICAgICBiZWxvbmdpbmcgdG8gdGhl IOKAmGFzY2lp4oCZIGNoYXJhY3RlciBzZXQuCgogICDigKIgVGhlIGNoYXJhY3RlcuKAmXMgc2Ny aXB0LCBzeW50YXggYW5kIGNhdGVnb3JpZXMuCgogICDigKIgV2hhdCBrZXlzIHRvIHR5cGUgdG8g aW5wdXQgdGhlIGNoYXJhY3RlciBpbiB0aGUgY3VycmVudCBpbnB1dAogICAgIG1ldGhvZCAoaWYg aXQgc3VwcG9ydHMgdGhlIGNoYXJhY3RlcikuCgogICDigKIgVGhlIGNoYXJhY3RlcuKAmXMgZW5j b2RpbmdzLCBib3RoIGludGVybmFsbHkgaW4gdGhlIGJ1ZmZlciwgYW5kCiAgICAgZXh0ZXJuYWxs eSBpZiB5b3Ugd2VyZSB0byBzYXZlIHRoZSBmaWxlLgoKICAg4oCiIElmIHlvdSBhcmUgcnVubmlu ZyBFbWFjcyBvbiBhIGdyYXBoaWNhbCBkaXNwbGF5LCB0aGUgZm9udCBuYW1lIGFuZAogICAgIGds eXBoIGNvZGUgZm9yIHRoZSBjaGFyYWN0ZXIuICBJZiB5b3UgYXJlIHJ1bm5pbmcgRW1hY3Mgb24g YSB0ZXh0CiAgICAgdGVybWluYWwsIHRoZSBjb2RlKHMpIHNlbnQgdG8gdGhlIHRlcm1pbmFsLgoK ICAg4oCiIFRoZSBjaGFyYWN0ZXLigJlzIHRleHQgcHJvcGVydGllcyAoKm5vdGUgKGVsaXNwKVRl eHQgUHJvcGVydGllczo6KSwKICAgICBpbmNsdWRpbmcgYW55IG5vbi1kZWZhdWx0IGZhY2VzIHVz ZWQgdG8gZGlzcGxheSB0aGUgY2hhcmFjdGVyLCBhbmQKICAgICBhbnkgb3ZlcmxheXMgY29udGFp bmluZyBpdCAoKm5vdGUgKGVsaXNwKU92ZXJsYXlzOjopLgoKICAgSGVyZeKAmXMgYW4gZXhhbXBs ZSwgd2l0aCBzb21lIGxpbmVzIGZvbGRlZCB0byBmaXQgaW50byB0aGlzIG1hbnVhbDoKCiAgICAg ICAgICAgICAgICAgIHBvc2l0aW9uOiAxIG9mIDEgKDAlKSwgY29sdW1uOiAwCiAgICAgICAgICAg ICAgICAgY2hhcmFjdGVyOiDDqiAoZGlzcGxheWVkIGFzIMOqKSAoY29kZXBvaW50IDIzNCwgI28z NTIsICN4ZWEpCiAgICAgICAgIHByZWZlcnJlZCBjaGFyc2V0OiB1bmljb2RlIChVbmljb2RlIChJ U08xMDY0NikpCiAgICAgY29kZSBwb2ludCBpbiBjaGFyc2V0OiAweEVBCiAgICAgICAgICAgICAg ICAgICAgc2NyaXB0OiBsYXRpbgogICAgICAgICAgICAgICAgICAgIHN5bnRheDogdyAgICAgICAg d2hpY2ggbWVhbnM6IHdvcmQKICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6IC46QmFzZSwgTDpM ZWZ0LXRvLXJpZ2h0IChzdHJvbmcpLCBjOkNoaW5lc2UsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBqOkphcGFuZXNlLCBsOkxhdGluLCB2OlZpZXQKICAgICAgICAgICAgICAgICAgdG8gaW5w dXQ6IHR5cGUgIkMteCA4IFJFVCBlYSIgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJD LXggOCBSRVQgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVYIgogICAgICAgICAg ICAgICBidWZmZXIgY29kZTogI3hDMyAjeEFBCiAgICAgICAgICAgICAgICAgZmlsZSBjb2RlOiAj eEMzICN4QUEgKGVuY29kZWQgYnkgY29kaW5nIHN5c3RlbSB1dGYtOC11bml4KQogICAgICAgICAg ICAgICAgICAgZGlzcGxheTogYnkgdGhpcyBmb250IChnbHlwaCBjb2RlKQogICAgICAgICB4ZnQ6 LVBmRWQtRGVqYVZ1IFNhbnMgTW9uby1ub3JtYWwtbm9ybWFsLQogICAgICAgICAgICAgbm9ybWFs LSotMTUtKi0qLSotbS0wLWlzbzEwNjQ2LTEgKCN4QUMpCgogICAgIENoYXJhY3RlciBjb2RlIHBy b3BlcnRpZXM6IGN1c3RvbWl6ZSB3aGF0IHRvIHNob3cKICAgICAgIG5hbWU6IExBVElOIFNNQUxM IExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAogICAgICAgb2xkLW5hbWU6IExBVElOIFNNQUxMIExF VFRFUiBFIENJUkNVTUZMRVgKICAgICAgIGdlbmVyYWwtY2F0ZWdvcnk6IExsIChMZXR0ZXIsIExv d2VyY2FzZSkKICAgICAgIGRlY29tcG9zaXRpb246ICgxMDEgNzcwKSAoJ2UnICdeJykKCgoqKiAy Mi4yIExhbmd1YWdlIEVudmlyb25tZW50cwoKQWxsIHN1cHBvcnRlZCBjaGFyYWN0ZXIgc2V0cyBh cmUgc3VwcG9ydGVkIGluIEVtYWNzIGJ1ZmZlcnMgd2hlbmV2ZXIKbXVsdGlieXRlIGNoYXJhY3Rl cnMgYXJlIGVuYWJsZWQ7IHRoZXJlIGlzIG5vIG5lZWQgdG8gc2VsZWN0IGEKcGFydGljdWxhciBs YW5ndWFnZSBpbiBvcmRlciB0byBkaXNwbGF5IGl0cyBjaGFyYWN0ZXJzLiAgSG93ZXZlciwgaXQg aXMKaW1wb3J0YW50IHRvIHNlbGVjdCBhICJsYW5ndWFnZSBlbnZpcm9ubWVudCIgaW4gb3JkZXIg dG8gc2V0IHZhcmlvdXMKZGVmYXVsdHMuICBSb3VnaGx5IHNwZWFraW5nLCB0aGUgbGFuZ3VhZ2Ug ZW52aXJvbm1lbnQgcmVwcmVzZW50cyBhCmNob2ljZSBvZiBwcmVmZXJyZWQgc2NyaXB0IHJhdGhl ciB0aGFuIGEgY2hvaWNlIG9mIGxhbmd1YWdlLgoKICAgVGhlIGxhbmd1YWdlIGVudmlyb25tZW50 IGNvbnRyb2xzIHdoaWNoIGNvZGluZyBzeXN0ZW1zIHRvIHJlY29nbml6ZQp3aGVuIHJlYWRpbmcg dGV4dCAoKm5vdGUgUmVjb2duaXplIENvZGluZzo6KS4gIFRoaXMgYXBwbGllcyB0byBmaWxlcywK aW5jb21pbmcgbWFpbCwgYW5kIGFueSBvdGhlciB0ZXh0IHlvdSByZWFkIGludG8gRW1hY3MuICBJ dCBtYXkgYWxzbwpzcGVjaWZ5IHRoZSBkZWZhdWx0IGNvZGluZyBzeXN0ZW0gdG8gdXNlIHdoZW4g eW91IGNyZWF0ZSBhIGZpbGUuICBFYWNoCmxhbmd1YWdlIGVudmlyb25tZW50IGFsc28gc3BlY2lm aWVzIGEgZGVmYXVsdCBpbnB1dCBtZXRob2QuCgogICBUbyBzZWxlY3QgYSBsYW5ndWFnZSBlbnZp cm9ubWVudCwgY3VzdG9taXplCuKAmGN1cnJlbnQtbGFuZ3VhZ2UtZW52aXJvbm1lbnTigJkgb3Ig dXNlIHRoZSBjb21tYW5kIOKAmE0teApzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnTigJkuICBJdCBt YWtlcyBubyBkaWZmZXJlbmNlIHdoaWNoIGJ1ZmZlciBpcwpjdXJyZW50IHdoZW4geW91IHVzZSB0 aGlzIGNvbW1hbmQsIGJlY2F1c2UgdGhlIGVmZmVjdHMgYXBwbHkgZ2xvYmFsbHkgdG8KdGhlIEVt YWNzIHNlc3Npb24uICBTZWUgdGhlIHZhcmlhYmxlIOKAmGxhbmd1YWdlLWluZm8tYWxpc3TigJkg Zm9yIHRoZSBsaXN0Cm9mIHN1cHBvcnRlZCBsYW5ndWFnZSBlbnZpcm9ubWVudHMsIGFuZCB1c2Ug dGhlIGNvbW1hbmQg4oCYQy1oIEwgTEFORy1FTlYKPFJFVD7igJkgKOKAmGRlc2NyaWJlLWxhbmd1 YWdlLWVudmlyb25tZW504oCZKSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKbGFuZ3Vh Z2UgZW52aXJvbm1lbnQgTEFORy1FTlYuICBTdXBwb3J0ZWQgbGFuZ3VhZ2UgZW52aXJvbm1lbnRz IGluY2x1ZGU6CgogICAgIEFTQ0lJLCBBcmFiaWMsIEJlbGFydXNpYW4sIEJlbmdhbGksIEJyYXpp bGlhbiBQb3J0dWd1ZXNlLAogICAgIEJ1bGdhcmlhbiwgQnVybWVzZSwgQ2hhbSwgQ2hpbmVzZS1C SUc1LCBDaGluZXNlLUNOUywKICAgICBDaGluZXNlLUVVQy1UVywgQ2hpbmVzZS1HQiwgQ2hpbmVz ZS1HQjE4MDMwLCBDaGluZXNlLUdCSywgQ3JvYXRpYW4sCiAgICAgQ3lyaWxsaWMtQUxULCBDeXJp bGxpYy1JU08sIEN5cmlsbGljLUtPSTgsIEN6ZWNoLCBEZXZhbmFnYXJpLAogICAgIER1dGNoLCBF bmdsaXNoLCBFc3BlcmFudG8sIEV0aGlvcGljLCBGcmVuY2gsIEdlb3JnaWFuLCBHZXJtYW4sCiAg ICAgR3JlZWssIEd1amFyYXRpLCBIZWJyZXcsIElQQSwgSXRhbGlhbiwgSmFwYW5lc2UsIEthbm5h ZGEsIEtobWVyLAogICAgIEtvcmVhbiwgTGFvLCBMYXRpbi0xLCBMYXRpbi0yLCBMYXRpbi0zLCBM YXRpbi00LCBMYXRpbi01LCBMYXRpbi02LAogICAgIExhdGluLTcsIExhdGluLTgsIExhdGluLTks IExhdHZpYW4sIExpdGh1YW5pYW4sIE1hbGF5YWxhbSwgT3JpeWEsCiAgICAgUGVyc2lhbiwgUG9s aXNoLCBQdW5qYWJpLCBSb21hbmlhbiwgUnVzc2lhbiwgU2luaGFsYSwgU2xvdmFrLAogICAgIFNs b3ZlbmlhbiwgU3BhbmlzaCwgU3dlZGlzaCwgVGFpVmlldCwgVGFqaWssIFRhbWlsLCBUZWx1Z3Us IFRoYWksCiAgICAgVGliZXRhbiwgVHVya2lzaCwgVVRGLTgsIFVrcmFpbmlhbiwgVmlldG5hbWVz ZSwgV2Vsc2gsIGFuZAogICAgIFdpbmRvd3MtMTI1NS4KCiAgIFRvIGRpc3BsYXkgdGhlIHNjcmlw dChzKSB1c2VkIGJ5IHlvdXIgbGFuZ3VhZ2UgZW52aXJvbm1lbnQgb24gYQpncmFwaGljYWwgZGlz cGxheSwgeW91IG5lZWQgdG8gaGF2ZSBzdWl0YWJsZSBmb250cy4gICpOb3RlIEZvbnRzZXRzOjos CmZvciBtb3JlIGRldGFpbHMgYWJvdXQgc2V0dGluZyB1cCB5b3VyIGZvbnRzLgoKICAgU29tZSBv cGVyYXRpbmcgc3lzdGVtcyBsZXQgeW91IHNwZWNpZnkgdGhlIGNoYXJhY3Rlci1zZXQgbG9jYWxl IHlvdQphcmUgdXNpbmcgYnkgc2V0dGluZyB0aGUgbG9jYWxlIGVudmlyb25tZW50IHZhcmlhYmxl cyDigJhMQ19BTEzigJksCuKAmExDX0NUWVBF4oCZLCBvciDigJhMQU5H4oCZLiAgKElmIG1vcmUg dGhhbiBvbmUgb2YgdGhlc2UgaXMgc2V0LCB0aGUgZmlyc3Qgb25lCnRoYXQgaXMgbm9uZW1wdHkg c3BlY2lmaWVzIHlvdXIgbG9jYWxlIGZvciB0aGlzIHB1cnBvc2UuKSAgRHVyaW5nCnN0YXJ0dXAs IEVtYWNzIGxvb2tzIHVwIHlvdXIgY2hhcmFjdGVyLXNldCBsb2NhbGXigJlzIG5hbWUgaW4gdGhl IHN5c3RlbQpsb2NhbGUgYWxpYXMgdGFibGUsIG1hdGNoZXMgaXRzIGNhbm9uaWNhbCBuYW1lIGFn YWluc3QgZW50cmllcyBpbiB0aGUKdmFsdWUgb2YgdGhlIHZhcmlhYmxlcyDigJhsb2NhbGUtY2hh cnNldC1sYW5ndWFnZS1uYW1lc+KAmSBhbmQK4oCYbG9jYWxlLWxhbmd1YWdlLW5hbWVz4oCZICh0 aGUgZm9ybWVyIG92ZXJyaWRlcyB0aGUgbGF0dGVyKSwgYW5kIHNlbGVjdHMKdGhlIGNvcnJlc3Bv bmRpbmcgbGFuZ3VhZ2UgZW52aXJvbm1lbnQgaWYgYSBtYXRjaCBpcyBmb3VuZC4gIEl0IGFsc28K YWRqdXN0cyB0aGUgZGlzcGxheSB0YWJsZSBhbmQgdGVybWluYWwgY29kaW5nIHN5c3RlbSwgdGhl IGxvY2FsZSBjb2RpbmcKc3lzdGVtLCB0aGUgcHJlZmVycmVkIGNvZGluZyBzeXN0ZW0gYXMgbmVl ZGVkIGZvciB0aGUgbG9jYWxlLCBhbmTigJRsYXN0CmJ1dCBub3QgbGVhc3TigJR0aGUgd2F5IEVt YWNzIGRlY29kZXMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgc2VudCBieSB5b3VyCmtleWJvYXJkLgoK ICAgSWYgeW91IG1vZGlmeSB0aGUg4oCYTENfQUxM4oCZLCDigJhMQ19DVFlQReKAmSwgb3Ig4oCY TEFOR+KAmSBlbnZpcm9ubWVudAp2YXJpYWJsZXMgd2hpbGUgcnVubmluZyBFbWFjcyAoYnkgdXNp bmcg4oCYTS14IHNldGVuduKAmSksIHlvdSBtYXkgd2FudCB0bwppbnZva2UgdGhlIOKAmHNldC1s b2NhbGUtZW52aXJvbm1lbnTigJkgY29tbWFuZCBhZnRlcndhcmRzIHRvIHJlYWRqdXN0IHRoZQps YW5ndWFnZSBlbnZpcm9ubWVudCBmcm9tIHRoZSBuZXcgbG9jYWxlLgoKICAgVGhlIOKAmHNldC1s b2NhbGUtZW52aXJvbm1lbnTigJkgZnVuY3Rpb24gbm9ybWFsbHkgdXNlcyB0aGUgcHJlZmVycmVk CmNvZGluZyBzeXN0ZW0gZXN0YWJsaXNoZWQgYnkgdGhlIGxhbmd1YWdlIGVudmlyb25tZW50IHRv IGRlY29kZSBzeXN0ZW0KbWVzc2FnZXMuICBCdXQgaWYgeW91ciBsb2NhbGUgbWF0Y2hlcyBhbiBl bnRyeSBpbiB0aGUgdmFyaWFibGUK4oCYbG9jYWxlLXByZWZlcnJlZC1jb2Rpbmctc3lzdGVtc+KA mSwgRW1hY3MgdXNlcyB0aGUgY29ycmVzcG9uZGluZyBjb2RpbmcKc3lzdGVtIGluc3RlYWQuICBG b3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSDigJhqYV9KUC5QQ0vigJkgbWF0Y2hlcwrigJhqYXBh bmVzZS1zaGlmdC1qaXPigJkgaW4g4oCYbG9jYWxlLXByZWZlcnJlZC1jb2Rpbmctc3lzdGVtc+KA mSwgRW1hY3MgdXNlcwp0aGF0IGVuY29kaW5nIGV2ZW4gdGhvdWdoIGl0IG1pZ2h0IG5vcm1hbGx5 IHVzZSDigJhqYXBhbmVzZS1pc28tOGJpdOKAmS4KCiAgIFlvdSBjYW4gb3ZlcnJpZGUgdGhlIGxh bmd1YWdlIGVudmlyb25tZW50IGNob3NlbiBhdCBzdGFydHVwIHdpdGgKZXhwbGljaXQgdXNlIG9m IHRoZSBjb21tYW5kIOKAmHNldC1sYW5ndWFnZS1lbnZpcm9ubWVudOKAmSwgb3Igd2l0aApjdXN0 b21pemF0aW9uIG9mIOKAmGN1cnJlbnQtbGFuZ3VhZ2UtZW52aXJvbm1lbnTigJkgaW4geW91ciBp bml0IGZpbGUuCgogICBUbyBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBlZmZlY3RzIG9m IGEgY2VydGFpbiBsYW5ndWFnZQplbnZpcm9ubWVudCBMQU5HLUVOViwgdXNlIHRoZSBjb21tYW5k IOKAmEMtaCBMIExBTkctRU5WIDxSRVQ+4oCZCijigJhkZXNjcmliZS1sYW5ndWFnZS1lbnZpcm9u bWVudOKAmSkuICBUaGlzIHRlbGxzIHlvdSB3aGljaCBsYW5ndWFnZXMgdGhpcwpsYW5ndWFnZSBl bnZpcm9ubWVudCBpcyB1c2VmdWwgZm9yLCBhbmQgbGlzdHMgdGhlIGNoYXJhY3RlciBzZXRzLCBj b2RpbmcKc3lzdGVtcywgYW5kIGlucHV0IG1ldGhvZHMgdGhhdCBnbyB3aXRoIGl0LiAgSXQgYWxz byBzaG93cyBzb21lIHNhbXBsZQp0ZXh0IHRvIGlsbHVzdHJhdGUgc2NyaXB0cyB1c2VkIGluIHRo aXMgbGFuZ3VhZ2UgZW52aXJvbm1lbnQuICBJZiB5b3UKZ2l2ZSBhbiBlbXB0eSBpbnB1dCBmb3Ig TEFORy1FTlYsIHRoaXMgY29tbWFuZCBkZXNjcmliZXMgdGhlIGNob3NlbgpsYW5ndWFnZSBlbnZp cm9ubWVudC4KCiAgIFlvdSBjYW4gY3VzdG9taXplIGFueSBsYW5ndWFnZSBlbnZpcm9ubWVudCB3 aXRoIHRoZSBub3JtYWwgaG9vawrigJhzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQtaG9va+KAmS4g IFRoZSBjb21tYW5kIOKAmHNldC1sYW5ndWFnZS1lbnZpcm9ubWVudOKAmQpydW5zIHRoYXQgaG9v ayBhZnRlciBzZXR0aW5nIHVwIHRoZSBuZXcgbGFuZ3VhZ2UgZW52aXJvbm1lbnQuICBUaGUgaG9v awpmdW5jdGlvbnMgY2FuIHRlc3QgZm9yIGEgc3BlY2lmaWMgbGFuZ3VhZ2UgZW52aXJvbm1lbnQg YnkgY2hlY2tpbmcgdGhlCnZhcmlhYmxlIOKAmGN1cnJlbnQtbGFuZ3VhZ2UtZW52aXJvbm1lbnTi gJkuICBUaGlzIGhvb2sgaXMgd2hlcmUgeW91IHNob3VsZApwdXQgbm9uLWRlZmF1bHQgc2V0dGlu Z3MgZm9yIHNwZWNpZmljIGxhbmd1YWdlIGVudmlyb25tZW50cywgc3VjaCBhcwpjb2Rpbmcgc3lz dGVtcyBmb3Iga2V5Ym9hcmQgaW5wdXQgYW5kIHRlcm1pbmFsIG91dHB1dCwgdGhlIGRlZmF1bHQg aW5wdXQKbWV0aG9kLCBldGMuCgogICBCZWZvcmUgaXQgc3RhcnRzIHRvIHNldCB1cCB0aGUgbmV3 IGxhbmd1YWdlIGVudmlyb25tZW50LArigJhzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnTigJkgZmly c3QgcnVucyB0aGUgaG9vawrigJhleGl0LWxhbmd1YWdlLWVudmlyb25tZW50LWhvb2vigJkuICBU aGlzIGhvb2sgaXMgdXNlZnVsIGZvciB1bmRvaW5nCmN1c3RvbWl6YXRpb25zIHRoYXQgd2VyZSBt YWRlIHdpdGgg4oCYc2V0LWxhbmd1YWdlLWVudmlyb25tZW50LWhvb2vigJkuICBGb3IKaW5zdGFu Y2UsIGlmIHlvdSBzZXQgdXAgYSBzcGVjaWFsIGtleSBiaW5kaW5nIGluIGEgc3BlY2lmaWMgbGFu Z3VhZ2UKZW52aXJvbm1lbnQgdXNpbmcg4oCYc2V0LWxhbmd1YWdlLWVudmlyb25tZW50LWhvb2vi gJksIHlvdSBzaG91bGQgc2V0IHVwCuKAmGV4aXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQtaG9va+KA mSB0byByZXN0b3JlIHRoZSBub3JtYWwgYmluZGluZyBmb3IgdGhhdAprZXkuCgoKKiogMjIuMyBJ bnB1dCBNZXRob2RzCgpBbiAiaW5wdXQgbWV0aG9kIiBpcyBhIGtpbmQgb2YgY2hhcmFjdGVyIGNv bnZlcnNpb24gZGVzaWduZWQKc3BlY2lmaWNhbGx5IGZvciBpbnRlcmFjdGl2ZSBpbnB1dC4gIElu IEVtYWNzLCB0eXBpY2FsbHkgZWFjaCBsYW5ndWFnZQpoYXMgaXRzIG93biBpbnB1dCBtZXRob2Q7 IHNvbWV0aW1lcyBzZXZlcmFsIGxhbmd1YWdlcyB0aGF0IHVzZSB0aGUgc2FtZQpjaGFyYWN0ZXJz IGNhbiBzaGFyZSBvbmUgaW5wdXQgbWV0aG9kLiAgQSBmZXcgbGFuZ3VhZ2VzIHN1cHBvcnQgc2V2 ZXJhbAppbnB1dCBtZXRob2RzLgoKICAgVGhlIHNpbXBsZXN0IGtpbmQgb2YgaW5wdXQgbWV0aG9k IHdvcmtzIGJ5IG1hcHBpbmcgQVNDSUkgbGV0dGVycyBpbnRvCmFub3RoZXIgYWxwaGFiZXQ7IHRo aXMgYWxsb3dzIHlvdSB0byB1c2Ugb25lIG90aGVyIGFscGhhYmV0IGluc3RlYWQgb2YKQVNDSUku ICBUaGUgR3JlZWsgYW5kIFJ1c3NpYW4gaW5wdXQgbWV0aG9kcyB3b3JrIHRoaXMgd2F5LgoKICAg QSBtb3JlIHBvd2VyZnVsIHRlY2huaXF1ZSBpcyBjb21wb3NpdGlvbjogY29udmVydGluZyBzZXF1 ZW5jZXMgb2YKY2hhcmFjdGVycyBpbnRvIG9uZSBsZXR0ZXIuICBNYW55IEV1cm9wZWFuIGlucHV0 IG1ldGhvZHMgdXNlIGNvbXBvc2l0aW9uCnRvIHByb2R1Y2UgYSBzaW5nbGUgbm9uLUFTQ0lJIGxl dHRlciBmcm9tIGEgc2VxdWVuY2UgdGhhdCBjb25zaXN0cyBvZiBhCmxldHRlciBmb2xsb3dlZCBi eSBhY2NlbnQgY2hhcmFjdGVycyAob3IgdmljZSB2ZXJzYSkuICBGb3IgZXhhbXBsZSwgc29tZQpt ZXRob2RzIGNvbnZlcnQgdGhlIHNlcXVlbmNlIOKAmG8gXuKAmSBpbnRvIGEgc2luZ2xlIGFjY2Vu dGVkIGxldHRlci4gIFRoZXNlCmlucHV0IG1ldGhvZHMgaGF2ZSBubyBzcGVjaWFsIGNvbW1hbmRz IG9mIHRoZWlyIG93bjsgYWxsIHRoZXkgZG8gaXMKY29tcG9zZSBzZXF1ZW5jZXMgb2YgcHJpbnRp bmcgY2hhcmFjdGVycy4KCiAgIFRoZSBpbnB1dCBtZXRob2RzIGZvciBzeWxsYWJpYyBzY3JpcHRz IHR5cGljYWxseSB1c2UgbWFwcGluZyBmb2xsb3dlZApieSBjb21wb3NpdGlvbi4gIFRoZSBpbnB1 dCBtZXRob2RzIGZvciBUaGFpIGFuZCBLb3JlYW4gd29yayB0aGlzIHdheS4KRmlyc3QsIGxldHRl cnMgYXJlIG1hcHBlZCBpbnRvIHN5bWJvbHMgZm9yIHBhcnRpY3VsYXIgc291bmRzIG9yIHRvbmUK bWFya3M7IHRoZW4sIHNlcXVlbmNlcyBvZiB0aGVzZSB0aGF0IG1ha2UgdXAgYSB3aG9sZSBzeWxs YWJsZSBhcmUgbWFwcGVkCmludG8gb25lIHN5bGxhYmxlIHNpZ24uCgogICBDaGluZXNlIGFuZCBK YXBhbmVzZSByZXF1aXJlIG1vcmUgY29tcGxleCBtZXRob2RzLiAgSW4gQ2hpbmVzZSBpbnB1dApt ZXRob2RzLCBmaXJzdCB5b3UgZW50ZXIgdGhlIHBob25ldGljIHNwZWxsaW5nIG9mIGEgQ2hpbmVz ZSB3b3JkIChpbgppbnB1dCBtZXRob2Qg4oCYY2hpbmVzZS1weeKAmSwgYW1vbmcgb3RoZXJzKSwg b3IgYSBzZXF1ZW5jZSBvZiBwb3J0aW9ucyBvZgp0aGUgY2hhcmFjdGVyIChpbnB1dCBtZXRob2Rz IOKAmGNoaW5lc2UtNGNvcm5lcuKAmSBhbmQg4oCYY2hpbmVzZS1zd+KAmSwgYW5kCm90aGVycyku ICBPbmUgaW5wdXQgc2VxdWVuY2UgdHlwaWNhbGx5IGNvcnJlc3BvbmRzIHRvIG1hbnkgcG9zc2li bGUKQ2hpbmVzZSBjaGFyYWN0ZXJzLiAgWW91IHNlbGVjdCB0aGUgb25lIHlvdSBtZWFuIHVzaW5n IGtleXMgc3VjaCBhcwrigJhDLWbigJksIOKAmEMtYuKAmSwg4oCYQy1u4oCZLCDigJhDLXDigJkg KG9yIHRoZSBhcnJvdyBrZXlzKSwgYW5kIGRpZ2l0cywgd2hpY2ggaGF2ZQpzcGVjaWFsIG1lYW5p bmdzIGluIHRoaXMgc2l0dWF0aW9uLgoKICAgVGhlIHBvc3NpYmxlIGNoYXJhY3RlcnMgYXJlIGNv bmNlcHR1YWxseSBhcnJhbmdlZCBpbiBzZXZlcmFsIHJvd3MsCndpdGggZWFjaCByb3cgaG9sZGlu ZyB1cCB0byAxMCBhbHRlcm5hdGl2ZXMuICBOb3JtYWxseSwgRW1hY3MgZGlzcGxheXMKanVzdCBv bmUgcm93IGF0IGEgdGltZSwgaW4gdGhlIGVjaG8gYXJlYTsg4oCYKEkvSinigJkgYXBwZWFycyBh dCB0aGUKYmVnaW5uaW5nLCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgaXMgdGhlIEl0aCByb3cgb3V0 IG9mIGEgdG90YWwgb2YgSgpyb3dzLiAgVHlwZSDigJhDLW7igJkgb3Ig4oCYQy1w4oCZIHRvIGRp c3BsYXkgdGhlIG5leHQgcm93IG9yIHRoZSBwcmV2aW91cyByb3cuCgogICBUeXBlIOKAmEMtZuKA mSBhbmQg4oCYQy1i4oCZIHRvIG1vdmUgZm9yd2FyZCBhbmQgYmFja3dhcmQgYW1vbmcgdGhlCmFs dGVybmF0aXZlcyBpbiB0aGUgY3VycmVudCByb3cuICBBcyB5b3UgZG8gdGhpcywgRW1hY3MgaGln aGxpZ2h0cyB0aGUKY3VycmVudCBhbHRlcm5hdGl2ZSB3aXRoIGEgc3BlY2lhbCBjb2xvcjsgdHlw ZSDigJhDLTxTUEM+4oCZIHRvIHNlbGVjdCB0aGUKY3VycmVudCBhbHRlcm5hdGl2ZSBhbmQgdXNl IGl0IGFzIGlucHV0LiAgVGhlIGFsdGVybmF0aXZlcyBpbiB0aGUgcm93CmFyZSBhbHNvIG51bWJl cmVkOyB0aGUgbnVtYmVyIGFwcGVhcnMgYmVmb3JlIHRoZSBhbHRlcm5hdGl2ZS4gIFR5cGluZyBh Cm51bWJlciBzZWxlY3RzIHRoZSBhc3NvY2lhdGVkIGFsdGVybmF0aXZlIG9mIHRoZSBjdXJyZW50 IHJvdyBhbmQgdXNlcyBpdAphcyBpbnB1dC4KCiAgIDxUQUI+IGluIHRoZXNlIENoaW5lc2UgaW5w dXQgbWV0aG9kcyBkaXNwbGF5cyBhIGJ1ZmZlciBzaG93aW5nIGFsbAp0aGUgcG9zc2libGUgY2hh cmFjdGVycyBhdCBvbmNlOyB0aGVuIGNsaWNraW5nIOKAmG1vdXNlLTLigJkgb24gb25lIG9mIHRo ZW0Kc2VsZWN0cyB0aGF0IGFsdGVybmF0aXZlLiAgVGhlIGtleXMg4oCYQy1m4oCZLCDigJhDLWLi gJksIOKAmEMtbuKAmSwg4oCYQy1w4oCZLCBhbmQKZGlnaXRzIGNvbnRpbnVlIHRvIHdvcmsgYXMg dXN1YWwsIGJ1dCB0aGV5IGRvIHRoZSBoaWdobGlnaHRpbmcgaW4gdGhlCmJ1ZmZlciBzaG93aW5n IHRoZSBwb3NzaWJsZSBjaGFyYWN0ZXJzLCByYXRoZXIgdGhhbiBpbiB0aGUgZWNobyBhcmVhLgoK ICAgSW4gSmFwYW5lc2UgaW5wdXQgbWV0aG9kcywgZmlyc3QgeW91IGlucHV0IGEgd2hvbGUgd29y ZCB1c2luZwpwaG9uZXRpYyBzcGVsbGluZzsgdGhlbiwgYWZ0ZXIgdGhlIHdvcmQgaXMgaW4gdGhl IGJ1ZmZlciwgRW1hY3MgY29udmVydHMKaXQgaW50byBvbmUgb3IgbW9yZSBjaGFyYWN0ZXJzIHVz aW5nIGEgbGFyZ2UgZGljdGlvbmFyeS4gIE9uZSBwaG9uZXRpYwpzcGVsbGluZyBjb3JyZXNwb25k cyB0byBhIG51bWJlciBvZiBkaWZmZXJlbnQgSmFwYW5lc2Ugd29yZHM7IHRvIHNlbGVjdApvbmUg b2YgdGhlbSwgdXNlIOKAmEMtbuKAmSBhbmQg4oCYQy1w4oCZIHRvIGN5Y2xlIHRocm91Z2ggdGhl IGFsdGVybmF0aXZlcy4KCiAgIFNvbWV0aW1lcyBpdCBpcyB1c2VmdWwgdG8gY3V0IG9mZiBpbnB1 dCBtZXRob2QgcHJvY2Vzc2luZyBzbyB0aGF0IHRoZQpjaGFyYWN0ZXJzIHlvdSBoYXZlIGp1c3Qg ZW50ZXJlZCB3aWxsIG5vdCBjb21iaW5lIHdpdGggc3Vic2VxdWVudApjaGFyYWN0ZXJzLiAgRm9y IGV4YW1wbGUsIGluIGlucHV0IG1ldGhvZCDigJhsYXRpbi0xLXBvc3RmaXjigJksIHRoZQpzZXF1 ZW5jZSDigJhvIF7igJkgY29tYmluZXMgdG8gZm9ybSBhbiDigJhv4oCZIHdpdGggYW4gYWNjZW50 LiAgV2hhdCBpZiB5b3Ugd2FudAp0byBlbnRlciB0aGVtIGFzIHNlcGFyYXRlIGNoYXJhY3RlcnM/ CgogICBPbmUgd2F5IGlzIHRvIHR5cGUgdGhlIGFjY2VudCB0d2ljZTsgdGhpcyBpcyBhIHNwZWNp YWwgZmVhdHVyZSBmb3IKZW50ZXJpbmcgdGhlIHNlcGFyYXRlIGxldHRlciBhbmQgYWNjZW50LiAg Rm9yIGV4YW1wbGUsIOKAmG8gXiBe4oCZIGdpdmVzIHlvdQp0aGUgdHdvIGNoYXJhY3RlcnMg4oCY b17igJkuICBBbm90aGVyIHdheSBpcyB0byB0eXBlIGFub3RoZXIgbGV0dGVyIGFmdGVyCnRoZSDi gJhv4oCZ4oCUc29tZXRoaW5nIHRoYXQgd29u4oCZdCBjb21iaW5lIHdpdGggdGhhdOKAlGFuZCBp bW1lZGlhdGVseSBkZWxldGUKaXQuICBGb3IgZXhhbXBsZSwgeW91IGNvdWxkIHR5cGUg4oCYbyBv IDxERUw+IF7igJkgdG8gZ2V0IHNlcGFyYXRlIOKAmG/igJkgYW5kCuKAmF7igJkuICBBbm90aGVy IG1ldGhvZCwgbW9yZSBnZW5lcmFsIGJ1dCBub3QgcXVpdGUgYXMgZWFzeSB0byB0eXBlLCBpcyB0 bwp1c2Ug4oCYQy1cIEMtXOKAmSBiZXR3ZWVuIHR3byBjaGFyYWN0ZXJzIHRvIHN0b3AgdGhlbSBm cm9tIGNvbWJpbmluZy4gIFRoaXMKaXMgdGhlIGNvbW1hbmQg4oCYQy1c4oCZICjigJh0b2dnbGUt aW5wdXQtbWV0aG9k4oCZKSB1c2VkIHR3aWNlLiAgKk5vdGUgU2VsZWN0CklucHV0IE1ldGhvZDo6 LgoKICAg4oCYQy1cIEMtXOKAmSBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpbnNpZGUgYW4gaW5jcmVt ZW50YWwgc2VhcmNoLCBiZWNhdXNlCml0IHN0b3BzIHdhaXRpbmcgZm9yIG1vcmUgY2hhcmFjdGVy cyB0byBjb21iaW5lLCBhbmQgc3RhcnRzIHNlYXJjaGluZwpmb3Igd2hhdCB5b3UgaGF2ZSBhbHJl YWR5IGVudGVyZWQuCgogICBUbyBmaW5kIG91dCBob3cgdG8gaW5wdXQgdGhlIGNoYXJhY3RlciBh ZnRlciBwb2ludCB1c2luZyB0aGUgY3VycmVudAppbnB1dCBtZXRob2QsIHR5cGUg4oCYQy11IEMt eCA94oCZLiAgKk5vdGUgUG9zaXRpb24gSW5mbzo6LgoKICAgVGhlIHZhcmlhYmxlcyDigJhpbnB1 dC1tZXRob2QtaGlnaGxpZ2h0LWZsYWfigJkgYW5kCuKAmGlucHV0LW1ldGhvZC12ZXJib3NlLWZs YWfigJkgY29udHJvbCBob3cgaW5wdXQgbWV0aG9kcyBleHBsYWluIHdoYXQgaXMKaGFwcGVuaW5n LiAgSWYg4oCYaW5wdXQtbWV0aG9kLWhpZ2hsaWdodC1mbGFn4oCZIGlzIG5vbi3igJhuaWzigJks IHRoZSBwYXJ0aWFsCnNlcXVlbmNlIGlzIGhpZ2hsaWdodGVkIGluIHRoZSBidWZmZXIgKGZvciBt b3N0IGlucHV0IG1ldGhvZHPigJRzb21lCmRpc2FibGUgdGhpcyBmZWF0dXJlKS4gIElmIOKAmGlu cHV0LW1ldGhvZC12ZXJib3NlLWZsYWfigJkgaXMgbm9uLeKAmG5pbOKAmSwgdGhlCmxpc3Qgb2Yg cG9zc2libGUgY2hhcmFjdGVycyB0byB0eXBlIG5leHQgaXMgZGlzcGxheWVkIGluIHRoZSBlY2hv IGFyZWEKKGJ1dCBub3Qgd2hlbiB5b3UgYXJlIGluIHRoZSBtaW5pYnVmZmVyKS4KCiAgIFlvdSBj YW4gbW9kaWZ5IGhvdyBhbiBpbnB1dCBtZXRob2Qgd29ya3MgYnkgbWFraW5nIHlvdXIgY2hhbmdl cyBpbiBhCmZ1bmN0aW9uIHRoYXQgeW91IGFkZCB0byB0aGUgaG9vayB2YXJpYWJsZSDigJhxdWFp bC1hY3RpdmF0ZS1ob29r4oCZLiAgKk5vdGUKSG9va3M6Oi4gIEZvciBleGFtcGxlLCB5b3UgY2Fu IHJlZGVmaW5lIHNvbWUgb2YgdGhlIGlucHV0IG1ldGhvZOKAmXMga2V5cwpieSBkZWZpbmluZyBr ZXkgYmluZGluZ3MgaW4gdGhlIGtleW1hcCByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24K4oCYcXVh aWwtdHJhbnNsYXRpb24ta2V5bWFw4oCZLCB1c2luZyDigJhkZWZpbmUta2V54oCZLiAgKk5vdGUg SW5pdCBSZWJpbmRpbmc6Oi4KCiAgIEFub3RoZXIgZmFjaWxpdHkgZm9yIHR5cGluZyBjaGFyYWN0 ZXJzIG5vdCBvbiB5b3VyIGtleWJvYXJkIGlzIGJ5CnVzaW5nIOKAmEMteCA4IDxSRVQ+4oCZICji gJhpbnNlcnQtY2hhcuKAmSkgdG8gaW5zZXJ0IGEgc2luZ2xlIGNoYXJhY3RlciBiYXNlZApvbiBp dHMgVW5pY29kZSBuYW1lIG9yIGNvZGUtcG9pbnQ7IHNlZSAqbm90ZSBJbnNlcnRpbmcgVGV4dDo6 LgoKCioqIDIyLjQgU2VsZWN0aW5nIGFuIElucHV0IE1ldGhvZAoK4oCYQy1c4oCZCiAgICAgRW5h YmxlIG9yIGRpc2FibGUgdXNlIG9mIHRoZSBzZWxlY3RlZCBpbnB1dCBtZXRob2QKICAgICAo4oCY dG9nZ2xlLWlucHV0LW1ldGhvZOKAmSkuCgrigJhDLXggPFJFVD4gQy1cIE1FVEhPRCA8UkVUPuKA mQogICAgIFNlbGVjdCBhIG5ldyBpbnB1dCBtZXRob2QgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlcgog ICAgICjigJhzZXQtaW5wdXQtbWV0aG9k4oCZKS4KCuKAmEMtaCBJIE1FVEhPRCA8UkVUPuKAmQri gJhDLWggQy1cIE1FVEhPRCA8UkVUPuKAmQogICAgIERlc2NyaWJlIHRoZSBpbnB1dCBtZXRob2Qg TUVUSE9EICjigJhkZXNjcmliZS1pbnB1dC1tZXRob2TigJkpLiAgQnkKICAgICBkZWZhdWx0LCBp dCBkZXNjcmliZXMgdGhlIGN1cnJlbnQgaW5wdXQgbWV0aG9kIChpZiBhbnkpLiAgVGhpcwogICAg IGRlc2NyaXB0aW9uIHNob3VsZCBnaXZlIHlvdSB0aGUgZnVsbCBkZXRhaWxzIG9mIGhvdyB0byB1 c2UgYW55CiAgICAgcGFydGljdWxhciBpbnB1dCBtZXRob2QuCgrigJhNLXggbGlzdC1pbnB1dC1t ZXRob2Rz4oCZCiAgICAgRGlzcGxheSBhIGxpc3Qgb2YgYWxsIHRoZSBzdXBwb3J0ZWQgaW5wdXQg bWV0aG9kcy4KCiAgIFRvIGNob29zZSBhbiBpbnB1dCBtZXRob2QgZm9yIHRoZSBjdXJyZW50IGJ1 ZmZlciwgdXNlIOKAmEMteCA8UkVUPiBDLVzigJkKKOKAmHNldC1pbnB1dC1tZXRob2TigJkpLiAg VGhpcyBjb21tYW5kIHJlYWRzIHRoZSBpbnB1dCBtZXRob2QgbmFtZSBmcm9tIHRoZQptaW5pYnVm ZmVyOyB0aGUgbmFtZSBub3JtYWxseSBzdGFydHMgd2l0aCB0aGUgbGFuZ3VhZ2UgZW52aXJvbm1l bnQgdGhhdAppdCBpcyBtZWFudCB0byBiZSB1c2VkIHdpdGguICBUaGUgdmFyaWFibGUg4oCYY3Vy cmVudC1pbnB1dC1tZXRob2TigJkKcmVjb3JkcyB3aGljaCBpbnB1dCBtZXRob2QgaXMgc2VsZWN0 ZWQuCgogICBJbnB1dCBtZXRob2RzIHVzZSB2YXJpb3VzIHNlcXVlbmNlcyBvZiBBU0NJSSBjaGFy YWN0ZXJzIHRvIHN0YW5kIGZvcgpub24tQVNDSUkgY2hhcmFjdGVycy4gIFNvbWV0aW1lcyBpdCBp cyB1c2VmdWwgdG8gdHVybiBvZmYgdGhlIGlucHV0Cm1ldGhvZCB0ZW1wb3JhcmlseS4gIFRvIGRv IHRoaXMsIHR5cGUg4oCYQy1c4oCZICjigJh0b2dnbGUtaW5wdXQtbWV0aG9k4oCZKS4gIFRvCnJl ZW5hYmxlIHRoZSBpbnB1dCBtZXRob2QsIHR5cGUg4oCYQy1c4oCZIGFnYWluLgoKICAgSWYgeW91 IHR5cGUg4oCYQy1c4oCZIGFuZCB5b3UgaGF2ZSBub3QgeWV0IHNlbGVjdGVkIGFuIGlucHV0IG1l dGhvZCwgaXQKcHJvbXB0cyB5b3UgdG8gc3BlY2lmeSBvbmUuICBUaGlzIGhhcyB0aGUgc2FtZSBl ZmZlY3QgYXMgdXNpbmcg4oCYQy14CjxSRVQ+IEMtXOKAmSB0byBzcGVjaWZ5IGFuIGlucHV0IG1l dGhvZC4KCiAgIFdoZW4gaW52b2tlZCB3aXRoIGEgbnVtZXJpYyBhcmd1bWVudCwgYXMgaW4g4oCY Qy11IEMtXOKAmSwK4oCYdG9nZ2xlLWlucHV0LW1ldGhvZOKAmSBhbHdheXMgcHJvbXB0cyB5b3Ug Zm9yIGFuIGlucHV0IG1ldGhvZCwgc3VnZ2VzdGluZwp0aGUgbW9zdCByZWNlbnRseSBzZWxlY3Rl ZCBvbmUgYXMgdGhlIGRlZmF1bHQuCgogICBTZWxlY3RpbmcgYSBsYW5ndWFnZSBlbnZpcm9ubWVu dCBzcGVjaWZpZXMgYSBkZWZhdWx0IGlucHV0IG1ldGhvZCBmb3IKdXNlIGluIHZhcmlvdXMgYnVm ZmVycy4gIFdoZW4geW91IGhhdmUgYSBkZWZhdWx0IGlucHV0IG1ldGhvZCwgeW91IGNhbgpzZWxl Y3QgaXQgaW4gdGhlIGN1cnJlbnQgYnVmZmVyIGJ5IHR5cGluZyDigJhDLVzigJkuICBUaGUgdmFy aWFibGUK4oCYZGVmYXVsdC1pbnB1dC1tZXRob2TigJkgc3BlY2lmaWVzIHRoZSBkZWZhdWx0IGlu cHV0IG1ldGhvZCAo4oCYbmls4oCZIG1lYW5zCnRoZXJlIGlzIG5vbmUpLgoKICAgSW4gc29tZSBs YW5ndWFnZSBlbnZpcm9ubWVudHMsIHdoaWNoIHN1cHBvcnQgc2V2ZXJhbCBkaWZmZXJlbnQgaW5w dXQKbWV0aG9kcywgeW91IG1pZ2h0IHdhbnQgdG8gdXNlIGFuIGlucHV0IG1ldGhvZCBkaWZmZXJl bnQgZnJvbSB0aGUKZGVmYXVsdCBjaG9zZW4gYnkg4oCYc2V0LWxhbmd1YWdlLWVudmlyb25tZW50 4oCZLiAgWW91IGNhbiBpbnN0cnVjdCBFbWFjcyB0bwpzZWxlY3QgYSBkaWZmZXJlbnQgZGVmYXVs dCBpbnB1dCBtZXRob2QgZm9yIGEgY2VydGFpbiBsYW5ndWFnZQplbnZpcm9ubWVudCwgaWYgeW91 IHdpc2gsIGJ5IHVzaW5nIOKAmHNldC1sYW5ndWFnZS1lbnZpcm9ubWVudC1ob29r4oCZCigqbm90 ZSBzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQtaG9vazogTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLiku ICBGb3IKZXhhbXBsZToKCiAgICAgKGRlZnVuIG15LWNoaW5lc2Utc2V0dXAgKCkKICAgICAgICJT ZXQgdXAgbXkgcHJpdmF0ZSBDaGluZXNlIGVudmlyb25tZW50LiIKICAgICAgIChpZiAoZXF1YWwg Y3VycmVudC1sYW5ndWFnZS1lbnZpcm9ubWVudCAiQ2hpbmVzZS1HQiIpCiAgICAgICAgICAgKHNl dHEgZGVmYXVsdC1pbnB1dC1tZXRob2QgImNoaW5lc2UtdG9uZXB5IikpKQogICAgIChhZGQtaG9v ayAnc2V0LWxhbmd1YWdlLWVudmlyb25tZW50LWhvb2sgJ215LWNoaW5lc2Utc2V0dXApCgpUaGlz IHNldHMgdGhlIGRlZmF1bHQgaW5wdXQgbWV0aG9kIHRvIGJlIOKAmGNoaW5lc2UtdG9uZXB54oCZ IHdoZW5ldmVyIHlvdQpjaG9vc2UgYSBDaGluZXNlLUdCIGxhbmd1YWdlIGVudmlyb25tZW50LgoK ICAgWW91IGNhbiBpbnN0cnVjdCBFbWFjcyB0byBhY3RpdmF0ZSBhIGNlcnRhaW4gaW5wdXQgbWV0 aG9kCmF1dG9tYXRpY2FsbHkuICBGb3IgZXhhbXBsZToKCiAgICAgKGFkZC1ob29rICd0ZXh0LW1v ZGUtaG9vawogICAgICAgKGxhbWJkYSAoKSAoc2V0LWlucHV0LW1ldGhvZCAiZ2VybWFuLXByZWZp eCIpKSkKClRoaXMgYXV0b21hdGljYWxseSBhY3RpdmF0ZXMgdGhlIGlucHV0IG1ldGhvZCDigJhn ZXJtYW4tcHJlZml44oCZIGluIFRleHQKbW9kZS4KCiAgIFNvbWUgaW5wdXQgbWV0aG9kcyBmb3Ig YWxwaGFiZXRpYyBzY3JpcHRzIHdvcmsgYnkgKGluIGVmZmVjdCkKcmVtYXBwaW5nIHRoZSBrZXli b2FyZCB0byBlbXVsYXRlIHZhcmlvdXMga2V5Ym9hcmQgbGF5b3V0cyBjb21tb25seSB1c2VkCmZv ciB0aG9zZSBzY3JpcHRzLiAgSG93IHRvIGRvIHRoaXMgcmVtYXBwaW5nIHByb3Blcmx5IGRlcGVu ZHMgb24geW91cgphY3R1YWwga2V5Ym9hcmQgbGF5b3V0LiAgVG8gc3BlY2lmeSB3aGljaCBsYXlv dXQgeW91ciBrZXlib2FyZCBoYXMsIHVzZQp0aGUgY29tbWFuZCDigJhNLXggcXVhaWwtc2V0LWtl eWJvYXJkLWxheW91dOKAmS4KCiAgIFlvdSBjYW4gdXNlIHRoZSBjb21tYW5kIOKAmE0teCBxdWFp bC1zaG93LWtleeKAmSB0byBzaG93IHdoYXQga2V5IChvciBrZXkKc2VxdWVuY2UpIHRvIHR5cGUg aW4gb3JkZXIgdG8gaW5wdXQgdGhlIGNoYXJhY3RlciBmb2xsb3dpbmcgcG9pbnQsIHVzaW5nCnRo ZSBzZWxlY3RlZCBrZXlib2FyZCBsYXlvdXQuICBUaGUgY29tbWFuZCDigJhDLXUgQy14ID3igJkg YWxzbyBzaG93cyB0aGF0CmluZm9ybWF0aW9uLCBpbiBhZGRpdGlvbiB0byBvdGhlciBpbmZvcm1h dGlvbiBhYm91dCB0aGUgY2hhcmFjdGVyLgoKICAg4oCYTS14IGxpc3QtaW5wdXQtbWV0aG9kc+KA mSBkaXNwbGF5cyBhIGxpc3Qgb2YgYWxsIHRoZSBzdXBwb3J0ZWQgaW5wdXQKbWV0aG9kcy4gIFRo ZSBsaXN0IGdpdmVzIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggaW5wdXQgbWV0aG9kLCBpbmNsdWRp bmcKdGhlIHN0cmluZyB0aGF0IHN0YW5kcyBmb3IgaXQgaW4gdGhlIG1vZGUgbGluZS4KCgoqKiAy Mi41IENvZGluZyBTeXN0ZW1zCgpVc2VycyBvZiB2YXJpb3VzIGxhbmd1YWdlcyBoYXZlIGVzdGFi bGlzaGVkIG1hbnkgbW9yZS1vci1sZXNzIHN0YW5kYXJkCmNvZGluZyBzeXN0ZW1zIGZvciByZXBy ZXNlbnRpbmcgdGhlbS4gIEVtYWNzIGRvZXMgbm90IHVzZSB0aGVzZSBjb2RpbmcKc3lzdGVtcyBp bnRlcm5hbGx5OyBpbnN0ZWFkLCBpdCBjb252ZXJ0cyBmcm9tIHZhcmlvdXMgY29kaW5nIHN5c3Rl bXMgdG8KaXRzIG93biBzeXN0ZW0gd2hlbiByZWFkaW5nIGRhdGEsIGFuZCBjb252ZXJ0cyB0aGUg aW50ZXJuYWwgY29kaW5nCnN5c3RlbSB0byBvdGhlciBjb2Rpbmcgc3lzdGVtcyB3aGVuIHdyaXRp bmcgZGF0YS4gIENvbnZlcnNpb24gaXMKcG9zc2libGUgaW4gcmVhZGluZyBvciB3cml0aW5nIGZp bGVzLCBpbiBzZW5kaW5nIG9yIHJlY2VpdmluZyBmcm9tIHRoZQp0ZXJtaW5hbCwgYW5kIGluIGV4 Y2hhbmdpbmcgZGF0YSB3aXRoIHN1YnByb2Nlc3Nlcy4KCiAgIEVtYWNzIGFzc2lnbnMgYSBuYW1l IHRvIGVhY2ggY29kaW5nIHN5c3RlbS4gIE1vc3QgY29kaW5nIHN5c3RlbXMgYXJlCnVzZWQgZm9y IG9uZSBsYW5ndWFnZSwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb2Rpbmcgc3lzdGVtIHN0YXJ0cyB3 aXRoIHRoZQpsYW5ndWFnZSBuYW1lLiAgU29tZSBjb2Rpbmcgc3lzdGVtcyBhcmUgdXNlZCBmb3Ig c2V2ZXJhbCBsYW5ndWFnZXM7CnRoZWlyIG5hbWVzIHVzdWFsbHkgc3RhcnQgd2l0aCDigJhpc2/i gJkuICBUaGVyZSBhcmUgYWxzbyBzcGVjaWFsIGNvZGluZwpzeXN0ZW1zLCBzdWNoIGFzIOKAmG5v LWNvbnZlcnNpb27igJksIOKAmHJhdy10ZXh04oCZLCBhbmQg4oCYZW1hY3MtaW50ZXJuYWzigJku CgogICBBIHNwZWNpYWwgY2xhc3Mgb2YgY29kaW5nIHN5c3RlbXMsIGNvbGxlY3RpdmVseSBrbm93 biBhcyAiY29kZXBhZ2VzIiwKaXMgZGVzaWduZWQgdG8gc3VwcG9ydCB0ZXh0IGVuY29kZWQgYnkg TVMtV2luZG93cyBhbmQgTVMtRE9TIHNvZnR3YXJlLgpUaGUgbmFtZXMgb2YgdGhlc2UgY29kaW5n IHN5c3RlbXMgYXJlIOKAmGNwTk5OTuKAmSwgd2hlcmUgTk5OTiBpcyBhIDMtIG9yCjQtZGlnaXQg bnVtYmVyIG9mIHRoZSBjb2RlcGFnZS4gIFlvdSBjYW4gdXNlIHRoZXNlIGVuY29kaW5ncyBqdXN0 IGxpa2UKYW55IG90aGVyIGNvZGluZyBzeXN0ZW07IGZvciBleGFtcGxlLCB0byB2aXNpdCBhIGZp bGUgZW5jb2RlZCBpbgpjb2RlcGFnZSA4NTAsIHR5cGUg4oCYQy14IDxSRVQ+IGMgY3A4NTAgPFJF VD4gQy14IEMtZiBGSUxFTkFNRSA8UkVUPuKAmS4KCiAgIEluIGFkZGl0aW9uIHRvIGNvbnZlcnRp bmcgdmFyaW91cyByZXByZXNlbnRhdGlvbnMgb2Ygbm9uLUFTQ0lJCmNoYXJhY3RlcnMsIGEgY29k aW5nIHN5c3RlbSBjYW4gcGVyZm9ybSBlbmQtb2YtbGluZSBjb252ZXJzaW9uLiAgRW1hY3MKaGFu ZGxlcyB0aHJlZSBkaWZmZXJlbnQgY29udmVudGlvbnMgZm9yIGhvdyB0byBzZXBhcmF0ZSBsaW5l cyBpbiBhIGZpbGU6Cm5ld2xpbmUgKFVuaXgpLCBjYXJyaWFnZSByZXR1cm4gZm9sbG93ZWQgYnkg bGluZWZlZWQgKERPUyksIGFuZCBqdXN0CmNhcnJpYWdlIHJldHVybiAoTWFjKS4KCuKAmEMtaCBD IENPRElORyA8UkVUPuKAmQogICAgIERlc2NyaWJlIGNvZGluZyBzeXN0ZW0gQ09ESU5HICjigJhk ZXNjcmliZS1jb2Rpbmctc3lzdGVt4oCZKS4KCuKAmEMtaCBDIDxSRVQ+4oCZCiAgICAgRGVzY3Jp YmUgdGhlIGNvZGluZyBzeXN0ZW1zIGN1cnJlbnRseSBpbiB1c2UKICAgICAo4oCYZGVzY3JpYmUt Y29kaW5nLXN5c3RlbeKAmSkuCgrigJhNLXggbGlzdC1jb2Rpbmctc3lzdGVtc+KAmQogICAgIERp c3BsYXkgYSBsaXN0IG9mIGFsbCB0aGUgc3VwcG9ydGVkIGNvZGluZyBzeXN0ZW1zLgoKICAgVGhl IGNvbW1hbmQg4oCYQy1oIEPigJkgKOKAmGRlc2NyaWJlLWNvZGluZy1zeXN0ZW3igJkpIGRpc3Bs YXlzIGluZm9ybWF0aW9uCmFib3V0IHBhcnRpY3VsYXIgY29kaW5nIHN5c3RlbXMsIGluY2x1ZGlu ZyB0aGUgZW5kLW9mLWxpbmUgY29udmVyc2lvbgpzcGVjaWZpZWQgYnkgdGhvc2UgY29kaW5nIHN5 c3RlbXMuICBZb3UgY2FuIHNwZWNpZnkgYSBjb2Rpbmcgc3lzdGVtIG5hbWUKYXMgdGhlIGFyZ3Vt ZW50OyBhbHRlcm5hdGl2ZWx5LCB3aXRoIGFuIGVtcHR5IGFyZ3VtZW50LCBpdCBkZXNjcmliZXMg dGhlCmNvZGluZyBzeXN0ZW1zIGN1cnJlbnRseSBzZWxlY3RlZCBmb3IgdmFyaW91cyBwdXJwb3Nl cywgYm90aCBpbiB0aGUKY3VycmVudCBidWZmZXIgYW5kIGFzIHRoZSBkZWZhdWx0cywgYW5kIHRo ZSBwcmlvcml0eSBsaXN0IGZvcgpyZWNvZ25pemluZyBjb2Rpbmcgc3lzdGVtcyAoKm5vdGUgUmVj b2duaXplIENvZGluZzo6KS4KCiAgIFRvIGRpc3BsYXkgYSBsaXN0IG9mIGFsbCB0aGUgc3VwcG9y dGVkIGNvZGluZyBzeXN0ZW1zLCB0eXBlIOKAmE0teApsaXN0LWNvZGluZy1zeXN0ZW1z4oCZLiAg VGhlIGxpc3QgZ2l2ZXMgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBjb2RpbmcKc3lzdGVtLCBpbmNs dWRpbmcgdGhlIGxldHRlciB0aGF0IHN0YW5kcyBmb3IgaXQgaW4gdGhlIG1vZGUgbGluZSAoKm5v dGUKTW9kZSBMaW5lOjopLgoKICAgRWFjaCBvZiB0aGUgY29kaW5nIHN5c3RlbXMgdGhhdCBhcHBl YXIgaW4gdGhpcyBsaXN04oCUZXhjZXB0IGZvcgrigJhuby1jb252ZXJzaW9u4oCZLCB3aGljaCBt ZWFucyBubyBjb252ZXJzaW9uIG9mIGFueSBraW5k4oCUc3BlY2lmaWVzIGhvdyBhbmQKd2hldGhl ciB0byBjb252ZXJ0IHByaW50aW5nIGNoYXJhY3RlcnMsIGJ1dCBsZWF2ZXMgdGhlIGNob2ljZSBv ZgplbmQtb2YtbGluZSBjb252ZXJzaW9uIHRvIGJlIGRlY2lkZWQgYmFzZWQgb24gdGhlIGNvbnRl bnRzIG9mIGVhY2ggZmlsZS4KRm9yIGV4YW1wbGUsIGlmIHRoZSBmaWxlIGFwcGVhcnMgdG8gdXNl IHRoZSBzZXF1ZW5jZSBjYXJyaWFnZSByZXR1cm4gYW5kCmxpbmVmZWVkIHRvIHNlcGFyYXRlIGxp bmVzLCBET1MgZW5kLW9mLWxpbmUgY29udmVyc2lvbiB3aWxsIGJlIHVzZWQuCgogICBFYWNoIG9m IHRoZSBsaXN0ZWQgY29kaW5nIHN5c3RlbXMgaGFzIHRocmVlIHZhcmlhbnRzLCB3aGljaCBzcGVj aWZ5CmV4YWN0bHkgd2hhdCB0byBkbyBmb3IgZW5kLW9mLWxpbmUgY29udmVyc2lvbjoKCuKAmOKA pi11bml44oCZCiAgICAgRG9u4oCZdCBkbyBhbnkgZW5kLW9mLWxpbmUgY29udmVyc2lvbjsgYXNz dW1lIHRoZSBmaWxlIHVzZXMgbmV3bGluZQogICAgIHRvIHNlcGFyYXRlIGxpbmVzLiAgKFRoaXMg aXMgdGhlIGNvbnZlbnRpb24gbm9ybWFsbHkgdXNlZCBvbiBVbml4CiAgICAgYW5kIEdOVSBzeXN0 ZW1zLCBhbmQgbWFjT1MuKQoK4oCY4oCmLWRvc+KAmQogICAgIEFzc3VtZSB0aGUgZmlsZSB1c2Vz IGNhcnJpYWdlIHJldHVybiBmb2xsb3dlZCBieSBsaW5lZmVlZCB0bwogICAgIHNlcGFyYXRlIGxp bmVzLCBhbmQgZG8gdGhlIGFwcHJvcHJpYXRlIGNvbnZlcnNpb24uICAoVGhpcyBpcyB0aGUKICAg ICBjb252ZW50aW9uIG5vcm1hbGx5IHVzZWQgb24gTWljcm9zb2Z0IHN5c3RlbXMuKDEpKQoK4oCY 4oCmLW1hY+KAmQogICAgIEFzc3VtZSB0aGUgZmlsZSB1c2VzIGNhcnJpYWdlIHJldHVybiB0byBz ZXBhcmF0ZSBsaW5lcywgYW5kIGRvIHRoZQogICAgIGFwcHJvcHJpYXRlIGNvbnZlcnNpb24uICAo VGhpcyB3YXMgdGhlIGNvbnZlbnRpb24gdXNlZCBpbiBDbGFzc2ljCiAgICAgTWFjIE9TLikKCiAg IFRoZXNlIHZhcmlhbnQgY29kaW5nIHN5c3RlbXMgYXJlIG9taXR0ZWQgZnJvbSB0aGUK4oCYbGlz dC1jb2Rpbmctc3lzdGVtc+KAmSBkaXNwbGF5IGZvciBicmV2aXR5LCBzaW5jZSB0aGV5IGFyZSBl bnRpcmVseQpwcmVkaWN0YWJsZS4gIEZvciBleGFtcGxlLCB0aGUgY29kaW5nIHN5c3RlbSDigJhp c28tbGF0aW4tMeKAmSBoYXMgdmFyaWFudHMK4oCYaXNvLWxhdGluLTEtdW5peOKAmSwg4oCYaXNv LWxhdGluLTEtZG9z4oCZIGFuZCDigJhpc28tbGF0aW4tMS1tYWPigJkuCgogICBUaGUgY29kaW5n IHN5c3RlbXMg4oCYdW5peOKAmSwg4oCYZG9z4oCZLCBhbmQg4oCYbWFj4oCZIGFyZSBhbGlhc2Vz IGZvcgrigJh1bmRlY2lkZWQtdW5peOKAmSwg4oCYdW5kZWNpZGVkLWRvc+KAmSwgYW5kIOKAmHVu ZGVjaWRlZC1tYWPigJksIHJlc3BlY3RpdmVseS4KVGhlc2UgY29kaW5nIHN5c3RlbXMgc3BlY2lm eSBvbmx5IHRoZSBlbmQtb2YtbGluZSBjb252ZXJzaW9uLCBhbmQgbGVhdmUKdGhlIGNoYXJhY3Rl ciBjb2RlIGNvbnZlcnNpb24gdG8gYmUgZGVkdWNlZCBmcm9tIHRoZSB0ZXh0IGl0c2VsZi4KCiAg IFRoZSBjb2Rpbmcgc3lzdGVtIOKAmHJhdy10ZXh04oCZIGlzIGdvb2QgZm9yIGEgZmlsZSB3aGlj aCBpcyBtYWlubHkgQVNDSUkKdGV4dCwgYnV0IG1heSBjb250YWluIGJ5dGUgdmFsdWVzIGFib3Zl IDEyNyB0aGF0IGFyZSBub3QgbWVhbnQgdG8gZW5jb2RlCm5vbi1BU0NJSSBjaGFyYWN0ZXJzLiAg V2l0aCDigJhyYXctdGV4dOKAmSwgRW1hY3MgY29waWVzIHRob3NlIGJ5dGUgdmFsdWVzCnVuY2hh bmdlZCwgYW5kIHNldHMg4oCYZW5hYmxlLW11bHRpYnl0ZS1jaGFyYWN0ZXJz4oCZIHRvIOKAmG5p bOKAmSBpbiB0aGUKY3VycmVudCBidWZmZXIgc28gdGhhdCB0aGV5IHdpbGwgYmUgaW50ZXJwcmV0 ZWQgcHJvcGVybHkuICDigJhyYXctdGV4dOKAmQpoYW5kbGVzIGVuZC1vZi1saW5lIGNvbnZlcnNp b24gaW4gdGhlIHVzdWFsIHdheSwgYmFzZWQgb24gdGhlIGRhdGEKZW5jb3VudGVyZWQsIGFuZCBo YXMgdGhlIHVzdWFsIHRocmVlIHZhcmlhbnRzIHRvIHNwZWNpZnkgdGhlIGtpbmQgb2YKZW5kLW9m LWxpbmUgY29udmVyc2lvbiB0byB1c2UuCgogICBJbiBjb250cmFzdCwgdGhlIGNvZGluZyBzeXN0 ZW0g4oCYbm8tY29udmVyc2lvbuKAmSBzcGVjaWZpZXMgbm8gY2hhcmFjdGVyCmNvZGUgY29udmVy c2lvbiBhdCBhbGzigJRub25lIGZvciBub24tQVNDSUkgYnl0ZSB2YWx1ZXMgYW5kIG5vbmUgZm9y IGVuZApvZiBsaW5lLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHJlYWRpbmcgb3Igd3JpdGluZyBiaW5h cnkgZmlsZXMsIHRhciBmaWxlcywKYW5kIG90aGVyIGZpbGVzIHRoYXQgbXVzdCBiZSBleGFtaW5l ZCB2ZXJiYXRpbS4gIEl0LCB0b28sIHNldHMK4oCYZW5hYmxlLW11bHRpYnl0ZS1jaGFyYWN0ZXJz 4oCZIHRvIOKAmG5pbOKAmS4KCiAgIFRoZSBlYXNpZXN0IHdheSB0byBlZGl0IGEgZmlsZSB3aXRo IG5vIGNvbnZlcnNpb24gb2YgYW55IGtpbmQgaXMgd2l0aAp0aGUg4oCYTS14IGZpbmQtZmlsZS1s aXRlcmFsbHnigJkgY29tbWFuZC4gIFRoaXMgdXNlcyDigJhuby1jb252ZXJzaW9u4oCZLCBhbmQK YWxzbyBzdXBwcmVzc2VzIG90aGVyIEVtYWNzIGZlYXR1cmVzIHRoYXQgbWlnaHQgY29udmVydCB0 aGUgZmlsZQpjb250ZW50cyBiZWZvcmUgeW91IHNlZSB0aGVtLiAgKk5vdGUgVmlzaXRpbmc6Oi4K CiAgIFRoZSBjb2Rpbmcgc3lzdGVtIOKAmGVtYWNzLWludGVybmFs4oCZIChvciDigJh1dGYtOC1l bWFjc+KAmSwgd2hpY2ggaXMKZXF1aXZhbGVudCkgbWVhbnMgdGhhdCB0aGUgZmlsZSBjb250YWlu cyBub24tQVNDSUkgY2hhcmFjdGVycyBzdG9yZWQKd2l0aCB0aGUgaW50ZXJuYWwgRW1hY3MgZW5j b2RpbmcuICBUaGlzIGNvZGluZyBzeXN0ZW0gaGFuZGxlcwplbmQtb2YtbGluZSBjb252ZXJzaW9u IGJhc2VkIG9uIHRoZSBkYXRhIGVuY291bnRlcmVkLCBhbmQgaGFzIHRoZSB1c3VhbAp0aHJlZSB2 YXJpYW50cyB0byBzcGVjaWZ5IHRoZSBraW5kIG9mIGVuZC1vZi1saW5lIGNvbnZlcnNpb24uCgog ICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgSXQgaXMgYWxzbyBzcGVj aWZpZWQgZm9yIE1JTUUg4oCYdGV4dC8q4oCZIGJvZGllcyBhbmQgaW4gb3RoZXIKbmV0d29yayB0 cmFuc3BvcnQgY29udGV4dHMuICBJdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgU0dNTCByZWZlcmVu Y2UKc3ludGF4IHJlY29yZC1zdGFydC9yZWNvcmQtZW5kIGZvcm1hdCwgd2hpY2ggRW1hY3MgZG9l c27igJl0IHN1cHBvcnQKZGlyZWN0bHkuCgoKKiogMjIuNiBSZWNvZ25pemluZyBDb2RpbmcgU3lz dGVtcwoKV2hlbmV2ZXIgRW1hY3MgcmVhZHMgYSBnaXZlbiBwaWVjZSBvZiB0ZXh0LCBpdCB0cmll cyB0byByZWNvZ25pemUgd2hpY2gKY29kaW5nIHN5c3RlbSB0byB1c2UuICBUaGlzIGFwcGxpZXMg dG8gZmlsZXMgYmVpbmcgcmVhZCwgb3V0cHV0IGZyb20Kc3VicHJvY2Vzc2VzLCB0ZXh0IGZyb20g WCBzZWxlY3Rpb25zLCBldGMuICBFbWFjcyBjYW4gc2VsZWN0IHRoZSByaWdodApjb2Rpbmcgc3lz dGVtIGF1dG9tYXRpY2FsbHkgbW9zdCBvZiB0aGUgdGltZeKAlG9uY2UgeW91IGhhdmUgc3BlY2lm aWVkCnlvdXIgcHJlZmVyZW5jZXMuCgogICBTb21lIGNvZGluZyBzeXN0ZW1zIGNhbiBiZSByZWNv Z25pemVkIG9yIGRpc3Rpbmd1aXNoZWQgYnkgd2hpY2ggYnl0ZQpzZXF1ZW5jZXMgYXBwZWFyIGlu IHRoZSBkYXRhLiAgSG93ZXZlciwgdGhlcmUgYXJlIGNvZGluZyBzeXN0ZW1zIHRoYXQKY2Fubm90 IGJlIGRpc3Rpbmd1aXNoZWQsIG5vdCBldmVuIHBvdGVudGlhbGx5LiAgRm9yIGV4YW1wbGUsIHRo ZXJlIGlzIG5vCndheSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIExhdGluLTEgYW5kIExhdGluLTI7 IHRoZXkgdXNlIHRoZSBzYW1lIGJ5dGUKdmFsdWVzIHdpdGggZGlmZmVyZW50IG1lYW5pbmdzLgoK ICAgRW1hY3MgaGFuZGxlcyB0aGlzIHNpdHVhdGlvbiBieSBtZWFucyBvZiBhIHByaW9yaXR5IGxp c3Qgb2YgY29kaW5nCnN5c3RlbXMuICBXaGVuZXZlciBFbWFjcyByZWFkcyBhIGZpbGUsIGlmIHlv dSBkbyBub3Qgc3BlY2lmeSB0aGUgY29kaW5nCnN5c3RlbSB0byB1c2UsIEVtYWNzIGNoZWNrcyB0 aGUgZGF0YSBhZ2FpbnN0IGVhY2ggY29kaW5nIHN5c3RlbSwKc3RhcnRpbmcgd2l0aCB0aGUgZmly c3QgaW4gcHJpb3JpdHkgYW5kIHdvcmtpbmcgZG93biB0aGUgbGlzdCwgdW50aWwgaXQKZmluZHMg YSBjb2Rpbmcgc3lzdGVtIHRoYXQgZml0cyB0aGUgZGF0YS4gIFRoZW4gaXQgY29udmVydHMgdGhl IGZpbGUKY29udGVudHMgYXNzdW1pbmcgdGhhdCB0aGV5IGFyZSByZXByZXNlbnRlZCBpbiB0aGlz IGNvZGluZyBzeXN0ZW0uCgogICBUaGUgcHJpb3JpdHkgbGlzdCBvZiBjb2Rpbmcgc3lzdGVtcyBk ZXBlbmRzIG9uIHRoZSBzZWxlY3RlZCBsYW5ndWFnZQplbnZpcm9ubWVudCAoKm5vdGUgTGFuZ3Vh Z2UgRW52aXJvbm1lbnRzOjopLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSB1c2UKRnJlbmNoLCB5b3Ug cHJvYmFibHkgd2FudCBFbWFjcyB0byBwcmVmZXIgTGF0aW4tMSB0byBMYXRpbi0yOyBpZiB5b3Ug dXNlCkN6ZWNoLCB5b3UgcHJvYmFibHkgd2FudCBMYXRpbi0yIHRvIGJlIHByZWZlcnJlZC4gIFRo aXMgaXMgb25lIG9mIHRoZQpyZWFzb25zIHRvIHNwZWNpZnkgYSBsYW5ndWFnZSBlbnZpcm9ubWVu dC4KCiAgIEhvd2V2ZXIsIHlvdSBjYW4gYWx0ZXIgdGhlIGNvZGluZyBzeXN0ZW0gcHJpb3JpdHkg bGlzdCBpbiBkZXRhaWwgd2l0aAp0aGUgY29tbWFuZCDigJhNLXggcHJlZmVyLWNvZGluZy1zeXN0 ZW3igJkuICBUaGlzIGNvbW1hbmQgcmVhZHMgdGhlIG5hbWUgb2YKYSBjb2Rpbmcgc3lzdGVtIGZy b20gdGhlIG1pbmlidWZmZXIsIGFuZCBhZGRzIGl0IHRvIHRoZSBmcm9udCBvZiB0aGUKcHJpb3Jp dHkgbGlzdCwgc28gdGhhdCBpdCBpcyBwcmVmZXJyZWQgdG8gYWxsIG90aGVycy4gIElmIHlvdSB1 c2UgdGhpcwpjb21tYW5kIHNldmVyYWwgdGltZXMsIGVhY2ggdXNlIGFkZHMgb25lIGVsZW1lbnQg dG8gdGhlIGZyb250IG9mIHRoZQpwcmlvcml0eSBsaXN0LgoKICAgSWYgeW91IHVzZSBhIGNvZGlu ZyBzeXN0ZW0gdGhhdCBzcGVjaWZpZXMgdGhlIGVuZC1vZi1saW5lIGNvbnZlcnNpb24KdHlwZSwg c3VjaCBhcyDigJhpc28tODg1OS0xLWRvc+KAmSwgd2hhdCB0aGlzIG1lYW5zIGlzIHRoYXQgRW1h Y3Mgc2hvdWxkCmF0dGVtcHQgdG8gcmVjb2duaXplIOKAmGlzby04ODU5LTHigJkgd2l0aCBwcmlv cml0eSwgYW5kIHNob3VsZCB1c2UgRE9TCmVuZC1vZi1saW5lIGNvbnZlcnNpb24gd2hlbiBpdCBk b2VzIHJlY29nbml6ZSDigJhpc28tODg1OS0x4oCZLgoKICAgU29tZXRpbWVzIGEgZmlsZSBuYW1l IGluZGljYXRlcyB3aGljaCBjb2Rpbmcgc3lzdGVtIHRvIHVzZSBmb3IgdGhlCmZpbGUuICBUaGUg dmFyaWFibGUg4oCYZmlsZS1jb2Rpbmctc3lzdGVtLWFsaXN04oCZIHNwZWNpZmllcyB0aGlzCmNv cnJlc3BvbmRlbmNlLiAgVGhlcmUgaXMgYSBzcGVjaWFsIGZ1bmN0aW9uCuKAmG1vZGlmeS1jb2Rp bmctc3lzdGVtLWFsaXN04oCZIGZvciBhZGRpbmcgZWxlbWVudHMgdG8gdGhpcyBsaXN0LiAgRm9y CmV4YW1wbGUsIHRvIHJlYWQgYW5kIHdyaXRlIGFsbCDigJgudHh04oCZIGZpbGVzIHVzaW5nIHRo ZSBjb2Rpbmcgc3lzdGVtCuKAmGNoaW5lc2UtaXNvLThiaXTigJksIHlvdSBjYW4gZXhlY3V0ZSB0 aGlzIExpc3AgZXhwcmVzc2lvbjoKCiAgICAgKG1vZGlmeS1jb2Rpbmctc3lzdGVtLWFsaXN0ICdm aWxlICJcXC50eHRcXCciICdjaGluZXNlLWlzby04Yml0KQoKVGhlIGZpcnN0IGFyZ3VtZW50IHNo b3VsZCBiZSDigJhmaWxl4oCZLCB0aGUgc2Vjb25kIGFyZ3VtZW50IHNob3VsZCBiZSBhCnJlZ3Vs YXIgZXhwcmVzc2lvbiB0aGF0IGRldGVybWluZXMgd2hpY2ggZmlsZXMgdGhpcyBhcHBsaWVzIHRv LCBhbmQgdGhlCnRoaXJkIGFyZ3VtZW50IHNheXMgd2hpY2ggY29kaW5nIHN5c3RlbSB0byB1c2Ug Zm9yIHRoZXNlIGZpbGVzLgoKICAgRW1hY3MgcmVjb2duaXplcyB3aGljaCBraW5kIG9mIGVuZC1v Zi1saW5lIGNvbnZlcnNpb24gdG8gdXNlIGJhc2VkIG9uCnRoZSBjb250ZW50cyBvZiB0aGUgZmls ZTogaWYgaXQgc2VlcyBvbmx5IGNhcnJpYWdlIHJldHVybnMsIG9yIG9ubHkKY2FycmlhZ2UgcmV0 dXJuIGZvbGxvd2VkIGJ5IGxpbmVmZWVkIHNlcXVlbmNlcywgdGhlbiBpdCBjaG9vc2VzIHRoZQpl bmQtb2YtbGluZSBjb252ZXJzaW9uIGFjY29yZGluZ2x5LiAgWW91IGNhbiBpbmhpYml0IHRoZSBh dXRvbWF0aWMgdXNlCm9mIGVuZC1vZi1saW5lIGNvbnZlcnNpb24gYnkgc2V0dGluZyB0aGUgdmFy aWFibGUK4oCYaW5oaWJpdC1lb2wtY29udmVyc2lvbuKAmSB0byBub24t4oCYbmls4oCZLiAgSWYg eW91IGRvIHRoYXQsIERPUy1zdHlsZSBmaWxlcwp3aWxsIGJlIGRpc3BsYXllZCB3aXRoIHRoZSDi gJheTeKAmSBjaGFyYWN0ZXJzIHZpc2libGUgaW4gdGhlIGJ1ZmZlcjsgc29tZQpwZW9wbGUgcHJl ZmVyIHRoaXMgdG8gdGhlIG1vcmUgc3VidGxlIOKAmChET1Mp4oCZIGVuZC1vZi1saW5lIHR5cGUK aW5kaWNhdGlvbiBuZWFyIHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlIG1vZGUgbGluZSAoKm5vdGUgZW9s LW1uZW1vbmljOiBNb2RlCkxpbmUuKS4KCiAgIEJ5IGRlZmF1bHQsIHRoZSBhdXRvbWF0aWMgZGV0 ZWN0aW9uIG9mIHRoZSBjb2Rpbmcgc3lzdGVtIGlzIHNlbnNpdGl2ZQp0byBlc2NhcGUgc2VxdWVu Y2VzLiAgSWYgRW1hY3Mgc2VlcyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBiZWdpbgp3 aXRoIGFuIGVzY2FwZSBjaGFyYWN0ZXIsIGFuZCB0aGUgc2VxdWVuY2UgaXMgdmFsaWQgYXMgYW4g SVNPLTIwMjIgY29kZSwKdGhhdCB0ZWxscyBFbWFjcyB0byB1c2Ugb25lIG9mIHRoZSBJU08tMjAy MiBlbmNvZGluZ3MgdG8gZGVjb2RlIHRoZQpmaWxlLgoKICAgSG93ZXZlciwgdGhlcmUgbWF5IGJl IGNhc2VzIHRoYXQgeW91IHdhbnQgdG8gcmVhZCBlc2NhcGUgc2VxdWVuY2VzIGluCmEgZmlsZSBh cyBpcy4gIEluIHN1Y2ggYSBjYXNlLCB5b3UgY2FuIHNldCB0aGUgdmFyaWFibGUK4oCYaW5oaWJp dC1pc28tZXNjYXBlLWRldGVjdGlvbuKAmSB0byBub24t4oCYbmls4oCZLiAgVGhlbiB0aGUgY29k ZSBkZXRlY3Rpb24KaWdub3JlcyBhbnkgZXNjYXBlIHNlcXVlbmNlcywgYW5kIG5ldmVyIHVzZXMg YW4gSVNPLTIwMjIgZW5jb2RpbmcuICBUaGUKcmVzdWx0IGlzIHRoYXQgYWxsIGVzY2FwZSBzZXF1 ZW5jZXMgYmVjb21lIHZpc2libGUgaW4gdGhlIGJ1ZmZlci4KCiAgIFRoZSBkZWZhdWx0IHZhbHVl IG9mIOKAmGluaGliaXQtaXNvLWVzY2FwZS1kZXRlY3Rpb27igJkgaXMg4oCYbmls4oCZLiAgV2UK cmVjb21tZW5kIHRoYXQgeW91IG5vdCBjaGFuZ2UgaXQgcGVybWFuZW50bHksIG9ubHkgZm9yIG9u ZSBzcGVjaWZpYwpvcGVyYXRpb24uICBUaGF04oCZcyBiZWNhdXNlIHNvbWUgRW1hY3MgTGlzcCBz b3VyY2UgZmlsZXMgaW4gdGhlIEVtYWNzCmRpc3RyaWJ1dGlvbiBjb250YWluIG5vbi1BU0NJSSBj aGFyYWN0ZXJzIGVuY29kZWQgaW4gdGhlIGNvZGluZyBzeXN0ZW0K4oCYaXNvLTIwMjItN2JpdOKA mSwgYW5kIHRoZXkgd29u4oCZdCBiZSBkZWNvZGVkIGNvcnJlY3RseSB3aGVuIHlvdSB2aXNpdAp0 aG9zZSBmaWxlcyBpZiB5b3Ugc3VwcHJlc3MgdGhlIGVzY2FwZSBzZXF1ZW5jZSBkZXRlY3Rpb24u CgogICBUaGUgdmFyaWFibGVzIOKAmGF1dG8tY29kaW5nLWFsaXN04oCZIGFuZCDigJhhdXRvLWNv ZGluZy1yZWdleHAtYWxpc3TigJkgYXJlCnRoZSBzdHJvbmdlc3Qgd2F5IHRvIHNwZWNpZnkgdGhl IGNvZGluZyBzeXN0ZW0gZm9yIGNlcnRhaW4gcGF0dGVybnMgb2YKZmlsZSBuYW1lcywgb3IgZm9y IGZpbGVzIGNvbnRhaW5pbmcgY2VydGFpbiBwYXR0ZXJucywgcmVzcGVjdGl2ZWx5LgpUaGVzZSB2 YXJpYWJsZXMgZXZlbiBvdmVycmlkZSDigJgtKi1jb2Rpbmc6LSot4oCZIHRhZ3MgaW4gdGhlIGZp bGUgaXRzZWxmCigqbm90ZSBTcGVjaWZ5IENvZGluZzo6KS4gIEZvciBleGFtcGxlLCBFbWFjcyB1 c2VzIOKAmGF1dG8tY29kaW5nLWFsaXN04oCZCmZvciB0YXIgYW5kIGFyY2hpdmUgZmlsZXMsIHRv IHByZXZlbnQgaXQgZnJvbSBiZWluZyBjb25mdXNlZCBieSBhCuKAmC0qLWNvZGluZzotKi3igJkg dGFnIGluIGEgbWVtYmVyIG9mIHRoZSBhcmNoaXZlIGFuZCB0aGlua2luZyBpdCBhcHBsaWVzCnRv IHRoZSBhcmNoaXZlIGZpbGUgYXMgYSB3aG9sZS4KCiAgIEFub3RoZXIgd2F5IHRvIHNwZWNpZnkg YSBjb2Rpbmcgc3lzdGVtIGlzIHdpdGggdGhlIHZhcmlhYmxlCuKAmGF1dG8tY29kaW5nLWZ1bmN0 aW9uc+KAmS4gIEZvciBleGFtcGxlLCBvbmUgb2YgdGhlIGJ1aWx0aW4K4oCYYXV0by1jb2Rpbmct ZnVuY3Rpb25z4oCZIGRldGVjdHMgdGhlIGVuY29kaW5nIGZvciBYTUwgZmlsZXMuICBVbmxpa2Ug dGhlCnByZXZpb3VzIHR3bywgdGhpcyB2YXJpYWJsZSBkb2VzIG5vdCBvdmVycmlkZSBhbnkg4oCY LSotY29kaW5nOi0qLeKAmSB0YWcuCgoKKiogMjIuNyBTcGVjaWZ5aW5nIGEgRmlsZeKAmXMgQ29k aW5nIFN5c3RlbQoKSWYgRW1hY3MgcmVjb2duaXplcyB0aGUgZW5jb2Rpbmcgb2YgYSBmaWxlIGlu Y29ycmVjdGx5LCB5b3UgY2FuIHJlcmVhZAp0aGUgZmlsZSB1c2luZyB0aGUgY29ycmVjdCBjb2Rp bmcgc3lzdGVtIHdpdGgg4oCYQy14IDxSRVQ+IHLigJkKKOKAmHJldmVydC1idWZmZXItd2l0aC1j b2Rpbmctc3lzdGVt4oCZKS4gIFRoaXMgY29tbWFuZCBwcm9tcHRzIGZvciB0aGUKY29kaW5nIHN5 c3RlbSB0byB1c2UuICBUbyBzZWUgd2hhdCBjb2Rpbmcgc3lzdGVtIEVtYWNzIGFjdHVhbGx5IHVz ZWQgdG8KZGVjb2RlIHRoZSBmaWxlLCBsb29rIGF0IHRoZSBjb2Rpbmcgc3lzdGVtIG1uZW1vbmlj IGxldHRlciBuZWFyIHRoZSBsZWZ0CmVkZ2Ugb2YgdGhlIG1vZGUgbGluZSAoKm5vdGUgTW9kZSBM aW5lOjopLCBvciB0eXBlIOKAmEMtaCBD4oCZCijigJhkZXNjcmliZS1jb2Rpbmctc3lzdGVt4oCZ KS4KCiAgIFlvdSBjYW4gc3BlY2lmeSB0aGUgY29kaW5nIHN5c3RlbSBmb3IgYSBwYXJ0aWN1bGFy IGZpbGUgaW4gdGhlIGZpbGUKaXRzZWxmLCB1c2luZyB0aGUg4oCYLSot4oCmLSot4oCZIGNvbnN0 cnVjdCBhdCB0aGUgYmVnaW5uaW5nLCBvciBhIGxvY2FsCnZhcmlhYmxlcyBsaXN0IGF0IHRoZSBl bmQgKCpub3RlIEZpbGUgVmFyaWFibGVzOjopLiAgWW91IGRvIHRoaXMgYnkKZGVmaW5pbmcgYSB2 YWx1ZSBmb3IgdGhlIOKAnHZhcmlhYmxl4oCdIG5hbWVkIOKAmGNvZGluZ+KAmS4gIEVtYWNzIGRv ZXMgbm90CnJlYWxseSBoYXZlIGEgdmFyaWFibGUg4oCYY29kaW5n4oCZOyBpbnN0ZWFkIG9mIHNl dHRpbmcgYSB2YXJpYWJsZSwgdGhpcwp1c2VzIHRoZSBzcGVjaWZpZWQgY29kaW5nIHN5c3RlbSBm b3IgdGhlIGZpbGUuICBGb3IgZXhhbXBsZSwg4oCYLSotbW9kZTogQzsgY29kaW5nOiBsYXRpbi0x OyAtKi3igJkKc3BlY2lmaWVzIHVzZSBvZiB0aGUgTGF0aW4tMSBjb2Rpbmcgc3lzdGVtLCBhcyB3 ZWxsIGFzIEMgbW9kZS4gIFdoZW4geW91CnNwZWNpZnkgdGhlIGNvZGluZyBleHBsaWNpdGx5IGlu IHRoZSBmaWxlLCB0aGF0IG92ZXJyaWRlcwrigJhmaWxlLWNvZGluZy1zeXN0ZW0tYWxpc3TigJku CgoKKiogMjIuOCBDaG9vc2luZyBDb2RpbmcgU3lzdGVtcyBmb3IgT3V0cHV0CgpPbmNlIEVtYWNz IGhhcyBjaG9zZW4gYSBjb2Rpbmcgc3lzdGVtIGZvciBhIGJ1ZmZlciwgaXQgc3RvcmVzIHRoYXQK Y29kaW5nIHN5c3RlbSBpbiDigJhidWZmZXItZmlsZS1jb2Rpbmctc3lzdGVt4oCZLiAgVGhhdCBt YWtlcyBpdCB0aGUgZGVmYXVsdApmb3Igb3BlcmF0aW9ucyB0aGF0IHdyaXRlIGZyb20gdGhpcyBi dWZmZXIgaW50byBhIGZpbGUsIHN1Y2ggYXMK4oCYc2F2ZS1idWZmZXLigJkgYW5kIOKAmHdyaXRl LXJlZ2lvbuKAmS4gIFlvdSBjYW4gc3BlY2lmeSBhIGRpZmZlcmVudCBjb2RpbmcKc3lzdGVtIGZv ciBmdXJ0aGVyIGZpbGUgb3V0cHV0IGZyb20gdGhlIGJ1ZmZlciB1c2luZwrigJhzZXQtYnVmZmVy LWZpbGUtY29kaW5nLXN5c3RlbeKAmSAoKm5vdGUgVGV4dCBDb2Rpbmc6OikuCgogICBZb3UgY2Fu IGluc2VydCBhbnkgY2hhcmFjdGVyIEVtYWNzIHN1cHBvcnRzIGludG8gYW55IEVtYWNzIGJ1ZmZl ciwKYnV0IG1vc3QgY29kaW5nIHN5c3RlbXMgY2FuIG9ubHkgaGFuZGxlIGEgc3Vic2V0IG9mIHRo ZXNlIGNoYXJhY3RlcnMuClRoZXJlZm9yZSwgaXTigJlzIHBvc3NpYmxlIHRoYXQgdGhlIGNoYXJh Y3RlcnMgeW91IGluc2VydCBjYW5ub3QgYmUKZW5jb2RlZCB3aXRoIHRoZSBjb2Rpbmcgc3lzdGVt IHRoYXQgd2lsbCBiZSB1c2VkIHRvIHNhdmUgdGhlIGJ1ZmZlci4KRm9yIGV4YW1wbGUsIHlvdSBj b3VsZCB2aXNpdCBhIHRleHQgZmlsZSBpbiBQb2xpc2gsIGVuY29kZWQgaW4K4oCYaXNvLTg4NTkt MuKAmSwgYW5kIGFkZCBzb21lIFJ1c3NpYW4gd29yZHMgdG8gaXQuICBXaGVuIHlvdSBzYXZlIHRo YXQKYnVmZmVyLCBFbWFjcyBjYW5ub3QgdXNlIHRoZSBjdXJyZW50IHZhbHVlIG9mCuKAmGJ1ZmZl ci1maWxlLWNvZGluZy1zeXN0ZW3igJksIGJlY2F1c2UgdGhlIGNoYXJhY3RlcnMgeW91IGFkZGVk IGNhbm5vdCBiZQplbmNvZGVkIGJ5IHRoYXQgY29kaW5nIHN5c3RlbS4KCiAgIFdoZW4gdGhhdCBo YXBwZW5zLCBFbWFjcyB0cmllcyB0aGUgbW9zdC1wcmVmZXJyZWQgY29kaW5nIHN5c3RlbSAoc2V0 CmJ5IOKAmE0teCBwcmVmZXItY29kaW5nLXN5c3RlbeKAmSBvciDigJhNLXggc2V0LWxhbmd1YWdl LWVudmlyb25tZW504oCZKS4gIElmCnRoYXQgY29kaW5nIHN5c3RlbSBjYW4gc2FmZWx5IGVuY29k ZSBhbGwgb2YgdGhlIGNoYXJhY3RlcnMgaW4gdGhlCmJ1ZmZlciwgRW1hY3MgdXNlcyBpdCwgYW5k IHN0b3JlcyBpdHMgdmFsdWUgaW4K4oCYYnVmZmVyLWZpbGUtY29kaW5nLXN5c3RlbeKAmS4gIE90 aGVyd2lzZSwgRW1hY3MgZGlzcGxheXMgYSBsaXN0IG9mIGNvZGluZwpzeXN0ZW1zIHN1aXRhYmxl IGZvciBlbmNvZGluZyB0aGUgYnVmZmVy4oCZcyBjb250ZW50cywgYW5kIGFza3MgeW91IHRvCmNo b29zZSBvbmUgb2YgdGhvc2UgY29kaW5nIHN5c3RlbXMuCgogICBJZiB5b3UgaW5zZXJ0IHRoZSB1 bnN1aXRhYmxlIGNoYXJhY3RlcnMgaW4gYSBtYWlsIG1lc3NhZ2UsIEVtYWNzCmJlaGF2ZXMgYSBi aXQgZGlmZmVyZW50bHkuICBJdCBhZGRpdGlvbmFsbHkgY2hlY2tzIHdoZXRoZXIgdGhlCm1vc3Qt cHJlZmVycmVkIGNvZGluZyBzeXN0ZW0gaXMgcmVjb21tZW5kZWQgZm9yIHVzZSBpbiBNSU1FIG1l c3NhZ2VzOyBpZgpub3QsIGl0IGluZm9ybXMgeW91IG9mIHRoaXMgZmFjdCBhbmQgcHJvbXB0cyB5 b3UgZm9yIGFub3RoZXIgY29kaW5nCnN5c3RlbS4gIFRoaXMgaXMgc28geW91IHdvbuKAmXQgaW5h ZHZlcnRlbnRseSBzZW5kIGEgbWVzc2FnZSBlbmNvZGVkIGluIGEKd2F5IHRoYXQgeW91ciByZWNp cGllbnTigJlzIG1haWwgc29mdHdhcmUgd2lsbCBoYXZlIGRpZmZpY3VsdHkgZGVjb2RpbmcuCihZ b3UgY2FuIHN0aWxsIHVzZSBhbiB1bnN1aXRhYmxlIGNvZGluZyBzeXN0ZW0gaWYgeW91IGVudGVy IGl0cyBuYW1lIGF0CnRoZSBwcm9tcHQuKQoKICAgV2hlbiB5b3Ugc2VuZCBhIG1haWwgbWVzc2Fn ZSAoKm5vdGUgU2VuZGluZyBNYWlsOjopLCBFbWFjcyBoYXMgZm91cgpkaWZmZXJlbnQgd2F5cyB0 byBkZXRlcm1pbmUgdGhlIGNvZGluZyBzeXN0ZW0gdG8gdXNlIGZvciBlbmNvZGluZyB0aGUKbWVz c2FnZSB0ZXh0LiAgSXQgZmlyc3QgdHJpZXMgdGhlIGJ1ZmZlcuKAmXMgb3duIHZhbHVlIG9mCuKA mGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW3igJksIGlmIHRoYXQgaXMgbm9uLeKAmG5pbOKAmS4g IE90aGVyd2lzZSwgaXQgdXNlcwp0aGUgdmFsdWUgb2Yg4oCYc2VuZG1haWwtY29kaW5nLXN5c3Rl beKAmSwgaWYgdGhhdCBpcyBub24t4oCYbmls4oCZLiAgVGhpcmRseSwKaXQgdXNlcyB0aGUgdmFs dWUgb2Yg4oCYZGVmYXVsdC1zZW5kbWFpbC1jb2Rpbmctc3lzdGVt4oCZLiAgSWYgYWxsIG9mIHRo ZXNlCnRocmVlIHZhbHVlcyBhcmUg4oCYbmls4oCZLCBFbWFjcyBlbmNvZGVzIG91dGdvaW5nIG1h aWwgdXNpbmcgdGhlIGRlZmF1bHQKY29kaW5nIHN5c3RlbSBmb3IgbmV3IGZpbGVzIChpLmUuLCB0 aGUgZGVmYXVsdCB2YWx1ZSBvZgrigJhidWZmZXItZmlsZS1jb2Rpbmctc3lzdGVt4oCZKSwgd2hp Y2ggaXMgY29udHJvbGxlZCBieSB5b3VyIGNob2ljZSBvZgpsYW5ndWFnZSBlbnZpcm9ubWVudC4K CgoqKiAyMi45IFNwZWNpZnlpbmcgYSBDb2RpbmcgU3lzdGVtIGZvciBGaWxlIFRleHQKCkluIGNh c2VzIHdoZXJlIEVtYWNzIGRvZXMgbm90IGF1dG9tYXRpY2FsbHkgY2hvb3NlIHRoZSByaWdodCBj b2RpbmcKc3lzdGVtIGZvciBhIGZpbGXigJlzIGNvbnRlbnRzLCB5b3UgY2FuIHVzZSB0aGVzZSBj b21tYW5kcyB0byBzcGVjaWZ5IG9uZToKCuKAmEMteCA8UkVUPiBmIENPRElORyA8UkVUPuKAmQog ICAgIFVzZSBjb2Rpbmcgc3lzdGVtIENPRElORyB0byBzYXZlIG9yIHJldmlzaXQgdGhlIGZpbGUg aW4gdGhlIGN1cnJlbnQKICAgICBidWZmZXIgKOKAmHNldC1idWZmZXItZmlsZS1jb2Rpbmctc3lz dGVt4oCZKS4KCuKAmEMteCA8UkVUPiBjIENPRElORyA8UkVUPuKAmQogICAgIFNwZWNpZnkgY29k aW5nIHN5c3RlbSBDT0RJTkcgZm9yIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY29tbWFuZAog ICAgICjigJh1bml2ZXJzYWwtY29kaW5nLXN5c3RlbS1hcmd1bWVudOKAmSkuCgrigJhDLXggPFJF VD4gciBDT0RJTkcgPFJFVD7igJkKICAgICBSZXZpc2l0IHRoZSBjdXJyZW50IGZpbGUgdXNpbmcg dGhlIGNvZGluZyBzeXN0ZW0gQ09ESU5HCiAgICAgKOKAmHJldmVydC1idWZmZXItd2l0aC1jb2Rp bmctc3lzdGVt4oCZKS4KCuKAmE0teCByZWNvZGUtcmVnaW9uIDxSRVQ+IFJJR0hUIDxSRVQ+IFdS T05HIDxSRVQ+4oCZCiAgICAgQ29udmVydCBhIHJlZ2lvbiB0aGF0IHdhcyBkZWNvZGVkIHVzaW5n IGNvZGluZyBzeXN0ZW0gV1JPTkcsCiAgICAgZGVjb2RpbmcgaXQgdXNpbmcgY29kaW5nIHN5c3Rl bSBSSUdIVCBpbnN0ZWFkLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IDxSRVQ+IGbigJkgKOKAmHNl dC1idWZmZXItZmlsZS1jb2Rpbmctc3lzdGVt4oCZKSBzZXRzIHRoZQpmaWxlIGNvZGluZyBzeXN0 ZW0gZm9yIHRoZSBjdXJyZW50IGJ1ZmZlciAoaS5lLiwgdGhlIGNvZGluZyBzeXN0ZW0gdG8KdXNl IHdoZW4gc2F2aW5nIG9yIHJldmVydGluZyB0aGUgZmlsZSkuICBZb3Ugc3BlY2lmeSB3aGljaCBj b2Rpbmcgc3lzdGVtCnVzaW5nIHRoZSBtaW5pYnVmZmVyLiAgWW91IGNhbiBhbHNvIGludm9rZSB0 aGlzIGNvbW1hbmQgYnkgY2xpY2tpbmcgd2l0aArigJhtb3VzZS0z4oCZIG9uIHRoZSBjb2Rpbmcg c3lzdGVtIGluZGljYXRvciBpbiB0aGUgbW9kZSBsaW5lICgqbm90ZSBNb2RlCkxpbmU6OikuCgog ICBJZiB5b3Ugc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gdGhhdCBjYW5ub3QgaGFuZGxlIGFsbCB0 aGUgY2hhcmFjdGVycwppbiB0aGUgYnVmZmVyLCBFbWFjcyB3aWxsIHdhcm4geW91IGFib3V0IHRo ZSB0cm91Ymxlc29tZSBjaGFyYWN0ZXJzLCBhbmQKYXNrIHlvdSB0byBjaG9vc2UgYW5vdGhlciBj b2Rpbmcgc3lzdGVtLCB3aGVuIHlvdSB0cnkgdG8gc2F2ZSB0aGUgYnVmZmVyCigqbm90ZSBPdXRw dXQgQ29kaW5nOjopLgoKICAgWW91IGNhbiBhbHNvIHVzZSB0aGlzIGNvbW1hbmQgdG8gc3BlY2lm eSB0aGUgZW5kLW9mLWxpbmUgY29udmVyc2lvbgooKm5vdGUgZW5kLW9mLWxpbmUgY29udmVyc2lv bjogQ29kaW5nIFN5c3RlbXMuKSBmb3IgZW5jb2RpbmcgdGhlIGN1cnJlbnQKYnVmZmVyLiAgRm9y IGV4YW1wbGUsIOKAmEMteCA8UkVUPiBmIGRvcyA8UkVUPuKAmSB3aWxsIGNhdXNlIEVtYWNzIHRv IHNhdmUKdGhlIGN1cnJlbnQgYnVmZmVy4oCZcyB0ZXh0IHdpdGggRE9TLXN0eWxlIGNhcnJpYWdl IHJldHVybiBmb2xsb3dlZCBieQpsaW5lZmVlZCBsaW5lIGVuZGluZ3MuCgogICBBbm90aGVyIHdh eSB0byBzcGVjaWZ5IHRoZSBjb2Rpbmcgc3lzdGVtIGZvciBhIGZpbGUgaXMgd2hlbiB5b3Ugdmlz aXQKdGhlIGZpbGUuICBGaXJzdCB1c2UgdGhlIGNvbW1hbmQg4oCYQy14IDxSRVQ+IGPigJkKKOKA mHVuaXZlcnNhbC1jb2Rpbmctc3lzdGVtLWFyZ3VtZW504oCZKTsgdGhpcyBjb21tYW5kIHVzZXMg dGhlIG1pbmlidWZmZXIKdG8gcmVhZCBhIGNvZGluZyBzeXN0ZW0gbmFtZS4gIEFmdGVyIHlvdSBl eGl0IHRoZSBtaW5pYnVmZmVyLCB0aGUKc3BlY2lmaWVkIGNvZGluZyBzeXN0ZW0gaXMgdXNlZCBm b3IgX3RoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgY29tbWFuZF8uCgogICBTbyBpZiB0aGUgaW1t ZWRpYXRlbHkgZm9sbG93aW5nIGNvbW1hbmQgaXMg4oCYQy14IEMtZuKAmSwgZm9yIGV4YW1wbGUs IGl0CnJlYWRzIHRoZSBmaWxlIHVzaW5nIHRoYXQgY29kaW5nIHN5c3RlbSAoYW5kIHJlY29yZHMg dGhlIGNvZGluZyBzeXN0ZW0KZm9yIHdoZW4geW91IGxhdGVyIHNhdmUgdGhlIGZpbGUpLiAgT3Ig aWYgdGhlIGltbWVkaWF0ZWx5IGZvbGxvd2luZwpjb21tYW5kIGlzIOKAmEMteCBDLXfigJksIGl0 IHdyaXRlcyB0aGUgZmlsZSB1c2luZyB0aGF0IGNvZGluZyBzeXN0ZW0uICBXaGVuCnlvdSBzcGVj aWZ5IHRoZSBjb2Rpbmcgc3lzdGVtIGZvciBzYXZpbmcgaW4gdGhpcyB3YXksIGluc3RlYWQgb2Yg d2l0aArigJhDLXggPFJFVD4gZuKAmSwgdGhlcmUgaXMgbm8gd2FybmluZyBpZiB0aGUgYnVmZmVy IGNvbnRhaW5zIGNoYXJhY3RlcnMKdGhhdCB0aGUgY29kaW5nIHN5c3RlbSBjYW5ub3QgaGFuZGxl LgoKICAgT3RoZXIgZmlsZSBjb21tYW5kcyBhZmZlY3RlZCBieSBhIHNwZWNpZmllZCBjb2Rpbmcg c3lzdGVtIGluY2x1ZGUK4oCYQy14IGnigJkgYW5kIOKAmEMteCBDLXbigJksIGFzIHdlbGwgYXMg dGhlIG90aGVyLXdpbmRvdyB2YXJpYW50cyBvZiDigJhDLXgKQy1m4oCZLiAg4oCYQy14IDxSRVQ+ IGPigJkgYWxzbyBhZmZlY3RzIGNvbW1hbmRzIHRoYXQgc3RhcnQgc3VicHJvY2Vzc2VzLAppbmNs dWRpbmcg4oCYTS14IHNoZWxs4oCZICgqbm90ZSBTaGVsbDo6KS4gIElmIHRoZSBpbW1lZGlhdGVs eSBmb2xsb3dpbmcKY29tbWFuZCBkb2VzIG5vdCB1c2UgdGhlIGNvZGluZyBzeXN0ZW0sIHRoZW4g 4oCYQy14IDxSRVQ+IGPigJkgdWx0aW1hdGVseQpoYXMgbm8gZWZmZWN0LgoKICAgQW4gZWFzeSB3 YXkgdG8gdmlzaXQgYSBmaWxlIHdpdGggbm8gY29udmVyc2lvbiBpcyB3aXRoIHRoZSDigJhNLXgK ZmluZC1maWxlLWxpdGVyYWxseeKAmSBjb21tYW5kLiAgKk5vdGUgVmlzaXRpbmc6Oi4KCiAgIFRo ZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSB2YXJpYWJsZSDigJhidWZmZXItZmlsZS1jb2Rpbmctc3lz dGVt4oCZCnNwZWNpZmllcyB0aGUgY2hvaWNlIG9mIGNvZGluZyBzeXN0ZW0gdG8gdXNlIHdoZW4g eW91IGNyZWF0ZSBhIG5ldyBmaWxlLgpJdCBhcHBsaWVzIHdoZW4geW91IGZpbmQgYSBuZXcgZmls ZSwgYW5kIHdoZW4geW91IGNyZWF0ZSBhIGJ1ZmZlciBhbmQKdGhlbiBzYXZlIGl0IGluIGEgZmls ZS4gIFNlbGVjdGluZyBhIGxhbmd1YWdlIGVudmlyb25tZW50IHR5cGljYWxseSBzZXRzCnRoaXMg dmFyaWFibGUgdG8gYSBnb29kIGNob2ljZSBvZiBkZWZhdWx0IGNvZGluZyBzeXN0ZW0gZm9yIHRo YXQKbGFuZ3VhZ2UgZW52aXJvbm1lbnQuCgogICBJZiB5b3UgdmlzaXQgYSBmaWxlIHdpdGggYSB3 cm9uZyBjb2Rpbmcgc3lzdGVtLCB5b3UgY2FuIGNvcnJlY3QgdGhpcwp3aXRoIOKAmEMteCA8UkVU PiBy4oCZICjigJhyZXZlcnQtYnVmZmVyLXdpdGgtY29kaW5nLXN5c3RlbeKAmSkuICBUaGlzIHZp c2l0cwp0aGUgY3VycmVudCBmaWxlIGFnYWluLCB1c2luZyBhIGNvZGluZyBzeXN0ZW0geW91IHNw ZWNpZnkuCgogICBJZiBhIHBpZWNlIG9mIHRleHQgaGFzIGFscmVhZHkgYmVlbiBpbnNlcnRlZCBp bnRvIGEgYnVmZmVyIHVzaW5nIHRoZQp3cm9uZyBjb2Rpbmcgc3lzdGVtLCB5b3UgY2FuIHJlZG8g dGhlIGRlY29kaW5nIG9mIGl0IHVzaW5nIOKAmE0teApyZWNvZGUtcmVnaW9u4oCZLiAgVGhpcyBw cm9tcHRzIHlvdSBmb3IgdGhlIHByb3BlciBjb2Rpbmcgc3lzdGVtLCB0aGVuIGZvcgp0aGUgd3Jv bmcgY29kaW5nIHN5c3RlbSB0aGF0IHdhcyBhY3R1YWxseSB1c2VkLCBhbmQgZG9lcyB0aGUgY29u dmVyc2lvbi4KSXQgZmlyc3QgZW5jb2RlcyB0aGUgcmVnaW9uIHVzaW5nIHRoZSB3cm9uZyBjb2Rp bmcgc3lzdGVtLCB0aGVuIGRlY29kZXMKaXQgYWdhaW4gdXNpbmcgdGhlIHByb3BlciBjb2Rpbmcg c3lzdGVtLgoKCioqIDIyLjEwIENvZGluZyBTeXN0ZW1zIGZvciBJbnRlcnByb2Nlc3MgQ29tbXVu aWNhdGlvbgoKVGhpcyBzZWN0aW9uIGV4cGxhaW5zIGhvdyB0byBzcGVjaWZ5IGNvZGluZyBzeXN0 ZW1zIGZvciB1c2UgaW4KY29tbXVuaWNhdGlvbiB3aXRoIG90aGVyIHByb2Nlc3Nlcy4KCuKAmEMt eCA8UkVUPiB4IENPRElORyA8UkVUPuKAmQogICAgIFVzZSBjb2Rpbmcgc3lzdGVtIENPRElORyBm b3IgdHJhbnNmZXJyaW5nIHNlbGVjdGlvbnMgdG8gYW5kIGZyb20KICAgICBvdGhlciBncmFwaGlj YWwgYXBwbGljYXRpb25zICjigJhzZXQtc2VsZWN0aW9uLWNvZGluZy1zeXN0ZW3igJkpLgoK4oCY Qy14IDxSRVQ+IFggQ09ESU5HIDxSRVQ+4oCZCiAgICAgVXNlIGNvZGluZyBzeXN0ZW0gQ09ESU5H IGZvciB0cmFuc2ZlcnJpbmcgX29uZV8gc2VsZWN0aW9u4oCUdGhlIG5leHQKICAgICBvbmXigJR0 byBvciBmcm9tIGFub3RoZXIgZ3JhcGhpY2FsIGFwcGxpY2F0aW9uCiAgICAgKOKAmHNldC1uZXh0 LXNlbGVjdGlvbi1jb2Rpbmctc3lzdGVt4oCZKS4KCuKAmEMteCA8UkVUPiBwIElOUFVULUNPRElO RyA8UkVUPiBPVVRQVVQtQ09ESU5HIDxSRVQ+4oCZCiAgICAgVXNlIGNvZGluZyBzeXN0ZW1zIElO UFVULUNPRElORyBhbmQgT1VUUFVULUNPRElORyBmb3Igc3VicHJvY2VzcwogICAgIGlucHV0IGFu ZCBvdXRwdXQgaW4gdGhlIGN1cnJlbnQgYnVmZmVyCiAgICAgKOKAmHNldC1idWZmZXItcHJvY2Vz cy1jb2Rpbmctc3lzdGVt4oCZKS4KCiAgIFRoZSBjb21tYW5kIOKAmEMteCA8UkVUPiB44oCZICji gJhzZXQtc2VsZWN0aW9uLWNvZGluZy1zeXN0ZW3igJkpIHNwZWNpZmllcwp0aGUgY29kaW5nIHN5 c3RlbSBmb3Igc2VuZGluZyBzZWxlY3RlZCB0ZXh0IHRvIG90aGVyIHdpbmRvd2luZwphcHBsaWNh dGlvbnMsIGFuZCBmb3IgcmVjZWl2aW5nIHRoZSB0ZXh0IG9mIHNlbGVjdGlvbnMgbWFkZSBpbiBv dGhlcgphcHBsaWNhdGlvbnMuICBUaGlzIGNvbW1hbmQgYXBwbGllcyB0byBhbGwgc3Vic2VxdWVu dCBzZWxlY3Rpb25zLCB1bnRpbAp5b3Ugb3ZlcnJpZGUgaXQgYnkgdXNpbmcgdGhlIGNvbW1hbmQg YWdhaW4uICBUaGUgY29tbWFuZCDigJhDLXggPFJFVD4gWOKAmQoo4oCYc2V0LW5leHQtc2VsZWN0 aW9uLWNvZGluZy1zeXN0ZW3igJkpIHNwZWNpZmllcyB0aGUgY29kaW5nIHN5c3RlbSBmb3IgdGhl Cm5leHQgc2VsZWN0aW9uIG1hZGUgaW4gRW1hY3Mgb3IgcmVhZCBieSBFbWFjcy4KCiAgIFRoZSB2 YXJpYWJsZSDigJh4LXNlbGVjdC1yZXF1ZXN0LXR5cGXigJkgc3BlY2lmaWVzIHRoZSBkYXRhIHR5 cGUgdG8KcmVxdWVzdCBmcm9tIHRoZSBYIFdpbmRvdyBTeXN0ZW0gZm9yIHJlY2VpdmluZyB0ZXh0 IHNlbGVjdGlvbnMgZnJvbQpvdGhlciBhcHBsaWNhdGlvbnMuICBJZiB0aGUgdmFsdWUgaXMg4oCY bmls4oCZICh0aGUgZGVmYXVsdCksIEVtYWNzIHRyaWVzCuKAmFVURjhfU1RSSU5H4oCZIGFuZCDi gJhDT01QT1VORF9URVhU4oCZLCBpbiB0aGlzIG9yZGVyLCBhbmQgdXNlcyB2YXJpb3VzCmhldXJp c3RpY3MgdG8gY2hvb3NlIHRoZSBtb3JlIGFwcHJvcHJpYXRlIG9mIHRoZSB0d28gcmVzdWx0czsg aWYgbm9uZSBvZgp0aGVzZSBzdWNjZWVkLCBFbWFjcyBmYWxscyBiYWNrIG9uIOKAmFNUUklOR+KA mS4gIElmIHRoZSB2YWx1ZSBvZgrigJh4LXNlbGVjdC1yZXF1ZXN0LXR5cGXigJkgaXMgb25lIG9m IHRoZSBzeW1ib2xzIOKAmENPTVBPVU5EX1RFWFTigJksCuKAmFVURjhfU1RSSU5H4oCZLCDigJhT VFJJTkfigJksIG9yIOKAmFRFWFTigJksIEVtYWNzIHVzZXMgb25seSB0aGF0IHJlcXVlc3QgdHlw ZS4KSWYgdGhlIHZhbHVlIGlzIGEgbGlzdCBvZiBzb21lIG9mIHRoZXNlIHN5bWJvbHMsIEVtYWNz IHRyaWVzIG9ubHkgdGhlCnJlcXVlc3QgdHlwZXMgaW4gdGhlIGxpc3QsIGluIG9yZGVyLCB1bnRp bCBvbmUgb2YgdGhlbSBzdWNjZWVkcywgb3IKdW50aWwgdGhlIGxpc3QgaXMgZXhoYXVzdGVkLgoK ICAgVGhlIGNvbW1hbmQg4oCYQy14IDxSRVQ+IHDigJkgKOKAmHNldC1idWZmZXItcHJvY2Vzcy1j b2Rpbmctc3lzdGVt4oCZKQpzcGVjaWZpZXMgdGhlIGNvZGluZyBzeXN0ZW0gZm9yIGlucHV0IGFu ZCBvdXRwdXQgdG8gYSBzdWJwcm9jZXNzLiAgVGhpcwpjb21tYW5kIGFwcGxpZXMgdG8gdGhlIGN1 cnJlbnQgYnVmZmVyOyBub3JtYWxseSwgZWFjaCBzdWJwcm9jZXNzIGhhcyBpdHMKb3duIGJ1ZmZl ciwgYW5kIHRodXMgeW91IGNhbiB1c2UgdGhpcyBjb21tYW5kIHRvIHNwZWNpZnkgdHJhbnNsYXRp b24gdG8KYW5kIGZyb20gYSBwYXJ0aWN1bGFyIHN1YnByb2Nlc3MgYnkgZ2l2aW5nIHRoZSBjb21t YW5kIGluIHRoZQpjb3JyZXNwb25kaW5nIGJ1ZmZlci4KCiAgIFlvdSBjYW4gYWxzbyB1c2Ug4oCY Qy14IDxSRVQ+IGPigJkgKOKAmHVuaXZlcnNhbC1jb2Rpbmctc3lzdGVtLWFyZ3VtZW504oCZKQpq dXN0IGJlZm9yZSB0aGUgY29tbWFuZCB0aGF0IHJ1bnMgb3Igc3RhcnRzIGEgc3VicHJvY2Vzcywg dG8gc3BlY2lmeSB0aGUKY29kaW5nIHN5c3RlbSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoYXQg c3VicHJvY2Vzcy4gICpOb3RlIFRleHQKQ29kaW5nOjouCgogICBUaGUgZGVmYXVsdCBmb3IgdHJh bnNsYXRpb24gb2YgcHJvY2VzcyBpbnB1dCBhbmQgb3V0cHV0IGRlcGVuZHMgb24KdGhlIGN1cnJl bnQgbGFuZ3VhZ2UgZW52aXJvbm1lbnQuCgogICBUaGUgdmFyaWFibGUg4oCYbG9jYWxlLWNvZGlu Zy1zeXN0ZW3igJkgc3BlY2lmaWVzIGEgY29kaW5nIHN5c3RlbSB0byB1c2UKd2hlbiBlbmNvZGlu ZyBhbmQgZGVjb2Rpbmcgc3lzdGVtIHN0cmluZ3Mgc3VjaCBhcyBzeXN0ZW0gZXJyb3IgbWVzc2Fn ZXMKYW5kIOKAmGZvcm1hdC10aW1lLXN0cmluZ+KAmSBmb3JtYXRzIGFuZCB0aW1lIHN0YW1wcy4g IFRoYXQgY29kaW5nIHN5c3RlbSBpcwphbHNvIHVzZWQgZm9yIGRlY29kaW5nIG5vbi1BU0NJSSBr ZXlib2FyZCBpbnB1dCBvbiB0aGUgWCBXaW5kb3cgU3lzdGVtCmFuZCBmb3IgZW5jb2RpbmcgdGV4 dCBzZW50IHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMgd2hlbgppbiBi YXRjaCBtb2RlLiAgWW91IHNob3VsZCBjaG9vc2UgYSBjb2Rpbmcgc3lzdGVtIHRoYXQgaXMgY29t cGF0aWJsZQp3aXRoIHRoZSB1bmRlcmx5aW5nIHN5c3RlbeKAmXMgdGV4dCByZXByZXNlbnRhdGlv biwgd2hpY2ggaXMgbm9ybWFsbHkKc3BlY2lmaWVkIGJ5IG9uZSBvZiB0aGUgZW52aXJvbm1lbnQg dmFyaWFibGVzIOKAmExDX0FMTOKAmSwg4oCYTENfQ1RZUEXigJksIGFuZArigJhMQU5H4oCZLiAg KFRoZSBmaXJzdCBvbmUsIGluIHRoZSBvcmRlciBzcGVjaWZpZWQgYWJvdmUsIHdob3NlIHZhbHVl IGlzCm5vbmVtcHR5IGlzIHRoZSBvbmUgdGhhdCBkZXRlcm1pbmVzIHRoZSB0ZXh0IHJlcHJlc2Vu dGF0aW9uLikKCgoqKiAyMi4xMSBDb2RpbmcgU3lzdGVtcyBmb3IgRmlsZSBOYW1lcwoK4oCYQy14 IDxSRVQ+IEYgQ09ESU5HIDxSRVQ+4oCZCiAgICAgVXNlIGNvZGluZyBzeXN0ZW0gQ09ESU5HIGZv ciBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZmlsZSBuYW1lcwogICAgICjigJhzZXQtZmlsZS1uYW1l LWNvZGluZy1zeXN0ZW3igJkpLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IDxSRVQ+IEbigJkgKOKA mHNldC1maWxlLW5hbWUtY29kaW5nLXN5c3RlbeKAmSkgc3BlY2lmaWVzIGEKY29kaW5nIHN5c3Rl bSB0byB1c2UgZm9yIGVuY29kaW5nIGZpbGUgX25hbWVzXy4gIEl0IGhhcyBubyBlZmZlY3Qgb24K cmVhZGluZyBhbmQgd3JpdGluZyB0aGUgX2NvbnRlbnRzXyBvZiBmaWxlcy4KCiAgIEluIGZhY3Qs IGFsbCB0aGlzIGNvbW1hbmQgZG9lcyBpcyBzZXQgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZQri gJhmaWxlLW5hbWUtY29kaW5nLXN5c3RlbeKAmS4gIElmIHlvdSBzZXQgdGhlIHZhcmlhYmxlIHRv IGEgY29kaW5nIHN5c3RlbQpuYW1lIChhcyBhIExpc3Agc3ltYm9sIG9yIGEgc3RyaW5nKSwgRW1h Y3MgZW5jb2RlcyBmaWxlIG5hbWVzIHVzaW5nIHRoYXQKY29kaW5nIHN5c3RlbSBmb3IgYWxsIGZp bGUgb3BlcmF0aW9ucy4gIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gdXNlCm5vbi1BU0NJSSBj aGFyYWN0ZXJzIGluIGZpbGUgbmFtZXPigJRvciwgYXQgbGVhc3QsIHRob3NlIG5vbi1BU0NJSQpj aGFyYWN0ZXJzIHRoYXQgdGhlIHNwZWNpZmllZCBjb2Rpbmcgc3lzdGVtIGNhbiBlbmNvZGUuCgog ICBJZiDigJhmaWxlLW5hbWUtY29kaW5nLXN5c3RlbeKAmSBpcyDigJhuaWzigJksIEVtYWNzIHVz ZXMgYSBkZWZhdWx0IGNvZGluZwpzeXN0ZW0gZGV0ZXJtaW5lZCBieSB0aGUgc2VsZWN0ZWQgbGFu Z3VhZ2UgZW52aXJvbm1lbnQsIGFuZCBzdG9yZWQgaW4KdGhlIOKAmGRlZmF1bHQtZmlsZS1uYW1l LWNvZGluZy1zeXN0ZW3igJkgdmFyaWFibGUuICBJbiB0aGUgZGVmYXVsdCBsYW5ndWFnZQplbnZp cm9ubWVudCwgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lcyBhcmUgbm90IGVuY29k ZWQKc3BlY2lhbGx5OyB0aGV5IGFwcGVhciBpbiB0aGUgZmlsZSBzeXN0ZW0gdXNpbmcgdGhlIGlu dGVybmFsIEVtYWNzCnJlcHJlc2VudGF0aW9uLgoKICAgV2hlbiBFbWFjcyBydW5zIG9uIE1TLVdp bmRvd3MgdmVyc2lvbnMgdGhhdCBhcmUgZGVzY2VuZGFudHMgb2YgdGhlIE5UCmZhbWlseSAoV2lu ZG93cyAyMDAwLCBYUCwgYW5kIGFsbCB0aGUgbGF0ZXIgdmVyc2lvbnMpLCB0aGUgdmFsdWUgb2YK 4oCYZmlsZS1uYW1lLWNvZGluZy1zeXN0ZW3igJkgaXMgbGFyZ2VseSBpZ25vcmVkLCBhcyBFbWFj cyBieSBkZWZhdWx0IHVzZXMKQVBJcyB0aGF0IGFsbG93IHBhc3NpbmcgVW5pY29kZSBmaWxlIG5h bWVzIGRpcmVjdGx5LiAgQnkgY29udHJhc3QsIG9uCldpbmRvd3MgOVgsIGZpbGUgbmFtZXMgYXJl IGVuY29kZWQgdXNpbmcg4oCYZmlsZS1uYW1lLWNvZGluZy1zeXN0ZW3igJksCndoaWNoIHNob3Vs ZCBiZSBzZXQgdG8gdGhlIGNvZGVwYWdlICgqbm90ZSBjb2RlcGFnZTogQ29kaW5nIFN5c3RlbXMu KQpwZXJ0aW5lbnQgZm9yIHRoZSBjdXJyZW50IHN5c3RlbSBsb2NhbGUuICBUaGUgdmFsdWUgb2Yg dGhlIHZhcmlhYmxlCuKAmHczMi11bmljb2RlLWZpbGVuYW1lc+KAmSBjb250cm9scyB3aGV0aGVy IEVtYWNzIHVzZXMgdGhlIFVuaWNvZGUgQVBJcwp3aGVuIGl0IGNhbGxzIE9TIGZ1bmN0aW9ucyB0 aGF0IGFjY2VwdCBmaWxlIG5hbWVzLiAgVGhpcyB2YXJpYWJsZSBpcyBzZXQKYnkgdGhlIHN0YXJ0 dXAgY29kZSB0byDigJhuaWzigJkgb24gV2luZG93cyA5WCwgYW5kIHRvIOKAmHTigJkgb24gbmV3 ZXIgdmVyc2lvbnMKb2YgTVMtV2luZG93cy4KCiAgICpXYXJuaW5nOiogaWYgeW91IGNoYW5nZSDi gJhmaWxlLW5hbWUtY29kaW5nLXN5c3RlbeKAmSAob3IgdGhlIGxhbmd1YWdlCmVudmlyb25tZW50 KSBpbiB0aGUgbWlkZGxlIG9mIGFuIEVtYWNzIHNlc3Npb24sIHByb2JsZW1zIGNhbiByZXN1bHQg aWYKeW91IGhhdmUgYWxyZWFkeSB2aXNpdGVkIGZpbGVzIHdob3NlIG5hbWVzIHdlcmUgZW5jb2Rl ZCB1c2luZyB0aGUKZWFybGllciBjb2Rpbmcgc3lzdGVtIGFuZCBjYW5ub3QgYmUgZW5jb2RlZCAo b3IgYXJlIGVuY29kZWQgZGlmZmVyZW50bHkpCnVuZGVyIHRoZSBuZXcgY29kaW5nIHN5c3RlbS4g IElmIHlvdSB0cnkgdG8gc2F2ZSBvbmUgb2YgdGhlc2UgYnVmZmVycwp1bmRlciB0aGUgdmlzaXRl ZCBmaWxlIG5hbWUsIHNhdmluZyBtYXkgdXNlIHRoZSB3cm9uZyBmaWxlIG5hbWUsIG9yIGl0Cm1h eSBlbmNvdW50ZXIgYW4gZXJyb3IuICBJZiBzdWNoIGEgcHJvYmxlbSBoYXBwZW5zLCB1c2Ug4oCY Qy14IEMtd+KAmSB0bwpzcGVjaWZ5IGEgbmV3IGZpbGUgbmFtZSBmb3IgdGhhdCBidWZmZXIuCgog ICBJZiBhIG1pc3Rha2Ugb2NjdXJzIHdoZW4gZW5jb2RpbmcgYSBmaWxlIG5hbWUsIHVzZSB0aGUg Y29tbWFuZCDigJhNLXgKcmVjb2RlLWZpbGUtbmFtZeKAmSB0byBjaGFuZ2UgdGhlIGZpbGUgbmFt ZeKAmXMgY29kaW5nIHN5c3RlbS4gIFRoaXMgcHJvbXB0cwpmb3IgYW4gZXhpc3RpbmcgZmlsZSBu YW1lLCBpdHMgb2xkIGNvZGluZyBzeXN0ZW0sIGFuZCB0aGUgY29kaW5nIHN5c3RlbQp0byB3aGlj aCB5b3Ugd2lzaCB0byBjb252ZXJ0LgoKCioqIDIyLjEyIENvZGluZyBTeXN0ZW1zIGZvciBUZXJt aW5hbCBJL08KCuKAmEMteCA8UkVUPiB0IENPRElORyA8UkVUPuKAmQogICAgIFVzZSBjb2Rpbmcg c3lzdGVtIENPRElORyBmb3IgdGVybWluYWwgb3V0cHV0CiAgICAgKOKAmHNldC10ZXJtaW5hbC1j b2Rpbmctc3lzdGVt4oCZKS4KCuKAmEMteCA8UkVUPiBrIENPRElORyA8UkVUPuKAmQogICAgIFVz ZSBjb2Rpbmcgc3lzdGVtIENPRElORyBmb3Iga2V5Ym9hcmQgaW5wdXQKICAgICAo4oCYc2V0LWtl eWJvYXJkLWNvZGluZy1zeXN0ZW3igJkpLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IDxSRVQ+IHTi gJkgKOKAmHNldC10ZXJtaW5hbC1jb2Rpbmctc3lzdGVt4oCZKSBzcGVjaWZpZXMKdGhlIGNvZGlu ZyBzeXN0ZW0gZm9yIHRlcm1pbmFsIG91dHB1dC4gIElmIHlvdSBzcGVjaWZ5IGEgY2hhcmFjdGVy IGNvZGUKZm9yIHRlcm1pbmFsIG91dHB1dCwgYWxsIGNoYXJhY3RlcnMgb3V0cHV0IHRvIHRoZSB0 ZXJtaW5hbCBhcmUKdHJhbnNsYXRlZCBpbnRvIHRoYXQgY29kaW5nIHN5c3RlbS4KCiAgIFRoaXMg ZmVhdHVyZSBpcyB1c2VmdWwgZm9yIGNlcnRhaW4gY2hhcmFjdGVyLW9ubHkgdGVybWluYWxzIGJ1 aWx0IHRvCnN1cHBvcnQgc3BlY2lmaWMgbGFuZ3VhZ2VzIG9yIGNoYXJhY3RlciBzZXRz4oCUZm9y IGV4YW1wbGUsIEV1cm9wZWFuCnRlcm1pbmFscyB0aGF0IHN1cHBvcnQgb25lIG9mIHRoZSBJU08g TGF0aW4gY2hhcmFjdGVyIHNldHMuICBZb3UgbmVlZCB0bwpzcGVjaWZ5IHRoZSB0ZXJtaW5hbCBj b2Rpbmcgc3lzdGVtIHdoZW4gdXNpbmcgbXVsdGlieXRlIHRleHQsIHNvIHRoYXQKRW1hY3Mga25v d3Mgd2hpY2ggY2hhcmFjdGVycyB0aGUgdGVybWluYWwgY2FuIGFjdHVhbGx5IGhhbmRsZS4KCiAg IEJ5IGRlZmF1bHQsIG91dHB1dCB0byB0aGUgdGVybWluYWwgaXMgbm90IHRyYW5zbGF0ZWQgYXQg YWxsLCB1bmxlc3MKRW1hY3MgY2FuIGRlZHVjZSB0aGUgcHJvcGVyIGNvZGluZyBzeXN0ZW0gZnJv bSB5b3VyIHRlcm1pbmFsIHR5cGUgb3IKeW91ciBsb2NhbGUgc3BlY2lmaWNhdGlvbiAoKm5vdGUg TGFuZ3VhZ2UgRW52aXJvbm1lbnRzOjopLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IDxSRVQ+IGvi gJkgKOKAmHNldC1rZXlib2FyZC1jb2Rpbmctc3lzdGVt4oCZKSwgb3IgdGhlCnZhcmlhYmxlIOKA mGtleWJvYXJkLWNvZGluZy1zeXN0ZW3igJksIHNwZWNpZmllcyB0aGUgY29kaW5nIHN5c3RlbSBm b3IKa2V5Ym9hcmQgaW5wdXQuICBDaGFyYWN0ZXItY29kZSB0cmFuc2xhdGlvbiBvZiBrZXlib2Fy ZCBpbnB1dCBpcyB1c2VmdWwKZm9yIHRlcm1pbmFscyB3aXRoIGtleXMgdGhhdCBzZW5kIG5vbi1B U0NJSSBncmFwaGljIGNoYXJhY3RlcnPigJRmb3IKZXhhbXBsZSwgc29tZSB0ZXJtaW5hbHMgZGVz aWduZWQgZm9yIElTTyBMYXRpbi0xIG9yIHN1YnNldHMgb2YgaXQuCgogICBCeSBkZWZhdWx0LCBr ZXlib2FyZCBpbnB1dCBpcyB0cmFuc2xhdGVkIGJhc2VkIG9uIHlvdXIgc3lzdGVtIGxvY2FsZQpz ZXR0aW5nLiAgSWYgeW91ciB0ZXJtaW5hbCBkb2VzIG5vdCByZWFsbHkgc3VwcG9ydCB0aGUgZW5j b2RpbmcgaW1wbGllZApieSB5b3VyIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGlmIHlvdSBmaW5kIGl0 IGluc2VydHMgYSBub24tQVNDSUkKY2hhcmFjdGVyIGlmIHlvdSB0eXBlIOKAmE0taeKAmSksIHlv dSB3aWxsIG5lZWQgdG8gc2V0CuKAmGtleWJvYXJkLWNvZGluZy1zeXN0ZW3igJkgdG8g4oCYbmls 4oCZIHRvIHR1cm4gb2ZmIGVuY29kaW5nLiAgWW91IGNhbiBkbyB0aGlzCmJ5IHB1dHRpbmcKCiAg ICAgKHNldC1rZXlib2FyZC1jb2Rpbmctc3lzdGVtIG5pbCkKCmluIHlvdXIgaW5pdCBmaWxlLgoK ICAgVGhlcmUgaXMgYSBzaW1pbGFyaXR5IGJldHdlZW4gdXNpbmcgYSBjb2Rpbmcgc3lzdGVtIHRy YW5zbGF0aW9uIGZvcgprZXlib2FyZCBpbnB1dCwgYW5kIHVzaW5nIGFuIGlucHV0IG1ldGhvZDog Ym90aCBkZWZpbmUgc2VxdWVuY2VzIG9mCmtleWJvYXJkIGlucHV0IHRoYXQgdHJhbnNsYXRlIGlu dG8gc2luZ2xlIGNoYXJhY3RlcnMuICBIb3dldmVyLCBpbnB1dAptZXRob2RzIGFyZSBkZXNpZ25l ZCB0byBiZSBjb252ZW5pZW50IGZvciBpbnRlcmFjdGl2ZSB1c2UgYnkgaHVtYW5zLCBhbmQKdGhl IHNlcXVlbmNlcyB0aGF0IGFyZSB0cmFuc2xhdGVkIGFyZSB0eXBpY2FsbHkgc2VxdWVuY2VzIG9m IEFTQ0lJCnByaW50aW5nIGNoYXJhY3RlcnMuICBDb2Rpbmcgc3lzdGVtcyB0eXBpY2FsbHkgdHJh bnNsYXRlIHNlcXVlbmNlcyBvZgpub24tZ3JhcGhpYyBjaGFyYWN0ZXJzLgoKCioqIDIyLjEzIEZv bnRzZXRzCgpBIGZvbnQgdHlwaWNhbGx5IGRlZmluZXMgc2hhcGVzIGZvciBhIHNpbmdsZSBhbHBo YWJldCBvciBzY3JpcHQuClRoZXJlZm9yZSwgZGlzcGxheWluZyB0aGUgZW50aXJlIHJhbmdlIG9m IHNjcmlwdHMgdGhhdCBFbWFjcyBzdXBwb3J0cwpyZXF1aXJlcyBhIGNvbGxlY3Rpb24gb2YgbWFu eSBmb250cy4gIEluIEVtYWNzLCBzdWNoIGEgY29sbGVjdGlvbiBpcwpjYWxsZWQgYSAiZm9udHNl dCIuICBBIGZvbnRzZXQgaXMgZGVmaW5lZCBieSBhIGxpc3Qgb2YgZm9udApzcGVjaWZpY2F0aW9u cywgZWFjaCBhc3NpZ25lZCB0byBoYW5kbGUgYSByYW5nZSBvZiBjaGFyYWN0ZXIgY29kZXMsIGFu ZAptYXkgZmFsbCBiYWNrIG9uIGFub3RoZXIgZm9udHNldCBmb3IgY2hhcmFjdGVycyB0aGF0IGFy ZSBub3QgY292ZXJlZCBieQp0aGUgZm9udHMgaXQgc3BlY2lmaWVzLgoKICAgRWFjaCBmb250c2V0 IGhhcyBhIG5hbWUsIGxpa2UgYSBmb250LiAgSG93ZXZlciwgd2hpbGUgZm9udHMgYXJlCnN0b3Jl ZCBpbiB0aGUgc3lzdGVtIGFuZCB0aGUgYXZhaWxhYmxlIGZvbnQgbmFtZXMgYXJlIGRlZmluZWQg YnkgdGhlCnN5c3RlbSwgZm9udHNldHMgYXJlIGRlZmluZWQgd2l0aGluIEVtYWNzIGl0c2VsZi4g IE9uY2UgeW91IGhhdmUgZGVmaW5lZAphIGZvbnRzZXQsIHlvdSBjYW4gdXNlIGl0IHdpdGhpbiBF bWFjcyBieSBzcGVjaWZ5aW5nIGl0cyBuYW1lLCBhbnl3aGVyZQp0aGF0IHlvdSBjb3VsZCB1c2Ug YSBzaW5nbGUgZm9udC4gIE9mIGNvdXJzZSwgRW1hY3MgZm9udHNldHMgY2FuIHVzZQpvbmx5IHRo ZSBmb250cyB0aGF0IHRoZSBzeXN0ZW0gc3VwcG9ydHMuICBJZiBzb21lIGNoYXJhY3RlcnMgYXBw ZWFyIG9uCnRoZSBzY3JlZW4gYXMgZW1wdHkgYm94ZXMgb3IgaGV4IGNvZGVzLCB0aGlzIG1lYW5z IHRoYXQgdGhlIGZvbnRzZXQgaW4KdXNlIGZvciB0aGVtIGhhcyBubyBmb250IGZvciB0aG9zZSBj aGFyYWN0ZXJzLiAgSW4gdGhpcyBjYXNlLCBvciBpZiB0aGUKY2hhcmFjdGVycyBhcmUgc2hvd24s IGJ1dCBub3QgYXMgd2VsbCBhcyB5b3Ugd291bGQgbGlrZSwgeW91IG1heSBuZWVkIHRvCmluc3Rh bGwgZXh0cmEgZm9udHMuICBZb3VyIG9wZXJhdGluZyBzeXN0ZW0gbWF5IGhhdmUgb3B0aW9uYWwg Zm9udHMgdGhhdAp5b3UgY2FuIGluc3RhbGw7IG9yIHlvdSBjYW4gaW5zdGFsbCB0aGUgR05VIElu dGxmb250cyBwYWNrYWdlLCB3aGljaAppbmNsdWRlcyBmb250cyBmb3IgbW9zdCBzdXBwb3J0ZWQg c2NyaXB0cy4oMSkKCiAgIEVtYWNzIGNyZWF0ZXMgdGhyZWUgZm9udHNldHMgYXV0b21hdGljYWxs eTogdGhlICJzdGFuZGFyZCBmb250c2V0IiwKdGhlICJzdGFydHVwIGZvbnRzZXQiIGFuZCB0aGUg ImRlZmF1bHQgZm9udHNldCIuICBUaGUgZGVmYXVsdCBmb250c2V0IGlzCm1vc3QgbGlrZWx5IHRv IGhhdmUgZm9udHMgZm9yIGEgd2lkZSB2YXJpZXR5IG9mIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLAph bmQgaXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgZm9yIHRoZSBvdGhlciB0d28gZm9udHNldHMsIGFu ZCBpZiB5b3Ugc2V0IGEKZGVmYXVsdCBmb250IHJhdGhlciB0aGFuIGZvbnRzZXQuICBIb3dldmVy LCBpdCBkb2VzIG5vdCBzcGVjaWZ5IGZvbnQKZmFtaWx5IG5hbWVzLCBzbyByZXN1bHRzIGNhbiBi ZSBzb21ld2hhdCByYW5kb20gaWYgeW91IHVzZSBpdCBkaXJlY3RseS4KWW91IGNhbiBzcGVjaWZ5 IGEgcGFydGljdWxhciBmb250c2V0IGJ5IHN0YXJ0aW5nIEVtYWNzIHdpdGggdGhlIOKAmC1mbuKA mQpvcHRpb24uICBGb3IgZXhhbXBsZSwKCiAgICAgZW1hY3MgLWZuIGZvbnRzZXQtc3RhbmRhcmQK CllvdSBjYW4gYWxzbyBzcGVjaWZ5IGEgZm9udHNldCB3aXRoIHRoZSDigJhGb2504oCZIHJlc291 cmNlICgqbm90ZSBYClJlc291cmNlczo6KS4KCiAgIElmIG5vIGZvbnRzZXQgaXMgc3BlY2lmaWVk IGZvciB1c2UsIHRoZW4gRW1hY3MgdXNlcyBhbiBBU0NJSSBmb250LAp3aXRoIOKAmGZvbnRzZXQt ZGVmYXVsdOKAmSBhcyBhIGZhbGxiYWNrIGZvciBjaGFyYWN0ZXJzIHRoZSBmb250IGRvZXMgbm90 CmNvdmVyLiAgVGhlIHN0YW5kYXJkIGZvbnRzZXQgaXMgb25seSB1c2VkIGlmIGV4cGxpY2l0bHkg cmVxdWVzdGVkLApkZXNwaXRlIGl0cyBuYW1lLgoKICAgVG8gc2hvdyB0aGUgaW5mb3JtYXRpb24g YWJvdXQgYSBzcGVjaWZpYyBmb250c2V0LCB1c2UgdGhlIOKAmE0teCBkZXNjcmliZS1mb250c2V0 4oCZCmNvbW1hbmQuICBJdCBwcm9tcHRzIGZvciBhIGZvbnRzZXQgbmFtZSwgZGVmYXVsdGluZyB0 byB0aGUgb25lIHVzZWQgYnkKdGhlIGN1cnJlbnQgZnJhbWUsIGFuZCB0aGVuIGRpc3BsYXlzIGFs bCB0aGUgc3VicmFuZ2VzIG9mIGNoYXJhY3RlcnMgYW5kCnRoZSBmb250cyBhc3NpZ25lZCB0byB0 aGVtIGluIHRoYXQgZm9udHNldC4KCiAgIEEgZm9udHNldCBkb2VzIG5vdCBuZWNlc3NhcmlseSBz cGVjaWZ5IGEgZm9udCBmb3IgZXZlcnkgY2hhcmFjdGVyCmNvZGUuICBJZiBhIGZvbnRzZXQgc3Bl Y2lmaWVzIG5vIGZvbnQgZm9yIGEgY2VydGFpbiBjaGFyYWN0ZXIsIG9yIGlmIGl0CnNwZWNpZmll cyBhIGZvbnQgdGhhdCBkb2VzIG5vdCBleGlzdCBvbiB5b3VyIHN5c3RlbSwgdGhlbiBpdCBjYW5u b3QKZGlzcGxheSB0aGF0IGNoYXJhY3RlciBwcm9wZXJseS4gIEl0IHdpbGwgZGlzcGxheSB0aGF0 IGNoYXJhY3RlciBhcyBhCmhleCBjb2RlIG9yIHRoaW4gc3BhY2Ugb3IgYW4gZW1wdHkgYm94IGlu c3RlYWQuICAoKk5vdGUgZ2x5cGhsZXNzCmNoYXJhY3RlcnM6IFRleHQgRGlzcGxheSwgZm9yIGRl dGFpbHMuKQoKICAgLS0tLS0tLS0tLSBGb290bm90ZXMgLS0tLS0tLS0tLQoKICAgKDEpIElmIHlv dSBydW4gRW1hY3Mgb24gWCwgeW91IG1heSBuZWVkIHRvIGluZm9ybSB0aGUgWCBzZXJ2ZXIgYWJv dXQKdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXdseSBpbnN0YWxsZWQgZm9udHMgd2l0aCBjb21tYW5k cyBzdWNoIGFzOgoKICAgICAgeHNldCBmcCsgL3Vzci9sb2NhbC9zaGFyZS9lbWFjcy9mb250cwog ICAgICB4c2V0IGZwIHJlaGFzaAoKCioqIDIyLjE0IERlZmluaW5nIEZvbnRzZXRzCgpXaGVuIHJ1 bm5pbmcgb24gWCwgRW1hY3MgY3JlYXRlcyBhIHN0YW5kYXJkIGZvbnRzZXQgYXV0b21hdGljYWxs eQphY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mIOKAmHN0YW5kYXJkLWZvbnRzZXQtc3BlY+KAmS4g IFRoaXMgZm9udHNldOKAmXMgbmFtZQppcwoKICAgICAtKi1maXhlZC1tZWRpdW0tci1ub3JtYWwt Ki0xNi0qLSotKi0qLSotZm9udHNldC1zdGFuZGFyZAoKb3IganVzdCDigJhmb250c2V0LXN0YW5k YXJk4oCZIGZvciBzaG9ydC4KCiAgIE9uIEdOVXN0ZXAgYW5kIG1hY09TLCB0aGUgc3RhbmRhcmQg Zm9udHNldCBpcyBjcmVhdGVkIHVzaW5nIHRoZSB2YWx1ZQpvZiDigJhucy1zdGFuZGFyZC1mb250 c2V0LXNwZWPigJksIGFuZCBvbiBNUyBXaW5kb3dzIGl0IGlzIGNyZWF0ZWQgdXNpbmcgdGhlCnZh bHVlIG9mIOKAmHczMi1zdGFuZGFyZC1mb250c2V0LXNwZWPigJkuCgogICBCb2xkLCBpdGFsaWMs IGFuZCBib2xkLWl0YWxpYyB2YXJpYW50cyBvZiB0aGUgc3RhbmRhcmQgZm9udHNldCBhcmUKY3Jl YXRlZCBhdXRvbWF0aWNhbGx5LiAgVGhlaXIgbmFtZXMgaGF2ZSDigJhib2xk4oCZIGluc3RlYWQg b2Yg4oCYbWVkaXVt4oCZLCBvcgrigJhp4oCZIGluc3RlYWQgb2Yg4oCYcuKAmSwgb3IgYm90aC4K CiAgIEVtYWNzIGdlbmVyYXRlcyBhIGZvbnRzZXQgYXV0b21hdGljYWxseSwgYmFzZWQgb24gYW55 IGRlZmF1bHQgQVNDSUkKZm9udCB0aGF0IHlvdSBzcGVjaWZ5IHdpdGggdGhlIOKAmEZvbnTigJkg cmVzb3VyY2Ugb3IgdGhlIOKAmC1mbuKAmSBhcmd1bWVudCwgb3IKdGhlIGRlZmF1bHQgZm9udCB0 aGF0IEVtYWNzIGZvdW5kIHdoZW4gaXQgc3RhcnRlZC4gIFRoaXMgaXMgdGhlICJzdGFydHVwCmZv bnRzZXQiIGFuZCBpdHMgbmFtZSBpcyDigJhmb250c2V0LXN0YXJ0dXDigJkuICBFbWFjcyBnZW5l cmF0ZXMgdGhpcwpmb250c2V0IGJ5IHJlcGxhY2luZyB0aGUgQ0hBUlNFVF9SRUdJU1RSWSBmaWVs ZCB3aXRoIOKAmGZvbnRzZXTigJksIGFuZApyZXBsYWNpbmcgdGhlIENIQVJTRVRfRU5DT0RJTkcg ZmllbGQgd2l0aCDigJhzdGFydHVw4oCZLCB0aGVuIHVzaW5nIHRoZQpyZXN1bHRpbmcgc3RyaW5n IHRvIHNwZWNpZnkgYSBmb250c2V0LgoKICAgRm9yIGluc3RhbmNlLCBpZiB5b3Ugc3RhcnQgRW1h Y3Mgd2l0aCBhIGZvbnQgb2YgdGhpcyBmb3JtLAoKICAgICBlbWFjcyAtZm4gIipjb3VyaWVyLW1l ZGl1bS1yLW5vcm1hbC0tMTQtMTQwLSotaXNvODg1OS0xIgoKRW1hY3MgZ2VuZXJhdGVzIHRoZSBm b2xsb3dpbmcgZm9udHNldCBhbmQgdXNlcyBpdCBmb3IgdGhlIGluaXRpYWwgWAp3aW5kb3cgZnJh bWU6CgogICAgIC0qLWNvdXJpZXItbWVkaXVtLXItbm9ybWFsLSotMTQtMTQwLSotKi0qLSotZm9u dHNldC1zdGFydHVwCgogICBUaGUgc3RhcnR1cCBmb250c2V0IHdpbGwgdXNlIHRoZSBmb250IHRo YXQgeW91IHNwZWNpZnksIG9yIGEgdmFyaWFudAp3aXRoIGEgZGlmZmVyZW50IHJlZ2lzdHJ5IGFu ZCBlbmNvZGluZywgZm9yIGFsbCB0aGUgY2hhcmFjdGVycyB0aGF0IGFyZQpzdXBwb3J0ZWQgYnkg dGhhdCBmb250LCBhbmQgZmFsbGJhY2sgb24g4oCYZm9udHNldC1kZWZhdWx04oCZIGZvciBvdGhl cgpjaGFyYWN0ZXJzLgoKICAgV2l0aCB0aGUgWCByZXNvdXJjZSDigJhFbWFjcy5Gb2504oCZLCB5 b3UgY2FuIHNwZWNpZnkgYSBmb250c2V0IG5hbWUganVzdApsaWtlIGFuIGFjdHVhbCBmb250IG5h bWUuICBCdXQgYmUgY2FyZWZ1bCBub3QgdG8gc3BlY2lmeSBhIGZvbnRzZXQgbmFtZQppbiBhIHdp bGRjYXJkIHJlc291cmNlIGxpa2Ug4oCYRW1hY3MqRm9udOKAmeKAlHRoYXQgd2lsZGNhcmQgc3Bl Y2lmaWNhdGlvbgptYXRjaGVzIHZhcmlvdXMgb3RoZXIgcmVzb3VyY2VzLCBzdWNoIGFzIGZvciBt ZW51cywgYW5kIG1lbnVzIGNhbm5vdApoYW5kbGUgZm9udHNldHMuICAqTm90ZSBYIFJlc291cmNl czo6LgoKICAgWW91IGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgZm9udHNldHMgdXNpbmcgWCByZXNv dXJjZXMgbmFtZWQK4oCYRm9udHNldC1O4oCZLCB3aGVyZSBOIGlzIGFuIGludGVnZXIgc3RhcnRp bmcgZnJvbSAwLiAgVGhlIHJlc291cmNlIHZhbHVlCnNob3VsZCBoYXZlIHRoaXMgZm9ybToKCiAg ICAgRk9OVFBBVFRFUk4sIFtDSEFSU0VUOkZPTlRd4oCmCgp3aGVyZSBGT05UUEFUVEVSTiBzaG91 bGQgaGF2ZSB0aGUgZm9ybSBvZiBhIHN0YW5kYXJkIFggZm9udCBuYW1lIChzZWUKdGhlIHByZXZp b3VzIGZvbnRzZXQtc3RhcnR1cCBleGFtcGxlKSwgZXhjZXB0IGZvciB0aGUgbGFzdCB0d28gZmll bGRzLgpUaGV5IHNob3VsZCBoYXZlIHRoZSBmb3JtIOKAmGZvbnRzZXQtQUxJQVPigJkuCgogICBF YWNoIGZvbnRzZXQgaGFzIHR3byBuYW1lcywgb25lIGxvbmcgYW5kIG9uZSBzaG9ydC4gIFRoZSBs b25nIG5hbWUgaXMKRk9OVFBBVFRFUk4uICBUaGUgc2hvcnQgbmFtZSBpcyDigJhmb250c2V0LUFM SUFT4oCZLCB0aGUgbGFzdCAyIGZpZWxkcyBvZgp0aGUgbG9uZyBuYW1lIChlLmcuLCDigJhmb250 c2V0LXN0YXJ0dXDigJkgZm9yIHRoZSBmb250c2V0IGF1dG9tYXRpY2FsbHkKY3JlYXRlZCBhdCBz dGFydHVwKS4gIFlvdSBjYW4gcmVmZXIgdG8gdGhlIGZvbnRzZXQgYnkgZWl0aGVyIG5hbWUuCgog ICBUaGUgY29uc3RydWN0IOKAmENIQVJTRVQ6Rk9OVOKAmSBzcGVjaWZpZXMgd2hpY2ggZm9udCB0 byB1c2UgKGluIHRoaXMKZm9udHNldCkgZm9yIG9uZSBwYXJ0aWN1bGFyIGNoYXJhY3RlciBzZXQu ICBIZXJlLCBDSEFSU0VUIGlzIHRoZSBuYW1lIG9mCmEgY2hhcmFjdGVyIHNldCwgYW5kIEZPTlQg aXMgdGhlIGZvbnQgdG8gdXNlIGZvciB0aGF0IGNoYXJhY3RlciBzZXQuCllvdSBjYW4gdXNlIHRo aXMgY29uc3RydWN0IGFueSBudW1iZXIgb2YgdGltZXMgaW4gZGVmaW5pbmcgb25lIGZvbnRzZXQu CgogICBGb3IgdGhlIG90aGVyIGNoYXJhY3RlciBzZXRzLCBFbWFjcyBjaG9vc2VzIGEgZm9udCBi YXNlZCBvbgpGT05UUEFUVEVSTi4gIEl0IHJlcGxhY2VzIOKAmGZvbnRzZXQtQUxJQVPigJkgd2l0 aCB2YWx1ZXMgdGhhdCBkZXNjcmliZSB0aGUKY2hhcmFjdGVyIHNldC4gIEZvciB0aGUgQVNDSUkg Y2hhcmFjdGVyIGZvbnQsIOKAmGZvbnRzZXQtQUxJQVPigJkgaXMKcmVwbGFjZWQgd2l0aCDigJhJ U084ODU5LTHigJkuCgogICBJbiBhZGRpdGlvbiwgd2hlbiBzZXZlcmFsIGNvbnNlY3V0aXZlIGZp ZWxkcyBhcmUgd2lsZGNhcmRzLCBFbWFjcwpjb2xsYXBzZXMgdGhlbSBpbnRvIGEgc2luZ2xlIHdp bGRjYXJkLiAgVGhpcyBpcyB0byBwcmV2ZW50IHVzZSBvZgphdXRvLXNjYWxlZCBmb250cy4gIEZv bnRzIG1hZGUgYnkgc2NhbGluZyBsYXJnZXIgZm9udHMgYXJlIG5vdCB1c2FibGUKZm9yIGVkaXRp bmcsIGFuZCBzY2FsaW5nIGEgc21hbGxlciBmb250IGlzIGFsc28gbm90IHVzZWZ1bCwgYmVjYXVz ZSBpdAppcyBiZXR0ZXIgdG8gdXNlIHRoZSBzbWFsbGVyIGZvbnQgaW4gaXRzIG93biBzaXplLCB3 aGljaCBpcyB3aGF0IEVtYWNzCmRvZXMuCgogICBUaHVzIGlmIEZPTlRQQVRURVJOIGlzIHRoaXMs CgogICAgIC0qLWZpeGVkLW1lZGl1bS1yLW5vcm1hbC0qLTI0LSotKi0qLSotKi1mb250c2V0LTI0 Cgp0aGUgZm9udCBzcGVjaWZpY2F0aW9uIGZvciBBU0NJSSBjaGFyYWN0ZXJzIHdvdWxkIGJlIHRo aXM6CgogICAgIC0qLWZpeGVkLW1lZGl1bS1yLW5vcm1hbC0qLTI0LSotSVNPODg1OS0xCgphbmQg dGhlIGZvbnQgc3BlY2lmaWNhdGlvbiBmb3IgQ2hpbmVzZSBHQjIzMTIgY2hhcmFjdGVycyB3b3Vs ZCBiZSB0aGlzOgoKICAgICAtKi1maXhlZC1tZWRpdW0tci1ub3JtYWwtKi0yNC0qLWdiMjMxMiot KgoKICAgWW91IG1heSBub3QgaGF2ZSBhbnkgQ2hpbmVzZSBmb250IG1hdGNoaW5nIHRoZSBhYm92 ZSBmb250CnNwZWNpZmljYXRpb24uICBNb3N0IFggZGlzdHJpYnV0aW9ucyBpbmNsdWRlIG9ubHkg Q2hpbmVzZSBmb250cyB0aGF0CmhhdmUg4oCYc29uZyB0aeKAmSBvciDigJhmYW5nc29uZyB0aeKA mSBpbiB0aGUgRkFNSUxZIGZpZWxkLiAgSW4gc3VjaCBhIGNhc2UsCuKAmEZvbnRzZXQtTuKAmSBj YW4gYmUgc3BlY2lmaWVkIGFzOgoKICAgICBFbWFjcy5Gb250c2V0LTA6IC0qLWZpeGVkLW1lZGl1 bS1yLW5vcm1hbC0qLTI0LSotKi0qLSotKi1mb250c2V0LTI0LFwKICAgICAgICAgICAgIGNoaW5l c2UtZ2IyMzEyOi0qLSotbWVkaXVtLXItbm9ybWFsLSotMjQtKi1nYjIzMTIqLSoKClRoZW4sIHRo ZSBmb250IHNwZWNpZmljYXRpb25zIGZvciBhbGwgYnV0IENoaW5lc2UgR0IyMzEyIGNoYXJhY3Rl cnMgaGF2ZQrigJhmaXhlZOKAmSBpbiB0aGUgRkFNSUxZIGZpZWxkLCBhbmQgdGhlIGZvbnQgc3Bl Y2lmaWNhdGlvbiBmb3IgQ2hpbmVzZQpHQjIzMTIgY2hhcmFjdGVycyBoYXMgYSB3aWxkIGNhcmQg 4oCYKuKAmSBpbiB0aGUgRkFNSUxZIGZpZWxkLgoKICAgVGhlIGZ1bmN0aW9uIHRoYXQgcHJvY2Vz c2VzIHRoZSBmb250c2V0IHJlc291cmNlIHZhbHVlIHRvIGNyZWF0ZSB0aGUKZm9udHNldCBpcyBj YWxsZWQg4oCYY3JlYXRlLWZvbnRzZXQtZnJvbS1mb250c2V0LXNwZWPigJkuICBZb3UgY2FuIGFs c28gY2FsbAp0aGlzIGZ1bmN0aW9uIGV4cGxpY2l0bHkgdG8gY3JlYXRlIGEgZm9udHNldC4KCiAg ICpOb3RlIEZvbnRzOjosIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGZvbnQgbmFtaW5nLgoK CioqIDIyLjE1IE1vZGlmeWluZyBGb250c2V0cwoKRm9udHNldHMgZG8gbm90IGFsd2F5cyBoYXZl IHRvIGJlIGNyZWF0ZWQgZnJvbSBzY3JhdGNoLiAgSWYgb25seSBtaW5vcgpjaGFuZ2VzIGFyZSBy ZXF1aXJlZCBpdCBtYXkgYmUgZWFzaWVyIHRvIG1vZGlmeSBhbiBleGlzdGluZyBmb250c2V0LgpN b2RpZnlpbmcg4oCYZm9udHNldC1kZWZhdWx04oCZIHdpbGwgYWxzbyBhZmZlY3Qgb3RoZXIgZm9u dHNldHMgdGhhdCB1c2UgaXQKYXMgYSBmYWxsYmFjaywgc28gY2FuIGJlIGFuIGVmZmVjdGl2ZSB3 YXkgb2YgZml4aW5nIHByb2JsZW1zIHdpdGggdGhlCmZvbnRzIHRoYXQgRW1hY3MgY2hvb3NlcyBm b3IgYSBwYXJ0aWN1bGFyIHNjcmlwdC4KCiAgIEZvbnRzZXRzIGNhbiBiZSBtb2RpZmllZCB1c2lu ZyB0aGUgZnVuY3Rpb24g4oCYc2V0LWZvbnRzZXQtZm9udOKAmSwKc3BlY2lmeWluZyBhIGNoYXJh Y3RlciwgYSBjaGFyc2V0LCBhIHNjcmlwdCwgb3IgYSByYW5nZSBvZiBjaGFyYWN0ZXJzIHRvCm1v ZGlmeSB0aGUgZm9udCBmb3IsIGFuZCBhIGZvbnQgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGZvbnQg dG8gYmUgdXNlZC4KU29tZSBleGFtcGxlcyBhcmU6CgogICAgIDs7IFVzZSBMaWJlcmF0aW9uIE1v bm8gZm9yIGxhdGluLTMgY2hhcnNldC4KICAgICAoc2V0LWZvbnRzZXQtZm9udCAiZm9udHNldC1k ZWZhdWx0IiAnaXNvLTg4NTktMwogICAgICAgICAgICAgICAgICAgICAgICJMaWJlcmF0aW9uIE1v bm8iKQoKICAgICA7OyBQcmVmZXIgYSBiaWc1IGZvbnQgZm9yIGhhbiBjaGFyYWN0ZXJzLgogICAg IChzZXQtZm9udHNldC1mb250ICJmb250c2V0LWRlZmF1bHQiCiAgICAgICAgICAgICAgICAgICAg ICAgJ2hhbiAoZm9udC1zcGVjIDpyZWdpc3RyeSAiYmlnNSIpCiAgICAgICAgICAgICAgICAgICAg ICAgbmlsICdwcmVwZW5kKQoKICAgICA7OyBVc2UgRGVqYVZ1IFNhbnMgTW9ubyBhcyBhIGZhbGxi YWNrIGluIGZvbnRzZXQtc3RhcnR1cAogICAgIDs7IGJlZm9yZSByZXNvcnRpbmcgdG8gZm9udHNl dC1kZWZhdWx0LgogICAgIChzZXQtZm9udHNldC1mb250ICJmb250c2V0LXN0YXJ0dXAiIG5pbCAi RGVqYVZ1IFNhbnMgTW9ubyIKICAgICAgICAgICAgICAgICAgICAgICBuaWwgJ2FwcGVuZCkKCiAg ICAgOzsgVXNlIE15UHJpdmF0ZUZvbnQgZm9yIHRoZSBVbmljb2RlIHByaXZhdGUgdXNlIGFyZWEu CiAgICAgKHNldC1mb250c2V0LWZvbnQgImZvbnRzZXQtZGVmYXVsdCIgICcoI3hlMDAwIC4gI3hm OGZmKQogICAgICAgICAgICAgICAgICAgICAgICJNeVByaXZhdGVGb250IikKCiAgIFNvbWUgZm9u dHMgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtIG1pZ2h0IGJlIGJyb2tlbiwgb3IgcHJvZHVjZQp1 bnBsZWFzYW50IHJlc3VsdHMgZm9yIGNoYXJhY3RlcnMgZm9yIHdoaWNoIHRoZXkgYXJlIHVzZWQs IGFuZCB5b3UgbWF5Cndpc2ggdG8gaW5zdHJ1Y3QgRW1hY3MgdG8gY29tcGxldGVseSBpZ25vcmUg dGhlbSB3aGlsZSBzZWFyY2hpbmcgZm9yIGEKc3VpdGFibGUgZm9udCByZXF1aXJlZCB0byBkaXNw bGF5IGEgY2hhcmFjdGVyLiAgWW91IGNhbiBkbyB0aGF0IGJ5CmFkZGluZyB0aGUgb2ZmZW5kaW5n IGZvbnRzIHRvIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUK4oCYZmFjZS1pZ25vcmVkLWZvbnRz 4oCZLCB3aGljaCBpcyBhIGxpc3QuICBIZXJl4oCZcyBhbiBleGFtcGxlIHRvIHB1dCBpbiB5b3Vy CuKAmH4vLmVtYWNz4oCZOgoKICAgICAoYWRkLXRvLWxpc3QgJ2ZhY2UtaWdub3JlZC1mb250cyAi U29tZSBCYWQgRm9udCIpCgoKKiogMjIuMTYgVW5kaXNwbGF5YWJsZSBDaGFyYWN0ZXJzCgpUaGVy ZSBtYXkgYmUgc29tZSBub24tQVNDSUkgY2hhcmFjdGVycyB0aGF0IHlvdXIgdGVybWluYWwgY2Fu bm90CmRpc3BsYXkuICBNb3N0IHRleHQgdGVybWluYWxzIHN1cHBvcnQganVzdCBhIHNpbmdsZSBj aGFyYWN0ZXIgc2V0ICh1c2UKdGhlIHZhcmlhYmxlIOKAmGRlZmF1bHQtdGVybWluYWwtY29kaW5n LXN5c3RlbeKAmSB0byB0ZWxsIEVtYWNzIHdoaWNoIG9uZSwKKm5vdGUgVGVybWluYWwgQ29kaW5n OjopOyBjaGFyYWN0ZXJzIHRoYXQgY2Fu4oCZdCBiZSBlbmNvZGVkIGluIHRoYXQKY29kaW5nIHN5 c3RlbSBhcmUgZGlzcGxheWVkIGFzIOKAmD/igJkgYnkgZGVmYXVsdC4KCiAgIEdyYXBoaWNhbCBk aXNwbGF5cyBjYW4gZGlzcGxheSBhIGJyb2FkZXIgcmFuZ2Ugb2YgY2hhcmFjdGVycywgYnV0IHlv dQptYXkgbm90IGhhdmUgZm9udHMgaW5zdGFsbGVkIGZvciBhbGwgb2YgdGhlbTsgY2hhcmFjdGVy cyB0aGF0IGhhdmUgbm8KZm9udCBhcHBlYXIgYXMgYSBob2xsb3cgYm94LgoKICAgSWYgeW91IHVz ZSBMYXRpbi0xIGNoYXJhY3RlcnMgYnV0IHlvdXIgdGVybWluYWwgY2Fu4oCZdCBkaXNwbGF5Ckxh dGluLTEsIHlvdSBjYW4gYXJyYW5nZSB0byBkaXNwbGF5IG1uZW1vbmljIEFTQ0lJIHNlcXVlbmNl cyBpbnN0ZWFkLAplLmcuLCDigJgib+KAmSBmb3Igby11bWxhdXQuICBMb2FkIHRoZSBsaWJyYXJ5 IOKAmGlzby1hc2NpaeKAmSB0byBkbyB0aGlzLgoKICAgSWYgeW91ciB0ZXJtaW5hbCBjYW4gZGlz cGxheSBMYXRpbi0xLCB5b3UgY2FuIGRpc3BsYXkgY2hhcmFjdGVycyBmcm9tCm90aGVyIEV1cm9w ZWFuIGNoYXJhY3RlciBzZXRzIHVzaW5nIGEgbWl4dHVyZSBvZiBlcXVpdmFsZW50IExhdGluLTEK Y2hhcmFjdGVycyBhbmQgQVNDSUkgbW5lbW9uaWNzLiAgQ3VzdG9taXplIHRoZSB2YXJpYWJsZSDi gJhsYXRpbjEtZGlzcGxheeKAmQp0byBlbmFibGUgdGhpcy4gIFRoZSBtbmVtb25pYyBBU0NJSSBz ZXF1ZW5jZXMgbW9zdGx5IGNvcnJlc3BvbmQgdG8gdGhvc2UKb2YgdGhlIHByZWZpeCBpbnB1dCBt ZXRob2RzLgoKCioqIDIyLjE3IFVuaWJ5dGUgRWRpdGluZyBNb2RlCgpUaGUgSVNPIDg4NTkgTGF0 aW4tTiBjaGFyYWN0ZXIgc2V0cyBkZWZpbmUgY2hhcmFjdGVyIGNvZGVzIGluIHRoZSByYW5nZQow MjQwIHRvIDAzNzcgb2N0YWwgKDE2MCB0byAyNTUgZGVjaW1hbCkgdG8gaGFuZGxlIHRoZSBhY2Nl bnRlZCBsZXR0ZXJzCmFuZCBwdW5jdHVhdGlvbiBuZWVkZWQgYnkgdmFyaW91cyBFdXJvcGVhbiBs YW5ndWFnZXMgKGFuZCBzb21lCm5vbi1FdXJvcGVhbiBvbmVzKS4gIE5vdGUgdGhhdCBFbWFjcyBj b25zaWRlcnMgYnl0ZXMgd2l0aCBjb2RlcyBpbiB0aGlzCnJhbmdlIGFzIHJhdyBieXRlcywgbm90 IGFzIGNoYXJhY3RlcnMsIGV2ZW4gaW4gYSB1bmlieXRlIGJ1ZmZlciwgaS5lLiwKaWYgeW91IGRp c2FibGUgbXVsdGlieXRlIGNoYXJhY3RlcnMuICBIb3dldmVyLCBFbWFjcyBjYW4gc3RpbGwgaGFu ZGxlCnRoZXNlIGNoYXJhY3RlciBjb2RlcyBhcyBpZiB0aGV5IGJlbG9uZ2VkIHRvIF9vbmVfIG9m IHRoZSBzaW5nbGUtYnl0ZQpjaGFyYWN0ZXIgc2V0cyBhdCBhIHRpbWUuICBUbyBzcGVjaWZ5IF93 aGljaF8gb2YgdGhlc2UgY29kZXMgdG8gdXNlLAppbnZva2Ug4oCYTS14IHNldC1sYW5ndWFnZS1l bnZpcm9ubWVudOKAmSBhbmQgc3BlY2lmeSBhIHN1aXRhYmxlIGxhbmd1YWdlCmVudmlyb25tZW50 IHN1Y2ggYXMg4oCYTGF0aW4tTuKAmS4gICpOb3RlIERpc2FibGluZyBNdWx0aWJ5dGUgQ2hhcmFj dGVyczoKKGVsaXNwKURpc2FibGluZyBNdWx0aWJ5dGUuCgogICBFbWFjcyBjYW4gYWxzbyBkaXNw bGF5IGJ5dGVzIGluIHRoZSByYW5nZSAxNjAgdG8gMjU1IGFzIHJlYWRhYmxlCmNoYXJhY3RlcnMs IHByb3ZpZGVkIHRoZSB0ZXJtaW5hbCBvciBmb250IGluIHVzZSBzdXBwb3J0cyB0aGVtLiAgVGhp cwp3b3JrcyBhdXRvbWF0aWNhbGx5LiAgT24gYSBncmFwaGljYWwgZGlzcGxheSwgRW1hY3MgY2Fu IGFsc28gZGlzcGxheQpzaW5nbGUtYnl0ZSBjaGFyYWN0ZXJzIHRocm91Z2ggZm9udHNldHMsIGlu IGVmZmVjdCBieSBkaXNwbGF5aW5nIHRoZQplcXVpdmFsZW50IG11bHRpYnl0ZSBjaGFyYWN0ZXJz IGFjY29yZGluZyB0byB0aGUgY3VycmVudCBsYW5ndWFnZQplbnZpcm9ubWVudC4gIFRvIHJlcXVl c3QgdGhpcywgc2V0IHRoZSB2YXJpYWJsZQrigJh1bmlieXRlLWRpc3BsYXktdmlhLWxhbmd1YWdl LWVudmlyb25tZW504oCZIHRvIGEgbm9uLeKAmG5pbOKAmSB2YWx1ZS4gIE5vdGUKdGhhdCBzZXR0 aW5nIHRoaXMgb25seSBhZmZlY3RzIGhvdyB0aGVzZSBieXRlcyBhcmUgZGlzcGxheWVkLCBidXQg ZG9lcwpub3QgY2hhbmdlIHRoZSBmdW5kYW1lbnRhbCBmYWN0IHRoYXQgRW1hY3MgdHJlYXRzIHRo ZW0gYXMgcmF3IGJ5dGVzLCBub3QKYXMgY2hhcmFjdGVycy4KCiAgIElmIHlvdXIgdGVybWluYWwg ZG9lcyBub3Qgc3VwcG9ydCBkaXNwbGF5IG9mIHRoZSBMYXRpbi0xIGNoYXJhY3RlcgpzZXQsIEVt YWNzIGNhbiBkaXNwbGF5IHRoZXNlIGNoYXJhY3RlcnMgYXMgQVNDSUkgc2VxdWVuY2VzIHdoaWNo IGF0CmxlYXN0IGdpdmUgeW91IGEgY2xlYXIgaWRlYSBvZiB3aGF0IHRoZSBjaGFyYWN0ZXJzIGFy ZS4gIFRvIGRvIHRoaXMsCmxvYWQgdGhlIGxpYnJhcnkg4oCYaXNvLWFzY2lp4oCZLiAgU2ltaWxh ciBsaWJyYXJpZXMgZm9yIG90aGVyIExhdGluLU4KY2hhcmFjdGVyIHNldHMgY291bGQgYmUgaW1w bGVtZW50ZWQsIGJ1dCBoYXZlIG5vdCBiZWVuIHNvIGZhci4KCiAgIE5vcm1hbGx5IG5vbi1JU08t ODg1OSBjaGFyYWN0ZXJzIChkZWNpbWFsIGNvZGVzIGJldHdlZW4gMTI4IGFuZCAxNTkKaW5jbHVz aXZlKSBhcmUgZGlzcGxheWVkIGFzIG9jdGFsIGVzY2FwZXMuICBZb3UgY2FuIGNoYW5nZSB0aGlz IGZvcgpub24tc3RhbmRhcmQgZXh0ZW5kZWQgdmVyc2lvbnMgb2YgSVNPLTg4NTkgY2hhcmFjdGVy IHNldHMgYnkgdXNpbmcgdGhlCmZ1bmN0aW9uIOKAmHN0YW5kYXJkLWRpc3BsYXktOGJpdOKAmSBp biB0aGUg4oCYZGlzcC10YWJsZeKAmSBsaWJyYXJ5LgoKICAgVGhlcmUgYXJlIHR3byB3YXlzIHRv IGlucHV0IHNpbmdsZS1ieXRlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzOgoKICAg4oCiIFlvdSBjYW4g dXNlIGFuIGlucHV0IG1ldGhvZCBmb3IgdGhlIHNlbGVjdGVkIGxhbmd1YWdlIGVudmlyb25tZW50 LgogICAgICpOb3RlIElucHV0IE1ldGhvZHM6Oi4gIFdoZW4geW91IHVzZSBhbiBpbnB1dCBtZXRo b2QgaW4gYSB1bmlieXRlCiAgICAgYnVmZmVyLCB0aGUgbm9uLUFTQ0lJIGNoYXJhY3RlciB5b3Ug c3BlY2lmeSB3aXRoIGl0IGlzIGNvbnZlcnRlZCB0bwogICAgIHVuaWJ5dGUuCgogICDigKIgSWYg eW91ciBrZXlib2FyZCBjYW4gZ2VuZXJhdGUgY2hhcmFjdGVyIGNvZGVzIDEyOCAoZGVjaW1hbCkg YW5kIHVwLAogICAgIHJlcHJlc2VudGluZyBub24tQVNDSUkgY2hhcmFjdGVycywgeW91IGNhbiB0 eXBlIHRob3NlIGNoYXJhY3RlcgogICAgIGNvZGVzIGRpcmVjdGx5LgoKICAgICBPbiBhIGdyYXBo aWNhbCBkaXNwbGF5LCB5b3Ugc2hvdWxkIG5vdCBuZWVkIHRvIGRvIGFueXRoaW5nIHNwZWNpYWwK ICAgICB0byB1c2UgdGhlc2Uga2V5czsgdGhleSBzaG91bGQgc2ltcGx5IHdvcmsuICBPbiBhIHRl eHQgdGVybWluYWwsCiAgICAgeW91IHNob3VsZCB1c2UgdGhlIGNvbW1hbmQg4oCYTS14IHNldC1r ZXlib2FyZC1jb2Rpbmctc3lzdGVt4oCZIG9yCiAgICAgY3VzdG9taXplIHRoZSB2YXJpYWJsZSDi gJhrZXlib2FyZC1jb2Rpbmctc3lzdGVt4oCZIHRvIHNwZWNpZnkgd2hpY2gKICAgICBjb2Rpbmcg c3lzdGVtIHlvdXIga2V5Ym9hcmQgdXNlcyAoKm5vdGUgVGVybWluYWwgQ29kaW5nOjopLgogICAg IEVuYWJsaW5nIHRoaXMgZmVhdHVyZSB3aWxsIHByb2JhYmx5IHJlcXVpcmUgeW91IHRvIHVzZSA8 RVNDPiB0bwogICAgIHR5cGUgTWV0YSBjaGFyYWN0ZXJzOyBob3dldmVyLCBvbiBhIGNvbnNvbGUg dGVybWluYWwgb3IgYSB0ZXJtaW5hbAogICAgIGVtdWxhdG9yIHN1Y2ggYXMg4oCYeHRlcm3igJks IHlvdSBjYW4gYXJyYW5nZSBmb3IgTWV0YSB0byBiZSBjb252ZXJ0ZWQKICAgICB0byA8RVNDPiBh bmQgc3RpbGwgYmUgYWJsZSB0byB0eXBlIDgtYml0IGNoYXJhY3RlcnMgcHJlc2VudAogICAgIGRp cmVjdGx5IG9uIHRoZSBrZXlib2FyZCBvciB1c2luZyA8Q29tcG9zZT4gb3IgPEFsdEdyPiBrZXlz LiAgKk5vdGUKICAgICBVc2VyIElucHV0OjouCgogICDigKIgWW91IGNhbiB1c2UgdGhlIGtleSDi gJhDLXggOOKAmSBhcyBhIGNvbXBvc2UtY2hhcmFjdGVyIHByZWZpeCBmb3IgZW50cnkKICAgICBv ZiBub24tQVNDSUkgTGF0aW4tMSBhbmQgYSBmZXcgb3RoZXIgcHJpbnRpbmcgY2hhcmFjdGVycy4g IOKAmEMteCA44oCZCiAgICAgaXMgZ29vZCBmb3IgaW5zZXJ0aW9uIChpbiB0aGUgbWluaWJ1ZmZl ciBhcyB3ZWxsIGFzIG90aGVyIGJ1ZmZlcnMpLAogICAgIGZvciBzZWFyY2hpbmcsIGFuZCBpbiBh bnkgb3RoZXIgY29udGV4dCB3aGVyZSBhIGtleSBzZXF1ZW5jZSBpcwogICAgIGFsbG93ZWQuCgog ICAgIOKAmEMteCA44oCZIHdvcmtzIGJ5IGxvYWRpbmcgdGhlIOKAmGlzby10cmFuc2zigJkgbGli cmFyeS4gIE9uY2UgdGhhdAogICAgIGxpYnJhcnkgaXMgbG9hZGVkLCB0aGUgPEFsdD4gbW9kaWZp ZXIga2V5LCBpZiB0aGUga2V5Ym9hcmQgaGFzIG9uZSwKICAgICBzZXJ2ZXMgdGhlIHNhbWUgcHVy cG9zZSBhcyDigJhDLXggOOKAmTogdXNlIDxBbHQ+IHRvZ2V0aGVyIHdpdGggYW4KICAgICBhY2Nl bnQgY2hhcmFjdGVyIHRvIG1vZGlmeSB0aGUgZm9sbG93aW5nIGxldHRlci4gIEluIGFkZGl0aW9u LCBpZgogICAgIHRoZSBrZXlib2FyZCBoYXMga2V5cyBmb3IgdGhlIExhdGluLTEgZGVhZCBhY2Nl bnQgY2hhcmFjdGVycywgdGhleQogICAgIHRvbyBhcmUgZGVmaW5lZCB0byBjb21wb3NlIHdpdGgg dGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIsIG9uY2UKICAgICDigJhpc28tdHJhbnNs4oCZIGlzIGxv YWRlZC4KCiAgICAgVXNlIOKAmEMteCA4IEMtaOKAmSB0byBsaXN0IGFsbCB0aGUgYXZhaWxhYmxl IOKAmEMteCA44oCZIHRyYW5zbGF0aW9ucy4KCgoqKiAyMi4xOCBDaGFyc2V0cwoKSW4gRW1hY3Ms ICJjaGFyc2V0IiBpcyBzaG9ydCBmb3Ig4oCcY2hhcmFjdGVyIHNldOKAnS4gIEVtYWNzIHN1cHBv cnRzIG1vc3QKcG9wdWxhciBjaGFyc2V0cyAoc3VjaCBhcyDigJhhc2NpaeKAmSwg4oCYaXNvLTg4 NTktMeKAmSwg4oCYY3AxMjUw4oCZLCDigJhiaWc14oCZLCBhbmQK4oCYdW5pY29kZeKAmSksIGlu IGFkZGl0aW9uIHRvIHNvbWUgY2hhcnNldHMgb2YgaXRzIG93biAoc3VjaCBhcyDigJhlbWFjc+KA mSwK4oCYdW5pY29kZS1ibXDigJksIGFuZCDigJhlaWdodC1iaXTigJkpLiAgQWxsIHN1cHBvcnRl ZCBjaGFyYWN0ZXJzIGJlbG9uZyB0byBvbmUKb3IgbW9yZSBjaGFyc2V0cy4KCiAgIEVtYWNzIG5v cm1hbGx5IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIHdpdGggcmVzcGVjdCB0byBjaGFyc2V0cywgc28g dGhhdAp5b3UgZG9u4oCZdCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZW0uICBIb3dldmVyLCBpdCBp cyBzb21ldGltZXMgaGVscGZ1bCB0bwprbm93IHNvbWUgb2YgdGhlIHVuZGVybHlpbmcgZGV0YWls cyBhYm91dCBjaGFyc2V0cy4KCiAgIE9uZSBleGFtcGxlIGlzIGZvbnQgc2VsZWN0aW9uICgqbm90 ZSBGb250czo6KS4gIEVhY2ggbGFuZ3VhZ2UKZW52aXJvbm1lbnQgKCpub3RlIExhbmd1YWdlIEVu dmlyb25tZW50czo6KSBkZWZpbmVzIGEgcHJpb3JpdHkgbGlzdCBmb3IKdGhlIHZhcmlvdXMgY2hh cnNldHMuICBXaGVuIHNlYXJjaGluZyBmb3IgYSBmb250LCBFbWFjcyBpbml0aWFsbHkKYXR0ZW1w dHMgdG8gZmluZCBvbmUgdGhhdCBjYW4gZGlzcGxheSB0aGUgaGlnaGVzdC1wcmlvcml0eSBjaGFy c2V0cy4KRm9yIGluc3RhbmNlLCBpbiB0aGUgSmFwYW5lc2UgbGFuZ3VhZ2UgZW52aXJvbm1lbnQs IHRoZSBjaGFyc2V0CuKAmGphcGFuZXNlLWppc3gwMjA44oCZIGhhcyB0aGUgaGlnaGVzdCBwcmlv cml0eSwgc28gRW1hY3MgdHJpZXMgdG8gdXNlIGEKZm9udCB3aG9zZSDigJhyZWdpc3RyeeKAmSBw cm9wZXJ0eSBpcyDigJhKSVNYMDIwOC4xOTgzLTDigJkuCgogICBUaGVyZSBhcmUgdHdvIGNvbW1h bmRzIHRoYXQgY2FuIGJlIHVzZWQgdG8gb2J0YWluIGluZm9ybWF0aW9uIGFib3V0CmNoYXJzZXRz LiAgVGhlIGNvbW1hbmQg4oCYTS14IGxpc3QtY2hhcnNldC1jaGFyc+KAmSBwcm9tcHRzIGZvciBh IGNoYXJzZXQKbmFtZSwgYW5kIGRpc3BsYXlzIGFsbCB0aGUgY2hhcmFjdGVycyBpbiB0aGF0IGNo YXJhY3RlciBzZXQuICBUaGUKY29tbWFuZCDigJhNLXggZGVzY3JpYmUtY2hhcmFjdGVyLXNldOKA mSBwcm9tcHRzIGZvciBhIGNoYXJzZXQgbmFtZSwgYW5kCmRpc3BsYXlzIGluZm9ybWF0aW9uIGFi b3V0IHRoYXQgY2hhcnNldCwgaW5jbHVkaW5nIGl0cyBpbnRlcm5hbApyZXByZXNlbnRhdGlvbiB3 aXRoaW4gRW1hY3MuCgogICDigJhNLXggbGlzdC1jaGFyYWN0ZXItc2V0c+KAmSBkaXNwbGF5cyBh IGxpc3Qgb2YgYWxsIHN1cHBvcnRlZCBjaGFyc2V0cy4KVGhlIGxpc3QgZ2l2ZXMgdGhlIG5hbWVz IG9mIGNoYXJzZXRzIGFuZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvCmlkZW50aXR5IGVhY2gg Y2hhcnNldDsgZm9yIG1vcmUgZGV0YWlscywgc2VlIHRoZSBJU08gSW50ZXJuYXRpb25hbApSZWdp c3RlciBvZiBDb2RlZCBDaGFyYWN0ZXIgU2V0cyB0byBiZSBVc2VkIHdpdGggRXNjYXBlIFNlcXVl bmNlcwooSVNPLUlSKSAoaHR0cHM6Ly93d3cuaXRzY2ouaXBzai5vci5qcC9pdHNjal9lbmdsaXNo L2lzby1pci9JU08tSVIucGRmKQptYWludGFpbmVkIGJ5IHRoZSBJbmZvcm1hdGlvbiBQcm9jZXNz aW5nIFNvY2lldHkgb2YgSmFwYW4vSW5mb3JtYXRpb24KVGVjaG5vbG9neSBTdGFuZGFyZHMgQ29t bWlzc2lvbiBvZiBKYXBhbiAoSVBTSi9JVFNDSikKKGh0dHBzOi8vd3d3Lml0c2NqLmlwc2oub3Iu anAvaXRzY2pfZW5nbGlzaC8pLiAgSW4gdGhpcyBsaXN0LCBjaGFyc2V0cwphcmUgZGl2aWRlZCBp bnRvIHR3byBjYXRlZ29yaWVzOiAibm9ybWFsIGNoYXJzZXRzIiBhcmUgbGlzdGVkIGZpcnN0LApm b2xsb3dlZCBieSAic3VwcGxlbWVudGFyeSBjaGFyc2V0cyIuICBBIHN1cHBsZW1lbnRhcnkgY2hh cnNldCBpcyBvbmUKdGhhdCBpcyB1c2VkIHRvIGRlZmluZSBhbm90aGVyIGNoYXJzZXQgKGFzIGEg cGFyZW50IG9yIGEgc3Vic2V0KSwgb3IgdG8KcHJvdmlkZSBiYWNrd2FyZC1jb21wYXRpYmlsaXR5 IGZvciBvbGRlciBFbWFjcyB2ZXJzaW9ucy4KCiAgIFRvIGZpbmQgb3V0IHdoaWNoIGNoYXJzZXQg YSBjaGFyYWN0ZXIgaW4gdGhlIGJ1ZmZlciBiZWxvbmdzIHRvLCBwdXQKcG9pbnQgYmVmb3JlIGl0 IGFuZCB0eXBlIOKAmEMtdSBDLXggPeKAmSAoKm5vdGUgSW50ZXJuYXRpb25hbCBDaGFyczo6KS4K CgoqKiAyMi4xOSBCaWRpcmVjdGlvbmFsIEVkaXRpbmcKCkVtYWNzIHN1cHBvcnRzIGVkaXRpbmcg dGV4dCB3cml0dGVuIGluIHNjcmlwdHMsIHN1Y2ggYXMgQXJhYmljLCBGYXJzaSwKYW5kIEhlYnJl dywgd2hvc2UgbmF0dXJhbCBvcmRlcmluZyBvZiBob3Jpem9udGFsIHRleHQgZm9yIGRpc3BsYXkg aXMKZnJvbSByaWdodCB0byBsZWZ0LiAgSG93ZXZlciwgZGlnaXRzIGFuZCBMYXRpbiB0ZXh0IGVt YmVkZGVkIGluIHRoZXNlCnNjcmlwdHMgYXJlIHN0aWxsIGRpc3BsYXllZCBsZWZ0IHRvIHJpZ2h0 LiAgSXQgaXMgYWxzbyBub3QgdW5jb21tb24gdG8KaGF2ZSBzbWFsbCBwb3J0aW9ucyBvZiB0ZXh0 IGluIEFyYWJpYyBvciBIZWJyZXcgZW1iZWRkZWQgaW4gYW4gb3RoZXJ3aXNlCkxhdGluIGRvY3Vt ZW50OyBlLmcuLCBhcyBjb21tZW50cyBhbmQgc3RyaW5ncyBpbiBhIHByb2dyYW0gc291cmNlIGZp bGUuCkZvciB0aGVzZSByZWFzb25zLCB0ZXh0IHRoYXQgdXNlcyB0aGVzZSBzY3JpcHRzIGlzIGFj dHVhbGx5CiJiaWRpcmVjdGlvbmFsIjogYSBtaXh0dXJlIG9mIHJ1bnMgb2YgbGVmdC10by1yaWdo dCBhbmQgcmlnaHQtdG8tbGVmdApjaGFyYWN0ZXJzLgoKICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJl cyB0aGUgZmFjaWxpdGllcyBhbmQgb3B0aW9ucyBwcm92aWRlZCBieSBFbWFjcwpmb3IgZWRpdGlu ZyBiaWRpcmVjdGlvbmFsIHRleHQuCgogICBFbWFjcyBzdG9yZXMgcmlnaHQtdG8tbGVmdCBhbmQg YmlkaXJlY3Rpb25hbCB0ZXh0IGluIHRoZSBzby1jYWxsZWQKImxvZ2ljYWwiIChvciAicmVhZGlu ZyIpIG9yZGVyOiB0aGUgYnVmZmVyIG9yIHN0cmluZyBwb3NpdGlvbiBvZiB0aGUKZmlyc3QgY2hh cmFjdGVyIHlvdSByZWFkIHByZWNlZGVzIHRoYXQgb2YgdGhlIG5leHQgY2hhcmFjdGVyLgpSZW9y ZGVyaW5nIG9mIGJpZGlyZWN0aW9uYWwgdGV4dCBpbnRvIHRoZSAidmlzdWFsIiBvcmRlciBoYXBw ZW5zIGF0CmRpc3BsYXkgdGltZS4gIEFzIGEgcmVzdWx0LCBjaGFyYWN0ZXIgcG9zaXRpb25zIG5v IGxvbmdlciBpbmNyZWFzZQptb25vdG9uaWNhbGx5IHdpdGggdGhlaXIgcG9zaXRpb25zIG9uIGRp c3BsYXkuICBFbWFjcyBpbXBsZW1lbnRzIHRoZQpVbmljb2RlIEJpZGlyZWN0aW9uYWwgQWxnb3Jp dGhtIChVQkEpIGRlc2NyaWJlZCBpbiB0aGUgVW5pY29kZSBTdGFuZGFyZApBbm5leCAjOSAoaHR0 cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHI5LyksIGZvciByZW9yZGVyaW5nIG9mCmJpZGlyZWN0 aW9uYWwgdGV4dCBmb3IgZGlzcGxheS4gIEl0IGRldmlhdGVzIGZyb20gdGhlIFVCQSBvbmx5IGlu IGhvdwpjb250aW51YXRpb24gbGluZXMgYXJlIGRpc3BsYXllZCB3aGVuIHRleHQgZGlyZWN0aW9u IGlzIG9wcG9zaXRlIHRvIHRoZQpiYXNlIHBhcmFncmFwaCBkaXJlY3Rpb24sIGUuZy4sIHdoZW4g YSBsb25nIGxpbmUgb2YgRW5nbGlzaCB0ZXh0IGFwcGVhcnMKaW4gYSByaWdodC10by1sZWZ0IHBh cmFncmFwaC4KCiAgIFRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUg4oCYYmlkaS1kaXNwbGF5LXJl b3JkZXJpbmfigJkgY29udHJvbHMgd2hldGhlcgp0ZXh0IGluIHRoZSBidWZmZXIgaXMgcmVvcmRl cmVkIGZvciBkaXNwbGF5LiAgSWYgaXRzIHZhbHVlIGlzIG5vbi3igJhuaWzigJksCkVtYWNzIHJl b3JkZXJzIGNoYXJhY3RlcnMgdGhhdCBoYXZlIHJpZ2h0LXRvLWxlZnQgZGlyZWN0aW9uYWxpdHkg d2hlbgp0aGV5IGFyZSBkaXNwbGF5ZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyDigJh04oCZLgoK ICAgRWFjaCBwYXJhZ3JhcGggb2YgYmlkaXJlY3Rpb25hbCB0ZXh0IGNhbiBoYXZlIGl0cyBvd24g ImJhc2UKZGlyZWN0aW9uIiwgZWl0aGVyIHJpZ2h0LXRvLWxlZnQgb3IgbGVmdC10by1yaWdodC4g IFRleHQgaW4KbGVmdC10by1yaWdodCBwYXJhZ3JhcGhzIGJlZ2lucyBvbiB0aGUgc2NyZWVuIGF0 IHRoZSBsZWZ0IG1hcmdpbiBvZiB0aGUKd2luZG93IGFuZCBpcyB0cnVuY2F0ZWQgb3IgY29udGlu dWVkIHdoZW4gaXQgcmVhY2hlcyB0aGUgcmlnaHQgbWFyZ2luLgpCeSBjb250cmFzdCwgdGV4dCBp biByaWdodC10by1sZWZ0IHBhcmFncmFwaHMgaXMgZGlzcGxheWVkIHN0YXJ0aW5nIGF0CnRoZSBy aWdodCBtYXJnaW4gYW5kIGlzIGNvbnRpbnVlZCBvciB0cnVuY2F0ZWQgYXQgdGhlIGxlZnQgbWFy Z2luLiAgQnkKZGVmYXVsdCwgcGFyYWdyYXBoIGJvdW5kYXJpZXMgYXJlIGVtcHR5IGxpbmVzLCBp LmUuLCBsaW5lcyBjb25zaXN0aW5nCmVudGlyZWx5IG9mIHdoaXRlc3BhY2UgY2hhcmFjdGVycy4g IFRvIGNoYW5nZSB0aGF0LCB5b3UgY2FuIGN1c3RvbWl6ZQp0aGUgdHdvIHZhcmlhYmxlcyDigJhi aWRpLXBhcmFncmFwaC1zdGFydC1yZeKAmSBhbmQK4oCYYmlkaS1wYXJhZ3JhcGgtc2VwYXJhdGUt cmXigJksIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgcmVndWxhciBleHByZXNzaW9ucwooc3RyaW5n cyk7IGUuZy4sIHRvIGhhdmUgYSBzaW5nbGUgbmV3bGluZSBzdGFydCBhIG5ldyBwYXJhZ3JhcGgs IHNldApib3RoIG9mIHRoZXNlIHZhcmlhYmxlcyB0byDigJgiXiLigJkuICBUaGVzZSB0d28gdmFy aWFibGVzIGFyZSBidWZmZXItbG9jYWwKKCpub3RlIExvY2Fsczo6KS4KCiAgIEVtYWNzIGRldGVy bWluZXMgdGhlIGJhc2UgZGlyZWN0aW9uIG9mIGVhY2ggcGFyYWdyYXBoIGR5bmFtaWNhbGx5LApi YXNlZCBvbiB0aGUgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwYXJhZ3JhcGguICBIb3dl dmVyLCBzb21ldGltZXMKYSBidWZmZXIgbWF5IG5lZWQgdG8gZm9yY2UgYSBjZXJ0YWluIGJhc2Ug ZGlyZWN0aW9uIGZvciBpdHMgcGFyYWdyYXBocy4KVGhlIHZhcmlhYmxlIOKAmGJpZGktcGFyYWdy YXBoLWRpcmVjdGlvbuKAmSwgaWYgbm9uLeKAmG5pbOKAmSwgZGlzYWJsZXMgdGhlCmR5bmFtaWMg ZGV0ZXJtaW5hdGlvbiBvZiB0aGUgYmFzZSBkaXJlY3Rpb24sIGFuZCBpbnN0ZWFkIGZvcmNlcyBh bGwKcGFyYWdyYXBocyBpbiB0aGUgYnVmZmVyIHRvIGhhdmUgdGhlIGRpcmVjdGlvbiBzcGVjaWZp ZWQgYnkgaXRzCmJ1ZmZlci1sb2NhbCB2YWx1ZS4gIFRoZSB2YWx1ZSBjYW4gYmUgZWl0aGVyIOKA mHJpZ2h0LXRvLWxlZnTigJkgb3IK4oCYbGVmdC10by1yaWdodOKAmS4gIEFueSBvdGhlciB2YWx1 ZSBpcyBpbnRlcnByZXRlZCBhcyDigJhuaWzigJkuCgogICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2Fu IGNvbnRyb2wgdGhlIGJhc2UgZGlyZWN0aW9uIG9mIGEgcGFyYWdyYXBoIGJ5Cmluc2VydGluZyBz cGVjaWFsIGZvcm1hdHRpbmcgY2hhcmFjdGVycyBpbiBmcm9udCBvZiB0aGUgcGFyYWdyYXBoLiAg VGhlCnNwZWNpYWwgY2hhcmFjdGVyIOKAmFJJR0hULVRPLUxFRlQgTUFSS+KAmSwgb3IgUkxNLCBm b3JjZXMgdGhlIHJpZ2h0LXRvLWxlZnQKZGlyZWN0aW9uIG9uIHRoZSBmb2xsb3dpbmcgcGFyYWdy YXBoLCB3aGlsZSDigJhMRUZULVRPLVJJR0hUIE1BUkvigJksIG9yIExSTQpmb3JjZXMgdGhlIGxl ZnQtdG8tcmlnaHQgZGlyZWN0aW9uLiAgKFlvdSBjYW4gdXNlIOKAmEMteCA4IDxSRVQ+4oCZIHRv Cmluc2VydCB0aGVzZSBjaGFyYWN0ZXJzLikgIEluIGEgR1VJIHNlc3Npb24sIHRoZSBMUk0gYW5k IFJMTSBjaGFyYWN0ZXJzCmRpc3BsYXkgYXMgdmVyeSB0aGluIGJsYW5rIGNoYXJhY3RlcnM7IG9u IHRleHQgdGVybWluYWxzIHRoZXkgZGlzcGxheSBhcwpibGFua3MuCgogICBCZWNhdXNlIGNoYXJh Y3RlcnMgYXJlIHJlb3JkZXJlZCBmb3IgZGlzcGxheSwgRW1hY3MgY29tbWFuZHMgdGhhdApvcGVy YXRlIGluIHRoZSBsb2dpY2FsIG9yZGVyIG9yIG9uIHN0cmV0Y2hlcyBvZiBidWZmZXIgcG9zaXRp b25zIG1heQpwcm9kdWNlIHVudXN1YWwgZWZmZWN0cy4gIEZvciBleGFtcGxlLCB0aGUgY29tbWFu ZHMg4oCYQy1m4oCZIGFuZCDigJhDLWLigJkgbW92ZQpwb2ludCBpbiB0aGUgbG9naWNhbCBvcmRl ciwgc28gdGhlIGN1cnNvciB3aWxsIHNvbWV0aW1lcyBqdW1wIHdoZW4gcG9pbnQKdHJhdmVyc2Vz IHJlb3JkZXJlZCBiaWRpcmVjdGlvbmFsIHRleHQuICBTaW1pbGFybHksIGEgaGlnaGxpZ2h0ZWQg cmVnaW9uCmNvdmVyaW5nIGEgY29udGlndW91cyByYW5nZSBvZiBjaGFyYWN0ZXIgcG9zaXRpb25z IG1heSBsb29rCmRpc2NvbnRpbnVvdXMgaWYgdGhlIHJlZ2lvbiBzcGFucyByZW9yZGVyZWQgdGV4 dC4gIFRoaXMgaXMgbm9ybWFsIGFuZApzaW1pbGFyIHRvIHRoZSBiZWhhdmlvciBvZiBvdGhlciBw cm9ncmFtcyB0aGF0IHN1cHBvcnQgYmlkaXJlY3Rpb25hbAp0ZXh0LgoKICAgQ3Vyc29yIG1vdGlv biBjb21tYW5kcyBib3VuZCB0byBhcnJvdyBrZXlzLCBzdWNoIGFzIDxMRUZUPiBhbmQK4oCYQy08 UklHSFQ+4oCZLCBhcmUgc2Vuc2l0aXZlIHRvIHRoZSBiYXNlIGRpcmVjdGlvbiBvZiB0aGUgY3Vy cmVudApwYXJhZ3JhcGguICBJbiBhIGxlZnQtdG8tcmlnaHQgcGFyYWdyYXBoLCBjb21tYW5kcyBi b3VuZCB0byA8UklHSFQ+IHdpdGgKb3Igd2l0aG91dCBtb2RpZmllcnMgbW92ZSBfZm9yd2FyZF8g dGhyb3VnaCBidWZmZXIgdGV4dCwgYnV0IGluIGEKcmlnaHQtdG8tbGVmdCBwYXJhZ3JhcGggdGhl eSBtb3ZlIF9iYWNrd2FyZF8gaW5zdGVhZC4gIFRoaXMgcmVmbGVjdHMgdGhlCmZhY3QgdGhhdCBp biBhIHJpZ2h0LXRvLWxlZnQgcGFyYWdyYXBoIGJ1ZmZlciBwb3NpdGlvbnMgcHJlZG9taW5hbnRs eQppbmNyZWFzZSB3aGVuIG1vdmluZyB0byB0aGUgbGVmdCBvbiBkaXNwbGF5LgoKICAgV2hlbiB5 b3UgbW92ZSBvdXQgb2YgYSBwYXJhZ3JhcGgsIHRoZSBtZWFuaW5nIG9mIHRoZSBhcnJvdyBrZXlz IG1pZ2h0CmNoYW5nZSBpZiB0aGUgYmFzZSBkaXJlY3Rpb24gb2YgdGhlIHByZWNlZGluZyBvciB0 aGUgZm9sbG93aW5nIHBhcmFncmFwaAppcyBkaWZmZXJlbnQgZnJvbSB0aGUgcGFyYWdyYXBoIG91 dCBvZiB3aGljaCB5b3UgbW92ZWQuICBXaGVuIHRoYXQKaGFwcGVucywgeW91IG5lZWQgdG8gYWRq dXN0IHRoZSBhcnJvdyBrZXkgeW91IHByZXNzIHRvIHRoZSBuZXcgYmFzZQpkaXJlY3Rpb24uCgog ICBCeSBkZWZhdWx0LCA8TEVGVD4gYW5kIDxSSUdIVD4gbW92ZSBpbiB0aGUgbG9naWNhbCBvcmRl ciwgYnV0IGlmCuKAmHZpc3VhbC1vcmRlci1jdXJzb3ItbW92ZW1lbnTigJkgaXMgbm9uLeKAmG5p bOKAmSwgdGhlc2UgY29tbWFuZHMgbW92ZSB0byB0aGUKY2hhcmFjdGVyIHRoYXQgaXMsIGNvcnJl c3BvbmRpbmdseSwgdG8gdGhlIGxlZnQgb3IgcmlnaHQgb2YgdGhlIGN1cnJlbnQKc2NyZWVuIHBv c2l0aW9uLCBtb3ZpbmcgdG8gdGhlIG5leHQgb3IgcHJldmlvdXMgc2NyZWVuIGxpbmUgYXMKYXBw cm9wcmlhdGUuICBOb3RlIHRoYXQgdGhpcyBtaWdodCBwb3RlbnRpYWxseSBtb3ZlIHBvaW50IG1h bnkgYnVmZmVyCnBvc2l0aW9ucyBhd2F5LCBkZXBlbmRpbmcgb24gdGhlIHN1cnJvdW5kaW5nIGJp ZGlyZWN0aW9uYWwgY29udGV4dC4KCgoqIDIzIE1ham9yIGFuZCBNaW5vciBNb2RlcwoKRW1hY3Mg Y29udGFpbnMgbWFueSAiZWRpdGluZyBtb2RlcyIgdGhhdCBhbHRlciBpdHMgYmFzaWMgYmVoYXZp b3IgaW4KdXNlZnVsIHdheXMuICBUaGVzZSBhcmUgZGl2aWRlZCBpbnRvICJtYWpvciBtb2RlcyIg YW5kICJtaW5vciBtb2RlcyIuCgogICBNYWpvciBtb2RlcyBwcm92aWRlIHNwZWNpYWxpemVkIGZh Y2lsaXRpZXMgZm9yIHdvcmtpbmcgb24gYQpwYXJ0aWN1bGFyIGZpbGUgdHlwZSwgc3VjaCBhcyBh IEMgc291cmNlIGZpbGUgKCpub3RlIFByb2dyYW1zOjopLCBvciBhCnBhcnRpY3VsYXIgdHlwZSBv ZiBub24tZmlsZSBidWZmZXIsIHN1Y2ggYXMgYSBzaGVsbCBidWZmZXIgKCpub3RlClNoZWxsOjop LiAgTWFqb3IgbW9kZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZTsgZWFjaCBidWZmZXIgaGFzIG9u ZSBhbmQKb25seSBvbmUgbWFqb3IgbW9kZSBhdCBhbnkgdGltZS4KCiAgIE1pbm9yIG1vZGVzIGFy ZSBvcHRpb25hbCBmZWF0dXJlcyB3aGljaCB5b3UgY2FuIHR1cm4gb24gb3Igb2ZmLCBub3QKbmVj ZXNzYXJpbHkgc3BlY2lmaWMgdG8gYSB0eXBlIG9mIGZpbGUgb3IgYnVmZmVyLiAgRm9yIGV4YW1w bGUsIEF1dG8KRmlsbCBtb2RlIGlzIGEgbWlub3IgbW9kZSBpbiB3aGljaCA8U1BDPiBicmVha3Mg bGluZXMgYmV0d2VlbiB3b3JkcyBhcwp5b3UgdHlwZSAoKm5vdGUgQXV0byBGaWxsOjopLiAgTWlu b3IgbW9kZXMgYXJlIGluZGVwZW5kZW50IG9mIG9uZQphbm90aGVyLCBhbmQgb2YgdGhlIHNlbGVj dGVkIG1ham9yIG1vZGUuCgorIE1lbnU6CgogIC0gTWFqb3IgTW9kZXM6OiAgICAgICAgIFRleHQg bW9kZSB2cy4gTGlzcCBtb2RlIHZzLiBDIG1vZGUuLi4KICAtIE1pbm9yIE1vZGVzOjogICAgICAg ICBFYWNoIG1pbm9yIG1vZGUgaXMgYSBmZWF0dXJlIHlvdSBjYW4gdHVybiBvbgogICAgICAgICAg ICAgICAgICAgICAgICAgIGluZGVwZW5kZW50bHkgb2YgYW55IG90aGVycy4KICAtIENob29zaW5n IE1vZGVzOjogICAgICBIb3cgbW9kZXMgYXJlIGNob3NlbiB3aGVuIHZpc2l0aW5nIGZpbGVzLgoK CioqIDIzLjEgTWFqb3IgTW9kZXMKCkV2ZXJ5IGJ1ZmZlciBwb3NzZXNzZXMgYSBtYWpvciBtb2Rl LCB3aGljaCBkZXRlcm1pbmVzIHRoZSBlZGl0aW5nCmJlaGF2aW9yIG9mIEVtYWNzIHdoaWxlIHRo YXQgYnVmZmVyIGlzIGN1cnJlbnQuICBUaGUgbW9kZSBsaW5lIG5vcm1hbGx5CnNob3dzIHRoZSBu YW1lIG9mIHRoZSBjdXJyZW50IG1ham9yIG1vZGUsIGluIHBhcmVudGhlc2VzICgqbm90ZSBNb2Rl CkxpbmU6OikuCgogICBUaGUgbGVhc3Qgc3BlY2lhbGl6ZWQgbWFqb3IgbW9kZSBpcyBjYWxsZWQg IkZ1bmRhbWVudGFsIG1vZGUiLiAgVGhpcwptb2RlIGhhcyBubyBtb2RlLXNwZWNpZmljIHJlZGVm aW5pdGlvbnMgb3IgdmFyaWFibGUgc2V0dGluZ3MsIHNvIHRoYXQKZWFjaCBFbWFjcyBjb21tYW5k IGJlaGF2ZXMgaW4gaXRzIG1vc3QgZ2VuZXJhbCBtYW5uZXIsIGFuZCBlYWNoIHVzZXIKb3B0aW9u IHZhcmlhYmxlIGlzIGluIGl0cyBkZWZhdWx0IHN0YXRlLgoKICAgRm9yIGVkaXRpbmcgdGV4dCBv ZiBhIHNwZWNpZmljIHR5cGUgdGhhdCBFbWFjcyBrbm93cyBhYm91dCwgc3VjaCBhcwpMaXNwIGNv ZGUgb3IgRW5nbGlzaCB0ZXh0LCB5b3UgdHlwaWNhbGx5IHVzZSBhIG1vcmUgc3BlY2lhbGl6ZWQg bWFqb3IKbW9kZSwgc3VjaCBhcyBMaXNwIG1vZGUgb3IgVGV4dCBtb2RlLiAgTW9zdCBtYWpvciBt b2RlcyBmYWxsIGludG8gdGhyZWUKbWFqb3IgZ3JvdXBzLiAgVGhlIGZpcnN0IGdyb3VwIGNvbnRh aW5zIG1vZGVzIGZvciBub3JtYWwgdGV4dCwgZWl0aGVyCnBsYWluIG9yIHdpdGggbWFyay11cC4g IEl0IGluY2x1ZGVzIFRleHQgbW9kZSwgSFRNTCBtb2RlLCBTR01MIG1vZGUsIFRlWAptb2RlIGFu ZCBPdXRsaW5lIG1vZGUuICBUaGUgc2Vjb25kIGdyb3VwIGNvbnRhaW5zIG1vZGVzIGZvciBzcGVj aWZpYwpwcm9ncmFtbWluZyBsYW5ndWFnZXMuICBUaGVzZSBpbmNsdWRlIExpc3AgbW9kZSAod2hp Y2ggaGFzIHNldmVyYWwKdmFyaWFudHMpLCBDIG1vZGUsIEZvcnRyYW4gbW9kZSwgYW5kIG90aGVy cy4gIFRoZSB0aGlyZCBncm91cCBjb25zaXN0cwpvZiBtYWpvciBtb2RlcyB0aGF0IGFyZSBub3Qg YXNzb2NpYXRlZCBkaXJlY3RseSB3aXRoIGZpbGVzOyB0aGV5IGFyZQp1c2VkIGluIGJ1ZmZlcnMg Y3JlYXRlZCBmb3Igc3BlY2lmaWMgcHVycG9zZXMgYnkgRW1hY3MuICBFeGFtcGxlcwppbmNsdWRl IERpcmVkIG1vZGUgZm9yIGJ1ZmZlcnMgbWFkZSBieSBEaXJlZCAoKm5vdGUgRGlyZWQ6OiksIE1l c3NhZ2UKbW9kZSBmb3IgYnVmZmVycyBtYWRlIGJ5IOKAmEMteCBt4oCZICgqbm90ZSBTZW5kaW5n IE1haWw6OiksIGFuZCBTaGVsbCBtb2RlCmZvciBidWZmZXJzIHVzZWQgdG8gY29tbXVuaWNhdGUg d2l0aCBhbiBpbmZlcmlvciBzaGVsbCBwcm9jZXNzICgqbm90ZQpJbnRlcmFjdGl2ZSBTaGVsbDo6 KS4KCiAgIFVzdWFsbHksIHRoZSBtYWpvciBtb2RlIGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IEVt YWNzLCB3aGVuIHlvdSBmaXJzdAp2aXNpdCBhIGZpbGUgb3IgY3JlYXRlIGEgYnVmZmVyICgqbm90 ZSBDaG9vc2luZyBNb2Rlczo6KS4gIFlvdSBjYW4KZXhwbGljaXRseSBzZWxlY3QgYSBuZXcgbWFq b3IgbW9kZSBieSB1c2luZyBhbiDigJhNLXjigJkgY29tbWFuZC4gIFRha2UgdGhlCm5hbWUgb2Yg dGhlIG1vZGUgYW5kIGFkZCDigJgtbW9kZeKAmSB0byBnZXQgdGhlIG5hbWUgb2YgdGhlIGNvbW1h bmQgdG8Kc2VsZWN0IHRoYXQgbW9kZSAoZS5nLiwg4oCYTS14IGxpc3AtbW9kZeKAmSBlbnRlcnMg TGlzcCBtb2RlKS4gIFNpbmNlIGV2ZXJ5CmJ1ZmZlciBoYXMgZXhhY3RseSBvbmUgbWFqb3IgbW9k ZSwgdGhlcmUgaXMgbm8gd2F5IHRvIOKAnHR1cm4gb2Zm4oCdIGEgbWFqb3IKbW9kZTsgaW5zdGVh ZCB5b3UgbXVzdCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgb25lLgoKICAgVGhlIHZhbHVlIG9mIHRo ZSBidWZmZXItbG9jYWwgdmFyaWFibGUg4oCYbWFqb3ItbW9kZeKAmSBpcyBhIHN5bWJvbCB3aXRo CnRoZSBzYW1lIG5hbWUgYXMgdGhlIG1ham9yIG1vZGUgY29tbWFuZCAoZS5nLiwg4oCYbGlzcC1t b2Rl4oCZKS4gIFRoaXMKdmFyaWFibGUgaXMgc2V0IGF1dG9tYXRpY2FsbHk7IHlvdSBzaG91bGQg bm90IGNoYW5nZSBpdCB5b3Vyc2VsZi4KCiAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIOKAmG1ham9y LW1vZGXigJkgZGV0ZXJtaW5lcyB0aGUgbWFqb3IgbW9kZSB0byB1c2UKZm9yIGZpbGVzIHRoYXQg ZG8gbm90IHNwZWNpZnkgYSBtYWpvciBtb2RlLCBhbmQgZm9yIG5ldyBidWZmZXJzIGNyZWF0ZWQK d2l0aCDigJhDLXggYuKAmS4gIE5vcm1hbGx5LCB0aGlzIGRlZmF1bHQgdmFsdWUgaXMgdGhlIHN5 bWJvbArigJhmdW5kYW1lbnRhbC1tb2Rl4oCZLCB3aGljaCBzcGVjaWZpZXMgRnVuZGFtZW50YWwg bW9kZS4gIFlvdSBjYW4gY2hhbmdlCnRoaXMgZGVmYXVsdCB2YWx1ZSB2aWEgdGhlIEN1c3RvbWl6 YXRpb24gaW50ZXJmYWNlICgqbm90ZSBFYXN5CkN1c3RvbWl6YXRpb246OiksIG9yIGJ5IGFkZGlu ZyBhIGxpbmUgbGlrZSB0aGlzIHRvIHlvdXIgaW5pdCBmaWxlICgqbm90ZQpJbml0IEZpbGU6Oik6 CgogICAgIChzZXRxLWRlZmF1bHQgbWFqb3ItbW9kZSAndGV4dC1tb2RlKQoKSWYgdGhlIGRlZmF1 bHQgdmFsdWUgb2Yg4oCYbWFqb3ItbW9kZeKAmSBpcyDigJhuaWzigJksIHRoZSBtYWpvciBtb2Rl IGlzIHRha2VuCmZyb20gdGhlIHByZXZpb3VzbHkgY3VycmVudCBidWZmZXIuCgogICBTcGVjaWFs aXplZCBtYWpvciBtb2RlcyBvZnRlbiBjaGFuZ2UgdGhlIG1lYW5pbmdzIG9mIGNlcnRhaW4ga2V5 cyB0bwpkbyBzb21ldGhpbmcgbW9yZSBzdWl0YWJsZSBmb3IgdGhlIG1vZGUuICBGb3IgaW5zdGFu Y2UsIHByb2dyYW1taW5nCmxhbmd1YWdlIG1vZGVzIGJpbmQgPFRBQj4gdG8gaW5kZW50IHRoZSBj dXJyZW50IGxpbmUgYWNjb3JkaW5nIHRvIHRoZQpydWxlcyBvZiB0aGUgbGFuZ3VhZ2UgKCpub3Rl IEluZGVudGF0aW9uOjopLiAgVGhlIGtleXMgdGhhdCBhcmUgY29tbW9ubHkKY2hhbmdlZCBhcmUg PFRBQj4sIDxERUw+LCBhbmQg4oCYQy1q4oCZLiAgTWFueSBtb2RlcyBhbHNvIGRlZmluZSBzcGVj aWFsCmNvbW1hbmRzIG9mIHRoZWlyIG93biwgdXN1YWxseSBib3VuZCB0byBrZXkgc2VxdWVuY2Vz IHdob3NlIHByZWZpeCBrZXkKaXMg4oCYQy1j4oCZICgqbm90ZSBLZXlzOjopLiAgTWFqb3IgbW9k ZXMgY2FuIGFsc28gYWx0ZXIgdXNlciBvcHRpb25zIGFuZAp2YXJpYWJsZXM7IGZvciBpbnN0YW5j ZSwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgbW9kZXMgdHlwaWNhbGx5IHNldCBhCmJ1ZmZlci1sb2Nh bCB2YWx1ZSBmb3IgdGhlIHZhcmlhYmxlIOKAmGNvbW1lbnQtc3RhcnTigJksIHdoaWNoIGRldGVy bWluZXMKaG93IHNvdXJjZSBjb2RlIGNvbW1lbnRzIGFyZSBkZWxpbWl0ZWQgKCpub3RlIENvbW1l bnRzOjopLgoKICAgVG8gdmlldyB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGN1cnJlbnQgbWFq b3IgbW9kZSwgaW5jbHVkaW5nIGEKbGlzdCBvZiBpdHMga2V5IGJpbmRpbmdzLCB0eXBlIOKAmEMt aCBt4oCZICjigJhkZXNjcmliZS1tb2Rl4oCZKS4gICpOb3RlIE1pc2MKSGVscDo6LgoKICAgRXZl cnkgbWFqb3IgbW9kZSwgYXBhcnQgZnJvbSBGdW5kYW1lbnRhbCBtb2RlLCBkZWZpbmVzIGEgIm1v ZGUgaG9vayIsCmEgY3VzdG9taXphYmxlIGxpc3Qgb2YgTGlzcCBmdW5jdGlvbnMgdG8gcnVuIGVh Y2ggdGltZSB0aGUgbW9kZSBpcwplbmFibGVkIGluIGEgYnVmZmVyLiAgKk5vdGUgSG9va3M6Oiwg Zm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG9va3MuCkVhY2ggbW9kZSBob29rIGlzIG5hbWVk IGFmdGVyIGl0cyBtYWpvciBtb2RlLCBlLmcuLCBGb3J0cmFuIG1vZGUgaGFzCuKAmGZvcnRyYW4t bW9kZS1ob29r4oCZLiAgRnVydGhlcm1vcmUsIGFsbCB0ZXh0LWJhc2VkIG1ham9yIG1vZGVzIHJ1 bgrigJh0ZXh0LW1vZGUtaG9va+KAmSwgYW5kIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgbW9k ZXMgKDEpIChpbmNsdWRpbmcgYWxsCnRob3NlIGRpc3RyaWJ1dGVkIHdpdGggRW1hY3MpIHJ1biDi gJhwcm9nLW1vZGUtaG9va+KAmSwgcHJpb3IgdG8gcnVubmluZwp0aGVpciBvd24gbW9kZSBob29r cy4gIEhvb2sgZnVuY3Rpb25zIGNhbiBsb29rIGF0IHRoZSB2YWx1ZSBvZiB0aGUKdmFyaWFibGUg 4oCYbWFqb3ItbW9kZeKAmSB0byBzZWUgd2hpY2ggbW9kZSBpcyBhY3R1YWxseSBiZWluZyBlbnRl cmVkLgoKICAgTW9kZSBob29rcyBhcmUgY29tbW9ubHkgdXNlZCB0byBlbmFibGUgbWlub3IgbW9k ZXMgKCpub3RlIE1pbm9yCk1vZGVzOjopLiAgRm9yIGV4YW1wbGUsIHlvdSBjYW4gcHV0IHRoZSBm b2xsb3dpbmcgbGluZXMgaW4geW91ciBpbml0CmZpbGUgdG8gZW5hYmxlIEZseXNwZWxsIG1pbm9y IG1vZGUgaW4gYWxsIHRleHQtYmFzZWQgbWFqb3IgbW9kZXMgKCpub3RlClNwZWxsaW5nOjopLCBh bmQgRWxkb2MgbWlub3IgbW9kZSBpbiBFbWFjcyBMaXNwIG1vZGUgKCpub3RlIExpc3AgRG9jOjop OgoKICAgICAoYWRkLWhvb2sgJ3RleHQtbW9kZS1ob29rICdmbHlzcGVsbC1tb2RlKQogICAgIChh ZGQtaG9vayAnZW1hY3MtbGlzcC1tb2RlLWhvb2sgJ2VsZG9jLW1vZGUpCgogICAtLS0tLS0tLS0t IEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgTW9yZSBzcGVjaWZpY2FsbHksIHRoZSBtb2Rl cyB3aGljaCBhcmUg4oCdZGVyaXZlZOKAnSBmcm9tIOKAmHByb2ctbW9kZeKAmQooKm5vdGUgKGVs aXNwKURlcml2ZWQgTW9kZXM6OikuCgoKKiogMjMuMiBNaW5vciBNb2RlcwoKQSBtaW5vciBtb2Rl IGlzIGFuIG9wdGlvbmFsIGVkaXRpbmcgbW9kZSB0aGF0IGFsdGVycyB0aGUgYmVoYXZpb3Igb2YK RW1hY3MgaW4gc29tZSB3ZWxsLWRlZmluZWQgd2F5LiAgVW5saWtlIG1ham9yIG1vZGVzLCBhbnkg bnVtYmVyIG9mIG1pbm9yCm1vZGVzIGNhbiBiZSBpbiBlZmZlY3QgYXQgYW55IHRpbWUuICBTb21l IG1pbm9yIG1vZGVzIGFyZQoiYnVmZmVyLWxvY2FsIiwgYW5kIGNhbiBiZSB0dXJuZWQgb24gKGVu YWJsZWQpIGluIGNlcnRhaW4gYnVmZmVycyBhbmQKb2ZmIChkaXNhYmxlZCkgaW4gb3RoZXJzLiAg T3RoZXIgbWlub3IgbW9kZXMgYXJlICJnbG9iYWwiOiB3aGlsZQplbmFibGVkLCB0aGV5IGFmZmVj dCBldmVyeXRoaW5nIHlvdSBkbyBpbiB0aGUgRW1hY3Mgc2Vzc2lvbiwgaW4gYWxsCmJ1ZmZlcnMu ICBNb3N0IG1pbm9yIG1vZGVzIGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0LCBidXQgYSBmZXcgYXJl CmVuYWJsZWQgYnkgZGVmYXVsdC4KCiAgIE1vc3QgYnVmZmVyLWxvY2FsIG1pbm9yIG1vZGVzIHNh eSBpbiB0aGUgbW9kZSBsaW5lIHdoZW4gdGhleSBhcmUKZW5hYmxlZCwganVzdCBhZnRlciB0aGUg bWFqb3IgbW9kZSBpbmRpY2F0b3IuICBGb3IgZXhhbXBsZSwg4oCYRmlsbOKAmSBpbgp0aGUgbW9k ZSBsaW5lIG1lYW5zIHRoYXQgQXV0byBGaWxsIG1vZGUgaXMgZW5hYmxlZC4gICpOb3RlIE1vZGUg TGluZTo6LgoKICAgTGlrZSBtYWpvciBtb2RlcywgZWFjaCBtaW5vciBtb2RlIGlzIGFzc29jaWF0 ZWQgd2l0aCBhICJtb2RlCmNvbW1hbmQiLCB3aG9zZSBuYW1lIGNvbnNpc3RzIG9mIHRoZSBtb2Rl IG5hbWUgZm9sbG93ZWQgYnkg4oCYLW1vZGXigJkuICBGb3IKaW5zdGFuY2UsIHRoZSBtb2RlIGNv bW1hbmQgZm9yIEF1dG8gRmlsbCBtb2RlIGlzIOKAmGF1dG8tZmlsbC1tb2Rl4oCZLiAgQnV0CnVu bGlrZSBhIG1ham9yIG1vZGUgY29tbWFuZCwgd2hpY2ggc2ltcGx5IGVuYWJsZXMgdGhlIG1vZGUs IHRoZSBtb2RlCmNvbW1hbmQgZm9yIGEgbWlub3IgbW9kZSBjYW4gZWl0aGVyIGVuYWJsZSBvciBk aXNhYmxlIGl0OgoKICAg4oCiIElmIHlvdSBpbnZva2UgdGhlIG1vZGUgY29tbWFuZCBkaXJlY3Rs eSB3aXRoIG5vIHByZWZpeCBhcmd1bWVudAogICAgIChlaXRoZXIgdmlhIOKAmE0teOKAmSwgb3Ig YnkgYmluZGluZyBpdCB0byBhIGtleSBhbmQgdHlwaW5nIHRoYXQga2V5OwogICAgICpub3RlIEtl eSBCaW5kaW5nczo6KSwgdGhhdCAidG9nZ2xlcyIgdGhlIG1pbm9yIG1vZGUuICBUaGUgbWlub3IK ICAgICBtb2RlIGlzIHR1cm5lZCBvbiBpZiBpdCB3YXMgb2ZmLCBhbmQgdHVybmVkIG9mZiBpZiBp dCB3YXMgb24uCgogICDigKIgSWYgeW91IGludm9rZSB0aGUgbW9kZSBjb21tYW5kIHdpdGggYSBw cmVmaXggYXJndW1lbnQsIHRoZSBtaW5vcgogICAgIG1vZGUgaXMgdW5jb25kaXRpb25hbGx5IHR1 cm5lZCBvZmYgaWYgdGhhdCBhcmd1bWVudCBpcyB6ZXJvIG9yCiAgICAgbmVnYXRpdmU7IG90aGVy d2lzZSwgaXQgaXMgdW5jb25kaXRpb25hbGx5IHR1cm5lZCBvbi4KCiAgIOKAoiBJZiB0aGUgbW9k ZSBjb21tYW5kIGlzIGNhbGxlZCB2aWEgTGlzcCwgdGhlIG1pbm9yIG1vZGUgaXMKICAgICB1bmNv bmRpdGlvbmFsbHkgdHVybmVkIG9uIGlmIHRoZSBhcmd1bWVudCBpcyBvbWl0dGVkIG9yIOKAmG5p bOKAmS4KICAgICBUaGlzIG1ha2VzIGl0IGVhc3kgdG8gdHVybiBvbiBhIG1pbm9yIG1vZGUgZnJv bSBhIG1ham9yIG1vZGXigJlzIG1vZGUKICAgICBob29rICgqbm90ZSBNYWpvciBNb2Rlczo6KS4g IEEgbm9uLeKAmG5pbOKAmSBhcmd1bWVudCBpcyBoYW5kbGVkIGxpa2UKICAgICBhbiBpbnRlcmFj dGl2ZSBwcmVmaXggYXJndW1lbnQsIGFzIGRlc2NyaWJlZCBhYm92ZS4KCiAgIE1vc3QgbWlub3Ig bW9kZXMgYWxzbyBoYXZlIGEgIm1vZGUgdmFyaWFibGUiLCB3aXRoIHRoZSBzYW1lIG5hbWUgYXMK dGhlIG1vZGUgY29tbWFuZC4gIEl0cyB2YWx1ZSBpcyBub24t4oCYbmls4oCZIGlmIHRoZSBtb2Rl IGlzIGVuYWJsZWQsIGFuZArigJhuaWzigJkgaWYgaXQgaXMgZGlzYWJsZWQuICBJbiBnZW5lcmFs LCB5b3Ugc2hvdWxkIG5vdCB0cnkgdG8gZW5hYmxlIG9yCmRpc2FibGUgdGhlIG1vZGUgYnkgY2hh bmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBtb2RlIHZhcmlhYmxlIGRpcmVjdGx5IGluCkxpc3A7IHlv dSBzaG91bGQgcnVuIHRoZSBtb2RlIGNvbW1hbmQgaW5zdGVhZC4gIEhvd2V2ZXIsIHNldHRpbmcg dGhlCm1vZGUgdmFyaWFibGUgdGhyb3VnaCB0aGUgQ3VzdG9taXplIGludGVyZmFjZSAoKm5vdGUg RWFzeQpDdXN0b21pemF0aW9uOjopIHdpbGwgYWx3YXlzIHByb3Blcmx5IGVuYWJsZSBvciBkaXNh YmxlIHRoZSBtb2RlLCBzaW5jZQpDdXN0b21pemUgYXV0b21hdGljYWxseSBydW5zIHRoZSBtb2Rl IGNvbW1hbmQgZm9yIHlvdS4KCiAgIFRoZSBmb2xsb3dpbmcgaXMgYSBsaXN0IG9mIHNvbWUgYnVm ZmVyLWxvY2FsIG1pbm9yIG1vZGVzOgoKICAg4oCiIEFiYnJldiBtb2RlIGF1dG9tYXRpY2FsbHkg ZXhwYW5kcyB0ZXh0IGJhc2VkIG9uIHByZS1kZWZpbmVkCiAgICAgYWJicmV2aWF0aW9uIGRlZmlu aXRpb25zLiAgKk5vdGUgQWJicmV2czo6LgoKICAg4oCiIEF1dG8gRmlsbCBtb2RlIGluc2VydHMg bmV3bGluZXMgYXMgeW91IHR5cGUgdG8gcHJldmVudCBsaW5lcyBmcm9tCiAgICAgYmVjb21pbmcg dG9vIGxvbmcuICAqTm90ZSBGaWxsaW5nOjouCgogICDigKIgQXV0byBTYXZlIG1vZGUgc2F2ZXMg dGhlIGJ1ZmZlciBjb250ZW50cyBwZXJpb2RpY2FsbHkgdG8gcmVkdWNlIHRoZQogICAgIGFtb3Vu dCBvZiB3b3JrIHlvdSBjYW4gbG9zZSBpbiBjYXNlIG9mIGEgY3Jhc2guICAqTm90ZSBBdXRvIFNh dmU6Oi4KCiAgIOKAoiBFbGVjdHJpYyBRdW90ZSBtb2RlIGF1dG9tYXRpY2FsbHkgY29udmVydHMg cXVvdGF0aW9uIG1hcmtzLiAgRm9yCiAgICAgZXhhbXBsZSwgaXQgcmVxdW90ZXMgdGV4dCB0eXBl ZCBgbGlrZSB0aGlzJyB0byB0ZXh0IOKAmGxpa2UgdGhpc+KAmS4KICAgICBZb3UgY2FuIGNvbnRy b2wgd2hhdCBraW5kIG9mIHRleHQgaXQgb3BlcmF0ZXMgaW4sIGFuZCB5b3UgY2FuCiAgICAgZGlz YWJsZSBpdCBlbnRpcmVseSBpbiBpbmRpdmlkdWFsIGJ1ZmZlcnMuICAqTm90ZSBRdW90YXRpb24K ICAgICBNYXJrczo6LgoKICAg4oCiIEVucmljaGVkIG1vZGUgZW5hYmxlcyBlZGl0aW5nIGFuZCBz YXZpbmcgb2YgZm9ybWF0dGVkIHRleHQuICAqTm90ZQogICAgIEVucmljaGVkIFRleHQ6Oi4KCiAg IOKAoiBGbHlzcGVsbCBtb2RlIGF1dG9tYXRpY2FsbHkgaGlnaGxpZ2h0cyBtaXNzcGVsbGVkIHdv cmRzLiAgKk5vdGUKICAgICBTcGVsbGluZzo6LgoKICAg4oCiIEZvbnQtTG9jayBtb2RlIGF1dG9t YXRpY2FsbHkgaGlnaGxpZ2h0cyBjZXJ0YWluIHRleHR1YWwgdW5pdHMgZm91bmQKICAgICBpbiBw cm9ncmFtcy4gIEl0IGlzIGVuYWJsZWQgZ2xvYmFsbHkgYnkgZGVmYXVsdCwgYnV0IHlvdSBjYW4K ICAgICBkaXNhYmxlIGl0IGluIGluZGl2aWR1YWwgYnVmZmVycy4gICpOb3RlIEZhY2VzOjouCgog ICDigKIgRGlzcGxheSBMaW5lIE51bWJlcnMgbW9kZSBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIg YXJvdW5kCiAgICAg4oCYZGlzcGxheS1saW5lLW51bWJlcnPigJksIHNldHRpbmcgaXQgdXNpbmcg dGhlIHZhbHVlIG9mCiAgICAg4oCYZGlzcGxheS1saW5lLW51bWJlcnMtdHlwZeKAmS4gICpOb3Rl IERpc3BsYXkgQ3VzdG9tOjouCgogICDigKIgT3V0bGluZSBtaW5vciBtb2RlIHByb3ZpZGVzIHNp bWlsYXIgZmFjaWxpdGllcyB0byB0aGUgbWFqb3IgbW9kZQogICAgIGNhbGxlZCBPdXRsaW5lIG1v ZGUuICAqTm90ZSBPdXRsaW5lIE1vZGU6Oi4KCiAgIOKAoiBPdmVyd3JpdGUgbW9kZSBjYXVzZXMg b3JkaW5hcnkgcHJpbnRpbmcgY2hhcmFjdGVycyB0byByZXBsYWNlCiAgICAgZXhpc3RpbmcgdGV4 dCBpbnN0ZWFkIG9mIHNob3ZpbmcgaXQgdG8gdGhlIHJpZ2h0LiAgRm9yIGV4YW1wbGUsIGlmCiAg ICAgcG9pbnQgaXMgaW4gZnJvbnQgb2YgdGhlIOKAmELigJkgaW4g4oCYRk9PQkFS4oCZLCB0aGVu IGluIE92ZXJ3cml0ZSBtb2RlCiAgICAgdHlwaW5nIGEg4oCYR+KAmSBjaGFuZ2VzIGl0IHRvIOKA mEZPT0dBUuKAmSwgaW5zdGVhZCBvZiBwcm9kdWNpbmcg4oCYRk9PR0JBUuKAmQogICAgIGFzIHVz dWFsLiAgSW4gT3ZlcndyaXRlIG1vZGUsIHRoZSBjb21tYW5kIOKAmEMtceKAmSBpbnNlcnRzIHRo ZSBuZXh0CiAgICAgY2hhcmFjdGVyIHdoYXRldmVyIGl0IG1heSBiZSwgZXZlbiBpZiBpdCBpcyBh IGRpZ2l04oCUdGhpcyBnaXZlcyB5b3UKICAgICBhIHdheSB0byBpbnNlcnQgYSBjaGFyYWN0ZXIg aW5zdGVhZCBvZiByZXBsYWNpbmcgYW4gZXhpc3RpbmcKICAgICBjaGFyYWN0ZXIuICBUaGUgbW9k ZSBjb21tYW5kLCDigJhvdmVyd3JpdGUtbW9kZeKAmSwgaXMgYm91bmQgdG8gdGhlCiAgICAgPElu c2VydD4ga2V5LgoKICAg4oCiIEJpbmFyeSBPdmVyd3JpdGUgbW9kZSBpcyBhIHZhcmlhbnQgb2Yg T3ZlcndyaXRlIG1vZGUgZm9yIGVkaXRpbmcKICAgICBiaW5hcnkgZmlsZXM7IGl0IHRyZWF0cyBu ZXdsaW5lcyBhbmQgdGFicyBsaWtlIG90aGVyIGNoYXJhY3RlcnMsIHNvCiAgICAgdGhhdCB0aGV5 IG92ZXJ3cml0ZSBvdGhlciBjaGFyYWN0ZXJzIGFuZCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkKICAg ICB0aGVtLiAgSW4gQmluYXJ5IE92ZXJ3cml0ZSBtb2RlLCBkaWdpdHMgYWZ0ZXIg4oCYQy1x4oCZ IHNwZWNpZnkgYW4KICAgICBvY3RhbCBjaGFyYWN0ZXIgY29kZSwgYXMgdXN1YWwuCgogICDigKIg VmlzdWFsIExpbmUgbW9kZSBwZXJmb3JtcyB3b3JkIHdyYXBwaW5nLCBjYXVzaW5nIGxvbmcgbGlu ZXMgdG8gYmUKICAgICB3cmFwcGVkIGF0IHdvcmQgYm91bmRhcmllcy4gICpOb3RlIFZpc3VhbCBM aW5lIE1vZGU6Oi4KCkFuZCBoZXJlIGFyZSBzb21lIHVzZWZ1bCBnbG9iYWwgbWlub3IgbW9kZXM6 CgogICDigKIgQ29sdW1uIE51bWJlciBtb2RlIGVuYWJsZXMgZGlzcGxheSBvZiB0aGUgY3VycmVu dCBjb2x1bW4gbnVtYmVyIGluCiAgICAgdGhlIG1vZGUgbGluZS4gICpOb3RlIE1vZGUgTGluZTo6 LgoKICAg4oCiIERlbGV0ZSBTZWxlY3Rpb24gbW9kZSBjYXVzZXMgdGV4dCBpbnNlcnRpb24gdG8g Zmlyc3QgZGVsZXRlIHRoZQogICAgIHRleHQgaW4gdGhlIHJlZ2lvbiwgaWYgdGhlIHJlZ2lvbiBp cyBhY3RpdmUuICAqTm90ZSBVc2luZyBSZWdpb246Oi4KCiAgIOKAoiBJY29tcGxldGUgbW9kZSBk aXNwbGF5cyBhbiBpbmRpY2F0aW9uIG9mIGF2YWlsYWJsZSBjb21wbGV0aW9ucyB3aGVuCiAgICAg eW91IGFyZSBpbiB0aGUgbWluaWJ1ZmZlciBhbmQgY29tcGxldGlvbiBpcyBhY3RpdmUuICAqTm90 ZQogICAgIEljb21wbGV0ZTo6LgoKICAg4oCiIExpbmUgTnVtYmVyIG1vZGUgZW5hYmxlcyBkaXNw bGF5IG9mIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyIGluIHRoZQogICAgIG1vZGUgbGluZS4gIEl0 IGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gICpOb3RlIE1vZGUgTGluZTo6LgoKICAg4oCiIE1lbnUg QmFyIG1vZGUgZ2l2ZXMgZWFjaCBmcmFtZSBhIG1lbnUgYmFyLiAgSXQgaXMgZW5hYmxlZCBieQog ICAgIGRlZmF1bHQuICAqTm90ZSBNZW51IEJhcnM6Oi4KCiAgIOKAoiBTY3JvbGwgQmFyIG1vZGUg Z2l2ZXMgZWFjaCB3aW5kb3cgYSBzY3JvbGwgYmFyLiAgSXQgaXMgZW5hYmxlZCBieQogICAgIGRl ZmF1bHQsIGJ1dCB0aGUgc2Nyb2xsIGJhciBpcyBvbmx5IGRpc3BsYXllZCBvbiBncmFwaGljYWwK ICAgICB0ZXJtaW5hbHMuICAqTm90ZSBTY3JvbGwgQmFyczo6LgoKICAg4oCiIFRvb2wgQmFyIG1v ZGUgZ2l2ZXMgZWFjaCBmcmFtZSBhIHRvb2wgYmFyLiAgSXQgaXMgZW5hYmxlZCBieQogICAgIGRl ZmF1bHQsIGJ1dCB0aGUgdG9vbCBiYXIgaXMgb25seSBkaXNwbGF5ZWQgb24gZ3JhcGhpY2FsIHRl cm1pbmFscy4KICAgICAqTm90ZSBUb29sIEJhcnM6Oi4KCiAgIOKAoiBUcmFuc2llbnQgTWFyayBt b2RlIGhpZ2hsaWdodHMgdGhlIHJlZ2lvbiwgYW5kIG1ha2VzIG1hbnkgRW1hY3MKICAgICBjb21t YW5kcyBvcGVyYXRlIG9uIHRoZSByZWdpb24gd2hlbiB0aGUgbWFyayBpcyBhY3RpdmUuICBJdCBp cwogICAgIGVuYWJsZWQgYnkgZGVmYXVsdC4gICpOb3RlIE1hcms6Oi4KCgoqKiAyMy4zIENob29z aW5nIEZpbGUgTW9kZXMKCldoZW4geW91IHZpc2l0IGEgZmlsZSwgRW1hY3MgY2hvb3NlcyBhIG1h am9yIG1vZGUgYXV0b21hdGljYWxseS4KTm9ybWFsbHksIGl0IG1ha2VzIHRoZSBjaG9pY2UgYmFz ZWQgb24gdGhlIGZpbGUgbmFtZeKAlGZvciBleGFtcGxlLCBmaWxlcwp3aG9zZSBuYW1lcyBlbmQg aW4g4oCYLmPigJkgYXJlIG5vcm1hbGx5IGVkaXRlZCBpbiBDIG1vZGXigJRidXQgc29tZXRpbWVz IGl0CmNob29zZXMgdGhlIG1ham9yIG1vZGUgYmFzZWQgb24gc3BlY2lhbCB0ZXh0IGluIHRoZSBm aWxlLiAgVGhpcyBzcGVjaWFsCnRleHQgY2FuIGFsc28gYmUgdXNlZCB0byBlbmFibGUgYnVmZmVy LWxvY2FsIG1pbm9yIG1vZGVzLgoKICAgSGVyZSBpcyB0aGUgZXhhY3QgcHJvY2VkdXJlOgoKICAg Rmlyc3QsIEVtYWNzIGNoZWNrcyB3aGV0aGVyIHRoZSBmaWxlIGNvbnRhaW5zIGZpbGUtbG9jYWwg bW9kZQp2YXJpYWJsZXMuICAqTm90ZSBGaWxlIFZhcmlhYmxlczo6LiAgSWYgdGhlcmUgaXMgYSBm aWxlLWxvY2FsIHZhcmlhYmxlCnRoYXQgc3BlY2lmaWVzIGEgbWFqb3IgbW9kZSwgdGhlbiBFbWFj cyB1c2VzIHRoYXQgbWFqb3IgbW9kZSwgaWdub3JpbmcKYWxsIG90aGVyIGNyaXRlcmlhLiAgVGhl cmUgYXJlIHNldmVyYWwgbWV0aG9kcyB0byBzcGVjaWZ5IGEgbWFqb3IgbW9kZQp1c2luZyBhIGZp bGUtbG9jYWwgdmFyaWFibGU7IHRoZSBzaW1wbGVzdCBpcyB0byBwdXQgdGhlIG1vZGUgbmFtZSBp biB0aGUKZmlyc3Qgbm9uYmxhbmsgbGluZSwgcHJlY2VkZWQgYW5kIGZvbGxvd2VkIGJ5IOKAmC0q LeKAmS4gIE90aGVyIHRleHQgbWF5CmFwcGVhciBvbiB0aGUgbGluZSBhcyB3ZWxsLiAgRm9yIGV4 YW1wbGUsCgogICAgIDsgLSotTGlzcC0qLQoKdGVsbHMgRW1hY3MgdG8gdXNlIExpc3AgbW9kZS4g IE5vdGUgaG93IHRoZSBzZW1pY29sb24gaXMgdXNlZCB0byBtYWtlCkxpc3AgdHJlYXQgdGhpcyBs aW5lIGFzIGEgY29tbWVudC4gIFlvdSBjb3VsZCBlcXVpdmFsZW50bHkgd3JpdGUKCiAgICAgOyAt Ki0gbW9kZTogTGlzcDstKi0KCllvdSBjYW4gYWxzbyB1c2UgZmlsZS1sb2NhbCB2YXJpYWJsZXMg dG8gc3BlY2lmeSBidWZmZXItbG9jYWwgbWlub3IKbW9kZXMsIGJ5IHVzaW5nIOKAmGV2YWzigJkg c3BlY2lmaWNhdGlvbnMuICBGb3IgZXhhbXBsZSwgdGhpcyBmaXJzdCBub25ibGFuawpsaW5lIHB1 dHMgdGhlIGJ1ZmZlciBpbiBMaXNwIG1vZGUgYW5kIGVuYWJsZXMgQXV0by1GaWxsIG1vZGU6Cgog ICAgIDsgLSotIG1vZGU6IExpc3A7IGV2YWw6IChhdXRvLWZpbGwtbW9kZSAxKTsgLSotCgpOb3Rl LCBob3dldmVyLCB0aGF0IGl0IGlzIHVzdWFsbHkgaW5hcHByb3ByaWF0ZSB0byBlbmFibGUgbWlu b3IgbW9kZXMKdGhpcyB3YXksIHNpbmNlIG1vc3QgbWlub3IgbW9kZXMgcmVwcmVzZW50IGluZGl2 aWR1YWwgdXNlciBwcmVmZXJlbmNlcy4KSWYgeW91IHBlcnNvbmFsbHkgd2FudCB0byB1c2UgYSBt aW5vciBtb2RlIGZvciBhIHBhcnRpY3VsYXIgZmlsZSB0eXBlLAppdCBpcyBiZXR0ZXIgdG8gZW5h YmxlIHRoZSBtaW5vciBtb2RlIHZpYSBhIG1ham9yIG1vZGUgaG9vayAoKm5vdGUgTWFqb3IKTW9k ZXM6OikuCgogICBTZWNvbmQsIGlmIHRoZXJlIGlzIG5vIGZpbGUgdmFyaWFibGUgc3BlY2lmeWlu ZyBhIG1ham9yIG1vZGUsIEVtYWNzCmNoZWNrcyB3aGV0aGVyIHRoZSBmaWxl4oCZcyBjb250ZW50 cyBiZWdpbiB3aXRoIOKAmCMh4oCZLiAgSWYgc28sIHRoYXQKaW5kaWNhdGVzIHRoYXQgdGhlIGZp bGUgY2FuIHNlcnZlIGFzIGFuIGV4ZWN1dGFibGUgc2hlbGwgY29tbWFuZCwgd2hpY2gKd29ya3Mg YnkgcnVubmluZyBhbiBpbnRlcnByZXRlciBuYW1lZCBvbiB0aGUgZmlsZeKAmXMgZmlyc3QgbGlu ZSAodGhlIHJlc3QKb2YgdGhlIGZpbGUgaXMgdXNlZCBhcyBpbnB1dCB0byB0aGUgaW50ZXJwcmV0 ZXIpLiAgVGhlcmVmb3JlLCBFbWFjcwp0cmllcyB0byB1c2UgdGhlIGludGVycHJldGVyIG5hbWUg dG8gY2hvb3NlIGEgbW9kZS4gIEZvciBpbnN0YW5jZSwgYQpmaWxlIHRoYXQgYmVnaW5zIHdpdGgg 4oCYIyEvdXNyL2Jpbi9wZXJs4oCZIGlzIG9wZW5lZCBpbiBQZXJsIG1vZGUuICBUaGUKdmFyaWFi bGUg4oCYaW50ZXJwcmV0ZXItbW9kZS1hbGlzdOKAmSBzcGVjaWZpZXMgdGhlIGNvcnJlc3BvbmRl bmNlIGJldHdlZW4KaW50ZXJwcmV0ZXIgcHJvZ3JhbSBuYW1lcyBhbmQgbWFqb3IgbW9kZXMuCgog ICBXaGVuIHRoZSBmaXJzdCBsaW5lIHN0YXJ0cyB3aXRoIOKAmCMh4oCZLCB5b3UgdXN1YWxseSBj YW5ub3QgdXNlIHRoZQrigJgtKi3igJkgZmVhdHVyZSBvbiB0aGUgZmlyc3QgbGluZSwgYmVjYXVz ZSB0aGUgc3lzdGVtIHdvdWxkIGdldCBjb25mdXNlZAp3aGVuIHJ1bm5pbmcgdGhlIGludGVycHJl dGVyLiAgU28gRW1hY3MgbG9va3MgZm9yIOKAmC0qLeKAmSBvbiB0aGUgc2Vjb25kCmxpbmUgaW4g c3VjaCBmaWxlcyBhcyB3ZWxsIGFzIG9uIHRoZSBmaXJzdCBsaW5lLiAgVGhlIHNhbWUgaXMgdHJ1 ZSBmb3IKbWFuIHBhZ2VzIHdoaWNoIHN0YXJ0IHdpdGggdGhlIG1hZ2ljIHN0cmluZyDigJgnXCLi gJkgdG8gc3BlY2lmeSBhIGxpc3Qgb2YKdHJvZmYgcHJlcHJvY2Vzc29ycy4KCiAgIFRoaXJkLCBF bWFjcyB0cmllcyB0byBkZXRlcm1pbmUgdGhlIG1ham9yIG1vZGUgYnkgbG9va2luZyBhdCB0aGUg dGV4dAphdCB0aGUgc3RhcnQgb2YgdGhlIGJ1ZmZlciwgYmFzZWQgb24gdGhlIHZhcmlhYmxlIOKA mG1hZ2ljLW1vZGUtYWxpc3TigJkuCkJ5IGRlZmF1bHQsIHRoaXMgdmFyaWFibGUgaXMg4oCYbmls 4oCZIChhbiBlbXB0eSBsaXN0KSwgc28gRW1hY3Mgc2tpcHMgdGhpcwpzdGVwOyBob3dldmVyLCB5 b3UgY2FuIGN1c3RvbWl6ZSBpdCBpbiB5b3VyIGluaXQgZmlsZSAoKm5vdGUgSW5pdApGaWxlOjop LiAgVGhlIHZhbHVlIHNob3VsZCBiZSBhIGxpc3Qgb2YgZWxlbWVudHMgb2YgdGhlIGZvcm0KCiAg ICAgKFJFR0VYUCAuIE1PREUtRlVOQ1RJT04pCgp3aGVyZSBSRUdFWFAgaXMgYSByZWd1bGFyIGV4 cHJlc3Npb24gKCpub3RlIFJlZ2V4cHM6OiksIGFuZApNT0RFLUZVTkNUSU9OIGlzIGEgbWFqb3Ig bW9kZSBjb21tYW5kLiAgSWYgdGhlIHRleHQgYXQgdGhlIGJlZ2lubmluZyBvZgp0aGUgZmlsZSBt YXRjaGVzIFJFR0VYUCwgRW1hY3MgY2hvb3NlcyB0aGUgbWFqb3IgbW9kZSBzcGVjaWZpZWQgYnkK TU9ERS1GVU5DVElPTi4KCiAgIEFsdGVybmF0aXZlbHksIGFuIGVsZW1lbnQgb2Yg4oCYbWFnaWMt bW9kZS1hbGlzdOKAmSBtYXkgaGF2ZSB0aGUgZm9ybQoKICAgICAoTUFUQ0gtRlVOQ1RJT04gLiBN T0RFLUZVTkNUSU9OKQoKd2hlcmUgTUFUQ0gtRlVOQ1RJT04gaXMgYSBMaXNwIGZ1bmN0aW9uIHRo YXQgaXMgY2FsbGVkIGF0IHRoZSBiZWdpbm5pbmcKb2YgdGhlIGJ1ZmZlcjsgaWYgdGhlIGZ1bmN0 aW9uIHJldHVybnMgbm9uLeKAmG5pbOKAmSwgRW1hY3Mgc2V0IHRoZSBtYWpvcgptb2RlIHdpdGgg TU9ERS1GVU5DVElPTi4KCiAgIEZvdXJ0aOKAlGlmIEVtYWNzIHN0aWxsIGhhc27igJl0IGZvdW5k IGEgc3VpdGFibGUgbWFqb3IgbW9kZeKAlGl0IGxvb2tzIGF0CnRoZSBmaWxl4oCZcyBuYW1lLiAg VGhlIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gZmlsZSBuYW1lcyBhbmQgbWFqb3IgbW9kZXMKaXMg Y29udHJvbGxlZCBieSB0aGUgdmFyaWFibGUg4oCYYXV0by1tb2RlLWFsaXN04oCZLiAgSXRzIHZh bHVlIGlzIGEgbGlzdCBpbgp3aGljaCBlYWNoIGVsZW1lbnQgaGFzIHRoaXMgZm9ybSwKCiAgICAg KFJFR0VYUCAuIE1PREUtRlVOQ1RJT04pCgpvciB0aGlzIGZvcm0sCgogICAgIChSRUdFWFAgTU9E RS1GVU5DVElPTiBGTEFHKQoKRm9yIGV4YW1wbGUsIG9uZSBlbGVtZW50IG5vcm1hbGx5IGZvdW5k IGluIHRoZSBsaXN0IGhhcyB0aGUgZm9ybQrigJgoIlxcLmNcXCciIC4gYy1tb2RlKeKAmSwgYW5k IGl0IGlzIHJlc3BvbnNpYmxlIGZvciBzZWxlY3RpbmcgQyBtb2RlIGZvcgpmaWxlcyB3aG9zZSBu YW1lcyBlbmQgaW4g4oCYLmPigJkuICAoTm90ZSB0aGF0IOKAmFxc4oCZIGlzIG5lZWRlZCBpbiBM aXNwIHN5bnRheAp0byBpbmNsdWRlIGEg4oCYXOKAmSBpbiB0aGUgc3RyaW5nLCB3aGljaCBtdXN0 IGJlIHVzZWQgdG8gc3VwcHJlc3MgdGhlCnNwZWNpYWwgbWVhbmluZyBvZiDigJgu4oCZIGluIHJl Z2V4cHMuKSAgSWYgdGhlIGVsZW1lbnQgaGFzIHRoZSBmb3JtCuKAmChSRUdFWFAgTU9ERS1GVU5D VElPTiBGTEFHKeKAmSBhbmQgRkxBRyBpcyBub24t4oCYbmls4oCZLCB0aGVuIGFmdGVyIGNhbGxp bmcKTU9ERS1GVU5DVElPTiwgRW1hY3MgZGlzY2FyZHMgdGhlIHN1ZmZpeCB0aGF0IG1hdGNoZWQg UkVHRVhQIGFuZApzZWFyY2hlcyB0aGUgbGlzdCBhZ2FpbiBmb3IgYW5vdGhlciBtYXRjaC4KCiAg IE9uIEdOVS9MaW51eCBhbmQgb3RoZXIgc3lzdGVtcyB3aXRoIGNhc2Utc2Vuc2l0aXZlIGZpbGUg bmFtZXMsIEVtYWNzCnBlcmZvcm1zIGEgY2FzZS1zZW5zaXRpdmUgc2VhcmNoIHRocm91Z2gg4oCY YXV0by1tb2RlLWFsaXN04oCZOyBpZiB0aGlzCnNlYXJjaCBmYWlscywgaXQgcGVyZm9ybXMgYSBz ZWNvbmQgY2FzZS1pbnNlbnNpdGl2ZSBzZWFyY2ggdGhyb3VnaCB0aGUKYWxpc3QuICBUbyBzdXBw cmVzcyB0aGUgc2Vjb25kIHNlYXJjaCwgY2hhbmdlIHRoZSB2YXJpYWJsZQrigJhhdXRvLW1vZGUt Y2FzZS1mb2xk4oCZIHRvIOKAmG5pbOKAmS4gIE9uIHN5c3RlbXMgd2l0aCBjYXNlLWluc2Vuc2l0 aXZlIGZpbGUKbmFtZXMsIHN1Y2ggYXMgTWljcm9zb2Z0IFdpbmRvd3MsIEVtYWNzIHBlcmZvcm1z IGEgc2luZ2xlCmNhc2UtaW5zZW5zaXRpdmUgc2VhcmNoIHRocm91Z2gg4oCYYXV0by1tb2RlLWFs aXN04oCZLgoKICAgRmluYWxseSwgaWYgRW1hY3MgX3N0aWxsXyBoYXNu4oCZdCBmb3VuZCBhIG1h am9yIG1vZGUgdG8gdXNlLCBpdApjb21wYXJlcyB0aGUgdGV4dCBhdCB0aGUgc3RhcnQgb2YgdGhl IGJ1ZmZlciB0byB0aGUgdmFyaWFibGUK4oCYbWFnaWMtZmFsbGJhY2stbW9kZS1hbGlzdOKAmS4g IFRoaXMgdmFyaWFibGUgd29ya3MgbGlrZQrigJhtYWdpYy1tb2RlLWFsaXN04oCZLCBkZXNjcmli ZWQgYWJvdmUsIGV4Y2VwdCB0aGF0IGl0IGlzIGNvbnN1bHRlZCBvbmx5Cl9hZnRlcl8g4oCYYXV0 by1tb2RlLWFsaXN04oCZLiAgQnkgZGVmYXVsdCwg4oCYbWFnaWMtZmFsbGJhY2stbW9kZS1hbGlz dOKAmQpjb250YWlucyBmb3JtcyB0aGF0IGNoZWNrIGZvciBpbWFnZSBmaWxlcywgSFRNTC9YTUwv U0dNTCBmaWxlcywKUG9zdFNjcmlwdCBmaWxlcywgYW5kIFVuaXggc3R5bGUgQ29uZiBmaWxlcy4K CiAgIElmIHlvdSBoYXZlIGNoYW5nZWQgdGhlIG1ham9yIG1vZGUgb2YgYSBidWZmZXIsIHlvdSBj YW4gcmV0dXJuIHRvIHRoZQptYWpvciBtb2RlIEVtYWNzIHdvdWxkIGhhdmUgY2hvc2VuIGF1dG9t YXRpY2FsbHksIGJ5IHR5cGluZyDigJhNLXgKbm9ybWFsLW1vZGXigJkuICBUaGlzIGlzIHRoZSBz YW1lIGZ1bmN0aW9uIHRoYXQg4oCYZmluZC1maWxl4oCZIGNhbGxzIHRvCmNob29zZSB0aGUgbWFq b3IgbW9kZS4gIEl0IGFsc28gcHJvY2Vzc2VzIHRoZSBmaWxl4oCZcyDigJgtKi3igJkgbGluZSBv ciBsb2NhbAp2YXJpYWJsZXMgbGlzdCAoaWYgYW55KS4gICpOb3RlIEZpbGUgVmFyaWFibGVzOjou CgogICBUaGUgY29tbWFuZHMg4oCYQy14IEMtd+KAmSBhbmQg4oCYc2V0LXZpc2l0ZWQtZmlsZS1u YW1l4oCZIGNoYW5nZSB0byBhIG5ldwptYWpvciBtb2RlIGlmIHRoZSBuZXcgZmlsZSBuYW1lIGlt cGxpZXMgYSBtb2RlICgqbm90ZSBTYXZpbmc6OikuICAo4oCYQy14CkMtc+KAmSBkb2VzIHRoaXMg dG9vLCBpZiB0aGUgYnVmZmVyIHdhc27igJl0IHZpc2l0aW5nIGEgZmlsZS4pICBIb3dldmVyLAp0 aGlzIGRvZXMgbm90IGhhcHBlbiBpZiB0aGUgYnVmZmVyIGNvbnRlbnRzIHNwZWNpZnkgYSBtYWpv ciBtb2RlLCBhbmQKY2VydGFpbiBzcGVjaWFsIG1ham9yIG1vZGVzIGRvIG5vdCBhbGxvdyB0aGUg bW9kZSB0byBjaGFuZ2UuICBZb3UgY2FuCnR1cm4gb2ZmIHRoaXMgbW9kZS1jaGFuZ2luZyBmZWF0 dXJlIGJ5IHNldHRpbmcK4oCYY2hhbmdlLW1ham9yLW1vZGUtd2l0aC1maWxlLW5hbWXigJkgdG8g 4oCYbmls4oCZLgoKCiogMjQgSW5kZW50YXRpb24KCiJJbmRlbnRhdGlvbiIgcmVmZXJzIHRvIGlu c2VydGluZyBvciBhZGp1c3RpbmcgIndoaXRlc3BhY2UgY2hhcmFjdGVycyIKKHNwYWNlIGFuZC9v ciB0YWIgY2hhcmFjdGVycykgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgb2YgdGV4dC4gIFRo aXMKY2hhcHRlciBkb2N1bWVudHMgaW5kZW50YXRpb24gY29tbWFuZHMgYW5kIG9wdGlvbnMgd2hp Y2ggYXJlIGNvbW1vbiB0bwpUZXh0IG1vZGUgYW5kIHJlbGF0ZWQgbW9kZXMsIGFzIHdlbGwgYXMg cHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgbW9kZXMuCipOb3RlIFByb2dyYW0gSW5kZW50OjosIGZvciBh ZGRpdGlvbmFsIGRvY3VtZW50YXRpb24gYWJvdXQgaW5kZW50aW5nIGluCnByb2dyYW1taW5nIG1v ZGVzLgoKICAgVGhlIHNpbXBsZXN0IHdheSB0byBwZXJmb3JtIGluZGVudGF0aW9uIGlzIHRoZSA8 VEFCPiBrZXkuICBJbiBtb3N0Cm1ham9yIG1vZGVzLCB0aGlzIHJ1bnMgdGhlIGNvbW1hbmQg4oCY aW5kZW50LWZvci10YWItY29tbWFuZOKAmS4gIChJbiBDIGFuZApyZWxhdGVkIG1vZGVzLCA8VEFC PiBydW5zIHRoZSBjb21tYW5kIOKAmGMtaW5kZW50LWxpbmUtb3ItcmVnaW9u4oCZLCB3aGljaApi ZWhhdmVzIHNpbWlsYXJseSwgKm5vdGUgQyBJbmRlbnQ6OikuCgo8VEFCPgogICAgIEluc2VydCB3 aGl0ZXNwYWNlLCBvciBpbmRlbnQgdGhlIGN1cnJlbnQgbGluZSwgaW4gYQogICAgIG1vZGUtYXBw cm9wcmlhdGUgd2F5ICjigJhpbmRlbnQtZm9yLXRhYi1jb21tYW5k4oCZKS4gIElmIHRoZSByZWdp b24gaXMKICAgICBhY3RpdmUsIGluZGVudCBhbGwgdGhlIGxpbmVzIHdpdGhpbiBpdC4KCiAgIFRo ZSBleGFjdCBiZWhhdmlvciBvZiA8VEFCPiBkZXBlbmRzIG9uIHRoZSBtYWpvciBtb2RlLiAgSW4g VGV4dCBtb2RlCmFuZCByZWxhdGVkIG1ham9yIG1vZGVzLCA8VEFCPiBub3JtYWxseSBpbnNlcnRz IHNvbWUgY29tYmluYXRpb24gb2YKc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzIHRvIGFkdmFuY2Ug cG9pbnQgdG8gdGhlIG5leHQgdGFiIHN0b3AgKCpub3RlClRhYiBTdG9wczo6KS4gIEZvciB0aGlz IHB1cnBvc2UsIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QKbm9uLXdoaXRlc3BhY2UgY2hhcmFj dGVyIG9uIHRoZSBwcmVjZWRpbmcgbGluZSBpcyB0cmVhdGVkIGFzIGFuCmFkZGl0aW9uYWwgdGFi IHN0b3AsIHNvIHlvdSBjYW4gdXNlIDxUQUI+IHRvIGFsaWduIHBvaW50IHdpdGggdGhlCnByZWNl ZGluZyBsaW5lLiAgSWYgdGhlIHJlZ2lvbiBpcyBhY3RpdmUgKCpub3RlIFVzaW5nIFJlZ2lvbjo6 KSwgPFRBQj4KYWN0cyBzcGVjaWFsbHk6IGl0IGluZGVudHMgZWFjaCBsaW5lIGluIHRoZSByZWdp b24gc28gdGhhdCBpdHMgZmlyc3QKbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGFsaWduZWQg d2l0aCB0aGUgcHJlY2VkaW5nIGxpbmUuCgogICBJbiBwcm9ncmFtbWluZyBtb2RlcywgPFRBQj4g aW5kZW50cyB0aGUgY3VycmVudCBsaW5lIG9mIGNvZGUgaW4gYSB3YXkKdGhhdCBtYWtlcyBzZW5z ZSBnaXZlbiB0aGUgY29kZSBpbiB0aGUgcHJlY2VkaW5nIGxpbmVzLiAgSWYgdGhlIHJlZ2lvbgpp cyBhY3RpdmUsIGFsbCB0aGUgbGluZXMgaW4gdGhlIHJlZ2lvbiBhcmUgaW5kZW50ZWQgdGhpcyB3 YXkuICBJZiBwb2ludAp3YXMgaW5pdGlhbGx5IHdpdGhpbiB0aGUgY3VycmVudCBsaW5l4oCZcyBp bmRlbnRhdGlvbiwgaXQgaXMgcmVwb3NpdGlvbmVkCnRvIHRoZSBmaXJzdCBub24td2hpdGVzcGFj ZSBjaGFyYWN0ZXIgb24gdGhlIGxpbmUuCgogICBJZiB5b3UganVzdCB3YW50IHRvIGluc2VydCBh IHRhYiBjaGFyYWN0ZXIgaW4gdGhlIGJ1ZmZlciwgdHlwZSDigJhDLXEKPFRBQj7igJkgKCpub3Rl IEluc2VydGluZyBUZXh0OjopLgoKKyBNZW51OgoKICAtIEluZGVudGF0aW9uIENvbW1hbmRzOjog IE1vcmUgY29tbWFuZHMgZm9yIHBlcmZvcm1pbmcgaW5kZW50YXRpb24uCiAgLSBUYWIgU3RvcHM6 OiAgICAgICAgICAgICBTdG9wIHBvaW50cyBmb3IgaW5kZW50YXRpb24gaW4gVGV4dCBtb2Rlcy4K ICAtIEp1c3QgU3BhY2VzOjogICAgICAgICAgIFVzaW5nIG9ubHkgc3BhY2UgY2hhcmFjdGVycyBm b3IgaW5kZW50YXRpb24uCiAgLSBJbmRlbnQgQ29udmVuaWVuY2U6OiAgICBPcHRpb25hbCBpbmRl bnRhdGlvbiBmZWF0dXJlcy4KCgoqKiAyNC4xIEluZGVudGF0aW9uIENvbW1hbmRzCgpBcGFydCBm cm9tIHRoZSDigJg8VEFCPuKAmSAo4oCYaW5kZW50LWZvci10YWItY29tbWFuZOKAmSkgY29tbWFu ZCwgRW1hY3MKcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGNvbW1hbmRzIHRvIHBlcmZvcm0gaW5kZW50 YXRpb24gaW4gb3RoZXIgd2F5cy4KCuKAmEMtTS1v4oCZCiAgICAgU3BsaXQgdGhlIGN1cnJlbnQg bGluZSBhdCBwb2ludCAo4oCYc3BsaXQtbGluZeKAmSkuICBUaGUgdGV4dCBvbiB0aGUKICAgICBs aW5lIGFmdGVyIHBvaW50IGJlY29tZXMgYSBuZXcgbGluZSwgaW5kZW50ZWQgdG8gdGhlIHNhbWUg Y29sdW1uCiAgICAgd2hlcmUgcG9pbnQgaXMgbG9jYXRlZC4gIFRoaXMgY29tbWFuZCBmaXJzdCBt b3ZlcyBwb2ludCBmb3J3YXJkCiAgICAgb3ZlciBhbnkgc3BhY2VzIGFuZCB0YWJzLiAgQWZ0ZXJ3 YXJkLCBwb2ludCBpcyBwb3NpdGlvbmVkIGJlZm9yZQogICAgIHRoZSBpbnNlcnRlZCBuZXdsaW5l LgoK4oCYTS1t4oCZCiAgICAgTW92ZSAoZm9yd2FyZCBvciBiYWNrKSB0byB0aGUgZmlyc3Qgbm9u LXdoaXRlc3BhY2UgY2hhcmFjdGVyIG9uIHRoZQogICAgIGN1cnJlbnQgbGluZSAo4oCYYmFjay10 by1pbmRlbnRhdGlvbuKAmSkuICBJZiB0aGVyZSBhcmUgbm8KICAgICBub24td2hpdGVzcGFjZSBj aGFyYWN0ZXJzIG9uIHRoZSBsaW5lLCBtb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCgrigJhN LWnigJkKICAgICBJbmRlbnQgd2hpdGVzcGFjZSBhdCBwb2ludCwgdXAgdG8gdGhlIG5leHQgdGFi IHN0b3AKICAgICAo4oCYdGFiLXRvLXRhYi1zdG9w4oCZKS4gICpOb3RlIFRhYiBTdG9wczo6LgoK 4oCYTS14IGluZGVudC1yZWxhdGl2ZeKAmQogICAgIEluc2VydCB3aGl0ZXNwYWNlIGF0IHBvaW50 LCB1bnRpbCBwb2ludCBpcyBhbGlnbmVkIHdpdGggdGhlIGZpcnN0CiAgICAgbm9uLXdoaXRlc3Bh Y2UgY2hhcmFjdGVyIG9uIHRoZSBwcmV2aW91cyBsaW5lIChhY3R1YWxseSwgdGhlIGxhc3QKICAg ICBub24tYmxhbmsgbGluZSkuICBJZiBwb2ludCBpcyBhbHJlYWR5IGZhcnRoZXIgcmlnaHQgdGhh biB0aGF0LCBydW4KICAgICDigJh0YWItdG8tdGFiLXN0b3DigJkgaW5zdGVhZOKAlHVubGVzcyBj YWxsZWQgd2l0aCBhIG51bWVyaWMgYXJndW1lbnQsIGluCiAgICAgd2hpY2ggY2FzZSBkbyBub3Ro aW5nLgoK4oCYTS1e4oCZCiAgICAgTWVyZ2UgdGhlIHByZXZpb3VzIGFuZCB0aGUgY3VycmVudCBs aW5lICjigJhkZWxldGUtaW5kZW50YXRpb27igJkpLgogICAgIFRoaXMgam9pbnMgdGhlIHR3byBs aW5lcyBjbGVhbmx5LCBieSByZXBsYWNpbmcgYW55IGluZGVudGF0aW9uIGF0CiAgICAgdGhlIGZy b250IG9mIHRoZSBjdXJyZW50IGxpbmUsIHRvZ2V0aGVyIHdpdGggdGhlIGxpbmUgYm91bmRhcnks CiAgICAgd2l0aCBhIHNpbmdsZSBzcGFjZS4KCiAgICAgQXMgYSBzcGVjaWFsIGNhc2UgKHVzZWZ1 bCBmb3IgTGlzcCBjb2RlKSwgdGhlIHNpbmdsZSBzcGFjZSBpcwogICAgIG9taXR0ZWQgaWYgdGhl IGNoYXJhY3RlcnMgdG8gYmUgam9pbmVkIGFyZSBjb25zZWN1dGl2ZSBvcGVuaW5nIGFuZAogICAg IGNsb3NpbmcgcGFyZW50aGVzZXMsIG9yIGlmIHRoZSBqdW5jdGlvbiBmb2xsb3dzIGFub3RoZXIg bmV3bGluZS4KCiAgICAgSWYgdGhlcmUgaXMgYSBmaWxsIHByZWZpeCwg4oCYTS1e4oCZIGRlbGV0 ZXMgdGhlIGZpbGwgcHJlZml4IGlmIGl0CiAgICAgYXBwZWFycyBhZnRlciB0aGUgbmV3bGluZSB0 aGF0IGlzIGRlbGV0ZWQuICAqTm90ZSBGaWxsIFByZWZpeDo6LgoK4oCYQy1NLVzigJkKICAgICBJ bmRlbnQgYWxsIHRoZSBsaW5lcyBpbiB0aGUgcmVnaW9uLCBhcyB0aG91Z2ggeW91IGhhZCB0eXBl ZCDigJg8VEFCPuKAmQogICAgIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lICjigJhpbmRl bnQtcmVnaW9u4oCZKS4KCiAgICAgSWYgYSBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCBp bmRlbnQgZXZlcnkgbGluZSBpbiB0aGUgcmVnaW9uCiAgICAgdG8gdGhhdCBjb2x1bW4gbnVtYmVy LgoK4oCYQy14IDxUQUI+4oCZCiAgICAgVGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gY2hhbmdlIHRo ZSBpbmRlbnRhdGlvbiBvZiBhbGwgbGluZXMgdGhhdAogICAgIGJlZ2luIGluIHRoZSByZWdpb24s IG1vdmluZyB0aGUgYWZmZWN0ZWQgbGluZXMgYXMgYSByaWdpZCB1bml0LgoKICAgICBJZiBjYWxs ZWQgd2l0aCBubyBhcmd1bWVudCwgdGhlIGNvbW1hbmQgYWN0aXZhdGVzIGEgdHJhbnNpZW50IG1v ZGUKICAgICBmb3IgYWRqdXN0aW5nIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgYWZmZWN0ZWQgbGlu ZXMgaW50ZXJhY3RpdmVseS4KICAgICBXaGlsZSB0aGlzIHRyYW5zaWVudCBtb2RlIGlzIGFjdGl2 ZSwgdHlwaW5nIOKAmDxMRUZUPuKAmSBvciDigJg8UklHSFQ+4oCZCiAgICAgaW5kZW50cyBsZWZ0 d2FyZCBhbmQgcmlnaHR3YXJkLCByZXNwZWN0aXZlbHksIGJ5IG9uZSBzcGFjZS4gIFlvdQogICAg IGNhbiBhbHNvIHR5cGUg4oCYUy08TEVGVD7igJkgb3Ig4oCYUy08UklHSFQ+4oCZIHRvIGluZGVu dCBsZWZ0d2FyZCBvcgogICAgIHJpZ2h0d2FyZCB0byB0aGUgbmV4dCB0YWIgc3RvcCAoKm5vdGUg VGFiIFN0b3BzOjopLiAgVHlwaW5nIGFueQogICAgIG90aGVyIGtleSBkaXNhYmxlcyB0aGUgdHJh bnNpZW50IG1vZGUsIGFuZCByZXN1bWVzIG5vcm1hbCBlZGl0aW5nLgoKICAgICBJZiBjYWxsZWQg d2l0aCBhIHByZWZpeCBhcmd1bWVudCBOLCB0aGlzIGNvbW1hbmQgaW5kZW50cyB0aGUgbGluZXMK ICAgICBmb3J3YXJkIGJ5IE4gc3BhY2VzICh3aXRob3V0IGVuYWJsaW5nIHRoZSB0cmFuc2llbnQg bW9kZSkuCiAgICAgTmVnYXRpdmUgdmFsdWVzIG9mIE4gaW5kZW50IGJhY2t3YXJkLCBzbyB5b3Ug Y2FuIHJlbW92ZSBhbGwKICAgICBpbmRlbnRhdGlvbiBmcm9tIHRoZSBsaW5lcyBpbiB0aGUgcmVn aW9uIHVzaW5nIGEgbGFyZ2UgbmVnYXRpdmUKICAgICBhcmd1bWVudCwgbGlrZSB0aGlzOgoKICAg ICAgICAgIEMtdSAtOTk5IEMteCA8VEFCPgoKCioqIDI0LjIgVGFiIFN0b3BzCgpFbWFjcyBkZWZp bmVzIGNlcnRhaW4gY29sdW1uIG51bWJlcnMgdG8gYmUgInRhYiBzdG9wcyIuICBUaGVzZSBhcmUg dXNlZAphcyBzdG9wcGluZyBwb2ludHMgYnkgPFRBQj4gd2hlbiBpbnNlcnRpbmcgd2hpdGVzcGFj ZSBpbiBUZXh0IG1vZGUgYW5kCnJlbGF0ZWQgbW9kZXMgKCpub3RlIEluZGVudGF0aW9uOjopLCBh bmQgYnkgY29tbWFuZHMgbGlrZSDigJhNLWnigJkgKCpub3RlCkluZGVudGF0aW9uIENvbW1hbmRz OjopLiAgVGhlIHZhcmlhYmxlIOKAmHRhYi1zdG9wLWxpc3TigJkgY29udHJvbHMgdGhlc2UKcG9z aXRpb25zLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMg4oCYbmls4oCZLCB3aGljaCBtZWFucyBhIHRh YiBzdG9wIGV2ZXJ5IDgKY29sdW1ucy4gIFRoZSB2YWx1ZSBjYW4gYWxzbyBiZSBhIGxpc3Qgb2Yg emVyby1iYXNlZCBjb2x1bW4gbnVtYmVycyAoaW4KaW5jcmVhc2luZyBvcmRlcikgYXQgd2hpY2gg dG8gcGxhY2UgdGFiIHN0b3BzLiAgRW1hY3MgZXh0ZW5kcyB0aGUgbGlzdApmb3JldmVyIGJ5IHJl cGVhdGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsYXN0IGFuZCBuZXh0LXRvLWxhc3QK ZWxlbWVudHMuCgogICBJbnN0ZWFkIG9mIGN1c3RvbWl6aW5nIHRoZSB2YXJpYWJsZSDigJh0YWIt c3RvcC1saXN04oCZIGRpcmVjdGx5LCBhCmNvbnZlbmllbnQgd2F5IHRvIHZpZXcgYW5kIHNldCB0 YWIgc3RvcHMgaXMgdmlhIHRoZSBjb21tYW5kIOKAmE0teAplZGl0LXRhYi1zdG9wc+KAmS4gIFRo aXMgc3dpdGNoZXMgdG8gYSBidWZmZXIgY29udGFpbmluZyBhIGRlc2NyaXB0aW9uIG9mCnRoZSB0 YWIgc3RvcCBzZXR0aW5ncywgd2hpY2ggbG9va3MgbGlrZSB0aGlzOgoKICAgICAgICAgICAgIDog ICAgICAgOiAgICAgICA6ICAgICAgIDogICAgICAgOiAgICAgICA6CiAgICAgMCAgICAgICAgIDEg ICAgICAgICAyICAgICAgICAgMyAgICAgICAgIDQKICAgICAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4CiAgICAgVG8gaW5zdGFsbCBjaGFuZ2VzLCB0eXBl IEMtYyBDLWMKClRoZSBmaXJzdCBsaW5lIGNvbnRhaW5zIGEgY29sb24gYXQgZWFjaCB0YWIgc3Rv cC4gIFRoZSBudW1iZXJzIG9uIHRoZQpuZXh0IHR3byBsaW5lcyBhcmUgcHJlc2VudCBqdXN0IHRv IGluZGljYXRlIHdoZXJlIHRoZSBjb2xvbnMgYXJlLiAgSWYKdGhlIHZhbHVlIG9mIOKAmHRhYi1z dG9wLWxpc3TigJkgaXMg4oCYbmls4oCZLCBhcyBpdCBpcyBieSBkZWZhdWx0LCBubyBjb2xvbnMK YXJlIGRpc3BsYXllZCBpbml0aWFsbHkuCgogICBZb3UgY2FuIGVkaXQgdGhpcyBidWZmZXIgdG8g c3BlY2lmeSBkaWZmZXJlbnQgdGFiIHN0b3BzIGJ5IHBsYWNpbmcKY29sb25zIG9uIHRoZSBkZXNp cmVkIGNvbHVtbnMuICBUaGUgYnVmZmVyIHVzZXMgT3ZlcndyaXRlIG1vZGUgKCpub3RlCk1pbm9y IE1vZGVzOjopLiAgUmVtZW1iZXIgdGhhdCBFbWFjcyB3aWxsIGV4dGVuZCB0aGUgbGlzdCBvZiB0 YWIgc3RvcHMKZm9yZXZlciBieSByZXBlYXRpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUg bGFzdCB0d28gZXhwbGljaXQgc3RvcHMKdGhhdCB5b3UgcGxhY2UuICBXaGVuIHlvdSBhcmUgZG9u ZSwgdHlwZSDigJhDLWMgQy1j4oCZIHRvIG1ha2UgdGhlIG5ldyB0YWIKc3RvcHMgdGFrZSBlZmZl Y3QuICBOb3JtYWxseSwgdGhlIG5ldyB0YWIgc3RvcCBzZXR0aW5ncyBhcHBseSB0byBhbGwKYnVm ZmVycy4gIEhvd2V2ZXIsIGlmIHlvdSBoYXZlIG1hZGUgdGhlIOKAmHRhYi1zdG9wLWxpc3TigJkg dmFyaWFibGUgbG9jYWwKdG8gdGhlIGJ1ZmZlciB3aGVyZSB5b3UgY2FsbGVkIOKAmE0teCBlZGl0 LXRhYi1zdG9wc+KAmSAoKm5vdGUgTG9jYWxzOjopLAp0aGVuIHRoZSBuZXcgdGFiIHN0b3Agc2V0 dGluZ3MgYXBwbHkgb25seSB0byB0aGF0IGJ1ZmZlci4gIFRvIHNhdmUgdGhlCnRhYiBzdG9wIHNl dHRpbmdzIGZvciBmdXR1cmUgRW1hY3Mgc2Vzc2lvbnMsIHVzZSB0aGUgQ3VzdG9taXplIGludGVy ZmFjZQp0byBzYXZlIHRoZSB2YWx1ZSBvZiDigJh0YWItc3RvcC1saXN04oCZICgqbm90ZSBFYXN5 IEN1c3RvbWl6YXRpb246OikuCgogICBOb3RlIHRoYXQgdGhlIHRhYiBzdG9wcyBkaXNjdXNzZWQg aW4gdGhpcyBzZWN0aW9uIGhhdmUgbm90aGluZyB0byBkbwp3aXRoIGhvdyB0YWIgY2hhcmFjdGVy cyBhcmUgZGlzcGxheWVkIGluIHRoZSBidWZmZXIuICBUYWIgY2hhcmFjdGVycyBhcmUKYWx3YXlz IGRpc3BsYXllZCBhcyBlbXB0eSBzcGFjZXMgZXh0ZW5kaW5nIHRvIHRoZSBuZXh0ICJkaXNwbGF5 IHRhYgpzdG9wIi4gICpOb3RlIFRleHQgRGlzcGxheTo6LgoKCioqIDI0LjMgVGFicyB2cy4gU3Bh Y2VzCgpOb3JtYWxseSwgaW5kZW50YXRpb24gY29tbWFuZHMgaW5zZXJ0IChvciByZW1vdmUpIHRo ZSBzaG9ydGVzdCBwb3NzaWJsZQpzZXJpZXMgb2YgdGFiIGFuZCBzcGFjZSBjaGFyYWN0ZXJzIHNv IGFzIHRvIGFsaWduIHRvIHRoZSBkZXNpcmVkIGNvbHVtbi4KVGFiIGNoYXJhY3RlcnMgYXJlIGRp c3BsYXllZCBhcyBhIHN0cmV0Y2ggb2YgZW1wdHkgc3BhY2UgZXh0ZW5kaW5nIHRvCnRoZSBuZXh0 ICJkaXNwbGF5IHRhYiBzdG9wIi4gIEJ5IGRlZmF1bHQsIHRoZXJlIGlzIG9uZSBkaXNwbGF5IHRh YiBzdG9wCmV2ZXJ5IOKAmHRhYi13aWR0aOKAmSBjb2x1bW5zICh0aGUgZGVmYXVsdCBpcyA4KS4g ICpOb3RlIFRleHQgRGlzcGxheTo6LgoKICAgSWYgeW91IHByZWZlciwgYWxsIGluZGVudGF0aW9u IGNhbiBiZSBtYWRlIGZyb20gc3BhY2VzIG9ubHkuICBUbwpyZXF1ZXN0IHRoaXMsIHNldCB0aGUg YnVmZmVyLWxvY2FsIHZhcmlhYmxlIOKAmGluZGVudC10YWJzLW1vZGXigJkgdG8g4oCYbmls4oCZ LgoqTm90ZSBMb2NhbHM6OiwgZm9yIGluZm9ybWF0aW9uIGFib3V0IHNldHRpbmcgYnVmZmVyLWxv Y2FsIHZhcmlhYmxlcy4KTm90ZSwgaG93ZXZlciwgdGhhdCDigJhDLXEgPFRBQj7igJkgYWx3YXlz IGluc2VydHMgYSB0YWIgY2hhcmFjdGVyLApyZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiDigJhp bmRlbnQtdGFicy1tb2Rl4oCZLgoKICAgT25lIHJlYXNvbiB0byBzZXQg4oCYaW5kZW50LXRhYnMt bW9kZeKAmSB0byDigJhuaWzigJkgaXMgdGhhdCBub3QgYWxsIGVkaXRvcnMKZGlzcGxheSB0YWIg Y2hhcmFjdGVycyBpbiB0aGUgc2FtZSB3YXkuICBFbWFjcyB1c2VycywgdG9vLCBtYXkgaGF2ZQpk aWZmZXJlbnQgY3VzdG9taXplZCB2YWx1ZXMgb2Yg4oCYdGFiLXdpZHRo4oCZLiAgQnkgdXNpbmcg c3BhY2VzIG9ubHksIHlvdQpjYW4gbWFrZSBzdXJlIHRoYXQgeW91ciBmaWxlIGFsd2F5cyBsb29r cyB0aGUgc2FtZS4gIElmIHlvdSBvbmx5IGNhcmUKYWJvdXQgaG93IGl0IGxvb2tzIHdpdGhpbiBF bWFjcywgYW5vdGhlciB3YXkgdG8gdGFja2xlIHRoaXMgcHJvYmxlbSBpcwp0byBzZXQgdGhlIOKA mHRhYi13aWR0aOKAmSB2YXJpYWJsZSBpbiBhIGZpbGUtbG9jYWwgdmFyaWFibGUgKCpub3RlIEZp bGUKVmFyaWFibGVzOjopLgoKICAgVGhlcmUgYXJlIGFsc28gY29tbWFuZHMgdG8gY29udmVydCB0 YWJzIHRvIHNwYWNlcyBvciB2aWNlIHZlcnNhLAphbHdheXMgcHJlc2VydmluZyB0aGUgY29sdW1u cyBvZiBhbGwgbm9uLXdoaXRlc3BhY2UgdGV4dC4gIOKAmE0teCB0YWJpZnnigJkKc2NhbnMgdGhl IHJlZ2lvbiBmb3Igc2VxdWVuY2VzIG9mIHNwYWNlcywgYW5kIGNvbnZlcnRzIHNlcXVlbmNlcyBv ZiBhdApsZWFzdCB0d28gc3BhY2VzIHRvIHRhYnMgaWYgdGhhdCBjYW4gYmUgZG9uZSB3aXRob3V0 IGNoYW5naW5nCmluZGVudGF0aW9uLiAg4oCYTS14IHVudGFiaWZ54oCZIGNoYW5nZXMgYWxsIHRh YnMgaW4gdGhlIHJlZ2lvbiB0bwphcHByb3ByaWF0ZSBudW1iZXJzIG9mIHNwYWNlcy4KCgoqKiAy NC40IENvbnZlbmllbmNlIEZlYXR1cmVzIGZvciBJbmRlbnRhdGlvbgoKVGhlIHZhcmlhYmxlIOKA mHRhYi1hbHdheXMtaW5kZW504oCZIHR3ZWFrcyB0aGUgYmVoYXZpb3Igb2YgdGhlIDxUQUI+Ciji gJhpbmRlbnQtZm9yLXRhYi1jb21tYW5k4oCZKSBjb21tYW5kLiAgVGhlIGRlZmF1bHQgdmFsdWUs IOKAmHTigJksIGdpdmVzIHRoZQpiZWhhdmlvciBkZXNjcmliZWQgaW4gKm5vdGUgSW5kZW50YXRp b246Oi4gIElmIHlvdSBjaGFuZ2UgdGhlIHZhbHVlIHRvCnRoZSBzeW1ib2wg4oCYY29tcGxldGXi gJksIHRoZW4gPFRBQj4gZmlyc3QgdHJpZXMgdG8gaW5kZW50IHRoZSBjdXJyZW50CmxpbmUsIGFu ZCBpZiB0aGUgbGluZSB3YXMgYWxyZWFkeSBpbmRlbnRlZCwgaXQgdHJpZXMgdG8gY29tcGxldGUg dGhlCnRleHQgYXQgcG9pbnQgKCpub3RlIFN5bWJvbCBDb21wbGV0aW9uOjopLiAgSWYgdGhlIHZh bHVlIGlzIOKAmG5pbOKAmSwgdGhlbgo8VEFCPiBpbmRlbnRzIHRoZSBjdXJyZW50IGxpbmUgb25s eSBpZiBwb2ludCBpcyBhdCB0aGUgbGVmdCBtYXJnaW4gb3IgaW4KdGhlIGxpbmXigJlzIGluZGVu dGF0aW9uOyBvdGhlcndpc2UsIGl0IGluc2VydHMgYSB0YWIgY2hhcmFjdGVyLgoKICAgRWxlY3Ry aWMgSW5kZW50IG1vZGUgaXMgYSBnbG9iYWwgbWlub3IgbW9kZSB0aGF0IGF1dG9tYXRpY2FsbHkK aW5kZW50cyB0aGUgbGluZSBhZnRlciBldmVyeSA8UkVUPiB5b3UgdHlwZS4gIFRoaXMgbW9kZSBp cyBlbmFibGVkIGJ5CmRlZmF1bHQuICBUbyB0b2dnbGUgdGhpcyBtaW5vciBtb2RlLCB0eXBlIOKA mE0teCBlbGVjdHJpYy1pbmRlbnQtbW9kZeKAmS4KVG8gdG9nZ2xlIHRoZSBtb2RlIGluIGEgc2lu Z2xlIGJ1ZmZlciwgdXNlIOKAmE0teAplbGVjdHJpYy1pbmRlbnQtbG9jYWwtbW9kZeKAmS4KCgoq IDI1IENvbW1hbmRzIGZvciBIdW1hbiBMYW5ndWFnZXMKClRoaXMgY2hhcHRlciBkZXNjcmliZXMg RW1hY3MgY29tbWFuZHMgdGhhdCBhY3Qgb24gInRleHQiLCBieSB3aGljaCB3ZQptZWFuIHNlcXVl bmNlcyBvZiBjaGFyYWN0ZXJzIGluIGEgaHVtYW4gbGFuZ3VhZ2UgKGFzIG9wcG9zZWQgdG8sIHNh eSwgYQpjb21wdXRlciBwcm9ncmFtbWluZyBsYW5ndWFnZSkuICBUaGVzZSBjb21tYW5kcyBhY3Qg aW4gd2F5cyB0aGF0IHRha2UKaW50byBhY2NvdW50IHRoZSBzeW50YWN0aWMgYW5kIHN0eWxpc3Rp YyBjb252ZW50aW9ucyBvZiBodW1hbiBsYW5ndWFnZXM6CmNvbnZlbnRpb25zIGludm9sdmluZyB3 b3Jkcywgc2VudGVuY2VzLCBwYXJhZ3JhcGhzLCBhbmQgY2FwaXRhbCBsZXR0ZXJzLgpUaGVyZSBh cmUgYWxzbyBjb21tYW5kcyBmb3IgImZpbGxpbmciLCB3aGljaCBtZWFucyByZWFycmFuZ2luZyB0 aGUgbGluZXMKb2YgYSBwYXJhZ3JhcGggdG8gYmUgYXBwcm94aW1hdGVseSBlcXVhbCBpbiBsZW5n dGguICBUaGVzZSBjb21tYW5kcywKd2hpbGUgaW50ZW5kZWQgcHJpbWFyaWx5IGZvciBlZGl0aW5n IHRleHQsIGFyZSBhbHNvIG9mdGVuIHVzZWZ1bCBmb3IKZWRpdGluZyBwcm9ncmFtcy4KCiAgIEVt YWNzIGhhcyBzZXZlcmFsIG1ham9yIG1vZGVzIGZvciBlZGl0aW5nIGh1bWFuLWxhbmd1YWdlIHRl eHQuICBJZgp0aGUgZmlsZSBjb250YWlucyBvcmRpbmFyeSB0ZXh0LCB1c2UgVGV4dCBtb2RlLCB3 aGljaCBjdXN0b21pemVzIEVtYWNzCmluIHNtYWxsIHdheXMgZm9yIHRoZSBzeW50YWN0aWMgY29u dmVudGlvbnMgb2YgdGV4dC4gIE91dGxpbmUgbW9kZQpwcm92aWRlcyBzcGVjaWFsIGNvbW1hbmRz IGZvciBvcGVyYXRpbmcgb24gdGV4dCB3aXRoIGFuIG91dGxpbmUKc3RydWN0dXJlLiAgKk5vdGUg T3V0bGluZSBNb2RlOjouCgogICBPcmcgbW9kZSBleHRlbmRzIE91dGxpbmUgbW9kZSBhbmQgdHVy bnMgRW1hY3MgaW50byBhIGZ1bGwtZmxlZGdlZApvcmdhbml6ZXI6IHlvdSBjYW4gbWFuYWdlIFRP RE8gbGlzdHMsIHN0b3JlIG5vdGVzIGFuZCBwdWJsaXNoIHRoZW0gaW4KbWFueSBmb3JtYXRzLiAg Kk5vdGUgVGhlIE9yZyBNYW51YWw6IChvcmcpVG9wLgoKICAgRW1hY3MgaGFzIG90aGVyIG1ham9y IG1vZGVzIGZvciB0ZXh0IHdoaWNoIGNvbnRhaW5zIGVtYmVkZGVkCmNvbW1hbmRzLCBzdWNoIGFz IFRlWCBhbmQgTGFUZVggKCpub3RlIFRlWCBNb2RlOjopOyBIVE1MIGFuZCBTR01MICgqbm90ZQpI VE1MIE1vZGU6Oik7IFhNTCAoKm5vdGUgVGhlIG5YTUwgTW9kZSBNYW51YWw6IChueG1sLW1vZGUp VG9wLik7IGFuZApHcm9mZiBhbmQgTnJvZmYgKCpub3RlIE5yb2ZmIE1vZGU6OikuCgogICBJZiB5 b3UgbmVlZCB0byBlZGl0IEFTQ0lJIGFydCBwaWN0dXJlcyBtYWRlIG91dCBvZiB0ZXh0IGNoYXJh Y3RlcnMsCnVzZSBQaWN0dXJlIG1vZGUsIGEgc3BlY2lhbCBtYWpvciBtb2RlIGZvciBlZGl0aW5n IHN1Y2ggcGljdHVyZXMuICAqTm90ZQpQaWN0dXJlIE1vZGU6Oi4KCiAgIFRoZSBhdXRvbWF0aWMg dHlwaW5nIGZlYXR1cmVzIG1heSBiZSB1c2VmdWwgd2hlbiB3cml0aW5nIHRleHQuICAqbm90ZQpU aGUgQXV0b3R5cGUgTWFudWFsOiAoYXV0b3R5cGUpVG9wLgoKKyBNZW51OgoKICAtIFdvcmRzOjog ICAgICAgICAgICAgICBNb3Zpbmcgb3ZlciBhbmQga2lsbGluZyB3b3Jkcy4KICAtIFNlbnRlbmNl czo6ICAgICAgICAgICBNb3Zpbmcgb3ZlciBhbmQga2lsbGluZyBzZW50ZW5jZXMuCiAgLSBQYXJh Z3JhcGhzOjogICAgICAgICAgTW92aW5nIG92ZXIgcGFyYWdyYXBocy4KICAtIFBhZ2VzOjogICAg ICAgICAgICAgICBNb3Zpbmcgb3ZlciBwYWdlcy4KICAtIFF1b3RhdGlvbiBNYXJrczo6ICAgICBJ bnNlcnRpbmcgcXVvdGF0aW9uIG1hcmtzLgogIC0gRmlsbGluZzo6ICAgICAgICAgICAgIEZpbGxp bmcgb3IganVzdGlmeWluZyB0ZXh0LgogIC0gQ2FzZTo6ICAgICAgICAgICAgICAgIENoYW5naW5n IHRoZSBjYXNlIG9mIHRleHQuCiAgLSBUZXh0IE1vZGU6OiAgICAgICAgICAgVGhlIG1ham9yIG1v ZGVzIGZvciBlZGl0aW5nIHRleHQgZmlsZXMuCiAgLSBPdXRsaW5lIE1vZGU6OiAgICAgICAgRWRp dGluZyBvdXRsaW5lcy4KICAtIE9yZyBNb2RlOjogICAgICAgICAgICBUaGUgRW1hY3Mgb3JnYW5p emVyLgogIC0gVGVYIE1vZGU6OiAgICAgICAgICAgIEVkaXRpbmcgVGVYIGFuZCBMYVRlWCBmaWxl cy4KICAtIEhUTUwgTW9kZTo6ICAgICAgICAgICBFZGl0aW5nIEhUTUwgYW5kIFNHTUwgZmlsZXMu CiAgLSBOcm9mZiBNb2RlOjogICAgICAgICAgRWRpdGluZyBpbnB1dCB0byB0aGUgbnJvZmYgZm9y bWF0dGVyLgogIC0gRW5yaWNoZWQgVGV4dDo6ICAgICAgIEVkaXRpbmcgdGV4dCBlbnJpY2hlZCB3 aXRoIGZvbnRzLCBjb2xvcnMsIGV0Yy4KICAtIFRleHQgQmFzZWQgVGFibGVzOjogICBDb21tYW5k cyBmb3IgZWRpdGluZyB0ZXh0LWJhc2VkIHRhYmxlcy4KICAtIFR3by1Db2x1bW46OiAgICAgICAg ICBTcGxpdHRpbmcgdGV4dCBjb2x1bW5zIGludG8gc2VwYXJhdGUgd2luZG93cy4KCgoqKiAyNS4x IFdvcmRzCgpFbWFjcyBkZWZpbmVzIHNldmVyYWwgY29tbWFuZHMgZm9yIG1vdmluZyBvdmVyIG9y IG9wZXJhdGluZyBvbiB3b3JkczoKCuKAmE0tZuKAmQogICAgIE1vdmUgZm9yd2FyZCBvdmVyIGEg d29yZCAo4oCYZm9yd2FyZC13b3Jk4oCZKS4K4oCYTS1i4oCZCiAgICAgTW92ZSBiYWNrd2FyZCBv dmVyIGEgd29yZCAo4oCYYmFja3dhcmQtd29yZOKAmSkuCuKAmE0tZOKAmQogICAgIEtpbGwgdXAg dG8gdGhlIGVuZCBvZiBhIHdvcmQgKOKAmGtpbGwtd29yZOKAmSkuCuKAmE0tPERFTD7igJkKICAg ICBLaWxsIGJhY2sgdG8gdGhlIGJlZ2lubmluZyBvZiBhIHdvcmQgKOKAmGJhY2t3YXJkLWtpbGwt d29yZOKAmSkuCuKAmE0tQOKAmQogICAgIFNldCBtYXJrIGF0IHRoZSBlbmQgb2YgdGhlIG5leHQg d29yZCAo4oCYbWFyay13b3Jk4oCZKS4K4oCYTS104oCZCiAgICAgVHJhbnNwb3NlIHR3byB3b3Jk cyBvciBkcmFnIGEgd29yZCBhY3Jvc3Mgb3RoZXJzCiAgICAgKOKAmHRyYW5zcG9zZS13b3Jkc+KA mSkuCgogICBOb3RpY2UgaG93IHRoZXNlIGtleXMgZm9ybSBhIHNlcmllcyB0aGF0IHBhcmFsbGVs cyB0aGUKY2hhcmFjdGVyLWJhc2VkIOKAmEMtZuKAmSwg4oCYQy1i4oCZLCDigJhDLWTigJksIDxE RUw+IGFuZCDigJhDLXTigJkuICDigJhNLUDigJkgaXMgY29nbmF0ZQp0byDigJhDLUDigJksIHdo aWNoIGlzIGFuIGFsaWFzIGZvciDigJhDLTxTUEM+4oCZLgoKICAgVGhlIGNvbW1hbmRzIOKAmE0t ZuKAmSAo4oCYZm9yd2FyZC13b3Jk4oCZKSBhbmQg4oCYTS1i4oCZICjigJhiYWNrd2FyZC13b3Jk 4oCZKSBtb3ZlCmZvcndhcmQgYW5kIGJhY2t3YXJkIG92ZXIgd29yZHMuICBUaGVzZSA8TWV0YT4t YmFzZWQga2V5IHNlcXVlbmNlcyBhcmUKYW5hbG9nb3VzIHRvIHRoZSBrZXkgc2VxdWVuY2VzIOKA mEMtZuKAmSBhbmQg4oCYQy1i4oCZLCB3aGljaCBtb3ZlIG92ZXIgc2luZ2xlCmNoYXJhY3RlcnMu ICBUaGUgYW5hbG9neSBleHRlbmRzIHRvIG51bWVyaWMgYXJndW1lbnRzLCB3aGljaCBzZXJ2ZSBh cwpyZXBlYXQgY291bnRzLiAg4oCYTS1m4oCZIHdpdGggYSBuZWdhdGl2ZSBhcmd1bWVudCBtb3Zl cyBiYWNrd2FyZCwgYW5kIOKAmE0tYuKAmQp3aXRoIGEgbmVnYXRpdmUgYXJndW1lbnQgbW92ZXMg Zm9yd2FyZC4gIEZvcndhcmQgbW90aW9uIHN0b3BzIHJpZ2h0CmFmdGVyIHRoZSBsYXN0IGxldHRl ciBvZiB0aGUgd29yZCwgd2hpbGUgYmFja3dhcmQgbW90aW9uIHN0b3BzIHJpZ2h0CmJlZm9yZSB0 aGUgZmlyc3QgbGV0dGVyLgoKICAg4oCYTS1k4oCZICjigJhraWxsLXdvcmTigJkpIGtpbGxzIHRo ZSB3b3JkIGFmdGVyIHBvaW50LiAgVG8gYmUgcHJlY2lzZSwgaXQKa2lsbHMgZXZlcnl0aGluZyBm cm9tIHBvaW50IHRvIHRoZSBwbGFjZSDigJhNLWbigJkgd291bGQgbW92ZSB0by4gIFRodXMsIGlm CnBvaW50IGlzIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLCDigJhNLWTigJkga2lsbHMganVzdCB0 aGUgcGFydCBhZnRlciBwb2ludC4KSWYgc29tZSBwdW5jdHVhdGlvbiBjb21lcyBiZXR3ZWVuIHBv aW50IGFuZCB0aGUgbmV4dCB3b3JkLCBpdCBpcyBraWxsZWQKYWxvbmcgd2l0aCB0aGUgd29yZC4g IChJZiB5b3Ugd2lzaCB0byBraWxsIG9ubHkgdGhlIG5leHQgd29yZCBidXQgbm90CnRoZSBwdW5j dHVhdGlvbiBiZWZvcmUgaXQsIHNpbXBseSBkbyDigJhNLWbigJkgdG8gZ2V0IHRoZSBlbmQsIGFu ZCBraWxsIHRoZQp3b3JkIGJhY2t3YXJkcyB3aXRoIOKAmE0tPERFTD7igJkuKSAg4oCYTS1k4oCZ IHRha2VzIGFyZ3VtZW50cyBqdXN0IGxpa2Ug4oCYTS1m4oCZLgoKICAg4oCYTS08REVMPuKAmSAo 4oCYYmFja3dhcmQta2lsbC13b3Jk4oCZKSBraWxscyB0aGUgd29yZCBiZWZvcmUgcG9pbnQuICBJ dApraWxscyBldmVyeXRoaW5nIGZyb20gcG9pbnQgYmFjayB0byB3aGVyZSDigJhNLWLigJkgd291 bGQgbW92ZSB0by4gIEZvcgppbnN0YW5jZSwgaWYgcG9pbnQgaXMgYWZ0ZXIgdGhlIHNwYWNlIGlu IOKAmEZPTywgQkFS4oCZLCBpdCBraWxscyDigJhGT08sIOKAmS4KSWYgeW91IHdpc2ggdG8ga2ls bCBqdXN0IOKAmEZPT+KAmSwgYW5kIG5vdCB0aGUgY29tbWEgYW5kIHRoZSBzcGFjZSwgdXNlCuKA mE0tYiBNLWTigJkgaW5zdGVhZCBvZiDigJhNLTxERUw+4oCZLgoKICAg4oCYTS104oCZICjigJh0 cmFuc3Bvc2Utd29yZHPigJkpIGV4Y2hhbmdlcyB0aGUgd29yZCBiZWZvcmUgb3IgY29udGFpbmlu Zwpwb2ludCB3aXRoIHRoZSBmb2xsb3dpbmcgd29yZC4gIFRoZSBkZWxpbWl0ZXIgY2hhcmFjdGVy cyBiZXR3ZWVuIHRoZQp3b3JkcyBkbyBub3QgbW92ZS4gIEZvciBleGFtcGxlLCDigJhGT08sIEJB UuKAmSB0cmFuc3Bvc2VzIGludG8g4oCYQkFSLCBGT0/igJkKcmF0aGVyIHRoYW4g4oCYQkFSIEZP TyzigJkuICAqTm90ZSBUcmFuc3Bvc2U6OiwgZm9yIG1vcmUgb24gdHJhbnNwb3NpdGlvbi4KCiAg IFRvIG9wZXJhdGUgb24gd29yZHMgd2l0aCBhbiBvcGVyYXRpb24gd2hpY2ggYWN0cyBvbiB0aGUg cmVnaW9uLCB1c2UKdGhlIGNvbW1hbmQg4oCYTS1A4oCZICjigJhtYXJrLXdvcmTigJkpLiAgVGhp cyBjb21tYW5kIHNldHMgdGhlIG1hcmsgd2hlcmUg4oCYTS1m4oCZCndvdWxkIG1vdmUgdG8uICAq Tm90ZSBNYXJraW5nIE9iamVjdHM6OiwgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcwpj b21tYW5kLgoKICAgVGhlIHdvcmQgY29tbWFuZHPigJkgdW5kZXJzdGFuZGluZyBvZiB3b3JkIGJv dW5kYXJpZXMgaXMgY29udHJvbGxlZCBieQp0aGUgc3ludGF4IHRhYmxlLiAgQW55IGNoYXJhY3Rl ciBjYW4sIGZvciBleGFtcGxlLCBiZSBkZWNsYXJlZCB0byBiZSBhCndvcmQgZGVsaW1pdGVyLiAg Kk5vdGUgU3ludGF4IFRhYmxlczogKGVsaXNwKVN5bnRheCBUYWJsZXMuCgogICBJbiBhZGRpdGlv biwgc2VlICpub3RlIFBvc2l0aW9uIEluZm86OiBmb3IgdGhlIOKAmE0tPeKAmQoo4oCYY291bnQt d29yZHMtcmVnaW9u4oCZKSBhbmQg4oCYTS14IGNvdW50LXdvcmRz4oCZIGNvbW1hbmRzLCB3aGlj aCBjb3VudCBhbmQKcmVwb3J0IHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gdGhlIHJlZ2lvbiBvciBi dWZmZXIuCgoKKiogMjUuMiBTZW50ZW5jZXMKClRoZSBFbWFjcyBjb21tYW5kcyBmb3IgbWFuaXB1 bGF0aW5nIHNlbnRlbmNlcyBhbmQgcGFyYWdyYXBocyBhcmUgbW9zdGx5Cm9uIE1ldGEga2V5cywg bGlrZSB0aGUgd29yZC1oYW5kbGluZyBjb21tYW5kcy4KCuKAmE0tYeKAmQogICAgIE1vdmUgYmFj ayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZW50ZW5jZSAo4oCYYmFja3dhcmQtc2VudGVuY2Xi gJkpLgrigJhNLWXigJkKICAgICBNb3ZlIGZvcndhcmQgdG8gdGhlIGVuZCBvZiB0aGUgc2VudGVu Y2UgKOKAmGZvcndhcmQtc2VudGVuY2XigJkpLgrigJhNLWvigJkKICAgICBLaWxsIGZvcndhcmQg dG8gdGhlIGVuZCBvZiB0aGUgc2VudGVuY2UgKOKAmGtpbGwtc2VudGVuY2XigJkpLgrigJhDLXgg PERFTD7igJkKICAgICBLaWxsIGJhY2sgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc2VudGVuY2UK ICAgICAo4oCYYmFja3dhcmQta2lsbC1zZW50ZW5jZeKAmSkuCgogICBUaGUgY29tbWFuZHMg4oCY TS1h4oCZICjigJhiYWNrd2FyZC1zZW50ZW5jZeKAmSkgYW5kIOKAmE0tZeKAmQoo4oCYZm9yd2Fy ZC1zZW50ZW5jZeKAmSkgbW92ZSB0byB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGN1cnJl bnQKc2VudGVuY2UsIHJlc3BlY3RpdmVseS4gIFRoZWlyIGJpbmRpbmdzIHdlcmUgY2hvc2VuIHRv IHJlc2VtYmxlIOKAmEMtYeKAmQphbmQg4oCYQy1l4oCZLCB3aGljaCBtb3ZlIHRvIHRoZSBiZWdp bm5pbmcgYW5kIGVuZCBvZiBhIGxpbmUuICBVbmxpa2UgdGhlbSwK4oCYTS1h4oCZIGFuZCDigJhN LWXigJkgbW92ZSBvdmVyIHN1Y2Nlc3NpdmUgc2VudGVuY2VzIGlmIHJlcGVhdGVkLgoKICAgTW92 aW5nIGJhY2t3YXJkIG92ZXIgYSBzZW50ZW5jZSBwbGFjZXMgcG9pbnQganVzdCBiZWZvcmUgdGhl IGZpcnN0CmNoYXJhY3RlciBvZiB0aGUgc2VudGVuY2U7IG1vdmluZyBmb3J3YXJkIHBsYWNlcyBw b2ludCByaWdodCBhZnRlciB0aGUKcHVuY3R1YXRpb24gdGhhdCBlbmRzIHRoZSBzZW50ZW5jZS4g IE5laXRoZXIgb25lIG1vdmVzIG92ZXIgdGhlCndoaXRlc3BhY2UgYXQgdGhlIHNlbnRlbmNlIGJv dW5kYXJ5LgoKICAgSnVzdCBhcyDigJhDLWHigJkgYW5kIOKAmEMtZeKAmSBoYXZlIGEga2lsbCBj b21tYW5kLCDigJhDLWvigJksIHRvIGdvIHdpdGggdGhlbSwK4oCYTS1h4oCZIGFuZCDigJhNLWXi gJkgaGF2ZSBhIGNvcnJlc3BvbmRpbmcga2lsbCBjb21tYW5kOiDigJhNLWvigJkKKOKAmGtpbGwt c2VudGVuY2XigJkpIGtpbGxzIGZyb20gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgc2VudGVuY2Uu ICBXaXRoIGEKcG9zaXRpdmUgbnVtZXJpYyBhcmd1bWVudCBOLCBpdCBraWxscyB0aGUgbmV4dCBO IHNlbnRlbmNlczsgd2l0aCBhCm5lZ2F0aXZlIGFyZ3VtZW50IOKIkk4sIGl0IGtpbGxzIGJhY2sg dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgTnRoCnByZWNlZGluZyBzZW50ZW5jZS4KCiAgIFRoZSDi gJhDLXggPERFTD7igJkgKOKAmGJhY2t3YXJkLWtpbGwtc2VudGVuY2XigJkpIGtpbGxzIGJhY2sg dG8gdGhlCmJlZ2lubmluZyBvZiBhIHNlbnRlbmNlLgoKICAgVGhlIHNlbnRlbmNlIGNvbW1hbmRz IGFzc3VtZSB0aGF0IHlvdSBmb2xsb3cgdGhlIEFtZXJpY2FuIHR5cGlzdOKAmXMKY29udmVudGlv biBvZiBwdXR0aW5nIHR3byBzcGFjZXMgYXQgdGhlIGVuZCBvZiBhIHNlbnRlbmNlLiAgVGhhdCBp cywgYQpzZW50ZW5jZSBlbmRzIHdoZXJldmVyIHRoZXJlIGlzIGEg4oCYLuKAmSwg4oCYP+KAmSBv ciDigJgh4oCZIGZvbGxvd2VkIGJ5IHRoZSBlbmQgb2YKYSBsaW5lIG9yIHR3byBzcGFjZXMsIHdp dGggYW55IG51bWJlciBvZiDigJgp4oCZLCDigJhd4oCZLCDigJgn4oCZLCBvciDigJgi4oCZCmNo YXJhY3RlcnMgYWxsb3dlZCBpbiBiZXR3ZWVuLiAgQSBzZW50ZW5jZSBhbHNvIGJlZ2lucyBvciBl bmRzIHdoZXJldmVyCmEgcGFyYWdyYXBoIGJlZ2lucyBvciBlbmRzLiAgSXQgaXMgdXNlZnVsIHRv IGZvbGxvdyB0aGlzIGNvbnZlbnRpb24sCmJlY2F1c2UgaXQgYWxsb3dzIHRoZSBFbWFjcyBzZW50 ZW5jZSBjb21tYW5kcyB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuCnBlcmlvZHMgdGhhdCBlbmQgYSBz ZW50ZW5jZSBhbmQgcGVyaW9kcyB0aGF0IGluZGljYXRlIGFiYnJldmlhdGlvbnMuCgogICBJZiB5 b3Ugd2FudCB0byB1c2UganVzdCBvbmUgc3BhY2UgYmV0d2VlbiBzZW50ZW5jZXMsIHlvdSBjYW4g c2V0IHRoZQp2YXJpYWJsZSDigJhzZW50ZW5jZS1lbmQtZG91YmxlLXNwYWNl4oCZIHRvIOKAmG5p bOKAmSB0byBtYWtlIHRoZSBzZW50ZW5jZQpjb21tYW5kcyBzdG9wIGZvciBzaW5nbGUgc3BhY2Vz LiAgSG93ZXZlciwgdGhpcyBoYXMgYSBkcmF3YmFjazogdGhlcmUgaXMKbm8gd2F5IHRvIGRpc3Rp bmd1aXNoIGJldHdlZW4gcGVyaW9kcyB0aGF0IGVuZCBzZW50ZW5jZXMgYW5kIHRob3NlIHRoYXQK aW5kaWNhdGUgYWJicmV2aWF0aW9ucy4gIEZvciBjb252ZW5pZW50IGFuZCByZWxpYWJsZSBlZGl0 aW5nLCB3ZQp0aGVyZWZvcmUgcmVjb21tZW5kIHlvdSBmb2xsb3cgdGhlIHR3by1zcGFjZSBjb252 ZW50aW9uLiAgVGhlIHZhcmlhYmxlCuKAmHNlbnRlbmNlLWVuZC1kb3VibGUtc3BhY2XigJkgYWxz byBhZmZlY3RzIGZpbGxpbmcgKCpub3RlIEZpbGwKQ29tbWFuZHM6OikuCgogICBUaGUgdmFyaWFi bGUg4oCYc2VudGVuY2UtZW5k4oCZIGNvbnRyb2xzIGhvdyB0byByZWNvZ25pemUgdGhlIGVuZCBv ZiBhCnNlbnRlbmNlLiAgSWYgbm9uLeKAmG5pbOKAmSwgaXRzIHZhbHVlIHNob3VsZCBiZSBhIHJl Z3VsYXIgZXhwcmVzc2lvbiwgd2hpY2gKaXMgdXNlZCB0byBtYXRjaCB0aGUgbGFzdCBmZXcgY2hh cmFjdGVycyBvZiBhIHNlbnRlbmNlLCB0b2dldGhlciB3aXRoCnRoZSB3aGl0ZXNwYWNlIGZvbGxv d2luZyB0aGUgc2VudGVuY2UgKCpub3RlIFJlZ2V4cHM6OikuICBJZiB0aGUgdmFsdWUKaXMg4oCY bmls4oCZLCB0aGUgZGVmYXVsdCwgdGhlbiBFbWFjcyBjb21wdXRlcyBzZW50ZW5jZSBlbmRzIGFj Y29yZGluZyB0bwp2YXJpb3VzIGNyaXRlcmlhIHN1Y2ggYXMgdGhlIHZhbHVlIG9mIOKAmHNlbnRl bmNlLWVuZC1kb3VibGUtc3BhY2XigJkuCgogICBTb21lIGxhbmd1YWdlcywgc3VjaCBhcyBUaGFp LCBkbyBub3QgdXNlIHBlcmlvZHMgdG8gaW5kaWNhdGUgdGhlIGVuZApvZiBhIHNlbnRlbmNlLiAg U2V0IHRoZSB2YXJpYWJsZSDigJhzZW50ZW5jZS1lbmQtd2l0aG91dC1wZXJpb2TigJkgdG8g4oCY dOKAmSBpbgpzdWNoIGNhc2VzLgoKCioqIDI1LjMgUGFyYWdyYXBocwoKVGhlIEVtYWNzIGNvbW1h bmRzIGZvciBtYW5pcHVsYXRpbmcgcGFyYWdyYXBocyBhcmUgYWxzbyBvbiBNZXRhIGtleXMuCgri gJhNLXvigJkKICAgICBNb3ZlIGJhY2sgdG8gcHJldmlvdXMgcGFyYWdyYXBoIGJlZ2lubmluZyAo 4oCYYmFja3dhcmQtcGFyYWdyYXBo4oCZKS4K4oCYTS194oCZCiAgICAgTW92ZSBmb3J3YXJkIHRv IG5leHQgcGFyYWdyYXBoIGVuZCAo4oCYZm9yd2FyZC1wYXJhZ3JhcGjigJkpLgrigJhNLWjigJkK ICAgICBQdXQgcG9pbnQgYW5kIG1hcmsgYXJvdW5kIHRoaXMgb3IgbmV4dCBwYXJhZ3JhcGgKICAg ICAo4oCYbWFyay1wYXJhZ3JhcGjigJkpLgoKICAg4oCYTS174oCZICjigJhiYWNrd2FyZC1wYXJh Z3JhcGjigJkpIG1vdmVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgb3IKcHJldmlv dXMgcGFyYWdyYXBoLCBkZXBlbmRpbmcgb24gd2hlcmUgcG9pbnQgaXMgd2hlbiB0aGUgY29tbWFu ZCBpcwppbnZva2VkIChzZWUgYmVsb3cgZm9yIHRoZSBkZWZpbml0aW9uIG9mIGEgcGFyYWdyYXBo KS4gIOKAmE0tfeKAmQoo4oCYZm9yd2FyZC1wYXJhZ3JhcGjigJkpIHNpbWlsYXJseSBtb3ZlcyB0 byB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IG9yIG5leHQKcGFyYWdyYXBoLiAgSWYgdGhlcmUgaXMg YSBibGFuayBsaW5lIGJlZm9yZSB0aGUgcGFyYWdyYXBoLCDigJhNLXvigJkgbW92ZXMKdG8gdGhl IGJsYW5rIGxpbmUuCgogICBXaGVuIHlvdSB3aXNoIHRvIG9wZXJhdGUgb24gYSBwYXJhZ3JhcGgs IHR5cGUg4oCYTS1o4oCZCijigJhtYXJrLXBhcmFncmFwaOKAmSkgdG8gc2V0IHRoZSByZWdpb24g YXJvdW5kIGl0LiAgRm9yIGV4YW1wbGUsIOKAmE0taCBDLXfigJkKa2lsbHMgdGhlIHBhcmFncmFw aCBhcm91bmQgb3IgYWZ0ZXIgcG9pbnQuICDigJhNLWjigJkgcHV0cyBwb2ludCBhdCB0aGUKYmVn aW5uaW5nIGFuZCBtYXJrIGF0IHRoZSBlbmQgb2YgdGhlIHBhcmFncmFwaCBwb2ludCB3YXMgaW4u ICBJZiBwb2ludAppcyBiZXR3ZWVuIHBhcmFncmFwaHMgKGluIGEgcnVuIG9mIGJsYW5rIGxpbmVz LCBvciBhdCBhIGJvdW5kYXJ5KSwg4oCYTS1o4oCZCnNldHMgdGhlIHJlZ2lvbiBhcm91bmQgdGhl IHBhcmFncmFwaCBmb2xsb3dpbmcgcG9pbnQuICBJZiB0aGVyZSBhcmUKYmxhbmsgbGluZXMgcHJl Y2VkaW5nIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBwYXJhZ3JhcGgsIG9uZSBvZiB0aGVzZQpibGFu ayBsaW5lcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVnaW9uLiAgSWYgdGhlIHJlZ2lvbiBpcyBhbHJl YWR5IGFjdGl2ZSwKdGhlIGNvbW1hbmQgc2V0cyB0aGUgbWFyayB3aXRob3V0IGNoYW5naW5nIHBv aW50LCBhbmQgZWFjaCBzdWJzZXF1ZW50CuKAmE0taOKAmSBmdXJ0aGVyIGFkdmFuY2VzIHRoZSBt YXJrIGJ5IG9uZSBwYXJhZ3JhcGguCgogICBUaGUgZGVmaW5pdGlvbiBvZiBhIHBhcmFncmFwaCBk ZXBlbmRzIG9uIHRoZSBtYWpvciBtb2RlLiAgSW4KRnVuZGFtZW50YWwgbW9kZSwgYXMgd2VsbCBh cyBUZXh0IG1vZGUgYW5kIHJlbGF0ZWQgbW9kZXMsIGEgcGFyYWdyYXBoIGlzCnNlcGFyYXRlZCBm cm9tIG5laWdoYm9yaW5nIHBhcmFncmFwaHMgYnkgb25lIG9yIG1vcmUgImJsYW5rIGxpbmVzIuKA lGxpbmVzCnRoYXQgYXJlIGVpdGhlciBlbXB0eSwgb3IgY29uc2lzdCBzb2xlbHkgb2Ygc3BhY2Us IHRhYiBhbmQvb3IgZm9ybWZlZWQKY2hhcmFjdGVycy4gIEluIHByb2dyYW1taW5nIGxhbmd1YWdl IG1vZGVzLCBwYXJhZ3JhcGhzIGFyZSB1c3VhbGx5CmRlZmluZWQgaW4gYSBzaW1pbGFyIHdheSwg c28gdGhhdCB5b3UgY2FuIHVzZSB0aGUgcGFyYWdyYXBoIGNvbW1hbmRzCmV2ZW4gdGhvdWdoIHRo ZXJlIGFyZSBubyBwYXJhZ3JhcGhzIGFzIHN1Y2ggaW4gYSBwcm9ncmFtLgoKICAgTm90ZSB0aGF0 IGFuIGluZGVudGVkIGxpbmUgaXMgX25vdF8gaXRzZWxmIGEgcGFyYWdyYXBoIGJyZWFrIGluIFRl eHQKbW9kZS4gIElmIHlvdSB3YW50IGluZGVudGVkIGxpbmVzIHRvIHNlcGFyYXRlIHBhcmFncmFw aHMsIHVzZQpQYXJhZ3JhcGgtSW5kZW50IFRleHQgbW9kZSBpbnN0ZWFkLiAgKk5vdGUgVGV4dCBN b2RlOjouCgogICBJZiB5b3Ugc2V0IGEgZmlsbCBwcmVmaXgsIHRoZW4gcGFyYWdyYXBocyBhcmUg ZGVsaW1pdGVkIGJ5IGFsbCBsaW5lcwp3aGljaCBkb27igJl0IHN0YXJ0IHdpdGggdGhlIGZpbGwg cHJlZml4LiAgKk5vdGUgRmlsbGluZzo6LgoKICAgVGhlIHByZWNpc2UgZGVmaW5pdGlvbiBvZiBh IHBhcmFncmFwaCBib3VuZGFyeSBpcyBjb250cm9sbGVkIGJ5IHRoZQp2YXJpYWJsZXMg4oCYcGFy YWdyYXBoLXNlcGFyYXRl4oCZIGFuZCDigJhwYXJhZ3JhcGgtc3RhcnTigJkuICBUaGUgdmFsdWUg b2YK4oCYcGFyYWdyYXBoLXN0YXJ04oCZIGlzIGEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgc2hv dWxkIG1hdGNoIGxpbmVzIHRoYXQKZWl0aGVyIHN0YXJ0IG9yIHNlcGFyYXRlIHBhcmFncmFwaHMg KCpub3RlIFJlZ2V4cHM6OikuICBUaGUgdmFsdWUgb2YK4oCYcGFyYWdyYXBoLXNlcGFyYXRl4oCZ IGlzIGFub3RoZXIgcmVndWxhciBleHByZXNzaW9uIHRoYXQgc2hvdWxkIG1hdGNoCmxpbmVzIHRo YXQgc2VwYXJhdGUgcGFyYWdyYXBocyB3aXRob3V0IGJlaW5nIHBhcnQgb2YgYW55IHBhcmFncmFw aCAoZm9yCmV4YW1wbGUsIGJsYW5rIGxpbmVzKS4gIExpbmVzIHRoYXQgc3RhcnQgYSBuZXcgcGFy YWdyYXBoIGFuZCBhcmUKY29udGFpbmVkIGluIGl0IG11c3QgbWF0Y2ggb25seSDigJhwYXJhZ3Jh cGgtc3RhcnTigJksIG5vdArigJhwYXJhZ3JhcGgtc2VwYXJhdGXigJkuICBGb3IgZXhhbXBsZSwg aW4gRnVuZGFtZW50YWwgbW9kZSwK4oCYcGFyYWdyYXBoLXN0YXJ04oCZIGlzIOKAmCJcZlxcfFsg XHRdKiQi4oCZLCBhbmQg4oCYcGFyYWdyYXBoLXNlcGFyYXRl4oCZIGlzCuKAmCJbIFx0XGZdKiQi 4oCZLgoKICAgTm90ZSB0aGF0IOKAmHBhcmFncmFwaC1zdGFydOKAmSBhbmQg4oCYcGFyYWdyYXBo LXNlcGFyYXRl4oCZIGFyZSBtYXRjaGVkCmFnYWluc3QgdGhlIHRleHQgYXQgdGhlIGxlZnQgbWFy Z2luLCB3aGljaCBpcyBub3QgbmVjZXNzYXJpbHkgdGhlCmJlZ2lubmluZyBvZiB0aGUgbGluZSwg c28gdGhlc2UgcmVnZXhwcyBzaG91bGQgbm90IHVzZSDigJhe4oCZIGFzIGFuIGFuY2hvciwKdG8g ZW5zdXJlIHRoYXQgdGhlIHBhcmFncmFwaCBmdW5jdGlvbnMgd2lsbCB3b3JrIGVxdWFsbHkgd2l0 aGluIGEgcmVnaW9uCm9mIHRleHQgaW5kZW50ZWQgYnkgYSBtYXJnaW4gc2V0dGluZy4KCgoqKiAy NS40IFBhZ2VzCgpXaXRoaW4gc29tZSB0ZXh0IGZpbGVzLCB0ZXh0IGlzIGRpdmlkZWQgaW50byAi cGFnZXMiIGRlbGltaXRlZCBieSB0aGUKImZvcm1mZWVkIGNoYXJhY3RlciIgKEFTQ0lJIGNvZGUg MTIsIGFsc28gZGVub3RlZCBhcyDigJhjb250cm9sLUzigJkpLCB3aGljaAppcyBkaXNwbGF5ZWQg aW4gRW1hY3MgYXMgdGhlIGVzY2FwZSBzZXF1ZW5jZSDigJheTOKAmSAoKm5vdGUgVGV4dApEaXNw bGF5OjopLiAgVHJhZGl0aW9uYWxseSwgd2hlbiBzdWNoIHRleHQgZmlsZXMgYXJlIHByaW50ZWQg dG8KaGFyZGNvcHksIGVhY2ggZm9ybWZlZWQgY2hhcmFjdGVyIGZvcmNlcyBhIHBhZ2UgYnJlYWsu ICBNb3N0IEVtYWNzCmNvbW1hbmRzIHRyZWF0IGl0IGp1c3QgbGlrZSBhbnkgb3RoZXIgY2hhcmFj dGVyLCBzbyB5b3UgY2FuIGluc2VydCBpdAp3aXRoIOKAmEMtcSBDLWzigJksIGRlbGV0ZSBpdCB3 aXRoIDxERUw+LCBldGMuICBJbiBhZGRpdGlvbiwgRW1hY3MgcHJvdmlkZXMKY29tbWFuZHMgdG8g bW92ZSBvdmVyIHBhZ2VzIGFuZCBvcGVyYXRlIG9uIHRoZW0uCgrigJhNLXggd2hhdC1wYWdl4oCZ CiAgICAgRGlzcGxheSB0aGUgcGFnZSBudW1iZXIgb2YgcG9pbnQsIGFuZCB0aGUgbGluZSBudW1i ZXIgd2l0aGluIHRoYXQKICAgICBwYWdlLgrigJhDLXggW+KAmQogICAgIE1vdmUgcG9pbnQgdG8g cHJldmlvdXMgcGFnZSBib3VuZGFyeSAo4oCYYmFja3dhcmQtcGFnZeKAmSkuCuKAmEMteCBd4oCZ CiAgICAgTW92ZSBwb2ludCB0byBuZXh0IHBhZ2UgYm91bmRhcnkgKOKAmGZvcndhcmQtcGFnZeKA mSkuCuKAmEMteCBDLXDigJkKICAgICBQdXQgcG9pbnQgYW5kIG1hcmsgYXJvdW5kIHRoaXMgcGFn ZSAob3IgYW5vdGhlciBwYWdlKQogICAgICjigJhtYXJrLXBhZ2XigJkpLgrigJhDLXggbOKAmQog ICAgIENvdW50IHRoZSBsaW5lcyBpbiB0aGlzIHBhZ2UgKOKAmGNvdW50LWxpbmVzLXBhZ2XigJkp LgoKICAg4oCYTS14IHdoYXQtcGFnZeKAmSBjb3VudHMgcGFnZXMgZnJvbSB0aGUgYmVnaW5uaW5n IG9mIHRoZSBmaWxlLCBhbmQKY291bnRzIGxpbmVzIHdpdGhpbiB0aGUgcGFnZSwgc2hvd2luZyBi b3RoIG51bWJlcnMgaW4gdGhlIGVjaG8gYXJlYS4KCiAgIFRoZSDigJhDLXggW+KAmSAo4oCYYmFj a3dhcmQtcGFnZeKAmSkgY29tbWFuZCBtb3ZlcyBwb2ludCB0byBpbW1lZGlhdGVseQphZnRlciB0 aGUgcHJldmlvdXMgcGFnZSBkZWxpbWl0ZXIuICBJZiBwb2ludCBpcyBhbHJlYWR5IHJpZ2h0IGFm dGVyIGEKcGFnZSBkZWxpbWl0ZXIsIGl0IHNraXBzIHRoYXQgb25lIGFuZCBzdG9wcyBhdCB0aGUg cHJldmlvdXMgb25lLiAgQQpudW1lcmljIGFyZ3VtZW50IHNlcnZlcyBhcyBhIHJlcGVhdCBjb3Vu dC4gIFRoZSDigJhDLXggXeKAmSAo4oCYZm9yd2FyZC1wYWdl4oCZKQpjb21tYW5kIG1vdmVzIGZv cndhcmQgcGFzdCB0aGUgbmV4dCBwYWdlIGRlbGltaXRlci4KCiAgIFRoZSDigJhDLXggQy1w4oCZ IGNvbW1hbmQgKOKAmG1hcmstcGFnZeKAmSkgcHV0cyBwb2ludCBhdCB0aGUgYmVnaW5uaW5nIG9m CnRoZSBjdXJyZW50IHBhZ2UgKGFmdGVyIHRoYXQgcGFnZSBkZWxpbWl0ZXIgYXQgdGhlIGZyb250 KSwgYW5kIHRoZSBtYXJrCmF0IHRoZSBlbmQgb2YgdGhlIHBhZ2UgKGFmdGVyIHRoZSBwYWdlIGRl bGltaXRlciBhdCB0aGUgZW5kKS4KCiAgIOKAmEMteCBDLXAgQy134oCZIGlzIGEgaGFuZHkgd2F5 IHRvIGtpbGwgYSBwYWdlIHRvIG1vdmUgaXQgZWxzZXdoZXJlLiAgSWYKeW91IG1vdmUgdG8gYW5v dGhlciBwYWdlIGRlbGltaXRlciB3aXRoIOKAmEMteCBb4oCZIGFuZCDigJhDLXggXeKAmSwgdGhl biB5YW5rCnRoZSBraWxsZWQgcGFnZSwgYWxsIHRoZSBwYWdlcyB3aWxsIGJlIHByb3Blcmx5IGRl bGltaXRlZCBvbmNlIGFnYWluLgpNYWtpbmcgc3VyZSB0aGlzIHdvcmtzIGFzIGV4cGVjdGVkIGlz IHRoZSByZWFzb24g4oCYQy14IEMtcOKAmSBpbmNsdWRlcyBvbmx5CnRoZSBmb2xsb3dpbmcgcGFn ZSBkZWxpbWl0ZXIgaW4gdGhlIHJlZ2lvbi4KCiAgIEEgbnVtZXJpYyBhcmd1bWVudCB0byDigJhD LXggQy1w4oCZIHNwZWNpZmllcyB3aGljaCBwYWdlIHRvIGdvIHRvLApyZWxhdGl2ZSB0byB0aGUg Y3VycmVudCBvbmUuICBaZXJvIG1lYW5zIHRoZSBjdXJyZW50IHBhZ2UsIG9uZSBtZWFucyB0aGUK bmV4dCBwYWdlLCBhbmQg4oiSMSBtZWFucyB0aGUgcHJldmlvdXMgb25lLgoKICAgVGhlIOKAmEMt eCBs4oCZIGNvbW1hbmQgKOKAmGNvdW50LWxpbmVzLXBhZ2XigJkpIGlzIGdvb2QgZm9yIGRlY2lk aW5nIHdoZXJlCnRvIGJyZWFrIGEgcGFnZSBpbiB0d28uICBJdCBkaXNwbGF5cyBpbiB0aGUgZWNo byBhcmVhIHRoZSB0b3RhbCBudW1iZXIKb2YgbGluZXMgaW4gdGhlIGN1cnJlbnQgcGFnZSwgYW5k IHRoZW4gZGl2aWRlcyBpdCB1cCBpbnRvIHRob3NlCnByZWNlZGluZyB0aGUgY3VycmVudCBsaW5l IGFuZCB0aG9zZSBmb2xsb3dpbmcsIGFzIGluCgogICAgIFBhZ2UgaGFzIDk2ICg3MisyNSkgbGlu ZXMKCk5vdGljZSB0aGF0IHRoZSBzdW0gaXMgb2ZmIGJ5IG9uZTsgdGhpcyBpcyBjb3JyZWN0IGlm IHBvaW50IGlzIG5vdCBhdAp0aGUgYmVnaW5uaW5nIG9mIGEgbGluZS4KCiAgIFRoZSB2YXJpYWJs ZSDigJhwYWdlLWRlbGltaXRlcuKAmSBjb250cm9scyB3aGVyZSBwYWdlcyBiZWdpbi4gIEl0cyB2 YWx1ZQppcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG1hdGNoZXMgdGhlIGJlZ2lubmluZyBv ZiBhIGxpbmUgdGhhdApzZXBhcmF0ZXMgcGFnZXMgKCpub3RlIFJlZ2V4cHM6OikuICBUaGUgbm9y bWFsIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgaXMK4oCYIl5cZiLigJksIHdoaWNoIG1hdGNoZXMg YSBmb3JtZmVlZCBjaGFyYWN0ZXIgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUuCgoKKiogMjUu NSBRdW90YXRpb24gTWFya3MKCk9uZSBjb21tb24gd2F5IHRvIHF1b3RlIGlzIHRoZSB0eXBld3Jp dGVyIGNvbnZlbnRpb24sIHdoaWNoIHF1b3RlcyB1c2luZwpzdHJhaWdodCBhcG9zdHJvcGhlcyAn bGlrZSB0aGlzJyBvciBkb3VibGUtcXVvdGVzICJsaWtlIHRoaXMiLiAgQW5vdGhlcgpjb21tb24g d2F5IGlzIHRoZSBjdXJ2ZWQgcXVvdGUgY29udmVudGlvbiwgd2hpY2ggdXNlcyBsZWZ0IGFuZCBy aWdodApzaW5nbGUgb3IgZG91YmxlIHF1b3RhdGlvbiBtYXJrcyDigJhsaWtlIHRoaXPigJkgb3Ig 4oCcbGlrZSB0aGlz4oCdKDEpLiAgSW4gdGV4dApmaWxlcywgdHlwZXdyaXRlciBxdW90ZXMgYXJl IHNpbXBsZSBhbmQgcG9ydGFibGU7IGN1cnZlZCBxdW90ZXMgYXJlIGxlc3MKYW1iaWd1b3VzIGFu ZCB0eXBpY2FsbHkgbG9vayBuaWNlci4KCiAgIEVsZWN0cmljIFF1b3RlIG1vZGUgbWFrZXMgaXQg ZWFzaWVyIHRvIHR5cGUgY3VydmVkIHF1b3Rlcy4gIEFzIHlvdQp0eXBlIGNoYXJhY3RlcnMgaXQg b3B0aW9uYWxseSBjb252ZXJ0cyBgIHRvIOKAmCwgJyB0byDigJksIGBgIHRvIOKAnCwgYW5kICcn CnRvIOKAnS4gIEl04oCZcyBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgcXVvdGVzIGxp c3RlZCBhYm92ZSwgYnkKY3VzdG9taXppbmcgdGhlIHZhcmlhYmxlIOKAmGVsZWN0cmljLXF1b3Rl LWNoYXJz4oCZLCBhIGxpc3Qgb2YgZm91cgpjaGFyYWN0ZXJzLCB3aGVyZSB0aGUgaXRlbXMgY29y cmVzcG9uZCB0byB0aGUgbGVmdCBzaW5nbGUgcXVvdGUsIHRoZQpyaWdodCBzaW5nbGUgcXVvdGUs IHRoZSBsZWZ0IGRvdWJsZSBxdW90ZSBhbmQgdGhlIHJpZ2h0IGRvdWJsZSBxdW90ZSwKcmVzcGVj dGl2ZWx5LCB3aG9zZSBkZWZhdWx0IHZhbHVlIGlzIOKAmCcoP+KAmCA/4oCZID/igJwgP+KAnSni gJkuCgogICBZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgRWxlY3RyaWMgUXVvdGUg bW9kZSBieSBjdXN0b21pemluZwp2YXJpYWJsZXMgdGhhdCBjb250cm9sIHdoZXJlIGl0IGlzIGFj dGl2ZS4gIEl0IGlzIGFjdGl2ZSBpbiB0ZXh0CnBhcmFncmFwaHMgaWYg4oCYZWxlY3RyaWMtcXVv dGUtcGFyYWdyYXBo4oCZIGlzIG5vbi3igJhuaWzigJksIGluCnByb2dyYW1taW5nLWxhbmd1YWdl IGNvbW1lbnRzIGlmIOKAmGVsZWN0cmljLXF1b3RlLWNvbW1lbnTigJkgaXMgbm9uLeKAmG5pbOKA mSwKYW5kIGluIHByb2dyYW1taW5nLWxhbmd1YWdlIHN0cmluZ3MgaWYg4oCYZWxlY3RyaWMtcXVv dGUtc3RyaW5n4oCZIGlzCm5vbi3igJhuaWzigJkuICBUaGUgZGVmYXVsdCBpcyDigJhuaWzigJkg Zm9yIOKAmGVsZWN0cmljLXF1b3RlLXN0cmluZ+KAmSBhbmQg4oCYdOKAmSBmb3IKdGhlIG90aGVy IHZhcmlhYmxlcy4KCiAgIEVsZWN0cmljIFF1b3RlIG1vZGUgaXMgZGlzYWJsZWQgYnkgZGVmYXVs dC4gIFRvIHRvZ2dsZSBpdCBpbiBhIHNpbmdsZQpidWZmZXIsIHVzZSDigJhNLXggZWxlY3RyaWMt cXVvdGUtbG9jYWwtbW9kZeKAmS4gIFRvIHRvZ2dsZSBpdCBnbG9iYWxseSwKdHlwZSDigJhNLXgg ZWxlY3RyaWMtcXVvdGUtbW9kZeKAmS4gIFRvIHN1cHByZXNzIGl0IGZvciBhIHNpbmdsZSB1c2Us IHR5cGUK4oCYQy1xIGDigJkgb3Ig4oCYQy1xICfigJkgaW5zdGVhZCBvZiDigJhg4oCZIG9yIOKA mCfigJkuICBUbyBpbnNlcnQgYSBjdXJ2ZWQgcXVvdGUgZXZlbgp3aGVuIEVsZWN0cmljIFF1b3Rl IGlzIGRpc2FibGVkIG9yIGluYWN0aXZlLCB5b3UgY2FuIHR5cGUg4oCYQy14IDggW+KAmSBmb3IK 4oCYLCDigJhDLXggOCBd4oCZIGZvciDigJksIOKAmEMteCA4IHvigJkgZm9yIOKAnCwgYW5kIOKA mEMteCA4IH3igJkgZm9yIOKAnS4gICpOb3RlCkluc2VydGluZyBUZXh0OjouICBOb3RlIHRoYXQg dGhlIHZhbHVlIG9mIOKAmGVsZWN0cmljLXF1b3RlLWNoYXJz4oCZIGRvZXMKbm90IGFmZmVjdCB0 aGVzZSBrZXliaW5kaW5ncywgdGhleSBhcmUgbm90IGtleWJpbmRpbmdzIG9mCuKAmGVsZWN0cmlj LXF1b3RlLW1vZGXigJkgYnV0IGJvdW5kIGluIOKAmGdsb2JhbC1tYXDigJkuCgogICAtLS0tLS0t LS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgVGhlIGN1cnZlZCBzaW5nbGUgcXVvdGUg Y2hhcmFjdGVycyBhcmUgVSsyMDE4IExFRlQgU0lOR0xFClFVT1RBVElPTiBNQVJLIGFuZCBVKzIw MTggUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLOyB0aGUgY3VydmVkIGRvdWJsZQpxdW90ZXMg YXJlIFUrMjAxQyBMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSyBhbmQgVSsyMDFEIFJJR0hUIERP VUJMRQpRVU9UQVRJT04gTUFSSy4gT24gdGV4dCB0ZXJtaW5hbHMgd2hpY2ggY2Fubm90IGRpc3Bs YXkgdGhlc2UgY2hhcmFjdGVycywKdGhlIEluZm8gcmVhZGVyIG1pZ2h0IHNob3cgdGhlbSBhcyB0 aGUgdHlwZXdyaXRlciBBU0NJSSBxdW90ZQpjaGFyYWN0ZXJzLgoKCioqIDI1LjYgRmlsbGluZyBU ZXh0CgoiRmlsbGluZyIgdGV4dCBtZWFucyBicmVha2luZyBpdCB1cCBpbnRvIGxpbmVzIHRoYXQg Zml0IGEgc3BlY2lmaWVkCndpZHRoLiAgRW1hY3MgZG9lcyBmaWxsaW5nIGluIHR3byB3YXlzLiAg SW4gQXV0byBGaWxsIG1vZGUsIGluc2VydGluZwp0ZXh0IHdpdGggc2VsZi1pbnNlcnRpbmcgY2hh cmFjdGVycyBhbHNvIGF1dG9tYXRpY2FsbHkgZmlsbHMgaXQuICBUaGVyZQphcmUgYWxzbyBleHBs aWNpdCBmaWxsIGNvbW1hbmRzIHRoYXQgeW91IGNhbiB1c2Ugd2hlbiBlZGl0aW5nIHRleHQuCgor IE1lbnU6CgogIC0gQXV0byBGaWxsOjogICAgICBBdXRvIEZpbGwgbW9kZSBicmVha3MgbG9uZyBs aW5lcyBhdXRvbWF0aWNhbGx5LgogIC0gRmlsbCBDb21tYW5kczo6ICBDb21tYW5kcyB0byByZWZp bGwgcGFyYWdyYXBocyBhbmQgY2VudGVyIGxpbmVzLgogIC0gRmlsbCBQcmVmaXg6OiAgICBGaWxs aW5nIHBhcmFncmFwaHMgdGhhdCBhcmUgaW5kZW50ZWQgb3IgaW4gYSBjb21tZW50LCBldGMuCiAg LSBBZGFwdGl2ZSBGaWxsOjogIEhvdyBFbWFjcyBjYW4gZGV0ZXJtaW5lIHRoZSBmaWxsIHByZWZp eCBhdXRvbWF0aWNhbGx5LgoKCioqKiAyNS42LjEgQXV0byBGaWxsIE1vZGUKCiJBdXRvIEZpbGwi IG1vZGUgaXMgYSBidWZmZXItbG9jYWwgbWlub3IgbW9kZSAoKm5vdGUgTWlub3IgTW9kZXM6Oikg aW4Kd2hpY2ggbGluZXMgYXJlIGJyb2tlbiBhdXRvbWF0aWNhbGx5IGF0IHNwYWNlcyB3aGVuIHRo ZSBsaW5lIGJlY29tZXMgdG9vCndpZGUuCgrigJhNLXggYXV0by1maWxsLW1vZGXigJkKICAgICBF bmFibGUgb3IgZGlzYWJsZSBBdXRvIEZpbGwgbW9kZS4K4oCYPFNQQz7igJkK4oCYPFJFVD7igJkK ICAgICBJbiBBdXRvIEZpbGwgbW9kZSwgYnJlYWsgbGluZXMgd2hlbiBhcHByb3ByaWF0ZS4KCiAg IFRoZSBtb2RlIGNvbW1hbmQg4oCYTS14IGF1dG8tZmlsbC1tb2Rl4oCZIHRvZ2dsZXMgQXV0byBG aWxsIG1vZGUgaW4gdGhlCmN1cnJlbnQgYnVmZmVyLiAgTGlrZSBhbnkgb3RoZXIgbWlub3IgbW9k ZSwgd2l0aCBhIHBvc2l0aXZlIG51bWVyaWMKYXJndW1lbnQsIGl0IGVuYWJsZXMgQXV0byBGaWxs IG1vZGUsIGFuZCB3aXRoIGEgbmVnYXRpdmUgYXJndW1lbnQgaXQKZGlzYWJsZXMgaXQuICBUbyBl bmFibGUgQXV0byBGaWxsIG1vZGUgYXV0b21hdGljYWxseSBpbiBjZXJ0YWluIG1ham9yCm1vZGVz LCBhZGQg4oCYYXV0by1maWxsLW1vZGXigJkgdG8gdGhlIG1vZGUgaG9va3MgKCpub3RlIE1ham9y IE1vZGVzOjopLgpXaGVuIEF1dG8gRmlsbCBtb2RlIGlzIGVuYWJsZWQsIHRoZSBtb2RlIGluZGlj YXRvciDigJhGaWxs4oCZIGFwcGVhcnMgaW4gdGhlCm1vZGUgbGluZSAoKm5vdGUgTW9kZSBMaW5l OjopLgoKICAgQXV0byBGaWxsIG1vZGUgYnJlYWtzIGxpbmVzIGF1dG9tYXRpY2FsbHkgYXQgc3Bh Y2VzIHdoZW5ldmVyIHRoZXkgZ2V0CmxvbmdlciB0aGFuIHRoZSBkZXNpcmVkIHdpZHRoLiAgVGhp cyBsaW5lIGJyZWFraW5nIG9jY3VycyBvbmx5IHdoZW4geW91CnR5cGUgPFNQQz4gb3IgPFJFVD4u ICBJZiB5b3Ugd2lzaCB0byBpbnNlcnQgYSBzcGFjZSBvciBuZXdsaW5lIHdpdGhvdXQKcGVybWl0 dGluZyBsaW5lLWJyZWFraW5nLCB0eXBlIOKAmEMtcSA8U1BDPuKAmSBvciDigJhDLXEgQy1q4oCZ IHJlc3BlY3RpdmVseS4KQWxzbywg4oCYQy1v4oCZIGluc2VydHMgYSBuZXdsaW5lIHdpdGhvdXQg bGluZSBicmVha2luZy4KCiAgIFdoZW4gQXV0byBGaWxsIG1vZGUgYnJlYWtzIGEgbGluZSwgaXQg dHJpZXMgdG8gb2JleSB0aGUgImFkYXB0aXZlCmZpbGwgcHJlZml4IjogaWYgYSBmaWxsIHByZWZp eCBjYW4gYmUgZGVkdWNlZCBmcm9tIHRoZSBmaXJzdCBhbmQvb3IKc2Vjb25kIGxpbmUgb2YgdGhl IGN1cnJlbnQgcGFyYWdyYXBoLCBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoZSBuZXcgbGluZQooKm5v dGUgQWRhcHRpdmUgRmlsbDo6KS4gIE90aGVyd2lzZSB0aGUgbmV3IGxpbmUgaXMgaW5kZW50ZWQs IGFzIHRob3VnaAp5b3UgaGFkIHR5cGVkIDxUQUI+IG9uIGl0ICgqbm90ZSBJbmRlbnRhdGlvbjo6 KS4gIEluIGEgcHJvZ3JhbW1pbmcKbGFuZ3VhZ2UgbW9kZSwgaWYgYSBsaW5lIGlzIGJyb2tlbiBp biB0aGUgbWlkZGxlIG9mIGEgY29tbWVudCwgdGhlCmNvbW1lbnQgaXMgc3BsaXQgYnkgaW5zZXJ0 aW5nIG5ldyBjb21tZW50IGRlbGltaXRlcnMgYXMgYXBwcm9wcmlhdGUuCgogICBBdXRvIEZpbGwg bW9kZSBkb2VzIG5vdCByZWZpbGwgZW50aXJlIHBhcmFncmFwaHM7IGl0IGJyZWFrcyBsaW5lcyBi dXQKZG9lcyBub3QgbWVyZ2UgbGluZXMuICBUaGVyZWZvcmUsIGVkaXRpbmcgaW4gdGhlIG1pZGRs ZSBvZiBhIHBhcmFncmFwaApjYW4gcmVzdWx0IGluIGEgcGFyYWdyYXBoIHRoYXQgaXMgbm90IGNv cnJlY3RseSBmaWxsZWQuICBUbyBmaWxsIGl0LApjYWxsIHRoZSBleHBsaWNpdCBmaWxsIGNvbW1h bmRzICgqbm90ZSBGaWxsIENvbW1hbmRzOjopLgoKCioqKiAyNS42LjIgRXhwbGljaXQgRmlsbCBD b21tYW5kcwoK4oCYTS1x4oCZCiAgICAgRmlsbCBjdXJyZW50IHBhcmFncmFwaCAo4oCYZmlsbC1w YXJhZ3JhcGjigJkpLgrigJhDLXggZuKAmQogICAgIFNldCB0aGUgZmlsbCBjb2x1bW4gKOKAmHNl dC1maWxsLWNvbHVtbuKAmSkuCuKAmE0teCBmaWxsLXJlZ2lvbuKAmQogICAgIEZpbGwgZWFjaCBw YXJhZ3JhcGggaW4gdGhlIHJlZ2lvbiAo4oCYZmlsbC1yZWdpb27igJkpLgrigJhNLXggZmlsbC1y ZWdpb24tYXMtcGFyYWdyYXBo4oCZCiAgICAgRmlsbCB0aGUgcmVnaW9uLCBjb25zaWRlcmluZyBp dCBhcyBvbmUgcGFyYWdyYXBoLgrigJhNLW8gTS1z4oCZCiAgICAgQ2VudGVyIGEgbGluZS4KCiAg IFRoZSBjb21tYW5kIOKAmE0tceKAmSAo4oCYZmlsbC1wYXJhZ3JhcGjigJkpICJmaWxscyIgdGhl IGN1cnJlbnQgcGFyYWdyYXBoLgpJdCByZWRpc3RyaWJ1dGVzIHRoZSBsaW5lIGJyZWFrcyB3aXRo aW4gdGhlIHBhcmFncmFwaCwgYW5kIGRlbGV0ZXMgYW55CmV4Y2VzcyBzcGFjZSBhbmQgdGFiIGNo YXJhY3RlcnMgb2NjdXJyaW5nIHdpdGhpbiB0aGUgcGFyYWdyYXBoLCBpbiBzdWNoCmEgd2F5IHRo YXQgdGhlIGxpbmVzIGVuZCB1cCBmaXR0aW5nIHdpdGhpbiBhIGNlcnRhaW4gbWF4aW11bSB3aWR0 aC4KCiAgIE5vcm1hbGx5LCDigJhNLXHigJkgYWN0cyBvbiB0aGUgcGFyYWdyYXBoIHdoZXJlIHBv aW50IGlzLCBidXQgaWYgcG9pbnQgaXMKYmV0d2VlbiBwYXJhZ3JhcGhzLCBpdCBhY3RzIG9uIHRo ZSBwYXJhZ3JhcGggYWZ0ZXIgcG9pbnQuICBJZiB0aGUgcmVnaW9uCmlzIGFjdGl2ZSwgaXQgYWN0 cyBpbnN0ZWFkIG9uIHRoZSB0ZXh0IGluIHRoZSByZWdpb24uICBZb3UgY2FuIGFsc28gY2FsbAri gJhNLXggZmlsbC1yZWdpb27igJkgdG8gc3BlY2lmaWNhbGx5IGZpbGwgdGhlIHRleHQgaW4gdGhl IHJlZ2lvbi4KCiAgIOKAmE0tceKAmSBhbmQg4oCYZmlsbC1yZWdpb27igJkgdXNlIHRoZSB1c3Vh bCBFbWFjcyBjcml0ZXJpYSBmb3IgZmluZGluZwpwYXJhZ3JhcGggYm91bmRhcmllcyAoKm5vdGUg UGFyYWdyYXBoczo6KS4gIEZvciBtb3JlIGNvbnRyb2wsIHlvdSBjYW4KdXNlIOKAmE0teCBmaWxs LXJlZ2lvbi1hcy1wYXJhZ3JhcGjigJksIHdoaWNoIHJlZmlsbHMgZXZlcnl0aGluZyBiZXR3ZWVu CnBvaW50IGFuZCBtYXJrIGFzIGEgc2luZ2xlIHBhcmFncmFwaC4gIFRoaXMgY29tbWFuZCBkZWxl dGVzIGFueSBibGFuawpsaW5lcyB3aXRoaW4gdGhlIHJlZ2lvbiwgc28gc2VwYXJhdGUgYmxvY2tz IG9mIHRleHQgZW5kIHVwIGNvbWJpbmVkIGludG8Kb25lIGJsb2NrLgoKICAgQSBudW1lcmljIGFy Z3VtZW50IHRvIOKAmE0tceKAmSB0ZWxscyBpdCB0byAianVzdGlmeSIgdGhlIHRleHQgYXMgd2Vs bCBhcwpmaWxsaW5nIGl0LiAgVGhpcyBtZWFucyB0aGF0IGV4dHJhIHNwYWNlcyBhcmUgaW5zZXJ0 ZWQgdG8gbWFrZSB0aGUgcmlnaHQKbWFyZ2luIGxpbmUgdXAgZXhhY3RseSBhdCB0aGUgZmlsbCBj b2x1bW4uICBUbyByZW1vdmUgdGhlIGV4dHJhIHNwYWNlcywKdXNlIOKAmE0tceKAmSB3aXRoIG5v IGFyZ3VtZW50LiAgKExpa2V3aXNlIGZvciDigJhmaWxsLXJlZ2lvbuKAmS4pCgogICBUaGUgbWF4 aW11bSBsaW5lIHdpZHRoIGZvciBmaWxsaW5nIGlzIHNwZWNpZmllZCBieSB0aGUgYnVmZmVyLWxv Y2FsCnZhcmlhYmxlIOKAmGZpbGwtY29sdW1u4oCZLiAgVGhlIGRlZmF1bHQgdmFsdWUgKCpub3Rl IExvY2Fsczo6KSBpcyA3MC4gIFRoZQplYXNpZXN0IHdheSB0byBzZXQg4oCYZmlsbC1jb2x1bW7i gJkgaW4gdGhlIGN1cnJlbnQgYnVmZmVyIGlzIHRvIHVzZSB0aGUKY29tbWFuZCDigJhDLXggZuKA mSAo4oCYc2V0LWZpbGwtY29sdW1u4oCZKS4gIFdpdGggYSBudW1lcmljIGFyZ3VtZW50LCBpdCB1 c2VzCnRoYXQgYXMgdGhlIG5ldyBmaWxsIGNvbHVtbi4gIFdpdGgganVzdCDigJhDLXXigJkgYXMg YXJndW1lbnQsIGl0IHNldHMK4oCYZmlsbC1jb2x1bW7igJkgdG8gdGhlIGN1cnJlbnQgaG9yaXpv bnRhbCBwb3NpdGlvbiBvZiBwb2ludC4KCiAgIFRoZSBjb21tYW5kIOKAmE0tbyBNLXPigJkgKOKA mGNlbnRlci1saW5l4oCZKSBjZW50ZXJzIHRoZSBjdXJyZW50IGxpbmUgd2l0aGluCnRoZSBjdXJy ZW50IGZpbGwgY29sdW1uLiAgV2l0aCBhbiBhcmd1bWVudCBOLCBpdCBjZW50ZXJzIE4gbGluZXMK aW5kaXZpZHVhbGx5IGFuZCBtb3ZlcyBwYXN0IHRoZW0uICBUaGlzIGJpbmRpbmcgaXMgbWFkZSBi eSBUZXh0IG1vZGUgYW5kCmlzIGF2YWlsYWJsZSBvbmx5IGluIHRoYXQgYW5kIHJlbGF0ZWQgbW9k ZXMgKCpub3RlIFRleHQgTW9kZTo6KS4KCiAgIEJ5IGRlZmF1bHQsIEVtYWNzIGNvbnNpZGVycyBh IHBlcmlvZCBmb2xsb3dlZCBieSB0d28gc3BhY2VzIG9yIGJ5IGEKbmV3bGluZSBhcyB0aGUgZW5k IG9mIGEgc2VudGVuY2U7IGEgcGVyaW9kIGZvbGxvd2VkIGJ5IGp1c3Qgb25lIHNwYWNlCmluZGlj YXRlcyBhbiBhYmJyZXZpYXRpb24sIG5vdCB0aGUgZW5kIG9mIGEgc2VudGVuY2UuICBBY2NvcmRp bmdseSwgdGhlCmZpbGwgY29tbWFuZHMgd2lsbCBub3QgYnJlYWsgYSBsaW5lIGFmdGVyIGEgcGVy aW9kIGZvbGxvd2VkIGJ5IGp1c3Qgb25lCnNwYWNlLiAgSWYgeW91IHNldCB0aGUgdmFyaWFibGUg 4oCYc2VudGVuY2UtZW5kLWRvdWJsZS1zcGFjZeKAmSB0byDigJhuaWzigJksCnRoZSBmaWxsIGNv bW1hbmRzIHdpbGwgYnJlYWsgYSBsaW5lIGFmdGVyIGEgcGVyaW9kIGZvbGxvd2VkIGJ5IG9uZQpz cGFjZSwgYW5kIHB1dCBqdXN0IG9uZSBzcGFjZSBhZnRlciBlYWNoIHBlcmlvZC4gICpOb3RlIFNl bnRlbmNlczo6LCBmb3IKb3RoZXIgZWZmZWN0cyBhbmQgcG9zc2libGUgZHJhd2JhY2tzIG9mIHRo aXMuCgogICBJZiB0aGUgdmFyaWFibGUg4oCYY29sb24tZG91YmxlLXNwYWNl4oCZIGlzIG5vbi3i gJhuaWzigJksIHRoZSBmaWxsIGNvbW1hbmRzCnB1dCB0d28gc3BhY2VzIGFmdGVyIGEgY29sb24u CgogICBUbyBzcGVjaWZ5IGFkZGl0aW9uYWwgY29uZGl0aW9ucyB3aGVyZSBsaW5lLWJyZWFraW5n IGlzIG5vdCBhbGxvd2VkLApjdXN0b21pemUgdGhlIGFibm9ybWFsIGhvb2sgdmFyaWFibGUg4oCY ZmlsbC1ub2JyZWFrLXByZWRpY2F0ZeKAmSAoKm5vdGUKSG9va3M6OikuICBFYWNoIGZ1bmN0aW9u IGluIHRoaXMgaG9vayBpcyBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMsIHdpdGgKcG9pbnQgcG9z aXRpb25lZCB3aGVyZSBFbWFjcyBpcyBjb25zaWRlcmluZyBicmVha2luZyBhIGxpbmUuICBJZiBh CmZ1bmN0aW9uIHJldHVybnMgYSBub24t4oCYbmls4oCZIHZhbHVlLCBFbWFjcyB3aWxsIG5vdCBi cmVhayB0aGUgbGluZSB0aGVyZS4KRnVuY3Rpb25zIHlvdSBjYW4gdXNlIHRoZXJlIGluY2x1ZGU6 IOKAmGZpbGwtc2luZ2xlLXdvcmQtbm9icmVhay1w4oCZIChkb27igJl0CmJyZWFrIGFmdGVyIHRo ZSBmaXJzdCB3b3JkIG9mIGEgc2VudGVuY2Ugb3IgYmVmb3JlIHRoZSBsYXN0KTsK4oCYZmlsbC1z aW5nbGUtY2hhci1ub2JyZWFrLXDigJkgKGRvbuKAmXQgYnJlYWsgYWZ0ZXIgYSBvbmUtbGV0dGVy IHdvcmQpOyBhbmQK4oCYZmlsbC1mcmVuY2gtbm9icmVhay1w4oCZIChkb27igJl0IGJyZWFrIGFm dGVyIOKAmCjigJkgb3IgYmVmb3JlIOKAmCnigJksIOKAmDrigJkgb3IK4oCYP+KAmSkuCgoKKioq IDI1LjYuMyBUaGUgRmlsbCBQcmVmaXgKClRoZSAiZmlsbCBwcmVmaXgiIGZlYXR1cmUgYWxsb3dz IHBhcmFncmFwaHMgdG8gYmUgZmlsbGVkIHNvIHRoYXQgZWFjaApsaW5lIHN0YXJ0cyB3aXRoIGEg c3BlY2lhbCBzdHJpbmcgb2YgY2hhcmFjdGVycyAoc3VjaCBhcyBhIHNlcXVlbmNlIG9mCnNwYWNl cywgZ2l2aW5nIGFuIGluZGVudGVkIHBhcmFncmFwaCkuICBZb3UgY2FuIHNwZWNpZnkgYSBmaWxs IHByZWZpeApleHBsaWNpdGx5OyBvdGhlcndpc2UsIEVtYWNzIHRyaWVzIHRvIGRlZHVjZSBvbmUg YXV0b21hdGljYWxseSAoKm5vdGUKQWRhcHRpdmUgRmlsbDo6KS4KCuKAmEMteCAu4oCZCiAgICAg U2V0IHRoZSBmaWxsIHByZWZpeCAo4oCYc2V0LWZpbGwtcHJlZml44oCZKS4K4oCYTS1x4oCZCiAg ICAgRmlsbCBhIHBhcmFncmFwaCB1c2luZyBjdXJyZW50IGZpbGwgcHJlZml4ICjigJhmaWxsLXBh cmFncmFwaOKAmSkuCuKAmE0teCBmaWxsLWluZGl2aWR1YWwtcGFyYWdyYXBoc+KAmQogICAgIEZp bGwgdGhlIHJlZ2lvbiwgY29uc2lkZXJpbmcgZWFjaCBjaGFuZ2Ugb2YgaW5kZW50YXRpb24gYXMg c3RhcnRpbmcKICAgICBhIG5ldyBwYXJhZ3JhcGguCuKAmE0teCBmaWxsLW5vbnVuaWZvcm0tcGFy YWdyYXBoc+KAmQogICAgIEZpbGwgdGhlIHJlZ2lvbiwgY29uc2lkZXJpbmcgb25seSBwYXJhZ3Jh cGgtc2VwYXJhdG9yIGxpbmVzIGFzCiAgICAgc3RhcnRpbmcgYSBuZXcgcGFyYWdyYXBoLgoKICAg VG8gc3BlY2lmeSBhIGZpbGwgcHJlZml4IGZvciB0aGUgY3VycmVudCBidWZmZXIsIG1vdmUgdG8g YSBsaW5lIHRoYXQKc3RhcnRzIHdpdGggdGhlIGRlc2lyZWQgcHJlZml4LCBwdXQgcG9pbnQgYXQg dGhlIGVuZCBvZiB0aGUgcHJlZml4LCBhbmQKdHlwZSDigJhDLXggLuKAmSAo4oCYc2V0LWZpbGwt cHJlZml44oCZKS4gIChUaGF04oCZcyBhIHBlcmlvZCBhZnRlciB0aGUg4oCYQy144oCZLikKVG8g dHVybiBvZmYgdGhlIGZpbGwgcHJlZml4LCBzcGVjaWZ5IGFuIGVtcHR5IHByZWZpeDogdHlwZSDi gJhDLXggLuKAmSB3aXRoCnBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lLgoKICAgV2hl biBhIGZpbGwgcHJlZml4IGlzIGluIGVmZmVjdCwgdGhlIGZpbGwgY29tbWFuZHMgcmVtb3ZlIHRo ZSBmaWxsCnByZWZpeCBmcm9tIGVhY2ggbGluZSBvZiB0aGUgcGFyYWdyYXBoIGJlZm9yZSBmaWxs aW5nLCBhbmQgaW5zZXJ0IGl0IG9uCmVhY2ggbGluZSBhZnRlciBmaWxsaW5nLiAgKFRoZSBiZWdp bm5pbmcgb2YgdGhlIGZpcnN0IGxpbmUgb2YgdGhlCnBhcmFncmFwaCBpcyBsZWZ0IHVuY2hhbmdl ZCwgc2luY2Ugb2Z0ZW4gdGhhdCBpcyBpbnRlbnRpb25hbGx5CmRpZmZlcmVudC4pICBBdXRvIEZp bGwgbW9kZSBhbHNvIGluc2VydHMgdGhlIGZpbGwgcHJlZml4IGF1dG9tYXRpY2FsbHkKd2hlbiBp dCBtYWtlcyBhIG5ldyBsaW5lICgqbm90ZSBBdXRvIEZpbGw6OikuICBUaGUg4oCYQy1v4oCZIGNv bW1hbmQgaW5zZXJ0cwp0aGUgZmlsbCBwcmVmaXggb24gbmV3IGxpbmVzIGl0IGNyZWF0ZXMsIHdo ZW4geW91IHVzZSBpdCBhdCB0aGUKYmVnaW5uaW5nIG9mIGEgbGluZSAoKm5vdGUgQmxhbmsgTGlu ZXM6OikuICBDb252ZXJzZWx5LCB0aGUgY29tbWFuZArigJhNLV7igJkgZGVsZXRlcyB0aGUgcHJl Zml4IChpZiBpdCBvY2N1cnMpIGFmdGVyIHRoZSBuZXdsaW5lIHRoYXQgaXQKZGVsZXRlcyAoKm5v dGUgSW5kZW50YXRpb246OikuCgogICBGb3IgZXhhbXBsZSwgaWYg4oCYZmlsbC1jb2x1bW7igJkg aXMgNDAgYW5kIHlvdSBzZXQgdGhlIGZpbGwgcHJlZml4IHRvCuKAmDs7IOKAmSwgdGhlbiDigJhN LXHigJkgaW4gdGhlIGZvbGxvd2luZyB0ZXh0CgogICAgIDs7IFRoaXMgaXMgYW4KICAgICA7OyBl eGFtcGxlIG9mIGEgcGFyYWdyYXBoCiAgICAgOzsgaW5zaWRlIGEgTGlzcC1zdHlsZSBjb21tZW50 LgoKcHJvZHVjZXMgdGhpczoKCiAgICAgOzsgVGhpcyBpcyBhbiBleGFtcGxlIG9mIGEgcGFyYWdy YXBoCiAgICAgOzsgaW5zaWRlIGEgTGlzcC1zdHlsZSBjb21tZW50LgoKICAgTGluZXMgdGhhdCBk byBub3Qgc3RhcnQgd2l0aCB0aGUgZmlsbCBwcmVmaXggYXJlIGNvbnNpZGVyZWQgdG8gc3RhcnQK cGFyYWdyYXBocywgYm90aCBpbiDigJhNLXHigJkgYW5kIHRoZSBwYXJhZ3JhcGggY29tbWFuZHM7 IHRoaXMgZ2l2ZXMgZ29vZApyZXN1bHRzIGZvciBwYXJhZ3JhcGhzIHdpdGggaGFuZ2luZyBpbmRl bnRhdGlvbiAoZXZlcnkgbGluZSBpbmRlbnRlZApleGNlcHQgdGhlIGZpcnN0IG9uZSkuICBMaW5l cyB3aGljaCBhcmUgYmxhbmsgb3IgaW5kZW50ZWQgb25jZSB0aGUKcHJlZml4IGlzIHJlbW92ZWQg YWxzbyBzZXBhcmF0ZSBvciBzdGFydCBwYXJhZ3JhcGhzOyB0aGlzIGlzIHdoYXQgeW91CndhbnQg aWYgeW91IGFyZSB3cml0aW5nIG11bHRpLXBhcmFncmFwaCBjb21tZW50cyB3aXRoIGEgY29tbWVu dApkZWxpbWl0ZXIgb24gZWFjaCBsaW5lLgoKICAgWW91IGNhbiB1c2Ug4oCYTS14IGZpbGwtaW5k aXZpZHVhbC1wYXJhZ3JhcGhz4oCZIHRvIHNldCB0aGUgZmlsbCBwcmVmaXgKZm9yIGVhY2ggcGFy YWdyYXBoIGF1dG9tYXRpY2FsbHkuICBUaGlzIGNvbW1hbmQgZGl2aWRlcyB0aGUgcmVnaW9uIGlu dG8KcGFyYWdyYXBocywgdHJlYXRpbmcgZXZlcnkgY2hhbmdlIGluIHRoZSBhbW91bnQgb2YgaW5k ZW50YXRpb24gYXMgdGhlCnN0YXJ0IG9mIGEgbmV3IHBhcmFncmFwaCwgYW5kIGZpbGxzIGVhY2gg b2YgdGhlc2UgcGFyYWdyYXBocy4gIFRodXMsIGFsbAp0aGUgbGluZXMgaW4gb25lIHBhcmFncmFw aCBoYXZlIHRoZSBzYW1lIGFtb3VudCBvZiBpbmRlbnRhdGlvbi4gIFRoYXQKaW5kZW50YXRpb24g c2VydmVzIGFzIHRoZSBmaWxsIHByZWZpeCBmb3IgdGhhdCBwYXJhZ3JhcGguCgogICDigJhNLXgg ZmlsbC1ub251bmlmb3JtLXBhcmFncmFwaHPigJkgaXMgYSBzaW1pbGFyIGNvbW1hbmQgdGhhdCBk aXZpZGVzCnRoZSByZWdpb24gaW50byBwYXJhZ3JhcGhzIGluIGEgZGlmZmVyZW50IHdheS4gIEl0 IGNvbnNpZGVycyBvbmx5CnBhcmFncmFwaC1zZXBhcmF0aW5nIGxpbmVzIChhcyBkZWZpbmVkIGJ5 IOKAmHBhcmFncmFwaC1zZXBhcmF0ZeKAmSkgYXMKc3RhcnRpbmcgYSBuZXcgcGFyYWdyYXBoLiAg U2luY2UgdGhpcyBtZWFucyB0aGF0IHRoZSBsaW5lcyBvZiBvbmUKcGFyYWdyYXBoIG1heSBoYXZl IGRpZmZlcmVudCBhbW91bnRzIG9mIGluZGVudGF0aW9uLCB0aGUgZmlsbCBwcmVmaXgKdXNlZCBp cyB0aGUgc21hbGxlc3QgYW1vdW50IG9mIGluZGVudGF0aW9uIG9mIGFueSBvZiB0aGUgbGluZXMg b2YgdGhlCnBhcmFncmFwaC4gIFRoaXMgZ2l2ZXMgZ29vZCByZXN1bHRzIHdpdGggc3R5bGVzIHRo YXQgaW5kZW50IGEKcGFyYWdyYXBo4oCZcyBmaXJzdCBsaW5lIG1vcmUgb3IgbGVzcyB0aGF0IHRo ZSByZXN0IG9mIHRoZSBwYXJhZ3JhcGguCgogICBUaGUgZmlsbCBwcmVmaXggaXMgc3RvcmVkIGlu IHRoZSB2YXJpYWJsZSDigJhmaWxsLXByZWZpeOKAmS4gIEl0cyB2YWx1ZQppcyBhIHN0cmluZywg b3Ig4oCYbmls4oCZIHdoZW4gdGhlcmUgaXMgbm8gZmlsbCBwcmVmaXguICBUaGlzIGlzIGEKcGVy LWJ1ZmZlciB2YXJpYWJsZTsgYWx0ZXJpbmcgdGhlIHZhcmlhYmxlIGFmZmVjdHMgb25seSB0aGUg Y3VycmVudApidWZmZXIsIGJ1dCB0aGVyZSBpcyBhIGRlZmF1bHQgdmFsdWUgd2hpY2ggeW91IGNh biBjaGFuZ2UgYXMgd2VsbC4KKk5vdGUgTG9jYWxzOjouCgogICBUaGUg4oCYaW5kZW50YXRpb27i gJkgdGV4dCBwcm9wZXJ0eSBwcm92aWRlcyBhbm90aGVyIHdheSB0byBjb250cm9sIHRoZQphbW91 bnQgb2YgaW5kZW50YXRpb24gcGFyYWdyYXBocyByZWNlaXZlLiAgKk5vdGUgRW5yaWNoZWQgSW5k ZW50YXRpb246Oi4KCgoqKiogMjUuNi40IEFkYXB0aXZlIEZpbGxpbmcKClRoZSBmaWxsIGNvbW1h bmRzIGNhbiBkZWR1Y2UgdGhlIHByb3BlciBmaWxsIHByZWZpeCBmb3IgYSBwYXJhZ3JhcGgKYXV0 b21hdGljYWxseSBpbiBjZXJ0YWluIGNhc2VzOiBlaXRoZXIgd2hpdGVzcGFjZSBvciBjZXJ0YWlu IHB1bmN0dWF0aW9uCmNoYXJhY3RlcnMgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgYXJlIHBy b3BhZ2F0ZWQgdG8gYWxsIGxpbmVzIG9mIHRoZQpwYXJhZ3JhcGguCgogICBJZiB0aGUgcGFyYWdy YXBoIGhhcyB0d28gb3IgbW9yZSBsaW5lcywgdGhlIGZpbGwgcHJlZml4IGlzIHRha2VuIGZyb20K dGhlIHBhcmFncmFwaOKAmXMgc2Vjb25kIGxpbmUsIGJ1dCBvbmx5IGlmIGl0IGFwcGVhcnMgb24g dGhlIGZpcnN0IGxpbmUgYXMKd2VsbC4KCiAgIElmIGEgcGFyYWdyYXBoIGhhcyBqdXN0IG9uZSBs aW5lLCBmaWxsIGNvbW1hbmRzIF9tYXlfIHRha2UgYSBwcmVmaXgKZnJvbSB0aGF0IGxpbmUuICBU aGUgZGVjaXNpb24gaXMgY29tcGxpY2F0ZWQgYmVjYXVzZSB0aGVyZSBhcmUgdGhyZWUKcmVhc29u YWJsZSB0aGluZ3MgdG8gZG8gaW4gc3VjaCBhIGNhc2U6CgogICDigKIgVXNlIHRoZSBmaXJzdCBs aW5l4oCZcyBwcmVmaXggb24gYWxsIHRoZSBsaW5lcyBvZiB0aGUgcGFyYWdyYXBoLgoKICAg4oCi IEluZGVudCBzdWJzZXF1ZW50IGxpbmVzIHdpdGggd2hpdGVzcGFjZSwgc28gdGhhdCB0aGV5IGxp bmUgdXAgdW5kZXIKICAgICB0aGUgdGV4dCB0aGF0IGZvbGxvd3MgdGhlIHByZWZpeCBvbiB0aGUg Zmlyc3QgbGluZSwgYnV0IGRvbuKAmXQKICAgICBhY3R1YWxseSBjb3B5IHRoZSBwcmVmaXggZnJv bSB0aGUgZmlyc3QgbGluZS4KCiAgIOKAoiBEb27igJl0IGRvIGFueXRoaW5nIHNwZWNpYWwgd2l0 aCB0aGUgc2Vjb25kIGFuZCBmb2xsb3dpbmcgbGluZXMuCgogICBBbGwgdGhyZWUgb2YgdGhlc2Ug c3R5bGVzIG9mIGZvcm1hdHRpbmcgYXJlIGNvbW1vbmx5IHVzZWQuICBTbyB0aGUKZmlsbCBjb21t YW5kcyB0cnkgdG8gZGV0ZXJtaW5lIHdoYXQgeW91IHdvdWxkIGxpa2UsIGJhc2VkIG9uIHRoZSBw cmVmaXgKdGhhdCBhcHBlYXJzIGFuZCBvbiB0aGUgbWFqb3IgbW9kZS4gIEhlcmUgaXMgaG93LgoK ICAgSWYgdGhlIHByZWZpeCBmb3VuZCBvbiB0aGUgZmlyc3QgbGluZSBtYXRjaGVzCuKAmGFkYXB0 aXZlLWZpbGwtZmlyc3QtbGluZS1yZWdleHDigJksIG9yIGlmIGl0IGFwcGVhcnMgdG8gYmUgYQpj b21tZW50LXN0YXJ0aW5nIHNlcXVlbmNlICh0aGlzIGRlcGVuZHMgb24gdGhlIG1ham9yIG1vZGUp LCB0aGVuIHRoZQpwcmVmaXggZm91bmQgaXMgdXNlZCBmb3IgZmlsbGluZyB0aGUgcGFyYWdyYXBo LCBwcm92aWRlZCBpdCB3b3VsZCBub3QKYWN0IGFzIGEgcGFyYWdyYXBoIHN0YXJ0ZXIgb24gc3Vi c2VxdWVudCBsaW5lcy4KCiAgIE90aGVyd2lzZSwgdGhlIHByZWZpeCBmb3VuZCBpcyBjb252ZXJ0 ZWQgdG8gYW4gZXF1aXZhbGVudCBudW1iZXIgb2YKc3BhY2VzLCBhbmQgdGhvc2Ugc3BhY2VzIGFy ZSB1c2VkIGFzIHRoZSBmaWxsIHByZWZpeCBmb3IgdGhlIHJlc3Qgb2YgdGhlCmxpbmVzLCBwcm92 aWRlZCB0aGV5IHdvdWxkIG5vdCBhY3QgYXMgYSBwYXJhZ3JhcGggc3RhcnRlciBvbiBzdWJzZXF1 ZW50CmxpbmVzLgoKICAgSW4gVGV4dCBtb2RlLCBhbmQgb3RoZXIgbW9kZXMgd2hlcmUgb25seSBi bGFuayBsaW5lcyBhbmQgcGFnZQpkZWxpbWl0ZXJzIHNlcGFyYXRlIHBhcmFncmFwaHMsIHRoZSBw cmVmaXggY2hvc2VuIGJ5IGFkYXB0aXZlIGZpbGxpbmcKbmV2ZXIgYWN0cyBhcyBhIHBhcmFncmFw aCBzdGFydGVyLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVzZWQgZm9yIGZpbGxpbmcuCgogICBUaGUg dmFyaWFibGUg4oCYYWRhcHRpdmUtZmlsbC1yZWdleHDigJkgZGV0ZXJtaW5lcyB3aGF0IGtpbmRz IG9mIGxpbmUKYmVnaW5uaW5ncyBjYW4gc2VydmUgYXMgYSBmaWxsIHByZWZpeDogYW55IGNoYXJh Y3RlcnMgYXQgdGhlIHN0YXJ0IG9mCnRoZSBsaW5lIHRoYXQgbWF0Y2ggdGhpcyByZWd1bGFyIGV4 cHJlc3Npb24gYXJlIHVzZWQuICBJZiB5b3Ugc2V0IHRoZQp2YXJpYWJsZSDigJhhZGFwdGl2ZS1m aWxsLW1vZGXigJkgdG8g4oCYbmls4oCZLCB0aGUgZmlsbCBwcmVmaXggaXMgbmV2ZXIgY2hvc2Vu CmF1dG9tYXRpY2FsbHkuCgogICBZb3UgY2FuIHNwZWNpZnkgbW9yZSBjb21wbGV4IHdheXMgb2Yg Y2hvb3NpbmcgYSBmaWxsIHByZWZpeAphdXRvbWF0aWNhbGx5IGJ5IHNldHRpbmcgdGhlIHZhcmlh YmxlIOKAmGFkYXB0aXZlLWZpbGwtZnVuY3Rpb27igJkgdG8gYQpmdW5jdGlvbi4gIFRoaXMgZnVu Y3Rpb24gaXMgY2FsbGVkIHdpdGggcG9pbnQgYWZ0ZXIgdGhlIGxlZnQgbWFyZ2luIG9mIGEKbGlu ZSwgYW5kIGl0IHNob3VsZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGZpbGwgcHJlZml4IGJhc2Vk IG9uIHRoYXQKbGluZS4gIElmIGl0IHJldHVybnMg4oCYbmls4oCZLCDigJhhZGFwdGl2ZS1maWxs LXJlZ2V4cOKAmSBnZXRzIGEgY2hhbmNlIHRvIGZpbmQKYSBwcmVmaXguCgoKKiogMjUuNyBDYXNl IENvbnZlcnNpb24gQ29tbWFuZHMKCkVtYWNzIGhhcyBjb21tYW5kcyBmb3IgY29udmVydGluZyBl aXRoZXIgYSBzaW5nbGUgd29yZCBvciBhbnkgYXJiaXRyYXJ5CnJhbmdlIG9mIHRleHQgdG8gdXBw ZXIgY2FzZSBvciB0byBsb3dlciBjYXNlLgoK4oCYTS1s4oCZCiAgICAgQ29udmVydCBmb2xsb3dp bmcgd29yZCB0byBsb3dlciBjYXNlICjigJhkb3duY2FzZS13b3Jk4oCZKS4K4oCYTS114oCZCiAg ICAgQ29udmVydCBmb2xsb3dpbmcgd29yZCB0byB1cHBlciBjYXNlICjigJh1cGNhc2Utd29yZOKA mSkuCuKAmE0tY+KAmQogICAgIENhcGl0YWxpemUgdGhlIGZvbGxvd2luZyB3b3JkICjigJhjYXBp dGFsaXplLXdvcmTigJkpLgrigJhDLXggQy1s4oCZCiAgICAgQ29udmVydCByZWdpb24gdG8gbG93 ZXIgY2FzZSAo4oCYZG93bmNhc2UtcmVnaW9u4oCZKS4K4oCYQy14IEMtdeKAmQogICAgIENvbnZl cnQgcmVnaW9uIHRvIHVwcGVyIGNhc2UgKOKAmHVwY2FzZS1yZWdpb27igJkpLgoKICAg4oCYTS1s 4oCZICjigJhkb3duY2FzZS13b3Jk4oCZKSBjb252ZXJ0cyB0aGUgd29yZCBhZnRlciBwb2ludCB0 byBsb3dlciBjYXNlLAptb3ZpbmcgcGFzdCBpdC4gIFRodXMsIHJlcGVhdGluZyDigJhNLWzigJkg Y29udmVydHMgc3VjY2Vzc2l2ZSB3b3Jkcy4gIOKAmE0tdeKAmQoo4oCYdXBjYXNlLXdvcmTigJkp IGNvbnZlcnRzIHRvIGFsbCBjYXBpdGFscyBpbnN0ZWFkLCB3aGlsZSDigJhNLWPigJkKKOKAmGNh cGl0YWxpemUtd29yZOKAmSkgcHV0cyB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSB3b3JkIGludG8g dXBwZXIgY2FzZQphbmQgdGhlIHJlc3QgaW50byBsb3dlciBjYXNlLiAgQWxsIHRoZXNlIGNvbW1h bmRzIGNvbnZlcnQgc2V2ZXJhbCB3b3JkcwphdCBvbmNlIGlmIGdpdmVuIGFuIGFyZ3VtZW50LiAg VGhleSBhcmUgZXNwZWNpYWxseSBjb252ZW5pZW50IGZvcgpjb252ZXJ0aW5nIGEgbGFyZ2UgYW1v dW50IG9mIHRleHQgZnJvbSBhbGwgdXBwZXIgY2FzZSB0byBtaXhlZCBjYXNlLApiZWNhdXNlIHlv dSBjYW4gbW92ZSB0aHJvdWdoIHRoZSB0ZXh0IHVzaW5nIOKAmE0tbOKAmSwg4oCYTS114oCZIG9y IOKAmE0tY+KAmSBvbgplYWNoIHdvcmQgYXMgYXBwcm9wcmlhdGUsIG9jY2FzaW9uYWxseSB1c2lu ZyDigJhNLWbigJkgaW5zdGVhZCB0byBza2lwIGEKd29yZC4KCiAgIFdoZW4gZ2l2ZW4gYSBuZWdh dGl2ZSBhcmd1bWVudCwgdGhlIHdvcmQgY2FzZSBjb252ZXJzaW9uIGNvbW1hbmRzCmFwcGx5IHRv IHRoZSBhcHByb3ByaWF0ZSBudW1iZXIgb2Ygd29yZHMgYmVmb3JlIHBvaW50LCBidXQgZG8gbm90 IG1vdmUKcG9pbnQuICBUaGlzIGlzIGNvbnZlbmllbnQgd2hlbiB5b3UgaGF2ZSBqdXN0IHR5cGVk IGEgd29yZCBpbiB0aGUgd3JvbmcKY2FzZTogeW91IGNhbiBnaXZlIHRoZSBjYXNlIGNvbnZlcnNp b24gY29tbWFuZCBhbmQgY29udGludWUgdHlwaW5nLgoKICAgSWYgYSB3b3JkIGNhc2UgY29udmVy c2lvbiBjb21tYW5kIGlzIGdpdmVuIGluIHRoZSBtaWRkbGUgb2YgYSB3b3JkLAppdCBhcHBsaWVz IG9ubHkgdG8gdGhlIHBhcnQgb2YgdGhlIHdvcmQgd2hpY2ggZm9sbG93cyBwb2ludC4gIChUaGlz IGlzCmNvbXBhcmFibGUgdG8gd2hhdCDigJhNLWTigJkgKOKAmGtpbGwtd29yZOKAmSkgZG9lcy4p ICBXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsCmNhc2UgY29udmVyc2lvbiBhcHBsaWVzIG9ubHkg dG8gdGhlIHBhcnQgb2YgdGhlIHdvcmQgYmVmb3JlIHBvaW50LgoKICAgVGhlIG90aGVyIGNhc2Ug Y29udmVyc2lvbiBjb21tYW5kcyBhcmUg4oCYQy14IEMtdeKAmSAo4oCYdXBjYXNlLXJlZ2lvbuKA mSkKYW5kIOKAmEMteCBDLWzigJkgKOKAmGRvd25jYXNlLXJlZ2lvbuKAmSksIHdoaWNoIGNvbnZl cnQgZXZlcnl0aGluZyBiZXR3ZWVuCnBvaW50IGFuZCBtYXJrIHRvIHRoZSBzcGVjaWZpZWQgY2Fz ZS4gIFBvaW50IGFuZCBtYXJrIGRvIG5vdCBtb3ZlLgoKICAgVGhlIHJlZ2lvbiBjYXNlIGNvbnZl cnNpb24gY29tbWFuZHMg4oCYdXBjYXNlLXJlZ2lvbuKAmSBhbmQK4oCYZG93bmNhc2UtcmVnaW9u 4oCZIGFyZSBub3JtYWxseSBkaXNhYmxlZC4gIFRoaXMgbWVhbnMgdGhhdCB0aGV5IGFzayBmb3IK Y29uZmlybWF0aW9uIGlmIHlvdSB0cnkgdG8gdXNlIHRoZW0uICBXaGVuIHlvdSBjb25maXJtLCB5 b3UgbWF5IGVuYWJsZQp0aGUgY29tbWFuZCwgd2hpY2ggbWVhbnMgaXQgd2lsbCBub3QgYXNrIGZv ciBjb25maXJtYXRpb24gYWdhaW4uICAqTm90ZQpEaXNhYmxpbmc6Oi4KCgoqKiAyNS44IFRleHQg TW9kZQoKVGV4dCBtb2RlIGlzIGEgbWFqb3IgbW9kZSBmb3IgZWRpdGluZyBmaWxlcyBvZiB0ZXh0 IGluIGEgaHVtYW4gbGFuZ3VhZ2UuCkZpbGVzIHdoaWNoIGhhdmUgbmFtZXMgZW5kaW5nIGluIHRo ZSBleHRlbnNpb24g4oCYLnR4dOKAmSBhcmUgdXN1YWxseSBvcGVuZWQKaW4gVGV4dCBtb2RlICgq bm90ZSBDaG9vc2luZyBNb2Rlczo6KS4gIFRvIGV4cGxpY2l0bHkgc3dpdGNoIHRvIFRleHQKbW9k ZSwgdHlwZSDigJhNLXggdGV4dC1tb2Rl4oCZLgoKICAgSW4gVGV4dCBtb2RlLCBvbmx5IGJsYW5r IGxpbmVzIGFuZCBwYWdlIGRlbGltaXRlcnMgc2VwYXJhdGUKcGFyYWdyYXBocy4gIEFzIGEgcmVz dWx0LCBwYXJhZ3JhcGhzIGNhbiBiZSBpbmRlbnRlZCwgYW5kIGFkYXB0aXZlCmZpbGxpbmcgZGV0 ZXJtaW5lcyB3aGF0IGluZGVudGF0aW9uIHRvIHVzZSB3aGVuIGZpbGxpbmcgYSBwYXJhZ3JhcGgu CipOb3RlIEFkYXB0aXZlIEZpbGw6Oi4KCiAgIEluIFRleHQgbW9kZSwgdGhlIDxUQUI+ICjigJhp bmRlbnQtZm9yLXRhYi1jb21tYW5k4oCZKSBjb21tYW5kIHVzdWFsbHkKaW5zZXJ0cyB3aGl0ZXNw YWNlIHVwIHRvIHRoZSBuZXh0IHRhYiBzdG9wLCBpbnN0ZWFkIG9mIGluZGVudGluZyB0aGUKY3Vy cmVudCBsaW5lLiAgKk5vdGUgSW5kZW50YXRpb246OiwgZm9yIGRldGFpbHMuCgogICBUZXh0IG1v ZGUgdHVybnMgb2ZmIHRoZSBmZWF0dXJlcyBjb25jZXJuZWQgd2l0aCBjb21tZW50cyBleGNlcHQg d2hlbgp5b3UgZXhwbGljaXRseSBpbnZva2UgdGhlbS4gIEl0IGNoYW5nZXMgdGhlIHN5bnRheCB0 YWJsZSBzbyB0aGF0CmFwb3N0cm9waGVzIGFyZSBjb25zaWRlcmVkIHBhcnQgb2Ygd29yZHMgKGUu Zy4sIOKAmGRvbid04oCZIGlzIGNvbnNpZGVyZWQKb25lIHdvcmQpLiAgSG93ZXZlciwgaWYgYSB3 b3JkIHN0YXJ0cyB3aXRoIGFuIGFwb3N0cm9waGUsIGl0IGlzIHRyZWF0ZWQKYXMgYSBwcmVmaXgg Zm9yIHRoZSBwdXJwb3NlcyBvZiBjYXBpdGFsaXphdGlvbiAoZS5nLiwg4oCYTS1j4oCZIGNvbnZl cnRzCuKAmCdoZWxsbyfigJkgaW50byDigJgnSGVsbG8n4oCZLCBhcyBleHBlY3RlZCkuCgogICBJ ZiB5b3UgaW5kZW50IHRoZSBmaXJzdCBsaW5lcyBvZiBwYXJhZ3JhcGhzLCB0aGVuIHlvdSBzaG91 bGQgdXNlClBhcmFncmFwaC1JbmRlbnQgVGV4dCBtb2RlICjigJhNLXggcGFyYWdyYXBoLWluZGVu dC10ZXh0LW1vZGXigJkpIHJhdGhlcgp0aGFuIFRleHQgbW9kZS4gIEluIHRoYXQgbW9kZSwgeW91 IGRvIG5vdCBuZWVkIHRvIGhhdmUgYmxhbmsgbGluZXMKYmV0d2VlbiBwYXJhZ3JhcGhzLCBiZWNh dXNlIHRoZSBmaXJzdC1saW5lIGluZGVudGF0aW9uIGlzIHN1ZmZpY2llbnQgdG8Kc3RhcnQgYSBw YXJhZ3JhcGg7IGhvd2V2ZXIgcGFyYWdyYXBocyBpbiB3aGljaCBldmVyeSBsaW5lIGlzIGluZGVu dGVkCmFyZSBub3Qgc3VwcG9ydGVkLiAgVXNlIOKAmE0teCBwYXJhZ3JhcGgtaW5kZW50LW1pbm9y LW1vZGXigJkgdG8gZW5hYmxlIGFuCmVxdWl2YWxlbnQgbWlub3IgbW9kZSBmb3Igc2l0dWF0aW9u cyB3aGVyZSB5b3Ugc2hvdWxkbuKAmXQgY2hhbmdlIHRoZQptYWpvciBtb2Rl4oCUaW4gbWFpbCBj b21wb3NpdGlvbiwgZm9yIGluc3RhbmNlLgoKICAgVGV4dCBtb2RlIGJpbmRzIOKAmE0tPFRBQj7i gJkgdG8g4oCYaXNwZWxsLWNvbXBsZXRlLXdvcmTigJkuICBUaGlzIGNvbW1hbmQKcGVyZm9ybXMg Y29tcGxldGlvbiBvZiB0aGUgcGFydGlhbCB3b3JkIGluIHRoZSBidWZmZXIgYmVmb3JlIHBvaW50 LAp1c2luZyB0aGUgc3BlbGxpbmcgZGljdGlvbmFyeSBhcyB0aGUgc3BhY2Ugb2YgcG9zc2libGUg d29yZHMuICAqTm90ZQpTcGVsbGluZzo6LiAgSWYgeW91ciB3aW5kb3cgbWFuYWdlciBkZWZpbmVz IOKAmE0tPFRBQj7igJkgdG8gc3dpdGNoIHdpbmRvd3MsCnlvdSBjYW4gdHlwZSDigJg8RVNDPiA8 VEFCPuKAmSBvciDigJhDLU0taeKAmSBpbnN0ZWFkLgoKICAgRW50ZXJpbmcgVGV4dCBtb2RlIHJ1 bnMgdGhlIG1vZGUgaG9vayDigJh0ZXh0LW1vZGUtaG9va+KAmSAoKm5vdGUgTWFqb3IKTW9kZXM6 OikuCgogICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGRlc2NyaWJlIHNldmVyYWwgbWFqb3IgbW9k ZXMgdGhhdCBhcmUKImRlcml2ZWQiIGZyb20gVGV4dCBtb2RlLiAgVGhlc2UgZGVyaXZhdGl2ZXMg c2hhcmUgbW9zdCBvZiB0aGUgZmVhdHVyZXMKb2YgVGV4dCBtb2RlIGRlc2NyaWJlZCBhYm92ZS4g IEluIHBhcnRpY3VsYXIsIGRlcml2YXRpdmVzIG9mIFRleHQgbW9kZQpydW4g4oCYdGV4dC1tb2Rl LWhvb2vigJkgcHJpb3IgdG8gcnVubmluZyB0aGVpciBvd24gbW9kZSBob29rcy4KCgoqKiAyNS45 IE91dGxpbmUgTW9kZQoKT3V0bGluZSBtb2RlIGlzIGEgbWFqb3IgbW9kZSBkZXJpdmVkIGZyb20g VGV4dCBtb2RlLCB3aGljaCBpcwpzcGVjaWFsaXplZCBmb3IgZWRpdGluZyBvdXRsaW5lcy4gIEl0 IHByb3ZpZGVzIGNvbW1hbmRzIHRvIG5hdmlnYXRlCmJldHdlZW4gZW50cmllcyBpbiB0aGUgb3V0 bGluZSBzdHJ1Y3R1cmUsIGFuZCBjb21tYW5kcyB0byBtYWtlIHBhcnRzIG9mCmEgYnVmZmVyIHRl bXBvcmFyaWx5IGludmlzaWJsZSwgc28gdGhhdCB0aGUgb3V0bGluZSBzdHJ1Y3R1cmUgbWF5IGJl Cm1vcmUgZWFzaWx5IHZpZXdlZC4gIFR5cGUg4oCYTS14IG91dGxpbmUtbW9kZeKAmSB0byBzd2l0 Y2ggdG8gT3V0bGluZSBtb2RlLgpFbnRlcmluZyBPdXRsaW5lIG1vZGUgcnVucyB0aGUgaG9vayDi gJh0ZXh0LW1vZGUtaG9va+KAmSBmb2xsb3dlZCBieSB0aGUKaG9vayDigJhvdXRsaW5lLW1vZGUt aG9va+KAmSAoKm5vdGUgSG9va3M6OikuCgogICBXaGVuIHlvdSB1c2UgYW4gT3V0bGluZSBtb2Rl IGNvbW1hbmQgdG8gbWFrZSBhIGxpbmUgaW52aXNpYmxlICgqbm90ZQpPdXRsaW5lIFZpc2liaWxp dHk6OiksIHRoZSBsaW5lIGRpc2FwcGVhcnMgZnJvbSB0aGUgc2NyZWVuLiAgQW4gZWxsaXBzaXMK KHRocmVlIHBlcmlvZHMgaW4gYSByb3cpIGlzIGRpc3BsYXllZCBhdCB0aGUgZW5kIG9mIHRoZSBw cmV2aW91cyB2aXNpYmxlCmxpbmUsIHRvIGluZGljYXRlIHRoZSBoaWRkZW4gdGV4dC4gIE11bHRp cGxlIGNvbnNlY3V0aXZlIGludmlzaWJsZSBsaW5lcwpwcm9kdWNlIGp1c3Qgb25lIGVsbGlwc2lz LgoKICAgRWRpdGluZyBjb21tYW5kcyB0aGF0IG9wZXJhdGUgb24gbGluZXMsIHN1Y2ggYXMg4oCY Qy1u4oCZIGFuZCDigJhDLXDigJksCnRyZWF0IHRoZSB0ZXh0IG9mIHRoZSBpbnZpc2libGUgbGlu ZSBhcyBwYXJ0IG9mIHRoZSBwcmV2aW91cyB2aXNpYmxlCmxpbmUuICBLaWxsaW5nIHRoZSBlbGxp cHNpcyBhdCB0aGUgZW5kIG9mIGEgdmlzaWJsZSBsaW5lIHJlYWxseSBraWxscwphbGwgdGhlIGZv bGxvd2luZyBpbnZpc2libGUgdGV4dCBhc3NvY2lhdGVkIHdpdGggdGhlIGVsbGlwc2lzLgoKICAg T3V0bGluZSBtaW5vciBtb2RlIGlzIGEgYnVmZmVyLWxvY2FsIG1pbm9yIG1vZGUgd2hpY2ggcHJv dmlkZXMgdGhlCnNhbWUgY29tbWFuZHMgYXMgdGhlIG1ham9yIG1vZGUsIE91dGxpbmUgbW9kZSwg YnV0IGNhbiBiZSB1c2VkIGluCmNvbmp1bmN0aW9uIHdpdGggb3RoZXIgbWFqb3IgbW9kZXMuICBZ b3UgY2FuIHR5cGUg4oCYTS14Cm91dGxpbmUtbWlub3ItbW9kZeKAmSB0byB0b2dnbGUgT3V0bGlu ZSBtaW5vciBtb2RlIGluIHRoZSBjdXJyZW50IGJ1ZmZlciwKb3IgdXNlIGEgZmlsZS1sb2NhbCB2 YXJpYWJsZSBzZXR0aW5nIHRvIGVuYWJsZSBpdCBpbiBhIHNwZWNpZmljIGZpbGUKKCpub3RlIEZp bGUgVmFyaWFibGVzOjopLgoKICAgVGhlIG1ham9yIG1vZGUsIE91dGxpbmUgbW9kZSwgcHJvdmlk ZXMgc3BlY2lhbCBrZXkgYmluZGluZ3Mgb24gdGhlCuKAmEMtY+KAmSBwcmVmaXguICBPdXRsaW5l IG1pbm9yIG1vZGUgcHJvdmlkZXMgc2ltaWxhciBiaW5kaW5ncyB3aXRoIOKAmEMtYyBA4oCZCmFz IHRoZSBwcmVmaXg7IHRoaXMgaXMgdG8gcmVkdWNlIHRoZSBjb25mbGljdHMgd2l0aCB0aGUgbWFq b3IgbW9kZeKAmXMKc3BlY2lhbCBjb21tYW5kcy4gIChUaGUgdmFyaWFibGUg4oCYb3V0bGluZS1t aW5vci1tb2RlLXByZWZpeOKAmSBjb250cm9scwp0aGUgcHJlZml4IHVzZWQuKQoKKyBNZW51OgoK ICAtIE91dGxpbmUgRm9ybWF0OjogICAgICBXaGF0IHRoZSB0ZXh0IG9mIGFuIG91dGxpbmUgbG9v a3MgbGlrZS4KICAtIE91dGxpbmUgTW90aW9uOjogICAgICBTcGVjaWFsIGNvbW1hbmRzIGZvciBt b3ZpbmcgdGhyb3VnaCBvdXRsaW5lcy4KICAtIE91dGxpbmUgVmlzaWJpbGl0eTo6ICBDb21tYW5k cyB0byBjb250cm9sIHdoYXQgaXMgdmlzaWJsZS4KICAtIE91dGxpbmUgVmlld3M6OiAgICAgICBP dXRsaW5lcyBhbmQgbXVsdGlwbGUgdmlld3MuCiAgLSBGb2xkb3V0OjogICAgICAgICAgICAgRm9s ZGluZyBtZWFucyB6b29taW5nIGluIG9uIG91dGxpbmVzLgoKCioqKiAyNS45LjEgRm9ybWF0IG9m IE91dGxpbmVzCgpPdXRsaW5lIG1vZGUgYXNzdW1lcyB0aGF0IHRoZSBsaW5lcyBpbiB0aGUgYnVm ZmVyIGFyZSBvZiB0d28gdHlwZXM6CiJoZWFkaW5nIGxpbmVzIiBhbmQgImJvZHkgbGluZXMiLiAg QSBoZWFkaW5nIGxpbmUgcmVwcmVzZW50cyBhIHRvcGljIGluCnRoZSBvdXRsaW5lLiAgSGVhZGlu ZyBsaW5lcyBzdGFydCB3aXRoIG9uZSBvciBtb3JlIGFzdGVyaXNrICjigJgq4oCZKQpjaGFyYWN0 ZXJzOyB0aGUgbnVtYmVyIG9mIGFzdGVyaXNrcyBkZXRlcm1pbmVzIHRoZSBkZXB0aCBvZiB0aGUg aGVhZGluZwppbiB0aGUgb3V0bGluZSBzdHJ1Y3R1cmUuICBUaHVzLCBhIGhlYWRpbmcgbGluZSB3 aXRoIG9uZSDigJgq4oCZIGlzIGEgbWFqb3IKdG9waWM7IGFsbCB0aGUgaGVhZGluZyBsaW5lcyB3 aXRoIHR3byDigJgq4oCZcyBiZXR3ZWVuIGl0IGFuZCB0aGUgbmV4dApvbmUt4oCYKuKAmSBoZWFk aW5nIGFyZSBpdHMgc3VidG9waWNzOyBhbmQgc28gb24uICBBbnkgbGluZSB0aGF0IGlzIG5vdCBh CmhlYWRpbmcgbGluZSBpcyBhIGJvZHkgbGluZS4gIEJvZHkgbGluZXMgYmVsb25nIHdpdGggdGhl IHByZWNlZGluZwpoZWFkaW5nIGxpbmUuICBIZXJlIGlzIGFuIGV4YW1wbGU6CgogICAgICogRm9v ZAogICAgIFRoaXMgaXMgdGhlIGJvZHksCiAgICAgd2hpY2ggc2F5cyBzb21ldGhpbmcgYWJvdXQg dGhlIHRvcGljIG9mIGZvb2QuCgogICAgICoqIERlbGljaW91cyBGb29kCiAgICAgVGhpcyBpcyB0 aGUgYm9keSBvZiB0aGUgc2Vjb25kLWxldmVsIGhlYWRlci4KCiAgICAgKiogRGlzdGFzdGVmdWwg Rm9vZAogICAgIFRoaXMgY291bGQgaGF2ZQogICAgIGEgYm9keSB0b28sIHdpdGgKICAgICBzZXZl cmFsIGxpbmVzLgoKICAgICAqKiogRG9ybWl0b3J5IEZvb2QKCiAgICAgKiBTaGVsdGVyCiAgICAg QW5vdGhlciBmaXJzdC1sZXZlbCB0b3BpYyB3aXRoIGl0cyBoZWFkZXIgbGluZS4KCiAgIEEgaGVh ZGluZyBsaW5lIHRvZ2V0aGVyIHdpdGggYWxsIGZvbGxvd2luZyBib2R5IGxpbmVzIGlzIGNhbGxl ZApjb2xsZWN0aXZlbHkgYW4gImVudHJ5Ii4gIEEgaGVhZGluZyBsaW5lIHRvZ2V0aGVyIHdpdGgg YWxsIGZvbGxvd2luZwpkZWVwZXIgaGVhZGluZyBsaW5lcyBhbmQgdGhlaXIgYm9keSBsaW5lcyBp cyBjYWxsZWQgYSAic3VidHJlZSIuCgogICBZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgY3JpdGVyaW9u IGZvciBkaXN0aW5ndWlzaGluZyBoZWFkaW5nIGxpbmVzIGJ5CnNldHRpbmcgdGhlIHZhcmlhYmxl IOKAmG91dGxpbmUtcmVnZXhw4oCZLiAgKFRoZSByZWNvbW1lbmRlZCB3YXlzIHRvIGRvIHRoaXMK YXJlIGluIGEgbWFqb3IgbW9kZSBmdW5jdGlvbiBvciB3aXRoIGEgZmlsZSBsb2NhbCB2YXJpYWJs ZS4pICBBbnkgbGluZQp3aG9zZSBiZWdpbm5pbmcgaGFzIGEgbWF0Y2ggZm9yIHRoaXMgcmVnZXhw IGlzIGNvbnNpZGVyZWQgYSBoZWFkaW5nCmxpbmUuICBNYXRjaGVzIHRoYXQgc3RhcnQgd2l0aGlu IGEgbGluZSAobm90IGF0IHRoZSBsZWZ0IG1hcmdpbikgZG8gbm90CmNvdW50LgoKICAgVGhlIGxl bmd0aCBvZiB0aGUgbWF0Y2hpbmcgdGV4dCBkZXRlcm1pbmVzIHRoZSBsZXZlbCBvZiB0aGUgaGVh ZGluZzsKbG9uZ2VyIG1hdGNoZXMgbWFrZSBhIG1vcmUgZGVlcGx5IG5lc3RlZCBsZXZlbC4gIFRo dXMsIGZvciBleGFtcGxlLCBpZiBhCnRleHQgZm9ybWF0dGVyIGhhcyBjb21tYW5kcyDigJhAY2hh cHRlcuKAmSwg4oCYQHNlY3Rpb27igJkgYW5kIOKAmEBzdWJzZWN0aW9u4oCZIHRvCmRpdmlkZSB0 aGUgZG9jdW1lbnQgaW50byBjaGFwdGVycyBhbmQgc2VjdGlvbnMsIHlvdSBjb3VsZCBtYWtlIHRo b3NlCmxpbmVzIGNvdW50IGFzIGhlYWRpbmcgbGluZXMgYnkgc2V0dGluZyDigJhvdXRsaW5lLXJl Z2V4cOKAmSB0bwrigJgiQGNoYXBcXHxAXFwoc3ViXFwpKnNlY3Rpb24i4oCZLiAgTm90ZSB0aGUg dHJpY2s6IHRoZSB0d28gd29yZHMg4oCYY2hhcHRlcuKAmQphbmQg4oCYc2VjdGlvbuKAmSBhcmUg ZXF1YWxseSBsb25nLCBidXQgYnkgZGVmaW5pbmcgdGhlIHJlZ2V4cCB0byBtYXRjaCBvbmx5CuKA mGNoYXDigJkgd2UgZW5zdXJlIHRoYXQgdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCBtYXRjaGVkIG9u IGEgY2hhcHRlcgpoZWFkaW5nIGlzIHNob3J0ZXIsIHNvIHRoYXQgT3V0bGluZSBtb2RlIHdpbGwg a25vdyB0aGF0IHNlY3Rpb25zIGFyZQpjb250YWluZWQgaW4gY2hhcHRlcnMuICBUaGlzIHdvcmtz IGFzIGxvbmcgYXMgbm8gb3RoZXIgY29tbWFuZCBzdGFydHMKd2l0aCDigJhAY2hhcOKAmS4KCiAg IFlvdSBjYW4gZXhwbGljaXRseSBzcGVjaWZ5IGEgcnVsZSBmb3IgY2FsY3VsYXRpbmcgdGhlIGxl dmVsIG9mIGEKaGVhZGluZyBsaW5lIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlIOKAmG91dGxpbmUt bGV2ZWzigJkuICBUaGUgdmFsdWUgb2YK4oCYb3V0bGluZS1sZXZlbOKAmSBzaG91bGQgYmUgYSBm dW5jdGlvbiB0aGF0IHRha2VzIG5vIGFyZ3VtZW50cyBhbmQgcmV0dXJucwp0aGUgbGV2ZWwgb2Yg dGhlIGN1cnJlbnQgaGVhZGluZy4gIFRoZSByZWNvbW1lbmRlZCB3YXlzIHRvIHNldCB0aGlzCnZh cmlhYmxlIGFyZSBpbiBhIG1ham9yIG1vZGUgY29tbWFuZCBvciB3aXRoIGEgZmlsZSBsb2NhbCB2 YXJpYWJsZS4KCgoqKiogMjUuOS4yIE91dGxpbmUgTW90aW9uIENvbW1hbmRzCgpPdXRsaW5lIG1v ZGUgcHJvdmlkZXMgc3BlY2lhbCBtb3Rpb24gY29tbWFuZHMgdGhhdCBtb3ZlIGJhY2t3YXJkIGFu ZApmb3J3YXJkIHRvIGhlYWRpbmcgbGluZXMuCgrigJhDLWMgQy1u4oCZCiAgICAgTW92ZSBwb2lu dCB0byB0aGUgbmV4dCB2aXNpYmxlIGhlYWRpbmcgbGluZQogICAgICjigJhvdXRsaW5lLW5leHQt dmlzaWJsZS1oZWFkaW5n4oCZKS4K4oCYQy1jIEMtcOKAmQogICAgIE1vdmUgcG9pbnQgdG8gdGhl IHByZXZpb3VzIHZpc2libGUgaGVhZGluZyBsaW5lCiAgICAgKOKAmG91dGxpbmUtcHJldmlvdXMt dmlzaWJsZS1oZWFkaW5n4oCZKS4K4oCYQy1jIEMtZuKAmQogICAgIE1vdmUgcG9pbnQgdG8gdGhl IG5leHQgdmlzaWJsZSBoZWFkaW5nIGxpbmUgYXQgdGhlIHNhbWUgbGV2ZWwgYXMKICAgICB0aGUg b25lIHBvaW50IGlzIG9uICjigJhvdXRsaW5lLWZvcndhcmQtc2FtZS1sZXZlbOKAmSkuCuKAmEMt YyBDLWLigJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBwcmV2aW91cyB2aXNpYmxlIGhlYWRpbmcg bGluZSBhdCB0aGUgc2FtZSBsZXZlbAogICAgICjigJhvdXRsaW5lLWJhY2t3YXJkLXNhbWUtbGV2 ZWzigJkpLgrigJhDLWMgQy114oCZCiAgICAgTW92ZSBwb2ludCB1cCB0byBhIGxvd2VyLWxldmVs IChtb3JlIGluY2x1c2l2ZSkgdmlzaWJsZSBoZWFkaW5nCiAgICAgbGluZSAo4oCYb3V0bGluZS11 cC1oZWFkaW5n4oCZKS4KCiAgIEFsbCBvZiB0aGUgYWJvdmUgY29tbWFuZHMgYWNjZXB0IG51bWVy aWMgYXJndW1lbnRzIGFzIHJlcGVhdCBjb3VudHMuCkZvciBleGFtcGxlLCDigJhDLWMgQy1m4oCZ LCB3aGVuIGdpdmVuIGFuIGFyZ3VtZW50LCBtb3ZlcyBmb3J3YXJkIHRoYXQgbWFueQp2aXNpYmxl IGhlYWRpbmcgbGluZXMgb24gdGhlIHNhbWUgbGV2ZWwsIGFuZCDigJhDLWMgQy114oCZIHdpdGgg YW4gYXJndW1lbnQKbW92ZXMgb3V0IG9mIHRoYXQgbWFueSBuZXN0ZWQgbGV2ZWxzLgoKCioqKiAy NS45LjMgT3V0bGluZSBWaXNpYmlsaXR5IENvbW1hbmRzCgpPdXRsaW5lIG1vZGUgcHJvdmlkZXMg c2V2ZXJhbCBjb21tYW5kcyBmb3IgdGVtcG9yYXJpbHkgaGlkaW5nIG9yCnJldmVhbGluZyBwYXJ0 cyBvZiB0aGUgYnVmZmVyLCBiYXNlZCBvbiB0aGUgb3V0bGluZSBzdHJ1Y3R1cmUuICBUaGVzZQpj b21tYW5kcyBhcmUgbm90IHVuZG9hYmxlOyB0aGVpciBlZmZlY3RzIGFyZSBzaW1wbHkgbm90IHJl Y29yZGVkIGJ5IHRoZQp1bmRvIG1lY2hhbmlzbSwgc28geW91IGNhbiB1bmRvIHJpZ2h0IHBhc3Qg dGhlbSAoKm5vdGUgVW5kbzo6KS4KCiAgIE1hbnkgb2YgdGhlc2UgY29tbWFuZHMgYWN0IG9uIHRo ZSBjdXJyZW50IGhlYWRpbmcgbGluZS4gIElmIHBvaW50IGlzCm9uIGEgaGVhZGluZyBsaW5lLCB0 aGF0IGlzIHRoZSBjdXJyZW50IGhlYWRpbmcgbGluZTsgaWYgcG9pbnQgaXMgb24gYQpib2R5IGxp bmUsIHRoZSBjdXJyZW50IGhlYWRpbmcgbGluZSBpcyB0aGUgbmVhcmVzdCBwcmVjZWRpbmcgaGVh ZGVyCmxpbmUuCgrigJhDLWMgQy1j4oCZCiAgICAgTWFrZSB0aGUgY3VycmVudCBoZWFkaW5nIGxp bmXigJlzIGJvZHkgaW52aXNpYmxlCiAgICAgKOKAmG91dGxpbmUtaGlkZS1lbnRyeeKAmSkuCuKA mEMtYyBDLWXigJkKICAgICBNYWtlIHRoZSBjdXJyZW50IGhlYWRpbmcgbGluZeKAmXMgYm9keSB2 aXNpYmxlCiAgICAgKOKAmG91dGxpbmUtc2hvdy1lbnRyeeKAmSkuCuKAmEMtYyBDLWTigJkKICAg ICBNYWtlIGV2ZXJ5dGhpbmcgdW5kZXIgdGhlIGN1cnJlbnQgaGVhZGluZyBpbnZpc2libGUsIG5v dCBpbmNsdWRpbmcKICAgICB0aGUgaGVhZGluZyBpdHNlbGYgKOKAmG91dGxpbmUtaGlkZS1zdWJ0 cmVl4oCZKS4K4oCYQy1jIEMtc+KAmQogICAgIE1ha2UgZXZlcnl0aGluZyB1bmRlciB0aGUgY3Vy cmVudCBoZWFkaW5nIHZpc2libGUsIGluY2x1ZGluZyBib2R5LAogICAgIHN1YmhlYWRpbmdzLCBh bmQgdGhlaXIgYm9kaWVzICjigJhvdXRsaW5lLXNob3ctc3VidHJlZeKAmSkuCuKAmEMtYyBDLWzi gJkKICAgICBNYWtlIHRoZSBib2R5IG9mIHRoZSBjdXJyZW50IGhlYWRpbmcgbGluZSwgYW5kIG9m IGFsbCBpdHMKICAgICBzdWJoZWFkaW5ncywgaW52aXNpYmxlICjigJhvdXRsaW5lLWhpZGUtbGVh dmVz4oCZKS4K4oCYQy1jIEMta+KAmQogICAgIE1ha2UgYWxsIHN1YmhlYWRpbmdzIG9mIHRoZSBj dXJyZW50IGhlYWRpbmcgbGluZSwgYXQgYWxsIGxldmVscywKICAgICB2aXNpYmxlICjigJhvdXRs aW5lLXNob3ctYnJhbmNoZXPigJkpLgrigJhDLWMgQy1p4oCZCiAgICAgTWFrZSBpbW1lZGlhdGUg c3ViaGVhZGluZ3MgKG9uZSBsZXZlbCBkb3duKSBvZiB0aGUgY3VycmVudCBoZWFkaW5nCiAgICAg bGluZSB2aXNpYmxlICjigJhvdXRsaW5lLXNob3ctY2hpbGRyZW7igJkpLgrigJhDLWMgQy104oCZ CiAgICAgTWFrZSBhbGwgYm9keSBsaW5lcyBpbiB0aGUgYnVmZmVyIGludmlzaWJsZSAo4oCYb3V0 bGluZS1oaWRlLWJvZHnigJkpLgrigJhDLWMgQy1h4oCZCiAgICAgTWFrZSBhbGwgbGluZXMgaW4g dGhlIGJ1ZmZlciB2aXNpYmxlICjigJhvdXRsaW5lLXNob3ctYWxs4oCZKS4K4oCYQy1jIEMtceKA mQogICAgIEhpZGUgZXZlcnl0aGluZyBleGNlcHQgdGhlIHRvcCBOIGxldmVscyBvZiBoZWFkaW5n IGxpbmVzCiAgICAgKOKAmG91dGxpbmUtaGlkZS1zdWJsZXZlbHPigJkpLgrigJhDLWMgQy1v4oCZ CiAgICAgSGlkZSBldmVyeXRoaW5nIGV4Y2VwdCBmb3IgdGhlIGhlYWRpbmcgb3IgYm9keSB0aGF0 IHBvaW50IGlzIGluLAogICAgIHBsdXMgdGhlIGhlYWRpbmdzIGxlYWRpbmcgdXAgZnJvbSB0aGVy ZSB0byB0aGUgdG9wIGxldmVsIG9mIHRoZQogICAgIG91dGxpbmUgKOKAmG91dGxpbmUtaGlkZS1v dGhlcuKAmSkuCgogICBUaGUgc2ltcGxlc3Qgb2YgdGhlc2UgY29tbWFuZHMgYXJlIOKAmEMtYyBD LWPigJkgKOKAmG91dGxpbmUtaGlkZS1lbnRyeeKAmSksCndoaWNoIGhpZGVzIHRoZSBib2R5IGxp bmVzIGRpcmVjdGx5IGZvbGxvd2luZyB0aGUgY3VycmVudCBoZWFkaW5nIGxpbmUsCmFuZCDigJhD LWMgQy1l4oCZICjigJhvdXRsaW5lLXNob3ctZW50cnnigJkpLCB3aGljaCByZXZlYWxzIHRoZW0u ICBTdWJoZWFkaW5ncwphbmQgdGhlaXIgYm9kaWVzIGFyZSBub3QgYWZmZWN0ZWQuCgogICBUaGUg Y29tbWFuZHMg4oCYQy1jIEMtZOKAmSAo4oCYb3V0bGluZS1oaWRlLXN1YnRyZWXigJkpIGFuZCDi gJhDLWMgQy1z4oCZCijigJhvdXRsaW5lLXNob3ctc3VidHJlZeKAmSkgYXJlIG1vcmUgcG93ZXJm dWwuICBUaGV5IGFwcGx5IHRvIHRoZSBjdXJyZW50CmhlYWRpbmcgbGluZeKAmXMgInN1YnRyZWUi OiBpdHMgYm9keSwgYWxsIG9mIGl0cyBzdWJoZWFkaW5ncywgYm90aCBkaXJlY3QKYW5kIGluZGly ZWN0LCBhbmQgYWxsIG9mIHRoZWlyIGJvZGllcy4KCiAgIFRoZSBjb21tYW5kIOKAmEMtYyBDLWzi gJkgKOKAmG91dGxpbmUtaGlkZS1sZWF2ZXPigJkpIGhpZGVzIHRoZSBib2R5IG9mIHRoZQpjdXJy ZW50IGhlYWRpbmcgbGluZSBhcyB3ZWxsIGFzIGFsbCB0aGUgYm9kaWVzIGluIGl0cyBzdWJ0cmVl OyB0aGUKc3ViaGVhZGluZ3MgdGhlbXNlbHZlcyBhcmUgbGVmdCB2aXNpYmxlLiAgVGhlIGNvbW1h bmQg4oCYQy1jIEMta+KAmQoo4oCYb3V0bGluZS1zaG93LWJyYW5jaGVz4oCZKSByZXZlYWxzIHRo ZSBzdWJoZWFkaW5ncywgaWYgdGhleSBoYWQKcHJldmlvdXNseSBiZWVuIGhpZGRlbiAoZS5nLiwg Ynkg4oCYQy1jIEMtZOKAmSkuICBUaGUgY29tbWFuZCDigJhDLWMgQy1p4oCZCijigJhvdXRsaW5l LXNob3ctY2hpbGRyZW7igJkpIGlzIGEgd2Vha2VyIHZlcnNpb24gb2YgdGhpczsgaXQgcmV2ZWFs cyBqdXN0CnRoZSBkaXJlY3Qgc3ViaGVhZGluZ3MsIGkuZS4sIHRob3NlIG9uZSBsZXZlbCBkb3du LgoKICAgVGhlIGNvbW1hbmQg4oCYQy1jIEMtb+KAmSAo4oCYb3V0bGluZS1oaWRlLW90aGVy4oCZ KSBoaWRlcyBldmVyeXRoaW5nIGV4Y2VwdAp0aGUgZW50cnkgdGhhdCBwb2ludCBpcyBpbiwgcGx1 cyBpdHMgcGFyZW50cyAodGhlIGhlYWRlcnMgbGVhZGluZyB1cApmcm9tIHRoZXJlIHRvIHRvcCBs ZXZlbCBpbiB0aGUgb3V0bGluZSkgYW5kIHRoZSB0b3AgbGV2ZWwgaGVhZGluZ3MuICBJdAphbHNv IHJldmVhbHMgYm9keSBsaW5lcyBwcmVjZWRpbmcgdGhlIGZpcnN0IGhlYWRpbmcgaW4gdGhlIGJ1 ZmZlci4KCiAgIFRoZSByZW1haW5pbmcgY29tbWFuZHMgYWZmZWN0IHRoZSB3aG9sZSBidWZmZXIu ICDigJhDLWMgQy104oCZCijigJhvdXRsaW5lLWhpZGUtYm9keeKAmSkgbWFrZXMgYWxsIGJvZHkg bGluZXMgaW52aXNpYmxlLCBzbyB0aGF0IHlvdSBzZWUKanVzdCB0aGUgb3V0bGluZSBzdHJ1Y3R1 cmUgKGFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGl0IHdpbGwgbm90IGhpZGUKbGluZXMgYXQgdGhl IHRvcCBvZiB0aGUgZmlsZSwgcHJlY2VkaW5nIHRoZSBmaXJzdCBoZWFkZXIgbGluZSwgZXZlbgp0 aG91Z2ggdGhlc2UgYXJlIHRlY2huaWNhbGx5IGJvZHkgbGluZXMpLiAg4oCYQy1jIEMtYeKAmQoo 4oCYb3V0bGluZS1zaG93LWFsbOKAmSkgbWFrZXMgYWxsIGxpbmVzIHZpc2libGUuICDigJhDLWMg Qy1x4oCZCijigJhvdXRsaW5lLWhpZGUtc3VibGV2ZWxz4oCZKSBoaWRlcyBhbGwgYnV0IHRoZSB0 b3AgbGV2ZWwgaGVhZGluZ3MgYXQgYW5kCmFib3ZlIHRoZSBsZXZlbCBvZiB0aGUgY3VycmVudCBo ZWFkaW5nIGxpbmUgKGRlZmF1bHRpbmcgdG8gMSBpZiBwb2ludCBpcwpub3Qgb24gYSBoZWFkaW5n KTsgd2l0aCBhIG51bWVyaWMgYXJndW1lbnQgTiwgaXQgaGlkZXMgZXZlcnl0aGluZyBleGNlcHQK dGhlIHRvcCBOIGxldmVscyBvZiBoZWFkaW5nIGxpbmVzLiAgTm90ZSB0aGF0IGl0IGNvbXBsZXRl bHkgcmV2ZWFscyBhbGwKdGhlIE4gdG9wIGxldmVscyBhbmQgdGhlIGJvZHkgbGluZXMgYmVmb3Jl IHRoZSBmaXJzdCBoZWFkaW5nLgoKICAgV2hlbiBpbmNyZW1lbnRhbCBzZWFyY2ggZmluZHMgdGV4 dCB0aGF0IGlzIGhpZGRlbiBieSBPdXRsaW5lIG1vZGUsIGl0Cm1ha2VzIHRoYXQgcGFydCBvZiB0 aGUgYnVmZmVyIHZpc2libGUuICBJZiB5b3UgZXhpdCB0aGUgc2VhcmNoIGF0IHRoYXQKcG9zaXRp b24sIHRoZSB0ZXh0IHJlbWFpbnMgdmlzaWJsZS4gIFRvIHRvZ2dsZSB3aGV0aGVyIG9yIG5vdCBh biBhY3RpdmUKaW5jcmVtZW50YWwgc2VhcmNoIGNhbiBtYXRjaCBoaWRkZW4gdGV4dCwgdHlwZSDi gJhNLXMgaeKAmS4gIFRvIGNoYW5nZSB0aGUKZGVmYXVsdCBmb3IgZnV0dXJlIHNlYXJjaGVzLCBj dXN0b21pemUgdGhlIG9wdGlvbiDigJhzZWFyY2gtaW52aXNpYmxl4oCZLgooVGhpcyBvcHRpb24g YWxzbyBhZmZlY3RzIGhvdyDigJhxdWVyeS1yZXBsYWNl4oCZIGFuZCByZWxhdGVkIGZ1bmN0aW9u cwp0cmVhdCBoaWRkZW4gdGV4dCwgKm5vdGUgUXVlcnkgUmVwbGFjZTo6LikgIFlvdSBjYW4gYWxz byBhdXRvbWF0aWNhbGx5Cm1ha2UgdGV4dCB2aXNpYmxlIGFzIHlvdSBuYXZpZ2F0ZSBpbiBpdCBi eSB1c2luZyBSZXZlYWwgbW9kZSAo4oCYTS14CnJldmVhbC1tb2Rl4oCZKSwgYSBidWZmZXItbG9j YWwgbWlub3IgbW9kZS4KCgoqKiogMjUuOS40IFZpZXdpbmcgT25lIE91dGxpbmUgaW4gTXVsdGlw bGUgVmlld3MKCllvdSBjYW4gZGlzcGxheSB0d28gdmlld3Mgb2YgYSBzaW5nbGUgb3V0bGluZSBh dCB0aGUgc2FtZSB0aW1lLCBpbgpkaWZmZXJlbnQgd2luZG93cy4gIFRvIGRvIHRoaXMsIHlvdSBt dXN0IGNyZWF0ZSBhbiBpbmRpcmVjdCBidWZmZXIgdXNpbmcK4oCYTS14IG1ha2UtaW5kaXJlY3Qt YnVmZmVy4oCZLiAgVGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUKZXhp c3Rpbmcgb3V0bGluZSBidWZmZXIgbmFtZSwgYW5kIGl0cyBzZWNvbmQgYXJndW1lbnQgaXMgdGhl IG5hbWUgdG8gdXNlCmZvciB0aGUgbmV3IGluZGlyZWN0IGJ1ZmZlci4gICpOb3RlIEluZGlyZWN0 IEJ1ZmZlcnM6Oi4KCiAgIE9uY2UgdGhlIGluZGlyZWN0IGJ1ZmZlciBleGlzdHMsIHlvdSBjYW4g ZGlzcGxheSBpdCBpbiBhIHdpbmRvdyBpbgp0aGUgbm9ybWFsIGZhc2hpb24sIHdpdGgg4oCYQy14 IDQgYuKAmSBvciBvdGhlciBFbWFjcyBjb21tYW5kcy4gIFRoZSBPdXRsaW5lCm1vZGUgY29tbWFu ZHMgdG8gc2hvdyBhbmQgaGlkZSBwYXJ0cyBvZiB0aGUgdGV4dCBvcGVyYXRlIG9uIGVhY2ggYnVm ZmVyCmluZGVwZW5kZW50bHk7IGFzIGEgcmVzdWx0LCBlYWNoIGJ1ZmZlciBjYW4gaGF2ZSBpdHMg b3duIHZpZXcuICBJZiB5b3UKd2FudCBtb3JlIHRoYW4gdHdvIHZpZXdzIG9uIHRoZSBzYW1lIG91 dGxpbmUsIGNyZWF0ZSBhZGRpdGlvbmFsIGluZGlyZWN0CmJ1ZmZlcnMuCgoKKioqIDI1LjkuNSBG b2xkaW5nIEVkaXRpbmcKClRoZSBGb2xkb3V0IHBhY2thZ2UgZXh0ZW5kcyBPdXRsaW5lIG1vZGUg YW5kIE91dGxpbmUgbWlub3IgbW9kZSB3aXRoCmZvbGRpbmcgY29tbWFuZHMuICBUaGUgaWRlYSBv ZiBmb2xkaW5nIGlzIHRoYXQgeW91IHpvb20gaW4gb24gYSBuZXN0ZWQKcG9ydGlvbiBvZiB0aGUg b3V0bGluZSwgd2hpbGUgaGlkaW5nIGl0cyByZWxhdGl2ZXMgYXQgaGlnaGVyIGxldmVscy4KCiAg IENvbnNpZGVyIGFuIE91dGxpbmUgbW9kZSBidWZmZXIgd2l0aCBhbGwgdGhlIHRleHQgYW5kIHN1 YmhlYWRpbmdzCnVuZGVyIGxldmVsLTEgaGVhZGluZ3MgaGlkZGVuLiAgVG8gbG9vayBhdCB3aGF0 IGlzIGhpZGRlbiB1bmRlciBvbmUgb2YKdGhlc2UgaGVhZGluZ3MsIHlvdSBjb3VsZCB1c2Ug4oCY Qy1jIEMtZeKAmSAo4oCYTS14IG91dGxpbmUtc2hvdy1lbnRyeeKAmSkgdG8KZXhwb3NlIHRoZSBi b2R5LCBvciDigJhDLWMgQy1p4oCZIHRvIGV4cG9zZSB0aGUgY2hpbGQgKGxldmVsLTIpIGhlYWRp bmdzLgoKICAgV2l0aCBGb2xkb3V0LCB5b3UgdXNlIOKAmEMtYyBDLXrigJkgKOKAmE0teCBmb2xk b3V0LXpvb20tc3VidHJlZeKAmSkuICBUaGlzCmV4cG9zZXMgdGhlIGJvZHkgYW5kIGNoaWxkIHN1 YmhlYWRpbmdzLCBhbmQgbmFycm93cyB0aGUgYnVmZmVyIHNvIHRoYXQKb25seSB0aGUgbGV2ZWwt MSBoZWFkaW5nLCB0aGUgYm9keSBhbmQgdGhlIGxldmVsLTIgaGVhZGluZ3MgYXJlIHZpc2libGUu Ck5vdyB0byBsb29rIHVuZGVyIG9uZSBvZiB0aGUgbGV2ZWwtMiBoZWFkaW5ncywgcG9zaXRpb24g dGhlIGN1cnNvciBvbiBpdAphbmQgdXNlIOKAmEMtYyBDLXrigJkgYWdhaW4uICBUaGlzIGV4cG9z ZXMgdGhlIGxldmVsLTIgYm9keSBhbmQgaXRzIGxldmVsLTMKY2hpbGQgc3ViaGVhZGluZ3MgYW5k IG5hcnJvd3MgdGhlIGJ1ZmZlciBhZ2Fpbi4gIFpvb21pbmcgaW4gb24Kc3VjY2Vzc2l2ZSBzdWJo ZWFkaW5ncyBjYW4gYmUgZG9uZSBhcyBtdWNoIGFzIHlvdSBsaWtlLiAgQSBzdHJpbmcgaW4gdGhl Cm1vZGUgbGluZSBzaG93cyBob3cgZGVlcCB5b3XigJl2ZSBnb25lLgoKICAgV2hlbiB6b29taW5n IGluIG9uIGEgaGVhZGluZywgdG8gc2VlIG9ubHkgdGhlIGNoaWxkIHN1YmhlYWRpbmdzCnNwZWNp ZnkgYSBudW1lcmljIGFyZ3VtZW50OiDigJhDLXUgQy1jIEMteuKAmS4gIFRoZSBudW1iZXIgb2Yg bGV2ZWxzIG9mCmNoaWxkcmVuIGNhbiBiZSBzcGVjaWZpZWQgdG9vIChjb21wYXJlIOKAmE0teCBv dXRsaW5lLXNob3ctY2hpbGRyZW7igJkpLAplLmcuLCDigJhNLTIgQy1jIEMteuKAmSBleHBvc2Vz IHR3byBsZXZlbHMgb2YgY2hpbGQgc3ViaGVhZGluZ3MuCkFsdGVybmF0aXZlbHksIHRoZSBib2R5 IGNhbiBiZSBzcGVjaWZpZWQgd2l0aCBhIG5lZ2F0aXZlIGFyZ3VtZW50OgrigJhNLS0gQy1jIEMt euKAmS4gIFRoZSB3aG9sZSBzdWJ0cmVlIGNhbiBiZSBleHBhbmRlZCwgc2ltaWxhcmx5IHRvIOKA mEMtYwpDLXPigJkgKOKAmE0teCBvdXRsaW5lLXNob3ctc3VidHJlZeKAmSksIGJ5IHNwZWNpZnlp bmcgYSB6ZXJvIGFyZ3VtZW50OgrigJhNLTAgQy1jIEMteuKAmS4KCiAgIFdoaWxlIHlvdeKAmXJl IHpvb21lZCBpbiwgeW91IGNhbiBzdGlsbCB1c2UgT3V0bGluZSBtb2Rl4oCZcyBleHBvc3VyZSBh bmQKaGlkaW5nIGZ1bmN0aW9ucyB3aXRob3V0IGRpc3R1cmJpbmcgRm9sZG91dC4gIEFsc28sIHNp bmNlIHRoZSBidWZmZXIgaXMKbmFycm93ZWQsIGdsb2JhbCBlZGl0aW5nIGFjdGlvbnMgd2lsbCBv bmx5IGFmZmVjdCB0ZXh0IHVuZGVyIHRoZQp6b29tZWQtaW4gaGVhZGluZy4gIFRoaXMgaXMgdXNl ZnVsIGZvciByZXN0cmljdGluZyBjaGFuZ2VzIHRvIGEKcGFydGljdWxhciBjaGFwdGVyIG9yIHNl Y3Rpb24gb2YgeW91ciBkb2N1bWVudC4KCiAgIFRvIHVuem9vbSAoZXhpdCkgYSBmb2xkLCB1c2Ug 4oCYQy1jIEMteOKAmSAo4oCYTS14IGZvbGRvdXQtZXhpdC1mb2xk4oCZKS4KVGhpcyBoaWRlcyBh bGwgdGhlIHRleHQgYW5kIHN1YmhlYWRpbmdzIHVuZGVyIHRoZSB0b3AtbGV2ZWwgaGVhZGluZyBh bmQKcmV0dXJucyB5b3UgdG8gdGhlIHByZXZpb3VzIHZpZXcgb2YgdGhlIGJ1ZmZlci4gIFNwZWNp ZnlpbmcgYSBudW1lcmljCmFyZ3VtZW50IGV4aXRzIHRoYXQgbWFueSBsZXZlbHMgb2YgZm9sZHMu ICBTcGVjaWZ5aW5nIGEgemVybyBhcmd1bWVudApleGl0cyBhbGwgZm9sZHMuCgogICBUbyBjYW5j ZWwgdGhlIG5hcnJvd2luZyBvZiBhIGZvbGQgd2l0aG91dCBoaWRpbmcgdGhlIHRleHQgYW5kCnN1 YmhlYWRpbmdzLCBzcGVjaWZ5IGEgbmVnYXRpdmUgYXJndW1lbnQuICBGb3IgZXhhbXBsZSwg4oCY TS0tMiBDLWMgQy144oCZCmV4aXRzIHR3byBmb2xkcyBhbmQgbGVhdmVzIHRoZSB0ZXh0IGFuZCBz dWJoZWFkaW5ncyBleHBvc2VkLgoKICAgRm9sZG91dCBtb2RlIGFsc28gcHJvdmlkZXMgbW91c2Ug Y29tbWFuZHMgZm9yIGVudGVyaW5nIGFuZCBleGl0aW5nCmZvbGRzLCBhbmQgZm9yIHNob3dpbmcg YW5kIGhpZGluZyB0ZXh0OgoK4oCYQy1NLW1vdXNlLTHigJkgem9vbXMgaW4gb24gdGhlIGhlYWRp bmcgY2xpY2tlZCBvbgogICAgICAgICAgc2luZ2xlIGNsaWNrOiBleHBvc2UgYm9keS4KICAgICAg ICAgIGRvdWJsZSBjbGljazogZXhwb3NlIHN1YmhlYWRpbmdzLgogICAgICAgICAgdHJpcGxlIGNs aWNrOiBleHBvc2UgYm9keSBhbmQgc3ViaGVhZGluZ3MuCiAgICAgICAgICBxdWFkIGNsaWNrOiBl eHBvc2UgZW50aXJlIHN1YnRyZWUuCuKAmEMtTS1tb3VzZS0y4oCZIGV4cG9zZXMgdGV4dCB1bmRl ciB0aGUgaGVhZGluZyBjbGlja2VkIG9uCiAgICAgICAgICBzaW5nbGUgY2xpY2s6IGV4cG9zZSBi b2R5LgogICAgICAgICAgZG91YmxlIGNsaWNrOiBleHBvc2Ugc3ViaGVhZGluZ3MuCiAgICAgICAg ICB0cmlwbGUgY2xpY2s6IGV4cG9zZSBib2R5IGFuZCBzdWJoZWFkaW5ncy4KICAgICAgICAgIHF1 YWQgY2xpY2s6IGV4cG9zZSBlbnRpcmUgc3VidHJlZS4K4oCYQy1NLW1vdXNlLTPigJkgaGlkZXMg dGV4dCB1bmRlciB0aGUgaGVhZGluZyBjbGlja2VkIG9uIG9yIGV4aXRzIGZvbGQKICAgICAgICAg IHNpbmdsZSBjbGljazogaGlkZSBzdWJ0cmVlLgogICAgICAgICAgZG91YmxlIGNsaWNrOiBleGl0 IGZvbGQgYW5kIGhpZGUgdGV4dC4KICAgICAgICAgIHRyaXBsZSBjbGljazogZXhpdCBmb2xkIHdp dGhvdXQgaGlkaW5nIHRleHQuCiAgICAgICAgICBxdWFkIGNsaWNrOiBleGl0IGFsbCBmb2xkcyBh bmQgaGlkZSB0ZXh0LgoKICAgWW91IGNhbiBzcGVjaWZ5IGRpZmZlcmVudCBtb2RpZmllciBrZXlz IChpbnN0ZWFkIG9mIOKAmDxDdHJsPi08TWV0YT4t4oCZKQpieSBzZXR0aW5nIOKAmGZvbGRvdXQt bW91c2UtbW9kaWZpZXJz4oCZOyBidXQgaWYgeW91IGhhdmUgYWxyZWFkeSBsb2FkZWQgdGhlCuKA mGZvbGRvdXQuZWzigJkgbGlicmFyeSwgeW91IG11c3QgcmVsb2FkIGl0IGluIG9yZGVyIGZvciB0 aGlzIHRvIHRha2UKZWZmZWN0LgoKICAgVG8gdXNlIHRoZSBGb2xkb3V0IHBhY2thZ2UsIHlvdSBj YW4gdHlwZSDigJhNLXggbG9hZC1saWJyYXJ5IDxSRVQ+CmZvbGRvdXQgPFJFVD7igJk7IG9yIHlv dSBjYW4gYXJyYW5nZSBmb3IgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5IGJ5CnB1dHRpbmcgdGhl IGZvbGxvd2luZyBpbiB5b3VyIGluaXQgZmlsZToKCiAgICAgKHdpdGgtZXZhbC1hZnRlci1sb2Fk ICJvdXRsaW5lIgogICAgICAgKHJlcXVpcmUgJ2ZvbGRvdXQpKQoKCioqIDI1LjEwIE9yZyBNb2Rl CgpPcmcgbW9kZSBpcyBhIHZhcmlhbnQgb2YgT3V0bGluZSBtb2RlIGZvciB1c2luZyBFbWFjcyBh cyBhbiBvcmdhbml6ZXIKYW5kL29yIGF1dGhvcmluZyBzeXN0ZW0uICBGaWxlcyB3aXRoIG5hbWVz IGVuZGluZyBpbiB0aGUgZXh0ZW5zaW9uCuKAmC5vcmfigJkgYXJlIG9wZW5lZCBpbiBPcmcgbW9k ZSAoKm5vdGUgQ2hvb3NpbmcgTW9kZXM6OikuICBUbyBleHBsaWNpdGx5CnN3aXRjaCB0byBPcmcg bW9kZSwgdHlwZSDigJhNLXggb3JnLW1vZGXigJkuCgogICBJbiBPcmcgbW9kZSwgYXMgaW4gT3V0 bGluZSBtb2RlLCBlYWNoIGVudHJ5IGhhcyBhIGhlYWRpbmcgbGluZSB0aGF0CnN0YXJ0cyB3aXRo IG9uZSBvciBtb3JlIOKAmCrigJkgY2hhcmFjdGVycy4gICpOb3RlIE91dGxpbmUgRm9ybWF0Ojou ICBJbgphZGRpdGlvbiwgYW55IGxpbmUgdGhhdCBiZWdpbnMgd2l0aCB0aGUg4oCYI+KAmSBjaGFy YWN0ZXIgaXMgdHJlYXRlZCBhcyBhCmNvbW1lbnQuCgogICBPcmcgbW9kZSBwcm92aWRlcyBjb21t YW5kcyBmb3IgZWFzaWx5IHZpZXdpbmcgYW5kIG1hbmlwdWxhdGluZyB0aGUKb3V0bGluZSBzdHJ1 Y3R1cmUuICBUaGUgc2ltcGxlc3Qgb2YgdGhlc2UgY29tbWFuZHMgaXMgPFRBQj4KKOKAmG9yZy1j eWNsZeKAmSkuICBJZiBpbnZva2VkIG9uIGEgaGVhZGluZyBsaW5lLCBpdCBjeWNsZXMgdGhyb3Vn aCB0aGUKZGlmZmVyZW50IHZpc2liaWxpdHkgc3RhdGVzIG9mIHRoZSBzdWJ0cmVlOiAoaSkgc2hv d2luZyBvbmx5IHRoYXQKaGVhZGluZyBsaW5lLCAoaWkpIHNob3dpbmcgb25seSB0aGUgaGVhZGlu ZyBsaW5lIGFuZCB0aGUgaGVhZGluZyBsaW5lcwpvZiBpdHMgZGlyZWN0IGNoaWxkcmVuLCBpZiBh bnksIGFuZCAoaWlpKSBzaG93aW5nIHRoZSBlbnRpcmUgc3VidHJlZS4KSWYgaW52b2tlZCBpbiBh IGJvZHkgbGluZSwgdGhlIGdsb2JhbCBiaW5kaW5nIGZvciA8VEFCPiBpcyBleGVjdXRlZC4KCiAg IFR5cGluZyDigJhTLTxUQUI+4oCZICjigJhvcmctc2hpZnR0YWLigJkpIGFueXdoZXJlIGluIGFu IE9yZyBtb2RlIGJ1ZmZlcgpjeWNsZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIGVudGlyZSBvdXRs aW5lIHN0cnVjdHVyZSwgYmV0d2VlbiAoaSkKc2hvd2luZyBvbmx5IHRvcC1sZXZlbCBoZWFkaW5n IGxpbmVzLCAoaWkpIHNob3dpbmcgYWxsIGhlYWRpbmcgbGluZXMgYnV0Cm5vIGJvZHkgbGluZXMs IGFuZCAoaWlpKSBzaG93aW5nIGV2ZXJ5dGhpbmcuCgogICBZb3UgY2FuIG1vdmUgYW4gZW50aXJl IGVudHJ5IHVwIG9yIGRvd24gaW4gdGhlIGJ1ZmZlciwgaW5jbHVkaW5nIGl0cwpib2R5IGxpbmVz IGFuZCBzdWJ0cmVlIChpZiBhbnkpLCBieSB0eXBpbmcg4oCYTS08VVA+4oCZICjigJhvcmctbWV0 YXVw4oCZKSBvcgrigJhNLTxET1dOPuKAmSAo4oCYb3JnLW1ldGFkb3du4oCZKSBvbiB0aGUgaGVh ZGluZyBsaW5lLiAgU2ltaWxhcmx5LCB5b3UgY2FuCnByb21vdGUgb3IgZGVtb3RlIGEgaGVhZGlu ZyBsaW5lIHdpdGgg4oCYTS08TEVGVD7igJkgKOKAmG9yZy1tZXRhbGVmdOKAmSkgYW5kCuKAmE0t PFJJR0hUPuKAmSAo4oCYb3JnLW1ldGFyaWdodOKAmSkuICBUaGVzZSBjb21tYW5kcyBleGVjdXRl IHRoZWlyIGdsb2JhbApiaW5kaW5ncyBpZiBpbnZva2VkIG9uIGEgYm9keSBsaW5lLgoKICAgVGhl IGZvbGxvd2luZyBzdWJzZWN0aW9ucyBnaXZlIGJhc2ljIGluc3RydWN0aW9ucyBmb3IgdXNpbmcg T3JnIG1vZGUKYXMgYW4gb3JnYW5pemVyIGFuZCBhcyBhbiBhdXRob3Jpbmcgc3lzdGVtLiAgRm9y IGRldGFpbHMsICpub3RlIFRoZSBPcmcKTW9kZSBNYW51YWw6IChvcmcpVG9wLgoKKyBNZW51OgoK ICAtIE9yZyBPcmdhbml6ZXI6OiAgIE1hbmFnaW5nIFRPRE8gbGlzdHMgYW5kIGFnZW5kYXMuCiAg LSBPcmcgQXV0aG9yaW5nOjogICBFeHBvcnRpbmcgT3JnIGJ1ZmZlcnMgdG8gdmFyaW91cyBmb3Jt YXRzLgoKCioqKiAyNS4xMC4xIE9yZyBhcyBhbiBvcmdhbml6ZXIKCllvdSBjYW4gdGFnIGFuIE9y ZyBlbnRyeSBhcyBhICJUT0RPIiBpdGVtIGJ5IHR5cGluZyDigJhDLWMgQy104oCZCijigJhvcmct dG9kb+KAmSkgYW55d2hlcmUgaW4gdGhlIGVudHJ5LiAgVGhpcyBhZGRzIHRoZSBrZXl3b3JkIOKA mFRPRE/igJkgdG8gdGhlCmhlYWRpbmcgbGluZS4gIFR5cGluZyDigJhDLWMgQy104oCZIGFnYWlu IHN3aXRjaGVzIHRoZSBrZXl3b3JkIHRvIOKAmERPTkXigJk7CmFub3RoZXIg4oCYQy1jIEMtdOKA mSByZW1vdmVzIHRoZSBrZXl3b3JkIGVudGlyZWx5LCBhbmQgc28gZm9ydGguICBZb3UgY2FuCmN1 c3RvbWl6ZSB0aGUga2V5d29yZHMgdXNlZCBieSDigJhDLWMgQy104oCZIHZpYSB0aGUgdmFyaWFi bGUK4oCYb3JnLXRvZG8ta2V5d29yZHPigJkuCgogICBBcGFydCBmcm9tIG1hcmtpbmcgYW4gZW50 cnkgYXMgVE9ETywgeW91IGNhbiBhdHRhY2ggYSBkYXRlIHRvIGl0LCBieQp0eXBpbmcg4oCYQy1j IEMtc+KAmSAo4oCYb3JnLXNjaGVkdWxl4oCZKSBpbiB0aGUgZW50cnkuICBUaGlzIHByb21wdHMg Zm9yIGEgZGF0ZQpieSBwb3BwaW5nIHVwIHRoZSBFbWFjcyBDYWxlbmRhciAoKm5vdGUgQ2FsZW5k YXIvRGlhcnk6OiksIGFuZCB0aGVuIGFkZHMKdGhlIHRhZyDigJhTQ0hFRFVMRUTigJksIHRvZ2V0 aGVyIHdpdGggdGhlIHNlbGVjdGVkIGRhdGUsIGJlbmVhdGggdGhlCmhlYWRpbmcgbGluZS4gIFRo ZSBjb21tYW5kIOKAmEMtYyBDLWTigJkgKOKAmG9yZy1kZWFkbGluZeKAmSkgaGFzIHRoZSBzYW1l CmVmZmVjdCwgZXhjZXB0IHRoYXQgaXQgdXNlcyB0aGUgdGFnIOKAmERFQURMSU5F4oCZLgoKICAg T25jZSB5b3UgaGF2ZSBzb21lIFRPRE8gaXRlbXMgcGxhbm5lZCBpbiBhbiBPcmcgZmlsZSwgeW91 IGNhbiBhZGQKdGhhdCBmaWxlIHRvIHRoZSBsaXN0IG9mICJhZ2VuZGEgZmlsZXMiIGJ5IHR5cGlu ZyDigJhDLWMgW+KAmQoo4oCYb3JnLWFnZW5kYS1maWxlLXRvLWZyb2504oCZKS4gIE9yZyBtb2Rl IGlzIGRlc2lnbmVkIHRvIGxldCB5b3UgZWFzaWx5Cm1haW50YWluIG11bHRpcGxlIGFnZW5kYSBm aWxlcywgZS5nLiwgZm9yIG9yZ2FuaXppbmcgZGlmZmVyZW50IGFzcGVjdHMKb2YgeW91ciBsaWZl LiAgVGhlIGxpc3Qgb2YgYWdlbmRhIGZpbGVzIGlzIHN0b3JlZCBpbiB0aGUgdmFyaWFibGUK4oCY b3JnLWFnZW5kYS1maWxlc+KAmS4KCiAgIFRvIHZpZXcgaXRlbXMgY29taW5nIGZyb20geW91ciBh Z2VuZGEgZmlsZXMsIHR5cGUg4oCYTS14IG9yZy1hZ2VuZGHigJkuClRoaXMgY29tbWFuZCBwcm9t cHRzIGZvciB3aGF0IHlvdSB3YW50IHRvIHNlZTogYSBsaXN0IG9mIHRoaW5ncyB0byBkbwp0aGlz IHdlZWssIGEgbGlzdCBvZiBUT0RPIGl0ZW1zIHdpdGggc3BlY2lmaWMga2V5d29yZHMsIGV0Yy4g ICpOb3RlCihvcmcpQWdlbmRhIHZpZXdzOjosIGZvciBkZXRhaWxzLgoKCioqKiAyNS4xMC4yIE9y ZyBhcyBhbiBhdXRob3Jpbmcgc3lzdGVtCgpZb3UgbWF5IHdhbnQgdG8gZm9ybWF0IHlvdXIgT3Jn IG5vdGVzIG5pY2VseSBhbmQgdG8gcHJlcGFyZSB0aGVtIGZvcgpleHBvcnQgYW5kIHB1YmxpY2F0 aW9uLiAgVG8gZXhwb3J0IHRoZSBjdXJyZW50IGJ1ZmZlciwgdHlwZSDigJhDLWMgQy1l4oCZCiji gJhvcmctZXhwb3J04oCZKSBhbnl3aGVyZSBpbiBhbiBPcmcgYnVmZmVyLiAgVGhpcyBjb21tYW5k IHByb21wdHMgZm9yIGFuCmV4cG9ydCBmb3JtYXQ7IGN1cnJlbnRseSBzdXBwb3J0ZWQgZm9ybWF0 cyBpbmNsdWRlIEhUTUwsIExhVGVYLCBUZXhpbmZvLApPcGVuRG9jdW1lbnQgKOKAmC5vZHTigJkp LCBpQ2FsZW5kYXIsIE1hcmtkb3duLCBtYW4tcGFnZSwgYW5kIFBERi4gIFNvbWUKZm9ybWF0cywg c3VjaCBhcyBQREYsIHJlcXVpcmUgY2VydGFpbiBzeXN0ZW0gdG9vbHMgdG8gYmUgaW5zdGFsbGVk LgoKICAgVG8gZXhwb3J0IHNldmVyYWwgZmlsZXMgYXQgb25jZSB0byBhIHNwZWNpZmljIGRpcmVj dG9yeSwgZWl0aGVyCmxvY2FsbHkgb3Igb3ZlciB0aGUgbmV0d29yaywgeW91IG11c3QgZGVmaW5l IGEgbGlzdCBvZiBwcm9qZWN0cyB0aHJvdWdoCnRoZSB2YXJpYWJsZSDigJhvcmctcHVibGlzaC1w cm9qZWN0LWFsaXN04oCZLiAgU2VlIGl0cyBkb2N1bWVudGF0aW9uIGZvcgpkZXRhaWxzLgoKICAg T3JnIHN1cHBvcnRzIGEgc2ltcGxlIG1hcmt1cCBzY2hlbWUgZm9yIGFwcGx5aW5nIHRleHQgZm9y bWF0dGluZyB0bwpleHBvcnRlZCBkb2N1bWVudHM6CgogICAgIC0gVGhpcyB0ZXh0IGlzIC9lbXBo YXNpemVkLwogICAgIC0gVGhpcyB0ZXh0IGlzICppbiBib2xkKgogICAgIC0gVGhpcyB0ZXh0IGlz IF91bmRlcmxpbmVkXwogICAgIC0gVGhpcyB0ZXh0IHVzZXMgPWEgdGVsZXR5cGUgZm9udD0KCiAg ICAgIytiZWdpbl9xdW90ZQogICAgIGBgVGhpcyBpcyBhIHF1b3RlLicnCiAgICAgIytlbmRfcXVv dGUKCiAgICAgIytiZWdpbl9leGFtcGxlCiAgICAgVGhpcyBpcyBhbiBleGFtcGxlLgogICAgICMr ZW5kX2V4YW1wbGUKCiAgIEZvciBmdXJ0aGVyIGRldGFpbHMsICpub3RlIChvcmcpRXhwb3J0aW5n OjosIGFuZCAqbm90ZQoob3JnKVB1Ymxpc2hpbmc6Oi4KCgoqKiAyNS4xMSBUZVggTW9kZQoKVGVY IGlzIGEgcG93ZXJmdWwgdGV4dCBmb3JtYXR0ZXIgd3JpdHRlbiBieSBEb25hbGQgS251dGg7IGxp a2UgR05VCkVtYWNzLCBpdCBpcyBmcmVlIHNvZnR3YXJlLiAgVGhlIFRlWCBmb3JtYXQgaGFzIHNl dmVyYWwgdmFyaWFudHMsCmluY2x1ZGluZyBMYVRlWCwgYSBzaW1wbGlmaWVkIGlucHV0IGZvcm1h dCBmb3IgVGVYOyBEb2NUZVgsIGEgc3BlY2lhbApmaWxlIGZvcm1hdCBpbiB3aGljaCB0aGUgTGFU ZVggc291cmNlcyBhcmUgd3JpdHRlbiwgY29tYmluaW5nIHNvdXJjZXMKd2l0aCBkb2N1bWVudGF0 aW9uOyBhbmQgU2xpVGVYLCBhbiBvYnNvbGV0ZSBzcGVjaWFsIGZvcm0gb2YgTGFUZVgoMSkuCgog ICBFbWFjcyBwcm92aWRlcyBhIFRlWCBtYWpvciBtb2RlIGZvciBlYWNoIG9mIHRoZXNlIHZhcmlh bnRzOiBQbGFpbiBUZVgKbW9kZSwgTGFUZVggbW9kZSwgRG9jVGVYIG1vZGUsIGFuZCBTbGlUZVgg bW9kZS4gIEVtYWNzIHNlbGVjdHMgdGhlCmFwcHJvcHJpYXRlIG1vZGUgYnkgbG9va2luZyBhdCB0 aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlci4gIChUaGlzIGlzCmRvbmUgYnkgaW52b2tpbmcgdGhl IOKAmHRleC1tb2Rl4oCZIGNvbW1hbmQsIHdoaWNoIGlzIG5vcm1hbGx5IGNhbGxlZAphdXRvbWF0 aWNhbGx5IHdoZW4geW91IHZpc2l0IGEgVGVYLWxpa2UgZmlsZS4gICpOb3RlIENob29zaW5nIE1v ZGVzOjouKQpJZiB0aGUgY29udGVudHMgYXJlIGluc3VmZmljaWVudCB0byBkZXRlcm1pbmUgdGhp cywgRW1hY3MgY2hvb3NlcyB0aGUKbW9kZSBzcGVjaWZpZWQgYnkgdGhlIHZhcmlhYmxlIOKAmHRl eC1kZWZhdWx0LW1vZGXigJk7IGl0cyBkZWZhdWx0IHZhbHVlIGlzCuKAmGxhdGV4LW1vZGXigJku ICBJZiBFbWFjcyBkb2VzIG5vdCBndWVzcyByaWdodCwgeW91IGNhbiBzZWxlY3QgdGhlIGNvcnJl Y3QKdmFyaWFudCBvZiBUZVggbW9kZSB1c2luZyB0aGUgY29tbWFuZHMg4oCYcGxhaW4tdGV4LW1v ZGXigJksIOKAmGxhdGV4LW1vZGXigJksCuKAmHNsaXRleC1tb2Rl4oCZLCBvciDigJhkb2N0ZXgt bW9kZeKAmS4KCiAgIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgZG9jdW1lbnQgdGhlIGZlYXR1cmVz IG9mIFRlWCBtb2RlIGFuZCBpdHMKdmFyaWFudHMuICBUaGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBU ZVgtcmVsYXRlZCBFbWFjcyBwYWNrYWdlcywgd2hpY2ggYXJlCm5vdCBkb2N1bWVudGVkIGluIHRo aXMgbWFudWFsOgoKICAg4oCiIEJpYlRlWCBtb2RlIGlzIGEgbWFqb3IgbW9kZSBmb3IgQmliVGVY IGZpbGVzLCB3aGljaCBhcmUgY29tbW9ubHkKICAgICB1c2VkIGZvciBrZWVwaW5nIGJpYmxpb2dy YXBoaWMgcmVmZXJlbmNlcyBmb3IgTGFUZVggZG9jdW1lbnRzLiAgRm9yCiAgICAgbW9yZSBpbmZv cm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIHN0cmluZyBmb3IgdGhlIGNvbW1hbmQKICAg ICDigJhiaWJ0ZXgtbW9kZeKAmS4KCiAgIOKAoiBUaGUgUmVmVGVYIHBhY2thZ2UgcHJvdmlkZXMg YSBtaW5vciBtb2RlIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGgKICAgICBMYVRlWCBtb2RlIHRvIG1h bmFnZSBiaWJsaW9ncmFwaGljIHJlZmVyZW5jZXMuICAqTm90ZSBUaGUgUmVmVGVYCiAgICAgTWFu dWFsOiAocmVmdGV4KVRvcC4KCiAgIOKAoiBUaGUgQVVDVGVYIHBhY2thZ2UgcHJvdmlkZXMgbW9y ZSBhZHZhbmNlZCBmZWF0dXJlcyBmb3IgZWRpdGluZyBUZVgKICAgICBhbmQgaXRzIHJlbGF0ZWQg Zm9ybWF0cywgaW5jbHVkaW5nIHRoZSBhYmlsaXR5IHRvIHByZXZpZXcgVGVYCiAgICAgZXF1YXRp b25zIHdpdGhpbiBFbWFjcyBidWZmZXJzLiAgVW5saWtlIEJpYlRlWCBtb2RlIGFuZCB0aGUgUmVm VGVYCiAgICAgcGFja2FnZSwgQVVDVGVYIGlzIG5vdCBkaXN0cmlidXRlZCB3aXRoIEVtYWNzIGJ5 IGRlZmF1bHQuICBJdCBjYW4KICAgICBiZSBkb3dubG9hZGVkIHZpYSB0aGUgUGFja2FnZSBNZW51 ICgqbm90ZSBQYWNrYWdlczo6KTsgb25jZQogICAgIGluc3RhbGxlZCwgc2VlICpub3RlIFRoZSBB VUNUZVggTWFudWFsOiAoYXVjdGV4KVRvcC4KCisgTWVudToKCiAgLSBUZVggRWRpdGluZzo6ICAg U3BlY2lhbCBjb21tYW5kcyBmb3IgZWRpdGluZyBpbiBUZVggbW9kZS4KICAtIExhVGVYIEVkaXRp bmc6OiBBZGRpdGlvbmFsIGNvbW1hbmRzIGZvciBMYVRlWCBpbnB1dCBmaWxlcy4KICAtIFRlWCBQ cmludDo6ICAgICBDb21tYW5kcyBmb3IgcHJpbnRpbmcgcGFydCBvZiBhIGZpbGUgd2l0aCBUZVgu CiAgLSBUZVggTWlzYzo6ICAgICAgQ3VzdG9taXphdGlvbiBvZiBUZVggbW9kZSwgYW5kIHJlbGF0 ZWQgZmVhdHVyZXMuCgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkg SXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkgdGhlIOKAmHNsaWRlc+KAmSBkb2N1bWVudCBjbGFzcywg d2hpY2ggY29tZXMKd2l0aCBMYVRlWC4KCgoqKiogMjUuMTEuMSBUZVggRWRpdGluZyBDb21tYW5k cwoK4oCYIuKAmQogICAgIEluc2VydCwgYWNjb3JkaW5nIHRvIGNvbnRleHQsIGVpdGhlciDigJhg YOKAmSBvciDigJgi4oCZIG9yIOKAmCcn4oCZCiAgICAgKOKAmHRleC1pbnNlcnQtcXVvdGXigJkp LgrigJhDLWrigJkKICAgICBJbnNlcnQgYSBwYXJhZ3JhcGggYnJlYWsgKHR3byBuZXdsaW5lcykg YW5kIGNoZWNrIHRoZSBwcmV2aW91cwogICAgIHBhcmFncmFwaCBmb3IgdW5iYWxhbmNlZCBicmFj ZXMgb3IgZG9sbGFyIHNpZ25zCiAgICAgKOKAmHRleC10ZXJtaW5hdGUtcGFyYWdyYXBo4oCZKS4K 4oCYTS14IHRleC12YWxpZGF0ZS1yZWdpb27igJkKICAgICBDaGVjayBlYWNoIHBhcmFncmFwaCBp biB0aGUgcmVnaW9uIGZvciB1bmJhbGFuY2VkIGJyYWNlcyBvciBkb2xsYXIKICAgICBzaWducy4K 4oCYQy1jIHvigJkKICAgICBJbnNlcnQg4oCYe33igJkgYW5kIHBvc2l0aW9uIHBvaW50IGJldHdl ZW4gdGhlbSAo4oCYdGV4LWluc2VydC1icmFjZXPigJkpLgrigJhDLWMgfeKAmQogICAgIE1vdmUg Zm9yd2FyZCBwYXN0IHRoZSBuZXh0IHVubWF0Y2hlZCBjbG9zZSBicmFjZSAo4oCYdXAtbGlzdOKA mSkuCgogICBJbiBUZVgsIHRoZSBjaGFyYWN0ZXIg4oCYIuKAmSBpcyBub3Qgbm9ybWFsbHkgdXNl ZDsgaW5zdGVhZCwgcXVvdGF0aW9ucwpiZWdpbiB3aXRoIOKAmGBg4oCZIGFuZCBlbmQgd2l0aCDi gJgnJ+KAmS4gIFRlWCBtb2RlIHRoZXJlZm9yZSBiaW5kcyB0aGUg4oCYIuKAmSBrZXkKdG8gdGhl IOKAmHRleC1pbnNlcnQtcXVvdGXigJkgY29tbWFuZC4gIFRoaXMgaW5zZXJ0cyDigJhgYOKAmSBh ZnRlciB3aGl0ZXNwYWNlCm9yIGFuIG9wZW4gYnJhY2UsIOKAmCLigJkgYWZ0ZXIgYSBiYWNrc2xh c2gsIGFuZCDigJgnJ+KAmSBhZnRlciBhbnkgb3RoZXIKY2hhcmFjdGVyLgoKICAgQXMgYSBzcGVj aWFsIGV4Y2VwdGlvbiwgaWYgeW91IHR5cGUg4oCYIuKAmSB3aGVuIHRoZSB0ZXh0IGJlZm9yZSBw b2ludCBpcwplaXRoZXIg4oCYYGDigJkgb3Ig4oCYJyfigJksIEVtYWNzIHJlcGxhY2VzIHRoYXQg cHJlY2VkaW5nIHRleHQgd2l0aCBhIHNpbmdsZQrigJgi4oCZIGNoYXJhY3Rlci4gIFlvdSBjYW4g dGhlcmVmb3JlIHR5cGUg4oCYIiLigJkgdG8gaW5zZXJ0IOKAmCLigJksIHNob3VsZCB5b3UKZXZl ciBuZWVkIHRvIGRvIHNvLiAgKFlvdSBjYW4gYWxzbyB1c2Ug4oCYQy1xICLigJkgdG8gaW5zZXJ0 IHRoaXMKY2hhcmFjdGVyLikKCiAgIEluIFRlWCBtb2RlLCDigJgk4oCZIGhhcyBhIHNwZWNpYWwg c3ludGF4IGNvZGUgd2hpY2ggYXR0ZW1wdHMgdG8KdW5kZXJzdGFuZCB0aGUgd2F5IFRlWCBtYXRo IG1vZGUgZGVsaW1pdGVycyBtYXRjaC4gIFdoZW4geW91IGluc2VydCBhCuKAmCTigJkgdGhhdCBp cyBtZWFudCB0byBleGl0IG1hdGggbW9kZSwgdGhlIHBvc2l0aW9uIG9mIHRoZSBtYXRjaGluZyDi gJgk4oCZCnRoYXQgZW50ZXJlZCBtYXRoIG1vZGUgaXMgZGlzcGxheWVkIGZvciBhIHNlY29uZC4g IFRoaXMgaXMgdGhlIHNhbWUKZmVhdHVyZSB0aGF0IGRpc3BsYXlzIHRoZSBvcGVuIGJyYWNlIHRo YXQgbWF0Y2hlcyBhIGNsb3NlIGJyYWNlIHRoYXQgaXMKaW5zZXJ0ZWQuICBIb3dldmVyLCB0aGVy ZSBpcyBubyB3YXkgdG8gdGVsbCB3aGV0aGVyIGEg4oCYJOKAmSBlbnRlcnMgbWF0aAptb2RlIG9y IGxlYXZlcyBpdDsgc28gd2hlbiB5b3UgaW5zZXJ0IGEg4oCYJOKAmSB0aGF0IGVudGVycyBtYXRo IG1vZGUsIHRoZQpwcmV2aW91cyDigJgk4oCZIHBvc2l0aW9uIGlzIHNob3duIGFzIGlmIGl0IHdl cmUgYSBtYXRjaCwgZXZlbiB0aG91Z2ggdGhleQphcmUgYWN0dWFsbHkgdW5yZWxhdGVkLgoKICAg VGVYIHVzZXMgYnJhY2VzIGFzIGRlbGltaXRlcnMgdGhhdCBtdXN0IG1hdGNoLiAgU29tZSB1c2Vy cyBwcmVmZXIgdG8Ka2VlcCBicmFjZXMgYmFsYW5jZWQgYXQgYWxsIHRpbWVzLCByYXRoZXIgdGhh biBpbnNlcnRpbmcgdGhlbSBzaW5nbHkuClVzZSDigJhDLWMge+KAmSAo4oCYdGV4LWluc2VydC1i cmFjZXPigJkpIHRvIGluc2VydCBhIHBhaXIgb2YgYnJhY2VzLiAgSXQgbGVhdmVzCnBvaW50IGJl dHdlZW4gdGhlIHR3byBicmFjZXMgc28geW91IGNhbiBpbnNlcnQgdGhlIHRleHQgdGhhdCBiZWxv bmdzCmluc2lkZS4gIEFmdGVyd2FyZCwgdXNlIHRoZSBjb21tYW5kIOKAmEMtYyB94oCZICjigJh1 cC1saXN04oCZKSB0byBtb3ZlIGZvcndhcmQKcGFzdCB0aGUgY2xvc2UgYnJhY2UuICBZb3UgY2Fu IGFsc28gaW52b2tlIOKAmEMtYyB74oCZIGFmdGVyIG1hcmtpbmcgc29tZQp0ZXh0OiB0aGVuIHRo ZSBjb21tYW5kIGVuY2xvc2VzIHRoZSBtYXJrZWQgdGV4dCBpbiBicmFjZXMuCgogICBUaGVyZSBh cmUgdHdvIGNvbW1hbmRzIGZvciBjaGVja2luZyB0aGUgbWF0Y2hpbmcgb2YgYnJhY2VzLiAg4oCY Qy1q4oCZCijigJh0ZXgtdGVybWluYXRlLXBhcmFncmFwaOKAmSkgY2hlY2tzIHRoZSBwYXJhZ3Jh cGggYmVmb3JlIHBvaW50LCBhbmQKaW5zZXJ0cyB0d28gbmV3bGluZXMgdG8gc3RhcnQgYSBuZXcg cGFyYWdyYXBoLiAgSXQgb3V0cHV0cyBhIG1lc3NhZ2UgaW4KdGhlIGVjaG8gYXJlYSBpZiBhbnkg bWlzbWF0Y2ggaXMgZm91bmQuICDigJhNLXggdGV4LXZhbGlkYXRlLXJlZ2lvbuKAmQpjaGVja3Mg YSByZWdpb24sIHBhcmFncmFwaCBieSBwYXJhZ3JhcGguICBUaGUgZXJyb3JzIGFyZSBsaXN0ZWQg aW4gYW4K4oCYKk9jY3VyKuKAmSBidWZmZXI7IHlvdSBjYW4gdXNlIHRoZSB1c3VhbCBPY2N1ciBt b2RlIGNvbW1hbmRzIGluIHRoYXQKYnVmZmVyLCBzdWNoIGFzIOKAmEMtYyBDLWPigJksIHRvIHZp c2l0IGEgcGFydGljdWxhciBtaXNtYXRjaCAoKm5vdGUgT3RoZXIKUmVwZWF0aW5nIFNlYXJjaDo6 KS4KCiAgIE5vdGUgdGhhdCBFbWFjcyBjb21tYW5kcyBjb3VudCBzcXVhcmUgYnJhY2tldHMgYW5k IHBhcmVudGhlc2VzIGluIFRlWAptb2RlLCBub3QganVzdCBicmFjZXMuICBUaGlzIGlzIG5vdCBz dHJpY3RseSBjb3JyZWN0IGZvciB0aGUgcHVycG9zZSBvZgpjaGVja2luZyBUZVggc3ludGF4LiAg SG93ZXZlciwgcGFyZW50aGVzZXMgYW5kIHNxdWFyZSBicmFja2V0cyBhcmUKbGlrZWx5IHRvIGJl IHVzZWQgaW4gdGV4dCBhcyBtYXRjaGluZyBkZWxpbWl0ZXJzLCBhbmQgaXQgaXMgdXNlZnVsIGZv cgp0aGUgdmFyaW91cyBtb3Rpb24gY29tbWFuZHMgYW5kIGF1dG9tYXRpYyBtYXRjaCBkaXNwbGF5 IHRvIHdvcmsgd2l0aAp0aGVtLgoKCioqKiAyNS4xMS4yIExhVGVYIEVkaXRpbmcgQ29tbWFuZHMK CkxhVGVYIG1vZGUgcHJvdmlkZXMgYSBmZXcgZXh0cmEgZmVhdHVyZXMgbm90IGFwcGxpY2FibGUg dG8gcGxhaW4gVGVYOgoK4oCYQy1jIEMtb+KAmQogICAgIEluc2VydCDigJhcYmVnaW7igJkgYW5k IOKAmFxlbmTigJkgZm9yIExhVGVYIGJsb2NrIGFuZCBwb3NpdGlvbiBwb2ludCBvbiBhCiAgICAg bGluZSBiZXR3ZWVuIHRoZW0gKOKAmHRleC1sYXRleC1ibG9ja+KAmSkuCuKAmEMtYyBDLWXigJkK ICAgICBDbG9zZSB0aGUgaW5uZXJtb3N0IExhVGVYIGJsb2NrIG5vdCB5ZXQgY2xvc2VkCiAgICAg KOKAmHRleC1jbG9zZS1sYXRleC1ibG9ja+KAmSkuCgogICBJbiBMYVRlWCBpbnB1dCwg4oCYXGJl Z2lu4oCZIGFuZCDigJhcZW5k4oCZIHRhZ3MgYXJlIHVzZWQgdG8gZ3JvdXAgYmxvY2tzIG9mCnRl eHQuICBUbyBpbnNlcnQgYSBibG9jaywgdHlwZSDigJhDLWMgQy1v4oCZICjigJh0ZXgtbGF0ZXgt YmxvY2vigJkpLiAgVGhpcwpwcm9tcHRzIGZvciBhIGJsb2NrIHR5cGUsIGFuZCBpbnNlcnRzIHRo ZSBhcHByb3ByaWF0ZSBtYXRjaGluZyDigJhcYmVnaW7igJkKYW5kIOKAmFxlbmTigJkgdGFncywg bGVhdmluZyBhIGJsYW5rIGxpbmUgYmV0d2VlbiB0aGUgdHdvIGFuZCBtb3ZpbmcgcG9pbnQKdGhl cmUuCgogICBXaGVuIGVudGVyaW5nIHRoZSBibG9jayB0eXBlIGFyZ3VtZW50IHRvIOKAmEMtYyBD LW/igJksIHlvdSBjYW4gdXNlIHRoZQp1c3VhbCBjb21wbGV0aW9uIGNvbW1hbmRzICgqbm90ZSBD b21wbGV0aW9uOjopLiAgVGhlIGRlZmF1bHQgY29tcGxldGlvbgpsaXN0IGNvbnRhaW5zIHRoZSBz dGFuZGFyZCBMYVRlWCBibG9jayB0eXBlcy4gIElmIHlvdSB3YW50IGFkZGl0aW9uYWwKYmxvY2sg dHlwZXMgZm9yIGNvbXBsZXRpb24sIGN1c3RvbWl6ZSB0aGUgbGlzdCB2YXJpYWJsZQrigJhsYXRl eC1ibG9jay1uYW1lc+KAmS4KCiAgIEluIExhVGVYIGlucHV0LCDigJhcYmVnaW7igJkgYW5kIOKA mFxlbmTigJkgdGFncyBtdXN0IGJhbGFuY2UuICBZb3UgY2FuIHVzZQrigJhDLWMgQy1l4oCZICji gJh0ZXgtY2xvc2UtbGF0ZXgtYmxvY2vigJkpIHRvIGluc2VydCBhbiDigJhcZW5k4oCZIHRhZyB3 aGljaAptYXRjaGVzIHRoZSBsYXN0IHVubWF0Y2hlZCDigJhcYmVnaW7igJkuICBJdCBhbHNvIGlu ZGVudHMgdGhlIOKAmFxlbmTigJkgdG8KbWF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcg4oCYXGJlZ2lu 4oCZLCBhbmQgaW5zZXJ0cyBhIG5ld2xpbmUgYWZ0ZXIgdGhlIOKAmFxlbmTigJkKdGFnIGlmIHBv aW50IGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lLiAgVGhlIG1pbm9yIG1vZGUK4oCYbGF0 ZXgtZWxlY3RyaWMtZW52LXBhaXItbW9kZeKAmSBhdXRvbWF0aWNhbGx5IGluc2VydHMgYW4g4oCY XGVuZOKAmSBvcgrigJhcYmVnaW7igJkgdGFnIGZvciB5b3Ugd2hlbiB5b3UgdHlwZSB0aGUgY29y cmVzcG9uZGluZyBvbmUuCgoKKioqIDI1LjExLjMgVGVYIFByaW50aW5nIENvbW1hbmRzCgpZb3Ug Y2FuIGludm9rZSBUZVggYXMgYSBzdWJwcm9jZXNzIG9mIEVtYWNzLCBzdXBwbHlpbmcgZWl0aGVy IHRoZSBlbnRpcmUKY29udGVudHMgb2YgdGhlIGJ1ZmZlciBvciBqdXN0IHBhcnQgb2YgaXQgKGUu Zy4sIG9uZSBjaGFwdGVyIG9mIGEgbGFyZ2VyCmRvY3VtZW50KS4KCuKAmEMtYyBDLWLigJkKICAg ICBJbnZva2UgVGVYIG9uIHRoZSBlbnRpcmUgY3VycmVudCBidWZmZXIgKOKAmHRleC1idWZmZXLi gJkpLgoK4oCYQy1jIEMtcuKAmQogICAgIEludm9rZSBUZVggb24gdGhlIGN1cnJlbnQgcmVnaW9u LCB0b2dldGhlciB3aXRoIHRoZSBidWZmZXLigJlzIGhlYWRlcgogICAgICjigJh0ZXgtcmVnaW9u 4oCZKS4KCuKAmEMtYyBDLWbigJkKICAgICBJbnZva2UgVGVYIG9uIHRoZSBjdXJyZW50IGZpbGUg KOKAmHRleC1maWxl4oCZKS4KCuKAmEMtYyBDLXbigJkKICAgICBQcmV2aWV3IHRoZSBvdXRwdXQg ZnJvbSB0aGUgbGFzdCDigJhDLWMgQy1i4oCZLCDigJhDLWMgQy1y4oCZLCBvciDigJhDLWMgQy1m 4oCZCiAgICAgY29tbWFuZCAo4oCYdGV4LXZpZXfigJkpLgoK4oCYQy1jIEMtcOKAmQogICAgIFBy aW50IHRoZSBvdXRwdXQgZnJvbSB0aGUgbGFzdCDigJhDLWMgQy1i4oCZLCDigJhDLWMgQy1y4oCZ LCBvciDigJhDLWMgQy1m4oCZCiAgICAgY29tbWFuZCAo4oCYdGV4LXByaW504oCZKS4KCuKAmEMt YyA8VEFCPuKAmQogICAgIEludm9rZSBCaWJUZVggb24gdGhlIGN1cnJlbnQgZmlsZSAo4oCYdGV4 LWJpYnRleC1maWxl4oCZKS4K4oCYQy1jIEMtbOKAmQogICAgIFJlY2VudGVyIHRoZSB3aW5kb3cg c2hvd2luZyBvdXRwdXQgZnJvbSBUZVggc28gdGhhdCB0aGUgbGFzdCBsaW5lCiAgICAgY2FuIGJl IHNlZW4gKOKAmHRleC1yZWNlbnRlci1vdXRwdXQtYnVmZmVy4oCZKS4K4oCYQy1jIEMta+KAmQog ICAgIEtpbGwgdGhlIFRlWCBzdWJwcm9jZXNzICjigJh0ZXgta2lsbC1qb2LigJkpLgrigJhDLWMg Qy1j4oCZCiAgICAgSW52b2tlIHNvbWUgb3RoZXIgY29tcGlsYXRpb24gY29tbWFuZCBvbiB0aGUg ZW50aXJlIGN1cnJlbnQgYnVmZmVyCiAgICAgKOKAmHRleC1jb21waWxl4oCZKS4KCiAgIFRvIHBh c3MgdGhlIGN1cnJlbnQgYnVmZmVyIHRocm91Z2ggVGVYLCB0eXBlIOKAmEMtYyBDLWLigJkKKOKA mHRleC1idWZmZXLigJkpLiAgVGhlIGZvcm1hdHRlZCBvdXRwdXQgZ29lcyBpbiBhIHRlbXBvcmFy eSBmaWxlLCBub3JtYWxseQphIOKAmC5kdmnigJkgZmlsZS4gIEFmdGVyd2FyZHMsIHlvdSBjYW4g dHlwZSDigJhDLWMgQy124oCZICjigJh0ZXgtdmlld+KAmSkgdG8KbGF1bmNoIGFuIGV4dGVybmFs IHByb2dyYW0sIHN1Y2ggYXMg4oCYeGR2aeKAmSwgdG8gdmlldyB0aGlzIG91dHB1dCBmaWxlLgpZ b3UgY2FuIGFsc28gdHlwZSDigJhDLWMgQy1w4oCZICjigJh0ZXgtcHJpbnTigJkpIHRvIHByaW50 IGEgaGFyZGNvcHkgb2YgdGhlCm91dHB1dCBmaWxlLgoKICAgQnkgZGVmYXVsdCwg4oCYQy1jIEMt YuKAmSBydW5zIFRlWCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBUaGUgb3V0cHV0Cm9mIFRl WCBpcyBhbHNvIGNyZWF0ZWQgaW4gdGhpcyBkaXJlY3RvcnkuICBUbyBydW4gVGVYIGluIGEgZGlm ZmVyZW50CmRpcmVjdG9yeSwgY2hhbmdlIHRoZSB2YXJpYWJsZSDigJh0ZXgtZGlyZWN0b3J54oCZ IHRvIHRoZSBkZXNpcmVkIGRpcmVjdG9yeS4KSWYgeW91ciBlbnZpcm9ubWVudCB2YXJpYWJsZSDi gJhURVhJTlBVVFPigJkgY29udGFpbnMgcmVsYXRpdmUgbmFtZXMsIG9yIGlmCnlvdXIgZmlsZXMg Y29udGFpbiDigJhcaW5wdXTigJkgY29tbWFuZHMgd2l0aCByZWxhdGl2ZSBmaWxlIG5hbWVzLCB0 aGVuCuKAmHRleC1kaXJlY3RvcnnigJkgX211c3RfIGJlIOKAmCIuIuKAmSBvciB5b3Ugd2lsbCBn ZXQgdGhlIHdyb25nIHJlc3VsdHMuCk90aGVyd2lzZSwgaXQgaXMgc2FmZSB0byBzcGVjaWZ5IHNv bWUgb3RoZXIgZGlyZWN0b3J5LCBzdWNoIGFzIOKAmCIvdG1wIuKAmS4KCiAgIFRoZSBidWZmZXLi gJlzIFRlWCB2YXJpYW50IGRldGVybWluZXMgd2hhdCBzaGVsbCBjb21tYW5kIOKAmEMtYyBDLWLi gJkKYWN0dWFsbHkgcnVucy4gIEluIFBsYWluIFRlWCBtb2RlLCBpdCBpcyBzcGVjaWZpZWQgYnkg dGhlIHZhcmlhYmxlCuKAmHRleC1ydW4tY29tbWFuZOKAmSwgd2hpY2ggZGVmYXVsdHMgdG8g4oCY InRleCLigJkuICBJbiBMYVRlWCBtb2RlLCBpdCBpcwpzcGVjaWZpZWQgYnkg4oCYbGF0ZXgtcnVu LWNvbW1hbmTigJksIHdoaWNoIGRlZmF1bHRzIHRvIOKAmCJsYXRleCLigJkuICBUaGUKc2hlbGwg Y29tbWFuZCB0aGF0IOKAmEMtYyBDLXbigJkgcnVucyB0byB2aWV3IHRoZSDigJguZHZp4oCZIG91 dHB1dCBpcwpkZXRlcm1pbmVkIGJ5IHRoZSB2YXJpYWJsZSDigJh0ZXgtZHZpLXZpZXctY29tbWFu ZOKAmSwgcmVnYXJkbGVzcyBvZiB0aGUgVGVYCnZhcmlhbnQuICBUaGUgc2hlbGwgY29tbWFuZCB0 aGF0IOKAmEMtYyBDLXDigJkgcnVucyB0byBwcmludCB0aGUgb3V0cHV0IGlzCmRldGVybWluZWQg YnkgdGhlIHZhcmlhYmxlIOKAmHRleC1kdmktcHJpbnQtY29tbWFuZOKAmS4gIFRoZSB2YXJpYWJs ZQrigJh0ZXgtcHJpbnQtZmlsZS1leHRlbnNpb27igJkgY2FuIGJlIHNldCB0byB0aGUgcmVxdWly ZWQgZmlsZSBleHRlbnNpb24gZm9yCnZpZXdpbmcgYW5kIHByaW50aW5nIFRlWC1jb21waWxlZCBm aWxlcy4gIEZvciBleGFtcGxlLCB5b3UgY2FuIHNldCBpdCB0bwrigJgucGRm4oCZLCBhbmQgdXBk YXRlIOKAmHRleC1kdmktdmlldy1jb21tYW5k4oCZIGFuZCDigJh0ZXgtZHZpLXByaW50LWNvbW1h bmTigJkKYWNjb3JkaW5nbHkuCgogICBOb3JtYWxseSwgRW1hY3MgYXV0b21hdGljYWxseSBhcHBl bmRzIHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIHRoZQpzaGVsbCBjb21tYW5kIHN0cmluZ3MgZGVz Y3JpYmVkIGluIHRoZSBwcmVjZWRpbmcgcGFyYWdyYXBoLiAgRm9yCmV4YW1wbGUsIGlmIOKAmHRl eC1kdmktdmlldy1jb21tYW5k4oCZIGlzIOKAmCJ4ZHZpIuKAmSwg4oCYQy1jIEMtduKAmSBydW5z IOKAmHhkdmkKT1VUUFVULUZJTEUtTkFNReKAmS4gIEluIHNvbWUgY2FzZXMsIGhvd2V2ZXIsIHRo ZSBmaWxlIG5hbWUgbmVlZHMgdG8gYmUKZW1iZWRkZWQgaW4gdGhlIGNvbW1hbmQsIGUuZy4sIGlm IHlvdSBuZWVkIHRvIHByb3ZpZGUgdGhlIGZpbGUgbmFtZSBhcwphbiBhcmd1bWVudCB0byBvbmUg Y29tbWFuZCB3aG9zZSBvdXRwdXQgaXMgcGlwZWQgdG8gYW5vdGhlci4gIFlvdSBjYW4Kc3BlY2lm eSB3aGVyZSB0byBwdXQgdGhlIGZpbGUgbmFtZSB3aXRoIOKAmCrigJkgaW4gdGhlIGNvbW1hbmQg c3RyaW5nLiAgRm9yCmV4YW1wbGUsCgogICAgIChzZXRxIHRleC1kdmktcHJpbnQtY29tbWFuZCAi ZHZpcHMgLWYgKiB8IGxwciIpCgogICBUaGUgdGVybWluYWwgb3V0cHV0IGZyb20gVGVYLCBpbmNs dWRpbmcgYW55IGVycm9yIG1lc3NhZ2VzLCBhcHBlYXJzCmluIGEgYnVmZmVyIGNhbGxlZCDigJgq dGV4LXNoZWxsKuKAmS4gIElmIFRlWCBnZXRzIGFuIGVycm9yLCB5b3UgY2FuIHN3aXRjaAp0byB0 aGlzIGJ1ZmZlciBhbmQgZmVlZCBpdCBpbnB1dCAodGhpcyB3b3JrcyBhcyBpbiBTaGVsbCBtb2Rl OyAqbm90ZQpJbnRlcmFjdGl2ZSBTaGVsbDo6KS4gIFdpdGhvdXQgc3dpdGNoaW5nIHRvIHRoaXMg YnVmZmVyIHlvdSBjYW4gc2Nyb2xsCml0IHNvIHRoYXQgaXRzIGxhc3QgbGluZSBpcyB2aXNpYmxl IGJ5IHR5cGluZyDigJhDLWMgQy1s4oCZLgoKICAgVHlwZSDigJhDLWMgQy1r4oCZICjigJh0ZXgt a2lsbC1qb2LigJkpIHRvIGtpbGwgdGhlIFRlWCBwcm9jZXNzIGlmIHlvdSBzZWUKdGhhdCBpdHMg b3V0cHV0IGlzIG5vIGxvbmdlciB1c2VmdWwuICBVc2luZyDigJhDLWMgQy1i4oCZIG9yIOKAmEMt YyBDLXLigJkgYWxzbwpraWxscyBhbnkgVGVYIHByb2Nlc3Mgc3RpbGwgcnVubmluZy4KCiAgIFlv dSBjYW4gYWxzbyBwYXNzIGFuIGFyYml0cmFyeSByZWdpb24gdGhyb3VnaCBUZVggYnkgdHlwaW5n IOKAmEMtYyBDLXLigJkKKOKAmHRleC1yZWdpb27igJkpLiAgVGhpcyBpcyB0cmlja3ksIGhvd2V2 ZXIsIGJlY2F1c2UgbW9zdCBmaWxlcyBvZiBUZVgKaW5wdXQgY29udGFpbiBjb21tYW5kcyBhdCB0 aGUgYmVnaW5uaW5nIHRvIHNldCBwYXJhbWV0ZXJzIGFuZCBkZWZpbmUKbWFjcm9zLCB3aXRob3V0 IHdoaWNoIG5vIGxhdGVyIHBhcnQgb2YgdGhlIGZpbGUgd2lsbCBmb3JtYXQgY29ycmVjdGx5LgpU byBzb2x2ZSB0aGlzIHByb2JsZW0sIOKAmEMtYyBDLXLigJkgYWxsb3dzIHlvdSB0byBkZXNpZ25h dGUgYSBwYXJ0IG9mIHRoZQpmaWxlIGFzIGNvbnRhaW5pbmcgZXNzZW50aWFsIGNvbW1hbmRzOyBp dCBpcyBpbmNsdWRlZCBiZWZvcmUgdGhlCnNwZWNpZmllZCByZWdpb24gYXMgcGFydCBvZiB0aGUg aW5wdXQgdG8gVGVYLiAgVGhlIGRlc2lnbmF0ZWQgcGFydCBvZgp0aGUgZmlsZSBpcyBjYWxsZWQg dGhlICJoZWFkZXIiLgoKICAgVG8gaW5kaWNhdGUgdGhlIGJvdW5kcyBvZiB0aGUgaGVhZGVyIGlu IFBsYWluIFRlWCBtb2RlLCB5b3UgaW5zZXJ0CnR3byBzcGVjaWFsIHN0cmluZ3MgaW4gdGhlIGZp bGUuICBJbnNlcnQg4oCYJSoqc3RhcnQgb2YgaGVhZGVy4oCZIGJlZm9yZSB0aGUKaGVhZGVyLCBh bmQg4oCYJSoqZW5kIG9mIGhlYWRlcuKAmSBhZnRlciBpdC4gIEVhY2ggc3RyaW5nIG11c3QgYXBw ZWFyCmVudGlyZWx5IG9uIG9uZSBsaW5lLCBidXQgdGhlcmUgbWF5IGJlIG90aGVyIHRleHQgb24g dGhlIGxpbmUgYmVmb3JlIG9yCmFmdGVyLiAgVGhlIGxpbmVzIGNvbnRhaW5pbmcgdGhlIHR3byBz dHJpbmdzIGFyZSBpbmNsdWRlZCBpbiB0aGUgaGVhZGVyLgpJZiDigJglKipzdGFydCBvZiBoZWFk ZXLigJkgZG9lcyBub3QgYXBwZWFyIHdpdGhpbiB0aGUgZmlyc3QgMTAwIGxpbmVzIG9mCnRoZSBi dWZmZXIsIOKAmEMtYyBDLXLigJkgYXNzdW1lcyB0aGF0IHRoZXJlIGlzIG5vIGhlYWRlci4KCiAg IEluIExhVGVYIG1vZGUsIHRoZSBoZWFkZXIgYmVnaW5zIHdpdGgg4oCYXGRvY3VtZW50Y2xhc3Pi gJkgb3IK4oCYXGRvY3VtZW50c3R5bGXigJkgYW5kIGVuZHMgd2l0aCDigJhcYmVnaW57ZG9jdW1l bnR94oCZLiAgVGhlc2UgYXJlIGNvbW1hbmRzCnRoYXQgTGFUZVggcmVxdWlyZXMgeW91IHRvIHVz ZSBpbiBhbnkgY2FzZSwgc28gbm90aGluZyBzcGVjaWFsIG5lZWRzIHRvCmJlIGRvbmUgdG8gaWRl bnRpZnkgdGhlIGhlYWRlci4KCiAgIFRoZSBjb21tYW5kcyAo4oCYdGV4LWJ1ZmZlcuKAmSkgYW5k ICjigJh0ZXgtcmVnaW9u4oCZKSBkbyBhbGwgb2YgdGhlaXIgd29yawppbiBhIHRlbXBvcmFyeSBk aXJlY3RvcnksIGFuZCBkbyBub3QgaGF2ZSBhdmFpbGFibGUgYW55IG9mIHRoZSBhdXhpbGlhcnkK ZmlsZXMgbmVlZGVkIGJ5IFRlWCBmb3IgY3Jvc3MtcmVmZXJlbmNlczsgdGhlc2UgY29tbWFuZHMg YXJlIGdlbmVyYWxseQpub3Qgc3VpdGFibGUgZm9yIHJ1bm5pbmcgdGhlIGZpbmFsIGNvcHkgaW4g d2hpY2ggYWxsIG9mIHRoZQpjcm9zcy1yZWZlcmVuY2VzIG5lZWQgdG8gYmUgY29ycmVjdC4KCiAg IFdoZW4geW91IHdhbnQgdGhlIGF1eGlsaWFyeSBmaWxlcyBmb3IgY3Jvc3MgcmVmZXJlbmNlcywg dXNlIOKAmEMtYyBDLWbigJkKKOKAmHRleC1maWxl4oCZKSB3aGljaCBydW5zIFRlWCBvbiB0aGUg Y3VycmVudCBidWZmZXLigJlzIGZpbGUsIGluIHRoYXQgZmlsZeKAmXMKZGlyZWN0b3J5LiAgQmVm b3JlIHJ1bm5pbmcgVGVYLCBpdCBvZmZlcnMgdG8gc2F2ZSBhbnkgbW9kaWZpZWQgYnVmZmVycy4K R2VuZXJhbGx5LCB5b3UgbmVlZCB0byB1c2UgKOKAmHRleC1maWxl4oCZKSB0d2ljZSB0byBnZXQg dGhlCmNyb3NzLXJlZmVyZW5jZXMgcmlnaHQuCgogICBUaGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxl IOKAmHRleC1zdGFydC1vcHRpb25z4oCZIHNwZWNpZmllcyBvcHRpb25zIGZvcgp0aGUgVGVYIHJ1 bi4KCiAgIFRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg4oCYdGV4LXN0YXJ0LWNvbW1hbmRz4oCZ IHNwZWNpZmllcyBUZVggY29tbWFuZHMKZm9yIHN0YXJ0aW5nIFRlWC4gIFRoZSBkZWZhdWx0IHZh bHVlIGNhdXNlcyBUZVggdG8gcnVuIGluIG5vbnN0b3AgbW9kZS4KVG8gcnVuIFRlWCBpbnRlcmFj dGl2ZWx5LCBzZXQgdGhlIHZhcmlhYmxlIHRvIOKAmCIi4oCZLgoKICAgTGFyZ2UgVGVYIGRvY3Vt ZW50cyBhcmUgb2Z0ZW4gc3BsaXQgaW50byBzZXZlcmFsIGZpbGVz4oCUb25lIG1haW4gZmlsZSwK cGx1cyBzdWJmaWxlcy4gIFJ1bm5pbmcgVGVYIG9uIGEgc3ViZmlsZSB0eXBpY2FsbHkgZG9lcyBu b3Qgd29yazsgeW91CmhhdmUgdG8gcnVuIGl0IG9uIHRoZSBtYWluIGZpbGUuICBJbiBvcmRlciB0 byBtYWtlIOKAmHRleC1maWxl4oCZIHVzZWZ1bAp3aGVuIHlvdSBhcmUgZWRpdGluZyBhIHN1YmZp bGUsIHlvdSBjYW4gc2V0IHRoZSB2YXJpYWJsZSDigJh0ZXgtbWFpbi1maWxl4oCZCnRvIHRoZSBu YW1lIG9mIHRoZSBtYWluIGZpbGUuICBUaGVuIOKAmHRleC1maWxl4oCZIHJ1bnMgVGVYIG9uIHRo YXQgZmlsZS4KCiAgIFRoZSBtb3N0IGNvbnZlbmllbnQgd2F5IHRvIHVzZSDigJh0ZXgtbWFpbi1m aWxl4oCZIGlzIHRvIHNwZWNpZnkgaXQgaW4gYQpsb2NhbCB2YXJpYWJsZSBsaXN0IGluIGVhY2gg b2YgdGhlIHN1YmZpbGVzLiAgKk5vdGUgRmlsZSBWYXJpYWJsZXM6Oi4KCiAgIEZvciBMYVRlWCBm aWxlcywgeW91IGNhbiB1c2UgQmliVGVYIHRvIHByb2Nlc3MgdGhlIGF1eGlsaWFyeSBmaWxlIGZv cgp0aGUgY3VycmVudCBidWZmZXLigJlzIGZpbGUuICBCaWJUZVggbG9va3MgdXAgYmlibGlvZ3Jh cGhpYyBjaXRhdGlvbnMgaW4gYQpkYXRhIGJhc2UgYW5kIHByZXBhcmVzIHRoZSBjaXRlZCByZWZl cmVuY2VzIGZvciB0aGUgYmlibGlvZ3JhcGh5CnNlY3Rpb24uICBUaGUgY29tbWFuZCDigJhDLWMg PFRBQj7igJkgKOKAmHRleC1iaWJ0ZXgtZmlsZeKAmSkgcnVucyB0aGUgc2hlbGwKY29tbWFuZCAo 4oCYdGV4LWJpYnRleC1jb21tYW5k4oCZKSB0byBwcm9kdWNlIGEg4oCYLmJibOKAmSBmaWxlIGZv ciB0aGUgY3VycmVudApidWZmZXLigJlzIGZpbGUuICBHZW5lcmFsbHksIHlvdSBuZWVkIHRvIGRv IOKAmEMtYyBDLWbigJkgKOKAmHRleC1maWxl4oCZKSBvbmNlIHRvCmdlbmVyYXRlIHRoZSDigJgu YXV44oCZIGZpbGUsIHRoZW4gZG8g4oCYQy1jIDxUQUI+4oCZICjigJh0ZXgtYmlidGV4LWZpbGXi gJkpLCBhbmQKdGhlbiByZXBlYXQg4oCYQy1jIEMtZuKAmSAo4oCYdGV4LWZpbGXigJkpIHR3aWNl IG1vcmUgdG8gZ2V0IHRoZQpjcm9zcy1yZWZlcmVuY2VzIGNvcnJlY3QuCgogICBUbyBpbnZva2Ug c29tZSBvdGhlciBjb21waWxhdGlvbiBwcm9ncmFtIG9uIHRoZSBjdXJyZW50IFRlWCBidWZmZXIs CnR5cGUg4oCYQy1jIEMtY+KAmSAo4oCYdGV4LWNvbXBpbGXigJkpLiAgVGhpcyBjb21tYW5kIGtu b3dzIGhvdyB0byBwYXNzCmFyZ3VtZW50cyB0byBtYW55IGNvbW1vbiBwcm9ncmFtcywgaW5jbHVk aW5nIOKAmHBkZmxhdGV44oCZLCDigJh5YXDigJksIOKAmHhkdmnigJksCmFuZCDigJhkdmlwc+KA mS4gIFlvdSBjYW4gc2VsZWN0IHlvdXIgZGVzaXJlZCBjb21waWxhdGlvbiBwcm9ncmFtIHVzaW5n IHRoZQpzdGFuZGFyZCBjb21wbGV0aW9uIGtleXMgKCpub3RlIENvbXBsZXRpb246OikuCgoKKioq IDI1LjExLjQgVGVYIE1vZGUgTWlzY2VsbGFueQoKRW50ZXJpbmcgYW55IHZhcmlhbnQgb2YgVGVY IG1vZGUgcnVucyB0aGUgaG9va3Mg4oCYdGV4dC1tb2RlLWhvb2vigJkgYW5kCuKAmHRleC1tb2Rl LWhvb2vigJkuICBUaGVuIGl0IHJ1bnMgZWl0aGVyIOKAmHBsYWluLXRleC1tb2RlLWhvb2vigJks CuKAmGRvY3RleC1tb2RlLWhvb2vigJksIOKAmGxhdGV4LW1vZGUtaG9va+KAmSwgb3Ig4oCYc2xp dGV4LW1vZGUtaG9va+KAmSwgd2hpY2hldmVyCmlzIGFwcHJvcHJpYXRlLiAgU3RhcnRpbmcgdGhl IFRlWCBzaGVsbCBydW5zIHRoZSBob29rIOKAmHRleC1zaGVsbC1ob29r4oCZLgoqTm90ZSBIb29r czo6LgoKICAgVGhlIGNvbW1hbmRzIOKAmE0teCBpc28taXNvMnRleOKAmSwg4oCYTS14IGlzby10 ZXgyaXNv4oCZLCDigJhNLXggaXNvLWlzbzJndGV44oCZCmFuZCDigJhNLXggaXNvLWd0ZXgyaXNv 4oCZIGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgYmV0d2VlbiBMYXRpbi0xIGVuY29kZWQKZmlsZXMg YW5kIFRlWC1lbmNvZGVkIGVxdWl2YWxlbnRzLgoKCioqIDI1LjEyIFNHTUwgYW5kIEhUTUwgTW9k ZXMKClRoZSBtYWpvciBtb2RlcyBmb3IgU0dNTCBhbmQgSFRNTCBwcm92aWRlIGluZGVudGF0aW9u IHN1cHBvcnQgYW5kCmNvbW1hbmRzIGZvciBvcGVyYXRpbmcgb24gdGFncy4KCiAgIEhUTUwgY29u c2lzdHMgb2YgdHdvIG1vZGVz4oCUb25lLCBhIGJhc2ljIG1vZGUgY2FsbGVkIOKAmGh0bWwtbW9k ZeKAmSBpcyBhCnNsaWdodGx5IGN1c3RvbWl6ZWQgdmFyaWFudCBvZiBTR01MIG1vZGUuICBUaGUg b3RoZXIsIHdoaWNoIGlzIHVzZWQgYnkKZGVmYXVsdCBmb3IgSFRNTCBmaWxlcywgaXMgY2FsbGVk IOKAmG1odG1sLW1vZGXigJksIGFuZCBhdHRlbXB0cyB0byBwcm9wZXJseQpoYW5kbGUgSmF2YXNj cmlwdCBlbmNsb3NlZCBpbiBhIOKAmDxzY3JpcHQ+4oCZIGVsZW1lbnQgYW5kIENTUyBlbWJlZGRl ZCBpbiBhCuKAmDxzdHlsZT7igJkgZWxlbWVudC4KCuKAmEMtYyBDLW7igJkKICAgICBJbnRlcmFj dGl2ZWx5IHNwZWNpZnkgYSBzcGVjaWFsIGNoYXJhY3RlciBhbmQgaW5zZXJ0IHRoZSBTR01MCiAg ICAg4oCYJuKAmS1jb21tYW5kIGZvciB0aGF0IGNoYXJhY3RlciAo4oCYc2dtbC1uYW1lLWNoYXLi gJkpLgoK4oCYQy1jIEMtdOKAmQogICAgIEludGVyYWN0aXZlbHkgc3BlY2lmeSBhIHRhZyBhbmQg aXRzIGF0dHJpYnV0ZXMgKOKAmHNnbWwtdGFn4oCZKS4gIFRoaXMKICAgICBjb21tYW5kIGFza3Mg eW91IGZvciBhIHRhZyBuYW1lIGFuZCBmb3IgdGhlIGF0dHJpYnV0ZSB2YWx1ZXMsIHRoZW4KICAg ICBpbnNlcnRzIGJvdGggdGhlIG9wZW5pbmcgdGFnIGFuZCB0aGUgY2xvc2luZyB0YWcsIGxlYXZp bmcgcG9pbnQKICAgICBiZXR3ZWVuIHRoZW0uCgogICAgIFdpdGggYSBwcmVmaXggYXJndW1lbnQg TiwgdGhlIGNvbW1hbmQgcHV0cyB0aGUgdGFnIGFyb3VuZCB0aGUgTgogICAgIHdvcmRzIGFscmVh ZHkgcHJlc2VudCBpbiB0aGUgYnVmZmVyIGFmdGVyIHBvaW50LiAgV2hlbmV2ZXIgYSByZWdpb24K ICAgICBpcyBhY3RpdmUsIGl0IHB1dHMgdGhlIHRhZyBhcm91bmQgdGhlIHJlZ2lvbiAod2hlbiBU cmFuc2llbnQgTWFyawogICAgIG1vZGUgaXMgb2ZmLCBpdCBkb2VzIHRoaXMgd2hlbiBhIG51bWVy aWMgYXJndW1lbnQgb2Yg4oiSMSBpcwogICAgIHN1cHBsaWVkLikKCuKAmEMtYyBDLWHigJkKICAg ICBJbnRlcmFjdGl2ZWx5IGluc2VydCBhdHRyaWJ1dGUgdmFsdWVzIGZvciB0aGUgY3VycmVudCB0 YWcKICAgICAo4oCYc2dtbC1hdHRyaWJ1dGVz4oCZKS4KCuKAmEMtYyBDLWbigJkKICAgICBTa2lw IGFjcm9zcyBhIGJhbGFuY2VkIHRhZyBncm91cCAod2hpY2ggZXh0ZW5kcyBmcm9tIGFuIG9wZW5p bmcgdGFnCiAgICAgdGhyb3VnaCBpdHMgY29ycmVzcG9uZGluZyBjbG9zaW5nIHRhZykgKOKAmHNn bWwtc2tpcC10YWctZm9yd2FyZOKAmSkuCiAgICAgQSBudW1lcmljIGFyZ3VtZW50IGFjdHMgYXMg YSByZXBlYXQgY291bnQuCgrigJhDLWMgQy1i4oCZCiAgICAgU2tpcCBiYWNrd2FyZCBhY3Jvc3Mg YSBiYWxhbmNlZCB0YWcgZ3JvdXAgKHdoaWNoIGV4dGVuZHMgZnJvbSBhbgogICAgIG9wZW5pbmcg dGFnIHRocm91Z2ggaXRzIGNvcnJlc3BvbmRpbmcgY2xvc2luZyB0YWcpCiAgICAgKOKAmHNnbWwt c2tpcC10YWctYmFja3dhcmTigJkpLiAgQSBudW1lcmljIGFyZ3VtZW50IGFjdHMgYXMgYSByZXBl YXQKICAgICBjb3VudC4KCuKAmEMtYyBDLWTigJkKICAgICBEZWxldGUgdGhlIHRhZyBhdCBvciBh ZnRlciBwb2ludCwgYW5kIGRlbGV0ZSB0aGUgbWF0Y2hpbmcgdGFnIHRvbwogICAgICjigJhzZ21s LWRlbGV0ZS10YWfigJkpLiAgSWYgdGhlIHRhZyBhdCBvciBhZnRlciBwb2ludCBpcyBhbiBvcGVu aW5nCiAgICAgdGFnLCBkZWxldGUgdGhlIGNsb3NpbmcgdGFnIHRvbzsgaWYgaXQgaXMgYSBjbG9z aW5nIHRhZywgZGVsZXRlIHRoZQogICAgIG9wZW5pbmcgdGFnIHRvby4KCuKAmEMtYyA/IFRBRyA8 UkVUPuKAmQogICAgIERpc3BsYXkgYSBkZXNjcmlwdGlvbiBvZiB0aGUgbWVhbmluZyBvZiB0YWcg VEFHICjigJhzZ21sLXRhZy1oZWxw4oCZKS4KICAgICBJZiB0aGUgYXJndW1lbnQgVEFHIGlzIGVt cHR5LCBkZXNjcmliZSB0aGUgdGFnIGF0IHBvaW50LgoK4oCYQy1jIC/igJkKICAgICBJbnNlcnQg YSBjbG9zZSB0YWcgZm9yIHRoZSBpbm5lcm1vc3QgdW50ZXJtaW5hdGVkIHRhZwogICAgICjigJhz Z21sLWNsb3NlLXRhZ+KAmSkuICBJZiBjYWxsZWQgd2l0aGluIGEgdGFnIG9yIGEgY29tbWVudCwg Y2xvc2UgaXQKICAgICBpbnN0ZWFkIG9mIGluc2VydGluZyBhIGNsb3NlIHRhZy4KCuKAmEMtYyA4 4oCZCiAgICAgVG9nZ2xlIGEgbWlub3IgbW9kZSBpbiB3aGljaCBMYXRpbi0xIGNoYXJhY3RlcnMg aW5zZXJ0IHRoZQogICAgIGNvcnJlc3BvbmRpbmcgU0dNTCBjb21tYW5kcyB0aGF0IHN0YW5kIGZv ciB0aGVtLCBpbnN0ZWFkIG9mIHRoZQogICAgIGNoYXJhY3RlcnMgdGhlbXNlbHZlcyAo4oCYc2dt bC1uYW1lLThiaXQtbW9kZeKAmSkuCgrigJhDLWMgQy124oCZCiAgICAgUnVuIGEgc2hlbGwgY29t bWFuZCAod2hpY2ggeW91IG11c3Qgc3BlY2lmeSkgdG8gdmFsaWRhdGUgdGhlCiAgICAgY3VycmVu dCBidWZmZXIgYXMgU0dNTCAo4oCYc2dtbC12YWxpZGF0ZeKAmSkuICAoSW4gSFRNTCBtb2RlIHRo aXMga2V5CiAgICAgc2VxdWVuY2UgcnVucyBhIGRpZmZlcmVudCBjb21tYW5kLikKCuKAmEMtYyA8 VEFCPuKAmQogICAgIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBleGlzdGluZyB0YWdzIGluIHRo ZSBidWZmZXIuICBUaGlzIGNhbiBiZQogICAgIHVzZWQgYXMgYSBjaGVhcCBwcmV2aWV3ICjigJhz Z21sLXRhZ3MtaW52aXNpYmxl4oCZKS4KCiAgIFRoZSBtYWpvciBtb2RlIGZvciBlZGl0aW5nIFhN TCBkb2N1bWVudHMgaXMgY2FsbGVkIG5YTUwgbW9kZS4gIFRoaXMKaXMgYSBwb3dlcmZ1bCBtYWpv ciBtb2RlIHRoYXQgY2FuIHJlY29nbml6ZSBtYW55IGV4aXN0aW5nIFhNTCBzY2hlbWFzCmFuZCB1 c2UgdGhlbSB0byBwcm92aWRlIGNvbXBsZXRpb24gb2YgWE1MIGVsZW1lbnRzIHZpYSDigJhNLTxU QUI+4oCZLCBhcwp3ZWxsIGFzIG9uLXRoZS1mbHkgWE1MIHZhbGlkYXRpb24gd2l0aCBlcnJvciBo aWdobGlnaHRpbmcuICBUbyBlbmFibGUKblhNTCBtb2RlIGluIGFuIGV4aXN0aW5nIGJ1ZmZlciwg dHlwZSDigJhNLXggbnhtbC1tb2Rl4oCZLCBvciwgZXF1aXZhbGVudGx5LArigJhNLXggeG1sLW1v ZGXigJkuICBFbWFjcyB1c2VzIG5YTUwgbW9kZSBmb3IgZmlsZXMgd2hpY2ggaGF2ZSB0aGUgZXh0 ZW5zaW9uCuKAmC54bWzigJkuICBGb3IgWEhUTUwgZmlsZXMsIHdoaWNoIGhhdmUgdGhlIGV4dGVu c2lvbiDigJgueGh0bWzigJksIEVtYWNzIHVzZXMKSFRNTCBtb2RlIGJ5IGRlZmF1bHQ7IHlvdSBj YW4gbWFrZSBpdCB1c2UgblhNTCBtb2RlIGJ5IGN1c3RvbWl6aW5nIHRoZQp2YXJpYWJsZSDigJhh dXRvLW1vZGUtYWxpc3TigJkgKCpub3RlIENob29zaW5nIE1vZGVzOjopLiAgblhNTCBtb2RlIGlz CmRlc2NyaWJlZCBpbiBpdHMgb3duIG1hbnVhbDogKk5vdGUgblhNTCBNb2RlOiAobnhtbC1tb2Rl KVRvcC4KCiAgIFlvdSBtYXkgY2hvb3NlIHRvIHVzZSB0aGUgbGVzcyBwb3dlcmZ1bCBTR01MIG1v ZGUgZm9yIGVkaXRpbmcgWE1MLApzaW5jZSBYTUwgaXMgYSBzdHJpY3Qgc3Vic2V0IG9mIFNHTUwu ICBUbyBlbmFibGUgU0dNTCBtb2RlIGluIGFuCmV4aXN0aW5nIGJ1ZmZlciwgdHlwZSDigJhNLXgg c2dtbC1tb2Rl4oCZLiAgT24gZW5hYmxpbmcgU0dNTCBtb2RlLCBFbWFjcwpleGFtaW5lcyB0aGUg YnVmZmVyIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IGlzIFhNTDsgaWYgc28sIGl0IHNldHMgdGhl CnZhcmlhYmxlIOKAmHNnbWwteG1sLW1vZGXigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLiAg VGhpcyBjYXVzZXMgU0dNTCBtb2Rl4oCZcwp0YWcgaW5zZXJ0aW9uIGNvbW1hbmRzLCBkZXNjcmli ZWQgYWJvdmUsIHRvIGFsd2F5cyBpbnNlcnQgZXhwbGljaXQKY2xvc2luZyB0YWdzIGFzIHdlbGwu CgoKKiogMjUuMTMgTnJvZmYgTW9kZQoKTnJvZmYgbW9kZSwgYSBtYWpvciBtb2RlIGRlcml2ZWQg ZnJvbSBUZXh0IG1vZGUsIGlzIHNwZWNpYWxpemVkIGZvcgplZGl0aW5nIG5yb2ZmIGZpbGVzIChl LmcuLCBVbml4IG1hbiBwYWdlcykuICBUeXBlIOKAmE0teCBucm9mZi1tb2Rl4oCZIHRvCmVudGVy IHRoaXMgbW9kZS4gIEVudGVyaW5nIE5yb2ZmIG1vZGUgcnVucyB0aGUgaG9vayDigJh0ZXh0LW1v ZGUtaG9va+KAmSwKdGhlbiDigJhucm9mZi1tb2RlLWhvb2vigJkgKCpub3RlIEhvb2tzOjopLgoK ICAgSW4gTnJvZmYgbW9kZSwgbnJvZmYgY29tbWFuZCBsaW5lcyBhcmUgdHJlYXRlZCBhcyBwYXJh Z3JhcGgKc2VwYXJhdG9ycywgcGFnZXMgYXJlIHNlcGFyYXRlZCBieSDigJguYnDigJkgY29tbWFu ZHMsIGFuZCBjb21tZW50cyBzdGFydAp3aXRoIGJhY2tzbGFzaC1kb3VibGVxdW90ZS4gIEl0IGFs c28gZGVmaW5lcyB0aGVzZSBjb21tYW5kczoKCuKAmE0tbuKAmQogICAgIE1vdmUgdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgbmV4dCBsaW5lIHRoYXQgaXNu4oCZdCBhbiBucm9mZiBjb21tYW5kCiAg ICAgKOKAmG5yb2ZmLWZvcndhcmQtdGV4dC1saW5l4oCZKS4gIEFuIGFyZ3VtZW50IGlzIGEgcmVw ZWF0IGNvdW50LgrigJhNLXDigJkKICAgICBMaWtlIOKAmE0tbuKAmSBidXQgbW92ZSB1cCAo4oCY bnJvZmYtYmFja3dhcmQtdGV4dC1saW5l4oCZKS4K4oCYTS0/4oCZCiAgICAgRGlzcGxheXMgaW4g dGhlIGVjaG8gYXJlYSB0aGUgbnVtYmVyIG9mIHRleHQgbGluZXMgKGxpbmVzIHRoYXQgYXJlCiAg ICAgbm90IG5yb2ZmIGNvbW1hbmRzKSBpbiB0aGUgcmVnaW9uICjigJhucm9mZi1jb3VudC10ZXh0 LWxpbmVz4oCZKS4KCiAgIEVsZWN0cmljIE5yb2ZmIG1vZGUgaXMgYSBidWZmZXItbG9jYWwgbWlu b3IgbW9kZSB0aGF0IGNhbiBiZSB1c2VkCndpdGggTnJvZmYgbW9kZS4gIFRvIHRvZ2dsZSB0aGlz IG1pbm9yIG1vZGUsIHR5cGUg4oCYTS14Cm5yb2ZmLWVsZWN0cmljLW1vZGXigJkgKCpub3RlIE1p bm9yIE1vZGVzOjopLiAgV2hlbiB0aGUgbW9kZSBpcyBvbiwgZWFjaAp0aW1lIHlvdSB0eXBlIDxS RVQ+IHRvIGVuZCBhIGxpbmUgY29udGFpbmluZyBhbiBucm9mZiBjb21tYW5kIHRoYXQgb3BlbnMK YSBraW5kIG9mIGdyb3VwaW5nLCB0aGUgbnJvZmYgY29tbWFuZCB0byBjbG9zZSB0aGF0IGdyb3Vw aW5nIGlzCmF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQgb24gdGhlIGZvbGxvd2luZyBsaW5lLgoKICAg SWYgeW91IHVzZSBPdXRsaW5lIG1pbm9yIG1vZGUgd2l0aCBOcm9mZiBtb2RlICgqbm90ZSBPdXRs aW5lIE1vZGU6OiksCmhlYWRpbmcgbGluZXMgYXJlIGxpbmVzIG9mIHRoZSBmb3JtIOKAmC5I4oCZ IGZvbGxvd2VkIGJ5IGEgbnVtYmVyICh0aGUKaGVhZGVyIGxldmVsKS4KCgoqKiAyNS4xNCBFbnJp Y2hlZCBUZXh0CgpFbnJpY2hlZCBtb2RlIGlzIGEgbWlub3IgbW9kZSBmb3IgZWRpdGluZyBmb3Jt YXR0ZWQgdGV4dCBmaWxlcyBpbiBhCldZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBH ZXQpIGZhc2hpb24uICBXaGVuIEVucmljaGVkIG1vZGUgaXMKZW5hYmxlZCwgeW91IGNhbiBhcHBs eSB2YXJpb3VzIGZvcm1hdHRpbmcgcHJvcGVydGllcyB0byB0aGUgdGV4dCBpbiB0aGUKYnVmZmVy LCBzdWNoIGFzIGZvbnRzIGFuZCBjb2xvcnM7IHVwb24gc2F2aW5nIHRoZSBidWZmZXIsIHRob3Nl CnByb3BlcnRpZXMgYXJlIHNhdmVkIHRvZ2V0aGVyIHdpdGggdGhlIHRleHQsIHVzaW5nIHRoZSBN SU1FCuKAmHRleHQvZW5yaWNoZWTigJkgZmlsZSBmb3JtYXQuCgogICBFbnJpY2hlZCBtb2RlIGlz IHR5cGljYWxseSB1c2VkIHdpdGggVGV4dCBtb2RlICgqbm90ZSBUZXh0IE1vZGU6OikuCkl0IGlz IF9ub3RfIGNvbXBhdGlibGUgd2l0aCBGb250IExvY2sgbW9kZSwgd2hpY2ggaXMgdXNlZCBieSBt YW55IG1ham9yCm1vZGVzLCBpbmNsdWRpbmcgbW9zdCBwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2Rl cywgZm9yIHN5bnRheApoaWdobGlnaHRpbmcgKCpub3RlIEZvbnQgTG9jazo6KS4gIFVubGlrZSBF bnJpY2hlZCBtb2RlLCBGb250IExvY2sgbW9kZQphc3NpZ25zIHRleHQgcHJvcGVydGllcyBhdXRv bWF0aWNhbGx5LCBiYXNlZCBvbiB0aGUgY3VycmVudCBidWZmZXIKY29udGVudHM7IHRob3NlIHBy b3BlcnRpZXMgYXJlIG5vdCBzYXZlZCB0byBkaXNrLgoKICAgVGhlIGZpbGUg4oCYZW5yaWNoZWQu dHh04oCZIGluIEVtYWNz4oCZcyDigJhkYXRhLWRpcmVjdG9yeeKAmSBzZXJ2ZXMgYXMgYW4KZXhh bXBsZSBvZiB0aGUgZmVhdHVyZXMgb2YgRW5yaWNoZWQgbW9kZS4KCisgTWVudToKCiAgLSBFbnJp Y2hlZCBNb2RlOjogICAgICAgICAgIEVudGVyaW5nIGFuZCBleGl0aW5nIEVucmljaGVkIG1vZGUu CiAgLSBIYXJkIGFuZCBTb2Z0IE5ld2xpbmVzOjogIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IGtp bmRzIG9mIG5ld2xpbmVzLgogIC0gRWRpdGluZyBGb3JtYXQgSW5mbzo6ICAgICBIb3cgdG8gZWRp dCB0ZXh0IHByb3BlcnRpZXMuCiAgLSBFbnJpY2hlZCBGYWNlczo6ICAgICAgICAgIEJvbGQsIGl0 YWxpYywgdW5kZXJsaW5lLCBldGMuCiAgLSBFbnJpY2hlZCBJbmRlbnRhdGlvbjo6ICAgIENoYW5n aW5nIHRoZSBsZWZ0IGFuZCByaWdodCBtYXJnaW5zLgogIC0gRW5yaWNoZWQgSnVzdGlmaWNhdGlv bjo6ICBDZW50ZXJpbmcsIHNldHRpbmcgdGV4dCBmbHVzaCB3aXRoIHRoZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZWZ0IG9yIHJpZ2h0IG1hcmdpbiwgZXRjLgogIC0gRW5yaWNoZWQg UHJvcGVydGllczo6ICAgICBUaGUg4oCcc3BlY2lhbCB0ZXh0IHByb3BlcnRpZXPigJ0gc3VibWVu dS4KCgoqKiogMjUuMTQuMSBFbnJpY2hlZCBNb2RlCgpFbnJpY2hlZCBtb2RlIGlzIGEgYnVmZmVy LWxvY2FsIG1pbm9yIG1vZGUgKCpub3RlIE1pbm9yIE1vZGVzOjopLiAgV2hlbgp5b3UgdmlzaXQg YSBmaWxlIHRoYXQgaGFzIGJlZW4gc2F2ZWQgaW4gdGhlIOKAmHRleHQvZW5yaWNoZWTigJkgZm9y bWF0LApFbWFjcyBhdXRvbWF0aWNhbGx5IGVuYWJsZXMgRW5yaWNoZWQgbW9kZSwgYW5kIGFwcGxp ZXMgdGhlIGZvcm1hdHRpbmcKaW5mb3JtYXRpb24gaW4gdGhlIGZpbGUgdG8gdGhlIGJ1ZmZlciB0 ZXh0LiAgV2hlbiB5b3Ugc2F2ZSBhIGJ1ZmZlciB3aXRoCkVucmljaGVkIG1vZGUgZW5hYmxlZCwg aXQgaXMgc2F2ZWQgdXNpbmcgdGhlIOKAmHRleHQvZW5yaWNoZWTigJkgZm9ybWF0LAppbmNsdWRp bmcgdGhlIGZvcm1hdHRpbmcgaW5mb3JtYXRpb24uCgogICBUbyBjcmVhdGUgYSBuZXcgZmlsZSBv ZiBmb3JtYXR0ZWQgdGV4dCwgdmlzaXQgdGhlIG5vbmV4aXN0ZW50IGZpbGUKYW5kIHR5cGUg4oCY TS14IGVucmljaGVkLW1vZGXigJkuICBUaGlzIGNvbW1hbmQgYWN0dWFsbHkgdG9nZ2xlcyBFbnJp Y2hlZAptb2RlLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgaXQgZW5hYmxlcyBFbnJpY2hlZCBt b2RlIGlmIHRoZSBhcmd1bWVudAppcyBwb3NpdGl2ZSwgYW5kIGRpc2FibGVzIEVucmljaGVkIG1v ZGUgb3RoZXJ3aXNlLiAgSWYgeW91IGRpc2FibGUKRW5yaWNoZWQgbW9kZSwgRW1hY3Mgbm8gbG9u Z2VyIHNhdmVzIHRoZSBidWZmZXIgdXNpbmcgdGhlCuKAmHRleHQvZW5yaWNoZWTigJkgZm9ybWF0 OyBhbnkgZm9ybWF0dGluZyBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkCnRvIHRoZSBi dWZmZXIgcmVtYWluIGluIHRoZSBidWZmZXIsIGJ1dCB0aGV5IGFyZSBub3Qgc2F2ZWQgdG8gZGlz ay4KCiAgIEVucmljaGVkIG1vZGUgZG9lcyBub3Qgc2F2ZSBhbGwgRW1hY3MgdGV4dCBwcm9wZXJ0 aWVzLCBvbmx5IHRob3NlCnNwZWNpZmllZCBpbiB0aGUgdmFyaWFibGUg4oCYZW5yaWNoZWQtdHJh bnNsYXRpb25z4oCZLiAgVGhlc2UgaW5jbHVkZQpwcm9wZXJ0aWVzIGZvciBmb250cywgY29sb3Jz LCBpbmRlbnRhdGlvbiwgYW5kIGp1c3RpZmljYXRpb24uCgogICBJZiB5b3UgdmlzaXQgYSBmaWxl IGFuZCBFbWFjcyBmYWlscyB0byByZWNvZ25pemUgdGhhdCBpdCBpcyBpbiB0aGUK4oCYdGV4dC9l bnJpY2hlZOKAmSBmb3JtYXQsIHR5cGUg4oCYTS14IGZvcm1hdC1kZWNvZGUtYnVmZmVy4oCZLiAg VGhpcyBjb21tYW5kCnByb21wdHMgZm9yIGEgZmlsZSBmb3JtYXQsIGFuZCByZS1yZWFkcyB0aGUg ZmlsZSBpbiB0aGF0IGZvcm1hdC4KU3BlY2lmeWluZyB0aGUg4oCYdGV4dC9lbnJpY2hlZOKAmSBm b3JtYXQgYXV0b21hdGljYWxseSBlbmFibGVzIEVucmljaGVkCm1vZGUuCgogICBUbyB2aWV3IGEg 4oCYdGV4dC9lbnJpY2hlZOKAmSBmaWxlIGluIHJhdyBmb3JtIChhcyBwbGFpbiB0ZXh0IHdpdGgg bWFya3VwCnRhZ3MgcmF0aGVyIHRoYW4gZm9ybWF0dGVkIHRleHQpLCB1c2Ug4oCYTS14IGZpbmQt ZmlsZS1saXRlcmFsbHnigJkgKCpub3RlClZpc2l0aW5nOjopLgoKICAgKk5vdGUgRm9ybWF0IENv bnZlcnNpb246IChlbGlzcClGb3JtYXQgQ29udmVyc2lvbiwgZm9yIGRldGFpbHMgb2YgaG93CkVt YWNzIHJlY29nbml6ZXMgYW5kIGNvbnZlcnRzIGZpbGUgZm9ybWF0cyBsaWtlIOKAmHRleHQvZW5y aWNoZWTigJkuICAqTm90ZQooZWxpc3ApVGV4dCBQcm9wZXJ0aWVzOjosIGZvciBtb3JlIGluZm9y bWF0aW9uIGFib3V0IHRleHQgcHJvcGVydGllcy4KCgoqKiogMjUuMTQuMiBIYXJkIGFuZCBTb2Z0 IE5ld2xpbmVzCgpJbiBFbnJpY2hlZCBtb2RlLCBFbWFjcyBkaXN0aW5ndWlzaGVzIGJldHdlZW4g dHdvIGRpZmZlcmVudCBraW5kcyBvZgpuZXdsaW5lcywgImhhcmQiIG5ld2xpbmVzIGFuZCAic29m dCIgbmV3bGluZXMuICBZb3UgY2FuIGFsc28gZW5hYmxlIG9yCmRpc2FibGUgdGhpcyBmZWF0dXJl IGluIG90aGVyIGJ1ZmZlcnMsIGJ5IHR5cGluZyDigJhNLXgKdXNlLWhhcmQtbmV3bGluZXPigJku CgogICBIYXJkIG5ld2xpbmVzIGFyZSB1c2VkIHRvIHNlcGFyYXRlIHBhcmFncmFwaHMsIG9yIGFu eXdoZXJlIHRoZXJlCm5lZWRzIHRvIGJlIGEgbGluZSBicmVhayByZWdhcmRsZXNzIG9mIGhvdyB0 aGUgdGV4dCBpcyBmaWxsZWQ7IHNvZnQKbmV3bGluZXMgYXJlIHVzZWQgZm9yIGZpbGxpbmcuICBU aGUgPFJFVD4gKOKAmG5ld2xpbmXigJkpIGFuZCDigJhDLW/igJkKKOKAmG9wZW4tbGluZeKAmSkg Y29tbWFuZHMgaW5zZXJ0IGhhcmQgbmV3bGluZXMuICBUaGUgZmlsbCBjb21tYW5kcywKaW5jbHVk aW5nIEF1dG8gRmlsbCAoKm5vdGUgQXV0byBGaWxsOjopLCBpbnNlcnQgb25seSBzb2Z0IG5ld2xp bmVzIGFuZApkZWxldGUgb25seSBzb2Z0IG5ld2xpbmVzLCBsZWF2aW5nIGhhcmQgbmV3bGluZXMg YWxvbmUuCgogICBUaHVzLCB3aGVuIGVkaXRpbmcgd2l0aCBFbnJpY2hlZCBtb2RlLCB5b3Ugc2hv dWxkIG5vdCB1c2UgPFJFVD4gb3IK4oCYQy1v4oCZIHRvIGJyZWFrIGxpbmVzIGluIHRoZSBtaWRk bGUgb2YgZmlsbGVkIHBhcmFncmFwaHMuICBVc2UgQXV0byBGaWxsCm1vZGUgb3IgZXhwbGljaXQg ZmlsbCBjb21tYW5kcyAoKm5vdGUgRmlsbCBDb21tYW5kczo6KSBpbnN0ZWFkLiAgVXNlCjxSRVQ+ IG9yIOKAmEMtb+KAmSB3aGVyZSBsaW5lIGJyZWFrcyBzaG91bGQgYWx3YXlzIHJlbWFpbiwgc3Vj aCBhcyBpbiB0YWJsZXMKYW5kIGxpc3RzLiAgRm9yIHN1Y2ggbGluZXMsIHlvdSBtYXkgYWxzbyB3 YW50IHRvIHNldCB0aGUganVzdGlmaWNhdGlvbgpzdHlsZSB0byDigJh1bmZpbGxlZOKAmSAoKm5v dGUgRW5yaWNoZWQgSnVzdGlmaWNhdGlvbjo6KS4KCgoqKiogMjUuMTQuMyBFZGl0aW5nIEZvcm1h dCBJbmZvcm1hdGlvbgoKVGhlIGVhc2llc3Qgd2F5IHRvIGFsdGVyIHByb3BlcnRpZXMgaXMgd2l0 aCB0aGUg4oCYVGV4dCBQcm9wZXJ0aWVz4oCZIG1lbnUuCllvdSBjYW4gZ2V0IHRvIHRoaXMgbWVu dSBmcm9tIHRoZSDigJhFZGl04oCZIG1lbnUgaW4gdGhlIG1lbnUgYmFyICgqbm90ZQpNZW51IEJh cjo6KSwgb3Igd2l0aCDigJhDLW1vdXNlLTLigJkgKCpub3RlIE1lbnUgTW91c2UgQ2xpY2tzOjop LiAgU29tZSBvZgp0aGUgY29tbWFuZHMgaW4gdGhlIOKAmFRleHQgUHJvcGVydGllc+KAmSBtZW51 IGFyZSBsaXN0ZWQgYmVsb3cgKHlvdSBjYW4KYWxzbyBpbnZva2UgdGhlbSB3aXRoIOKAmE0teOKA mSk6CgrigJhSZW1vdmUgRmFjZSBQcm9wZXJ0aWVz4oCZCiAgICAgUmVtb3ZlIGZhY2UgcHJvcGVy dGllcyBmcm9tIHRoZSByZWdpb24KICAgICAo4oCYZmFjZW1lbnUtcmVtb3ZlLWZhY2UtcHJvcHPi gJkpLgoK4oCYUmVtb3ZlIFRleHQgUHJvcGVydGllc+KAmQogICAgIFJlbW92ZSBhbGwgdGV4dCBw cm9wZXJ0aWVzIGZyb20gdGhlIHJlZ2lvbiwgaW5jbHVkaW5nIGZhY2UKICAgICBwcm9wZXJ0aWVz ICjigJhmYWNlbWVudS1yZW1vdmUtYWxs4oCZKS4KCuKAmERlc2NyaWJlIFByb3BlcnRpZXPigJkK ICAgICBMaXN0IGFsbCB0ZXh0IHByb3BlcnRpZXMgYW5kIG90aGVyIGluZm9ybWF0aW9uIGFib3V0 IHRoZSBjaGFyYWN0ZXIKICAgICBmb2xsb3dpbmcgcG9pbnQgKOKAmGRlc2NyaWJlLXRleHQtcHJv cGVydGllc+KAmSkuCgrigJhEaXNwbGF5IEZhY2Vz4oCZCiAgICAgRGlzcGxheSBhIGxpc3Qgb2Yg ZGVmaW5lZCBmYWNlcyAo4oCYbGlzdC1mYWNlcy1kaXNwbGF54oCZKS4gICpOb3RlCiAgICAgRmFj ZXM6Oi4KCuKAmERpc3BsYXkgQ29sb3Jz4oCZCiAgICAgRGlzcGxheSBhIGxpc3Qgb2YgZGVmaW5l ZCBjb2xvcnMgKOKAmGxpc3QtY29sb3JzLWRpc3BsYXnigJkpLiAgKk5vdGUKICAgICBDb2xvcnM6 Oi4KClRoZSBvdGhlciBtZW51IGVudHJpZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZm9sbG93aW5n IHNlY3Rpb25zLgoKCioqKiAyNS4xNC40IEZhY2VzIGluIEVucmljaGVkIFRleHQKClRoZSBmb2xs b3dpbmcgY29tbWFuZHMgY2FuIGJlIHVzZWQgdG8gYWRkIG9yIHJlbW92ZSBmYWNlcyAoKm5vdGUK RmFjZXM6OikuICBFYWNoIGFwcGxpZXMgdG8gdGhlIHRleHQgaW4gdGhlIHJlZ2lvbiBpZiB0aGUg bWFyayBpcyBhY3RpdmUsCmFuZCB0byB0aGUgbmV4dCBzZWxmLWluc2VydGluZyBjaGFyYWN0ZXIg aWYgdGhlIG1hcmsgaXMgaW5hY3RpdmUuICBXaXRoCmEgcHJlZml4IGFyZ3VtZW50LCBlYWNoIGNv bW1hbmQgYXBwbGllcyB0byB0aGUgbmV4dCBzZWxmLWluc2VydGluZwpjaGFyYWN0ZXIgZXZlbiBp ZiB0aGUgcmVnaW9uIGlzIGFjdGl2ZS4KCuKAmE0tbyBk4oCZCiAgICAgUmVtb3ZlIGFsbCDigJhm YWNl4oCZIHByb3BlcnRpZXMgKOKAmGZhY2VtZW51LXNldC1kZWZhdWx04oCZKS4KCuKAmE0tbyBi 4oCZCiAgICAgQXBwbHkgdGhlIOKAmGJvbGTigJkgZmFjZSAo4oCYZmFjZW1lbnUtc2V0LWJvbGTi gJkpLgoK4oCYTS1vIGnigJkKICAgICBBcHBseSB0aGUg4oCYaXRhbGlj4oCZIGZhY2UgKOKAmGZh Y2VtZW51LXNldC1pdGFsaWPigJkpLgoK4oCYTS1vIGzigJkKICAgICBBcHBseSB0aGUg4oCYYm9s ZC1pdGFsaWPigJkgZmFjZSAo4oCYZmFjZW1lbnUtc2V0LWJvbGQtaXRhbGlj4oCZKS4KCuKAmE0t byB14oCZCiAgICAgQXBwbHkgdGhlIOKAmHVuZGVybGluZeKAmSBmYWNlICjigJhmYWNlbWVudS1z ZXQtdW5kZXJsaW5l4oCZKS4KCuKAmE0tbyBvIEZBQ0UgPFJFVD7igJkKICAgICBBcHBseSB0aGUg ZmFjZSBGQUNFICjigJhmYWNlbWVudS1zZXQtZmFjZeKAmSkuCgrigJhNLXggZmFjZW1lbnUtc2V0 LWZvcmVncm91bmTigJkKICAgICBQcm9tcHQgZm9yIGEgY29sb3IgKCpub3RlIENvbG9yczo6KSwg YW5kIGFwcGx5IGl0IGFzIGEgZm9yZWdyb3VuZAogICAgIGNvbG9yLgoK4oCYTS14IGZhY2VtZW51 LXNldC1iYWNrZ3JvdW5k4oCZCiAgICAgUHJvbXB0IGZvciBhIGNvbG9yLCBhbmQgYXBwbHkgaXQg YXMgYSBiYWNrZ3JvdW5kIGNvbG9yLgoKVGhlc2UgY29tbWFuZHMgYXJlIGFsc28gYXZhaWxhYmxl IHZpYSB0aGUgVGV4dCBQcm9wZXJ0aWVzIG1lbnUuCgogICBBIHNlbGYtaW5zZXJ0aW5nIGNoYXJh Y3RlciBub3JtYWxseSBpbmhlcml0cyB0aGUgZmFjZSBwcm9wZXJ0aWVzIChhbmQKbW9zdCBvdGhl ciB0ZXh0IHByb3BlcnRpZXMpIGZyb20gdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIgaW4gdGhlIGJ1 ZmZlci4KSWYgeW91IHVzZSBvbmUgb2YgdGhlIGFib3ZlIGNvbW1hbmRzIHRvIHNwZWNpZnkgdGhl IGZhY2UgZm9yIHRoZSBuZXh0CnNlbGYtaW5zZXJ0aW5nIGNoYXJhY3RlciwgdGhhdCBjaGFyYWN0 ZXIgd2lsbCBub3QgaW5oZXJpdCB0aGUgZmFjZXMKcHJvcGVydGllcyBmcm9tIHRoZSBwcmVjZWRp bmcgY2hhcmFjdGVyLCBidXQgaXQgd2lsbCBzdGlsbCBpbmhlcml0IG90aGVyCnRleHQgcHJvcGVy dGllcy4KCiAgIEVucmljaGVkIG1vZGUgZGVmaW5lcyB0d28gYWRkaXRpb25hbCBmYWNlczog4oCY ZXhjZXJwdOKAmSBhbmQg4oCYZml4ZWTigJkuClRoZXNlIGNvcnJlc3BvbmQgdG8gY29kZXMgdXNl ZCBpbiB0aGUgdGV4dC9lbnJpY2hlZCBmaWxlIGZvcm1hdC4gIFRoZQrigJhleGNlcnB04oCZIGZh Y2UgaXMgaW50ZW5kZWQgZm9yIHF1b3RhdGlvbnM7IGJ5IGRlZmF1bHQsIGl0IGFwcGVhcnMgdGhl CnNhbWUgYXMg4oCYaXRhbGlj4oCZLiAgVGhlIOKAmGZpeGVk4oCZIGZhY2Ugc3BlY2lmaWVzIGZp eGVkLXdpZHRoIHRleHQ7IGJ5CmRlZmF1bHQsIGl0IGFwcGVhcnMgdGhlIHNhbWUgYXMg4oCYYm9s ZOKAmS4KCgoqKiogMjUuMTQuNSBJbmRlbnRhdGlvbiBpbiBFbnJpY2hlZCBUZXh0CgpJbiBFbnJp Y2hlZCBtb2RlLCB5b3UgY2FuIHNwZWNpZnkgZGlmZmVyZW50IGFtb3VudHMgb2YgaW5kZW50YXRp b24gZm9yCnRoZSByaWdodCBvciBsZWZ0IG1hcmdpbiBvZiBhIHBhcmFncmFwaCBvciBhIHBhcnQg b2YgYSBwYXJhZ3JhcGguICBUaGVzZQptYXJnaW5zIGFsc28gYWZmZWN0IGZpbGwgY29tbWFuZHMg c3VjaCBhcyDigJhNLXHigJkgKCpub3RlIEZpbGxpbmc6OikuCgogICBUaGUgSW5kZW50YXRpb24g c3VibWVudSBvZiBUZXh0IFByb3BlcnRpZXMgb2ZmZXJzIGNvbW1hbmRzIGZvcgpzcGVjaWZ5aW5n IGluZGVudGF0aW9uOgoK4oCYSW5kZW50IE1vcmXigJkKICAgICBJbmRlbnQgdGhlIHJlZ2lvbiBi eSA0IGNvbHVtbnMgKOKAmGluY3JlYXNlLWxlZnQtbWFyZ2lu4oCZKS4gIEluCiAgICAgRW5yaWNo ZWQgbW9kZSwgdGhpcyBjb21tYW5kIGlzIGFsc28gYXZhaWxhYmxlIG9uIOKAmEMteCA8VEFCPuKA mTsgaWYKICAgICB5b3Ugc3VwcGx5IGEgbnVtZXJpYyBhcmd1bWVudCwgdGhhdCBzYXlzIGhvdyBt YW55IGNvbHVtbnMgdG8gYWRkIHRvCiAgICAgdGhlIG1hcmdpbiAoYSBuZWdhdGl2ZSBhcmd1bWVu dCByZWR1Y2VzIHRoZSBudW1iZXIgb2YgY29sdW1ucykuCgrigJhJbmRlbnQgTGVzc+KAmQogICAg IFJlbW92ZSA0IGNvbHVtbnMgb2YgaW5kZW50YXRpb24gZnJvbSB0aGUgcmVnaW9uLgoK4oCYSW5k ZW50IFJpZ2h0IE1vcmXigJkKICAgICBNYWtlIHRoZSB0ZXh0IG5hcnJvd2VyIGJ5IGluZGVudGlu ZyA0IGNvbHVtbnMgYXQgdGhlIHJpZ2h0IG1hcmdpbi4KCuKAmEluZGVudCBSaWdodCBMZXNz4oCZ CiAgICAgUmVtb3ZlIDQgY29sdW1ucyBvZiBpbmRlbnRhdGlvbiBmcm9tIHRoZSByaWdodCBtYXJn aW4uCgogICBUaGUgdmFyaWFibGUg4oCYc3RhbmRhcmQtaW5kZW504oCZIHNwZWNpZmllcyBob3cg bWFueSBjb2x1bW5zIHRoZXNlCmNvbW1hbmRzIHNob3VsZCBhZGQgdG8gb3Igc3VidHJhY3QgZnJv bSB0aGUgaW5kZW50YXRpb24uICBUaGUgZGVmYXVsdAp2YWx1ZSBpcyA0LiAgVGhlIGRlZmF1bHQg cmlnaHQgbWFyZ2luIGZvciBFbnJpY2hlZCBtb2RlIGlzIGNvbnRyb2xsZWQgYnkKdGhlIHZhcmlh YmxlIOKAmGZpbGwtY29sdW1u4oCZLCBhcyB1c3VhbC4KCiAgIFlvdSBjYW4gYWxzbyB0eXBlIOKA mEMtYyBb4oCZICjigJhzZXQtbGVmdC1tYXJnaW7igJkpIGFuZCDigJhDLWMgXeKAmQoo4oCYc2V0 LXJpZ2h0LW1hcmdpbuKAmSkgdG8gc2V0IHRoZSBsZWZ0IGFuZCByaWdodCBtYXJnaW5zLiAgWW91 IGNhbiBzcGVjaWZ5CnRoZSBtYXJnaW4gd2lkdGggd2l0aCBhIG51bWVyaWMgYXJndW1lbnQ7IG90 aGVyd2lzZSB0aGVzZSBjb21tYW5kcwpwcm9tcHQgZm9yIGEgdmFsdWUgdmlhIHRoZSBtaW5pYnVm ZmVyLgoKICAgVGhlIGZpbGwgcHJlZml4LCBpZiBhbnksIHdvcmtzIGluIGFkZGl0aW9uIHRvIHRo ZSBzcGVjaWZpZWQgcGFyYWdyYXBoCmluZGVudGF0aW9uOiDigJhDLXggLuKAmSBkb2VzIG5vdCBp bmNsdWRlIHRoZSBzcGVjaWZpZWQgaW5kZW50YXRpb27igJlzCndoaXRlc3BhY2UgaW4gdGhlIG5l dyB2YWx1ZSBmb3IgdGhlIGZpbGwgcHJlZml4LCBhbmQgdGhlIGZpbGwgY29tbWFuZHMKbG9vayBm b3IgdGhlIGZpbGwgcHJlZml4IGFmdGVyIHRoZSBpbmRlbnRhdGlvbiBvbiBlYWNoIGxpbmUuICAq Tm90ZSBGaWxsClByZWZpeDo6LgoKCioqKiAyNS4xNC42IEp1c3RpZmljYXRpb24gaW4gRW5yaWNo ZWQgVGV4dAoKSW4gRW5yaWNoZWQgbW9kZSwgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBjb21t YW5kcyB0byBzcGVjaWZ5IHZhcmlvdXMKImp1c3RpZmljYXRpb24gc3R5bGVzIiBmb3IgZmlsbGlu Zy4gIFRoZXNlIGNvbW1hbmRzIGFwcGx5IHRvIHRoZQpwYXJhZ3JhcGggY29udGFpbmluZyBwb2lu dCwgb3IsIGlmIHRoZSByZWdpb24gaXMgYWN0aXZlLCB0byBhbGwKcGFyYWdyYXBocyBvdmVybGFw cGluZyB0aGUgcmVnaW9uLgoK4oCYTS1qIGzigJkKICAgICBBbGlnbiBsaW5lcyB0byB0aGUgbGVm dCBtYXJnaW4gKOKAmHNldC1qdXN0aWZpY2F0aW9uLWxlZnTigJkpLgoK4oCYTS1qIHLigJkKICAg ICBBbGlnbiBsaW5lcyB0byB0aGUgcmlnaHQgbWFyZ2luICjigJhzZXQtanVzdGlmaWNhdGlvbi1y aWdodOKAmSkuCgrigJhNLWogYuKAmQogICAgIEFsaWduIGxpbmVzIHRvIGJvdGggbWFyZ2lucywg aW5zZXJ0aW5nIHNwYWNlcyBpbiB0aGUgbWlkZGxlIG9mIHRoZQogICAgIGxpbmUgdG8gYWNoaWV2 ZSB0aGlzICjigJhzZXQtanVzdGlmaWNhdGlvbi1mdWxs4oCZKS4KCuKAmE0taiBj4oCZCuKAmE0t U+KAmQogICAgIENlbnRlciBsaW5lcyBiZXR3ZWVuIHRoZSBtYXJnaW5zICjigJhzZXQtanVzdGlm aWNhdGlvbi1jZW50ZXLigJkpLgoK4oCYTS1qIHXigJkKICAgICBUdXJuIG9mZiBmaWxsaW5nIGVu dGlyZWx5ICjigJhzZXQtanVzdGlmaWNhdGlvbi1ub25l4oCZKS4gIFRoZSBmaWxsCiAgICAgY29t bWFuZHMgZG8gbm90aGluZyBvbiB0ZXh0IHdpdGggdGhpcyBzZXR0aW5nLiAgWW91IGNhbiwgaG93 ZXZlciwKICAgICBzdGlsbCBpbmRlbnQgdGhlIGxlZnQgbWFyZ2luLgoKICAgWW91IGNhbiBhbHNv IHNwZWNpZnkganVzdGlmaWNhdGlvbiBzdHlsZXMgdXNpbmcgdGhlIEp1c3RpZmljYXRpb24Kc3Vi bWVudSBpbiB0aGUgVGV4dCBQcm9wZXJ0aWVzIG1lbnUuICBUaGUgZGVmYXVsdCBqdXN0aWZpY2F0 aW9uIHN0eWxlIGlzCnNwZWNpZmllZCBieSB0aGUgcGVyLWJ1ZmZlciB2YXJpYWJsZSDigJhkZWZh dWx0LWp1c3RpZmljYXRpb27igJkuICBJdHMgdmFsdWUKc2hvdWxkIGJlIG9uZSBvZiB0aGUgc3lt Ym9scyDigJhsZWZ04oCZLCDigJhyaWdodOKAmSwg4oCYZnVsbOKAmSwg4oCYY2VudGVy4oCZLCBv cgrigJhub25l4oCZOyB0aGVpciBtZWFuaW5ncyBjb3JyZXNwb25kIHRvIHRoZSBjb21tYW5kcyBh Ym92ZS4KCgoqKiogMjUuMTQuNyBTZXR0aW5nIE90aGVyIFRleHQgUHJvcGVydGllcwoKVGhlIFNw ZWNpYWwgUHJvcGVydGllcyBzdWJtZW51IG9mIFRleHQgUHJvcGVydGllcyBoYXMgZW50cmllcyBm b3IgYWRkaW5nCm9yIHJlbW92aW5nIHRocmVlIG90aGVyIHRleHQgcHJvcGVydGllczog4oCYcmVh ZC1vbmx54oCZLCAod2hpY2ggZGlzYWxsb3dzCmFsdGVyYXRpb24gb2YgdGhlIHRleHQpLCDigJhp bnZpc2libGXigJkgKHdoaWNoIGhpZGVzIHRleHQpLCBhbmQK4oCYaW50YW5naWJsZeKAmSAod2hp Y2ggZGlzYWxsb3dzIG1vdmluZyBwb2ludCB3aXRoaW4gdGhlIHRleHQpLiAgVGhlCuKAmFJlbW92 ZSBTcGVjaWFs4oCZIG1lbnUgaXRlbSByZW1vdmVzIGFsbCBvZiB0aGVzZSBzcGVjaWFsIHByb3Bl cnRpZXMgZnJvbQp0aGUgdGV4dCBpbiB0aGUgcmVnaW9uLgoKICAgVGhlIOKAmGludmlzaWJsZeKA mSBhbmQg4oCYaW50YW5naWJsZeKAmSBwcm9wZXJ0aWVzIGFyZSBub3Qgc2F2ZWQuCgogICBFbnJp Y2hlZCBtb2RlIGFsc28gc3VwcG9ydHMgc2F2aW5nIGFuZCByZXN0b3Jpbmcg4oCYZGlzcGxheeKA mSBwcm9wZXJ0aWVzCigqbm90ZSAoZWxpc3ApRGlzcGxheSBQcm9wZXJ0eTo6KSwgd2hpY2ggYWZm ZWN0IGhvdyB0ZXh0IGlzIGRpc3BsYXllZCBvbgp0aGUgc2NyZWVuLCBhbmQgYWxzbyBhbGxvdyBk aXNwbGF5aW5nIGltYWdlcyBhbmQgc3RyaW5ncyB0aGF0IGNvbWUgZnJvbQpzb3VyY2VzIG90aGVy IHRoYW4gYnVmZmVyIHRleHQuICBUaGUg4oCYZGlzcGxheeKAmSBwcm9wZXJ0aWVzIGFsc28gc3Vw cG9ydApleGVjdXRpb24gb2YgYXJiaXRyYXJ5IExpc3AgZm9ybXMgYXMgcGFydCBvZiBwcm9jZXNz aW5nIHRoZSBwcm9wZXJ0eSBmb3IKZGlzcGxheSwgdGh1cyBwcm92aWRpbmcgYSBtZWFucyB0byBk eW5hbWljYWxseSB0YWlsb3IgdGhlIGRpc3BsYXkgdG8Kc29tZSBjb25kaXRpb25zIHRoYXQgY2Fu IG9ubHkgYmUga25vd24gYXQgZGlzcGxheSB0aW1lLiAgU2luY2UgZXhlY3V0aW9uCm9mIGFyYml0 cmFyeSBMaXNwIG9wZW5zIEVtYWNzIHRvIHBvdGVudGlhbCBhdHRhY2tzLCBlc3BlY2lhbGx5IHdo ZW4gdGhlCnNvdXJjZSBvZiBlbnJpY2hlZCB0ZXh0IGlzIG91dHNpZGUgb2YgRW1hY3Mgb3IgZXZl biBvdXRzaWRlIG9mIHlvdXIKc3lzdGVtIChlLmcuLCBpZiBpdCB3YXMgcmVjZWl2ZWQgaW4gYW4g ZW1haWwgbWVzc2FnZSksIHN1Y2ggZXhlY3V0aW9uIGlzCmJ5IGRlZmF1bHQgZGlzYWJsZWQgaW4g RW5yaWNoZWQgbW9kZS4gIFlvdSBjYW4gZW5hYmxlIGl0IGJ5IGN1c3RvbWl6aW5nCnRoZSB2YXJp YWJsZSDigJhlbnJpY2hlZC1hbGxvdy1ldmFsLWluLWRpc3BsYXktcHJvcHPigJkgdG8gYSBub24t 4oCYbmls4oCZCnZhbHVlLgoKCioqIDI1LjE1IEVkaXRpbmcgVGV4dC1iYXNlZCBUYWJsZXMKClRo ZSDigJh0YWJsZeKAmSBwYWNrYWdlIHByb3ZpZGVzIGNvbW1hbmRzIHRvIGVhc2lseSBlZGl0IHRl eHQtYmFzZWQgdGFibGVzLgpIZXJlIGlzIGFuIGV4YW1wbGUgb2Ygd2hhdCBzdWNoIGEgdGFibGUg bG9va3MgbGlrZToKCiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwogICAgIHwgICAgIENvbW1hbmQgICAgIHwg ICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgIHwgICBLZXkgQmluZGluZyAgIHwKICAgICAr LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rCiAgICAgfCAgZm9yd2FyZC1jaGFyICAgfE1vdmUgcG9pbnQgcmlnaHQgTiBj aGFyYWN0ZXJzICAgfCAgICAgICBDLWYgICAgICAgfAogICAgIHwgICAgICAgICAgICAgICAgIHwo bGVmdCBpZiBOIGlzIG5lZ2F0aXZlKS4gICAgICAgIHwgICAgICAgICAgICAgICAgIHwKICAgICB8 ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICB8CiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwogICAgIHwgIGJhY2t3YXJkLWNoYXIgIHxN b3ZlIHBvaW50IGxlZnQgTiBjaGFyYWN0ZXJzICAgIHwgICAgICAgQy1iICAgICAgIHwKICAgICB8 ICAgICAgICAgICAgICAgICB8KHJpZ2h0IGlmIE4gaXMgbmVnYXRpdmUpLiAgICAgICB8ICAgICAg ICAgICAgICAgICB8CiAgICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgfAogICAgICstLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKCiAgIFdo ZW4gRW1hY3MgcmVjb2duaXplcyBzdWNoIGEgc3RyZXRjaCBvZiB0ZXh0IGFzIGEgdGFibGUgKCpu b3RlIFRhYmxlClJlY29nbml0aW9uOjopLCBlZGl0aW5nIHRoZSBjb250ZW50cyBvZiBlYWNoIHRh YmxlIGNlbGwgd2lsbAphdXRvbWF0aWNhbGx5IHJlc2l6ZSB0aGUgdGFibGUsIHdoZW5ldmVyIHRo ZSBjb250ZW50cyBiZWNvbWUgdG9vIGxhcmdlCnRvIGZpdCBpbiB0aGUgY2VsbC4gIFlvdSBjYW4g dXNlIHRoZSBjb21tYW5kcyBkZWZpbmVkIGluIHRoZSBmb2xsb3dpbmcKc2VjdGlvbnMgZm9yIG5h dmlnYXRpbmcgYW5kIGVkaXRpbmcgdGhlIHRhYmxlIGxheW91dC4KCiAgIFR5cGUg4oCYTS14IHRh YmxlLWZpeGVkLXdpZHRoLW1vZGXigJkgdG8gdG9nZ2xlIHRoZSBhdXRvbWF0aWMgdGFibGUKcmVz aXppbmcgZmVhdHVyZS4KCisgTWVudToKCiAgLSBUYWJsZSBEZWZpbml0aW9uOjogICAgICAgICAg V2hhdCBpcyBhIHRleHQgYmFzZWQgdGFibGUuCiAgLSBUYWJsZSBDcmVhdGlvbjo6ICAgICAgICAg ICAgSG93IHRvIGNyZWF0ZSBhIHRhYmxlLgogIC0gVGFibGUgUmVjb2duaXRpb246OiAgICAgICAg IEhvdyB0byBhY3RpdmF0ZSBhbmQgZGVhY3RpdmF0ZSB0YWJsZXMuCiAgLSBDZWxsIENvbW1hbmRz OjogICAgICAgICAgICAgQ2VsbC1vcmllbnRlZCBjb21tYW5kcyBpbiBhIHRhYmxlLgogIC0gQ2Vs bCBKdXN0aWZpY2F0aW9uOjogICAgICAgIEp1c3RpZnlpbmcgY2VsbCBjb250ZW50cy4KICAtIFRh YmxlIFJvd3MgYW5kIENvbHVtbnM6OiAgICBJbnNlcnRpbmcgYW5kIGRlbGV0aW5nIHJvd3MgYW5k IGNvbHVtbnMuCiAgLSBUYWJsZSBDb252ZXJzaW9uOjogICAgICAgICAgQ29udmVydGluZyBiZXR3 ZWVuIHBsYWluIHRleHQgYW5kIHRhYmxlcy4KICAtIFRhYmxlIE1pc2M6OiAgICAgICAgICAgICAg ICBUYWJsZSBtaXNjZWxsYW55LgoKCioqKiAyNS4xNS4xIFdoYXQgaXMgYSBUZXh0LWJhc2VkIFRh YmxlPwoKQSAidGFibGUiIGNvbnNpc3RzIG9mIGEgcmVjdGFuZ3VsYXIgdGV4dCBhcmVhIHdoaWNo IGlzIGRpdmlkZWQgaW50bwoiY2VsbHMiLiAgRWFjaCBjZWxsIG11c3QgYmUgYXQgbGVhc3Qgb25l IGNoYXJhY3RlciB3aWRlIGFuZCBvbmUKY2hhcmFjdGVyIGhpZ2gsIG5vdCBjb3VudGluZyBpdHMg Ym9yZGVyIGxpbmVzLiAgQSBjZWxsIGNhbiBiZSBzdWJkaXZpZGVkCmludG8gbW9yZSBjZWxscywg YnV0IHRoZXkgY2Fubm90IG92ZXJsYXAuCgogICBDZWxsIGJvcmRlciBsaW5lcyBhcmUgZHJhd24g d2l0aCB0aHJlZSBzcGVjaWFsIGNoYXJhY3RlcnMsIHNwZWNpZmllZApieSB0aGUgZm9sbG93aW5n IHZhcmlhYmxlczoKCuKAmHRhYmxlLWNlbGwtdmVydGljYWwtY2hhcuKAmQogICAgIFRoZSBjaGFy YWN0ZXIgdXNlZCBmb3IgdmVydGljYWwgbGluZXMuICBUaGUgZGVmYXVsdCBpcyDigJh84oCZLgoK 4oCYdGFibGUtY2VsbC1ob3Jpem9udGFsLWNoYXJz4oCZCiAgICAgVGhlIGNoYXJhY3RlcnMgdXNl ZCBmb3IgaG9yaXpvbnRhbCBsaW5lcy4gIFRoZSBkZWZhdWx0IGlzIOKAmCItPSLigJkuCgrigJh0 YWJsZS1jZWxsLWludGVyc2VjdGlvbi1jaGFy4oCZCiAgICAgVGhlIGNoYXJhY3RlciB1c2VkIGZv ciB0aGUgaW50ZXJzZWN0aW9uIG9mIGhvcml6b250YWwgYW5kIHZlcnRpY2FsCiAgICAgbGluZXMu ICBUaGUgZGVmYXVsdCBpcyDigJgr4oCZLgoKVGhlIGZvbGxvd2luZyBhcmUgZXhhbXBsZXMgb2Yg X2ludmFsaWRfIHRhYmxlczoKCiAgICAgICAgKy0tLS0tKyAgICAgICArLS0rICAgICstKystLSsK ICAgICAgICB8ICAgICB8ICAgICAgIHwgIHwgICAgfCB8fCAgfAogICAgICAgIHwgICAgIHwgICAg ICAgfCAgfCAgICB8IHx8ICB8CiAgICAgICAgKy0tKyAgfCAgICArLS0rLS0rICAgICstKystLSsK ICAgICAgICB8ICB8ICB8ICAgIHwgIHwgIHwgICAgKy0rKy0tKwogICAgICAgIHwgIHwgIHwgICAg fCAgfCAgfCAgICB8IHx8ICB8CiAgICAgICAgKy0tKy0tKyAgICArLS0rLS0rICAgICstKystLSsK ICAgICAgICAgICBhICAgICAgICAgIGIgICAgICAgICAgYwoKRnJvbSBsZWZ0IHRvIHJpZ2h0OgoK ICBhLiBPdmVybGFwcGVkIGNlbGxzIG9yIG5vbi1yZWN0YW5ndWxhciBjZWxscyBhcmUgbm90IGFs bG93ZWQuCiAgYi4gVGhlIGJvcmRlciBtdXN0IGJlIHJlY3Rhbmd1bGFyLgogIGMuIENlbGxzIG11 c3QgaGF2ZSBhIG1pbmltdW0gd2lkdGgvaGVpZ2h0IG9mIG9uZSBjaGFyYWN0ZXIuCgoKKioqIDI1 LjE1LjIgQ3JlYXRpbmcgYSBUYWJsZQoKVG8gY3JlYXRlIGEgdGV4dC1iYXNlZCB0YWJsZSBmcm9t IHNjcmF0Y2gsIHR5cGUg4oCYTS14IHRhYmxlLWluc2VydOKAmS4KVGhpcyBjb21tYW5kIHByb21w dHMgZm9yIHRoZSBudW1iZXIgb2YgdGFibGUgY29sdW1ucywgdGhlIG51bWJlciBvZgp0YWJsZSBy b3dzLCBjZWxsIHdpZHRoIGFuZCBjZWxsIGhlaWdodC4gIFRoZSBjZWxsIHdpZHRoIGFuZCBjZWxs IGhlaWdodApkbyBub3QgaW5jbHVkZSB0aGUgY2VsbCBib3JkZXJzOyBlYWNoIGNhbiBiZSBzcGVj aWZpZWQgYXMgYSBzaW5nbGUKaW50ZWdlciAod2hpY2ggbWVhbnMgZWFjaCBjZWxsIGlzIGdpdmVu IHRoZSBzYW1lIHdpZHRoL2hlaWdodCksIG9yIGFzIGEKc2VxdWVuY2Ugb2YgaW50ZWdlcnMgc2Vw YXJhdGVkIGJ5IHNwYWNlcyBvciBjb21tYXMgKHdoaWNoIHNwZWNpZnkgdGhlCndpZHRoL2hlaWdo dCBvZiB0aGUgaW5kaXZpZHVhbCB0YWJsZSBjb2x1bW5zL3Jvd3MsIGNvdW50aW5nIGZyb20gbGVm dCB0bwpyaWdodCBmb3IgdGFibGUgY29sdW1ucyBhbmQgZnJvbSB0b3AgdG8gYm90dG9tIGZvciB0 YWJsZSByb3dzKS4gIFRoZQpzcGVjaWZpZWQgdGFibGUgaXMgdGhlbiBpbnNlcnRlZCBhdCBwb2lu dC4KCiAgIFRoZSB0YWJsZSBpbnNlcnRlZCBieSDigJhNLXggdGFibGUtaW5zZXJ04oCZIGNvbnRh aW5zIHNwZWNpYWwgdGV4dApwcm9wZXJ0aWVzLCB3aGljaCB0ZWxsIEVtYWNzIHRvIHRyZWF0IGl0 IHNwZWNpYWxseSBhcyBhIHRleHQtYmFzZWQKdGFibGUuICBJZiB5b3Ugc2F2ZSB0aGUgYnVmZmVy IHRvIGEgZmlsZSBhbmQgdmlzaXQgaXQgYWdhaW4gbGF0ZXIsIHRob3NlCnByb3BlcnRpZXMgYXJl IGxvc3QsIGFuZCB0aGUgdGFibGUgYXBwZWFycyB0byBFbWFjcyBhcyBhbiBvcmRpbmFyeSBwaWVj ZQpvZiB0ZXh0LiAgU2VlIHRoZSBuZXh0IHNlY3Rpb24sIGZvciBob3cgdG8gY29udmVydCBpdCBi YWNrIGludG8gYSB0YWJsZS4KCgoqKiogMjUuMTUuMyBUYWJsZSBSZWNvZ25pdGlvbgoKRXhpc3Rp bmcgdGV4dC1iYXNlZCB0YWJsZXMgaW4gYSBidWZmZXIsIHdoaWNoIGxhY2sgdGhlIHNwZWNpYWwg dGV4dApwcm9wZXJ0aWVzIGFwcGxpZWQgYnkg4oCYTS14IHRhYmxlLWluc2VydOKAmSwgYXJlIG5v dCB0cmVhdGVkIHNwZWNpYWxseSBhcwp0YWJsZXMuICBUbyBhcHBseSB0aG9zZSB0ZXh0IHByb3Bl cnRpZXMsIHR5cGUg4oCYTS14IHRhYmxlLXJlY29nbml6ZeKAmS4KVGhpcyBjb21tYW5kIHNjYW5z IHRoZSBjdXJyZW50IGJ1ZmZlciwgInJlY29nbml6ZXMiIHZhbGlkIHRhYmxlIGNlbGxzLAphbmQg YXBwbGllcyB0aGUgcmVsZXZhbnQgdGV4dCBwcm9wZXJ0aWVzLiAgQ29udmVyc2VseSwgdHlwZSDi gJhNLXgKdGFibGUtdW5yZWNvZ25pemXigJkgdG8gInVucmVjb2duaXplIiBhbGwgdGFibGVzIGlu IHRoZSBjdXJyZW50IGJ1ZmZlciwKcmVtb3ZpbmcgdGhlIHNwZWNpYWwgdGV4dCBwcm9wZXJ0aWVz IGFuZCBjb252ZXJ0aW5nIHRhYmxlcyBiYWNrIHRvIHBsYWluCnRleHQuCgogICBZb3UgY2FuIGFs c28gdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgdG8gc2VsZWN0aXZlbHkgcmVjb2duaXplIG9y CnVucmVjb2duaXplIHRhYmxlczoKCuKAmE0teCB0YWJsZS1yZWNvZ25pemUtcmVnaW9u4oCZCiAg ICAgUmVjb2duaXplIHRhYmxlcyB3aXRoaW4gdGhlIGN1cnJlbnQgcmVnaW9uLgoK4oCYTS14IHRh YmxlLXVucmVjb2duaXplLXJlZ2lvbuKAmQogICAgIFVucmVjb2duaXplIHRhYmxlcyB3aXRoaW4g dGhlIGN1cnJlbnQgcmVnaW9uLgoK4oCYTS14IHRhYmxlLXJlY29nbml6ZS10YWJsZeKAmQogICAg IFJlY29nbml6ZSB0aGUgdGFibGUgYXQgcG9pbnQgYW5kIGFjdGl2YXRlIGl0LgoK4oCYTS14IHRh YmxlLXVucmVjb2duaXplLXRhYmxl4oCZCiAgICAgRGVhY3RpdmF0ZSB0aGUgdGFibGUgYXQgcG9p bnQuCgrigJhNLXggdGFibGUtcmVjb2duaXplLWNlbGzigJkKICAgICBSZWNvZ25pemUgdGhlIGNl bGwgYXQgcG9pbnQgYW5kIGFjdGl2YXRlIGl0LgoK4oCYTS14IHRhYmxlLXVucmVjb2duaXplLWNl bGzigJkKICAgICBEZWFjdGl2YXRlIHRoZSBjZWxsIGF0IHBvaW50LgoKICAgKk5vdGUgVGFibGUg Q29udmVyc2lvbjo6LCBmb3IgYW5vdGhlciB3YXkgdG8gcmVjb2duaXplIGEgdGFibGUuCgoKKioq IDI1LjE1LjQgQ29tbWFuZHMgZm9yIFRhYmxlIENlbGxzCgpUaGUgY29tbWFuZHMg4oCYTS14IHRh YmxlLWZvcndhcmQtY2VsbOKAmSBhbmQg4oCYTS14IHRhYmxlLWJhY2t3YXJkLWNlbGzigJkgbW92 ZQpwb2ludCBmcm9tIHRoZSBjdXJyZW50IGNlbGwgdG8gYW4gYWRqYWNlbnQgY2VsbC4gIFRoZSBv cmRlciBpcyBjeWNsaWM6CndoZW4gcG9pbnQgaXMgaW4gdGhlIGxhc3QgY2VsbCBvZiBhIHRhYmxl LCDigJhNLXggdGFibGUtZm9yd2FyZC1jZWxs4oCZCm1vdmVzIHRvIHRoZSBmaXJzdCBjZWxsLiAg TGlrZXdpc2UsIHdoZW4gcG9pbnQgaXMgb24gdGhlIGZpcnN0IGNlbGwsCuKAmE0teCB0YWJsZS1i YWNrd2FyZC1jZWxs4oCZIG1vdmVzIHRvIHRoZSBsYXN0IGNlbGwuCgogICDigJhNLXggdGFibGUt c3Bhbi1jZWxs4oCZIHByb21wdHMgZm9yIGEgZGlyZWN0aW9u4oCUcmlnaHQsIGxlZnQsIGFib3Zl LCBvcgpiZWxvd+KAlGFuZCBtZXJnZXMgdGhlIGN1cnJlbnQgY2VsbCB3aXRoIHRoZSBhZGphY2Vu dCBjZWxsIGluIHRoYXQKZGlyZWN0aW9uLiAgVGhpcyBjb21tYW5kIHNpZ25hbHMgYW4gZXJyb3Ig aWYgdGhlIG1lcmdlIHdvdWxkIHJlc3VsdCBpbgphbiBpbGxlZ2l0aW1hdGUgY2VsbCBsYXlvdXQu CgogICDigJhNLXggdGFibGUtc3BsaXQtY2VsbOKAmSBzcGxpdHMgdGhlIGN1cnJlbnQgY2VsbCB2 ZXJ0aWNhbGx5IG9yCmhvcml6b250YWxseSwgcHJvbXB0aW5nIGZvciB0aGUgZGlyZWN0aW9uIHdp dGggdGhlIG1pbmlidWZmZXIuICBUbyBzcGxpdAppbiBhIHNwZWNpZmljIGRpcmVjdGlvbiwgdXNl IOKAmE0teCB0YWJsZS1zcGxpdC1jZWxsLXZlcnRpY2FsbHnigJkgYW5kIOKAmE0teAp0YWJsZS1z cGxpdC1jZWxsLWhvcml6b250YWxseeKAmS4gIFdoZW4gc3BsaXR0aW5nIHZlcnRpY2FsbHksIHRo ZSBvbGQgY2VsbApjb250ZW50cyBhcmUgYXV0b21hdGljYWxseSBzcGxpdCBiZXR3ZWVuIHRoZSB0 d28gbmV3IGNlbGxzLiAgV2hlbgpzcGxpdHRpbmcgaG9yaXpvbnRhbGx5LCB5b3UgYXJlIHByb21w dGVkIGZvciBob3cgdG8gZGl2aWRlIHRoZSBjZWxsCmNvbnRlbnRzLCBpZiB0aGUgY2VsbCBpcyBu b24tZW1wdHk7IHRoZSBvcHRpb25zIGFyZSDigJhzcGxpdOKAmSAoZGl2aWRlIHRoZQpjb250ZW50 cyBhdCBwb2ludCksIOKAmGxlZnTigJkgKHB1dCBhbGwgdGhlIGNvbnRlbnRzIGluIHRoZSBsZWZ0 IGNlbGwpLCBhbmQK4oCYcmlnaHTigJkgKHB1dCBhbGwgdGhlIGNvbnRlbnRzIGluIHRoZSByaWdo dCBjZWxsKS4KCiAgIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgZW5sYXJnZSBvciBzaHJpbmsgYSBj ZWxsLiAgQnkgZGVmYXVsdCwgdGhleQpyZXNpemUgYnkgb25lIHJvdyBvciBjb2x1bW47IGlmIGEg bnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgdGhhdApzcGVjaWZpZXMgdGhlIG51bWJlciBv ZiByb3dzIG9yIGNvbHVtbnMgdG8gcmVzaXplIGJ5LgoK4oCYTS14IHRhYmxlLWhlaWdodGVuLWNl bGzigJkKICAgICBFbmxhcmdlIHRoZSBjdXJyZW50IGNlbGwgdmVydGljYWxseS4KCuKAmE0teCB0 YWJsZS1zaG9ydGVuLWNlbGzigJkKICAgICBTaHJpbmsgdGhlIGN1cnJlbnQgY2VsbCB2ZXJ0aWNh bGx5LgoK4oCYTS14IHRhYmxlLXdpZGVuLWNlbGzigJkKICAgICBFbmxhcmdlIHRoZSBjdXJyZW50 IGNlbGwgaG9yaXpvbnRhbGx5LgoK4oCYTS14IHRhYmxlLW5hcnJvdy1jZWxs4oCZCiAgICAgU2hy aW5rIHRoZSBjdXJyZW50IGNlbGwgaG9yaXpvbnRhbGx5LgoKCioqKiAyNS4xNS41IENlbGwgSnVz dGlmaWNhdGlvbgoKVGhlIGNvbW1hbmQg4oCYTS14IHRhYmxlLWp1c3RpZnnigJkgaW1wb3NlcyAi anVzdGlmaWNhdGlvbiIgb24gb25lIG9yIG1vcmUKY2VsbHMgaW4gYSB0ZXh0LWJhc2VkIHRhYmxl LiAgSnVzdGlmaWNhdGlvbiBkZXRlcm1pbmVzIGhvdyB0aGUgdGV4dCBpbgp0aGUgY2VsbCBpcyBh bGlnbmVkLCByZWxhdGl2ZSB0byB0aGUgZWRnZXMgb2YgdGhlIGNlbGwuICBFYWNoIGNlbGwgaW4g YQp0YWJsZSBjYW4gYmUgc2VwYXJhdGVseSBqdXN0aWZpZWQuCgogICDigJhNLXggdGFibGUtanVz dGlmeeKAmSBmaXJzdCBwcm9tcHRzIGZvciB3aGF0IHRvIGp1c3RpZnk7IHRoZSBvcHRpb25zCmFy ZSDigJhjZWxs4oCZIChqdXN0IHRoZSBjdXJyZW50IGNlbGwpLCDigJhjb2x1bW7igJkgKGFsbCBj ZWxscyBpbiB0aGUgY3VycmVudAp0YWJsZSBjb2x1bW4pIGFuZCDigJhyb3figJkgKGFsbCBjZWxs cyBpbiB0aGUgY3VycmVudCB0YWJsZSByb3cpLiAgVGhlCmNvbW1hbmQgdGhlbiBwcm9tcHRzIGZv ciB0aGUganVzdGlmaWNhdGlvbiBzdHlsZTsgdGhlIG9wdGlvbnMgYXJlCuKAmGxlZnTigJksIOKA mGNlbnRlcuKAmSwg4oCYcmlnaHTigJksIOKAmHRvcOKAmSwg4oCYbWlkZGxl4oCZLCDigJhib3R0 b23igJksIG9yIOKAmG5vbmXigJkgKG1lYW5pbmcKbm8gdmVydGljYWwganVzdGlmaWNhdGlvbiku CgogICBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBqdXN0aWZpY2F0aW9uIHN0eWxlcyBhcmUgc3Bl Y2lmaWVkCmluZGVwZW5kZW50bHksIGFuZCBib3RoIHR5cGVzIGNhbiBiZSBpbiBlZmZlY3Qgc2lt dWx0YW5lb3VzbHk7IGZvcgppbnN0YW5jZSwgeW91IGNhbiBjYWxsIOKAmE0teCB0YWJsZS1qdXN0 aWZ54oCZIHR3aWNlLCBvbmNlIHRvIHNwZWNpZnkK4oCYcmlnaHTigJkganVzdGlmaWNhdGlvbiBh bmQgb25jZSB0byBzcGVjaWZ5IOKAmGJvdHRvbeKAmSBqdXN0aWZpY2F0aW9uLCB0bwphbGlnbiB0 aGUgY29udGVudHMgb2YgYSBjZWxsIHRvIHRoZSBib3R0b20gcmlnaHQuCgogICBUaGUganVzdGlm aWNhdGlvbiBzdHlsZSBpcyBzdG9yZWQgaW4gdGhlIGJ1ZmZlciBhcyBhIHRleHQgcHJvcGVydHks CmFuZCBpcyBsb3N0IHdoZW4geW91IGtpbGwgdGhlIGJ1ZmZlciBvciBleGl0IEVtYWNzLiAgSG93 ZXZlciwgdGhlIHRhYmxlCnJlY29nbml0aW9uIGNvbW1hbmRzLCBzdWNoIGFzIOKAmE0teCB0YWJs ZS1yZWNvZ25pemXigJkgKCpub3RlIFRhYmxlClJlY29nbml0aW9uOjopLCBhdHRlbXB0IHRvIGRl dGVybWluZSBhbmQgcmUtYXBwbHkgZWFjaCBjZWxs4oCZcwpqdXN0aWZpY2F0aW9uIHN0eWxlLCBi eSBleGFtaW5pbmcgaXRzIGNvbnRlbnRzLiAgVG8gZGlzYWJsZSB0aGlzCmZlYXR1cmUsIGNoYW5n ZSB0aGUgdmFyaWFibGUg4oCYdGFibGUtZGV0ZWN0LWNlbGwtYWxpZ25tZW504oCZIHRvIOKAmG5p bOKAmS4KCgoqKiogMjUuMTUuNiBUYWJsZSBSb3dzIGFuZCBDb2x1bW5zCgrigJhNLXggdGFibGUt aW5zZXJ0LXJvd+KAmSBpbnNlcnRzIGEgcm93IG9mIGNlbGxzIGJlZm9yZSB0aGUgY3VycmVudCB0 YWJsZQpyb3cuICBUaGUgY3VycmVudCByb3csIHRvZ2V0aGVyIHdpdGggcG9pbnQsIGlzIHB1c2hl ZCBkb3duIHBhc3QgdGhlIG5ldwpyb3cuICBUbyBpbnNlcnQgYSByb3cgYWZ0ZXIgdGhlIGxhc3Qg cm93IGF0IHRoZSBib3R0b20gb2YgYSB0YWJsZSwKaW52b2tlIHRoaXMgY29tbWFuZCB3aXRoIHBv aW50IGJlbG93IHRoZSB0YWJsZSwganVzdCBiZWxvdyB0aGUgYm90dG9tCmVkZ2UuICBZb3UgY2Fu IGluc2VydCBtb3JlIHRoYW4gb25lIHJvdyBhdCBhIHRpbWUgYnkgdXNpbmcgYSBudW1lcmljCnBy ZWZpeCBhcmd1bWVudC4KCiAgIFNpbWlsYXJseSwg4oCYTS14IHRhYmxlLWluc2VydC1jb2x1bW7i gJkgaW5zZXJ0cyBhIGNvbHVtbiBvZiBjZWxscyB0byB0aGUKbGVmdCBvZiB0aGUgY3VycmVudCB0 YWJsZSBjb2x1bW4uICBUbyBpbnNlcnQgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IHNpZGUKb2YgdGhl IHJpZ2h0bW9zdCBjb2x1bW4sIGludm9rZSB0aGlzIGNvbW1hbmQgd2l0aCBwb2ludCB0byB0aGUg cmlnaHQgb2YKdGhlIHJpZ2h0bW9zdCBjb2x1bW4sIG91dHNpZGUgdGhlIHRhYmxlLiAgQSBudW1l cmljIHByZWZpeCBhcmd1bWVudApzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIGlu c2VydC4KCiAgIOKAmE0teCB0YWJsZS1kZWxldGUtY29sdW1u4oCZIGRlbGV0ZXMgdGhlIGNvbHVt biBvZiBjZWxscyBhdCBwb2ludC4KU2ltaWxhcmx5LCDigJhNLXggdGFibGUtZGVsZXRlLXJvd+KA mSBkZWxldGVzIHRoZSByb3cgb2YgY2VsbHMgYXQgcG9pbnQuICBBCm51bWVyaWMgcHJlZml4IGFy Z3VtZW50IHRvIGVpdGhlciBjb21tYW5kIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mCmNvbHVtbnMg b3Igcm93cyB0byBkZWxldGUuCgoKKioqIDI1LjE1LjcgQ29udmVydGluZyBCZXR3ZWVuIFBsYWlu IFRleHQgYW5kIFRhYmxlcwoKVGhlIGNvbW1hbmQg4oCYTS14IHRhYmxlLWNhcHR1cmXigJkgY2Fw dHVyZXMgcGxhaW4gdGV4dCBpbiBhIHJlZ2lvbiBhbmQKdHVybnMgaXQgaW50byBhIHRhYmxlLiAg VW5saWtlIOKAmE0teCB0YWJsZS1yZWNvZ25pemXigJkgKCpub3RlIFRhYmxlClJlY29nbml0aW9u OjopLCB0aGUgb3JpZ2luYWwgdGV4dCBkb2VzIG5vdCBuZWVkIHRvIGhhdmUgYSB0YWJsZQphcHBl YXJhbmNlOyBpdCBvbmx5IG5lZWRzIHRvIGhhdmUgYSBsb2dpY2FsIHRhYmxlLWxpa2Ugc3RydWN0 dXJlLgoKICAgRm9yIGV4YW1wbGUsIHN1cHBvc2Ugd2UgaGF2ZSB0aGUgZm9sbG93aW5nIG51bWJl cnMsIHdoaWNoIGFyZSBkaXZpZGVkCmludG8gdGhyZWUgbGluZXMgYW5kIHNlcGFyYXRlZCBob3Jp em9udGFsbHkgYnkgY29tbWFzOgoKICAgICAxLCAyLCAzLCA0CiAgICAgNSwgNiwgNywgOAogICAg ICwgOSwgMTAKCkludm9raW5nIOKAmE0teCB0YWJsZS1jYXB0dXJl4oCZIG9uIHRoYXQgdGV4dCBw cm9kdWNlcyB0aGlzIHRhYmxlOgoKICAgICArLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rCiAgICAg fDEgICAgfDIgICAgfDMgICAgfDQgICAgfAogICAgICstLS0tLSstLS0tLSstLS0tLSstLS0tLSsK ICAgICB8NSAgICB8NiAgICB8NyAgICB8OCAgICB8CiAgICAgKy0tLS0tKy0tLS0tKy0tLS0tKy0t LS0tKwogICAgIHwgICAgIHw5ICAgIHwxMCAgIHwgICAgIHwKICAgICArLS0tLS0rLS0tLS0rLS0t LS0rLS0tLS0rCgogICDigJhNLXggdGFibGUtcmVsZWFzZeKAmSBkb2VzIHRoZSBvcHBvc2l0ZTog aXQgY29udmVydHMgYSB0YWJsZSBiYWNrIHRvCnBsYWluIHRleHQsIHJlbW92aW5nIGl0cyBjZWxs IGJvcmRlcnMuCgogICBPbmUgYXBwbGljYXRpb24gb2YgdGhpcyBwYWlyIG9mIGNvbW1hbmRzIGlz IHRvIGVkaXQgYSB0ZXh0IGluIGxheW91dC4KTG9vayBhdCB0aGUgZm9sbG93aW5nIHRocmVlIHBh cmFncmFwaHM6CgogICAgIHRhYmxlLWNhcHR1cmUgaXMgYSBwb3dlcmZ1bCBjb21tYW5kLgogICAg IEhlcmUgYXJlIHNvbWUgdGhpbmdzIGl0IGNhbiBkbzoKCiAgICAgUGFyc2UgQ2VsbCBJdGVtcyAg IFVzaW5nIHJvdyBhbmQgY29sdW1uIGRlbGltaXRlciByZWdleHBzLAogICAgICAgICAgICAgICAg ICAgICAgICBpdCBwYXJzZXMgdGhlIHNwZWNpZmllZCB0ZXh0IGFyZWEgYW5kCiAgICAgICAgICAg ICAgICAgICAgICAgIGV4dHJhY3RzIGNlbGwgaXRlbXMgaW50byBhIHRhYmxlLgoKQXBwbHlpbmcg 4oCYdGFibGUtY2FwdHVyZeKAmSB0byBhIHJlZ2lvbiBjb250YWluaW5nIHRoZSBhYm92ZSB0ZXh0 LCB3aXRoCmVtcHR5IHN0cmluZ3MgZm9yIHRoZSBjb2x1bW4gYW5kIHJvdyBkZWxpbWl0ZXIgcmVn ZXhwcywgY3JlYXRlcyBhIHRhYmxlCndpdGggYSBzaW5nbGUgY2VsbCBsaWtlIHRoZSBmb2xsb3dp bmcgb25lLgoKICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKICAgICB8dGFibGUtY2FwdHVyZSBpcyBhIHBvd2VyZnVsIGNvbW1h bmQuICAgICAgICAgICAgICAgICAgICAgIHwKICAgICB8SGVyZSBhcmUgc29tZSB0aGluZ3MgaXQg Y2FuIGRvOiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICB8UGFyc2Ug Q2VsbCBJdGVtcyAgIFVzaW5nIHJvdyBhbmQgY29sdW1uIGRlbGltaXRlciByZWdleHBzLHwKICAg ICB8ICAgICAgICAgICAgICAgICAgIGl0IHBhcnNlcyB0aGUgc3BlY2lmaWVkIHRleHQgYXJlYSBh bmQgIHwKICAgICB8ICAgICAgICAgICAgICAgICAgIGV4dHJhY3RzIGNlbGwgaXRlbXMgaW50byBh IHRhYmxlLiAgICAgIHwKICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCldlIGNhbiB0aGVuIHVzZSB0aGUgY2VsbCBzcGxpdHRp bmcgY29tbWFuZHMgKCpub3RlIENlbGwgQ29tbWFuZHM6OikgdG8Kc3ViZGl2aWRlIHRoZSB0YWJs ZSBzbyB0aGF0IGVhY2ggcGFyYWdyYXBoIG9jY3VwaWVzIGEgY2VsbDoKCiAgICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAg fHRhYmxlLWNhcHR1cmUgaXMgYSBwb3dlcmZ1bCBjb21tYW5kLiAgICAgICAgICAgICAgICAgICAg ICB8CiAgICAgfEhlcmUgYXJlIHNvbWUgdGhpbmdzIGl0IGNhbiBkbzogICAgICAgICAgICAgICAg ICAgICAgICAgICB8CiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgfFBhcnNlIENlbGwgSXRlbXMgfCBVc2luZyByb3cg YW5kIGNvbHVtbiBkZWxpbWl0ZXIgcmVnZXhwcyx8CiAgICAgfCAgICAgICAgICAgICAgICAgfCBp dCBwYXJzZXMgdGhlIHNwZWNpZmllZCB0ZXh0IGFyZWEgYW5kICB8CiAgICAgfCAgICAgICAgICAg ICAgICAgfCBleHRyYWN0cyBjZWxsIGl0ZW1zIGludG8gYSB0YWJsZS4gICAgICB8CiAgICAgKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CgpFYWNoIGNlbGwgY2FuIG5vdyBiZSBlZGl0ZWQgaW5kZXBlbmRlbnRseSB3aXRob3V0IGFmZmVj dGluZyB0aGUgbGF5b3V0Cm9mIG90aGVyIGNlbGxzLiAgV2hlbiBmaW5pc2hlZCwgd2UgY2FuIGlu dm9rZSDigJhNLXggdGFibGUtcmVsZWFzZeKAmSB0bwpjb252ZXJ0IHRoZSB0YWJsZSBiYWNrIHRv IHBsYWluIHRleHQuCgoKKioqIDI1LjE1LjggVGFibGUgTWlzY2VsbGFueQoKVGhlIGNvbW1hbmQg 4oCYdGFibGUtcXVlcnktZGltZW5zaW9u4oCZIHJlcG9ydHMgdGhlIGxheW91dCBvZiB0aGUgdGFi bGUgYW5kCnRhYmxlIGNlbGwgYXQgcG9pbnQuICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaXRzIG91 dHB1dDoKCiAgICAgQ2VsbDogKDIxdywgNmgpLCBUYWJsZTogKDY3dywgMTZoKSwgRGltOiAoMmMs IDNyKSwgVG90YWwgQ2VsbHM6IDUKClRoaXMgaW5kaWNhdGVzIHRoYXQgdGhlIGN1cnJlbnQgY2Vs bCBpcyAyMSBjaGFyYWN0ZXJzIHdpZGUgYW5kIDYgbGluZXMKaGlnaCwgdGhlIHRhYmxlIGlzIDY3 IGNoYXJhY3RlcnMgd2lkZSBhbmQgMTYgbGluZXMgaGlnaCB3aXRoIDIgY29sdW1ucwphbmQgMyBy b3dzLCBhbmQgYSB0b3RhbCBvZiA1IGNlbGxzLgoKICAg4oCYTS14IHRhYmxlLWluc2VydC1zZXF1 ZW5jZeKAmSB0cmF2ZXJzZXMgdGhlIGNlbGxzIG9mIGEgdGFibGUgaW5zZXJ0aW5nCmEgc2VxdWVu Y2Ugb2YgdGV4dCBzdHJpbmdzIGludG8gZWFjaCBjZWxsIGFzIGl0IGdvZXMuICBJdCBhc2tzIGZv ciB0aGUKYmFzZSBzdHJpbmcgb2YgdGhlIHNlcXVlbmNlLCBhbmQgdGhlbiBwcm9kdWNlcyB0aGUg c2VxdWVuY2UgYnkK4oCcaW5jcmVtZW50aW5n4oCdIHRoZSBiYXNlIHN0cmluZywgZWl0aGVyIG51 bWVyaWNhbGx5IChpZiB0aGUgYmFzZSBzdHJpbmcKZW5kcyBpbiBudW1lcmljYWwgY2hhcmFjdGVy cykgb3IgaW4gdGhlIEFTQ0lJIG9yZGVyLiAgSW4gYWRkaXRpb24gdG8gdGhlCmJhc2Ugc3RyaW5n LCB0aGUgY29tbWFuZCBwcm9tcHRzIGZvciB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQpz ZXF1ZW5jZSwgdGhlIGluY3JlbWVudCwgdGhlIGNlbGwgaW50ZXJ2YWwsIGFuZCB0aGUganVzdGlm aWNhdGlvbiBvZiB0aGUKdGV4dCBpbiBlYWNoIGNlbGwuCgogICDigJhNLXggdGFibGUtZ2VuZXJh dGUtc291cmNl4oCZIGdlbmVyYXRlcyBhIHRhYmxlIGZvcm1hdHRlZCBmb3IgYQpzcGVjaWZpYyBt YXJrdXAgbGFuZ3VhZ2UuICBJdCBhc2tzIGZvciBhIGxhbmd1YWdlICh3aGljaCBtdXN0IGJlIG9u ZSBvZgrigJhodG1s4oCZLCDigJhsYXRleOKAmSwgb3Ig4oCYY2Fsc+KAmSksIGEgZGVzdGluYXRp b24gYnVmZmVyIGluIHdoaWNoIHRvIHB1dCB0aGUKcmVzdWx0LCBhbmQgYSB0YWJsZSBjYXB0aW9u LCBhbmQgdGhlbiBpbnNlcnRzIHRoZSBnZW5lcmF0ZWQgdGFibGUgaW50bwp0aGUgc3BlY2lmaWVk IGJ1ZmZlci4gIFRoZSBkZWZhdWx0IGRlc3RpbmF0aW9uIGJ1ZmZlciBpcyDigJh0YWJsZS5MQU5H 4oCZLAp3aGVyZSBMQU5HIGlzIHRoZSBsYW5ndWFnZSB5b3Ugc3BlY2lmaWVkLgoKCioqIDI1LjE2 IFR3by1Db2x1bW4gRWRpdGluZwoKVHdvLWNvbHVtbiBtb2RlIGxldHMgeW91IGNvbnZlbmllbnRs eSBlZGl0IHR3byBzaWRlLWJ5LXNpZGUgY29sdW1ucyBvZgp0ZXh0LiAgSXQgdXNlcyB0d28gc2lk ZS1ieS1zaWRlIHdpbmRvd3MsIGVhY2ggc2hvd2luZyBpdHMgb3duIGJ1ZmZlci4KVGhlcmUgYXJl IHRocmVlIHdheXMgdG8gZW50ZXIgdHdvLWNvbHVtbiBtb2RlOgoK4oCYPEYyPiAy4oCZIG9yIOKA mEMteCA2IDLigJkKICAgICBFbnRlciB0d28tY29sdW1uIG1vZGUgd2l0aCB0aGUgY3VycmVudCBi dWZmZXIgb24gdGhlIGxlZnQsIGFuZCBvbgogICAgIHRoZSByaWdodCwgYSBidWZmZXIgd2hvc2Ug bmFtZSBpcyBiYXNlZCBvbiB0aGUgY3VycmVudCBidWZmZXLigJlzCiAgICAgbmFtZSAo4oCYMkMt dHdvLWNvbHVtbnPigJkpLiAgSWYgdGhlIHJpZ2h0LWhhbmQgYnVmZmVyIGRvZXNu4oCZdCBhbHJl YWR5CiAgICAgZXhpc3QsIGl0IHN0YXJ0cyBvdXQgZW1wdHk7IHRoZSBjdXJyZW50IGJ1ZmZlcuKA mXMgY29udGVudHMgYXJlIG5vdAogICAgIGNoYW5nZWQuCgogICAgIFRoaXMgY29tbWFuZCBpcyBh cHByb3ByaWF0ZSB3aGVuIHRoZSBjdXJyZW50IGJ1ZmZlciBpcyBlbXB0eSBvcgogICAgIGNvbnRh aW5zIGp1c3Qgb25lIGNvbHVtbiBhbmQgeW91IHdhbnQgdG8gYWRkIGFub3RoZXIgY29sdW1uLgoK 4oCYPEYyPiBz4oCZIG9yIOKAmEMteCA2IHPigJkKICAgICBTcGxpdCB0aGUgY3VycmVudCBidWZm ZXIsIHdoaWNoIGNvbnRhaW5zIHR3by1jb2x1bW4gdGV4dCwgaW50byB0d28KICAgICBidWZmZXJz LCBhbmQgZGlzcGxheSB0aGVtIHNpZGUgYnkgc2lkZSAo4oCYMkMtc3BsaXTigJkpLiAgVGhlIGN1 cnJlbnQKICAgICBidWZmZXIgYmVjb21lcyB0aGUgbGVmdC1oYW5kIGJ1ZmZlciwgYnV0IHRoZSB0 ZXh0IGluIHRoZSByaWdodC1oYW5kCiAgICAgY29sdW1uIGlzIG1vdmVkIGludG8gdGhlIHJpZ2h0 LWhhbmQgYnVmZmVyLiAgVGhlIGN1cnJlbnQgY29sdW1uCiAgICAgc3BlY2lmaWVzIHRoZSBzcGxp dCBwb2ludC4gIFNwbGl0dGluZyBzdGFydHMgd2l0aCB0aGUgY3VycmVudCBsaW5lCiAgICAgYW5k IGNvbnRpbnVlcyB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCgogICAgIFRoaXMgY29tbWFuZCBp cyBhcHByb3ByaWF0ZSB3aGVuIHlvdSBoYXZlIGEgYnVmZmVyIHRoYXQgYWxyZWFkeQogICAgIGNv bnRhaW5zIHR3by1jb2x1bW4gdGV4dCwgYW5kIHlvdSB3aXNoIHRvIHNlcGFyYXRlIHRoZSBjb2x1 bW5zCiAgICAgdGVtcG9yYXJpbHkuCgrigJg8RjI+IGIgQlVGRkVSIDxSRVQ+4oCZCuKAmEMteCA2 IGIgQlVGRkVSIDxSRVQ+4oCZCiAgICAgRW50ZXIgdHdvLWNvbHVtbiBtb2RlIHVzaW5nIHRoZSBj dXJyZW50IGJ1ZmZlciBhcyB0aGUgbGVmdC1oYW5kCiAgICAgYnVmZmVyLCBhbmQgdXNpbmcgYnVm ZmVyIEJVRkZFUiBhcyB0aGUgcmlnaHQtaGFuZCBidWZmZXIKICAgICAo4oCYMkMtYXNzb2NpYXRl LWJ1ZmZlcuKAmSkuCgogICDigJg8RjI+IHPigJkgb3Ig4oCYQy14IDYgc+KAmSBsb29rcyBmb3Ig YSBjb2x1bW4gc2VwYXJhdG9yLCB3aGljaCBpcyBhIHN0cmluZwp0aGF0IGFwcGVhcnMgb24gZWFj aCBsaW5lIGJldHdlZW4gdGhlIHR3byBjb2x1bW5zLiAgWW91IGNhbiBzcGVjaWZ5IHRoZQp3aWR0 aCBvZiB0aGUgc2VwYXJhdG9yIHdpdGggYSBudW1lcmljIGFyZ3VtZW50IHRvIOKAmDxGMj4gc+KA mTsgdGhhdCBtYW55CmNoYXJhY3RlcnMsIGJlZm9yZSBwb2ludCwgY29uc3RpdHV0ZSB0aGUgc2Vw YXJhdG9yIHN0cmluZy4gIEJ5IGRlZmF1bHQsCnRoZSB3aWR0aCBpcyAxLCBzbyB0aGUgY29sdW1u IHNlcGFyYXRvciBpcyB0aGUgY2hhcmFjdGVyIGJlZm9yZSBwb2ludC4KCiAgIFdoZW4gYSBsaW5l IGhhcyB0aGUgc2VwYXJhdG9yIGF0IHRoZSBwcm9wZXIgcGxhY2UsIOKAmDxGMj4gc+KAmSBwdXRz IHRoZQp0ZXh0IGFmdGVyIHRoZSBzZXBhcmF0b3IgaW50byB0aGUgcmlnaHQtaGFuZCBidWZmZXIs IGFuZCBkZWxldGVzIHRoZQpzZXBhcmF0b3IuICBMaW5lcyB0aGF0IGRvbuKAmXQgaGF2ZSB0aGUg Y29sdW1uIHNlcGFyYXRvciBhdCB0aGUgcHJvcGVyCnBsYWNlIHJlbWFpbiB1bnNwbGl0OyB0aGV5 IHN0YXkgaW4gdGhlIGxlZnQtaGFuZCBidWZmZXIsIGFuZCB0aGUKcmlnaHQtaGFuZCBidWZmZXIg Z2V0cyBhbiBlbXB0eSBsaW5lIHRvIGNvcnJlc3BvbmQuICAoVGhpcyBpcyB0aGUgd2F5IHRvCndy aXRlIGEgbGluZSB0aGF0IHNwYW5zIGJvdGggY29sdW1ucyB3aGlsZSBpbiB0d28tY29sdW1uIG1v ZGU6IHdyaXRlIGl0CmluIHRoZSBsZWZ0LWhhbmQgYnVmZmVyLCBhbmQgcHV0IGFuIGVtcHR5IGxp bmUgaW4gdGhlIHJpZ2h0LWhhbmQKYnVmZmVyLikKCiAgIFRoZSBjb21tYW5kIOKAmDxGMj4gPFJF VD7igJkgb3Ig4oCYQy14IDYgPFJFVD7igJkgKOKAmDJDLW5ld2xpbmXigJkpIGluc2VydHMgYQpu ZXdsaW5lIGluIGVhY2ggb2YgdGhlIHR3byBidWZmZXJzIGF0IGNvcnJlc3BvbmRpbmcgcG9zaXRp b25zLiAgVGhpcyBpcwp0aGUgZWFzaWVzdCB3YXkgdG8gYWRkIGEgbmV3IGxpbmUgdG8gdGhlIHR3 by1jb2x1bW4gdGV4dCB3aGlsZSBlZGl0aW5nCml0IGluIHNwbGl0IGJ1ZmZlcnMuCgogICBXaGVu IHlvdSBoYXZlIGVkaXRlZCBib3RoIGJ1ZmZlcnMgYXMgeW91IHdpc2gsIG1lcmdlIHRoZW0gd2l0 aCDigJg8RjI+CjHigJkgb3Ig4oCYQy14IDYgMeKAmSAo4oCYMkMtbWVyZ2XigJkpLiAgVGhpcyBj b3BpZXMgdGhlIHRleHQgZnJvbSB0aGUgcmlnaHQtaGFuZApidWZmZXIgYXMgYSBzZWNvbmQgY29s dW1uIGluIHRoZSBvdGhlciBidWZmZXIuICBUbyBnbyBiYWNrIHRvIHR3by1jb2x1bW4KZWRpdGlu ZywgdXNlIOKAmDxGMj4gc+KAmS4KCiAgIFVzZSDigJg8RjI+IGTigJkgb3Ig4oCYQy14IDYgZOKA mSB0byBkaXNzb2NpYXRlIHRoZSB0d28gYnVmZmVycywgbGVhdmluZyBlYWNoCmFzIGl0IHN0YW5k cyAo4oCYMkMtZGlzc29jaWF0ZeKAmSkuICBJZiB0aGUgb3RoZXIgYnVmZmVyLCB0aGUgb25lIG5v dApjdXJyZW50IHdoZW4geW91IHR5cGUg4oCYPEYyPiBk4oCZLCBpcyBlbXB0eSwg4oCYPEYyPiBk 4oCZIGtpbGxzIGl0LgoKCiogMjYgRWRpdGluZyBQcm9ncmFtcwoKVGhpcyBjaGFwdGVyIGRlc2Ny aWJlcyBFbWFjcyBmZWF0dXJlcyBmb3IgZmFjaWxpdGF0aW5nIGVkaXRpbmcgcHJvZ3JhbXMuClNv bWUgb2YgdGhlIHRoaW5ncyB0aGVzZSBmZWF0dXJlcyBjYW4gZG8gYXJlOgoKICAg4oCiIEZpbmQg b3IgbW92ZSBvdmVyIHRvcC1sZXZlbCBkZWZpbml0aW9ucyAoKm5vdGUgRGVmdW5zOjopLgogICDi gKIgQXBwbHkgdGhlIHVzdWFsIGluZGVudGF0aW9uIGNvbnZlbnRpb25zIG9mIHRoZSBsYW5ndWFn ZSAoKm5vdGUKICAgICBQcm9ncmFtIEluZGVudDo6KS4KICAg4oCiIEJhbGFuY2UgcGFyZW50aGVz ZXMgKCpub3RlIFBhcmVudGhlc2VzOjopLgogICDigKIgSW5zZXJ0LCBraWxsIG9yIGFsaWduIGNv bW1lbnRzICgqbm90ZSBDb21tZW50czo6KS4KICAg4oCiIEhpZ2hsaWdodCBwcm9ncmFtIHN5bnRh eCAoKm5vdGUgRm9udCBMb2NrOjopLgoKKyBNZW51OgoKICAtIFByb2dyYW0gTW9kZXM6OiAgICAg ICBNYWpvciBtb2RlcyBmb3IgZWRpdGluZyBwcm9ncmFtcy4KICAtIERlZnVuczo6ICAgICAgICAg ICAgICBDb21tYW5kcyB0byBvcGVyYXRlIG9uIG1ham9yIHRvcC1sZXZlbCBwYXJ0cwogICAgICAg ICAgICAgICAgICAgICAgICAgIG9mIGEgcHJvZ3JhbS4KICAtIFByb2dyYW0gSW5kZW50OjogICAg ICBBZGp1c3RpbmcgaW5kZW50YXRpb24gdG8gc2hvdyB0aGUgbmVzdGluZy4KICAtIFBhcmVudGhl c2VzOjogICAgICAgICBDb21tYW5kcyB0aGF0IG9wZXJhdGUgb24gcGFyZW50aGVzZXMuCiAgLSBD b21tZW50czo6ICAgICAgICAgICAgSW5zZXJ0aW5nLCBraWxsaW5nLCBhbmQgYWxpZ25pbmcgY29t bWVudHMuCiAgLSBEb2N1bWVudGF0aW9uOjogICAgICAgR2V0dGluZyBkb2N1bWVudGF0aW9uIG9m IGZ1bmN0aW9ucyB5b3UgcGxhbiB0byBjYWxsLgogIC0gSGlkZXNob3c6OiAgICAgICAgICAgIERp c3BsYXlpbmcgYmxvY2tzIHNlbGVjdGl2ZWx5LgogIC0gU3ltYm9sIENvbXBsZXRpb246OiAgIENv bXBsZXRpb24gb24gc3ltYm9sIG5hbWVzIG9mIHlvdXIgcHJvZ3JhbSBvciBsYW5ndWFnZS4KICAt IE1peGVkQ2FzZSBXb3Jkczo6ICAgICBEZWFsaW5nIHdpdGggaWRlbnRpZmllcnNMaWtlVGhpcy4K ICAtIFNlbWFudGljOjogICAgICAgICAgICBTdWl0ZSBvZiBlZGl0aW5nIHRvb2xzIGJhc2VkIG9u IHNvdXJjZSBjb2RlIHBhcnNpbmcuCiAgLSBNaXNjIGZvciBQcm9ncmFtczo6ICAgT3RoZXIgRW1h Y3MgZmVhdHVyZXMgdXNlZnVsIGZvciBlZGl0aW5nIHByb2dyYW1zLgogIC0gQyBNb2Rlczo6ICAg ICAgICAgICAgIFNwZWNpYWwgY29tbWFuZHMgb2YgQywgQysrLCBPYmplY3RpdmUtQywgSmF2YSwK ICAgICAgICAgICAgICAgICAgICAgICAgICBJREwsIFBpa2UgYW5kIEFXSyBtb2Rlcy4KICAtIEFz bSBNb2RlOjogICAgICAgICAgICBBc20gbW9kZSBhbmQgaXRzIHNwZWNpYWwgZmVhdHVyZXMuCiAg LSBGb3J0cmFuOjogICAgICAgICAgICAgRm9ydHJhbiBtb2RlIGFuZCBpdHMgc3BlY2lhbCBmZWF0 dXJlcy4KCgoqKiAyNi4xIE1ham9yIE1vZGVzIGZvciBQcm9ncmFtbWluZyBMYW5ndWFnZXMKCkVt YWNzIGhhcyBzcGVjaWFsaXplZCBtYWpvciBtb2RlcyAoKm5vdGUgTWFqb3IgTW9kZXM6OikgZm9y IG1hbnkKcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiAgQSBwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2Rl IHR5cGljYWxseSBzcGVjaWZpZXMKdGhlIHN5bnRheCBvZiBleHByZXNzaW9ucywgdGhlIGN1c3Rv bWFyeSBydWxlcyBmb3IgaW5kZW50YXRpb24sIGhvdyB0bwpkbyBzeW50YXggaGlnaGxpZ2h0aW5n IGZvciB0aGUgbGFuZ3VhZ2UsIGFuZCBob3cgdG8gZmluZCB0aGUgYmVnaW5uaW5nCm9yIGVuZCBv ZiBhIGZ1bmN0aW9uIGRlZmluaXRpb24uICBJdCBvZnRlbiBoYXMgZmVhdHVyZXMgZm9yIGNvbXBp bGluZwphbmQgZGVidWdnaW5nIHByb2dyYW1zIGFzIHdlbGwuICBUaGUgbWFqb3IgbW9kZSBmb3Ig ZWFjaCBsYW5ndWFnZSBpcwpuYW1lZCBhZnRlciB0aGUgbGFuZ3VhZ2U7IGZvciBpbnN0YW5jZSwg dGhlIG1ham9yIG1vZGUgZm9yIHRoZSBDCnByb2dyYW1taW5nIGxhbmd1YWdlIGlzIOKAmGMtbW9k ZeKAmS4KCiAgIEVtYWNzIGhhcyBwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2RlcyBmb3IgTGlzcCwg U2NoZW1lLCB0aGUKU2NoZW1lLWJhc2VkIERTU1NMIGV4cHJlc3Npb24gbGFuZ3VhZ2UsIEFkYSwg QVNNLCBBV0ssIEMsIEMrKywgRm9ydHJhbiwKSWNvbiwgSURMIChDT1JCQSksIElETFdBVkUsIEph dmEsIEphdmFzY3JpcHQsIE00LCBNYWtlZmlsZXMsIE1ldGFmb250CihUZVjigJlzIGNvbXBhbmlv biBmb3IgZm9udCBjcmVhdGlvbiksIE1vZHVsYTIsIE9iamVjdCBQYXNjYWwsCk9iamVjdGl2ZS1D LCBPY3RhdmUsIFBhc2NhbCwgUGVybCwgUGlrZSwgUG9zdFNjcmlwdCwgUHJvbG9nLCBQeXRob24s ClJ1YnksIFNpbXVsYSwgU1FMLCBUY2wsIFZlcmlsb2csIGFuZCBWSERMLiAgQW4gYWx0ZXJuYXRp dmUgbW9kZSBmb3IgUGVybAppcyBjYWxsZWQgQ1BlcmwgbW9kZS4gIE1vZGVzIGFyZSBhbHNvIGF2 YWlsYWJsZSBmb3IgdGhlIHNjcmlwdGluZwpsYW5ndWFnZXMgb2YgdGhlIGNvbW1vbiBHTlUgYW5k IFVuaXggc2hlbGxzLCBhbmQgTVMtRE9TL01TLVdpbmRvd3Mg4oCYQkFU4oCZCmZpbGVzLCBhbmQg Zm9yIG1ha2VmaWxlcywgRE5TIG1hc3RlciBmaWxlcywgYW5kIHZhcmlvdXMgc29ydHMgb2YKY29u ZmlndXJhdGlvbiBmaWxlcy4KCiAgIElkZWFsbHksIEVtYWNzIHNob3VsZCBoYXZlIGEgbWFqb3Ig bW9kZSBmb3IgZWFjaCBwcm9ncmFtbWluZyBsYW5ndWFnZQp0aGF0IHlvdSBtaWdodCB3YW50IHRv IGVkaXQuICBJZiBpdCBkb2VzbuKAmXQgaGF2ZSBhIG1vZGUgZm9yIHlvdXIKZmF2b3JpdGUgbGFu Z3VhZ2UsIHRoZSBtb2RlIG1pZ2h0IGJlIGltcGxlbWVudGVkIGluIGEgcGFja2FnZSBub3QKZGlz dHJpYnV0ZWQgd2l0aCBFbWFjcyAoKm5vdGUgUGFja2FnZXM6Oik7IG9yIHlvdSBjYW4gY29udHJp YnV0ZSBvbmUuCgogICBJbiBtb3N0IHByb2dyYW1taW5nIGxhbmd1YWdlcywgaW5kZW50YXRpb24g c2hvdWxkIHZhcnkgZnJvbSBsaW5lIHRvCmxpbmUgdG8gaWxsdXN0cmF0ZSB0aGUgc3RydWN0dXJl IG9mIHRoZSBwcm9ncmFtLiAgVGhlcmVmb3JlLCBpbiBtb3N0CnByb2dyYW1taW5nIGxhbmd1YWdl IG1vZGVzLCB0eXBpbmcg4oCYPFRBQj7igJkgdXBkYXRlcyB0aGUgaW5kZW50YXRpb24gb2YKdGhl IGN1cnJlbnQgbGluZSAoKm5vdGUgUHJvZ3JhbSBJbmRlbnQ6OikuICBGdXJ0aGVybW9yZSwg4oCY PERFTD7igJkgaXMKdXN1YWxseSBib3VuZCB0byDigJhiYWNrd2FyZC1kZWxldGUtY2hhci11bnRh YmlmeeKAmSwgd2hpY2ggZGVsZXRlcyBiYWNrd2FyZAp0cmVhdGluZyBlYWNoIHRhYiBhcyBpZiBp dCB3ZXJlIHRoZSBlcXVpdmFsZW50IG51bWJlciBvZiBzcGFjZXMsIHNvIHRoYXQKeW91IGNhbiBk ZWxldGUgb25lIGNvbHVtbiBvZiBpbmRlbnRhdGlvbiB3aXRob3V0IHdvcnJ5aW5nIHdoZXRoZXIg dGhlCndoaXRlc3BhY2UgY29uc2lzdHMgb2Ygc3BhY2VzIG9yIHRhYnMuCgogICBFbnRlcmluZyBh IHByb2dyYW1taW5nIGxhbmd1YWdlIG1vZGUgcnVucyB0aGUgY3VzdG9tIExpc3AgZnVuY3Rpb25z CnNwZWNpZmllZCBpbiB0aGUgaG9vayB2YXJpYWJsZSDigJhwcm9nLW1vZGUtaG9va+KAmSwgZm9s bG93ZWQgYnkgdGhvc2UKc3BlY2lmaWVkIGluIHRoZSBtb2Rl4oCZcyBvd24gbW9kZSBob29rICgq bm90ZSBNYWpvciBNb2Rlczo6KS4gIEZvcgppbnN0YW5jZSwgZW50ZXJpbmcgQyBtb2RlIHJ1bnMg dGhlIGhvb2tzIOKAmHByb2ctbW9kZS1ob29r4oCZIGFuZArigJhjLW1vZGUtaG9va+KAmS4gICpO b3RlIEhvb2tzOjosIGZvciBpbmZvcm1hdGlvbiBhYm91dCBob29rcy4KCiAgIFNlcGFyYXRlIG1h bnVhbHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIG1vZGVzIGZvciBBZGEgKCpub3RlIEFkYSBNb2Rl OgooYWRhLW1vZGUpVG9wLiksIEMvQysrL09iamVjdGl2ZSBDL0phdmEvQ29yYmEgSURML1Bpa2Uv QVdLICgqbm90ZSBDQwpNb2RlOiAoY2Ntb2RlKVRvcC4pLCBPY3RhdmUsIFZIREwsIGFuZCBJRExX QVZFICgqbm90ZSBJRExXQVZFOgooaWRsd2F2ZSlUb3AuKS4KCgoqKiAyNi4yIFRvcC1MZXZlbCBE ZWZpbml0aW9ucywgb3IgRGVmdW5zCgpJbiBFbWFjcywgYSBtYWpvciBkZWZpbml0aW9uIGF0IHRo ZSB0b3AgbGV2ZWwgaW4gdGhlIGJ1ZmZlciwgc3VjaCBhcyBhCmZ1bmN0aW9uLCBpcyBjYWxsZWQg YSAiZGVmdW4iLiAgVGhlIG5hbWUgY29tZXMgZnJvbSBMaXNwLCBidXQgaW4gRW1hY3MKd2UgdXNl IGl0IGZvciBhbGwgbGFuZ3VhZ2VzLgoKKyBNZW51OgoKICAtIExlZnQgTWFyZ2luIFBhcmVuOjog ICBBbiBvcGVuLXBhcmVuIG9yIHNpbWlsYXIgb3BlbmluZyBkZWxpbWl0ZXIKICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGFydHMgYSBkZWZ1biBpZiBpdCBpcyBhdCB0aGUgbGVmdCBtYXJnaW4u CiAgLSBNb3ZpbmcgYnkgRGVmdW5zOjogICAgQ29tbWFuZHMgdG8gbW92ZSBvdmVyIG9yIG1hcmsg YSBtYWpvciBkZWZpbml0aW9uLgogIC0gSW1lbnU6OiAgICAgICAgICAgICAgIE1ha2luZyBidWZm ZXIgaW5kZXhlcyBhcyBtZW51cy4KICAtIFdoaWNoIEZ1bmN0aW9uOjogICAgICBXaGljaCBGdW5j dGlvbiBtb2RlIHNob3dzIHdoaWNoIGZ1bmN0aW9uIHlvdSBhcmUgaW4uCgoKKioqIDI2LjIuMSBM ZWZ0IE1hcmdpbiBDb252ZW50aW9uCgpNYW55IHByb2dyYW1taW5nLWxhbmd1YWdlIG1vZGVzIGFz c3VtZSBieSBkZWZhdWx0IHRoYXQgYW55IG9wZW5pbmcKZGVsaW1pdGVyIGZvdW5kIGF0IHRoZSBs ZWZ0IG1hcmdpbiBpcyB0aGUgc3RhcnQgb2YgYSB0b3AtbGV2ZWwKZGVmaW5pdGlvbiwgb3IgZGVm dW4uICBUaGVyZWZvcmUsICpkb27igJl0IHB1dCBhbiBvcGVuaW5nIGRlbGltaXRlciBhdCB0aGUK bGVmdCBtYXJnaW4gdW5sZXNzIGl0IHNob3VsZCBoYXZlIHRoYXQgc2lnbmlmaWNhbmNlKi4gIEZv ciBpbnN0YW5jZSwKbmV2ZXIgcHV0IGFuIG9wZW4tcGFyZW50aGVzaXMgYXQgdGhlIGxlZnQgbWFy Z2luIGluIGEgTGlzcCBmaWxlIHVubGVzcwppdCBpcyB0aGUgc3RhcnQgb2YgYSB0b3AtbGV2ZWwg bGlzdC4KCiAgIFRoZSBjb252ZW50aW9uIHNwZWVkcyB1cCBtYW55IEVtYWNzIG9wZXJhdGlvbnMs IHdoaWNoIHdvdWxkIG90aGVyd2lzZQpoYXZlIHRvIHNjYW4gYmFjayB0byB0aGUgYmVnaW5uaW5n IG9mIHRoZSBidWZmZXIgdG8gYW5hbHl6ZSB0aGUgc3ludGF4Cm9mIHRoZSBjb2RlLgoKICAgSWYg eW91IGRvbuKAmXQgZm9sbG93IHRoaXMgY29udmVudGlvbiwgbm90IG9ubHkgd2lsbCB5b3UgaGF2 ZSB0cm91YmxlCndoZW4geW91IGV4cGxpY2l0bHkgdXNlIHRoZSBjb21tYW5kcyBmb3IgbW90aW9u IGJ5IGRlZnVuczsgb3RoZXIKZmVhdHVyZXMgdGhhdCB1c2UgdGhlbSB3aWxsIGFsc28gZ2l2ZSB5 b3UgdHJvdWJsZS4gIFRoaXMgaW5jbHVkZXMgdGhlCmluZGVudGF0aW9uIGNvbW1hbmRzICgqbm90 ZSBQcm9ncmFtIEluZGVudDo6KSBhbmQgRm9udCBMb2NrIG1vZGUgKCpub3RlCkZvbnQgTG9jazo6 KS4KCiAgIFRoZSBtb3N0IGxpa2VseSBwcm9ibGVtIGNhc2UgaXMgd2hlbiB5b3Ugd2FudCBhbiBv cGVuaW5nIGRlbGltaXRlciBhdAp0aGUgc3RhcnQgb2YgYSBsaW5lIGluc2lkZSBhIHN0cmluZy4g IFRvIGF2b2lkIHRyb3VibGUsIHB1dCBhbiBlc2NhcGUKY2hhcmFjdGVyICjigJhc4oCZLCBpbiBD IGFuZCBFbWFjcyBMaXNwLCDigJgv4oCZIGluIHNvbWUgb3RoZXIgTGlzcCBkaWFsZWN0cykKYmVm b3JlIHRoZSBvcGVuaW5nIGRlbGltaXRlci4gIFRoaXMgd2lsbCBub3QgYWZmZWN0IHRoZSBjb250 ZW50cyBvZiB0aGUKc3RyaW5nLCBidXQgd2lsbCBwcmV2ZW50IHRoYXQgb3BlbmluZyBkZWxpbWl0 ZXIgZnJvbSBzdGFydGluZyBhIGRlZnVuLgpIZXJl4oCZcyBhbiBleGFtcGxlOgoKICAgICAgIChp bnNlcnQgIkZvbzoKICAgICBcKGJhcikKICAgICAiKQoKICAgVG8gaGVscCB5b3UgY2F0Y2ggdmlv bGF0aW9ucyBvZiB0aGlzIGNvbnZlbnRpb24sIEZvbnQgTG9jayBtb2RlCmhpZ2hsaWdodHMgY29u ZnVzaW5nIG9wZW5pbmcgZGVsaW1pdGVycyAodGhvc2UgdGhhdCBvdWdodCB0byBiZSBxdW90ZWQp CmluIGJvbGQgcmVkLgoKICAgSWYgeW91IG5lZWQgdG8gb3ZlcnJpZGUgdGhpcyBjb252ZW50aW9u LCB5b3UgY2FuIGRvIHNvIGJ5IHNldHRpbmcgdGhlCnZhcmlhYmxlIOKAmG9wZW4tcGFyZW4taW4t Y29sdW1uLTAtaXMtZGVmdW4tc3RhcnTigJkuICBJZiB0aGlzIHVzZXIgb3B0aW9uCmlzIHNldCB0 byDigJh04oCZICh0aGUgZGVmYXVsdCksIG9wZW5pbmcgcGFyZW50aGVzZXMgb3IgYnJhY2VzIGF0 IGNvbHVtbgp6ZXJvIGFsd2F5cyBzdGFydCBkZWZ1bnMuICBXaGVuIGl0IGlzIOKAmG5pbOKAmSwg ZGVmdW5zIGFyZSBmb3VuZCBieQpzZWFyY2hpbmcgZm9yIHBhcmVucyBvciBicmFjZXMgYXQgdGhl IG91dGVybW9zdCBsZXZlbC4KCiAgIFVzdWFsbHksIHlvdSBzaG91bGQgbGVhdmUgdGhpcyBvcHRp b24gYXQgaXRzIGRlZmF1bHQgdmFsdWUgb2Yg4oCYdOKAmS4KSWYgeW91ciBidWZmZXIgY29udGFp bnMgcGFyZW50aGVzZXMgb3IgYnJhY2VzIGluIGNvbHVtbiB6ZXJvIHdoaWNoIGRvbuKAmXQKc3Rh cnQgZGVmdW5zLCBhbmQgaXQgaXMgc29tZWhvdyBpbXByYWN0aWNhbCB0byByZW1vdmUgdGhlc2Ug cGFyZW50aGVzZXMKb3IgYnJhY2VzLCBpdCBtaWdodCBiZSBoZWxwZnVsIHRvIHNldCB0aGUgb3B0 aW9uIHRvIOKAmG5pbOKAmS4gIEJlIGF3YXJlCnRoYXQgdGhpcyBtaWdodCBtYWtlIHNjcm9sbGlu ZyBhbmQgZGlzcGxheSBpbiBsYXJnZSBidWZmZXJzIHF1aXRlCnNsdWdnaXNoLiAgRnVydGhlcm1v cmUsIHRoZSBwYXJlbnRoZXNlcyBhbmQgYnJhY2VzIG11c3QgYmUgY29ycmVjdGx5Cm1hdGNoZWQg dGhyb3VnaG91dCB0aGUgYnVmZmVyIGZvciBpdCB0byB3b3JrIHByb3Blcmx5LgoKCioqKiAyNi4y LjIgTW92aW5nIGJ5IERlZnVucwoKVGhlc2UgY29tbWFuZHMgbW92ZSBwb2ludCBvciBzZXQgdXAg dGhlIHJlZ2lvbiBiYXNlZCBvbiB0b3AtbGV2ZWwgbWFqb3IKZGVmaW5pdGlvbnMsIGFsc28gY2Fs bGVkICJkZWZ1bnMiLgoK4oCYQy1NLWHigJkKICAgICBNb3ZlIHRvIGJlZ2lubmluZyBvZiBjdXJy ZW50IG9yIHByZWNlZGluZyBkZWZ1bgogICAgICjigJhiZWdpbm5pbmctb2YtZGVmdW7igJkpLgri gJhDLU0tZeKAmQogICAgIE1vdmUgdG8gZW5kIG9mIGN1cnJlbnQgb3IgZm9sbG93aW5nIGRlZnVu ICjigJhlbmQtb2YtZGVmdW7igJkpLgrigJhDLU0taOKAmQogICAgIFB1dCByZWdpb24gYXJvdW5k IHdob2xlIGN1cnJlbnQgb3IgZm9sbG93aW5nIGRlZnVuICjigJhtYXJrLWRlZnVu4oCZKS4KCiAg IFRoZSBjb21tYW5kcyB0byBtb3ZlIHRvIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgY3Vy cmVudCBkZWZ1bgphcmUg4oCYQy1NLWHigJkgKOKAmGJlZ2lubmluZy1vZi1kZWZ1buKAmSkgYW5k IOKAmEMtTS1l4oCZICjigJhlbmQtb2YtZGVmdW7igJkpLiAgSWYgeW91CnJlcGVhdCBvbmUgb2Yg dGhlc2UgY29tbWFuZHMsIG9yIHVzZSBhIHBvc2l0aXZlIG51bWVyaWMgYXJndW1lbnQsIGVhY2gK cmVwZXRpdGlvbiBtb3ZlcyB0byB0aGUgbmV4dCBkZWZ1biBpbiB0aGUgZGlyZWN0aW9uIG9mIG1v dGlvbi4KCiAgIOKAmEMtTS1h4oCZIHdpdGggYSBuZWdhdGl2ZSBhcmd1bWVudCDiiJJOIG1vdmVz IGZvcndhcmQgTiB0aW1lcyB0byB0aGUgbmV4dApiZWdpbm5pbmcgb2YgYSBkZWZ1bi4gIFRoaXMg aXMgbm90IGV4YWN0bHkgdGhlIHNhbWUgcGxhY2UgdGhhdCDigJhDLU0tZeKAmQp3aXRoIGFyZ3Vt ZW50IE4gd291bGQgbW92ZSB0bzsgdGhlIGVuZCBvZiB0aGlzIGRlZnVuIGlzIG5vdCB1c3VhbGx5 CmV4YWN0bHkgdGhlIHNhbWUgcGxhY2UgYXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgZm9sbG93aW5n IGRlZnVuLgooV2hpdGVzcGFjZSwgY29tbWVudHMsIGFuZCBwZXJoYXBzIGRlY2xhcmF0aW9ucyBj YW4gc2VwYXJhdGUgdGhlbS4pCkxpa2V3aXNlLCDigJhDLU0tZeKAmSB3aXRoIGEgbmVnYXRpdmUg YXJndW1lbnQgbW92ZXMgYmFjayB0byBhbiBlbmQgb2YgYQpkZWZ1biwgd2hpY2ggaXMgbm90IHF1 aXRlIHRoZSBzYW1lIGFzIOKAmEMtTS1h4oCZIHdpdGggYSBwb3NpdGl2ZSBhcmd1bWVudC4KCiAg IFRvIG9wZXJhdGUgb24gdGhlIGN1cnJlbnQgZGVmdW4sIHVzZSDigJhDLU0taOKAmSAo4oCYbWFy ay1kZWZ1buKAmSksIHdoaWNoCnNldHMgdGhlIG1hcmsgYXQgdGhlIGVuZCBvZiB0aGUgY3VycmVu dCBkZWZ1biBhbmQgcHV0cyBwb2ludCBhdCBpdHMKYmVnaW5uaW5nLiAgKk5vdGUgTWFya2luZyBP YmplY3RzOjouICBUaGlzIGlzIHRoZSBlYXNpZXN0IHdheSB0byBnZXQKcmVhZHkgdG8ga2lsbCB0 aGUgZGVmdW4gaW4gb3JkZXIgdG8gbW92ZSBpdCB0byBhIGRpZmZlcmVudCBwbGFjZSBpbiB0aGUK ZmlsZS4gIElmIHRoZSBkZWZ1biBpcyBkaXJlY3RseSBwcmVjZWRlZCBieSBjb21tZW50cyAod2l0 aCBubwppbnRlcnZlbmluZyBibGFuayBsaW5lcyksIHRoZXkgYXJlIG1hcmtlZCwgdG9vLiAgSWYg eW91IHVzZSB0aGUgY29tbWFuZAp3aGlsZSBwb2ludCBpcyBiZXR3ZWVuIGRlZnVucywgaXQgdXNl cyB0aGUgZm9sbG93aW5nIGRlZnVuLiAgSWYgeW91IHVzZQp0aGUgY29tbWFuZCB3aGlsZSB0aGUg bWFyayBpcyBhbHJlYWR5IGFjdGl2ZSwgaXQgZXh0ZW5kcyB0aGUgZW5kIG9mIHRoZQpyZWdpb24g dG8gaW5jbHVkZSBvbmUgbW9yZSBkZWZ1bi4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQsIGl0IG1h cmtzIHRoYXQKbWFueSBkZWZ1bnMgb3IgZXh0ZW5kcyB0aGUgcmVnaW9uIGJ5IHRoZSBhcHByb3By aWF0ZSBudW1iZXIgb2YgZGVmdW5zLgpXaXRoIG5lZ2F0aXZlIHByZWZpeCBhcmd1bWVudCBpdCBt YXJrcyBkZWZ1bnMgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbgphbmQgYWxzbyBjaGFuZ2VzIHRo ZSBkaXJlY3Rpb24gb2Ygc2VsZWN0aW5nIGZvciBzdWJzZXF1ZW50IHVzZXMgb2YK4oCYbWFyay1k ZWZ1buKAmS4KCiAgIEluIEMgbW9kZSwg4oCYQy1NLWjigJkgcnVucyB0aGUgZnVuY3Rpb24g4oCY Yy1tYXJrLWZ1bmN0aW9u4oCZLCB3aGljaCBpcwphbG1vc3QgdGhlIHNhbWUgYXMg4oCYbWFyay1k ZWZ1buKAmTsgdGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBpdCBiYWNrcyB1cCBvdmVyCnRoZSBhcmd1 bWVudCBkZWNsYXJhdGlvbnMsIGZ1bmN0aW9uIG5hbWUgYW5kIHJldHVybmVkIGRhdGEgdHlwZSBz byB0aGF0CnRoZSBlbnRpcmUgQyBmdW5jdGlvbiBpcyBpbnNpZGUgdGhlIHJlZ2lvbi4gIFRoaXMg aXMgYW4gZXhhbXBsZSBvZiBob3cKbWFqb3IgbW9kZXMgYWRqdXN0IHRoZSBzdGFuZGFyZCBrZXkg YmluZGluZ3Mgc28gdGhhdCB0aGV5IGRvIHRoZWlyCnN0YW5kYXJkIGpvYnMgaW4gYSB3YXkgYmV0 dGVyIGZpdHRpbmcgYSBwYXJ0aWN1bGFyIGxhbmd1YWdlLiAgT3RoZXIKbWFqb3IgbW9kZXMgbWF5 IHJlcGxhY2UgYW55IG9yIGFsbCBvZiB0aGVzZSBrZXkgYmluZGluZ3MgZm9yIHRoYXQKcHVycG9z ZS4KCgoqKiogMjYuMi4zIEltZW51CgpUaGUgSW1lbnUgZmFjaWxpdHkgb2ZmZXJzIGEgd2F5IHRv IGZpbmQgdGhlIG1ham9yIGRlZmluaXRpb25zIGluIGEgZmlsZQpieSBuYW1lLiAgSXQgaXMgYWxz byB1c2VmdWwgaW4gdGV4dCBmb3JtYXR0ZXIgbWFqb3IgbW9kZXMsIHdoZXJlIGl0CnRyZWF0cyBl YWNoIGNoYXB0ZXIsIHNlY3Rpb24sIGV0Yy4sIGFzIGEgZGVmaW5pdGlvbi4gICgqTm90ZSBYcmVm OjosIGZvcgphIG1vcmUgcG93ZXJmdWwgZmVhdHVyZSB0aGF0IGhhbmRsZXMgbXVsdGlwbGUgZmls ZXMgdG9nZXRoZXIuKQoKICAgSWYgeW91IHR5cGUg4oCYTS14IGltZW514oCZLCBpdCByZWFkcyB0 aGUgbmFtZSBvZiBhIGRlZmluaXRpb24gdXNpbmcgdGhlCm1pbmlidWZmZXIsIHRoZW4gbW92ZXMg cG9pbnQgdG8gdGhhdCBkZWZpbml0aW9uLiAgWW91IGNhbiB1c2UgY29tcGxldGlvbgp0byBzcGVj aWZ5IHRoZSBuYW1lOyB0aGUgY29tbWFuZCBhbHdheXMgZGlzcGxheXMgdGhlIHdob2xlIGxpc3Qg b2YgdmFsaWQKbmFtZXMuCgogICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGJpbmQgdGhlIGNvbW1h bmQg4oCYaW1lbnXigJkgdG8gYSBtb3VzZSBjbGljay4KVGhlbiBpdCBkaXNwbGF5cyBtb3VzZSBt ZW51cyBmb3IgeW91IHRvIHNlbGVjdCBhIGRlZmluaXRpb24gbmFtZS4gIFlvdQpjYW4gYWxzbyBh ZGQgdGhlIGJ1ZmZlcuKAmXMgaW5kZXggdG8gdGhlIG1lbnUgYmFyIGJ5IGNhbGxpbmcK4oCYaW1l bnUtYWRkLW1lbnViYXItaW5kZXjigJkuICBJZiB5b3Ugd2FudCB0byBoYXZlIHRoaXMgbWVudSBi YXIgaXRlbQphdmFpbGFibGUgZm9yIGFsbCBidWZmZXJzIGluIGEgY2VydGFpbiBtYWpvciBtb2Rl LCB5b3UgY2FuIGRvIHRoaXMgYnkKYWRkaW5nIOKAmGltZW51LWFkZC1tZW51YmFyLWluZGV44oCZ IHRvIGl0cyBtb2RlIGhvb2suICBCdXQgaWYgeW91IGhhdmUgZG9uZQp0aGF0LCB5b3Ugd2lsbCBo YXZlIHRvIHdhaXQgYSBsaXR0bGUgd2hpbGUgZWFjaCB0aW1lIHlvdSB2aXNpdCBhIGZpbGUgaW4K dGhhdCBtb2RlLCB3aGlsZSBFbWFjcyBmaW5kcyBhbGwgdGhlIGRlZmluaXRpb25zIGluIHRoYXQg YnVmZmVyLgoKICAgV2hlbiB5b3UgY2hhbmdlIHRoZSBjb250ZW50cyBvZiBhIGJ1ZmZlciwgaWYg eW91IGFkZCBvciBkZWxldGUKZGVmaW5pdGlvbnMsIHlvdSBjYW4gdXBkYXRlIHRoZSBidWZmZXLi gJlzIGluZGV4IGJhc2VkIG9uIHRoZSBuZXcgY29udGVudHMKYnkgaW52b2tpbmcgdGhlIOKAmCpS ZXNjYW4q4oCZIGl0ZW0gaW4gdGhlIG1lbnUuICBSZXNjYW5uaW5nIGhhcHBlbnMKYXV0b21hdGlj YWxseSBpZiB5b3Ugc2V0IOKAmGltZW51LWF1dG8tcmVzY2Fu4oCZIHRvIGEgbm9uLeKAmG5pbOKA mSB2YWx1ZS4KVGhlcmUgaXMgbm8gbmVlZCB0byByZXNjYW4gYmVjYXVzZSBvZiBzbWFsbCBjaGFu Z2VzIGluIHRoZSB0ZXh0LgoKICAg4oCYaW1lbnUtYXV0by1yZXNjYW7igJkgd2lsbCBiZSBkaXNh YmxlZCBpbiBidWZmZXJzIHRoYXQgYXJlIGxhcmdlciB0aGFuCuKAmGltZW51LWF1dG8tcmVzY2Fu LW1heG91dOKAmSBpbiBieXRlcy4KCiAgIFlvdSBjYW4gY3VzdG9taXplIHRoZSB3YXkgdGhlIG1l bnVzIGFyZSBzb3J0ZWQgYnkgc2V0dGluZyB0aGUKdmFyaWFibGUg4oCYaW1lbnUtc29ydC1mdW5j dGlvbuKAmS4gIEJ5IGRlZmF1bHQsIG5hbWVzIGFyZSBvcmRlcmVkIGFzIHRoZXkKb2NjdXIgaW4g dGhlIGJ1ZmZlcjsgaWYgeW91IHdhbnQgYWxwaGFiZXRpYyBzb3J0aW5nLCB1c2UgdGhlIHN5bWJv bArigJhpbWVudS0tc29ydC1ieS1uYW1l4oCZIGFzIHRoZSB2YWx1ZS4gIFlvdSBjYW4gYWxzbyBk ZWZpbmUgeW91ciBvd24KY29tcGFyaXNvbiBmdW5jdGlvbiBieSB3cml0aW5nIExpc3AgY29kZS4K CiAgIEltZW51IHByb3ZpZGVzIHRoZSBpbmZvcm1hdGlvbiB0byBndWlkZSBXaGljaCBGdW5jdGlv biBtb2RlICgqbm90ZQpXaGljaCBGdW5jdGlvbjo6KS4gIFRoZSBTcGVlZGJhciBjYW4gYWxzbyB1 c2UgaXQgKCpub3RlIFNwZWVkYmFyOjopLgoKCioqKiAyNi4yLjQgV2hpY2ggRnVuY3Rpb24gTW9k ZQoKV2hpY2ggRnVuY3Rpb24gbW9kZSBpcyBhIGdsb2JhbCBtaW5vciBtb2RlICgqbm90ZSBNaW5v ciBNb2Rlczo6KSB3aGljaApkaXNwbGF5cyB0aGUgY3VycmVudCBmdW5jdGlvbiBuYW1lIGluIHRo ZSBtb2RlIGxpbmUsIHVwZGF0aW5nIGl0IGFzIHlvdQptb3ZlIGFyb3VuZCBpbiBhIGJ1ZmZlci4K CiAgIFRvIGVpdGhlciBlbmFibGUgb3IgZGlzYWJsZSBXaGljaCBGdW5jdGlvbiBtb2RlLCB1c2Ug dGhlIGNvbW1hbmQg4oCYTS14CndoaWNoLWZ1bmN0aW9uLW1vZGXigJkuICBXaGljaCBGdW5jdGlv biBtb2RlIGlzIGEgZ2xvYmFsIG1pbm9yIG1vZGUuICBCeQpkZWZhdWx0LCBpdCB0YWtlcyBlZmZl Y3QgaW4gYWxsIG1ham9yIG1vZGVzIHRoYXQga25vdyBob3cgdG8gc3VwcG9ydCBpdAooaS5lLiwg YWxsIHRoZSBtYWpvciBtb2RlcyB0aGF0IHN1cHBvcnQgSW1lbnUpLiAgWW91IGNhbiByZXN0cmlj dCBpdCB0bwphIHNwZWNpZmljIGxpc3Qgb2YgbWFqb3IgbW9kZXMgYnkgY2hhbmdpbmcgdGhlIHZh bHVlIG9mIHRoZSB2YXJpYWJsZQrigJh3aGljaC1mdW5jLW1vZGVz4oCZIGZyb20g4oCYdOKAmSAo d2hpY2ggbWVhbnMgdG8gc3VwcG9ydCBhbGwgYXZhaWxhYmxlIG1ham9yCm1vZGVzKSB0byBhIGxp c3Qgb2YgbWFqb3IgbW9kZSBuYW1lcy4KCgoqKiAyNi4zIEluZGVudGF0aW9uIGZvciBQcm9ncmFt cwoKVGhlIGJlc3Qgd2F5IHRvIGtlZXAgYSBwcm9ncmFtIHByb3Blcmx5IGluZGVudGVkIGlzIHRv IHVzZSBFbWFjcyB0bwpyZWluZGVudCBpdCBhcyB5b3UgY2hhbmdlIGl0LiAgRW1hY3MgaGFzIGNv bW1hbmRzIHRvIGluZGVudCBlaXRoZXIgYQpzaW5nbGUgbGluZSwgYSBzcGVjaWZpZWQgbnVtYmVy IG9mIGxpbmVzLCBvciBhbGwgb2YgdGhlIGxpbmVzIGluc2lkZSBhCnNpbmdsZSBwYXJlbnRoZXRp Y2FsIGdyb3VwaW5nLgoKICAgKk5vdGUgSW5kZW50YXRpb246OiwgZm9yIGdlbmVyYWwgaW5mb3Jt YXRpb24gYWJvdXQgaW5kZW50YXRpb24uICBUaGlzCnNlY3Rpb24gZGVzY3JpYmVzIGluZGVudGF0 aW9uIGZlYXR1cmVzIHNwZWNpZmljIHRvIHByb2dyYW1taW5nIGxhbmd1YWdlCm1vZGVzLgoKKyBN ZW51OgoKICAtIEJhc2ljIEluZGVudDo6ICAgICAgICBJbmRlbnRpbmcgYSBzaW5nbGUgbGluZS4K ICAtIE11bHRpLWxpbmUgSW5kZW50OjogICBDb21tYW5kcyB0byByZWluZGVudCBtYW55IGxpbmVz IGF0IG9uY2UuCiAgLSBMaXNwIEluZGVudDo6ICAgICAgICAgU3BlY2lmeWluZyBob3cgZWFjaCBM aXNwIGZ1bmN0aW9uIHNob3VsZCBiZSBpbmRlbnRlZC4KICAtIEMgSW5kZW50OjogICAgICAgICAg ICBFeHRyYSBmZWF0dXJlcyBmb3IgaW5kZW50aW5nIEMgYW5kIHJlbGF0ZWQgbW9kZXMuCiAgLSBD dXN0b20gQyBJbmRlbnQ6OiAgICAgQ29udHJvbGxpbmcgaW5kZW50YXRpb24gc3R5bGUgZm9yIEMg YW5kIHJlbGF0ZWQgbW9kZXMuCgogICBFbWFjcyBhbHNvIHByb3ZpZGVzIGEgTGlzcCBwcmV0dHkt cHJpbnRlciBpbiB0aGUg4oCYcHDigJkgcGFja2FnZSwgd2hpY2gKcmVmb3JtYXRzIExpc3Agb2Jq ZWN0cyB3aXRoIG5pY2UtbG9va2luZyBpbmRlbnRhdGlvbi4gICpOb3RlIHBwOgooZWxpc3ApT3V0 cHV0IEZ1bmN0aW9ucy4KCgoqKiogMjYuMy4xIEJhc2ljIFByb2dyYW0gSW5kZW50YXRpb24gQ29t bWFuZHMKCuKAmDxUQUI+4oCZCiAgICAgQWRqdXN0IGluZGVudGF0aW9uIG9mIGN1cnJlbnQgbGlu ZSAo4oCYaW5kZW50LWZvci10YWItY29tbWFuZOKAmSkuCuKAmDxSRVQ+4oCZCiAgICAgSW5zZXJ0 IGEgbmV3bGluZSwgdGhlbiBhZGp1c3QgaW5kZW50YXRpb24gb2YgZm9sbG93aW5nIGxpbmUKICAg ICAo4oCYbmV3bGluZeKAmSkuCgogICBUaGUgYmFzaWMgaW5kZW50YXRpb24gY29tbWFuZCBpcyDi gJg8VEFCPuKAmSAo4oCYaW5kZW50LWZvci10YWItY29tbWFuZOKAmSksCndoaWNoIHdhcyBkb2N1 bWVudGVkIGluICpub3RlIEluZGVudGF0aW9uOjouICBJbiBwcm9ncmFtbWluZyBsYW5ndWFnZQpt b2Rlcywg4oCYPFRBQj7igJkgaW5kZW50cyB0aGUgY3VycmVudCBsaW5lLCBiYXNlZCBvbiB0aGUg aW5kZW50YXRpb24gYW5kCnN5bnRhY3RpYyBjb250ZW50IG9mIHRoZSBwcmVjZWRpbmcgbGluZXM7 IGlmIHRoZSByZWdpb24gaXMgYWN0aXZlLArigJg8VEFCPuKAmSBpbmRlbnRzIGVhY2ggbGluZSB3 aXRoaW4gdGhlIHJlZ2lvbiwgbm90IGp1c3QgdGhlIGN1cnJlbnQgbGluZS4KCiAgIFRoZSBjb21t YW5kIOKAmDxSRVQ+4oCZICjigJhuZXdsaW5l4oCZKSwgd2hpY2ggd2FzIGRvY3VtZW50ZWQgaW4g Km5vdGUKSW5zZXJ0aW5nIFRleHQ6OiwgZG9lcyB0aGUgc2FtZSBhcyDigJhDLWrigJkgZm9sbG93 ZWQgYnkg4oCYPFRBQj7igJk6IGl0IGluc2VydHMKYSBuZXcgbGluZSwgdGhlbiBhZGp1c3RzIHRo ZSBsaW5l4oCZcyBpbmRlbnRhdGlvbi4KCiAgIFdoZW4gaW5kZW50aW5nIGEgbGluZSB0aGF0IHN0 YXJ0cyB3aXRoaW4gYSBwYXJlbnRoZXRpY2FsIGdyb3VwaW5nLApFbWFjcyB1c3VhbGx5IHBsYWNl cyB0aGUgc3RhcnQgb2YgdGhlIGxpbmUgdW5kZXIgdGhlIHByZWNlZGluZyBsaW5lCndpdGhpbiB0 aGUgZ3JvdXAsIG9yIHVuZGVyIHRoZSB0ZXh0IGFmdGVyIHRoZSBwYXJlbnRoZXNpcy4gIElmIHlv dQptYW51YWxseSBnaXZlIG9uZSBvZiB0aGVzZSBsaW5lcyBhIG5vbnN0YW5kYXJkIGluZGVudGF0 aW9uIChlLmcuLCBmb3IKYWVzdGhldGljIHB1cnBvc2VzKSwgdGhlIGxpbmVzIGJlbG93IHdpbGwg Zm9sbG93IGl0LgoKICAgVGhlIGluZGVudGF0aW9uIGNvbW1hbmRzIGZvciBtb3N0IHByb2dyYW1t aW5nIGxhbmd1YWdlIG1vZGVzIGFzc3VtZQp0aGF0IGFuIG9wZW4tcGFyZW50aGVzaXMsIG9wZW4t YnJhY2Ugb3Igb3RoZXIgb3BlbmluZyBkZWxpbWl0ZXIgYXQgdGhlCmxlZnQgbWFyZ2luIGlzIHRo ZSBzdGFydCBvZiBhIGZ1bmN0aW9uLiAgSWYgdGhlIGNvZGUgeW91IGFyZSBlZGl0aW5nCnZpb2xh dGVzIHRoaXMgYXNzdW1wdGlvbuKAlGV2ZW4gaWYgdGhlIGRlbGltaXRlcnMgb2NjdXIgaW4gc3Ry aW5ncyBvcgpjb21tZW50c+KAlHlvdSBtdXN0IHNldCDigJhvcGVuLXBhcmVuLWluLWNvbHVtbi0w LWlzLWRlZnVuLXN0YXJ04oCZIHRvIOKAmG5pbOKAmQpmb3IgaW5kZW50YXRpb24gdG8gd29yayBw cm9wZXJseS4gICpOb3RlIExlZnQgTWFyZ2luIFBhcmVuOjouCgoKKioqIDI2LjMuMiBJbmRlbnRp bmcgU2V2ZXJhbCBMaW5lcwoKU29tZXRpbWVzLCB5b3UgbWF5IHdhbnQgdG8gcmVpbmRlbnQgc2V2 ZXJhbCBsaW5lcyBvZiBjb2RlIGF0IGEgdGltZS4KT25lIHdheSB0byBkbyB0aGlzIGlzIHRvIHVz ZSB0aGUgbWFyazsgd2hlbiB0aGUgbWFyayBpcyBhY3RpdmUgYW5kIHRoZQpyZWdpb24gaXMgbm9u LWVtcHR5LCDigJg8VEFCPuKAmSBpbmRlbnRzIGV2ZXJ5IGxpbmUgaW4gdGhlIHJlZ2lvbi4KQWx0 ZXJuYXRpdmVseSwgdGhlIGNvbW1hbmQg4oCYQy1NLVzigJkgKOKAmGluZGVudC1yZWdpb27igJkp IGluZGVudHMgZXZlcnkgbGluZQppbiB0aGUgcmVnaW9uLCB3aGV0aGVyIG9yIG5vdCB0aGUgbWFy ayBpcyBhY3RpdmUgKCpub3RlIEluZGVudGF0aW9uCkNvbW1hbmRzOjopLgoKICAgSW4gYWRkaXRp b24sIEVtYWNzIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgZm9yIGluZGVudGluZwps YXJnZSBjaHVua3Mgb2YgY29kZToKCuKAmEMtTS1x4oCZCiAgICAgUmVpbmRlbnQgYWxsIHRoZSBs aW5lcyB3aXRoaW4gb25lIHBhcmVudGhldGljYWwgZ3JvdXBpbmcuCuKAmEMtdSA8VEFCPuKAmQog ICAgIFNoaWZ0IGFuIGVudGlyZSBwYXJlbnRoZXRpY2FsIGdyb3VwaW5nIHJpZ2lkbHkgc2lkZXdh eXMgc28gdGhhdCBpdHMKICAgICBmaXJzdCBsaW5lIGlzIHByb3Blcmx5IGluZGVudGVkLgrigJhN LXggaW5kZW50LWNvZGUtcmlnaWRseeKAmQogICAgIFNoaWZ0IGFsbCB0aGUgbGluZXMgaW4gdGhl IHJlZ2lvbiByaWdpZGx5IHNpZGV3YXlzLCBidXQgZG8gbm90CiAgICAgYWx0ZXIgbGluZXMgdGhh dCBzdGFydCBpbnNpZGUgY29tbWVudHMgYW5kIHN0cmluZ3MuCgogICBUbyByZWluZGVudCB0aGUg Y29udGVudHMgb2YgYSBzaW5nbGUgcGFyZW50aGV0aWNhbCBncm91cGluZywgcG9zaXRpb24KcG9p bnQgYmVmb3JlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGdyb3VwaW5nIGFuZCB0eXBlIOKAmEMtTS1x 4oCZLiAgVGhpcwpjaGFuZ2VzIHRoZSByZWxhdGl2ZSBpbmRlbnRhdGlvbiB3aXRoaW4gdGhlIGdy b3VwaW5nLCB3aXRob3V0IGFmZmVjdGluZwppdHMgb3ZlcmFsbCBpbmRlbnRhdGlvbiAoaS5lLiwg dGhlIGluZGVudGF0aW9uIG9mIHRoZSBsaW5lIHdoZXJlIHRoZQpncm91cGluZyBzdGFydHMpLiAg VGhlIGZ1bmN0aW9uIHRoYXQg4oCYQy1NLXHigJkgcnVucyBkZXBlbmRzIG9uIHRoZSBtYWpvcgpt b2RlOyBpdCBpcyDigJhpbmRlbnQtcHAtc2V4cOKAmSBpbiBMaXNwIG1vZGUsIOKAmGMtaW5kZW50 LWV4cOKAmSBpbiBDIG1vZGUsCmV0Yy4gIFRvIGNvcnJlY3QgdGhlIG92ZXJhbGwgaW5kZW50YXRp b24gYXMgd2VsbCwgdHlwZSDigJg8VEFCPuKAmSBmaXJzdC4KCiAgIElmIHlvdSBsaWtlIHRoZSBy ZWxhdGl2ZSBpbmRlbnRhdGlvbiB3aXRoaW4gYSBncm91cGluZyBidXQgbm90IHRoZQppbmRlbnRh dGlvbiBvZiBpdHMgZmlyc3QgbGluZSwgbW92ZSBwb2ludCB0byB0aGF0IGZpcnN0IGxpbmUgYW5k IHR5cGUK4oCYQy11IDxUQUI+4oCZLiAgSW4gTGlzcCwgQywgYW5kIHNvbWUgb3RoZXIgbWFqb3Ig bW9kZXMsIOKAmDxUQUI+4oCZIHdpdGggYQpudW1lcmljIGFyZ3VtZW50IHJlaW5kZW50cyB0aGUg Y3VycmVudCBsaW5lIGFzIHVzdWFsLCB0aGVuIHJlaW5kZW50cyBieQp0aGUgc2FtZSBhbW91bnQg YWxsIHRoZSBsaW5lcyBpbiB0aGUgcGFyZW50aGV0aWNhbCBncm91cGluZyBzdGFydGluZyBvbgp0 aGUgY3VycmVudCBsaW5lLiAgSXQgaXMgY2xldmVyLCB0aG91Z2gsIGFuZCBkb2VzIG5vdCBhbHRl ciBsaW5lcyB0aGF0CnN0YXJ0IGluc2lkZSBzdHJpbmdzLiAgTmVpdGhlciBkb2VzIGl0IGFsdGVy IEMgcHJlcHJvY2Vzc29yIGxpbmVzIHdoZW4KaW4gQyBtb2RlLCBidXQgaXQgZG9lcyByZWluZGVu dCBhbnkgY29udGludWF0aW9uIGxpbmVzIHRoYXQgbWF5IGJlCmF0dGFjaGVkIHRvIHRoZW0uCgog ICBUaGUgY29tbWFuZCDigJhNLXggaW5kZW50LWNvZGUtcmlnaWRseeKAmSByaWdpZGx5IHNoaWZ0 cyBhbGwgdGhlIGxpbmVzIGluCnRoZSByZWdpb24gc2lkZXdheXMsIGxpa2Ug4oCYaW5kZW50LXJp Z2lkbHnigJkgZG9lcyAoKm5vdGUgSW5kZW50YXRpb24KQ29tbWFuZHM6OikuICBJdCBkb2VzbuKA mXQgYWx0ZXIgdGhlIGluZGVudGF0aW9uIG9mIGxpbmVzIHRoYXQgc3RhcnQKaW5zaWRlIGEgc3Ry aW5nLCB1bmxlc3MgdGhlIHJlZ2lvbiBhbHNvIHN0YXJ0cyBpbnNpZGUgdGhhdCBzdHJpbmcuICBU aGUKcHJlZml4IGFyZyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIGluZGVudC4K CgoqKiogMjYuMy4zIEN1c3RvbWl6aW5nIExpc3AgSW5kZW50YXRpb24KClRoZSBpbmRlbnRhdGlv biBwYXR0ZXJuIGZvciBhIExpc3AgZXhwcmVzc2lvbiBjYW4gZGVwZW5kIG9uIHRoZSBmdW5jdGlv bgpjYWxsZWQgYnkgdGhlIGV4cHJlc3Npb24uICBGb3IgZWFjaCBMaXNwIGZ1bmN0aW9uLCB5b3Ug Y2FuIGNob29zZSBhbW9uZwpzZXZlcmFsIHByZWRlZmluZWQgcGF0dGVybnMgb2YgaW5kZW50YXRp b24sIG9yIGRlZmluZSBhbiBhcmJpdHJhcnkgb25lCndpdGggYSBMaXNwIHByb2dyYW0uCgogICBU aGUgc3RhbmRhcmQgcGF0dGVybiBvZiBpbmRlbnRhdGlvbiBpcyBhcyBmb2xsb3dzOiB0aGUgc2Vj b25kIGxpbmUgb2YKdGhlIGV4cHJlc3Npb24gaXMgaW5kZW50ZWQgdW5kZXIgdGhlIGZpcnN0IGFy Z3VtZW50LCBpZiB0aGF0IGlzIG9uIHRoZQpzYW1lIGxpbmUgYXMgdGhlIGJlZ2lubmluZyBvZiB0 aGUgZXhwcmVzc2lvbjsgb3RoZXJ3aXNlLCB0aGUgc2Vjb25kIGxpbmUKaXMgaW5kZW50ZWQgdW5k ZXJuZWF0aCB0aGUgZnVuY3Rpb24gbmFtZS4gIEVhY2ggZm9sbG93aW5nIGxpbmUgaXMKaW5kZW50 ZWQgdW5kZXIgdGhlIHByZXZpb3VzIGxpbmUgd2hvc2UgbmVzdGluZyBkZXB0aCBpcyB0aGUgc2Ft ZS4KCiAgIElmIHRoZSB2YXJpYWJsZSDigJhsaXNwLWluZGVudC1vZmZzZXTigJkgaXMgbm9uLeKA mG5pbOKAmSwgaXQgb3ZlcnJpZGVzIHRoZQp1c3VhbCBpbmRlbnRhdGlvbiBwYXR0ZXJuIGZvciB0 aGUgc2Vjb25kIGxpbmUgb2YgYW4gZXhwcmVzc2lvbiwgc28gdGhhdApzdWNoIGxpbmVzIGFyZSBh bHdheXMgaW5kZW50ZWQg4oCYbGlzcC1pbmRlbnQtb2Zmc2V04oCZIG1vcmUgY29sdW1ucyB0aGFu CnRoZSBjb250YWluaW5nIGxpc3QuCgogICBDZXJ0YWluIGZ1bmN0aW9ucyBvdmVycmlkZSB0aGUg c3RhbmRhcmQgcGF0dGVybi4gIEZ1bmN0aW9ucyB3aG9zZQpuYW1lcyBzdGFydCB3aXRoIOKAmGRl ZuKAmSB0cmVhdCB0aGUgc2Vjb25kIGxpbmVzIGFzIHRoZSBzdGFydCBvZiBhICJib2R5IiwKYnkg aW5kZW50aW5nIHRoZSBzZWNvbmQgbGluZSDigJhsaXNwLWJvZHktaW5kZW504oCZIGFkZGl0aW9u YWwgY29sdW1ucwpiZXlvbmQgdGhlIG9wZW4tcGFyZW50aGVzaXMgdGhhdCBzdGFydHMgdGhlIGV4 cHJlc3Npb24uCgogICBZb3UgY2FuIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBwYXR0ZXJuIGluIHZh cmlvdXMgd2F5cyBmb3IgaW5kaXZpZHVhbApmdW5jdGlvbnMsIGFjY29yZGluZyB0byB0aGUg4oCY bGlzcC1pbmRlbnQtZnVuY3Rpb27igJkgcHJvcGVydHkgb2YgdGhlCmZ1bmN0aW9uIG5hbWUuICBU aGlzIGlzIG5vcm1hbGx5IGRvbmUgZm9yIG1hY3JvIGRlZmluaXRpb25zLCB1c2luZyB0aGUK4oCY ZGVjbGFyZeKAmSBjb25zdHJ1Y3QuICAqTm90ZSAoZWxpc3ApRGVmaW5pbmcgTWFjcm9zOjouCgoK KioqIDI2LjMuNCBDb21tYW5kcyBmb3IgQyBJbmRlbnRhdGlvbgoKSGVyZSBhcmUgc3BlY2lhbCBm ZWF0dXJlcyBmb3IgaW5kZW50YXRpb24gaW4gQyBtb2RlIGFuZCByZWxhdGVkIG1vZGVzOgoK4oCY Qy1jIEMtceKAmQogICAgIFJlaW5kZW50IHRoZSBjdXJyZW50IHRvcC1sZXZlbCBmdW5jdGlvbiBk ZWZpbml0aW9uIG9yIGFnZ3JlZ2F0ZQogICAgIHR5cGUgZGVjbGFyYXRpb24gKOKAmGMtaW5kZW50 LWRlZnVu4oCZKS4KCuKAmEMtTS1x4oCZCiAgICAgUmVpbmRlbnQgZWFjaCBsaW5lIGluIHRoZSBi YWxhbmNlZCBleHByZXNzaW9uIHRoYXQgZm9sbG93cyBwb2ludAogICAgICjigJhjLWluZGVudC1l eHDigJkpLiAgQSBwcmVmaXggYXJndW1lbnQgaW5oaWJpdHMgd2FybmluZyBtZXNzYWdlcwogICAg IGFib3V0IGludmFsaWQgc3ludGF4LgoK4oCYPFRBQj7igJkKICAgICBSZWluZGVudCB0aGUgY3Vy cmVudCBsaW5lLCBhbmQvb3IgaW4gc29tZSBjYXNlcyBpbnNlcnQgYSB0YWIKICAgICBjaGFyYWN0 ZXIgKOKAmGMtaW5kZW50LWNvbW1hbmTigJkpLgoKICAgICBJZiDigJhjLXRhYi1hbHdheXMtaW5k ZW504oCZIGlzIOKAmHTigJksIHRoaXMgY29tbWFuZCBhbHdheXMgcmVpbmRlbnRzIHRoZQogICAg IGN1cnJlbnQgbGluZSBhbmQgZG9lcyBub3RoaW5nIGVsc2UuICBUaGlzIGlzIHRoZSBkZWZhdWx0 LgoKICAgICBJZiB0aGF0IHZhcmlhYmxlIGlzIOKAmG5pbOKAmSwgdGhpcyBjb21tYW5kIHJlaW5k ZW50cyB0aGUgY3VycmVudCBsaW5lCiAgICAgb25seSBpZiBwb2ludCBpcyBhdCB0aGUgbGVmdCBt YXJnaW4gb3IgaW4gdGhlIGxpbmXigJlzIGluZGVudGF0aW9uOwogICAgIG90aGVyd2lzZSwgaXQg aW5zZXJ0cyBhIHRhYiAob3IgdGhlIGVxdWl2YWxlbnQgbnVtYmVyIG9mIHNwYWNlcywgaWYKICAg ICDigJhpbmRlbnQtdGFicy1tb2Rl4oCZIGlzIOKAmG5pbOKAmSkuCgogICAgIEFueSBvdGhlciB2 YWx1ZSAobm90IOKAmG5pbOKAmSBvciDigJh04oCZKSBtZWFucyBhbHdheXMgcmVpbmRlbnQgdGhl IGxpbmUsCiAgICAgYW5kIGFsc28gaW5zZXJ0IGEgdGFiIGlmIHdpdGhpbiBhIGNvbW1lbnQgb3Ig YSBzdHJpbmcuCgogICBUbyByZWluZGVudCB0aGUgd2hvbGUgY3VycmVudCBidWZmZXIsIHR5cGUg 4oCYQy14IGggQy1NLVzigJkuICBUaGlzIGZpcnN0CnNlbGVjdHMgdGhlIHdob2xlIGJ1ZmZlciBh cyB0aGUgcmVnaW9uLCB0aGVuIHJlaW5kZW50cyB0aGF0IHJlZ2lvbi4KCiAgIFRvIHJlaW5kZW50 IHRoZSBjdXJyZW50IGJsb2NrLCB1c2Ug4oCYQy1NLXUgQy1NLXHigJkuICBUaGlzIG1vdmVzIHRv IHRoZQpmcm9udCBvZiB0aGUgYmxvY2sgYW5kIHRoZW4gcmVpbmRlbnRzIGl0IGFsbC4KCgoqKiog MjYuMy41IEN1c3RvbWl6aW5nIEMgSW5kZW50YXRpb24KCkMgbW9kZSBhbmQgcmVsYXRlZCBtb2Rl cyB1c2UgYSBmbGV4aWJsZSBtZWNoYW5pc20gZm9yIGN1c3RvbWl6aW5nCmluZGVudGF0aW9uLiAg QyBtb2RlIGluZGVudHMgYSBzb3VyY2UgbGluZSBpbiB0d28gc3RlcHM6IGZpcnN0IGl0CmNsYXNz aWZpZXMgdGhlIGxpbmUgc3ludGFjdGljYWxseSBhY2NvcmRpbmcgdG8gaXRzIGNvbnRlbnRzIGFu ZCBjb250ZXh0OwpzZWNvbmQsIGl0IGRldGVybWluZXMgdGhlIGluZGVudGF0aW9uIG9mZnNldCBh c3NvY2lhdGVkIGJ5IHlvdXIgc2VsZWN0ZWQKInN0eWxlIiB3aXRoIHRoZSBzeW50YWN0aWMgY29u c3RydWN0IGFuZCBhZGRzIHRoaXMgb250byB0aGUgaW5kZW50YXRpb24Kb2YgdGhlICJhbmNob3Ig c3RhdGVtZW50Ii4KCuKAmEMtYyAuIFNUWUxFIDxSRVQ+4oCZCiAgICAgU2VsZWN0IGEgcHJlZGVm aW5lZCBzdHlsZSBTVFlMRSAo4oCYYy1zZXQtc3R5bGXigJkpLgoKICAgQSAic3R5bGUiIGlzIGEg bmFtZWQgY29sbGVjdGlvbiBvZiBjdXN0b21pemF0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGluCkMg bW9kZSBhbmQgdGhlIHJlbGF0ZWQgbW9kZXMuICAqbm90ZSAoY2Ntb2RlKVN0eWxlczo6LCBmb3Ig YSBjb21wbGV0ZQpkZXNjcmlwdGlvbi4gIEVtYWNzIGNvbWVzIHdpdGggc2V2ZXJhbCBwcmVkZWZp bmVkIHN0eWxlcywgaW5jbHVkaW5nCuKAmGdudeKAmSwg4oCYayZy4oCZLCDigJhic2TigJksIOKA mHN0cm91c3RydXDigJksIOKAmGxpbnV44oCZLCDigJhweXRob27igJksIOKAmGphdmHigJksCuKA mHdoaXRlc21pdGjigJksIOKAmGVsbGVtdGVs4oCZLCBhbmQg4oCYYXdr4oCZLiAgU29tZSBvZiB0 aGVzZSBzdHlsZXMgYXJlIHByaW1hcmlseQppbnRlbmRlZCBmb3Igb25lIGxhbmd1YWdlLCBidXQg YW55IG9mIHRoZW0gY2FuIGJlIHVzZWQgd2l0aCBhbnkgb2YgdGhlCmxhbmd1YWdlcyBzdXBwb3J0 ZWQgYnkgdGhlc2UgbW9kZXMuICBUbyBmaW5kIG91dCB3aGF0IGEgc3R5bGUgbG9va3MKbGlrZSwg c2VsZWN0IGl0IGFuZCByZWluZGVudCBzb21lIGNvZGUsIGUuZy4sIGJ5IHR5cGluZyDigJhDLU0t ceKAmSBhdCB0aGUKc3RhcnQgb2YgYSBmdW5jdGlvbiBkZWZpbml0aW9uLgoKICAgVG8gY2hvb3Nl IGEgc3R5bGUgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlciwgdXNlIHRoZSBjb21tYW5kIOKAmEMtYyAu 4oCZLgpTcGVjaWZ5IGEgc3R5bGUgbmFtZSBhcyBhbiBhcmd1bWVudCAoY2FzZSBpcyBub3Qgc2ln bmlmaWNhbnQpLiAgVGhpcwpjb21tYW5kIGFmZmVjdHMgdGhlIGN1cnJlbnQgYnVmZmVyIG9ubHks IGFuZCBpdCBhZmZlY3RzIG9ubHkgZnV0dXJlCmludm9jYXRpb25zIG9mIHRoZSBpbmRlbnRhdGlv biBjb21tYW5kczsgaXQgZG9lcyBub3QgcmVpbmRlbnQgdGhlIGNvZGUKYWxyZWFkeSBpbiB0aGUg YnVmZmVyLiAgVG8gcmVpbmRlbnQgdGhlIHdob2xlIGJ1ZmZlciBpbiB0aGUgbmV3IHN0eWxlLAp5 b3UgY2FuIHR5cGUg4oCYQy14IGggQy1NLVzigJkuCgogICBZb3UgY2FuIGFsc28gc2V0IHRoZSB2 YXJpYWJsZSDigJhjLWRlZmF1bHQtc3R5bGXigJkgdG8gc3BlY2lmeSB0aGUKZGVmYXVsdCBzdHls ZSBmb3IgdmFyaW91cyBtYWpvciBtb2Rlcy4gIEl0cyB2YWx1ZSBzaG91bGQgYmUgZWl0aGVyIHRo ZQpzdHlsZeKAmXMgbmFtZSAoYSBzdHJpbmcpIG9yIGFuIGFsaXN0LCBpbiB3aGljaCBlYWNoIGVs ZW1lbnQgc3BlY2lmaWVzIG9uZQptYWpvciBtb2RlIGFuZCB3aGljaCBpbmRlbnRhdGlvbiBzdHls ZSB0byB1c2UgZm9yIGl0LiAgRm9yIGV4YW1wbGUsCgogICAgIChzZXRxIGMtZGVmYXVsdC1zdHls ZQogICAgICAgICAgICcoKGphdmEtbW9kZSAuICJqYXZhIikKICAgICAgICAgICAgIChhd2stbW9k ZSAuICJhd2siKQogICAgICAgICAgICAgKG90aGVyIC4gImdudSIpKSkKCnNwZWNpZmllcyBleHBs aWNpdCBjaG9pY2VzIGZvciBKYXZhIGFuZCBBV0sgbW9kZXMsIGFuZCB0aGUgZGVmYXVsdCDigJhn bnXigJkKc3R5bGUgZm9yIHRoZSBvdGhlciBDLWxpa2UgbW9kZXMuICAoVGhlc2Ugc2V0dGluZ3Mg YXJlIGFjdHVhbGx5IHRoZQpkZWZhdWx0cy4pICBUaGlzIHZhcmlhYmxlIHRha2VzIGVmZmVjdCB3 aGVuIHlvdSBzZWxlY3Qgb25lIG9mIHRoZSBDLWxpa2UKbWFqb3IgbW9kZXM7IHRodXMsIGlmIHlv dSBzcGVjaWZ5IGEgbmV3IGRlZmF1bHQgc3R5bGUgZm9yIEphdmEgbW9kZSwgeW91CmNhbiBtYWtl IGl0IHRha2UgZWZmZWN0IGluIGFuIGV4aXN0aW5nIEphdmEgbW9kZSBidWZmZXIgYnkgdHlwaW5n IOKAmE0teApqYXZhLW1vZGXigJkgdGhlcmUuCgogICBUaGUg4oCYZ2514oCZIHN0eWxlIHNwZWNp ZmllcyB0aGUgZm9ybWF0dGluZyByZWNvbW1lbmRlZCBieSB0aGUgR05VClByb2plY3QgZm9yIEM7 IGl0IGlzIHRoZSBkZWZhdWx0LCBzbyBhcyB0byBlbmNvdXJhZ2UgdXNlIG9mIG91cgpyZWNvbW1l bmRlZCBzdHlsZS4KCiAgICpOb3RlIChjY21vZGUpSW5kZW50YXRpb24gRW5naW5lIEJhc2ljczo6 LCBhbmQgKm5vdGUKKGNjbW9kZSlDdXN0b21pemluZyBJbmRlbnRhdGlvbjo6LCBmb3IgbW9yZSBp bmZvcm1hdGlvbiBvbiBjdXN0b21pemluZwppbmRlbnRhdGlvbiBmb3IgQyBhbmQgcmVsYXRlZCBt b2RlcywgaW5jbHVkaW5nIGhvdyB0byBvdmVycmlkZSBwYXJ0cyBvZgphbiBleGlzdGluZyBzdHls ZSBhbmQgaG93IHRvIGRlZmluZSB5b3VyIG93biBzdHlsZXMuCgogICBBcyBhbiBhbHRlcm5hdGl2 ZSB0byBzcGVjaWZ5aW5nIGEgc3R5bGUsIHlvdSBjYW4gdGVsbCBFbWFjcyB0byBndWVzcwphIHN0 eWxlIGJ5IHR5cGluZyDigJhNLXggYy1ndWVzc+KAmSBpbiBhIHNhbXBsZSBjb2RlIGJ1ZmZlci4g IFlvdSBjYW4gdGhlbgphcHBseSB0aGUgZ3Vlc3NlZCBzdHlsZSB0byBvdGhlciBidWZmZXJzIHdp dGgg4oCYTS14IGMtZ3Vlc3MtaW5zdGFsbOKAmS4KKk5vdGUgKGNjbW9kZSlHdWVzc2luZyB0aGUg U3R5bGU6OiwgZm9yIGRldGFpbHMuCgoKKiogMjYuNCBDb21tYW5kcyBmb3IgRWRpdGluZyB3aXRo IFBhcmVudGhlc2VzCgpUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBjb21tYW5kcyBhbmQgZmVh dHVyZXMgdGhhdCB0YWtlIGFkdmFudGFnZSBvZgp0aGUgcGFyZW50aGVzaXMgc3RydWN0dXJlIGlu IGEgcHJvZ3JhbSwgb3IgaGVscCB5b3Uga2VlcCBpdCBiYWxhbmNlZC4KCiAgIFdoZW4gdGFsa2lu ZyBhYm91dCB0aGVzZSBmYWNpbGl0aWVzLCB0aGUgdGVybSDigJxwYXJlbnRoZXNpc+KAnSBhbHNv CmluY2x1ZGVzIGJyYWNlcywgYnJhY2tldHMsIG9yIHdoYXRldmVyIGRlbGltaXRlcnMgYXJlIGRl ZmluZWQgdG8gbWF0Y2gKaW4gcGFpcnMuICBUaGUgbWFqb3IgbW9kZSBjb250cm9scyB3aGljaCBk ZWxpbWl0ZXJzIGFyZSBzaWduaWZpY2FudCwKdGhyb3VnaCB0aGUgc3ludGF4IHRhYmxlICgqbm90 ZSBTeW50YXggVGFibGVzOiAoZWxpc3ApU3ludGF4IFRhYmxlcy4pLgpJbiBMaXNwLCBvbmx5IHBh cmVudGhlc2VzIGNvdW50OyBpbiBDLCB0aGVzZSBjb21tYW5kcyBhcHBseSB0byBicmFjZXMKYW5k IGJyYWNrZXRzIHRvby4KCiAgIFlvdSBjYW4gdXNlIOKAmE0teCBjaGVjay1wYXJlbnPigJkgdG8g ZmluZCBhbnkgdW5iYWxhbmNlZCBwYXJlbnRoZXNlcyBhbmQKdW5iYWxhbmNlZCBzdHJpbmcgcXVv dGVzIGluIHRoZSBidWZmZXIuCgorIE1lbnU6CgogIC0gRXhwcmVzc2lvbnM6OiAgICAgICAgIEV4 cHJlc3Npb25zIHdpdGggYmFsYW5jZWQgcGFyZW50aGVzZXMuCiAgLSBNb3ZpbmcgYnkgUGFyZW5z OjogICAgQ29tbWFuZHMgZm9yIG1vdmluZyB1cCwgZG93biBhbmQgYWNyb3NzCiAgICAgICAgICAg ICAgICAgICAgICAgICAgaW4gdGhlIHN0cnVjdHVyZSBvZiBwYXJlbnRoZXNlcy4KICAtIE1hdGNo aW5nOjogICAgICAgICAgICBJbnNlcnRpb24gb2YgYSBjbG9zZS1kZWxpbWl0ZXIgZmxhc2hlcyBt YXRjaGluZyBvcGVuLgoKCioqKiAyNi40LjEgRXhwcmVzc2lvbnMgd2l0aCBCYWxhbmNlZCBQYXJl bnRoZXNlcwoKRWFjaCBwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2RlIGhhcyBpdHMgb3duIGRlZmlu aXRpb24gb2YgYSAiYmFsYW5jZWQKZXhwcmVzc2lvbiIuICBCYWxhbmNlZCBleHByZXNzaW9ucyB0 eXBpY2FsbHkgaW5jbHVkZSBpbmRpdmlkdWFsIHN5bWJvbHMsCm51bWJlcnMsIGFuZCBzdHJpbmcg Y29uc3RhbnRzLCBhcyB3ZWxsIGFzIHBpZWNlcyBvZiBjb2RlIGVuY2xvc2VkIGluIGEKbWF0Y2hp bmcgcGFpciBvZiBkZWxpbWl0ZXJzLiAgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBkZWFsIHdpdGgg YmFsYW5jZWQKZXhwcmVzc2lvbnMgKGluIEVtYWNzLCBzdWNoIGV4cHJlc3Npb25zIGFyZSByZWZl cnJlZCB0byBpbnRlcm5hbGx5IGFzCiJzZXhwcyIoMSkpLgoK4oCYQy1NLWbigJkKICAgICBNb3Zl IGZvcndhcmQgb3ZlciBhIGJhbGFuY2VkIGV4cHJlc3Npb24gKOKAmGZvcndhcmQtc2V4cOKAmSku CuKAmEMtTS1i4oCZCiAgICAgTW92ZSBiYWNrd2FyZCBvdmVyIGEgYmFsYW5jZWQgZXhwcmVzc2lv biAo4oCYYmFja3dhcmQtc2V4cOKAmSkuCuKAmEMtTS1r4oCZCiAgICAgS2lsbCBiYWxhbmNlZCBl eHByZXNzaW9uIGZvcndhcmQgKOKAmGtpbGwtc2V4cOKAmSkuCuKAmEMtTS104oCZCiAgICAgVHJh bnNwb3NlIGV4cHJlc3Npb25zICjigJh0cmFuc3Bvc2Utc2V4cHPigJkpLgrigJhDLU0tQOKAmQri gJhDLU0tPFNQQz7igJkKICAgICBQdXQgbWFyayBhZnRlciBmb2xsb3dpbmcgZXhwcmVzc2lvbiAo 4oCYbWFyay1zZXhw4oCZKS4KCiAgIFRvIG1vdmUgZm9yd2FyZCBvdmVyIGEgYmFsYW5jZWQgZXhw cmVzc2lvbiwgdXNlIOKAmEMtTS1m4oCZCijigJhmb3J3YXJkLXNleHDigJkpLiAgSWYgdGhlIGZp cnN0IHNpZ25pZmljYW50IGNoYXJhY3RlciBhZnRlciBwb2ludCBpcyBhbgpvcGVuaW5nIGRlbGlt aXRlciAoZS5nLiwg4oCYKOKAmSwg4oCYW+KAmSBvciDigJh74oCZIGluIEMpLCB0aGlzIGNvbW1h bmQgbW92ZXMgcGFzdAp0aGUgbWF0Y2hpbmcgY2xvc2luZyBkZWxpbWl0ZXIuICBJZiB0aGUgY2hh cmFjdGVyIGJlZ2lucyBhIHN5bWJvbCwKc3RyaW5nLCBvciBudW1iZXIsIHRoZSBjb21tYW5kIG1v dmVzIG92ZXIgdGhhdC4KCiAgIFRoZSBjb21tYW5kIOKAmEMtTS1i4oCZICjigJhiYWNrd2FyZC1z ZXhw4oCZKSBtb3ZlcyBiYWNrd2FyZCBvdmVyIGEgYmFsYW5jZWQKZXhwcmVzc2lvbuKAlGxpa2Ug 4oCYQy1NLWbigJksIGJ1dCBpbiB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24uICBJZiB0aGUKZXhwcmVz c2lvbiBpcyBwcmVjZWRlZCBieSBhbnkgcHJlZml4IGNoYXJhY3RlcnMgKHNpbmdsZS1xdW90ZSwg YmFja3F1b3RlCmFuZCBjb21tYSwgaW4gTGlzcCksIHRoZSBjb21tYW5kIG1vdmVzIGJhY2sgb3Zl ciB0aGVtIGFzIHdlbGwuCgogICDigJhDLU0tZuKAmSBvciDigJhDLU0tYuKAmSB3aXRoIGFuIGFy Z3VtZW50IHJlcGVhdHMgdGhhdCBvcGVyYXRpb24gdGhlCnNwZWNpZmllZCBudW1iZXIgb2YgdGlt ZXM7IHdpdGggYSBuZWdhdGl2ZSBhcmd1bWVudCBtZWFucyB0byBtb3ZlIGluIHRoZQpvcHBvc2l0 ZSBkaXJlY3Rpb24uICBJbiBtb3N0IG1vZGVzLCB0aGVzZSB0d28gY29tbWFuZHMgbW92ZSBhY3Jv c3MKY29tbWVudHMgYXMgaWYgdGhleSB3ZXJlIHdoaXRlc3BhY2UuICBOb3RlIHRoYXQgdGhlaXIg a2V5cywg4oCYQy1NLWbigJkgYW5kCuKAmEMtTS1i4oCZLCBhcmUgYW5hbG9nb3VzIHRvIOKAmEMt ZuKAmSBhbmQg4oCYQy1i4oCZLCB3aGljaCBtb3ZlIGJ5IGNoYXJhY3RlcnMKKCpub3RlIE1vdmlu ZyBQb2ludDo6KSwgYW5kIOKAmE0tZuKAmSBhbmQg4oCYTS1i4oCZLCB3aGljaCBtb3ZlIGJ5IHdv cmRzICgqbm90ZQpXb3Jkczo6KS4KCiAgIFRvIGtpbGwgYSB3aG9sZSBiYWxhbmNlZCBleHByZXNz aW9uLCB0eXBlIOKAmEMtTS1r4oCZICjigJhraWxsLXNleHDigJkpLgpUaGlzIGtpbGxzIHRoZSB0 ZXh0IHRoYXQg4oCYQy1NLWbigJkgd291bGQgbW92ZSBvdmVyLgoKICAg4oCYQy1NLXTigJkgKOKA mHRyYW5zcG9zZS1zZXhwc+KAmSkgc3dpdGNoZXMgdGhlIHBvc2l0aW9ucyBvZiB0aGUgcHJldmlv dXMKYmFsYW5jZWQgZXhwcmVzc2lvbiBhbmQgdGhlIG5leHQgb25lLiAgSXQgaXMgYW5hbG9nb3Vz IHRvIHRoZSDigJhDLXTigJkKY29tbWFuZCwgd2hpY2ggdHJhbnNwb3NlcyBjaGFyYWN0ZXJzICgq bm90ZSBUcmFuc3Bvc2U6OikuICBBbiBhcmd1bWVudAp0byDigJhDLU0tdOKAmSBzZXJ2ZXMgYXMg YSByZXBlYXQgY291bnQsIG1vdmluZyB0aGUgcHJldmlvdXMgZXhwcmVzc2lvbiBvdmVyCnRoYXQg bWFueSBmb2xsb3dpbmcgb25lcy4gIEEgbmVnYXRpdmUgYXJndW1lbnQgbW92ZXMgdGhlIHByZXZp b3VzCmJhbGFuY2VkIGV4cHJlc3Npb24gYmFja3dhcmRzIGFjcm9zcyB0aG9zZSBiZWZvcmUgaXQu ICBBbiBhcmd1bWVudCBvZgp6ZXJvLCByYXRoZXIgdGhhbiBkb2luZyBub3RoaW5nLCB0cmFuc3Bv c2VzIHRoZSBiYWxhbmNlZCBleHByZXNzaW9ucwplbmRpbmcgYXQgb3IgYWZ0ZXIgcG9pbnQgYW5k IHRoZSBtYXJrLgoKICAgVG8gb3BlcmF0ZSBvbiBiYWxhbmNlZCBleHByZXNzaW9ucyB3aXRoIGEg Y29tbWFuZCB3aGljaCBhY3RzIG9uIHRoZQpyZWdpb24sIHR5cGUg4oCYQy1NLTxTUEM+4oCZICji gJhtYXJrLXNleHDigJkpLiAgVGhpcyBzZXRzIHRoZSBtYXJrIHdoZXJlCuKAmEMtTS1m4oCZIHdv dWxkIG1vdmUgdG8uICBXaGlsZSB0aGUgbWFyayBpcyBhY3RpdmUsIGVhY2ggc3VjY2Vzc2l2ZSBj YWxsCnRvIHRoaXMgY29tbWFuZCBleHRlbmRzIHRoZSByZWdpb24gYnkgc2hpZnRpbmcgdGhlIG1h cmsgYnkgb25lCmV4cHJlc3Npb24uICBQb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1lcmljIGFyZ3Vt ZW50cyBtb3ZlIHRoZSBtYXJrCmZvcndhcmQgb3IgYmFja3dhcmQgYnkgdGhlIHNwZWNpZmllZCBu dW1iZXIgb2YgZXhwcmVzc2lvbnMuICBUaGUgYWxpYXMK4oCYQy1NLUDigJkgaXMgZXF1aXZhbGVu dCB0byDigJhDLU0tPFNQQz7igJkuICAqTm90ZSBNYXJraW5nIE9iamVjdHM6OiwgZm9yIG1vcmUK aW5mb3JtYXRpb24gYWJvdXQgdGhpcyBhbmQgcmVsYXRlZCBjb21tYW5kcy4KCiAgIEluIGxhbmd1 YWdlcyB0aGF0IHVzZSBpbmZpeCBvcGVyYXRvcnMsIHN1Y2ggYXMgQywgaXQgaXMgbm90IHBvc3Np YmxlCnRvIHJlY29nbml6ZSBhbGwgYmFsYW5jZWQgZXhwcmVzc2lvbnMgYmVjYXVzZSB0aGVyZSBj YW4gYmUgbXVsdGlwbGUKcG9zc2liaWxpdGllcyBhdCBhIGdpdmVuIHBvc2l0aW9uLiAgRm9yIGV4 YW1wbGUsIEMgbW9kZSBkb2VzIG5vdCB0cmVhdArigJhmb28gKyBiYXLigJkgYXMgYSBzaW5nbGUg ZXhwcmVzc2lvbiwgZXZlbiB0aG91Z2ggaXQgX2lzXyBvbmUgQwpleHByZXNzaW9uOyBpbnN0ZWFk LCBpdCByZWNvZ25pemVzIOKAmGZvb+KAmSBhcyBvbmUgZXhwcmVzc2lvbiBhbmQg4oCYYmFy4oCZ IGFzCmFub3RoZXIsIHdpdGggdGhlIOKAmCvigJkgYXMgcHVuY3R1YXRpb24gYmV0d2VlbiB0aGVt LiAgSG93ZXZlciwgQyBtb2RlCnJlY29nbml6ZXMg4oCYKGZvbyArIGJhcinigJkgYXMgYSBzaW5n bGUgZXhwcmVzc2lvbiwgYmVjYXVzZSBvZiB0aGUKcGFyZW50aGVzZXMuCgogICAtLS0tLS0tLS0t IEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgVGhlIHdvcmQg4oCcc2V4cOKAnSBpcyB1c2Vk IHRvIHJlZmVyIHRvIGFuIGV4cHJlc3Npb24gaW4gTGlzcC4KCgoqKiogMjYuNC4yIE1vdmluZyBp biB0aGUgUGFyZW50aGVzaXMgU3RydWN0dXJlCgpUaGUgZm9sbG93aW5nIGNvbW1hbmRzIG1vdmUg b3ZlciBncm91cGluZ3MgZGVsaW1pdGVkIGJ5IHBhcmVudGhlc2VzIChvcgp3aGF0ZXZlciBlbHNl IHNlcnZlcyBhcyBkZWxpbWl0ZXJzIGluIHRoZSBsYW5ndWFnZSB5b3UgYXJlIHdvcmtpbmcKd2l0 aCkuICBUaGV5IGlnbm9yZSBzdHJpbmdzIGFuZCBjb21tZW50cywgaW5jbHVkaW5nIGFueSBwYXJl bnRoZXNlcwp3aXRoaW4gdGhlbSwgYW5kIGFsc28gaWdub3JlIHBhcmVudGhlc2VzIHRoYXQgYXJl IHF1b3RlZCB3aXRoIGFuIGVzY2FwZQpjaGFyYWN0ZXIuICBUaGVzZSBjb21tYW5kcyBhcmUgbWFp bmx5IGludGVuZGVkIGZvciBlZGl0aW5nIHByb2dyYW1zLCBidXQKY2FuIGJlIHVzZWZ1bCBmb3Ig ZWRpdGluZyBhbnkgdGV4dCBjb250YWluaW5nIHBhcmVudGhlc2VzLiAgVGhleSBhcmUKcmVmZXJy ZWQgdG8gaW50ZXJuYWxseSBhcyDigJxsaXN0IGNvbW1hbmRz4oCdIGJlY2F1c2UgaW4gTGlzcCB0 aGVzZQpncm91cGluZ3MgYXJlIGxpc3RzLgoKICAgVGhlc2UgY29tbWFuZHMgYXNzdW1lIHRoYXQg dGhlIHN0YXJ0aW5nIHBvaW50IGlzIG5vdCBpbnNpZGUgYSBzdHJpbmcKb3IgYSBjb21tZW50LiAg SWYgeW91IGludm9rZSB0aGVtIGZyb20gaW5zaWRlIGEgc3RyaW5nIG9yIGNvbW1lbnQsIHRoZQpy ZXN1bHRzIGFyZSB1bnJlbGlhYmxlLgoK4oCYQy1NLW7igJkKICAgICBNb3ZlIGZvcndhcmQgb3Zl ciBhIHBhcmVudGhldGljYWwgZ3JvdXAgKOKAmGZvcndhcmQtbGlzdOKAmSkuCuKAmEMtTS1w4oCZ CiAgICAgTW92ZSBiYWNrd2FyZCBvdmVyIGEgcGFyZW50aGV0aWNhbCBncm91cCAo4oCYYmFja3dh cmQtbGlzdOKAmSkuCuKAmEMtTS114oCZCiAgICAgTW92ZSB1cCBpbiBwYXJlbnRoZXNpcyBzdHJ1 Y3R1cmUgKOKAmGJhY2t3YXJkLXVwLWxpc3TigJkpLgrigJhDLU0tZOKAmQogICAgIE1vdmUgZG93 biBpbiBwYXJlbnRoZXNpcyBzdHJ1Y3R1cmUgKOKAmGRvd24tbGlzdOKAmSkuCgogICBUaGUgbGlz dCBjb21tYW5kcyDigJhDLU0tbuKAmSAo4oCYZm9yd2FyZC1saXN04oCZKSBhbmQg4oCYQy1NLXDi gJkKKOKAmGJhY2t3YXJkLWxpc3TigJkpIG1vdmUgZm9yd2FyZCBvciBiYWNrd2FyZCBvdmVyIG9u ZSAob3IgTikgcGFyZW50aGV0aWNhbApncm91cGluZ3MuCgogICDigJhDLU0tbuKAmSBhbmQg4oCY Qy1NLXDigJkgdHJ5IHRvIHN0YXkgYXQgdGhlIHNhbWUgbGV2ZWwgaW4gdGhlIHBhcmVudGhlc2lz CnN0cnVjdHVyZS4gIFRvIG1vdmUgX3VwXyBvbmUgKG9yIE4pIGxldmVscywgdXNlIOKAmEMtTS11 4oCZCijigJhiYWNrd2FyZC11cC1saXN04oCZKS4gIOKAmEMtTS114oCZIG1vdmVzIGJhY2t3YXJk IHVwIHBhc3Qgb25lIHVubWF0Y2hlZApvcGVuaW5nIGRlbGltaXRlci4gIEEgcG9zaXRpdmUgYXJn dW1lbnQgc2VydmVzIGFzIGEgcmVwZWF0IGNvdW50OyBhCm5lZ2F0aXZlIGFyZ3VtZW50IHJldmVy c2VzIHRoZSBkaXJlY3Rpb24gb2YgbW90aW9uLCBzbyB0aGF0IHRoZSBjb21tYW5kCm1vdmVzIGZv cndhcmQgYW5kIHVwIG9uZSBvciBtb3JlIGxldmVscy4KCiAgIFRvIG1vdmUgX2Rvd25fIGluIHRo ZSBwYXJlbnRoZXNpcyBzdHJ1Y3R1cmUsIHVzZSDigJhDLU0tZOKAmQoo4oCYZG93bi1saXN04oCZ KS4gIEluIExpc3AgbW9kZSwgd2hlcmUg4oCYKOKAmSBpcyB0aGUgb25seSBvcGVuaW5nIGRlbGlt aXRlciwKdGhpcyBpcyBuZWFybHkgdGhlIHNhbWUgYXMgc2VhcmNoaW5nIGZvciBhIOKAmCjigJku ICBBbiBhcmd1bWVudCBzcGVjaWZpZXMKdGhlIG51bWJlciBvZiBsZXZlbHMgdG8gZ28gZG93bi4K CgoqKiogMjYuNC4zIE1hdGNoaW5nIFBhcmVudGhlc2VzCgpFbWFjcyBoYXMgYSBudW1iZXIgb2Yg InBhcmVudGhlc2lzIG1hdGNoaW5nIiBmZWF0dXJlcywgd2hpY2ggbWFrZSBpdAplYXN5IHRvIHNl ZSBob3cgYW5kIHdoZXRoZXIgcGFyZW50aGVzZXMgKG9yIG90aGVyIGRlbGltaXRlcnMpIG1hdGNo IHVwLgoKICAgV2hlbmV2ZXIgeW91IHR5cGUgYSBzZWxmLWluc2VydGluZyBjaGFyYWN0ZXIgdGhh dCBpcyBhIGNsb3NpbmcKZGVsaW1pdGVyLCBFbWFjcyBicmllZmx5IGluZGljYXRlcyB0aGUgbG9j YXRpb24gb2YgdGhlIG1hdGNoaW5nIG9wZW5pbmcKZGVsaW1pdGVyLCBwcm92aWRlZCB0aGF0IGlz IG9uIHRoZSBzY3JlZW4uICBJZiBpdCBpcyBub3Qgb24gdGhlIHNjcmVlbiwKRW1hY3MgZGlzcGxh eXMgc29tZSBvZiB0aGUgdGV4dCBuZWFyIGl0IGluIHRoZSBlY2hvIGFyZWEuICBFaXRoZXIgd2F5 LAp5b3UgY2FuIHRlbGwgd2hpY2ggZ3JvdXBpbmcgeW91IGFyZSBjbG9zaW5nIG9mZi4gIElmIHRo ZSBvcGVuaW5nCmRlbGltaXRlciBhbmQgY2xvc2luZyBkZWxpbWl0ZXIgYXJlIG1pc21hdGNoZWTi gJRzdWNoIGFzIGluIOKAmFt4KeKAmeKAlGEKd2FybmluZyBtZXNzYWdlIGlzIGRpc3BsYXllZCBp biB0aGUgZWNobyBhcmVhLgoKICAgVGhyZWUgdmFyaWFibGVzIGNvbnRyb2wgdGhlIGRpc3BsYXkg b2YgbWF0Y2hpbmcgcGFyZW50aGVzZXM6CgogICDigKIg4oCYYmxpbmstbWF0Y2hpbmctcGFyZW7i gJkgdHVybnMgdGhlIGZlYXR1cmUgb24gb3Igb2ZmOiDigJhuaWzigJkgZGlzYWJsZXMKICAgICBp dCwgYnV0IHRoZSBkZWZhdWx0IGlzIOKAmHTigJkgdG8gZW5hYmxlIGl0LiAgU2V0IGl0IHRvIOKA mGp1bXDigJkgdG8gbWFrZQogICAgIGluZGljYXRpb24gd29yayBieSBtb21lbnRhcmlseSBtb3Zp bmcgdGhlIGN1cnNvciB0byB0aGUgbWF0Y2hpbmcKICAgICBvcGVuaW5nIGRlbGltaXRlci4gIFNl dCBpdCB0byDigJhqdW1wLW9mZnNjcmVlbuKAmSB0byBtYWtlIHRoZSBjdXJzb3IKICAgICBqdW1w LCBldmVuIGlmIHRoZSBvcGVuaW5nIGRlbGltaXRlciBpcyBvZmYgc2NyZWVuLgoKICAg4oCiIOKA mGJsaW5rLW1hdGNoaW5nLWRlbGF54oCZIHNheXMgaG93IG1hbnkgc2Vjb25kcyB0byBrZWVwIGlu ZGljYXRpbmcgdGhlCiAgICAgbWF0Y2hpbmcgb3BlbmluZyBkZWxpbWl0ZXIuICBUaGlzIG1heSBi ZSBhbiBpbnRlZ2VyIG9yCiAgICAgZmxvYXRpbmctcG9pbnQgbnVtYmVyOyB0aGUgZGVmYXVsdCBp cyAxLgoKICAg4oCiIOKAmGJsaW5rLW1hdGNoaW5nLXBhcmVuLWRpc3RhbmNl4oCZIHNwZWNpZmll cyBob3cgbWFueSBjaGFyYWN0ZXJzIGJhY2sKICAgICB0byBzZWFyY2ggdG8gZmluZCB0aGUgbWF0 Y2hpbmcgb3BlbmluZyBkZWxpbWl0ZXIuICBJZiB0aGUgbWF0Y2ggaXMKICAgICBub3QgZm91bmQg aW4gdGhhdCBkaXN0YW5jZSwgRW1hY3Mgc3RvcHMgc2Nhbm5pbmcgYW5kIG5vdGhpbmcgaXMKICAg ICBkaXNwbGF5ZWQuICBUaGUgZGVmYXVsdCBpcyAxMDI0MDAuCgogICBTaG93IFBhcmVuIG1vZGUs IGEgZ2xvYmFsIG1pbm9yIG1vZGUsIHByb3ZpZGVzIGEgbW9yZSBwb3dlcmZ1bCBraW5kCm9mIGF1 dG9tYXRpYyBtYXRjaGluZy4gIFdoZW5ldmVyIHBvaW50IGlzIGJlZm9yZSBhbiBvcGVuaW5nIGRl bGltaXRlciBvcgphZnRlciBhIGNsb3NpbmcgZGVsaW1pdGVyLCB0aGUgZGVsaW1pdGVyLCBpdHMg bWF0Y2hpbmcgZGVsaW1pdGVyLCBhbmQKb3B0aW9uYWxseSB0aGUgdGV4dCBiZXR3ZWVuIHRoZW0g YXJlIGhpZ2hsaWdodGVkLiAgVG8gdG9nZ2xlIFNob3cgUGFyZW4KbW9kZSwgdHlwZSDigJhNLXgg c2hvdy1wYXJlbi1tb2Rl4oCZLiAgVG8gY3VzdG9taXplIGl0LCB0eXBlIOKAmE0teApjdXN0b21p emUtZ3JvdXAgPFJFVD4gcGFyZW4tc2hvd2luZ+KAmS4gIFRoZSBjdXN0b21pemFibGUgb3B0aW9u cyB3aGljaApjb250cm9sIHRoZSBvcGVyYXRpb24gb2YgdGhpcyBtb2RlIGluY2x1ZGU6CgogICDi gKIg4oCYc2hvdy1wYXJlbi1oaWdobGlnaHQtb3BlbnBhcmVu4oCZIGNvbnRyb2xzIHdoZXRoZXIg dG8gaGlnaGxpZ2h0IGFuCiAgICAgb3BlbiBwYXJlbiB3aGVuIHBvaW50IHN0YW5kcyBqdXN0IGJl Zm9yZSBpdCwgYW5kIGhlbmNlIGl0cyBwb3NpdGlvbgogICAgIGlzIG1hcmtlZCBieSB0aGUgY3Vy c29yIGFueXdheS4gIFRoZSBkZWZhdWx0IGlzIG5vbi3igJhuaWzigJkgKHllcykuCgogICDigKIg 4oCYc2hvdy1wYXJlbi1zdHlsZeKAmSBjb250cm9scyB3aGV0aGVyIGp1c3QgdGhlIHR3byBwYXJl bnMsIG9yIGFsc28KICAgICB0aGUgc3BhY2UgYmV0d2VlbiB0aGVtIGdldCBoaWdobGlnaHRlZC4g IFRoZSB2YWxpZCBvcHRpb25zIGhlcmUgYXJlCiAgICAg4oCYcGFyZW50aGVzaXPigJkgKHNob3cg dGhlIG1hdGNoaW5nIHBhcmVuKSwg4oCYZXhwcmVzc2lvbuKAmSAoaGlnaGxpZ2h0CiAgICAgdGhl IGVudGlyZSBleHByZXNzaW9uIGVuY2xvc2VkIGJ5IHRoZSBwYXJlbnMpLCBhbmQg4oCYbWl4ZWTi gJkKICAgICAoaGlnaGxpZ2h0IHRoZSBtYXRjaGluZyBwYXJlbiBpZiBpdCBpcyB2aXNpYmxlLCB0 aGUgZXhwcmVzc2lvbgogICAgIG90aGVyd2lzZSkuCgogICDigKIg4oCYc2hvdy1wYXJlbi13aGVu LXBvaW50LWluc2lkZS1wYXJlbuKAmSwgd2hlbiBub24t4oCYbmls4oCZLCBjYXVzZXMKICAgICBo aWdobGlnaHRpbmcgYWxzbyB3aGVuIHBvaW50IGlzIG9uIHRoZSBpbnNpZGUgb2YgYSBwYXJlbnRo ZXNpcy4KCiAgIOKAoiDigJhzaG93LXBhcmVuLXdoZW4tcG9pbnQtaW4tcGVyaXBoZXJ54oCZLCB3 aGVuIG5vbi3igJhuaWzigJksIGNhdXNlcwogICAgIGhpZ2hsaWdodGluZyBhbHNvIHdoZW4gcG9p bnQgaXMgaW4gd2hpdGVzcGFjZSBhdCB0aGUgYmVnaW5uaW5nIG9yCiAgICAgZW5kIG9mIGEgbGlu ZSwgYW5kIHRoZXJlIGlzIGEgcGFyZW4gYXQsIHJlc3BlY3RpdmVseSwgdGhlIGZpcnN0IG9yCiAg ICAgbGFzdCwgb3IgdGhlIGxhc3QsIG5vbi13aGl0ZXNwYWNlIHBvc2l0aW9uIG9uIHRoZSBsaW5l LgoKICAgRWxlY3RyaWMgUGFpciBtb2RlLCBhIGdsb2JhbCBtaW5vciBtb2RlLCBwcm92aWRlcyBh IHdheSB0byBlYXNpbHkKaW5zZXJ0IG1hdGNoaW5nIGRlbGltaXRlcnM6IHBhcmVudGhlc2VzLCBi cmFjZXMsIGJyYWNrZXRzLCBldGMuCldoZW5ldmVyIHlvdSBpbnNlcnQgYW4gb3BlbmluZyBkZWxp bWl0ZXIsIHRoZSBtYXRjaGluZyBjbG9zaW5nIGRlbGltaXRlcgppcyBhdXRvbWF0aWNhbGx5IGlu c2VydGVkIGFzIHdlbGwsIGxlYXZpbmcgcG9pbnQgYmV0d2VlbiB0aGUgdHdvLgpDb252ZXJzZWx5 LCB3aGVuIHlvdSBpbnNlcnQgYSBjbG9zaW5nIGRlbGltaXRlciBvdmVyIGFuIGV4aXN0aW5nIG9u ZSwgbm8KaW5zZXJ0aW9uIHRha2VzIHBsYWNlcywgYW5kIHRoYXQgcG9zaXRpb24gaXMgc2ltcGx5 IHNraXBwZWQgb3Zlci4gIElmCnRoZSByZWdpb24gaXMgYWN0aXZlICgqbm90ZSBNYXJrOjopLCBp bnNlcnRpb24gb2YgYSBkZWxpbWl0ZXIgb3BlcmF0ZXMKb24gdGhlIHJlZ2lvbjogdGhlIGNoYXJh Y3RlcnMgaW4gdGhlIHJlZ2lvbiBhcmUgZW5jbG9zZWQgaW4gYSBwYWlyIG9mCm1hdGNoaW5nIGRl bGltaXRlcnMsIGxlYXZpbmcgcG9pbnQgYWZ0ZXIgdGhlIGRlbGltaXRlciB5b3UgdHlwZWQuCgog ICBUaGVzZSB2YXJpYWJsZXMgY29udHJvbCBhZGRpdGlvbmFsIGZlYXR1cmVzIG9mIEVsZWN0cmlj IFBhaXIgbW9kZToKCiAgIOKAoiDigJhlbGVjdHJpYy1wYWlyLXByZXNlcnZlLWJhbGFuY2XigJks IHdoZW4gbm9uLeKAmG5pbOKAmSwgbWFrZXMgdGhlIGRlZmF1bHQKICAgICBwYWlyaW5nIGxvZ2lj IGJhbGFuY2Ugb3V0IHRoZSBudW1iZXIgb2Ygb3BlbmluZyBhbmQgY2xvc2luZwogICAgIGRlbGlt aXRlcnMuCgogICDigKIg4oCYZWxlY3RyaWMtcGFpci1kZWxldGUtYWRqYWNlbnQtcGFpcnPigJks IHdoZW4gbm9uLeKAmG5pbOKAmSwgbWFrZXMKICAgICBiYWNrc3BhY2luZyBiZXR3ZWVuIHR3byBh ZGphY2VudCBkZWxpbWl0ZXJzIGFsc28gYXV0b21hdGljYWxseQogICAgIGRlbGV0ZSB0aGUgY2xv c2luZyBkZWxpbWl0ZXIuCgogICDigKIg4oCYZWxlY3RyaWMtcGFpci1vcGVuLW5ld2xpbmUtYmV0 d2Vlbi1wYWlyc+KAmSwgd2hlbiBub24t4oCYbmls4oCZLCBtYWtlcwogICAgIGluc2VydGluZyBh IG5ld2xpbmUgYmV0d2VlbiB0d28gYWRqYWNlbnQgcGFpcnMgYWxzbyBhdXRvbWF0aWNhbGx5CiAg ICAgb3BlbiBhbiBleHRyYSBuZXdsaW5lIGFmdGVyIHBvaW50LgoKICAg4oCiIOKAmGVsZWN0cmlj LXBhaXItc2tpcC13aGl0ZXNwYWNl4oCZLCB3aGVuIG5vbi3igJhuaWzigJksIGNhdXNlcyB0aGUg bWlub3IKICAgICBtb2RlIHRvIHNraXAgd2hpdGVzcGFjZSBmb3J3YXJkIGJlZm9yZSBkZWNpZGlu ZyB3aGV0aGVyIHRvIHNraXAKICAgICBvdmVyIHRoZSBjbG9zaW5nIGRlbGltaXRlci4KCiAgIFRv IHRvZ2dsZSBFbGVjdHJpYyBQYWlyIG1vZGUsIHR5cGUg4oCYTS14IGVsZWN0cmljLXBhaXItbW9k ZeKAmS4gIFRvCnRvZ2dsZSB0aGUgbW9kZSBpbiBhIHNpbmdsZSBidWZmZXIsIHVzZSDigJhNLXgg ZWxlY3RyaWMtcGFpci1sb2NhbC1tb2Rl4oCZLgoKCioqIDI2LjUgTWFuaXB1bGF0aW5nIENvbW1l bnRzCgpCZWNhdXNlIGNvbW1lbnRzIGFyZSBzdWNoIGFuIGltcG9ydGFudCBwYXJ0IG9mIHByb2dy YW1taW5nLCBFbWFjcwpwcm92aWRlcyBzcGVjaWFsIGNvbW1hbmRzIGZvciBlZGl0aW5nIGFuZCBp bnNlcnRpbmcgY29tbWVudHMuICBJdCBjYW4KYWxzbyBkbyBzcGVsbCBjaGVja2luZyBvbiBjb21t ZW50cyB3aXRoIEZseXNwZWxsIFByb2cgbW9kZSAoKm5vdGUKU3BlbGxpbmc6OikuCgogICBTb21l IG1ham9yIG1vZGVzIGhhdmUgc3BlY2lhbCBydWxlcyBmb3IgaW5kZW50aW5nIGRpZmZlcmVudCBr aW5kcyBvZgpjb21tZW50cy4gIEZvciBleGFtcGxlLCBpbiBMaXNwIGNvZGUsIGNvbW1lbnRzIHN0 YXJ0aW5nIHdpdGggdHdvCnNlbWljb2xvbnMgYXJlIGluZGVudGVkIGFzIGlmIHRoZXkgd2VyZSBs aW5lcyBvZiBjb2RlLCB3aGlsZSB0aG9zZQpzdGFydGluZyB3aXRoIHRocmVlIHNlbWljb2xvbnMg YXJlIHN1cHBvc2VkIHRvIGJlIGFsaWduZWQgdG8gdGhlIGxlZnQKbWFyZ2luIGFuZCBhcmUgb2Z0 ZW4gdXNlZCBmb3Igc2VjdGlvbmluZyBwdXJwb3Nlcy4gIEVtYWNzIHVuZGVyc3RhbmRzCnRoZXNl IGNvbnZlbnRpb25zOyBmb3IgaW5zdGFuY2UsIHR5cGluZyDigJg8VEFCPuKAmSBvbiBhIGNvbW1l bnQgbGluZSB3aWxsCmluZGVudCB0aGUgY29tbWVudCB0byB0aGUgYXBwcm9wcmlhdGUgcG9zaXRp b24uCgogICAgIDs7IFRoaXMgZnVuY3Rpb24gaXMganVzdCBhbiBleGFtcGxlLgogICAgIDs7OyBI ZXJlIGVpdGhlciB0d28gb3IgdGhyZWUgc2VtaWNvbG9ucyBhcmUgYXBwcm9wcmlhdGUuCiAgICAg KGRlZnVuIGZvbyAoeCkKICAgICA7OzsgIEFuZCBub3csIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBm dW5jdGlvbjoKICAgICAgIDs7IFRoZSBmb2xsb3dpbmcgbGluZSBhZGRzIG9uZS4KICAgICAgICgx KyB4KSkgICAgICAgICAgIDsgVGhpcyBsaW5lIGFkZHMgb25lLgoKKyBNZW51OgoKICAtIENvbW1l bnQgQ29tbWFuZHM6OiAgICBJbnNlcnRpbmcsIGtpbGxpbmcsIGFuZCBhbGlnbmluZyBjb21tZW50 cy4KICAtIE11bHRpLUxpbmUgQ29tbWVudHM6OiBDb21tYW5kcyBmb3IgYWRkaW5nIGFuZCBlZGl0 aW5nIG11bHRpLWxpbmUgY29tbWVudHMuCiAgLSBPcHRpb25zIGZvciBDb21tZW50czo6Q3VzdG9t aXppbmcgdGhlIGNvbW1lbnQgZmVhdHVyZXMuCgoKKioqIDI2LjUuMSBDb21tZW50IENvbW1hbmRz CgpUaGUgZm9sbG93aW5nIGNvbW1hbmRzIG9wZXJhdGUgb24gY29tbWVudHM6CgrigJhNLTvigJkK ICAgICBJbnNlcnQgb3IgcmVhbGlnbiBjb21tZW50IG9uIGN1cnJlbnQgbGluZTsgaWYgdGhlIHJl Z2lvbiBpcyBhY3RpdmUsCiAgICAgY29tbWVudCBvciB1bmNvbW1lbnQgdGhlIHJlZ2lvbiBpbnN0 ZWFkICjigJhjb21tZW50LWR3aW3igJkpLgrigJhDLXggQy074oCZCiAgICAgQ29tbWVudCBvciB1 bmNvbW1lbnQgdGhlIGN1cnJlbnQgbGluZSAo4oCYY29tbWVudC1saW5l4oCZKS4gIElmIHRoZQog ICAgIHJlZ2lvbiBpcyBhY3RpdmUsIGNvbW1lbnQgb3IgdW5jb21tZW50IHRoZSBsaW5lcyBpbiB0 aGUgcmVnaW9uCiAgICAgaW5zdGVhZC4K4oCYQy11IE0tO+KAmQogICAgIEtpbGwgY29tbWVudCBv biBjdXJyZW50IGxpbmUgKOKAmGNvbW1lbnQta2lsbOKAmSkuCuKAmEMteCA74oCZCiAgICAgU2V0 IGNvbW1lbnQgY29sdW1uICjigJhjb21tZW50LXNldC1jb2x1bW7igJkpLgrigJhDLU0tauKAmQri gJhNLWrigJkKICAgICBMaWtlIOKAmDxSRVQ+4oCZIGZvbGxvd2VkIGJ5IGluc2VydGluZyBhbmQg YWxpZ25pbmcgYSBjb21tZW50CiAgICAgKOKAmGNvbW1lbnQtaW5kZW50LW5ldy1saW5l4oCZKS4g ICpOb3RlIE11bHRpLUxpbmUgQ29tbWVudHM6Oi4K4oCYTS14IGNvbW1lbnQtcmVnaW9u4oCZCuKA mEMtYyBDLWPigJkgKGluIEMtbGlrZSBtb2RlcykKICAgICBBZGQgY29tbWVudCBkZWxpbWl0ZXJz IHRvIGFsbCB0aGUgbGluZXMgaW4gdGhlIHJlZ2lvbi4KCiAgIFRoZSBjb21tYW5kIHRvIGNyZWF0 ZSBvciBhbGlnbiBhIGNvbW1lbnQgaXMg4oCYTS074oCZICjigJhjb21tZW50LWR3aW3igJkpLgpU aGUgd29yZCDigJxkd2lt4oCdIGlzIGFuIGFjcm9ueW0gZm9yIOKAnERvIFdoYXQgSSBNZWFu4oCd OyBpdCBpbmRpY2F0ZXMgdGhhdAp0aGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQgZm9yIG1hbnkgZGlm ZmVyZW50IGpvYnMgcmVsYXRpbmcgdG8gY29tbWVudHMsCmRlcGVuZGluZyBvbiB0aGUgc2l0dWF0 aW9uIHdoZXJlIHlvdSB1c2UgaXQuCgogICBXaGVuIGEgcmVnaW9uIGlzIGFjdGl2ZSAoKm5vdGUg TWFyazo6KSwg4oCYTS074oCZIGVpdGhlciBhZGRzIGNvbW1lbnQKZGVsaW1pdGVycyB0byB0aGUg cmVnaW9uLCBvciByZW1vdmVzIHRoZW0uICBJZiBldmVyeSBsaW5lIGluIHRoZSByZWdpb24KaXMg YWxyZWFkeSBhIGNvbW1lbnQsIGl0IHVuY29tbWVudHMgZWFjaCBvZiB0aG9zZSBsaW5lcyBieSBy ZW1vdmluZwp0aGVpciBjb21tZW50IGRlbGltaXRlcnMuICBPdGhlcndpc2UsIGl0IGFkZHMgY29t bWVudCBkZWxpbWl0ZXJzIHRvCmVuY2xvc2UgdGhlIHRleHQgaW4gdGhlIHJlZ2lvbi4KCiAgIElm IHlvdSBzdXBwbHkgYSBwcmVmaXggYXJndW1lbnQgdG8g4oCYTS074oCZIHdoZW4gYSByZWdpb24g aXMgYWN0aXZlLAp0aGF0IHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbW1lbnQgZGVsaW1pdGVy cyB0byBhZGQgb3IgZGVsZXRlLiAgQQpwb3NpdGl2ZSBhcmd1bWVudCBOIGFkZHMgTiBkZWxpbWl0 ZXJzLCB3aGlsZSBhIG5lZ2F0aXZlIGFyZ3VtZW50IC1OCnJlbW92ZXMgTiBkZWxpbWl0ZXJzLgoK ICAgSWYgdGhlIHJlZ2lvbiBpcyBub3QgYWN0aXZlLCBhbmQgdGhlcmUgaXMgbm8gZXhpc3Rpbmcg Y29tbWVudCBvbiB0aGUKY3VycmVudCBsaW5lLCDigJhNLTvigJkgYWRkcyBhIG5ldyBjb21tZW50 IHRvIHRoZSBjdXJyZW50IGxpbmUuICBJZiB0aGUgbGluZQppcyBibGFuayAoaS5lLiwgZW1wdHkg b3IgY29udGFpbmluZyBvbmx5IHdoaXRlc3BhY2UgY2hhcmFjdGVycyksIHRoZQpjb21tZW50IGlz IGluZGVudGVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIHdoZXJlIOKAmDxUQUI+4oCZIHdvdWxkIGlu ZGVudCB0bwooKm5vdGUgQmFzaWMgSW5kZW50OjopLiAgSWYgdGhlIGxpbmUgaXMgbm9uLWJsYW5r LCB0aGUgY29tbWVudCBpcyBwbGFjZWQKYWZ0ZXIgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2UgY2hh cmFjdGVyIG9uIHRoZSBsaW5lLiAgRW1hY3MgdHJpZXMgdG8gZml0CnRoZSBjb21tZW50IGJldHdl ZW4gdGhlIGNvbHVtbnMgc3BlY2lmaWVkIGJ5IHRoZSB2YXJpYWJsZXMK4oCYY29tbWVudC1jb2x1 bW7igJkgYW5kIOKAmGNvbW1lbnQtZmlsbC1jb2x1bW7igJkgKCpub3RlIE9wdGlvbnMgZm9yCkNv bW1lbnRzOjopLCBpZiBwb3NzaWJsZS4gIE90aGVyd2lzZSwgaXQgd2lsbCBjaG9vc2Ugc29tZSBv dGhlciBzdWl0YWJsZQpwb3NpdGlvbiwgdXN1YWxseSBzZXBhcmF0ZWQgZnJvbSB0aGUgbm9uLWNv bW1lbnQgdGV4dCBieSBhdCBsZWFzdCBvbmUKc3BhY2UuICBJbiBlYWNoIGNhc2UsIEVtYWNzIHBs YWNlcyBwb2ludCBhZnRlciB0aGUgY29tbWVudOKAmXMgc3RhcnRpbmcKZGVsaW1pdGVyLCBzbyB0 aGF0IHlvdSBjYW4gc3RhcnQgdHlwaW5nIHRoZSBjb21tZW50IHRleHQgcmlnaHQgYXdheS4KCiAg IFlvdSBjYW4gYWxzbyB1c2Ug4oCYTS074oCZIHRvIGFsaWduIGFuIGV4aXN0aW5nIGNvbW1lbnQu ICBJZiBhIGxpbmUKYWxyZWFkeSBjb250YWlucyB0aGUgY29tbWVudC1zdGFydCBzdHJpbmcsIOKA mE0tO+KAmSByZWFsaWducyBpdCB0byB0aGUKY29udmVudGlvbmFsIGFsaWdubWVudCBhbmQgbW92 ZXMgcG9pbnQgYWZ0ZXIgdGhlIGNvbW1lbnTigJlzIHN0YXJ0aW5nCmRlbGltaXRlci4gIEFzIGFu IGV4Y2VwdGlvbiwgY29tbWVudHMgc3RhcnRpbmcgaW4gY29sdW1uIDAgYXJlIG5vdAptb3ZlZC4g IEV2ZW4gd2hlbiBhbiBleGlzdGluZyBjb21tZW50IGlzIHByb3Blcmx5IGFsaWduZWQsIOKAmE0t O+KAmSBpcwpzdGlsbCB1c2VmdWwgZm9yIG1vdmluZyBkaXJlY3RseSB0byB0aGUgc3RhcnQgb2Yg dGhlIGNvbW1lbnQgdGV4dC4KCiAgIOKAmEMteCBDLTvigJkgKOKAmGNvbW1lbnQtbGluZeKAmSkg Y29tbWVudHMgb3IgdW5jb21tZW50cyBjb21wbGV0ZSBsaW5lcy4KV2hlbiBhIHJlZ2lvbiBpcyBh Y3RpdmUgKCpub3RlIE1hcms6OiksIOKAmEMteCBDLTvigJkgZWl0aGVyIGNvbW1lbnRzIG9yCnVu Y29tbWVudHMgdGhlIGxpbmVzIGluIHRoZSByZWdpb24uICBJZiB0aGUgcmVnaW9uIGlzIG5vdCBh Y3RpdmUsIHRoaXMKY29tbWFuZCBjb21tZW50cyBvciB1bmNvbW1lbnRzIHRoZSBsaW5lIHBvaW50 IGlzIG9uLiAgV2l0aCBhIHBvc2l0aXZlCnByZWZpeCBhcmd1bWVudCBOLCBpdCBvcGVyYXRlcyBv biBOIGxpbmVzIHN0YXJ0aW5nIHdpdGggdGhlIGN1cnJlbnQgb25lOwp3aXRoIGEgbmVnYXRpdmUg TiwgaXQgYWZmZWN0cyBOIHByZWNlZGluZyBsaW5lcy4gIEFmdGVyIGludm9raW5nIHRoaXMKY29t bWFuZCB3aXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsIHN1Y2Nlc3NpdmUgaW52b2NhdGlvbnMgd2l0 aCBhIHBvc2l0aXZlCmFyZ3VtZW50IHdpbGwgb3BlcmF0ZSBvbiBwcmVjZWRpbmcgbGluZXMgYXMg aWYgdGhlIGFyZ3VtZW50IHdlcmUKbmVnYXRlZC4KCiAgIOKAmEMtdSBNLTvigJkgKOKAmGNvbW1l bnQtZHdpbeKAmSB3aXRoIGEgcHJlZml4IGFyZ3VtZW50KSBraWxscyBhbnkgY29tbWVudApvbiB0 aGUgY3VycmVudCBsaW5lLCBhbG9uZyB3aXRoIHRoZSB3aGl0ZXNwYWNlIGJlZm9yZSBpdC4gIFNp bmNlIHRoZQpjb21tZW50IGlzIHNhdmVkIHRvIHRoZSBraWxsIHJpbmcsIHlvdSBjYW4gcmVpbnNl cnQgaXQgb24gYW5vdGhlciBsaW5lCmJ5IG1vdmluZyB0byB0aGUgZW5kIG9mIHRoYXQgbGluZSwg ZG9pbmcg4oCYQy154oCZLCBhbmQgdGhlbiDigJhNLTvigJkgdG8KcmVhbGlnbiB0aGUgY29tbWVu dC4gIFlvdSBjYW4gYWNoaWV2ZSB0aGUgc2FtZSBlZmZlY3QgYXMg4oCYQy11IE0tO+KAmSBieQp0 eXBpbmcg4oCYTS14IGNvbW1lbnQta2lsbOKAmSAo4oCYY29tbWVudC1kd2lt4oCZIGFjdHVhbGx5 IGNhbGxzIOKAmGNvbW1lbnQta2lsbOKAmQphcyBhIHN1YnJvdXRpbmUgd2hlbiBpdCBpcyBnaXZl biBhIHByZWZpeCBhcmd1bWVudCkuCgogICBUaGUgY29tbWFuZCDigJhNLXggY29tbWVudC1yZWdp b27igJkgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIOKAmE0tO+KAmSBvbiBhbgphY3RpdmUgcmVn aW9uLCBleGNlcHQgdGhhdCBpdCBhbHdheXMgYWN0cyBvbiB0aGUgcmVnaW9uLCBldmVuIGlmIHRo ZQptYXJrIGlzIGluYWN0aXZlLiAgSW4gQyBtb2RlIGFuZCByZWxhdGVkIG1vZGVzLCB0aGlzIGNv bW1hbmQgaXMgYm91bmQgdG8K4oCYQy1jIEMtY+KAmS4gIFRoZSBjb21tYW5kIOKAmE0teCB1bmNv bW1lbnQtcmVnaW9u4oCZIHVuY29tbWVudHMgZWFjaCBsaW5lIGluCnRoZSByZWdpb247IGEgbnVt ZXJpYyBwcmVmaXggYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29tbWVudApkZWxp bWl0ZXJzIHRvIHJlbW92ZSAobmVnYXRpdmUgYXJndW1lbnRzIHNwZWNpZnkgdGhlIG51bWJlciBv ZiBjb21tZW50CmRlbGltaXRlcnMgdG8gYWRkKS4KCiAgIEZvciBDLWxpa2UgbW9kZXMsIHlvdSBj YW4gY29uZmlndXJlIHRoZSBleGFjdCBlZmZlY3Qgb2Yg4oCYTS074oCZIGJ5CnNldHRpbmcgdGhl IHZhcmlhYmxlcyDigJhjLWluZGVudC1jb21tZW50LWFsaXN04oCZIGFuZArigJhjLWluZGVudC1j b21tZW50cy1zeW50YWN0aWNhbGx5LXDigJkuICBGb3IgZXhhbXBsZSwgb24gYSBsaW5lIGVuZGlu ZyBpbiBhCmNsb3NpbmcgYnJhY2UsIOKAmE0tO+KAmSBwdXRzIHRoZSBjb21tZW50IG9uZSBzcGFj ZSBhZnRlciB0aGUgYnJhY2UgcmF0aGVyCnRoYW4gYXQg4oCYY29tbWVudC1jb2x1bW7igJkuICBG b3IgZnVsbCBkZXRhaWxzIHNlZSAqbm90ZSAoY2Ntb2RlKUNvbW1lbnQKQ29tbWFuZHM6Oi4KCgoq KiogMjYuNS4yIE11bHRpcGxlIExpbmVzIG9mIENvbW1lbnRzCgpJZiB5b3UgYXJlIHR5cGluZyBh IGNvbW1lbnQgYW5kIHdpc2ggdG8gY29udGludWUgaXQgdG8gYW5vdGhlciBsaW5lLAp0eXBlIOKA mE0tauKAmSBvciDigJhDLU0tauKAmSAo4oCYY29tbWVudC1pbmRlbnQtbmV3LWxpbmXigJkpLiAg VGhpcyBicmVha3MgdGhlCmN1cnJlbnQgbGluZSwgYW5kIGluc2VydHMgdGhlIG5lY2Vzc2FyeSBj b21tZW50IGRlbGltaXRlcnMgYW5kCmluZGVudGF0aW9uIHRvIGNvbnRpbnVlIHRoZSBjb21tZW50 LgoKICAgRm9yIGxhbmd1YWdlcyB3aXRoIGNsb3NpbmcgY29tbWVudCBkZWxpbWl0ZXJzIChlLmcu LCDigJgqL+KAmSBpbiBDKSwgdGhlCmV4YWN0IGJlaGF2aW9yIG9mIOKAmE0tauKAmSBkZXBlbmRz IG9uIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUK4oCYY29tbWVudC1tdWx0aS1saW5l4oCZLiAg SWYgdGhlIHZhbHVlIGlzIOKAmG5pbOKAmSwgdGhlIGNvbW1hbmQgY2xvc2VzIHRoZQpjb21tZW50 IG9uIHRoZSBvbGQgbGluZSBhbmQgc3RhcnRzIGEgbmV3IGNvbW1lbnQgb24gdGhlIG5ldyBsaW5l LgpPdGhlcndpc2UsIGl0IG9wZW5zIGEgbmV3IGxpbmUgd2l0aGluIHRoZSBjdXJyZW50IGNvbW1l bnQgZGVsaW1pdGVycy4KCiAgIFdoZW4gQXV0byBGaWxsIG1vZGUgaXMgb24sIGdvaW5nIHBhc3Qg dGhlIGZpbGwgY29sdW1uIHdoaWxlIHR5cGluZyBhCmNvbW1lbnQgYWxzbyBjb250aW51ZXMgdGhl IGNvbW1lbnQsIGluIHRoZSBzYW1lIHdheSBhcyBhbiBleHBsaWNpdAppbnZvY2F0aW9uIG9mIOKA mE0tauKAmS4KCiAgIFRvIHR1cm4gZXhpc3RpbmcgbGluZXMgaW50byBjb21tZW50IGxpbmVzLCB1 c2Ug4oCYTS074oCZIHdpdGggdGhlIHJlZ2lvbgphY3RpdmUsIG9yIHVzZSDigJhNLXggY29tbWVu dC1yZWdpb27igJkgKCpub3RlIENvbW1lbnQgQ29tbWFuZHM6OikuCgogICBZb3UgY2FuIGNvbmZp Z3VyZSBDIE1vZGUgc3VjaCB0aGF0IHdoZW4geW91IHR5cGUgYSDigJgv4oCZIGF0IHRoZSBzdGFy dApvZiBhIGxpbmUgaW4gYSBtdWx0aS1saW5lIGJsb2NrIGNvbW1lbnQsIHRoaXMgY2xvc2VzIHRo ZSBjb21tZW50LgpFbmFibGUgdGhlIOKAmGNvbW1lbnQtY2xvc2Utc2xhc2jigJkgY2xlYW4tdXAg Zm9yIHRoaXMuICAqTm90ZQooY2Ntb2RlKUNsZWFuLXVwczo6LgoKCioqKiAyNi41LjMgT3B0aW9u cyBDb250cm9sbGluZyBDb21tZW50cwoKQXMgbWVudGlvbmVkIGluICpub3RlIENvbW1lbnQgQ29t bWFuZHM6Oiwgd2hlbiB0aGUg4oCYTS1q4oCZIGNvbW1hbmQgYWRkcyBhCmNvbW1lbnQgdG8gYSBs aW5lLCBpdCB0cmllcyB0byBwbGFjZSB0aGUgY29tbWVudCBiZXR3ZWVuIHRoZSBjb2x1bW5zCnNw ZWNpZmllZCBieSB0aGUgYnVmZmVyLWxvY2FsIHZhcmlhYmxlcyDigJhjb21tZW50LWNvbHVtbuKA mSBhbmQK4oCYY29tbWVudC1maWxsLWNvbHVtbuKAmSAob3IgaWYgdGhhdCBpcyDigJhuaWzigJks IHRoZW4gdGhlIHZhbHVlIG9mCuKAmGZpbGwtY29sdW1u4oCZLCAqbm90ZSBGaWxsIENvbW1hbmRz OjopLiAgWW91IGNhbiBzZXQgZWl0aGVyIHRoZSBsb2NhbAp2YWx1ZSBvciB0aGUgZGVmYXVsdCB2 YWx1ZSBvZiB0aGVzZSBidWZmZXItbG9jYWwgdmFyaWFibGVzIGluIHRoZSB1c3VhbAp3YXkgKCpu b3RlIExvY2Fsczo6KS4gIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdHlwZSDigJhDLXggO+KAmQoo 4oCYY29tbWVudC1zZXQtY29sdW1u4oCZKSB0byBzZXQgdGhlIHZhbHVlIG9mIOKAmGNvbW1lbnQt Y29sdW1u4oCZIGluIHRoZQpjdXJyZW50IGJ1ZmZlciB0byB0aGUgY29sdW1uIHdoZXJlIHBvaW50 IGlzIGN1cnJlbnRseSBsb2NhdGVkLiAg4oCYQy11IEMteAo74oCZIHNldHMgdGhlIGNvbW1lbnQg Y29sdW1uIHRvIG1hdGNoIHRoZSBsYXN0IGNvbW1lbnQgYmVmb3JlIHBvaW50IGluIHRoZQpidWZm ZXIsIGFuZCB0aGVuIGRvZXMgYSDigJhNLTvigJkgdG8gYWxpZ24gdGhlIGN1cnJlbnQgbGluZeKA mXMgY29tbWVudCB1bmRlcgp0aGUgcHJldmlvdXMgb25lLgoKICAgVGhlIGNvbW1lbnQgY29tbWFu ZHMgcmVjb2duaXplIGNvbW1lbnRzIGJhc2VkIG9uIHRoZSByZWd1bGFyCmV4cHJlc3Npb24gdGhh dCBpcyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIOKAmGNvbW1lbnQtc3RhcnQtc2tpcOKAmS4g IE1ha2UKc3VyZSB0aGlzIHJlZ2V4cCBkb2VzIG5vdCBtYXRjaCB0aGUgbnVsbCBzdHJpbmcuICBJ dCBtYXkgbWF0Y2ggbW9yZSB0aGFuCnRoZSBjb21tZW50IHN0YXJ0aW5nIGRlbGltaXRlciBpbiB0 aGUgc3RyaWN0ZXN0IHNlbnNlIG9mIHRoZSB3b3JkOyBmb3IKZXhhbXBsZSwgaW4gQyBtb2RlIHRo ZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgaXMK4oCYIlxcKC8vK1xcfC9cXCorXFwpXFxzICoi4oCZ LCB3aGljaCBtYXRjaGVzIGV4dHJhIHN0YXJzIGFuZCBzcGFjZXMgYWZ0ZXIKdGhlIOKAmC8q4oCZ IGl0c2VsZiwgYW5kIGFjY2VwdHMgQysrIHN0eWxlIGNvbW1lbnRzIGFsc28uICAoTm90ZSB0aGF0 IOKAmFxc4oCZCmlzIG5lZWRlZCBpbiBMaXNwIHN5bnRheCB0byBpbmNsdWRlIGEg4oCYXOKAmSBp biB0aGUgc3RyaW5nLCB3aGljaCBpcyBuZWVkZWQKdG8gZGVueSB0aGUgZmlyc3Qgc3RhciBpdHMg c3BlY2lhbCBtZWFuaW5nIGluIHJlZ2V4cCBzeW50YXguICAqTm90ZQpSZWdleHAgQmFja3NsYXNo OjouKQoKICAgV2hlbiBhIGNvbW1lbnQgY29tbWFuZCBtYWtlcyBhIG5ldyBjb21tZW50LCBpdCBp bnNlcnRzIHRoZSB2YWx1ZSBvZgrigJhjb21tZW50LXN0YXJ04oCZIGFzIGFuIG9wZW5pbmcgY29t bWVudCBkZWxpbWl0ZXIuICBJdCBhbHNvIGluc2VydHMgdGhlCnZhbHVlIG9mIOKAmGNvbW1lbnQt ZW5k4oCZIGFmdGVyIHBvaW50LCBhcyBhIGNsb3NpbmcgY29tbWVudCBkZWxpbWl0ZXIuICBGb3IK ZXhhbXBsZSwgaW4gTGlzcCBtb2RlLCDigJhjb21tZW50LXN0YXJ04oCZIGlzIOKAmCI7IuKAmSBh bmQg4oCYY29tbWVudC1lbmTigJkgaXMK4oCYIiLigJkgKHRoZSBlbXB0eSBzdHJpbmcpLiAgSW4g QyBtb2RlLCDigJhjb21tZW50LXN0YXJ04oCZIGlzIOKAmCIvKiAi4oCZIGFuZArigJhjb21tZW50 LWVuZOKAmSBpcyDigJgiICovIuKAmS4KCiAgIFRoZSB2YXJpYWJsZSDigJhjb21tZW50LXBhZGRp bmfigJkgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgdGhlIGNvbW1lbnRpbmcKY29tbWFuZHMgc2hv dWxkIGluc2VydCBiZXR3ZWVuIHRoZSBjb21tZW50IGRlbGltaXRlcihzKSBhbmQgdGhlIGNvbW1l bnQKdGV4dC4gIFRoZSBkZWZhdWx0LCDigJgiICLigJksIHNwZWNpZmllcyBhIHNpbmdsZSBzcGFj ZS4gIEFsdGVybmF0aXZlbHksIHRoZQp2YWx1ZSBjYW4gYmUgYSBudW1iZXIsIHdoaWNoIHNwZWNp ZmllcyB0aGF0IG51bWJlciBvZiBzcGFjZXMsIG9yIOKAmG5pbOKAmSwKd2hpY2ggbWVhbnMgbm8g c3BhY2VzIGF0IGFsbC4KCiAgIFRoZSB2YXJpYWJsZSDigJhjb21tZW50LW11bHRpLWxpbmXigJkg Y29udHJvbHMgaG93IOKAmE0tauKAmSBhbmQgQXV0byBGaWxsCm1vZGUgY29udGludWUgY29tbWVu dHMgb3ZlciBtdWx0aXBsZSBsaW5lcy4gICpOb3RlIE11bHRpLUxpbmUKQ29tbWVudHM6Oi4KCiAg IFRoZSB2YXJpYWJsZSDigJhjb21tZW50LWluZGVudC1mdW5jdGlvbuKAmSBzaG91bGQgY29udGFp biBhIGZ1bmN0aW9uIHRoYXQKd2lsbCBiZSBjYWxsZWQgdG8gY29tcHV0ZSB0aGUgYWxpZ25tZW50 IGZvciBhIG5ld2x5IGluc2VydGVkIGNvbW1lbnQgb3IKZm9yIGFsaWduaW5nIGFuIGV4aXN0aW5n IGNvbW1lbnQuICBJdCBpcyBzZXQgZGlmZmVyZW50bHkgYnkgdmFyaW91cwptYWpvciBtb2Rlcy4g IFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMsIGJ1dCB3aXRoIHBvaW50 CmF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvbW1lbnQsIG9yIGF0IHRoZSBlbmQgb2YgYSBsaW5l IGlmIGEgbmV3CmNvbW1lbnQgaXMgdG8gYmUgaW5zZXJ0ZWQuICBJdCBzaG91bGQgcmV0dXJuIHRo ZSBjb2x1bW4gaW4gd2hpY2ggdGhlCmNvbW1lbnQgb3VnaHQgdG8gc3RhcnQuICBGb3IgZXhhbXBs ZSwgdGhlIGRlZmF1bHQgZnVuY3Rpb24gYmFzZXMgaXRzCmRlY2lzaW9uIG9uIGhvdyBtYW55IGNv bW1lbnQgY2hhcmFjdGVycyBiZWdpbiBhbiBleGlzdGluZyBjb21tZW50LgoKICAgRW1hY3MgYWxz byB0cmllcyB0byBhbGlnbiBjb21tZW50cyBvbiBhZGphY2VudCBsaW5lcy4gIFRvIG92ZXJyaWRl CnRoaXMsIHRoZSBmdW5jdGlvbiBtYXkgcmV0dXJuIGEgY29ucyBvZiB0d28gKHBvc3NpYmx5IGVx dWFsKSBpbnRlZ2VycyB0bwppbmRpY2F0ZSBhbiBhY2NlcHRhYmxlIHJhbmdlIG9mIGluZGVudGF0 aW9uLgoKCioqIDI2LjYgRG9jdW1lbnRhdGlvbiBMb29rdXAKCkVtYWNzIHByb3ZpZGVzIHNldmVy YWwgZmVhdHVyZXMgeW91IGNhbiB1c2UgdG8gbG9vayB1cCB0aGUgZG9jdW1lbnRhdGlvbgpvZiBm dW5jdGlvbnMsIHZhcmlhYmxlcyBhbmQgY29tbWFuZHMgdGhhdCB5b3UgcGxhbiB0byB1c2UgaW4g eW91cgpwcm9ncmFtLgoKKyBNZW51OgoKICAtIEluZm8gTG9va3VwOjogICAgICAgICBMb29raW5n IHVwIGxpYnJhcnkgZnVuY3Rpb25zIGFuZCBjb21tYW5kcyBpbiBJbmZvIGZpbGVzLgogIC0gTWFu IFBhZ2U6OiAgICAgICAgICAgIExvb2tpbmcgdXAgbWFuIHBhZ2VzIG9mIGxpYnJhcnkgZnVuY3Rp b25zIGFuZCBjb21tYW5kcy4KICAtIExpc3AgRG9jOjogICAgICAgICAgICBMb29raW5nIHVwIEVt YWNzIExpc3AgZnVuY3Rpb25zLCBldGMuCgoKKioqIDI2LjYuMSBJbmZvIERvY3VtZW50YXRpb24g TG9va3VwCgpGb3IgbWFqb3IgbW9kZXMgdGhhdCBhcHBseSB0byBsYW5ndWFnZXMgd2hpY2ggaGF2 ZSBkb2N1bWVudGF0aW9uIGluCkluZm8sIHlvdSBjYW4gdXNlIOKAmEMtaCBT4oCZICjigJhpbmZv LWxvb2t1cC1zeW1ib2zigJkpIHRvIHZpZXcgdGhlIEluZm8KZG9jdW1lbnRhdGlvbiBmb3IgYSBz eW1ib2wgdXNlZCBpbiB0aGUgcHJvZ3JhbS4gIFlvdSBzcGVjaWZ5IHRoZSBzeW1ib2wKd2l0aCB0 aGUgbWluaWJ1ZmZlcjsgdGhlIGRlZmF1bHQgaXMgdGhlIHN5bWJvbCBhcHBlYXJpbmcgaW4gdGhl IGJ1ZmZlcgphdCBwb2ludC4gIEZvciBleGFtcGxlLCBpbiBDIG1vZGUgdGhpcyBsb29rcyBmb3Ig dGhlIHN5bWJvbCBpbiB0aGUgQwpMaWJyYXJ5IE1hbnVhbC4gIFRoZSBjb21tYW5kIG9ubHkgd29y a3MgaWYgdGhlIGFwcHJvcHJpYXRlIG1hbnVhbOKAmXMgSW5mbwpmaWxlcyBhcmUgaW5zdGFsbGVk LgoKICAgRW1hY3MgZGV0ZXJtaW5lcyB3aGVyZSB0byBsb29rIGZvciBkb2N1bWVudGF0aW9uIGZv ciB0aGUgc3ltYm9s4oCUd2hpY2gKSW5mbyBmaWxlcyB0byBsb29rIGluLCBhbmQgd2hpY2ggaW5k aWNlcyB0byBzZWFyY2jigJRiYXNlZCBvbiB0aGUgbWFqb3IKbW9kZS4gIFlvdSBjYW4gYWxzbyB1 c2Ug4oCYTS14IGluZm8tbG9va3VwLWZpbGXigJkgdG8gbG9vayBmb3IgZG9jdW1lbnRhdGlvbgpm b3IgYSBmaWxlIG5hbWUuCgogICBJZiB5b3UgdXNlIOKAmEMtaCBT4oCZIGluIGEgbWFqb3IgbW9k ZSB0aGF0IGRvZXMgbm90IHN1cHBvcnQgaXQsIGl0IGFza3MKeW91IHRvIHNwZWNpZnkgdGhlIHN5 bWJvbCBoZWxwIG1vZGUuICBZb3Ugc2hvdWxkIGVudGVyIGEgY29tbWFuZCBzdWNoIGFzCuKAmGMt bW9kZeKAmSB0aGF0IHdvdWxkIHNlbGVjdCBhIG1ham9yIG1vZGUgd2hpY2gg4oCYQy1oIFPigJkg ZG9lcyBzdXBwb3J0LgoKCioqKiAyNi42LjIgTWFuIFBhZ2UgTG9va3VwCgpPbiBVbml4LCB0aGUg bWFpbiBmb3JtIG9mIG9uLWxpbmUgZG9jdW1lbnRhdGlvbiB3YXMgdGhlICJtYW51YWwgcGFnZSIg b3IKIm1hbiBwYWdlIi4gIEluIHRoZSBHTlUgb3BlcmF0aW5nIHN5c3RlbSwgd2UgYWltIHRvIHJl cGxhY2UgbWFuIHBhZ2VzCndpdGggYmV0dGVyLW9yZ2FuaXplZCBtYW51YWxzIHRoYXQgeW91IGNh biBicm93c2Ugd2l0aCBJbmZvICgqbm90ZSBNaXNjCkhlbHA6OikuICBUaGlzIHByb2Nlc3MgaXMg bm90IGZpbmlzaGVkLCBzbyBpdCBpcyBzdGlsbCB1c2VmdWwgdG8gcmVhZAptYW51YWwgcGFnZXMu CgogICBZb3UgY2FuIHJlYWQgdGhlIG1hbiBwYWdlIGZvciBhbiBvcGVyYXRpbmcgc3lzdGVtIGNv bW1hbmQsIGxpYnJhcnkKZnVuY3Rpb24sIG9yIHN5c3RlbSBjYWxsLCB3aXRoIHRoZSDigJhNLXgg bWFu4oCZIGNvbW1hbmQuICBUaGlzIHByb21wdHMgZm9yCmEgdG9waWMsIHdpdGggY29tcGxldGlv biAoKm5vdGUgQ29tcGxldGlvbjo6KSwgYW5kIHJ1bnMgdGhlIOKAmG1hbuKAmQpwcm9ncmFtIHRv IGZvcm1hdCB0aGUgY29ycmVzcG9uZGluZyBtYW4gcGFnZS4gIElmIHRoZSBzeXN0ZW0gcGVybWl0 cywgaXQKcnVucyDigJhtYW7igJkgYXN5bmNocm9ub3VzbHksIHNvIHRoYXQgeW91IGNhbiBrZWVw IG9uIGVkaXRpbmcgd2hpbGUgdGhlCnBhZ2UgaXMgYmVpbmcgZm9ybWF0dGVkLiAgVGhlIHJlc3Vs dCBnb2VzIGluIGEgYnVmZmVyIG5hbWVkIOKAmCpNYW4KVE9QSUMq4oCZLiAgVGhlc2UgYnVmZmVy cyB1c2UgYSBzcGVjaWFsIG1ham9yIG1vZGUsIE1hbiBtb2RlLCB0aGF0CmZhY2lsaXRhdGVzIHNj cm9sbGluZyBhbmQganVtcGluZyB0byBvdGhlciBtYW51YWwgcGFnZXMuICBGb3IgZGV0YWlscywK dHlwZSDigJhDLWggbeKAmSB3aGlsZSBpbiBhIE1hbiBtb2RlIGJ1ZmZlci4KCiAgIEVhY2ggbWFu IHBhZ2UgYmVsb25ncyB0byBvbmUgb2YgdGVuIG9yIG1vcmUgInNlY3Rpb25zIiwgZWFjaCBuYW1l ZCBieQphIGRpZ2l0IG9yIGJ5IGEgZGlnaXQgYW5kIGEgbGV0dGVyLiAgU29tZXRpbWVzIHRoZXJl IGFyZSBtYW4gcGFnZXMgd2l0aAp0aGUgc2FtZSBuYW1lIGluIGRpZmZlcmVudCBzZWN0aW9ucy4g IFRvIHJlYWQgYSBtYW4gcGFnZSBmcm9tIGEgc3BlY2lmaWMKc2VjdGlvbiwgdHlwZSDigJhUT1BJ QyhTRUNUSU9OKeKAmSBvciDigJhTRUNUSU9OIFRPUElD4oCZIHdoZW4g4oCYTS14IG1hbuKAmSBw cm9tcHRzCmZvciB0aGUgdG9waWMuICBGb3IgZXhhbXBsZSwgdGhlIG1hbiBwYWdlIGZvciB0aGUg QyBsaWJyYXJ5IGZ1bmN0aW9uCuKAmGNobW9k4oCZIGlzIGluIHNlY3Rpb24gMiwgYnV0IHRoZXJl IGlzIGEgc2hlbGwgY29tbWFuZCBvZiB0aGUgc2FtZSBuYW1lLAp3aG9zZSBtYW4gcGFnZSBpcyBp biBzZWN0aW9uIDE7IHRvIHZpZXcgdGhlIGZvcm1lciwgdHlwZQrigJhNLXggbWFuIDxSRVQ+IGNo bW9kKDIpIDxSRVQ+4oCZLgoKICAgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgc2VjdGlvbiwg4oCY TS14IG1hbuKAmSBub3JtYWxseSBkaXNwbGF5cyBvbmx5IHRoZQpmaXJzdCBtYW4gcGFnZSBmb3Vu ZC4gIE9uIHNvbWUgc3lzdGVtcywgdGhlIOKAmG1hbuKAmSBwcm9ncmFtIGFjY2VwdHMgYSDigJgt YeKAmQpjb21tYW5kLWxpbmUgb3B0aW9uLCB3aGljaCB0ZWxscyBpdCB0byBkaXNwbGF5IGFsbCB0 aGUgbWFuIHBhZ2VzIGZvciB0aGUKc3BlY2lmaWVkIHRvcGljLiAgVG8gbWFrZSB1c2Ugb2YgdGhp cywgY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUK4oCYTWFuLXN3aXRjaGVz4oCZIHRv IOKAmCItYSLigJkuICBUaGVuLCBpbiB0aGUgTWFuIG1vZGUgYnVmZmVyLCB5b3UgY2FuIHR5cGUK 4oCYTS1u4oCZIGFuZCDigJhNLXDigJkgdG8gc3dpdGNoIGJldHdlZW4gbWFuIHBhZ2VzIGluIGRp ZmZlcmVudCBzZWN0aW9ucy4gIFRoZQptb2RlIGxpbmUgc2hvd3MgaG93IG1hbnkgbWFudWFsIHBh Z2VzIGFyZSBhdmFpbGFibGUuCgogICBBbiBhbHRlcm5hdGl2ZSB3YXkgb2YgcmVhZGluZyBtYW51 YWwgcGFnZXMgaXMgdGhlIOKAmE0teCB3b21hbuKAmQpjb21tYW5kLiAgVW5saWtlIOKAmE0teCBt YW7igJksIGl0IGRvZXMgbm90IHJ1biBhbnkgZXh0ZXJuYWwgcHJvZ3JhbXMgdG8KZm9ybWF0IGFu ZCBkaXNwbGF5IHRoZSBtYW4gcGFnZXM7IHRoZSBmb3JtYXR0aW5nIGlzIGRvbmUgYnkgRW1hY3Ms IHNvIGl0CndvcmtzIG9uIHN5c3RlbXMgc3VjaCBhcyBNUy1XaW5kb3dzIHdoZXJlIHRoZSDigJht YW7igJkgcHJvZ3JhbSBtYXkgYmUKdW5hdmFpbGFibGUuICBJdCBwcm9tcHRzIGZvciBhIG1hbiBw YWdlLCBhbmQgZGlzcGxheXMgaXQgaW4gYSBidWZmZXIKbmFtZWQg4oCYKldvTWFuIFNFQ1RJT04g VE9QSUPigJkuCgogICDigJhNLXggd29tYW7igJkgY29tcHV0ZXMgdGhlIGNvbXBsZXRpb24gbGlz dCBmb3IgbWFucGFnZXMgdGhlIGZpcnN0IHRpbWUKeW91IGludm9rZSB0aGUgY29tbWFuZC4gIFdp dGggYSBudW1lcmljIGFyZ3VtZW50LCBpdCByZWNvbXB1dGVzIHRoaXMKbGlzdDsgdGhpcyBpcyB1 c2VmdWwgaWYgeW91IGFkZCBvciBkZWxldGUgbWFudWFsIHBhZ2VzLgoKICAgSWYgeW91IHR5cGUg YSBuYW1lIG9mIGEgbWFudWFsIHBhZ2UgYW5kIOKAmE0teCB3b21hbuKAmSBmaW5kcyB0aGF0CnNl dmVyYWwgbWFudWFsIHBhZ2VzIGJ5IHRoZSBzYW1lIG5hbWUgZXhpc3QgaW4gZGlmZmVyZW50IHNl Y3Rpb25zLCBpdApwb3BzIHVwIGEgd2luZG93IHdpdGggcG9zc2libGUgY2FuZGlkYXRlcyBhc2tp bmcgeW91IHRvIGNob29zZSBvbmUgb2YKdGhlbS4KCiAgIE5vdGUgdGhhdCDigJhNLXggd29tYW7i gJkgZG9lc27igJl0IHlldCBzdXBwb3J0IHRoZSBsYXRlc3QgZmVhdHVyZXMgb2YKbW9kZXJuIG1h biBwYWdlcywgc28gd2UgcmVjb21tZW5kIHVzaW5nIOKAmE0teCBtYW7igJkgaWYgdGhhdCBpcyBh dmFpbGFibGUKb24geW91ciBzeXN0ZW0uCgogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBz ZXR0aW5nIHVwIGFuZCB1c2luZyDigJhNLXggd29tYW7igJksIHNlZQoqbm90ZSBXb01hbjogKHdv bWFuKVRvcC4KCgoqKiogMjYuNi4zIEVtYWNzIExpc3AgRG9jdW1lbnRhdGlvbiBMb29rdXAKCldo ZW4gZWRpdGluZyBFbWFjcyBMaXNwIGNvZGUsIHlvdSBjYW4gdXNlIHRoZSBjb21tYW5kcyDigJhD LWggZuKAmQoo4oCYZGVzY3JpYmUtZnVuY3Rpb27igJkpIGFuZCDigJhDLWggduKAmSAo4oCYZGVz Y3JpYmUtdmFyaWFibGXigJkpIHRvIHZpZXcgdGhlCmJ1aWx0LWluIGRvY3VtZW50YXRpb24gZm9y IHRoZSBMaXNwIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzIHRoYXQgeW91CndhbnQgdG8gdXNlLiAg Kk5vdGUgTmFtZSBIZWxwOjouCgogICBFbGRvYyBpcyBhIGJ1ZmZlci1sb2NhbCBtaW5vciBtb2Rl IHRoYXQgaGVscHMgd2l0aCBsb29raW5nIHVwIExpc3AKZG9jdW1lbnRhdGlvbi4gIFdoZW4gaXQg aXMgZW5hYmxlZCwgdGhlIGVjaG8gYXJlYSBkaXNwbGF5cyBzb21lIHVzZWZ1bAppbmZvcm1hdGlv biB3aGVuZXZlciB0aGVyZSBpcyBhIExpc3AgZnVuY3Rpb24gb3IgdmFyaWFibGUgYXQgcG9pbnQ7 IGZvcgphIGZ1bmN0aW9uLCBpdCBzaG93cyB0aGUgYXJndW1lbnQgbGlzdCwgYW5kIGZvciBhIHZh cmlhYmxlIGl0IHNob3dzIHRoZQpmaXJzdCBsaW5lIG9mIHRoZSB2YXJpYWJsZeKAmXMgZG9jdW1l bnRhdGlvbiBzdHJpbmcuICBUbyB0b2dnbGUgRWxkb2MKbW9kZSwgdHlwZSDigJhNLXggZWxkb2Mt bW9kZeKAmS4gIFRoZXJl4oCZcyBhbHNvIGEgR2xvYmFsIEVsZG9jIG1vZGUsIHdoaWNoIGlzCnR1 cm5lZCBvbiBieSBkZWZhdWx0LCBhbmQgYWZmZWN0cyBidWZmZXJzLCBzdWNoIGFzIOKAmCpzY3Jh dGNoKuKAmSwgd2hvc2UKbWFqb3IgbW9kZSBpcyBFbWFjcyBMaXNwIG9yIExpc3AgSW50ZXJhY3Rp b24gKOKAmE0teCBnbG9iYWwtZWxkb2MtbW9kZeKAmSB0bwp0dXJuIGl0IG9mZiBnbG9iYWxseSku CgoKKiogMjYuNyBIaWRlc2hvdyBtaW5vciBtb2RlCgpIaWRlc2hvdyBtb2RlIGlzIGEgYnVmZmVy LWxvY2FsIG1pbm9yIG1vZGUgdGhhdCBhbGxvd3MgeW91IHRvCnNlbGVjdGl2ZWx5IGRpc3BsYXkg cG9ydGlvbnMgb2YgYSBwcm9ncmFtLCB3aGljaCBhcmUgcmVmZXJyZWQgdG8gYXMKImJsb2NrcyIu ICBUeXBlIOKAmE0teCBocy1taW5vci1tb2Rl4oCZIHRvIHRvZ2dsZSB0aGlzIG1pbm9yIG1vZGUg KCpub3RlCk1pbm9yIE1vZGVzOjopLgoKICAgV2hlbiB5b3UgdXNlIEhpZGVzaG93IG1vZGUgdG8g aGlkZSBhIGJsb2NrLCB0aGUgYmxvY2sgZGlzYXBwZWFycyBmcm9tCnRoZSBzY3JlZW4sIHRvIGJl IHJlcGxhY2VkIGJ5IGFuIGVsbGlwc2lzICh0aHJlZSBwZXJpb2RzIGluIGEgcm93KS4KSnVzdCB3 aGF0IGNvbnN0aXR1dGVzIGEgYmxvY2sgZGVwZW5kcyBvbiB0aGUgbWFqb3IgbW9kZS4gIEluIEMg bW9kZSBhbmQKcmVsYXRlZCBtb2RlcywgYmxvY2tzIGFyZSBkZWxpbWl0ZWQgYnkgYnJhY2VzLCB3 aGlsZSBpbiBMaXNwIG1vZGUgdGhleQphcmUgZGVsaW1pdGVkIGJ5IHBhcmVudGhlc2VzLiAgTXVs dGktbGluZSBjb21tZW50cyBhbHNvIGNvdW50IGFzIGJsb2Nrcy4KCiAgIEhpZGVzaG93IG1vZGUg cHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKCuKAmEMtYyBAIEMtaOKAmQrigJhDLWMg QCBDLWTigJkKICAgICBIaWRlIHRoZSBjdXJyZW50IGJsb2NrICjigJhocy1oaWRlLWJsb2Nr4oCZ KS4K4oCYQy1jIEAgQy1z4oCZCiAgICAgU2hvdyB0aGUgY3VycmVudCBibG9jayAo4oCYaHMtc2hv dy1ibG9ja+KAmSkuCuKAmEMtYyBAIEMtY+KAmQrigJhDLXggQCBDLWXigJkKICAgICBFaXRoZXIg aGlkZSBvciBzaG93IHRoZSBjdXJyZW50IGJsb2NrICjigJhocy10b2dnbGUtaGlkaW5n4oCZKS4K 4oCYUy1tb3VzZS0y4oCZCiAgICAgVG9nZ2xlIGhpZGluZyBmb3IgdGhlIGJsb2NrIHlvdSBjbGlj ayBvbgogICAgICjigJhocy1tb3VzZS10b2dnbGUtaGlkaW5n4oCZKS4K4oCYQy1jIEAgQy1NLWji gJkK4oCYQy1jIEAgQy104oCZCiAgICAgSGlkZSBhbGwgdG9wLWxldmVsIGJsb2NrcyAo4oCYaHMt aGlkZS1hbGzigJkpLgrigJhDLWMgQCBDLU0tc+KAmQrigJhDLWMgQCBDLWHigJkKICAgICBTaG93 IGFsbCBibG9ja3MgaW4gdGhlIGJ1ZmZlciAo4oCYaHMtc2hvdy1hbGzigJkpLgrigJhDLXUgTiBD LWMgQCBDLWzigJkKICAgICBIaWRlIGFsbCBibG9ja3MgTiBsZXZlbHMgYmVsb3cgdGhpcyBibG9j ayAo4oCYaHMtaGlkZS1sZXZlbOKAmSkuCgogICBUaGVzZSB2YXJpYWJsZXMgY2FuIGJlIHVzZWQg dG8gY3VzdG9taXplIEhpZGVzaG93IG1vZGU6CgrigJhocy1oaWRlLWNvbW1lbnRzLXdoZW4taGlk aW5nLWFsbOKAmQogICAgIElmIG5vbi3igJhuaWzigJksIOKAmEMtYyBAIEMtTS1o4oCZICjigJho cy1oaWRlLWFsbOKAmSkgaGlkZXMgY29tbWVudHMgdG9vLgoK4oCYaHMtaXNlYXJjaC1vcGVu4oCZ CiAgICAgVGhpcyB2YXJpYWJsZSBzcGVjaWZpZXMgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2gg aW5jcmVtZW50YWwKICAgICBzZWFyY2ggc2hvdWxkIHVuaGlkZSBhIGhpZGRlbiBibG9jayB3aGVu IG1hdGNoaW5nIHRleHQgb2NjdXJzCiAgICAgd2l0aGluIHRoZSBibG9jay4gIEl0cyB2YWx1ZSBz aG91bGQgYmUgZWl0aGVyIOKAmGNvZGXigJkgKHVuaGlkZSBvbmx5CiAgICAgY29kZSBibG9ja3Mp LCDigJhjb21tZW504oCZICh1bmhpZGUgb25seSBjb21tZW50cyksIOKAmHTigJkgKHVuaGlkZSBi b3RoCiAgICAgY29kZSBibG9ja3MgYW5kIGNvbW1lbnRzKSwgb3Ig4oCYbmls4oCZICh1bmhpZGUg bmVpdGhlciBjb2RlIGJsb2NrcyBub3IKICAgICBjb21tZW50cykuICBUaGUgZGVmYXVsdCB2YWx1 ZSBpcyDigJhjb2Rl4oCZLgoKCioqIDI2LjggQ29tcGxldGlvbiBmb3IgU3ltYm9sIE5hbWVzCgpD b21wbGV0aW9uIGlzIG5vcm1hbGx5IGRvbmUgaW4gdGhlIG1pbmlidWZmZXIgKCpub3RlIENvbXBs ZXRpb246OiksIGJ1dAp5b3UgY2FuIGFsc28gY29tcGxldGUgc3ltYm9sIG5hbWVzIGluIG9yZGlu YXJ5IEVtYWNzIGJ1ZmZlcnMuCgogICBJbiBwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2RlcywgdHlw ZSDigJhDLU0taeKAmSBvciDigJhNLTxUQUI+4oCZIHRvIGNvbXBsZXRlCnRoZSBwYXJ0aWFsIHN5 bWJvbCBiZWZvcmUgcG9pbnQuICBPbiBncmFwaGljYWwgZGlzcGxheXMsIHRoZSDigJhNLTxUQUI+ 4oCZCmtleSBpcyB1c3VhbGx5IHJlc2VydmVkIGJ5IHRoZSB3aW5kb3cgbWFuYWdlciBmb3Igc3dp dGNoaW5nIGdyYXBoaWNhbAp3aW5kb3dzLCBzbyB5b3Ugc2hvdWxkIHR5cGUg4oCYQy1NLWnigJkg b3Ig4oCYPEVTQz4gPFRBQj7igJkgaW5zdGVhZC4KCiAgIEluIG1vc3QgcHJvZ3JhbW1pbmcgbGFu Z3VhZ2UgbW9kZXMsIOKAmEMtTS1p4oCZIChvciDigJhNLTxUQUI+4oCZKSBpbnZva2VzCnRoZSBj b21tYW5kIOKAmGNvbXBsZXRpb24tYXQtcG9pbnTigJksIHdoaWNoIGdlbmVyYXRlcyBpdHMgY29t cGxldGlvbiBsaXN0CmluIGEgZmxleGlibGUgd2F5LiAgSWYgU2VtYW50aWMgbW9kZSBpcyBlbmFi bGVkLCBpdCB0cmllcyB0byB1c2UgdGhlClNlbWFudGljIHBhcnNlciBkYXRhIGZvciBjb21wbGV0 aW9uICgqbm90ZSBTZW1hbnRpYzo6KS4gIElmIFNlbWFudGljCm1vZGUgaXMgbm90IGVuYWJsZWQg b3IgZmFpbHMgYXQgcGVyZm9ybWluZyBjb21wbGV0aW9uLCBpdCB0cmllcyB0bwpjb21wbGV0ZSB1 c2luZyB0aGUgc2VsZWN0ZWQgdGFncyB0YWJsZSAoKm5vdGUgVGFncyBUYWJsZXM6OikuICBJZiBp bgpFbWFjcyBMaXNwIG1vZGUsIGl0IHBlcmZvcm1zIGNvbXBsZXRpb24gdXNpbmcgdGhlIGZ1bmN0 aW9uLCB2YXJpYWJsZSwgb3IKcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBF bWFjcyBzZXNzaW9uLgoKICAgSW4gYWxsIG90aGVyIHJlc3BlY3RzLCBpbi1idWZmZXIgc3ltYm9s IGNvbXBsZXRpb24gYmVoYXZlcyBsaWtlCm1pbmlidWZmZXIgY29tcGxldGlvbi4gIEZvciBpbnN0 YW5jZSwgaWYgRW1hY3MgY2Fubm90IGNvbXBsZXRlIHRvIGEKdW5pcXVlIHN5bWJvbCwgaXQgZGlz cGxheXMgYSBsaXN0IG9mIGNvbXBsZXRpb24gYWx0ZXJuYXRpdmVzIGluIGFub3RoZXIKd2luZG93 LiAgKk5vdGUgQ29tcGxldGlvbjo6LgoKICAgSW4gVGV4dCBtb2RlIGFuZCByZWxhdGVkIG1vZGVz LCDigJhNLTxUQUI+4oCZIGNvbXBsZXRlcyB3b3JkcyBiYXNlZCBvbgp0aGUgc3BlbGwtY2hlY2tl cuKAmXMgZGljdGlvbmFyeS4gICpOb3RlIFNwZWxsaW5nOjouCgoKKiogMjYuOSBNaXhlZENhc2Ug V29yZHMKClNvbWUgcHJvZ3JhbW1pbmcgc3R5bGVzIG1ha2UgdXNlIG9mIG1peGVkLWNhc2UgKG9y IOKAnENhbWVsQ2FzZeKAnSkgc3ltYm9scwpsaWtlIOKAmHVuUmVhZGFibGVTeW1ib2zigJkuICAo SW4gdGhlIEdOVSBwcm9qZWN0LCB3ZSByZWNvbW1lbmQgdXNpbmcKdW5kZXJzY29yZXMgdG8gc2Vw YXJhdGUgd29yZHMgd2l0aGluIGFuIGlkZW50aWZpZXIsIHJhdGhlciB0aGFuIHVzaW5nCmNhc2Ug ZGlzdGluY3Rpb25zLikgIEVtYWNzIGhhcyB2YXJpb3VzIGZlYXR1cmVzIHRvIG1ha2UgaXQgZWFz aWVyIHRvCmRlYWwgd2l0aCBzdWNoIHN5bWJvbHMuCgogICBHbGFzc2VzIG1vZGUgaXMgYSBidWZm ZXItbG9jYWwgbWlub3IgbW9kZSB0aGF0IG1ha2VzIGl0IGVhc2llciB0bwpyZWFkIHN1Y2ggc3lt Ym9scywgYnkgYWx0ZXJpbmcgaG93IHRoZXkgYXJlIGRpc3BsYXllZC4gIEJ5IGRlZmF1bHQsIGl0 CmRpc3BsYXlzIGV4dHJhIHVuZGVyc2NvcmVzIGJldHdlZW4gZWFjaCBsb3dlci1jYXNlIGxldHRl ciBhbmQgdGhlCmZvbGxvd2luZyBjYXBpdGFsIGxldHRlci4gIFRoaXMgZG9lcyBub3QgYWx0ZXIg dGhlIGJ1ZmZlciB0ZXh0LCBvbmx5IGhvdwppdCBpcyBkaXNwbGF5ZWQuCgogICBUbyB0b2dnbGUg R2xhc3NlcyBtb2RlLCB0eXBlIOKAmE0teCBnbGFzc2VzLW1vZGXigJkgKCpub3RlIE1pbm9yCk1v ZGVzOjopLiAgV2hlbiBHbGFzc2VzIG1vZGUgaXMgZW5hYmxlZCwgdGhlIG1pbm9yIG1vZGUgaW5k aWNhdG9yIOKAmG9eb+KAmQphcHBlYXJzIGluIHRoZSBtb2RlIGxpbmUuICBGb3IgbW9yZSBpbmZv cm1hdGlvbiBhYm91dCBHbGFzc2VzIG1vZGUsIHR5cGUK4oCYQy1oIFAgZ2xhc3NlcyA8UkVUPuKA mS4KCiAgIFN1YndvcmQgbW9kZSBpcyBhbm90aGVyIGJ1ZmZlci1sb2NhbCBtaW5vciBtb2RlLiAg SW4gc3Vid29yZCBtb2RlLApFbWFjc+KAmXMgd29yZCBjb21tYW5kcyByZWNvZ25pemUgdXBwZXIg Y2FzZSBsZXR0ZXJzIGluCuKAmFN0dWRseUNhcHNJZGVudGlmaWVyc+KAmSBhcyB3b3JkIGJvdW5k YXJpZXMuICBXaGVuIFN1YndvcmQgbW9kZSBpcwplbmFibGVkLCB0aGUgbWlub3IgbW9kZSBpbmRp Y2F0b3Ig4oCYLOKAmSBhcHBlYXJzIGluIHRoZSBtb2RlIGxpbmUuICBTZWUKYWxzbyB0aGUgc2lt aWxhciDigJhzdXBlcndvcmQtbW9kZeKAmSAoKm5vdGUgTWlzYyBmb3IgUHJvZ3JhbXM6OikuCgoK KiogMjYuMTAgU2VtYW50aWMKClNlbWFudGljIGlzIGEgcGFja2FnZSB0aGF0IHByb3ZpZGVzIGxh bmd1YWdlLWF3YXJlIGVkaXRpbmcgY29tbWFuZHMKYmFzZWQgb24g4oCYc291cmNlIGNvZGUgcGFy c2Vyc+KAmS4gIFRoaXMgc2VjdGlvbiBwcm92aWRlcyBhIGJyaWVmCmRlc2NyaXB0aW9uIG9mIFNl bWFudGljOyBmb3IgZnVsbCBkZXRhaWxzLCBzZWUgKm5vdGUgU2VtYW50aWM6CihzZW1hbnRpYylU b3AuCgogICBNb3N0IG9mIHRoZSBsYW5ndWFnZS1hd2FyZSBmZWF0dXJlcyBpbiBFbWFjcywgc3Vj aCBhcyBGb250IExvY2sgbW9kZQooKm5vdGUgRm9udCBMb2NrOjopLCByZWx5IG9uIHJ1bGVzIG9m IHRodW1iKDEpIHRoYXQgdXN1YWxseSBnaXZlIGdvb2QKcmVzdWx0cyBidXQgYXJlIG5ldmVyIGNv bXBsZXRlbHkgZXhhY3QuICBJbiBjb250cmFzdCwgdGhlIHBhcnNlcnMgdXNlZApieSBTZW1hbnRp YyBoYXZlIGFuIGV4YWN0IHVuZGVyc3RhbmRpbmcgb2YgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugc3lu dGF4LgpUaGlzIGFsbG93cyBTZW1hbnRpYyB0byBwcm92aWRlIHNlYXJjaCwgbmF2aWdhdGlvbiwg YW5kIGNvbXBsZXRpb24KY29tbWFuZHMgdGhhdCBhcmUgcG93ZXJmdWwgYW5kIHByZWNpc2UuCgog ICBUbyBiZWdpbiB1c2luZyBTZW1hbnRpYywgdHlwZSDigJhNLXggc2VtYW50aWMtbW9kZeKAmSBv ciBjbGljayBvbiB0aGUKbWVudSBpdGVtIG5hbWVkIOKAmFNvdXJjZSBDb2RlIFBhcnNlcnMgKFNl bWFudGljKeKAmSBpbiB0aGUg4oCYVG9vbHPigJkgbWVudS4KVGhpcyBlbmFibGVzIFNlbWFudGlj IG1vZGUsIGEgZ2xvYmFsIG1pbm9yIG1vZGUuCgogICBXaGVuIFNlbWFudGljIG1vZGUgaXMgZW5h YmxlZCwgRW1hY3MgYXV0b21hdGljYWxseSBhdHRlbXB0cyB0byBwYXJzZQplYWNoIGZpbGUgeW91 IHZpc2l0LiAgQ3VycmVudGx5LCBTZW1hbnRpYyB1bmRlcnN0YW5kcyBDLCBDKyssIEhUTUwsCkph dmEsIEphdmFzY3JpcHQsIE1ha2UsIFB5dGhvbiwgU2NoZW1lLCBTUmVjb2RlLCBhbmQgVGV4aW5m by4gIFdpdGhpbgplYWNoIHBhcnNlZCBidWZmZXIsIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJl IGF2YWlsYWJsZToKCuKAmEMtYyAsIGrigJkKICAgICBQcm9tcHQgZm9yIHRoZSBuYW1lIG9mIGEg ZnVuY3Rpb24gZGVmaW5lZCBpbiB0aGUgY3VycmVudCBmaWxlLCBhbmQKICAgICBtb3ZlIHBvaW50 IHRoZXJlICjigJhzZW1hbnRpYy1jb21wbGV0ZS1qdW1wLWxvY2Fs4oCZKS4KCuKAmEMtYyAsIEri gJkKICAgICBQcm9tcHQgZm9yIHRoZSBuYW1lIG9mIGEgZnVuY3Rpb24gZGVmaW5lZCBpbiBhbnkg ZmlsZSBFbWFjcyBoYXMKICAgICBwYXJzZWQsIGFuZCBtb3ZlIHBvaW50IHRoZXJlICjigJhzZW1h bnRpYy1jb21wbGV0ZS1qdW1w4oCZKS4KCuKAmEMtYyAsIDxTUEM+4oCZCiAgICAgRGlzcGxheSBh IGxpc3Qgb2YgcG9zc2libGUgY29tcGxldGlvbnMgZm9yIHRoZSBzeW1ib2wgYXQgcG9pbnQKICAg ICAo4oCYc2VtYW50aWMtY29tcGxldGUtYW5hbHl6ZS1pbmxpbmXigJkpLiAgVGhpcyBhbHNvIGFj dGl2YXRlcyBhIHNldCBvZgogICAgIHNwZWNpYWwga2V5IGJpbmRpbmdzIGZvciBjaG9vc2luZyBh IGNvbXBsZXRpb246IOKAmDxSRVQ+4oCZIGFjY2VwdHMgdGhlCiAgICAgY3VycmVudCBjb21wbGV0 aW9uLCDigJhNLW7igJkgYW5kIOKAmE0tcOKAmSBjeWNsZSB0aHJvdWdoIHBvc3NpYmxlCiAgICAg Y29tcGxldGlvbnMsIOKAmDxUQUI+4oCZIGNvbXBsZXRlcyBhcyBmYXIgYXMgcG9zc2libGUgYW5k IHRoZW4gY3ljbGVzLAogICAgIGFuZCDigJhDLWfigJkgb3IgYW55IG90aGVyIGtleSBhYm9ydHMg Y29tcGxldGlvbi4KCuKAmEMtYyAsIGzigJkKICAgICBEaXNwbGF5IGEgbGlzdCBvZiB0aGUgcG9z c2libGUgY29tcGxldGlvbnMgb2YgdGhlIHN5bWJvbCBhdCBwb2ludCwKICAgICBpbiBhbm90aGVy IHdpbmRvdyAo4oCYc2VtYW50aWMtYW5hbHl6ZS1wb3NzaWJsZS1jb21wbGV0aW9uc+KAmSkuCgpJ biBhZGRpdGlvbiB0byB0aGUgYWJvdmUgY29tbWFuZHMsIHRoZSBTZW1hbnRpYyBwYWNrYWdlIHBy b3ZpZGVzIGEKdmFyaWV0eSBvZiBvdGhlciB3YXlzIHRvIG1ha2UgdXNlIG9mIHBhcnNlciBpbmZv cm1hdGlvbi4gIEZvciBpbnN0YW5jZSwKeW91IGNhbiB1c2UgaXQgdG8gZGlzcGxheSBhIGxpc3Qg b2YgY29tcGxldGlvbnMgd2hlbiBFbWFjcyBpcyBpZGxlLgoqTm90ZSBTZW1hbnRpYzogKHNlbWFu dGljKVRvcCwgZm9yIGRldGFpbHMuCgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0t CgogICAoMSkgUmVndWxhciBleHByZXNzaW9ucyBhbmQgc3ludGF4IHRhYmxlcy4KCgoqKiAyNi4x MSBPdGhlciBGZWF0dXJlcyBVc2VmdWwgZm9yIEVkaXRpbmcgUHJvZ3JhbXMKClNvbWUgRW1hY3Mg Y29tbWFuZHMgdGhhdCBhcmVu4oCZdCBkZXNpZ25lZCBzcGVjaWZpY2FsbHkgZm9yIGVkaXRpbmcK cHJvZ3JhbXMgYXJlIHVzZWZ1bCBmb3IgdGhhdCBub25ldGhlbGVzcy4KCiAgIFRoZSBFbWFjcyBj b21tYW5kcyB0aGF0IG9wZXJhdGUgb24gd29yZHMsIHNlbnRlbmNlcyBhbmQgcGFyYWdyYXBocwph cmUgdXNlZnVsIGZvciBlZGl0aW5nIGNvZGUuICBNb3N0IHN5bWJvbCBuYW1lcyBjb250YWluIHdv cmRzICgqbm90ZQpXb3Jkczo6KSwgd2hpbGUgc2VudGVuY2VzIGNhbiBiZSBmb3VuZCBpbiBzdHJp bmdzIGFuZCBjb21tZW50cyAoKm5vdGUKU2VudGVuY2VzOjopLiAgQXMgZm9yIHBhcmFncmFwaHMs IHRoZXkgYXJlIGRlZmluZWQgaW4gbW9zdCBwcm9ncmFtbWluZwpsYW5ndWFnZSBtb2RlcyB0byBi ZWdpbiBhbmQgZW5kIGF0IGJsYW5rIGxpbmVzICgqbm90ZSBQYXJhZ3JhcGhzOjopLgpUaGVyZWZv cmUsIGp1ZGljaW91cyB1c2Ugb2YgYmxhbmsgbGluZXMgdG8gbWFrZSB0aGUgcHJvZ3JhbSBjbGVh cmVyIHdpbGwKYWxzbyBwcm92aWRlIHVzZWZ1bCBjaHVua3Mgb2YgdGV4dCBmb3IgdGhlIHBhcmFn cmFwaCBjb21tYW5kcyB0byB3b3JrCm9uLiAgQXV0byBGaWxsIG1vZGUsIGlmIGVuYWJsZWQgaW4g YSBwcm9ncmFtbWluZyBsYW5ndWFnZSBtYWpvciBtb2RlLAppbmRlbnRzIHRoZSBuZXcgbGluZXMg d2hpY2ggaXQgY3JlYXRlcy4KCiAgIFN1cGVyd29yZCBtb2RlIGlzIGEgYnVmZmVyLWxvY2FsIG1p bm9yIG1vZGUgdGhhdCBjYXVzZXMgZWRpdGluZyBhbmQKbW90aW9uIGNvbW1hbmRzIHRvIHRyZWF0 IHN5bWJvbHMgKGUuZy4sIOKAmHRoaXNfaXNfYV9zeW1ib2zigJkpIGFzIHdvcmRzLgpXaGVuIFN1 cGVyd29yZCBtb2RlIGlzIGVuYWJsZWQsIHRoZSBtaW5vciBtb2RlIGluZGljYXRvciDigJjCsuKA mSBhcHBlYXJzIGluCnRoZSBtb2RlIGxpbmUuICBTZWUgYWxzbyB0aGUgc2ltaWxhciDigJhzdWJ3 b3JkLW1vZGXigJkgKCpub3RlIE1peGVkQ2FzZQpXb3Jkczo6KS4KCiAgIEVsZWN0cmljIExheW91 dCBtb2RlICjigJhNLXggZWxlY3RyaWMtbGF5b3V0LW1vZGXigJkpIGlzIGEgZ2xvYmFsIG1pbm9y Cm1vZGUgdGhhdCBhdXRvbWF0aWNhbGx5IGluc2VydHMgbmV3bGluZXMgd2hlbiB5b3UgdHlwZSBj ZXJ0YWluCmNoYXJhY3RlcnM7IGZvciBleGFtcGxlLCDigJh74oCZLCDigJh94oCZIGFuZCDigJg7 4oCZIGluIEphdmFzY3JpcHQgbW9kZS4KCiAgIEFwYXJ0IGZyb20gSGlkZXNob3cgbW9kZSAoKm5v dGUgSGlkZXNob3c6OiksIGFub3RoZXIgd2F5IHRvCnNlbGVjdGl2ZWx5IGRpc3BsYXkgcGFydHMg b2YgYSBwcm9ncmFtIGlzIHRvIHVzZSB0aGUgc2VsZWN0aXZlIGRpc3BsYXkKZmVhdHVyZSAoKm5v dGUgU2VsZWN0aXZlIERpc3BsYXk6OikuICBQcm9ncmFtbWluZyBtb2RlcyBvZnRlbiBhbHNvCnN1 cHBvcnQgT3V0bGluZSBtaW5vciBtb2RlICgqbm90ZSBPdXRsaW5lIE1vZGU6OiksIHdoaWNoIGNh biBiZSB1c2VkCndpdGggdGhlIEZvbGRvdXQgcGFja2FnZSAoKm5vdGUgRm9sZG91dDo6KS4KCiAg IFRoZSBhdXRvbWF0aWMgdHlwaW5nIGZlYXR1cmVzIG1heSBiZSB1c2VmdWwgZm9yIHdyaXRpbmcg cHJvZ3JhbXMuCipOb3RlIEF1dG90eXBpbmc6IChhdXRvdHlwZSlUb3AuCgogICBQcmV0dGlmeSBT eW1ib2xzIG1vZGUgaXMgYSBidWZmZXItbG9jYWwgbWlub3IgbW9kZSB0aGF0IHJlcGxhY2VzCmNl cnRhaW4gc3RyaW5ncyB3aXRoIG1vcmUgYXR0cmFjdGl2ZSB2ZXJzaW9ucyBmb3IgZGlzcGxheSBw dXJwb3Nlcy4gIEZvcgpleGFtcGxlLCBpbiBFbWFjcyBMaXNwIG1vZGUsIGl0IHJlcGxhY2VzIHRo ZSBzdHJpbmcg4oCYbGFtYmRh4oCZIHdpdGggdGhlCkdyZWVrIGxhbWJkYSBjaGFyYWN0ZXIg4oCY zrvigJkuICBJbiBhIFRlWCBidWZmZXIsIGl0IHdpbGwgcmVwbGFjZSDigJhcYWxwaGHigJkg4oCm CuKAmFxvbWVnYeKAmSBhbmQgb3RoZXIgbWF0aCBtYWNyb3Mgd2l0aCB0aGVpciBVbmljb2RlIGNo YXJhY3RlcnMuICBZb3UgbWF5Cndpc2ggdG8gdXNlIHRoaXMgaW4gbm9uLXByb2dyYW1taW5nIG1v ZGVzIGFzIHdlbGwuICBZb3UgY2FuIGN1c3RvbWl6ZQp0aGUgbW9kZSBieSBhZGRpbmcgbW9yZSBl bnRyaWVzIHRvIOKAmHByZXR0aWZ5LXN5bWJvbHMtYWxpc3TigJkuICBNb3JlCmVsYWJvcmF0ZSBj dXN0b21pemF0aW9uIGlzIGF2YWlsYWJsZSB2aWEgY3VzdG9taXppbmcK4oCYcHJldHRpZnktc3lt Ym9scy1jb21wb3NlLXByZWRpY2F0ZeKAmSBpZiBpdHMgZGVmYXVsdCB2YWx1ZQrigJhwcmV0dGlm eS1zeW1ib2xzLWRlZmF1bHQtY29tcG9zZS1w4oCZIGlzIG5vdCBhcHByb3ByaWF0ZS4gIFRoZXJl IGlzIGFsc28KYSBnbG9iYWwgdmVyc2lvbiwg4oCYZ2xvYmFsLXByZXR0aWZ5LXN5bWJvbHMtbW9k ZeKAmSwgd2hpY2ggZW5hYmxlcyB0aGUgbW9kZQppbiBhbGwgYnVmZmVycyB0aGF0IHN1cHBvcnQg aXQuCgogICBUaGUgc3ltYm9sIGF0IHBvaW50IGNhbiBiZSBzaG93biBpbiBpdHMgb3JpZ2luYWwg Zm9ybS4gIFRoaXMgaXMKY29udHJvbGxlZCBieSB0aGUgdmFyaWFibGUg4oCYcHJldHRpZnktc3lt Ym9scy11bnByZXR0aWZ5LWF0LXBvaW504oCZOiBpZgpub24t4oCYbmls4oCZLCB0aGUgb3JpZ2lu YWwgZm9ybSBvZiBzeW1ib2wgYXQgcG9pbnQgd2lsbCBiZSByZXN0b3JlZCBmb3IgYXMKbG9uZyBh cyBwb2ludCBpcyBhdCBpdC4KCgoqKiAyNi4xMiBDIGFuZCBSZWxhdGVkIE1vZGVzCgpUaGlzIHNl Y3Rpb24gZ2l2ZXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgc3BlY2lhbCBmZWF0dXJlcyBh dmFpbGFibGUKaW4gQywgQysrLCBPYmplY3RpdmUtQywgSmF2YSwgQ09SQkEgSURMLCBQaWtlIGFu ZCBBV0sgbW9kZXMuICAoVGhlc2UgYXJlCmNhbGxlZCDigJxDIG1vZGUgYW5kIHJlbGF0ZWQgbW9k ZXPigJ0uKSAgKk5vdGUgQ0MgTW9kZTogKGNjbW9kZSlUb3AsIGZvcgptb3JlIGRldGFpbHMuCgor IE1lbnU6CgogIC0gTW90aW9uIGluIEM6OiAgICAgICAgICAgICAgICAgQ29tbWFuZHMgdG8gbW92 ZSBieSBDIHN0YXRlbWVudHMsIGV0Yy4KICAtIEVsZWN0cmljIEM6OiAgICAgICAgICAgICAgICAg IENvbG9uIGFuZCBvdGhlciBjaGFycyBjYW4gYXV0b21hdGljYWxseSByZWluZGVudC4KICAtIEh1 bmdyeSBEZWxldGU6OiAgICAgICAgICAgICAgIEEgbW9yZSBwb3dlcmZ1bCBERUwgY29tbWFuZC4K ICAtIE90aGVyIEMgQ29tbWFuZHM6OiAgICAgICAgICAgIEZpbGxpbmcgY29tbWVudHMsIHZpZXdp bmcgZXhwYW5zaW9uIG9mIG1hY3JvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bmQgb3RoZXIgbmVhdCBmZWF0dXJlcy4KCgoqKiogMjYuMTIuMSBDIE1vZGUgTW90aW9uIENvbW1h bmRzCgpUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGNvbW1hbmRzIGZvciBtb3ZpbmcgcG9pbnQsIGlu IEMgbW9kZSBhbmQgcmVsYXRlZAptb2Rlcy4KCuKAmEMtTS1h4oCZCuKAmEMtTS1l4oCZCiAgICAg TW92ZSBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiB0aGUgY3VycmVudCBmdW5jdGlv biBvcgogICAgIHRvcC1sZXZlbCBkZWZpbml0aW9uLiAgSW4gbGFuZ3VhZ2VzIHdpdGggZW5jbG9z aW5nIHNjb3BlcyAoc3VjaCBhcwogICAgIEMrK+KAmXMgY2xhc3NlcykgdGhlICJjdXJyZW50IGZ1 bmN0aW9uIiBpcyB0aGUgaW1tZWRpYXRlIG9uZSwKICAgICBwb3NzaWJseSBpbnNpZGUgYSBzY29w ZS4gIE90aGVyd2lzZSBpdCBpcyB0aGUgb25lIGRlZmluZWQgYnkgdGhlCiAgICAgbGVhc3QgZW5j bG9zaW5nIGJyYWNlcy4gIChCeSBjb250cmFzdCwg4oCYYmVnaW5uaW5nLW9mLWRlZnVu4oCZIGFu ZAogICAgIOKAmGVuZC1vZi1kZWZ1buKAmSBzZWFyY2ggZm9yIGJyYWNlcyBpbiBjb2x1bW4gemVy by4pICAqTm90ZSBNb3ZpbmcgYnkKICAgICBEZWZ1bnM6Oi4KCuKAmEMtYyBDLXXigJkKICAgICBN b3ZlIHBvaW50IGJhY2sgdG8gdGhlIGNvbnRhaW5pbmcgcHJlcHJvY2Vzc29yIGNvbmRpdGlvbmFs LCBsZWF2aW5nCiAgICAgdGhlIG1hcmsgYmVoaW5kLiAgQSBwcmVmaXggYXJndW1lbnQgYWN0cyBh cyBhIHJlcGVhdCBjb3VudC4gIFdpdGggYQogICAgIG5lZ2F0aXZlIGFyZ3VtZW50LCBtb3ZlIHBv aW50IGZvcndhcmQgdG8gdGhlIGVuZCBvZiB0aGUgY29udGFpbmluZwogICAgIHByZXByb2Nlc3Nv ciBjb25kaXRpb25hbC4KCiAgICAg4oCYI2VsaWbigJkgaXMgZXF1aXZhbGVudCB0byDigJgjZWxz ZeKAmSBmb2xsb3dlZCBieSDigJgjaWbigJksIHNvIHRoZSBmdW5jdGlvbgogICAgIHdpbGwgc3Rv cCBhdCBhIOKAmCNlbGlm4oCZIHdoZW4gZ29pbmcgYmFja3dhcmQsIGJ1dCBub3Qgd2hlbiBnb2lu ZwogICAgIGZvcndhcmQuCgrigJhDLWMgQy1w4oCZCiAgICAgTW92ZSBwb2ludCBiYWNrIG92ZXIg YSBwcmVwcm9jZXNzb3IgY29uZGl0aW9uYWwsIGxlYXZpbmcgdGhlIG1hcmsKICAgICBiZWhpbmQu ICBBIHByZWZpeCBhcmd1bWVudCBhY3RzIGFzIGEgcmVwZWF0IGNvdW50LiAgV2l0aCBhIG5lZ2F0 aXZlCiAgICAgYXJndW1lbnQsIG1vdmUgZm9yd2FyZC4KCuKAmEMtYyBDLW7igJkKICAgICBNb3Zl IHBvaW50IGZvcndhcmQgYWNyb3NzIGEgcHJlcHJvY2Vzc29yIGNvbmRpdGlvbmFsLCBsZWF2aW5n IHRoZQogICAgIG1hcmsgYmVoaW5kLiAgQSBwcmVmaXggYXJndW1lbnQgYWN0cyBhcyBhIHJlcGVh dCBjb3VudC4gIFdpdGggYQogICAgIG5lZ2F0aXZlIGFyZ3VtZW50LCBtb3ZlIGJhY2t3YXJkLgoK 4oCYTS1h4oCZCiAgICAgTW92ZSBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbm5lcm1v c3QgQyBzdGF0ZW1lbnQKICAgICAo4oCYYy1iZWdpbm5pbmctb2Ytc3RhdGVtZW504oCZKS4gIElm IHBvaW50IGlzIGFscmVhZHkgYXQgdGhlIGJlZ2lubmluZwogICAgIG9mIGEgc3RhdGVtZW50LCBt b3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByZWNlZGluZyBzdGF0ZW1lbnQuCiAgICAgV2l0 aCBwcmVmaXggYXJndW1lbnQgTiwgbW92ZSBiYWNrIE4g4oiSIDEgc3RhdGVtZW50cy4KCiAgICAg SW4gY29tbWVudHMgb3IgaW4gc3RyaW5ncyB3aGljaCBzcGFuIG1vcmUgdGhhbiBvbmUgbGluZSwg dGhpcwogICAgIGNvbW1hbmQgbW92ZXMgYnkgc2VudGVuY2VzIGluc3RlYWQgb2Ygc3RhdGVtZW50 cy4KCuKAmE0tZeKAmQogICAgIE1vdmUgcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgaW5uZXJtb3N0 IEMgc3RhdGVtZW50IG9yIHNlbnRlbmNlOwogICAgIGxpa2Ug4oCYTS1h4oCZIGV4Y2VwdCB0aGF0 IGl0IG1vdmVzIGluIHRoZSBvdGhlciBkaXJlY3Rpb24KICAgICAo4oCYYy1lbmQtb2Ytc3RhdGVt ZW504oCZKS4KCgoqKiogMjYuMTIuMiBFbGVjdHJpYyBDIENoYXJhY3RlcnMKCkluIEMgbW9kZSBh bmQgcmVsYXRlZCBtb2RlcywgY2VydGFpbiBwcmludGluZyBjaGFyYWN0ZXJzIGFyZQoiZWxlY3Ry aWMi4oCUaW4gYWRkaXRpb24gdG8gaW5zZXJ0aW5nIHRoZW1zZWx2ZXMsIHRoZXkgYWxzbyByZWlu ZGVudCB0aGUKY3VycmVudCBsaW5lLCBhbmQgb3B0aW9uYWxseSBhbHNvIGluc2VydCBuZXdsaW5l cy4gIFRoZSBlbGVjdHJpYwpjaGFyYWN0ZXJzIGFyZSDigJh74oCZLCDigJh94oCZLCDigJg64oCZ LCDigJgj4oCZLCDigJg74oCZLCDigJgs4oCZLCDigJg84oCZLCDigJg+4oCZLCDigJgv4oCZLCDi gJgq4oCZLCDigJgo4oCZLAphbmQg4oCYKeKAmS4KCiAgIFlvdSBtaWdodCBmaW5kIGVsZWN0cmlj IGluZGVudGF0aW9uIGluY29udmVuaWVudCBpZiB5b3UgYXJlIGVkaXRpbmcKY2hhb3RpY2FsbHkg aW5kZW50ZWQgY29kZS4gIElmIHlvdSBhcmUgbmV3IHRvIENDIE1vZGUsIHlvdSBtaWdodCBmaW5k IGl0CmRpc2NvbmNlcnRpbmcuICBZb3UgY2FuIHRvZ2dsZSBlbGVjdHJpYyBhY3Rpb24gd2l0aCB0 aGUgY29tbWFuZCDigJhDLWMKQy1s4oCZOyB3aGVuIGl0IGlzIGVuYWJsZWQsIOKAmC9DbOKAmSBh cHBlYXJzIGluIHRoZSBtb2RlIGxpbmUgYWZ0ZXIgdGhlIG1vZGUKbmFtZSAod2hlcmUgQywgaWYg cHJlc2VudCwgaXMg4oCYKuKAmSBvciDigJgv4oCZLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUK Y29tbWVudCBzdHlsZSBpcyBibG9jayBvciBsaW5lKS4gICpOb3RlIChjY21vZGUpTWlub3IgTW9k ZXM6OiwgZm9yIG1vcmUKYWJvdXQgbW9kZS1saW5lIGluZGljYXRvcnMgaW4gQ0MgTW9kZS4KCuKA mEMtYyBDLWzigJkKICAgICBUb2dnbGUgZWxlY3RyaWMgYWN0aW9uICjigJhjLXRvZ2dsZS1lbGVj dHJpYy1zdGF0ZeKAmSkuICBXaXRoIGEKICAgICBwb3NpdGl2ZSBwcmVmaXggYXJndW1lbnQsIHRo aXMgY29tbWFuZCBlbmFibGVzIGVsZWN0cmljIGFjdGlvbiwKICAgICB3aXRoIGEgbmVnYXRpdmUg b25lIGl0IGRpc2FibGVzIGl0LgoKICAgRWxlY3RyaWMgY2hhcmFjdGVycyBpbnNlcnQgbmV3bGlu ZXMgb25seSB3aGVuLCBpbiBhZGRpdGlvbiB0byB0aGUKZWxlY3RyaWMgc3RhdGUsIHRoZSAiYXV0 by1uZXdsaW5lIiBmZWF0dXJlIGlzIGVuYWJsZWQgKGluZGljYXRlZCBieQrigJgvQ2xh4oCZIGlu IHRoZSBtb2RlIGxpbmUgYWZ0ZXIgdGhlIG1vZGUgbmFtZSkuICBZb3UgY2FuIHR1cm4gdGhpcyBm ZWF0dXJlCm9uIG9yIG9mZiB3aXRoIHRoZSBjb21tYW5kIOKAmEMtYyBDLWHigJk6CgrigJhDLWMg Qy1h4oCZCiAgICAgVG9nZ2xlIHRoZSBhdXRvLW5ld2xpbmUgZmVhdHVyZSAo4oCYYy10b2dnbGUt YXV0by1uZXdsaW5l4oCZKS4gIFdpdGggYQogICAgIHByZWZpeCBhcmd1bWVudCwgdGhpcyBjb21t YW5kIHR1cm5zIHRoZSBhdXRvLW5ld2xpbmUgZmVhdHVyZSBvbiBpZgogICAgIHRoZSBhcmd1bWVu dCBpcyBwb3NpdGl2ZSwgYW5kIG9mZiBpZiBpdCBpcyBuZWdhdGl2ZS4KCiAgIFVzdWFsbHkgdGhl IENDIE1vZGUgc3R5bGUgY29uZmlndXJlcyB0aGUgZXhhY3QgY2lyY3Vtc3RhbmNlcyBpbiB3aGlj aApFbWFjcyBpbnNlcnRzIGF1dG8tbmV3bGluZXMuICBZb3UgY2FuIGFsc28gY29uZmlndXJlIHRo aXMgZGlyZWN0bHkuCipOb3RlIChjY21vZGUpQ3VzdG9tIEF1dG8tbmV3bGluZXM6Oi4KCgoqKiog MjYuMTIuMyBIdW5ncnkgRGVsZXRlIEZlYXR1cmUgaW4gQwoKSWYgeW91IHdhbnQgdG8gZGVsZXRl IGFuIGVudGlyZSBibG9jayBvZiB3aGl0ZXNwYWNlIGF0IHBvaW50LCB5b3UgY2FuCnVzZSAiaHVu Z3J5IGRlbGV0aW9uIi4gIFRoaXMgZGVsZXRlcyBhbGwgdGhlIGNvbnRpZ3VvdXMgd2hpdGVzcGFj ZQplaXRoZXIgYmVmb3JlIHBvaW50IG9yIGFmdGVyIHBvaW50IGluIGEgc2luZ2xlIG9wZXJhdGlv bi4gICJXaGl0ZXNwYWNlIgpoZXJlIGluY2x1ZGVzIHRhYnMgYW5kIG5ld2xpbmVzLCBidXQgbm90 IGNvbW1lbnRzIG9yIHByZXByb2Nlc3Nvcgpjb21tYW5kcy4KCuKAmEMtYyBDLTxERUw+4oCZCuKA mEMtYyA8REVMPuKAmQogICAgIERlbGV0ZSB0aGUgZW50aXJlIGJsb2NrIG9mIHdoaXRlc3BhY2Ug cHJlY2VkaW5nIHBvaW50CiAgICAgKOKAmGMtaHVuZ3J5LWRlbGV0ZS1iYWNrd2FyZHPigJkpLgoK 4oCYQy1jIEMtZOKAmQrigJhDLWMgQy08RGVsZXRlPuKAmQrigJhDLWMgPERlbGV0ZT7igJkKICAg ICBEZWxldGUgdGhlIGVudGlyZSBibG9jayBvZiB3aGl0ZXNwYWNlIGFmdGVyIHBvaW50CiAgICAg KOKAmGMtaHVuZ3J5LWRlbGV0ZS1mb3J3YXJk4oCZKS4KCiAgIEFzIGFuIGFsdGVybmF0aXZlIHRv IHRoZSBhYm92ZSBjb21tYW5kcywgeW91IGNhbiBlbmFibGUgImh1bmdyeQpkZWxldGUgbW9kZSIu ICBXaGVuIHRoaXMgZmVhdHVyZSBpcyBlbmFibGVkIChpbmRpY2F0ZWQgYnkg4oCYaOKAmSBhZnRl ciBhCuKAmC/igJkgaW4gdGhlIG1vZGUgbGluZSBhZnRlciB0aGUgbW9kZSBuYW1lKSwgYSBzaW5n bGUg4oCYPERFTD7igJkgZGVsZXRlcyBhbGwKcHJlY2VkaW5nIHdoaXRlc3BhY2UsIG5vdCBqdXN0 IG9uZSBzcGFjZSwgYW5kIGEgc2luZ2xlIOKAmEMtZOKAmSAoYnV0IF9ub3RfCnBsYWluIOKAmDxE ZWxldGU+4oCZKSBkZWxldGVzIGFsbCBmb2xsb3dpbmcgd2hpdGVzcGFjZS4KCuKAmE0teCBjLXRv Z2dsZS1odW5ncnktc3RhdGXigJkKICAgICBUb2dnbGUgdGhlIGh1bmdyeS1kZWxldGUgZmVhdHVy ZSAo4oCYYy10b2dnbGUtaHVuZ3J5LXN0YXRl4oCZKS4gIFdpdGggYQogICAgIHByZWZpeCBhcmd1 bWVudCwgdGhpcyBjb21tYW5kIHR1cm5zIHRoZSBodW5ncnktZGVsZXRlIGZlYXR1cmUgb24gaWYK ICAgICB0aGUgYXJndW1lbnQgaXMgcG9zaXRpdmUsIGFuZCBvZmYgaWYgaXQgaXMgbmVnYXRpdmUu CgogICBUaGUgdmFyaWFibGUg4oCYYy1odW5ncnktZGVsZXRlLWtleeKAmSBjb250cm9scyB3aGV0 aGVyIHRoZSBodW5ncnktZGVsZXRlCmZlYXR1cmUgaXMgZW5hYmxlZC4KCgoqKiogMjYuMTIuNCBP dGhlciBDb21tYW5kcyBmb3IgQyBNb2RlCgrigJhNLXggYy1jb250ZXh0LWxpbmUtYnJlYWvigJkK ICAgICBUaGlzIGNvbW1hbmQgaW5zZXJ0cyBhIGxpbmUgYnJlYWsgYW5kIGluZGVudHMgdGhlIG5l dyBsaW5lIGluIGEKICAgICBtYW5uZXIgYXBwcm9wcmlhdGUgdG8gdGhlIGNvbnRleHQuICBJbiBu b3JtYWwgY29kZSwgaXQgZG9lcyB0aGUKICAgICB3b3JrIG9mIOKAmDxSRVQ+4oCZICjigJhuZXds aW5l4oCZKSwgaW4gYSBDIHByZXByb2Nlc3NvciBsaW5lIGl0CiAgICAgYWRkaXRpb25hbGx5IGlu c2VydHMgYSDigJhc4oCZIGF0IHRoZSBsaW5lIGJyZWFrLCBhbmQgd2l0aGluIGNvbW1lbnRzCiAg ICAgaXTigJlzIGxpa2Ug4oCYTS1q4oCZICjigJhjLWluZGVudC1uZXctY29tbWVudC1saW5l4oCZ KS4KCiAgICAg4oCYYy1jb250ZXh0LWxpbmUtYnJlYWvigJkgaXNu4oCZdCBib3VuZCB0byBhIGtl eSBieSBkZWZhdWx0LCBidXQgaXQKICAgICBuZWVkcyBhIGJpbmRpbmcgdG8gYmUgdXNlZnVsLiAg VGhlIGZvbGxvd2luZyBjb2RlIHdpbGwgYmluZCBpdCB0bwogICAgIOKAmDxSRVQ+4oCZLiAgV2Ug dXNlIOKAmGMtaW5pdGlhbGl6YXRpb24taG9va+KAmSBoZXJlIHRvIG1ha2Ugc3VyZSB0aGUKICAg ICBrZXltYXAgaXMgbG9hZGVkIGJlZm9yZSB3ZSB0cnkgdG8gY2hhbmdlIGl0LgoKICAgICAgICAg IChkZWZ1biBteS1iaW5kLWNsYiAoKQogICAgICAgICAgICAoZGVmaW5lLWtleSBjLW1vZGUtYmFz ZS1tYXAgIlxDLW0iCiAgICAgICAgICAgICAgICAgICAgICAgICdjLWNvbnRleHQtbGluZS1icmVh aykpCiAgICAgICAgICAoYWRkLWhvb2sgJ2MtaW5pdGlhbGl6YXRpb24taG9vayAnbXktYmluZC1j bGIpCgrigJhDLU0taOKAmQogICAgIFB1dCBtYXJrIGF0IHRoZSBlbmQgb2YgYSBmdW5jdGlvbiBk ZWZpbml0aW9uLCBhbmQgcHV0IHBvaW50IGF0IHRoZQogICAgIGJlZ2lubmluZyAo4oCYYy1tYXJr LWZ1bmN0aW9u4oCZKS4KCuKAmE0tceKAmQogICAgIEZpbGwgYSBwYXJhZ3JhcGgsIGhhbmRsaW5n IEMgYW5kIEMrKyBjb21tZW50cyAo4oCYYy1maWxsLXBhcmFncmFwaOKAmSkuCiAgICAgSWYgYW55 IHBhcnQgb2YgdGhlIGN1cnJlbnQgbGluZSBpcyBhIGNvbW1lbnQgb3Igd2l0aGluIGEgY29tbWVu dCwKICAgICB0aGlzIGNvbW1hbmQgZmlsbHMgdGhlIGNvbW1lbnQgb3IgdGhlIHBhcmFncmFwaCBv ZiBpdCB0aGF0IHBvaW50IGlzCiAgICAgaW4sIHByZXNlcnZpbmcgdGhlIGNvbW1lbnQgaW5kZW50 YXRpb24gYW5kIGNvbW1lbnQgZGVsaW1pdGVycy4KCuKAmEMtYyBDLWXigJkKICAgICBSdW4gdGhl IEMgcHJlcHJvY2Vzc29yIG9uIHRoZSB0ZXh0IGluIHRoZSByZWdpb24sIGFuZCBzaG93IHRoZQog ICAgIHJlc3VsdCwgd2hpY2ggaW5jbHVkZXMgdGhlIGV4cGFuc2lvbiBvZiBhbGwgdGhlIG1hY3Jv IGNhbGxzCiAgICAgKOKAmGMtbWFjcm8tZXhwYW5k4oCZKS4gIFRoZSBidWZmZXIgdGV4dCBiZWZv cmUgdGhlIHJlZ2lvbiBpcyBhbHNvCiAgICAgaW5jbHVkZWQgaW4gcHJlcHJvY2Vzc2luZywgZm9y IHRoZSBzYWtlIG9mIG1hY3JvcyBkZWZpbmVkIHRoZXJlLAogICAgIGJ1dCB0aGUgb3V0cHV0IGZy b20gdGhpcyBwYXJ0IGlzbuKAmXQgc2hvd24uCgogICAgIFdoZW4geW91IGFyZSBkZWJ1Z2dpbmcg QyBjb2RlIHRoYXQgdXNlcyBtYWNyb3MsIHNvbWV0aW1lcyBpdCBpcwogICAgIGhhcmQgdG8gZmln dXJlIG91dCBwcmVjaXNlbHkgaG93IHRoZSBtYWNyb3MgZXhwYW5kLiAgV2l0aCB0aGlzCiAgICAg Y29tbWFuZCwgeW91IGRvbuKAmXQgaGF2ZSB0byBmaWd1cmUgaXQgb3V0OyB5b3UgY2FuIHNlZSB0 aGUKICAgICBleHBhbnNpb25zLgoK4oCYQy1jIEMtXOKAmQogICAgIEluc2VydCBvciBhbGlnbiDi gJhc4oCZIGNoYXJhY3RlcnMgYXQgdGhlIGVuZHMgb2YgdGhlIGxpbmVzIG9mIHRoZQogICAgIHJl Z2lvbiAo4oCYYy1iYWNrc2xhc2gtcmVnaW9u4oCZKS4gIFRoaXMgaXMgdXNlZnVsIGFmdGVyIHdy aXRpbmcgb3IKICAgICBlZGl0aW5nIGEgQyBtYWNybyBkZWZpbml0aW9uLgoKICAgICBJZiBhIGxp bmUgYWxyZWFkeSBlbmRzIGluIOKAmFzigJksIHRoaXMgY29tbWFuZCBhZGp1c3RzIHRoZSBhbW91 bnQgb2YKICAgICB3aGl0ZXNwYWNlIGJlZm9yZSBpdC4gIE90aGVyd2lzZSwgaXQgaW5zZXJ0cyBh IG5ldyDigJhc4oCZLiAgSG93ZXZlciwKICAgICB0aGUgbGFzdCBsaW5lIGluIHRoZSByZWdpb24g aXMgdHJlYXRlZCBzcGVjaWFsbHk7IG5vIOKAmFzigJkgaXMKICAgICBpbnNlcnRlZCBvbiB0aGF0 IGxpbmUsIGFuZCBhbnkg4oCYXOKAmSB0aGVyZSBpcyBkZWxldGVkLgoK4oCYTS14IGNwcC1oaWdo bGlnaHQtYnVmZmVy4oCZCiAgICAgSGlnaGxpZ2h0IHBhcnRzIG9mIHRoZSB0ZXh0IGFjY29yZGlu ZyB0byBpdHMgcHJlcHJvY2Vzc29yCiAgICAgY29uZGl0aW9uYWxzLiAgVGhpcyBjb21tYW5kIGRp c3BsYXlzIGFub3RoZXIgYnVmZmVyIG5hbWVkIOKAmCpDUFAKICAgICBFZGl0KuKAmSwgd2hpY2gg c2VydmVzIGFzIGEgZ3JhcGhpYyBtZW51IGZvciBzZWxlY3RpbmcgaG93IHRvIGRpc3BsYXkKICAg ICBwYXJ0aWN1bGFyIGtpbmRzIG9mIGNvbmRpdGlvbmFscyBhbmQgdGhlaXIgY29udGVudHMuICBB ZnRlcgogICAgIGNoYW5naW5nIHZhcmlvdXMgc2V0dGluZ3MsIGNsaWNrIG9uIOKAmFtBXXBwbHkg dGhlc2Ugc2V0dGluZ3PigJkgKG9yIGdvCiAgICAgdG8gdGhhdCBidWZmZXIgYW5kIHR5cGUg4oCY YeKAmSkgdG8gcmVoaWdobGlnaHQgdGhlIEMgbW9kZSBidWZmZXIKICAgICBhY2NvcmRpbmdseS4K CuKAmEMtYyBDLXPigJkKICAgICBEaXNwbGF5IHRoZSBzeW50YWN0aWMgaW5mb3JtYXRpb24gYWJv dXQgdGhlIGN1cnJlbnQgc291cmNlIGxpbmUKICAgICAo4oCYYy1zaG93LXN5bnRhY3RpYy1pbmZv cm1hdGlvbuKAmSkuICBUaGlzIGluZm9ybWF0aW9uIGRpcmVjdHMgaG93IHRoZQogICAgIGxpbmUg aXMgaW5kZW50ZWQuCgrigJhNLXggY3dhcm4tbW9kZeKAmQrigJhNLXggZ2xvYmFsLWN3YXJuLW1v ZGXigJkKICAgICBDV2FybiBtaW5vciBtb2RlIGhpZ2hsaWdodHMgY2VydGFpbiBzdXNwaWNpb3Vz IEMgYW5kIEMrKwogICAgIGNvbnN0cnVjdGlvbnM6CgogICAgICAgIOKAoiBBc3NpZ25tZW50cyBp bnNpZGUgZXhwcmVzc2lvbnMuCiAgICAgICAg4oCiIFNlbWljb2xvbiBmb2xsb3dpbmcgaW1tZWRp YXRlbHkgYWZ0ZXIg4oCYaWbigJksIOKAmGZvcuKAmSwgYW5kIOKAmHdoaWxl4oCZCiAgICAgICAg ICAoZXhjZXB0IGFmdGVyIGEg4oCYZG8g4oCmIHdoaWxl4oCZIHN0YXRlbWVudCk7CiAgICAgICAg 4oCiIEMrKyBmdW5jdGlvbnMgd2l0aCByZWZlcmVuY2UgcGFyYW1ldGVycy4KCiAgICAgWW91IGNh biBlbmFibGUgdGhlIG1vZGUgZm9yIG9uZSBidWZmZXIgd2l0aCB0aGUgY29tbWFuZCDigJhNLXgK ICAgICBjd2Fybi1tb2Rl4oCZLCBvciBmb3IgYWxsIHN1aXRhYmxlIGJ1ZmZlcnMgd2l0aCB0aGUg Y29tbWFuZCDigJhNLXgKICAgICBnbG9iYWwtY3dhcm4tbW9kZeKAmSBvciBieSBjdXN0b21pemlu ZyB0aGUgdmFyaWFibGUKICAgICDigJhnbG9iYWwtY3dhcm4tbW9kZeKAmS4gIFlvdSBtdXN0IGFs c28gZW5hYmxlIEZvbnQgTG9jayBtb2RlIHRvIG1ha2UKICAgICBpdCB3b3JrLgoK4oCYTS14IGhp ZGUtaWZkZWYtbW9kZeKAmQogICAgIEhpZGUtaWZkZWYgbWlub3IgbW9kZSBoaWRlcyBzZWxlY3Rl ZCBjb2RlIHdpdGhpbiDigJgjaWbigJkgYW5kIOKAmCNpZmRlZuKAmQogICAgIHByZXByb2Nlc3Nv ciBibG9ja3MuICBJZiB5b3UgY2hhbmdlIHRoZSB2YXJpYWJsZQogICAgIOKAmGhpZGUtaWZkZWYt c2hhZG934oCZIHRvIOKAmHTigJksIEhpZGUtaWZkZWYgbWlub3IgbW9kZSBzaGFkb3dzCiAgICAg cHJlcHJvY2Vzc29yIGJsb2NrcyBieSBkaXNwbGF5aW5nIHRoZW0gd2l0aCBhIGxlc3MgcHJvbWlu ZW50IGZhY2UsCiAgICAgaW5zdGVhZCBvZiBoaWRpbmcgdGhlbSBlbnRpcmVseS4gIFNlZSB0aGUg ZG9jdW1lbnRhdGlvbiBzdHJpbmcgb2YKICAgICDigJhoaWRlLWlmZGVmLW1vZGXigJkgZm9yIG1v cmUgaW5mb3JtYXRpb24uCgrigJhNLXggZmYtZmluZC1yZWxhdGVkLWZpbGXigJkKICAgICBGaW5k IGEgZmlsZSByZWxhdGVkIGluIGEgc3BlY2lhbCB3YXkgdG8gdGhlIGZpbGUgdmlzaXRlZCBieSB0 aGUKICAgICBjdXJyZW50IGJ1ZmZlci4gIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgdGhlIGhlYWRl ciBmaWxlCiAgICAgY29ycmVzcG9uZGluZyB0byBhIEMvQysrIHNvdXJjZSBmaWxlLCBvciB2aWNl IHZlcnNhLiAgVGhlIHZhcmlhYmxlCiAgICAg4oCYZmYtcmVsYXRlZC1maWxlLWFsaXN04oCZIHNw ZWNpZmllcyBob3cgdG8gY29tcHV0ZSByZWxhdGVkIGZpbGUKICAgICBuYW1lcy4KCgoqKiAyNi4x MyBBc20gTW9kZQoKQXNtIG1vZGUgaXMgYSBtYWpvciBtb2RlIGZvciBlZGl0aW5nIGZpbGVzIG9m IGFzc2VtYmxlciBjb2RlLiAgSXQKZGVmaW5lcyB0aGVzZSBjb21tYW5kczoKCuKAmDxUQUI+4oCZ CiAgICAg4oCYdGFiLXRvLXRhYi1zdG9w4oCZLgoK4oCYQy1q4oCZCiAgICAgSW5zZXJ0IGEgbmV3 bGluZSBhbmQgdGhlbiBpbmRlbnQgdXNpbmcg4oCYdGFiLXRvLXRhYi1zdG9w4oCZLgoK4oCYOuKA mQogICAgIEluc2VydCBhIGNvbG9uIGFuZCB0aGVuIHJlbW92ZSB0aGUgaW5kZW50YXRpb24gZnJv bSBiZWZvcmUgdGhlCiAgICAgbGFiZWwgcHJlY2VkaW5nIGNvbG9uLiAgVGhlbiBkbyDigJh0YWIt dG8tdGFiLXN0b3DigJkuCgrigJg74oCZCiAgICAgSW5zZXJ0IG9yIGFsaWduIGEgY29tbWVudC4K CiAgIFRoZSB2YXJpYWJsZSDigJhhc20tY29tbWVudC1jaGFy4oCZIHNwZWNpZmllcyB3aGljaCBj aGFyYWN0ZXIgc3RhcnRzCmNvbW1lbnRzIGluIGFzc2VtYmxlciBzeW50YXguCgoKKiogMjYuMTQg Rm9ydHJhbiBNb2RlCgpGb3J0cmFuIG1vZGUgaXMgbWVhbnQgZm9yIGVkaXRpbmcgZml4ZWQgZm9y bSAoYW5kIGFsc28gdGFiIGZvcm1hdCkKc291cmNlIGNvZGUgKG5vcm1hbGx5IEZvcnRyYW4gNzcp LiAgRm9yIGVkaXRpbmcgbW9yZSBtb2Rlcm4gZnJlZS1mb3JtCnNvdXJjZSBjb2RlIChGb3J0cmFu IDkwLCA5NSwgMjAwMywgMjAwOCksIHVzZSBGOTAgbW9kZSAo4oCYZjkwLW1vZGXigJkpLgpFbWFj cyBub3JtYWxseSB1c2VzIEZvcnRyYW4gbW9kZSBmb3IgZmlsZXMgd2l0aCBleHRlbnNpb24g4oCY LmbigJksIOKAmC5G4oCZIG9yCuKAmC5mb3LigJksIGFuZCBGOTAgbW9kZSBmb3IgdGhlIGV4dGVu c2lvbnMg4oCYLmY5MOKAmSwg4oCYLmY5NeKAmSwg4oCYLmYwM+KAmSBhbmQK4oCYLmYwOOKAmS4g IEN1c3RvbWl6ZSDigJhhdXRvLW1vZGUtYWxpc3TigJkgdG8gYWRkIG1vcmUgZXh0ZW5zaW9ucy4g IEdOVQpGb3J0cmFuIHN1cHBvcnRzIGJvdGggZnJlZSBhbmQgZml4ZWQgZm9ybS4gIFRoaXMgbWFu dWFsIG1haW5seSBkb2N1bWVudHMKRm9ydHJhbiBtb2RlLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcg RjkwIG1vZGUgZmVhdHVyZXMgYXJlIG1lbnRpb25lZCB3aGVuCnJlbGV2YW50LgoKICAgRm9ydHJh biBtb2RlIHByb3ZpZGVzIHNwZWNpYWwgbW90aW9uIGNvbW1hbmRzIGZvciBGb3J0cmFuIHN0YXRl bWVudHMKYW5kIHN1YnByb2dyYW1zLCBhbmQgaW5kZW50YXRpb24gY29tbWFuZHMgdGhhdCB1bmRl cnN0YW5kIEZvcnRyYW4KY29udmVudGlvbnMgb2YgbmVzdGluZywgbGluZSBudW1iZXJzIGFuZCBj b250aW51YXRpb24gc3RhdGVtZW50cy4KRm9ydHJhbiBtb2RlIGhhcyBzdXBwb3J0IGZvciBBdXRv IEZpbGwgbW9kZSB0aGF0IGJyZWFrcyBsb25nIGxpbmVzIGludG8KcHJvcGVyIEZvcnRyYW4gY29u dGludWF0aW9uIGxpbmVzLiAgRm9ydHJhbiBtb2RlIGFsc28gc3VwcG9ydHMgSGlkZXNob3cKbWlu b3IgbW9kZSAoKm5vdGUgSGlkZXNob3c6OiksIGFuZCBJbWVudSAoKm5vdGUgSW1lbnU6OikuCgog ICBTcGVjaWFsIGNvbW1hbmRzIGZvciBjb21tZW50cyBhcmUgcHJvdmlkZWQgYmVjYXVzZSBGb3J0 cmFuIGNvbW1lbnRzCmFyZSB1bmxpa2UgdGhvc2Ugb2Ygb3RoZXIgbGFuZ3VhZ2VzLiAgQnVpbHQt aW4gYWJicmV2cyBvcHRpb25hbGx5IHNhdmUKdHlwaW5nIHdoZW4geW91IGluc2VydCBGb3J0cmFu IGtleXdvcmRzLgoKICAgVXNlIOKAmE0teCBmb3J0cmFuLW1vZGXigJkgdG8gc3dpdGNoIHRvIHRo aXMgbWFqb3IgbW9kZS4gIFRoaXMgY29tbWFuZApydW5zIHRoZSBob29rIOKAmGZvcnRyYW4tbW9k ZS1ob29r4oCZLiAgKk5vdGUgSG9va3M6Oi4KCisgTWVudToKCiAgLSBNb3Rpb246IEZvcnRyYW4g TW90aW9uLiAgICAgICAgTW92aW5nIHBvaW50IGJ5IHN0YXRlbWVudHMgb3Igc3VicHJvZ3JhbXMu CiAgLSBJbmRlbnQ6IEZvcnRyYW4gSW5kZW50LiAgICAgICAgSW5kZW50YXRpb24gY29tbWFuZHMg Zm9yIEZvcnRyYW4uCiAgLSBDb21tZW50czogRm9ydHJhbiBDb21tZW50cy4gICAgSW5zZXJ0aW5n IGFuZCBhbGlnbmluZyBjb21tZW50cy4KICAtIEF1dG9maWxsOiBGb3J0cmFuIEF1dG9maWxsLiAg ICBBdXRvIGZpbGwgc3VwcG9ydCBmb3IgRm9ydHJhbi4KICAtIENvbHVtbnM6IEZvcnRyYW4gQ29s dW1ucy4gICAgICBNZWFzdXJpbmcgY29sdW1ucyBmb3IgdmFsaWQgRm9ydHJhbi4KICAtIEFiYnJl djogRm9ydHJhbiBBYmJyZXYuICAgICAgICBCdWlsdC1pbiBhYmJyZXZzIGZvciBGb3J0cmFuIGtl eXdvcmRzLgoKCioqKiAyNi4xNC4xIE1vdGlvbiBDb21tYW5kcwoKSW4gYWRkaXRpb24gdG8gdGhl IG5vcm1hbCBjb21tYW5kcyBmb3IgbW92aW5nIGJ5IGFuZCBvcGVyYXRpbmcgb24gZGVmdW5zCihG b3J0cmFuIHN1YnByb2dyYW1z4oCUZnVuY3Rpb25zIGFuZCBzdWJyb3V0aW5lcywgYXMgd2VsbCBh cyBtb2R1bGVzIGZvcgpGOTAgbW9kZSwgdXNpbmcgdGhlIGNvbW1hbmRzIOKAmGZvcnRyYW4tZW5k LW9mLXN1YnByb2dyYW3igJkgYW5kCuKAmGZvcnRyYW4tYmVnaW5uaW5nLW9mLXN1YnByb2dyYW3i gJkpLCBGb3J0cmFuIG1vZGUgcHJvdmlkZXMgc3BlY2lhbApjb21tYW5kcyB0byBtb3ZlIGJ5IHN0 YXRlbWVudHMgYW5kIG90aGVyIHByb2dyYW0gdW5pdHMuCgrigJhDLWMgQy1u4oCZCiAgICAgTW92 ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IHN0YXRlbWVudAogICAgICjigJhmb3J0cmFu LW5leHQtc3RhdGVtZW504oCZL+KAmGY5MC1uZXh0LXN0YXRlbWVudOKAmSkuCgrigJhDLWMgQy1w 4oCZCiAgICAgTW92ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcmV2aW91cyBzdGF0ZW1lbnQK ICAgICAo4oCYZm9ydHJhbi1wcmV2aW91cy1zdGF0ZW1lbnTigJkv4oCYZjkwLXByZXZpb3VzLXN0 YXRlbWVudOKAmSkuICBJZiB0aGVyZQogICAgIGlzIG5vIHByZXZpb3VzIHN0YXRlbWVudCAoaS5l LiwgaWYgY2FsbGVkIGZyb20gdGhlIGZpcnN0IHN0YXRlbWVudAogICAgIGluIHRoZSBidWZmZXIp LCBtb3ZlIHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVyLgoK4oCYQy1jIEMtZeKAmQogICAgIE1v dmUgcG9pbnQgZm9yd2FyZCB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY29kZSBibG9jaywgb3Ig dGhlIGVuZAogICAgIG9mIHRoZSBjdXJyZW50IG9uZSwgd2hpY2hldmVyIGNvbWVzIGZpcnN0ICji gJhmOTAtbmV4dC1ibG9ja+KAmSkuICBBCiAgICAgY29kZSBibG9jayBpcyBhIHN1YnJvdXRpbmUs IOKAmGlm4oCZ4oCT4oCYZW5kaWbigJkgc3RhdGVtZW50LCBhbmQgc28gZm9ydGguCiAgICAgVGhp cyBjb21tYW5kIGV4aXN0cyBmb3IgRjkwIG1vZGUgb25seSwgbm90IEZvcnRyYW4gbW9kZS4gIFdp dGggYQogICAgIG51bWVyaWMgYXJndW1lbnQsIGl0IG1vdmVzIGZvcndhcmQgdGhhdCBtYW55IGJs b2Nrcy4KCuKAmEMtYyBDLWHigJkKICAgICBNb3ZlIHBvaW50IGJhY2t3YXJkIHRvIHRoZSBwcmV2 aW91cyBibG9jayAo4oCYZjkwLXByZXZpb3VzLWJsb2Nr4oCZKS4KICAgICBUaGlzIGlzIGxpa2Ug 4oCYZjkwLW5leHQtYmxvY2vigJksIGJ1dCBtb3ZlcyBiYWNrd2FyZHMuCgrigJhDLU0tbuKAmQog ICAgIE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCBjb2RlIGJsb2NrCiAgICAgKOKAmGZv cnRyYW4tZW5kLW9mLWJsb2Nr4oCZL+KAmGY5MC1lbmQtb2YtYmxvY2vigJkpLiAgV2l0aCBhIG51 bWVyaWMKICAgICBhcmd1bWVudCwgbW92ZSBmb3J3YXJkIHRoYXQgbnVtYmVyIG9mIGJsb2Nrcy4g IFRoZSBtYXJrIGlzIHNldAogICAgIGJlZm9yZSBtb3ZpbmcgcG9pbnQuICBUaGUgRjkwIG1vZGUg dmVyc2lvbiBvZiB0aGlzIGNvbW1hbmQgY2hlY2tzCiAgICAgZm9yIGNvbnNpc3RlbmN5IG9mIGJs b2NrIHR5cGVzIGFuZCBsYWJlbHMgKGlmIHByZXNlbnQpLCBidXQgaXQgZG9lcwogICAgIG5vdCBj aGVjayB0aGUgb3V0ZXJtb3N0IGJsb2NrIHNpbmNlIHRoYXQgbWF5IGJlIGluY29tcGxldGUuCgri gJhDLU0tcOKAmQogICAgIE1vdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGNvZGUgYmxv Y2sKICAgICAo4oCYZm9ydHJhbi1iZWdpbm5pbmctb2YtYmxvY2vigJkv4oCYZjkwLWJlZ2lubmlu Zy1vZi1ibG9ja+KAmSkuICBUaGlzIGlzCiAgICAgbGlrZSDigJhmb3J0cmFuLWVuZC1vZi1ibG9j a+KAmSwgYnV0IG1vdmVzIGJhY2t3YXJkcy4KCiAgIFRoZSBjb21tYW5kcyDigJhmb3J0cmFuLWJl Z2lubmluZy1vZi1zdWJwcm9ncmFt4oCZIGFuZArigJhmb3J0cmFuLWVuZC1vZi1zdWJwcm9ncmFt 4oCZIG1vdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUgY3VycmVudApzdWJwcm9ncmFtLCBy ZXNwZWN0aXZlbHkuICBUaGUgY29tbWFuZHMg4oCYZm9ydHJhbi1tYXJrLWRv4oCZIGFuZArigJhm b3J0cmFuLW1hcmstaWbigJkgbWFyayB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IOKAmGRv4oCZIG9y IOKAmGlm4oCZIGJsb2NrLCBhbmQKbW92ZSBwb2ludCB0byB0aGUgc3RhcnQuCgoKKioqIDI2LjE0 LjIgRm9ydHJhbiBJbmRlbnRhdGlvbgoKU3BlY2lhbCBjb21tYW5kcyBhbmQgZmVhdHVyZXMgYXJl IG5lZWRlZCBmb3IgaW5kZW50aW5nIGZpeGVkIChvciB0YWIpCmZvcm0gRm9ydHJhbiBjb2RlIGlu IG9yZGVyIHRvIG1ha2Ugc3VyZSB2YXJpb3VzIHN5bnRhY3RpYyBlbnRpdGllcyAobGluZQpudW1i ZXJzLCBjb21tZW50IGxpbmUgaW5kaWNhdG9ycyBhbmQgY29udGludWF0aW9uIGxpbmUgZmxhZ3Mp IGFwcGVhciBpbgp0aGUgcmVxdWlyZWQgY29sdW1ucy4KCisgTWVudToKCiAgLSBDb21tYW5kczog Rm9ySW5kZW50IENvbW1hbmRzLiAgQ29tbWFuZHMgZm9yIGluZGVudGluZyBhbmQgZmlsbGluZyBG b3J0cmFuLgogIC0gQ29udGxpbmU6IEZvckluZGVudCBDb250LiAgICAgIEhvdyBjb250aW51YXRp b24gbGluZXMgaW5kZW50LgogIC0gTnVtYmVyczogIEZvckluZGVudCBOdW0uICAgICAgIEhvdyBs aW5lIG51bWJlcnMgYXV0by1pbmRlbnQuCiAgLSBDb252OiAgICAgRm9ySW5kZW50IENvbnYuICAg ICAgQ29udmVudGlvbnMgeW91IG11c3Qgb2JleSB0byBhdm9pZCB0cm91YmxlLgogIC0gVmFyczog ICAgIEZvckluZGVudCBWYXJzLiAgICAgIFZhcmlhYmxlcyBjb250cm9sbGluZyBGb3J0cmFuIGlu ZGVudCBzdHlsZS4KCgoqKioqIDI2LjE0LjIuMSBGb3J0cmFuIEluZGVudGF0aW9uIGFuZCBGaWxs aW5nIENvbW1hbmRzCgrigJhDLU0tauKAmQogICAgIEJyZWFrIHRoZSBjdXJyZW50IGxpbmUgYXQg cG9pbnQgYW5kIHNldCB1cCBhIGNvbnRpbnVhdGlvbiBsaW5lCiAgICAgKOKAmGZvcnRyYW4tc3Bs aXQtbGluZeKAmSkuCgrigJhNLV7igJkKICAgICBKb2luIHRoaXMgbGluZSB0byB0aGUgcHJldmlv dXMgbGluZSAo4oCYZm9ydHJhbi1qb2luLWxpbmXigJkpLgoK4oCYQy1NLXHigJkKICAgICBJbmRl bnQgYWxsIHRoZSBsaW5lcyBvZiB0aGUgc3VicHJvZ3JhbSB0aGF0IHBvaW50IGlzIGluCiAgICAg KOKAmGZvcnRyYW4taW5kZW50LXN1YnByb2dyYW3igJkpLgoK4oCYTS1x4oCZCiAgICAgRmlsbCBh IGNvbW1lbnQgYmxvY2sgb3Igc3RhdGVtZW50ICh1c2luZyDigJhmb3J0cmFuLWZpbGwtcGFyYWdy YXBo4oCZCiAgICAgb3Ig4oCYZm9ydHJhbi1maWxsLXN0YXRlbWVudOKAmSkuCgogICBUaGUga2V5 IOKAmEMtTS1x4oCZIHJ1bnMg4oCYZm9ydHJhbi1pbmRlbnQtc3VicHJvZ3JhbeKAmSwgYSBjb21t YW5kIHRvCnJlaW5kZW50IGFsbCB0aGUgbGluZXMgb2YgdGhlIEZvcnRyYW4gc3VicHJvZ3JhbSAo ZnVuY3Rpb24gb3IKc3Vicm91dGluZSkgY29udGFpbmluZyBwb2ludC4KCiAgIFRoZSBrZXkg4oCY Qy1NLWrigJkgcnVucyDigJhmb3J0cmFuLXNwbGl0LWxpbmXigJksIHdoaWNoIHNwbGl0cyBhIGxp bmUgaW4gdGhlCmFwcHJvcHJpYXRlIGZhc2hpb24gZm9yIEZvcnRyYW4uICBJbiBhIG5vbi1jb21t ZW50IGxpbmUsIHRoZSBzZWNvbmQgaGFsZgpiZWNvbWVzIGEgY29udGludWF0aW9uIGxpbmUgYW5k IGlzIGluZGVudGVkIGFjY29yZGluZ2x5LiAgSW4gYSBjb21tZW50CmxpbmUsIGJvdGggaGFsdmVz IGJlY29tZSBzZXBhcmF0ZSBjb21tZW50IGxpbmVzLgoKICAg4oCYTS1e4oCZIG9yIOKAmEMtYyBD LWTigJkgcnVuIHRoZSBjb21tYW5kIOKAmGZvcnRyYW4tam9pbi1saW5l4oCZLCB3aGljaCBqb2lu cyBhCmNvbnRpbnVhdGlvbiBsaW5lIGJhY2sgdG8gdGhlIHByZXZpb3VzIGxpbmUsIHJvdWdobHkg YXMgdGhlIGludmVyc2Ugb2YK4oCYZm9ydHJhbi1zcGxpdC1saW5l4oCZLiAgVGhlIHBvaW50IG11 c3QgYmUgb24gYSBjb250aW51YXRpb24gbGluZSB3aGVuCnRoaXMgY29tbWFuZCBpcyBpbnZva2Vk LgoKICAg4oCYTS1x4oCZIGluIEZvcnRyYW4gbW9kZSBmaWxscyB0aGUgY29tbWVudCBibG9jayBv ciBzdGF0ZW1lbnQgdGhhdCBwb2ludAppcyBpbi4gIFRoaXMgcmVtb3ZlcyBhbnkgZXhjZXNzIHN0 YXRlbWVudCBjb250aW51YXRpb25zLgoKCioqKiogMjYuMTQuMi4yIENvbnRpbnVhdGlvbiBMaW5l cwoKTW9zdCBGb3J0cmFuIDc3IGNvbXBpbGVycyBhbGxvdyB0d28gd2F5cyBvZiB3cml0aW5nIGNv bnRpbnVhdGlvbiBsaW5lcy4KSWYgdGhlIGZpcnN0IG5vbi1zcGFjZSBjaGFyYWN0ZXIgb24gYSBs aW5lIGlzIGluIGNvbHVtbiA1LCB0aGVuIHRoYXQKbGluZSBpcyBhIGNvbnRpbnVhdGlvbiBvZiB0 aGUgcHJldmlvdXMgbGluZS4gIFdlIGNhbGwgdGhpcyAiZml4ZWQgZm9ybSIuCihJbiBHTlUgRW1h Y3Mgd2UgYWx3YXlzIGNvdW50IGNvbHVtbnMgZnJvbSAwOyBidXQgbm90ZSB0aGF0IHRoZSBGb3J0 cmFuCnN0YW5kYXJkIGNvdW50cyBmcm9tIDEuICBZb3UgY2FuIGN1c3RvbWl6ZSB0aGUgdmFyaWFi bGUK4oCYY29sdW1uLW51bWJlci1pbmRpY2F0b3ItemVyby1iYXNlZOKAmSB0byBtYWtlIHRoZSBj b2x1bW4gZGlzcGxheQpGb3J0cmFuLWxpa2U7ICpub3RlIE9wdGlvbmFsIE1vZGUgTGluZTo6Likg IFRoZSB2YXJpYWJsZQrigJhmb3J0cmFuLWNvbnRpbnVhdGlvbi1zdHJpbmfigJkgc3BlY2lmaWVz IHdoYXQgY2hhcmFjdGVyIHRvIHB1dCBpbiBjb2x1bW4KNS4gIEEgbGluZSB0aGF0IHN0YXJ0cyB3 aXRoIGEgdGFiIGNoYXJhY3RlciBmb2xsb3dlZCBieSBhbnkgZGlnaXQgZXhjZXB0CuKAmDDigJkg aXMgYWxzbyBhIGNvbnRpbnVhdGlvbiBsaW5lLiAgV2UgY2FsbCB0aGlzIHN0eWxlIG9mIGNvbnRp bnVhdGlvbgoidGFiIGZvcm1hdCIuICAoRm9ydHJhbiA5MCBpbnRyb2R1Y2VkIGZyZWUtZm9ybSBj b250aW51YXRpb24gbGluZXMuKQoKICAgRm9ydHJhbiBtb2RlIGNhbiB1c2UgZWl0aGVyIHN0eWxl IG9mIGNvbnRpbnVhdGlvbiBsaW5lLiAgV2hlbiB5b3UKZW50ZXIgRm9ydHJhbiBtb2RlLCBpdCB0 cmllcyB0byBkZWR1Y2UgdGhlIHByb3BlciBjb250aW51YXRpb24gc3R5bGUKYXV0b21hdGljYWxs eSBmcm9tIHRoZSBidWZmZXIgY29udGVudHMuICBJdCBkb2VzIHRoaXMgYnkgc2Nhbm5pbmcgdXAg dG8K4oCYZm9ydHJhbi1hbmFseXplLWRlcHRo4oCZIChkZWZhdWx0IDEwMCkgbGluZXMgZnJvbSB0 aGUgc3RhcnQgb2YgdGhlCmJ1ZmZlci4gIFRoZSBmaXJzdCBsaW5lIHRoYXQgYmVnaW5zIHdpdGgg ZWl0aGVyIGEgdGFiIGNoYXJhY3RlciBvciBzaXgKc3BhY2VzIGRldGVybWluZXMgdGhlIGNob2lj ZS4gIElmIHRoZSBzY2FuIGZhaWxzIChmb3IgZXhhbXBsZSwgaWYgdGhlCmJ1ZmZlciBpcyBuZXcg YW5kIHRoZXJlZm9yZSBlbXB0eSksIHRoZSB2YWx1ZSBvZgrigJhmb3J0cmFuLXRhYi1tb2RlLWRl ZmF1bHTigJkgKOKAmG5pbOKAmSBmb3IgZml4ZWQgZm9ybSwgYW5kIG5vbi3igJhuaWzigJkgZm9y IHRhYgpmb3JtYXQpIGlzIHVzZWQuICDigJgvdOKAmSAo4oCYZm9ydHJhbi10YWItbW9kZS1zdHJp bmfigJkpIGluIHRoZSBtb2RlIGxpbmUKaW5kaWNhdGVzIHRhYiBmb3JtYXQgaXMgc2VsZWN0ZWQu ICBGb3J0cmFuIG1vZGUgc2V0cyB0aGUgdmFsdWUgb2YK4oCYaW5kZW50LXRhYnMtbW9kZeKAmSBh Y2NvcmRpbmdseS4KCiAgIElmIHRoZSB0ZXh0IG9uIGEgbGluZSBzdGFydHMgd2l0aCB0aGUgRm9y dHJhbiBjb250aW51YXRpb24gbWFya2VyCuKAmCTigJksIG9yIGlmIGl0IGJlZ2lucyB3aXRoIGFu eSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXIgaW4gY29sdW1uIDUsCkZvcnRyYW4gbW9kZSB0cmVh dHMgaXQgYXMgYSBjb250aW51YXRpb24gbGluZS4gIFdoZW4geW91IGluZGVudCBhCmNvbnRpbnVh dGlvbiBsaW5lIHdpdGgg4oCYPFRBQj7igJksIGl0IGNvbnZlcnRzIHRoZSBsaW5lIHRvIHRoZSBj dXJyZW50CmNvbnRpbnVhdGlvbiBzdHlsZS4gIFdoZW4geW91IHNwbGl0IGEgRm9ydHJhbiBzdGF0 ZW1lbnQgd2l0aCDigJhDLU0tauKAmSwKdGhlIGNvbnRpbnVhdGlvbiBtYXJrZXIgb24gdGhlIG5l d2xpbmUgaXMgY3JlYXRlZCBhY2NvcmRpbmcgdG8gdGhlCmNvbnRpbnVhdGlvbiBzdHlsZS4KCiAg IFRoZSBzZXR0aW5nIG9mIGNvbnRpbnVhdGlvbiBzdHlsZSBhZmZlY3RzIHNldmVyYWwgb3RoZXIg YXNwZWN0cyBvZgplZGl0aW5nIGluIEZvcnRyYW4gbW9kZS4gIEluIGZpeGVkIGZvcm0gbW9kZSwg dGhlIG1pbmltdW0gY29sdW1uIG51bWJlcgpmb3IgdGhlIGJvZHkgb2YgYSBzdGF0ZW1lbnQgaXMg Ni4gIExpbmVzIGluc2lkZSBvZiBGb3J0cmFuIGJsb2NrcyB0aGF0CmFyZSBpbmRlbnRlZCB0byBs YXJnZXIgY29sdW1uIG51bWJlcnMgbXVzdCB1c2Ugb25seSB0aGUgc3BhY2UgY2hhcmFjdGVyCmZv ciB3aGl0ZXNwYWNlLiAgSW4gdGFiIGZvcm1hdCBtb2RlLCB0aGUgbWluaW11bSBjb2x1bW4gbnVt YmVyIGZvciB0aGUKc3RhdGVtZW50IGJvZHkgaXMgOCwgYW5kIHRoZSB3aGl0ZXNwYWNlIGJlZm9y ZSBjb2x1bW4gOCBtdXN0IGNvbnNpc3Qgb2YKb25lIHRhYiBjaGFyYWN0ZXIuCgoKKioqKiAyNi4x NC4yLjMgTGluZSBOdW1iZXJzCgpJZiBhIG51bWJlciBpcyB0aGUgZmlyc3Qgbm9uLXdoaXRlc3Bh Y2UgaW4gdGhlIGxpbmUsIEZvcnRyYW4gaW5kZW50YXRpb24KYXNzdW1lcyBpdCBpcyBhIGxpbmUg bnVtYmVyIGFuZCBtb3ZlcyBpdCB0byBjb2x1bW5zIDAgdGhyb3VnaCA0LgooQ29sdW1ucyBhbHdh eXMgY291bnQgZnJvbSAwIGluIEVtYWNzLCBidXQgc2V0dGluZwrigJhjb2x1bW4tbnVtYmVyLWlu ZGljYXRvci16ZXJvLWJhc2Vk4oCZIHRvIOKAmG5pbOKAmSBjYW4gY2hhbmdlIHRoYXQsICpub3Rl Ck9wdGlvbmFsIE1vZGUgTGluZTo6LikKCiAgIExpbmUgbnVtYmVycyBvZiBmb3VyIGRpZ2l0cyBv ciBsZXNzIGFyZSBub3JtYWxseSBpbmRlbnRlZCBvbmUgc3BhY2UuClRoZSB2YXJpYWJsZSDigJhm b3J0cmFuLWxpbmUtbnVtYmVyLWluZGVudOKAmSBjb250cm9scyB0aGlzOyBpdCBzcGVjaWZpZXMK dGhlIG1heGltdW0gaW5kZW50YXRpb24gYSBsaW5lIG51bWJlciBjYW4gaGF2ZS4gIFRoZSBkZWZh dWx0IHZhbHVlIG9mCnRoZSB2YXJpYWJsZSBpcyAxLiAgRm9ydHJhbiBtb2RlIHRyaWVzIHRvIHBy ZXZlbnQgbGluZSBudW1iZXIgZGlnaXRzCnBhc3NpbmcgY29sdW1uIDQsIHJlZHVjaW5nIHRoZSBp bmRlbnRhdGlvbiBiZWxvdyB0aGUgc3BlY2lmaWVkIG1heGltdW0KaWYgbmVjZXNzYXJ5LiAgSWYg 4oCYZm9ydHJhbi1saW5lLW51bWJlci1pbmRlbnTigJkgaGFzIHRoZSB2YWx1ZSA1LCBsaW5lCm51 bWJlcnMgYXJlIHJpZ2h0LWp1c3RpZmllZCB0byBlbmQgaW4gY29sdW1uIDQuCgogICBTaW1wbHkg aW5zZXJ0aW5nIGEgbGluZSBudW1iZXIgaXMgZW5vdWdoIHRvIGluZGVudCBpdCBhY2NvcmRpbmcg dG8KdGhlc2UgcnVsZXMuICBBcyBlYWNoIGRpZ2l0IGlzIGluc2VydGVkLCB0aGUgaW5kZW50YXRp b24gaXMgcmVjb21wdXRlZC4KVG8gdHVybiBvZmYgdGhpcyBmZWF0dXJlLCBzZXQgdGhlIHZhcmlh YmxlCuKAmGZvcnRyYW4tZWxlY3RyaWMtbGluZS1udW1iZXLigJkgdG8g4oCYbmls4oCZLgoKCioq KiogMjYuMTQuMi40IFN5bnRhY3RpYyBDb252ZW50aW9ucwoKRm9ydHJhbiBtb2RlIGFzc3VtZXMg dGhhdCB5b3UgZm9sbG93IGNlcnRhaW4gY29udmVudGlvbnMgdGhhdCBzaW1wbGlmeQp0aGUgdGFz ayBvZiB1bmRlcnN0YW5kaW5nIGEgRm9ydHJhbiBwcm9ncmFtIHdlbGwgZW5vdWdoIHRvIGluZGVu dCBpdApwcm9wZXJseToKCiAgIOKAoiBUd28gbmVzdGVkIOKAmGRv4oCZIGxvb3BzIG5ldmVyIHNo YXJlIGEg4oCYY29udGludWXigJkgc3RhdGVtZW50LgoKICAg4oCiIEZvcnRyYW4ga2V5d29yZHMg c3VjaCBhcyDigJhpZuKAmSwg4oCYZWxzZeKAmSwg4oCYdGhlbuKAmSwg4oCYZG/igJkgYW5kIG90 aGVycyBhcmUKICAgICB3cml0dGVuIHdpdGhvdXQgZW1iZWRkZWQgd2hpdGVzcGFjZSBvciBsaW5l IGJyZWFrcy4KCiAgICAgRm9ydHJhbiBjb21waWxlcnMgZ2VuZXJhbGx5IGlnbm9yZSB3aGl0ZXNw YWNlIG91dHNpZGUgb2Ygc3RyaW5nCiAgICAgY29uc3RhbnRzLCBidXQgRm9ydHJhbiBtb2RlIGRv ZXMgbm90IHJlY29nbml6ZSB0aGVzZSBrZXl3b3JkcyBpZgogICAgIHRoZXkgYXJlIG5vdCBjb250 aWd1b3VzLiAgQ29uc3RydWN0cyBzdWNoIGFzIOKAmGVsc2UgaWbigJkgb3Ig4oCYZW5kIGRv4oCZ CiAgICAgYXJlIGFjY2VwdGFibGUsIGJ1dCB0aGUgc2Vjb25kIHdvcmQgc2hvdWxkIGJlIG9uIHRo ZSBzYW1lIGxpbmUgYXMKICAgICB0aGUgZmlyc3QgYW5kIG5vdCBvbiBhIGNvbnRpbnVhdGlvbiBs aW5lLgoKSWYgeW91IGZhaWwgdG8gZm9sbG93IHRoZXNlIGNvbnZlbnRpb25zLCB0aGUgaW5kZW50 YXRpb24gY29tbWFuZHMgbWF5CmluZGVudCBzb21lIGxpbmVzIHVuYWVzdGhldGljYWxseS4gIEhv d2V2ZXIsIGEgY29ycmVjdCBGb3J0cmFuIHByb2dyYW0KcmV0YWlucyBpdHMgbWVhbmluZyB3aGVu IHJlaW5kZW50ZWQgZXZlbiBpZiB0aGUgY29udmVudGlvbnMgYXJlIG5vdApmb2xsb3dlZC4KCgoq KioqIDI2LjE0LjIuNSBWYXJpYWJsZXMgZm9yIEZvcnRyYW4gSW5kZW50YXRpb24KClNldmVyYWwg YWRkaXRpb25hbCB2YXJpYWJsZXMgY29udHJvbCBob3cgRm9ydHJhbiBpbmRlbnRhdGlvbiB3b3Jr czoKCuKAmGZvcnRyYW4tZG8taW5kZW504oCZCiAgICAgRXh0cmEgaW5kZW50YXRpb24gd2l0aGlu IGVhY2ggbGV2ZWwgb2Yg4oCYZG/igJkgc3RhdGVtZW50IChkZWZhdWx0IDMpLgoK4oCYZm9ydHJh bi1pZi1pbmRlbnTigJkKICAgICBFeHRyYSBpbmRlbnRhdGlvbiB3aXRoaW4gZWFjaCBsZXZlbCBv ZiDigJhpZuKAmSwg4oCYc2VsZWN0IGNhc2XigJksIG9yCiAgICAg4oCYd2hlcmXigJkgc3RhdGVt ZW50cyAoZGVmYXVsdCAzKS4KCuKAmGZvcnRyYW4tc3RydWN0dXJlLWluZGVudOKAmQogICAgIEV4 dHJhIGluZGVudGF0aW9uIHdpdGhpbiBlYWNoIGxldmVsIG9mIOKAmHN0cnVjdHVyZeKAmSwg4oCY dW5pb27igJksIOKAmG1hcOKAmSwKICAgICBvciDigJhpbnRlcmZhY2XigJkgc3RhdGVtZW50cyAo ZGVmYXVsdCAzKS4KCuKAmGZvcnRyYW4tY29udGludWF0aW9uLWluZGVudOKAmQogICAgIEV4dHJh IGluZGVudGF0aW9uIGZvciBib2RpZXMgb2YgY29udGludWF0aW9uIGxpbmVzIChkZWZhdWx0IDUp LgoK4oCYZm9ydHJhbi1jaGVjay1hbGwtbnVtLWZvci1tYXRjaGluZy1kb+KAmQogICAgIEluIEZv cnRyYW4gNzcsIGEgbnVtYmVyZWQg4oCYZG/igJkgc3RhdGVtZW50IGlzIHRlcm1pbmF0ZWQgYnkg YW55CiAgICAgc3RhdGVtZW50IHdpdGggYSBtYXRjaGluZyBsaW5lIG51bWJlci4gIEl0IGlzIGNv bW1vbiAoYnV0IG5vdAogICAgIGNvbXB1bHNvcnkpIHRvIHVzZSBhIOKAmGNvbnRpbnVl4oCZIHN0 YXRlbWVudCBmb3IgdGhpcyBwdXJwb3NlLiAgSWYKICAgICB0aGlzIHZhcmlhYmxlIGhhcyBhIG5v bi3igJhuaWzigJkgdmFsdWUsIGluZGVudGluZyBhbnkgbnVtYmVyZWQKICAgICBzdGF0ZW1lbnQg bXVzdCBjaGVjayBmb3IgYSDigJhkb+KAmSB0aGF0IGVuZHMgdGhlcmUuICBJZiB5b3UgYWx3YXlz IGVuZAogICAgIOKAmGRv4oCZIHN0YXRlbWVudHMgd2l0aCBhIOKAmGNvbnRpbnVl4oCZIGxpbmUg KG9yIGlmIHlvdSB1c2UgdGhlIG1vcmUKICAgICBtb2Rlcm4g4oCYZW5kZG/igJkpLCB0aGVuIHlv dSBjYW4gc3BlZWQgdXAgaW5kZW50YXRpb24gYnkgc2V0dGluZyB0aGlzCiAgICAgdmFyaWFibGUg dG8g4oCYbmls4oCZICh0aGUgZGVmYXVsdCkuCgrigJhmb3J0cmFuLWJsaW5rLW1hdGNoaW5nLWlm 4oCZCiAgICAgSWYgdGhpcyBpcyDigJh04oCZLCBpbmRlbnRpbmcgYW4g4oCYZW5kaWbigJkgKG9y IOKAmGVuZGRv4oCZKSBzdGF0ZW1lbnQgbW92ZXMKICAgICB0aGUgY3Vyc29yIG1vbWVudGFyaWx5 IHRvIHRoZSBtYXRjaGluZyDigJhpZuKAmSAob3Ig4oCYZG/igJkpIHN0YXRlbWVudCB0bwogICAg IHNob3cgd2hlcmUgaXQgaXMuICBUaGUgZGVmYXVsdCBpcyDigJhuaWzigJkuCgrigJhmb3J0cmFu LW1pbmltdW0tc3RhdGVtZW50LWluZGVudC1maXhlZOKAmQogICAgIE1pbmltdW0gaW5kZW50YXRp b24gZm9yIEZvcnRyYW4gc3RhdGVtZW50cyB3aGVuIHVzaW5nIGZpeGVkIGZvcm0KICAgICBjb250 aW51YXRpb24gbGluZSBzdHlsZS4gIFN0YXRlbWVudCBib2RpZXMgYXJlIG5ldmVyIGluZGVudGVk IGJ5CiAgICAgbGVzcyB0aGFuIHRoaXMuICBUaGUgZGVmYXVsdCBpcyA2LgoK4oCYZm9ydHJhbi1t aW5pbXVtLXN0YXRlbWVudC1pbmRlbnQtdGFi4oCZCiAgICAgTWluaW11bSBpbmRlbnRhdGlvbiBm b3IgRm9ydHJhbiBzdGF0ZW1lbnRzIGZvciB0YWIgZm9ybWF0CiAgICAgY29udGludWF0aW9uIGxp bmUgc3R5bGUuICBTdGF0ZW1lbnQgYm9kaWVzIGFyZSBuZXZlciBpbmRlbnRlZCBieQogICAgIGxl c3MgdGhhbiB0aGlzLiAgVGhlIGRlZmF1bHQgaXMgOC4KCiAgIFRoZSBmb2xsb3dpbmcgc2VjdGlv biBkZXNjcmliZXMgdGhlIHZhcmlhYmxlcyBjb250cm9sbGluZyB0aGUKaW5kZW50YXRpb24gb2Yg Y29tbWVudHMuCgoKKioqIDI2LjE0LjMgRm9ydHJhbiBDb21tZW50cwoKVGhlIHVzdWFsIEVtYWNz IGNvbW1lbnQgY29tbWFuZHMgYXNzdW1lIHRoYXQgYSBjb21tZW50IGNhbiBmb2xsb3cgYSBsaW5l Cm9mIGNvZGUuICBJbiBGb3J0cmFuIDc3LCB0aGUgc3RhbmRhcmQgY29tbWVudCBzeW50YXggcmVx dWlyZXMgYW4gZW50aXJlCmxpbmUgdG8gYmUganVzdCBhIGNvbW1lbnQuICBUaGVyZWZvcmUsIEZv cnRyYW4gbW9kZSByZXBsYWNlcyB0aGUKc3RhbmRhcmQgRW1hY3MgY29tbWVudCBjb21tYW5kcyBh bmQgZGVmaW5lcyBzb21lIG5ldyB2YXJpYWJsZXMuCgogICBGb3J0cmFuIG1vZGUgY2FuIGFsc28g aGFuZGxlIHRoZSBGb3J0cmFuIDkwIGNvbW1lbnQgc3ludGF4IHdoZXJlCmNvbW1lbnRzIHN0YXJ0 IHdpdGgg4oCYIeKAmSBhbmQgY2FuIGZvbGxvdyBvdGhlciB0ZXh0LiAgQmVjYXVzZSBvbmx5IHNv bWUKRm9ydHJhbiA3NyBjb21waWxlcnMgYWNjZXB0IHRoaXMgc3ludGF4LCBGb3J0cmFuIG1vZGUg d2lsbCBub3QgaW5zZXJ0CnN1Y2ggY29tbWVudHMgdW5sZXNzIHlvdSBoYXZlIHNhaWQgaW4gYWR2 YW5jZSB0byBkbyBzby4gIFRvIGRvIHRoaXMsIHNldAp0aGUgdmFyaWFibGUg4oCYZm9ydHJhbi1j b21tZW50LWxpbmUtc3RhcnTigJkgdG8g4oCYIiEi4oCZLiAgSWYgeW91IHVzZSBhbgp1bnVzdWFs IHZhbHVlLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIOKAmGZvcnRyYW4tY29tbWVudC1saW5lLXN0 YXJ0LXNraXDigJkuCgrigJhNLTvigJkKICAgICBBbGlnbiBjb21tZW50IG9yIGluc2VydCBuZXcg Y29tbWVudCAo4oCYY29tbWVudC1kd2lt4oCZKS4KCuKAmEMteCA74oCZCiAgICAgQXBwbGllcyB0 byBub25zdGFuZGFyZCDigJgh4oCZIGNvbW1lbnRzIG9ubHkgKOKAmGNvbW1lbnQtc2V0LWNvbHVt buKAmSkuCgrigJhDLWMgO+KAmQogICAgIFR1cm4gYWxsIGxpbmVzIG9mIHRoZSByZWdpb24gaW50 byBjb21tZW50cywgb3IgKHdpdGggYXJndW1lbnQpIHR1cm4KICAgICB0aGVtIGJhY2sgaW50byBy ZWFsIGNvZGUgKOKAmGZvcnRyYW4tY29tbWVudC1yZWdpb27igJkpLgoKICAg4oCYTS074oCZIGlu IEZvcnRyYW4gbW9kZSBydW5zIHRoZSBzdGFuZGFyZCDigJhjb21tZW50LWR3aW3igJkuICBUaGlz CnJlY29nbml6ZXMgYW55IGtpbmQgb2YgZXhpc3RpbmcgY29tbWVudCBhbmQgYWxpZ25zIGl0cyB0 ZXh0CmFwcHJvcHJpYXRlbHk7IGlmIHRoZXJlIGlzIG5vIGV4aXN0aW5nIGNvbW1lbnQsIGEgY29t bWVudCBpcyBpbnNlcnRlZAphbmQgYWxpZ25lZC4gIEluc2VydGluZyBhbmQgYWxpZ25pbmcgY29t bWVudHMgYXJlIG5vdCB0aGUgc2FtZSBpbgpGb3J0cmFuIG1vZGUgYXMgaW4gb3RoZXIgbW9kZXMu CgogICBXaGVuIGEgbmV3IGNvbW1lbnQgbXVzdCBiZSBpbnNlcnRlZCwgaWYgdGhlIGN1cnJlbnQg bGluZSBpcyBibGFuaywgYQpmdWxsLWxpbmUgY29tbWVudCBpcyBpbnNlcnRlZC4gIE9uIGEgbm9u LWJsYW5rIGxpbmUsIGEgbm9uc3RhbmRhcmQg4oCYIeKAmQpjb21tZW50IGlzIGluc2VydGVkIGlm IHlvdSBoYXZlIHNhaWQgeW91IHdhbnQgdG8gdXNlIHRoZW0uICBPdGhlcndpc2UsIGEKZnVsbC1s aW5lIGNvbW1lbnQgaXMgaW5zZXJ0ZWQgb24gYSBuZXcgbGluZSBiZWZvcmUgdGhlIGN1cnJlbnQg bGluZS4KCiAgIE5vbnN0YW5kYXJkIOKAmCHigJkgY29tbWVudHMgYXJlIGFsaWduZWQgbGlrZSBj b21tZW50cyBpbiBvdGhlcgpsYW5ndWFnZXMsIGJ1dCBmdWxsLWxpbmUgY29tbWVudHMgYXJlIGRp ZmZlcmVudC4gIEluIGEgc3RhbmRhcmQKZnVsbC1saW5lIGNvbW1lbnQsIHRoZSBjb21tZW50IGRl bGltaXRlciBpdHNlbGYgbXVzdCBhbHdheXMgYXBwZWFyIGluCmNvbHVtbiB6ZXJvLiAgV2hhdCBj YW4gYmUgYWxpZ25lZCBpcyB0aGUgdGV4dCB3aXRoaW4gdGhlIGNvbW1lbnQuICBZb3UKY2FuIGNo b29zZSBmcm9tIHRocmVlIHN0eWxlcyBvZiBhbGlnbm1lbnQgYnkgc2V0dGluZyB0aGUgdmFyaWFi bGUK4oCYZm9ydHJhbi1jb21tZW50LWluZGVudC1zdHlsZeKAmSB0byBvbmUgb2YgdGhlc2UgdmFs dWVzOgoK4oCYZml4ZWTigJkKICAgICBBbGlnbiB0aGUgdGV4dCBhdCBhIGZpeGVkIGNvbHVtbiwg d2hpY2ggaXMgdGhlIHN1bSBvZgogICAgIOKAmGZvcnRyYW4tY29tbWVudC1saW5lLWV4dHJhLWlu ZGVudOKAmSBhbmQgdGhlIG1pbmltdW0gc3RhdGVtZW50CiAgICAgaW5kZW50YXRpb24uICBUaGlz IGlzIHRoZSBkZWZhdWx0LgoKICAgICBUaGUgbWluaW11bSBpbmRlbnRhdGlvbiBpcyDigJhmb3J0 cmFuLW1pbmltdW0tc3RhdGVtZW50LWluZGVudC10YWLigJkKICAgICBmb3IgdGFiIGZvcm1hdCBj b250aW51YXRpb24gbGluZSBzdHlsZSBhbmQKICAgICDigJhmb3J0cmFuLW1pbmltdW0tc3RhdGVt ZW50LWluZGVudC1maXhlZOKAmSBmb3IgZml4ZWQgZm9ybSBzdHlsZS4KCuKAmHJlbGF0aXZl4oCZ CiAgICAgQWxpZ24gdGhlIHRleHQgYXMgaWYgaXQgd2VyZSBhIGxpbmUgb2YgY29kZSwgYnV0IHdp dGggYW4gYWRkaXRpb25hbAogICAgIOKAmGZvcnRyYW4tY29tbWVudC1saW5lLWV4dHJhLWluZGVu dOKAmSBjb2x1bW5zIG9mIGluZGVudGF0aW9uLgoK4oCYbmls4oCZCiAgICAgRG9u4oCZdCBtb3Zl IHRleHQgaW4gZnVsbC1saW5lIGNvbW1lbnRzIGF1dG9tYXRpY2FsbHkuCgogICBJbiBhZGRpdGlv biwgeW91IGNhbiBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgdG8gYmUgdXNlZCB0byBpbmRlbnQKd2l0 aGluIGZ1bGwtbGluZSBjb21tZW50cyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZQrigJhmb3J0cmFu LWNvbW1lbnQtaW5kZW50LWNoYXLigJkgdG8gdGhlIHNpbmdsZS1jaGFyYWN0ZXIgc3RyaW5nIHlv dSB3YW50IHRvCnVzZS4KCiAgIENvbXBpbGVyIGRpcmVjdGl2ZSBsaW5lcywgb3IgcHJlcHJvY2Vz c29yIGxpbmVzLCBoYXZlIG11Y2ggdGhlIHNhbWUKYXBwZWFyYW5jZSBhcyBjb21tZW50IGxpbmVz LiAgSXQgaXMgaW1wb3J0YW50LCB0aG91Z2gsIHRoYXQgc3VjaCBsaW5lcwpuZXZlciBiZSBpbmRl bnRlZCBhdCBhbGwsIG5vIG1hdHRlciB3aGF0IHRoZSB2YWx1ZSBvZgrigJhmb3J0cmFuLWNvbW1l bnQtaW5kZW50LXN0eWxl4oCZLiAgVGhlIHZhcmlhYmxlIOKAmGZvcnRyYW4tZGlyZWN0aXZlLXJl 4oCZIGlzCmEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgc3BlY2lmaWVzIHdoaWNoIGxpbmVzIGFy ZSBkaXJlY3RpdmVzLgpNYXRjaGluZyBsaW5lcyBhcmUgbmV2ZXIgaW5kZW50ZWQsIGFuZCByZWNl aXZlIGRpc3RpbmN0aXZlIGZvbnQtbG9ja2luZy4KCiAgIFRoZSBub3JtYWwgRW1hY3MgY29tbWVu dCBjb21tYW5kIOKAmEMteCA74oCZICjigJhjb21tZW50LXNldC1jb2x1bW7igJkpIGhhcwpub3Qg YmVlbiByZWRlZmluZWQuICBJZiB5b3UgdXNlIOKAmCHigJkgY29tbWVudHMsIHRoaXMgY29tbWFu ZCBjYW4gYmUgdXNlZAp3aXRoIHRoZW0uICBPdGhlcndpc2UsIGl0IGlzIHVzZWxlc3MgaW4gRm9y dHJhbiBtb2RlLgoKICAgVGhlIGNvbW1hbmQg4oCYQy1jIDvigJkgKOKAmGZvcnRyYW4tY29tbWVu dC1yZWdpb27igJkpIHR1cm5zIGFsbCB0aGUgbGluZXMgb2YKdGhlIHJlZ2lvbiBpbnRvIGNvbW1l bnRzIGJ5IGluc2VydGluZyB0aGUgc3RyaW5nIOKAmGMkJCTigJkgYXQgdGhlIGZyb250IG9mCmVh Y2ggb25lLiAgV2l0aCBhIG51bWVyaWMgYXJndW1lbnQsIGl0IHR1cm5zIHRoZSByZWdpb24gYmFj ayBpbnRvIGxpdmUKY29kZSBieSBkZWxldGluZyDigJhjJCQk4oCZIGZyb20gdGhlIGZyb250IG9m IGVhY2ggbGluZSBpbiBpdC4gIFRoZSBzdHJpbmcKdXNlZCBmb3IgdGhlc2UgY29tbWVudHMgY2Fu IGJlIGNvbnRyb2xsZWQgYnkgc2V0dGluZyB0aGUgdmFyaWFibGUK4oCYZm9ydHJhbi1jb21tZW50 LXJlZ2lvbuKAmS4gIE5vdGUgdGhhdCBoZXJlIHdlIGhhdmUgYW4gZXhhbXBsZSBvZiBhCmNvbW1h bmQgYW5kIGEgdmFyaWFibGUgd2l0aCB0aGUgc2FtZSBuYW1lOyB0aGVzZSB0d28gdXNlcyBvZiB0 aGUgbmFtZQpuZXZlciBjb25mbGljdCBiZWNhdXNlIGluIExpc3AgYW5kIGluIEVtYWNzIGl0IGlz IGFsd2F5cyBjbGVhciBmcm9tIHRoZQpjb250ZXh0IHdoaWNoIG9uZSBpcyBtZWFudC4KCgoqKiog MjYuMTQuNCBBdXRvIEZpbGwgaW4gRm9ydHJhbiBNb2RlCgpGb3J0cmFuIG1vZGUgaGFzIHNwZWNp YWxpemVkIHN1cHBvcnQgZm9yIEF1dG8gRmlsbCBtb2RlLCB3aGljaCBpcyBhCm1pbm9yIG1vZGUg dGhhdCBhdXRvbWF0aWNhbGx5IHNwbGl0cyBzdGF0ZW1lbnRzIGFzIHlvdSBpbnNlcnQgdGhlbSB3 aGVuCnRoZXkgYmVjb21lIHRvbyB3aWRlLiAgU3BsaXR0aW5nIGEgc3RhdGVtZW50IGludm9sdmVz IG1ha2luZwpjb250aW51YXRpb24gbGluZXMgdXNpbmcg4oCYZm9ydHJhbi1jb250aW51YXRpb24t c3RyaW5n4oCZICgqbm90ZSBGb3JJbmRlbnQKQ29udDo6KS4gIFRoaXMgc3BsaXR0aW5nIGhhcHBl bnMgd2hlbiB5b3UgdHlwZSDigJg8U1BDPuKAmSwg4oCYPFJFVD7igJksIG9yCuKAmDxUQUI+4oCZ LCBhbmQgYWxzbyBpbiB0aGUgRm9ydHJhbiBpbmRlbnRhdGlvbiBjb21tYW5kcy4gIFlvdSBhY3Rp dmF0ZQpBdXRvIEZpbGwgaW4gRm9ydHJhbiBtb2RlIGluIHRoZSBub3JtYWwgd2F5LiAgKk5vdGUg QXV0byBGaWxsOjouCgogICBBdXRvIEZpbGwgYnJlYWtzIGxpbmVzIGF0IHNwYWNlcyBvciBkZWxp bWl0ZXJzIHdoZW4gdGhlIGxpbmVzIGdldApsb25nZXIgdGhhbiB0aGUgZGVzaXJlZCB3aWR0aCAo dGhlIHZhbHVlIG9mIOKAmGZpbGwtY29sdW1u4oCZKS4gIFRoZQpkZWxpbWl0ZXJzIChiZXNpZGVz IHdoaXRlc3BhY2UpIHRoYXQgQXV0byBGaWxsIGNhbiBicmVhayBhdCBhcmUg4oCYK+KAmSwK4oCY LeKAmSwg4oCYL+KAmSwg4oCYKuKAmSwg4oCYPeKAmSwg4oCYPOKAmSwg4oCYPuKAmSwgYW5kIOKA mCzigJkuICBUaGUgbGluZSBicmVhayBjb21lcyBhZnRlciB0aGUKZGVsaW1pdGVyIGlmIHRoZSB2 YXJpYWJsZSDigJhmb3J0cmFuLWJyZWFrLWJlZm9yZS1kZWxpbWl0ZXJz4oCZIGlzIOKAmG5pbOKA mS4KT3RoZXJ3aXNlIChhbmQgYnkgZGVmYXVsdCksIHRoZSBicmVhayBjb21lcyBiZWZvcmUgdGhl IGRlbGltaXRlci4KCiAgIFRvIGVuYWJsZSBBdXRvIEZpbGwgaW4gYWxsIEZvcnRyYW4gYnVmZmVy cywgYWRkIOKAmGF1dG8tZmlsbC1tb2Rl4oCZIHRvCuKAmGZvcnRyYW4tbW9kZS1ob29r4oCZLiAg Kk5vdGUgSG9va3M6Oi4KCgoqKiogMjYuMTQuNSBDaGVja2luZyBDb2x1bW5zIGluIEZvcnRyYW4K CkluIHN0YW5kYXJkIEZvcnRyYW4gNzcsIGFueXRoaW5nIGJleW9uZCBjb2x1bW4gNzIgaXMgaWdu b3JlZC4gIE1vc3QKY29tcGlsZXJzIHByb3ZpZGUgYW4gb3B0aW9uIHRvIGNoYW5nZSB0aGlzIChm b3IgZXhhbXBsZSwK4oCYLWZmaXhlZC1saW5lLWxlbmd0aC1O4oCZIGluIGdmb3J0cmFuKS4gIEN1 c3RvbWl6ZSB0aGUgdmFyaWFibGUK4oCYZm9ydHJhbi1saW5lLWxlbmd0aOKAmSB0byBjaGFuZ2Ug dGhlIGxpbmUgbGVuZ3RoIGluIEZvcnRyYW4gbW9kZS4KQW55dGhpbmcgYmV5b25kIHRoaXMgcG9p bnQgaXMgZm9udC1sb2NrZWQgYXMgYSBjb21tZW50LiAgKFVubGVzcyBpdCBpcwppbnNpZGUgYSBz dHJpbmc6IHN0cmluZ3MgdGhhdCBleHRlbmQgYmV5b25kIOKAmGZvcnRyYW4tbGluZS1sZW5ndGji gJkgd2lsbApjb25mdXNlIGZvbnQtbG9jay4pCgrigJhDLWMgQy1y4oCZCiAgICAgRGlzcGxheSBh IGNvbHVtbiBydWxlciBtb21lbnRhcmlseSBhYm92ZSB0aGUgY3VycmVudCBsaW5lCiAgICAgKOKA mGZvcnRyYW4tY29sdW1uLXJ1bGVy4oCZKS4KCuKAmEMtYyBDLXfigJkKICAgICBTcGxpdCB0aGUg Y3VycmVudCB3aW5kb3cgaG9yaXpvbnRhbGx5IHRlbXBvcmFyaWx5IHNvIHRoYXQgaXQgaXMKICAg ICDigJhmb3J0cmFuLWxpbmUtbGVuZ3Ro4oCZIGNvbHVtbnMgd2lkZQogICAgICjigJhmb3J0cmFu LXdpbmRvdy1jcmVhdGUtbW9tZW50YXJpbHnigJkpLiAgVGhpcyBtYXkgaGVscCB5b3UgYXZvaWQK ICAgICBtYWtpbmcgbGluZXMgbG9uZ2VyIHRoYW4gdGhlIGxpbWl0IGltcG9zZWQgYnkgeW91ciBG b3J0cmFuCiAgICAgY29tcGlsZXIuCgrigJhDLXUgQy1jIEMtd+KAmQogICAgIFNwbGl0IHRoZSBj dXJyZW50IHdpbmRvdyBob3Jpem9udGFsbHkgc28gdGhhdCBpdCBpcwogICAgIOKAmGZvcnRyYW4t bGluZS1sZW5ndGjigJkgY29sdW1ucyB3aWRlICjigJhmb3J0cmFuLXdpbmRvdy1jcmVhdGXigJkp LiAgWW91CiAgICAgY2FuIHRoZW4gY29udGludWUgZWRpdGluZy4KCuKAmE0teCBmb3J0cmFuLXN0 cmlwLXNlcXVlbmNlLW5vc+KAmQogICAgIERlbGV0ZSBhbGwgdGV4dCBpbiBjb2x1bW4g4oCYZm9y dHJhbi1saW5lLWxlbmd0aOKAmSBhbmQgYmV5b25kLgoKICAgVGhlIGNvbW1hbmQg4oCYQy1jIEMt cuKAmSAo4oCYZm9ydHJhbi1jb2x1bW4tcnVsZXLigJkpIHNob3dzIGEgY29sdW1uIHJ1bGVyCm1v bWVudGFyaWx5IGFib3ZlIHRoZSBjdXJyZW50IGxpbmUuICBUaGUgY29tbWVudCBydWxlciBpcyB0 d28gbGluZXMgb2YKdGV4dCB0aGF0IHNob3cgeW91IHRoZSBsb2NhdGlvbnMgb2YgY29sdW1ucyB3 aXRoIHNwZWNpYWwgc2lnbmlmaWNhbmNlIGluCkZvcnRyYW4gcHJvZ3JhbXMuICBTcXVhcmUgYnJh Y2tldHMgc2hvdyB0aGUgbGltaXRzIG9mIHRoZSBjb2x1bW5zIGZvcgpsaW5lIG51bWJlcnMsIGFu ZCBjdXJseSBicmFja2V0cyBzaG93IHRoZSBsaW1pdHMgb2YgdGhlIGNvbHVtbnMgZm9yIHRoZQpz dGF0ZW1lbnQgYm9keS4gIENvbHVtbiBudW1iZXJzIGFwcGVhciBhYm92ZSB0aGVtLgoKICAgTm90 ZSB0aGF0IHRoZSBjb2x1bW4gbnVtYmVycyBjb3VudCBmcm9tIHplcm8sIGFzIGFsd2F5cyBpbiBH TlUgRW1hY3MKKGJ1dCBjdXN0b21pemluZyDigJhjb2x1bW4tbnVtYmVyLWluZGljYXRvci16ZXJv LWJhc2Vk4oCZIGNhbiBjaGFuZ2UgY29sdW1uCmRpc3BsYXkgdG8gbWF0Y2ggdGhhdCBvZiBGb3J0 cmFuOyAqbm90ZSBPcHRpb25hbCBNb2RlIExpbmU6Oi4pICBBcyBhCnJlc3VsdCwgdGhlIG51bWJl cnMgbWF5IGJlIG9uZSBsZXNzIHRoYW4gdGhvc2UgeW91IGFyZSBmYW1pbGlhciB3aXRoOwpidXQg dGhlIHBvc2l0aW9ucyB0aGV5IGluZGljYXRlIGluIHRoZSBsaW5lIGFyZSBzdGFuZGFyZCBmb3Ig Rm9ydHJhbi4KCiAgIFRoZSB0ZXh0IHVzZWQgdG8gZGlzcGxheSB0aGUgY29sdW1uIHJ1bGVyIGRl cGVuZHMgb24gdGhlIHZhbHVlIG9mIHRoZQp2YXJpYWJsZSDigJhpbmRlbnQtdGFicy1tb2Rl4oCZ LiAgSWYg4oCYaW5kZW50LXRhYnMtbW9kZeKAmSBpcyDigJhuaWzigJksIHRoZW4gdGhlCnZhbHVl IG9mIHRoZSB2YXJpYWJsZSDigJhmb3J0cmFuLWNvbHVtbi1ydWxlci1maXhlZOKAmSBpcyB1c2Vk IGFzIHRoZSBjb2x1bW4KcnVsZXIuICBPdGhlcndpc2UsIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFi bGUg4oCYZm9ydHJhbi1jb2x1bW4tcnVsZXItdGFi4oCZCmlzIGRpc3BsYXllZC4gIEJ5IGNoYW5n aW5nIHRoZXNlIHZhcmlhYmxlcywgeW91IGNhbiBjaGFuZ2UgdGhlIGNvbHVtbgpydWxlciBkaXNw bGF5LgoKICAg4oCYQy1jIEMtd+KAmSAo4oCYZm9ydHJhbi13aW5kb3ctY3JlYXRlLW1vbWVudGFy aWx54oCZKSB0ZW1wb3JhcmlseSBzcGxpdHMKdGhlIGN1cnJlbnQgd2luZG93IGhvcml6b250YWxs eSwgbWFraW5nIGEgd2luZG93IOKAmGZvcnRyYW4tbGluZS1sZW5ndGjigJkKY29sdW1ucyB3aWRl LCBzbyB5b3UgY2FuIHNlZSBhbnkgbGluZXMgdGhhdCBhcmUgdG9vIGxvbmcuICBUeXBlIGEgc3Bh Y2UKdG8gcmVzdG9yZSB0aGUgbm9ybWFsIHdpZHRoLgoKICAgWW91IGNhbiBhbHNvIHNwbGl0IHRo ZSB3aW5kb3cgaG9yaXpvbnRhbGx5IGFuZCBjb250aW51ZSBlZGl0aW5nIHdpdGgKdGhlIHNwbGl0 IGluIHBsYWNlLiAgVG8gZG8gdGhpcywgdXNlIOKAmEMtdSBDLWMgQy134oCZICjigJhNLXgKZm9y dHJhbi13aW5kb3ctY3JlYXRl4oCZKS4gIEJ5IGVkaXRpbmcgaW4gdGhpcyB3aW5kb3cgeW91IGNh biBpbW1lZGlhdGVseQpzZWUgd2hlbiB5b3UgbWFrZSBhIGxpbmUgdG9vIHdpZGUgdG8gYmUgY29y cmVjdCBGb3J0cmFuLgoKICAgVGhlIGNvbW1hbmQg4oCYTS14IGZvcnRyYW4tc3RyaXAtc2VxdWVu Y2Utbm9z4oCZIGRlbGV0ZXMgYWxsIHRleHQgaW4KY29sdW1uIOKAmGZvcnRyYW4tbGluZS1sZW5n dGjigJkgYW5kIGJleW9uZCwgb24gYWxsIGxpbmVzIGluIHRoZSBjdXJyZW50CmJ1ZmZlci4gIFRo aXMgaXMgdGhlIGVhc2llc3Qgd2F5IHRvIGdldCByaWQgb2Ygb2xkIHNlcXVlbmNlIG51bWJlcnMu CgoKKioqIDI2LjE0LjYgRm9ydHJhbiBLZXl3b3JkIEFiYnJldnMKCkZvcnRyYW4gbW9kZSBwcm92 aWRlcyBtYW55IGJ1aWx0LWluIGFiYnJldnMgZm9yIGNvbW1vbiBrZXl3b3JkcyBhbmQKZGVjbGFy YXRpb25zLiAgVGhlc2UgYXJlIHRoZSBzYW1lIHNvcnQgb2YgYWJicmV2IHRoYXQgeW91IGNhbiBk ZWZpbmUKeW91cnNlbGYuICBUbyB1c2UgdGhlbSwgeW91IG11c3QgdHVybiBvbiBBYmJyZXYgbW9k ZS4gICpOb3RlIEFiYnJldnM6Oi4KCiAgIFRoZSBidWlsdC1pbiBhYmJyZXZzIGFyZSB1bnVzdWFs IGluIG9uZSB3YXk6IHRoZXkgYWxsIHN0YXJ0IHdpdGggYQpzZW1pY29sb24uICBGb3IgZXhhbXBs ZSwgb25lIGJ1aWx0LWluIEZvcnRyYW4gYWJicmV2IGlzIOKAmDtj4oCZIGZvcgrigJhjb250aW51 ZeKAmS4gIElmIHlvdSBpbnNlcnQg4oCYO2PigJkgYW5kIHRoZW4gaW5zZXJ0IGEgcHVuY3R1YXRp b24gY2hhcmFjdGVyCnN1Y2ggYXMgYSBzcGFjZSBvciBhIG5ld2xpbmUsIHRoZSDigJg7Y+KAmSBl eHBhbmRzIGF1dG9tYXRpY2FsbHkgdG8K4oCYY29udGludWXigJksIHByb3ZpZGVkIEFiYnJldiBt b2RlIGlzIGVuYWJsZWQuCgogICBUeXBlIOKAmDs/4oCZIG9yIOKAmDtDLWjigJkgdG8gZGlzcGxh eSBhIGxpc3Qgb2YgYWxsIHRoZSBidWlsdC1pbiBGb3J0cmFuCmFiYnJldnMgYW5kIHdoYXQgdGhl eSBzdGFuZCBmb3IuCgoKKiAyNyBDb21waWxpbmcgYW5kIFRlc3RpbmcgUHJvZ3JhbXMKClRoZSBw cmV2aW91cyBjaGFwdGVyIGRpc2N1c3NlcyB0aGUgRW1hY3MgY29tbWFuZHMgdGhhdCBhcmUgdXNl ZnVsIGZvcgptYWtpbmcgY2hhbmdlcyBpbiBwcm9ncmFtcy4gIFRoaXMgY2hhcHRlciBkZWFscyB3 aXRoIGNvbW1hbmRzIHRoYXQKYXNzaXN0IGluIHRoZSBwcm9jZXNzIG9mIGNvbXBpbGluZyBhbmQg dGVzdGluZyBwcm9ncmFtcy4KCisgTWVudToKCiAgLSBDb21waWxhdGlvbjo6ICAgICAgICAgQ29t cGlsaW5nIHByb2dyYW1zIGluIGxhbmd1YWdlcyBvdGhlcgogICAgICAgICAgICAgICAgICAgICAg ICAgIHRoYW4gTGlzcCAoQywgUGFzY2FsLCBldGMuKS4KICAtIENvbXBpbGF0aW9uIE1vZGU6OiAg ICBUaGUgbW9kZSBmb3IgdmlzaXRpbmcgY29tcGlsZXIgZXJyb3JzLgogIC0gQ29tcGlsYXRpb24g U2hlbGw6OiAgIEN1c3RvbWl6aW5nIHlvdXIgc2hlbGwgcHJvcGVybHkKICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgdXNlIGluIHRoZSBjb21waWxhdGlvbiBidWZmZXIuCiAgLSBHcmVwIFNl YXJjaGluZzo6ICAgICAgU2VhcmNoaW5nIHdpdGggZ3JlcC4KICAtIEZseW1ha2U6OiAgICAgICAg ICAgICBGaW5kaW5nIHN5bnRheCBlcnJvcnMgb24gdGhlIGZseS4KICAtIERlYnVnZ2Vyczo6ICAg ICAgICAgICBSdW5uaW5nIHN5bWJvbGljIGRlYnVnZ2VycyBmb3Igbm9uLUxpc3AgcHJvZ3JhbXMu CiAgLSBFeGVjdXRpbmcgTGlzcDo6ICAgICAgVmFyaW91cyBtb2RlcyBmb3IgZWRpdGluZyBMaXNw IHByb2dyYW1zLAogICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggZGlmZmVyZW50IGZhY2ls aXRpZXMgZm9yIHJ1bm5pbmcKICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgTGlzcCBwcm9n cmFtcy4KICAtIExpYnJhcmllczogTGlzcCBMaWJyYXJpZXMuICAgICAgSG93IExpc3AgcHJvZ3Jh bXMgYXJlIGxvYWRlZCBpbnRvIEVtYWNzLgogIC0gRXZhbDogTGlzcCBFdmFsLiAgICAgIEV4ZWN1 dGluZyBhIHNpbmdsZSBMaXNwIGV4cHJlc3Npb24gaW4gRW1hY3MuCiAgLSBJbnRlcmFjdGlvbjog TGlzcCBJbnRlcmFjdGlvbi4gIEV4ZWN1dGluZyBMaXNwIGluIGFuIEVtYWNzIGJ1ZmZlci4KICAt IEV4dGVybmFsIExpc3A6OiAgICAgICBDb21tdW5pY2F0aW5nIHRocm91Z2ggRW1hY3Mgd2l0aCBh IHNlcGFyYXRlIExpc3AuCgoKKiogMjcuMSBSdW5uaW5nIENvbXBpbGF0aW9ucyB1bmRlciBFbWFj cwoKRW1hY3MgY2FuIHJ1biBjb21waWxlcnMgZm9yIGxhbmd1YWdlcyBzdWNoIGFzIEMgYW5kIEZv cnRyYW4sIGZlZWRpbmcgdGhlCmNvbXBpbGF0aW9uIGxvZyBpbnRvIGFuIEVtYWNzIGJ1ZmZlci4g IEl0IGNhbiBhbHNvIHBhcnNlIHRoZSBlcnJvcgptZXNzYWdlcyBhbmQgc2hvdyB5b3Ugd2hlcmUg dGhlIGVycm9ycyBvY2N1cnJlZC4KCuKAmE0teCBjb21waWxl4oCZCiAgICAgUnVuIGEgY29tcGls ZXIgYXN5bmNocm9ub3VzbHkgdW5kZXIgRW1hY3MsIHdpdGggZXJyb3IgbWVzc2FnZXMKICAgICBn b2luZyB0byB0aGUg4oCYKmNvbXBpbGF0aW9uKuKAmSBidWZmZXIuCgrigJhNLXggcmVjb21waWxl 4oCZCuKAmGcgKENvbXBpbGF0aW9uIG1vZGUp4oCZCiAgICAgSW52b2tlIGEgY29tcGlsZXIgd2l0 aCB0aGUgc2FtZSBjb21tYW5kIGFzIGluIHRoZSBsYXN0IGludm9jYXRpb24KICAgICBvZiDigJhN LXggY29tcGlsZeKAmS4KCuKAmE0teCBraWxsLWNvbXBpbGF0aW9u4oCZCiAgICAgS2lsbCB0aGUg cnVubmluZyBjb21waWxhdGlvbiBzdWJwcm9jZXNzLgoKICAgVG8gcnVuIOKAmG1ha2XigJkgb3Ig YW5vdGhlciBjb21waWxhdGlvbiBjb21tYW5kLCB0eXBlIOKAmE0teCBjb21waWxl4oCZLgpUaGlz IHJlYWRzIGEgc2hlbGwgY29tbWFuZCBsaW5lIHVzaW5nIHRoZSBtaW5pYnVmZmVyLCBhbmQgdGhl biBleGVjdXRlcwp0aGUgY29tbWFuZCBieSBydW5uaW5nIGEgc2hlbGwgYXMgYSBzdWJwcm9jZXNz IChvciAiaW5mZXJpb3IgcHJvY2VzcyIpCm9mIEVtYWNzLiAgVGhlIG91dHB1dCBpcyBpbnNlcnRl ZCBpbiBhIGJ1ZmZlciBuYW1lZCDigJgqY29tcGlsYXRpb24q4oCZLgpUaGUgY3VycmVudCBidWZm ZXLigJlzIGRlZmF1bHQgZGlyZWN0b3J5IGlzIHVzZWQgYXMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5 CmZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBjb21tYW5kLCBzbyBieSBkZWZhdWx0IGNvbXBpbGF0 aW9uIHRha2VzIHBsYWNlCmluIHRoYXQgZGlyZWN0b3J5LgoKICAgVGhlIGRlZmF1bHQgY29tcGls YXRpb24gY29tbWFuZCBpcyDigJhtYWtlIC1r4oCZLCB3aGljaCBpcyB1c3VhbGx5CmNvcnJlY3Qg Zm9yIHByb2dyYW1zIGNvbXBpbGVkIHVzaW5nIHRoZSDigJhtYWtl4oCZIHV0aWxpdHkgKHRoZSDi gJgta+KAmSBmbGFnCnRlbGxzIOKAmG1ha2XigJkgdG8gY29udGludWUgY29tcGlsaW5nIGFzIG11 Y2ggYXMgcG9zc2libGUgYWZ0ZXIgYW4gZXJyb3IpLgoqTm90ZSBNYWtlOiAobWFrZSlUb3AuICBJ ZiB5b3UgaGF2ZSBkb25lIOKAmE0teCBjb21waWxl4oCZIGJlZm9yZSwgdGhlCmNvbW1hbmQgdGhh dCB5b3Ugc3BlY2lmaWVkIGlzIGF1dG9tYXRpY2FsbHkgc3RvcmVkIGluIHRoZSB2YXJpYWJsZQri gJhjb21waWxlLWNvbW1hbmTigJk7IHRoaXMgaXMgdXNlZCBhcyB0aGUgZGVmYXVsdCB0aGUgbmV4 dCB0aW1lIHlvdSB0eXBlCuKAmE0teCBjb21waWxl4oCZLiAgQSBmaWxlIGNhbiBhbHNvIHNwZWNp ZnkgYSBmaWxlLWxvY2FsIHZhbHVlIGZvcgrigJhjb21waWxlLWNvbW1hbmTigJkgKCpub3RlIEZp bGUgVmFyaWFibGVzOjopLgoKICAgU3RhcnRpbmcgYSBjb21waWxhdGlvbiBkaXNwbGF5cyB0aGUg 4oCYKmNvbXBpbGF0aW9uKuKAmSBidWZmZXIgaW4gYW5vdGhlcgp3aW5kb3cgYnV0IGRvZXMgbm90 IHNlbGVjdCBpdC4gIFdoaWxlIHRoZSBjb21waWxhdGlvbiBpcyBydW5uaW5nLCB0aGUKd29yZCDi gJhydW7igJkgaXMgc2hvd24gaW4gdGhlIG1ham9yIG1vZGUgaW5kaWNhdG9yIGZvciB0aGUg4oCY KmNvbXBpbGF0aW9uKuKAmQpidWZmZXIsIGFuZCB0aGUgd29yZCDigJhDb21waWxpbmfigJkgYXBw ZWFycyBpbiBhbGwgbW9kZSBsaW5lcy4gIFlvdSBkbyBub3QKaGF2ZSB0byBrZWVwIHRoZSDigJgq Y29tcGlsYXRpb24q4oCZIGJ1ZmZlciB2aXNpYmxlIHdoaWxlIGNvbXBpbGF0aW9uIGlzCnJ1bm5p bmc7IGl0IGNvbnRpbnVlcyBpbiBhbnkgY2FzZS4gIFdoZW4gdGhlIGNvbXBpbGF0aW9uIGVuZHMs IGZvcgp3aGF0ZXZlciByZWFzb24sIHRoZSBtb2RlIGxpbmUgb2YgdGhlIOKAmCpjb21waWxhdGlv birigJkgYnVmZmVyIGNoYW5nZXMgdG8Kc2F5IOKAmGV4aXTigJkgKGZvbGxvd2VkIGJ5IHRoZSBl eGl0IGNvZGU6IOKAmFswXeKAmSBmb3IgYSBub3JtYWwgZXhpdCksIG9yCuKAmHNpZ25hbOKAmSAo aWYgYSBzaWduYWwgdGVybWluYXRlZCB0aGUgcHJvY2VzcykuCgogICBJZiB5b3Ugd2FudCB0byB3 YXRjaCB0aGUgY29tcGlsYXRpb24gdHJhbnNjcmlwdCBhcyBpdCBhcHBlYXJzLCBzd2l0Y2gKdG8g dGhlIOKAmCpjb21waWxhdGlvbirigJkgYnVmZmVyIGFuZCBtb3ZlIHBvaW50IHRvIHRoZSBlbmQg b2YgdGhlIGJ1ZmZlci4KV2hlbiBwb2ludCBpcyBhdCB0aGUgZW5kLCBuZXcgY29tcGlsYXRpb24g b3V0cHV0IGlzIGluc2VydGVkIGFib3ZlCnBvaW50LCB3aGljaCByZW1haW5zIGF0IHRoZSBlbmQu ICBPdGhlcndpc2UsIHBvaW50IHJlbWFpbnMgZml4ZWQgd2hpbGUKY29tcGlsYXRpb24gb3V0cHV0 IGlzIGFkZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KCiAgIFdoaWxlIGNvbXBpbGF0aW9u IHByb2NlZWRzLCB0aGUgbW9kZSBsaW5lIHNob3dzIHRoZSBudW1iZXIgb2YgZXJyb3JzLAp3YXJu aW5ncywgYW5kIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgZW1pdHRlZCBieSB0aGUgY29tcGlsZXIg c28gZmFyLgoKICAgSWYgeW91IGNoYW5nZSB0aGUgdmFyaWFibGUg4oCYY29tcGlsYXRpb24tc2Ny b2xsLW91dHB1dOKAmSB0byBhIG5vbi3igJhuaWzigJkKdmFsdWUsIHRoZSDigJgqY29tcGlsYXRp b24q4oCZIGJ1ZmZlciBzY3JvbGxzIGF1dG9tYXRpY2FsbHkgdG8gZm9sbG93IHRoZQpvdXRwdXQu ICBJZiB0aGUgdmFsdWUgaXMg4oCYZmlyc3QtZXJyb3LigJksIHNjcm9sbGluZyBzdG9wcyB3aGVu IHRoZSBmaXJzdAplcnJvciBhcHBlYXJzLCBsZWF2aW5nIHBvaW50IGF0IHRoYXQgZXJyb3IuICBG b3IgYW55IG90aGVyIG5vbi3igJhuaWzigJkKdmFsdWUsIHNjcm9sbGluZyBjb250aW51ZXMgdW50 aWwgdGhlcmUgaXMgbm8gbW9yZSBvdXRwdXQuCgogICBUbyByZXJ1biB0aGUgbGFzdCBjb21waWxh dGlvbiB3aXRoIHRoZSBzYW1lIGNvbW1hbmQsIHR5cGUg4oCYTS14CnJlY29tcGlsZeKAmS4gIFRo aXMgcmV1c2VzIHRoZSBjb21waWxhdGlvbiBjb21tYW5kIGZyb20gdGhlIGxhc3QKaW52b2NhdGlv biBvZiDigJhNLXggY29tcGlsZeKAmS4gIEl0IGFsc28gcmV1c2VzIHRoZSDigJgqY29tcGlsYXRp b24q4oCZIGJ1ZmZlcgphbmQgc3RhcnRzIHRoZSBjb21waWxhdGlvbiBpbiBpdHMgZGVmYXVsdCBk aXJlY3RvcnksIHdoaWNoIGlzIHRoZQpkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIHByZXZpb3VzIGNv bXBpbGF0aW9uIHdhcyBzdGFydGVkLiAgSW4K4oCYKmNvbXBpbGF0aW9uKuKAmSBidWZmZXJzIHRo aXMgY29tbWFuZCBpcyBib3VuZCB0byDigJhn4oCZLgoKICAgU3RhcnRpbmcgYSBuZXcgY29tcGls YXRpb24gYWxzbyBraWxscyBhbnkgY29tcGlsYXRpb24gYWxyZWFkeSBydW5uaW5nCmluIOKAmCpj b21waWxhdGlvbirigJksIGFzIHRoZSBidWZmZXIgY2FuIG9ubHkgaGFuZGxlIG9uZSBjb21waWxh dGlvbiBhdCBhbnkKdGltZS4gIEhvd2V2ZXIsIOKAmE0teCBjb21waWxl4oCZIGFuZCDigJhNLXgg cmVjb21waWxl4oCZIGFzayBmb3IgY29uZmlybWF0aW9uCmJlZm9yZSBhY3R1YWxseSBraWxsaW5n IGEgY29tcGlsYXRpb24gdGhhdCBpcyBydW5uaW5nOyB0byBhbHdheXMKYXV0b21hdGljYWxseSBr aWxsIHRoZSBjb21waWxhdGlvbiB3aXRob3V0IGFza2luZywgY2hhbmdlIHRoZSB2YXJpYWJsZQri gJhjb21waWxhdGlvbi1hbHdheXMta2lsbOKAmSB0byDigJh04oCZLiAgWW91IGNhbiBhbHNvIGtp bGwgYSBjb21waWxhdGlvbgpwcm9jZXNzIHdpdGggdGhlIGNvbW1hbmQg4oCYTS14IGtpbGwtY29t cGlsYXRpb27igJkuCgogICBUbyBydW4gdHdvIGNvbXBpbGF0aW9ucyBhdCBvbmNlLCBzdGFydCB0 aGUgZmlyc3Qgb25lLCB0aGVuIHJlbmFtZSB0aGUK4oCYKmNvbXBpbGF0aW9uKuKAmSBidWZmZXIg KHBlcmhhcHMgdXNpbmcg4oCYcmVuYW1lLXVuaXF1ZWx54oCZOyAqbm90ZSBNaXNjCkJ1ZmZlcjo6 KSwgdGhlbiBzd2l0Y2ggYnVmZmVycyBhbmQgc3RhcnQgdGhlIG90aGVyIGNvbXBpbGF0aW9uLiAg VGhpcwp3aWxsIGNyZWF0ZSBhIG5ldyDigJgqY29tcGlsYXRpb24q4oCZIGJ1ZmZlci4KCiAgIFlv dSBjYW4gY29udHJvbCB0aGUgZW52aXJvbm1lbnQgcGFzc2VkIHRvIHRoZSBjb21waWxhdGlvbiBj b21tYW5kCndpdGggdGhlIHZhcmlhYmxlIOKAmGNvbXBpbGF0aW9uLWVudmlyb25tZW504oCZLiAg SXRzIHZhbHVlIGlzIGEgbGlzdCBvZgplbnZpcm9ubWVudCB2YXJpYWJsZSBzZXR0aW5nczsgZWFj aCBlbGVtZW50IHNob3VsZCBiZSBhIHN0cmluZyBvZiB0aGUKZm9ybSDigJgiRU5WVkFSTkFNRT1W QUxVRSLigJkuICBUaGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBzZXR0aW5ncyBvdmVycmlkZQp0 aGUgdXN1YWwgb25lcy4KCgoqKiAyNy4yIENvbXBpbGF0aW9uIE1vZGUKClRoZSDigJgqY29tcGls YXRpb24q4oCZIGJ1ZmZlciB1c2VzIGEgbWFqb3IgbW9kZSBjYWxsZWQgQ29tcGlsYXRpb24gbW9k ZS4KQ29tcGlsYXRpb24gbW9kZSB0dXJucyBlYWNoIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGJ1ZmZl ciBpbnRvIGEKaHlwZXJsaW5rOyB5b3UgY2FuIG1vdmUgcG9pbnQgdG8gaXQgYW5kIHR5cGUgPFJF VD4sIG9yIGNsaWNrIG9uIGl0IHdpdGgKdGhlIG1vdXNlICgqbm90ZSBNb3VzZSBSZWZlcmVuY2Vz OjopLCB0byB2aXNpdCB0aGUgImxvY3VzIiBvZiB0aGUgZXJyb3IKbWVzc2FnZSBpbiBhIHNlcGFy YXRlIHdpbmRvdy4gIFRoZSBsb2N1cyBpcyB0aGUgc3BlY2lmaWMgcG9zaXRpb24gaW4gYQpmaWxl IHdoZXJlIHRoYXQgZXJyb3Igb2NjdXJyZWQuCgogICBJZiB5b3UgY2hhbmdlIHRoZSB2YXJpYWJs ZSDigJhjb21waWxhdGlvbi1hdXRvLWp1bXAtdG8tZmlyc3QtZXJyb3LigJkgdG8KYSBub24t4oCY bmls4oCZIHZhbHVlLCBFbWFjcyBhdXRvbWF0aWNhbGx5IHZpc2l0cyB0aGUgbG9jdXMgb2YgdGhl IGZpcnN0CmVycm9yIG1lc3NhZ2UgdGhhdCBhcHBlYXJzIGluIHRoZSDigJgqY29tcGlsYXRpb24q 4oCZIGJ1ZmZlci4KCiAgIENvbXBpbGF0aW9uIG1vZGUgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBh ZGRpdGlvbmFsIGNvbW1hbmRzLiAgVGhlc2UKY29tbWFuZHMgY2FuIGFsc28gYmUgdXNlZCBpbiDi gJgqZ3JlcCrigJkgYnVmZmVycywgd2hlcmUgdGhlIGh5cGVybGlua3MgYXJlCnNlYXJjaCBtYXRj aGVzIHJhdGhlciB0aGFuIGVycm9yIG1lc3NhZ2VzICgqbm90ZSBHcmVwIFNlYXJjaGluZzo6KS4K CuKAmE0tZyBNLW7igJkK4oCYTS1nIG7igJkK4oCYQy14IGDigJkKICAgICBWaXNpdCB0aGUgbG9j dXMgb2YgdGhlIG5leHQgZXJyb3IgbWVzc2FnZSBvciBtYXRjaCAo4oCYbmV4dC1lcnJvcuKAmSku CuKAmE0tZyBNLXDigJkK4oCYTS1nIHDigJkKICAgICBWaXNpdCB0aGUgbG9jdXMgb2YgdGhlIHBy ZXZpb3VzIGVycm9yIG1lc3NhZ2Ugb3IgbWF0Y2gKICAgICAo4oCYcHJldmlvdXMtZXJyb3LigJkp LgrigJhNLW7igJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBuZXh0IGVycm9yIG1lc3NhZ2Ugb3Ig bWF0Y2gsIHdpdGhvdXQgdmlzaXRpbmcgaXRzCiAgICAgbG9jdXMgKOKAmGNvbXBpbGF0aW9uLW5l eHQtZXJyb3LigJkpLgrigJhNLXDigJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBwcmV2aW91cyBl cnJvciBtZXNzYWdlIG9yIG1hdGNoLCB3aXRob3V0IHZpc2l0aW5nCiAgICAgaXRzIGxvY3VzICji gJhjb21waWxhdGlvbi1wcmV2aW91cy1lcnJvcuKAmSkuCuKAmE0tfeKAmQogICAgIE1vdmUgcG9p bnQgdG8gdGhlIG5leHQgZXJyb3IgbWVzc2FnZSBvciBtYXRjaCBvY2N1cnJpbmcgaW4gYQogICAg IGRpZmZlcmVudCBmaWxlICjigJhjb21waWxhdGlvbi1uZXh0LWZpbGXigJkpLgrigJhNLXvigJkK ICAgICBNb3ZlIHBvaW50IHRvIHRoZSBwcmV2aW91cyBlcnJvciBtZXNzYWdlIG9yIG1hdGNoIG9j Y3VycmluZyBpbiBhCiAgICAgZGlmZmVyZW50IGZpbGUgKOKAmGNvbXBpbGF0aW9uLXByZXZpb3Vz LWZpbGXigJkpLgrigJhDLWMgQy1m4oCZCiAgICAgVG9nZ2xlIE5leHQgRXJyb3IgRm9sbG93IG1p bm9yIG1vZGUsIHdoaWNoIG1ha2VzIGN1cnNvciBtb3Rpb24gaW4KICAgICB0aGUgY29tcGlsYXRp b24gYnVmZmVyIHByb2R1Y2UgYXV0b21hdGljIHNvdXJjZSBkaXNwbGF5LgrigJhn4oCZCiAgICAg UmUtcnVuIHRoZSBsYXN0IGNvbW1hbmQgd2hvc2Ugb3V0cHV0IGlzIHNob3duIGluIHRoZQogICAg IOKAmCpjb21waWxhdGlvbirigJkgYnVmZmVyLgoKICAgVG8gdmlzaXQgZXJyb3JzIHNlcXVlbnRp YWxseSwgdHlwZSDigJhDLXggYOKAmSAo4oCYbmV4dC1lcnJvcuKAmSksIG9yCmVxdWl2YWxlbnRs eSDigJhNLWcgTS1u4oCZIG9yIOKAmE0tZyBu4oCZLiAgVGhpcyBjb21tYW5kIGNhbiBiZSBpbnZv a2VkIGZyb20gYW55CmJ1ZmZlciwgbm90IGp1c3QgYSBDb21waWxhdGlvbiBtb2RlIGJ1ZmZlci4g IFRoZSBmaXJzdCB0aW1lIHlvdSBpbnZva2UKaXQgYWZ0ZXIgYSBjb21waWxhdGlvbiwgaXQgdmlz aXRzIHRoZSBsb2N1cyBvZiB0aGUgZmlyc3QgZXJyb3IgbWVzc2FnZS4KRWFjaCBzdWJzZXF1ZW50 IOKAmEMteCBg4oCZIHZpc2l0cyB0aGUgbmV4dCBlcnJvciwgaW4gYSBzaW1pbGFyIGZhc2hpb24u ICBJZgp5b3UgdmlzaXQgYSBzcGVjaWZpYyBlcnJvciB3aXRoIDxSRVQ+IG9yIGEgbW91c2UgY2xp Y2sgaW4gdGhlCuKAmCpjb21waWxhdGlvbirigJkgYnVmZmVyLCBzdWJzZXF1ZW50IOKAmEMteCBg 4oCZIGNvbW1hbmRzIGFkdmFuY2UgZnJvbSB0aGVyZS4KV2hlbiDigJhDLXggYOKAmSBmaW5kcyBu byBtb3JlIGVycm9yIG1lc3NhZ2VzIHRvIHZpc2l0LCBpdCBzaWduYWxzIGFuIGVycm9yLgrigJhD LXUgQy14IGDigJkgc3RhcnRzIGFnYWluIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29tcGls YXRpb24gYnVmZmVyLAphbmQgdmlzaXRzIHRoZSBmaXJzdCBsb2N1cy4KCiAgIOKAmE0tZyBNLXDi gJkgb3Ig4oCYTS1nIHDigJkgKOKAmHByZXZpb3VzLWVycm9y4oCZKSBpdGVyYXRlcyB0aHJvdWdo IGVycm9ycyBpbgp0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLgoKICAgVGhlIOKAmG5leHQtZXJyb3Li gJkgYW5kIOKAmHByZXZpb3VzLWVycm9y4oCZIGNvbW1hbmRzIGRvbuKAmXQganVzdCBhY3Qgb24g dGhlCmVycm9ycyBvciBtYXRjaGVzIGxpc3RlZCBpbiDigJgqY29tcGlsYXRpb24q4oCZIGFuZCDi gJgqZ3JlcCrigJkgYnVmZmVyczsgdGhleQphbHNvIGtub3cgaG93IHRvIGl0ZXJhdGUgdGhyb3Vn aCBlcnJvciBvciBtYXRjaCBsaXN0cyBwcm9kdWNlZCBieSBvdGhlcgpjb21tYW5kcywgc3VjaCBh cyDigJhNLXggb2NjdXLigJkgKCpub3RlIE90aGVyIFJlcGVhdGluZyBTZWFyY2g6OikuICBJZiB0 aGUKY3VycmVudCBidWZmZXIgY29udGFpbnMgZXJyb3IgbWVzc2FnZXMgb3IgbWF0Y2hlcywgdGhl c2UgY29tbWFuZHMgd2lsbAppdGVyYXRlIHRocm91Z2ggdGhlbTsgb3RoZXJ3aXNlLCBFbWFjcyBs b29rcyBmb3IgYSBidWZmZXIgY29udGFpbmluZwplcnJvciBtZXNzYWdlcyBvciBtYXRjaGVzIGFt b25nc3QgdGhlIHdpbmRvd3Mgb2YgdGhlIHNlbGVjdGVkIGZyYW1lLAp0aGVuIGZvciBhbnkgYnVm ZmVyIHRoYXQg4oCYbmV4dC1lcnJvcuKAmSBvciDigJhwcmV2aW91cy1lcnJvcuKAmSBwcmV2aW91 c2x5CnZpc2l0ZWQsIGFuZCBmaW5hbGx5IGFsbCBvdGhlciBidWZmZXJzLiAgQW55IGJ1ZmZlciB0 aGVzZSBjb21tYW5kcwppdGVyYXRlIHRocm91Z2ggdGhhdCBpcyBub3QgY3VycmVudGx5IGRpc3Bs YXllZCBpbiBhIHdpbmRvdyB3aWxsIGJlCmRpc3BsYXllZC4KCiAgIEJ5IGRlZmF1bHQsIHRoZSDi gJhuZXh0LWVycm9y4oCZIGFuZCDigJhwcmV2aW91cy1lcnJvcuKAmSBjb21tYW5kcyBza2lwIGxl c3MKaW1wb3J0YW50IG1lc3NhZ2VzLiAgVGhlIHZhcmlhYmxlIOKAmGNvbXBpbGF0aW9uLXNraXAt dGhyZXNob2xk4oCZIGNvbnRyb2xzCnRoaXMuICBUaGUgZGVmYXVsdCB2YWx1ZSwgMSwgbWVhbnMg dG8gc2tpcCBhbnl0aGluZyBsZXNzIGltcG9ydGFudCB0aGFuCmEgd2FybmluZy4gIEEgdmFsdWUg b2YgMiBtZWFucyB0byBza2lwIGFueXRoaW5nIGxlc3MgaW1wb3J0YW50IHRoYW4gYW4KZXJyb3Is IHdoaWxlIDAgbWVhbnMgbm90IHRvIHNraXAgYW55IG1lc3NhZ2VzLgoKICAgV2hlbiBFbWFjcyB2 aXNpdHMgdGhlIGxvY3VzIG9mIGFuIGVycm9yIG1lc3NhZ2UsIGl0IG1vbWVudGFyaWx5CmhpZ2hs aWdodHMgdGhlIHJlbGV2YW50IHNvdXJjZSBsaW5lLiAgVGhlIGR1cmF0aW9uIG9mIHRoaXMgaGln aGxpZ2h0IGlzCmRldGVybWluZWQgYnkgdGhlIHZhcmlhYmxlIOKAmG5leHQtZXJyb3ItaGlnaGxp Z2h04oCZLgoKICAgSWYgdGhlIOKAmCpjb21waWxhdGlvbirigJkgYnVmZmVyIGlzIHNob3duIGlu IGEgd2luZG93IHdpdGggYSBsZWZ0IGZyaW5nZQooKm5vdGUgRnJpbmdlczo6KSwgdGhlIGxvY3Vz LXZpc2l0aW5nIGNvbW1hbmRzIHB1dCBhbiBhcnJvdyBpbiB0aGUKZnJpbmdlLCBwb2ludGluZyB0 byB0aGUgY3VycmVudCBlcnJvciBtZXNzYWdlLiAgSWYgdGhlIHdpbmRvdyBoYXMgbm8KbGVmdCBm cmluZ2UsIHN1Y2ggYXMgb24gYSB0ZXh0IHRlcm1pbmFsLCB0aGVzZSBjb21tYW5kcyBzY3JvbGwg dGhlCndpbmRvdyBzbyB0aGF0IHRoZSBjdXJyZW50IG1lc3NhZ2UgaXMgYXQgdGhlIHRvcCBvZiB0 aGUgd2luZG93LiAgSWYgeW91CmNoYW5nZSB0aGUgdmFyaWFibGUg4oCYY29tcGlsYXRpb24tY29u dGV4dC1saW5lc+KAmSB0byBhbiBpbnRlZ2VyIHZhbHVlIE4sCnRoZXNlIGNvbW1hbmRzIHNjcm9s bCB0aGUgd2luZG93IHNvIHRoYXQgdGhlIGN1cnJlbnQgZXJyb3IgbWVzc2FnZSBpcyBOCmxpbmVz IGZyb20gdGhlIHRvcCwgd2hldGhlciBvciBub3QgdGhlcmUgaXMgYSBmcmluZ2U7IHRoZSBkZWZh dWx0IHZhbHVlLArigJhuaWzigJksIGdpdmVzIHRoZSBiZWhhdmlvciBkZXNjcmliZWQgYWJvdmUu CgogICBUbyBwYXJzZSBtZXNzYWdlcyBmcm9tIHRoZSBjb21waWxlciwgQ29tcGlsYXRpb24gbW9k ZSB1c2VzIHRoZQp2YXJpYWJsZSDigJhjb21waWxhdGlvbi1lcnJvci1yZWdleHAtYWxpc3TigJkg d2hpY2ggbGlzdHMgdmFyaW91cyBlcnJvcgptZXNzYWdlIGZvcm1hdHMgYW5kIHRlbGxzIEVtYWNz IGhvdyB0byBleHRyYWN0IHRoZSBsb2N1cyBmcm9tIGVhY2guICBBCnNpbWlsYXIgdmFyaWFibGUs IOKAmGdyZXAtcmVnZXhwLWFsaXN04oCZLCB0ZWxscyBFbWFjcyBob3cgdG8gcGFyc2Ugb3V0cHV0 CmZyb20gYSDigJhncmVw4oCZIGNvbW1hbmQgKCpub3RlIEdyZXAgU2VhcmNoaW5nOjopLgoKICAg Q29tcGlsYXRpb24gbW9kZSBhbHNvIGRlZmluZXMgdGhlIGtleXMgPFNQQz4gYW5kIDxERUw+IHRv IHNjcm9sbCBieQpzY3JlZW5mdWxzOyDigJhNLW7igJkgKOKAmGNvbXBpbGF0aW9uLW5leHQtZXJy b3LigJkpIGFuZCDigJhNLXDigJkKKOKAmGNvbXBpbGF0aW9uLXByZXZpb3VzLWVycm9y4oCZKSB0 byBtb3ZlIHRvIHRoZSBuZXh0IG9yIHByZXZpb3VzIGVycm9yCm1lc3NhZ2U7IGFuZCDigJhNLXvi gJkgKOKAmGNvbXBpbGF0aW9uLW5leHQtZmlsZeKAmSkgYW5kIOKAmE0tfeKAmQoo4oCYY29tcGls YXRpb24tcHJldmlvdXMtZmlsZeKAmSkgdG8gbW92ZSB0byB0aGUgbmV4dCBvciBwcmV2aW91cyBl cnJvcgptZXNzYWdlIGZvciBhIGRpZmZlcmVudCBzb3VyY2UgZmlsZS4KCiAgIFlvdSBjYW4gdHlw ZSDigJhDLWMgQy1m4oCZIHRvIHRvZ2dsZSBOZXh0IEVycm9yIEZvbGxvdyBtb2RlLiAgSW4gdGhp cwptaW5vciBtb2RlLCBvcmRpbmFyeSBjdXJzb3IgbW90aW9uIGluIHRoZSBjb21waWxhdGlvbiBi dWZmZXIKYXV0b21hdGljYWxseSB1cGRhdGVzIHRoZSBzb3VyY2UgYnVmZmVyLCBpLmUuLCBtb3Zp bmcgdGhlIGN1cnNvciBvdmVyIGFuCmVycm9yIG1lc3NhZ2UgY2F1c2VzIHRoZSBsb2N1cyBvZiB0 aGF0IGVycm9yIHRvIGJlIGRpc3BsYXllZC4KCiAgIFRoZSBmZWF0dXJlcyBvZiBDb21waWxhdGlv biBtb2RlIGFyZSBhbHNvIGF2YWlsYWJsZSBpbiBhIG1pbm9yIG1vZGUKY2FsbGVkIENvbXBpbGF0 aW9uIE1pbm9yIG1vZGUuICBUaGlzIGxldHMgeW91IHBhcnNlIGVycm9yIG1lc3NhZ2VzIGluCmFu eSBidWZmZXIsIG5vdCBqdXN0IGEgbm9ybWFsIGNvbXBpbGF0aW9uIG91dHB1dCBidWZmZXIuICBU eXBlIOKAmE0teApjb21waWxhdGlvbi1taW5vci1tb2Rl4oCZIHRvIGVuYWJsZSB0aGUgbWlub3Ig bW9kZS4gIEZvciBpbnN0YW5jZSwgaW4gYW4KUmxvZ2luIGJ1ZmZlciAoKm5vdGUgUmVtb3RlIEhv c3Q6OiksIENvbXBpbGF0aW9uIG1pbm9yIG1vZGUKYXV0b21hdGljYWxseSBhY2Nlc3NlcyByZW1v dGUgc291cmNlIGZpbGVzIGJ5IEZUUCAoKm5vdGUgRmlsZSBOYW1lczo6KS4KCgoqKiAyNy4zIFN1 YnNoZWxscyBmb3IgQ29tcGlsYXRpb24KClRoaXMgc2VjdGlvbiBpbmNsdWRlcyB2YXJpb3VzIHRl Y2huaXF1ZXMgYW5kIGFkdmljZSBmb3IgdXNpbmcgYSBzaGVsbAphbmQgaXRzIGZlYXR1cmVzIGlu IGNvbXBpbGF0aW9uIGJ1ZmZlcnMuICBUaGlzIG1hdGVyaWFsIGlzIHNwZWNpZmljIHRvCmxvY2Fs IGNvbXBpbGF0aW9ucywgYW5kIHdpbGwgbW9zdCBwcm9iYWJseSBub3Qgd29yayBpbiAob3IgYmUg aXJyZWxldmFudAp0bykgY29tcGlsYXRpb24gYnVmZmVycyB3aG9zZSBkZWZhdWx0IGRpcmVjdG9y eSBpcyBvbiByZW1vdGUgaG9zdHMuCgogICBUaGUg4oCYTS14IGNvbXBpbGXigJkgY29tbWFuZCB1 c2VzIGEgc2hlbGwgdG8gcnVuIHRoZSBjb21waWxhdGlvbgpjb21tYW5kLCBidXQgc3BlY2lmaWVz IHRoZSBvcHRpb24gZm9yIGEgbm9uaW50ZXJhY3RpdmUgc2hlbGwuICBUaGlzCm1lYW5zLCBpbiBw YXJ0aWN1bGFyLCB0aGF0IHRoZSBzaGVsbCBzaG91bGQgc3RhcnQgd2l0aCBubyBwcm9tcHQuICBJ Zgp5b3UgZmluZCB5b3VyIHVzdWFsIHNoZWxsIHByb21wdCBtYWtpbmcgYW4gdW5zaWdodGx5IGFw cGVhcmFuY2UgaW4gdGhlCuKAmCpjb21waWxhdGlvbirigJkgYnVmZmVyLCBpdCBtZWFucyB5b3Ug aGF2ZSBtYWRlIGEgbWlzdGFrZSBpbiB5b3VyIHNoZWxs4oCZcwppbml0IGZpbGUgYnkgc2V0dGlu ZyB0aGUgcHJvbXB0IHVuY29uZGl0aW9uYWxseS4gIChUaGlzIGluaXQgZmlsZSBtYXkgYmUKbmFt ZWQg4oCYLmJhc2hyY+KAmSwg4oCYLnByb2ZpbGXigJksIOKAmC5jc2hyY+KAmSwg4oCYLnNocmPi gJksIGV0Yy4sIGRlcGVuZGluZyBvbiB3aGF0CnNoZWxsIHlvdSB1c2UuKSAgVGhlIHNoZWxsIGlu aXQgZmlsZSBzaG91bGQgc2V0IHRoZSBwcm9tcHQgb25seSBpZiB0aGVyZQphbHJlYWR5IGlzIGEg cHJvbXB0LiAgSGVyZeKAmXMgaG93IHRvIGRvIGl0IGluIGJhc2g6CgogICAgIGlmIFsgIiR7UFMx K3NldH0iID0gc2V0IF0KICAgICB0aGVuIFBTMT3igKYKICAgICBmaQoKQW5kIGhlcmXigJlzIGhv dyB0byBkbyBpdCBpbiBjc2g6CgogICAgIGlmICgkP3Byb21wdCkgc2V0IHByb21wdCA9IOKApgoK ICAgSWYgeW91IHdhbnQgdG8gY3VzdG9taXplIHRoZSB2YWx1ZSBvZiB0aGUg4oCYVEVSTeKAmSBl bnZpcm9ubWVudCB2YXJpYWJsZQpwYXNzZWQgdG8gdGhlIGNvbXBpbGF0aW9uIHN1YnNoZWxsLCBj dXN0b21pemUgdGhlIHZhcmlhYmxlCuKAmGNvbWludC10ZXJtaW5mby10ZXJtaW5hbOKAmSAoKm5v dGUgU2hlbGwgT3B0aW9uczo6KS4KCiAgIEVtYWNzIGRvZXMgbm90IGV4cGVjdCBhIGNvbXBpbGVy IHByb2Nlc3MgdG8gbGF1bmNoIGFzeW5jaHJvbm91cwpzdWJwcm9jZXNzZXM7IGlmIGl0IGRvZXMs IGFuZCB0aGV5IGtlZXAgcnVubmluZyBhZnRlciB0aGUgbWFpbiBjb21waWxlcgpwcm9jZXNzIGhh cyB0ZXJtaW5hdGVkLCBFbWFjcyBtYXkga2lsbCB0aGVtIG9yIHRoZWlyIG91dHB1dCBtYXkgbm90 CmFycml2ZSBpbiBFbWFjcy4gIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgbWFrZSB0aGUgbWFpbiBj b21waWxhdGlvbgpwcm9jZXNzIHdhaXQgZm9yIGl0cyBzdWJwcm9jZXNzZXMgdG8gZmluaXNoLiAg SW4gYSBzaGVsbCBzY3JpcHQsIHlvdSBjYW4KZG8gdGhpcyB1c2luZyDigJgkIeKAmSBhbmQg4oCY d2FpdOKAmSwgbGlrZSB0aGlzOgoKICAgICAoc2xlZXAgMTA7IGVjaG8gMm5kKSYgcGlkPSQhICAj IFJlY29yZCBwaWQgb2Ygc3VicHJvY2VzcwogICAgIGVjaG8gZmlyc3QgbWVzc2FnZQogICAgIHdh aXQgJHBpZCAgICAgICAgICAgICAgICAgICAgICMgV2FpdCBmb3Igc3VicHJvY2VzcwoKSWYgdGhl IGJhY2tncm91bmQgcHJvY2VzcyBkb2VzIG5vdCBvdXRwdXQgdG8gdGhlIGNvbXBpbGF0aW9uIGJ1 ZmZlciwgc28KeW91IG9ubHkgbmVlZCB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcga2lsbGVkIHdo ZW4gdGhlIG1haW4gY29tcGlsYXRpb24KcHJvY2VzcyB0ZXJtaW5hdGVzLCB0aGlzIGlzIHN1ZmZp Y2llbnQ6CgogICAgIG5vaHVwIENPTU1BTkQ7IHNsZWVwIDEKCiAgIE9uIE1TLURPUywgYXN5bmNo cm9ub3VzIHN1YnByb2Nlc3NlcyBhcmUgbm90IHN1cHBvcnRlZCwgc28g4oCYTS14CmNvbXBpbGXi gJkgcnVucyB0aGUgY29tcGlsYXRpb24gY29tbWFuZCBzeW5jaHJvbm91c2x5IChpLmUuLCB5b3Ug bXVzdCB3YWl0CnVudGlsIHRoZSBjb21tYW5kIGZpbmlzaGVzIGJlZm9yZSB5b3UgY2FuIGRvIGFu eXRoaW5nIGVsc2UgaW4gRW1hY3MpLgoqTm90ZSBNUy1ET1M6Oi4KCgoqKiAyNy40IFNlYXJjaGlu ZyB3aXRoIEdyZXAgdW5kZXIgRW1hY3MKCkp1c3QgYXMgeW91IGNhbiBydW4gYSBjb21waWxlciBm cm9tIEVtYWNzIGFuZCB0aGVuIHZpc2l0IHRoZSBsaW5lcyB3aXRoCmNvbXBpbGF0aW9uIGVycm9y cywgeW91IGNhbiBhbHNvIHJ1biDigJhncmVw4oCZIGFuZCB0aGVuIHZpc2l0IHRoZSBsaW5lcyBv bgp3aGljaCBtYXRjaGVzIHdlcmUgZm91bmQuICBUaGlzIHdvcmtzIGJ5IHRyZWF0aW5nIHRoZSBt YXRjaGVzIHJlcG9ydGVkCmJ5IOKAmGdyZXDigJkgYXMgaWYgdGhleSB3ZXJlIGVycm9ycy4gIFRo ZSBvdXRwdXQgYnVmZmVyIHVzZXMgR3JlcCBtb2RlLAp3aGljaCBpcyBhIHZhcmlhbnQgb2YgQ29t cGlsYXRpb24gbW9kZSAoKm5vdGUgQ29tcGlsYXRpb24gTW9kZTo6KS4KCuKAmE0teCBncmVw4oCZ CuKAmE0teCBsZ3JlcOKAmQogICAgIFJ1biDigJhncmVw4oCZIGFzeW5jaHJvbm91c2x5IHVuZGVy IEVtYWNzLCBsaXN0aW5nIG1hdGNoaW5nIGxpbmVzIGluCiAgICAgdGhlIGJ1ZmZlciBuYW1lZCDi gJgqZ3JlcCrigJkuCuKAmE0teCBncmVwLWZpbmTigJkK4oCYTS14IGZpbmQtZ3JlcOKAmQrigJhN LXggcmdyZXDigJkKICAgICBSdW4g4oCYZ3JlcOKAmSB2aWEg4oCYZmluZOKAmSwgYW5kIGNvbGxl Y3Qgb3V0cHV0IGluIHRoZSDigJgqZ3JlcCrigJkgYnVmZmVyLgrigJhNLXggenJncmVw4oCZCiAg ICAgUnVuIOKAmHpncmVw4oCZIGFuZCBjb2xsZWN0IG91dHB1dCBpbiB0aGUg4oCYKmdyZXAq4oCZ IGJ1ZmZlci4K4oCYTS14IGtpbGwtZ3JlcOKAmQogICAgIEtpbGwgdGhlIHJ1bm5pbmcg4oCYZ3Jl cOKAmSBzdWJwcm9jZXNzLgoKICAgVG8gcnVuIOKAmGdyZXDigJksIHR5cGUg4oCYTS14IGdyZXDi gJksIHRoZW4gZW50ZXIgYSBjb21tYW5kIGxpbmUgdGhhdApzcGVjaWZpZXMgaG93IHRvIHJ1biDi gJhncmVw4oCZLiAgVXNlIHRoZSBzYW1lIGFyZ3VtZW50cyB5b3Ugd291bGQgZ2l2ZQrigJhncmVw 4oCZIHdoZW4gcnVubmluZyBpdCBub3JtYWxseTogYSDigJhncmVw4oCZLXN0eWxlIHJlZ2V4cCAo dXN1YWxseSBpbgpzaW5nbGUtcXVvdGVzIHRvIHF1b3RlIHRoZSBzaGVsbOKAmXMgc3BlY2lhbCBj aGFyYWN0ZXJzKSBmb2xsb3dlZCBieSBmaWxlCm5hbWVzLCB3aGljaCBtYXkgdXNlIHdpbGRjYXJk cy4gIElmIHlvdSBzcGVjaWZ5IGEgcHJlZml4IGFyZ3VtZW50IGZvcgrigJhNLXggZ3JlcOKAmSwg aXQgZmluZHMgdGhlIGlkZW50aWZpZXIgKCpub3RlIFhyZWY6OikgaW4gdGhlIGJ1ZmZlciBhcm91 bmQKcG9pbnQsIGFuZCBwdXRzIHRoYXQgaW50byB0aGUgZGVmYXVsdCDigJhncmVw4oCZIGNvbW1h bmQuCgogICBZb3VyIGNvbW1hbmQgbmVlZCBub3Qgc2ltcGx5IHJ1biDigJhncmVw4oCZOyB5b3Ug Y2FuIHVzZSBhbnkgc2hlbGwKY29tbWFuZCB0aGF0IHByb2R1Y2VzIG91dHB1dCBpbiB0aGUgc2Ft ZSBmb3JtYXQuICBGb3IgaW5zdGFuY2UsIHlvdSBjYW4KY2hhaW4g4oCYZ3JlcOKAmSBjb21tYW5k cywgbGlrZSB0aGlzOgoKICAgICBncmVwIC1uSCAtZSBmb28gKi5lbCB8IGdyZXAgYmFyIHwgZ3Jl cCB0b3RvCgogICBUaGUgb3V0cHV0IGZyb20g4oCYZ3JlcOKAmSBnb2VzIGluIHRoZSDigJgqZ3Jl cCrigJkgYnVmZmVyLiAgWW91IGNhbiBmaW5kIHRoZQpjb3JyZXNwb25kaW5nIGxpbmVzIGluIHRo ZSBvcmlnaW5hbCBmaWxlcyB1c2luZyDigJhDLXggYOKAmSwgPFJFVD4sIGFuZCBzbwpmb3J0aCwg anVzdCBsaWtlIGNvbXBpbGF0aW9uIGVycm9ycy4gICpOb3RlIENvbXBpbGF0aW9uIE1vZGU6Oiwg Zm9yCmRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGNvbW1hbmRzIGFuZCBrZXkgYmluZGluZ3MgYXZh aWxhYmxlIGluIHRoZQrigJgqZ3JlcCrigJkgYnVmZmVyLgoKICAgU29tZSBncmVwIHByb2dyYW1z IGFjY2VwdCBhIOKAmC0tY29sb3LigJkgb3B0aW9uIHRvIG91dHB1dCBzcGVjaWFsCm1hcmtlcnMg YXJvdW5kIG1hdGNoZXMgZm9yIHRoZSBwdXJwb3NlIG9mIGhpZ2hsaWdodGluZy4gIFlvdSBjYW4g bWFrZQp1c2Ugb2YgdGhpcyBmZWF0dXJlIGJ5IHNldHRpbmcg4oCYZ3JlcC1oaWdobGlnaHQtbWF0 Y2hlc+KAmSB0byDigJh04oCZLiAgV2hlbgpkaXNwbGF5aW5nIGEgbWF0Y2ggaW4gdGhlIHNvdXJj ZSBidWZmZXIsIHRoZSBleGFjdCBtYXRjaCB3aWxsIGJlCmhpZ2hsaWdodGVkLCBpbnN0ZWFkIG9m IHRoZSBlbnRpcmUgc291cmNlIGxpbmUuCgogICBBcyB3aXRoIGNvbXBpbGF0aW9uIGNvbW1hbmRz ICgqbm90ZSBDb21waWxhdGlvbjo6KSwgd2hpbGUgdGhlIGdyZXAKY29tbWFuZCBydW5zLCB0aGUg bW9kZSBsaW5lIHNob3dzIHRoZSBydW5uaW5nIG51bWJlciBvZiBtYXRjaGVzIGZvdW5kCmFuZCBo aWdobGlnaHRlZCBzbyBmYXIuCgogICBUaGUg4oCYZ3JlcOKAmSBjb21tYW5kcyB3aWxsIG9mZmVy IHRvIHNhdmUgYnVmZmVycyBiZWZvcmUgcnVubmluZy4gIFRoaXMKaXMgY29udHJvbGxlZCBieSB0 aGUg4oCYZ3JlcC1zYXZlLWJ1ZmZlcnPigJkgdmFyaWFibGUuICBUaGUgcG9zc2libGUgdmFsdWVz CmFyZSBlaXRoZXIg4oCYbmls4oCZIChkb27igJl0IHNhdmUpLCDigJhhc2vigJkgKGFzayBiZWZv cmUgc2F2aW5nKSwgb3IgYSBmdW5jdGlvbgp3aGljaCB3aWxsIGJlIHVzZWQgYXMgYSBwcmVkaWNh dGUgKGFuZCBpcyBjYWxsZWQgd2l0aCB0aGUgZmlsZSBuYW1lIGFzCnRoZSBwYXJhbWV0ZXIgYW5k IHNob3VsZCByZXR1cm4gbm9uLeKAmG5pbOKAmSBpZiB0aGUgYnVmZmVyIGlzIHRvIGJlIHNhdmVk KS4KQW55IG90aGVyIG5vbi3igJhuaWzigJkgdmFsdWUgbWVhbnMgdGhhdCBhbGwgYnVmZmVycyBz aG91bGQgYmUgc2F2ZWQgd2l0aG91dAphc2tpbmcuICBUaGUgZGVmYXVsdCBpcyDigJhhc2vigJku CgogICBUaGUgY29tbWFuZCDigJhNLXggZ3JlcC1maW5k4oCZIChhbHNvIGF2YWlsYWJsZSBhcyDi gJhNLXggZmluZC1ncmVw4oCZKSBpcwpzaW1pbGFyIHRvIOKAmE0teCBncmVw4oCZLCBidXQgaXQg c3VwcGxpZXMgYSBkaWZmZXJlbnQgaW5pdGlhbCBkZWZhdWx0IGZvcgp0aGUgY29tbWFuZOKAlG9u ZSB0aGF0IHJ1bnMgYm90aCDigJhmaW5k4oCZIGFuZCDigJhncmVw4oCZLCBzbyBhcyB0byBzZWFy Y2ggZXZlcnkKZmlsZSBpbiBhIGRpcmVjdG9yeSB0cmVlLiAgU2VlIGFsc28gdGhlIOKAmGZpbmQt Z3JlcC1kaXJlZOKAmSBjb21tYW5kLCBpbgoqbm90ZSBEaXJlZCBhbmQgRmluZDo6LgoKICAgVGhl IGNvbW1hbmRzIOKAmE0teCBsZ3JlcOKAmSAobG9jYWwgZ3JlcCkgYW5kIOKAmE0teCByZ3JlcOKA mSAocmVjdXJzaXZlCmdyZXApIGFyZSBtb3JlIHVzZXItZnJpZW5kbHkgdmVyc2lvbnMgb2Yg4oCY Z3JlcOKAmSBhbmQg4oCYZ3JlcC1maW5k4oCZLCB3aGljaApwcm9tcHQgc2VwYXJhdGVseSBmb3Ig dGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBtYXRjaCwgdGhlIGZpbGVzIHRvCnNlYXJjaCwgYW5k IHRoZSBiYXNlIGRpcmVjdG9yeSBmb3IgdGhlIHNlYXJjaC4gIENhc2Ugc2Vuc2l0aXZpdHkgb2Yg dGhlCnNlYXJjaCBpcyBjb250cm9sbGVkIGJ5IHRoZSBjdXJyZW50IHZhbHVlIG9mIOKAmGNhc2Ut Zm9sZC1zZWFyY2jigJkuICBUaGUKY29tbWFuZCDigJhNLXggenJncmVw4oCZIGlzIHNpbWlsYXIg dG8g4oCYTS14IHJncmVw4oCZLCBidXQgaXQgY2FsbHMg4oCYemdyZXDigJkKaW5zdGVhZCBvZiDi gJhncmVw4oCZIHRvIHNlYXJjaCB0aGUgY29udGVudHMgb2YgZ3ppcHBlZCBmaWxlcy4KCiAgIFRo ZXNlIGNvbW1hbmRzIGJ1aWxkIHRoZSBzaGVsbCBjb21tYW5kcyBiYXNlZCBvbiB0aGUgdmFyaWFi bGVzCuKAmGdyZXAtdGVtcGxhdGXigJkgKGZvciDigJhsZ3JlcOKAmSkgYW5kIOKAmGdyZXAtZmlu ZC10ZW1wbGF0ZeKAmSAoZm9yIOKAmHJncmVw4oCZKS4KVGhlIGZpbGVzIHRvIHNlYXJjaCBjYW4g dXNlIGFsaWFzZXMgZGVmaW5lZCBpbiB0aGUgdmFyaWFibGUK4oCYZ3JlcC1maWxlcy1hbGlhc2Vz 4oCZLgoKICAgRGlyZWN0b3JpZXMgbGlzdGVkIGluIHRoZSB2YXJpYWJsZSDigJhncmVwLWZpbmQt aWdub3JlZC1kaXJlY3Rvcmllc+KAmQphcmUgYXV0b21hdGljYWxseSBza2lwcGVkIGJ5IOKAmE0t eCByZ3JlcOKAmS4gIFRoZSBkZWZhdWx0IHZhbHVlIGluY2x1ZGVzCnRoZSBkYXRhIGRpcmVjdG9y aWVzIHVzZWQgYnkgdmFyaW91cyB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcy4KCgoqKiAyNy41IEZp bmRpbmcgU3ludGF4IEVycm9ycyBPbiBUaGUgRmx5CgpGbHltYWtlIG1vZGUgaXMgYSBtaW5vciBt b2RlIHRoYXQgcGVyZm9ybXMgb24tdGhlLWZseSBzeW50YXggY2hlY2tpbmcKZm9yIG1hbnkgcHJv Z3JhbW1pbmcgYW5kIG1hcmt1cCBsYW5ndWFnZXMsIGluY2x1ZGluZyBDLCBDKyssIFBlcmwsIEhU TUwsCmFuZCBUZVgvTGFUZVguICBJdCBpcyBzb21ld2hhdCBhbmFsb2dvdXMgdG8gRmx5c3BlbGwg bW9kZSwgd2hpY2gKcGVyZm9ybXMgc3BlbGwgY2hlY2tpbmcgZm9yIG9yZGluYXJ5IGh1bWFuIGxh bmd1YWdlcyBpbiBhIHNpbWlsYXIKZmFzaGlvbiAoKm5vdGUgU3BlbGxpbmc6OikuICBBcyB5b3Ug ZWRpdCBhIGZpbGUsIEZseW1ha2UgbW9kZSBydW5zIGFuCmFwcHJvcHJpYXRlIHN5bnRheCBjaGVj a2luZyB0b29sIGluIHRoZSBiYWNrZ3JvdW5kLCB1c2luZyBhIHRlbXBvcmFyeQpjb3B5IG9mIHRo ZSBidWZmZXIuICBJdCB0aGVuIHBhcnNlcyB0aGUgZXJyb3IgYW5kIHdhcm5pbmcgbWVzc2FnZXMs IGFuZApoaWdobGlnaHRzIHRoZSBlcnJvbmVvdXMgbGluZXMgaW4gdGhlIGJ1ZmZlci4gIFRoZSBz eW50YXggY2hlY2tpbmcgdG9vbAp1c2VkIGRlcGVuZHMgb24gdGhlIGxhbmd1YWdlOyBmb3IgZXhh bXBsZSwgZm9yIEMvQysrIGZpbGVzIHRoaXMgaXMKdXN1YWxseSB0aGUgQyBjb21waWxlci4gIEZs eW1ha2UgY2FuIGFsc28gdXNlIGJ1aWxkIHRvb2xzIHN1Y2ggYXMg4oCYbWFrZeKAmQpmb3IgY2hl Y2tpbmcgY29tcGxpY2F0ZWQgcHJvamVjdHMuCgogICBUbyBlbmFibGUgRmx5bWFrZSBtb2RlLCB0 eXBlIOKAmE0teCBmbHltYWtlLW1vZGXigJkuICBZb3UgY2FuIGp1bXAgdG8gdGhlCmVycm9ycyB0 aGF0IGl0IGZpbmRzIGJ5IHVzaW5nIOKAmE0teCBmbHltYWtlLWdvdG8tbmV4dC1lcnJvcuKAmSBh bmQg4oCYTS14CmZseW1ha2UtZ290by1wcmV2LWVycm9y4oCZLiAgVG8gZGlzcGxheSBhbnkgZXJy b3IgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoCnRoZSBjdXJyZW50IGxpbmUsIHR5cGUg4oCYTS14 IGZseW1ha2UtZGlzcGxheS1lcnItbWVudS1mb3ItY3VycmVudC1saW5l4oCZLgoKICAgRm9yIG1v cmUgZGV0YWlscyBhYm91dCB1c2luZyBGbHltYWtlLCBzZWUgKm5vdGUgRmx5bWFrZToKKGZseW1h a2UpVG9wLgoKCioqIDI3LjYgUnVubmluZyBEZWJ1Z2dlcnMgVW5kZXIgRW1hY3MKClRoZSBHVUQg KEdyYW5kIFVuaWZpZWQgRGVidWdnZXIpIGxpYnJhcnkgcHJvdmlkZXMgYW4gRW1hY3MgaW50ZXJm YWNlIHRvCmEgd2lkZSB2YXJpZXR5IG9mIHN5bWJvbGljIGRlYnVnZ2Vycy4gIEl0IGNhbiBydW4g dGhlIEdOVSBEZWJ1Z2dlcgooR0RCKSwgYXMgd2VsbCBhcyBEQlgsIFNEQiwgWERCLCBHdWlsZSBS RVBMIGRlYnVnIGNvbW1hbmRzLCBQZXJs4oCZcwpkZWJ1Z2dpbmcgbW9kZSwgdGhlIFB5dGhvbiBk ZWJ1Z2dlciBQREIsIGFuZCB0aGUgSmF2YSBEZWJ1Z2dlciBKREIuCgogICBFbWFjcyBwcm92aWRl cyBhIHNwZWNpYWwgaW50ZXJmYWNlIHRvIEdEQiwgd2hpY2ggdXNlcyBleHRyYSBFbWFjcwp3aW5k b3dzIHRvIGRpc3BsYXkgdGhlIHN0YXRlIG9mIHRoZSBkZWJ1Z2dlZCBwcm9ncmFtLiAgKk5vdGUg R0RCCkdyYXBoaWNhbCBJbnRlcmZhY2U6Oi4KCiAgIEVtYWNzIGFsc28gaGFzIGEgYnVpbHQtaW4g ZGVidWdnZXIgZm9yIEVtYWNzIExpc3AgcHJvZ3JhbXMuICAqTm90ZQpUaGUgTGlzcCBEZWJ1Z2dl cjogKGVsaXNwKURlYnVnZ2luZy4KCisgTWVudToKCiAgLSBTdGFydGluZyBHVUQ6OiAgICAgICAg SG93IHRvIHN0YXJ0IGEgZGVidWdnZXIgc3VicHJvY2Vzcy4KICAtIERlYnVnZ2VyIE9wZXJhdGlv bjo6ICBDb25uZWN0aW9uIGJldHdlZW4gdGhlIGRlYnVnZ2VyIGFuZCBzb3VyY2UgYnVmZmVycy4K ICAtIENvbW1hbmRzIG9mIEdVRDo6ICAgICBLZXkgYmluZGluZ3MgZm9yIGNvbW1vbiBjb21tYW5k cy4KICAtIEdVRCBDdXN0b21pemF0aW9uOjogICBEZWZpbmluZyB5b3VyIG93biBjb21tYW5kcyBm b3IgR1VELgogIC0gR0RCIEdyYXBoaWNhbCBJbnRlcmZhY2U6OiAgQW4gZW5oYW5jZWQgbW9kZSB0 aGF0IHVzZXMgR0RCIGZlYXR1cmVzIHRvCiAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVu dCBhIGdyYXBoaWNhbCBkZWJ1Z2dpbmcgZW52aXJvbm1lbnQuCgoKKioqIDI3LjYuMSBTdGFydGlu ZyBHVUQKClRoZXJlIGFyZSBzZXZlcmFsIGNvbW1hbmRzIGZvciBzdGFydGluZyBhIGRlYnVnZ2Vy IHN1YnByb2Nlc3MsIGVhY2gKY29ycmVzcG9uZGluZyB0byBhIHBhcnRpY3VsYXIgZGVidWdnZXIg cHJvZ3JhbS4KCuKAmE0teCBnZGLigJkKICAgICBSdW4gR0RCIGFzIGEgc3VicHJvY2VzcywgYW5k IGludGVyYWN0IHdpdGggaXQgdmlhIGFuIElERS1saWtlIEVtYWNzCiAgICAgaW50ZXJmYWNlLiAg Kk5vdGUgR0RCIEdyYXBoaWNhbCBJbnRlcmZhY2U6OiwgZm9yIG1vcmUgaW5mb3JtYXRpb24KICAg ICBhYm91dCB0aGlzIGNvbW1hbmQuCgrigJhNLXggZ3VkLWdkYuKAmQogICAgIFJ1biBHREIsIHVz aW5nIGEgR1VEIGludGVyYWN0aW9uIGJ1ZmZlciBmb3IgaW5wdXQgYW5kIG91dHB1dCB0byB0aGUK ICAgICBHREIgc3VicHJvY2VzcyAoKm5vdGUgRGVidWdnZXIgT3BlcmF0aW9uOjopLiAgSWYgc3Vj aCBhIGJ1ZmZlcgogICAgIGFscmVhZHkgZXhpc3RzLCBzd2l0Y2ggdG8gaXQ7IG90aGVyd2lzZSwg Y3JlYXRlIHRoZSBidWZmZXIgYW5kCiAgICAgc3dpdGNoIHRvIGl0LgoKICAgICBUaGUgb3RoZXIg Y29tbWFuZHMgaW4gdGhpcyBsaXN0IGRvIHRoZSBzYW1lLCBmb3Igb3RoZXIgZGVidWdnZXIKICAg ICBwcm9ncmFtcy4KCuKAmE0teCBwZXJsZGLigJkKICAgICBSdW4gdGhlIFBlcmwgaW50ZXJwcmV0 ZXIgaW4gZGVidWcgbW9kZS4KCuKAmE0teCBqZGLigJkKICAgICBSdW4gdGhlIEphdmEgZGVidWdn ZXIuCgrigJhNLXggcGRi4oCZCiAgICAgUnVuIHRoZSBQeXRob24gZGVidWdnZXIuCgrigJhNLXgg Z3VpbGVy4oCZCiAgICAgUnVuIEd1aWxlIFJFUEwgZm9yIGRlYnVnZ2luZyBHdWlsZSBTY2hlbWUg cHJvZ3JhbXMuCgrigJhNLXggZGJ44oCZCiAgICAgUnVuIHRoZSBEQlggZGVidWdnZXIuCgrigJhN LXggeGRi4oCZCiAgICAgUnVuIHRoZSBYREIgZGVidWdnZXIuCgrigJhNLXggc2Ri4oCZCiAgICAg UnVuIHRoZSBTREIgZGVidWdnZXIuCgogICBFYWNoIG9mIHRoZXNlIGNvbW1hbmRzIHJlYWRzIGEg Y29tbWFuZCBsaW5lIHRvIGludm9rZSB0aGUgZGVidWdnZXIsCnVzaW5nIHRoZSBtaW5pYnVmZmVy LiAgVGhlIG1pbmlidWZmZXLigJlzIGluaXRpYWwgY29udGVudHMgY29udGFpbiB0aGUKc3RhbmRh cmQgZXhlY3V0YWJsZSBuYW1lIGFuZCBvcHRpb25zIGZvciB0aGUgZGVidWdnZXIsIGFuZCBzb21l dGltZXMKYWxzbyBhIGd1ZXNzIGZvciB0aGUgbmFtZSBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIHlv dSB3YW50IHRvIGRlYnVnLgpTaGVsbCB3aWxkY2FyZHMgYW5kIHZhcmlhYmxlcyBhcmUgbm90IGFs bG93ZWQgaW4gdGhpcyBjb21tYW5kIGxpbmUuCkVtYWNzIGFzc3VtZXMgdGhhdCB0aGUgZmlyc3Qg Y29tbWFuZCBhcmd1bWVudCB3aGljaCBkb2VzIG5vdCBzdGFydCB3aXRoCmEg4oCYLeKAmSBpcyB0 aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWUuCgogICBUcmFtcCBwcm92aWRlcyBhIGZhY2lsaXR5IGZv ciByZW1vdGUgZGVidWdnaW5nLCB3aGVyZWJ5IGJvdGggdGhlCmRlYnVnZ2VyIGFuZCB0aGUgcHJv Z3JhbSBiZWluZyBkZWJ1Z2dlZCBhcmUgb24gdGhlIHNhbWUgcmVtb3RlIGhvc3QuCipOb3RlICh0 cmFtcClSdW5uaW5nIGEgZGVidWdnZXIgb24gYSByZW1vdGUgaG9zdDo6LCBmb3IgZGV0YWlscy4g IFRoaXMKaXMgc2VwYXJhdGUgZnJvbSBHRELigJlzIHJlbW90ZSBkZWJ1Z2dpbmcgZmVhdHVyZSwg d2hlcmUgdGhlIHByb2dyYW0gYW5kCnRoZSBkZWJ1Z2dlciBydW4gb24gZGlmZmVyZW50IG1hY2hp bmVzICgqbm90ZSBEZWJ1Z2dpbmcgUmVtb3RlIFByb2dyYW1zOgooZ2RiKVJlbW90ZSBEZWJ1Z2dp bmcuKS4KCgoqKiogMjcuNi4yIERlYnVnZ2VyIE9wZXJhdGlvbgoKVGhlICJHVUQgaW50ZXJhY3Rp b24gYnVmZmVyIiBpcyBhbiBFbWFjcyBidWZmZXIgd2hpY2ggaXMgdXNlZCB0byBzZW5kCnRleHQg Y29tbWFuZHMgdG8gYSBkZWJ1Z2dlciBzdWJwcm9jZXNzLCBhbmQgcmVjb3JkIGl0cyBvdXRwdXQu ICBUaGlzIGlzCnRoZSBiYXNpYyBpbnRlcmZhY2UgZm9yIGludGVyYWN0aW5nIHdpdGggYSBkZWJ1 Z2dlciwgdXNlZCBieSDigJhNLXgKZ3VkLWdkYuKAmSBhbmQgb3RoZXIgY29tbWFuZHMgbGlzdGVk IGluICpub3RlIFN0YXJ0aW5nIEdVRDo6LiAgVGhlIOKAmE0teApnZGLigJkgY29tbWFuZCBleHRl bmRzIHRoaXMgaW50ZXJmYWNlIHdpdGggYWRkaXRpb25hbCBzcGVjaWFsaXplZCBidWZmZXJzCmZv ciBjb250cm9sbGluZyBicmVha3BvaW50cywgc3RhY2sgZnJhbWVzLCBhbmQgb3RoZXIgYXNwZWN0 cyBvZiB0aGUKZGVidWdnZXIgc3RhdGUgKCpub3RlIEdEQiBHcmFwaGljYWwgSW50ZXJmYWNlOjop LgoKICAgVGhlIEdVRCBpbnRlcmFjdGlvbiBidWZmZXIgdXNlcyBhIHZhcmlhbnQgb2YgU2hlbGwg bW9kZSwgc28gdGhlIEVtYWNzCmNvbW1hbmRzIGRlZmluZWQgYnkgU2hlbGwgbW9kZSBhcmUgYXZh aWxhYmxlICgqbm90ZSBTaGVsbCBNb2RlOjopLgpDb21wbGV0aW9uIGlzIGF2YWlsYWJsZSBmb3Ig bW9zdCBkZWJ1Z2dlciBjb21tYW5kcyAoKm5vdGUgQ29tcGxldGlvbjo6KSwKYW5kIHlvdSBjYW4g dXNlIHRoZSB1c3VhbCBTaGVsbCBtb2RlIGhpc3RvcnkgY29tbWFuZHMgdG8gcmVwZWF0IHRoZW0u CipOb3RlIENvbW1hbmRzIG9mIEdVRDo6LCBmb3Igc3BlY2lhbCBjb21tYW5kcyB0aGF0IGNhbiBi ZSB1c2VkIGluIHRoZQpHVUQgaW50ZXJhY3Rpb24gYnVmZmVyLgoKICAgQXMgeW91IGRlYnVnIGEg cHJvZ3JhbSwgRW1hY3MgZGlzcGxheXMgdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcyBieQp2aXNp dGluZyB0aGVtIGluIEVtYWNzIGJ1ZmZlcnMsIHdpdGggYW4gYXJyb3cgaW4gdGhlIGxlZnQgZnJp bmdlCmluZGljYXRpbmcgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGxpbmUuICAoT24gYSB0ZXh0IHRl cm1pbmFsLCB0aGUgYXJyb3cKYXBwZWFycyBhcyDigJg9PuKAmSwgb3ZlcmxhaWQgb24gdGhlIGZp cnN0IHR3byB0ZXh0IGNvbHVtbnMuKSAgTW92aW5nIHBvaW50CmluIHN1Y2ggYSBidWZmZXIgZG9l cyBub3QgbW92ZSB0aGUgYXJyb3cuICBZb3UgYXJlIGZyZWUgdG8gZWRpdCB0aGVzZQpzb3VyY2Ug ZmlsZXMsIGJ1dCBub3RlIHRoYXQgaW5zZXJ0aW5nIG9yIGRlbGV0aW5nIGxpbmVzIHdpbGwgdGhy b3cgb2ZmCnRoZSBhcnJvd+KAmXMgcG9zaXRpb25pbmcsIGFzIEVtYWNzIGhhcyBubyB3YXkgdG8g ZmlndXJlIG91dCB3aGljaCBlZGl0ZWQKc291cmNlIGxpbmUgY29ycmVzcG9uZHMgdG8gdGhlIGxp bmUgcmVwb3J0ZWQgYnkgdGhlIGRlYnVnZ2VyIHN1YnByb2Nlc3MuClRvIHVwZGF0ZSB0aGlzIGlu Zm9ybWF0aW9uLCB5b3UgdHlwaWNhbGx5IGhhdmUgdG8gcmVjb21waWxlIGFuZCByZXN0YXJ0CnRo ZSBwcm9ncmFtLgoKICAgR1VEIFRvb2x0aXAgbW9kZSBpcyBhIGdsb2JhbCBtaW5vciBtb2RlIHRo YXQgYWRkcyB0b29sdGlwIHN1cHBvcnQgdG8KR1VELiAgVG8gdG9nZ2xlIHRoaXMgbW9kZSwgdHlw ZSDigJhNLXggZ3VkLXRvb2x0aXAtbW9kZeKAmS4gIEl0IGlzIGRpc2FibGVkCmJ5IGRlZmF1bHQu ICBJZiBlbmFibGVkLCB5b3UgY2FuIG1vdmUgdGhlIG1vdXNlIHBvaW50ZXIgb3ZlciBhIHZhcmlh YmxlLAphIGZ1bmN0aW9uLCBvciBhIG1hY3JvIChjb2xsZWN0aXZlbHkgY2FsbGVkICJpZGVudGlm aWVycyIpIHRvIHNob3cgdGhlaXIKdmFsdWVzIGluIHRvb2x0aXBzICgqbm90ZSBUb29sdGlwczo6 KS4gIElmIGp1c3QgcGxhY2luZyB0aGUgbW91c2UKcG9pbnRlciBvdmVyIGFuIGV4cHJlc3Npb24g ZG9lc27igJl0IHNob3cgdGhlIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIHlvdQpoYWQgaW4gbWlu ZCwgeW91IGNhbiB0ZWxsIEVtYWNzIG1vcmUgZXhwbGljaXRseSB3aGF0IGV4cHJlc3Npb24gdG8K ZXZhbHVhdGUgYnkgZHJhZ2dpbmcgdGhlIG1vdXNlIG92ZXIgdGhlIGV4cHJlc3Npb24sIHRoZW4g bGVhdmluZyB0aGUKbW91c2UgaW5zaWRlIHRoZSBtYXJrZWQgYXJlYS4gIFRoZSBHVUQgVG9vbHRp cCBtb2RlIHRha2VzIGVmZmVjdCBpbiB0aGUKR1VEIGludGVyYWN0aW9uIGJ1ZmZlciwgYW5kIGlu IGFsbCBzb3VyY2UgYnVmZmVycyB3aXRoIG1ham9yIG1vZGVzCmxpc3RlZCBpbiB0aGUgdmFyaWFi bGUg4oCYZ3VkLXRvb2x0aXAtbW9kZXPigJkuICBJZiB0aGUgdmFyaWFibGUK4oCYZ3VkLXRvb2x0 aXAtZWNoby1hcmVh4oCZIGlzIG5vbi3igJhuaWzigJksIG9yIGlmIHlvdSB0dXJuZWQgb2ZmIHRo ZSB0b29sdGlwCm1vZGUsIHZhbHVlcyBhcmUgc2hvd24gaW4gdGhlIGVjaG8gYXJlYSBpbnN0ZWFk IG9mIGEgdG9vbHRpcC4KCiAgIFdoZW4gdXNpbmcgR1VEIFRvb2x0aXAgbW9kZSB3aXRoIOKAmE0t eCBndWQtZ2Ri4oCZLCBkaXNwbGF5aW5nIGFuCmV4cHJlc3Npb27igJlzIHZhbHVlIGluIEdEQiBj YW4gc29tZXRpbWVzIGV4cGFuZCBhIG1hY3JvLCBwb3RlbnRpYWxseQpjYXVzaW5nIHNpZGUgZWZm ZWN0cyBpbiB0aGUgZGVidWdnZWQgcHJvZ3JhbS4gIEZvciB0aGF0IHJlYXNvbiwgdXNpbmcKdG9v bHRpcHMgaW4g4oCYZ3VkLWdkYuKAmSBpcyBkaXNhYmxlZC4gIElmIHlvdSB1c2UgdGhlIOKAmE0t eCBnZGLigJkgaW50ZXJmYWNlLAp0aGlzIHByb2JsZW0gZG9lcyBub3Qgb2NjdXIsIGFzIHRoZXJl IGlzIHNwZWNpYWwgY29kZSB0byBhdm9pZApzaWRlLWVmZmVjdHM7IGZ1cnRoZXJtb3JlLCB5b3Ug Y2FuIGRpc3BsYXkgbWFjcm8gZGVmaW5pdGlvbnMgYXNzb2NpYXRlZAp3aXRoIGFuIGlkZW50aWZp ZXIgd2hlbiB0aGUgcHJvZ3JhbSBpcyBub3QgZXhlY3V0aW5nLgoKCioqKiAyNy42LjMgQ29tbWFu ZHMgb2YgR1VECgpHVUQgcHJvdmlkZXMgY29tbWFuZHMgZm9yIHNldHRpbmcgYW5kIGNsZWFyaW5n IGJyZWFrcG9pbnRzLCBzZWxlY3RpbmcKc3RhY2sgZnJhbWVzLCBhbmQgc3RlcHBpbmcgdGhyb3Vn aCB0aGUgcHJvZ3JhbS4KCuKAmEMteCBDLWEgQy1i4oCZCiAgICAgU2V0IGEgYnJlYWtwb2ludCBv biB0aGUgc291cmNlIGxpbmUgdGhhdCBwb2ludCBpcyBvbi4KCiAgIOKAmEMteCBDLWEgQy1i4oCZ ICjigJhndWQtYnJlYWvigJkpLCB3aGVuIGNhbGxlZCBpbiBhIHNvdXJjZSBidWZmZXIsIHNldHMg YQpkZWJ1Z2dlciBicmVha3BvaW50IG9uIHRoZSBjdXJyZW50IHNvdXJjZSBsaW5lLiAgVGhpcyBj b21tYW5kIGlzCmF2YWlsYWJsZSBvbmx5IGFmdGVyIHN0YXJ0aW5nIEdVRC4gIElmIHlvdSBjYWxs IGl0IGluIGEgYnVmZmVyIHRoYXQgaXMKbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgZGVidWdnZXIg c3VicHJvY2VzcywgaXQgc2lnbmFscyBhbiBlcnJvci4KCiAgIFRoZSBmb2xsb3dpbmcgY29tbWFu ZHMgYXJlIGF2YWlsYWJsZSBib3RoIGluIHRoZSBHVUQgaW50ZXJhY3Rpb24KYnVmZmVyIGFuZCBn bG9iYWxseSwgYnV0IHdpdGggZGlmZmVyZW50IGtleSBiaW5kaW5ncy4gIFRoZSBrZXlzIHN0YXJ0 aW5nCndpdGgg4oCYQy1j4oCZIGFyZSBhdmFpbGFibGUgb25seSBpbiB0aGUgR1VEIGludGVyYWN0 aW9uIGJ1ZmZlciwgd2hpbGUgdGhvc2UKc3RhcnRpbmcgd2l0aCDigJhDLXggQy1h4oCZIGFyZSBh dmFpbGFibGUgZ2xvYmFsbHkuICBTb21lIG9mIHRoZXNlIGNvbW1hbmRzCmFyZSBhbHNvIGF2YWls YWJsZSB2aWEgdGhlIHRvb2wgYmFyOyBzb21lIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGNlcnRhaW4K ZGVidWdnZXJzLgoK4oCYQy1jIEMtbOKAmQrigJhDLXggQy1hIEMtbOKAmQogICAgIERpc3BsYXks IGluIGFub3RoZXIgd2luZG93LCB0aGUgbGFzdCBzb3VyY2UgbGluZSByZWZlcnJlZCB0byBpbiB0 aGUKICAgICBHVUQgaW50ZXJhY3Rpb24gYnVmZmVyICjigJhndWQtcmVmcmVzaOKAmSkuCgrigJhD LWMgQy1z4oCZCuKAmEMteCBDLWEgQy1z4oCZCiAgICAgRXhlY3V0ZSB0aGUgbmV4dCBzaW5nbGUg bGluZSBvZiBjb2RlICjigJhndWQtc3RlcOKAmSkuICBJZiB0aGUgbGluZQogICAgIGNvbnRhaW5z IGEgZnVuY3Rpb24gY2FsbCwgZXhlY3V0aW9uIHN0b3BzIGFmdGVyIGVudGVyaW5nIHRoZSBjYWxs ZWQKICAgICBmdW5jdGlvbi4KCuKAmEMtYyBDLW7igJkK4oCYQy14IEMtYSBDLW7igJkKICAgICBF eGVjdXRlIHRoZSBuZXh0IHNpbmdsZSBsaW5lIG9mIGNvZGUsIHN0ZXBwaW5nIGFjcm9zcyBmdW5j dGlvbgogICAgIGNhbGxzIHdpdGhvdXQgc3RvcHBpbmcgaW5zaWRlIHRoZSBmdW5jdGlvbnMgKOKA mGd1ZC1uZXh04oCZKS4KCuKAmEMtYyBDLWnigJkK4oCYQy14IEMtYSBDLWnigJkKICAgICBFeGVj dXRlIGEgc2luZ2xlIG1hY2hpbmUgaW5zdHJ1Y3Rpb24gKOKAmGd1ZC1zdGVwaeKAmSkuCgrigJhD LWMgQy1w4oCZCuKAmEMteCBDLWEgQy1w4oCZCiAgICAgRXZhbHVhdGUgdGhlIGV4cHJlc3Npb24g YXQgcG9pbnQgKOKAmGd1ZC1wcmludOKAmSkuICBJZiBFbWFjcyBkb2VzIG5vdAogICAgIHByaW50 IHRoZSBleGFjdCBleHByZXNzaW9uIHRoYXQgeW91IHdhbnQsIG1hcmsgaXQgYXMgYSByZWdpb24K ICAgICBmaXJzdC4KCuKAmEMtYyBDLXLigJkK4oCYQy14IEMtYSBDLXLigJkKICAgICBDb250aW51 ZSBleGVjdXRpb24gd2l0aG91dCBzcGVjaWZ5aW5nIGFueSBzdG9wcGluZyBwb2ludC4gIFRoZQog ICAgIHByb2dyYW0gd2lsbCBydW4gdW50aWwgaXQgaGl0cyBhIGJyZWFrcG9pbnQsIHRlcm1pbmF0 ZXMsIG9yIGdldHMgYQogICAgIHNpZ25hbCB0aGF0IHRoZSBkZWJ1Z2dlciBpcyBjaGVja2luZyBm b3IgKOKAmGd1ZC1jb2504oCZKS4KCuKAmEMtYyBDLWTigJkK4oCYQy14IEMtYSBDLWTigJkKICAg ICBEZWxldGUgdGhlIGJyZWFrcG9pbnQocykgb24gdGhlIGN1cnJlbnQgc291cmNlIGxpbmUsIGlm IGFueQogICAgICjigJhndWQtcmVtb3Zl4oCZKS4gIElmIHlvdSB1c2UgdGhpcyBjb21tYW5kIGlu IHRoZSBHVUQgaW50ZXJhY3Rpb24KICAgICBidWZmZXIsIGl0IGFwcGxpZXMgdG8gdGhlIGxpbmUg d2hlcmUgdGhlIHByb2dyYW0gbGFzdCBzdG9wcGVkLgoK4oCYQy1jIEMtdOKAmQrigJhDLXggQy1h IEMtdOKAmQogICAgIFNldCBhIHRlbXBvcmFyeSBicmVha3BvaW50IG9uIHRoZSBjdXJyZW50IHNv dXJjZSBsaW5lLCBpZiBhbnkKICAgICAo4oCYZ3VkLXRicmVha+KAmSkuICBJZiB5b3UgdXNlIHRo aXMgY29tbWFuZCBpbiB0aGUgR1VEIGludGVyYWN0aW9uCiAgICAgYnVmZmVyLCBpdCBhcHBsaWVz IHRvIHRoZSBsaW5lIHdoZXJlIHRoZSBwcm9ncmFtIGxhc3Qgc3RvcHBlZC4KCuKAmEMtYyA84oCZ CuKAmEMteCBDLWEgPOKAmQogICAgIFNlbGVjdCB0aGUgbmV4dCBlbmNsb3Npbmcgc3RhY2sgZnJh bWUgKOKAmGd1ZC11cOKAmSkuICBUaGlzIGlzCiAgICAgZXF1aXZhbGVudCB0byB0aGUgR0RCIGNv bW1hbmQg4oCYdXDigJkuCgrigJhDLWMgPuKAmQrigJhDLXggQy1hID7igJkKICAgICBTZWxlY3Qg dGhlIG5leHQgaW5uZXIgc3RhY2sgZnJhbWUgKOKAmGd1ZC1kb3du4oCZKS4gIFRoaXMgaXMgZXF1 aXZhbGVudAogICAgIHRvIHRoZSBHREIgY29tbWFuZCDigJhkb3du4oCZLgoK4oCYQy1jIEMtdeKA mQrigJhDLXggQy1hIEMtdeKAmQogICAgIENvbnRpbnVlIGV4ZWN1dGlvbiB0byB0aGUgY3VycmVu dCBsaW5lICjigJhndWQtdW50aWzigJkpLiAgVGhlIHByb2dyYW0KICAgICB3aWxsIHJ1biB1bnRp bCBpdCBoaXRzIGEgYnJlYWtwb2ludCwgdGVybWluYXRlcywgZ2V0cyBhIHNpZ25hbCB0aGF0CiAg ICAgdGhlIGRlYnVnZ2VyIGlzIGNoZWNraW5nIGZvciwgb3IgcmVhY2hlcyB0aGUgbGluZSBvbiB3 aGljaCB0aGUKICAgICBjdXJzb3IgY3VycmVudGx5IHNpdHMuCgrigJhDLWMgQy1m4oCZCuKAmEMt eCBDLWEgQy1m4oCZCiAgICAgUnVuIHRoZSBwcm9ncmFtIHVudGlsIHRoZSBzZWxlY3RlZCBzdGFj ayBmcmFtZSByZXR1cm5zIG9yIHN0b3BzIGZvcgogICAgIHNvbWUgb3RoZXIgcmVhc29uICjigJhn dWQtZmluaXNo4oCZKS4KCiAgIElmIHlvdSBhcmUgdXNpbmcgR0RCLCB0aGVzZSBhZGRpdGlvbmFs IGtleSBiaW5kaW5ncyBhcmUgYXZhaWxhYmxlOgoK4oCYQy14IEMtYSBDLWrigJkKICAgICBPbmx5 IHVzZWZ1bCBpbiBhIHNvdXJjZSBidWZmZXIsIOKAmGd1ZC1qdW1w4oCZIHRyYW5zZmVycyB0aGUg cHJvZ3JhbeKAmXMKICAgICBleGVjdXRpb24gcG9pbnQgdG8gdGhlIGN1cnJlbnQgbGluZS4gIElu IG90aGVyIHdvcmRzLCB0aGUgbmV4dCBsaW5lCiAgICAgdGhhdCB0aGUgcHJvZ3JhbSBleGVjdXRl cyB3aWxsIGJlIHRoZSBvbmUgd2hlcmUgeW91IGdhdmUgdGhlCiAgICAgY29tbWFuZC4gIElmIHRo ZSBuZXcgZXhlY3V0aW9uIGxpbmUgaXMgaW4gYSBkaWZmZXJlbnQgZnVuY3Rpb24gZnJvbQogICAg IHRoZSBwcmV2aW91c2x5IG9uZSwgR0RCIHByb21wdHMgZm9yIGNvbmZpcm1hdGlvbiBzaW5jZSB0 aGUgcmVzdWx0cwogICAgIG1heSBiZSBiaXphcnJlLiAgU2VlIHRoZSBHREIgbWFudWFsIGVudHJ5 IHJlZ2FyZGluZyDigJhqdW1w4oCZIGZvcgogICAgIGRldGFpbHMuCgrigJg8VEFCPuKAmQogICAg IFdpdGggR0RCLCBjb21wbGV0ZSBhIHN5bWJvbCBuYW1lICjigJhndWQtZ2RiLWNvbXBsZXRlLWNv bW1hbmTigJkpLgogICAgIFRoaXMga2V5IGlzIGF2YWlsYWJsZSBvbmx5IGluIHRoZSBHVUQgaW50 ZXJhY3Rpb24gYnVmZmVyLgoKICAgVGhlc2UgY29tbWFuZHMgaW50ZXJwcmV0IGEgbnVtZXJpYyBh cmd1bWVudCBhcyBhIHJlcGVhdCBjb3VudCwgd2hlbgp0aGF0IG1ha2VzIHNlbnNlLgoKICAgQmVj YXVzZSA8VEFCPiBzZXJ2ZXMgYXMgYSBjb21wbGV0aW9uIGNvbW1hbmQsIHlvdSBjYW7igJl0IHVz ZSBpdCB0bwplbnRlciBhIHRhYiBhcyBpbnB1dCB0byB0aGUgcHJvZ3JhbSB5b3UgYXJlIGRlYnVn Z2luZyB3aXRoIEdEQi4KSW5zdGVhZCwgdHlwZSDigJhDLXEgPFRBQj7igJkgdG8gZW50ZXIgYSB0 YWIuCgoKKioqIDI3LjYuNCBHVUQgQ3VzdG9taXphdGlvbgoKT24gc3RhcnR1cCwgR1VEIHJ1bnMg b25lIG9mIHRoZSBmb2xsb3dpbmcgaG9va3M6IOKAmGdkYi1tb2RlLWhvb2vigJksIGlmIHlvdQph cmUgdXNpbmcgR0RCOyDigJhkYngtbW9kZS1ob29r4oCZLCBpZiB5b3UgYXJlIHVzaW5nIERCWDsg 4oCYc2RiLW1vZGUtaG9va+KAmSwKaWYgeW91IGFyZSB1c2luZyBTREI7IOKAmHhkYi1tb2RlLWhv b2vigJksIGlmIHlvdSBhcmUgdXNpbmcgWERCOwrigJhndWlsZXItbW9kZS1ob29r4oCZIGZvciBH dWlsZSBSRVBMIGRlYnVnZ2luZzsg4oCYcGVybGRiLW1vZGUtaG9va+KAmSwgZm9yClBlcmwgZGVi dWdnaW5nIG1vZGU7IOKAmHBkYi1tb2RlLWhvb2vigJksIGZvciBQREI7IOKAmGpkYi1tb2RlLWhv b2vigJksIGZvciBKREIuCipOb3RlIEhvb2tzOjouCgogICBUaGUg4oCYZ3VkLWRlZuKAmSBMaXNw IG1hY3JvICgqbm90ZSAoZWxpc3ApRGVmaW5pbmcgTWFjcm9zOjopIHByb3ZpZGVzIGEKY29udmVu aWVudCB3YXkgdG8gZGVmaW5lIGFuIEVtYWNzIGNvbW1hbmQgdGhhdCBzZW5kcyBhIHBhcnRpY3Vs YXIKY29tbWFuZCBzdHJpbmcgdG8gdGhlIGRlYnVnZ2VyLCBhbmQgc2V0IHVwIGEga2V5IGJpbmRp bmcgZm9yIGluIHRoZSBHVUQKaW50ZXJhY3Rpb24gYnVmZmVyOgoKICAgICAoZ3VkLWRlZiBGVU5D VElPTiBDTURTVFJJTkcgQklORElORyBET0NTVFJJTkcpCgogICBUaGlzIGRlZmluZXMgYSBjb21t YW5kIG5hbWVkIEZVTkNUSU9OIHdoaWNoIHNlbmRzIENNRFNUUklORyB0byB0aGUKZGVidWdnZXIg cHJvY2VzcywgYW5kIGdpdmVzIGl0IHRoZSBkb2N1bWVudGF0aW9uIHN0cmluZyBET0NTVFJJTkcu ICBZb3UKY2FuIHRoZW4gdXNlIHRoZSBjb21tYW5kIEZVTkNUSU9OIGluIGFueSBidWZmZXIuICBJ ZiBCSU5ESU5HIGlzCm5vbi3igJhuaWzigJksIOKAmGd1ZC1kZWbigJkgYWxzbyBiaW5kcyB0aGUg Y29tbWFuZCB0byDigJhDLWMgQklORElOR+KAmSBpbiB0aGUgR1VECmJ1ZmZlcuKAmXMgbW9kZSBh bmQgdG8g4oCYQy14IEMtYSBCSU5ESU5H4oCZIGdlbmVyYWxseS4KCiAgIFRoZSBjb21tYW5kIHN0 cmluZyBDTURTVFJJTkcgbWF5IGNvbnRhaW4gY2VydGFpbiDigJgl4oCZLXNlcXVlbmNlcyB0aGF0 CnN0YW5kIGZvciBkYXRhIHRvIGJlIGZpbGxlZCBpbiBhdCB0aGUgdGltZSBGVU5DVElPTiBpcyBj YWxsZWQ6CgrigJglZuKAmQogICAgIFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHNvdXJjZSBmaWxl LiAgSWYgdGhlIGN1cnJlbnQgYnVmZmVyIGlzIHRoZQogICAgIEdVRCBidWZmZXIsIHRoZW4gdGhl IGN1cnJlbnQgc291cmNlIGZpbGUgaXMgdGhlIGZpbGUgdGhhdCB0aGUKICAgICBwcm9ncmFtIHN0 b3BwZWQgaW4uCgrigJglbOKAmQogICAgIFRoZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgc291cmNl IGxpbmUuICBJZiB0aGUgY3VycmVudCBidWZmZXIgaXMKICAgICB0aGUgR1VEIGJ1ZmZlciwgdGhl biB0aGUgY3VycmVudCBzb3VyY2UgbGluZSBpcyB0aGUgbGluZSB0aGF0IHRoZQogICAgIHByb2dy YW0gc3RvcHBlZCBpbi4KCuKAmCVl4oCZCiAgICAgSW4gdHJhbnNpZW50LW1hcmstbW9kZSB0aGUg dGV4dCBpbiB0aGUgcmVnaW9uLCBpZiBpdCBpcyBhY3RpdmUuCiAgICAgT3RoZXJ3aXNlIHRoZSB0 ZXh0IG9mIHRoZSBDIGx2YWx1ZSBvciBmdW5jdGlvbi1jYWxsIGV4cHJlc3Npb24gYXQKICAgICBv ciBhZGphY2VudCB0byBwb2ludC4KCuKAmCVh4oCZCiAgICAgVGhlIHRleHQgb2YgdGhlIGhleGFk ZWNpbWFsIGFkZHJlc3MgYXQgb3IgYWRqYWNlbnQgdG8gcG9pbnQuCgrigJglcOKAmQogICAgIFRo ZSBudW1lcmljIGFyZ3VtZW50IG9mIHRoZSBjYWxsZWQgZnVuY3Rpb24sIGFzIGEgZGVjaW1hbCBu dW1iZXIuCiAgICAgSWYgdGhlIGNvbW1hbmQgaXMgdXNlZCB3aXRob3V0IGEgbnVtZXJpYyBhcmd1 bWVudCwg4oCYJXDigJkgc3RhbmRzIGZvcgogICAgIHRoZSBlbXB0eSBzdHJpbmcuCgogICAgIElm IHlvdSBkb27igJl0IHVzZSDigJglcOKAmSBpbiB0aGUgY29tbWFuZCBzdHJpbmcsIHRoZSBjb21t YW5kIHlvdSBkZWZpbmUKICAgICBpZ25vcmVzIGFueSBudW1lcmljIGFyZ3VtZW50LgoK4oCYJWTi gJkKICAgICBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IHNvdXJjZSBm aWxlLgoK4oCYJWPigJkKICAgICBGdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBkZXJpdmVkIGZy b20gdGhlIGV4cHJlc3Npb24gc3Vycm91bmRpbmcKICAgICBwb2ludCAoamRiIG9ubHkpLgoKCioq KiAyNy42LjUgR0RCIEdyYXBoaWNhbCBJbnRlcmZhY2UKClRoZSBjb21tYW5kIOKAmE0teCBnZGLi gJkgc3RhcnRzIEdEQiBpbiBhbiBJREUtbGlrZSBpbnRlcmZhY2UsIHdpdGgKc3BlY2lhbGl6ZWQg YnVmZmVycyBmb3IgY29udHJvbGxpbmcgYnJlYWtwb2ludHMsIHN0YWNrIGZyYW1lcywgYW5kIG90 aGVyCmFzcGVjdHMgb2YgdGhlIGRlYnVnZ2VyIHN0YXRlLiAgSXQgYWxzbyBwcm92aWRlcyBhZGRp dGlvbmFsIHdheXMgdG8KY29udHJvbCB0aGUgZGVidWdnaW5nIHNlc3Npb24gd2l0aCB0aGUgbW91 c2UsIHN1Y2ggYXMgY2xpY2tpbmcgaW4gdGhlCmZyaW5nZSBvZiBhIHNvdXJjZSBidWZmZXIgdG8g c2V0IGEgYnJlYWtwb2ludCB0aGVyZS4KCiAgIFRvIHJ1biBHREIgdXNpbmcganVzdCB0aGUgR1VE IGludGVyYWN0aW9uIGJ1ZmZlciBpbnRlcmZhY2UsIHdpdGhvdXQKdGhlc2UgYWRkaXRpb25hbCBm ZWF0dXJlcywgdXNlIOKAmE0teCBndWQtZ2Ri4oCZICgqbm90ZSBTdGFydGluZyBHVUQ6OikuCllv dSBtdXN0IHVzZSB0aGlzIGlmIHlvdSB3YW50IHRvIGRlYnVnIG11bHRpcGxlIHByb2dyYW1zIHdp dGhpbiBvbmUKRW1hY3Mgc2Vzc2lvbiwgYXMgdGhhdCBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQg Ynkg4oCYTS14IGdkYuKAmS4KCiAgIEludGVybmFsbHksIOKAmE0teCBnZGLigJkgaW5mb3JtcyBH REIgdGhhdCBpdHMgc2NyZWVuIHNpemUgaXMgdW5saW1pdGVkOwpmb3IgY29ycmVjdCBvcGVyYXRp b24sIHlvdSBtdXN0IG5vdCBjaGFuZ2UgR0RC4oCZcyBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aAp2 YWx1ZXMgZHVyaW5nIHRoZSBkZWJ1Z2dpbmcgc2Vzc2lvbi4KCisgTWVudToKCiAgLSBHREIgVXNl ciBJbnRlcmZhY2UgTGF5b3V0OjogICBDb250cm9sIHRoZSBudW1iZXIgb2YgZGlzcGxheWVkIGJ1 ZmZlcnMuCiAgLSBTb3VyY2UgQnVmZmVyczo6ICAgICAgICAgICAgICBVc2UgdGhlIG1vdXNlIGlu IHRoZSBmcmluZ2UvbWFyZ2luIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dHJvbCB5b3VyIHByb2dyYW0uCiAgLSBCcmVha3BvaW50cyBCdWZmZXI6OiAgICAgICAgICBBIGJy ZWFrcG9pbnQgY29udHJvbCBwYW5lbC4KICAtIFRocmVhZHMgQnVmZmVyOjogICAgICAgICAgICAg IERpc3BsYXlzIHlvdXIgdGhyZWFkcy4KICAtIFN0YWNrIEJ1ZmZlcjo6ICAgICAgICAgICAgICAg IFNlbGVjdCBhIGZyYW1lIGZyb20gdGhlIGNhbGwgc3RhY2suCiAgLSBPdGhlciBHREIgQnVmZmVy czo6ICAgICAgICAgICBPdGhlciBidWZmZXJzIGZvciBjb250cm9sbGluZyB0aGUgR0RCIHN0YXRl LgogIC0gV2F0Y2ggRXhwcmVzc2lvbnM6OiAgICAgICAgICAgTW9uaXRvciB2YXJpYWJsZSB2YWx1 ZXMgaW4gdGhlIHNwZWVkYmFyLgogIC0gTXVsdGl0aHJlYWRlZCBEZWJ1Z2dpbmc6OiAgICAgRGVi dWdnaW5nIHByb2dyYW1zIHdpdGggc2V2ZXJhbCB0aHJlYWRzLgoKCioqKiogMjcuNi41LjEgR0RC IFVzZXIgSW50ZXJmYWNlIExheW91dAoKSWYgdGhlIHZhcmlhYmxlIOKAmGdkYi1tYW55LXdpbmRv d3PigJkgaXMg4oCYbmls4oCZICh0aGUgZGVmYXVsdCksIOKAmE0teCBnZGLigJkKbm9ybWFsbHkg ZGlzcGxheXMgb25seSB0aGUgR1VEIGludGVyYWN0aW9uIGJ1ZmZlci4gIEhvd2V2ZXIsIGlmIHRo ZQp2YXJpYWJsZSDigJhnZGItc2hvdy1tYWlu4oCZIGlzIGFsc28gbm9uLeKAmG5pbOKAmSwgaXQg c3RhcnRzIHdpdGggdHdvIHdpbmRvd3M6Cm9uZSBkaXNwbGF5aW5nIHRoZSBHVUQgaW50ZXJhY3Rp b24gYnVmZmVyLCBhbmQgdGhlIG90aGVyIHNob3dpbmcgdGhlCnNvdXJjZSBmb3IgdGhlIOKAmG1h aW7igJkgZnVuY3Rpb24gb2YgdGhlIHByb2dyYW0geW91IGFyZSBkZWJ1Z2dpbmcuCgogICBJZiDi gJhnZGItbWFueS13aW5kb3dz4oCZIGlzIG5vbi3igJhuaWzigJksIHRoZW4g4oCYTS14IGdkYuKA mSBkaXNwbGF5cyB0aGUKZm9sbG93aW5nIGZyYW1lIGxheW91dDoKCiAgICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwog ICAgIHwgICBHVUQgaW50ZXJhY3Rpb24gYnVmZmVyICAgICAgIHwgICBMb2NhbHMvUmVnaXN0ZXJz IGJ1ZmZlciAgICAgIHwKICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICAgfCAgIFByaW1hcnkgU291cmNlIGJ1 ZmZlciAgICAgICAgfCAgIEkvTyBidWZmZXIgZm9yIGRlYnVnZ2VkIHBnbSAgfAogICAgIHwtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKICAgICB8ICAgU3RhY2sgYnVmZmVyICAgICAgICAgICAgICAgICB8ICAgQnJlYWtwb2lu dHMvVGhyZWFkcyBidWZmZXIgICB8CiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKICAgSWYgeW91IGV2ZXIgY2hh bmdlIHRoZSB3aW5kb3cgbGF5b3V0LCB5b3UgY2FuIHJlc3RvcmUgdGhlCm1hbnktd2luZG93cyBs YXlvdXQgYnkgdHlwaW5nIOKAmE0teCBnZGItcmVzdG9yZS13aW5kb3dz4oCZLiAgVG8gdG9nZ2xl CmJldHdlZW4gdGhlIG1hbnkgd2luZG93cyBsYXlvdXQgYW5kIGEgc2ltcGxlIGxheW91dCB3aXRo IGp1c3QgdGhlIEdVRAppbnRlcmFjdGlvbiBidWZmZXIgYW5kIGEgc291cmNlIGZpbGUsIHR5cGUg 4oCYTS14IGdkYi1tYW55LXdpbmRvd3PigJkuCgogICBJZiB5b3UgaGF2ZSBhbiBlbGFib3JhdGUg d2luZG93IHNldHVwLCBhbmQgZG9u4oCZdCB3YW50CuKAmGdkYi1tYW55LXdpbmRvd3PigJkgdG8g ZGlzcnVwdCB0aGF0LCBpdCBpcyBiZXR0ZXIgdG8gaW52b2tlIOKAmE0teCBnZGLigJkgaW4KYSBz ZXBhcmF0ZSBmcmFtZSB0byBiZWdpbiB3aXRoLCB0aGVuIHRoZSBhcnJhbmdlbWVudCBvZiB3aW5k b3dzIG9uIHlvdXIKb3JpZ2luYWwgZnJhbWUgd2lsbCBub3QgYmUgYWZmZWN0ZWQuICBBIHNlcGFy YXRlIGZyYW1lIGZvciBHREIgc2Vzc2lvbnMKY2FuIGNvbWUgaW4gZXNwZWNpYWxseSBoYW5keSBp ZiB5b3Ugd29yayBvbiBhIHRleHQtbW9kZSB0ZXJtaW5hbCwgd2hlcmUKdGhlIHNjcmVlbiBlc3Rh dGUgZm9yIHdpbmRvd3MgY291bGQgYmUgYXQgYSBwcmVtaXVtLgoKICAgWW91IG1heSBhbHNvIHNw ZWNpZnkgYWRkaXRpb25hbCBHREItcmVsYXRlZCBidWZmZXJzIHRvIGRpc3BsYXksCmVpdGhlciBp biB0aGUgc2FtZSBmcmFtZSBvciBhIGRpZmZlcmVudCBvbmUuICBTZWxlY3QgdGhlIGJ1ZmZlcnMg eW91CndhbnQgYnkgdHlwaW5nIOKAmE0teCBnZGItZGlzcGxheS1CVUZGRVJUWVBFLWJ1ZmZlcuKA mSBvciDigJhNLXgKZ2RiLWZyYW1lLUJVRkZFUlRZUEUtYnVmZmVy4oCZLCB3aGVyZSBCVUZGRVJU WVBFIGlzIHRoZSByZWxldmFudCBidWZmZXIKdHlwZSwgc3VjaCBhcyDigJhicmVha3BvaW50c+KA mS4gIFlvdSBjYW4gZG8gdGhlIHNhbWUgd2l0aCB0aGUgbWVudSBiYXIsCndpdGggdGhlIOKAmEdE Qi1XaW5kb3dz4oCZIGFuZCDigJhHREItRnJhbWVz4oCZIHN1Yi1tZW51cyBvZiB0aGUg4oCYR1VE 4oCZIG1lbnUuCgogICBXaGVuIHlvdSBmaW5pc2ggZGVidWdnaW5nLCBraWxsIHRoZSBHVUQgaW50 ZXJhY3Rpb24gYnVmZmVyIHdpdGgg4oCYQy14CmvigJksIHdoaWNoIHdpbGwgYWxzbyBraWxsIGFs bCB0aGUgYnVmZmVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNlc3Npb24uCkhvd2V2ZXIgeW91IG5l ZWQgbm90IGRvIHRoaXMgaWYsIGFmdGVyIGVkaXRpbmcgYW5kIHJlLWNvbXBpbGluZyB5b3VyCnNv dXJjZSBjb2RlIHdpdGhpbiBFbWFjcywgeW91IHdpc2ggdG8gY29udGludWUgZGVidWdnaW5nLiAg V2hlbiB5b3UKcmVzdGFydCBleGVjdXRpb24sIEdEQiBhdXRvbWF0aWNhbGx5IGZpbmRzIHRoZSBu ZXcgZXhlY3V0YWJsZS4gIEtlZXBpbmcKdGhlIEdVRCBpbnRlcmFjdGlvbiBidWZmZXIgaGFzIHRo ZSBhZHZhbnRhZ2Ugb2Yga2VlcGluZyB0aGUgc2hlbGwKaGlzdG9yeSBhcyB3ZWxsIGFzIEdEQuKA mXMgYnJlYWtwb2ludHMuICBZb3UgZG8gbmVlZCB0byBjaGVjayB0aGF0IHRoZQpicmVha3BvaW50 cyBpbiByZWNlbnRseSBlZGl0ZWQgc291cmNlIGZpbGVzIGFyZSBzdGlsbCBpbiB0aGUgcmlnaHQK cGxhY2VzLgoKCioqKiogMjcuNi41LjIgU291cmNlIEJ1ZmZlcnMKCuKAmG1vdXNlLTHigJkgKGlu IGZyaW5nZSkKICAgICBTZXQgb3IgY2xlYXIgYSBicmVha3BvaW50IG9uIHRoYXQgbGluZQogICAg ICjigJhnZGItbW91c2Utc2V0LWNsZWFyLWJyZWFrcG9pbnTigJkpLgoK4oCYQy1tb3VzZS0x4oCZ IChpbiBmcmluZ2UpCiAgICAgRW5hYmxlIG9yIGRpc2FibGUgYSBicmVha3BvaW50IG9uIHRoYXQg bGluZQogICAgICjigJhnZGItbW91c2UtdG9nZ2xlLWJyZWFrcG9pbnQtbWFyZ2lu4oCZKS4KCuKA mG1vdXNlLTPigJkgKGluIGZyaW5nZSkKICAgICBDb250aW51ZSBleGVjdXRpb24gdG8gdGhhdCBs aW5lICjigJhnZGItbW91c2UtdW50aWzigJkpLgoK4oCYQy1tb3VzZS0z4oCZIChpbiBmcmluZ2Up CiAgICAgSnVtcCB0byB0aGF0IGxpbmUgKOKAmGdkYi1tb3VzZS1qdW1w4oCZKS4KCiAgIE9uIGEg Z3JhcGhpY2FsIGRpc3BsYXksIHlvdSBjYW4gY2xpY2sg4oCYbW91c2UtMeKAmSBpbiB0aGUgZnJp bmdlIG9mIGEKc291cmNlIGJ1ZmZlciwgdG8gc2V0IGEgYnJlYWtwb2ludCBvbiB0aGF0IGxpbmUg KCpub3RlIEZyaW5nZXM6OikuICBBCnJlZCBkb3QgYXBwZWFycyBpbiB0aGUgZnJpbmdlLCB3aGVy ZSB5b3UgY2xpY2tlZC4gIElmIGEgYnJlYWtwb2ludAphbHJlYWR5IGV4aXN0cyB0aGVyZSwgdGhl IGNsaWNrIHJlbW92ZXMgaXQuICBBIOKAmEMtbW91c2UtMeKAmSBjbGljayBlbmFibGVzCm9yIGRp c2FibGVzIGFuIGV4aXN0aW5nIGJyZWFrcG9pbnQ7IGEgYnJlYWtwb2ludCB0aGF0IGlzIGRpc2Fi bGVkLCBidXQKbm90IHVuc2V0LCBpcyBpbmRpY2F0ZWQgYnkgYSBncmF5IGRvdC4KCiAgIE9uIGEg dGV4dCB0ZXJtaW5hbCwgb3Igd2hlbiBmcmluZ2VzIGFyZSBkaXNhYmxlZCwgZW5hYmxlZCBicmVh a3BvaW50cwphcmUgaW5kaWNhdGVkIHdpdGggYSDigJhC4oCZIGNoYXJhY3RlciBpbiB0aGUgbGVm dCBtYXJnaW4gb2YgdGhlIHdpbmRvdy4KRGlzYWJsZWQgYnJlYWtwb2ludHMgYXJlIGluZGljYXRl ZCB3aXRoIOKAmGLigJkuICAoVGhlIG1hcmdpbiBpcyBvbmx5CmRpc3BsYXllZCBpZiBhIGJyZWFr cG9pbnQgaXMgcHJlc2VudC4pCgogICBBIHNvbGlkIGFycm93IGluIHRoZSBsZWZ0IGZyaW5nZSBv ZiBhIHNvdXJjZSBidWZmZXIgaW5kaWNhdGVzIHRoZQpsaW5lIG9mIHRoZSBpbm5lcm1vc3QgZnJh bWUgd2hlcmUgdGhlIGRlYnVnZ2VkIHByb2dyYW0gaGFzIHN0b3BwZWQuICBBCmhvbGxvdyBhcnJv dyBpbmRpY2F0ZXMgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGxpbmUgb2YgYSBoaWdoZXItbGV2ZWwK ZnJhbWUuICBJZiB5b3UgZHJhZyB0aGUgYXJyb3cgaW4gdGhlIGZyaW5nZSB3aXRoIOKAmG1vdXNl LTHigJksIHRoYXQgY2F1c2VzCmV4ZWN1dGlvbiB0byBhZHZhbmNlIHRvIHRoZSBsaW5lIHdoZXJl IHlvdSByZWxlYXNlIHRoZSBidXR0b24uCkFsdGVybmF0aXZlbHksIHlvdSBjYW4gY2xpY2sg4oCY bW91c2UtM+KAmSBpbiB0aGUgZnJpbmdlIHRvIGFkdmFuY2UgdG8gdGhhdApsaW5lLiAgWW91IGNh biBjbGljayDigJhDLW1vdXNlLTPigJkgaW4gdGhlIGZyaW5nZSB0byBqdW1wIHRvIHRoYXQgbGlu ZQp3aXRob3V0IGV4ZWN1dGluZyB0aGUgaW50ZXJtZWRpYXRlIGxpbmVzLiAgVGhpcyBjb21tYW5k IGFsbG93cyB5b3UgdG8gZ28KYmFja3dhcmRzLCB3aGljaCBjYW4gYmUgdXNlZnVsIGZvciBydW5u aW5nIHRocm91Z2ggY29kZSB0aGF0IGhhcyBhbHJlYWR5CmV4ZWN1dGVkLCBpbiBvcmRlciB0byBl eGFtaW5lIGl0cyBleGVjdXRpb24gaW4gbW9yZSBkZXRhaWwuCgoKKioqKiAyNy42LjUuMyBCcmVh a3BvaW50cyBCdWZmZXIKClRoZSBHREIgQnJlYWtwb2ludHMgYnVmZmVyIHNob3dzIHRoZSBicmVh a3BvaW50cywgd2F0Y2hwb2ludHMgYW5kCmNhdGNocG9pbnRzIGluIHRoZSBkZWJ1Z2dlciBzZXNz aW9uLiAgKk5vdGUgKGdkYilCcmVha3BvaW50czo6LiAgSXQKcHJvdmlkZXMgdGhlIGZvbGxvd2lu ZyBjb21tYW5kcywgd2hpY2ggbW9zdGx5IGFwcGx5IHRvIHRoZSAiY3VycmVudApicmVha3BvaW50 IiAodGhlIGJyZWFrcG9pbnQgd2hpY2ggcG9pbnQgaXMgb24pOgoK4oCYPFNQQz7igJkKICAgICBF bmFibGUvZGlzYWJsZSBjdXJyZW50IGJyZWFrcG9pbnQgKOKAmGdkYi10b2dnbGUtYnJlYWtwb2lu dOKAmSkuICBPbiBhCiAgICAgZ3JhcGhpY2FsIGRpc3BsYXksIHRoaXMgY2hhbmdlcyB0aGUgY29s b3Igb2YgdGhlIGRvdCBpbiB0aGUgZnJpbmdlCiAgICAgb2YgdGhlIHNvdXJjZSBidWZmZXIgYXQg dGhhdCBsaW5lLiAgVGhlIGRvdCBpcyByZWQgd2hlbiB0aGUKICAgICBicmVha3BvaW50IGlzIGVu YWJsZWQsIGFuZCBncmF5IHdoZW4gaXQgaXMgZGlzYWJsZWQuCgrigJhE4oCZCiAgICAgRGVsZXRl IHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgKOKAmGdkYi1kZWxldGUtYnJlYWtwb2ludOKAmSkuCgri gJg8UkVUPuKAmQogICAgIFZpc2l0IHRoZSBzb3VyY2UgbGluZSBmb3IgdGhlIGN1cnJlbnQgYnJl YWtwb2ludAogICAgICjigJhnZGItZ290by1icmVha3BvaW504oCZKS4KCuKAmG1vdXNlLTLigJkK ICAgICBWaXNpdCB0aGUgc291cmNlIGxpbmUgZm9yIHRoZSBicmVha3BvaW50IHlvdSBjbGljayBv bgogICAgICjigJhnZGItZ290by1icmVha3BvaW504oCZKS4KCiAgIFdoZW4g4oCYZ2RiLW1hbnkt d2luZG93c+KAmSBpcyBub24t4oCYbmls4oCZLCB0aGUgR0RCIEJyZWFrcG9pbnRzIGJ1ZmZlcgpz aGFyZXMgaXRzIHdpbmRvdyB3aXRoIHRoZSBHREIgVGhyZWFkcyBidWZmZXIuICBUbyBzd2l0Y2gg ZnJvbSBvbmUgdG8KdGhlIG90aGVyIGNsaWNrIHdpdGgg4oCYbW91c2UtMeKAmSBvbiB0aGUgcmVs ZXZhbnQgYnV0dG9uIGluIHRoZSBoZWFkZXIKbGluZS4gIElmIOKAmGdkYi1zaG93LXRocmVhZHMt YnktZGVmYXVsdOKAmSBpcyBub24t4oCYbmls4oCZLCB0aGUgR0RCIFRocmVhZHMKYnVmZmVyIGlz IHRoZSBvbmUgc2hvd24gYnkgZGVmYXVsdC4KCgoqKioqIDI3LjYuNS40IFRocmVhZHMgQnVmZmVy CgpUaGUgR0RCIFRocmVhZHMgYnVmZmVyIGRpc3BsYXlzIGEgc3VtbWFyeSBvZiB0aGUgdGhyZWFk cyBpbiB0aGUgZGVidWdnZWQKcHJvZ3JhbS4gICpOb3RlIFRocmVhZHM6IChnZGIpVGhyZWFkcy4g IFRvIHNlbGVjdCBhIHRocmVhZCwgbW92ZSBwb2ludAp0aGVyZSBhbmQgcHJlc3MgPFJFVD4gKOKA mGdkYi1zZWxlY3QtdGhyZWFk4oCZKSwgb3IgY2xpY2sgb24gaXQgd2l0aArigJhtb3VzZS0y4oCZ LiAgVGhpcyBhbHNvIGRpc3BsYXlzIHRoZSBhc3NvY2lhdGVkIHNvdXJjZSBidWZmZXIsIGFuZCB1 cGRhdGVzCnRoZSBjb250ZW50cyBvZiB0aGUgb3RoZXIgR0RCIGJ1ZmZlcnMuCgogICBZb3UgY2Fu IGN1c3RvbWl6ZSB2YXJpYWJsZXMgaW4gdGhlIOKAmGdkYi1idWZmZXJz4oCZIGdyb3VwIHRvIHNl bGVjdApmaWVsZHMgaW5jbHVkZWQgaW4gR0RCIFRocmVhZHMgYnVmZmVyLgoK4oCYZ2RiLXRocmVh ZC1idWZmZXItdmVyYm9zZS1uYW1lc+KAmQogICAgIFNob3cgbG9uZyB0aHJlYWQgbmFtZXMgbGlr ZSDigJhUaHJlYWQgMHg0ZTJhYjcwIChMV1AgMTk4MynigJkuCgrigJhnZGItdGhyZWFkLWJ1ZmZl ci1hcmd1bWVudHPigJkKICAgICBTaG93IGFyZ3VtZW50cyBvZiB0aHJlYWQgdG9wIGZyYW1lcy4K CuKAmGdkYi10aHJlYWQtYnVmZmVyLWxvY2F0aW9uc+KAmQogICAgIFNob3cgZmlsZSBpbmZvcm1h dGlvbiBvciBsaWJyYXJ5IG5hbWVzLgoK4oCYZ2RiLXRocmVhZC1idWZmZXItYWRkcmVzc2Vz4oCZ CiAgICAgU2hvdyBhZGRyZXNzZXMgZm9yIHRocmVhZCBmcmFtZXMgaW4gdGhyZWFkcyBidWZmZXIu CgogICBUbyB2aWV3IGluZm9ybWF0aW9uIGZvciBzZXZlcmFsIHRocmVhZHMgc2ltdWx0YW5lb3Vz bHksIHVzZSB0aGUKZm9sbG93aW5nIGNvbW1hbmRzIGZyb20gdGhlIEdEQiBUaHJlYWRzIGJ1ZmZl ci4KCuKAmGTigJkKICAgICBEaXNwbGF5IGRpc2Fzc2VtYmx5IGJ1ZmZlciBmb3IgdGhlIHRocmVh ZCBhdCBjdXJyZW50IGxpbmUKICAgICAo4oCYZ2RiLWRpc3BsYXktZGlzYXNzZW1ibHktZm9yLXRo cmVhZOKAmSkuCgrigJhm4oCZCiAgICAgRGlzcGxheSB0aGUgR0RCIFN0YWNrIGJ1ZmZlciBmb3Ig dGhlIHRocmVhZCBhdCBjdXJyZW50IGxpbmUKICAgICAo4oCYZ2RiLWRpc3BsYXktc3RhY2stZm9y LXRocmVhZOKAmSkuCgrigJhs4oCZCiAgICAgRGlzcGxheSB0aGUgR0RCIExvY2FscyBidWZmZXIg Zm9yIHRoZSB0aHJlYWQgYXQgY3VycmVudCBsaW5lCiAgICAgKOKAmGdkYi1kaXNwbGF5LWxvY2Fs cy1mb3ItdGhyZWFk4oCZKS4KCuKAmHLigJkKICAgICBEaXNwbGF5IHRoZSBHREIgUmVnaXN0ZXJz IGJ1ZmZlciBmb3IgdGhlIHRocmVhZCBhdCBjdXJyZW50IGxpbmUKICAgICAo4oCYZ2RiLWRpc3Bs YXktcmVnaXN0ZXJzLWZvci10aHJlYWTigJkpLgoKVGhlaXIgdXBwZXItY2FzZSBjb3VudGVycGFy dHMsIOKAmETigJksIOKAmEbigJkgLOKAmEzigJkgYW5kIOKAmFLigJksIGRpc3BsYXkgdGhlCmNv cnJlc3BvbmRpbmcgYnVmZmVyIGluIGEgbmV3IGZyYW1lLgoKICAgV2hlbiB5b3UgY3JlYXRlIGEg YnVmZmVyIHNob3dpbmcgaW5mb3JtYXRpb24gYWJvdXQgc29tZSBzcGVjaWZpYwp0aHJlYWQsIGl0 IGJlY29tZXMgYm91bmQgdG8gdGhhdCB0aHJlYWQgYW5kIGtlZXBzIHNob3dpbmcgYWN0dWFsCmlu Zm9ybWF0aW9uIHdoaWxlIHlvdSBkZWJ1ZyB5b3VyIHByb2dyYW0uICBUaGUgbW9kZSBpbmRpY2F0 b3IgZm9yIGVhY2gKR0RCIGJ1ZmZlciBzaG93cyB0aGUgbnVtYmVyIG9mIHRoZSB0aHJlYWQgd2hv c2UgaW5mb3JtYXRpb24gdGhhdCBidWZmZXIKZGlzcGxheXMuICBUaGUgdGhyZWFkIG51bWJlciBp cyBhbHNvIGluY2x1ZGVkIGluIHRoZSBuYW1lIG9mIGVhY2ggYm91bmQKYnVmZmVyLgoKICAgRnVy dGhlciBjb21tYW5kcyBhcmUgYXZhaWxhYmxlIGluIHRoZSBHREIgVGhyZWFkcyBidWZmZXIgd2hp Y2ggZGVwZW5kCm9uIHRoZSBtb2RlIG9mIEdEQiB0aGF0IGlzIHVzZWQgZm9yIGNvbnRyb2xsaW5n IGV4ZWN1dGlvbiBvZiB5b3VyCnByb2dyYW0uICAqTm90ZSBNdWx0aXRocmVhZGVkIERlYnVnZ2lu Zzo6LgoKCioqKiogMjcuNi41LjUgU3RhY2sgQnVmZmVyCgpUaGUgR0RCIFN0YWNrIGJ1ZmZlciBk aXNwbGF5cyBhICJjYWxsIHN0YWNrIiwgd2l0aCBvbmUgbGluZSBmb3IgZWFjaCBvZgp0aGUgbmVz dGVkIHN1YnJvdXRpbmUgY2FsbHMgKCJzdGFjayBmcmFtZXMiKSBpbiB0aGUgZGVidWdnZXIgc2Vz c2lvbi4KKk5vdGUgQmFja3RyYWNlczogKGdkYilCYWNrdHJhY2UuCgogICBPbiBncmFwaGljYWwg ZGlzcGxheXMsIHRoZSBzZWxlY3RlZCBzdGFjayBmcmFtZSBpcyBpbmRpY2F0ZWQgYnkgYW4KYXJy b3cgaW4gdGhlIGZyaW5nZS4gIE9uIHRleHQgdGVybWluYWxzLCBvciB3aGVuIGZyaW5nZXMgYXJl IGRpc2FibGVkLAp0aGUgc2VsZWN0ZWQgc3RhY2sgZnJhbWUgaXMgZGlzcGxheWVkIGluIHJldmVy c2UgY29udHJhc3QuICBUbyBzZWxlY3QgYQpzdGFjayBmcmFtZSwgbW92ZSBwb2ludCBpbiBpdHMg bGluZSBhbmQgdHlwZSA8UkVUPgoo4oCYZ2RiLWZyYW1lcy1zZWxlY3TigJkpLCBvciBjbGljayDi gJhtb3VzZS0y4oCZIG9uIGl0LiAgRG9pbmcgc28gYWxzbyB1cGRhdGVzCnRoZSBMb2NhbHMgYnVm ZmVyICgqbm90ZSBPdGhlciBHREIgQnVmZmVyczo6KS4KCgoqKioqIDI3LjYuNS42IE90aGVyIEdE QiBCdWZmZXJzCgpMb2NhbHMgQnVmZmVyCiAgICAgVGhpcyBidWZmZXIgZGlzcGxheXMgdGhlIHZh bHVlcyBvZiBsb2NhbCB2YXJpYWJsZXMgb2YgdGhlIGN1cnJlbnQKICAgICBmcmFtZSBmb3Igc2lt cGxlIGRhdGEgdHlwZXMgKCpub3RlIEZyYW1lIEluZm86IChnZGIpRnJhbWUgSW5mby4pLgogICAg IFByZXNzIDxSRVQ+IG9yIGNsaWNrIOKAmG1vdXNlLTLigJkgb24gdGhlIHZhbHVlIGlmIHlvdSB3 YW50IHRvIGVkaXQgaXQuCgogICAgIEFycmF5cyBhbmQgc3RydWN0dXJlcyBkaXNwbGF5IHRoZWly IHR5cGUgb25seS4gIFdpdGggR0RCIDYuNCBvcgogICAgIGxhdGVyLCB5b3UgY2FuIGV4YW1pbmUg dGhlIHZhbHVlIG9mIHRoZSBsb2NhbCB2YXJpYWJsZSBhdCBwb2ludCBieQogICAgIHR5cGluZyA8 UkVUPiwgb3Igd2l0aCBhIOKAmG1vdXNlLTLigJkgY2xpY2suICBXaXRoIGVhcmxpZXIgdmVyc2lv bnMgb2YKICAgICBHREIsIHVzZSA8UkVUPiBvciDigJhtb3VzZS0y4oCZIG9uIHRoZSB0eXBlIGRl c2NyaXB0aW9uCiAgICAgKOKAmFtzdHJ1Y3QvdW5pb25d4oCZIG9yIOKAmFthcnJheV3igJkpLiAg Kk5vdGUgV2F0Y2ggRXhwcmVzc2lvbnM6Oi4KClJlZ2lzdGVycyBCdWZmZXIKICAgICBUaGlzIGJ1 ZmZlciBkaXNwbGF5cyB0aGUgdmFsdWVzIGhlbGQgYnkgdGhlIHJlZ2lzdGVycyAoKm5vdGUKICAg ICAoZ2RiKVJlZ2lzdGVyczo6KS4gIFByZXNzIDxSRVQ+IG9yIGNsaWNrIOKAmG1vdXNlLTLigJkg b24gYSByZWdpc3RlciBpZgogICAgIHlvdSB3YW50IHRvIGVkaXQgaXRzIHZhbHVlLiAgV2l0aCBH REIgNi40IG9yIGxhdGVyLCByZWNlbnRseQogICAgIGNoYW5nZWQgcmVnaXN0ZXIgdmFsdWVzIGRp c3BsYXkgd2l0aCDigJhmb250LWxvY2std2FybmluZy1mYWNl4oCZLgoKQXNzZW1ibGVyIEJ1ZmZl cgogICAgIFRoZSBhc3NlbWJsZXIgYnVmZmVyIGRpc3BsYXlzIHRoZSBjdXJyZW50IGZyYW1lIGFz IG1hY2hpbmUgY29kZS4KICAgICBBbiBhcnJvdyBwb2ludHMgdG8gdGhlIGN1cnJlbnQgaW5zdHJ1 Y3Rpb24sIGFuZCB5b3UgY2FuIHNldCBhbmQKICAgICByZW1vdmUgYnJlYWtwb2ludHMgYXMgaW4g YSBzb3VyY2UgYnVmZmVyLiAgQnJlYWtwb2ludCBpY29ucyBhbHNvCiAgICAgYXBwZWFyIGluIHRo ZSBmcmluZ2Ugb3IgbWFyZ2luLgoKTWVtb3J5IEJ1ZmZlcgogICAgIFRoZSBtZW1vcnkgYnVmZmVy IGxldHMgeW91IGV4YW1pbmUgc2VjdGlvbnMgb2YgcHJvZ3JhbSBtZW1vcnkKICAgICAoKm5vdGUg TWVtb3J5OiAoZ2RiKU1lbW9yeS4pLiAgQ2xpY2sg4oCYbW91c2UtMeKAmSBvbiB0aGUgYXBwcm9w cmlhdGUKICAgICBwYXJ0IG9mIHRoZSBoZWFkZXIgbGluZSB0byBjaGFuZ2UgdGhlIHN0YXJ0aW5n IGFkZHJlc3Mgb3IgbnVtYmVyIG9mCiAgICAgZGF0YSBpdGVtcyB0aGF0IHRoZSBidWZmZXIgZGlz cGxheXMuICBBbHRlcm5hdGl2ZWx5LCB1c2Ug4oCYU+KAmSBvciDigJhO4oCZCiAgICAgcmVzcGVj dGl2ZWx5LiAgQ2xpY2sg4oCYbW91c2UtM+KAmSBvbiB0aGUgaGVhZGVyIGxpbmUgdG8gc2VsZWN0 IHRoZQogICAgIGRpc3BsYXkgZm9ybWF0IG9yIHVuaXQgc2l6ZSBmb3IgdGhlc2UgZGF0YSBpdGVt cy4KCiAgIFdoZW4g4oCYZ2RiLW1hbnktd2luZG93c+KAmSBpcyBub24t4oCYbmls4oCZLCB0aGUg bG9jYWxzIGJ1ZmZlciBzaGFyZXMgaXRzCndpbmRvdyB3aXRoIHRoZSByZWdpc3RlcnMgYnVmZmVy LCBqdXN0IGxpa2UgYnJlYWtwb2ludHMgYW5kIHRocmVhZHMKYnVmZmVycy4gIFRvIHN3aXRjaCBm cm9tIG9uZSB0byB0aGUgb3RoZXIsIGNsaWNrIHdpdGgg4oCYbW91c2UtMeKAmSBvbiB0aGUKcmVs ZXZhbnQgYnV0dG9uIGluIHRoZSBoZWFkZXIgbGluZS4KCgoqKioqIDI3LjYuNS43IFdhdGNoIEV4 cHJlc3Npb25zCgpJZiB5b3Ugd2FudCB0byBzZWUgaG93IGEgdmFyaWFibGUgY2hhbmdlcyBlYWNo IHRpbWUgeW91ciBwcm9ncmFtIHN0b3BzLAptb3ZlIHBvaW50IGludG8gdGhlIHZhcmlhYmxlIG5h bWUgYW5kIGNsaWNrIG9uIHRoZSB3YXRjaCBpY29uIGluIHRoZQp0b29sIGJhciAo4oCYZ3VkLXdh dGNo4oCZKSBvciB0eXBlIOKAmEMteCBDLWEgQy134oCZLiAgSWYgeW91IHNwZWNpZnkgYSBwcmVm aXgKYXJndW1lbnQsIHlvdSBjYW4gZW50ZXIgdGhlIHZhcmlhYmxlIG5hbWUgaW4gdGhlIG1pbmli dWZmZXIuCgogICBFYWNoIHdhdGNoIGV4cHJlc3Npb24gaXMgZGlzcGxheWVkIGluIHRoZSBzcGVl ZGJhciAoKm5vdGUKU3BlZWRiYXI6OikuICBDb21wbGV4IGRhdGEgdHlwZXMsIHN1Y2ggYXMgYXJy YXlzLCBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMKYXJlIHJlcHJlc2VudGVkIGluIGEgdHJlZSBmb3Jt YXQuICBMZWF2ZXMgYW5kIHNpbXBsZSBkYXRhIHR5cGVzIHNob3cgdGhlCm5hbWUgb2YgdGhlIGV4 cHJlc3Npb24gYW5kIGl0cyB2YWx1ZSBhbmQsIHdoZW4gdGhlIHNwZWVkYmFyIGZyYW1lIGlzCnNl bGVjdGVkLCBkaXNwbGF5IHRoZSB0eXBlIGFzIGEgdG9vbHRpcC4gIEhpZ2hlciBsZXZlbHMgc2hv dyB0aGUgbmFtZSwKdHlwZSBhbmQgYWRkcmVzcyB2YWx1ZSBmb3IgcG9pbnRlcnMgYW5kIGp1c3Qg dGhlIG5hbWUgYW5kIHR5cGUKb3RoZXJ3aXNlLiAgUm9vdCBleHByZXNzaW9ucyBhbHNvIGRpc3Bs YXkgdGhlIGZyYW1lIGFkZHJlc3MgYXMgYSB0b29sdGlwCnRvIGhlbHAgaWRlbnRpZnkgdGhlIGZy YW1lIGluIHdoaWNoIHRoZXkgd2VyZSBkZWZpbmVkLgoKICAgVG8gZXhwYW5kIG9yIGNvbnRyYWN0 IGEgY29tcGxleCBkYXRhIHR5cGUsIGNsaWNrIOKAmG1vdXNlLTLigJkgb3IgcHJlc3MKPFNQQz4g b24gdGhlIHRhZyB0byB0aGUgbGVmdCBvZiB0aGUgZXhwcmVzc2lvbi4gIEVtYWNzIGFza3MgZm9y CmNvbmZpcm1hdGlvbiBiZWZvcmUgZXhwYW5kaW5nIHRoZSBleHByZXNzaW9uIGlmIGl0cyBudW1i ZXIgb2YgaW1tZWRpYXRlCmNoaWxkcmVuIGV4Y2VlZHMgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJs ZSDigJhnZGItbWF4LWNoaWxkcmVu4oCZLgoKICAgVG8gZGVsZXRlIGEgY29tcGxleCB3YXRjaCBl eHByZXNzaW9uLCBtb3ZlIHBvaW50IHRvIHRoZSByb290CmV4cHJlc3Npb24gaW4gdGhlIHNwZWVk YmFyIGFuZCB0eXBlIOKAmETigJkgKOKAmGdkYi12YXItZGVsZXRl4oCZKS4KCiAgIFRvIGVkaXQg YSB2YXJpYWJsZSB3aXRoIGEgc2ltcGxlIGRhdGEgdHlwZSwgb3IgYSBzaW1wbGUgZWxlbWVudCBv ZiBhCmNvbXBsZXggZGF0YSB0eXBlLCBtb3ZlIHBvaW50IHRoZXJlIGluIHRoZSBzcGVlZGJhciBh bmQgdHlwZSA8UkVUPgoo4oCYZ2RiLWVkaXQtdmFsdWXigJkpLiAgT3IgeW91IGNhbiBjbGljayDi gJhtb3VzZS0y4oCZIG9uIGEgdmFsdWUgdG8gZWRpdCBpdC4KRWl0aGVyIHdheSwgdGhpcyByZWFk cyB0aGUgbmV3IHZhbHVlIHVzaW5nIHRoZSBtaW5pYnVmZmVyLgoKICAgSWYgeW91IHNldCB0aGUg dmFyaWFibGUg4oCYZ2RiLXNob3ctY2hhbmdlZC12YWx1ZXPigJkgdG8gbm9uLeKAmG5pbOKAmSAo dGhlCmRlZmF1bHQgdmFsdWUpLCBFbWFjcyB1c2VzIOKAmGZvbnQtbG9jay13YXJuaW5nLWZhY2Xi gJkgdG8gaGlnaGxpZ2h0IHZhbHVlcwp0aGF0IGhhdmUgcmVjZW50bHkgY2hhbmdlZCBhbmQg4oCY c2hhZG934oCZIGZhY2UgdG8gbWFrZSB2YXJpYWJsZXMgd2hpY2gKaGF2ZSBnb25lIG91dCBvZiBz Y29wZSBsZXNzIG5vdGljZWFibGUuICBXaGVuIGEgdmFyaWFibGUgZ29lcyBvdXQgb2YKc2NvcGUg eW91IGNhbuKAmXQgZWRpdCBpdHMgdmFsdWUuCgogICBJZiB0aGUgdmFyaWFibGUg4oCYZ2RiLWRl bGV0ZS1vdXQtb2Ytc2NvcGXigJkgaXMgbm9uLeKAmG5pbOKAmSAodGhlIGRlZmF1bHQKdmFsdWUp LCBFbWFjcyBhdXRvbWF0aWNhbGx5IGRlbGV0ZXMgd2F0Y2ggZXhwcmVzc2lvbnMgd2hpY2ggZ28g b3V0IG9mCnNjb3BlLiAgU29tZXRpbWVzLCB3aGVuIHlvdXIgcHJvZ3JhbSByZS1lbnRlcnMgdGhl IHNhbWUgZnVuY3Rpb24gbWFueQp0aW1lcywgaXQgbWF5IGJlIHVzZWZ1bCB0byBzZXQgdGhpcyB2 YWx1ZSB0byDigJhuaWzigJkgc28gdGhhdCB5b3UgZG9u4oCZdApuZWVkIHRvIHJlY3JlYXRlIHRo ZSB3YXRjaCBleHByZXNzaW9uLgoKICAgSWYgdGhlIHZhcmlhYmxlIOKAmGdkYi11c2UtY29sb24t Y29sb24tbm90YXRpb27igJkgaXMgbm9uLeKAmG5pbOKAmSwgRW1hY3MKdXNlcyB0aGUg4oCYRlVO Q1RJT046OlZBUklBQkxF4oCZIGZvcm1hdC4gIFRoaXMgYWxsb3dzIHRoZSB1c2VyIHRvIGRpc3Bs YXkKd2F0Y2ggZXhwcmVzc2lvbnMgd2hpY2ggc2hhcmUgdGhlIHNhbWUgdmFyaWFibGUgbmFtZS4g IFRoZSBkZWZhdWx0IHZhbHVlCmlzIOKAmG5pbOKAmS4KCiAgIFRvIGF1dG9tYXRpY2FsbHkgcmFp c2UgdGhlIHNwZWVkYmFyIGV2ZXJ5IHRpbWUgdGhlIGRpc3BsYXkgb2Ygd2F0Y2gKZXhwcmVzc2lv bnMgdXBkYXRlcywgc2V0IOKAmGdkYi1zcGVlZGJhci1hdXRvLXJhaXNl4oCZIHRvIG5vbi3igJhu aWzigJkuICBUaGlzCmNhbiBiZSB1c2VmdWwgaWYgeW91IGFyZSBkZWJ1Z2dpbmcgd2l0aCBhIGZ1 bGwgc2NyZWVuIEVtYWNzIGZyYW1lLgoKCioqKiogMjcuNi41LjggTXVsdGl0aHJlYWRlZCBEZWJ1 Z2dpbmcKCkluIEdEQuKAmXMgImFsbC1zdG9wIG1vZGUiLCB3aGVuZXZlciB5b3VyIHByb2dyYW0g c3RvcHMsIGFsbCBleGVjdXRpb24KdGhyZWFkcyBzdG9wLiAgTGlrZXdpc2UsIHdoZW5ldmVyIHlv dSByZXN0YXJ0IHRoZSBwcm9ncmFtLCBhbGwgdGhyZWFkcwpzdGFydCBleGVjdXRpbmcuICAqTm90 ZSBBbGwtU3RvcCBNb2RlOiAoZ2RiKUFsbC1TdG9wIE1vZGUuICBGb3Igc29tZQptdWx0aS10aHJl YWRlZCB0YXJnZXRzLCBHREIgc3VwcG9ydHMgYSBmdXJ0aGVyIG1vZGUgb2Ygb3BlcmF0aW9uLCBj YWxsZWQKIm5vbi1zdG9wIG1vZGUiLCBpbiB3aGljaCB5b3UgY2FuIGV4YW1pbmUgc3RvcHBlZCBw cm9ncmFtIHRocmVhZHMgaW4gdGhlCmRlYnVnZ2VyIHdoaWxlIG90aGVyIHRocmVhZHMgY29udGlu dWUgdG8gZXhlY3V0ZSBmcmVlbHkuICAqTm90ZSBOb24tU3RvcApNb2RlOiAoZ2RiKU5vbi1TdG9w IE1vZGUuICBWZXJzaW9ucyBvZiBHREIgcHJpb3IgdG8gNy4wIGRvIG5vdCBzdXBwb3J0Cm5vbi1z dG9wIG1vZGUsIGFuZCBpdCBkb2VzIG5vdCB3b3JrIG9uIGFsbCB0YXJnZXRzLgoKICAgVGhlIHZh cmlhYmxlIOKAmGdkYi1ub24tc3RvcC1zZXR0aW5n4oCZIGRldGVybWluZXMgd2hldGhlciBFbWFj cyBydW5zIEdEQgppbiBhbGwtc3RvcCBtb2RlIG9yIG5vbi1zdG9wIG1vZGUuICBUaGUgZGVmYXVs dCBpcyDigJh04oCZLCB3aGljaCBtZWFucyBpdAp0cmllcyB0byB1c2Ugbm9uLXN0b3AgbW9kZSBp ZiB0aGF0IGlzIGF2YWlsYWJsZS4gIElmIHlvdSBjaGFuZ2UgdGhlCnZhbHVlIHRvIOKAmG5pbOKA mSwgb3IgaWYgbm9uLXN0b3AgbW9kZSBpcyB1bmF2YWlsYWJsZSwgRW1hY3MgcnVucyBHREIgaW4K YWxsLXN0b3AgbW9kZS4gIFRoZSB2YXJpYWJsZSB0YWtlcyBlZmZlY3Qgd2hlbiBFbWFjcyBiZWdp bnMgYSBkZWJ1Z2dpbmcKc2Vzc2lvbjsgaWYgeW91IGNoYW5nZSBpdHMgdmFsdWUsIHlvdSBzaG91 bGQgcmVzdGFydCBhbnkgYWN0aXZlCmRlYnVnZ2luZyBzZXNzaW9uLgoKICAgV2hlbiBhIHRocmVh ZCBzdG9wcyBpbiBub24tc3RvcCBtb2RlLCBFbWFjcyB1c3VhbGx5IHN3aXRjaGVzIHRvIHRoYXQK dGhyZWFkLiAgSWYgeW91IGRvbuKAmXQgd2FudCBFbWFjcyB0byBkbyB0aGlzIHN3aXRjaCBpZiBh bm90aGVyIHN0b3BwZWQKdGhyZWFkIGlzIGFscmVhZHkgc2VsZWN0ZWQsIGNoYW5nZSB0aGUgdmFy aWFibGUK4oCYZ2RiLXN3aXRjaC13aGVuLWFub3RoZXItc3RvcHBlZOKAmSB0byDigJhuaWzigJku CgogICBFbWFjcyBjYW4gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIHN3aXRjaCB0byB0aGUgc3Rv cHBlZCB0aHJlYWQKZGVwZW5kaW5nIG9uIHRoZSByZWFzb24gd2hpY2ggY2F1c2VkIHRoZSBzdG9w LiAgQ3VzdG9taXplIHRoZSB2YXJpYWJsZQrigJhnZGItc3dpdGNoLXJlYXNvbnPigJkgdG8gc2Vs ZWN0IHRoZSBzdG9wIHJlYXNvbnMgd2hpY2ggd2lsbCBjYXVzZSBhCnRocmVhZCBzd2l0Y2guCgog ICBUaGUgdmFyaWFibGUg4oCYZ2RiLXN0b3BwZWQtZnVuY3Rpb25z4oCZIGFsbG93cyB5b3UgdG8g ZXhlY3V0ZSB5b3VyCmZ1bmN0aW9ucyB3aGVuZXZlciBzb21lIHRocmVhZCBzdG9wcy4KCiAgIElu IG5vbi1zdG9wIG1vZGUsIHlvdSBjYW4gc3dpdGNoIGJldHdlZW4gZGlmZmVyZW50IG1vZGVzIGZv ciBHVUQKZXhlY3V0aW9uIGNvbnRyb2wgY29tbWFuZHMuCgoiTm9uLXN0b3AvQSIKCiAgICAgV2hl biDigJhnZGItZ3VkLWNvbnRyb2wtYWxsLXRocmVhZHPigJkgaXMg4oCYdOKAmSAodGhlIGRlZmF1 bHQgdmFsdWUpLAogICAgIGludGVycnVwdGlvbiBhbmQgY29udGludWF0aW9uIGNvbW1hbmRzIGFw cGx5IHRvIGFsbCB0aHJlYWRzLCBzbyB5b3UKICAgICBjYW4gaGFsdCBvciBjb250aW51ZSBhbGwg eW91ciB0aHJlYWRzIHdpdGggb25lIGNvbW1hbmQgdXNpbmcKICAgICDigJhndWQtc3RvcC1zdWJq b2LigJkgYW5kIOKAmGd1ZC1jb2504oCZLCByZXNwZWN0aXZlbHkuICBUaGUg4oCYR2/igJkgYnV0 dG9uIGlzCiAgICAgc2hvd24gb24gdGhlIHRvb2wgYmFyIHdoZW4gYXQgbGVhc3Qgb25lIHRocmVh ZCBpcyBzdG9wcGVkLCB3aGVyZWFzCiAgICAg4oCYU3RvcOKAmSBidXR0b24gaXMgc2hvd24gd2hl biBhdCBsZWFzdCBvbmUgdGhyZWFkIGlzIHJ1bm5pbmcuCgoiTm9uLXN0b3AvVCIKCiAgICAgV2hl biDigJhnZGItZ3VkLWNvbnRyb2wtYWxsLXRocmVhZHPigJkgaXMg4oCYbmls4oCZLCBvbmx5IHRo ZSBjdXJyZW50CiAgICAgdGhyZWFkIGlzIHN0b3BwZWQvY29udGludWVkLiAg4oCYR2/igJkgYW5k IOKAmFN0b3DigJkgYnV0dG9ucyBvbiB0aGUgR1VECiAgICAgdG9vbCBiYXIgYXJlIHNob3duIGRl cGVuZGluZyBvbiB0aGUgc3RhdGUgb2YgY3VycmVudCB0aHJlYWQuCgogICBZb3UgY2FuIGNoYW5n ZSB0aGUgY3VycmVudCB2YWx1ZSBvZiDigJhnZGItZ3VkLWNvbnRyb2wtYWxsLXRocmVhZHPigJkK ZnJvbSB0aGUgdG9vbCBiYXIgb3IgZnJvbSDigJhHVUQtPkdEQi1NSeKAmSBtZW51LgoKICAgU3Rl cHBpbmcgY29tbWFuZHMgYWx3YXlzIGFwcGx5IHRvIHRoZSBjdXJyZW50IHRocmVhZC4KCiAgIElu IG5vbi1zdG9wIG1vZGUsIHlvdSBjYW4gaW50ZXJydXB0L2NvbnRpbnVlIHlvdXIgdGhyZWFkcyB3 aXRob3V0CnNlbGVjdGluZyB0aGVtLiAgSGl0dGluZyDigJhp4oCZIGluIHRocmVhZHMgYnVmZmVy IGludGVycnVwdHMgdGhyZWFkIHVuZGVyCnBvaW50LCDigJhj4oCZIGNvbnRpbnVlcyBpdCwg4oCY c+KAmSBzdGVwcyB0aHJvdWdoLiAgTW9yZSBzdWNoIGNvbW1hbmRzIG1heSBiZQphZGRlZCBpbiB0 aGUgZnV0dXJlLgoKICAgTm90ZSB0aGF0IHdoZW4geW91IGludGVycnVwdCBhIHRocmVhZCwgaXQg c3RvcHMgd2l0aCB0aGUg4oCYc2lnbmFsCnJlY2VpdmVk4oCZIHJlYXNvbi4gIElmIHRoYXQgcmVh c29uIGlzIGluY2x1ZGVkIGluIHlvdXIK4oCYZ2RiLXN3aXRjaC1yZWFzb25z4oCZIChpdCBpcyBi eSBkZWZhdWx0KSwgRW1hY3Mgd2lsbCBzd2l0Y2ggdG8gdGhhdAp0aHJlYWQuCgoKKiogMjcuNyBF eGVjdXRpbmcgTGlzcCBFeHByZXNzaW9ucwoKRW1hY3MgaGFzIG1ham9yIG1vZGVzIGZvciBzZXZl cmFsIHZhcmlhbnRzIG9mIExpc3AuICBUaGV5IHVzZSB0aGUgc2FtZQplZGl0aW5nIGNvbW1hbmRz IGFzIG90aGVyIHByb2dyYW1taW5nIGxhbmd1YWdlIG1vZGVzICgqbm90ZSBQcm9ncmFtczo6KS4K SW4gYWRkaXRpb24sIHRoZXkgcHJvdmlkZSBzcGVjaWFsIGNvbW1hbmRzIGZvciBleGVjdXRpbmcg TGlzcApleHByZXNzaW9ucy4KCkVtYWNzIExpc3AgbW9kZQogICAgIFRoZSBtb2RlIGZvciBlZGl0 aW5nIEVtYWNzIExpc3Agc291cmNlIGZpbGVzLiAgSXQgZGVmaW5lcyDigJhDLU0teOKAmQogICAg IHRvIGV2YWx1YXRlIHRoZSBjdXJyZW50IHRvcC1sZXZlbCBMaXNwIGV4cHJlc3Npb24uICAqTm90 ZSBMaXNwCiAgICAgRXZhbDo6LgoKTGlzcCBJbnRlcmFjdGlvbiBtb2RlCiAgICAgVGhlIG1vZGUg Zm9yIGFuIGludGVyYWN0aXZlIEVtYWNzIExpc3Agc2Vzc2lvbi4gIEl0IGRlZmluZXMg4oCYQy1q 4oCZCiAgICAgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYmVmb3JlIHBvaW50IGFuZCBpbnNl cnQgaXRzIHZhbHVlIGluIHRoZQogICAgIGJ1ZmZlci4gICpOb3RlIExpc3AgSW50ZXJhY3Rpb246 Oi4KCkxpc3AgbW9kZQogICAgIFRoZSBtb2RlIGZvciBlZGl0aW5nIHNvdXJjZSBmaWxlcyBvZiBw cm9ncmFtcyB0aGF0IHJ1biBpbiBMaXNwcwogICAgIG90aGVyIHRoYW4gRW1hY3MgTGlzcC4gIEl0 IGRlZmluZXMg4oCYQy1NLXjigJkgdG8gZXZhbHVhdGUgdGhlIGN1cnJlbnQKICAgICB0b3AtbGV2 ZWwgZXhwcmVzc2lvbiBpbiBhbiBleHRlcm5hbCBMaXNwLiAgKk5vdGUgRXh0ZXJuYWwgTGlzcDo6 LgoKSW5mZXJpb3IgTGlzcCBtb2RlCiAgICAgVGhlIG1vZGUgZm9yIGFuIGludGVyYWN0aXZlIHNl c3Npb24gd2l0aCBhbiBleHRlcm5hbCBMaXNwIHdoaWNoIGlzCiAgICAgYmVpbmcgcnVuIGFzIGEg c3VicHJvY2VzcyAob3IgImluZmVyaW9yIHByb2Nlc3MiKSBvZiBFbWFjcy4gICpOb3RlCiAgICAg RXh0ZXJuYWwgTGlzcDo6LgoKU2NoZW1lIG1vZGUKICAgICBMaWtlIExpc3AgbW9kZSwgYnV0IGZv ciBTY2hlbWUgcHJvZ3JhbXMuCgpJbmZlcmlvciBTY2hlbWUgbW9kZQogICAgIExpa2UgSW5mZXJp b3IgTGlzcCBtb2RlLCBidXQgZm9yIFNjaGVtZS4KCgoqKiAyNy44IExpYnJhcmllcyBvZiBMaXNw IENvZGUgZm9yIEVtYWNzCgpFbWFjcyBMaXNwIGNvZGUgaXMgc3RvcmVkIGluIGZpbGVzIHdob3Nl IG5hbWVzIGNvbnZlbnRpb25hbGx5IGVuZCBpbgrigJguZWzigJkuICBTdWNoIGZpbGVzIGFyZSBh dXRvbWF0aWNhbGx5IHZpc2l0ZWQgaW4gRW1hY3MgTGlzcCBtb2RlLgoKICAgRW1hY3MgTGlzcCBj b2RlIGNhbiBiZSBjb21waWxlZCBpbnRvIGJ5dGUtY29kZSwgd2hpY2ggbG9hZHMgZmFzdGVyLAp0 YWtlcyB1cCBsZXNzIHNwYWNlLCBhbmQgZXhlY3V0ZXMgZmFzdGVyLiAgQnkgY29udmVudGlvbiwg Y29tcGlsZWQgRW1hY3MKTGlzcCBjb2RlIGdvZXMgaW4gYSBzZXBhcmF0ZSBmaWxlIHdob3NlIG5h bWUgZW5kcyBpbiDigJguZWxj4oCZLiAgRm9yCmV4YW1wbGUsIHRoZSBjb21waWxlZCBjb2RlIGZv ciDigJhmb28uZWzigJkgZ29lcyBpbiDigJhmb28uZWxj4oCZLiAgKk5vdGUgQnl0ZQpDb21waWxh dGlvbjogKGVsaXNwKUJ5dGUgQ29tcGlsYXRpb24uCgogICBUbyAibG9hZCIgYW4gRW1hY3MgTGlz cCBmaWxlLCB0eXBlIOKAmE0teCBsb2FkLWZpbGXigJkuICBUaGlzIGNvbW1hbmQKcmVhZHMgYSBm aWxlIG5hbWUgdXNpbmcgdGhlIG1pbmlidWZmZXIsIGFuZCBleGVjdXRlcyB0aGUgY29udGVudHMg b2YKdGhhdCBmaWxlIGFzIEVtYWNzIExpc3AgY29kZS4gIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8g dmlzaXQgdGhlIGZpbGUKZmlyc3Q7IHRoaXMgY29tbWFuZCByZWFkcyB0aGUgZmlsZSBkaXJlY3Rs eSBmcm9tIGRpc2ssIG5vdCBmcm9tIGFuCmV4aXN0aW5nIEVtYWNzIGJ1ZmZlci4KCiAgIElmIGFu IEVtYWNzIExpc3AgZmlsZSBpcyBpbnN0YWxsZWQgaW4gdGhlIEVtYWNzIExpc3AgImxvYWQgcGF0 aCIKKGRlZmluZWQgYmVsb3cpLCB5b3UgY2FuIGxvYWQgaXQgYnkgdHlwaW5nIOKAmE0teCBsb2Fk LWxpYnJhcnnigJksIGluc3RlYWQKb2YgdXNpbmcg4oCYTS14IGxvYWQtZmlsZeKAmS4gIFRoZSDi gJhNLXggbG9hZC1saWJyYXJ54oCZIGNvbW1hbmQgcHJvbXB0cyBmb3IgYQoibGlicmFyeSBuYW1l IiByYXRoZXIgdGhhbiBhIGZpbGUgbmFtZTsgaXQgc2VhcmNoZXMgdGhyb3VnaCBlYWNoCmRpcmVj dG9yeSBpbiB0aGUgRW1hY3MgTGlzcCBsb2FkIHBhdGgsIHRyeWluZyB0byBmaW5kIGEgZmlsZSBt YXRjaGluZwp0aGF0IGxpYnJhcnkgbmFtZS4gIElmIHRoZSBsaWJyYXJ5IG5hbWUgaXMg4oCYRk9P 4oCZLCBpdCB0cmllcyBsb29raW5nIGZvcgpmaWxlcyBuYW1lZCDigJhGT08uZWxj4oCZLCDigJhG T08uZWzigJksIGFuZCDigJhGT0/igJkuICBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0bwpsb2Fk IHRoZSBmaXJzdCBmaWxlIGZvdW5kLiAgVGhpcyBjb21tYW5kIHByZWZlcnMg4oCYLmVsY+KAmSBm aWxlcyBvdmVyIOKAmC5lbOKAmQpmaWxlcyBiZWNhdXNlIGNvbXBpbGVkIGZpbGVzIGxvYWQgYW5k IHJ1biBmYXN0ZXIuICBJZiBpdCBmaW5kcyB0aGF0CuKAmExJQi5lbOKAmSBpcyBuZXdlciB0aGFu IOKAmExJQi5lbGPigJksIGl0IGlzc3VlcyBhIHdhcm5pbmcsIGluIGNhc2Ugc29tZW9uZQptYWRl IGNoYW5nZXMgdG8gdGhlIOKAmC5lbOKAmSBmaWxlIGFuZCBmb3Jnb3QgdG8gcmVjb21waWxlIGl0 LCBidXQgbG9hZHMgdGhlCuKAmC5lbGPigJkgZmlsZSBhbnl3YXkuICAoRHVlIHRvIHRoaXMgYmVo YXZpb3IsIHlvdSBjYW4gc2F2ZSB1bmZpbmlzaGVkCmVkaXRzIHRvIEVtYWNzIExpc3Agc291cmNl IGZpbGVzLCBhbmQgbm90IHJlY29tcGlsZSB1bnRpbCB5b3VyIGNoYW5nZXMKYXJlIHJlYWR5IGZv ciB1c2UuKSAgSWYgeW91IHNldCB0aGUgb3B0aW9uIOKAmGxvYWQtcHJlZmVyLW5ld2Vy4oCZIHRv IGEKbm9uLeKAmG5pbOKAmSB2YWx1ZSwgaG93ZXZlciwgdGhlbiByYXRoZXIgdGhhbiB0aGUgcHJv Y2VkdXJlIGRlc2NyaWJlZAphYm92ZSwgRW1hY3MgbG9hZHMgd2hpY2hldmVyIHZlcnNpb24gb2Yg dGhlIGZpbGUgaXMgbmV3ZXN0LgoKICAgRW1hY3MgTGlzcCBwcm9ncmFtcyB1c3VhbGx5IGxvYWQg RW1hY3MgTGlzcCBmaWxlcyB1c2luZyB0aGUg4oCYbG9hZOKAmQpmdW5jdGlvbi4gIFRoaXMgaXMg c2ltaWxhciB0byDigJhsb2FkLWxpYnJhcnnigJksIGJ1dCBpcyBsb3dlci1sZXZlbCBhbmQKYWNj ZXB0cyBhZGRpdGlvbmFsIGFyZ3VtZW50cy4gICpOb3RlIChlbGlzcClIb3cgUHJvZ3JhbXMgRG8g TG9hZGluZzo6LgoKICAgVGhlIEVtYWNzIExpc3AgbG9hZCBwYXRoIGlzIHNwZWNpZmllZCBieSB0 aGUgdmFyaWFibGUg4oCYbG9hZC1wYXRo4oCZLgpJdHMgdmFsdWUgc2hvdWxkIGJlIGEgbGlzdCBv ZiBkaXJlY3RvcmllcyAoc3RyaW5ncykuICBUaGVzZSBkaXJlY3RvcmllcwphcmUgc2VhcmNoZWQs IGluIHRoZSBzcGVjaWZpZWQgb3JkZXIsIGJ5IHRoZSDigJhNLXggbG9hZC1saWJyYXJ54oCZIGNv bW1hbmQsCnRoZSBsb3dlci1sZXZlbCDigJhsb2Fk4oCZIGZ1bmN0aW9uLCBhbmQgb3RoZXIgRW1h Y3MgZnVuY3Rpb25zIHRoYXQgZmluZApFbWFjcyBMaXNwIGxpYnJhcmllcy4gIEFuIGVudHJ5IGlu IOKAmGxvYWQtcGF0aOKAmSBjYW4gYWxzbyBoYXZlIHRoZSBzcGVjaWFsCnZhbHVlIOKAmG5pbOKA mSwgd2hpY2ggc3RhbmRzIGZvciB0aGUgY3VycmVudCBkZWZhdWx0IGRpcmVjdG9yeSwgYnV0IGl0 IGlzCmFsbW9zdCBhbHdheXMgYSBiYWQgaWRlYSB0byB1c2UgdGhpcywgYmVjYXVzZSBpdHMgbWVh bmluZyB3aWxsIGRlcGVuZCBvbgp0aGUgYnVmZmVyIHRoYXQgaXMgY3VycmVudCB3aGVuIOKAmGxv YWQtcGF0aOKAmSBpcyB1c2VkIGJ5IEVtYWNzLiAgKElmIHlvdQpmaW5kIHlvdXJzZWxmIHdpc2hp bmcgdGhhdCDigJhuaWzigJkgd2VyZSBpbiB0aGUgbGlzdCwgbW9zdCBsaWtlbHkgd2hhdCB5b3UK cmVhbGx5IHdhbnQgaXMgdG8gdXNlIOKAmE0teCBsb2FkLWZpbGXigJkuKQoKICAgVGhlIGRlZmF1 bHQgdmFsdWUgb2Yg4oCYbG9hZC1wYXRo4oCZIGlzIGEgbGlzdCBvZiBkaXJlY3RvcmllcyB3aGVy ZSB0aGUKTGlzcCBjb2RlIGZvciBFbWFjcyBpdHNlbGYgaXMgc3RvcmVkLiAgSWYgeW91IGhhdmUg bGlicmFyaWVzIG9mIHlvdXIgb3duCmluIGFub3RoZXIgZGlyZWN0b3J5LCB5b3UgY2FuIGFkZCB0 aGF0IGRpcmVjdG9yeSB0byB0aGUgbG9hZCBwYXRoLgpVbmxpa2UgbW9zdCBvdGhlciB2YXJpYWJs ZXMgZGVzY3JpYmVkIGluIHRoaXMgbWFudWFsLCDigJhsb2FkLXBhdGjigJkgY2Fubm90CmJlIGNo YW5nZWQgdmlhIHRoZSBDdXN0b21pemUgaW50ZXJmYWNlICgqbm90ZSBFYXN5IEN1c3RvbWl6YXRp b246OiksIGJ1dAp5b3UgY2FuIGFkZCBhIGRpcmVjdG9yeSB0byBpdCBieSBwdXR0aW5nIGEgbGlu ZSBsaWtlIHRoaXMgaW4geW91ciBpbml0CmZpbGUgKCpub3RlIEluaXQgRmlsZTo6KToKCiAgICAg KGFkZC10by1saXN0ICdsb2FkLXBhdGggIi9wYXRoL3RvL215L2xpc3AvbGlicmFyeSIpCgogICBT b21lIGNvbW1hbmRzIGFyZSAiYXV0b2xvYWRlZCI7IHdoZW4geW91IHJ1biB0aGVtLCBFbWFjcwph dXRvbWF0aWNhbGx5IGxvYWRzIHRoZSBhc3NvY2lhdGVkIGxpYnJhcnkgZmlyc3QuICBGb3IgaW5z dGFuY2UsIHRoZQrigJhNLXggY29tcGlsZeKAmSBjb21tYW5kICgqbm90ZSBDb21waWxhdGlvbjo6 KSBpcyBhdXRvbG9hZGVkOyBpZiB5b3UgY2FsbAppdCwgRW1hY3MgYXV0b21hdGljYWxseSBsb2Fk cyB0aGUg4oCYY29tcGlsZeKAmSBsaWJyYXJ5IGZpcnN0LiAgSW4gY29udHJhc3QsCnRoZSBjb21t YW5kIOKAmE0teCByZWNvbXBpbGXigJkgaXMgbm90IGF1dG9sb2FkZWQsIHNvIGl0IGlzIHVuYXZh aWxhYmxlCnVudGlsIHlvdSBsb2FkIHRoZSDigJhjb21waWxl4oCZIGxpYnJhcnkuCgogICBBdXRv bWF0aWMgbG9hZGluZyBjYW4gYWxzbyBvY2N1ciB3aGVuIHlvdSBsb29rIHVwIHRoZSBkb2N1bWVu dGF0aW9uCm9mIGFuIGF1dG9sb2FkZWQgY29tbWFuZCAoKm5vdGUgTmFtZSBIZWxwOjopLCBpZiB0 aGUgZG9jdW1lbnRhdGlvbgpyZWZlcnMgdG8gb3RoZXIgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMg aW4gaXRzIGxpYnJhcnkgKGxvYWRpbmcgdGhlCmxpYnJhcnkgbGV0cyBFbWFjcyBwcm9wZXJseSBz ZXQgdXAgdGhlIGh5cGVybGlua3MgaW4gdGhlIOKAmCpIZWxwKuKAmQpidWZmZXIpLiAgVG8gZGlz YWJsZSB0aGlzIGZlYXR1cmUsIGNoYW5nZSB0aGUgdmFyaWFibGUK4oCYaGVscC1lbmFibGUtYXV0 by1sb2Fk4oCZIHRvIOKAmG5pbOKAmS4KCiAgIEJ5IGRlZmF1bHQsIEVtYWNzIHJlZnVzZXMgdG8g bG9hZCBjb21waWxlZCBMaXNwIGZpbGVzIHdoaWNoIHdlcmUKY29tcGlsZWQgd2l0aCBYRW1hY3Ms IGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBFbWFjc+KAlHRoZXkgY2FuIGNhdXNlIEVtYWNzCnRvIGNy YXNoLiAgU2V0IHRoZSB2YXJpYWJsZSDigJhsb2FkLWRhbmdlcm91cy1saWJyYXJpZXPigJkgdG8g 4oCYdOKAmSBpZiB5b3UKd2FudCB0byB0cnkgbG9hZGluZyB0aGVtLgoKCioqIDI3LjkgRXZhbHVh dGluZyBFbWFjcyBMaXNwIEV4cHJlc3Npb25zCgpFbWFjcyBMaXNwIG1vZGUgaXMgdGhlIG1ham9y IG1vZGUgZm9yIGVkaXRpbmcgRW1hY3MgTGlzcC4gIEl0cyBtb2RlCmNvbW1hbmQgaXMg4oCYTS14 IGVtYWNzLWxpc3AtbW9kZeKAmS4KCiAgIEVtYWNzIHByb3ZpZGVzIHNldmVyYWwgY29tbWFuZHMg Zm9yIGV2YWx1YXRpbmcgRW1hY3MgTGlzcApleHByZXNzaW9ucy4gIFlvdSBjYW4gdXNlIHRoZXNl IGNvbW1hbmRzIGluIEVtYWNzIExpc3AgbW9kZSwgdG8gdGVzdAp5b3VyIEVtYWNzIExpc3AgY29k ZSBhcyBpdCBpcyBiZWluZyB3cml0dGVuLiAgRm9yIGV4YW1wbGUsIGFmdGVyCnJlLXdyaXRpbmcg YSBmdW5jdGlvbiwgeW91IGNhbiBldmFsdWF0ZSB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiB0byBt YWtlCml0IHRha2UgZWZmZWN0IGZvciBzdWJzZXF1ZW50IGZ1bmN0aW9uIGNhbGxzLiAgVGhlc2Ug Y29tbWFuZHMgYXJlIGFsc28KYXZhaWxhYmxlIGdsb2JhbGx5LCBhbmQgY2FuIGJlIHVzZWQgb3V0 c2lkZSBFbWFjcyBMaXNwIG1vZGUuCgrigJhNLTrigJkKICAgICBSZWFkIGEgc2luZ2xlIEVtYWNz IExpc3AgZXhwcmVzc2lvbiBpbiB0aGUgbWluaWJ1ZmZlciwgZXZhbHVhdGUgaXQsCiAgICAgYW5k IHByaW50IHRoZSB2YWx1ZSBpbiB0aGUgZWNobyBhcmVhICjigJhldmFsLWV4cHJlc3Npb27igJkp LgrigJhDLXggQy1l4oCZCiAgICAgRXZhbHVhdGUgdGhlIEVtYWNzIExpc3AgZXhwcmVzc2lvbiBi ZWZvcmUgcG9pbnQsIGFuZCBwcmludCB0aGUKICAgICB2YWx1ZSBpbiB0aGUgZWNobyBhcmVhICji gJhldmFsLWxhc3Qtc2V4cOKAmSkuCuKAmEMtTS144oCZIChpbiBFbWFjcyBMaXNwIG1vZGUpCuKA mE0teCBldmFsLWRlZnVu4oCZCiAgICAgRXZhbHVhdGUgdGhlIGRlZnVuIGNvbnRhaW5pbmcgb3Ig YWZ0ZXIgcG9pbnQsIGFuZCBwcmludCB0aGUgdmFsdWUKICAgICBpbiB0aGUgZWNobyBhcmVhICji gJhldmFsLWRlZnVu4oCZKS4K4oCYTS14IGV2YWwtcmVnaW9u4oCZCiAgICAgRXZhbHVhdGUgYWxs IHRoZSBFbWFjcyBMaXNwIGV4cHJlc3Npb25zIGluIHRoZSByZWdpb24uCuKAmE0teCBldmFsLWJ1 ZmZlcuKAmQogICAgIEV2YWx1YXRlIGFsbCB0aGUgRW1hY3MgTGlzcCBleHByZXNzaW9ucyBpbiB0 aGUgYnVmZmVyLgoKICAg4oCYTS064oCZICjigJhldmFsLWV4cHJlc3Npb27igJkpIHJlYWRzIGFu IGV4cHJlc3Npb24gdXNpbmcgdGhlIG1pbmlidWZmZXIsCmFuZCBldmFsdWF0ZXMgaXQuICAoQmVm b3JlIGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24sIHRoZSBjdXJyZW50IGJ1ZmZlcgpzd2l0Y2hl cyBiYWNrIHRvIHRoZSBidWZmZXIgdGhhdCB3YXMgY3VycmVudCB3aGVuIHlvdSB0eXBlZCDigJhN LTrigJksIG5vdAp0aGUgbWluaWJ1ZmZlciBpbnRvIHdoaWNoIHlvdSB0eXBlZCB0aGUgZXhwcmVz c2lvbi4pCgogICBUaGUgY29tbWFuZCDigJhDLXggQy1l4oCZICjigJhldmFsLWxhc3Qtc2V4cOKA mSkgZXZhbHVhdGVzIHRoZSBFbWFjcyBMaXNwCmV4cHJlc3Npb24gcHJlY2VkaW5nIHBvaW50IGlu IHRoZSBidWZmZXIsIGFuZCBkaXNwbGF5cyB0aGUgdmFsdWUgaW4gdGhlCmVjaG8gYXJlYS4gIFdo ZW4gdGhlIHJlc3VsdCBvZiBhbiBldmFsdWF0aW9uIGlzIGFuIGludGVnZXIsIGl0IGlzCmRpc3Bs YXllZCB0b2dldGhlciB3aXRoIHRoZSB2YWx1ZSBpbiBvdGhlciBmb3JtYXRzIChvY3RhbCwgaGV4 YWRlY2ltYWwsCmFuZCBjaGFyYWN0ZXIgaWYg4oCYZXZhbC1leHByZXNzaW9uLXByaW50LW1heGlt dW0tY2hhcmFjdGVy4oCZLCBkZXNjcmliZWQKYmVsb3csIGFsbG93cyBpdCkuCgogICBJZiDigJhN LTrigJkgb3Ig4oCYQy14IEMtZeKAmSBpcyBnaXZlbiBhIHByZWZpeCBhcmd1bWVudCwgaXQgaW5z ZXJ0cyB0aGUKdmFsdWUgaW50byB0aGUgY3VycmVudCBidWZmZXIgYXQgcG9pbnQsIHJhdGhlciB0 aGFuIGRpc3BsYXlpbmcgaXQgaW4gdGhlCmVjaG8gYXJlYS4gIElmIHRoZSBwcmVmaXggYXJndW1l bnQgaXMgemVybywgYW55IGludGVnZXIgb3V0cHV0IGlzCmluc2VydGVkIHRvZ2V0aGVyIHdpdGgg aXRzIHZhbHVlIGluIG90aGVyIGZvcm1hdHMgKG9jdGFsLCBoZXhhZGVjaW1hbCwKYW5kIGNoYXJh Y3RlcikuICBTdWNoIGEgcHJlZml4IGFyZ3VtZW50IGFsc28gcHJldmVudHMgYWJicmV2aWF0aW9u IG9mCnRoZSBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSB2YXJpYWJsZXMg4oCYZXZhbC1leHByZXNz aW9uLXByaW50LWxldmVs4oCZIGFuZArigJhldmFsLWV4cHJlc3Npb24tcHJpbnQtbGVuZ3Ro4oCZ IChzZWUgYmVsb3cpLiAgU2ltaWxhcmx5LCBhIHByZWZpeAphcmd1bWVudCBvZiDigJgtMeKAmSBv dmVycmlkZXMgdGhlIGVmZmVjdCBvZiDigJhldmFsLWV4cHJlc3Npb24tcHJpbnQtbGVuZ3Ro4oCZ LgoKICAgVGhlIOKAmGV2YWwtZGVmdW7igJkgY29tbWFuZCBpcyBib3VuZCB0byDigJhDLU0teOKA mSBpbiBFbWFjcyBMaXNwIG1vZGUuICBJdApldmFsdWF0ZXMgdGhlIHRvcC1sZXZlbCBMaXNwIGV4 cHJlc3Npb24gY29udGFpbmluZyBvciBmb2xsb3dpbmcgcG9pbnQsCmFuZCBwcmludHMgdGhlIHZh bHVlIGluIHRoZSBlY2hvIGFyZWEuICBJbiB0aGlzIGNvbnRleHQsIGEgdG9wLWxldmVsCmV4cHJl c3Npb24gaXMgcmVmZXJyZWQgdG8gYXMgYSDigJxkZWZ1buKAnSwgYnV0IGl0IG5lZWQgbm90IGJl IGFuIGFjdHVhbArigJhkZWZ1buKAmSAoZnVuY3Rpb24gZGVmaW5pdGlvbikuICBJbiBwYXJ0aWN1 bGFyLCB0aGlzIGNvbW1hbmQgdHJlYXRzCuKAmGRlZnZhcuKAmSBleHByZXNzaW9ucyBzcGVjaWFs bHkuICBOb3JtYWxseSwgZXZhbHVhdGluZyBhIOKAmGRlZnZhcuKAmQpleHByZXNzaW9uIGRvZXMg bm90aGluZyBpZiB0aGUgdmFyaWFibGUgaXQgZGVmaW5lcyBhbHJlYWR5IGhhcyBhIHZhbHVlLgpC dXQgdGhpcyBjb21tYW5kIHVuY29uZGl0aW9uYWxseSByZXNldHMgdGhlIHZhcmlhYmxlIHRvIHRo ZSBpbml0aWFsCnZhbHVlIHNwZWNpZmllZCBieSB0aGUg4oCYZGVmdmFy4oCZOyB0aGlzIGlzIGNv bnZlbmllbnQgZm9yIGRlYnVnZ2luZyBFbWFjcwpMaXNwIHByb2dyYW1zLiAg4oCYZGVmY3VzdG9t 4oCZIGFuZCDigJhkZWZmYWNl4oCZIGV4cHJlc3Npb25zIGFyZSB0cmVhdGVkCnNpbWlsYXJseS4g IE5vdGUgdGhhdCB0aGUgb3RoZXIgY29tbWFuZHMgZG9jdW1lbnRlZCBpbiB0aGlzIHNlY3Rpb24g ZG8Kbm90IGhhdmUgdGhpcyBzcGVjaWFsIGZlYXR1cmUuCgogICBXaXRoIGEgcHJlZml4IGFyZ3Vt ZW50LCDigJhDLU0teOKAmSBpbnN0cnVtZW50cyB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbgpmb3Ig RWRlYnVnLCB0aGUgRW1hY3MgTGlzcCBEZWJ1Z2dlci4gICpOb3RlIEluc3RydW1lbnRpbmcgZm9y IEVkZWJ1ZzoKKGVsaXNwKUluc3RydW1lbnRpbmcuCgogICBUaGUgY29tbWFuZCDigJhNLXggZXZh bC1yZWdpb27igJkgcGFyc2VzIHRoZSB0ZXh0IG9mIHRoZSByZWdpb24gYXMgb25lIG9yCm1vcmUg TGlzcCBleHByZXNzaW9ucywgZXZhbHVhdGluZyB0aGVtIG9uZSBieSBvbmUuICDigJhNLXggZXZh bC1idWZmZXLigJkgaXMKc2ltaWxhciBidXQgZXZhbHVhdGVzIHRoZSBlbnRpcmUgYnVmZmVyLgoK ICAgVGhlIG9wdGlvbnMg4oCYZXZhbC1leHByZXNzaW9uLXByaW50LWxldmVs4oCZIGFuZArigJhl dmFsLWV4cHJlc3Npb24tcHJpbnQtbGVuZ3Ro4oCZIGNvbnRyb2wgdGhlIG1heGltdW0gZGVwdGgg YW5kIGxlbmd0aCBvZgpsaXN0cyB0byBwcmludCBpbiB0aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0 aW9uIGNvbW1hbmRzIGJlZm9yZQphYmJyZXZpYXRpbmcgdGhlbS4gIFN1cHBseWluZyBhIHplcm8g cHJlZml4IGFyZ3VtZW50IHRvCuKAmGV2YWwtZXhwcmVzc2lvbuKAmSBvciDigJhldmFsLWxhc3Qt c2V4cOKAmSBjYXVzZXMgbGlzdHMgdG8gYmUgcHJpbnRlZCBpbgpmdWxsLiAg4oCYZXZhbC1leHBy ZXNzaW9uLWRlYnVnLW9uLWVycm9y4oCZIGNvbnRyb2xzIHdoZXRoZXIgZXZhbHVhdGlvbgplcnJv cnMgaW52b2tlIHRoZSBkZWJ1Z2dlciB3aGVuIHRoZXNlIGNvbW1hbmRzIGFyZSB1c2VkOyBpdHMg ZGVmYXVsdCBpcwrigJh04oCZLiAg4oCYZXZhbC1leHByZXNzaW9uLXByaW50LW1heGltdW0tY2hh cmFjdGVy4oCZIHByZXZlbnRzIGludGVnZXJzIHdoaWNoCmFyZSBsYXJnZXIgdGhhbiBpdCBmcm9t IGJlaW5nIGRpc3BsYXllZCBhcyBjaGFyYWN0ZXJzLgoKCioqIDI3LjEwIExpc3AgSW50ZXJhY3Rp b24gQnVmZmVycwoKV2hlbiBFbWFjcyBzdGFydHMgdXAsIGl0IGNvbnRhaW5zIGEgYnVmZmVyIG5h bWVkIOKAmCpzY3JhdGNoKuKAmSwgd2hpY2ggaXMKcHJvdmlkZWQgZm9yIGV2YWx1YXRpbmcgRW1h Y3MgTGlzcCBleHByZXNzaW9ucyBpbnRlcmFjdGl2ZWx5LiAgSXRzIG1ham9yCm1vZGUgaXMgTGlz cCBJbnRlcmFjdGlvbiBtb2RlLiAgWW91IGNhbiBhbHNvIGVuYWJsZSBMaXNwIEludGVyYWN0aW9u Cm1vZGUgYnkgdHlwaW5nIOKAmE0teCBsaXNwLWludGVyYWN0aW9uLW1vZGXigJkuCgogICBJbiB0 aGUg4oCYKnNjcmF0Y2gq4oCZIGJ1ZmZlciwgYW5kIG90aGVyIExpc3AgSW50ZXJhY3Rpb24gbW9k ZSBidWZmZXJzLArigJhDLWrigJkgKOKAmGV2YWwtcHJpbnQtbGFzdC1zZXhw4oCZKSBldmFsdWF0 ZXMgdGhlIExpc3AgZXhwcmVzc2lvbiBiZWZvcmUKcG9pbnQsIGFuZCBpbnNlcnRzIHRoZSB2YWx1 ZSBhdCBwb2ludC4gIFRodXMsIGFzIHlvdSB0eXBlIGV4cHJlc3Npb25zCmludG8gdGhlIGJ1ZmZl ciBmb2xsb3dlZCBieSDigJhDLWrigJkgYWZ0ZXIgZWFjaCBleHByZXNzaW9uLCB0aGUgYnVmZmVy CnJlY29yZHMgYSB0cmFuc2NyaXB0IG9mIHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbnMgYW5kIHRo ZWlyIHZhbHVlcy4gIEFsbApvdGhlciBjb21tYW5kcyBpbiBMaXNwIEludGVyYWN0aW9uIG1vZGUg YXJlIHRoZSBzYW1lIGFzIGluIEVtYWNzIExpc3AKbW9kZS4KCiAgIEF0IHN0YXJ0dXAsIHRoZSDi gJgqc2NyYXRjaCrigJkgYnVmZmVyIGNvbnRhaW5zIGEgc2hvcnQgbWVzc2FnZSwgaW4gdGhlCmZv cm0gb2YgYSBMaXNwIGNvbW1lbnQsIHRoYXQgZXhwbGFpbnMgd2hhdCBpdCBpcyBmb3IuICBUaGlz IG1lc3NhZ2UgaXMKY29udHJvbGxlZCBieSB0aGUgdmFyaWFibGUg4oCYaW5pdGlhbC1zY3JhdGNo LW1lc3NhZ2XigJksIHdoaWNoIHNob3VsZCBiZQplaXRoZXIgYSBkb2N1bWVudGF0aW9uIHN0cmlu Zywgb3Ig4oCYbmls4oCZICh3aGljaCBtZWFucyB0byBzdXBwcmVzcyB0aGUKbWVzc2FnZSkuCgog ICBBbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZXZhbHVhdGluZyBFbWFjcyBMaXNwIGV4cHJlc3Npb25z IGludGVyYWN0aXZlbHkKaXMgdG8gdXNlIEluZmVyaW9yIEVtYWNzIExpc3AgbW9kZSwgd2hpY2gg cHJvdmlkZXMgYW4gaW50ZXJmYWNlIHJhdGhlcgpsaWtlIFNoZWxsIG1vZGUgKCpub3RlIFNoZWxs IE1vZGU6OikgZm9yIGV2YWx1YXRpbmcgRW1hY3MgTGlzcApleHByZXNzaW9ucy4gIFR5cGUg4oCY TS14IGllbG3igJkgdG8gY3JlYXRlIGFuIOKAmCppZWxtKuKAmSBidWZmZXIgd2hpY2ggdXNlcwp0 aGlzIG1vZGUuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoYXQgY29tbWFuZOKAmXMgZG9j dW1lbnRhdGlvbi4KCgoqKiAyNy4xMSBSdW5uaW5nIGFuIEV4dGVybmFsIExpc3AKCkxpc3AgbW9k ZSBpcyB0aGUgbWFqb3IgbW9kZSBmb3IgZWRpdGluZyBwcm9ncmFtcyB3cml0dGVuIGluCmdlbmVy YWwtcHVycG9zZSBMaXNwIGRpYWxlY3RzLCBzdWNoIGFzIENvbW1vbiBMaXNwLiAgSXRzIG1vZGUg Y29tbWFuZCBpcwrigJhNLXggbGlzcC1tb2Rl4oCZLiAgRW1hY3MgdXNlcyBMaXNwIG1vZGUgYXV0 b21hdGljYWxseSBmb3IgZmlsZXMgd2hvc2UKbmFtZXMgZW5kIGluIOKAmC5s4oCZLCDigJgubHNw 4oCZLCBvciDigJgubGlzcOKAmS4KCiAgIFlvdSBjYW4gcnVuIGFuIGV4dGVybmFsIExpc3Agc2Vz c2lvbiBhcyBhIHN1YnByb2Nlc3Mgb3IgImluZmVyaW9yCnByb2Nlc3MiIG9mIEVtYWNzLCBhbmQg cGFzcyBleHByZXNzaW9ucyB0byBpdCB0byBiZSBldmFsdWF0ZWQuICBUbyBiZWdpbgphbiBleHRl cm5hbCBMaXNwIHNlc3Npb24sIHR5cGUg4oCYTS14IHJ1bi1saXNw4oCZLiAgVGhpcyBydW5zIHRo ZSBwcm9ncmFtCm5hbWVkIOKAmGxpc3DigJksIGFuZCBzZXRzIGl0IHVwIHNvIHRoYXQgYm90aCBp bnB1dCBhbmQgb3V0cHV0IGdvIHRocm91Z2ggYW4KRW1hY3MgYnVmZmVyIG5hbWVkIOKAmCppbmZl cmlvci1saXNwKuKAmS4gIFRvIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgTGlzcApwcm9ncmFtIHJ1 biBieSDigJhNLXggcnVuLWxpc3DigJksIGNoYW5nZSB0aGUgdmFyaWFibGUK4oCYaW5mZXJpb3It bGlzcC1wcm9ncmFt4oCZLgoKICAgVGhlIG1ham9yIG1vZGUgZm9yIHRoZSDigJgqbGlzcCrigJkg YnVmZmVyIGlzIEluZmVyaW9yIExpc3AgbW9kZSwgd2hpY2gKY29tYmluZXMgdGhlIGNoYXJhY3Rl cmlzdGljcyBvZiBMaXNwIG1vZGUgYW5kIFNoZWxsIG1vZGUgKCpub3RlIFNoZWxsCk1vZGU6Oiku ICBUbyBzZW5kIGlucHV0IHRvIHRoZSBMaXNwIHNlc3Npb24sIGdvIHRvIHRoZSBlbmQgb2YgdGhl CuKAmCpsaXNwKuKAmSBidWZmZXIgYW5kIHR5cGUgdGhlIGlucHV0LCBmb2xsb3dlZCBieSA8UkVU Pi4gIFRlcm1pbmFsIG91dHB1dApmcm9tIHRoZSBMaXNwIHNlc3Npb24gaXMgYXV0b21hdGljYWxs eSBpbnNlcnRlZCBpbiB0aGUgYnVmZmVyLgoKICAgV2hlbiB5b3UgZWRpdCBhIExpc3AgcHJvZ3Jh bSBpbiBMaXNwIG1vZGUsIHlvdSBjYW4gdHlwZSDigJhDLU0teOKAmQoo4oCYbGlzcC1ldmFsLWRl ZnVu4oCZKSB0byBzZW5kIGFuIGV4cHJlc3Npb24gZnJvbSB0aGUgTGlzcCBtb2RlIGJ1ZmZlciB0 byBhCkxpc3Agc2Vzc2lvbiB0aGF0IHlvdSBoYWQgc3RhcnRlZCB3aXRoIOKAmE0teCBydW4tbGlz cOKAmS4gIFRoZSBleHByZXNzaW9uCnNlbnQgaXMgdGhlIHRvcC1sZXZlbCBMaXNwIGV4cHJlc3Np b24gYXQgb3IgZm9sbG93aW5nIHBvaW50LiAgVGhlCnJlc3VsdGluZyB2YWx1ZSBnb2VzIGFzIHVz dWFsIGludG8gdGhlIOKAmCppbmZlcmlvci1saXNwKuKAmSBidWZmZXIuICBOb3RlCnRoYXQgdGhl IGVmZmVjdCBvZiDigJhDLU0teOKAmSBpbiBMaXNwIG1vZGUgaXMgdGh1cyB2ZXJ5IHNpbWlsYXIg dG8gaXRzCmVmZmVjdCBpbiBFbWFjcyBMaXNwIG1vZGUgKCpub3RlIExpc3AgRXZhbDo6KSwgZXhj ZXB0IHRoYXQgdGhlCmV4cHJlc3Npb24gaXMgc2VudCB0byBhIGRpZmZlcmVudCBMaXNwIGVudmly b25tZW50IGluc3RlYWQgb2YgYmVpbmcKZXZhbHVhdGVkIGluIEVtYWNzLgoKICAgVGhlIGZhY2ls aXRpZXMgZm9yIGVkaXRpbmcgU2NoZW1lIGNvZGUsIGFuZCBmb3Igc2VuZGluZyBleHByZXNzaW9u cwp0byBhIFNjaGVtZSBzdWJwcm9jZXNzLCBhcmUgdmVyeSBzaW1pbGFyLiAgU2NoZW1lIHNvdXJj ZSBmaWxlcyBhcmUKZWRpdGVkIGluIFNjaGVtZSBtb2RlLCB3aGljaCBjYW4gYmUgZXhwbGljaXRs eSBlbmFibGVkIHdpdGgg4oCYTS14CnNjaGVtZS1tb2Rl4oCZLiAgWW91IGNhbiBpbml0aWF0ZSBh IFNjaGVtZSBzZXNzaW9uIGJ5IHR5cGluZyDigJhNLXgKcnVuLXNjaGVtZeKAmSAodGhlIGJ1ZmZl ciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBTY2hlbWUgaXMgbmFtZWQK4oCYKnNjaGVtZSrigJkpLCBh bmQgc2VuZCBleHByZXNzaW9ucyB0byBpdCBieSB0eXBpbmcg4oCYQy1NLXjigJkuCgoKKiAyOCBN YWludGFpbmluZyBMYXJnZSBQcm9ncmFtcwoKVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyBFbWFjcyBm ZWF0dXJlcyBmb3IgbWFpbnRhaW5pbmcgbWVkaXVtLSB0bwpsYXJnZS1zaXplIHByb2dyYW1zIGFu ZCBwYWNrYWdlcy4gIFRoZXNlIGZlYXR1cmVzIGluY2x1ZGU6CgogICDiiJIgVW5pZmllZCBpbnRl cmZhY2UgdG8gU3VwcG9ydCBmb3IgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMgKFZDUykgdGhhdAog ICAgIHJlY29yZCB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzIHRvIHNvdXJjZSBmaWxlcy4KCiAgIOKI kiBBIHNwZWNpYWxpemVkIG1vZGUgZm9yIG1haW50YWluaW5nIOKAmENoYW5nZUxvZ+KAmSBmaWxl cyB0aGF0IHByb3ZpZGUgYQogICAgIGNocm9ub2xvZ2ljYWwgbG9nIG9mIHByb2dyYW0gY2hhbmdl cy4KCiAgIOKIkiBYcmVmLCBhIHNldCBvZiBjb21tYW5kcyBmb3IgZGlzcGxheWluZyBkZWZpbml0 aW9ucyBvZiBzeW1ib2xzCiAgICAgKGEuay5hLiDigJxpZGVudGlmaWVyc+KAnSkgYW5kIHRoZWly IHJlZmVyZW5jZXMuCgogICDiiJIgRURFLCB0aGUgRW1hY3PigJlzIG93biBJREUuCgogICDiiJIg QSBtb2RlIGZvciBtZXJnaW5nIGNoYW5nZXMgdG8gcHJvZ3JhbSBzb3VyY2VzIG1hZGUgb24gc2Vw YXJhdGUKICAgICBicmFuY2hlcyBvZiBkZXZlbG9wbWVudC4KCiAgIElmIHlvdSBhcmUgbWFpbnRh aW5pbmcgYSBsYXJnZSBMaXNwIHByb2dyYW0sIHRoZW4gaW4gYWRkaXRpb24gdG8gdGhlCmZlYXR1 cmVzIGRlc2NyaWJlZCBoZXJlLCB5b3UgbWF5IGZpbmQgdGhlIEVtYWNzIExpc3AgUmVncmVzc2lv biBUZXN0aW5nCihFUlQpIGxpYnJhcnkgdXNlZnVsICgqbm90ZSBFUlQ6IChlcnQpVG9wLikuCgor IE1lbnU6CgogIC0gVmVyc2lvbiBDb250cm9sOjogICAgIFVzaW5nIHZlcnNpb24gY29udHJvbCBz eXN0ZW1zLgogIC0gQ2hhbmdlIExvZzo6ICAgICAgICAgIE1haW50YWluaW5nIGEgY2hhbmdlIGhp c3RvcnkgZm9yIHlvdXIgcHJvZ3JhbS4KICAtIFhyZWY6OiAgICAgICAgICAgICAgICBGaW5kIGRl ZmluaXRpb25zIGFuZCByZWZlcmVuY2VzIG9mIGFueSBmdW5jdGlvbiwKICAgICAgICAgICAgICAg ICAgICAgICAgICBtZXRob2QsIHN0cnVjdCwgbWFjcm8sIOKApiBpbiB5b3VyIHByb2dyYW0uCiAg LSBFREU6OiAgICAgICAgICAgICAgICAgQW4gaW50ZWdyYXRlZCBkZXZlbG9wbWVudCBlbnZpcm9u bWVudCBmb3IgRW1hY3MuCiAgLSBFbWVyZ2U6OiAgICAgICAgICAgICAgQSBjb252ZW5pZW50IHdh eSBvZiBtZXJnaW5nIHR3byB2ZXJzaW9ucyBvZiBhIHByb2dyYW0uCgoKKiogMjguMSBWZXJzaW9u IENvbnRyb2wKCkEgInZlcnNpb24gY29udHJvbCBzeXN0ZW0iIGlzIGEgcHJvZ3JhbSB0aGF0IGNh biByZWNvcmQgbXVsdGlwbGUKdmVyc2lvbnMgb2YgYSBzb3VyY2UgZmlsZSwgc3RvcmluZyBpbmZv cm1hdGlvbiBzdWNoIGFzIHRoZSBjcmVhdGlvbiB0aW1lCm9mIGVhY2ggdmVyc2lvbiwgd2hvIG1h ZGUgaXQsIGFuZCBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgd2FzIGNoYW5nZWQuCgogICBUaGUgRW1h Y3MgdmVyc2lvbiBjb250cm9sIGludGVyZmFjZSBpcyBjYWxsZWQgIlZDIi4gIFZDIGNvbW1hbmRz IHdvcmsKd2l0aCBzZXZlcmFsIGRpZmZlcmVudCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtczsgY3Vy cmVudGx5LCBpdCBzdXBwb3J0cwpCYXphYXIsIENWUywgR2l0LCBNZXJjdXJpYWwsIE1vbm90b25l LCBSQ1MsIFNSQywgU0NDUy9DU1NDLCBhbmQKU3VidmVyc2lvbi4gIE9mIHRoZXNlLCB0aGUgR05V IHByb2plY3QgZGlzdHJpYnV0ZXMgQ1ZTLCBSQ1MsIGFuZCBCYXphYXIuCgogICBWQyBpcyBlbmFi bGVkIGF1dG9tYXRpY2FsbHkgd2hlbmV2ZXIgeW91IHZpc2l0IGEgZmlsZSBnb3Zlcm5lZCBieSBh CnZlcnNpb24gY29udHJvbCBzeXN0ZW0uICBUbyBkaXNhYmxlIFZDIGVudGlyZWx5LCBzZXQgdGhl IGN1c3RvbWl6YWJsZQp2YXJpYWJsZSDigJh2Yy1oYW5kbGVkLWJhY2tlbmRz4oCZIHRvIOKAmG5p bOKAmSAoKm5vdGUgQ3VzdG9taXppbmcgVkM6OikuCgogICBUbyB1cGRhdGUgdGhlIFZDIHN0YXRl IGluZm9ybWF0aW9uIGZvciB0aGUgZmlsZSB2aXNpdGVkIGluIHRoZQpjdXJyZW50IGJ1ZmZlciwg dXNlIHRoZSBjb21tYW5kIOKAmHZjLXJlZnJlc2gtc3RhdGXigJkuICBUaGlzIGNvbW1hbmQgaXMK dXNlZnVsIHdoZW4geW91IHBlcmZvcm0gdmVyc2lvbiBjb250cm9sIGNvbW1hbmRzIG91dHNpZGUg RW1hY3MgKGUuZy4sCmZyb20gdGhlIHNoZWxsIHByb21wdCksIG9yIGlmIHlvdSBwdXQgdGhlIGJ1 ZmZlcuKAmXMgZmlsZSB1bmRlciBhCmRpZmZlcmVudCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLCBv ciByZW1vdmUgaXQgZnJvbSB2ZXJzaW9uIGNvbnRyb2wKZW50aXJlbHkuCgorIE1lbnU6CgogIC0g SW50cm9kdWN0aW9uIHRvIFZDOjogIEhvdyB2ZXJzaW9uIGNvbnRyb2wgd29ya3MgaW4gZ2VuZXJh bC4KICAtIFZDIE1vZGUgTGluZTo6ICAgICAgICBIb3cgdGhlIG1vZGUgbGluZSBzaG93cyB2ZXJz aW9uIGNvbnRyb2wgc3RhdHVzLgogIC0gQmFzaWMgVkMgRWRpdGluZzo6ICAgIEhvdyB0byBlZGl0 IGEgZmlsZSB1bmRlciB2ZXJzaW9uIGNvbnRyb2wuCiAgLSBMb2cgQnVmZmVyOjogICAgICAgICAg RmVhdHVyZXMgYXZhaWxhYmxlIGluIGxvZyBlbnRyeSBidWZmZXJzLgogIC0gUmVnaXN0ZXJpbmc6 OiAgICAgICAgIFB1dHRpbmcgYSBmaWxlIHVuZGVyIHZlcnNpb24gY29udHJvbC4KICAtIE9sZCBS ZXZpc2lvbnM6OiAgICAgICBFeGFtaW5pbmcgYW5kIGNvbXBhcmluZyBvbGQgdmVyc2lvbnMuCiAg LSBWQyBDaGFuZ2UgTG9nOjogICAgICAgVmlld2luZyB0aGUgVkMgQ2hhbmdlIExvZy4KICAtIFZD IFVuZG86OiAgICAgICAgICAgICBDYW5jZWxpbmcgY2hhbmdlcyBiZWZvcmUgb3IgYWZ0ZXIgY29t bWl0dGluZy4KICAtIFZDIElnbm9yZTo6ICAgICAgICAgICBJZ25vcmUgZmlsZXMgdW5kZXIgdmVy c2lvbiBjb250cm9sIHN5c3RlbS4KICAtIFZDIERpcmVjdG9yeSBNb2RlOjogICBMaXN0aW5nIGZp bGVzIG1hbmFnZWQgYnkgdmVyc2lvbiBjb250cm9sLgogIC0gQnJhbmNoZXM6OiAgICAgICAgICAg IE11bHRpcGxlIGxpbmVzIG9mIGRldmVsb3BtZW50LgogIC0gTWlzY2VsbGFuZW91cyBWQzo6ICAg IFZhcmlvdXMgb3RoZXIgY29tbWFuZHMgYW5kIGZlYXR1cmVzIG9mIFZDLgogIC0gQ3VzdG9taXpp bmcgVkM6OiAgICAgIFZhcmlhYmxlcyB0aGF0IGNoYW5nZSBWQ+KAmXMgYmVoYXZpb3IuCgoKKioq IDI4LjEuMSBJbnRyb2R1Y3Rpb24gdG8gVmVyc2lvbiBDb250cm9sCgpWQyBhbGxvd3MgeW91IHRv IHVzZSBhIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gZnJvbSB3aXRoaW4gRW1hY3MsCmludGVncmF0 aW5nIHRoZSB2ZXJzaW9uIGNvbnRyb2wgb3BlcmF0aW9ucyBzbW9vdGhseSB3aXRoIGVkaXRpbmcu ICBJdApwcm92aWRlcyBhIHVuaWZvcm0gaW50ZXJmYWNlIGZvciBjb21tb24gb3BlcmF0aW9ucyBp biBtYW55IHZlcnNpb24KY29udHJvbCBvcGVyYXRpb25zLgoKICAgU29tZSB1bmNvbW1vbiBvciBp bnRyaWNhdGUgdmVyc2lvbiBjb250cm9sIG9wZXJhdGlvbnMsIHN1Y2ggYXMKYWx0ZXJpbmcgcmVw b3NpdG9yeSBzZXR0aW5ncywgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gVkMuICBZb3Ugc2hvdWxkCnBl cmZvcm0gc3VjaCB0YXNrcyBvdXRzaWRlIFZDLCBlLmcuLCB2aWEgdGhlIGNvbW1hbmQgbGluZS4K CiAgIFRoaXMgc2VjdGlvbiBwcm92aWRlcyBhIGdlbmVyYWwgb3ZlcnZpZXcgb2YgdmVyc2lvbiBj b250cm9sLCBhbmQKZGVzY3JpYmVzIHRoZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyB0aGF0IFZD IHN1cHBvcnRzLiAgWW91IGNhbiBza2lwCnRoaXMgc2VjdGlvbiBpZiB5b3UgYXJlIGFscmVhZHkg ZmFtaWxpYXIgd2l0aCB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbQp5b3Ugd2FudCB0byB1c2Uu CgorIE1lbnU6CgogIC0gV2h5IFZlcnNpb24gQ29udHJvbD86OiAgICBVbmRlcnN0YW5kaW5nIHRo ZSBwcm9ibGVtcyBpdCBhZGRyZXNzZXMuCiAgLSBWZXJzaW9uIENvbnRyb2wgU3lzdGVtczo6IFN1 cHBvcnRlZCB2ZXJzaW9uIGNvbnRyb2wgYmFjay1lbmQgc3lzdGVtcy4KICAtIFZDUyBDb25jZXB0 czo6ICAgICAgICAgICAgV29yZHMgYW5kIGNvbmNlcHRzIHJlbGF0ZWQgdG8gdmVyc2lvbiBjb250 cm9sLgogIC0gVkNTIE1lcmdpbmc6OiAgICAgICAgICAgICBIb3cgZmlsZSBjb25mbGljdHMgYXJl IGhhbmRsZWQuCiAgLSBWQ1MgQ2hhbmdlc2V0czo6ICAgICAgICAgIEhvdyBjaGFuZ2VzIGFyZSBn cm91cGVkLgogIC0gVkNTIFJlcG9zaXRvcmllczo6ICAgICAgICBXaGVyZSB2ZXJzaW9uIGNvbnRy b2wgcmVwb3NpdG9yaWVzIGFyZSBzdG9yZWQuCiAgLSBUeXBlcyBvZiBMb2cgRmlsZTo6ICAgICAg IFRoZSBWQ1MgbG9nIGluIGNvbnRyYXN0IHRvIHRoZSBDaGFuZ2VMb2cuCgoKKioqKiAyOC4xLjEu MSBVbmRlcnN0YW5kaW5nIHRoZSBQcm9ibGVtcyBpdCBBZGRyZXNzZXMKClZlcnNpb24gY29udHJv bCBzeXN0ZW1zIHByb3ZpZGUgeW91IHdpdGggdGhyZWUgaW1wb3J0YW50IGNhcGFiaWxpdGllczoK CiAgIOKAoiAiUmV2ZXJzaWJpbGl0eSI6IHRoZSBhYmlsaXR5IHRvIGJhY2sgdXAgdG8gYSBwcmV2 aW91cyBzdGF0ZSBpZiB5b3UKICAgICBkaXNjb3ZlciB0aGF0IHNvbWUgbW9kaWZpY2F0aW9uIHlv dSBkaWQgd2FzIGEgbWlzdGFrZSBvciBhIGJhZAogICAgIGlkZWEuCgogICDigKIgIkNvbmN1cnJl bmN5IjogdGhlIGFiaWxpdHkgdG8gaGF2ZSBtYW55IHBlb3BsZSBtb2RpZnlpbmcgdGhlIHNhbWUK ICAgICBjb2xsZWN0aW9uIG9mIGZpbGVzIGtub3dpbmcgdGhhdCBjb25mbGljdGluZyBtb2RpZmlj YXRpb25zIGNhbiBiZQogICAgIGRldGVjdGVkIGFuZCByZXNvbHZlZC4KCiAgIOKAoiAiSGlzdG9y eSI6IHRoZSBhYmlsaXR5IHRvIGF0dGFjaCBoaXN0b3JpY2FsIGRhdGEgdG8geW91ciBkYXRhLCBz dWNoCiAgICAgYXMgZXhwbGFuYXRvcnkgY29tbWVudHMgYWJvdXQgdGhlIGludGVudGlvbiBiZWhp bmQgZWFjaCBjaGFuZ2UuCiAgICAgRXZlbiBmb3IgYSBwcm9ncmFtbWVyIHdvcmtpbmcgc29sbywg Y2hhbmdlIGhpc3RvcmllcyBhcmUgYW4KICAgICBpbXBvcnRhbnQgYWlkIHRvIG1lbW9yeTsgZm9y IGEgbXVsdGktcGVyc29uIHByb2plY3QsIHRoZXkgYXJlIGEKICAgICB2aXRhbGx5IGltcG9ydGFu dCBmb3JtIG9mIGNvbW11bmljYXRpb24gYW1vbmcgZGV2ZWxvcGVycy4KCgoqKioqIDI4LjEuMS4y IFN1cHBvcnRlZCBWZXJzaW9uIENvbnRyb2wgU3lzdGVtcwoKVkMgY3VycmVudGx5IHdvcmtzIHdp dGggbWFueSBkaWZmZXJlbnQgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMsIHdoaWNoIGl0CnJlZmVy cyB0byBhcyAiYmFjayBlbmRzIjoKCiAgIOKAoiBTQ0NTIHdhcyB0aGUgZmlyc3QgdmVyc2lvbiBj b250cm9sIHN5c3RlbSBldmVyIGJ1aWx0LCBhbmQgd2FzIGxvbmcKICAgICBhZ28gc3VwZXJzZWRl ZCBieSBtb3JlIGFkdmFuY2VkIG9uZXMuICBWQyBjb21wZW5zYXRlcyBmb3IgY2VydGFpbgogICAg IGZlYXR1cmVzIG1pc3NpbmcgaW4gU0NDUyAoZS5nLiwgdGFnIG5hbWVzIGZvciByZWxlYXNlcykg YnkKICAgICBpbXBsZW1lbnRpbmcgdGhlbSBpdHNlbGYuICBPdGhlciBWQyBmZWF0dXJlcywgc3Vj aCBhcyBtdWx0aXBsZQogICAgIGJyYW5jaGVzLCBhcmUgc2ltcGx5IHVuYXZhaWxhYmxlLiAgU2lu Y2UgU0NDUyBpcyBub24tZnJlZSwgd2UKICAgICByZWNvbW1lbmQgYXZvaWRpbmcgaXQuCgogICDi gKIgQ1NTQyBpcyBhIGZyZWUgcmVwbGFjZW1lbnQgZm9yIFNDQ1MuICBZb3Ugc2hvdWxkIHVzZSBD U1NDIG9ubHkgaWYsCiAgICAgZm9yIHNvbWUgcmVhc29uLCB5b3UgY2Fubm90IHVzZSBhIG1vcmUg cmVjZW50IGFuZCBiZXR0ZXItZGVzaWduZWQKICAgICB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLgoK ICAg4oCiIFJDUyBpcyB0aGUgZnJlZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIGFyb3VuZCB3aGlj aCBWQyB3YXMKICAgICBpbml0aWFsbHkgYnVpbHQuICBJdCBpcyByZWxhdGl2ZWx5IHByaW1pdGl2 ZTogaXQgY2Fubm90IGJlIHVzZWQKICAgICBvdmVyIHRoZSBuZXR3b3JrLCBhbmQgd29ya3MgYXQg dGhlIGxldmVsIG9mIGluZGl2aWR1YWwgZmlsZXMuCiAgICAgQWxtb3N0IGV2ZXJ5dGhpbmcgeW91 IGNhbiBkbyB3aXRoIFJDUyBjYW4gYmUgZG9uZSB0aHJvdWdoIFZDLgoKICAg4oCiIENWUyBpcyB0 aGUgZnJlZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHRoYXQgd2FzLCB1bnRpbCBjaXJjYSAyMDA4 LAogICAgIHVzZWQgYnkgdGhlIG1ham9yaXR5IG9mIGZyZWUgc29mdHdhcmUgcHJvamVjdHMuICBT aW5jZSB0aGVuLCBpdCBoYXMKICAgICBiZWVuIHN1cGVyc2VkZWQgYnkgbmV3ZXIgc3lzdGVtcy4g IENWUyBhbGxvd3MgY29uY3VycmVudCBtdWx0aS11c2VyCiAgICAgZGV2ZWxvcG1lbnQgZWl0aGVy IGxvY2FsbHkgb3Igb3ZlciB0aGUgbmV0d29yay4gIFVubGlrZSBuZXdlcgogICAgIHN5c3RlbXMs IGl0IGxhY2tzIHN1cHBvcnQgZm9yIGF0b21pYyBjb21taXRzIGFuZCBmaWxlCiAgICAgbW92aW5n L3JlbmFtaW5nLiAgVkMgc3VwcG9ydHMgYWxsIGJhc2ljIGVkaXRpbmcgb3BlcmF0aW9ucyB1bmRl cgogICAgIENWUy4KCiAgIOKAoiBTdWJ2ZXJzaW9uIChzdm4pIGlzIGEgZnJlZSB2ZXJzaW9uIGNv bnRyb2wgc3lzdGVtIGRlc2lnbmVkIHRvIGJlCiAgICAgc2ltaWxhciB0byBDVlMgYnV0IHdpdGhv dXQgaXRzIHByb2JsZW1zIChlLmcuLCBpdCBzdXBwb3J0cyBhdG9taWMKICAgICBjb21taXRzIG9m IGZpbGVzZXRzLCBhbmQgdmVyc2lvbmluZyBvZiBkaXJlY3Rvcmllcywgc3ltYm9saWMgbGlua3Ms CiAgICAgbWV0YS1kYXRhLCByZW5hbWVzLCBjb3BpZXMsIGFuZCBkZWxldGVzKS4KCiAgIOKAoiBH aXQgaXMgYSBkZWNlbnRyYWxpemVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gb3JpZ2luYWxseSBp bnZlbnRlZAogICAgIGJ5IExpbnVzIFRvcnZhbGRzIHRvIHN1cHBvcnQgZGV2ZWxvcG1lbnQgb2Yg TGludXggKGhpcyBrZXJuZWwpLiAgVkMKICAgICBzdXBwb3J0cyBtYW55IGNvbW1vbiBHaXQgb3Bl cmF0aW9ucywgYnV0IG90aGVycywgc3VjaCBhcyByZXBvc2l0b3J5CiAgICAgc3luY2luZywgbXVz dCBiZSBkb25lIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KCiAgIOKAoiBNZXJjdXJpYWwgKGhnKSBp cyBhIGRlY2VudHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSBicm9hZGx5CiAgICAgcmVz ZW1ibGluZyBHaXQuICBWQyBzdXBwb3J0cyBtb3N0IE1lcmN1cmlhbCBjb21tYW5kcywgd2l0aCB0 aGUKICAgICBleGNlcHRpb24gb2YgcmVwb3NpdG9yeSBzeW5jIG9wZXJhdGlvbnMuCgogICDigKIg QmF6YWFyIChienIpIGlzIGEgZGVjZW50cmFsaXplZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHRo YXQKICAgICBzdXBwb3J0cyBib3RoIHJlcG9zaXRvcnktYmFzZWQgYW5kIGRlY2VudHJhbGl6ZWQg dmVyc2lvbmluZy4gIFZDCiAgICAgc3VwcG9ydHMgbW9zdCBiYXNpYyBlZGl0aW5nIG9wZXJhdGlv bnMgdW5kZXIgQmF6YWFyLgoKICAg4oCiIFNSQyAoc3JjKSBpcyBSQ1MsIHJlbG9hZGVk4oCUYSBz cGVjaWFsaXplZCB2ZXJzaW9uLWNvbnRyb2wgc3lzdGVtCiAgICAgZGVzaWduZWQgZm9yIHNpbmds ZS1maWxlIHByb2plY3RzIHdvcmtlZCBvbiBieSBvbmx5IG9uZSBwZXJzb24uICBJdAogICAgIGFs bG93cyBtdWx0aXBsZSBmaWxlcyB3aXRoIGluZGVwZW5kZW50IHZlcnNpb24tY29udHJvbCBoaXN0 b3JpZXMgdG8KICAgICBleGlzdCBpbiBvbmUgZGlyZWN0b3J5LCBhbmQgaXMgdGh1cyBwYXJ0aWN1 bGFybHkgd2VsbCBzdWl0ZWQgZm9yCiAgICAgbWFpbnRhaW5pbmcgc21hbGwgZG9jdW1lbnRzLCBz Y3JpcHRzLCBhbmQgZG90ZmlsZXMuICBXaGlsZSBpdCB1c2VzCiAgICAgUkNTIGZvciByZXZpc2lv biBzdG9yYWdlLCBpdCBwcmVzZW50cyBhIG1vZGVybiB1c2VyIGludGVyZmFjZQogICAgIGZlYXR1 cmluZyBsb2NrbGVzcyBvcGVyYXRpb24gYW5kIGludGVnZXIgc2VxdWVudGlhbCB2ZXJzaW9uCiAg ICAgbnVtYmVycy4gIFZDIHN1cHBvcnRzIGFsbW9zdCBhbGwgU1JDIG9wZXJhdGlvbnMuCgoKKioq KiAyOC4xLjEuMyBDb25jZXB0cyBvZiBWZXJzaW9uIENvbnRyb2wKCldoZW4gYSBmaWxlIGlzIHVu ZGVyIHZlcnNpb24gY29udHJvbCwgd2Ugc2F5IHRoYXQgaXQgaXMgInJlZ2lzdGVyZWQiIGluCnRo ZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLiAgVGhlIHN5c3RlbSBoYXMgYSAicmVwb3NpdG9yeSIg d2hpY2ggc3RvcmVzCmJvdGggdGhlIGZpbGXigJlzIHByZXNlbnQgc3RhdGUgYW5kIGl0cyBjaGFu Z2UgaGlzdG9yeeKAlGVub3VnaCB0bwpyZWNvbnN0cnVjdCB0aGUgY3VycmVudCB2ZXJzaW9uIG9y IGFueSBlYXJsaWVyIHZlcnNpb24uICBUaGUgcmVwb3NpdG9yeQphbHNvIGNvbnRhaW5zIG90aGVy IGluZm9ybWF0aW9uLCBzdWNoIGFzICJsb2cgZW50cmllcyIgdGhhdCBkZXNjcmliZSB0aGUKY2hh bmdlcyBtYWRlIHRvIGVhY2ggZmlsZS4KCiAgIFRoZSBjb3B5IG9mIGEgdmVyc2lvbi1jb250cm9s bGVkIGZpbGUgdGhhdCB5b3UgYWN0dWFsbHkgZWRpdCBpcwpjYWxsZWQgdGhlICJ3b3JrIGZpbGUi LiAgWW91IGNhbiBjaGFuZ2UgZWFjaCB3b3JrIGZpbGUgYXMgeW91IHdvdWxkIGFuCm9yZGluYXJ5 IGZpbGUuICBBZnRlciB5b3UgYXJlIGRvbmUgd2l0aCBhIHNldCBvZiBjaGFuZ2VzLCB5b3UgbWF5 CiJjb21taXQiIChvciAiY2hlY2sgaW4iKSB0aGUgY2hhbmdlczsgdGhpcyByZWNvcmRzIHRoZSBj aGFuZ2VzIGluIHRoZQpyZXBvc2l0b3J5LCBhbG9uZyB3aXRoIGEgZGVzY3JpcHRpdmUgbG9nIGVu dHJ5LgoKICAgQSBkaXJlY3RvcnkgdHJlZSBvZiB3b3JrIGZpbGVzIGlzIGNhbGxlZCBhICJ3b3Jr aW5nIHRyZWUiLgoKICAgRWFjaCBjb21taXQgY3JlYXRlcyBhIG5ldyAicmV2aXNpb24iIGluIHRo ZSByZXBvc2l0b3J5LiAgVGhlIHZlcnNpb24KY29udHJvbCBzeXN0ZW0ga2VlcHMgdHJhY2sgb2Yg YWxsIHBhc3QgcmV2aXNpb25zIGFuZCB0aGUgY2hhbmdlcyB0aGF0CndlcmUgbWFkZSBpbiBlYWNo IHJldmlzaW9uLiAgRWFjaCByZXZpc2lvbiBpcyBuYW1lZCBieSBhICJyZXZpc2lvbiBJRCIsCndo b3NlIGZvcm1hdCBkZXBlbmRzIG9uIHRoZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtOyBpbiB0aGUg c2ltcGxlc3QKY2FzZSwgaXQgaXMganVzdCBhbiBpbnRlZ2VyLgoKICAgVG8gZ28gYmV5b25kIHRo ZXNlIGJhc2ljIGNvbmNlcHRzLCB5b3Ugd2lsbCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhyZWUKYXNw ZWN0cyBpbiB3aGljaCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyBkaWZmZXIuICBBcyBleHBsYWlu ZWQgaW4gdGhlCm5leHQgdGhyZWUgc2VjdGlvbnMsIHRoZXkgY2FuIGJlIGxvY2stYmFzZWQgb3Ig bWVyZ2UtYmFzZWQ7IGZpbGUtYmFzZWQKb3IgY2hhbmdlc2V0LWJhc2VkOyBhbmQgY2VudHJhbGl6 ZWQgb3IgZGVjZW50cmFsaXplZC4gIFZDIGhhbmRsZXMgYWxsCnRoZXNlIG1vZGVzIG9mIG9wZXJh dGlvbiwgYnV0IGl0IGNhbm5vdCBoaWRlIHRoZSBkaWZmZXJlbmNlcy4KCgoqKioqIDI4LjEuMS40 IE1lcmdlLWJhc2VkIHZzIExvY2stYmFzZWQgVmVyc2lvbiBDb250cm9sCgpBIHZlcnNpb24gY29u dHJvbCBzeXN0ZW0gdHlwaWNhbGx5IGhhcyBzb21lIG1lY2hhbmlzbSB0byBjb29yZGluYXRlCmJl dHdlZW4gdXNlcnMgd2hvIHdhbnQgdG8gY2hhbmdlIHRoZSBzYW1lIGZpbGUuICBUaGVyZSBhcmUg dHdvIHdheXMgdG8KZG8gdGhpczogbWVyZ2luZyBhbmQgbG9ja2luZy4KCiAgIEluIGEgdmVyc2lv biBjb250cm9sIHN5c3RlbSB0aGF0IHVzZXMgbWVyZ2luZywgZWFjaCB1c2VyIG1heSBtb2RpZnkg YQp3b3JrIGZpbGUgYXQgYW55IHRpbWUuICBUaGUgc3lzdGVtIGxldHMgeW91ICJtZXJnZSIgeW91 ciB3b3JrIGZpbGUsCndoaWNoIG1heSBjb250YWluIGNoYW5nZXMgdGhhdCBoYXZlIG5vdCBiZWVu IGNvbW1pdHRlZCwgd2l0aCB0aGUgbGF0ZXN0CmNoYW5nZXMgdGhhdCBvdGhlcnMgaGF2ZSBjb21t aXR0ZWQuCgogICBPbGRlciB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyB1c2UgYSAibG9ja2luZyIg c2NoZW1lIGluc3RlYWQuICBIZXJlLAp3b3JrIGZpbGVzIGFyZSBub3JtYWxseSByZWFkLW9ubHku ICBUbyBlZGl0IGEgZmlsZSwgeW91IGFzayB0aGUgdmVyc2lvbgpjb250cm9sIHN5c3RlbSB0byBt YWtlIGl0IHdyaXRhYmxlIGZvciB5b3UgYnkgImxvY2tpbmciIGl0OyBvbmx5IG9uZQp1c2VyIGNh biBsb2NrIGEgZ2l2ZW4gZmlsZSBhdCBhbnkgZ2l2ZW4gdGltZS4gIFRoaXMgcHJvY2VkdXJlIGlz CmFuYWxvZ291cyB0bywgYnV0IGRpZmZlcmVudCBmcm9tLCB0aGUgbG9ja2luZyB0aGF0IEVtYWNz IHVzZXMgdG8gZGV0ZWN0CnNpbXVsdGFuZW91cyBlZGl0aW5nIG9mIG9yZGluYXJ5IGZpbGVzICgq bm90ZSBJbnRlcmxvY2tpbmc6OikuICBXaGVuIHlvdQpjb21taXQgeW91ciBjaGFuZ2VzLCB0aGF0 IHVubG9ja3MgdGhlIGZpbGUsIGFuZCB0aGUgd29yayBmaWxlIGJlY29tZXMKcmVhZC1vbmx5IGFn YWluLiAgT3RoZXIgdXNlcnMgbWF5IHRoZW4gbG9jayB0aGUgZmlsZSB0byBtYWtlIHRoZWlyIG93 bgpjaGFuZ2VzLgoKICAgQm90aCBsb2NraW5nIGFuZCBtZXJnaW5nIHN5c3RlbXMgY2FuIGhhdmUg cHJvYmxlbXMgd2hlbiBtdWx0aXBsZQp1c2VycyB0cnkgdG8gbW9kaWZ5IHRoZSBzYW1lIGZpbGUg YXQgdGhlIHNhbWUgdGltZS4gIExvY2tpbmcgc3lzdGVtcwpoYXZlICJsb2NrIGNvbmZsaWN0cyI7 IGEgdXNlciBtYXkgdHJ5IHRvIGNoZWNrIGEgZmlsZSBvdXQgYW5kIGJlIHVuYWJsZQp0byBiZWNh dXNlIGl0IGlzIGxvY2tlZC4gIEluIG1lcmdpbmcgc3lzdGVtcywgIm1lcmdlIGNvbmZsaWN0cyIg aGFwcGVuCndoZW4geW91IGNvbW1pdCBhIGNoYW5nZSB0byBhIGZpbGUgdGhhdCBjb25mbGljdHMg d2l0aCBhIGNoYW5nZQpjb21taXR0ZWQgYnkgc29tZW9uZSBlbHNlIGFmdGVyIHlvdXIgY2hlY2tv dXQuICBCb3RoIGtpbmRzIG9mIGNvbmZsaWN0CmhhdmUgdG8gYmUgcmVzb2x2ZWQgYnkgaHVtYW4g anVkZ21lbnQgYW5kIGNvbW11bmljYXRpb24uICBFeHBlcmllbmNlIGhhcwpzaG93biB0aGF0IG1l cmdpbmcgaXMgc3VwZXJpb3IgdG8gbG9ja2luZywgYm90aCBpbiBjb252ZW5pZW5jZSB0bwpkZXZl bG9wZXJzIGFuZCBpbiBtaW5pbWl6aW5nIHRoZSBudW1iZXIgYW5kIHNldmVyaXR5IG9mIGNvbmZs aWN0cyB0aGF0CmFjdHVhbGx5IG9jY3VyLgoKICAgU0NDUyBhbHdheXMgdXNlcyBsb2NraW5nLiAg UkNTIGlzIGxvY2stYmFzZWQgYnkgZGVmYXVsdCBidXQgY2FuIGJlCnRvbGQgdG8gb3BlcmF0ZSBp biBhIG1lcmdpbmcgc3R5bGUuICBDVlMgYW5kIFN1YnZlcnNpb24gYXJlIG1lcmdlLWJhc2VkCmJ5 IGRlZmF1bHQgYnV0IGNhbiBiZSB0b2xkIHRvIG9wZXJhdGUgaW4gYSBsb2NraW5nIG1vZGUuICBE ZWNlbnRyYWxpemVkCnZlcnNpb24gY29udHJvbCBzeXN0ZW1zLCBzdWNoIGFzIEdpdCBhbmQgTWVy Y3VyaWFsLCBhcmUgZXhjbHVzaXZlbHkKbWVyZ2luZy1iYXNlZC4KCiAgIFZDIG1vZGUgc3VwcG9y dHMgYm90aCBsb2NraW5nIGFuZCBtZXJnaW5nIHZlcnNpb24gY29udHJvbC4gIFRoZSB0ZXJtcwri gJxjb21taXTigJ0gYW5kIOKAnHVwZGF0ZeKAnSBhcmUgdXNlZCBpbiBuZXdlciB2ZXJzaW9uIGNv bnRyb2wgc3lzdGVtczsgb2xkZXIKbG9jay1iYXNlZCBzeXN0ZW1zIHVzZSB0aGUgdGVybXMg4oCc Y2hlY2sgaW7igJ0gYW5kIOKAnGNoZWNrIG91dOKAnS4gIFZDIGhpZGVzCnRoZSBkaWZmZXJlbmNl cyBiZXR3ZWVuIHRoZW0gYXMgbXVjaCBhcyBwb3NzaWJsZS4KCgoqKioqIDI4LjEuMS41IENoYW5n ZXNldC1iYXNlZCB2cyBGaWxlLWJhc2VkIFZlcnNpb24gQ29udHJvbAoKT24gU0NDUywgUkNTLCBD VlMsIGFuZCBvdGhlciBlYXJseSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyAoYW5kIGFsc28gaW4K U1JDKSwgdmVyc2lvbiBjb250cm9sIG9wZXJhdGlvbnMgYXJlICJmaWxlLWJhc2VkIjogZWFjaCBm aWxlIGhhcyBpdHMgb3duCmNvbW1lbnQgYW5kIHJldmlzaW9uIGhpc3Rvcnkgc2VwYXJhdGUgZnJv bSB0aGF0IG9mIGFsbCBvdGhlciBmaWxlcy4KTmV3ZXIgc3lzdGVtcywgYmVnaW5uaW5nIHdpdGgg U3VidmVyc2lvbiwgYXJlICJjaGFuZ2VzZXQtYmFzZWQiOiBhCmNvbW1pdCBtYXkgaW5jbHVkZSBj aGFuZ2VzIHRvIHNldmVyYWwgZmlsZXMsIGFuZCB0aGUgZW50aXJlIHNldCBvZgpjaGFuZ2VzIGlz IGhhbmRsZWQgYXMgYSB1bml0LiAgQW55IGNvbW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjaGFu Z2UKZG9lcyBub3QgYmVsb25nIHRvIGEgc2luZ2xlIGZpbGUsIGJ1dCB0byB0aGUgY2hhbmdlc2V0 IGl0c2VsZi4KCiAgIENoYW5nZXNldC1iYXNlZCB2ZXJzaW9uIGNvbnRyb2wgaXMgbW9yZSBmbGV4 aWJsZSBhbmQgcG93ZXJmdWwgdGhhbgpmaWxlLWJhc2VkIHZlcnNpb24gY29udHJvbDsgdXN1YWxs eSwgd2hlbiBhIGNoYW5nZSB0byBtdWx0aXBsZSBmaWxlcyBoYXMKdG8gYmUgcmV2ZXJzZWQsIGl0 4oCZcyBnb29kIHRvIGJlIGFibGUgdG8gZWFzaWx5IGlkZW50aWZ5IGFuZCByZW1vdmUgYWxsCm9m IGl0LgoKCioqKiogMjguMS4xLjYgRGVjZW50cmFsaXplZCB2cyBDZW50cmFsaXplZCBSZXBvc2l0 b3JpZXMKCkVhcmx5IHZlcnNpb24gY29udHJvbCBzeXN0ZW1zIHdlcmUgZGVzaWduZWQgYXJvdW5k IGEgImNlbnRyYWxpemVkIiBtb2RlbAppbiB3aGljaCBlYWNoIHByb2plY3QgaGFzIG9ubHkgb25l IHJlcG9zaXRvcnkgdXNlZCBieSBhbGwgZGV2ZWxvcGVycy4KU0NDUywgUkNTLCBDVlMsIFN1YnZl cnNpb24sIGFuZCBTUkMgc2hhcmUgdGhpcyBraW5kIG9mIG1vZGVsLiAgT25lIG9mCml0cyBkcmF3 YmFja3MgaXMgdGhhdCB0aGUgcmVwb3NpdG9yeSBpcyBhIGNob2tlIHBvaW50IGZvciByZWxpYWJp bGl0eQphbmQgZWZmaWNpZW5jeS4KCiAgIEdOVSBBcmNoIHBpb25lZXJlZCB0aGUgY29uY2VwdCBv ZiAiZGlzdHJpYnV0ZWQiIG9yICJkZWNlbnRyYWxpemVkIgp2ZXJzaW9uIGNvbnRyb2wsIGxhdGVy IGltcGxlbWVudGVkIGluIEdpdCwgTWVyY3VyaWFsLCBhbmQgQmF6YWFyLiAgQQpwcm9qZWN0IG1h eSBoYXZlIHNldmVyYWwgZGlmZmVyZW50IHJlcG9zaXRvcmllcywgYW5kIHRoZXNlIHN5c3RlbXMK c3VwcG9ydCBhIHNvcnQgb2Ygc3VwZXItbWVyZ2UgYmV0d2VlbiByZXBvc2l0b3JpZXMgdGhhdCB0 cmllcyB0bwpyZWNvbmNpbGUgdGhlaXIgY2hhbmdlIGhpc3Rvcmllcy4gIEluIGVmZmVjdCwgdGhl cmUgaXMgb25lIHJlcG9zaXRvcnkKZm9yIGVhY2ggZGV2ZWxvcGVyLCBhbmQgcmVwb3NpdG9yeSBt ZXJnZXMgdGFrZSB0aGUgcGxhY2Ugb2YgY29tbWl0Cm9wZXJhdGlvbnMuCgogICBWQyBoZWxwcyB5 b3UgbWFuYWdlIHRoZSB0cmFmZmljIGJldHdlZW4geW91ciBwZXJzb25hbCB3b3JrZmlsZXMgYW5k IGEKcmVwb3NpdG9yeS4gIFdoZXRoZXIgdGhlIHJlcG9zaXRvcnkgaXMgYSBzaW5nbGUgbWFzdGVy LCBvciBvbmUgb2YgYQpuZXR3b3JrIG9mIHBlZXIgcmVwb3NpdG9yaWVzLCBpcyBub3Qgc29tZXRo aW5nIFZDIGhhcyB0byBjYXJlIGFib3V0LgoKCioqKiogMjguMS4xLjcgVHlwZXMgb2YgTG9nIEZp bGUKClByb2plY3RzIHRoYXQgdXNlIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSBjYW4gaGF2ZSB0 d28gdHlwZXMgb2YgbG9nIGZvcgpjaGFuZ2VzLiAgT25lIGlzIHRoZSBsb2cgbWFpbnRhaW5lZCBi eSB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbTogZWFjaAp0aW1lIHlvdSBjb21taXQgYSBjaGFu Z2UsIHlvdSBmaWxsIG91dCBhICJsb2cgZW50cnkiIGZvciB0aGUgY2hhbmdlCigqbm90ZSBMb2cg QnVmZmVyOjopLiAgVGhpcyBpcyBjYWxsZWQgdGhlICJ2ZXJzaW9uIGNvbnRyb2wgbG9nIi4KCiAg IFRoZSBvdGhlciBraW5kIG9mIGxvZyBpcyB0aGUgZmlsZSDigJhDaGFuZ2VMb2figJkgKCpub3Rl IENoYW5nZSBMb2c6OikuCkl0IHByb3ZpZGVzIGEgY2hyb25vbG9naWNhbCByZWNvcmQgb2YgYWxs IGNoYW5nZXMgdG8gYSBsYXJnZSBwb3J0aW9uIG9mCmEgcHJvZ3JhbeKAlHR5cGljYWxseSBvbmUg ZGlyZWN0b3J5IGFuZCBpdHMgc3ViZGlyZWN0b3JpZXMuICBBIHNtYWxsCnByb2dyYW0gd291bGQg dXNlIG9uZSDigJhDaGFuZ2VMb2figJkgZmlsZTsgYSBsYXJnZSBwcm9ncmFtIG1heSBoYXZlIGEK 4oCYQ2hhbmdlTG9n4oCZIGZpbGUgaW4gZWFjaCBtYWpvciBkaXJlY3RvcnkuICAqTm90ZSBDaGFu Z2UgTG9nOjouClByb2dyYW1tZXJzIGhhdmUgdXNlZCBjaGFuZ2UgbG9ncyBzaW5jZSBsb25nIGJl Zm9yZSB2ZXJzaW9uIGNvbnRyb2wKc3lzdGVtcy4KCiAgIENoYW5nZXNldC1iYXNlZCB2ZXJzaW9u IHN5c3RlbXMgdHlwaWNhbGx5IG1haW50YWluIGEgY2hhbmdlc2V0LWJhc2VkCm1vZGlmaWNhdGlv biBsb2cgZm9yIHRoZSBlbnRpcmUgc3lzdGVtLCB3aGljaCBtYWtlcyBjaGFuZ2UgbG9nIGZpbGVz CnNvbWV3aGF0IHJlZHVuZGFudC4gIE9uZSBhZHZhbnRhZ2UgdGhhdCB0aGV5IHJldGFpbiBpcyB0 aGF0IGl0IGlzCnNvbWV0aW1lcyB1c2VmdWwgdG8gYmUgYWJsZSB0byB2aWV3IHRoZSB0cmFuc2Fj dGlvbiBoaXN0b3J5IG9mIGEgc2luZ2xlCmRpcmVjdG9yeSBzZXBhcmF0ZWx5IGZyb20gdGhvc2Ug b2Ygb3RoZXIgZGlyZWN0b3JpZXMuICBBbm90aGVyIGFkdmFudGFnZQppcyB0aGF0IGNvbW1pdCBs b2dzIGNhbuKAmXQgYmUgZml4ZWQgaW4gbWFueSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcy4KCiAg IEEgcHJvamVjdCBtYWludGFpbmVkIHdpdGggdmVyc2lvbiBjb250cm9sIGNhbiB1c2UganVzdCB0 aGUgdmVyc2lvbgpjb250cm9sIGxvZywgb3IgaXQgY2FuIHVzZSBib3RoIGtpbmRzIG9mIGxvZ3Mu ICBJdCBjYW4gaGFuZGxlIHNvbWUgZmlsZXMKb25lIHdheSBhbmQgc29tZSBmaWxlcyB0aGUgb3Ro ZXIgd2F5LiAgRWFjaCBwcm9qZWN0IGhhcyBpdHMgcG9saWN5LAp3aGljaCB5b3Ugc2hvdWxkIGZv bGxvdy4KCiAgIFdoZW4gdGhlIHBvbGljeSBpcyB0byB1c2UgYm90aCwgeW91IHR5cGljYWxseSB3 YW50IHRvIHdyaXRlIGFuIGVudHJ5CmZvciBlYWNoIGNoYW5nZSBqdXN0IG9uY2UsIHRoZW4gcHV0 IGl0IGludG8gYm90aCBsb2dzLiAgWW91IGNhbiB3cml0ZQp0aGUgZW50cnkgaW4g4oCYQ2hhbmdl TG9n4oCZLCB0aGVuIGNvcHkgaXQgdG8gdGhlIGxvZyBidWZmZXIgd2l0aCDigJhDLWMgQy1h4oCZ CndoZW4gY29tbWl0dGluZyB0aGUgY2hhbmdlICgqbm90ZSBMb2cgQnVmZmVyOjopLiAgT3IgeW91 IGNhbiB3cml0ZSB0aGUKZW50cnkgaW4gdGhlIGxvZyBidWZmZXIgd2hpbGUgY29tbWl0dGluZyB0 aGUgY2hhbmdlLCBhbmQgbGF0ZXIgdXNlIHRoZQrigJhDLXggdiBh4oCZIGNvbW1hbmQgdG8gY29w eSBpdCB0byDigJhDaGFuZ2VMb2figJkgKCpub3RlIENoYW5nZSBMb2dzIGFuZApWQzo6KS4KCgoq KiogMjguMS4yIFZlcnNpb24gQ29udHJvbCBhbmQgdGhlIE1vZGUgTGluZQoKV2hlbiB5b3Ugdmlz aXQgYSBmaWxlIHRoYXQgaXMgdW5kZXIgdmVyc2lvbiBjb250cm9sLCBFbWFjcyBpbmRpY2F0ZXMK dGhpcyBvbiB0aGUgbW9kZSBsaW5lLiAgRm9yIGV4YW1wbGUsIOKAmEJ6ci0xMjIz4oCZIHNheXMg dGhhdCBCYXphYXIgaXMgdXNlZApmb3IgdGhhdCBmaWxlLCBhbmQgdGhlIGN1cnJlbnQgcmV2aXNp b24gSUQgaXMgMTIyMy4KCiAgIFRoZSBjaGFyYWN0ZXIgYmV0d2VlbiB0aGUgYmFjay1lbmQgbmFt ZSBhbmQgdGhlIHJldmlzaW9uIElEIGluZGljYXRlcwp0aGUgInZlcnNpb24gY29udHJvbCBzdGF0 dXMiIG9mIHRoZSB3b3JrIGZpbGUuICBJbiBhIG1lcmdlLWJhc2VkIHZlcnNpb24KY29udHJvbCBz eXN0ZW0sIGEg4oCYLeKAmSBjaGFyYWN0ZXIgaW5kaWNhdGVzIHRoYXQgdGhlIHdvcmsgZmlsZSBp cwp1bm1vZGlmaWVkLCBhbmQg4oCYOuKAmSBpbmRpY2F0ZXMgdGhhdCBpdCBoYXMgYmVlbiBtb2Rp ZmllZC4gIOKAmCHigJkgaW5kaWNhdGVzCnRoYXQgdGhlIGZpbGUgY29udGFpbnMgY29uZmxpY3Rz IGFzIHJlc3VsdCBvZiBhIHJlY2VudCBtZXJnZSBvcGVyYXRpb24KKCpub3RlIE1lcmdpbmc6Oiks IG9yIHRoYXQgdGhlIGZpbGUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgdmVyc2lvbgpjb250cm9sLiAg RmluYWxseSwg4oCYP+KAmSBtZWFucyB0aGF0IHRoZSBmaWxlIGlzIHVuZGVyIHZlcnNpb24gY29u dHJvbCwgYnV0CmlzIG1pc3NpbmcgZnJvbSB0aGUgd29ya2luZyB0cmVlLgoKICAgSW4gYSBsb2Nr LWJhc2VkIHN5c3RlbSwg4oCYLeKAmSBpbmRpY2F0ZXMgYW4gdW5sb2NrZWQgZmlsZSwgYW5kIOKA mDrigJkgYQpsb2NrZWQgZmlsZTsgaWYgdGhlIGZpbGUgaXMgbG9ja2VkIGJ5IGFub3RoZXIgdXNl ciAoZm9yIGluc3RhbmNlLArigJhqaW3igJkpLCB0aGF0IGlzIGRpc3BsYXllZCBhcyDigJhSQ1M6 amltOjEuM+KAmS4gIOKAmEDigJkgbWVhbnMgdGhhdCB0aGUgZmlsZSB3YXMKbG9jYWxseSBhZGRl ZCwgYnV0IG5vdCB5ZXQgY29tbWl0dGVkIHRvIHRoZSBtYXN0ZXIgcmVwb3NpdG9yeS4KCiAgIE9u IGEgZ3JhcGhpY2FsIGRpc3BsYXksIHlvdSBjYW4gbW92ZSB0aGUgbW91c2Ugb3ZlciB0aGlzIG1v ZGUgbGluZQppbmRpY2F0b3IgdG8gcG9wIHVwIGEgdG9vbC10aXAsIHdoaWNoIGRpc3BsYXlzIGEg bW9yZSB2ZXJib3NlCmRlc2NyaXB0aW9uIG9mIHRoZSB2ZXJzaW9uIGNvbnRyb2wgc3RhdHVzLiAg UHJlc3Npbmcg4oCYbW91c2UtMeKAmSBvdmVyIHRoZQppbmRpY2F0b3IgcG9wcyB1cCBhIG1lbnUg b2YgVkMgY29tbWFuZHMsIGlkZW50aWNhbCB0byDigJhUb29scyAvIFZlcnNpb24KQ29udHJvbOKA mSBvbiB0aGUgbWVudSBiYXIuCgogICBXaGVuIEF1dG8gUmV2ZXJ0IG1vZGUgKCpub3RlIFJldmVy dGluZzo6KSByZXZlcnRzIGEgYnVmZmVyIHRoYXQgaXMKdW5kZXIgdmVyc2lvbiBjb250cm9sLCBp dCB1cGRhdGVzIHRoZSB2ZXJzaW9uIGNvbnRyb2wgaW5mb3JtYXRpb24gaW4gdGhlCm1vZGUgbGlu ZS4gIEhvd2V2ZXIsIEF1dG8gUmV2ZXJ0IG1vZGUgbWF5IG5vdCBwcm9wZXJseSB1cGRhdGUgdGhp cwppbmZvcm1hdGlvbiBpZiB0aGUgdmVyc2lvbiBjb250cm9sIHN0YXR1cyBjaGFuZ2VzIHdpdGhv dXQgY2hhbmdlcyB0byB0aGUKd29yayBmaWxlLCBmcm9tIG91dHNpZGUgdGhlIGN1cnJlbnQgRW1h Y3Mgc2Vzc2lvbi4gIElmIHlvdSBzZXQK4oCYYXV0by1yZXZlcnQtY2hlY2stdmMtaW5mb+KAmSB0 byDigJh04oCZLCBBdXRvIFJldmVydCBtb2RlIHVwZGF0ZXMgdGhlIHZlcnNpb24KY29udHJvbCBz dGF0dXMgaW5mb3JtYXRpb24gZXZlcnkg4oCYYXV0by1yZXZlcnQtaW50ZXJ2YWzigJkgc2Vjb25k cywgZXZlbiBpZgp0aGUgd29yayBmaWxlIGl0c2VsZiBpcyB1bmNoYW5nZWQuICBUaGUgcmVzdWx0 aW5nIENQVSB1c2FnZSBkZXBlbmRzIG9uCnRoZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLCBidXQg aXMgdXN1YWxseSBub3QgZXhjZXNzaXZlLgoKCioqKiAyOC4xLjMgQmFzaWMgRWRpdGluZyB1bmRl ciBWZXJzaW9uIENvbnRyb2wKCk1vc3QgVkMgY29tbWFuZHMgb3BlcmF0ZSBvbiAiVkMgZmlsZXNl dHMiLiAgQSBWQyBmaWxlc2V0IGlzIGEgY29sbGVjdGlvbgpvZiBvbmUgb3IgbW9yZSBmaWxlcyB0 aGF0IGEgVkMgb3BlcmF0aW9uIGFjdHMgb24uICBXaGVuIHlvdSB0eXBlIFZDCmNvbW1hbmRzIGlu IGEgYnVmZmVyIHZpc2l0aW5nIGEgdmVyc2lvbi1jb250cm9sbGVkIGZpbGUsIHRoZSBWQyBmaWxl c2V0CmlzIHNpbXBseSB0aGF0IG9uZSBmaWxlLiAgV2hlbiB5b3UgdHlwZSB0aGVtIGluIGEgVkMg RGlyZWN0b3J5IGJ1ZmZlciwKYW5kIHNvbWUgZmlsZXMgaW4gaXQgYXJlIG1hcmtlZCwgdGhlIFZD IGZpbGVzZXQgY29uc2lzdHMgb2YgdGhlIG1hcmtlZApmaWxlcyAoKm5vdGUgVkMgRGlyZWN0b3J5 IE1vZGU6OikuCgogICBPbiBtb2Rlcm4gY2hhbmdlc2V0LWJhc2VkIHZlcnNpb24gY29udHJvbCBz eXN0ZW1zICgqbm90ZSBWQ1MKQ2hhbmdlc2V0czo6KSwgVkMgY29tbWFuZHMgaGFuZGxlIG11bHRp LWZpbGUgVkMgZmlsZXNldHMgYXMgYSBncm91cC4KRm9yIGV4YW1wbGUsIGNvbW1pdHRpbmcgYSBt dWx0aS1maWxlIFZDIGZpbGVzZXQgZ2VuZXJhdGVzIGEgc2luZ2xlCnJldmlzaW9uLCBjb250YWlu aW5nIHRoZSBjaGFuZ2VzIHRvIGFsbCB0aG9zZSBmaWxlcy4gIE9uIG9sZGVyCmZpbGUtYmFzZWQg dmVyc2lvbiBjb250cm9sIHN5c3RlbXMgbGlrZSBDVlMsIGVhY2ggZmlsZSBpbiBhIG11bHRpLWZp bGUKVkMgZmlsZXNldCBpcyBoYW5kbGVkIGluZGl2aWR1YWxseTsgZm9yIGV4YW1wbGUsIGEgY29t bWl0IGdlbmVyYXRlcyBvbmUKcmV2aXNpb24gZm9yIGVhY2ggY2hhbmdlZCBmaWxlLgoK4oCYQy14 IHYgduKAmQogICAgIFBlcmZvcm0gdGhlIG5leHQgYXBwcm9wcmlhdGUgdmVyc2lvbiBjb250cm9s IG9wZXJhdGlvbiBvbiB0aGUKICAgICBjdXJyZW50IFZDIGZpbGVzZXQuCgogICBUaGUgcHJpbmNp cGFsIFZDIGNvbW1hbmQgaXMgYSBtdWx0aS1wdXJwb3NlIGNvbW1hbmQsIOKAmEMteCB2IHbigJkK KOKAmHZjLW5leHQtYWN0aW9u4oCZKSwgd2hpY2ggcGVyZm9ybXMgdGhlIG1vc3QgYXBwcm9wcmlh dGUgYWN0aW9uIG9uIHRoZQpjdXJyZW50IFZDIGZpbGVzZXQ6IGVpdGhlciByZWdpc3RlcmluZyBp dCB3aXRoIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwKb3IgY29tbWl0dGluZyBpdCwgb3IgdW5s b2NraW5nIGl0LCBvciBtZXJnaW5nIGNoYW5nZXMgaW50byBpdC4gIFRoZQpwcmVjaXNlIGFjdGlv bnMgYXJlIGRlc2NyaWJlZCBpbiBkZXRhaWwgaW4gdGhlIGZvbGxvd2luZyBzdWJzZWN0aW9ucy4K WW91IGNhbiB1c2Ug4oCYQy14IHYgduKAmSBlaXRoZXIgaW4gYSBmaWxlLXZpc2l0aW5nIGJ1ZmZl ciBvciBpbiBhIFZDCkRpcmVjdG9yeSBidWZmZXIuCgogICBOb3RlIHRoYXQgVkMgZmlsZXNldHMg YXJlIGRpc3RpbmN0IGZyb20gdGhlIG5hbWVkIGZpbGVzZXRzIHVzZWQgZm9yCnZpZXdpbmcgYW5k IHZpc2l0aW5nIGZpbGVzIGluIGZ1bmN0aW9uYWwgZ3JvdXBzICgqbm90ZSBGaWxlc2V0czo6KS4K VW5saWtlIG5hbWVkIGZpbGVzZXRzLCBWQyBmaWxlc2V0cyBhcmUgbm90IG5hbWVkIGFuZCBkb27i gJl0IHBlcnNpc3QKYWNyb3NzIHNlc3Npb25zLgoKKyBNZW51OgoKICAtIFZDIFdpdGggQSBNZXJn aW5nIFZDUzo6ICBXaXRob3V0IGxvY2tpbmc6IGRlZmF1bHQgbW9kZSBmb3IgQ1ZTLgogIC0gVkMg V2l0aCBBIExvY2tpbmcgVkNTOjogIFJDUyBpbiBpdHMgZGVmYXVsdCBtb2RlLCBTQ0NTLCBhbmQg b3B0aW9uYWxseSBDVlMuCiAgLSBBZHZhbmNlZCBDLXggdiB2OjogICAgICAgQWR2YW5jZWQgZmVh dHVyZXMgYXZhaWxhYmxlIHdpdGggYSBwcmVmaXggYXJndW1lbnQuCgoKKioqKiAyOC4xLjMuMSBC YXNpYyBWZXJzaW9uIENvbnRyb2wgd2l0aCBNZXJnaW5nCgpPbiBhIG1lcmdpbmctYmFzZWQgdmVy c2lvbiBjb250cm9sIHN5c3RlbSAoaS5lLiwgbW9zdCBtb2Rlcm4gb25lczsgKm5vdGUKVkNTIE1l cmdpbmc6OiksIOKAmEMteCB2IHbigJkgZG9lcyB0aGUgZm9sbG93aW5nOgoKICAg4oCiIElmIHRo ZXJlIGlzIG1vcmUgdGhhbiBvbmUgZmlsZSBpbiB0aGUgVkMgZmlsZXNldCBhbmQgdGhlIGZpbGVz IGhhdmUKICAgICBpbmNvbnNpc3RlbnQgdmVyc2lvbiBjb250cm9sIHN0YXR1c2VzLCBzaWduYWwg YW4gZXJyb3IuICAoTm90ZSwKICAgICBob3dldmVyLCB0aGF0IGEgZmlsZXNldCBpcyBhbGxvd2Vk IHRvIGluY2x1ZGUgYm90aCBuZXdseS1hZGRlZAogICAgIGZpbGVzIGFuZCBtb2RpZmllZCBmaWxl czsgKm5vdGUgUmVnaXN0ZXJpbmc6Oi4pCgogICDigKIgSWYgbm9uZSBvZiB0aGUgZmlsZXMgaW4g dGhlIFZDIGZpbGVzZXQgYXJlIHJlZ2lzdGVyZWQgd2l0aCBhCiAgICAgdmVyc2lvbiBjb250cm9s IHN5c3RlbSwgcmVnaXN0ZXIgdGhlIFZDIGZpbGVzZXQsIGkuZS4sIHBsYWNlIGl0CiAgICAgdW5k ZXIgdmVyc2lvbiBjb250cm9sLiAgKk5vdGUgUmVnaXN0ZXJpbmc6Oi4gIElmIEVtYWNzIGNhbm5v dCBmaW5kCiAgICAgYSBzeXN0ZW0gdG8gcmVnaXN0ZXIgdW5kZXIsIGl0IHByb21wdHMgZm9yIGEg cmVwb3NpdG9yeSB0eXBlLAogICAgIGNyZWF0ZXMgYSBuZXcgcmVwb3NpdG9yeSwgYW5kIHJlZ2lz dGVycyB0aGUgVkMgZmlsZXNldCB3aXRoIGl0LgoKICAg4oCiIElmIGV2ZXJ5IHdvcmsgZmlsZSBp biB0aGUgVkMgZmlsZXNldCBpcyB1bmNoYW5nZWQsIGRvIG5vdGhpbmcuCgogICDigKIgSWYgZXZl cnkgd29yayBmaWxlIGluIHRoZSBWQyBmaWxlc2V0IGhhcyBiZWVuIG1vZGlmaWVkLCBjb21taXQg dGhlCiAgICAgY2hhbmdlcy4gIFRvIGRvIHRoaXMsIEVtYWNzIHBvcHMgdXAgYSDigJgqdmMtbG9n KuKAmSBidWZmZXI7IHR5cGUgdGhlCiAgICAgZGVzaXJlZCBsb2cgZW50cnkgZm9yIHRoZSBuZXcg cmV2aXNpb24sIGZvbGxvd2VkIGJ5IOKAmEMtYyBDLWPigJkgdG8KICAgICBjb21taXQuICAqTm90 ZSBMb2cgQnVmZmVyOjouCgogICAgIElmIGNvbW1pdHRpbmcgdG8gYSBzaGFyZWQgcmVwb3NpdG9y eSwgdGhlIGNvbW1pdCBtYXkgZmFpbCBpZiB0aGUKICAgICByZXBvc2l0b3J5IGhhcyBiZWVuIGNo YW5nZWQgc2luY2UgeW91ciBsYXN0IHVwZGF0ZS4gIEluIHRoYXQgY2FzZSwKICAgICB5b3UgbXVz dCBwZXJmb3JtIGFuIHVwZGF0ZSBiZWZvcmUgdHJ5aW5nIGFnYWluLiAgT24gYSBkZWNlbnRyYWxp emVkCiAgICAgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgdXNlIOKAmEMteCB2ICvigJkgKCpub3Rl IFB1bGxpbmcgLyBQdXNoaW5nOjopCiAgICAgb3Ig4oCYQy14IHYgbeKAmSAoKm5vdGUgTWVyZ2lu Zzo6KS4gIE9uIGEgY2VudHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sCiAgICAgc3lzdGVtLCB0eXBl IOKAmEMteCB2IHbigJkgYWdhaW4gdG8gbWVyZ2UgaW4gdGhlIHJlcG9zaXRvcnkgY2hhbmdlcy4K CiAgIOKAoiBGaW5hbGx5LCBpZiB5b3UgYXJlIHVzaW5nIGEgY2VudHJhbGl6ZWQgdmVyc2lvbiBj b250cm9sIHN5c3RlbSwKICAgICBjaGVjayBpZiBlYWNoIHdvcmsgZmlsZSBpbiB0aGUgVkMgZmls ZXNldCBpcyB1cC10by1kYXRlLiAgSWYgYW55CiAgICAgZmlsZSBoYXMgYmVlbiBjaGFuZ2VkIGlu IHRoZSByZXBvc2l0b3J5LCBvZmZlciB0byB1cGRhdGUgaXQuCgogICBUaGVzZSBydWxlcyBhbHNv IGFwcGx5IHdoZW4geW91IHVzZSBSQ1MgaW4gaXRzIG5vbi1sb2NraW5nIG1vZGUsCmV4Y2VwdCB0 aGF0IGNoYW5nZXMgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IG1lcmdlZCBmcm9tIHRoZSByZXBvc2l0 b3J5LgpOb3RoaW5nIGluZm9ybXMgeW91IGlmIGFub3RoZXIgdXNlciBoYXMgY29tbWl0dGVkIGNo YW5nZXMgaW4gdGhlIHNhbWUKZmlsZSBzaW5jZSB5b3UgYmVnYW4gZWRpdGluZyBpdDsgd2hlbiB5 b3UgY29tbWl0IHlvdXIgcmV2aXNpb24sIHRoYXQKb3RoZXIgdXNlcuKAmXMgY2hhbmdlcyBhcmUg cmVtb3ZlZCAoaG93ZXZlciwgdGhleSByZW1haW4gaW4gdGhlIHJlcG9zaXRvcnkKYW5kIGFyZSB0 aHVzIG5vdCBpcnJldm9jYWJseSBsb3N0KS4gIFRoZXJlZm9yZSwgeW91IG11c3QgdmVyaWZ5IHRo YXQgdGhlCmN1cnJlbnQgcmV2aXNpb24gaXMgdW5jaGFuZ2VkIGJlZm9yZSBjb21taXR0aW5nIHlv dXIgY2hhbmdlcy4gIEluCmFkZGl0aW9uLCBsb2NraW5nIGlzIHBvc3NpYmxlIHdpdGggUkNTIGV2 ZW4gaW4gdGhpcyBtb2RlOiDigJhDLXggdiB24oCZIHdpdGgKYW4gdW5tb2RpZmllZCBmaWxlIGxv Y2tzIHRoZSBmaWxlLCBqdXN0IGFzIGl0IGRvZXMgd2l0aCBSQ1MgaW4gaXRzCm5vcm1hbCBsb2Nr aW5nIG1vZGUgKCpub3RlIFZDIFdpdGggQSBMb2NraW5nIFZDUzo6KS4KCgoqKioqIDI4LjEuMy4y IEJhc2ljIFZlcnNpb24gQ29udHJvbCB3aXRoIExvY2tpbmcKCk9uIGEgbG9ja2luZy1iYXNlZCB2 ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIChzdWNoIGFzIFNDQ1MsIGFuZCBSQ1MgaW4gaXRzCmRlZmF1 bHQgbW9kZSksIOKAmEMteCB2IHbigJkgZG9lcyB0aGUgZm9sbG93aW5nOgoKICAg4oCiIElmIHRo ZXJlIGlzIG1vcmUgdGhhbiBvbmUgZmlsZSBpbiB0aGUgVkMgZmlsZXNldCBhbmQgdGhlIGZpbGVz IGhhdmUKICAgICBpbmNvbnNpc3RlbnQgdmVyc2lvbiBjb250cm9sIHN0YXR1c2VzLCBzaWduYWwg YW4gZXJyb3IuCgogICDigKIgSWYgZWFjaCBmaWxlIGluIHRoZSBWQyBmaWxlc2V0IGlzIG5vdCBy ZWdpc3RlcmVkIHdpdGggYSB2ZXJzaW9uCiAgICAgY29udHJvbCBzeXN0ZW0sIHJlZ2lzdGVyIHRo ZSBWQyBmaWxlc2V0LiAgKk5vdGUgUmVnaXN0ZXJpbmc6Oi4gIElmCiAgICAgRW1hY3MgY2Fubm90 IGZpbmQgYSBzeXN0ZW0gdG8gcmVnaXN0ZXIgdW5kZXIsIGl0IHByb21wdHMgZm9yIGEKICAgICBy ZXBvc2l0b3J5IHR5cGUsIGNyZWF0ZXMgYSBuZXcgcmVwb3NpdG9yeSwgYW5kIHJlZ2lzdGVycyB0 aGUgVkMKICAgICBmaWxlc2V0IHdpdGggaXQuCgogICDigKIgSWYgZWFjaCBmaWxlIGlzIHJlZ2lz dGVyZWQgYW5kIHVubG9ja2VkLCBsb2NrIGl0IGFuZCBtYWtlIGl0CiAgICAgd3JpdGFibGUsIHNv IHRoYXQgeW91IGNhbiBiZWdpbiB0byBlZGl0IGl0LgoKICAg4oCiIElmIGVhY2ggZmlsZSBpcyBs b2NrZWQgYnkgeW91IGFuZCBjb250YWlucyBjaGFuZ2VzLCBjb21taXQgdGhlCiAgICAgY2hhbmdl cy4gIFRvIGRvIHRoaXMsIEVtYWNzIHBvcHMgdXAgYSDigJgqdmMtbG9nKuKAmSBidWZmZXI7IHR5 cGUgdGhlCiAgICAgZGVzaXJlZCBsb2cgZW50cnkgZm9yIHRoZSBuZXcgcmV2aXNpb24sIGZvbGxv d2VkIGJ5IOKAmEMtYyBDLWPigJkgdG8KICAgICBjb21taXQgKCpub3RlIExvZyBCdWZmZXI6Oiku CgogICDigKIgSWYgZWFjaCBmaWxlIGlzIGxvY2tlZCBieSB5b3UsIGJ1dCB5b3UgaGF2ZSBub3Qg Y2hhbmdlZCBpdCwgcmVsZWFzZQogICAgIHRoZSBsb2NrIGFuZCBtYWtlIHRoZSBmaWxlIHJlYWQt b25seSBhZ2Fpbi4KCiAgIOKAoiBJZiBlYWNoIGZpbGUgaXMgbG9ja2VkIGJ5IGFub3RoZXIgdXNl ciwgYXNrIHdoZXRoZXIgeW91IHdhbnQgdG8KICAgICBzdGVhbCB0aGUgbG9jay4gIElmIHlvdSBz YXkgeWVzLCB0aGUgZmlsZSBiZWNvbWVzIGxvY2tlZCBieSB5b3UsCiAgICAgYW5kIGEgd2Fybmlu ZyBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlIHVzZXIgd2hvIGhhZCBmb3JtZXJseSBsb2NrZWQKICAg ICB0aGUgZmlsZS4KCiAgIFRoZXNlIHJ1bGVzIGFsc28gYXBwbHkgd2hlbiB5b3UgdXNlIENWUyBp biBsb2NraW5nIG1vZGUsIGV4Y2VwdCB0aGF0CkNWUyBkb2VzIG5vdCBzdXBwb3J0IHN0ZWFsaW5n IGxvY2tzLgoKCioqKiogMjguMS4zLjMgQWR2YW5jZWQgQ29udHJvbCBpbiDigJhDLXggdiB24oCZ CgpXaGVuIHlvdSBnaXZlIGEgcHJlZml4IGFyZ3VtZW50IHRvIOKAmHZjLW5leHQtYWN0aW9u4oCZ ICjigJhDLXUgQy14IHYgduKAmSksIGl0CnN0aWxsIHBlcmZvcm1zIHRoZSBuZXh0IGxvZ2ljYWwg dmVyc2lvbiBjb250cm9sIG9wZXJhdGlvbiwgYnV0IGFjY2VwdHMKYWRkaXRpb25hbCBhcmd1bWVu dHMgdG8gc3BlY2lmeSBwcmVjaXNlbHkgaG93IHRvIGRvIHRoZSBvcGVyYXRpb24uCgogICDigKIg WW91IGNhbiBzcGVjaWZ5IHRoZSBuYW1lIG9mIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4gIFRo aXMgaXMKICAgICB1c2VmdWwgaWYgdGhlIGZpbGVzZXQgY2FuIGJlIG1hbmFnZWQgYnkgbW9yZSB0 aGFuIG9uZSB2ZXJzaW9uCiAgICAgY29udHJvbCBzeXN0ZW0sIGFuZCBFbWFjcyBmYWlscyB0byBk ZXRlY3QgdGhlIGNvcnJlY3Qgb25lLgoKICAg4oCiIE90aGVyd2lzZSwgaWYgdXNpbmcgQ1ZTLCBS Q1Mgb3IgU1JDLCB5b3UgY2FuIHNwZWNpZnkgYSByZXZpc2lvbiBJRC4KCiAgICAgSWYgdGhlIGZp bGVzZXQgaXMgbW9kaWZpZWQgKG9yIGxvY2tlZCksIHRoaXMgbWFrZXMgRW1hY3MgY29tbWl0CiAg ICAgd2l0aCB0aGF0IHJldmlzaW9uIElELiAgWW91IGNhbiBjcmVhdGUgYSBuZXcgYnJhbmNoIGJ5 IHN1cHBseWluZyBhbgogICAgIGFwcHJvcHJpYXRlIHJldmlzaW9uIElEICgqbm90ZSBCcmFuY2hl czo6KS4KCiAgICAgSWYgdGhlIGZpbGVzZXQgaXMgdW5tb2RpZmllZCAoYW5kIHVubG9ja2VkKSwg dGhpcyBjaGVja3MgdGhlCiAgICAgc3BlY2lmaWVkIHJldmlzaW9uIGludG8gdGhlIHdvcmtpbmcg dHJlZS4gIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGEKICAgICByZXZpc2lvbiBvbiBhbm90aGVyIGJy YW5jaCBieSBnaXZpbmcgaXRzIHJldmlzaW9uIG9yIGJyYW5jaCBJRAogICAgICgqbm90ZSBTd2l0 Y2hpbmcgQnJhbmNoZXM6OikuICBBbiBlbXB0eSBhcmd1bWVudCAoaS5lLiwg4oCYQy11IEMteCB2 CiAgICAgdiA8UkVUPuKAmSkgY2hlY2tzIG91dCB0aGUgbGF0ZXN0IChoZWFkKSByZXZpc2lvbiBv biB0aGUgY3VycmVudAogICAgIGJyYW5jaC4KCiAgICAgVGhpcyBpcyBzaWxlbnRseSBpZ25vcmVk IG9uIGEgZGVjZW50cmFsaXplZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLgogICAgIFRob3NlIHN5 c3RlbXMgZG8gbm90IGxldCB5b3Ugc3BlY2lmeSB5b3VyIG93biByZXZpc2lvbiBJRHMsIG5vciBk bwogICAgIHRoZXkgdXNlIHRoZSBjb25jZXB0IG9mIGNoZWNraW5nIG91dCBpbmRpdmlkdWFsIGZp bGVzLgoKCioqKiAyOC4xLjQgRmVhdHVyZXMgb2YgdGhlIExvZyBFbnRyeSBCdWZmZXIKCldoZW4g eW91IHRlbGwgVkMgdG8gY29tbWl0IGEgY2hhbmdlLCBpdCBwb3BzIHVwIGEgYnVmZmVyIG5hbWVk CuKAmCp2Yy1sb2cq4oCZLiAgSW4gdGhpcyBidWZmZXIsIHlvdSBzaG91bGQgd3JpdGUgYSAibG9n IGVudHJ5IiBkZXNjcmliaW5nCnRoZSBjaGFuZ2VzIHlvdSBoYXZlIG1hZGUgKCpub3RlIFdoeSBW ZXJzaW9uIENvbnRyb2w/OjopLiAgQWZ0ZXIgeW91IGFyZQpkb25lLCB0eXBlIOKAmEMtYyBDLWPi gJkgKOKAmGxvZy1lZGl0LWRvbmXigJkpIHRvIGV4aXQgdGhlIGJ1ZmZlciBhbmQgY29tbWl0IHRo ZQpjaGFuZ2UsIHRvZ2V0aGVyIHdpdGggeW91ciBsb2cgZW50cnkuCgogICBUaGUgbWFqb3IgbW9k ZSBmb3IgdGhlIOKAmCp2Yy1sb2cq4oCZIGJ1ZmZlciBpcyBMb2cgRWRpdCBtb2RlLCBhIHZhcmlh bnQKb2YgVGV4dCBtb2RlICgqbm90ZSBUZXh0IE1vZGU6OikuICBPbiBlbnRlcmluZyBMb2cgRWRp dCBtb2RlLCBFbWFjcyBydW5zCnRoZSBob29rcyDigJh0ZXh0LW1vZGUtaG9va+KAmSBhbmQg4oCY dmMtbG9nLW1vZGUtaG9va+KAmSAoKm5vdGUgSG9va3M6OikuCgogICBJbiB0aGUg4oCYKnZjLWxv ZyrigJkgYnVmZmVyLCB5b3UgY2FuIHdyaXRlIG9uZSBvciBtb3JlICJoZWFkZXIgbGluZXMiLApz cGVjaWZ5aW5nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gYmUgc3VwcGxpZWQgdG8gdGhlIHZl cnNpb24gY29udHJvbApzeXN0ZW0uICBFYWNoIGhlYWRlciBsaW5lIG11c3Qgb2NjdXB5IGEgc2lu Z2xlIGxpbmUgYXQgdGhlIHRvcCBvZiB0aGUKYnVmZmVyOyB0aGUgZmlyc3QgbGluZSB0aGF0IGlz IG5vdCBhIGhlYWRlciBsaW5lIGlzIHRyZWF0ZWQgYXMgdGhlIHN0YXJ0Cm9mIHRoZSBsb2cgZW50 cnkuICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBoZWFkZXIgbGluZSBzdGF0ZXMgdGhhdAp0 aGUgcHJlc2VudCBjaGFuZ2Ugd2FzIG5vdCB3cml0dGVuIGJ5IHlvdSwgYnV0IGJ5IGFub3RoZXIg ZGV2ZWxvcGVyOgoKICAgICBBdXRob3I6IEouIFIuIEhhY2tlciA8anJoQGV4YW1wbGUuY29tPgoK QXBhcnQgZnJvbSB0aGUg4oCYQXV0aG9y4oCZIGhlYWRlciwgRW1hY3MgcmVjb2duaXplcyB0aGUg aGVhZGVycyDigJhTdW1tYXJ54oCZCihhIG9uZS1saW5lIHN1bW1hcnkgb2YgdGhlIGNoYW5nZXNl dCksIOKAmERhdGXigJkgKGEgbWFudWFsbHktc3BlY2lmaWVkCmNvbW1pdCB0aW1lKSwgYW5kIOKA mEZpeGVz4oCZIChhIHJlZmVyZW5jZSB0byBhIGJ1ZyBmaXhlZCBieSB0aGUgY2hhbmdlKS4KTm90 IGFsbCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyByZWNvZ25pemUgYWxsIGhlYWRlcnMuICBJZiB5 b3Ugc3BlY2lmeSBhCmhlYWRlciBmb3IgYSBzeXN0ZW0gdGhhdCBkb2VzIG5vdCBzdXBwb3J0IGl0 LCB0aGUgaGVhZGVyIGlzIHRyZWF0ZWQgYXMKcGFydCBvZiB0aGUgbG9nIGVudHJ5LgoKICAgV2hp bGUgaW4gdGhlIOKAmCp2Yy1sb2cq4oCZIGJ1ZmZlciwgdGhlIGN1cnJlbnQgVkMgZmlsZXNldCBp cyBjb25zaWRlcmVkCnRvIGJlIHRoZSBmaWxlc2V0IHRoYXQgd2lsbCBiZSBjb21taXR0ZWQgaWYg eW91IHR5cGUg4oCYQy1jIEMtY+KAmS4gIFRvIHZpZXcKYSBsaXN0IG9mIHRoZSBmaWxlcyBpbiB0 aGUgVkMgZmlsZXNldCwgdHlwZSDigJhDLWMgQy1m4oCZCijigJhsb2ctZWRpdC1zaG93LWZpbGVz 4oCZKS4gIFRvIHZpZXcgYSBkaWZmIG9mIGNoYW5nZXMgYmV0d2VlbiB0aGUgVkMKZmlsZXNldCBh bmQgdGhlIHZlcnNpb24gZnJvbSB3aGljaCB5b3Ugc3RhcnRlZCBlZGl0aW5nICgqbm90ZSBPbGQK UmV2aXNpb25zOjopLCB0eXBlIOKAmEMtYyBDLWTigJkgKOKAmGxvZy1lZGl0LXNob3ctZGlmZuKA mSkuCgogICBJZiB0aGUgVkMgZmlsZXNldCBpbmNsdWRlcyBvbmUgb3IgbW9yZSDigJhDaGFuZ2VM b2figJkgZmlsZXMgKCpub3RlCkNoYW5nZSBMb2c6OiksIHR5cGUg4oCYQy1jIEMtYeKAmSAo4oCY bG9nLWVkaXQtaW5zZXJ0LWNoYW5nZWxvZ+KAmSkgdG8gcHVsbCB0aGUKcmVsZXZhbnQgZW50cmll cyBpbnRvIHRoZSDigJgqdmMtbG9nKuKAmSBidWZmZXIuICBJZiB0aGUgdG9wbW9zdCBpdGVtIGlu CmVhY2gg4oCYQ2hhbmdlTG9n4oCZIHdhcyBtYWRlIHVuZGVyIHlvdXIgdXNlciBuYW1lIG9uIHRo ZSBjdXJyZW50IGRhdGUsIHRoaXMKY29tbWFuZCBzZWFyY2hlcyB0aGF0IGl0ZW0gZm9yIGVudHJp ZXMgbWF0Y2hpbmcgdGhlIGZpbGUocykgdG8gYmUKY29tbWl0dGVkLCBhbmQgaW5zZXJ0cyB0aGVt LiAgSWYgeW91IGFyZSB1c2luZyBDVlMgb3IgUkNTLCBzZWUgKm5vdGUKQ2hhbmdlIExvZ3MgYW5k IFZDOjosIGZvciB0aGUgb3Bwb3NpdGUgd2F5IG9mIHdvcmtpbmfigJRnZW5lcmF0aW5nCkNoYW5n ZUxvZyBlbnRyaWVzIGZyb20gdGhlIExvZyBFZGl0IGJ1ZmZlci4KCiAgIFRvIGFib3J0IGEgY29t bWl0LCBqdXN0IF9kb27igJl0XyB0eXBlIOKAmEMtYyBDLWPigJkgaW4gdGhhdCBidWZmZXIuICBZ b3UKY2FuIHN3aXRjaCBidWZmZXJzIGFuZCBkbyBvdGhlciBlZGl0aW5nLiAgQXMgbG9uZyBhcyB5 b3UgZG9u4oCZdCB0cnkgdG8KbWFrZSBhbm90aGVyIGNvbW1pdCwgdGhlIGVudHJ5IHlvdSB3ZXJl IGVkaXRpbmcgcmVtYWlucyBpbiB0aGUK4oCYKnZjLWxvZyrigJkgYnVmZmVyLCBhbmQgeW91IGNh biBnbyBiYWNrIHRvIHRoYXQgYnVmZmVyIGF0IGFueSB0aW1lIHRvCmNvbXBsZXRlIHRoZSBjb21t aXQuCgogICBZb3UgY2FuIGFsc28gYnJvd3NlIHRoZSBoaXN0b3J5IG9mIHByZXZpb3VzIGxvZyBl bnRyaWVzIHRvIGR1cGxpY2F0ZQphIGNvbW1pdCBjb21tZW50LiAgVGhpcyBjYW4gYmUgdXNlZnVs IHdoZW4geW91IHdhbnQgdG8gbWFrZSBzZXZlcmFsCmNvbW1pdHMgd2l0aCBzaW1pbGFyIGNvbW1l bnRzLiAgVGhlIGNvbW1hbmRzIOKAmE0tbuKAmSwg4oCYTS1w4oCZLCDigJhNLXPigJkgYW5kCuKA mE0tcuKAmSBmb3IgZG9pbmcgdGhpcyB3b3JrIGp1c3QgbGlrZSB0aGUgbWluaWJ1ZmZlciBoaXN0 b3J5IGNvbW1hbmRzCigqbm90ZSBNaW5pYnVmZmVyIEhpc3Rvcnk6OiksIGV4Y2VwdCB0aGF0IHRo ZXkgYXJlIHVzZWQgb3V0c2lkZSB0aGUKbWluaWJ1ZmZlci4KCgoqKiogMjguMS41IFJlZ2lzdGVy aW5nIGEgRmlsZSBmb3IgVmVyc2lvbiBDb250cm9sCgrigJhDLXggdiBp4oCZCiAgICAgUmVnaXN0 ZXIgdGhlIHZpc2l0ZWQgZmlsZSBmb3IgdmVyc2lvbiBjb250cm9sLgoKICAgVGhlIGNvbW1hbmQg 4oCYQy14IHYgaeKAmSAo4oCYdmMtcmVnaXN0ZXLigJkpICJyZWdpc3RlcnMiIGVhY2ggZmlsZSBp biB0aGUKY3VycmVudCBWQyBmaWxlc2V0LCBwbGFjaW5nIGl0IHVuZGVyIHZlcnNpb24gY29udHJv bC4gIFRoaXMgaXMKZXNzZW50aWFsbHkgZXF1aXZhbGVudCB0byB0aGUgYWN0aW9uIG9mIOKAmEMt eCB2IHbigJkgb24gYW4gdW5yZWdpc3RlcmVkIFZDCmZpbGVzZXQgKCpub3RlIEJhc2ljIFZDIEVk aXRpbmc6OiksIGV4Y2VwdCB0aGF0IGlmIHRoZSBWQyBmaWxlc2V0IGlzCmFscmVhZHkgcmVnaXN0 ZXJlZCwg4oCYQy14IHYgaeKAmSBzaWduYWxzIGFuIGVycm9yIHdoZXJlYXMg4oCYQy14IHYgduKA mQpwZXJmb3JtcyBzb21lIG90aGVyIGFjdGlvbi4KCiAgIFRvIHJlZ2lzdGVyIGEgZmlsZSwgRW1h Y3MgbXVzdCBjaG9vc2UgYSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLiAgRm9yCmEgbXVsdGktZmls ZSBWQyBmaWxlc2V0LCB0aGUgVkMgRGlyZWN0b3J5IGJ1ZmZlciBzcGVjaWZpZXMgdGhlIHN5c3Rl bSB0bwp1c2UgKCpub3RlIFZDIERpcmVjdG9yeSBNb2RlOjopLiAgRm9yIGEgc2luZ2xlLWZpbGUg VkMgZmlsZXNldCwgaWYgdGhlCmZpbGXigJlzIGRpcmVjdG9yeSBhbHJlYWR5IGNvbnRhaW5zIGZp bGVzIHJlZ2lzdGVyZWQgaW4gYSB2ZXJzaW9uIGNvbnRyb2wKc3lzdGVtLCBvciBpZiB0aGUgZGly ZWN0b3J5IGlzIHBhcnQgb2YgYSBkaXJlY3RvcnkgdHJlZSBjb250cm9sbGVkIGJ5IGEKdmVyc2lv biBjb250cm9sIHN5c3RlbSwgRW1hY3MgY2hvb3NlcyB0aGF0IHN5c3RlbS4gIEluIHRoZSBldmVu dCB0aGF0Cm1vcmUgdGhhbiBvbmUgdmVyc2lvbiBjb250cm9sIHN5c3RlbSBpcyBhcHBsaWNhYmxl LCBFbWFjcyB1c2VzIHRoZSBvbmUKdGhhdCBhcHBlYXJzIGZpcnN0IGluIHRoZSB2YXJpYWJsZSDi gJh2Yy1oYW5kbGVkLWJhY2tlbmRz4oCZICgqbm90ZQpDdXN0b21pemluZyBWQzo6KS4gIElmIEVt YWNzIGNhbm5vdCBmaW5kIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSB0bwpyZWdpc3RlciB0aGUg ZmlsZSB1bmRlciwgaXQgcHJvbXB0cyBmb3IgYSByZXBvc2l0b3J5IHR5cGUsIGNyZWF0ZXMgYSBu ZXcKcmVwb3NpdG9yeSwgYW5kIHJlZ2lzdGVycyB0aGUgZmlsZSBpbnRvIHRoYXQgcmVwb3NpdG9y eS4KCiAgIE9uIG1vc3QgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMsIHJlZ2lzdGVyaW5nIGEgZmls ZSB3aXRoIOKAmEMteCB2IGnigJkgb3IK4oCYQy14IHYgduKAmSBhZGRzIGl0IHRvIHRoZSB3b3Jr aW5nIHRyZWUgYnV0IG5vdCB0byB0aGUgcmVwb3NpdG9yeS4gIFN1Y2gKZmlsZXMgYXJlIGxhYmVs ZWQgYXMg4oCYYWRkZWTigJkgaW4gdGhlIFZDIERpcmVjdG9yeSBidWZmZXIsIGFuZCBzaG93IGEK cmV2aXNpb24gSUQgb2Yg4oCYQEDigJkgaW4gdGhlIG1vZGUgbGluZS4gIFRvIG1ha2UgdGhlIHJl Z2lzdHJhdGlvbiB0YWtlCmVmZmVjdCBpbiB0aGUgcmVwb3NpdG9yeSwgeW91IG11c3QgcGVyZm9y bSBhIGNvbW1pdCAoKm5vdGUgQmFzaWMgVkMKRWRpdGluZzo6KS4gIE5vdGUgdGhhdCBhIHNpbmds ZSBjb21taXQgY2FuIGluY2x1ZGUgYm90aCBmaWxlIGFkZGl0aW9ucwphbmQgZWRpdHMgdG8gZXhp c3RpbmcgZmlsZXMuCgogICBPbiBhIGxvY2tpbmctYmFzZWQgdmVyc2lvbiBjb250cm9sIHN5c3Rl bSAoKm5vdGUgVkNTIE1lcmdpbmc6OiksCnJlZ2lzdGVyaW5nIGEgZmlsZSBsZWF2ZXMgaXQgdW5s b2NrZWQgYW5kIHJlYWQtb25seS4gIFR5cGUg4oCYQy14IHYgduKAmSB0bwpzdGFydCBlZGl0aW5n IGl0LgoKCioqKiAyOC4xLjYgRXhhbWluaW5nIEFuZCBDb21wYXJpbmcgT2xkIFJldmlzaW9ucwoK 4oCYQy14IHYgPeKAmQogICAgIENvbXBhcmUgdGhlIHdvcmsgZmlsZXMgaW4gdGhlIGN1cnJlbnQg VkMgZmlsZXNldCB3aXRoIHRoZSB2ZXJzaW9ucwogICAgIHlvdSBzdGFydGVkIGZyb20gKOKAmHZj LWRpZmbigJkpLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgcHJvbXB0IGZvcgogICAgIHR3byBy ZXZpc2lvbnMgb2YgdGhlIGN1cnJlbnQgVkMgZmlsZXNldCBhbmQgY29tcGFyZSB0aGVtLiAgWW91 IGNhbgogICAgIGFsc28gY2FsbCB0aGlzIGNvbW1hbmQgZnJvbSBhIERpcmVkIGJ1ZmZlciAoKm5v dGUgRGlyZWQ6OikuCgrigJhNLXggdmMtZWRpZmbigJkKICAgICBMaWtlIOKAmEMteCB2ID3igJks IGJ1dCB1c2luZyBFZGlmZi4gICpOb3RlIEVkaWZmOiAoZWRpZmYpVG9wLgoK4oCYQy14IHYgROKA mQogICAgIENvbXBhcmUgdGhlIGVudGlyZSB3b3JraW5nIHRyZWUgdG8gdGhlIHJldmlzaW9uIHlv dSBzdGFydGVkIGZyb20KICAgICAo4oCYdmMtcm9vdC1kaWZm4oCZKS4gIFdpdGggYSBwcmVmaXgg YXJndW1lbnQsIHByb21wdCBmb3IgdHdvIHJldmlzaW9ucwogICAgIGFuZCBjb21wYXJlIHRoZWly IHRyZWVzLgoK4oCYQy14IHYgfuKAmQogICAgIFByb21wdCBmb3IgYSByZXZpc2lvbiBvZiB0aGUg Y3VycmVudCBmaWxlLCBhbmQgdmlzaXQgaXQgaW4gYQogICAgIHNlcGFyYXRlIGJ1ZmZlciAo4oCY dmMtcmV2aXNpb24tb3RoZXItd2luZG934oCZKS4KCuKAmEMteCB2IGfigJkKICAgICBEaXNwbGF5 IGFuIGFubm90YXRlZCB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IGZpbGU6IGZvciBlYWNoIGxpbmUs CiAgICAgc2hvdyB0aGUgbGF0ZXN0IHJldmlzaW9uIGluIHdoaWNoIGl0IHdhcyBtb2RpZmllZCAo 4oCYdmMtYW5ub3RhdGXigJkpLgoKICAg4oCYQy14IHYgPeKAmSAo4oCYdmMtZGlmZuKAmSkgZGlz cGxheXMgYSAiZGlmZiIgd2hpY2ggY29tcGFyZXMgZWFjaCB3b3JrIGZpbGUKaW4gdGhlIGN1cnJl bnQgVkMgZmlsZXNldCB0byB0aGUgdmVyc2lvbihzKSBmcm9tIHdoaWNoIHlvdSBzdGFydGVkCmVk aXRpbmcuICBUaGUgZGlmZiBpcyBkaXNwbGF5ZWQgaW4gYW5vdGhlciB3aW5kb3csIGluIGEgRGlm ZiBtb2RlIGJ1ZmZlcgooKm5vdGUgRGlmZiBNb2RlOjopIG5hbWVkIOKAmCp2Yy1kaWZmKuKAmS4g IFRoZSB1c3VhbCBEaWZmIG1vZGUgY29tbWFuZHMgYXJlCmF2YWlsYWJsZSBpbiB0aGlzIGJ1ZmZl ci4gIEluIHBhcnRpY3VsYXIsIHRoZSDigJhn4oCZICjigJhyZXZlcnQtYnVmZmVy4oCZKQpjb21t YW5kIHBlcmZvcm1zIHRoZSBmaWxlIGNvbXBhcmlzb24gYWdhaW4sIGdlbmVyYXRpbmcgYSBuZXcg ZGlmZi4KCiAgIFRvIGNvbXBhcmUgdHdvIGFyYml0cmFyeSByZXZpc2lvbnMgb2YgdGhlIGN1cnJl bnQgVkMgZmlsZXNldCwgY2FsbArigJh2Yy1kaWZm4oCZIHdpdGggYSBwcmVmaXggYXJndW1lbnQ6 IOKAmEMtdSBDLXggdiA94oCZLiAgVGhpcyBwcm9tcHRzIGZvciB0d28KcmV2aXNpb24gSURzICgq bm90ZSBWQ1MgQ29uY2VwdHM6OiksIGFuZCBkaXNwbGF5cyBhIGRpZmYgYmV0d2VlbiB0aG9zZQp2 ZXJzaW9ucyBvZiB0aGUgZmlsZXNldC4gIFRoaXMgd2lsbCBub3Qgd29yayByZWxpYWJseSBmb3Ig bXVsdGktZmlsZSBWQwpmaWxlc2V0cywgaWYgdGhlIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gaXMg ZmlsZS1iYXNlZCByYXRoZXIgdGhhbgpjaGFuZ2VzZXQtYmFzZWQgKGUuZy4sIENWUyksIHNpbmNl IHRoZW4gcmV2aXNpb24gSURzIGZvciBkaWZmZXJlbnQgZmlsZXMKd291bGQgbm90IGJlIHJlbGF0 ZWQgaW4gYW55IG1lYW5pbmdmdWwgd2F5LgoKICAgSW5zdGVhZCBvZiB0aGUgcmV2aXNpb24gSUQs IHNvbWUgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMgbGV0IHlvdQpzcGVjaWZ5IHJldmlzaW9ucyBp biBvdGhlciBmb3JtYXRzLiAgRm9yIGluc3RhbmNlLCB1bmRlciBCYXphYXIgeW91IGNhbgplbnRl ciDigJhkYXRlOnllc3RlcmRheeKAmSBmb3IgdGhlIGFyZ3VtZW50IHRvIOKAmEMtdSBDLXggdiA9 4oCZIChhbmQgcmVsYXRlZApjb21tYW5kcykgdG8gc3BlY2lmeSB0aGUgZmlyc3QgcmV2aXNpb24g Y29tbWl0dGVkIGFmdGVyIHllc3RlcmRheS4gIFNlZQp0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUg dmVyc2lvbiBjb250cm9sIHN5c3RlbSBmb3IgZGV0YWlscy4KCiAgIElmIHlvdSBpbnZva2Ug4oCY Qy14IHYgPeKAmSBvciDigJhDLXUgQy14IHYgPeKAmSBmcm9tIGEgRGlyZWQgYnVmZmVyICgqbm90 ZQpEaXJlZDo6KSwgdGhlIGZpbGUgbGlzdGVkIG9uIHRoZSBjdXJyZW50IGxpbmUgaXMgdHJlYXRl ZCBhcyB0aGUgY3VycmVudApWQyBmaWxlc2V0LgoKICAg4oCYTS14IHZjLWVkaWZm4oCZIHdvcmtz IGxpa2Ug4oCYQy14IHYgPeKAmSwgZXhjZXB0IHRoYXQgaXQgdXNlcyBhbiBFZGlmZgpzZXNzaW9u LiAgKk5vdGUgRWRpZmY6IChlZGlmZilUb3AuCgogICDigJhDLXggdiBE4oCZICjigJh2Yy1yb290 LWRpZmbigJkpIGlzIHNpbWlsYXIgdG8g4oCYQy14IHYgPeKAmSwgYnV0IGl0IGRpc3BsYXlzCnRo ZSBjaGFuZ2VzIGluIHRoZSBlbnRpcmUgY3VycmVudCB3b3JraW5nIHRyZWUgKGkuZS4sIHRoZSB3 b3JraW5nIHRyZWUKY29udGFpbmluZyB0aGUgY3VycmVudCBWQyBmaWxlc2V0KS4gIElmIHlvdSBp bnZva2UgdGhpcyBjb21tYW5kIGZyb20gYQpEaXJlZCBidWZmZXIsIGl0IGFwcGxpZXMgdG8gdGhl IHdvcmtpbmcgdHJlZSBjb250YWluaW5nIHRoZSBkaXJlY3RvcnkuCgogICBZb3UgY2FuIGN1c3Rv bWl6ZSB0aGUg4oCYZGlmZuKAmSBvcHRpb25zIHRoYXQg4oCYQy14IHYgPeKAmSBhbmQg4oCYQy14 IHYgROKAmSB1c2UKZm9yIGdlbmVyYXRpbmcgZGlmZnMuICBUaGUgb3B0aW9ucyB1c2VkIGFyZSB0 YWtlbiBmcm9tIHRoZSBmaXJzdApub24t4oCYbmls4oCZIHZhbHVlIGFtb25nc3QgdGhlIHZhcmlh YmxlcyDigJh2Yy1CQUNLRU5ELWRpZmYtc3dpdGNoZXPigJksCuKAmHZjLWRpZmYtc3dpdGNoZXPi gJksIGFuZCDigJhkaWZmLXN3aXRjaGVz4oCZICgqbm90ZSBDb21wYXJpbmcgRmlsZXM6OiksIGlu CnRoYXQgb3JkZXIuICBIZXJlLCBCQUNLRU5EIHN0YW5kcyBmb3IgdGhlIHJlbGV2YW50IHZlcnNp b24gY29udHJvbApzeXN0ZW0sIGUuZy4sIOKAmGJ6cuKAmSBmb3IgQmF6YWFyLiAgU2luY2Ug4oCY bmls4oCZIG1lYW5zIHRvIGNoZWNrIHRoZSBuZXh0CnZhcmlhYmxlIGluIHRoZSBzZXF1ZW5jZSwg ZWl0aGVyIG9mIHRoZSBmaXJzdCB0d28gbWF5IHVzZSB0aGUgdmFsdWUg4oCYdOKAmQp0byBtZWFu IG5vIHN3aXRjaGVzIGF0IGFsbC4gIE1vc3Qgb2YgdGhlIOKAmHZjLUJBQ0tFTkQtZGlmZi1zd2l0 Y2hlc+KAmQp2YXJpYWJsZXMgZGVmYXVsdCB0byDigJhuaWzigJksIGJ1dCBzb21lIGRlZmF1bHQg dG8g4oCYdOKAmTsgdGhlc2UgYXJlIGZvcgp2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyB3aG9zZSDi gJhkaWZm4oCZIGltcGxlbWVudGF0aW9ucyBkbyBub3QgYWNjZXB0CmNvbW1vbiBkaWZmIG9wdGlv bnMsIHN1Y2ggYXMgU3VidmVyc2lvbi4KCiAgIFRvIGRpcmVjdGx5IGV4YW1pbmUgYW4gb2xkZXIg dmVyc2lvbiBvZiBhIGZpbGUsIHZpc2l0IHRoZSB3b3JrIGZpbGUKYW5kIHR5cGUg4oCYQy14IHYg fiBSRVZJU0lPTiA8UkVUPuKAmSAo4oCYdmMtcmV2aXNpb24tb3RoZXItd2luZG934oCZKS4gIFRo aXMKcmV0cmlldmVzIHRoZSBmaWxlIHZlcnNpb24gY29ycmVzcG9uZGluZyB0byBSRVZJU0lPTiwg c2F2ZXMgaXQgdG8K4oCYRklMRU5BTUUuflJFVklTSU9OfuKAmSwgYW5kIHZpc2l0cyBpdCBpbiBh IHNlcGFyYXRlIHdpbmRvdy4KCiAgIE1hbnkgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMgYWxsb3cg eW91IHRvIHZpZXcgZmlsZXMgImFubm90YXRlZCIgd2l0aApwZXItbGluZSByZXZpc2lvbiBpbmZv cm1hdGlvbiwgYnkgdHlwaW5nIOKAmEMteCB2IGfigJkgKOKAmHZjLWFubm90YXRl4oCZKS4KVGhp cyBjcmVhdGVzIGEgbmV3IOKAnGFubm90YXRl4oCdIGJ1ZmZlciBkaXNwbGF5aW5nIHRoZSBmaWxl 4oCZcyB0ZXh0LCB3aXRoCmVhY2ggbGluZSBjb2xvcmVkIHRvIHNob3cgaG93IG9sZCBpdCBpcy4g IFJlZCB0ZXh0IGlzIG5ldywgYmx1ZSBpcyBvbGQsCmFuZCBpbnRlcm1lZGlhdGUgY29sb3JzIGlu ZGljYXRlIGludGVybWVkaWF0ZSBhZ2VzLiAgQnkgZGVmYXVsdCwgdGhlCmNvbG9yIGlzIHNjYWxl ZCBvdmVyIHRoZSBmdWxsIHJhbmdlIG9mIGFnZXMsIHN1Y2ggdGhhdCB0aGUgb2xkZXN0CmNoYW5n ZXMgYXJlIGJsdWUsIGFuZCB0aGUgbmV3ZXN0IGNoYW5nZXMgYXJlIHJlZC4gIElmIHRoZSB2YXJp YWJsZQrigJh2Yy1hbm5vdGF0ZS1iYWNrZ3JvdW5kLW1vZGXigJkgaXMgbm9uLeKAmG5pbOKAmSwg dGhlIGNvbG9ycyBleHByZXNzaW5nIHRoZQphZ2Ugb2YgZWFjaCBsaW5lIGFyZSBhcHBsaWVkIHRv IHRoZSBiYWNrZ3JvdW5kIGNvbG9yLCBsZWF2aW5nIHRoZQpmb3JlZ3JvdW5kIGF0IGl0cyBkZWZh dWx0IGNvbG9yLgoKICAgV2hlbiB5b3UgZ2l2ZSBhIHByZWZpeCBhcmd1bWVudCB0byB0aGlzIGNv bW1hbmQsIEVtYWNzIHJlYWRzIHR3bwphcmd1bWVudHMgdXNpbmcgdGhlIG1pbmlidWZmZXI6IHRo ZSByZXZpc2lvbiB0byBkaXNwbGF5IGFuZCBhbm5vdGF0ZQooaW5zdGVhZCBvZiB0aGUgY3VycmVu dCBmaWxlIGNvbnRlbnRzKSwgYW5kIHRoZSB0aW1lIHNwYW4gaW4gZGF5cyB0aGUKY29sb3IgcmFu Z2Ugc2hvdWxkIGNvdmVyLgoKICAgRnJvbSB0aGUg4oCcYW5ub3RhdGXigJ0gYnVmZmVyLCB0aGVz ZSBhbmQgb3RoZXIgY29sb3Igc2NhbGluZyBvcHRpb25zIGFyZQphdmFpbGFibGUgZnJvbSB0aGUg 4oCYVkMtQW5ub3RhdGXigJkgbWVudS4gIEluIHRoaXMgYnVmZmVyLCB5b3UgY2FuIGFsc28gdXNl CnRoZSBmb2xsb3dpbmcga2V5cyB0byBicm93c2UgdGhlIGFubm90YXRpb25zIG9mIHBhc3QgcmV2 aXNpb25zLCB2aWV3CmRpZmZzLCBvciB2aWV3IGxvZyBlbnRyaWVzOgoK4oCYcOKAmQogICAgIEFu bm90YXRlIHRoZSBwcmV2aW91cyByZXZpc2lvbiwgaS5lLiwgdGhlIHJldmlzaW9uIGJlZm9yZSB0 aGUgb25lCiAgICAgY3VycmVudGx5IGFubm90YXRlZC4gIEEgbnVtZXJpYyBwcmVmaXggYXJndW1l bnQgaXMgYSByZXBlYXQgY291bnQsCiAgICAgc28g4oCYQy11IDEwIHDigJkgd291bGQgdGFrZSB5 b3UgYmFjayAxMCByZXZpc2lvbnMuCgrigJhu4oCZCiAgICAgQW5ub3RhdGUgdGhlIG5leHQgcmV2 aXNpb24sIGkuZS4sIHRoZSByZXZpc2lvbiBhZnRlciB0aGUgb25lCiAgICAgY3VycmVudGx5IGFu bm90YXRlZC4gIEEgbnVtZXJpYyBwcmVmaXggYXJndW1lbnQgaXMgYSByZXBlYXQgY291bnQuCgri gJhq4oCZCiAgICAgQW5ub3RhdGUgdGhlIHJldmlzaW9uIGluZGljYXRlZCBieSB0aGUgY3VycmVu dCBsaW5lLgoK4oCYYeKAmQogICAgIEFubm90YXRlIHRoZSByZXZpc2lvbiBiZWZvcmUgdGhlIG9u ZSBpbmRpY2F0ZWQgYnkgdGhlIGN1cnJlbnQgbGluZS4KICAgICBUaGlzIGlzIHVzZWZ1bCB0byBz ZWUgdGhlIHN0YXRlIHRoZSBmaWxlIHdhcyBpbiBiZWZvcmUgdGhlIGNoYW5nZQogICAgIG9uIHRo ZSBjdXJyZW50IGxpbmUgd2FzIG1hZGUuCgrigJhm4oCZCiAgICAgU2hvdyBpbiBhIGJ1ZmZlciB0 aGUgZmlsZSByZXZpc2lvbiBpbmRpY2F0ZWQgYnkgdGhlIGN1cnJlbnQgbGluZS4KCuKAmGTigJkK ICAgICBEaXNwbGF5IHRoZSBkaWZmIGJldHdlZW4gdGhlIGN1cnJlbnQgbGluZeKAmXMgcmV2aXNp b24gYW5kIHRoZQogICAgIHByZXZpb3VzIHJldmlzaW9uLiAgVGhpcyBpcyB1c2VmdWwgdG8gc2Vl IHdoYXQgdGhlIGN1cnJlbnQgbGluZeKAmXMKICAgICByZXZpc2lvbiBhY3R1YWxseSBjaGFuZ2Vk IGluIHRoZSBmaWxlLgoK4oCYROKAmQogICAgIERpc3BsYXkgdGhlIGRpZmYgYmV0d2VlbiB0aGUg Y3VycmVudCBsaW5l4oCZcyByZXZpc2lvbiBhbmQgdGhlCiAgICAgcHJldmlvdXMgcmV2aXNpb24g Zm9yIGFsbCBmaWxlcyBpbiB0aGUgY2hhbmdlc2V0IChmb3IgVkMgc3lzdGVtcwogICAgIHRoYXQg c3VwcG9ydCBjaGFuZ2VzZXRzKS4gIFRoaXMgaXMgdXNlZnVsIHRvIHNlZSB3aGF0IHRoZSBjdXJy ZW50CiAgICAgbGluZeKAmXMgcmV2aXNpb24gYWN0dWFsbHkgY2hhbmdlZCBpbiB0aGUgdHJlZS4K CuKAmGzigJkKICAgICBTaG93IHRoZSBsb2cgb2YgdGhlIGN1cnJlbnQgbGluZeKAmXMgcmV2aXNp b24uICBUaGlzIGlzIHVzZWZ1bCB0byBzZWUKICAgICB0aGUgYXV0aG9y4oCZcyBkZXNjcmlwdGlv biBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgcmV2aXNpb24gb24gdGhlCiAgICAgY3VycmVudCBsaW5l LgoK4oCYd+KAmQogICAgIEFubm90YXRlIHRoZSB3b3JraW5nIHJldmlzaW9u4oCTdGhlIG9uZSB5 b3UgYXJlIGVkaXRpbmcuICBJZiB5b3UgdXNlZAogICAgIOKAmHDigJkgYW5kIOKAmG7igJkgdG8g YnJvd3NlIHRvIG90aGVyIHJldmlzaW9ucywgdXNlIHRoaXMga2V5IHRvIHJldHVybiB0bwogICAg IHlvdXIgd29ya2luZyByZXZpc2lvbi4KCuKAmHbigJkKICAgICBUb2dnbGUgdGhlIGFubm90YXRp b24gdmlzaWJpbGl0eS4gIFRoaXMgaXMgdXNlZnVsIGZvciBsb29raW5nIGp1c3QKICAgICBhdCB0 aGUgZmlsZSBjb250ZW50cyB3aXRob3V0IGRpc3RyYWN0aW9uIGZyb20gdGhlIGFubm90YXRpb25z LgoKCioqKiAyOC4xLjcgVkMgQ2hhbmdlIExvZwoK4oCYQy14IHYgbOKAmQogICAgIERpc3BsYXkg dGhlIGNoYW5nZSBoaXN0b3J5IGZvciB0aGUgY3VycmVudCBmaWxlc2V0CiAgICAgKOKAmHZjLXBy aW50LWxvZ+KAmSkuCgrigJhDLXggdiBM4oCZCiAgICAgRGlzcGxheSB0aGUgY2hhbmdlIGhpc3Rv cnkgZm9yIHRoZSBjdXJyZW50IHJlcG9zaXRvcnkKICAgICAo4oCYdmMtcHJpbnQtcm9vdC1sb2fi gJkpLgoK4oCYQy14IHYgSeKAmQogICAgIERpc3BsYXkgdGhlIGNoYW5nZXMgdGhhdCBhIOKAnHB1 bGzigJ0gb3BlcmF0aW9uIHdpbGwgcmV0cmlldmUKICAgICAo4oCYdmMtbG9nLWluY29taW5n4oCZ KS4KCuKAmEMteCB2IE/igJkKICAgICBEaXNwbGF5IHRoZSBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBz ZW50IGJ5IHRoZSBuZXh0IOKAnHB1c2jigJ0gb3BlcmF0aW9uCiAgICAgKOKAmHZjLWxvZy1vdXRn b2luZ+KAmSkuCgogICDigJhDLXggdiBs4oCZICjigJh2Yy1wcmludC1sb2figJkpIGRpc3BsYXlz IGEgYnVmZmVyIG5hbWVkIOKAmCp2Yy1jaGFuZ2UtbG9nKuKAmSwKc2hvd2luZyB0aGUgaGlzdG9y eSBvZiBjaGFuZ2VzIG1hZGUgdG8gdGhlIGN1cnJlbnQgZmlsZSwgaW5jbHVkaW5nIHdobwptYWRl IHRoZSBjaGFuZ2VzLCB0aGUgZGF0ZXMsIGFuZCB0aGUgbG9nIGVudHJ5IGZvciBlYWNoIGNoYW5n ZSAodGhlc2UKYXJlIHRoZSBzYW1lIGxvZyBlbnRyaWVzIHlvdSB3b3VsZCBlbnRlciB2aWEgdGhl IOKAmCp2Yy1sb2cq4oCZIGJ1ZmZlcjsKKm5vdGUgTG9nIEJ1ZmZlcjo6KS4gIFBvaW50IGlzIGNl bnRlcmVkIGF0IHRoZSByZXZpc2lvbiBvZiB0aGUgZmlsZQpjdXJyZW50bHkgYmVpbmcgdmlzaXRl ZC4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQsIHRoZSBjb21tYW5kIHByb21wdHMKZm9yIHRoZSBy ZXZpc2lvbiB0byBjZW50ZXIgb24sIGFuZCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmV2aXNpb25z IHRvCmRpc3BsYXkuCgogICBJZiB5b3UgY2FsbCDigJhDLXggdiBs4oCZIGZyb20gYSBWQyBEaXJl Y3RvcnkgYnVmZmVyICgqbm90ZSBWQyBEaXJlY3RvcnkKTW9kZTo6KSBvciBhIERpcmVkIGJ1ZmZl ciAoKm5vdGUgRGlyZWQ6OiksIGl0IGFwcGxpZXMgdG8gdGhlIGZpbGUgbGlzdGVkCm9uIHRoZSBj dXJyZW50IGxpbmUuCgogICDigJhDLXggdiBM4oCZICjigJh2Yy1wcmludC1yb290LWxvZ+KAmSkg ZGlzcGxheXMgYSDigJgqdmMtY2hhbmdlLWxvZyrigJkgYnVmZmVyCnNob3dpbmcgdGhlIGhpc3Rv cnkgb2YgdGhlIGVudGlyZSB2ZXJzaW9uLWNvbnRyb2xsZWQgZGlyZWN0b3J5IHRyZWUKKFJDUywg U0NDUywgQ1ZTLCBhbmQgU1JDIGRvIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZSkuICBXaXRoIGEg cHJlZml4CmFyZ3VtZW50LCB0aGUgY29tbWFuZCBwcm9tcHRzIGZvciB0aGUgbWF4aW11bSBudW1i ZXIgb2YgcmV2aXNpb25zIHRvCmRpc3BsYXkuCgogICBUaGUg4oCYQy14IHYgTOKAmSBoaXN0b3J5 IGlzIHNob3duIGluIGEgY29tcGFjdCBmb3JtLCB1c3VhbGx5IHNob3dpbmcKb25seSB0aGUgZmly c3QgbGluZSBvZiBlYWNoIGxvZyBlbnRyeS4gIEhvd2V2ZXIsIHlvdSBjYW4gdHlwZSA8UkVUPgoo 4oCYbG9nLXZpZXctdG9nZ2xlLWVudHJ5LWRpc3BsYXnigJkpIGluIHRoZSDigJgqdmMtY2hhbmdl LWxvZyrigJkgYnVmZmVyIHRvCnJldmVhbCB0aGUgZW50aXJlIGxvZyBlbnRyeSBmb3IgdGhlIHJl dmlzaW9uIGF0IHBvaW50LiAgQSBzZWNvbmQgPFJFVD4KaGlkZXMgaXQgYWdhaW4uCgogICBPbiBh IGRlY2VudHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgdGhlIOKAmEMteCB2IEnigJkK KOKAmHZjLWxvZy1pbmNvbWluZ+KAmSkgY29tbWFuZCBkaXNwbGF5cyBhIGxvZyBidWZmZXIgc2hv d2luZyB0aGUgY2hhbmdlcwp0aGF0IHdpbGwgYmUgYXBwbGllZCwgdGhlIG5leHQgdGltZSB5b3Ug cnVuIHRoZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVt4oCZcwpwdWxsIGNvbW1hbmQgdG8gZ2V0IG5l dyByZXZpc2lvbnMgZnJvbSBhbm90aGVyIHJlcG9zaXRvcnkgKCpub3RlIFB1bGxpbmcKLyBQdXNo aW5nOjopLiAgVGhpcyBvdGhlciByZXBvc2l0b3J5IGlzIHRoZSBkZWZhdWx0IG9uZSBmcm9tIHdo aWNoCmNoYW5nZXMgYXJlIHB1bGxlZCwgYXMgZGVmaW5lZCBieSB0aGUgdmVyc2lvbiBjb250cm9s IHN5c3RlbTsgd2l0aCBhCnByZWZpeCBhcmd1bWVudCwg4oCYdmMtbG9nLWluY29taW5n4oCZIHBy b21wdHMgZm9yIGEgc3BlY2lmaWMgcmVwb3NpdG9yeS4KU2ltaWxhcmx5LCDigJhDLXggdiBP4oCZ ICjigJh2Yy1sb2ctb3V0Z29pbmfigJkpIHNob3dzIHRoZSBjaGFuZ2VzIHRoYXQgd2lsbCBiZQpz ZW50IHRvIGFub3RoZXIgcmVwb3NpdG9yeSwgdGhlIG5leHQgdGltZSB5b3UgcnVuIHRoZSBwdXNo IGNvbW1hbmQ7IHdpdGgKYSBwcmVmaXggYXJndW1lbnQsIGl0IHByb21wdHMgZm9yIGEgc3BlY2lm aWMgZGVzdGluYXRpb24gcmVwb3NpdG9yeS4KCiAgIEluIHRoZSDigJgqdmMtY2hhbmdlLWxvZyri gJkgYnVmZmVyLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGtleXMgdG8KbW92ZSBiZXR3ZWVu IHRoZSBsb2dzIG9mIHJldmlzaW9ucyBhbmQgb2YgZmlsZXMsIGFuZCB0byBleGFtaW5lIGFuZApj b21wYXJlIHBhc3QgcmV2aXNpb25zICgqbm90ZSBPbGQgUmV2aXNpb25zOjopOgoK4oCYcOKAmQog ICAgIE1vdmUgdG8gdGhlIHByZXZpb3VzIHJldmlzaW9uIGVudHJ5LiAgKFJldmlzaW9uIGVudHJp ZXMgaW4gdGhlIGxvZwogICAgIGJ1ZmZlciBhcmUgdXN1YWxseSBpbiByZXZlcnNlLWNocm9ub2xv Z2ljYWwgb3JkZXIsIHNvIHRoZSBwcmV2aW91cwogICAgIHJldmlzaW9uLWl0ZW0gdXN1YWxseSBj b3JyZXNwb25kcyB0byBhIG5ld2VyIHJldmlzaW9uLikgIEEgbnVtZXJpYwogICAgIHByZWZpeCBh cmd1bWVudCBpcyBhIHJlcGVhdCBjb3VudC4KCuKAmG7igJkKICAgICBNb3ZlIHRvIHRoZSBuZXh0 IHJldmlzaW9uIGVudHJ5LiAgQSBudW1lcmljIHByZWZpeCBhcmd1bWVudCBpcyBhCiAgICAgcmVw ZWF0IGNvdW50LgoK4oCYUOKAmQogICAgIE1vdmUgdG8gdGhlIGxvZyBvZiB0aGUgcHJldmlvdXMg ZmlsZSwgaWYgc2hvd2luZyBsb2dzIGZvciBhCiAgICAgbXVsdGktZmlsZSBWQyBmaWxlc2V0LiAg T3RoZXJ3aXNlLCBqdXN0IG1vdmUgdG8gdGhlIGJlZ2lubmluZyBvZgogICAgIHRoZSBsb2cuICBB IG51bWVyaWMgcHJlZml4IGFyZ3VtZW50IGlzIGEgcmVwZWF0IGNvdW50LgoK4oCYTuKAmQogICAg IE1vdmUgdG8gdGhlIGxvZyBvZiB0aGUgbmV4dCBmaWxlLCBpZiBzaG93aW5nIGxvZ3MgZm9yIGEg bXVsdGktZmlsZQogICAgIFZDIGZpbGVzZXQuICBBIG51bWVyaWMgcHJlZml4IGFyZ3VtZW50IGlz IGEgcmVwZWF0IGNvdW50LgoK4oCYYeKAmQogICAgIEFubm90YXRlIHRoZSByZXZpc2lvbiBvbiB0 aGUgY3VycmVudCBsaW5lICgqbm90ZSBPbGQgUmV2aXNpb25zOjopLgoK4oCYZeKAmQogICAgIE1v ZGlmeSB0aGUgY2hhbmdlIGNvbW1lbnQgZGlzcGxheWVkIGF0IHBvaW50LiAgTm90ZSB0aGF0IG5v dCBhbGwgVkMKICAgICBzeXN0ZW1zIHN1cHBvcnQgbW9kaWZ5aW5nIGNoYW5nZSBjb21tZW50cy4K CuKAmGbigJkKICAgICBWaXNpdCB0aGUgcmV2aXNpb24gaW5kaWNhdGVkIGF0IHRoZSBjdXJyZW50 IGxpbmUuCgrigJhk4oCZCiAgICAgRGlzcGxheSBhIGRpZmYgYmV0d2VlbiB0aGUgcmV2aXNpb24g YXQgcG9pbnQgYW5kIHRoZSBuZXh0IGVhcmxpZXIKICAgICByZXZpc2lvbiwgZm9yIHRoZSBzcGVj aWZpYyBmaWxlLgoK4oCYROKAmQogICAgIERpc3BsYXkgdGhlIGNoYW5nZXNldCBkaWZmIGJldHdl ZW4gdGhlIHJldmlzaW9uIGF0IHBvaW50IGFuZCB0aGUKICAgICBuZXh0IGVhcmxpZXIgcmV2aXNp b24uICBUaGlzIHNob3dzIHRoZSBjaGFuZ2VzIHRvIGFsbCBmaWxlcyBtYWRlIGluCiAgICAgdGhh dCByZXZpc2lvbi4KCuKAmDxSRVQ+4oCZCiAgICAgSW4gYSBjb21wYWN0LXN0eWxlIGxvZyBidWZm ZXIgKGUuZy4sIHRoZSBvbmUgY3JlYXRlZCBieSDigJhDLXggdiBM4oCZKSwKICAgICB0b2dnbGUg YmV0d2VlbiBzaG93aW5nIGFuZCBoaWRpbmcgdGhlIGZ1bGwgbG9nIGVudHJ5IGZvciB0aGUKICAg ICByZXZpc2lvbiBhdCBwb2ludC4KCiAgIEJlY2F1c2UgZmV0Y2hpbmcgbWFueSBsb2cgZW50cmll cyBjYW4gYmUgc2xvdywgdGhlIOKAmCp2Yy1jaGFuZ2UtbG9nKuKAmQpidWZmZXIgZGlzcGxheXMg bm8gbW9yZSB0aGFuIDIwMDAgcmV2aXNpb25zIGJ5IGRlZmF1bHQuICBUaGUgdmFyaWFibGUK4oCY dmMtbG9nLXNob3ctbGltaXTigJkgc3BlY2lmaWVzIHRoaXMgbGltaXQ7IGlmIHlvdSBzZXQgdGhl IHZhbHVlIHRvIHplcm8sCnRoYXQgcmVtb3ZlcyB0aGUgbGltaXQuICBZb3UgY2FuIGFsc28gaW5j cmVhc2UgdGhlIG51bWJlciBvZiByZXZpc2lvbnMKc2hvd24gaW4gYW4gZXhpc3Rpbmcg4oCYKnZj LWNoYW5nZS1sb2cq4oCZIGJ1ZmZlciBieSBjbGlja2luZyBvbiB0aGUg4oCYU2hvdwoyWCBlbnRy aWVz4oCZIG9yIOKAmFNob3cgdW5saW1pdGVkIGVudHJpZXPigJkgYnV0dG9ucyBhdCB0aGUgZW5k IG9mIHRoZQpidWZmZXIuICBIb3dldmVyLCBSQ1MsIFNDQ1MsIENWUywgYW5kIFNSQyBkbyBub3Qg c3VwcG9ydCB0aGlzIGZlYXR1cmUuCgogICBBIHVzZWZ1bCB2YXJpYW50IG9mIGV4YW1pbmluZyBj aGFuZ2VzIGlzIHByb3ZpZGVkIGJ5IHRoZSBjb21tYW5kCuKAmHZjLXJlZ2lvbi1oaXN0b3J54oCZ IChieSBkZWZhdWx0IGJvdW5kIHRvIOKAmEMteCB2IGjigJkpLCB3aGljaCBzaG93cyBhCuKAmCpW Qy1oaXN0b3J5KuKAmSBidWZmZXIgd2l0aCB0aGUgaGlzdG9yeSBvZiBjaGFuZ2VzIHRvIHRoZSBy ZWdpb24gb2YgdGhlCmN1cnJlbnQgZmlsZSBiZXR3ZWVuIHBvaW50IGFuZCB0aGUgbWFyayAoKm5v dGUgTWFyazo6KS4gIFRoZSBoaXN0b3J5IG9mCmNoYW5nZXMgaW5jbHVkZXMgdGhlIGNvbW1pdCBs b2cgbWVzc2FnZXMgYW5kIGFsc28gdGhlIGNoYW5nZXMgdGhlbXNlbHZlcwppbiB0aGUgRGlmZiBm b3JtYXQuCgogICBJbnZva2UgdGhpcyBjb21tYW5kIGFmdGVyIG1hcmtpbmcgdGhlIHJlZ2lvbiBv ZiB0aGUgY3VycmVudCBmaWxlIGluCndob3NlIGNoYW5nZXMgeW91IGFyZSBpbnRlcmVzdGVkLiAg SW4gdGhlIOKAmCpWQy1oaXN0b3J5KuKAmSBidWZmZXIgaXQgcG9wcwp1cCwgeW91IGNhbiB1c2Ug YWxsIG9mIHRoZSBjb21tYW5kcyBhdmFpbGFibGUgaW4gdGhlIOKAmCp2Yy1jaGFuZ2UtbG9nKuKA mQpidWZmZXIgZGVzY3JpYmVkIGFib3ZlLCBhbmQgYWxzbyB0aGUgY29tbWFuZHMgZGVmaW5lZCBi eSBEaWZmIG1vZGUKKCpub3RlIERpZmYgTW9kZTo6KS4KCiAgIFRoaXMgY29tbWFuZCBpcyBjdXJy ZW50bHkgYXZhaWxhYmxlIG9ubHkgd2l0aCBHaXQuCgoKKioqIDI4LjEuOCBVbmRvaW5nIFZlcnNp b24gQ29udHJvbCBBY3Rpb25zCgrigJhDLXggdiB14oCZCiAgICAgUmV2ZXJ0IHRoZSB3b3JrIGZp bGUocykgaW4gdGhlIGN1cnJlbnQgVkMgZmlsZXNldCB0byB0aGUgbGFzdAogICAgIHJldmlzaW9u ICjigJh2Yy1yZXZlcnTigJkpLgoKICAgSWYgeW91IHdhbnQgdG8gZGlzY2FyZCBhbGwgdGhlIGNo YW5nZXMgeW91IGhhdmUgbWFkZSB0byB0aGUgY3VycmVudApWQyBmaWxlc2V0LCB0eXBlIOKAmEMt eCB2IHXigJkgKOKAmHZjLXJldmVydOKAmSkuICBUaGlzIHNob3dzIHlvdSBhIGRpZmYgYmV0d2Vl bgp0aGUgd29yayBmaWxlKHMpIGFuZCB0aGUgcmV2aXNpb24gZnJvbSB3aGljaCB5b3Ugc3RhcnRl ZCBlZGl0aW5nLCBhbmQKYXNrcyBmb3IgY29uZmlybWF0aW9uIGZvciBkaXNjYXJkaW5nIHRoZSBj aGFuZ2VzLiAgSWYgeW91IGFncmVlLCB0aGUKZmlsZXNldCBpcyByZXZlcnRlZC4gIElmIHlvdSBk b27igJl0IHdhbnQg4oCYQy14IHYgdeKAmSB0byBzaG93IGEgZGlmZiwgc2V0CnRoZSB2YXJpYWJs ZSDigJh2Yy1yZXZlcnQtc2hvdy1kaWZm4oCZIHRvIOKAmG5pbOKAmSAoeW91IGNhbiBzdGlsbCB2 aWV3IHRoZSBkaWZmCmRpcmVjdGx5IHdpdGgg4oCYQy14IHYgPeKAmTsgKm5vdGUgT2xkIFJldmlz aW9uczo6KS4gIE5vdGUgdGhhdCDigJhDLXggdiB14oCZCmNhbm5vdCBiZSByZXZlcnNlZCB3aXRo IHRoZSB1c3VhbCB1bmRvIGNvbW1hbmRzICgqbm90ZSBVbmRvOjopLCBzbyB1c2UKaXQgd2l0aCBj YXJlLgoKICAgT24gbG9ja2luZy1iYXNlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcywg4oCYQy14 IHYgdeKAmSBsZWF2ZXMgZmlsZXMKdW5sb2NrZWQ7IHlvdSBtdXN0IGxvY2sgYWdhaW4gdG8gcmVz dW1lIGVkaXRpbmcuICBZb3UgY2FuIGFsc28gdXNlIOKAmEMteAp2IHXigJkgdG8gdW5sb2NrIGEg ZmlsZSBpZiB5b3UgbG9jayBpdCBhbmQgdGhlbiBkZWNpZGUgbm90IHRvIGNoYW5nZSBpdC4KCgoq KiogMjguMS45IElnbm9yZSBWZXJzaW9uIENvbnRyb2wgRmlsZXMKCuKAmEMteCB2IEfigJkKICAg ICBJZ25vcmUgYSBmaWxlIHVuZGVyIGN1cnJlbnQgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4gICji gJh2Yy1pZ25vcmXigJkpLgoKICAgTWFueSBzb3VyY2UgdHJlZXMgY29udGFpbiBzb21lIGZpbGVz IHRoYXQgZG8gbm90IG5lZWQgdG8gYmUKdmVyc2lvbmVkLCBzdWNoIGFzIGVkaXRvciBiYWNrdXBz LCBvYmplY3Qgb3IgYnl0ZWNvZGUgZmlsZXMsIGFuZCBidWlsdApwcm9ncmFtcy4gIFlvdSBjYW4g c2ltcGx5IG5vdCBhZGQgdGhlbSwgYnV0IHRoZW4gdGhleeKAmWxsIGFsd2F5cyBjcm9wIHVwCmFz IHVua25vd24gZmlsZXMuICBZb3UgY2FuIGFsc28gdGVsbCB0aGUgdmVyc2lvbiBjb250cm9sIHN5 c3RlbSB0bwppZ25vcmUgdGhlc2UgZmlsZXMgYnkgYWRkaW5nIHRoZW0gdG8gdGhlIGlnbm9yZSBm aWxlIGF0IHRoZSB0b3Agb2YgdGhlCnRyZWUuICDigJhDLXggdiBH4oCZICjigJh2Yy1pZ25vcmXi gJkpIGNhbiBoZWxwIHlvdSBkbyB0aGlzLiAgV2hlbiBjYWxsZWQgd2l0aCBhCnByZWZpeCBhcmd1 bWVudCwgeW91IGNhbiByZW1vdmUgYSBmaWxlIGZyb20gdGhlIGlnbm9yZWQgZmlsZSBsaXN0LgoK CioqKiAyOC4xLjEwIFZDIERpcmVjdG9yeSBNb2RlCgpUaGUgIlZDIERpcmVjdG9yeSBidWZmZXIi IGlzIGEgc3BlY2lhbGl6ZWQgYnVmZmVyIGZvciB2aWV3aW5nIHRoZQp2ZXJzaW9uIGNvbnRyb2wg c3RhdHVzZXMgb2YgdGhlIGZpbGVzIGluIGEgZGlyZWN0b3J5IHRyZWUsIGFuZApwZXJmb3JtaW5n IHZlcnNpb24gY29udHJvbCBvcGVyYXRpb25zIG9uIHRob3NlIGZpbGVzLiAgSW4gcGFydGljdWxh ciwgaXQKaXMgdXNlZCB0byBzcGVjaWZ5IG11bHRpLWZpbGUgVkMgZmlsZXNldHMgZm9yIGNvbW1h bmRzIGxpa2Ug4oCYQy14IHYgduKAmSB0bwphY3Qgb24gKCpub3RlIFZDIERpcmVjdG9yeSBDb21t YW5kczo6KS4KCiAgIFRvIHVzZSB0aGUgVkMgRGlyZWN0b3J5IGJ1ZmZlciwgdHlwZSDigJhDLXgg diBk4oCZICjigJh2Yy1kaXLigJkpLiAgVGhpcwpyZWFkcyBhIGRpcmVjdG9yeeKAmXMgbmFtZSB1 c2luZyB0aGUgbWluaWJ1ZmZlciwgYW5kIHN3aXRjaGVzIHRvIGEgVkMKRGlyZWN0b3J5IGJ1ZmZl ciBmb3IgdGhhdCBkaXJlY3RvcnkuICBCeSBkZWZhdWx0LCB0aGUgYnVmZmVyIGlzIG5hbWVkCuKA mCp2Yy1kaXIq4oCZLiAgSXRzIGNvbnRlbnRzIGFyZSBkZXNjcmliZWQgaW4gKm5vdGUgVkMgRGly ZWN0b3J5IEJ1ZmZlcjo6LgoKICAgVGhlIOKAmHZjLWRpcuKAmSBjb21tYW5kIGF1dG9tYXRpY2Fs bHkgZGV0ZWN0cyB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbQp0byBiZSB1c2VkIGluIHRoZSBz cGVjaWZpZWQgZGlyZWN0b3J5LiAgSW4gdGhlIGV2ZW50IHRoYXQgbW9yZSB0aGFuIG9uZQpzeXN0 ZW0gaXMgYmVpbmcgdXNlZCBpbiB0aGUgZGlyZWN0b3J5LCB5b3Ugc2hvdWxkIGludm9rZSB0aGUg Y29tbWFuZAp3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCDigJhDLXUgQy14IHYgZOKAmTsgdGhpcyBw cm9tcHRzIGZvciB0aGUgdmVyc2lvbgpjb250cm9sIHN5c3RlbSB3aGljaCB0aGUgVkMgRGlyZWN0 b3J5IGJ1ZmZlciBzaG91bGQgdXNlLgoKICAgSW4gYWRkaXRpb24gdG8gdGhlIFZDIERpcmVjdG9y eSBidWZmZXIsIEVtYWNzIGhhcyBhIHNpbWlsYXIgZmFjaWxpdHkKY2FsbGVkIFBDTC1DVlMgd2hp Y2ggaXMgc3BlY2lhbGl6ZWQgZm9yIENWUy4gICpOb3RlIEFib3V0IFBDTC1DVlM6CihwY2wtY3Zz KVRvcC4KCisgTWVudToKCiAgLSBCdWZmZXI6IFZDIERpcmVjdG9yeSBCdWZmZXIuICAgICAgV2hh dCB0aGUgYnVmZmVyIGxvb2tzIGxpa2UgYW5kIG1lYW5zLgogIC0gQ29tbWFuZHM6IFZDIERpcmVj dG9yeSBDb21tYW5kcy4gIENvbW1hbmRzIHRvIHVzZSBpbiBhIFZDIGRpcmVjdG9yeSBidWZmZXIu CgoKKioqKiAyOC4xLjEwLjEgVGhlIFZDIERpcmVjdG9yeSBCdWZmZXIKClRoZSBWQyBEaXJlY3Rv cnkgYnVmZmVyIGNvbnRhaW5zIGEgbGlzdCBvZiB2ZXJzaW9uLWNvbnRyb2xsZWQgZmlsZXMgYW5k CnRoZWlyIHZlcnNpb24gY29udHJvbCBzdGF0dXNlcy4gIEl0IGxpc3RzIGZpbGVzIGluIHRoZSBj dXJyZW50IGRpcmVjdG9yeQoodGhlIG9uZSBzcGVjaWZpZWQgd2hlbiB5b3UgY2FsbGVkIOKAmEMt eCB2IGTigJkpIGFuZCBpdHMgc3ViZGlyZWN0b3JpZXMsCmJ1dCBvbmx5IHRob3NlIHdpdGggYSBu b3Rld29ydGh5IHN0YXR1cy4gIEZpbGVzIHRoYXQgYXJlIHVwLXRvLWRhdGUKKGkuZS4sIHRoZSBz YW1lIGFzIGluIHRoZSByZXBvc2l0b3J5KSBhcmUgb21pdHRlZC4gIElmIGFsbCB0aGUgZmlsZXMg aW4KYSBzdWJkaXJlY3RvcnkgYXJlIHVwLXRvLWRhdGUsIHRoZSBzdWJkaXJlY3RvcnkgaXMgbm90 IGxpc3RlZCBlaXRoZXIuCkFzIGFuIGV4Y2VwdGlvbiwgaWYgYSBmaWxlIGhhcyBiZWNvbWUgdXAt dG8tZGF0ZSBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYQpWQyBjb21tYW5kLCBpdCBpcyBsaXN0ZWQu CgogICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBWQyBEaXJlY3RvcnkgYnVmZmVyIGxpc3Rpbmc6 CgogICAgICAgICAgICAgICAgICAgICAgICAgIC4vCiAgICAgICAgIGVkaXRlZCAgICAgICAgICAg Y29uZmlndXJlLmFjCiAgICAgKiAgIGFkZGVkICAgICAgICAgICAgUkVBRE1FCiAgICAgICAgIHVu cmVnaXN0ZXJlZCAgICAgdGVtcC50eHQKICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMvCiAg ICAgKiAgIGVkaXRlZCAgICAgICAgICAgc3JjL21haW4uYwoKVHdvIHdvcmsgZmlsZXMgaGF2ZSBi ZWVuIG1vZGlmaWVkIGJ1dCBub3QgY29tbWl0dGVkOiDigJhjb25maWd1cmUuYWPigJkgaW4KdGhl IGN1cnJlbnQgZGlyZWN0b3J5LCBhbmQg4oCYbWFpbi5j4oCZIGluIHRoZSDigJhzcmMv4oCZIHN1 YmRpcmVjdG9yeS4gIFRoZQpmaWxlIG5hbWVkIOKAmFJFQURNReKAmSBoYXMgYmVlbiBhZGRlZCBi dXQgaXMgbm90IHlldCBjb21taXR0ZWQsIHdoaWxlCuKAmHRlbXAudHh04oCZIGlzIG5vdCB1bmRl ciB2ZXJzaW9uIGNvbnRyb2wgKCpub3RlIFJlZ2lzdGVyaW5nOjopLgoKICAgVGhlIOKAmCrigJkg Y2hhcmFjdGVycyBuZXh0IHRvIHRoZSBlbnRyaWVzIGZvciDigJhSRUFETUXigJkgYW5kIOKAmHNy Yy9tYWluLmPigJkKaW5kaWNhdGUgdGhhdCB0aGUgdXNlciBoYXMgbWFya2VkIHRoZXNlIGZpbGVz IGFzIHRoZSBjdXJyZW50IFZDIGZpbGVzZXQKKCpub3RlIFZDIERpcmVjdG9yeSBDb21tYW5kczo6 KS4KCiAgIFRoZSBhYm92ZSBleGFtcGxlIGlzIHR5cGljYWwgZm9yIGEgZGVjZW50cmFsaXplZCB2 ZXJzaW9uIGNvbnRyb2wKc3lzdGVtIGxpa2UgQmF6YWFyLCBHaXQsIG9yIE1lcmN1cmlhbC4gIE90 aGVyIHN5c3RlbXMgY2FuIHNob3cgb3RoZXIKc3RhdHVzZXMuICBGb3IgaW5zdGFuY2UsIENWUyBz aG93cyB0aGUg4oCYbmVlZHMtdXBkYXRl4oCZIHN0YXR1cyBpZiB0aGUKcmVwb3NpdG9yeSBoYXMg Y2hhbmdlcyB0aGF0IGhhdmUgbm90IGJlZW4gYXBwbGllZCB0byB0aGUgd29yayBmaWxlLiAgUkNT CmFuZCBTQ0NTIHNob3cgdGhlIG5hbWUgb2YgdGhlIHVzZXIgbG9ja2luZyBhIGZpbGUgYXMgaXRz IHN0YXR1cy4KCiAgIE9uIENWUywgdGhlIOKAmHZjLWRpcuKAmSBjb21tYW5kIG5vcm1hbGx5IGNv bnRhY3RzIHRoZSByZXBvc2l0b3J5LCB3aGljaAptYXkgYmUgb24gYSByZW1vdGUgbWFjaGluZSwg dG8gY2hlY2sgZm9yIHVwZGF0ZXMuICBJZiB5b3UgY2hhbmdlIHRoZQp2YXJpYWJsZSDigJh2Yy1j dnMtc3RheS1sb2NhbOKAmSB0byDigJhuaWzigJkgKCpub3RlIENWUyBPcHRpb25zOjopLCB0aGVu IEVtYWNzCmF2b2lkcyBjb250YWN0aW5nIGEgcmVtb3RlIHJlcG9zaXRvcnkgd2hlbiBnZW5lcmF0 aW5nIHRoZSBWQyBEaXJlY3RvcnkKYnVmZmVyIChpdCB3aWxsIHN0aWxsIGNvbnRhY3QgaXQgd2hl biBuZWNlc3NhcnksIGUuZy4sIHdoZW4gZG9pbmcgYQpjb21taXQpLiAgVGhpcyBtYXkgYmUgZGVz aXJhYmxlIGlmIHlvdSBhcmUgd29ya2luZyBvZmZsaW5lIG9yIHRoZQpuZXR3b3JrIGlzIHNsb3cu CgogICBUaGUgVkMgRGlyZWN0b3J5IGJ1ZmZlciBvbWl0cyBzdWJkaXJlY3RvcmllcyBsaXN0ZWQg aW4gdGhlIHZhcmlhYmxlCuKAmHZjLWRpcmVjdG9yeS1leGNsdXNpb24tbGlzdOKAmS4gIEl0cyBk ZWZhdWx0IHZhbHVlIGNvbnRhaW5zIGRpcmVjdG9yaWVzCnRoYXQgYXJlIHVzZWQgaW50ZXJuYWxs eSBieSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcy4KCgoqKioqIDI4LjEuMTAuMiBWQyBEaXJlY3Rv cnkgQ29tbWFuZHMKCkVtYWNzIHByb3ZpZGVzIHNldmVyYWwgY29tbWFuZHMgZm9yIG5hdmlnYXRp bmcgdGhlIFZDIERpcmVjdG9yeSBidWZmZXIsCmFuZCBmb3IgbWFya2luZyBmaWxlcyBhcyBiZWxv bmdpbmcgdG8gdGhlIGN1cnJlbnQgVkMgZmlsZXNldC4KCuKAmG7igJkK4oCYPFNQQz7igJkKICAg ICBNb3ZlIHBvaW50IHRvIHRoZSBuZXh0IGVudHJ5ICjigJh2Yy1kaXItbmV4dC1saW5l4oCZKS4K CuKAmHDigJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBwcmV2aW91cyBlbnRyeSAo4oCYdmMtZGly LXByZXZpb3VzLWxpbmXigJkpLgoK4oCYPFRBQj7igJkKICAgICBNb3ZlIHRvIHRoZSBuZXh0IGRp cmVjdG9yeSBlbnRyeSAo4oCYdmMtZGlyLW5leHQtZGlyZWN0b3J54oCZKS4KCuKAmFMtPFRBQj7i gJkKICAgICBNb3ZlIHRvIHRoZSBwcmV2aW91cyBkaXJlY3RvcnkgZW50cnkgKOKAmHZjLWRpci1w cmV2aW91cy1kaXJlY3RvcnnigJkpLgoK4oCYPFJFVD7igJkK4oCYZuKAmQogICAgIFZpc2l0IHRo ZSBmaWxlIG9yIGRpcmVjdG9yeSBsaXN0ZWQgb24gdGhlIGN1cnJlbnQgbGluZQogICAgICjigJh2 Yy1kaXItZmluZC1maWxl4oCZKS4KCuKAmG/igJkKICAgICBWaXNpdCB0aGUgZmlsZSBvciBkaXJl Y3Rvcnkgb24gdGhlIGN1cnJlbnQgbGluZSwgaW4gYSBzZXBhcmF0ZQogICAgIHdpbmRvdyAo4oCY dmMtZGlyLWZpbmQtZmlsZS1vdGhlci13aW5kb3figJkpLgoK4oCYbeKAmQogICAgIE1hcmsgdGhl IGZpbGUgb3IgZGlyZWN0b3J5IG9uIHRoZSBjdXJyZW50IGxpbmUgKOKAmHZjLWRpci1tYXJr4oCZ KSwKICAgICBwdXR0aW5nIGl0IGluIHRoZSBjdXJyZW50IFZDIGZpbGVzZXQuICBJZiB0aGUgcmVn aW9uIGlzIGFjdGl2ZSwKICAgICBtYXJrIGFsbCBmaWxlcyBpbiB0aGUgcmVnaW9uLgoKICAgICBB IGZpbGUgY2Fubm90IGJlIG1hcmtlZCB3aXRoIHRoaXMgY29tbWFuZCBpZiBpdCBpcyBhbHJlYWR5 IGluIGEKICAgICBtYXJrZWQgZGlyZWN0b3J5LCBvciBvbmUgb2YgaXRzIHN1YmRpcmVjdG9yaWVz LiAgU2ltaWxhcmx5LCBhCiAgICAgZGlyZWN0b3J5IGNhbm5vdCBiZSBtYXJrZWQgd2l0aCB0aGlz IGNvbW1hbmQgaWYgYW55IGZpbGUgaW4gaXRzCiAgICAgdHJlZSBpcyBtYXJrZWQuCgrigJhN4oCZ CiAgICAgSWYgcG9pbnQgaXMgb24gYSBmaWxlIGVudHJ5LCBtYXJrIGFsbCBmaWxlcyB3aXRoIHRo ZSBzYW1lIHN0YXR1czsKICAgICBpZiBwb2ludCBpcyBvbiBhIGRpcmVjdG9yeSBlbnRyeSwgbWFy ayBhbGwgZmlsZXMgaW4gdGhhdCBkaXJlY3RvcnkKICAgICB0cmVlICjigJh2Yy1kaXItbWFyay1h bGwtZmlsZXPigJkpLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgbWFyayBhbGwKICAgICBsaXN0 ZWQgZmlsZXMgYW5kIGRpcmVjdG9yaWVzLgoK4oCYceKAmQogICAgIFF1aXQgdGhlIFZDIERpcmVj dG9yeSBidWZmZXIsIGFuZCBidXJ5IGl0ICjigJhxdWl0LXdpbmRvd+KAmSkuCgrigJh14oCZCiAg ICAgVW5tYXJrIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSBvbiB0aGUgY3VycmVudCBsaW5lLiAgSWYg dGhlIHJlZ2lvbiBpcwogICAgIGFjdGl2ZSwgdW5tYXJrIGFsbCB0aGUgZmlsZXMgaW4gdGhlIHJl Z2lvbiAo4oCYdmMtZGlyLXVubWFya+KAmSkuCgrigJhV4oCZCiAgICAgSWYgcG9pbnQgaXMgb24g YSBmaWxlIGVudHJ5LCB1bm1hcmsgYWxsIGZpbGVzIHdpdGggdGhlIHNhbWUgc3RhdHVzOwogICAg IGlmIHBvaW50IGlzIG9uIGEgZGlyZWN0b3J5IGVudHJ5LCB1bm1hcmsgYWxsIGZpbGVzIGluIHRo YXQKICAgICBkaXJlY3RvcnkgdHJlZSAo4oCYdmMtZGlyLXVubWFyay1hbGwtZmlsZXPigJkpLiAg V2l0aCBhIHByZWZpeAogICAgIGFyZ3VtZW50LCB1bm1hcmsgYWxsIGZpbGVzIGFuZCBkaXJlY3Rv cmllcy4KCuKAmHjigJkKICAgICBIaWRlIGZpbGVzIHdpdGgg4oCYdXAtdG8tZGF0ZeKAmSBvciDi gJhpZ25vcmVk4oCZIHN0YXR1cwogICAgICjigJh2Yy1kaXItaGlkZS11cC10by1kYXRl4oCZKS4g IFdpdGggYSBwcmVmaXggYXJndW1lbnQsIGhpZGUgaXRlbXMKICAgICB3aG9zZSBzdGF0ZSBpcyB0 aGF0IG9mIHRoZSBpdGVtIGF0IHBvaW50LgoKICAgV2hpbGUgaW4gdGhlIFZDIERpcmVjdG9yeSBi dWZmZXIsIGFsbCB0aGUgZmlsZXMgdGhhdCB5b3UgbWFyayB3aXRoCuKAmG3igJkgKOKAmHZjLWRp ci1tYXJr4oCZKSBvciDigJhN4oCZICjigJh2Yy1kaXItbWFyay1hbGwtZmlsZXPigJkpIGFyZSBp biB0aGUgY3VycmVudApWQyBmaWxlc2V0LiAgSWYgeW91IG1hcmsgYSBkaXJlY3RvcnkgZW50cnkg d2l0aCDigJht4oCZLCBhbGwgdGhlIGxpc3RlZApmaWxlcyBpbiB0aGF0IGRpcmVjdG9yeSB0cmVl IGFyZSBpbiB0aGUgY3VycmVudCBWQyBmaWxlc2V0LiAgVGhlIGZpbGVzCmFuZCBkaXJlY3Rvcmll cyB0aGF0IGJlbG9uZyB0byB0aGUgY3VycmVudCBWQyBmaWxlc2V0IGFyZSBpbmRpY2F0ZWQgd2l0 aAphIOKAmCrigJkgY2hhcmFjdGVyIGluIHRoZSBWQyBEaXJlY3RvcnkgYnVmZmVyLCBuZXh0IHRv IHRoZWlyIFZDIHN0YXR1cy4gIEluCnRoaXMgd2F5LCB5b3UgY2FuIHNldCB1cCBhIG11bHRpLWZp bGUgVkMgZmlsZXNldCB0byBiZSBhY3RlZCBvbiBieSBWQwpjb21tYW5kcyBsaWtlIOKAmEMteCB2 IHbigJkgKCpub3RlIEJhc2ljIFZDIEVkaXRpbmc6OiksIOKAmEMteCB2ID3igJkgKCpub3RlIE9s ZApSZXZpc2lvbnM6OiksIGFuZCDigJhDLXggdiB14oCZICgqbm90ZSBWQyBVbmRvOjopLgoKICAg VGhlIFZDIERpcmVjdG9yeSBidWZmZXIgYWxzbyBkZWZpbmVzIHNvbWUgc2luZ2xlLWtleSBzaG9y dGN1dHMgZm9yIFZDCmNvbW1hbmRzIHdpdGggdGhlIOKAmEMteCB24oCZIHByZWZpeDog4oCYPeKA mSwg4oCYK+KAmSwg4oCYbOKAmSwg4oCYaeKAmSwg4oCYROKAmSwg4oCYTOKAmSwg4oCYR+KAmSwK 4oCYSeKAmSwg4oCYT+KAmSwgYW5kIOKAmHbigJkuCgogICBGb3IgZXhhbXBsZSwgeW91IGNhbiBj b21taXQgYSBzZXQgb2YgZWRpdGVkIGZpbGVzIGJ5IG9wZW5pbmcgYSBWQwpEaXJlY3RvcnkgYnVm ZmVyLCB3aGVyZSB0aGUgZmlsZXMgYXJlIGxpc3RlZCB3aXRoIHRoZSDigJhlZGl0ZWTigJkgc3Rh dHVzOwptYXJraW5nIHRoZSBmaWxlczsgYW5kIHR5cGluZyDigJh24oCZIG9yIOKAmEMteCB2IHbi gJkgKOKAmHZjLW5leHQtYWN0aW9u4oCZKS4gIElmCnRoZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVt IGlzIGNoYW5nZXNldC1iYXNlZCwgRW1hY3Mgd2lsbCBjb21taXQgdGhlCmZpbGVzIGluIGEgc2lu Z2xlIHJldmlzaW9uLgoKICAgV2hpbGUgaW4gdGhlIFZDIERpcmVjdG9yeSBidWZmZXIsIHlvdSBj YW4gYWxzbyBwZXJmb3JtIHNlYXJjaCBhbmQKcmVwbGFjZSBvbiB0aGUgY3VycmVudCBWQyBmaWxl c2V0LCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CgrigJhT4oCZCiAgICAgU2VhcmNoIHRo ZSBmaWxlc2V0ICjigJh2Yy1kaXItc2VhcmNo4oCZKS4KCuKAmFHigJkKICAgICBEbyBhIHJlZ3Vs YXIgZXhwcmVzc2lvbiBxdWVyeSByZXBsYWNlIG9uIHRoZSBmaWxlc2V0CiAgICAgKOKAmHZjLWRp ci1xdWVyeS1yZXBsYWNlLXJlZ2V4cOKAmSkuCgrigJhNLXMgYSBDLXPigJkKICAgICBEbyBhbiBp bmNyZW1lbnRhbCBzZWFyY2ggb24gdGhlIGZpbGVzZXQgKOKAmHZjLWRpci1pc2VhcmNo4oCZKS4K CuKAmE0tcyBhIEMtTS1z4oCZCiAgICAgRG8gYW4gaW5jcmVtZW50YWwgcmVndWxhciBleHByZXNz aW9uIHNlYXJjaCBvbiB0aGUgZmlsZXNldAogICAgICjigJh2Yy1kaXItaXNlYXJjaC1yZWdleHDi gJkpLgoKQXBhcnQgZnJvbSBhY3Rpbmcgb24gbXVsdGlwbGUgZmlsZXMsIHRoZXNlIGNvbW1hbmRz IGJlaGF2ZSBtdWNoIGxpa2UKdGhlaXIgc2luZ2xlLWJ1ZmZlciBjb3VudGVycGFydHMgKCpub3Rl IFNlYXJjaDo6KS4KCiAgIFRoZSBWQyBEaXJlY3RvcnkgYnVmZmVyIGFkZGl0aW9uYWxseSBkZWZp bmVzIHNvbWUgYnJhbmNoLXJlbGF0ZWQKY29tbWFuZHMgc3RhcnRpbmcgd2l0aCB0aGUgcHJlZml4 IOKAmELigJk6CgrigJhCIGPigJkKICAgICBDcmVhdGUgYSBuZXcgYnJhbmNoICjigJh2Yy1jcmVh dGUtdGFn4oCZKS4KCuKAmEIgbOKAmQogICAgIFByb21wdCBmb3IgdGhlIG5hbWUgb2YgYSBicmFu Y2ggYW5kIGRpc3BsYXkgdGhlIGNoYW5nZSBoaXN0b3J5IG9mCiAgICAgdGhhdCBicmFuY2ggKOKA mHZjLXByaW50LWJyYW5jaC1sb2figJkpLgoK4oCYQiBz4oCZCiAgICAgU3dpdGNoIHRvIGEgYnJh bmNoICjigJh2Yy1yZXRyaWV2ZS10YWfigJkpLiAgKk5vdGUgU3dpdGNoaW5nCiAgICAgQnJhbmNo ZXM6Oi4KCiAgIFRoZSBhYm92ZSBjb21tYW5kcyBhcmUgYWxzbyBhdmFpbGFibGUgdmlhIHRoZSBt ZW51IGJhciwgYW5kIHZpYSBhCmNvbnRleHQgbWVudSBpbnZva2VkIGJ5IOKAmG1vdXNlLTLigJku ICBGdXJ0aGVybW9yZSwgc29tZSBWQyBiYWNrZW5kcyB1c2UKdGhlIG1lbnUgdG8gcHJvdmlkZSBl eHRyYSBiYWNrZW5kLXNwZWNpZmljIGNvbW1hbmRzLiAgRm9yIGV4YW1wbGUsIEdpdAphbmQgQmF6 YWFyIGFsbG93IHlvdSB0byBtYW5pcHVsYXRlICJzdGFzaGVzIiBhbmQgInNoZWx2ZXMiICh3aGlj aCBhcmUgYQp3YXkgdG8gdGVtcG9yYXJpbHkgcHV0IGFzaWRlIHVuY29tbWl0dGVkIGNoYW5nZXMs IGFuZCBicmluZyB0aGVtIGJhY2sgYXQKYSBsYXRlciB0aW1lKS4KCgoqKiogMjguMS4xMSBWZXJz aW9uIENvbnRyb2wgQnJhbmNoZXMKCk9uZSB1c2Ugb2YgdmVyc2lvbiBjb250cm9sIGlzIHRvIHN1 cHBvcnQgbXVsdGlwbGUgaW5kZXBlbmRlbnQgbGluZXMgb2YKZGV2ZWxvcG1lbnQsIHdoaWNoIGFy ZSBjYWxsZWQgImJyYW5jaGVzIi4gIEFtb25nc3Qgb3RoZXIgdGhpbmdzLApicmFuY2hlcyBjYW4g YmUgdXNlZCBmb3IgbWFpbnRhaW5pbmcgc2VwYXJhdGUgc3RhYmxlIGFuZCBkZXZlbG9wbWVudAp2 ZXJzaW9ucyBvZiBhIHByb2dyYW0sIGFuZCBmb3IgZGV2ZWxvcGluZyB1bnJlbGF0ZWQgZmVhdHVy ZXMgaW4KaXNvbGF0aW9uIGZyb20gb25lIGFub3RoZXIuCgogICBWQ+KAmXMgc3VwcG9ydCBmb3Ig YnJhbmNoIG9wZXJhdGlvbnMgaXMgY3VycmVudGx5IGZhaXJseSBsaW1pdGVkLiAgRm9yCmRlY2Vu dHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMsIGl0IHByb3ZpZGVzIGNvbW1hbmRzIGZv cgoidXBkYXRpbmciIG9uZSBicmFuY2ggd2l0aCB0aGUgY29udGVudHMgb2YgYW5vdGhlciwgYW5k IGZvciAibWVyZ2luZyIKdGhlIGNoYW5nZXMgbWFkZSB0byB0d28gZGlmZmVyZW50IGJyYW5jaGVz ICgqbm90ZSBNZXJnaW5nOjopLiAgRm9yCmNlbnRyYWxpemVkIHZlcnNpb24gY29udHJvbCBzeXN0 ZW1zLCBpdCBzdXBwb3J0cyBjaGVja2luZyBvdXQgZGlmZmVyZW50CmJyYW5jaGVzIGFuZCBjb21t aXR0aW5nIGludG8gbmV3IG9yIGRpZmZlcmVudCBicmFuY2hlcy4KCisgTWVudToKCiAgLSBTd2l0 Y2hpbmcgQnJhbmNoZXM6OiAgICBIb3cgdG8gZ2V0IHRvIGFub3RoZXIgZXhpc3RpbmcgYnJhbmNo LgogIC0gUHVsbGluZyAvIFB1c2hpbmc6OiAgICAgUmVjZWl2aW5nL3NlbmRpbmcgY2hhbmdlcyBm cm9tL3RvIGVsc2V3aGVyZS4KICAtIE1lcmdpbmc6OiAgICAgICAgICAgICAgIFRyYW5zZmVycmlu ZyBjaGFuZ2VzIGJldHdlZW4gYnJhbmNoZXMuCiAgLSBDcmVhdGluZyBCcmFuY2hlczo6ICAgICBI b3cgdG8gc3RhcnQgYSBuZXcgYnJhbmNoLgoKCioqKiogMjguMS4xMS4xIFN3aXRjaGluZyBiZXR3 ZWVuIEJyYW5jaGVzCgpUaGUgdmFyaW91cyB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyBkaWZmZXIg aW4gaG93IGJyYW5jaGVzIGFyZQppbXBsZW1lbnRlZCwgYW5kIHRoZXNlIGRpZmZlcmVuY2VzIGNh bm5vdCBiZSBlbnRpcmVseSBjb25jZWFsZWQgYnkgVkMuCgogICBPbiBzb21lIGRlY2VudHJhbGl6 ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMsIGluY2x1ZGluZyBCYXphYXIgYW5kCk1lcmN1cmlh bCBpbiBpdHMgbm9ybWFsIG1vZGUgb2Ygb3BlcmF0aW9uLCBlYWNoIGJyYW5jaCBoYXMgaXRzIG93 bgp3b3JraW5nIGRpcmVjdG9yeSB0cmVlLCBzbyBzd2l0Y2hpbmcgYmV0d2VlbiBicmFuY2hlcyBq dXN0IGludm9sdmVzCnN3aXRjaGluZyBkaXJlY3Rvcmllcy4gIE9uIEdpdCwgYnJhbmNoZXMgYXJl IG5vcm1hbGx5ICJjby1sb2NhdGVkIiBpbgp0aGUgc2FtZSBkaXJlY3RvcnksIGFuZCBzd2l0Y2hp bmcgYmV0d2VlbiBicmFuY2hlcyBpcyBkb25lIHVzaW5nIHRoZQrigJhnaXQgY2hlY2tvdXTigJkg Y29tbWFuZCwgd2hpY2ggY2hhbmdlcyB0aGUgY29udGVudHMgb2YgdGhlIHdvcmtpbmcgdHJlZQp0 byBtYXRjaCB0aGUgYnJhbmNoIHlvdSBzd2l0Y2ggdG8uICBCYXphYXIgYWxzbyBzdXBwb3J0cyBj by1sb2NhdGVkCmJyYW5jaGVzLCBpbiB3aGljaCBjYXNlIHRoZSDigJhienIgc3dpdGNo4oCZIGNv bW1hbmQgd2lsbCBzd2l0Y2ggYnJhbmNoZXMgaW4KdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiAgV2l0 aCBTdWJ2ZXJzaW9uLCB5b3Ugc3dpdGNoIHRvIGFub3RoZXIgYnJhbmNoCnVzaW5nIHRoZSDigJhz dm4gc3dpdGNo4oCZIGNvbW1hbmQuCgogICBUaGUgVkMgY29tbWFuZCB0byBzd2l0Y2ggdG8gYW5v dGhlciBicmFuY2ggaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5CmlzIOKAmEMteCB2IHIgQlJBTkNI LU5BTUUgPFJFVD7igJkgKOKAmHZjLXJldHJpZXZlLXRhZ+KAmSkuCgogICBPbiBjZW50cmFsaXpl ZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcywgeW91IGNhbiBhbHNvIHN3aXRjaCBiZXR3ZWVuCmJy YW5jaGVzIGJ5IHR5cGluZyDigJhDLXUgQy14IHYgduKAmSBpbiBhbiB1cC10by1kYXRlIHdvcmsg ZmlsZSAoKm5vdGUKQWR2YW5jZWQgQy14IHYgdjo6KSwgYW5kIGVudGVyaW5nIHRoZSByZXZpc2lv biBJRCBmb3IgYSByZXZpc2lvbiBvbgphbm90aGVyIGJyYW5jaC4gIE9uIENWUywgZm9yIGluc3Rh bmNlLCByZXZpc2lvbnMgb24gdGhlICJ0cnVuayIgKHRoZQptYWluIGxpbmUgb2YgZGV2ZWxvcG1l bnQpIG5vcm1hbGx5IGhhdmUgSURzIG9mIHRoZSBmb3JtIDEuMSwgMS4yLCAxLjMsCuKApiwgd2hp bGUgdGhlIGZpcnN0IGJyYW5jaCBjcmVhdGVkIGZyb20gKHNheSkgcmV2aXNpb24gMS4yIGhhcyBy ZXZpc2lvbgpJRHMgMS4yLjEuMSwgMS4yLjEuMiwg4oCmLCB0aGUgc2Vjb25kIGJyYW5jaCBjcmVh dGVkIGZyb20gcmV2aXNpb24gMS4yIGhhcwpyZXZpc2lvbiBJRHMgMS4yLjIuMSwgMS4yLjIuMiwg 4oCmLCBhbmQgc28gZm9ydGguICBZb3UgY2FuIGFsc28gc3BlY2lmeQp0aGUgImJyYW5jaCBJRCIs IHdoaWNoIGlzIGEgYnJhbmNoIHJldmlzaW9uIElEIG9taXR0aW5nIGl0cyBmaW5hbApjb21wb25l bnQgKGUuZy4sIDEuMi4xKSwgdG8gc3dpdGNoIHRvIHRoZSBsYXRlc3QgcmV2aXNpb24gb24gdGhh dApicmFuY2guCgogICBPbiBhIGxvY2tpbmctYmFzZWQgc3lzdGVtLCBzd2l0Y2hpbmcgdG8gYSBk aWZmZXJlbnQgYnJhbmNoIGFsc28KdW5sb2NrcyAod3JpdGUtcHJvdGVjdHMpIHRoZSB3b3JraW5n IHRyZWUuCgogICBPbmNlIHlvdSBoYXZlIHN3aXRjaGVkIHRvIGEgYnJhbmNoLCBWQyBjb21tYW5k cyB3aWxsIGFwcGx5IHRvIHRoYXQKYnJhbmNoIHVudGlsIHlvdSBzd2l0Y2ggYXdheTsgZm9yIGlu c3RhbmNlLCBhbnkgVkMgZmlsZXNldHMgdGhhdCB5b3UKY29tbWl0IHdpbGwgYmUgY29tbWl0dGVk IHRvIHRoYXQgc3BlY2lmaWMgYnJhbmNoLgoKCioqKiogMjguMS4xMS4yIFB1bGxpbmcvUHVzaGlu ZyBDaGFuZ2VzIGludG8vZnJvbSBhIEJyYW5jaAoK4oCYQy14IHYgUOKAmQogICAgIE9uIGEgZGVj ZW50cmFsaXplZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLCB1cGRhdGUgYW5vdGhlciBsb2NhdGlv bgogICAgIHdpdGggY2hhbmdlcyBmcm9tIHRoZSBjdXJyZW50IGJyYW5jaCAoYS5rLmEuICDigJxw dXNo4oCdIGNoYW5nZXMpLgogICAgIFRoaXMgY29uY2VwdCBkb2VzIG5vdCBleGlzdCBmb3IgY2Vu dHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbXMKCuKAmEMteCB2ICvigJkKICAgICBPbiBh IGRlY2VudHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgdXBkYXRlIHRoZSBjdXJyZW50 CiAgICAgYnJhbmNoIGJ5IOKAnHB1bGxpbmcgaW7igJ0gY2hhbmdlcyBmcm9tIGFub3RoZXIgbG9j YXRpb24uCgogICAgIE9uIGEgY2VudHJhbGl6ZWQgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgdXBk YXRlIHRoZSBjdXJyZW50IFZDCiAgICAgZmlsZXNldC4KCiAgIE9uIGEgZGVjZW50cmFsaXplZCB2 ZXJzaW9uIGNvbnRyb2wgc3lzdGVtLCB0aGUgY29tbWFuZCDigJhDLXggdiBQ4oCZCijigJh2Yy1w dXNo4oCZKSB1cGRhdGVzIGFub3RoZXIgbG9jYXRpb24gd2l0aCBjaGFuZ2VzIGZyb20gdGhlIGN1 cnJlbnQKYnJhbmNoLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgaXQgcHJvbXB0cyBmb3IgdGhl IGV4YWN0IHZlcnNpb24KY29udHJvbCBjb21tYW5kIHRvIHJ1biwgd2hpY2ggbGV0cyB5b3Ugc3Bl Y2lmeSB3aGVyZSB0byBwdXNoIGNoYW5nZXM7CnRoZSBkZWZhdWx0IGlzIOKAmGJ6ciBwdXNo4oCZ IHdpdGggQmF6YWFyLCDigJhnaXQgcHVzaOKAmSB3aXRoIEdpdCwgYW5kIOKAmGhnCnB1c2jigJkg d2l0aCBNZXJjdXJpYWwuICBUaGUgZGVmYXVsdCBjb21tYW5kcyBhbHdheXMgcHVzaCB0byBhIGRl ZmF1bHQKbG9jYXRpb24gZGV0ZXJtaW5lZCBieSB0aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbSBm cm9tIHlvdXIgYnJhbmNoCmNvbmZpZ3VyYXRpb24uCgogICBQcmlvciB0byBwdXNoaW5nLCB5b3Ug Y2FuIHVzZSDigJhDLXggdiBP4oCZICjigJh2Yy1sb2ctb3V0Z29pbmfigJkpIHRvIHZpZXcgYQps b2cgYnVmZmVyIG9mIHRoZSBjaGFuZ2VzIHRvIGJlIHNlbnQuICAqTm90ZSBWQyBDaGFuZ2UgTG9n OjouCgogICBUaGlzIGNvbW1hbmQgaXMgY3VycmVudGx5IHN1cHBvcnRlZCBvbmx5IGJ5IEJhemFh ciwgR2l0LCBhbmQKTWVyY3VyaWFsLiAgVGhlIGNvbmNlcHQgb2Yg4oCccHVzaGluZ+KAnSBkb2Vz IG5vdCBleGlzdCBmb3IgY2VudHJhbGl6ZWQKdmVyc2lvbiBjb250cm9sIHN5c3RlbXMsIHdoZXJl IHRoaXMgb3BlcmF0aW9uIGlzIGEgcGFydCBvZiBjb21taXR0aW5nIGEKY2hhbmdlc2V0LCBzbyBp bnZva2luZyB0aGlzIGNvbW1hbmQgb24gYSBjZW50cmFsaXplZCBWQ1Mgc2lnbmFscyBhbgplcnJv ci4gIFRoaXMgY29tbWFuZCBhbHNvIHNpZ25hbHMgYW4gZXJyb3Igd2hlbiBhdHRlbXB0ZWQgaW4g YSBCYXphYXIKImJvdW5kIGJyYW5jaCIsIHdoZXJlIGNvbW1pdHRpbmcgYSBjaGFuZ2VzZXQgYXV0 b21hdGljYWxseSBwdXNoZXMgdGhlCmNoYW5nZXMgdG8gdGhlIHJlbW90ZSByZXBvc2l0b3J5IHRv IHdoaWNoIHRoZSBsb2NhbCBicmFuY2ggaXMgYm91bmQuCgogICBPbiBhIGRlY2VudHJhbGl6ZWQg dmVyc2lvbiBjb250cm9sIHN5c3RlbSwgdGhlIGNvbW1hbmQg4oCYQy14IHYgK+KAmQoo4oCYdmMt cHVsbOKAmSkgdXBkYXRlcyB0aGUgY3VycmVudCBicmFuY2ggYW5kIHdvcmtpbmcgdHJlZS4gIEl0 IGlzCnR5cGljYWxseSB1c2VkIHRvIHVwZGF0ZSBhIGNvcHkgb2YgYSByZW1vdGUgYnJhbmNoLiAg SWYgeW91IHN1cHBseSBhCnByZWZpeCBhcmd1bWVudCwgdGhlIGNvbW1hbmQgcHJvbXB0cyBmb3Ig dGhlIGV4YWN0IHZlcnNpb24gY29udHJvbApjb21tYW5kIHRvIHVzZSwgd2hpY2ggbGV0cyB5b3Ug c3BlY2lmeSB3aGVyZSB0byBwdWxsIGNoYW5nZXMgZnJvbS4KT3RoZXJ3aXNlLCBpdCBwdWxscyBm cm9tIGEgZGVmYXVsdCBsb2NhdGlvbiBkZXRlcm1pbmVkIGJ5IHRoZSB2ZXJzaW9uCmNvbnRyb2wg c3lzdGVtLgoKICAgQW1vbmdzdCBkZWNlbnRyYWxpemVkIHZlcnNpb24gY29udHJvbCBzeXN0ZW1z LCDigJhDLXggdiAr4oCZIGlzIGN1cnJlbnRseQpzdXBwb3J0ZWQgb25seSBieSBCYXphYXIsIEdp dCwgYW5kIE1lcmN1cmlhbC4gIFdpdGggQmF6YWFyLCBpdCBjYWxscwrigJhienIgcHVsbOKAmSBm b3Igb3JkaW5hcnkgYnJhbmNoZXMgKHRvIHB1bGwgZnJvbSBhIG1hc3RlciBicmFuY2ggaW50byBh Cm1pcnJvcmluZyBicmFuY2gpLCBhbmQg4oCYYnpyIHVwZGF0ZeKAmSBmb3IgYSBib3VuZCBicmFu Y2ggKHRvIHB1bGwgZnJvbSBhCmNlbnRyYWwgcmVwb3NpdG9yeSkuICBXaXRoIEdpdCwgaXQgY2Fs bHMg4oCYZ2l0IHB1bGzigJkgdG8gZmV0Y2ggY2hhbmdlcwpmcm9tIGEgcmVtb3RlIHJlcG9zaXRv cnkgYW5kIG1lcmdlIGl0IGludG8gdGhlIGN1cnJlbnQgYnJhbmNoLiAgV2l0aApNZXJjdXJpYWws IGl0IGNhbGxzIOKAmGhnIHB1bGwgLXXigJkgdG8gZmV0Y2ggY2hhbmdlc2V0cyBmcm9tIHRoZSBk ZWZhdWx0CnJlbW90ZSByZXBvc2l0b3J5IGFuZCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5 LgoKICAgUHJpb3IgdG8gcHVsbGluZywgeW91IGNhbiB1c2Ug4oCYQy14IHYgSeKAmSAo4oCYdmMt bG9nLWluY29taW5n4oCZKSB0byB2aWV3IGEKbG9nIGJ1ZmZlciBvZiB0aGUgY2hhbmdlcyB0byBi ZSBhcHBsaWVkLiAgKk5vdGUgVkMgQ2hhbmdlIExvZzo6LgoKICAgT24gYSBjZW50cmFsaXplZCB2 ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIGxpa2UgQ1ZTLCDigJhDLXggdiAr4oCZIHVwZGF0ZXMKdGhl IGN1cnJlbnQgVkMgZmlsZXNldCBmcm9tIHRoZSByZXBvc2l0b3J5LgoKCioqKiogMjguMS4xMS4z IE1lcmdpbmcgQnJhbmNoZXMKCuKAmEMteCB2IG3igJkKICAgICBPbiBhIGRlY2VudHJhbGl6ZWQg dmVyc2lvbiBjb250cm9sIHN5c3RlbSwgbWVyZ2UgY2hhbmdlcyBmcm9tCiAgICAgYW5vdGhlciBi cmFuY2ggaW50byB0aGUgY3VycmVudCBvbmUuCgogICAgIE9uIGEgY2VudHJhbGl6ZWQgdmVyc2lv biBjb250cm9sIHN5c3RlbSwgbWVyZ2UgY2hhbmdlcyBmcm9tIGFub3RoZXIKICAgICBicmFuY2gg aW50byB0aGUgY3VycmVudCBWQyBmaWxlc2V0LgoKICAgV2hpbGUgZGV2ZWxvcGluZyBhIGJyYW5j aCwgeW91IG1heSBzb21ldGltZXMgbmVlZCB0byAibWVyZ2UiIGluCmNoYW5nZXMgdGhhdCBoYXZl IGFscmVhZHkgYmVlbiBtYWRlIGluIGFub3RoZXIgYnJhbmNoLiAgVGhpcyBpcyBub3QgYQp0cml2 aWFsIG9wZXJhdGlvbiwgYXMgb3ZlcmxhcHBpbmcgY2hhbmdlcyBtYXkgaGF2ZSBiZWVuIG1hZGUg dG8gdGhlIHR3bwpicmFuY2hlcy4KCiAgIE9uIGEgZGVjZW50cmFsaXplZCB2ZXJzaW9uIGNvbnRy b2wgc3lzdGVtLCBtZXJnaW5nIGlzIGRvbmUgd2l0aCB0aGUKY29tbWFuZCDigJhDLXggdiBt4oCZ ICjigJh2Yy1tZXJnZeKAmSkuICBPbiBCYXphYXIsIHRoaXMgcHJvbXB0cyBmb3IgdGhlIGV4YWN0 CmFyZ3VtZW50cyB0byBwYXNzIHRvIOKAmGJ6ciBtZXJnZeKAmSwgb2ZmZXJpbmcgYSBzZW5zaWJs ZSBkZWZhdWx0IGlmCnBvc3NpYmxlLiAgT24gR2l0LCB0aGlzIHByb21wdHMgZm9yIHRoZSBuYW1l IG9mIGEgYnJhbmNoIHRvIG1lcmdlIGZyb20sCndpdGggY29tcGxldGlvbiAoYmFzZWQgb24gdGhl IGJyYW5jaCBuYW1lcyBrbm93biB0byB0aGUgY3VycmVudApyZXBvc2l0b3J5KS4gIFRoZSBvdXRw dXQgZnJvbSBydW5uaW5nIHRoZSBtZXJnZSBjb21tYW5kIGlzIHNob3duIGluIGEKc2VwYXJhdGUg YnVmZmVyLgoKICAgT24gYSBjZW50cmFsaXplZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIGxpa2Ug Q1ZTLCDigJhDLXggdiBt4oCZIHByb21wdHMKZm9yIGEgYnJhbmNoIElELCBvciBhIHBhaXIgb2Yg cmV2aXNpb24gSURzICgqbm90ZSBTd2l0Y2hpbmcgQnJhbmNoZXM6Oik7CnRoZW4gaXQgZmluZHMg dGhlIGNoYW5nZXMgZnJvbSB0aGF0IGJyYW5jaCwgb3IgdGhlIGNoYW5nZXMgYmV0d2VlbiB0aGUK dHdvIHJldmlzaW9ucyB5b3Ugc3BlY2lmaWVkLCBhbmQgbWVyZ2VzIHRob3NlIGNoYW5nZXMgaW50 byB0aGUgY3VycmVudApWQyBmaWxlc2V0LiAgSWYgeW91IGp1c3QgdHlwZSDigJg8UkVUPuKAmSwg RW1hY3Mgc2ltcGx5IG1lcmdlcyBhbnkgY2hhbmdlcwp0aGF0IHdlcmUgbWFkZSBvbiB0aGUgc2Ft ZSBicmFuY2ggc2luY2UgeW91IGNoZWNrZWQgdGhlIGZpbGUgb3V0LgoKICAgSW1tZWRpYXRlbHkg YWZ0ZXIgcGVyZm9ybWluZyBhIG1lcmdlLCBvbmx5IHRoZSB3b3JraW5nIHRyZWUgaXMKbW9kaWZp ZWQsIGFuZCB5b3UgY2FuIHJldmlldyB0aGUgY2hhbmdlcyBwcm9kdWNlZCBieSB0aGUgbWVyZ2Ug d2l0aCDigJhDLXgKdiBE4oCZIGFuZCByZWxhdGVkIGNvbW1hbmRzICgqbm90ZSBPbGQgUmV2aXNp b25zOjopLiAgSWYgdGhlIHR3byBicmFuY2hlcwpjb250YWluZWQgb3ZlcmxhcHBpbmcgY2hhbmdl cywgbWVyZ2luZyBwcm9kdWNlcyBhICJjb25mbGljdCI7IGEgd2FybmluZwphcHBlYXJzIGluIHRo ZSBvdXRwdXQgb2YgdGhlIG1lcmdlIGNvbW1hbmQsIGFuZCAiY29uZmxpY3QgbWFya2VycyIgYXJl Cmluc2VydGVkIGludG8gZWFjaCBhZmZlY3RlZCB3b3JrIGZpbGUsIHN1cnJvdW5kaW5nIHRoZSB0 d28gc2V0cyBvZgpjb25mbGljdGluZyBjaGFuZ2VzLiAgWW91IG11c3QgdGhlbiByZXNvbHZlIHRo ZSBjb25mbGljdCBieSBlZGl0aW5nIHRoZQpjb25mbGljdGVkIGZpbGVzLiAgT25jZSB5b3UgYXJl IGRvbmUsIHRoZSBtb2RpZmllZCBmaWxlcyBtdXN0IGJlCmNvbW1pdHRlZCBpbiB0aGUgdXN1YWwg d2F5IGZvciB0aGUgbWVyZ2UgdG8gdGFrZSBlZmZlY3QgKCpub3RlIEJhc2ljIFZDCkVkaXRpbmc6 OikuCgoKKioqKiAyOC4xLjExLjQgQ3JlYXRpbmcgTmV3IEJyYW5jaGVzCgpPbiBjZW50cmFsaXpl ZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyBsaWtlIENWUywgRW1hY3Mgc3VwcG9ydHMgY3JlYXRp bmcKbmV3IGJyYW5jaGVzIGFzIHBhcnQgb2YgYSBjb21taXQgb3BlcmF0aW9uLiAgV2hlbiBjb21t aXR0aW5nIGEgbW9kaWZpZWQKVkMgZmlsZXNldCwgdHlwZSDigJhDLXUgQy14IHYgduKAmSAo4oCY dmMtbmV4dC1hY3Rpb27igJkgd2l0aCBhIHByZWZpeCBhcmd1bWVudDsKKm5vdGUgQWR2YW5jZWQg Qy14IHYgdjo6KS4gIFRoZW4gRW1hY3MgcHJvbXB0cyBmb3IgYSByZXZpc2lvbiBJRCBmb3IgdGhl Cm5ldyByZXZpc2lvbi4gIFlvdSBzaG91bGQgc3BlY2lmeSBhIHN1aXRhYmxlIGJyYW5jaCBJRCBm b3IgYSBicmFuY2gKc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgcmV2aXNpb24uICBGb3IgZXhhbXBs ZSwgaWYgdGhlIGN1cnJlbnQgcmV2aXNpb24KaXMgMi41LCB0aGUgYnJhbmNoIElEIHNob3VsZCBi ZSAyLjUuMSwgMi41LjIsIGFuZCBzbyBvbiwgZGVwZW5kaW5nIG9uCnRoZSBudW1iZXIgb2YgZXhp c3RpbmcgYnJhbmNoZXMgYXQgdGhhdCBwb2ludC4KCiAgIFRvIGNyZWF0ZSBhIG5ldyBicmFuY2gg YXQgYW4gb2xkZXIgcmV2aXNpb24gKG9uZSB0aGF0IGlzIG5vIGxvbmdlcgp0aGUgaGVhZCBvZiBh IGJyYW5jaCksIGZpcnN0IHNlbGVjdCB0aGF0IHJldmlzaW9uICgqbm90ZSBTd2l0Y2hpbmcKQnJh bmNoZXM6OikuICBZb3VyIHByb2NlZHVyZSB3aWxsIHRoZW4gZGlmZmVyIGRlcGVuZGluZyBvbiB3 aGV0aGVyIHlvdQphcmUgdXNpbmcgYSBsb2NraW5nIG9yIG1lcmdpbmctYmFzZWQgVkNTLgoKICAg T24gYSBsb2NraW5nIFZDUywgeW91IHdpbGwgbmVlZCB0byBsb2NrIHRoZSBvbGQgcmV2aXNpb24g YnJhbmNoIHdpdGgK4oCYQy14IHYgduKAmS4gIFlvdeKAmWxsIGJlIGFza2VkIHRvIGNvbmZpcm0s IHdoZW4geW91IGxvY2sgdGhlIG9sZCByZXZpc2lvbiwKdGhhdCB5b3UgcmVhbGx5IG1lYW4gdG8g Y3JlYXRlIGEgbmV3IGJyYW5jaOKAlGlmIHlvdSBzYXkgbm8sIHlvdeKAmWxsIGJlCm9mZmVyZWQg YSBjaGFuY2UgdG8gbG9jayB0aGUgbGF0ZXN0IHJldmlzaW9uIGluc3RlYWQuICBPbiBhCm1lcmdp bmctYmFzZWQgVkNTIHlvdSB3aWxsIHNraXAgdGhpcyBzdGVwLgoKICAgVGhlbiBtYWtlIHlvdXIg Y2hhbmdlcyBhbmQgdHlwZSDigJhDLXggdiB24oCZIGFnYWluIHRvIGNvbW1pdCBhIG5ldwpyZXZp c2lvbi4gIFRoaXMgY3JlYXRlcyBhIG5ldyBicmFuY2ggc3RhcnRpbmcgZnJvbSB0aGUgc2VsZWN0 ZWQKcmV2aXNpb24uCgogICBBZnRlciB0aGUgYnJhbmNoIGlzIGNyZWF0ZWQsIHN1YnNlcXVlbnQg Y29tbWl0cyBjcmVhdGUgbmV3IHJldmlzaW9ucwpvbiB0aGF0IGJyYW5jaC4gIFRvIGxlYXZlIHRo ZSBicmFuY2gsIHlvdSBtdXN0IGV4cGxpY2l0bHkgc2VsZWN0IGEKZGlmZmVyZW50IHJldmlzaW9u IHdpdGgg4oCYQy11IEMteCB2IHbigJkuCgoKKioqIDI4LjEuMTIgTWlzY2VsbGFuZW91cyBDb21t YW5kcyBhbmQgRmVhdHVyZXMgb2YgVkMKClRoaXMgc2VjdGlvbiBleHBsYWlucyB0aGUgbGVzcy1m cmVxdWVudGx5LXVzZWQgZmVhdHVyZXMgb2YgVkMuCgorIE1lbnU6CgogIC0gQ2hhbmdlIExvZ3Mg YW5kIFZDOjogIEdlbmVyYXRpbmcgYSBjaGFuZ2UgbG9nIGZpbGUgZnJvbSBsb2cgZW50cmllcy4K ICAtIFZDIERlbGV0ZS9SZW5hbWU6OiAgICBEZWxldGluZyBhbmQgcmVuYW1pbmcgdmVyc2lvbi1j b250cm9sbGVkIGZpbGVzLgogIC0gUmV2aXNpb24gVGFnczo6ICAgICAgIFN5bWJvbGljIG5hbWVz IGZvciByZXZpc2lvbnMuCiAgLSBWZXJzaW9uIEhlYWRlcnM6OiAgICAgSW5zZXJ0aW5nIHZlcnNp b24gY29udHJvbCBoZWFkZXJzIGludG8gd29ya2luZyBmaWxlcy4KCgoqKioqIDI4LjEuMTIuMSBD aGFuZ2UgTG9ncyBhbmQgVkMKCklmIHlvdSB1c2UgUkNTIG9yIENWUyBmb3IgYSBwcm9ncmFtIHdp dGggYSDigJhDaGFuZ2VMb2figJkgZmlsZSAoKm5vdGUKQ2hhbmdlIExvZzo6KSwgeW91IGNhbiBn ZW5lcmF0ZSBjaGFuZ2UgbG9nIGVudHJpZXMgZnJvbSB0aGUgdmVyc2lvbgpjb250cm9sIGxvZyBl bnRyaWVzIG9mIHByZXZpb3VzIGNvbW1pdHMuCgogICBOb3RlIHRoYXQgdGhpcyBvbmx5IHdvcmtz IHdpdGggUkNTIG9yIENWUy4gIFRoaXMgcHJvY2VkdXJlIHdvdWxkIGJlCnBhcnRpY3VsYXJseSBp bmNvcnJlY3Qgb24gYSBtb2Rlcm4gY2hhbmdlc2V0LWJhc2VkIHZlcnNpb24gY29udHJvbApzeXN0 ZW0sIHdoZXJlIGNoYW5nZXMgdG8gdGhlIOKAmENoYW5nZUxvZ+KAmSBmaWxlIHdvdWxkIG5vcm1h bGx5IGJlCmNvbW1pdHRlZCBhcyBwYXJ0IG9mIGEgY2hhbmdlc2V0LiAgSW4gdGhhdCBjYXNlLCB5 b3Ugc2hvdWxkIHdyaXRlIHRoZQpjaGFuZ2UgbG9nIGVudHJpZXMgZmlyc3QsIHRoZW4gcHVsbCB0 aGVtIGludG8gdGhlIOKAmCp2Yy1sb2cq4oCZIGJ1ZmZlciB3aGVuCnlvdSBjb21taXQgKCpub3Rl IExvZyBCdWZmZXI6OikuCgrigJhDLXggdiBh4oCZCiAgICAgVmlzaXQgdGhlIGN1cnJlbnQgZGly ZWN0b3J54oCZcyDigJhDaGFuZ2VMb2figJkgZmlsZSBhbmQsIGZvciByZWdpc3RlcmVkCiAgICAg ZmlsZXMgaW4gdGhhdCBkaXJlY3RvcnksIGNyZWF0ZSBuZXcgZW50cmllcyBmb3IgdmVyc2lvbnMg Y29tbWl0dGVkCiAgICAgc2luY2UgdGhlIG1vc3QgcmVjZW50IGNoYW5nZSBsb2cgZW50cnkgKOKA mHZjLXVwZGF0ZS1jaGFuZ2UtbG9n4oCZKS4KCuKAmEMtdSBDLXggdiBh4oCZCiAgICAgQXMgYWJv dmUsIGJ1dCBvbmx5IGZpbmQgZW50cmllcyBmb3IgdGhlIGN1cnJlbnQgYnVmZmVy4oCZcyBmaWxl LgoKICAgRm9yIGV4YW1wbGUsIHN1cHBvc2UgdGhlIGZpcnN0IGxpbmUgb2Yg4oCYQ2hhbmdlTG9n 4oCZIGlzIGRhdGVkCjE5OTktMDQtMTAsIGFuZCB0aGF0IHRoZSBvbmx5IGNoZWNrLWluIHNpbmNl IHRoZW4gd2FzIGJ5IE5hdGhhbmllbApCb3dkaXRjaCB0byDigJhyY3MybG9n4oCZIG9uIDE5OTkt MDUtMjIgd2l0aCBsb2cgZW50cnkg4oCYSWdub3JlIGxvZyBtZXNzYWdlcwp0aGF0IHN0YXJ0IHdp dGggJyMnLuKAmS4gIFRoZW4g4oCYQy14IHYgYeKAmSBpbnNlcnRzIHRoaXMg4oCYQ2hhbmdlTG9n 4oCZIGVudHJ5OgoKICAgICAxOTk5LTA1LTIyICBOYXRoYW5pZWwgQm93ZGl0Y2ggIDxuYXRAYXBu Lm9yZz4KCiAgICAgICAgICAgICAqIHJjczJsb2c6IElnbm9yZSBsb2cgbWVzc2FnZXMgdGhhdCBz dGFydCB3aXRoICcjJy4KCklmIHRoZSB2ZXJzaW9uIGNvbnRyb2wgbG9nIGVudHJ5IHNwZWNpZmll cyBhIGZ1bmN0aW9uIG5hbWUgKGluCnBhcmVudGhlc2lzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBs aW5lKSwgdGhhdCBpcyByZWZsZWN0ZWQgaW4gdGhlCuKAmENoYW5nZUxvZ+KAmSBlbnRyeS4gIEZv ciBleGFtcGxlLCBpZiBhIGxvZyBlbnRyeSBmb3Ig4oCYdmMuZWzigJkgaXMK4oCYKHZjLWRvLWNv bW1hbmQpOiBDaGVjayBjYWxsLXByb2Nlc3Mgc3RhdHVzLuKAmSwgdGhlIOKAmENoYW5nZUxvZ+KA mSBlbnRyeSBpczoKCiAgICAgMTk5OS0wNS0wNiAgTmF0aGFuaWVsIEJvd2RpdGNoICA8bmF0QGFw bi5vcmc+CgogICAgICAgICAgICAgKiB2Yy5lbCAodmMtZG8tY29tbWFuZCk6IENoZWNrIGNhbGwt cHJvY2VzcyBzdGF0dXMuCgogICBXaGVuIOKAmEMteCB2IGHigJkgYWRkcyBzZXZlcmFsIGNoYW5n ZSBsb2cgZW50cmllcyBhdCBvbmNlLCBpdCBncm91cHMKcmVsYXRlZCBsb2cgZW50cmllcyB0b2dl dGhlciBpZiB0aGV5IGFsbCBhcmUgY2hlY2tlZCBpbiBieSB0aGUgc2FtZQphdXRob3IgYXQgbmVh cmx5IHRoZSBzYW1lIHRpbWUuICBJZiB0aGUgbG9nIGVudHJpZXMgZm9yIHNldmVyYWwgc3VjaApm aWxlcyBhbGwgaGF2ZSB0aGUgc2FtZSB0ZXh0LCBpdCBjb2FsZXNjZXMgdGhlbSBpbnRvIGEgc2lu Z2xlIGVudHJ5LgoKCioqKiogMjguMS4xMi4yIERlbGV0aW5nIGFuZCBSZW5hbWluZyBWZXJzaW9u LUNvbnRyb2xsZWQgRmlsZXMKCuKAmE0teCB2Yy1kZWxldGUtZmlsZeKAmQogICAgIFByb21wdCBm b3IgYSBmaWxlIG5hbWUsIGRlbGV0ZSB0aGUgZmlsZSBmcm9tIHRoZSB3b3JraW5nIHRyZWUsIGFu ZAogICAgIHNjaGVkdWxlIHRoZSBkZWxldGlvbiBmb3IgY29tbWl0dGluZy4KCuKAmE0teCB2Yy1y ZW5hbWUtZmlsZeKAmQogICAgIFByb21wdCBmb3IgdHdvIGZpbGUgbmFtZXMsIE9MRCBhbmQgTkVX LCByZW5hbWUgdGhlbSBpbiB0aGUgd29ya2luZwogICAgIHRyZWUsIGFuZCBzY2hlZHVsZSB0aGUg cmVuYW1pbmcgZm9yIGNvbW1pdHRpbmcuICBUaGUgT0xEIGZpbGUKICAgICBkZWZhdWx0cyB0byB0 aGUgY3VycmVudCBidWZmZXLigJlzIGZpbGUgbmFtZSBpZiBpdCBpcyB1bmRlciBWQy4KCiAgIElm IHlvdSB3aXNoIHRvIGRlbGV0ZSBhIHZlcnNpb24tY29udHJvbGxlZCBmaWxlLCB1c2UgdGhlIGNv bW1hbmQg4oCYTS14CnZjLWRlbGV0ZS1maWxl4oCZLiAgVGhpcyBwcm9tcHRzIGZvciB0aGUgZmls ZSBuYW1lLCBhbmQgZGVsZXRlcyBpdCB2aWEgdGhlCnZlcnNpb24gY29udHJvbCBzeXN0ZW0uICBU aGUgZmlsZSBpcyByZW1vdmVkIGZyb20gdGhlIHdvcmtpbmcgdHJlZSwgYW5kCmluIHRoZSBWQyBE aXJlY3RvcnkgYnVmZmVyICgqbm90ZSBWQyBEaXJlY3RvcnkgTW9kZTo6KSwgaXQgaXMgZGlzcGxh eWVkCndpdGggdGhlIOKAmHJlbW92ZWTigJkgc3RhdHVzLiAgV2hlbiB5b3UgY29tbWl0IGl0LCB0 aGUgZGVsZXRpb24gdGFrZXMKZWZmZWN0IGluIHRoZSByZXBvc2l0b3J5LgoKICAgVG8gcmVuYW1l IGEgdmVyc2lvbi1jb250cm9sbGVkIGZpbGUsIHR5cGUg4oCYTS14IHZjLXJlbmFtZS1maWxl4oCZ LiAgVGhpcwpwcm9tcHRzIGZvciB0d28gYXJndW1lbnRzOiB0aGUgbmFtZSBvZiB0aGUgZmlsZSB5 b3Ugd2lzaCB0byByZW5hbWUsIGFuZAp0aGUgbmV3IG5hbWU7IHRoZW4gaXQgcGVyZm9ybXMgdGhl IHJlbmFtaW5nIHZpYSB0aGUgdmVyc2lvbiBjb250cm9sCnN5c3RlbS4gIFRoZSByZW5hbWluZyB0 YWtlcyBlZmZlY3QgaW1tZWRpYXRlbHkgaW4gdGhlIHdvcmtpbmcgdHJlZSwgYW5kCnRha2VzIGVm ZmVjdCBpbiB0aGUgcmVwb3NpdG9yeSB3aGVuIHlvdSBjb21taXQgdGhlIHJlbmFtZWQgZmlsZS4K CiAgIE9uIG1vZGVybiB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyB0aGF0IGhhdmUgYnVpbHQtaW4g c3VwcG9ydCBmb3IKcmVuYW1pbmcsIHRoZSByZW5hbWVkIGZpbGUgcmV0YWlucyB0aGUgZnVsbCBj aGFuZ2UgaGlzdG9yeSBvZiB0aGUKb3JpZ2luYWwgZmlsZS4gIE9uIENWUyBhbmQgb2xkZXIgdmVy c2lvbiBjb250cm9sIHN5c3RlbXMsIHRoZQrigJh2Yy1yZW5hbWUtZmlsZeKAmSBjb21tYW5kIGFj dHVhbGx5IHdvcmtzIGJ5IGNyZWF0aW5nIGEgY29weSBvZiB0aGUgb2xkCmZpbGUgdW5kZXIgdGhl IG5ldyBuYW1lLCByZWdpc3RlcmluZyBpdCwgYW5kIGRlbGV0aW5nIHRoZSBvbGQgZmlsZS4gIElu CnRoaXMgY2FzZSwgdGhlIGNoYW5nZSBoaXN0b3J5IGlzIG5vdCBwcmVzZXJ2ZWQuCgoKKioqKiAy OC4xLjEyLjMgUmV2aXNpb24gVGFncwoKTW9zdCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyBhbGxv dyB5b3UgdG8gYXBwbHkgYSAicmV2aXNpb24gdGFnIiB0byBhCnNwZWNpZmljIHZlcnNpb24gb2Yg YSB2ZXJzaW9uLWNvbnRyb2xsZWQgdHJlZS4gIE9uIG1vZGVybgpjaGFuZ2VzZXQtYmFzZWQgdmVy c2lvbiBjb250cm9sIHN5c3RlbXMsIGEgcmV2aXNpb24gdGFnIGlzIHNpbXBseSBhCnN5bWJvbGlj IG5hbWUgZm9yIGEgcGFydGljdWxhciByZXZpc2lvbi4gIE9uIG9sZGVyIGZpbGUtYmFzZWQgc3lz dGVtcwpsaWtlIENWUywgZWFjaCB0YWcgaXMgYWRkZWQgdG8gdGhlIGVudGlyZSBzZXQgb2YgdmVy c2lvbi1jb250cm9sbGVkCmZpbGVzLCBhbGxvd2luZyB0aGVtIHRvIGJlIGhhbmRsZWQgYXMgYSB1 bml0LiAgUmV2aXNpb24gdGFncyBhcmUKY29tbW9ubHkgdXNlZCB0byBpZGVudGlmeSByZWxlYXNl cyB0aGF0IGFyZSBkaXN0cmlidXRlZCB0byB1c2Vycy4KCiAgIFRoZXJlIGFyZSB0d28gYmFzaWMg Y29tbWFuZHMgZm9yIHRhZ3M7IG9uZSBtYWtlcyBhIHRhZyB3aXRoIGEgZ2l2ZW4KbmFtZSwgdGhl IG90aGVyIHJldHJpZXZlcyBhIG5hbWVkIHRhZy4KCuKAmEMteCB2IHMgTkFNRSA8UkVUPuKAmQog ICAgIERlZmluZSB0aGUgd29ya2luZyByZXZpc2lvbiBvZiBldmVyeSByZWdpc3RlcmVkIGZpbGUg aW4gb3IgdW5kZXIKICAgICB0aGUgY3VycmVudCBkaXJlY3RvcnkgYXMgYSB0YWcgbmFtZWQgTkFN RSAo4oCYdmMtY3JlYXRlLXRhZ+KAmSkuCgrigJhDLXggdiByIE5BTUUgPFJFVD7igJkKICAgICBG b3IgYWxsIHJlZ2lzdGVyZWQgZmlsZXMgYXQgb3IgYmVsb3cgdGhlIGN1cnJlbnQgZGlyZWN0b3J5 IGxldmVsLAogICAgIHJldHJpZXZlIHRoZSB0YWdnZWQgcmV2aXNpb24gTkFNRS4gIFRoaXMgY29t bWFuZCB3aWxsIHN3aXRjaCB0byBhCiAgICAgYnJhbmNoIGlmIE5BTUUgaXMgYSBicmFuY2ggbmFt ZSBhbmQgeW91ciBWQ1MgZGlzdGluZ3Vpc2hlcyBicmFuY2hlcwogICAgIGZyb20gdGFncy4gICji gJh2Yy1yZXRyaWV2ZS10YWfigJkpLgoKICAgICBUaGlzIGNvbW1hbmQgcmVwb3J0cyBhbiBlcnJv ciBpZiBhbnkgZmlsZXMgYXJlIGxvY2tlZCBhdCBvciBiZWxvdwogICAgIHRoZSBjdXJyZW50IGRp cmVjdG9yeSwgd2l0aG91dCBjaGFuZ2luZyBhbnl0aGluZzsgdGhpcyBpcyB0byBhdm9pZAogICAg IG92ZXJ3cml0aW5nIHdvcmsgaW4gcHJvZ3Jlc3MuCgogICBZb3UgY2FuIGdpdmUgYSB0YWcgb3Ig YnJhbmNoIG5hbWUgYXMgYW4gYXJndW1lbnQgdG8g4oCYQy14IHYgPeKAmSBvciDigJhDLXgKdiB+ 4oCZICgqbm90ZSBPbGQgUmV2aXNpb25zOjopLiAgVGh1cywgeW91IGNhbiB1c2UgaXQgdG8gY29t cGFyZSBhIHRhZ2dlZAp2ZXJzaW9uIGFnYWluc3QgdGhlIGN1cnJlbnQgZmlsZXMsIG9yIHR3byB0 YWdnZWQgdmVyc2lvbnMgYWdhaW5zdCBlYWNoCm90aGVyLgoKICAgT24gU0NDUywgVkMgaW1wbGVt ZW50cyB0YWdzIGl0c2VsZjsgdGhlc2UgdGFncyBhcmUgdmlzaWJsZSBvbmx5CnRocm91Z2ggVkMu ICBNb3N0IGxhdGVyIHN5c3RlbXMgKGluY2x1ZGluZyBDVlMsIFN1YnZlcnNpb24sIGJ6ciwgZ2l0 LAphbmQgaGcpIGhhdmUgYSBuYXRpdmUgdGFnIGZhY2lsaXR5LCBhbmQgVkMgdXNlcyBpdCB3aGVy ZSBhdmFpbGFibGU7CnRob3NlIHRhZ3Mgd2lsbCBiZSB2aXNpYmxlIGV2ZW4gd2hlbiB5b3UgYnlw YXNzIFZDLgoKICAgSW4gZmlsZS1iYXNlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcywgd2hlbiB5 b3UgcmVuYW1lIGEgcmVnaXN0ZXJlZApmaWxlIHlvdSBuZWVkIHRvIHJlbmFtZSBpdHMgbWFzdGVy IGFsb25nIHdpdGggaXQ7IHRoZSBjb21tYW5kCuKAmHZjLXJlbmFtZS1maWxl4oCZIHdpbGwgZG8g dGhpcyBhdXRvbWF0aWNhbGx5ICgqbm90ZSBWQyBEZWxldGUvUmVuYW1lOjopLgpJZiB5b3UgYXJl IHVzaW5nIFNDQ1MsIHlvdSBtdXN0IGFsc28gdXBkYXRlIHRoZSByZWNvcmRzIG9mIHRoZSB0YWcs IHRvCm1lbnRpb24gdGhlIGZpbGUgYnkgaXRzIG5ldyBuYW1lICjigJh2Yy1yZW5hbWUtZmlsZeKA mSBkb2VzIHRoaXMsIHRvbykuICBBbgpvbGQgdGFnIHRoYXQgcmVmZXJzIHRvIGEgbWFzdGVyIGZp bGUgdGhhdCBubyBsb25nZXIgZXhpc3RzIHVuZGVyIHRoZQpyZWNvcmRlZCBuYW1lIGlzIGludmFs aWQ7IFZDIGNhbiBubyBsb25nZXIgcmV0cmlldmUgaXQuICBJdCB3b3VsZCBiZQpiZXlvbmQgdGhl IHNjb3BlIG9mIHRoaXMgbWFudWFsIHRvIGV4cGxhaW4gZW5vdWdoIGFib3V0IFJDUyBhbmQgU0ND UyB0bwpleHBsYWluIGhvdyB0byB1cGRhdGUgdGhlIHRhZ3MgYnkgaGFuZC4gIFVzaW5nIOKAmHZj LXJlbmFtZS1maWxl4oCZIG1ha2VzCnRoZSB0YWcgcmVtYWluIHZhbGlkIGZvciByZXRyaWV2YWws IGJ1dCBpdCBkb2VzIG5vdCBzb2x2ZSBhbGwgcHJvYmxlbXMuCkZvciBleGFtcGxlLCBzb21lIG9m IHRoZSBmaWxlcyBpbiB5b3VyIHByb2dyYW0gcHJvYmFibHkgcmVmZXIgdG8gb3RoZXJzCmJ5IG5h bWUuICBBdCB0aGUgdmVyeSBsZWFzdCwgdGhlIG1ha2VmaWxlIHByb2JhYmx5IG1lbnRpb25zIHRo ZSBmaWxlCnRoYXQgeW91IHJlbmFtZWQuICBJZiB5b3UgcmV0cmlldmUgYW4gb2xkIHRhZywgdGhl IHJlbmFtZWQgZmlsZSBpcwpyZXRyaWV2ZWQgdW5kZXIgaXRzIG5ldyBuYW1lLCB3aGljaCBpcyBu b3QgdGhlIG5hbWUgdGhhdCB0aGUgbWFrZWZpbGUKZXhwZWN0cy4gIFNvIHRoZSBwcm9ncmFtIHdv buKAmXQgcmVhbGx5IHdvcmsgYXMgcmV0cmlldmVkLgoKCioqKiogMjguMS4xMi40IEluc2VydGlu ZyBWZXJzaW9uIENvbnRyb2wgSGVhZGVycwoKT24gU3VidmVyc2lvbiwgQ1ZTLCBSQ1MsIGFuZCBT Q0NTLCB5b3UgY2FuIHB1dCBjZXJ0YWluIHNwZWNpYWwgc3RyaW5ncwpjYWxsZWQgInZlcnNpb24g aGVhZGVycyIgaW50byBhIHdvcmsgZmlsZS4gIFdoZW4gdGhlIGZpbGUgaXMgY29tbWl0dGVkLAp0 aGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbSBhdXRvbWF0aWNhbGx5IHB1dHMgdGhlIHJldmlzaW9u IG51bWJlciwgdGhlCm5hbWUgb2YgdGhlIHVzZXIgd2hvIG1hZGUgdGhlIGNvbW1pdCwgYW5kIG90 aGVyIHJlbGV2YW50IGluZm9ybWF0aW9uCmludG8gdGhlIHZlcnNpb24gaGVhZGVyLgoKICAgVkMg ZG9lcyBub3Qgbm9ybWFsbHkgdXNlIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgdmVyc2lvbiBoZWFk ZXJzLiAgQXMKYW4gZXhjZXB0aW9uLCB3aGVuIHVzaW5nIFJDUywgRW1hY3MgdXNlcyB0aGUgdmVy c2lvbiBoZWFkZXIsIGlmIHRoZXJlIGlzCm9uZSwgdG8gZGV0ZXJtaW5lIHRoZSBmaWxlIHZlcnNp b24sIHNpbmNlIGl0IGlzIG9mdGVuIG1vcmUgcmVsaWFibGUgdGhhbgp0aGUgUkNTIG1hc3RlciBm aWxlLiAgVG8gaW5oaWJpdCB1c2luZyB0aGUgdmVyc2lvbiBoZWFkZXIgdGhpcyB3YXksCmNoYW5n ZSB0aGUgdmFyaWFibGUg4oCYdmMtY29uc3VsdC1oZWFkZXJz4oCZIHRvIOKAmG5pbOKAmS4gIFZD IHRoZW4gYWx3YXlzIHVzZXMKdGhlIGZpbGUgcGVybWlzc2lvbnMgKGlmIGl0IGlzIHN1cHBvc2Vk IHRvIHRydXN0IHRoZW0pLCBvciBlbHNlIGNoZWNrcwp0aGUgbWFzdGVyIGZpbGUuCgogICBUbyBp bnNlcnQgYSBzdWl0YWJsZSBoZWFkZXIgc3RyaW5nIGludG8gdGhlIGN1cnJlbnQgYnVmZmVyLCB1 c2UgdGhlCmNvbW1hbmQg4oCYTS14IHZjLWluc2VydC1oZWFkZXJz4oCZLiAgVGhpcyBjb21tYW5k IHdvcmtzIG9ubHkgb24gU3VidmVyc2lvbiwKQ1ZTLCBSQ1MsIGFuZCBTQ0NTLiAgVGhlIHZhcmlh YmxlIOKAmHZjLUJBQ0tFTkQtaGVhZGVy4oCZIGNvbnRhaW5zIHRoZSBsaXN0Cm9mIGtleXdvcmRz IHRvIGluc2VydCBpbnRvIHRoZSB2ZXJzaW9uIGhlYWRlcjsgZm9yIGluc3RhbmNlLCBDVlMgdXNl cwrigJh2Yy1jdnMtaGVhZGVy4oCZLCB3aG9zZSBkZWZhdWx0IHZhbHVlIGlzIOKAmCcoIlwkSWRc JCIp4oCZLiAgKFRoZSBleHRyYQpiYWNrc2xhc2hlcyBwcmV2ZW50IHRoZSBzdHJpbmcgY29uc3Rh bnQgZnJvbSBiZWluZyBpbnRlcnByZXRlZCBhcyBhCmhlYWRlciwgaWYgdGhlIEVtYWNzIExpc3Ag ZmlsZSBkZWZpbmluZyBpdCBpcyBtYWludGFpbmVkIHdpdGggdmVyc2lvbgpjb250cm9sLikgIFRo ZSDigJh2Yy1pbnNlcnQtaGVhZGVyc+KAmSBjb21tYW5kIGluc2VydHMgZWFjaCBrZXl3b3JkIGlu IHRoZQpsaXN0IG9uIGEgbmV3IGxpbmUgYXQgcG9pbnQsIHN1cnJvdW5kZWQgYnkgdGFicywgYW5k IGluc2lkZSBjb21tZW50CmRlbGltaXRlcnMgaWYgbmVjZXNzYXJ5LgoKICAgVGhlIHZhcmlhYmxl IOKAmHZjLXN0YXRpYy1oZWFkZXItYWxpc3TigJkgc3BlY2lmaWVzIGZ1cnRoZXIgc3RyaW5ncyB0 bwphZGQgYmFzZWQgb24gdGhlIG5hbWUgb2YgdGhlIGJ1ZmZlci4gIEl0cyB2YWx1ZSBzaG91bGQg YmUgYSBsaXN0IG9mCmVsZW1lbnRzIG9mIHRoZSBmb3JtIOKAmChSRUdFWFAgLiBGT1JNQVQp4oCZ LiAgV2hlbmV2ZXIgUkVHRVhQIG1hdGNoZXMgdGhlCmJ1ZmZlciBuYW1lLCBGT1JNQVQgaXMgYWxz byBpbnNlcnRlZCBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIGhlYWRlci4gIEEK4oCYJXPigJkgaW4g Rk9STUFUIGlzIHJlcGxhY2VkIHdpdGggdGhlIGZpbGXigJlzIHZlcnNpb24gY29udHJvbCB0eXBl LgoKCioqKiAyOC4xLjEzIEN1c3RvbWl6aW5nIFZDCgpUaGUgdmFyaWFibGUg4oCYdmMtaGFuZGxl ZC1iYWNrZW5kc+KAmSBkZXRlcm1pbmVzIHdoaWNoIHZlcnNpb24gY29udHJvbApzeXN0ZW1zIFZD IHNob3VsZCBoYW5kbGUuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyDigJgoUkNTIENWUyBTVk4gU0ND UyBTUkMKQnpyIEdpdCBIZyBNdG4p4oCZLCBzbyBpdCBjb250YWlucyBhbGwgdGhlIHZlcnNpb24g c3lzdGVtcyB0aGF0IGFyZQpjdXJyZW50bHkgc3VwcG9ydGVkLiAgSWYgeW91IHdhbnQgVkMgdG8g aWdub3JlIG9uZSBvciBtb3JlIG9mIHRoZXNlCnN5c3RlbXMsIGV4Y2x1ZGUgaXRzIG5hbWUgZnJv bSB0aGUgbGlzdC4gIFRvIGRpc2FibGUgVkMgZW50aXJlbHksIHNldAp0aGlzIHZhcmlhYmxlIHRv IOKAmG5pbOKAmS4KCiAgIFRoZSBvcmRlciBvZiBzeXN0ZW1zIGluIHRoZSBsaXN0IGlzIHNpZ25p ZmljYW50OiB3aGVuIHlvdSB2aXNpdCBhCmZpbGUgcmVnaXN0ZXJlZCBpbiBtb3JlIHRoYW4gb25l IHN5c3RlbSwgVkMgdXNlcyB0aGUgc3lzdGVtIHRoYXQgY29tZXMKZmlyc3QgaW4g4oCYdmMtaGFu ZGxlZC1iYWNrZW5kc+KAmSBieSBkZWZhdWx0LiAgVGhlIG9yZGVyIGlzIGFsc28Kc2lnbmlmaWNh bnQgd2hlbiB5b3UgcmVnaXN0ZXIgYSBmaWxlIGZvciB0aGUgZmlyc3QgdGltZSAoKm5vdGUKUmVn aXN0ZXJpbmc6OikuCgorIE1lbnU6CgogIC0gR2VuZXJhbCBWQyBPcHRpb25zOjogIE9wdGlvbnMg dGhhdCBhcHBseSB0byBtdWx0aXBsZSBiYWNrIGVuZHMuCiAgLSBSQ1MgYW5kIFNDQ1M6OiAgICAg ICAgT3B0aW9ucyBmb3IgUkNTIGFuZCBTQ0NTLgogIC0gQ1ZTIE9wdGlvbnM6OiAgICAgICAgIE9w dGlvbnMgZm9yIENWUy4KCgoqKioqIDI4LjEuMTMuMSBHZW5lcmFsIE9wdGlvbnMKCkVtYWNzIG5v cm1hbGx5IGRvZXMgbm90IHNhdmUgYmFja3VwIGZpbGVzIGZvciBzb3VyY2UgZmlsZXMgdGhhdCBh cmUKbWFpbnRhaW5lZCB3aXRoIHZlcnNpb24gY29udHJvbC4gIElmIHlvdSB3YW50IHRvIG1ha2Ug YmFja3VwIGZpbGVzIGV2ZW4KZm9yIGZpbGVzIHRoYXQgdXNlIHZlcnNpb24gY29udHJvbCwgc2V0 IHRoZSB2YXJpYWJsZQrigJh2Yy1tYWtlLWJhY2t1cC1maWxlc+KAmSB0byBhIG5vbi3igJhuaWzi gJkgdmFsdWUuCgogICBFZGl0aW5nIGEgdmVyc2lvbi1jb250cm9sbGVkIGZpbGUgdGhyb3VnaCBh IHN5bWJvbGljIGxpbmsgbWF5IGNhdXNlCnVuZXhwZWN0ZWQgcmVzdWx0cywgaWYgeW91IGFyZSB1 bmF3YXJlIHRoYXQgdGhlIHVuZGVybHlpbmcgZmlsZSBpcwp2ZXJzaW9uLWNvbnRyb2xsZWQuICBU aGUgdmFyaWFibGUg4oCYdmMtZm9sbG93LXN5bWxpbmtz4oCZIGNvbnRyb2xzIHdoYXQKRW1hY3Mg ZG9lcyBpZiB5b3UgdHJ5IHRvIHZpc2l0IGEgc3ltYm9saWMgbGluayBwb2ludGluZyB0byBhCnZl cnNpb24tY29udHJvbGxlZCBmaWxlLiAgSWYgdGhlIHZhbHVlIGlzIOKAmGFza+KAmSAodGhlIGRl ZmF1bHQpLCBFbWFjcwphc2tzIGZvciBjb25maXJtYXRpb24uICBJZiBpdCBpcyDigJhuaWzigJks IEVtYWNzIGp1c3QgZGlzcGxheXMgYSB3YXJuaW5nCm1lc3NhZ2UuICBJZiBpdCBpcyDigJh04oCZ LCBFbWFjcyBhdXRvbWF0aWNhbGx5IGZvbGxvd3MgdGhlIGxpbmsgYW5kIHZpc2l0cwp0aGUgcmVh bCBmaWxlIGluc3RlYWQuCgogICBJZiDigJh2Yy1zdXBwcmVzcy1jb25maXJt4oCZIGlzIG5vbi3i gJhuaWzigJksIHRoZW4g4oCYQy14IHYgduKAmSBhbmQg4oCYQy14IHYgaeKAmQpjYW4gc2F2ZSB0 aGUgY3VycmVudCBidWZmZXIgd2l0aG91dCBhc2tpbmcsIGFuZCDigJhDLXggdiB14oCZIGFsc28g b3BlcmF0ZXMKd2l0aG91dCBhc2tpbmcgZm9yIGNvbmZpcm1hdGlvbi4KCiAgIFZDIG1vZGUgZG9l cyBtdWNoIG9mIGl0cyB3b3JrIGJ5IHJ1bm5pbmcgdGhlIHNoZWxsIGNvbW1hbmRzIGZvciB0aGUK YXBwcm9wcmlhdGUgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4gIElmIOKAmHZjLWNvbW1hbmQtbWVz c2FnZXPigJkgaXMKbm9uLeKAmG5pbOKAmSwgVkMgZGlzcGxheXMgbWVzc2FnZXMgdG8gaW5kaWNh dGUgd2hpY2ggc2hlbGwgY29tbWFuZHMgaXQKcnVucywgYW5kIGFkZGl0aW9uYWwgbWVzc2FnZXMg d2hlbiB0aGUgY29tbWFuZHMgZmluaXNoLgoKCioqKiogMjguMS4xMy4yIE9wdGlvbnMgZm9yIFJD UyBhbmQgU0NDUwoKQnkgZGVmYXVsdCwgUkNTIHVzZXMgbG9ja2luZyB0byBjb29yZGluYXRlIHRo ZSBhY3Rpdml0aWVzIG9mIHNldmVyYWwKdXNlcnMsIGJ1dCB0aGVyZSBpcyBhIG1vZGUgY2FsbGVk ICJub24tc3RyaWN0IGxvY2tpbmciIGluIHdoaWNoIHlvdSBjYW4KY2hlY2staW4gY2hhbmdlcyB3 aXRob3V0IGxvY2tpbmcgdGhlIGZpbGUgZmlyc3QuICBVc2Ug4oCYcmNzIC1V4oCZIHRvIHN3aXRj aAp0byBub24tc3RyaWN0IGxvY2tpbmcgZm9yIGEgcGFydGljdWxhciBmaWxlLCBzZWUgdGhlIOKA mHJjc+KAmSBtYW51YWwgcGFnZQpmb3IgZGV0YWlscy4KCiAgIFdoZW4gZGVkdWNpbmcgdGhlIHZl cnNpb24gY29udHJvbCBzdGF0ZSBvZiBhbiBSQ1MgZmlsZSwgVkMgZmlyc3QKbG9va3MgZm9yIGFu IFJDUyB2ZXJzaW9uIGhlYWRlciBzdHJpbmcgaW4gdGhlIGZpbGUgKCpub3RlIFZlcnNpb24KSGVh ZGVyczo6KS4gIElmIHRoZXJlIGlzIG5vIGhlYWRlciBzdHJpbmcsIFZDIG5vcm1hbGx5IGxvb2tz IGF0IHRoZSBmaWxlCnBlcm1pc3Npb25zIG9mIHRoZSB3b3JrIGZpbGU7IHRoaXMgaXMgZmFzdC4g IEJ1dCB0aGVyZSBtaWdodCBiZQpzaXR1YXRpb25zIHdoZW4gdGhlIGZpbGUgcGVybWlzc2lvbnMg Y2Fubm90IGJlIHRydXN0ZWQuICBJbiB0aGlzIGNhc2UKdGhlIG1hc3RlciBmaWxlIGhhcyB0byBi ZSBjb25zdWx0ZWQsIHdoaWNoIGlzIHJhdGhlciBleHBlbnNpdmUuICBBbHNvCnRoZSBtYXN0ZXIg ZmlsZSBjYW4gb25seSB0ZWxsIHlvdSBfaWZfIHRoZXJl4oCZcyBhbnkgbG9jayBvbiB0aGUgZmls ZSwgYnV0Cm5vdCB3aGV0aGVyIHlvdXIgd29yayBmaWxlIHJlYWxseSBjb250YWlucyB0aGF0IGxv Y2tlZCB2ZXJzaW9uLgoKICAgWW91IGNhbiB0ZWxsIFZDIG5vdCB0byB1c2UgdmVyc2lvbiBoZWFk ZXJzIHRvIGRldGVybWluZSB0aGUgZmlsZQpzdGF0dXMgYnkgc2V0dGluZyDigJh2Yy1jb25zdWx0 LWhlYWRlcnPigJkgdG8g4oCYbmls4oCZLiAgVkMgdGhlbiBhbHdheXMgdXNlcwp0aGUgZmlsZSBw ZXJtaXNzaW9ucyAoaWYgaXQgaXMgc3VwcG9zZWQgdG8gdHJ1c3QgdGhlbSksIG9yIGVsc2UgY2hl Y2tzCnRoZSBtYXN0ZXIgZmlsZS4KCiAgIFZDIGRldGVybWluZXMgdGhlIHZlcnNpb24gY29udHJv bCBzdGF0ZSBvZiBmaWxlcyB1bmRlciBTQ0NTIG11Y2ggYXMKd2l0aCBSQ1MuICBJdCBkb2VzIG5v dCBjb25zaWRlciBTQ0NTIHZlcnNpb24gaGVhZGVycywgdGhvdWdoLiAgVGh1cywgdGhlCnZhcmlh YmxlIOKAmHZjLWNvbnN1bHQtaGVhZGVyc+KAmSBkb2VzIG5vdCBhZmZlY3QgU0NDUyB1c2UuCgoK KioqKiAyOC4xLjEzLjMgT3B0aW9ucyBzcGVjaWZpYyBmb3IgQ1ZTCgpZb3UgY2FuIHNwZWNpZnkg YWRkaXRpb25hbCBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byBwYXNzIHRvIGFsbCBDVlMKb3BlcmF0 aW9ucyBpbiB0aGUgdmFyaWFibGUg4oCYdmMtY3ZzLWdsb2JhbC1zd2l0Y2hlc+KAmS4gIFRoZXNl IHN3aXRjaGVzIGFyZQppbnNlcnRlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUg4oCYY3Zz4oCZIGNv bW1hbmQsIGJlZm9yZSB0aGUgbmFtZSBvZiB0aGUKb3BlcmF0aW9uIHRvIGludm9rZS4KCiAgIFdo ZW4gdXNpbmcgYSBDVlMgcmVwb3NpdG9yeSBvbiBhIHJlbW90ZSBtYWNoaW5lLCBWQyBjYW4gdHJ5 IGtlZXBpbmcKbmV0d29yayBpbnRlcmFjdGlvbnMgdG8gYSBtaW5pbXVtLiAgVGhpcyBpcyBjb250 cm9sbGVkIGJ5IHRoZSB2YXJpYWJsZQrigJh2Yy1jdnMtc3RheS1sb2NhbOKAmS4gIElmIOKAmHZj LWN2cy1zdGF5LWxvY2Fs4oCZIGlzIOKAmG9ubHktZmlsZeKAmSAodGhlCmRlZmF1bHQpLCBWQyBk ZXRlcm1pbmVzIHRoZSB2ZXJzaW9uIGNvbnRyb2wgc3RhdHVzIG9mIGVhY2ggZmlsZSB1c2luZwpv bmx5IHRoZSBlbnRyeSBpbiB0aGUgbG9jYWwgQ1ZTIHN1YmRpcmVjdG9yeSBhbmQgdGhlIGluZm9y bWF0aW9uCnJldHVybmVkIGJ5IHByZXZpb3VzIENWUyBjb21tYW5kcy4gIEFzIGEgY29uc2VxdWVu Y2UsIGlmIHlvdSBoYXZlCm1vZGlmaWVkIGEgZmlsZSBhbmQgc29tZWJvZHkgZWxzZSBoYXMgY2hl Y2tlZCBpbiBvdGhlciBjaGFuZ2VzLCB5b3Ugd2lsbApub3QgYmUgbm90aWZpZWQgb2YgdGhlIGNv bmZsaWN0IHVudGlsIHlvdSB0cnkgdG8gY29tbWl0LgoKICAgSWYgeW91IGNoYW5nZSDigJh2Yy1j dnMtc3RheS1sb2NhbOKAmSB0byDigJhuaWzigJksIFZDIHF1ZXJpZXMgdGhlIHJlbW90ZQpyZXBv c2l0b3J5IF9iZWZvcmVfIGl0IGRlY2lkZXMgd2hhdCB0byBkbyBpbiDigJh2Yy1uZXh0LWFjdGlv buKAmSAo4oCYQy14IHYKduKAmSksIGp1c3QgYXMgaXQgZG9lcyBmb3IgbG9jYWwgcmVwb3NpdG9y aWVzLgoKICAgWW91IGNhbiBhbHNvIHNldCDigJh2Yy1jdnMtc3RheS1sb2NhbOKAmSB0byBhIHJl Z3VsYXIgZXhwcmVzc2lvbiB0aGF0IGlzCm1hdGNoZWQgYWdhaW5zdCB0aGUgcmVwb3NpdG9yeSBo b3N0IG5hbWU7IFZDIHRoZW4gc3RheXMgbG9jYWwgb25seSBmb3IKcmVwb3NpdG9yaWVzIGZyb20g aG9zdHMgdGhhdCBtYXRjaCB0aGUgcGF0dGVybi4KCiAgIFdoZW4gdXNpbmcgYSByZW1vdGUgcmVw b3NpdG9yeSwgRW1hY3Mgbm9ybWFsbHkgbWFrZXMgImF1dG9tYXRpYwp2ZXJzaW9uIGJhY2t1cHMi IG9mIHRoZSBvcmlnaW5hbCB2ZXJzaW9ucyBvZiBlYWNoIGVkaXRlZCBmaWxlLiAgVGhlc2UKbG9j YWwgYmFja3VwcyBhcmUgbWFkZSB3aGVuZXZlciB5b3Ugc2F2ZSB0aGUgZmlyc3QgY2hhbmdlcyB0 byBhIGZpbGUsCmFuZCB0aGV5IGFyZSByZW1vdmVkIGFmdGVyIHlvdSBjb21taXQgeW91ciBjaGFu Z2VzIHRvIHRoZSByZXBvc2l0b3J5LgooTm90ZSB0aGF0IHRoZXNlIGFyZSBub3QgdGhlIHNhbWUg YXMgb3JkaW5hcnkgRW1hY3MgYmFja3VwIGZpbGVzOyAqbm90ZQpCYWNrdXA6Oi4pICBDb21tYW5k cyBsaWtlIOKAmEMteCB2ID3igJkgYW5kIOKAmEMteCB2IHXigJkgbWFrZSB1c2Ugb2YgYXV0b21h dGljCnZlcnNpb24gYmFja3VwcywgaWYgcG9zc2libGUsIHRvIGF2b2lkIGhhdmluZyB0byBhY2Nl c3MgdGhlIG5ldHdvcmsuCgogICBTZXR0aW5nIOKAmHZjLWN2cy1zdGF5LWxvY2Fs4oCZIHRvIOKA mG5pbOKAmSBkaXNhYmxlcyB0aGUgbWFraW5nIG9mIGF1dG9tYXRpYwp2ZXJzaW9uIGJhY2t1cHMu CgogICBBdXRvbWF0aWMgdmVyc2lvbiBiYWNrdXBzIGhhdmUgbmFtZXMgb2YgdGhlIGZvcm0g4oCY RklMRS5+VkVSU0lPTi5+4oCZLgpUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIG5hbWUgdGhhdCDigJhD LXggdiB+4oCZIHNhdmVzIG9sZCB2ZXJzaW9ucyB0byAoKm5vdGUKT2xkIFJldmlzaW9uczo6KSwg ZXhjZXB0IGZvciB0aGUgYWRkaXRpb25hbCBkb3QgKOKAmC7igJkpIGFmdGVyIHRoZSB2ZXJzaW9u LgpUaGUgcmVsZXZhbnQgVkMgY29tbWFuZHMgY2FuIHVzZSBib3RoIGtpbmRzIG9mIHZlcnNpb24g YmFja3Vwcy4gIFRoZQptYWluIGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgbWFudWFsIHZlcnNpb24g YmFja3VwcyBtYWRlIGJ5IOKAmEMteCB2IH7igJkgYXJlCm5vdCBkZWxldGVkIGF1dG9tYXRpY2Fs bHkgd2hlbiB5b3UgY29tbWl0LgoKICAgQ1ZTIGRvZXMgbm90IHVzZSBsb2NraW5nIGJ5IGRlZmF1 bHQsIGJ1dCB0aGVyZSBhcmUgd2F5cyB0byBlbmFibGUKbG9ja2luZy1saWtlIGJlaGF2aW9yIHVz aW5nIGl0cyDigJhDVlNSRUFE4oCZIG9yICJ3YXRjaCIgZmVhdHVyZTsgc2VlIHRoZQpDVlMgZG9j dW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gIElmIHRoYXQgY2FzZSwgeW91IGNhbiB1c2Ug4oCYQy14 IHYgduKAmSBpbgpFbWFjcyB0byB0b2dnbGUgbG9ja2luZywgYXMgeW91IHdvdWxkIGZvciBhIGxv Y2tpbmctYmFzZWQgdmVyc2lvbgpjb250cm9sIHN5c3RlbSAoKm5vdGUgVkMgV2l0aCBBIExvY2tp bmcgVkNTOjopLgoKCioqIDI4LjIgQ2hhbmdlIExvZ3MKCk1hbnkgc29mdHdhcmUgcHJvamVjdHMg a2VlcCBhICJjaGFuZ2UgbG9nIi4gIFRoaXMgaXMgYSBmaWxlLCBub3JtYWxseQpuYW1lZCDigJhD aGFuZ2VMb2figJksIGNvbnRhaW5pbmcgYSBjaHJvbm9sb2dpY2FsIHJlY29yZCBvZiB3aGVuIGFu ZCBob3cgdGhlCnByb2dyYW0gd2FzIGNoYW5nZWQuICBTb21ldGltZXMsIHRoZXNlIGZpbGVzIGFy ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZApmcm9tIHRoZSBjaGFuZ2UgbG9nIGVudHJpZXMgc3Rv cmVkIGluIHZlcnNpb24gY29udHJvbCBzeXN0ZW1zLCBvciBhcmUKdXNlZCB0byBnZW5lcmF0ZSB0 aGVzZSBjaGFuZ2UgbG9nIGVudHJpZXMuICBTb21ldGltZXMsIHRoZXJlIGFyZSBzZXZlcmFsCmNo YW5nZSBsb2cgZmlsZXMsIGVhY2ggcmVjb3JkaW5nIHRoZSBjaGFuZ2VzIGluIG9uZSBkaXJlY3Rv cnkgb3IKZGlyZWN0b3J5IHRyZWUuCgorIE1lbnU6CgogIC0gQ2hhbmdlIExvZyBDb21tYW5kczo6 IENvbW1hbmRzIGZvciBlZGl0aW5nIGNoYW5nZSBsb2cgZmlsZXMuCiAgLSBGb3JtYXQgb2YgQ2hh bmdlTG9nOjogV2hhdCB0aGUgY2hhbmdlIGxvZyBmaWxlIGxvb2tzIGxpa2UuCgoKKioqIDI4LjIu MSBDaGFuZ2UgTG9nIENvbW1hbmRzCgpUaGUgRW1hY3MgY29tbWFuZCDigJhDLXggNCBh4oCZIGFk ZHMgYSBuZXcgZW50cnkgdG8gdGhlIGNoYW5nZSBsb2cgZmlsZSBmb3IKdGhlIGZpbGUgeW91IGFy ZSBlZGl0aW5nICjigJhhZGQtY2hhbmdlLWxvZy1lbnRyeS1vdGhlci13aW5kb3figJkpLiAgSWYg dGhhdApmaWxlIGlzIGFjdHVhbGx5IGEgYmFja3VwIGZpbGUsIGl0IG1ha2VzIGFuIGVudHJ5IGFw cHJvcHJpYXRlIGZvciB0aGUKZmlsZeKAmXMgcGFyZW504oCUdGhhdCBpcyB1c2VmdWwgZm9yIG1h a2luZyBsb2cgZW50cmllcyBmb3IgZnVuY3Rpb25zIHRoYXQKaGF2ZSBiZWVuIGRlbGV0ZWQgaW4g dGhlIGN1cnJlbnQgdmVyc2lvbi4KCiAgIOKAmEMteCA0IGHigJkgdmlzaXRzIHRoZSBjaGFuZ2Ug bG9nIGZpbGUgYW5kIGNyZWF0ZXMgYSBuZXcgZW50cnkgdW5sZXNzCnRoZSBtb3N0IHJlY2VudCBl bnRyeSBpcyBmb3IgdG9kYXnigJlzIGRhdGUgYW5kIHlvdXIgbmFtZS4gIEl0IGFsc28KY3JlYXRl cyBhIG5ldyBpdGVtIGZvciB0aGUgY3VycmVudCBmaWxlLiAgRm9yIG1hbnkgbGFuZ3VhZ2VzLCBp dCBjYW4KZXZlbiBndWVzcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gb3Igb3RoZXIgb2JqZWN0 IHRoYXQgd2FzIGNoYW5nZWQuCgogICBUbyBmaW5kIHRoZSBjaGFuZ2UgbG9nIGZpbGUsIEVtYWNz IHNlYXJjaGVzIHVwIHRoZSBkaXJlY3RvcnkgdHJlZQpmcm9tIHRoZSBmaWxlIHlvdSBhcmUgZWRp dGluZy4gIEJ5IGRlZmF1bHQsIGl0IHN0b3BzIGlmIGl0IGZpbmRzIGEKZGlyZWN0b3J5IHRoYXQg c2VlbXMgdG8gYmUgdGhlIHJvb3Qgb2YgYSB2ZXJzaW9uLWNvbnRyb2wgcmVwb3NpdG9yeS4gIFRv CmNoYW5nZSB0aGlzLCBjdXN0b21pemUg4oCYY2hhbmdlLWxvZy1kaXJlY3RvcnktZmlsZXPigJku CgogICBXaGVuIHRoZSB2YXJpYWJsZSDigJhhZGQtbG9nLWtlZXAtY2hhbmdlcy10b2dldGhlcuKA mSBpcyBub24t4oCYbmls4oCZLCDigJhDLXgKNCBh4oCZIGFkZHMgdG8gYW55IGV4aXN0aW5nIGl0 ZW0gZm9yIHRoZSBmaWxlLCByYXRoZXIgdGhhbiBzdGFydGluZyBhIG5ldwppdGVtLgoKICAgWW91 IGNhbiBjb21iaW5lIG11bHRpcGxlIGNoYW5nZXMgb2YgdGhlIHNhbWUgbmF0dXJlLiAgSWYgeW91 IGRvbuKAmXQKZW50ZXIgYW55IHRleHQgYWZ0ZXIgdGhlIGluaXRpYWwg4oCYQy14IDQgYeKAmSwg YW55IHN1YnNlcXVlbnQg4oCYQy14IDQgYeKAmQphZGRzIGFub3RoZXIgc3ltYm9sIHRvIHRoZSBj aGFuZ2UgbG9nIGVudHJ5LgoKICAgSWYg4oCYYWRkLWxvZy1hbHdheXMtc3RhcnQtbmV3LXJlY29y ZOKAmSBpcyBub24t4oCYbmls4oCZLCDigJhDLXggNCBh4oCZIGFsd2F5cwptYWtlcyBhIG5ldyBl bnRyeSwgZXZlbiBpZiB0aGUgbGFzdCBlbnRyeSB3YXMgbWFkZSBieSB5b3UgYW5kIG9uIHRoZQpz YW1lIGRhdGUuCgogICBJZiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIOKAmGNoYW5nZS1sb2ct dmVyc2lvbi1pbmZvLWVuYWJsZWTigJkgaXMKbm9uLeKAmG5pbOKAmSwg4oCYQy14IDQgYeKAmSBh ZGRzIHRoZSBmaWxl4oCZcyB2ZXJzaW9uIG51bWJlciB0byB0aGUgY2hhbmdlIGxvZwplbnRyeS4g IEl0IGZpbmRzIHRoZSB2ZXJzaW9uIG51bWJlciBieSBzZWFyY2hpbmcgdGhlIGZpcnN0IHRlbiBw ZXJjZW50Cm9mIHRoZSBmaWxlLCB1c2luZyByZWd1bGFyIGV4cHJlc3Npb25zIGZyb20gdGhlIHZh cmlhYmxlCuKAmGNoYW5nZS1sb2ctdmVyc2lvbi1udW1iZXItcmVnZXhwLWxpc3TigJkuCgogICBU aGUgY2hhbmdlIGxvZyBmaWxlIGlzIHZpc2l0ZWQgaW4gQ2hhbmdlIExvZyBtb2RlLiAgSW4gdGhp cyBtYWpvcgptb2RlLCBlYWNoIGJ1bmNoIG9mIGdyb3VwZWQgaXRlbXMgY291bnRzIGFzIG9uZSBw YXJhZ3JhcGgsIGFuZCBlYWNoCmVudHJ5IGlzIGNvbnNpZGVyZWQgYSBwYWdlLiAgVGhpcyBmYWNp bGl0YXRlcyBlZGl0aW5nIHRoZSBlbnRyaWVzLgrigJhDLWrigJkgYW5kIGF1dG8tZmlsbCBpbmRl bnQgZWFjaCBuZXcgbGluZSBsaWtlIHRoZSBwcmV2aW91cyBsaW5lOyB0aGlzIGlzCmNvbnZlbmll bnQgZm9yIGVudGVyaW5nIHRoZSBjb250ZW50cyBvZiBhbiBlbnRyeS4KCiAgIFlvdSBjYW4gdXNl IHRoZSDigJhuZXh0LWVycm9y4oCZIGNvbW1hbmQgKGJ5IGRlZmF1bHQgYm91bmQgdG8g4oCYQy14 IGDigJkpIHRvCm1vdmUgYmV0d2VlbiBlbnRyaWVzIGluIHRoZSBDaGFuZ2UgTG9nLCB3aGVuIENo YW5nZSBMb2cgbW9kZSBpcyBvbi4gIFlvdQp3aWxsIGp1bXAgdG8gdGhlIGFjdHVhbCBzaXRlIGlu IHRoZSBmaWxlIHRoYXQgd2FzIGNoYW5nZWQsIG5vdCBqdXN0IHRvCnRoZSBuZXh0IENoYW5nZSBM b2cgZW50cnkuICBZb3UgY2FuIGFsc28gdXNlIOKAmHByZXZpb3VzLWVycm9y4oCZIHRvIG1vdmUK YmFjayBpbiB0aGUgc2FtZSBsaXN0LgoKICAgWW91IGNhbiB1c2UgdGhlIGNvbW1hbmQg4oCYTS14 IGNoYW5nZS1sb2ctbWVyZ2XigJkgdG8gbWVyZ2Ugb3RoZXIgbG9nCmZpbGVzIGludG8gYSBidWZm ZXIgaW4gQ2hhbmdlIExvZyBNb2RlLCBwcmVzZXJ2aW5nIHRoZSBkYXRlIG9yZGVyaW5nIG9mCmVu dHJpZXMuCgogICBWZXJzaW9uIGNvbnRyb2wgc3lzdGVtcyBhcmUgYW5vdGhlciB3YXkgdG8ga2Vl cCB0cmFjayBvZiBjaGFuZ2VzIGluCnlvdXIgcHJvZ3JhbSBhbmQga2VlcCBhIGNoYW5nZSBsb2cu ICBJbiB0aGUgVkMgbG9nIGJ1ZmZlciwgdHlwaW5nIOKAmEMtYwpDLWHigJkgKOKAmGxvZy1lZGl0 LWluc2VydC1jaGFuZ2Vsb2figJkpIGluc2VydHMgdGhlIHJlbGV2YW50IENoYW5nZSBMb2cKZW50 cnksIGlmIG9uZSBleGlzdHMuICAqTm90ZSBMb2cgQnVmZmVyOjouCgoKKioqIDI4LjIuMiBGb3Jt YXQgb2YgQ2hhbmdlTG9nCgpBIGNoYW5nZSBsb2cgZW50cnkgc3RhcnRzIHdpdGggYSBoZWFkZXIg bGluZSB0aGF0IGNvbnRhaW5zIHRoZSBjdXJyZW50CmRhdGUsIHlvdXIgbmFtZSAodGFrZW4gZnJv bSB0aGUgdmFyaWFibGUg4oCYYWRkLWxvZy1mdWxsLW5hbWXigJkpLCBhbmQgeW91cgplbWFpbCBh ZGRyZXNzICh0YWtlbiBmcm9tIHRoZSB2YXJpYWJsZSDigJhhZGQtbG9nLW1haWxpbmctYWRkcmVz c+KAmSkuCkFzaWRlIGZyb20gdGhlc2UgaGVhZGVyIGxpbmVzLCBldmVyeSBsaW5lIGluIHRoZSBj aGFuZ2UgbG9nIHN0YXJ0cyB3aXRoCmEgc3BhY2Ugb3IgYSB0YWIuICBUaGUgYnVsayBvZiB0aGUg ZW50cnkgY29uc2lzdHMgb2YgIml0ZW1zIiwgZWFjaCBvZgp3aGljaCBzdGFydHMgd2l0aCBhIGxp bmUgc3RhcnRpbmcgd2l0aCB3aGl0ZXNwYWNlIGFuZCBhIHN0YXIuICBIZXJlIGFyZQp0d28gZW50 cmllcywgYm90aCBkYXRlZCBpbiBNYXkgMTk5Mywgd2l0aCB0d28gaXRlbXMgYW5kIG9uZSBpdGVt CnJlc3BlY3RpdmVseS4KCiAgICAgMTk5My0wNS0yNSAgUmljaGFyZCBTdGFsbG1hbiAgPHJtc0Bn bnUub3JnPgoKICAgICAgICAgICAgICogbWFuLmVsOiBSZW5hbWUgc3ltYm9scyAnbWFuLSonIHRv ICdNYW4tKicuCiAgICAgICAgICAgICAobWFudWFsLWVudHJ5KTogTWFrZSBwcm9tcHQgc3RyaW5n IGNsZWFyZXIuCgogICAgICAgICAgICAgKiBzaW1wbGUuZWwgKGJsaW5rLW1hdGNoaW5nLXBhcmVu LWRpc3RhbmNlKToKICAgICAgICAgICAgIENoYW5nZSBkZWZhdWx0IHRvIDEyLDAwMC4KCiAgICAg MTk5My0wNS0yNCAgUmljaGFyZCBTdGFsbG1hbiAgPHJtc0BnbnUub3JnPgoKICAgICAgICAgICAg ICogdmMuZWwgKG1pbm9yLW1vZGUtbWFwLWFsaXN0KTogRG9uJ3QgdXNlIGl0IGlmIGl0J3Mgdm9p ZC4KICAgICAgICAgICAgICh2Yy1jYW5jZWwtdmVyc2lvbik6IERvYyBmaXguCgogICBPbmUgZW50 cnkgY2FuIGRlc2NyaWJlIHNldmVyYWwgY2hhbmdlczsgZWFjaCBjaGFuZ2Ugc2hvdWxkIGhhdmUg aXRzCm93biBpdGVtLCBvciBpdHMgb3duIGxpbmUgaW4gYW4gaXRlbS4gIE5vcm1hbGx5IHRoZXJl IHNob3VsZCBiZSBhIGJsYW5rCmxpbmUgYmV0d2VlbiBpdGVtcy4gIFdoZW4gaXRlbXMgYXJlIHJl bGF0ZWQgKHBhcnRzIG9mIHRoZSBzYW1lIGNoYW5nZSwKaW4gZGlmZmVyZW50IHBsYWNlcyksIGdy b3VwIHRoZW0gYnkgbGVhdmluZyBubyBibGFuayBsaW5lIGJldHdlZW4gdGhlbS4KCiAgIFlvdSBz aG91bGQgcHV0IGEgY29weXJpZ2h0IG5vdGljZSBhbmQgcGVybWlzc2lvbiBub3RpY2UgYXQgdGhl IGVuZCBvZgp0aGUgY2hhbmdlIGxvZyBmaWxlLiAgSGVyZSBpcyBhbiBleGFtcGxlOgoKICAgICBD b3B5cmlnaHQgMTk5NywgMTk5OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgICBD b3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9uLCBhcmUKICAgICBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuCgpPZiBjb3Vyc2UsIHlvdSBzaG91bGQg c3Vic3RpdHV0ZSB0aGUgcHJvcGVyIHllYXJzIGFuZCBjb3B5cmlnaHQgaG9sZGVyLgoKCioqIDI4 LjMgRmluZCBJZGVudGlmaWVyIFJlZmVyZW5jZXMKCkFuICJpZGVudGlmaWVyIiBpcyBhIG5hbWUg b2YgYSBzeW50YWN0aWNhbCBzdWJ1bml0IG9mIHRoZSBwcm9ncmFtOiBhCmZ1bmN0aW9uLCBhIHN1 YnJvdXRpbmUsIGEgbWV0aG9kLCBhIGNsYXNzLCBhIGRhdGEgdHlwZSwgYSBtYWNybywgZXRjLgpJ biBhIHByb2dyYW1taW5nIGxhbmd1YWdlLCBlYWNoIGlkZW50aWZpZXIgaXMgYSBzeW1ib2wgaW4g dGhlIGxhbmd1YWdl4oCZcwpzeW50YXguICBQcm9ncmFtIGRldmVsb3BtZW50IGFuZCBtYWludGVu YW5jZSByZXF1aXJlcyBjYXBhYmlsaXRpZXMgdG8KcXVpY2tseSBmaW5kIHdoZXJlIGVhY2ggaWRl bnRpZmllciB3YXMgZGVmaW5lZCBhbmQgcmVmZXJlbmNlZCwgdG8gcmVuYW1lCmlkZW50aWZpZXJz IGFjcm9zcyB0aGUgZW50aXJlIHByb2plY3QsIGV0Yy4KCiAgIFRoZXNlIGNhcGFiaWxpdGllcyBh cmUgYWxzbyB1c2VmdWwgZm9yIGZpbmRpbmcgcmVmZXJlbmNlcyBpbiBtYWpvcgptb2RlcyBvdGhl ciB0aGFuIHRob3NlIGRlZmluZWQgdG8gc3VwcG9ydCBwcm9ncmFtbWluZyBsYW5ndWFnZXMuICBG b3IKZXhhbXBsZSwgY2hhcHRlcnMsIHNlY3Rpb25zLCBhcHBlbmRpY2VzLCBldGMuIG9mIGEgdGV4 dCBvciBhIFRlWApkb2N1bWVudCBjYW4gYmUgdHJlYXRlZCBhcyBzdWJ1bml0cyBhcyB3ZWxsLCBh bmQgdGhlaXIgbmFtZXMgY2FuIGJlIHVzZWQKYXMgaWRlbnRpZmllcnMuICBJbiB0aGlzIGNoYXB0 ZXIsIHdlIHVzZSB0aGUgdGVybSDigJxpZGVudGlmaWVyc+KAnSB0bwpjb2xsZWN0aXZlbHkgcmVm ZXIgdG8gdGhlIG5hbWVzIG9mIGFueSBraW5kIG9mIHN1YnVuaXRzLCBpbiBwcm9ncmFtCnNvdXJj ZSBhbmQgaW4gb3RoZXIga2luZHMgb2YgdGV4dCBhbGlrZS4KCiAgIEVtYWNzIHByb3ZpZGVzIGEg dW5pZmllZCBpbnRlcmZhY2UgdG8gdGhlc2UgY2FwYWJpbGl0aWVzLCBjYWxsZWQK4oCYeHJlZuKA mS4KCiAgIFRvIGRvIGl0cyBqb2IsIOKAmHhyZWbigJkgbmVlZHMgdG8gbWFrZSB1c2Ugb2YgaW5m b3JtYXRpb24gYW5kIHRvIGVtcGxveQptZXRob2RzIHNwZWNpZmljIHRvIHRoZSBtYWpvciBtb2Rl LiAgV2hhdCBmaWxlcyB0byBzZWFyY2ggZm9yCmlkZW50aWZpZXJzLCBob3cgdG8gZmluZCByZWZl cmVuY2VzIHRvIGlkZW50aWZpZXJzLCBob3cgdG8gY29tcGxldGUgb24KaWRlbnRpZmllcnPigJRh bGwgdGhpcyBhbmQgbW9yZSBpcyBtb2RlLXNwZWNpZmljIGtub3dsZWRnZS4gIOKAmHhyZWbigJkK ZGVsZWdhdGVzIHRoZSBtb2RlLXNwZWNpZmljIHBhcnRzIG9mIGl0cyBqb2IgdG8gYSAiYmFja2Vu ZCIgcHJvdmlkZWQgYnkKdGhlIG1vZGU7IGl0IGFsc28gaW5jbHVkZXMgZGVmYXVsdHMgZm9yIHNv bWUgb2YgaXRzIGNvbW1hbmRzLCBmb3IgdGhvc2UKbW9kZXMgdGhhdCBkb27igJl0IHByb3ZpZGUg dGhlaXIgb3duLgoKICAgQSBiYWNrZW5kIGNhbiBpbXBsZW1lbnQgaXRzIGNhcGFiaWxpdGllcyBp biBhIHZhcmlldHkgb2Ygd2F5cy4gIEhlcmUKYXJlIGEgZmV3IGV4YW1wbGVzOgoKICBhLiBTb21l IG1ham9yIG1vZGVzIHByb3ZpZGUgYnVpbHQtaW4gbWVhbnMgZm9yIGxvb2tpbmcgdXAgdGhlIGxh bmd1YWdlCiAgICAgc3ltYm9scy4gIEZvciBleGFtcGxlLCBFbWFjcyBMaXNwIHN5bWJvbHMgY2Fu IGJlIGlkZW50aWZpZWQgYnkKICAgICBzZWFyY2hpbmcgdGhlIHBhY2thZ2UgbG9hZCBoaXN0b3J5 LCBtYWludGFpbmVkIGJ5IHRoZSBFbWFjcyBMaXNwCiAgICAgaW50ZXJwcmV0ZXIsIGFuZCBieSBj b25zdWx0aW5nIHRoZSBidWlsdC1pbiBkb2N1bWVudGF0aW9uIHN0cmluZ3M7CiAgICAgdGhlIEVt YWNzIExpc3AgbW9kZSB1c2VzIHRoZXNlIGZhY2lsaXRpZXMgaW4gaXRzIGJhY2tlbmQgdG8gYWxs b3cKICAgICBmaW5kaW5nIGRlZmluaXRpb25zIG9mIHN5bWJvbHMuICAoT25lIGRpc2FkdmFudGFn ZSBvZiB0aGlzIGtpbmQgb2YKICAgICBiYWNrZW5kIGlzIHRoYXQgaXQgb25seSBrbm93cyBhYm91 dCBzdWJ1bml0cyB0aGF0IHdlcmUgbG9hZGVkIGludG8KICAgICB0aGUgaW50ZXJwcmV0ZXIuKQoK ICBiLiBBbiBleHRlcm5hbCBwcm9ncmFtIGNhbiBleHRyYWN0IHJlZmVyZW5jZXMgYnkgc2Nhbm5p bmcgdGhlIHJlbGV2YW50CiAgICAgZmlsZXMsIGFuZCBidWlsZCBhIGRhdGFiYXNlIG9mIHRoZXNl IHJlZmVyZW5jZXMuICBBIGJhY2tlbmQgY2FuCiAgICAgdGhlbiBhY2Nlc3MgdGhpcyBkYXRhYmFz ZSB3aGVuZXZlciBpdCBuZWVkcyB0byBsaXN0IG9yIGxvb2sgdXAKICAgICByZWZlcmVuY2VzLiAg VGhlIEVtYWNzIGRpc3RyaWJ1dGlvbiBpbmNsdWRlcyDigJhldGFnc+KAmSwgYSBjb21tYW5kIGZv cgogICAgIHRhZ2dpbmcgaWRlbnRpZmllciBkZWZpbml0aW9ucyBpbiBwcm9ncmFtcywgd2hpY2gg c3VwcG9ydHMgbWFueQogICAgIHByb2dyYW1taW5nIGxhbmd1YWdlcyBhbmQgb3RoZXIgbWFqb3Ig bW9kZXMsIHN1Y2ggYXMgSFRNTCwgYnkKICAgICBleHRyYWN0aW5nIHJlZmVyZW5jZXMgaW50byAi dGFncyB0YWJsZXMiLiAgKk5vdGUgQ3JlYXRlIFRhZ3MKICAgICBUYWJsZTo6LiAgTWFqb3IgbW9k ZXMgZm9yIGxhbmd1YWdlcyBzdXBwb3J0ZWQgYnkg4oCYZXRhZ3PigJkgY2FuIHVzZQogICAgIHRh Z3MgdGFibGVzIGFzIGJhc2lzIGZvciB0aGVpciBiYWNrZW5kLiAgKE9uZSBkaXNhZHZhbnRhZ2Ug b2YgdGhpcwogICAgIGtpbmQgb2YgYmFja2VuZCBpcyB0aGF0IHRhZ3MgdGFibGVzIG5lZWQgdG8g YmUga2VwdCByZWFzb25hYmx5IHVwCiAgICAgdG8gZGF0ZSwgYnkgcmVidWlsZGluZyB0aGVtIGZy b20gdGltZSB0byB0aW1lLikKCisgTWVudToKCiAgLSBGaW5kIElkZW50aWZpZXJzOjogICAgQ29t bWFuZHMgdG8gZmluZCB3aGVyZSBhbiBpZGVudGlmaWVyIGlzIGRlZmluZWQKICAgICAgICAgICAg ICAgICAgICAgICAgICBvciByZWZlcmVuY2VkLCB0byBsaXN0IGlkZW50aWZpZXJzLCBldGMuCiAg LSBUYWdzIFRhYmxlczo6ICAgICAgICAgVGFncyB0YWJsZSByZWNvcmRzIHdoaWNoIGZpbGUgZGVm aW5lcyBhIHN5bWJvbC4KICAtIFNlbGVjdCBUYWdzIFRhYmxlOjogICBIb3cgdG8gdmlzaXQgYSBz cGVjaWZpYyB0YWdzIHRhYmxlLgoKCioqKiAyOC4zLjEgRmluZCBJZGVudGlmaWVycwoKVGhpcyBz dWJzZWN0aW9uIGRlc2NyaWJlcyB0aGUgY29tbWFuZHMgdGhhdCBmaW5kIHJlZmVyZW5jZXMgdG8K aWRlbnRpZmllcnMgYW5kIHBlcmZvcm0gdmFyaW91cyBxdWVyaWVzIGFib3V0IGlkZW50aWZpZXJz LiAgRWFjaCBzdWNoCnJlZmVyZW5jZSBjb3VsZCBfZGVmaW5lXyBhbiBpZGVudGlmaWVyLCBlLmcu LCBwcm92aWRlIHRoZSBpbXBsZW1lbnRhdGlvbgpvZiBhIHByb2dyYW0gc3VidW5pdCBvciB0aGUg dGV4dCBvZiBhIGRvY3VtZW50IHNlY3Rpb247IG9yIGl0IGNvdWxkCl91c2VfIHRoZSBpZGVudGlm aWVyLCBlLmcuLCBjYWxsIGEgZnVuY3Rpb24gb3IgYSBtZXRob2QsIGFzc2lnbiBhIHZhbHVlCnRv IGEgdmFyaWFibGUsIG1lbnRpb24gYSBjaGFwdGVyIGluIGEgY3Jvc3MtcmVmZXJlbmNlLCBldGMu CgorIE1lbnU6CgogIC0gTG9va2luZyBVcCBJZGVudGlmaWVyczo6IENvbW1hbmRzIHRvIGZpbmQg dGhlIGRlZmluaXRpb24gb2YgYW4gaWRlbnRpZmllci4KICAtIFhyZWYgQ29tbWFuZHM6OiAgICAg ICAgICBDb21tYW5kcyBpbiB0aGUg4oCYKnhyZWYq4oCZIGJ1ZmZlci4KICAtIElkZW50aWZpZXIg U2VhcmNoOjogICAgICBTZWFyY2hpbmcgYW5kIHJlcGxhY2luZyBpZGVudGlmaWVycy4KICAtIExp c3QgSWRlbnRpZmllcnM6OiAgICAgICBMaXN0aW5nIGlkZW50aWZpZXJzIGFuZCBjb21wbGV0aW5n IG9uIHRoZW0uCgoKKioqKiAyOC4zLjEuMSBMb29raW5nIFVwIElkZW50aWZpZXJzCgpUaGUgbW9z dCBpbXBvcnRhbnQgdGhpbmcgdGhhdCDigJh4cmVm4oCZIGVuYWJsZXMgeW91IHRvIGRvIGlzIHRv IGZpbmQgdGhlCmRlZmluaXRpb24gb2YgYSBzcGVjaWZpYyBpZGVudGlmaWVyLgoK4oCYTS0u4oCZ CiAgICAgRmluZCBkZWZpbml0aW9ucyBvZiBhbiBpZGVudGlmaWVyICjigJh4cmVmLWZpbmQtZGVm aW5pdGlvbnPigJkpLgrigJhDLU0tLiBQQVRURVJOIDxSRVQ+4oCZCiAgICAgRmluZCBhbGwgaWRl bnRpZmllcnMgd2hvc2UgbmFtZSBtYXRjaGVzIFBBVFRFUk4KICAgICAo4oCYeHJlZi1maW5kLWFw cm9wb3PigJkpLgrigJhDLXggNCAuIDxSRVQ+4oCZCiAgICAgRmluZCBkZWZpbml0aW9ucyBvZiBp ZGVudGlmaWVyLCBidXQgZGlzcGxheSBpdCBpbiBhbm90aGVyIHdpbmRvdwogICAgICjigJh4cmVm LWZpbmQtZGVmaW5pdGlvbnMtb3RoZXItd2luZG934oCZKS4K4oCYQy14IDUgLiA8UkVUPuKAmQog ICAgIEZpbmQgZGVmaW5pdGlvbiBvZiBpZGVudGlmaWVyLCBhbmQgZGlzcGxheSBpdCBpbiBhIG5l dyBmcmFtZQogICAgICjigJh4cmVmLWZpbmQtZGVmaW5pdGlvbnMtb3RoZXItZnJhbWXigJkpLgri gJhNLSzigJkKICAgICBHbyBiYWNrIHRvIHdoZXJlIHlvdSBwcmV2aW91c2x5IGludm9rZWQg4oCY TS0u4oCZIGFuZCBmcmllbmRzCiAgICAgKOKAmHhyZWYtcG9wLW1hcmtlci1zdGFja+KAmSkuCuKA mE0teCB4cmVmLWV0YWdzLW1vZGXigJkKICAgICBTd2l0Y2gg4oCYeHJlZuKAmSB0byB1c2UgdGhl IOKAmGV0YWdz4oCZIGJhY2tlbmQuCgogICDigJhNLS7igJkgKOKAmHhyZWYtZmluZC1kZWZpbml0 aW9uc+KAmSkgc2hvd3MgdGhlIGRlZmluaXRpb25zIG9mIHRoZQppZGVudGlmaWVyIGF0IHBvaW50 LiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgb3IgaWYgdGhlcmXigJlzIG5vCmlkZW50aWZpZXIg YXQgcG9pbnQsIGl0IHByb21wdHMgZm9yIHRoZSBpZGVudGlmaWVyLiAgKElmIHlvdSB3YW50IGl0 IHRvCmFsd2F5cyBwcm9tcHQsIGN1c3RvbWl6ZSDigJh4cmVmLXByb21wdC1mb3ItaWRlbnRpZmll cuKAmSB0byDigJh04oCZLikKCiAgIElmIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllciBoYXMgb25s eSBvbmUgZGVmaW5pdGlvbiwgdGhlIGNvbW1hbmQKanVtcHMgdG8gaXQuICBJZiB0aGUgaWRlbnRp ZmllciBoYXMgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBkZWZpbml0aW9uCihlLmcuLCBpbiBhbiBv YmplY3Qtb3JpZW50ZWQgbGFuZ3VhZ2UsIG9yIGlmIHRoZXJl4oCZcyBhIGZ1bmN0aW9uIGFuZCBh CnZhcmlhYmxlIGJ5IHRoZSBzYW1lIG5hbWUpLCB0aGUgY29tbWFuZCBzaG93cyB0aGUgY2FuZGlk YXRlIGRlZmluaXRpb25zCmluIHRoZSDigJgqeHJlZirigJkgYnVmZmVyLCB0b2dldGhlciB3aXRo IHRoZSBmaWxlcyBpbiB3aGljaCB0aGVzZQpkZWZpbml0aW9ucyBhcmUgZm91bmQuICBTZWxlY3Rp bmcgb25lIG9mIHRoZXNlIGNhbmRpZGF0ZXMgYnkgdHlwaW5nCuKAmDxSRVQ+4oCZIG9yIGNsaWNr aW5nIOKAmG1vdXNlLTLigJkgd2lsbCBwb3AgYSBidWZmZXIgc2hvd2luZyB0aGUKY29ycmVzcG9u ZGluZyBkZWZpbml0aW9uLgoKICAgV2hlbiBlbnRlcmluZyB0aGUgaWRlbnRpZmllciBhcmd1bWVu dCB0byDigJhNLS7igJksIHRoZSB1c3VhbCBtaW5pYnVmZmVyCmNvbXBsZXRpb24gY29tbWFuZHMg Y2FuIGJlIHVzZWQgKCpub3RlIENvbXBsZXRpb246OiksIHdpdGggdGhlIGtub3duCmlkZW50aWZp ZXIgbmFtZXMgYXMgY29tcGxldGlvbiBjYW5kaWRhdGVzLgoKICAgTGlrZSBtb3N0IGNvbW1hbmRz IHRoYXQgY2FuIHN3aXRjaCBidWZmZXJzLCDigJh4cmVmLWZpbmQtZGVmaW5pdGlvbnPigJkKaGFz IGEgdmFyaWFudCB0aGF0IGRpc3BsYXlzIHRoZSBuZXcgYnVmZmVyIGluIGFub3RoZXIgd2luZG93 LCBhbmQgb25lCnRoYXQgbWFrZXMgYSBuZXcgZnJhbWUgZm9yIGl0LiAgVGhlIGZvcm1lciBpcyDi gJhDLXggNCAu4oCZCijigJh4cmVmLWZpbmQtZGVmaW5pdGlvbnMtb3RoZXItd2luZG934oCZKSwg YW5kIHRoZSBsYXR0ZXIgaXMg4oCYQy14IDUgLuKAmQoo4oCYeHJlZi1maW5kLWRlZmluaXRpb25z LW90aGVyLWZyYW1l4oCZKS4KCiAgIFRoZSBjb21tYW5kIOKAmEMtTS0u4oCZICjigJh4cmVmLWZp bmQtYXByb3Bvc+KAmSkgZmluZHMgdGhlIGRlZmluaXRpb25zIG9mCm9uZSBvciBtb3JlIGlkZW50 aWZpZXJzIHRoYXQgbWF0Y2ggYSBzcGVjaWZpZWQgcmVndWxhciBleHByZXNzaW9uLiAgSXQKaXMg anVzdCBsaWtlIOKAmE0tLuKAmSBleGNlcHQgdGhhdCBpdCBkb2VzIHJlZ2V4cCBtYXRjaGluZyBv ZiBpZGVudGlmaWVycwppbnN0ZWFkIG9mIG1hdGNoaW5nIHN5bWJvbCBuYW1lcyBhcyBmaXhlZCBz dHJpbmdzLgoKICAgV2hlbiBhbnkgb2YgdGhlIGFib3ZlIGNvbW1hbmRzIGZpbmRzIG1vcmUgdGhh biBvbmUgZGVmaW5pdGlvbiwgaXQKcHJlc2VudHMgdGhlIOKAmCp4cmVmKuKAmSBidWZmZXIgc2hv d2luZyB0aGUgZGVmaW5pdGlvbiBjYW5kaWRhdGVzLiAgSW4gdGhhdApidWZmZXIsIHlvdSBoYXZl IHNldmVyYWwgc3BlY2lhbGl6ZWQgY29tbWFuZHMsIGRlc2NyaWJlZCBpbiAqbm90ZSBYcmVmCkNv bW1hbmRzOjouCgogICBUbyBnbyBiYWNrIHRvIHBsYWNlcyBfZnJvbSB3aGVyZV8geW91IGZvdW5k IHRoZSBkZWZpbml0aW9uLCB1c2Ug4oCYTS0s4oCZCijigJh4cmVmLXBvcC1tYXJrZXItc3RhY2vi gJkpLiAgSXQganVtcHMgYmFjayB0byB0aGUgcG9pbnQgb2YgdGhlIGxhc3QKaW52b2NhdGlvbiBv ZiDigJhNLS7igJkuICBUaHVzIHlvdSBjYW4gZmluZCBhbmQgZXhhbWluZSB0aGUgZGVmaW5pdGlv biBvZgpzb21ldGhpbmcgd2l0aCDigJhNLS7igJkgYW5kIHRoZW4gcmV0dXJuIHRvIHdoZXJlIHlv dSB3ZXJlIHdpdGgg4oCYTS0s4oCZLgrigJhNLSzigJkgYWxsb3dzIHlvdSB0byByZXRyYWNlIHlv dXIgc3RlcHMgdG8gYSBkZXB0aCBkZXRlcm1pbmVkIGJ5IHRoZQp2YXJpYWJsZSDigJh4cmVmLW1h cmtlci1yaW5nLWxlbmd0aOKAmSwgd2hpY2ggZGVmYXVsdHMgdG8gMTYuCgogICBTb21lIG1ham9y IG1vZGVzIGluc3RhbGwg4oCYeHJlZuKAmSBzdXBwb3J0IGZhY2lsaXRpZXMgdGhhdCBtaWdodApz b21ldGltZXMgZmFpbCB0byBmaW5kIGNlcnRhaW4gaWRlbnRpZmllcnMuICBGb3IgZXhhbXBsZSwg aW4gRW1hY3MgTGlzcAptb2RlICgqbm90ZSBMaXNwIEV2YWw6Oikg4oCYTS0u4oCZIHdpbGwgYnkg ZGVmYXVsdCBmaW5kIG9ubHkgZnVuY3Rpb25zIGFuZAp2YXJpYWJsZXMgZnJvbSBMaXNwIHBhY2th Z2VzIHdoaWNoIGFyZSBsb2FkZWQgaW50byB0aGUgY3VycmVudCBFbWFjcwpzZXNzaW9uIG9yIGFy ZSBhdXRvLWxvYWRlZCAoKm5vdGUgKGVsaXNwKUF1dG9sb2FkOjopLiAgSWYg4oCYTS0u4oCZIGZh aWxzIHRvCmZpbmQgc29tZSBpZGVudGlmaWVycywgeW91IGNhbiB0cnkgZm9yY2luZyDigJh4cmVm 4oCZIHRvIHVzZSB0aGUg4oCYZXRhZ3PigJkKYmFja2VuZCAoKm5vdGUgWHJlZjo6KS4gIFRvIHRo aXMgZW5kLCB0dXJuIG9uIHRoZSBYcmVmIEV0YWdzIG1pbm9yIG1vZGUKd2l0aCDigJhNLXggeHJl Zi1ldGFncy1tb2Rl4oCZLCB0aGVuIGludm9rZSDigJhNLS7igJkgYWdhaW4uICAoRm9yIHRoaXMg dG8gd29yaywKYmUgc3VyZSB0byBydW4g4oCYZXRhZ3PigJkgdG8gY3JlYXRlIHRoZSB0YWdzIHRh YmxlIGluIHRoZSBkaXJlY3RvcnkgdHJlZSBvZgp0aGUgc291cmNlIGZpbGVzLCBzZWUgKm5vdGUg Q3JlYXRlIFRhZ3MgVGFibGU6Oi4pCgoKKioqKiAyOC4zLjEuMiBDb21tYW5kcyBBdmFpbGFibGUg aW4gdGhlIOKAmCp4cmVmKuKAmSBCdWZmZXIKClRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJlIHBy b3ZpZGVkIGluIHRoZSDigJgqeHJlZirigJkgYnVmZmVyIGJ5IHRoZQpzcGVjaWFsIFhSRUYgbW9k ZToKCuKAmDxSRVQ+4oCZCuKAmG1vdXNlLTLigJkKICAgICBEaXNwbGF5IHRoZSByZWZlcmVuY2Ug b24gdGhlIGN1cnJlbnQgbGluZS4KCuKAmG7igJkK4oCYLuKAmQogICAgIE1vdmUgdG8gdGhlIG5l eHQgcmVmZXJlbmNlIGFuZCBkaXNwbGF5IGl0IGluIHRoZSBvdGhlciB3aW5kb3cKICAgICAo4oCY eHJlZi1uZXh0LWxpbmXigJkpLgoK4oCYcOKAmQrigJgs4oCZCiAgICAgTW92ZSB0byB0aGUgcHJl dmlvdXMgcmVmZXJlbmNlIGFuZCBkaXNwbGF5IGl0IGluIHRoZSBvdGhlciB3aW5kb3cKICAgICAo 4oCYeHJlZi1wcmV2LWxpbmXigJkpLgoK4oCYQy1v4oCZCiAgICAgRGlzcGxheSB0aGUgcmVmZXJl bmNlIG9uIHRoZSBjdXJyZW50IGxpbmUgaW4gdGhlIG90aGVyIHdpbmRvdwogICAgICjigJh4cmVm LXNob3ctbG9jYXRpb24tYXQtcG9pbnTigJkpLgoK4oCYPFRBQj7igJkKICAgICBEaXNwbGF5IHRo ZSByZWZlcmVuY2Ugb24gdGhlIGN1cnJlbnQgbGluZSBhbmQgYnVyeSB0aGUg4oCYKnhyZWYq4oCZ CiAgICAgYnVmZmVyICjigJh4cmVmLXF1aXQtYW5kLWdvdG8teHJlZuKAmSkuCgrigJhyIFBBVFRF Uk4gPFJFVD4gUkVQTEFDRU1FTlQgPFJFVD7igJkKICAgICBQZXJmb3JtIGludGVyYWN0aXZlIHF1 ZXJ5LXJlcGxhY2Ugb24gcmVmZXJlbmNlcyB0aGF0IG1hdGNoIFBBVFRFUk4KICAgICAo4oCYeHJl Zi1xdWVyeS1yZXBsYWNlLWluLXJlc3VsdHPigJkpLCByZXBsYWNpbmcgdGhlIG1hdGNoIHdpdGgK ICAgICBSRVBMQUNFTUVOVC4gICpOb3RlIElkZW50aWZpZXIgU2VhcmNoOjouCgrigJhx4oCZCiAg ICAgUXVpdCB0aGUgd2luZG93IHNob3dpbmcgdGhlIOKAmCp4cmVmKuKAmSBidWZmZXIgKOKAmHhy ZWYtcXVpdOKAmSkuCgogICBJbiBhZGRpdGlvbiwgdGhlIHVzdWFsIG5hdmlnYXRpb24gY29tbWFu ZHMsIHN1Y2ggYXMgdGhlIGFycm93IGtleXMsCuKAmEMtbuKAmSwgYW5kIOKAmEMtcOKAmSBhcmUg YXZhaWxhYmxlIGZvciBtb3ZpbmcgYXJvdW5kIHRoZSBidWZmZXIgd2l0aG91dApkaXNwbGF5aW5n IHRoZSByZWZlcmVuY2VzLgoKCioqKiogMjguMy4xLjMgU2VhcmNoaW5nIGFuZCBSZXBsYWNpbmcg d2l0aCBJZGVudGlmaWVycwoKVGhlIGNvbW1hbmRzIGluIHRoaXMgc2VjdGlvbiBwZXJmb3JtIHZh cmlvdXMgc2VhcmNoIGFuZCByZXBsYWNlCm9wZXJhdGlvbnMgZWl0aGVyIG9uIGlkZW50aWZpZXJz IHRoZW1zZWx2ZXMgb3Igb24gZmlsZXMgdGhhdCByZWZlcmVuY2UKdGhlbS4KCuKAmE0tP+KAmQog ICAgIEZpbmQgYWxsIHRoZSByZWZlcmVuY2VzIGZvciB0aGUgaWRlbnRpZmllciBhdCBwb2ludC4K CuKAmE0teCB4cmVmLXF1ZXJ5LXJlcGxhY2UtaW4tcmVzdWx0cyA8UkVUPiBSRUdFWFAgPFJFVD4g UkVQTEFDRU1FTlQgPFJFVD7igJkKICAgICBJbnRlcmFjdGl2ZWx5IHJlcGxhY2UgUkVHRVhQIHdp dGggUkVQTEFDRU1FTlQgaW4gdGhlIG5hbWVzIG9mIGFsbAogICAgIHRoZSBpZGVudGlmaWVycyBz aG93biBpbiB0aGUg4oCYKnhyZWYq4oCZIGJ1ZmZlci4KCuKAmE0teCB0YWdzLXNlYXJjaCA8UkVU PiBSRUdFWFAgPFJFVD7igJkKICAgICBTZWFyY2ggZm9yIFJFR0VYUCB0aHJvdWdoIHRoZSBmaWxl cyBpbiB0aGUgc2VsZWN0ZWQgdGFncyB0YWJsZS4KCuKAmE0teCB0YWdzLXF1ZXJ5LXJlcGxhY2Ug PFJFVD4gUkVHRVhQIDxSRVQ+IFJFUExBQ0VNRU5UIDxSRVQ+4oCZCiAgICAgUGVyZm9ybSBhIOKA mHF1ZXJ5LXJlcGxhY2UtcmVnZXhw4oCZIG9uIGVhY2ggZmlsZSBpbiB0aGUgc2VsZWN0ZWQgdGFn cwogICAgIHRhYmxlLgoK4oCYTS14IHRhZ3MtbG9vcC1jb250aW51ZeKAmQogICAgIFJlc3RhcnQg b25lIG9mIHRoZSBsYXN0IDIgY29tbWFuZHMgYWJvdmUsIGZyb20gdGhlIGN1cnJlbnQgbG9jYXRp b24KICAgICBvZiBwb2ludC4KCiAgIOKAmE0tP+KAmSBmaW5kcyBhbGwgdGhlIHJlZmVyZW5jZXMg Zm9yIHRoZSBpZGVudGlmaWVyIGF0IHBvaW50LCBwcm9tcHRpbmcKZm9yIHRoZSBpZGVudGlmaWVy IGFzIG5lZWRlZCwgd2l0aCBjb21wbGV0aW9uLiAgRGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50CmJh Y2tlbmQgKCpub3RlIFhyZWY6OiksIHRoZSBjb21tYW5kIG1heSBwcm9tcHQgZXZlbiBpZiBpdCBm aW5kcyBhIHZhbGlkCmlkZW50aWZpZXIgYXQgcG9pbnQuICBXaGVuIGludm9rZWQgd2l0aCBhIHBy ZWZpeCBhcmd1bWVudCwgaXQgYWx3YXlzCnByb21wdHMgZm9yIHRoZSBpZGVudGlmaWVyLiAgKElm IHlvdSB3YW50IGl0IHRvIHByb21wdCBhbHdheXMsIGN1c3RvbWl6ZQp0aGUgdmFsdWUgb2YgdGhl IHZhcmlhYmxlIOKAmHhyZWYtcHJvbXB0LWZvci1pZGVudGlmaWVy4oCZIHRvIOKAmHTigJk7IG9y IHNldCBpdAp0byDigJhuaWzigJkgdG8gcHJvbXB0IG9ubHkgaWYgdGhlcmXigJlzIG5vIHVzYWJs ZSBpZGVudGlmaWVyIGF0IHBvaW50LikgIFRoZQpjb21tYW5kIHRoZW4gcHJlc2VudHMgdGhlIOKA mCp4cmVmKuKAmSBidWZmZXIgd2l0aCBhbGwgdGhlIHJlZmVyZW5jZXMgdG8gdGhlCmlkZW50aWZp ZXIsIHNob3dpbmcgdGhlIGZpbGUgbmFtZSBhbmQgdGhlIGxpbmUgd2hlcmUgdGhlIGlkZW50aWZp ZXIgaXMKcmVmZXJlbmNlZC4gIFRoZSBYUkVGIG1vZGUgY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBp biB0aGlzIGJ1ZmZlciwgc2VlCipub3RlIFhyZWYgQ29tbWFuZHM6Oi4KCiAgIOKAmE0teCB4cmVm LXF1ZXJ5LXJlcGxhY2UtaW4tcmVzdWx0c+KAmSByZWFkcyBhIHJlZ2V4cCB0byBtYXRjaAppZGVu dGlmaWVyIG5hbWVzIGFuZCBhIHJlcGxhY2VtZW50IHN0cmluZywganVzdCBsaWtlIG9yZGluYXJ5 IOKAmE0teApxdWVyeS1yZXBsYWNlLXJlZ2V4cOKAmS4gIEl0IHRoZW4gcGVyZm9ybXMgdGhlIHNw ZWNpZmllZCByZXBsYWNlbWVudCBpbgp0aGUgbmFtZXMgb2YgdGhlIG1hdGNoaW5nIGlkZW50aWZp ZXJzIGluIGFsbCB0aGUgcGxhY2VzIGluIGFsbCB0aGUgZmlsZXMKd2hlcmUgdGhlc2UgaWRlbnRp ZmllcnMgYXJlIHJlZmVyZW5jZWQuICBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSByZW5hbWUKeW91 ciBpZGVudGlmaWVycyBhcyBwYXJ0IG9mIHJlZmFjdG9yaW5nLiAgVGhpcyBjb21tYW5kIHNob3Vs ZCBiZSBpbnZva2VkCmluIHRoZSDigJgqeHJlZirigJkgYnVmZmVyIGdlbmVyYXRlZCBieSDigJhN LT/igJkuCgogICDigJhNLXggdGFncy1zZWFyY2jigJkgcmVhZHMgYSByZWdleHAgdXNpbmcgdGhl IG1pbmlidWZmZXIsIHRoZW4gc2VhcmNoZXMKZm9yIG1hdGNoZXMgaW4gYWxsIHRoZSBmaWxlcyBp biB0aGUgc2VsZWN0ZWQgdGFncyB0YWJsZSwgb25lIGZpbGUgYXQgYQp0aW1lLiAgSXQgZGlzcGxh eXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgYmVpbmcgc2VhcmNoZWQgc28geW91IGNhbiBmb2xsb3cK aXRzIHByb2dyZXNzLiAgQXMgc29vbiBhcyBpdCBmaW5kcyBhbiBvY2N1cnJlbmNlLCDigJh0YWdz LXNlYXJjaOKAmSByZXR1cm5zLgpUaGlzIGNvbW1hbmQgcmVxdWlyZXMgdGFncyB0YWJsZXMgdG8g YmUgYXZhaWxhYmxlICgqbm90ZSBUYWdzIFRhYmxlczo6KS4KCiAgIEhhdmluZyBmb3VuZCBvbmUg bWF0Y2ggd2l0aCDigJh0YWdzLXNlYXJjaOKAmSwgeW91IHByb2JhYmx5IHdhbnQgdG8gZmluZAph bGwgdGhlIHJlc3QuICDigJhNLXggdGFncy1sb29wLWNvbnRpbnVl4oCZIHJlc3VtZXMgdGhlIOKA mHRhZ3Mtc2VhcmNo4oCZLApmaW5kaW5nIG9uZSBtb3JlIG1hdGNoLiAgVGhpcyBzZWFyY2hlcyB0 aGUgcmVzdCBvZiB0aGUgY3VycmVudCBidWZmZXIsCmZvbGxvd2VkIGJ5IHRoZSByZW1haW5pbmcg ZmlsZXMgb2YgdGhlIHRhZ3MgdGFibGUuCgogICDigJhNLXggdGFncy1xdWVyeS1yZXBsYWNl4oCZ IHBlcmZvcm1zIGEgc2luZ2xlIOKAmHF1ZXJ5LXJlcGxhY2UtcmVnZXhw4oCZCnRocm91Z2ggYWxs IHRoZSBmaWxlcyBpbiB0aGUgdGFncyB0YWJsZS4gIEl0IHJlYWRzIGEgcmVnZXhwIHRvIHNlYXJj aApmb3IgYW5kIGEgc3RyaW5nIHRvIHJlcGxhY2Ugd2l0aCwganVzdCBsaWtlIG9yZGluYXJ5IOKA mE0teApxdWVyeS1yZXBsYWNlLXJlZ2V4cOKAmS4gIEl0IHNlYXJjaGVzIG11Y2ggbGlrZSDigJhN LXggdGFncy1zZWFyY2jigJksIGJ1dApyZXBlYXRlZGx5LCBwcm9jZXNzaW5nIG1hdGNoZXMgYWNj b3JkaW5nIHRvIHlvdXIgaW5wdXQuICAqTm90ZSBRdWVyeQpSZXBsYWNlOjosIGZvciBtb3JlIGlu Zm9ybWF0aW9uIG9uIHF1ZXJ5IHJlcGxhY2UuCgogICBZb3UgY2FuIGNvbnRyb2wgdGhlIGNhc2Ut c2Vuc2l0aXZpdHkgb2YgdGFncyBzZWFyY2ggY29tbWFuZHMgYnkKY3VzdG9taXppbmcgdGhlIHZh bHVlIG9mIHRoZSB2YXJpYWJsZSDigJh0YWdzLWNhc2UtZm9sZC1zZWFyY2jigJkuICBUaGUKZGVm YXVsdCBpcyB0byB1c2UgdGhlIHNhbWUgc2V0dGluZyBhcyB0aGUgdmFsdWUgb2Yg4oCYY2FzZS1m b2xkLXNlYXJjaOKAmQooKm5vdGUgTGF4IFNlYXJjaDo6KS4KCiAgIEl0IGlzIHBvc3NpYmxlIHRv IGdldCB0aHJvdWdoIGFsbCB0aGUgZmlsZXMgaW4gdGhlIHRhZ3MgdGFibGUgd2l0aCBhCnNpbmds ZSBpbnZvY2F0aW9uIG9mIOKAmE0teCB0YWdzLXF1ZXJ5LXJlcGxhY2XigJkuICBCdXQgb2Z0ZW4g aXQgaXMgdXNlZnVsCnRvIGV4aXQgdGVtcG9yYXJpbHksIHdoaWNoIHlvdSBjYW4gZG8gd2l0aCBh bnkgaW5wdXQgZXZlbnQgdGhhdCBoYXMgbm8Kc3BlY2lhbCBxdWVyeSByZXBsYWNlIG1lYW5pbmcu ICBZb3UgY2FuIHJlc3VtZSB0aGUgcXVlcnkgcmVwbGFjZQpzdWJzZXF1ZW50bHkgYnkgdHlwaW5n IOKAmE0teCB0YWdzLWxvb3AtY29udGludWXigJk7IHRoaXMgY29tbWFuZCByZXN1bWVzCnRoZSBs YXN0IHRhZ3Mgc2VhcmNoIG9yIHJlcGxhY2UgY29tbWFuZCB0aGF0IHlvdSBkaWQuICBGb3IgaW5z dGFuY2UsIHRvCnNraXAgdGhlIHJlc3Qgb2YgdGhlIGN1cnJlbnQgZmlsZSwgeW91IGNhbiB0eXBl CuKAmE0tPiBNLXggdGFncy1sb29wLWNvbnRpbnVl4oCZLgoKICAgTm90ZSB0aGF0IHRoZSBjb21t YW5kcyBkZXNjcmliZWQgYWJvdmUgY2Fycnkgb3V0IG11Y2ggYnJvYWRlcgpzZWFyY2hlcyB0aGFu IHRoZSDigJh4cmVmLWZpbmQtZGVmaW5pdGlvbnPigJkgZmFtaWx5LiAgVGhlCuKAmHhyZWYtZmlu ZC1kZWZpbml0aW9uc+KAmSBjb21tYW5kcyBzZWFyY2ggb25seSBmb3IgZGVmaW5pdGlvbnMgb2YK aWRlbnRpZmllcnMgdGhhdCBtYXRjaCB5b3VyIHN0cmluZyBvciByZWdleHAuICBUaGUgY29tbWFu ZHMK4oCYeHJlZi1maW5kLXJlZmVyZW5jZXPigJksIOKAmHRhZ3Mtc2VhcmNo4oCZLCBhbmQg4oCY dGFncy1xdWVyeS1yZXBsYWNl4oCZIGZpbmQKZXZlcnkgb2NjdXJyZW5jZSBvZiB0aGUgaWRlbnRp ZmllciBvciByZWdleHAsIGFzIG9yZGluYXJ5IHNlYXJjaApjb21tYW5kcyBhbmQgcmVwbGFjZSBj b21tYW5kcyBkbyBpbiB0aGUgY3VycmVudCBidWZmZXIuCgogICBBcyBhbiBhbHRlcm5hdGl2ZSB0 byDigJh4cmVmLWZpbmQtcmVmZXJlbmNlc+KAmSBhbmQg4oCYdGFncy1zZWFyY2jigJksIHlvdQpj YW4gcnVuIOKAmGdyZXDigJkgYXMgYSBzdWJwcm9jZXNzIGFuZCBoYXZlIEVtYWNzIHNob3cgeW91 IHRoZSBtYXRjaGluZwpsaW5lcyBvbmUgYnkgb25lLiAgKk5vdGUgR3JlcCBTZWFyY2hpbmc6Oi4K CgoqKioqIDI4LjMuMS40IElkZW50aWZpZXIgSW5xdWlyaWVzCgrigJhDLU0taeKAmQrigJhNLTxU QUI+4oCZCiAgICAgUGVyZm9ybSBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGFyb3VuZCBwb2ludCwg cG9zc2libHkgdXNpbmcgdGhlCiAgICAgc2VsZWN0ZWQgdGFncyB0YWJsZSBpZiBvbmUgaXMgbG9h ZGVkICjigJhjb21wbGV0aW9uLWF0LXBvaW504oCZKS4KCuKAmE0teCB4cmVmLWZpbmQtYXByb3Bv cyA8UkVUPiBSRUdFWFAgPFJFVD7igJkKICAgICBEaXNwbGF5IGEgbGlzdCBvZiBhbGwga25vd24g aWRlbnRpZmllcnMgbWF0Y2hpbmcgUkVHRVhQLgoK4oCYTS14IGxpc3QtdGFncyA8UkVUPiBGSUxF IDxSRVQ+4oCZCiAgICAgRGlzcGxheSBhIGxpc3Qgb2YgdGhlIGlkZW50aWZpZXJzIGRlZmluZWQg aW4gdGhlIHByb2dyYW0gZmlsZSBGSUxFLgoK4oCYTS14IG5leHQtZmlsZeKAmQogICAgIFZpc2l0 IGZpbGVzIHJlY29yZGVkIGluIHRoZSBzZWxlY3RlZCB0YWdzIHRhYmxlLgoKICAgSW4gbW9zdCBw cm9ncmFtbWluZyBsYW5ndWFnZSBtb2RlcywgeW91IGNhbiB0eXBlIOKAmEMtTS1p4oCZIG9yIOKA mE0tPFRBQj7igJkKKOKAmGNvbXBsZXRpb24tYXQtcG9pbnTigJkpIHRvIGNvbXBsZXRlIHRoZSBz eW1ib2wgYXQgcG9pbnQuICBTb21lIG1vZGVzCnByb3ZpZGUgc3BlY2lhbGl6ZWQgY29tcGxldGlv biBmb3IgdGhpcyBjb21tYW5kIHRhaWxvcmVkIHRvIHRoZSBtb2RlOwpmb3IgdGhvc2UgdGhhdCBk b27igJl0LCBpZiB0aGVyZSBpcyBhIHRhZ3MgdGFibGUgbG9hZGVkLCB0aGlzIGNvbW1hbmQgY2Fu CnVzZSBpdCB0byBnZW5lcmF0ZSBjb21wbGV0aW9uIGNhbmRpZGF0ZXMuICAqTm90ZSBTeW1ib2wg Q29tcGxldGlvbjo6LgoKICAg4oCYTS14IGxpc3QtdGFnc+KAmSByZWFkcyB0aGUgbmFtZSBvZiBv bmUgb2YgdGhlIGZpbGVzIGNvdmVyZWQgYnkgdGhlCnNlbGVjdGVkIHRhZ3MgdGFibGUsIGFuZCBk aXNwbGF5cyBhIGxpc3Qgb2YgdGFncyBkZWZpbmVkIGluIHRoYXQgZmlsZS4KRG8gbm90IGluY2x1 ZGUgYSBkaXJlY3RvcnkgYXMgcGFydCBvZiB0aGUgZmlsZSBuYW1lIHVubGVzcyB0aGUgZmlsZSBu YW1lCnJlY29yZGVkIGluIHRoZSB0YWdzIHRhYmxlIGluY2x1ZGVzIGEgZGlyZWN0b3J5LiAgVGhp cyBjb21tYW5kIHdvcmtzCm9ubHkgd2l0aCB0aGUgZXRhZ3MgYmFja2VuZCwgYW5kIHJlcXVpcmVz IGEgdGFncyB0YWJsZSBmb3IgdGhlIHByb2plY3QKdG8gYmUgYXZhaWxhYmxlLiAgKk5vdGUgVGFn cyBUYWJsZXM6Oi4KCiAgIOKAmE0teCBuZXh0LWZpbGXigJkgdmlzaXRzIGZpbGVzIGNvdmVyZWQg YnkgdGhlIHNlbGVjdGVkIHRhZ3MgdGFibGUuICBUaGUKZmlyc3QgdGltZSBpdCBpcyBjYWxsZWQs IGl0IHZpc2l0cyB0aGUgZmlyc3QgZmlsZSBjb3ZlcmVkIGJ5IHRoZSB0YWJsZS4KRWFjaCBzdWJz ZXF1ZW50IGNhbGwgdmlzaXRzIHRoZSBuZXh0IGNvdmVyZWQgZmlsZSwgdW5sZXNzIGEgcHJlZml4 CmFyZ3VtZW50IGlzIHN1cHBsaWVkLCBpbiB3aGljaCBjYXNlIGl0IHJldHVybnMgdG8gdGhlIGZp cnN0IGZpbGUuICBUaGlzCmNvbW1hbmQgcmVxdWlyZXMgYSB0YWdzIHRhYmxlIHRvIGJlIHNlbGVj dGVkLgoKCioqKiAyOC4zLjIgVGFncyBUYWJsZXMKCkEgInRhZ3MgdGFibGUiIHJlY29yZHMgdGhl IHRhZ3MoMSkgZXh0cmFjdGVkIGJ5IHNjYW5uaW5nIHRoZSBzb3VyY2UgY29kZQpvZiBhIGNlcnRh aW4gcHJvZ3JhbSBvciBhIGNlcnRhaW4gZG9jdW1lbnQuICBUYWdzIGV4dHJhY3RlZCBmcm9tCmdl bmVyYXRlZCBmaWxlcyByZWZlcmVuY2UgdGhlIG9yaWdpbmFsIGZpbGVzLCByYXRoZXIgdGhhbiB0 aGUgZ2VuZXJhdGVkCmZpbGVzIHRoYXQgd2VyZSBzY2FubmVkIGR1cmluZyB0YWcgZXh0cmFjdGlv bi4gIEV4YW1wbGVzIG9mIGdlbmVyYXRlZApmaWxlcyBpbmNsdWRlIEMgZmlsZXMgZ2VuZXJhdGVk IGZyb20gQ3dlYiBzb3VyY2UgZmlsZXMsIGZyb20gYSBZYWNjCnBhcnNlciwgb3IgZnJvbSBMZXgg c2Nhbm5lciBkZWZpbml0aW9uczsg4oCYLmnigJkgcHJlcHJvY2Vzc2VkIEMgZmlsZXM7IGFuZApG b3J0cmFuIGZpbGVzIHByb2R1Y2VkIGJ5IHByZXByb2Nlc3Npbmcg4oCYLmZwcOKAmSBzb3VyY2Ug ZmlsZXMuCgogICBUbyBwcm9kdWNlIGEgdGFncyB0YWJsZSwgeW91IHJ1biB0aGUg4oCYZXRhZ3Pi gJkgc2hlbGwgY29tbWFuZCBvbiBhCmRvY3VtZW50IG9yIHRoZSBzb3VyY2UgY29kZSBmaWxlLiAg VGhlIOKAmGV0YWdz4oCZIHByb2dyYW0gd3JpdGVzIHRoZSB0YWdzCnRvIGEgInRhZ3MgdGFibGUg ZmlsZSIsIG9yICJ0YWdzIGZpbGUiIGluIHNob3J0LiAgVGhlIGNvbnZlbnRpb25hbCBuYW1lCmZv ciBhIHRhZ3MgZmlsZSBpcyDigJhUQUdT4oCZLiAgKk5vdGUgQ3JlYXRlIFRhZ3MgVGFibGU6Oi4g IChJdCBpcyBhbHNvCnBvc3NpYmxlIHRvIGNyZWF0ZSBhIHRhZ3MgdGFibGUgYnkgdXNpbmcgb25l IG9mIHRoZSBjb21tYW5kcyBmcm9tIG90aGVyCnBhY2thZ2VzIHRoYXQgY2FuIHByb2R1Y2Ugc3Vj aCB0YWJsZXMgaW4gdGhlIHNhbWUgZm9ybWF0LikKCiAgIEVtYWNzIHVzZXMgdGhlIHRhZ3MgdGFi bGVzIHZpYSB0aGUg4oCYZXRhZ3PigJkgcGFja2FnZSBhcyBvbmUgb2YgdGhlCnN1cHBvcnRlZCBi YWNrZW5kcyBmb3Ig4oCYeHJlZuKAmS4gIEJlY2F1c2UgdGFncyB0YWJsZXMgYXJlIHByb2R1Y2Vk IGJ5IHRoZQrigJhldGFnc+KAmSBjb21tYW5kIHRoYXQgaXMgcGFydCBvZiBhbiBFbWFjcyBkaXN0 cmlidXRpb24sIHdlIGRlc2NyaWJlIHRhZ3MKdGFibGVzIGluIG1vcmUgZGV0YWlsIGhlcmUuCgog ICBUaGUgRWJyb3dzZSBmYWNpbGl0eSBpcyBzaW1pbGFyIHRvIOKAmGV0YWdz4oCZIGJ1dCBzcGVj aWZpY2FsbHkgdGFpbG9yZWQKZm9yIEMrKy4gICpOb3RlIEVicm93c2U6IChlYnJvd3NlKVRvcC4g IFRoZSBTZW1hbnRpYyBwYWNrYWdlIHByb3ZpZGVzCmFub3RoZXIgd2F5IHRvIGdlbmVyYXRlIGFu ZCB1c2UgdGFncywgc2VwYXJhdGUgZnJvbSB0aGUg4oCYZXRhZ3PigJkKZmFjaWxpdHkuICAqTm90 ZSBTZW1hbnRpYzo6LgoKKyBNZW51OgoKICAtIFRhZyBTeW50YXg6OiAgICAgICAgICBUYWcgc3lu dGF4IGZvciB2YXJpb3VzIHR5cGVzIG9mIGNvZGUgYW5kIHRleHQgZmlsZXMuCiAgLSBDcmVhdGUg VGFncyBUYWJsZTo6ICAgQ3JlYXRpbmcgYSB0YWdzIHRhYmxlIHdpdGgg4oCYZXRhZ3PigJkuCiAg LSBFdGFncyBSZWdleHBzOjogICAgICAgQ3JlYXRlIGFyYml0cmFyeSB0YWdzIHVzaW5nIHJlZ3Vs YXIgZXhwcmVzc2lvbnMuCgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAo MSkgQSAidGFnIiBpcyBhIHN5bm9ueW0gZm9yIGlkZW50aWZpZXIgcmVmZXJlbmNlLiAgQ29tbWFu ZHMgYW5kCmZlYXR1cmVzIGJhc2VkIG9uIHRoZSDigJhldGFnc+KAmSBwYWNrYWdlIHRyYWRpdGlv bmFsbHkgdXNlIOKAnHRhZ+KAnSB3aXRoIHRoaXMKbWVhbmluZywgYW5kIHRoaXMgc3Vic2VjdGlv biBmb2xsb3dzIHRoYXQgdHJhZGl0aW9uLgoKCioqKiogMjguMy4yLjEgU291cmNlIEZpbGUgVGFn IFN5bnRheAoKSGVyZSBpcyBob3cgdGFnIHN5bnRheCBpcyBkZWZpbmVkIGZvciB0aGUgbW9zdCBw b3B1bGFyIGxhbmd1YWdlczoKCiAgIOKAoiBJbiBDIGNvZGUsIGFueSBDIGZ1bmN0aW9uIG9yIHR5 cGVkZWYgaXMgYSB0YWcsIGFuZCBzbyBhcmUKICAgICBkZWZpbml0aW9ucyBvZiDigJhzdHJ1Y3Ti gJksIOKAmHVuaW9u4oCZIGFuZCDigJhlbnVt4oCZLiAg4oCYI2RlZmluZeKAmSBtYWNybwogICAg IGRlZmluaXRpb25zLCDigJgjdW5kZWbigJkgYW5kIOKAmGVudW3igJkgY29uc3RhbnRzIGFyZSBh bHNvIHRhZ3MsIHVubGVzcwogICAgIHlvdSBzcGVjaWZ5IOKAmC0tbm8tZGVmaW5lc+KAmSB3aGVu IG1ha2luZyB0aGUgdGFncyB0YWJsZS4gIFNpbWlsYXJseSwKICAgICBnbG9iYWwgdmFyaWFibGVz IGFyZSB0YWdzLCB1bmxlc3MgeW91IHNwZWNpZnkg4oCYLS1uby1nbG9iYWxz4oCZLCBhbmQKICAg ICBzbyBhcmUgc3RydWN0IG1lbWJlcnMsIHVubGVzcyB5b3Ugc3BlY2lmeSDigJgtLW5vLW1lbWJl cnPigJkuICBVc2Ugb2YKICAgICDigJgtLW5vLWdsb2JhbHPigJksIOKAmC0tbm8tZGVmaW5lc+KA mSBhbmQg4oCYLS1uby1tZW1iZXJz4oCZIGNhbiBtYWtlIHRoZSB0YWdzCiAgICAgdGFibGUgZmls ZSBtdWNoIHNtYWxsZXIuCgogICAgIFlvdSBjYW4gdGFnIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBh bmQgZXh0ZXJuYWwgdmFyaWFibGVzIGluCiAgICAgYWRkaXRpb24gdG8gZnVuY3Rpb24gZGVmaW5p dGlvbnMgYnkgZ2l2aW5nIHRoZSDigJgtLWRlY2xhcmF0aW9uc+KAmQogICAgIG9wdGlvbiB0byDi gJhldGFnc+KAmS4KCiAgIOKAoiBJbiBDKysgY29kZSwgaW4gYWRkaXRpb24gdG8gYWxsIHRoZSB0 YWcgY29uc3RydWN0cyBvZiBDIGNvZGUsCiAgICAgbWVtYmVyIGZ1bmN0aW9ucyBhcmUgYWxzbyBy ZWNvZ25pemVkOyBtZW1iZXIgdmFyaWFibGVzIGFyZSBhbHNvCiAgICAgcmVjb2duaXplZCwgdW5s ZXNzIHlvdSB1c2UgdGhlIOKAmC0tbm8tbWVtYmVyc+KAmSBvcHRpb24uICDigJhvcGVyYXRvcuKA mQogICAgIGRlZmluaXRpb25zIGhhdmUgdGFnIG5hbWVzIGxpa2Ug4oCYb3BlcmF0b3Ir4oCZLiAg SWYgeW91IHNwZWNpZnkgdGhlCiAgICAg4oCYLS1jbGFzcy1xdWFsaWZ54oCZIG9wdGlvbiwgdGFn cyBmb3IgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMgaW4KICAgICBjbGFzc2VzIGFyZSBuYW1lZCDi gJhDTEFTUzo6VkFSSUFCTEXigJkgYW5kIOKAmENMQVNTOjpGVU5DVElPTuKAmS4gIEJ5CiAgICAg ZGVmYXVsdCwgY2xhc3MgbWV0aG9kcyBhbmQgbWVtYmVycyBhcmUgbm90IGNsYXNzLXF1YWxpZmll ZCwgd2hpY2gKICAgICBhbGxvd3MgdG8gaWRlbnRpZnkgdGhlaXIgbmFtZXMgaW4gdGhlIHNvdXJj ZXMgbW9yZSBhY2N1cmF0ZWx5LgoKICAg4oCiIEluIEphdmEgY29kZSwgdGFncyBpbmNsdWRlIGFs bCB0aGUgY29uc3RydWN0cyByZWNvZ25pemVkIGluIEMrKywKICAgICBwbHVzIHRoZSDigJhpbnRl cmZhY2XigJksIOKAmGV4dGVuZHPigJkgYW5kIOKAmGltcGxlbWVudHPigJkgY29uc3RydWN0cy4g IFRhZ3MKICAgICBmb3IgdmFyaWFibGVzIGFuZCBmdW5jdGlvbnMgaW4gY2xhc3NlcyBhcmUgbmFt ZWQg4oCYQ0xBU1MuVkFSSUFCTEXigJkKICAgICBhbmQg4oCYQ0xBU1MuRlVOQ1RJT07igJkuCgog ICDigKIgSW4gTGFUZVggZG9jdW1lbnRzLCB0aGUgYXJndW1lbnRzIGZvciDigJhcY2hhcHRlcuKA mSwg4oCYXHNlY3Rpb27igJksCiAgICAg4oCYXHN1YnNlY3Rpb27igJksIOKAmFxzdWJzdWJzZWN0 aW9u4oCZLCDigJhcZXFub+KAmSwg4oCYXGxhYmVs4oCZLCDigJhccmVm4oCZLAogICAgIOKAmFxj aXRl4oCZLCDigJhcYmliaXRlbeKAmSwg4oCYXHBhcnTigJksIOKAmFxhcHBlbmRpeOKAmSwg4oCY XGVudHJ54oCZLCDigJhcaW5kZXjigJksCiAgICAg4oCYXGRlZuKAmSwg4oCYXG5ld2NvbW1hbmTi gJksIOKAmFxyZW5ld2NvbW1hbmTigJksIOKAmFxuZXdlbnZpcm9ubWVudOKAmSBhbmQKICAgICDi gJhccmVuZXdlbnZpcm9ubWVudOKAmSBhcmUgdGFncy4KCiAgICAgT3RoZXIgY29tbWFuZHMgY2Fu IG1ha2UgdGFncyBhcyB3ZWxsLCBpZiB5b3Ugc3BlY2lmeSB0aGVtIGluIHRoZQogICAgIGVudmly b25tZW50IHZhcmlhYmxlIOKAmFRFWFRBR1PigJkgYmVmb3JlIGludm9raW5nIOKAmGV0YWdz4oCZ LiAgVGhlIHZhbHVlCiAgICAgb2YgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzaG91bGQgYmUg YSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZgogICAgIGNvbW1hbmQgbmFtZXMuICBGb3IgZXhhbXBs ZSwKCiAgICAgICAgICBURVhUQUdTPSJteWNvbW1hbmQ6bXlvdGhlcmNvbW1hbmQiCiAgICAgICAg ICBleHBvcnQgVEVYVEFHUwoKICAgICBzcGVjaWZpZXMgKHVzaW5nIEJvdXJuZSBzaGVsbCBzeW50 YXgpIHRoYXQgdGhlIGNvbW1hbmRzCiAgICAg4oCYXG15Y29tbWFuZOKAmSBhbmQg4oCYXG15b3Ro ZXJjb21tYW5k4oCZIGFsc28gZGVmaW5lIHRhZ3MuCgogICDigKIgSW4gTGlzcCBjb2RlLCBhbnkg ZnVuY3Rpb24gZGVmaW5lZCB3aXRoIOKAmGRlZnVu4oCZLCBhbnkgdmFyaWFibGUKICAgICBkZWZp bmVkIHdpdGgg4oCYZGVmdmFy4oCZIG9yIOKAmGRlZmNvbnN04oCZLCBhbmQgaW4gZ2VuZXJhbCB0 aGUgZmlyc3QKICAgICBhcmd1bWVudCBvZiBhbnkgZXhwcmVzc2lvbiB0aGF0IHN0YXJ0cyB3aXRo IOKAmChkZWbigJkgaW4gY29sdW1uIHplcm8KICAgICBpcyBhIHRhZy4gIEFzIGFuIGV4Y2VwdGlv biwgZXhwcmVzc2lvbnMgb2YgdGhlIGZvcm0g4oCYKGRlZnZhciBGT08p4oCZCiAgICAgYXJlIHRy ZWF0ZWQgYXMgZGVjbGFyYXRpb25zLCBhbmQgYXJlIG9ubHkgdGFnZ2VkIGlmIHRoZQogICAgIOKA mC0tZGVjbGFyYXRpb25z4oCZIG9wdGlvbiBpcyBnaXZlbi4KCiAgIOKAoiBJbiBTY2hlbWUgY29k ZSwgdGFncyBpbmNsdWRlIGFueXRoaW5nIGRlZmluZWQgd2l0aCDigJhkZWbigJkgb3Igd2l0aCBh CiAgICAgY29uc3RydWN0IHdob3NlIG5hbWUgc3RhcnRzIHdpdGgg4oCYZGVm4oCZLiAgVGhleSBh bHNvIGluY2x1ZGUKICAgICB2YXJpYWJsZXMgc2V0IHdpdGgg4oCYc2V0IeKAmSBhdCB0b3AgbGV2 ZWwgaW4gdGhlIGZpbGUuCgogICBTZXZlcmFsIG90aGVyIGxhbmd1YWdlcyBhcmUgYWxzbyBzdXBw b3J0ZWQ6CgogICDigKIgSW4gQWRhIGNvZGUsIGZ1bmN0aW9ucywgcHJvY2VkdXJlcywgcGFja2Fn ZXMsIHRhc2tzIGFuZCB0eXBlcyBhcmUKICAgICB0YWdzLiAgVXNlIHRoZSDigJgtLXBhY2thZ2Vz LW9ubHnigJkgb3B0aW9uIHRvIGNyZWF0ZSB0YWdzIGZvciBwYWNrYWdlcwogICAgIG9ubHkuCgog ICAgIEluIEFkYSwgdGhlIHNhbWUgbmFtZSBjYW4gYmUgdXNlZCBmb3IgZGlmZmVyZW50IGtpbmRz IG9mIGVudGl0eQogICAgIChlLmcuLCBmb3IgYSBwcm9jZWR1cmUgYW5kIGZvciBhIGZ1bmN0aW9u KS4gIEFsc28sIGZvciB0aGluZ3MgbGlrZQogICAgIHBhY2thZ2VzLCBwcm9jZWR1cmVzIGFuZCBm dW5jdGlvbnMsIHRoZXJlIGlzIHRoZSBzcGVjIChpLmUuLCB0aGUKICAgICBpbnRlcmZhY2UpIGFu ZCB0aGUgYm9keSAoaS5lLiwgdGhlIGltcGxlbWVudGF0aW9uKS4gIFRvIG1ha2UgaXQKICAgICBl YXNpZXIgdG8gcGljayB0aGUgZGVmaW5pdGlvbiB5b3Ugd2FudCwgQWRhIHRhZyBuYW1lcyBoYXZl IHN1ZmZpeGVzCiAgICAgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBlbnRpdHk6CgogICAgIOKAmC9i 4oCZCiAgICAgICAgICBwYWNrYWdlIGJvZHkuCiAgICAg4oCYL2bigJkKICAgICAgICAgIGZ1bmN0 aW9uLgogICAgIOKAmC9r4oCZCiAgICAgICAgICB0YXNrLgogICAgIOKAmC9w4oCZCiAgICAgICAg ICBwcm9jZWR1cmUuCiAgICAg4oCYL3PigJkKICAgICAgICAgIHBhY2thZ2Ugc3BlYy4KICAgICDi gJgvdOKAmQogICAgICAgICAgdHlwZS4KCiAgICAgVGh1cywg4oCYTS14IGZpbmQtdGFnIDxSRVQ+ IGJpZHVsZS9iIDxSRVQ+4oCZIHdpbGwgZ28gZGlyZWN0bHkgdG8gdGhlCiAgICAgYm9keSBvZiB0 aGUgcGFja2FnZSDigJhiaWR1bGXigJksIHdoaWxlIOKAmE0teCBmaW5kLXRhZyA8UkVUPiBiaWR1 bGUKICAgICA8UkVUPuKAmSB3aWxsIGp1c3Qgc2VhcmNoIGZvciBhbnkgdGFnIOKAmGJpZHVsZeKA mS4KCiAgIOKAoiBJbiBhc3NlbWJsZXIgY29kZSwgbGFiZWxzIGFwcGVhcmluZyBhdCB0aGUgc3Rh cnQgb2YgYSBsaW5lLAogICAgIGZvbGxvd2VkIGJ5IGEgY29sb24sIGFyZSB0YWdzLgoKICAg4oCi IEluIEJpc29uIG9yIFlhY2MgaW5wdXQgZmlsZXMsIGVhY2ggcnVsZSBkZWZpbmVzIGFzIGEgdGFn IHRoZQogICAgIG5vbnRlcm1pbmFsIGl0IGNvbnN0cnVjdHMuICBUaGUgcG9ydGlvbnMgb2YgdGhl IGZpbGUgdGhhdCBjb250YWluIEMKICAgICBjb2RlIGFyZSBwYXJzZWQgYXMgQyBjb2RlLgoKICAg 4oCiIEluIENvYm9sIGNvZGUsIHRhZ3MgYXJlIHBhcmFncmFwaCBuYW1lczsgdGhhdCBpcywgYW55 IHdvcmQgc3RhcnRpbmcKICAgICBpbiBjb2x1bW4gOCBhbmQgZm9sbG93ZWQgYnkgYSBwZXJpb2Qu CgogICDigKIgSW4gRXJsYW5nIGNvZGUsIHRoZSB0YWdzIGFyZSB0aGUgZnVuY3Rpb25zLCByZWNv cmRzIGFuZCBtYWNyb3MKICAgICBkZWZpbmVkIGluIHRoZSBmaWxlLgoKICAg4oCiIEluIEZvcnRy YW4gY29kZSwgZnVuY3Rpb25zLCBzdWJyb3V0aW5lcyBhbmQgYmxvY2sgZGF0YSBhcmUgdGFncy4K CiAgIOKAoiBJbiBHbyBjb2RlLCBwYWNrYWdlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgYXJlIHRh Z3MuCgogICDigKIgSW4gSFRNTCBpbnB1dCBmaWxlcywgdGhlIHRhZ3MgYXJlIHRoZSDigJh0aXRs ZeKAmSBhbmQgdGhlIOKAmGgx4oCZLCDigJhoMuKAmSwKICAgICDigJhoM+KAmSBoZWFkZXJzLiAg QWxzbywgdGFncyBhcmUg4oCYbmFtZT3igJkgaW4gYW5jaG9ycyBhbmQgYWxsCiAgICAgb2NjdXJy ZW5jZXMgb2Yg4oCYaWQ94oCZLgoKICAg4oCiIEluIEx1YSBpbnB1dCBmaWxlcywgYWxsIGZ1bmN0 aW9ucyBhcmUgdGFncy4KCiAgIOKAoiBJbiBtYWtlZmlsZXMsIHRhcmdldHMgYXJlIHRhZ3M7IGFk ZGl0aW9uYWxseSwgdmFyaWFibGVzIGFyZSB0YWdzCiAgICAgdW5sZXNzIHlvdSBzcGVjaWZ5IOKA mC0tbm8tZ2xvYmFsc+KAmS4KCiAgIOKAoiBJbiBPYmplY3RpdmUgQyBjb2RlLCB0YWdzIGluY2x1 ZGUgT2JqZWN0aXZlIEMgZGVmaW5pdGlvbnMgZm9yCiAgICAgY2xhc3NlcywgY2xhc3MgY2F0ZWdv cmllcywgbWV0aG9kcyBhbmQgcHJvdG9jb2xzLiAgVGFncyBmb3IKICAgICB2YXJpYWJsZXMgYW5k IGZ1bmN0aW9ucyBpbiBjbGFzc2VzIGFyZSBuYW1lZCDigJhDTEFTUzo6VkFSSUFCTEXigJkgYW5k CiAgICAg4oCYQ0xBU1M6OkZVTkNUSU9O4oCZLgoKICAg4oCiIEluIFBhc2NhbCBjb2RlLCB0aGUg dGFncyBhcmUgdGhlIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBkZWZpbmVkCiAgICAgaW4gdGhl IGZpbGUuCgogICDigKIgSW4gUGVybCBjb2RlLCB0aGUgdGFncyBhcmUgdGhlIHBhY2thZ2VzLCBz dWJyb3V0aW5lcyBhbmQgdmFyaWFibGVzCiAgICAgZGVmaW5lZCBieSB0aGUg4oCYcGFja2FnZeKA mSwg4oCYc3Vi4oCZLCDigJh1c2UgY29uc3RhbnTigJksIOKAmG154oCZLCBhbmQg4oCYbG9jYWzi gJkKICAgICBrZXl3b3Jkcy4gIFVzZSDigJgtLWdsb2JhbHPigJkgaWYgeW91IHdhbnQgdG8gdGFn IGdsb2JhbCB2YXJpYWJsZXMuCiAgICAgVGFncyBmb3Igc3Vicm91dGluZXMgYXJlIG5hbWVkIOKA mFBBQ0tBR0U6OlNVQuKAmS4gIFRoZSBuYW1lIGZvcgogICAgIHN1YnJvdXRpbmVzIGRlZmluZWQg aW4gdGhlIGRlZmF1bHQgcGFja2FnZSBpcyDigJhtYWluOjpTVULigJkuCgogICDigKIgSW4gUEhQ IGNvZGUsIHRhZ3MgYXJlIGZ1bmN0aW9ucywgY2xhc3NlcyBhbmQgZGVmaW5lcy4gIFZhcnMgYXJl CiAgICAgdGFncyB0b28sIHVubGVzcyB5b3UgdXNlIHRoZSDigJgtLW5vLW1lbWJlcnPigJkgb3B0 aW9uLgoKICAg4oCiIEluIFBvc3RTY3JpcHQgY29kZSwgdGhlIHRhZ3MgYXJlIHRoZSBmdW5jdGlv bnMuCgogICDigKIgSW4gUHJvbG9nIGNvZGUsIHRhZ3MgYXJlIHByZWRpY2F0ZXMgYW5kIHJ1bGVz IGF0IHRoZSBiZWdpbm5pbmcgb2YKICAgICBsaW5lLgoKICAg4oCiIEluIFB5dGhvbiBjb2RlLCDi gJhkZWbigJkgb3Ig4oCYY2xhc3PigJkgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUKICAgICBn ZW5lcmF0ZSBhIHRhZy4KCiAgIOKAoiBJbiBSdWJ5IGNvZGUsIOKAmGRlZuKAmSBvciDigJhjbGFz c+KAmSBvciDigJhtb2R1bGXigJkgYXQgdGhlIGJlZ2lubmluZyBvZiBhCiAgICAgbGluZSBnZW5l cmF0ZSBhIHRhZy4gIENvbnN0YW50cyBhbHNvIGdlbmVyYXRlIHRhZ3MuCgogICBZb3UgY2FuIGFs c28gZ2VuZXJhdGUgdGFncyBiYXNlZCBvbiByZWdleHAgbWF0Y2hpbmcgKCpub3RlIEV0YWdzClJl Z2V4cHM6OikgdG8gaGFuZGxlIG90aGVyIGZvcm1hdHMgYW5kIGxhbmd1YWdlcy4KCgoqKioqIDI4 LjMuMi4yIENyZWF0aW5nIFRhZ3MgVGFibGVzCgpUaGUg4oCYZXRhZ3PigJkgcHJvZ3JhbSBpcyB1 c2VkIHRvIGNyZWF0ZSBhIHRhZ3MgdGFibGUgZmlsZS4gIEl0IGtub3dzIHRoZQpzeW50YXggb2Yg c2V2ZXJhbCBsYW5ndWFnZXMsIGFzIGRlc2NyaWJlZCBpbiAqbm90ZSBUYWcgU3ludGF4OjouICBI ZXJlCmlzIGhvdyB0byBydW4g4oCYZXRhZ3PigJk6CgogICAgIGV0YWdzIElOUFVURklMRVPigKYK ClRoZSDigJhldGFnc+KAmSBwcm9ncmFtIHJlYWRzIHRoZSBzcGVjaWZpZWQgZmlsZXMsIGFuZCB3 cml0ZXMgYSB0YWdzIHRhYmxlCm5hbWVkIOKAmFRBR1PigJkgaW4gdGhlIGN1cnJlbnQgd29ya2lu ZyBkaXJlY3RvcnkuICBZb3UgY2FuIG9wdGlvbmFsbHkKc3BlY2lmeSBhIGRpZmZlcmVudCBmaWxl IG5hbWUgZm9yIHRoZSB0YWdzIHRhYmxlIGJ5IHVzaW5nIHRoZQrigJgtLW91dHB1dD1GSUxF4oCZ IG9wdGlvbjsgc3BlY2lmeWluZyDigJgt4oCZIGFzIGEgZmlsZSBuYW1lIHByaW50cyB0aGUgdGFn cwp0YWJsZSB0byBzdGFuZGFyZCBvdXRwdXQuICBZb3UgY2FuIGFsc28gYXBwZW5kIHRoZSBuZXds eSBjcmVhdGVkIHRhZ3MKdGFibGUgdG8gYW4gZXhpc3RpbmcgZmlsZSBieSB1c2luZyB0aGUg4oCY LS1hcHBlbmTigJkgb3B0aW9uLgoKICAgSWYgdGhlIHNwZWNpZmllZCBmaWxlcyBkb27igJl0IGV4 aXN0LCDigJhldGFnc+KAmSBsb29rcyBmb3IgY29tcHJlc3NlZAp2ZXJzaW9ucyBvZiB0aGVtIGFu ZCB1bmNvbXByZXNzZXMgdGhlbSB0byByZWFkIHRoZW0uICBVbmRlciBNUy1ET1MsCuKAmGV0YWdz 4oCZIGFsc28gbG9va3MgZm9yIGZpbGUgbmFtZXMgbGlrZSDigJhteWNvZGUuY2d64oCZIGlmIGl0 IGlzIGdpdmVuCuKAmG15Y29kZS5j4oCZIG9uIHRoZSBjb21tYW5kIGxpbmUgYW5kIOKAmG15Y29k ZS5j4oCZIGRvZXMgbm90IGV4aXN0LgoKICAgSWYgdGhlIHRhZ3MgdGFibGUgYmVjb21lcyBvdXRk YXRlZCBkdWUgdG8gY2hhbmdlcyBpbiB0aGUgZmlsZXMKZGVzY3JpYmVkIGluIGl0LCB5b3UgY2Fu IHVwZGF0ZSBpdCBieSBydW5uaW5nIHRoZSDigJhldGFnc+KAmSBwcm9ncmFtIGFnYWluLgpJZiB0 aGUgdGFncyB0YWJsZSBkb2VzIG5vdCByZWNvcmQgYSB0YWcsIG9yIHJlY29yZHMgaXQgZm9yIHRo ZSB3cm9uZwpmaWxlLCB0aGVuIEVtYWNzIHdpbGwgbm90IGJlIGFibGUgdG8gZmluZCB0aGF0IGRl ZmluaXRpb24gdW50aWwgeW91CnVwZGF0ZSB0aGUgdGFncyB0YWJsZS4gIEJ1dCBpZiB0aGUgcG9z aXRpb24gcmVjb3JkZWQgaW4gdGhlIHRhZ3MgdGFibGUKYmVjb21lcyBhIGxpdHRsZSBiaXQgd3Jv bmcgKGR1ZSB0byBvdGhlciBlZGl0aW5nKSwgRW1hY3Mgd2lsbCBzdGlsbCBiZQphYmxlIHRvIGZp bmQgdGhlIHJpZ2h0IHBvc2l0aW9uLCB3aXRoIGEgc2xpZ2h0IGRlbGF5LgoKICAgVGh1cywgdGhl cmUgaXMgbm8gbmVlZCB0byB1cGRhdGUgdGhlIHRhZ3MgdGFibGUgYWZ0ZXIgZWFjaCBlZGl0LiAg WW91CnNob3VsZCB1cGRhdGUgYSB0YWdzIHRhYmxlIHdoZW4geW91IGRlZmluZSBuZXcgdGFncyB0 aGF0IHlvdSB3YW50IHRvCmhhdmUgbGlzdGVkLCBvciB3aGVuIHlvdSBtb3ZlIHRhZyBkZWZpbml0 aW9ucyBmcm9tIG9uZSBmaWxlIHRvIGFub3RoZXIsCm9yIHdoZW4gY2hhbmdlcyBiZWNvbWUgc3Vi c3RhbnRpYWwuCgogICBZb3UgY2FuIG1ha2UgYSB0YWdzIHRhYmxlICJpbmNsdWRlIiBhbm90aGVy IHRhZ3MgdGFibGUsIGJ5IHBhc3NpbmcKdGhlIOKAmC0taW5jbHVkZT1GSUxF4oCZIG9wdGlvbiB0 byDigJhldGFnc+KAmS4gIEl0IHRoZW4gY292ZXJzIGFsbCB0aGUgZmlsZXMKY292ZXJlZCBieSB0 aGUgaW5jbHVkZWQgdGFncyBmaWxlLCBhcyB3ZWxsIGFzIGl0cyBvd24uCgogICBJZiB5b3Ugc3Bl Y2lmeSB0aGUgc291cmNlIGZpbGVzIHdpdGggcmVsYXRpdmUgZmlsZSBuYW1lcyB3aGVuIHlvdSBy dW4K4oCYZXRhZ3PigJksIHRoZSB0YWdzIGZpbGUgd2lsbCBjb250YWluIGZpbGUgbmFtZXMgcmVs YXRpdmUgdG8gdGhlIGRpcmVjdG9yeQp3aGVyZSB0aGUgdGFncyBmaWxlIHdhcyBpbml0aWFsbHkg d3JpdHRlbi4gIFRoaXMgd2F5LCB5b3UgY2FuIG1vdmUgYW4KZW50aXJlIGRpcmVjdG9yeSB0cmVl IGNvbnRhaW5pbmcgYm90aCB0aGUgdGFncyBmaWxlIGFuZCB0aGUgc291cmNlCmZpbGVzLCBhbmQg dGhlIHRhZ3MgZmlsZSB3aWxsIHN0aWxsIHJlZmVyIGNvcnJlY3RseSB0byB0aGUgc291cmNlIGZp bGVzLgpJZiB0aGUgdGFncyBmaWxlIGlzIOKAmC3igJkgb3IgaXMgaW4gdGhlIOKAmC9kZXbigJkg ZGlyZWN0b3J5LCBob3dldmVyLCB0aGUgZmlsZQpuYW1lcyBhcmUgbWFkZSByZWxhdGl2ZSB0byB0 aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4gIFRoaXMgaXMKdXNlZnVsLCBmb3IgZXhhbXBs ZSwgd2hlbiB3cml0aW5nIHRoZSB0YWdzIHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQuCgogICBXaGVu IHVzaW5nIGEgcmVsYXRpdmUgZmlsZSBuYW1lLCBpdCBzaG91bGQgbm90IGJlIGEgc3ltYm9saWMg bGluawpwb2ludGluZyB0byBhIHRhZ3MgZmlsZSBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnksIGJl Y2F1c2UgdGhpcyB3b3VsZApnZW5lcmFsbHkgcmVuZGVyIHRoZSBmaWxlIG5hbWVzIGludmFsaWQu CgogICBJZiB5b3Ugc3BlY2lmeSBhYnNvbHV0ZSBmaWxlIG5hbWVzIGFzIGFyZ3VtZW50cyB0byDi gJhldGFnc+KAmSwgdGhlbiB0aGUKdGFncyBmaWxlIHdpbGwgY29udGFpbiBhYnNvbHV0ZSBmaWxl IG5hbWVzLiAgVGhpcyB3YXksIHRoZSB0YWdzIGZpbGUKd2lsbCBzdGlsbCByZWZlciB0byB0aGUg c2FtZSBmaWxlcyBldmVuIGlmIHlvdSBtb3ZlIGl0LCBhcyBsb25nIGFzIHRoZQpzb3VyY2UgZmls ZXMgcmVtYWluIGluIHRoZSBzYW1lIHBsYWNlLiAgQWJzb2x1dGUgZmlsZSBuYW1lcyBzdGFydCB3 aXRoCuKAmC/igJksIG9yIHdpdGgg4oCYREVWSUNFOi/igJkgb24gTVMtRE9TIGFuZCBNUy1XaW5k b3dzLgoKICAgV2hlbiB5b3Ugd2FudCB0byBtYWtlIGEgdGFncyB0YWJsZSBmcm9tIGEgZ3JlYXQg bnVtYmVyIG9mIGZpbGVzLCB5b3UKbWF5IGhhdmUgcHJvYmxlbXMgbGlzdGluZyB0aGVtIG9uIHRo ZSBjb21tYW5kIGxpbmUsIGJlY2F1c2Ugc29tZSBzeXN0ZW1zCmhhdmUgYSBsaW1pdCBvbiBpdHMg bGVuZ3RoLiAgWW91IGNhbiBjaXJjdW12ZW50IHRoaXMgbGltaXQgYnkgdGVsbGluZwrigJhldGFn c+KAmSB0byByZWFkIHRoZSBmaWxlIG5hbWVzIGZyb20gaXRzIHN0YW5kYXJkIGlucHV0LCBieSB0 eXBpbmcgYSBkYXNoCmluIHBsYWNlIG9mIHRoZSBmaWxlIG5hbWVzLCBsaWtlIHRoaXM6CgogICAg IGZpbmQgLiAtbmFtZSAiKi5bY2hDSF0iIC1wcmludCB8IGV0YWdzIC0KCiAgIOKAmGV0YWdz4oCZ IHJlY29nbml6ZXMgdGhlIGxhbmd1YWdlIHVzZWQgaW4gYW4gaW5wdXQgZmlsZSBiYXNlZCBvbiBp dHMKZmlsZSBuYW1lIGFuZCBjb250ZW50cy4gIEl0IGZpcnN0IHRyaWVzIHRvIG1hdGNoIHRoZSBm aWxl4oCZcyBuYW1lIGFuZApleHRlbnNpb24gdG8gdGhlIG9uZXMgY29tbW9ubHkgdXNlZCB3aXRo IGNlcnRhaW4gbGFuZ3VhZ2VzLiAgU29tZQpsYW5ndWFnZXMgaGF2ZSBpbnRlcnByZXRlcnMgd2l0 aCBrbm93biBuYW1lcyAoZS5nLiwg4oCYcGVybOKAmSBmb3IgUGVybCBvcgrigJhwbOKAmSBmb3Ig UHJvbG9nKSwgc28g4oCYZXRhZ3PigJkgbmV4dCBsb29rcyBmb3IgYW4gaW50ZXJwcmV0ZXIgc3Bl Y2lmaWNhdGlvbgpvZiB0aGUgZm9ybSDigJgjIUlOVEVSUOKAmSBvbiB0aGUgZmlyc3QgbGluZSBv ZiBhbiBpbnB1dCBmaWxlLCBhbmQgbWF0Y2hlcwp0aGF0IGFnYWluc3Qga25vd24gaW50ZXJwcmV0 ZXJzLiAgSWYgbm9uZSBvZiB0aGF0IHdvcmtzLCBvciBpZiB5b3Ugd2FudAp0byBvdmVycmlkZSB0 aGUgYXV0b21hdGljIGRldGVjdGlvbiBvZiB0aGUgbGFuZ3VhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0 aGUKbGFuZ3VhZ2UgZXhwbGljaXRseSB3aXRoIHRoZSDigJgtLWxhbmd1YWdlPU5BTUXigJkgb3B0 aW9uLiAgWW91IGNhbiBpbnRlcm1peAp0aGVzZSBvcHRpb25zIHdpdGggZmlsZSBuYW1lczsgZWFj aCBvbmUgYXBwbGllcyB0byB0aGUgZmlsZSBuYW1lcyB0aGF0CmZvbGxvdyBpdC4gIFNwZWNpZnkg 4oCYLS1sYW5ndWFnZT1hdXRv4oCZIHRvIHRlbGwg4oCYZXRhZ3PigJkgdG8gcmVzdW1lIGd1ZXNz aW5nCnRoZSBsYW5ndWFnZSBmcm9tIHRoZSBmaWxlIG5hbWVzIGFuZCBmaWxlIGNvbnRlbnRzLiAg U3BlY2lmeQrigJgtLWxhbmd1YWdlPW5vbmXigJkgdG8gdHVybiBvZmYgbGFuZ3VhZ2Utc3BlY2lm aWMgcHJvY2Vzc2luZyBlbnRpcmVseTsKdGhlbiDigJhldGFnc+KAmSByZWNvZ25pemVzIHRhZ3Mg YnkgcmVnZXhwIG1hdGNoaW5nIGFsb25lICgqbm90ZSBFdGFncwpSZWdleHBzOjopLiAgVGhpcyBj b21lcyBpbiBoYW5keSB3aGVuIGFuIGlucHV0IGZpbGUgdXNlcyBhIGxhbmd1YWdlIG5vdAp5ZXQg c3VwcG9ydGVkIGJ5IOKAmGV0YWdz4oCZLCBhbmQgeW91IHdhbnQgdG8gYXZvaWQgaGF2aW5nIOKA mGV0YWdz4oCZIGZhbGwgYmFjawpvbiBGb3J0cmFuIGFuZCBDIGFzIHRoZSBkZWZhdWx0IGxhbmd1 YWdlcy4KCiAgIFRoZSBvcHRpb24g4oCYLS1wYXJzZS1zdGRpbj1GSUxF4oCZIGlzIG1vc3RseSB1 c2VmdWwgd2hlbiBjYWxsaW5nIOKAmGV0YWdz4oCZCmZyb20gcHJvZ3JhbXMuICBJdCBjYW4gYmUg dXNlZCAob25seSBvbmNlKSBpbiBwbGFjZSBvZiBhIGZpbGUgbmFtZSBvbgp0aGUgY29tbWFuZCBs aW5lLiAg4oCYZXRhZ3PigJkgd2lsbCByZWFkIGZyb20gc3RhbmRhcmQgaW5wdXQgYW5kIG1hcmsg dGhlCnByb2R1Y2VkIHRhZ3MgYXMgYmVsb25naW5nIHRvIHRoZSBmaWxlIEZJTEUuCgogICDigJhl dGFncyAtLWhlbHDigJkgb3V0cHV0cyB0aGUgbGlzdCBvZiB0aGUgbGFuZ3VhZ2VzIOKAmGV0YWdz 4oCZIGtub3dzLCBhbmQKdGhlIGZpbGUgbmFtZSBydWxlcyBmb3IgZ3Vlc3NpbmcgdGhlIGxhbmd1 YWdlLiAgSXQgYWxzbyBwcmludHMgYSBsaXN0IG9mCmFsbCB0aGUgYXZhaWxhYmxlIOKAmGV0YWdz 4oCZIG9wdGlvbnMsIHRvZ2V0aGVyIHdpdGggYSBzaG9ydCBleHBsYW5hdGlvbi4KSWYgZm9sbG93 ZWQgYnkgb25lIG9yIG1vcmUg4oCYLS1sYW5ndWFnZT1MQU5H4oCZIG9wdGlvbnMsIGl0IG91dHB1 dHMKZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRhZ3MgYXJlIGdlbmVyYXRlZCBmb3Ig TEFORy4KCgoqKioqIDI4LjMuMi4zIEV0YWdzIFJlZ2V4cHMKClRoZSDigJgtLXJlZ2V44oCZIG9w dGlvbiB0byDigJhldGFnc+KAmSBhbGxvd3MgdGFncyB0byBiZSByZWNvZ25pemVkIGJ5IHJlZ3Vs YXIKZXhwcmVzc2lvbiBtYXRjaGluZy4gIFlvdSBjYW4gaW50ZXJtaXggdGhpcyBvcHRpb24gd2l0 aCBmaWxlIG5hbWVzOyBlYWNoCm9uZSBhcHBsaWVzIHRvIHRoZSBzb3VyY2UgZmlsZXMgdGhhdCBm b2xsb3cgaXQuICBJZiB5b3Ugc3BlY2lmeSBtdWx0aXBsZQrigJgtLXJlZ2V44oCZIG9wdGlvbnMs IGFsbCBvZiB0aGVtIGFyZSB1c2VkIGluIHBhcmFsbGVsLiAgVGhlIHN5bnRheCBpczoKCiAgICAg LS1yZWdleD1be0xBTkdVQUdFfV0vVEFHUkVHRVhQL1tOQU1FUkVHRVhQL11NT0RJRklFUlMKClRo ZSBlc3NlbnRpYWwgcGFydCBvZiB0aGUgb3B0aW9uIHZhbHVlIGlzIFRBR1JFR0VYUCwgdGhlIHJl Z2V4cCBmb3IKbWF0Y2hpbmcgdGFncy4gIEl0IGlzIGFsd2F5cyB1c2VkIGFuY2hvcmVkLCB0aGF0 IGlzLCBpdCBvbmx5IG1hdGNoZXMgYXQKdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUuICBJZiB5b3Ug d2FudCB0byBhbGxvdyBpbmRlbnRlZCB0YWdzLCB1c2UgYQpyZWdleHAgdGhhdCBtYXRjaGVzIGlu aXRpYWwgd2hpdGVzcGFjZTsgc3RhcnQgaXQgd2l0aCDigJhbIFx0XSrigJkuCgogICBJbiB0aGVz ZSByZWd1bGFyIGV4cHJlc3Npb25zLCDigJhc4oCZIHF1b3RlcyB0aGUgbmV4dCBjaGFyYWN0ZXIs IGFuZCBhbGwKdGhlIEMgY2hhcmFjdGVyIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIHN1cHBvcnRlZDog 4oCYXGHigJkgZm9yIGJlbGwsIOKAmFxi4oCZIGZvcgpiYWNrIHNwYWNlLCDigJhcZeKAmSBmb3Ig ZXNjYXBlLCDigJhcZuKAmSBmb3IgZm9ybWZlZWQsIOKAmFxu4oCZIGZvciBuZXdsaW5lLCDigJhc cuKAmQpmb3IgY2FycmlhZ2UgcmV0dXJuLCDigJhcdOKAmSBmb3IgdGFiLCBhbmQg4oCYXHbigJkg Zm9yIHZlcnRpY2FsIHRhYi4gIEluCmFkZGl0aW9uLCDigJhcZOKAmSBzdGFuZHMgZm9yIHRoZSDi gJhERUzigJkgY2hhcmFjdGVyLgoKICAgSWRlYWxseSwgVEFHUkVHRVhQIHNob3VsZCBub3QgbWF0 Y2ggbW9yZSBjaGFyYWN0ZXJzIHRoYW4gYXJlIG5lZWRlZAp0byByZWNvZ25pemUgd2hhdCB5b3Ug d2FudCB0byB0YWcuICBJZiB0aGUgc3ludGF4IHJlcXVpcmVzIHlvdSB0byB3cml0ZQpUQUdSRUdF WFAgc28gaXQgbWF0Y2hlcyBtb3JlIGNoYXJhY3RlcnMgYmV5b25kIHRoZSB0YWcgaXRzZWxmLCB5 b3UKc2hvdWxkIGFkZCBhIE5BTUVSRUdFWFAsIHRvIHBpY2sgb3V0IGp1c3QgdGhlIHRhZy4gIFRo aXMgd2lsbCBlbmFibGUKRW1hY3MgdG8gZmluZCB0YWdzIG1vcmUgYWNjdXJhdGVseSBhbmQgdG8g ZG8gY29tcGxldGlvbiBvbiB0YWcgbmFtZXMKbW9yZSByZWxpYWJseS4gIEluIE5BTUVSRUdFWFAs IGl0IGlzIGZyZXF1ZW50bHkgY29udmVuaWVudCB0byB1c2Ug4oCcYmFjawpyZWZlcmVuY2Vz4oCd ICgqbm90ZSBSZWdleHAgQmFja3NsYXNoOjopIHRvIHBhcmVudGhlc2l6ZWQgZ3JvdXBpbmdzIOKA mFwoIOKApiBcKeKAmQppbiBUQUdSRUdFWFAuICBGb3IgZXhhbXBsZSwg4oCYXDHigJkgcmVmZXJz IHRvIHRoZSBmaXJzdCBzdWNoIHBhcmVudGhlc2l6ZWQKZ3JvdXBpbmcuICBZb3UgY2FuIGZpbmQg c29tZSBleGFtcGxlcyBvZiB0aGlzIGJlbG93LgoKICAgVGhlIE1PRElGSUVSUyBhcmUgYSBzZXF1 ZW5jZSBvZiB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyB0aGF0IG1vZGlmeQp0aGUgd2F5IOKAmGV0 YWdz4oCZIGRvZXMgdGhlIG1hdGNoaW5nLiAgQSByZWdleHAgd2l0aCBubyBtb2RpZmllcnMgaXMK YXBwbGllZCBzZXF1ZW50aWFsbHkgdG8gZWFjaCBsaW5lIG9mIHRoZSBpbnB1dCBmaWxlLCBpbiBh IGNhc2Utc2Vuc2l0aXZlCndheS4gIFRoZSBtb2RpZmllcnMgYW5kIHRoZWlyIG1lYW5pbmdzIGFy ZToKCuKAmGnigJkKICAgICBJZ25vcmUgY2FzZSB3aGVuIG1hdGNoaW5nIHRoaXMgcmVnZXhwLgri gJht4oCZCiAgICAgTWF0Y2ggdGhpcyByZWd1bGFyIGV4cHJlc3Npb24gYWdhaW5zdCB0aGUgd2hv bGUgZmlsZSwgc28gdGhhdAogICAgIG11bHRpLWxpbmUgbWF0Y2hlcyBhcmUgcG9zc2libGUuCuKA mHPigJkKICAgICBNYXRjaCB0aGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiBhZ2FpbnN0IHRoZSB3aG9s ZSBmaWxlLCBhbmQgYWxsb3cg4oCYLuKAmQogICAgIGluIFRBR1JFR0VYUCB0byBtYXRjaCBuZXds aW5lcy4KCiAgIFRoZSDigJgtUuKAmSBvcHRpb24gY2FuY2VscyBhbGwgdGhlIHJlZ2V4cHMgZGVm aW5lZCBieSBwcmVjZWRpbmcK4oCYLS1yZWdleOKAmSBvcHRpb25zLiAgSXQgdG9vIGFwcGxpZXMg dG8gdGhlIGZpbGUgbmFtZXMgZm9sbG93aW5nIGl0LgpIZXJl4oCZcyBhbiBleGFtcGxlOgoKICAg ICBldGFncyAtLXJlZ2V4PS9SRUcxL2kgdm9vLmRvbyAtLXJlZ2V4PS9SRUcyL20gXAogICAgICAg ICBiYXIuYmVyIC1SIC0tbGFuZz1saXNwIGxvcy5lcgoKSGVyZSDigJhldGFnc+KAmSBjaG9vc2Vz IHRoZSBwYXJzaW5nIGxhbmd1YWdlIGZvciDigJh2b28uZG9v4oCZIGFuZCDigJhiYXIuYmVy4oCZ CmFjY29yZGluZyB0byB0aGVpciBjb250ZW50cy4gIOKAmGV0YWdz4oCZIGFsc28gdXNlcyBSRUcx IHRvIHJlY29nbml6ZQphZGRpdGlvbmFsIHRhZ3MgaW4g4oCYdm9vLmRvb+KAmSwgYW5kIGJvdGgg UkVHMSBhbmQgUkVHMiB0byByZWNvZ25pemUKYWRkaXRpb25hbCB0YWdzIGluIOKAmGJhci5iZXLi gJkuICBSRUcxIGlzIGNoZWNrZWQgYWdhaW5zdCBlYWNoIGxpbmUgb2YK4oCYdm9vLmRvb+KAmSBh bmQg4oCYYmFyLmJlcuKAmSwgaW4gYSBjYXNlLWluc2Vuc2l0aXZlIHdheSwgd2hpbGUgUkVHMiBp cwpjaGVja2VkIGFnYWluc3QgdGhlIHdob2xlIOKAmGJhci5iZXLigJkgZmlsZSwgcGVybWl0dGlu ZyBtdWx0aS1saW5lIG1hdGNoZXMsCmluIGEgY2FzZS1zZW5zaXRpdmUgd2F5LiAg4oCYZXRhZ3Pi gJkgdXNlcyBvbmx5IHRoZSBMaXNwIHRhZ3MgcnVsZXMsIHdpdGggbm8KdXNlci1zcGVjaWZpZWQg cmVnZXhwIG1hdGNoaW5nLCB0byByZWNvZ25pemUgdGFncyBpbiDigJhsb3MuZXLigJkuCgogICBZ b3UgY2FuIHJlc3RyaWN0IGEg4oCYLS1yZWdleOKAmSBvcHRpb24gdG8gbWF0Y2ggb25seSBmaWxl cyBvZiBhIGdpdmVuCmxhbmd1YWdlIGJ5IHVzaW5nIHRoZSBvcHRpb25hbCBwcmVmaXgge0xBTkdV QUdFfS4gICjigJhldGFncyAtLWhlbHDigJkKcHJpbnRzIHRoZSBsaXN0IG9mIGxhbmd1YWdlcyBy ZWNvZ25pemVkIGJ5IOKAmGV0YWdz4oCZLikgIFRoaXMgaXMKcGFydGljdWxhcmx5IHVzZWZ1bCB3 aGVuIHN0b3JpbmcgbWFueSBwcmVkZWZpbmVkIHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yCuKAmGV0 YWdz4oCZIGluIGEgZmlsZS4gIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSB0YWdzIHRoZSDigJhERUZW QVLigJkgbWFjcm9zIGluCnRoZSBFbWFjcyBzb3VyY2UgZmlsZXMsIGZvciB0aGUgQyBsYW5ndWFn ZSBvbmx5OgoKICAgICAtLXJlZ2V4PSd7Y30vWyBcdF0qREVGVkFSX1tBLVpfIFx0KF0rIlwoW14i XStcKSIvXDEvJwoKV2hlbiB5b3UgaGF2ZSBjb21wbGV4IHJlZ3VsYXIgZXhwcmVzc2lvbnMsIHlv dSBjYW4gc3RvcmUgdGhlIGxpc3Qgb2YKdGhlbSBpbiBhIGZpbGUuICBUaGUgZm9sbG93aW5nIG9w dGlvbiBzeW50YXggaW5zdHJ1Y3RzIOKAmGV0YWdz4oCZIHRvIHJlYWQKdHdvIGZpbGVzIG9mIHJl Z3VsYXIgZXhwcmVzc2lvbnMuICBUaGUgcmVndWxhciBleHByZXNzaW9ucyBjb250YWluZWQgaW4K dGhlIHNlY29uZCBmaWxlIGFyZSBtYXRjaGVkIHdpdGhvdXQgcmVnYXJkIHRvIGNhc2UuCgogICAg IC0tcmVnZXg9QENBU0UtU0VOU0lUSVZFLUZJTEUgLS1pZ25vcmUtY2FzZS1yZWdleD1ASUdOT1JF LUNBU0UtRklMRQoKQSByZWdleCBmaWxlIGZvciDigJhldGFnc+KAmSBjb250YWlucyBvbmUgcmVn dWxhciBleHByZXNzaW9uIHBlciBsaW5lLgpFbXB0eSBsaW5lcywgYW5kIGxpbmVzIGJlZ2lubmlu ZyB3aXRoIHNwYWNlIG9yIHRhYiBhcmUgaWdub3JlZC4gIFdoZW4KdGhlIGZpcnN0IGNoYXJhY3Rl ciBpbiBhIGxpbmUgaXMg4oCYQOKAmSwg4oCYZXRhZ3PigJkgYXNzdW1lcyB0aGF0IHRoZSByZXN0 IG9mCnRoZSBsaW5lIGlzIHRoZSBuYW1lIG9mIGFub3RoZXIgZmlsZSBvZiByZWd1bGFyIGV4cHJl c3Npb25zOyB0aHVzLCBvbmUKc3VjaCBmaWxlIGNhbiBpbmNsdWRlIGFub3RoZXIgZmlsZS4gIEFs bCB0aGUgb3RoZXIgbGluZXMgYXJlIHRha2VuIHRvIGJlCnJlZ3VsYXIgZXhwcmVzc2lvbnMuICBJ ZiB0aGUgZmlyc3Qgbm9uLXdoaXRlc3BhY2UgdGV4dCBvbiB0aGUgbGluZSBpcwrigJgtLeKAmSwg dGhhdCBsaW5lIGlzIGEgY29tbWVudC4KCiAgIEZvciBleGFtcGxlLCB3ZSBjYW4gY3JlYXRlIGEg ZmlsZSBjYWxsZWQg4oCYZW1hY3MudGFnc+KAmSB3aXRoIHRoZQpmb2xsb3dpbmcgY29udGVudHM6 CgogICAgICAgICAgICAgLS0gVGhpcyBpcyBmb3IgR05VIEVtYWNzIEMgc291cmNlIGZpbGVzCiAg ICAge2N9L1sgXHRdKkRFRlZBUl9bQS1aXyBcdChdKyJcKFteIl0rXCkiL1wxLwoKYW5kIHRoZW4g dXNlIGl0IGxpa2UgdGhpczoKCiAgICAgZXRhZ3MgLS1yZWdleD1AZW1hY3MudGFncyAqLltjaF0g Ki8qLltjaF0KCiAgIEhlcmUgYXJlIHNvbWUgbW9yZSBleGFtcGxlcy4gIFRoZSByZWdleHBzIGFy ZSBxdW90ZWQgdG8gcHJvdGVjdCB0aGVtCmZyb20gc2hlbGwgaW50ZXJwcmV0YXRpb24uCgogICDi gKIgVGFnIE9jdGF2ZSBmaWxlczoKCiAgICAgICAgICBldGFncyAtLWxhbmd1YWdlPW5vbmUgXAog ICAgICAgICAgICAgICAgLS1yZWdleD0nL1sgXHRdKmZ1bmN0aW9uLio9WyBcdF0qXChbXiBcdF0q XClbIFx0XSooL1wxLycgXAogICAgICAgICAgICAgICAgLS1yZWdleD0nLyMjI2tleSBcKC4qXCkv XDEvJyBcCiAgICAgICAgICAgICAgICAtLXJlZ2V4PScvWyBcdF0qZ2xvYmFsWyBcdF0uKi8nIFwK ICAgICAgICAgICAgICAgICoubQoKICAgICBOb3RlIHRoYXQgdGFncyBhcmUgbm90IGdlbmVyYXRl ZCBmb3Igc2NyaXB0cywgc28gdGhhdCB5b3UgaGF2ZSB0bwogICAgIGFkZCBhIGxpbmUgYnkgeW91 cnNlbGYgb2YgdGhlIGZvcm0g4oCYIyMja2V5IFNDUklQVE5BTUXigJkgaWYgeW91IHdhbnQKICAg ICB0byBqdW1wIHRvIGl0LgoKICAg4oCiIFRhZyBUY2wgZmlsZXM6CgogICAgICAgICAgZXRhZ3Mg LS1sYW5ndWFnZT1ub25lIC0tcmVnZXg9Jy9wcm9jWyBcdF0rXChbXiBcdF0rXCkvXDEvJyAqLnRj bAoKICAg4oCiIFRhZyBWSERMIGZpbGVzOgoKICAgICAgICAgIGV0YWdzIC0tbGFuZ3VhZ2U9bm9u ZSBcCiAgICAgICAgICAgIC0tcmVnZXg9Jy9bIFx0XSpcKEFSQ0hJVEVDVFVSRVx8Q09ORklHVVJB VElPTlwpICtbXiBdKiArT0YvJyBcCiAgICAgICAgICAgIC0tcmVnZXg9Jy9bIFx0XSpcKEFUVFJJ QlVURVx8RU5USVRZXHxGVU5DVElPTlx8UEFDS0FHRVwKICAgICAgICAgICAgXCggQk9EWVwpP1x8 UFJPQ0VEVVJFXHxQUk9DRVNTXHxUWVBFXClbIFx0XStcKFteIFx0KF0rXCkvXDMvJwoKCioqKiAy OC4zLjMgU2VsZWN0aW5nIGEgVGFncyBUYWJsZQoKRW1hY3MgaGFzIGF0IGFueSB0aW1lIGF0IG1v c3Qgb25lICJzZWxlY3RlZCIgdGFncyB0YWJsZS4gIEFsbCB0aGUKY29tbWFuZHMgZm9yIHdvcmtp bmcgd2l0aCB0YWdzIHRhYmxlcyB1c2UgdGhlIHNlbGVjdGVkIG9uZS4gIFRvIHNlbGVjdCBhCnRh Z3MgdGFibGUsIHR5cGUg4oCYTS14IHZpc2l0LXRhZ3MtdGFibGXigJksIHdoaWNoIHJlYWRzIHRo ZSB0YWdzIHRhYmxlIGZpbGUKbmFtZSBhcyBhbiBhcmd1bWVudCwgd2l0aCDigJhUQUdT4oCZIGlu IHRoZSBkZWZhdWx0IGRpcmVjdG9yeSBhcyB0aGUKZGVmYXVsdC4KCiAgIEVtYWNzIGRvZXMgbm90 IGFjdHVhbGx5IHJlYWQgaW4gdGhlIHRhZ3MgdGFibGUgY29udGVudHMgdW50aWwgeW91IHRyeQp0 byB1c2UgdGhlbTsgYWxsIOKAmHZpc2l0LXRhZ3MtdGFibGXigJkgZG9lcyBpcyBzdG9yZSB0aGUg ZmlsZSBuYW1lIGluIHRoZQp2YXJpYWJsZSDigJh0YWdzLWZpbGUtbmFtZeKAmSwgYW5kIG5vdCBt dWNoIG1vcmUuICBUaGUgdmFyaWFibGXigJlzIGluaXRpYWwKdmFsdWUgaXMg4oCYbmls4oCZOyB0 aGF0IHZhbHVlIHRlbGxzIGFsbCB0aGUgY29tbWFuZHMgZm9yIHdvcmtpbmcgd2l0aCB0YWdzCnRh YmxlcyB0aGF0IHRoZXkgbXVzdCBhc2sgZm9yIGEgdGFncyB0YWJsZSBmaWxlIG5hbWUgdG8gdXNl LgoKICAgVXNpbmcg4oCYdmlzaXQtdGFncy10YWJsZeKAmSB3aGVuIGEgdGFncyB0YWJsZSBpcyBh bHJlYWR5IGxvYWRlZCBnaXZlcwp5b3UgYSBjaG9pY2U6IHlvdSBjYW4gYWRkIHRoZSBuZXcgdGFn cyB0YWJsZSB0byB0aGUgY3VycmVudCBsaXN0IG9mIHRhZ3MKdGFibGVzLCBvciBzdGFydCBhIG5l dyBsaXN0LiAgVGhlIHRhZ3MgY29tbWFuZHMgdXNlIGFsbCB0aGUgdGFncyB0YWJsZXMKaW4gdGhl IGN1cnJlbnQgbGlzdC4gIElmIHlvdSBzdGFydCBhIG5ldyBsaXN0LCB0aGUgbmV3IHRhZ3MgdGFi bGUgaXMKdXNlZCBfaW5zdGVhZF8gb2Ygb3RoZXJzLiAgSWYgeW91IGFkZCB0aGUgbmV3IHRhYmxl IHRvIHRoZSBjdXJyZW50IGxpc3QsCml0IGlzIHVzZWQgX2FzIHdlbGwgYXNfIHRoZSBvdGhlcnMu CgogICBZb3UgY2FuIHNwZWNpZnkgYSBwcmVjaXNlIGxpc3Qgb2YgdGFncyB0YWJsZXMgYnkgc2V0 dGluZyB0aGUgdmFyaWFibGUK4oCYdGFncy10YWJsZS1saXN04oCZIHRvIGEgbGlzdCBvZiBzdHJp bmdzLCBsaWtlIHRoaXM6CgogICAgIChzZXRxIHRhZ3MtdGFibGUtbGlzdAogICAgICAgICAgICco In4vLmVtYWNzLmQiICIvdXNyL2xvY2FsL2xpYi9lbWFjcy9zcmMiKSkKClRoaXMgdGVsbHMgdGhl IHRhZ3MgY29tbWFuZHMgdG8gbG9vayBhdCB0aGUg4oCYVEFHU+KAmSBmaWxlcyBpbiB5b3VyCuKA mH4vLmVtYWNzLmTigJkgZGlyZWN0b3J5IGFuZCBpbiB0aGUg4oCYL3Vzci9sb2NhbC9saWIvZW1h Y3Mvc3Jj4oCZIGRpcmVjdG9yeS4KVGhlIG9yZGVyIGRlcGVuZHMgb24gd2hpY2ggZmlsZSB5b3Ug YXJlIGluIGFuZCB3aGljaCB0YWdzIHRhYmxlIG1lbnRpb25zCnRoYXQgZmlsZS4KCiAgIERvIG5v dCBzZXQgYm90aCDigJh0YWdzLWZpbGUtbmFtZeKAmSBhbmQg4oCYdGFncy10YWJsZS1saXN04oCZ LgoKCioqIDI4LjQgRW1hY3MgRGV2ZWxvcG1lbnQgRW52aXJvbm1lbnQKCkVERSAoIkVtYWNzIERl dmVsb3BtZW50IEVudmlyb25tZW50IikgaXMgYSBwYWNrYWdlIHRoYXQgc2ltcGxpZmllcyB0aGUK dGFzayBvZiBjcmVhdGluZywgYnVpbGRpbmcsIGFuZCBkZWJ1Z2dpbmcgbGFyZ2UgcHJvZ3JhbXMg d2l0aCBFbWFjcy4gIEl0CnByb3ZpZGVzIHNvbWUgb2YgdGhlIGZlYXR1cmVzIG9mIGFuIElERSwg b3IgIkludGVncmF0ZWQgRGV2ZWxvcG1lbnQKRW52aXJvbm1lbnQiLCBpbiBFbWFjcy4KCiAgIFRo aXMgc2VjdGlvbiBwcm92aWRlcyBhIGJyaWVmIGRlc2NyaXB0aW9uIG9mIEVERSB1c2FnZS4gIEZv ciBmdWxsCmRldGFpbHMsIHNlZSAqbm90ZSBFREU6IChlZGUpVG9wLgoKICAgRURFIGlzIGltcGxl bWVudGVkIGFzIGEgZ2xvYmFsIG1pbm9yIG1vZGUgKCpub3RlIE1pbm9yIE1vZGVzOjopLiAgVG8K ZW5hYmxlIGl0LCB0eXBlIOKAmE0teCBnbG9iYWwtZWRlLW1vZGXigJkgb3IgY2xpY2sgb24gdGhl IOKAmFByb2plY3QgU3VwcG9ydAooRURFKeKAmSBpdGVtIGluIHRoZSDigJhUb29sc+KAmSBtZW51 LiAgWW91IGNhbiBhbHNvIGVuYWJsZSBFREUgZWFjaCB0aW1lIHlvdQpzdGFydCBFbWFjcywgYnkg YWRkaW5nIHRoZSBmb2xsb3dpbmcgbGluZSB0byB5b3VyIGluaXRpYWxpemF0aW9uIGZpbGU6Cgog ICAgIChnbG9iYWwtZWRlLW1vZGUgdCkKCkFjdGl2YXRpbmcgRURFIGFkZHMgYSBtZW51IG5hbWVk IOKAmERldmVsb3BtZW504oCZIHRvIHRoZSBtZW51IGJhci4gIE1hbnkKRURFIGNvbW1hbmRzLCBp bmNsdWRpbmcgdGhlIG9uZXMgZGVzY3JpYmVkIGJlbG93LCBjYW4gYmUgaW52b2tlZCBmcm9tCnRo aXMgbWVudS4KCiAgIEVERSBvcmdhbml6ZXMgZmlsZXMgaW50byAicHJvamVjdHMiLCB3aGljaCBj b3JyZXNwb25kIHRvIGRpcmVjdG9yeQp0cmVlcy4gIFRoZSAicHJvamVjdCByb290IiBpcyB0aGUg dG9wbW9zdCBkaXJlY3Rvcnkgb2YgYSBwcm9qZWN0LiAgVG8KZGVmaW5lIGEgbmV3IHByb2plY3Qs IHZpc2l0IGEgZmlsZSBpbiB0aGUgZGVzaXJlZCBwcm9qZWN0IHJvb3QgYW5kIHR5cGUK4oCYTS14 IGVkZS1uZXfigJkuICBUaGlzIGNvbW1hbmQgcHJvbXB0cyBmb3IgYSAicHJvamVjdCB0eXBlIiwg d2hpY2ggcmVmZXJzCnRvIHRoZSB1bmRlcmx5aW5nIG1ldGhvZCB0aGF0IEVERSB3aWxsIHVzZSB0 byBtYW5hZ2UgdGhlIHByb2plY3QgKCpub3RlCkVERTogKGVkZSlDcmVhdGluZyBhIHByb2plY3Qu KS4gIFRoZSBtb3N0IGNvbW1vbiBwcm9qZWN0IHR5cGVzIGFyZQrigJhNYWtl4oCZLCB3aGljaCB1 c2VzIE1ha2VmaWxlcywgYW5kIOKAmEF1dG9tYWtl4oCZLCB3aGljaCB1c2VzIEdOVSBBdXRvbWFr ZQooKm5vdGUgQXV0b21ha2U6IChhdXRvbWFrZSlUb3AuKS4gIEluIGJvdGggY2FzZXMsIEVERSBh bHNvIGNyZWF0ZXMgYQpmaWxlIG5hbWVkIOKAmFByb2plY3QuZWRl4oCZLCB3aGljaCBzdG9yZXMg aW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QuCgogICBBIHByb2plY3QgbWF5IGNvbnRhaW4g b25lIG9yIG1vcmUgInRhcmdldHMiLiAgQSB0YXJnZXQgY2FuIGJlIGFuCm9iamVjdCBmaWxlLCBl eGVjdXRhYmxlIHByb2dyYW0sIG9yIHNvbWUgb3RoZXIgdHlwZSBvZiBmaWxlLCB3aGljaCBpcwpi dWlsdCBmcm9tIG9uZSBvciBtb3JlIG9mIHRoZSBmaWxlcyBpbiB0aGUgcHJvamVjdC4KCiAgIFRv IGFkZCBhIG5ldyAidGFyZ2V0IiB0byBhIHByb2plY3QsIHR5cGUg4oCYQy1jIC4gdOKAmSAo4oCY TS14CmVkZS1uZXctdGFyZ2V04oCZKS4gIFRoaXMgY29tbWFuZCBhbHNvIGFza3MgaWYgeW91IHdp c2ggdG8gYWRkIHRoZSBjdXJyZW50CmZpbGUgdG8gdGhhdCB0YXJnZXQsIHdoaWNoIG1lYW5zIHRo YXQgdGhlIHRhcmdldCBpcyB0byBiZSBidWlsdCBmcm9tCnRoYXQgZmlsZS4gIEFmdGVyIHlvdSBo YXZlIGRlZmluZWQgYSB0YXJnZXQsIHlvdSBjYW4gYWRkIG1vcmUgZmlsZXMgdG8KaXQgYnkgdHlw aW5nIOKAmEMtYyAuIGHigJkgKOKAmGVkZS1hZGQtZmlsZeKAmSkuCgogICBUbyBidWlsZCBhIHRh cmdldCwgdHlwZSDigJhDLWMgLiBj4oCZICjigJhlZGUtY29tcGlsZS10YXJnZXTigJkpLiAgVG8g YnVpbGQKYWxsIHRoZSB0YXJnZXRzIGluIHRoZSBwcm9qZWN0LCB0eXBlIOKAmEMtYyAuIEPigJkg KOKAmGVkZS1jb21waWxlLXByb2plY3TigJkpLgpFREUgdXNlcyB0aGUgZmlsZSB0eXBlcyB0byBn dWVzcyBob3cgdGhlIHRhcmdldCBzaG91bGQgYmUgYnVpbHQuCgoKKiogMjguNSBNZXJnaW5nIEZp bGVzIHdpdGggRW1lcmdlCgpJdOKAmXMgbm90IHVudXN1YWwgZm9yIHByb2dyYW1tZXJzIHRvIGdl dCB0aGVpciBzaWduYWxzIGNyb3NzZWQgYW5kIG1vZGlmeQp0aGUgc2FtZSBwcm9ncmFtIGluIHR3 byBkaWZmZXJlbnQgZGlyZWN0aW9ucy4gIFRvIHJlY292ZXIgZnJvbSB0aGlzCmNvbmZ1c2lvbiwg eW91IG5lZWQgdG8gbWVyZ2UgdGhlIHR3byB2ZXJzaW9ucy4gIEVtZXJnZSBtYWtlcyB0aGlzCmVh c2llci4gIEZvciBvdGhlciB3YXlzIHRvIGNvbXBhcmUgZmlsZXMsIHNlZSAqbm90ZSBDb21wYXJp bmcgRmlsZXM6OiwKYW5kICpub3RlIEVkaWZmOiAoZWRpZmYpVG9wLgoKKyBNZW51OgoKICAtIE92 ZXJ2aWV3IG9mIEVtZXJnZTo6ICAgICBIb3cgdG8gc3RhcnQgRW1lcmdlLiAgQmFzaWMgY29uY2Vw dHMuCiAgLSBTdWJtb2RlcyBvZiBFbWVyZ2U6OiAgICAgRmFzdCBtb2RlIHZzLiBFZGl0IG1vZGUu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2tpcCBQcmVmZXJzIG1vZGUgYW5kIEF1dG8g QWR2YW5jZSBtb2RlLgogIC0gU3RhdGUgb2YgRGlmZmVyZW5jZTo6ICAgIFlvdSBkbyB0aGUgbWVy Z2UgYnkgc3BlY2lmeWluZyBzdGF0ZSBBIG9yIEIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3IgZWFjaCBkaWZmZXJlbmNlLgogIC0gTWVyZ2UgQ29tbWFuZHM6OiAgICAgICAgIENvbW1h bmRzIGZvciBzZWxlY3RpbmcgYSBkaWZmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoYW5naW5nIHN0YXRlcyBvZiBkaWZmZXJlbmNlcywgZXRjLgogIC0gRXhpdGluZyBFbWVy Z2U6OiAgICAgICAgIFdoYXQgdG8gZG8gd2hlbiB5b3XigJl2ZSBmaW5pc2hlZCB0aGUgbWVyZ2Uu CiAgLSBDb21iaW5pbmcgaW4gRW1lcmdlOjogICAgSG93IHRvIGtlZXAgYm90aCBhbHRlcm5hdGl2 ZXMgZm9yIGEgZGlmZmVyZW5jZS4KICAtIEZpbmUgUG9pbnRzIG9mIEVtZXJnZTo6ICBNaXNjZWxs YW5lb3VzIGlzc3Vlcy4KCgoqKiogMjguNS4xIE92ZXJ2aWV3IG9mIEVtZXJnZQoKVG8gc3RhcnQg RW1lcmdlLCBydW4gb25lIG9mIHRoZXNlIGZvdXIgY29tbWFuZHM6CgrigJhNLXggZW1lcmdlLWZp bGVz4oCZCiAgICAgTWVyZ2UgdHdvIHNwZWNpZmllZCBmaWxlcy4KCuKAmE0teCBlbWVyZ2UtZmls ZXMtd2l0aC1hbmNlc3RvcuKAmQogICAgIE1lcmdlIHR3byBzcGVjaWZpZWQgZmlsZXMsIHdpdGgg cmVmZXJlbmNlIHRvIGEgY29tbW9uIGFuY2VzdG9yLgoK4oCYTS14IGVtZXJnZS1idWZmZXJz4oCZ CiAgICAgTWVyZ2UgdHdvIGJ1ZmZlcnMuCgrigJhNLXggZW1lcmdlLWJ1ZmZlcnMtd2l0aC1hbmNl c3RvcuKAmQogICAgIE1lcmdlIHR3byBidWZmZXJzIHdpdGggcmVmZXJlbmNlIHRvIGEgY29tbW9u IGFuY2VzdG9yIGluIGEgdGhpcmQKICAgICBidWZmZXIuCgogICBUaGUgRW1lcmdlIGNvbW1hbmRz IGNvbXBhcmUgdHdvIGZpbGVzIG9yIGJ1ZmZlcnMsIGFuZCBkaXNwbGF5IHRoZQpjb21wYXJpc29u IGluIHRocmVlIGJ1ZmZlcnM6IG9uZSBmb3IgZWFjaCBpbnB1dCB0ZXh0ICh0aGUgIkEgYnVmZmVy IiBhbmQKdGhlICJCIGJ1ZmZlciIpLCBhbmQgb25lICh0aGUgIm1lcmdlIGJ1ZmZlciIpIHdoZXJl IG1lcmdpbmcgdGFrZXMgcGxhY2UuClRoZSBtZXJnZSBidWZmZXIgc2hvd3MgdGhlIGZ1bGwgbWVy Z2VkIHRleHQsIG5vdCBqdXN0IHRoZSBkaWZmZXJlbmNlcy4KV2hlcmV2ZXIgdGhlIHR3byBpbnB1 dCB0ZXh0cyBkaWZmZXIsIHlvdSBjYW4gY2hvb3NlIHdoaWNoIG9uZSBvZiB0aGVtIHRvCmluY2x1 ZGUgaW4gdGhlIG1lcmdlIGJ1ZmZlci4KCiAgIFRoZSBFbWVyZ2UgY29tbWFuZHMgdGhhdCB0YWtl IGlucHV0IGZyb20gZXhpc3RpbmcgYnVmZmVycyB1c2Ugb25seQp0aGUgYWNjZXNzaWJsZSBwb3J0 aW9ucyBvZiB0aG9zZSBidWZmZXJzLCBpZiB0aGV5IGFyZSBuYXJyb3dlZC4gICpOb3RlCk5hcnJv d2luZzo6LgoKICAgSWYgYSBjb21tb24gYW5jZXN0b3IgdmVyc2lvbiBpcyBhdmFpbGFibGUsIGZy b20gd2hpY2ggdGhlIHR3byB0ZXh0cwp0byBiZSBtZXJnZWQgd2VyZSBib3RoIGRlcml2ZWQsIEVt ZXJnZSBjYW4gdXNlIGl0IHRvIGd1ZXNzIHdoaWNoCmFsdGVybmF0aXZlIGlzIHJpZ2h0LiAgV2hl cmV2ZXIgb25lIGN1cnJlbnQgdmVyc2lvbiBhZ3JlZXMgd2l0aCB0aGUKYW5jZXN0b3IsIEVtZXJn ZSBwcmVzdW1lcyB0aGF0IHRoZSBvdGhlciBjdXJyZW50IHZlcnNpb24gaXMgYSBkZWxpYmVyYXRl CmNoYW5nZSB3aGljaCBzaG91bGQgYmUga2VwdCBpbiB0aGUgbWVyZ2VkIHZlcnNpb24uICBVc2Ug dGhlCuKAmHdpdGgtYW5jZXN0b3LigJkgY29tbWFuZHMgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBh IGNvbW1vbiBhbmNlc3RvciB0ZXh0LgpUaGVzZSBjb21tYW5kcyByZWFkIHRocmVlIGZpbGUgb3Ig YnVmZmVyIG5hbWVz4oCUdmFyaWFudCBBLCB2YXJpYW50IEIsIGFuZAp0aGUgY29tbW9uIGFuY2Vz dG9yLgoKICAgQWZ0ZXIgdGhlIGNvbXBhcmlzb24gaXMgZG9uZSBhbmQgdGhlIGJ1ZmZlcnMgYXJl IHByZXBhcmVkLCB0aGUKaW50ZXJhY3RpdmUgbWVyZ2luZyBzdGFydHMuICBZb3UgY29udHJvbCB0 aGUgbWVyZ2luZyBieSB0eXBpbmcgc3BlY2lhbAoibWVyZ2UgY29tbWFuZHMiIGluIHRoZSBtZXJn ZSBidWZmZXIgKCpub3RlIE1lcmdlIENvbW1hbmRzOjopLiAgRm9yIGVhY2gKcnVuIG9mIGRpZmZl cmVuY2VzIGJldHdlZW4gdGhlIGlucHV0IHRleHRzLCB5b3UgY2FuIGNob29zZSB3aGljaCBvbmUg b2YKdGhlbSB0byBrZWVwLCBvciBlZGl0IHRoZW0gYm90aCB0b2dldGhlci4KCiAgIFRoZSBtZXJn ZSBidWZmZXIgdXNlcyBhIHNwZWNpYWwgbWFqb3IgbW9kZSwgRW1lcmdlIG1vZGUsIHdpdGgKY29t bWFuZHMgZm9yIG1ha2luZyB0aGVzZSBjaG9pY2VzLiAgQnV0IHlvdSBjYW4gYWxzbyBlZGl0IHRo ZSBidWZmZXIKd2l0aCBvcmRpbmFyeSBFbWFjcyBjb21tYW5kcy4KCiAgIEF0IGFueSBnaXZlbiB0 aW1lLCB0aGUgYXR0ZW50aW9uIG9mIEVtZXJnZSBpcyBmb2N1c2VkIG9uIG9uZQpwYXJ0aWN1bGFy IGRpZmZlcmVuY2UsIGNhbGxlZCB0aGUgInNlbGVjdGVkIiBkaWZmZXJlbmNlLiAgVGhpcwpkaWZm ZXJlbmNlIGlzIG1hcmtlZCBvZmYgaW4gdGhlIHRocmVlIGJ1ZmZlcnMgbGlrZSB0aGlzOgoKICAg ICB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dgogICAgIFRFWFQgVEhBVCBESUZGRVJTCiAgICAgXl5eXl5e Xl5eXl5eXl5eXl5eXl4KCkVtZXJnZSBudW1iZXJzIGFsbCB0aGUgZGlmZmVyZW5jZXMgc2VxdWVu dGlhbGx5IGFuZCB0aGUgbW9kZSBsaW5lIGFsd2F5cwpzaG93cyB0aGUgbnVtYmVyIG9mIHRoZSBz ZWxlY3RlZCBkaWZmZXJlbmNlLgoKICAgTm9ybWFsbHksIHRoZSBtZXJnZSBidWZmZXIgc3RhcnRz IG91dCB3aXRoIHRoZSBBIHZlcnNpb24gb2YgdGhlIHRleHQuCkJ1dCB3aGVuIHRoZSBBIHZlcnNp b24gb2YgYSBkaWZmZXJlbmNlIGFncmVlcyB3aXRoIHRoZSBjb21tb24gYW5jZXN0b3IsCnRoZW4g dGhlIEIgdmVyc2lvbiBpcyBpbml0aWFsbHkgcHJlZmVycmVkIGZvciB0aGF0IGRpZmZlcmVuY2Uu CgogICBFbWVyZ2UgbGVhdmVzIHRoZSBtZXJnZWQgdGV4dCBpbiB0aGUgbWVyZ2UgYnVmZmVyIHdo ZW4geW91IGV4aXQuICBBdAp0aGF0IHBvaW50LCB5b3UgY2FuIHNhdmUgaXQgaW4gYSBmaWxlIHdp dGgg4oCYQy14IEMtd+KAmS4gIElmIHlvdSBnaXZlIGEKbnVtZXJpYyBhcmd1bWVudCB0byDigJhl bWVyZ2UtZmlsZXPigJkgb3Ig4oCYZW1lcmdlLWZpbGVzLXdpdGgtYW5jZXN0b3LigJksIGl0CnJl YWRzIHRoZSBuYW1lIG9mIHRoZSBvdXRwdXQgZmlsZSB1c2luZyB0aGUgbWluaWJ1ZmZlci4gIChU aGlzIGlzIHRoZQpsYXN0IGZpbGUgbmFtZSB0aG9zZSBjb21tYW5kcyByZWFkLikgIFRoZW4gZXhp dGluZyBmcm9tIEVtZXJnZSBzYXZlcyB0aGUKbWVyZ2VkIHRleHQgaW4gdGhlIG91dHB1dCBmaWxl LgoKICAgTm9ybWFsbHksIEVtZXJnZSBjb21tYW5kcyBzYXZlIHRoZSBvdXRwdXQgYnVmZmVyIGlu IGl0cyBmaWxlIHdoZW4geW91CmV4aXQuICBJZiB5b3UgYWJvcnQgRW1lcmdlIHdpdGgg4oCYQy1d 4oCZLCB0aGUgRW1lcmdlIGNvbW1hbmQgZG9lcyBub3Qgc2F2ZQp0aGUgb3V0cHV0IGJ1ZmZlciwg YnV0IHlvdSBjYW4gc2F2ZSBpdCB5b3Vyc2VsZiBpZiB5b3Ugd2lzaC4KCgoqKiogMjguNS4yIFN1 Ym1vZGVzIG9mIEVtZXJnZQoKWW91IGNhbiBjaG9vc2UgYmV0d2VlbiB0d28gbW9kZXMgZm9yIGdp dmluZyBtZXJnZSBjb21tYW5kczogRmFzdCBtb2RlCmFuZCBFZGl0IG1vZGUuICBJbiBGYXN0IG1v ZGUsIGJhc2ljIG1lcmdlIGNvbW1hbmRzIGFyZSBzaW5nbGUKY2hhcmFjdGVycywgYnV0IG9yZGlu YXJ5IEVtYWNzIGNvbW1hbmRzIGFyZSBkaXNhYmxlZC4gIFRoaXMgaXMKY29udmVuaWVudCBpZiB5 b3UgdXNlIG9ubHkgbWVyZ2UgY29tbWFuZHMuICBJbiBFZGl0IG1vZGUsIGFsbCBtZXJnZQpjb21t YW5kcyBzdGFydCB3aXRoIHRoZSBwcmVmaXgga2V5IOKAmEMtYyBDLWPigJksIGFuZCB0aGUgbm9y bWFsIEVtYWNzCmNvbW1hbmRzIGFyZSBhbHNvIGF2YWlsYWJsZS4gIFRoaXMgYWxsb3dzIGVkaXRp bmcgdGhlIG1lcmdlIGJ1ZmZlciwgYnV0CnNsb3dzIGRvd24gRW1lcmdlIG9wZXJhdGlvbnMuCgog ICBVc2Ug4oCYZeKAmSB0byBzd2l0Y2ggdG8gRWRpdCBtb2RlLCBhbmQg4oCYQy1jIEMtYyBm4oCZ IHRvIHN3aXRjaCB0byBGYXN0Cm1vZGUuICBUaGUgbW9kZSBsaW5lIGluZGljYXRlcyBFZGl0IGFu ZCBGYXN0IG1vZGVzIHdpdGgg4oCYReKAmSBhbmQg4oCYRuKAmS4KCiAgIEVtZXJnZSBoYXMgdHdv IGFkZGl0aW9uYWwgc3VibW9kZXMgdGhhdCBhZmZlY3QgaG93IHBhcnRpY3VsYXIgbWVyZ2UKY29t bWFuZHMgd29yazogQXV0byBBZHZhbmNlIG1vZGUgYW5kIFNraXAgUHJlZmVycyBtb2RlLgoKICAg SWYgQXV0byBBZHZhbmNlIG1vZGUgaXMgaW4gZWZmZWN0LCB0aGUg4oCYYeKAmSBhbmQg4oCYYuKA mSBjb21tYW5kcyBhZHZhbmNlCnRvIHRoZSBuZXh0IGRpZmZlcmVuY2UuICBUaGlzIGxldHMgeW91 IGdvIHRocm91Z2ggdGhlIG1lcmdlIGZhc3RlciBhcwpsb25nIGFzIHlvdSBzaW1wbHkgY2hvb3Nl IG9uZSBvZiB0aGUgYWx0ZXJuYXRpdmVzIGZyb20gdGhlIGlucHV0LiAgVGhlCm1vZGUgbGluZSBp bmRpY2F0ZXMgQXV0byBBZHZhbmNlIG1vZGUgd2l0aCDigJhB4oCZLgoKICAgSWYgU2tpcCBQcmVm ZXJzIG1vZGUgaXMgaW4gZWZmZWN0LCB0aGUg4oCYbuKAmSBhbmQg4oCYcOKAmSBjb21tYW5kcyBz a2lwIG92ZXIKZGlmZmVyZW5jZXMgaW4gc3RhdGVzIOKAnHByZWZlci1B4oCdIGFuZCDigJxwcmVm ZXItQuKAnSAoKm5vdGUgU3RhdGUgb2YKRGlmZmVyZW5jZTo6KS4gIFRodXMgeW91IHNlZSBvbmx5 IGRpZmZlcmVuY2VzIGZvciB3aGljaCBuZWl0aGVyIHZlcnNpb24KaXMgcHJlc3VtZWQgY29ycmVj dC4gIFRoZSBtb2RlIGxpbmUgaW5kaWNhdGVzIFNraXAgUHJlZmVycyBtb2RlIHdpdGgK4oCYU+KA mS4gIFRoaXMgbW9kZSBpcyBvbmx5IHJlbGV2YW50IHdoZW4gdGhlcmUgaXMgYW4gYW5jZXN0b3Iu CgogICBVc2UgdGhlIGNvbW1hbmQg4oCYcyBh4oCZICjigJhlbWVyZ2UtYXV0by1hZHZhbmNl4oCZ KSB0byBzZXQgb3IgY2xlYXIgQXV0bwpBZHZhbmNlIG1vZGUuICBVc2Ug4oCYcyBz4oCZICjigJhl bWVyZ2Utc2tpcC1wcmVmZXJz4oCZKSB0byBzZXQgb3IgY2xlYXIgU2tpcApQcmVmZXJzIG1vZGUu ICBUaGVzZSBjb21tYW5kcyB0dXJuIG9uIHRoZSBtb2RlIHdpdGggYSBwb3NpdGl2ZSBhcmd1bWVu dCwKdHVybiBpdCBvZmYgd2l0aCBhIG5lZ2F0aXZlIG9yIHplcm8gYXJndW1lbnQsIGFuZCB0b2dn bGUgdGhlIG1vZGUgd2l0aApubyBhcmd1bWVudC4KCgoqKiogMjguNS4zIFN0YXRlIG9mIGEgRGlm ZmVyZW5jZQoKSW4gdGhlIG1lcmdlIGJ1ZmZlciwgYSBkaWZmZXJlbmNlIGlzIG1hcmtlZCB3aXRo IGxpbmVzIG9mIOKAmHbigJkgYW5kIOKAmF7igJkKY2hhcmFjdGVycy4gIEVhY2ggZGlmZmVyZW5j ZSBoYXMgb25lIG9mIHRoZXNlIHNldmVuIHN0YXRlczoKCkEKICAgICBUaGUgZGlmZmVyZW5jZSBp cyBzaG93aW5nIHRoZSBBIHZlcnNpb24uICBUaGUg4oCYYeKAmSBjb21tYW5kIGFsd2F5cwogICAg IHByb2R1Y2VzIHRoaXMgc3RhdGU7IHRoZSBtb2RlIGxpbmUgaW5kaWNhdGVzIGl0IHdpdGgg4oCY QeKAmS4KCkIKICAgICBUaGUgZGlmZmVyZW5jZSBpcyBzaG93aW5nIHRoZSBCIHZlcnNpb24uICBU aGUg4oCYYuKAmSBjb21tYW5kIGFsd2F5cwogICAgIHByb2R1Y2VzIHRoaXMgc3RhdGU7IHRoZSBt b2RlIGxpbmUgaW5kaWNhdGVzIGl0IHdpdGgg4oCYQuKAmS4KCmRlZmF1bHQtQQpkZWZhdWx0LUIK ICAgICBUaGUgZGlmZmVyZW5jZSBpcyBzaG93aW5nIHRoZSBBIG9yIHRoZSBCIHN0YXRlIGJ5IGRl ZmF1bHQsIGJlY2F1c2UKICAgICB5b3UgaGF2ZW7igJl0IG1hZGUgYSBjaG9pY2UuICBBbGwgZGlm ZmVyZW5jZXMgc3RhcnQgaW4gdGhlIGRlZmF1bHQtQQogICAgIHN0YXRlIChhbmQgdGh1cyB0aGUg bWVyZ2UgYnVmZmVyIGlzIGEgY29weSBvZiB0aGUgQSBidWZmZXIpLCBleGNlcHQKICAgICB0aG9z ZSBmb3Igd2hpY2ggb25lIGFsdGVybmF0aXZlIGlzIHByZWZlcnJlZCAoc2VlIGJlbG93KS4KCiAg ICAgV2hlbiB5b3Ugc2VsZWN0IGEgZGlmZmVyZW5jZSwgaXRzIHN0YXRlIGNoYW5nZXMgZnJvbSBk ZWZhdWx0LUEgb3IKICAgICBkZWZhdWx0LUIgdG8gcGxhaW4gQSBvciBCLiAgVGh1cywgdGhlIHNl bGVjdGVkIGRpZmZlcmVuY2UgbmV2ZXIgaGFzCiAgICAgc3RhdGUgZGVmYXVsdC1BIG9yIGRlZmF1 bHQtQiwgYW5kIHRoZXNlIHN0YXRlcyBhcmUgbmV2ZXIgZGlzcGxheWVkCiAgICAgaW4gdGhlIG1v ZGUgbGluZS4KCiAgICAgVGhlIGNvbW1hbmQg4oCYZCBh4oCZIGNob29zZXMgZGVmYXVsdC1BIGFz IHRoZSBkZWZhdWx0IHN0YXRlLCBhbmQg4oCYZCBi4oCZCiAgICAgY2hvb3NlcyBkZWZhdWx0LUIu ICBUaGlzIGNob3NlbiBkZWZhdWx0IGFwcGxpZXMgdG8gYWxsIGRpZmZlcmVuY2VzCiAgICAgdGhh dCB5b3UgaGF2ZSBuZXZlciBzZWxlY3RlZCBhbmQgZm9yIHdoaWNoIG5vIGFsdGVybmF0aXZlIGlz CiAgICAgcHJlZmVycmVkLiAgSWYgeW91IGFyZSBtb3ZpbmcgdGhyb3VnaCB0aGUgbWVyZ2Ugc2Vx dWVudGlhbGx5LCB0aGUKICAgICBkaWZmZXJlbmNlcyB5b3UgaGF2ZW7igJl0IHNlbGVjdGVkIGFy ZSB0aG9zZSBmb2xsb3dpbmcgdGhlIHNlbGVjdGVkCiAgICAgb25lLiAgVGh1cywgd2hpbGUgbW92 aW5nIHNlcXVlbnRpYWxseSwgeW91IGNhbiBlZmZlY3RpdmVseSBtYWtlIHRoZQogICAgIEEgdmVy c2lvbiB0aGUgZGVmYXVsdCBmb3Igc29tZSBzZWN0aW9ucyBvZiB0aGUgbWVyZ2UgYnVmZmVyIGFu ZCB0aGUKICAgICBCIHZlcnNpb24gdGhlIGRlZmF1bHQgZm9yIG90aGVycyBieSB1c2luZyDigJhk IGHigJkgYW5kIOKAmGQgYuKAmSBiZXR3ZWVuCiAgICAgc2VjdGlvbnMuCgpwcmVmZXItQQpwcmVm ZXItQgogICAgIFRoZSBkaWZmZXJlbmNlIGlzIHNob3dpbmcgdGhlIEEgb3IgQiBzdGF0ZSBiZWNh dXNlIGl0IGlzCiAgICAgInByZWZlcnJlZCIuICBUaGlzIG1lYW5zIHRoYXQgeW91IGhhdmVu4oCZ dCBtYWRlIGFuIGV4cGxpY2l0IGNob2ljZSwKICAgICBidXQgb25lIGFsdGVybmF0aXZlIHNlZW1z IGxpa2VseSB0byBiZSByaWdodCBiZWNhdXNlIHRoZSBvdGhlcgogICAgIGFsdGVybmF0aXZlIGFn cmVlcyB3aXRoIHRoZSBjb21tb24gYW5jZXN0b3IuICBUaHVzLCB3aGVyZSB0aGUgQQogICAgIGJ1 ZmZlciBhZ3JlZXMgd2l0aCB0aGUgY29tbW9uIGFuY2VzdG9yLCB0aGUgQiB2ZXJzaW9uIGlzIHBy ZWZlcnJlZCwKICAgICBiZWNhdXNlIGNoYW5jZXMgYXJlIGl0IGlzIHRoZSBvbmUgdGhhdCB3YXMg YWN0dWFsbHkgY2hhbmdlZC4KCiAgICAgVGhlc2UgdHdvIHN0YXRlcyBhcmUgZGlzcGxheWVkIGlu IHRoZSBtb2RlIGxpbmUgYXMg4oCYQSrigJkgYW5kIOKAmEIq4oCZLgoKY29tYmluZWQKICAgICBU aGUgZGlmZmVyZW5jZSBpcyBzaG93aW5nIGEgY29tYmluYXRpb24gb2YgdGhlIEEgYW5kIEIgc3Rh dGVzLCBhcyBhCiAgICAgcmVzdWx0IG9mIHRoZSDigJh4IGPigJkgb3Ig4oCYeCBD4oCZIGNvbW1h bmRzLgoKICAgICBPbmNlIGEgZGlmZmVyZW5jZSBpcyBpbiB0aGlzIHN0YXRlLCB0aGUg4oCYYeKA mSBhbmQg4oCYYuKAmSBjb21tYW5kcyBkb27igJl0CiAgICAgZG8gYW55dGhpbmcgdG8gaXQgdW5s ZXNzIHlvdSBnaXZlIHRoZW0gYSBudW1lcmljIGFyZ3VtZW50LgoKICAgICBUaGUgbW9kZSBsaW5l IGRpc3BsYXlzIHRoaXMgc3RhdGUgYXMg4oCYY29tYuKAmS4KCgoqKiogMjguNS40IE1lcmdlIENv bW1hbmRzCgpIZXJlIGFyZSB0aGUgTWVyZ2UgY29tbWFuZHMgZm9yIEZhc3QgbW9kZTsgaW4gRWRp dCBtb2RlLCBwcmVjZWRlIHRoZW0Kd2l0aCDigJhDLWMgQy1j4oCZOgoK4oCYcOKAmQogICAgIFNl bGVjdCB0aGUgcHJldmlvdXMgZGlmZmVyZW5jZS4KCuKAmG7igJkKICAgICBTZWxlY3QgdGhlIG5l eHQgZGlmZmVyZW5jZS4KCuKAmGHigJkKICAgICBDaG9vc2UgdGhlIEEgdmVyc2lvbiBvZiB0aGlz IGRpZmZlcmVuY2UuCgrigJhi4oCZCiAgICAgQ2hvb3NlIHRoZSBCIHZlcnNpb24gb2YgdGhpcyBk aWZmZXJlbmNlLgoK4oCYQy11IE4gauKAmQogICAgIFNlbGVjdCBkaWZmZXJlbmNlIG51bWJlciBO LgoK4oCYLuKAmQogICAgIFNlbGVjdCB0aGUgZGlmZmVyZW5jZSBjb250YWluaW5nIHBvaW50LgoK 4oCYceKAmQogICAgIFF1aXTigJRmaW5pc2ggdGhlIG1lcmdlLgoK4oCYQy1d4oCZCiAgICAgQWJv cnTigJRleGl0IG1lcmdpbmcgYW5kIGRvIG5vdCBzYXZlIHRoZSBvdXRwdXQuCgrigJhm4oCZCiAg ICAgR28gaW50byBGYXN0IG1vZGUuICAoSW4gRWRpdCBtb2RlLCB0aGlzIGlzIGFjdHVhbGx5IOKA mEMtYyBDLWMgZuKAmS4pCgrigJhl4oCZCiAgICAgR28gaW50byBFZGl0IG1vZGUuCgrigJhs4oCZ CiAgICAgUmVjZW50ZXIgKGxpa2Ug4oCYQy1s4oCZKSBhbGwgdGhyZWUgd2luZG93cy4gIFdpdGgg YW4gYXJndW1lbnQsCiAgICAgcmVlc3RhYmxpc2ggdGhlIGRlZmF1bHQgdGhyZWUtd2luZG93IGRp c3BsYXkuCgrigJgt4oCZCiAgICAgU3BlY2lmeSBwYXJ0IG9mIGEgcHJlZml4IG51bWVyaWMgYXJn dW1lbnQuCgrigJhESUdJVOKAmQogICAgIEFsc28gc3BlY2lmeSBwYXJ0IG9mIGEgcHJlZml4IG51 bWVyaWMgYXJndW1lbnQuCgrigJhkIGHigJkKICAgICBDaG9vc2UgdGhlIEEgdmVyc2lvbiBhcyB0 aGUgZGVmYXVsdCBmcm9tIGhlcmUgZG93biBpbiB0aGUgbWVyZ2UKICAgICBidWZmZXIuCgrigJhk IGLigJkKICAgICBDaG9vc2UgdGhlIEIgdmVyc2lvbiBhcyB0aGUgZGVmYXVsdCBmcm9tIGhlcmUg ZG93biBpbiB0aGUgbWVyZ2UKICAgICBidWZmZXIuCgrigJhjIGHigJkKICAgICBDb3B5IHRoZSBB IHZlcnNpb24gb2YgdGhpcyBkaWZmZXJlbmNlIGludG8gdGhlIGtpbGwgcmluZy4KCuKAmGMgYuKA mQogICAgIENvcHkgdGhlIEIgdmVyc2lvbiBvZiB0aGlzIGRpZmZlcmVuY2UgaW50byB0aGUga2ls bCByaW5nLgoK4oCYaSBh4oCZCiAgICAgSW5zZXJ0IHRoZSBBIHZlcnNpb24gb2YgdGhpcyBkaWZm ZXJlbmNlIGF0IHBvaW50LgoK4oCYaSBi4oCZCiAgICAgSW5zZXJ0IHRoZSBCIHZlcnNpb24gb2Yg dGhpcyBkaWZmZXJlbmNlIGF0IHBvaW50LgoK4oCYbeKAmQogICAgIFB1dCBwb2ludCBhbmQgbWFy ayBhcm91bmQgdGhlIGRpZmZlcmVuY2UuCgrigJhe4oCZCiAgICAgU2Nyb2xsIGFsbCB0aHJlZSB3 aW5kb3dzIGRvd24gKGxpa2Ug4oCYTS124oCZKS4KCuKAmHbigJkKICAgICBTY3JvbGwgYWxsIHRo cmVlIHdpbmRvd3MgdXAgKGxpa2Ug4oCYQy124oCZKS4KCuKAmDzigJkKICAgICBTY3JvbGwgYWxs IHRocmVlIHdpbmRvd3MgbGVmdCAobGlrZSDigJhDLXggPOKAmSkuCgrigJg+4oCZCiAgICAgU2Ny b2xsIGFsbCB0aHJlZSB3aW5kb3dzIHJpZ2h0IChsaWtlIOKAmEMteCA+4oCZKS4KCuKAmHzigJkK ICAgICBSZXNldCBob3Jpem9udGFsIHNjcm9sbCBvbiBhbGwgdGhyZWUgd2luZG93cy4KCuKAmHgg MeKAmQogICAgIFNocmluayB0aGUgbWVyZ2Ugd2luZG93IHRvIG9uZSBsaW5lLiAgKFVzZSDigJhD LXUgbOKAmSB0byByZXN0b3JlIGl0IHRvCiAgICAgZnVsbCBzaXplLikKCuKAmHggY+KAmQogICAg IENvbWJpbmUgdGhlIHR3byB2ZXJzaW9ucyBvZiB0aGlzIGRpZmZlcmVuY2UgKCpub3RlIENvbWJp bmluZyBpbgogICAgIEVtZXJnZTo6KS4KCuKAmHggZuKAmQogICAgIFNob3cgdGhlIG5hbWVzIG9m IHRoZSBmaWxlcy9idWZmZXJzIEVtZXJnZSBpcyBvcGVyYXRpbmcgb24sIGluIGEKICAgICBIZWxw IHdpbmRvdy4gIChVc2Ug4oCYQy11IGzigJkgdG8gcmVzdG9yZSB3aW5kb3dzLikKCuKAmHggauKA mQogICAgIEpvaW4gdGhpcyBkaWZmZXJlbmNlIHdpdGggdGhlIGZvbGxvd2luZyBvbmUuICAo4oCY Qy11IHggauKAmSBqb2lucyB0aGlzCiAgICAgZGlmZmVyZW5jZSB3aXRoIHRoZSBwcmV2aW91cyBv bmUuKQoK4oCYeCBz4oCZCiAgICAgU3BsaXQgdGhpcyBkaWZmZXJlbmNlIGludG8gdHdvIGRpZmZl cmVuY2VzLiAgQmVmb3JlIHlvdSB1c2UgdGhpcwogICAgIGNvbW1hbmQsIHBvc2l0aW9uIHBvaW50 IGluIGVhY2ggb2YgdGhlIHRocmVlIGJ1ZmZlcnMgYXQgdGhlIHBsYWNlCiAgICAgd2hlcmUgeW91 IHdhbnQgdG8gc3BsaXQgdGhlIGRpZmZlcmVuY2UuCgrigJh4IHTigJkKICAgICBUcmltIGlkZW50 aWNhbCBsaW5lcyBvZmYgdGhlIHRvcCBhbmQgYm90dG9tIG9mIHRoZSBkaWZmZXJlbmNlLgogICAg IFN1Y2ggbGluZXMgb2NjdXIgd2hlbiB0aGUgQSBhbmQgQiB2ZXJzaW9ucyBhcmUgaWRlbnRpY2Fs IGJ1dCBkaWZmZXIKICAgICBmcm9tIHRoZSBhbmNlc3RvciB2ZXJzaW9uLgoKCioqKiAyOC41LjUg RXhpdGluZyBFbWVyZ2UKClRoZSDigJhx4oCZIGNvbW1hbmQgKOKAmGVtZXJnZS1xdWl04oCZKSBm aW5pc2hlcyB0aGUgbWVyZ2UsIHN0b3JpbmcgdGhlIHJlc3VsdHMKaW50byB0aGUgb3V0cHV0IGZp bGUgaWYgeW91IHNwZWNpZmllZCBvbmUuICBJdCByZXN0b3JlcyB0aGUgQSBhbmQgQgpidWZmZXJz IHRvIHRoZWlyIHByb3BlciBjb250ZW50cywgb3Iga2lsbHMgdGhlbSBpZiB0aGV5IHdlcmUgY3Jl YXRlZCBieQpFbWVyZ2UgYW5kIHlvdSBoYXZlbuKAmXQgY2hhbmdlZCB0aGVtLiAgSXQgYWxzbyBk aXNhYmxlcyB0aGUgRW1lcmdlCmNvbW1hbmRzIGluIHRoZSBtZXJnZSBidWZmZXIsIHNpbmNlIGV4 ZWN1dGluZyB0aGVtIGxhdGVyIGNvdWxkIGRhbWFnZQp0aGUgY29udGVudHMgb2YgdGhlIHZhcmlv dXMgYnVmZmVycy4KCiAgIOKAmEMtXeKAmSBhYm9ydHMgdGhlIG1lcmdlLiAgVGhpcyBtZWFucyBl eGl0aW5nIHdpdGhvdXQgd3JpdGluZyB0aGUKb3V0cHV0IGZpbGUuICBJZiB5b3UgZGlkbuKAmXQg c3BlY2lmeSBhbiBvdXRwdXQgZmlsZSwgdGhlbiB0aGVyZSBpcyBubwpyZWFsIGRpZmZlcmVuY2Ug YmV0d2VlbiBhYm9ydGluZyBhbmQgZmluaXNoaW5nIHRoZSBtZXJnZS4KCiAgIElmIHRoZSBFbWVy Z2UgY29tbWFuZCB3YXMgY2FsbGVkIGZyb20gYW5vdGhlciBMaXNwIHByb2dyYW0sIHRoZW4gaXRz CnJldHVybiB2YWx1ZSBpcyDigJh04oCZIGZvciBzdWNjZXNzZnVsIGNvbXBsZXRpb24sIG9yIOKA mG5pbOKAmSBpZiB5b3UgYWJvcnQuCgoKKioqIDI4LjUuNiBDb21iaW5pbmcgdGhlIFR3byBWZXJz aW9ucwoKU29tZXRpbWVzIHlvdSB3YW50IHRvIGtlZXAgX2JvdGhfIGFsdGVybmF0aXZlcyBmb3Ig YSBwYXJ0aWN1bGFyCmRpZmZlcmVuY2UuICBUbyBkbyB0aGlzLCB1c2Ug4oCYeCBj4oCZLCB3aGlj aCBlZGl0cyB0aGUgbWVyZ2UgYnVmZmVyIGxpa2UKdGhpczoKCiAgICAgI2lmZGVmIE5FVwogICAg IFZFUlNJT04gRlJPTSBCIEJVRkZFUgogICAgICNlbHNlIC8qIG5vdCBORVcgKi8KICAgICBWRVJT SU9OIEZST00gQSBCVUZGRVIKICAgICAjZW5kaWYgLyogbm90IE5FVyAqLwoKV2hpbGUgdGhpcyBl eGFtcGxlIHNob3dzIEMgcHJlcHJvY2Vzc29yIGNvbmRpdGlvbmFscyBkZWxpbWl0aW5nIHRoZSB0 d28KYWx0ZXJuYXRpdmUgdmVyc2lvbnMsIHlvdSBjYW4gc3BlY2lmeSB0aGUgc3RyaW5ncyB0byB1 c2UgYnkgc2V0dGluZyB0aGUKdmFyaWFibGUg4oCYZW1lcmdlLWNvbWJpbmUtdmVyc2lvbnMtdGVt cGxhdGXigJkgdG8gYSBzdHJpbmcgb2YgeW91ciBjaG9pY2UuCkluIHRoZSBzdHJpbmcsIOKAmCVh 4oCZIHNheXMgd2hlcmUgdG8gcHV0IHZlcnNpb24gQSwgYW5kIOKAmCVi4oCZIHNheXMgd2hlcmUg dG8KcHV0IHZlcnNpb24gQi4gIFRoZSBkZWZhdWx0IHNldHRpbmcsIHdoaWNoIHByb2R1Y2VzIHRo ZSByZXN1bHRzIHNob3duCmFib3ZlLCBsb29rcyBsaWtlIHRoaXM6CgogICAgICIjaWZkZWYgTkVX XG4lYiNlbHNlIC8qIG5vdCBORVcgKi9cbiVhI2VuZGlmIC8qIG5vdCBORVcgKi9cbiIKCgoqKiog MjguNS43IEZpbmUgUG9pbnRzIG9mIEVtZXJnZQoKRHVyaW5nIHRoZSBtZXJnZSwgeW91IG11c3Ru 4oCZdCB0cnkgdG8gZWRpdCB0aGUgQSBhbmQgQiBidWZmZXJzIHlvdXJzZWxmLgpFbWVyZ2UgbW9k aWZpZXMgdGhlbSB0ZW1wb3JhcmlseSwgYnV0IHVsdGltYXRlbHkgcHV0cyB0aGVtIGJhY2sgdGhl IHdheQp0aGV5IHdlcmUuCgogICBZb3UgY2FuIGhhdmUgYW55IG51bWJlciBvZiBtZXJnZXMgZ29p bmcgYXQgb25jZeKAlGp1c3QgZG9u4oCZdCB1c2UgYW55Cm9uZSBidWZmZXIgYXMgaW5wdXQgdG8g bW9yZSB0aGFuIG9uZSBtZXJnZSBhdCBvbmNlLCBzaW5jZSB0aGUgdGVtcG9yYXJ5CmNoYW5nZXMg bWFkZSBpbiB0aGVzZSBidWZmZXJzIHdvdWxkIGdldCBpbiBlYWNoIG90aGVy4oCZcyB3YXkuCgog ICBTdGFydGluZyBFbWVyZ2UgY2FuIHRha2UgYSBsb25nIHRpbWUgYmVjYXVzZSBpdCBuZWVkcyB0 byBjb21wYXJlIHRoZQpmaWxlcyBmdWxseS4gIEVtYWNzIGNhbuKAmXQgZG8gYW55dGhpbmcgZWxz ZSB1bnRpbCDigJhkaWZm4oCZIGZpbmlzaGVzLgpQZXJoYXBzIGluIHRoZSBmdXR1cmUgc29tZW9u ZSB3aWxsIGNoYW5nZSBFbWVyZ2UgdG8gZG8gdGhlIGNvbXBhcmlzb24gaW4KdGhlIGJhY2tncm91 bmQgd2hlbiB0aGUgaW5wdXQgZmlsZXMgYXJlIGxhcmdl4oCUdGhlbiB5b3UgY291bGQga2VlcCBv bgpkb2luZyBvdGhlciB0aGluZ3Mgd2l0aCBFbWFjcyB1bnRpbCBFbWVyZ2UgaXMgcmVhZHkgdG8g YWNjZXB0IGNvbW1hbmRzLgoKICAgQWZ0ZXIgc2V0dGluZyB1cCB0aGUgbWVyZ2UsIEVtZXJnZSBy dW5zIHRoZSBob29rCuKAmGVtZXJnZS1zdGFydHVwLWhvb2vigJkuICAqTm90ZSBIb29rczo6LgoK CiogMjkgQWJicmV2cwoKQSBkZWZpbmVkICJhYmJyZXYiIGlzIGEgd29yZCB3aGljaCAiZXhwYW5k cyIsIGlmIHlvdSBpbnNlcnQgaXQsIGludG8Kc29tZSBkaWZmZXJlbnQgdGV4dC4gIEFiYnJldnMg YXJlIGRlZmluZWQgYnkgdGhlIHVzZXIgdG8gZXhwYW5kIGluCnNwZWNpZmljIHdheXMuICBGb3Ig ZXhhbXBsZSwgeW91IG1pZ2h0IGRlZmluZSDigJhmb2/igJkgYXMgYW4gYWJicmV2CmV4cGFuZGlu ZyB0byDigJhmaW5kIG91dGVyIG90dGVy4oCZLiAgVGhlbiB5b3UgY291bGQgaW5zZXJ0IOKAmGZp bmQgb3V0ZXIKb3R0ZXIg4oCZIGludG8gdGhlIGJ1ZmZlciBieSB0eXBpbmcg4oCYZiBvIG8gPFNQ Qz7igJkuCgogICBBIHNlY29uZCBraW5kIG9mIGFiYnJldmlhdGlvbiBmYWNpbGl0eSBpcyBjYWxs ZWQgImR5bmFtaWMgYWJicmV2CmV4cGFuc2lvbiIuICBZb3UgdXNlIGR5bmFtaWMgYWJicmV2IGV4 cGFuc2lvbiB3aXRoIGFuIGV4cGxpY2l0IGNvbW1hbmQKdG8gZXhwYW5kIHRoZSBsZXR0ZXJzIGlu IHRoZSBidWZmZXIgYmVmb3JlIHBvaW50IGJ5IGxvb2tpbmcgZm9yIG90aGVyCndvcmRzIGluIHRo ZSBidWZmZXIgdGhhdCBzdGFydCB3aXRoIHRob3NlIGxldHRlcnMuICAqTm90ZSBEeW5hbWljCkFi YnJldnM6Oi4KCiAgIEEgdGhpcmQga2luZCwgImhpcHBpZSBleHBhbnNpb24iLCBnZW5lcmFsaXpl cyBhYmJyZXZpYXRpb24gZXhwYW5zaW9uLgoqTm90ZSBIaXBwaWUgRXhwYW5zaW9uOiAoYXV0b3R5 cGUpSGlwcGllIEV4cGFuZC4KCisgTWVudToKCiAgLSBBYmJyZXYgQ29uY2VwdHM6OiAgIEZ1bmRh bWVudGFscyBvZiBkZWZpbmVkIGFiYnJldnMuCiAgLSBEZWZpbmluZyBBYmJyZXZzOjogIERlZmlu aW5nIGFuIGFiYnJldiwgc28gaXQgd2lsbCBleHBhbmQgd2hlbiB0eXBlZC4KICAtIEV4cGFuZGlu ZyBBYmJyZXZzOjogQ29udHJvbGxpbmcgZXhwYW5zaW9uOiBwcmVmaXhlcywgY2FuY2VsaW5nIGV4 cGFuc2lvbi4KICAtIEVkaXRpbmcgQWJicmV2czo6ICAgVmlld2luZyBvciBlZGl0aW5nIHRoZSBl bnRpcmUgbGlzdCBvZiBkZWZpbmVkIGFiYnJldnMuCiAgLSBTYXZpbmcgQWJicmV2czo6ICAgIFNh dmluZyB0aGUgZW50aXJlIGxpc3Qgb2YgYWJicmV2cyBmb3IgYW5vdGhlciBzZXNzaW9uLgogIC0g RHluYW1pYyBBYmJyZXZzOjogICBBYmJyZXZpYXRpb25zIGZvciB3b3JkcyBhbHJlYWR5IGluIHRo ZSBidWZmZXIuCiAgLSBEYWJicmV2IEN1c3RvbWl6YXRpb246OiBXaGF0IGlzIGEgd29yZCwgZm9y IGR5bmFtaWMgYWJicmV2cy4gIENhc2UgaGFuZGxpbmcuCgoKKiogMjkuMSBBYmJyZXYgQ29uY2Vw dHMKCkFuICJhYmJyZXYiIGlzIGEgd29yZCB0aGF0IGhhcyBiZWVuIGRlZmluZWQgdG8gImV4cGFu ZCIgaW50byBhIHNwZWNpZmllZAoiZXhwYW5zaW9uIi4gIFdoZW4geW91IGluc2VydCBhIHdvcmQt c2VwYXJhdG9yIGNoYXJhY3RlciBmb2xsb3dpbmcgdGhlCmFiYnJldiwgdGhhdCBleHBhbmRzIHRo ZSBhYmJyZXbigJRyZXBsYWNpbmcgdGhlIGFiYnJldiB3aXRoIGl0cyBleHBhbnNpb24uCkZvciBl eGFtcGxlLCBpZiDigJhmb2/igJkgaXMgZGVmaW5lZCBhcyBhbiBhYmJyZXYgZXhwYW5kaW5nIHRv IOKAmGZpbmQgb3V0ZXIKb3R0ZXLigJksIHRoZW4gdHlwaW5nIOKAmGYgbyBvIC7igJkgd2lsbCBp bnNlcnQg4oCYZmluZCBvdXRlciBvdHRlci7igJkuCgogICBBYmJyZXZzIGV4cGFuZCBvbmx5IHdo ZW4gQWJicmV2IG1vZGUsIGEgYnVmZmVyLWxvY2FsIG1pbm9yIG1vZGUsIGlzCmVuYWJsZWQuICBE aXNhYmxpbmcgQWJicmV2IG1vZGUgZG9lcyBub3QgY2F1c2UgYWJicmV2IGRlZmluaXRpb25zIHRv IGJlCmZvcmdvdHRlbiwgYnV0IHRoZXkgZG8gbm90IGV4cGFuZCB1bnRpbCBBYmJyZXYgbW9kZSBp cyBlbmFibGVkIGFnYWluLgpUaGUgY29tbWFuZCDigJhNLXggYWJicmV2LW1vZGXigJkgdG9nZ2xl cyBBYmJyZXYgbW9kZTsgd2l0aCBhIG51bWVyaWMKYXJndW1lbnQsIGl0IHR1cm5zIEFiYnJldiBt b2RlIG9uIGlmIHRoZSBhcmd1bWVudCBpcyBwb3NpdGl2ZSwgb2ZmCm90aGVyd2lzZS4gICpOb3Rl IE1pbm9yIE1vZGVzOjouCgogICBBYmJyZXZzIGNhbiBoYXZlICJtb2RlLXNwZWNpZmljIiBkZWZp bml0aW9ucywgYWN0aXZlIG9ubHkgaW4gb25lCm1ham9yIG1vZGUuICBBYmJyZXZzIGNhbiBhbHNv IGhhdmUgImdsb2JhbCIgZGVmaW5pdGlvbnMgdGhhdCBhcmUgYWN0aXZlCmluIGFsbCBtYWpvciBt b2Rlcy4gIFRoZSBzYW1lIGFiYnJldiBjYW4gaGF2ZSBhIGdsb2JhbCBkZWZpbml0aW9uIGFuZAp2 YXJpb3VzIG1vZGUtc3BlY2lmaWMgZGVmaW5pdGlvbnMgZm9yIGRpZmZlcmVudCBtYWpvciBtb2Rl cy4gIEEKbW9kZS1zcGVjaWZpYyBkZWZpbml0aW9uIGZvciB0aGUgY3VycmVudCBtYWpvciBtb2Rl IG92ZXJyaWRlcyBhIGdsb2JhbApkZWZpbml0aW9uLgoKICAgWW91IGNhbiBkZWZpbmUgYWJicmV2 cyBpbnRlcmFjdGl2ZWx5IGR1cmluZyB0aGUgZWRpdGluZyBzZXNzaW9uLAppcnJlc3BlY3RpdmUg b2Ygd2hldGhlciBBYmJyZXYgbW9kZSBpcyBlbmFibGVkLiAgWW91IGNhbiBhbHNvIHNhdmUgbGlz dHMKb2YgYWJicmV2IGRlZmluaXRpb25zIGluIGZpbGVzLCB3aGljaCB5b3UgY2FuIHRoZW4gcmVs b2FkIGZvciB1c2UgaW4KbGF0ZXIgc2Vzc2lvbnMuCgoKKiogMjkuMiBEZWZpbmluZyBBYmJyZXZz CgrigJhDLXggYSBn4oCZCiAgICAgRGVmaW5lIGFuIGFiYnJldiwgdXNpbmcgb25lIG9yIG1vcmUg d29yZHMgYmVmb3JlIHBvaW50IGFzIGl0cwogICAgIGV4cGFuc2lvbiAo4oCYYWRkLWdsb2JhbC1h YmJyZXbigJkpLgoK4oCYQy14IGEgbOKAmQogICAgIFNpbWlsYXIsIGJ1dCBkZWZpbmUgYW4gYWJi cmV2IHNwZWNpZmljIHRvIHRoZSBjdXJyZW50IG1ham9yIG1vZGUKICAgICAo4oCYYWRkLW1vZGUt YWJicmV24oCZKS4KCuKAmEMteCBhIGkgZ+KAmQogICAgIERlZmluZSBhIHdvcmQgaW4gdGhlIGJ1 ZmZlciBhcyBhbiBhYmJyZXYKICAgICAo4oCYaW52ZXJzZS1hZGQtZ2xvYmFsLWFiYnJlduKAmSku CgrigJhDLXggYSBpIGzigJkKICAgICBEZWZpbmUgYSB3b3JkIGluIHRoZSBidWZmZXIgYXMgYSBt b2RlLXNwZWNpZmljIGFiYnJldgogICAgICjigJhpbnZlcnNlLWFkZC1tb2RlLWFiYnJlduKAmSku CgrigJhNLXggZGVmaW5lLWdsb2JhbC1hYmJyZXYgPFJFVD4gQUJCUkVWIDxSRVQ+IEVYUCA8UkVU PuKAmQogICAgIERlZmluZSBBQkJSRVYgYXMgYW4gYWJicmV2IGV4cGFuZGluZyBpbnRvIEVYUC4K CuKAmE0teCBkZWZpbmUtbW9kZS1hYmJyZXYgPFJFVD4gQUJCUkVWIDxSRVQ+IEVYUCA8UkVUPuKA mQogICAgIERlZmluZSBBQkJSRVYgYXMgYSBtb2RlLXNwZWNpZmljIGFiYnJldiBleHBhbmRpbmcg aW50byBFWFAuCgrigJhNLXgga2lsbC1hbGwtYWJicmV2c+KAmQogICAgIERpc2NhcmQgYWxsIGFi YnJldiBkZWZpbml0aW9ucywgbGVhdmluZyBhIGJsYW5rIHNsYXRlLgoKICAgVGhlIHVzdWFsIHdh eSB0byBkZWZpbmUgYW4gYWJicmV2IGlzIHRvIGVudGVyIHRoZSB0ZXh0IHlvdSB3YW50IHRoZQph YmJyZXYgdG8gZXhwYW5kIHRvLCBwb3NpdGlvbiBwb2ludCBhZnRlciBpdCwgYW5kIHR5cGUg4oCY Qy14IGEgZ+KAmQoo4oCYYWRkLWdsb2JhbC1hYmJyZXbigJkpLiAgVGhpcyByZWFkcyB0aGUgYWJi cmV2IGl0c2VsZiB1c2luZyB0aGUKbWluaWJ1ZmZlciwgYW5kIHRoZW4gZGVmaW5lcyBpdCBhcyBh biBhYmJyZXYgZm9yIG9uZSBvciBtb3JlIHdvcmRzCmJlZm9yZSBwb2ludC4gIFVzZSBhIG51bWVy aWMgYXJndW1lbnQgdG8gc2F5IGhvdyBtYW55IHdvcmRzIGJlZm9yZSBwb2ludApzaG91bGQgYmUg dGFrZW4gYXMgdGhlIGV4cGFuc2lvbi4gIEZvciBleGFtcGxlLCB0byBkZWZpbmUgdGhlIGFiYnJl dgrigJhmb2/igJkgYXMgbWVudGlvbmVkIGFib3ZlLCBpbnNlcnQgdGhlIHRleHQg4oCYZmluZCBv dXRlciBvdHRlcuKAmSBhbmQgdGhlbgp0eXBlIOKAmEMtdSAzIEMteCBhIGcgZiBvIG8gPFJFVD7i gJkuCgogICBBbiBhcmd1bWVudCBvZiB6ZXJvIHRvIOKAmEMteCBhIGfigJkgbWVhbnMgdG8gdXNl IHRoZSBjb250ZW50cyBvZiB0aGUKcmVnaW9uIGFzIHRoZSBleHBhbnNpb24gb2YgdGhlIGFiYnJl diBiZWluZyBkZWZpbmVkLgoKICAgVGhlIGNvbW1hbmQg4oCYQy14IGEgbOKAmSAo4oCYYWRkLW1v ZGUtYWJicmV24oCZKSBpcyBzaW1pbGFyLCBidXQgZGVmaW5lcyBhCm1vZGUtc3BlY2lmaWMgYWJi cmV2IGZvciB0aGUgY3VycmVudCBtYWpvciBtb2RlLiAgVGhlIGFyZ3VtZW50cyB3b3JrIHRoZQpz YW1lIGFzIGZvciDigJhDLXggYSBn4oCZLgoKICAg4oCYQy14IGEgaSBn4oCZICjigJhpbnZlcnNl LWFkZC1nbG9iYWwtYWJicmV24oCZKSBhbmQg4oCYQy14IGEgaSBs4oCZCijigJhpbnZlcnNlLWFk ZC1tb2RlLWFiYnJlduKAmSkgcGVyZm9ybSB0aGUgb3Bwb3NpdGUgdGFzazogaWYgdGhlIGFiYnJl dgp0ZXh0IGlzIGFscmVhZHkgaW4gdGhlIGJ1ZmZlciwgeW91IHVzZSB0aGVzZSBjb21tYW5kcyB0 byBkZWZpbmUgYW4KYWJicmV2IGJ5IHNwZWNpZnlpbmcgdGhlIGV4cGFuc2lvbiBpbiB0aGUgbWlu aWJ1ZmZlci4gIFRoZXNlIGNvbW1hbmRzCndpbGwgZXhwYW5kIHRoZSBhYmJyZXYgdGV4dCB1c2Vk IGZvciB0aGUgZGVmaW5pdGlvbi4KCiAgIFlvdSBjYW4gZGVmaW5lIGFuIGFiYnJldiB3aXRob3V0 IGluc2VydGluZyBlaXRoZXIgdGhlIGFiYnJldiBvciBpdHMKZXhwYW5zaW9uIGluIHRoZSBidWZm ZXIgdXNpbmcgdGhlIGNvbW1hbmQg4oCYZGVmaW5lLWdsb2JhbC1hYmJyZXbigJkuICBJdApyZWFk cyB0d28gYXJndW1lbnRz4oCUdGhlIGFiYnJldiwgYW5kIGl0cyBleHBhbnNpb24uICBUaGUgY29t bWFuZArigJhkZWZpbmUtbW9kZS1hYmJyZXbigJkgZG9lcyBsaWtld2lzZSBmb3IgYSBtb2RlLXNw ZWNpZmljIGFiYnJldi4KCiAgIFRvIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhbiBhYmJyZXYs IGp1c3QgbWFrZSBhIG5ldyBkZWZpbml0aW9uLgpXaGVuIGFuIGFiYnJldiBoYXMgYSBwcmlvciBk ZWZpbml0aW9uLCB0aGUgYWJicmV2IGRlZmluaXRpb24gY29tbWFuZHMKYXNrIGZvciBjb25maXJt YXRpb24gYmVmb3JlIHJlcGxhY2luZyBpdC4KCiAgIFRvIHJlbW92ZSBhbiBhYmJyZXYgZGVmaW5p dGlvbiwgZ2l2ZSBhIG5lZ2F0aXZlIGFyZ3VtZW50IHRvIHRoZQphYmJyZXYgZGVmaW5pdGlvbiBj b21tYW5kOiDigJhDLXUgLSBDLXggYSBn4oCZIG9yIOKAmEMtdSAtIEMteCBhIGzigJkuICBUaGUK Zm9ybWVyIHJlbW92ZXMgYSBnbG9iYWwgZGVmaW5pdGlvbiwgd2hpbGUgdGhlIGxhdHRlciByZW1v dmVzIGEKbW9kZS1zcGVjaWZpYyBkZWZpbml0aW9uLiAg4oCYTS14IGtpbGwtYWxsLWFiYnJldnPi gJkgcmVtb3ZlcyBhbGwgYWJicmV2CmRlZmluaXRpb25zLCBib3RoIGdsb2JhbCBhbmQgbG9jYWwu CgoKKiogMjkuMyBDb250cm9sbGluZyBBYmJyZXYgRXhwYW5zaW9uCgpXaGVuIEFiYnJldiBtb2Rl IGlzIGVuYWJsZWQsIGFuIGFiYnJldiBleHBhbmRzIHdoZW5ldmVyIGl0IGlzIHByZXNlbnQgaW4K dGhlIGJ1ZmZlciBqdXN0IGJlZm9yZSBwb2ludCBhbmQgeW91IHR5cGUgYSBzZWxmLWluc2VydGlu ZyB3aGl0ZXNwYWNlIG9yCnB1bmN0dWF0aW9uIGNoYXJhY3RlciAoPFNQQz4sIGNvbW1hLCBldGMu KS4gIE1vcmUgcHJlY2lzZWx5LCBhbnkKY2hhcmFjdGVyIHRoYXQgaXMgbm90IGEgd29yZCBjb25z dGl0dWVudCBleHBhbmRzIGFuIGFiYnJldiwgYW5kIGFueQp3b3JkLWNvbnN0aXR1ZW50IGNoYXJh Y3RlciBjYW4gYmUgcGFydCBvZiBhbiBhYmJyZXYuICBUaGUgbW9zdCBjb21tb24Kd2F5IHRvIHVz ZSBhbiBhYmJyZXYgaXMgdG8gaW5zZXJ0IGl0IGFuZCB0aGVuIGluc2VydCBhIHB1bmN0dWF0aW9u IG9yCndoaXRlc3BhY2UgY2hhcmFjdGVyIHRvIGV4cGFuZCBpdC4KCiAgIEFiYnJldiBleHBhbnNp b24gcHJlc2VydmVzIGNhc2U6IOKAmGZvb+KAmSBleHBhbmRzIHRvIOKAmGZpbmQgb3V0ZXIgb3R0 ZXLigJksCmFuZCDigJhGb2/igJkgdG8g4oCYRmluZCBvdXRlciBvdHRlcuKAmS4gIOKAmEZPT+KA mSBleHBhbmRzIHRvIOKAmEZpbmQgT3V0ZXIgT3R0ZXLigJkgYnkKZGVmYXVsdCwgYnV0IGlmIHlv dSBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmGFiYnJldi1hbGwtY2Fwc+KAmSB0byBhIG5vbi3igJhu aWzigJkKdmFsdWUsIGl0IGV4cGFuZHMgdG8g4oCYRklORCBPVVRFUiBPVFRFUuKAmS4KCiAgIFRo ZXNlIGNvbW1hbmRzIGFyZSB1c2VkIHRvIGNvbnRyb2wgYWJicmV2IGV4cGFuc2lvbjoKCuKAmE0t J+KAmQogICAgIFNlcGFyYXRlIGEgcHJlZml4IGZyb20gYSBmb2xsb3dpbmcgYWJicmV2IHRvIGJl IGV4cGFuZGVkCiAgICAgKOKAmGFiYnJldi1wcmVmaXgtbWFya+KAmSkuCgrigJhDLXggYSBl4oCZ CiAgICAgRXhwYW5kIHRoZSBhYmJyZXYgYmVmb3JlIHBvaW50ICjigJhleHBhbmQtYWJicmV24oCZ KS4gIFRoaXMgaXMKICAgICBlZmZlY3RpdmUgZXZlbiB3aGVuIEFiYnJldiBtb2RlIGlzIG5vdCBl bmFibGVkLgoK4oCYTS14IHVuZXhwYW5kLWFiYnJlduKAmQogICAgIFVuZG8gdGhlIGV4cGFuc2lv biBvZiB0aGUgbGFzdCBleHBhbmRlZCBhYmJyZXYuCgrigJhNLXggZXhwYW5kLXJlZ2lvbi1hYmJy ZXZz4oCZCiAgICAgRXhwYW5kIHNvbWUgb3IgYWxsIGFiYnJldnMgZm91bmQgaW4gdGhlIHJlZ2lv bi4KCiAgIFlvdSBtYXkgd2lzaCB0byBleHBhbmQgYW4gYWJicmV2IGFuZCBhdHRhY2ggYSBwcmVm aXggdG8gdGhlCmV4cGFuc2lvbjsgZm9yIGV4YW1wbGUsIGlmIOKAmGNuc3TigJkgZXhwYW5kcyBp bnRvIOKAmGNvbnN0cnVjdGlvbuKAmSwgeW91IG1pZ2h0CndhbnQgdG8gdXNlIGl0IHRvIGVudGVy IOKAmHJlY29uc3RydWN0aW9u4oCZLiAgSXQgZG9lcyBub3Qgd29yayB0byB0eXBlCuKAmHJlY25z dOKAmSwgYmVjYXVzZSB0aGF0IGlzIG5vdCBuZWNlc3NhcmlseSBhIGRlZmluZWQgYWJicmV2LiAg V2hhdCB5b3UKY2FuIGRvIGlzIHVzZSB0aGUgY29tbWFuZCDigJhNLSfigJkgKOKAmGFiYnJldi1w cmVmaXgtbWFya+KAmSkgaW4gYmV0d2VlbiB0aGUKcHJlZml4IOKAmHJl4oCZIGFuZCB0aGUgYWJi cmV2IOKAmGNuc3TigJkuICBGaXJzdCwgaW5zZXJ0IOKAmHJl4oCZLiAgVGhlbiB0eXBlCuKAmE0t J+KAmTsgdGhpcyBpbnNlcnRzIGEgaHlwaGVuIGluIHRoZSBidWZmZXIgdG8gaW5kaWNhdGUgdGhh dCBpdCBoYXMgZG9uZQppdHMgd29yay4gIFRoZW4gaW5zZXJ0IHRoZSBhYmJyZXYg4oCYY25zdOKA mTsgdGhlIGJ1ZmZlciBub3cgY29udGFpbnMK4oCYcmUtY25zdOKAmS4gIE5vdyBpbnNlcnQgYSBu b24td29yZCBjaGFyYWN0ZXIgdG8gZXhwYW5kIHRoZSBhYmJyZXYg4oCYY25zdOKAmQppbnRvIOKA mGNvbnN0cnVjdGlvbuKAmS4gIFRoaXMgZXhwYW5zaW9uIHN0ZXAgYWxzbyBkZWxldGVzIHRoZSBo eXBoZW4gdGhhdAppbmRpY2F0ZWQg4oCYTS0n4oCZIGhhZCBiZWVuIHVzZWQuICBUaGUgcmVzdWx0 IGlzIHRoZSBkZXNpcmVkCuKAmHJlY29uc3RydWN0aW9u4oCZLgoKICAgSWYgeW91IGFjdHVhbGx5 IHdhbnQgdGhlIHRleHQgb2YgdGhlIGFiYnJldiBpbiB0aGUgYnVmZmVyLCByYXRoZXIKdGhhbiBp dHMgZXhwYW5zaW9uLCB5b3UgY2FuIGFjY29tcGxpc2ggdGhpcyBieSBpbnNlcnRpbmcgdGhlIGZv bGxvd2luZwpwdW5jdHVhdGlvbiB3aXRoIOKAmEMtceKAmS4gIFRodXMsIOKAmGZvbyBDLXEgLOKA mSBsZWF2ZXMg4oCYZm9vLOKAmSBpbiB0aGUgYnVmZmVyLApub3QgZXhwYW5kaW5nIGl0LgoKICAg SWYgeW91IGV4cGFuZCBhbiBhYmJyZXYgYnkgbWlzdGFrZSwgeW91IGNhbiB1bmRvIHRoZSBleHBh bnNpb24gYnkKdHlwaW5nIOKAmEMtL+KAmSAo4oCYdW5kb+KAmSkuICAqTm90ZSBVbmRvOjouICBU aGlzIHVuZG9lcyB0aGUgaW5zZXJ0aW9uIG9mIHRoZQphYmJyZXYgZXhwYW5zaW9uIGFuZCBicmlu Z3MgYmFjayB0aGUgYWJicmV2IHRleHQuICBJZiB0aGUgcmVzdWx0IHlvdQp3YW50IGlzIHRoZSB0 ZXJtaW5hdGluZyBub24td29yZCBjaGFyYWN0ZXIgcGx1cyB0aGUgdW5leHBhbmRlZCBhYmJyZXYs CnlvdSBtdXN0IHJlaW5zZXJ0IHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIsIHF1b3RpbmcgaXQg d2l0aCDigJhDLXHigJkuICBZb3UKY2FuIGFsc28gdXNlIHRoZSBjb21tYW5kIOKAmE0teCB1bmV4 cGFuZC1hYmJyZXbigJkgdG8gY2FuY2VsIHRoZSBsYXN0CmV4cGFuc2lvbiB3aXRob3V0IGRlbGV0 aW5nIHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIuCgogICDigJhNLXggZXhwYW5kLXJlZ2lvbi1h YmJyZXZz4oCZIHNlYXJjaGVzIHRocm91Z2ggdGhlIHJlZ2lvbiBmb3IgZGVmaW5lZAphYmJyZXZz LCBhbmQgZm9yIGVhY2ggb25lIGZvdW5kIG9mZmVycyB0byByZXBsYWNlIGl0IHdpdGggaXRzIGV4 cGFuc2lvbi4KVGhpcyBjb21tYW5kIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB0eXBlZCBpbiB0ZXh0 IHVzaW5nIGFiYnJldnMgYnV0CmZvcmdvdCB0byB0dXJuIG9uIEFiYnJldiBtb2RlIGZpcnN0LiAg SXQgbWF5IGFsc28gYmUgdXNlZnVsIHRvZ2V0aGVyCndpdGggYSBzcGVjaWFsIHNldCBvZiBhYmJy ZXYgZGVmaW5pdGlvbnMgZm9yIG1ha2luZyBzZXZlcmFsIGdsb2JhbApyZXBsYWNlbWVudHMgYXQg b25jZS4gIFRoaXMgY29tbWFuZCBpcyBlZmZlY3RpdmUgZXZlbiBpZiBBYmJyZXYgbW9kZSBpcwpu b3QgZW5hYmxlZC4KCiAgIFRoZSBmdW5jdGlvbiDigJhleHBhbmQtYWJicmV24oCZIHBlcmZvcm1z IHRoZSBleHBhbnNpb24gYnkgY2FsbGluZyB0aGUKZnVuY3Rpb24gdGhhdCDigJhhYmJyZXYtZXhw YW5kLWZ1bmN0aW9u4oCZIHNwZWNpZmllcy4gIEJ5IGNoYW5naW5nIHRoaXMKZnVuY3Rpb24geW91 IGNhbiBtYWtlIGFyYml0cmFyeSBjaGFuZ2VzIHRvIHRoZSBhYmJyZXYgZXhwYW5zaW9uLiAgKk5v dGUKKGVsaXNwKUFiYnJldiBFeHBhbnNpb246Oi4KCgoqKiAyOS40IEV4YW1pbmluZyBhbmQgRWRp dGluZyBBYmJyZXZzCgrigJhNLXggbGlzdC1hYmJyZXZz4oCZCiAgICAgRGlzcGxheSBhIGxpc3Qg b2YgYWxsIGFiYnJldiBkZWZpbml0aW9ucy4gIFdpdGggYSBudW1lcmljIGFyZ3VtZW50LAogICAg IGxpc3Qgb25seSBsb2NhbCBhYmJyZXZzLgoK4oCYTS14IGVkaXQtYWJicmV2c+KAmQogICAgIEVk aXQgYSBsaXN0IG9mIGFiYnJldnM7IHlvdSBjYW4gYWRkLCBhbHRlciBvciByZW1vdmUgZGVmaW5p dGlvbnMuCgogICBUaGUgb3V0cHV0IGZyb20g4oCYTS14IGxpc3QtYWJicmV2c+KAmSBsb29rcyBs aWtlIHRoaXM6CgogICAgIFZBUklPVVMgT1RIRVIgVEFCTEVT4oCmCiAgICAgKGxpc3AtbW9kZS1h YmJyZXYtdGFibGUpCiAgICAgImRrIiAgICAgICAgICAwICAgICJkZWZpbmUta2V5IgogICAgIChn bG9iYWwtYWJicmV2LXRhYmxlKQogICAgICJkZm4iICAgICAgICAgMCAgICAiZGVmaW5pdGlvbiIK CihTb21lIGJsYW5rIGxpbmVzIG9mIG5vIHNlbWFudGljIHNpZ25pZmljYW5jZSwgYW5kIHNvbWUg b3RoZXIgYWJicmV2CnRhYmxlcywgaGF2ZSBiZWVuIG9taXR0ZWQuKQoKICAgQSBsaW5lIGNvbnRh aW5pbmcgYSBuYW1lIGluIHBhcmVudGhlc2VzIGlzIHRoZSBoZWFkZXIgZm9yIGFiYnJldnMgaW4K YSBwYXJ0aWN1bGFyIGFiYnJldiB0YWJsZTsg4oCYZ2xvYmFsLWFiYnJldi10YWJsZeKAmSBjb250 YWlucyBhbGwgdGhlIGdsb2JhbAphYmJyZXZzLCBhbmQgdGhlIG90aGVyIGFiYnJldiB0YWJsZXMg dGhhdCBhcmUgbmFtZWQgYWZ0ZXIgbWFqb3IgbW9kZXMKY29udGFpbiB0aGUgbW9kZS1zcGVjaWZp YyBhYmJyZXZzLgoKICAgV2l0aGluIGVhY2ggYWJicmV2IHRhYmxlLCBlYWNoIG5vbmJsYW5rIGxp bmUgZGVmaW5lcyBvbmUgYWJicmV2LiAgVGhlCndvcmQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg bGluZSBpcyB0aGUgYWJicmV2LiAgVGhlIG51bWJlciB0aGF0CmZvbGxvd3MgaXMgdGhlIG51bWJl ciBvZiB0aW1lcyB0aGUgYWJicmV2IGhhcyBiZWVuIGV4cGFuZGVkLiAgRW1hY3MKa2VlcHMgdHJh Y2sgb2YgdGhpcyB0byBoZWxwIHlvdSBzZWUgd2hpY2ggYWJicmV2cyB5b3UgYWN0dWFsbHkgdXNl LCBzbwp0aGF0IHlvdSBjYW4gZWxpbWluYXRlIHRob3NlIHRoYXQgeW91IGRvbuKAmXQgdXNlIG9m dGVuLiAgVGhlIHN0cmluZyBhdAp0aGUgZW5kIG9mIHRoZSBsaW5lIGlzIHRoZSBleHBhbnNpb24u CgogICBTb21lIGFiYnJldnMgYXJlIG1hcmtlZCB3aXRoIOKAmChzeXMp4oCZLiAgVGhlc2UgInN5 c3RlbSBhYmJyZXZzIiAoKm5vdGUKKGVsaXNwKUFiYnJldnM6OikgYXJlIHByZS1kZWZpbmVkIGJ5 IHZhcmlvdXMgbW9kZXMsIGFuZCBhcmUgbm90IHNhdmVkIHRvCnlvdXIgYWJicmV2IGZpbGUuICBU byBkaXNhYmxlIGEgc3lzdGVtIGFiYnJldiwgZGVmaW5lIGFuIGFiYnJldiBvZiB0aGUKc2FtZSBu YW1lIHRoYXQgZXhwYW5kcyB0byBpdHNlbGYsIGFuZCBzYXZlIGl0IHRvIHlvdXIgYWJicmV2IGZp bGUuCgogICDigJhNLXggZWRpdC1hYmJyZXZz4oCZIGFsbG93cyB5b3UgdG8gYWRkLCBjaGFuZ2Ug b3Iga2lsbCBhYmJyZXYKZGVmaW5pdGlvbnMgYnkgZWRpdGluZyBhIGxpc3Qgb2YgdGhlbSBpbiBh biBFbWFjcyBidWZmZXIuICBUaGUgbGlzdCBoYXMKdGhlIHNhbWUgZm9ybWF0IGRlc2NyaWJlZCBh Ym92ZS4gIFRoZSBidWZmZXIgb2YgYWJicmV2cyBpcyBjYWxsZWQK4oCYKkFiYnJldnMq4oCZLCBh bmQgaXMgaW4gRWRpdC1BYmJyZXZzIG1vZGUuICBUeXBlIOKAmEMtYyBDLWPigJkgaW4gdGhpcyBi dWZmZXIKdG8gaW5zdGFsbCB0aGUgYWJicmV2IGRlZmluaXRpb25zIGFzIHNwZWNpZmllZCBpbiB0 aGUgYnVmZmVy4oCUYW5kIGRlbGV0ZQphbnkgYWJicmV2IGRlZmluaXRpb25zIG5vdCBsaXN0ZWQu CgogICBUaGUgY29tbWFuZCDigJhlZGl0LWFiYnJldnPigJkgaXMgYWN0dWFsbHkgdGhlIHNhbWUg YXMg4oCYbGlzdC1hYmJyZXZz4oCZCmV4Y2VwdCB0aGF0IGl0IHNlbGVjdHMgdGhlIGJ1ZmZlciDi gJgqQWJicmV2cyrigJkgd2hlcmVhcyDigJhsaXN0LWFiYnJldnPigJkKbWVyZWx5IGRpc3BsYXlz IGl0IGluIGFub3RoZXIgd2luZG93LgoKCioqIDI5LjUgU2F2aW5nIEFiYnJldnMKClRoZXNlIGNv bW1hbmRzIGFsbG93IHlvdSB0byBrZWVwIGFiYnJldiBkZWZpbml0aW9ucyBiZXR3ZWVuIGVkaXRp bmcKc2Vzc2lvbnMuCgrigJhNLXggd3JpdGUtYWJicmV2LWZpbGUgPFJFVD4gRklMRSA8UkVUPuKA mQogICAgIFdyaXRlIGEgZmlsZSBGSUxFIGRlc2NyaWJpbmcgYWxsIGRlZmluZWQgYWJicmV2cy4K CuKAmE0teCByZWFkLWFiYnJldi1maWxlIDxSRVQ+IEZJTEUgPFJFVD7igJkKICAgICBSZWFkIHRo ZSBmaWxlIEZJTEUgYW5kIGRlZmluZSBhYmJyZXZzIGFzIHNwZWNpZmllZCB0aGVyZWluLgoK4oCY TS14IGRlZmluZS1hYmJyZXZz4oCZCiAgICAgRGVmaW5lIGFiYnJldnMgZnJvbSBkZWZpbml0aW9u cyBpbiBjdXJyZW50IGJ1ZmZlci4KCuKAmE0teCBpbnNlcnQtYWJicmV2c+KAmQogICAgIEluc2Vy dCBhbGwgYWJicmV2cyBhbmQgdGhlaXIgZXhwYW5zaW9ucyBpbnRvIGN1cnJlbnQgYnVmZmVyLgoK ICAg4oCYTS14IHdyaXRlLWFiYnJldi1maWxl4oCZIHJlYWRzIGEgZmlsZSBuYW1lIHVzaW5nIHRo ZSBtaW5pYnVmZmVyIGFuZAp0aGVuIHdyaXRlcyBhIGRlc2NyaXB0aW9uIG9mIGFsbCBjdXJyZW50 IGFiYnJldiBkZWZpbml0aW9ucyBpbnRvIHRoYXQKZmlsZS4gIFRoaXMgaXMgdXNlZCB0byBzYXZl IGFiYnJldiBkZWZpbml0aW9ucyBmb3IgdXNlIGluIGEgbGF0ZXIKc2Vzc2lvbi4gIFRoZSB0ZXh0 IHN0b3JlZCBpbiB0aGUgZmlsZSBpcyBhIHNlcmllcyBvZiBMaXNwIGV4cHJlc3Npb25zCnRoYXQs IHdoZW4gZXhlY3V0ZWQsIGRlZmluZSB0aGUgc2FtZSBhYmJyZXZzIHRoYXQgeW91IGN1cnJlbnRs eSBoYXZlLgoKICAg4oCYTS14IHJlYWQtYWJicmV2LWZpbGXigJkgcmVhZHMgYSBmaWxlIG5hbWUg dXNpbmcgdGhlIG1pbmlidWZmZXIgYW5kCnRoZW4gcmVhZHMgdGhlIGZpbGUsIGRlZmluaW5nIGFi YnJldnMgYWNjb3JkaW5nIHRvIHRoZSBjb250ZW50cyBvZiB0aGUKZmlsZS4gIFRoZSBmdW5jdGlv biDigJhxdWlldGx5LXJlYWQtYWJicmV2LWZpbGXigJkgaXMgc2ltaWxhciBleGNlcHQgdGhhdCBp dApkb2VzIG5vdCBkaXNwbGF5IGEgbWVzc2FnZSBpbiB0aGUgZWNobyBhcmVhOyB5b3UgY2Fubm90 IGludm9rZSBpdAppbnRlcmFjdGl2ZWx5LCBhbmQgaXQgaXMgdXNlZCBwcmltYXJpbHkgaW4geW91 ciBpbml0IGZpbGUgKCpub3RlIEluaXQKRmlsZTo6KS4gIElmIGVpdGhlciBvZiB0aGVzZSBmdW5j dGlvbnMgaXMgY2FsbGVkIHdpdGgg4oCYbmls4oCZIGFzIHRoZQphcmd1bWVudCwgaXQgdXNlcyB0 aGUgZmlsZSBnaXZlbiBieSB0aGUgdmFyaWFibGUg4oCYYWJicmV2LWZpbGUtbmFtZeKAmSwKd2hp Y2ggaXMg4oCYfi8uZW1hY3MuZC9hYmJyZXZfZGVmc+KAmSBieSBkZWZhdWx0LiAgVGhpcyBpcyB5 b3VyIHN0YW5kYXJkCmFiYnJldiBkZWZpbml0aW9uIGZpbGUsIGFuZCBFbWFjcyBsb2FkcyBhYmJy ZXZzIGZyb20gaXQgYXV0b21hdGljYWxseQp3aGVuIGl0IHN0YXJ0cyB1cC4gIChBcyBhbiBleGNl cHRpb24sIEVtYWNzIGRvZXMgbm90IGxvYWQgdGhlIGFiYnJldgpmaWxlIHdoZW4gaXQgaXMgc3Rh cnRlZCBpbiBiYXRjaCBtb2RlLiAgKk5vdGUgSW5pdGlhbCBPcHRpb25zOjosIGZvciBhCmRlc2Ny aXB0aW9uIG9mIGJhdGNoIG1vZGUuKQoKICAgRW1hY3Mgd2lsbCBvZmZlciB0byBzYXZlIGFiYnJl dnMgYXV0b21hdGljYWxseSBpZiB5b3UgaGF2ZSBjaGFuZ2VkCmFueSBvZiB0aGVtLCB3aGVuZXZl ciBpdCBvZmZlcnMgdG8gc2F2ZSBhbGwgZmlsZXMgKGZvciDigJhDLXggc+KAmSBvciDigJhDLXgK Qy1j4oCZKS4gIEl0IHNhdmVzIHRoZW0gaW4gdGhlIGZpbGUgc3BlY2lmaWVkIGJ5IOKAmGFiYnJl di1maWxlLW5hbWXigJkuICBUaGlzCmZlYXR1cmUgY2FuIGJlIGluaGliaXRlZCBieSBzZXR0aW5n IHRoZSB2YXJpYWJsZSDigJhzYXZlLWFiYnJldnPigJkgdG8K4oCYbmls4oCZOyBzZXR0aW5nIGl0 IHRvIOKAmHNpbGVudGx54oCZIHdpbGwgc2F2ZSB0aGUgYWJicmV2cyBhdXRvbWF0aWNhbGx5Cndp dGhvdXQgYXNraW5nLgoKICAgVGhlIGNvbW1hbmRzIOKAmE0teCBpbnNlcnQtYWJicmV2c+KAmSBh bmQg4oCYTS14IGRlZmluZS1hYmJyZXZz4oCZIGFyZQpzaW1pbGFyIHRvIHRoZSBwcmV2aW91cyBj b21tYW5kcyBidXQgd29yayBvbiB0ZXh0IGluIGFuIEVtYWNzIGJ1ZmZlci4K4oCYTS14IGluc2Vy dC1hYmJyZXZz4oCZIGluc2VydHMgdGV4dCBpbnRvIHRoZSBjdXJyZW50IGJ1ZmZlciBhZnRlciBw b2ludCwKZGVzY3JpYmluZyBhbGwgY3VycmVudCBhYmJyZXYgZGVmaW5pdGlvbnM7IOKAmE0teCBk ZWZpbmUtYWJicmV2c+KAmSBwYXJzZXMKdGhlIGVudGlyZSBjdXJyZW50IGJ1ZmZlciBhbmQgZGVm aW5lcyBhYmJyZXZzIGFjY29yZGluZ2x5LgoKCioqIDI5LjYgRHluYW1pYyBBYmJyZXYgRXhwYW5z aW9uCgpUaGUgYWJicmV2IGZhY2lsaXR5IGRlc2NyaWJlZCBhYm92ZSBvcGVyYXRlcyBhdXRvbWF0 aWNhbGx5IGFzIHlvdSBpbnNlcnQKdGV4dCwgYnV0IGFsbCBhYmJyZXZzIG11c3QgYmUgZGVmaW5l ZCBleHBsaWNpdGx5LiAgQnkgY29udHJhc3QsICJkeW5hbWljCmFiYnJldnMiIGFsbG93IHRoZSBt ZWFuaW5ncyBvZiBhYmJyZXZpYXRpb25zIHRvIGJlIGRldGVybWluZWQKYXV0b21hdGljYWxseSBm cm9tIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyLCBidXQgZHluYW1pYyBhYmJyZXYKZXhwYW5z aW9uIGhhcHBlbnMgb25seSB3aGVuIHlvdSByZXF1ZXN0IGl0IGV4cGxpY2l0bHkuCgrigJhNLS/i gJkKICAgICBFeHBhbmQgdGhlIHdvcmQgaW4gdGhlIGJ1ZmZlciBiZWZvcmUgcG9pbnQgYXMgYSAi ZHluYW1pYyBhYmJyZXYiLAogICAgIGJ5IHNlYXJjaGluZyBmb3Igd29yZHMgc3RhcnRpbmcgd2l0 aCB0aGF0IGFiYnJldmlhdGlvbgogICAgICjigJhkYWJicmV2LWV4cGFuZOKAmSkuCgrigJhDLU0t L+KAmQogICAgIENvbXBsZXRlIHRoZSB3b3JkIGJlZm9yZSBwb2ludCBhcyBhIGR5bmFtaWMgYWJi cmV2CiAgICAgKOKAmGRhYmJyZXYtY29tcGxldGlvbuKAmSkuCgogICBGb3IgZXhhbXBsZSwgaWYg dGhlIGJ1ZmZlciBjb250YWlucyDigJhkb2VzIHRoaXMgZm9sbG93IOKAmSBhbmQgeW91IHR5cGUK 4oCYZiBvIE0tL+KAmSwgdGhlIGVmZmVjdCBpcyB0byBpbnNlcnQg4oCYZm9sbG934oCZIGJlY2F1 c2UgdGhhdCBpcyB0aGUgbGFzdAp3b3JkIGluIHRoZSBidWZmZXIgdGhhdCBzdGFydHMgd2l0aCDi gJhmb+KAmS4gIEEgbnVtZXJpYyBhcmd1bWVudCB0byDigJhNLS/igJkKc2F5cyB0byB0YWtlIHRo ZSBzZWNvbmQsIHRoaXJkLCBldGMuIGRpc3RpbmN0IGV4cGFuc2lvbiBmb3VuZCBsb29raW5nCmJh Y2t3YXJkIGZyb20gcG9pbnQuICBSZXBlYXRpbmcg4oCYTS0v4oCZIHNlYXJjaGVzIGZvciBhbiBh bHRlcm5hdGl2ZQpleHBhbnNpb24gYnkgbG9va2luZyBmYXJ0aGVyIGJhY2suICBBZnRlciBzY2Fu bmluZyBhbGwgdGhlIHRleHQgYmVmb3JlCnBvaW50LCBpdCBzZWFyY2hlcyB0aGUgdGV4dCBhZnRl ciBwb2ludC4gIFRoZSB2YXJpYWJsZSDigJhkYWJicmV2LWxpbWl04oCZLAppZiBub24t4oCYbmls 4oCZLCBzcGVjaWZpZXMgaG93IGZhciBhd2F5IGluIHRoZSBidWZmZXIgdG8gc2VhcmNoIGZvciBh bgpleHBhbnNpb24uCgogICBBZnRlciBzY2FubmluZyB0aGUgY3VycmVudCBidWZmZXIsIOKAmE0t L+KAmSBub3JtYWxseSBzZWFyY2hlcyBvdGhlcgpidWZmZXJzLiAgVGhlIHZhcmlhYmxlcyDigJhk YWJicmV2LWNoZWNrLWFsbC1idWZmZXJz4oCZIGFuZArigJhkYWJicmV2LWNoZWNrLW90aGVyLWJ1 ZmZlcnPigJkgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG90aGVyCmJ1ZmZlcnMsIGlm IGFueSwgYXJlIHNlYXJjaGVkLgoKICAgRm9yIGZpbmVyIGNvbnRyb2wgb3ZlciB3aGljaCBidWZm ZXJzIHRvIHNjYW4sIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGVzCuKAmGRhYmJyZXYtaWdub3JlZC1i dWZmZXItbmFtZXPigJkgYW5kIOKAmGRhYmJyZXYtaWdub3JlZC1idWZmZXItcmVnZXhwc+KAmS4K VGhlIHZhbHVlIG9mIHRoZSBmb3JtZXIgaXMgYSBsaXN0IG9mIGJ1ZmZlciBuYW1lcyB0byBza2lw LiAgVGhlIHZhbHVlIG9mCnRoZSBsYXR0ZXIgaXMgYSBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lv bnM7IGlmIGEgYnVmZmVy4oCZcyBuYW1lIG1hdGNoZXMKYW55IG9mIHRoZXNlIHJlZ3VsYXIgZXhw cmVzc2lvbnMsIGR5bmFtaWMgYWJicmV2IGV4cGFuc2lvbiBza2lwcyB0aGF0CmJ1ZmZlci4KCiAg IEEgbmVnYXRpdmUgYXJndW1lbnQgdG8g4oCYTS0v4oCZLCBhcyBpbiDigJhDLXUgLSBNLS/igJks IHNheXMgdG8gc2VhcmNoIGZpcnN0CmZvciBleHBhbnNpb25zIGFmdGVyIHBvaW50LCB0aGVuIG90 aGVyIGJ1ZmZlcnMsIGFuZCBjb25zaWRlciBleHBhbnNpb25zCmJlZm9yZSBwb2ludCBvbmx5IGFz IGEgbGFzdCByZXNvcnQuICBJZiB5b3UgcmVwZWF0IHRoZSDigJhNLS/igJkgdG8gbG9vayBmb3IK YW5vdGhlciBleHBhbnNpb24sIGRvIG5vdCBzcGVjaWZ5IGFuIGFyZ3VtZW50LiAgUmVwZWF0aW5n IOKAmE0tL+KAmSBjeWNsZXMKdGhyb3VnaCBhbGwgdGhlIGV4cGFuc2lvbnMgYWZ0ZXIgcG9pbnQg YW5kIHRoZW4gdGhlIGV4cGFuc2lvbnMgYmVmb3JlCnBvaW50LgoKICAgQWZ0ZXIgeW91IGhhdmUg ZXhwYW5kZWQgYSBkeW5hbWljIGFiYnJldiwgeW91IGNhbiBjb3B5IGFkZGl0aW9uYWwKd29yZHMg dGhhdCBmb2xsb3cgdGhlIGV4cGFuc2lvbiBpbiBpdHMgb3JpZ2luYWwgY29udGV4dC4gIFNpbXBs eSB0eXBlCuKAmDxTUEM+IE0tL+KAmSBmb3IgZWFjaCBhZGRpdGlvbmFsIHdvcmQgeW91IHdhbnQg dG8gY29weS4gIFRoZSBzcGFjaW5nIGFuZApwdW5jdHVhdGlvbiBiZXR3ZWVuIHdvcmRzIGlzIGNv cGllZCBhbG9uZyB3aXRoIHRoZSB3b3Jkcy4KCiAgIFlvdSBjYW4gY29udHJvbCB0aGUgd2F5IOKA mE0tL+KAmSBkZXRlcm1pbmVzIHRoZSB3b3JkIHRvIGV4cGFuZCBhbmQgaG93CnRvIGV4cGFuZCBp dCwgc2VlICpub3RlIERhYmJyZXYgQ3VzdG9taXphdGlvbjo6LgoKICAgVGhlIGNvbW1hbmQg4oCY Qy1NLS/igJkgKOKAmGRhYmJyZXYtY29tcGxldGlvbuKAmSkgcGVyZm9ybXMgY29tcGxldGlvbiBv ZiBhCmR5bmFtaWMgYWJicmV2LiAgSW5zdGVhZCBvZiB0cnlpbmcgdGhlIHBvc3NpYmxlIGV4cGFu c2lvbnMgb25lIGJ5IG9uZSwKaXQgZmluZHMgYWxsIG9mIHRoZW0sIHRoZW4gaW5zZXJ0cyB0aGUg dGV4dCB0aGF0IHRoZXkgaGF2ZSBpbiBjb21tb24uCklmIHRoZXkgaGF2ZSBub3RoaW5nIGluIGNv bW1vbiwg4oCYQy1NLS/igJkgZGlzcGxheXMgYSBsaXN0IG9mIGNvbXBsZXRpb25zLApmcm9tIHdo aWNoIHlvdSBjYW4gc2VsZWN0IGEgY2hvaWNlIGluIHRoZSB1c3VhbCBtYW5uZXIuICAqTm90ZQpD b21wbGV0aW9uOjouCgogICBEeW5hbWljIGFiYnJldiBleHBhbnNpb24gaXMgY29tcGxldGVseSBp bmRlcGVuZGVudCBvZiBBYmJyZXYgbW9kZTsKdGhlIGV4cGFuc2lvbiBvZiBhIHdvcmQgd2l0aCDi gJhNLS/igJkgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBvZiB3aGV0aGVyCml0IGhhcyBhIGRl ZmluaXRpb24gYXMgYW4gb3JkaW5hcnkgYWJicmV2LgoKCioqIDI5LjcgQ3VzdG9taXppbmcgRHlu YW1pYyBBYmJyZXZpYXRpb24KCk5vcm1hbGx5LCBkeW5hbWljIGFiYnJldiBleHBhbnNpb24gaWdu b3JlcyBjYXNlIHdoZW4gc2VhcmNoaW5nIGZvcgpleHBhbnNpb25zLiAgVGhhdCBpcywgdGhlIGV4 cGFuc2lvbiBuZWVkIG5vdCBhZ3JlZSBpbiBjYXNlIHdpdGggdGhlIHdvcmQKeW91IGFyZSBleHBh bmRpbmcuCgogICBUaGlzIGZlYXR1cmUgaXMgY29udHJvbGxlZCBieSB0aGUgdmFyaWFibGUK4oCY ZGFiYnJldi1jYXNlLWZvbGQtc2VhcmNo4oCZLiAgSWYgaXQgaXMg4oCYdOKAmSwgY2FzZSBpcyBp Z25vcmVkIGluIHRoaXMKc2VhcmNoOyBpZiBpdCBpcyDigJhuaWzigJksIHRoZSB3b3JkIGFuZCB0 aGUgZXhwYW5zaW9uIG11c3QgbWF0Y2ggaW4gY2FzZS4KSWYgdGhlIHZhbHVlIGlzIOKAmGNhc2Ut Zm9sZC1zZWFyY2jigJkgKHRoZSBkZWZhdWx0KSwgdGhlbiB0aGUgdmFyaWFibGUK4oCYY2FzZS1m b2xkLXNlYXJjaOKAmSBjb250cm9scyB3aGV0aGVyIHRvIGlnbm9yZSBjYXNlIHdoaWxlIHNlYXJj aGluZyBmb3IKZXhwYW5zaW9ucyAoKm5vdGUgTGF4IFNlYXJjaDo6KS4KCiAgIE5vcm1hbGx5LCBk eW5hbWljIGFiYnJldiBleHBhbnNpb24gcHJlc2VydmVzIHRoZSBjYXNlIHBhdHRlcm4gX29mIHRo ZQpkeW5hbWljIGFiYnJldiB5b3UgYXJlIGV4cGFuZGluZ18sIGJ5IGNvbnZlcnRpbmcgdGhlIGV4 cGFuc2lvbiB0byB0aGF0CmNhc2UgcGF0dGVybi4KCiAgIFRoZSB2YXJpYWJsZSDigJhkYWJicmV2 LWNhc2UtcmVwbGFjZeKAmSBjb250cm9scyB3aGV0aGVyIHRvIHByZXNlcnZlIHRoZQpjYXNlIHBh dHRlcm4gb2YgdGhlIGR5bmFtaWMgYWJicmV2LiAgSWYgaXQgaXMg4oCYdOKAmSwgdGhlIGR5bmFt aWMgYWJicmV24oCZcwpjYXNlIHBhdHRlcm4gaXMgcHJlc2VydmVkIGluIG1vc3QgY2FzZXM7IGlm IGl0IGlzIOKAmG5pbOKAmSwgdGhlIGV4cGFuc2lvbgppcyBhbHdheXMgY29waWVkIHZlcmJhdGlt LiAgSWYgdGhlIHZhbHVlIGlzIOKAmGNhc2UtcmVwbGFjZeKAmSAodGhlCmRlZmF1bHQpLCB0aGVu IHRoZSB2YXJpYWJsZSDigJhjYXNlLXJlcGxhY2XigJkgY29udHJvbHMgd2hldGhlciB0byBjb3B5 IHRoZQpleHBhbnNpb24gdmVyYmF0aW0gKCpub3RlIFJlcGxhY2VtZW50IGFuZCBMYXggTWF0Y2hl czo6KS4KCiAgIEhvd2V2ZXIsIGlmIHRoZSBleHBhbnNpb24gY29udGFpbnMgYSBjb21wbGV4IG1p eGVkIGNhc2UgcGF0dGVybiwgYW5kCnRoZSBkeW5hbWljIGFiYnJldiBtYXRjaGVzIHRoaXMgcGF0 dGVybiBhcyBmYXIgYXMgaXQgZ29lcywgdGhlbiB0aGUKZXhwYW5zaW9uIGlzIGFsd2F5cyBjb3Bp ZWQgdmVyYmF0aW0sIHJlZ2FyZGxlc3Mgb2YgdGhvc2UgdmFyaWFibGVzLgpUaHVzLCBmb3IgZXhh bXBsZSwgaWYgdGhlIGJ1ZmZlciBjb250YWlucwrigJh2YXJpYWJsZVdpdGhTaWxseUNhc2VQYXR0 ZXJu4oCZLCBhbmQgeW91IHR5cGUg4oCYdiBhIE0tL+KAmSwgaXQgY29waWVzIHRoZQpleHBhbnNp b24gdmVyYmF0aW0gaW5jbHVkaW5nIGl0cyBjYXNlIHBhdHRlcm4uCgogICBUaGUgdmFyaWFibGUg 4oCYZGFiYnJldi1hYmJyZXYtY2hhci1yZWdleHDigJksIGlmIG5vbi3igJhuaWzigJksIGNvbnRy b2xzCndoaWNoIGNoYXJhY3RlcnMgYXJlIGNvbnNpZGVyZWQgcGFydCBvZiBhIHdvcmQsIGZvciBk eW5hbWljIGV4cGFuc2lvbgpwdXJwb3Nlcy4gIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gbXVzdCBt YXRjaCBqdXN0IG9uZSBjaGFyYWN0ZXIsIG5ldmVyCnR3byBvciBtb3JlLiAgVGhlIHNhbWUgcmVn dWxhciBleHByZXNzaW9uIGFsc28gZGV0ZXJtaW5lcyB3aGljaApjaGFyYWN0ZXJzIGFyZSBwYXJ0 IG9mIGFuIGV4cGFuc2lvbi4gIFRoZSAoZGVmYXVsdCkgdmFsdWUg4oCYbmls4oCZIGhhcyBhCnNw ZWNpYWwgbWVhbmluZzogZHluYW1pYyBhYmJyZXZzIChpLmUuIHRoZSB3b3JkIGF0IHBvaW50KSBh cmUgbWFkZSBvZgp3b3JkIGNoYXJhY3RlcnMsIGJ1dCB0aGVpciBleHBhbnNpb25zIGFyZSBsb29r ZWQgZm9yIGFzIHNlcXVlbmNlcyBvZgp3b3JkIGFuZCBzeW1ib2wgY2hhcmFjdGVycy4gIFRoaXMg aXMgZ2VuZXJhbGx5IGFwcHJvcHJpYXRlIGZvciBleHBhbmRpbmcKc3ltYm9scyBpbiBhIHByb2dy YW0gc291cmNlIGFuZCBhbHNvIGZvciBodW1hbi1yZWFkYWJsZSB0ZXh0IGluIG1hbnkKbGFuZ3Vh Z2VzLCBidXQgbWF5IG5vdCBiZSB3aGF0IHlvdSB3YW50IGluIGEgdGV4dCBidWZmZXIgdGhhdCBp bmNsdWRlcwp1bnVzdWFsIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnM7IGluIHRoYXQgY2FzZSwgdGhl IHZhbHVlIOKAmCJcXHN3IuKAmSBtaWdodApwcm9kdWNlIGJldHRlciByZXN1bHRzLgoKICAgSW4g c2hlbGwgc2NyaXB0cyBhbmQgbWFrZWZpbGVzLCBhIHZhcmlhYmxlIG5hbWUgaXMgc29tZXRpbWVz IHByZWZpeGVkCndpdGgg4oCYJOKAmSBhbmQgc29tZXRpbWVzIG5vdC4gIE1ham9yIG1vZGVzIGZv ciB0aGlzIGtpbmQgb2YgdGV4dCBjYW4KY3VzdG9taXplIGR5bmFtaWMgYWJicmV2IGV4cGFuc2lv biB0byBoYW5kbGUgb3B0aW9uYWwgcHJlZml4ZXMgYnkKc2V0dGluZyB0aGUgdmFyaWFibGUg4oCY ZGFiYnJldi1hYmJyZXYtc2tpcC1sZWFkaW5nLXJlZ2V4cOKAmS4gIEl0cyB2YWx1ZQpzaG91bGQg YmUgYSByZWd1bGFyIGV4cHJlc3Npb24gdGhhdCBtYXRjaGVzIHRoZSBvcHRpb25hbCBwcmVmaXgg dGhhdApkeW5hbWljIGFiYnJldiBleHByZXNzaW9uIHNob3VsZCBpZ25vcmUuICBUaGUgZGVmYXVs dCBpcyDigJhuaWzigJksIHdoaWNoCm1lYW5zIG5vIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHNraXBw ZWQuCgoKKiAzMCBEaXJlZCwgdGhlIERpcmVjdG9yeSBFZGl0b3IKCkRpcmVkIG1ha2VzIGFuIEVt YWNzIGJ1ZmZlciBjb250YWluaW5nIGEgbGlzdGluZyBvZiBhIGRpcmVjdG9yeSwgYW5kCm9wdGlv bmFsbHkgc29tZSBvZiBpdHMgc3ViZGlyZWN0b3JpZXMgYXMgd2VsbC4gIFlvdSBjYW4gdXNlIHRo ZSBub3JtYWwKRW1hY3MgY29tbWFuZHMgdG8gbW92ZSBhcm91bmQgaW4gdGhpcyBidWZmZXIsIGFu ZCBzcGVjaWFsIERpcmVkIGNvbW1hbmRzCnRvIG9wZXJhdGUgb24gdGhlIGxpc3RlZCBmaWxlcy4g IERpcmVkIHdvcmtzIHdpdGggYm90aCBsb2NhbCBhbmQgcmVtb3RlCmRpcmVjdG9yaWVzLgoKICAg VGhlIERpcmVkIGJ1ZmZlciBpcyBub3JtYWxseSByZWFkLW9ubHksIGFuZCBpbnNlcnRpbmcgdGV4 dCBpbiBpdCBpcwpub3QgYWxsb3dlZCAoaG93ZXZlciwgdGhlIFdkaXJlZCBtb2RlIGFsbG93cyB0 aGF0LCAqbm90ZSBXZGlyZWQ6OikuCk9yZGluYXJ5IHByaW50aW5nIGNoYXJhY3RlcnMgc3VjaCBh cyDigJhk4oCZIGFuZCDigJh44oCZIGFyZSByZWRlZmluZWQgZm9yCnNwZWNpYWwgRGlyZWQgY29t bWFuZHMuICBTb21lIERpcmVkIGNvbW1hbmRzICJtYXJrIiBvciAiZmxhZyIgdGhlCiJjdXJyZW50 IGZpbGUiICh0aGF0IGlzLCB0aGUgZmlsZSBvbiB0aGUgY3VycmVudCBsaW5lKTsgb3RoZXIgY29t bWFuZHMKb3BlcmF0ZSBvbiB0aGUgbWFya2VkIGZpbGVzIG9yIG9uIHRoZSBmbGFnZ2VkIGZpbGVz LiAgWW91IGZpcnN0IG1hcmsKY2VydGFpbiBmaWxlcyBpbiBvcmRlciB0byBvcGVyYXRlIG9uIGFs bCBvZiB0aGVtIHdpdGggb25lIGNvbW1hbmQuCgogICBUaGUgRGlyZWQtWCBwYWNrYWdlIHByb3Zp ZGVzIHZhcmlvdXMgZXh0cmEgZmVhdHVyZXMgZm9yIERpcmVkIG1vZGUuCipOb3RlIERpcmVkLVg6 IChkaXJlZC14KVRvcC4KCiAgIFlvdSBjYW4gYWxzbyB2aWV3IGEgbGlzdCBvZiBmaWxlcyBpbiBh IGRpcmVjdG9yeSB3aXRoIOKAmEMteCBDLWTigJkKKOKAmGxpc3QtZGlyZWN0b3J54oCZKS4gIFVu bGlrZSBEaXJlZCwgdGhpcyBjb21tYW5kIGRvZXMgbm90IGFsbG93IHlvdSB0bwpvcGVyYXRlIG9u IHRoZSBsaXN0ZWQgZmlsZXMuICAqTm90ZSBEaXJlY3Rvcmllczo6LgoKKyBNZW51OgoKICAtIEVu dGVyOiBEaXJlZCBFbnRlci4gICAgICAgICBIb3cgdG8gaW52b2tlIERpcmVkLgogIC0gTmF2aWdh dGlvbjogRGlyZWQgTmF2aWdhdGlvbi4gICBTcGVjaWFsIG1vdGlvbiBjb21tYW5kcyBpbiB0aGUg RGlyZWQgYnVmZmVyLgogIC0gRGVsZXRpb246IERpcmVkIERlbGV0aW9uLiAgIERlbGV0aW5nIGZp bGVzIHdpdGggRGlyZWQuCiAgLSBGbGFnZ2luZyBNYW55IEZpbGVzOjogICAgICAgRmxhZ2dpbmcg ZmlsZXMgYmFzZWQgb24gdGhlaXIgbmFtZXMuCiAgLSBWaXNpdDogRGlyZWQgVmlzaXRpbmcuICAg ICAgT3RoZXIgZmlsZSBvcGVyYXRpb25zIHRocm91Z2ggRGlyZWQuCiAgLSBNYXJrcyB2cyBGbGFn czo6ICAgICAgICAgICAgRmxhZ2dpbmcgZm9yIGRlbGV0aW9uIHZzIG1hcmtpbmcuCiAgLSBPcGVy YXRpbmcgb24gRmlsZXM6OiAgICAgICAgSG93IHRvIGNvcHksIHJlbmFtZSwgcHJpbnQsIGNvbXBy ZXNzLCBldGMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWl0aGVyIG9uZSBmaWxl IG9yIHNldmVyYWwgZmlsZXMuCiAgLSBTaGVsbCBDb21tYW5kcyBpbiBEaXJlZDo6ICAgUnVubmlu ZyBhIHNoZWxsIGNvbW1hbmQgb24gdGhlIG1hcmtlZCBmaWxlcy4KICAtIFRyYW5zZm9ybWluZyBG aWxlIE5hbWVzOjogICBVc2luZyBwYXR0ZXJucyB0byByZW5hbWUgbXVsdGlwbGUgZmlsZXMuCiAg LSBDb21wYXJpc29uIGluIERpcmVkOjogICAgICAgUnVubmluZyDigJhkaWZm4oCZIGJ5IHdheSBv ZiBEaXJlZC4KICAtIFN1YmRpcmVjdG9yaWVzIGluIERpcmVkOjogICBBZGRpbmcgc3ViZGlyZWN0 b3JpZXMgdG8gdGhlIERpcmVkIGJ1ZmZlci4KICAtIFN1YmRpciBTd2l0Y2hlczo6ICAgICAgICAg ICBTdWJkaXJlY3Rvcnkgc3dpdGNoZXMgaW4gRGlyZWQuCiAgLSBTdWJkaXJlY3RvcnkgTW90aW9u OjogICAgICAgTW92aW5nIGFjcm9zcyBzdWJkaXJlY3RvcmllcywgYW5kIHVwIGFuZCBkb3duLgog IC0gSGlkaW5nIFN1YmRpcmVjdG9yaWVzOjogICAgIE1ha2luZyBzdWJkaXJlY3RvcmllcyB2aXNp YmxlIG9yIGludmlzaWJsZS4KICAtIFVwZGF0aW5nOiBEaXJlZCBVcGRhdGluZy4gICBEaXNjYXJk aW5nIGxpbmVzIGZvciBmaWxlcyBvZiBubyBpbnRlcmVzdC4KICAtIEZpbmQ6IERpcmVkIGFuZCBG aW5kLiAgICAgICBVc2luZyDigJhmaW5k4oCZIHRvIGNob29zZSB0aGUgZmlsZXMgZm9yIERpcmVk LgogIC0gV2RpcmVkOjogICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBmaWxlcyBieSBl ZGl0aW5nIHRoZSBEaXJlZCBidWZmZXIuCiAgLSBJbWFnZS1EaXJlZDo6ICAgICAgICAgICAgICAg Vmlld2luZyBpbWFnZSB0aHVtYm5haWxzIGluIERpcmVkLgogIC0gTWlzYzogTWlzYyBEaXJlZCBG ZWF0dXJlcy4gIFZhcmlvdXMgb3RoZXIgZmVhdHVyZXMuCgoKKiogMzAuMSBFbnRlcmluZyBEaXJl ZAoKVG8gaW52b2tlIERpcmVkLCB0eXBlIOKAmEMteCBk4oCZICjigJhkaXJlZOKAmSkuICBUaGlz IHJlYWRzIGEgZGlyZWN0b3J54oCZcyBuYW1lCnVzaW5nIHRoZSBtaW5pYnVmZmVyLCBhbmQgb3Bl bnMgYSAiRGlyZWQgYnVmZmVyIiBsaXN0aW5nIHRoZSBmaWxlcyBpbgp0aGF0IGRpcmVjdG9yeS4g IFlvdSBjYW4gYWxzbyBzdXBwbHkgYSB3aWxkY2FyZCBmaWxlIG5hbWUgcGF0dGVybiBhcyB0aGUK bWluaWJ1ZmZlciBhcmd1bWVudCwgaW4gd2hpY2ggY2FzZSB0aGUgRGlyZWQgYnVmZmVyIGxpc3Rz IGFsbCBmaWxlcwptYXRjaGluZyB0aGF0IHBhdHRlcm4uICBBIHdpbGRjYXJkIG1heSBhcHBlYXIg aW4gdGhlIGRpcmVjdG9yeSBwYXJ0IGFzCndlbGwuICBGb3IgaW5zdGFuY2UsCgogICAgIEMteCBk ICB+L2Zvby8qLmVsICA8UkVUPgogICAgIEMteCBkICB+L2Zvby8qLyouZWwgIDxSRVQ+CgogICBU aGUgZm9ybWVyIGxpc3RzIGFsbCB0aGUgZmlsZXMgd2l0aCBleHRlbnNpb24g4oCYLmVs4oCZIGlu IGRpcmVjdG9yeQrigJhmb2/igJkuICBUaGUgbGF0dGVyIGxpc3RzIHRoZSBmaWxlcyB3aXRoIGV4 dGVuc2lvbiDigJguZWzigJkgaW4gYWxsIHRoZQpzdWJkaXJlY3RvcmllcyBvZiDigJhmb2/igJku CgogICBUaGUgdXN1YWwgaGlzdG9yeSBhbmQgY29tcGxldGlvbiBjb21tYW5kcyBjYW4gYmUgdXNl ZCBpbiB0aGUKbWluaWJ1ZmZlcjsgaW4gcGFydGljdWxhciwg4oCYTS1u4oCZIHB1dHMgdGhlIG5h bWUgb2YgdGhlIHZpc2l0ZWQgZmlsZSAoaWYKYW55KSBpbiB0aGUgbWluaWJ1ZmZlciAoKm5vdGUg TWluaWJ1ZmZlciBIaXN0b3J5OjopLgoKICAgWW91IGNhbiBhbHNvIGludm9rZSBEaXJlZCBieSBn aXZpbmcg4oCYQy14IEMtZuKAmSAo4oCYZmluZC1maWxl4oCZKSBhCmRpcmVjdG9yeeKAmXMgbmFt ZS4KCiAgIFRoZSB2YXJpYWJsZSDigJhkaXJlZC1saXN0aW5nLXN3aXRjaGVz4oCZIHNwZWNpZmll cyB0aGUgb3B0aW9ucyB0byBnaXZlCnRvIOKAmGxz4oCZIGZvciBsaXN0aW5nIHRoZSBkaXJlY3Rv cnk7IHRoaXMgc3RyaW5nIF9tdXN0XyBjb250YWluIOKAmC1s4oCZLiAgSWYKeW91IHVzZSBhIHBy ZWZpeCBhcmd1bWVudCB3aXRoIHRoZSDigJhkaXJlZOKAmSBjb21tYW5kLCB5b3UgY2FuIHNwZWNp ZnkgdGhlCuKAmGxz4oCZIHN3aXRjaGVzIHdpdGggdGhlIG1pbmlidWZmZXIgYmVmb3JlIHlvdSBl bnRlciB0aGUgZGlyZWN0b3J5CnNwZWNpZmljYXRpb24uICBObyBtYXR0ZXIgaG93IHRoZXkgYXJl IHNwZWNpZmllZCwgdGhlIOKAmGxz4oCZIHN3aXRjaGVzIGNhbgppbmNsdWRlIHNob3J0IG9wdGlv bnMgKHRoYXQgaXMsIHNpbmdsZSBjaGFyYWN0ZXJzKSByZXF1aXJpbmcgbm8KYXJndW1lbnRzLCBh bmQgbG9uZyBvcHRpb25zIChzdGFydGluZyB3aXRoIOKAmC0t4oCZKSB3aG9zZSBhcmd1bWVudHMg YXJlCnNwZWNpZmllZCB3aXRoIOKAmD3igJkuCgogICBJZiB5b3VyIOKAmGxz4oCZIHByb2dyYW0g c3VwcG9ydHMgdGhlIOKAmC0tZGlyZWTigJkgb3B0aW9uLCBEaXJlZAphdXRvbWF0aWNhbGx5IHBh c3NlcyBpdCB0aGF0IG9wdGlvbjsgdGhpcyBjYXVzZXMg4oCYbHPigJkgdG8gZW1pdCBzcGVjaWFs CmVzY2FwZSBzZXF1ZW5jZXMgZm9yIGNlcnRhaW4gdW51c3VhbCBmaWxlIG5hbWVzLCB3aXRob3V0 IHdoaWNoIERpcmVkCndpbGwgbm90IGJlIGFibGUgdG8gcGFyc2UgdGhvc2UgbmFtZXMuICBUaGUg Zmlyc3QgdGltZSB5b3UgcnVuIERpcmVkIGluCmFuIEVtYWNzIHNlc3Npb24sIGl0IGNoZWNrcyB3 aGV0aGVyIOKAmGxz4oCZIHN1cHBvcnRzIHRoZSDigJgtLWRpcmVk4oCZIG9wdGlvbgpieSBjYWxs aW5nIGl0IG9uY2Ugd2l0aCB0aGF0IG9wdGlvbi4gIElmIHRoZSBleGl0IGNvZGUgaXMgMCwgRGly ZWQgd2lsbApzdWJzZXF1ZW50bHkgdXNlIHRoZSDigJgtLWRpcmVk4oCZIG9wdGlvbjsgb3RoZXJ3 aXNlIGl0IHdpbGwgbm90LiAgWW91IGNhbgppbmhpYml0IHRoaXMgY2hlY2sgYnkgY3VzdG9taXpp bmcgdGhlIHZhcmlhYmxlIOKAmGRpcmVkLXVzZS1scy1kaXJlZOKAmS4KVGhlIHZhbHVlIOKAmHVu c3BlY2lmaWVk4oCZICh0aGUgZGVmYXVsdCkgbWVhbnMgdG8gcGVyZm9ybSB0aGUgY2hlY2s7IGFu eQpvdGhlciBub24t4oCYbmls4oCZIHZhbHVlIG1lYW5zIHRvIHVzZSB0aGUg4oCYLS1kaXJlZOKA mSBvcHRpb247IGFuZCDigJhuaWzigJkgbWVhbnMKbm90IHRvIHVzZSB0aGUg4oCYLS1kaXJlZOKA mSBvcHRpb24uCgogICBPbiBNUy1XaW5kb3dzIGFuZCBNUy1ET1Mgc3lzdGVtcywgYW5kIGFsc28g b24gc29tZSByZW1vdGUgc3lzdGVtcywKRW1hY3MgZW11bGF0ZXMg4oCYbHPigJkuICAqTm90ZSBs cyBpbiBMaXNwOjosIGZvciBvcHRpb25zIGFuZCBwZWN1bGlhcml0aWVzCm9mIHRoaXMgZW11bGF0 aW9uLgoKICAgVG8gZGlzcGxheSB0aGUgRGlyZWQgYnVmZmVyIGluIGFub3RoZXIgd2luZG93LCB1 c2Ug4oCYQy14IDQgZOKAmQoo4oCYZGlyZWQtb3RoZXItd2luZG934oCZKS4gIOKAmEMteCA1IGTi gJkgKOKAmGRpcmVkLW90aGVyLWZyYW1l4oCZKSBkaXNwbGF5cyB0aGUKRGlyZWQgYnVmZmVyIGlu IGEgc2VwYXJhdGUgZnJhbWUuCgogICBUeXBpbmcg4oCYceKAmSAo4oCYcXVpdC13aW5kb3figJkp IGJ1cmllcyB0aGUgRGlyZWQgYnVmZmVyLCBhbmQgZGVsZXRlcyBpdHMKd2luZG93IGlmIHRoZSB3 aW5kb3cgd2FzIGNyZWF0ZWQganVzdCBmb3IgdGhhdCBidWZmZXIuCgoKKiogMzAuMiBOYXZpZ2F0 aW9uIGluIHRoZSBEaXJlZCBCdWZmZXIKCkFsbCB0aGUgdXN1YWwgRW1hY3MgY3Vyc29yIG1vdGlv biBjb21tYW5kcyBhcmUgYXZhaWxhYmxlIGluIERpcmVkCmJ1ZmZlcnMuICBUaGUga2V5cyDigJhD LW7igJkgYW5kIOKAmEMtcOKAmSBhcmUgcmVkZWZpbmVkIHRvIHJ1bgrigJhkaXJlZC1uZXh0LWxp bmXigJkgYW5kIOKAmGRpcmVkLXByZXZpb3VzLWxpbmXigJksIHJlc3BlY3RpdmVseSwgYW5kIHRo ZXkgcHV0CnRoZSBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBuYW1lIG9uIHRo ZSBsaW5lLCByYXRoZXIgdGhhbiBhdAp0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lLgoKICAgRm9y IGV4dHJhIGNvbnZlbmllbmNlLCA8U1BDPiBhbmQg4oCYbuKAmSBpbiBEaXJlZCBhcmUgZXF1aXZh bGVudCB0bwrigJhDLW7igJkuICDigJhw4oCZIGlzIGVxdWl2YWxlbnQgdG8g4oCYQy1w4oCZLiAg KE1vdmluZyBieSBsaW5lcyBpcyBzbyBjb21tb24gaW4KRGlyZWQgdGhhdCBpdCBkZXNlcnZlcyB0 byBiZSBlYXN5IHRvIHR5cGUuKSAgPERFTD4gKG1vdmUgdXAgYW5kIHVuZmxhZykKaXMgYWxzbyBv ZnRlbiB1c2VmdWwgc2ltcGx5IGZvciBtb3ZpbmcgdXAgKCpub3RlIERpcmVkIERlbGV0aW9uOjop LgoKICAg4oCYauKAmSAo4oCYZGlyZWQtZ290by1maWxl4oCZKSBwcm9tcHRzIGZvciBhIGZpbGUg bmFtZSB1c2luZyB0aGUgbWluaWJ1ZmZlciwKYW5kIG1vdmVzIHBvaW50IHRvIHRoZSBsaW5lIGlu IHRoZSBEaXJlZCBidWZmZXIgZGVzY3JpYmluZyB0aGF0IGZpbGUuCgogICDigJhNLXMgZiBDLXPi gJkgKOKAmGRpcmVkLWlzZWFyY2gtZmlsZW5hbWVz4oCZKSBwZXJmb3JtcyBhIGZvcndhcmQKaW5j cmVtZW50YWwgc2VhcmNoIGluIHRoZSBEaXJlZCBidWZmZXIsIGxvb2tpbmcgZm9yIG1hdGNoZXMg b25seSBhbW9uZ3N0CnRoZSBmaWxlIG5hbWVzIGFuZCBpZ25vcmluZyB0aGUgcmVzdCBvZiB0aGUg dGV4dCBpbiB0aGUgYnVmZmVyLiAg4oCYTS1zIGYKTS1DLXPigJkgKOKAmGRpcmVkLWlzZWFyY2gt ZmlsZW5hbWVzLXJlZ2V4cOKAmSkgZG9lcyB0aGUgc2FtZSwgdXNpbmcgYSByZWd1bGFyCmV4cHJl c3Npb24gc2VhcmNoLiAgSWYgeW91IGNoYW5nZSB0aGUgdmFyaWFibGUg4oCYZGlyZWQtaXNlYXJj aC1maWxlbmFtZXPigJkKdG8g4oCYdOKAmSwgdGhlbiB0aGUgdXN1YWwgc2VhcmNoIGNvbW1hbmRz IGFsc28gbGltaXQgdGhlbXNlbHZlcyB0byB0aGUgZmlsZQpuYW1lczsgZm9yIGluc3RhbmNlLCDi gJhDLXPigJkgYmVoYXZlcyBsaWtlIOKAmE0tcyBmIEMtc+KAmS4gIElmIHRoZSB2YWx1ZSBpcwri gJhkd2lt4oCZLCB0aGVuIHNlYXJjaCBjb21tYW5kcyBtYXRjaCB0aGUgZmlsZSBuYW1lcyBvbmx5 IHdoZW4gcG9pbnQgd2FzIG9uCmEgZmlsZSBuYW1lIGluaXRpYWxseS4gICpOb3RlIFNlYXJjaDo6 LCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKaW5jcmVtZW50YWwgc2VhcmNoLgoKICAgU29tZSBhZGRp dGlvbmFsIG5hdmlnYXRpb24gY29tbWFuZHMgYXJlIGF2YWlsYWJsZSB3aGVuIHRoZSBEaXJlZApi dWZmZXIgaW5jbHVkZXMgc2V2ZXJhbCBkaXJlY3Rvcmllcy4gICpOb3RlIFN1YmRpcmVjdG9yeSBN b3Rpb246Oi4KCgoqKiAzMC4zIERlbGV0aW5nIEZpbGVzIHdpdGggRGlyZWQKCk9uZSBvZiB0aGUg bW9zdCBmcmVxdWVudCB1c2VzIG9mIERpcmVkIGlzIHRvIGZpcnN0ICJmbGFnIiBmaWxlcyBmb3IK ZGVsZXRpb24sIHRoZW4gZGVsZXRlIHRoZSBmaWxlcyB0aGF0IHdlcmUgZmxhZ2dlZC4KCuKAmGTi gJkKICAgICBGbGFnIHRoaXMgZmlsZSBmb3IgZGVsZXRpb24gKOKAmGRpcmVkLWZsYWctZmlsZS1k ZWxldGlvbuKAmSkuCuKAmHXigJkKICAgICBSZW1vdmUgdGhlIGRlbGV0aW9uIGZsYWcgKOKAmGRp cmVkLXVubWFya+KAmSkuCuKAmDxERUw+4oCZCiAgICAgTW92ZSBwb2ludCB0byBwcmV2aW91cyBs aW5lIGFuZCByZW1vdmUgdGhlIGRlbGV0aW9uIGZsYWcgb24gdGhhdAogICAgIGxpbmUgKOKAmGRp cmVkLXVubWFyay1iYWNrd2FyZOKAmSkuCuKAmHjigJkKICAgICBEZWxldGUgZmlsZXMgZmxhZ2dl ZCBmb3IgZGVsZXRpb24gKOKAmGRpcmVkLWRvLWZsYWdnZWQtZGVsZXRl4oCZKS4KCiAgIFlvdSBj YW4gZmxhZyBhIGZpbGUgZm9yIGRlbGV0aW9uIGJ5IG1vdmluZyB0byB0aGUgbGluZSBkZXNjcmli aW5nIHRoZQpmaWxlIGFuZCB0eXBpbmcg4oCYZOKAmSAo4oCYZGlyZWQtZmxhZy1maWxlLWRlbGV0 aW9u4oCZKS4gIFRoZSBkZWxldGlvbiBmbGFnIGlzCnZpc2libGUgYXMgYSDigJhE4oCZIGF0IHRo ZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuICBUaGlzIGNvbW1hbmQgbW92ZXMgcG9pbnQKdG8gdGhl IG5leHQgbGluZSwgc28gdGhhdCByZXBlYXRlZCDigJhk4oCZIGNvbW1hbmRzIGZsYWcgc3VjY2Vz c2l2ZSBmaWxlcy4KQSBudW1lcmljIHByZWZpeCBhcmd1bWVudCBzZXJ2ZXMgYXMgYSByZXBlYXQg Y291bnQ7IGEgbmVnYXRpdmUgY291bnQKbWVhbnMgdG8gZmxhZyBwcmVjZWRpbmcgZmlsZXMuCgog ICBJZiB0aGUgcmVnaW9uIGlzIGFjdGl2ZSwgdGhlIOKAmGTigJkgY29tbWFuZCBmbGFncyBhbGwg ZmlsZXMgaW4gdGhlCnJlZ2lvbiBmb3IgZGVsZXRpb247IGluIHRoaXMgY2FzZSwgdGhlIGNvbW1h bmQgZG9lcyBub3QgbW92ZSBwb2ludCwgYW5kCmlnbm9yZXMgYW55IHByZWZpeCBhcmd1bWVudC4K CiAgIFRoZSByZWFzb24gZm9yIGZsYWdnaW5nIGZpbGVzIGZvciBkZWxldGlvbiwgcmF0aGVyIHRo YW4gZGVsZXRpbmcKZmlsZXMgaW1tZWRpYXRlbHksIGlzIHRvIHJlZHVjZSB0aGUgZGFuZ2VyIG9m IGRlbGV0aW5nIGEgZmlsZQphY2NpZGVudGFsbHkuICBVbnRpbCB5b3UgZGlyZWN0IERpcmVkIHRv IGRlbGV0ZSB0aGUgZmxhZ2dlZCBmaWxlcywgeW91CmNhbiByZW1vdmUgZGVsZXRpb24gZmxhZ3Mg dXNpbmcgdGhlIGNvbW1hbmRzIOKAmHXigJkgYW5kIDxERUw+LiAg4oCYdeKAmQoo4oCYZGlyZWQt dW5tYXJr4oCZKSB3b3JrcyBqdXN0IGxpa2Ug4oCYZOKAmSwgYnV0IHJlbW92ZXMgZmxhZ3MgcmF0 aGVyIHRoYW4KbWFraW5nIGZsYWdzLiAgPERFTD4gKOKAmGRpcmVkLXVubWFyay1iYWNrd2FyZOKA mSkgbW92ZXMgdXB3YXJkLCByZW1vdmluZwpmbGFnczsgaXQgaXMgbGlrZSDigJh14oCZIHdpdGgg YXJndW1lbnQg4oiSMS4gIEEgbnVtZXJpYyBwcmVmaXggYXJndW1lbnQgdG8KZWl0aGVyIGNvbW1h bmQgc2VydmVzIGFzIGEgcmVwZWF0IGNvdW50LCB3aXRoIGEgbmVnYXRpdmUgY291bnQgbWVhbmlu Zwp0byB1bmZsYWcgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi4gIElmIHRoZSByZWdpb24gaXMg YWN0aXZlLCB0aGVzZQpjb21tYW5kcyBpbnN0ZWFkIHVuZmxhZyBhbGwgZmlsZXMgaW4gdGhlIHJl Z2lvbiwgd2l0aG91dCBtb3ZpbmcgcG9pbnQuCgogICBUbyBkZWxldGUgZmxhZ2dlZCBmaWxlcywg dHlwZSDigJh44oCZICjigJhkaXJlZC1kby1mbGFnZ2VkLWRlbGV0ZeKAmSkuICBUaGlzCmNvbW1h bmQgZGlzcGxheXMgYSBsaXN0IG9mIGFsbCB0aGUgZmlsZSBuYW1lcyBmbGFnZ2VkIGZvciBkZWxl dGlvbiwgYW5kCnJlcXVlc3RzIGNvbmZpcm1hdGlvbiB3aXRoIOKAmHllc+KAmS4gIElmIHlvdSBj b25maXJtLCBEaXJlZCBkZWxldGVzIHRoZQpmbGFnZ2VkIGZpbGVzLCB0aGVuIGRlbGV0ZXMgdGhl aXIgbGluZXMgZnJvbSB0aGUgdGV4dCBvZiB0aGUgRGlyZWQKYnVmZmVyLiAgVGhlIERpcmVkIGJ1 ZmZlciwgd2l0aCBzb21ld2hhdCBmZXdlciBsaW5lcywgcmVtYWlucyBzZWxlY3RlZC4KCiAgIElm IHlvdSBhbnN3ZXIg4oCYbm/igJkgb3IgcXVpdCB3aXRoIOKAmEMtZ+KAmSB3aGVuIGFza2VkIHRv IGNvbmZpcm0sIHlvdQpyZXR1cm4gaW1tZWRpYXRlbHkgdG8gRGlyZWQsIHdpdGggdGhlIGRlbGV0 aW9uIGZsYWdzIHN0aWxsIHByZXNlbnQgaW4KdGhlIGJ1ZmZlciwgYW5kIG5vIGZpbGVzIGFjdHVh bGx5IGRlbGV0ZWQuCgogICBZb3UgY2FuIGRlbGV0ZSBlbXB0eSBkaXJlY3RvcmllcyBqdXN0IGxp a2Ugb3RoZXIgZmlsZXMsIGJ1dCBub3JtYWxseQpEaXJlZCBjYW5ub3QgZGVsZXRlIGRpcmVjdG9y aWVzIHRoYXQgYXJlIG5vbmVtcHR5LiAgSG93ZXZlciwgaWYgdGhlCnZhcmlhYmxlIOKAmGRpcmVk LXJlY3Vyc2l2ZS1kZWxldGVz4oCZIGlzIG5vbi3igJhuaWzigJksIHRoZW4gRGlyZWQgaXMgYWxs b3dlZAp0byBkZWxldGUgbm9uZW1wdHkgZGlyZWN0b3JpZXMgaW5jbHVkaW5nIGFsbCB0aGVpciBj b250ZW50cy4gIFRoYXQgY2FuCmJlIHNvbWV3aGF0IHJpc2t5LiAgSWYgdGhlIHZhbHVlIG9mIHRo ZSB2YXJpYWJsZSBpcyDigJhhbHdheXPigJksIERpcmVkIHdpbGwKZGVsZXRlIG5vbmVtcHR5IGRp cmVjdG9yaWVzIHJlY3Vyc2l2ZWx5LCB3aGljaCBpcyBldmVuIG1vcmUgcmlza3kuCgogICBFdmVu IGlmIHlvdSBoYXZlIHNldCDigJhkaXJlZC1yZWN1cnNpdmUtZGVsZXRlc+KAmSB0byDigJhuaWzi gJksIHlvdSBtaWdodAp3YW50IHNvbWV0aW1lcyB0byBkZWxldGUgZGlyZWN0b3JpZXMgcmVjdXJz aXZlbHkgd2l0aG91dCBiZWluZyBhc2tlZCBmb3IKY29uZmlybWF0aW9uIGZvciBhbGwgb2YgdGhl bS4gIEZvciBleGFtcGxlLCB5b3UgbWF5IHdhbnQgdGhhdCB3aGVuIHlvdQpoYXZlIG1hcmtlZCBt YW55IGRpcmVjdG9yaWVzIGZvciBkZWxldGlvbiBhbmQgeW91IGFyZSB2ZXJ5IHN1cmUgdGhhdCBh bGwKb2YgdGhlbSBjYW4gc2FmZWx5IGJlIGRlbGV0ZWQuICBGb3IgZXZlcnkgbm9uZW1wdHkgZGly ZWN0b3J5IHlvdSBhcmUKYXNrZWQgZm9yIGNvbmZpcm1hdGlvbiB0byBkZWxldGUsIGlmIHlvdSBh bnN3ZXIg4oCYYWxs4oCZLCB0aGVuIGFsbCB0aGUKcmVtYWluaW5nIGRpcmVjdG9yaWVzIHdpbGwg YmUgZGVsZXRlZCB3aXRob3V0IGFueSBmdXJ0aGVyIHF1ZXN0aW9ucy4KCiAgIElmIHlvdSBjaGFu Z2UgdGhlIHZhcmlhYmxlIOKAmGRlbGV0ZS1ieS1tb3ZpbmctdG8tdHJhc2jigJkgdG8g4oCYdOKA mSwgdGhlCmFib3ZlIGRlbGV0aW9uIGNvbW1hbmRzIHdpbGwgbW92ZSB0aGUgYWZmZWN0ZWQgZmls ZXMgb3IgZGlyZWN0b3JpZXMgaW50bwp0aGUgb3BlcmF0aW5nIHN5c3RlbeKAmXMgVHJhc2gsIGlu c3RlYWQgb2YgZGVsZXRpbmcgdGhlbSBvdXRyaWdodC4gICpOb3RlCk1pc2MgRmlsZSBPcHM6Oi4K CiAgIEFuIGFsdGVybmF0aXZlIHdheSBvZiBkZWxldGluZyBmaWxlcyBpcyB0byBtYXJrIHRoZW0g d2l0aCDigJht4oCZIGFuZApkZWxldGUgd2l0aCDigJhE4oCZLCBzZWUgKm5vdGUgT3BlcmF0aW5n IG9uIEZpbGVzOjouCgoKKiogMzAuNCBGbGFnZ2luZyBNYW55IEZpbGVzIGF0IE9uY2UKClRoZSDi gJgj4oCZLCDigJh+4oCZLCDigJgu4oCZLCDigJglICbigJksIGFuZCDigJglIGTigJkgY29tbWFu ZHMgZmxhZyBtYW55IGZpbGVzIGZvcgpkZWxldGlvbiwgYmFzZWQgb24gdGhlaXIgZmlsZSBuYW1l czoKCuKAmCPigJkKICAgICBGbGFnIGFsbCBhdXRvLXNhdmUgZmlsZXMgKGZpbGVzIHdob3NlIG5h bWVzIHN0YXJ0IGFuZCBlbmQgd2l0aCDigJgj4oCZKQogICAgIGZvciBkZWxldGlvbiAoKm5vdGUg QXV0byBTYXZlOjopLgoK4oCYfuKAmQogICAgIEZsYWcgYWxsIGJhY2t1cCBmaWxlcyAoZmlsZXMg d2hvc2UgbmFtZXMgZW5kIHdpdGgg4oCYfuKAmSkgZm9yIGRlbGV0aW9uCiAgICAgKCpub3RlIEJh Y2t1cDo6KS4KCuKAmC4gKFBlcmlvZCnigJkKICAgICBGbGFnIGV4Y2VzcyBudW1lcmljIGJhY2t1 cCBmaWxlcyBmb3IgZGVsZXRpb24uICBUaGUgb2xkZXN0IGFuZAogICAgIG5ld2VzdCBmZXcgYmFj a3VwIGZpbGVzIG9mIGFueSBvbmUgZmlsZSBhcmUgZXhlbXB0OyB0aGUgbWlkZGxlIG9uZXMKICAg ICBhcmUgZmxhZ2dlZC4KCuKAmCUgJuKAmQogICAgIEZsYWcgZm9yIGRlbGV0aW9uIGFsbCBmaWxl cyB3aXRoIGNlcnRhaW4ga2luZHMgb2YgbmFtZXMgd2hpY2gKICAgICBzdWdnZXN0IHlvdSBjb3Vs ZCBlYXNpbHkgY3JlYXRlIHRob3NlIGZpbGVzIGFnYWluLgoK4oCYJSBkIFJFR0VYUCA8UkVUPuKA mQogICAgIEZsYWcgZm9yIGRlbGV0aW9uIGFsbCBmaWxlcyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUg cmVndWxhcgogICAgIGV4cHJlc3Npb24gUkVHRVhQLgoKICAg4oCYI+KAmSAo4oCYZGlyZWQtZmxh Zy1hdXRvLXNhdmUtZmlsZXPigJkpIGZsYWdzIGFsbCBmaWxlcyB3aG9zZSBuYW1lcyBsb29rCmxp a2UgYXV0by1zYXZlIGZpbGVz4oCUdGhhdCBpcywgZmlsZXMgd2hvc2UgbmFtZXMgYmVnaW4gYW5k IGVuZCB3aXRoIOKAmCPigJkuCipOb3RlIEF1dG8gU2F2ZTo6LgoKICAg4oCYfuKAmSAo4oCYZGly ZWQtZmxhZy1iYWNrdXAtZmlsZXPigJkpIGZsYWdzIGFsbCBmaWxlcyB3aG9zZSBuYW1lcyBzYXkg dGhleQphcmUgYmFja3VwIGZpbGVz4oCUdGhhdCBpcywgZmlsZXMgd2hvc2UgbmFtZXMgZW5kIGlu IOKAmH7igJkuICAqTm90ZSBCYWNrdXA6Oi4KCiAgIOKAmC7igJkgKHBlcmlvZCwg4oCYZGlyZWQt Y2xlYW4tZGlyZWN0b3J54oCZKSBmbGFncyBqdXN0IHNvbWUgb2YgdGhlIGJhY2t1cApmaWxlcyBm b3IgZGVsZXRpb246IGFsbCBidXQgdGhlIG9sZGVzdCBmZXcgYW5kIG5ld2VzdCBmZXcgYmFja3Vw cyBvZiBhbnkKb25lIGZpbGUuICBOb3JtYWxseSwgdGhlIG51bWJlciBvZiBuZXdlc3QgdmVyc2lv bnMga2VwdCBmb3IgZWFjaCBmaWxlIGlzCmdpdmVuIGJ5IHRoZSB2YXJpYWJsZSDigJhkaXJlZC1r ZXB0LXZlcnNpb25z4oCZIChfbm90XyDigJhrZXB0LW5ldy12ZXJzaW9uc+KAmTsKdGhhdCBhcHBs aWVzIG9ubHkgd2hlbiBzYXZpbmcpLiAgVGhlIG51bWJlciBvZiBvbGRlc3QgdmVyc2lvbnMgdG8g a2VlcAppcyBnaXZlbiBieSB0aGUgdmFyaWFibGUg4oCYa2VwdC1vbGQtdmVyc2lvbnPigJkuCgog ICBQZXJpb2Qgd2l0aCBhIHBvc2l0aXZlIG51bWVyaWMgYXJndW1lbnQsIGFzIGluIOKAmEMtdSAz IC7igJksIHNwZWNpZmllcwp0aGUgbnVtYmVyIG9mIG5ld2VzdCB2ZXJzaW9ucyB0byBrZWVwLCBv dmVycmlkaW5nIOKAmGRpcmVkLWtlcHQtdmVyc2lvbnPigJkuCkEgbmVnYXRpdmUgbnVtZXJpYyBh cmd1bWVudCBvdmVycmlkZXMg4oCYa2VwdC1vbGQtdmVyc2lvbnPigJksIHVzaW5nIG1pbnVzCnRo ZSB2YWx1ZSBvZiB0aGUgYXJndW1lbnQgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIG9sZGVzdCB2 ZXJzaW9ucyBvZgplYWNoIGZpbGUgdG8ga2VlcC4KCiAgIOKAmCUgJuKAmSAo4oCYZGlyZWQtZmxh Zy1nYXJiYWdlLWZpbGVz4oCZKSBmbGFncyBmaWxlcyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUKcmVn dWxhciBleHByZXNzaW9uIHNwZWNpZmllZCBieSB0aGUgdmFyaWFibGUK4oCYZGlyZWQtZ2FyYmFn ZS1maWxlcy1yZWdleHDigJkuICBCeSBkZWZhdWx0LCB0aGlzIG1hdGNoZXMgY2VydGFpbiBmaWxl cwpwcm9kdWNlZCBieSBUZVgsIOKAmC5iYWvigJkgZmlsZXMsIGFuZCB0aGUg4oCYLm9yaWfigJkg YW5kIOKAmC5yZWrigJkgZmlsZXMgcHJvZHVjZWQKYnkg4oCYcGF0Y2jigJkuCgogICDigJglIGTi gJkgZmxhZ3MgYWxsIGZpbGVzIHdob3NlIG5hbWVzIG1hdGNoIGEgc3BlY2lmaWVkIHJlZ3VsYXIK ZXhwcmVzc2lvbiAo4oCYZGlyZWQtZmxhZy1maWxlcy1yZWdleHDigJkpLiAgT25seSB0aGUgbm9u LWRpcmVjdG9yeSBwYXJ0IG9mCnRoZSBmaWxlIG5hbWUgaXMgdXNlZCBpbiBtYXRjaGluZy4gIFlv dSBjYW4gdXNlIOKAmF7igJkgYW5kIOKAmCTigJkgdG8gYW5jaG9yCm1hdGNoZXMuICBZb3UgY2Fu IGV4Y2x1ZGUgY2VydGFpbiBzdWJkaXJlY3RvcmllcyBmcm9tIG1hcmtpbmcgYnkgaGlkaW5nCnRo ZW0gd2hpbGUgeW91IHVzZSDigJglIGTigJkuICAqTm90ZSBIaWRpbmcgU3ViZGlyZWN0b3JpZXM6 Oi4KCgoqKiAzMC41IFZpc2l0aW5nIEZpbGVzIGluIERpcmVkCgpUaGVyZSBhcmUgc2V2ZXJhbCBE aXJlZCBjb21tYW5kcyBmb3IgdmlzaXRpbmcgb3IgZXhhbWluaW5nIHRoZSBmaWxlcwpsaXN0ZWQg aW4gdGhlIERpcmVkIGJ1ZmZlci4gIEFsbCBvZiB0aGVtIGFwcGx5IHRvIHRoZSBjdXJyZW50IGxp bmXigJlzCmZpbGU7IGlmIHRoYXQgZmlsZSBpcyByZWFsbHkgYSBkaXJlY3RvcnksIHRoZXNlIGNv bW1hbmRzIGludm9rZSBEaXJlZCBvbgp0aGF0IHN1YmRpcmVjdG9yeSAobWFraW5nIGEgc2VwYXJh dGUgRGlyZWQgYnVmZmVyKS4KCuKAmGbigJkKICAgICBWaXNpdCB0aGUgZmlsZSBkZXNjcmliZWQg b24gdGhlIGN1cnJlbnQgbGluZSwgbGlrZSB0eXBpbmcg4oCYQy14IEMtZuKAmQogICAgIGFuZCBz dXBwbHlpbmcgdGhhdCBmaWxlIG5hbWUgKOKAmGRpcmVkLWZpbmQtZmlsZeKAmSkuICAqTm90ZQog ICAgIFZpc2l0aW5nOjouCgrigJg8UkVUPuKAmQrigJhl4oCZCiAgICAgRXF1aXZhbGVudCB0byDi gJhm4oCZLgoK4oCYb+KAmQogICAgIExpa2Ug4oCYZuKAmSwgYnV0IHVzZXMgYW5vdGhlciB3aW5k b3cgdG8gZGlzcGxheSB0aGUgZmlsZeKAmXMgYnVmZmVyCiAgICAgKOKAmGRpcmVkLWZpbmQtZmls ZS1vdGhlci13aW5kb3figJkpLiAgVGhlIERpcmVkIGJ1ZmZlciByZW1haW5zIHZpc2libGUKICAg ICBpbiB0aGUgZmlyc3Qgd2luZG93LiAgVGhpcyBpcyBsaWtlIHVzaW5nIOKAmEMteCA0IEMtZuKA mSB0byB2aXNpdCB0aGUKICAgICBmaWxlLiAgKk5vdGUgV2luZG93czo6LgoK4oCYQy1v4oCZCiAg ICAgVmlzaXQgdGhlIGZpbGUgZGVzY3JpYmVkIG9uIHRoZSBjdXJyZW50IGxpbmUsIGFuZCBkaXNw bGF5IHRoZQogICAgIGJ1ZmZlciBpbiBhbm90aGVyIHdpbmRvdywgYnV0IGRvIG5vdCBzZWxlY3Qg dGhhdCB3aW5kb3cKICAgICAo4oCYZGlyZWQtZGlzcGxheS1maWxl4oCZKS4KCuKAmG1vdXNlLTHi gJkK4oCYbW91c2UtMuKAmQogICAgIFZpc2l0IHRoZSBmaWxlIHdob3NlIG5hbWUgeW91IGNsaWNr ZWQgb24KICAgICAo4oCYZGlyZWQtbW91c2UtZmluZC1maWxlLW90aGVyLXdpbmRvd+KAmSkuICBU aGlzIHVzZXMgYW5vdGhlciB3aW5kb3cKICAgICB0byBkaXNwbGF5IHRoZSBmaWxlLCBsaWtlIHRo ZSDigJhv4oCZIGNvbW1hbmQuCgrigJh24oCZCiAgICAgVmlldyB0aGUgZmlsZSBkZXNjcmliZWQg b24gdGhlIGN1cnJlbnQgbGluZSwgd2l0aCBWaWV3IG1vZGUKICAgICAo4oCYZGlyZWQtdmlldy1m aWxl4oCZKS4gIFZpZXcgbW9kZSBwcm92aWRlcyBjb252ZW5pZW50IGNvbW1hbmRzIHRvCiAgICAg bmF2aWdhdGUgdGhlIGJ1ZmZlciBidXQgZm9yYmlkcyBjaGFuZ2luZyBpdDsgKk5vdGUgVmlldyBN b2RlOjouCgrigJhe4oCZCiAgICAgVmlzaXQgdGhlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5CiAgICAgKOKAmGRpcmVkLXVwLWRpcmVjdG9yeeKAmSkuICBUaGlzIGlz IGVxdWl2YWxlbnQgdG8gbW92aW5nIHRvIHRoZSBsaW5lCiAgICAgZm9yIOKAmC4u4oCZIGFuZCB0 eXBpbmcg4oCYZuKAmSB0aGVyZS4KCgoqKiAzMC42IERpcmVkIE1hcmtzIHZzLiBGbGFncwoKSW5z dGVhZCBvZiBmbGFnZ2luZyBhIGZpbGUgd2l0aCDigJhE4oCZLCB5b3UgY2FuICJtYXJrIiB0aGUg ZmlsZSB3aXRoIHNvbWUKb3RoZXIgY2hhcmFjdGVyICh1c3VhbGx5IOKAmCrigJkpLiAgTW9zdCBE aXJlZCBjb21tYW5kcyB0byBvcGVyYXRlIG9uIGZpbGVzCnVzZSB0aGUgZmlsZXMgbWFya2VkIHdp dGgg4oCYKuKAmS4gIFRoZSBvbmx5IGNvbW1hbmQgdGhhdCBvcGVyYXRlcyBvbgpmbGFnZ2VkIGZp bGVzIGlzIOKAmHjigJksIHdoaWNoIGRlbGV0ZXMgdGhlbS4KCiAgIEhlcmUgYXJlIHNvbWUgY29t bWFuZHMgZm9yIG1hcmtpbmcgd2l0aCDigJgq4oCZLCBmb3IgdW5tYXJraW5nLCBhbmQgZm9yCm9w ZXJhdGluZyBvbiBtYXJrcy4gICgqTm90ZSBEaXJlZCBEZWxldGlvbjo6LCBmb3IgY29tbWFuZHMg dG8gZmxhZyBhbmQKdW5mbGFnIGZpbGVzLikKCuKAmG3igJkK4oCYKiBt4oCZCiAgICAgTWFyayB0 aGUgY3VycmVudCBmaWxlIHdpdGgg4oCYKuKAmSAo4oCYZGlyZWQtbWFya+KAmSkuICBJZiB0aGUg cmVnaW9uIGlzCiAgICAgYWN0aXZlLCBtYXJrIGFsbCBmaWxlcyBpbiB0aGUgcmVnaW9uIGluc3Rl YWQ7IG90aGVyd2lzZSwgaWYgYQogICAgIG51bWVyaWMgYXJndW1lbnQgTiBpcyBzdXBwbGllZCwg bWFyayB0aGUgbmV4dCBOIGZpbGVzIGluc3RlYWQsCiAgICAgc3RhcnRpbmcgd2l0aCB0aGUgY3Vy cmVudCBmaWxlIChpZiBOIGlzIG5lZ2F0aXZlLCBtYXJrIHRoZSBwcmV2aW91cwogICAgIOKIkk4g ZmlsZXMpLiAgSWYgaW52b2tlZCBvbiBhIHN1YmRpcmVjdG9yeSBoZWFkZXIgbGluZSAoKm5vdGUK ICAgICBTdWJkaXJlY3RvcmllcyBpbiBEaXJlZDo6KSwgdGhpcyBjb21tYW5kIG1hcmtzIGFsbCB0 aGUgZmlsZXMgaW4KICAgICB0aGF0IHN1YmRpcmVjdG9yeS4KCuKAmCogKuKAmQogICAgIE1hcmsg YWxsIGV4ZWN1dGFibGUgZmlsZXMgd2l0aCDigJgq4oCZICjigJhkaXJlZC1tYXJrLWV4ZWN1dGFi bGVz4oCZKS4KICAgICBXaXRoIGEgbnVtZXJpYyBhcmd1bWVudCwgdW5tYXJrIGFsbCB0aG9zZSBm aWxlcy4KCuKAmCogQOKAmQogICAgIE1hcmsgYWxsIHN5bWJvbGljIGxpbmtzIHdpdGgg4oCYKuKA mSAo4oCYZGlyZWQtbWFyay1zeW1saW5rc+KAmSkuICBXaXRoIGEKICAgICBudW1lcmljIGFyZ3Vt ZW50LCB1bm1hcmsgYWxsIHRob3NlIGZpbGVzLgoK4oCYKiAv4oCZCiAgICAgTWFyayB3aXRoIOKA mCrigJkgYWxsIGZpbGVzIHdoaWNoIGFyZSBkaXJlY3RvcmllcywgZXhjZXB0IGZvciDigJgu4oCZ IGFuZAogICAgIOKAmC4u4oCZICjigJhkaXJlZC1tYXJrLWRpcmVjdG9yaWVz4oCZKS4gIFdpdGgg YSBudW1lcmljIGFyZ3VtZW50LCB1bm1hcmsKICAgICBhbGwgdGhvc2UgZmlsZXMuCgrigJgqIHPi gJkKICAgICBNYXJrIGFsbCB0aGUgZmlsZXMgaW4gdGhlIGN1cnJlbnQgc3ViZGlyZWN0b3J5LCBh c2lkZSBmcm9tIOKAmC7igJkgYW5kCiAgICAg4oCYLi7igJkgKOKAmGRpcmVkLW1hcmstc3ViZGly LWZpbGVz4oCZKS4KCuKAmHXigJkK4oCYKiB14oCZCiAgICAgUmVtb3ZlIGFueSBtYXJrIG9uIHRo aXMgbGluZSAo4oCYZGlyZWQtdW5tYXJr4oCZKS4gIElmIHRoZSByZWdpb24gaXMKICAgICBhY3Rp dmUsIHVubWFyayBhbGwgZmlsZXMgaW4gdGhlIHJlZ2lvbiBpbnN0ZWFkOyBvdGhlcndpc2UsIGlm IGEKICAgICBudW1lcmljIGFyZ3VtZW50IE4gaXMgc3VwcGxpZWQsIHVubWFyayB0aGUgbmV4dCBO IGZpbGVzIGluc3RlYWQsCiAgICAgc3RhcnRpbmcgd2l0aCB0aGUgY3VycmVudCBmaWxlIChpZiBO IGlzIG5lZ2F0aXZlLCB1bm1hcmsgdGhlCiAgICAgcHJldmlvdXMg4oiSTiBmaWxlcykuCgrigJg8 REVMPuKAmQrigJgqIDxERUw+4oCZCiAgICAgTW92ZSBwb2ludCB0byBwcmV2aW91cyBsaW5lIGFu ZCByZW1vdmUgYW55IG1hcmsgb24gdGhhdCBsaW5lCiAgICAgKOKAmGRpcmVkLXVubWFyay1iYWNr d2FyZOKAmSkuICBJZiB0aGUgcmVnaW9uIGlzIGFjdGl2ZSwgdW5tYXJrIGFsbAogICAgIGZpbGVz IGluIHRoZSByZWdpb24gaW5zdGVhZDsgb3RoZXJ3aXNlLCBpZiBhIG51bWVyaWMgYXJndW1lbnQg TiBpcwogICAgIHN1cHBsaWVkLCB1bm1hcmsgdGhlIE4gcHJlY2VkaW5nIGZpbGVzIGluc3RlYWQs IHN0YXJ0aW5nIHdpdGggdGhlCiAgICAgY3VycmVudCBmaWxlIChpZiBOIGlzIG5lZ2F0aXZlLCB1 bm1hcmsgdGhlIG5leHQg4oiSTiBmaWxlcykuCgrigJgqICHigJkK4oCYVeKAmQogICAgIFJlbW92 ZSBhbGwgbWFya3MgZnJvbSBhbGwgdGhlIGZpbGVzIGluIHRoaXMgRGlyZWQgYnVmZmVyCiAgICAg KOKAmGRpcmVkLXVubWFyay1hbGwtbWFya3PigJkpLgoK4oCYKiA/IE1BUktDSEFS4oCZCuKAmE0t PERFTD7igJkKICAgICBSZW1vdmUgYWxsIG1hcmtzIHRoYXQgdXNlIHRoZSBjaGFyYWN0ZXIgTUFS S0NIQVIKICAgICAo4oCYZGlyZWQtdW5tYXJrLWFsbC1maWxlc+KAmSkuICBJZiBpbnZva2VkIHdp dGgg4oCYTS08REVMPuKAmSwgdGhlIGNvbW1hbmQKICAgICBwcm9tcHRzIGZvciBNQVJLQ0hBUi4g IFRoYXQgTUFSS0NIQVIgaXMgYSBzaW5nbGUgY2hhcmFjdGVy4oCUZG8gbm90CiAgICAgdXNlIDxS RVQ+IHRvIHRlcm1pbmF0ZSBpdC4gIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIOKAmCogY+KA mQogICAgIGNvbW1hbmQgYmVsb3csIHdoaWNoIGxldHMgeW91IHJlcGxhY2Ugb25lIG1hcmsgY2hh cmFjdGVyIHdpdGgKICAgICBhbm90aGVyLgoKICAgICBXaXRoIGEgbnVtZXJpYyBhcmd1bWVudCwg dGhpcyBjb21tYW5kIHF1ZXJpZXMgYWJvdXQgZWFjaCBtYXJrZWQKICAgICBmaWxlLCBhc2tpbmcg d2hldGhlciB0byByZW1vdmUgaXRzIG1hcmsuICBZb3UgY2FuIGFuc3dlciDigJh54oCZCiAgICAg bWVhbmluZyB5ZXMsIOKAmG7igJkgbWVhbmluZyBubywgb3Ig4oCYIeKAmSB0byByZW1vdmUgdGhl IG1hcmtzIGZyb20gdGhlCiAgICAgcmVtYWluaW5nIGZpbGVzIHdpdGhvdXQgYXNraW5nIGFib3V0 IHRoZW0uCgrigJgqIEMtbuKAmQrigJhNLX3igJkKICAgICBNb3ZlIGRvd24gdG8gdGhlIG5leHQg bWFya2VkIGZpbGUgKOKAmGRpcmVkLW5leHQtbWFya2VkLWZpbGXigJkpLiAgQQogICAgIGZpbGUg aXMg4oCcbWFya2Vk4oCdIGlmIGl0IGhhcyBhbnkga2luZCBvZiBtYXJrLgoK4oCYKiBDLXDigJkK 4oCYTS174oCZCiAgICAgTW92ZSB1cCB0byB0aGUgcHJldmlvdXMgbWFya2VkIGZpbGUgKOKAmGRp cmVkLXByZXYtbWFya2VkLWZpbGXigJkpLgoK4oCYdOKAmQrigJgqIHTigJkKICAgICBUb2dnbGUg YWxsIG1hcmtzICjigJhkaXJlZC10b2dnbGUtbWFya3PigJkpOiBmaWxlcyBtYXJrZWQgd2l0aCDi gJgq4oCZCiAgICAgYmVjb21lIHVubWFya2VkLCBhbmQgdW5tYXJrZWQgZmlsZXMgYXJlIG1hcmtl ZCB3aXRoIOKAmCrigJkuICBGaWxlcwogICAgIG1hcmtlZCBpbiBhbnkgb3RoZXIgd2F5IGFyZSBu b3QgYWZmZWN0ZWQuCgrigJgqIGMgT0xELU1BUktDSEFSIE5FVy1NQVJLQ0hBUuKAmQogICAgIFJl cGxhY2UgYWxsIG1hcmtzIHRoYXQgdXNlIHRoZSBjaGFyYWN0ZXIgT0xELU1BUktDSEFSIHdpdGgg bWFya3MKICAgICB0aGF0IHVzZSB0aGUgY2hhcmFjdGVyIE5FVy1NQVJLQ0hBUiAo4oCYZGlyZWQt Y2hhbmdlLW1hcmtz4oCZKS4gIFRoaXMKICAgICBjb21tYW5kIGlzIHRoZSBwcmltYXJ5IHdheSB0 byBjcmVhdGUgb3IgdXNlIG1hcmtzIG90aGVyIHRoYW4g4oCYKuKAmSBvcgogICAgIOKAmETigJku ICBUaGUgYXJndW1lbnRzIGFyZSBzaW5nbGUgY2hhcmFjdGVyc+KAlGRvIG5vdCB1c2UgPFJFVD4g dG8KICAgICB0ZXJtaW5hdGUgdGhlbS4KCiAgICAgWW91IGNhbiB1c2UgYWxtb3N0IGFueSBjaGFy YWN0ZXIgYXMgYSBtYXJrIGNoYXJhY3RlciBieSBtZWFucyBvZgogICAgIHRoaXMgY29tbWFuZCwg dG8gZGlzdGluZ3Vpc2ggdmFyaW91cyBjbGFzc2VzIG9mIGZpbGVzLiAgSWYKICAgICBPTEQtTUFS S0NIQVIgaXMgYSBzcGFjZSAo4oCYIOKAmSksIHRoZW4gdGhlIGNvbW1hbmQgb3BlcmF0ZXMgb24g YWxsCiAgICAgdW5tYXJrZWQgZmlsZXM7IGlmIE5FVy1NQVJLQ0hBUiBpcyBhIHNwYWNlLCB0aGVu IHRoZSBjb21tYW5kCiAgICAgdW5tYXJrcyB0aGUgZmlsZXMgaXQgYWN0cyBvbi4KCiAgICAgVG8g aWxsdXN0cmF0ZSB0aGUgcG93ZXIgb2YgdGhpcyBjb21tYW5kLCBoZXJlIGlzIGhvdyB0byBwdXQg 4oCYROKAmQogICAgIGZsYWdzIG9uIGFsbCB0aGUgZmlsZXMgdGhhdCBoYXZlIG5vIG1hcmtzLCB3 aGlsZSB1bmZsYWdnaW5nIGFsbAogICAgIHRob3NlIHRoYXQgYWxyZWFkeSBoYXZlIOKAmETigJkg ZmxhZ3M6CgogICAgICAgICAgKiBjIEQgdCAgKiBjIDxTUEM+IEQgICogYyB0IDxTUEM+CgogICAg IFRoaXMgYXNzdW1lcyB0aGF0IG5vIGZpbGVzIHdlcmUgYWxyZWFkeSBtYXJrZWQgd2l0aCDigJh0 4oCZLgoK4oCYJSBtIFJFR0VYUCA8UkVUPuKAmQrigJgqICUgUkVHRVhQIDxSRVQ+4oCZCiAgICAg TWFyayAod2l0aCDigJgq4oCZKSBhbGwgZmlsZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHJlZ3Vs YXIgZXhwcmVzc2lvbgogICAgIFJFR0VYUCAo4oCYZGlyZWQtbWFyay1maWxlcy1yZWdleHDigJkp LiAgVGhpcyBjb21tYW5kIGlzIGxpa2Ug4oCYJSBk4oCZLAogICAgIGV4Y2VwdCB0aGF0IGl0IG1h cmtzIGZpbGVzIHdpdGgg4oCYKuKAmSBpbnN0ZWFkIG9mIGZsYWdnaW5nIHdpdGgg4oCYROKAmS4K CiAgICAgT25seSB0aGUgbm9uLWRpcmVjdG9yeSBwYXJ0IG9mIHRoZSBmaWxlIG5hbWUgaXMgdXNl ZCBpbiBtYXRjaGluZy4KICAgICBVc2Ug4oCYXuKAmSBhbmQg4oCYJOKAmSB0byBhbmNob3IgbWF0 Y2hlcy4gIFlvdSBjYW4gZXhjbHVkZSBzdWJkaXJlY3RvcmllcwogICAgIGJ5IHRlbXBvcmFyaWx5 IGhpZGluZyB0aGVtICgqbm90ZSBIaWRpbmcgU3ViZGlyZWN0b3JpZXM6OikuCgrigJglIGcgUkVH RVhQIDxSRVQ+4oCZCiAgICAgTWFyayAod2l0aCDigJgq4oCZKSBhbGwgZmlsZXMgd2hvc2UgX2Nv bnRlbnRzXyBjb250YWluIGEgbWF0Y2ggZm9yIHRoZQogICAgIHJlZ3VsYXIgZXhwcmVzc2lvbiBS RUdFWFAgKOKAmGRpcmVkLW1hcmstZmlsZXMtY29udGFpbmluZy1yZWdleHDigJkpLgogICAgIFRo aXMgY29tbWFuZCBpcyBsaWtlIOKAmCUgbeKAmSwgZXhjZXB0IHRoYXQgaXQgc2VhcmNoZXMgdGhl IGZpbGUKICAgICBjb250ZW50cyBpbnN0ZWFkIG9mIHRoZSBmaWxlIG5hbWUuICBOb3RlIHRoYXQg aWYgYSBmaWxlIGlzIHZpc2l0ZWQKICAgICBpbiBhbiBFbWFjcyBidWZmZXIsIGFuZCDigJhkaXJl ZC1hbHdheXMtcmVhZC1maWxlc3lzdGVt4oCZIGlzIOKAmG5pbOKAmQogICAgICh0aGUgZGVmYXVs dCksIHRoaXMgY29tbWFuZCB3aWxsIGxvb2sgaW4gdGhlIGJ1ZmZlciB3aXRob3V0CiAgICAgcmV2 aXNpdGluZyB0aGUgZmlsZSwgc28gdGhlIHJlc3VsdHMgbWlnaHQgYmUgaW5jb25zaXN0ZW50IHdp dGggdGhlCiAgICAgZmlsZSBvbiBkaXNrIGlmIGl0cyBjb250ZW50cyBoYXZlIGNoYW5nZWQgc2lu Y2UgaXQgd2FzIGxhc3QKICAgICB2aXNpdGVkLiAgSWYgeW91IGRvbuKAmXQgd2FudCB0aGlzLCB5 b3UgbWF5IHdpc2ggdG8gcmV2ZXJ0IHRoZSBmaWxlcwogICAgIHlvdSBoYXZlIHZpc2l0ZWQgaW4g eW91ciBidWZmZXJzLCBvciB0byB0dXJuIG9uIEF1dG8tUmV2ZXJ0IG1vZGUgaW4KICAgICB0aG9z ZSBidWZmZXJzLCBiZWZvcmUgaW52b2tpbmcgdGhpcyBjb21tYW5kLiAgKk5vdGUgUmV2ZXJ0aW5n OjouCiAgICAgSWYgeW91IHByZWZlciB0aGF0IHRoaXMgY29tbWFuZCBzaG91bGQgYWx3YXlzIHJl dmlzaXQgdGhlIGZpbGUsCiAgICAgd2l0aG91dCB5b3UgaGF2aW5nIHRvIHJldmVydCB0aGUgZmls ZSBvciBlbmFibGUgQXV0by1SZXZlcnQgbW9kZSwKICAgICB5b3UgbWlnaHQgd2FudCB0byBzZXQg 4oCYZGlyZWQtYWx3YXlzLXJlYWQtZmlsZXN5c3RlbeKAmSB0byBub24t4oCYbmls4oCZLgoK4oCY Qy0v4oCZCuKAmEMteCB14oCZCuKAmEMtX+KAmQogICAgIFVuZG8gY2hhbmdlcyBpbiB0aGUgRGly ZWQgYnVmZmVyLCBzdWNoIGFzIGFkZGluZyBvciByZW1vdmluZyBtYXJrcwogICAgICjigJhkaXJl ZC11bmRv4oCZKS4gIF9UaGlzIGNvbW1hbmQgZG9lcyBub3QgcmV2ZXJ0IHRoZSBhY3R1YWwgZmls ZQogICAgIG9wZXJhdGlvbnMsIG5vciByZWNvdmVyIGxvc3QgZmlsZXMhXyAgSXQganVzdCB1bmRv ZXMgY2hhbmdlcyBpbiB0aGUKICAgICBidWZmZXIgaXRzZWxmLgoKICAgICBJbiBzb21lIGNhc2Vz LCB1c2luZyB0aGlzIGFmdGVyIGNvbW1hbmRzIHRoYXQgb3BlcmF0ZSBvbiBmaWxlcyBjYW4KICAg ICBjYXVzZSB0cm91YmxlLiAgRm9yIGV4YW1wbGUsIGFmdGVyIHJlbmFtaW5nIG9uZSBvciBtb3Jl IGZpbGVzLAogICAgIOKAmGRpcmVkLXVuZG/igJkgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIG5hbWVz IGluIHRoZSBEaXJlZCBidWZmZXIsIHdoaWNoCiAgICAgZ2V0cyB0aGUgRGlyZWQgYnVmZmVyIG91 dCBvZiBzeW5jIHdpdGggdGhlIGFjdHVhbCBjb250ZW50cyBvZiB0aGUKICAgICBkaXJlY3Rvcnku CgoKKiogMzAuNyBPcGVyYXRpbmcgb24gRmlsZXMKClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhl IGJhc2ljIERpcmVkIGNvbW1hbmRzIHRvIG9wZXJhdGUgb24gb25lIGZpbGUKb3Igc2V2ZXJhbCBm aWxlcy4gIEFsbCBvZiB0aGVzZSBjb21tYW5kcyBhcmUgY2FwaXRhbCBsZXR0ZXJzOyBhbGwgb2YK dGhlbSB1c2UgdGhlIG1pbmlidWZmZXIsIGVpdGhlciB0byByZWFkIGFuIGFyZ3VtZW50IG9yIHRv IGFzayBmb3IKY29uZmlybWF0aW9uLCBiZWZvcmUgdGhleSBhY3QuICBBbGwgb2YgdGhlbSBsZXQg eW91IHNwZWNpZnkgdGhlIGZpbGVzIHRvCm1hbmlwdWxhdGUgaW4gdGhlc2Ugd2F5czoKCiAgIOKA oiBJZiB5b3UgZ2l2ZSB0aGUgY29tbWFuZCBhIG51bWVyaWMgcHJlZml4IGFyZ3VtZW50IE4sIGl0 IG9wZXJhdGVzIG9uCiAgICAgdGhlIG5leHQgTiBmaWxlcywgc3RhcnRpbmcgd2l0aCB0aGUgY3Vy cmVudCBmaWxlLiAgKElmIE4gaXMKICAgICBuZWdhdGl2ZSwgdGhlIGNvbW1hbmQgb3BlcmF0ZXMg b24gdGhlIOKIkk4gZmlsZXMgcHJlY2VkaW5nIHRoZQogICAgIGN1cnJlbnQgbGluZS4pCgogICDi gKIgT3RoZXJ3aXNlLCBpZiBzb21lIGZpbGVzIGFyZSBtYXJrZWQgd2l0aCDigJgq4oCZLCB0aGUg Y29tbWFuZCBvcGVyYXRlcwogICAgIG9uIGFsbCB0aG9zZSBmaWxlcy4KCiAgIOKAoiBPdGhlcndp c2UsIHRoZSBjb21tYW5kIG9wZXJhdGVzIG9uIHRoZSBjdXJyZW50IGZpbGUgb25seS4KCkNlcnRh aW4gb3RoZXIgRGlyZWQgY29tbWFuZHMsIHN1Y2ggYXMg4oCYIeKAmSBhbmQgdGhlIOKAmCXigJkg Y29tbWFuZHMsIHVzZSB0aGUKc2FtZSBjb252ZW50aW9ucyB0byBkZWNpZGUgd2hpY2ggZmlsZXMg dG8gd29yayBvbi4KCiAgIENvbW1hbmRzIHdoaWNoIGFzayBmb3IgYSBkZXN0aW5hdGlvbiBkaXJl Y3RvcnksIHN1Y2ggYXMgdGhvc2Ugd2hpY2gKY29weSBhbmQgcmVuYW1lIGZpbGVzIG9yIGNyZWF0 ZSBsaW5rcyBmb3IgdGhlbSwgdHJ5IHRvIGd1ZXNzIHRoZSBkZWZhdWx0CnRhcmdldCBkaXJlY3Rv cnkgZm9yIHRoZSBvcGVyYXRpb24uICBOb3JtYWxseSwgdGhleSBzdWdnZXN0IHRoZSBEaXJlZApi dWZmZXLigJlzIGRlZmF1bHQgZGlyZWN0b3J5LCBidXQgaWYgdGhlIHZhcmlhYmxlIOKAmGRpcmVk LWR3aW0tdGFyZ2V04oCZIGlzCm5vbi3igJhuaWzigJksIGFuZCBpZiB0aGVyZSBpcyBhbm90aGVy IERpcmVkIGJ1ZmZlciBkaXNwbGF5ZWQgaW4gdGhlIG5leHQKd2luZG93LCB0aGF0IG90aGVyIGJ1 ZmZlcuKAmXMgZGlyZWN0b3J5IGlzIHN1Z2dlc3RlZCBpbnN0ZWFkLgoKICAgSGVyZSBhcmUgdGhl IGZpbGUtbWFuaXB1bGF0aW5nIERpcmVkIGNvbW1hbmRzIHRoYXQgb3BlcmF0ZSBvbiBmaWxlcy4K CuKAmEMgTkVXIDxSRVQ+4oCZCiAgICAgQ29weSB0aGUgc3BlY2lmaWVkIGZpbGVzICjigJhkaXJl ZC1kby1jb3B54oCZKS4gIFRoZSBhcmd1bWVudCBORVcgaXMKICAgICB0aGUgZGlyZWN0b3J5IHRv IGNvcHkgaW50bywgb3IgKGlmIGNvcHlpbmcgYSBzaW5nbGUgZmlsZSkgdGhlIG5ldwogICAgIG5h bWUuICBUaGlzIGlzIGxpa2UgdGhlIHNoZWxsIGNvbW1hbmQg4oCYY3DigJkuCgogICAgIElmIOKA mGRpcmVkLWNvcHktcHJlc2VydmUtdGltZeKAmSBpcyBub24t4oCYbmls4oCZLCB0aGVuIGNvcHlp bmcgd2l0aCB0aGlzCiAgICAgY29tbWFuZCBwcmVzZXJ2ZXMgdGhlIG1vZGlmaWNhdGlvbiB0aW1l IG9mIHRoZSBvbGQgZmlsZSBpbiB0aGUKICAgICBjb3B5LCBsaWtlIOKAmGNwIC1w4oCZLgoKICAg ICBUaGUgdmFyaWFibGUg4oCYZGlyZWQtcmVjdXJzaXZlLWNvcGllc+KAmSBjb250cm9scyB3aGV0 aGVyIHRvIGNvcHkKICAgICBkaXJlY3RvcmllcyByZWN1cnNpdmVseSAobGlrZSDigJhjcCAtcuKA mSkuICBUaGUgZGVmYXVsdCBpcyDigJh0b3DigJksCiAgICAgd2hpY2ggbWVhbnMgdG8gYXNrIGJl Zm9yZSByZWN1cnNpdmVseSBjb3B5aW5nIGEgZGlyZWN0b3J5LgoK4oCYROKAmQogICAgIERlbGV0 ZSB0aGUgc3BlY2lmaWVkIGZpbGVzICjigJhkaXJlZC1kby1kZWxldGXigJkpLiAgVGhpcyBpcyBs aWtlIHRoZQogICAgIHNoZWxsIGNvbW1hbmQg4oCYcm3igJkuCgogICAgIExpa2UgdGhlIG90aGVy IGNvbW1hbmRzIGluIHRoaXMgc2VjdGlvbiwgdGhpcyBjb21tYW5kIG9wZXJhdGVzIG9uCiAgICAg dGhlIF9tYXJrZWRfIGZpbGVzLCBvciB0aGUgbmV4dCBOIGZpbGVzLiAgQnkgY29udHJhc3QsIOKA mHjigJkKICAgICAo4oCYZGlyZWQtZG8tZmxhZ2dlZC1kZWxldGXigJkpIGRlbGV0ZXMgYWxsICJm bGFnZ2VkIiBmaWxlcy4KCuKAmFIgTkVXIDxSRVQ+4oCZCiAgICAgUmVuYW1lIHRoZSBzcGVjaWZp ZWQgZmlsZXMgKOKAmGRpcmVkLWRvLXJlbmFtZeKAmSkuICBJZiB5b3UgcmVuYW1lIGEKICAgICBz aW5nbGUgZmlsZSwgdGhlIGFyZ3VtZW50IE5FVyBpcyB0aGUgbmV3IG5hbWUgb2YgdGhlIGZpbGUu ICBJZiB5b3UKICAgICByZW5hbWUgc2V2ZXJhbCBmaWxlcywgdGhlIGFyZ3VtZW50IE5FVyBpcyB0 aGUgZGlyZWN0b3J5IGludG8gd2hpY2gKICAgICB0byBtb3ZlIHRoZSBmaWxlcyAodGhpcyBpcyBs aWtlIHRoZSBzaGVsbCBjb21tYW5kIOKAmG124oCZKS4KCiAgICAgRGlyZWQgYXV0b21hdGljYWxs eSBjaGFuZ2VzIHRoZSB2aXNpdGVkIGZpbGUgbmFtZSBvZiBidWZmZXJzCiAgICAgYXNzb2NpYXRl ZCB3aXRoIHJlbmFtZWQgZmlsZXMgc28gdGhhdCB0aGV5IHJlZmVyIHRvIHRoZSBuZXcgbmFtZXMu CgrigJhIIE5FVyA8UkVUPuKAmQogICAgIE1ha2UgaGFyZCBsaW5rcyB0byB0aGUgc3BlY2lmaWVk IGZpbGVzICjigJhkaXJlZC1kby1oYXJkbGlua+KAmSkuICBUaGlzCiAgICAgaXMgbGlrZSB0aGUg c2hlbGwgY29tbWFuZCDigJhsbuKAmS4gIFRoZSBhcmd1bWVudCBORVcgaXMgdGhlIGRpcmVjdG9y eQogICAgIHRvIG1ha2UgdGhlIGxpbmtzIGluLCBvciAoaWYgbWFraW5nIGp1c3Qgb25lIGxpbmsp IHRoZSBuYW1lIHRvIGdpdmUKICAgICB0aGUgbGluay4KCuKAmFMgTkVXIDxSRVQ+4oCZCiAgICAg TWFrZSBzeW1ib2xpYyBsaW5rcyB0byB0aGUgc3BlY2lmaWVkIGZpbGVzICjigJhkaXJlZC1kby1z eW1saW5r4oCZKS4KICAgICBUaGlzIGlzIGxpa2Ug4oCYbG4gLXPigJkuICBUaGUgYXJndW1lbnQg TkVXIGlzIHRoZSBkaXJlY3RvcnkgdG8gbWFrZQogICAgIHRoZSBsaW5rcyBpbiwgb3IgKGlmIG1h a2luZyBqdXN0IG9uZSBsaW5rKSB0aGUgbmFtZSB0byBnaXZlIHRoZQogICAgIGxpbmsuCgrigJhN IE1PREVTUEVDIDxSRVQ+4oCZCiAgICAgQ2hhbmdlIHRoZSBtb2RlIChhbHNvIGNhbGxlZCAicGVy bWlzc2lvbiBiaXRzIikgb2YgdGhlIHNwZWNpZmllZAogICAgIGZpbGVzICjigJhkaXJlZC1kby1j aG1vZOKAmSkuICBNT0RFU1BFQyBjYW4gYmUgaW4gb2N0YWwgb3Igc3ltYm9saWMKICAgICBub3Rh dGlvbiwgbGlrZSBhcmd1bWVudHMgaGFuZGxlZCBieSB0aGUg4oCYY2htb2TigJkgcHJvZ3JhbS4K CuKAmEcgTkVXR1JPVVAgPFJFVD7igJkKICAgICBDaGFuZ2UgdGhlIGdyb3VwIG9mIHRoZSBzcGVj aWZpZWQgZmlsZXMgdG8gTkVXR1JPVVAKICAgICAo4oCYZGlyZWQtZG8tY2hncnDigJkpLgoK4oCY TyBORVdPV05FUiA8UkVUPuKAmQogICAgIENoYW5nZSB0aGUgb3duZXIgb2YgdGhlIHNwZWNpZmll ZCBmaWxlcyB0byBORVdPV05FUgogICAgICjigJhkaXJlZC1kby1jaG93buKAmSkuICAoT24gbW9z dCBzeXN0ZW1zLCBvbmx5IHRoZSBzdXBlcnVzZXIgY2FuIGRvCiAgICAgdGhpcy4pCgogICAgIFRo ZSB2YXJpYWJsZSDigJhkaXJlZC1jaG93bi1wcm9ncmFt4oCZIHNwZWNpZmllcyB0aGUgbmFtZSBv ZiB0aGUKICAgICBwcm9ncmFtIHRvIHVzZSB0byBkbyB0aGUgd29yay4gIChUaGlzIHZhcmlhYmxl IGlzIG5lY2Vzc2FyeSBiZWNhdXNlCiAgICAgZGlmZmVyZW50IHN5c3RlbXMgcHV0IOKAmGNob3du 4oCZIGluIGRpZmZlcmVudCBwbGFjZXMpLgoK4oCYVCBUSU1FU1RBTVAgPFJFVD7igJkKICAgICBU b3VjaCB0aGUgc3BlY2lmaWVkIGZpbGVzICjigJhkaXJlZC1kby10b3VjaOKAmSkuICBUaGlzIG1l YW5zIHVwZGF0aW5nCiAgICAgdGhlaXIgbW9kaWZpY2F0aW9uIHRpbWVzIHRvIHRoZSBwcmVzZW50 IHRpbWUuICBUaGlzIGlzIGxpa2UgdGhlCiAgICAgc2hlbGwgY29tbWFuZCDigJh0b3VjaOKAmS4K CuKAmFAgQ09NTUFORCA8UkVUPuKAmQogICAgIFByaW50IHRoZSBzcGVjaWZpZWQgZmlsZXMgKOKA mGRpcmVkLWRvLXByaW504oCZKS4gIFlvdSBtdXN0IHNwZWNpZnkgdGhlCiAgICAgY29tbWFuZCB0 byBwcmludCB0aGVtIHdpdGgsIGJ1dCB0aGUgbWluaWJ1ZmZlciBzdGFydHMgb3V0IHdpdGggYQog ICAgIHN1aXRhYmxlIGd1ZXNzIG1hZGUgdXNpbmcgdGhlIHZhcmlhYmxlcyDigJhscHItY29tbWFu ZOKAmSBhbmQKICAgICDigJhscHItc3dpdGNoZXPigJkgKHRoZSBzYW1lIHZhcmlhYmxlcyB0aGF0 IOKAmGxwci1idWZmZXLigJkgdXNlczsgKm5vdGUKICAgICBQcmludGluZzo6KS4KCuKAmFrigJkK ICAgICBDb21wcmVzcyB0aGUgc3BlY2lmaWVkIGZpbGVzICjigJhkaXJlZC1kby1jb21wcmVzc+KA mSkuICBJZiB0aGUgZmlsZQogICAgIGFwcGVhcnMgdG8gYmUgYSBjb21wcmVzc2VkIGZpbGUgYWxy ZWFkeSwgdW5jb21wcmVzcyBpdCBpbnN0ZWFkLgogICAgIEVhY2ggbWFya2VkIGZpbGUgaXMgY29t cHJlc3NlZCBpbnRvIGl0cyBvd24gYXJjaGl2ZS4gIFRoaXMgdXNlcyB0aGUKICAgICDigJhnemlw 4oCZIHByb2dyYW0gaWYgaXQgaXMgYXZhaWxhYmxlLCBvdGhlcndpc2UgaXQgdXNlcyDigJhjb21w cmVzc+KAmS4KCuKAmGPigJkKICAgICBDb21wcmVzcyB0aGUgc3BlY2lmaWVkIGZpbGVzICjigJhk aXJlZC1kby1jb21wcmVzcy10b+KAmSkgaW50byBhIHNpbmdsZQogICAgIGFyY2hpdmUgYW55d2hl cmUgb24gdGhlIGZpbGUgc3lzdGVtLiAgVGhlIGNvbXByZXNzaW9uIGFsZ29yaXRobSBpcwogICAg IGRldGVybWluZWQgYnkgdGhlIGV4dGVuc2lvbiBvZiB0aGUgYXJjaGl2ZSwgc2VlCiAgICAg4oCY ZGlyZWQtY29tcHJlc3MtZmlsZXMtYWxpc3TigJkuCgrigJg6ZOKAmQogICAgIERlY3J5cHQgdGhl IHNwZWNpZmllZCBmaWxlcyAo4oCYZXBhLWRpcmVkLWRvLWRlY3J5cHTigJkpLiAgKk5vdGUKICAg ICAoZXBhKURpcmVkIGludGVncmF0aW9uOjouCgrigJg6duKAmQogICAgIFZlcmlmeSBkaWdpdGFs IHNpZ25hdHVyZXMgb24gdGhlIHNwZWNpZmllZCBmaWxlcwogICAgICjigJhlcGEtZGlyZWQtZG8t dmVyaWZ54oCZKS4gICpOb3RlIChlcGEpRGlyZWQgaW50ZWdyYXRpb246Oi4KCuKAmDpz4oCZCiAg ICAgRGlnaXRhbGx5IHNpZ24gdGhlIHNwZWNpZmllZCBmaWxlcyAo4oCYZXBhLWRpcmVkLWRvLXNp Z27igJkpLiAgKk5vdGUKICAgICAoZXBhKURpcmVkIGludGVncmF0aW9uOjouCgrigJg6ZeKAmQog ICAgIEVuY3J5cHQgdGhlIHNwZWNpZmllZCBmaWxlcyAo4oCYZXBhLWRpcmVkLWRvLWVuY3J5cHTi gJkpLiAgKk5vdGUKICAgICAoZXBhKURpcmVkIGludGVncmF0aW9uOjouCgrigJhM4oCZCiAgICAg TG9hZCB0aGUgc3BlY2lmaWVkIEVtYWNzIExpc3AgZmlsZXMgKOKAmGRpcmVkLWRvLWxvYWTigJkp LiAgKk5vdGUgTGlzcAogICAgIExpYnJhcmllczo6LgoK4oCYQuKAmQogICAgIEJ5dGUgY29tcGls ZSB0aGUgc3BlY2lmaWVkIEVtYWNzIExpc3AgZmlsZXMKICAgICAo4oCYZGlyZWQtZG8tYnl0ZS1j b21waWxl4oCZKS4gICpOb3RlIEJ5dGUgQ29tcGlsYXRpb246IChlbGlzcClCeXRlCiAgICAgQ29t cGlsYXRpb24uCgrigJhBIFJFR0VYUCA8UkVUPuKAmQogICAgIFNlYXJjaCBhbGwgdGhlIHNwZWNp ZmllZCBmaWxlcyBmb3IgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBSRUdFWFAKICAgICAo4oCYZGly ZWQtZG8tZmluZC1yZWdleHDigJkpLgoKICAgICBUaGlzIGNvbW1hbmQgaXMgYSB2YXJpYW50IG9m IOKAmHhyZWYtZmluZC1yZWZlcmVuY2Vz4oCZICgqbm90ZQogICAgIElkZW50aWZpZXIgU2VhcmNo OjopLCBpdCBkaXNwbGF5cyB0aGUg4oCYKnhyZWYq4oCZIGJ1ZmZlciwgd2hlcmUgeW91CiAgICAg Y2FuIG5hdmlnYXRlIGJldHdlZW4gbWF0Y2hlcyBhbmQgZGlzcGxheSB0aGVtIGFzIG5lZWRlZCB1 c2luZyB0aGUKICAgICBjb21tYW5kcyBkZXNjcmliZWQgaW4gKm5vdGUgWHJlZiBDb21tYW5kczo6 LgoKICAgICBJZiBhbnkgb2YgdGhlIG1hcmtlZCBmaWxlcyBhcmUgZGlyZWN0b3JpZXMsIHRoZW4g dGhpcyBjb21tYW5kCiAgICAgc2VhcmNoZXMgYWxsIG9mIHRoZSBmaWxlcyBpbiB0aG9zZSBkaXJl Y3RvcmllcywgYW5kIGFueSBvZiB0aGVpcgogICAgIHN1YmRpcmVjdG9yaWVzLCByZWN1cnNpdmVs eSwgZXhjZXB0IGZpbGVzIHdob3NlIG5hbWVzIG1hdGNoCiAgICAg4oCYZ3JlcC1maW5kLWlnbm9y ZWQtZmlsZXPigJkgYW5kIHN1YmRpcmVjdG9yaWVzIHdob3NlIG5hbWVzIG1hdGNoCiAgICAg4oCY Z3JlcC1maW5kLWlnbm9yZWQtZGlyZWN0b3JpZXPigJkuCgrigJhRIFJFR0VYUCA8UkVUPiBUTyA8 UkVUPuKAmQogICAgIFBlcmZvcm0g4oCYcXVlcnktcmVwbGFjZS1yZWdleHDigJkgb24gZWFjaCBv ZiB0aGUgc3BlY2lmaWVkIGZpbGVzLAogICAgIHJlcGxhY2luZyBtYXRjaGVzIGZvciBSRUdFWFAg d2l0aCB0aGUgc3RyaW5nIFRPCiAgICAgKOKAmGRpcmVkLWRvLWZpbmQtcmVnZXhwLWFuZC1yZXBs YWNl4oCZKS4KCiAgICAgVGhpcyBjb21tYW5kIGlzIGEgdmFyaWFudCBvZiDigJh4cmVmLXF1ZXJ5 LXJlcGxhY2UtaW4tcmVzdWx0c+KAmS4gIEl0CiAgICAgcHJlc2VudHMgYW4g4oCYKnhyZWYq4oCZ IGJ1ZmZlciB0aGF0IGxpc3RzIGFsbCB0aGUgbWF0Y2hlcyBvZiBSRUdFWFAsCiAgICAgYW5kIHlv dSBjYW4gdXNlIHRoZSBzcGVjaWFsIGNvbW1hbmRzIGluIHRoYXQgYnVmZmVyICgqbm90ZSBYcmVm CiAgICAgQ29tbWFuZHM6OikuICBJbiBwYXJ0aWN1bGFyLCBpZiB5b3UgZXhpdCB0aGUgcXVlcnkg cmVwbGFjZSBsb29wLAogICAgIHlvdSBjYW4gdXNlIOKAmHLigJkgaW4gdGhhdCBidWZmZXIgdG8g cmVwbGFjZSBtb3JlIG1hdGNoZXMuICAqTm90ZQogICAgIElkZW50aWZpZXIgU2VhcmNoOjouCgog ICAgIExpa2Ugd2l0aCDigJhkaXJlZC1kby1maW5kLXJlZ2V4cOKAmSwgaWYgYW55IG9mIHRoZSBt YXJrZWQgZmlsZXMgYXJlCiAgICAgZGlyZWN0b3JpZXMsIHRoaXMgY29tbWFuZCBwZXJmb3JtcyBy ZXBsYWNlbWVudHMgaW4gYWxsIG9mIHRoZSBmaWxlcwogICAgIGluIHRob3NlIGRpcmVjdG9yaWVz LCBhbmQgaW4gYW55IG9mIHRoZWlyIHN1YmRpcmVjdG9yaWVzLAogICAgIHJlY3Vyc2l2ZWx5LCBl eGNlcHQgZm9yIGZpbGVzIHdob3NlIG5hbWVzIG1hdGNoCiAgICAg4oCYZ3JlcC1maW5kLWlnbm9y ZWQtZmlsZXPigJkgYW5kIHN1YmRpcmVjdG9yaWVzIHdob3NlIG5hbWVzIG1hdGNoCiAgICAg4oCY Z3JlcC1maW5kLWlnbm9yZWQtZGlyZWN0b3JpZXPigJkuCgoKKiogMzAuOCBTaGVsbCBDb21tYW5k cyBpbiBEaXJlZAoKVGhlIERpcmVkIGNvbW1hbmQg4oCYIeKAmSAo4oCYZGlyZWQtZG8tc2hlbGwt Y29tbWFuZOKAmSkgcmVhZHMgYSBzaGVsbCBjb21tYW5kCnN0cmluZyBpbiB0aGUgbWluaWJ1ZmZl ciwgYW5kIHJ1bnMgdGhhdCBzaGVsbCBjb21tYW5kIG9uIG9uZSBvciBtb3JlCmZpbGVzLiAgVGhl IGZpbGVzIHRoYXQgdGhlIHNoZWxsIGNvbW1hbmQgb3BlcmF0ZXMgb24gYXJlIGRldGVybWluZWQg aW4KdGhlIHVzdWFsIHdheSBmb3IgRGlyZWQgY29tbWFuZHMgKCpub3RlIE9wZXJhdGluZyBvbiBG aWxlczo6KS4gIFRoZQpjb21tYW5kIOKAmFjigJkgaXMgYSBzeW5vbnltIGZvciDigJgh4oCZLgoK ICAgVGhlIGNvbW1hbmQg4oCYJuKAmSAo4oCYZGlyZWQtZG8tYXN5bmMtc2hlbGwtY29tbWFuZOKA mSkgZG9lcyB0aGUgc2FtZSwKZXhjZXB0IHRoYXQgaXQgcnVucyB0aGUgc2hlbGwgY29tbWFuZCBh c3luY2hyb25vdXNseS4gIChZb3UgY2FuIGFsc28gZG8KdGhpcyB3aXRoIOKAmCHigJksIGJ5IGFw cGVuZGluZyBhIOKAmCbigJkgY2hhcmFjdGVyIHRvIHRoZSBlbmQgb2YgdGhlIHNoZWxsCmNvbW1h bmQuKSAgV2hlbiB0aGUgY29tbWFuZCBvcGVyYXRlcyBvbiBtb3JlIHRoYW4gb25lIGZpbGUsIGl0 IHJ1bnMKbXVsdGlwbGUgcGFyYWxsZWwgY29waWVzIG9mIHRoZSBzcGVjaWZpZWQgc2hlbGwgY29t bWFuZCwgb25lIGZvciBlYWNoCmZpbGUuICBBcyBhbiBleGNlcHRpb24sIGlmIHRoZSBzcGVjaWZp ZWQgc2hlbGwgY29tbWFuZCBlbmRzIGluIOKAmDvigJkgb3IK4oCYOybigJksIHRoZSBzaGVsbCBj b21tYW5kIGlzIHJ1biBpbiB0aGUgYmFja2dyb3VuZCBvbiBlYWNoIGZpbGUKc2VxdWVudGlhbGx5 OyBFbWFjcyB3YWl0cyBmb3IgZWFjaCBpbnZva2VkIHNoZWxsIGNvbW1hbmQgdG8gdGVybWluYXRl CmJlZm9yZSBydW5uaW5nIHRoZSBuZXh0IG9uZS4KCiAgIEZvciBib3RoIOKAmCHigJkgYW5kIOKA mCbigJksIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhlIHNoZWxsIGNvbW1hbmQgaXMKdGhl IHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhlIERpcmVkIGJ1ZmZlci4KCiAgIElmIHlvdSB0ZWxs IOKAmCHigJkgb3Ig4oCYJuKAmSB0byBvcGVyYXRlIG9uIG1vcmUgdGhhbiBvbmUgZmlsZSwgdGhl IHNoZWxsCmNvbW1hbmQgc3RyaW5nIGRldGVybWluZXMgaG93IHRob3NlIGZpbGVzIGFyZSBwYXNz ZWQgdG8gdGhlIHNoZWxsCmNvbW1hbmQ6CgogICDigKIgSWYgeW91IHVzZSDigJgq4oCZIHN1cnJv dW5kZWQgYnkgd2hpdGVzcGFjZSBpbiB0aGUgY29tbWFuZCBzdHJpbmcsIHRoZW4KICAgICB0aGUg Y29tbWFuZCBydW5zIGp1c3Qgb25jZSwgd2l0aCB0aGUgbGlzdCBvZiBmaWxlIG5hbWVzIHN1YnN0 aXR1dGVkCiAgICAgZm9yIHRoZSDigJgq4oCZLiAgVGhlIG9yZGVyIG9mIGZpbGUgbmFtZXMgaXMg dGhlIG9yZGVyIG9mIGFwcGVhcmFuY2UgaW4KICAgICB0aGUgRGlyZWQgYnVmZmVyLgoKICAgICBU aHVzLCDigJghIHRhciBjZiBmb28udGFyICogPFJFVD7igJkgcnVucyDigJh0YXLigJkgb24gdGhl IGVudGlyZSBsaXN0IG9mCiAgICAgZmlsZSBuYW1lcywgcHV0dGluZyB0aGVtIGludG8gb25lIHRh ciBmaWxlIOKAmGZvby50YXLigJkuCgogICAgIElmIHlvdSB3YW50IHRvIHVzZSDigJgq4oCZIGFz IGEgc2hlbGwgd2lsZGNhcmQgd2l0aCB3aGl0ZXNwYWNlIGFyb3VuZAogICAgIGl0LCB3cml0ZSDi gJgqIiLigJkuICBJbiB0aGUgc2hlbGwsIHRoaXMgaXMgZXF1aXZhbGVudCB0byDigJgq4oCZOyBi dXQKICAgICBzaW5jZSB0aGUg4oCYKuKAmSBpcyBub3Qgc3Vycm91bmRlZCBieSB3aGl0ZXNwYWNl LCBEaXJlZCBkb2VzIG5vdCB0cmVhdAogICAgIGl0IHNwZWNpYWxseS4KCiAgIOKAoiBPdGhlcndp c2UsIGlmIHRoZSBjb21tYW5kIHN0cmluZyBjb250YWlucyDigJg/4oCZIHN1cnJvdW5kZWQgYnkK ICAgICB3aGl0ZXNwYWNlIG9yIOKAmGA/YOKAmSwgRW1hY3MgcnVucyB0aGUgc2hlbGwgY29tbWFu ZCBvbmNlIF9mb3IgZWFjaAogICAgIGZpbGVfLCBzdWJzdGl0dXRpbmcgdGhlIGN1cnJlbnQgZmls ZSBuYW1lIGZvciDigJg/4oCZIGFuZCDigJhgP2DigJkgZWFjaAogICAgIHRpbWUuICBZb3UgY2Fu IHVzZSBib3RoIOKAmD/igJkgYW5kIOKAmGA/YOKAmSBtb3JlIHRoYW4gb25jZSBpbiB0aGUKICAg ICBjb21tYW5kOyB0aGUgc2FtZSBmaWxlIG5hbWUgcmVwbGFjZXMgZWFjaCBvY2N1cnJlbmNlLiAg SWYgeW91IG1peAogICAgIHRoZW0gd2l0aCDigJgq4oCZIHRoZSBjb21tYW5kIHNpZ25hbHMgYW4g ZXJyb3IuCgogICDigKIgSWYgdGhlIGNvbW1hbmQgc3RyaW5nIGNvbnRhaW5zIG5laXRoZXIg4oCY KuKAmSBub3Ig4oCYP+KAmSBub3Ig4oCYYD9g4oCZLCBFbWFjcwogICAgIHJ1bnMgdGhlIHNoZWxs IGNvbW1hbmQgb25jZSBmb3IgZWFjaCBmaWxlLCBhZGRpbmcgdGhlIGZpbGUgbmFtZSBhdAogICAg IHRoZSBlbmQuICBGb3IgZXhhbXBsZSwg4oCYISB1dWRlY29kZSA8UkVUPuKAmSBydW5zIOKAmHV1 ZGVjb2Rl4oCZIG9uIGVhY2gKICAgICBmaWxlLgoKICAgVG8gaXRlcmF0ZSBvdmVyIHRoZSBmaWxl IG5hbWVzIGluIGEgbW9yZSBjb21wbGljYXRlZCBmYXNoaW9uLCB5b3UKbWlnaHQgcHJlZmVyIHRv IHVzZSBhbiBleHBsaWNpdCBzaGVsbCBsb29wLiAgRm9yIGV4YW1wbGUsIGhlcmUgaXMgaG93IHRv CnV1ZW5jb2RlIGVhY2ggZmlsZSwgbWFraW5nIHRoZSBvdXRwdXQgZmlsZSBuYW1lIGJ5IGFwcGVu ZGluZyDigJgudXXigJkgdG8KdGhlIGlucHV0IGZpbGUgbmFtZToKCiAgICAgZm9yIGZpbGUgaW4g KiA7IGRvIHV1ZW5jb2RlICIkZmlsZSIgIiRmaWxlIiA+IiRmaWxlIi51dTsgZG9uZQoKICAgVGhl IHNhbWUgZXhhbXBsZSB3aXRoIOKAmGA/YOKAmSBub3RhdGlvbjoKICAgICB1dWVuY29kZSA/ID8g PiBgP2AudXUKCiAgIFRoZSDigJgh4oCZIGFuZCDigJgm4oCZIGNvbW1hbmRzIGRvIG5vdCBhdHRl bXB0IHRvIHVwZGF0ZSB0aGUgRGlyZWQgYnVmZmVyIHRvCnNob3cgbmV3IG9yIG1vZGlmaWVkIGZp bGVzLCBiZWNhdXNlIHRoZXkgZG9u4oCZdCBrbm93IHdoYXQgZmlsZXMgd2lsbCBiZQpjaGFuZ2Vk LiAgVXNlIHRoZSDigJhn4oCZIGNvbW1hbmQgdG8gdXBkYXRlIHRoZSBEaXJlZCBidWZmZXIgKCpu b3RlIERpcmVkClVwZGF0aW5nOjopLgoKICAgKk5vdGUgU2luZ2xlIFNoZWxsOjosIGZvciBpbmZv cm1hdGlvbiBhYm91dCBydW5uaW5nIHNoZWxsIGNvbW1hbmRzCm91dHNpZGUgRGlyZWQuCgoKKiog MzAuOSBUcmFuc2Zvcm1pbmcgRmlsZSBOYW1lcyBpbiBEaXJlZAoKVGhpcyBzZWN0aW9uIGRlc2Ny aWJlcyBEaXJlZCBjb21tYW5kcyB3aGljaCBhbHRlciBmaWxlIG5hbWVzIGluIGEKc3lzdGVtYXRp YyB3YXkuICBFYWNoIGNvbW1hbmQgb3BlcmF0ZXMgb24gc29tZSBvciBhbGwgb2YgdGhlIG1hcmtl ZApmaWxlcywgdXNpbmcgYSBuZXcgbmFtZSBtYWRlIGJ5IHRyYW5zZm9ybWluZyB0aGUgZXhpc3Rp bmcgbmFtZS4KCiAgIExpa2UgdGhlIGJhc2ljIERpcmVkIGZpbGUtbWFuaXB1bGF0aW9uIGNvbW1h bmRzICgqbm90ZSBPcGVyYXRpbmcgb24KRmlsZXM6OiksIHRoZSBjb21tYW5kcyBkZXNjcmliZWQg aGVyZSBvcGVyYXRlIGVpdGhlciBvbiB0aGUgbmV4dCBOCmZpbGVzLCBvciBvbiBhbGwgZmlsZXMg bWFya2VkIHdpdGgg4oCYKuKAmSwgb3Igb24gdGhlIGN1cnJlbnQgZmlsZS4gIChUbwptYXJrIGZp bGVzLCB1c2UgdGhlIGNvbW1hbmRzIGRlc2NyaWJlZCBpbiAqbm90ZSBNYXJrcyB2cyBGbGFnczo6 LikKCiAgIEFsbCBvZiB0aGUgY29tbWFuZHMgZGVzY3JpYmVkIGluIHRoaXMgc2VjdGlvbiB3b3Jr IF9pbnRlcmFjdGl2ZWx5XzoKdGhleSBhc2sgeW91IHRvIGNvbmZpcm0gdGhlIG9wZXJhdGlvbiBm b3IgZWFjaCBjYW5kaWRhdGUgZmlsZS4gIFRodXMsCnlvdSBjYW4gc2VsZWN0IG1vcmUgZmlsZXMg dGhhbiB5b3UgYWN0dWFsbHkgbmVlZCB0byBvcGVyYXRlIG9uIChlLmcuLAp3aXRoIGEgcmVnZXhw IHRoYXQgbWF0Y2hlcyBtYW55IGZpbGVzKSwgYW5kIHRoZW4gZmlsdGVyIHRoZSBzZWxlY3RlZApu YW1lcyBieSB0eXBpbmcg4oCYeeKAmSBvciDigJhu4oCZIHdoZW4gdGhlIGNvbW1hbmQgcHJvbXB0 cyBmb3IgY29uZmlybWF0aW9uLgoK4oCYJSB14oCZCiAgICAgUmVuYW1lIGVhY2ggb2YgdGhlIHNl bGVjdGVkIGZpbGVzIHRvIGFuIHVwcGVyLWNhc2UgbmFtZQogICAgICjigJhkaXJlZC11cGNhc2Xi gJkpLiAgSWYgdGhlIG9sZCBmaWxlIG5hbWVzIGFyZSDigJhGb2/igJkgYW5kIOKAmGJhcuKAmSwg dGhlCiAgICAgbmV3IG5hbWVzIGFyZSDigJhGT0/igJkgYW5kIOKAmEJBUuKAmS4KCuKAmCUgbOKA mQogICAgIFJlbmFtZSBlYWNoIG9mIHRoZSBzZWxlY3RlZCBmaWxlcyB0byBhIGxvd2VyLWNhc2Ug bmFtZQogICAgICjigJhkaXJlZC1kb3duY2FzZeKAmSkuICBJZiB0aGUgb2xkIGZpbGUgbmFtZXMg YXJlIOKAmEZvb+KAmSBhbmQg4oCYYmFy4oCZLCB0aGUKICAgICBuZXcgbmFtZXMgYXJlIOKAmGZv b+KAmSBhbmQg4oCYYmFy4oCZLgoK4oCYJSBSIEZST00gPFJFVD4gVE8gPFJFVD7igJkK4oCYJSBD IEZST00gPFJFVD4gVE8gPFJFVD7igJkK4oCYJSBIIEZST00gPFJFVD4gVE8gPFJFVD7igJkK4oCY JSBTIEZST00gPFJFVD4gVE8gPFJFVD7igJkKICAgICBUaGVzZSBmb3VyIGNvbW1hbmRzIHJlbmFt ZSwgY29weSwgbWFrZSBoYXJkIGxpbmtzIGFuZCBtYWtlIHNvZnQKICAgICBsaW5rcywgaW4gZWFj aCBjYXNlIGNvbXB1dGluZyB0aGUgbmV3IG5hbWUgYnkgcmVndWxhci1leHByZXNzaW9uCiAgICAg c3Vic3RpdHV0aW9uIGZyb20gdGhlIG5hbWUgb2YgdGhlIG9sZCBmaWxlLgoKICAgVGhlIGZvdXIg cmVndWxhci1leHByZXNzaW9uIHN1YnN0aXR1dGlvbiBjb21tYW5kcyBlZmZlY3RpdmVseSBwZXJm b3JtCmEgc2VhcmNoLWFuZC1yZXBsYWNlIG9uIHRoZSBzZWxlY3RlZCBmaWxlIG5hbWVzLiAgVGhl eSByZWFkIHR3bwphcmd1bWVudHM6IGEgcmVndWxhciBleHByZXNzaW9uIEZST00sIGFuZCBhIHN1 YnN0aXR1dGlvbiBwYXR0ZXJuIFRPOwp0aGV5IG1hdGNoIGVhY2ggb2xkIGZpbGUgbmFtZSBhZ2Fp bnN0IEZST00sIGFuZCB0aGVuIHJlcGxhY2UgdGhlCm1hdGNoaW5nIHBhcnQgd2l0aCBUTy4gIFlv dSBjYW4gdXNlIOKAmFwm4oCZIGFuZCDigJhcRElHSVTigJkgaW4gVE8gdG8gcmVmZXIgdG8KYWxs IG9yIHBhcnQgb2Ygd2hhdCB0aGUgcGF0dGVybiBtYXRjaGVkIGluIHRoZSBvbGQgZmlsZSBuYW1l LCBhcyBpbgrigJhyZXBsYWNlLXJlZ2V4cOKAmSAoKm5vdGUgUmVnZXhwIFJlcGxhY2U6OikuICBJ ZiB0aGUgcmVndWxhciBleHByZXNzaW9uCm1hdGNoZXMgbW9yZSB0aGFuIG9uY2UgaW4gYSBmaWxl IG5hbWUsIG9ubHkgdGhlIGZpcnN0IG1hdGNoIGlzIHJlcGxhY2VkLgoKICAgRm9yIGV4YW1wbGUs IOKAmCUgUiBeLiokIDxSRVQ+IHgtXCYgPFJFVD7igJkgcmVuYW1lcyBlYWNoIHNlbGVjdGVkIGZp bGUKYnkgcHJlcGVuZGluZyDigJh4LeKAmSB0byBpdHMgbmFtZS4gIFRoZSBpbnZlcnNlIG9mIHRo aXMsIHJlbW92aW5nIOKAmHgt4oCZIGZyb20KdGhlIGZyb250IG9mIGVhY2ggZmlsZSBuYW1lLCBp cyBhbHNvIHBvc3NpYmxlOiBvbmUgbWV0aG9kIGlzIOKAmCUgUgpeeC1cKC4qXCkkIDxSRVQ+IFwx IDxSRVQ+4oCZOyBhbm90aGVyIGlzIOKAmCUgUiBeeC0gPFJFVD4gPFJFVD7igJkuICAoVXNlIOKA mF7igJkKYW5kIOKAmCTigJkgdG8gYW5jaG9yIG1hdGNoZXMgdGhhdCBzaG91bGQgc3BhbiB0aGUg d2hvbGUgZmlsZSBuYW1lLikKCiAgIE5vcm1hbGx5LCB0aGUgcmVwbGFjZW1lbnQgcHJvY2VzcyBk b2VzIG5vdCBjb25zaWRlciB0aGUgZmlsZXPigJkKZGlyZWN0b3J5IG5hbWVzOyBpdCBvcGVyYXRl cyBvbiB0aGUgZmlsZSBuYW1lIHdpdGhpbiB0aGUgZGlyZWN0b3J5LiAgSWYKeW91IHNwZWNpZnkg YSBudW1lcmljIGFyZ3VtZW50IG9mIHplcm8sIHRoZW4gcmVwbGFjZW1lbnQgYWZmZWN0cyB0aGUK ZW50aXJlIGFic29sdXRlIGZpbGUgbmFtZSBpbmNsdWRpbmcgZGlyZWN0b3J5IG5hbWUuICAoQSBu b24temVybwphcmd1bWVudCBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBmaWxlcyB0byBvcGVyYXRl IG9uLikKCiAgIFlvdSBtYXkgd2FudCB0byBzZWxlY3QgdGhlIHNldCBvZiBmaWxlcyB0byBvcGVy YXRlIG9uIHVzaW5nIHRoZSBzYW1lCnJlZ2V4cCBGUk9NIHRoYXQgeW91IHdpbGwgdXNlIHRvIG9w ZXJhdGUgb24gdGhlbS4gIFRvIGRvIHRoaXMsIG1hcmsKdGhvc2UgZmlsZXMgd2l0aCDigJglIG0g RlJPTSA8UkVUPuKAmSwgdGhlbiB1c2UgdGhlIHNhbWUgcmVndWxhciBleHByZXNzaW9uCmluIHRo ZSBjb21tYW5kIHRvIG9wZXJhdGUgb24gdGhlIGZpbGVzLiAgVG8gbWFrZSB0aGlzIG1vcmUgY29u dmVuaWVudCwKdGhlIOKAmCXigJkgY29tbWFuZHMgdG8gb3BlcmF0ZSBvbiBmaWxlcyB1c2UgdGhl IGxhc3QgcmVndWxhciBleHByZXNzaW9uCnNwZWNpZmllZCBpbiBhbnkg4oCYJeKAmSBjb21tYW5k IGFzIGEgZGVmYXVsdC4KCgoqKiAzMC4xMCBGaWxlIENvbXBhcmlzb24gd2l0aCBEaXJlZAoKVGhl IOKAmD3igJkgKOKAmGRpcmVkLWRpZmbigJkpIGNvbW1hbmQgY29tcGFyZXMgdGhlIGN1cnJlbnQg ZmlsZSAodGhlIGZpbGUgYXQKcG9pbnQpIHdpdGggYW5vdGhlciBmaWxlIChyZWFkIHVzaW5nIHRo ZSBtaW5pYnVmZmVyKSB1c2luZyB0aGUg4oCYZGlmZuKAmQpwcm9ncmFtLiAgVGhlIGZpbGUgc3Bl Y2lmaWVkIHdpdGggdGhlIG1pbmlidWZmZXIgaXMgdGhlIGZpcnN0IGFyZ3VtZW50Cm9mIOKAmGRp ZmbigJksIGFuZCBmaWxlIGF0IHBvaW50IGlzIHRoZSBzZWNvbmQgYXJndW1lbnQuICBUaGUgb3V0 cHV0IG9mIHRoZQrigJhkaWZm4oCZIHByb2dyYW0gaXMgc2hvd24gaW4gYSBidWZmZXIgdXNpbmcg RGlmZiBtb2RlICgqbm90ZSBDb21wYXJpbmcKRmlsZXM6OikuCgogICBJZiB0aGUgcmVnaW9uIGlz IGFjdGl2ZSwgdGhlIGRlZmF1bHQgZm9yIHRoZSBmaWxlIHJlYWQgdXNpbmcgdGhlCm1pbmlidWZm ZXIgaXMgdGhlIGZpbGUgYXQgdGhlIG1hcmsgKGkuZS4sIHRoZSBvcmRpbmFyeSBFbWFjcyBtYXJr LCBub3QgYQpEaXJlZCBtYXJrOyAqbm90ZSBTZXR0aW5nIE1hcms6OikuICBPdGhlcndpc2UsIGlm IHRoZSBmaWxlIGF0IHBvaW50IGhhcwphIGJhY2t1cCBmaWxlICgqbm90ZSBCYWNrdXA6OiksIHRo YXQgaXMgdGhlIGRlZmF1bHQuCgogICBZb3UgY291bGQgYWxzbyBjb21wYXJlIGZpbGVzIHVzaW5n IOKAmGVkaWZmLWZpbGVz4oCZLCBzZWUgKm5vdGUKKGVkaWZmKU1ham9yIEVudHJ5IFBvaW50czo6 LgoKCioqIDMwLjExIFN1YmRpcmVjdG9yaWVzIGluIERpcmVkCgpBIERpcmVkIGJ1ZmZlciB1c3Vh bGx5IGRpc3BsYXlzIGp1c3Qgb25lIGRpcmVjdG9yeSwgYnV0IHlvdSBjYW4Kb3B0aW9uYWxseSBp bmNsdWRlIGl0cyBzdWJkaXJlY3RvcmllcyBhcyB3ZWxsLgoKICAgVGhlIHNpbXBsZXN0IHdheSB0 byBpbmNsdWRlIG11bHRpcGxlIGRpcmVjdG9yaWVzIGluIG9uZSBEaXJlZCBidWZmZXIKaXMgdG8g c3BlY2lmeSB0aGUgb3B0aW9ucyDigJgtbFLigJkgZm9yIHJ1bm5pbmcg4oCYbHPigJkuICAoSWYg eW91IGdpdmUgYQpudW1lcmljIGFyZ3VtZW50IHdoZW4geW91IHJ1biBEaXJlZCwgdGhlbiB5b3Ug Y2FuIHNwZWNpZnkgdGhlc2Ugb3B0aW9ucwppbiB0aGUgbWluaWJ1ZmZlci4pICBUaGF0IHByb2R1 Y2VzIGEgcmVjdXJzaXZlIGRpcmVjdG9yeSBsaXN0aW5nIHNob3dpbmcKYWxsIHN1YmRpcmVjdG9y aWVzIGF0IGFsbCBsZXZlbHMuCgogICBNb3JlIG9mdGVuLCB5b3Ugd2lsbCB3YW50IHRvIHNob3cg b25seSBzcGVjaWZpYyBzdWJkaXJlY3Rvcmllcy4gIFlvdQpjYW4gZG8gdGhpcyB3aXRoIOKAmGni gJkgKOKAmGRpcmVkLW1heWJlLWluc2VydC1zdWJkaXLigJkpOgoK4oCYaeKAmQogICAgIEluc2Vy dCB0aGUgY29udGVudHMgb2YgYSBzdWJkaXJlY3RvcnkgbGF0ZXIgaW4gdGhlIGJ1ZmZlci4KCklm IHlvdSB1c2UgdGhpcyBjb21tYW5kIG9uIGEgbGluZSB0aGF0IGRlc2NyaWJlcyBhIGZpbGUgd2hp Y2ggaXMgYQpkaXJlY3RvcnksIGl0IGluc2VydHMgdGhlIGNvbnRlbnRzIG9mIHRoYXQgZGlyZWN0 b3J5IGludG8gdGhlIHNhbWUgRGlyZWQKYnVmZmVyLCBhbmQgbW92ZXMgdGhlcmUuICBJbnNlcnRl ZCBzdWJkaXJlY3RvcnkgY29udGVudHMgZm9sbG93IHRoZQp0b3AtbGV2ZWwgZGlyZWN0b3J5IG9m IHRoZSBEaXJlZCBidWZmZXIsIGp1c3QgYXMgdGhleSBkbyBpbiDigJhscyAtbFLigJkKb3V0cHV0 LgoKICAgSWYgdGhlIHN1YmRpcmVjdG9yeeKAmXMgY29udGVudHMgYXJlIGFscmVhZHkgcHJlc2Vu dCBpbiB0aGUgYnVmZmVyLCB0aGUK4oCYaeKAmSBjb21tYW5kIGp1c3QgbW92ZXMgdG8gaXQuCgog ICBJbiBlaXRoZXIgY2FzZSwg4oCYaeKAmSBzZXRzIHRoZSBFbWFjcyBtYXJrIGJlZm9yZSBtb3Zp bmcsIHNvIOKAmEMtdQpDLTxTUEM+4oCZIHJldHVybnMgdG8geW91ciBwcmV2aW91cyBwb3NpdGlv biBpbiB0aGUgRGlyZWQgYnVmZmVyICgqbm90ZQpTZXR0aW5nIE1hcms6OikuICBZb3UgY2FuIGFs c28gdXNlIOKAmF7igJkgdG8gcmV0dXJuIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5CmluIHRoZSBz YW1lIERpcmVkIGJ1ZmZlciAoKm5vdGUgRGlyZWQgVmlzaXRpbmc6OikuCgogICBVc2UgdGhlIOKA mGzigJkgY29tbWFuZCAo4oCYZGlyZWQtZG8tcmVkaXNwbGF54oCZKSB0byB1cGRhdGUgdGhlCnN1 YmRpcmVjdG9yeeKAmXMgY29udGVudHMsIGFuZCB1c2Ug4oCYQy11IGvigJkgb24gdGhlIHN1YmRp cmVjdG9yeSBoZWFkZXIgbGluZQp0byByZW1vdmUgdGhlIHN1YmRpcmVjdG9yeSBsaXN0aW5nICgq bm90ZSBEaXJlZCBVcGRhdGluZzo6KS4gIFlvdSBjYW4KYWxzbyBoaWRlIGFuZCBzaG93IGluc2Vy dGVkIHN1YmRpcmVjdG9yaWVzICgqbm90ZSBIaWRpbmcKU3ViZGlyZWN0b3JpZXM6OikuCgoKKiog MzAuMTIgU3ViZGlyZWN0b3J5IFN3aXRjaGVzIGluIERpcmVkCgpZb3UgY2FuIGluc2VydCBzdWJk aXJlY3RvcmllcyB3aXRoIHNwZWNpZmllZCDigJhsc+KAmSBzd2l0Y2hlcyBpbiBEaXJlZApidWZm ZXJzIHVzaW5nIOKAmEMtdSBp4oCZLiAgWW91IGNhbiBjaGFuZ2UgdGhlIOKAmGxz4oCZIHN3aXRj aGVzIG9mIGFuIGFscmVhZHkKaW5zZXJ0ZWQgc3ViZGlyZWN0b3J5IGF0IHBvaW50IHVzaW5nIOKA mEMtdSBs4oCZLgoKICAgRGlyZWQgcHJlc2VydmVzIHRoZSBzd2l0Y2hlcyBpZiB5b3UgcmV2ZXJ0 IHRoZSBidWZmZXIuICBEZWxldGluZyBhCnN1YmRpcmVjdG9yeSBmb3JnZXRzIGFib3V0IGl0cyBz d2l0Y2hlcy4KCiAgIFVzaW5nIOKAmGRpcmVkLXVuZG/igJkgKCpub3RlIE1hcmtzIHZzIEZsYWdz OjopIHRvIHJlaW5zZXJ0IG9yIGRlbGV0ZQpzdWJkaXJlY3RvcmllcyB0aGF0IHdlcmUgaW5zZXJ0 ZWQgd2l0aCBleHBsaWNpdCBzd2l0Y2hlcyBjYW4gYnlwYXNzCkRpcmVk4oCZcyBtYWNoaW5lcnkg Zm9yIHJlbWVtYmVyaW5nIChvciBmb3JnZXR0aW5nKSBzd2l0Y2hlcy4gIERlbGV0aW5nIGEKc3Vi ZGlyZWN0b3J5IHVzaW5nIOKAmGRpcmVkLXVuZG/igJkgZG9lcyBub3QgZm9yZ2V0IGl0cyBzd2l0 Y2hlcy4gIFdoZW4KbGF0ZXIgcmVpbnNlcnRlZCB1c2luZyDigJhp4oCZLCBpdCB3aWxsIGJlIHJl aW5zZXJ0ZWQgdXNpbmcgaXRzIG9sZApzd2l0Y2hlcy4gIFVzaW5nIOKAmGRpcmVkLXVuZG/igJkg dG8gcmVpbnNlcnQgYSBzdWJkaXJlY3RvcnkgdGhhdCB3YXMKZGVsZXRlZCB1c2luZyB0aGUgcmVn dWxhciBEaXJlZCBjb21tYW5kcyAobm90IOKAmGRpcmVkLXVuZG/igJkpIHdpbGwKb3JpZ2luYWxs eSBpbnNlcnQgaXQgd2l0aCBpdHMgb2xkIHN3aXRjaGVzLiAgUmV2ZXJ0aW5nIHRoZSBidWZmZXIs Cmhvd2V2ZXIsIHdpbGwgcmVsaXN0IGl0IHVzaW5nIHRoZSBidWZmZXLigJlzIGRlZmF1bHQgc3dp dGNoZXMuICBJZiBhbnkgb2YKdGhpcyB5aWVsZHMgcHJvYmxlbXMsIHlvdSBjYW4gZWFzaWx5IGNv cnJlY3QgdGhlIHNpdHVhdGlvbiB1c2luZyDigJhDLXUgaeKAmQpvciDigJhDLXUgbOKAmS4KCiAg IERpcmVkIGRvZXMgbm90IHJlbWVtYmVyIHRoZSDigJhS4oCZIHN3aXRjaC4gIEluc2VydGluZyBh IHN1YmRpcmVjdG9yeQp3aXRoIHN3aXRjaGVzIHRoYXQgaW5jbHVkZSB0aGUg4oCYUuKAmSBzd2l0 Y2ggaXMgZXF1aXZhbGVudCB0byBpbnNlcnRpbmcKZWFjaCBvZiBpdHMgc3ViZGlyZWN0b3JpZXMg dXNpbmcgYWxsIHJlbWFpbmluZyBzd2l0Y2hlcy4gIEZvciBpbnN0YW5jZSwKdXBkYXRpbmcgb3Ig a2lsbGluZyBhIHN1YmRpcmVjdG9yeSB0aGF0IHdhcyBpbnNlcnRlZCB3aXRoIHRoZSDigJhS4oCZ IHN3aXRjaAp3aWxsIG5vdCB1cGRhdGUgb3Iga2lsbCBpdHMgc3ViZGlyZWN0b3JpZXMuCgogICBU aGUgYnVmZmVy4oCZcyBkZWZhdWx0IHN3aXRjaGVzIGRvIG5vdCBhZmZlY3Qgc3ViZGlyZWN0b3Jp ZXMgdGhhdCB3ZXJlCmluc2VydGVkIHVzaW5nIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHN3aXRjaGVz LiAgSW4gcGFydGljdWxhciwgY29tbWFuZHMKc3VjaCBhcyDigJhz4oCZIHRoYXQgY2hhbmdlIHRo ZSBidWZmZXLigJlzIHN3aXRjaGVzIGRvIG5vdCBhZmZlY3Qgc3VjaApzdWJkaXJlY3Rvcmllcy4g IChUaGV5IGRvLCBob3dldmVyLCBhZmZlY3Qgc3ViZGlyZWN0b3JpZXMgd2l0aG91dApleHBsaWNp dGx5IGFzc2lnbmVkIHN3aXRjaGVzLikKCiAgIFlvdSBjYW4gbWFrZSBEaXJlZCBmb3JnZXQgYWJv dXQgYWxsIHN1YmRpcmVjdG9yeSBzd2l0Y2hlcyBhbmQgcmVsaXN0CmFsbCBzdWJkaXJlY3Rvcmll cyB3aXRoIHRoZSBidWZmZXLigJlzIGRlZmF1bHQgc3dpdGNoZXMgdXNpbmcg4oCYTS14CmRpcmVk LXJlc2V0LXN1YmRpci1zd2l0Y2hlc+KAmS4gIFRoaXMgYWxzbyByZXZlcnRzIHRoZSBEaXJlZCBi dWZmZXIuCgoKKiogMzAuMTMgTW92aW5nIE92ZXIgU3ViZGlyZWN0b3JpZXMKCldoZW4gYSBEaXJl ZCBidWZmZXIgbGlzdHMgc3ViZGlyZWN0b3JpZXMsIHlvdSBjYW4gdXNlIHRoZSBwYWdlIG1vdGlv bgpjb21tYW5kcyDigJhDLXggW+KAmSBhbmQg4oCYQy14IF3igJkgdG8gbW92ZSBieSBlbnRpcmUg ZGlyZWN0b3JpZXMgKCpub3RlClBhZ2VzOjopLgoKICAgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBt b3ZlIGFjcm9zcywgdXAgYW5kIGRvd24gaW4gdGhlIHRyZWUgb2YKZGlyZWN0b3JpZXMgd2l0aGlu IG9uZSBEaXJlZCBidWZmZXIuICBUaGV5IG1vdmUgdG8gImRpcmVjdG9yeSBoZWFkZXIKbGluZXMi LCB3aGljaCBhcmUgdGhlIGxpbmVzIHRoYXQgZ2l2ZSBhIGRpcmVjdG9yeeKAmXMgbmFtZSwgYXQg dGhlCmJlZ2lubmluZyBvZiB0aGUgZGlyZWN0b3J54oCZcyBjb250ZW50cy4KCuKAmEMtTS1u4oCZ CiAgICAgR28gdG8gbmV4dCBzdWJkaXJlY3RvcnkgaGVhZGVyIGxpbmUsIHJlZ2FyZGxlc3Mgb2Yg bGV2ZWwKICAgICAo4oCYZGlyZWQtbmV4dC1zdWJkaXLigJkpLgoK4oCYQy1NLXDigJkKICAgICBH byB0byBwcmV2aW91cyBzdWJkaXJlY3RvcnkgaGVhZGVyIGxpbmUsIHJlZ2FyZGxlc3Mgb2YgbGV2 ZWwKICAgICAo4oCYZGlyZWQtcHJldi1zdWJkaXLigJkpLgoK4oCYQy1NLXXigJkKICAgICBHbyB1 cCB0byB0aGUgcGFyZW50IGRpcmVjdG9yeeKAmXMgaGVhZGVyIGxpbmUgKOKAmGRpcmVkLXRyZWUt dXDigJkpLgoK4oCYQy1NLWTigJkKICAgICBHbyBkb3duIGluIHRoZSBkaXJlY3RvcnkgdHJlZSwg dG8gdGhlIGZpcnN0IHN1YmRpcmVjdG9yeeKAmXMgaGVhZGVyCiAgICAgbGluZSAo4oCYZGlyZWQt dHJlZS1kb3du4oCZKS4KCuKAmDzigJkKICAgICBNb3ZlIHVwIHRvIHRoZSBwcmV2aW91cyBkaXJl Y3RvcnktZmlsZSBsaW5lICjigJhkaXJlZC1wcmV2LWRpcmxpbmXigJkpLgogICAgIFRoZXNlIGxp bmVzIGFyZSB0aGUgb25lcyB0aGF0IGRlc2NyaWJlIGEgZGlyZWN0b3J5IGFzIGEgZmlsZSBpbiBp dHMKICAgICBwYXJlbnQgZGlyZWN0b3J5LgoK4oCYPuKAmQogICAgIE1vdmUgZG93biB0byB0aGUg bmV4dCBkaXJlY3RvcnktZmlsZSBsaW5lICjigJhkaXJlZC1uZXh0LWRpcmxpbmXigJkpLgoKCioq IDMwLjE0IEhpZGluZyBTdWJkaXJlY3RvcmllcwoKIkhpZGluZyIgYSBzdWJkaXJlY3RvcnkgbWVh bnMgdG8gbWFrZSBpdCBpbnZpc2libGUsIGV4Y2VwdCBmb3IgaXRzCmhlYWRlciBsaW5lLgoK4oCY JOKAmQogICAgIEhpZGUgb3Igc2hvdyB0aGUgc3ViZGlyZWN0b3J5IHRoYXQgcG9pbnQgaXMgaW4s IGFuZCBtb3ZlIHBvaW50IHRvCiAgICAgdGhlIG5leHQgc3ViZGlyZWN0b3J5ICjigJhkaXJlZC1o aWRlLXN1YmRpcuKAmSkuICBUaGlzIGlzIGEgdG9nZ2xlLiAgQQogICAgIG51bWVyaWMgYXJndW1l bnQgc2VydmVzIGFzIGEgcmVwZWF0IGNvdW50LgoK4oCYTS0k4oCZCiAgICAgSGlkZSBhbGwgc3Vi ZGlyZWN0b3JpZXMgaW4gdGhpcyBEaXJlZCBidWZmZXIsIGxlYXZpbmcgb25seSB0aGVpcgogICAg IGhlYWRlciBsaW5lcyAo4oCYZGlyZWQtaGlkZS1hbGzigJkpLiAgT3IsIGlmIGFueSBzdWJkaXJl Y3RvcnkgaXMKICAgICBjdXJyZW50bHkgaGlkZGVuLCBtYWtlIGFsbCBzdWJkaXJlY3RvcmllcyB2 aXNpYmxlIGFnYWluLiAgWW91IGNhbgogICAgIHVzZSB0aGlzIGNvbW1hbmQgdG8gZ2V0IGFuIG92 ZXJ2aWV3IGluIHZlcnkgZGVlcCBkaXJlY3RvcnkgdHJlZXMgb3IKICAgICB0byBtb3ZlIHF1aWNr bHkgdG8gc3ViZGlyZWN0b3JpZXMgZmFyIGF3YXkuCgogICBPcmRpbmFyeSBEaXJlZCBjb21tYW5k cyBuZXZlciBjb25zaWRlciBmaWxlcyBpbnNpZGUgYSBoaWRkZW4Kc3ViZGlyZWN0b3J5LiAgRm9y IGV4YW1wbGUsIHRoZSBjb21tYW5kcyB0byBvcGVyYXRlIG9uIG1hcmtlZCBmaWxlcwppZ25vcmUg ZmlsZXMgaW4gaGlkZGVuIGRpcmVjdG9yaWVzIGV2ZW4gaWYgdGhleSBhcmUgbWFya2VkLiAgVGh1 cyB5b3UKY2FuIHVzZSBoaWRpbmcgdG8gdGVtcG9yYXJpbHkgZXhjbHVkZSBzdWJkaXJlY3Rvcmll cyBmcm9tIG9wZXJhdGlvbnMKd2l0aG91dCBoYXZpbmcgdG8gcmVtb3ZlIHRoZSBEaXJlZCBtYXJr cyBvbiBmaWxlcyBpbiB0aG9zZQpzdWJkaXJlY3Rvcmllcy4KCiAgICpOb3RlIFN1YmRpcmVjdG9y aWVzIGluIERpcmVkOjosIGZvciBob3cgdG8gaW5zZXJ0IGEgc3ViZGlyZWN0b3J5Cmxpc3Rpbmcs IGFuZCBzZWUgKm5vdGUgRGlyZWQgVXBkYXRpbmc6OiwgZm9yIGhvdyB0byBkZWxldGUgaXQuCgoK KiogMzAuMTUgVXBkYXRpbmcgdGhlIERpcmVkIEJ1ZmZlcgoKVGhpcyBzZWN0aW9uIGRlc2NyaWJl cyBjb21tYW5kcyB0byB1cGRhdGUgdGhlIERpcmVkIGJ1ZmZlciB0byByZWZsZWN0Cm91dHNpZGUg KG5vbi1EaXJlZCkgY2hhbmdlcyBpbiB0aGUgZGlyZWN0b3JpZXMgYW5kIGZpbGVzLCBhbmQgdG8g ZGVsZXRlCnBhcnQgb2YgdGhlIERpcmVkIGJ1ZmZlci4KCuKAmGfigJkKICAgICBVcGRhdGUgdGhl IGVudGlyZSBjb250ZW50cyBvZiB0aGUgRGlyZWQgYnVmZmVyICjigJhyZXZlcnQtYnVmZmVy4oCZ KS4KCuKAmGzigJkKICAgICBVcGRhdGUgdGhlIHNwZWNpZmllZCBmaWxlcyAo4oCYZGlyZWQtZG8t cmVkaXNwbGF54oCZKS4gIFlvdSBzcGVjaWZ5IHRoZQogICAgIGZpbGVzIGZvciDigJhs4oCZIGlu IHRoZSBzYW1lIHdheSBhcyBmb3IgZmlsZSBvcGVyYXRpb25zLgoK4oCYa+KAmQogICAgIERlbGV0 ZSB0aGUgc3BlY2lmaWVkIF9maWxlIGxpbmVzX+KAlG5vdCB0aGUgZmlsZXMsIGp1c3QgdGhlIGxp bmVzCiAgICAgKOKAmGRpcmVkLWRvLWtpbGwtbGluZXPigJkpLgoK4oCYc+KAmQogICAgIFRvZ2ds ZSBiZXR3ZWVuIGFscGhhYmV0aWNhbCBvcmRlciBhbmQgZGF0ZS90aW1lIG9yZGVyCiAgICAgKOKA mGRpcmVkLXNvcnQtdG9nZ2xlLW9yLWVkaXTigJkpLgoK4oCYQy11IHMgU1dJVENIRVMgPFJFVD7i gJkKICAgICBSZWZyZXNoIHRoZSBEaXJlZCBidWZmZXIgdXNpbmcgU1dJVENIRVMgYXMKICAgICDi gJhkaXJlZC1saXN0aW5nLXN3aXRjaGVz4oCZLgoKICAgVHlwZSDigJhn4oCZICjigJhyZXZlcnQt YnVmZmVy4oCZKSB0byB1cGRhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBEaXJlZApidWZmZXIsIGJh c2VkIG9uIGNoYW5nZXMgaW4gdGhlIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBsaXN0ZWQuICBUaGlz CnByZXNlcnZlcyBhbGwgbWFya3MgZXhjZXB0IGZvciB0aG9zZSBvbiBmaWxlcyB0aGF0IGhhdmUg dmFuaXNoZWQuCkhpZGRlbiBzdWJkaXJlY3RvcmllcyBhcmUgdXBkYXRlZCBidXQgcmVtYWluIGhp ZGRlbi4KCiAgIFRvIHVwZGF0ZSBvbmx5IHNvbWUgb2YgdGhlIGZpbGVzLCB0eXBlIOKAmGzigJkg KOKAmGRpcmVkLWRvLXJlZGlzcGxheeKAmSkuCkxpa2UgdGhlIERpcmVkIGZpbGUtb3BlcmF0aW5n IGNvbW1hbmRzLCB0aGlzIGNvbW1hbmQgb3BlcmF0ZXMgb24gdGhlCm5leHQgTiBmaWxlcyAob3Ig cHJldmlvdXMg4oiSTiBmaWxlcyksIG9yIG9uIHRoZSBtYXJrZWQgZmlsZXMgaWYgYW55LCBvcgpv biB0aGUgY3VycmVudCBmaWxlLiAgVXBkYXRpbmcgdGhlIGZpbGVzIG1lYW5zIHJlYWRpbmcgdGhl aXIgY3VycmVudApzdGF0dXMsIHRoZW4gdXBkYXRpbmcgdGhlaXIgbGluZXMgaW4gdGhlIGJ1ZmZl ciB0byBpbmRpY2F0ZSB0aGF0IHN0YXR1cy4KCiAgIElmIHlvdSB1c2Ug4oCYbOKAmSBvbiBhIHN1 YmRpcmVjdG9yeSBoZWFkZXIgbGluZSwgaXQgdXBkYXRlcyB0aGUgY29udGVudHMKb2YgdGhlIGNv cnJlc3BvbmRpbmcgc3ViZGlyZWN0b3J5LgoKICAgSWYgeW91IHVzZSDigJhDLXggZOKAmSBvciBz b21lIG90aGVyIERpcmVkIGNvbW1hbmQgdG8gdmlzaXQgYSBkaXJlY3RvcnkKdGhhdCBpcyBhbHJl YWR5IGJlaW5nIHNob3duIGluIGEgRGlyZWQgYnVmZmVyLCBEaXJlZCBzd2l0Y2hlcyB0byB0aGF0 CmJ1ZmZlciBidXQgZG9lcyBub3QgdXBkYXRlIGl0LiAgSWYgdGhlIGJ1ZmZlciBpcyBub3QgdXAt dG8tZGF0ZSwgRGlyZWQKZGlzcGxheXMgYSB3YXJuaW5nIHRlbGxpbmcgeW91IHRvIHR5cGUg4oCY Z+KAmSB0byB1cGRhdGUgaXQuICBZb3UgY2FuIGFsc28KdGVsbCBFbWFjcyB0byByZXZlcnQgZWFj aCBEaXJlZCBidWZmZXIgYXV0b21hdGljYWxseSB3aGVuIHlvdSByZXZpc2l0Cml0LCBieSBzZXR0 aW5nIHRoZSB2YXJpYWJsZSDigJhkaXJlZC1hdXRvLXJldmVydC1idWZmZXLigJkgdG8gYSBub24t 4oCYbmls4oCZCnZhbHVlLgoKICAgVG8gZGVsZXRlIF9maWxlIGxpbmVzXyBmcm9tIHRoZSBidWZm ZXLigJR3aXRob3V0IGFjdHVhbGx5IGRlbGV0aW5nIHRoZQpmaWxlc+KAlHR5cGUg4oCYa+KAmSAo 4oCYZGlyZWQtZG8ta2lsbC1saW5lc+KAmSkuICBMaWtlIHRoZSBmaWxlLW9wZXJhdGluZwpjb21t YW5kcywgdGhpcyBjb21tYW5kIG9wZXJhdGVzIG9uIHRoZSBuZXh0IE4gZmlsZXMsIG9yIG9uIHRo ZSBtYXJrZWQKZmlsZXMgaWYgYW55LiAgSG93ZXZlciwgaXQgZG9lcyBub3Qgb3BlcmF0ZSBvbiB0 aGUgY3VycmVudCBmaWxlLCBzaW5jZQpvdGhlcndpc2UgbWlzdHlwaW5nIOKAmGvigJkgY291bGQg YmUgYW5ub3lpbmcuCgogICBJZiB5b3UgdXNlIOKAmGvigJkgdG8ga2lsbCB0aGUgbGluZSBmb3Ig YSBkaXJlY3RvcnkgZmlsZSB3aGljaCB5b3UgaGFkCmluc2VydGVkIGluIHRoZSBEaXJlZCBidWZm ZXIgYXMgYSBzdWJkaXJlY3RvcnkgKCpub3RlIFN1YmRpcmVjdG9yaWVzIGluCkRpcmVkOjopLCBp dCByZW1vdmVzIHRoZSBzdWJkaXJlY3RvcnkgbGlzdGluZyBhcyB3ZWxsLiAgVHlwaW5nIOKAmEMt dSBr4oCZCm9uIHRoZSBoZWFkZXIgbGluZSBmb3IgYSBzdWJkaXJlY3RvcnkgYWxzbyByZW1vdmVz IHRoZSBzdWJkaXJlY3RvcnkgbGluZQpmcm9tIHRoZSBEaXJlZCBidWZmZXIuCgogICBUaGUg4oCY Z+KAmSBjb21tYW5kIGJyaW5ncyBiYWNrIGFueSBpbmRpdmlkdWFsIGxpbmVzIHRoYXQgeW91IGhh dmUga2lsbGVkCmluIHRoaXMgd2F5LCBidXQgbm90IHN1YmRpcmVjdG9yaWVz4oCUeW91IG11c3Qg dXNlIOKAmGnigJkgdG8gcmVpbnNlcnQgYQpzdWJkaXJlY3RvcnkuCgogICBUaGUgZmlsZXMgaW4g YSBEaXJlZCBidWZmZXJzIGFyZSBub3JtYWxseSBsaXN0ZWQgaW4gYWxwaGFiZXRpY2FsCm9yZGVy IGJ5IGZpbGUgbmFtZXMuICBBbHRlcm5hdGl2ZWx5IERpcmVkIGNhbiBzb3J0IHRoZW0gYnkgZGF0 ZS90aW1lLgpUaGUgRGlyZWQgY29tbWFuZCDigJhz4oCZICjigJhkaXJlZC1zb3J0LXRvZ2dsZS1v ci1lZGl04oCZKSBzd2l0Y2hlcyBiZXR3ZWVuCnRoZXNlIHR3byBzb3J0aW5nIG1vZGVzLiAgVGhl IG1vZGUgbGluZSBpbiBhIERpcmVkIGJ1ZmZlciBpbmRpY2F0ZXMKd2hpY2ggd2F5IGl0IGlzIGN1 cnJlbnRseSBzb3J0ZWTigJRieSBuYW1lLCBvciBieSBkYXRlLgoKICAg4oCYQy11IHMgU1dJVENI RVMgPFJFVD7igJkgbGV0cyB5b3Ugc3BlY2lmeSBhIG5ldyB2YWx1ZSBmb3IK4oCYZGlyZWQtbGlz dGluZy1zd2l0Y2hlc+KAmS4KCgoqKiAzMC4xNiBEaXJlZCBhbmQg4oCYZmluZOKAmQoKWW91IGNh biBzZWxlY3QgYSBzZXQgb2YgZmlsZXMgZm9yIGRpc3BsYXkgaW4gYSBEaXJlZCBidWZmZXIgbW9y ZQpmbGV4aWJseSBieSB1c2luZyB0aGUg4oCYZmluZOKAmSB1dGlsaXR5IHRvIGNob29zZSB0aGUg ZmlsZXMuCgogICBUbyBzZWFyY2ggZm9yIGZpbGVzIHdpdGggbmFtZXMgbWF0Y2hpbmcgYSB3aWxk Y2FyZCBwYXR0ZXJuIHVzZSDigJhNLXgKZmluZC1uYW1lLWRpcmVk4oCZLiAgSXQgcmVhZHMgYXJn dW1lbnRzIERJUkVDVE9SWSBhbmQgUEFUVEVSTiwgYW5kIGNob29zZXMKYWxsIHRoZSBmaWxlcyBp biBESVJFQ1RPUlkgb3IgaXRzIHN1YmRpcmVjdG9yaWVzIHdob3NlIGluZGl2aWR1YWwgbmFtZXMK bWF0Y2ggUEFUVEVSTi4KCiAgIFRoZSBmaWxlcyB0aHVzIGNob3NlbiBhcmUgZGlzcGxheWVkIGlu IGEgRGlyZWQgYnVmZmVyLCBpbiB3aGljaCB0aGUKb3JkaW5hcnkgRGlyZWQgY29tbWFuZHMgYXJl IGF2YWlsYWJsZS4KCiAgIElmIHlvdSB3YW50IHRvIHRlc3QgdGhlIGNvbnRlbnRzIG9mIGZpbGVz LCByYXRoZXIgdGhhbiB0aGVpciBuYW1lcywKdXNlIOKAmE0teCBmaW5kLWdyZXAtZGlyZWTigJku ICBUaGlzIGNvbW1hbmQgcmVhZHMgdHdvIG1pbmlidWZmZXIgYXJndW1lbnRzLApESVJFQ1RPUlkg YW5kIFJFR0VYUDsgaXQgY2hvb3NlcyBhbGwgdGhlIGZpbGVzIGluIERJUkVDVE9SWSBvciBpdHMK c3ViZGlyZWN0b3JpZXMgdGhhdCBjb250YWluIGEgbWF0Y2ggZm9yIFJFR0VYUC4gIEl0IHdvcmtz IGJ5IHJ1bm5pbmcgdGhlCnByb2dyYW1zIOKAmGZpbmTigJkgYW5kIOKAmGdyZXDigJkuICBTZWUg YWxzbyDigJhNLXggZ3JlcC1maW5k4oCZLCBpbiAqbm90ZSBHcmVwClNlYXJjaGluZzo6LiAgUmVt ZW1iZXIgdG8gd3JpdGUgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3Ig4oCYZ3JlcOKAmSwgbm90 CmZvciBFbWFjcy4gIChBbiBhbHRlcm5hdGl2ZSBtZXRob2Qgb2Ygc2hvd2luZyBmaWxlcyB3aG9z ZSBjb250ZW50cyBtYXRjaAphIGdpdmVuIHJlZ2V4cCBpcyB0aGUg4oCYJSBnIFJFR0VYUOKAmSBj b21tYW5kLCBzZWUgKm5vdGUgTWFya3MgdnMgRmxhZ3M6Oi4pCgogICBUaGUgbW9zdCBnZW5lcmFs IGNvbW1hbmQgaW4gdGhpcyBzZXJpZXMgaXMg4oCYTS14IGZpbmQtZGlyZWTigJksIHdoaWNoCmxl dHMgeW91IHNwZWNpZnkgYW55IGNvbmRpdGlvbiB0aGF0IOKAmGZpbmTigJkgY2FuIHRlc3QuICBJ dCB0YWtlcyB0d28KbWluaWJ1ZmZlciBhcmd1bWVudHMsIERJUkVDVE9SWSBhbmQgRklORC1BUkdT OyBpdCBydW5zIOKAmGZpbmTigJkgaW4KRElSRUNUT1JZLCBwYXNzaW5nIEZJTkQtQVJHUyB0byB0 ZWxsIOKAmGZpbmTigJkgd2hhdCBjb25kaXRpb24gdG8gdGVzdC4gIFRvCnVzZSB0aGlzIGNvbW1h bmQsIHlvdSBuZWVkIHRvIGtub3cgaG93IHRvIHVzZSDigJhmaW5k4oCZLgoKICAgVGhlIGZvcm1h dCBvZiBsaXN0aW5nIHByb2R1Y2VkIGJ5IHRoZXNlIGNvbW1hbmRzIGlzIGNvbnRyb2xsZWQgYnkg dGhlCnZhcmlhYmxlIOKAmGZpbmQtbHMtb3B0aW9u4oCZLiAgVGhpcyBpcyBhIHBhaXIgb2Ygb3B0 aW9uczsgdGhlIGZpcnN0CnNwZWNpZnlpbmcgaG93IHRvIGNhbGwg4oCYZmluZOKAmSB0byBwcm9k dWNlIHRoZSBmaWxlIGxpc3RpbmcsIGFuZCB0aGUKc2Vjb25kIHRlbGxpbmcgRGlyZWQgdG8gcGFy c2UgdGhlIG91dHB1dC4KCiAgIFRoZSBjb21tYW5kIOKAmE0teCBsb2NhdGXigJkgcHJvdmlkZXMg YSBzaW1pbGFyIGludGVyZmFjZSB0byB0aGUg4oCYbG9jYXRl4oCZCnByb2dyYW0uICDigJhNLXgg bG9jYXRlLXdpdGgtZmlsdGVy4oCZIGlzIHNpbWlsYXIsIGJ1dCBrZWVwcyBvbmx5IGZpbGVzCndo b3NlIG5hbWVzIG1hdGNoIGEgZ2l2ZW4gcmVndWxhciBleHByZXNzaW9uLgoKICAgVGhlc2UgYnVm ZmVycyBkb27igJl0IHdvcmsgZW50aXJlbHkgbGlrZSBvcmRpbmFyeSBEaXJlZCBidWZmZXJzOiBm aWxlCm9wZXJhdGlvbnMgd29yaywgYnV0IGRvIG5vdCBhbHdheXMgYXV0b21hdGljYWxseSB1cGRh dGUgdGhlIGJ1ZmZlci4KUmV2ZXJ0aW5nIHRoZSBidWZmZXIgd2l0aCDigJhn4oCZIGRlbGV0ZXMg YWxsIGluc2VydGVkIHN1YmRpcmVjdG9yaWVzLCBhbmQKZXJhc2VzIGFsbCBmbGFncyBhbmQgbWFy a3MuCgoKKiogMzAuMTcgRWRpdGluZyB0aGUgRGlyZWQgQnVmZmVyCgpXZGlyZWQgaXMgYSBzcGVj aWFsIG1vZGUgdGhhdCBhbGxvd3MgeW91IHRvIHBlcmZvcm0gZmlsZSBvcGVyYXRpb25zIGJ5CmVk aXRpbmcgdGhlIERpcmVkIGJ1ZmZlciBkaXJlY3RseSAodGhlIOKAnFfigJ0gaW4g4oCcV2RpcmVk 4oCdIHN0YW5kcyBmb3IK4oCcd3JpdGFibGXigJ0pLiAgVG8gZW50ZXIgV2RpcmVkIG1vZGUsIHR5 cGUg4oCYQy14IEMtceKAmQoo4oCYZGlyZWQtdG9nZ2xlLXJlYWQtb25seeKAmSkgd2hpbGUgaW4g YSBEaXJlZCBidWZmZXIuICBBbHRlcm5hdGl2ZWx5LCB1c2UKdGhlIOKAmEltbWVkaWF0ZSAvIEVk aXQgRmlsZSBOYW1lc+KAmSBtZW51IGl0ZW0uCgogICBXaGlsZSBpbiBXZGlyZWQgbW9kZSwgeW91 IGNhbiByZW5hbWUgZmlsZXMgYnkgZWRpdGluZyB0aGUgZmlsZSBuYW1lcwpkaXNwbGF5ZWQgaW4g dGhlIERpcmVkIGJ1ZmZlci4gIEFsbCB0aGUgb3JkaW5hcnkgRW1hY3MgZWRpdGluZyBjb21tYW5k cywKaW5jbHVkaW5nIHJlY3RhbmdsZSBvcGVyYXRpb25zIGFuZCDigJhxdWVyeS1yZXBsYWNl4oCZ LCBhcmUgYXZhaWxhYmxlIGZvcgp0aGlzLiAgT25jZSB5b3UgYXJlIGRvbmUgZWRpdGluZywgdHlw ZSDigJhDLWMgQy1j4oCZICjigJh3ZGlyZWQtZmluaXNoLWVkaXTigJkpLgpUaGlzIGFwcGxpZXMg eW91ciBjaGFuZ2VzIGFuZCBzd2l0Y2hlcyBiYWNrIHRvIG9yZGluYXJ5IERpcmVkIG1vZGUuCgog ICBBcGFydCBmcm9tIHNpbXBseSByZW5hbWluZyBmaWxlcywgeW91IGNhbiBtb3ZlIGEgZmlsZSB0 byBhbm90aGVyCmRpcmVjdG9yeSBieSB0eXBpbmcgaW4gdGhlIG5ldyBmaWxlIG5hbWUgKGVpdGhl ciBhYnNvbHV0ZSBvciByZWxhdGl2ZSkuClRvIG1hcmsgYSBmaWxlIGZvciBkZWxldGlvbiwgZGVs ZXRlIHRoZSBlbnRpcmUgZmlsZSBuYW1lLiAgVG8gY2hhbmdlIHRoZQp0YXJnZXQgb2YgYSBzeW1i b2xpYyBsaW5rLCBlZGl0IHRoZSBsaW5rIHRhcmdldCBuYW1lIHdoaWNoIGFwcGVhcnMgbmV4dAp0 byB0aGUgbGluayBuYW1lLgoKICAgSWYgeW91IGVkaXQgdGhlIGZpbGUgbmFtZXMgdG8gY3JlYXRl IGEgbmV3IHN1YmRpcmVjdG9yeSwgV2RpcmVkIHdpbGwKYXV0b21hdGljYWxseSBjcmVhdGUgdGhl c2UgbmV3IGRpcmVjdG9yaWVzLiAgVG8gaW5oaWJpdCB0aGlzIGJlaGF2aW9yLApzZXQg4oCYd2Rp cmVkLWNyZWF0ZS1wYXJlbnQtZGlyZWN0b3JpZXPigJkgdG8g4oCYbmls4oCZLgoKICAgVGhlIHJl c3Qgb2YgdGhlIHRleHQgaW4gdGhlIGJ1ZmZlciwgc3VjaCBhcyB0aGUgZmlsZSBzaXplcyBhbmQK bW9kaWZpY2F0aW9uIGRhdGVzLCBpcyBtYXJrZWQgcmVhZC1vbmx5LCBzbyB5b3UgY2Fu4oCZdCBl ZGl0IGl0LiAgSG93ZXZlciwKaWYgeW91IHNldCDigJh3ZGlyZWQtYWxsb3ctdG8tY2hhbmdlLXBl cm1pc3Npb25z4oCZIHRvIOKAmHTigJksIHlvdSBjYW4gZWRpdCB0aGUKZmlsZSBwZXJtaXNzaW9u cy4gIEZvciBleGFtcGxlLCB5b3UgY2FuIGNoYW5nZSDigJgtcnctci0tci0t4oCZIHRvCuKAmC1y dy1ydy1ydy3igJkgdG8gbWFrZSBhIGZpbGUgd29ybGQtd3JpdGFibGUuICBUaGVzZSBjaGFuZ2Vz IGFsc28gdGFrZQplZmZlY3Qgd2hlbiB5b3UgdHlwZSDigJhDLWMgQy1j4oCZLgoKCioqIDMwLjE4 IFZpZXdpbmcgSW1hZ2UgVGh1bWJuYWlscyBpbiBEaXJlZAoKSW1hZ2UtRGlyZWQgaXMgYSBmYWNp bGl0eSBmb3IgYnJvd3NpbmcgaW1hZ2UgZmlsZXMuICBJdCBwcm92aWRlcyB2aWV3aW5nCnRoZSBp bWFnZXMgZWl0aGVyIGFzIHRodW1ibmFpbHMgb3IgaW4gZnVsbCBzaXplLCBlaXRoZXIgaW5zaWRl IEVtYWNzIG9yCnRocm91Z2ggYW4gZXh0ZXJuYWwgdmlld2VyLgoKICAgVG8gZW50ZXIgSW1hZ2Ut RGlyZWQsIG1hcmsgdGhlIGltYWdlIGZpbGVzIHlvdSB3YW50IHRvIGxvb2sgYXQgaW4gdGhlCkRp cmVkIGJ1ZmZlciwgdXNpbmcg4oCYbeKAmSBhcyB1c3VhbC4gIFRoZW4gdHlwZSDigJhDLXQgZOKA mQoo4oCYaW1hZ2UtZGlyZWQtZGlzcGxheS10aHVtYnPigJkpLiAgVGhpcyBjcmVhdGVzIGFuZCBz d2l0Y2hlcyB0byBhIGJ1ZmZlcgpjb250YWluaW5nIGltYWdlLWRpcmVkLCBjb3JyZXNwb25kaW5n IHRvIHRoZSBtYXJrZWQgZmlsZXMuCgogICBZb3UgY2FuIGFsc28gZW50ZXIgSW1hZ2UtRGlyZWQg ZGlyZWN0bHkgYnkgdHlwaW5nIOKAmE0teCBpbWFnZS1kaXJlZOKAmS4KVGhpcyBwcm9tcHRzIGZv ciBhIGRpcmVjdG9yeTsgc3BlY2lmeSBvbmUgdGhhdCBoYXMgaW1hZ2UgZmlsZXMuICBUaGlzCmNy ZWF0ZXMgdGh1bWJuYWlscyBmb3IgYWxsIHRoZSBpbWFnZXMgaW4gdGhhdCBkaXJlY3RvcnksIGFu ZCBkaXNwbGF5cwp0aGVtIGFsbCBpbiB0aGUgdGh1bWJuYWlsIGJ1ZmZlci4gIFRoaXMgdGFrZXMg YSBsb25nIHRpbWUgaWYgdGhlCmRpcmVjdG9yeSBjb250YWlucyBtYW55IGltYWdlIGZpbGVzLCBh bmQgaXQgYXNrcyBmb3IgY29uZmlybWF0aW9uIGlmIHRoZQpudW1iZXIgb2YgaW1hZ2UgZmlsZXMg ZXhjZWVkcyDigJhpbWFnZS1kaXJlZC1zaG93LWFsbC1mcm9tLWRpci1tYXgtZmlsZXPigJkuCgog ICBXaXRoIHBvaW50IGluIHRoZSB0aHVtYm5haWwgYnVmZmVyLCB5b3UgY2FuIHR5cGUgPFJFVD4K KOKAmGltYWdlLWRpcmVkLWRpc3BsYXktdGh1bWJuYWlsLW9yaWdpbmFsLWltYWdl4oCZKSB0byBk aXNwbGF5IGEgc2l6ZWQKdmVyc2lvbiBvZiBpdCBpbiBhbm90aGVyIHdpbmRvdy4gIFRoaXMgc2l6 ZXMgdGhlIGltYWdlIHRvIGZpdCB0aGUKd2luZG93LiAgVXNlIHRoZSBhcnJvdyBrZXlzIHRvIG1v dmUgYXJvdW5kIGluIHRoZSBidWZmZXIuICBGb3IgZWFzeQpicm93c2luZywgdXNlIDxTUEM+ICji gJhpbWFnZS1kaXJlZC1kaXNwbGF5LW5leHQtdGh1bWJuYWlsLW9yaWdpbmFs4oCZKSB0bwphZHZh bmNlIGFuZCBkaXNwbGF5IHRoZSBuZXh0IGltYWdlLiAgVHlwaW5nIDxERUw+CijigJhpbWFnZS1k aXJlZC1kaXNwbGF5LXByZXZpb3VzLXRodW1ibmFpbC1vcmlnaW5hbOKAmSkgYmFja3MgdXAgdG8g dGhlCnByZXZpb3VzIHRodW1ibmFpbCBhbmQgZGlzcGxheXMgdGhhdCBpbnN0ZWFkLgoKICAgVG8g dmlldyB0aGUgaW1hZ2UgaW4gaXRzIG9yaWdpbmFsIHNpemUsIGVpdGhlciBwcm92aWRlIGEgcHJl Zml4CmFyZ3VtZW50ICjigJhDLXXigJkpIGJlZm9yZSBwcmVzc2luZyA8UkVUPiwgb3IgdHlwZSDi gJhDLTxSRVQ+4oCZCijigJhpbWFnZS1kaXJlZC10aHVtYm5haWwtZGlzcGxheS1leHRlcm5hbOKA mSkgdG8gZGlzcGxheSB0aGUgaW1hZ2UgaW4gYW4KZXh0ZXJuYWwgdmlld2VyLiAgWW91IG11c3Qg Zmlyc3QgY29uZmlndXJlCuKAmGltYWdlLWRpcmVkLWV4dGVybmFsLXZpZXdlcuKAmS4KCiAgIFlv dSBjYW4gZGVsZXRlIGltYWdlcyB0aHJvdWdoIEltYWdlLURpcmVkIGFsc28uICBUeXBlIOKAmGTi gJkKKOKAmGltYWdlLWRpcmVkLWZsYWctdGh1bWItb3JpZ2luYWwtZmlsZeKAmSkgdG8gZmxhZyB0 aGUgaW1hZ2UgZmlsZSBmb3IKZGVsZXRpb24gaW4gdGhlIERpcmVkIGJ1ZmZlci4gIFlvdSBjYW4g YWxzbyBkZWxldGUgdGhlIHRodW1ibmFpbCBpbWFnZQpmcm9tIHRoZSB0aHVtYm5haWwgYnVmZmVy IHdpdGgg4oCYQy1k4oCZICjigJhpbWFnZS1kaXJlZC1kZWxldGUtY2hhcuKAmSkuCgogICBNb3Jl IGFkdmFuY2VkIGZlYXR1cmVzIGluY2x1ZGUgImltYWdlIHRhZ3MiLCB3aGljaCBhcmUgbWV0YWRh dGEgdXNlZAp0byBjYXRlZ29yaXplIGltYWdlIGZpbGVzLiAgVGhlIHRhZ3MgYXJlIHN0b3JlZCBp biBhIHBsYWluIHRleHQgZmlsZQpjb25maWd1cmVkIGJ5IOKAmGltYWdlLWRpcmVkLWRiLWZpbGXi gJkuCgogICBUbyB0YWcgaW1hZ2UgZmlsZXMsIG1hcmsgdGhlbSBpbiB0aGUgZGlyZWQgYnVmZmVy ICh5b3UgY2FuIGFsc28gbWFyawpmaWxlcyBpbiBEaXJlZCBmcm9tIHRoZSB0aHVtYm5haWwgYnVm ZmVyIGJ5IHR5cGluZyDigJht4oCZKSBhbmQgdHlwZSDigJhDLXQgdOKAmQoo4oCYaW1hZ2UtZGly ZWQtdGFnLWZpbGVz4oCZKS4gIFRoaXMgcmVhZHMgdGhlIHRhZyBuYW1lIGluIHRoZSBtaW5pYnVm ZmVyLgpUbyBtYXJrIGZpbGVzIGhhdmluZyBhIGNlcnRhaW4gdGFnLCB0eXBlIOKAmEMtdCBm4oCZ CijigJhpbWFnZS1kaXJlZC1tYXJrLXRhZ2dlZC1maWxlc+KAmSkuICBBZnRlciBtYXJraW5nIGlt YWdlIGZpbGVzIHdpdGggYQpjZXJ0YWluIHRhZywgeW91IGNhbiB1c2Ug4oCYQy10IGTigJkgdG8g dmlldyB0aGVtLgoKICAgWW91IGNhbiBhbHNvIHRhZyBhIGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUg dGh1bWJuYWlsIGJ1ZmZlciBieSB0eXBpbmcK4oCYdCB04oCZIGFuZCB5b3UgY2FuIHJlbW92ZSBh IHRhZyBieSB0eXBpbmcg4oCYdCBy4oCZLiAgVGhlcmUgaXMgYWxzbyBhIHNwZWNpYWwKdGFnIGNh bGxlZCDigJxjb21tZW504oCdIGZvciBlYWNoIGZpbGUgKGl0IGlzIG5vdCBhIHRhZyBpbiB0aGUg ZXhhY3Qgc2FtZQpzZW5zZSBhcyB0aGUgb3RoZXIgdGFncywgaXQgaXMgaGFuZGxlZCBzbGlnaHRs eSBkaWZmZXJlbnRseSkuICBUaGF0IGlzCnVzZWQgdG8gZW50ZXIgYSBjb21tZW50IG9yIGRlc2Ny aXB0aW9uIGFib3V0IHRoZSBpbWFnZS4gIFlvdSBjb21tZW50IGEKZmlsZSBmcm9tIHRoZSB0aHVt Ym5haWwgYnVmZmVyIGJ5IHR5cGluZyDigJhj4oCZLiAgWW91IHdpbGwgYmUgcHJvbXB0ZWQgZm9y CmEgY29tbWVudC4gIFR5cGUg4oCYQy10IGPigJkgdG8gYWRkIGEgY29tbWVudCBmcm9tIERpcmVk CijigJhpbWFnZS1kaXJlZC1kaXJlZC1jb21tZW50LWZpbGVz4oCZKS4KCiAgIEltYWdlLURpcmVk IGFsc28gcHJvdmlkZXMgc2ltcGxlIGltYWdlIG1hbmlwdWxhdGlvbi4gIEluIHRoZQp0aHVtYm5h aWwgYnVmZmVyLCB0eXBlIOKAmEzigJkgdG8gcm90YXRlIHRoZSBvcmlnaW5hbCBpbWFnZSA5MCBk ZWdyZWVzIGFudGkKY2xvY2t3aXNlLCBhbmQg4oCYUuKAmSB0byByb3RhdGUgaXQgOTAgZGVncmVl cyBjbG9ja3dpc2UuICBUaGlzIHJvdGF0aW9uIGlzCmxvc3NsZXNzLCBhbmQgdXNlcyBhbiBleHRl cm5hbCB1dGlsaXR5IGNhbGxlZCDigJhqcGVndHJhbuKAmSwgd2hpY2ggeW91IG5lZWQKdG8gaW5z dGFsbCBmaXJzdC4KCgoqKiAzMC4xOSBPdGhlciBEaXJlZCBGZWF0dXJlcwoKVGhlIGNvbW1hbmQg 4oCYK+KAmSAo4oCYZGlyZWQtY3JlYXRlLWRpcmVjdG9yeeKAmSkgcmVhZHMgYSBkaXJlY3Rvcnni gJlzIG5hbWUsIGFuZApjcmVhdGVzIHRoYXQgZGlyZWN0b3J5LiAgSXQgc2lnbmFscyBhbiBlcnJv ciBpZiB0aGUgZGlyZWN0b3J5IGFscmVhZHkKZXhpc3RzLgoKICAgVGhlIGNvbW1hbmQg4oCYTS1z IGEgQy1z4oCZICjigJhkaXJlZC1kby1pc2VhcmNo4oCZKSBiZWdpbnMgYSBtdWx0aS1maWxlCmlu Y3JlbWVudGFsIHNlYXJjaCBvbiB0aGUgbWFya2VkIGZpbGVzLiAgSWYgYSBzZWFyY2ggZmFpbHMg YXQgdGhlIGVuZCBvZgphIGZpbGUsIHR5cGluZyDigJhDLXPigJkgYWR2YW5jZXMgdG8gdGhlIG5l eHQgbWFya2VkIGZpbGUgYW5kIHJlcGVhdHMgdGhlCnNlYXJjaDsgYXQgdGhlIGVuZCBvZiB0aGUg bGFzdCBtYXJrZWQgZmlsZSwgdGhlIHNlYXJjaCB3cmFwcyBhcm91bmQgdG8KdGhlIGZpcnN0IG1h cmtlZCBmaWxlLiAgVGhlIGNvbW1hbmQg4oCYTS1zIGEgTS1DLXPigJkKKOKAmGRpcmVkLWRvLWlz ZWFyY2gtcmVnZXhw4oCZKSBkb2VzIHRoZSBzYW1lIHdpdGggYSByZWd1bGFyIGV4cHJlc3Npb24K c2VhcmNoLiAgKk5vdGUgUmVwZWF0IElzZWFyY2g6OiwgZm9yIGluZm9ybWF0aW9uIGFib3V0IHNl YXJjaApyZXBldGl0aW9uLgoKICAgVGhlIGNvbW1hbmQg4oCYd+KAmSAo4oCYZGlyZWQtY29weS1m aWxlbmFtZS1hcy1raWxs4oCZKSBwdXRzIHRoZSBuYW1lcyBvZiB0aGUKbWFya2VkIChvciBuZXh0 IE4pIGZpbGVzIGludG8gdGhlIGtpbGwgcmluZywgYXMgaWYgeW91IGhhZCBraWxsZWQgdGhlbQp3 aXRoIOKAmEMtd+KAmS4gIFRoZSBuYW1lcyBhcmUgc2VwYXJhdGVkIGJ5IGEgc3BhY2UuCgogICBX aXRoIGEgemVybyBwcmVmaXggYXJndW1lbnQsIHRoaXMgdXNlcyB0aGUgYWJzb2x1dGUgZmlsZSBu YW1lIG9mIGVhY2gKbWFya2VkIGZpbGUuICBXaXRoIGp1c3Qg4oCYQy114oCZIGFzIHRoZSBwcmVm aXggYXJndW1lbnQsIGl0IHVzZXMgZmlsZSBuYW1lcwpyZWxhdGl2ZSB0byB0aGUgRGlyZWQgYnVm ZmVy4oCZcyBkZWZhdWx0IGRpcmVjdG9yeS4gIChUaGlzIGNhbiBzdGlsbApjb250YWluIHNsYXNo ZXMgaWYgaW4gYSBzdWJkaXJlY3RvcnkuKSAgQXMgYSBzcGVjaWFsIGNhc2UsIGlmIHBvaW50IGlz Cm9uIGEgZGlyZWN0b3J5IGhlYWRlciBsaW5lLCDigJh34oCZIGdpdmVzIHlvdSB0aGUgYWJzb2x1 dGUgbmFtZSBvZiB0aGF0CmRpcmVjdG9yeS4gIEFueSBwcmVmaXggYXJndW1lbnQgb3IgbWFya2Vk IGZpbGVzIGFyZSBpZ25vcmVkIGluIHRoaXMKY2FzZS4KCiAgIFRoZSBtYWluIHB1cnBvc2Ugb2Yg dGhpcyBjb21tYW5kIGlzIHNvIHRoYXQgeW91IGNhbiB5YW5rIHRoZSBmaWxlCm5hbWVzIGludG8g YXJndW1lbnRzIGZvciBvdGhlciBFbWFjcyBjb21tYW5kcy4gIEl0IGFsc28gZGlzcGxheXMgd2hh dCBpdAphZGRlZCB0byB0aGUga2lsbCByaW5nLCBzbyB5b3UgY2FuIHVzZSBpdCB0byBkaXNwbGF5 IHRoZSBsaXN0IG9mCmN1cnJlbnRseSBtYXJrZWQgZmlsZXMgaW4gdGhlIGVjaG8gYXJlYS4KCiAg IElmIHlvdSBoYXZlIGFuIEhUTUwgZmlsZSBpbiB0aGUgZmlsZSBsaXN0aW5nLCBpdCBjYW4gYmUg dXNlZnVsIHRvCnZpZXcgdGhhdCBmaWxlIHdpdGggYSBicm93c2VyLiAgVGhlIOKAmFfigJkgKOKA mGJyb3dzZS11cmwtb2YtZGlyZWQtZmlsZeKAmSkKY29tbWFuZCB3aWxsIHVzZSB0aGUgc3RhbmRh cmQgY29uZmlndXJlZCBicm93c2VyIHRvIHZpZXcgdGhhdCBmaWxlLgoKICAgVGhlIGNvbW1hbmQg 4oCYKOKAmSAo4oCYZGlyZWQtaGlkZS1kZXRhaWxzLW1vZGXigJkpIHRvZ2dsZXMgd2hldGhlciBk ZXRhaWxzLApzdWNoIGFzIG93bmVyc2hpcCBvciBmaWxlIHBlcm1pc3Npb25zLCBhcmUgdmlzaWJs ZSBpbiB0aGUgY3VycmVudCBEaXJlZApidWZmZXIuICBCeSBkZWZhdWx0LCBpdCBhbHNvIGhpZGVz IHRoZSB0YXJnZXRzIG9mIHN5bWJvbGljIGxpbmtzLCBhbmQKYWxsIGxpbmVzIG90aGVyIHRoYW4g dGhlIGhlYWRlciBsaW5lIGFuZCBmaWxlL2RpcmVjdG9yeSBsaXN0aW5ncy4gIFRvCmNoYW5nZSB0 aGlzLCBjdXN0b21pemUgdGhlIG9wdGlvbnMK4oCYZGlyZWQtaGlkZS1kZXRhaWxzLWhpZGUtc3lt bGluay10YXJnZXRz4oCZIGFuZArigJhkaXJlZC1oaWRlLWRldGFpbHMtaGlkZS1pbmZvcm1hdGlv bi1saW5lc+KAmSwgcmVzcGVjdGl2ZWx5LgoKICAgSWYgdGhlIGRpcmVjdG9yeSB5b3UgYXJlIHZp c2l0aW5nIGlzIHVuZGVyIHZlcnNpb24gY29udHJvbCAoKm5vdGUKVmVyc2lvbiBDb250cm9sOjop LCB0aGVuIHRoZSBub3JtYWwgVkMgZGlmZiBhbmQgbG9nIGNvbW1hbmRzIHdpbGwKb3BlcmF0ZSBv biB0aGUgc2VsZWN0ZWQgZmlsZXMuCgogICBUaGUgY29tbWFuZCDigJhNLXggZGlyZWQtY29tcGFy ZS1kaXJlY3Rvcmllc+KAmSBpcyB1c2VkIHRvIGNvbXBhcmUgdGhlCmN1cnJlbnQgRGlyZWQgYnVm ZmVyIHdpdGggYW5vdGhlciBkaXJlY3RvcnkuICBJdCBtYXJrcyBhbGwgdGhlIGZpbGVzCnRoYXQg ZGlmZmVyIGJldHdlZW4gdGhlIHR3byBkaXJlY3Rvcmllcy4gIEl0IHB1dHMgdGhlc2UgbWFya3Mg aW4gYWxsCkRpcmVkIGJ1ZmZlcnMgd2hlcmUgdGhlc2UgZmlsZXMgYXJlIGxpc3RlZCwgd2hpY2gg b2YgY291cnNlIGluY2x1ZGVzIHRoZQpjdXJyZW50IGJ1ZmZlci4KCiAgIFRoZSBkZWZhdWx0IGNv bXBhcmlzb24gbWV0aG9kICh1c2VkIGlmIHlvdSB0eXBlIDxSRVQ+IGF0IHRoZSBwcm9tcHQpCmlz IHRvIGNvbXBhcmUganVzdCB0aGUgZmlsZSBuYW1lc+KAlGZpbGUgbmFtZXMgZGlmZmVyIGlmIHRo ZXkgZG8gbm90CmFwcGVhciBpbiB0aGUgb3RoZXIgZGlyZWN0b3J5LiAgWW91IGNhbiBzcGVjaWZ5 IG1vcmUgc3RyaW5nZW50CmNvbXBhcmlzb25zIGJ5IGVudGVyaW5nIGEgTGlzcCBleHByZXNzaW9u LCB3aGljaCBjYW4gcmVmZXIgdG8gdGhlCnZhcmlhYmxlcyDigJhzaXplMeKAmSBhbmQg4oCYc2l6 ZTLigJksIHRoZSByZXNwZWN0aXZlIGZpbGUgc2l6ZXM7IOKAmG10aW1lMeKAmSBhbmQK4oCYbXRp bWUy4oCZLCB0aGUgbGFzdCBtb2RpZmljYXRpb24gdGltZXMgaW4gc2Vjb25kcywgYXMgZmxvYXRp bmcgcG9pbnQKbnVtYmVyczsgYW5kIOKAmGZhMeKAmSBhbmQg4oCYZmEy4oCZLCB0aGUgcmVzcGVj dGl2ZSBmaWxlIGF0dHJpYnV0ZSBsaXN0cyAoYXMKcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIOKA mGZpbGUtYXR0cmlidXRlc+KAmSkuICBUaGlzIGV4cHJlc3Npb24gaXMKZXZhbHVhdGVkIGZvciBl YWNoIHBhaXIgb2YgbGlrZS1uYW1lZCBmaWxlcywgYW5kIGZpbGVzIGRpZmZlciBpZiB0aGUKZXhw cmVzc2lvbuKAmXMgdmFsdWUgaXMgbm9uLeKAmG5pbOKAmS4KCiAgIEZvciBpbnN0YW5jZSwgdGhl IHNlcXVlbmNlIOKAmE0teCBkaXJlZC1jb21wYXJlLWRpcmVjdG9yaWVzIDxSRVQ+ICg+Cm10aW1l MSBtdGltZTIpIDxSRVQ+4oCZIG1hcmtzIGZpbGVzIG5ld2VyIGluIHRoaXMgZGlyZWN0b3J5IHRo YW4gaW4gdGhlCm90aGVyLCBhbmQgbWFya3MgZmlsZXMgb2xkZXIgaW4gdGhlIG90aGVyIGRpcmVj dG9yeSB0aGFuIGluIHRoaXMgb25lLgpJdCBhbHNvIG1hcmtzIGZpbGVzIHdpdGggbm8gY291bnRl cnBhcnQsIGluIGJvdGggZGlyZWN0b3JpZXMsIGFzIGFsd2F5cy4KCiAgIE9uIHRoZSBYIFdpbmRv dyBTeXN0ZW0sIEVtYWNzIHN1cHBvcnRzIHRoZSBkcmFnIGFuZCBkcm9wIHByb3RvY29sLgpZb3Ug Y2FuIGRyYWcgYSBmaWxlIG9iamVjdCBmcm9tIGFub3RoZXIgcHJvZ3JhbSwgYW5kIGRyb3AgaXQg b250byBhCkRpcmVkIGJ1ZmZlcjsgdGhpcyBlaXRoZXIgbW92ZXMsIGNvcGllcywgb3IgY3JlYXRl cyBhIGxpbmsgdG8gdGhlIGZpbGUKaW4gdGhhdCBkaXJlY3RvcnkuICBQcmVjaXNlbHkgd2hpY2gg YWN0aW9uIGlzIHRha2VuIGlzIGRldGVybWluZWQgYnkgdGhlCm9yaWdpbmF0aW5nIHByb2dyYW0u ICBEcmFnZ2luZyBmaWxlcyBvdXQgb2YgYSBEaXJlZCBidWZmZXIgaXMgY3VycmVudGx5Cm5vdCBz dXBwb3J0ZWQuCgoKKiAzMSBUaGUgQ2FsZW5kYXIgYW5kIHRoZSBEaWFyeQoKRW1hY3MgcHJvdmlk ZXMgdGhlIGZ1bmN0aW9ucyBvZiBhIGRlc2sgY2FsZW5kYXIsIHdpdGggYSBkaWFyeSBvZiBwbGFu bmVkCm9yIHBhc3QgZXZlbnRzLiAgSXQgYWxzbyBoYXMgZmFjaWxpdGllcyBmb3IgbWFuYWdpbmcg eW91ciBhcHBvaW50bWVudHMsCmFuZCBrZWVwaW5nIHRyYWNrIG9mIGhvdyBtdWNoIHRpbWUgeW91 IHNwZW5kIHdvcmtpbmcgb24gY2VydGFpbgpwcm9qZWN0cy4KCiAgIFRvIGVudGVyIHRoZSBjYWxl bmRhciwgdHlwZSDigJhNLXggY2FsZW5kYXLigJkuICBUaGlzIGRpc3BsYXlzIGEKdGhyZWUtbW9u dGggY2FsZW5kYXIgY2VudGVyZWQgb24gdGhlIGN1cnJlbnQgbW9udGgsIHdpdGggcG9pbnQgb24g dGhlCmN1cnJlbnQgZGF0ZS4gIFdpdGggYSBudW1lcmljIGFyZ3VtZW50LCBhcyBpbiDigJhDLXUg TS14IGNhbGVuZGFy4oCZLCBpdApwcm9tcHRzIHlvdSBmb3IgdGhlIG1vbnRoIGFuZCB5ZWFyIHRv IGJlIHRoZSBjZW50ZXIgb2YgdGhlIHRocmVlLW1vbnRoCmNhbGVuZGFyLiAgVGhlIGNhbGVuZGFy IHVzZXMgaXRzIG93biBidWZmZXIsIHdob3NlIG1ham9yIG1vZGUgaXMKQ2FsZW5kYXIgbW9kZS4K CiAgIOKAmG1vdXNlLTPigJkgaW4gdGhlIGNhbGVuZGFyIGJyaW5ncyB1cCBhIG1lbnUgb2Ygb3Bl cmF0aW9ucyBvbiBhCnBhcnRpY3VsYXIgZGF0ZTsg4oCYbW91c2UtMuKAmSBicmluZ3MgdXAgYSBt ZW51IG9mIGNvbW1vbmx5IHVzZWQgY2FsZW5kYXIKZmVhdHVyZXMgdGhhdCBhcmUgaW5kZXBlbmRl bnQgb2YgYW55IHBhcnRpY3VsYXIgZGF0ZS4gIFRvIGV4aXQgdGhlCmNhbGVuZGFyLCB0eXBlIOKA mHHigJkuCgorIE1lbnU6CgogIC0gQ2FsZW5kYXIgTW90aW9uOjogICAgIE1vdmluZyB0aHJvdWdo IHRoZSBjYWxlbmRhcjsgc2VsZWN0aW5nIGEgZGF0ZS4KICAtIFNjcm9sbCBDYWxlbmRhcjo6ICAg ICBCcmluZ2luZyBlYXJsaWVyIG9yIGxhdGVyIG1vbnRocyBvbnRvIHRoZSBzY3JlZW4uCiAgLSBD b3VudGluZyBEYXlzOjogICAgICAgSG93IG1hbnkgZGF5cyBhcmUgdGhlcmUgYmV0d2VlbiB0d28g ZGF0ZXM/CiAgLSBHZW5lcmFsIENhbGVuZGFyOjogICAgRXhpdGluZyBvciByZWNvbXB1dGluZyB0 aGUgY2FsZW5kYXIuCiAgLSBXcml0aW5nIENhbGVuZGFyIEZpbGVzOjogV3JpdGluZyBjYWxlbmRh cnMgdG8gZmlsZXMgb2YgdmFyaW91cyBmb3JtYXRzLgogIC0gSG9saWRheXM6OiAgICAgICAgICAg IERpc3BsYXlpbmcgZGF0ZXMgb2YgaG9saWRheXMuCiAgLSBTdW5yaXNlL1N1bnNldDo6ICAgICAg RGlzcGxheWluZyBsb2NhbCB0aW1lcyBvZiBzdW5yaXNlIGFuZCBzdW5zZXQuCiAgLSBMdW5hciBQ aGFzZXM6OiAgICAgICAgRGlzcGxheWluZyBwaGFzZXMgb2YgdGhlIG1vb24uCiAgLSBPdGhlciBD YWxlbmRhcnM6OiAgICAgQ29udmVydGluZyBkYXRlcyB0byBvdGhlciBjYWxlbmRhciBzeXN0ZW1z LgogIC0gRGlhcnk6OiAgICAgICAgICAgICAgIERpc3BsYXlpbmcgZXZlbnRzIGZyb20geW91ciBk aWFyeS4KICAtIERheWxpZ2h0IFNhdmluZzo6ICAgICBIb3cgdG8gc3BlY2lmeSB3aGVuIGRheWxp Z2h0IHNhdmluZyB0aW1lIGlzIGFjdGl2ZS4KICAtIFRpbWUgSW50ZXJ2YWxzOjogICAgICBLZWVw aW5nIHRyYWNrIG9mIHRpbWUgaW50ZXJ2YWxzLgogIC0gQWR2YW5jZWQgQ2FsZW5kYXIvRGlhcnkg VXNhZ2U6OiBBZHZhbmNlZCBDYWxlbmRhci9EaWFyeSBjdXN0b21pemF0aW9uLgoKCioqIDMxLjEg TW92ZW1lbnQgaW4gdGhlIENhbGVuZGFyCgpDYWxlbmRhciBtb2RlIHByb3ZpZGVzIGNvbW1hbmRz IHRvIG1vdmUgdGhyb3VnaCB0aGUgY2FsZW5kYXIgaW4gbG9naWNhbAp1bml0cyBvZiB0aW1lIHN1 Y2ggYXMgZGF5cywgd2Vla3MsIG1vbnRocywgYW5kIHllYXJzLiAgSWYgeW91IG1vdmUKb3V0c2lk ZSB0aGUgdGhyZWUgbW9udGhzIG9yaWdpbmFsbHkgZGlzcGxheWVkLCB0aGUgY2FsZW5kYXIgZGlz cGxheQpzY3JvbGxzIGF1dG9tYXRpY2FsbHkgdGhyb3VnaCB0aW1lIHRvIG1ha2UgdGhlIHNlbGVj dGVkIGRhdGUgdmlzaWJsZS4KTW92aW5nIHRvIGEgZGF0ZSBsZXRzIHlvdSB2aWV3IGl0cyBob2xp ZGF5cyBvciBkaWFyeSBlbnRyaWVzLCBvciBjb252ZXJ0Cml0IHRvIG90aGVyIGNhbGVuZGFyczsg bW92aW5nIGJ5IGxvbmcgdGltZSBwZXJpb2RzIGlzIGFsc28gdXNlZnVsIHNpbXBseQp0byBzY3Jv bGwgdGhlIGNhbGVuZGFyLgoKKyBNZW51OgoKICAtIENhbGVuZGFyIFVuaXQgTW90aW9uOjogICAg ICBNb3ZpbmcgYnkgZGF5cywgd2Vla3MsIG1vbnRocywgYW5kIHllYXJzLgogIC0gTW92ZSB0byBC ZWdpbm5pbmcgb3IgRW5kOjogIE1vdmluZyB0byBzdGFydC9lbmQgb2Ygd2Vla3MsIG1vbnRocywg YW5kIHllYXJzLgogIC0gU3BlY2lmaWVkIERhdGVzOjogICAgICAgICAgIE1vdmluZyB0byB0aGUg Y3VycmVudCBkYXRlIG9yIGFub3RoZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz cGVjaWZpYyBkYXRlLgoKCioqKiAzMS4xLjEgTW90aW9uIGJ5IFN0YW5kYXJkIExlbmd0aHMgb2Yg VGltZQoKVGhlIGNvbW1hbmRzIGZvciBtb3ZlbWVudCBpbiB0aGUgY2FsZW5kYXIgYnVmZmVyIHBh cmFsbGVsIHRoZSBjb21tYW5kcwpmb3IgbW92ZW1lbnQgaW4gdGV4dC4gIFlvdSBjYW4gbW92ZSBm b3J3YXJkIGFuZCBiYWNrd2FyZCBieSBkYXlzLCB3ZWVrcywKbW9udGhzLCBhbmQgeWVhcnMuCgri gJhDLWbigJkKICAgICBNb3ZlIHBvaW50IG9uZSBkYXkgZm9yd2FyZCAo4oCYY2FsZW5kYXItZm9y d2FyZC1kYXnigJkpLgrigJhDLWLigJkKICAgICBNb3ZlIHBvaW50IG9uZSBkYXkgYmFja3dhcmQg KOKAmGNhbGVuZGFyLWJhY2t3YXJkLWRheeKAmSkuCuKAmEMtbuKAmQogICAgIE1vdmUgcG9pbnQg b25lIHdlZWsgZm9yd2FyZCAo4oCYY2FsZW5kYXItZm9yd2FyZC13ZWVr4oCZKS4K4oCYQy1w4oCZ CiAgICAgTW92ZSBwb2ludCBvbmUgd2VlayBiYWNrd2FyZCAo4oCYY2FsZW5kYXItYmFja3dhcmQt d2Vla+KAmSkuCuKAmE0tfeKAmQogICAgIE1vdmUgcG9pbnQgb25lIG1vbnRoIGZvcndhcmQgKOKA mGNhbGVuZGFyLWZvcndhcmQtbW9udGjigJkpLgrigJhNLXvigJkKICAgICBNb3ZlIHBvaW50IG9u ZSBtb250aCBiYWNrd2FyZCAo4oCYY2FsZW5kYXItYmFja3dhcmQtbW9udGjigJkpLgrigJhDLXgg XeKAmQogICAgIE1vdmUgcG9pbnQgb25lIHllYXIgZm9yd2FyZCAo4oCYY2FsZW5kYXItZm9yd2Fy ZC15ZWFy4oCZKS4K4oCYQy14IFvigJkKICAgICBNb3ZlIHBvaW50IG9uZSB5ZWFyIGJhY2t3YXJk ICjigJhjYWxlbmRhci1iYWNrd2FyZC15ZWFy4oCZKS4KCiAgIFRoZSBkYXkgYW5kIHdlZWsgY29t bWFuZHMgYXJlIG5hdHVyYWwgYW5hbG9ndWVzIG9mIHRoZSB1c3VhbCBFbWFjcwpjb21tYW5kcyBm b3IgbW92aW5nIGJ5IGNoYXJhY3RlcnMgYW5kIGJ5IGxpbmVzLiAgSnVzdCBhcyDigJhDLW7igJkg dXN1YWxseQptb3ZlcyB0byB0aGUgc2FtZSBjb2x1bW4gaW4gdGhlIGZvbGxvd2luZyBsaW5lLCBp biBDYWxlbmRhciBtb2RlIGl0Cm1vdmVzIHRvIHRoZSBzYW1lIGRheSBpbiB0aGUgZm9sbG93aW5n IHdlZWsuICBBbmQg4oCYQy1w4oCZIG1vdmVzIHRvIHRoZQpzYW1lIGRheSBpbiB0aGUgcHJldmlv dXMgd2Vlay4KCiAgIFRoZSBhcnJvdyBrZXlzIGFyZSBlcXVpdmFsZW50IHRvIOKAmEMtZuKAmSwg 4oCYQy1i4oCZLCDigJhDLW7igJkgYW5kIOKAmEMtcOKAmSwganVzdAphcyB0aGV5IG5vcm1hbGx5 IGFyZSBpbiBvdGhlciBtb2Rlcy4KCiAgIFRoZSBjb21tYW5kcyBmb3IgbW90aW9uIGJ5IG1vbnRo cyBhbmQgeWVhcnMgd29yayBsaWtlIHRob3NlIGZvcgp3ZWVrcywgYnV0IG1vdmUgYSBsYXJnZXIg ZGlzdGFuY2UuICBUaGUgbW9udGggY29tbWFuZHMg4oCYTS194oCZIGFuZCDigJhNLXvigJkKbW92 ZSBmb3J3YXJkIG9yIGJhY2t3YXJkIGJ5IGFuIGVudGlyZSBtb250aC4gIFRoZSB5ZWFyIGNvbW1h bmRzIOKAmEMteCBd4oCZCmFuZCDigJhDLXggW+KAmSBtb3ZlIGZvcndhcmQgb3IgYmFja3dhcmQg YSB3aG9sZSB5ZWFyLgoKICAgVGhlIGVhc2llc3Qgd2F5IHRvIHJlbWVtYmVyIHRoZXNlIGNvbW1h bmRzIGlzIHRvIGNvbnNpZGVyIG1vbnRocyBhbmQKeWVhcnMgYW5hbG9nb3VzIHRvIHBhcmFncmFw aHMgYW5kIHBhZ2VzIG9mIHRleHQsIHJlc3BlY3RpdmVseS4gIEJ1dCB0aGUKY2FsZW5kYXIgbW92 ZW1lbnQgY29tbWFuZHMgdGhlbXNlbHZlcyBkbyBub3QgcXVpdGUgcGFyYWxsZWwgdGhvc2UgZm9y Cm1vdmVtZW50IHRocm91Z2ggdGV4dDogdGhlIG9yZGluYXJ5IEVtYWNzIHBhcmFncmFwaCBjb21t YW5kcyBtb3ZlIHRvIHRoZQpiZWdpbm5pbmcgb3IgZW5kIG9mIGEgcGFyYWdyYXBoLCB3aGVyZWFz IHRoZXNlIG1vbnRoIGFuZCB5ZWFyIGNvbW1hbmRzCm1vdmUgYnkgYW4gZW50aXJlIG1vbnRoIG9y IGFuIGVudGlyZSB5ZWFyLCBrZWVwaW5nIHRoZSBzYW1lIGRhdGUgd2l0aGluCnRoZSBtb250aCBv ciB5ZWFyLgoKICAgQWxsIHRoZXNlIGNvbW1hbmRzIGFjY2VwdCBhIG51bWVyaWMgYXJndW1lbnQg YXMgYSByZXBlYXQgY291bnQuICBGb3IKY29udmVuaWVuY2UsIHRoZSBkaWdpdCBrZXlzIGFuZCB0 aGUgbWludXMgc2lnbiBzcGVjaWZ5IG51bWVyaWMgYXJndW1lbnRzCmluIENhbGVuZGFyIG1vZGUg ZXZlbiB3aXRob3V0IHRoZSBNZXRhIG1vZGlmaWVyLiAgRm9yIGV4YW1wbGUsIOKAmDEwMCBDLWbi gJkKbW92ZXMgcG9pbnQgMTAwIGRheXMgZm9yd2FyZCBmcm9tIGl0cyBwcmVzZW50IGxvY2F0aW9u LgoKCioqKiAzMS4xLjIgQmVnaW5uaW5nIG9yIEVuZCBvZiBXZWVrLCBNb250aCBvciBZZWFyCgpB IHdlZWsgKG9yIG1vbnRoLCBvciB5ZWFyKSBpcyBub3QganVzdCBhIHF1YW50aXR5IG9mIGRheXM7 IHdlIHRoaW5rIG9mCndlZWtzIChtb250aHMsIHllYXJzKSBhcyBzdGFydGluZyBvbiBwYXJ0aWN1 bGFyIGRhdGVzLiAgU28gQ2FsZW5kYXIgbW9kZQpwcm92aWRlcyBjb21tYW5kcyB0byBtb3ZlIHRv IHRoZSBzdGFydCBvciBlbmQgb2YgYSB3ZWVrLCBtb250aCBvciB5ZWFyOgoK4oCYQy1h4oCZCiAg ICAgTW92ZSBwb2ludCB0byBzdGFydCBvZiB3ZWVrICjigJhjYWxlbmRhci1iZWdpbm5pbmctb2Yt d2Vla+KAmSkuCuKAmEMtZeKAmQogICAgIE1vdmUgcG9pbnQgdG8gZW5kIG9mIHdlZWsgKOKAmGNh bGVuZGFyLWVuZC1vZi13ZWVr4oCZKS4K4oCYTS1h4oCZCiAgICAgTW92ZSBwb2ludCB0byBzdGFy dCBvZiBtb250aCAo4oCYY2FsZW5kYXItYmVnaW5uaW5nLW9mLW1vbnRo4oCZKS4K4oCYTS1l4oCZ CiAgICAgTW92ZSBwb2ludCB0byBlbmQgb2YgbW9udGggKOKAmGNhbGVuZGFyLWVuZC1vZi1tb250 aOKAmSkuCuKAmE0tPOKAmQogICAgIE1vdmUgcG9pbnQgdG8gc3RhcnQgb2YgeWVhciAo4oCYY2Fs ZW5kYXItYmVnaW5uaW5nLW9mLXllYXLigJkpLgrigJhNLT7igJkKICAgICBNb3ZlIHBvaW50IHRv IGVuZCBvZiB5ZWFyICjigJhjYWxlbmRhci1lbmQtb2YteWVhcuKAmSkuCgogICBUaGVzZSBjb21t YW5kcyBhbHNvIHRha2UgbnVtZXJpYyBhcmd1bWVudHMgYXMgcmVwZWF0IGNvdW50cywgd2l0aCB0 aGUKcmVwZWF0IGNvdW50IGluZGljYXRpbmcgaG93IG1hbnkgd2Vla3MsIG1vbnRocywgb3IgeWVh cnMgdG8gbW92ZQpiYWNrd2FyZCBvciBmb3J3YXJkLgoKICAgQnkgZGVmYXVsdCwgd2Vla3MgYmVn aW4gb24gU3VuZGF5LiAgVG8gbWFrZSB0aGVtIGJlZ2luIG9uIE1vbmRheQppbnN0ZWFkLCBzZXQg dGhlIHZhcmlhYmxlIOKAmGNhbGVuZGFyLXdlZWstc3RhcnQtZGF54oCZIHRvIDEuICBUbyBjaGFu Z2UKd2hpY2ggZGF5IGhlYWRlcnMgYXJlIGhpZ2hsaWdodGVkIGFzIHdlZWtlbmQgZGF5cywgc2V0 IHRoZSB2YXJpYWJsZQrigJhjYWxlbmRhci13ZWVrZW5kLWRheXPigJkuCgoKKioqIDMxLjEuMyBT cGVjaWZpZWQgRGF0ZXMKCkNhbGVuZGFyIG1vZGUgcHJvdmlkZXMgY29tbWFuZHMgZm9yIG1vdmlu ZyB0byBhIHBhcnRpY3VsYXIgZGF0ZQpzcGVjaWZpZWQgaW4gdmFyaW91cyB3YXlzLgoK4oCYZyBk 4oCZCiAgICAgTW92ZSBwb2ludCB0byBzcGVjaWZpZWQgZGF0ZSAo4oCYY2FsZW5kYXItZ290by1k YXRl4oCZKS4K4oCYZyBE4oCZCiAgICAgTW92ZSBwb2ludCB0byBzcGVjaWZpZWQgZGF5IG9mIHll YXIgKOKAmGNhbGVuZGFyLWdvdG8tZGF5LW9mLXllYXLigJkpLgrigJhnIHfigJkKICAgICBNb3Zl IHBvaW50IHRvIHNwZWNpZmllZCB3ZWVrIG9mIHllYXIgKOKAmGNhbGVuZGFyLWlzby1nb3RvLXdl ZWvigJkpLgrigJhv4oCZCiAgICAgQ2VudGVyIGNhbGVuZGFyIGFyb3VuZCBzcGVjaWZpZWQgbW9u dGggKOKAmGNhbGVuZGFyLW90aGVyLW1vbnRo4oCZKS4K4oCYLuKAmQogICAgIE1vdmUgcG9pbnQg dG8gdG9kYXnigJlzIGRhdGUgKOKAmGNhbGVuZGFyLWdvdG8tdG9kYXnigJkpLgoKICAg4oCYZyBk 4oCZICjigJhjYWxlbmRhci1nb3RvLWRhdGXigJkpIHByb21wdHMgZm9yIGEgeWVhciwgYSBtb250 aCwgYW5kIGEgZGF5Cm9mIHRoZSBtb250aCwgYW5kIHRoZW4gbW92ZXMgdG8gdGhhdCBkYXRlLiAg QmVjYXVzZSB0aGUgY2FsZW5kYXIKaW5jbHVkZXMgYWxsIGRhdGVzIGZyb20gdGhlIGJlZ2lubmlu ZyBvZiB0aGUgY3VycmVudCBlcmEsIHlvdSBtdXN0IHR5cGUKdGhlIHllYXIgaW4gaXRzIGVudGly ZXR5OyB0aGF0IGlzLCB0eXBlIOKAmDIwMTDigJksIG5vdCDigJgxMOKAmS4KCiAgIOKAmGcgROKA mSAo4oCYY2FsZW5kYXItZ290by1kYXktb2YteWVhcuKAmSkgcHJvbXB0cyBmb3IgYSB5ZWFyIGFu ZCBkYXkKbnVtYmVyLCBhbmQgbW92ZXMgdG8gdGhhdCBkYXRlLiAgTmVnYXRpdmUgZGF5IG51bWJl cnMgY291bnQgYmFja3dhcmQKZnJvbSB0aGUgZW5kIG9mIHRoZSB5ZWFyLiAg4oCYZyB34oCZICji gJhjYWxlbmRhci1pc28tZ290by13ZWVr4oCZKSBwcm9tcHRzIGZvcgphIHllYXIgYW5kIHdlZWsg bnVtYmVyLCBhbmQgbW92ZXMgdG8gdGhhdCB3ZWVrLgoKICAg4oCYb+KAmSAo4oCYY2FsZW5kYXIt b3RoZXItbW9udGjigJkpIHByb21wdHMgZm9yIGEgbW9udGggYW5kIHllYXIsIHRoZW4KY2VudGVy cyB0aGUgdGhyZWUtbW9udGggY2FsZW5kYXIgYXJvdW5kIHRoYXQgbW9udGguCgogICBZb3UgY2Fu IHJldHVybiB0byB0b2RheeKAmXMgZGF0ZSB3aXRoIOKAmC7igJkgKOKAmGNhbGVuZGFyLWdvdG8t dG9kYXnigJkpLgoKCioqIDMxLjIgU2Nyb2xsaW5nIGluIHRoZSBDYWxlbmRhcgoKVGhlIGNhbGVu ZGFyIGRpc3BsYXkgc2Nyb2xscyBhdXRvbWF0aWNhbGx5IHRocm91Z2ggdGltZSB3aGVuIHlvdSBt b3ZlCm91dCBvZiB0aGUgdmlzaWJsZSBwb3J0aW9uLiAgWW91IGNhbiBhbHNvIHNjcm9sbCBpdCBt YW51YWxseS4gIEltYWdpbmUKdGhhdCB0aGUgY2FsZW5kYXIgd2luZG93IGNvbnRhaW5zIGEgbG9u ZyBzdHJpcCBvZiBwYXBlciB3aXRoIHRoZSBtb250aHMKb24gaXQuICBTY3JvbGxpbmcgdGhlIGNh bGVuZGFyIG1lYW5zIG1vdmluZyB0aGUgc3RyaXAgaG9yaXpvbnRhbGx5LCBzbwp0aGF0IG5ldyBt b250aHMgYmVjb21lIHZpc2libGUgaW4gdGhlIHdpbmRvdy4KCuKAmD7igJkKICAgICBTY3JvbGwg Y2FsZW5kYXIgb25lIG1vbnRoIGZvcndhcmQgKOKAmGNhbGVuZGFyLXNjcm9sbC1sZWZ04oCZKS4K 4oCYPOKAmQogICAgIFNjcm9sbCBjYWxlbmRhciBvbmUgbW9udGggYmFja3dhcmQgKOKAmGNhbGVu ZGFyLXNjcm9sbC1yaWdodOKAmSkuCuKAmEMtduKAmQrigJg8UGFnZURvd24+4oCZCuKAmDxuZXh0 PuKAmQogICAgIFNjcm9sbCBmb3J3YXJkIGJ5IHRocmVlIG1vbnRocwogICAgICjigJhjYWxlbmRh ci1zY3JvbGwtbGVmdC10aHJlZS1tb250aHPigJkpLgrigJhNLXbigJkK4oCYPFBhZ2VVcD7igJkK 4oCYPHByaW9yPuKAmQogICAgIFNjcm9sbCBiYWNrd2FyZCBieSB0aHJlZSBtb250aHMKICAgICAo 4oCYY2FsZW5kYXItc2Nyb2xsLXJpZ2h0LXRocmVlLW1vbnRoc+KAmSkuCgogICBUaGUgbW9zdCBi YXNpYyBjYWxlbmRhciBzY3JvbGwgY29tbWFuZHMgc2Nyb2xsIGJ5IG9uZSBtb250aCBhdCBhCnRp bWUuICBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgYXJlIHR3byBtb250aHMgb2Ygb3ZlcmxhcCBiZXR3 ZWVuIHRoZQpkaXNwbGF5IGJlZm9yZSB0aGUgY29tbWFuZCBhbmQgdGhlIGRpc3BsYXkgYWZ0ZXIu ICDigJg+4oCZIHNjcm9sbHMgdGhlCmNhbGVuZGFyIGNvbnRlbnRzIG9uZSBtb250aCBmb3J3YXJk IGluIHRpbWUuICDigJg84oCZIHNjcm9sbHMgdGhlIGNvbnRlbnRzCm9uZSBtb250aCBiYWNrd2Fy ZHMgaW4gdGltZS4KCiAgIFRoZSBjb21tYW5kcyDigJhDLXbigJkgYW5kIOKAmE0tduKAmSBzY3Jv bGwgdGhlIGNhbGVuZGFyIGJ5IGFuIGVudGlyZQpzY3JlZW5mdWzigJR0aHJlZSBtb250aHPigJRp biBhbmFsb2d5IHdpdGggdGhlIHVzdWFsIG1lYW5pbmcgb2YgdGhlc2UKY29tbWFuZHMuICDigJhD LXbigJkgbWFrZXMgbGF0ZXIgZGF0ZXMgdmlzaWJsZSBhbmQg4oCYTS124oCZIG1ha2VzIGVhcmxp ZXIgZGF0ZXMKdmlzaWJsZS4gIFRoZXNlIGNvbW1hbmRzIHRha2UgYSBudW1lcmljIGFyZ3VtZW50 IGFzIGEgcmVwZWF0IGNvdW50OyBpbgpwYXJ0aWN1bGFyLCBzaW5jZSDigJhDLXXigJkgbXVsdGlw bGllcyB0aGUgbmV4dCBjb21tYW5kIGJ5IGZvdXIsIHR5cGluZyDigJhDLXUKQy124oCZIHNjcm9s bHMgdGhlIGNhbGVuZGFyIGZvcndhcmQgYnkgYSB5ZWFyIGFuZCB0eXBpbmcg4oCYQy11IE0tduKA mSBzY3JvbGxzCnRoZSBjYWxlbmRhciBiYWNrd2FyZCBieSBhIHllYXIuCgogICBUaGUgZnVuY3Rp b24ga2V5cyA8UGFnZURvd24+IChvciA8bmV4dD4pIGFuZCA8UGFnZVVwPiAob3IgPHByaW9yPikK YXJlIGVxdWl2YWxlbnQgdG8g4oCYQy124oCZIGFuZCDigJhNLXbigJksIGp1c3QgYXMgdGhleSBh cmUgaW4gb3RoZXIgbW9kZXMuCgoKKiogMzEuMyBDb3VudGluZyBEYXlzCgrigJhNLT3igJkKICAg ICBEaXNwbGF5IHRoZSBudW1iZXIgb2YgZGF5cyBpbiB0aGUgY3VycmVudCByZWdpb24KICAgICAo 4oCYY2FsZW5kYXItY291bnQtZGF5cy1yZWdpb27igJkpLgoKICAgVG8gZGV0ZXJtaW5lIHRoZSBu dW1iZXIgb2YgZGF5cyBpbiBhIHJhbmdlLCBzZXQgdGhlIG1hcmsgb24gb25lIGRhdGUKdXNpbmcg 4oCYQy08U1BDPuKAmSwgbW92ZSBwb2ludCB0byBhbm90aGVyIGRhdGUsIGFuZCB0eXBlIOKAmE0t PeKAmQoo4oCYY2FsZW5kYXItY291bnQtZGF5cy1yZWdpb27igJkpLiAgVGhlIG51bWJlcnMgb2Yg ZGF5cyBzaG93biBpcwpfaW5jbHVzaXZlXzsgdGhhdCBpcywgaXQgaW5jbHVkZXMgdGhlIGRheXMg c3BlY2lmaWVkIGJ5IG1hcmsgYW5kIHBvaW50LgoKCioqIDMxLjQgTWlzY2VsbGFuZW91cyBDYWxl bmRhciBDb21tYW5kcwoK4oCYcCBk4oCZCiAgICAgRGlzcGxheSBkYXktaW4teWVhciAo4oCYY2Fs ZW5kYXItcHJpbnQtZGF5LW9mLXllYXLigJkpLgrigJhDLWMgQy1s4oCZCiAgICAgUmVnZW5lcmF0 ZSB0aGUgY2FsZW5kYXIgd2luZG93ICjigJhjYWxlbmRhci1yZWRyYXfigJkpLgrigJg8U1BDPuKA mQogICAgIFNjcm9sbCB0aGUgbmV4dCB3aW5kb3cgdXAgKOKAmHNjcm9sbC1vdGhlci13aW5kb3fi gJkpLgrigJg8REVMPuKAmQrigJhTLTxTUEM+4oCZCiAgICAgU2Nyb2xsIHRoZSBuZXh0IHdpbmRv dyBkb3duICjigJhzY3JvbGwtb3RoZXItd2luZG93LWRvd27igJkpLgrigJhx4oCZCiAgICAgRXhp dCBmcm9tIGNhbGVuZGFyICjigJhjYWxlbmRhci1leGl04oCZKS4KCiAgIFRvIGRpc3BsYXkgdGhl IG51bWJlciBvZiBkYXlzIGVsYXBzZWQgc2luY2UgdGhlIHN0YXJ0IG9mIHRoZSB5ZWFyLCBvcgp0 aGUgbnVtYmVyIG9mIGRheXMgcmVtYWluaW5nIGluIHRoZSB5ZWFyLCB0eXBlIHRoZSDigJhwIGTi gJkgY29tbWFuZAoo4oCYY2FsZW5kYXItcHJpbnQtZGF5LW9mLXllYXLigJkpLiAgVGhpcyBkaXNw bGF5cyBib3RoIG9mIHRob3NlIG51bWJlcnMgaW4KdGhlIGVjaG8gYXJlYS4gIFRoZSBjb3VudCBv ZiBkYXlzIGVsYXBzZWQgaW5jbHVkZXMgdGhlIHNlbGVjdGVkIGRhdGUuClRoZSBjb3VudCBvZiBk YXlzIHJlbWFpbmluZyBkb2VzIG5vdCBpbmNsdWRlIHRoYXQgZGF0ZS4KCiAgIElmIHRoZSBjYWxl bmRhciB3aW5kb3cgdGV4dCBnZXRzIGNvcnJ1cHRlZCwgdHlwZSDigJhDLWMgQy1s4oCZCijigJhj YWxlbmRhci1yZWRyYXfigJkpIHRvIHJlZHJhdyBpdC4gIChUaGlzIGNhbiBvbmx5IGhhcHBlbiBp ZiB5b3UgdXNlCm5vbi1DYWxlbmRhci1tb2RlIGVkaXRpbmcgY29tbWFuZHMuKQoKICAgSW4gQ2Fs ZW5kYXIgbW9kZSwgeW91IGNhbiB1c2UgPFNQQz4gKOKAmHNjcm9sbC1vdGhlci13aW5kb3figJkp IGFuZCA8REVMPgoo4oCYc2Nyb2xsLW90aGVyLXdpbmRvdy1kb3du4oCZKSB0byBzY3JvbGwgdGhl IG90aGVyIHdpbmRvdyAoaWYgdGhlcmUgaXMKb25lKSB1cCBvciBkb3duLCByZXNwZWN0aXZlbHku ICBUaGlzIGlzIGhhbmR5IHdoZW4geW91IGRpc3BsYXkgYSBsaXN0IG9mCmhvbGlkYXlzIG9yIGRp YXJ5IGVudHJpZXMgaW4gYW5vdGhlciB3aW5kb3cuCgogICBUbyBleGl0IGZyb20gdGhlIGNhbGVu ZGFyLCB0eXBlIOKAmHHigJkgKOKAmGNhbGVuZGFyLWV4aXTigJkpLiAgVGhpcyBidXJpZXMKYWxs IGJ1ZmZlcnMgcmVsYXRlZCB0byB0aGUgY2FsZW5kYXIsIHNlbGVjdGluZyBvdGhlciBidWZmZXJz LiAgKElmIGEKZnJhbWUgY29udGFpbnMgYSBkZWRpY2F0ZWQgY2FsZW5kYXIgd2luZG93LCBleGl0 aW5nIGZyb20gdGhlIGNhbGVuZGFyCmRlbGV0ZXMgb3IgaWNvbmlmaWVzIHRoYXQgZnJhbWUgZGVw ZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZgrigJhjYWxlbmRhci1yZW1vdmUtZnJhbWUtYnktZGVsZXRp bmfigJkuKQoKCioqIDMxLjUgV3JpdGluZyBDYWxlbmRhciBGaWxlcwoKWW91IGNhbiB3cml0ZSBj YWxlbmRhcnMgYW5kIGRpYXJ5IGVudHJpZXMgdG8gSFRNTCBhbmQgTGFUZVggZmlsZXMuCgogICBU aGUgQ2FsZW5kYXIgSFRNTCBjb21tYW5kcyBwcm9kdWNlIGZpbGVzIG9mIEhUTUwgY29kZSB0aGF0 IGNvbnRhaW4KY2FsZW5kYXIsIGhvbGlkYXksIGFuZCBkaWFyeSBlbnRyaWVzLiAgRWFjaCBmaWxl IGFwcGxpZXMgdG8gb25lIG1vbnRoLAphbmQgaGFzIGEgbmFtZSBvZiB0aGUgZm9ybWF0IOKAmFlZ WVktTU0uaHRtbOKAmSwgd2hlcmUgWVlZWSBhbmQgTU0gYXJlIHRoZQpmb3VyLWRpZ2l0IHllYXIg YW5kIHR3by1kaWdpdCBtb250aCwgcmVzcGVjdGl2ZWx5LiAgVGhlIHZhcmlhYmxlCuKAmGNhbC1o dG1sLWRpcmVjdG9yeeKAmSBzcGVjaWZpZXMgdGhlIGRlZmF1bHQgb3V0cHV0IGRpcmVjdG9yeSBm b3IgdGhlIEhUTUwKZmlsZXMuICBUbyBwcmV2ZW50IGhvbGlkYXlzIGZyb20gYmVpbmcgc2hvd24s IGN1c3RvbWl6ZQrigJhjYWwtaHRtbC1ob2xpZGF5c+KAmS4KCiAgIERpYXJ5IGVudHJpZXMgZW5j bG9zZWQgYnkg4oCYPOKAmSBhbmQg4oCYPuKAmSBhcmUgaW50ZXJwcmV0ZWQgYXMgSFRNTCB0YWdz Cihmb3IgZXhhbXBsZTogdGhpcyBpcyBhIGRpYXJ5IGVudHJ5IHdpdGggPGZvbnQgY29sb3I94oCd cmVk4oCdPnNvbWUgcmVkCnRleHQ8L2ZvbnQ+KS4gIFlvdSBjYW4gY2hhbmdlIHRoZSBvdmVyYWxs IGFwcGVhcmFuY2Ugb2YgdGhlIGRpc3BsYXllZApIVE1MIHBhZ2VzIChmb3IgZXhhbXBsZSwgdGhl IGNvbG9yIG9mIHZhcmlvdXMgcGFnZSBlbGVtZW50cywgaGVhZGVyCnN0eWxlcykgdmlhIGEgc3R5 bGVzaGVldCDigJhjYWwuY3Nz4oCZIGluIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgSFRN TApmaWxlcyAoc2VlIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg4oCYY2FsLWh0bWwtY3NzLWRl ZmF1bHTigJkgZm9yIHJlbGV2YW50CnN0eWxlIHNldHRpbmdzKS4KCuKAmEggbeKAmQogICAgIEdl bmVyYXRlIGEgb25lLW1vbnRoIGNhbGVuZGFyICjigJhjYWwtaHRtbC1jdXJzb3ItbW9udGjigJkp LgrigJhIIHnigJkKICAgICBHZW5lcmF0ZSBhIGNhbGVuZGFyIGZpbGUgZm9yIGVhY2ggbW9udGgg b2YgYSB5ZWFyLCBhcyB3ZWxsIGFzIGFuCiAgICAgaW5kZXggcGFnZSAo4oCYY2FsLWh0bWwtY3Vy c29yLXllYXLigJkpLiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kCiAgICAgd3JpdGVzIGZpbGVz IHRvIGEgWVlZWSBzdWJkaXJlY3RvcnnigJRpZiB0aGlzIGlzIGFsdGVyZWQgc29tZQogICAgIGh5 cGVybGlua3MgYmV0d2VlbiB5ZWFycyB3aWxsIG5vdCB3b3JrLgoKICAgSWYgdGhlIHZhcmlhYmxl IOKAmGNhbC1odG1sLXByaW50LWRheS1udW1iZXItZmxhZ+KAmSBpcyBub24t4oCYbmls4oCZLCB0 aGVuCnRoZSBtb250aGx5IGNhbGVuZGFycyBzaG93IHRoZSBkYXktb2YtdGhlLXllYXIgbnVtYmVy LiAgVGhlIHZhcmlhYmxlCuKAmGNhbC1odG1sLXllYXItaW5kZXgtY29sc+KAmSBzcGVjaWZpZXMg dGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSB5ZWFybHkKaW5kZXggcGFnZS4KCiAgIFRoZSBD YWxlbmRhciBMYVRlWCBjb21tYW5kcyBwcm9kdWNlIGEgYnVmZmVyIG9mIExhVGVYIGNvZGUgdGhh dApwcmludHMgYXMgYSBjYWxlbmRhci4gIERlcGVuZGluZyBvbiB0aGUgY29tbWFuZCB5b3UgdXNl LCB0aGUgcHJpbnRlZApjYWxlbmRhciBjb3ZlcnMgdGhlIGRheSwgd2VlaywgbW9udGggb3IgeWVh ciB0aGF0IHBvaW50IGlzIGluLgoK4oCYdCBt4oCZCiAgICAgR2VuZXJhdGUgYSBvbmUtbW9udGgg Y2FsZW5kYXIgKOKAmGNhbC10ZXgtY3Vyc29yLW1vbnRo4oCZKS4K4oCYdCBN4oCZCiAgICAgR2Vu ZXJhdGUgYSBzaWRld2F5cy1wcmludGluZyBvbmUtbW9udGggY2FsZW5kYXIKICAgICAo4oCYY2Fs LXRleC1jdXJzb3ItbW9udGgtbGFuZHNjYXBl4oCZKS4K4oCYdCBk4oCZCiAgICAgR2VuZXJhdGUg YSBvbmUtZGF5IGNhbGVuZGFyICjigJhjYWwtdGV4LWN1cnNvci1kYXnigJkpLgrigJh0IHcgMeKA mQogICAgIEdlbmVyYXRlIGEgb25lLXBhZ2UgY2FsZW5kYXIgZm9yIG9uZSB3ZWVrLCB3aXRoIGhv dXJzCiAgICAgKOKAmGNhbC10ZXgtY3Vyc29yLXdlZWvigJkpLgrigJh0IHcgMuKAmQogICAgIEdl bmVyYXRlIGEgdHdvLXBhZ2UgY2FsZW5kYXIgZm9yIG9uZSB3ZWVrLCB3aXRoIGhvdXJzCiAgICAg KOKAmGNhbC10ZXgtY3Vyc29yLXdlZWsy4oCZKS4K4oCYdCB3IDPigJkKICAgICBHZW5lcmF0ZSBh biBJU08tc3R5bGUgY2FsZW5kYXIgZm9yIG9uZSB3ZWVrLCB3aXRob3V0IGhvdXJzCiAgICAgKOKA mGNhbC10ZXgtY3Vyc29yLXdlZWstaXNv4oCZKS4K4oCYdCB3IDTigJkKICAgICBHZW5lcmF0ZSBh IGNhbGVuZGFyIGZvciBvbmUgTW9uZGF5LXN0YXJ0aW5nIHdlZWssIHdpdGggaG91cnMKICAgICAo 4oCYY2FsLXRleC1jdXJzb3Itd2Vlay1tb25kYXnigJkpLgrigJh0IHcgV+KAmQogICAgIEdlbmVy YXRlIGEgdHdvLXBhZ2UgY2FsZW5kYXIgZm9yIG9uZSB3ZWVrLCB3aXRob3V0IGhvdXJzCiAgICAg KOKAmGNhbC10ZXgtY3Vyc29yLXdlZWsyLXN1bW1hcnnigJkpLgrigJh0IGYgd+KAmQogICAgIEdl bmVyYXRlIGEgRmlsb2ZheC1zdHlsZSB0d28td2Vla3MtYXQtYS1nbGFuY2UgY2FsZW5kYXIKICAg ICAo4oCYY2FsLXRleC1jdXJzb3ItZmlsb2ZheC0yd2Vla+KAmSkuCuKAmHQgZiBX4oCZCiAgICAg R2VuZXJhdGUgYSBGaWxvZmF4LXN0eWxlIG9uZS13ZWVrLWF0LWEtZ2xhbmNlIGNhbGVuZGFyCiAg ICAgKOKAmGNhbC10ZXgtY3Vyc29yLWZpbG9mYXgtd2Vla+KAmSkuCuKAmHQgeeKAmQogICAgIEdl bmVyYXRlIGEgY2FsZW5kYXIgZm9yIG9uZSB5ZWFyICjigJhjYWwtdGV4LWN1cnNvci15ZWFy4oCZ KS4K4oCYdCBZ4oCZCiAgICAgR2VuZXJhdGUgYSBzaWRld2F5cy1wcmludGluZyBjYWxlbmRhciBm b3Igb25lIHllYXIKICAgICAo4oCYY2FsLXRleC1jdXJzb3IteWVhci1sYW5kc2NhcGXigJkpLgri gJh0IGYgeeKAmQogICAgIEdlbmVyYXRlIGEgRmlsb2ZheC1zdHlsZSBjYWxlbmRhciBmb3Igb25l IHllYXIKICAgICAo4oCYY2FsLXRleC1jdXJzb3ItZmlsb2ZheC15ZWFy4oCZKS4KCiAgIFNvbWUg b2YgdGhlc2UgY29tbWFuZHMgcHJpbnQgdGhlIGNhbGVuZGFyIHNpZGV3YXlzIChpbiBsYW5kc2Nh cGUKbW9kZSksIHNvIGl0IGNhbiBiZSB3aWRlciB0aGFuIGl0IGlzIGxvbmcuICBTb21lIG9mIHRo ZW0gdXNlIEZpbG9mYXgKcGFwZXIgc2l6ZSAoMy43NWluIHggNi43NWluKS4gIEFsbCBvZiB0aGVz ZSBjb21tYW5kcyBhY2NlcHQgYSBwcmVmaXgKYXJndW1lbnQsIHdoaWNoIHNwZWNpZmllcyBob3cg bWFueSBkYXlzLCB3ZWVrcywgbW9udGhzIG9yIHllYXJzIHRvIHByaW50CihzdGFydGluZyBhbHdh eXMgd2l0aCB0aGUgc2VsZWN0ZWQgb25lKS4KCiAgIElmIHRoZSB2YXJpYWJsZSDigJhjYWwtdGV4 LWhvbGlkYXlz4oCZIGlzIG5vbi3igJhuaWzigJkgKHRoZSBkZWZhdWx0KSwgdGhlbgp0aGUgcHJp bnRlZCBjYWxlbmRhcnMgc2hvdyB0aGUgaG9saWRheXMgaW4g4oCYY2FsZW5kYXItaG9saWRheXPi gJkuICBJZiB0aGUKdmFyaWFibGUg4oCYY2FsLXRleC1kaWFyeeKAmSBpcyBub24t4oCYbmls4oCZ ICh0aGUgZGVmYXVsdCBpcyDigJhuaWzigJkpLCBkaWFyeQplbnRyaWVzIGFyZSBpbmNsdWRlZCBh bHNvIChpbiBtb250aGx5LCBGaWxvZmF4LCBhbmQgaXNvLXdlZWsgY2FsZW5kYXJzCm9ubHkpLiAg SWYgdGhlIHZhcmlhYmxlIOKAmGNhbC10ZXgtcnVsZXPigJkgaXMgbm9uLeKAmG5pbOKAmSAodGhl IGRlZmF1bHQgaXMK4oCYbmls4oCZKSwgdGhlIGNhbGVuZGFyIGRpc3BsYXlzIHJ1bGVkIHBhZ2Vz IGluIHN0eWxlcyB0aGF0IGhhdmUgc3VmZmljaWVudApyb29tLiAgQ29uc3VsdCB0aGUgZG9jdW1l bnRhdGlvbiBvZiB0aGUgaW5kaXZpZHVhbCBjYWwtdGV4IGZ1bmN0aW9ucyB0bwpzZWUgd2hpY2gg Y2FsZW5kYXJzIHN1cHBvcnQgd2hpY2ggZmVhdHVyZXMuCgogICBZb3UgY2FuIHVzZSB0aGUgdmFy aWFibGUg4oCYY2FsLXRleC1wcmVhbWJsZS1leHRyYeKAmSB0byBpbnNlcnQgZXh0cmEKTGFUZVgg Y29tbWFuZHMgaW4gdGhlIHByZWFtYmxlIG9mIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnQgaWYgeW91 IG5lZWQgdG8uCgoKKiogMzEuNiBIb2xpZGF5cwoKVGhlIEVtYWNzIGNhbGVuZGFyIGtub3dzIGFi b3V0IG1hbnkgbWFqb3IgYW5kIG1pbm9yIGhvbGlkYXlzLCBhbmQgY2FuCmRpc3BsYXkgdGhlbS4g IFlvdSBjYW4gYWRkIHlvdXIgb3duIGhvbGlkYXlzIHRvIHRoZSBkZWZhdWx0IGxpc3QuCgrigJht b3VzZS0zIEhvbGlkYXlz4oCZCuKAmGjigJkKICAgICBEaXNwbGF5IGhvbGlkYXlzIGZvciB0aGUg c2VsZWN0ZWQgZGF0ZQogICAgICjigJhjYWxlbmRhci1jdXJzb3ItaG9saWRheXPigJkpLgrigJh4 4oCZCiAgICAgTWFyayBob2xpZGF5cyBpbiB0aGUgY2FsZW5kYXIgd2luZG93ICjigJhjYWxlbmRh ci1tYXJrLWhvbGlkYXlz4oCZKS4K4oCYdeKAmQogICAgIFVubWFyayBjYWxlbmRhciB3aW5kb3cg KOKAmGNhbGVuZGFyLXVubWFya+KAmSkuCuKAmGHigJkKICAgICBMaXN0IGFsbCBob2xpZGF5cyBm b3IgdGhlIGRpc3BsYXllZCB0aHJlZSBtb250aHMgaW4gYW5vdGhlciB3aW5kb3cKICAgICAo4oCY Y2FsZW5kYXItbGlzdC1ob2xpZGF5c+KAmSkuCuKAmE0teCBob2xpZGF5c+KAmQogICAgIExpc3Qg YWxsIGhvbGlkYXlzIGZvciB0aHJlZSBtb250aHMgYXJvdW5kIHRvZGF54oCZcyBkYXRlIGluIGFu b3RoZXIKICAgICB3aW5kb3cuCuKAmE0teCBsaXN0LWhvbGlkYXlz4oCZCiAgICAgTGlzdCBob2xp ZGF5cyBpbiBhbm90aGVyIHdpbmRvdyBmb3IgYSBzcGVjaWZpZWQgcmFuZ2Ugb2YgeWVhcnMuCgog ICBUbyBzZWUgaWYgYW55IGhvbGlkYXlzIGZhbGwgb24gYSBnaXZlbiBkYXRlLCBwb3NpdGlvbiBw b2ludCBvbiB0aGF0CmRhdGUgaW4gdGhlIGNhbGVuZGFyIHdpbmRvdyBhbmQgdXNlIHRoZSDigJho 4oCZIGNvbW1hbmQuICBBbHRlcm5hdGl2ZWx5LApjbGljayBvbiB0aGF0IGRhdGUgd2l0aCDigJht b3VzZS0z4oCZIGFuZCB0aGVuIGNob29zZSDigJhIb2xpZGF5c+KAmSBmcm9tIHRoZQptZW51IHRo YXQgYXBwZWFycy4gIEVpdGhlciB3YXksIHRoaXMgZGlzcGxheXMgdGhlIGhvbGlkYXlzIGZvciB0 aGF0CmRhdGUsIGluIHRoZSBlY2hvIGFyZWEgaWYgdGhleSBmaXQgdGhlcmUsIG90aGVyd2lzZSBp biBhIHNlcGFyYXRlCndpbmRvdy4KCiAgIFRvIHZpZXcgdGhlIGRpc3RyaWJ1dGlvbiBvZiBob2xp ZGF5cyBmb3IgYWxsIHRoZSBkYXRlcyBzaG93biBpbiB0aGUKY2FsZW5kYXIsIHVzZSB0aGUg4oCY eOKAmSBjb21tYW5kLiAgVGhpcyBkaXNwbGF5cyB0aGUgZGF0ZXMgdGhhdCBhcmUKaG9saWRheXMg aW4gYSBkaWZmZXJlbnQgZmFjZS4gICpOb3RlIGNhbGVuZGFyLWhvbGlkYXktbWFya2VyOiBDYWxl bmRhcgpDdXN0b21pemluZy4gIFRoZSBjb21tYW5kIGFwcGxpZXMgYm90aCB0byB0aGUgY3VycmVu dGx5IHZpc2libGUgbW9udGhzCmFuZCB0byBvdGhlciBtb250aHMgdGhhdCBzdWJzZXF1ZW50bHkg YmVjb21lIHZpc2libGUgYnkgc2Nyb2xsaW5nLiAgVG8KdHVybiBtYXJraW5nIG9mZiBhbmQgZXJh c2UgdGhlIGN1cnJlbnQgbWFya3MsIHR5cGUg4oCYdeKAmSwgd2hpY2ggYWxzbwplcmFzZXMgYW55 IGRpYXJ5IG1hcmtzICgqbm90ZSBEaWFyeTo6KS4gIElmIHRoZSB2YXJpYWJsZQrigJhjYWxlbmRh ci1tYXJrLWhvbGlkYXlzLWZsYWfigJkgaXMgbm9uLeKAmG5pbOKAmSwgY3JlYXRpbmcgb3IgdXBk YXRpbmcgdGhlCmNhbGVuZGFyIG1hcmtzIGhvbGlkYXlzIGF1dG9tYXRpY2FsbHkuCgogICBUbyBn ZXQgZXZlbiBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB1c2UgdGhlIOKAmGHigJkgY29tbWFu ZCwgd2hpY2gKZGlzcGxheXMgYSBzZXBhcmF0ZSBidWZmZXIgY29udGFpbmluZyBhIGxpc3Qgb2Yg YWxsIGhvbGlkYXlzIGluIHRoZQpjdXJyZW50IHRocmVlLW1vbnRoIHJhbmdlLiAgWW91IGNhbiB1 c2UgPFNQQz4gYW5kIDxERUw+IGluIHRoZSBjYWxlbmRhcgp3aW5kb3cgdG8gc2Nyb2xsIHRoYXQg bGlzdCB1cCBhbmQgZG93biwgcmVzcGVjdGl2ZWx5LgoKICAgVGhlIGNvbW1hbmQg4oCYTS14IGhv bGlkYXlz4oCZIGRpc3BsYXlzIHRoZSBsaXN0IG9mIGhvbGlkYXlzIGZvciB0aGUKY3VycmVudCBt b250aCBhbmQgdGhlIHByZWNlZGluZyBhbmQgc3VjY2VlZGluZyBtb250aHM7IHRoaXMgd29ya3Mg ZXZlbgppZiB5b3UgZG9u4oCZdCBoYXZlIGEgY2FsZW5kYXIgd2luZG93LiAgSWYgdGhlIHZhcmlh YmxlCuKAmGNhbGVuZGFyLXZpZXctaG9saWRheXMtaW5pdGlhbGx5LWZsYWfigJkgaXMgbm9uLeKA mG5pbOKAmSwgY3JlYXRpbmcgdGhlCmNhbGVuZGFyIGRpc3BsYXlzIGhvbGlkYXlzIGluIHRoaXMg d2F5LiAgSWYgeW91IHdhbnQgdGhlIGxpc3Qgb2YKaG9saWRheXMgY2VudGVyZWQgYXJvdW5kIGEg ZGlmZmVyZW50IG1vbnRoLCB1c2Ug4oCYQy11IE0teCBob2xpZGF5c+KAmSwKd2hpY2ggcHJvbXB0 cyBmb3IgdGhlIG1vbnRoIGFuZCB5ZWFyLgoKICAgVGhlIGhvbGlkYXlzIGtub3duIHRvIEVtYWNz IGluY2x1ZGUgVW5pdGVkIFN0YXRlcyBob2xpZGF5cyBhbmQgdGhlCm1ham9yIEJhaMOh4oCZw60s IENoaW5lc2UsIENocmlzdGlhbiwgSXNsYW1pYywgYW5kIEpld2lzaCBob2xpZGF5czsgYWxzbyB0 aGUKc29sc3RpY2VzIGFuZCBlcXVpbm94ZXMuCgogICBUaGUgY29tbWFuZCDigJhNLXggaG9saWRh eS1saXN04oCZIGRpc3BsYXlzIHRoZSBsaXN0IG9mIGhvbGlkYXlzIGZvciBhCnJhbmdlIG9mIHll YXJzLiAgVGhpcyBmdW5jdGlvbiBhc2tzIHlvdSBmb3IgdGhlIHN0YXJ0aW5nIGFuZCBzdG9wcGlu Zwp5ZWFycywgYW5kIGFsbG93cyB5b3UgdG8gY2hvb3NlIGFsbCB0aGUgaG9saWRheXMgb3Igb25l IG9mIHNldmVyYWwKY2F0ZWdvcmllcyBvZiBob2xpZGF5cy4gIFlvdSBjYW4gdXNlIHRoaXMgY29t bWFuZCBldmVuIGlmIHlvdSBkb27igJl0IGhhdmUKYSBjYWxlbmRhciB3aW5kb3cuCgogICBUaGUg ZGF0ZXMgdXNlZCBieSBFbWFjcyBmb3IgaG9saWRheXMgYXJlIGJhc2VkIG9uIF9jdXJyZW50IHBy YWN0aWNlXywKbm90IGhpc3RvcmljYWwgZmFjdC4gIEZvciBleGFtcGxlIFZldGVyYW7igJlzIERh eSBiZWdhbiBpbiAxOTE5LCBidXQgaXMKc2hvd24gaW4gZWFybGllciB5ZWFycy4KCgoqKiAzMS43 IFRpbWVzIG9mIFN1bnJpc2UgYW5kIFN1bnNldAoKU3BlY2lhbCBjYWxlbmRhciBjb21tYW5kcyBj YW4gdGVsbCB5b3UsIHRvIHdpdGhpbiBhIG1pbnV0ZSBvciB0d28sIHRoZQp0aW1lcyBvZiBzdW5y aXNlIGFuZCBzdW5zZXQgZm9yIGFueSBkYXRlLgoK4oCYbW91c2UtMyBTdW5yaXNlL3N1bnNldOKA mQrigJhT4oCZCiAgICAgRGlzcGxheSB0aW1lcyBvZiBzdW5yaXNlIGFuZCBzdW5zZXQgZm9yIHRo ZSBzZWxlY3RlZCBkYXRlCiAgICAgKOKAmGNhbGVuZGFyLXN1bnJpc2Utc3Vuc2V04oCZKS4K4oCY TS14IHN1bnJpc2Utc3Vuc2V04oCZCiAgICAgRGlzcGxheSB0aW1lcyBvZiBzdW5yaXNlIGFuZCBz dW5zZXQgZm9yIHRvZGF54oCZcyBkYXRlLgrigJhDLXUgTS14IHN1bnJpc2Utc3Vuc2V04oCZCiAg ICAgRGlzcGxheSB0aW1lcyBvZiBzdW5yaXNlIGFuZCBzdW5zZXQgZm9yIGEgc3BlY2lmaWVkIGRh dGUuCuKAmE0teCBjYWxlbmRhci1zdW5yaXNlLXN1bnNldC1tb250aOKAmQogICAgIERpc3BsYXkg dGltZXMgb2Ygc3VucmlzZSBhbmQgc3Vuc2V0IGZvciB0aGUgc2VsZWN0ZWQgbW9udGguCgogICBX aXRoaW4gdGhlIGNhbGVuZGFyLCB0byBkaXNwbGF5IHRoZSBfbG9jYWwgdGltZXNfIG9mIHN1bnJp c2UgYW5kCnN1bnNldCBpbiB0aGUgZWNobyBhcmVhLCBtb3ZlIHBvaW50IHRvIHRoZSBkYXRlIHlv dSB3YW50LCBhbmQgdHlwZSDigJhT4oCZLgpBbHRlcm5hdGl2ZWx5LCBjbGljayDigJhtb3VzZS0z 4oCZIG9uIHRoZSBkYXRlLCB0aGVuIGNob29zZSDigJhTdW5yaXNlL3N1bnNldOKAmQpmcm9tIHRo ZSBtZW51IHRoYXQgYXBwZWFycy4gIFRoZSBjb21tYW5kIOKAmE0teCBzdW5yaXNlLXN1bnNldOKA mSBpcwphdmFpbGFibGUgb3V0c2lkZSB0aGUgY2FsZW5kYXIgdG8gZGlzcGxheSB0aGlzIGluZm9y bWF0aW9uIGZvciB0b2RheeKAmXMKZGF0ZSBvciBhIHNwZWNpZmllZCBkYXRlLiAgVG8gc3BlY2lm eSBhIGRhdGUgb3RoZXIgdGhhbiB0b2RheSwgdXNlIOKAmEMtdQpNLXggc3VucmlzZS1zdW5zZXTi gJksIHdoaWNoIHByb21wdHMgZm9yIHRoZSB5ZWFyLCBtb250aCwgYW5kIGRheS4KCiAgIFlvdSBj YW4gZGlzcGxheSB0aGUgdGltZXMgb2Ygc3VucmlzZSBhbmQgc3Vuc2V0IGZvciBhbnkgbG9jYXRp b24gYW5kCmFueSBkYXRlIHdpdGgg4oCYQy11IEMtdSBNLXggc3VucmlzZS1zdW5zZXTigJkuICBU aGlzIGFza3MgeW91IGZvciBhCmxvbmdpdHVkZSwgbGF0aXR1ZGUsIG51bWJlciBvZiBtaW51dGVz IGRpZmZlcmVuY2UgZnJvbSBDb29yZGluYXRlZApVbml2ZXJzYWwgVGltZSwgYW5kIGRhdGUsIGFu ZCB0aGVuIHRlbGxzIHlvdSB0aGUgdGltZXMgb2Ygc3VucmlzZSBhbmQKc3Vuc2V0IGZvciB0aGF0 IGxvY2F0aW9uIG9uIHRoYXQgZGF0ZS4KCiAgIEJlY2F1c2UgdGhlIHRpbWVzIG9mIHN1bnJpc2Ug YW5kIHN1bnNldCBkZXBlbmQgb24gdGhlIGxvY2F0aW9uIG9uCmVhcnRoLCB5b3UgbmVlZCB0byB0 ZWxsIEVtYWNzIHlvdXIgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYW5kIGxvY2F0aW9uCm5hbWUgYmVm b3JlIHVzaW5nIHRoZXNlIGNvbW1hbmRzLiAgSGVyZSBpcyBhbiBleGFtcGxlIG9mIHdoYXQgdG8g c2V0OgoKICAgICAoc2V0cSBjYWxlbmRhci1sYXRpdHVkZSA0MC4xKQogICAgIChzZXRxIGNhbGVu ZGFyLWxvbmdpdHVkZSAtODguMikKICAgICAoc2V0cSBjYWxlbmRhci1sb2NhdGlvbi1uYW1lICJV cmJhbmEsIElMIikKClVzZSBvbmUgZGVjaW1hbCBwbGFjZSBpbiB0aGUgdmFsdWVzIG9mIOKAmGNh bGVuZGFyLWxhdGl0dWRl4oCZIGFuZArigJhjYWxlbmRhci1sb25naXR1ZGXigJkuCgogICBZb3Vy IHRpbWUgem9uZSBhbHNvIGFmZmVjdHMgdGhlIGxvY2FsIHRpbWUgb2Ygc3VucmlzZSBhbmQgc3Vu c2V0LgpFbWFjcyB1c3VhbGx5IGdldHMgdGltZSB6b25lIGluZm9ybWF0aW9uIGZyb20gdGhlIG9w ZXJhdGluZyBzeXN0ZW0sIGJ1dAppZiB0aGVzZSB2YWx1ZXMgYXJlIG5vdCB3aGF0IHlvdSB3YW50 IChvciBpZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBkb2VzCm5vdCBzdXBwbHkgdGhlbSksIHlvdSBt dXN0IHNldCB0aGVtIHlvdXJzZWxmLiAgSGVyZSBpcyBhbiBleGFtcGxlOgoKICAgICAoc2V0cSBj YWxlbmRhci10aW1lLXpvbmUgLTM2MCkKICAgICAoc2V0cSBjYWxlbmRhci1zdGFuZGFyZC10aW1l LXpvbmUtbmFtZSAiQ1NUIikKICAgICAoc2V0cSBjYWxlbmRhci1kYXlsaWdodC10aW1lLXpvbmUt bmFtZSAiQ0RUIikKClRoZSB2YWx1ZSBvZiDigJhjYWxlbmRhci10aW1lLXpvbmXigJkgaXMgdGhl IG51bWJlciBvZiBtaW51dGVzIGRpZmZlcmVuY2UKYmV0d2VlbiB5b3VyIGxvY2FsIHN0YW5kYXJk IHRpbWUgYW5kIENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lCihHcmVlbndpY2ggdGltZSkuICBU aGUgdmFsdWVzIG9mIOKAmGNhbGVuZGFyLXN0YW5kYXJkLXRpbWUtem9uZS1uYW1l4oCZIGFuZAri gJhjYWxlbmRhci1kYXlsaWdodC10aW1lLXpvbmUtbmFtZeKAmSBhcmUgdGhlIGFiYnJldmlhdGlv bnMgdXNlZCBpbiB5b3VyCnRpbWUgem9uZS4gIEVtYWNzIGRpc3BsYXlzIHRoZSB0aW1lcyBvZiBz dW5yaXNlIGFuZCBzdW5zZXQgX2NvcnJlY3RlZApmb3IgZGF5bGlnaHQgc2F2aW5nIHRpbWVfLiAg Kk5vdGUgRGF5bGlnaHQgU2F2aW5nOjosIGZvciBob3cgZGF5bGlnaHQKc2F2aW5nIHRpbWUgaXMg ZGV0ZXJtaW5lZC4KCiAgIEFzIGEgdXNlciwgeW91IG1pZ2h0IGZpbmQgaXQgY29udmVuaWVudCB0 byBzZXQgdGhlIGNhbGVuZGFyIGxvY2F0aW9uCnZhcmlhYmxlcyBmb3IgeW91ciB1c3VhbCBwaHlz aWNhbCBsb2NhdGlvbiBpbiB5b3VyIOKAmC5lbWFjc+KAmSBmaWxlLiAgSWYKeW91IGFyZSBhIHN5 c3RlbSBhZG1pbmlzdHJhdG9yLCB5b3UgbWF5IHdhbnQgdG8gc2V0IHRoZXNlIHZhcmlhYmxlcyBm b3IKYWxsIHVzZXJzIGluIGEg4oCYZGVmYXVsdC5lbOKAmSBmaWxlLiAgKk5vdGUgSW5pdCBGaWxl OjouCgoKKiogMzEuOCBQaGFzZXMgb2YgdGhlIE1vb24KClRoZXNlIGNhbGVuZGFyIGNvbW1hbmRz IGRpc3BsYXkgdGhlIGRhdGVzIGFuZCB0aW1lcyBvZiB0aGUgcGhhc2VzIG9mIHRoZQptb29uIChu ZXcgbW9vbiwgZmlyc3QgcXVhcnRlciwgZnVsbCBtb29uLCBsYXN0IHF1YXJ0ZXIpLiAgVGhpcyBm ZWF0dXJlCmlzIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHByb2JsZW1zIHRoYXQgZGVwZW5kIG9uIHRo ZSBwaGFzZSBvZiB0aGUgbW9vbi4KCuKAmE3igJkKICAgICBEaXNwbGF5IHRoZSBkYXRlcyBhbmQg dGltZXMgZm9yIGFsbCB0aGUgcXVhcnRlcnMgb2YgdGhlIG1vb24gZm9yCiAgICAgdGhlIHRocmVl LW1vbnRoIHBlcmlvZCBzaG93biAo4oCYY2FsZW5kYXItbHVuYXItcGhhc2Vz4oCZKS4K4oCYTS14 IGx1bmFyLXBoYXNlc+KAmQogICAgIERpc3BsYXkgZGF0ZXMgYW5kIHRpbWVzIG9mIHRoZSBxdWFy dGVycyBvZiB0aGUgbW9vbiBmb3IgdGhyZWUKICAgICBtb250aHMgYXJvdW5kIHRvZGF54oCZcyBk YXRlLgoKICAgV2l0aGluIHRoZSBjYWxlbmRhciwgdXNlIHRoZSDigJhN4oCZIGNvbW1hbmQgdG8g ZGlzcGxheSBhIHNlcGFyYXRlIGJ1ZmZlcgpvZiB0aGUgcGhhc2VzIG9mIHRoZSBtb29uIGZvciB0 aGUgY3VycmVudCB0aHJlZS1tb250aCByYW5nZS4gIFRoZSBkYXRlcwphbmQgdGltZXMgbGlzdGVk IGFyZSBhY2N1cmF0ZSB0byB3aXRoaW4gYSBmZXcgbWludXRlcy4KCiAgIE91dHNpZGUgdGhlIGNh bGVuZGFyLCB1c2UgdGhlIGNvbW1hbmQg4oCYTS14IGx1bmFyLXBoYXNlc+KAmSB0byBkaXNwbGF5 CnRoZSBsaXN0IG9mIHRoZSBwaGFzZXMgb2YgdGhlIG1vb24gZm9yIHRoZSBjdXJyZW50IG1vbnRo IGFuZCB0aGUKcHJlY2VkaW5nIGFuZCBzdWNjZWVkaW5nIG1vbnRocy4gIEZvciBpbmZvcm1hdGlv biBhYm91dCBhIGRpZmZlcmVudAptb250aCwgdXNlIOKAmEMtdSBNLXggbHVuYXItcGhhc2Vz4oCZ LCB3aGljaCBwcm9tcHRzIGZvciB0aGUgbW9udGggYW5kIHllYXIuCgogICBUaGUgZGF0ZXMgYW5k IHRpbWVzIGdpdmVuIGZvciB0aGUgcGhhc2VzIG9mIHRoZSBtb29uIGFyZSBnaXZlbiBpbgpsb2Nh bCB0aW1lIChjb3JyZWN0ZWQgZm9yIGRheWxpZ2h0IHNhdmluZywgd2hlbiBhcHByb3ByaWF0ZSku ICBTZWUgdGhlCmRpc2N1c3Npb24gaW4gdGhlIHByZXZpb3VzIHNlY3Rpb24uICAqTm90ZSBTdW5y aXNlL1N1bnNldDo6LgoKCioqIDMxLjkgQ29udmVyc2lvbiBUbyBhbmQgRnJvbSBPdGhlciBDYWxl bmRhcnMKClRoZSBFbWFjcyBjYWxlbmRhciBkaXNwbGF5ZWQgaXMgX2Fsd2F5c18gdGhlIEdyZWdv cmlhbiBjYWxlbmRhciwKc29tZXRpbWVzIGNhbGxlZCB0aGUgTmV3IFN0eWxlIGNhbGVuZGFyLCB3 aGljaCBpcyB1c2VkIGluIG1vc3Qgb2YgdGhlCndvcmxkIHRvZGF5LiAgSG93ZXZlciwgdGhpcyBj YWxlbmRhciBkaWQgbm90IGV4aXN0IGJlZm9yZSB0aGUgc2l4dGVlbnRoCmNlbnR1cnkgYW5kIHdh cyBub3Qgd2lkZWx5IHVzZWQgYmVmb3JlIHRoZSBlaWdodGVlbnRoIGNlbnR1cnk7IGl0IGRpZApu b3QgZnVsbHkgZGlzcGxhY2UgdGhlIEp1bGlhbiBjYWxlbmRhciBhbmQgZ2FpbiB1bml2ZXJzYWwg YWNjZXB0YW5jZQp1bnRpbCB0aGUgZWFybHkgdHdlbnRpZXRoIGNlbnR1cnkuICBUaGUgRW1hY3Mg Y2FsZW5kYXIgY2FuIGRpc3BsYXkgYW55Cm1vbnRoIHNpbmNlIEphbnVhcnksIHllYXIgMSBvZiB0 aGUgY3VycmVudCBlcmEsIGJ1dCB0aGUgY2FsZW5kYXIKZGlzcGxheWVkIGlzIGFsd2F5cyB0aGUg R3JlZ29yaWFuLCBldmVuIGZvciBhIGRhdGUgYXQgd2hpY2ggdGhlCkdyZWdvcmlhbiBjYWxlbmRh ciBkaWQgbm90IGV4aXN0LgoKICAgV2hpbGUgRW1hY3MgY2Fubm90IGRpc3BsYXkgb3RoZXIgY2Fs ZW5kYXJzLCBpdCBjYW4gY29udmVydCBkYXRlcyB0bwphbmQgZnJvbSBzZXZlcmFsIG90aGVyIGNh bGVuZGFycy4KCisgTWVudToKCiAgLSBDYWxlbmRhciBTeXN0ZW1zOjogICAgICAgVGhlIGNhbGVu ZGFycyBFbWFjcyB1bmRlcnN0YW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhc2lk ZSBmcm9tIEdyZWdvcmlhbikuCiAgLSBUbyBPdGhlciBDYWxlbmRhcjo6ICAgICAgQ29udmVydGlu ZyB0aGUgc2VsZWN0ZWQgZGF0ZSB0byB2YXJpb3VzIGNhbGVuZGFycy4KICAtIEZyb20gT3RoZXIg Q2FsZW5kYXI6OiAgICBNb3ZpbmcgdG8gYSBkYXRlIHNwZWNpZmllZCBpbiBhbm90aGVyIGNhbGVu ZGFyLgoKCioqKiAzMS45LjEgU3VwcG9ydGVkIENhbGVuZGFyIFN5c3RlbXMKClRoZSBJU08gY29t bWVyY2lhbCBjYWxlbmRhciBpcyBvZnRlbiB1c2VkIGluIGJ1c2luZXNzLgoKICAgVGhlIEp1bGlh biBjYWxlbmRhciwgbmFtZWQgYWZ0ZXIgSnVsaXVzIENhZXNhciwgd2FzIHRoZSBvbmUgdXNlZCBp bgpFdXJvcGUgdGhyb3VnaG91dCBtZWRpZXZhbCB0aW1lcywgYW5kIGluIG1hbnkgY291bnRyaWVz IHVwIHVudGlsIHRoZQpuaW5ldGVlbnRoIGNlbnR1cnkuCgogICBBc3Ryb25vbWVycyB1c2UgYSBz aW1wbGUgY291bnRpbmcgb2YgZGF5cyBlbGFwc2VkIHNpbmNlIG5vb24sIE1vbmRheSwKSmFudWFy eSAxLCA0NzEzIEIuQy4gb24gdGhlIEp1bGlhbiBjYWxlbmRhci4gIFRoZSBudW1iZXIgb2YgZGF5 cyBlbGFwc2VkCmlzIGNhbGxlZCB0aGUgIkp1bGlhbiBkYXkgbnVtYmVyIiBvciB0aGUgIkFzdHJv bm9taWNhbCBkYXkgbnVtYmVyIi4KCiAgIFRoZSBIZWJyZXcgY2FsZW5kYXIgaXMgdXNlZCBieSB0 cmFkaXRpb24gaW4gdGhlIEpld2lzaCByZWxpZ2lvbi4gIFRoZQpFbWFjcyBjYWxlbmRhciBwcm9n cmFtIHVzZXMgdGhlIEhlYnJldyBjYWxlbmRhciB0byBkZXRlcm1pbmUgdGhlIGRhdGVzCm9mIEpl d2lzaCBob2xpZGF5cy4gIEhlYnJldyBjYWxlbmRhciBkYXRlcyBiZWdpbiBhbmQgZW5kIGF0IHN1 bnNldC4KCiAgIFRoZSBJc2xhbWljIGNhbGVuZGFyIGlzIHVzZWQgaW4gbWFueSBwcmVkb21pbmFu dGx5IElzbGFtaWMgY291bnRyaWVzLgpFbWFjcyB1c2VzIGl0IHRvIGRldGVybWluZSB0aGUgZGF0 ZXMgb2YgSXNsYW1pYyBob2xpZGF5cy4gIFRoZXJlIGlzIG5vCnVuaXZlcnNhbCBhZ3JlZW1lbnQg aW4gdGhlIElzbGFtaWMgd29ybGQgYWJvdXQgdGhlIGNhbGVuZGFyOyBFbWFjcyB1c2VzCmEgd2lk ZWx5IGFjY2VwdGVkIHZlcnNpb24sIGJ1dCB0aGUgcHJlY2lzZSBkYXRlcyBvZiBJc2xhbWljIGhv bGlkYXlzCm9mdGVuIGRlcGVuZCBvbiBwcm9jbGFtYXRpb24gYnkgcmVsaWdpb3VzIGF1dGhvcml0 aWVzLCBub3Qgb24KY2FsY3VsYXRpb25zLiAgQXMgYSBjb25zZXF1ZW5jZSwgdGhlIGFjdHVhbCBk YXRlcyBvZiBvYnNlcnZhbmNlIGNhbiB2YXJ5CnNsaWdodGx5IGZyb20gdGhlIGRhdGVzIGNvbXB1 dGVkIGJ5IEVtYWNzLiAgSXNsYW1pYyBjYWxlbmRhciBkYXRlcyBiZWdpbgphbmQgZW5kIGF0IHN1 bnNldC4KCiAgIFRoZSBGcmVuY2ggUmV2b2x1dGlvbmFyeSBjYWxlbmRhciB3YXMgY3JlYXRlZCBi eSB0aGUgSmFjb2JpbnMgYWZ0ZXIKdGhlIDE3ODkgcmV2b2x1dGlvbiwgdG8gcmVwcmVzZW50IGEg bW9yZSBzZWN1bGFyIGFuZCBuYXR1cmUtYmFzZWQgdmlldwpvZiB0aGUgYW5udWFsIGN5Y2xlLCBh bmQgdG8gaW5zdGFsbCBhIDEwLWRheSB3ZWVrIGluIGEgcmF0aW9uYWxpemF0aW9uCm1lYXN1cmUg c2ltaWxhciB0byB0aGUgbWV0cmljIHN5c3RlbS4gIFRoZSBGcmVuY2ggZ292ZXJubWVudCBvZmZp Y2lhbGx5CmFiYW5kb25lZCB0aGlzIGNhbGVuZGFyIGF0IHRoZSBlbmQgb2YgMTgwNS4KCiAgIFRo ZSBNYXlhIG9mIENlbnRyYWwgQW1lcmljYSB1c2VkIHRocmVlIHNlcGFyYXRlLCBvdmVybGFwcGlu ZyBjYWxlbmRhcgpzeXN0ZW1zLCB0aGUgX2xvbmcgY291bnRfLCB0aGUgX3R6b2xraW5fLCBhbmQg dGhlIF9oYWFiXy4gIEVtYWNzIGtub3dzCmFib3V0IGFsbCB0aHJlZSBvZiB0aGVzZSBjYWxlbmRh cnMuICBFeHBlcnRzIGRpc3B1dGUgdGhlIGV4YWN0CmNvcnJlbGF0aW9uIGJldHdlZW4gdGhlIE1h eWFuIGNhbGVuZGFyIGFuZCBvdXIgY2FsZW5kYXI7IEVtYWNzIHVzZXMgdGhlCkdvb2RtYW4tTWFy dGluZXotVGhvbXBzb24gY29ycmVsYXRpb24gaW4gaXRzIGNhbGN1bGF0aW9ucy4KCiAgIFRoZSBD b3B0cyB1c2UgYSBjYWxlbmRhciBiYXNlZCBvbiB0aGUgYW5jaWVudCBFZ3lwdGlhbiBzb2xhcgpj YWxlbmRhci4gIFRoZWlyIGNhbGVuZGFyIGNvbnNpc3RzIG9mIHR3ZWx2ZSAzMC1kYXkgbW9udGhz IGZvbGxvd2VkIGJ5CmFuIGV4dHJhIGZpdmUtZGF5IHBlcmlvZC4gIE9uY2UgZXZlcnkgZm91cnRo IHllYXIgdGhleSBhZGQgYSBsZWFwIGRheSB0bwp0aGlzIGV4dHJhIHBlcmlvZCB0byBtYWtlIGl0 IHNpeCBkYXlzLiAgVGhlIEV0aGlvcGljIGNhbGVuZGFyIGlzCmlkZW50aWNhbCBpbiBzdHJ1Y3R1 cmUsIGJ1dCBoYXMgZGlmZmVyZW50IHllYXIgbnVtYmVycyBhbmQgbW9udGggbmFtZXMuCgogICBU aGUgUGVyc2lhbnMgdXNlIGEgc29sYXIgY2FsZW5kYXIgYmFzZWQgb24gYSBkZXNpZ24gb2YgT21h ciBLaGF5eWFtLgpUaGVpciBjYWxlbmRhciBjb25zaXN0cyBvZiB0d2VsdmUgbW9udGhzIG9mIHdo aWNoIHRoZSBmaXJzdCBzaXggaGF2ZSAzMQpkYXlzLCB0aGUgbmV4dCBmaXZlIGhhdmUgMzAgZGF5 cywgYW5kIHRoZSBsYXN0IGhhcyAyOSBpbiBvcmRpbmFyeSB5ZWFycwphbmQgMzAgaW4gbGVhcCB5 ZWFycy4gIExlYXAgeWVhcnMgb2NjdXIgaW4gYSBjb21wbGljYXRlZCBwYXR0ZXJuIGV2ZXJ5CmZv dXIgb3IgZml2ZSB5ZWFycy4gIFRoZSBjYWxlbmRhciBpbXBsZW1lbnRlZCBoZXJlIGlzIHRoZSBh cml0aG1ldGljYWwKUGVyc2lhbiBjYWxlbmRhciBjaGFtcGlvbmVkIGJ5IEJpcmFzaGssIGJhc2Vk IG9uIGEgMiw4MjAteWVhciBjeWNsZS4gIEl0CmRpZmZlcnMgZnJvbSB0aGUgYXN0cm9ub21pY2Fs IFBlcnNpYW4gY2FsZW5kYXIsIHdoaWNoIGlzIGJhc2VkIG9uCmFzdHJvbm9taWNhbCBldmVudHMu ICBBcyBvZiB0aGlzIHdyaXRpbmcgdGhlIGZpcnN0IGZ1dHVyZSBkaXNjcmVwYW5jeSBpcwpwcm9q ZWN0ZWQgdG8gb2NjdXIgb24gTWFyY2ggMjAsIDIwMjUuICBJdCBpcyBjdXJyZW50bHkgbm90IGNs ZWFyIHdoYXQKdGhlIG9mZmljaWFsIGNhbGVuZGFyIG9mIElyYW4gd2lsbCBiZSBhdCB0aGF0IHRp bWUuCgogICBUaGUgQ2hpbmVzZSBjYWxlbmRhciBpcyBhIGNvbXBsaWNhdGVkIHN5c3RlbSBvZiBs dW5hciBtb250aHMgYXJyYW5nZWQKaW50byBzb2xhciB5ZWFycy4gIFRoZSB5ZWFycyBnbyBpbiBj eWNsZXMgb2Ygc2l4dHksIGVhY2ggeWVhciBjb250YWluaW5nCmVpdGhlciB0d2VsdmUgbW9udGhz IGluIGFuIG9yZGluYXJ5IHllYXIgb3IgdGhpcnRlZW4gbW9udGhzIGluIGEgbGVhcAp5ZWFyOyBl YWNoIG1vbnRoIGhhcyBlaXRoZXIgMjkgb3IgMzAgZGF5cy4gIFllYXJzLCBvcmRpbmFyeSBtb250 aHMsIGFuZApkYXlzIGFyZSBuYW1lZCBieSBjb21iaW5pbmcgb25lIG9mIHRlbiAiY2VsZXN0aWFs IHN0ZW1zIiB3aXRoIG9uZSBvZgp0d2VsdmUgInRlcnJlc3RyaWFsIGJyYW5jaGVzIiBmb3IgYSB0 b3RhbCBvZiBzaXh0eSBuYW1lcyB0aGF0IGFyZQpyZXBlYXRlZCBpbiBhIGN5Y2xlIG9mIHNpeHR5 LgoKICAgVGhlIEJhaMOh4oCZw60gY2FsZW5kYXIgc3lzdGVtIGlzIGJhc2VkIG9uIGEgc29sYXIg Y3ljbGUgb2YgMTkgbW9udGhzCndpdGggMTkgZGF5cyBlYWNoLiAgVGhlIGZvdXIgcmVtYWluaW5n IGludGVyY2FsYXJ5IGRheXMgYXJlIHBsYWNlZApiZXR3ZWVuIHRoZSAxOHRoIGFuZCAxOXRoIG1v bnRocy4KCgoqKiogMzEuOS4yIENvbnZlcnRpbmcgVG8gT3RoZXIgQ2FsZW5kYXJzCgpUaGUgZm9s bG93aW5nIGNvbW1hbmRzIGRlc2NyaWJlIHRoZSBzZWxlY3RlZCBkYXRlICh0aGUgZGF0ZSBhdCBw b2ludCkgaW4KdmFyaW91cyBvdGhlciBjYWxlbmRhciBzeXN0ZW1zOgoK4oCYbW91c2UtMyBPdGhl ciBjYWxlbmRhcnPigJkK4oCYcCBv4oCZCiAgICAgRGlzcGxheSB0aGUgc2VsZWN0ZWQgZGF0ZSBp biB2YXJpb3VzIG90aGVyIGNhbGVuZGFycy4KICAgICAo4oCYY2FsZW5kYXItcHJpbnQtb3RoZXIt ZGF0ZXPigJkpLgrigJhwIGPigJkKICAgICBEaXNwbGF5IElTTyBjb21tZXJjaWFsIGNhbGVuZGFy IGVxdWl2YWxlbnQgZm9yIHNlbGVjdGVkIGRheQogICAgICjigJhjYWxlbmRhci1pc28tcHJpbnQt ZGF0ZeKAmSkuCuKAmHAgauKAmQogICAgIERpc3BsYXkgSnVsaWFuIGRhdGUgZm9yIHNlbGVjdGVk IGRheQogICAgICjigJhjYWxlbmRhci1qdWxpYW4tcHJpbnQtZGF0ZeKAmSkuCuKAmHAgYeKAmQog ICAgIERpc3BsYXkgYXN0cm9ub21pY2FsIChKdWxpYW4pIGRheSBudW1iZXIgZm9yIHNlbGVjdGVk IGRheQogICAgICjigJhjYWxlbmRhci1hc3Ryby1wcmludC1kYXktbnVtYmVy4oCZKS4K4oCYcCBo 4oCZCiAgICAgRGlzcGxheSBIZWJyZXcgZGF0ZSBmb3Igc2VsZWN0ZWQgZGF5CiAgICAgKOKAmGNh bGVuZGFyLWhlYnJldy1wcmludC1kYXRl4oCZKS4K4oCYcCBp4oCZCiAgICAgRGlzcGxheSBJc2xh bWljIGRhdGUgZm9yIHNlbGVjdGVkIGRheQogICAgICjigJhjYWxlbmRhci1pc2xhbWljLXByaW50 LWRhdGXigJkpLgrigJhwIGbigJkKICAgICBEaXNwbGF5IEZyZW5jaCBSZXZvbHV0aW9uYXJ5IGRh dGUgZm9yIHNlbGVjdGVkIGRheQogICAgICjigJhjYWxlbmRhci1mcmVuY2gtcHJpbnQtZGF0ZeKA mSkuCuKAmHAgYuKAmQogICAgIERpc3BsYXkgQmFow6HigJnDrSBkYXRlIGZvciBzZWxlY3RlZCBk YXkgKOKAmGNhbGVuZGFyLWJhaGFpLXByaW50LWRhdGXigJkpLgrigJhwIEPigJkKICAgICBEaXNw bGF5IENoaW5lc2UgZGF0ZSBmb3Igc2VsZWN0ZWQgZGF5CiAgICAgKOKAmGNhbGVuZGFyLWNoaW5l c2UtcHJpbnQtZGF0ZeKAmSkuCuKAmHAga+KAmQogICAgIERpc3BsYXkgQ29wdGljIGRhdGUgZm9y IHNlbGVjdGVkIGRheQogICAgICjigJhjYWxlbmRhci1jb3B0aWMtcHJpbnQtZGF0ZeKAmSkuCuKA mHAgZeKAmQogICAgIERpc3BsYXkgRXRoaW9waWMgZGF0ZSBmb3Igc2VsZWN0ZWQgZGF5CiAgICAg KOKAmGNhbGVuZGFyLWV0aGlvcGljLXByaW50LWRhdGXigJkpLgrigJhwIHDigJkKICAgICBEaXNw bGF5IFBlcnNpYW4gZGF0ZSBmb3Igc2VsZWN0ZWQgZGF5CiAgICAgKOKAmGNhbGVuZGFyLXBlcnNp YW4tcHJpbnQtZGF0ZeKAmSkuCuKAmHAgbeKAmQogICAgIERpc3BsYXkgTWF5YW4gZGF0ZSBmb3Ig c2VsZWN0ZWQgZGF5ICjigJhjYWxlbmRhci1tYXlhbi1wcmludC1kYXRl4oCZKS4KCiAgIE90aGVy d2lzZSwgbW92ZSBwb2ludCB0byB0aGUgZGF0ZSB5b3Ugd2FudCB0byBjb252ZXJ0LCB0aGVuIHR5 cGUgdGhlCmFwcHJvcHJpYXRlIGNvbW1hbmQgc3RhcnRpbmcgd2l0aCDigJhw4oCZIGZyb20gdGhl IHRhYmxlIGFib3ZlLiAgVGhlIHByZWZpeArigJhw4oCZIGlzIGEgbW5lbW9uaWMgZm9yIOKAnHBy aW504oCdLCBzaW5jZSBFbWFjcyDigJxwcmludHPigJ0gdGhlIGVxdWl2YWxlbnQgZGF0ZQppbiB0 aGUgZWNobyBhcmVhLiAg4oCYcCBv4oCZIGRpc3BsYXlzIHRoZSBkYXRlIGluIGFsbCBmb3JtcyBr bm93biB0byBFbWFjcy4KWW91IGNhbiBhbHNvIHVzZSDigJhtb3VzZS0z4oCZIGFuZCB0aGVuIGNo b29zZSDigJhPdGhlciBjYWxlbmRhcnPigJkgZnJvbSB0aGUKbWVudSB0aGF0IGFwcGVhcnMuICBU aGlzIGRpc3BsYXlzIHRoZSBlcXVpdmFsZW50IGZvcm1zIG9mIHRoZSBkYXRlIGluCmFsbCB0aGUg Y2FsZW5kYXJzIEVtYWNzIHVuZGVyc3RhbmRzLCBpbiB0aGUgZm9ybSBvZiBhIG1lbnUuICAoQ2hv b3NpbmcKYW4gYWx0ZXJuYXRpdmUgZnJvbSB0aGlzIG1lbnUgZG9lc27igJl0IGFjdHVhbGx5IGRv IGFueXRoaW5n4oCUdGhlIG1lbnUgaXMKdXNlZCBvbmx5IGZvciBkaXNwbGF5LikKCgoqKiogMzEu OS4zIENvbnZlcnRpbmcgRnJvbSBPdGhlciBDYWxlbmRhcnMKCllvdSBjYW4gdXNlIHRoZSBvdGhl ciBzdXBwb3J0ZWQgY2FsZW5kYXJzIHRvIHNwZWNpZnkgYSBkYXRlIHRvIG1vdmUgdG8uClRoaXMg c2VjdGlvbiBkZXNjcmliZXMgdGhlIGNvbW1hbmRzIGZvciBkb2luZyB0aGlzIHVzaW5nIGNhbGVu ZGFycyBvdGhlcgp0aGFuIE1heWFuOyBmb3IgdGhlIE1heWFuIGNhbGVuZGFyLCBzZWUgdGhlIGZv bGxvd2luZyBzZWN0aW9uLgoK4oCYZyBj4oCZCiAgICAgTW92ZSB0byBhIGRhdGUgc3BlY2lmaWVk IGluIHRoZSBJU08gY29tbWVyY2lhbCBjYWxlbmRhcgogICAgICjigJhjYWxlbmRhci1pc28tZ290 by1kYXRl4oCZKS4K4oCYZyB34oCZCiAgICAgTW92ZSB0byBhIHdlZWsgc3BlY2lmaWVkIGluIHRo ZSBJU08gY29tbWVyY2lhbCBjYWxlbmRhcgogICAgICjigJhjYWxlbmRhci1pc28tZ290by13ZWVr 4oCZKS4K4oCYZyBq4oCZCiAgICAgTW92ZSB0byBhIGRhdGUgc3BlY2lmaWVkIGluIHRoZSBKdWxp YW4gY2FsZW5kYXIKICAgICAo4oCYY2FsZW5kYXItanVsaWFuLWdvdG8tZGF0ZeKAmSkuCuKAmGcg YeKAmQogICAgIE1vdmUgdG8gYSBkYXRlIHNwZWNpZmllZCB3aXRoIGFuIGFzdHJvbm9taWNhbCAo SnVsaWFuKSBkYXkgbnVtYmVyCiAgICAgKOKAmGNhbGVuZGFyLWFzdHJvLWdvdG8tZGF5LW51bWJl cuKAmSkuCuKAmGcgYuKAmQogICAgIE1vdmUgdG8gYSBkYXRlIHNwZWNpZmllZCBpbiB0aGUgQmFo w6HigJnDrSBjYWxlbmRhcgogICAgICjigJhjYWxlbmRhci1iYWhhaS1nb3RvLWRhdGXigJkpLgri gJhnIGjigJkKICAgICBNb3ZlIHRvIGEgZGF0ZSBzcGVjaWZpZWQgaW4gdGhlIEhlYnJldyBjYWxl bmRhcgogICAgICjigJhjYWxlbmRhci1oZWJyZXctZ290by1kYXRl4oCZKS4K4oCYZyBp4oCZCiAg ICAgTW92ZSB0byBhIGRhdGUgc3BlY2lmaWVkIGluIHRoZSBJc2xhbWljIGNhbGVuZGFyCiAgICAg KOKAmGNhbGVuZGFyLWlzbGFtaWMtZ290by1kYXRl4oCZKS4K4oCYZyBm4oCZCiAgICAgTW92ZSB0 byBhIGRhdGUgc3BlY2lmaWVkIGluIHRoZSBGcmVuY2ggUmV2b2x1dGlvbmFyeSBjYWxlbmRhcgog ICAgICjigJhjYWxlbmRhci1mcmVuY2gtZ290by1kYXRl4oCZKS4K4oCYZyBD4oCZCiAgICAgTW92 ZSB0byBhIGRhdGUgc3BlY2lmaWVkIGluIHRoZSBDaGluZXNlIGNhbGVuZGFyCiAgICAgKOKAmGNh bGVuZGFyLWNoaW5lc2UtZ290by1kYXRl4oCZKS4K4oCYZyBw4oCZCiAgICAgTW92ZSB0byBhIGRh dGUgc3BlY2lmaWVkIGluIHRoZSBQZXJzaWFuIGNhbGVuZGFyCiAgICAgKOKAmGNhbGVuZGFyLXBl cnNpYW4tZ290by1kYXRl4oCZKS4K4oCYZyBr4oCZCiAgICAgTW92ZSB0byBhIGRhdGUgc3BlY2lm aWVkIGluIHRoZSBDb3B0aWMgY2FsZW5kYXIKICAgICAo4oCYY2FsZW5kYXItY29wdGljLWdvdG8t ZGF0ZeKAmSkuCuKAmGcgZeKAmQogICAgIE1vdmUgdG8gYSBkYXRlIHNwZWNpZmllZCBpbiB0aGUg RXRoaW9waWMgY2FsZW5kYXIKICAgICAo4oCYY2FsZW5kYXItZXRoaW9waWMtZ290by1kYXRl4oCZ KS4KCiAgIFRoZXNlIGNvbW1hbmRzIGFzayB5b3UgZm9yIGEgZGF0ZSBvbiB0aGUgb3RoZXIgY2Fs ZW5kYXIsIG1vdmUgcG9pbnQKdG8gdGhlIEdyZWdvcmlhbiBjYWxlbmRhciBkYXRlIGVxdWl2YWxl bnQgdG8gdGhhdCBkYXRlLCBhbmQgZGlzcGxheSB0aGUKb3RoZXIgY2FsZW5kYXLigJlzIGRhdGUg aW4gdGhlIGVjaG8gYXJlYS4gIEVtYWNzIHVzZXMgc3RyaWN0IGNvbXBsZXRpb24KKCpub3RlIENv bXBsZXRpb24gRXhpdDo6KSB3aGVuZXZlciBpdCBhc2tzIHlvdSB0byB0eXBlIGEgbW9udGggbmFt ZSwgc28KeW91IGRvbuKAmXQgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGUgc3BlbGxpbmcgb2YgSGVi cmV3LCBJc2xhbWljLCBvciBGcmVuY2gKbmFtZXMuCgogICBPbmUgY29tbW9uIGlzc3VlIGNvbmNl cm5pbmcgdGhlIEhlYnJldyBjYWxlbmRhciBpcyB0aGUgY29tcHV0YXRpb24gb2YKdGhlIGFubml2 ZXJzYXJ5IG9mIGEgZGF0ZSBvZiBkZWF0aCwgY2FsbGVkIGEgInlhaHJ6ZWl0Ii4gIFRoZSBFbWFj cwpjYWxlbmRhciBpbmNsdWRlcyBhIGZhY2lsaXR5IGZvciBzdWNoIGNhbGN1bGF0aW9ucy4gIElm IHlvdSBhcmUgaW4gdGhlCmNhbGVuZGFyLCB0aGUgY29tbWFuZCDigJhNLXggY2FsZW5kYXItaGVi cmV3LWxpc3QteWFocnplaXRz4oCZIGFza3MgeW91IGZvcgphIHJhbmdlIG9mIHllYXJzIGFuZCB0 aGVuIGRpc3BsYXlzIGEgbGlzdCBvZiB0aGUgeWFocnplaXQgZGF0ZXMgZm9yCnRob3NlIHllYXJz IGZvciB0aGUgZGF0ZSBnaXZlbiBieSBwb2ludC4gIElmIHlvdSBhcmUgbm90IGluIHRoZQpjYWxl bmRhciwgdGhpcyBjb21tYW5kIGZpcnN0IGFza3MgeW91IGZvciB0aGUgZGF0ZSBvZiBkZWF0aCBh bmQgdGhlCnJhbmdlIG9mIHllYXJzLCBhbmQgdGhlbiBkaXNwbGF5cyB0aGUgbGlzdCBvZiB5YWhy emVpdCBkYXRlcy4KCgoqKiAzMS4xMCBUaGUgRGlhcnkKClRoZSBFbWFjcyBkaWFyeSBrZWVwcyB0 cmFjayBvZiBhcHBvaW50bWVudHMgb3Igb3RoZXIgZXZlbnRzIG9uIGEgZGFpbHkKYmFzaXMsIGlu IGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhbGVuZGFyLiAgVG8gdXNlIHRoZSBkaWFyeSBmZWF0dXJl LCB5b3UKbXVzdCBmaXJzdCBjcmVhdGUgYSBkaWFyeSBmaWxlIGNvbnRhaW5pbmcgYSBsaXN0IG9m IGV2ZW50cyBhbmQgdGhlaXIKZGF0ZXMuICBUaGVuIEVtYWNzIGNhbiBhdXRvbWF0aWNhbGx5IHBp Y2sgb3V0IGFuZCBkaXNwbGF5IHRoZSBldmVudHMgZm9yCnRvZGF5LCBmb3IgdGhlIGltbWVkaWF0 ZSBmdXR1cmUsIG9yIGZvciBhbnkgc3BlY2lmaWVkIGRhdGUuCgogICBBbHRob3VnaCB5b3UgcHJv YmFibHkgd2lsbCBzdGFydCBieSBjcmVhdGluZyBhIGRpYXJ5IG1hbnVhbGx5LCBFbWFjcwpwcm92 aWRlcyBhIG51bWJlciBvZiBjb21tYW5kcyB0byBsZXQgeW91IHZpZXcsIGFkZCwgYW5kIGNoYW5n ZSBkaWFyeQplbnRyaWVzLgoKKyBNZW51OgoKICAtIEZvcm1hdCBvZiBEaWFyeSBGaWxlOjogICBF bnRlcmluZyBldmVudHMgaW4geW91ciBkaWFyeS4KICAtIERpc3BsYXlpbmcgdGhlIERpYXJ5Ojog ICBWaWV3aW5nIGRpYXJ5IGVudHJpZXMgYW5kIGFzc29jaWF0ZWQgY2FsZW5kYXIgZGF0ZXMuCiAg LSBEYXRlIEZvcm1hdHM6OiAgICAgICAgICAgVmFyaW91cyB3YXlzIHlvdSBjYW4gc3BlY2lmeSBk YXRlcy4KICAtIEFkZGluZyB0byBEaWFyeTo6ICAgICAgICBDb21tYW5kcyB0byBjcmVhdGUgZGlh cnkgZW50cmllcy4KICAtIFNwZWNpYWwgRGlhcnkgRW50cmllczo6ICBBbm5pdmVyc2FyaWVzLCBi bG9ja3Mgb2YgZGF0ZXMsIGN5Y2xpYyBlbnRyaWVzLCBldGMuCiAgLSBBcHBvaW50bWVudHM6OiAg ICAgICAgICAgUmVtaW5kZXJzIHdoZW4gaXTigJlzIHRpbWUgdG8gZG8gc29tZXRoaW5nLgogIC0g SW1wb3J0aW5nIERpYXJ5OjogICAgICAgIENvbnZlcnRpbmcgZGlhcnkgZXZlbnRzIHRvL2Zyb20g b3RoZXIgZm9ybWF0cy4KCgoqKiogMzEuMTAuMSBUaGUgRGlhcnkgRmlsZQoKWW91ciAiZGlhcnkg ZmlsZSIgaXMgYSBmaWxlIHRoYXQgcmVjb3JkcyBldmVudHMgYXNzb2NpYXRlZCB3aXRoCnBhcnRp Y3VsYXIgZGF0ZXMuICBUaGUgbmFtZSBvZiB0aGUgZGlhcnkgZmlsZSBpcyBzcGVjaWZpZWQgYnkg dGhlCnZhcmlhYmxlIOKAmGRpYXJ5LWZpbGXigJkuICBUaGUgZGVmYXVsdCBpcyDigJh+Ly5lbWFj cy5kL2RpYXJ54oCZLCB0aG91Z2ggZm9yCmNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciB2ZXJzaW9u cyBFbWFjcyB3aWxsIHVzZSDigJh+L2RpYXJ54oCZIGlmIGl0IGV4aXN0cy4KCiAgIEVhY2ggZW50 cnkgaW4gdGhlIGRpYXJ5IGZpbGUgZGVzY3JpYmVzIG9uZSBldmVudCBhbmQgY29uc2lzdHMgb2Yg b25lCm9yIG1vcmUgbGluZXMuICBBbiBlbnRyeSBhbHdheXMgYmVnaW5zIHdpdGggYSBkYXRlIHNw ZWNpZmljYXRpb24gYXQgdGhlCmxlZnQgbWFyZ2luLiAgVGhlIHJlc3Qgb2YgdGhlIGVudHJ5IGlz IHNpbXBseSB0ZXh0IHRvIGRlc2NyaWJlIHRoZQpldmVudC4gIElmIHRoZSBlbnRyeSBoYXMgbW9y ZSB0aGFuIG9uZSBsaW5lLCB0aGVuIHRoZSBsaW5lcyBhZnRlciB0aGUKZmlyc3QgbXVzdCBiZWdp biB3aXRoIHdoaXRlc3BhY2UgdG8gaW5kaWNhdGUgdGhleSBjb250aW51ZSBhIHByZXZpb3VzCmVu dHJ5LiAgTGluZXMgdGhhdCBkbyBub3QgYmVnaW4gd2l0aCB2YWxpZCBkYXRlcyBhbmQgZG8gbm90 IGNvbnRpbnVlIGEKcHJlY2VkaW5nIGVudHJ5IGFyZSBpZ25vcmVkLiAgSGVyZeKAmXMgYW4gZXhh bXBsZToKCiAgICAgMTIvMjIvMjAxNSAgVHdlbnRpZXRoIHdlZGRpbmcgYW5uaXZlcnNhcnkhCiAg ICAgMTAvMjIgICAgICAgUnV0aCdzIGJpcnRoZGF5LgogICAgICogMjEsICo6ICAgIFBheWRheQog ICAgIFR1ZXNkYXktLXdlZWtseSBtZWV0aW5nIHdpdGggZ3JhZCBzdHVkZW50cyBhdCAxMGFtCiAg ICAgICAgICAgICAgU3Vwb3dpdCwgU2hlbiwgQml0bmVyLCBhbmQgS2Fwb29yIHRvIGF0dGVuZC4K ICAgICAxLzEzLzg5ICAgICBGcmlkYXkgdGhlIHRoaXJ0ZWVudGghIQogICAgIHRodSA0cG0gICAg IHNxdWFzaCBnYW1lIHdpdGggTGxveWQuCiAgICAgbWFyIDE2ICAgICAgRGFkJ3MgYmlydGhkYXkK ICAgICBBcHJpbCAxNSwgMjAxNiBJbmNvbWUgdGF4IGR1ZS4KICAgICAqIDE1ICAgICAgICB0aW1l IGNhcmRzIGR1ZS4KClRoaXMgZXhhbXBsZSB1c2VzIGV4dHJhIHNwYWNlcyB0byBhbGlnbiB0aGUg ZXZlbnQgZGVzY3JpcHRpb25zIG9mIG1vc3QKb2YgdGhlIGVudHJpZXMuICBTdWNoIGZvcm1hdHRp bmcgaXMgcHVyZWx5IGEgbWF0dGVyIG9mIHRhc3RlLgoKICAgWW91IGNhbiBhbHNvIHVzZSBhIGZv cm1hdCB3aGVyZSB0aGUgZmlyc3QgbGluZSBvZiBhIGRpYXJ5IGVudHJ5CmNvbnNpc3RzIG9ubHkg b2YgdGhlIGRhdGUgb3IgZGF5IG5hbWUgKHdpdGggbm8gZm9sbG93aW5nIGJsYW5rcyBvcgpwdW5j dHVhdGlvbikuICBGb3IgZXhhbXBsZToKCiAgICAgMDIvMTEvMjAxMgogICAgICAgICAgIEJpbGwg Qi4gdmlzaXRzIFByaW5jZXRvbiB0b2RheQogICAgICAgICAgIDJwbSBDb2duaXRpdmUgU3R1ZGll cyBDb21taXR0ZWUgbWVldGluZwogICAgICAgICAgIDI6MzAtNTozMCBMaXogYXQgTGF3cmVuY2V2 aWxsZQogICAgICAgICAgIDQ6MDBwbSBEZW50aXN0IGFwcHQKICAgICAgICAgICA3OjMwcG0gRGlu bmVyIGF0IEdlb3JnZSdzCiAgICAgICAgICAgODowMC0xMDowMHBtIGNvbmNlcnQKClRoaXMgZW50 cnkgd2lsbCBoYXZlIGEgZGlmZmVyZW50IGFwcGVhcmFuY2UgaWYgeW91IHVzZSB0aGUgc2ltcGxl IGRpYXJ5CmRpc3BsYXkgKCpub3RlIERpYXJ5IERpc3BsYXk6OikuICBUaGUgc2ltcGxlIGRpYXJ5 IGRpc3BsYXkgb21pdHMgdGhlCmRhdGUgbGluZSBhdCB0aGUgYmVnaW5uaW5nOyBvbmx5IHRoZSBj b250aW51YXRpb24gbGluZXMgYXBwZWFyLiAgVGhpcwpzdHlsZSBvZiBlbnRyeSBsb29rcyBuZWF0 ZXIgd2hlbiB5b3UgZGlzcGxheSBqdXN0IGEgc2luZ2xlIGRheeKAmXMKZW50cmllcywgYnV0IGNh biBjYXVzZSBjb25mdXNpb24gaWYgeW91IGFzayBmb3IgbW9yZSB0aGFuIG9uZSBkYXnigJlzCmVu dHJpZXMuCgoKKioqIDMxLjEwLjIgRGlzcGxheWluZyB0aGUgRGlhcnkKCk9uY2UgeW91IGhhdmUg Y3JlYXRlZCBhIGRpYXJ5IGZpbGUsIHlvdSBjYW4gdXNlIHRoZSBjYWxlbmRhciB0byB2aWV3IGl0 LgpZb3UgY2FuIGFsc28gdmlldyB0b2RheeKAmXMgZXZlbnRzIG91dHNpZGUgb2YgQ2FsZW5kYXIg bW9kZS4gIEluIHRoZQpmb2xsb3dpbmcsIGtleSBiaW5kaW5ncyByZWZlciB0byB0aGUgQ2FsZW5k YXIgYnVmZmVyLgoK4oCYbW91c2UtMyBEaWFyeeKAmQrigJhk4oCZCiAgICAgRGlzcGxheSBhbGwg ZGlhcnkgZW50cmllcyBmb3IgdGhlIHNlbGVjdGVkIGRhdGUKICAgICAo4oCYZGlhcnktdmlldy1l bnRyaWVz4oCZKS4K4oCYc+KAmQogICAgIERpc3BsYXkgdGhlIGVudGlyZSBkaWFyeSBmaWxlICji gJhkaWFyeS1zaG93LWFsbC1lbnRyaWVz4oCZKS4K4oCYbeKAmQogICAgIE1hcmsgYWxsIHZpc2li bGUgZGF0ZXMgdGhhdCBoYXZlIGRpYXJ5IGVudHJpZXMKICAgICAo4oCYZGlhcnktbWFyay1lbnRy aWVz4oCZKS4K4oCYdeKAmQogICAgIFVubWFyayB0aGUgY2FsZW5kYXIgd2luZG93ICjigJhjYWxl bmRhci11bm1hcmvigJkpLgrigJhNLXggZGlhcnktcHJpbnQtZW50cmllc+KAmQogICAgIFByaW50 IGhhcmQgY29weSBvZiB0aGUgZGlhcnkgZGlzcGxheSBhcyBpdCBhcHBlYXJzLgrigJhNLXggZGlh cnnigJkKICAgICBEaXNwbGF5IGFsbCBkaWFyeSBlbnRyaWVzIGZvciB0b2RheeKAmXMgZGF0ZS4K 4oCYTS14IGRpYXJ5LW1haWwtZW50cmllc+KAmQogICAgIE1haWwgeW91cnNlbGYgZW1haWwgcmVt aW5kZXJzIGFib3V0IHVwY29taW5nIGRpYXJ5IGVudHJpZXMuCgogICBEaXNwbGF5aW5nIHRoZSBk aWFyeSBlbnRyaWVzIHdpdGgg4oCYZOKAmSBzaG93cyBpbiBhIHNlcGFyYXRlIGJ1ZmZlciB0aGUK ZGlhcnkgZW50cmllcyBmb3IgdGhlIHNlbGVjdGVkIGRhdGUgaW4gdGhlIGNhbGVuZGFyLiAgVGhl IG1vZGUgbGluZSBvZgp0aGUgbmV3IGJ1ZmZlciBzaG93cyB0aGUgZGF0ZSBvZiB0aGUgZGlhcnkg ZW50cmllcy4gIEhvbGlkYXlzIGFyZSBzaG93bgplaXRoZXIgaW4gdGhlIGJ1ZmZlciBvciBpbiB0 aGUgbW9kZSBsaW5lLCBkZXBlbmRpbmcgb24gdGhlIGRpc3BsYXkKbWV0aG9kIHlvdSBjaG9vc2Ug KCpub3RlIERpYXJ5IERpc3BsYXk6OikuICBJZiB5b3Ugc3BlY2lmeSBhIG51bWVyaWMKYXJndW1l bnQgd2l0aCDigJhk4oCZLCBpdCBzaG93cyBhbGwgdGhlIGRpYXJ5IGVudHJpZXMgZm9yIHRoYXQg bWFueQpzdWNjZXNzaXZlIGRheXMuICBUaHVzLCDigJgyIGTigJkgZGlzcGxheXMgYWxsIHRoZSBl bnRyaWVzIGZvciB0aGUgc2VsZWN0ZWQKZGF0ZSBhbmQgZm9yIHRoZSBmb2xsb3dpbmcgZGF5LgoK ICAgQW5vdGhlciB3YXkgdG8gZGlzcGxheSB0aGUgZGlhcnkgZW50cmllcyBmb3IgYSBkYXRlIGlz IHRvIGNsaWNrCuKAmG1vdXNlLTPigJkgb24gdGhlIGRhdGUsIGFuZCB0aGVuIGNob29zZSDigJhE aWFyeSBlbnRyaWVz4oCZIGZyb20gdGhlIG1lbnUKdGhhdCBhcHBlYXJzLiAgSWYgdGhlIHZhcmlh YmxlIOKAmGNhbGVuZGFyLXZpZXctZGlhcnktaW5pdGlhbGx5LWZsYWfigJkgaXMKbm9uLeKAmG5p bOKAmSwgY3JlYXRpbmcgdGhlIGNhbGVuZGFyIGxpc3RzIHRoZSBkaWFyeSBlbnRyaWVzIGZvciB0 aGUgY3VycmVudApkYXRlIChwcm92aWRlZCB0aGUgY3VycmVudCBkYXRlIGlzIHZpc2libGUpLgoK ICAgVG8gZ2V0IGEgYnJvYWRlciB2aWV3IG9mIHdoaWNoIGRheXMgYXJlIG1lbnRpb25lZCBpbiB0 aGUgZGlhcnksIHVzZQp0aGUg4oCYbeKAmSBjb21tYW5kLiAgVGhpcyBtYXJrcyB0aGUgZGF0ZXMg dGhhdCBoYXZlIGRpYXJ5IGVudHJpZXMgaW4gYQpkaWZmZXJlbnQgZmFjZS4gICpOb3RlIGRpYXJ5 LWVudHJ5LW1hcmtlcjogQ2FsZW5kYXIgQ3VzdG9taXppbmcuCgogICBUaGlzIGNvbW1hbmQgYXBw bGllcyBib3RoIHRvIHRoZSBtb250aHMgdGhhdCBhcmUgY3VycmVudGx5IHZpc2libGUKYW5kIHRv IHRob3NlIHRoYXQgc3Vic2VxdWVudGx5IGJlY29tZSB2aXNpYmxlIGFmdGVyIHNjcm9sbGluZy4g IFRvIHR1cm4KbWFya2luZyBvZmYgYW5kIGVyYXNlIHRoZSBjdXJyZW50IG1hcmtzLCB0eXBlIOKA mHXigJksIHdoaWNoIGFsc28gdHVybnMgb2ZmCmhvbGlkYXkgbWFya3MgKCpub3RlIEhvbGlkYXlz OjopLiAgSWYgdGhlIHZhcmlhYmxlCuKAmGNhbGVuZGFyLW1hcmstZGlhcnktZW50cmllcy1mbGFn 4oCZIGlzIG5vbi3igJhuaWzigJksIGNyZWF0aW5nIG9yIHVwZGF0aW5nCnRoZSBjYWxlbmRhciBt YXJrcyBkaWFyeSBkYXRlcyBhdXRvbWF0aWNhbGx5LgoKICAgVG8gcHJldmVudCBhbiBpbmRpdmlk dWFsIGRpYXJ5IGVudHJ5IGZyb20gYmVpbmcgbWFya2VkIGluIHRoZQpjYWxlbmRhciwgaW5zZXJ0 IHRoZSBzdHJpbmcgdGhhdCDigJhkaWFyeS1ub25tYXJraW5nLXN5bWJvbOKAmSBzcGVjaWZpZXMK KHRoZSBkZWZhdWx0IGlzIOKAmCbigJkpIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGVudHJ5LCBi ZWZvcmUgdGhlIGRhdGUuClRoaXMgaGFzIG5vIGVmZmVjdCBvbiBkaXNwbGF5IG9mIHRoZSBlbnRy eSBpbiB0aGUgZGlhcnkgYnVmZmVyOyBpdCBvbmx5CmFmZmVjdHMgbWFya3Mgb24gZGF0ZXMgaW4g dGhlIGNhbGVuZGFyLiAgTm9ubWFya2luZyBlbnRyaWVzIGNhbiBiZQp1c2VmdWwgZm9yIGdlbmVy aWMgZW50cmllcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBtYXJrIG1hbnkgZGlmZmVyZW50CmRhdGVz LgoKICAgVG8gc2VlIHRoZSBmdWxsIGRpYXJ5IGZpbGUsIHJhdGhlciB0aGFuIGp1c3Qgc29tZSBv ZiB0aGUgZW50cmllcywgdXNlCnRoZSDigJhz4oCZIGNvbW1hbmQuCgogICBUaGUgY29tbWFuZCDi gJhNLXggZGlhcnnigJkgZGlzcGxheXMgdGhlIGRpYXJ5IGVudHJpZXMgZm9yIHRoZSBjdXJyZW50 CmRhdGUsIGluZGVwZW5kZW50bHkgb2YgdGhlIGNhbGVuZGFyIGRpc3BsYXksIGFuZCBvcHRpb25h bGx5IGZvciB0aGUgbmV4dApmZXcgZGF5cyBhcyB3ZWxsOyB0aGUgdmFyaWFibGUg4oCYZGlhcnkt bnVtYmVyLW9mLWVudHJpZXPigJkgc3BlY2lmaWVzIGhvdwptYW55IGRheXMgdG8gaW5jbHVkZS4g ICpOb3RlIGRpYXJ5LW51bWJlci1vZi1lbnRyaWVzOiBEaWFyeSBDdXN0b21pemluZy4KCiAgIElm IHlvdSBwdXQg4oCYKGRpYXJ5KeKAmSBpbiB5b3VyIOKAmC5lbWFjc+KAmSBmaWxlLCB0aGlzIGF1 dG9tYXRpY2FsbHkKZGlzcGxheXMgYSB3aW5kb3cgd2l0aCB0aGUgZGF54oCZcyBkaWFyeSBlbnRy aWVzIHdoZW4geW91IHN0YXJ0IEVtYWNzLgoKICAgU29tZSBwZW9wbGUgbGlrZSB0byByZWNlaXZl IGVtYWlsIG5vdGlmaWNhdGlvbnMgb2YgZXZlbnRzIGluIHRoZWlyCmRpYXJ5LiAgVG8gc2VuZCBz dWNoIG1haWwgdG8geW91cnNlbGYsIHVzZSB0aGUgY29tbWFuZCDigJhNLXgKZGlhcnktbWFpbC1l bnRyaWVz4oCZLiAgQSBwcmVmaXggYXJndW1lbnQgc3BlY2lmaWVzIGhvdyBtYW55IGRheXMKKHN0 YXJ0aW5nIHdpdGggdG9kYXkpIHRvIGNoZWNrOyBvdGhlcndpc2UsIHRoZSB2YXJpYWJsZQrigJhk aWFyeS1tYWlsLWRheXPigJkgc2F5cyBob3cgbWFueSBkYXlzLgoKCioqKiAzMS4xMC4zIERhdGUg Rm9ybWF0cwoKSGVyZSBhcmUgc29tZSBzYW1wbGUgZGlhcnkgZW50cmllcywgaWxsdXN0cmF0aW5n IGRpZmZlcmVudCB3YXlzIG9mCmZvcm1hdHRpbmcgYSBkYXRlLiAgVGhlIGV4YW1wbGVzIGFsbCBz aG93IGRhdGVzIGluIEFtZXJpY2FuIG9yZGVyCihtb250aCwgZGF5LCB5ZWFyKSwgYnV0IENhbGVu ZGFyIG1vZGUgc3VwcG9ydHMgRXVyb3BlYW4gb3JkZXIgKGRheSwKbW9udGgsIHllYXIpIGFuZCBJ U08gb3JkZXIgKHllYXIsIG1vbnRoLCBkYXkpIGFzIG9wdGlvbnMuCgogICAgIDQvMjAvMTIgIFN3 aXRjaC1vdmVyIHRvIG5ldyB0YWJ1bGF0aW9uIHN5c3RlbQogICAgIGFwci4gMjUgIFN0YXJ0IHRh YnVsYXRpbmcgYW5udWFsIHJlc3VsdHMKICAgICA0LzMwICBSZXN1bHRzIGZvciBBcHJpbCBhcmUg ZHVlCiAgICAgKi8yNSAgTW9udGhseSBjeWNsZSBmaW5pc2hlcwogICAgIEZyaWRheSAgRG9uJ3Qg bGVhdmUgd2l0aG91dCBiYWNraW5nIHVwIGZpbGVzCgogICBUaGUgZmlyc3QgZW50cnkgYXBwZWFy cyBvbmx5IG9uY2UsIG9uIEFwcmlsIDIwLCAyMDEyLiAgVGhlIHNlY29uZCBhbmQKdGhpcmQgYXBw ZWFyIGV2ZXJ5IHllYXIgb24gdGhlIHNwZWNpZmllZCBkYXRlcywgYW5kIHRoZSBmb3VydGggdXNl cyBhCndpbGRjYXJkIChhc3RlcmlzaykgZm9yIHRoZSBtb250aCwgc28gaXQgYXBwZWFycyBvbiB0 aGUgMjV0aCBvZiBldmVyeQptb250aC4gIFRoZSBmaW5hbCBlbnRyeSBhcHBlYXJzIGV2ZXJ5IHdl ZWsgb24gRnJpZGF5LgoKICAgWW91IGNhbiB1c2UganVzdCBudW1iZXJzIHRvIGV4cHJlc3MgYSBk YXRlLCBhcyBpbiDigJhNT05USC9EQVnigJkgb3IK4oCYTU9OVEgvREFZL1lFQVLigJkuICBUaGlz IG11c3QgYmUgZm9sbG93ZWQgYnkgYSBub25kaWdpdC4gIEluIHRoZSBkYXRlCml0c2VsZiwgTU9O VEggYW5kIERBWSBhcmUgbnVtYmVycyBvZiBvbmUgb3IgdHdvIGRpZ2l0cy4gIFRoZSBvcHRpb25h bApZRUFSIGlzIGFsc28gYSBudW1iZXIsIGFuZCBtYXkgYmUgYWJicmV2aWF0ZWQgdG8gdGhlIGxh c3QgdHdvIGRpZ2l0czsKdGhhdCBpcywgeW91IGNhbiB1c2Ug4oCYMTEvMTIvMjAxMuKAmSBvciDi gJgxMS8xMi8xMuKAmS4KCiAgIERhdGVzIGNhbiBhbHNvIGhhdmUgdGhlIGZvcm0g4oCYTU9OVEhO QU1FIERBWeKAmSBvciDigJhNT05USE5BTUUgREFZLApZRUFS4oCZLCB3aGVyZSB0aGUgbW9udGji gJlzIG5hbWUgY2FuIGJlIHNwZWxsZWQgaW4gZnVsbCBvciBhYmJyZXZpYXRlZAood2l0aCBvciB3 aXRob3V0IGEgcGVyaW9kKS4gIFRoZSBwcmVmZXJyZWQgYWJicmV2aWF0aW9ucyBmb3IgbW9udGgg YW5kCmRheSBuYW1lcyBjYW4gYmUgc2V0IHVzaW5nIHRoZSB2YXJpYWJsZXMg4oCYY2FsZW5kYXIt YWJicmV2LWxlbmd0aOKAmSwK4oCYY2FsZW5kYXItbW9udGgtYWJicmV2LWFycmF54oCZLCBhbmQg 4oCYY2FsZW5kYXItZGF5LWFiYnJldi1hcnJheeKAmS4gIFRoZQpkZWZhdWx0IGlzIHRvIHVzZSB0 aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiBhIG5hbWUgYXMgaXRzIGFiYnJldmlhdGlvbi4KQ2Fz ZSBpcyBub3Qgc2lnbmlmaWNhbnQuCgogICBBIGRhdGUgbWF5IGJlICJnZW5lcmljIjsgdGhhdCBp cywgcGFydGlhbGx5IHVuc3BlY2lmaWVkLiAgVGhlbiB0aGUKZW50cnkgYXBwbGllcyB0byBhbGwg ZGF0ZXMgdGhhdCBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbi4gIElmIHRoZSBkYXRlCmRvZXMgbm90 IGNvbnRhaW4gYSB5ZWFyLCBpdCBpcyBnZW5lcmljIGFuZCBhcHBsaWVzIHRvIGFueSB5ZWFyLgpB bHRlcm5hdGl2ZWx5LCBNT05USCwgREFZLCBvciBZRUFSIGNhbiBiZSDigJgq4oCZOyB0aGlzIG1h dGNoZXMgYW55IG1vbnRoLApkYXksIG9yIHllYXIsIHJlc3BlY3RpdmVseS4gIFRodXMsIGEgZGlh cnkgZW50cnkg4oCYMy8qLyrigJkgbWF0Y2hlcyBhbnkgZGF5CmluIE1hcmNoIG9mIGFueSB5ZWFy OyBzbyBkb2VzIOKAmG1hcmNoICrigJkuCgogICBJZiB5b3UgcHJlZmVyIHRoZSBFdXJvcGVhbiBz dHlsZSBvZiB3cml0aW5nIGRhdGVzIChpbiB3aGljaCB0aGUgZGF5CmNvbWVzIGJlZm9yZSB0aGUg bW9udGgpLCBvciB0aGUgSVNPIHN0eWxlIChpbiB3aGljaCB0aGUgb3JkZXIgaXMgeWVhciwKbW9u dGgsIGRheSksIHR5cGUg4oCYTS14IGNhbGVuZGFyLXNldC1kYXRlLXN0eWxl4oCZIHdoaWxlIGlu IHRoZSBjYWxlbmRhciwKb3IgY3VzdG9taXplIHRoZSB2YXJpYWJsZSDigJhjYWxlbmRhci1kYXRl LXN0eWxl4oCZLiAgVGhpcyBhZmZlY3RzIGhvdyBkaWFyeQpkYXRlcyBhcmUgaW50ZXJwcmV0ZWQs IGRhdGUgZGlzcGxheSwgYW5kIHRoZSBvcmRlciBpbiB3aGljaCBzb21lCmNvbW1hbmRzIGV4cGVj dCB0aGVpciBhcmd1bWVudHMgdG8gYmUgZ2l2ZW4uCgogICBZb3UgY2FuIHVzZSB0aGUgbmFtZSBv ZiBhIGRheSBvZiB0aGUgd2VlayBhcyBhIGdlbmVyaWMgZGF0ZSB3aGljaAphcHBsaWVzIHRvIGFu eSBkYXRlIGZhbGxpbmcgb24gdGhhdCBkYXkgb2YgdGhlIHdlZWsuICBZb3UgY2FuIGFiYnJldmlh dGUKdGhlIGRheSBvZiB0aGUgd2VlayBhcyBkZXNjcmliZWQgYWJvdmUsIG9yIHNwZWxsIGl0IGlu IGZ1bGw7IGNhc2UgaXMgbm90CnNpZ25pZmljYW50LgoKCioqKiAzMS4xMC40IENvbW1hbmRzIHRv IEFkZCB0byB0aGUgRGlhcnkKCldoaWxlIGluIHRoZSBjYWxlbmRhciwgdGhlcmUgYXJlIHNldmVy YWwgY29tbWFuZHMgdG8gY3JlYXRlIGRpYXJ5CmVudHJpZXMuICBUaGUgYmFzaWMgY29tbWFuZHMg YXJlIGxpc3RlZCBoZXJlOyBtb3JlIHNvcGhpc3RpY2F0ZWQKY29tbWFuZHMgYXJlIGluIHRoZSBu ZXh0IHNlY3Rpb24gKCpub3RlIFNwZWNpYWwgRGlhcnkgRW50cmllczo6KS4KRW50cmllcyBjYW4g YWxzbyBiZSBiYXNlZCBvbiBub24tR3JlZ29yaWFuIGNhbGVuZGFycy4gICpOb3RlCk5vbi1HcmVn b3JpYW4gRGlhcnk6Oi4KCuKAmGkgZOKAmQogICAgIEFkZCBhIGRpYXJ5IGVudHJ5IGZvciB0aGUg c2VsZWN0ZWQgZGF0ZSAo4oCYZGlhcnktaW5zZXJ0LWVudHJ54oCZKS4K4oCYaSB34oCZCiAgICAg QWRkIGEgZGlhcnkgZW50cnkgZm9yIHRoZSBzZWxlY3RlZCBkYXkgb2YgdGhlIHdlZWsKICAgICAo 4oCYZGlhcnktaW5zZXJ0LXdlZWtseS1lbnRyeeKAmSkuCuKAmGkgbeKAmQogICAgIEFkZCBhIGRp YXJ5IGVudHJ5IGZvciB0aGUgc2VsZWN0ZWQgZGF5IG9mIHRoZSBtb250aAogICAgICjigJhkaWFy eS1pbnNlcnQtbW9udGhseS1lbnRyeeKAmSkuCuKAmGkgeeKAmQogICAgIEFkZCBhIGRpYXJ5IGVu dHJ5IGZvciB0aGUgc2VsZWN0ZWQgZGF5IG9mIHRoZSB5ZWFyCiAgICAgKOKAmGRpYXJ5LWluc2Vy dC15ZWFybHktZW50cnnigJkpLgoKICAgWW91IGNhbiBtYWtlIGEgZGlhcnkgZW50cnkgZm9yIGEg c3BlY2lmaWMgZGF0ZSBieSBzZWxlY3RpbmcgdGhhdCBkYXRlCmluIHRoZSBjYWxlbmRhciB3aW5k b3cgYW5kIHR5cGluZyB0aGUg4oCYaSBk4oCZIGNvbW1hbmQuICBUaGlzIGNvbW1hbmQKZGlzcGxh eXMgdGhlIGVuZCBvZiB5b3VyIGRpYXJ5IGZpbGUgaW4gYW5vdGhlciB3aW5kb3cgYW5kIGluc2Vy dHMgdGhlCmRhdGU7IHlvdSBjYW4gdGhlbiB0eXBlIHRoZSByZXN0IG9mIHRoZSBkaWFyeSBlbnRy eS4KCiAgIElmIHlvdSB3YW50IHRvIG1ha2UgYSBkaWFyeSBlbnRyeSB0aGF0IGFwcGxpZXMgdG8g YSBzcGVjaWZpYyBkYXkgb2YKdGhlIHdlZWssIHNlbGVjdCB0aGF0IGRheSBvZiB0aGUgd2VlayAo YW55IG9jY3VycmVuY2Ugd2lsbCBkbykgYW5kIHR5cGUK4oCYaSB34oCZLiAgVGhpcyBpbnNlcnRz IHRoZSBkYXktb2Ytd2VlayBhcyBhIGdlbmVyaWMgZGF0ZTsgeW91IGNhbiB0aGVuCnR5cGUgdGhl IHJlc3Qgb2YgdGhlIGRpYXJ5IGVudHJ5LiAgWW91IGNhbiBtYWtlIGEgbW9udGhseSBkaWFyeSBl bnRyeSBpbgp0aGUgc2FtZSBmYXNoaW9uOiBzZWxlY3QgdGhlIGRheSBvZiB0aGUgbW9udGgsIHVz ZSB0aGUg4oCYaSBt4oCZIGNvbW1hbmQsCmFuZCB0eXBlIHRoZSByZXN0IG9mIHRoZSBlbnRyeS4g IFNpbWlsYXJseSwgeW91IGNhbiBpbnNlcnQgYSB5ZWFybHkKZGlhcnkgZW50cnkgd2l0aCB0aGUg 4oCYaSB54oCZIGNvbW1hbmQuCgogICBBbGwgb2YgdGhlIGFib3ZlIGNvbW1hbmRzIG1ha2UgbWFy a2luZyBkaWFyeSBlbnRyaWVzIGJ5IGRlZmF1bHQuICBUbwptYWtlIGEgbm9ubWFya2luZyBkaWFy eSBlbnRyeSwgZ2l2ZSBhIHByZWZpeCBhcmd1bWVudCB0byB0aGUgY29tbWFuZC4KRm9yIGV4YW1w bGUsIOKAmEMtdSBpIHfigJkgbWFrZXMgYSBub25tYXJraW5nIHdlZWtseSBkaWFyeSBlbnRyeS4K CiAgIFdoZW4geW91IG1vZGlmeSB0aGUgZGlhcnkgZmlsZSwgYmUgc3VyZSB0byBzYXZlIHRoZSBm aWxlIGJlZm9yZQpleGl0aW5nIEVtYWNzLiAgU2F2aW5nIHRoZSBkaWFyeSBmaWxlIGFmdGVyIHVz aW5nIGFueSBvZiB0aGUgYWJvdmUKaW5zZXJ0aW9uIGNvbW1hbmRzIHdpbGwgYXV0b21hdGljYWxs eSB1cGRhdGUgdGhlIGRpYXJ5IG1hcmtzIGluIHRoZQpjYWxlbmRhciB3aW5kb3csIGlmIGFwcHJv cHJpYXRlLiAgWW91IGNhbiB1c2UgdGhlIGNvbW1hbmQK4oCYY2FsZW5kYXItcmVkcmF34oCZIHRv IGZvcmNlIGFuIHVwZGF0ZSBhdCBhbnkgdGltZS4KCgoqKiogMzEuMTAuNSBTcGVjaWFsIERpYXJ5 IEVudHJpZXMKCkluIGFkZGl0aW9uIHRvIGVudHJpZXMgYmFzZWQgb24gY2FsZW5kYXIgZGF0ZXMs IHRoZSBkaWFyeSBmaWxlIGNhbgpjb250YWluICJzZXhwIGVudHJpZXMiIGZvciByZWd1bGFyIGV2 ZW50cyBzdWNoIGFzIGFubml2ZXJzYXJpZXMuICBUaGVzZQplbnRyaWVzIGFyZSBiYXNlZCBvbiBM aXNwIGV4cHJlc3Npb25zIChzZXhwcykgdGhhdCBFbWFjcyBldmFsdWF0ZXMgYXMgaXQKc2NhbnMg dGhlIGRpYXJ5IGZpbGUuICBJbnN0ZWFkIG9mIGEgZGF0ZSwgYSBzZXhwIGVudHJ5IGNvbnRhaW5z IOKAmCUl4oCZCmZvbGxvd2VkIGJ5IGEgTGlzcCBleHByZXNzaW9uIHdoaWNoIG11c3QgYmVnaW4g YW5kIGVuZCB3aXRoIHBhcmVudGhlc2VzLgpUaGUgTGlzcCBleHByZXNzaW9uIGRldGVybWluZXMg d2hpY2ggZGF0ZXMgdGhlIGVudHJ5IGFwcGxpZXMgdG8uCgogICBDYWxlbmRhciBtb2RlIHByb3Zp ZGVzIGNvbW1hbmRzIHRvIGluc2VydCBjZXJ0YWluIGNvbW1vbmx5IHVzZWQgc2V4cAplbnRyaWVz OgoK4oCYaSBh4oCZCiAgICAgQWRkIGFuIGFubml2ZXJzYXJ5IGRpYXJ5IGVudHJ5IGZvciB0aGUg c2VsZWN0ZWQgZGF0ZQogICAgICjigJhkaWFyeS1pbnNlcnQtYW5uaXZlcnNhcnktZW50cnnigJkp LgrigJhpIGLigJkKICAgICBBZGQgYSBibG9jayBkaWFyeSBlbnRyeSBmb3IgdGhlIGN1cnJlbnQg cmVnaW9uCiAgICAgKOKAmGRpYXJ5LWluc2VydC1ibG9jay1lbnRyeeKAmSkuCuKAmGkgY+KAmQog ICAgIEFkZCBhIGN5Y2xpYyBkaWFyeSBlbnRyeSBzdGFydGluZyBhdCB0aGUgZGF0ZQogICAgICji gJhkaWFyeS1pbnNlcnQtY3ljbGljLWVudHJ54oCZKS4KCiAgIElmIHlvdSB3YW50IHRvIG1ha2Ug YSBkaWFyeSBlbnRyeSB0aGF0IGFwcGxpZXMgdG8gdGhlIGFubml2ZXJzYXJ5IG9mCmEgc3BlY2lm aWMgZGF0ZSwgbW92ZSBwb2ludCB0byB0aGF0IGRhdGUgYW5kIHVzZSB0aGUg4oCYaSBh4oCZIGNv bW1hbmQuClRoaXMgZGlzcGxheXMgdGhlIGVuZCBvZiB5b3VyIGRpYXJ5IGZpbGUgaW4gYW5vdGhl ciB3aW5kb3cgYW5kIGluc2VydHMKdGhlIGFubml2ZXJzYXJ5IGRlc2NyaXB0aW9uOyB5b3UgY2Fu IHRoZW4gdHlwZSB0aGUgcmVzdCBvZiB0aGUgZGlhcnkKZW50cnkuICBUaGUgZW50cnkgbG9va3Mg bGlrZSB0aGlzOgoKICAgICAlJShkaWFyeS1hbm5pdmVyc2FyeSAxMCAzMSAxOTg4KSBBcnRodXIn cyBiaXJ0aGRheQoKVGhpcyBlbnRyeSBhcHBsaWVzIHRvIE9jdG9iZXIgMzEgaW4gYW55IHllYXIg YWZ0ZXIgMTk4ODsg4oCYMTAgMzEgMTk4OOKAmQpzcGVjaWZpZXMgdGhlIGRhdGUuICAoSWYgeW91 IGFyZSB1c2luZyB0aGUgRXVyb3BlYW4gb3IgSVNPIGNhbGVuZGFyCnN0eWxlLCB0aGUgaW5wdXQg b3JkZXIgb2YgbW9udGgsIGRheSBhbmQgeWVhciBpcyBkaWZmZXJlbnQuKSAgVGhlIHJlYXNvbgp0 aGlzIGV4cHJlc3Npb24gcmVxdWlyZXMgYSBiZWdpbm5pbmcgeWVhciBpcyB0aGF0IGFkdmFuY2Vk IGRpYXJ5CmZ1bmN0aW9ucyBjYW4gdXNlIGl0IHRvIGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGVs YXBzZWQgeWVhcnMuCgogICBBICJibG9jayIgZGlhcnkgZW50cnkgYXBwbGllcyB0byBhIHNwZWNp ZmllZCByYW5nZSBvZiBjb25zZWN1dGl2ZQpkYXRlcy4gIEhlcmUgaXMgYSBibG9jayBkaWFyeSBl bnRyeSB0aGF0IGFwcGxpZXMgdG8gYWxsIGRhdGVzIGZyb20gSnVuZQoyNCwgMjAxMiB0aHJvdWdo IEp1bHkgMTAsIDIwMTI6CgogICAgICUlKGRpYXJ5LWJsb2NrIDYgMjQgMjAxMiA3IDEwIDIwMTIp IFZhY2F0aW9uCgpUaGUg4oCYNiAyNCAyMDEy4oCZIGluZGljYXRlcyB0aGUgc3RhcnRpbmcgZGF0 ZSBhbmQgdGhlIOKAmDcgMTAgMjAxMuKAmQppbmRpY2F0ZXMgdGhlIHN0b3BwaW5nIGRhdGUuICAo QWdhaW4sIGlmIHlvdSBhcmUgdXNpbmcgdGhlIEV1cm9wZWFuIG9yCklTTyBjYWxlbmRhciBzdHls ZSwgdGhlIGlucHV0IG9yZGVyIG9mIG1vbnRoLCBkYXkgYW5kIHllYXIgaXMKZGlmZmVyZW50LikK CiAgIFRvIGluc2VydCBhIGJsb2NrIGVudHJ5LCBwbGFjZSBwb2ludCBhbmQgdGhlIG1hcmsgb24g dGhlIHR3byBkYXRlcwp0aGF0IGJlZ2luIGFuZCBlbmQgdGhlIHJhbmdlLCBhbmQgdHlwZSDigJhp IGLigJkuICBUaGlzIGNvbW1hbmQgZGlzcGxheXMgdGhlCmVuZCBvZiB5b3VyIGRpYXJ5IGZpbGUg aW4gYW5vdGhlciB3aW5kb3cgYW5kIGluc2VydHMgdGhlIGJsb2NrCmRlc2NyaXB0aW9uOyB5b3Ug Y2FuIHRoZW4gdHlwZSB0aGUgZGlhcnkgZW50cnkuCgogICAiQ3ljbGljIiBkaWFyeSBlbnRyaWVz IHJlcGVhdCBhZnRlciBhIGZpeGVkIGludGVydmFsIG9mIGRheXMuICBUbwpjcmVhdGUgb25lLCBz ZWxlY3QgdGhlIHN0YXJ0aW5nIGRhdGUgYW5kIHVzZSB0aGUg4oCYaSBj4oCZIGNvbW1hbmQuICBU aGUKY29tbWFuZCBwcm9tcHRzIGZvciB0aGUgbGVuZ3RoIG9mIGludGVydmFsLCB0aGVuIGluc2Vy dHMgdGhlIGVudHJ5LAp3aGljaCBsb29rcyBsaWtlIHRoaXM6CgogICAgICUlKGRpYXJ5LWN5Y2xp YyA1MCAzIDEgMjAxMikgUmVuZXcgbWVkaWNhdGlvbgoKVGhpcyBlbnRyeSBhcHBsaWVzIHRvIE1h cmNoIDEsIDIwMTIgYW5kIGV2ZXJ5IDUwdGggZGF5IGZvbGxvd2luZzsg4oCYMyAxCjIwMTLigJkg c3BlY2lmaWVzIHRoZSBzdGFydGluZyBkYXRlLiAgKElmIHlvdSBhcmUgdXNpbmcgdGhlIEV1cm9w ZWFuIG9yCklTTyBjYWxlbmRhciBzdHlsZSwgdGhlIGlucHV0IG9yZGVyIG9mIG1vbnRoLCBkYXkg YW5kIHllYXIgaXMKZGlmZmVyZW50LikKCiAgIEFsbCB0aHJlZSBvZiB0aGVzZSBjb21tYW5kcyBt YWtlIG1hcmtpbmcgZGlhcnkgZW50cmllcy4gIFRvIGluc2VydCBhCm5vbm1hcmtpbmcgZW50cnks IGdpdmUgYSBwcmVmaXggYXJndW1lbnQgdG8gdGhlIGNvbW1hbmQuICBGb3IgZXhhbXBsZSwK4oCY Qy11IGkgYeKAmSBtYWtlcyBhIG5vbm1hcmtpbmcgYW5uaXZlcnNhcnkgZGlhcnkgZW50cnkuCgog ICBNYXJraW5nIHNleHAgZGlhcnkgZW50cmllcyBpbiB0aGUgY2FsZW5kYXIgY2FuIGJlIHRpbWUt Y29uc3VtaW5nLApzaW5jZSBldmVyeSBkYXRlIHZpc2libGUgaW4gdGhlIGNhbGVuZGFyIHdpbmRv dyBtdXN0IGJlIGluZGl2aWR1YWxseQpjaGVja2VkLiAgU28gaXTigJlzIGEgZ29vZCBpZGVhIHRv IG1ha2Ugc2V4cCBkaWFyeSBlbnRyaWVzIG5vbm1hcmtpbmcKKHdpdGgg4oCYJuKAmSkgd2hlbiBw b3NzaWJsZS4KCiAgIEFub3RoZXIgc29waGlzdGljYXRlZCBraW5kIG9mIHNleHAgZW50cnksIGEg ImZsb2F0aW5nIiBkaWFyeSBlbnRyeSwKc3BlY2lmaWVzIGEgcmVndWxhcmx5IG9jY3VycmluZyBl dmVudCBieSBvZmZzZXRzIHNwZWNpZmllZCBpbiBkYXlzLAp3ZWVrcywgYW5kIG1vbnRocy4gIEl0 IGlzIGNvbXBhcmFibGUgdG8gYSBjcm9udGFiIGVudHJ5IGludGVycHJldGVkIGJ5CnRoZSDigJhj cm9u4oCZIHV0aWxpdHkuICBIZXJlIGlzIGEgbm9ubWFya2luZywgZmxvYXRpbmcgZGlhcnkgZW50 cnkgdGhhdAphcHBsaWVzIHRvIHRoZSBmb3VydGggVGh1cnNkYXkgaW4gTm92ZW1iZXI6CgogICAg ICYlJShkaWFyeS1mbG9hdCAxMSA0IDQpIEFtZXJpY2FuIFRoYW5rc2dpdmluZwoKVGhlIDExIHNw ZWNpZmllcyBOb3ZlbWJlciAodGhlIGVsZXZlbnRoIG1vbnRoKSwgdGhlIDQgc3BlY2lmaWVzIFRo dXJzZGF5Cih0aGUgZm91cnRoIGRheSBvZiB0aGUgd2Vlaywgd2hlcmUgU3VuZGF5IGlzIG51bWJl cmVkIHplcm8pLCBhbmQgdGhlCnNlY29uZCA0IHNwZWNpZmllcyB0aGUgZm91cnRoIFRodXJzZGF5 ICgxIHdvdWxkIG1lYW4g4oCcZmlyc3TigJ0sIDIgd291bGQKbWVhbiDigJxzZWNvbmTigJ0sIOKI kjIgd291bGQgbWVhbiDigJxzZWNvbmQtdG8tbGFzdOKAnSwgYW5kIHNvIG9uKS4gIFRoZSBtb250 aApjYW4gYmUgYSBzaW5nbGUgbW9udGggb3IgYSBsaXN0IG9mIG1vbnRocy4gIFRodXMgeW91IGNv dWxkIGNoYW5nZSB0aGUgMTEKYWJvdmUgdG8g4oCYJygxIDIgMynigJkgYW5kIGhhdmUgdGhlIGVu dHJ5IGFwcGx5IHRvIHRoZSBsYXN0IFRodXJzZGF5IG9mCkphbnVhcnksIEZlYnJ1YXJ5LCBhbmQg TWFyY2guICBJZiB0aGUgbW9udGggaXMg4oCYdOKAmSwgdGhlIGVudHJ5IGFwcGxpZXMgdG8KYWxs IG1vbnRocyBvZiB0aGUgeWVhci4KCiAgIEVhY2ggb2YgdGhlIHN0YW5kYXJkIHNleHAgZGlhcnkg ZW50cmllcyB0YWtlcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIKc3BlY2lmeWluZyB0aGUgbmFtZSBv ZiBhIGZhY2Ugb3IgYSBzaW5nbGUtY2hhcmFjdGVyIHN0cmluZyB0byB1c2Ugd2hlbgptYXJraW5n IHRoZSBlbnRyeSBpbiB0aGUgY2FsZW5kYXIuICBNb3N0IGdlbmVyYWxseSwgc2V4cCBkaWFyeSBl bnRyaWVzCmNhbiBwZXJmb3JtIGFyYml0cmFyeSBjb21wdXRhdGlvbnMgdG8gZGV0ZXJtaW5lIHdo ZW4gdGhleSBhcHBseS4gICpOb3RlClNleHAgRGlhcnkgRW50cmllczo6LgoKCioqKiAzMS4xMC42 IEFwcG9pbnRtZW50cwoKSWYgeW91IGhhdmUgYSBkaWFyeSBlbnRyeSBmb3IgYW4gYXBwb2ludG1l bnQsIGFuZCB0aGF0IGRpYXJ5IGVudHJ5CmJlZ2lucyB3aXRoIGEgcmVjb2duaXphYmxlIHRpbWUg b2YgZGF5LCBFbWFjcyBjYW4gd2FybiB5b3UgaW4gYWR2YW5jZQp0aGF0IGFuIGFwcG9pbnRtZW50 IGlzIHBlbmRpbmcuICBFbWFjcyBhbGVydHMgeW91IHRvIHRoZSBhcHBvaW50bWVudCBieQpkaXNw bGF5aW5nIGEgbWVzc2FnZSBpbiB5b3VyIGNob3NlbiBmb3JtYXQsIGFzIHNwZWNpZmllZCBieSB0 aGUgdmFyaWFibGUK4oCYYXBwdC1kaXNwbGF5LWZvcm1hdOKAmS4gIElmIHRoZSB2YWx1ZSBvZiDi gJhhcHB0LWF1ZGlibGXigJkgaXMgbm9uLeKAmG5pbOKAmSwgdGhlCndhcm5pbmcgaW5jbHVkZXMg YW4gYXVkaWJsZSByZW1pbmRlci4gIEluIGFkZGl0aW9uLCBpZgrigJhhcHB0LWRpc3BsYXktbW9k ZS1saW5l4oCZIGlzIG5vbi3igJhuaWzigJksIEVtYWNzIGRpc3BsYXlzIHRoZSBudW1iZXIgb2YK bWludXRlcyB0byB0aGUgYXBwb2ludG1lbnQgb24gdGhlIG1vZGUgbGluZS4KCiAgIElmIOKAmGFw cHQtZGlzcGxheS1mb3JtYXTigJkgaGFzIHRoZSB2YWx1ZSDigJh3aW5kb3figJksIHRoZW4gdGhl IHZhcmlhYmxlCuKAmGFwcHQtZGlzcGxheS1kdXJhdGlvbuKAmSBjb250cm9scyBob3cgbG9uZyB0 aGUgcmVtaW5kZXIgd2luZG93IGlzIHZpc2libGUKZm9yOyBhbmQgdGhlIHZhcmlhYmxlcyDigJhh cHB0LWRpc3Atd2luZG93LWZ1bmN0aW9u4oCZIGFuZArigJhhcHB0LWRlbGV0ZS13aW5kb3ctZnVu Y3Rpb27igJkgZ2l2ZSB0aGUgbmFtZXMgb2YgZnVuY3Rpb25zIHVzZWQgdG8gY3JlYXRlCmFuZCBk ZXN0cm95IHRoZSB3aW5kb3csIHJlc3BlY3RpdmVseS4KCiAgIFRvIGVuYWJsZSBhcHBvaW50bWVu dCBub3RpZmljYXRpb24sIHR5cGUg4oCYTS14IGFwcHQtYWN0aXZhdGXigJkuICBXaXRoIGEKcG9z aXRpdmUgYXJndW1lbnQsIGl0IGVuYWJsZXMgbm90aWZpY2F0aW9uOyB3aXRoIGEgbmVnYXRpdmUg YXJndW1lbnQsIGl0CmRpc2FibGVzIG5vdGlmaWNhdGlvbjsgd2l0aCBubyBhcmd1bWVudCwgaXQg dG9nZ2xlcy4gIEVuYWJsaW5nCm5vdGlmaWNhdGlvbiBhbHNvIHNldHMgdXAgYW4gYXBwb2ludG1l bnQgbGlzdCBmb3IgdG9kYXkgZnJvbSB0aGUgZGlhcnkKZmlsZSwgZ2l2aW5nIGFsbCBkaWFyeSBl bnRyaWVzIGZvdW5kIHdpdGggcmVjb2duaXphYmxlIHRpbWVzIG9mIGRheSwgYW5kCnJlbWluZHMg eW91IGp1c3QgYmVmb3JlIGVhY2ggb2YgdGhlbS4KCiAgIEZvciBleGFtcGxlLCBzdXBwb3NlIHRo ZSBkaWFyeSBmaWxlIGNvbnRhaW5zIHRoZXNlIGxpbmVzOgoKICAgICBNb25kYXkKICAgICAgIDk6 MzBhbSBDb2ZmZWUgYnJlYWsKICAgICAgMTI6MDBwbSBMdW5jaAoKVGhlbiBvbiBNb25kYXlzLCB5 b3Ugd2lsbCBiZSByZW1pbmRlZCBhdCBhcm91bmQgOToyMGFtIGFib3V0IHlvdXIgY29mZmVlCmJy ZWFrIGFuZCBhdCBhcm91bmQgMTE6NTBhbSBhYm91dCBsdW5jaC4gIFRoZSB2YXJpYWJsZQrigJhh cHB0LW1lc3NhZ2Utd2FybmluZy10aW1l4oCZIHNwZWNpZmllcyBob3cgbWFueSBtaW51dGVzIChk ZWZhdWx0IDEyKSBpbgphZHZhbmNlIHRvIHdhcm4geW91LiAgVGhpcyBpcyBhIGRlZmF1bHQgd2Fy bmluZyB0aW1lLiAgRWFjaCBhcHBvaW50bWVudApjYW4gc3BlY2lmeSBhIGRpZmZlcmVudCB3YXJu aW5nIHRpbWUgYnkgYWRkaW5nIGEgcGllY2UgbWF0Y2hpbmcK4oCYYXBwdC13YXJuaW5nLXRpbWUt cmVnZXhw4oCZIChzZWUgdGhhdCB2YXJpYWJsZeKAmXMgZG9jdW1lbnRhdGlvbiBmb3IKZGV0YWls cykuCgogICBZb3UgY2FuIHdyaXRlIHRpbWVzIGluIGFtL3BtIHN0eWxlICh3aXRoIOKAmDEyOjAw YW3igJkgc3RhbmRpbmcgZm9yCm1pZG5pZ2h0IGFuZCDigJgxMjowMHBt4oCZIHN0YW5kaW5nIGZv ciBub29uKSwgb3IgMjQtaG91ciBFdXJvcGVhbi9taWxpdGFyeQpzdHlsZS4gIFlvdSBuZWVkIG5v dCBiZSBjb25zaXN0ZW50OyB5b3VyIGRpYXJ5IGZpbGUgY2FuIGhhdmUgYSBtaXh0dXJlCm9mIHRo ZSB0d28gc3R5bGVzLiAgVGltZXMgbXVzdCBiZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGRpYXJ5IGVu dHJpZXMgaWYKdGhleSBhcmUgdG8gYmUgcmVjb2duaXplZC4KCiAgIEVtYWNzIHVwZGF0ZXMgdGhl IGFwcG9pbnRtZW50cyBsaXN0IGZyb20gdGhlIGRpYXJ5IGZpbGUgYXV0b21hdGljYWxseQpqdXN0 IGFmdGVyIG1pZG5pZ2h0LiAgWW91IGNhbiBmb3JjZSBhbiB1cGRhdGUgYXQgYW55IHRpbWUgYnkg cmUtZW5hYmxpbmcKYXBwb2ludG1lbnQgbm90aWZpY2F0aW9uLiAgQm90aCB0aGVzZSBhY3Rpb25z IGFsc28gZGlzcGxheSB0aGUgZGF54oCZcwpkaWFyeSBidWZmZXIsIHVubGVzcyB5b3Ugc2V0IOKA mGFwcHQtZGlzcGxheS1kaWFyeeKAmSB0byDigJhuaWzigJkuICBUaGUKYXBwb2ludG1lbnRzIGxp c3QgaXMgYWxzbyB1cGRhdGVkIHdoZW5ldmVyIHRoZSBkaWFyeSBmaWxlIChvciBhIGZpbGUgaXQK aW5jbHVkZXM7IHNlZSAqbm90ZSBGYW5jeSBEaWFyeSBEaXNwbGF5OjopIGlzIHNhdmVkLiAgSWYg eW91IHVzZSB0aGUgT3JnCk1vZGUgYW5kIGtlZXAgYXBwb2ludG1lbnRzIGluIHlvdXIgT3JnIGFn ZW5kYSBmaWxlcywgeW91IGNhbiBhZGQgdGhvc2UKYXBwb2ludG1lbnRzIHRvIHRoZSBsaXN0IHVz aW5nIHRoZSDigJhvcmctYWdlbmRhLXRvLWFwcHTigJkgY29tbWFuZC4gICpOb3RlCkFwcG9pbnRt ZW50IHJlbWluZGVyczogKG9yZylXZWVrbHkvZGFpbHkgYWdlbmRhLCBmb3IgbW9yZSBhYm91dCB0 aGF0CmNvbW1hbmQuCgogICBZb3UgY2FuIGFsc28gdXNlIHRoZSBhcHBvaW50bWVudCBub3RpZmlj YXRpb24gZmFjaWxpdHkgbGlrZSBhbiBhbGFybQpjbG9jay4gIFRoZSBjb21tYW5kIOKAmE0teCBh cHB0LWFkZOKAmSBhZGRzIGVudHJpZXMgdG8gdGhlIGFwcG9pbnRtZW50IGxpc3QKd2l0aG91dCBh ZmZlY3RpbmcgeW91ciBkaWFyeSBmaWxlLiAgWW91IGRlbGV0ZSBlbnRyaWVzIGZyb20gdGhlCmFw cG9pbnRtZW50IGxpc3Qgd2l0aCDigJhNLXggYXBwdC1kZWxldGXigJkuCgoKKioqIDMxLjEwLjcg SW1wb3J0aW5nIGFuZCBFeHBvcnRpbmcgRGlhcnkgRW50cmllcwoKWW91IGNhbiB0cmFuc2ZlciBk aWFyeSBlbnRyaWVzIGJldHdlZW4gRW1hY3MgZGlhcnkgZmlsZXMgYW5kIGEgdmFyaWV0eQpvZiBv dGhlciBmb3JtYXRzLgoKICAgWW91IGNhbiBpbXBvcnQgZGlhcnkgZW50cmllcyBmcm9tIE91dGxv b2stZ2VuZXJhdGVkIGFwcG9pbnRtZW50Cm1lc3NhZ2VzLiAgV2hpbGUgdmlld2luZyBzdWNoIGEg bWVzc2FnZSBpbiBSbWFpbCBvciBHbnVzLCBkbyDigJhNLXgKZGlhcnktZnJvbS1vdXRsb29r4oCZ IHRvIGltcG9ydCB0aGUgZW50cnkuICBZb3UgY2FuIG1ha2UgdGhpcyBjb21tYW5kCnJlY29nbml6 ZSBhZGRpdGlvbmFsIGFwcG9pbnRtZW50IG1lc3NhZ2UgZm9ybWF0cyBieSBjdXN0b21pemluZyB0 aGUKdmFyaWFibGUg4oCYZGlhcnktb3V0bG9vay1mb3JtYXRz4oCZLiAgT3RoZXIgbWFpbCBjbGll bnRzIGNhbiBzZXQK4oCYZGlhcnktZnJvbS1vdXRsb29rLWZ1bmN0aW9u4oCZIHRvIGFuIGFwcHJv cHJpYXRlIHZhbHVlLgoKICAgVGhlIGljYWxlbmRhciBwYWNrYWdlIGFsbG93cyB5b3UgdG8gdHJh bnNmZXIgZGF0YSBiZXR3ZWVuIHlvdXIgRW1hY3MKZGlhcnkgZmlsZSBhbmQgaUNhbGVuZGFyIGZp bGVzLCB3aGljaCBhcmUgZGVmaW5lZCBpbiDigJhSRkMgMjQ0NeKAlEludGVybmV0CkNhbGVuZGFy aW5nIGFuZCBTY2hlZHVsaW5nIENvcmUgT2JqZWN0IFNwZWNpZmljYXRpb24gKGlDYWxlbmRhcini gJkgKGFzCndlbGwgYXMgdGhlIGVhcmxpZXIgdkNhbGVuZGFyIGZvcm1hdCkuCgogICBUaGUgY29t bWFuZCDigJhpY2FsZW5kYXItaW1wb3J0LWJ1ZmZlcuKAmSBleHRyYWN0cyBpQ2FsZW5kYXIgZGF0 YSBmcm9tCnRoZSBjdXJyZW50IGJ1ZmZlciBhbmQgYWRkcyBpdCB0byB5b3VyIGRpYXJ5IGZpbGUu ICBUaGlzIGZ1bmN0aW9uIGlzCmFsc28gc3VpdGFibGUgZm9yIGF1dG9tYXRpYyBleHRyYWN0aW9u IG9mIGlDYWxlbmRhciBkYXRhOyBmb3IgZXhhbXBsZQp3aXRoIHRoZSBSbWFpbCBtYWlsIGNsaWVu dCBvbmUgY291bGQgdXNlOgoKICAgICAoYWRkLWhvb2sgJ3JtYWlsLXNob3ctbWVzc2FnZS1ob29r ICdpY2FsZW5kYXItaW1wb3J0LWJ1ZmZlcikKCiAgIFRoZSBjb21tYW5kIOKAmGljYWxlbmRhci1p bXBvcnQtZmlsZeKAmSBpbXBvcnRzIGFuIGlDYWxlbmRhciBmaWxlIGFuZAphZGRzIHRoZSByZXN1 bHRzIHRvIGFuIEVtYWNzIGRpYXJ5IGZpbGUuICBGb3IgZXhhbXBsZToKCiAgICAgKGljYWxlbmRh ci1pbXBvcnQtZmlsZSAiL2hlcmUvaXMvY2FsZW5kYXIuaWNzIgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi90aGVyZS9nb2VzL2ljYWwtZGlhcnkiKQoKWW91IGNhbiB1c2UgYW4g4oCYI2lu Y2x1ZGXigJkgZGlyZWN0aXZlIHRvIGFkZCB0aGUgaW1wb3J0IGZpbGUgY29udGVudHMgdG8KdGhl IG1haW4gZGlhcnkgZmlsZSwgaWYgdGhlc2UgYXJlIGRpZmZlcmVudCBmaWxlcy4gICpOb3RlIEZh bmN5IERpYXJ5CkRpc3BsYXk6Oi4KCiAgIFVzZSDigJhpY2FsZW5kYXItZXhwb3J0LWZpbGXigJkg dG8gaW50ZXJhY3RpdmVseSBleHBvcnQgYW4gZW50aXJlIEVtYWNzCmRpYXJ5IGZpbGUgdG8gaUNh bGVuZGFyIGZvcm1hdC4gIFRvIGV4cG9ydCBvbmx5IGEgcGFydCBvZiBhIGRpYXJ5IGZpbGUsCm1h cmsgdGhlIHJlbGV2YW50IGFyZWEsIGFuZCBjYWxsIOKAmGljYWxlbmRhci1leHBvcnQtcmVnaW9u 4oCZLiAgSW4gYm90aApjYXNlcywgRW1hY3MgYXBwZW5kcyB0aGUgcmVzdWx0IHRvIHRoZSB0YXJn ZXQgZmlsZS4KCgoqKiAzMS4xMSBEYXlsaWdodCBTYXZpbmcgVGltZQoKRW1hY3MgdW5kZXJzdGFu ZHMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdGFuZGFyZCB0aW1lIGFuZCBkYXlsaWdodApzYXZp bmcgdGltZeKAlHRoZSB0aW1lcyBnaXZlbiBmb3Igc3VucmlzZSwgc3Vuc2V0LCBzb2xzdGljZXMs IGVxdWlub3hlcywKYW5kIHRoZSBwaGFzZXMgb2YgdGhlIG1vb24gdGFrZSB0aGF0IGludG8gYWNj b3VudC4gIFRoZSBydWxlcyBmb3IKZGF5bGlnaHQgc2F2aW5nIHRpbWUgdmFyeSBmcm9tIHBsYWNl IHRvIHBsYWNlIGFuZCBoYXZlIGFsc28gdmFyaWVkCmhpc3RvcmljYWxseSBmcm9tIHllYXIgdG8g eWVhci4gIFRvIGRvIHRoZSBqb2IgcHJvcGVybHksIEVtYWNzIG5lZWRzIHRvCmtub3cgd2hpY2gg cnVsZXMgdG8gdXNlLgoKICAgU29tZSBvcGVyYXRpbmcgc3lzdGVtcyBrZWVwIHRyYWNrIG9mIHRo ZSBydWxlcyB0aGF0IGFwcGx5IHRvIHRoZQpwbGFjZSB3aGVyZSB5b3UgYXJlOyBvbiB0aGVzZSBz eXN0ZW1zLCBFbWFjcyBnZXRzIHRoZSBpbmZvcm1hdGlvbiBpdApuZWVkcyBmcm9tIHRoZSBzeXN0 ZW0gYXV0b21hdGljYWxseS4gIElmIHNvbWUgb3IgYWxsIG9mIHRoaXMgaW5mb3JtYXRpb24KaXMg bWlzc2luZywgRW1hY3MgZmlsbHMgaW4gdGhlIGdhcHMgd2l0aCB0aGUgcnVsZXMgY3VycmVudGx5 IHVzZWQgaW4KQ2FtYnJpZGdlLCBNYXNzYWNodXNldHRzLiAgSWYgdGhlIHJlc3VsdGluZyBydWxl cyBhcmUgbm90IHdoYXQgeW91IHdhbnQsCnlvdSBjYW4gdGVsbCBFbWFjcyB0aGUgcnVsZXMgdG8g dXNlIGJ5IHNldHRpbmcgY2VydGFpbiB2YXJpYWJsZXM6CuKAmGNhbGVuZGFyLWRheWxpZ2h0LXNh dmluZ3Mtc3RhcnRz4oCZIGFuZCDigJhjYWxlbmRhci1kYXlsaWdodC1zYXZpbmdzLWVuZHPigJku CgogICBUaGVzZSB2YWx1ZXMgc2hvdWxkIGJlIExpc3AgZXhwcmVzc2lvbnMgdGhhdCByZWZlciB0 byB0aGUgdmFyaWFibGUK4oCYeWVhcuKAmSwgYW5kIGV2YWx1YXRlIHRvIHRoZSBHcmVnb3JpYW4g ZGF0ZSBvbiB3aGljaCBkYXlsaWdodCBzYXZpbmcgdGltZQpzdGFydHMgb3IgKHJlc3BlY3RpdmVs eSkgZW5kcywgaW4gdGhlIGZvcm0gb2YgYSBsaXN0IOKAmChNT05USCBEQVkgWUVBUinigJkuClRo ZSB2YWx1ZXMgc2hvdWxkIGJlIOKAmG5pbOKAmSBpZiB5b3VyIGFyZWEgZG9lcyBub3QgdXNlIGRh eWxpZ2h0IHNhdmluZwp0aW1lLgoKICAgRW1hY3MgdXNlcyB0aGVzZSBleHByZXNzaW9ucyB0byBk ZXRlcm1pbmUgdGhlIHN0YXJ0aW5nIGRhdGUgb2YKZGF5bGlnaHQgc2F2aW5nIHRpbWUgZm9yIHRo ZSBob2xpZGF5IGxpc3QgYW5kIGZvciBjb3JyZWN0aW5nIHRpbWVzIG9mCmRheSBpbiB0aGUgc29s YXIgYW5kIGx1bmFyIGNhbGN1bGF0aW9ucy4KCiAgIFRoZSB2YWx1ZXMgZm9yIENhbWJyaWRnZSwg TWFzc2FjaHVzZXR0cyBhcmUgYXMgZm9sbG93czoKCiAgICAgKGNhbGVuZGFyLW50aC1uYW1lZC1k YXkgMiAwIDMgeWVhcikKICAgICAoY2FsZW5kYXItbnRoLW5hbWVkLWRheSAxIDAgMTEgeWVhcikK ClRoYXQgaXMsIHRoZSBzZWNvbmQgMHRoIGRheSAoU3VuZGF5KSBvZiB0aGUgdGhpcmQgbW9udGgg KE1hcmNoKSBpbiB0aGUKeWVhciBzcGVjaWZpZWQgYnkg4oCYeWVhcuKAmSwgYW5kIHRoZSBmaXJz dCBTdW5kYXkgb2YgdGhlIGVsZXZlbnRoIG1vbnRoCihOb3ZlbWJlcikgb2YgdGhhdCB5ZWFyLiAg SWYgZGF5bGlnaHQgc2F2aW5nIHRpbWUgd2VyZSBjaGFuZ2VkIHRvIHN0YXJ0Cm9uIE9jdG9iZXIg MSwgeW91IHdvdWxkIHNldCDigJhjYWxlbmRhci1kYXlsaWdodC1zYXZpbmdzLXN0YXJ0c+KAmSB0 byB0aGlzOgoKICAgICAobGlzdCAxMCAxIHllYXIpCgogICBJZiB0aGVyZSBpcyBubyBkYXlsaWdo dCBzYXZpbmcgdGltZSBhdCB5b3VyIGxvY2F0aW9uLCBvciBpZiB5b3Ugd2FudAphbGwgdGltZXMg aW4gc3RhbmRhcmQgdGltZSwgc2V0IOKAmGNhbGVuZGFyLWRheWxpZ2h0LXNhdmluZ3Mtc3RhcnRz 4oCZIGFuZArigJhjYWxlbmRhci1kYXlsaWdodC1zYXZpbmdzLWVuZHPigJkgdG8g4oCYbmls4oCZ LgoKICAgVGhlIHZhcmlhYmxlIOKAmGNhbGVuZGFyLWRheWxpZ2h0LXRpbWUtb2Zmc2V04oCZIHNw ZWNpZmllcyB0aGUgZGlmZmVyZW5jZQpiZXR3ZWVuIGRheWxpZ2h0IHNhdmluZyB0aW1lIGFuZCBz dGFuZGFyZCB0aW1lLCBtZWFzdXJlZCBpbiBtaW51dGVzLgpUaGUgdmFsdWUgZm9yIENhbWJyaWRn ZSwgTWFzc2FjaHVzZXR0cyBpcyA2MC4KCiAgIEZpbmFsbHksIHRoZSB0d28gdmFyaWFibGVzIOKA mGNhbGVuZGFyLWRheWxpZ2h0LXNhdmluZ3Mtc3RhcnRzLXRpbWXigJkKYW5kIOKAmGNhbGVuZGFy LWRheWxpZ2h0LXNhdmluZ3MtZW5kcy10aW1l4oCZIHNwZWNpZnkgdGhlIG51bWJlciBvZiBtaW51 dGVzCmFmdGVyIG1pZG5pZ2h0IGxvY2FsIHRpbWUgd2hlbiB0aGUgdHJhbnNpdGlvbiB0byBhbmQg ZnJvbSBkYXlsaWdodApzYXZpbmcgdGltZSBzaG91bGQgb2NjdXIuICBGb3IgQ2FtYnJpZGdlLCBN YXNzYWNodXNldHRzIGJvdGggdmFyaWFibGVz4oCZCnZhbHVlcyBhcmUgMTIwLgoKCioqIDMxLjEy IFN1bW1pbmcgVGltZSBJbnRlcnZhbHMKClRoZSB0aW1lY2xvY2sgcGFja2FnZSBhZGRzIHVwIHRp bWUgaW50ZXJ2YWxzLCBzbyB5b3UgY2FuIChmb3IgaW5zdGFuY2UpCmtlZXAgdHJhY2sgb2YgaG93 IG11Y2ggdGltZSB5b3Ugc3BlbmQgd29ya2luZyBvbiBwYXJ0aWN1bGFyIHByb2plY3RzLgooQSBt b3JlIGFkdmFuY2VkIGFsdGVybmF0aXZlIGlzIHRvIHVzZSB0aGUgT3JnIE1vZGXigJlzIGZhY2ls aXRpZXMgZm9yCmNsb2NraW5nIHRpbWUsICpub3RlIChvcmcpQ2xvY2tpbmcgd29yayB0aW1lOjop LgoKICAgVXNlIHRoZSDigJhNLXggdGltZWNsb2NrLWlu4oCZIGNvbW1hbmQgd2hlbiB5b3Ugc3Rh cnQgd29ya2luZyBvbiBhCnByb2plY3QsIGFuZCDigJhNLXggdGltZWNsb2NrLW91dOKAmSBjb21t YW5kIHdoZW4geW914oCZcmUgZG9uZS4gIEVhY2ggdGltZQp5b3UgZG8gdGhpcywgaXQgYWRkcyBv bmUgdGltZSBpbnRlcnZhbCB0byB0aGUgcmVjb3JkIG9mIHRoZSBwcm9qZWN0LgpZb3UgY2FuIGNo YW5nZSB0byB3b3JraW5nIG9uIGEgZGlmZmVyZW50IHByb2plY3Qgd2l0aCDigJhNLXgKdGltZWNs b2NrLWNoYW5nZeKAmS4KCiAgIE9uY2UgeW914oCZdmUgY29sbGVjdGVkIGRhdGEgZnJvbSBhIG51 bWJlciBvZiB0aW1lIGludGVydmFscywgeW91IGNhbgp1c2Ug4oCYTS14IHRpbWVjbG9jay13b3Jr ZGF5LXJlbWFpbmluZ+KAmSB0byBzZWUgaG93IG11Y2ggdGltZSBpcyBsZWZ0IHRvCndvcmsgdG9k YXkgKGFzc3VtaW5nIGEgdHlwaWNhbCBhdmVyYWdlIG9mIDggaG91cnMgYSBkYXkpLCBhbmQg4oCY TS14CnRpbWVjbG9jay13aGVuLXRvLWxlYXZl4oCZIHdoaWNoIHdpbGwgY2FsY3VsYXRlIHdoZW4g eW914oCZcmUgZG9uZS4KCiAgIElmIHlvdSB3YW50IEVtYWNzIHRvIGRpc3BsYXkgdGhlIGFtb3Vu dCBvZiB0aW1lIGxlZnQgb2YgeW91ciB3b3JrZGF5CmluIHRoZSBtb2RlIGxpbmUsIGVpdGhlciBj dXN0b21pemUgdGhlIOKAmHRpbWVjbG9jay1tb2RlbGluZS1kaXNwbGF54oCZCnZhcmlhYmxlIGFu ZCBzZXQgaXRzIHZhbHVlIHRvIOKAmHTigJksIG9yIGludm9rZSB0aGUg4oCYTS14CnRpbWVjbG9j ay1tb2RlbGluZS1kaXNwbGF54oCZIGNvbW1hbmQuCgogICBUZXJtaW5hdGluZyB0aGUgY3VycmVu dCBFbWFjcyBzZXNzaW9uIG1pZ2h0IG9yIG1pZ2h0IG5vdCBtZWFuIHRoYXQKeW91IGhhdmUgc3Rv cHBlZCB3b3JraW5nIG9uIHRoZSBwcm9qZWN0IGFuZCwgYnkgZGVmYXVsdCwgRW1hY3MgYXNrcyB5 b3UuCllvdSBjYW4sIGhvd2V2ZXIsIGN1c3RvbWl6ZSB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxl CuKAmHRpbWVjbG9jay1hc2stYmVmb3JlLWV4aXRpbmfigJkgdG8g4oCYbmls4oCZIHRvIGF2b2lk IHRoZSBxdWVzdGlvbjsgdGhlbiwKb25seSBhbiBleHBsaWNpdCDigJhNLXggdGltZWNsb2NrLW91 dOKAmSBvciDigJhNLXggdGltZWNsb2NrLWNoYW5nZeKAmSB3aWxsIHRlbGwKRW1hY3MgdGhhdCB0 aGUgY3VycmVudCBpbnRlcnZhbCBpcyBvdmVyLgoKICAgVGhlIHRpbWVjbG9jayBmdW5jdGlvbnMg d29yayBieSBhY2N1bXVsYXRpbmcgdGhlIGRhdGEgaW4gYSBmaWxlCmNhbGxlZCDigJh+Ly5lbWFj cy5kL3RpbWVsb2figJkuICBZb3UgY2FuIHNwZWNpZnkgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhp cwpmaWxlIGJ5IGN1c3RvbWl6aW5nIHRoZSB2YXJpYWJsZSDigJh0aW1lY2xvY2stZmlsZeKAmS4g IElmIHlvdSBlZGl0IHRoZQp0aW1lY2xvY2sgZmlsZSBtYW51YWxseSwgb3IgaWYgeW91IGNoYW5n ZSB0aGUgdmFsdWUgb2YgYW55IG9mCnRpbWVjbG9ja+KAmXMgY3VzdG9taXphYmxlIHZhcmlhYmxl cywgeW91IHNob3VsZCBydW4gdGhlIGNvbW1hbmQg4oCYTS14CnRpbWVjbG9jay1yZXJlYWQtbG9n 4oCZIHRvIHVwZGF0ZSB0aGUgZGF0YSBpbiBFbWFjcyBmcm9tIHRoZSBmaWxlLgoKCioqIDMxLjEz IE1vcmUgYWR2YW5jZWQgZmVhdHVyZXMgb2YgdGhlIENhbGVuZGFyIGFuZCBEaWFyeQoKVGhpcyBz ZWN0aW9uIGRlc2NyaWJlcyBzb21lIG9mIHRoZSBtb3JlIGFkdmFuY2VkL3NwZWNpYWxpemVkIGZl YXR1cmVzIG9mCnRoZSBjYWxlbmRhciBhbmQgZGlhcnkuICBJdCBzdGFydHMgd2l0aCBzb21lIG9m IHRoZSBtYW55IHdheXMgaW4gd2hpY2gKeW91IGNhbiBjdXN0b21pemUgdGhlIGNhbGVuZGFyIGFu ZCBkaWFyeSB0byBzdWl0IHlvdXIgcGVyc29uYWwgdGFzdGVzLgoKKyBNZW51OgoKICAtIENhbGVu ZGFyIEN1c3RvbWl6aW5nOjogICBDYWxlbmRhciBsYXlvdXQgYW5kIGhvb2tzLgogIC0gSG9saWRh eSBDdXN0b21pemluZzo6ICAgIERlZmluaW5nIHlvdXIgb3duIGhvbGlkYXlzLgogIC0gTWF5YW4g Q2FsZW5kYXI6OiAgICAgICAgIE1vdmluZyB0byBhIGRhdGUgc3BlY2lmaWVkIGluIGEgTWF5YW4g Y2FsZW5kYXIuCiAgLSBEYXRlIERpc3BsYXkgRm9ybWF0OjogICAgQ2hhbmdpbmcgdGhlIGZvcm1h dC4KICAtIFRpbWUgRGlzcGxheSBGb3JtYXQ6OiAgICBDaGFuZ2luZyB0aGUgZm9ybWF0LgogIC0g RGlhcnkgQ3VzdG9taXppbmc6OiAgICAgIERlZmF1bHRzIHlvdSBjYW4gc2V0LgogIC0gTm9uLUdy ZWdvcmlhbiBEaWFyeTo6ICAgIERpYXJ5IGVudHJpZXMgYmFzZWQgb24gb3RoZXIgY2FsZW5kYXJz LgogIC0gRGlhcnkgRGlzcGxheTo6ICAgICAgICAgIEEgY2hvaWNlIG9mIHdheXMgdG8gZGlzcGxh eSB0aGUgZGlhcnkuCiAgLSBGYW5jeSBEaWFyeSBEaXNwbGF5OjogICAgU29ydGluZyBkaWFyeSBl bnRyaWVzLCB1c2luZyBpbmNsdWRlZCBkaWFyeSBmaWxlcy4KICAtIFNleHAgRGlhcnkgRW50cmll czo6ICAgICBNb3JlIGZsZXhpYmxlIGRpYXJ5IGVudHJpZXMuCgoKKioqIDMxLjEzLjEgQ3VzdG9t aXppbmcgdGhlIENhbGVuZGFyCgpUaGUgY2FsZW5kYXIgZGlzcGxheSB1bmZvcnR1bmF0ZWx5IGNh bm5vdCBiZSBjaGFuZ2VkIGZyb20gdGhyZWUgbW9udGhzLApidXQgeW91IGNhbiBjdXN0b21pemUg dGhlIHdoaXRlc3BhY2UgdXNlZCBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXM6CuKAmGNhbGVuZGFy LWxlZnQtbWFyZ2lu4oCZLCDigJhjYWxlbmRhci1kYXktaGVhZGVyLXdpZHRo4oCZLArigJhjYWxl bmRhci1kYXktZGlnaXQtd2lkdGjigJksIOKAmGNhbGVuZGFyLWNvbHVtbi13aWR0aOKAmSwgYW5k CuKAmGNhbGVuZGFyLWludGVybW9udGgtc3BhY2luZ+KAmS4gIFRvIGRpc3BsYXkgdGV4dCBfYmV0 d2Vlbl8gdGhlIG1vbnRocywKZm9yIGV4YW1wbGUgd2VlayBudW1iZXJzLCBjdXN0b21pemUgdGhl IHZhcmlhYmxlcwrigJhjYWxlbmRhci1pbnRlcm1vbnRoLWhlYWRlcuKAmSBhbmQg4oCYY2FsZW5k YXItaW50ZXJtb250aC10ZXh04oCZIGFzIGRlc2NyaWJlZAppbiB0aGVpciBkb2N1bWVudGF0aW9u LgoKICAgVGhlIHZhcmlhYmxlIOKAmGNhbGVuZGFyLW1vbnRoLWhlYWRlcuKAmSBjb250cm9scyB0 aGUgdGV4dCB0aGF0IGFwcGVhcnMKYWJvdmUgZWFjaCBtb250aCBpbiB0aGUgY2FsZW5kYXIuICBC eSBkZWZhdWx0LCBpdCBzaG93cyB0aGUgbW9udGggYW5kCnllYXIuICBUaGUgdmFyaWFibGUg4oCY Y2FsZW5kYXItZGF5LWhlYWRlci1hcnJheeKAmSBjb250cm9scyB0aGUgdGV4dCB0aGF0CmFwcGVh cnMgYWJvdmUgZWFjaCBkYXnigJlzIGNvbHVtbiBpbiBldmVyeSBtb250aC4gIEJ5IGRlZmF1bHQs IGl0IHNob3dzCnRoZSBmaXJzdCB0d28gbGV0dGVycyBvZiBlYWNoIGRheeKAmXMgbmFtZS4KCiAg IFRoZSB2YXJpYWJsZSDigJhjYWxlbmRhci1ob2xpZGF5LW1hcmtlcuKAmSBzcGVjaWZpZXMgaG93 IHRvIG1hcmsgYSBkYXRlCnRoYXQgaXMgYSBob2xpZGF5LiAgSXRzIHZhbHVlIG1heSBiZSBhIHNp bmdsZS1jaGFyYWN0ZXIgc3RyaW5nIHRvIGluc2VydApuZXh0IHRvIHRoZSBkYXRlLCBvciBhIGZh Y2UgbmFtZSB0byB1c2UgZm9yIGRpc3BsYXlpbmcgdGhlIGRhdGUuCkxpa2V3aXNlLCB0aGUgdmFy aWFibGUg4oCYZGlhcnktZW50cnktbWFya2Vy4oCZIHNwZWNpZmllcyBob3cgdG8gbWFyayBhIGRh dGUKdGhhdCBoYXMgZGlhcnkgZW50cmllcy4gIFRoZSBmdW5jdGlvbiDigJhjYWxlbmRhci1tYXJr LXRvZGF54oCZIHVzZXMK4oCYY2FsZW5kYXItdG9kYXktbWFya2Vy4oCZIHRvIG1hcmsgdG9kYXni gJlzIGRhdGUuICBCeSBkZWZhdWx0LCB0aGUgY2FsZW5kYXIKdXNlcyBmYWNlcyBuYW1lZCDigJho b2xpZGF54oCZLCDigJhkaWFyeeKAmSwgYW5kIOKAmGNhbGVuZGFyLXRvZGF54oCZIGZvciB0aGVz ZQpwdXJwb3Nlcy4KCiAgIFN0YXJ0aW5nIHRoZSBjYWxlbmRhciBydW5zIHRoZSBub3JtYWwgaG9v awrigJhjYWxlbmRhci1pbml0aWFsLXdpbmRvdy1ob29r4oCZLiAgUmVjb21wdXRhdGlvbiBvZiB0 aGUgY2FsZW5kYXIgZGlzcGxheQpkb2VzIG5vdCBydW4gdGhpcyBob29rLiAgQnV0IGlmIHlvdSBs ZWF2ZSB0aGUgY2FsZW5kYXIgd2l0aCB0aGUg4oCYceKAmQpjb21tYW5kIGFuZCByZWVudGVyIGl0 LCB0aGUgaG9vayBydW5zIGFnYWluLgoKICAgVGhlIHZhcmlhYmxlIOKAmGNhbGVuZGFyLXRvZGF5 LXZpc2libGUtaG9va+KAmSBpcyBhIG5vcm1hbCBob29rIHJ1biBhZnRlcgp0aGUgY2FsZW5kYXIg YnVmZmVyIGhhcyBiZWVuIHByZXBhcmVkIHdpdGggdGhlIGNhbGVuZGFyLCB3aGVuIHRoZQpjdXJy ZW50IGRhdGUgaXMgdmlzaWJsZSBpbiB0aGUgd2luZG93LiAgT25lIHVzZSBvZiB0aGlzIGhvb2sg aXMgdG8gbWFyawp0b2RheeKAmXMgZGF0ZTsgdG8gZG8gdGhhdCB1c2UgZWl0aGVyIG9mIHRoZSBm dW5jdGlvbnMK4oCYY2FsZW5kYXItbWFyay10b2RheeKAmSBvciDigJhjYWxlbmRhci1zdGFyLWRh dGXigJk6CgogICAgIChhZGQtaG9vayAnY2FsZW5kYXItdG9kYXktdmlzaWJsZS1ob29rICdjYWxl bmRhci1tYXJrLXRvZGF5KQoKQSBzaW1pbGFyIG5vcm1hbCBob29rLCDigJhjYWxlbmRhci10b2Rh eS1pbnZpc2libGUtaG9va+KAmSBpcyBydW4gaWYgdGhlCmN1cnJlbnQgZGF0ZSBpcyBfbm90XyB2 aXNpYmxlIGluIHRoZSB3aW5kb3cuCgogICBFYWNoIG9mIHRoZSBjYWxlbmRhciBjdXJzb3IgbW90 aW9uIGNvbW1hbmRzIHJ1bnMgdGhlIGhvb2sK4oCYY2FsZW5kYXItbW92ZS1ob29r4oCZIGFmdGVy IGl0IG1vdmVzIHRoZSBjdXJzb3IuCgoKKioqIDMxLjEzLjIgQ3VzdG9taXppbmcgdGhlIEhvbGlk YXlzCgpUaGVyZSBhcmUgc2V2ZXJhbCB2YXJpYWJsZXMgbGlzdGluZyB0aGUgZGVmYXVsdCBob2xp ZGF5cyB0aGF0IEVtYWNzCmtub3dzIGFib3V0LiAgVGhlc2UgYXJlOiDigJhob2xpZGF5LWdlbmVy YWwtaG9saWRheXPigJksCuKAmGhvbGlkYXktbG9jYWwtaG9saWRheXPigJksIOKAmGhvbGlkYXkt c29sYXItaG9saWRheXPigJksCuKAmGhvbGlkYXktYmFoYWktaG9saWRheXPigJksIOKAmGhvbGlk YXktY2hyaXN0aWFuLWhvbGlkYXlz4oCZLArigJhob2xpZGF5LWhlYnJldy1ob2xpZGF5c+KAmSwg 4oCYaG9saWRheS1pc2xhbWljLWhvbGlkYXlz4oCZLArigJhob2xpZGF5LW9yaWVudGFsLWhvbGlk YXlz4oCZLCBhbmQg4oCYaG9saWRheS1vdGhlci1ob2xpZGF5c+KAmS4gIFRoZSBuYW1lcwpzaG91 bGQgYmUgc2VsZi1leHBsYW5hdG9yeTsgZS5nLiwg4oCYaG9saWRheS1zb2xhci1ob2xpZGF5c+KA mSBsaXN0cyBzdW4tCmFuZCBtb29uLXJlbGF0ZWQgaG9saWRheXMuCgogICBZb3UgY2FuIGN1c3Rv bWl6ZSB0aGVzZSBsaXN0cyBvZiBob2xpZGF5cyB0byB5b3VyIG93biBuZWVkcywgZGVsZXRpbmcK b3IgYWRkaW5nIGhvbGlkYXlzIGFzIGRlc2NyaWJlZCBiZWxvdy4gIFNldCBhbnkgb2YgdGhlbSB0 byDigJhuaWzigJkgdG8gbm90CnNob3cgdGhlIGFzc29jaWF0ZWQgaG9saWRheXMuCgogICBUaGUg Z2VuZXJhbCBob2xpZGF5cyBhcmUsIGJ5IGRlZmF1bHQsIGhvbGlkYXlzIGNvbW1vbiB0aHJvdWdo b3V0IHRoZQpVbml0ZWQgU3RhdGVzLiAgSW4gY29udHJhc3QsIOKAmGhvbGlkYXktbG9jYWwtaG9s aWRheXPigJkgYW5kCuKAmGhvbGlkYXktb3RoZXItaG9saWRheXPigJkgYXJlIGJvdGggZW1wdHkg YnkgZGVmYXVsdC4gIFRoZXNlIGFyZSBpbnRlbmRlZApmb3Igc3lzdGVtLXdpZGUgc2V0dGluZ3Mg YW5kIHlvdXIgaW5kaXZpZHVhbCB1c2UsIHJlc3BlY3RpdmVseS4KCiAgIEJ5IGRlZmF1bHQsIEVt YWNzIGRvZXMgbm90IGluY2x1ZGUgYWxsIHRoZSBob2xpZGF5cyBvZiB0aGUgcmVsaWdpb25zCnRo YXQgaXQga25vd3MsIG9ubHkgdGhvc2UgY29tbW9ubHkgZm91bmQgaW4gc2VjdWxhciBjYWxlbmRh cnMuICBGb3IgYQptb3JlIGV4dGVuc2l2ZSBjb2xsZWN0aW9uIG9mIHJlbGlnaW91cyBob2xpZGF5 cywgeW91IGNhbiBzZXQgYW55IChvcgphbGwpIG9mIHRoZSB2YXJpYWJsZXMg4oCYY2FsZW5kYXIt YmFoYWktYWxsLWhvbGlkYXlzLWZsYWfigJksCuKAmGNhbGVuZGFyLWNocmlzdGlhbi1hbGwtaG9s aWRheXMtZmxhZ+KAmSwK4oCYY2FsZW5kYXItaGVicmV3LWFsbC1ob2xpZGF5cy1mbGFn4oCZLCBv cgrigJhjYWxlbmRhci1pc2xhbWljLWFsbC1ob2xpZGF5cy1mbGFn4oCZIHRvIOKAmHTigJkuCgog ICBFYWNoIG9mIHRoZSBob2xpZGF5IHZhcmlhYmxlcyBpcyBhIGxpc3Qgb2YgImhvbGlkYXkgZm9y bXMiLCBlYWNoIGZvcm0KZGVzY3JpYmluZyBhIGhvbGlkYXkgKG9yIHNvbWV0aW1lcyBhIGxpc3Qg b2YgaG9saWRheXMpLiAgSGVyZSBpcyBhIHRhYmxlCm9mIHRoZSBwb3NzaWJsZSBraW5kcyBvZiBo b2xpZGF5IGZvcm0uICBEYXkgbnVtYmVycyBhbmQgbW9udGggbnVtYmVycwpjb3VudCBzdGFydGlu ZyBmcm9tIDEsIGJ1dCAiZGF5bmFtZSIgbnVtYmVycyBjb3VudCBTdW5kYXkgYXMgMC4gIFRoZQph cmd1bWVudCBTVFJJTkcgaXMgYWx3YXlzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgaG9saWRheSwg YXMgYSBzdHJpbmcuCgrigJgoaG9saWRheS1maXhlZCBNT05USCBEQVkgU1RSSU5HKeKAmQogICAg IEEgZml4ZWQgZGF0ZSBvbiB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLgoK4oCYKGhvbGlkYXktZmxv YXQgTU9OVEggREFZTkFNRSBLIFNUUklOR+KAmQogICAgICZvcHRpb25hbCBEQVkpIFRoZSBLdGgg REFZTkFNRSAoREFZTkFNRT0wIGZvciBTdW5kYXksIGFuZCBzbyBvbikKICAgICBhZnRlciBvciBi ZWZvcmUgR3JlZ29yaWFuIGRhdGUgTU9OVEgsIERBWS4gIE5lZ2F0aXZlIEsgbWVhbnMgY291bnQK ICAgICBiYWNrIGZyb20gdGhlIGVuZCBvZiB0aGUgbW9udGguICBPcHRpb25hbCBEQVkgZGVmYXVs dHMgdG8gMSBpZiBLIGlzCiAgICAgcG9zaXRpdmUsIGFuZCB0aGUgbGFzdCBkYXkgb2YgTU9OVEgg b3RoZXJ3aXNlLgoK4oCYKGhvbGlkYXktY2hpbmVzZSBNT05USCBEQVkgU1RSSU5HKeKAmQogICAg IEEgZml4ZWQgZGF0ZSBvbiB0aGUgQ2hpbmVzZSBjYWxlbmRhci4KCuKAmChob2xpZGF5LWhlYnJl dyBNT05USCBEQVkgU1RSSU5HKeKAmQogICAgIEEgZml4ZWQgZGF0ZSBvbiB0aGUgSGVicmV3IGNh bGVuZGFyLgoK4oCYKGhvbGlkYXktaXNsYW1pYyBNT05USCBEQVkgU1RSSU5HKeKAmQogICAgIEEg Zml4ZWQgZGF0ZSBvbiB0aGUgSXNsYW1pYyBjYWxlbmRhci4KCuKAmChob2xpZGF5LWp1bGlhbiBN T05USCBEQVkgU1RSSU5HKeKAmQogICAgIEEgZml4ZWQgZGF0ZSBvbiB0aGUgSnVsaWFuIGNhbGVu ZGFyLgoK4oCYKGhvbGlkYXktc2V4cCBTRVhQIFNUUklORynigJkKICAgICBBIGRhdGUgY2FsY3Vs YXRlZCBieSB0aGUgTGlzcCBleHByZXNzaW9uIFNFWFAuICBUaGUgZXhwcmVzc2lvbgogICAgIHNo b3VsZCB1c2UgdGhlIHZhcmlhYmxlIOKAmHllYXLigJkgdG8gY29tcHV0ZSBhbmQgcmV0dXJuIHRo ZSBkYXRlIG9mIGEKICAgICBob2xpZGF5IGluIHRoZSBmb3JtIG9mIGEgbGlzdCDigJgoTU9OVEgg REFZIFlFQVIp4oCZLCBvciDigJhuaWzigJkgaWYgdGhlCiAgICAgaG9saWRheSBkb2VzbuKAmXQg aGFwcGVuIHRoaXMgeWVhci4KCuKAmChpZiBDT05ESVRJT04gSE9MSURBWS1GT1JNKeKAmQogICAg IEEgaG9saWRheSB0aGF0IGhhcHBlbnMgb25seSBpZiBDT05ESVRJT04gaXMgdHJ1ZS4KCuKAmChG VU5DVElPTiBbQVJHU10p4oCZCiAgICAgQSBsaXN0IG9mIGRhdGVzIGNhbGN1bGF0ZWQgYnkgdGhl IGZ1bmN0aW9uIEZVTkNUSU9OLCBjYWxsZWQgd2l0aAogICAgIGFyZ3VtZW50cyBBUkdTLgoKICAg Rm9yIGV4YW1wbGUsIHN1cHBvc2UgeW91IHdhbnQgdG8gYWRkIEJhc3RpbGxlIERheSwgY2VsZWJy YXRlZCBpbgpGcmFuY2Ugb24gSnVseSAxNCAoaS5lLiwgdGhlIGZvdXJ0ZWVudGggZGF5IG9mIHRo ZSBzZXZlbnRoIG1vbnRoKS4gIFlvdQpjYW4gZG8gdGhpcyBhcyBmb2xsb3dzOgoKICAgICAoc2V0 cSBob2xpZGF5LW90aGVyLWhvbGlkYXlzICcoKGhvbGlkYXktZml4ZWQgNyAxNCAiQmFzdGlsbGUg RGF5IikpKQoKICAgTWFueSBob2xpZGF5cyBvY2N1ciBvbiBhIHNwZWNpZmljIGRheSBvZiB0aGUg d2VlaywgYXQgYSBzcGVjaWZpYyB0aW1lCm9mIG1vbnRoLiAgSGVyZSBpcyBhIGhvbGlkYXkgZm9y bSBkZXNjcmliaW5nIEh1cnJpY2FuZSBTdXBwbGljYXRpb24gRGF5LApjZWxlYnJhdGVkIGluIHRo ZSBWaXJnaW4gSXNsYW5kcyBvbiB0aGUgZm91cnRoIE1vbmRheSBpbiBKdWx5OgoKICAgICAoaG9s aWRheS1mbG9hdCA3IDEgNCAiSHVycmljYW5lIFN1cHBsaWNhdGlvbiBEYXkiKQoKSGVyZSB0aGUg NyBzcGVjaWZpZXMgSnVseSwgdGhlIDEgc3BlY2lmaWVzIE1vbmRheSAoU3VuZGF5IGlzIDAsIFR1 ZXNkYXkKaXMgMiwgYW5kIHNvIG9uKSwgYW5kIHRoZSA0IHNwZWNpZmllcyB0aGUgZm91cnRoIG9j Y3VycmVuY2UgaW4gdGhlIG1vbnRoCigxIHNwZWNpZmllcyB0aGUgZmlyc3Qgb2NjdXJyZW5jZSwg MiB0aGUgc2Vjb25kIG9jY3VycmVuY2UsIOKIkjEgdGhlIGxhc3QKb2NjdXJyZW5jZSwg4oiSMiB0 aGUgc2Vjb25kLXRvLWxhc3Qgb2NjdXJyZW5jZSwgYW5kIHNvIG9uKS4KCiAgIFlvdSBjYW4gc3Bl Y2lmeSBob2xpZGF5cyB0aGF0IG9jY3VyIG9uIGZpeGVkIGRheXMgb2YgdGhlIEJhaMOh4oCZw60s CkNoaW5lc2UsIEhlYnJldywgSXNsYW1pYywgYW5kIEp1bGlhbiBjYWxlbmRhcnMgdG9vLiAgRm9y IGV4YW1wbGUsCgogICAgIChzZXRxIGhvbGlkYXktb3RoZXItaG9saWRheXMKICAgICAgICAgICAn KChob2xpZGF5LWhlYnJldyAxMCAyICJMYXN0IGRheSBvZiBIYW51a2thaCIpCiAgICAgICAgICAg ICAoaG9saWRheS1pc2xhbWljIDMgMTIgIk1vaGFtbWVkJ3MgQmlydGhkYXkiKQogICAgICAgICAg ICAgKGhvbGlkYXktanVsaWFuIDQgMiAiSmVmZmVyc29uJ3MgQmlydGhkYXkiKSkpCgphZGRzIHRo ZSBsYXN0IGRheSBvZiBIYW51a2thaCAoc2luY2UgdGhlIEhlYnJldyBtb250aHMgYXJlIG51bWJl cmVkIHdpdGgKMSBzdGFydGluZyBmcm9tIE5pc2FuKSwgdGhlIElzbGFtaWMgZmVhc3QgY2VsZWJy YXRpbmcgTW9oYW1tZWTigJlzCmJpcnRoZGF5IChzaW5jZSB0aGUgSXNsYW1pYyBtb250aHMgYXJl IG51bWJlcmVkIGZyb20gMSBzdGFydGluZyB3aXRoCk11aGFycmFtKSwgYW5kIFRob21hcyBKZWZm ZXJzb27igJlzIGJpcnRoZGF5LCB3aGljaCBpcyAyIEFwcmlsIDE3NDMgb24gdGhlCkp1bGlhbiBj YWxlbmRhci4KCiAgIFRvIGluY2x1ZGUgYSBob2xpZGF5IGNvbmRpdGlvbmFsbHksIHVzZSBlaXRo ZXIgRW1hY3MgTGlzcOKAmXMg4oCYaWbigJkgb3IKdGhlIOKAmGhvbGlkYXktc2V4cOKAmSBmb3Jt LiAgRm9yIGV4YW1wbGUsIEFtZXJpY2FuIHByZXNpZGVudGlhbCBlbGVjdGlvbnMKb2NjdXIgb24g dGhlIGZpcnN0IFR1ZXNkYXkgYWZ0ZXIgdGhlIGZpcnN0IE1vbmRheSBpbiBOb3ZlbWJlciBvZiB5 ZWFycwpkaXZpc2libGUgYnkgNDoKCiAgICAgKGhvbGlkYXktc2V4cCAnKGlmICh6ZXJvcCAoJSB5 ZWFyIDQpKQogICAgICAgICAgICAgICAgICAgICAgICAoY2FsZW5kYXItZ3JlZ29yaWFuLWZyb20t YWJzb2x1dGUKICAgICAgICAgICAgICAgICAgICAgICAgICgxKyAoY2FsZW5kYXItZGF5bmFtZS1v bi1vci1iZWZvcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKCsgNiAoY2FsZW5k YXItYWJzb2x1dGUtZnJvbS1ncmVnb3JpYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpc3QgMTEgMSB5ZWFyKSkpKSkpKQogICAgICAgICAgICAgICAgICAgIlVTIFBy ZXNpZGVudGlhbCBFbGVjdGlvbiIpCgpvcgoKICAgICAoaWYgKHplcm9wICglIGRpc3BsYXllZC15 ZWFyIDQpKQogICAgICAgICAoaG9saWRheS1maXhlZCAxMQogICAgICAgICAgICAgICAgKGNhbGVu ZGFyLWV4dHJhY3QtZGF5CiAgICAgICAgICAgICAgICAgIChjYWxlbmRhci1ncmVnb3JpYW4tZnJv bS1hYnNvbHV0ZQogICAgICAgICAgICAgICAgICAgICgxKyAoY2FsZW5kYXItZGF5bmFtZS1vbi1v ci1iZWZvcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAxICgrIDYgKGNhbGVuZGFyLWFic29s dXRlLWZyb20tZ3JlZ29yaWFuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp c3QgMTEgMSBkaXNwbGF5ZWQteWVhcikpKSkpKSkKICAgICAgICAgICAgICAgICJVUyBQcmVzaWRl bnRpYWwgRWxlY3Rpb24iKSkKCiAgIFNvbWUgaG9saWRheXMganVzdCBkb27igJl0IGZpdCBpbnRv IGFueSBvZiB0aGVzZSBmb3JtcyBiZWNhdXNlIHNwZWNpYWwKY2FsY3VsYXRpb25zIGFyZSBpbnZv bHZlZCBpbiB0aGVpciBkZXRlcm1pbmF0aW9uLiAgSW4gc3VjaCBjYXNlcyB5b3UKbXVzdCB3cml0 ZSBhIExpc3AgZnVuY3Rpb24gdG8gZG8gdGhlIGNhbGN1bGF0aW9uLiAgVG8gaW5jbHVkZSBlY2xp cHNlcywKZm9yIGV4YW1wbGUsIGFkZCDigJgoZWNsaXBzZXMp4oCZIHRvIOKAmGhvbGlkYXktb3Ro ZXItaG9saWRheXPigJkgYW5kIHdyaXRlIGFuCkVtYWNzIExpc3AgZnVuY3Rpb24g4oCYZWNsaXBz ZXPigJkgdGhhdCByZXR1cm5zIGEgKHBvc3NpYmx5IGVtcHR5KSBsaXN0IG9mCnRoZSByZWxldmFu dCBHcmVnb3JpYW4gZGF0ZXMgYW1vbmcgdGhlIHJhbmdlIHZpc2libGUgaW4gdGhlIGNhbGVuZGFy CndpbmRvdywgd2l0aCBkZXNjcmlwdGl2ZSBzdHJpbmdzLCBsaWtlIHRoaXM6CgogICAgICgoKDYg NCAyMDEyKSAiTHVuYXIgRWNsaXBzZSIpICgoMTEgMTMgMjAxMikgIlNvbGFyIEVjbGlwc2UiKSAu Li4gKQoKCioqKiAzMS4xMy4zIENvbnZlcnRpbmcgZnJvbSB0aGUgTWF5YW4gQ2FsZW5kYXIKCkhl cmUgYXJlIHRoZSBjb21tYW5kcyB0byBzZWxlY3QgZGF0ZXMgYmFzZWQgb24gdGhlIE1heWFuIGNh bGVuZGFyOgoK4oCYZyBtIGzigJkKICAgICBNb3ZlIHRvIGEgZGF0ZSBzcGVjaWZpZWQgYnkgdGhl IGxvbmcgY291bnQgY2FsZW5kYXIKICAgICAo4oCYY2FsZW5kYXItbWF5YW4tZ290by1sb25nLWNv dW50LWRhdGXigJkpLgrigJhnIG0gbiB04oCZCiAgICAgTW92ZSB0byB0aGUgbmV4dCBvY2N1cnJl bmNlIG9mIGEgcGxhY2UgaW4gdGhlIHR6b2xraW4gY2FsZW5kYXIKICAgICAo4oCYY2FsZW5kYXIt bWF5YW4tbmV4dC10em9sa2luLWRhdGXigJkpLgrigJhnIG0gcCB04oCZCiAgICAgTW92ZSB0byB0 aGUgcHJldmlvdXMgb2NjdXJyZW5jZSBvZiBhIHBsYWNlIGluIHRoZSB0em9sa2luIGNhbGVuZGFy CiAgICAgKOKAmGNhbGVuZGFyLW1heWFuLXByZXZpb3VzLXR6b2xraW4tZGF0ZeKAmSkuCuKAmGcg bSBuIGjigJkKICAgICBNb3ZlIHRvIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgYSBwbGFjZSBpbiB0 aGUgaGFhYiBjYWxlbmRhcgogICAgICjigJhjYWxlbmRhci1tYXlhbi1uZXh0LWhhYWItZGF0ZeKA mSkuCuKAmGcgbSBwIGjigJkKICAgICBNb3ZlIHRvIHRoZSBwcmV2aW91cyBvY2N1cnJlbmNlIG9m IGEgcGxhY2UgaW4gdGhlIGhhYWIgY2FsZW5kYXIKICAgICAo4oCYY2FsZW5kYXItbWF5YW4tcHJl dmlvdXMtaGFhYi1kYXRl4oCZKS4K4oCYZyBtIG4gY+KAmQogICAgIE1vdmUgdG8gdGhlIG5leHQg b2NjdXJyZW5jZSBvZiBhIHBsYWNlIGluIHRoZSBjYWxlbmRhciByb3VuZAogICAgICjigJhjYWxl bmRhci1tYXlhbi1uZXh0LWNhbGVuZGFyLXJvdW5kLWRhdGXigJkpLgrigJhnIG0gcCBj4oCZCiAg ICAgTW92ZSB0byB0aGUgcHJldmlvdXMgb2NjdXJyZW5jZSBvZiBhIHBsYWNlIGluIHRoZSBjYWxl bmRhciByb3VuZAogICAgICjigJhjYWxlbmRhci1tYXlhbi1wcmV2aW91cy1jYWxlbmRhci1yb3Vu ZC1kYXRl4oCZKS4KCiAgIFRvIHVuZGVyc3RhbmQgdGhlc2UgY29tbWFuZHMsIHlvdSBuZWVkIHRv IHVuZGVyc3RhbmQgdGhlIE1heWFuCmNhbGVuZGFycy4gIFRoZSAibG9uZyBjb3VudCIgaXMgYSBj b3VudGluZyBvZiBkYXlzIHdpdGggdGhlc2UgdW5pdHM6CgogICAgIDEga2luID0gMSBkYXkgICAx IHVpbmFsID0gMjAga2luICAgMSB0dW4gPSAxOCB1aW5hbAogICAgIDEga2F0dW4gPSAyMCB0dW4g ICAxIGJha3R1biA9IDIwIGthdHVuCgpUaHVzLCB0aGUgbG9uZyBjb3VudCBkYXRlIDEyLjE2LjEx LjE2LjYgbWVhbnMgMTIgYmFrdHVuLCAxNiBrYXR1biwgMTEKdHVuLCAxNiB1aW5hbCwgYW5kIDYg a2luLiAgVGhlIEVtYWNzIGNhbGVuZGFyIGNhbiBoYW5kbGUgTWF5YW4gbG9uZwpjb3VudCBkYXRl cyBhcyBlYXJseSBhcyA3LjE3LjE4LjEzLjMsIGJ1dCBubyBlYXJsaWVyLiAgV2hlbiB5b3UgdXNl IHRoZQrigJhnIG0gbOKAmSBjb21tYW5kLCB0eXBlIHRoZSBNYXlhbiBsb25nIGNvdW50IGRhdGUg d2l0aCB0aGUgYmFrdHVuLCBrYXR1biwKdHVuLCB1aW5hbCwgYW5kIGtpbiBzZXBhcmF0ZWQgYnkg cGVyaW9kcy4KCiAgIFRoZSBNYXlhbiB0em9sa2luIGNhbGVuZGFyIGlzIGEgY3ljbGUgb2YgMjYw IGRheXMgZm9ybWVkIGJ5IGEgcGFpciBvZgppbmRlcGVuZGVudCBjeWNsZXMgb2YgMTMgYW5kIDIw IGRheXMuICBTaW5jZSB0aGlzIGN5Y2xlIHJlcGVhdHMKZW5kbGVzc2x5LCBFbWFjcyBwcm92aWRl cyBjb21tYW5kcyB0byBtb3ZlIGJhY2t3YXJkIGFuZCBmb3J3YXJkIHRvIHRoZQpwcmV2aW91cyBv ciBuZXh0IHBvaW50IGluIHRoZSBjeWNsZS4gIFR5cGUg4oCYZyBtIHAgdOKAmSB0byBnbyB0byB0 aGUKcHJldmlvdXMgdHpvbGtpbiBkYXRlOyBFbWFjcyBhc2tzIHlvdSBmb3IgYSB0em9sa2luIGRh dGUgYW5kIG1vdmVzIHBvaW50CnRvIHRoZSBwcmV2aW91cyBvY2N1cnJlbmNlIG9mIHRoYXQgZGF0 ZS4gIFNpbWlsYXJseSwgdHlwZSDigJhnIG0gbiB04oCZIHRvCmdvIHRvIHRoZSBuZXh0IG9jY3Vy cmVuY2Ugb2YgYSB0em9sa2luIGRhdGUuCgogICBUaGUgTWF5YW4gaGFhYiBjYWxlbmRhciBpcyBh IGN5Y2xlIG9mIDM2NSBkYXlzIGFycmFuZ2VkIGFzIDE4IG1vbnRocwpvZiAyMCBkYXlzIGVhY2gs IGZvbGxvd2VkIGJ5IGEgNS1kYXkgbW9udGhsZXNzIHBlcmlvZC4gIExpa2UgdGhlIHR6b2xraW4K Y3ljbGUsIHRoaXMgY3ljbGUgcmVwZWF0cyBlbmRsZXNzbHksIGFuZCB0aGVyZSBhcmUgY29tbWFu ZHMgdG8gbW92ZQpiYWNrd2FyZCBhbmQgZm9yd2FyZCB0byB0aGUgcHJldmlvdXMgb3IgbmV4dCBw b2ludCBpbiB0aGUgY3ljbGUuICBUeXBlCuKAmGcgbSBwIGjigJkgdG8gZ28gdG8gdGhlIHByZXZp b3VzIGhhYWIgZGF0ZTsgRW1hY3MgYXNrcyB5b3UgZm9yIGEgaGFhYgpkYXRlIGFuZCBtb3ZlcyBw b2ludCB0byB0aGUgcHJldmlvdXMgb2NjdXJyZW5jZSBvZiB0aGF0IGRhdGUuClNpbWlsYXJseSwg dHlwZSDigJhnIG0gbiBo4oCZIHRvIGdvIHRvIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgYSBoYWFi IGRhdGUuCgogICBUaGUgTWF5YSBhbHNvIHVzZWQgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0em9s a2luIGRhdGUgYW5kIHRoZSBoYWFiCmRhdGUuICBUaGlzIGNvbWJpbmF0aW9uIGlzIGEgY3ljbGUg b2YgYWJvdXQgNTIgeWVhcnMgY2FsbGVkIGEgX2NhbGVuZGFyCnJvdW5kXy4gIElmIHlvdSB0eXBl IOKAmGcgbSBwIGPigJksIEVtYWNzIGFza3MgeW91IGZvciBib3RoIGEgaGFhYiBhbmQgYQp0em9s a2luIGRhdGUgYW5kIHRoZW4gbW92ZXMgcG9pbnQgdG8gdGhlIHByZXZpb3VzIG9jY3VycmVuY2Ug b2YgdGhhdApjb21iaW5hdGlvbi4gIFVzZSDigJhnIG0gbiBj4oCZIHRvIG1vdmUgcG9pbnQgdG8g dGhlIG5leHQgb2NjdXJyZW5jZSBvZiBhCmNvbWJpbmF0aW9uLiAgVGhlc2UgY29tbWFuZHMgc2ln bmFsIGFuIGVycm9yIGlmIHRoZSBoYWFiL3R6b2xraW4gZGF0ZQpjb21iaW5hdGlvbiB5b3UgaGF2 ZSB0eXBlZCBpcyBpbXBvc3NpYmxlLgoKICAgRW1hY3MgdXNlcyBzdHJpY3QgY29tcGxldGlvbiAo Km5vdGUgQ29tcGxldGlvbiBFeGl0OjopIHdoZW5ldmVyIGl0CmFza3MgeW91IHRvIHR5cGUgYSBN YXlhbiBuYW1lLCBzbyB5b3UgZG9u4oCZdCBoYXZlIHRvIHdvcnJ5IGFib3V0CnNwZWxsaW5nLgoK CioqKiAzMS4xMy40IERhdGUgRGlzcGxheSBGb3JtYXQKCllvdSBjYW4gY3VzdG9taXplIHRoZSB3 YXkgZGF0ZXMgYXJlIGRpc3BsYXllZCBpbiB0aGUgZGlhcnksIG1vZGUgbGluZXMsCmFuZCBtZXNz YWdlcyBieSBzZXR0aW5nIOKAmGNhbGVuZGFyLWRhdGUtZGlzcGxheS1mb3Jt4oCZLiAgVGhpcyB2 YXJpYWJsZQpob2xkcyBhIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdGhhdCBjYW4gaW52b2x2ZSB0aGUg dmFyaWFibGVzIOKAmG1vbnRo4oCZLArigJhkYXnigJksIGFuZCDigJh5ZWFy4oCZLCB3aGljaCBh cmUgYWxsIG51bWJlcnMgaW4gc3RyaW5nIGZvcm0sIGFuZCDigJhtb250aG5hbWXigJkKYW5kIOKA mGRheW5hbWXigJksIHdoaWNoIGFyZSBib3RoIGFscGhhYmV0aWMgc3RyaW5ncy4gIEluIHRoZSBB bWVyaWNhbgpzdHlsZSwgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBsaXN0IGlzIGFzIGZvbGxv d3M6CgogICAgICgoaWYgZGF5bmFtZSAoY29uY2F0IGRheW5hbWUgIiwgIikpIG1vbnRobmFtZSAi ICIgZGF5ICIsICIgeWVhcikKCndoaWxlIGluIHRoZSBFdXJvcGVhbiBzdHlsZSB0aGlzIHZhbHVl IGlzIHRoZSBkZWZhdWx0OgoKICAgICAoKGlmIGRheW5hbWUgKGNvbmNhdCBkYXluYW1lICIsICIp KSBkYXkgIiAiIG1vbnRobmFtZSAiICIgeWVhcikKClRoZSBkZWZhdWx0IElTTyBkYXRlIHJlcHJl c2VudGF0aW9uIGlzOgoKICAgICAoKGZvcm1hdCAiJXMtJS4yZC0lLjJkIiB5ZWFyIChzdHJpbmct dG8tbnVtYmVyIG1vbnRoKQogICAgICAgICAgICAgIChzdHJpbmctdG8tbnVtYmVyIGRheSkpKQoK QW5vdGhlciB0eXBpY2FsIEFtZXJpY2FuIGZvcm1hdCBpczoKCiAgICAgKG1vbnRoICIvIiBkYXkg Ii8iIChzdWJzdHJpbmcgeWVhciAtMikpCgoKKioqIDMxLjEzLjUgVGltZSBEaXNwbGF5IEZvcm1h dAoKVGhlIGNhbGVuZGFyIGFuZCBkaWFyeSBieSBkZWZhdWx0IGRpc3BsYXkgdGltZXMgb2YgZGF5 IGluIHRoZQpjb252ZW50aW9uYWwgQW1lcmljYW4gc3R5bGUgd2l0aCB0aGUgaG91cnMgZnJvbSAx IHRocm91Z2ggMTIsIG1pbnV0ZXMsCmFuZCBlaXRoZXIg4oCYYW3igJkgb3Ig4oCYcG3igJkuICBJ ZiB5b3UgcHJlZmVyIHRoZSBFdXJvcGVhbiBzdHlsZSwgYWxzbyBrbm93bgppbiB0aGUgVVMgYXMg bWlsaXRhcnksIGluIHdoaWNoIHRoZSBob3VycyBnbyBmcm9tIDAwIHRvIDIzLCB5b3UgY2FuCmFs dGVyIHRoZSB2YXJpYWJsZSDigJhjYWxlbmRhci10aW1lLWRpc3BsYXktZm9ybeKAmS4gIFRoaXMg dmFyaWFibGUgaXMgYQpsaXN0IG9mIGV4cHJlc3Npb25zIHRoYXQgY2FuIGludm9sdmUgdGhlIHZh cmlhYmxlcyDigJgxMi1ob3Vyc+KAmSwK4oCYMjQtaG91cnPigJksIGFuZCDigJhtaW51dGVz4oCZ LCB3aGljaCBhcmUgYWxsIG51bWJlcnMgaW4gc3RyaW5nIGZvcm0sIGFuZArigJhhbS1wbeKAmSBh bmQg4oCYdGltZS16b25l4oCZLCB3aGljaCBhcmUgYm90aCBhbHBoYWJldGljIHN0cmluZ3MuICBU aGUgZGVmYXVsdAp2YWx1ZSBpczoKCiAgICAgKDEyLWhvdXJzICI6IiBtaW51dGVzIGFtLXBtCiAg ICAgICAgICAgICAgIChpZiB0aW1lLXpvbmUgIiAoIikgdGltZS16b25lIChpZiB0aW1lLXpvbmUg IikiKSkKCkhlcmUgaXMgYSB2YWx1ZSB0aGF0IHByb3ZpZGVzIEV1cm9wZWFuIHN0eWxlIHRpbWVz OgoKICAgICAoMjQtaG91cnMgIjoiIG1pbnV0ZXMKICAgICAgICAgICAgICAgKGlmIHRpbWUtem9u ZSAiICgiKSB0aW1lLXpvbmUgKGlmIHRpbWUtem9uZSAiKSIpKQoKICAgTm90ZSB0aGF0IGZldyBj YWxlbmRhciBmdW5jdGlvbnMgcmV0dXJuIGEgdGltZSBvZiBkYXkgKGF0IHByZXNlbnQsCm9ubHkg c29sYXIgZnVuY3Rpb25zKS4KCgoqKiogMzEuMTMuNiBDdXN0b21pemluZyB0aGUgRGlhcnkKCk9y ZGluYXJpbHksIHRoZSBkaWFyeSB3aW5kb3cgaW5kaWNhdGVzIGFueSBob2xpZGF5cyB0aGF0IGZh bGwgb24gdGhlCmRhdGUgb2YgdGhlIGRpYXJ5IGVudHJpZXMsIGVpdGhlciBpbiB0aGUgbW9kZSBs aW5lIG9yIHRoZSBidWZmZXIgaXRzZWxmLgpUaGUgcHJvY2VzcyBvZiBjaGVja2luZyBmb3IgaG9s aWRheXMgY2FuIGJlIHNsb3csIGRlcGVuZGluZyBvbiB0aGUKZGVmaW5lZCBob2xpZGF5cy4gIElu IHRoYXQgY2FzZSwgc2V0dGluZyDigJhkaWFyeS1zaG93LWhvbGlkYXlzLWZsYWfigJkgdG8K4oCY bmls4oCZIHdpbGwgc3BlZWQgdXAgdGhlIGRpYXJ5IGRpc3BsYXkuCgogICBUaGUgdmFyaWFibGUg 4oCYZGlhcnktbnVtYmVyLW9mLWVudHJpZXPigJkgY29udHJvbHMgdGhlIG51bWJlciBvZiBkYXlz IG9mCmRpYXJ5IGVudHJpZXMgdG8gYmUgZGlzcGxheWVkIGF0IG9uZSB0aW1lLiAgSXQgYWZmZWN0 cyB0aGUgaW5pdGlhbApkaXNwbGF5IHdoZW4g4oCYY2FsZW5kYXItdmlldy1kaWFyeS1pbml0aWFs bHktZmxhZ+KAmSBpcyDigJh04oCZLCBhcyB3ZWxsIGFzIHRoZQpjb21tYW5kIOKAmE0teCBkaWFy eeKAmS4gIEZvciBleGFtcGxlLCBhIHZhbHVlIG9mIDEgKHRoZSBkZWZhdWx0KSBkaXNwbGF5cwpv bmx5IHRoZSBjdXJyZW50IGRheeKAmXMgZGlhcnkgZW50cmllcywgd2hlcmVhcyBhIHZhbHVlIG9m IDIgd2lsbCBhbHNvCnNob3cgdGhlIG5leHQgZGF54oCZcyBlbnRyaWVzLiAgVGhlIHZhbHVlIGNh biBhbHNvIGJlIGEgdmVjdG9yIG9mIHNldmVuCmludGVnZXJzOiBmb3IgZXhhbXBsZSwgaWYgdGhl IHZhbHVlIGlzIOKAmFswIDIgMiAyIDIgNCAxXeKAmSB0aGVuIG5vIGRpYXJ5CmVudHJpZXMgYXBw ZWFyIG9uIFN1bmRheSwgdGhlIGN1cnJlbnQgZGF0ZeKAmXMgYW5kIHRoZSBuZXh0IGRheeKAmXMg ZGlhcnkKZW50cmllcyBhcHBlYXIgTW9uZGF5IHRocm91Z2ggVGh1cnNkYXksIEZyaWRheSB0aHJv dWdoIE1vbmRheeKAmXMgZW50cmllcwphcHBlYXIgb24gRnJpZGF5LCB3aGlsZSBvbiBTYXR1cmRh eSBvbmx5IHRoYXQgZGF54oCZcyBlbnRyaWVzIGFwcGVhci4KCiAgIFlvdSBjYW4gY3VzdG9taXpl IHRoZSBmb3JtIG9mIGRhdGVzIGluIHlvdXIgZGlhcnkgZmlsZSBieSBzZXR0aW5nIHRoZQp2YXJp YWJsZSDigJhkaWFyeS1kYXRlLWZvcm1z4oCZLiAgVGhpcyB2YXJpYWJsZSBpcyBhIGxpc3Qgb2Yg cGF0dGVybnMgZm9yCnJlY29nbml6aW5nIGEgZGF0ZS4gIEVhY2ggZGF0ZSBwYXR0ZXJuIGlzIGEg bGlzdCB3aG9zZSBlbGVtZW50cyBtYXkgYmUKcmVndWxhciBleHByZXNzaW9ucyAoKm5vdGUgKGVs aXNwKVJlZ3VsYXIgRXhwcmVzc2lvbnM6Oikgb3IgdGhlIHN5bWJvbHMK4oCYbW9udGjigJksIOKA mGRheeKAmSwg4oCYeWVhcuKAmSwg4oCYbW9udGhuYW1l4oCZLCBhbmQg4oCYZGF5bmFtZeKAmS4g IEFsbCB0aGVzZSBlbGVtZW50cwpzZXJ2ZSBhcyBwYXR0ZXJucyB0aGF0IG1hdGNoIGNlcnRhaW4g a2luZHMgb2YgdGV4dCBpbiB0aGUgZGlhcnkgZmlsZS4KSW4gb3JkZXIgZm9yIHRoZSBkYXRlIHBh dHRlcm4gYXMgYSB3aG9sZSB0byBtYXRjaCwgYWxsIG9mIGl0cyBlbGVtZW50cwptdXN0IG1hdGNo IGNvbnNlY3V0aXZlbHkuCgogICBBIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiBhIGRhdGUgcGF0dGVy biBtYXRjaGVzIGluIGl0cyB1c3VhbCBmYXNoaW9uLAp1c2luZyB0aGUgc3RhbmRhcmQgc3ludGF4 IHRhYmxlIGFsdGVyZWQgc28gdGhhdCDigJgq4oCZIGlzIGEgd29yZApjb25zdGl0dWVudC4KCiAg IFRoZSBzeW1ib2xzIOKAmG1vbnRo4oCZLCDigJhkYXnigJksIOKAmHllYXLigJksIOKAmG1vbnRo bmFtZeKAmSwgYW5kIOKAmGRheW5hbWXigJkgbWF0Y2gKdGhlIG1vbnRoIG51bWJlciwgZGF5IG51 bWJlciwgeWVhciBudW1iZXIsIG1vbnRoIG5hbWUsIGFuZCBkYXkgbmFtZSBvZgp0aGUgZGF0ZSBi ZWluZyBjb25zaWRlcmVkLiAgVGhlIHN5bWJvbHMgdGhhdCBtYXRjaCBudW1iZXJzIGFsbG93IGxl YWRpbmcKemVyb3M7IHRob3NlIHRoYXQgbWF0Y2ggbmFtZXMgYWxsb3cgY2FwaXRhbGl6YXRpb24g YW5kIGFiYnJldmlhdGlvbiAoYXMKc3BlY2lmaWVkIGJ5IOKAmGNhbGVuZGFyLW1vbnRoLWFiYnJl di1hcnJheeKAmSBhbmQK4oCYY2FsZW5kYXItZGF5LWFiYnJldi1hcnJheeKAmSkuICBBbGwgdGhl IHN5bWJvbHMgY2FuIG1hdGNoIOKAmCrigJk7IHNpbmNlIOKAmCrigJkKaW4gYSBkaWFyeSBlbnRy eSBtZWFucyDigJxhbnkgZGF54oCdLCDigJxhbnkgbW9udGjigJ0sIGFuZCBzbyBvbiwgaXQgc2hv dWxkCm1hdGNoIHJlZ2FyZGxlc3Mgb2YgdGhlIGRhdGUgYmVpbmcgY29uc2lkZXJlZC4KCiAgIFRo ZSBkZWZhdWx0IHZhbHVlIG9mIOKAmGRpYXJ5LWRhdGUtZm9ybXPigJkgaW4gdGhlIEFtZXJpY2Fu IHN0eWxlIGlzCnByb3ZpZGVkIGJ5IOKAmGRpYXJ5LWFtZXJpY2FuLWRhdGUtZm9ybXPigJk6Cgog ICAgICgobW9udGggIi8iIGRheSAiW14vMC05XSIpCiAgICAgIChtb250aCAiLyIgZGF5ICIvIiB5 ZWFyICJbXjAtOV0iKQogICAgICAobW9udGhuYW1lICIgKiIgZGF5ICJbXiwwLTldIikKICAgICAg KG1vbnRobmFtZSAiICoiIGRheSAiLCAqIiB5ZWFyICJbXjAtOV0iKQogICAgICAoZGF5bmFtZSAi XFxXIikpCgpUaGUgdmFyaWFibGVzIOKAmGRpYXJ5LWV1cm9wZWFuLWRhdGUtZm9ybXPigJkgYW5k IOKAmGRpYXJ5LWlzby1kYXRlLWZvcm1z4oCZCnByb3ZpZGUgb3RoZXIgZGVmYXVsdCBzdHlsZXMu CgogICBUaGUgZGF0ZSBwYXR0ZXJucyBpbiB0aGUgbGlzdCBtdXN0IGJlIF9tdXR1YWxseSBleGNs dXNpdmVfIGFuZCBtdXN0Cm5vdCBtYXRjaCBhbnkgcG9ydGlvbiBvZiB0aGUgZGlhcnkgZW50cnkg aXRzZWxmLCBqdXN0IHRoZSBkYXRlIGFuZCBvbmUKY2hhcmFjdGVyIG9mIHdoaXRlc3BhY2UuICBJ ZiwgdG8gYmUgbXV0dWFsbHkgZXhjbHVzaXZlLCB0aGUgcGF0dGVybiBtdXN0Cm1hdGNoIGEgcG9y dGlvbiBvZiB0aGUgZGlhcnkgZW50cnkgdGV4dOKAlGJleW9uZCB0aGUgd2hpdGVzcGFjZSB0aGF0 IGVuZHMKdGhlIGRhdGXigJR0aGVuIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBkYXRlIHBhdHRl cm4gX211c3RfIGJlIOKAmGJhY2t1cOKAmS4KVGhpcyBjYXVzZXMgdGhlIGRhdGUgcmVjb2duaXpl ciB0byBiYWNrIHVwIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlCmN1cnJlbnQgd29yZCBvZiB0aGUg ZGlhcnkgZW50cnksIGFmdGVyIGZpbmlzaGluZyB0aGUgbWF0Y2guICBFdmVuIGlmIHlvdQp1c2Ug 4oCYYmFja3Vw4oCZLCB0aGUgZGF0ZSBwYXR0ZXJuIG11c3QgYWJzb2x1dGVseSBub3QgbWF0Y2gg bW9yZSB0aGFuIGEKcG9ydGlvbiBvZiB0aGUgZmlyc3Qgd29yZCBvZiB0aGUgZGlhcnkgZW50cnku ICBGb3IgZXhhbXBsZSwgdGhlIGRlZmF1bHQKdmFsdWUgb2Yg4oCYZGlhcnktZXVyb3BlYW4tZGF0 ZS1mb3Jtc+KAmSBpczoKCiAgICAgKChkYXkgIi8iIG1vbnRoICJbXi8wLTldIikKICAgICAgKGRh eSAiLyIgbW9udGggIi8iIHllYXIgIlteMC05XSIpCiAgICAgIChiYWNrdXAgZGF5ICIgKiIgbW9u dGhuYW1lICJcXFcrXFw8XFwoW14qMC05XVxcfFxcKFswLTldK1s6YUFwUF1cXClcXCkiKQogICAg ICAoZGF5ICIgKiIgbW9udGhuYW1lICIgKiIgeWVhciAiW14wLTldIikKICAgICAgKGRheW5hbWUg IlxcVyIpKQoKTm90aWNlIHRoZSB1c2Ugb2Yg4oCYYmFja3Vw4oCZIGluIHRoZSB0aGlyZCBwYXR0 ZXJuLCBiZWNhdXNlIGl0IG5lZWRzIHRvCm1hdGNoIHBhcnQgb2YgYSB3b3JkIGJleW9uZCB0aGUg ZGF0ZSBpdHNlbGYgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSB0aGUKZm91cnRoIHBhdHRlcm4uCgoK KioqIDMxLjEzLjcgRGlhcnkgRW50cmllcyBVc2luZyBub24tR3JlZ29yaWFuIENhbGVuZGFycwoK QXMgd2VsbCBhcyBlbnRyaWVzIGJhc2VkIG9uIHRoZSBzdGFuZGFyZCBHcmVnb3JpYW4gY2FsZW5k YXIsIHlvdXIgZGlhcnkKY2FuIGhhdmUgZW50cmllcyBiYXNlZCBvbiBCYWjDoeKAmcOtLCBDaGlu ZXNlLCBIZWJyZXcsIG9yIElzbGFtaWMgZGF0ZXMuClJlY29nbml0aW9uIG9mIHN1Y2ggZW50cmll cyBjYW4gYmUgdGltZS1jb25zdW1pbmcsIGhvd2V2ZXIsIGFuZCBzaW5jZQptb3N0IHBlb3BsZSBk b27igJl0IHVzZSB0aGVtLCB5b3UgbXVzdCBleHBsaWNpdGx5IGVuYWJsZSB0aGVpciB1c2UuICBJ Zgp5b3Ugd2FudCB0aGUgZGlhcnkgdG8gcmVjb2duaXplIEhlYnJldy1kYXRlIGRpYXJ5IGVudHJp ZXMsIGZvciBleGFtcGxlLAp5b3UgbXVzdCBkbyB0aGlzOgoKICAgICAoYWRkLWhvb2sgJ2RpYXJ5 LW5vbmdyZWdvcmlhbi1saXN0aW5nLWhvb2sgJ2RpYXJ5LWhlYnJldy1saXN0LWVudHJpZXMpCiAg ICAgKGFkZC1ob29rICdkaWFyeS1ub25ncmVnb3JpYW4tbWFya2luZy1ob29rICdkaWFyeS1oZWJy ZXctbWFyay1lbnRyaWVzKQoKU2ltaWxhcmx5LCBmb3IgSXNsYW1pYywgQmFow6HigJnDrSBhbmQg Q2hpbmVzZSBlbnRyaWVzLCBhZGQK4oCYZGlhcnktaXNsYW1pYy1saXN0LWVudHJpZXPigJkgYW5k IOKAmGRpYXJ5LWlzbGFtaWMtbWFyay1lbnRyaWVz4oCZLArigJhkaWFyeS1iYWhhaS1saXN0LWVu dHJpZXPigJkgYW5kIOKAmGRpYXJ5LWJhaGFpLW1hcmstZW50cmllc+KAmSwgb3IK4oCYZGlhcnkt Y2hpbmVzZS1saXN0LWVudHJpZXPigJkgYW5kIOKAmGRpYXJ5LWNoaW5lc2UtbWFyay1lbnRyaWVz 4oCZLgoKICAgVGhlc2UgZGlhcnkgZW50cmllcyBoYXZlIHRoZSBzYW1lIGZvcm1hdHMgYXMgR3Jl Z29yaWFuLWRhdGUgZGlhcnkKZW50cmllczsgZXhjZXB0IHRoYXQg4oCYZGlhcnktYmFoYWktZW50 cnktc3ltYm9s4oCZIChkZWZhdWx0IOKAmELigJkpIG11c3QKcHJlY2VkZSBhIEJhaMOh4oCZw60g ZGF0ZSwg4oCYZGlhcnktY2hpbmVzZS1lbnRyeS1zeW1ib2zigJkgKGRlZmF1bHQg4oCYQ+KAmSkg YQpDaGluZXNlIGRhdGUsIOKAmGRpYXJ5LWhlYnJldy1lbnRyeS1zeW1ib2zigJkgKGRlZmF1bHQg 4oCYSOKAmSkgYSBIZWJyZXcgZGF0ZSwKYW5kIOKAmGRpYXJ5LWlzbGFtaWMtZW50cnktc3ltYm9s 4oCZIChkZWZhdWx0IOKAmEnigJkpIGFuIElzbGFtaWMgZGF0ZS4KTW9yZW92ZXIsIG5vbi1HcmVn b3JpYW4gbW9udGggbmFtZXMgbWF5IG5vdCBiZSBhYmJyZXZpYXRlZCAoYmVjYXVzZSB0aGUKZmly c3QgdGhyZWUgbGV0dGVycyBhcmUgb2Z0ZW4gbm90IHVuaXF1ZSkuICAoTm90ZSBhbHNvIHRoYXQg eW91IG11c3QgdXNlCuKAnEFkYXIgSeKAnSBpZiB5b3Ugd2FudCBBZGFyIG9mIGEgY29tbW9uIEhl YnJldyB5ZWFyLikgIEZvciBleGFtcGxlLCBhCmRpYXJ5IGVudHJ5IGZvciB0aGUgSGVicmV3IGRh dGUgSGVzaHZhbiAyNSBjb3VsZCBsb29rIGxpa2UgdGhpczoKCiAgICAgSEhlc2h2YW4gMjUgSGFw cHkgSGVicmV3IGJpcnRoZGF5IQoKYW5kIHdvdWxkIGFwcGVhciBpbiB0aGUgZGlhcnkgZm9yIGFu eSBkYXRlIHRoYXQgY29ycmVzcG9uZHMgdG8gSGVzaHZhbgoyNSBvbiB0aGUgSGVicmV3IGNhbGVu ZGFyLiAgQW5kIGhlcmUgaXMgYW4gSXNsYW1pYy1kYXRlIGRpYXJ5IGVudHJ5IHRoYXQKbWF0Y2hl cyBEaHUgYWwtUWFkYSAyNToKCiAgICAgSURodSBhbC1RYWRhIDI1IEhhcHB5IElzbGFtaWMgYmly dGhkYXkhCgogICBBcyB3aXRoIEdyZWdvcmlhbi1kYXRlIGRpYXJ5IGVudHJpZXMsIG5vbi1HcmVn b3JpYW4gZW50cmllcyBhcmUKbm9ubWFya2luZyBpZiBwcmVjZWRlZCBieSDigJhkaWFyeS1ub25t YXJraW5nLXN5bWJvbOKAmSAoZGVmYXVsdCDigJgm4oCZKS4KCiAgIEhlcmUgaXMgYSB0YWJsZSBv ZiBjb21tYW5kcyB1c2VkIGluIHRoZSBjYWxlbmRhciB0byBjcmVhdGUgZGlhcnkKZW50cmllcyB0 aGF0IG1hdGNoIHRoZSBzZWxlY3RlZCBkYXRlIGFuZCBvdGhlciBkYXRlcyB0aGF0IGFyZSBzaW1p bGFyIGluCnRoZSBCYWjDoeKAmcOtLCBDaGluZXNlLCBIZWJyZXcsIG9yIElzbGFtaWMgY2FsZW5k YXJzOgoK4oCYaSBoIGTigJkKICAgICDigJhkaWFyeS1oZWJyZXctaW5zZXJ0LWVudHJ54oCZCuKA mGkgaCBt4oCZCiAgICAg4oCYZGlhcnktaGVicmV3LWluc2VydC1tb250aGx5LWVudHJ54oCZCuKA mGkgaCB54oCZCiAgICAg4oCYZGlhcnktaGVicmV3LWluc2VydC15ZWFybHktZW50cnnigJkK4oCY aSBpIGTigJkKICAgICDigJhkaWFyeS1pc2xhbWljLWluc2VydC1lbnRyeeKAmQrigJhpIGkgbeKA mQogICAgIOKAmGRpYXJ5LWlzbGFtaWMtaW5zZXJ0LW1vbnRobHktZW50cnnigJkK4oCYaSBpIHni gJkKICAgICDigJhkaWFyeS1pc2xhbWljLWluc2VydC15ZWFybHktZW50cnnigJkK4oCYaSBCIGTi gJkKICAgICDigJhkaWFyeS1iYWhhaS1pbnNlcnQtZW50cnnigJkK4oCYaSBCIG3igJkKICAgICDi gJhkaWFyeS1iYWhhaS1pbnNlcnQtbW9udGhseS1lbnRyeeKAmQrigJhpIEIgeeKAmQogICAgIOKA mGRpYXJ5LWJhaGFpLWluc2VydC15ZWFybHktZW50cnnigJkK4oCYaSBDIGTigJkKICAgICDigJhk aWFyeS1jaGluZXNlLWluc2VydC1lbnRyeeKAmQrigJhpIEMgbeKAmQogICAgIOKAmGRpYXJ5LWNo aW5lc2UtaW5zZXJ0LW1vbnRobHktZW50cnnigJkK4oCYaSBDIHnigJkKICAgICDigJhkaWFyeS1j aGluZXNlLWluc2VydC15ZWFybHktZW50cnnigJkK4oCYaSBDIGHigJkKICAgICDigJhkaWFyeS1j aGluZXNlLWluc2VydC1hbm5pdmVyc2FyeS1lbnRyeeKAmQoKICAgVGhlc2UgY29tbWFuZHMgd29y ayBtdWNoIGxpa2UgdGhlIGNvcnJlc3BvbmRpbmcgY29tbWFuZHMgZm9yIG9yZGluYXJ5CmRpYXJ5 IGVudHJpZXM6IHRoZXkgYXBwbHkgdG8gdGhlIGRhdGUgdGhhdCBwb2ludCBpcyBvbiBpbiB0aGUg Y2FsZW5kYXIKd2luZG93LCBhbmQgd2hhdCB0aGV5IGRvIGlzIGluc2VydCBqdXN0IHRoZSBkYXRl IHBvcnRpb24gb2YgYSBkaWFyeQplbnRyeSBhdCB0aGUgZW5kIG9mIHlvdXIgZGlhcnkgZmlsZS4g IFlvdSBtdXN0IHRoZW4gaW5zZXJ0IHRoZSByZXN0IG9mCnRoZSBkaWFyeSBlbnRyeS4gIFRoZSBi YXNpYyBjb21tYW5kcyBhZGQgYW4gZW50cnkgZm9yIHRoZSBzcGVjaWZpYwpub24tR3JlZ29yaWFu IGRhdGUsIHRoZSDigJhtb250aGx54oCZIGNvbW1hbmRzIGZvciB0aGUgZ2l2ZW4gbm9uLUdyZWdv cmlhbgpkYXktd2l0aGluLW1vbnRoIGluIGV2ZXJ5IG1vbnRoLCBhbmQgdGhlIOKAmHllYXJseeKA mSBjb21tYW5kcyBmb3IgdGhlIGdpdmVuCm5vbi1HcmVnb3JpYW4gZGF5IGFuZCBtb250aCBpbiBl dmVyeSB5ZWFyLgoKCioqKiAzMS4xMy44IERpYXJ5IERpc3BsYXkKCkRpYXJ5IGRpc3BsYXkgd29y a3MgYnkgcHJlcGFyaW5nIHRoZSBsaXN0IG9mIGRpYXJ5IGVudHJpZXMgYW5kIHRoZW4KcnVubmlu ZyB0aGUgZnVuY3Rpb24gc3BlY2lmaWVkIGJ5IHRoZSB2YXJpYWJsZSDigJhkaWFyeS1kaXNwbGF5 LWZ1bmN0aW9u4oCZLgpUaGUgZGVmYXVsdCB2YWx1ZSDigJhkaWFyeS1mYW5jeS1kaXNwbGF54oCZ IGRpc3BsYXlzIGRpYXJ5IGVudHJpZXMgYW5kCmhvbGlkYXlzIGJ5IGNvcHlpbmcgdGhlbSBpbnRv IGEgc3BlY2lhbCBidWZmZXIgdGhhdCBleGlzdHMgb25seSBmb3IgdGhlCnNha2Ugb2YgZGlzcGxh eS4gIENvcHlpbmcgZGlhcnkgZW50cmllcyB0byBhIHNlcGFyYXRlIGJ1ZmZlciBwcm92aWRlcyBh bgpvcHBvcnR1bml0eSB0byBjaGFuZ2UgdGhlIGRpc3BsYXllZCB0ZXh0IHRvIG1ha2UgaXQgcHJl dHRpZXLigJRmb3IKZXhhbXBsZSwgdG8gc29ydCB0aGUgZW50cmllcyBieSB0aGUgZGF0ZXMgdGhl eSBhcHBseSB0by4KCiAgIE9yZGluYXJpbHksIHRoZSBmYW5jeSBkaWFyeSBidWZmZXIgZG9lcyBu b3Qgc2hvdyBkYXlzIGZvciB3aGljaCB0aGVyZQphcmUgbm8gZGlhcnkgZW50cmllcywgZXZlbiBp ZiB0aGF0IGRheSBpcyBhIGhvbGlkYXkuICBJZiB5b3Ugd2FudCBzdWNoCmRheXMgdG8gYmUgc2hv d24gaW4gdGhlIGZhbmN5IGRpYXJ5IGJ1ZmZlciwgc2V0IHRoZSB2YXJpYWJsZQrigJhkaWFyeS1s aXN0LWluY2x1ZGUtYmxhbmtz4oCZIHRvIOKAmHTigJkuCgogICBUaGUgZmFuY3kgZGlhcnkgYnVm ZmVyIGVuYWJsZXMgVmlldyBtb2RlICgqbm90ZSBWaWV3IE1vZGU6OikuCgogICBUaGUgYWx0ZXJu YXRpdmUgZGlzcGxheSBtZXRob2Qg4oCYZGlhcnktc2ltcGxlLWRpc3BsYXnigJkgc2hvd3MgdGhl CmFjdHVhbCBkaWFyeSBidWZmZXIsIGFuZCB1c2VzIGludmlzaWJsZSB0ZXh0IHRvIGhpZGUgZW50 cmllcyB0aGF0IGRvbuKAmXQKYXBwbHkuICBIb2xpZGF5cyBhcmUgc2hvd24gaW4gdGhlIG1vZGUg bGluZS4gIFRoZSBhZHZhbnRhZ2Ugb2YgdGhpcwptZXRob2QgaXMgdGhhdCB5b3UgY2FuIGVkaXQg dGhlIGJ1ZmZlciBhbmQgc2F2ZSB5b3VyIGNoYW5nZXMgZGlyZWN0bHkgdG8KdGhlIGRpYXJ5IGZp bGUuICBUaGlzIG1ldGhvZCBpcyBub3QgYXMgZmxleGlibGUgYXMgdGhlIGZhbmN5IG1ldGhvZCwK aG93ZXZlci4gIEZvciBleGFtcGxlLCBpdCBjYW5ub3Qgc29ydCBlbnRyaWVzLiAgQW5vdGhlciBk aXNhZHZhbnRhZ2UgaXMKdGhhdCBpbnZpc2libGUgdGV4dCBjYW4gYmUgY29uZnVzaW5nLiAgRm9y IGV4YW1wbGUsIGlmIHlvdSBjb3B5IGEgcmVnaW9uCm9mIHRleHQgaW4gb3JkZXIgdG8gcGFzdGUg aXQgZWxzZXdoZXJlLCBpbnZpc2libGUgdGV4dCBtYXkgYmUgaW5jbHVkZWQuClNpbWlsYXJseSwg c2luY2UgdGhlIGRpYXJ5IGJ1ZmZlciBhcyB5b3Ugc2VlIGl0IGlzIGFuIGlsbHVzaW9uLCBzaW1w bHkKcHJpbnRpbmcgdGhlIGJ1ZmZlciBtYXkgbm90IHByaW50IHdoYXQgeW91IHNlZSBvbiB5b3Vy IHNjcmVlbi4KCiAgIEZvciB0aGlzIHJlYXNvbiwgdGhlcmUgaXMgYSBzcGVjaWFsIGNvbW1hbmQg dG8gcHJpbnQgaGFyZCBjb3B5IG9mIHRoZQpkaWFyeSBidWZmZXIgX2FzIGl0IGFwcGVhcnNfOyB0 aGlzIGNvbW1hbmQgaXMg4oCYTS14IGRpYXJ5LXByaW50LWVudHJpZXPigJkuCkl0IHdvcmtzIHdp dGggZWl0aGVyIGRpc3BsYXkgbWV0aG9kLCBhbHRob3VnaCB3aXRoIHRoZSBmYW5jeSBkaXNwbGF5 IHlvdQpjYW4gYWxzbyBwcmludCB0aGUgYnVmZmVyIGxpa2UgYW55IG90aGVyLiAgVG8gcHJpbnQg YSBoYXJkIGNvcHkgb2YgYQpkYXktYnktZGF5IGRpYXJ5IGZvciBhIHdlZWssIHBvc2l0aW9uIHBv aW50IG9uIHRoZSBmaXJzdCBkYXkgb2YgdGhlCndlZWssIHR5cGUg4oCYNyBk4oCZLCBhbmQgdGhl biBkbyDigJhNLXggZGlhcnktcHJpbnQtZW50cmllc+KAmS4gIEFzIHVzdWFsLCB0aGUKaW5jbHVz aW9uIG9mIHRoZSBob2xpZGF5cyBzbG93cyBkb3duIHRoZSBkaXNwbGF5IHNsaWdodGx5OyB5b3Ug Y2FuIHNwZWVkCnRoaW5ncyB1cCBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZSDigJhkaWFyeS1zaG93 LWhvbGlkYXlzLWZsYWfigJkgdG8g4oCYbmls4oCZLgoKICAgVGhpcyBjb21tYW5kIHByZXBhcmVz IGEgdGVtcG9yYXJ5IGJ1ZmZlciB0aGF0IGNvbnRhaW5zIG9ubHkgdGhlIGRpYXJ5CmVudHJpZXMg Y3VycmVudGx5IHZpc2libGUgaW4gdGhlIGRpYXJ5IGJ1ZmZlci4gIFVubGlrZSB3aXRoIHRoZSBz aW1wbGUKZGlzcGxheSwgdGhlIG90aGVyIGlycmVsZXZhbnQgZW50cmllcyBhcmUgcmVhbGx5IGFi c2VudCwgbm90IGp1c3QKaGlkZGVuLiAgQWZ0ZXIgcHJlcGFyaW5nIHRoZSBidWZmZXIsIGl0IHJ1 bnMgdGhlIGhvb2sK4oCYZGlhcnktcHJpbnQtZW50cmllcy1ob29r4oCZLiAgVGhlIGRlZmF1bHQg dmFsdWUgb2YgdGhpcyBob29rIHNlbmRzIHRoZQpkYXRhIGRpcmVjdGx5IHRvIHRoZSBwcmludGVy IHdpdGggdGhlIGNvbW1hbmQg4oCYbHByLWJ1ZmZlcuKAmSAoKm5vdGUKUHJpbnRpbmc6OikuICBJ ZiB5b3Ugd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgY29tbWFuZCB0byBkbyB0aGUgcHJpbnRpbmcs Cmp1c3QgY2hhbmdlIHRoZSB2YWx1ZSBvZiB0aGlzIGhvb2suICBPdGhlciB1c2VzIG1pZ2h0IGlu Y2x1ZGUsIGZvcgpleGFtcGxlLCByZWFycmFuZ2luZyB0aGUgbGluZXMgaW50byBvcmRlciBieSBk YXkgYW5kIHRpbWUuCgogICBZb3UgY2FuIGVkaXQgdGhlIGRpYXJ5IGVudHJpZXMgYXMgdGhleSBh cHBlYXIgaW4gdGhlIHNpbXBsZSBkaWFyeQp3aW5kb3csIGJ1dCBpdCBpcyBpbXBvcnRhbnQgdG8g cmVtZW1iZXIgdGhhdCB0aGUgYnVmZmVyIGRpc3BsYXllZApjb250YWlucyB0aGUgX2VudGlyZV8g ZGlhcnkgZmlsZSwgd2l0aCBwb3J0aW9ucyBvZiBpdCBjb25jZWFsZWQgZnJvbQp2aWV3LiAgVGhp cyBtZWFucywgZm9yIGluc3RhbmNlLCB0aGF0IHRoZSDigJhDLWbigJkgKOKAmGZvcndhcmQtY2hh cuKAmSkgY29tbWFuZApjYW4gcHV0IHBvaW50IGF0IHdoYXQgYXBwZWFycyB0byBiZSB0aGUgZW5k IG9mIHRoZSBsaW5lLCBidXQgd2hhdCBpcyBpbgpyZWFsaXR5IHRoZSBtaWRkbGUgb2Ygc29tZSBj b25jZWFsZWQgbGluZS4KCiAgIF9CZSBjYXJlZnVsIHdoZW4gZWRpdGluZyB0aGUgZGlhcnkgZW50 cmllcyBpbiB0aGUgc2ltcGxlIGRpc3BsYXkhXwpJbnNlcnRpbmcgYWRkaXRpb25hbCBsaW5lcyBv ciBhZGRpbmcvZGVsZXRpbmcgY2hhcmFjdGVycyBpbiB0aGUgbWlkZGxlCm9mIGEgdmlzaWJsZSBs aW5lIGNhbm5vdCBjYXVzZSBwcm9ibGVtcywgYnV0IGVkaXRpbmcgYXQgdGhlIGVuZCBvZiBhCmxp bmUgbWF5IG5vdCBkbyB3aGF0IHlvdSBleHBlY3QuICBEZWxldGluZyBhIGxpbmUgbWF5IGRlbGV0 ZSBvdGhlcgppbnZpc2libGUgZW50cmllcyB0aGF0IGZvbGxvdyBpdC4gIEJlZm9yZSBlZGl0aW5n IHRoZSBzaW1wbGUgZGlhcnkKYnVmZmVyLCBpdCBpcyBiZXN0IHRvIGRpc3BsYXkgdGhlIGVudGly ZSBmaWxlIHdpdGgg4oCYc+KAmQoo4oCYZGlhcnktc2hvdy1hbGwtZW50cmllc+KAmSkuCgoKKioq IDMxLjEzLjkgRmFuY3kgRGlhcnkgRGlzcGxheQoKVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBvbmx5 IHdvcmsgd2l0aCB0aGUgZmFuY3kgZGlhcnkgZGlzcGxheS4KCiAgIFlvdSBjYW4gdXNlIHRoZSBu b3JtYWwgaG9vayDigJhkaWFyeS1saXN0LWVudHJpZXMtaG9va+KAmSB0byBzb3J0IGVhY2gKZGF5 4oCZcyBkaWFyeSBlbnRyaWVzIGJ5IHRoZWlyIHRpbWUgb2YgZGF5LiAgSGVyZeKAmXMgaG93OgoK ICAgICAoYWRkLWhvb2sgJ2RpYXJ5LWxpc3QtZW50cmllcy1ob29rICdkaWFyeS1zb3J0LWVudHJp ZXMgdCkKCkZvciBlYWNoIGRheSwgdGhpcyBzb3J0cyBkaWFyeSBlbnRyaWVzIHRoYXQgYmVnaW4g d2l0aCBhIHJlY29nbml6YWJsZQp0aW1lIG9mIGRheSBhY2NvcmRpbmcgdG8gdGhlaXIgdGltZXMu ICBEaWFyeSBlbnRyaWVzIHdpdGhvdXQgdGltZXMgY29tZQpmaXJzdCB3aXRoaW4gZWFjaCBkYXku ICBOb3RlIGhvdyB0aGUgc29ydCBjb21tYW5kIGlzIHBsYWNlZCBhdCB0aGUgZW5kCm9mIHRoZSBo b29rIGxpc3QsIGluIGNhc2UgZWFybGllciBtZW1iZXJzIG9mIHRoZSBsaXN0IGNoYW5nZSB0aGUg b3JkZXIKb2YgdGhlIGRpYXJ5IGVudHJpZXMsIG9yIGFkZCBpdGVtcy4KCiAgIFlvdSBjYW4gd3Jp dGUg4oCYY29tbWVudHPigJkgaW4gZGlhcnkgZW50cmllcywgYnkgc2V0dGluZyB0aGUgdmFyaWFi bGVzCuKAmGRpYXJ5LWNvbW1lbnQtc3RhcnTigJkgYW5kIOKAmGRpYXJ5LWNvbW1lbnQtZW5k4oCZ IHRvIHN0cmluZ3MgdGhhdCBkZWxpbWl0CmNvbW1lbnRzLiAgVGhlIGZhbmN5IGRpc3BsYXkgZG9l cyBub3QgcHJpbnQgY29tbWVudHMuICBZb3UgbWlnaHQgd2FudCB0bwpwdXQgbWV0YS1kYXRhIGZv ciB0aGUgdXNlIG9mIG90aGVyIHBhY2thZ2VzIChlLmcuLCB0aGUgYXBwb2ludG1lbnQKcGFja2Fn ZSwgKm5vdGUgQXBwb2ludG1lbnRzOjopIGluc2lkZSBjb21tZW50cy4KCiAgIFlvdXIgbWFpbiBk aWFyeSBmaWxlIGNhbiBpbmNsdWRlIG90aGVyIGZpbGVzLiAgVGhpcyBwZXJtaXRzIGEgZ3JvdXAK b2YgcGVvcGxlIHRvIHNoYXJlIGEgZGlhcnkgZmlsZSBmb3IgZXZlbnRzIHRoYXQgYXBwbHkgdG8g YWxsIG9mIHRoZW0uCkxpbmVzIGluIHRoZSBkaWFyeSBmaWxlIHN0YXJ0aW5nIHdpdGgg4oCYZGlh cnktaW5jbHVkZS1zdHJpbmfigJk6CgogICAgICNpbmNsdWRlICJGSUxFTkFNRSIKCmluY2x1ZGUg dGhlIGRpYXJ5IGVudHJpZXMgZnJvbSB0aGUgZmlsZSBGSUxFTkFNRSBpbiB0aGUgZmFuY3kgZGlh cnkKYnVmZmVyLiAgVGhlIGluY2x1ZGUgbWVjaGFuaXNtIGlzIHJlY3Vyc2l2ZSwgc28gdGhhdCBp bmNsdWRlZCBmaWxlcyBjYW4KaW5jbHVkZSBvdGhlciBmaWxlcywgYW5kIHNvIG9uICh5b3UgbXVz dCBiZSBjYXJlZnVsIG5vdCB0byBoYXZlIGEgY3ljbGUKb2YgaW5jbHVzaW9ucywgb2YgY291cnNl KS4gIEhlcmUgaXMgaG93IHRvIGVuYWJsZSB0aGUgaW5jbHVkZSBmYWNpbGl0eToKCiAgICAgKGFk ZC1ob29rICdkaWFyeS1saXN0LWVudHJpZXMtaG9vayAnZGlhcnktaW5jbHVkZS1vdGhlci1kaWFy eS1maWxlcykKICAgICAoYWRkLWhvb2sgJ2RpYXJ5LW1hcmstZW50cmllcy1ob29rICdkaWFyeS1t YXJrLWluY2x1ZGVkLWRpYXJ5LWZpbGVzKQoKICAgVGhlIGluY2x1ZGUgbWVjaGFuaXNtIHdvcmtz IG9ubHkgd2l0aCB0aGUgZmFuY3kgZGlhcnkgZGlzcGxheSwKYmVjYXVzZSBzaW1wbGUgZGlhcnkg ZGlzcGxheSBzaG93cyB0aGUgZW50cmllcyBkaXJlY3RseSBmcm9tIHlvdXIgZGlhcnkKZmlsZS4K CgoqKiogMzEuMTMuMTAgU2V4cCBFbnRyaWVzIGFuZCB0aGUgRmFuY3kgRGlhcnkgRGlzcGxheQoK U2V4cCBkaWFyeSBlbnRyaWVzIGFsbG93IHlvdSB0byBkbyBtb3JlIHRoYW4ganVzdCBoYXZlIGNv bXBsaWNhdGVkCmNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggYSBkaWFyeSBlbnRyeSBhcHBsaWVzLiAg U2V4cCBlbnRyaWVzIHNob3VsZCBiZQpwcmVjZWRlZCBieSDigJhkaWFyeS1zZXhwLWVudHJ5LXN5 bWJvbOKAmSAoZGVmYXVsdCDigJglJeKAmSkgaW4gdGhlIGRpYXJ5IGZpbGUuCldpdGggdGhlIGZh bmN5IGRpYXJ5IGRpc3BsYXksIHNleHAgZW50cmllcyBjYW4gZ2VuZXJhdGUgdGhlIHRleHQgb2Yg dGhlCmVudHJ5IGRlcGVuZGluZyBvbiB0aGUgZGF0ZSBpdHNlbGYuCgogICBGb3IgZXhhbXBsZSwg YW4gYW5uaXZlcnNhcnkgZGlhcnkgZW50cnkgY2FuIGluc2VydCB0aGUgbnVtYmVyIG9mCnllYXJz IHNpbmNlIHRoZSBhbm5pdmVyc2FyeSBkYXRlIGludG8gdGhlIHRleHQgb2YgdGhlIGRpYXJ5IGVu dHJ5LiAgVGh1cwp0aGUg4oCYJWTigJkgaW4gdGhpcyBkaWFyeSBlbnRyeToKCiAgICAgJSUoZGlh cnktYW5uaXZlcnNhcnkgMTAgMzEgMTk0OCkgQXJ0aHVyJ3MgYmlydGhkYXkgKCVkIHllYXJzIG9s ZCkKCmdldHMgcmVwbGFjZWQgYnkgdGhlIGFnZSwgc28gb24gT2N0b2JlciAzMSwgMTk5MCB0aGUg ZW50cnkgYXBwZWFycyBpbgp0aGUgZmFuY3kgZGlhcnkgYnVmZmVyIGxpa2UgdGhpczoKCiAgICAg QXJ0aHVyJ3MgYmlydGhkYXkgKDQyIHllYXJzIG9sZCkKCklmIHRoZSBkaWFyeSBmaWxlIGluc3Rl YWQgY29udGFpbnMgdGhpcyBlbnRyeToKCiAgICAgJSUoZGlhcnktYW5uaXZlcnNhcnkgMTAgMzEg MTk0OCkgQXJ0aHVyJ3MgJWQlcyBiaXJ0aGRheQoKdGhlIGVudHJ5IGluIHRoZSBmYW5jeSBkaWFy eSBidWZmZXIgZm9yIE9jdG9iZXIgMzEsIDE5OTAgYXBwZWFycyBsaWtlCnRoaXM6CgogICAgIEFy dGh1cidzIDQybmQgYmlydGhkYXkKCiAgIFNpbWlsYXJseSwgY3ljbGljIGRpYXJ5IGVudHJpZXMg Y2FuIGludGVycG9sYXRlIHRoZSBudW1iZXIgb2YKcmVwZXRpdGlvbnMgdGhhdCBoYXZlIG9jY3Vy cmVkOgoKICAgICAlJShkaWFyeS1jeWNsaWMgNTAgMSAxIDIwMTIpIFJlbmV3IG1lZGljYXRpb24g KCVkJXMgdGltZSkKCmxvb2tzIGxpa2UgdGhpczoKCiAgICAgUmVuZXcgbWVkaWNhdGlvbiAoNXRo IHRpbWUpCgppbiB0aGUgZmFuY3kgZGlhcnkgZGlzcGxheSBvbiBTZXB0ZW1iZXIgNywgMjAxMi4K CiAgIFRoZXJlIGlzIGFuIGVhcmx5LXJlbWluZGVyIGRpYXJ5IHNleHAgdGhhdCBpbmNsdWRlcyBp dHMgZW50cnkgaW4gdGhlCmRpYXJ5IG5vdCBvbmx5IG9uIHRoZSBkYXRlIG9mIG9jY3VycmVuY2Us IGJ1dCBhbHNvIG9uIGVhcmxpZXIgZGF0ZXMuCkZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCBhIHJl bWluZGVyIGEgd2VlayBiZWZvcmUgeW91ciBhbm5pdmVyc2FyeSwgeW91CmNhbiB1c2UKCiAgICAg JSUoZGlhcnktcmVtaW5kICcoZGlhcnktYW5uaXZlcnNhcnkgMTIgMjIgMTk2OCkgNykgRWQncyBh bm5pdmVyc2FyeQoKYW5kIHRoZSBmYW5jeSBkaWFyeSB3aWxsIHNob3cg4oCYRWQncyBhbm5pdmVy c2FyeeKAmSBib3RoIG9uIERlY2VtYmVyIDE1IGFuZApvbiBEZWNlbWJlciAyMi4KCiAgIFRoZSBm dW5jdGlvbiDigJhkaWFyeS1kYXRl4oCZIGFwcGxpZXMgdG8gZGF0ZXMgZGVzY3JpYmVkIGJ5IGEg bW9udGgsIGRheSwKeWVhciBjb21iaW5hdGlvbiwgZWFjaCBvZiB3aGljaCBjYW4gYmUgYW4gaW50 ZWdlciwgYSBsaXN0IG9mIGludGVnZXJzLApvciDigJh04oCZIChtZWFuaW5nIGFsbCB2YWx1ZXMp LiAgRm9yIGV4YW1wbGUsCgogICAgICUlKGRpYXJ5LWRhdGUgJygxMCAxMSAxMikgMjIgdCkgUmFr ZSBsZWF2ZXMKCmNhdXNlcyB0aGUgZmFuY3kgZGlhcnkgdG8gc2hvdwoKICAgICBSYWtlIGxlYXZl cwoKb24gT2N0b2JlciAyMiwgTm92ZW1iZXIgMjIsIGFuZCBEZWNlbWJlciAyMiBvZiBldmVyeSB5 ZWFyLgoKICAgVGhlIGZ1bmN0aW9uIOKAmGRpYXJ5LWZsb2F04oCZIGFsbG93cyB5b3UgdG8gZGVz Y3JpYmUgZGlhcnkgZW50cmllcyB0aGF0CmFwcGx5IHRvIGRhdGVzIGxpa2UgdGhlIHRoaXJkIEZy aWRheSBvZiBOb3ZlbWJlciwgb3IgdGhlIGxhc3QgVHVlc2RheSBpbgpBcHJpbC4gIFRoZSBwYXJh bWV0ZXJzIGFyZSB0aGUgTU9OVEgsIERBWU5BTUUsIGFuZCBhbiBpbmRleCBOLiAgVGhlCmVudHJ5 IGFwcGVhcnMgb24gdGhlIE50aCBEQVlOQU1FIGFmdGVyIHRoZSBmaXJzdCBkYXkgb2YgTU9OVEgs IHdoZXJlCkRBWU5BTUU9MCBtZWFucyBTdW5kYXksIDEgbWVhbnMgTW9uZGF5LCBhbmQgc28gb24u ICBJZiBOIGlzIG5lZ2F0aXZlIGl0CmNvdW50cyBiYWNrd2FyZCBmcm9tIHRoZSBlbmQgb2YgTU9O VEguICBUaGUgdmFsdWUgb2YgTU9OVEggY2FuIGJlIGEgbGlzdApvZiBtb250aHMsIGEgc2luZ2xl IG1vbnRoLCBvciDigJh04oCZIHRvIHNwZWNpZnkgYWxsIG1vbnRocy4gIFlvdSBjYW4gYWxzbwp1 c2UgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIERBWSB0byBzcGVjaWZ5IHRoZSBOdGggREFZTkFNRSBv biBvcgphZnRlci9iZWZvcmUgREFZIG9mIE1PTlRIOyB0aGUgdmFsdWUgb2YgREFZIGRlZmF1bHRz IHRvIDEgaWYgTiBpcwpwb3NpdGl2ZSBhbmQgdG8gdGhlIGxhc3QgZGF5IG9mIE1PTlRIIGlmIE4g aXMgbmVnYXRpdmUuICBGb3IgZXhhbXBsZSwKCiAgICAgJSUoZGlhcnktZmxvYXQgdCAxIC0xKSBQ YXkgcmVudAoKY2F1c2VzIHRoZSBmYW5jeSBkaWFyeSB0byBzaG93CgogICAgIFBheSByZW50Cgpv biB0aGUgbGFzdCBNb25kYXkgb2YgZXZlcnkgbW9udGguCgogICBUaGUgZ2VuZXJhbGl0eSBvZiBz ZXhwIGRpYXJ5IGVudHJpZXMgbGV0cyB5b3Ugc3BlY2lmeSBhbnkgZGlhcnkgZW50cnkKdGhhdCB5 b3UgY2FuIGRlc2NyaWJlIGFsZ29yaXRobWljYWxseS4gIEEgc2V4cCBkaWFyeSBlbnRyeSBjb250 YWlucyBhbgpleHByZXNzaW9uIHRoYXQgY29tcHV0ZXMgd2hldGhlciB0aGUgZW50cnkgYXBwbGll cyB0byBhbnkgZ2l2ZW4gZGF0ZS4KSWYgaXRzIHZhbHVlIGlzIG5vbi3igJhuaWzigJksIHRoZSBl bnRyeSBhcHBsaWVzIHRvIHRoYXQgZGF0ZTsgb3RoZXJ3aXNlLCBpdApkb2VzIG5vdC4gIFRoZSBl eHByZXNzaW9uIGNhbiB1c2UgdGhlIHZhcmlhYmxlIOKAmGRhdGXigJkgdG8gZmluZCB0aGUgZGF0 ZQpiZWluZyBjb25zaWRlcmVkOyBpdHMgdmFsdWUgaXMgYSBsaXN0IChNT05USCBEQVkgWUVBUikg dGhhdCByZWZlcnMgdG8KdGhlIEdyZWdvcmlhbiBjYWxlbmRhci4KCiAgIFRoZSBzZXhwIGRpYXJ5 IGVudHJ5IGFwcGxpZXMgdG8gYSBkYXRlIHdoZW4gdGhlIGV4cHJlc3Npb27igJlzIHZhbHVlIGlz Cm5vbi3igJhuaWzigJksIGJ1dCBzb21lIHZhbHVlcyBoYXZlIG1vcmUgc3BlY2lmaWMgbWVhbmlu Z3MuICBJZiB0aGUgdmFsdWUgaXMKYSBzdHJpbmcsIHRoYXQgc3RyaW5nIGlzIGEgZGVzY3JpcHRp b24gb2YgdGhlIGV2ZW50IHdoaWNoIG9jY3VycyBvbiB0aGF0CmRhdGUuICBUaGUgdmFsdWUgY2Fu IGFsc28gaGF2ZSB0aGUgZm9ybSDigJgoTUFSSyAuIFNUUklORynigJk7IHRoZW4gTUFSSwpzcGVj aWZpZXMgaG93IHRvIG1hcmsgdGhlIGRhdGUgaW4gdGhlIGNhbGVuZGFyLCBhbmQgU1RSSU5HIGlz IHRoZQpkZXNjcmlwdGlvbiBvZiB0aGUgZXZlbnQuICBJZiBNQVJLIGlzIGEgc2luZ2xlLWNoYXJh Y3RlciBzdHJpbmcsIHRoYXQKY2hhcmFjdGVyIGFwcGVhcnMgbmV4dCB0byB0aGUgZGF0ZSBpbiB0 aGUgY2FsZW5kYXIuICBJZiBNQVJLIGlzIGEgZmFjZQpuYW1lLCB0aGUgZGF0ZSBpcyBkaXNwbGF5 ZWQgaW4gdGhhdCBmYWNlLiAgSWYgTUFSSyBpcyDigJhuaWzigJksIHRoYXQKc3BlY2lmaWVzIG5v IHBhcnRpY3VsYXIgaGlnaGxpZ2h0aW5nIGZvciB0aGUgZGF0ZS4KCiAgIFN1cHBvc2UgeW91IGdl dCBwYWlkIG9uIHRoZSAyMXN0IG9mIHRoZSBtb250aCBpZiBpdCBpcyBhIHdlZWtkYXksIGFuZApv biB0aGUgRnJpZGF5IGJlZm9yZSBpZiB0aGUgMjFzdCBpcyBvbiBhIHdlZWtlbmQuICBIZXJlIGlz IGhvdyB0byB3cml0ZQphIHNleHAgZGlhcnkgZW50cnkgdGhhdCBtYXRjaGVzIHRob3NlIGRhdGVz OgoKICAgICAmJSUobGV0ICgoZGF5bmFtZSAoY2FsZW5kYXItZGF5LW9mLXdlZWsgZGF0ZSkpCiAg ICAgICAgICAgICAgKGRheSAoY2FkciBkYXRlKSkpCiAgICAgICAgICAgKG9yIChhbmQgKD0gZGF5 IDIxKSAobWVtcSBkYXluYW1lICcoMSAyIDMgNCA1KSkpCiAgICAgICAgICAgICAgIChhbmQgKG1l bXEgZGF5ICcoMTkgMjApKSAoPSBkYXluYW1lIDUpKSkKICAgICAgICAgICAgICApIFBheSBjaGVj ayBkZXBvc2l0ZWQKCiAgIFRoZSBmb2xsb3dpbmcgc2V4cCBkaWFyeSBlbnRyaWVzIHRha2UgYWR2 YW50YWdlIG9mIHRoZSBhYmlsaXR5IChpbgp0aGUgZmFuY3kgZGlhcnkgZGlzcGxheSkgdG8gY29u Y29jdCBkaWFyeSBlbnRyaWVzIHdob3NlIHRleHQgdmFyaWVzCmJhc2VkIG9uIHRoZSBkYXRlOgoK 4oCYJSUoZGlhcnktc3VucmlzZS1zdW5zZXQp4oCZCiAgICAgTWFrZSBhIGRpYXJ5IGVudHJ5IGZv ciB0b2RheeKAmXMgbG9jYWwgdGltZXMgb2Ygc3VucmlzZSBhbmQgc3Vuc2V0LgrigJglJShkaWFy eS1sdW5hci1waGFzZXMp4oCZCiAgICAgTWFrZSBhIGRpYXJ5IGVudHJ5IGZvciB0aGUgcGhhc2Vz IChxdWFydGVycykgb2YgdGhlIG1vb24uCuKAmCUlKGRpYXJ5LWRheS1vZi15ZWFyKeKAmQogICAg IE1ha2UgYSBkaWFyeSBlbnRyeSB3aXRoIHRvZGF54oCZcyBkYXkgbnVtYmVyIGluIHRoZSBjdXJy ZW50IHllYXIgYW5kCiAgICAgdGhlIG51bWJlciBvZiBkYXlzIHJlbWFpbmluZyBpbiB0aGUgY3Vy cmVudCB5ZWFyLgrigJglJShkaWFyeS1pc28tZGF0ZSnigJkKICAgICBNYWtlIGEgZGlhcnkgZW50 cnkgd2l0aCB0b2RheeKAmXMgZXF1aXZhbGVudCBJU08gY29tbWVyY2lhbCBkYXRlLgrigJglJShk aWFyeS1qdWxpYW4tZGF0ZSnigJkKICAgICBNYWtlIGEgZGlhcnkgZW50cnkgd2l0aCB0b2RheeKA mXMgZXF1aXZhbGVudCBKdWxpYW4gY2FsZW5kYXIgZGF0ZS4K4oCYJSUoZGlhcnktYXN0cm8tZGF5 LW51bWJlcinigJkKICAgICBNYWtlIGEgZGlhcnkgZW50cnkgd2l0aCB0b2RheeKAmXMgZXF1aXZh bGVudCBhc3Ryb25vbWljYWwgKEp1bGlhbikKICAgICBkYXkgbnVtYmVyLgrigJglJShkaWFyeS1i YWhhaS1kYXRlKeKAmQogICAgIE1ha2UgYSBkaWFyeSBlbnRyeSB3aXRoIHRvZGF54oCZcyBlcXVp dmFsZW50IEJhaMOh4oCZw60gY2FsZW5kYXIgZGF0ZS4K4oCYJSUoZGlhcnktY2hpbmVzZS1kYXRl KeKAmQogICAgIE1ha2UgYSBkaWFyeSBlbnRyeSB3aXRoIHRvZGF54oCZcyBlcXVpdmFsZW50IENo aW5lc2UgY2FsZW5kYXIgZGF0ZS4K4oCYJSUoZGlhcnktY29wdGljLWRhdGUp4oCZCiAgICAgTWFr ZSBhIGRpYXJ5IGVudHJ5IHdpdGggdG9kYXnigJlzIGVxdWl2YWxlbnQgQ29wdGljIGNhbGVuZGFy IGRhdGUuCuKAmCUlKGRpYXJ5LWV0aGlvcGljLWRhdGUp4oCZCiAgICAgTWFrZSBhIGRpYXJ5IGVu dHJ5IHdpdGggdG9kYXnigJlzIGVxdWl2YWxlbnQgRXRoaW9waWMgY2FsZW5kYXIgZGF0ZS4K4oCY JSUoZGlhcnktZnJlbmNoLWRhdGUp4oCZCiAgICAgTWFrZSBhIGRpYXJ5IGVudHJ5IHdpdGggdG9k YXnigJlzIGVxdWl2YWxlbnQgZGF0ZSBvbiB0aGUgRnJlbmNoCiAgICAgUmV2b2x1dGlvbmFyeSBj YWxlbmRhci4K4oCYJSUoZGlhcnktaGVicmV3LWRhdGUp4oCZCiAgICAgTWFrZSBhIGRpYXJ5IGVu dHJ5IHdpdGggdG9kYXnigJlzIGVxdWl2YWxlbnQgSGVicmV3IGNhbGVuZGFyIGRhdGUuCuKAmCUl KGRpYXJ5LWlzbGFtaWMtZGF0ZSnigJkKICAgICBNYWtlIGEgZGlhcnkgZW50cnkgd2l0aCB0b2Rh eeKAmXMgZXF1aXZhbGVudCBJc2xhbWljIGNhbGVuZGFyIGRhdGUuCuKAmCUlKGRpYXJ5LW1heWFu LWRhdGUp4oCZCiAgICAgTWFrZSBhIGRpYXJ5IGVudHJ5IHdpdGggdG9kYXnigJlzIGVxdWl2YWxl bnQgTWF5YW4gY2FsZW5kYXIgZGF0ZS4K4oCYJSUoZGlhcnktcGVyc2lhbi1kYXRlKeKAmQogICAg IE1ha2UgYSBkaWFyeSBlbnRyeSB3aXRoIHRvZGF54oCZcyBlcXVpdmFsZW50IFBlcnNpYW4gY2Fs ZW5kYXIgZGF0ZS4KCkZvciBleGFtcGxlLCBpbmNsdWRpbmcgdGhlIGRpYXJ5IGVudHJ5CgogICAg ICYlJShkaWFyeS1oZWJyZXctZGF0ZSkKCmNhdXNlcyBldmVyeSBkYXnigJlzIGRpYXJ5IGRpc3Bs YXkgdG8gY29udGFpbiB0aGUgZXF1aXZhbGVudCBkYXRlIG9uIHRoZQpIZWJyZXcgY2FsZW5kYXIs IGlmIHlvdSBhcmUgdXNpbmcgdGhlIGZhbmN5IGRpYXJ5IGRpc3BsYXkuICAoV2l0aCBzaW1wbGUK ZGlhcnkgZGlzcGxheSwgdGhlIGxpdGVyYWwgbGluZSDigJgmJSUoZGlhcnktaGVicmV3LWRhdGUp 4oCZIGFwcGVhcnMgaW4gdGhlCmRpYXJ5IGZvciBhbnkgZGF0ZS4pCgogICBUaGlzIGZ1bmN0aW9u IGhhcyBiZWVuIHVzZWQgdG8gY29uc3RydWN0IGNlcnRhaW4gc3RhbmRhcmQgSGVicmV3IHNleHAK ZGlhcnkgZW50cmllczoKCuKAmCUlKGRpYXJ5LWhlYnJldy1yb3NoLWhvZGVzaCnigJkKICAgICBN YWtlIGEgZGlhcnkgZW50cnkgdGhhdCB0ZWxscyB0aGUgb2NjdXJyZW5jZSBhbmQgcml0dWFsCiAg ICAgYW5ub3VuY2VtZW50IG9mIGVhY2ggbmV3IEhlYnJldyBtb250aC4K4oCYJSUoZGlhcnktaGVi cmV3LXBhcmFzaGEp4oCZCiAgICAgTWFrZSBhIFNhdHVyZGF5IGRpYXJ5IGVudHJ5IHRoYXQgdGVs bHMgdGhlIHdlZWtseSBzeW5hZ29ndWUKICAgICBzY3JpcHR1cmUgcmVhZGluZy4K4oCYJSUoZGlh cnktaGVicmV3LXNhYmJhdGgtY2FuZGxlcynigJkKICAgICBNYWtlIGEgRnJpZGF5IGRpYXJ5IGVu dHJ5IHRoYXQgdGVsbHMgdGhlIF9sb2NhbCB0aW1lXyBvZiBTYWJiYXRoCiAgICAgY2FuZGxlIGxp Z2h0aW5nLgrigJglJShkaWFyeS1oZWJyZXctb21lcinigJkKICAgICBNYWtlIGEgZGlhcnkgZW50 cnkgdGhhdCBnaXZlcyB0aGUgb21lciBjb3VudCwgd2hlbiBhcHByb3ByaWF0ZS4K4oCYJSUoZGlh cnktaGVicmV3LXlhaHJ6ZWl0IE1PTlRIIERBWSBZRUFSKSBOQU1F4oCZCiAgICAgTWFrZSBhIGRp YXJ5IGVudHJ5IG1hcmtpbmcgdGhlIGFubml2ZXJzYXJ5IG9mIGEgZGF0ZSBvZiBkZWF0aC4gIFRo ZQogICAgIGRhdGUgaXMgdGhlIF9HcmVnb3JpYW5fIChjaXZpbCkgZGF0ZSBvZiBkZWF0aC4gIFRo ZSBkaWFyeSBlbnRyeQogICAgIGFwcGVhcnMgb24gdGhlIHByb3BlciBIZWJyZXcgY2FsZW5kYXIg YW5uaXZlcnNhcnkgYW5kIG9uIHRoZSBkYXkKICAgICBiZWZvcmUuICAoVGhlIG9yZGVyIG9mIHRo ZSBwYXJhbWV0ZXJzIGNoYW5nZXMgYWNjb3JkaW5nIHRvIHRoZQogICAgIGNhbGVuZGFyIGRhdGUg c3R5bGU7IGZvciBleGFtcGxlIGluIHRoZSBFdXJvcGVhbiBzdHlsZSB0byBEQVksCiAgICAgTU9O VEgsIFlFQVIuKQrigJglJShkaWFyeS1oZWJyZXctYmlydGhkYXkgTU9OVEggREFZIFlFQVIp4oCZ CiAgICAgTWFrZSBhIGRpYXJ5IGVudHJ5IGZvciBhIGJpcnRoZGF5IG9uIHRoZSBIZWJyZXcgY2Fs ZW5kYXIuCgogICBBbGwgdGhlIGZ1bmN0aW9ucyBkb2N1bWVudGVkIGFib3ZlIHRha2UgYW4gb3B0 aW9uYWwgYXJndW1lbnQgTUFSSwp3aGljaCBzcGVjaWZpZXMgaG93IHRvIG1hcmsgdGhlIGRhdGUg aW4gdGhlIGNhbGVuZGFyIGRpc3BsYXkuICBJZiBvbmUgb2YKdGhlc2UgZnVuY3Rpb25zIGRlY2lk ZXMgdGhhdCBpdCBhcHBsaWVzIHRvIGEgY2VydGFpbiBkYXRlLCBpdCByZXR1cm5zIGEKdmFsdWUg dGhhdCBjb250YWlucyBNQVJLLCBhcyBkZXNjcmliZWQgYWJvdmUuCgoKKiAzMiBTZW5kaW5nIE1h aWwKClRvIHNlbmQgYW4gZW1haWwgbWVzc2FnZSBmcm9tIEVtYWNzLCB0eXBlIOKAmEMteCBt4oCZ LiAgVGhpcyBzd2l0Y2hlcyB0byBhCmJ1ZmZlciBuYW1lZCDigJgqdW5zZW50IG1haWwq4oCZLCB3 aGVyZSB5b3UgY2FuIGVkaXQgdGhlIHRleHQgYW5kIGhlYWRlcnMgb2YKdGhlIG1lc3NhZ2UuICBX aGVuIGRvbmUsIHR5cGUg4oCYQy1jIEMtc+KAmSBvciDigJhDLWMgQy1j4oCZIHRvIHNlbmQgaXQu CgrigJhDLXggbeKAmQogICAgIEJlZ2luIGNvbXBvc2luZyBtYWlsICjigJhjb21wb3NlLW1haWzi gJkpLgrigJhDLXggNCBt4oCZCiAgICAgTGlrZXdpc2UsIGluIGFub3RoZXIgd2luZG93ICjigJhj b21wb3NlLW1haWwtb3RoZXItd2luZG934oCZKS4K4oCYQy14IDUgbeKAmQogICAgIExpa2V3aXNl LCBidXQgaW4gYSBuZXcgZnJhbWUgKOKAmGNvbXBvc2UtbWFpbC1vdGhlci1mcmFtZeKAmSkuCuKA mEMtYyBDLXPigJkKICAgICBJbiB0aGUgbWFpbCBidWZmZXIsIHNlbmQgdGhlIG1lc3NhZ2UgKOKA mG1lc3NhZ2Utc2VuZOKAmSkuCuKAmEMtYyBDLWPigJkKICAgICBJbiB0aGUgbWFpbCBidWZmZXIs IHNlbmQgdGhlIG1lc3NhZ2UgYW5kIGJ1cnkgdGhlIGJ1ZmZlcgogICAgICjigJhtZXNzYWdlLXNl bmQtYW5kLWV4aXTigJkpLgoKICAgVGhlIG1haWwgYnVmZmVyIGlzIGFuIG9yZGluYXJ5IEVtYWNz IGJ1ZmZlciwgc28geW91IGNhbiBzd2l0Y2ggdG8Kb3RoZXIgYnVmZmVycyB3aGlsZSBjb21wb3Np bmcgdGhlIG1haWwuICBJZiB5b3Ugd2FudCB0byBzZW5kIGFub3RoZXIKbWFpbCBiZWZvcmUgZmlu aXNoaW5nIHRoZSBjdXJyZW50IG9uZSwgdHlwZSDigJhDLXggbeKAmSBhZ2FpbiB0byBvcGVuIGEg bmV3Cm1haWwgYnVmZmVyIHdob3NlIG5hbWUgaGFzIGEgZGlmZmVyZW50IG51bWVyaWMgc3VmZml4 ICgqbm90ZSBNaXNjCkJ1ZmZlcjo6KS4gIElmIHlvdSBpbnZva2UgdGhlIGNvbW1hbmQgd2l0aCBh IHByZWZpeCBhcmd1bWVudCwK4oCYQy11IEMteCBt4oCZLCBFbWFjcyBzd2l0Y2hlcyBiYWNrIHRv IHRoZSBsYXN0IG1haWwgYnVmZmVyLCBhbmQgYXNrcyBpZgp5b3Ugd2FudCB0byBlcmFzZSB0aGUg bWVzc2FnZSBpbiB0aGF0IGJ1ZmZlcjsgaWYgeW91IGFuc3dlciBubywgdGhpcwpsZXRzIHlvdSBw aWNrIHVwIGVkaXRpbmcgdGhlIG1lc3NhZ2Ugd2hlcmUgeW91IGxlZnQgb2ZmLgoKICAgVGhlIGNv bW1hbmQg4oCYQy14IDQgbeKAmSAo4oCYY29tcG9zZS1tYWlsLW90aGVyLXdpbmRvd+KAmSkgZG9l cyB0aGUgc2FtZSBhcwrigJhDLXggbeKAmSwgZXhjZXB0IGl0IGRpc3BsYXlzIHRoZSBtYWlsIGJ1 ZmZlciBpbiBhIGRpZmZlcmVudCB3aW5kb3cuICBUaGUKY29tbWFuZCDigJhDLXggNSBt4oCZICji gJhjb21wb3NlLW1haWwtb3RoZXItZnJhbWXigJkpIGRvZXMgaXQgaW4gYSBuZXcgZnJhbWUuCgog ICBXaGVuIHlvdSB0eXBlIOKAmEMtYyBDLWPigJkgb3Ig4oCYQy1jIEMtc+KAmSB0byBzZW5kIHRo ZSBtYWlsLCBFbWFjcyBtYXkgYXNrCnlvdSBob3cgaXQgc2hvdWxkIGRlbGl2ZXIgdGhlIG1haWzi gJRlaXRoZXIgZGlyZWN0bHkgdmlhIFNNVFAsIG9yIHVzaW5nCnNvbWUgb3RoZXIgbWV0aG9kLiAg Kk5vdGUgTWFpbCBTZW5kaW5nOjosIGZvciBkZXRhaWxzLgoKKyBNZW51OgoKICAtIEZvcm1hdDog TWFpbCBGb3JtYXQuICAgICAgICBGb3JtYXQgb2YgYSBtYWlsIG1lc3NhZ2UuCiAgLSBIZWFkZXJz OiBNYWlsIEhlYWRlcnMuICAgICAgRGV0YWlscyBvZiBzb21lIHN0YW5kYXJkIG1haWwgaGVhZGVy IGZpZWxkcy4KICAtIEFsaWFzZXM6IE1haWwgQWxpYXNlcy4gICAgICBBYmJyZXZpYXRpbmcgYW5k IGdyb3VwaW5nIG1haWwgYWRkcmVzc2VzLgogIC0gQ29tbWFuZHM6IE1haWwgQ29tbWFuZHMuICAg IFNwZWNpYWwgY29tbWFuZHMgZm9yIGVkaXRpbmcgbWFpbCBiZWluZyBjb21wb3NlZC4KICAtIFNp Z25hdHVyZTogTWFpbCBTaWduYXR1cmUuICBBZGRpbmcgYSBzaWduYXR1cmUgdG8gZXZlcnkgbWVz c2FnZS4KICAtIEFtdXNlOiBNYWlsIEFtdXNlbWVudHMuICAgICBEaXN0cmFjdGluZyB0aGUgTlNB OyBhZGRpbmcgZm9ydHVuZSBtZXNzYWdlcy4KICAtIE1ldGhvZHM6IE1haWwgTWV0aG9kcy4gICAg ICBVc2luZyBhbHRlcm5hdGl2ZSBtYWlsLWNvbXBvc2l0aW9uIG1ldGhvZHMuCgoKKiogMzIuMSBU aGUgRm9ybWF0IG9mIHRoZSBNYWlsIEJ1ZmZlcgoKSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoZSBj b250ZW50cyBvZiBhIG1haWwgYnVmZmVyOgoKICAgICBUbzogc3Vib3RhaUBleGFtcGxlLm9yZwog ICAgIENjOiBtb25nb2wuc29sZGllckBleGFtcGxlLm5ldCwgcm1zQGdudS5vcmcKICAgICBTdWJq ZWN0OiBSZTogV2hhdCBpcyBiZXN0IGluIGxpZmU/CiAgICAgRnJvbTogY29uYW5AZXhhbXBsZS5v cmcKICAgICAtLXRleHQgZm9sbG93cyB0aGlzIGxpbmUtLQogICAgIFRvIGNydXNoIHlvdXIgZW5l bWllcywgc2VlIHRoZW0gZHJpdmVuIGJlZm9yZSB5b3UsIGFuZCB0bwogICAgIGhlYXIgdGhlIGxh bWVudGF0aW9uIG9mIHRoZWlyIHdvbWVuLgoKQXQgdGhlIHRvcCBvZiB0aGUgbWFpbCBidWZmZXIg aXMgYSBzZXQgb2YgImhlYWRlciBmaWVsZHMiLCB3aGljaCBhcmUKdXNlZCBmb3Igc3BlY2lmeWlu ZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZW1haWzigJlzIHJlY2lwaWVudChzKSwgc3ViamVjdCwK YW5kIHNvIG9uLiAgVGhlIGFib3ZlIGJ1ZmZlciBjb250YWlucyBoZWFkZXIgZmllbGRzIGZvciDi gJhUb+KAmSwg4oCYQ0PigJksCuKAmFN1YmplY3TigJksIGFuZCDigJhGcm9t4oCZLiAgU29tZSBo ZWFkZXIgZmllbGRzIGFyZSBhdXRvbWF0aWNhbGx5CnByZS1pbml0aWFsaXplZCBpbiB0aGUgbWFp bCBidWZmZXIsIHdoZW4gYXBwcm9wcmlhdGUuCgogICBUaGUgbGluZSB0aGF0IHNheXMg4oCYLS10 ZXh0IGZvbGxvd3MgdGhpcyBsaW5lLS3igJkgc2VwYXJhdGVzIHRoZSBoZWFkZXIKZmllbGRzIGZy b20gdGhlICJib2R5IiAob3IgInRleHQiKSBvZiB0aGUgbWVzc2FnZS4gIEV2ZXJ5dGhpbmcgYWJv dmUKdGhhdCBsaW5lIGlzIHRyZWF0ZWQgYXMgcGFydCBvZiB0aGUgaGVhZGVyczsgZXZlcnl0aGlu ZyBiZWxvdyBpdCBpcwp0cmVhdGVkIGFzIHRoZSBib2R5LiAgVGhlIGRlbGltaXRlciBsaW5lIGl0 c2VsZiBkb2VzIG5vdCBhcHBlYXIgaW4gdGhlCm1lc3NhZ2UgYWN0dWFsbHkgc2VudC4KCiAgIFlv dSBjYW4gaW5zZXJ0IGFuZCBlZGl0IGhlYWRlciBmaWVsZHMgdXNpbmcgb3JkaW5hcnkgZWRpdGlu Zwpjb21tYW5kcy4gICpOb3RlIEhlYWRlciBFZGl0aW5nOjosIGZvciBjb21tYW5kcyBzcGVjaWZp YyB0byBlZGl0aW5nCmhlYWRlciBmaWVsZHMuICBDZXJ0YWluIGhlYWRlcnMsIHN1Y2ggYXMg4oCY RGF0ZeKAmSBhbmQg4oCYTWVzc2FnZS1JZOKAmSwgYXJlCm5vcm1hbGx5IG9taXR0ZWQgZnJvbSB0 aGUgbWFpbCBidWZmZXIgYW5kIGFyZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgd2hlbgp0aGUgbWVz c2FnZSBpcyBzZW50LgoKCioqIDMyLjIgTWFpbCBIZWFkZXIgRmllbGRzCgpBIGhlYWRlciBmaWVs ZCBpbiB0aGUgbWFpbCBidWZmZXIgc3RhcnRzIHdpdGggYSBmaWVsZCBuYW1lIGF0IHRoZQpiZWdp bm5pbmcgb2YgYSBsaW5lLCB0ZXJtaW5hdGVkIGJ5IGEgY29sb24uICBVcHBlciBhbmQgbG93ZXIg Y2FzZSBhcmUKZXF1aXZhbGVudCBpbiBmaWVsZCBuYW1lcy4gIEFmdGVyIHRoZSBjb2xvbiBhbmQg b3B0aW9uYWwgd2hpdGVzcGFjZQpjb21lcyB0aGUgY29udGVudHMgb2YgdGhlIGZpZWxkLgoKICAg WW91IGNhbiB1c2UgYW55IG5hbWUgeW91IGxpa2UgZm9yIGEgaGVhZGVyIGZpZWxkLCBidXQgbm9y bWFsbHkgcGVvcGxlCnVzZSBvbmx5IHN0YW5kYXJkIGZpZWxkIG5hbWVzIHdpdGggYWNjZXB0ZWQg bWVhbmluZ3MuCgogICBUaGUg4oCYRnJvbeKAmSBoZWFkZXIgZmllbGQgaWRlbnRpZmllcyB0aGUg cGVyc29uIHNlbmRpbmcgdGhlIGVtYWlsCihpLmUuLCB5b3UpLiAgVGhpcyBzaG91bGQgYmUgYSB2 YWxpZCBtYWlsaW5nIGFkZHJlc3MsIGFzIHJlcGxpZXMgYXJlCm5vcm1hbGx5IHNlbnQgdGhlcmUu ICBUaGUgZGVmYXVsdCBjb250ZW50cyBvZiB0aGlzIGhlYWRlciBmaWVsZCBhcmUKY29tcHV0ZWQg ZnJvbSB0aGUgdmFyaWFibGVzIOKAmHVzZXItZnVsbC1uYW1l4oCZICh3aGljaCBzcGVjaWZpZXMg eW91ciBmdWxsCm5hbWUpIGFuZCDigJh1c2VyLW1haWwtYWRkcmVzc+KAmSAoeW91ciBlbWFpbCBh ZGRyZXNzKS4gIE9uIHNvbWUgb3BlcmF0aW5nCnN5c3RlbXMsIEVtYWNzIGluaXRpYWxpemVzIHRo ZXNlIHR3byB2YXJpYWJsZXMgdXNpbmcgZW52aXJvbm1lbnQKdmFyaWFibGVzICgqbm90ZSBHZW5l cmFsIFZhcmlhYmxlczo6KS4gIElmIHRoaXMgaW5mb3JtYXRpb24gaXMKdW5hdmFpbGFibGUgb3Ig d3JvbmcsIHlvdSBzaG91bGQgY3VzdG9taXplIHRoZSB2YXJpYWJsZXMgeW91cnNlbGYgKCpub3Rl CkVhc3kgQ3VzdG9taXphdGlvbjo6KS4KCiAgIFRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg4oCY bWFpbC1mcm9tLXN0eWxl4oCZIHNwZWNpZmllcyBob3cgdG8gZm9ybWF0CnRoZSBjb250ZW50cyBv ZiB0aGUg4oCYRnJvbeKAmSBmaWVsZDoKCuKAmG5pbOKAmQogICAgIFVzZSBqdXN0IHRoZSBhZGRy ZXNzLCBhcyBpbiDigJhraW5nQGdyYXNzbGFuZC5jb23igJkuCuKAmHBhcmVuc+KAmQogICAgIFVz ZSBib3RoIGFkZHJlc3MgYW5kIGZ1bGwgbmFtZSwgYXMgaW46CiAgICAg4oCYa2luZ0BncmFzc2xh bmQuY29tIChFbHZpcyBQYXJzbGV5KeKAmS4K4oCYYW5nbGVz4oCZCiAgICAgVXNlIGJvdGggYWRk cmVzcyBhbmQgZnVsbCBuYW1lLCBhcyBpbjoKICAgICDigJhFbHZpcyBQYXJzbGV5IDxraW5nQGdy YXNzbGFuZC5jb20+4oCZLgphbnkgb3RoZXIgdmFsdWUKICAgICBVc2Ug4oCYYW5nbGVz4oCZIG5v cm1hbGx5LiAgQnV0IGlmIHRoZSBhZGRyZXNzIG11c3QgYmUgcXVvdGVkIHRvIHJlbWFpbgogICAg IHN5bnRhY3RpY2FsbHkgdmFsaWQgdW5kZXIgdGhlIOKAmGFuZ2xlc+KAmSBmb3JtYXQgYnV0IG5v dCB1bmRlciB0aGUKICAgICDigJhwYXJlbnPigJkgZm9ybWF0LCB1c2Ug4oCYcGFyZW5z4oCZIGlu c3RlYWQuICBUaGlzIGlzIHRoZSBkZWZhdWx0LgoKICAgQXBhcnQgZnJvbSDigJhGcm9t4oCZLCBo ZXJlIGlzIGEgdGFibGUgb2YgY29tbW9ubHktdXNlZCBmaWVsZHM6CgrigJhUb+KAmQogICAgIFRo ZSBtYWlsaW5nIGFkZHJlc3MoZXMpIHRvIHdoaWNoIHRoZSBtZXNzYWdlIGlzIGFkZHJlc3NlZC4g IFRvIGxpc3QKICAgICBtb3JlIHRoYW4gb25lIGFkZHJlc3MsIHVzZSBjb21tYXMgdG8gc2VwYXJh dGUgdGhlbS4KCuKAmFN1YmplY3TigJkKICAgICBUaGUgc3ViamVjdCBvZiB0aGUgbWVzc2FnZS4K CuKAmEND4oCZCiAgICAgQWRkaXRpb25hbCBtYWlsaW5nIGFkZHJlc3MoZXMpIHRvIHNlbmQgdGhl IG1lc3NhZ2UgdG8uICBUaGlzIGlzCiAgICAgbGlrZSDigJhUb+KAmSwgZXhjZXB0IHRoYXQgdGhl c2UgcmVhZGVycyBzaG91bGQgbm90IHJlZ2FyZCB0aGUgbWVzc2FnZQogICAgIGFzIGRpcmVjdGVk IGF0IHRoZW0uCgrigJhCQ0PigJkKICAgICBBZGRpdGlvbmFsIG1haWxpbmcgYWRkcmVzcyhlcykg dG8gc2VuZCB0aGUgbWVzc2FnZSB0bywgd2hpY2ggc2hvdWxkCiAgICAgbm90IGFwcGVhciBpbiB0 aGUgaGVhZGVyIG9mIHRoZSBtZXNzYWdlIGFjdHVhbGx5IHNlbnQuICDigJhCQ0PigJkKICAgICBz dGFuZHMgZm9yICJibGluZCBjYXJib24gY29waWVzIi4KCuKAmEZDQ+KAmQogICAgIFRoZSBuYW1l IG9mIGEgZmlsZSwgdG8gd2hpY2ggYSBjb3B5IG9mIHRoZSBzZW50IG1lc3NhZ2Ugc2hvdWxkIGJl CiAgICAgYXBwZW5kZWQuICBFbWFjcyB3cml0ZXMgdGhlIG1lc3NhZ2UgaW4gbWJveCBmb3JtYXQs IHVubGVzcyB0aGUgZmlsZQogICAgIGlzIGluIEJhYnlsIGZvcm1hdCAodXNlZCBieSBSbWFpbCBi ZWZvcmUgRW1hY3MgMjMpLCBpbiB3aGljaCBjYXNlCiAgICAgRW1hY3Mgd3JpdGVzIGluIEJhYnls IGZvcm1hdC4gIElmIGFuIFJtYWlsIGJ1ZmZlciBpcyB2aXNpdGluZyB0aGUKICAgICBmaWxlLCBF bWFjcyB1cGRhdGVzIGl0IGFjY29yZGluZ2x5LiAgVG8gc3BlY2lmeSBtb3JlIHRoYW4gb25lIGZp bGUsCiAgICAgdXNlIHNldmVyYWwg4oCYRkND4oCZIGZpZWxkcywgd2l0aCBvbmUgZmlsZSBuYW1l IGluIGVhY2ggZmllbGQuCgrigJhSZXBseS10b+KAmQogICAgIEFuIGFkZHJlc3MgdG8gd2hpY2gg cmVwbGllcyBzaG91bGQgYmUgc2VudCwgaW5zdGVhZCBvZiDigJhGcm9t4oCZLgogICAgIFRoaXMg aXMgdXNlZCBpZiwgZm9yIHNvbWUgcmVhc29uLCB5b3VyIOKAmEZyb23igJkgYWRkcmVzcyBjYW5u b3QKICAgICByZWNlaXZlIHJlcGxpZXMuCgrigJhNYWlsLXJlcGx5LXRv4oCZCiAgICAgVGhpcyBm aWVsZCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIg4oCYUmVwbHktdG/igJkuICBJdCBpcyB1c2VkIGJl Y2F1c2UKICAgICBzb21lIG1haWxpbmcgbGlzdHMgc2V0IHRoZSDigJhSZXBseS10b+KAmSBmaWVs ZCBmb3IgdGhlaXIgb3duIHB1cnBvc2VzCiAgICAgKGEgc29tZXdoYXQgY29udHJvdmVyc2lhbCBw cmFjdGljZSkuCgrigJhNYWlsLUZvbGxvd3VwLVRv4oCZCiAgICAgT25lIG9mIG1vcmUgYWRkcmVz cyhlcykgdG8gdXNlIGFzIGRlZmF1bHQgcmVjaXBpZW50KHMpIGZvcgogICAgIGZvbGxvdy11cCBt ZXNzYWdlcy4gIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgd2hlbiB5b3UgcmVwbHkgdG8gYQogICAg IG1lc3NhZ2UgZnJvbSBhIG1haWxpbmcgbGlzdCB0aGF0IHlvdSBhcmUgc3Vic2NyaWJlZCB0bywg YW5kIHdhbnQKICAgICByZXBsaWVzIHRvIGdvIHRvIHRoZSBsaXN0IHdpdGhvdXQgc2VuZGluZyBh biBleHRyYSBjb3B5IHRvIHlvdS4KCuKAmEluLXJlcGx5LXRv4oCZCiAgICAgQW4gaWRlbnRpZmll ciBmb3IgdGhlIG1lc3NhZ2UgeW91IGFyZSByZXBseWluZyB0by4gIE1vc3QgbWFpbAogICAgIHJl YWRlcnMgdXNlIHRoaXMgaW5mb3JtYXRpb24gdG8gZ3JvdXAgcmVsYXRlZCBtZXNzYWdlcyB0b2dl dGhlci4KICAgICBOb3JtYWxseSwgdGhpcyBoZWFkZXIgaXMgZmlsbGVkIGluIGF1dG9tYXRpY2Fs bHkgd2hlbiB5b3UgcmVwbHkgdG8KICAgICBhIG1lc3NhZ2UgaW4gYW55IG1haWwgcHJvZ3JhbSBi dWlsdCBpbnRvIEVtYWNzLgoK4oCYUmVmZXJlbmNlc+KAmQogICAgIElkZW50aWZpZXJzIGZvciBw cmV2aW91cyByZWxhdGVkIG1lc3NhZ2VzLiAgTGlrZSDigJhJbi1yZXBseS10b+KAmSwKICAgICB0 aGlzIGlzIG5vcm1hbGx5IGZpbGxlZCBpbiBhdXRvbWF0aWNhbGx5IGZvciB5b3UuCgpUaGUg4oCY VG/igJksIOKAmEND4oCZLCBhbmQg4oCYQkND4oCZIGZpZWxkcyBjYW4gYXBwZWFyIGFueSBudW1i ZXIgb2YgdGltZXMsIGFuZAplYWNoIHN1Y2ggaGVhZGVyIGZpZWxkIGNhbiBjb250YWluIG11bHRp cGxlIGFkZHJlc3Nlcywgc2VwYXJhdGVkIGJ5CmNvbW1hcy4gIFRoaXMgd2F5LCB5b3UgY2FuIHNw ZWNpZnkgYW55IG51bWJlciBvZiBwbGFjZXMgdG8gc2VuZCB0aGUKbWVzc2FnZS4gIFRoZXNlIGZp ZWxkcyBjYW4gYWxzbyBoYXZlIGNvbnRpbnVhdGlvbiBsaW5lczogb25lIG9yIG1vcmUKbGluZXMg c3RhcnRpbmcgd2l0aCB3aGl0ZXNwYWNlLCBmb2xsb3dpbmcgdGhlIHN0YXJ0aW5nIGxpbmUgb2Yg dGhlCmZpZWxkLCBhcmUgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBmaWVsZC4gIEhlcmXigJlzIGFu IGV4YW1wbGUgb2YgYSDigJhUb+KAmQpmaWVsZCB3aXRoIGEgY29udGludWF0aW9uIGxpbmU6Cgog ICAgIFRvOiBmb29AZXhhbXBsZS5uZXQsIHRoaXNAZXhhbXBsZS5uZXQsCiAgICAgICBib2JAZXhh bXBsZS5jb20KCiAgIFlvdSBjYW4gZGlyZWN0IEVtYWNzIHRvIGluc2VydCBjZXJ0YWluIGRlZmF1 bHQgaGVhZGVycyBpbnRvIHRoZSBtYWlsCmJ1ZmZlciBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZSDi gJhtYWlsLWRlZmF1bHQtaGVhZGVyc+KAmSB0byBhIHN0cmluZy4gIFRoZW4K4oCYQy14IG3igJkg aW5zZXJ0cyB0aGlzIHN0cmluZyBpbnRvIHRoZSBtZXNzYWdlIGhlYWRlcnMuICBGb3IgZXhhbXBs ZSwgaGVyZQppcyBob3cgdG8gYWRkIGEg4oCYUmVwbHktdG/igJkgYW5kIOKAmEZDQ+KAmSBoZWFk ZXIgdG8gZWFjaCBtZXNzYWdlOgoKICAgICAoc2V0cSBtYWlsLWRlZmF1bHQtaGVhZGVycwogICAg ICAgICAgICJSZXBseS10bzogZm9vQGV4YW1wbGUuY29tXG5GQ0M6IH4vTWFpbC9zZW50IikKCklm IHRoZSBkZWZhdWx0IGhlYWRlciBmaWVsZHMgYXJlIG5vdCBhcHByb3ByaWF0ZSBmb3IgYSBwYXJ0 aWN1bGFyCm1lc3NhZ2UsIGVkaXQgdGhlbSBhcyBuZWNlc3NhcnkgYmVmb3JlIHNlbmRpbmcgdGhl IG1lc3NhZ2UuCgoKKiogMzIuMyBNYWlsIEFsaWFzZXMKCllvdSBjYW4gZGVmaW5lICJtYWlsIGFs aWFzZXMiLCB3aGljaCBhcmUgc2hvcnQgbW5lbW9uaWMgbmFtZXMgdGhhdCBzdGFuZApmb3Igb25l IG9yIG1vcmUgbWFpbGluZyBhZGRyZXNzZXMuICBCeSBkZWZhdWx0LCBtYWlsIGFsaWFzZXMgYXJl IGRlZmluZWQKaW4gdGhlIGZpbGUg4oCYfi8ubWFpbHJj4oCZLiAgWW91IGNhbiBzcGVjaWZ5IGEg ZGlmZmVyZW50IGZpbGUgbmFtZSB0byB1c2UsCmJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlIOKAmG1h aWwtcGVyc29uYWwtYWxpYXMtZmlsZeKAmS4KCiAgIFRvIGRlZmluZSBhbiBhbGlhcyBpbiDigJh+ Ly5tYWlscmPigJksIHdyaXRlIGEgbGluZSBsaWtlIHRoaXM6CgogICAgIGFsaWFzIE5JQ0sgRlVM TEFERFJFU1NFUwoKVGhpcyBtZWFucyB0aGF0IE5JQ0sgc2hvdWxkIGV4cGFuZCBpbnRvIEZVTExB RERSRVNTRVMsIHdoZXJlCkZVTExBRERSRVNTRVMgY2FuIGJlIGVpdGhlciBhIHNpbmdsZSBhZGRy ZXNzLCBvciBtdWx0aXBsZSBhZGRyZXNzZXMKc2VwYXJhdGVkIHdpdGggc3BhY2VzLiAgRm9yIGlu c3RhbmNlLCB0byBtYWtlIOKAmG1haW5nbnXigJkgc3RhbmQgZm9yCuKAmGdudUBnbnUub3Jn4oCZ IHBsdXMgYSBsb2NhbCBhZGRyZXNzIG9mIHlvdXIgb3duLCBwdXQgaW4gdGhpcyBsaW5lOgoKICAg ICBhbGlhcyBtYWluZ251IGdudUBnbnUub3JnIGxvY2FsLWdudQoKSWYgYW4gYWRkcmVzcyBjb250 YWlucyBhIHNwYWNlLCBxdW90ZSB0aGUgd2hvbGUgYWRkcmVzcyB3aXRoIGEgcGFpciBvZgpkb3Vi bGUgcXVvdGVzLCBsaWtlIHRoaXM6CgogICAgIGFsaWFzIGpzbWl0aCAiSm9obiBRLiBTbWl0aCA8 bm9uZUBleGFtcGxlLmNvbT4iCgpOb3RlIHRoYXQgeW91IG5lZWQgbm90IGluY2x1ZGUgZG91Ymxl IHF1b3RlcyBhcm91bmQgaW5kaXZpZHVhbCBwYXJ0cyBvZgp0aGUgYWRkcmVzcywgc3VjaCBhcyB0 aGUgcGVyc29u4oCZcyBmdWxsIG5hbWUuICBFbWFjcyBwdXRzIHRoZW0gaW4gaWYgdGhleQphcmUg bmVlZGVkLiAgRm9yIGluc3RhbmNlLCBpdCBpbnNlcnRzIHRoZSBhYm92ZSBhZGRyZXNzIGFzIOKA mCJKb2huIFEuClNtaXRoIiA8bm9uZUBleGFtcGxlLmNvbT7igJkuCgogICBFbWFjcyBhbHNvIHJl Y29nbml6ZXMgaW5jbHVkZSBjb21tYW5kcyBpbiDigJh+Ly5tYWlscmPigJkuICBUaGV5IGxvb2sK bGlrZSB0aGlzOgoKICAgICBzb3VyY2UgRklMRU5BTUUKClRoZSDigJh+Ly5tYWlscmPigJkgZmls ZSBpcyBub3QgdW5pcXVlIHRvIEVtYWNzOyBtYW55IG90aGVyIG1haWwtcmVhZGluZwpwcm9ncmFt cyB1c2UgaXQgZm9yIG1haWwgYWxpYXNlcywgYW5kIGl0IGNhbiBjb250YWluIHZhcmlvdXMgb3Ro ZXIKY29tbWFuZHMuICBIb3dldmVyLCBFbWFjcyBpZ25vcmVzIGV2ZXJ5dGhpbmcgZXhjZXB0IGFs aWFzIGRlZmluaXRpb25zCmFuZCBpbmNsdWRlIGNvbW1hbmRzLgoKICAgTWFpbCBhbGlhc2VzIGV4 cGFuZCBhcyBhYmJyZXZz4oCUdGhhdCBpcyB0byBzYXksIGFzIHNvb24gYXMgeW91IHR5cGUgYQp3 b3JkLXNlcGFyYXRvciBjaGFyYWN0ZXIgYWZ0ZXIgYW4gYWxpYXMgKCpub3RlIEFiYnJldnM6Oiku ICBUaGlzCmV4cGFuc2lvbiB0YWtlcyBwbGFjZSBvbmx5IHdpdGhpbiB0aGUg4oCYVG/igJksIOKA mEZyb23igJksIOKAmEND4oCZLCDigJhCQ0PigJksIGFuZArigJhSZXBseS10b+KAmSBoZWFkZXIg ZmllbGRzIChwbHVzIHRoZWlyIOKAmFJlc2VudC3igJkgdmFyaWFudHMpOyBpdCBkb2VzIG5vdAp0 YWtlIHBsYWNlIGluIG90aGVyIGhlYWRlciBmaWVsZHMsIHN1Y2ggYXMg4oCYU3ViamVjdOKAmS4K CiAgIFlvdSBjYW4gYWxzbyBpbnNlcnQgYW4gYWxpYXNlZCBhZGRyZXNzIGRpcmVjdGx5LCB1c2lu ZyB0aGUgY29tbWFuZArigJhNLXggbWFpbC1hYmJyZXYtaW5zZXJ0LWFsaWFz4oCZLiAgVGhpcyBy ZWFkcyBhbiBhbGlhcyBuYW1lLCB3aXRoCmNvbXBsZXRpb24sIGFuZCBpbnNlcnRzIGl0cyBkZWZp bml0aW9uIGF0IHBvaW50LgoKCioqIDMyLjQgTWFpbCBDb21tYW5kcwoKVGhlIGRlZmF1bHQgbWFq b3IgbW9kZSBmb3IgdGhlIOKAmCptYWlsKuKAmSBidWZmZXIgaXMgY2FsbGVkIE1lc3NhZ2UgbW9k ZS4KSXQgYmVoYXZlcyBsaWtlIFRleHQgbW9kZSBpbiBtYW55IHdheXMsIGJ1dCBwcm92aWRlcyBz ZXZlcmFsIGFkZGl0aW9uYWwKY29tbWFuZHMgb24gdGhlIOKAmEMtY+KAmSBwcmVmaXgsIHdoaWNo IG1ha2UgZWRpdGluZyBhIG1lc3NhZ2UgbW9yZQpjb252ZW5pZW50LgoKICAgSW4gdGhpcyBzZWN0 aW9uLCB3ZSB3aWxsIGRlc2NyaWJlIHNvbWUgb2YgdGhlIG1vc3QgY29tbW9ubHktdXNlZApjb21t YW5kcyBhdmFpbGFibGUgaW4gTWVzc2FnZSBtb2RlLiAgTWVzc2FnZSBtb2RlIGFsc28gaGFzIGl0 cyBvd24KbWFudWFsLCB3aGVyZSBpdHMgZmVhdHVyZXMgYXJlIGRlc2NyaWJlZCBpbiBncmVhdGVy IGRldGFpbC4gICpOb3RlCk1lc3NhZ2U6IChtZXNzYWdlKVRvcC4KCisgTWVudToKCiAgLSBNYWls IFNlbmRpbmc6OiAgICAgICAgQ29tbWFuZHMgdG8gc2VuZCB0aGUgbWVzc2FnZS4KICAtIEhlYWRl ciBFZGl0aW5nOjogICAgICBDb21tYW5kcyB0byBtb3ZlIHRvIGhlYWRlciBmaWVsZHMgYW5kIGVk aXQgdGhlbS4KICAtIENpdGluZyBNYWlsOjogICAgICAgICBRdW90aW5nIGEgbWVzc2FnZSB5b3Ug YXJlIHJlcGx5aW5nIHRvLgogIC0gTWFpbCBNaXNjOjogICAgICAgICAgIEF0dGFjaG1lbnRzLCBz cGVsbCBjaGVja2luZywgZXRjLgoKCioqKiAzMi40LjEgTWFpbCBTZW5kaW5nCgrigJhDLWMgQy1j 4oCZCiAgICAgU2VuZCB0aGUgbWVzc2FnZSwgYW5kIGJ1cnkgdGhlIG1haWwgYnVmZmVyCiAgICAg KOKAmG1lc3NhZ2Utc2VuZC1hbmQtZXhpdOKAmSkuCuKAmEMtYyBDLXPigJkKICAgICBTZW5kIHRo ZSBtZXNzYWdlLCBhbmQgbGVhdmUgdGhlIG1haWwgYnVmZmVyIHNlbGVjdGVkCiAgICAgKOKAmG1l c3NhZ2Utc2VuZOKAmSkuCgogICBUaGUgdXN1YWwgY29tbWFuZCB0byBzZW5kIGEgbWVzc2FnZSBp cyDigJhDLWMgQy1j4oCZCijigJhtYWlsLXNlbmQtYW5kLWV4aXTigJkpLiAgVGhpcyBzZW5kcyB0 aGUgbWVzc2FnZSBhbmQgdGhlbiBidXJpZXMgdGhlIG1haWwKYnVmZmVyLCBwdXR0aW5nIGl0IGF0 IHRoZSBsb3dlc3QgcHJpb3JpdHkgZm9yIHJlc2VsZWN0aW9uLiAgSWYgeW91IHdhbnQKaXQgdG8g a2lsbCB0aGUgbWFpbCBidWZmZXIgaW5zdGVhZCwgY2hhbmdlIHRoZSB2YXJpYWJsZQrigJhtZXNz YWdlLWtpbGwtYnVmZmVyLW9uLWV4aXTigJkgdG8g4oCYdOKAmS4KCiAgIFRoZSBjb21tYW5kIOKA mEMtYyBDLXPigJkgKOKAmG1lc3NhZ2Utc2VuZOKAmSkgc2VuZHMgdGhlIG1lc3NhZ2UgYW5kIGxl YXZlcwp0aGUgYnVmZmVyIHNlbGVjdGVkLiAgVXNlIHRoaXMgY29tbWFuZCBpZiB5b3Ugd2FudCB0 byBtb2RpZnkgdGhlIG1lc3NhZ2UKKHBlcmhhcHMgd2l0aCBuZXcgcmVjaXBpZW50cykgYW5kIHNl bmQgaXQgYWdhaW4uCgogICBTZW5kaW5nIGEgbWVzc2FnZSBydW5zIHRoZSBob29rIOKAmG1lc3Nh Z2Utc2VuZC1ob29r4oCZLiAgSXQgYWxzbyBtYXJrcwp0aGUgbWFpbCBidWZmZXIgYXMgdW5tb2Rp ZmllZCwgZXhjZXB0IGlmIHRoZSBtYWlsIGJ1ZmZlciBpcyBhbHNvIGEKZmlsZS12aXNpdGluZyBi dWZmZXIgKGluIHRoYXQgY2FzZSwgb25seSBzYXZpbmcgdGhlIGZpbGUgZG9lcyB0aGF0LCBhbmQK eW91IGRvbuKAmXQgZ2V0IGEgd2FybmluZyBpZiB5b3UgdHJ5IHRvIHNlbmQgdGhlIHNhbWUgbWVz c2FnZSB0d2ljZSkuCgogICBUaGUgdmFyaWFibGUg4oCYc2VuZC1tYWlsLWZ1bmN0aW9u4oCZIGNv bnRyb2xzIGhvdyB0aGUgbWVzc2FnZSBpcwpkZWxpdmVyZWQuICBJdHMgdmFsdWUgc2hvdWxkIGJl IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKCuKAmHNlbmRtYWlsLXF1ZXJ5LW9uY2Xi gJkKICAgICBRdWVyeSBmb3IgYSBkZWxpdmVyeSBtZXRob2QgKG9uZSBvZiB0aGUgb3RoZXIgZW50 cmllcyBpbiB0aGlzCiAgICAgbGlzdCksIGFuZCB1c2UgdGhhdCBtZXRob2QgZm9yIHRoaXMgbWVz c2FnZTsgdGhlbiBzYXZlIHRoZSBtZXRob2QKICAgICB0byDigJhzZW5kLW1haWwtZnVuY3Rpb27i gJksIHNvIHRoYXQgaXQgaXMgdXNlZCBmb3IgZnV0dXJlIGRlbGl2ZXJpZXMuCiAgICAgVGhpcyBp cyB0aGUgZGVmYXVsdCwgdW5sZXNzIHlvdSBoYXZlIGFscmVhZHkgc2V0IHRoZSB2YXJpYWJsZXMg Zm9yCiAgICAgc2VuZGluZyBtYWlsIHZpYSDigJhzbXRwbWFpbC1zZW5kLWl04oCZIChzZWUgYmVs b3cpLgoK4oCYc210cG1haWwtc2VuZC1pdOKAmQogICAgIFNlbmQgbWFpbCB0aHJvdWdoIGFuIGV4 dGVybmFsIG1haWwgaG9zdCwgc3VjaCBhcyB5b3VyIEludGVybmV0CiAgICAgc2VydmljZSBwcm92 aWRlcuKAmXMgb3V0Z29pbmcgU01UUCBtYWlsIHNlcnZlci4gIElmIHlvdSBoYXZlIG5vdCB0b2xk CiAgICAgRW1hY3MgaG93IHRvIGNvbnRhY3QgdGhlIFNNVFAgc2VydmVyLCBpdCBwcm9tcHRzIGZv ciB0aGlzCiAgICAgaW5mb3JtYXRpb24sIHdoaWNoIGlzIHNhdmVkIGluIHRoZSDigJhzbXRwbWFp bC1zbXRwLXNlcnZlcuKAmSB2YXJpYWJsZQogICAgIGFuZCB0aGUgZmlsZSDigJh+Ly5hdXRoaW5m b+KAmS4gICpOb3RlIEVtYWNzIFNNVFAgTGlicmFyeToKICAgICAoc210cG1haWwpVG9wLgoK4oCY c2VuZG1haWwtc2VuZC1pdOKAmQogICAgIFNlbmQgbWFpbCB1c2luZyB0aGUgc3lzdGVt4oCZcyBk ZWZhdWx0IOKAmHNlbmRtYWls4oCZIHByb2dyYW0sIG9yCiAgICAgZXF1aXZhbGVudC4gIFRoaXMg cmVxdWlyZXMgdGhlIHN5c3RlbSB0byBiZSBzZXQgdXAgZm9yIGRlbGl2ZXJpbmcKICAgICBtYWls IGRpcmVjdGx5IHZpYSBTTVRQLgoK4oCYbWFpbGNsaWVudC1zZW5kLWl04oCZCiAgICAgUGFzcyB0 aGUgbWFpbCBidWZmZXIgb24gdG8gdGhlIHN5c3RlbeKAmXMgZGVzaWduYXRlZCBtYWlsIGNsaWVu dC4KICAgICBTZWUgdGhlIGNvbW1lbnRhcnkgc2VjdGlvbiBpbiB0aGUgZmlsZSDigJhtYWlsY2xp ZW50LmVs4oCZIGZvciBkZXRhaWxzLgoK4oCYZmVlZG1haWwtc2VuZC1pdOKAmQogICAgIFRoaXMg aXMgc2ltaWxhciB0byDigJhzZW5kbWFpbC1zZW5kLWl04oCZLCBidXQgYWxsb3dzIHlvdSB0byBx dWV1ZQogICAgIG1lc3NhZ2VzIGZvciBsYXRlciBzZW5kaW5nLiAgU2VlIHRoZSBjb21tZW50YXJ5 IHNlY3Rpb24gaW4gdGhlIGZpbGUKICAgICDigJhmZWVkbWFpbC5lbOKAmSBmb3IgZGV0YWlscy4K CiAgIFdoZW4geW91IHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgbm9uLUFTQ0lJIGNoYXJhY3Rl cnMsIHRoZXkgbmVlZCB0bwpiZSBlbmNvZGVkIHdpdGggYSBjb2Rpbmcgc3lzdGVtICgqbm90ZSBD b2RpbmcgU3lzdGVtczo6KS4gIFVzdWFsbHkgdGhlCmNvZGluZyBzeXN0ZW0gaXMgc3BlY2lmaWVk IGF1dG9tYXRpY2FsbHkgYnkgeW91ciBjaG9zZW4gbGFuZ3VhZ2UKZW52aXJvbm1lbnQgKCpub3Rl IExhbmd1YWdlIEVudmlyb25tZW50czo6KS4gIFlvdSBjYW4gZXhwbGljaXRseSBzcGVjaWZ5CnRo ZSBjb2Rpbmcgc3lzdGVtIGZvciBvdXRnb2luZyBtYWlsIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxl CuKAmHNlbmRtYWlsLWNvZGluZy1zeXN0ZW3igJkgKCpub3RlIFJlY29nbml6ZSBDb2Rpbmc6Oiku ICBJZiB0aGUgY29kaW5nCnN5c3RlbSB0aHVzIGRldGVybWluZWQgZG9lcyBub3QgaGFuZGxlIHRo ZSBjaGFyYWN0ZXJzIGluIGEgcGFydGljdWxhcgptZXNzYWdlLCBFbWFjcyBhc2tzIHlvdSB0byBz ZWxlY3QgdGhlIGNvZGluZyBzeXN0ZW0gdG8gdXNlLCBzaG93aW5nIGEKbGlzdCBvZiBwb3NzaWJs ZSBjb2Rpbmcgc3lzdGVtcy4gICpOb3RlIE91dHB1dCBDb2Rpbmc6Oi4KCgoqKiogMzIuNC4yIE1h aWwgSGVhZGVyIEVkaXRpbmcKCk1lc3NhZ2UgbW9kZSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIHNw ZWNpYWwgY29tbWFuZHMgdG8gbW92ZSB0bwpwYXJ0aWN1bGFyIGhlYWRlciBmaWVsZHMgYW5kIHRv IGNvbXBsZXRlIGFkZHJlc3NlcyBpbiBoZWFkZXJzLgoK4oCYQy1jIEMtZiBDLXTigJkKICAgICBN b3ZlIHRvIHRoZSDigJhUb+KAmSBoZWFkZXIgKOKAmG1lc3NhZ2UtZ290by10b+KAmSkuCuKAmEMt YyBDLWYgQy1z4oCZCiAgICAgTW92ZSB0byB0aGUg4oCYU3ViamVjdOKAmSBoZWFkZXIgKOKAmG1l c3NhZ2UtZ290by1zdWJqZWN04oCZKS4K4oCYQy1jIEMtZiBDLWPigJkKICAgICBNb3ZlIHRvIHRo ZSDigJhDQ+KAmSBoZWFkZXIgKOKAmG1lc3NhZ2UtZ290by1jY+KAmSkuCuKAmEMtYyBDLWYgQy1i 4oCZCiAgICAgTW92ZSB0byB0aGUg4oCYQkND4oCZIGhlYWRlciAo4oCYbWVzc2FnZS1nb3RvLWJj Y+KAmSkuCuKAmEMtYyBDLWYgQy1y4oCZCiAgICAgTW92ZSB0byB0aGUg4oCYUmVwbHktdG/igJkg aGVhZGVyICjigJhtZXNzYWdlLWdvdG8tcmVwbHktdG/igJkpLgrigJhDLWMgQy1mIEMtZuKAmQog ICAgIE1vdmUgdG8gdGhlIOKAmE1haWwtRm9sbG93dXAtVG/igJkgaGVhZGVyIGZpZWxkCiAgICAg KOKAmG1lc3NhZ2UtZ290by1mb2xsb3d1cC10b+KAmSkuCuKAmEMtYyBDLWYgQy134oCZCiAgICAg QWRkIGEgbmV3IOKAmEZDQ+KAmSBoZWFkZXIgZmllbGQsIHdpdGggZmlsZS1uYW1lIGNvbXBsZXRp b24KICAgICAo4oCYbWVzc2FnZS1nb3RvLWZjY+KAmSkuCuKAmEMtYyBDLWLigJkKICAgICBNb3Zl IHRvIHRoZSBzdGFydCBvZiB0aGUgbWVzc2FnZSBib2R5ICjigJhtZXNzYWdlLWdvdG8tYm9keeKA mSkuCuKAmDxUQUI+4oCZCiAgICAgQ29tcGxldGUgYSBtYWlsaW5nIGFkZHJlc3MgKOKAmG1lc3Nh Z2UtdGFi4oCZKS4KCiAgIFRoZSBjb21tYW5kcyB0byBtb3ZlIHBvaW50IHRvIHBhcnRpY3VsYXIg aGVhZGVyIGZpZWxkcyBhcmUgYWxsIGJhc2VkCm9uIHRoZSBwcmVmaXgg4oCYQy1jIEMtZuKAmSAo 4oCYQy1m4oCZIGlzIGZvciDigJxmaWVsZOKAnSkuICBJZiB0aGUgZmllbGQgaW4KcXVlc3Rpb24g ZG9lcyBub3QgZXhpc3QsIHRoZSBjb21tYW5kIGNyZWF0ZXMgb25lICh0aGUgZXhjZXB0aW9uIGlz CuKAmG1haWwtZmNj4oCZLCB3aGljaCBjcmVhdGVzIGEgbmV3IGZpZWxkIGVhY2ggdGltZSkuCgog ICBUaGUgY29tbWFuZCDigJhDLWMgQy1i4oCZICjigJhtZXNzYWdlLWdvdG8tYm9keeKAmSkgbW92 ZXMgcG9pbnQgdG8ganVzdCBhZnRlcgp0aGUgaGVhZGVyIHNlcGFyYXRvciBsaW5l4oCUdGhhdCBp cywgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgYm9keS4KCiAgIFdoaWxlIGVkaXRpbmcgYSBoZWFk ZXIgZmllbGQgdGhhdCBjb250YWlucyBhZGRyZXNzZXMsIHN1Y2ggYXMg4oCYVG864oCZLArigJhD QzrigJkgYW5kIOKAmEJDQzrigJksIHlvdSBjYW4gY29tcGxldGUgYW4gYWRkcmVzcyBieSB0eXBp bmcgPFRBQj4KKOKAmG1lc3NhZ2UtdGFi4oCZKS4gIFRoaXMgYXR0ZW1wdHMgdG8gaW5zZXJ0IHRo ZSBmdWxsIG5hbWUgY29ycmVzcG9uZGluZyB0bwp0aGUgYWRkcmVzcyBiYXNlZCBvbiBhIGNvdXBs ZSBvZiBtZXRob2RzLCBpbmNsdWRpbmcgRVVEQywgYSBsaWJyYXJ5IHRoYXQKcmVjb2duaXplcyBh IG51bWJlciBvZiBkaXJlY3Rvcnkgc2VydmVyIHByb3RvY29scyAoKm5vdGUgRVVEQzoKKGV1ZGMp VG9wLikuICBGYWlsaW5nIHRoYXQsIGl0IGF0dGVtcHRzIHRvIGV4cGFuZCB0aGUgYWRkcmVzcyBh cyBhIG1haWwKYWxpYXMgKCpub3RlIE1haWwgQWxpYXNlczo6KS4gIElmIHBvaW50IGlzIG9uIGEg aGVhZGVyIGZpZWxkIHRoYXQgZG9lcwpub3QgdGFrZSBhZGRyZXNzZXMsIG9yIGlmIGl0IGlzIGlu IHRoZSBtZXNzYWdlIGJvZHksIHRoZW4gPFRBQj4ganVzdAppbnNlcnRzIGEgdGFiIGNoYXJhY3Rl ci4KCgoqKiogMzIuNC4zIENpdGluZyBNYWlsCgrigJhDLWMgQy154oCZCiAgICAgWWFuayB0aGUg c2VsZWN0ZWQgbWVzc2FnZSBmcm9tIHRoZSBtYWlsIHJlYWRlciwgYXMgYSBjaXRhdGlvbgogICAg ICjigJhtZXNzYWdlLXlhbmstb3JpZ2luYWzigJkpLgrigJhDLWMgQy1x4oCZCiAgICAgRmlsbCBl YWNoIHBhcmFncmFwaCBjaXRlZCBmcm9tIGFub3RoZXIgbWVzc2FnZQogICAgICjigJhtZXNzYWdl LWZpbGwteWFua2VkLW1lc3NhZ2XigJkpLgoKICAgWW91IGNhbiB1c2UgdGhlIGNvbW1hbmQg4oCY Qy1jIEMteeKAmSAo4oCYbWVzc2FnZS15YW5rLW9yaWdpbmFs4oCZKSB0byAiY2l0ZSIKYSBtZXNz YWdlIHRoYXQgeW91IGFyZSByZXBseWluZyB0by4gIFRoaXMgaW5zZXJ0cyB0aGUgdGV4dCBvZiB0 aGF0Cm1lc3NhZ2UgaW50byB0aGUgbWFpbCBidWZmZXIuICBUaGlzIGNvbW1hbmQgd29ya3Mgb25s eSBpZiB0aGUgbWFpbApidWZmZXIgaXMgaW52b2tlZCBmcm9tIGEgbWFpbCByZWFkZXIgcnVubmlu ZyBpbiBFbWFjcywgc3VjaCBhcyBSbWFpbC4KCiAgIEJ5IGRlZmF1bHQsIEVtYWNzIGluc2VydHMg dGhlIHN0cmluZyDigJg+4oCZIGluIGZyb250IG9mIGVhY2ggbGluZSBvZiB0aGUKY2l0ZWQgdGV4 dDsgdGhpcyBwcmVmaXggc3RyaW5nIGlzIHNwZWNpZmllZCBieSB0aGUgdmFyaWFibGUK4oCYbWVz c2FnZS15YW5rLXByZWZpeOKAmS4gIElmIHlvdSBjYWxsIOKAmG1lc3NhZ2UteWFuay1vcmlnaW5h bOKAmSB3aXRoIGEKcHJlZml4IGFyZ3VtZW50LCB0aGUgY2l0YXRpb24gcHJlZml4IGlzIG5vdCBp bnNlcnRlZC4KCiAgIEFmdGVyIHVzaW5nIOKAmEMtYyBDLXnigJksIHlvdSBjYW4gdHlwZSDigJhD LWMgQy1x4oCZCijigJhtZXNzYWdlLWZpbGwteWFua2VkLW1lc3NhZ2XigJkpIHRvIGZpbGwgdGhl IHBhcmFncmFwaHMgb2YgdGhlIGNpdGVkCm1lc3NhZ2UuICBPbmUgdXNlIG9mIOKAmEMtYyBDLXHi gJkgZmlsbHMgYWxsIHN1Y2ggcGFyYWdyYXBocywgZWFjaCBvbmUKaW5kaXZpZHVhbGx5LiAgVG8g ZmlsbCBhIHNpbmdsZSBwYXJhZ3JhcGggb2YgdGhlIHF1b3RlZCBtZXNzYWdlLCB1c2UK4oCYTS1x 4oCZLiAgSWYgZmlsbGluZyBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGhhbmRsZSB0aGUgdHlwZSBv ZiBjaXRhdGlvbgpwcmVmaXggeW91IHVzZSwgdHJ5IHNldHRpbmcgdGhlIGZpbGwgcHJlZml4IGV4 cGxpY2l0bHkuICAqTm90ZQpGaWxsaW5nOjouCgogICBZb3UgY2FuIGN1c3RvbWl6ZSBtYWlsIGNp dGF0aW9uIHRocm91Z2ggdGhlIGhvb2sK4oCYbWFpbC1jaXRhdGlvbi1ob29r4oCZLiAgRm9yIGV4 YW1wbGUsIHlvdSBjYW4gdXNlIHRoZSBTdXBlcmNpdGUgcGFja2FnZSwKd2hpY2ggcHJvdmlkZXMg bW9yZSBmbGV4aWJsZSBjaXRhdGlvbiAoKm5vdGUgKHNjKUludHJvZHVjdGlvbjo6KS4KCgoqKiog MzIuNC40IE1haWwgTWlzY2VsbGFueQoKWW91IGNhbiAiYXR0YWNoIiBhIGZpbGUgdG8gYW4gb3V0 Z29pbmcgbWVzc2FnZSBieSB0eXBpbmcg4oCYQy1jIEMtYeKAmQoo4oCYbW1sLWF0dGFjaC1maWxl 4oCZKSBpbiB0aGUgbWFpbCBidWZmZXIuICBBdHRhY2hpbmcgaXMgZG9uZSB1c2luZyB0aGUKTXVs dGlwdXJwb3NlIEludGVybmV0IE1haWwgRXh0ZW5zaW9ucyAoTUlNRSkgc3RhbmRhcmQuCgogICBU aGUg4oCYbW1sLWF0dGFjaC1maWxl4oCZIGNvbW1hbmQgcHJvbXB0cyBmb3IgdGhlIG5hbWUgb2Yg dGhlIGZpbGUsIGFuZApmb3IgdGhlIGF0dGFjaG1lbnTigJlzICJjb250ZW50IHR5cGUiLCAiZGVz Y3JpcHRpb24iLCBhbmQgImRpc3Bvc2l0aW9uIi4KVGhlIGNvbnRlbnQgdHlwZSBpcyBub3JtYWxs eSBkZXRlY3RlZCBhdXRvbWF0aWNhbGx5OyBqdXN0IHR5cGUgPFJFVD4gdG8KYWNjZXB0IHRoZSBk ZWZhdWx0LiAgVGhlIGRlc2NyaXB0aW9uIGlzIGEgc2luZ2xlIGxpbmUgb2YgdGV4dCB0aGF0IHRo ZQpyZWNpcGllbnQgd2lsbCBzZWUgbmV4dCB0byB0aGUgYXR0YWNobWVudDsgeW91IG1heSBhbHNv IGNob29zZSB0byBsZWF2ZQp0aGlzIGVtcHR5LiAgVGhlIGRpc3Bvc2l0aW9uIGlzIGVpdGhlciDi gJhpbmxpbmXigJksIHdoaWNoIG1lYW5zIHRoZQpyZWNpcGllbnQgd2lsbCBzZWUgYSBsaW5rIHRv IHRoZSBhdHRhY2htZW50IHdpdGhpbiB0aGUgbWVzc2FnZSBib2R5LCBvcgrigJhhdHRhY2htZW50 4oCZLCB3aGljaCBtZWFucyB0aGUgbGluayB3aWxsIGJlIHNlcGFyYXRlIGZyb20gdGhlIGJvZHku CgogICBUaGUg4oCYbW1sLWF0dGFjaC1maWxl4oCZIGNvbW1hbmQgaXMgc3BlY2lmaWMgdG8gTWVz c2FnZSBtb2RlOyBpbiBNYWlsCm1vZGUgdXNlIOKAmG1haWwtYWRkLWF0dGFjaG1lbnTigJkgaW5z dGVhZC4gIEl0IHdpbGwgcHJvbXB0IG9ubHkgZm9yIHRoZQpuYW1lIG9mIHRoZSBmaWxlLCBhbmQg d2lsbCBkZXRlcm1pbmUgdGhlIGNvbnRlbnQgdHlwZSBhbmQgdGhlCmRpc3Bvc2l0aW9uIGF1dG9t YXRpY2FsbHkuICBJZiB5b3Ugd2FudCB0byBpbmNsdWRlIHNvbWUgZGVzY3JpcHRpb24gb2YKdGhl IGF0dGFjaGVkIGZpbGUsIHR5cGUgdGhhdCBpbiB0aGUgbWVzc2FnZSBib2R5LgoKICAgVGhlIGFj dHVhbCBjb250ZW50cyBvZiB0aGUgYXR0YWNoZWQgZmlsZSBhcmUgbm90IGluc2VydGVkIGludG8g dGhlCm1haWwgYnVmZmVyLiAgSW5zdGVhZCwgc29tZSBwbGFjZWhvbGRlciB0ZXh0IGlzIGluc2Vy dGVkIGludG8gdGhlIG1haWwKYnVmZmVyLCBsaWtlIHRoaXM6CgogICAgIDwjcGFydCB0eXBlPSJ0 ZXh0L3BsYWluIiBmaWxlbmFtZT0ifi9mb28udHh0IiBkaXNwb3NpdGlvbj1pbmxpbmU+CiAgICAg PCMvcGFydD4KCldoZW4geW91IHR5cGUg4oCYQy1jIEMtY+KAmSBvciDigJhDLWMgQy1z4oCZIHRv IHNlbmQgdGhlIG1lc3NhZ2UsIHRoZSBhdHRhY2hlZApmaWxlIHdpbGwgYmUgZGVsaXZlcmVkIHdp dGggaXQuCgogICBXaGlsZSBjb21wb3NpbmcgYSBtZXNzYWdlLCB5b3UgY2FuIGRvIHNwZWxsaW5n IGNvcnJlY3Rpb24gb24gdGhlCm1lc3NhZ2UgdGV4dCBieSB0eXBpbmcg4oCYTS14IGlzcGVsbC1t ZXNzYWdl4oCZLiAgSWYgeW91IGhhdmUgeWFua2VkIGFuCmluY29taW5nIG1lc3NhZ2UgaW50byB0 aGUgb3V0Z29pbmcgZHJhZnQsIHRoaXMgY29tbWFuZCBza2lwcyB3aGF0IHdhcwp5YW5rZWQsIGJ1 dCBpdCBjaGVja3MgdGhlIHRleHQgdGhhdCB5b3UgeW91cnNlbGYgaW5zZXJ0ZWQgKGl0IGxvb2tz IGZvcgppbmRlbnRhdGlvbiBvciDigJhtYWlsLXlhbmstcHJlZml44oCZIHRvIGRpc3Rpbmd1aXNo IHRoZSBjaXRlZCBsaW5lcyBmcm9tCnlvdXIgaW5wdXQpLiAgKk5vdGUgU3BlbGxpbmc6Oi4KCiAg IFR1cm5pbmcgb24gTWVzc2FnZSBtb2RlICh3aGljaCDigJhDLXggbeKAmSBkb2VzIGF1dG9tYXRp Y2FsbHkpIHJ1bnMgdGhlCm5vcm1hbCBob29rcyDigJh0ZXh0LW1vZGUtaG9va+KAmSBhbmQg4oCY bWVzc2FnZS1tb2RlLWhvb2vigJkuICBJbml0aWFsaXppbmcgYQpuZXcgb3V0Z29pbmcgbWVzc2Fn ZSBydW5zIHRoZSBub3JtYWwgaG9vayDigJhtZXNzYWdlLXNldHVwLWhvb2vigJk7IHlvdSBjYW4K dXNlIHRoaXMgaG9vayBpZiB5b3Ugd2FudCB0byBtYWtlIGNoYW5nZXMgdG8gdGhlIGFwcGVhcmFu Y2Ugb2YgdGhlIG1haWwKYnVmZmVyLiAgKk5vdGUgSG9va3M6Oi4KCiAgIFRoZSBtYWluIGRpZmZl cmVuY2UgYmV0d2VlbiB0aGVzZSBob29rcyBpcyBqdXN0IHdoZW4gdGhleSBhcmUKaW52b2tlZC4g IFdoZW5ldmVyIHlvdSB0eXBlIOKAmEMteCBt4oCZLCDigJhtZXNzYWdlLW1vZGUtaG9va+KAmSBy dW5zIGFzIHNvb24gYXMKdGhlIG1haWwgYnVmZmVyIGlzIGNyZWF0ZWQuICBUaGVuIHRoZSDigJht ZXNzYWdlLXNldHVw4oCZIGZ1bmN0aW9uIGluc2VydHMKdGhlIGRlZmF1bHQgY29udGVudHMgb2Yg dGhlIGJ1ZmZlci4gIEFmdGVyIHRoZXNlIGRlZmF1bHQgY29udGVudHMgYXJlCmluc2VydGVkLCDi gJhtZXNzYWdlLXNldHVwLWhvb2vigJkgcnVucy4KCiAgIElmIHlvdSB1c2Ug4oCYQy14IG3igJkg dG8gY29udGludWUgYW4gZXhpc3RpbmcgY29tcG9zaXRpb24sCuKAmG1lc3NhZ2UtbW9kZS1ob29r 4oCZIHJ1bnMgaW1tZWRpYXRlbHkgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBtYWlsIGJ1ZmZlci4K SWYgdGhlIGJ1ZmZlciBpcyB1bm1vZGlmaWVkLCBvciBpZiB5b3UgZGVjaWRlIHRvIGVyYXNlIGl0 IGFuZCBzdGFydAphZ2Fpbiwg4oCYbWVzc2FnZS1zZXR1cC1ob29r4oCZIHJ1bnMgYWZ0ZXIgdGhl IGRlZmF1bHQgY29udGVudHMgYXJlCmluc2VydGVkLgoKCioqIDMyLjUgTWFpbCBTaWduYXR1cmUK CllvdSBjYW4gYWRkIGEgc3RhbmRhcmQgcGllY2Ugb2YgdGV4dOKAlHlvdXIgIm1haWwgc2lnbmF0 dXJlIuKAlHRvIHRoZSBlbmQgb2YKZXZlcnkgbWVzc2FnZS4gIFRoaXMgc2lnbmF0dXJlIG1heSBj b250YWluIGluZm9ybWF0aW9uIHN1Y2ggYXMgeW91cgp0ZWxlcGhvbmUgbnVtYmVyIG9yIHlvdXIg cGh5c2ljYWwgbG9jYXRpb24uICBUaGUgdmFyaWFibGUK4oCYbWVzc2FnZS1zaWduYXR1cmXigJkg ZGV0ZXJtaW5lcyBob3cgRW1hY3MgaGFuZGxlcyB0aGUgbWFpbCBzaWduYXR1cmUuCgogICBUaGUg ZGVmYXVsdCB2YWx1ZSBvZiDigJhtZXNzYWdlLXNpZ25hdHVyZeKAmSBpcyDigJh04oCZOyB0aGlz IG1lYW5zIHRvIGxvb2sKZm9yIHlvdXIgbWFpbCBzaWduYXR1cmUgaW4gdGhlIGZpbGUg4oCYfi8u c2lnbmF0dXJl4oCZLiAgSWYgdGhpcyBmaWxlCmV4aXN0cywgaXRzIGNvbnRlbnRzIGFyZSBhdXRv bWF0aWNhbGx5IGluc2VydGVkIGludG8gdGhlIGVuZCBvZiB0aGUgbWFpbApidWZmZXIuICBZb3Ug Y2FuIGNoYW5nZSB0aGUgc2lnbmF0dXJlIGZpbGUgdmlhIHRoZSB2YXJpYWJsZQrigJhtZXNzYWdl LXNpZ25hdHVyZS1maWxl4oCZLgoKICAgSWYgeW91IGNoYW5nZSDigJhtZXNzYWdlLXNpZ25hdHVy ZeKAmSB0byBhIHN0cmluZywgdGhhdCBzcGVjaWZpZXMgdGhlCnRleHQgb2YgdGhlIHNpZ25hdHVy ZSBkaXJlY3RseS4KCiAgIElmIHlvdSBjaGFuZ2Ug4oCYbWVzc2FnZS1zaWduYXR1cmXigJkgdG8g 4oCYbmls4oCZLCBFbWFjcyB3aWxsIG5vdCBpbnNlcnQKeW91ciBtYWlsIHNpZ25hdHVyZSBhdXRv bWF0aWNhbGx5LiAgWW91IGNhbiBpbnNlcnQgeW91ciBtYWlsIHNpZ25hdHVyZQpieSB0eXBpbmcg 4oCYQy1jIEMtd+KAmSAo4oCYbWVzc2FnZS1pbnNlcnQtc2lnbmF0dXJl4oCZKSBpbiB0aGUgbWFp bCBidWZmZXIuCkVtYWNzIHdpbGwgbG9vayBmb3IgeW91ciBzaWduYXR1cmUgaW4gdGhlIHNpZ25h dHVyZSBmaWxlLgoKICAgSWYgeW91IHVzZSBNYWlsIG1vZGUgcmF0aGVyIHRoYW4gTWVzc2FnZSBt b2RlIGZvciBjb21wb3NpbmcgeW91cgptYWlsLCB0aGUgY29ycmVzcG9uZGluZyB2YXJpYWJsZXMg dGhhdCBkZXRlcm1pbmUgaG93IHlvdXIgc2lnbmF0dXJlIGlzCnNlbnQgYXJlIOKAmG1haWwtc2ln bmF0dXJl4oCZIGFuZCDigJhtYWlsLXNpZ25hdHVyZS1maWxl4oCZIGluc3RlYWQuCgogICBCeSBj b252ZW50aW9uLCBhIG1haWwgc2lnbmF0dXJlIHNob3VsZCBiZSBtYXJrZWQgYnkgYSBsaW5lIHdo b3NlCmNvbnRlbnRzIGFyZSDigJgtLSDigJkuICBJZiB5b3VyIHNpZ25hdHVyZSBsYWNrcyB0aGlz IHByZWZpeCwgaXQgaXMgYWRkZWQKZm9yIHlvdS4gIFRoZSByZW1haW5kZXIgb2YgeW91ciBzaWdu YXR1cmUgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiBmb3VyCmxpbmVzLgoKCioqIDMyLjYgTWFpbCBB bXVzZW1lbnRzCgrigJhNLXggc3Bvb2vigJkgYWRkcyBhIGxpbmUgb2YgcmFuZG9tbHkgY2hvc2Vu IGtleXdvcmRzIHRvIGFuIG91dGdvaW5nIG1haWwKbWVzc2FnZS4gIFRoZSBrZXl3b3JkcyBhcmUg Y2hvc2VuIGZyb20gYSBsaXN0IG9mIHdvcmRzIHRoYXQgc3VnZ2VzdCB5b3UKYXJlIGRpc2N1c3Np bmcgc29tZXRoaW5nIHN1YnZlcnNpdmUuCgogICBUaGUgaWRlYSBiZWhpbmQgdGhpcyBmZWF0dXJl IGlzIHRoZSBzdXNwaWNpb24gdGhhdCB0aGUgTlNBKDEpIGFuZApvdGhlciBpbnRlbGxpZ2VuY2Ug YWdlbmNpZXMgc25vb3Agb24gYWxsIGVsZWN0cm9uaWMgbWFpbCBtZXNzYWdlcyB0aGF0CmNvbnRh aW4ga2V5d29yZHMgc3VnZ2VzdGluZyB0aGV5IG1pZ2h0IGZpbmQgdGhlbSBpbnRlcmVzdGluZy4g IChUaGUKYWdlbmNpZXMgc2F5IHRoYXQgdGhleSBkb27igJl0LCBidXQgdGhhdOKAmXMgd2hhdCB0 aGV5IF93b3VsZF8gc2F5LikgIFRoZQppZGVhIGlzIHRoYXQgaWYgbG90cyBvZiBwZW9wbGUgYWRk IHN1c3BpY2lvdXMgd29yZHMgdG8gdGhlaXIgbWVzc2FnZXMsCnRoZSBhZ2VuY2llcyB3aWxsIGdl dCBzbyBidXN5IHdpdGggc3B1cmlvdXMgaW5wdXQgdGhhdCB0aGV5IHdpbGwgaGF2ZSB0bwpnaXZl IHVwIHJlYWRpbmcgaXQgYWxsLiAgV2hldGhlciBvciBub3QgdGhpcyBpcyB0cnVlLCBpdCBhdCBs ZWFzdCBhbXVzZXMKc29tZSBwZW9wbGUuCgogICBZb3UgY2FuIHVzZSB0aGUg4oCYZm9ydHVuZeKA mSBwcm9ncmFtIHRvIHB1dCBhIGZvcnR1bmUgY29va2llIG1lc3NhZ2UKaW50byBvdXRnb2luZyBt YWlsLiAgVG8gZG8gdGhpcywgYWRkIOKAmGZvcnR1bmUtdG8tc2lnbmF0dXJl4oCZIHRvCuKAmG1h aWwtc2V0dXAtaG9va+KAmToKCiAgICAgKGFkZC1ob29rICdtYWlsLXNldHVwLWhvb2sgJ2ZvcnR1 bmUtdG8tc2lnbmF0dXJlKQoKWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBzZXQgdGhlIHZhcmlh YmxlIOKAmGZvcnR1bmUtZmlsZeKAmSBiZWZvcmUgdXNpbmcKdGhpcy4KCiAgIC0tLS0tLS0tLS0g Rm9vdG5vdGVzIC0tLS0tLS0tLS0KCiAgICgxKSBUaGUgVVMgTmF0aW9uYWwgU2VjdXJpdHkgQWdl bmN5LgoKCioqIDMyLjcgTWFpbC1Db21wb3NpdGlvbiBNZXRob2RzCgpJbiB0aGlzIGNoYXB0ZXIg d2UgaGF2ZSBkZXNjcmliZWQgdGhlIHVzdWFsIEVtYWNzIG1vZGUgZm9yIGVkaXRpbmcgYW5kCnNl bmRpbmcgbWFpbOKAlE1lc3NhZ2UgbW9kZS4gIFRoaXMgaXMgb25seSBvbmUgb2Ygc2V2ZXJhbCBh dmFpbGFibGUgbW9kZXMuClByaW9yIHRvIEVtYWNzIDIzLjIsIHRoZSBkZWZhdWx0IG1vZGUgd2Fz IE1haWwgbW9kZSwgd2hpY2ggaXMgc2ltaWxhciB0bwpNZXNzYWdlIG1vZGUgaW4gbWFueSByZXNw ZWN0cyBidXQgbGFja3MgZmVhdHVyZXMgc3VjaCBhcyBNSU1FIHN1cHBvcnQuCkFub3RoZXIgYXZh aWxhYmxlIG1vZGUgaXMgTUgtRSAoKm5vdGUgTUgtRTogKG1oLWUpVG9wLikuCgogICBZb3UgY2Fu IGNob29zZSBhbnkgb2YgdGhlc2UgIm1haWwgdXNlciBhZ2VudHMiIGFzIHlvdXIgcHJlZmVycmVk Cm1ldGhvZCBmb3IgZWRpdGluZyBhbmQgc2VuZGluZyBtYWlsLiAgVGhlIGNvbW1hbmRzIOKAmEMt eCBt4oCZLCDigJhDLXggNCBt4oCZCmFuZCDigJhDLXggNSBt4oCZIHVzZSB3aGljaGV2ZXIgYWdl bnQgeW91IGhhdmUgc3BlY2lmaWVkOyBzbyBkbyB2YXJpb3VzCm90aGVyIHBhcnRzIG9mIEVtYWNz IHRoYXQgc2VuZCBtYWlsLCBzdWNoIGFzIHRoZSBidWcgcmVwb3J0ZXIgKCpub3RlCkJ1Z3M6Oiku ICBUbyBzcGVjaWZ5IGEgbWFpbCB1c2VyIGFnZW50LCBjdXN0b21pemUgdGhlIHZhcmlhYmxlCuKA mG1haWwtdXNlci1hZ2VudOKAmS4gIEN1cnJlbnRseSwgbGVnaXRpbWF0ZSB2YWx1ZXMgaW5jbHVk ZQrigJhtZXNzYWdlLXVzZXItYWdlbnTigJkgKE1lc3NhZ2UgbW9kZSkg4oCYc2VuZG1haWwtdXNl ci1hZ2VudOKAmSAoTWFpbCBtb2RlKSwK4oCYZ251cy11c2VyLWFnZW504oCZLCBhbmQg4oCYbWgt ZS11c2VyLWFnZW504oCZLgoKICAgSWYgeW91IHNlbGVjdCBhIGRpZmZlcmVudCBtYWlsLWNvbXBv c2l0aW9uIG1ldGhvZCwgdGhlIGluZm9ybWF0aW9uIGluCnRoaXMgY2hhcHRlciBhYm91dCB0aGUg bWFpbCBidWZmZXIgYW5kIE1lc3NhZ2UgbW9kZSBkb2VzIG5vdCBhcHBseTsgdGhlCm90aGVyIG1l dGhvZHMgdXNlIGEgZGlmZmVyZW50IGZvcm1hdCBvZiB0ZXh0IGluIGEgZGlmZmVyZW50IGJ1ZmZl ciwgYW5kCnRoZWlyIGNvbW1hbmRzIGFyZSBkaWZmZXJlbnQgYXMgd2VsbC4KCiAgIFNpbWlsYXJs eSwgdG8gc3BlY2lmeSB5b3VyIHByZWZlcnJlZCBtZXRob2QgZm9yIHJlYWRpbmcgbWFpbCwKY3Vz dG9taXplIHRoZSB2YXJpYWJsZSDigJhyZWFkLW1haWwtY29tbWFuZOKAmS4gIFRoZSBkZWZhdWx0 IGlzIOKAmHJtYWls4oCZCigqbm90ZSBSbWFpbDo6KS4KCgoqIDMzIFJlYWRpbmcgTWFpbCB3aXRo IFJtYWlsCgpSbWFpbCBpcyBhbiBFbWFjcyBzdWJzeXN0ZW0gZm9yIHJlYWRpbmcgYW5kIGRpc3Bv c2luZyBvZiBtYWlsIHRoYXQgeW91CnJlY2VpdmUuICBSbWFpbCBzdG9yZXMgbWFpbCBtZXNzYWdl cyBpbiBmaWxlcyBjYWxsZWQgUm1haWwgZmlsZXMuClJlYWRpbmcgdGhlIG1lc3NhZ2VzIGluIGFu IFJtYWlsIGZpbGUgaXMgZG9uZSBpbiBhIHNwZWNpYWwgbWFqb3IgbW9kZSwKUm1haWwgbW9kZSwg d2hpY2ggcmVkZWZpbmVzIG1vc3QgbGV0dGVycyB0byBydW4gY29tbWFuZHMgZm9yIG1hbmFnaW5n Cm1haWwuCgogICBFbWFjcyBhbHNvIGNvbWVzIHdpdGggYSBtdWNoIG1vcmUgc29waGlzdGljYXRl ZCBhbmQgZmxleGlibGUKc3Vic3lzdGVtIGZvciByZWFkaW5nIG1haWwsIGNhbGxlZCBHbnVzLiAg R251cyBpcyBhIHZlcnkgbGFyZ2UgcGFja2FnZSwKYW5kIGlzIHRoZXJlZm9yZSBkZXNjcmliZWQg aW4gaXRzIG93biBtYW51YWwsIHNlZSAqbm90ZSAoZ251cylUb3A6Oi4KCisgTWVudToKCiAgLSBC YXNpYzogUm1haWwgQmFzaWNzLiAgICAgICBCYXNpYyBjb25jZXB0cyBvZiBSbWFpbCwgYW5kIHNp bXBsZSB1c2UuCiAgLSBTY3JvbGw6IFJtYWlsIFNjcm9sbGluZy4gICBTY3JvbGxpbmcgdGhyb3Vn aCBhIG1lc3NhZ2UuCiAgLSBNb3Rpb246IFJtYWlsIE1vdGlvbi4gICAgICBNb3ZpbmcgdG8gYW5v dGhlciBtZXNzYWdlLgogIC0gRGVsZXRpb246IFJtYWlsIERlbGV0aW9uLiAgRGVsZXRpbmcgYW5k IGV4cHVuZ2luZyBtZXNzYWdlcy4KICAtIEluYm94OiBSbWFpbCBJbmJveC4gICAgICAgIEhvdyBt YWlsIGdldHMgaW50byB0aGUgUm1haWwgZmlsZS4KICAtIEZpbGVzOiBSbWFpbCBGaWxlcy4gICAg ICAgIFVzaW5nIG11bHRpcGxlIFJtYWlsIGZpbGVzLgogIC0gT3V0cHV0OiBSbWFpbCBPdXRwdXQu ICAgICAgQ29weWluZyBtZXNzYWdlcyBvdXQgdG8gZmlsZXMuCiAgLSBMYWJlbHM6IFJtYWlsIExh YmVscy4gICAgICBDbGFzc2lmeWluZyBtZXNzYWdlcyBieSBsYWJlbGluZyB0aGVtLgogIC0gQXR0 cnM6IFJtYWlsIEF0dHJpYnV0ZXMuICAgQ2VydGFpbiBzdGFuZGFyZCBsYWJlbHMsIGNhbGxlZCBh dHRyaWJ1dGVzLgogIC0gUmVwbHk6IFJtYWlsIFJlcGx5LiAgICAgICAgU2VuZGluZyByZXBsaWVz IHRvIG1lc3NhZ2VzIHlvdSBhcmUgdmlld2luZy4KICAtIFN1bW1hcnk6IFJtYWlsIFN1bW1hcnku ICAgIFN1bW1hcmllcyBzaG93IGJyaWVmIGluZm8gb24gbWFueSBtZXNzYWdlcy4KICAtIFNvcnQ6 IFJtYWlsIFNvcnRpbmcuICAgICAgIFNvcnRpbmcgbWVzc2FnZXMgaW4gUm1haWwuCiAgLSBEaXNw bGF5OiBSbWFpbCBEaXNwbGF5LiAgICBIb3cgUm1haWwgZGlzcGxheXMgYSBtZXNzYWdlOyBjdXN0 b21pemF0aW9uLgogIC0gQ29kaW5nOiBSbWFpbCBDb2RpbmcuICAgICAgSG93IFJtYWlsIGhhbmRs ZXMgZGVjb2RpbmcgY2hhcmFjdGVyIHNldHMuCiAgLSBFZGl0aW5nOiBSbWFpbCBFZGl0aW5nLiAg ICBFZGl0aW5nIG1lc3NhZ2UgdGV4dCBhbmQgaGVhZGVycyBpbiBSbWFpbC4KICAtIERpZ2VzdDog Um1haWwgRGlnZXN0LiAgICAgIEV4dHJhY3RpbmcgdGhlIG1lc3NhZ2VzIGZyb20gYSBkaWdlc3Qg bWVzc2FnZS4KICAtIFJvdDEzOiBSbWFpbCBSb3QxMy4gICAgICAgIFJlYWRpbmcgbWVzc2FnZXMg ZW5jb2RlZCBpbiB0aGUgcm90MTMgY29kZS4KICAtIE1vdmVtYWlsOjogICAgICAgICAgICAgICAg IE1vcmUgZGV0YWlscyBvZiBmZXRjaGluZyBuZXcgbWFpbC4KICAtIFJlbW90ZSBNYWlsYm94ZXM6 OiAgICAgICAgIFJldHJpZXZpbmcgbWFpbCBmcm9tIHJlbW90ZSBtYWlsYm94ZXMuCiAgLSBPdGhl ciBNYWlsYm94IEZvcm1hdHM6OiAgICBSZXRyaWV2aW5nIG1haWwgZnJvbSBsb2NhbCBtYWlsYm94 ZXMgaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpb3VzIGZvcm1hdHMuCgoKKiog MzMuMSBCYXNpYyBDb25jZXB0cyBvZiBSbWFpbAoKVXNpbmcgUm1haWwgaW4gdGhlIHNpbXBsZXN0 IGZhc2hpb24sIHlvdSBoYXZlIG9uZSBSbWFpbCBmaWxlIOKAmH4vUk1BSUzigJkKaW4gd2hpY2gg YWxsIG9mIHlvdXIgbWFpbCBpcyBzYXZlZC4gIEl0IGlzIGNhbGxlZCB5b3VyICJwcmltYXJ5IFJt YWlsCmZpbGUiLiAgVGhlIGNvbW1hbmQg4oCYTS14IHJtYWls4oCZIHJlYWRzIHlvdXIgcHJpbWFy eSBSbWFpbCBmaWxlLCBtZXJnZXMKbmV3IG1haWwgaW4gZnJvbSB5b3VyIGluYm94ZXMsIGRpc3Bs YXlzIHRoZSBmaXJzdCBtZXNzYWdlIHlvdSBoYXZlbuKAmXQKcmVhZCB5ZXQsIGFuZCBsZXRzIHlv dSBiZWdpbiByZWFkaW5nLiAgVGhlIHZhcmlhYmxlIOKAmHJtYWlsLWZpbGUtbmFtZeKAmQpzcGVj aWZpZXMgdGhlIG5hbWUgb2YgdGhlIHByaW1hcnkgUm1haWwgZmlsZS4KCiAgIFJtYWlsIGRpc3Bs YXlzIG9ubHkgb25lIG1lc3NhZ2UgaW4gdGhlIFJtYWlsIGZpbGUgYXQgYSB0aW1lLiAgVGhlCm1l c3NhZ2UgdGhhdCBpcyBzaG93biBpcyBjYWxsZWQgdGhlICJjdXJyZW50IG1lc3NhZ2UiLiAgUm1h aWwgbW9kZeKAmXMKc3BlY2lhbCBjb21tYW5kcyBjYW4gZG8gc3VjaCB0aGluZ3MgYXMgZGVsZXRl IHRoZSBjdXJyZW50IG1lc3NhZ2UsIGNvcHkKaXQgaW50byBhbm90aGVyIGZpbGUsIHNlbmQgYSBy ZXBseSwgb3IgbW92ZSB0byBhbm90aGVyIG1lc3NhZ2UuICBZb3UgY2FuCmFsc28gY3JlYXRlIG11 bHRpcGxlIFJtYWlsIGZpbGVzICgqbm90ZSBGaWxlczo6KSBhbmQgdXNlIFJtYWlsIHRvIG1vdmUK bWVzc2FnZXMgYmV0d2VlbiB0aGVtICgqbm90ZSBSbWFpbCBPdXRwdXQ6OikuCgogICBXaXRoaW4g dGhlIFJtYWlsIGZpbGUsIG1lc3NhZ2VzIGFyZSBub3JtYWxseSBhcnJhbmdlZCBzZXF1ZW50aWFs bHkgaW4Kb3JkZXIgb2YgcmVjZWlwdDsgeW91IGNhbiBzcGVjaWZ5IG90aGVyIHdheXMgdG8gc29y dCB0aGVtICgqbm90ZSBSbWFpbApTb3J0aW5nOjopLiAgTWVzc2FnZXMgYXJlIGlkZW50aWZpZWQg YnkgY29uc2VjdXRpdmUgaW50ZWdlcnMgd2hpY2ggYXJlCnRoZWlyICJtZXNzYWdlIG51bWJlcnMi LiAgVGhlIG51bWJlciBvZiB0aGUgY3VycmVudCBtZXNzYWdlIGlzIGRpc3BsYXllZAppbiBSbWFp bOKAmXMgbW9kZSBsaW5lLCBmb2xsb3dlZCBieSB0aGUgdG90YWwgbnVtYmVyIG9mIG1lc3NhZ2Vz IGluIHRoZQpmaWxlLiAgWW91IGNhbiBtb3ZlIHRvIGEgbWVzc2FnZSBieSBzcGVjaWZ5aW5nIGl0 cyBtZXNzYWdlIG51bWJlciB3aXRoCnRoZSDigJhq4oCZIGtleSAoKm5vdGUgUm1haWwgTW90aW9u OjopLgoKICAgRm9sbG93aW5nIHRoZSB1c3VhbCBjb252ZW50aW9ucyBvZiBFbWFjcywgY2hhbmdl cyBpbiBhbiBSbWFpbCBmaWxlCmJlY29tZSBwZXJtYW5lbnQgb25seSB3aGVuIHlvdSBzYXZlIHRo ZSBmaWxlLiAgWW91IGNhbiBzYXZlIGl0IHdpdGgg4oCYc+KAmQoo4oCYcm1haWwtZXhwdW5nZS1h bmQtc2F2ZeKAmSksIHdoaWNoIGFsc28gZXhwdW5nZXMgZGVsZXRlZCBtZXNzYWdlcyBmcm9tCnRo ZSBmaWxlIGZpcnN0ICgqbm90ZSBSbWFpbCBEZWxldGlvbjo6KS4gIFRvIHNhdmUgdGhlIGZpbGUg d2l0aG91dApleHB1bmdpbmcsIHVzZSDigJhDLXggQy1z4oCZLiAgUm1haWwgYXV0b21hdGljYWxs eSBzYXZlcyB0aGUgUm1haWwgZmlsZQphZnRlciBtZXJnaW5nIG5ldyBtYWlsIGZyb20gYW4gaW5i b3ggZmlsZSAoKm5vdGUgUm1haWwgSW5ib3g6OikuCgogICBZb3UgY2FuIGV4aXQgUm1haWwgd2l0 aCDigJhx4oCZICjigJhybWFpbC1xdWl04oCZKTsgdGhpcyBleHB1bmdlcyBhbmQgc2F2ZXMKdGhl IFJtYWlsIGZpbGUsIHRoZW4gYnVyaWVzIHRoZSBSbWFpbCBidWZmZXIgYXMgd2VsbCBhcyBpdHMg c3VtbWFyeQpidWZmZXIsIGlmIHByZXNlbnQgKCpub3RlIFJtYWlsIFN1bW1hcnk6OikuICBCdXQg dGhlcmUgaXMgbm8gbmVlZCB0bwpleGl0IGZvcm1hbGx5LiAgSWYgeW91IHN3aXRjaCBmcm9tIFJt YWlsIHRvIGVkaXRpbmcgaW4gb3RoZXIgYnVmZmVycywKYW5kIG5ldmVyIHN3aXRjaCBiYWNrLCB5 b3UgaGF2ZSBleGl0ZWQuICBKdXN0IG1ha2Ugc3VyZSB0byBzYXZlIHRoZQpSbWFpbCBmaWxlIGV2 ZW50dWFsbHkgKGxpa2UgYW55IG90aGVyIGZpbGUgeW91IGhhdmUgY2hhbmdlZCkuICDigJhDLXgg c+KAmQppcyBhIHN1aXRhYmxlIHdheSB0byBkbyB0aGlzICgqbm90ZSBTYXZlIENvbW1hbmRzOjop LiAgVGhlIFJtYWlsIGNvbW1hbmQK4oCYYuKAmSwg4oCYcm1haWwtYnVyeeKAmSwgYnVyaWVzIHRo ZSBSbWFpbCBidWZmZXIgYW5kIGl0cyBzdW1tYXJ5IHdpdGhvdXQKZXhwdW5naW5nIGFuZCBzYXZp bmcgdGhlIFJtYWlsIGZpbGUuCgoKKiogMzMuMiBTY3JvbGxpbmcgV2l0aGluIGEgTWVzc2FnZQoK V2hlbiBSbWFpbCBkaXNwbGF5cyBhIG1lc3NhZ2UgdGhhdCBkb2VzIG5vdCBmaXQgb24gdGhlIHNj cmVlbiwgeW91IG11c3QKc2Nyb2xsIHRocm91Z2ggaXQgdG8gcmVhZCB0aGUgcmVzdC4gIFlvdSBj b3VsZCBkbyB0aGlzIHdpdGggdGhlIHVzdWFsCnNjcm9sbGluZyBjb21tYW5kczog4oCYQy124oCZ LCDigJhNLXbigJkgYW5kIOKAmE0tPOKAmSAoKm5vdGUgU2Nyb2xsaW5nOjopLCBidXQgaW4KUm1h aWwgc2Nyb2xsaW5nIGlzIHNvIGZyZXF1ZW50IHRoYXQgaXQgZGVzZXJ2ZXMgdG8gYmUgZWFzaWVy LgoK4oCYPFNQQz7igJkKICAgICBTY3JvbGwgZm9yd2FyZCAo4oCYc2Nyb2xsLXVwLWNvbW1hbmTi gJkpLgrigJg8REVMPuKAmQrigJhTLTxTUEM+4oCZCiAgICAgU2Nyb2xsIGJhY2t3YXJkICjigJhz Y3JvbGwtZG93bi1jb21tYW5k4oCZKS4K4oCYLuKAmQogICAgIFNjcm9sbCB0byBzdGFydCBvZiBt ZXNzYWdlICjigJhybWFpbC1iZWdpbm5pbmctb2YtbWVzc2FnZeKAmSkuCuKAmC/igJkKICAgICBT Y3JvbGwgdG8gZW5kIG9mIG1lc3NhZ2UgKOKAmHJtYWlsLWVuZC1vZi1tZXNzYWdl4oCZKS4KCiAg IFNpbmNlIHRoZSBtb3N0IGNvbW1vbiB0aGluZyB0byBkbyB3aGlsZSByZWFkaW5nIGEgbWVzc2Fn ZSBpcyB0bwpzY3JvbGwgdGhyb3VnaCBpdCBieSBzY3JlZW5mdWxzLCBSbWFpbCBtYWtlcyA8U1BD PiBhbmQgPERFTD4gKG9yCuKAmFMtPFNQQz7igJkpIGRvIHRoZSBzYW1lIGFzIOKAmEMtduKAmSAo 4oCYc2Nyb2xsLXVwLWNvbW1hbmTigJkpIGFuZCDigJhNLXbigJkKKOKAmHNjcm9sbC1kb3duLWNv bW1hbmTigJkpIHJlc3BlY3RpdmVseS4KCiAgIFRoZSBjb21tYW5kIOKAmC7igJkgKOKAmHJtYWls LWJlZ2lubmluZy1vZi1tZXNzYWdl4oCZKSBzY3JvbGxzIGJhY2sgdG8gdGhlCmJlZ2lubmluZyBv ZiB0aGUgc2VsZWN0ZWQgbWVzc2FnZS4gIFRoaXMgaXMgbm90IHF1aXRlIHRoZSBzYW1lIGFzIOKA mE0tPOKAmToKZm9yIG9uZSB0aGluZywgaXQgZG9lcyBub3Qgc2V0IHRoZSBtYXJrOyBmb3IgYW5v dGhlciwgaXQgcmVzZXRzIHRoZQpidWZmZXIgYm91bmRhcmllcyBvZiB0aGUgY3VycmVudCBtZXNz YWdlIGlmIHlvdSBoYXZlIGNoYW5nZWQgdGhlbSAoZS5nLiwKYnkgZWRpdGluZywgKm5vdGUgUm1h aWwgRWRpdGluZzo6KS4gIFNpbWlsYXJseSwgdGhlIGNvbW1hbmQg4oCYL+KAmQoo4oCYcm1haWwt ZW5kLW9mLW1lc3NhZ2XigJkpIHNjcm9sbHMgZm9yd2FyZCB0byB0aGUgZW5kIG9mIHRoZSBzZWxl Y3RlZAptZXNzYWdlLgoKCioqIDMzLjMgTW92aW5nIEFtb25nIE1lc3NhZ2VzCgpUaGUgbW9zdCBi YXNpYyB0aGluZyB0byBkbyB3aXRoIGEgbWVzc2FnZSBpcyB0byByZWFkIGl0LiAgVGhlIHdheSB0 byBkbwp0aGlzIGluIFJtYWlsIGlzIHRvIG1ha2UgdGhlIG1lc3NhZ2UgY3VycmVudC4gIFRoZSB1 c3VhbCBwcmFjdGljZSBpcyB0bwptb3ZlIHNlcXVlbnRpYWxseSB0aHJvdWdoIHRoZSBmaWxlLCBz aW5jZSB0aGlzIGlzIHRoZSBvcmRlciBvZiByZWNlaXB0Cm9mIG1lc3NhZ2VzLiAgV2hlbiB5b3Ug ZW50ZXIgUm1haWwsIHlvdSBhcmUgcG9zaXRpb25lZCBhdCB0aGUgZmlyc3QKbWVzc2FnZSB0aGF0 IHlvdSBoYXZlIG5vdCB5ZXQgbWFkZSBjdXJyZW50ICh0aGF0IGlzLCB0aGUgZmlyc3Qgb25lIHRo YXQKaGFzIHRoZSDigJh1bnNlZW7igJkgYXR0cmlidXRlOyAqbm90ZSBSbWFpbCBBdHRyaWJ1dGVz OjopLiAgTW92ZSBmb3J3YXJkIHRvCnNlZSB0aGUgb3RoZXIgbmV3IG1lc3NhZ2VzOyBtb3ZlIGJh Y2t3YXJkIHRvIHJlLWV4YW1pbmUgb2xkIG1lc3NhZ2VzLgoK4oCYbuKAmQogICAgIE1vdmUgdG8g dGhlIG5leHQgbm9uZGVsZXRlZCBtZXNzYWdlLCBza2lwcGluZyBhbnkgaW50ZXJ2ZW5pbmcKICAg ICBkZWxldGVkIG1lc3NhZ2VzICjigJhybWFpbC1uZXh0LXVuZGVsZXRlZC1tZXNzYWdl4oCZKS4K 4oCYcOKAmQogICAgIE1vdmUgdG8gdGhlIHByZXZpb3VzIG5vbmRlbGV0ZWQgbWVzc2FnZQogICAg ICjigJhybWFpbC1wcmV2aW91cy11bmRlbGV0ZWQtbWVzc2FnZeKAmSkuCuKAmE0tbuKAmQogICAg IE1vdmUgdG8gdGhlIG5leHQgbWVzc2FnZSwgaW5jbHVkaW5nIGRlbGV0ZWQgbWVzc2FnZXMKICAg ICAo4oCYcm1haWwtbmV4dC1tZXNzYWdl4oCZKS4K4oCYTS1w4oCZCiAgICAgTW92ZSB0byB0aGUg cHJldmlvdXMgbWVzc2FnZSwgaW5jbHVkaW5nIGRlbGV0ZWQgbWVzc2FnZXMKICAgICAo4oCYcm1h aWwtcHJldmlvdXMtbWVzc2FnZeKAmSkuCuKAmEMtYyBDLW7igJkKICAgICBNb3ZlIHRvIHRoZSBu ZXh0IG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBzdWJqZWN0IGFzIHRoZSBjdXJyZW50IG9uZQogICAg ICjigJhybWFpbC1uZXh0LXNhbWUtc3ViamVjdOKAmSkuCuKAmEMtYyBDLXDigJkKICAgICBNb3Zl IHRvIHRoZSBwcmV2aW91cyBtZXNzYWdlIHdpdGggdGhlIHNhbWUgc3ViamVjdCBhcyB0aGUgY3Vy cmVudAogICAgIG9uZSAo4oCYcm1haWwtcHJldmlvdXMtc2FtZS1zdWJqZWN04oCZKS4K4oCYauKA mQogICAgIE1vdmUgdG8gdGhlIGZpcnN0IG1lc3NhZ2UuICBXaXRoIGFyZ3VtZW50IE4sIG1vdmUg dG8gbWVzc2FnZSBudW1iZXIKICAgICBOICjigJhybWFpbC1zaG93LW1lc3NhZ2XigJkpLgrigJg+ 4oCZCiAgICAgTW92ZSB0byB0aGUgbGFzdCBtZXNzYWdlICjigJhybWFpbC1sYXN0LW1lc3NhZ2Xi gJkpLgrigJg84oCZCiAgICAgTW92ZSB0byB0aGUgZmlyc3QgbWVzc2FnZSAo4oCYcm1haWwtZmly c3QtbWVzc2FnZeKAmSkuCuKAmE0tcyBSRUdFWFAgPFJFVD7igJkKICAgICBNb3ZlIHRvIHRoZSBu ZXh0IG1lc3NhZ2UgY29udGFpbmluZyBhIG1hdGNoIGZvciBSRUdFWFAKICAgICAo4oCYcm1haWwt c2VhcmNo4oCZKS4K4oCYLSBNLXMgUkVHRVhQIDxSRVQ+4oCZCiAgICAgTW92ZSB0byB0aGUgcHJl dmlvdXMgbWVzc2FnZSBjb250YWluaW5nIGEgbWF0Y2ggZm9yIFJFR0VYUC4gIChUaGlzCiAgICAg aXMg4oCYTS1z4oCZIHdpdGggYSBuZWdhdGl2ZSBhcmd1bWVudC4pCgogICDigJhu4oCZIGFuZCDi gJhw4oCZIGFyZSB0aGUgdXN1YWwgd2F5IG9mIG1vdmluZyBhbW9uZyBtZXNzYWdlcyBpbiBSbWFp bC4KVGhleSBtb3ZlIHRocm91Z2ggdGhlIG1lc3NhZ2VzIHNlcXVlbnRpYWxseSwgYnV0IHNraXAg b3ZlciBkZWxldGVkCm1lc3NhZ2VzLCB3aGljaCBpcyB1c3VhbGx5IHdoYXQgeW91IHdhbnQgdG8g ZG8uICBUaGVpciBjb21tYW5kCmRlZmluaXRpb25zIGFyZSBuYW1lZCDigJhybWFpbC1uZXh0LXVu ZGVsZXRlZC1tZXNzYWdl4oCZIGFuZArigJhybWFpbC1wcmV2aW91cy11bmRlbGV0ZWQtbWVzc2Fn ZeKAmS4gIElmIHlvdSBkbyBub3Qgd2FudCB0byBza2lwIGRlbGV0ZWQKbWVzc2FnZXPigJRmb3Ig ZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gbW92ZSB0byBhIG1lc3NhZ2UgdG8gdW5kZWxldGUKaXTi gJR1c2UgdGhlIHZhcmlhbnRzIOKAmE0tbuKAmSBhbmQg4oCYTS1w4oCZICjigJhybWFpbC1uZXh0 LW1lc3NhZ2XigJkgYW5kCuKAmHJtYWlsLXByZXZpb3VzLW1lc3NhZ2XigJkpLiAgQSBudW1lcmlj IGFyZ3VtZW50IHRvIGFueSBvZiB0aGVzZSBjb21tYW5kcwpzZXJ2ZXMgYXMgYSByZXBlYXQgY291 bnQuCgogICBJbiBSbWFpbCwgeW91IGNhbiBzcGVjaWZ5IGEgbnVtZXJpYyBhcmd1bWVudCBieSB0 eXBpbmcganVzdCB0aGUKZGlnaXRzLiAgWW91IGRvbuKAmXQgbmVlZCB0byB0eXBlIOKAmEMtdeKA mSBmaXJzdC4gIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGEKbmVnYXRpdmUgYXJndW1lbnQgYnkgdHlw aW5nIGp1c3Qg4oCYLeKAmS4KCiAgIFRoZSDigJhNLXPigJkgKOKAmHJtYWlsLXNlYXJjaOKAmSkg Y29tbWFuZCBpcyBSbWFpbOKAmXMgdmVyc2lvbiBvZiBzZWFyY2guICBUaGUKdXN1YWwgaW5jcmVt ZW50YWwgc2VhcmNoIGNvbW1hbmQg4oCYQy1z4oCZIHdvcmtzIGluIFJtYWlsLCBidXQgaXQgc2Vh cmNoZXMKb25seSB3aXRoaW4gdGhlIGN1cnJlbnQgbWVzc2FnZS4gIFRoZSBwdXJwb3NlIG9mIOKA mE0tc+KAmSBpcyB0byBzZWFyY2ggZm9yCmFub3RoZXIgbWVzc2FnZS4gIEl0IHJlYWRzIGEgcmVn dWxhciBleHByZXNzaW9uICgqbm90ZSBSZWdleHBzOjopCm5vbmluY3JlbWVudGFsbHksIHRoZW4g c2VhcmNoZXMgc3RhcnRpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUKZm9sbG93aW5nIG1lc3Nh Z2UgZm9yIGEgbWF0Y2guICBJdCB0aGVuIHNlbGVjdHMgdGhhdCBtZXNzYWdlLiAgSWYgUkVHRVhQ CmlzIGVtcHR5LCDigJhNLXPigJkgcmV1c2VzIHRoZSByZWdleHAgdXNlZCB0aGUgcHJldmlvdXMg dGltZS4KCiAgIFRvIHNlYXJjaCBiYWNrd2FyZCBpbiB0aGUgZmlsZSBmb3IgYW5vdGhlciBtZXNz YWdlLCBnaXZlIOKAmE0tc+KAmSBhCm5lZ2F0aXZlIGFyZ3VtZW50LiAgSW4gUm1haWwgeW91IGNh biBkbyB0aGlzIHdpdGgg4oCYLSBNLXPigJkuICBUaGlzIGJlZ2lucwpzZWFyY2hpbmcgZnJvbSB0 aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBtZXNzYWdlLgoKICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0 byBzZWFyY2ggZm9yIGEgbWVzc2FnZSBiYXNlZCBvbiBsYWJlbHMuICAqTm90ZQpSbWFpbCBMYWJl bHM6Oi4KCiAgIFRoZSDigJhDLWMgQy1u4oCZICjigJhybWFpbC1uZXh0LXNhbWUtc3ViamVjdOKA mSkgY29tbWFuZCBtb3ZlcyB0byB0aGUgbmV4dAptZXNzYWdlIHdpdGggdGhlIHNhbWUgc3ViamVj dCBhcyB0aGUgY3VycmVudCBvbmUuICBBIHByZWZpeCBhcmd1bWVudApzZXJ2ZXMgYXMgYSByZXBl YXQgY291bnQuICBXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsIHRoaXMgY29tbWFuZCBtb3Zlcwpi YWNrd2FyZCwgYWN0aW5nIGxpa2Ug4oCYQy1jIEMtcOKAmSAo4oCYcm1haWwtcHJldmlvdXMtc2Ft ZS1zdWJqZWN04oCZKS4gIFdoZW4KY29tcGFyaW5nIHN1YmplY3RzLCB0aGVzZSBjb21tYW5kcyBp Z25vcmUgdGhlIHByZWZpeGVzIHR5cGljYWxseSBhZGRlZAp0byB0aGUgc3ViamVjdHMgb2YgcmVw bGllcy4gIFRoZXNlIGNvbW1hbmRzIGFyZSB1c2VmdWwgZm9yIHJlYWRpbmcgYWxsCm9mIHRoZSBt ZXNzYWdlcyBwZXJ0YWluaW5nIHRvIHRoZSBzYW1lIHN1YmplY3QsIGEuay5hLiAidGhyZWFkIi4K CiAgIFRvIG1vdmUgdG8gYSBtZXNzYWdlIHNwZWNpZmllZCBieSBhYnNvbHV0ZSBtZXNzYWdlIG51 bWJlciwgdXNlIOKAmGrigJkKKOKAmHJtYWlsLXNob3ctbWVzc2FnZeKAmSkgd2l0aCB0aGUgbWVz c2FnZSBudW1iZXIgYXMgYXJndW1lbnQuICBXaXRoIG5vCmFyZ3VtZW50LCDigJhq4oCZIHNlbGVj dHMgdGhlIGZpcnN0IG1lc3NhZ2UuICDigJg84oCZICjigJhybWFpbC1maXJzdC1tZXNzYWdl4oCZ KQphbHNvIHNlbGVjdHMgdGhlIGZpcnN0IG1lc3NhZ2UuICDigJg+4oCZICjigJhybWFpbC1sYXN0 LW1lc3NhZ2XigJkpIHNlbGVjdHMgdGhlCmxhc3QgbWVzc2FnZS4KCgoqKiAzMy40IERlbGV0aW5n IE1lc3NhZ2VzCgpXaGVuIHlvdSBubyBsb25nZXIgbmVlZCB0byBrZWVwIGEgbWVzc2FnZSwgeW91 IGNhbiAiZGVsZXRlIiBpdC4gIFRoaXMKZmxhZ3MgaXQgYXMgaWdub3JhYmxlLCBhbmQgc29tZSBS bWFpbCBjb21tYW5kcyBwcmV0ZW5kIGl0IGlzIG5vIGxvbmdlcgpwcmVzZW50OyBidXQgaXQgc3Rp bGwgaGFzIGl0cyBwbGFjZSBpbiB0aGUgUm1haWwgZmlsZSwgYW5kIHN0aWxsIGhhcyBpdHMKbWVz c2FnZSBudW1iZXIuCgogICAiRXhwdW5naW5nIiB0aGUgUm1haWwgZmlsZSBhY3R1YWxseSByZW1v dmVzIHRoZSBkZWxldGVkIG1lc3NhZ2VzLgpUaGUgcmVtYWluaW5nIG1lc3NhZ2VzIGFyZSByZW51 bWJlcmVkIGNvbnNlY3V0aXZlbHkuCgrigJhk4oCZCiAgICAgRGVsZXRlIHRoZSBjdXJyZW50IG1l c3NhZ2UsIGFuZCBtb3ZlIHRvIHRoZSBuZXh0IG5vbmRlbGV0ZWQgbWVzc2FnZQogICAgICjigJhy bWFpbC1kZWxldGUtZm9yd2FyZOKAmSkuCuKAmEMtZOKAmQogICAgIERlbGV0ZSB0aGUgY3VycmVu dCBtZXNzYWdlLCBhbmQgbW92ZSB0byB0aGUgcHJldmlvdXMgbm9uZGVsZXRlZAogICAgIG1lc3Nh Z2UgKOKAmHJtYWlsLWRlbGV0ZS1iYWNrd2FyZOKAmSkuCuKAmHXigJkKICAgICBVbmRlbGV0ZSB0 aGUgY3VycmVudCBtZXNzYWdlLCBvciBtb3ZlIGJhY2sgdG8gdGhlIHByZXZpb3VzIGRlbGV0ZWQK ICAgICBtZXNzYWdlIGFuZCB1bmRlbGV0ZSBpdCAo4oCYcm1haWwtdW5kZWxldGUtcHJldmlvdXMt bWVzc2FnZeKAmSkuCuKAmHjigJkKICAgICBFeHB1bmdlIHRoZSBSbWFpbCBmaWxlICjigJhybWFp bC1leHB1bmdl4oCZKS4KCiAgIFRoZXJlIGFyZSB0d28gUm1haWwgY29tbWFuZHMgZm9yIGRlbGV0 aW5nIG1lc3NhZ2VzLiAgQm90aCBkZWxldGUgdGhlCmN1cnJlbnQgbWVzc2FnZSBhbmQgc2VsZWN0 IGFub3RoZXIuICDigJhk4oCZICjigJhybWFpbC1kZWxldGUtZm9yd2FyZOKAmSkgbW92ZXMKdG8g dGhlIGZvbGxvd2luZyBtZXNzYWdlLCBza2lwcGluZyBtZXNzYWdlcyBhbHJlYWR5IGRlbGV0ZWQs IHdoaWxlIOKAmEMtZOKAmQoo4oCYcm1haWwtZGVsZXRlLWJhY2t3YXJk4oCZKSBtb3ZlcyB0byB0 aGUgcHJldmlvdXMgbm9uZGVsZXRlZCBtZXNzYWdlLiAgSWYKdGhlcmUgaXMgbm8gbm9uZGVsZXRl ZCBtZXNzYWdlIHRvIG1vdmUgdG8gaW4gdGhlIHNwZWNpZmllZCBkaXJlY3Rpb24sCnRoZSBtZXNz YWdlIHRoYXQgd2FzIGp1c3QgZGVsZXRlZCByZW1haW5zIGN1cnJlbnQuICBBIG51bWVyaWMgcHJl Zml4CmFyZ3VtZW50IHNlcnZlcyBhcyBhIHJlcGVhdCBjb3VudCwgdG8gYWxsb3cgZGVsZXRpb24g b2Ygc2V2ZXJhbCBtZXNzYWdlcwppbiBhIHNpbmdsZSBjb21tYW5kLiAgQSBuZWdhdGl2ZSBhcmd1 bWVudCByZXZlcnNlcyB0aGUgbWVhbmluZyBvZiDigJhk4oCZCmFuZCDigJhDLWTigJkuCgogICBX aGVuZXZlciBSbWFpbCBkZWxldGVzIGEgbWVzc2FnZSwgaXQgcnVucyB0aGUgaG9vawrigJhybWFp bC1kZWxldGUtbWVzc2FnZS1ob29r4oCZLiAgV2hlbiB0aGUgaG9vayBmdW5jdGlvbnMgYXJlIGlu dm9rZWQsIHRoZQptZXNzYWdlIGhhcyBiZWVuIG1hcmtlZCBkZWxldGVkLCBidXQgaXQgaXMgc3Rp bGwgdGhlIGN1cnJlbnQgbWVzc2FnZSBpbgp0aGUgUm1haWwgYnVmZmVyLgoKICAgVG8gbWFrZSBh bGwgdGhlIGRlbGV0ZWQgbWVzc2FnZXMgZmluYWxseSB2YW5pc2ggZnJvbSB0aGUgUm1haWwgZmls ZSwKdHlwZSDigJh44oCZICjigJhybWFpbC1leHB1bmdl4oCZKS4gIFVudGlsIHlvdSBkbyB0aGlz LCB5b3UgY2FuIHN0aWxsICJ1bmRlbGV0ZSIKdGhlIGRlbGV0ZWQgbWVzc2FnZXMuICBUaGUgdW5k ZWxldGlvbiBjb21tYW5kLCDigJh14oCZCijigJhybWFpbC11bmRlbGV0ZS1wcmV2aW91cy1tZXNz YWdl4oCZKSwgaXMgZGVzaWduZWQgdG8gY2FuY2VsIHRoZSBlZmZlY3Qgb2YKYSDigJhk4oCZIGNv bW1hbmQgaW4gbW9zdCBjYXNlcy4gIEl0IHVuZGVsZXRlcyB0aGUgY3VycmVudCBtZXNzYWdlIGlm IHRoZQpjdXJyZW50IG1lc3NhZ2UgaXMgZGVsZXRlZC4gIE90aGVyd2lzZSBpdCBtb3ZlcyBiYWNr d2FyZCB0byBwcmV2aW91cwptZXNzYWdlcyB1bnRpbCBhIGRlbGV0ZWQgbWVzc2FnZSBpcyBmb3Vu ZCwgYW5kIHVuZGVsZXRlcyB0aGF0IG1lc3NhZ2UuCkEgbnVtZXJpYyBwcmVmaXggYXJndW1lbnQg c2VydmVzIGFzIGEgcmVwZWF0IGNvdW50LCB0byBhbGxvdyBkZWxldGlvbiBvZgpzZXZlcmFsIG1l c3NhZ2VzIGluIGEgc2luZ2xlIGNvbW1hbmQuCgogICBZb3UgY2FuIHVzdWFsbHkgdW5kbyBhIOKA mGTigJkgd2l0aCBhIOKAmHXigJkgYmVjYXVzZSB0aGUg4oCYdeKAmSBtb3ZlcyBiYWNrIHRvCmFu ZCB1bmRlbGV0ZXMgdGhlIG1lc3NhZ2UgdGhhdCB0aGUg4oCYZOKAmSBkZWxldGVkLiAgQnV0IHRo aXMgZG9lcyBub3Qgd29yawp3aGVuIHRoZSDigJhk4oCZIHNraXBzIGEgZmV3IGFscmVhZHktZGVs ZXRlZCBtZXNzYWdlcyB0aGF0IGZvbGxvdyB0aGUKbWVzc2FnZSBiZWluZyBkZWxldGVkOyB0aGVu IHRoZSDigJh14oCZIGNvbW1hbmQgdW5kZWxldGVzIHRoZSBsYXN0IG9mIHRoZQptZXNzYWdlcyB0 aGF0IHdlcmUgc2tpcHBlZC4gIFRoZXJlIGlzIG5vIGNsZWFuIHdheSB0byBhdm9pZCB0aGlzCnBy b2JsZW0uICBIb3dldmVyLCBieSByZXBlYXRpbmcgdGhlIOKAmHXigJkgY29tbWFuZCwgeW91IGNh biBldmVudHVhbGx5IGdldApiYWNrIHRvIHRoZSBtZXNzYWdlIHRoYXQgeW91IGludGVuZCB0byB1 bmRlbGV0ZS4gIFlvdSBjYW4gYWxzbyBzZWxlY3QgYQpwYXJ0aWN1bGFyIGRlbGV0ZWQgbWVzc2Fn ZSB3aXRoIHRoZSDigJhNLXDigJkgY29tbWFuZCwgdGhlbiB0eXBlIOKAmHXigJkgdG8KdW5kZWxl dGUgaXQuCgogICBBIGRlbGV0ZWQgbWVzc2FnZSBoYXMgdGhlIOKAmGRlbGV0ZWTigJkgYXR0cmli dXRlLCBhbmQgYXMgYSByZXN1bHQK4oCYZGVsZXRlZOKAmSBhcHBlYXJzIGluIHRoZSBtb2RlIGxp bmUgd2hlbiB0aGUgY3VycmVudCBtZXNzYWdlIGlzIGRlbGV0ZWQuCkluIGZhY3QsIGRlbGV0aW5n IG9yIHVuZGVsZXRpbmcgYSBtZXNzYWdlIGlzIG5vdGhpbmcgbW9yZSB0aGFuIGFkZGluZyBvcgpy ZW1vdmluZyB0aGlzIGF0dHJpYnV0ZS4gICpOb3RlIFJtYWlsIEF0dHJpYnV0ZXM6Oi4KCgoqKiAz My41IFJtYWlsIEZpbGVzIGFuZCBJbmJveGVzCgpXaGVuIHlvdSByZWNlaXZlIG1haWwgbG9jYWxs eSwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gcGxhY2VzIGluY29taW5nIG1haWwKZm9yIHlvdSBpbiBh IGZpbGUgdGhhdCB3ZSBjYWxsIHlvdXIgImluYm94Ii4gIFdoZW4geW91IHN0YXJ0IHVwIFJtYWls LAppdCBydW5zIGEgQyBwcm9ncmFtIGNhbGxlZCDigJhtb3ZlbWFpbOKAmSB0byBjb3B5IHRoZSBu ZXcgbWVzc2FnZXMgZnJvbSB5b3VyCmluYm94IGludG8geW91ciBwcmltYXJ5IFJtYWlsIGZpbGUs IHdoaWNoIGFsc28gY29udGFpbnMgb3RoZXIgbWVzc2FnZXMKc2F2ZWQgZnJvbSBwcmV2aW91cyBS bWFpbCBzZXNzaW9ucy4gIEl0IGlzIGluIHRoaXMgZmlsZSB0aGF0IHlvdQphY3R1YWxseSByZWFk IHRoZSBtYWlsIHdpdGggUm1haWwuICBUaGlzIG9wZXJhdGlvbiBpcyBjYWxsZWQgImdldHRpbmcK bmV3IG1haWwiLiAgWW91IGNhbiBnZXQgbmV3IG1haWwgYXQgYW55IHRpbWUgaW4gUm1haWwgYnkg dHlwaW5nIOKAmGfigJkuCgogICBUaGUgdmFyaWFibGUg4oCYcm1haWwtcHJpbWFyeS1pbmJveC1s aXN04oCZIGNvbnRhaW5zIGEgbGlzdCBvZiB0aGUgZmlsZXMKdGhhdCBhcmUgaW5ib3hlcyBmb3Ig eW91ciBwcmltYXJ5IFJtYWlsIGZpbGUuICBJZiB5b3UgZG9u4oCZdCBzZXQgdGhpcwp2YXJpYWJs ZSBleHBsaWNpdGx5LCBSbWFpbCB1c2VzIHRoZSDigJhNQUlM4oCZIGVudmlyb25tZW50IHZhcmlh YmxlLCBvciwgYXMKYSBsYXN0IHJlc29ydCwgYSBkZWZhdWx0IGluYm94IGJhc2VkIG9uIOKAmHJt YWlsLXNwb29sLWRpcmVjdG9yeeKAmS4gIFRoZQpkZWZhdWx0IGluYm94IGZpbGUgZGVwZW5kcyBv biB5b3VyIG9wZXJhdGluZyBzeXN0ZW07IG9mdGVuIGl0IGlzCuKAmC92YXIvbWFpbC9VU0VSTkFN ReKAmSwg4oCYL3Zhci9zcG9vbC9tYWlsL1VTRVJOQU1F4oCZLCBvcgrigJgvdXNyL3Nwb29sL21h aWwvVVNFUk5BTUXigJkuCgogICBZb3UgY2FuIHNwZWNpZnkgdGhlIGluYm94IGZpbGUocykgZm9y IGFueSBSbWFpbCBmaWxlIGZvciB0aGUgY3VycmVudApzZXNzaW9uIHdpdGggdGhlIGNvbW1hbmQg 4oCYc2V0LXJtYWlsLWluYm94LWxpc3TigJk7IHNlZSAqbm90ZSBSbWFpbApGaWxlczo6LgoKICAg VGhlcmUgYXJlIHR3byByZWFzb25zIGZvciBoYXZpbmcgc2VwYXJhdGUgUm1haWwgZmlsZXMgYW5k IGluYm94ZXMuCgogIDEuIFRoZSBpbmJveCBmaWxlIGZvcm1hdCB2YXJpZXMgYmV0d2VlbiBvcGVy YXRpbmcgc3lzdGVtcyBhbmQKICAgICBhY2NvcmRpbmcgdG8gdGhlIG90aGVyIG1haWwgc29mdHdh cmUgaW4gdXNlLiAgT25seSBvbmUgcGFydCBvZgogICAgIFJtYWlsIG5lZWRzIHRvIGtub3cgYWJv dXQgdGhlIGFsdGVybmF0aXZlcywgYW5kIGl0IG5lZWQgb25seQogICAgIHVuZGVyc3RhbmQgaG93 IHRvIGNvbnZlcnQgYWxsIG9mIHRoZW0gdG8gUm1haWzigJlzIG93biBmb3JtYXQuCgogIDIuIEl0 IGlzIHZlcnkgY3VtYmVyc29tZSB0byBhY2Nlc3MgYW4gaW5ib3ggZmlsZSB3aXRob3V0IGRhbmdl ciBvZgogICAgIGxvc2luZyBtYWlsLCBiZWNhdXNlIGl0IGlzIG5lY2Vzc2FyeSB0byBpbnRlcmxv Y2sgd2l0aCBtYWlsCiAgICAgZGVsaXZlcnkuICBNb3Jlb3ZlciwgZGlmZmVyZW50IG9wZXJhdGlu ZyBzeXN0ZW1zIHVzZSBkaWZmZXJlbnQKICAgICBpbnRlcmxvY2tpbmcgdGVjaG5pcXVlcy4gIFRo ZSBzdHJhdGVneSBvZiBtb3ZpbmcgbWFpbCBvdXQgb2YgdGhlCiAgICAgaW5ib3ggb25jZSBhbmQg Zm9yIGFsbCBpbnRvIGEgc2VwYXJhdGUgUm1haWwgZmlsZSBhdm9pZHMgdGhlIG5lZWQKICAgICBm b3IgaW50ZXJsb2NraW5nIGluIGFsbCB0aGUgcmVzdCBvZiBSbWFpbCwgc2luY2Ugb25seSBSbWFp bAogICAgIG9wZXJhdGVzIG9uIHRoZSBSbWFpbCBmaWxlLgoKICAgUm1haWwgdXNlcyB0aGUgc3Rh bmRhcmQg4oCYbWJveOKAmSBmb3JtYXQsIGludHJvZHVjZWQgYnkgVW5peCBhbmQgR05VCnN5c3Rl bXMgZm9yIGluYm94IGZpbGVzLCBhcyBpdHMgaW50ZXJuYWwgZm9ybWF0IG9mIFJtYWlsIGZpbGVz LiAgKEluCmZhY3QsIHRoZXJlIGFyZSBhIGZldyBzbGlnaHRseSBkaWZmZXJlbnQgbWJveCBmb3Jt YXRzLiAgVGhlIGRpZmZlcmVuY2VzCmFyZSBub3QgdmVyeSBpbXBvcnRhbnQsIGJ1dCB5b3UgY2Fu IHNldCB0aGUgdmFyaWFibGUg4oCYcm1haWwtbWJveC1mb3JtYXTigJkKdG8gdGVsbCBSbWFpbCB3 aGljaCBmb3JtIHlvdXIgc3lzdGVtIHVzZXMuICBTZWUgdGhhdCB2YXJpYWJsZeKAmXMKZG9jdW1l bnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLikKCiAgIFdoZW4gZ2V0dGluZyBuZXcgbWFpbCwgUm1h aWwgZmlyc3QgY29waWVzIHRoZSBuZXcgbWFpbCBmcm9tIHRoZSBpbmJveApmaWxlIHRvIHRoZSBS bWFpbCBmaWxlOyB0aGVuIGl0IHNhdmVzIHRoZSBSbWFpbCBmaWxlOyB0aGVuIGl0IGNsZWFycyBv dXQKdGhlIGluYm94IGZpbGUuICBUaGlzIHdheSwgYSBzeXN0ZW0gY3Jhc2ggbWF5IGNhdXNlIGR1 cGxpY2F0aW9uIG9mIG1haWwKYmV0d2VlbiB0aGUgaW5ib3ggYW5kIHRoZSBSbWFpbCBmaWxlLCBi dXQgY2Fubm90IGxvc2UgbWFpbC4gIElmCuKAmHJtYWlsLXByZXNlcnZlLWluYm944oCZIGlzIG5v bi3igJhuaWzigJksIHRoZW4gUm1haWwgZG9lcyBub3QgY2xlYXIgb3V0IHRoZQppbmJveCBmaWxl IHdoZW4gaXQgZ2V0cyBuZXcgbWFpbC4gIFlvdSBtYXkgd2lzaCB0byBzZXQgdGhpcywgZm9yCmV4 YW1wbGUsIG9uIGEgcG9ydGFibGUgY29tcHV0ZXIgeW91IHVzZSB0byBjaGVjayB5b3VyIG1haWwg dmlhIFBPUCB3aGlsZQp0cmF2ZWxpbmcsIHNvIHRoYXQgeW91ciBtYWlsIHdpbGwgcmVtYWluIG9u IHRoZSBzZXJ2ZXIgYW5kIHlvdSBjYW4gc2F2ZQppdCBsYXRlciBvbiB5b3VyIG1haW4gZGVza3Rv cCB3b3Jrc3RhdGlvbi4KCiAgIEluIHNvbWUgY2FzZXMsIFJtYWlsIGNvcGllcyB0aGUgbmV3IG1h aWwgZnJvbSB0aGUgaW5ib3ggZmlsZQppbmRpcmVjdGx5LiAgRmlyc3QgaXQgcnVucyB0aGUg4oCY bW92ZW1haWzigJkgcHJvZ3JhbSB0byBtb3ZlIHRoZSBtYWlsIGZyb20KdGhlIGluYm94IHRvIGFu IGludGVybWVkaWF0ZSBmaWxlIGNhbGxlZCDigJgubmV3bWFpbC1JTkJPWE5BTUXigJksIGluIHRo ZQpzYW1lIGRpcmVjdG9yeSBhcyB0aGUgUm1haWwgZmlsZS4gIFRoZW4gUm1haWwgbWVyZ2VzIHRo ZSBuZXcgbWFpbCBmcm9tCnRoYXQgZmlsZSwgc2F2ZXMgdGhlIFJtYWlsIGZpbGUsIGFuZCBvbmx5 IHRoZW4gZGVsZXRlcyB0aGUgaW50ZXJtZWRpYXRlCmZpbGUuICBJZiB0aGVyZSBpcyBhIGNyYXNo IGF0IHRoZSB3cm9uZyB0aW1lLCB0aGlzIGZpbGUgY29udGludWVzIHRvCmV4aXN0LCBhbmQgUm1h aWwgd2lsbCB1c2UgaXQgYWdhaW4gdGhlIG5leHQgdGltZSBpdCBnZXRzIG5ldyBtYWlsIGZyb20K dGhhdCBpbmJveC4KCiAgIElmIFJtYWlsIGlzIHVuYWJsZSB0byBjb252ZXJ0IHRoZSBkYXRhIGlu IOKAmC5uZXdtYWlsLUlOQk9YTkFNReKAmSBpbnRvCm1ib3ggZm9ybWF0LCBpdCByZW5hbWVzIHRo ZSBmaWxlIHRvIOKAmFJNQUlMT1NFLk7igJkgKE4gaXMgYW4gaW50ZWdlciBjaG9zZW4KdG8gbWFr ZSB0aGUgbmFtZSB1bmlxdWUpIHNvIHRoYXQgUm1haWwgd2lsbCBub3QgaGF2ZSB0cm91YmxlIHdp dGggdGhlCmRhdGEgYWdhaW4uICBZb3Ugc2hvdWxkIGxvb2sgYXQgdGhlIGZpbGUsIGZpbmQgd2hh dGV2ZXIgbWVzc2FnZSBjb25mdXNlcwpSbWFpbCAocHJvYmFibHkgb25lIHRoYXQgaW5jbHVkZXMg dGhlIGNvbnRyb2wtdW5kZXJzY29yZSBjaGFyYWN0ZXIsCm9jdGFsIGNvZGUgMDM3KSwgYW5kIGRl bGV0ZSBpdC4gIFRoZW4geW91IGNhbiB1c2Ug4oCYMSBn4oCZIHRvIGdldCBuZXcgbWFpbApmcm9t IHRoZSBjb3JyZWN0ZWQgZmlsZS4KCgoqKiAzMy42IE11bHRpcGxlIFJtYWlsIEZpbGVzCgpSbWFp bCBvcGVyYXRlcyBieSBkZWZhdWx0IG9uIHlvdXIgInByaW1hcnkgUm1haWwgZmlsZSIsIHdoaWNo IGlzIG5hbWVkCuKAmH4vUk1BSUzigJkgYW5kIHJlY2VpdmVzIHlvdXIgaW5jb21pbmcgbWFpbCBm cm9tIHlvdXIgc3lzdGVtIGluYm94IGZpbGUuCkJ1dCB5b3UgY2FuIGFsc28gaGF2ZSBvdGhlciBS bWFpbCBmaWxlcyBhbmQgZWRpdCB0aGVtIHdpdGggUm1haWwuICBUaGVzZQpmaWxlcyBjYW4gcmVj ZWl2ZSBtYWlsIHRocm91Z2ggdGhlaXIgb3duIGluYm94ZXMsIG9yIHlvdSBjYW4gbW92ZQptZXNz YWdlcyBpbnRvIHRoZW0gd2l0aCBleHBsaWNpdCBSbWFpbCBjb21tYW5kcyAoKm5vdGUgUm1haWwg T3V0cHV0OjopLgoK4oCYaSBGSUxFIDxSRVQ+4oCZCiAgICAgUmVhZCBGSUxFIGludG8gRW1hY3Mg YW5kIHJ1biBSbWFpbCBvbiBpdCAo4oCYcm1haWwtaW5wdXTigJkpLgrigJhn4oCZCiAgICAgTWVy Z2UgbmV3IG1haWwgZnJvbSBjdXJyZW50IFJtYWlsIGZpbGXigJlzIGluYm94ZXMKICAgICAo4oCY cm1haWwtZ2V0LW5ldy1tYWls4oCZKS4K4oCYQy11IGcgRklMRSA8UkVUPuKAmQogICAgIE1lcmdl IG5ldyBtYWlsIGZyb20gaW5ib3ggZmlsZSBGSUxFLgoKICAgVG8gcnVuIFJtYWlsIG9uIGEgZmls ZSBvdGhlciB0aGFuIHlvdXIgcHJpbWFyeSBSbWFpbCBmaWxlLCB5b3UgY2FuCnVzZSB0aGUg4oCY aeKAmSAo4oCYcm1haWwtaW5wdXTigJkpIGNvbW1hbmQgaW4gUm1haWwuICBUaGlzIHZpc2l0cyB0 aGUgZmlsZSBpbgpSbWFpbCBtb2RlLiAgWW91IGNhbiB1c2Ug4oCYTS14IHJtYWlsLWlucHV04oCZ IGV2ZW4gd2hlbiBub3QgaW4gUm1haWwsIGJ1dAppdCBpcyBlYXNpZXIgdG8gdHlwZSDigJhDLXUg TS14IHJtYWls4oCZLCB3aGljaCBkb2VzIHRoZSBzYW1lIHRoaW5nLgoKICAgVGhlIGZpbGUgeW91 IHJlYWQgd2l0aCDigJhp4oCZIHNob3VsZCBub3JtYWxseSBiZSBhIHZhbGlkIG1ib3ggZmlsZS4g IElmCml0IGlzIG5vdCwgUm1haWwgdHJpZXMgdG8gY29udmVydCBpdHMgdGV4dCB0byBtYm94IGZv cm1hdCwgYW5kIHZpc2l0cwp0aGUgY29udmVydGVkIHRleHQgaW4gdGhlIGJ1ZmZlci4gIElmIHlv dSBzYXZlIHRoZSBidWZmZXIsIHRoYXQgY29udmVydHMKdGhlIGZpbGUuCgogICBJZiB5b3Ugc3Bl Y2lmeSBhIGZpbGUgbmFtZSB0aGF0IGRvZXNu4oCZdCBleGlzdCwg4oCYaeKAmSBpbml0aWFsaXpl cyBhIG5ldwpidWZmZXIgZm9yIGNyZWF0aW5nIGEgbmV3IFJtYWlsIGZpbGUuCgogICBZb3UgY2Fu IGFsc28gc2VsZWN0IGFuIFJtYWlsIGZpbGUgZnJvbSBhIG1lbnUuICBJbiB0aGUgQ2xhc3NpZnkg bWVudSwKY2hvb3NlIHRoZSBJbnB1dCBSbWFpbCBGaWxlIGl0ZW07IHRoZW4gY2hvb3NlIHRoZSBS bWFpbCBmaWxlIHlvdSB3YW50LgpUaGUgdmFyaWFibGVzIOKAmHJtYWlsLXNlY29uZGFyeS1maWxl LWRpcmVjdG9yeeKAmSBhbmQK4oCYcm1haWwtc2Vjb25kYXJ5LWZpbGUtcmVnZXhw4oCZIHNwZWNp Znkgd2hpY2ggZmlsZXMgdG8gb2ZmZXIgaW4gdGhlIG1lbnU6CnRoZSBmaXJzdCB2YXJpYWJsZSBz YXlzIHdoaWNoIGRpcmVjdG9yeSB0byBmaW5kIHRoZW0gaW47IHRoZSBzZWNvbmQgc2F5cwp3aGlj aCBmaWxlcyBpbiB0aGF0IGRpcmVjdG9yeSB0byBvZmZlciAoYWxsIHRob3NlIHRoYXQgbWF0Y2gg dGhlIHJlZ3VsYXIKZXhwcmVzc2lvbikuICBJZiBubyBmaWxlcyBtYXRjaCwgeW91IGNhbm5vdCBz ZWxlY3QgdGhpcyBtZW51IGl0ZW0uClRoZXNlIHZhcmlhYmxlcyBhbHNvIGFwcGx5IHRvIGNob29z aW5nIGEgZmlsZSBmb3Igb3V0cHV0ICgqbm90ZSBSbWFpbApPdXRwdXQ6OikuCgogICBUaGUgaW5i b3ggZmlsZXMgdG8gdXNlIGFyZSBzcGVjaWZpZWQgYnkgdGhlIHZhcmlhYmxlCuKAmHJtYWlsLWlu Ym94LWxpc3TigJksIHdoaWNoIGlzIGJ1ZmZlci1sb2NhbCBpbiBSbWFpbCBtb2RlLiAgQXMgYSBz cGVjaWFsCmV4Y2VwdGlvbiwgaWYgeW91IGhhdmUgc3BlY2lmaWVkIG5vIGluYm94IGZpbGVzIGZv ciB5b3VyIHByaW1hcnkgUm1haWwKZmlsZSwgaXQgdXNlcyB0aGUg4oCYTUFJTOKAmSBlbnZpcm9u bWVudCB2YXJpYWJsZSwgb3IgeW91ciBzdGFuZGFyZCBzeXN0ZW0KaW5ib3guCgogICBUaGUg4oCY Z+KAmSBjb21tYW5kICjigJhybWFpbC1nZXQtbmV3LW1haWzigJkpIG1lcmdlcyBtYWlsIGludG8g dGhlIGN1cnJlbnQKUm1haWwgZmlsZSBmcm9tIGl0cyBpbmJveGVzLiAgSWYgdGhlIFJtYWlsIGZp bGUgaGFzIG5vIGluYm94ZXMsIOKAmGfigJkgZG9lcwpub3RoaW5nLiAgVGhlIGNvbW1hbmQg4oCY TS14IHJtYWls4oCZIGFsc28gbWVyZ2VzIG5ldyBtYWlsIGludG8geW91ciBwcmltYXJ5ClJtYWls IGZpbGUuCgogICBUbyBtZXJnZSBtYWlsIGZyb20gYSBmaWxlIHRoYXQgaXMgbm90IHRoZSB1c3Vh bCBpbmJveCwgZ2l2ZSB0aGUg4oCYZ+KAmQprZXkgYSBudW1lcmljIGFyZ3VtZW50LCBhcyBpbiDi gJhDLXUgZ+KAmS4gIFRoZW4gaXQgcmVhZHMgYSBmaWxlIG5hbWUgYW5kCm1lcmdlcyBtYWlsIGZy b20gdGhhdCBmaWxlLiAgVGhlIGluYm94IGZpbGUgaXMgbm90IGRlbGV0ZWQgb3IgY2hhbmdlZCBp bgphbnkgd2F5IHdoZW4g4oCYZ+KAmSB3aXRoIGFuIGFyZ3VtZW50IGlzIHVzZWQuICBUaGlzIGlz LCB0aGVyZWZvcmUsIGEKZ2VuZXJhbCB3YXkgb2YgbWVyZ2luZyBvbmUgZmlsZSBvZiBtZXNzYWdl cyBpbnRvIGFub3RoZXIuCgoKKiogMzMuNyBDb3B5aW5nIE1lc3NhZ2VzIE91dCB0byBGaWxlcwoK VGhlc2UgY29tbWFuZHMgY29weSBtZXNzYWdlcyBmcm9tIGFuIFJtYWlsIGZpbGUgaW50byBhbm90 aGVyIGZpbGUuCgrigJhvIEZJTEUgPFJFVD7igJkKICAgICBBcHBlbmQgYSBmdWxsIGNvcHkgb2Yg dGhlIGN1cnJlbnQgbWVzc2FnZSB0byB0aGUgZmlsZSBGSUxFCiAgICAgKOKAmHJtYWlsLW91dHB1 dOKAmSkuCgrigJhDLW8gRklMRSA8UkVUPuKAmQogICAgIEFwcGVuZCBhIGNvcHkgb2YgdGhlIGN1 cnJlbnQgbWVzc2FnZSwgYXMgZGlzcGxheWVkLCB0byB0aGUgZmlsZQogICAgIEZJTEUgKOKAmHJt YWlsLW91dHB1dC1hcy1zZWVu4oCZKS4KCuKAmHcgRklMRSA8UkVUPuKAmQogICAgIE91dHB1dCBq dXN0IHRoZSBtZXNzYWdlIGJvZHkgdG8gdGhlIGZpbGUgRklMRSwgdGFraW5nIHRoZSBkZWZhdWx0 CiAgICAgZmlsZSBuYW1lIGZyb20gdGhlIG1lc3NhZ2Ug4oCYU3ViamVjdOKAmSBoZWFkZXIuCgog ICBUaGUgY29tbWFuZHMg4oCYb+KAmSBhbmQg4oCYQy1v4oCZIGNvcHkgdGhlIGN1cnJlbnQgbWVz c2FnZSBpbnRvIGEgc3BlY2lmaWVkCmZpbGUsIGFkZGluZyBpdCBhdCB0aGUgZW5kLiAgVGhlIHR3 byBjb21tYW5kcyBkaWZmZXIgbWFpbmx5IGluIGhvdyBtdWNoCnRvIGNvcHk6IOKAmG/igJkgY29w aWVzIHRoZSBmdWxsIG1lc3NhZ2UgaGVhZGVycywgZXZlbiBpZiB0aGV5IGFyZSBub3QgYWxsCnZp c2libGUsIHdoaWxlIOKAmEMtb+KAmSBjb3BpZXMgZXhhY3RseSB0aGUgaGVhZGVycyBjdXJyZW50 bHkgZGlzcGxheWVkIGFuZApubyBtb3JlLiAgKk5vdGUgUm1haWwgRGlzcGxheTo6LiAgSW4gYWRk aXRpb24sIOKAmG/igJkgY29udmVydHMgdGhlIG1lc3NhZ2UKdG8gQmFieWwgZm9ybWF0ICh1c2Vk IGJ5IFJtYWlsIGluIEVtYWNzIHZlcnNpb24gMjIgYW5kIGJlZm9yZSkgaWYgdGhlCmZpbGUgaXMg aW4gQmFieWwgZm9ybWF0OyDigJhDLW/igJkgY2Fubm90IG91dHB1dCB0byBCYWJ5bCBmaWxlcyBh dCBhbGwuCgogICBJZiB0aGUgb3V0cHV0IGZpbGUgaXMgY3VycmVudGx5IHZpc2l0ZWQgaW4gYW4g RW1hY3MgYnVmZmVyLCB0aGUKb3V0cHV0IGNvbW1hbmRzIGFwcGVuZCB0aGUgbWVzc2FnZSB0byB0 aGF0IGJ1ZmZlci4gIEl0IGlzIHVwIHRvIHlvdSB0bwpzYXZlIHRoZSBidWZmZXIgZXZlbnR1YWxs eSBpbiBpdHMgZmlsZS4KCiAgIFNvbWV0aW1lcyB5b3UgbWF5IHJlY2VpdmUgYSBtZXNzYWdlIHdo b3NlIGJvZHkgaG9sZHMgdGhlIGNvbnRlbnRzIG9mCmEgZmlsZS4gIFlvdSBjYW4gc2F2ZSB0aGUg Ym9keSB0byBhIGZpbGUgKGV4Y2x1ZGluZyB0aGUgbWVzc2FnZSBoZWFkZXIpCndpdGggdGhlIOKA mHfigJkgY29tbWFuZCAo4oCYcm1haWwtb3V0cHV0LWJvZHktdG8tZmlsZeKAmSkuICBPZnRlbiB0 aGVzZQptZXNzYWdlcyBjb250YWluIHRoZSBpbnRlbmRlZCBmaWxlIG5hbWUgaW4gdGhlIOKAmFN1 YmplY3TigJkgZmllbGQsIHNvIHRoZQrigJh34oCZIGNvbW1hbmQgdXNlcyB0aGUg4oCYU3ViamVj dOKAmSBmaWVsZCBhcyB0aGUgZGVmYXVsdCBmb3IgdGhlIG91dHB1dCBmaWxlCm5hbWUgKGFmdGVy IHJlcGxhY2luZyBzb21lIGNoYXJhY3RlcnMgdGhhdCBjYW5ub3QgYmUgcG9ydGFibHkgdXNlZCBp bgpmaWxlIG5hbWVzKS4gIEhvd2V2ZXIsIHRoZSBmaWxlIG5hbWUgaXMgcmVhZCB1c2luZyB0aGUg bWluaWJ1ZmZlciwgc28KeW91IGNhbiBzcGVjaWZ5IGEgZGlmZmVyZW50IG5hbWUgaWYgeW91IHdp c2guCgogICBZb3UgY2FuIGFsc28gb3V0cHV0IGEgbWVzc2FnZSB0byBhbiBSbWFpbCBmaWxlIGNo b3NlbiB3aXRoIGEgbWVudS4KSW4gdGhlIENsYXNzaWZ5IG1lbnUsIGNob29zZSB0aGUgT3V0cHV0 IFJtYWlsIEZpbGUgbWVudSBpdGVtOyB0aGVuCmNob29zZSB0aGUgUm1haWwgZmlsZSB5b3Ugd2Fu dC4gIFRoaXMgb3V0cHV0cyB0aGUgY3VycmVudCBtZXNzYWdlIHRvCnRoYXQgZmlsZSwgbGlrZSB0 aGUg4oCYb+KAmSBjb21tYW5kLiAgVGhlIHZhcmlhYmxlcwrigJhybWFpbC1zZWNvbmRhcnktZmls ZS1kaXJlY3RvcnnigJkgYW5kIOKAmHJtYWlsLXNlY29uZGFyeS1maWxlLXJlZ2V4cOKAmQpzcGVj aWZ5IHdoaWNoIGZpbGVzIHRvIG9mZmVyIGluIHRoZSBtZW51OiB0aGUgZmlyc3QgdmFyaWFibGUg c2F5cyB3aGljaApkaXJlY3RvcnkgdG8gZmluZCB0aGVtIGluOyB0aGUgc2Vjb25kIHNheXMgd2hp Y2ggZmlsZXMgaW4gdGhhdCBkaXJlY3RvcnkKdG8gb2ZmZXIgKGFsbCB0aG9zZSB0aGF0IG1hdGNo IHRoZSByZWd1bGFyIGV4cHJlc3Npb24pLiAgSWYgbm8gZmlsZXMKbWF0Y2gsIHlvdSBjYW5ub3Qg c2VsZWN0IHRoaXMgbWVudSBpdGVtLgoKICAgQ29weWluZyBhIG1lc3NhZ2Ugd2l0aCDigJhv4oCZ IG9yIOKAmEMtb+KAmSBnaXZlcyB0aGUgb3JpZ2luYWwgY29weSBvZiB0aGUKbWVzc2FnZSB0aGUg 4oCYZmlsZWTigJkgYXR0cmlidXRlLCBzbyB0aGF0IOKAmGZpbGVk4oCZIGFwcGVhcnMgaW4gdGhl IG1vZGUgbGluZQp3aGVuIHN1Y2ggYSBtZXNzYWdlIGlzIGN1cnJlbnQuCgogICBJZiB5b3UgbGlr ZSB0byBrZWVwIGp1c3QgYSBzaW5nbGUgY29weSBvZiBldmVyeSBtYWlsIG1lc3NhZ2UsIHNldCB0 aGUKdmFyaWFibGUg4oCYcm1haWwtZGVsZXRlLWFmdGVyLW91dHB1dOKAmSB0byDigJh04oCZOyB0 aGVuIHRoZSDigJhv4oCZLCDigJhDLW/igJkgYW5kIOKAmHfigJkKY29tbWFuZHMgZGVsZXRlIHRo ZSBvcmlnaW5hbCBtZXNzYWdlIGFmdGVyIGNvcHlpbmcgaXQuICAoWW91IGNhbgp1bmRlbGV0ZSBp dCBhZnRlcndhcmQgaWYgeW91IHdpc2gsIHNlZSAqbm90ZSBSbWFpbCBEZWxldGlvbjo6LikKCiAg IFRoZSB2YXJpYWJsZSDigJhybWFpbC1vdXRwdXQtZmlsZS1hbGlzdOKAmSBsZXRzIHlvdSBzcGVj aWZ5IGludGVsbGlnZW50CmRlZmF1bHRzIGZvciB0aGUgb3V0cHV0IGZpbGUsIGJhc2VkIG9uIHRo ZSBjb250ZW50cyBvZiB0aGUgY3VycmVudAptZXNzYWdlLiAgVGhlIHZhbHVlIHNob3VsZCBiZSBh IGxpc3Qgd2hvc2UgZWxlbWVudHMgaGF2ZSB0aGlzIGZvcm06CgogICAgIChSRUdFWFAgLiBOQU1F LUVYUCkKCklmIHRoZXJl4oCZcyBhIG1hdGNoIGZvciBSRUdFWFAgaW4gdGhlIGN1cnJlbnQgbWVz c2FnZSwgdGhlbiB0aGUgZGVmYXVsdApmaWxlIG5hbWUgZm9yIG91dHB1dCBpcyBOQU1FLUVYUC4g IElmIG11bHRpcGxlIGVsZW1lbnRzIG1hdGNoIHRoZQptZXNzYWdlLCB0aGUgZmlyc3QgbWF0Y2hp bmcgZWxlbWVudCBkZWNpZGVzIHRoZSBkZWZhdWx0IGZpbGUgbmFtZS4gIFRoZQpzdWJleHByZXNz aW9uIE5BTUUtRVhQIG1heSBiZSBhIHN0cmluZyBjb25zdGFudCBnaXZpbmcgdGhlIGZpbGUgbmFt ZSB0bwp1c2UsIG9yIG1vcmUgZ2VuZXJhbGx5IGl0IG1heSBiZSBhbnkgTGlzcCBleHByZXNzaW9u IHRoYXQgeWllbGRzIGEgZmlsZQpuYW1lIGFzIGEgc3RyaW5nLiAg4oCYcm1haWwtb3V0cHV0LWZp bGUtYWxpc3TigJkgYXBwbGllcyB0byBib3RoIOKAmG/igJkgYW5kCuKAmEMtb+KAmS4KCiAgIFJt YWlsIGNhbiBhdXRvbWF0aWNhbGx5IHNhdmUgbWVzc2FnZXMgZnJvbSB5b3VyIHByaW1hcnkgUm1h aWwgZmlsZQoodGhlIG9uZSB0aGF0IOKAmHJtYWlsLWZpbGUtbmFtZeKAmSBzcGVjaWZpZXMpIHRv IG90aGVyIGZpbGVzLCBiYXNlZCBvbiB0aGUKdmFsdWUgb2YgdGhlIHZhcmlhYmxlIOKAmHJtYWls LWF1dG9tYXRpYy1mb2xkZXItZGlyZWN0aXZlc+KAmS4gIFRoaXMKdmFyaWFibGUgaXMgYSBsaXN0 IG9mIGVsZW1lbnRzICjigJhkaXJlY3RpdmVz4oCZKSB0aGF0IHNheSB3aGljaCBtZXNzYWdlcyB0 bwpzYXZlIHdoZXJlLiAgRWFjaCBkaXJlY3RpdmUgaXMgYSBsaXN0IGNvbnNpc3Rpbmcgb2YgYW4g b3V0cHV0IGZpbGUsCmZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIHBhaXJzIG9mIGEgaGVhZGVyIG5h bWUgYW5kIGEgcmVndWxhciBleHByZXNzaW9uLgpJZiBhIG1lc3NhZ2UgaGFzIGEgaGVhZGVyIG1h dGNoaW5nIHRoZSBzcGVjaWZpZWQgcmVndWxhciBleHByZXNzaW9uLAp0aGF0IG1lc3NhZ2UgaXMg c2F2ZWQgdG8gdGhlIGdpdmVuIGZpbGUuICBJZiB0aGUgZGlyZWN0aXZlIGhhcyBtb3JlIHRoYW4K b25lIGhlYWRlciBlbnRyeSwgYWxsIG11c3QgbWF0Y2guICBSbWFpbCBjaGVja3MgZGlyZWN0aXZl cyB3aGVuIGl0IHNob3dzCmEgbWVzc2FnZSBmcm9tIHRoZSBmaWxlIOKAmHJtYWlsLWZpbGUtbmFt ZeKAmSwgYW5kIGFwcGxpZXMgdGhlIGZpcnN0IHRoYXQKbWF0Y2hlcyAoaWYgYW55KS4gIElmIHRo ZSBvdXRwdXQgZmlsZSBpcyDigJhuaWzigJksIHRoZSBtZXNzYWdlIGlzIGRlbGV0ZWQsCm5vdCBz YXZlZC4gIEZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSB0aGlzIGZlYXR1cmUgdG8gc2F2ZSBtZXNz YWdlcyBmcm9tCmEgcGFydGljdWxhciBhZGRyZXNzLCBvciB3aXRoIGEgcGFydGljdWxhciBzdWJq ZWN0LCB0byBhIGRlZGljYXRlZCBmaWxlLgoKCioqIDMzLjggTGFiZWxzCgpFYWNoIG1lc3NhZ2Ug Y2FuIGhhdmUgdmFyaW91cyAibGFiZWxzIiBhc3NpZ25lZCB0byBpdCBhcyBhIG1lYW5zIG9mCmNs YXNzaWZpY2F0aW9uLiAgRWFjaCBsYWJlbCBoYXMgYSBuYW1lOyBkaWZmZXJlbnQgbmFtZXMgYXJl IGRpZmZlcmVudApsYWJlbHMuICBBbnkgZ2l2ZW4gbGFiZWwgaXMgZWl0aGVyIHByZXNlbnQgb3Ig YWJzZW50IG9uIGEgcGFydGljdWxhcgptZXNzYWdlLiAgQSBmZXcgbGFiZWwgbmFtZXMgaGF2ZSBz dGFuZGFyZCBtZWFuaW5ncyBhbmQgYXJlIGdpdmVuIHRvCm1lc3NhZ2VzIGF1dG9tYXRpY2FsbHkg YnkgUm1haWwgd2hlbiBhcHByb3ByaWF0ZTsgdGhlc2Ugc3BlY2lhbCBsYWJlbHMKYXJlIGNhbGxl ZCAiYXR0cmlidXRlcyIuICAoKk5vdGUgUm1haWwgQXR0cmlidXRlczo6LikgIEFsbCBvdGhlciBs YWJlbHMKYXJlIGFzc2lnbmVkIG9ubHkgYnkgdXNlcnMuCgrigJhhIExBQkVMIDxSRVQ+4oCZCiAg ICAgQXNzaWduIHRoZSBsYWJlbCBMQUJFTCB0byB0aGUgY3VycmVudCBtZXNzYWdlICjigJhybWFp bC1hZGQtbGFiZWzigJkpLgrigJhrIExBQkVMIDxSRVQ+4oCZCiAgICAgUmVtb3ZlIHRoZSBsYWJl bCBMQUJFTCBmcm9tIHRoZSBjdXJyZW50IG1lc3NhZ2UKICAgICAo4oCYcm1haWwta2lsbC1sYWJl bOKAmSkuCuKAmEMtTS1uIExBQkVMUyA8UkVUPuKAmQogICAgIE1vdmUgdG8gdGhlIG5leHQgbWVz c2FnZSB0aGF0IGhhcyBvbmUgb2YgdGhlIGxhYmVscyBMQUJFTFMKICAgICAo4oCYcm1haWwtbmV4 dC1sYWJlbGVkLW1lc3NhZ2XigJkpLgrigJhDLU0tcCBMQUJFTFMgPFJFVD7igJkKICAgICBNb3Zl IHRvIHRoZSBwcmV2aW91cyBtZXNzYWdlIHRoYXQgaGFzIG9uZSBvZiB0aGUgbGFiZWxzIExBQkVM UwogICAgICjigJhybWFpbC1wcmV2aW91cy1sYWJlbGVkLW1lc3NhZ2XigJkpLgrigJhsIExBQkVM UyA8UkVUPuKAmQrigJhDLU0tbCBMQUJFTFMgPFJFVD7igJkKICAgICBNYWtlIGEgc3VtbWFyeSBv ZiBhbGwgbWVzc2FnZXMgY29udGFpbmluZyBhbnkgb2YgdGhlIGxhYmVscyBMQUJFTFMKICAgICAo 4oCYcm1haWwtc3VtbWFyeS1ieS1sYWJlbHPigJkpLgoKICAgVGhlIOKAmGHigJkgKOKAmHJtYWls LWFkZC1sYWJlbOKAmSkgYW5kIOKAmGvigJkgKOKAmHJtYWlsLWtpbGwtbGFiZWzigJkpIGNvbW1h bmRzCmFsbG93IHlvdSB0byBhc3NpZ24gb3IgcmVtb3ZlIGFueSBsYWJlbCBvbiB0aGUgY3VycmVu dCBtZXNzYWdlLiAgSWYgdGhlCkxBQkVMIGFyZ3VtZW50IGlzIGVtcHR5LCBpdCBtZWFucyB0byBh c3NpZ24gb3IgcmVtb3ZlIHRoZSBsYWJlbCBtb3N0CnJlY2VudGx5IGFzc2lnbmVkIG9yIHJlbW92 ZWQuCgogICBPbmNlIHlvdSBoYXZlIGdpdmVuIG1lc3NhZ2VzIGxhYmVscyB0byBjbGFzc2lmeSB0 aGVtIGFzIHlvdSB3aXNoLAp0aGVyZSBhcmUgdGhyZWUgd2F5cyB0byB1c2UgdGhlIGxhYmVsczog aW4gbW92aW5nLCBpbiBzdW1tYXJpZXMsIGFuZCBpbgpzb3J0aW5nLgoKICAg4oCYQy1NLW4gTEFC RUxTIDxSRVQ+4oCZICjigJhybWFpbC1uZXh0LWxhYmVsZWQtbWVzc2FnZeKAmSkgbW92ZXMgdG8g dGhlIG5leHQKbWVzc2FnZSB0aGF0IGhhcyBvbmUgb2YgdGhlIGxhYmVscyBMQUJFTFMuICBUaGUg YXJndW1lbnQgTEFCRUxTCnNwZWNpZmllcyBvbmUgb3IgbW9yZSBsYWJlbCBuYW1lcywgc2VwYXJh dGVkIGJ5IGNvbW1hcy4gIOKAmEMtTS1w4oCZCijigJhybWFpbC1wcmV2aW91cy1sYWJlbGVkLW1l c3NhZ2XigJkpIGlzIHNpbWlsYXIsIGJ1dCBtb3ZlcyBiYWNrd2FyZHMgdG8KcHJldmlvdXMgbWVz c2FnZXMuICBBIG51bWVyaWMgYXJndW1lbnQgdG8gZWl0aGVyIGNvbW1hbmQgc2VydmVzIGFzIGEK cmVwZWF0IGNvdW50LgoKICAgVGhlIGNvbW1hbmQg4oCYQy1NLWwgTEFCRUxTIDxSRVQ+4oCZICji gJhybWFpbC1zdW1tYXJ5LWJ5LWxhYmVsc+KAmSkgZGlzcGxheXMKYSBzdW1tYXJ5IGNvbnRhaW5p bmcgb25seSB0aGUgbWVzc2FnZXMgdGhhdCBoYXZlIGF0IGxlYXN0IG9uZSBvZiBhCnNwZWNpZmll ZCBzZXQgb2YgbGFiZWxzLiAgVGhlIGFyZ3VtZW50IExBQkVMUyBpcyBvbmUgb3IgbW9yZSBsYWJl bApuYW1lcywgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gICpOb3RlIFJtYWlsIFN1bW1hcnk6OiwgZm9y IGluZm9ybWF0aW9uIG9uCnN1bW1hcmllcy4KCiAgIElmIHRoZSBMQUJFTFMgYXJndW1lbnQgdG8g 4oCYQy1NLW7igJksIOKAmEMtTS1w4oCZIG9yIOKAmEMtTS1s4oCZIGlzIGVtcHR5LCBpdAptZWFu cyB0byB1c2UgdGhlIGxhc3Qgc2V0IG9mIGxhYmVscyBzcGVjaWZpZWQgZm9yIGFueSBvZiB0aGVz ZSBjb21tYW5kcy4KCiAgICpOb3RlIFJtYWlsIFNvcnRpbmc6OiwgZm9yIGluZm9ybWF0aW9uIG9u IHNvcnRpbmcgbWVzc2FnZXMgd2l0aApsYWJlbHMuCgoKKiogMzMuOSBSbWFpbCBBdHRyaWJ1dGVz CgpTb21lIGxhYmVscyBzdWNoIGFzIOKAmGRlbGV0ZWTigJkgYW5kIOKAmGZpbGVk4oCZIGhhdmUg YnVpbHQtaW4gbWVhbmluZ3MsIGFuZApSbWFpbCBhc3NpZ25zIHRoZW0gdG8gbWVzc2FnZXMgYXV0 b21hdGljYWxseSBhdCBhcHByb3ByaWF0ZSB0aW1lczsgdGhlc2UKbGFiZWxzIGFyZSBjYWxsZWQg ImF0dHJpYnV0ZXMiLiAgSGVyZSBpcyBhIGxpc3Qgb2YgUm1haWwgYXR0cmlidXRlczoKCuKAmHVu c2VlbuKAmQogICAgIE1lYW5zIHRoZSBtZXNzYWdlIGhhcyBuZXZlciBiZWVuIGN1cnJlbnQuICBB c3NpZ25lZCB0byBtZXNzYWdlcwogICAgIHdoZW4gdGhleSBjb21lIGZyb20gYW4gaW5ib3ggZmls ZSwgYW5kIHJlbW92ZWQgd2hlbiBhIG1lc3NhZ2UgaXMKICAgICBtYWRlIGN1cnJlbnQuICBXaGVu IHlvdSBzdGFydCBSbWFpbCwgaXQgaW5pdGlhbGx5IHNob3dzIHRoZSBmaXJzdAogICAgIG1lc3Nh Z2UgdGhhdCBoYXMgdGhpcyBhdHRyaWJ1dGUuCuKAmGRlbGV0ZWTigJkKICAgICBNZWFucyB0aGUg bWVzc2FnZSBpcyBkZWxldGVkLiAgQXNzaWduZWQgYnkgZGVsZXRpb24gY29tbWFuZHMgYW5kCiAg ICAgcmVtb3ZlZCBieSB1bmRlbGV0aW9uIGNvbW1hbmRzICgqbm90ZSBSbWFpbCBEZWxldGlvbjo6 KS4K4oCYZmlsZWTigJkKICAgICBNZWFucyB0aGUgbWVzc2FnZSBoYXMgYmVlbiBjb3BpZWQgdG8g c29tZSBvdGhlciBmaWxlLiAgQXNzaWduZWQgYnkKICAgICB0aGUg4oCYb+KAmSBhbmQg4oCYQy1v 4oCZIGZpbGUgb3V0cHV0IGNvbW1hbmRzICgqbm90ZSBSbWFpbCBPdXRwdXQ6OikuCuKAmGFuc3dl cmVk4oCZCiAgICAgTWVhbnMgeW91IGhhdmUgbWFpbGVkIGFuIGFuc3dlciB0byB0aGUgbWVzc2Fn ZS4gIEFzc2lnbmVkIGJ5IHRoZQogICAgIOKAmHLigJkgY29tbWFuZCAo4oCYcm1haWwtcmVwbHni gJkpLiAgKk5vdGUgUm1haWwgUmVwbHk6Oi4K4oCYZm9yd2FyZGVk4oCZCiAgICAgTWVhbnMgeW91 IGhhdmUgZm9yd2FyZGVkIHRoZSBtZXNzYWdlLiAgQXNzaWduZWQgYnkgdGhlIOKAmGbigJkgY29t bWFuZAogICAgICjigJhybWFpbC1mb3J3YXJk4oCZKS4gICpOb3RlIFJtYWlsIFJlcGx5OjouCuKA mGVkaXRlZOKAmQogICAgIE1lYW5zIHlvdSBoYXZlIGVkaXRlZCB0aGUgdGV4dCBvZiB0aGUgbWVz c2FnZSB3aXRoaW4gUm1haWwuICAqTm90ZQogICAgIFJtYWlsIEVkaXRpbmc6Oi4K4oCYcmVzZW50 4oCZCiAgICAgTWVhbnMgeW91IGhhdmUgcmVzZW50IHRoZSBtZXNzYWdlLiAgQXNzaWduZWQgYnkg dGhlIGNvbW1hbmQg4oCYTS14CiAgICAgcm1haWwtcmVzZW5k4oCZLiAgKk5vdGUgUm1haWwgUmVw bHk6Oi4K4oCYcmV0cmllZOKAmQogICAgIE1lYW5zIHlvdSBoYXZlIHJldHJpZWQgYSBmYWlsZWQg b3V0Z29pbmcgbWVzc2FnZS4gIEFzc2lnbmVkIGJ5IHRoZQogICAgIGNvbW1hbmQg4oCYTS14IHJt YWlsLXJldHJ5LWZhaWx1cmXigJkuICAqTm90ZSBSbWFpbCBSZXBseTo6LgoKICAgQWxsIG90aGVy IGxhYmVscyBhcmUgYXNzaWduZWQgb3IgcmVtb3ZlZCBvbmx5IGJ5IHVzZXJzLCBhbmQgaGF2ZSBu bwpzdGFuZGFyZCBtZWFuaW5nLgoKCioqIDMzLjEwIFNlbmRpbmcgUmVwbGllcwoKUm1haWwgaGFz IHNldmVyYWwgY29tbWFuZHMgdG8gc2VuZCBvdXRnb2luZyBtYWlsLiAgKk5vdGUgU2VuZGluZyBN YWlsOjosCmZvciBpbmZvcm1hdGlvbiBvbiB1c2luZyBNZXNzYWdlIG1vZGUsIGluY2x1ZGluZyBj ZXJ0YWluIGZlYXR1cmVzIG1lYW50CnRvIHdvcmsgd2l0aCBSbWFpbC4gIFdoYXQgdGhpcyBzZWN0 aW9uIGRvY3VtZW50cyBhcmUgdGhlIHNwZWNpYWwKY29tbWFuZHMgb2YgUm1haWwgZm9yIGVudGVy aW5nIHRoZSBtYWlsIGJ1ZmZlciB1c2VkIHRvIGNvbXBvc2UgdGhlCm91dGdvaW5nIG1lc3NhZ2Uu ICBOb3RlIHRoYXQgdGhlIHVzdWFsIGtleXMgZm9yIHNlbmRpbmcgbWFpbOKAlOKAmEMteCBt4oCZ LArigJhDLXggNCBt4oCZLCBhbmQg4oCYQy14IDUgbeKAmeKAlGFsc28gd29yayBub3JtYWxseSBp biBSbWFpbCBtb2RlLgoK4oCYbeKAmQogICAgIFNlbmQgYSBtZXNzYWdlICjigJhybWFpbC1tYWls 4oCZKS4K4oCYY+KAmQogICAgIENvbnRpbnVlIGVkaXRpbmcgdGhlIGFscmVhZHkgc3RhcnRlZCBv dXRnb2luZyBtZXNzYWdlCiAgICAgKOKAmHJtYWlsLWNvbnRpbnVl4oCZKS4K4oCYcuKAmQogICAg IFNlbmQgYSByZXBseSB0byB0aGUgY3VycmVudCBSbWFpbCBtZXNzYWdlICjigJhybWFpbC1yZXBs eeKAmSkuCuKAmGbigJkKICAgICBGb3J3YXJkIHRoZSBjdXJyZW50IG1lc3NhZ2UgdG8gb3RoZXIg dXNlcnMgKOKAmHJtYWlsLWZvcndhcmTigJkpLgrigJhDLXUgZuKAmQogICAgIFJlc2VuZCB0aGUg Y3VycmVudCBtZXNzYWdlIHRvIG90aGVyIHVzZXJzICjigJhybWFpbC1yZXNlbmTigJkpLgrigJhN LW3igJkKICAgICBUcnkgc2VuZGluZyBhIGJvdW5jZWQgbWVzc2FnZSBhIHNlY29uZCB0aW1lCiAg ICAgKOKAmHJtYWlsLXJldHJ5LWZhaWx1cmXigJkpLgoKICAgVGhlIG1vc3QgY29tbW9uIHJlYXNv biB0byBzZW5kIGEgbWVzc2FnZSB3aGlsZSBpbiBSbWFpbCBpcyB0byByZXBseQp0byB0aGUgbWVz c2FnZSB5b3UgYXJlIHJlYWRpbmcuICBUbyBkbyB0aGlzLCB0eXBlIOKAmHLigJkgKOKAmHJtYWls LXJlcGx54oCZKS4KVGhpcyBkaXNwbGF5cyBhIG1haWwgY29tcG9zaXRpb24gYnVmZmVyIGluIGFu b3RoZXIgd2luZG93LCBtdWNoIGxpa2UK4oCYQy14IDQgbeKAmSwgYnV0IHByZWluaXRpYWxpemVz IHRoZSDigJhTdWJqZWN04oCZLCDigJhUb+KAmSwg4oCYQ0PigJksIOKAmEluLXJlcGx5LXRv4oCZ CmFuZCDigJhSZWZlcmVuY2Vz4oCZIGhlYWRlciBmaWVsZHMgYmFzZWQgb24gdGhlIG1lc3NhZ2Ug eW91IGFyZSByZXBseWluZyB0by4KVGhlIOKAmFRv4oCZIGZpZWxkIHN0YXJ0cyBvdXQgYXMgdGhl IGFkZHJlc3Mgb2YgdGhlIHBlcnNvbiB3aG8gc2VudCB0aGUKbWVzc2FnZSB5b3UgcmVjZWl2ZWQs IGFuZCB0aGUg4oCYQ0PigJkgZmllbGQgc3RhcnRzIG91dCB3aXRoIGFsbCB0aGUgb3RoZXIKcmVj aXBpZW50cyBvZiB0aGF0IG1lc3NhZ2UuCgogICBZb3UgY2FuIGV4Y2x1ZGUgY2VydGFpbiByZWNp cGllbnRzIGZyb20gYmVpbmcgaW5jbHVkZWQgYXV0b21hdGljYWxseQppbiByZXBsaWVzLCB1c2lu ZyB0aGUgdmFyaWFibGUg4oCYbWFpbC1kb250LXJlcGx5LXRvLW5hbWVz4oCZLiAgSXRzIHZhbHVl CnNob3VsZCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbjsgYW55IHJlY2lwaWVudHMgdGhhdCBtYXRj aCBhcmUgZXhjbHVkZWQKZnJvbSB0aGUg4oCYQ0PigJkgZmllbGQuICBUaGV5IGFyZSBhbHNvIGV4 Y2x1ZGVkIGZyb20gdGhlIOKAmFRv4oCZIGZpZWxkLCB1bmxlc3MKdGhpcyB3b3VsZCBsZWF2ZSB0 aGUgZmllbGQgZW1wdHkuICBJZiB0aGlzIHZhcmlhYmxlIGlzIOKAmG5pbOKAmSwgdGhlbiB0aGUK Zmlyc3QgdGltZSB5b3UgY29tcG9zZSBhIHJlcGx5IGl0IGlzIGluaXRpYWxpemVkIHRvIGEgZGVm YXVsdCB2YWx1ZSB0aGF0Cm1hdGNoZXMgeW91ciBvd24gYWRkcmVzcy4KCiAgIFRvIHJlcGx5IG9u bHkgdG8gdGhlIHNlbmRlciBvZiB0aGUgb3JpZ2luYWwgbWVzc2FnZSwgZW50ZXIgdGhlIHJlcGx5 CmNvbW1hbmQgd2l0aCBhIG51bWVyaWMgYXJndW1lbnQ6IOKAmEMtdSBy4oCZIG9yIOKAmDEgcuKA mS4gIFRoaXMgb21pdHMgdGhlIOKAmEND4oCZCmZpZWxkIGNvbXBsZXRlbHkgZm9yIGEgcGFydGlj dWxhciByZXBseS4KCiAgIE9uY2UgdGhlIG1haWwgY29tcG9zaXRpb24gYnVmZmVyIGhhcyBiZWVu IGluaXRpYWxpemVkLCBlZGl0aW5nIGFuZApzZW5kaW5nIHRoZSBtYWlsIGdvZXMgYXMgdXN1YWwg KCpub3RlIFNlbmRpbmcgTWFpbDo6KS4gIFlvdSBjYW4gZWRpdCB0aGUKcHJlc3VwcGxpZWQgaGVh ZGVyIGZpZWxkcyBpZiB0aGV5IGFyZSBub3Qgd2hhdCB5b3Ugd2FudC4gIFlvdSBjYW4gYWxzbwp1 c2UgY29tbWFuZHMgc3VjaCBhcyDigJhDLWMgQy154oCZLCB3aGljaCB5YW5rcyBpbiB0aGUgbWVz c2FnZSB0aGF0IHlvdSBhcmUKcmVwbHlpbmcgdG8gKCpub3RlIE1haWwgQ29tbWFuZHM6OikuICBZ b3UgY2FuIGFsc28gc3dpdGNoIHRvIHRoZSBSbWFpbApidWZmZXIsIHNlbGVjdCBhIGRpZmZlcmVu dCBtZXNzYWdlIHRoZXJlLCBzd2l0Y2ggYmFjaywgYW5kIHlhbmsgdGhlIG5ldwpjdXJyZW50IG1l c3NhZ2UuCgogICBTb21ldGltZXMgYSBtZXNzYWdlIGRvZXMgbm90IHJlYWNoIGl0cyBkZXN0aW5h dGlvbi4gIE1haWxlcnMgdXN1YWxseQpzZW5kIHRoZSBmYWlsZWQgbWVzc2FnZSBiYWNrIHRvIHlv dSwgZW5jbG9zZWQgaW4gYSAiZmFpbHVyZSBtZXNzYWdlIi4KVGhlIFJtYWlsIGNvbW1hbmQg4oCY TS1t4oCZICjigJhybWFpbC1yZXRyeS1mYWlsdXJl4oCZKSBwcmVwYXJlcyB0byBzZW5kIHRoZQpz YW1lIG1lc3NhZ2UgYSBzZWNvbmQgdGltZTogaXQgc2V0cyB1cCBhIG1haWwgY29tcG9zaXRpb24g YnVmZmVyIHdpdGgKdGhlIHNhbWUgdGV4dCBhbmQgaGVhZGVyIGZpZWxkcyBhcyBiZWZvcmUuICBJ ZiB5b3UgdHlwZSDigJhDLWMgQy1j4oCZIHJpZ2h0CmF3YXksIHlvdSBzZW5kIHRoZSBtZXNzYWdl IGFnYWluIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIGZpcnN0IHRpbWUuCkFsdGVybmF0aXZlbHks IHlvdSBjYW4gZWRpdCB0aGUgdGV4dCBvciBoZWFkZXJzIGFuZCB0aGVuIHNlbmQgaXQuICBUaGUK dmFyaWFibGUg4oCYcm1haWwtcmV0cnktaWdub3JlZC1oZWFkZXJz4oCZLCBpbiB0aGUgc2FtZSBm b3JtYXQgYXMK4oCYcm1haWwtaWdub3JlZC1oZWFkZXJz4oCZICgqbm90ZSBSbWFpbCBEaXNwbGF5 OjopLCBjb250cm9scyB3aGljaCBoZWFkZXJzCmFyZSBzdHJpcHBlZCBmcm9tIHRoZSBmYWlsZWQg bWVzc2FnZSB3aGVuIHJldHJ5aW5nIGl0LgoKICAgQW5vdGhlciBmcmVxdWVudCByZWFzb24gdG8g c2VuZCBtYWlsIGluIFJtYWlsIGlzIHRvICJmb3J3YXJkIiB0aGUKY3VycmVudCBtZXNzYWdlIHRv IG90aGVyIHVzZXJzLiAg4oCYZuKAmSAo4oCYcm1haWwtZm9yd2FyZOKAmSkgbWFrZXMgdGhpcyBl YXN5CmJ5IHByZWluaXRpYWxpemluZyB0aGUgbWFpbCBjb21wb3NpdGlvbiBidWZmZXIgd2l0aCB0 aGUgY3VycmVudCBtZXNzYWdlCmFzIHRoZSB0ZXh0LCBhbmQgYSBzdWJqZWN0IG9mIHRoZSBmb3Jt IOKAmFtGUk9NOiBTVUJKRUNUXeKAmSwgd2hlcmUgRlJPTSBhbmQKU1VCSkVDVCBhcmUgdGhlIHNl bmRlciBhbmQgc3ViamVjdCBvZiB0aGUgb3JpZ2luYWwgbWVzc2FnZS4gIEFsbCB5b3UKaGF2ZSB0 byBkbyBpcyBmaWxsIGluIHRoZSByZWNpcGllbnRzIGFuZCBzZW5kLiAgV2hlbiB5b3UgZm9yd2Fy ZCBhCm1lc3NhZ2UsIHJlY2lwaWVudHMgZ2V0IGEgbWVzc2FnZSB3aGljaCBpcyBmcm9tIHlvdSwg YW5kIHdoaWNoIGhhcyB0aGUKb3JpZ2luYWwgbWVzc2FnZSBpbiBpdHMgY29udGVudHMuCgogICBS bWFpbCBvZmZlcnMgdHdvIGZvcm1hdHMgZm9yIGZvcndhcmRlZCBtZXNzYWdlcy4gIFRoZSBkZWZh dWx0IGlzIHRvCnVzZSB0aGUgTUlNRSBmb3JtYXQgKCpub3RlIFJtYWlsIERpc3BsYXk6OikuICBU aGlzIGluY2x1ZGVzIHRoZSBvcmlnaW5hbAptZXNzYWdlIGFzIGEgc2VwYXJhdGUgcGFydC4gIFlv dSBjYW4gdXNlIGEgc2ltcGxlciBmb3JtYXQgaWYgeW91IHByZWZlciwKYnkgc2V0dGluZyB0aGUg dmFyaWFibGUg4oCYcm1haWwtZW5hYmxlLW1pbWUtY29tcG9zaW5n4oCZIHRvIOKAmG5pbOKAmS4g IEluIHRoaXMKY2FzZSwgUm1haWwganVzdCBpbmNsdWRlcyB0aGUgb3JpZ2luYWwgbWVzc2FnZSBl bmNsb3NlZCBiZXR3ZWVuIHR3bwpkZWxpbWl0ZXIgbGluZXMuICBJdCBhbHNvIG1vZGlmaWVzIGV2 ZXJ5IGxpbmUgdGhhdCBzdGFydHMgd2l0aCBhIGRhc2gsCmJ5IGluc2VydGluZyDigJgtIOKAmSBh dCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuICBXaGVuIHlvdSByZWNlaXZlIGEKZm9yd2FyZGVkIG1l c3NhZ2UgaW4gdGhpcyBmb3JtYXQsIGlmIGl0IGNvbnRhaW5zIHNvbWV0aGluZyBiZXNpZGVzCm9y ZGluYXJ5IHRleHTigJRmb3IgZXhhbXBsZSwgcHJvZ3JhbSBzb3VyY2UgY29kZeKAlHlvdSBtaWdo dCBmaW5kIGl0IHVzZWZ1bAp0byB1bmRvIHRoYXQgdHJhbnNmb3JtYXRpb24uICBZb3UgY2FuIGRv IHRoaXMgYnkgc2VsZWN0aW5nIHRoZSBmb3J3YXJkZWQKbWVzc2FnZSBhbmQgdHlwaW5nIOKAmE0t eCB1bmZvcndhcmQtcm1haWwtbWVzc2FnZeKAmS4gIFRoaXMgY29tbWFuZCBleHRyYWN0cwp0aGUg b3JpZ2luYWwgZm9yd2FyZGVkIG1lc3NhZ2UsIGRlbGV0aW5nIHRoZSBpbnNlcnRlZCDigJgtIOKA mSBzdHJpbmdzLCBhbmQKaW5zZXJ0cyBpdCBpbnRvIHRoZSBSbWFpbCBmaWxlIGFzIGEgc2VwYXJh dGUgbWVzc2FnZSBpbW1lZGlhdGVseQpmb2xsb3dpbmcgdGhlIGN1cnJlbnQgb25lLgoKICAgIlJl c2VuZGluZyIgaXMgYW4gYWx0ZXJuYXRpdmUgc2ltaWxhciB0byBmb3J3YXJkaW5nOyB0aGUgZGlm ZmVyZW5jZQppcyB0aGF0IHJlc2VuZGluZyBzZW5kcyBhIG1lc3NhZ2UgdGhhdCBpcyBmcm9tIHRo ZSBvcmlnaW5hbCBzZW5kZXIsIGp1c3QKYXMgaXQgcmVhY2hlZCB5b3XigJR3aXRoIGEgZmV3IGFk ZGVkIGhlYWRlciBmaWVsZHMgKOKAmFJlc2VudC1Gcm9t4oCZIGFuZArigJhSZXNlbnQtVG/igJkp IHRvIGluZGljYXRlIHRoYXQgaXQgY2FtZSB2aWEgeW91LiAgVG8gcmVzZW5kIGEgbWVzc2FnZSBp bgpSbWFpbCwgdXNlIOKAmEMtdSBm4oCZLiAgKOKAmGbigJkgcnVucyDigJhybWFpbC1mb3J3YXJk 4oCZLCB3aGljaCBpbnZva2VzCuKAmHJtYWlsLXJlc2VuZOKAmSBpZiB5b3UgcHJvdmlkZSBhIG51 bWVyaWMgYXJndW1lbnQuKQoKICAgVXNlIHRoZSDigJht4oCZICjigJhybWFpbC1tYWls4oCZKSBj b21tYW5kIHRvIHN0YXJ0IGVkaXRpbmcgYW4gb3V0Z29pbmcKbWVzc2FnZSB0aGF0IGlzIG5vdCBh IHJlcGx5LiAgSXQgbGVhdmVzIHRoZSBoZWFkZXIgZmllbGRzIGVtcHR5LiAgSXRzCm9ubHkgZGlm ZmVyZW5jZSBmcm9tIOKAmEMteCA0IG3igJkgaXMgdGhhdCBpdCBtYWtlcyB0aGUgUm1haWwgYnVm ZmVyCmFjY2Vzc2libGUgZm9yIOKAmEMtYyBDLXnigJksIGp1c3QgYXMg4oCYcuKAmSBkb2VzLgoK ICAgVGhlIOKAmGPigJkgKOKAmHJtYWlsLWNvbnRpbnVl4oCZKSBjb21tYW5kIHJlc3VtZXMgZWRp dGluZyB0aGUgbWFpbApjb21wb3NpdGlvbiBidWZmZXIsIHRvIGZpbmlzaCBlZGl0aW5nIGFuIG91 dGdvaW5nIG1lc3NhZ2UgeW91IHdlcmUKYWxyZWFkeSBjb21wb3NpbmcsIG9yIHRvIGFsdGVyIGEg bWVzc2FnZSB5b3UgaGF2ZSBzZW50LgoKICAgSWYgeW91IHNldCB0aGUgdmFyaWFibGUg4oCYcm1h aWwtbWFpbC1uZXctZnJhbWXigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlLAp0aGVuIGFsbCB0 aGUgUm1haWwgY29tbWFuZHMgdG8gc3RhcnQgc2VuZGluZyBhIG1lc3NhZ2UgY3JlYXRlIGEgbmV3 CmZyYW1lIHRvIGVkaXQgaXQgaW4uICBUaGlzIGZyYW1lIGlzIGRlbGV0ZWQgd2hlbiB5b3Ugc2Vu ZCB0aGUgbWVzc2FnZS4KCiAgIEFsbCB0aGUgUm1haWwgY29tbWFuZHMgdG8gc2VuZCBhIG1lc3Nh Z2UgdXNlIHRoZSBtYWlsLWNvbXBvc2l0aW9uCm1ldGhvZCB0aGF0IHlvdSBoYXZlIGNob3NlbiAo Km5vdGUgTWFpbCBNZXRob2RzOjopLgoKCioqIDMzLjExIFN1bW1hcmllcwoKQSAic3VtbWFyeSIg aXMgYSBidWZmZXIgY29udGFpbmluZyBvbmUgbGluZSBwZXIgbWVzc2FnZSB0byBnaXZlIHlvdSBh bgpvdmVydmlldyBvZiB0aGUgbWFpbCBpbiBhbiBSbWFpbCBmaWxlLiAgRWFjaCBsaW5lIHNob3dz IHRoZSBtZXNzYWdlCm51bWJlciBhbmQgZGF0ZSwgdGhlIHNlbmRlciwgdGhlIGxpbmUgY291bnQs IHRoZSBsYWJlbHMsIGFuZCB0aGUKc3ViamVjdC4gIE1vdmluZyBwb2ludCBpbiB0aGUgc3VtbWFy eSBidWZmZXIgc2VsZWN0cyBtZXNzYWdlcyBhcyB5b3UKbW92ZSB0byB0aGVpciBzdW1tYXJ5IGxp bmVzLiAgQWxtb3N0IGFsbCBSbWFpbCBjb21tYW5kcyBhcmUgdmFsaWQgaW4gdGhlCnN1bW1hcnkg YnVmZmVyIGFsc287IHdoZW4gdXNlZCB0aGVyZSwgdGhleSBhcHBseSB0byB0aGUgbWVzc2FnZQpk ZXNjcmliZWQgYnkgdGhlIGN1cnJlbnQgbGluZSBvZiB0aGUgc3VtbWFyeS4KCiAgIEEgc3VtbWFy eSBidWZmZXIgYXBwbGllcyB0byBhIHNpbmdsZSBSbWFpbCBmaWxlIG9ubHk7IGlmIHlvdSBhcmUK ZWRpdGluZyBtdWx0aXBsZSBSbWFpbCBmaWxlcywgZWFjaCBvbmUgY2FuIGhhdmUgaXRzIG93biBz dW1tYXJ5IGJ1ZmZlci4KVGhlIHN1bW1hcnkgYnVmZmVyIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRp bmcg4oCYLXN1bW1hcnnigJkgdG8gdGhlIFJtYWlsCmJ1ZmZlcuKAmXMgbmFtZS4gIE5vcm1hbGx5 IG9ubHkgb25lIHN1bW1hcnkgYnVmZmVyIGlzIGRpc3BsYXllZCBhdCBhIHRpbWUuCgorIE1lbnU6 CgogIC0gUm1haWwgTWFrZSBTdW1tYXJ5OjogICAgICAgTWFraW5nIHZhcmlvdXMgc29ydHMgb2Yg c3VtbWFyaWVzLgogIC0gUm1haWwgU3VtbWFyeSBFZGl0OjogICAgICAgTWFuaXB1bGF0aW5nIG1l c3NhZ2VzIGZyb20gdGhlIHN1bW1hcnkuCgoKKioqIDMzLjExLjEgTWFraW5nIFN1bW1hcmllcwoK SGVyZSBhcmUgdGhlIGNvbW1hbmRzIHRvIGNyZWF0ZSBhIHN1bW1hcnkgZm9yIHRoZSBjdXJyZW50 IFJtYWlsIGJ1ZmZlci4KT25jZSB0aGUgUm1haWwgYnVmZmVyIGhhcyBhIHN1bW1hcnksIGNoYW5n ZXMgaW4gdGhlIFJtYWlsIGJ1ZmZlciAoc3VjaAphcyBkZWxldGluZyBvciBleHB1bmdpbmcgbWVz c2FnZXMsIGFuZCBnZXR0aW5nIG5ldyBtYWlsKSBhdXRvbWF0aWNhbGx5CnVwZGF0ZSB0aGUgc3Vt bWFyeS4KCuKAmGjigJkK4oCYQy1NLWjigJkKICAgICBTdW1tYXJpemUgYWxsIG1lc3NhZ2VzICji gJhybWFpbC1zdW1tYXJ54oCZKS4K4oCYbCBMQUJFTFMgPFJFVD7igJkK4oCYQy1NLWwgTEFCRUxT IDxSRVQ+4oCZCiAgICAgU3VtbWFyaXplIG1lc3NhZ2VzIHRoYXQgaGF2ZSBvbmUgb3IgbW9yZSBv ZiB0aGUgc3BlY2lmaWVkIGxhYmVscwogICAgICjigJhybWFpbC1zdW1tYXJ5LWJ5LWxhYmVsc+KA mSkuCuKAmEMtTS1yIFJDUFRTIDxSRVQ+4oCZCiAgICAgU3VtbWFyaXplIG1lc3NhZ2VzIHRoYXQg bWF0Y2ggdGhlIHNwZWNpZmllZCByZWNpcGllbnRzCiAgICAgKOKAmHJtYWlsLXN1bW1hcnktYnkt cmVjaXBpZW50c+KAmSkuCuKAmEMtTS10IFRPUElDIDxSRVQ+4oCZCiAgICAgU3VtbWFyaXplIG1l c3NhZ2VzIHRoYXQgaGF2ZSBhIG1hdGNoIGZvciB0aGUgc3BlY2lmaWVkIHJlZ2V4cCBUT1BJQwog ICAgIGluIHRoZWlyIHN1YmplY3RzICjigJhybWFpbC1zdW1tYXJ5LWJ5LXRvcGlj4oCZKS4K4oCY Qy1NLXMgUkVHRVhQIDxSRVQ+4oCZCiAgICAgU3VtbWFyaXplIG1lc3NhZ2VzIHdob3NlIGhlYWRl cnMgbWF0Y2ggdGhlIHNwZWNpZmllZCByZWd1bGFyCiAgICAgZXhwcmVzc2lvbiBSRUdFWFAgKOKA mHJtYWlsLXN1bW1hcnktYnktcmVnZXhw4oCZKS4K4oCYQy1NLWYgU0VOREVSUyA8UkVUPuKAmQog ICAgIFN1bW1hcml6ZSBtZXNzYWdlcyB0aGF0IG1hdGNoIHRoZSBzcGVjaWZpZWQgc2VuZGVycy4K ICAgICAo4oCYcm1haWwtc3VtbWFyeS1ieS1zZW5kZXJz4oCZKS4KCiAgIFRoZSDigJho4oCZIG9y IOKAmEMtTS1o4oCZICjigJhybWFpbC1zdW1tYXJ54oCZKSBjb21tYW5kIGZpbGxzIHRoZSBzdW1t YXJ5IGJ1ZmZlcgpmb3IgdGhlIGN1cnJlbnQgUm1haWwgYnVmZmVyIHdpdGggYSBzdW1tYXJ5IG9m IGFsbCB0aGUgbWVzc2FnZXMgaW4gdGhlCmJ1ZmZlci4gIEl0IHRoZW4gZGlzcGxheXMgYW5kIHNl bGVjdHMgdGhlIHN1bW1hcnkgYnVmZmVyIGluIGFub3RoZXIKd2luZG93LgoKICAg4oCYQy1NLWwg TEFCRUxTIDxSRVQ+4oCZICjigJhybWFpbC1zdW1tYXJ5LWJ5LWxhYmVsc+KAmSkgbWFrZXMgYSBw YXJ0aWFsCnN1bW1hcnkgbWVudGlvbmluZyBvbmx5IHRoZSBtZXNzYWdlcyB0aGF0IGhhdmUgb25l IG9yIG1vcmUgb2YgdGhlIGxhYmVscwpMQUJFTFMuICBMQUJFTFMgc2hvdWxkIGNvbnRhaW4gbGFi ZWwgbmFtZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KCiAgIOKAmEMtTS1yIFJDUFRTIDxSRVQ+4oCZ ICjigJhybWFpbC1zdW1tYXJ5LWJ5LXJlY2lwaWVudHPigJkpIG1ha2VzIGEgcGFydGlhbApzdW1t YXJ5IG1lbnRpb25pbmcgb25seSB0aGUgbWVzc2FnZXMgdGhhdCBoYXZlIG9uZSBvciBtb3JlIHJl Y2lwaWVudHMKbWF0Y2hpbmcgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBSQ1BUUy4gIFRoaXMgaXMg bWF0Y2hlZCBhZ2FpbnN0IHRoZQrigJhUb+KAmSwg4oCYRnJvbeKAmSwgYW5kIOKAmEND4oCZIGhl YWRlcnMgKHN1cHBseSBhIHByZWZpeCBhcmd1bWVudCB0byBleGNsdWRlIHRoZQrigJhDQ+KAmSBo ZWFkZXIpLgoKICAg4oCYQy1NLXQgVE9QSUMgPFJFVD7igJkgKOKAmHJtYWlsLXN1bW1hcnktYnkt dG9waWPigJkpIG1ha2VzIGEgcGFydGlhbApzdW1tYXJ5IG1lbnRpb25pbmcgb25seSB0aGUgbWVz c2FnZXMgd2hvc2Ugc3ViamVjdHMgaGF2ZSBhIG1hdGNoIGZvciB0aGUKcmVndWxhciBleHByZXNz aW9uIFRPUElDLiAgV2l0aCBhIHByZWZpeCBhcmd1bWVudCwgdGhlIG1hdGNoIGlzIGFnYWluc3QK dGhlIHdob2xlIG1lc3NhZ2UsIG5vdCBqdXN0IHRoZSBzdWJqZWN0LgoKICAg4oCYQy1NLXMgUkVH RVhQIDxSRVQ+4oCZICjigJhybWFpbC1zdW1tYXJ5LWJ5LXJlZ2V4cOKAmSkgbWFrZXMgYSBwYXJ0 aWFsCnN1bW1hcnkgdGhhdCBtZW50aW9ucyBvbmx5IHRoZSBtZXNzYWdlcyB3aG9zZSBoZWFkZXJz IChpbmNsdWRpbmcgdGhlCmRhdGUgYW5kIHRoZSBzdWJqZWN0IGxpbmVzKSBtYXRjaCB0aGUgcmVn dWxhciBleHByZXNzaW9uIFJFR0VYUC4KCiAgIOKAmEMtTS1mIFNFTkRFUlMgPFJFVD7igJkgKOKA mHJtYWlsLXN1bW1hcnktYnktc2VuZGVyc+KAmSkgbWFrZXMgYSBwYXJ0aWFsCnN1bW1hcnkgdGhh dCBtZW50aW9ucyBvbmx5IHRoZSBtZXNzYWdlcyB3aG9zZSDigJhGcm9t4oCZIGZpZWxkcyBtYXRj aCB0aGUKcmVndWxhciBleHByZXNzaW9uIFNFTkRFUlMuCgogICBOb3RlIHRoYXQgdGhlcmUgaXMg b25seSBvbmUgc3VtbWFyeSBidWZmZXIgZm9yIGFueSBSbWFpbCBidWZmZXI7Cm1ha2luZyBhbnkg a2luZCBvZiBzdW1tYXJ5IGRpc2NhcmRzIGFueSBwcmV2aW91cyBzdW1tYXJ5LgoKICAgVGhlIHZh cmlhYmxlIOKAmHJtYWlsLXN1bW1hcnktd2luZG93LXNpemXigJkgc2F5cyBob3cgbWFueSBsaW5l cyB0byB1c2UKZm9yIHRoZSBzdW1tYXJ5IHdpbmRvdy4gIFRoZSB2YXJpYWJsZSDigJhybWFpbC1z dW1tYXJ5LWxpbmUtY291bnQtZmxhZ+KAmQpjb250cm9scyB3aGV0aGVyIHRoZSBzdW1tYXJ5IGxp bmUgZm9yIGEgbWVzc2FnZSBzaG91bGQgaW5jbHVkZSB0aGUgbGluZQpjb3VudCBvZiB0aGUgbWVz c2FnZS4gIFNldHRpbmcgdGhpcyBvcHRpb24gdG8g4oCYbmls4oCZIG1pZ2h0IHNwZWVkIHVwIHRo ZQpnZW5lcmF0aW9uIG9mIHN1bW1hcmllcy4KCgoqKiogMzMuMTEuMiBFZGl0aW5nIGluIFN1bW1h cmllcwoKWW91IGNhbiB1c2UgdGhlIFJtYWlsIHN1bW1hcnkgYnVmZmVyIHRvIGRvIGFsbW9zdCBh bnl0aGluZyB5b3UgY2FuIGRvIGluCnRoZSBSbWFpbCBidWZmZXIgaXRzZWxmLiAgSW4gZmFjdCwg b25jZSB5b3UgaGF2ZSBhIHN1bW1hcnkgYnVmZmVyLAp0aGVyZeKAmXMgbm8gbmVlZCB0byBzd2l0 Y2ggYmFjayB0byB0aGUgUm1haWwgYnVmZmVyLgoKICAgWW91IGNhbiBzZWxlY3QgYW5kIGRpc3Bs YXkgdmFyaW91cyBtZXNzYWdlcyBpbiB0aGUgUm1haWwgYnVmZmVyLCBmcm9tCnRoZSBzdW1tYXJ5 IGJ1ZmZlciwganVzdCBieSBtb3ZpbmcgcG9pbnQgaW4gdGhlIHN1bW1hcnkgYnVmZmVyIHRvCmRp ZmZlcmVudCBsaW5lcy4gIEl0IGRvZXNu4oCZdCBtYXR0ZXIgd2hhdCBFbWFjcyBjb21tYW5kIHlv dSB1c2UgdG8gbW92ZQpwb2ludDsgd2hpY2hldmVyIGxpbmUgcG9pbnQgaXMgb24gYXQgdGhlIGVu ZCBvZiB0aGUgY29tbWFuZCwgdGhhdAptZXNzYWdlIGlzIHNlbGVjdGVkIGluIHRoZSBSbWFpbCBi dWZmZXIuCgogICBBbG1vc3QgYWxsIFJtYWlsIGNvbW1hbmRzIHdvcmsgaW4gdGhlIHN1bW1hcnkg YnVmZmVyIGFzIHdlbGwgYXMgaW4KdGhlIFJtYWlsIGJ1ZmZlci4gIFRodXMsIOKAmGTigJkgaW4g dGhlIHN1bW1hcnkgYnVmZmVyIGRlbGV0ZXMgdGhlIGN1cnJlbnQKbWVzc2FnZSwg4oCYdeKAmSB1 bmRlbGV0ZXMsIGFuZCDigJh44oCZIGV4cHVuZ2VzLiAgKEhvd2V2ZXIsIGluIHRoZSBzdW1tYXJ5 CmJ1ZmZlciwgaWYgdGhlcmUgYXJlIG5vIG1vcmUgdW5kZWxldGVkIG1lc3NhZ2VzIGluIHRoZSBy ZWxldmFudApkaXJlY3Rpb24sIHRoZSBkZWxldGUgY29tbWFuZHMgZ28gdG8gdGhlIGZpcnN0IG9y IGxhc3QgbWVzc2FnZSwgcmF0aGVyCnRoYW4gc3RheWluZyBvbiB0aGUgY3VycmVudCBtZXNzYWdl LikgIOKAmG/igJkgYW5kIOKAmEMtb+KAmSBvdXRwdXQgdGhlIGN1cnJlbnQKbWVzc2FnZSB0byBh IEZJTEU7IOKAmHLigJkgc3RhcnRzIGEgcmVwbHkgdG8gaXQ7IGV0Yy4gIFlvdSBjYW4gc2Nyb2xs IHRoZQpjdXJyZW50IG1lc3NhZ2Ugd2hpbGUgcmVtYWluaW5nIGluIHRoZSBzdW1tYXJ5IGJ1ZmZl ciB1c2luZyA8U1BDPiBhbmQKPERFTD4uICBIb3dldmVyLCBpbiB0aGUgc3VtbWFyeSBidWZmZXIg c2Nyb2xsaW5nIHBhc3QgdGhlIGVuZCBvciB0aGUKYmVnaW5uaW5nIG9mIGEgbWVzc2FnZSB3aXRo IDxTUEM+IG9yIDxERUw+IGdvZXMsIHJlc3BlY3RpdmVseSwgdG8gdGhlCm5leHQgb3IgcHJldmlv dXMgdW5kZWxldGVkIG1lc3NhZ2UuICBDdXN0b21pemUgdGhlCuKAmHJtYWlsLXN1bW1hcnktc2Ny b2xsLWJldHdlZW4tbWVzc2FnZXPigJkgb3B0aW9uIHRvIOKAmG5pbOKAmSB0byBkaXNhYmxlCnNj cm9sbGluZyB0byBuZXh0L3ByZXZpb3VzIG1lc3NhZ2VzLgoKICAg4oCYTS114oCZICjigJhybWFp bC1zdW1tYXJ5LXVuZGVsZXRlLW1hbnnigJkpIHVuZGVsZXRlcyBhbGwgZGVsZXRlZCBtZXNzYWdl cwppbiB0aGUgc3VtbWFyeS4gIEEgcHJlZml4IGFyZ3VtZW50IG1lYW5zIHRvIHVuZGVsZXRlIHRo YXQgbWFueSBvZiB0aGUKcHJldmlvdXMgZGVsZXRlZCBtZXNzYWdlcy4KCiAgIFRoZSBSbWFpbCBj b21tYW5kcyB0byBtb3ZlIGJldHdlZW4gbWVzc2FnZXMgYWxzbyB3b3JrIGluIHRoZSBzdW1tYXJ5 CmJ1ZmZlciwgYnV0IHdpdGggYSB0d2lzdDogdGhleSBtb3ZlIHRocm91Z2ggdGhlIHNldCBvZiBt ZXNzYWdlcyBpbmNsdWRlZAppbiB0aGUgc3VtbWFyeS4gIFRoZXkgYWxzbyBlbnN1cmUgdGhlIFJt YWlsIGJ1ZmZlciBhcHBlYXJzIG9uIHRoZSBzY3JlZW4KKHVubGlrZSBjdXJzb3IgbW90aW9uIGNv bW1hbmRzLCB3aGljaCB1cGRhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBSbWFpbApidWZmZXIgYnV0 IGRvbuKAmXQgZGlzcGxheSBpdCBpbiBhIHdpbmRvdyB1bmxlc3MgaXQgYWxyZWFkeSBhcHBlYXJz KS4KSGVyZSBpcyBhIGxpc3Qgb2YgdGhlc2UgY29tbWFuZHM6CgrigJhu4oCZCiAgICAgTW92ZSB0 byBuZXh0IGxpbmUsIHNraXBwaW5nIGxpbmVzIHNheWluZyDigJxkZWxldGVk4oCdLCBhbmQgc2Vs ZWN0IGl0cwogICAgIG1lc3NhZ2UgKOKAmHJtYWlsLXN1bW1hcnktbmV4dC1tc2figJkpLgrigJhw 4oCZCiAgICAgTW92ZSB0byBwcmV2aW91cyBsaW5lLCBza2lwcGluZyBsaW5lcyBzYXlpbmcg4oCc ZGVsZXRlZOKAnSwgYW5kIHNlbGVjdAogICAgIGl0cyBtZXNzYWdlICjigJhybWFpbC1zdW1tYXJ5 LXByZXZpb3VzLW1zZ+KAmSkuCuKAmE0tbuKAmQogICAgIE1vdmUgdG8gbmV4dCBsaW5lIGFuZCBz ZWxlY3QgaXRzIG1lc3NhZ2UKICAgICAo4oCYcm1haWwtc3VtbWFyeS1uZXh0LWFsbOKAmSkuCuKA mE0tcOKAmQogICAgIE1vdmUgdG8gcHJldmlvdXMgbGluZSBhbmQgc2VsZWN0IGl0cyBtZXNzYWdl CiAgICAgKOKAmHJtYWlsLXN1bW1hcnktcHJldmlvdXMtYWxs4oCZKS4K4oCYPuKAmQogICAgIE1v dmUgdG8gdGhlIGxhc3QgbGluZSwgYW5kIHNlbGVjdCBpdHMgbWVzc2FnZQogICAgICjigJhybWFp bC1zdW1tYXJ5LWxhc3QtbWVzc2FnZeKAmSkuCuKAmDzigJkKICAgICBNb3ZlIHRvIHRoZSBmaXJz dCBsaW5lLCBhbmQgc2VsZWN0IGl0cyBtZXNzYWdlCiAgICAgKOKAmHJtYWlsLXN1bW1hcnktZmly c3QtbWVzc2FnZeKAmSkuCuKAmGrigJkK4oCYPFJFVD7igJkKICAgICBTZWxlY3QgdGhlIG1lc3Nh Z2Ugb24gdGhlIGN1cnJlbnQgbGluZSAoZW5zdXJpbmcgdGhhdCB0aGUgUm1haWwKICAgICBidWZm ZXIgYXBwZWFycyBvbiB0aGUgc2NyZWVuOyDigJhybWFpbC1zdW1tYXJ5LWdvdG8tbXNn4oCZKS4g IFdpdGgKICAgICBhcmd1bWVudCBOLCBzZWxlY3QgbWVzc2FnZSBudW1iZXIgTiBhbmQgbW92ZSB0 byBpdHMgbGluZSBpbiB0aGUKICAgICBzdW1tYXJ5IGJ1ZmZlcjsgdGhpcyBzaWduYWxzIGFuIGVy cm9yIGlmIHRoZSBtZXNzYWdlIGlzIG5vdCBsaXN0ZWQKICAgICBpbiB0aGUgc3VtbWFyeSBidWZm ZXIuCuKAmE0tcyBQQVRURVJOIDxSRVQ+4oCZCiAgICAgU2VhcmNoIHRocm91Z2ggbWVzc2FnZXMg Zm9yIFBBVFRFUk4gc3RhcnRpbmcgd2l0aCB0aGUgY3VycmVudAogICAgIG1lc3NhZ2U7IHNlbGVj dCB0aGUgbWVzc2FnZSBmb3VuZCwgYW5kIG1vdmUgcG9pbnQgaW4gdGhlIHN1bW1hcnkKICAgICBi dWZmZXIgdG8gdGhhdCBtZXNzYWdl4oCZcyBsaW5lICjigJhybWFpbC1zdW1tYXJ5LXNlYXJjaOKA mSkuICBBIHByZWZpeAogICAgIGFyZ3VtZW50IGFjdHMgYXMgYSByZXBlYXQgY291bnQ7IGEgbmVn YXRpdmUgYXJndW1lbnQgbWVhbnMgc2VhcmNoCiAgICAgYmFja3dhcmQgKGVxdWl2YWxlbnQgdG8g 4oCYcm1haWwtc3VtbWFyeS1zZWFyY2gtYmFja3dhcmTigJkuKQrigJhDLU0tbiBMQUJFTFMgPFJF VD7igJkKICAgICBNb3ZlIHRvIHRoZSBuZXh0IG1lc3NhZ2Ugd2l0aCBhdCBsZWFzdCBvbmUgb2Yg dGhlIHNwZWNpZmllZCBsYWJlbHMKICAgICAo4oCYcm1haWwtc3VtbWFyeS1uZXh0LWxhYmVsZWQt bWVzc2FnZeKAmSkuICBMQUJFTFMgaXMgYQogICAgIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGxh YmVscy4gIEEgcHJlZml4IGFyZ3VtZW50IGFjdHMgYXMgYSByZXBlYXQKICAgICBjb3VudC4K4oCY Qy1NLXAgTEFCRUxTIDxSRVQ+4oCZCiAgICAgTW92ZSB0byB0aGUgcHJldmlvdXMgbWVzc2FnZSB3 aXRoIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3BlY2lmaWVkCiAgICAgbGFiZWxzICjigJhybWFpbC1z dW1tYXJ5LXByZXZpb3VzLWxhYmVsZWQtbWVzc2FnZeKAmSkuCuKAmEMtYyBDLW4gPFJFVD7igJkK ICAgICBNb3ZlIHRvIHRoZSBuZXh0IG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBzdWJqZWN0IGFzIHRo ZSBjdXJyZW50CiAgICAgbWVzc2FnZSAo4oCYcm1haWwtc3VtbWFyeS1uZXh0LXNhbWUtc3ViamVj dOKAmSkuICBBIHByZWZpeCBhcmd1bWVudAogICAgIGFjdHMgYXMgYSByZXBlYXQgY291bnQuCuKA mEMtYyBDLXAgPFJFVD7igJkKICAgICBNb3ZlIHRvIHRoZSBwcmV2aW91cyBtZXNzYWdlIHdpdGgg dGhlIHNhbWUgc3ViamVjdCBhcyB0aGUgY3VycmVudAogICAgIG1lc3NhZ2UgKOKAmHJtYWlsLXN1 bW1hcnktcHJldmlvdXMtc2FtZS1zdWJqZWN04oCZKS4KCiAgIERlbGV0aW9uLCB1bmRlbGV0aW9u LCBhbmQgZ2V0dGluZyBuZXcgbWFpbCwgYW5kIGV2ZW4gc2VsZWN0aW9uIG9mIGEKZGlmZmVyZW50 IG1lc3NhZ2UgYWxsIHVwZGF0ZSB0aGUgc3VtbWFyeSBidWZmZXIgd2hlbiB5b3UgZG8gdGhlbSBp biB0aGUKUm1haWwgYnVmZmVyLiAgSWYgdGhlIHZhcmlhYmxlIOKAmHJtYWlsLXJlZGlzcGxheS1z dW1tYXJ54oCZIGlzIG5vbi3igJhuaWzigJksCnRoZXNlIGFjdGlvbnMgYWxzbyBicmluZyB0aGUg c3VtbWFyeSBidWZmZXIgYmFjayBvbnRvIHRoZSBzY3JlZW4uCgogICBXaGVuIHlvdSBhcmUgZmlu aXNoZWQgdXNpbmcgdGhlIHN1bW1hcnksIHR5cGUg4oCYUeKAmQoo4oCYcm1haWwtc3VtbWFyeS13 aXBl4oCZKSB0byBkZWxldGUgdGhlIHN1bW1hcnkgYnVmZmVy4oCZcyB3aW5kb3cuICBZb3UgY2Fu CmFsc28gZXhpdCBSbWFpbCB3aGlsZSBpbiB0aGUgc3VtbWFyeTog4oCYceKAmSAo4oCYcm1haWwt c3VtbWFyeS1xdWl04oCZKSBkZWxldGVzCnRoZSBzdW1tYXJ5IHdpbmRvdywgdGhlbiBleGl0cyBm cm9tIFJtYWlsIGJ5IHNhdmluZyB0aGUgUm1haWwgZmlsZSBhbmQKc3dpdGNoaW5nIHRvIGFub3Ro ZXIgYnVmZmVyLiAgQWx0ZXJuYXRpdmVseSwg4oCYYuKAmSAo4oCYcm1haWwtc3VtbWFyeS1idXJ5 4oCZKQpzaW1wbHkgYnVyaWVzIHRoZSBSbWFpbCBzdW1tYXJ5IGFuZCBidWZmZXIuCgoKKiogMzMu MTIgU29ydGluZyB0aGUgUm1haWwgRmlsZQoK4oCYQy1jIEMtcyBDLWTigJkK4oCYTS14IHJtYWls LXNvcnQtYnktZGF0ZeKAmQogICAgIFNvcnQgbWVzc2FnZXMgb2YgY3VycmVudCBSbWFpbCBidWZm ZXIgYnkgZGF0ZS4KCuKAmEMtYyBDLXMgQy1z4oCZCuKAmE0teCBybWFpbC1zb3J0LWJ5LXN1Ympl Y3TigJkKICAgICBTb3J0IG1lc3NhZ2VzIG9mIGN1cnJlbnQgUm1haWwgYnVmZmVyIGJ5IHN1Ympl Y3QuCgrigJhDLWMgQy1zIEMtYeKAmQrigJhNLXggcm1haWwtc29ydC1ieS1hdXRob3LigJkKICAg ICBTb3J0IG1lc3NhZ2VzIG9mIGN1cnJlbnQgUm1haWwgYnVmZmVyIGJ5IGF1dGhvcuKAmXMgbmFt ZS4KCuKAmEMtYyBDLXMgQy1y4oCZCuKAmE0teCBybWFpbC1zb3J0LWJ5LXJlY2lwaWVudOKAmQog ICAgIFNvcnQgbWVzc2FnZXMgb2YgY3VycmVudCBSbWFpbCBidWZmZXIgYnkgcmVjaXBpZW504oCZ cyBuYW1lLgoK4oCYQy1jIEMtcyBDLWPigJkK4oCYTS14IHJtYWlsLXNvcnQtYnktY29ycmVzcG9u ZGVudOKAmQogICAgIFNvcnQgbWVzc2FnZXMgb2YgY3VycmVudCBSbWFpbCBidWZmZXIgYnkgdGhl IG5hbWUgb2YgdGhlIG90aGVyCiAgICAgY29ycmVzcG9uZGVudC4KCuKAmEMtYyBDLXMgQy1s4oCZ CuKAmE0teCBybWFpbC1zb3J0LWJ5LWxpbmVz4oCZCiAgICAgU29ydCBtZXNzYWdlcyBvZiBjdXJy ZW50IFJtYWlsIGJ1ZmZlciBieSBudW1iZXIgb2YgbGluZXMuCgrigJhDLWMgQy1zIEMtayA8UkVU PiBMQUJFTFMgPFJFVD7igJkK4oCYTS14IHJtYWlsLXNvcnQtYnktbGFiZWxzIDxSRVQ+IExBQkVM UyA8UkVUPuKAmQogICAgIFNvcnQgbWVzc2FnZXMgb2YgY3VycmVudCBSbWFpbCBidWZmZXIgYnkg bGFiZWxzLiAgVGhlIGFyZ3VtZW50CiAgICAgTEFCRUxTIHNob3VsZCBiZSBhIGNvbW1hLXNlcGFy YXRlZCBsaXN0IG9mIGxhYmVscy4gIFRoZSBvcmRlciBvZgogICAgIHRoZXNlIGxhYmVscyBzcGVj aWZpZXMgdGhlIG9yZGVyIG9mIG1lc3NhZ2VzOyBtZXNzYWdlcyB3aXRoIHRoZQogICAgIGZpcnN0 IGxhYmVsIGNvbWUgZmlyc3QsIG1lc3NhZ2VzIHdpdGggdGhlIHNlY29uZCBsYWJlbCBjb21lIHNl Y29uZCwKICAgICBhbmQgc28gb24uICBNZXNzYWdlcyB0aGF0IGhhdmUgbm9uZSBvZiB0aGVzZSBs YWJlbHMgY29tZSBsYXN0LgoKICAgVGhlIFJtYWlsIHNvcnQgY29tbWFuZHMgcGVyZm9ybSBhIF9z dGFibGUgc29ydF86IGlmIHRoZXJlIGlzIG5vCnJlYXNvbiB0byBwcmVmZXIgZWl0aGVyIG9uZSBv ZiB0d28gbWVzc2FnZXMsIHRoZWlyIG9yZGVyIHJlbWFpbnMKdW5jaGFuZ2VkLiAgWW91IGNhbiB1 c2UgdGhpcyB0byBzb3J0IGJ5IG1vcmUgdGhhbiBvbmUgY3JpdGVyaW9uLiAgRm9yCmV4YW1wbGUs IGlmIHlvdSB1c2Ug4oCYcm1haWwtc29ydC1ieS1kYXRl4oCZIGFuZCB0aGVuCuKAmHJtYWlsLXNv cnQtYnktYXV0aG9y4oCZLCBtZXNzYWdlcyBmcm9tIHRoZSBzYW1lIGF1dGhvciBhcHBlYXIgaW4g b3JkZXIgYnkKZGF0ZS4KCiAgIFdpdGggYSBwcmVmaXggYXJndW1lbnQsIGFsbCB0aGVzZSBjb21t YW5kcyByZXZlcnNlIHRoZSBvcmRlciBvZgpjb21wYXJpc29uLiAgVGhpcyBtZWFucyB0aGV5IHNv cnQgbWVzc2FnZXMgZnJvbSBuZXdlc3QgdG8gb2xkZXN0LCBmcm9tCmJpZ2dlc3QgdG8gc21hbGxl c3QsIG9yIGluIHJldmVyc2UgYWxwaGFiZXRpY2FsIG9yZGVyLgoKICAgVGhlIHNhbWUga2V5cyBp biB0aGUgc3VtbWFyeSBidWZmZXIgcnVuIHNpbWlsYXIgZnVuY3Rpb25zOyBmb3IKZXhhbXBsZSwg 4oCYQy1jIEMtcyBDLWzigJkgcnVucyDigJhybWFpbC1zdW1tYXJ5LXNvcnQtYnktbGluZXPigJku ICBUaGVzZQpjb21tYW5kcyBhbHdheXMgc29ydCB0aGUgd2hvbGUgUm1haWwgYnVmZmVyLCBldmVu IGlmIHRoZSBzdW1tYXJ5IGlzIG9ubHkKc2hvd2luZyBhIHN1YnNldCBvZiBtZXNzYWdlcy4KCiAg IE5vdGUgdGhhdCB5b3UgY2Fubm90IHVuZG8gYSBzb3J0LCBzbyB5b3UgbWF5IHdpc2ggdG8gc2F2 ZSB0aGUgUm1haWwKYnVmZmVyIGJlZm9yZSBzb3J0aW5nIGl0LgoKCioqIDMzLjEzIERpc3BsYXkg b2YgTWVzc2FnZXMKClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgaG93IFJtYWlsIGRpc3BsYXlzIG1h aWwgaGVhZGVycywgTUlNRSBzZWN0aW9ucwphbmQgYXR0YWNobWVudHMsIFVSTHMsIGFuZCBlbmNy eXB0ZWQgbWVzc2FnZXMuCgrigJh04oCZCiAgICAgVG9nZ2xlIGRpc3BsYXkgb2YgY29tcGxldGUg aGVhZGVyICjigJhybWFpbC10b2dnbGUtaGVhZGVy4oCZKS4KCiAgIEJlZm9yZSBkaXNwbGF5aW5n IGVhY2ggbWVzc2FnZSBmb3IgdGhlIGZpcnN0IHRpbWUsIFJtYWlsIHJlZm9ybWF0cwppdHMgaGVh ZGVyLCBoaWRpbmcgdW5pbnRlcmVzdGluZyBoZWFkZXIgZmllbGRzIHRvIHJlZHVjZSBjbHV0dGVy LiAgVGhlCuKAmHTigJkgKOKAmHJtYWlsLXRvZ2dsZS1oZWFkZXLigJkpIGNvbW1hbmQgdG9nZ2xl cyB0aGlzLCBzd2l0Y2hpbmcgYmV0d2VlbgpzaG93aW5nIHRoZSByZWZvcm1hdHRlZCBoZWFkZXIg ZmllbGRzIGFuZCBzaG93aW5nIHRoZSBjb21wbGV0ZSwgb3JpZ2luYWwKaGVhZGVyLiAgV2l0aCBh IHBvc2l0aXZlIHByZWZpeCBhcmd1bWVudCwgdGhlIGNvbW1hbmQgc2hvd3MgdGhlCnJlZm9ybWF0 dGVkIGhlYWRlcjsgd2l0aCBhIHplcm8gb3IgbmVnYXRpdmUgcHJlZml4IGFyZ3VtZW50LCBpdCBz aG93cwp0aGUgZnVsbCBoZWFkZXIuICBTZWxlY3RpbmcgdGhlIG1lc3NhZ2UgYWdhaW4gYWxzbyBy ZWZvcm1hdHMgaXQgaWYKbmVjZXNzYXJ5LgoKICAgVGhlIHZhcmlhYmxlIOKAmHJtYWlsLWlnbm9y ZWQtaGVhZGVyc+KAmSBob2xkcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbgpzcGVjaWZ5aW5nIHRoZSBo ZWFkZXIgZmllbGRzIHRvIGhpZGU7IGFueSBtYXRjaGluZyBoZWFkZXIgbGluZSB3aWxsIGJlCmhp ZGRlbi4gIFRoZSB2YXJpYWJsZSDigJhybWFpbC1ub25pZ25vcmVkLWhlYWRlcnPigJkgb3ZlcnJp ZGVzIHRoaXM6IGFueQpoZWFkZXIgZmllbGQgbWF0Y2hpbmcgdGhhdCByZWd1bGFyIGV4cHJlc3Np b24gaXMgc2hvd24gZXZlbiBpZiBpdAptYXRjaGVzIOKAmHJtYWlsLWlnbm9yZWQtaGVhZGVyc+KA mSB0b28uICBUaGUgdmFyaWFibGUK4oCYcm1haWwtZGlzcGxheWVkLWhlYWRlcnPigJkgaXMgYW4g YWx0ZXJuYXRpdmUgdG8gdGhlc2UgdHdvIHZhcmlhYmxlczsgaWYKbm9uLeKAmG5pbOKAmSwgdGhp cyBzaG91bGQgYmUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3BlY2lmeWluZyB3aGljaCBoZWFkZXJz CnRvIGRpc3BsYXkgKHRoZSBkZWZhdWx0IGlzIOKAmG5pbOKAmSkuCgogICBSbWFpbCBoaWdobGln aHRzIGNlcnRhaW4gaGVhZGVyIGZpZWxkcyB0aGF0IGFyZSBlc3BlY2lhbGx5CmludGVyZXN0aW5n 4oCUYnkgZGVmYXVsdCwgdGhlIOKAmEZyb23igJkgYW5kIOKAmFN1YmplY3TigJkgZmllbGRzLiAg VGhpcwpoaWdobGlnaHRpbmcgdXNlcyB0aGUg4oCYcm1haWwtaGlnaGxpZ2h04oCZIGZhY2UuICBU aGUgdmFyaWFibGUK4oCYcm1haWwtaGlnaGxpZ2h0ZWQtaGVhZGVyc+KAmSBob2xkcyBhIHJlZ3Vs YXIgZXhwcmVzc2lvbiBzcGVjaWZ5aW5nIHRoZQpoZWFkZXIgZmllbGRzIHRvIGhpZ2hsaWdodDsg aWYgaXQgbWF0Y2hlcyB0aGUgYmVnaW5uaW5nIG9mIGEgaGVhZGVyCmZpZWxkLCB0aGF0IHdob2xl IGZpZWxkIGlzIGhpZ2hsaWdodGVkLiAgVG8gZGlzYWJsZSB0aGlzIGZlYXR1cmUsIHNldArigJhy bWFpbC1oaWdobGlnaHRlZC1oZWFkZXJz4oCZIHRvIOKAmG5pbOKAmS4KCiAgIElmIGEgbWVzc2Fn ZSBpcyBpbiBNSU1FIChNdWx0aXB1cnBvc2UgSW50ZXJuZXQgTWFpbCBFeHRlbnNpb25zKQpmb3Jt YXQgYW5kIGNvbnRhaW5zIG11bHRpcGxlIHBhcnRzIChNSU1FIGVudGl0aWVzKSwgUm1haWwgZGlz cGxheXMgZWFjaApwYXJ0IHdpdGggYSAidGFnbGluZSIuICBUaGUgdGFnbGluZSBzdW1tYXJpemVz IHRoZSBwYXJ04oCZcyBpbmRleCwgc2l6ZSwKYW5kIGNvbnRlbnQgdHlwZS4gIERlcGVuZGluZyBv biB0aGUgY29udGVudCB0eXBlLCBpdCBtYXkgYWxzbyBjb250YWluCm9uZSBvciBtb3JlIGJ1dHRv bnM7IHRoZXNlIHBlcmZvcm0gYWN0aW9ucyBzdWNoIGFzIHNhdmluZyB0aGUgcGFydCBpbnRvCmEg ZmlsZS4KCuKAmDxSRVQ+4oCZCiAgICAgSGlkZSBvciBzaG93IHRoZSBNSU1FIHBhcnQgYXQgcG9p bnQgKOKAmHJtYWlsLW1pbWUtdG9nZ2xlLWhpZGRlbuKAmSkuCgrigJg8VEFCPuKAmQogICAgIE1v dmUgcG9pbnQgdG8gdGhlIG5leHQgTUlNRSB0YWdsaW5lIGJ1dHRvbi4KICAgICAo4oCYcm1haWwt bWltZS1uZXh0LWl0ZW3igJkpLgoK4oCYUy08VEFCPuKAmQogICAgIE1vdmUgcG9pbnQgdG8gdGhl IHByZXZpb3VzIE1JTUUgcGFydCAo4oCYcm1haWwtbWltZS1wcmV2aW91cy1pdGVt4oCZKS4KCuKA mHbigJkKICAgICBUb2dnbGUgYmV0d2VlbiBNSU1FIGRpc3BsYXkgYW5kIHJhdyBtZXNzYWdlICji gJhybWFpbC1taW1l4oCZKS4KCiAgIEVhY2ggcGxhaW4tdGV4dCBNSU1FIHBhcnQgaXMgaW5pdGlh bGx5IGRpc3BsYXllZCBpbW1lZGlhdGVseSBhZnRlcgppdHMgdGFnbGluZSwgYXMgcGFydCBvZiB0 aGUgUm1haWwgYnVmZmVyICh1bmxlc3MgdGhlIG1lc3NhZ2UgaGFzIGFuIEhUTUwKcGFydCwgc2Vl IGJlbG93KSwgd2hpbGUgTUlNRSBwYXJ0cyBvZiBvdGhlciB0eXBlcyBhcmUgcmVwcmVzZW50ZWQg b25seQpieSB0aGVpciB0YWdsaW5lcywgd2l0aCB0aGVpciBhY3R1YWwgY29udGVudHMgaGlkZGVu LiAgSW4gZWl0aGVyIGNhc2UsCnlvdSBjYW4gdG9nZ2xlIGEgTUlNRSBwYXJ0IGJldHdlZW4gaXRz IGRpc3BsYXllZCBhbmQgaGlkZGVuIHN0YXRlcyBieQp0eXBpbmcgPFJFVD4gYW55d2hlcmUgaW4g dGhlIHBhcnTigJRvciBhbnl3aGVyZSBpbiBpdHMgdGFnbGluZSAoZXhjZXB0IGZvcgpidXR0b25z IGZvciBvdGhlciBhY3Rpb25zLCBpZiB0aGVyZSBhcmUgYW55KS4gIFR5cGUgPFJFVD4gKG9yIGNs aWNrIHdpdGgKdGhlIG1vdXNlKSB0byBhY3RpdmF0ZSBhIHRhZ2xpbmUgYnV0dG9uLCBhbmQgPFRB Qj4gdG8gY3ljbGUgcG9pbnQKYmV0d2VlbiB0YWdsaW5lIGJ1dHRvbnMuCgogICBUaGUg4oCYduKA mSAo4oCYcm1haWwtbWltZeKAmSkgY29tbWFuZCB0b2dnbGVzIGJldHdlZW4gdGhlIGRlZmF1bHQg TUlNRQpkaXNwbGF5IGRlc2NyaWJlZCBhYm92ZSwgYW5kIGEgcmF3IGRpc3BsYXkgc2hvd2luZyB0 aGUgdW5kZWNvZGVkIE1JTUUKZGF0YS4gIFdpdGggYSBwcmVmaXggYXJndW1lbnQsIHRoaXMgY29t bWFuZCB0b2dnbGVzIHRoZSBkaXNwbGF5IG9mIG9ubHkKYW4gZW50aXR5IGF0IHBvaW50LgoKICAg SWYgdGhlIG1lc3NhZ2UgaGFzIGFuIEhUTUwgTUlNRSBwYXJ0LCBSbWFpbCBkaXNwbGF5cyBpdCBp biBwcmVmZXJlbmNlCnRvIHRoZSBwbGFpbi10ZXh0IHBhcnQsIGlmIEVtYWNzIGNhbiByZW5kZXIg SFRNTCgxKS4gIFRvIHByZXZlbnQgdGhhdCwKYW5kIGhhdmUgdGhlIHBsYWluLXRleHQgcGFydCBk aXNwbGF5ZWQgaW5zdGVhZCwgY3VzdG9taXplIHRoZSB2YXJpYWJsZQrigJhybWFpbC1taW1lLXBy ZWZlci1odG1s4oCZIHRvIGEg4oCYbmls4oCZIHZhbHVlLgoKICAgVG8gcHJldmVudCBSbWFpbCBm cm9tIGhhbmRsaW5nIE1JTUUgZGVjb2RlZCBtZXNzYWdlcywgY2hhbmdlIHRoZQp2YXJpYWJsZSDi gJhybWFpbC1lbmFibGUtbWltZeKAmSB0byDigJhuaWzigJkuICBXaGVuIHRoaXMgaXMgdGhlIGNh c2UsIHRoZSDigJh24oCZCijigJhybWFpbC1taW1l4oCZKSBjb21tYW5kIGluc3RlYWQgY3JlYXRl cyBhIHRlbXBvcmFyeSBidWZmZXIgdG8gZGlzcGxheSB0aGUKY3VycmVudCBNSU1FIG1lc3NhZ2Uu CgogICBJZiB0aGUgY3VycmVudCBtZXNzYWdlIGlzIGFuIGVuY3J5cHRlZCBvbmUsIHVzZSB0aGUg Y29tbWFuZCDigJhNLXgKcm1haWwtZXBhLWRlY3J5cHTigJkgdG8gZGVjcnlwdCBpdCwgdXNpbmcg dGhlIEVhc3lQRyBsaWJyYXJ5ICgqbm90ZQpFYXN5UEc6IChlcGEpVG9wLikuCgogICBZb3UgY2Fu IGhpZ2hsaWdodCBhbmQgYWN0aXZhdGUgVVJMcyBpbiB0aGUgUm1haWwgYnVmZmVyIHVzaW5nIEdv dG8KQWRkcmVzcyBtb2RlOgoKICAgICAoYWRkLWhvb2sgJ3JtYWlsLXNob3ctbWVzc2FnZS1ob29r ICdnb3RvLWFkZHJlc3MtbW9kZSkKClRoZW4geW91IGNhbiBicm93c2UgdGhlc2UgVVJMcyBieSBj bGlja2luZyBvbiB0aGVtIHdpdGgg4oCYbW91c2UtMuKAmSAob3IK4oCYbW91c2UtMeKAmSBxdWlj a2x5KSBvciBieSBtb3ZpbmcgdG8gb25lIGFuZCB0eXBpbmcg4oCYQy1jIDxSRVQ+4oCZLiAgKk5v dGUKQWN0aXZhdGluZyBVUkxzOiBHb3RvIEFkZHJlc3MgbW9kZS4KCiAgIC0tLS0tLS0tLS0gRm9v dG5vdGVzIC0tLS0tLS0tLS0KCiAgICgxKSBUaGlzIGNhcGFiaWxpdHkgcmVxdWlyZXMgdGhhdCBF bWFjcyBiZSBidWlsdCB3aXRoIOKAmGxpYnhtbDLigJkKc3VwcG9ydCBvciB0aGF0IHlvdSBoYXZl IHRoZSBMeW54IGJyb3dzZXIgaW5zdGFsbGVkLgoKCioqIDMzLjE0IFJtYWlsIGFuZCBDb2Rpbmcg U3lzdGVtcwoKUm1haWwgYXV0b21hdGljYWxseSBkZWNvZGVzIG1lc3NhZ2VzIHdoaWNoIGNvbnRh aW4gbm9uLUFTQ0lJIGNoYXJhY3RlcnMsCmp1c3QgYXMgRW1hY3MgZG9lcyB3aXRoIGZpbGVzIHlv dSB2aXNpdCBhbmQgd2l0aCBzdWJwcm9jZXNzIG91dHB1dC4KUm1haWwgdXNlcyB0aGUgc3RhbmRh cmQg4oCYY2hhcnNldD1DSEFSU0VU4oCZIGhlYWRlciBpbiB0aGUgbWVzc2FnZSwgaWYgYW55LAp0 byBkZXRlcm1pbmUgaG93IHRoZSBtZXNzYWdlIHdhcyBlbmNvZGVkIGJ5IHRoZSBzZW5kZXIuICBJ dCBtYXBzIENIQVJTRVQKaW50byB0aGUgY29ycmVzcG9uZGluZyBFbWFjcyBjb2Rpbmcgc3lzdGVt ICgqbm90ZSBDb2RpbmcgU3lzdGVtczo6KSwgYW5kCnVzZXMgdGhhdCBjb2Rpbmcgc3lzdGVtIHRv IGRlY29kZSBtZXNzYWdlIHRleHQuICBJZiB0aGUgbWVzc2FnZSBoZWFkZXIKZG9lc27igJl0IGhh dmUgdGhlIOKAmGNoYXJzZXTigJkgc3BlY2lmaWNhdGlvbiwgb3IgaWYgQ0hBUlNFVCBpcyBub3QK cmVjb2duaXplZCwgUm1haWwgY2hvb3NlcyB0aGUgY29kaW5nIHN5c3RlbSB3aXRoIHRoZSB1c3Vh bCBFbWFjcwpoZXVyaXN0aWNzIGFuZCBkZWZhdWx0cyAoKm5vdGUgUmVjb2duaXplIENvZGluZzo6 KS4KCiAgIE9jY2FzaW9uYWxseSwgYSBtZXNzYWdlIGlzIGRlY29kZWQgaW5jb3JyZWN0bHksIGVp dGhlciBiZWNhdXNlIEVtYWNzCmd1ZXNzZWQgdGhlIHdyb25nIGNvZGluZyBzeXN0ZW0gaW4gdGhl IGFic2VuY2Ugb2YgdGhlIOKAmGNoYXJzZXTigJkKc3BlY2lmaWNhdGlvbiwgb3IgYmVjYXVzZSB0 aGUgc3BlY2lmaWNhdGlvbiB3YXMgaW5hY2N1cmF0ZS4gIEZvcgpleGFtcGxlLCBhIG1pc2NvbmZp Z3VyZWQgbWFpbGVyIGNvdWxkIHNlbmQgYSBtZXNzYWdlIHdpdGggYQrigJhjaGFyc2V0PWlzby04 ODU5LTHigJkgaGVhZGVyIHdoZW4gdGhlIG1lc3NhZ2UgaXMgYWN0dWFsbHkgZW5jb2RlZCBpbgri gJhrb2k4LXLigJkuICBXaGVuIHlvdSBzZWUgdGhlIG1lc3NhZ2UgdGV4dCBnYXJibGVkLCBvciBz b21lIG9mIGl0cwpjaGFyYWN0ZXJzIGRpc3BsYXllZCBhcyBoZXggY29kZXMgb3IgZW1wdHkgYm94 ZXMsIHRoaXMgbWF5IGhhdmUKaGFwcGVuZWQuCgogICBZb3UgY2FuIGNvcnJlY3QgdGhlIHByb2Js ZW0gYnkgZGVjb2RpbmcgdGhlIG1lc3NhZ2UgYWdhaW4gdXNpbmcgdGhlCnJpZ2h0IGNvZGluZyBz eXN0ZW0sIGlmIHlvdSBjYW4gZmlndXJlIG91dCBvciBndWVzcyB3aGljaCBvbmUgaXMgcmlnaHQu ClRvIGRvIHRoaXMsIGludm9rZSB0aGUg4oCYTS14IHJtYWlsLXJlZGVjb2RlLWJvZHnigJkgY29t bWFuZC4gIEl0IHJlYWRzIHRoZQpuYW1lIG9mIGEgY29kaW5nIHN5c3RlbSwgYW5kIHRoZW4gcmVk ZWNvZGVzIHRoZSBtZXNzYWdlIHVzaW5nIHRoZSBjb2RpbmcKc3lzdGVtIHlvdSBzcGVjaWZpZWQu ICBJZiB5b3Ugc3BlY2lmaWVkIHRoZSByaWdodCBjb2Rpbmcgc3lzdGVtLCB0aGUKcmVzdWx0IHNo b3VsZCBiZSByZWFkYWJsZS4KCiAgIFdoZW4geW91IGdldCBuZXcgbWFpbCBpbiBSbWFpbCwgZWFj aCBtZXNzYWdlIGlzIHRyYW5zbGF0ZWQKYXV0b21hdGljYWxseSBmcm9tIHRoZSBjb2Rpbmcgc3lz dGVtIGl0IGlzIHdyaXR0ZW4gaW4sIGFzIGlmIGl0IHdlcmUgYQpzZXBhcmF0ZSBmaWxlLiAgVGhp cyB1c2VzIHRoZSBwcmlvcml0eSBsaXN0IG9mIGNvZGluZyBzeXN0ZW1zIHRoYXQgeW91CmhhdmUg c3BlY2lmaWVkLiAgSWYgYSBNSU1FIG1lc3NhZ2Ugc3BlY2lmaWVzIGEgY2hhcmFjdGVyIHNldCwg Um1haWwKb2JleXMgdGhhdCBzcGVjaWZpY2F0aW9uLiAgRm9yIHJlYWRpbmcgYW5kIHNhdmluZyBS bWFpbCBmaWxlcwp0aGVtc2VsdmVzLCBFbWFjcyB1c2VzIHRoZSBjb2Rpbmcgc3lzdGVtIHNwZWNp ZmllZCBieSB0aGUgdmFyaWFibGUK4oCYcm1haWwtZmlsZS1jb2Rpbmctc3lzdGVt4oCZLiAgVGhl IGRlZmF1bHQgdmFsdWUgaXMg4oCYbmls4oCZLCB3aGljaCBtZWFucwp0aGF0IFJtYWlsIGZpbGVz IGFyZSBub3QgdHJhbnNsYXRlZCAodGhleSBhcmUgcmVhZCBhbmQgd3JpdHRlbiBpbiB0aGUKRW1h Y3MgaW50ZXJuYWwgY2hhcmFjdGVyIGNvZGUpLgoKCioqIDMzLjE1IEVkaXRpbmcgV2l0aGluIGEg TWVzc2FnZQoKTW9zdCBvZiB0aGUgdXN1YWwgRW1hY3Mga2V5IGJpbmRpbmdzIGFyZSBhdmFpbGFi bGUgaW4gUm1haWwgbW9kZSwgdGhvdWdoCmEgZmV3LCBzdWNoIGFzIOKAmEMtTS1u4oCZIGFuZCDi gJhDLU0taOKAmSwgYXJlIHJlZGVmaW5lZCBieSBSbWFpbCBmb3Igb3RoZXIKcHVycG9zZXMuICBI b3dldmVyLCB0aGUgUm1haWwgYnVmZmVyIGlzIG5vcm1hbGx5IHJlYWQgb25seSwgYW5kIG1vc3Qg b2YKdGhlIGxldHRlcnMgYXJlIHJlZGVmaW5lZCBhcyBSbWFpbCBjb21tYW5kcy4gIElmIHlvdSB3 YW50IHRvIGVkaXQgdGhlCnRleHQgb2YgYSBtZXNzYWdlLCB5b3UgbXVzdCB1c2UgdGhlIFJtYWls IGNvbW1hbmQg4oCYZeKAmS4KCuKAmGXigJkKICAgICBFZGl0IHRoZSBjdXJyZW50IG1lc3NhZ2Ug YXMgb3JkaW5hcnkgdGV4dC4KCiAgIFRoZSDigJhl4oCZIGNvbW1hbmQgKOKAmHJtYWlsLWVkaXQt Y3VycmVudC1tZXNzYWdl4oCZKSBzd2l0Y2hlcyBmcm9tIFJtYWlsCm1vZGUgaW50byBSbWFpbCBF ZGl0IG1vZGUsIGFub3RoZXIgbWFqb3IgbW9kZSB3aGljaCBpcyBuZWFybHkgdGhlIHNhbWUKYXMg VGV4dCBtb2RlLiAgVGhlIG1vZGUgbGluZSBpbmRpY2F0ZXMgdGhpcyBjaGFuZ2UuCgogICBJbiBS bWFpbCBFZGl0IG1vZGUsIGxldHRlcnMgaW5zZXJ0IHRoZW1zZWx2ZXMgYXMgdXN1YWwgYW5kIHRo ZSBSbWFpbApjb21tYW5kcyBhcmUgbm90IGF2YWlsYWJsZS4gIFlvdSBjYW4gZWRpdCB0aGUgbWVz c2FnZSBib2R5IGFuZCBoZWFkZXIKZmllbGRzLiAgV2hlbiB5b3UgYXJlIGZpbmlzaGVkIGVkaXRp bmcgdGhlIG1lc3NhZ2UsIHR5cGUg4oCYQy1jIEMtY+KAmQoo4oCYcm1haWwtY2Vhc2UtZWRpdOKA mSkgdG8gc3dpdGNoIGJhY2sgdG8gUm1haWwgbW9kZS4gIEFsdGVybmF0aXZlbHksIHlvdQpjYW4g cmV0dXJuIHRvIFJtYWlsIG1vZGUgYnV0IGNhbmNlbCBhbnkgZWRpdGluZyB0aGF0IHlvdSBoYXZl IGRvbmUsIGJ5CnR5cGluZyDigJhDLWMgQy1d4oCZICjigJhybWFpbC1hYm9ydC1lZGl04oCZKS4K CiAgIEVudGVyaW5nIFJtYWlsIEVkaXQgbW9kZSBydW5zIHRoZSBob29rIOKAmHRleHQtbW9kZS1o b29r4oCZOyB0aGVuIGl0IHJ1bnMKdGhlIGhvb2sg4oCYcm1haWwtZWRpdC1tb2RlLWhvb2vigJkg KCpub3RlIEhvb2tzOjopLiAgUmV0dXJuaW5nIHRvIG9yZGluYXJ5ClJtYWlsIG1vZGUgYWRkcyB0 aGUgYXR0cmlidXRlIOKAmGVkaXRlZOKAmSB0byB0aGUgbWVzc2FnZSwgaWYgeW91IGhhdmUgbWFk ZQphbnkgY2hhbmdlcyBpbiBpdCAoKm5vdGUgUm1haWwgQXR0cmlidXRlczo6KS4KCgoqKiAzMy4x NiBEaWdlc3QgTWVzc2FnZXMKCkEgImRpZ2VzdCBtZXNzYWdlIiBpcyBhIG1lc3NhZ2Ugd2hpY2gg ZXhpc3RzIHRvIGNvbnRhaW4gYW5kIGNhcnJ5CnNldmVyYWwgb3RoZXIgbWVzc2FnZXMuICBEaWdl c3RzIGFyZSB1c2VkIG9uIHNvbWUgbWFpbGluZyBsaXN0czsgYWxsIHRoZQptZXNzYWdlcyB0aGF0 IGFycml2ZSBmb3IgdGhlIGxpc3QgZHVyaW5nIGEgcGVyaW9kIG9mIHRpbWUgc3VjaCBhcyBvbmUK ZGF5IGFyZSBwdXQgaW5zaWRlIGEgc2luZ2xlIGRpZ2VzdCB3aGljaCBpcyB0aGVuIHNlbnQgdG8g dGhlCnN1YnNjcmliZXJzLiAgVHJhbnNtaXR0aW5nIHRoZSBzaW5nbGUgZGlnZXN0IHVzZXMgbGVz cyBjb21wdXRlciB0aW1lCnRoYW4gdHJhbnNtaXR0aW5nIHRoZSBpbmRpdmlkdWFsIG1lc3NhZ2Vz IGV2ZW4gdGhvdWdoIHRoZSB0b3RhbCBzaXplIGlzCnRoZSBzYW1lLCBiZWNhdXNlIG9mIHRoZSBw ZXItbWVzc2FnZSBvdmVyaGVhZCBpbiBuZXR3b3JrIG1haWwKdHJhbnNtaXNzaW9uLgoKICAgV2hl biB5b3UgcmVjZWl2ZSBhIGRpZ2VzdCBtZXNzYWdlLCB0aGUgbW9zdCBjb252ZW5pZW50IHdheSB0 byByZWFkIGl0CmlzIHRvICJ1bmRpZ2VzdGlmeSIgaXQ6IHRvIHR1cm4gaXQgYmFjayBpbnRvIG1h bnkgaW5kaXZpZHVhbCBtZXNzYWdlcy4KVGhlbiB5b3UgY2FuIHJlYWQgYW5kIGRlbGV0ZSB0aGUg aW5kaXZpZHVhbCBtZXNzYWdlcyBhcyBpdCBzdWl0cyB5b3UuClRvIGRvIHRoaXMsIHNlbGVjdCB0 aGUgZGlnZXN0IG1lc3NhZ2UgYW5kIHR5cGUgdGhlIGNvbW1hbmQg4oCYTS14CnVuZGlnZXN0aWZ5 LXJtYWlsLW1lc3NhZ2XigJkuICBUaGlzIGV4dHJhY3RzIHRoZSBzdWJtZXNzYWdlcyBhcyBzZXBh cmF0ZQpSbWFpbCBtZXNzYWdlcywgYW5kIGluc2VydHMgdGhlbSBmb2xsb3dpbmcgdGhlIGRpZ2Vz dC4gIFRoZSBkaWdlc3QKbWVzc2FnZSBpdHNlbGYgaXMgZmxhZ2dlZCBhcyBkZWxldGVkLgoKCioq IDMzLjE3IFJlYWRpbmcgUm90MTMgTWVzc2FnZXMKCk1haWxpbmcgbGlzdCBtZXNzYWdlcyB0aGF0 IG1pZ2h0IG9mZmVuZCBvciBhbm5veSBzb21lIHJlYWRlcnMgYXJlCnNvbWV0aW1lcyBlbmNvZGVk IGluIGEgc2ltcGxlIGNvZGUgY2FsbGVkICJyb3QxMyLigJRzbyBuYW1lZCBiZWNhdXNlIGl0CnJv dGF0ZXMgdGhlIGFscGhhYmV0IGJ5IDEzIGxldHRlcnMuICBUaGlzIGNvZGUgaXMgbm90IGZvciBz ZWNyZWN5LCBhcyBpdApwcm92aWRlcyBub25lOyByYXRoZXIsIGl0IGVuYWJsZXMgdGhvc2Ugd2hv IHdpc2ggdG8gYXZvaWQgc2VlaW5nIHRoZQpyZWFsIHRleHQgb2YgdGhlIG1lc3NhZ2UuICBGb3Ig ZXhhbXBsZSwgYSByZXZpZXcgb2YgYSBmaWxtIG1pZ2h0IHVzZQpyb3QxMyB0byBoaWRlIGltcG9y dGFudCBwbG90IHBvaW50cy4KCiAgIFRvIHZpZXcgYSBidWZmZXIgdGhhdCB1c2VzIHRoZSByb3Qx MyBjb2RlLCB1c2UgdGhlIGNvbW1hbmQg4oCYTS14CnJvdDEzLW90aGVyLXdpbmRvd+KAmS4gIFRo aXMgZGlzcGxheXMgdGhlIGN1cnJlbnQgYnVmZmVyIGluIGFub3RoZXIgd2luZG93CndoaWNoIGFw cGxpZXMgdGhlIGNvZGUgd2hlbiBkaXNwbGF5aW5nIHRoZSB0ZXh0LgoKCjMzLjE4IOKAmG1vdmVt YWls4oCZIHByb2dyYW0KClJtYWlsIHVzZXMgdGhlIOKAmG1vdmVtYWls4oCZIHByb2dyYW0gdG8g bW92ZSBtYWlsIGZyb20geW91ciBpbmJveCB0byB5b3VyClJtYWlsIGZpbGUgKCpub3RlIFJtYWls IEluYm94OjopLiAgV2hlbiBsb2FkZWQgZm9yIHRoZSBmaXJzdCB0aW1lLCBSbWFpbAphdHRlbXB0 cyB0byBsb2NhdGUgdGhlIOKAmG1vdmVtYWls4oCZIHByb2dyYW0gYW5kIGRldGVybWluZSBpdHMg dmVyc2lvbi4KVGhlcmUgYXJlIHR3byB2ZXJzaW9ucyBvZiB0aGUg4oCYbW92ZW1haWzigJkgcHJv Z3JhbTogdGhlIEdOVSBNYWlsdXRpbHMKdmVyc2lvbiAoKm5vdGUgKG1haWx1dGlscyltb3ZlbWFp bDo6KSwgYW5kIGFuIEVtYWNzLXNwZWNpZmljIHZlcnNpb24KdGhhdCBpcyBidWlsdCBhbmQgaW5z dGFsbGVkIHVubGVzcyBFbWFjcyB3YXMgY29uZmlndXJlZArigJgtLXdpdGgtbWFpbHV0aWxz4oCZ IGluIGVmZmVjdC4gIFRoZSB0d28g4oCYbW92ZW1haWzigJkgdmVyc2lvbnMgc3VwcG9ydCB0aGUK c2FtZSBjb21tYW5kIGxpbmUgc3ludGF4IGFuZCB0aGUgc2FtZSBiYXNpYyBzdWJzZXQgb2Ygb3B0 aW9ucy4gIEhvd2V2ZXIsCnRoZSBNYWlsdXRpbHMgdmVyc2lvbiBvZmZlcnMgYWRkaXRpb25hbCBm ZWF0dXJlcyBhbmQgaXMgbW9yZSBzZWN1cmUuCgogICBUaGUgRW1hY3MgdmVyc2lvbiBvZiDigJht b3ZlbWFpbOKAmSBjYW4gcmV0cmlldmUgbWFpbCBmcm9tIHRoZSB1c3VhbCBVbml4Cm1haWxib3gg Zm9ybWF0cy4gICpXYXJuaW5nKjogQWx0aG91Z2ggaXQgY2FuIGFsc28gdXNlIHRoZSBQT1AzIHBy b3RvY29sLAp0aGlzIGlzIG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBv cnQgUE9QMyB2aWEgZW5jcnlwdGVkClRMUyBjaGFubmVscy4KCiAgIFRoZSBNYWlsdXRpbHMgdmVy c2lvbiBpcyBhYmxlIHRvIGhhbmRsZSBhIHdpZGUgc2V0IG9mIG1haWxib3gKZm9ybWF0cywgc3Vj aCBhcyBwbGFpbiBVbml4IG1haWxib3hlcywg4oCYbWFpbGRpcuKAmSBhbmQg4oCYTUjigJkgbWFp bGJveGVzLApldGMuICBJdCBpcyBhYmxlIHRvIGFjY2VzcyByZW1vdGUgbWFpbGJveGVzIHVzaW5n IHRoZSBQT1AzIG9yIElNQVA0CnByb3RvY29sLCBhbmQgY2FuIHJldHJpZXZlIG1haWwgZnJvbSB0 aGVtIHVzaW5nIGEgVExTIGVuY3J5cHRlZCBjaGFubmVsLgpJdCBhbHNvIGFjY2VwdHMgbWFpbGJv eCBhcmd1bWVudHMgaW4gVVJMIGZvcm0uICBUaGUgZGV0YWlsZWQgZGVzY3JpcHRpb24Kb2YgbWFp bGJveCBVUkxzIGNhbiBiZSBmb3VuZCBpbiAqbm90ZSAobWFpbHV0aWxzKVVSTDo6LiAgSW4gc2hv cnQsIGEgVVJMCmlzOgoKICAgICBQUk9UTzovL1tVU0VSWzpQQVNTV09SRF1AXUhPU1QtT1ItRklM RS1OQU1FWzpQT1JUXQoKd2hlcmUgc3F1YXJlIGJyYWNrZXRzIGRlbm90ZSBvcHRpb25hbCBlbGVt ZW50cy4KClBST1RPCiAgICAgU3BlY2lmaWVzIHRoZSAibWFpbGJveCBwcm90b2NvbCIsIG9yICJm b3JtYXQiIHRvIHVzZS4gIFRoZSBleGFjdAogICAgIHNlbWFudGljcyBvZiB0aGUgcmVzdCBvZiBV UkwgZWxlbWVudHMgZGVwZW5kcyBvbiB0aGUgYWN0dWFsIHZhbHVlCiAgICAgb2YgUFJPVE8gKHNl ZSBiZWxvdykuCgpVU0VSCiAgICAgVXNlciBuYW1lIHRvIGFjY2VzcyB0aGUgcmVtb3RlIG1haWxi b3guCgpQQVNTV09SRAogICAgIFVzZXIgcGFzc3dvcmQgdG8gYWNjZXNzIHRoZSByZW1vdGUgbWFp bGJveC4KCkhPU1QtT1ItRklMRS1OQU1FCiAgICAgSG9zdG5hbWUgb2YgdGhlIHJlbW90ZSBzZXJ2 ZXIgZm9yIHJlbW90ZSBtYWlsYm94ZXMgb3IgZmlsZSBuYW1lIG9mCiAgICAgYSBsb2NhbCBtYWls Ym94LgoKUE9SVAogICAgIE9wdGlvbmFsIHBvcnQgbnVtYmVyLCBpZiBub3QgdGhlIGRlZmF1bHQg Zm9yIHRoYXQgcHJvdG9jb2wuCgpQUk9UTyBjYW4gYmUgb25lIG9mOgoK4oCYbWJveOKAmQogICAg IFVzdWFsIFVuaXggbWFpbGJveCBmb3JtYXQuICBJbiB0aGlzIGNhc2UsIFVTRVIsIFBBU1MgYW5k IFBPUlQgYXJlCiAgICAgbm90IHVzZWQsIGFuZCBIT1NULU9SLUZJTEUtTkFNRSBkZW5vdGVzIHRo ZSBmaWxlIG5hbWUgb2YgdGhlCiAgICAgbWFpbGJveCBmaWxlLCBlLmcuLCDigJhtYm94Oi8vL3Zh ci9zcG9vbC9tYWlsL3NtaXRo4oCZLgoK4oCYbWjigJkKICAgICBBIGxvY2FsIG1haWxib3ggaW4g dGhlIE1IIGZvcm1hdC4gIFVTRVIsIFBBU1MgYW5kIFBPUlQgYXJlIG5vdAogICAgIHVzZWQuICBI T1NULU9SLUZJTEUtTkFNRSBkZW5vdGVzIHRoZSBuYW1lIG9mIE1IIGZvbGRlciwgZS5nLiwKICAg ICDigJhtaDovLy9NYWlsL2luYm944oCZLgoK4oCYbWFpbGRpcuKAmQogICAgIEEgbG9jYWwgbWFp bGJveCBpbiB0aGUgbWFpbGRpciBmb3JtYXQuICBVU0VSLCBQQVNTIGFuZCBQT1JUIGFyZSBub3QK ICAgICB1c2VkLCBhbmQgSE9TVC1PUi1GSUxFLU5BTUUgZGVub3RlcyB0aGUgbmFtZSBvZiDigJht YWlsZGly4oCZIG1haWxib3gsCiAgICAgZS5nLiwg4oCYbWFpbGRpcjovLy9tYWlsL2luYm944oCZ LgoK4oCYZmlsZeKAmQogICAgIEFueSBsb2NhbCBmaWxlIGluIG1haWxib3ggZm9ybWF0LiAgSXRz IGFjdHVhbCBmb3JtYXQgaXMgZGV0ZWN0ZWQKICAgICBhdXRvbWF0aWNhbGx5IGJ5IOKAmG1vdmVt YWls4oCZLgoK4oCYcG9w4oCZCuKAmHBvcHPigJkKICAgICBBIHJlbW90ZSBtYWlsYm94IHRvIGJl IGFjY2Vzc2VkIHZpYSBQT1AzIHByb3RvY29sLiAgVVNFUiBzcGVjaWZpZXMKICAgICB0aGUgcmVt b3RlIHVzZXIgbmFtZSB0byB1c2UsIFBBU1MgbWF5IGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgdXNl cgogICAgIHBhc3N3b3JkLCBIT1NULU9SLUZJTEUtTkFNRSBpcyB0aGUgbmFtZSBvciBJUCBhZGRy ZXNzIG9mIHRoZSByZW1vdGUKICAgICBtYWlsIHNlcnZlciB0byBjb25uZWN0IHRvLCBhbmQgUE9S VCBpcyB0aGUgcG9ydCBudW1iZXI7IGUuZy4sCiAgICAg4oCYcG9wOi8vc21pdGg6Z3Vlc3NtZUBy ZW1vdGUuc2VydmVyLm5ldDo5OTXigJkuICBJZiB0aGUgc2VydmVyCiAgICAgc3VwcG9ydHMgaXQs IOKAmG1vdmVtYWls4oCZIHRyaWVzIHRvIHVzZSBhbiBlbmNyeXB0ZWQgY29ubmVjdGlvbuKAlHVz ZQogICAgIHRoZSDigJhwb3Bz4oCZIGZvcm0gdG8gcmVxdWlyZSBvbmUuCgrigJhpbWFw4oCZCuKA mGltYXBz4oCZCiAgICAgQSByZW1vdGUgbWFpbGJveCB0byBiZSBhY2Nlc3NlZCB2aWEgSU1BUDQg cHJvdG9jb2wuICBVU0VSIHNwZWNpZmllcwogICAgIHRoZSByZW1vdGUgdXNlciBuYW1lIHRvIHVz ZSwgUEFTUyBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSB1c2VyCiAgICAgcGFzc3dvcmQsIEhP U1QtT1ItRklMRS1OQU1FIGlzIHRoZSBuYW1lIG9yIElQIGFkZHJlc3Mgb2YgdGhlIHJlbW90ZQog ICAgIG1haWwgc2VydmVyIHRvIGNvbm5lY3QgdG8sIGFuZCBQT1JUIGlzIHRoZSBwb3J0IG51bWJl cjsgZS5nLiwKICAgICDigJhpbWFwOi8vc21pdGg6Z3Vlc3NtZUByZW1vdGUuc2VydmVyLm5ldDo5 OTPigJkuICBJZiB0aGUgc2VydmVyCiAgICAgc3VwcG9ydHMgaXQsIOKAmG1vdmVtYWls4oCZIHRy aWVzIHRvIHVzZSBhbiBlbmNyeXB0ZWQgY29ubmVjdGlvbuKAlHVzZQogICAgIHRoZSDigJhpbWFw c+KAmSBmb3JtIHRvIHJlcXVpcmUgb25lLgoKICAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzcGVj aWZ5IHRoZSBmaWxlIG5hbWUgb2YgdGhlIG1haWxib3ggdG8gdXNlLgpUaGlzIGlzIGVxdWl2YWxl bnQgdG8gc3BlY2lmeWluZyB0aGUg4oCYZmlsZeKAmSBwcm90b2NvbDoKCiAgICAgL3Zhci9zcG9v bC9tYWlsL1VTRVIg4omhIGZpbGU6Ly8vdmFyL3Nwb29sL21haWwvVVNFUgoKICAgVGhlIHZhcmlh YmxlIOKAmHJtYWlsLW1vdmVtYWlsLXByb2dyYW3igJkgY29udHJvbHMgd2hpY2ggdmVyc2lvbiBv ZgrigJhtb3ZlbWFpbOKAmSB0byB1c2UuICBJZiB0aGF0IGlzIGEgc3RyaW5nLCBpdCBzcGVjaWZp ZXMgdGhlIGFic29sdXRlIGZpbGUKbmFtZSBvZiB0aGUg4oCYbW92ZW1haWzigJkgZXhlY3V0YWJs ZS4gIElmIGl0IGlzIOKAmG5pbOKAmSwgUm1haWwgc2VhcmNoZXMgZm9yCuKAmG1vdmVtYWls4oCZ IGluIHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4g4oCYcm1haWwtbW92ZW1haWwtc2VhcmNoLXBh dGjigJksCnRoZW4gaW4g4oCYZXhlYy1wYXRo4oCZICgqbm90ZSBTaGVsbDo6KSwgdGhlbiBpbiDi gJhleGVjLWRpcmVjdG9yeeKAmS4KCgoqKiAzMy4xOSBSZXRyaWV2aW5nIE1haWwgZnJvbSBSZW1v dGUgTWFpbGJveGVzCgpTb21lIHNpdGVzIHVzZSBhIG1ldGhvZCBjYWxsZWQgUE9QMyBmb3IgYWNj ZXNzaW5nIHVzZXJz4oCZIGluYm94IGRhdGEKaW5zdGVhZCBvZiBzdG9yaW5nIHRoZSBkYXRhIGlu IGluYm94IGZpbGVzLiAgVGhlIE1haWx1dGlscyDigJhtb3ZlbWFpbOKAmSBieQpkZWZhdWx0IHN1 cHBvcnRzIFBPUDMgd2l0aCBUTFMgZW5jcnlwdGlvbi4gICpXYXJuaW5nOiogQWx0aG91Z2ggdGhl CuKAmEVtYWNzIG1vdmVtYWls4oCZIHN1cHBvcnRzIFBPUDMsIGl0cyB1c2UgZm9yIHRoaXMgaXMg bm90IHJlY29tbWVuZGVkCnNpbmNlIGl0IGRvZXMgbm90IHN1cHBvcnQgZW5jcnlwdGVkIGNvbm5l Y3Rpb25z4oCUdGhlIE1haWx1dGlscyB2ZXJzaW9uCmRvZXMuICBCb3RoIHZlcnNpb25zIG9mIOKA mG1vdmVtYWls4oCZIHdvcmsgb25seSB3aXRoIFBPUDMsIG5vdCB3aXRoIG9sZGVyCnZlcnNpb25z IG9mIFBPUC4KCiAgIFlvdSBjYW4gc3BlY2lmeSBhIFBPUDMgaW5ib3ggYnkgdXNpbmcgYSBQT1Az ICJVUkwiICgqbm90ZQpNb3ZlbWFpbDo6KS4gIEEgUE9QMyBVUkwgaXMgb2YgdGhlIGZvcm0g4oCY cG9wOi8vVVNFUk5BTUVASE9TVE5BTUU6UE9SVOKAmSwKd2hlcmUgSE9TVE5BTUUgYW5kIFBPUlQg YXJlIHRoZSBob3N0IG5hbWUgKG9yIElQIGFkZHJlc3MpIGFuZCBwb3J0Cm51bWJlciBvZiB0aGUg cmVtb3RlIG1haWwgc2VydmVyIGFuZCBVU0VSTkFNRSBpcyB0aGUgdXNlciBuYW1lIG9uIHRoYXQK c2VydmVyLiAgQWRkaXRpb25hbGx5LCB5b3UgbWF5IHNwZWNpZnkgdGhlIHBhc3N3b3JkIGluIHRo ZSBtYWlsYm94IFVSTDoK4oCYcG9wOi8vVVNFUk5BTUU6UEFTU1dPUkRASE9TVE5BTUU6UE9SVOKA mS4gIEluIHRoaXMgY2FzZSwgUEFTU1dPUkQgdGFrZXMKcHJlZmVyZW5jZSBvdmVyIHRoZSBvbmUg c2V0IGJ5IOKAmHJtYWlsLXJlbW90ZS1wYXNzd29yZOKAmSAoc2VlIGJlbG93KS4KVGhpcyBpcyBl c3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UgaGF2ZSBzZXZlcmFsIHJlbW90ZSBtYWlsYm94ZXMgd2l0 aApkaWZmZXJlbnQgcGFzc3dvcmRzLiAgSWYgdXNpbmcgTWFpbHV0aWxzIOKAmG1vdmVtYWls4oCZ LCB5b3UgbWF5IHdpc2ggdG8gdXNlCuKAmHBvcHPigJkgaW4gcGxhY2Ugb2Yg4oCYcG9w4oCZLgoK ICAgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIFJtYWlsIGFsc28gc3VwcG9ydHMgYW4gYWx0 ZXJuYXRpdmUgd2F5IG9mCnNwZWNpZnlpbmcgcmVtb3RlIFBPUDMgbWFpbGJveGVzLiAgU3BlY2lm eWluZyBhbiBpbmJveCBuYW1lIGluIHRoZSBmb3JtCuKAmHBvOlVTRVJOQU1FOkhPU1ROQU1FOlBP UlTigJkgaXMgZXF1aXZhbGVudCB0bwrigJhwb3A6Ly9VU0VSTkFNRUBIT1NUTkFNRTpQT1JU4oCZ LiAgSWYgeW91IG9taXQgdGhlIDpIT1NUTkFNRSBwYXJ0LCB0aGUK4oCYTUFJTEhPU1TigJkgZW52 aXJvbm1lbnQgdmFyaWFibGUgc3BlY2lmaWVzIHRoZSBtYWNoaW5lIG9uIHdoaWNoIHRvIGxvb2sK Zm9yIHRoZSBQT1AzIHNlcnZlci4KCiAgIEFub3RoZXIgbWV0aG9kIGZvciBhY2Nlc3NpbmcgcmVt b3RlIG1haWxib3hlcyBpcyBJTUFQLiAgVGhpcyBtZXRob2QKaXMgc3VwcG9ydGVkIG9ubHkgYnkg dGhlIE1haWx1dGlscyDigJhtb3ZlbWFpbOKAmS4gIFRvIHNwZWNpZnkgYW4gSU1BUAptYWlsYm94 IGluIHRoZSBpbmJveCBsaXN0LCB1c2UgdGhlIGZvbGxvd2luZyBtYWlsYm94IFVSTDoK4oCYaW1h cDovL1VTRVJOQU1FWzpQQVNTV09SRF1ASE9TVE5BTUU6UE9SVOKAmS4gIFRoZSBQQVNTV09SRCBw YXJ0IGlzCm9wdGlvbmFsLCBhcyBkZXNjcmliZWQgYWJvdmUuICBZb3UgbWF5IHdpc2ggdG8gdXNl IOKAmGltYXBz4oCZIGluIHBsYWNlIG9mCuKAmGltYXDigJkuCgogICBBY2Nlc3NpbmcgYSByZW1v dGUgbWFpbGJveCBtYXkgcmVxdWlyZSBhIHBhc3N3b3JkLiAgUm1haWwgdXNlcyB0aGUKZm9sbG93 aW5nIGFsZ29yaXRobSB0byByZXRyaWV2ZSBpdDoKCiAgMS4gSWYgYSBQQVNTV09SRCBpcyBwcmVz ZW50IGluIHRoZSBtYWlsYm94IFVSTCAoc2VlIGFib3ZlKSwgaXQgaXMKICAgICB1c2VkLgogIDIu IElmIHRoZSB2YXJpYWJsZSDigJhybWFpbC1yZW1vdGUtcGFzc3dvcmQtcmVxdWlyZWTigJkgaXMg 4oCYbmls4oCZLCBSbWFpbAogICAgIGFzc3VtZXMgbm8gcGFzc3dvcmQgaXMgcmVxdWlyZWQuCiAg My4gSWYgdGhlIHZhcmlhYmxlIOKAmHJtYWlsLXJlbW90ZS1wYXNzd29yZOKAmSBpcyBub24t4oCY bmls4oCZLCBpdHMgdmFsdWUgaXMKICAgICB1c2VkLgogIDQuIE90aGVyd2lzZSwgUm1haWwgd2ls bCBhc2sgeW91IGZvciB0aGUgcGFzc3dvcmQgdG8gdXNlLgoKICAgSWYgeW91IG5lZWQgdG8gcGFz cyBhZGRpdGlvbmFsIGNvbW1hbmQtbGluZSBmbGFncyB0byDigJhtb3ZlbWFpbOKAmSwgc2V0CnRo ZSB2YXJpYWJsZSDigJhybWFpbC1tb3ZlbWFpbC1mbGFnc+KAmSBhIGxpc3Qgb2YgdGhlIGZsYWdz IHlvdSB3aXNoIHRvIHVzZS4KRG8gbm90IHVzZSB0aGlzIHZhcmlhYmxlIHRvIHBhc3MgdGhlIOKA mC1w4oCZIGZsYWcgdG8gcHJlc2VydmUgeW91ciBpbmJveApjb250ZW50czsgdXNlIOKAmHJtYWls LXByZXNlcnZlLWluYm944oCZIGluc3RlYWQuCgogICBUaGUg4oCYbW92ZW1haWzigJkgcHJvZ3Jh bSBpbnN0YWxsZWQgYXQgeW91ciBzaXRlIG1heSBzdXBwb3J0IEtlcmJlcm9zCmF1dGhlbnRpY2F0 aW9uLiAgSWYgaXQgaXMgc3VwcG9ydGVkLCBpdCBpcyB1c2VkIGJ5IGRlZmF1bHQgd2hlbmV2ZXIg eW91CmF0dGVtcHQgdG8gcmV0cmlldmUgUE9QMyBtYWlsIHdoZW4g4oCYcm1haWwtcmVtb3RlLXBh c3N3b3Jk4oCZIGFuZArigJhybWFpbC1yZW1vdGUtcGFzc3dvcmQtcmVxdWlyZWTigJkgYXJlIHVu c2V0LgoKICAgU29tZSBQT1AzIHNlcnZlcnMgc3RvcmUgbWVzc2FnZXMgaW4gcmV2ZXJzZSBvcmRl ci4gIElmIHlvdXIgc2VydmVyCmRvZXMgdGhpcywgYW5kIHlvdSB3b3VsZCByYXRoZXIgcmVhZCB5 b3VyIG1haWwgaW4gdGhlIG9yZGVyIGluIHdoaWNoIGl0CndhcyByZWNlaXZlZCwgeW91IGNhbiB0 ZWxsIOKAmG1vdmVtYWls4oCZIHRvIHJldmVyc2UgdGhlIG9yZGVyIG9mIGRvd25sb2FkZWQKbWVz c2FnZXMgYnkgYWRkaW5nIHRoZSDigJgtcuKAmSBmbGFnIHRvIOKAmHJtYWlsLW1vdmVtYWlsLWZs YWdz4oCZLgoKICAgTWFpbHV0aWxzIOKAmG1vdmVtYWls4oCZIHN1cHBvcnRzIFRMUyBlbmNyeXB0 aW9uLiAgSWYgeW91IHdpc2ggdG8gdXNlIGl0LAphZGQgdGhlIOKAmC0tdGxz4oCZIGZsYWcgdG8g 4oCYcm1haWwtbW92ZW1haWwtZmxhZ3PigJkuCgoKKiogMzMuMjAgUmV0cmlldmluZyBNYWlsIGZy b20gTG9jYWwgTWFpbGJveGVzIGluIFZhcmlvdXMgRm9ybWF0cwoKSWYgeW91ciBpbmNvbWluZyBt YWlsIGlzIHN0b3JlZCBvbiBhIGxvY2FsIG1hY2hpbmUgaW4gYSBmb3JtYXQgb3RoZXIKdGhhbiBV bml4IG1haWxib3gsIHlvdSB3aWxsIG5lZWQgdGhlIE1haWx1dGlscyDigJhtb3ZlbWFpbOKAmSB0 byByZXRyaWV2ZQppdC4gICpOb3RlIE1vdmVtYWlsOjosIGZvciB0aGUgZGV0YWlsZWQgZGVzY3Jp cHRpb24gb2Yg4oCYbW92ZW1haWzigJkKdmVyc2lvbnMuICBGb3IgZXhhbXBsZSwgdG8gYWNjZXNz IG1haWwgZnJvbSBhbiBpbmJveCBpbiDigJhtYWlsZGly4oCZIGZvcm1hdApsb2NhdGVkIGluIOKA mC92YXIvc3Bvb2wvbWFpbC9pbuKAmSwgeW91IHdvdWxkIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBp biB0aGUKUm1haWwgaW5ib3ggbGlzdDoKCiAgICAgbWFpbGRpcjovLy92YXIvc3Bvb2wvbWFpbC9p bgoKCiogMzQgRW1haWwgYW5kIFVzZW5ldCBOZXdzIHdpdGggR251cwoKR251cyBpcyBhbiBFbWFj cyBwYWNrYWdlIHByaW1hcmlseSBkZXNpZ25lZCBmb3IgcmVhZGluZyBhbmQgcG9zdGluZwpVc2Vu ZXQgbmV3cy4gIEl0IGNhbiBhbHNvIGJlIHVzZWQgdG8gcmVhZCBhbmQgcmVzcG9uZCB0byBtZXNz YWdlcyBmcm9tIGEKbnVtYmVyIG9mIG90aGVyIHNvdXJjZXPigJRlbWFpbCwgcmVtb3RlIGRpcmVj dG9yaWVzLCBkaWdlc3RzLCBhbmQgc28gb24uCkhlcmUgd2UgaW50cm9kdWNlIEdudXMgYW5kIGRl c2NyaWJlIHNldmVyYWwgYmFzaWMgZmVhdHVyZXMuICBGb3IgZnVsbApkZXRhaWxzLCBzZWUgKm5v dGUgR251czogKGdudXMpVG9wLgoKKyBNZW51OgoKICAtIEJ1ZmZlcnMgb2YgR251czo6ICAgICBU aGUgZ3JvdXAsIHN1bW1hcnksIGFuZCBhcnRpY2xlIGJ1ZmZlcnMuCiAgLSBHbnVzIFN0YXJ0dXA6 OiAgICAgICAgV2hhdCB5b3Ugc2hvdWxkIGtub3cgYWJvdXQgc3RhcnRpbmcgR251cy4KICAtIEdu dXMgR3JvdXAgQnVmZmVyOjogICBBIHNob3J0IGRlc2NyaXB0aW9uIG9mIEdudXMgZ3JvdXAgY29t bWFuZHMuCiAgLSBHbnVzIFN1bW1hcnkgQnVmZmVyOjogQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiBH bnVzIHN1bW1hcnkgY29tbWFuZHMuCgoKKiogMzQuMSBHbnVzIEJ1ZmZlcnMKCkdudXMgdXNlcyBz ZXZlcmFsIGJ1ZmZlcnMgdG8gZGlzcGxheSBpbmZvcm1hdGlvbiBhbmQgdG8gcmVjZWl2ZQpjb21t YW5kcy4gIFRoZSB0aHJlZSBtb3N0IGNvbW1vbmx5LXVzZWQgR251cyBidWZmZXJzIGFyZSB0aGUg Imdyb3VwCmJ1ZmZlciIsIHRoZSAic3VtbWFyeSBidWZmZXIiIGFuZCB0aGUgImFydGljbGUgYnVm ZmVyIi4KCiAgIFRoZSAiZ3JvdXAgYnVmZmVyIiBjb250YWlucyBhIGxpc3Qgb2YgYXJ0aWNsZSBz b3VyY2VzIChlLmcuLApuZXdzZ3JvdXBzIGFuZCBlbWFpbCBpbmJveGVzKSwgd2hpY2ggYXJlIGNv bGxlY3RpdmVseSByZWZlcnJlZCB0byBhcwoiZ3JvdXBzIi4gIFRoaXMgaXMgdGhlIGZpcnN0IGJ1 ZmZlciBHbnVzIGRpc3BsYXlzIHdoZW4gaXQgc3RhcnRzIHVwLiAgSXQKbm9ybWFsbHkgZGlzcGxh eXMgb25seSB0aGUgZ3JvdXBzIHRvIHdoaWNoIHlvdSBzdWJzY3JpYmUgYW5kIHRoYXQKY29udGFp biB1bnJlYWQgYXJ0aWNsZXMuICBGcm9tIHRoaXMgYnVmZmVyLCB5b3UgY2FuIHNlbGVjdCBhIGdy b3VwIHRvCnJlYWQuCgogICBUaGUgInN1bW1hcnkgYnVmZmVyIiBsaXN0cyB0aGUgYXJ0aWNsZXMg aW4gYSBzaW5nbGUgZ3JvdXAsIHNob3dpbmcKb25lIGFydGljbGUgcGVyIGxpbmUuICBCeSBkZWZh dWx0LCBpdCBkaXNwbGF5cyBlYWNoIGFydGljbGXigJlzIGF1dGhvciwKc3ViamVjdCwgYW5kIGxp bmUgbnVtYmVyLCBidXQgdGhpcyBpcyBjdXN0b21pemFibGU7ICpOb3RlIChnbnVzKVN1bW1hcnkK QnVmZmVyIEZvcm1hdDo6LiAgVGhlIHN1bW1hcnkgYnVmZmVyIGlzIGNyZWF0ZWQgd2hlbiB5b3Ug c2VsZWN0IGEgZ3JvdXAKaW4gdGhlIGdyb3VwIGJ1ZmZlciwgYW5kIGlzIGtpbGxlZCB3aGVuIHlv dSBleGl0IHRoZSBncm91cC4KCiAgIEZyb20gdGhlIHN1bW1hcnkgYnVmZmVyLCB5b3UgY2FuIGNo b29zZSBhbiBhcnRpY2xlIHRvIHZpZXcuICBUaGUKYXJ0aWNsZSBpcyBkaXNwbGF5ZWQgaW4gdGhl ICJhcnRpY2xlIGJ1ZmZlciIuICBJbiBub3JtYWwgR251cyB1c2FnZSwgeW91CnZpZXcgdGhpcyBi dWZmZXIgYnV0IGRvIG5vdCBzZWxlY3QgaXTigJRhbGwgdXNlZnVsIEdudXMgY29tbWFuZHMgY2Fu IGJlCmludm9rZWQgZnJvbSB0aGUgc3VtbWFyeSBidWZmZXIuICBCdXQgeW91IGNhbiBzZWxlY3Qg dGhlIGFydGljbGUgYnVmZmVyLAphbmQgZXhlY3V0ZSBHbnVzIGNvbW1hbmRzIGZyb20gaXQsIGlm IHlvdSB3aXNoLgoKCioqIDM0LjIgV2hlbiBHbnVzIFN0YXJ0cyBVcAoKSWYgeW91ciBzeXN0ZW0g aGFzIGJlZW4gc2V0IHVwIGZvciByZWFkaW5nIFVzZW5ldCBuZXdzLCBnZXR0aW5nIHN0YXJ0ZWQK d2l0aCBHbnVzIGlzIGVhc3nigJRqdXN0IHR5cGUg4oCYTS14IGdudXPigJkuCgogICBPbiBzdGFy dGluZyB1cCwgR251cyByZWFkcyB5b3VyICJuZXdzIGluaXRpYWxpemF0aW9uIGZpbGUiOiBhIGZp bGUKbmFtZWQg4oCYLm5ld3NyY+KAmSBpbiB5b3VyIGhvbWUgZGlyZWN0b3J5IHdoaWNoIGxpc3Rz IHlvdXIgVXNlbmV0Cm5ld3Nncm91cHMgYW5kIHN1YnNjcmlwdGlvbnMgKHRoaXMgZmlsZSBpcyBu b3QgdW5pcXVlIHRvIEdudXM7IGl0IGlzCnVzZWQgYnkgbWFueSBvdGhlciBuZXdzcmVhZGVyIHBy b2dyYW1zKS4gIEl0IHRoZW4gdHJpZXMgdG8gY29udGFjdCB0aGUKc3lzdGVt4oCZcyBkZWZhdWx0 IG5ld3Mgc2VydmVyLCB3aGljaCBpcyB0eXBpY2FsbHkgc3BlY2lmaWVkIGJ5IHRoZQrigJhOTlRQ U0VSVkVS4oCZIGVudmlyb25tZW50IHZhcmlhYmxlLgoKICAgSWYgeW91ciBzeXN0ZW0gZG9lcyBu b3QgaGF2ZSBhIGRlZmF1bHQgbmV3cyBzZXJ2ZXIsIG9yIGlmIHlvdSB3aXNoIHRvCnVzZSBHbnVz IGZvciByZWFkaW5nIGVtYWlsLCB0aGVuIGJlZm9yZSBpbnZva2luZyDigJhNLXggZ251c+KAmSB5 b3UgbmVlZCB0bwp0ZWxsIEdudXMgd2hlcmUgdG8gZ2V0IG5ld3MgYW5kL29yIG1haWwuICBUbyBk byB0aGlzLCBjdXN0b21pemUgdGhlCnZhcmlhYmxlcyDigJhnbnVzLXNlbGVjdC1tZXRob2TigJkg YW5kL29yIOKAmGdudXMtc2Vjb25kYXJ5LXNlbGVjdC1tZXRob2Rz4oCZLgoqTm90ZSAoZ251cylG aW5kaW5nIHRoZSBOZXdzOjouCgogICBPbmNlIEdudXMgaGFzIHN0YXJ0ZWQgdXAsIGl0IGRpc3Bs YXlzIHRoZSBncm91cCBidWZmZXIuICBCeSBkZWZhdWx0LAp0aGUgZ3JvdXAgYnVmZmVyIHNob3dz IG9ubHkgYSBzbWFsbCBudW1iZXIgb2YgInN1YnNjcmliZWQgZ3JvdXBzIi4KR3JvdXBzIHdpdGgg b3RoZXIgc3RhdHVzZXPigJQidW5zdWJzY3JpYmVkIiwgImtpbGxlZCIsIG9yICJ6b21iaWUi4oCU YXJlCmhpZGRlbi4gIFRoZSBmaXJzdCB0aW1lIHlvdSBzdGFydCBHbnVzLCBhbnkgZ3JvdXAgdG8g d2hpY2ggeW91IGFyZSBub3QKc3Vic2NyaWJlZCBpcyBtYWRlIGludG8gYSBraWxsZWQgZ3JvdXA7 IGFueSBncm91cCB0aGF0IHN1YnNlcXVlbnRseQphcHBlYXJzIG9uIHRoZSBuZXdzIHNlcnZlciBi ZWNvbWVzIGEgem9tYmllIGdyb3VwLgoKICAgVG8gcHJvY2VlZCwgeW91IG11c3Qgc2VsZWN0IGEg Z3JvdXAgaW4gdGhlIGdyb3VwIGJ1ZmZlciB0byBvcGVuIHRoZQpzdW1tYXJ5IGJ1ZmZlciBmb3Ig dGhhdCBncm91cDsgdGhlbiwgc2VsZWN0IGFuIGFydGljbGUgaW4gdGhlIHN1bW1hcnkKYnVmZmVy IHRvIHZpZXcgaXRzIGFydGljbGUgYnVmZmVyIGluIGEgc2VwYXJhdGUgd2luZG93LiAgVGhlIGZv bGxvd2luZwpzZWN0aW9ucyBleHBsYWluIGhvdyB0byB1c2UgdGhlIGdyb3VwIGFuZCBzdW1tYXJ5 IGJ1ZmZlcnMgdG8gZG8gdGhpcy4KCiAgIFRvIHF1aXQgR251cywgdHlwZSDigJhx4oCZIGluIHRo ZSBncm91cCBidWZmZXIuICBUaGlzIGF1dG9tYXRpY2FsbHkKcmVjb3JkcyB5b3VyIGdyb3VwIHN0 YXR1c2VzIGluIHRoZSBmaWxlcyDigJgubmV3c3Jj4oCZIGFuZCDigJgubmV3c3JjLmVsZOKAmSwg c28KdGhhdCB0aGV5IHRha2UgZWZmZWN0IGluIHN1YnNlcXVlbnQgR251cyBzZXNzaW9ucy4KCgoq KiAzNC4zIFVzaW5nIHRoZSBHbnVzIEdyb3VwIEJ1ZmZlcgoKVGhlIGZvbGxvd2luZyBjb21tYW5k cyBhcmUgYXZhaWxhYmxlIGluIHRoZSBHbnVzIGdyb3VwIGJ1ZmZlcjoKCuKAmDxTUEM+4oCZCiAg ICAgU3dpdGNoIHRvIHRoZSBzdW1tYXJ5IGJ1ZmZlciBmb3IgdGhlIGdyb3VwIG9uIHRoZSBjdXJy ZW50IGxpbmUKICAgICAo4oCYZ251cy1ncm91cC1yZWFkLWdyb3Vw4oCZKS4KCuKAmGzigJkK4oCY QSBz4oCZCiAgICAgSW4gdGhlIGdyb3VwIGJ1ZmZlciwgbGlzdCBvbmx5IHRoZSBncm91cHMgdG8g d2hpY2ggeW91IHN1YnNjcmliZQogICAgIGFuZCB3aGljaCBjb250YWluIHVucmVhZCBhcnRpY2xl cyAo4oCYZ251cy1ncm91cC1saXN0LWdyb3Vwc+KAmTsgdGhpcwogICAgIGlzIHRoZSBkZWZhdWx0 IGxpc3RpbmcpLgoK4oCYTOKAmQrigJhBIHXigJkKICAgICBMaXN0IGFsbCBzdWJzY3JpYmVkIGFu ZCB1bnN1YnNjcmliZWQgZ3JvdXBzLCBidXQgbm90IGtpbGxlZCBvcgogICAgIHpvbWJpZSBncm91 cHMgKOKAmGdudXMtZ3JvdXAtbGlzdC1hbGwtZ3JvdXBz4oCZKS4KCuKAmEEga+KAmQogICAgIExp c3Qga2lsbGVkIGdyb3VwcyAo4oCYZ251cy1ncm91cC1saXN0LWtpbGxlZOKAmSkuCgrigJhBIHri gJkKICAgICBMaXN0IHpvbWJpZSBncm91cHMgKOKAmGdudXMtZ3JvdXAtbGlzdC16b21iaWVz4oCZ KS4KCuKAmHXigJkKICAgICBUb2dnbGUgdGhlIHN1YnNjcmlwdGlvbiBzdGF0dXMgb2YgdGhlIGdy b3VwCiAgICAgKOKAmGdudXMtZ3JvdXAtdW5zdWJzY3JpYmUtY3VycmVudC1ncm91cOKAmSkgb24g dGhlIGN1cnJlbnQgbGluZSAoaS5lLiwKICAgICB0dXJuIGEgc3Vic2NyaWJlZCBncm91cCBpbnRv IGFuIHVuc3Vic2NyaWJlZCBncm91cCwgb3IgdmljZSB2ZXJzYSkuCiAgICAgSW52b2tpbmcgdGhp cyBvbiBhIGtpbGxlZCBvciB6b21iaWUgZ3JvdXAgdHVybnMgaXQgaW50byBhbgogICAgIHVuc3Vi c2NyaWJlZCBncm91cC4KCuKAmEMta+KAmQogICAgIEtpbGwgdGhlIGdyb3VwIG9uIHRoZSBjdXJy ZW50IGxpbmUgKOKAmGdudXMtZ3JvdXAta2lsbC1ncm91cOKAmSkuCiAgICAgS2lsbGVkIGdyb3Vw cyBhcmUgbm90IHJlY29yZGVkIGluIHRoZSDigJgubmV3c3Jj4oCZIGZpbGUsIGFuZCB0aGV5IGFy ZQogICAgIG5vdCBzaG93biBpbiB0aGUg4oCYbOKAmSBvciDigJhM4oCZIGxpc3RpbmdzLgoK4oCY PERFTD7igJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBwcmV2aW91cyBncm91cCBjb250YWluaW5n IHVucmVhZCBhcnRpY2xlcwogICAgICjigJhnbnVzLWdyb3VwLXByZXYtdW5yZWFkLWdyb3Vw4oCZ KS4KCuKAmG7igJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBuZXh0IHVucmVhZCBncm91cAogICAg ICjigJhnbnVzLWdyb3VwLW5leHQtdW5yZWFkLWdyb3Vw4oCZKS4KCuKAmHDigJkKICAgICBNb3Zl IHBvaW50IHRvIHRoZSBwcmV2aW91cyB1bnJlYWQgZ3JvdXAKICAgICAo4oCYZ251cy1ncm91cC1w cmV2LXVucmVhZC1ncm91cOKAmSkuCgrigJhx4oCZCiAgICAgVXBkYXRlIHlvdXIgR251cyBzZXR0 aW5ncywgYW5kIHF1aXQgR251cyAo4oCYZ251cy1ncm91cC1leGl04oCZKS4KCgoqKiAzNC40IFVz aW5nIHRoZSBHbnVzIFN1bW1hcnkgQnVmZmVyCgpUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBh dmFpbGFibGUgaW4gdGhlIEdudXMgc3VtbWFyeSBidWZmZXI6CgrigJg8U1BDPuKAmQogICAgIElm IHRoZXJlIGlzIG5vIGFydGljbGUgc2VsZWN0ZWQsIHNlbGVjdCB0aGUgYXJ0aWNsZSBvbiB0aGUg Y3VycmVudAogICAgIGxpbmUgYW5kIGRpc3BsYXkgaXRzIGFydGljbGUgYnVmZmVyLiAgT3RoZXJ3 aXNlLCB0cnkgc2Nyb2xsaW5nIHRoZQogICAgIHNlbGVjdGVkIGFydGljbGUgYnVmZmVyIGluIGl0 cyB3aW5kb3c7IG9uIHJlYWNoaW5nIHRoZSBlbmQgb2YgdGhlCiAgICAgYnVmZmVyLCBzZWxlY3Qg dGhlIG5leHQgdW5yZWFkIGFydGljbGUgKOKAmGdudXMtc3VtbWFyeS1uZXh0LXBhZ2XigJkpLgoK ICAgICBUaHVzLCB5b3UgY2FuIHJlYWQgdGhyb3VnaCBhbGwgYXJ0aWNsZXMgYnkgcmVwZWF0ZWRs eSB0eXBpbmcgPFNQQz4uCgrigJg8REVMPuKAmQogICAgIFNjcm9sbCB0aGUgdGV4dCBvZiB0aGUg YXJ0aWNsZSBiYWNrd2FyZHMKICAgICAo4oCYZ251cy1zdW1tYXJ5LXByZXYtcGFnZeKAmSkuCgri gJhu4oCZCiAgICAgU2VsZWN0IHRoZSBuZXh0IHVucmVhZCBhcnRpY2xlCiAgICAgKOKAmGdudXMt c3VtbWFyeS1uZXh0LXVucmVhZC1hcnRpY2xl4oCZKS4KCuKAmHDigJkKICAgICBTZWxlY3QgdGhl IHByZXZpb3VzIHVucmVhZCBhcnRpY2xlCiAgICAgKOKAmGdudXMtc3VtbWFyeS1wcmV2LXVucmVh ZC1hcnRpY2xl4oCZKS4KCuKAmHPigJkKICAgICBEbyBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggb24g dGhlIHNlbGVjdGVkIGFydGljbGUgYnVmZmVyCiAgICAgKOKAmGdudXMtc3VtbWFyeS1pc2VhcmNo LWFydGljbGXigJkpLCBhcyBpZiB5b3Ugc3dpdGNoZWQgdG8gdGhlIGJ1ZmZlcgogICAgIGFuZCB0 eXBlZCDigJhDLXPigJkgKCpub3RlIEluY3JlbWVudGFsIFNlYXJjaDo6KS4KCuKAmE0tcyBSRUdF WFAgPFJFVD7igJkKICAgICBTZWFyY2ggZm9yd2FyZCBmb3IgYXJ0aWNsZXMgY29udGFpbmluZyBh IG1hdGNoIGZvciBSRUdFWFAKICAgICAo4oCYZ251cy1zdW1tYXJ5LXNlYXJjaC1hcnRpY2xlLWZv cndhcmTigJkpLgoK4oCYTS1yIFJFR0VYUCA8UkVUPuKAmQogICAgIFNlYXJjaCBiYWNrIGZvciBh cnRpY2xlcyBjb250YWluaW5nIGEgbWF0Y2ggZm9yIFJFR0VYUAogICAgICjigJhnbnVzLXN1bW1h cnktc2VhcmNoLWFydGljbGUtYmFja3dhcmTigJkpLgoK4oCYceKAmQogICAgIEV4aXQgdGhlIHN1 bW1hcnkgYnVmZmVyIGFuZCByZXR1cm4gdG8gdGhlIGdyb3VwIGJ1ZmZlcgogICAgICjigJhnbnVz LXN1bW1hcnktZXhpdOKAmSkuCgoKKiAzNSBIb3N0IFNlY3VyaXR5CgpFbWFjcyBydW5zIGluc2lk ZSBhbiBvcGVyYXRpbmcgc3lzdGVtIHN1Y2ggYXMgR05VL0xpbnV4LCBhbmQgcmVsaWVzIG9uCnRo ZSBvcGVyYXRpbmcgc3lzdGVtIHRvIGNoZWNrIHNlY3VyaXR5IGNvbnN0cmFpbnRzIHN1Y2ggYXMg YWNjZXNzZXMgdG8KZmlsZXMuICBUaGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgRW1hY3MgYXJlIGRl c2lnbmVkIGZvciB0eXBpY2FsIHVzZTsKdGhleSBtYXkgcmVxdWlyZSBzb21lIHRhaWxvcmluZyBp biBlbnZpcm9ubWVudHMgd2hlcmUgc2VjdXJpdHkgaXMgbW9yZQpvZiBhIGNvbmNlcm4sIG9yIGxl c3Mgb2YgYSBjb25jZXJuLCB0aGFuIHVzdWFsLiAgRm9yIGV4YW1wbGUsIGZpbGUtbG9jYWwKdmFy aWFibGVzIGNhbiBiZSByaXNreSwgYW5kIHlvdSBjYW4gc2V0IHRoZSB2YXJpYWJsZQrigJhlbmFi bGUtbG9jYWwtdmFyaWFibGVz4oCZIHRvIOKAmDpzYWZl4oCZIG9yIChldmVuIG1vcmUgY29uc2Vy dmF0aXZlbHkpIHRvCuKAmG5pbOKAmTsgY29udmVyc2VseSwgaWYgeW91ciBmaWxlcyBjYW4gYWxs IGJlIHRydXN0ZWQgYW5kIHRoZSBkZWZhdWx0CmNoZWNraW5nIGZvciB0aGVzZSB2YXJpYWJsZXMg aXMgaXJyaXRhdGluZywgeW91IGNhbiBzZXQK4oCYZW5hYmxlLWxvY2FsLXZhcmlhYmxlc+KAmSB0 byDigJg6YWxs4oCZLiAgKk5vdGUgU2FmZSBGaWxlIFZhcmlhYmxlczo6LgoKICAgKk5vdGUgKGVs aXNwKVNlY3VyaXR5IENvbnNpZGVyYXRpb25zOjosIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0 CnNlY3VyaXR5IGNvbnNpZGVyYXRpb25zIHdoZW4gdXNpbmcgRW1hY3MgYXMgcGFydCBvZiBhIGxh cmdlcgphcHBsaWNhdGlvbi4KCgoqIDM2IE5ldHdvcmsgU2VjdXJpdHkKCldoZW5ldmVyIEVtYWNz IGVzdGFibGlzaGVzIGFueSBuZXR3b3JrIGNvbm5lY3Rpb24sIGl0IHBhc3NlcyB0aGUKZXN0YWJs aXNoZWQgY29ubmVjdGlvbiB0byB0aGUgIk5ldHdvcmsgU2VjdXJpdHkgTWFuYWdlciIgKE5TTSku ICBOU00gaXMKcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyB0aGUgbmV0d29yayBzZWN1cml0eSB1 bmRlciB5b3VyIGNvbnRyb2wuCkN1cnJlbnRseSwgdGhpcyB3b3JrcyBieSB1c2luZyB0aGUgVHJh bnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpCmZlYXR1cmVzLgoKICAgVGhlIOKAmG5ldHdvcmst c2VjdXJpdHktbGV2ZWzigJkgdmFyaWFibGUgZGV0ZXJtaW5lcyB0aGUgc2VjdXJpdHkgbGV2ZWwK dGhhdCBOU00gZW5mb3JjZXMuICBJZiBpdHMgdmFsdWUgaXMg4oCYbG934oCZLCBubyBzZWN1cml0 eSBjaGVja3MgYXJlCnBlcmZvcm1lZC4KCiAgIElmIHRoaXMgdmFyaWFibGUgaXMg4oCYbWVkaXVt 4oCZICh3aGljaCBpcyB0aGUgZGVmYXVsdCksIGEgbnVtYmVyIG9mCmNoZWNrcyB3aWxsIGJlIHBl cmZvcm1lZC4gIElmIGFzIHJlc3VsdCBOU00gZGV0ZXJtaW5lcyB0aGF0IHRoZSBuZXR3b3JrCmNv bm5lY3Rpb24gbWlnaHQgbm90IGJlIHRydXN0d29ydGh5LCBpdCB3aWxsIG1ha2UgeW91IGF3YXJl IG9mIHRoYXQsIGFuZAp3aWxsIGFzayB5b3Ugd2hhdCB0byBkbyBhYm91dCB0aGUgbmV0d29yayBj b25uZWN0aW9uLgoKICAgWW91IGNhbiBkZWNpZGUgdG8gcmVnaXN0ZXIgYSBwZXJtYW5lbnQgc2Vj dXJpdHkgZXhjZXB0aW9uIGZvciBhbgp1bnZlcmlmaWVkIGNvbm5lY3Rpb24sIGEgdGVtcG9yYXJ5 IGV4Y2VwdGlvbiwgb3IgcmVmdXNlIHRoZSBjb25uZWN0aW9uCmVudGlyZWx5LgoKICAgQmVsb3cg aXMgYSBsaXN0IG9mIHRoZSBjaGVja3MgZG9uZSBvbiB0aGUg4oCYbWVkaXVt4oCZIGxldmVsLgoK dW5hYmxlIHRvIHZlcmlmeSBhIFRMUyBjZXJ0aWZpY2F0ZQogICAgIElmIHRoZSBjb25uZWN0aW9u IGlzIGEgVExTLCBTU0wgb3IgU1RBUlRUTFMgY29ubmVjdGlvbiwgTlNNIHdpbGwKICAgICBjaGVj ayB3aGV0aGVyIHRoZSBjZXJ0aWZpY2F0ZSB1c2VkIHRvIGVzdGFibGlzaCB0aGUgaWRlbnRpdHkg b2YgdGhlCiAgICAgc2VydmVyIHdl4oCZcmUgY29ubmVjdGluZyB0byBjYW4gYmUgdmVyaWZpZWQu CgogICAgIFdoaWxlIGFuIGludmFsaWQgY2VydGlmaWNhdGUgaXMgb2Z0ZW4gdGhlIGNhdXNlIGZv ciBjb25jZXJuICh0aGVyZQogICAgIGNvdWxkIGJlIGEgTWFuLWluLXRoZS1NaWRkbGUgaGlqYWNr aW5nIHlvdXIgbmV0d29yayBjb25uZWN0aW9uIGFuZAogICAgIHN0ZWFsaW5nIHlvdXIgcGFzc3dv cmQpLCB0aGVyZSBtYXkgYmUgdmFsaWQgcmVhc29ucyBmb3IgZ29pbmcgYWhlYWQKICAgICB3aXRo IHRoZSBjb25uZWN0aW9uIGFueXdheS4gIEZvciBpbnN0YW5jZSwgdGhlIHNlcnZlciBtYXkgYmUg dXNpbmcKICAgICBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLCBvciB0aGUgY2VydGlmaWNhdGUg bWF5IGhhdmUgZXhwaXJlZC4KICAgICBJdOKAmXMgdXAgdG8geW91IHRvIGRldGVybWluZSB3aGV0 aGVyIGl04oCZcyBhY2NlcHRhYmxlIHRvIGNvbnRpbnVlCiAgICAgd2l0aCB0aGUgY29ubmVjdGlv bi4KCmEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgaGFzIGNoYW5nZWQKICAgICBJZiB5b3XigJl2 ZSBwcmV2aW91c2x5IGFjY2VwdGVkIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUsIGJ1dCBpdCBo YXMKICAgICBub3cgY2hhbmdlZCwgdGhhdCBjb3VsZCBtZWFuIHRoYXQgdGhlIHNlcnZlciBoYXMg anVzdCBjaGFuZ2VkIHRoZQogICAgIGNlcnRpZmljYXRlLCBidXQgaXQgbWlnaHQgYWxzbyBtZWFu IHRoYXQgdGhlIG5ldHdvcmsgY29ubmVjdGlvbiBoYXMKICAgICBiZWVuIGhpamFja2VkLgoKcHJl dmlvdXNseSBlbmNyeXB0ZWQgY29ubmVjdGlvbiBub3cgdW5lbmNyeXB0ZWQKICAgICBJZiB0aGUg Y29ubmVjdGlvbiBpcyB1bmVuY3J5cHRlZCwgYnV0IGl0IHdhcyBlbmNyeXB0ZWQgaW4gcHJldmlv dXMKICAgICBzZXNzaW9ucywgdGhpcyBtaWdodCBtZWFuIHRoYXQgdGhlcmUgaXMgYSBwcm94eSBi ZXR3ZWVuIHlvdSBhbmQgdGhlCiAgICAgc2VydmVyIHRoYXQgc3RyaXBzIGF3YXkgU1RBUlRUTFMg YW5ub3VuY2VtZW50cywgbGVhdmluZyB0aGUKICAgICBjb25uZWN0aW9uIHVuZW5jcnlwdGVkLiAg VGhpcyBpcyB1c3VhbGx5IHZlcnkgc3VzcGljaW91cy4KCnRhbGtpbmcgdG8gYW4gdW5lbmNyeXB0 ZWQgc2VydmljZSB3aGVuIHNlbmRpbmcgYSBwYXNzd29yZAogICAgIFdoZW4gY29ubmVjdGluZyB0 byBhbiBJTUFQIG9yIFBPUDMgc2VydmVyLCB0aGVzZSBzaG91bGQgdXN1YWxseSBiZQogICAgIGVu Y3J5cHRlZCwgYmVjYXVzZSBpdOKAmXMgY29tbW9uIHRvIHNlbmQgcGFzc3dvcmRzIG92ZXIgdGhl c2UKICAgICBjb25uZWN0aW9ucy4gIFNpbWlsYXJseSwgaWYgeW914oCZcmUgc2VuZGluZyBlbWFp bCB2aWEgU01UUCB0aGF0CiAgICAgcmVxdWlyZXMgYSBwYXNzd29yZCwgeW91IHVzdWFsbHkgd2Fu dCB0aGF0IGNvbm5lY3Rpb24gdG8gYmUKICAgICBlbmNyeXB0ZWQuICBJZiB0aGUgY29ubmVjdGlv biBpc27igJl0IGVuY3J5cHRlZCwgTlNNIHdpbGwgd2FybiB5b3UuCgogICBJZiDigJhuZXR3b3Jr LXNlY3VyaXR5LWxldmVs4oCZIGlzIOKAmGhpZ2jigJksIHRoZSBmb2xsb3dpbmcgY2hlY2tzIHdp bGwgYmUKbWFkZSwgaW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlOgoKYSB2YWxpZGF0ZWQgY2VydGlm aWNhdGUgY2hhbmdlcyB0aGUgcHVibGljIGtleQogICAgIFNlcnZlcnMgY2hhbmdlIHRoZWlyIGtl eXMgb2NjYXNpb25hbGx5LCBhbmQgdGhhdCBpcyBub3JtYWxseQogICAgIG5vdGhpbmcgdG8gYmUg Y29uY2VybmVkIGFib3V0LiAgSG93ZXZlciwgaWYgeW91IGFyZSB3b3JyaWVkIHRoYXQKICAgICB5 b3VyIG5ldHdvcmsgY29ubmVjdGlvbnMgYXJlIGJlaW5nIGhpamFja2VkIGJ5IGFnZW5jaWVzIHdo byBoYXZlCiAgICAgYWNjZXNzIHRvIHBsaWFibGUgQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMgd2hp Y2ggaXNzdWUgbmV3CiAgICAgY2VydGlmaWNhdGVzIGZvciB0aGlyZC1wYXJ0eSBzZXJ2aWNlcywg eW91IG1heSB3YW50IHRvIGtlZXAgdHJhY2sKICAgICBvZiB0aGVzZSBjaGFuZ2VzLgoKRGlmZmll LUhlbGxtYW4gbG93IHByaW1lIGJpdHMKICAgICBXaGVuIGRvaW5nIHRoZSBwdWJsaWMga2V5IGV4 Y2hhbmdlLCB0aGUgbnVtYmVyIG9mIHByaW1lIGJpdHMgc2hvdWxkCiAgICAgYmUgaGlnaCB0byBl bnN1cmUgdGhhdCB0aGUgY2hhbm5lbCBjYW7igJl0IGJlIGVhdmVzZHJvcHBlZCBvbiBieQogICAg IHRoaXJkIHBhcnRpZXMuICBJZiB0aGlzIG51bWJlciBpcyB0b28gbG93LCB5b3Ugd2lsbCBiZSB3 YXJuZWQuCgpSQzQgc3RyZWFtIGNpcGhlcgogICAgIFRoZSBSQzQgc3RyZWFtIGNpcGhlciBpcyBi ZWxpZXZlZCB0byBiZSBvZiBsb3cgcXVhbGl0eSBhbmQgbWF5CiAgICAgYWxsb3cgZWF2ZXNkcm9w cGluZyBieSB0aGlyZCBwYXJ0aWVzLgoKU1NMMSwgU1NMMiBhbmQgU1NMMwogICAgIFRoZSBwcm90 b2NvbHMgb2xkZXIgdGhhbiBUTFMxLjAgYXJlIGJlbGlldmVkIHRvIGJlIHZ1bG5lcmFibGUgdG8g YQogICAgIHZhcmlldHkgb2YgYXR0YWNrcywgYW5kIHlvdSBtYXkgd2FudCB0byBhdm9pZCB1c2lu ZyB0aGVzZSBpZiB3aGF0CiAgICAgeW914oCZcmUgZG9pbmcgcmVxdWlyZXMgaGlnaGVyIHNlY3Vy aXR5LgoKICAgRmluYWxseSwgaWYg4oCYbmV0d29yay1zZWN1cml0eS1sZXZlbOKAmSBpcyDigJhw YXJhbm9pZOKAmSwgeW91IHdpbGwgYWxzbyBiZQpub3RpZmllZCB0aGUgZmlyc3QgdGltZSBOU00g c2VlcyBhbnkgbmV3IGNlcnRpZmljYXRlLiAgVGhpcyB3aWxsIGFsbG93CnlvdSB0byBpbnNwZWN0 IGFsbCB0aGUgY2VydGlmaWNhdGVzIGZyb20gYWxsIHRoZSBjb25uZWN0aW9ucyB0aGF0IEVtYWNz Cm1ha2VzLgoKICAgVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIHZhcmlhYmxlcyBjYW4gYmUgdXNl ZCB0byBjb250cm9sIGRldGFpbHMgb2YKTlNNIG9wZXJhdGlvbjoKCuKAmG5zbS1zZXR0aW5ncy1m aWxl4oCZCiAgICAgVGhpcyBpcyB0aGUgZmlsZSB3aGVyZSBOU00gc3RvcmVzIGRldGFpbHMgYWJv dXQgY29ubmVjdGlvbnMuICBJdAogICAgIGRlZmF1bHRzIHRvIOKAmH4vLmVtYWNzLmQvbmV0d29y ay1zZWN1cml0eS5kYXRh4oCZLgoK4oCYbnNtLXNhdmUtaG9zdC1uYW1lc+KAmQogICAgIEJ5IGRl ZmF1bHQsIGhvc3QgbmFtZXMgd2lsbCBub3QgYmUgc2F2ZWQgZm9yIG5vbi3igJhTVEFSVFRMU+KA mQogICAgIGNvbm5lY3Rpb25zLiAgSW5zdGVhZCBhIGhvc3QvcG9ydCBoYXNoIGlzIHVzZWQgdG8g aWRlbnRpZnkKICAgICBjb25uZWN0aW9ucy4gIFRoaXMgbWVhbnMgdGhhdCBvbmUgY2Fu4oCZdCBj YXN1YWxseSByZWFkIHRoZSBzZXR0aW5ncwogICAgIGZpbGUgdG8gc2VlIHdoYXQgc2VydmVycyB0 aGUgdXNlciBoYXMgY29ubmVjdGVkIHRvLiAgSWYgdGhpcwogICAgIHZhcmlhYmxlIGlzIOKAmHTi gJksIE5TTSB3aWxsIGFsc28gc2F2ZSBob3N0IG5hbWVzIGluIHRoZQogICAgIOKAmG5zbS1zZXR0 aW5ncy1maWxl4oCZLgoKCiogMzcgRG9jdW1lbnQgVmlld2luZwoKRG9jVmlldyBtb2RlIGlzIGEg bWFqb3IgbW9kZSBmb3Igdmlld2luZyBEVkksIFBvc3RTY3JpcHQgKFBTKSwgUERGLApPcGVuRG9j dW1lbnQsIGFuZCBNaWNyb3NvZnQgT2ZmaWNlIGRvY3VtZW50cy4gIEl0IHByb3ZpZGVzIGZlYXR1 cmVzIHN1Y2gKYXMgc2xpY2luZywgem9vbWluZywgYW5kIHNlYXJjaGluZyBpbnNpZGUgZG9jdW1l bnRzLiAgSXQgd29ya3MgYnkKY29udmVydGluZyB0aGUgZG9jdW1lbnQgdG8gYSBzZXQgb2YgaW1h Z2VzIHVzaW5nIHRoZSDigJhnc+KAmSAoR2hvc3RTY3JpcHQpCm9yIOKAmG11ZHJhd+KAmS/igJhw ZGZkcmF34oCZIChNdVBERikgY29tbWFuZHMgYW5kIG90aGVyIGV4dGVybmFsIHRvb2xzICgxKSwg YW5kCmRpc3BsYXlpbmcgdGhvc2UgaW1hZ2VzLgoKICAgV2hlbiB5b3UgdmlzaXQgYSBkb2N1bWVu dCBmaWxlIHRoYXQgY2FuIGJlIGRpc3BsYXllZCB3aXRoIERvY1ZpZXcKbW9kZSwgRW1hY3MgYXV0 b21hdGljYWxseSB1c2VzIHRoYXQgbW9kZSAoMikuICBBcyBhbiBleGNlcHRpb24sIHdoZW4geW91 CnZpc2l0IGEgUG9zdFNjcmlwdCBmaWxlLCBFbWFjcyBzd2l0Y2hlcyB0byBQUyBtb2RlLCBhIG1h am9yIG1vZGUgZm9yCmVkaXRpbmcgUG9zdFNjcmlwdCBmaWxlcyBhcyB0ZXh0OyBob3dldmVyLCBp dCBhbHNvIGVuYWJsZXMgRG9jVmlldyBtaW5vcgptb2RlLCBzbyB5b3UgY2FuIHR5cGUg4oCYQy1j IEMtY+KAmSB0byB2aWV3IHRoZSBkb2N1bWVudCB3aXRoIERvY1ZpZXcuICBJbgplaXRoZXIgRG9j VmlldyBtb2RlIG9yIERvY1ZpZXcgbWlub3IgbW9kZSwgcmVwZWF0aW5nIOKAmEMtYyBDLWPigJkK KOKAmGRvYy12aWV3LXRvZ2dsZS1kaXNwbGF54oCZKSB0b2dnbGVzIGJldHdlZW4gRG9jVmlldyBh bmQgdGhlIHVuZGVybHlpbmcKZmlsZSBjb250ZW50cy4KCiAgIFdoZW4geW91IHZpc2l0IGEgZmls ZSB3aGljaCB3b3VsZCBub3JtYWxseSBiZSBoYW5kbGVkIGJ5IERvY1ZpZXcgbW9kZQpidXQgc29t ZSByZXF1aXJlbWVudCBpcyBub3QgbWV0IChlLmcuLCB5b3Ugb3BlcmF0ZSBpbiBhIHRlcm1pbmFs IGZyYW1lCm9yIEVtYWNzIGhhcyBubyBQTkcgc3VwcG9ydCksIHlvdSBhcmUgcXVlcmllZCBpZiB5 b3Ugd2FudCB0byB2aWV3IHRoZQpkb2N1bWVudOKAmXMgY29udGVudHMgYXMgcGxhaW4gdGV4dC4g IElmIHlvdSBjb25maXJtLCB0aGUgYnVmZmVyIGlzIHB1dCBpbgp0ZXh0IG1vZGUgYW5kIERvY1Zp ZXcgbWlub3IgbW9kZSBpcyBhY3RpdmF0ZWQuICBUaHVzLCBieSB0eXBpbmcg4oCYQy1jCkMtY+KA mSB5b3Ugc3dpdGNoIHRvIHRoZSBmYWxsYmFjayBtb2RlLiAgV2l0aCBhbm90aGVyIOKAmEMtYyBD LWPigJkgeW91IHJldHVybgp0byBEb2NWaWV3IG1vZGUuICBUaGUgcGxhaW4gdGV4dCBjb250ZW50 cyBjYW4gYWxzbyBiZSBkaXNwbGF5ZWQgZnJvbQp3aXRoaW4gRG9jVmlldyBtb2RlIGJ5IHR5cGlu ZyDigJhDLWMgQy104oCZICjigJhkb2Mtdmlldy1vcGVuLXRleHTigJkpLgoKICAgWW91IGNhbiBl eHBsaWNpdGx5IGVuYWJsZSBEb2NWaWV3IG1vZGUgd2l0aCB0aGUgY29tbWFuZCDigJhNLXgKZG9j LXZpZXctbW9kZeKAmS4gIFlvdSBjYW4gdG9nZ2xlIERvY1ZpZXcgbWlub3IgbW9kZSB3aXRoIOKA mE0teApkb2Mtdmlldy1taW5vci1tb2Rl4oCZLgoKICAgV2hlbiBEb2NWaWV3IG1vZGUgc3RhcnRz LCBpdCBkaXNwbGF5cyBhIHdlbGNvbWUgc2NyZWVuIGFuZCBiZWdpbnMKZm9ybWF0dGluZyB0aGUg ZmlsZSwgcGFnZSBieSBwYWdlLiAgSXQgZGlzcGxheXMgdGhlIGZpcnN0IHBhZ2Ugb25jZSB0aGF0 CmhhcyBiZWVuIGZvcm1hdHRlZC4KCiAgIFRvIGtpbGwgdGhlIERvY1ZpZXcgYnVmZmVyLCB0eXBl IOKAmGvigJkKKOKAmGRvYy12aWV3LWtpbGwtcHJvYy1hbmQtYnVmZmVy4oCZKS4gIFRvIGJ1cnkg aXQsIHR5cGUg4oCYceKAmQoo4oCYcXVpdC13aW5kb3figJkpLgoKKyBNZW51OgoKICAtIE5hdmln YXRpb246IERvY1ZpZXcgTmF2aWdhdGlvbi4gIE5hdmlnYXRpbmcgRG9jVmlldyBidWZmZXJzLgog IC0gU2VhcmNoaW5nOiBEb2NWaWV3IFNlYXJjaGluZy4gICAgU2VhcmNoaW5nIGluc2lkZSBkb2N1 bWVudHMuCiAgLSBTbGljaW5nOiBEb2NWaWV3IFNsaWNpbmcuICAgICAgICBTcGVjaWZ5aW5nIHdo aWNoIHBhcnQgb2YgYSBwYWdlIGlzIGRpc3BsYXllZC4KICAtIENvbnZlcnNpb246IERvY1ZpZXcg Q29udmVyc2lvbi4gIEluZmx1ZW5jaW5nIGFuZCB0cmlnZ2VyaW5nIGNvbnZlcnNpb24uCgogICAt LS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgRm9yIFBvc3RTY3JpcHQgZmls ZXMsIEdob3N0U2NyaXB0IGlzIGEgaGFyZCByZXF1aXJlbWVudC4gIEZvciBEVkkKZmlsZXMsIOKA mGR2aXBkZuKAmSBvciDigJhkdmlwZGZt4oCZIGlzIG5lZWRlZC4gIEZvciBPcGVuRG9jdW1lbnQg YW5kIE1pY3Jvc29mdApPZmZpY2UgZG9jdW1lbnRzLCB0aGUg4oCYdW5vY29uduKAmSB0b29sIGlz IG5lZWRlZC4KCiAgICgyKSBUaGUgbmVlZGVkIGV4dGVybmFsIHRvb2xzIGZvciB0aGUgZG9jdW1l bnQgdHlwZSBtdXN0IGJlCmF2YWlsYWJsZSwgYW5kIEVtYWNzIG11c3QgYmUgcnVubmluZyBpbiBh IGdyYXBoaWNhbCBmcmFtZSBhbmQgaGF2ZSBQTkcKaW1hZ2Ugc3VwcG9ydC4gIElmIHRoZXNlIHJl cXVpcmVtZW50cyBpcyBub3QgZnVsZmlsbGVkLCBFbWFjcyBmYWxscyBiYWNrCnRvIGFub3RoZXIg bWFqb3IgbW9kZS4KCgoqKiAzNy4xIERvY1ZpZXcgTmF2aWdhdGlvbgoKSW4gRG9jVmlldyBtb2Rl LCB5b3UgY2FuIHNjcm9sbCB0aGUgY3VycmVudCBwYWdlIHVzaW5nIHRoZSB1c3VhbCBFbWFjcwpt b3ZlbWVudCBrZXlzOiDigJhDLXDigJksIOKAmEMtbuKAmSwg4oCYQy1i4oCZLCDigJhDLWbigJks IGFuZCB0aGUgYXJyb3cga2V5cy4KCiAgIEJ5IGRlZmF1bHQsIHRoZSBsaW5lLW1vdGlvbiBrZXlz IOKAmEMtcOKAmSBhbmQg4oCYQy1u4oCZIHN0b3Agc2Nyb2xsaW5nIGF0CnRoZSBiZWdpbm5pbmcg YW5kIGVuZCBvZiB0aGUgY3VycmVudCBwYWdlLCByZXNwZWN0aXZlbHkuICBIb3dldmVyLCBpZgp5 b3UgY2hhbmdlIHRoZSB2YXJpYWJsZSDigJhkb2Mtdmlldy1jb250aW51b3Vz4oCZIHRvIGEgbm9u LeKAmG5pbOKAmSB2YWx1ZSwgdGhlbgrigJhDLXDigJkgZGlzcGxheXMgdGhlIHByZXZpb3VzIHBh Z2UgaWYgeW91IGFyZSBhbHJlYWR5IGF0IHRoZSBiZWdpbm5pbmcgb2YKdGhlIGN1cnJlbnQgcGFn ZSwgYW5kIOKAmEMtbuKAmSBkaXNwbGF5cyB0aGUgbmV4dCBwYWdlIGlmIHlvdSBhcmUgYXQgdGhl IGVuZApvZiB0aGUgY3VycmVudCBwYWdlLgoKICAgWW91IGNhbiBhbHNvIGRpc3BsYXkgdGhlIG5l eHQgcGFnZSBieSB0eXBpbmcg4oCYbuKAmSwgPFBhZ2VEb3duPiwgPG5leHQ+Cm9yIOKAmEMteCBd 4oCZICjigJhkb2Mtdmlldy1uZXh0LXBhZ2XigJkpLiAgVG8gZGlzcGxheSB0aGUgcHJldmlvdXMg cGFnZSwgdHlwZQrigJhw4oCZLCA8UGFnZVVwPiwgPHByaW9yPiBvciDigJhDLXggW+KAmSAo4oCY ZG9jLXZpZXctcHJldmlvdXMtcGFnZeKAmSkuCgogICA8U1BDPiAo4oCYZG9jLXZpZXctc2Nyb2xs LXVwLW9yLW5leHQtcGFnZeKAmSkgaXMgYSBjb252ZW5pZW50IHdheSB0bwphZHZhbmNlIHRocm91 Z2ggdGhlIGRvY3VtZW50LiAgSXQgc2Nyb2xscyB3aXRoaW4gdGhlIGN1cnJlbnQgcGFnZSBvcgph ZHZhbmNlcyB0byB0aGUgbmV4dC4gIDxERUw+IG1vdmVzIGJhY2t3YXJkcyBpbiBhIHNpbWlsYXIg d2F5CijigJhkb2Mtdmlldy1zY3JvbGwtZG93bi1vci1wcmV2aW91cy1wYWdl4oCZKS4KCiAgIFRv IGdvIHRvIHRoZSBmaXJzdCBwYWdlLCB0eXBlIOKAmE0tPOKAmSAo4oCYZG9jLXZpZXctZmlyc3Qt cGFnZeKAmSk7IHRvIGdvIHRvCnRoZSBsYXN0IG9uZSwgdHlwZSDigJhNLT7igJkgKOKAmGRvYy12 aWV3LWxhc3QtcGFnZeKAmSkuICBUbyBqdW1wIHRvIGEgcGFnZSBieQppdHMgbnVtYmVyLCB0eXBl IOKAmE0tZyBNLWfigJkgb3Ig4oCYTS1nIGfigJkgKOKAmGRvYy12aWV3LWdvdG8tcGFnZeKAmSku CgogICBZb3UgY2FuIGVubGFyZ2Ugb3Igc2hyaW5rIHRoZSBkb2N1bWVudCB3aXRoIOKAmCvigJkg KOKAmGRvYy12aWV3LWVubGFyZ2XigJkpCmFuZCDigJgt4oCZICjigJhkb2Mtdmlldy1zaHJpbmvi gJkpLiAgVGhlc2UgY29tbWFuZHMgd29yayBieSByZWNvbnZlcnRpbmcgdGhlCmRvY3VtZW50IGF0 IHRoZSBuZXcgc2l6ZS4gIFRvIHNwZWNpZnkgdGhlIGRlZmF1bHQgc2l6ZSBmb3IgRG9jVmlldywK Y3VzdG9taXplIHRoZSB2YXJpYWJsZSDigJhkb2Mtdmlldy1yZXNvbHV0aW9u4oCZLgoKCioqIDM3 LjIgRG9jVmlldyBTZWFyY2hpbmcKCkluIERvY1ZpZXcgbW9kZSwgeW91IGNhbiBzZWFyY2ggdGhl IGZpbGXigJlzIHRleHQgZm9yIGEgcmVndWxhciBleHByZXNzaW9uCigqbm90ZSBSZWdleHBzOjop LiAgVGhlIGludGVyZmFjZSBmb3Igc2VhcmNoaW5nIGlzIGluc3BpcmVkIGJ5IOKAmGlzZWFyY2ji gJkKKCpub3RlIEluY3JlbWVudGFsIFNlYXJjaDo6KS4KCiAgIFRvIGJlZ2luIGEgc2VhcmNoLCB0 eXBlIOKAmEMtc+KAmSAo4oCYZG9jLXZpZXctc2VhcmNo4oCZKSBvciDigJhDLXLigJkKKOKAmGRv Yy12aWV3LXNlYXJjaC1iYWNrd2FyZOKAmSkuICBUaGlzIHJlYWRzIGEgcmVndWxhciBleHByZXNz aW9uIHVzaW5nIGEKbWluaWJ1ZmZlciwgdGhlbiBlY2hvZXMgdGhlIG51bWJlciBvZiBtYXRjaGVz IGZvdW5kIHdpdGhpbiB0aGUgZG9jdW1lbnQuCllvdSBjYW4gbW92ZSBmb3J3YXJkIGFuZCBiYWNr IGFtb25nIHRoZSBtYXRjaGVzIGJ5IHR5cGluZyDigJhDLXPigJkgYW5kCuKAmEMtcuKAmS4gIERv Y1ZpZXcgbW9kZSBoYXMgbm8gd2F5IHRvIHNob3cgdGhlIG1hdGNoIGluc2lkZSB0aGUgcGFnZSBp bWFnZTsKaW5zdGVhZCwgaXQgZGlzcGxheXMgYSB0b29sdGlwIChhdCB0aGUgbW91c2UgcG9zaXRp b24pIGxpc3RpbmcgYWxsCm1hdGNoaW5nIGxpbmVzIGluIHRoZSBjdXJyZW50IHBhZ2UuICBUbyBm b3JjZSBkaXNwbGF5IG9mIHRoaXMgdG9vbHRpcCwKdHlwZSDigJhDLXTigJkgKOKAmGRvYy12aWV3 LXNob3ctdG9vbHRpcOKAmSkuCgogICBUbyBzdGFydCBhIG5ldyBzZWFyY2gsIHVzZSB0aGUgc2Vh cmNoIGNvbW1hbmQgd2l0aCBhIHByZWZpeCBhcmd1bWVudDsKaS5lLiwg4oCYQy11IEMtc+KAmSBm b3IgYSBmb3J3YXJkIHNlYXJjaCBvciDigJhDLXUgQy1y4oCZIGZvciBhIGJhY2t3YXJkIHNlYXJj aC4KCgoqKiAzNy4zIERvY1ZpZXcgU2xpY2luZwoKRG9jdW1lbnRzIG9mdGVuIGhhdmUgd2lkZSBt YXJnaW5zIGZvciBwcmludGluZy4gIFRoZXkgYXJlIGFubm95aW5nIHdoZW4KcmVhZGluZyB0aGUg ZG9jdW1lbnQgb24gdGhlIHNjcmVlbiwgYmVjYXVzZSB0aGV5IHVzZSB1cCBzY3JlZW4gc3BhY2Ug YW5kCmNhbiBjYXVzZSBpbmNvbnZlbmllbnQgc2Nyb2xsaW5nLgoKICAgV2l0aCBEb2NWaWV3IHlv dSBjYW4gaGlkZSB0aGVzZSBtYXJnaW5zIGJ5IHNlbGVjdGluZyBhICJzbGljZSIgb2YKcGFnZXMg dG8gZGlzcGxheS4gIEEgc2xpY2UgaXMgYSByZWN0YW5nbGUgd2l0aGluIHRoZSBwYWdlIGFyZWE7 IG9uY2UgeW91CnNwZWNpZnkgYSBzbGljZSBpbiBEb2NWaWV3LCBpdCBhcHBsaWVzIHRvIHdoaWNo ZXZlciBwYWdlIHlvdSBsb29rIGF0LgoKICAgVG8gc3BlY2lmeSB0aGUgc2xpY2UgbnVtZXJpY2Fs bHksIHR5cGUg4oCYcyBz4oCZICjigJhkb2Mtdmlldy1zZXQtc2xpY2XigJkpOwp0aGVuIGVudGVy IHRoZSB0b3AgbGVmdCBwaXhlbCBwb3NpdGlvbiBhbmQgdGhlIHNsaWNl4oCZcyB3aWR0aCBhbmQg aGVpZ2h0LgoKICAgQSBtb3JlIGNvbnZlbmllbnQgZ3JhcGhpY2FsIHdheSB0byBzcGVjaWZ5IHRo ZSBzbGljZSBpcyB3aXRoIOKAmHMgbeKAmQoo4oCYZG9jLXZpZXctc2V0LXNsaWNlLXVzaW5nLW1v dXNl4oCZKSwgd2hlcmUgeW91IHVzZSB0aGUgbW91c2UgdG8gc2VsZWN0CnRoZSBzbGljZS4gIFNp bXBseSBwcmVzcyBhbmQgaG9sZCB0aGUgbGVmdCBtb3VzZSBidXR0b24gYXQgdGhlCnVwcGVyLWxl ZnQgY29ybmVyIG9mIHRoZSByZWdpb24geW91IHdhbnQgdG8gaGF2ZSBpbiB0aGUgc2xpY2UsIHRo ZW4gbW92ZQp0aGUgbW91c2UgcG9pbnRlciB0byB0aGUgbG93ZXItcmlnaHQgY29ybmVyIGFuZCBy ZWxlYXNlIHRoZSBidXR0b24uCgogICBUaGUgbW9zdCBjb252ZW5pZW50IHdheSBpcyB0byBzZXQg dGhlIG9wdGltYWwgc2xpY2UgYnkgdXNpbmcKQm91bmRpbmdCb3ggaW5mb3JtYXRpb24gYXV0b21h dGljYWxseSBkZXRlcm1pbmVkIGZyb20gdGhlIGRvY3VtZW50IGJ5CnR5cGluZyDigJhzIGLigJkg KOKAmGRvYy12aWV3LXNldC1zbGljZS1mcm9tLWJvdW5kaW5nLWJveOKAmSkuCgogICBUbyBjYW5j ZWwgdGhlIHNlbGVjdGVkIHNsaWNlLCB0eXBlIOKAmHMgcuKAmSAo4oCYZG9jLXZpZXctcmVzZXQt c2xpY2XigJkpLgpUaGVuIERvY1ZpZXcgc2hvd3MgdGhlIGVudGlyZSBwYWdlIGluY2x1ZGluZyBp dHMgZW50aXJlIG1hcmdpbnMuCgoKKiogMzcuNCBEb2NWaWV3IENvbnZlcnNpb24KCkZvciBlZmZp Y2llbmN5LCBEb2NWaWV3IGNhY2hlcyB0aGUgaW1hZ2VzIHByb2R1Y2VkIGJ5IOKAmGdz4oCZLiAg VGhlIG5hbWUgb2YKdGhlIGRpcmVjdG9yeSB3aGVyZSBpdCBjYWNoZXMgaW1hZ2VzIGlzIGdpdmVu IGJ5IHRoZSB2YXJpYWJsZQrigJhkb2Mtdmlldy1jYWNoZS1kaXJlY3RvcnnigJkuICBZb3UgY2Fu IGNsZWFyIHRoZSBjYWNoZSBkaXJlY3RvcnkgYnkgdHlwaW5nCuKAmE0teCBkb2Mtdmlldy1jbGVh ci1jYWNoZeKAmS4KCiAgIFRvIGZvcmNlIHJlY29udmVyc2lvbiBvZiB0aGUgY3VycmVudGx5IHZp ZXdlZCBkb2N1bWVudCwgdHlwZSDigJhy4oCZIG9yCuKAmGfigJkgKOKAmHJldmVydC1idWZmZXLi gJkpLiAgVG8ga2lsbCB0aGUgY29udmVydGVyIHByb2Nlc3MgYXNzb2NpYXRlZCB3aXRoCnRoZSBj dXJyZW50IGJ1ZmZlciwgdHlwZSDigJhL4oCZICjigJhkb2Mtdmlldy1raWxsLXByb2PigJkpLiAg VGhlIGNvbW1hbmQg4oCYa+KAmQoo4oCYZG9jLXZpZXcta2lsbC1wcm9jLWFuZC1idWZmZXLigJkp IGtpbGxzIHRoZSBjb252ZXJ0ZXIgcHJvY2VzcyBhbmQgdGhlCkRvY1ZpZXcgYnVmZmVyLgoKCiog MzggUnVubmluZyBTaGVsbCBDb21tYW5kcyBmcm9tIEVtYWNzCgpFbWFjcyBoYXMgY29tbWFuZHMg Zm9yIHBhc3Npbmcgc2luZ2xlIGNvbW1hbmQgbGluZXMgdG8gc2hlbGwKc3VicHJvY2Vzc2VzLCBh bmQgZm9yIHJ1bm5pbmcgYSBzaGVsbCBpbnRlcmFjdGl2ZWx5IHdpdGggaW5wdXQgYW5kCm91dHB1 dCB0byBhbiBFbWFjcyBidWZmZXIsIGFuZCBmb3IgcnVubmluZyBhIHNoZWxsIGluIGEgdGVybWlu YWwKZW11bGF0b3Igd2luZG93LgoK4oCYTS0hIENNRCA8UkVUPuKAmQogICAgIFJ1biB0aGUgc2hl bGwgY29tbWFuZCBDTUQgYW5kIGRpc3BsYXkgdGhlIG91dHB1dCAo4oCYc2hlbGwtY29tbWFuZOKA mSkuCuKAmE0tfCBDTUQgPFJFVD7igJkKICAgICBSdW4gdGhlIHNoZWxsIGNvbW1hbmQgQ01EIHdp dGggcmVnaW9uIGNvbnRlbnRzIGFzIGlucHV0OyBvcHRpb25hbGx5CiAgICAgcmVwbGFjZSB0aGUg cmVnaW9uIHdpdGggdGhlIG91dHB1dCAo4oCYc2hlbGwtY29tbWFuZC1vbi1yZWdpb27igJkpLgri gJhNLSYgQ01EIDxSRVQ+4oCZCiAgICAgUnVuIHRoZSBzaGVsbCBjb21tYW5kIENNRCBhc3luY2hy b25vdXNseSwgYW5kIGRpc3BsYXkgdGhlIG91dHB1dAogICAgICjigJhhc3luYy1zaGVsbC1jb21t YW5k4oCZKS4K4oCYTS14IHNoZWxs4oCZCiAgICAgUnVuIGEgc3Vic2hlbGwgd2l0aCBpbnB1dCBh bmQgb3V0cHV0IHRocm91Z2ggYW4gRW1hY3MgYnVmZmVyLiAgWW91CiAgICAgY2FuIHRoZW4gZ2l2 ZSBjb21tYW5kcyBpbnRlcmFjdGl2ZWx5LgrigJhNLXggdGVybeKAmQogICAgIFJ1biBhIHN1YnNo ZWxsIHdpdGggaW5wdXQgYW5kIG91dHB1dCB0aHJvdWdoIGFuIEVtYWNzIGJ1ZmZlci4gIFlvdQog ICAgIGNhbiB0aGVuIGdpdmUgY29tbWFuZHMgaW50ZXJhY3RpdmVseS4gIEZ1bGwgdGVybWluYWwg ZW11bGF0aW9uIGlzCiAgICAgYXZhaWxhYmxlLgoKICAgV2hlbmV2ZXIgeW91IHNwZWNpZnkgYSBy ZWxhdGl2ZSBmaWxlIG5hbWUgZm9yIGFuIGV4ZWN1dGFibGUgcHJvZ3JhbQooZWl0aGVyIGluIHRo ZSBDTUQgYXJndW1lbnQgdG8gb25lIG9mIHRoZSBhYm92ZSBjb21tYW5kcywgb3IgaW4gb3RoZXIK Y29udGV4dHMpLCBFbWFjcyBzZWFyY2hlcyBmb3IgdGhlIHByb2dyYW0gaW4gdGhlIGRpcmVjdG9y aWVzIHNwZWNpZmllZApieSB0aGUgdmFyaWFibGUg4oCYZXhlYy1wYXRo4oCZLiAgVGhlIHZhbHVl IG9mIHRoaXMgdmFyaWFibGUgbXVzdCBiZSBhIGxpc3QKb2YgZGlyZWN0b3JpZXM7IHRoZSBkZWZh dWx0IHZhbHVlIGlzIGluaXRpYWxpemVkIGZyb20gdGhlIGVudmlyb25tZW50CnZhcmlhYmxlIOKA mFBBVEjigJkgd2hlbiBFbWFjcyBpcyBzdGFydGVkICgqbm90ZSBHZW5lcmFsIFZhcmlhYmxlczo6 KS4KCiAgIOKAmE0teCBlc2hlbGzigJkgaW52b2tlcyBhIHNoZWxsIGltcGxlbWVudGVkIGVudGly ZWx5IGluIEVtYWNzLiAgSXQgaXMKZG9jdW1lbnRlZCBpbiBpdHMgb3duIG1hbnVhbC4gICpOb3Rl IEVzaGVsbDogKGVzaGVsbClUb3AuCgorIE1lbnU6CgogIC0gU2luZ2xlIFNoZWxsOjogICAgICAg ICAgIEhvdyB0byBydW4gb25lIHNoZWxsIGNvbW1hbmQgYW5kIHJldHVybi4KICAtIEludGVyYWN0 aXZlIFNoZWxsOjogICAgICBQZXJtYW5lbnQgc2hlbGwgdGFraW5nIGlucHV0IHZpYSBFbWFjcy4K ICAtIFNoZWxsIE1vZGU6OiAgICAgICAgICAgICBTcGVjaWFsIEVtYWNzIGNvbW1hbmRzIHVzZWQg d2l0aCBwZXJtYW5lbnQgc2hlbGwuCiAgLSBTaGVsbCBQcm9tcHRzOjogICAgICAgICAgVHdvIHdh eXMgdG8gcmVjb2duaXplIHNoZWxsIHByb21wdHMuCiAgLSBIaXN0b3J5OiBTaGVsbCBIaXN0b3J5 LiAgUmVwZWF0aW5nIHByZXZpb3VzIGNvbW1hbmRzIGluIGEgc2hlbGwgYnVmZmVyLgogIC0gRGly ZWN0b3J5IFRyYWNraW5nOjogICAgIEtlZXBpbmcgdHJhY2sgd2hlbiB0aGUgc3Vic2hlbGwgY2hh bmdlcyBkaXJlY3RvcnkuCiAgLSBPcHRpb25zOiBTaGVsbCBPcHRpb25zLiAgT3B0aW9ucyBmb3Ig Y3VzdG9taXppbmcgU2hlbGwgbW9kZS4KICAtIFRlcm1pbmFsIGVtdWxhdG9yOjogICAgICBBbiBF bWFjcyB3aW5kb3cgYXMgYSB0ZXJtaW5hbCBlbXVsYXRvci4KICAtIFRlcm0gTW9kZTo6ICAgICAg ICAgICAgICBTcGVjaWFsIEVtYWNzIGNvbW1hbmRzIHVzZWQgaW4gVGVybSBtb2RlLgogIC0gUmVt b3RlIEhvc3Q6OiAgICAgICAgICAgIENvbm5lY3RpbmcgdG8gYW5vdGhlciBjb21wdXRlci4KICAt IFNlcmlhbCBUZXJtaW5hbDo6ICAgICAgICBDb25uZWN0aW5nIHRvIGEgc2VyaWFsIHBvcnQuCgoK KiogMzguMSBTaW5nbGUgU2hlbGwgQ29tbWFuZHMKCuKAmE0tIeKAmSAo4oCYc2hlbGwtY29tbWFu ZOKAmSkgcmVhZHMgYSBsaW5lIG9mIHRleHQgdXNpbmcgdGhlIG1pbmlidWZmZXIgYW5kCmV4ZWN1 dGVzIGl0IGFzIGEgc2hlbGwgY29tbWFuZCwgaW4gYSBzdWJzaGVsbCBtYWRlIGp1c3QgZm9yIHRo YXQKY29tbWFuZC4gIFN0YW5kYXJkIGlucHV0IGZvciB0aGUgY29tbWFuZCBjb21lcyBmcm9tIHRo ZSBudWxsIGRldmljZS4gIElmCnRoZSBzaGVsbCBjb21tYW5kIHByb2R1Y2VzIGFueSBvdXRwdXQs IHRoZSBvdXRwdXQgYXBwZWFycyBlaXRoZXIgaW4gdGhlCmVjaG8gYXJlYSAoaWYgaXQgaXMgc2hv cnQpLCBvciBpbiBhbiBFbWFjcyBidWZmZXIgbmFtZWQg4oCYKlNoZWxsIENvbW1hbmQKT3V0cHV0 KuKAmSwgZGlzcGxheWVkIGluIGFub3RoZXIgd2luZG93IChpZiB0aGUgb3V0cHV0IGlzIGxvbmcp LiAgVGhlCnZhcmlhYmxlcyDigJhyZXNpemUtbWluaS13aW5kb3dz4oCZIGFuZCDigJhtYXgtbWlu aS13aW5kb3ctaGVpZ2h04oCZICgqbm90ZQpNaW5pYnVmZmVyIEVkaXQ6OikgY29udHJvbCB3aGVu IEVtYWNzIHNob3VsZCBjb25zaWRlciB0aGUgb3V0cHV0IHRvIGJlCnRvbyBsb25nIGZvciB0aGUg ZWNobyBhcmVhLgoKICAgRm9yIGluc3RhbmNlLCBvbmUgd2F5IHRvIGRlY29tcHJlc3MgYSBmaWxl IG5hbWVkIOKAmGZvby5neuKAmSBpcyB0byB0eXBlCuKAmE0tISBndW56aXAgZm9vLmd6IDxSRVQ+ 4oCZLiAgVGhhdCBzaGVsbCBjb21tYW5kIG5vcm1hbGx5IGNyZWF0ZXMgdGhlIGZpbGUK4oCYZm9v 4oCZIGFuZCBwcm9kdWNlcyBubyB0ZXJtaW5hbCBvdXRwdXQuCgogICBBIG51bWVyaWMgYXJndW1l bnQgdG8g4oCYc2hlbGwtY29tbWFuZOKAmSwgZS5nLiwg4oCYTS0xIE0tIeKAmSwgY2F1c2VzIGl0 IHRvCmluc2VydCB0ZXJtaW5hbCBvdXRwdXQgaW50byB0aGUgY3VycmVudCBidWZmZXIgaW5zdGVh ZCBvZiBhIHNlcGFyYXRlCmJ1ZmZlci4gIEl0IHB1dHMgcG9pbnQgYmVmb3JlIHRoZSBvdXRwdXQs IGFuZCBzZXRzIHRoZSBtYXJrIGFmdGVyIHRoZQpvdXRwdXQuICBGb3IgaW5zdGFuY2UsIOKAmE0t MSBNLSEgZ3VuemlwIDwgZm9vLmd6IDxSRVQ+4oCZIHdvdWxkIGluc2VydCB0aGUKdW5jb21wcmVz c2VkIGZvcm0gb2YgdGhlIGZpbGUg4oCYZm9vLmd64oCZIGludG8gdGhlIGN1cnJlbnQgYnVmZmVy LgoKICAgUHJvdmlkZWQgdGhlIHNwZWNpZmllZCBzaGVsbCBjb21tYW5kIGRvZXMgbm90IGVuZCB3 aXRoIOKAmCbigJksIGl0IHJ1bnMKInN5bmNocm9ub3VzbHkiLCBhbmQgeW91IG11c3Qgd2FpdCBm b3IgaXQgdG8gZXhpdCBiZWZvcmUgY29udGludWluZyB0bwp1c2UgRW1hY3MuICBUbyBzdG9wIHdh aXRpbmcsIHR5cGUg4oCYQy1n4oCZIHRvIHF1aXQ7IHRoaXMgc2VuZHMgYSDigJhTSUdJTlTigJkK c2lnbmFsIHRvIHRlcm1pbmF0ZSB0aGUgc2hlbGwgY29tbWFuZCAodGhpcyBpcyB0aGUgc2FtZSBz aWduYWwgdGhhdArigJhDLWPigJkgbm9ybWFsbHkgZ2VuZXJhdGVzIGluIHRoZSBzaGVsbCkuICBF bWFjcyB0aGVuIHdhaXRzIHVudGlsIHRoZQpjb21tYW5kIGFjdHVhbGx5IHRlcm1pbmF0ZXMuICBJ ZiB0aGUgc2hlbGwgY29tbWFuZCBkb2VzbuKAmXQgc3RvcCAoYmVjYXVzZQppdCBpZ25vcmVzIHRo ZSDigJhTSUdJTlTigJkgc2lnbmFsKSwgdHlwZSDigJhDLWfigJkgYWdhaW47IHRoaXMgc2VuZHMg dGhlCmNvbW1hbmQgYSDigJhTSUdLSUxM4oCZIHNpZ25hbCwgd2hpY2ggaXMgaW1wb3NzaWJsZSB0 byBpZ25vcmUuCgogICBBIHNoZWxsIGNvbW1hbmQgdGhhdCBlbmRzIGluIOKAmCbigJkgaXMgZXhl Y3V0ZWQgImFzeW5jaHJvbm91c2x5IiwgYW5kCnlvdSBjYW4gY29udGludWUgdG8gdXNlIEVtYWNz IGFzIGl0IHJ1bnMuICBZb3UgY2FuIGFsc28gdHlwZSDigJhNLSbigJkKKOKAmGFzeW5jLXNoZWxs LWNvbW1hbmTigJkpIHRvIGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIGFzeW5jaHJvbm91c2x5OyB0 aGlzCmlzIGV4YWN0bHkgbGlrZSBjYWxsaW5nIOKAmE0tIeKAmSB3aXRoIGEgdHJhaWxpbmcg4oCY JuKAmSwgZXhjZXB0IHRoYXQgeW91IGRvCm5vdCBuZWVkIHRoZSDigJgm4oCZLiAgVGhlIGRlZmF1 bHQgb3V0cHV0IGJ1ZmZlciBmb3IgYXN5bmNocm9ub3VzIHNoZWxsCmNvbW1hbmRzIGlzIG5hbWVk IOKAmCpBc3luYyBTaGVsbCBDb21tYW5kKuKAmS4gIEVtYWNzIGluc2VydHMgdGhlIG91dHB1dApp bnRvIHRoaXMgYnVmZmVyIGFzIGl0IGNvbWVzIGluLCB3aGV0aGVyIG9yIG5vdCB0aGUgYnVmZmVy IGlzIHZpc2libGUgaW4KYSB3aW5kb3cuCgogICBJZiB5b3Ugd2FudCB0byBydW4gbW9yZSB0aGFu IG9uZSBhc3luY2hyb25vdXMgc2hlbGwgY29tbWFuZCBhdCB0aGUKc2FtZSB0aW1lLCB0aGV5IGNv dWxkIGVuZCB1cCBjb21wZXRpbmcgZm9yIHRoZSBvdXRwdXQgYnVmZmVyLiAgVGhlCm9wdGlvbiDi gJhhc3luYy1zaGVsbC1jb21tYW5kLWJ1ZmZlcuKAmSBzcGVjaWZpZXMgd2hhdCB0byBkbyBhYm91 dCB0aGlzOwplLmcuLCB3aGV0aGVyIHRvIHJlbmFtZSB0aGUgcHJlLWV4aXN0aW5nIG91dHB1dCBi dWZmZXIsIG9yIHRvIHVzZSBhCmRpZmZlcmVudCBidWZmZXIgZm9yIHRoZSBuZXcgY29tbWFuZC4g IENvbnN1bHQgdGhlIHZhcmlhYmxl4oCZcwpkb2N1bWVudGF0aW9uIGZvciBtb3JlIHBvc3NpYmls aXRpZXMuCgogICBJZiB5b3Ugd2FudCB0aGUgb3V0cHV0IGJ1ZmZlciBmb3IgYXN5bmNocm9ub3Vz IHNoZWxsIGNvbW1hbmRzIHRvIGJlCmRpc3BsYXllZCBvbmx5IHdoZW4gdGhlIGNvbW1hbmQgZ2Vu ZXJhdGVzIG91dHB1dCwgc2V0CuKAmGFzeW5jLXNoZWxsLWNvbW1hbmQtZGlzcGxheS1idWZmZXLi gJkgdG8g4oCYbmls4oCZLgoKICAg4oCYTS184oCZICjigJhzaGVsbC1jb21tYW5kLW9uLXJlZ2lv buKAmSkgaXMgbGlrZSDigJhNLSHigJksIGJ1dCBwYXNzZXMgdGhlCmNvbnRlbnRzIG9mIHRoZSBy ZWdpb24gYXMgdGhlIHN0YW5kYXJkIGlucHV0IHRvIHRoZSBzaGVsbCBjb21tYW5kLAppbnN0ZWFk IG9mIG5vIGlucHV0LiAgV2l0aCBhIG51bWVyaWMgYXJndW1lbnQsIGl0IGRlbGV0ZXMgdGhlIG9s ZCByZWdpb24KYW5kIHJlcGxhY2VzIGl0IHdpdGggdGhlIG91dHB1dCBmcm9tIHRoZSBzaGVsbCBj b21tYW5kLgoKICAgRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIOKAmE0tfOKAmSB3aXRoIHRoZSDi gJhncGfigJkgcHJvZ3JhbSB0byBzZWUgd2hhdAprZXlzIGFyZSBpbiB0aGUgYnVmZmVyLiAgSWYg dGhlIGJ1ZmZlciBjb250YWlucyBhIEdudVBHIGtleSwgdHlwZSDigJhDLXggaApNLXwgZ3BnIDxS RVQ+4oCZIHRvIGZlZWQgdGhlIGVudGlyZSBidWZmZXIgY29udGVudHMgdG8g4oCYZ3Bn4oCZLiAg VGhpcyB3aWxsCm91dHB1dCB0aGUgbGlzdCBvZiBrZXlzIHRvIHRoZSDigJgqU2hlbGwgQ29tbWFu ZCBPdXRwdXQq4oCZIGJ1ZmZlci4KCiAgIFRoZSBhYm92ZSBjb21tYW5kcyB1c2UgdGhlIHNoZWxs IHNwZWNpZmllZCBieSB0aGUgdmFyaWFibGUK4oCYc2hlbGwtZmlsZS1uYW1l4oCZLiAgSXRzIGRl ZmF1bHQgdmFsdWUgaXMgZGV0ZXJtaW5lZCBieSB0aGUg4oCYU0hFTEzigJkKZW52aXJvbm1lbnQg dmFyaWFibGUgd2hlbiBFbWFjcyBpcyBzdGFydGVkLiAgSWYgdGhlIGZpbGUgbmFtZSBpcwpyZWxh dGl2ZSwgRW1hY3Mgc2VhcmNoZXMgdGhlIGRpcmVjdG9yaWVzIGxpc3RlZCBpbiDigJhleGVjLXBh dGjigJkgKCpub3RlClNoZWxsOjopLgoKICAgVG8gc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gZm9y IOKAmE0tIeKAmSBvciDigJhNLXzigJksIHVzZSB0aGUgY29tbWFuZCDigJhDLXgKPFJFVD4gY+KA mSBpbW1lZGlhdGVseSBiZWZvcmVoYW5kLiAgKk5vdGUgQ29tbXVuaWNhdGlvbiBDb2Rpbmc6Oi4K CiAgIEJ5IGRlZmF1bHQsIGVycm9yIG91dHB1dCBpcyBpbnRlcm1peGVkIHdpdGggdGhlIHJlZ3Vs YXIgb3V0cHV0IGluIHRoZQpvdXRwdXQgYnVmZmVyLiAgQnV0IGlmIHlvdSBjaGFuZ2UgdGhlIHZh bHVlIG9mIHRoZSB2YXJpYWJsZQrigJhzaGVsbC1jb21tYW5kLWRlZmF1bHQtZXJyb3ItYnVmZmVy 4oCZIHRvIGEgc3RyaW5nLCBlcnJvciBvdXRwdXQgaXMKaW5zZXJ0ZWQgaW50byBhIGJ1ZmZlciBv ZiB0aGF0IG5hbWUuCgogICBCeSBkZWZhdWx0LCB0aGUgb3V0cHV0IGJ1ZmZlciBpcyBlcmFzZWQg YmV0d2VlbiBzaGVsbCBjb21tYW5kcy4gIElmCnlvdSBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoZSB2 YXJpYWJsZSDigJhzaGVsbC1jb21tYW5kLWRvbnQtZXJhc2UtYnVmZmVy4oCZCnRvIGEgbm9uLeKA mG5pbOKAmSB2YWx1ZSwgdGhlIG91dHB1dCBidWZmZXIgaXMgbm90IGVyYXNlZC4gIFRoaXMgdmFy aWFibGUKYWxzbyBjb250cm9scyB3aGVyZSB0byBzZXQgdGhlIHBvaW50IGluIHRoZSBvdXRwdXQg YnVmZmVyIGFmdGVyIHRoZQpjb21tYW5kIGNvbXBsZXRlczsgc2VlIHRoZSBkb2N1bWVudGF0aW9u IG9mIHRoZSB2YXJpYWJsZSBmb3IgZGV0YWlscy4KCgoqKiAzOC4yIEludGVyYWN0aXZlIFN1YnNo ZWxsCgpUbyBydW4gYSBzdWJzaGVsbCBpbnRlcmFjdGl2ZWx5LCB0eXBlIOKAmE0teCBzaGVsbOKA mS4gIFRoaXMgY3JlYXRlcyAob3IKcmV1c2VzKSBhIGJ1ZmZlciBuYW1lZCDigJgqc2hlbGwq4oCZ LCBhbmQgcnVucyBhIHNoZWxsIHN1YnByb2Nlc3Mgd2l0aCBpbnB1dApjb21pbmcgZnJvbSBhbmQg b3V0cHV0IGdvaW5nIHRvIHRoYXQgYnVmZmVyLiAgVGhhdCBpcyB0byBzYXksIGFueQp0ZXJtaW5h bCBvdXRwdXQgZnJvbSB0aGUgc3Vic2hlbGwgZ29lcyBpbnRvIHRoZSBidWZmZXIsIGFkdmFuY2lu ZyBwb2ludCwKYW5kIGFueSB0ZXJtaW5hbCBpbnB1dCBmb3IgdGhlIHN1YnNoZWxsIGNvbWVzIGZy b20gdGV4dCBpbiB0aGUgYnVmZmVyLgpUbyBnaXZlIGlucHV0IHRvIHRoZSBzdWJzaGVsbCwgZ28g dG8gdGhlIGVuZCBvZiB0aGUgYnVmZmVyIGFuZCB0eXBlIHRoZQppbnB1dCwgdGVybWluYXRlZCBi eSA8UkVUPi4KCiAgIEJ5IGRlZmF1bHQsIHdoZW4gdGhlIHN1YnNoZWxsIGlzIGludm9rZWQgaW50 ZXJhY3RpdmVseSwgdGhlIOKAmCpzaGVsbCrigJkKYnVmZmVyIGlzIGRpc3BsYXllZCBpbiBhIG5l dyB3aW5kb3csIHVubGVzcyB0aGUgY3VycmVudCB3aW5kb3cgYWxyZWFkeQpzaG93cyB0aGUg4oCY KnNoZWxsKuKAmSBidWZmZXIuICBUaGlzIGJlaGF2aW9yIGNhbiBiZSBjdXN0b21pemVkIHZpYQri gJhkaXNwbGF5LWJ1ZmZlci1hbGlzdOKAmSAoKm5vdGUgV2luZG93IENob2ljZTo6KS4KCiAgIFdo aWxlIHRoZSBzdWJzaGVsbCBpcyB3YWl0aW5nIG9yIHJ1bm5pbmcgYSBjb21tYW5kLCB5b3UgY2Fu IHN3aXRjaAp3aW5kb3dzIG9yIGJ1ZmZlcnMgYW5kIHBlcmZvcm0gb3RoZXIgZWRpdGluZyBpbiBF bWFjcy4gIEVtYWNzIGluc2VydHMKdGhlIG91dHB1dCBmcm9tIHRoZSBzdWJzaGVsbCBpbnRvIHRo ZSBTaGVsbCBidWZmZXIgd2hlbmV2ZXIgaXQgaGFzIHRpbWUKdG8gcHJvY2VzcyBpdCAoZS5nLiwg d2hpbGUgd2FpdGluZyBmb3Iga2V5Ym9hcmQgaW5wdXQpLgoKICAgSW4gdGhlIFNoZWxsIGJ1ZmZl ciwgcHJvbXB0cyBhcmUgZGlzcGxheWVkIHdpdGggdGhlIGZhY2UK4oCYY29taW50LWhpZ2hsaWdo dC1wcm9tcHTigJksIGFuZCBzdWJtaXR0ZWQgaW5wdXQgbGluZXMgYXJlIGRpc3BsYXllZCB3aXRo CnRoZSBmYWNlIOKAmGNvbWludC1oaWdobGlnaHQtaW5wdXTigJkuICBUaGlzIG1ha2VzIGl0IGVh c2llciB0byBkaXN0aW5ndWlzaAppbnB1dCBsaW5lcyBmcm9tIHRoZSBzaGVsbCBvdXRwdXQuICAq Tm90ZSBGYWNlczo6LgoKICAgVG8gbWFrZSBtdWx0aXBsZSBzdWJzaGVsbHMsIGludm9rZSDigJhN LXggc2hlbGzigJkgd2l0aCBhIHByZWZpeCBhcmd1bWVudAooZS5nLiwg4oCYQy11IE0teCBzaGVs bOKAmSkuICBUaGVuIHRoZSBjb21tYW5kIHdpbGwgcmVhZCBhIGJ1ZmZlciBuYW1lLCBhbmQKY3Jl YXRlIChvciByZXVzZSkgYSBzdWJzaGVsbCBpbiB0aGF0IGJ1ZmZlci4gIFlvdSBjYW4gYWxzbyBy ZW5hbWUgdGhlCuKAmCpzaGVsbCrigJkgYnVmZmVyIHVzaW5nIOKAmE0teCByZW5hbWUtdW5pcXVl bHnigJksIHRoZW4gY3JlYXRlIGEgbmV3CuKAmCpzaGVsbCrigJkgYnVmZmVyIHVzaW5nIHBsYWlu IOKAmE0teCBzaGVsbOKAmS4gIFN1YnNoZWxscyBpbiBkaWZmZXJlbnQKYnVmZmVycyBydW4gaW5k ZXBlbmRlbnRseSBhbmQgaW4gcGFyYWxsZWwuCgogICBUbyBzcGVjaWZ5IHRoZSBzaGVsbCBmaWxl IG5hbWUgdXNlZCBieSDigJhNLXggc2hlbGzigJksIGN1c3RvbWl6ZSB0aGUKdmFyaWFibGUg4oCY ZXhwbGljaXQtc2hlbGwtZmlsZS1uYW1l4oCZLiAgSWYgdGhpcyBpcyDigJhuaWzigJkgKHRoZSBk ZWZhdWx0KSwKRW1hY3MgdXNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUg4oCYRVNIRUxM4oCZ IGlmIGl0IGV4aXN0cy4gIE90aGVyd2lzZSwKaXQgdXN1YWxseSB1c2VzIHRoZSB2YXJpYWJsZSDi gJhzaGVsbC1maWxlLW5hbWXigJkgKCpub3RlIFNpbmdsZSBTaGVsbDo6KTsKYnV0IGlmIHRoZSBk ZWZhdWx0IGRpcmVjdG9yeSBpcyByZW1vdGUgKCpub3RlIFJlbW90ZSBGaWxlczo6KSwgaXQKcHJv bXB0cyB5b3UgZm9yIHRoZSBzaGVsbCBmaWxlIG5hbWUuICAqTm90ZSBNaW5pYnVmZmVyIEZpbGU6 OiwgZm9yIGhpbnRzCmhvdyB0byB0eXBlIHJlbW90ZSBmaWxlIG5hbWVzIGVmZmVjdGl2ZWx5LgoK ICAgRW1hY3Mgc2VuZHMgdGhlIG5ldyBzaGVsbCB0aGUgY29udGVudHMgb2YgdGhlIGZpbGUK4oCY fi8uZW1hY3NfU0hFTExOQU1F4oCZIGFzIGlucHV0LCBpZiBpdCBleGlzdHMsIHdoZXJlIFNIRUxM TkFNRSBpcyB0aGUgbmFtZQpvZiB0aGUgZmlsZSB0aGF0IHRoZSBzaGVsbCB3YXMgbG9hZGVkIGZy b20uICBGb3IgZXhhbXBsZSwgaWYgeW91IHVzZQpiYXNoLCB0aGUgZmlsZSBzZW50IHRvIGl0IGlz IOKAmH4vLmVtYWNzX2Jhc2jigJkuICBJZiB0aGlzIGZpbGUgaXMgbm90CmZvdW5kLCBFbWFjcyB0 cmllcyB3aXRoIOKAmH4vLmVtYWNzLmQvaW5pdF9TSEVMTE5BTUUuc2jigJkuCgogICBUbyBzcGVj aWZ5IGEgY29kaW5nIHN5c3RlbSBmb3IgdGhlIHNoZWxsLCB5b3UgY2FuIHVzZSB0aGUgY29tbWFu ZArigJhDLXggPFJFVD4gY+KAmSBpbW1lZGlhdGVseSBiZWZvcmUg4oCYTS14IHNoZWxs4oCZLiAg WW91IGNhbiBhbHNvIGNoYW5nZSB0aGUKY29kaW5nIHN5c3RlbSBmb3IgYSBydW5uaW5nIHN1YnNo ZWxsIGJ5IHR5cGluZyDigJhDLXggPFJFVD4gcOKAmSBpbiB0aGUKc2hlbGwgYnVmZmVyLiAgKk5v dGUgQ29tbXVuaWNhdGlvbiBDb2Rpbmc6Oi4KCiAgIEVtYWNzIHNldHMgdGhlIGVudmlyb25tZW50 IHZhcmlhYmxlIOKAmElOU0lERV9FTUFDU+KAmSBpbiB0aGUgc3Vic2hlbGwgdG8K4oCYVkVSU0lP Tixjb21pbnTigJksIHdoZXJlIFZFUlNJT04gaXMgdGhlIEVtYWNzIHZlcnNpb24gKGUuZy4sIOKA mDI0LjHigJkpLgpQcm9ncmFtcyBjYW4gY2hlY2sgdGhpcyB2YXJpYWJsZSB0byBkZXRlcm1pbmUg d2hldGhlciB0aGV5IGFyZSBydW5uaW5nCmluc2lkZSBhbiBFbWFjcyBzdWJzaGVsbC4KCgoqKiAz OC4zIFNoZWxsIE1vZGUKClRoZSBtYWpvciBtb2RlIGZvciBTaGVsbCBidWZmZXJzIGlzIFNoZWxs IG1vZGUuICBNYW55IG9mIGl0cyBzcGVjaWFsCmNvbW1hbmRzIGFyZSBib3VuZCB0byB0aGUg4oCY Qy1j4oCZIHByZWZpeCwgYW5kIHJlc2VtYmxlIHRoZSB1c3VhbCBlZGl0aW5nCmFuZCBqb2IgY29u dHJvbCBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gb3JkaW5hcnkgc2hlbGxzLCBleGNlcHQgdGhhdCB5 b3UKbXVzdCB0eXBlIOKAmEMtY+KAmSBmaXJzdC4gIEhlcmUgaXMgYSBsaXN0IG9mIFNoZWxsIG1v ZGUgY29tbWFuZHM6CgrigJg8UkVUPuKAmQogICAgIFNlbmQgdGhlIGN1cnJlbnQgbGluZSBhcyBp bnB1dCB0byB0aGUgc3Vic2hlbGwKICAgICAo4oCYY29taW50LXNlbmQtaW5wdXTigJkpLiAgQW55 IHNoZWxsIHByb21wdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZQogICAgIGxpbmUgaXMgb21pdHRl ZCAoKm5vdGUgU2hlbGwgUHJvbXB0czo6KS4gIElmIHBvaW50IGlzIGF0IHRoZSBlbmQgb2YKICAg ICBidWZmZXIsIHRoaXMgaXMgbGlrZSBzdWJtaXR0aW5nIHRoZSBjb21tYW5kIGxpbmUgaW4gYW4g b3JkaW5hcnkKICAgICBpbnRlcmFjdGl2ZSBzaGVsbC4gIEhvd2V2ZXIsIHlvdSBjYW4gYWxzbyBp bnZva2UgPFJFVD4gZWxzZXdoZXJlIGluCiAgICAgdGhlIHNoZWxsIGJ1ZmZlciB0byBzdWJtaXQg dGhlIGN1cnJlbnQgbGluZSBhcyBpbnB1dC4KCuKAmDxUQUI+4oCZCiAgICAgQ29tcGxldGUgdGhl IGNvbW1hbmQgbmFtZSBvciBmaWxlIG5hbWUgYmVmb3JlIHBvaW50IGluIHRoZSBzaGVsbAogICAg IGJ1ZmZlciAo4oCYY29tcGxldGlvbi1hdC1wb2ludOKAmSkuICBUaGlzIHVzZXMgdGhlIHVzdWFs IEVtYWNzCiAgICAgY29tcGxldGlvbiBydWxlcyAoKm5vdGUgQ29tcGxldGlvbjo6KSwgd2l0aCB0 aGUgY29tcGxldGlvbgogICAgIGFsdGVybmF0aXZlcyBiZWluZyBmaWxlIG5hbWVzLCBlbnZpcm9u bWVudCB2YXJpYWJsZSBuYW1lcywgdGhlCiAgICAgc2hlbGwgY29tbWFuZCBoaXN0b3J5LCBhbmQg aGlzdG9yeSByZWZlcmVuY2VzICgqbm90ZSBIaXN0b3J5CiAgICAgUmVmZXJlbmNlczo6KS4gIEZv ciBvcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBjb21wbGV0aW9uLCAqbm90ZSBTaGVsbAogICAgIE9w dGlvbnM6Oi4KCuKAmE0tP+KAmQogICAgIERpc3BsYXkgdGVtcG9yYXJpbHkgYSBsaXN0IG9mIHRo ZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBvZiB0aGUgZmlsZQogICAgIG5hbWUgYmVmb3JlIHBvaW50 ICjigJhjb21pbnQtZHluYW1pYy1saXN0LWZpbGVuYW1lLWNvbXBsZXRpb25z4oCZKS4KCuKAmEMt ZOKAmQogICAgIEVpdGhlciBkZWxldGUgYSBjaGFyYWN0ZXIgb3Igc2VuZCBFT0YKICAgICAo4oCY Y29taW50LWRlbGNoYXItb3ItbWF5YmUtZW9m4oCZKS4gIFR5cGVkIGF0IHRoZSBlbmQgb2YgdGhl IHNoZWxsCiAgICAgYnVmZmVyLCB0aGlzIHNlbmRzIEVPRiB0byB0aGUgc3Vic2hlbGwuICBUeXBl ZCBhdCBhbnkgb3RoZXIKICAgICBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyLCB0aGlzIGRlbGV0ZXMg YSBjaGFyYWN0ZXIgYXMgdXN1YWwuCgrigJhDLWMgQy1h4oCZCiAgICAgTW92ZSB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZSBsaW5lLCBidXQgYWZ0ZXIgdGhlIHByb21wdCBpZiBhbnkKICAgICAo4oCY Y29taW50LWJvbC1vci1wcm9jZXNzLW1hcmvigJkpLiAgSWYgeW91IHJlcGVhdCB0aGlzIGNvbW1h bmQgdHdpY2UKICAgICBpbiBhIHJvdywgdGhlIHNlY29uZCB0aW1lIGl0IG1vdmVzIGJhY2sgdG8g dGhlIHByb2Nlc3MgbWFyaywgd2hpY2gKICAgICBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbnB1 dCB0aGF0IHlvdSBoYXZlIG5vdCB5ZXQgc2VudCB0byB0aGUKICAgICBzdWJzaGVsbC4gIChOb3Jt YWxseSB0aGF0IGlzIHRoZSBzYW1lIHBsYWNl4oCUdGhlIGVuZCBvZiB0aGUgcHJvbXB0CiAgICAg b24gdGhpcyBsaW5l4oCUYnV0IGFmdGVyIOKAmEMtYyA8U1BDPuKAmSB0aGUgcHJvY2VzcyBtYXJr IG1heSBiZSBpbiBhCiAgICAgcHJldmlvdXMgbGluZS4pCgrigJhDLWMgPFNQQz7igJkKICAgICBB Y2N1bXVsYXRlIG11bHRpcGxlIGxpbmVzIG9mIGlucHV0LCB0aGVuIHNlbmQgdGhlbSB0b2dldGhl cgogICAgICjigJhjb21pbnQtYWNjdW11bGF0ZeKAmSkuICBUaGlzIGNvbW1hbmQgaW5zZXJ0cyBh IG5ld2xpbmUgYmVmb3JlCiAgICAgcG9pbnQsIGJ1dCBkb2VzIG5vdCBzZW5kIHRoZSBwcmVjZWRp bmcgdGV4dCBhcyBpbnB1dCB0byB0aGUKICAgICBzdWJzaGVsbOKAlGF0IGxlYXN0LCBub3QgeWV0 LiAgQm90aCBsaW5lcywgdGhlIG9uZSBiZWZvcmUgdGhpcwogICAgIG5ld2xpbmUgYW5kIHRoZSBv bmUgYWZ0ZXIsIHdpbGwgYmUgc2VudCB0b2dldGhlciAoYWxvbmcgd2l0aCB0aGUKICAgICBuZXds aW5lIHRoYXQgc2VwYXJhdGVzIHRoZW0pLCB3aGVuIHlvdSB0eXBlIDxSRVQ+LgoK4oCYQy1jIEMt deKAmQogICAgIEtpbGwgYWxsIHRleHQgcGVuZGluZyBhdCBlbmQgb2YgYnVmZmVyIHRvIGJlIHNl bnQgYXMgaW5wdXQKICAgICAo4oCYY29taW50LWtpbGwtaW5wdXTigJkpLiAgSWYgcG9pbnQgaXMg bm90IGF0IGVuZCBvZiBidWZmZXIsIHRoaXMgb25seQogICAgIGtpbGxzIHRoZSBwYXJ0IG9mIHRo aXMgdGV4dCB0aGF0IHByZWNlZGVzIHBvaW50LgoK4oCYQy1jIEMtd+KAmQogICAgIEtpbGwgYSB3 b3JkIGJlZm9yZSBwb2ludCAo4oCYYmFja3dhcmQta2lsbC13b3Jk4oCZKS4KCuKAmEMtYyBDLWPi gJkKICAgICBJbnRlcnJ1cHQgdGhlIHNoZWxsIG9yIGl0cyBjdXJyZW50IHN1YmpvYiBpZiBhbnkK ICAgICAo4oCYY29taW50LWludGVycnVwdC1zdWJqb2LigJkpLiAgVGhpcyBjb21tYW5kIGFsc28g a2lsbHMgYW55IHNoZWxsCiAgICAgaW5wdXQgcGVuZGluZyBpbiB0aGUgc2hlbGwgYnVmZmVyIGFu ZCBub3QgeWV0IHNlbnQuCgrigJhDLWMgQy164oCZCiAgICAgU3RvcCB0aGUgc2hlbGwgb3IgaXRz IGN1cnJlbnQgc3Viam9iIGlmIGFueSAo4oCYY29taW50LXN0b3Atc3Viam9i4oCZKS4KICAgICBU aGlzIGNvbW1hbmQgYWxzbyBraWxscyBhbnkgc2hlbGwgaW5wdXQgcGVuZGluZyBpbiB0aGUgc2hl bGwgYnVmZmVyCiAgICAgYW5kIG5vdCB5ZXQgc2VudC4KCuKAmEMtYyBDLVzigJkKICAgICBTZW5k IHF1aXQgc2lnbmFsIHRvIHRoZSBzaGVsbCBvciBpdHMgY3VycmVudCBzdWJqb2IgaWYgYW55CiAg ICAgKOKAmGNvbWludC1xdWl0LXN1YmpvYuKAmSkuICBUaGlzIGNvbW1hbmQgYWxzbyBraWxscyBh bnkgc2hlbGwgaW5wdXQKICAgICBwZW5kaW5nIGluIHRoZSBzaGVsbCBidWZmZXIgYW5kIG5vdCB5 ZXQgc2VudC4KCuKAmEMtYyBDLW/igJkKICAgICBEZWxldGUgdGhlIGxhc3QgYmF0Y2ggb2Ygb3V0 cHV0IGZyb20gYSBzaGVsbCBjb21tYW5kCiAgICAgKOKAmGNvbWludC1kZWxldGUtb3V0cHV04oCZ KS4gIFRoaXMgaXMgdXNlZnVsIGlmIGEgc2hlbGwgY29tbWFuZCBzcGV3cwogICAgIG91dCBsb3Rz IG9mIG91dHB1dCB0aGF0IGp1c3QgZ2V0cyBpbiB0aGUgd2F5LgoK4oCYQy1jIEMtc+KAmQogICAg IFdyaXRlIHRoZSBsYXN0IGJhdGNoIG9mIG91dHB1dCBmcm9tIGEgc2hlbGwgY29tbWFuZCB0byBh IGZpbGUKICAgICAo4oCYY29taW50LXdyaXRlLW91dHB1dOKAmSkuICBXaXRoIGEgcHJlZml4IGFy Z3VtZW50LCB0aGUgZmlsZSBpcwogICAgIGFwcGVuZGVkIHRvIGluc3RlYWQuICBBbnkgcHJvbXB0 IGF0IHRoZSBlbmQgb2YgdGhlIG91dHB1dCBpcyBub3QKICAgICB3cml0dGVuLgoK4oCYQy1jIEMt cuKAmQrigJhDLU0tbOKAmQogICAgIFNjcm9sbCB0byBkaXNwbGF5IHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGxhc3QgYmF0Y2ggb2Ygb3V0cHV0IGF0IHRoZQogICAgIHRvcCBvZiB0aGUgd2luZG93OyBh bHNvIG1vdmUgdGhlIGN1cnNvciB0aGVyZQogICAgICjigJhjb21pbnQtc2hvdy1vdXRwdXTigJkp LgoK4oCYQy1jIEMtZeKAmQogICAgIFNjcm9sbCB0byBwdXQgdGhlIGxhc3QgbGluZSBvZiB0aGUg YnVmZmVyIGF0IHRoZSBib3R0b20gb2YgdGhlCiAgICAgd2luZG93ICjigJhjb21pbnQtc2hvdy1t YXhpbXVtLW91dHB1dOKAmSkuCgrigJhDLWMgQy1m4oCZCiAgICAgTW92ZSBmb3J3YXJkIGFjcm9z cyBvbmUgc2hlbGwgY29tbWFuZCwgYnV0IG5vdCBiZXlvbmQgdGhlIGN1cnJlbnQKICAgICBsaW5l ICjigJhzaGVsbC1mb3J3YXJkLWNvbW1hbmTigJkpLiAgVGhlIHZhcmlhYmxlCiAgICAg4oCYc2hl bGwtY29tbWFuZC1yZWdleHDigJkgc3BlY2lmaWVzIGhvdyB0byByZWNvZ25pemUgdGhlIGVuZCBv ZiBhCiAgICAgY29tbWFuZC4KCuKAmEMtYyBDLWLigJkKICAgICBNb3ZlIGJhY2t3YXJkIGFjcm9z cyBvbmUgc2hlbGwgY29tbWFuZCwgYnV0IG5vdCBiZXlvbmQgdGhlIGN1cnJlbnQKICAgICBsaW5l ICjigJhzaGVsbC1iYWNrd2FyZC1jb21tYW5k4oCZKS4KCuKAmE0teCBkaXJz4oCZCiAgICAgQXNr IHRoZSBzaGVsbCBmb3IgaXRzIHdvcmtpbmcgZGlyZWN0b3J5LCBhbmQgdXBkYXRlIHRoZSBTaGVs bAogICAgIGJ1ZmZlcuKAmXMgZGVmYXVsdCBkaXJlY3RvcnkuICAqTm90ZSBEaXJlY3RvcnkgVHJh Y2tpbmc6Oi4KCuKAmE0teCBzZW5kLWludmlzaWJsZSA8UkVUPiBURVhUIDxSRVQ+4oCZCiAgICAg U2VuZCBURVhUIGFzIGlucHV0IHRvIHRoZSBzaGVsbCwgYWZ0ZXIgcmVhZGluZyBpdCB3aXRob3V0 IGVjaG9pbmcuCiAgICAgVGhpcyBpcyB1c2VmdWwgd2hlbiBhIHNoZWxsIGNvbW1hbmQgcnVucyBh IHByb2dyYW0gdGhhdCBhc2tzIGZvciBhCiAgICAgcGFzc3dvcmQuCgogICAgIFBsZWFzZSBub3Rl IHRoYXQgRW1hY3Mgd2lsbCBub3QgZWNobyBwYXNzd29yZHMgYnkgZGVmYXVsdC4gIElmIHlvdQog ICAgIHJlYWxseSB3YW50IHRoZW0gdG8gYmUgZWNob2VkLCBldmFsdWF0ZSAoKm5vdGUgTGlzcCBF dmFsOjopIHRoZQogICAgIGZvbGxvd2luZyBMaXNwIGV4cHJlc3Npb246CgogICAgICAgICAgKHJl bW92ZS1ob29rICdjb21pbnQtb3V0cHV0LWZpbHRlci1mdW5jdGlvbnMKICAgICAgICAgICAgICAg ICAgICAgICAnY29taW50LXdhdGNoLWZvci1wYXNzd29yZC1wcm9tcHQpCgrigJhNLXggY29taW50 LWNvbnRpbnVlLXN1YmpvYuKAmQogICAgIENvbnRpbnVlIHRoZSBzaGVsbCBwcm9jZXNzLiAgVGhp cyBpcyB1c2VmdWwgaWYgeW91IGFjY2lkZW50YWxseQogICAgIHN1c3BlbmQgdGhlIHNoZWxsIHBy b2Nlc3MuKDEpCgrigJhNLXggY29taW50LXN0cmlwLWN0cmwtbeKAmQogICAgIERpc2NhcmQgYWxs IGNvbnRyb2wtTSBjaGFyYWN0ZXJzIGZyb20gdGhlIGN1cnJlbnQgZ3JvdXAgb2Ygc2hlbGwKICAg ICBvdXRwdXQuICBUaGUgbW9zdCBjb252ZW5pZW50IHdheSB0byB1c2UgdGhpcyBjb21tYW5kIGlz IHRvIG1ha2UgaXQKICAgICBydW4gYXV0b21hdGljYWxseSB3aGVuIHlvdSBnZXQgb3V0cHV0IGZy b20gdGhlIHN1YnNoZWxsLiAgVG8gZG8KICAgICB0aGF0LCBldmFsdWF0ZSB0aGlzIExpc3AgZXhw cmVzc2lvbjoKCiAgICAgICAgICAoYWRkLWhvb2sgJ2NvbWludC1vdXRwdXQtZmlsdGVyLWZ1bmN0 aW9ucwogICAgICAgICAgICAgICAgICAgICdjb21pbnQtc3RyaXAtY3RybC1tKQoK4oCYTS14IGNv bWludC10cnVuY2F0ZS1idWZmZXLigJkKICAgICBUaGlzIGNvbW1hbmQgdHJ1bmNhdGVzIHRoZSBz aGVsbCBidWZmZXIgdG8gYSBjZXJ0YWluIG1heGltdW0gbnVtYmVyCiAgICAgb2YgbGluZXMsIHNw ZWNpZmllZCBieSB0aGUgdmFyaWFibGUg4oCYY29taW50LWJ1ZmZlci1tYXhpbXVtLXNpemXigJku CiAgICAgSGVyZeKAmXMgaG93IHRvIGRvIHRoaXMgYXV0b21hdGljYWxseSBlYWNoIHRpbWUgeW91 IGdldCBvdXRwdXQgZnJvbQogICAgIHRoZSBzdWJzaGVsbDoKCiAgICAgICAgICAoYWRkLWhvb2sg J2NvbWludC1vdXRwdXQtZmlsdGVyLWZ1bmN0aW9ucwogICAgICAgICAgICAgICAgICAgICdjb21p bnQtdHJ1bmNhdGUtYnVmZmVyKQoKICAgU2hlbGwgbW9kZSBpcyBhIGRlcml2YXRpdmUgb2YgQ29t aW50IG1vZGUsIGEgZ2VuZXJhbC1wdXJwb3NlIG1vZGUgZm9yCmNvbW11bmljYXRpbmcgd2l0aCBp bnRlcmFjdGl2ZSBzdWJwcm9jZXNzZXMuICBNb3N0IG9mIHRoZSBmZWF0dXJlcyBvZgpTaGVsbCBt b2RlIGFjdHVhbGx5IGNvbWUgZnJvbSBDb21pbnQgbW9kZSwgYXMgeW91IGNhbiBzZWUgZnJvbSB0 aGUKY29tbWFuZCBuYW1lcyBsaXN0ZWQgYWJvdmUuICBUaGUgc3BlY2lhbCBmZWF0dXJlcyBvZiBT aGVsbCBtb2RlIGluY2x1ZGUKdGhlIGRpcmVjdG9yeSB0cmFja2luZyBmZWF0dXJlLCBhbmQgYSBm ZXcgdXNlciBjb21tYW5kcy4KCiAgIE90aGVyIEVtYWNzIGZlYXR1cmVzIHRoYXQgdXNlIHZhcmlh bnRzIG9mIENvbWludCBtb2RlIGluY2x1ZGUgR1VECigqbm90ZSBEZWJ1Z2dlcnM6OikgYW5kIOKA mE0teCBydW4tbGlzcOKAmSAoKm5vdGUgRXh0ZXJuYWwgTGlzcDo6KS4KCiAgIFlvdSBjYW4gdXNl IOKAmE0teCBjb21pbnQtcnVu4oCZIHRvIGV4ZWN1dGUgYW55IHByb2dyYW0gb2YgeW91ciBjaG9p Y2UgaW4KYSBzdWJwcm9jZXNzIHVzaW5nIHVubW9kaWZpZWQgQ29taW50IG1vZGXigJR3aXRob3V0 IHRoZSBzcGVjaWFsaXphdGlvbnMgb2YKU2hlbGwgbW9kZS4KCiAgIC0tLS0tLS0tLS0gRm9vdG5v dGVzIC0tLS0tLS0tLS0KCiAgICgxKSBZb3Ugc2hvdWxkIG5vdCBzdXNwZW5kIHRoZSBzaGVsbCBw cm9jZXNzLiAgU3VzcGVuZGluZyBhIHN1YmpvYiBvZgp0aGUgc2hlbGwgaXMgYSBjb21wbGV0ZWx5 IGRpZmZlcmVudCBtYXR0ZXLigJR0aGF0IGlzIG5vcm1hbCBwcmFjdGljZSwgYnV0CnlvdSBtdXN0 IHVzZSB0aGUgc2hlbGwgdG8gY29udGludWUgdGhlIHN1YmpvYjsgdGhpcyBjb21tYW5kIHdvbuKA mXQgZG8gaXQuCgoKKiogMzguNCBTaGVsbCBQcm9tcHRzCgpBIHByb21wdCBpcyB0ZXh0IG91dHB1 dCBieSBhIHByb2dyYW0gdG8gc2hvdyB0aGF0IGl0IGlzIHJlYWR5IHRvIGFjY2VwdApuZXcgdXNl ciBpbnB1dC4gIE5vcm1hbGx5LCBDb21pbnQgbW9kZSAoYW5kIHRodXMgU2hlbGwgbW9kZSkKYXV0 b21hdGljYWxseSBmaWd1cmVzIG91dCB3aGljaCBwYXJ0IG9mIHRoZSBidWZmZXIgaXMgYSBwcm9t cHQsIGJhc2VkIG9uCnRoZSBvdXRwdXQgb2YgdGhlIHN1YnByb2Nlc3MuICAoU3BlY2lmaWNhbGx5 LCBpdCBhc3N1bWVzIHRoYXQgYW55CnJlY2VpdmVkIG91dHB1dCBsaW5lIHdoaWNoIGRvZXNu4oCZ dCBlbmQgd2l0aCBhIG5ld2xpbmUgaXMgYSBwcm9tcHQuKQoKICAgQ29taW50IG1vZGUgZGl2aWRl cyB0aGUgYnVmZmVyIGludG8gdHdvIHR5cGVzIG9mICJmaWVsZHMiOiBpbnB1dApmaWVsZHMgKHdo ZXJlIHVzZXIgaW5wdXQgaXMgdHlwZWQpIGFuZCBvdXRwdXQgZmllbGRzIChldmVyeXdoZXJlIGVs c2UpLgpQcm9tcHRzIGFyZSBwYXJ0IG9mIHRoZSBvdXRwdXQgZmllbGRzLiAgTW9zdCBFbWFjcyBt b3Rpb24gY29tbWFuZHMgZG8Kbm90IGNyb3NzIGZpZWxkIGJvdW5kYXJpZXMsIHVubGVzcyB0aGV5 IG1vdmUgb3ZlciBtdWx0aXBsZSBsaW5lcy4gIEZvcgppbnN0YW5jZSwgd2hlbiBwb2ludCBpcyBp biB0aGUgaW5wdXQgZmllbGQgb24gYSBzaGVsbCBjb21tYW5kIGxpbmUsCuKAmEMtYeKAmSBwdXRz IHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGlucHV0IGZpZWxkLCBhZnRlciB0aGUgcHJv bXB0LgpJbnRlcm5hbGx5LCB0aGUgZmllbGRzIGFyZSBpbXBsZW1lbnRlZCB1c2luZyB0aGUg4oCY ZmllbGTigJkgdGV4dCBwcm9wZXJ0eQooKm5vdGUgKGVsaXNwKVRleHQgUHJvcGVydGllczo6KS4K CiAgIElmIHlvdSBjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmGNvbWludC11c2UtcHJvbXB0LXJlZ2V4 cOKAmSB0byBhIG5vbi3igJhuaWzigJkKdmFsdWUsIHRoZW4gQ29taW50IG1vZGUgd2lsbCByZWNv Z25pemUgcHJvbXB0cyB1c2luZyBhIHJlZ3VsYXIKZXhwcmVzc2lvbiAoKm5vdGUgUmVnZXhwczo6 KS4gIEluIFNoZWxsIG1vZGUsIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaXMKc3BlY2lmaWVkIGJ5 IHRoZSB2YXJpYWJsZSDigJhzaGVsbC1wcm9tcHQtcGF0dGVybuKAmS4gIFRoZSBkZWZhdWx0IHZh bHVlIG9mCuKAmGNvbWludC11c2UtcHJvbXB0LXJlZ2V4cOKAmSBpcyDigJhuaWzigJksIGJlY2F1 c2UgdGhpcyBtZXRob2QgZm9yIHJlY29nbml6aW5nCnByb21wdHMgaXMgdW5yZWxpYWJsZSwgYnV0 IHlvdSBtYXkgd2FudCB0byBzZXQgaXQgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlCmluIHVudXN1 YWwgY2lyY3Vtc3RhbmNlcy4gIEluIHRoYXQgY2FzZSwgRW1hY3MgZG9lcyBub3QgZGl2aWRlIHRo ZQpDb21pbnQgYnVmZmVyIGludG8gZmllbGRzLCBzbyB0aGUgZ2VuZXJhbCBtb3Rpb24gY29tbWFu ZHMgYmVoYXZlIGFzIHRoZXkKbm9ybWFsbHkgZG8gaW4gYnVmZmVycyB3aXRob3V0IHNwZWNpYWwg dGV4dCBwcm9wZXJ0aWVzLiAgSG93ZXZlciwgeW91CmNhbiB1c2UgdGhlIHBhcmFncmFwaCBtb3Rp b24gY29tbWFuZHMgdG8gY29udmVuaWVudGx5IG5hdmlnYXRlIHRoZQpidWZmZXIgKCpub3RlIFBh cmFncmFwaHM6Oik7IGluIFNoZWxsIG1vZGUsIEVtYWNzIHVzZXMK4oCYc2hlbGwtcHJvbXB0LXBh dHRlcm7igJkgYXMgcGFyYWdyYXBoIGJvdW5kYXJpZXMuCgoKKiogMzguNSBTaGVsbCBDb21tYW5k IEhpc3RvcnkKClNoZWxsIGJ1ZmZlcnMgc3VwcG9ydCB0aHJlZSB3YXlzIG9mIHJlcGVhdGluZyBl YXJsaWVyIGNvbW1hbmRzLiAgWW91IGNhbgp1c2Uga2V5cyBsaWtlIHRob3NlIHVzZWQgZm9yIHRo ZSBtaW5pYnVmZmVyIGhpc3Rvcnk7IHRoZXNlIHdvcmsgbXVjaCBhcwp0aGV5IGRvIGluIHRoZSBt aW5pYnVmZmVyLCBpbnNlcnRpbmcgdGV4dCBmcm9tIHByaW9yIGNvbW1hbmRzIHdoaWxlCnBvaW50 IHJlbWFpbnMgYWx3YXlzIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4gIFlvdSBjYW4gbW92ZSB0 aHJvdWdoIHRoZQpidWZmZXIgdG8gcHJldmlvdXMgaW5wdXRzIGluIHRoZWlyIG9yaWdpbmFsIHBs YWNlLCB0aGVuIHJlc3VibWl0IHRoZW0gb3IKY29weSB0aGVtIHRvIHRoZSBlbmQuICBPciB5b3Ug Y2FuIHVzZSBhIOKAmCHigJktc3R5bGUgaGlzdG9yeSByZWZlcmVuY2UuCgorIE1lbnU6CgogIC0g UmluZzogU2hlbGwgUmluZy4gICAgICAgICAgICAgRmV0Y2hpbmcgY29tbWFuZHMgZnJvbSB0aGUg aGlzdG9yeSBsaXN0LgogIC0gQ29weTogU2hlbGwgSGlzdG9yeSBDb3B5aW5nLiAgTW92aW5nIHRv IGEgY29tbWFuZCBhbmQgdGhlbiBjb3B5aW5nIGl0LgogIC0gSGlzdG9yeSBSZWZlcmVuY2VzOjog ICAgICAgICAgRXhwYW5kaW5nIOKAmCHigJktc3R5bGUgaGlzdG9yeSByZWZlcmVuY2VzLgoKCioq KiAzOC41LjEgU2hlbGwgSGlzdG9yeSBSaW5nCgrigJhNLXDigJkK4oCYQy08VVA+4oCZCiAgICAg RmV0Y2ggdGhlIG5leHQgZWFybGllciBvbGQgc2hlbGwgY29tbWFuZCAo4oCYY29taW50LXByZXZp b3VzLWlucHV04oCZKS4KCuKAmE0tbuKAmQrigJhDLTxET1dOPuKAmQogICAgIEZldGNoIHRoZSBu ZXh0IGxhdGVyIG9sZCBzaGVsbCBjb21tYW5kICjigJhjb21pbnQtbmV4dC1pbnB1dOKAmSkuCgri gJhNLXLigJkKICAgICBCZWdpbiBhbiBpbmNyZW1lbnRhbCByZWdleHAgc2VhcmNoIG9mIG9sZCBz aGVsbCBjb21tYW5kcwogICAgICjigJhjb21pbnQtaGlzdG9yeS1pc2VhcmNoLWJhY2t3YXJkLXJl Z2V4cOKAmSkuCgrigJhDLWMgQy144oCZCiAgICAgRmV0Y2ggdGhlIG5leHQgc3Vic2VxdWVudCBj b21tYW5kIGZyb20gdGhlIGhpc3RvcnkKICAgICAo4oCYY29taW50LWdldC1uZXh0LWZyb20taGlz dG9yeeKAmSkuCgrigJhDLWMgLuKAmQogICAgIEZldGNoIG9uZSBhcmd1bWVudCBmcm9tIGFuIG9s ZCBzaGVsbCBjb21tYW5kCiAgICAgKOKAmGNvbWludC1pbnB1dC1wcmV2aW91cy1hcmd1bWVudOKA mSkuCgrigJhDLWMgQy1s4oCZCiAgICAgRGlzcGxheSB0aGUgYnVmZmVy4oCZcyBoaXN0b3J5IG9m IHNoZWxsIGNvbW1hbmRzIGluIGFub3RoZXIgd2luZG93CiAgICAgKOKAmGNvbWludC1keW5hbWlj LWxpc3QtaW5wdXQtcmluZ+KAmSkuCgogICBTaGVsbCBidWZmZXJzIHByb3ZpZGUgYSBoaXN0b3J5 IG9mIHByZXZpb3VzbHkgZW50ZXJlZCBzaGVsbCBjb21tYW5kcy4KVG8gcmV1c2Ugc2hlbGwgY29t bWFuZHMgZnJvbSB0aGUgaGlzdG9yeSwgdXNlIHRoZSBlZGl0aW5nIGNvbW1hbmRzCuKAmE0tcOKA mSwg4oCYTS1u4oCZLCBhbmQg4oCYTS1y4oCZLiAgVGhlc2Ugd29yayBzaW1pbGFyIHRvIHRoZSBt aW5pYnVmZmVyIGhpc3RvcnkKY29tbWFuZHMgKCpub3RlIE1pbmlidWZmZXIgSGlzdG9yeTo6KSwg ZXhjZXB0IHRoYXQgdGhleSBvcGVyYXRlIHdpdGhpbgp0aGUgU2hlbGwgYnVmZmVyIHJhdGhlciB0 aGFuIHRoZSBtaW5pYnVmZmVyLCBhbmQg4oCYTS1y4oCZIGluIGEgU2hlbGwgYnVmZmVyCmludm9r ZXMgaW5jcmVtZW50YWwgc2VhcmNoIHRocm91Z2ggc2hlbGwgY29tbWFuZCBoaXN0b3J5LgoKICAg 4oCYTS1w4oCZIGZldGNoZXMgYW4gZWFybGllciBzaGVsbCBjb21tYW5kIHRvIHRoZSBlbmQgb2Yg dGhlIHNoZWxsCmJ1ZmZlci4gIFN1Y2Nlc3NpdmUgdXNlIG9mIOKAmE0tcOKAmSBmZXRjaGVzIHN1 Y2Nlc3NpdmVseSBlYXJsaWVyIHNoZWxsCmNvbW1hbmRzLCBlYWNoIHJlcGxhY2luZyBhbnkgdGV4 dCB0aGF0IHdhcyBhbHJlYWR5IHByZXNlbnQgYXMgcG90ZW50aWFsCnNoZWxsIGlucHV0LiAg4oCY TS1u4oCZIGRvZXMgbGlrZXdpc2UgZXhjZXB0IHRoYXQgaXQgZmluZHMgc3VjY2Vzc2l2ZWx5IG1v cmUKcmVjZW50IHNoZWxsIGNvbW1hbmRzIGZyb20gdGhlIGJ1ZmZlci4gIOKAmEMtPFVQPuKAmSB3 b3JrcyBsaWtlIOKAmE0tcOKAmSwgYW5kCuKAmEMtPERPV04+4oCZIGxpa2Ug4oCYTS1u4oCZLgoK ICAgVGhlIGhpc3Rvcnkgc2VhcmNoIGNvbW1hbmQg4oCYTS1y4oCZIGJlZ2lucyBhbiBpbmNyZW1l bnRhbCByZWd1bGFyCmV4cHJlc3Npb24gc2VhcmNoIG9mIHByZXZpb3VzIHNoZWxsIGNvbW1hbmRz LiAgQWZ0ZXIgdHlwaW5nIOKAmE0tcuKAmSwgc3RhcnQKdHlwaW5nIHRoZSBkZXNpcmVkIHN0cmlu ZyBvciByZWd1bGFyIGV4cHJlc3Npb247IHRoZSBsYXN0IG1hdGNoaW5nIHNoZWxsCmNvbW1hbmQg d2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGN1cnJlbnQgbGluZS4gIEluY3JlbWVudGFsIHNlYXJj aApjb21tYW5kcyBoYXZlIHRoZWlyIHVzdWFsIGVmZmVjdHPigJRmb3IgaW5zdGFuY2UsIOKAmEMt c+KAmSBhbmQg4oCYQy1y4oCZIHNlYXJjaApmb3J3YXJkIGFuZCBiYWNrd2FyZCBmb3IgdGhlIG5l eHQgbWF0Y2ggKCpub3RlIEluY3JlbWVudGFsIFNlYXJjaDo6KS4KV2hlbiB5b3UgZmluZCB0aGUg ZGVzaXJlZCBpbnB1dCwgdHlwZSA8UkVUPiB0byB0ZXJtaW5hdGUgdGhlIHNlYXJjaC4KVGhpcyBw dXRzIHRoZSBpbnB1dCBpbiB0aGUgY29tbWFuZCBsaW5lLiAgQW55IHBhcnRpYWwgaW5wdXQgeW91 IHdlcmUKY29tcG9zaW5nIGJlZm9yZSBuYXZpZ2F0aW5nIHRoZSBoaXN0b3J5IGxpc3QgaXMgcmVz dG9yZWQgd2hlbiB5b3UgZ28gdG8KdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgdGhlIGhpc3Rvcnkg cmluZy4KCiAgIE9mdGVuIGl0IGlzIHVzZWZ1bCB0byByZWV4ZWN1dGUgc2V2ZXJhbCBzdWNjZXNz aXZlIHNoZWxsIGNvbW1hbmRzCnRoYXQgd2VyZSBwcmV2aW91c2x5IGV4ZWN1dGVkIGluIHNlcXVl bmNlLiAgVG8gZG8gdGhpcywgZmlyc3QgZmluZCBhbmQKcmVleGVjdXRlIHRoZSBmaXJzdCBjb21t YW5kIG9mIHRoZSBzZXF1ZW5jZS4gIFRoZW4gdHlwZSDigJhDLWMgQy144oCZOyB0aGF0CndpbGwg ZmV0Y2ggdGhlIGZvbGxvd2luZyBjb21tYW5k4oCUdGhlIG9uZSB0aGF0IGZvbGxvd3MgdGhlIGNv bW1hbmQgeW91Cmp1c3QgcmVwZWF0ZWQuICBUaGVuIHR5cGUgPFJFVD4gdG8gcmVleGVjdXRlIHRo aXMgY29tbWFuZC4gIFlvdSBjYW4KcmVleGVjdXRlIHNldmVyYWwgc3VjY2Vzc2l2ZSBjb21tYW5k cyBieSB0eXBpbmcg4oCYQy1jIEMteCA8UkVUPuKAmSBvdmVyIGFuZApvdmVyLgoKICAgVGhlIGNv bW1hbmQg4oCYQy1jIC7igJkgKOKAmGNvbWludC1pbnB1dC1wcmV2aW91cy1hcmd1bWVudOKAmSkg Y29waWVzIGFuCmluZGl2aWR1YWwgYXJndW1lbnQgZnJvbSBhIHByZXZpb3VzIGNvbW1hbmQsIGxp a2Ug4oCYPEVTQz4gLuKAmSBpbiBCYXNoLgpUaGUgc2ltcGxlc3QgdXNlIGNvcGllcyB0aGUgbGFz dCBhcmd1bWVudCBmcm9tIHRoZSBwcmV2aW91cyBzaGVsbApjb21tYW5kLiAgV2l0aCBhIHByZWZp eCBhcmd1bWVudCBOLCBpdCBjb3BpZXMgdGhlIE50aCBhcmd1bWVudCBpbnN0ZWFkLgpSZXBlYXRp bmcg4oCYQy1jIC7igJkgY29waWVzIGZyb20gYW4gZWFybGllciBzaGVsbCBjb21tYW5kIGluc3Rl YWQsIGFsd2F5cwp1c2luZyB0aGUgc2FtZSB2YWx1ZSBvZiBOIChkb27igJl0IGdpdmUgYSBwcmVm aXggYXJndW1lbnQgd2hlbiB5b3UgcmVwZWF0CnRoZSDigJhDLWMgLuKAmSBjb21tYW5kKS4KCiAg IFRoZXNlIGNvbW1hbmRzIGdldCB0aGUgdGV4dCBvZiBwcmV2aW91cyBzaGVsbCBjb21tYW5kcyBm cm9tIGEgc3BlY2lhbApoaXN0b3J5IGxpc3QsIG5vdCBmcm9tIHRoZSBzaGVsbCBidWZmZXIgaXRz ZWxmLiAgVGh1cywgZWRpdGluZyB0aGUgc2hlbGwKYnVmZmVyLCBvciBldmVuIGtpbGxpbmcgbGFy Z2UgcGFydHMgb2YgaXQsIGRvZXMgbm90IGFmZmVjdCB0aGUgaGlzdG9yeQp0aGF0IHRoZXNlIGNv bW1hbmRzIGFjY2Vzcy4KCiAgIFNvbWUgc2hlbGxzIHN0b3JlIHRoZWlyIGNvbW1hbmQgaGlzdG9y aWVzIGluIGZpbGVzIHNvIHRoYXQgeW91IGNhbgpyZWZlciB0byBjb21tYW5kcyBmcm9tIHByZXZp b3VzIHNoZWxsIHNlc3Npb25zLiAgRW1hY3MgcmVhZHMgdGhlIGNvbW1hbmQKaGlzdG9yeSBmaWxl IGZvciB5b3VyIGNob3NlbiBzaGVsbCwgdG8gaW5pdGlhbGl6ZSBpdHMgb3duIGNvbW1hbmQKaGlz dG9yeS4gIFRoZSBmaWxlIG5hbWUgaXMg4oCYfi8uYmFzaF9oaXN0b3J54oCZIGZvciBiYXNoLCDi gJh+Ly5zaF9oaXN0b3J54oCZCmZvciBrc2gsIGFuZCDigJh+Ly5oaXN0b3J54oCZIGZvciBvdGhl ciBzaGVsbHMuCgoKKioqIDM4LjUuMiBTaGVsbCBIaXN0b3J5IENvcHlpbmcKCuKAmEMtYyBDLXDi gJkKICAgICBNb3ZlIHBvaW50IHRvIHRoZSBwcmV2aW91cyBwcm9tcHQgKOKAmGNvbWludC1wcmV2 aW91cy1wcm9tcHTigJkpLgoK4oCYQy1jIEMtbuKAmQogICAgIE1vdmUgcG9pbnQgdG8gdGhlIGZv bGxvd2luZyBwcm9tcHQgKOKAmGNvbWludC1uZXh0LXByb21wdOKAmSkuCgrigJhDLWMgPFJFVD7i gJkKICAgICBDb3B5IHRoZSBpbnB1dCBjb21tYW5kIGF0IHBvaW50LCBpbnNlcnRpbmcgdGhlIGNv cHkgYXQgdGhlIGVuZCBvZgogICAgIHRoZSBidWZmZXIgKOKAmGNvbWludC1jb3B5LW9sZC1pbnB1 dOKAmSkuICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgbW92ZQogICAgIHBvaW50IGJhY2sgdG8gYSBw cmV2aW91cyBjb21tYW5kLiAgQWZ0ZXIgeW91IGNvcHkgdGhlIGNvbW1hbmQsIHlvdQogICAgIGNh biBzdWJtaXQgdGhlIGNvcHkgYXMgaW5wdXQgd2l0aCA8UkVUPi4gIElmIHlvdSB3aXNoLCB5b3Ug Y2FuIGVkaXQKICAgICB0aGUgY29weSBiZWZvcmUgcmVzdWJtaXR0aW5nIGl0LiAgSWYgeW91IHVz ZSB0aGlzIGNvbW1hbmQgb24gYW4KICAgICBvdXRwdXQgbGluZSwgaXQgY29waWVzIHRoYXQgbGlu ZSB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCgrigJhtb3VzZS0y4oCZCiAgICAgSWYg4oCYY29t aW50LXVzZS1wcm9tcHQtcmVnZXhw4oCZIGlzIOKAmG5pbOKAmSAodGhlIGRlZmF1bHQpLCBjb3B5 IHRoZSBvbGQKICAgICBpbnB1dCBjb21tYW5kIHRoYXQgeW91IGNsaWNrIG9uLCBpbnNlcnRpbmcg dGhlIGNvcHkgYXQgdGhlIGVuZCBvZgogICAgIHRoZSBidWZmZXIgKOKAmGNvbWludC1pbnNlcnQt aW5wdXTigJkpLiAgSWYg4oCYY29taW50LXVzZS1wcm9tcHQtcmVnZXhw4oCZCiAgICAgaXMgbm9u LeKAmG5pbOKAmSwgb3IgaWYgdGhlIGNsaWNrIGlzIG5vdCBvdmVyIG9sZCBpbnB1dCwganVzdCB5 YW5rIGFzCiAgICAgdXN1YWwuCgogICBNb3ZpbmcgdG8gYSBwcmV2aW91cyBpbnB1dCBhbmQgdGhl biBjb3B5aW5nIGl0IHdpdGgg4oCYQy1jIDxSRVQ+4oCZIG9yCuKAmG1vdXNlLTLigJkgcHJvZHVj ZXMgdGhlIHNhbWUgcmVzdWx0c+KAlHRoZSBzYW1lIGJ1ZmZlciBjb250ZW50c+KAlHRoYXQgeW91 CndvdWxkIGdldCBieSB1c2luZyDigJhNLXDigJkgZW5vdWdoIHRpbWVzIHRvIGZldGNoIHRoYXQg cHJldmlvdXMgaW5wdXQgZnJvbQp0aGUgaGlzdG9yeSBsaXN0LiAgSG93ZXZlciwg4oCYQy1jIDxS RVQ+4oCZIGNvcGllcyB0aGUgdGV4dCBmcm9tIHRoZSBidWZmZXIsCndoaWNoIGNhbiBiZSBkaWZm ZXJlbnQgZnJvbSB3aGF0IGlzIGluIHRoZSBoaXN0b3J5IGxpc3QgaWYgeW91IGVkaXQgdGhlCmlu cHV0IHRleHQgaW4gdGhlIGJ1ZmZlciBhZnRlciBpdCBoYXMgYmVlbiBzZW50LgoKCioqKiAzOC41 LjMgU2hlbGwgSGlzdG9yeSBSZWZlcmVuY2VzCgpWYXJpb3VzIHNoZWxscywgaW5jbHVkaW5nIGNz aCBhbmQgYmFzaCwgc3VwcG9ydCAiaGlzdG9yeSByZWZlcmVuY2VzIgp0aGF0IGJlZ2luIHdpdGgg 4oCYIeKAmSBhbmQg4oCYXuKAmS4gIFNoZWxsIG1vZGUgcmVjb2duaXplcyB0aGVzZSBjb25zdHJ1 Y3RzLAphbmQgY2FuIHBlcmZvcm0gdGhlIGhpc3Rvcnkgc3Vic3RpdHV0aW9uIGZvciB5b3UuCgog ICBJZiB5b3UgaW5zZXJ0IGEgaGlzdG9yeSByZWZlcmVuY2UgYW5kIHR5cGUgPFRBQj4sIHRoaXMg c2VhcmNoZXMgdGhlCmlucHV0IGhpc3RvcnkgZm9yIGEgbWF0Y2hpbmcgY29tbWFuZCwgcGVyZm9y bXMgc3Vic3RpdHV0aW9uIGlmCm5lY2Vzc2FyeSwgYW5kIHBsYWNlcyB0aGUgcmVzdWx0IGluIHRo ZSBidWZmZXIgaW4gcGxhY2Ugb2YgdGhlIGhpc3RvcnkKcmVmZXJlbmNlLiAgRm9yIGV4YW1wbGUs IHlvdSBjYW4gZmV0Y2ggdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgYmVnaW5uaW5nCndpdGgg4oCY bXbigJkgd2l0aCDigJghIG0gdiA8VEFCPuKAmS4gIFlvdSBjYW4gZWRpdCB0aGUgY29tbWFuZCBp ZiB5b3Ugd2lzaCwgYW5kCnRoZW4gcmVzdWJtaXQgdGhlIGNvbW1hbmQgdG8gdGhlIHNoZWxsIGJ5 IHR5cGluZyA8UkVUPi4KCiAgIFNoZWxsIG1vZGUgY2FuIG9wdGlvbmFsbHkgZXhwYW5kIGhpc3Rv cnkgcmVmZXJlbmNlcyBpbiB0aGUgYnVmZmVyCndoZW4geW91IHNlbmQgdGhlbSB0byB0aGUgc2hl bGwuICBUbyByZXF1ZXN0IHRoaXMsIHNldCB0aGUgdmFyaWFibGUK4oCYY29taW50LWlucHV0LWF1 dG9leHBhbmTigJkgdG8g4oCYaW5wdXTigJkuICBZb3UgY2FuIG1ha2UgPFNQQz4gcGVyZm9ybQpo aXN0b3J5IGV4cGFuc2lvbiBieSBiaW5kaW5nIDxTUEM+IHRvIHRoZSBjb21tYW5kIOKAmGNvbWlu dC1tYWdpYy1zcGFjZeKAmS4KKk5vdGUgUmViaW5kaW5nOjouCgogICBTaGVsbCBtb2RlIHJlY29n bml6ZXMgaGlzdG9yeSByZWZlcmVuY2VzIHdoZW4gdGhleSBmb2xsb3cgYSBwcm9tcHQuCipOb3Rl IFNoZWxsIFByb21wdHM6OiwgZm9yIGhvdyBTaGVsbCBtb2RlIHJlY29nbml6ZXMgcHJvbXB0cy4K CgoqKiAzOC42IERpcmVjdG9yeSBUcmFja2luZwoKU2hlbGwgbW9kZSBrZWVwcyB0cmFjayBvZiDi gJhjZOKAmSwg4oCYcHVzaGTigJkgYW5kIOKAmHBvcGTigJkgY29tbWFuZHMgZ2l2ZW4gdG8gdGhl CnN1YnNoZWxsLCBpbiBvcmRlciB0byBrZWVwIHRoZSBTaGVsbCBidWZmZXLigJlzIGRlZmF1bHQg ZGlyZWN0b3J5ICgqbm90ZQpGaWxlIE5hbWVzOjopIHRoZSBzYW1lIGFzIHRoZSBzaGVsbOKAmXMg d29ya2luZyBkaXJlY3RvcnkuICBJdCByZWNvZ25pemVzCnRoZXNlIGNvbW1hbmRzIGJ5IGV4YW1p bmluZyBsaW5lcyBvZiBpbnB1dCB0aGF0IHlvdSBzZW5kLgoKICAgSWYgeW91IHVzZSBhbGlhc2Vz IGZvciB0aGVzZSBjb21tYW5kcywgeW91IGNhbiB0ZWxsIEVtYWNzIHRvCnJlY29nbml6ZSB0aGVt IGFsc28sIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlcyDigJhzaGVsbC1wdXNoZC1yZWdleHDigJks CuKAmHNoZWxsLXBvcGQtcmVnZXhw4oCZLCBhbmQg4oCYc2hlbGwtY2QtcmVnZXhw4oCZIHRvIHRo ZSBhcHByb3ByaWF0ZSByZWd1bGFyCmV4cHJlc3Npb25zICgqbm90ZSBSZWdleHBzOjopLiAgRm9y IGV4YW1wbGUsIGlmIOKAmHNoZWxsLXB1c2hkLXJlZ2V4cOKAmQptYXRjaGVzIHRoZSBiZWdpbm5p bmcgb2YgYSBzaGVsbCBjb21tYW5kIGxpbmUsIHRoYXQgbGluZSBpcyByZWdhcmRlZCBhcwphIOKA mHB1c2hk4oCZIGNvbW1hbmQuICBUaGVzZSBjb21tYW5kcyBhcmUgcmVjb2duaXplZCBvbmx5IGF0 IHRoZSBiZWdpbm5pbmcKb2YgYSBzaGVsbCBjb21tYW5kIGxpbmUuCgogICBJZiBFbWFjcyBnZXRz IGNvbmZ1c2VkIGFib3V0IGNoYW5nZXMgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5IG9mIHRoZQpz dWJzaGVsbCwgdHlwZSDigJhNLXggZGlyc+KAmS4gIFRoaXMgY29tbWFuZCBhc2tzIHRoZSBzaGVs bCBmb3IgaXRzIHdvcmtpbmcKZGlyZWN0b3J5IGFuZCB1cGRhdGVzIHRoZSBkZWZhdWx0IGRpcmVj dG9yeSBhY2NvcmRpbmdseS4gIEl0IHdvcmtzIGZvcgpzaGVsbHMgdGhhdCBzdXBwb3J0IHRoZSBt b3N0IGNvbW1vbiBjb21tYW5kIHN5bnRheCwgYnV0IG1heSBub3Qgd29yayBmb3IKdW51c3VhbCBz aGVsbHMuCgogICBZb3UgY2FuIGFsc28gdXNlIERpcnRyYWNrIG1vZGUsIGEgYnVmZmVyLWxvY2Fs IG1pbm9yIG1vZGUgdGhhdAppbXBsZW1lbnRzIGFuIGFsdGVybmF0aXZlIG1ldGhvZCBvZiB0cmFj a2luZyB0aGUgc2hlbGzigJlzIHdvcmtpbmcKZGlyZWN0b3J5LiAgVG8gdXNlIHRoaXMgbWV0aG9k LCB5b3VyIHNoZWxsIHByb21wdCBtdXN0IGNvbnRhaW4gdGhlCndvcmtpbmcgZGlyZWN0b3J5IGF0 IGFsbCB0aW1lcywgYW5kIHlvdSBtdXN0IHN1cHBseSBhIHJlZ3VsYXIgZXhwcmVzc2lvbgpmb3Ig cmVjb2duaXppbmcgd2hpY2ggcGFydCBvZiB0aGUgcHJvbXB0IGNvbnRhaW5zIHRoZSB3b3JraW5n IGRpcmVjdG9yeTsKc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSDigJhkaXJ0 cmFjay1saXN04oCZIGZvciBkZXRhaWxzLiAgVG8KdXNlIERpcnRyYWNrIG1vZGUsIHR5cGUg4oCY TS14IGRpcnRyYWNrLW1vZGXigJkgaW4gdGhlIFNoZWxsIGJ1ZmZlciwgb3IgYWRkCuKAmGRpcnRy YWNrLW1vZGXigJkgdG8g4oCYc2hlbGwtbW9kZS1ob29r4oCZICgqbm90ZSBIb29rczo6KS4KCgoq KiAzOC43IFNoZWxsIE1vZGUgT3B0aW9ucwoKSWYgdGhlIHZhcmlhYmxlIOKAmGNvbWludC1zY3Jv bGwtdG8tYm90dG9tLW9uLWlucHV04oCZIGlzIG5vbi3igJhuaWzigJksCmluc2VydGlvbiBhbmQg eWFuayBjb21tYW5kcyBzY3JvbGwgdGhlIHNlbGVjdGVkIHdpbmRvdyB0byB0aGUgYm90dG9tCmJl Zm9yZSBpbnNlcnRpbmcuICBUaGUgZGVmYXVsdCBpcyDigJhuaWzigJkuCgogICBJZiDigJhjb21p bnQtc2Nyb2xsLXNob3ctbWF4aW11bS1vdXRwdXTigJkgaXMgbm9uLeKAmG5pbOKAmSwgdGhlbiBh cnJpdmFsIG9mCm91dHB1dCB3aGVuIHBvaW50IGlzIGF0IHRoZSBlbmQgdHJpZXMgdG8gc2Nyb2xs IHRoZSBsYXN0IGxpbmUgb2YgdGV4dCB0bwp0aGUgYm90dG9tIGxpbmUgb2YgdGhlIHdpbmRvdywg c2hvd2luZyBhcyBtdWNoIHVzZWZ1bCB0ZXh0IGFzIHBvc3NpYmxlLgooVGhpcyBtaW1pY3MgdGhl IHNjcm9sbGluZyBiZWhhdmlvciBvZiBtb3N0IHRlcm1pbmFscy4pICBUaGUgZGVmYXVsdCBpcwri gJh04oCZLgoKICAgQnkgc2V0dGluZyDigJhjb21pbnQtbW92ZS1wb2ludC1mb3Itb3V0cHV04oCZ LCB5b3UgY2FuIG9wdCBmb3IgaGF2aW5nCnBvaW50IGp1bXAgdG8gdGhlIGVuZCBvZiB0aGUgYnVm ZmVyIHdoZW5ldmVyIG91dHB1dCBhcnJpdmVz4oCUbm8gbWF0dGVyCndoZXJlIGluIHRoZSBidWZm ZXIgcG9pbnQgd2FzIGJlZm9yZS4gIElmIHRoZSB2YWx1ZSBpcyDigJh0aGlz4oCZLCBwb2ludApq dW1wcyBpbiB0aGUgc2VsZWN0ZWQgd2luZG93LiAgSWYgdGhlIHZhbHVlIGlzIOKAmGFsbOKAmSwg cG9pbnQganVtcHMgaW4KZWFjaCB3aW5kb3cgdGhhdCBzaG93cyB0aGUgQ29taW50IGJ1ZmZlci4g IElmIHRoZSB2YWx1ZSBpcyDigJhvdGhlcuKAmSwKcG9pbnQganVtcHMgaW4gYWxsIG5vbnNlbGVj dGVkIHdpbmRvd3MgdGhhdCBzaG93IHRoZSBjdXJyZW50IGJ1ZmZlci4KVGhlIGRlZmF1bHQgdmFs dWUgaXMg4oCYbmls4oCZLCB3aGljaCBtZWFucyBwb2ludCBkb2VzIG5vdCBqdW1wIHRvIHRoZSBl bmQuCgogICBJZiB5b3Ugc2V0IOKAmGNvbWludC1wcm9tcHQtcmVhZC1vbmx54oCZLCB0aGUgcHJv bXB0cyBpbiB0aGUgQ29taW50CmJ1ZmZlciBhcmUgcmVhZC1vbmx5LgoKICAgVGhlIHZhcmlhYmxl IOKAmGNvbWludC1pbnB1dC1pZ25vcmVkdXBz4oCZIGNvbnRyb2xzIHdoZXRoZXIgc3VjY2Vzc2l2 ZQppZGVudGljYWwgaW5wdXRzIGFyZSBzdG9yZWQgaW4gdGhlIGlucHV0IGhpc3RvcnkuICBBIG5v bi3igJhuaWzigJkgdmFsdWUKbWVhbnMgdG8gb21pdCBhbiBpbnB1dCB0aGF0IGlzIHRoZSBzYW1l IGFzIHRoZSBwcmV2aW91cyBpbnB1dC4gIFRoZQpkZWZhdWx0IGlzIOKAmG5pbOKAmSwgd2hpY2gg bWVhbnMgdG8gc3RvcmUgZWFjaCBpbnB1dCBldmVuIGlmIGl0IGlzIGVxdWFsIHRvCnRoZSBwcmV2 aW91cyBpbnB1dC4KCiAgIFRocmVlIHZhcmlhYmxlcyBjdXN0b21pemUgZmlsZSBuYW1lIGNvbXBs ZXRpb24uICBUaGUgdmFyaWFibGUK4oCYY29taW50LWNvbXBsZXRpb24tYWRkc3VmZml44oCZIGNv bnRyb2xzIHdoZXRoZXIgY29tcGxldGlvbiBpbnNlcnRzIGEKc3BhY2Ugb3IgYSBzbGFzaCB0byBp bmRpY2F0ZSBhIGZ1bGx5IGNvbXBsZXRlZCBmaWxlIG9yIGRpcmVjdG9yeSBuYW1lCihub24t4oCY bmls4oCZIG1lYW5zIGRvIGluc2VydCBhIHNwYWNlIG9yIHNsYXNoKS4K4oCYY29taW50LWNvbXBs ZXRpb24tcmVjZXhhY3TigJksIGlmIG5vbi3igJhuaWzigJksIGRpcmVjdHMgPFRBQj4gdG8gY2hv b3NlIHRoZQpzaG9ydGVzdCBwb3NzaWJsZSBjb21wbGV0aW9uIGlmIHRoZSB1c3VhbCBFbWFjcyBj b21wbGV0aW9uIGFsZ29yaXRobQpjYW5ub3QgYWRkIGV2ZW4gYSBzaW5nbGUgY2hhcmFjdGVyLiAg 4oCYY29taW50LWNvbXBsZXRpb24tYXV0b2xpc3TigJksIGlmCm5vbi3igJhuaWzigJksIHNheXMg dG8gbGlzdCBhbGwgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIHdoZW5ldmVyIGNvbXBsZXRpb24K aXMgbm90IGV4YWN0LgoKICAgQ29tbWFuZCBjb21wbGV0aW9uIG5vcm1hbGx5IGNvbnNpZGVycyBv bmx5IGV4ZWN1dGFibGUgZmlsZXMuICBJZiB5b3UKc2V0IOKAmHNoZWxsLWNvbXBsZXRpb24tZXhl Y29ubHnigJkgdG8g4oCYbmls4oCZLCBpdCBjb25zaWRlcnMgbm9uZXhlY3V0YWJsZQpmaWxlcyBh cyB3ZWxsLgoKICAgVGhlIHZhcmlhYmxlIOKAmHNoZWxsLWNvbXBsZXRpb24tZmlnbm9yZeKAmSBz cGVjaWZpZXMgYSBsaXN0IG9mIGZpbGUgbmFtZQpleHRlbnNpb25zIHRvIGlnbm9yZSBpbiBTaGVs bCBtb2RlIGNvbXBsZXRpb24uICBUaGUgZGVmYXVsdCBzZXR0aW5nIGlzCuKAmG5pbOKAmSwgYnV0 IHNvbWUgdXNlcnMgcHJlZmVyIOKAmCgifiIgIiMiICIlIinigJkgdG8gaWdub3JlIGZpbGUgbmFt ZXMgZW5kaW5nCmluIOKAmH7igJksIOKAmCPigJkgb3Ig4oCYJeKAmS4gIE90aGVyIHJlbGF0ZWQg Q29taW50IG1vZGVzIHVzZSB0aGUgdmFyaWFibGUK4oCYY29taW50LWNvbXBsZXRpb24tZmlnbm9y ZeKAmSBpbnN0ZWFkLgoKICAgU29tZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIHRoZSBzaGVs bCBjb21tYW5kIGNvbXBsZXRpb24gbWF5IGFsc28KYmUgZm91bmQgaW4gdGhlIGxpc3AgZG9jdW1l bnRhdGlvbiBvZiB0aGUK4oCYc2hlbGwtZHluYW1pYy1jb21wbGV0ZS1jb21tYW5k4oCZIGZ1bmN0 aW9uLgoKICAgWW91IGNhbiBjb25maWd1cmUgdGhlIGJlaGF2aW9yIG9mIOKAmHB1c2hk4oCZLiAg VmFyaWFibGVzIGNvbnRyb2wgd2hldGhlcgrigJhwdXNoZOKAmSBiZWhhdmVzIGxpa2Ug4oCYY2Ti gJkgaWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4KKOKAmHNoZWxsLXB1c2hkLXRvaG9tZeKAmSksIHBv cCByYXRoZXIgdGhhbiByb3RhdGUgd2l0aCBhIG51bWVyaWMgYXJndW1lbnQKKOKAmHNoZWxsLXB1 c2hkLWRleHRyYWN04oCZKSwgYW5kIG9ubHkgYWRkIGRpcmVjdG9yaWVzIHRvIHRoZSBkaXJlY3Rv cnkKc3RhY2sgaWYgdGhleSBhcmUgbm90IGFscmVhZHkgb24gaXQgKOKAmHNoZWxsLXB1c2hkLWR1 bmlxdWXigJkpLiAgVGhlIHZhbHVlcwp5b3UgY2hvb3NlIHNob3VsZCBtYXRjaCB0aGUgdW5kZXJs eWluZyBzaGVsbCwgb2YgY291cnNlLgoKICAgQ29taW50IG1vZGUgc2V0cyB0aGUg4oCYVEVSTeKA mSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhIHNhZmUgZGVmYXVsdAp2YWx1ZSwgYnV0IHRoaXMg dmFsdWUgZGlzYWJsZXMgc29tZSB1c2VmdWwgZmVhdHVyZXMuICBGb3IgZXhhbXBsZSwgY29sb3IK aXMgZGlzYWJsZWQgaW4gYXBwbGljYXRpb25zIHRoYXQgdXNlIOKAmFRFUk3igJkgdG8gZGV0ZXJt aW5lIGlmIGNvbG9yIGlzCnN1cHBvcnRlZC4gIFRoZXJlZm9yZSwgRW1hY3MgcHJvdmlkZXMgYW4g b3B0aW9uCuKAmGNvbWludC10ZXJtaW5mby10ZXJtaW5hbOKAmSwgd2hpY2ggeW91IGNhbiBzZXQg dG8gYSB0ZXJtaW5hbCB0aGF0IGlzCnByZXNlbnQgaW4geW91ciBzeXN0ZW3igJlzIHRlcm1pbmZv IGRhdGFiYXNlLCBpbiBvcmRlciB0byB0YWtlIGFkdmFudGFnZQpvZiBhZHZhbmNlZCBmZWF0dXJl cyBvZiB0aGF0IHRlcm1pbmFsLgoKCioqIDM4LjggRW1hY3MgVGVybWluYWwgRW11bGF0b3IKClRv IHJ1biBhIHN1YnNoZWxsIGluIGEgdGV4dCB0ZXJtaW5hbCBlbXVsYXRvciwgdXNlIOKAmE0teCB0 ZXJt4oCZLiAgVGhpcwpjcmVhdGVzIChvciByZXVzZXMpIGEgYnVmZmVyIG5hbWVkIOKAmCp0ZXJt aW5hbCrigJksIGFuZCBydW5zIGEgc3Vic2hlbGwKd2l0aCBpbnB1dCBjb21pbmcgZnJvbSB5b3Vy IGtleWJvYXJkLCBhbmQgb3V0cHV0IGdvaW5nIHRvIHRoYXQgYnVmZmVyLgoKICAgVGhlIHRlcm1p bmFsIGVtdWxhdG9yIHVzZXMgVGVybSBtb2RlLCB3aGljaCBoYXMgdHdvIGlucHV0IG1vZGVzLiAg SW4KImxpbmUgbW9kZSIsIFRlcm0gYmFzaWNhbGx5IGFjdHMgbGlrZSBTaGVsbCBtb2RlICgqbm90 ZSBTaGVsbCBNb2RlOjopLgpJbiAiY2hhciBtb2RlIiwgZWFjaCBjaGFyYWN0ZXIgaXMgc2VudCBk aXJlY3RseSB0byB0aGUgc3Vic2hlbGwsIGFzCnRlcm1pbmFsIGlucHV0OyB0aGUgc29sZSBleGNl cHRpb24gaXMgdGhlIHRlcm1pbmFsIGVzY2FwZSBjaGFyYWN0ZXIsCndoaWNoIGJ5IGRlZmF1bHQg aXMg4oCYQy1j4oCZICgqbm90ZSBUZXJtIE1vZGU6OikuICBBbnkgZWNob2luZyBvZiB5b3VyCmlu cHV0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgc3Vic2hlbGw7IGFueSB0ZXJtaW5hbCBv dXRwdXQgZnJvbQp0aGUgc3Vic2hlbGwgZ29lcyBpbnRvIHRoZSBidWZmZXIsIGFkdmFuY2luZyBw b2ludC4KCiAgIFNvbWUgcHJvZ3JhbXMgKHN1Y2ggYXMgRW1hY3MgaXRzZWxmKSBuZWVkIHRvIGNv bnRyb2wgdGhlIGFwcGVhcmFuY2UKb2YgdGhlIHRlcm1pbmFsIHNjcmVlbiBpbiBkZXRhaWwuICBU aGV5IGRvIHRoaXMgYnkgZW1pdHRpbmcgc3BlY2lhbApjb250cm9sIGNvZGVzLiAgVGVybSBtb2Rl IHJlY29nbml6ZXMgYW5kIGhhbmRsZXMgQU5TSS1zdGFuZGFyZApWVDEwMC1zdHlsZSBlc2NhcGUg c2VxdWVuY2VzLCB3aGljaCBhcmUgYWNjZXB0ZWQgYnkgbW9zdCBtb2Rlcm4KdGVybWluYWxzLCBp bmNsdWRpbmcg4oCYeHRlcm3igJkuICAoSGVuY2UsIHlvdSBjYW4gYWN0dWFsbHkgcnVuIEVtYWNz IGluc2lkZQphbiBFbWFjcyBUZXJtIHdpbmRvdy4pCgogICBUaGUg4oCYdGVybeKAmSBmYWNlIHNw ZWNpZmllcyB0aGUgZGVmYXVsdCBhcHBlYXJhbmNlIG9mIHRleHQgaW4gdGhlCnRlcm1pbmFsIGVt dWxhdG9yICh0aGUgZGVmYXVsdCBpcyB0aGUgc2FtZSBhcHBlYXJhbmNlIGFzIHRoZSDigJhkZWZh dWx04oCZCmZhY2UpLiAgV2hlbiB0ZXJtaW5hbCBjb250cm9sIGNvZGVzIGFyZSB1c2VkIHRvIGNo YW5nZSB0aGUgYXBwZWFyYW5jZSBvZgp0ZXh0LCB0aGVzZSBhcmUgcmVwcmVzZW50ZWQgaW4gdGhl IHRlcm1pbmFsIGVtdWxhdG9yIGJ5IHRoZSBmYWNlcwrigJh0ZXJtLWNvbG9yLWJsYWNr4oCZLCDi gJh0ZXJtLWNvbG9yLXJlZOKAmSwg4oCYdGVybS1jb2xvci1ncmVlbuKAmSwK4oCYdGVybS1jb2xv ci15ZWxsb3figJkg4oCYdGVybS1jb2xvci1ibHVl4oCZLCDigJh0ZXJtLWNvbG9yLW1hZ2VudGHi gJksCuKAmHRlcm0tY29sb3ItY3lhbuKAmSwg4oCYdGVybS1jb2xvci13aGl0ZeKAmSwg4oCYdGVy bS1jb2xvci11bmRlcmxpbmXigJksIGFuZArigJh0ZXJtLWNvbG9yLWJvbGTigJkuICAqTm90ZSBG YWNlczo6LgoKICAgWW91IGNhbiBhbHNvIHVzZSBUZXJtIG1vZGUgdG8gY29tbXVuaWNhdGUgd2l0 aCBhIGRldmljZSBjb25uZWN0ZWQgdG8KYSBzZXJpYWwgcG9ydC4gICpOb3RlIFNlcmlhbCBUZXJt aW5hbDo6LgoKICAgVGhlIGZpbGUgbmFtZSB1c2VkIHRvIGxvYWQgdGhlIHN1YnNoZWxsIGlzIGRl dGVybWluZWQgdGhlIHNhbWUgd2F5IGFzCmZvciBTaGVsbCBtb2RlLiAgVG8gbWFrZSBtdWx0aXBs ZSB0ZXJtaW5hbCBlbXVsYXRvcnMsIHJlbmFtZSB0aGUgYnVmZmVyCuKAmCp0ZXJtaW5hbCrigJkg dG8gc29tZXRoaW5nIGRpZmZlcmVudCB1c2luZyDigJhNLXggcmVuYW1lLXVuaXF1ZWx54oCZLCBq dXN0IGFzCndpdGggU2hlbGwgbW9kZS4KCiAgIFVubGlrZSBTaGVsbCBtb2RlLCBUZXJtIG1vZGUg ZG9lcyBub3QgdHJhY2sgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGJ5CmV4YW1pbmluZyB5b3VyIGlu cHV0LiAgQnV0IHNvbWUgc2hlbGxzIGNhbiB0ZWxsIFRlcm0gd2hhdCB0aGUgY3VycmVudApkaXJl Y3RvcnkgaXMuICBUaGlzIGlzIGRvbmUgYXV0b21hdGljYWxseSBieSDigJhiYXNo4oCZIHZlcnNp b24gMS4xNSBhbmQKbGF0ZXIuCgoKKiogMzguOSBUZXJtIE1vZGUKClRvIHN3aXRjaCBiZXR3ZWVu IGxpbmUgYW5kIGNoYXIgbW9kZSBpbiBUZXJtIG1vZGUsIHVzZSB0aGVzZSBjb21tYW5kczoKCuKA mEMtYyBDLWrigJkKICAgICBTd2l0Y2ggdG8gbGluZSBtb2RlICjigJh0ZXJtLWxpbmUtbW9kZeKA mSkuICBEbyBub3RoaW5nIGlmIGFscmVhZHkgaW4KICAgICBsaW5lIG1vZGUuCgrigJhDLWMgQy1r 4oCZCiAgICAgU3dpdGNoIHRvIGNoYXIgbW9kZSAo4oCYdGVybS1jaGFyLW1vZGXigJkpLiAgRG8g bm90aGluZyBpZiBhbHJlYWR5IGluCiAgICAgY2hhciBtb2RlLgoKICAgVGhlIGZvbGxvd2luZyBj b21tYW5kcyBhcmUgb25seSBhdmFpbGFibGUgaW4gY2hhciBtb2RlOgoK4oCYQy1jIEMtY+KAmQog ICAgIFNlbmQgYSBsaXRlcmFsIOKAmEMtY+KAmSB0byB0aGUgc3ViLXNoZWxsICjigJh0ZXJtLWlu dGVycnVwdC1zdWJqb2LigJkpLgoK4oCYQy1jIENIQVLigJkKICAgICBUaGlzIGlzIGVxdWl2YWxl bnQgdG8g4oCYQy14IENIQVLigJkgaW4gbm9ybWFsIEVtYWNzLiAgRm9yIGV4YW1wbGUsCiAgICAg 4oCYQy1jIG/igJkgaW52b2tlcyB0aGUgZ2xvYmFsIGJpbmRpbmcgb2Yg4oCYQy14IG/igJksIHdo aWNoIGlzIG5vcm1hbGx5CiAgICAg4oCYb3RoZXItd2luZG934oCZLgoKICAgVGVybSBtb2RlIGhh cyBhIHBhZ2UtYXQtYS10aW1lIGZlYXR1cmUuICBXaGVuIGVuYWJsZWQsIGl0IG1ha2VzCm91dHB1 dCBwYXVzZSBhdCB0aGUgZW5kIG9mIGVhY2ggc2NyZWVuZnVsOgoK4oCYQy1jIEMtceKAmQogICAg IFRvZ2dsZSB0aGUgcGFnZS1hdC1hLXRpbWUgZmVhdHVyZSAo4oCYdGVybS1wYWdlci10b2dnbGXi gJkpLiAgVGhpcwogICAgIGNvbW1hbmQgd29ya3MgaW4gYm90aCBsaW5lIGFuZCBjaGFyIG1vZGVz LiAgV2hlbiB0aGUgZmVhdHVyZSBpcwogICAgIGVuYWJsZWQsIHRoZSBtb2RlLWxpbmUgZGlzcGxh eXMgdGhlIHdvcmQg4oCYcGFnZeKAmSwgYW5kIGVhY2ggdGltZSBUZXJtCiAgICAgcmVjZWl2ZXMg bW9yZSB0aGFuIGEgc2NyZWVuZnVsIG9mIG91dHB1dCwgaXQgcGF1c2VzIGFuZCBkaXNwbGF5cwog ICAgIOKAmCoqTU9SRSoq4oCZIGluIHRoZSBtb2RlLWxpbmUuICBUeXBlIDxTUEM+IHRvIGRpc3Bs YXkgdGhlIG5leHQKICAgICBzY3JlZW5mdWwgb2Ygb3V0cHV0LCBvciDigJg/4oCZIHRvIHNlZSB5 b3VyIG90aGVyIG9wdGlvbnMuICBUaGUKICAgICBpbnRlcmZhY2UgaXMgc2ltaWxhciB0byB0aGUg 4oCYbW9yZeKAmSBwcm9ncmFtLgoKCioqIDM4LjEwIFJlbW90ZSBIb3N0IFNoZWxsCgpZb3UgY2Fu IGxvZ2luIHRvIGEgcmVtb3RlIGNvbXB1dGVyLCB1c2luZyB3aGF0ZXZlciBjb21tYW5kcyB5b3Ug d291bGQKZnJvbSBhIHJlZ3VsYXIgdGVybWluYWwgKGUuZy4sIHVzaW5nIHRoZSDigJhzc2jigJkg b3Ig4oCYdGVsbmV04oCZIG9yIOKAmHJsb2dpbuKAmQpjb21tYW5kcyksIGZyb20gYSBUZXJtIHdp bmRvdy4KCiAgIEEgcHJvZ3JhbSB0aGF0IGFza3MgeW91IGZvciBhIHBhc3N3b3JkIHdpbGwgbm9y bWFsbHkgc3VwcHJlc3MgZWNob2luZwpvZiB0aGUgcGFzc3dvcmQsIHNvIHRoZSBwYXNzd29yZCB3 aWxsIG5vdCBzaG93IHVwIGluIHRoZSBidWZmZXIuICBUaGlzCndpbGwgaGFwcGVuIGp1c3QgYXMg aWYgeW91IHdlcmUgdXNpbmcgYSByZWFsIHRlcm1pbmFsLCBpZiB0aGUgYnVmZmVyIGlzCmluIGNo YXIgbW9kZS4gIElmIGl0IGlzIGluIGxpbmUgbW9kZSwgdGhlIHBhc3N3b3JkIGlzIHRlbXBvcmFy aWx5CnZpc2libGUsIGJ1dCB3aWxsIGJlIGVyYXNlZCB3aGVuIHlvdSBoaXQgcmV0dXJuLiAgKFRo aXMgaGFwcGVucwphdXRvbWF0aWNhbGx5OyB0aGVyZSBpcyBubyBzcGVjaWFsIHBhc3N3b3JkIHBy b2Nlc3NpbmcuKQoKICAgV2hlbiB5b3UgbG9nIGluIHRvIGEgZGlmZmVyZW50IG1hY2hpbmUsIHlv dSBuZWVkIHRvIHNwZWNpZnkgdGhlIHR5cGUKb2YgdGVybWluYWwgeW914oCZcmUgdXNpbmcsIGJ5 IHNldHRpbmcgdGhlIOKAmFRFUk3igJkgZW52aXJvbm1lbnQgdmFyaWFibGUgaW4KdGhlIGVudmly b25tZW50IGZvciB0aGUgcmVtb3RlIGxvZ2luIGNvbW1hbmQuICAoSWYgeW91IHVzZSBiYXNoLCB5 b3UgZG8KdGhhdCBieSB3cml0aW5nIHRoZSB2YXJpYWJsZSBhc3NpZ25tZW50IGJlZm9yZSB0aGUg cmVtb3RlIGxvZ2luIGNvbW1hbmQsCndpdGhvdXQgYSBzZXBhcmF0aW5nIGNvbW1hLikgIFRlcm1p bmFsIHR5cGVzIOKAmGFuc2nigJkgb3Ig4oCYdnQxMDDigJkgd2lsbCB3b3JrCm9uIG1vc3Qgc3lz dGVtcy4KCgoqKiAzOC4xMSBTZXJpYWwgVGVybWluYWwKCklmIHlvdSBoYXZlIGEgZGV2aWNlIGNv bm5lY3RlZCB0byBhIHNlcmlhbCBwb3J0IG9mIHlvdXIgY29tcHV0ZXIsIHlvdQpjYW4gY29tbXVu aWNhdGUgd2l0aCBpdCBieSB0eXBpbmcg4oCYTS14IHNlcmlhbC10ZXJt4oCZLiAgVGhpcyBjb21t YW5kIGFza3MKZm9yIGEgc2VyaWFsIHBvcnQgbmFtZSBhbmQgc3BlZWQsIGFuZCBzd2l0Y2hlcyB0 byBhIG5ldyBUZXJtIG1vZGUKYnVmZmVyLiAgRW1hY3MgY29tbXVuaWNhdGVzIHdpdGggdGhlIHNl cmlhbCBkZXZpY2UgdGhyb3VnaCB0aGlzIGJ1ZmZlcgpqdXN0IGxpa2UgaXQgZG9lcyB3aXRoIGEg dGVybWluYWwgaW4gb3JkaW5hcnkgVGVybSBtb2RlLgoKICAgVGhlIHNwZWVkIG9mIHRoZSBzZXJp YWwgcG9ydCBpcyBtZWFzdXJlZCBpbiBiaXRzIHBlciBzZWNvbmQuICBUaGUKbW9zdCBjb21tb24g c3BlZWQgaXMgOTYwMCBiaXRzIHBlciBzZWNvbmQuICBZb3UgY2FuIGNoYW5nZSB0aGUgc3BlZWQK aW50ZXJhY3RpdmVseSBieSBjbGlja2luZyBvbiB0aGUgbW9kZSBsaW5lLgoKICAgQSBzZXJpYWwg cG9ydCBjYW4gYmUgY29uZmlndXJlZCBldmVuIG1vcmUgYnkgY2xpY2tpbmcgb24g4oCYOE4x4oCZ IGluIHRoZQptb2RlIGxpbmUuICBCeSBkZWZhdWx0LCBhIHNlcmlhbCBwb3J0IGlzIGNvbmZpZ3Vy ZWQgYXMg4oCYOE4x4oCZLCB3aGljaAptZWFucyB0aGF0IGVhY2ggYnl0ZSBjb25zaXN0cyBvZiA4 IGRhdGEgYml0cywgTm8gcGFyaXR5IGNoZWNrIGJpdCwgYW5kIDEKc3RvcGJpdC4KCiAgIElmIHRo ZSBzcGVlZCBvciB0aGUgY29uZmlndXJhdGlvbiBpcyB3cm9uZywgeW91IGNhbm5vdCBjb21tdW5p Y2F0ZQp3aXRoIHlvdXIgZGV2aWNlIGFuZCB3aWxsIHByb2JhYmx5IG9ubHkgc2VlIGdhcmJhZ2Ug b3V0cHV0IGluIHRoZQp3aW5kb3cuCgoKKiAzOSBVc2luZyBFbWFjcyBhcyBhIFNlcnZlcgoKVmFy aW91cyBwcm9ncmFtcyBjYW4gaW52b2tlIHlvdXIgY2hvaWNlIG9mIGVkaXRvciB0byBlZGl0IGEg cGFydGljdWxhcgpwaWVjZSBvZiB0ZXh0LiAgRm9yIGluc3RhbmNlLCB2ZXJzaW9uIGNvbnRyb2wg cHJvZ3JhbXMgaW52b2tlIGFuIGVkaXRvcgp0byBlbnRlciB2ZXJzaW9uIGNvbnRyb2wgbG9ncyAo Km5vdGUgVmVyc2lvbiBDb250cm9sOjopLCBhbmQgdGhlIFVuaXgK4oCYbWFpbOKAmSB1dGlsaXR5 IGludm9rZXMgYW4gZWRpdG9yIHRvIGVudGVyIGEgbWVzc2FnZSB0byBzZW5kLiAgQnkKY29udmVu dGlvbiwgeW91ciBjaG9pY2Ugb2YgZWRpdG9yIGlzIHNwZWNpZmllZCBieSB0aGUgZW52aXJvbm1l bnQKdmFyaWFibGUg4oCYRURJVE9S4oCZLiAgSWYgeW91IHNldCDigJhFRElUT1LigJkgdG8g4oCY ZW1hY3PigJksIEVtYWNzIHdvdWxkIGJlCmludm9rZWQsIGJ1dCBpbiBhbiBpbmNvbnZlbmllbnQg d2F54oCUYnkgc3RhcnRpbmcgYSBuZXcgRW1hY3MgcHJvY2Vzcy4KVGhpcyBpcyBpbmNvbnZlbmll bnQgYmVjYXVzZSB0aGUgbmV3IEVtYWNzIHByb2Nlc3MgZG9lc27igJl0IHNoYXJlCmJ1ZmZlcnMs IGEgY29tbWFuZCBoaXN0b3J5LCBvciBvdGhlciBraW5kcyBvZiBpbmZvcm1hdGlvbiB3aXRoIGFu eQpleGlzdGluZyBFbWFjcyBwcm9jZXNzLgoKICAgWW91IGNhbiBzb2x2ZSB0aGlzIHByb2JsZW0g Ynkgc2V0dGluZyB1cCBFbWFjcyBhcyBhbiAiZWRpdCBzZXJ2ZXIiLApzbyB0aGF0IGl0IOKAnGxp c3RlbnPigJ0gZm9yIGV4dGVybmFsIGVkaXQgcmVxdWVzdHMgYW5kIGFjdHMgYWNjb3JkaW5nbHku ClRoZXJlIGFyZSB2YXJpb3VzIHdheXMgdG8gc3RhcnQgYW4gRW1hY3Mgc2VydmVyOgoKICAg4oCi IFJ1biB0aGUgY29tbWFuZCDigJhzZXJ2ZXItc3RhcnTigJkgaW4gYW4gZXhpc3RpbmcgRW1hY3Mg cHJvY2VzczogZWl0aGVyCiAgICAgdHlwZSDigJhNLXggc2VydmVyLXN0YXJ04oCZLCBvciBwdXQg dGhlIGV4cHJlc3Npb24g4oCYKHNlcnZlci1zdGFydCnigJkgaW4KICAgICB5b3VyIGluaXQgZmls ZSAoKm5vdGUgSW5pdCBGaWxlOjopLiAgVGhlIGV4aXN0aW5nIEVtYWNzIHByb2Nlc3MgaXMKICAg ICB0aGUgc2VydmVyOyB3aGVuIHlvdSBleGl0IEVtYWNzLCB0aGUgc2VydmVyIGRpZXMgd2l0aCB0 aGUgRW1hY3MKICAgICBwcm9jZXNzLgoKICAg4oCiIFJ1biBFbWFjcyBhcyBhICJkYWVtb24iLCB1 c2luZyBvbmUgb2YgdGhlIOKAmC0tZGFlbW9u4oCZIGNvbW1hbmQtbGluZQogICAgIG9wdGlvbnMu ICAqTm90ZSBJbml0aWFsIE9wdGlvbnM6Oi4gIFdoZW4gRW1hY3MgaXMgc3RhcnRlZCB0aGlzIHdh eSwKICAgICBpdCBjYWxscyDigJhzZXJ2ZXItc3RhcnTigJkgYWZ0ZXIgaW5pdGlhbGl6YXRpb24g YW5kIGRvZXMgbm90IG9wZW4gYW4KICAgICBpbml0aWFsIGZyYW1lLiAgSXQgdGhlbiB3YWl0cyBm b3IgZWRpdCByZXF1ZXN0cyBmcm9tIGNsaWVudHMuCgogICDigKIgSWYgeW91ciBvcGVyYXRpbmcg c3lzdGVtIHVzZXMg4oCYc3lzdGVtZOKAmSB0byBtYW5hZ2Ugc3RhcnR1cCwgeW91IGNhbgogICAg IGF1dG9tYXRpY2FsbHkgc3RhcnQgRW1hY3MgaW4gZGFlbW9uIG1vZGUgd2hlbiB5b3UgbG9naW4g dXNpbmcgdGhlCiAgICAgc3VwcGxpZWQgInN5c3RlbWQgdW5pdCBmaWxlIi4gIFRvIGFjdGl2YXRl IHRoaXM6CiAgICAgICAgICBzeXN0ZW1jdGwgLS11c2VyIGVuYWJsZSBlbWFjcwogICAgIChJZiB5 b3VyIEVtYWNzIHdhcyBpbnN0YWxsZWQgaW50byBhIG5vbi1zdGFuZGFyZCBsb2NhdGlvbiwgeW91 IG1heQogICAgIG5lZWQgdG8gY29weSB0aGUg4oCYZW1hY3Muc2VydmljZeKAmSBmaWxlIHRvIGEg c3RhbmRhcmQgZGlyZWN0b3J5IHN1Y2gKICAgICBhcyDigJh+Ly5jb25maWcvc3lzdGVtZC91c2Vy L+KAmS4pCgogICDigKIgQW4gZXh0ZXJuYWwgcHJvY2VzcyBjYW4gaW52b2tlIHRoZSBFbWFjcyBz ZXJ2ZXIgd2hlbiBhIGNvbm5lY3Rpb24KICAgICBldmVudCBvY2N1cnMgdXBvbiBhIHNwZWNpZmll ZCBzb2NrZXQgYW5kIHBhc3MgdGhlIHNvY2tldCB0byB0aGUgbmV3CiAgICAgRW1hY3Mgc2VydmVy IHByb2Nlc3MuICBBbiBpbnN0YW5jZSBvZiB0aGlzIGlzIHRoZSBzb2NrZXQKICAgICBmdW5jdGlv bmFsaXR5IG9mIOKAmHN5c3RlbWTigJk6IHRoZSDigJhzeXN0ZW1k4oCZIHNlcnZpY2UgY3JlYXRl cyBhIHNvY2tldAogICAgIGFuZCBsaXN0ZW5zIGZvciBjb25uZWN0aW9ucyBvbiBpdDsgd2hlbiDi gJhlbWFjc2NsaWVudOKAmSBjb25uZWN0cyB0bwogICAgIGl0IGZvciB0aGUgZmlyc3QgdGltZSwg 4oCYc3lzdGVtZOKAmSBjYW4gbGF1bmNoIHRoZSBFbWFjcyBzZXJ2ZXIgYW5kCiAgICAgaGFuZCBv dmVyIHRoZSBzb2NrZXQgdG8gaXQgZm9yIHNlcnZpY2luZyDigJhlbWFjc2NsaWVudOKAmSBjb25u ZWN0aW9ucy4KICAgICBBIHNldHVwIHRvIHVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgY291bGQgYmU6 CgogICAgIOKAmH4vLmNvbmZpZy9zeXN0ZW1kL3VzZXIvZW1hY3Muc29ja2V04oCZOgogICAgICAg ICAgW1NvY2tldF0KICAgICAgICAgIExpc3RlblN0cmVhbT0vcGF0aC90by8uZW1hY3Muc29ja2V0 CgogICAgICAgICAgW0luc3RhbGxdCiAgICAgICAgICBXYW50ZWRCeT1zb2NrZXRzLnRhcmdldAoK ICAgICAoVGhlIOKAmGVtYWNzLnNlcnZpY2XigJkgZmlsZSBkZXNjcmliZWQgYWJvdmUgbXVzdCBh bHNvIGJlIGluc3RhbGxlZC4pCgogICAgIFRoZSDigJhMaXN0ZW5TdHJlYW3igJkgcGF0aCB3aWxs IGJlIHRoZSBwYXRoIHRoYXQgRW1hY3MgbGlzdGVucyBmb3IKICAgICBjb25uZWN0aW9ucyBmcm9t IOKAmGVtYWNzY2xpZW504oCZOyB0aGlzIGlzIGEgZmlsZSBvZiB5b3VyIGNob2ljZS4KCiAgIE9u Y2UgYW4gRW1hY3Mgc2VydmVyIGlzIHN0YXJ0ZWQsIHlvdSBjYW4gdXNlIGEgc2hlbGwgY29tbWFu ZCBjYWxsZWQK4oCYZW1hY3NjbGllbnTigJkgdG8gY29ubmVjdCB0byB0aGUgRW1hY3MgcHJvY2Vz cyBhbmQgdGVsbCBpdCB0byB2aXNpdCBhCmZpbGUuICBZb3UgY2FuIHRoZW4gc2V0IHRoZSDigJhF RElUT1LigJkgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8K4oCYZW1hY3NjbGllbnTigJksIHNvIHRo YXQgZXh0ZXJuYWwgcHJvZ3JhbXMgd2lsbCB1c2UgdGhlIGV4aXN0aW5nIEVtYWNzCnByb2Nlc3Mg Zm9yIGVkaXRpbmcuKDEpCgogICBZb3UgY2FuIHJ1biBtdWx0aXBsZSBFbWFjcyBzZXJ2ZXJzIG9u IHRoZSBzYW1lIG1hY2hpbmUgYnkgZ2l2aW5nIGVhY2gKb25lIGEgdW5pcXVlICJzZXJ2ZXIgbmFt ZSIsIHVzaW5nIHRoZSB2YXJpYWJsZSDigJhzZXJ2ZXItbmFtZeKAmS4gIEZvcgpleGFtcGxlLCDi gJhNLXggc2V0LXZhcmlhYmxlIDxSRVQ+IHNlcnZlci1uYW1lIDxSRVQ+ICJmb28iIDxSRVQ+4oCZ IHNldHMgdGhlCnNlcnZlciBuYW1lIHRvIOKAmGZvb+KAmS4gIFRoZSDigJhlbWFjc2NsaWVudOKA mSBwcm9ncmFtIGNhbiBzcGVjaWZ5IGEgc2VydmVyIGJ5Cm5hbWUsIHVzaW5nIHRoZSDigJgtc+KA mSBvcHRpb24gKCpub3RlIGVtYWNzY2xpZW50IE9wdGlvbnM6OikuCgogICBJZiB5b3Ugd2FudCB0 byBydW4gbXVsdGlwbGUgRW1hY3MgZGFlbW9ucyAoKm5vdGUgSW5pdGlhbCBPcHRpb25zOjopLAp5 b3UgY2FuIGdpdmUgZWFjaCBkYWVtb24gaXRzIG93biBzZXJ2ZXIgbmFtZSBsaWtlIHRoaXM6Cgog ICAgICAgZW1hY3MgLS1kYWVtb249Zm9vCgogICBJZiB5b3UgaGF2ZSBkZWZpbmVkIGEgc2VydmVy IGJ5IGEgdW5pcXVlIHNlcnZlciBuYW1lLCBpdCBpcyBwb3NzaWJsZQp0byBjb25uZWN0IHRvIHRo ZSBzZXJ2ZXIgZnJvbSBhbm90aGVyIEVtYWNzIGluc3RhbmNlIGFuZCBldmFsdWF0ZSBMaXNwCmV4 cHJlc3Npb25zIG9uIHRoZSBzZXJ2ZXIsIHVzaW5nIHRoZSDigJhzZXJ2ZXItZXZhbC1hdOKAmSBm dW5jdGlvbi4gIEZvcgppbnN0YW5jZSwg4oCYKHNlcnZlci1ldmFsLWF0ICJmb28iICcoKyAxIDIp KeKAmSBldmFsdWF0ZXMgdGhlIGV4cHJlc3Npb24g4oCYKCsKMSAyKeKAmSBvbiB0aGUg4oCYZm9v 4oCZIHNlcnZlciwgYW5kIHJldHVybnMg4oCYM+KAmS4gIChJZiB0aGVyZSBpcyBubyBzZXJ2ZXIg d2l0aAp0aGF0IG5hbWUsIGFuIGVycm9yIGlzIHNpZ25hbGVkLikgIEN1cnJlbnRseSwgdGhpcyBm ZWF0dXJlIGlzIG1haW5seQp1c2VmdWwgZm9yIGRldmVsb3BlcnMuCgorIE1lbnU6CgogIC0gVENQ IEVtYWNzIHNlcnZlcjo6ICAgICBMaXN0ZW5pbmcgdG8gYSBUQ1Agc29ja2V0LgogIC0gSW52b2tp bmcgZW1hY3NjbGllbnQ6OiBDb25uZWN0aW5nIHRvIHRoZSBFbWFjcyBzZXJ2ZXIuCiAgLSBlbWFj c2NsaWVudCBPcHRpb25zOjogIEVtYWNzIGNsaWVudCBzdGFydHVwIG9wdGlvbnMuCgogICAtLS0t LS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgU29tZSBwcm9ncmFtcyB1c2UgYSBk aWZmZXJlbnQgZW52aXJvbm1lbnQgdmFyaWFibGU7IGZvciBleGFtcGxlLAp0byBtYWtlIFRlWCB1 c2Ug4oCYZW1hY3NjbGllbnTigJksIHNldCB0aGUg4oCYVEVYRURJVOKAmSBlbnZpcm9ubWVudCB2 YXJpYWJsZSB0bwrigJhlbWFjc2NsaWVudCArJWQgJXPigJkuCgoKKiogMzkuMSBUQ1AgRW1hY3Mg c2VydmVyCgpBbiBFbWFjcyBzZXJ2ZXIgdXN1YWxseSBsaXN0ZW5zIHRvIGNvbm5lY3Rpb25zIG9u IGEgbG9jYWwgVW5peCBkb21haW4Kc29ja2V0LiAgU29tZSBvcGVyYXRpbmcgc3lzdGVtcywgc3Vj aCBhcyBNUy1XaW5kb3dzLCBkbyBub3Qgc3VwcG9ydApsb2NhbCBzb2NrZXRzOyBpbiB0aGF0IGNh c2UsIHRoZSBzZXJ2ZXIgdXNlcyBUQ1Agc29ja2V0cyBpbnN0ZWFkLiAgSW4Kc29tZSBjYXNlcyBp dCBpcyB1c2VmdWwgdG8gaGF2ZSB0aGUgc2VydmVyIGxpc3RlbiBvbiBhIFRDUCBzb2NrZXQgZXZl bgppZiBsb2NhbCBzb2NrZXRzIGFyZSBzdXBwb3J0ZWQsIGUuZy4sIGlmIHlvdSBuZWVkIHRvIGNv bnRhY3QgdGhlIEVtYWNzCnNlcnZlciBmcm9tIGEgcmVtb3RlIG1hY2hpbmUuICBZb3UgY2FuIHNl dCDigJhzZXJ2ZXItdXNlLXRjcOKAmSB0byBub24t4oCYbmls4oCZCnRvIGhhdmUgRW1hY3MgbGlz dGVuIG9uIGEgVENQIHNvY2tldCBpbnN0ZWFkIG9mIGEgbG9jYWwgc29ja2V0LiAgVGhpcyBpcwp0 aGUgZGVmYXVsdCBpZiB5b3VyIE9TIGRvZXMgbm90IHN1cHBvcnQgbG9jYWwgc29ja2V0cy4KCiAg IElmIHRoZSBFbWFjcyBzZXJ2ZXIgaXMgc2V0IHRvIHVzZSBUQ1AsIGl0IHdpbGwgYnkgZGVmYXVs dCBsaXN0ZW4gb24gYQpyYW5kb20gcG9ydCBvbiB0aGUgbG9jYWxob3N0IGludGVyZmFjZS4gIFRo aXMgY2FuIGJlIGNoYW5nZWQgdG8gYW5vdGhlcgppbnRlcmZhY2UgYW5kL29yIGEgZml4ZWQgcG9y dCB1c2luZyB0aGUgdmFyaWFibGVzIOKAmHNlcnZlci1ob3N04oCZIGFuZArigJhzZXJ2ZXItcG9y dOKAmS4KCiAgIEEgVENQIHNvY2tldCBpcyBub3Qgc3ViamVjdCB0byBmaWxlIHN5c3RlbSBwZXJt aXNzaW9ucy4gIFRvIHJldGFpbgpzb21lIGNvbnRyb2wgb3ZlciB3aGljaCB1c2VycyBjYW4gdGFs ayB0byBhbiBFbWFjcyBzZXJ2ZXIgb3ZlciBUQ1AKc29ja2V0cywgdGhlIOKAmGVtYWNzY2xpZW50 4oCZIHByb2dyYW0gbXVzdCBzZW5kIGFuIGF1dGhvcml6YXRpb24ga2V5IHRvIHRoZQpzZXJ2ZXIu ICBUaGlzIGtleSBpcyBub3JtYWxseSByYW5kb21seSBnZW5lcmF0ZWQgYnkgdGhlIEVtYWNzIHNl cnZlci4KVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgbW9kZSBvZiBvcGVyYXRpb24uCgogICBJZiBu ZWVkZWQsIHlvdSBjYW4gc2V0IHRoZSBhdXRob3JpemF0aW9uIGtleSB0byBhIHN0YXRpYyB2YWx1 ZSBieQpzZXR0aW5nIHRoZSDigJhzZXJ2ZXItYXV0aC1rZXnigJkgdmFyaWFibGUuICBUaGUga2V5 IG11c3QgY29uc2lzdCBvZiA2NApBU0NJSSBwcmludGFibGUgY2hhcmFjdGVycyBleGNlcHQgZm9y IHNwYWNlICh0aGlzIG1lYW5zIGNoYXJhY3RlcnMgZnJvbQrigJgh4oCZIHRvIOKAmH7igJksIG9y IGZyb20gZGVjaW1hbCBjb2RlIDMzIHRvIDEyNikuICBZb3UgY2FuIHVzZSDigJhNLXgKc2VydmVy LWdlbmVyYXRlLWtleeKAmSB0byBnZXQgYSByYW5kb20ga2V5LgoKICAgV2hlbiB5b3Ugc3RhcnQg YSBUQ1AgRW1hY3Mgc2VydmVyLCBFbWFjcyBjcmVhdGVzIGEgInNlcnZlciBmaWxlIgpjb250YWlu aW5nIHRoZSBUQ1AgaW5mb3JtYXRpb24gdG8gYmUgdXNlZCBieSDigJhlbWFjc2NsaWVudOKAmSB0 byBjb25uZWN0IHRvCnRoZSBzZXJ2ZXIuICBUaGUgdmFyaWFibGUg4oCYc2VydmVyLWF1dGgtZGly 4oCZIHNwZWNpZmllcyB0aGUgZGlyZWN0b3J5CmNvbnRhaW5pbmcgdGhlIHNlcnZlciBmaWxlOyBi eSBkZWZhdWx0LCB0aGlzIGlzIOKAmH4vLmVtYWNzLmQvc2VydmVyL+KAmS4KSW4gdGhlIGFic2Vu Y2Ugb2YgYSBsb2NhbCBzb2NrZXQgd2l0aCBmaWxlIHBlcm1pc3Npb25zLCB0aGUgcGVybWlzc2lv bnMKb2YgdGhpcyBkaXJlY3RvcnkgZGV0ZXJtaW5lIHdoaWNoIHVzZXJzIGNhbiBoYXZlIHRoZWly IOKAmGVtYWNzY2xpZW504oCZCnByb2Nlc3NlcyB0YWxrIHRvIHRoZSBFbWFjcyBzZXJ2ZXIuCgog ICBUbyB0ZWxsIOKAmGVtYWNzY2xpZW504oCZIHRvIGNvbm5lY3QgdG8gdGhlIHNlcnZlciBvdmVy IFRDUCB3aXRoIGEKc3BlY2lmaWMgc2VydmVyIGZpbGUsIHVzZSB0aGUg4oCYLWbigJkgb3Ig4oCY LS1zZXJ2ZXItZmlsZeKAmSBvcHRpb24sIG9yIHNldCB0aGUK4oCYRU1BQ1NfU0VSVkVSX0ZJTEXi gJkgZW52aXJvbm1lbnQgdmFyaWFibGUgKCpub3RlIGVtYWNzY2xpZW50IE9wdGlvbnM6OikuCklm IOKAmHNlcnZlci1hdXRoLWRpcuKAmSBpcyBzZXQgdG8gYSBub24tc3RhbmRhcmQgdmFsdWUsIOKA mGVtYWNzY2xpZW504oCZIG5lZWRzCmFuIGFic29sdXRlIGZpbGUgbmFtZSB0byB0aGUgc2VydmVy IGZpbGUsIGFzIHRoZSBkZWZhdWx0CuKAmHNlcnZlci1hdXRoLWRpcuKAmSBpcyBoYXJkLWNvZGVk IGluIOKAmGVtYWNzY2xpZW504oCZIHRvIGJlIHVzZWQgYXMgdGhlCmRpcmVjdG9yeSBmb3IgcmVz b2x2aW5nIHJlbGF0aXZlIGZpbGVuYW1lcy4KCgoqKiAzOS4yIEludm9raW5nIOKAmGVtYWNzY2xp ZW504oCZCgpUaGUgc2ltcGxlc3Qgd2F5IHRvIHVzZSB0aGUg4oCYZW1hY3NjbGllbnTigJkgcHJv Z3JhbSBpcyB0byBydW4gdGhlIHNoZWxsCmNvbW1hbmQg4oCYZW1hY3NjbGllbnQgRklMReKAmSwg d2hlcmUgRklMRSBpcyBhIGZpbGUgbmFtZS4gIFRoaXMgY29ubmVjdHMgdG8KYW4gRW1hY3Mgc2Vy dmVyLCBhbmQgdGVsbHMgdGhhdCBFbWFjcyBwcm9jZXNzIHRvIHZpc2l0IEZJTEUgaW4gb25lIG9m Cml0cyBleGlzdGluZyBmcmFtZXPigJRlaXRoZXIgYSBncmFwaGljYWwgZnJhbWUsIG9yIG9uZSBp biBhIHRleHQgdGVybWluYWwKKCpub3RlIEZyYW1lczo6KS4gIFlvdSBjYW4gdGhlbiBzZWxlY3Qg dGhhdCBmcmFtZSB0byBiZWdpbiBlZGl0aW5nLgoKICAgSWYgdGhlcmUgaXMgbm8gRW1hY3Mgc2Vy dmVyLCB0aGUg4oCYZW1hY3NjbGllbnTigJkgcHJvZ3JhbSBoYWx0cyB3aXRoIGFuCmVycm9yIG1l c3NhZ2UgKHlvdSBjYW4gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nIGJ5IHVzaW5nIHRoZQri gJgtLWFsdGVybmF0ZS1lZGl0b3I9IiLigJkgb3B0aW9uIHRvIOKAmGVtYWNzY2xpZW504oCZLCAq bm90ZSBlbWFjc2NsaWVudApPcHRpb25zOjopLiAgSWYgdGhlIEVtYWNzIHByb2Nlc3MgaGFzIG5v IGV4aXN0aW5nIGZyYW1l4oCUd2hpY2ggY2FuIGhhcHBlbgppZiBpdCB3YXMgc3RhcnRlZCBhcyBh IGRhZW1vbiAoKm5vdGUgRW1hY3MgU2VydmVyOjop4oCUdGhlbiBFbWFjcyBvcGVucyBhCmZyYW1l IG9uIHRoZSB0ZXJtaW5hbCBpbiB3aGljaCB5b3UgY2FsbGVkIOKAmGVtYWNzY2xpZW504oCZLgoK ICAgWW91IGNhbiBhbHNvIGZvcmNlIOKAmGVtYWNzY2xpZW504oCZIHRvIG9wZW4gYSBuZXcgZnJh bWUgb24gYSBncmFwaGljYWwKZGlzcGxheSB1c2luZyB0aGUg4oCYLWPigJkgb3B0aW9uLCBvciBv biBhIHRleHQgdGVybWluYWwgdXNpbmcgdGhlIOKAmC104oCZCm9wdGlvbi4gICpOb3RlIGVtYWNz Y2xpZW50IE9wdGlvbnM6Oi4KCiAgIElmIHlvdSBhcmUgcnVubmluZyBvbiBhIHNpbmdsZSB0ZXh0 IHRlcm1pbmFsLCB5b3UgY2FuIHN3aXRjaCBiZXR3ZWVuCuKAmGVtYWNzY2xpZW504oCZ4oCZcyBz aGVsbCBhbmQgdGhlIEVtYWNzIHNlcnZlciB1c2luZyBvbmUgb2YgdHdvIG1ldGhvZHM6IChpKQpy dW4gdGhlIEVtYWNzIHNlcnZlciBhbmQg4oCYZW1hY3NjbGllbnTigJkgb24gZGlmZmVyZW50IHZp cnR1YWwgdGVybWluYWxzLAphbmQgc3dpdGNoIHRvIHRoZSBFbWFjcyBzZXJ2ZXLigJlzIHZpcnR1 YWwgdGVybWluYWwgYWZ0ZXIgY2FsbGluZwrigJhlbWFjc2NsaWVudOKAmTsgb3IgKGlpKSBjYWxs IOKAmGVtYWNzY2xpZW504oCZIGZyb20gd2l0aGluIHRoZSBFbWFjcyBzZXJ2ZXIKaXRzZWxmLCB1 c2luZyBTaGVsbCBtb2RlICgqbm90ZSBJbnRlcmFjdGl2ZSBTaGVsbDo6KSBvciBUZXJtIG1vZGUg KCpub3RlClRlcm0gTW9kZTo6KTsg4oCYZW1hY3NjbGllbnTigJkgYmxvY2tzIG9ubHkgdGhlIHN1 YnNoZWxsIHVuZGVyIEVtYWNzLCBhbmQKeW91IGNhbiBzdGlsbCB1c2UgRW1hY3MgdG8gZWRpdCB0 aGUgZmlsZS4KCiAgIFdoZW4geW91IGZpbmlzaCBlZGl0aW5nIEZJTEUgaW4gdGhlIEVtYWNzIHNl cnZlciwgdHlwZSDigJhDLXggI+KAmQoo4oCYc2VydmVyLWVkaXTigJkpIGluIGl0cyBidWZmZXIu ICBUaGlzIHNhdmVzIHRoZSBmaWxlIGFuZCBzZW5kcyBhIG1lc3NhZ2UKYmFjayB0byB0aGUg4oCY ZW1hY3NjbGllbnTigJkgcHJvZ3JhbSwgdGVsbGluZyBpdCB0byBleGl0LiAgUHJvZ3JhbXMgdGhh dAp1c2Ug4oCYRURJVE9S4oCZIHVzdWFsbHkgd2FpdCBmb3IgdGhlIGVkaXRvcuKAlGluIHRoaXMg Y2FzZSDigJhlbWFjc2NsaWVudOKAmeKAlHRvCmV4aXQgYmVmb3JlIGRvaW5nIHNvbWV0aGluZyBl bHNlLgoKICAgWW91IGNhbiBhbHNvIGNhbGwg4oCYZW1hY3NjbGllbnTigJkgd2l0aCBtdWx0aXBs ZSBmaWxlIG5hbWUgYXJndW1lbnRzOgrigJhlbWFjc2NsaWVudCBGSUxFMSBGSUxFMiAuLi7igJkg dGVsbHMgdGhlIEVtYWNzIHNlcnZlciB0byB2aXNpdCBGSUxFMSwKRklMRTIsIGFuZCBzbyBmb3J0 aC4gIEVtYWNzIHNlbGVjdHMgdGhlIGJ1ZmZlciB2aXNpdGluZyBGSUxFMSwgYW5kCmJ1cmllcyB0 aGUgb3RoZXIgYnVmZmVycyBhdCB0aGUgYm90dG9tIG9mIHRoZSBidWZmZXIgbGlzdCAoKm5vdGUK QnVmZmVyczo6KS4gIFRoZSDigJhlbWFjc2NsaWVudOKAmSBwcm9ncmFtIGV4aXRzIG9uY2UgYWxs IHRoZSBzcGVjaWZpZWQKZmlsZXMgYXJlIGZpbmlzaGVkIChpLmUuLCBvbmNlIHlvdSBoYXZlIHR5 cGVkIOKAmEMteCAj4oCZIGluIGVhY2ggc2VydmVyCmJ1ZmZlcikuCgogICBGaW5pc2hpbmcgd2l0 aCBhIHNlcnZlciBidWZmZXIgYWxzbyBraWxscyB0aGUgYnVmZmVyLCB1bmxlc3MgaXQKYWxyZWFk eSBleGlzdGVkIGluIHRoZSBFbWFjcyBzZXNzaW9uIGJlZm9yZSB0aGUgc2VydmVyIHdhcyBhc2tl ZCB0bwpjcmVhdGUgaXQuICBIb3dldmVyLCBpZiB5b3Ugc2V0IOKAmHNlcnZlci1raWxsLW5ldy1i dWZmZXJz4oCZIHRvIOKAmG5pbOKAmSwgdGhlbgphIGRpZmZlcmVudCBjcml0ZXJpb24gaXMgdXNl ZDogZmluaXNoaW5nIHdpdGggYSBzZXJ2ZXIgYnVmZmVyIGtpbGxzIGl0CmlmIHRoZSBmaWxlIG5h bWUgbWF0Y2hlcyB0aGUgcmVndWxhciBleHByZXNzaW9uCuKAmHNlcnZlci10ZW1wLWZpbGUtcmVn ZXhw4oCZLiAgVGhpcyBpcyBzZXQgdXAgdG8gZGlzdGluZ3Vpc2ggY2VydGFpbgp0ZW1wb3Jhcnkg ZmlsZXMuCgogICBFYWNoIOKAmEMteCAj4oCZIGNoZWNrcyBmb3Igb3RoZXIgcGVuZGluZyBleHRl cm5hbCByZXF1ZXN0cyB0byBlZGl0CnZhcmlvdXMgZmlsZXMsIGFuZCBzZWxlY3RzIHRoZSBuZXh0 IHN1Y2ggZmlsZS4gIFlvdSBjYW4gc3dpdGNoIHRvIGEKc2VydmVyIGJ1ZmZlciBtYW51YWxseSBp ZiB5b3Ugd2lzaDsgeW91IGRvbuKAmXQgaGF2ZSB0byBhcnJpdmUgYXQgaXQgd2l0aArigJhDLXgg I+KAmS4gIEJ1dCDigJhDLXggI+KAmSBpcyB0aGUgd2F5IHRvIHRlbGwg4oCYZW1hY3NjbGllbnTi gJkgdGhhdCB5b3UgYXJlCmZpbmlzaGVkLgoKICAgSWYgeW91IHNldCB0aGUgdmFsdWUgb2YgdGhl IHZhcmlhYmxlIOKAmHNlcnZlci13aW5kb3figJkgdG8gYSB3aW5kb3cgb3IgYQpmcmFtZSwg4oCY Qy14ICPigJkgYWx3YXlzIGRpc3BsYXlzIHRoZSBuZXh0IHNlcnZlciBidWZmZXIgaW4gdGhhdCB3 aW5kb3cgb3IKaW4gdGhhdCBmcmFtZS4KCgozOS4zIOKAmGVtYWNzY2xpZW504oCZIE9wdGlvbnMK CllvdSBjYW4gcGFzcyBzb21lIG9wdGlvbmFsIGFyZ3VtZW50cyB0byB0aGUg4oCYZW1hY3NjbGll bnTigJkgcHJvZ3JhbSwgc3VjaAphczoKCiAgICAgZW1hY3NjbGllbnQgLWMgKzEyIEZJTEUxICs0 OjMgRklMRTIKClRoZSDigJgrTElOReKAmSBvciDigJgrTElORTpDT0xVTU7igJkgYXJndW1lbnRz IHNwZWNpZnkgbGluZSBudW1iZXJzLCBvciBsaW5lCmFuZCBjb2x1bW4gbnVtYmVycywgZm9yIHRo ZSBuZXh0IGZpbGUgYXJndW1lbnQuICBUaGVzZSBiZWhhdmUgbGlrZSB0aGUKY29tbWFuZCBsaW5l IGFyZ3VtZW50cyBmb3IgRW1hY3MgaXRzZWxmLiAgKk5vdGUgQWN0aW9uIEFyZ3VtZW50czo6LgoK ICAgVGhlIG90aGVyIG9wdGlvbmFsIGFyZ3VtZW50cyByZWNvZ25pemVkIGJ5IOKAmGVtYWNzY2xp ZW504oCZIGFyZSBsaXN0ZWQKYmVsb3c6CgrigJgtYSBDT01NQU5E4oCZCuKAmC0tYWx0ZXJuYXRl LWVkaXRvcj1DT01NQU5E4oCZCiAgICAgU3BlY2lmeSBhIHNoZWxsIGNvbW1hbmQgdG8gcnVuIGlm IOKAmGVtYWNzY2xpZW504oCZIGZhaWxzIHRvIGNvbnRhY3QKICAgICBFbWFjcy4gIFRoaXMgaXMg dXNlZnVsIHdoZW4gcnVubmluZyDigJhlbWFjc2NsaWVudOKAmSBpbiBhIHNjcmlwdC4gIFRoZQog ICAgIGNvbW1hbmQgbWF5IGluY2x1ZGUgYXJndW1lbnRzLCB3aGljaCBtYXkgYmUgcXVvdGVkICJs aWtlIHRoaXMiLgogICAgIEN1cnJlbnRseSwgZXNjYXBpbmcgb2YgcXVvdGVzIGlzIG5vdCBzdXBw b3J0ZWQuCgogICAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIENPTU1BTkQgaXMgdGhlIGVt cHR5IHN0cmluZywgdGhlbgogICAgIOKAmGVtYWNzY2xpZW504oCZIHN0YXJ0cyBFbWFjcyBpbiBk YWVtb24gbW9kZSAoYXMg4oCYZW1hY3MgLS1kYWVtb27igJkpIGFuZAogICAgIHRoZW4gdHJpZXMg Y29ubmVjdGluZyBhZ2Fpbi4KCiAgICAgVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIOKAmEFMVEVS TkFURV9FRElUT1LigJkgaGFzIHRoZSBzYW1lIGVmZmVjdCBhcwogICAgIHRoZSDigJgtYeKAmSBv cHRpb24uICBJZiBib3RoIGFyZSBwcmVzZW50LCB0aGUgbGF0dGVyIHRha2VzIHByZWNlZGVuY2Uu CgrigJgtY+KAmQrigJgtLWNyZWF0ZS1mcmFtZeKAmQogICAgIENyZWF0ZSBhIG5ldyBncmFwaGlj YWwgImNsaWVudCBmcmFtZSIsIGluc3RlYWQgb2YgdXNpbmcgYW4gZXhpc3RpbmcKICAgICBFbWFj cyBmcmFtZS4gIFNlZSBiZWxvdyBmb3IgdGhlIHNwZWNpYWwgYmVoYXZpb3Igb2Yg4oCYQy14IEMt Y+KAmSBpbiBhCiAgICAgY2xpZW50IGZyYW1lLiAgSWYgRW1hY3MgY2Fubm90IGNyZWF0ZSBhIG5l dyBncmFwaGljYWwgZnJhbWUgKGUuZy4sCiAgICAgaWYgaXQgY2Fubm90IGNvbm5lY3QgdG8gdGhl IFggc2VydmVyKSwgaXQgdHJpZXMgdG8gY3JlYXRlIGEgdGV4dAogICAgIHRlcm1pbmFsIGNsaWVu dCBmcmFtZSwgYXMgdGhvdWdoIHlvdSBoYWQgc3VwcGxpZWQgdGhlIOKAmC104oCZIG9wdGlvbgog ICAgIGluc3RlYWQuCgogICAgIE9uIE1TLVdpbmRvd3MsIGEgc2luZ2xlIEVtYWNzIHNlc3Npb24g Y2Fubm90IGRpc3BsYXkgZnJhbWVzIG9uIGJvdGgKICAgICBncmFwaGljYWwgYW5kIHRleHQgdGVy bWluYWxzLCBub3Igb24gbXVsdGlwbGUgdGV4dCB0ZXJtaW5hbHMuCiAgICAgVGh1cywgaWYgdGhl IEVtYWNzIHNlcnZlciBpcyBydW5uaW5nIG9uIGEgdGV4dCB0ZXJtaW5hbCwgdGhlIOKAmC1j4oCZ CiAgICAgb3B0aW9uLCBsaWtlIHRoZSDigJgtdOKAmSBvcHRpb24sIGNyZWF0ZXMgYSBuZXcgZnJh bWUgaW4gdGhlIHNlcnZlcuKAmXMKICAgICBjdXJyZW50IHRleHQgdGVybWluYWwuICAqTm90ZSBX aW5kb3dzIFN0YXJ0dXA6Oi4KCiAgICAgSWYgeW91IG9taXQgYSBmaWxlbmFtZSBhcmd1bWVudCB3 aGlsZSBzdXBwbHlpbmcgdGhlIOKAmC1j4oCZIG9wdGlvbiwKICAgICB0aGUgbmV3IGZyYW1lIGRp c3BsYXlzIHRoZSDigJgqc2NyYXRjaCrigJkgYnVmZmVyIGJ5IGRlZmF1bHQuICBZb3UgY2FuCiAg ICAgY3VzdG9taXplIHRoaXMgYmVoYXZpb3Igd2l0aCB0aGUgdmFyaWFibGUg4oCYaW5pdGlhbC1i dWZmZXItY2hvaWNl4oCZCiAgICAgKCpub3RlIEVudGVyaW5nIEVtYWNzOjopLgoK4oCYLUYgQUxJ U1TigJkK4oCYLS1mcmFtZS1wYXJhbWV0ZXJzPUFMSVNU4oCZCiAgICAgU2V0IHRoZSBwYXJhbWV0 ZXJzIGZvciBhIG5ld2x5LWNyZWF0ZWQgZ3JhcGhpY2FsIGZyYW1lICgqbm90ZSBGcmFtZQogICAg IFBhcmFtZXRlcnM6OikuCgrigJgtZCBESVNQTEFZ4oCZCuKAmC0tZGlzcGxheT1ESVNQTEFZ4oCZ CiAgICAgVGVsbCBFbWFjcyB0byBvcGVuIHRoZSBnaXZlbiBmaWxlcyBvbiB0aGUgWCBkaXNwbGF5 IERJU1BMQVkKICAgICAoYXNzdW1pbmcgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBYIGRpc3BsYXkg YXZhaWxhYmxlKS4KCuKAmC1l4oCZCuKAmC0tZXZhbOKAmQogICAgIFRlbGwgRW1hY3MgdG8gZXZh bHVhdGUgc29tZSBFbWFjcyBMaXNwIGNvZGUsIGluc3RlYWQgb2YgdmlzaXRpbmcKICAgICBzb21l IGZpbGVzLiAgV2hlbiB0aGlzIG9wdGlvbiBpcyBnaXZlbiwgdGhlIGFyZ3VtZW50cyB0bwogICAg IOKAmGVtYWNzY2xpZW504oCZIGFyZSBpbnRlcnByZXRlZCBhcyBhIGxpc3Qgb2YgZXhwcmVzc2lv bnMgdG8gZXZhbHVhdGUsCiAgICAgX25vdF8gYXMgYSBsaXN0IG9mIGZpbGVzIHRvIHZpc2l0LgoK 4oCYLWYgU0VSVkVSLUZJTEXigJkK4oCYLS1zZXJ2ZXItZmlsZT1TRVJWRVItRklMReKAmQogICAg IFNwZWNpZnkgYSBzZXJ2ZXIgZmlsZSAoKm5vdGUgVENQIEVtYWNzIHNlcnZlcjo6KSBmb3IgY29u bmVjdGluZyB0bwogICAgIGFuIEVtYWNzIHNlcnZlciB2aWEgVENQLiBBbHRlcm5hdGl2ZWx5LCB5 b3UgY2FuIHNldCB0aGUKICAgICDigJhFTUFDU19TRVJWRVJfRklMReKAmSBlbnZpcm9ubWVudCB2 YXJpYWJsZSB0byBwb2ludCB0byB0aGUgc2VydmVyCiAgICAgZmlsZS4gIChUaGUgY29tbWFuZC1s aW5lIG9wdGlvbiBvdmVycmlkZXMgdGhlIGVudmlyb25tZW50CiAgICAgdmFyaWFibGUuKQoKICAg ICBBbiBFbWFjcyBzZXJ2ZXIgdXN1YWxseSB1c2VzIGEgbG9jYWwgc29ja2V0IHRvIGxpc3RlbiBm b3IKICAgICBjb25uZWN0aW9ucywgYnV0IGFsc28gc3VwcG9ydHMgY29ubmVjdGlvbnMgb3ZlciBU Q1AuIFRvIGNvbm5lY3QgdG8KICAgICBhIFRDUCBFbWFjcyBzZXJ2ZXIsIOKAmGVtYWNzY2xpZW50 4oCZIG5lZWRzIHRvIHJlYWQgYSAic2VydmVyIGZpbGUiCiAgICAgY29udGFpbmluZyB0aGUgY29u bmVjdGlvbiBkZXRhaWxzIG9mIHRoZSBFbWFjcyBzZXJ2ZXIuICBUaGUgbmFtZSBvZgogICAgIHRo aXMgZmlsZSBpcyBzcGVjaWZpZWQgd2l0aCB0aGlzIG9wdGlvbiwgZWl0aGVyIGFzIGEgZmlsZSBu YW1lCiAgICAgcmVsYXRpdmUgdG8g4oCYfi8uZW1hY3MuZC9zZXJ2ZXLigJkgb3IgYXMgYW4gYWJz b2x1dGUgZmlsZSBuYW1lLiAgKk5vdGUKICAgICBUQ1AgRW1hY3Mgc2VydmVyOjouCgrigJgtbuKA mQrigJgtLW5vLXdhaXTigJkKICAgICBMZXQg4oCYZW1hY3NjbGllbnTigJkgZXhpdCBpbW1lZGlh dGVseSwgaW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsIGFsbAogICAgIHNlcnZlciBidWZmZXJzIGFy ZSBmaW5pc2hlZC4gIFlvdSBjYW4gdGFrZSBhcyBsb25nIGFzIHlvdSBsaWtlIHRvCiAgICAgZWRp dCB0aGUgc2VydmVyIGJ1ZmZlcnMgd2l0aGluIEVtYWNzLCBhbmQgdGhleSBhcmUgX25vdF8ga2ls bGVkCiAgICAgd2hlbiB5b3UgdHlwZSDigJhDLXggI+KAmSBpbiB0aGVtLgoK4oCYLS1wYXJlbnQt aWQgSUTigJkKICAgICBPcGVuIGFuIOKAmGVtYWNzY2xpZW504oCZIGZyYW1lIGFzIGEgY2xpZW50 IGZyYW1lIGluIHRoZSBwYXJlbnQgWAogICAgIHdpbmRvdyB3aXRoIGlkIElELCB2aWEgdGhlIFhF bWJlZCBwcm90b2NvbC4gIEN1cnJlbnRseSwgdGhpcyBvcHRpb24KICAgICBpcyBtYWlubHkgdXNl ZnVsIGZvciBkZXZlbG9wZXJzLgoK4oCYLXHigJkK4oCYLS1xdWlldOKAmQogICAgIERvIG5vdCBs ZXQg4oCYZW1hY3NjbGllbnTigJkgZGlzcGxheSBtZXNzYWdlcyBhYm91dCB3YWl0aW5nIGZvciBF bWFjcwogICAgIG9yIGNvbm5lY3RpbmcgdG8gcmVtb3RlIHNlcnZlciBzb2NrZXRzLgoK4oCYLXXi gJkK4oCYLS1zdXBwcmVzcy1vdXRwdXTigJkKICAgICBEbyBub3QgbGV0IOKAmGVtYWNzY2xpZW50 4oCZIGRpc3BsYXkgcmVzdWx0cyByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXIuCiAgICAgTW9zdGx5 IHVzZWZ1bCBpbiBjb21iaW5hdGlvbiB3aXRoIOKAmC1l4oCZIHdoZW4gdGhlIGV2YWx1YXRpb24K ICAgICBwZXJmb3JtZWQgaXMgZm9yIHNpZGUtZWZmZWN0IHJhdGhlciB0aGFuIHJlc3VsdC4KCuKA mC1zIFNFUlZFUi1OQU1F4oCZCuKAmC0tc29ja2V0LW5hbWU9U0VSVkVSLU5BTUXigJkKICAgICBD b25uZWN0IHRvIHRoZSBFbWFjcyBzZXJ2ZXIgbmFtZWQgU0VSVkVSLU5BTUUuICBUaGUgc2VydmVy IG5hbWUgaXMKICAgICBnaXZlbiBieSB0aGUgdmFyaWFibGUg4oCYc2VydmVyLW5hbWXigJkgb24g dGhlIEVtYWNzIHNlcnZlci4gIElmIHRoaXMKICAgICBvcHRpb24gaXMgb21pdHRlZCwg4oCYZW1h Y3NjbGllbnTigJkgY29ubmVjdHMgdG8gdGhlIGZpcnN0IHNlcnZlciBpdAogICAgIGZpbmRzLiAg KFRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gTVMtV2luZG93cy4pCgrigJgtdOKAmQri gJgtLXR0eeKAmQrigJgtbnfigJkKICAgICBDcmVhdGUgYSBuZXcgY2xpZW50IGZyYW1lIG9uIHRo ZSBjdXJyZW50IHRleHQgdGVybWluYWwsIGluc3RlYWQgb2YKICAgICB1c2luZyBhbiBleGlzdGlu ZyBFbWFjcyBmcmFtZS4gIFRoaXMgYmVoYXZlcyBqdXN0IGxpa2UgdGhlIOKAmC1j4oCZCiAgICAg b3B0aW9uLCBkZXNjcmliZWQgYWJvdmUsIGV4Y2VwdCB0aGF0IGl0IGNyZWF0ZXMgYSB0ZXh0IHRl cm1pbmFsCiAgICAgZnJhbWUgKCpub3RlIE5vbi1XaW5kb3cgVGVybWluYWxzOjopLgoKICAgICBP biBNUy1XaW5kb3dzLCDigJgtdOKAmSBiZWhhdmVzIGp1c3QgbGlrZSDigJgtY+KAmSBpZiB0aGUg RW1hY3Mgc2VydmVyIGlzCiAgICAgdXNpbmcgdGhlIGdyYXBoaWNhbCBkaXNwbGF5LCBidXQgaWYg dGhlIEVtYWNzIHNlcnZlciBpcyBydW5uaW5nIG9uCiAgICAgYSB0ZXh0IHRlcm1pbmFsLCBpdCBj cmVhdGVzIGEgbmV3IGZyYW1lIGluIHRoZSBjdXJyZW50IHRleHQKICAgICB0ZXJtaW5hbC4KCuKA mC1UIFRSQU1QLVBSRUZJWOKAmQrigJgtLXRyYW1wLXByZWZpeD1UUkFNUC1QUkVGSVjigJkKICAg ICBTZXQgdGhlIHByZWZpeCB0byBhZGQgdG8gZmlsZW5hbWVzIGZvciBFbWFjcyB0byBsb2NhdGUg ZmlsZXMgb24KICAgICByZW1vdGUgbWFjaGluZXMgKCpub3RlIFJlbW90ZSBGaWxlczo6KSB1c2lu ZyBUUkFNUCAoKm5vdGUgVGhlIFRyYW1wCiAgICAgTWFudWFsOiAodHJhbXApVG9wLikuICBUaGlz IGlzIG1vc3RseSB1c2VmdWwgaW4gY29tYmluYXRpb24gd2l0aAogICAgIHVzaW5nIHRoZSBFbWFj cyBzZXJ2ZXIgb3ZlciBUQ1AgKCpub3RlIFRDUCBFbWFjcyBzZXJ2ZXI6OikuICBCeQogICAgIHNz aC1mb3J3YXJkaW5nIHRoZSBsaXN0ZW5pbmcgcG9ydCBhbmQgbWFraW5nIHRoZSBTRVJWRVItRklM RQogICAgIGF2YWlsYWJsZSBvbiBhIHJlbW90ZSBtYWNoaW5lLCBwcm9ncmFtcyBvbiB0aGUgcmVt b3RlIG1hY2hpbmUgY2FuCiAgICAgdXNlIOKAmGVtYWNzY2xpZW504oCZIGFzIHRoZSB2YWx1ZSBm b3IgdGhlIOKAmEVESVRPUuKAmSBhbmQgc2ltaWxhcgogICAgIGVudmlyb25tZW50IHZhcmlhYmxl cywgYnV0IGluc3RlYWQgb2YgdGFsa2luZyB0byBhbiBFbWFjcyBzZXJ2ZXIgb24KICAgICB0aGUg cmVtb3RlIG1hY2hpbmUsIHRoZSBmaWxlcyB3aWxsIGJlIHZpc2l0ZWQgaW4gdGhlIGxvY2FsIEVt YWNzCiAgICAgc2Vzc2lvbiB1c2luZyBUUkFNUC4KCiAgICAgU2V0dGluZyB0aGUgZW52aXJvbm1l bnQgdmFyaWFibGUg4oCYRU1BQ1NDTElFTlRfVFJBTVDigJkgaGFzIHRoZSBzYW1lCiAgICAgZWZm ZWN0IGFzIHVzaW5nIHRoZSDigJgtVOKAmSBvcHRpb24uICBJZiBib3RoIGFyZSBzcGVjaWZpZWQs IHRoZQogICAgIGNvbW1hbmQtbGluZSBvcHRpb24gdGFrZXMgcHJlY2VkZW5jZS4KCiAgICAgRm9y IGV4YW1wbGUsIGFzc3VtZSB0d28gaG9zdHMsIOKAmGxvY2Fs4oCZIGFuZCDigJhyZW1vdGXigJks IGFuZCB0aGF0IHRoZQogICAgIGxvY2FsIEVtYWNzIGxpc3RlbnMgb24gdGNwIHBvcnQgMTIzNDUu ICBBc3N1bWUgZnVydGhlciB0aGF0IOKAmC9ob21l4oCZCiAgICAgaXMgb24gYSBzaGFyZWQgZmls ZSBzeXN0ZW0sIHNvIHRoYXQgdGhlIHNlcnZlciBmaWxlCiAgICAg4oCYfi8uZW1hY3MuZC9zZXJ2 ZXIvc2VydmVy4oCZIGlzIHJlYWRhYmxlIG9uIGJvdGggaG9zdHMuCgogICAgICAgICAgbG9jYWwk IHNzaCAtUjEyMzQ1OmxvY2FsaG9zdDoxMjM0NSByZW1vdGUKICAgICAgICAgIHJlbW90ZSQgZXhw b3J0IEVESVRPUj0iZW1hY3NjbGllbnQgXAogICAgICAgICAgICAgICAgICAtLXNlcnZlci1maWxl PXNlcnZlciBcCiAgICAgICAgICAgICAgICAgIC0tdHJhbXA9L3NzaDpyZW1vdGU6IgogICAgICAg ICAgcmVtb3RlJCAkRURJVE9SIC90bXAvZm9vLnR4dCAjU2hvdWxkIG9wZW4gaW4gbG9jYWwgZW1h Y3MuCgogICBUaGUgbmV3IGdyYXBoaWNhbCBvciB0ZXh0IHRlcm1pbmFsIGZyYW1lcyBjcmVhdGVk IGJ5IHRoZSDigJgtY+KAmSBvciDigJgtdOKAmQpvcHRpb25zIGFyZSBjb25zaWRlcmVkICJjbGll bnQgZnJhbWVzIi4gIEFueSBuZXcgZnJhbWUgdGhhdCB5b3UgY3JlYXRlCmZyb20gYSBjbGllbnQg ZnJhbWUgaXMgYWxzbyBjb25zaWRlcmVkIGEgY2xpZW50IGZyYW1lLiAgSWYgeW91IHR5cGUg4oCY Qy14CkMtY+KAmSAo4oCYc2F2ZS1idWZmZXJzLWtpbGwtdGVybWluYWzigJkpIGluIGEgY2xpZW50 IGZyYW1lLCB0aGF0IGNvbW1hbmQgZG9lcwpub3Qga2lsbCB0aGUgRW1hY3Mgc2Vzc2lvbiBhcyBp dCBub3JtYWxseSBkb2VzICgqbm90ZSBFeGl0aW5nOjopLgpJbnN0ZWFkLCBFbWFjcyBkZWxldGVz IHRoZSBjbGllbnQgZnJhbWU7IGZ1cnRoZXJtb3JlLCBpZiB0aGUgY2xpZW50CmZyYW1lIGhhcyBh biDigJhlbWFjc2NsaWVudOKAmSB3YWl0aW5nIHRvIHJlZ2FpbiBjb250cm9sIChpLmUuLCBpZiB5 b3UgZGlkCm5vdCBzdXBwbHkgdGhlIOKAmC1u4oCZIG9wdGlvbiksIEVtYWNzIGRlbGV0ZXMgYWxs IG90aGVyIGZyYW1lcyBvZiB0aGUgc2FtZQpjbGllbnQsIGFuZCBtYXJrcyB0aGUgY2xpZW504oCZ cyBzZXJ2ZXIgYnVmZmVycyBhcyBmaW5pc2hlZCwgYXMgdGhvdWdoIHlvdQpoYWQgdHlwZWQg4oCY Qy14ICPigJkgaW4gYWxsIG9mIHRoZW0uICBJZiBpdCBzbyBoYXBwZW5zIHRoYXQgdGhlcmUgYXJl IG5vCnJlbWFpbmluZyBmcmFtZXMgYWZ0ZXIgdGhlIGNsaWVudCBmcmFtZShzKSBhcmUgZGVsZXRl ZCwgdGhlIEVtYWNzCnNlc3Npb24gZXhpdHMuCgogICBBcyBhbiBleGNlcHRpb24sIHdoZW4gRW1h Y3MgaXMgc3RhcnRlZCBhcyBhIGRhZW1vbiwgYWxsIGZyYW1lcyBhcmUKY29uc2lkZXJlZCBjbGll bnQgZnJhbWVzLCBhbmQg4oCYQy14IEMtY+KAmSBuZXZlciBraWxscyBFbWFjcy4gIFRvIGtpbGwg YQpkYWVtb24gc2Vzc2lvbiwgdHlwZSDigJhNLXgga2lsbC1lbWFjc+KAmS4KCiAgIE5vdGUgdGhh dCB0aGUg4oCYLXTigJkgYW5kIOKAmC1u4oCZIG9wdGlvbnMgYXJlIGNvbnRyYWRpY3Rvcnk6IOKA mC104oCZIHNheXMgdG8KdGFrZSBjb250cm9sIG9mIHRoZSBjdXJyZW50IHRleHQgdGVybWluYWwg dG8gY3JlYXRlIGEgbmV3IGNsaWVudCBmcmFtZSwKd2hpbGUg4oCYLW7igJkgc2F5cyBub3QgdG8g dGFrZSBjb250cm9sIG9mIHRoZSB0ZXh0IHRlcm1pbmFsLiAgSWYgeW91IHN1cHBseQpib3RoIG9w dGlvbnMsIEVtYWNzIHZpc2l0cyB0aGUgc3BlY2lmaWVkIGZpbGVzKHMpIGluIGFuIGV4aXN0aW5n IGZyYW1lCnJhdGhlciB0aGFuIGEgbmV3IGNsaWVudCBmcmFtZSwgbmVnYXRpbmcgdGhlIGVmZmVj dCBvZiDigJgtdOKAmS4KCgoqIDQwIFByaW50aW5nIEhhcmQgQ29waWVzCgpFbWFjcyBwcm92aWRl cyBjb21tYW5kcyBmb3IgcHJpbnRpbmcgaGFyZGNvcGllcyBvZiBlaXRoZXIgYW4gZW50aXJlCmJ1 ZmZlciBvciBwYXJ0IG9mIG9uZS4gIFlvdSBjYW4gaW52b2tlIHRoZSBwcmludGluZyBjb21tYW5k cyBkaXJlY3RseSwKYXMgZGV0YWlsZWQgYmVsb3csIG9yIHVzaW5nIHRoZSDigJhGaWxl4oCZIG1l bnUgb24gdGhlIG1lbnUgYmFyLgoKICAgQXNpZGUgZnJvbSB0aGUgY29tbWFuZHMgZGVzY3JpYmVk IGluIHRoaXMgc2VjdGlvbiwgeW91IGNhbiBhbHNvIHByaW50CmhhcmRjb3BpZXMgZnJvbSBEaXJl ZCAoKm5vdGUgT3BlcmF0aW5nIG9uIEZpbGVzOjopIGFuZCB0aGUgZGlhcnkgKCpub3RlCkRpc3Bs YXlpbmcgdGhlIERpYXJ5OjopLiAgWW91IGNhbiBhbHNvIOKAnHByaW504oCdIGFuIEVtYWNzIGJ1 ZmZlciB0byBIVE1MCndpdGggdGhlIGNvbW1hbmQg4oCYTS14IGh0bWxmb250aWZ5LWJ1ZmZlcuKA mSwgd2hpY2ggY29udmVydHMgdGhlIGN1cnJlbnQKYnVmZmVyIHRvIGEgSFRNTCBmaWxlLCByZXBs YWNpbmcgRW1hY3MgZmFjZXMgd2l0aCBDU1MtYmFzZWQgbWFya3VwLgpGdXJ0aGVybW9yZSwgT3Jn IG1vZGUgYWxsb3dzIHlvdSB0byBwcmludCBPcmcgZmlsZXMgdG8gYSB2YXJpZXR5IG9mCmZvcm1h dHMsIHN1Y2ggYXMgUERGICgqbm90ZSBPcmcgTW9kZTo6KS4KCuKAmE0teCBwcmludC1idWZmZXLi gJkKICAgICBQcmludCBoYXJkY29weSBvZiBjdXJyZW50IGJ1ZmZlciB3aXRoIHBhZ2UgaGVhZGlu Z3MgY29udGFpbmluZyB0aGUKICAgICBmaWxlIG5hbWUgYW5kIHBhZ2UgbnVtYmVyLgrigJhNLXgg bHByLWJ1ZmZlcuKAmQogICAgIFByaW50IGhhcmRjb3B5IG9mIGN1cnJlbnQgYnVmZmVyIHdpdGhv dXQgcGFnZSBoZWFkaW5ncy4K4oCYTS14IHByaW50LXJlZ2lvbuKAmQogICAgIExpa2Ug4oCYcHJp bnQtYnVmZmVy4oCZIGJ1dCBwcmludCBvbmx5IHRoZSBjdXJyZW50IHJlZ2lvbi4K4oCYTS14IGxw ci1yZWdpb27igJkKICAgICBMaWtlIOKAmGxwci1idWZmZXLigJkgYnV0IHByaW50IG9ubHkgdGhl IGN1cnJlbnQgcmVnaW9uLgoKICAgT24gbW9zdCBvcGVyYXRpbmcgc3lzdGVtcywgdGhlIGFib3Zl IGhhcmRjb3B5IGNvbW1hbmRzIHN1Ym1pdCBmaWxlcwpmb3IgcHJpbnRpbmcgYnkgY2FsbGluZyB0 aGUg4oCYbHBy4oCZIHByb2dyYW0uICBUbyBjaGFuZ2UgdGhlIHByaW50ZXIKcHJvZ3JhbSwgY3Vz dG9taXplIHRoZSB2YXJpYWJsZSDigJhscHItY29tbWFuZOKAmS4gIFRvIHNwZWNpZnkgZXh0cmEK c3dpdGNoZXMgdG8gZ2l2ZSB0aGUgcHJpbnRlciBwcm9ncmFtLCBjdXN0b21pemUgdGhlIGxpc3Qg dmFyaWFibGUK4oCYbHByLXN3aXRjaGVz4oCZLiAgSXRzIHZhbHVlIHNob3VsZCBiZSBhIGxpc3Qg b2Ygb3B0aW9uIHN0cmluZ3MsIGVhY2ggb2YKd2hpY2ggc2hvdWxkIHN0YXJ0IHdpdGgg4oCYLeKA mSAoZS5nLiwgdGhlIG9wdGlvbiBzdHJpbmcg4oCYIi13ODAi4oCZIHNwZWNpZmllcwphIGxpbmUg d2lkdGggb2YgODAgY29sdW1ucykuICBUaGUgZGVmYXVsdCBpcyB0aGUgZW1wdHkgbGlzdCwg4oCY bmls4oCZLgoKICAgVG8gc3BlY2lmeSB0aGUgcHJpbnRlciB0byB1c2UsIHNldCB0aGUgdmFyaWFi bGUg4oCYcHJpbnRlci1uYW1l4oCZLiAgVGhlCmRlZmF1bHQsIOKAmG5pbOKAmSwgc3BlY2lmaWVz IHRoZSBkZWZhdWx0IHByaW50ZXIuICBJZiB5b3Ugc2V0IGl0IHRvIGEKcHJpbnRlciBuYW1lIChh IHN0cmluZyksIHRoYXQgbmFtZSBpcyBwYXNzZWQgdG8g4oCYbHBy4oCZIHdpdGggdGhlIOKAmC1Q 4oCZCnN3aXRjaDsgaWYgeW91IGFyZSBub3QgdXNpbmcg4oCYbHBy4oCZLCB5b3Ugc2hvdWxkIHNw ZWNpZnkgdGhlIHN3aXRjaCB3aXRoCuKAmGxwci1wcmludGVyLXN3aXRjaOKAmS4KCiAgIFRoZSB2 YXJpYWJsZSDigJhscHItaGVhZGVycy1zd2l0Y2hlc+KAmSBzaW1pbGFybHkgc3BlY2lmaWVzIHRo ZSBleHRyYQpzd2l0Y2hlcyB0byB1c2UgdG8gbWFrZSBwYWdlIGhlYWRlcnMuICBUaGUgdmFyaWFi bGUg4oCYbHByLWFkZC1zd2l0Y2hlc+KAmQpjb250cm9scyB3aGV0aGVyIHRvIHN1cHBseSDigJgt VOKAmSBhbmQg4oCYLUrigJkgb3B0aW9ucyAoc3VpdGFibGUgZm9yIOKAmGxwcuKAmSkgdG8KdGhl IHByaW50ZXIgcHJvZ3JhbTog4oCYbmls4oCZIG1lYW5zIGRvbuKAmXQgYWRkIHRoZW0gKHRoaXMg c2hvdWxkIGJlIHRoZQp2YWx1ZSBpZiB5b3VyIHByaW50ZXIgcHJvZ3JhbSBpcyBub3QgY29tcGF0 aWJsZSB3aXRoIOKAmGxwcuKAmSkuCgorIE1lbnU6CgogIC0gUG9zdFNjcmlwdDo6ICAgICAgICAg ICBQcmludGluZyBidWZmZXJzIG9yIHJlZ2lvbnMgYXMgUG9zdFNjcmlwdC4KICAtIFBvc3RTY3Jp cHQgVmFyaWFibGVzOjogQ3VzdG9taXppbmcgdGhlIFBvc3RTY3JpcHQgcHJpbnRpbmcgY29tbWFu ZHMuCiAgLSBQcmludGluZyBQYWNrYWdlOjogICAgIEFuIG9wdGlvbmFsIGFkdmFuY2VkIHByaW50 aW5nIGludGVyZmFjZS4KCgoqKiA0MC4xIFBvc3RTY3JpcHQgSGFyZGNvcHkKClRoZXNlIGNvbW1h bmRzIGNvbnZlcnQgYnVmZmVyIGNvbnRlbnRzIHRvIFBvc3RTY3JpcHQsIGVpdGhlciBwcmludGlu ZyBpdApvciBsZWF2aW5nIGl0IGluIGFub3RoZXIgRW1hY3MgYnVmZmVyLgoK4oCYTS14IHBzLXBy aW50LWJ1ZmZlcuKAmQogICAgIFByaW50IGhhcmRjb3B5IG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBp biBQb3N0U2NyaXB0IGZvcm0uCuKAmE0teCBwcy1wcmludC1yZWdpb27igJkKICAgICBQcmludCBo YXJkY29weSBvZiB0aGUgY3VycmVudCByZWdpb24gaW4gUG9zdFNjcmlwdCBmb3JtLgrigJhNLXgg cHMtcHJpbnQtYnVmZmVyLXdpdGgtZmFjZXPigJkKICAgICBQcmludCBoYXJkY29weSBvZiB0aGUg Y3VycmVudCBidWZmZXIgaW4gUG9zdFNjcmlwdCBmb3JtLCBzaG93aW5nCiAgICAgdGhlIGZhY2Vz IHVzZWQgaW4gdGhlIHRleHQgYnkgbWVhbnMgb2YgUG9zdFNjcmlwdCBmZWF0dXJlcy4K4oCYTS14 IHBzLXByaW50LXJlZ2lvbi13aXRoLWZhY2Vz4oCZCiAgICAgUHJpbnQgaGFyZGNvcHkgb2YgdGhl IGN1cnJlbnQgcmVnaW9uIGluIFBvc3RTY3JpcHQgZm9ybSwgc2hvd2luZwogICAgIHRoZSBmYWNl cyB1c2VkIGluIHRoZSB0ZXh0LgrigJhNLXggcHMtc3Bvb2wtYnVmZmVy4oCZCiAgICAgR2VuZXJh dGUgYW5kIHNwb29sIGEgUG9zdFNjcmlwdCBpbWFnZSBmb3IgdGhlIGN1cnJlbnQgYnVmZmVyIHRl eHQuCuKAmE0teCBwcy1zcG9vbC1yZWdpb27igJkKICAgICBHZW5lcmF0ZSBhbmQgc3Bvb2wgYSBQ b3N0U2NyaXB0IGltYWdlIGZvciB0aGUgY3VycmVudCByZWdpb24uCuKAmE0teCBwcy1zcG9vbC1i dWZmZXItd2l0aC1mYWNlc+KAmQogICAgIEdlbmVyYXRlIGFuZCBzcG9vbCBhIFBvc3RTY3JpcHQg aW1hZ2UgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlciwKICAgICBzaG93aW5nIHRoZSBmYWNlcyB1c2Vk LgrigJhNLXggcHMtc3Bvb2wtcmVnaW9uLXdpdGgtZmFjZXPigJkKICAgICBHZW5lcmF0ZSBhbmQg c3Bvb2wgYSBQb3N0U2NyaXB0IGltYWdlIGZvciB0aGUgY3VycmVudCByZWdpb24sCiAgICAgc2hv d2luZyB0aGUgZmFjZXMgdXNlZC4K4oCYTS14IHBzLWRlc3Bvb2zigJkKICAgICBTZW5kIHRoZSBz cG9vbGVkIFBvc3RTY3JpcHQgdG8gdGhlIHByaW50ZXIuCuKAmE0teCBoYW5kd3JpdGXigJkKICAg ICBHZW5lcmF0ZS9wcmludCBQb3N0U2NyaXB0IGZvciB0aGUgY3VycmVudCBidWZmZXIgYXMgaWYg aGFuZHdyaXR0ZW4uCgogICBUaGUg4oCYcHMtcHJpbnQtYnVmZmVy4oCZIGFuZCDigJhwcy1wcmlu dC1yZWdpb27igJkgY29tbWFuZHMgcHJpbnQgYnVmZmVyCmNvbnRlbnRzIGluIFBvc3RTY3JpcHQg Zm9ybS4gIE9uZSBjb21tYW5kIHByaW50cyB0aGUgZW50aXJlIGJ1ZmZlcjsgdGhlCm90aGVyLCBq dXN0IHRoZSByZWdpb24uICBUaGUgY29tbWFuZHMg4oCYcHMtcHJpbnQtYnVmZmVyLXdpdGgtZmFj ZXPigJkgYW5kCuKAmHBzLXByaW50LXJlZ2lvbi13aXRoLWZhY2Vz4oCZIGJlaGF2ZSBzaW1pbGFy bHksIGJ1dCB1c2UgUG9zdFNjcmlwdApmZWF0dXJlcyB0byBzaG93IHRoZSBmYWNlcyAoZm9udHMg YW5kIGNvbG9ycykgb2YgdGhlIGJ1ZmZlciB0ZXh0LgoKICAgSW50ZXJhY3RpdmVseSwgd2hlbiB5 b3UgdXNlIGEgcHJlZml4IGFyZ3VtZW50ICjigJhDLXXigJkpLCB0aGVzZSBjb21tYW5kcwpwcm9t cHQgdGhlIHVzZXIgZm9yIGEgZmlsZSBuYW1lLCBhbmQgc2F2ZSB0aGUgUG9zdFNjcmlwdCBpbWFn ZSBpbiB0aGF0CmZpbGUgaW5zdGVhZCBvZiBzZW5kaW5nIGl0IHRvIHRoZSBwcmludGVyLgoKICAg VGhlIGNvbW1hbmRzIHdob3NlIG5hbWVzIGhhdmUg4oCYc3Bvb2zigJkgaW5zdGVhZCBvZiDigJhw cmludOKAmSwgZ2VuZXJhdGUKdGhlIFBvc3RTY3JpcHQgb3V0cHV0IGluIGFuIEVtYWNzIGJ1ZmZl ciBpbnN0ZWFkIG9mIHNlbmRpbmcgaXQgdG8gdGhlCnByaW50ZXIuCgogICBVc2UgdGhlIGNvbW1h bmQg4oCYcHMtZGVzcG9vbOKAmSB0byBzZW5kIHRoZSBzcG9vbGVkIGltYWdlcyB0byB0aGUKcHJp bnRlci4gIFRoaXMgY29tbWFuZCBzZW5kcyB0aGUgUG9zdFNjcmlwdCBnZW5lcmF0ZWQgYnkg4oCY LXNwb29sLeKAmQpjb21tYW5kcyAoc2VlIGNvbW1hbmRzIGFib3ZlKSB0byB0aGUgcHJpbnRlci4g IFdpdGggYSBwcmVmaXggYXJndW1lbnQKKOKAmEMtdeKAmSksIGl0IHByb21wdHMgZm9yIGEgZmls ZSBuYW1lLCBhbmQgc2F2ZXMgdGhlIHNwb29sZWQgUG9zdFNjcmlwdAppbWFnZSBpbiB0aGF0IGZp bGUgaW5zdGVhZCBvZiBzZW5kaW5nIGl0IHRvIHRoZSBwcmludGVyLgoKICAg4oCYTS14IGhhbmR3 cml0ZeKAmSBpcyBtb3JlIGZyaXZvbG91cy4gIEl0IGdlbmVyYXRlcyBhIFBvc3RTY3JpcHQKcmVu ZGl0aW9uIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBhcyBhIGN1cnNpdmUgaGFuZHdyaXR0ZW4gZG9j dW1lbnQuICBJdApjYW4gYmUgY3VzdG9taXplZCBpbiBncm91cCDigJhoYW5kd3JpdGXigJkuICBU aGlzIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgSVNPCjg4NTktMSBjaGFyYWN0ZXJzLgoKCioqIDQw LjIgVmFyaWFibGVzIGZvciBQb3N0U2NyaXB0IEhhcmRjb3B5CgpBbGwgdGhlIFBvc3RTY3JpcHQg aGFyZGNvcHkgY29tbWFuZHMgdXNlIHRoZSB2YXJpYWJsZXMg4oCYcHMtbHByLWNvbW1hbmTigJkK YW5kIOKAmHBzLWxwci1zd2l0Y2hlc+KAmSB0byBzcGVjaWZ5IGhvdyB0byBwcmludCB0aGUgb3V0 cHV0LgrigJhwcy1scHItY29tbWFuZOKAmSBzcGVjaWZpZXMgdGhlIGNvbW1hbmQgbmFtZSB0byBy dW4sIOKAmHBzLWxwci1zd2l0Y2hlc+KAmQpzcGVjaWZpZXMgY29tbWFuZCBsaW5lIG9wdGlvbnMg dG8gdXNlLCBhbmQg4oCYcHMtcHJpbnRlci1uYW1l4oCZIHNwZWNpZmllcwp0aGUgcHJpbnRlci4g IElmIHlvdSBkb27igJl0IHNldCB0aGUgZmlyc3QgdHdvIHZhcmlhYmxlcyB5b3Vyc2VsZiwgdGhl eQp0YWtlIHRoZWlyIGluaXRpYWwgdmFsdWVzIGZyb20g4oCYbHByLWNvbW1hbmTigJkgYW5kIOKA mGxwci1zd2l0Y2hlc+KAmS4gIElmCuKAmHBzLXByaW50ZXItbmFtZeKAmSBpcyDigJhuaWzigJks IOKAmHByaW50ZXItbmFtZeKAmSBpcyB1c2VkLgoKICAgVGhlIHZhcmlhYmxlIOKAmHBzLXByaW50 LWhlYWRlcuKAmSBjb250cm9scyB3aGV0aGVyIHRoZXNlIGNvbW1hbmRzIGFkZApoZWFkZXIgbGlu ZXMgdG8gZWFjaCBwYWdl4oCUc2V0IGl0IHRvIOKAmG5pbOKAmSB0byB0dXJuIGhlYWRlcnMgb2Zm LgoKICAgSWYgeW91ciBwcmludGVyIGRvZXNu4oCZdCBzdXBwb3J0IGNvbG9ycywgeW91IHNob3Vs ZCB0dXJuIG9mZiBjb2xvcgpwcm9jZXNzaW5nIGJ5IHNldHRpbmcg4oCYcHMtcHJpbnQtY29sb3It cOKAmSB0byDigJhuaWzigJkuICBCeSBkZWZhdWx0LCBpZiB0aGUKZGlzcGxheSBzdXBwb3J0cyBj b2xvcnMsIEVtYWNzIHByb2R1Y2VzIGhhcmRjb3B5IG91dHB1dCB3aXRoIGNvbG9yCmluZm9ybWF0 aW9uOyBvbiBibGFjay1hbmQtd2hpdGUgcHJpbnRlcnMsIGNvbG9ycyBhcmUgZW11bGF0ZWQgd2l0 aApzaGFkZXMgb2YgZ3JheS4gIFRoaXMgbWlnaHQgcHJvZHVjZSBpbGxlZ2libGUgb3V0cHV0LCBl dmVuIGlmIHlvdXIKc2NyZWVuIGNvbG9ycyBvbmx5IHVzZSBzaGFkZXMgb2YgZ3JheS4KCiAgIEFs dGVybmF0aXZlbHksIHlvdSBjYW4gc2V0IOKAmHBzLXByaW50LWNvbG9yLXDigJkgdG8g4oCYYmxh Y2std2hpdGXigJkgdG8KcHJpbnQgY29sb3JzIG9uIGJsYWNrL3doaXRlIHByaW50ZXJzLgoKICAg QnkgZGVmYXVsdCwgUG9zdFNjcmlwdCBwcmludGluZyBpZ25vcmVzIHRoZSBiYWNrZ3JvdW5kIGNv bG9ycyBvZiB0aGUKZmFjZXMsIHVubGVzcyB0aGUgdmFyaWFibGUg4oCYcHMtdXNlLWZhY2UtYmFj a2dyb3VuZOKAmSBpcyBub24t4oCYbmls4oCZLiAgVGhpcwppcyB0byBhdm9pZCB1bndhbnRlZCBp bnRlcmZlcmVuY2Ugd2l0aCB0aGUgemVicmEgc3RyaXBlcyBhbmQgYmFja2dyb3VuZAppbWFnZS90 ZXh0LgoKICAgVGhlIHZhcmlhYmxlIOKAmHBzLXBhcGVyLXR5cGXigJkgc3BlY2lmaWVzIHdoaWNo IHNpemUgb2YgcGFwZXIgdG8gZm9ybWF0CmZvcjsgbGVnaXRpbWF0ZSB2YWx1ZXMgaW5jbHVkZSDi gJhhNOKAmSwg4oCYYTPigJksIOKAmGE0c21hbGzigJksIOKAmGI04oCZLCDigJhiNeKAmSwK4oCY ZXhlY3V0aXZl4oCZLCDigJhsZWRnZXLigJksIOKAmGxlZ2Fs4oCZLCDigJhsZXR0ZXLigJksIOKA mGxldHRlci1zbWFsbOKAmSwg4oCYc3RhdGVtZW504oCZLArigJh0YWJsb2lk4oCZLiAgVGhlIGRl ZmF1bHQgaXMg4oCYbGV0dGVy4oCZLiAgWW91IGNhbiBkZWZpbmUgYWRkaXRpb25hbCBwYXBlcgpz aXplcyBieSBjaGFuZ2luZyB0aGUgdmFyaWFibGUg4oCYcHMtcGFnZS1kaW1lbnNpb25zLWRhdGFi YXNl4oCZLgoKICAgVGhlIHZhcmlhYmxlIOKAmHBzLWxhbmRzY2FwZS1tb2Rl4oCZIHNwZWNpZmll cyB0aGUgb3JpZW50YXRpb24gb2YKcHJpbnRpbmcgb24gdGhlIHBhZ2UuICBUaGUgZGVmYXVsdCBp cyDigJhuaWzigJksIHdoaWNoIHN0YW5kcyBmb3IgcG9ydHJhaXQKbW9kZS4gIEFueSBub24t4oCY bmls4oCZIHZhbHVlIHNwZWNpZmllcyBsYW5kc2NhcGUgbW9kZS4KCiAgIFRoZSB2YXJpYWJsZSDi gJhwcy1udW1iZXItb2YtY29sdW1uc+KAmSBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBjb2x1bW5z OwppdCB0YWtlcyBlZmZlY3QgaW4gYm90aCBsYW5kc2NhcGUgYW5kIHBvcnRyYWl0IG1vZGUuICBU aGUgZGVmYXVsdCBpcyAxLgoKICAgVGhlIHZhcmlhYmxlIOKAmHBzLWZvbnQtZmFtaWx54oCZIHNw ZWNpZmllcyB3aGljaCBmb250IGZhbWlseSB0byB1c2UgZm9yCnByaW50aW5nIG9yZGluYXJ5IHRl eHQuICBMZWdpdGltYXRlIHZhbHVlcyBpbmNsdWRlIOKAmENvdXJpZXLigJksCuKAmEhlbHZldGlj YeKAmSwg4oCYTmV3Q2VudHVyeVNjaGxia+KAmSwg4oCYUGFsYXRpbm/igJkgYW5kIOKAmFRpbWVz 4oCZLiAgVGhlIHZhcmlhYmxlCuKAmHBzLWZvbnQtc2l6ZeKAmSBzcGVjaWZpZXMgdGhlIHNpemUg b2YgdGhlIGZvbnQgZm9yIG9yZGluYXJ5IHRleHQgYW5kCmRlZmF1bHRzIHRvIDguNSBwb2ludHMu ICBUaGUgdmFsdWUgb2Yg4oCYcHMtZm9udC1zaXpl4oCZIGNhbiBhbHNvIGJlIGEgY29ucwpvZiAy IGZsb2F0czogb25lIGZvciBsYW5kc2NhcGUgbW9kZSwgdGhlIG90aGVyIGZvciBwb3J0cmFpdCBt b2RlLgoKICAgRW1hY3Mgc3VwcG9ydHMgbW9yZSBzY3JpcHRzIGFuZCBjaGFyYWN0ZXJzIHRoYW4g YSB0eXBpY2FsIFBvc3RTY3JpcHQKcHJpbnRlci4gIFRodXMsIHNvbWUgb2YgdGhlIGNoYXJhY3Rl cnMgaW4geW91ciBidWZmZXIgbWlnaHQgbm90IGJlCnByaW50YWJsZSB1c2luZyB0aGUgZm9udHMg YnVpbHQgaW50byB5b3VyIHByaW50ZXIuICBZb3UgY2FuIGF1Z21lbnQgdGhlCmZvbnRzIHN1cHBs aWVkIHdpdGggdGhlIHByaW50ZXIgd2l0aCB0aG9zZSBmcm9tIHRoZSBHTlUgSW50bGZvbnRzCnBh Y2thZ2UsIG9yIHlvdSBjYW4gaW5zdHJ1Y3QgRW1hY3MgdG8gdXNlIEludGxmb250cyBleGNsdXNp dmVseS4gIFRoZQp2YXJpYWJsZSDigJhwcy1tdWx0aWJ5dGUtYnVmZmVy4oCZIGNvbnRyb2xzIHRo aXM6IHRoZSBkZWZhdWx0IHZhbHVlLCDigJhuaWzigJksCmlzIGFwcHJvcHJpYXRlIGZvciBwcmlu dGluZyBBU0NJSSBhbmQgTGF0aW4tMSBjaGFyYWN0ZXJzOyBhIHZhbHVlIG9mCuKAmG5vbi1sYXRp bi1wcmludGVy4oCZIGlzIGZvciBwcmludGVycyB3aGljaCBoYXZlIHRoZSBmb250cyBmb3IgQVND SUksCkxhdGluLTEsIEphcGFuZXNlLCBhbmQgS29yZWFuIGNoYXJhY3RlcnMgYnVpbHQgaW50byB0 aGVtLiAgQSB2YWx1ZSBvZgrigJhiZGYtZm9udOKAmSBhcnJhbmdlcyBmb3IgdGhlIEJERiBmb250 cyBmcm9tIHRoZSBJbnRsZm9udHMgcGFja2FnZSB0byBiZQp1c2VkIGZvciBfYWxsXyBjaGFyYWN0 ZXJzLiAgRmluYWxseSwgYSB2YWx1ZSBvZiDigJhiZGYtZm9udC1leGNlcHQtbGF0aW7igJkKaW5z dHJ1Y3RzIHRoZSBwcmludGVyIHRvIHVzZSBidWlsdC1pbiBmb250cyBmb3IgQVNDSUkgYW5kIExh dGluLTEKY2hhcmFjdGVycywgYW5kIEludGxmb250cyBCREYgZm9udHMgZm9yIHRoZSByZXN0LgoK ICAgVG8gYmUgYWJsZSB0byB1c2UgdGhlIEJERiBmb250cywgRW1hY3MgbmVlZHMgdG8ga25vdyB3 aGVyZSB0byBmaW5kCnRoZW0uICBUaGUgdmFyaWFibGUg4oCYYmRmLWRpcmVjdG9yeS1saXN04oCZ IGhvbGRzIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzCndoZXJlIEVtYWNzIHNob3VsZCBsb29rIGZv ciB0aGUgZm9udHM7IHRoZSBkZWZhdWx0IHZhbHVlIGluY2x1ZGVzIGEKc2luZ2xlIGRpcmVjdG9y eSDigJgvdXNyL2xvY2FsL3NoYXJlL2VtYWNzL2ZvbnRzL2JkZuKAmS4KCiAgIE1hbnkgb3RoZXIg Y3VzdG9taXphdGlvbiB2YXJpYWJsZXMgZm9yIHRoZXNlIGNvbW1hbmRzIGFyZSBkZWZpbmVkIGFu ZApkZXNjcmliZWQgaW4gdGhlIExpc3AgZmlsZXMg4oCYcHMtcHJpbnQuZWzigJkgYW5kIOKAmHBz LW11bGUuZWzigJkuCgoKKiogNDAuMyBQcmludGluZyBQYWNrYWdlCgpUaGUgYmFzaWMgRW1hY3Mg ZmFjaWxpdGllcyBmb3IgcHJpbnRpbmcgaGFyZGNvcHkgY2FuIGJlIGV4dGVuZGVkIHVzaW5nCnRo ZSBQcmludGluZyBwYWNrYWdlLiAgVGhpcyBwcm92aWRlcyBhbiBlYXN5LXRvLXVzZSBpbnRlcmZh Y2UgZm9yCmNob29zaW5nIHdoYXQgdG8gcHJpbnQsIHByZXZpZXdpbmcgUG9zdFNjcmlwdCBmaWxl cyBiZWZvcmUgcHJpbnRpbmcsIGFuZApzZXR0aW5nIHZhcmlvdXMgcHJpbnRpbmcgb3B0aW9ucyBz dWNoIGFzIHByaW50IGhlYWRlcnMsIGxhbmRzY2FwZSBvcgpwb3J0cmFpdCBtb2RlcywgZHVwbGV4 IG1vZGVzLCBhbmQgc28gZm9ydGguICBPbiBHTlUvTGludXggb3IgVW5peApzeXN0ZW1zLCB0aGUg UHJpbnRpbmcgcGFja2FnZSByZWxpZXMgb24gdGhlIOKAmGdz4oCZIGFuZCDigJhnduKAmSB1dGls aXRpZXMsCndoaWNoIGFyZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIHRoZSBHaG9zdFNjcmlwdCBw cm9ncmFtLiAgT24KTVMtV2luZG93cywgdGhlIOKAmGdzdG9vbHPigJkgcG9ydCBvZiBHaG9zdHNj cmlwdCBjYW4gYmUgdXNlZC4KCiAgIFRvIHVzZSB0aGUgUHJpbnRpbmcgcGFja2FnZSwgYWRkIOKA mChyZXF1aXJlICdwcmludGluZynigJkgdG8geW91ciBpbml0CmZpbGUgKCpub3RlIEluaXQgRmls ZTo6KSwgZm9sbG93ZWQgYnkg4oCYKHByLXVwZGF0ZS1tZW51cynigJkuICBUaGlzCmZ1bmN0aW9u IHJlcGxhY2VzIHRoZSB1c3VhbCBwcmludGluZyBjb21tYW5kcyBpbiB0aGUgbWVudSBiYXIgd2l0 aCBhCuKAmFByaW50aW5n4oCZIHN1Ym1lbnUgdGhhdCBjb250YWlucyB2YXJpb3VzIHByaW50aW5n IG9wdGlvbnMuICBZb3UgY2FuIGFsc28KdHlwZSDigJhNLXggcHItaW50ZXJmYWNlIDxSRVQ+4oCZ OyB0aGlzIGNyZWF0ZXMgYSDigJgqUHJpbnRpbmcgSW50ZXJmYWNlKuKAmQpidWZmZXIsIHNpbWls YXIgdG8gYSBjdXN0b21pemF0aW9uIGJ1ZmZlciwgd2hlcmUgeW91IGNhbiBzZXQgdGhlCnByaW50 aW5nIG9wdGlvbnMuICBBZnRlciBzZWxlY3Rpbmcgd2hhdCBhbmQgaG93IHRvIHByaW50LCB5b3Ug c3RhcnQgdGhlCnByaW50IGpvYiB1c2luZyB0aGUg4oCYUHJpbnTigJkgYnV0dG9uIChjbGljayDi gJhtb3VzZS0y4oCZIG9uIGl0LCBvciBtb3ZlIHBvaW50Cm92ZXIgaXQgYW5kIHR5cGUgPFJFVD4p LiAgRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gdGhlIHZhcmlvdXMKb3B0aW9ucywgdXNlIHRo ZSDigJhJbnRlcmZhY2UgSGVscOKAmSBidXR0b24uCgoKKiA0MSBTb3J0aW5nIFRleHQKCkVtYWNz IHByb3ZpZGVzIHNldmVyYWwgY29tbWFuZHMgZm9yIHNvcnRpbmcgdGV4dCBpbiB0aGUgYnVmZmVy LiAgQWxsCm9wZXJhdGUgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSByZWdpb24uICBUaGV5IGRpdmlk ZSB0aGUgdGV4dCBvZiB0aGUKcmVnaW9uIGludG8gbWFueSAic29ydCByZWNvcmRzIiwgaWRlbnRp ZnkgYSAic29ydCBrZXkiIGZvciBlYWNoIHJlY29yZCwKYW5kIHRoZW4gcmVvcmRlciB0aGUgcmVj b3JkcyBpbnRvIHRoZSBvcmRlciBkZXRlcm1pbmVkIGJ5IHRoZSBzb3J0IGtleXMuClRoZSByZWNv cmRzIGFyZSBvcmRlcmVkIHNvIHRoYXQgdGhlaXIga2V5cyBhcmUgaW4gYWxwaGFiZXRpY2FsIG9y ZGVyLApvciwgZm9yIG51bWVyaWMgc29ydGluZywgaW4gbnVtZXJpYyBvcmRlci4gIEluIGFscGhh YmV0aWMgc29ydGluZywgYWxsCnVwcGVyLWNhc2UgbGV0dGVycyDigJhB4oCZIHRocm91Z2gg4oCY WuKAmSBjb21lIGJlZm9yZSBsb3dlci1jYXNlIOKAmGHigJksIGluCmFjY29yZGFuY2Ugd2l0aCB0 aGUgQVNDSUkgY2hhcmFjdGVyIHNlcXVlbmNlIChidXQg4oCYc29ydC1mb2xkLWNhc2XigJksCmRl c2NyaWJlZCBiZWxvdywgY2FuIGNoYW5nZSB0aGF0KS4KCiAgIFRoZSB2YXJpb3VzIHNvcnQgY29t bWFuZHMgZGlmZmVyIGluIGhvdyB0aGV5IGRpdmlkZSB0aGUgdGV4dCBpbnRvCnNvcnQgcmVjb3Jk cyBhbmQgaW4gd2hpY2ggcGFydCBvZiBlYWNoIHJlY29yZCBpcyB1c2VkIGFzIHRoZSBzb3J0IGtl eS4KTW9zdCBvZiB0aGUgY29tbWFuZHMgbWFrZSBlYWNoIGxpbmUgYSBzZXBhcmF0ZSBzb3J0IHJl Y29yZCwgYnV0IHNvbWUKY29tbWFuZHMgdXNlIHBhcmFncmFwaHMgb3IgcGFnZXMgYXMgc29ydCBy ZWNvcmRzLiAgTW9zdCBvZiB0aGUgc29ydApjb21tYW5kcyB1c2UgZWFjaCBlbnRpcmUgc29ydCBy ZWNvcmQgYXMgaXRzIG93biBzb3J0IGtleSwgYnV0IHNvbWUgdXNlCm9ubHkgYSBwb3J0aW9uIG9m IHRoZSByZWNvcmQgYXMgdGhlIHNvcnQga2V5LgoK4oCYTS14IHNvcnQtbGluZXPigJkKICAgICBE aXZpZGUgdGhlIHJlZ2lvbiBpbnRvIGxpbmVzLCBhbmQgc29ydCBieSBjb21wYXJpbmcgdGhlIGVu dGlyZSB0ZXh0CiAgICAgb2YgYSBsaW5lLiAgQSBudW1lcmljIGFyZ3VtZW50IG1lYW5zIHNvcnQg aW50byBkZXNjZW5kaW5nIG9yZGVyLgoK4oCYTS14IHNvcnQtcGFyYWdyYXBoc+KAmQogICAgIERp dmlkZSB0aGUgcmVnaW9uIGludG8gcGFyYWdyYXBocywgYW5kIHNvcnQgYnkgY29tcGFyaW5nIHRo ZSBlbnRpcmUKICAgICB0ZXh0IG9mIGEgcGFyYWdyYXBoIChleGNlcHQgZm9yIGxlYWRpbmcgYmxh bmsgbGluZXMpLiAgQSBudW1lcmljCiAgICAgYXJndW1lbnQgbWVhbnMgc29ydCBpbnRvIGRlc2Nl bmRpbmcgb3JkZXIuCgrigJhNLXggc29ydC1wYWdlc+KAmQogICAgIERpdmlkZSB0aGUgcmVnaW9u IGludG8gcGFnZXMsIGFuZCBzb3J0IGJ5IGNvbXBhcmluZyB0aGUgZW50aXJlIHRleHQKICAgICBv ZiBhIHBhZ2UgKGV4Y2VwdCBmb3IgbGVhZGluZyBibGFuayBsaW5lcykuICBBIG51bWVyaWMgYXJn dW1lbnQKICAgICBtZWFucyBzb3J0IGludG8gZGVzY2VuZGluZyBvcmRlci4KCuKAmE0teCBzb3J0 LWZpZWxkc+KAmQogICAgIERpdmlkZSB0aGUgcmVnaW9uIGludG8gbGluZXMsIGFuZCBzb3J0IGJ5 IGNvbXBhcmluZyB0aGUgY29udGVudHMgb2YKICAgICBvbmUgZmllbGQgaW4gZWFjaCBsaW5lLiAg RmllbGRzIGFyZSBkZWZpbmVkIGFzIHNlcGFyYXRlZCBieQogICAgIHdoaXRlc3BhY2UsIHNvIHRo ZSBmaXJzdCBydW4gb2YgY29uc2VjdXRpdmUgbm9uLXdoaXRlc3BhY2UKICAgICBjaGFyYWN0ZXJz IGluIGEgbGluZSBjb25zdGl0dXRlcyBmaWVsZCAxLCB0aGUgc2Vjb25kIHN1Y2ggcnVuCiAgICAg Y29uc3RpdHV0ZXMgZmllbGQgMiwgZXRjLgoKICAgICBTcGVjaWZ5IHdoaWNoIGZpZWxkIHRvIHNv cnQgYnkgd2l0aCBhIG51bWVyaWMgYXJndW1lbnQ6IDEgdG8gc29ydAogICAgIGJ5IGZpZWxkIDEs IGV0Yy47IHRoZSBkZWZhdWx0IGlzIDEuICBBIG5lZ2F0aXZlIGFyZ3VtZW50IG1lYW5zCiAgICAg Y291bnQgZmllbGRzIGZyb20gdGhlIHJpZ2h0IGluc3RlYWQgb2YgZnJvbSB0aGUgbGVmdDsgdGh1 cywgbWludXMgMQogICAgIG1lYW5zIHNvcnQgYnkgdGhlIGxhc3QgZmllbGQuICBJZiBzZXZlcmFs IGxpbmVzIGhhdmUgaWRlbnRpY2FsCiAgICAgY29udGVudHMgaW4gdGhlIGZpZWxkIGJlaW5nIHNv cnRlZCwgdGhleSBrZWVwIHRoZSBzYW1lIHJlbGF0aXZlCiAgICAgb3JkZXIgdGhhdCB0aGV5IGhh ZCBpbiB0aGUgb3JpZ2luYWwgYnVmZmVyLgoK4oCYTS14IHNvcnQtbnVtZXJpYy1maWVsZHPigJkK ICAgICBMaWtlIOKAmE0teCBzb3J0LWZpZWxkc+KAmSBleGNlcHQgdGhlIHNwZWNpZmllZCBmaWVs ZCBpcyBjb252ZXJ0ZWQgdG8KICAgICBhbiBpbnRlZ2VyIGZvciBlYWNoIGxpbmUsIGFuZCB0aGUg bnVtYmVycyBhcmUgY29tcGFyZWQuICDigJgxMOKAmSBjb21lcwogICAgIGJlZm9yZSDigJgy4oCZ IHdoZW4gY29uc2lkZXJlZCBhcyB0ZXh0LCBidXQgYWZ0ZXIgaXQgd2hlbiBjb25zaWRlcmVkIGFz CiAgICAgYSBudW1iZXIuICBCeSBkZWZhdWx0LCBudW1iZXJzIGFyZSBpbnRlcnByZXRlZCBhY2Nv cmRpbmcgdG8KICAgICDigJhzb3J0LW51bWVyaWMtYmFzZeKAmSwgYnV0IG51bWJlcnMgYmVnaW5u aW5nIHdpdGgg4oCYMHjigJkgb3Ig4oCYMOKAmSBhcmUKICAgICBpbnRlcnByZXRlZCBhcyBoZXhh ZGVjaW1hbCBhbmQgb2N0YWwsIHJlc3BlY3RpdmVseS4KCuKAmE0teCBzb3J0LWNvbHVtbnPigJkK ICAgICBMaWtlIOKAmE0teCBzb3J0LWZpZWxkc+KAmSBleGNlcHQgdGhhdCB0aGUgdGV4dCB3aXRo aW4gZWFjaCBsaW5lIHVzZWQKICAgICBmb3IgY29tcGFyaXNvbiBjb21lcyBmcm9tIGEgZml4ZWQg cmFuZ2Ugb2YgY29sdW1ucy4gIFdpdGggYSBwcmVmaXgKICAgICBhcmd1bWVudCwgc29ydCBpbiBy ZXZlcnNlIG9yZGVyLiAgU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMgb24KICAgICB0aGlzIGNv bW1hbmQuCgrigJhNLXggcmV2ZXJzZS1yZWdpb27igJkKICAgICBSZXZlcnNlIHRoZSBvcmRlciBv ZiB0aGUgbGluZXMgaW4gdGhlIHJlZ2lvbi4gIFRoaXMgaXMgdXNlZnVsIGZvcgogICAgIHNvcnRp bmcgaW50byBkZXNjZW5kaW5nIG9yZGVyIGJ5IGZpZWxkcywgc2luY2UgdGhvc2Ugc29ydCBjb21t YW5kcwogICAgIGRvIG5vdCBoYXZlIGEgZmVhdHVyZSBmb3IgZG9pbmcgdGhhdC4KCiAgIEZvciBl eGFtcGxlLCBpZiB0aGUgYnVmZmVyIGNvbnRhaW5zIHRoaXM6CgogICAgIE9uIHN5c3RlbXMgd2hl cmUgY2xhc2ggZGV0ZWN0aW9uIChsb2NraW5nIG9mIGZpbGVzIGJlaW5nIGVkaXRlZCkgaXMKICAg ICBpbXBsZW1lbnRlZCwgRW1hY3MgYWxzbyBjaGVja3MgdGhlIGZpcnN0IHRpbWUgeW91IG1vZGlm eSBhIGJ1ZmZlcgogICAgIHdoZXRoZXIgdGhlIGZpbGUgaGFzIGNoYW5nZWQgb24gZGlzayBzaW5j ZSBpdCB3YXMgbGFzdCB2aXNpdGVkIG9yCiAgICAgc2F2ZWQuICBJZiBpdCBoYXMsIHlvdSBhcmUg YXNrZWQgdG8gY29uZmlybSB0aGF0IHlvdSB3YW50IHRvIGNoYW5nZQogICAgIHRoZSBidWZmZXIu CgphcHBseWluZyDigJhNLXggc29ydC1saW5lc+KAmSB0byB0aGUgZW50aXJlIGJ1ZmZlciBwcm9k dWNlcyB0aGlzOgoKICAgICBPbiBzeXN0ZW1zIHdoZXJlIGNsYXNoIGRldGVjdGlvbiAobG9ja2lu ZyBvZiBmaWxlcyBiZWluZyBlZGl0ZWQpIGlzCiAgICAgaW1wbGVtZW50ZWQsIEVtYWNzIGFsc28g Y2hlY2tzIHRoZSBmaXJzdCB0aW1lIHlvdSBtb2RpZnkgYSBidWZmZXIKICAgICBzYXZlZC4gIElm IGl0IGhhcywgeW91IGFyZSBhc2tlZCB0byBjb25maXJtIHRoYXQgeW91IHdhbnQgdG8gY2hhbmdl CiAgICAgdGhlIGJ1ZmZlci4KICAgICB3aGV0aGVyIHRoZSBmaWxlIGhhcyBjaGFuZ2VkIG9uIGRp c2sgc2luY2UgaXQgd2FzIGxhc3QgdmlzaXRlZCBvcgoKd2hlcmUgdGhlIHVwcGVyLWNhc2Ug4oCY T+KAmSBzb3J0cyBiZWZvcmUgYWxsIGxvd2VyLWNhc2UgbGV0dGVycy4gIElmIHlvdQp1c2Ug4oCY Qy11IDIgTS14IHNvcnQtZmllbGRz4oCZIGluc3RlYWQsIHlvdSBnZXQgdGhpczoKCiAgICAgaW1w bGVtZW50ZWQsIEVtYWNzIGFsc28gY2hlY2tzIHRoZSBmaXJzdCB0aW1lIHlvdSBtb2RpZnkgYSBi dWZmZXIKICAgICBzYXZlZC4gIElmIGl0IGhhcywgeW91IGFyZSBhc2tlZCB0byBjb25maXJtIHRo YXQgeW91IHdhbnQgdG8gY2hhbmdlCiAgICAgdGhlIGJ1ZmZlci4KICAgICBPbiBzeXN0ZW1zIHdo ZXJlIGNsYXNoIGRldGVjdGlvbiAobG9ja2luZyBvZiBmaWxlcyBiZWluZyBlZGl0ZWQpIGlzCiAg ICAgd2hldGhlciB0aGUgZmlsZSBoYXMgY2hhbmdlZCBvbiBkaXNrIHNpbmNlIGl0IHdhcyBsYXN0 IHZpc2l0ZWQgb3IKCndoZXJlIHRoZSBzb3J0IGtleXMgd2VyZSDigJhFbWFjc+KAmSwg4oCYSWbi gJksIOKAmGJ1ZmZlcuKAmSwg4oCYc3lzdGVtc+KAmSBhbmQg4oCYdGhl4oCZLgoKICAg4oCYTS14 IHNvcnQtY29sdW1uc+KAmSByZXF1aXJlcyBtb3JlIGV4cGxhbmF0aW9uLiAgWW91IHNwZWNpZnkg dGhlCmNvbHVtbnMgYnkgcHV0dGluZyBwb2ludCBhdCBvbmUgb2YgdGhlIGNvbHVtbnMgYW5kIHRo ZSBtYXJrIGF0IHRoZSBvdGhlcgpjb2x1bW4uICBCZWNhdXNlIHRoaXMgbWVhbnMgeW91IGNhbm5v dCBwdXQgcG9pbnQgb3IgdGhlIG1hcmsgYXQgdGhlCmJlZ2lubmluZyBvZiB0aGUgZmlyc3QgbGlu ZSBvZiB0aGUgdGV4dCB5b3Ugd2FudCB0byBzb3J0LCB0aGlzIGNvbW1hbmQKdXNlcyBhbiB1bnVz dWFsIGRlZmluaXRpb24gb2Yg4oCccmVnaW9u4oCdOiBhbGwgb2YgdGhlIGxpbmUgcG9pbnQgaXMg aW4gaXMKY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSByZWdpb24sIGFuZCBzbyBpcyBhbGwgb2YgdGhl IGxpbmUgdGhlIG1hcmsgaXMgaW4sCmFzIHdlbGwgYXMgYWxsIHRoZSBsaW5lcyBpbiBiZXR3ZWVu LgoKICAgRm9yIGV4YW1wbGUsIHRvIHNvcnQgYSB0YWJsZSBieSBpbmZvcm1hdGlvbiBmb3VuZCBp biBjb2x1bW5zIDEwIHRvCjE1LCB5b3UgY291bGQgcHV0IHRoZSBtYXJrIG9uIGNvbHVtbiAxMCBp biB0aGUgZmlyc3QgbGluZSBvZiB0aGUgdGFibGUsCmFuZCBwb2ludCBvbiBjb2x1bW4gMTUgaW4g dGhlIGxhc3QgbGluZSBvZiB0aGUgdGFibGUsIGFuZCB0aGVuIHJ1bgrigJhzb3J0LWNvbHVtbnPi gJkuICBFcXVpdmFsZW50bHksIHlvdSBjb3VsZCBydW4gaXQgd2l0aCB0aGUgbWFyayBvbiBjb2x1 bW4KMTUgaW4gdGhlIGZpcnN0IGxpbmUgYW5kIHBvaW50IG9uIGNvbHVtbiAxMCBpbiB0aGUgbGFz dCBsaW5lLgoKICAgVGhpcyBjYW4gYmUgdGhvdWdodCBvZiBhcyBzb3J0aW5nIHRoZSByZWN0YW5n bGUgc3BlY2lmaWVkIGJ5IHBvaW50CmFuZCB0aGUgbWFyaywgZXhjZXB0IHRoYXQgdGhlIHRleHQg b24gZWFjaCBsaW5lIHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mCnRoZSByZWN0YW5nbGUgbW92ZXMg YWxvbmcgd2l0aCB0aGUgdGV4dCBpbnNpZGUgdGhlIHJlY3RhbmdsZS4gICpOb3RlClJlY3Rhbmds ZXM6Oi4KCiAgIE1hbnkgb2YgdGhlIHNvcnQgY29tbWFuZHMgaWdub3JlIGNhc2UgZGlmZmVyZW5j ZXMgd2hlbiBjb21wYXJpbmcsIGlmCuKAmHNvcnQtZm9sZC1jYXNl4oCZIGlzIG5vbi3igJhuaWzi gJkuCgoKKiA0MiBFZGl0aW5nIFBpY3R1cmVzCgpUbyBlZGl0IGEgcGljdHVyZSBtYWRlIG91dCBv ZiB0ZXh0IGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLCBhIHBpY3R1cmUgb2YKdGhlIGRpdmlzaW9u IG9mIGEgcmVnaXN0ZXIgaW50byBmaWVsZHMsIGFzIGEgY29tbWVudCBpbiBhIHByb2dyYW0pLCB1 c2UKdGhlIGNvbW1hbmQg4oCYTS14IHBpY3R1cmUtbW9kZeKAmSB0byBlbnRlciBQaWN0dXJlIG1v ZGUuCgogICBJbiBQaWN0dXJlIG1vZGUsIGVkaXRpbmcgaXMgYmFzZWQgb24gdGhlICJxdWFydGVy LXBsYW5lIiBtb2RlbCBvZgp0ZXh0LCBhY2NvcmRpbmcgdG8gd2hpY2ggdGhlIHRleHQgY2hhcmFj dGVycyBsaWUgc3R1ZGRlZCBvbiBhbiBhcmVhIHRoYXQKc3RyZXRjaGVzIGluZmluaXRlbHkgZmFy IHRvIHRoZSByaWdodCBhbmQgZG93bndhcmQuICBUaGUgY29uY2VwdCBvZiB0aGUKZW5kIG9mIGEg bGluZSBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIG1vZGVsOyB0aGUgbW9zdCB5b3UgY2FuIHNheSBp cwp3aGVyZSB0aGUgbGFzdCBub25ibGFuayBjaGFyYWN0ZXIgb24gdGhlIGxpbmUgaXMgZm91bmQu CgogICBPZiBjb3Vyc2UsIEVtYWNzIHJlYWxseSBhbHdheXMgY29uc2lkZXJzIHRleHQgYXMgYSBz ZXF1ZW5jZSBvZgpjaGFyYWN0ZXJzLCBhbmQgbGluZXMgcmVhbGx5IGRvIGhhdmUgZW5kcy4gIEJ1 dCBQaWN0dXJlIG1vZGUgcmVwbGFjZXMKdGhlIG1vc3QgZnJlcXVlbnRseS11c2VkIGNvbW1hbmRz IHdpdGggdmFyaWFudHMgdGhhdCBzaW11bGF0ZSB0aGUKcXVhcnRlci1wbGFuZSBtb2RlbCBvZiB0 ZXh0LiAgVGhleSBkbyB0aGlzIGJ5IGluc2VydGluZyBzcGFjZXMgb3IgYnkKY29udmVydGluZyB0 YWJzIHRvIHNwYWNlcy4KCiAgIE1vc3Qgb2YgdGhlIGJhc2ljIGVkaXRpbmcgY29tbWFuZHMgb2Yg RW1hY3MgYXJlIHJlZGVmaW5lZCBieSBQaWN0dXJlCm1vZGUgdG8gZG8gZXNzZW50aWFsbHkgdGhl IHNhbWUgdGhpbmcgYnV0IGluIGEgcXVhcnRlci1wbGFuZSB3YXkuICBJbgphZGRpdGlvbiwgUGlj dHVyZSBtb2RlIGRlZmluZXMgdmFyaW91cyBrZXlzIHN0YXJ0aW5nIHdpdGggdGhlIOKAmEMtY+KA mQpwcmVmaXggdG8gcnVuIHNwZWNpYWwgcGljdHVyZSBlZGl0aW5nIGNvbW1hbmRzLgoKICAgT25l IG9mIHRoZXNlIGtleXMsIOKAmEMtYyBDLWPigJksIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQu ICBPZnRlbiBhCnBpY3R1cmUgaXMgcGFydCBvZiBhIGxhcmdlciBmaWxlIHRoYXQgaXMgdXN1YWxs eSBlZGl0ZWQgaW4gc29tZSBvdGhlcgptYWpvciBtb2RlLiAgUGljdHVyZSBtb2RlIHJlY29yZHMg dGhlIG5hbWUgb2YgdGhlIHByZXZpb3VzIG1ham9yIG1vZGUgc28KeW91IGNhbiB1c2UgdGhlIOKA mEMtYyBDLWPigJkgY29tbWFuZCAo4oCYcGljdHVyZS1tb2RlLWV4aXTigJkpIGxhdGVyIHRvIGdv IGJhY2sKdG8gdGhhdCBtb2RlLiAg4oCYQy1jIEMtY+KAmSBhbHNvIGRlbGV0ZXMgc3BhY2VzIGZy b20gdGhlIGVuZHMgb2YgbGluZXMsCnVubGVzcyBnaXZlbiBhIG51bWVyaWMgYXJndW1lbnQuCgog ICBUaGUgc3BlY2lhbCBjb21tYW5kcyBvZiBQaWN0dXJlIG1vZGUgYWxsIHdvcmsgaW4gb3RoZXIg bW9kZXMKKHByb3ZpZGVkIHRoZSDigJhwaWN0dXJl4oCZIGxpYnJhcnkgaXMgbG9hZGVkKSwgYnV0 IGFyZSBub3QgYm91bmQgdG8ga2V5cwpleGNlcHQgaW4gUGljdHVyZSBtb2RlLiAgVGhlIGRlc2Ny aXB0aW9ucyBiZWxvdyB0YWxrIG9mIG1vdmluZyDigJxvbmUKY29sdW1u4oCdIGFuZCBzbyBvbiwg YnV0IGFsbCB0aGUgcGljdHVyZSBtb2RlIGNvbW1hbmRzIGhhbmRsZSBudW1lcmljCmFyZ3VtZW50 cyBhcyB0aGVpciBub3JtYWwgZXF1aXZhbGVudHMgZG8uCgogICBUdXJuaW5nIG9uIFBpY3R1cmUg bW9kZSBydW5zIHRoZSBob29rIOKAmHBpY3R1cmUtbW9kZS1ob29r4oCZLgpBZGRpdGlvbmFsIGV4 dGVuc2lvbnMgdG8gUGljdHVyZSBtb2RlIGNhbiBiZSBmb3VuZCBpbiDigJhhcnRpc3QuZWzigJku CgorIE1lbnU6CgogIC0gQmFzaWMgUGljdHVyZTo6ICAgICAgICAgQmFzaWMgY29uY2VwdHMgYW5k IHNpbXBsZSBjb21tYW5kcyBvZiBQaWN0dXJlIE1vZGUuCiAgLSBJbnNlcnQgaW4gUGljdHVyZTo6 ICAgICBDb250cm9sbGluZyBkaXJlY3Rpb24gb2YgY3Vyc29yIG1vdGlvbgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWZ0ZXIgc2VsZi1pbnNlcnRpbmcgY2hhcmFjdGVycy4KICAtIFRhYnMg aW4gUGljdHVyZTo6ICAgICAgIFZhcmlvdXMgZmVhdHVyZXMgZm9yIHRhYiBzdG9wcyBhbmQgaW5k ZW50YXRpb24uCiAgLSBSZWN0YW5nbGVzIGluIFBpY3R1cmU6OiBDbGVhcmluZyBhbmQgc3VwZXJp bXBvc2luZyByZWN0YW5nbGVzLgoKCioqIDQyLjEgQmFzaWMgRWRpdGluZyBpbiBQaWN0dXJlIE1v ZGUKCk1vc3Qga2V5cyBkbyB0aGUgc2FtZSB0aGluZyBpbiBQaWN0dXJlIG1vZGUgdGhhdCB0aGV5 IHVzdWFsbHkgZG8sIGJ1dCBkbwppdCBpbiBhIHF1YXJ0ZXItcGxhbmUgc3R5bGUuICBGb3IgZXhh bXBsZSwg4oCYQy1m4oCZIGlzIHJlYm91bmQgdG8gcnVuCuKAmHBpY3R1cmUtZm9yd2FyZC1jb2x1 bW7igJksIGEgY29tbWFuZCB3aGljaCBtb3ZlcyBwb2ludCBvbmUgY29sdW1uIHRvIHRoZQpyaWdo dCwgaW5zZXJ0aW5nIGEgc3BhY2UgaWYgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIGFjdHVhbCBlbmQg b2YgdGhlIGxpbmUKbWFrZXMgbm8gZGlmZmVyZW5jZS4gIOKAmEMtYuKAmSBpcyByZWJvdW5kIHRv IHJ1biDigJhwaWN0dXJlLWJhY2t3YXJkLWNvbHVtbuKAmSwKd2hpY2ggYWx3YXlzIG1vdmVzIHBv aW50IGxlZnQgb25lIGNvbHVtbiwgY29udmVydGluZyBhIHRhYiB0byBtdWx0aXBsZQpzcGFjZXMg aWYgbmVjZXNzYXJ5LiAg4oCYQy1u4oCZIGFuZCDigJhDLXDigJkgYXJlIHJlYm91bmQgdG8gcnVu CuKAmHBpY3R1cmUtbW92ZS1kb3du4oCZIGFuZCDigJhwaWN0dXJlLW1vdmUtdXDigJksIHdoaWNo IGNhbiBlaXRoZXIgaW5zZXJ0CnNwYWNlcyBvciBjb252ZXJ0IHRhYnMgYXMgbmVjZXNzYXJ5IHRv IG1ha2Ugc3VyZSB0aGF0IHBvaW50IHN0YXlzIGluCmV4YWN0bHkgdGhlIHNhbWUgY29sdW1uLiAg 4oCYQy1l4oCZIHJ1bnMg4oCYcGljdHVyZS1lbmQtb2YtbGluZeKAmSwgd2hpY2ggbW92ZXMKdG8g YWZ0ZXIgdGhlIGxhc3Qgbm9uYmxhbmsgY2hhcmFjdGVyIG9uIHRoZSBsaW5lLiAg4oCYQy1h4oCZ IHJ1bnMK4oCYcGljdHVyZS1iZWdpbm5pbmctb2YtbGluZeKAmS4gIChUaGUgY2hvaWNlIG9mIHNj cmVlbiBtb2RlbCBkb2VzIG5vdAphZmZlY3QgYmVnaW5uaW5ncyBvZiBsaW5lczsgdGhlIG9ubHkg ZXh0cmEgdGhpbmcgdGhpcyBjb21tYW5kIGRvZXMgaXMKdXBkYXRlIHRoZSBjdXJyZW50IHBpY3R1 cmUgY29sdW1uIHRvIDAuKQoKICAgSW5zZXJ0aW9uIG9mIHRleHQgaXMgYWRhcHRlZCB0byB0aGUg cXVhcnRlci1wbGFuZSBzY3JlZW4gbW9kZWwKdGhyb3VnaCB0aGUgdXNlIG9mIE92ZXJ3cml0ZSBt b2RlICgqbm90ZSBNaW5vciBNb2Rlczo6LikgIFNlbGYtaW5zZXJ0aW5nCmNoYXJhY3RlcnMgcmVw bGFjZSBleGlzdGluZyB0ZXh0LCBjb2x1bW4gYnkgY29sdW1uLCByYXRoZXIgdGhhbiBwdXNoaW5n CmV4aXN0aW5nIHRleHQgdG8gdGhlIHJpZ2h0LiAgPFJFVD4gcnVucyDigJhwaWN0dXJlLW5ld2xp bmXigJksIHdoaWNoIGp1c3QKbW92ZXMgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZm9sbG93aW5n IGxpbmUgc28gdGhhdCBuZXcgdGV4dCB3aWxsCnJlcGxhY2UgdGhhdCBsaW5lLgoKICAgSW4gUGlj dHVyZSBtb2RlLCB0aGUgY29tbWFuZHMgdGhhdCBub3JtYWxseSBkZWxldGUgb3Iga2lsbCB0ZXh0 LAppbnN0ZWFkIGVyYXNlIHRleHQgKHJlcGxhY2luZyBpdCB3aXRoIHNwYWNlcykuICA8REVMPgoo 4oCYcGljdHVyZS1iYWNrd2FyZC1jbGVhci1jb2x1bW7igJkpIHJlcGxhY2VzIHRoZSBwcmVjZWRp bmcgY2hhcmFjdGVyIHdpdGgKYSBzcGFjZSByYXRoZXIgdGhhbiByZW1vdmluZyBpdDsgdGhpcyBt b3ZlcyBwb2ludCBiYWNrd2FyZHMuICDigJhDLWTigJkKKOKAmHBpY3R1cmUtY2xlYXItY29sdW1u 4oCZKSByZXBsYWNlcyB0aGUgbmV4dCBjaGFyYWN0ZXIgb3IgY2hhcmFjdGVycyB3aXRoCnNwYWNl cywgYnV0IGRvZXMgbm90IG1vdmUgcG9pbnQuICAoSWYgeW91IHdhbnQgdG8gY2xlYXIgY2hhcmFj dGVycyB0bwpzcGFjZXMgYW5kIG1vdmUgZm9yd2FyZCBvdmVyIHRoZW0sIHVzZSA8U1BDPi4pICDi gJhDLWvigJkKKOKAmHBpY3R1cmUtY2xlYXItbGluZeKAmSkgcmVhbGx5IGtpbGxzIHRoZSBjb250 ZW50cyBvZiBsaW5lcywgYnV0IGRvZXMgbm90CmRlbGV0ZSB0aGUgbmV3bGluZXMgZnJvbSB0aGUg YnVmZmVyLgoKICAgVG8gZG8gYWN0dWFsIGluc2VydGlvbiwgeW91IG11c3QgdXNlIHNwZWNpYWwg Y29tbWFuZHMuICDigJhDLW/igJkKKOKAmHBpY3R1cmUtb3Blbi1saW5l4oCZKSBjcmVhdGVzIGEg YmxhbmsgbGluZSBhZnRlciB0aGUgY3VycmVudCBsaW5lOyBpdApuZXZlciBzcGxpdHMgYSBsaW5l LiAg4oCYQy1NLW/igJkgKOKAmHNwbGl0LWxpbmXigJkpIG1ha2VzIHNlbnNlIGluIFBpY3R1cmUK bW9kZSwgc28gaXQgaXMgbm90IGNoYW5nZWQuICDigJhDLWrigJkgKOKAmHBpY3R1cmUtZHVwbGlj YXRlLWxpbmXigJkpIGluc2VydHMKYW5vdGhlciBsaW5lIHdpdGggdGhlIHNhbWUgY29udGVudHMg YmVsb3cgdGhlIGN1cnJlbnQgbGluZS4KCiAgIFRvIGRvIGFjdHVhbCBkZWxldGlvbiBpbiBQaWN0 dXJlIG1vZGUsIHVzZSDigJhDLXfigJksIOKAmEMtYyBDLWTigJkgKHdoaWNoIGlzCmRlZmluZWQg YXMg4oCYZGVsZXRlLWNoYXLigJksIGFzIOKAmEMtZOKAmSBpcyBpbiBvdGhlciBtb2RlcyksIG9y IG9uZSBvZiB0aGUKcGljdHVyZSByZWN0YW5nbGUgY29tbWFuZHMgKCpub3RlIFJlY3RhbmdsZXMg aW4gUGljdHVyZTo6KS4KCgoqKiA0Mi4yIENvbnRyb2xsaW5nIE1vdGlvbiBhZnRlciBJbnNlcnQK ClNpbmNlIHNlbGYtaW5zZXJ0aW5nIGNoYXJhY3RlcnMgaW4gUGljdHVyZSBtb2RlIG92ZXJ3cml0 ZSBhbmQgbW92ZQpwb2ludCwgdGhlcmUgaXMgbm8gZXNzZW50aWFsIHJlc3RyaWN0aW9uIG9uIGhv dyBwb2ludCBzaG91bGQgYmUgbW92ZWQuCk5vcm1hbGx5IHBvaW50IG1vdmVzIHJpZ2h0LCBidXQg eW91IGNhbiBzcGVjaWZ5IGFueSBvZiB0aGUgZWlnaHQKb3J0aG9nb25hbCBvciBkaWFnb25hbCBk aXJlY3Rpb25zIGZvciBtb3Rpb24gYWZ0ZXIgYSBzZWxmLWluc2VydGluZwpjaGFyYWN0ZXIuICBU aGlzIGlzIHVzZWZ1bCBmb3IgZHJhd2luZyBsaW5lcyBpbiB0aGUgYnVmZmVyLgoK4oCYQy1jIDzi gJkK4oCYQy1jIDxMRUZUPuKAmQogICAgIE1vdmUgbGVmdCBhZnRlciBpbnNlcnRpb24gKOKAmHBp Y3R1cmUtbW92ZW1lbnQtbGVmdOKAmSkuCuKAmEMtYyA+4oCZCuKAmEMtYyA8UklHSFQ+4oCZCiAg ICAgTW92ZSByaWdodCBhZnRlciBpbnNlcnRpb24gKOKAmHBpY3R1cmUtbW92ZW1lbnQtcmlnaHTi gJkpLgrigJhDLWMgXuKAmQrigJhDLWMgPFVQPuKAmQogICAgIE1vdmUgdXAgYWZ0ZXIgaW5zZXJ0 aW9uICjigJhwaWN0dXJlLW1vdmVtZW50LXVw4oCZKS4K4oCYQy1jIC7igJkK4oCYQy1jIDxET1dO PuKAmQogICAgIE1vdmUgZG93biBhZnRlciBpbnNlcnRpb24gKOKAmHBpY3R1cmUtbW92ZW1lbnQt ZG93buKAmSkuCuKAmEMtYyBg4oCZCuKAmEMtYyA8SG9tZT7igJkKICAgICBNb3ZlIHVwIGFuZCBs ZWZ0ICjigJxub3J0aHdlc3TigJ0pIGFmdGVyIGluc2VydGlvbgogICAgICjigJhwaWN0dXJlLW1v dmVtZW50LW534oCZKS4K4oCYQy1jICfigJkK4oCYQy1jIDxQYWdlVXA+4oCZCuKAmEMtYyA8cHJp b3I+4oCZCiAgICAgTW92ZSB1cCBhbmQgcmlnaHQgKOKAnG5vcnRoZWFzdOKAnSkgYWZ0ZXIgaW5z ZXJ0aW9uCiAgICAgKOKAmHBpY3R1cmUtbW92ZW1lbnQtbmXigJkpLgrigJhDLWMgL+KAmQrigJhD LWMgPEVuZD7igJkKICAgICBNb3ZlIGRvd24gYW5kIGxlZnQgKOKAnHNvdXRod2VzdOKAnSkgYWZ0 ZXIgaW5zZXJ0aW9uCiAgICAgKOKAmHBpY3R1cmUtbW92ZW1lbnQtc3figJkpLgrigJhDLWMgXOKA mQrigJhDLWMgPFBhZ2VEb3duPuKAmQrigJhDLWMgPG5leHQ+4oCZCiAgICAgTW92ZSBkb3duIGFu ZCByaWdodCAo4oCcc291dGhlYXN04oCdKSBhZnRlciBpbnNlcnRpb24KICAgICAo4oCYcGljdHVy ZS1tb3ZlbWVudC1zZeKAmSkuCgogICBUd28gbW90aW9uIGNvbW1hbmRzIG1vdmUgYmFzZWQgb24g dGhlIGN1cnJlbnQgUGljdHVyZSBpbnNlcnRpb24KZGlyZWN0aW9uLiAgVGhlIGNvbW1hbmQg4oCY Qy1jIEMtZuKAmSAo4oCYcGljdHVyZS1tb3Rpb27igJkpIG1vdmVzIGluIHRoZSBzYW1lCmRpcmVj dGlvbiBhcyBtb3Rpb24gYWZ0ZXIgaW5zZXJ0aW9uIGN1cnJlbnRseSBkb2VzLCB3aGlsZSDigJhD LWMgQy1i4oCZCijigJhwaWN0dXJlLW1vdGlvbi1yZXZlcnNl4oCZKSBtb3ZlcyBpbiB0aGUgb3Bw b3NpdGUgZGlyZWN0aW9uLgoKCioqIDQyLjMgUGljdHVyZSBNb2RlIFRhYnMKClR3byBraW5kcyBv ZiB0YWItbGlrZSBhY3Rpb24gYXJlIHByb3ZpZGVkIGluIFBpY3R1cmUgbW9kZS4gIFVzZQrigJhN LTxUQUI+4oCZICjigJhwaWN0dXJlLXRhYi1zZWFyY2jigJkpIGZvciBjb250ZXh0LWJhc2VkIHRh YmJpbmcuICBXaXRoIG5vCmFyZ3VtZW50LCBpdCBtb3ZlcyB0byBhIHBvaW50IHVuZGVybmVhdGgg dGhlIG5leHQg4oCcaW50ZXJlc3RpbmfigJ0KY2hhcmFjdGVyIHRoYXQgZm9sbG93cyB3aGl0ZXNw YWNlIGluIHRoZSBwcmV2aW91cyBub25ibGFuayBsaW5lLiAg4oCcTmV4dOKAnQpoZXJlIG1lYW5z IOKAnGFwcGVhcmluZyBhdCBhIGhvcml6b250YWwgcG9zaXRpb24gZ3JlYXRlciB0aGFuIHRoZSBv bmUKcG9pbnQgc3RhcnRzIG91dCBhdOKAnS4gIFdpdGggcHJlZml4IGFyZ3VtZW50LCBhcyBpbiDi gJhDLXUgTS08VEFCPuKAmSwgdGhpcwpjb21tYW5kIG1vdmVzIHRvIHRoZSBuZXh0IHN1Y2ggaW50 ZXJlc3RpbmcgY2hhcmFjdGVyIGluIHRoZSBjdXJyZW50CmxpbmUuICDigJhNLTxUQUI+4oCZIGRv ZXMgbm90IGNoYW5nZSB0aGUgdGV4dDsgaXQgb25seSBtb3ZlcyBwb2ludC4K4oCcSW50ZXJlc3Rp bmfigJ0gY2hhcmFjdGVycyBhcmUgZGVmaW5lZCBieSB0aGUgdmFyaWFibGUK4oCYcGljdHVyZS10 YWItY2hhcnPigJksIHdoaWNoIHNob3VsZCBkZWZpbmUgYSBzZXQgb2YgY2hhcmFjdGVycy4gIFRo ZQpzeW50YXggZm9yIHRoaXMgdmFyaWFibGUgaXMgbGlrZSB0aGUgc3ludGF4IHVzZWQgaW5zaWRl IG9mIOKAmFvigKZd4oCZIGluIGEKcmVndWxhciBleHByZXNzaW9u4oCUYnV0IHdpdGhvdXQgdGhl IOKAmFvigJkgYW5kIHRoZSDigJhd4oCZLiAgSXRzIGRlZmF1bHQgdmFsdWUKaXMg4oCYIiEtfiLi gJkuCgogICA8VEFCPiBpdHNlbGYgcnVucyDigJhwaWN0dXJlLXRhYuKAmSwgd2hpY2ggb3BlcmF0 ZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQKdGFiIHN0b3Agc2V0dGluZ3M7IGl0IGlzIHRoZSBQaWN0 dXJlIG1vZGUgZXF1aXZhbGVudCBvZgrigJh0YWItdG8tdGFiLXN0b3DigJkuICBOb3JtYWxseSBp dCBqdXN0IG1vdmVzIHBvaW50LCBidXQgd2l0aCBhIG51bWVyaWMKYXJndW1lbnQgaXQgY2xlYXJz IHRoZSB0ZXh0IHRoYXQgaXQgbW92ZXMgb3Zlci4KCiAgIFRoZSBjb250ZXh0LWJhc2VkIGFuZCB0 YWItc3RvcC1iYXNlZCBmb3JtcyBvZiB0YWJiaW5nIGFyZSBicm91Z2h0CnRvZ2V0aGVyIGJ5IHRo ZSBjb21tYW5kIOKAmEMtYyA8VEFCPuKAmSAo4oCYcGljdHVyZS1zZXQtdGFiLXN0b3Bz4oCZKS4g IFRoaXMKY29tbWFuZCBzZXRzIHRoZSB0YWIgc3RvcHMgdG8gdGhlIHBvc2l0aW9ucyB3aGljaCDi gJhNLTxUQUI+4oCZIHdvdWxkCmNvbnNpZGVyIHNpZ25pZmljYW50IGluIHRoZSBjdXJyZW50IGxp bmUuICBUaGUgdXNlIG9mIHRoaXMgY29tbWFuZCwKdG9nZXRoZXIgd2l0aCA8VEFCPiwgY2FuIGdl dCB0aGUgZWZmZWN0IG9mIGNvbnRleHQtYmFzZWQgdGFiYmluZy4gIEJ1dArigJhNLTxUQUI+4oCZ IGlzIG1vcmUgY29udmVuaWVudCBpbiB0aGUgY2FzZXMgd2hlcmUgaXQgaXMgc3VmZmljaWVudC4K CiAgIEl0IG1heSBiZSBjb252ZW5pZW50IHRvIHByZXZlbnQgdXNlIG9mIGFjdHVhbCB0YWIgY2hh cmFjdGVycyBpbgpwaWN0dXJlcy4gIEZvciBleGFtcGxlLCB0aGlzIHByZXZlbnRzIOKAmEMteCA8 VEFCPuKAmSBmcm9tIG1lc3NpbmcgdXAgdGhlCnBpY3R1cmUuICBZb3UgY2FuIGRvIHRoaXMgYnkg c2V0dGluZyB0aGUgdmFyaWFibGUg4oCYaW5kZW50LXRhYnMtbW9kZeKAmSB0bwrigJhuaWzigJku CgoKKiogNDIuNCBQaWN0dXJlIE1vZGUgUmVjdGFuZ2xlIENvbW1hbmRzCgpQaWN0dXJlIG1vZGUg ZGVmaW5lcyBjb21tYW5kcyBmb3Igd29ya2luZyBvbiByZWN0YW5ndWxhciBwaWVjZXMgb2YgdGhl CnRleHQgaW4gd2F5cyB0aGF0IGZpdCB3aXRoIHRoZSBxdWFydGVyLXBsYW5lIG1vZGVsLiAgVGhl IHN0YW5kYXJkCnJlY3RhbmdsZSBjb21tYW5kcyBtYXkgYWxzbyBiZSB1c2VmdWwuICAqTm90ZSBS ZWN0YW5nbGVzOjouCgrigJhDLWMgQy1r4oCZCiAgICAgQ2xlYXIgb3V0IHRoZSByZWdpb24tcmVj dGFuZ2xlIHdpdGggc3BhY2VzCiAgICAgKOKAmHBpY3R1cmUtY2xlYXItcmVjdGFuZ2xl4oCZKS4g IFdpdGggYSBwcmVmaXggYXJndW1lbnQsIGRlbGV0ZSB0aGUKICAgICB0ZXh0LgrigJhDLWMgQy13 IFLigJkKICAgICBTaW1pbGFyLCBidXQgc2F2ZSByZWN0YW5nbGUgY29udGVudHMgaW4gcmVnaXN0 ZXIgUiBmaXJzdAogICAgICjigJhwaWN0dXJlLWNsZWFyLXJlY3RhbmdsZS10by1yZWdpc3RlcuKA mSkuICAqTm90ZSBSZWdpc3RlcnM6Oi4KCuKAmEMtYyBDLXnigJkKICAgICBDb3B5IGxhc3Qga2ls bGVkIHJlY3RhbmdsZSBpbnRvIHRoZSBidWZmZXIgYnkgb3ZlcndyaXRpbmcsIHdpdGgKICAgICB1 cHBlciBsZWZ0IGNvcm5lciBhdCBwb2ludCAo4oCYcGljdHVyZS15YW5rLXJlY3RhbmdsZeKAmSku ICBXaXRoCiAgICAgYXJndW1lbnQsIGluc2VydCBpbnN0ZWFkLgrigJhDLWMgQy14IFLigJkKICAg ICBTaW1pbGFyLCBidXQgdXNlIHRoZSByZWN0YW5nbGUgaW4gcmVnaXN0ZXIgUgogICAgICjigJhw aWN0dXJlLXlhbmstcmVjdGFuZ2xlLWZyb20tcmVnaXN0ZXLigJkpLgoKICAgVGhlIHBpY3R1cmUg cmVjdGFuZ2xlIGNvbW1hbmRzIOKAmEMtYyBDLWvigJkgKOKAmHBpY3R1cmUtY2xlYXItcmVjdGFu Z2xl4oCZKQphbmQg4oCYQy1jIEMtd+KAmSAo4oCYcGljdHVyZS1jbGVhci1yZWN0YW5nbGUtdG8t cmVnaXN0ZXLigJkpIGRpZmZlciBmcm9tIHRoZQpzdGFuZGFyZCByZWN0YW5nbGUgY29tbWFuZHMg aW4gdGhhdCB0aGV5IG5vcm1hbGx5IGNsZWFyIHRoZSByZWN0YW5nbGUKaW5zdGVhZCBvZiBkZWxl dGluZyBpdDsgdGhpcyBpcyBhbmFsb2dvdXMgd2l0aCB0aGUgd2F5IOKAmEMtZOKAmSBpcyBjaGFu Z2VkCmluIFBpY3R1cmUgbW9kZS4KCiAgIEhvd2V2ZXIsIGRlbGV0aW9uIG9mIHJlY3RhbmdsZXMg Y2FuIGJlIHVzZWZ1bCBpbiBQaWN0dXJlIG1vZGUsIHNvCnRoZXNlIGNvbW1hbmRzIGRlbGV0ZSB0 aGUgcmVjdGFuZ2xlIGlmIGdpdmVuIGEgbnVtZXJpYyBhcmd1bWVudC4gIOKAmEMtYwpDLWvigJkg ZWl0aGVyIHdpdGggb3Igd2l0aG91dCBhIG51bWVyaWMgYXJndW1lbnQgc2F2ZXMgdGhlIHJlY3Rh bmdsZSBmb3IK4oCYQy1jIEMteeKAmS4KCiAgIFRoZSBQaWN0dXJlIG1vZGUgY29tbWFuZHMgZm9y IHlhbmtpbmcgcmVjdGFuZ2xlcyBkaWZmZXIgZnJvbSB0aGUKc3RhbmRhcmQgb25lcyBpbiB0aGF0 IHRoZXkgb3ZlcndyaXRlIGluc3RlYWQgb2YgaW5zZXJ0aW5nLiAgVGhpcyBpcyB0aGUKc2FtZSB3 YXkgdGhhdCBQaWN0dXJlIG1vZGUgaW5zZXJ0aW9uIG9mIG90aGVyIHRleHQgZGlmZmVycyBmcm9t IG90aGVyCm1vZGVzLiAg4oCYQy1jIEMteeKAmSAo4oCYcGljdHVyZS15YW5rLXJlY3RhbmdsZeKA mSkgaW5zZXJ0cyAoYnkgb3ZlcndyaXRpbmcpCnRoZSByZWN0YW5nbGUgdGhhdCB3YXMgbW9zdCBy ZWNlbnRseSBraWxsZWQsIHdoaWxlIOKAmEMtYyBDLXjigJkKKOKAmHBpY3R1cmUteWFuay1yZWN0 YW5nbGUtZnJvbS1yZWdpc3RlcuKAmSkgZG9lcyBsaWtld2lzZSBmb3IgdGhlIHJlY3RhbmdsZQpm b3VuZCBpbiBhIHNwZWNpZmllZCByZWdpc3Rlci4KCgoqIDQzIEVkaXRpbmcgQmluYXJ5IEZpbGVz CgpUaGVyZSBpcyBhIHNwZWNpYWwgbWFqb3IgbW9kZSBmb3IgZWRpdGluZyBiaW5hcnkgZmlsZXM6 IEhleGwgbW9kZS4gIFRvCnVzZSBpdCwgdXNlIOKAmE0teCBoZXhsLWZpbmQtZmlsZeKAmSBpbnN0 ZWFkIG9mIOKAmEMteCBDLWbigJkgdG8gdmlzaXQgdGhlIGZpbGUuClRoaXMgY29tbWFuZCBjb252 ZXJ0cyB0aGUgZmlsZeKAmXMgY29udGVudHMgdG8gaGV4YWRlY2ltYWwgYW5kIGxldHMgeW91CmVk aXQgdGhlIHRyYW5zbGF0aW9uLiAgV2hlbiB5b3Ugc2F2ZSB0aGUgZmlsZSwgaXQgaXMgY29udmVy dGVkCmF1dG9tYXRpY2FsbHkgYmFjayB0byBiaW5hcnkuCgogICBZb3UgY2FuIGFsc28gdXNlIOKA mE0teCBoZXhsLW1vZGXigJkgdG8gdHJhbnNsYXRlIGFuIGV4aXN0aW5nIGJ1ZmZlciBpbnRvCmhl eC4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB2aXNpdCBhIGZpbGUgbm9ybWFsbHkgYW5kIHRoZW4g ZGlzY292ZXIgaXQKaXMgYSBiaW5hcnkgZmlsZS4KCiAgIE9yZGluYXJ5IHRleHQgY2hhcmFjdGVy cyBvdmVyd3JpdGUgaW4gSGV4bCBtb2RlLiAgVGhpcyBpcyB0byByZWR1Y2UKdGhlIHJpc2sgb2Yg YWNjaWRlbnRhbGx5IHNwb2lsaW5nIHRoZSBhbGlnbm1lbnQgb2YgZGF0YSBpbiB0aGUgZmlsZS4K VGhlcmUgYXJlIHNwZWNpYWwgY29tbWFuZHMgZm9yIGluc2VydGlvbi4gIEhlcmUgaXMgYSBsaXN0 IG9mIHRoZQpjb21tYW5kcyBvZiBIZXhsIG1vZGU6CgrigJhDLU0tZOKAmQogICAgIEluc2VydCBh IGJ5dGUgd2l0aCBhIGNvZGUgdHlwZWQgaW4gZGVjaW1hbC4KCuKAmEMtTS1v4oCZCiAgICAgSW5z ZXJ0IGEgYnl0ZSB3aXRoIGEgY29kZSB0eXBlZCBpbiBvY3RhbC4KCuKAmEMtTS144oCZCiAgICAg SW5zZXJ0IGEgYnl0ZSB3aXRoIGEgY29kZSB0eXBlZCBpbiBoZXguCgrigJhDLXggW+KAmQogICAg IE1vdmUgdG8gdGhlIGJlZ2lubmluZyBvZiBhIDFrLWJ5dGUgcGFnZS4KCuKAmEMteCBd4oCZCiAg ICAgTW92ZSB0byB0aGUgZW5kIG9mIGEgMWstYnl0ZSBwYWdlLgoK4oCYTS1n4oCZCiAgICAgTW92 ZSB0byBhbiBhZGRyZXNzIHNwZWNpZmllZCBpbiBoZXguCgrigJhNLWrigJkKICAgICBNb3ZlIHRv IGFuIGFkZHJlc3Mgc3BlY2lmaWVkIGluIGRlY2ltYWwuCgrigJhDLWMgQy1j4oCZCiAgICAgTGVh dmUgSGV4bCBtb2RlLCBnb2luZyBiYWNrIHRvIHRoZSBtYWpvciBtb2RlIHRoaXMgYnVmZmVyIGhh ZAogICAgIGJlZm9yZSB5b3UgaW52b2tlZCDigJhoZXhsLW1vZGXigJkuCgpPdGhlciBIZXhsIGNv bW1hbmRzIGxldCB5b3UgaW5zZXJ0IHN0cmluZ3MgKHNlcXVlbmNlcykgb2YgYmluYXJ5IGJ5dGVz LAptb3ZlIGJ5IOKAmHNob3J04oCZcyBvciDigJhpbnTigJlzLCBldGMuOyB0eXBlIOKAmEMtaCBh IGhleGwtPFJFVD7igJkgZm9yIGRldGFpbHMuCgoKKiA0NCBTYXZpbmcgRW1hY3MgU2Vzc2lvbnMK ClVzZSB0aGUgZGVza3RvcCBsaWJyYXJ5IHRvIHNhdmUgdGhlIHN0YXRlIG9mIEVtYWNzIGZyb20g b25lIHNlc3Npb24gdG8KYW5vdGhlci4gIE9uY2UgeW91IHNhdmUgdGhlIEVtYWNzICJkZXNrdG9w IuKAlHRoZSBidWZmZXJzLCB0aGVpciBmaWxlCm5hbWVzLCBtYWpvciBtb2RlcywgYnVmZmVyIHBv c2l0aW9ucywgYW5kIHNvIG9u4oCUdGhlbiBzdWJzZXF1ZW50IEVtYWNzCnNlc3Npb25zIHJlbG9h ZCB0aGUgc2F2ZWQgZGVza3RvcC4gIEJ5IGRlZmF1bHQsIHRoZSBkZXNrdG9wIGFsc28gdHJpZXMK dG8gc2F2ZSB0aGUgZnJhbWUgYW5kIHdpbmRvdyBjb25maWd1cmF0aW9uLiAgVG8gZGlzYWJsZSB0 aGlzLCBzZXQK4oCYZGVza3RvcC1yZXN0b3JlLWZyYW1lc+KAmSB0byDigJhuaWzigJkuICAoU2Vl IHRoYXQgdmFyaWFibGXigJlzIGRvY3VtZW50YXRpb24KZm9yIHNvbWUgcmVsYXRlZCBvcHRpb25z IHRoYXQgeW91IGNhbiBjdXN0b21pemUgdG8gZmluZS10dW5lIHRoaXMKYmVoYXZpb3IuKQoKICAg SW5mb3JtYXRpb24gYWJvdXQgYnVmZmVycyB2aXNpdGluZyByZW1vdGUgZmlsZXMgaXMgbm90IHNh dmVkIGJ5CmRlZmF1bHQuICBDdXN0b21pemUgdGhlIHZhcmlhYmxlIOKAmGRlc2t0b3AtZmlsZXMt bm90LXRvLXNhdmXigJkgdG8gY2hhbmdlCnRoaXMuCgogICBXaGVuIHRoZSBkZXNrdG9wIHJlc3Rv cmVzIHRoZSBmcmFtZSBhbmQgd2luZG93IGNvbmZpZ3VyYXRpb24sIGl0IHVzZXMKdGhlIHJlY29y ZGVkIHZhbHVlcyBvZiBmcmFtZSBwYXJhbWV0ZXJzLCBkaXNyZWdhcmRpbmcgYW55IHNldHRpbmdz IGZvcgp0aG9zZSBwYXJhbWV0ZXJzIHlvdSBoYXZlIGluIHlvdXIgaW5pdCBmaWxlICgqbm90ZSBJ bml0IEZpbGU6OikuICBUaGlzCm1lYW5zIHRoYXQgZnJhbWUgcGFyYW1ldGVycyBzdWNoIGFzIGZv bnRzIGFuZCBmYWNlcyBmb3IgdGhlIHJlc3RvcmVkCmZyYW1lcyB3aWxsIGNvbWUgZnJvbSB0aGUg ZGVza3RvcCBmaWxlLCB3aGVyZSB0aGV5IHdlcmUgc2F2ZWQgd2hlbiB5b3UKZXhpdGVkIHlvdXIg cHJldmlvdXMgRW1hY3Mgc2Vzc2lvbjsgYW55IHNldHRpbmdzIGZvciB0aG9zZSBwYXJhbWV0ZXJz IGluCnlvdXIgaW5pdCBmaWxlIHdpbGwgYmUgaWdub3JlZC4gIFRvIGRpc2FibGUgdGhpcywgY3Vz dG9taXplIHRoZSB2YWx1ZSBvZgrigJhmcmFtZXNldC1maWx0ZXItYWxpc3TigJkgdG8gZmlsdGVy IG91dCB0aGUgZnJhbWUgcGFyYW1ldGVycyB5b3UgZG9u4oCZdAp3YW50IHRvIGJlIHJlc3RvcmVk LgoKICAgWW91IGNhbiBzYXZlIHRoZSBkZXNrdG9wIG1hbnVhbGx5IHdpdGggdGhlIGNvbW1hbmQg 4oCYTS14CmRlc2t0b3Atc2F2ZeKAmS4gIFlvdSBjYW4gYWxzbyBlbmFibGUgYXV0b21hdGljIHNh dmluZyBvZiB0aGUgZGVza3RvcCB3aGVuCnlvdSBleGl0IEVtYWNzLCBhbmQgYXV0b21hdGljIHJl c3RvcmF0aW9uIG9mIHRoZSBsYXN0IHNhdmVkIGRlc2t0b3Agd2hlbgpFbWFjcyBzdGFydHM6IHVz ZSB0aGUgQ3VzdG9taXphdGlvbiBidWZmZXIgKCpub3RlIEVhc3kgQ3VzdG9taXphdGlvbjo6KQp0 byBzZXQg4oCYZGVza3RvcC1zYXZlLW1vZGXigJkgdG8g4oCYdOKAmSBmb3IgZnV0dXJlIHNlc3Np b25zLCBvciBhZGQgdGhpcyBsaW5lCmluIHlvdXIgaW5pdCBmaWxlICgqbm90ZSBJbml0IEZpbGU6 Oik6CgogICAgIChkZXNrdG9wLXNhdmUtbW9kZSAxKQoKICAgSWYgeW91IHR1cm4gb24g4oCYZGVz a3RvcC1zYXZlLW1vZGXigJkgaW4geW91ciBpbml0IGZpbGUsIHRoZW4gd2hlbiBFbWFjcwpzdGFy dHMsIGl0IGxvb2tzIGZvciBhIHNhdmVkIGRlc2t0b3AgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5 LiAgKE1vcmUKcHJlY2lzZWx5LCBpdCBsb29rcyBpbiB0aGUgZGlyZWN0b3JpZXMgc3BlY2lmaWVk IGJ5IOKAmGRlc2t0b3AtcGF0aOKAmSwgYW5kCnVzZXMgdGhlIGZpcnN0IGRlc2t0b3AgaXQgZmlu ZHMuKSAgVGh1cywgeW91IGNhbiBoYXZlIHNlcGFyYXRlIHNhdmVkCmRlc2t0b3BzIGluIGRpZmZl cmVudCBkaXJlY3RvcmllcywgYW5kIHRoZSBzdGFydGluZyBkaXJlY3RvcnkgZGV0ZXJtaW5lcwp3 aGljaCBvbmUgRW1hY3MgcmVsb2Fkcy4gIFlvdSBjYW4gc2F2ZSB0aGUgY3VycmVudCBkZXNrdG9w IGFuZCByZWxvYWQKb25lIHNhdmVkIGluIGFub3RoZXIgZGlyZWN0b3J5IGJ5IHR5cGluZyDigJhN LXggZGVza3RvcC1jaGFuZ2UtZGly4oCZLgpUeXBpbmcg4oCYTS14IGRlc2t0b3AtcmV2ZXJ04oCZ IHJldmVydHMgdG8gdGhlIGRlc2t0b3AgcHJldmlvdXNseSByZWxvYWRlZC4KCiAgIFNwZWNpZnkg dGhlIG9wdGlvbiDigJgtLW5vLWRlc2t0b3DigJkgb24gdGhlIGNvbW1hbmQgbGluZSB3aGVuIHlv dSBkb27igJl0CndhbnQgaXQgdG8gcmVsb2FkIGFueSBzYXZlZCBkZXNrdG9wLiAgVGhpcyB0dXJu cyBvZmYg4oCYZGVza3RvcC1zYXZlLW1vZGXigJkKZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uICBT dGFydGluZyBFbWFjcyB3aXRoIHRoZSDigJgtLW5vLWluaXQtZmlsZeKAmQpvcHRpb24gYWxzbyBk aXNhYmxlcyBkZXNrdG9wIHJlbG9hZGluZywgc2luY2UgaXQgYnlwYXNzZXMgdGhlIGluaXQgZmls ZSwKd2hlcmUg4oCYZGVza3RvcC1zYXZlLW1vZGXigJkgaXMgdXN1YWxseSB0dXJuZWQgb24uCgog ICBCeSBkZWZhdWx0LCBhbGwgdGhlIGJ1ZmZlcnMgaW4gdGhlIGRlc2t0b3AgYXJlIHJlc3RvcmVk IGluIG9uZSBnby4KSG93ZXZlciwgdGhpcyBtYXkgYmUgc2xvdyBpZiB0aGVyZSBhcmUgYSBsb3Qg b2YgYnVmZmVycyBpbiB0aGUgZGVza3RvcC4KWW91IGNhbiBzcGVjaWZ5IHRoZSBtYXhpbXVtIG51 bWJlciBvZiBidWZmZXJzIHRvIHJlc3RvcmUgaW1tZWRpYXRlbHkKd2l0aCB0aGUgdmFyaWFibGUg 4oCYZGVza3RvcC1yZXN0b3JlLWVhZ2Vy4oCZOyB0aGUgcmVtYWluaW5nIGJ1ZmZlcnMgYXJlCnJl c3RvcmVkIGxhemlseSwgd2hlbiBFbWFjcyBpcyBpZGxlLgoKICAgVHlwZSDigJhNLXggZGVza3Rv cC1jbGVhcuKAmSB0byBlbXB0eSB0aGUgRW1hY3MgZGVza3RvcC4gIFRoaXMga2lsbHMgYWxsCmJ1 ZmZlcnMgZXhjZXB0IGZvciBpbnRlcm5hbCBvbmVzLCBhbmQgY2xlYXJzIHRoZSBnbG9iYWwgdmFy aWFibGVzIGxpc3RlZAppbiDigJhkZXNrdG9wLWdsb2JhbHMtdG8tY2xlYXLigJkuICBJZiB5b3Ug d2FudCB0aGlzIHRvIHByZXNlcnZlIGNlcnRhaW4KYnVmZmVycywgY3VzdG9taXplIHRoZSB2YXJp YWJsZSDigJhkZXNrdG9wLWNsZWFyLXByZXNlcnZlLWJ1ZmZlcnMtcmVnZXhw4oCZLAp3aG9zZSB2 YWx1ZSBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZyB0aGUgbmFtZXMgb2YgYnVmZmVy cyBub3QgdG8Ka2lsbC4KCiAgIElmIHlvdSB3YW50IHRvIHNhdmUgbWluaWJ1ZmZlciBoaXN0b3J5 IGZyb20gb25lIHNlc3Npb24gdG8gYW5vdGhlciwKdXNlIHRoZSDigJhzYXZlaGlzdOKAmSBsaWJy YXJ5LgoKICAgV2hpbGUgRW1hY3MgcnVucyB3aXRoIOKAmGRlc2t0b3Atc2F2ZS1tb2Rl4oCZIHR1 cm5lZCBvbiwgaXQgYnkgZGVmYXVsdAphdXRvLXNhdmVzIHRoZSBkZXNrdG9wIHdoZW5ldmVyIGFu eSBvZiBpdCBjaGFuZ2VzLiAgVGhlIHZhcmlhYmxlCuKAmGRlc2t0b3AtYXV0by1zYXZlLXRpbWVv dXTigJkgZGV0ZXJtaW5lcyBob3cgZnJlcXVlbnRseSBFbWFjcyBjaGVja3MgZm9yCm1vZGlmaWNh dGlvbnMgdG8geW91ciBkZXNrdG9wLgoKICAgVGhlIGZpbGUgaW4gd2hpY2ggRW1hY3Mgc2F2ZXMg dGhlIGRlc2t0b3AgaXMgbG9ja2VkIHdoaWxlIHRoZSBzZXNzaW9uCnJ1bnMsIHRvIGF2b2lkIGlu YWR2ZXJ0ZW50bHkgb3ZlcndyaXRpbmcgaXQgZnJvbSBhbm90aGVyIEVtYWNzIHNlc3Npb24uClRo YXQgbG9jayBpcyBub3JtYWxseSByZW1vdmVkIHdoZW4gRW1hY3MgZXhpdHMsIGJ1dCBpZiBFbWFj cyBvciB5b3VyCnN5c3RlbSBjcmFzaGVzLCB0aGUgbG9jayBzdGF5cywgYW5kIHdoZW4geW91IHJl c3RhcnQgRW1hY3MsIGl0IHdpbGwgYnkKZGVmYXVsdCBhc2sgeW91IHdoZXRoZXIgdG8gdXNlIHRo ZSBsb2NrZWQgZGVza3RvcCBmaWxlLiAgWW91IGNhbiBhdm9pZAp0aGUgcXVlc3Rpb24gYnkgY3Vz dG9taXppbmcgdGhlIHZhcmlhYmxlIOKAmGRlc2t0b3AtbG9hZC1sb2NrZWQtZGVza3RvcOKAmQp0 byBlaXRoZXIg4oCYbmls4oCZLCB3aGljaCBtZWFucyBuZXZlciBsb2FkIHRoZSBkZXNrdG9wIGlu IHRoaXMgY2FzZSwgb3IK4oCYdOKAmSwgd2hpY2ggbWVhbnMgbG9hZCB0aGUgZGVza3RvcCB3aXRo b3V0IGFza2luZy4KCiAgIFdoZW4gRW1hY3Mgc3RhcnRzIGluIGRhZW1vbiBtb2RlLCBpdCBjYW5u b3QgYXNrIHlvdSBhbnkgcXVlc3Rpb25zLCBzbwppZiBpdCBmaW5kcyB0aGUgZGVza3RvcCBmaWxl IGxvY2tlZCwgaXQgd2lsbCBub3QgbG9hZCBpdCwgdW5sZXNzCuKAmGRlc2t0b3AtbG9hZC1sb2Nr ZWQtZGVza3RvcOKAmSBpcyDigJh04oCZLiAgTm90ZSB0aGF0IHJlc3RvcmluZyB0aGUgZGVza3Rv cAppbiBkYWVtb24gbW9kZSBpcyBzb21ld2hhdCBwcm9ibGVtYXRpYyBmb3Igb3RoZXIgcmVhc29u czogZS5nLiwgdGhlCmRhZW1vbiBjYW5ub3QgdXNlIEdVSSBmZWF0dXJlcywgc28gcGFyYW1ldGVy cyBzdWNoIGFzIGZyYW1lIHBvc2l0aW9uLApzaXplLCBhbmQgZGVjb3JhdGlvbnMgY2Fubm90IGJl IHJlc3RvcmVkLiAgRm9yIHRoYXQgcmVhc29uLCB5b3UgbWF5IHdpc2gKdG8gZGVsYXkgcmVzdG9y aW5nIHRoZSBkZXNrdG9wIGluIGRhZW1vbiBtb2RlIHVudGlsIHRoZSBmaXJzdCBjbGllbnQKY29u bmVjdHMsIGJ5IGNhbGxpbmcg4oCYZGVza3RvcC1yZWFk4oCZIGluIGEgaG9vayBmdW5jdGlvbiB0 aGF0IHlvdSBhZGQgdG8K4oCYYWZ0ZXItbWFrZS1mcmFtZS1mdW5jdGlvbnPigJkgKCpub3RlIChl bGlzcClDcmVhdGluZyBGcmFtZXM6OikuCgoKKiA0NSBSZWN1cnNpdmUgRWRpdGluZyBMZXZlbHMK CkEgInJlY3Vyc2l2ZSBlZGl0IiBpcyBhIHNpdHVhdGlvbiBpbiB3aGljaCB5b3UgYXJlIHVzaW5n IEVtYWNzIGNvbW1hbmRzCnRvIHBlcmZvcm0gYXJiaXRyYXJ5IGVkaXRpbmcgd2hpbGUgaW4gdGhl IG1pZGRsZSBvZiBhbm90aGVyIEVtYWNzCmNvbW1hbmQuICBGb3IgZXhhbXBsZSwgd2hlbiB5b3Ug dHlwZSDigJhDLXLigJkgaW5zaWRlIG9mIGEg4oCYcXVlcnktcmVwbGFjZeKAmSwKeW91IGVudGVy IGEgcmVjdXJzaXZlIGVkaXQgaW4gd2hpY2ggeW91IGNhbiBjaGFuZ2UgdGhlIGN1cnJlbnQgYnVm ZmVyLgpPbiBleGl0aW5nIGZyb20gdGhlIHJlY3Vyc2l2ZSBlZGl0LCB5b3UgZ28gYmFjayB0byB0 aGUg4oCYcXVlcnktcmVwbGFjZeKAmS4KKk5vdGUgUXVlcnkgUmVwbGFjZTo6LgoKICAgIkV4aXRp bmciIHRoZSByZWN1cnNpdmUgZWRpdCBtZWFucyByZXR1cm5pbmcgdG8gdGhlIHVuZmluaXNoZWQK Y29tbWFuZCwgd2hpY2ggY29udGludWVzIGV4ZWN1dGlvbi4gIFRoZSBjb21tYW5kIHRvIGV4aXQg aXMg4oCYQy1NLWPigJkKKOKAmGV4aXQtcmVjdXJzaXZlLWVkaXTigJkpLgoKICAgWW91IGNhbiBh bHNvICJhYm9ydCIgdGhlIHJlY3Vyc2l2ZSBlZGl0LiAgVGhpcyBpcyBsaWtlIGV4aXRpbmcsIGJ1 dAphbHNvIHF1aXRzIHRoZSB1bmZpbmlzaGVkIGNvbW1hbmQgaW1tZWRpYXRlbHkuICBVc2UgdGhl IGNvbW1hbmQg4oCYQy1d4oCZCijigJhhYm9ydC1yZWN1cnNpdmUtZWRpdOKAmSkgdG8gZG8gdGhp cy4gICpOb3RlIFF1aXR0aW5nOjouCgogICBUaGUgbW9kZSBsaW5lIHNob3dzIHlvdSB3aGVuIHlv dSBhcmUgaW4gYSByZWN1cnNpdmUgZWRpdCBieQpkaXNwbGF5aW5nIHNxdWFyZSBicmFja2V0cyBh cm91bmQgdGhlIHBhcmVudGhlc2VzIHRoYXQgYWx3YXlzIHN1cnJvdW5kCnRoZSBtYWpvciBhbmQg bWlub3IgbW9kZSBuYW1lcy4gIEV2ZXJ5IHdpbmRvd+KAmXMgbW9kZSBsaW5lIHNob3dzIHRoaXMg aW4KdGhlIHNhbWUgd2F5LCBzaW5jZSBiZWluZyBpbiBhIHJlY3Vyc2l2ZSBlZGl0IGlzIHRydWUg b2YgRW1hY3MgYXMgYQp3aG9sZSByYXRoZXIgdGhhbiBhbnkgcGFydGljdWxhciB3aW5kb3cgb3Ig YnVmZmVyLgoKICAgSXQgaXMgcG9zc2libGUgdG8gYmUgaW4gcmVjdXJzaXZlIGVkaXRzIHdpdGhp biByZWN1cnNpdmUgZWRpdHMuICBGb3IKZXhhbXBsZSwgYWZ0ZXIgdHlwaW5nIOKAmEMtcuKAmSBp biBhIOKAmHF1ZXJ5LXJlcGxhY2XigJksIHlvdSBtYXkgdHlwZSBhIGNvbW1hbmQKdGhhdCBlbnRl cnMgdGhlIGRlYnVnZ2VyLiAgVGhpcyBiZWdpbnMgYSByZWN1cnNpdmUgZWRpdGluZyBsZXZlbCBm b3IgdGhlCmRlYnVnZ2VyLCB3aXRoaW4gdGhlIHJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVsIGZvciDi gJhDLXLigJkuICBNb2RlIGxpbmVzCmRpc3BsYXkgYSBwYWlyIG9mIHNxdWFyZSBicmFja2V0cyBm b3IgZWFjaCByZWN1cnNpdmUgZWRpdGluZyBsZXZlbApjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuCgog ICBFeGl0aW5nIHRoZSBpbm5lciByZWN1cnNpdmUgZWRpdCAoc3VjaCBhcyB3aXRoIHRoZSBkZWJ1 Z2dlciDigJhj4oCZCmNvbW1hbmQpIHJlc3VtZXMgdGhlIGNvbW1hbmQgcnVubmluZyBpbiB0aGUg bmV4dCBsZXZlbCB1cC4gIFdoZW4gdGhhdApjb21tYW5kIGZpbmlzaGVzLCB5b3UgY2FuIHRoZW4g dXNlIOKAmEMtTS1j4oCZIHRvIGV4aXQgYW5vdGhlciByZWN1cnNpdmUKZWRpdGluZyBsZXZlbCwg YW5kIHNvIG9uLiAgRXhpdGluZyBhcHBsaWVzIHRvIHRoZSBpbm5lcm1vc3QgbGV2ZWwgb25seS4K QWJvcnRpbmcgYWxzbyBnZXRzIG91dCBvZiBvbmx5IG9uZSBsZXZlbCBvZiByZWN1cnNpdmUgZWRp dDsgaXQgcmV0dXJucwppbW1lZGlhdGVseSB0byB0aGUgY29tbWFuZCBsZXZlbCBvZiB0aGUgcHJl dmlvdXMgcmVjdXJzaXZlIGVkaXQuICBJZiB5b3UKd2lzaCwgeW91IGNhbiB0aGVuIGFib3J0IHRo ZSBuZXh0IHJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVsLgoKICAgQWx0ZXJuYXRpdmVseSwgdGhlIGNv bW1hbmQg4oCYTS14IHRvcC1sZXZlbOKAmSBhYm9ydHMgYWxsIGxldmVscyBvZgpyZWN1cnNpdmUg ZWRpdHMsIHJldHVybmluZyBpbW1lZGlhdGVseSB0byB0aGUgdG9wLWxldmVsIGNvbW1hbmQgcmVh ZGVyLgpJdCBhbHNvIGV4aXRzIHRoZSBtaW5pYnVmZmVyLCBpZiBpdCBpcyBhY3RpdmUuCgogICBU aGUgdGV4dCBiZWluZyBlZGl0ZWQgaW5zaWRlIHRoZSByZWN1cnNpdmUgZWRpdCBuZWVkIG5vdCBi ZSB0aGUgc2FtZQp0ZXh0IHRoYXQgeW91IHdlcmUgZWRpdGluZyBhdCB0b3AgbGV2ZWwuICBJdCBk ZXBlbmRzIG9uIHdoYXQgdGhlCnJlY3Vyc2l2ZSBlZGl0IGlzIGZvci4gIElmIHRoZSBjb21tYW5k IHRoYXQgaW52b2tlcyB0aGUgcmVjdXJzaXZlIGVkaXQKc2VsZWN0cyBhIGRpZmZlcmVudCBidWZm ZXIgZmlyc3QsIHRoYXQgaXMgdGhlIGJ1ZmZlciB5b3Ugd2lsbCBlZGl0CnJlY3Vyc2l2ZWx5LiAg SW4gYW55IGNhc2UsIHlvdSBjYW4gc3dpdGNoIGJ1ZmZlcnMgd2l0aGluIHRoZSByZWN1cnNpdmUK ZWRpdCBpbiB0aGUgbm9ybWFsIG1hbm5lciAoYXMgbG9uZyBhcyB0aGUgYnVmZmVyLXN3aXRjaGlu ZyBrZXlzIGhhdmUgbm90CmJlZW4gcmVib3VuZCkuICBZb3UgY291bGQgcHJvYmFibHkgZG8gYWxs IHRoZSByZXN0IG9mIHlvdXIgZWRpdGluZwppbnNpZGUgdGhlIHJlY3Vyc2l2ZSBlZGl0LCB2aXNp dGluZyBmaWxlcyBhbmQgYWxsLiAgQnV0IHRoaXMgY291bGQgaGF2ZQpzdXJwcmlzaW5nIGVmZmVj dHMgKHN1Y2ggYXMgc3RhY2sgb3ZlcmZsb3cpIGZyb20gdGltZSB0byB0aW1lLiAgU28KcmVtZW1i ZXIgdG8gZXhpdCBvciBhYm9ydCB0aGUgcmVjdXJzaXZlIGVkaXQgd2hlbiB5b3Ugbm8gbG9uZ2Vy IG5lZWQgaXQuCgogICBJbiBnZW5lcmFsLCB3ZSB0cnkgdG8gbWluaW1pemUgdGhlIHVzZSBvZiBy ZWN1cnNpdmUgZWRpdGluZyBsZXZlbHMgaW4KR05VIEVtYWNzLiAgVGhpcyBpcyBiZWNhdXNlIHRo ZXkgY29uc3RyYWluIHlvdSB0byBnbyBiYWNrIGluIGEKcGFydGljdWxhciBvcmRlcuKAlGZyb20g dGhlIGlubmVybW9zdCBsZXZlbCB0b3dhcmQgdGhlIHRvcCBsZXZlbC4gIFdoZW4KcG9zc2libGUs IHdlIHByZXNlbnQgZGlmZmVyZW50IGFjdGl2aXRpZXMgaW4gc2VwYXJhdGUgYnVmZmVycyBzbyB0 aGF0CnlvdSBjYW4gc3dpdGNoIGJldHdlZW4gdGhlbSBhcyB5b3UgcGxlYXNlLiAgU29tZSBjb21t YW5kcyBzd2l0Y2ggdG8gYQpuZXcgbWFqb3IgbW9kZSB3aGljaCBwcm92aWRlcyBhIGNvbW1hbmQg dG8gc3dpdGNoIGJhY2suICBUaGVzZQphcHByb2FjaGVzIGdpdmUgeW91IG1vcmUgZmxleGliaWxp dHkgdG8gZ28gYmFjayB0byB1bmZpbmlzaGVkIHRhc2tzIGluCnRoZSBvcmRlciB5b3UgY2hvb3Nl LgoKCiogNDYgSHlwZXJsaW5raW5nIGFuZCBXZWIgTmF2aWdhdGlvbiBGZWF0dXJlcwoKVGhlIGZv bGxvd2luZyBzdWJzZWN0aW9ucyBkZXNjcmliZSBjb252ZW5pZW5jZSBmZWF0dXJlcyBmb3IgaGFu ZGxpbmcKVVJMcyBhbmQgb3RoZXIgdHlwZXMgb2YgbGlua3Mgb2NjdXJyaW5nIGluIEVtYWNzIGJ1 ZmZlciB0ZXh0LgoKKyBNZW51OgoKICAtIEVXVzo6ICAgICAgICAgICAgICAgICAgICAgICAgIEEg d2ViIGJyb3dzZXIgaW4gRW1hY3MuCiAgLSBFbWJlZGRlZCBXZWJLaXQgV2lkZ2V0czo6ICAgICBF bWJlZGRpbmcgYnJvd3NlciB3aWRnZXRzIGluIEVtYWNzIGJ1ZmZlcnMuCiAgLSBCcm93c2UtVVJM OjogICAgICAgICAgICAgICAgICBGb2xsb3dpbmcgVVJMcy4KICAtIEdvdG8gQWRkcmVzcyBtb2Rl OjogICAgICAgICAgIEFjdGl2YXRpbmcgVVJMcy4KICAtIEZGQVA6OiAgICAgICAgICAgICAgICAg ICAgICAgIEZpbmRpbmcgZmlsZXMgZXRjLiBhdCBwb2ludC4KCgoqKiA0Ni4xIFdlYiBCcm93c2lu ZyB3aXRoIEVXVwoKIkVXVyIsIHRoZSBFbWFjcyBXZWIgV293c2VyLCBpcyBhIHdlYiBicm93c2Vy IHBhY2thZ2UgZm9yIEVtYWNzLiAgSXQKYWxsb3dzIGJyb3dzaW5nIFVSTHMgd2l0aGluIGFuIEVt YWNzIGJ1ZmZlci4gIFRoZSBjb21tYW5kIOKAmE0teCBld3figJkgd2lsbApvcGVuIGEgVVJMIG9y IHNlYXJjaCB0aGUgd2ViLiAgWW91IGNhbiBvcGVuIGEgZmlsZSB1c2luZyB0aGUgY29tbWFuZAri gJhNLXggZXd3LW9wZW4tZmlsZeKAmS4gIFlvdSBjYW4gdXNlIEVXVyBhcyB0aGUgd2ViIGJyb3dz ZXIgZm9yCuKAmGJyb3dzZS11cmzigJksICpub3RlIEJyb3dzZS1VUkw6Oi4gIEZvciBmdWxsIGRl dGFpbHMsICpub3RlIEVXVzoKKGV3dylUb3AuCgoKKiogNDYuMiBFbWJlZGRlZCBXZWJLaXQgV2lk Z2V0cwoKSWYgRW1hY3Mgd2FzIGNvbXBpbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHN1cHBvcnQg cGFja2FnZXMsIGl0IGlzIGFibGUKdG8gc2hvdyBicm93c2VyIHdpZGdldHMgaW4gaXRzIGJ1ZmZl cnMuICBUaGUgY29tbWFuZCDigJhNLXgKeHdpZGdldC13ZWJraXQtYnJvd3NlLXVybOKAmSBhc2tz IGZvciBhIFVSTCB0byBkaXNwbGF5IGluIHRoZSBicm93c2VyCndpZGdldC4gIFRoZSBVUkwgbm9y bWFsbHkgZGVmYXVsdHMgdG8gdGhlIFVSTCBhdCBvciBiZWZvcmUgcG9pbnQsIGJ1dCBpZgp0aGVy ZSBpcyBhbiBhY3RpdmUgcmVnaW9uICgqbm90ZSBNYXJrOjopLCB0aGUgZGVmYXVsdCBVUkwgY29t ZXMgZnJvbSB0aGUKcmVnaW9uIGluc3RlYWQsIGFmdGVyIHJlbW92aW5nIGFueSB3aGl0ZXNwYWNl IGZyb20gaXQuICBUaGUgY29tbWFuZCB0aGVuCmNyZWF0ZXMgYSBuZXcgYnVmZmVyIHdpdGggdGhl IGVtYmVkZGVkIGJyb3dzZXIgc2hvd2luZyB0aGUgc3BlY2lmaWVkClVSTC4gVGhlIGJ1ZmZlciBp cyBwdXQgaW4gdGhlIFh3aWRnZXQtV2ViS2l0IG1vZGUgKHNpbWlsYXIgdG8gSW1hZ2UKbW9kZSwg Km5vdGUgRmlsZSBDb252ZW5pZW5jZXM6OiksIHdoaWNoIHByb3ZpZGVzIG9uZS1rZXkgY29tbWFu ZHMgZm9yCnNjcm9sbGluZyB0aGUgd2lkZ2V0LCBjaGFuZ2luZyBpdHMgc2l6ZSwgYW5kIHJlbG9h ZGluZyBpdC4gIFR5cGUg4oCYQy1oIGLigJkKaW4gdGhhdCBidWZmZXIgdG8gc2VlIHRoZSBrZXkg YmluZGluZ3MuCgoKKiogNDYuMyBGb2xsb3dpbmcgVVJMcwoK4oCYTS14IGJyb3dzZS11cmwgPFJF VD4gVVJMIDxSRVQ+4oCZCiAgICAgTG9hZCBhIFVSTCBpbnRvIGEgV2ViIGJyb3dzZXIuCgogICBU aGUgQnJvd3NlLVVSTCBwYWNrYWdlIGFsbG93cyB5b3UgdG8gZWFzaWx5IGZvbGxvdyBVUkxzIGZy b20gd2l0aGluCkVtYWNzLiAgTW9zdCBVUkxzIGFyZSBmb2xsb3dlZCBieSBpbnZva2luZyBhIHdl YiBicm93c2VyOyDigJhtYWlsdG864oCZIFVSTHMKYXJlIGZvbGxvd2VkIGJ5IGludm9raW5nIHRo ZSDigJhjb21wb3NlLW1haWzigJkgRW1hY3MgY29tbWFuZCB0byBzZW5kIG1haWwKdG8gdGhlIHNw ZWNpZmllZCBhZGRyZXNzICgqbm90ZSBTZW5kaW5nIE1haWw6OikuCgogICBUaGUgY29tbWFuZCDi gJhNLXggYnJvd3NlLXVybOKAmSBwcm9tcHRzIGZvciBhIFVSTCwgYW5kIGZvbGxvd3MgaXQuICBJ Zgpwb2ludCBpcyBsb2NhdGVkIG5lYXIgYSBwbGF1c2libGUgVVJMLCB0aGF0IFVSTCBpcyBvZmZl cmVkIGFzIHRoZQpkZWZhdWx0LiAgVGhlIEJyb3dzZS1VUkwgcGFja2FnZSBhbHNvIHByb3ZpZGVz IG90aGVyIGNvbW1hbmRzIHdoaWNoIHlvdQptaWdodCBsaWtlIHRvIGJpbmQgdG8ga2V5cywgc3Vj aCBhcyDigJhicm93c2UtdXJsLWF0LXBvaW504oCZIGFuZArigJhicm93c2UtdXJsLWF0LW1vdXNl 4oCZLgoKICAgWW91IGNhbiBjdXN0b21pemUgQnJvd3NlLVVSTOKAmXMgYmVoYXZpb3IgdmlhIHZh cmlvdXMgb3B0aW9ucyBpbiB0aGUK4oCYYnJvd3NlLXVybOKAmSBDdXN0b21pemUgZ3JvdXAuICBJ biBwYXJ0aWN1bGFyLCB0aGUgb3B0aW9uCuKAmGJyb3dzZS11cmwtbWFpbHRvLWZ1bmN0aW9u4oCZ IGxldHMgeW91IGRlZmluZSBob3cgdG8gZm9sbG93IOKAmG1haWx0bzrigJkKVVJMcywgd2hpbGUg 4oCYYnJvd3NlLXVybC1icm93c2VyLWZ1bmN0aW9u4oCZIGxldHMgeW91IGRlZmluZSBob3cgdG8g Zm9sbG93Cm90aGVyIHR5cGVzIG9mIFVSTHMuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgdmlldyB0 aGUgcGFja2FnZSBjb21tZW50YXJ5CmJ5IHR5cGluZyDigJhDLWggUCBicm93c2UtdXJsIDxSRVQ+ 4oCZLgoKCioqIDQ2LjQgQWN0aXZhdGluZyBVUkxzCgrigJhNLXggZ290by1hZGRyZXNzLW1vZGXi gJkKICAgICBBY3RpdmF0ZSBVUkxzIGFuZCBlLW1haWwgYWRkcmVzc2VzIGluIHRoZSBjdXJyZW50 IGJ1ZmZlci4KCiAgIFlvdSBjYW4gbWFrZSBFbWFjcyBtYXJrIG91dCBVUkxzIHNwZWNpYWxseSBp biB0aGUgY3VycmVudCBidWZmZXIsIGJ5CnR5cGluZyDigJhNLXggZ290by1hZGRyZXNzLW1vZGXi gJkuICBXaGVuIHRoaXMgYnVmZmVyLWxvY2FsIG1pbm9yIG1vZGUgaXMKZW5hYmxlZCwgaXQgZmlu ZHMgYWxsIHRoZSBVUkxzIGluIHRoZSBidWZmZXIsIGhpZ2hsaWdodHMgdGhlbSwgYW5kIHR1cm5z CnRoZW0gaW50byBjbGlja2FibGUgYnV0dG9ucy4gIFlvdSBjYW4gZm9sbG93IHRoZSBVUkwgYnkg dHlwaW5nIOKAmEMtYwo8UkVUPuKAmSAo4oCYZ290by1hZGRyZXNzLWF0LXBvaW504oCZKSB3aGls ZSBwb2ludCBpcyBvbiBpdHMgdGV4dDsgb3IgYnkKY2xpY2tpbmcgd2l0aCDigJhtb3VzZS0y4oCZ LCBvciBieSBjbGlja2luZyDigJhtb3VzZS0x4oCZIHF1aWNrbHkgKCpub3RlIE1vdXNlClJlZmVy ZW5jZXM6OikuICBGb2xsb3dpbmcgYSBVUkwgaXMgZG9uZSBieSBjYWxsaW5nIOKAmGJyb3dzZS11 cmzigJkgYXMgYQpzdWJyb3V0aW5lICgqbm90ZSBCcm93c2UtVVJMOjopLgoKICAgSXQgY2FuIGJl IHVzZWZ1bCB0byBhZGQg4oCYZ290by1hZGRyZXNzLW1vZGXigJkgdG8gbW9kZSBob29rcyBhbmQg aG9va3MKZm9yIGRpc3BsYXlpbmcgYW4gaW5jb21pbmcgbWVzc2FnZSAoZS5nLiwg4oCYcm1haWwt c2hvdy1tZXNzYWdlLWhvb2vigJkgZm9yClJtYWlsLCBhbmQg4oCYbWgtc2hvdy1tb2RlLWhvb2vi gJkgZm9yIE1ILUUpLiBUaGlzIGlzIG5vdCBuZWVkZWQgZm9yIEdudXMsCndoaWNoIGhhcyBhIHNp bWlsYXIgZmVhdHVyZSBvZiBpdHMgb3duLgoKCioqIDQ2LjUgRmluZGluZyBGaWxlcyBhbmQgVVJM cyBhdCBQb2ludAoKVGhlIEZGQVAgcGFja2FnZSByZXBsYWNlcyBjZXJ0YWluIGtleSBiaW5kaW5n cyBmb3IgZmluZGluZyBmaWxlcywgc3VjaAphcyDigJhDLXggQy1m4oCZLCB3aXRoIGNvbW1hbmRz IHRoYXQgcHJvdmlkZSBtb3JlIHNlbnNpYmxlIGRlZmF1bHRzLiAgVGhlc2UKY29tbWFuZHMgYmVo YXZlIGxpa2UgdGhlIG9yZGluYXJ5IG9uZXMgd2hlbiBnaXZlbiBhIHByZWZpeCBhcmd1bWVudC4K T3RoZXJ3aXNlLCB0aGV5IGdldCB0aGUgZGVmYXVsdCBmaWxlIG5hbWUgb3IgVVJMIGZyb20gdGhl IHRleHQgYXJvdW5kCnBvaW50LiAgSWYgd2hhdCBpcyBmb3VuZCBpbiB0aGUgYnVmZmVyIGhhcyB0 aGUgZm9ybSBvZiBhIFVSTCByYXRoZXIgdGhhbgphIGZpbGUgbmFtZSwgdGhlIGNvbW1hbmRzIHVz ZSDigJhicm93c2UtdXJs4oCZIHRvIHZpZXcgaXQgKCpub3RlCkJyb3dzZS1VUkw6OikuCgogICBU aGlzIGZlYXR1cmUgaXMgdXNlZnVsIGZvciBmb2xsb3dpbmcgcmVmZXJlbmNlcyBpbiBtYWlsIG9y IG5ld3MKYnVmZmVycywg4oCYUkVBRE1F4oCZIGZpbGVzLCDigJhNQU5JRkVTVOKAmSBmaWxlcywg YW5kIHNvIG9uLiAgRm9yIG1vcmUKaW5mb3JtYXRpb24sIHZpZXcgdGhlIHBhY2thZ2UgY29tbWVu dGFyeSBieSB0eXBpbmcg4oCYQy1oIFAgZmZhcCA8UkVUPuKAmS4KCiAgIFRvIGVuYWJsZSBGRkFQ LCB0eXBlIOKAmE0teCBmZmFwLWJpbmRpbmdz4oCZLiAgVGhpcyBtYWtlcyB0aGUgZm9sbG93aW5n CmtleSBiaW5kaW5ncywgYW5kIGFsc28gaW5zdGFsbHMgaG9va3MgZm9yIGFkZGl0aW9uYWwgRkZB UCBmdW5jdGlvbmFsaXR5CmluIFJtYWlsLCBHbnVzIGFuZCBWTSBhcnRpY2xlIGJ1ZmZlcnMuCgri gJhDLXggQy1mIEZJTEVOQU1FIDxSRVQ+4oCZCiAgICAgRmluZCBGSUxFTkFNRSwgZ3Vlc3Npbmcg YSBkZWZhdWx0IGZyb20gdGV4dCBhcm91bmQgcG9pbnQKICAgICAo4oCYZmluZC1maWxlLWF0LXBv aW504oCZKS4K4oCYQy14IEMtciBGSUxFTkFNRSA8UkVUPuKAmQogICAgIOKAmGZmYXAtcmVhZC1v bmx54oCZLCBhbmFsb2dvdXMgdG8g4oCYZmluZC1maWxlLXJlYWQtb25seeKAmS4K4oCYQy14IEMt diBGSUxFTkFNRSA8UkVUPuKAmQogICAgIOKAmGZmYXAtYWx0ZXJuYXRlLWZpbGXigJksIGFuYWxv Z291cyB0byDigJhmaW5kLWFsdGVybmF0ZS1maWxl4oCZLgrigJhDLXggZCBESVJFQ1RPUlkgPFJF VD7igJkKICAgICBTdGFydCBEaXJlZCBvbiBESVJFQ1RPUlksIGRlZmF1bHRpbmcgdG8gdGhlIGRp cmVjdG9yeSBhdCBwb2ludAogICAgICjigJhkaXJlZC1hdC1wb2ludOKAmSkuCuKAmEMteCBDLWQg RElSRUNUT1JZIDxSRVQ+4oCZCiAgICAg4oCYZmZhcC1saXN0LWRpcmVjdG9yeeKAmSwgYW5hbG9n b3VzIHRvIOKAmGxpc3QtZGlyZWN0b3J54oCZLgrigJhDLXggNCBmIEZJTEVOQU1FIDxSRVQ+4oCZ CiAgICAg4oCYZmZhcC1vdGhlci13aW5kb3figJksIGFuYWxvZ291cyB0byDigJhmaW5kLWZpbGUt b3RoZXItd2luZG934oCZLgrigJhDLXggNCByIEZJTEVOQU1FIDxSRVQ+4oCZCiAgICAg4oCYZmZh cC1yZWFkLW9ubHktb3RoZXItd2luZG934oCZLCBhbmFsb2dvdXMgdG8KICAgICDigJhmaW5kLWZp bGUtcmVhZC1vbmx5LW90aGVyLXdpbmRvd+KAmS4K4oCYQy14IDQgZCBESVJFQ1RPUlkgPFJFVD7i gJkKICAgICDigJhmZmFwLWRpcmVkLW90aGVyLXdpbmRvd+KAmSwgbGlrZSDigJhkaXJlZC1vdGhl ci13aW5kb3figJkuCuKAmEMteCA1IGYgRklMRU5BTUUgPFJFVD7igJkKICAgICDigJhmZmFwLW90 aGVyLWZyYW1l4oCZLCBhbmFsb2dvdXMgdG8g4oCYZmluZC1maWxlLW90aGVyLWZyYW1l4oCZLgri gJhDLXggNSByIEZJTEVOQU1FIDxSRVQ+4oCZCiAgICAg4oCYZmZhcC1yZWFkLW9ubHktb3RoZXIt ZnJhbWXigJksIGFuYWxvZ291cyB0bwogICAgIOKAmGZpbmQtZmlsZS1yZWFkLW9ubHktb3RoZXIt ZnJhbWXigJkuCuKAmEMteCA1IGQgRElSRUNUT1JZIDxSRVQ+4oCZCiAgICAg4oCYZmZhcC1kaXJl ZC1vdGhlci1mcmFtZeKAmSwgYW5hbG9nb3VzIHRvIOKAmGRpcmVkLW90aGVyLWZyYW1l4oCZLgri gJhNLXggZmZhcC1uZXh04oCZCiAgICAgU2VhcmNoIGJ1ZmZlciBmb3IgbmV4dCBmaWxlIG5hbWUg b3IgVVJMLCB0aGVuIGZpbmQgdGhhdCBmaWxlIG9yCiAgICAgVVJMLgrigJhTLW1vdXNlLTPigJkK ICAgICDigJhmZmFwLWF0LW1vdXNl4oCZIGZpbmRzIHRoZSBmaWxlIGd1ZXNzZWQgZnJvbSB0ZXh0 IGFyb3VuZCB0aGUKICAgICBwb3NpdGlvbiBvZiBhIG1vdXNlIGNsaWNrLgrigJhDLVMtbW91c2Ut M+KAmQogICAgIERpc3BsYXkgYSBtZW51IG9mIGZpbGVzIGFuZCBVUkxzIG1lbnRpb25lZCBpbiBj dXJyZW50IGJ1ZmZlciwgdGhlbgogICAgIGZpbmQgdGhlIG9uZSB5b3Ugc2VsZWN0ICjigJhmZmFw LW1lbnXigJkpLgoKCiogNDcgR2FtZXMgYW5kIE90aGVyIEFtdXNlbWVudHMKClRoZSDigJhhbmlt YXRl4oCZIHBhY2thZ2UgbWFrZXMgdGV4dCBkYW5jZSAoZS5nLiwg4oCYTS14CmFuaW1hdGUtYmly dGhkYXktcHJlc2VudOKAmSkuCgogICDigJhNLXggYmxhY2tib3jigJksIOKAmE0teCBtcHV64oCZ IGFuZCDigJhNLXggNXg14oCZIGFyZSBwdXp6bGVzLiAg4oCYYmxhY2tib3jigJkKY2hhbGxlbmdl cyB5b3UgdG8gZGV0ZXJtaW5lIHRoZSBsb2NhdGlvbiBvZiBvYmplY3RzIGluc2lkZSBhIGJveCBi eQp0b21vZ3JhcGh5LiAg4oCYbXB1euKAmSBkaXNwbGF5cyBhIG11bHRpcGxpY2F0aW9uIHB1enps ZSB3aXRoIGxldHRlcnMKc3RhbmRpbmcgZm9yIGRpZ2l0cyBpbiBhIGNvZGUgdGhhdCB5b3UgbXVz dCBndWVzc+KAlHRvIGd1ZXNzIGEgdmFsdWUsIHR5cGUKYSBsZXR0ZXIgYW5kIHRoZW4gdGhlIGRp Z2l0IHlvdSB0aGluayBpdCBzdGFuZHMgZm9yLiAgVGhlIGFpbSBvZiDigJg1eDXigJkKaXMgdG8g ZmlsbCBpbiBhbGwgdGhlIHNxdWFyZXMuCgogICDigJhNLXggYnViYmxlc+KAmSBpcyBhIGdhbWUg aW4gd2hpY2ggdGhlIG9iamVjdCBpcyB0byByZW1vdmUgYXMgbWFueQpidWJibGVzIGFzIHlvdSBj YW4gaW4gdGhlIHNtYWxsZXN0IG51bWJlciBvZiBtb3Zlcy4KCiAgIOKAmE0teCBkZWNpcGhlcuKA mSBoZWxwcyB5b3UgdG8gY3J5cHRhbmFseXplIGEgYnVmZmVyIHdoaWNoIGlzIGVuY3J5cHRlZApp biBhIHNpbXBsZSBtb25vYWxwaGFiZXRpYyBzdWJzdGl0dXRpb24gY2lwaGVyLgoKICAg4oCYTS14 IGRpc3NvY2lhdGVkLXByZXNz4oCZIHNjcmFtYmxlcyB0aGUgdGV4dCBpbiB0aGUgY3VycmVudCBF bWFjcwpidWZmZXIsIHdvcmQgYnkgd29yZCBvciBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyLCB3cml0 aW5nIGl0cyBvdXRwdXQgdG8gYQpidWZmZXIgbmFtZWQg4oCYKkRpc3NvY2lhdGlvbirigJkuICBB IHBvc2l0aXZlIGFyZ3VtZW50IHRlbGxzIGl0IHRvIG9wZXJhdGUKY2hhcmFjdGVyIGJ5IGNoYXJh Y3RlciwgYW5kIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIG92ZXJsYXAgY2hhcmFjdGVycy4KQSBu ZWdhdGl2ZSBhcmd1bWVudCB0ZWxscyBpdCB0byBvcGVyYXRlIHdvcmQgYnkgd29yZCwgYW5kIHNw ZWNpZmllcyB0aGUKbnVtYmVyIG9mIG92ZXJsYXAgd29yZHMuICBEaXNzb2NpYXRlZCBQcmVzcyBw cm9kdWNlcyByZXN1bHRzIGZhaXJseSBsaWtlCnRob3NlIG9mIGEgTWFya292IGNoYWluLCBidXQg aXMgaG93ZXZlciwgYW4gaW5kZXBlbmRlbnQsIGlnbm9yaWdpbmFsCmludmVudGlvbjsgaXQgdGVj aG5pcXVpdG91c2x5IGNvcGllcyBzZXZlcmFsIGNvbnNlY3V0aXZlIGNoYXJhY3RlcnMgZnJvbQp0 aGUgc2FtcGxlIHRleHQgYmV0d2VlbiByYW5kb20ganVtcHMsIHVubGlrZSBhIE1hcmtvdiBjaGFp biB3aGljaCB3b3VsZApqdW1wIHJhbmRvbWx5IGFmdGVyIGVhY2ggd29yZCBvciBjaGFyYWN0ZXIu ICBLZWVwIGRpc3NvY2l3b3JkcyBvdXQgb2YKeW91ciBkb2N1bWVudGF0aW9uLCBpZiB5b3Ugd2Fu dCBpdCB0byBiZSB3ZWxsIHVzZXJlbmNlZCBhbmQgcHJvcGVyYm9zZS4KCiAgIOKAmE0teCBkdW5u ZXTigJkgcnVucyBhIHRleHQtYmFzZWQgYWR2ZW50dXJlIGdhbWUuCgogICBJZiB5b3Ugd2FudCBh IGxpdHRsZSBtb3JlIHBlcnNvbmFsIGludm9sdmVtZW50LCB0cnkg4oCYTS14IGdvbW9rdeKAmSwK d2hpY2ggcGxheXMgdGhlIGdhbWUgR28gTW9rdSB3aXRoIHlvdS4KCiAgIElmIHlvdSBhcmUgYSBs aXR0bGUgYml0IGJvcmVkLCB5b3UgY2FuIHRyeSDigJhNLXggaGFub2nigJkuICBJZiB5b3UgYXJl CmNvbnNpZGVyYWJseSBib3JlZCwgZ2l2ZSBpdCBhIG51bWVyaWMgYXJndW1lbnQuICBJZiB5b3Ug YXJlIHZlcnksIHZlcnkKYm9yZWQsIHRyeSBhbiBhcmd1bWVudCBvZiA5LiAgU2l0IGJhY2sgYW5k IHdhdGNoLgoKICAg4oCYTS14IGxpZmXigJkgcnVucyBDb253YXnigJlzIEdhbWUgb2YgTGlmZSBj ZWxsdWxhciBhdXRvbWF0b24uCgogICDigJhNLXggbW9yc2UtcmVnaW9u4oCZIGNvbnZlcnRzIHRo ZSB0ZXh0IGluIHRoZSByZWdpb24gdG8gTW9yc2UgY29kZTsK4oCYTS14IHVubW9yc2UtcmVnaW9u 4oCZIGNvbnZlcnRzIGl0IGJhY2suICDigJhNLXggbmF0by1yZWdpb27igJkgY29udmVydHMgdGhl CnRleHQgaW4gdGhlIHJlZ2lvbiB0byBOQVRPIHBob25ldGljIGFscGhhYmV0OyDigJhNLXggZGVu YXRvLXJlZ2lvbuKAmQpjb252ZXJ0cyBpdCBiYWNrLgoKICAg4oCYTS14IHBvbmfigJksIOKAmE0t eCBzbmFrZeKAmSBhbmQg4oCYTS14IHRldHJpc+KAmSBhcmUgaW1wbGVtZW50YXRpb25zIG9mIHRo ZQp3ZWxsLWtub3duIFBvbmcsIFNuYWtlIGFuZCBUZXRyaXMgZ2FtZXMuCgogICDigJhNLXggc29s aXRhaXJl4oCZIHBsYXlzIGEgZ2FtZSBvZiBzb2xpdGFpcmUgaW4gd2hpY2ggeW91IGp1bXAgcGVn cwphY3Jvc3Mgb3RoZXIgcGVncy4KCiAgIFRoZSBjb21tYW5kIOKAmE0teCB6b25l4oCZIHBsYXlz IGdhbWVzIHdpdGggdGhlIGRpc3BsYXkgd2hlbiBFbWFjcyBpcwppZGxlLgoKICAg4oCcUmVhbCBQ cm9ncmFtbWVyc+KAnSBkZXBsb3kg4oCYTS14IGJ1dHRlcmZseeKAmSwgd2hpY2ggdXNlcyBidXR0 ZXJmbGllcyB0bwpmbGlwIGEgYml0IG9uIHRoZSBkcml2ZSBwbGF0dGVyLCBzZWUgPGh0dHBzOi8v eGtjZC5jb20vMzc4Pi4KCiAgIEZpbmFsbHksIGlmIHlvdSBmaW5kIHlvdXJzZWxmIGZydXN0cmF0 ZWQsIHRyeSBkZXNjcmliaW5nIHlvdXIKcHJvYmxlbXMgdG8gdGhlIGZhbW91cyBwc3ljaG90aGVy YXBpc3QgRWxpemEuICBKdXN0IGRvIOKAmE0teCBkb2N0b3LigJkuCkVuZCBlYWNoIGlucHV0IGJ5 IHR5cGluZyA8UkVUPiB0d2ljZS4KCgoqIDQ4IEVtYWNzIExpc3AgUGFja2FnZXMKCkVtYWNzIGlu Y2x1ZGVzIGEgZmFjaWxpdHkgdGhhdCBsZXRzIHlvdSBlYXNpbHkgZG93bmxvYWQgYW5kIGluc3Rh bGwKInBhY2thZ2VzIiB0aGF0IGltcGxlbWVudCBhZGRpdGlvbmFsIGZlYXR1cmVzLiAgRWFjaCBw YWNrYWdlIGlzIGEKc2VwYXJhdGUgRW1hY3MgTGlzcCBwcm9ncmFtLCBzb21ldGltZXMgaW5jbHVk aW5nIG90aGVyIGNvbXBvbmVudHMgc3VjaAphcyBhbiBJbmZvIG1hbnVhbC4KCiAgIOKAmE0teCBs aXN0LXBhY2thZ2Vz4oCZIGJyaW5ncyB1cCBhIGJ1ZmZlciBuYW1lZCDigJgqUGFja2FnZXMq4oCZ IHdpdGggYSBsaXN0Cm9mIGFsbCBwYWNrYWdlcy4gIFlvdSBjYW4gaW5zdGFsbCBvciB1bmluc3Rh bGwgcGFja2FnZXMgdmlhIHRoaXMgYnVmZmVyLgoqTm90ZSBQYWNrYWdlIE1lbnU6Oi4KCiAgIFRo ZSBjb21tYW5kIOKAmEMtaCBQ4oCZICjigJhkZXNjcmliZS1wYWNrYWdl4oCZKSBwcm9tcHRzIGZv ciB0aGUgbmFtZSBvZiBhCnBhY2thZ2UsIGFuZCBkaXNwbGF5cyBhIGhlbHAgYnVmZmVyIGRlc2Ny aWJpbmcgdGhlIGF0dHJpYnV0ZXMgb2YgdGhlCnBhY2thZ2UgYW5kIHRoZSBmZWF0dXJlcyB0aGF0 IGl0IGltcGxlbWVudHMuCgogICBCeSBkZWZhdWx0LCBFbWFjcyBkb3dubG9hZHMgcGFja2FnZXMg ZnJvbSBhICJwYWNrYWdlIGFyY2hpdmUiCm1haW50YWluZWQgYnkgdGhlIEVtYWNzIGRldmVsb3Bl cnMgYW5kIGhvc3RlZCBieSB0aGUgR05VIHByb2plY3QuCk9wdGlvbmFsbHksIHlvdSBjYW4gYWxz byBkb3dubG9hZCBwYWNrYWdlcyBmcm9tIGFyY2hpdmVzIG1haW50YWluZWQgYnkKdGhpcmQgcGFy dGllcy4gICpOb3RlIFBhY2thZ2UgSW5zdGFsbGF0aW9uOjouCgogICBGb3IgaW5mb3JtYXRpb24g YWJvdXQgdHVybmluZyBhbiBFbWFjcyBMaXNwIHByb2dyYW0gaW50byBhbgppbnN0YWxsYWJsZSBw YWNrYWdlLCAqTm90ZSAoZWxpc3ApUGFja2FnaW5nOjouCgorIE1lbnU6CgogIC0gUGFja2FnZSBN ZW51OjogICAgICAgICBCdWZmZXIgZm9yIHZpZXdpbmcgYW5kIG1hbmFnaW5nIHBhY2thZ2VzLgog IC0gUGFja2FnZSBJbnN0YWxsYXRpb246OiBPcHRpb25zIGZvciBwYWNrYWdlIGluc3RhbGxhdGlv bi4KICAtIFBhY2thZ2UgRmlsZXM6OiAgICAgICAgV2hlcmUgcGFja2FnZXMgYXJlIGluc3RhbGxl ZC4KCgoqKiA0OC4xIFRoZSBQYWNrYWdlIE1lbnUgQnVmZmVyCgpUaGUgY29tbWFuZCDigJhNLXgg bGlzdC1wYWNrYWdlc+KAmSBicmluZ3MgdXAgdGhlICJwYWNrYWdlIG1lbnUiLiAgVGhpcyBpcyBh CmJ1ZmZlciBsaXN0aW5nIGFsbCB0aGUgcGFja2FnZXMgdGhhdCBFbWFjcyBrbm93cyBhYm91dCwg b25lIG9uIGVhY2gKbGluZSwgd2l0aCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgoKICAg4oCi IFRoZSBwYWNrYWdlIG5hbWUgKGUuZy4sIOKAmGF1Y3RleOKAmSkuCgogICDigKIgVGhlIHBhY2th Z2XigJlzIHZlcnNpb24gbnVtYmVyIChlLmcuLCDigJgxMS44NuKAmSkuCgogICDigKIgVGhlIHBh Y2thZ2XigJlzIHN0YXR1c+KAlG5vcm1hbGx5IG9uZSBvZiDigJhhdmFpbGFibGXigJkgKGNhbiBi ZSBkb3dubG9hZGVkCiAgICAgZnJvbSB0aGUgcGFja2FnZSBhcmNoaXZlKSwg4oCYaW5zdGFsbGVk 4oCZLCBvciDigJhidWlsdC1pbuKAmSAoaW5jbHVkZWQgaW4KICAgICBFbWFjcyBieSBkZWZhdWx0 KS4gIFRoZSBzdGF0dXMg4oCYZXh0ZXJuYWzigJkgbWVhbnMgdGhlIHBhY2thZ2UgaXMgbm90CiAg ICAgYnVpbHQtaW4gYW5kIG5vdCBmcm9tIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IOKAmHBh Y2thZ2UtdXNlci1kaXLigJkKICAgICAoKm5vdGUgUGFja2FnZSBGaWxlczo6KS4gIEV4dGVybmFs IHBhY2thZ2VzIGFyZSB0cmVhdGVkIG11Y2ggbGlrZQogICAgIGJ1aWx0LWluOiB0aGV5IGNhbm5v dCBiZSBkZWxldGVkIHRocm91Z2ggdGhlIHBhY2thZ2UgbWVudSwgYW5kIGFyZQogICAgIG5vdCBj b25zaWRlcmVkIGZvciB1cGdyYWRpbmcuCgogICAgIFRoZSBzdGF0dXMgY2FuIGFsc28gYmUg4oCY bmV34oCZLiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIOKAmGF2YWlsYWJsZeKAmSwKICAgICBleGNl cHQgdGhhdCBpdCBtZWFucyB0aGUgcGFja2FnZSBiZWNhbWUgbmV3bHkgYXZhaWxhYmxlIG9uIHRo ZQogICAgIHBhY2thZ2UgYXJjaGl2ZSBhZnRlciB5b3VyIGxhc3QgaW52b2NhdGlvbiBvZiDigJhN LXggbGlzdC1wYWNrYWdlc+KAmS4KICAgICBJbiBvdGhlciBpbnN0YW5jZXMsIGEgcGFja2FnZSBt YXkgaGF2ZSB0aGUgc3RhdHVzIOKAmGhlbGTigJksCiAgICAg4oCYZGlzYWJsZWTigJksIG9yIOKA mG9ic29sZXRl4oCZLiAgKk5vdGUgUGFja2FnZSBJbnN0YWxsYXRpb246Oi4KCiAgIOKAoiBBIHNo b3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBwYWNrYWdlLgoKVGhlIOKAmGxpc3QtcGFja2FnZXPigJkg Y29tbWFuZCBhY2Nlc3NlcyB0aGUgbmV0d29yaywgdG8gcmV0cmlldmUgdGhlIGxpc3QKb2YgYXZh aWxhYmxlIHBhY2thZ2VzIGZyb20gcGFja2FnZSBhcmNoaXZlIHNlcnZlcnMuICBJZiB0aGUgbmV0 d29yayBpcwp1bmF2YWlsYWJsZSwgaXQgZmFsbHMgYmFjayBvbiB0aGUgbW9zdCByZWNlbnRseSBy ZXRyaWV2ZWQgbGlzdC4KCiAgIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBp biB0aGUgcGFja2FnZSBtZW51OgoK4oCYaOKAmQogICAgIFByaW50IGEgc2hvcnQgbWVzc2FnZSBz dW1tYXJpemluZyBob3cgdG8gdXNlIHRoZSBwYWNrYWdlIG1lbnUKICAgICAo4oCYcGFja2FnZS1t ZW51LXF1aWNrLWhlbHDigJkpLgoK4oCYP+KAmQrigJg8UkVUPuKAmQogICAgIERpc3BsYXkgYSBo ZWxwIGJ1ZmZlciBmb3IgdGhlIHBhY2thZ2Ugb24gdGhlIGN1cnJlbnQgbGluZQogICAgICjigJhw YWNrYWdlLW1lbnUtZGVzY3JpYmUtcGFja2FnZeKAmSksIHNpbWlsYXIgdG8gdGhlIGhlbHAgd2lu ZG93CiAgICAgZGlzcGxheWVkIGJ5IHRoZSDigJhDLWggUOKAmSBjb21tYW5kICgqbm90ZSBQYWNr YWdlczo6KS4KCuKAmGnigJkKICAgICBNYXJrIHRoZSBwYWNrYWdlIG9uIHRoZSBjdXJyZW50IGxp bmUgZm9yIGluc3RhbGxhdGlvbgogICAgICjigJhwYWNrYWdlLW1lbnUtbWFyay1pbnN0YWxs4oCZ KS4gIElmIHRoZSBwYWNrYWdlIHN0YXR1cyBpcwogICAgIOKAmGF2YWlsYWJsZeKAmSwgdGhpcyBh ZGRzIGFuIOKAmEnigJkgY2hhcmFjdGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgbGluZTsKICAgICB0 eXBpbmcg4oCYeOKAmSAoc2VlIGJlbG93KSB3aWxsIGRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBw YWNrYWdlLgoK4oCYZOKAmQogICAgIE1hcmsgdGhlIHBhY2thZ2Ugb24gdGhlIGN1cnJlbnQgbGlu ZSBmb3IgZGVsZXRpb24KICAgICAo4oCYcGFja2FnZS1tZW51LW1hcmstZGVsZXRl4oCZKS4gIElm IHRoZSBwYWNrYWdlIHN0YXR1cyBpcwogICAgIOKAmGluc3RhbGxlZOKAmSwgdGhpcyBhZGRzIGEg 4oCYROKAmSBjaGFyYWN0ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBsaW5lOwogICAgIHR5cGluZyDi gJh44oCZIChzZWUgYmVsb3cpIHdpbGwgZGVsZXRlIHRoZSBwYWNrYWdlLiAgKk5vdGUgUGFja2Fn ZQogICAgIEZpbGVzOjosIGZvciBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHBhY2thZ2UgZGVsZXRp b24gZW50YWlscy4KCuKAmH7igJkKICAgICBNYXJrIGFsbCBvYnNvbGV0ZSBwYWNrYWdlcyBmb3Ig ZGVsZXRpb24KICAgICAo4oCYcGFja2FnZS1tZW51LW1hcmstb2Jzb2xldGUtZm9yLWRlbGV0aW9u 4oCZKS4gIFRoaXMgbWFya3MgZm9yCiAgICAgZGVsZXRpb24gYWxsIHRoZSBwYWNrYWdlcyB3aG9z ZSBzdGF0dXMgaXMg4oCYb2Jzb2xldGXigJkuCgrigJh14oCZCuKAmDxERUw+4oCZCiAgICAgUmVt b3ZlIGFueSBpbnN0YWxsYXRpb24gb3IgZGVsZXRpb24gbWFyayBwcmV2aW91c2x5IGFkZGVkIHRv IHRoZQogICAgIGN1cnJlbnQgbGluZSBieSBhbiDigJhp4oCZIG9yIOKAmGTigJkgY29tbWFuZC4K CuKAmFXigJkKICAgICBNYXJrIGFsbCBwYWNrYWdlIHdpdGggYSBuZXdlciBhdmFpbGFibGUgdmVy c2lvbiBmb3IgdXBncmFkaW5nCiAgICAgKOKAmHBhY2thZ2UtbWVudS1tYXJrLXVwZ3JhZGVz4oCZ KS4gIFRoaXMgcGxhY2VzIGFuIGluc3RhbGxhdGlvbiBtYXJrCiAgICAgb24gdGhlIG5ldyBhdmFp bGFibGUgdmVyc2lvbnMsIGFuZCBhIGRlbGV0aW9uIG1hcmsgb24gdGhlIG9sZAogICAgIGluc3Rh bGxlZCB2ZXJzaW9ucy4KCuKAmHjigJkKICAgICBEb3dubG9hZCBhbmQgaW5zdGFsbCBhbGwgcGFj a2FnZXMgbWFya2VkIHdpdGgg4oCYaeKAmSwgYW5kIHRoZWlyCiAgICAgZGVwZW5kZW5jaWVzOyBh bHNvLCBkZWxldGUgYWxsIHBhY2thZ2VzIG1hcmtlZCB3aXRoIOKAmGTigJkKICAgICAo4oCYcGFj a2FnZS1tZW51LWV4ZWN1dGXigJkpLiAgVGhpcyBhbHNvIHJlbW92ZXMgdGhlIG1hcmtzLgoK4oCY cuKAmQogICAgIFJlZnJlc2ggdGhlIHBhY2thZ2UgbGlzdCAo4oCYcGFja2FnZS1tZW51LXJlZnJl c2jigJkpLiAgVGhpcyBmZXRjaGVzCiAgICAgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHBhY2thZ2Vz IGZyb20gdGhlIHBhY2thZ2UgYXJjaGl2ZSBhZ2FpbiwgYW5kCiAgICAgcmVjb21wdXRlcyB0aGUg cGFja2FnZSBsaXN0LgoK4oCYZuKAmQogICAgIEZpbHRlciB0aGUgcGFja2FnZSBsaXN0ICjigJhw YWNrYWdlLW1lbnUtZmlsdGVy4oCZKS4gIFRoaXMgcHJvbXB0cyBmb3IKICAgICBhIGtleXdvcmQg KGUuZy4sIOKAmGdhbWVz4oCZKSwgdGhlbiBzaG93cyBvbmx5IHRoZSBwYWNrYWdlcyB0aGF0IHJl bGF0ZQogICAgIHRvIHRoYXQga2V5d29yZC4gIFRvIHJlc3RvcmUgdGhlIGZ1bGwgcGFja2FnZSBs aXN0LCB0eXBlIOKAmHHigJkuCgrigJhI4oCZCiAgICAgUGVybWFuZW50bHkgaGlkZSBwYWNrYWdl cyB0aGF0IG1hdGNoIGEgcmVnZXhwCiAgICAgKOKAmHBhY2thZ2UtbWVudS1oaWRlLXBhY2thZ2Xi gJkpLgoK4oCYKOKAmQogICAgIFRvZ2dsZSB2aXNpYmlsaXR5IG9mIG9sZCB2ZXJzaW9ucyBvZiBw YWNrYWdlcyBhbmQgYWxzbyBvZiB2ZXJzaW9ucwogICAgIGZyb20gbG93ZXItcHJpb3JpdHkgYXJj aGl2ZXMgKOKAmHBhY2thZ2UtbWVudS10b2dnbGUtaGlkaW5n4oCZKS4KCkZvciBleGFtcGxlLCB5 b3UgY2FuIGluc3RhbGwgYSBwYWNrYWdlIGJ5IHR5cGluZyDigJhp4oCZIG9uIHRoZSBsaW5lIGxp c3RpbmcKdGhhdCBwYWNrYWdlLCBmb2xsb3dlZCBieSDigJh44oCZLgoKCioqIDQ4LjIgUGFja2Fn ZSBJbnN0YWxsYXRpb24KClBhY2thZ2VzIGFyZSBtb3N0IGNvbnZlbmllbnRseSBpbnN0YWxsZWQg dXNpbmcgdGhlIHBhY2thZ2UgbWVudSAoKm5vdGUKUGFja2FnZSBNZW51OjopLCBidXQgeW91IGNh biBhbHNvIHVzZSB0aGUgY29tbWFuZCDigJhNLXggcGFja2FnZS1pbnN0YWxs4oCZLgpUaGlzIHBy b21wdHMgZm9yIHRoZSBuYW1lIG9mIGEgcGFja2FnZSB3aXRoIHRoZSDigJhhdmFpbGFibGXigJkg c3RhdHVzLCB0aGVuCmRvd25sb2FkcyBhbmQgaW5zdGFsbHMgaXQuCgogICBBIHBhY2thZ2UgbWF5 ICJyZXF1aXJlIiBjZXJ0YWluIG90aGVyIHBhY2thZ2VzIHRvIGJlIGluc3RhbGxlZCwKYmVjYXVz ZSBpdCByZWxpZXMgb24gZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGVtLiAgV2hlbiBFbWFj cwppbnN0YWxscyBzdWNoIGEgcGFja2FnZSwgaXQgYWxzbyBhdXRvbWF0aWNhbGx5IGRvd25sb2Fk cyBhbmQgaW5zdGFsbHMKYW55IHJlcXVpcmVkIHBhY2thZ2UgdGhhdCBpcyBub3QgYWxyZWFkeSBp bnN0YWxsZWQuICAoSWYgYSByZXF1aXJlZApwYWNrYWdlIGlzIHNvbWVob3cgdW5hdmFpbGFibGUs IEVtYWNzIHNpZ25hbHMgYW4gZXJyb3IgYW5kIHN0b3BzCmluc3RhbGxhdGlvbi4pICBBIHBhY2th Z2XigJlzIHJlcXVpcmVtZW50cyBsaXN0IGlzIHNob3duIGluIGl0cyBoZWxwCmJ1ZmZlci4KCiAg IEJ5IGRlZmF1bHQsIHBhY2thZ2VzIGFyZSBkb3dubG9hZGVkIGZyb20gYSBzaW5nbGUgcGFja2Fn ZSBhcmNoaXZlCm1haW50YWluZWQgYnkgdGhlIEVtYWNzIGRldmVsb3BlcnMuICBUaGlzIGlzIGNv bnRyb2xsZWQgYnkgdGhlIHZhcmlhYmxlCuKAmHBhY2thZ2UtYXJjaGl2ZXPigJksIHdob3NlIHZh bHVlIGlzIGEgbGlzdCBvZiBwYWNrYWdlIGFyY2hpdmVzIGtub3duIHRvCkVtYWNzLiAgRWFjaCBs aXN0IGVsZW1lbnQgbXVzdCBoYXZlIHRoZSBmb3JtIOKAmChJRCAuIExPQ0FUSU9OKeKAmSwgd2hl cmUgSUQKaXMgdGhlIG5hbWUgb2YgYSBwYWNrYWdlIGFyY2hpdmUgYW5kIExPQ0FUSU9OIGlzIHRo ZSBIVFRQIGFkZHJlc3Mgb3IKbmFtZSBvZiB0aGUgcGFja2FnZSBhcmNoaXZlIGRpcmVjdG9yeS4g IFlvdSBjYW4gYWx0ZXIgdGhpcyBsaXN0IGlmIHlvdQp3aXNoIHRvIHVzZSB0aGlyZCBwYXJ0eSBw YWNrYWdlIGFyY2hpdmVz4oCUYnV0IGRvIHNvIGF0IHlvdXIgb3duIHJpc2ssIGFuZAp1c2Ugb25s eSB0aGlyZCBwYXJ0aWVzIHRoYXQgeW91IHRoaW5rIHlvdSBjYW4gdHJ1c3QhCgogICBUaGUgbWFp bnRhaW5lcnMgb2YgcGFja2FnZSBhcmNoaXZlcyBjYW4gaW5jcmVhc2UgdGhlIHRydXN0IHRoYXQg eW91CmNhbiBoYXZlIGluIHRoZWlyIHBhY2thZ2VzIGJ5ICJzaWduaW5nIiB0aGVtLiAgVGhleSBn ZW5lcmF0ZSBhCnByaXZhdGUvcHVibGljIHBhaXIgb2YgY3J5cHRvZ3JhcGhpYyBrZXlzLCBhbmQg dXNlIHRoZSBwcml2YXRlIGtleSB0bwpjcmVhdGUgYSAic2lnbmF0dXJlIGZpbGUiIGZvciBlYWNo IHBhY2thZ2UuICBXaXRoIHRoZSBwdWJsaWMga2V5LCB5b3UKY2FuIHVzZSB0aGUgc2lnbmF0dXJl IGZpbGVzIHRvIHZlcmlmeSB0aGUgcGFja2FnZSBjcmVhdG9yIGFuZCBtYWtlIHN1cmUKdGhlIHBh Y2thZ2UgaGFzIG5vdCBiZWVuIHRhbXBlcmVkIHdpdGguICBTaWduYXR1cmUgdmVyaWZpY2F0aW9u IHVzZXMgdGhlCkdudVBHIHBhY2thZ2UgKGh0dHBzOi8vd3d3LmdudXBnLm9yZy8pIHZpYSB0aGUg RWFzeVBHIGludGVyZmFjZSAoKm5vdGUKRWFzeVBHOiAoZXBhKVRvcC4pLiAgQSB2YWxpZCBzaWdu YXR1cmUgaXMgbm90IGEgY2FzdC1pcm9uIGd1YXJhbnRlZSB0aGF0CmEgcGFja2FnZSBpcyBub3Qg bWFsaWNpb3VzLCBzbyB5b3Ugc2hvdWxkIHN0aWxsIGV4ZXJjaXNlIGNhdXRpb24uClBhY2thZ2Ug YXJjaGl2ZXMgc2hvdWxkIHByb3ZpZGUgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB5b3UgY2FuIG9idGFp biB0aGVpcgpwdWJsaWMga2V5LiAgT25lIHdheSBpcyB0byBkb3dubG9hZCB0aGUga2V5IGZyb20g YSBzZXJ2ZXIgc3VjaCBhcwo8aHR0cHM6Ly9wZ3AubWl0LmVkdS8+LiAgVXNlIOKAmE0teCBwYWNr YWdlLWltcG9ydC1rZXlyaW5n4oCZIHRvIGltcG9ydCB0aGUKa2V5IGludG8gRW1hY3MuICBFbWFj cyBzdG9yZXMgcGFja2FnZSBrZXlzIGluIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5CnRoZSB2 YXJpYWJsZSDigJhwYWNrYWdlLWdudXBnaG9tZS1kaXLigJksIGJ5IGRlZmF1bHQgaW4gdGhlIOKA mGdudXBn4oCZCnN1YmRpcmVjdG9yeSBvZiDigJhwYWNrYWdlLXVzZXItZGly4oCZLCB3aGljaCBj YXVzZXMgRW1hY3MgdG8gaW52b2tlIEdudVBHCndpdGggdGhlIG9wdGlvbiDigJgtLWhvbWVkaXLi gJkgd2hlbiB2ZXJpZnlpbmcgc2lnbmF0dXJlcy4gIElmCuKAmHBhY2thZ2UtZ251cGdob21lLWRp cuKAmSBpcyDigJhuaWzigJksIEdudVBH4oCZcyBvcHRpb24g4oCYLS1ob21lZGly4oCZIGlzIG9t aXR0ZWQuClRoZSBwdWJsaWMga2V5IGZvciB0aGUgR05VIHBhY2thZ2UgYXJjaGl2ZSBpcyBkaXN0 cmlidXRlZCB3aXRoIEVtYWNzLCBpbgp0aGUg4oCYZXRjL3BhY2thZ2Uta2V5cmluZy5ncGfigJku ICBFbWFjcyB1c2VzIGl0IGF1dG9tYXRpY2FsbHkuCgogICBJZiB0aGUgdXNlciBvcHRpb24g4oCY cGFja2FnZS1jaGVjay1zaWduYXR1cmXigJkgaXMgbm9uLeKAmG5pbOKAmSwgRW1hY3MKYXR0ZW1w dHMgdG8gdmVyaWZ5IHNpZ25hdHVyZXMgd2hlbiB5b3UgaW5zdGFsbCBwYWNrYWdlcy4gIElmIHRo ZSBvcHRpb24KaGFzIHRoZSB2YWx1ZSDigJhhbGxvdy11bnNpZ25lZOKAmSwgeW91IGNhbiBzdGls bCBpbnN0YWxsIGEgcGFja2FnZSB0aGF0IGlzCm5vdCBzaWduZWQuICBJZiB5b3UgdXNlIHNvbWUg YXJjaGl2ZXMgdGhhdCBkbyBub3Qgc2lnbiB0aGVpciBwYWNrYWdlcywKeW91IGNhbiBhZGQgdGhl bSB0byB0aGUgbGlzdCDigJhwYWNrYWdlLXVuc2lnbmVkLWFyY2hpdmVz4oCZLgoKICAgRm9yIG1v cmUgaW5mb3JtYXRpb24gb24gY3J5cHRvZ3JhcGhpYyBrZXlzIGFuZCBzaWduaW5nLCAqbm90ZSBH bnVQRzoKKGdudXBnKVRvcC4gIEVtYWNzIGNvbWVzIHdpdGggYW4gaW50ZXJmYWNlIHRvIEdOVSBQ cml2YWN5IEd1YXJkLCAqbm90ZQpFYXN5UEc6IChlcGEpVG9wLgoKICAgSWYgeW91IGhhdmUgbW9y ZSB0aGFuIG9uZSBwYWNrYWdlIGFyY2hpdmUgZW5hYmxlZCwgYW5kIHNvbWUgb2YgdGhlbQpvZmZl ciBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgcGFja2FnZSwgeW91IG1heSBmaW5kIHRo ZSBvcHRpb24K4oCYcGFja2FnZS1waW5uZWQtcGFja2FnZXPigJkgdXNlZnVsLiAgWW91IGNhbiBh ZGQgcGFja2FnZS9hcmNoaXZlIHBhaXJzIHRvCnRoaXMgbGlzdCwgdG8gZW5zdXJlIHRoYXQgdGhl IHNwZWNpZmllZCBwYWNrYWdlIGlzIG9ubHkgZXZlciBkb3dubG9hZGVkCmZyb20gdGhlIHNwZWNp ZmllZCBhcmNoaXZlLgoKICAgQW5vdGhlciBvcHRpb24gdGhhdCBpcyB1c2VmdWwgd2hlbiB5b3Ug aGF2ZSBzZXZlcmFsIHBhY2thZ2UgYXJjaGl2ZXMKZW5hYmxlZCBpcyDigJhwYWNrYWdlLWFyY2hp dmUtcHJpb3JpdGllc+KAmS4gIEl0IHNwZWNpZmllcyB0aGUgcHJpb3JpdHkgb2YKZWFjaCBhcmNo aXZlIChoaWdoZXIgbnVtYmVycyBzcGVjaWZ5IGhpZ2hlciBwcmlvcml0eSBhcmNoaXZlcykuICBC eQpkZWZhdWx0LCBhcmNoaXZlcyBoYXZlIHRoZSBwcmlvcml0eSBvZiB6ZXJvLCB1bmxlc3Mgc3Bl Y2lmaWVkIG90aGVyd2lzZQpieSB0aGlzIG9wdGlvbuKAmXMgdmFsdWUuICBQYWNrYWdlcyBmcm9t IGxvd2VyLXByaW9yaXR5IGFyY2hpdmVzIHdpbGwgbm90CmJlIHNob3duIGluIHRoZSBtZW51LCBp ZiB0aGUgc2FtZSBwYWNrYWdlIGlzIGF2YWlsYWJsZSBmcm9tIGEKaGlnaGVyLXByaW9yaXR5IGFy Y2hpdmUuICAoVGhpcyBpcyBjb250cm9sbGVkIGJ5IHRoZSB2YWx1ZSBvZgrigJhwYWNrYWdlLW1l bnUtaGlkZS1sb3ctcHJpb3JpdHnigJkuKQoKICAgT25jZSBhIHBhY2thZ2UgaXMgZG93bmxvYWRl ZCBhbmQgaW5zdGFsbGVkLCBpdCBpcyAibG9hZGVkIiBpbnRvIHRoZQpjdXJyZW50IEVtYWNzIHNl c3Npb24uICBMb2FkaW5nIGEgcGFja2FnZSBpcyBub3QgcXVpdGUgdGhlIHNhbWUgYXMKbG9hZGlu ZyBhIExpc3AgbGlicmFyeSAoKm5vdGUgTGlzcCBMaWJyYXJpZXM6Oik7IGxvYWRpbmcgYSBwYWNr YWdlIGFkZHMKaXRzIGRpcmVjdG9yeSB0byDigJhsb2FkLXBhdGjigJkgYW5kIGxvYWRzIGl0cyBh dXRvbG9hZHMuICBUaGUgZWZmZWN0IG9mIGEKcGFja2FnZeKAmXMgYXV0b2xvYWRzIHZhcmllcyBm cm9tIHBhY2thZ2UgdG8gcGFja2FnZS4gIE1vc3QgcGFja2FnZXMganVzdAptYWtlIHNvbWUgbmV3 IGNvbW1hbmRzIGF2YWlsYWJsZSwgd2hpbGUgb3RoZXJzIGhhdmUgbW9yZSB3aWRlLXJhbmdpbmcK ZWZmZWN0cyBvbiB0aGUgRW1hY3Mgc2Vzc2lvbi4gIEZvciBzdWNoIGluZm9ybWF0aW9uLCBjb25z dWx0IHRoZQpwYWNrYWdl4oCZcyBoZWxwIGJ1ZmZlci4KCiAgIEJ5IGRlZmF1bHQsIEVtYWNzIGFs c28gYXV0b21hdGljYWxseSBsb2FkcyBhbGwgaW5zdGFsbGVkIHBhY2thZ2VzIGluCnN1YnNlcXVl bnQgRW1hY3Mgc2Vzc2lvbnMuICBUaGlzIGhhcHBlbnMgYXQgc3RhcnR1cCwgYWZ0ZXIgcHJvY2Vz c2luZwp0aGUgaW5pdCBmaWxlICgqbm90ZSBJbml0IEZpbGU6OikuICBBcyBhbiBleGNlcHRpb24s IEVtYWNzIGRvZXMgbm90IGxvYWQKcGFja2FnZXMgYXQgc3RhcnR1cCBpZiBpbnZva2VkIHdpdGgg dGhlIOKAmC1x4oCZIG9yIOKAmC0tbm8taW5pdC1maWxl4oCZIG9wdGlvbnMKKCpub3RlIEluaXRp YWwgT3B0aW9uczo6KS4KCiAgIFRvIGRpc2FibGUgYXV0b21hdGljIHBhY2thZ2UgbG9hZGluZywg Y2hhbmdlIHRoZSB2YXJpYWJsZQrigJhwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVw4oCZIHRvIOKA mG5pbOKAmS4KCiAgIFRoZSByZWFzb24gYXV0b21hdGljIHBhY2thZ2UgbG9hZGluZyBvY2N1cnMg YWZ0ZXIgbG9hZGluZyB0aGUgaW5pdApmaWxlIGlzIHRoYXQgdXNlciBvcHRpb25zIG9ubHkgcmVj ZWl2ZSB0aGVpciBjdXN0b21pemVkIHZhbHVlcyBhZnRlcgpsb2FkaW5nIHRoZSBpbml0IGZpbGUs IGluY2x1ZGluZyB1c2VyIG9wdGlvbnMgd2hpY2ggYWZmZWN0IHRoZSBwYWNrYWdpbmcKc3lzdGVt LiAgSW4gc29tZSBjaXJjdW1zdGFuY2VzLCB5b3UgbWF5IHdhbnQgdG8gbG9hZCBwYWNrYWdlcyBl eHBsaWNpdGx5CmluIHlvdXIgaW5pdCBmaWxlICh1c3VhbGx5IGJlY2F1c2Ugc29tZSBvdGhlciBj b2RlIGluIHlvdXIgaW5pdCBmaWxlCmRlcGVuZHMgb24gYSBwYWNrYWdlKS4gIEluIHRoYXQgY2Fz ZSwgeW91ciBpbml0IGZpbGUgc2hvdWxkIGNhbGwgdGhlCmZ1bmN0aW9uIOKAmHBhY2thZ2UtaW5p dGlhbGl6ZeKAmS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCByZWxldmFudAp1c2Vy IG9wdGlvbnMsIHN1Y2ggYXMg4oCYcGFja2FnZS1sb2FkLWxpc3TigJkgKHNlZSBiZWxvdyksIGFy ZSBzZXQgdXAgcHJpb3IKdG8gdGhlIOKAmHBhY2thZ2UtaW5pdGlhbGl6ZeKAmSBjYWxsLiAgVGhp cyB3aWxsIGF1dG9tYXRpY2FsbHkgc2V0CuKAmHBhY2thZ2UtZW5hYmxlLWF0LXN0YXJ0dXDigJkg dG8g4oCYbmls4oCZLCB0byBhdm9pZCBsb2FkaW5nIHRoZSBwYWNrYWdlcwphZ2FpbiBhZnRlciBw cm9jZXNzaW5nIHRoZSBpbml0IGZpbGUuICBBbHRlcm5hdGl2ZWx5LCB5b3UgbWF5IGNob29zZSB0 bwpjb21wbGV0ZWx5IGluaGliaXQgcGFja2FnZSBsb2FkaW5nIGF0IHN0YXJ0dXAsIGFuZCBpbnZv a2UgdGhlIGNvbW1hbmQK4oCYTS14IHBhY2thZ2UtaW5pdGlhbGl6ZeKAmSB0byBsb2FkIHlvdXIg cGFja2FnZXMgbWFudWFsbHkuCgogICBGb3IgZmluZXIgY29udHJvbCBvdmVyIHBhY2thZ2UgbG9h ZGluZywgeW91IGNhbiB1c2UgdGhlIHZhcmlhYmxlCuKAmHBhY2thZ2UtbG9hZC1saXN04oCZLiAg SXRzIHZhbHVlIHNob3VsZCBiZSBhIGxpc3QuICBBIGxpc3QgZWxlbWVudCBvZiB0aGUKZm9ybSDi gJgoTkFNRSBWRVJTSU9OKeKAmSB0ZWxscyBFbWFjcyB0byBsb2FkIHZlcnNpb24gVkVSU0lPTiBv ZiB0aGUgcGFja2FnZQpuYW1lZCBOQU1FLiAgSGVyZSwgVkVSU0lPTiBzaG91bGQgYmUgYSB2ZXJz aW9uIHN0cmluZyAoY29ycmVzcG9uZGluZyB0bwphIHNwZWNpZmljIHZlcnNpb24gb2YgdGhlIHBh Y2thZ2UpLCBvciDigJh04oCZICh3aGljaCBtZWFucyB0byBsb2FkIGFueQppbnN0YWxsZWQgdmVy c2lvbiksIG9yIOKAmG5pbOKAmSAod2hpY2ggbWVhbnMgbm8gdmVyc2lvbjsgdGhpcyBkaXNhYmxl cyB0aGUKcGFja2FnZSwgcHJldmVudGluZyBpdCBmcm9tIGJlaW5nIGxvYWRlZCkuICBBIGxpc3Qg ZWxlbWVudCBjYW4gYWxzbyBiZQp0aGUgc3ltYm9sIOKAmGFsbOKAmSwgd2hpY2ggbWVhbnMgdG8g bG9hZCB0aGUgbGF0ZXN0IGluc3RhbGxlZCB2ZXJzaW9uIG9mCmFueSBwYWNrYWdlIG5vdCBuYW1l ZCBieSB0aGUgb3RoZXIgbGlzdCBlbGVtZW50cy4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzCmp1c3Qg 4oCYJyhhbGwp4oCZLgoKICAgRm9yIGV4YW1wbGUsIGlmIHlvdSBzZXQg4oCYcGFja2FnZS1sb2Fk LWxpc3TigJkgdG8g4oCYJygobXVzZSAiMy4yMCIpCmFsbCnigJksIHRoZW4gRW1hY3Mgb25seSBs b2FkcyB2ZXJzaW9uIDMuMjAgb2YgdGhlIOKAmG11c2XigJkgcGFja2FnZSwgcGx1cwphbnkgaW5z dGFsbGVkIHZlcnNpb24gb2YgcGFja2FnZXMgb3RoZXIgdGhhbiDigJhtdXNl4oCZLiAgQW55IG90 aGVyIHZlcnNpb24Kb2Yg4oCYbXVzZeKAmSB0aGF0IGhhcHBlbnMgdG8gYmUgaW5zdGFsbGVkIHdp bGwgYmUgaWdub3JlZC4gIFRoZSDigJhtdXNl4oCZCnBhY2thZ2Ugd2lsbCBiZSBsaXN0ZWQgaW4g dGhlIHBhY2thZ2UgbWVudSB3aXRoIHRoZSDigJhoZWxk4oCZIHN0YXR1cy4KCgoqKiA0OC4zIFBh Y2thZ2UgRmlsZXMgYW5kIERpcmVjdG9yeSBMYXlvdXQKCkVhY2ggcGFja2FnZSBpcyBkb3dubG9h ZGVkIGZyb20gdGhlIHBhY2thZ2UgYXJjaGl2ZSBpbiB0aGUgZm9ybSBvZiBhCnNpbmdsZSAicGFj a2FnZSBmaWxlIuKAlGVpdGhlciBhbiBFbWFjcyBMaXNwIHNvdXJjZSBmaWxlLCBvciBhIHRhciBm aWxlCmNvbnRhaW5pbmcgbXVsdGlwbGUgRW1hY3MgTGlzcCBzb3VyY2UgYW5kIG90aGVyIGZpbGVz LiAgUGFja2FnZSBmaWxlcwphcmUgYXV0b21hdGljYWxseSByZXRyaWV2ZWQsIHByb2Nlc3NlZCwg YW5kIGRpc3Bvc2VkIG9mIGJ5IHRoZSBFbWFjcwpjb21tYW5kcyB0aGF0IGluc3RhbGwgcGFja2Fn ZXMuICBOb3JtYWxseSwgeW91IHdpbGwgbm90IG5lZWQgdG8gZGVhbApkaXJlY3RseSB3aXRoIHRo ZW0sIHVubGVzcyB5b3UgYXJlIG1ha2luZyBhIHBhY2thZ2UgKCpub3RlCihlbGlzcClQYWNrYWdp bmc6OikuICBTaG91bGQgeW91IGV2ZXIgbmVlZCB0byBpbnN0YWxsIGEgcGFja2FnZSBkaXJlY3Rs eQpmcm9tIGEgcGFja2FnZSBmaWxlLCB1c2UgdGhlIGNvbW1hbmQg4oCYTS14IHBhY2thZ2UtaW5z dGFsbC1maWxl4oCZLgoKICAgT25jZSBpbnN0YWxsZWQsIHRoZSBjb250ZW50cyBvZiBhIHBhY2th Z2UgYXJlIHBsYWNlZCBpbiBhCnN1YmRpcmVjdG9yeSBvZiDigJh+Ly5lbWFjcy5kL2VscGEv4oCZ ICh5b3UgY2FuIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGF0CmRpcmVjdG9yeSBieSBjaGFuZ2luZyB0 aGUgdmFyaWFibGUg4oCYcGFja2FnZS11c2VyLWRpcuKAmSkuICBUaGUgcGFja2FnZQpzdWJkaXJl Y3RvcnkgaXMgbmFtZWQg4oCYTkFNRS1WRVJTSU9O4oCZLCB3aGVyZSBOQU1FIGlzIHRoZSBwYWNr YWdlIG5hbWUgYW5kClZFUlNJT04gaXMgaXRzIHZlcnNpb24gc3RyaW5nLgoKICAgSW4gYWRkaXRp b24gdG8g4oCYcGFja2FnZS11c2VyLWRpcuKAmSwgRW1hY3MgbG9va3MgZm9yIGluc3RhbGxlZCBw YWNrYWdlcwppbiB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluIOKAmHBhY2thZ2UtZGlyZWN0b3J5 LWxpc3TigJkuICBUaGVzZQpkaXJlY3RvcmllcyBhcmUgbWVhbnQgZm9yIHN5c3RlbSBhZG1pbmlz dHJhdG9ycyB0byBtYWtlIEVtYWNzIHBhY2thZ2VzCmF2YWlsYWJsZSBzeXN0ZW0td2lkZTsgRW1h Y3MgaXRzZWxmIG5ldmVyIGluc3RhbGxzIHBhY2thZ2VzIHRoZXJlLiAgVGhlCnBhY2thZ2Ugc3Vi ZGlyZWN0b3JpZXMgZm9yIOKAmHBhY2thZ2UtZGlyZWN0b3J5LWxpc3TigJkgYXJlIGxhaWQgb3V0 IGluIHRoZQpzYW1lIHdheSBhcyBpbiDigJhwYWNrYWdlLXVzZXItZGly4oCZLgoKICAgRGVsZXRp bmcgYSBwYWNrYWdlICgqbm90ZSBQYWNrYWdlIE1lbnU6OikgaW52b2x2ZXMgZGVsZXRpbmcgdGhl CmNvcnJlc3BvbmRpbmcgcGFja2FnZSBzdWJkaXJlY3RvcnkuICBUaGlzIG9ubHkgd29ya3MgZm9y IHBhY2thZ2VzCmluc3RhbGxlZCBpbiDigJhwYWNrYWdlLXVzZXItZGly4oCZOyBpZiB0b2xkIHRv IGFjdCBvbiBhIHBhY2thZ2UgaW4gYQpzeXN0ZW0td2lkZSBwYWNrYWdlIGRpcmVjdG9yeSwgdGhl IGRlbGV0aW9uIGNvbW1hbmQgc2lnbmFscyBhbiBlcnJvci4KCgoqIDQ5IEN1c3RvbWl6YXRpb24K ClRoaXMgY2hhcHRlciBkZXNjcmliZXMgc29tZSBzaW1wbGUgbWV0aG9kcyB0byBjdXN0b21pemUg dGhlIGJlaGF2aW9yIG9mCkVtYWNzLgoKICAgQXBhcnQgZnJvbSB0aGUgbWV0aG9kcyBkZXNjcmli ZWQgaGVyZSwgc2VlICpub3RlIFggUmVzb3VyY2VzOjogZm9yCmluZm9ybWF0aW9uIGFib3V0IHVz aW5nIFggcmVzb3VyY2VzIHRvIGN1c3RvbWl6ZSBFbWFjcywgYW5kIHNlZSAqbm90ZQpLZXlib2Fy ZCBNYWNyb3M6OiBmb3IgaW5mb3JtYXRpb24gYWJvdXQgcmVjb3JkaW5nIGFuZCByZXBsYXlpbmcg a2V5Ym9hcmQKbWFjcm9zLiAgTWFraW5nIG1vcmUgZmFyLXJlYWNoaW5nIGFuZCBvcGVuLWVuZGVk IGNoYW5nZXMgaW52b2x2ZXMKd3JpdGluZyBFbWFjcyBMaXNwIGNvZGU7IHNlZSAqbm90ZSBFbWFj cyBMaXNwOiAoZWxpc3ApVG9wLgoKKyBNZW51OgoKICAtIEVhc3kgQ3VzdG9taXphdGlvbjo6ICBD b252ZW5pZW50IHdheSB0byBicm93c2UgYW5kIGNoYW5nZSBzZXR0aW5ncy4KICAtIFZhcmlhYmxl czo6ICAgICAgICAgICBNYW55IEVtYWNzIGNvbW1hbmRzIGV4YW1pbmUgRW1hY3MgdmFyaWFibGVz CiAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gZGVjaWRlIHdoYXQgdG8gZG87IGJ5IHNldHRp bmcgdmFyaWFibGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBjYW4gY29udHJvbCB0 aGVpciBmdW5jdGlvbmluZy4KICAtIEtleSBCaW5kaW5nczo6ICAgICAgICBUaGUga2V5bWFwcyBz YXkgd2hhdCBjb21tYW5kIGVhY2gga2V5IHJ1bnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg QnkgY2hhbmdpbmcgdGhlbSwgeW91IGNhbiByZWRlZmluZSBrZXlzLgogIC0gSW5pdCBGaWxlOjog ICAgICAgICAgIEhvdyB0byB3cml0ZSBjb21tb24gY3VzdG9taXphdGlvbnMgaW4gdGhlCiAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gZmlsZS4KCgoqKiA0OS4xIEVhc3kg Q3VzdG9taXphdGlvbiBJbnRlcmZhY2UKCkVtYWNzIGhhcyBtYW55ICJzZXR0aW5ncyIgd2hpY2gg eW91IGNhbiBjaGFuZ2UuICBNb3N0IHNldHRpbmdzIGFyZQoiY3VzdG9taXphYmxlIHZhcmlhYmxl cyIgKCpub3RlIFZhcmlhYmxlczo6KSwgd2hpY2ggYXJlIGFsc28gY2FsbGVkCiJ1c2VyIG9wdGlv bnMiLiAgVGhlcmUgaXMgYSBodWdlIG51bWJlciBvZiBjdXN0b21pemFibGUgdmFyaWFibGVzLApj b250cm9sbGluZyBudW1lcm91cyBhc3BlY3RzIG9mIEVtYWNzIGJlaGF2aW9yOyB0aGUgdmFyaWFi bGVzIGRvY3VtZW50ZWQKaW4gdGhpcyBtYW51YWwgYXJlIGxpc3RlZCBpbiAqbm90ZSBWYXJpYWJs ZSBJbmRleDo6LiAgQSBzZXBhcmF0ZSBjbGFzcwpvZiBzZXR0aW5ncyBhcmUgdGhlICJmYWNlcyIs IHdoaWNoIGRldGVybWluZSB0aGUgZm9udHMsIGNvbG9ycywgYW5kCm90aGVyIGF0dHJpYnV0ZXMg b2YgdGV4dCAoKm5vdGUgRmFjZXM6OikuCgogICBUbyBicm93c2UgYW5kIGFsdGVyIHNldHRpbmdz IChib3RoIHZhcmlhYmxlcyBhbmQgZmFjZXMpLCB0eXBlIOKAmE0teApjdXN0b21pemXigJkuICBU aGlzIGNyZWF0ZXMgYSAiY3VzdG9taXphdGlvbiBidWZmZXIiLCB3aGljaCBsZXRzIHlvdQpuYXZp Z2F0ZSB0aHJvdWdoIGEgbG9naWNhbGx5IG9yZ2FuaXplZCBsaXN0IG9mIHNldHRpbmdzLCBlZGl0 IGFuZCBzZXQKdGhlaXIgdmFsdWVzLCBhbmQgc2F2ZSB0aGVtIHBlcm1hbmVudGx5LgoKKyBNZW51 OgoKICAtIEN1c3RvbWl6YXRpb24gR3JvdXBzOjogICAgIEhvdyBzZXR0aW5ncyBhcmUgY2xhc3Np ZmllZC4KICAtIEJyb3dzaW5nIEN1c3RvbTo6ICAgICAgICAgIEJyb3dzaW5nIGFuZCBzZWFyY2hp bmcgZm9yIHNldHRpbmdzLgogIC0gQ2hhbmdpbmcgYSBWYXJpYWJsZTo6ICAgICAgSG93IHRvIGVk aXQgYW4gb3B0aW9u4oCZcyB2YWx1ZSBhbmQgc2V0IHRoZSBvcHRpb24uCiAgLSBTYXZpbmcgQ3Vz dG9taXphdGlvbnM6OiAgICBTYXZpbmcgY3VzdG9taXphdGlvbnMgZm9yIGZ1dHVyZSBFbWFjcyBz ZXNzaW9ucy4KICAtIEZhY2UgQ3VzdG9taXphdGlvbjo6ICAgICAgIEhvdyB0byBlZGl0IHRoZSBh dHRyaWJ1dGVzIG9mIGEgZmFjZS4KICAtIFNwZWNpZmljIEN1c3RvbWl6YXRpb246OiAgIEN1c3Rv bWl6aW5nIHNwZWNpZmljIHNldHRpbmdzIG9yIGdyb3Vwcy4KICAtIEN1c3RvbSBUaGVtZXM6OiAg ICAgICAgICAgIENvbGxlY3Rpb25zIG9mIGN1c3RvbWl6YXRpb24gc2V0dGluZ3MuCiAgLSBDcmVh dGluZyBDdXN0b20gVGhlbWVzOjogICBIb3cgdG8gY3JlYXRlIGEgbmV3IGN1c3RvbSB0aGVtZS4K CgoqKiogNDkuMS4xIEN1c3RvbWl6YXRpb24gR3JvdXBzCgpDdXN0b21pemF0aW9uIHNldHRpbmdz IGFyZSBvcmdhbml6ZWQgaW50byAiY3VzdG9taXphdGlvbiBncm91cHMiLiAgVGhlc2UKZ3JvdXBz IGFyZSBjb2xsZWN0ZWQgaW50byBiaWdnZXIgZ3JvdXBzLCBhbGwgdGhlIHdheSB1cCB0byBhIG1h c3Rlcgpncm91cCBjYWxsZWQg4oCYRW1hY3PigJkuCgogICDigJhNLXggY3VzdG9taXpl4oCZIGNy ZWF0ZXMgYSBjdXN0b21pemF0aW9uIGJ1ZmZlciB0aGF0IHNob3dzIHRoZQp0b3AtbGV2ZWwg4oCY RW1hY3PigJkgZ3JvdXAuICBJdCBsb29rcyBsaWtlIHRoaXMsIGluIHBhcnQ6CgogICAgIEZvciBo ZWxwIHVzaW5nIHRoaXMgYnVmZmVyLCBzZWUgW0Vhc3kgQ3VzdG9taXphdGlvbl0gaW4gdGhlIFtF bWFjcyBtYW51YWxdLgoKICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fIFsgU2VhcmNoIF0KCiAgICAgIE9wZXJhdGUgb24gYWxsIHNldHRpbmdzIGluIHRoaXMgYnVm ZmVyOgogICAgICBbIFJldmVydC4uLiBdIFsgQXBwbHkgXSBbIEFwcGx5IGFuZCBTYXZlIF0KCgog ICAgIEVtYWNzIGdyb3VwOiBDdXN0b21pemF0aW9uIG9mIHRoZSBPbmUgVHJ1ZSBFZGl0b3IuCiAg ICAgICAgICAgW1N0YXRlXTogdmlzaWJsZSBncm91cCBtZW1iZXJzIGFyZSBhbGwgYXQgc3RhbmRh cmQgdmFsdWVzLgogICAgICAgICAgIFNlZSBhbHNvIFtNYW51YWxdLgoKICAgICBbRWRpdGluZ10g ICAgICBCYXNpYyB0ZXh0IGVkaXRpbmcgZmFjaWxpdGllcy4KICAgICBbQ29udmVuaWVuY2VdICBD b252ZW5pZW5jZSBmZWF0dXJlcyBmb3IgZmFzdGVyIGVkaXRpbmcuCgogICAgIC4uLk1PUkUgU0VD T05ELUxFVkVMIEdST1VQUy4uLgoKVGhlIG1haW4gcGFydCBvZiB0aGlzIGJ1ZmZlciBzaG93cyB0 aGUg4oCYRW1hY3PigJkgY3VzdG9taXphdGlvbiBncm91cCwKd2hpY2ggY29udGFpbnMgc2V2ZXJh bCBvdGhlciBncm91cHMgKOKAmEVkaXRpbmfigJksIOKAmENvbnZlbmllbmNl4oCZLCBldGMuKS4K VGhlIGNvbnRlbnRzIG9mIHRob3NlIGdyb3VwcyBhcmUgbm90IGxpc3RlZCBoZXJlLCBvbmx5IG9u ZSBsaW5lIG9mCmRvY3VtZW50YXRpb24gZWFjaC4KCiAgIFRoZSAic3RhdGUiIG9mIHRoZSBncm91 cCBpbmRpY2F0ZXMgd2hldGhlciBzZXR0aW5nIGluIHRoYXQgZ3JvdXAgaGFzCmJlZW4gZWRpdGVk LCBzZXQsIG9yIHNhdmVkLiAgKk5vdGUgQ2hhbmdpbmcgYSBWYXJpYWJsZTo6LgoKICAgTW9zdCBv ZiB0aGUgY3VzdG9taXphdGlvbiBidWZmZXIgaXMgcmVhZC1vbmx5LCBidXQgaXQgaW5jbHVkZXMg c29tZQoiZWRpdGFibGUgZmllbGRzIiB0aGF0IHlvdSBjYW4gZWRpdC4gIEZvciBleGFtcGxlLCBh dCB0aGUgdG9wIG9mIHRoZQpjdXN0b21pemF0aW9uIGJ1ZmZlciBpcyBhbiBlZGl0YWJsZSBmaWVs ZCBmb3Igc2VhcmNoaW5nIGZvciBzZXR0aW5ncwooKm5vdGUgQnJvd3NpbmcgQ3VzdG9tOjopLiAg VGhlcmUgYXJlIGFsc28gImJ1dHRvbnMiIGFuZCAibGlua3MiLCB3aGljaAp5b3UgY2FuIGFjdGl2 YXRlIGJ5IGVpdGhlciBjbGlja2luZyB3aXRoIHRoZSBtb3VzZSwgb3IgbW92aW5nIHBvaW50CnRo ZXJlIGFuZCB0eXBpbmcg4oCYPFJFVD7igJkuICBGb3IgZXhhbXBsZSwgdGhlIGdyb3VwIG5hbWVz IGxpa2Ug4oCYW0VkaXRpbmdd4oCZCmFyZSBsaW5rczsgYWN0aXZhdGluZyBvbmUgb2YgdGhlc2Ug bGlua3MgYnJpbmdzIHVwIHRoZSBjdXN0b21pemF0aW9uCmJ1ZmZlciBmb3IgdGhhdCBncm91cC4K CiAgIEluIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlciwgeW91IGNhbiB0eXBlIOKAmDxUQUI+4oCZ ICjigJh3aWRnZXQtZm9yd2FyZOKAmSkKdG8gbW92ZSBmb3J3YXJkIHRvIHRoZSBuZXh0IGJ1dHRv biBvciBlZGl0YWJsZSBmaWVsZC4gIOKAmFMtPFRBQj7igJkKKOKAmHdpZGdldC1iYWNrd2FyZOKA mSkgbW92ZXMgYmFjayB0byB0aGUgcHJldmlvdXMgYnV0dG9uIG9yIGVkaXRhYmxlIGZpZWxkLgoK CioqKiA0OS4xLjIgQnJvd3NpbmcgYW5kIFNlYXJjaGluZyBmb3IgU2V0dGluZ3MKCkZyb20gdGhl IHRvcC1sZXZlbCBjdXN0b21pemF0aW9uIGJ1ZmZlciBjcmVhdGVkIGJ5IOKAmE0teCBjdXN0b21p emXigJksIHlvdQpjYW4gZm9sbG93IHRoZSBsaW5rcyB0byB0aGUgc3ViZ3JvdXBzIG9mIHRoZSDi gJhFbWFjc+KAmSBjdXN0b21pemF0aW9uCmdyb3VwLiAgVGhlc2Ugc3ViZ3JvdXBzIG1heSBjb250 YWluIHNldHRpbmdzIGZvciB5b3UgdG8gY3VzdG9taXplOyB0aGV5Cm1heSBhbHNvIGNvbnRhaW4g ZnVydGhlciBzdWJncm91cHMsIGRlYWxpbmcgd2l0aCB5ZXQgbW9yZSBzcGVjaWFsaXplZApzdWJz eXN0ZW1zIG9mIEVtYWNzLiAgQXMgeW91IG5hdmlnYXRlIHRoZSBoaWVyYXJjaHkgb2YgY3VzdG9t aXphdGlvbgpncm91cHMsIHlvdSBzaG91bGQgZmluZCBzb21lIHNldHRpbmdzIHRoYXQgeW91IHdh bnQgdG8gY3VzdG9taXplLgoKICAgSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGN1c3RvbWl6aW5n IGEgcGFydGljdWxhciBzZXR0aW5nIG9yCmN1c3RvbWl6YXRpb24gZ3JvdXAsIHlvdSBjYW4gZ28g c3RyYWlnaHQgdGhlcmUgd2l0aCB0aGUgY29tbWFuZHMg4oCYTS14CmN1c3RvbWl6ZS1vcHRpb27i gJksIOKAmE0teCBjdXN0b21pemUtZmFjZeKAmSwgb3Ig4oCYTS14IGN1c3RvbWl6ZS1ncm91cOKA mS4KKk5vdGUgU3BlY2lmaWMgQ3VzdG9taXphdGlvbjo6LgoKICAgSWYgeW91IGRvbuKAmXQga25v dyBleGFjdGx5IHdoYXQgZ3JvdXBzIG9yIHNldHRpbmdzIHlvdSB3YW50IHRvCmN1c3RvbWl6ZSwg eW91IGNhbiBzZWFyY2ggZm9yIHRoZW0gdXNpbmcgdGhlIGVkaXRhYmxlIHNlYXJjaCBmaWVsZCBh dAp0aGUgdG9wIG9mIGVhY2ggY3VzdG9taXphdGlvbiBidWZmZXIuICBIZXJlLCB5b3UgY2FuIHR5 cGUgaW4gYSBzZWFyY2gKdGVybeKAlGVpdGhlciBvbmUgb3IgbW9yZSB3b3JkcyBzZXBhcmF0ZWQg Ynkgc3BhY2VzLCBvciBhIHJlZ3VsYXIKZXhwcmVzc2lvbiAoKm5vdGUgUmVnZXhwczo6KS4gIFRo ZW4gdHlwZSDigJg8UkVUPuKAmSBpbiB0aGUgZmllbGQsIG9yCmFjdGl2YXRlIHRoZSDigJhTZWFy Y2jigJkgYnV0dG9uIG5leHQgdG8gaXQsIHRvIHN3aXRjaCB0byBhIGN1c3RvbWl6YXRpb24KYnVm ZmVyIGNvbnRhaW5pbmcgZ3JvdXBzIGFuZCBzZXR0aW5ncyB0aGF0IG1hdGNoIHRob3NlIHRlcm1z LiAgTm90ZSwKaG93ZXZlciwgdGhhdCB0aGlzIGZlYXR1cmUgb25seSBmaW5kcyBncm91cHMgYW5k IHNldHRpbmdzIHRoYXQgYXJlCmxvYWRlZCBpbiB0aGUgY3VycmVudCBFbWFjcyBzZXNzaW9uLgoK ICAgSWYgeW91IGRvbuKAmXQgd2FudCBjdXN0b21pemF0aW9uIGJ1ZmZlcnMgdG8gc2hvdyB0aGUg c2VhcmNoIGZpZWxkLApjaGFuZ2UgdGhlIHZhcmlhYmxlIOKAmGN1c3RvbS1zZWFyY2gtZmllbGTi gJkgdG8g4oCYbmls4oCZLgoKICAgVGhlIGNvbW1hbmQg4oCYTS14IGN1c3RvbWl6ZS1hcHJvcG9z 4oCZIGlzIHNpbWlsYXIgdG8gdXNpbmcgdGhlIHNlYXJjaApmaWVsZCwgZXhjZXB0IHRoYXQgaXQg cmVhZHMgdGhlIHNlYXJjaCB0ZXJtKHMpIHVzaW5nIHRoZSBtaW5pYnVmZmVyLgoqTm90ZSBTcGVj aWZpYyBDdXN0b21pemF0aW9uOjouCgogICDigJhNLXggY3VzdG9taXplLWJyb3dzZeKAmSBpcyBh bm90aGVyIHdheSB0byBicm93c2UgdGhlIGF2YWlsYWJsZQpzZXR0aW5ncy4gIFRoaXMgY29tbWFu ZCBjcmVhdGVzIGEgc3BlY2lhbCBjdXN0b21pemF0aW9uIGJ1ZmZlciwgd2hpY2gKc2hvd3Mgb25s eSB0aGUgbmFtZXMgb2YgZ3JvdXBzIGFuZCBzZXR0aW5ncywgaW4gYSBzdHJ1Y3R1cmVkIGxheW91 dC4KWW91IGNhbiBzaG93IHRoZSBjb250ZW50cyBvZiBhIGdyb3VwLCBpbiB0aGUgc2FtZSBidWZm ZXIsIGJ5IGludm9raW5nCnRoZSDigJhbK13igJkgYnV0dG9uIG5leHQgdG8gdGhlIGdyb3VwIG5h bWUuICBXaGVuIHRoZSBncm91cCBjb250ZW50cyBhcmUKc2hvd24sIHRoZSBidXR0b24gY2hhbmdl cyB0byDigJhbLV3igJk7IGludm9raW5nIHRoYXQgaGlkZXMgdGhlIGdyb3VwCmNvbnRlbnRzIGFn YWluLiAgRWFjaCBncm91cCBvciBzZXR0aW5nIGluIHRoaXMgYnVmZmVyIGhhcyBhIGxpbmsgd2hp Y2gKc2F5cyDigJhbR3JvdXBd4oCZLCDigJhbT3B0aW9uXeKAmSBvciDigJhbRmFjZV3igJkuICBJ bnZva2luZyB0aGlzIGxpbmsgY3JlYXRlcyBhbgpvcmRpbmFyeSBjdXN0b21pemF0aW9uIGJ1ZmZl ciBzaG93aW5nIGp1c3QgdGhhdCBncm91cCwgb3B0aW9uLCBvciBmYWNlOwp0aGlzIGlzIHRoZSB3 YXkgdG8gY2hhbmdlIHNldHRpbmdzIHRoYXQgeW91IGZpbmQgd2l0aCDigJhNLXgKY3VzdG9taXpl LWJyb3dzZeKAmS4KCgoqKiogNDkuMS4zIENoYW5naW5nIGEgVmFyaWFibGUKCkhlcmUgaXMgYW4g ZXhhbXBsZSBvZiB3aGF0IGEgdmFyaWFibGUsIG9yIHVzZXIgb3B0aW9uLCBsb29rcyBsaWtlIGlu IHRoZQpjdXN0b21pemF0aW9uIGJ1ZmZlcjoKCiAgICAgW0hpZGVdIEtpbGwgUmluZyBNYXg6IDYw CiAgICAgICAgW1N0YXRlXTogU1RBTkRBUkQuCiAgICAgICAgTWF4aW11bSBsZW5ndGggb2Yga2ls bCByaW5nIGJlZm9yZSBvbGRlc3QgZWxlbWVudHMgYXJlIHRocm93biBhd2F5LgoKICAgVGhlIGZp cnN0IGxpbmUgc2hvd3MgdGhhdCB0aGUgdmFyaWFibGUgaXMgbmFtZWQg4oCYa2lsbC1yaW5nLW1h eOKAmSwKZm9ybWF0dGVkIGFzIOKAmEtpbGwgUmluZyBNYXjigJkgZm9yIGVhc2llciB2aWV3aW5n LiAgSXRzIHZhbHVlIGlzIOKAmDYw4oCZLgpUaGUgYnV0dG9uIGxhYmVsZWQg4oCYW0hpZGVd4oCZ LCBpZiBhY3RpdmF0ZWQsIGhpZGVzIHRoZSB2YXJpYWJsZeKAmXMgdmFsdWUKYW5kIHN0YXRlOyB0 aGlzIGlzIHVzZWZ1bCB0byBhdm9pZCBjbHV0dGVyaW5nIHVwIHRoZSBjdXN0b21pemF0aW9uCmJ1 ZmZlciB3aXRoIHZlcnkgbG9uZyB2YWx1ZXMgKGZvciB0aGlzIHJlYXNvbiwgdmFyaWFibGVzIHRo YXQgaGF2ZSB2ZXJ5CmxvbmcgdmFsdWVzIG1heSBzdGFydCBvdXQgaGlkZGVuKS4gIElmIHlvdSB1 c2UgdGhlIOKAmFtIaWRlXeKAmSBidXR0b24sIGl0CmNoYW5nZXMgdG8g4oCYW1Nob3cgVmFsdWVd 4oCZLCB3aGljaCB5b3UgY2FuIGFjdGl2YXRlIHRvIHJldmVhbCB0aGUgdmFsdWUKYW5kIHN0YXRl LiAgT24gYSBncmFwaGljYWwgZGlzcGxheSwgdGhlIOKAmFtIaWRlXeKAmSBhbmQg4oCYW1Nob3cg VmFsdWVd4oCZCmJ1dHRvbnMgYXJlIHJlcGxhY2VkIHdpdGggZ3JhcGhpY2FsIHRyaWFuZ2xlcyBw b2ludGluZyBkb3dud2FyZHMgYW5kCnJpZ2h0d2FyZHMgcmVzcGVjdGl2ZWx5LgoKICAgVGhlIGxp bmUgYWZ0ZXIgdGhlIHZhcmlhYmxlIG5hbWUgaW5kaWNhdGVzIHRoZSAiY3VzdG9taXphdGlvbiBz dGF0ZSIKb2YgdGhlIHZhcmlhYmxlOiBpbiB0aGlzIGV4YW1wbGUsIOKAmFNUQU5EQVJE4oCZIG1l YW5zIHlvdSBoYXZlIG5vdCBjaGFuZ2VkCnRoZSB2YXJpYWJsZSwgc28gaXRzIHZhbHVlIGlzIHRo ZSBkZWZhdWx0IG9uZS4gIFRoZSDigJhbU3RhdGVd4oCZIGJ1dHRvbgpnaXZlcyBhIG1lbnUgb2Yg b3BlcmF0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIHZhcmlhYmxlLgoKICAgQmVsb3cgdGhlIGN1 c3RvbWl6YXRpb24gc3RhdGUgaXMgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSB2YXJpYWJsZS4K VGhpcyBpcyB0aGUgc2FtZSBkb2N1bWVudGF0aW9uIHRoYXQgd291bGQgYmUgc2hvd24gYnkgdGhl IOKAmEMtaCB24oCZCmNvbW1hbmQgKCpub3RlIEV4YW1pbmluZzo6KS4gIElmIHRoZSBkb2N1bWVu dGF0aW9uIGlzIG1vcmUgdGhhbiBvbmUgbGluZQpsb25nLCBvbmx5IG9uZSBsaW5lIG1heSBiZSBz aG93bi4gIElmIHNvLCB0aGF0IGxpbmUgZW5kcyB3aXRoIGEg4oCYW01vcmVd4oCZCmJ1dHRvbjsg YWN0aXZhdGUgdGhpcyB0byBzZWUgdGhlIGZ1bGwgZG9jdW1lbnRhdGlvbi4KCiAgIFRvIGVudGVy IGEgbmV3IHZhbHVlIGZvciDigJhLaWxsIFJpbmcgTWF44oCZLCBqdXN0IG1vdmUgcG9pbnQgdG8g dGhlCnZhbHVlIGFuZCBlZGl0IGl0LiAgRm9yIGV4YW1wbGUsIHR5cGUg4oCYTS1k4oCZIHRvIGRl bGV0ZSB0aGUg4oCYNjDigJkgYW5kIHR5cGUKaW4gYW5vdGhlciBudW1iZXIuICBBcyB5b3UgYmVn aW4gdG8gYWx0ZXIgdGhlIHRleHQsIHRoZSDigJhbU3RhdGVd4oCZIGxpbmUKd2lsbCBjaGFuZ2U6 CgogICAgIFtTdGF0ZV06IEVESVRFRCwgc2hvd24gdmFsdWUgZG9lcyBub3QgdGFrZSBlZmZlY3Qg dW50aWwgeW91CiAgICAgICAgICAgICAgc2V0IG9yIHNhdmUgaXQuCgpFZGl0aW5nIHRoZSB2YWx1 ZSBkb2VzIG5vdCBtYWtlIGl0IHRha2UgZWZmZWN0IHJpZ2h0IGF3YXkuICBUbyBkbyB0aGF0LAp5 b3UgbXVzdCAic2V0IiB0aGUgdmFyaWFibGUgYnkgYWN0aXZhdGluZyB0aGUg4oCYW1N0YXRlXeKA mSBidXR0b24gYW5kCmNob29zaW5nIOKAmFNldCBmb3IgQ3VycmVudCBTZXNzaW9u4oCZLiAgVGhl biB0aGUgdmFyaWFibGXigJlzIHN0YXRlIGJlY29tZXM6CgogICAgIFtTdGF0ZV06IFNFVCBmb3Ig Y3VycmVudCBzZXNzaW9uIG9ubHkuCgpZb3UgZG9u4oCZdCBoYXZlIHRvIHdvcnJ5IGFib3V0IHNw ZWNpZnlpbmcgYSB2YWx1ZSB0aGF0IGlzIG5vdCB2YWxpZDsgdGhlCuKAmFNldCBmb3IgQ3VycmVu dCBTZXNzaW9u4oCZIG9wZXJhdGlvbiBjaGVja3MgZm9yIHZhbGlkaXR5IGFuZCB3aWxsIG5vdApp bnN0YWxsIGFuIHVuYWNjZXB0YWJsZSB2YWx1ZS4KCiAgIFdoaWxlIGVkaXRpbmcgY2VydGFpbiBr aW5kcyBvZiB2YWx1ZXMsIHN1Y2ggYXMgZmlsZSBuYW1lcywgZGlyZWN0b3J5Cm5hbWVzLCBhbmQg RW1hY3MgY29tbWFuZCBuYW1lcywgeW91IGNhbiBwZXJmb3JtIGNvbXBsZXRpb24gd2l0aCDigJhD LU0taeKAmQoo4oCYd2lkZ2V0LWNvbXBsZXRl4oCZKSwgb3IgdGhlIGVxdWl2YWxlbnQga2V5cyDi gJhNLTxUQUI+4oCZIG9yIOKAmDxFU0M+IDxUQUI+4oCZLgpUaGlzIGJlaGF2ZXMgbXVjaCBsaWtl IG1pbmlidWZmZXIgY29tcGxldGlvbiAoKm5vdGUgQ29tcGxldGlvbjo6KS4KCiAgIFR5cGluZyDi gJg8UkVUPuKAmSBvbiBhbiBlZGl0YWJsZSB2YWx1ZSBmaWVsZCBtb3ZlcyBwb2ludCBmb3J3YXJk IHRvIHRoZQpuZXh0IGZpZWxkIG9yIGJ1dHRvbiwgbGlrZSDigJg8VEFCPuKAmS4gIFlvdSBjYW4g dGh1cyB0eXBlIOKAmDxSRVQ+4oCZIHdoZW4geW91CmFyZSBmaW5pc2hlZCBlZGl0aW5nIGEgZmll bGQsIHRvIG1vdmUgb24gdG8gdGhlIG5leHQgYnV0dG9uIG9yIGZpZWxkLgpUbyBpbnNlcnQgYSBu ZXdsaW5lIHdpdGhpbiBhbiBlZGl0YWJsZSBmaWVsZCwgdXNlIOKAmEMtb+KAmSBvciDigJhDLXEg Qy1q4oCZLgoKICAgRm9yIHNvbWUgdmFyaWFibGVzLCB0aGVyZSBpcyBvbmx5IGEgZml4ZWQgc2V0 IG9mIGxlZ2l0aW1hdGUgdmFsdWVzLAphbmQgeW91IGFyZSBub3QgYWxsb3dlZCB0byBlZGl0IHRo ZSB2YWx1ZSBkaXJlY3RseS4gIEluc3RlYWQsIGEg4oCYW1ZhbHVlCk1lbnVd4oCZIGJ1dHRvbiBh cHBlYXJzIGJlZm9yZSB0aGUgdmFsdWU7IGFjdGl2YXRpbmcgdGhpcyBidXR0b24gcHJlc2VudHMK YSBjaG9pY2Ugb2YgdmFsdWVzLiAgRm9yIGEgYm9vbGVhbiDigJxvbiBvciBvZmbigJ0gdmFsdWUs IHRoZSBidXR0b24gc2F5cwrigJhbVG9nZ2xlXeKAmSwgYW5kIGZsaXBzIHRoZSB2YWx1ZS4gIEFm dGVyIHVzaW5nIHRoZSDigJhbVmFsdWUgTWVudV3igJkgb3IK4oCYW1RvZ2dsZV3igJkgYnV0dG9u LCB5b3UgbXVzdCBhZ2FpbiBzZXQgdGhlIHZhcmlhYmxlIHRvIG1ha2UgdGhlIGNob3Nlbgp2YWx1 ZSB0YWtlIGVmZmVjdC4KCiAgIFNvbWUgdmFyaWFibGVzIGhhdmUgdmFsdWVzIHdpdGggY29tcGxl eCBzdHJ1Y3R1cmUuICBGb3IgZXhhbXBsZSwgdGhlCnZhbHVlIG9mIOKAmG1pbmlidWZmZXItZnJh bWUtYWxpc3TigJkgaXMgYW4gYXNzb2NpYXRpb24gbGlzdC4gIEhlcmUgaXMgaG93Cml0IGFwcGVh cnMgaW4gdGhlIGN1c3RvbWl6YXRpb24gYnVmZmVyOgoKICAgICBbSGlkZV0gTWluaWJ1ZmZlciBG cmFtZSBBbGlzdDoKICAgICBbSU5TXSBbREVMXSBQYXJhbWV0ZXI6IHdpZHRoCiAgICAgICAgICAg ICAgICAgVmFsdWU6IDgwCiAgICAgW0lOU10gW0RFTF0gUGFyYW1ldGVyOiBoZWlnaHQKICAgICAg ICAgICAgICAgICBWYWx1ZTogMgogICAgIFtJTlNdCiAgICAgICAgWyBTdGF0ZSBdOiBTVEFOREFS RC4KICAgICAgICBBbGlzdCBvZiBwYXJhbWV0ZXJzIGZvciB0aGUgaW5pdGlhbCBtaW5pYnVmZmVy IGZyYW1lLiBbSGlkZV0KICAgICAgICBb4oCmbW9yZSBsaW5lcyBvZiBkb2N1bWVudGF0aW9u4oCm XQoKSW4gdGhpcyBjYXNlLCBlYWNoIGFzc29jaWF0aW9uIGluIHRoZSBsaXN0IGNvbnNpc3RzIG9m IHR3byBpdGVtcywgb25lCmxhYmVsZWQg4oCYUGFyYW1ldGVy4oCZIGFuZCBvbmUgbGFiZWxlZCDi gJhWYWx1ZeKAmTsgYm90aCBhcmUgZWRpdGFibGUgZmllbGRzLgpZb3UgY2FuIGRlbGV0ZSBhbiBh c3NvY2lhdGlvbiBmcm9tIHRoZSBsaXN0IHdpdGggdGhlIOKAmFtERUxd4oCZIGJ1dHRvbiBuZXh0 CnRvIGl0LiAgVG8gYWRkIGFuIGFzc29jaWF0aW9uLCB1c2UgdGhlIOKAmFtJTlNd4oCZIGJ1dHRv biBhdCB0aGUgcG9zaXRpb24Kd2hlcmUgeW91IHdhbnQgdG8gaW5zZXJ0IGl0OyB0aGUgdmVyeSBs YXN0IOKAmFtJTlNd4oCZIGJ1dHRvbiBpbnNlcnRzIGF0IHRoZQplbmQgb2YgdGhlIGxpc3QuCgog ICBXaGVuIHlvdSBzZXQgYSB2YXJpYWJsZSwgdGhlIG5ldyB2YWx1ZSB0YWtlcyBlZmZlY3Qgb25s eSBpbiB0aGUKY3VycmVudCBFbWFjcyBzZXNzaW9uLiAgVG8gInNhdmUiIHRoZSB2YWx1ZSBmb3Ig ZnV0dXJlIHNlc3Npb25zLCB1c2UgdGhlCuKAmFtTdGF0ZV3igJkgYnV0dG9uIGFuZCBzZWxlY3Qg dGhlIOKAmFNhdmUgZm9yIEZ1dHVyZSBTZXNzaW9uc+KAmSBvcGVyYXRpb24uCipOb3RlIFNhdmlu ZyBDdXN0b21pemF0aW9uczo6LgoKICAgWW91IGNhbiBhbHNvIHJlc3RvcmUgdGhlIHZhcmlhYmxl IHRvIGl0cyBzdGFuZGFyZCB2YWx1ZSBieSB1c2luZyB0aGUK4oCYW1N0YXRlXeKAmSBidXR0b24g YW5kIHNlbGVjdGluZyB0aGUg4oCYRXJhc2UgQ3VzdG9taXphdGlvbuKAmSBvcGVyYXRpb24uClRo ZXJlIGFyZSBhY3R1YWxseSBmb3VyIHJlc2V0IG9wZXJhdGlvbnM6CgrigJhVbmRvIEVkaXRz4oCZ CiAgICAgSWYgeW91IGhhdmUgbW9kaWZpZWQgYnV0IG5vdCB5ZXQgc2V0IHRoZSB2YXJpYWJsZSwg dGhpcyByZXN0b3JlcwogICAgIHRoZSB0ZXh0IGluIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlciB0 byBtYXRjaCB0aGUgYWN0dWFsIHZhbHVlLgoK4oCYUmV2ZXJ0IFRoaXMgU2Vzc2lvbidzIEN1c3Rv bWl6YXRpb25z4oCZCiAgICAgVGhpcyByZXN0b3JlcyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxl IHRvIHRoZSBsYXN0IHNhdmVkIHZhbHVlLCBpZgogICAgIHRoZXJlIHdhcyBvbmUuICBPdGhlcndp c2UgaXQgcmVzdG9yZXMgdGhlIHN0YW5kYXJkIHZhbHVlLiAgSXQKICAgICB1cGRhdGVzIHRoZSB0 ZXh0IGFjY29yZGluZ2x5LgoK4oCYRXJhc2UgQ3VzdG9taXphdGlvbuKAmQogICAgIFRoaXMgc2V0 cyB0aGUgdmFyaWFibGUgdG8gaXRzIHN0YW5kYXJkIHZhbHVlLiAgQW55IHNhdmVkIHZhbHVlIHRo YXQKICAgICB5b3UgaGF2ZSBpcyBhbHNvIGVsaW1pbmF0ZWQuCgrigJhTZXQgdG8gQmFja3VwIFZh bHVl4oCZCiAgICAgVGhpcyBzZXRzIHRoZSB2YXJpYWJsZSB0byBhIHByZXZpb3VzIHZhbHVlIHRo YXQgd2FzIHNldCBpbiB0aGUKICAgICBjdXN0b21pemF0aW9uIGJ1ZmZlciBpbiB0aGlzIHNlc3Np b24uICBJZiB5b3UgY3VzdG9taXplIGEgdmFyaWFibGUKICAgICBhbmQgdGhlbiByZXNldCBpdCwg d2hpY2ggZGlzY2FyZHMgdGhlIGN1c3RvbWl6ZWQgdmFsdWUsIHlvdSBjYW4gZ2V0CiAgICAgdGhl IGRpc2NhcmRlZCB2YWx1ZSBiYWNrIGFnYWluIHdpdGggdGhpcyBvcGVyYXRpb24uCgogICBTb21l dGltZXMgaXQgaXMgdXNlZnVsIHRvIHJlY29yZCBhIGNvbW1lbnQgYWJvdXQgYSBzcGVjaWZpYwpj dXN0b21pemF0aW9uLiAgVXNlIHRoZSDigJhBZGQgQ29tbWVudOKAmSBpdGVtIGZyb20gdGhlIOKA mFtTdGF0ZV3igJkgbWVudSB0bwpjcmVhdGUgYSBmaWVsZCBmb3IgZW50ZXJpbmcgdGhlIGNvbW1l bnQuCgogICBOZWFyIHRoZSB0b3Agb2YgdGhlIGN1c3RvbWl6YXRpb24gYnVmZmVyIGFyZSB0d28g bGluZXMgb2YgYnV0dG9uczoKCiAgICAgIE9wZXJhdGUgb24gYWxsIHNldHRpbmdzIGluIHRoaXMg YnVmZmVyOgogICAgICBbUmV2ZXJ0Li4uXSBbQXBwbHldIFtBcHBseSBhbmQgU2F2ZV0KClRoZSDi gJhbUmV2ZXJ0Li4uXeKAmSBidXR0b24gZHJvcHMgYSBtZW51IHdpdGggdGhlIGZpcnN0IDMgcmVz ZXQgb3BlcmF0aW9ucwpkZXNjcmliZWQgYWJvdmUuICBUaGUg4oCYW0FwcGx5XeKAmSBidXR0b24g YXBwbGllcyB0aGUgc2V0dGluZ3MgZm9yIHRoZQpjdXJyZW50IHNlc3Npb24uICBUaGUg4oCYW0Fw cGx5IGFuZCBTYXZlXeKAmSBidXR0b24gYXBwbGllcyB0aGUgc2V0dGluZ3MgYW5kCnNhdmVzIHRo ZW0gZm9yIGZ1dHVyZSBzZXNzaW9uczsgdGhpcyBidXR0b24gZG9lcyBub3QgYXBwZWFyIGlmIEVt YWNzIHdhcwpzdGFydGVkIHdpdGggdGhlIOKAmC1x4oCZIG9yIOKAmC1R4oCZIG9wdGlvbiAoKm5v dGUgSW5pdGlhbCBPcHRpb25zOjopLgoKICAgVGhlIGNvbW1hbmQg4oCYQy1jIEMtY+KAmSAo4oCY Q3VzdG9tLXNldOKAmSkgaXMgZXF1aXZhbGVudCB0byB1c2luZyB0aGUg4oCYW1NldApmb3IgQ3Vy cmVudCBTZXNzaW9uXeKAmSBidXR0b24uICBUaGUgY29tbWFuZCDigJhDLXggQy1z4oCZICjigJhD dXN0b20tc2F2ZeKAmSkgaXMKbGlrZSB1c2luZyB0aGUg4oCYW1NhdmUgZm9yIEZ1dHVyZSBTZXNz aW9uc13igJkgYnV0dG9uLgoKICAgVGhlIOKAmFtFeGl0XeKAmSBidXR0b24gc3dpdGNoZXMgb3V0 IG9mIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlciwgYW5kCmJ1cmllcyB0aGUgYnVmZmVyIGF0IHRo ZSBib3R0b20gb2YgdGhlIGJ1ZmZlciBsaXN0LiAgVG8gbWFrZSBpdCBraWxsIHRoZQpjdXN0b21p emF0aW9uIGJ1ZmZlciBpbnN0ZWFkLCBjaGFuZ2UgdGhlIHZhcmlhYmxlCuKAmGN1c3RvbS1idWZm ZXItZG9uZS1raWxs4oCZIHRvIOKAmHTigJkuCgoKKioqIDQ5LjEuNCBTYXZpbmcgQ3VzdG9taXph dGlvbnMKCkluIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlciwgeW91IGNhbiAic2F2ZSIgYSBjdXN0 b21pemF0aW9uIHNldHRpbmcgYnkKY2hvb3NpbmcgdGhlIOKAmFNhdmUgZm9yIEZ1dHVyZSBTZXNz aW9uc+KAmSBjaG9pY2UgZnJvbSBpdHMg4oCYW1N0YXRlXeKAmQpidXR0b24uICBUaGUg4oCYQy14 IEMtc+KAmSAo4oCYQ3VzdG9tLXNhdmXigJkpIGNvbW1hbmQsIG9yIHRoZSDigJhbQXBwbHkgYW5k ClNhdmVd4oCZIGJ1dHRvbiBhdCB0aGUgdG9wIG9mIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlciwg c2F2ZXMgYWxsCmFwcGxpY2FibGUgc2V0dGluZ3MgaW4gdGhlIGJ1ZmZlci4KCiAgIFNhdmluZyB3 b3JrcyBieSB3cml0aW5nIGNvZGUgdG8gYSBmaWxlLCB1c3VhbGx5IHlvdXIgaW5pdGlhbGl6YXRp b24KZmlsZSAoKm5vdGUgSW5pdCBGaWxlOjopLiAgRnV0dXJlIEVtYWNzIHNlc3Npb25zIGF1dG9t YXRpY2FsbHkgcmVhZCB0aGlzCmZpbGUgYXQgc3RhcnR1cCwgd2hpY2ggc2V0cyB1cCB0aGUgY3Vz dG9taXphdGlvbnMgYWdhaW4uCgogICBZb3UgY2FuIGNob29zZSB0byBzYXZlIGN1c3RvbWl6YXRp b25zIHNvbWV3aGVyZSBvdGhlciB0aGFuIHlvdXIKaW5pdGlhbGl6YXRpb24gZmlsZS4gIFRvIG1h a2UgdGhpcyB3b3JrLCB5b3UgbXVzdCBhZGQgYSBjb3VwbGUgb2YgbGluZXMKb2YgY29kZSB0byB5 b3VyIGluaXRpYWxpemF0aW9uIGZpbGUsIHRvIHNldCB0aGUgdmFyaWFibGUg4oCYY3VzdG9tLWZp bGXigJkKdG8gdGhlIG5hbWUgb2YgdGhlIGRlc2lyZWQgZmlsZSwgYW5kIHRvIGxvYWQgdGhhdCBm aWxlLiAgRm9yIGV4YW1wbGU6CgogICAgIChzZXRxIGN1c3RvbS1maWxlICJ+Ly5lbWFjcy1jdXN0 b20uZWwiKQogICAgIChsb2FkIGN1c3RvbS1maWxlKQoKICAgWW91IGNhbiBldmVuIHNwZWNpZnkg ZGlmZmVyZW50IGN1c3RvbWl6YXRpb24gZmlsZXMgZm9yIGRpZmZlcmVudApFbWFjcyB2ZXJzaW9u cywgbGlrZSB0aGlzOgoKICAgICAoY29uZCAoKDwgZW1hY3MtbWFqb3ItdmVyc2lvbiAyMikKICAg ICAgICAgICAgOzsgRW1hY3MgMjEgY3VzdG9taXphdGlvbi4KICAgICAgICAgICAgKHNldHEgY3Vz dG9tLWZpbGUgIn4vLmN1c3RvbS0yMS5lbCIpKQogICAgICAgICAgICgoYW5kICg9IGVtYWNzLW1h am9yLXZlcnNpb24gMjIpCiAgICAgICAgICAgICAgICAgKDwgZW1hY3MtbWlub3ItdmVyc2lvbiAz KSkKICAgICAgICAgICAgOzsgRW1hY3MgMjIgY3VzdG9taXphdGlvbiwgYmVmb3JlIHZlcnNpb24g MjIuMy4KICAgICAgICAgICAgKHNldHEgY3VzdG9tLWZpbGUgIn4vLmN1c3RvbS0yMi5lbCIpKQog ICAgICAgICAgICh0CiAgICAgICAgICAgIDs7IEVtYWNzIHZlcnNpb24gMjIuMyBvciBsYXRlci4K ICAgICAgICAgICAgKHNldHEgY3VzdG9tLWZpbGUgIn4vLmVtYWNzLWN1c3RvbS5lbCIpKSkKCiAg ICAgKGxvYWQgY3VzdG9tLWZpbGUpCgogICBJZiBFbWFjcyB3YXMgaW52b2tlZCB3aXRoIHRoZSDi gJgtceKAmSBvciDigJgtLW5vLWluaXQtZmlsZeKAmSBvcHRpb25zICgqbm90ZQpJbml0aWFsIE9w dGlvbnM6OiksIGl0IHdpbGwgbm90IGxldCB5b3Ugc2F2ZSB5b3VyIGN1c3RvbWl6YXRpb25zIGlu IHlvdXIKaW5pdGlhbGl6YXRpb24gZmlsZS4gIFRoaXMgaXMgYmVjYXVzZSBzYXZpbmcgY3VzdG9t aXphdGlvbnMgZnJvbSBzdWNoIGEKc2Vzc2lvbiB3b3VsZCB3aXBlIG91dCBhbGwgdGhlIG90aGVy IGN1c3RvbWl6YXRpb25zIHlvdSBtaWdodCBoYXZlIG9uCnlvdXIgaW5pdGlhbGl6YXRpb24gZmls ZS4KCiAgIFBsZWFzZSBub3RlIHRoYXQgYW55IGN1c3RvbWl6YXRpb25zIHlvdSBoYXZlIG5vdCBj aG9zZW4gdG8gc2F2ZSBmb3IKZnV0dXJlIHNlc3Npb25zIHdpbGwgYmUgbG9zdCB3aGVuIHlvdSB0 ZXJtaW5hdGUgRW1hY3MuICBJZiB5b3XigJlkIGxpa2UgdG8KYmUgcHJvbXB0ZWQgYWJvdXQgdW5z YXZlZCBjdXN0b21pemF0aW9ucyBhdCB0ZXJtaW5hdGlvbiB0aW1lLCBhZGQgdGhlCmZvbGxvd2lu ZyB0byB5b3VyIGluaXRpYWxpemF0aW9uIGZpbGU6CgogICAgIChhZGQtaG9vayAna2lsbC1lbWFj cy1xdWVyeS1mdW5jdGlvbnMKICAgICAgICAgICAgICAgJ2N1c3RvbS1wcm9tcHQtY3VzdG9taXpl LXVuc2F2ZWQtb3B0aW9ucykKCgoqKiogNDkuMS41IEN1c3RvbWl6aW5nIEZhY2VzCgpZb3UgY2Fu IGN1c3RvbWl6ZSBmYWNlcyAoKm5vdGUgRmFjZXM6OiksIHdoaWNoIGRldGVybWluZSBob3cgRW1h Y3MKZGlzcGxheXMgZGlmZmVyZW50IHR5cGVzIG9mIHRleHQuICBDdXN0b21pemF0aW9uIGdyb3Vw cyBjYW4gY29udGFpbiBib3RoCnZhcmlhYmxlcyBhbmQgZmFjZXMuCgogICBGb3IgZXhhbXBsZSwg aW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgbW9kZXMsIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGFyZQpz aG93biB3aXRoIOKAmGZvbnQtbG9jay1jb21tZW50LWZhY2XigJkgKCpub3RlIEZvbnQgTG9jazo6 KS4gIEluIGEKY3VzdG9taXphdGlvbiBidWZmZXIsIHRoYXQgZmFjZSBhcHBlYXJzIGxpa2UgdGhp cywgYWZ0ZXIgeW91IGNsaWNrIG9uCnRoZSDigJhbU2hvdyBBbGwgQXR0cmlidXRlc13igJkgbGlu azoKCiAgICAgW0hpZGVdIEZvbnQgTG9jayBDb21tZW50IEZhY2U6W3NhbXBsZV0KICAgICAgICBb U3RhdGVdIDogU1RBTkRBUkQuCiAgICAgICAgRm9udCBMb2NrIG1vZGUgZmFjZSB1c2VkIHRvIGhp Z2hsaWdodCBjb21tZW50cy4KICAgICAgICBbIF0gRm9udCBGYW1pbHk6IC0tCiAgICAgICAgWyBd IEZvbnQgRm91bmRyeTogLS0KICAgICAgICBbIF0gV2lkdGg6IC0tCiAgICAgICAgWyBdIEhlaWdo dDogLS0KICAgICAgICBbIF0gV2VpZ2h0OiAtLQogICAgICAgIFsgXSBTbGFudDogLS0KICAgICAg ICBbIF0gVW5kZXJsaW5lOiAtLQogICAgICAgIFsgXSBPdmVybGluZTogLS0KICAgICAgICBbIF0g U3RyaWtlLXRocm91Z2g6IC0tCiAgICAgICAgWyBdIEJveCBhcm91bmQgdGV4dDogLS0KICAgICAg ICBbIF0gSW52ZXJzZS12aWRlbzogLS0KICAgICAgICBbWF0gRm9yZWdyb3VuZDogRmlyZWJyaWNr ICAgICBbQ2hvb3NlXSAgKHNhbXBsZSkKICAgICAgICBbIF0gQmFja2dyb3VuZDogLS0KICAgICAg ICBbIF0gU3RpcHBsZTogLS0KICAgICAgICBbIF0gSW5oZXJpdDogLS0KICAgICAgICBbSGlkZSBV bnVzZWQgQXR0cmlidXRlc10KClRoZSBmaXJzdCB0aHJlZSBsaW5lcyBzaG93IHRoZSBuYW1lLCDi gJhbU3RhdGVd4oCZIGJ1dHRvbiwgYW5kIGRvY3VtZW50YXRpb24KZm9yIHRoZSBmYWNlLiAgQmVs b3cgdGhhdCBpcyBhIGxpc3Qgb2YgImZhY2UgYXR0cmlidXRlcyIuICBJbiBmcm9udCBvZgplYWNo IGF0dHJpYnV0ZSBpcyBhIGNoZWNrYm94LiAgQSBmaWxsZWQgY2hlY2tib3gsIOKAmFtYXeKAmSwg bWVhbnMgdGhhdCB0aGUKZmFjZSBzcGVjaWZpZXMgYSB2YWx1ZSBmb3IgdGhpcyBhdHRyaWJ1dGU7 IGFuIGVtcHR5IGNoZWNrYm94LCDigJhbIF3igJksCm1lYW5zIHRoYXQgdGhlIGZhY2UgZG9lcyBu b3Qgc3BlY2lmeSBhbnkgc3BlY2lhbCB2YWx1ZSBmb3IgdGhlCmF0dHJpYnV0ZS4gIFlvdSBjYW4g YWN0aXZhdGUgYSBjaGVja2JveCB0byBzcGVjaWZ5IG9yIHVuc3BlY2lmeSBpdHMKYXR0cmlidXRl LgoKICAgQSBmYWNlIGRvZXMgbm90IGhhdmUgdG8gc3BlY2lmeSBldmVyeSBzaW5nbGUgYXR0cmli dXRlOyBpbiBmYWN0LCBtb3N0CmZhY2VzIG9ubHkgc3BlY2lmeSBhIGZldyBhdHRyaWJ1dGVzLiAg SW4gdGhlIGFib3ZlIGV4YW1wbGUsCuKAmGZvbnQtbG9jay1jb21tZW50LWZhY2XigJkgb25seSBz cGVjaWZpZXMgdGhlIGZvcmVncm91bmQgY29sb3IuICBBbnkKdW5zcGVjaWZpZWQgYXR0cmlidXRl IGlzIHRha2VuIGZyb20gdGhlIHNwZWNpYWwgZmFjZSBuYW1lZCDigJhkZWZhdWx04oCZLAp3aG9z ZSBhdHRyaWJ1dGVzIGFyZSBhbGwgc3BlY2lmaWVkLiAgVGhlIOKAmGRlZmF1bHTigJkgZmFjZSBp cyB0aGUgZmFjZSB1c2VkCnRvIGRpc3BsYXkgYW55IHRleHQgdGhhdCBkb2VzIG5vdCBoYXZlIGFu IGV4cGxpY2l0bHktYXNzaWduZWQgZmFjZTsKZnVydGhlcm1vcmUsIGl0cyBiYWNrZ3JvdW5kIGNv bG9yIGF0dHJpYnV0ZSBzZXJ2ZXMgYXMgdGhlIGJhY2tncm91bmQKY29sb3Igb2YgdGhlIGZyYW1l LgoKICAgVGhlIOKAmFtIaWRlIFVudXNlZCBBdHRyaWJ1dGVzXeKAmSBidXR0b24sIGF0IHRoZSBl bmQgb2YgdGhlIGF0dHJpYnV0ZQpsaXN0LCBoaWRlcyB0aGUgdW5zcGVjaWZpZWQgYXR0cmlidXRl cyBvZiB0aGUgZmFjZS4gIFdoZW4gYXR0cmlidXRlcyBhcmUKYmVpbmcgaGlkZGVuLCB0aGUgYnV0 dG9uIGNoYW5nZXMgdG8g4oCYW1Nob3cgQWxsIEF0dHJpYnV0ZXNd4oCZLCB3aGljaApyZXZlYWxz IHRoZSBlbnRpcmUgYXR0cmlidXRlIGxpc3QuICBUaGUgY3VzdG9taXphdGlvbiBidWZmZXIgbWF5 IHN0YXJ0Cm91dCB3aXRoIHVuc3BlY2lmaWVkIGF0dHJpYnV0ZXMgaGlkZGVuLCB0byBhdm9pZCBj bHV0dGVyaW5nIHRoZQppbnRlcmZhY2UuCgogICBXaGVuIGFuIGF0dHJpYnV0ZSBpcyBzcGVjaWZp ZWQsIHlvdSBjYW4gY2hhbmdlIGl0cyB2YWx1ZSBpbiB0aGUgdXN1YWwKd2F5cy4KCiAgIEZvcmVn cm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgZWl0aGVy IGNvbG9yCm5hbWVzIG9yIFJHQiB0cmlwbGV0cyAoKm5vdGUgQ29sb3JzOjopLiAgWW91IGNhbiBh bHNvIHVzZSB0aGUg4oCYW0Nob29zZV3igJkKYnV0dG9uIHRvIHN3aXRjaCB0byBhIGxpc3Qgb2Yg Y29sb3IgbmFtZXM7IHNlbGVjdCBhIGNvbG9yIHdpdGgg4oCYPFJFVD7igJkKaW4gdGhhdCBidWZm ZXIgdG8gcHV0IHRoZSBjb2xvciBuYW1lIGluIHRoZSB2YWx1ZSBmaWVsZC4KCiAgIFNldHRpbmcs IHNhdmluZyBhbmQgcmVzZXR0aW5nIGEgZmFjZSB3b3JrIGxpa2UgdGhlIHNhbWUgb3BlcmF0aW9u cwpmb3IgdmFyaWFibGVzICgqbm90ZSBDaGFuZ2luZyBhIFZhcmlhYmxlOjopLgoKICAgQSBmYWNl IGNhbiBzcGVjaWZ5IGRpZmZlcmVudCBhcHBlYXJhbmNlcyBmb3IgZGlmZmVyZW50IHR5cGVzIG9m CmRpc3BsYXlzLiAgRm9yIGV4YW1wbGUsIGEgZmFjZSBjYW4gbWFrZSB0ZXh0IHJlZCBvbiBhIGNv bG9yIGRpc3BsYXksIGJ1dAp1c2UgYSBib2xkIGZvbnQgb24gYSBtb25vY2hyb21lIGRpc3BsYXku ICBUbyBzcGVjaWZ5IG11bHRpcGxlCmFwcGVhcmFuY2VzIGZvciBhIGZhY2UsIHNlbGVjdCDigJhG b3IgQWxsIEtpbmRzIG9mIERpc3BsYXlz4oCZIGluIHRoZSBtZW51CnlvdSBnZXQgZnJvbSBpbnZv a2luZyDigJhbU3RhdGVd4oCZLgoKCioqKiA0OS4xLjYgQ3VzdG9taXppbmcgU3BlY2lmaWMgSXRl bXMKCuKAmE0teCBjdXN0b21pemUtb3B0aW9uIDxSRVQ+IE9QVElPTiA8UkVUPuKAmQrigJhNLXgg Y3VzdG9taXplLXZhcmlhYmxlIDxSRVQ+IE9QVElPTiA8UkVUPuKAmQogICAgIFNldCB1cCBhIGN1 c3RvbWl6YXRpb24gYnVmZmVyIGZvciBqdXN0IG9uZSB1c2VyIG9wdGlvbiwgT1BUSU9OLgoK4oCY TS14IGN1c3RvbWl6ZS1mYWNlIDxSRVQ+IEZBQ0UgPFJFVD7igJkKICAgICBTZXQgdXAgYSBjdXN0 b21pemF0aW9uIGJ1ZmZlciBmb3IganVzdCBvbmUgZmFjZSwgRkFDRS4KCuKAmE0teCBjdXN0b21p emUtZ3JvdXAgPFJFVD4gR1JPVVAgPFJFVD7igJkKICAgICBTZXQgdXAgYSBjdXN0b21pemF0aW9u IGJ1ZmZlciBmb3IganVzdCBvbmUgZ3JvdXAsIEdST1VQLgoK4oCYTS14IGN1c3RvbWl6ZS1hcHJv cG9zIDxSRVQ+IFJFR0VYUCA8UkVUPuKAmQogICAgIFNldCB1cCBhIGN1c3RvbWl6YXRpb24gYnVm ZmVyIGZvciBhbGwgdGhlIHNldHRpbmdzIGFuZCBncm91cHMgdGhhdAogICAgIG1hdGNoIFJFR0VY UC4KCuKAmE0teCBjdXN0b21pemUtY2hhbmdlZCA8UkVUPiBWRVJTSU9OIDxSRVQ+4oCZCiAgICAg U2V0IHVwIGEgY3VzdG9taXphdGlvbiBidWZmZXIgd2l0aCBhbGwgdGhlIHNldHRpbmdzIGFuZCBn cm91cHMKICAgICB3aG9zZSBtZWFuaW5nIGhhcyBjaGFuZ2VkIHNpbmNlIEVtYWNzIHZlcnNpb24g VkVSU0lPTi4KCuKAmE0teCBjdXN0b21pemUtY2hhbmdlZC1vcHRpb25zIDxSRVQ+IFZFUlNJT04g PFJFVD7igJkKICAgICBTZXQgdXAgYSBjdXN0b21pemF0aW9uIGJ1ZmZlciB3aXRoIGFsbCB0aGUg b3B0aW9ucyB3aG9zZSBtZWFuaW5nIG9yCiAgICAgZGVmYXVsdCB2YWx1ZXMgaGF2ZSBjaGFuZ2Vk IHNpbmNlIEVtYWNzIHZlcnNpb24gVkVSU0lPTi4KCuKAmE0teCBjdXN0b21pemUtc2F2ZWTigJkK ICAgICBTZXQgdXAgYSBjdXN0b21pemF0aW9uIGJ1ZmZlciBjb250YWluaW5nIGFsbCBzZXR0aW5n cyB0aGF0IHlvdSBoYXZlCiAgICAgc2F2ZWQgd2l0aCBjdXN0b21pemF0aW9uIGJ1ZmZlcnMuCgri gJhNLXggY3VzdG9taXplLXVuc2F2ZWTigJkKICAgICBTZXQgdXAgYSBjdXN0b21pemF0aW9uIGJ1 ZmZlciBjb250YWluaW5nIGFsbCBzZXR0aW5ncyB0aGF0IHlvdSBoYXZlCiAgICAgc2V0IGJ1dCBu b3Qgc2F2ZWQuCgogICBJZiB5b3Ugd2FudCB0byBjdXN0b21pemUgYSBwYXJ0aWN1bGFyIHVzZXIg b3B0aW9uLCB0eXBlIOKAmE0teApjdXN0b21pemUtb3B0aW9u4oCZLiAgVGhpcyByZWFkcyB0aGUg dmFyaWFibGUgbmFtZSwgYW5kIHNldHMgdXAgdGhlCmN1c3RvbWl6YXRpb24gYnVmZmVyIHdpdGgg anVzdCB0aGF0IG9uZSB1c2VyIG9wdGlvbi4gIFdoZW4gZW50ZXJpbmcgdGhlCnZhcmlhYmxlIG5h bWUgaW50byB0aGUgbWluaWJ1ZmZlciwgY29tcGxldGlvbiBpcyBhdmFpbGFibGUsIGJ1dCBvbmx5 IGZvcgp0aGUgbmFtZXMgb2YgdmFyaWFibGVzIHRoYXQgaGF2ZSBiZWVuIGxvYWRlZCBpbnRvIEVt YWNzLgoKICAgTGlrZXdpc2UsIHlvdSBjYW4gY3VzdG9taXplIGEgc3BlY2lmaWMgZmFjZSB1c2lu ZyDigJhNLXgKY3VzdG9taXplLWZhY2XigJkuICBZb3UgY2FuIHNldCB1cCBhIGN1c3RvbWl6YXRp b24gYnVmZmVyIGZvciBhIHNwZWNpZmljCmN1c3RvbWl6YXRpb24gZ3JvdXAgdXNpbmcg4oCYTS14 IGN1c3RvbWl6ZS1ncm91cOKAmS4KCiAgIOKAmE0teCBjdXN0b21pemUtYXByb3Bvc+KAmSBwcm9t cHRzIGZvciBhIHNlYXJjaCB0ZXJt4oCUZWl0aGVyIG9uZSBvciBtb3JlCndvcmRzIHNlcGFyYXRl ZCBieSBzcGFjZXMsIG9yIGEgcmVndWxhciBleHByZXNzaW9u4oCUYW5kIHNldHMgdXAgYQpjdXN0 b21pemF0aW9uIGJ1ZmZlciBmb3IgYWxsIF9sb2FkZWRfIHNldHRpbmdzIGFuZCBncm91cHMgd2l0 aCBtYXRjaGluZwpuYW1lcy4gIFRoaXMgaXMgbGlrZSB1c2luZyB0aGUgc2VhcmNoIGZpZWxkIGF0 IHRoZSB0b3Agb2YgdGhlCmN1c3RvbWl6YXRpb24gYnVmZmVyICgqbm90ZSBDdXN0b21pemF0aW9u IEdyb3Vwczo6KS4KCiAgIFdoZW4geW91IHVwZ3JhZGUgdG8gYSBuZXcgRW1hY3MgdmVyc2lvbiwg eW91IG1pZ2h0IHdhbnQgdG8gY29uc2lkZXIKY3VzdG9taXppbmcgbmV3IHNldHRpbmdzLCBhbmQg c2V0dGluZ3Mgd2hvc2UgbWVhbmluZ3Mgb3IgZGVmYXVsdCB2YWx1ZXMKaGF2ZSBjaGFuZ2VkLiAg VG8gZG8gdGhpcywgdXNlIOKAmE0teCBjdXN0b21pemUtY2hhbmdlZOKAmSBhbmQgc3BlY2lmeSBh CnByZXZpb3VzIEVtYWNzIHZlcnNpb24gbnVtYmVyIHVzaW5nIHRoZSBtaW5pYnVmZmVyLiAgSXQg Y3JlYXRlcyBhCmN1c3RvbWl6YXRpb24gYnVmZmVyIHdoaWNoIHNob3dzIGFsbCB0aGUgc2V0dGlu Z3MgYW5kIGdyb3VwcyB3aG9zZQpkZWZpbml0aW9ucyBoYXZlIGJlZW4gY2hhbmdlZCBzaW5jZSB0 aGUgc3BlY2lmaWVkIHZlcnNpb24sIGxvYWRpbmcgdGhlbQppZiBuZWNlc3NhcnkuCgogICBJZiB5 b3UgY2hhbmdlIHNldHRpbmdzIGFuZCB0aGVuIGRlY2lkZSB0aGUgY2hhbmdlIHdhcyBhIG1pc3Rh a2UsIHlvdQpjYW4gdXNlIHR3byBjb21tYW5kcyB0byByZXZpc2l0IHlvdXIgY2hhbmdlcy4gIFVz ZSDigJhNLXggY3VzdG9taXplLXNhdmVk4oCZCnRvIGN1c3RvbWl6ZSBzZXR0aW5ncyB0aGF0IHlv dSBoYXZlIHNhdmVkLiAgVXNlIOKAmE0teCBjdXN0b21pemUtdW5zYXZlZOKAmQp0byBjdXN0b21p emUgc2V0dGluZ3MgdGhhdCB5b3UgaGF2ZSBzZXQgYnV0IG5vdCBzYXZlZC4KCgoqKiogNDkuMS43 IEN1c3RvbSBUaGVtZXMKCiJDdXN0b20gdGhlbWVzIiBhcmUgY29sbGVjdGlvbnMgb2Ygc2V0dGlu Z3MgdGhhdCBjYW4gYmUgZW5hYmxlZCBvcgpkaXNhYmxlZCBhcyBhIHVuaXQuICBZb3UgY2FuIHVz ZSBDdXN0b20gdGhlbWVzIHRvIHN3aXRjaCBlYXNpbHkgYmV0d2Vlbgp2YXJpb3VzIGNvbGxlY3Rp b25zIG9mIHNldHRpbmdzLCBhbmQgdG8gdHJhbnNmZXIgc3VjaCBjb2xsZWN0aW9ucyBmcm9tCm9u ZSBjb21wdXRlciB0byBhbm90aGVyLgoKICAgQSBDdXN0b20gdGhlbWUgaXMgc3RvcmVkIGFzIGFu IEVtYWNzIExpc3Agc291cmNlIGZpbGUuICBJZiB0aGUgbmFtZQpvZiB0aGUgQ3VzdG9tIHRoZW1l IGlzIE5BTUUsIHRoZSB0aGVtZSBmaWxlIGlzIG5hbWVkIOKAmE5BTUUtdGhlbWUuZWzigJkuCipO b3RlIENyZWF0aW5nIEN1c3RvbSBUaGVtZXM6OiwgZm9yIHRoZSBmb3JtYXQgb2YgYSB0aGVtZSBm aWxlIGFuZCBob3cKdG8gbWFrZSBvbmUuCgogICBUeXBlIOKAmE0teCBjdXN0b21pemUtdGhlbWVz 4oCZIHRvIHN3aXRjaCB0byBhIGJ1ZmZlciBuYW1lZCDigJgqQ3VzdG9tClRoZW1lcyrigJksIHdo aWNoIGxpc3RzIHRoZSBDdXN0b20gdGhlbWVzIHRoYXQgRW1hY3Mga25vd3MgYWJvdXQuICBCeQpk ZWZhdWx0LCBFbWFjcyBsb29rcyBmb3IgdGhlbWUgZmlsZXMgaW4gdHdvIGxvY2F0aW9uczogdGhl IGRpcmVjdG9yeQpzcGVjaWZpZWQgYnkgdGhlIHZhcmlhYmxlIOKAmGN1c3RvbS10aGVtZS1kaXJl Y3RvcnnigJkgKHdoaWNoIGRlZmF1bHRzIHRvCuKAmH4vLmVtYWNzLmQv4oCZKSwgYW5kIGEgZGly ZWN0b3J5IG5hbWVkIOKAmGV0Yy90aGVtZXPigJkgaW4geW91ciBFbWFjcwppbnN0YWxsYXRpb24g KHNlZSB0aGUgdmFyaWFibGUg4oCYZGF0YS1kaXJlY3RvcnnigJkpLiAgVGhlIGxhdHRlciBjb250 YWlucwpzZXZlcmFsIEN1c3RvbSB0aGVtZXMgZGlzdHJpYnV0ZWQgd2l0aCBFbWFjcyB0aGF0IGN1 c3RvbWl6ZSBFbWFjc+KAmXMKZmFjZXMgdG8gZml0IHZhcmlvdXMgY29sb3Igc2NoZW1lcy4gIChO b3RlLCBob3dldmVyLCB0aGF0IEN1c3RvbSB0aGVtZXMKbmVlZCBub3QgYmUgcmVzdHJpY3RlZCB0 byB0aGlzIHB1cnBvc2U7IHRoZXkgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplCnZhcmlhYmxlcyB0 b28uKQoKICAgSWYgeW91IHdhbnQgRW1hY3MgdG8gbG9vayBmb3IgQ3VzdG9tIHRoZW1lcyBpbiBz b21lIG90aGVyIGRpcmVjdG9yeSwKYWRkIHRoZSBkaXJlY3RvcnkgdG8gdGhlIGxpc3QgdmFyaWFi bGUg4oCYY3VzdG9tLXRoZW1lLWxvYWQtcGF0aOKAmS4gIEl0cwpkZWZhdWx0IHZhbHVlIGlzIOKA mChjdXN0b20tdGhlbWUtZGlyZWN0b3J5IHQp4oCZOyBoZXJlLCB0aGUgc3ltYm9sCuKAmGN1c3Rv bS10aGVtZS1kaXJlY3RvcnnigJkgaGFzIHRoZSBzcGVjaWFsIG1lYW5pbmcgb2YgdGhlIHZhbHVl IG9mIHRoZQp2YXJpYWJsZSDigJhjdXN0b20tdGhlbWUtZGlyZWN0b3J54oCZLCB3aGlsZSDigJh0 4oCZIHN0YW5kcyBmb3IgdGhlIGJ1aWx0LWluCnRoZW1lIGRpcmVjdG9yeSDigJhldGMvdGhlbWVz 4oCZLiAgVGhlIHRoZW1lcyBsaXN0ZWQgaW4gdGhlIOKAmCpDdXN0b20KVGhlbWVzKuKAmSBidWZm ZXIgYXJlIHRob3NlIGZvdW5kIGluIHRoZSBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkK4oCYY3Vz dG9tLXRoZW1lLWxvYWQtcGF0aOKAmS4KCiAgIEluIHRoZSDigJgqQ3VzdG9tIFRoZW1lcyrigJkg YnVmZmVyLCB5b3UgY2FuIGFjdGl2YXRlIHRoZSBjaGVja2JveCBuZXh0CnRvIGEgQ3VzdG9tIHRo ZW1lIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSB0aGVtZSBmb3IgdGhlIGN1cnJlbnQgRW1hY3MK c2Vzc2lvbi4gIFdoZW4gYSBDdXN0b20gdGhlbWUgaXMgZW5hYmxlZCwgYWxsIG9mIGl0cyBzZXR0 aW5ncyAodmFyaWFibGVzCmFuZCBmYWNlcykgdGFrZSBlZmZlY3QgaW4gdGhlIEVtYWNzIHNlc3Np b24uICBUbyBhcHBseSB0aGUgY2hvaWNlIG9mCnRoZW1lKHMpIHRvIGZ1dHVyZSBFbWFjcyBzZXNz aW9ucywgdHlwZSDigJhDLXggQy1z4oCZICjigJhjdXN0b20tdGhlbWUtc2F2ZeKAmSkKb3IgdXNl IHRoZSDigJhbU2F2ZSBUaGVtZSBTZXR0aW5nc13igJkgYnV0dG9uLgoKICAgV2hlbiB5b3UgZmly c3QgZW5hYmxlIGEgQ3VzdG9tIHRoZW1lLCBFbWFjcyBkaXNwbGF5cyB0aGUgY29udGVudHMgb2YK dGhlIHRoZW1lIGZpbGUgYW5kIGFza3MgaWYgeW91IHJlYWxseSB3YW50IHRvIGxvYWQgaXQuICBC ZWNhdXNlIGxvYWRpbmcKYSBDdXN0b20gdGhlbWUgY2FuIGV4ZWN1dGUgYXJiaXRyYXJ5IExpc3Ag Y29kZSwgeW91IHNob3VsZCBvbmx5IHNheSB5ZXMKaWYgeW91IGtub3cgdGhhdCB0aGUgdGhlbWUg aXMgc2FmZTsgaW4gdGhhdCBjYXNlLCBFbWFjcyBvZmZlcnMgdG8KcmVtZW1iZXIgaW4gdGhlIGZ1 dHVyZSB0aGF0IHRoZSB0aGVtZSBpcyBzYWZlICh0aGlzIGlzIGRvbmUgYnkgc2F2aW5nCnRoZSB0 aGVtZSBmaWxl4oCZcyBTSEEtMjU2IGhhc2ggdG8gdGhlIHZhcmlhYmxlIOKAmGN1c3RvbS1zYWZl LXRoZW1lc+KAmTsgaWYKeW91IHdhbnQgdG8gdHJlYXQgYWxsIHRoZW1lcyBhcyBzYWZlLCBjaGFu Z2UgaXRzIHZhbHVlIHRvIOKAmHTigJkpLiAgVGhlbWVzCnRoYXQgY29tZSB3aXRoIEVtYWNzIChp biB0aGUg4oCYZXRjL3RoZW1lc+KAmSBkaXJlY3RvcnkpIGFyZSBleGVtcHQgZnJvbQp0aGlzIGNo ZWNrLCBhbmQgYXJlIGFsd2F5cyBjb25zaWRlcmVkIHNhZmUuCgogICBTZXR0aW5nIG9yIHNhdmlu ZyBDdXN0b20gdGhlbWVzIGFjdHVhbGx5IHdvcmtzIGJ5IGN1c3RvbWl6aW5nIHRoZQp2YXJpYWJs ZSDigJhjdXN0b20tZW5hYmxlZC10aGVtZXPigJkuICBUaGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJs ZSBpcyBhIGxpc3QKb2YgQ3VzdG9tIHRoZW1lIG5hbWVzIChhcyBMaXNwIHN5bWJvbHMsIGUuZy4s IOKAmHRhbmdv4oCZKS4gIEluc3RlYWQgb2YKdXNpbmcgdGhlIOKAmCpDdXN0b20gVGhlbWVzKuKA mSBidWZmZXIgdG8gc2V0IOKAmGN1c3RvbS1lbmFibGVkLXRoZW1lc+KAmSwgeW91CmNhbiBjdXN0 b21pemUgdGhlIHZhcmlhYmxlIHVzaW5nIHRoZSB1c3VhbCBjdXN0b21pemF0aW9uIGludGVyZmFj ZSwKZS5nLiwgd2l0aCDigJhNLXggY3VzdG9taXplLW9wdGlvbuKAmS4gIE5vdGUgdGhhdCBDdXN0 b20gdGhlbWVzIGFyZSBub3QKYWxsb3dlZCB0byBzZXQg4oCYY3VzdG9tLWVuYWJsZWQtdGhlbWVz 4oCZIHRoZW1zZWx2ZXMuCgogICBBbnkgY3VzdG9taXphdGlvbnMgdGhhdCB5b3UgbWFrZSB0aHJv dWdoIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlcgp0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGVtZSBz ZXR0aW5ncy4gIFRoaXMgbGV0cyB5b3UgZWFzaWx5IG92ZXJyaWRlCmluZGl2aWR1YWwgdGhlbWUg c2V0dGluZ3MgdGhhdCB5b3UgZGlzYWdyZWUgd2l0aC4gIElmIHNldHRpbmdzIGZyb20gdHdvCmRp ZmZlcmVudCB0aGVtZXMgb3ZlcmxhcCwgdGhlIHRoZW1lIG9jY3VycmluZyBlYXJsaWVyIGluCuKA mGN1c3RvbS1lbmFibGVkLXRoZW1lc+KAmSB0YWtlcyBwcmVjZWRlbmNlLiAgSW4gdGhlIGN1c3Rv bWl6YXRpb24gYnVmZmVyLAppZiBhIHNldHRpbmcgaGFzIGJlZW4gY2hhbmdlZCBmcm9tIGl0cyBk ZWZhdWx0IGJ5IGEgQ3VzdG9tIHRoZW1lLCBpdHMK4oCYU3RhdGXigJkgZGlzcGxheSBzaG93cyDi gJhUSEVNRUTigJkgaW5zdGVhZCBvZiDigJhTVEFOREFSROKAmS4KCiAgIFlvdSBjYW4gZW5hYmxl IGEgc3BlY2lmaWMgQ3VzdG9tIHRoZW1lIGluIHRoZSBjdXJyZW50IEVtYWNzIHNlc3Npb24KYnkg dHlwaW5nIOKAmE0teCBsb2FkLXRoZW1l4oCZLiAgVGhpcyBwcm9tcHRzIGZvciBhIHRoZW1lIG5h bWUsIGxvYWRzIHRoZQp0aGVtZSBmcm9tIHRoZSB0aGVtZSBmaWxlLCBhbmQgZW5hYmxlcyBpdC4g IElmIGEgdGhlbWUgZmlsZSBoYXMgYmVlbgpsb2FkZWQgYmVmb3JlLCB5b3UgY2FuIGVuYWJsZSB0 aGUgdGhlbWUgd2l0aG91dCBsb2FkaW5nIGl0cyBmaWxlIGJ5CnR5cGluZyDigJhNLXggZW5hYmxl LXRoZW1l4oCZLiAgVG8gZGlzYWJsZSBhIEN1c3RvbSB0aGVtZSwgdHlwZSDigJhNLXgKZGlzYWJs ZS10aGVtZeKAmS4KCiAgIFRvIHNlZSBhIGRlc2NyaXB0aW9uIG9mIGEgQ3VzdG9tIHRoZW1lLCB0 eXBlIOKAmD/igJkgb24gaXRzIGxpbmUgaW4gdGhlCuKAmCpDdXN0b20gVGhlbWVzKuKAmSBidWZm ZXI7IG9yIHR5cGUg4oCYTS14IGRlc2NyaWJlLXRoZW1l4oCZIGFueXdoZXJlIGluIEVtYWNzCmFu ZCBlbnRlciB0aGUgdGhlbWUgbmFtZS4KCgoqKiogNDkuMS44IENyZWF0aW5nIEN1c3RvbSBUaGVt ZXMKCllvdSBjYW4gZGVmaW5lIGEgQ3VzdG9tIHRoZW1lIHVzaW5nIGFuIGludGVyZmFjZSBzaW1p bGFyIHRvIHRoZQpjdXN0b21pemF0aW9uIGJ1ZmZlciwgYnkgdHlwaW5nIOKAmE0teCBjdXN0b21p emUtY3JlYXRlLXRoZW1l4oCZLiAgVGhpcwpzd2l0Y2hlcyB0byBhIGJ1ZmZlciBuYW1lZCDigJgq Q3VzdG9tIFRoZW1lKuKAmS4gIEl0IGFsc28gb2ZmZXJzIHRvIGluc2VydApzb21lIGNvbW1vbiBF bWFjcyBmYWNlcyBpbnRvIHRoZSB0aGVtZSAoYSBjb252ZW5pZW5jZSwgc2luY2UgQ3VzdG9tCnRo ZW1lcyBhcmUgb2Z0ZW4gdXNlZCB0byBjdXN0b21pemUgZmFjZXMpLiAgSWYgeW91IGFuc3dlciBu bywgdGhlIHRoZW1lCndpbGwgaW5pdGlhbGx5IGNvbnRhaW4gbm8gc2V0dGluZ3MuCgogICBOZWFy IHRoZSB0b3Agb2YgdGhlIOKAmCpDdXN0b20gVGhlbWUq4oCZIGJ1ZmZlciwgdGhlcmUgYXJlIGVk aXRhYmxlCmZpZWxkcyB3aGVyZSB5b3UgY2FuIGVudGVyIHRoZSB0aGVtZeKAmXMgbmFtZSBhbmQg ZGVzY3JpcHRpb24uICBUaGUgbmFtZQpjYW4gYmUgYW55dGhpbmcgZXhjZXB0IOKAmHVzZXLigJku ICBUaGUgZGVzY3JpcHRpb24gaXMgdGhlIG9uZSB0aGF0IHdpbGwgYmUKc2hvd24gd2hlbiB5b3Ug aW52b2tlIOKAmE0teCBkZXNjcmliZS10aGVtZeKAmSBmb3IgdGhlIHRoZW1lLiAgSXRzIGZpcnN0 CmxpbmUgc2hvdWxkIGJlIGEgYnJpZWYgb25lLXNlbnRlbmNlIHN1bW1hcnk7IGluIHRoZSBidWZm ZXIgbWFkZSBieSDigJhNLXgKY3VzdG9taXplLXRoZW1lc+KAmSwgdGhpcyBzZW50ZW5jZSBpcyBk aXNwbGF5ZWQgbmV4dCB0byB0aGUgdGhlbWUgbmFtZS4KCiAgIFRvIGFkZCBhIG5ldyBzZXR0aW5n IHRvIHRoZSB0aGVtZSwgdXNlIHRoZSDigJhbSW5zZXJ0IEFkZGl0aW9uYWwgRmFjZV3igJkKb3Ig 4oCYW0luc2VydCBBZGRpdGlvbmFsIFZhcmlhYmxlXeKAmSBidXR0b25zLiAgRWFjaCBidXR0b24g cmVhZHMgYSBmYWNlIG9yCnZhcmlhYmxlIG5hbWUgdXNpbmcgdGhlIG1pbmlidWZmZXIsIHdpdGgg Y29tcGxldGlvbiwgYW5kIGluc2VydHMgYQpjdXN0b21pemF0aW9uIGVudHJ5IGZvciB0aGUgZmFj ZSBvciB2YXJpYWJsZS4gIFlvdSBjYW4gZWRpdCB0aGUgdmFyaWFibGUKdmFsdWVzIG9yIGZhY2Ug YXR0cmlidXRlcyBpbiB0aGUgc2FtZSB3YXkgYXMgaW4gYSBub3JtYWwgY3VzdG9taXphdGlvbgpi dWZmZXIuICBUbyByZW1vdmUgYSBmYWNlIG9yIHZhcmlhYmxlIGZyb20gdGhlIHRoZW1lLCB1bmNo ZWNrIHRoZQpjaGVja2JveCBuZXh0IHRvIGl0cyBuYW1lLgoKICAgQWZ0ZXIgc3BlY2lmeWluZyB0 aGUgQ3VzdG9tIHRoZW1l4oCZcyBmYWNlcyBhbmQgdmFyaWFibGVzLCB0eXBlIOKAmEMteApDLXPi gJkgKOKAmGN1c3RvbS10aGVtZS13cml0ZeKAmSkgb3IgdXNlIHRoZSBidWZmZXLigJlzIOKAmFtT YXZlIFRoZW1lXeKAmSBidXR0b24uClRoaXMgc2F2ZXMgdGhlIHRoZW1lIGZpbGUsIG5hbWVkIOKA mE5BTUUtdGhlbWUuZWzigJkgd2hlcmUgTkFNRSBpcyB0aGUgdGhlbWUKbmFtZSwgaW4gdGhlIGRp cmVjdG9yeSBuYW1lZCBieSDigJhjdXN0b20tdGhlbWUtZGlyZWN0b3J54oCZLgoKICAgRnJvbSB0 aGUg4oCYKkN1c3RvbSBUaGVtZSrigJkgYnVmZmVyLCB5b3UgY2FuIHZpZXcgYW5kIGVkaXQgYW4g ZXhpc3RpbmcKQ3VzdG9tIHRoZW1lIGJ5IGFjdGl2YXRpbmcgdGhlIOKAmFtWaXNpdCBUaGVtZV3i gJkgYnV0dG9uIGFuZCBzcGVjaWZ5aW5nIHRoZQp0aGVtZSBuYW1lLiAgWW91IGNhbiBhbHNvIGFk ZCB0aGUgc2V0dGluZ3Mgb2YgYW5vdGhlciB0aGVtZSBpbnRvIHRoZQpidWZmZXIsIHVzaW5nIHRo ZSDigJhbTWVyZ2UgVGhlbWVd4oCZIGJ1dHRvbi4gIFlvdSBjYW4gaW1wb3J0IHlvdXIgbm9uLXRo ZW1lCnNldHRpbmdzIGludG8gYSBDdXN0b20gdGhlbWUgYnkgdXNpbmcgdGhlIOKAmFtNZXJnZSBU aGVtZV3igJkgYnV0dG9uIGFuZApzcGVjaWZ5aW5nIHRoZSBzcGVjaWFsIHRoZW1lIG5hbWVkIOKA mHVzZXLigJkuCgogICBBIHRoZW1lIGZpbGUgaXMgc2ltcGx5IGFuIEVtYWNzIExpc3Agc291cmNl IGZpbGUsIGFuZCBsb2FkaW5nIHRoZQpDdXN0b20gdGhlbWUgd29ya3MgYnkgbG9hZGluZyB0aGUg TGlzcCBmaWxlLiAgVGhlcmVmb3JlLCB5b3UgY2FuIGVkaXQgYQp0aGVtZSBmaWxlIGRpcmVjdGx5 IGluc3RlYWQgb2YgdXNpbmcgdGhlIOKAmCpDdXN0b20gVGhlbWUq4oCZIGJ1ZmZlci4gICpOb3Rl CihlbGlzcClDdXN0b20gVGhlbWVzOjosIGZvciBkZXRhaWxzLgoKCioqIDQ5LjIgVmFyaWFibGVz CgpBICJ2YXJpYWJsZSIgaXMgYSBMaXNwIHN5bWJvbCB3aGljaCBoYXMgYSB2YWx1ZS4gIFRoZSBz eW1ib2zigJlzIG5hbWUgaXMKYWxzbyBjYWxsZWQgdGhlICJ2YXJpYWJsZSBuYW1lIi4gIEEgdmFy aWFibGUgbmFtZSBjYW4gY29udGFpbiBhbnkKY2hhcmFjdGVycyB0aGF0IGNhbiBhcHBlYXIgaW4g YSBmaWxlLCBidXQgbW9zdCB2YXJpYWJsZSBuYW1lcyBjb25zaXN0IG9mCm9yZGluYXJ5IHdvcmRz IHNlcGFyYXRlZCBieSBoeXBoZW5zLgoKICAgVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlIHNlcnZl cyBhcyBhIGNvbXBhY3QgZGVzY3JpcHRpb24gb2YgaXRzIHJvbGUuCk1vc3QgdmFyaWFibGVzIGFs c28gaGF2ZSBhICJkb2N1bWVudGF0aW9uIHN0cmluZyIsIHdoaWNoIGRlc2NyaWJlcyB3aGF0CnRo ZSB2YXJpYWJsZeKAmXMgcHVycG9zZSBpcywgd2hhdCBraW5kIG9mIHZhbHVlIGl0IHNob3VsZCBo YXZlLCBhbmQgaG93CnRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQuICBZb3UgY2FuIHZpZXcgdGhpcyBk b2N1bWVudGF0aW9uIHVzaW5nIHRoZSBoZWxwCmNvbW1hbmQg4oCYQy1oIHbigJkgKOKAmGRlc2Ny aWJlLXZhcmlhYmxl4oCZKS4gICpOb3RlIEV4YW1pbmluZzo6LgoKICAgRW1hY3MgdXNlcyBtYW55 IExpc3AgdmFyaWFibGVzIGZvciBpbnRlcm5hbCByZWNvcmQga2VlcGluZywgYnV0IHRoZQptb3N0 IGludGVyZXN0aW5nIHZhcmlhYmxlcyBmb3IgYSBub24tcHJvZ3JhbW1lciB1c2VyIGFyZSB0aG9z ZSBtZWFudCBmb3IKdXNlcnMgdG8gY2hhbmdl4oCUdGhlc2UgYXJlIGNhbGxlZCAiY3VzdG9taXph YmxlIHZhcmlhYmxlcyIgb3IgInVzZXIKb3B0aW9ucyIgKCpub3RlIEVhc3kgQ3VzdG9taXphdGlv bjo6KS4gIEluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMsIHdlCndpbGwgZGVzY3JpYmUgb3RoZXIg YXNwZWN0cyBvZiBFbWFjcyB2YXJpYWJsZXMsIHN1Y2ggYXMgaG93IHRvIHNldCB0aGVtCm91dHNp ZGUgQ3VzdG9taXplLgoKICAgRW1hY3MgTGlzcCBhbGxvd3MgYW55IHZhcmlhYmxlICh3aXRoIGEg ZmV3IGV4Y2VwdGlvbnMpIHRvIGhhdmUgYW55CmtpbmQgb2YgdmFsdWUuICBIb3dldmVyLCBtYW55 IHZhcmlhYmxlcyBhcmUgbWVhbmluZ2Z1bCBvbmx5IGlmIGFzc2lnbmVkCnZhbHVlcyBvZiBhIGNl cnRhaW4gdHlwZS4gIEZvciBleGFtcGxlLCBvbmx5IG51bWJlcnMgYXJlIG1lYW5pbmdmdWwKdmFs dWVzIGZvciDigJhraWxsLXJpbmctbWF44oCZLCB3aGljaCBzcGVjaWZpZXMgdGhlIG1heGltdW0g bGVuZ3RoIG9mIHRoZQpraWxsIHJpbmcgKCpub3RlIEVhcmxpZXIgS2lsbHM6Oik7IGlmIHlvdSBn aXZlIOKAmGtpbGwtcmluZy1tYXjigJkgYSBzdHJpbmcKdmFsdWUsIGNvbW1hbmRzIHN1Y2ggYXMg 4oCYQy154oCZICjigJh5YW5r4oCZKSB3aWxsIHNpZ25hbCBhbiBlcnJvci4gIE9uIHRoZQpvdGhl ciBoYW5kLCBzb21lIHZhcmlhYmxlcyBkb27igJl0IGNhcmUgYWJvdXQgdHlwZTsgZm9yIGluc3Rh bmNlLCBpZiBhCnZhcmlhYmxlIGhhcyBvbmUgZWZmZWN0IGZvciDigJhuaWzigJkgdmFsdWVzIGFu ZCBhbm90aGVyIGVmZmVjdCBmb3IKbm9uLeKAmG5pbOKAmSB2YWx1ZXMsIHRoZW4gYW55IHZhbHVl IHRoYXQgaXMgbm90IHRoZSBzeW1ib2wg4oCYbmls4oCZIGluZHVjZXMKdGhlIHNlY29uZCBlZmZl Y3QsIHJlZ2FyZGxlc3Mgb2YgaXRzIHR5cGUgKGJ5IGNvbnZlbnRpb24sIHdlIHVzdWFsbHkgdXNl CnRoZSB2YWx1ZSDigJh04oCZ4oCUYSBzeW1ib2wgd2hpY2ggc3RhbmRzIGZvciDigJx0cnVl4oCd 4oCUdG8gc3BlY2lmeSBhIG5vbi3igJhuaWzigJkKdmFsdWUpLiAgSWYgeW91IHNldCBhIHZhcmlh YmxlIHVzaW5nIHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlciwgeW91IG5lZWQKbm90IHdvcnJ5IGFi b3V0IGdpdmluZyBpdCBhbiBpbnZhbGlkIHR5cGU6IHRoZSBjdXN0b21pemF0aW9uIGJ1ZmZlcgp1 c3VhbGx5IG9ubHkgYWxsb3dzIHlvdSB0byBlbnRlciBtZWFuaW5nZnVsIHZhbHVlcy4gIFdoZW4g aW4gZG91YnQsIHVzZQrigJhDLWggduKAmSAo4oCYZGVzY3JpYmUtdmFyaWFibGXigJkpIHRvIGNo ZWNrIHRoZSB2YXJpYWJsZeKAmXMgZG9jdW1lbnRhdGlvbgpzdHJpbmcgdG8gc2VlIGtpbmQgb2Yg dmFsdWUgaXQgZXhwZWN0cyAoKm5vdGUgRXhhbWluaW5nOjopLgoKKyBNZW51OgoKICAtIEV4YW1p bmluZzo6ICAgICAgICAgICBFeGFtaW5pbmcgb3Igc2V0dGluZyBvbmUgdmFyaWFibGXigJlzIHZh bHVlLgogIC0gSG9va3M6OiAgICAgICAgICAgICAgIEhvb2sgdmFyaWFibGVzIGxldCB5b3Ugc3Bl Y2lmeSBwcm9ncmFtcyBmb3IgcGFydHMKICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBFbWFj cyB0byBydW4gb24gcGFydGljdWxhciBvY2Nhc2lvbnMuCiAgLSBMb2NhbHM6OiAgICAgICAgICAg ICAgUGVyLWJ1ZmZlciB2YWx1ZXMgb2YgdmFyaWFibGVzLgogIC0gRmlsZSBWYXJpYWJsZXM6OiAg ICAgIEhvdyBmaWxlcyBjYW4gc3BlY2lmeSB2YXJpYWJsZSB2YWx1ZXMuCiAgLSBEaXJlY3Rvcnkg VmFyaWFibGVzOjogSG93IHZhcmlhYmxlIHZhbHVlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IGRpcmVj dG9yeS4KCgoqKiogNDkuMi4xIEV4YW1pbmluZyBhbmQgU2V0dGluZyBWYXJpYWJsZXMKCuKAmEMt aCB2IFZBUiA8UkVUPuKAmQogICAgIERpc3BsYXkgdGhlIHZhbHVlIGFuZCBkb2N1bWVudGF0aW9u IG9mIHZhcmlhYmxlIFZBUgogICAgICjigJhkZXNjcmliZS12YXJpYWJsZeKAmSkuCgrigJhNLXgg c2V0LXZhcmlhYmxlIDxSRVQ+IFZBUiA8UkVUPiBWQUxVRSA8UkVUPuKAmQogICAgIENoYW5nZSB0 aGUgdmFsdWUgb2YgdmFyaWFibGUgVkFSIHRvIFZBTFVFLgoKICAgVG8gZXhhbWluZSB0aGUgdmFs dWUgb2YgYSB2YXJpYWJsZSwgdXNlIOKAmEMtaCB24oCZCijigJhkZXNjcmliZS12YXJpYWJsZeKA mSkuICBUaGlzIHJlYWRzIGEgdmFyaWFibGUgbmFtZSB1c2luZyB0aGUgbWluaWJ1ZmZlciwKd2l0 aCBjb21wbGV0aW9uLCBhbmQgZGlzcGxheXMgYm90aCB0aGUgdmFsdWUgYW5kIHRoZSBkb2N1bWVu dGF0aW9uIG9mCnRoZSB2YXJpYWJsZS4gIEZvciBleGFtcGxlLAoKICAgICBDLWggdiBmaWxsLWNv bHVtbiA8UkVUPgoKZGlzcGxheXMgc29tZXRoaW5nIGxpa2UgdGhpczoKCiAgICAgZmlsbC1jb2x1 bW4gaXMgYSB2YXJpYWJsZSBkZWZpbmVkIGluIOKAmEMgc291cmNlIGNvZGXigJkuCiAgICAgSXRz IHZhbHVlIGlzIDcwCgogICAgICAgQXV0b21hdGljYWxseSBiZWNvbWVzIGJ1ZmZlci1sb2NhbCB3 aGVuIHNldC4KICAgICAgIFRoaXMgdmFyaWFibGUgaXMgc2FmZSBhcyBhIGZpbGUgbG9jYWwgdmFy aWFibGUgaWYgaXRzIHZhbHVlCiAgICAgICBzYXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSDigJhpbnRl Z2VycOKAmS4KCiAgICAgRG9jdW1lbnRhdGlvbjoKICAgICBDb2x1bW4gYmV5b25kIHdoaWNoIGF1 dG9tYXRpYyBsaW5lLXdyYXBwaW5nIHNob3VsZCBoYXBwZW4uCiAgICAgSW50ZXJhY3RpdmVseSwg eW91IGNhbiBzZXQgdGhlIGJ1ZmZlciBsb2NhbCB2YWx1ZSB1c2luZyBDLXggZi4KCiAgICAgWW91 IGNhbiBjdXN0b21pemUgdGhpcyB2YXJpYWJsZS4KClRoZSBsaW5lIHRoYXQgc2F5cyDigJhZb3Ug Y2FuIGN1c3RvbWl6ZSB0aGUgdmFyaWFibGXigJkgaW5kaWNhdGVzIHRoYXQgdGhpcwp2YXJpYWJs ZSBpcyBhIHVzZXIgb3B0aW9uLiAg4oCYQy1oIHbigJkgaXMgbm90IHJlc3RyaWN0ZWQgdG8gdXNl ciBvcHRpb25zOwppdCBhbGxvd3Mgbm9uLWN1c3RvbWl6YWJsZSB2YXJpYWJsZXMgdG9vLgoKICAg VGhlIG1vc3QgY29udmVuaWVudCB3YXkgdG8gc2V0IGEgc3BlY2lmaWMgY3VzdG9taXphYmxlIHZh cmlhYmxlIGlzCndpdGgg4oCYTS14IHNldC12YXJpYWJsZeKAmS4gIFRoaXMgcmVhZHMgdGhlIHZh cmlhYmxlIG5hbWUgd2l0aCB0aGUKbWluaWJ1ZmZlciAod2l0aCBjb21wbGV0aW9uKSwgYW5kIHRo ZW4gcmVhZHMgYSBMaXNwIGV4cHJlc3Npb24gZm9yIHRoZQpuZXcgdmFsdWUgdXNpbmcgdGhlIG1p bmlidWZmZXIgYSBzZWNvbmQgdGltZSAoeW91IGNhbiBpbnNlcnQgdGhlIG9sZAp2YWx1ZSBpbnRv IHRoZSBtaW5pYnVmZmVyIGZvciBlZGl0aW5nIHZpYSDigJhNLW7igJkpLiAgRm9yIGV4YW1wbGUs CgogICAgIE0teCBzZXQtdmFyaWFibGUgPFJFVD4gZmlsbC1jb2x1bW4gPFJFVD4gNzUgPFJFVD4K CnNldHMg4oCYZmlsbC1jb2x1bW7igJkgdG8gNzUuCgogICDigJhNLXggc2V0LXZhcmlhYmxl4oCZ IGlzIGxpbWl0ZWQgdG8gY3VzdG9taXphYmxlIHZhcmlhYmxlcywgYnV0IHlvdSBjYW4Kc2V0IGFu eSB2YXJpYWJsZSB3aXRoIGEgTGlzcCBleHByZXNzaW9uIGxpa2UgdGhpczoKCiAgICAgKHNldHEg ZmlsbC1jb2x1bW4gNzUpCgpUbyBleGVjdXRlIHN1Y2ggYW4gZXhwcmVzc2lvbiwgdHlwZSDigJhN LTrigJkgKOKAmGV2YWwtZXhwcmVzc2lvbuKAmSkgYW5kIGVudGVyCnRoZSBleHByZXNzaW9uIGlu IHRoZSBtaW5pYnVmZmVyICgqbm90ZSBMaXNwIEV2YWw6OikuICBBbHRlcm5hdGl2ZWx5LCBnbwp0 byB0aGUg4oCYKnNjcmF0Y2gq4oCZIGJ1ZmZlciwgdHlwZSBpbiB0aGUgZXhwcmVzc2lvbiwgYW5k IHRoZW4gdHlwZSDigJhDLWrigJkKKCpub3RlIExpc3AgSW50ZXJhY3Rpb246OikuCgogICBTZXR0 aW5nIHZhcmlhYmxlcywgbGlrZSBhbGwgbWVhbnMgb2YgY3VzdG9taXppbmcgRW1hY3MgZXhjZXB0 IHdoZXJlCm90aGVyd2lzZSBzdGF0ZWQsIGFmZmVjdHMgb25seSB0aGUgY3VycmVudCBFbWFjcyBz ZXNzaW9uLiAgVGhlIG9ubHkgd2F5CnRvIGFsdGVyIHRoZSB2YXJpYWJsZSBpbiBmdXR1cmUgc2Vz c2lvbnMgaXMgdG8gcHV0IHNvbWV0aGluZyBpbiB5b3VyCmluaXRpYWxpemF0aW9uIGZpbGUgKCpu b3RlIEluaXQgRmlsZTo6KS4KCgoqKiogNDkuMi4yIEhvb2tzCgoiSG9va3MiIGFyZSBhbiBpbXBv cnRhbnQgbWVjaGFuaXNtIGZvciBjdXN0b21pemluZyBFbWFjcy4gIEEgaG9vayBpcyBhCkxpc3Ag dmFyaWFibGUgd2hpY2ggaG9sZHMgYSBsaXN0IG9mIGZ1bmN0aW9ucywgdG8gYmUgY2FsbGVkIG9u IHNvbWUKd2VsbC1kZWZpbmVkIG9jY2FzaW9uLiAgKFRoaXMgaXMgY2FsbGVkICJydW5uaW5nIHRo ZSBob29rIi4pICBUaGUKaW5kaXZpZHVhbCBmdW5jdGlvbnMgaW4gdGhlIGxpc3QgYXJlIGNhbGxl ZCB0aGUgImhvb2sgZnVuY3Rpb25zIiBvZiB0aGUKaG9vay4gIEZvciBleGFtcGxlLCB0aGUgaG9v ayDigJhraWxsLWVtYWNzLWhvb2vigJkgcnVucyBqdXN0IGJlZm9yZSBleGl0aW5nCkVtYWNzICgq bm90ZSBFeGl0aW5nOjopLgoKICAgTW9zdCBob29rcyBhcmUgIm5vcm1hbCBob29rcyIuICBUaGlz IG1lYW5zIHRoYXQgd2hlbiBFbWFjcyBydW5zIHRoZQpob29rLCBpdCBjYWxscyBlYWNoIGhvb2sg ZnVuY3Rpb24gaW4gdHVybiwgd2l0aCBubyBhcmd1bWVudHMuICBXZSBoYXZlCm1hZGUgYW4gZWZm b3J0IHRvIGtlZXAgbW9zdCBob29rcyBub3JtYWwsIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhlbSBp biBhCnVuaWZvcm0gd2F5LiAgRXZlcnkgdmFyaWFibGUgd2hvc2UgbmFtZSBlbmRzIGluIOKAmC1o b29r4oCZIGlzIGEgbm9ybWFsCmhvb2suCgogICBBIGZldyBob29rcyBhcmUgImFibm9ybWFsIGhv b2tzIi4gIFRoZWlyIG5hbWVzIGVuZCBpbiDigJgtZnVuY3Rpb25z4oCZLAppbnN0ZWFkIG9mIOKA mC1ob29r4oCZIChzb21lIG9sZCBjb2RlIG1heSBhbHNvIHVzZSB0aGUgZGVwcmVjYXRlZCBzdWZm aXgK4oCYLWhvb2tz4oCZKS4gIFdoYXQgbWFrZXMgdGhlc2UgaG9va3MgYWJub3JtYWwgaXMgdGhl IHdheSBpdHMgZnVuY3Rpb25zIGFyZQpjYWxsZWTigJRwZXJoYXBzIHRoZXkgYXJlIGdpdmVuIGFy Z3VtZW50cywgb3IgcGVyaGFwcyB0aGUgdmFsdWVzIHRoZXkKcmV0dXJuIGFyZSB1c2VkIGluIHNv bWUgd2F5LiAgRm9yIGV4YW1wbGUsCuKAmGZpbmQtZmlsZS1ub3QtZm91bmQtZnVuY3Rpb25z4oCZ IGlzIGFibm9ybWFsIGJlY2F1c2UgYXMgc29vbiBhcyBvbmUgaG9vawpmdW5jdGlvbiByZXR1cm5z IGEgbm9uLeKAmG5pbOKAmSB2YWx1ZSwgdGhlIHJlc3QgYXJlIG5vdCBjYWxsZWQgYXQgYWxsCigq bm90ZSBWaXNpdGluZzo6KS4gIFRoZSBkb2N1bWVudGF0aW9uIG9mIGVhY2ggYWJub3JtYWwgaG9v ayB2YXJpYWJsZQpleHBsYWlucyBob3cgaXRzIGZ1bmN0aW9ucyBhcmUgdXNlZC4KCiAgIFlvdSBj YW4gc2V0IGEgaG9vayB2YXJpYWJsZSB3aXRoIOKAmHNldHHigJkgbGlrZSBhbnkgb3RoZXIgTGlz cCB2YXJpYWJsZSwKYnV0IHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gYWRkIGEgZnVuY3Rpb24gdG8g YSBob29rIChlaXRoZXIgbm9ybWFsIG9yCmFibm9ybWFsKSBpcyB0byB1c2Ug4oCYYWRkLWhvb2vi gJksIGFzIHNob3duIGJ5IHRoZSBmb2xsb3dpbmcgZXhhbXBsZXMuCipOb3RlIChlbGlzcClIb29r czo6LCBmb3IgZGV0YWlscy4KCiAgIE1vc3QgbWFqb3IgbW9kZXMgcnVuIG9uZSBvciBtb3JlICJt b2RlIGhvb2tzIiBhcyB0aGUgbGFzdCBzdGVwIG9mCmluaXRpYWxpemF0aW9uLiAgTW9kZSBob29r cyBhcmUgYSBjb252ZW5pZW50IHdheSB0byBjdXN0b21pemUgdGhlCmJlaGF2aW9yIG9mIGluZGl2 aWR1YWwgbW9kZXM7IHRoZXkgYXJlIGFsd2F5cyBub3JtYWwuICBGb3IgZXhhbXBsZSwKaGVyZeKA mXMgaG93IHRvIHNldCB1cCBhIGhvb2sgdG8gdHVybiBvbiBBdXRvIEZpbGwgbW9kZSBpbiBUZXh0 IG1vZGUgYW5kCm90aGVyIG1vZGVzIGJhc2VkIG9uIFRleHQgbW9kZToKCiAgICAgKGFkZC1ob29r ICd0ZXh0LW1vZGUtaG9vayAnYXV0by1maWxsLW1vZGUpCgpUaGlzIHdvcmtzIGJ5IGNhbGxpbmcg 4oCYYXV0by1maWxsLW1vZGXigJksIHdoaWNoIGVuYWJsZXMgdGhlIG1pbm9yIG1vZGUKd2hlbiBu byBhcmd1bWVudCBpcyBzdXBwbGllZCAoKm5vdGUgTWlub3IgTW9kZXM6OikuICBOZXh0LCBzdXBw b3NlIHlvdQpkb27igJl0IHdhbnQgQXV0byBGaWxsIG1vZGUgdHVybmVkIG9uIGluIExhVGVYIG1v ZGUsIHdoaWNoIGlzIG9uZSBvZiB0aGUKbW9kZXMgYmFzZWQgb24gVGV4dCBtb2RlLiAgWW91IGNh biBkbyB0aGlzIHdpdGggdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsCmxpbmU6CgogICAgIChhZGQt aG9vayAnbGF0ZXgtbW9kZS1ob29rIChsYW1iZGEgKCkgKGF1dG8tZmlsbC1tb2RlIC0xKSkpCgpI ZXJlIHdlIGhhdmUgdXNlZCB0aGUgc3BlY2lhbCBtYWNybyDigJhsYW1iZGHigJkgdG8gY29uc3Ry dWN0IGFuIGFub255bW91cwpmdW5jdGlvbiAoKm5vdGUgKGVsaXNwKUxhbWJkYSBFeHByZXNzaW9u czo6KSwgd2hpY2ggY2FsbHMK4oCYYXV0by1maWxsLW1vZGXigJkgd2l0aCBhbiBhcmd1bWVudCBv ZiDigJgtMeKAmSB0byBkaXNhYmxlIHRoZSBtaW5vciBtb2RlLgpCZWNhdXNlIExhVGVYIG1vZGUg cnVucyDigJhsYXRleC1tb2RlLWhvb2vigJkgYWZ0ZXIgcnVubmluZwrigJh0ZXh0LW1vZGUtaG9v a+KAmSwgdGhlIHJlc3VsdCBsZWF2ZXMgQXV0byBGaWxsIG1vZGUgZGlzYWJsZWQuCgogICBIZXJl IGlzIGEgbW9yZSBjb21wbGV4IGV4YW1wbGUsIHNob3dpbmcgaG93IHRvIHVzZSBhIGhvb2sgdG8K Y3VzdG9taXplIHRoZSBpbmRlbnRhdGlvbiBvZiBDIGNvZGU6CgogICAgIChzZXRxIG15LWMtc3R5 bGUKICAgICAgICcoKGMtY29tbWVudC1vbmx5LWxpbmUtb2Zmc2V0IC4gNCkKICAgICAgICAgKGMt Y2xlYW51cC1saXN0IC4gKHNjb3BlLW9wZXJhdG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbXB0eS1kZWZ1bi1icmFjZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnVuLWNs b3NlLXNlbWkpKSkpCgogICAgIChhZGQtaG9vayAnYy1tb2RlLWNvbW1vbi1ob29rCiAgICAgICAo bGFtYmRhICgpIChjLWFkZC1zdHlsZSAibXktc3R5bGUiIG15LWMtc3R5bGUgdCkpKQoKICAgTWFq b3IgbW9kZSBob29rcyBhbHNvIGFwcGx5IHRvIG90aGVyIG1ham9yIG1vZGVzICJkZXJpdmVkIiBm cm9tIHRoZQpvcmlnaW5hbCBtb2RlICgqbm90ZSAoZWxpc3ApRGVyaXZlZCBNb2Rlczo6KS4gIEZv ciBpbnN0YW5jZSwgSFRNTCBtb2RlCmlzIGRlcml2ZWQgZnJvbSBUZXh0IG1vZGUgKCpub3RlIEhU TUwgTW9kZTo6KTsgd2hlbiBIVE1MIG1vZGUgaXMKZW5hYmxlZCwgaXQgcnVucyDigJh0ZXh0LW1v ZGUtaG9va+KAmSBiZWZvcmUgcnVubmluZyDigJhodG1sLW1vZGUtaG9va+KAmS4gIFRoaXMKcHJv dmlkZXMgYSBjb252ZW5pZW50IHdheSB0byB1c2UgYSBzaW5nbGUgaG9vayB0byBhZmZlY3Qgc2V2 ZXJhbCByZWxhdGVkCm1vZGVzLiAgSW4gcGFydGljdWxhciwgaWYgeW91IHdhbnQgdG8gYXBwbHkg YSBob29rIGZ1bmN0aW9uIHRvIGFueQpwcm9ncmFtbWluZyBsYW5ndWFnZSBtb2RlLCBhZGQgaXQg dG8g4oCYcHJvZy1tb2RlLWhvb2vigJk7IFByb2cgbW9kZSBpcyBhCm1ham9yIG1vZGUgdGhhdCBk b2VzIGxpdHRsZSBlbHNlIHRoYW4gdG8gbGV0IG90aGVyIG1ham9yIG1vZGVzIGluaGVyaXQKZnJv bSBpdCwgZXhhY3RseSBmb3IgdGhpcyBwdXJwb3NlLgoKICAgSXQgaXMgYmVzdCB0byBkZXNpZ24g eW91ciBob29rIGZ1bmN0aW9ucyBzbyB0aGF0IHRoZSBvcmRlciBpbiB3aGljaAp0aGV5IGFyZSBl eGVjdXRlZCBkb2VzIG5vdCBtYXR0ZXIuICBBbnkgZGVwZW5kZW5jZSBvbiB0aGUgb3JkZXIgaXMK YXNraW5nIGZvciB0cm91YmxlLiAgSG93ZXZlciwgdGhlIG9yZGVyIGlzIHByZWRpY3RhYmxlOiB0 aGUgaG9vawpmdW5jdGlvbnMgYXJlIGV4ZWN1dGVkIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhciBp biB0aGUgaG9vay4KCiAgIElmIHlvdSBwbGF5IHdpdGggYWRkaW5nIHZhcmlvdXMgZGlmZmVyZW50 IHZlcnNpb25zIG9mIGEgaG9vayBmdW5jdGlvbgpieSBjYWxsaW5nIOKAmGFkZC1ob29r4oCZIG92 ZXIgYW5kIG92ZXIsIHJlbWVtYmVyIHRoYXQgYWxsIHRoZSB2ZXJzaW9ucyB5b3UKYWRkZWQgd2ls bCByZW1haW4gaW4gdGhlIGhvb2sgdmFyaWFibGUgdG9nZXRoZXIuICBZb3UgY2FuIGNsZWFyIG91 dAppbmRpdmlkdWFsIGZ1bmN0aW9ucyBieSBjYWxsaW5nIOKAmHJlbW92ZS1ob29r4oCZLCBvciBk byDigJgoc2V0cQpIT09LLVZBUklBQkxFIG5pbCnigJkgdG8gcmVtb3ZlIGV2ZXJ5dGhpbmcuCgog ICBJZiB0aGUgaG9vayB2YXJpYWJsZSBpcyBidWZmZXItbG9jYWwsIHRoZSBidWZmZXItbG9jYWwg dmFyaWFibGUgd2lsbApiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGdsb2JhbCB2YXJpYWJsZS4gIEhv d2V2ZXIsIGlmIHRoZSBidWZmZXItbG9jYWwKdmFyaWFibGUgY29udGFpbnMgdGhlIGVsZW1lbnQg 4oCYdOKAmSwgdGhlIGdsb2JhbCBob29rIHZhcmlhYmxlIHdpbGwgYmUgcnVuCmFzIHdlbGwuCgoK KioqIDQ5LjIuMyBMb2NhbCBWYXJpYWJsZXMKCuKAmE0teCBtYWtlLWxvY2FsLXZhcmlhYmxlIDxS RVQ+IFZBUiA8UkVUPuKAmQogICAgIE1ha2UgdmFyaWFibGUgVkFSIGhhdmUgYSBsb2NhbCB2YWx1 ZSBpbiB0aGUgY3VycmVudCBidWZmZXIuCgrigJhNLXgga2lsbC1sb2NhbC12YXJpYWJsZSA8UkVU PiBWQVIgPFJFVD7igJkKICAgICBNYWtlIHZhcmlhYmxlIFZBUiB1c2UgaXRzIGdsb2JhbCB2YWx1 ZSBpbiB0aGUgY3VycmVudCBidWZmZXIuCgrigJhNLXggbWFrZS12YXJpYWJsZS1idWZmZXItbG9j YWwgPFJFVD4gVkFSIDxSRVQ+4oCZCiAgICAgTWFyayB2YXJpYWJsZSBWQVIgc28gdGhhdCBzZXR0 aW5nIGl0IHdpbGwgbWFrZSBpdCBsb2NhbCB0byB0aGUKICAgICBidWZmZXIgdGhhdCBpcyBjdXJy ZW50IGF0IHRoYXQgdGltZS4KCiAgIEFsbW9zdCBhbnkgdmFyaWFibGUgY2FuIGJlIG1hZGUgImxv Y2FsIiB0byBhIHNwZWNpZmljIEVtYWNzIGJ1ZmZlci4KVGhpcyBtZWFucyB0aGF0IGl0cyB2YWx1 ZSBpbiB0aGF0IGJ1ZmZlciBpcyBpbmRlcGVuZGVudCBvZiBpdHMgdmFsdWUgaW4Kb3RoZXIgYnVm ZmVycy4gIEEgZmV3IHZhcmlhYmxlcyBhcmUgYWx3YXlzIGxvY2FsIGluIGV2ZXJ5IGJ1ZmZlci4g IEV2ZXJ5Cm90aGVyIEVtYWNzIHZhcmlhYmxlIGhhcyBhICJnbG9iYWwiIHZhbHVlIHdoaWNoIGlz IGluIGVmZmVjdCBpbiBhbGwKYnVmZmVycyB0aGF0IGhhdmUgbm90IG1hZGUgdGhlIHZhcmlhYmxl IGxvY2FsLgoKICAg4oCYTS14IG1ha2UtbG9jYWwtdmFyaWFibGXigJkgcmVhZHMgdGhlIG5hbWUg b2YgYSB2YXJpYWJsZSBhbmQgbWFrZXMgaXQKbG9jYWwgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLiAg Q2hhbmdpbmcgaXRzIHZhbHVlIHN1YnNlcXVlbnRseSBpbiB0aGlzCmJ1ZmZlciB3aWxsIG5vdCBh ZmZlY3Qgb3RoZXJzLCBhbmQgY2hhbmdlcyBpbiBpdHMgZ2xvYmFsIHZhbHVlIHdpbGwgbm90CmFm ZmVjdCB0aGlzIGJ1ZmZlci4KCiAgIOKAmE0teCBtYWtlLXZhcmlhYmxlLWJ1ZmZlci1sb2NhbOKA mSBtYXJrcyBhIHZhcmlhYmxlIHNvIGl0IHdpbGwgYmVjb21lCmxvY2FsIGF1dG9tYXRpY2FsbHkg d2hlbmV2ZXIgaXQgaXMgc2V0LiAgTW9yZSBwcmVjaXNlbHksIG9uY2UgYSB2YXJpYWJsZQpoYXMg YmVlbiBtYXJrZWQgaW4gdGhpcyB3YXksIHRoZSB1c3VhbCB3YXlzIG9mIHNldHRpbmcgdGhlIHZh cmlhYmxlCmF1dG9tYXRpY2FsbHkgZG8g4oCYbWFrZS1sb2NhbC12YXJpYWJsZeKAmSBmaXJzdC4g IFdlIGNhbGwgc3VjaCB2YXJpYWJsZXMKInBlci1idWZmZXIiIHZhcmlhYmxlcy4gIE1hbnkgdmFy aWFibGVzIGluIEVtYWNzIGFyZSBub3JtYWxseQpwZXItYnVmZmVyOyB0aGUgdmFyaWFibGXigJlz IGRvY3VtZW50IHN0cmluZyB0ZWxscyB5b3Ugd2hlbiB0aGlzIGlzIHNvLiAgQQpwZXItYnVmZmVy IHZhcmlhYmxl4oCZcyBnbG9iYWwgdmFsdWUgaXMgbm9ybWFsbHkgbmV2ZXIgZWZmZWN0aXZlIGlu IGFueQpidWZmZXIsIGJ1dCBpdCBzdGlsbCBoYXMgYSBtZWFuaW5nOiBpdCBpcyB0aGUgaW5pdGlh bCB2YWx1ZSBvZiB0aGUKdmFyaWFibGUgZm9yIGVhY2ggbmV3IGJ1ZmZlci4KCiAgIE1ham9yIG1v ZGVzICgqbm90ZSBNYWpvciBNb2Rlczo6KSBhbHdheXMgbWFrZSB2YXJpYWJsZXMgbG9jYWwgdG8g dGhlCmJ1ZmZlciBiZWZvcmUgc2V0dGluZyB0aGUgdmFyaWFibGVzLiAgVGhpcyBpcyB3aHkgY2hh bmdpbmcgbWFqb3IgbW9kZXMKaW4gb25lIGJ1ZmZlciBoYXMgbm8gZWZmZWN0IG9uIG90aGVyIGJ1 ZmZlcnMuICBNaW5vciBtb2RlcyBhbHNvIHdvcmsgYnkKc2V0dGluZyB2YXJpYWJsZXPigJRub3Jt YWxseSwgZWFjaCBtaW5vciBtb2RlIGhhcyBvbmUgY29udHJvbGxpbmcgdmFyaWFibGUKd2hpY2gg aXMgbm9uLeKAmG5pbOKAmSB3aGVuIHRoZSBtb2RlIGlzIGVuYWJsZWQgKCpub3RlIE1pbm9yIE1v ZGVzOjopLiAgRm9yCm1hbnkgbWlub3IgbW9kZXMsIHRoZSBjb250cm9sbGluZyB2YXJpYWJsZSBp cyBwZXIgYnVmZmVyLCBhbmQgdGh1cwphbHdheXMgYnVmZmVyLWxvY2FsLiAgT3RoZXJ3aXNlLCB5 b3UgY2FuIG1ha2UgaXQgbG9jYWwgaW4gYSBzcGVjaWZpYwpidWZmZXIgbGlrZSBhbnkgb3RoZXIg dmFyaWFibGUuCgogICBBIGZldyB2YXJpYWJsZXMgY2Fubm90IGJlIGxvY2FsIHRvIGEgYnVmZmVy IGJlY2F1c2UgdGhleSBhcmUgYWx3YXlzCmxvY2FsIHRvIGVhY2ggZGlzcGxheSBpbnN0ZWFkICgq bm90ZSBNdWx0aXBsZSBEaXNwbGF5czo6KS4gIElmIHlvdSB0cnkKdG8gbWFrZSBvbmUgb2YgdGhl c2UgdmFyaWFibGVzIGJ1ZmZlci1sb2NhbCwgeW914oCZbGwgZ2V0IGFuIGVycm9yCm1lc3NhZ2Uu CgogICDigJhNLXgga2lsbC1sb2NhbC12YXJpYWJsZeKAmSBtYWtlcyBhIHNwZWNpZmllZCB2YXJp YWJsZSBjZWFzZSB0byBiZQpsb2NhbCB0byB0aGUgY3VycmVudCBidWZmZXIuICBUaGUgZ2xvYmFs IHZhbHVlIG9mIHRoZSB2YXJpYWJsZQpoZW5jZWZvcnRoIGlzIGluIGVmZmVjdCBpbiB0aGlzIGJ1 ZmZlci4gIFNldHRpbmcgdGhlIG1ham9yIG1vZGUga2lsbHMKYWxsIHRoZSBsb2NhbCB2YXJpYWJs ZXMgb2YgdGhlIGJ1ZmZlciBleGNlcHQgZm9yIGEgZmV3IHZhcmlhYmxlcwpzcGVjaWFsbHkgbWFy a2VkIGFzICJwZXJtYW5lbnQgbG9jYWxzIi4KCiAgIFRvIHNldCB0aGUgZ2xvYmFsIHZhbHVlIG9m IGEgdmFyaWFibGUsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUKdmFyaWFibGUgaGFzIGEgbG9j YWwgdmFsdWUgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLCB5b3UgY2FuIHVzZSB0aGUgTGlzcApjb25z dHJ1Y3Qg4oCYc2V0cS1kZWZhdWx04oCZLiAgVGhpcyBjb25zdHJ1Y3QgaXMgdXNlZCBqdXN0IGxp a2Ug4oCYc2V0ceKAmSwgYnV0Cml0IHNldHMgdmFyaWFibGVz4oCZIGdsb2JhbCB2YWx1ZXMgaW5z dGVhZCBvZiB0aGVpciBsb2NhbCB2YWx1ZXMgKGlmIGFueSkuCldoZW4gdGhlIGN1cnJlbnQgYnVm ZmVyIGRvZXMgaGF2ZSBhIGxvY2FsIHZhbHVlLCB0aGUgbmV3IGdsb2JhbCB2YWx1ZQptYXkgbm90 IGJlIHZpc2libGUgdW50aWwgeW91IHN3aXRjaCB0byBhbm90aGVyIGJ1ZmZlci4gIEhlcmUgaXMg YW4KZXhhbXBsZToKCiAgICAgKHNldHEtZGVmYXVsdCBmaWxsLWNvbHVtbiA3NSkKCuKAmHNldHEt ZGVmYXVsdOKAmSBpcyB0aGUgb25seSB3YXkgdG8gc2V0IHRoZSBnbG9iYWwgdmFsdWUgb2YgYSB2 YXJpYWJsZQp0aGF0IGhhcyBiZWVuIG1hcmtlZCB3aXRoIOKAmG1ha2UtdmFyaWFibGUtYnVmZmVy LWxvY2Fs4oCZLgoKICAgTGlzcCBwcm9ncmFtcyBjYW4gdXNlIOKAmGRlZmF1bHQtdmFsdWXigJkg dG8gbG9vayBhdCBhIHZhcmlhYmxl4oCZcyBkZWZhdWx0CnZhbHVlLiAgVGhpcyBmdW5jdGlvbiB0 YWtlcyBhIHN5bWJvbCBhcyBhcmd1bWVudCBhbmQgcmV0dXJucyBpdHMgZGVmYXVsdAp2YWx1ZS4g IFRoZSBhcmd1bWVudCBpcyBldmFsdWF0ZWQ7IHVzdWFsbHkgeW91IG11c3QgcXVvdGUgaXQgZXhw bGljaXRseS4KRm9yIGV4YW1wbGUsIGhlcmXigJlzIGhvdyB0byBvYnRhaW4gdGhlIGRlZmF1bHQg dmFsdWUgb2Yg4oCYZmlsbC1jb2x1bW7igJk6CgogICAgIChkZWZhdWx0LXZhbHVlICdmaWxsLWNv bHVtbikKCgoqKiogNDkuMi40IExvY2FsIFZhcmlhYmxlcyBpbiBGaWxlcwoKQSBmaWxlIGNhbiBz cGVjaWZ5IGxvY2FsIHZhcmlhYmxlIHZhbHVlcyB0byB1c2Ugd2hlbiBlZGl0aW5nIHRoZSBmaWxl CndpdGggRW1hY3MuICBWaXNpdGluZyB0aGUgZmlsZSBvciBzZXR0aW5nIGEgbWFqb3IgbW9kZSBj aGVja3MgZm9yIGxvY2FsCnZhcmlhYmxlIHNwZWNpZmljYXRpb25zOyBpdCBhdXRvbWF0aWNhbGx5 IG1ha2VzIHRoZXNlIHZhcmlhYmxlcyBsb2NhbCB0bwp0aGUgYnVmZmVyLCBhbmQgc2V0cyB0aGVt IHRvIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGluIHRoZSBmaWxlLgoKICAgRmlsZSBsb2NhbCB2YXJp YWJsZXMgb3ZlcnJpZGUgZGlyZWN0b3J5IGxvY2FsIHZhcmlhYmxlcyAoKm5vdGUKRGlyZWN0b3J5 IFZhcmlhYmxlczo6KSwgaWYgYW55IGFyZSBzcGVjaWZpZWQgZm9yIGEgZmlsZeKAmXMgZGlyZWN0 b3J5LgoKKyBNZW51OgoKICAtIFNwZWNpZnlpbmcgRmlsZSBWYXJpYWJsZXM6OiBTcGVjaWZ5aW5n IGZpbGUgbG9jYWwgdmFyaWFibGVzLgogIC0gU2FmZSBGaWxlIFZhcmlhYmxlczo6ICAgICAgIE1h a2luZyBzdXJlIGZpbGUgbG9jYWwgdmFyaWFibGVzIGFyZSBzYWZlLgoKCioqKiogNDkuMi40LjEg U3BlY2lmeWluZyBGaWxlIFZhcmlhYmxlcwoKVGhlcmUgYXJlIHR3byB3YXlzIHRvIHNwZWNpZnkg ZmlsZSBsb2NhbCB2YXJpYWJsZSB2YWx1ZXM6IGluIHRoZSBmaXJzdApsaW5lLCBvciB3aXRoIGEg bG9jYWwgdmFyaWFibGVzIGxpc3QuICBIZXJl4oCZcyBob3cgdG8gc3BlY2lmeSB0aGVtIGluIHRo ZQpmaXJzdCBsaW5lOgoKICAgICAtKi0gbW9kZTogTU9ERU5BTUU7IFZBUjogVkFMVUU7IOKApiAt Ki0KCllvdSBjYW4gc3BlY2lmeSBhbnkgbnVtYmVyIG9mIHZhcmlhYmxlL3ZhbHVlIHBhaXJzIGlu IHRoaXMgd2F5LCBlYWNoCnBhaXIgd2l0aCBhIGNvbG9uIGFuZCBzZW1pY29sb24uICBUaGUgc3Bl Y2lhbCB2YXJpYWJsZS92YWx1ZSBwYWlyIOKAmG1vZGU6Ck1PREVOQU1FO+KAmSwgaWYgcHJlc2Vu dCwgc3BlY2lmaWVzIGEgbWFqb3IgbW9kZS4gIFRoZSBWQUxVRXMgYXJlIHVzZWQKbGl0ZXJhbGx5 LCBhbmQgbm90IGV2YWx1YXRlZC4KCiAgIFlvdSBjYW4gdXNlIOKAmE0teCBhZGQtZmlsZS1sb2Nh bC12YXJpYWJsZS1wcm9wLWxpbmXigJkgaW5zdGVhZCBvZiBhZGRpbmcKZW50cmllcyBieSBoYW5k LiAgVGhpcyBjb21tYW5kIHByb21wdHMgZm9yIGEgdmFyaWFibGUgYW5kIHZhbHVlLCBhbmQKYWRk cyB0aGVtIHRvIHRoZSBmaXJzdCBsaW5lIGluIHRoZSBhcHByb3ByaWF0ZSB3YXkuICDigJhNLXgK ZGVsZXRlLWZpbGUtbG9jYWwtdmFyaWFibGUtcHJvcC1saW5l4oCZIHByb21wdHMgZm9yIGEgdmFy aWFibGUsIGFuZApkZWxldGVzIGl0cyBlbnRyeSBmcm9tIHRoZSBsaW5lLiAgVGhlIGNvbW1hbmQg 4oCYTS14CmNvcHktZGlyLWxvY2Fscy10by1maWxlLWxvY2Fscy1wcm9wLWxpbmXigJkgY29waWVz IHRoZSBjdXJyZW50CmRpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZXMgdG8gdGhlIGZpcnN0IGxpbmUg KCpub3RlIERpcmVjdG9yeQpWYXJpYWJsZXM6OikuCgogICBIZXJlIGlzIGFuIGV4YW1wbGUgZmly c3QgbGluZSB0aGF0IHNwZWNpZmllcyBMaXNwIG1vZGUgYW5kIHNldHMgdHdvCnZhcmlhYmxlcyB3 aXRoIG51bWVyaWMgdmFsdWVzOgoKICAgICA7OyAtKi0gbW9kZTogTGlzcDsgZmlsbC1jb2x1bW46 IDc1OyBjb21tZW50LWNvbHVtbjogNTA7IC0qLQoKQXNpZGUgZnJvbSDigJhtb2Rl4oCZLCBvdGhl ciBrZXl3b3JkcyB0aGF0IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBhcyBmaWxlCnZhcmlhYmxlcyBh cmUg4oCYY29kaW5n4oCZLCDigJh1bmlieXRl4oCZLCBhbmQg4oCYZXZhbOKAmS4gIFRoZXNlIGFy ZSBkZXNjcmliZWQKYmVsb3cuCgogICBJbiBzaGVsbCBzY3JpcHRzLCB0aGUgZmlyc3QgbGluZSBp cyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBzY3JpcHQKaW50ZXJwcmV0ZXIsIHNvIHlvdSBjYW5ub3Qg cHV0IGFueSBsb2NhbCB2YXJpYWJsZXMgdGhlcmUuICBUbwphY2NvbW1vZGF0ZSB0aGlzLCBFbWFj cyBsb29rcyBmb3IgbG9jYWwgdmFyaWFibGUgc3BlY2lmaWNhdGlvbnMgaW4gdGhlCl9zZWNvbmRf IGxpbmUgaWYgdGhlIGZpcnN0IGxpbmUgc3BlY2lmaWVzIGFuIGludGVycHJldGVyLiAgVGhlIHNh bWUgaXMKdHJ1ZSBmb3IgbWFuIHBhZ2VzIHdoaWNoIHN0YXJ0IHdpdGggdGhlIG1hZ2ljIHN0cmlu ZyDigJgnXCLigJkgdG8gc3BlY2lmeSBhCmxpc3Qgb2YgdHJvZmYgcHJlcHJvY2Vzc29ycyAobm90 IGFsbCBkbywgaG93ZXZlcikuCgogICBBcGFydCBmcm9tIHVzaW5nIGEg4oCYLSot4oCZIGxpbmUs IHlvdSBjYW4gZGVmaW5lIGZpbGUgbG9jYWwgdmFyaWFibGVzCnVzaW5nIGEgImxvY2FsIHZhcmlh YmxlcyBsaXN0IiBuZWFyIHRoZSBlbmQgb2YgdGhlIGZpbGUuICBUaGUgc3RhcnQgb2YKdGhlIGxv Y2FsIHZhcmlhYmxlcyBsaXN0IHNob3VsZCBiZSBubyBtb3JlIHRoYW4gMzAwMCBjaGFyYWN0ZXJz IGZyb20gdGhlCmVuZCBvZiB0aGUgZmlsZSwgYW5kIG11c3QgYmUgb24gdGhlIGxhc3QgcGFnZSBp ZiB0aGUgZmlsZSBpcyBkaXZpZGVkCmludG8gcGFnZXMuCgogICBJZiBhIGZpbGUgaGFzIGJvdGgg YSBsb2NhbCB2YXJpYWJsZXMgbGlzdCBhbmQgYSDigJgtKi3igJkgbGluZSwgRW1hY3MKcHJvY2Vz c2VzIF9ldmVyeXRoaW5nXyBpbiB0aGUg4oCYLSot4oCZIGxpbmUgZmlyc3QsIGFuZCBfZXZlcnl0 aGluZ18gaW4gdGhlCmxvY2FsIHZhcmlhYmxlcyBsaXN0IGFmdGVyd2FyZC4gIFRoZSBleGNlcHRp b24gdG8gdGhpcyBpcyBhIG1ham9yIG1vZGUKc3BlY2lmaWNhdGlvbi4gIEVtYWNzIGFwcGxpZXMg dGhpcyBmaXJzdCwgd2hlcmV2ZXIgaXQgYXBwZWFycywgc2luY2UKbW9zdCBtYWpvciBtb2RlcyBr aWxsIGFsbCBsb2NhbCB2YXJpYWJsZXMgYXMgcGFydCBvZiB0aGVpcgppbml0aWFsaXphdGlvbi4K CiAgIEEgbG9jYWwgdmFyaWFibGVzIGxpc3Qgc3RhcnRzIHdpdGggYSBsaW5lIGNvbnRhaW5pbmcg dGhlIHN0cmluZwrigJhMb2NhbCBWYXJpYWJsZXM64oCZLCBhbmQgZW5kcyB3aXRoIGEgbGluZSBj b250YWluaW5nIHRoZSBzdHJpbmcg4oCYRW5kOuKAmS4KSW4gYmV0d2VlbiBjb21lIHRoZSB2YXJp YWJsZSBuYW1lcyBhbmQgdmFsdWVzLCBvbmUgc2V0IHBlciBsaW5lLCBsaWtlCnRoaXM6CgogICAg IC8qIExvY2FsIFZhcmlhYmxlczogICovCiAgICAgLyogbW9kZTogYyAgICAgICAgICAgKi8KICAg ICAvKiBjb21tZW50LWNvbHVtbjogMCAqLwogICAgIC8qIEVuZDogICAgICAgICAgICAgICovCgpJ biB0aGlzIGV4YW1wbGUsIGVhY2ggbGluZSBzdGFydHMgd2l0aCB0aGUgcHJlZml4IOKAmC8q4oCZ IGFuZCBlbmRzIHdpdGggdGhlCnN1ZmZpeCDigJgqL+KAmS4gIEVtYWNzIHJlY29nbml6ZXMgdGhl IHByZWZpeCBhbmQgc3VmZml4IGJ5IGZpbmRpbmcgdGhlbQpzdXJyb3VuZGluZyB0aGUgbWFnaWMg c3RyaW5nIOKAmExvY2FsIFZhcmlhYmxlczrigJksIG9uIHRoZSBmaXJzdCBsaW5lIG9mCnRoZSBs aXN0OyBpdCB0aGVuIGF1dG9tYXRpY2FsbHkgZGlzY2FyZHMgdGhlbSBmcm9tIHRoZSBvdGhlciBs aW5lcyBvZgp0aGUgbGlzdC4gIFRoZSB1c3VhbCByZWFzb24gZm9yIHVzaW5nIGEgcHJlZml4IGFu ZC9vciBzdWZmaXggaXMgdG8gZW1iZWQKdGhlIGxvY2FsIHZhcmlhYmxlcyBsaXN0IGluIGEgY29t bWVudCwgc28gaXQgd29u4oCZdCBjb25mdXNlIG90aGVyCnByb2dyYW1zIHRoYXQgdGhlIGZpbGUg aXMgaW50ZW5kZWQgZm9yLiAgVGhlIGV4YW1wbGUgYWJvdmUgaXMgZm9yIHRoZSBDCnByb2dyYW1t aW5nIGxhbmd1YWdlLCB3aGVyZSBjb21tZW50cyBzdGFydCB3aXRoIOKAmC8q4oCZIGFuZCBlbmQg d2l0aCDigJgqL+KAmS4KCiAgIElmIHNvbWUgdW5yZWxhdGVkIHRleHQgbWlnaHQgbG9vayB0byBF bWFjcyBhcyBhIGxvY2FsIHZhcmlhYmxlcyBsaXN0LAp5b3UgY2FuIGNvdW50ZXJtYW5kIHRoYXQg YnkgaW5zZXJ0aW5nIGEgZm9ybS1mZWVkIGNoYXJhY3RlciAoYSBwYWdlCmRlbGltaXRlciwgKm5v dGUgUGFnZXM6OikgYWZ0ZXIgdGhhdCB0ZXh0LiAgRW1hY3Mgb25seSBsb29rcyBmb3IKZmlsZS1s b2NhbCB2YXJpYWJsZXMgaW4gdGhlIGxhc3QgcGFnZSBvZiBhIGZpbGUsIGFmdGVyIHRoZSBsYXN0 IHBhZ2UKZGVsaW1pdGVyLgoKICAgSW5zdGVhZCBvZiB0eXBpbmcgaW4gdGhlIGxvY2FsIHZhcmlh YmxlcyBsaXN0IGRpcmVjdGx5LCB5b3UgY2FuIHVzZQp0aGUgY29tbWFuZCDigJhNLXggYWRkLWZp bGUtbG9jYWwtdmFyaWFibGXigJkuICBUaGlzIHByb21wdHMgZm9yIGEgdmFyaWFibGUKYW5kIHZh bHVlLCBhbmQgYWRkcyB0aGVtIHRvIHRoZSBsaXN0LCBhZGRpbmcgdGhlIOKAmExvY2FsIFZhcmlh YmxlczrigJkKc3RyaW5nIGFuZCBzdGFydCBhbmQgZW5kIG1hcmtlcnMgYXMgbmVjZXNzYXJ5LiAg VGhlIGNvbW1hbmQg4oCYTS14CmRlbGV0ZS1maWxlLWxvY2FsLXZhcmlhYmxl4oCZIGRlbGV0ZXMg YSB2YXJpYWJsZSBmcm9tIHRoZSBsaXN0LiAg4oCYTS14CmNvcHktZGlyLWxvY2Fscy10by1maWxl LWxvY2Fsc+KAmSBjb3BpZXMgZGlyZWN0b3J5LWxvY2FsIHZhcmlhYmxlcyB0byB0aGUKbGlzdCAo Km5vdGUgRGlyZWN0b3J5IFZhcmlhYmxlczo6KS4KCiAgIEFzIHdpdGggdGhlIOKAmC0qLeKAmSBs aW5lLCB0aGUgdmFyaWFibGVzIGluIGEgbG9jYWwgdmFyaWFibGVzIGxpc3QgYXJlCnVzZWQgbGl0 ZXJhbGx5LCBhbmQgYXJlIG5vdCBldmFsdWF0ZWQgZmlyc3QuICBJZiB5b3Ugd2FudCB0byBzcGxp dCBhCmxvbmcgc3RyaW5nIHZhbHVlIGFjcm9zcyBtdWx0aXBsZSBsaW5lcyBvZiB0aGUgZmlsZSwg eW91IGNhbiB1c2UKYmFja3NsYXNoLW5ld2xpbmUsIHdoaWNoIGlzIGlnbm9yZWQgaW4gTGlzcCBz dHJpbmcgY29uc3RhbnRzOyB5b3Ugc2hvdWxkCnB1dCB0aGUgcHJlZml4IGFuZCBzdWZmaXggb24g ZWFjaCBsaW5lLCBldmVuIGxpbmVzIHRoYXQgc3RhcnQgb3IgZW5kCndpdGhpbiB0aGUgc3RyaW5n LCBhcyB0aGV5IHdpbGwgYmUgc3RyaXBwZWQgb2ZmIHdoZW4gcHJvY2Vzc2luZyB0aGUKbGlzdC4g IEhlcmUgaXMgYW4gZXhhbXBsZToKCiAgICAgIyBMb2NhbCBWYXJpYWJsZXM6CiAgICAgIyBjb21w aWxlLWNvbW1hbmQ6ICJjYyBmb28uYyAtRGZvbz1iYXIgLURoYWNrPXdoYXRldmVyIFwKICAgICAj ICAgLURtdW1ibGU9YmxhYWgiCiAgICAgIyBFbmQ6CgogICBTb21lIG5hbWVzIGhhdmUgc3BlY2lh bCBtZWFuaW5ncyBpbiBhIGxvY2FsIHZhcmlhYmxlcyBsaXN0OgoKICAg4oCiIOKAmG1vZGXigJkg ZW5hYmxlcyB0aGUgc3BlY2lmaWVkIG1ham9yIG1vZGUuCgogICDigKIg4oCYZXZhbOKAmSBldmFs dWF0ZXMgdGhlIHNwZWNpZmllZCBMaXNwIGV4cHJlc3Npb24gKHRoZSB2YWx1ZSByZXR1cm5lZAog ICAgIGJ5IHRoYXQgZXhwcmVzc2lvbiBpcyBpZ25vcmVkKS4KCiAgIOKAoiDigJhjb2RpbmfigJkg c3BlY2lmaWVzIHRoZSBjb2Rpbmcgc3lzdGVtIGZvciBjaGFyYWN0ZXIgY29kZSBjb252ZXJzaW9u CiAgICAgb2YgdGhpcyBmaWxlLiAgKk5vdGUgQ29kaW5nIFN5c3RlbXM6Oi4KCiAgIOKAoiDigJh1 bmlieXRl4oCZIHNheXMgdG8gbG9hZCBvciBjb21waWxlIGEgZmlsZSBvZiBFbWFjcyBMaXNwIGlu IHVuaWJ5dGUKICAgICBtb2RlLCBpZiB0aGUgdmFsdWUgaXMg4oCYdOKAmS4gICpOb3RlIERpc2Fi bGluZyBNdWx0aWJ5dGUgQ2hhcmFjdGVyczoKICAgICAoZWxpc3ApRGlzYWJsaW5nIE11bHRpYnl0 ZS4KClRoZXNlIGZvdXIga2V5d29yZHMgYXJlIG5vdCByZWFsbHkgdmFyaWFibGVzOyBzZXR0aW5n IHRoZW0gaW4gYW55IG90aGVyCmNvbnRleHQgaGFzIG5vIHNwZWNpYWwgbWVhbmluZy4KCiAgIERv IG5vdCB1c2UgdGhlIOKAmG1vZGXigJkga2V5d29yZCBmb3IgbWlub3IgbW9kZXMuICBUbyBlbmFi bGUgb3IgZGlzYWJsZQphIG1pbm9yIG1vZGUgaW4gYSBsb2NhbCB2YXJpYWJsZXMgbGlzdCwgdXNl IHRoZSDigJhldmFs4oCZIGtleXdvcmQgd2l0aCBhCkxpc3AgZXhwcmVzc2lvbiB0aGF0IHJ1bnMg dGhlIG1vZGUgY29tbWFuZCAoKm5vdGUgTWlub3IgTW9kZXM6OikuICBGb3IKZXhhbXBsZSwgdGhl IGZvbGxvd2luZyBsb2NhbCB2YXJpYWJsZXMgbGlzdCBlbmFibGVzIEVsZG9jIG1vZGUgKCpub3Rl Ckxpc3AgRG9jOjopIGJ5IGNhbGxpbmcg4oCYZWxkb2MtbW9kZeKAmSB3aXRoIG5vIGFyZ3VtZW50 IChjYWxsaW5nIGl0IHdpdGggYW4KYXJndW1lbnQgb2YgMSB3b3VsZCBkbyB0aGUgc2FtZSksIGFu ZCBkaXNhYmxlcyBGb250IExvY2sgbW9kZSAoKm5vdGUKRm9udCBMb2NrOjopIGJ5IGNhbGxpbmcg 4oCYZm9udC1sb2NrLW1vZGXigJkgd2l0aCBhbiBhcmd1bWVudCBvZiDiiJIxLgoKICAgICA7OyBM b2NhbCBWYXJpYWJsZXM6CiAgICAgOzsgZXZhbDogKGVsZG9jLW1vZGUpCiAgICAgOzsgZXZhbDog KGZvbnQtbG9jay1tb2RlIC0xKQogICAgIDs7IEVuZDoKCk5vdGUsIGhvd2V2ZXIsIHRoYXQgaXQg aXMgb2Z0ZW4gYSBtaXN0YWtlIHRvIHNwZWNpZnkgbWlub3IgbW9kZXMgdGhpcwp3YXkuICBNaW5v ciBtb2RlcyByZXByZXNlbnQgaW5kaXZpZHVhbCB1c2VyIHByZWZlcmVuY2VzLCBhbmQgaXQgbWF5 IGJlCmluYXBwcm9wcmlhdGUgdG8gaW1wb3NlIHlvdXIgcHJlZmVyZW5jZXMgb24gYW5vdGhlciB1 c2VyIHdobyBtaWdodCBlZGl0CnRoZSBmaWxlLiAgSWYgeW91IHdpc2ggdG8gYXV0b21hdGljYWxs eSBlbmFibGUgb3IgZGlzYWJsZSBhIG1pbm9yIG1vZGUKaW4gYSBzaXR1YXRpb24tZGVwZW5kZW50 IHdheSwgaXQgaXMgb2Z0ZW4gYmV0dGVyIHRvIGRvIGl0IGluIGEgbWFqb3IKbW9kZSBob29rICgq bm90ZSBIb29rczo6KS4KCiAgIFVzZSB0aGUgY29tbWFuZCDigJhNLXggbm9ybWFsLW1vZGXigJkg dG8gcmVzZXQgdGhlIGxvY2FsIHZhcmlhYmxlcyBhbmQKbWFqb3IgbW9kZSBvZiBhIGJ1ZmZlciBh Y2NvcmRpbmcgdG8gdGhlIGZpbGUgbmFtZSBhbmQgY29udGVudHMsCmluY2x1ZGluZyB0aGUgbG9j YWwgdmFyaWFibGVzIGxpc3QgaWYgYW55LiAgKk5vdGUgQ2hvb3NpbmcgTW9kZXM6Oi4KCgoqKioq IDQ5LjIuNC4yIFNhZmV0eSBvZiBGaWxlIFZhcmlhYmxlcwoKRmlsZS1sb2NhbCB2YXJpYWJsZXMg Y2FuIGJlIGRhbmdlcm91czsgd2hlbiB5b3UgdmlzaXQgc29tZW9uZSBlbHNl4oCZcwpmaWxlLCB0 aGVyZeKAmXMgbm8gdGVsbGluZyB3aGF0IGl0cyBsb2NhbCB2YXJpYWJsZXMgbGlzdCBjb3VsZCBk byB0byB5b3VyCkVtYWNzLiAgSW1wcm9wZXIgdmFsdWVzIG9mIHRoZSDigJhldmFs4oCZIOKAnHZh cmlhYmxl4oCdLCBhbmQgb3RoZXIgdmFyaWFibGVzCnN1Y2ggYXMg4oCYbG9hZC1wYXRo4oCZLCBj b3VsZCBleGVjdXRlIExpc3AgY29kZSB5b3UgZGlkbuKAmXQgaW50ZW5kIHRvIHJ1bi4KCiAgIFRo ZXJlZm9yZSwgd2hlbmV2ZXIgRW1hY3MgZW5jb3VudGVycyBmaWxlIGxvY2FsIHZhcmlhYmxlIHZh bHVlcyB0aGF0CmFyZSBub3Qga25vd24gdG8gYmUgc2FmZSwgaXQgZGlzcGxheXMgdGhlIGZpbGXi gJlzIGVudGlyZSBsb2NhbCB2YXJpYWJsZXMKbGlzdCwgYW5kIGFza3MgeW91IGZvciBjb25maXJt YXRpb24gYmVmb3JlIHNldHRpbmcgdGhlbS4gIFlvdSBjYW4gdHlwZQrigJh54oCZIG9yIDxTUEM+ IHRvIHB1dCB0aGUgbG9jYWwgdmFyaWFibGVzIGxpc3QgaW50byBlZmZlY3QsIG9yIOKAmG7igJkg dG8KaWdub3JlIGl0LiAgV2hlbiBFbWFjcyBpcyBydW4gaW4gYmF0Y2ggbW9kZSAoKm5vdGUgSW5p dGlhbCBPcHRpb25zOjopLAppdCBjYW7igJl0IHJlYWxseSBhc2sgeW91LCBzbyBpdCBhc3N1bWVz IHRoZSBhbnN3ZXIg4oCYbuKAmS4KCiAgIEVtYWNzIG5vcm1hbGx5IHJlY29nbml6ZXMgY2VydGFp biB2YXJpYWJsZS92YWx1ZSBwYWlycyBhcyBzYWZlLiAgRm9yCmluc3RhbmNlLCBpdCBpcyBzYWZl IHRvIGdpdmUg4oCYY29tbWVudC1jb2x1bW7igJkgb3Ig4oCYZmlsbC1jb2x1bW7igJkgYW55Cmlu dGVnZXIgdmFsdWUuICBJZiBhIGZpbGUgc3BlY2lmaWVzIG9ubHkga25vd24tc2FmZSB2YXJpYWJs ZS92YWx1ZQpwYWlycywgRW1hY3MgZG9lcyBub3QgYXNrIGZvciBjb25maXJtYXRpb24gYmVmb3Jl IHNldHRpbmcgdGhlbS4KT3RoZXJ3aXNlLCB5b3UgY2FuIHRlbGwgRW1hY3MgdG8gcmVjb3JkIGFs bCB0aGUgdmFyaWFibGUvdmFsdWUgcGFpcnMgaW4KdGhpcyBmaWxlIGFzIHNhZmUsIGJ5IHR5cGlu ZyDigJgh4oCZIGF0IHRoZSBjb25maXJtYXRpb24gcHJvbXB0LiAgV2hlbiBFbWFjcwplbmNvdW50 ZXJzIHRoZXNlIHZhcmlhYmxlL3ZhbHVlIHBhaXJzIHN1YnNlcXVlbnRseSwgaW4gdGhlIHNhbWUg ZmlsZSBvcgpvdGhlcnMsIGl0IHdpbGwgYXNzdW1lIHRoZXkgYXJlIHNhZmUuCgogICBTb21lIHZh cmlhYmxlcywgc3VjaCBhcyDigJhsb2FkLXBhdGjigJksIGFyZSBjb25zaWRlcmVkIHBhcnRpY3Vs YXJseQoicmlza3kiOiB0aGVyZSBpcyBzZWxkb20gYW55IHJlYXNvbiB0byBzcGVjaWZ5IHRoZW0g YXMgbG9jYWwgdmFyaWFibGVzLAphbmQgY2hhbmdpbmcgdGhlbSBjYW4gYmUgZGFuZ2Vyb3VzLiAg SWYgYSBmaWxlIGNvbnRhaW5zIG9ubHkgcmlza3kgbG9jYWwKdmFyaWFibGVzLCBFbWFjcyBuZWl0 aGVyIG9mZmVycyBub3IgYWNjZXB0cyDigJgh4oCZIGFzIGlucHV0IGF0IHRoZQpjb25maXJtYXRp b24gcHJvbXB0LiAgSWYgc29tZSBvZiB0aGUgbG9jYWwgdmFyaWFibGVzIGluIGEgZmlsZSBhcmUK cmlza3ksIGFuZCBzb21lIGFyZSBvbmx5IHBvdGVudGlhbGx5IHVuc2FmZSwgeW91IGNhbiBlbnRl ciDigJgh4oCZIGF0IHRoZQpwcm9tcHQuICBJdCBhcHBsaWVzIGFsbCB0aGUgdmFyaWFibGVzLCBi dXQgb25seSBtYXJrcyB0aGUgbm9uLXJpc2t5IG9uZXMKYXMgc2FmZSBmb3IgdGhlIGZ1dHVyZS4g IElmIHlvdSByZWFsbHkgd2FudCB0byByZWNvcmQgc2FmZSB2YWx1ZXMgZm9yCnJpc2t5IHZhcmlh YmxlcywgZG8gaXQgZGlyZWN0bHkgYnkgY3VzdG9taXppbmcK4oCYc2FmZS1sb2NhbC12YXJpYWJs ZS12YWx1ZXPigJkgKCpub3RlIEVhc3kgQ3VzdG9taXphdGlvbjo6KS4KCiAgIFRoZSB2YXJpYWJs ZSDigJhlbmFibGUtbG9jYWwtdmFyaWFibGVz4oCZIGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSB3 YXkKRW1hY3MgcHJvY2Vzc2VzIGxvY2FsIHZhcmlhYmxlcy4gIEl0cyBkZWZhdWx0IHZhbHVlIGlz IOKAmHTigJksIHdoaWNoCnNwZWNpZmllcyB0aGUgYmVoYXZpb3IgZGVzY3JpYmVkIGFib3ZlLiAg SWYgaXQgaXMg4oCYbmls4oCZLCBFbWFjcyBzaW1wbHkKaWdub3JlcyBhbGwgZmlsZSBsb2NhbCB2 YXJpYWJsZXMuICDigJg6c2FmZeKAmSBtZWFucyB1c2Ugb25seSB0aGUgc2FmZQp2YWx1ZXMgYW5k IGlnbm9yZSB0aGUgcmVzdC4gIEFueSBvdGhlciB2YWx1ZSBzYXlzIHRvIHF1ZXJ5IHlvdSBhYm91 dAplYWNoIGZpbGUgdGhhdCBoYXMgbG9jYWwgdmFyaWFibGVzLCB3aXRob3V0IHRyeWluZyB0byBk ZXRlcm1pbmUgd2hldGhlcgp0aGUgdmFsdWVzIGFyZSBrbm93biB0byBiZSBzYWZlLgoKICAgVGhl IHZhcmlhYmxlIOKAmGVuYWJsZS1sb2NhbC1ldmFs4oCZIGNvbnRyb2xzIHdoZXRoZXIgRW1hY3Mg cHJvY2Vzc2VzCuKAmGV2YWzigJkgdmFyaWFibGVzLiAgVGhlIHRocmVlIHBvc3NpYmlsaXRpZXMg Zm9yIHRoZSB2YXJpYWJsZeKAmXMgdmFsdWUgYXJlCuKAmHTigJksIOKAmG5pbOKAmSwgYW5kIGFu eXRoaW5nIGVsc2UsIGp1c3QgYXMgZm9yIOKAmGVuYWJsZS1sb2NhbC12YXJpYWJsZXPigJkuClRo ZSBkZWZhdWx0IGlzIOKAmG1heWJl4oCZLCB3aGljaCBpcyBuZWl0aGVyIOKAmHTigJkgbm9yIOKA mG5pbOKAmSwgc28gbm9ybWFsbHkKRW1hY3MgZG9lcyBhc2sgZm9yIGNvbmZpcm1hdGlvbiBhYm91 dCBwcm9jZXNzaW5nIOKAmGV2YWzigJkgdmFyaWFibGVzLgoKICAgQXMgYW4gZXhjZXB0aW9uLCBF bWFjcyBuZXZlciBhc2tzIGZvciBjb25maXJtYXRpb24gdG8gZXZhbHVhdGUgYW55CuKAmGV2YWzi gJkgZm9ybSBpZiB0aGF0IGZvcm0gb2NjdXJzIHdpdGhpbiB0aGUgdmFyaWFibGUK4oCYc2FmZS1s b2NhbC1ldmFsLWZvcm1z4oCZLgoKCioqKiA0OS4yLjUgUGVyLURpcmVjdG9yeSBMb2NhbCBWYXJp YWJsZXMKClNvbWV0aW1lcywgeW91IG1heSB3aXNoIHRvIGRlZmluZSB0aGUgc2FtZSBzZXQgb2Yg bG9jYWwgdmFyaWFibGVzIHRvIGFsbAp0aGUgZmlsZXMgaW4gYSBjZXJ0YWluIGRpcmVjdG9yeSBh bmQgaXRzIHN1YmRpcmVjdG9yaWVzLCBzdWNoIGFzIHRoZQpkaXJlY3RvcnkgdHJlZSBvZiBhIGxh cmdlIHNvZnR3YXJlIHByb2plY3QuICBUaGlzIGNhbiBiZSBhY2NvbXBsaXNoZWQKd2l0aCAiZGly ZWN0b3J5LWxvY2FsIHZhcmlhYmxlcyIuICBGaWxlIGxvY2FsIHZhcmlhYmxlcyBvdmVycmlkZQpk aXJlY3RvcnkgbG9jYWwgdmFyaWFibGVzLCBzbyBpZiBzb21lIG9mIHRoZSBmaWxlcyBpbiBhIGRp cmVjdG9yeSBuZWVkCnNwZWNpYWxpemVkIHNldHRpbmdzLCB5b3UgY2FuIHNwZWNpZnkgdGhlIHNl dHRpbmdzIGZvciB0aGUgbWFqb3JpdHkgb2YKdGhlIGRpcmVjdG9yeeKAmXMgZmlsZXMgaW4gZGly ZWN0b3J5IHZhcmlhYmxlcywgYW5kIHRoZW4gZGVmaW5lIGZpbGUgbG9jYWwKdmFyaWFibGVzIGlu IGEgZmV3IGZpbGVzIHdoaWNoIG5lZWQgdGhlIGdlbmVyYWwgc2V0dGluZ3Mgb3ZlcnJpZGRlbi4K CiAgIFRoZSB1c3VhbCB3YXkgdG8gZGVmaW5lIGRpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZXMgaXMg dG8gcHV0IGEgZmlsZQpuYW1lZCDigJguZGlyLWxvY2Fscy5lbOKAmSgxKWluIGEgZGlyZWN0b3J5 LiAgV2hlbmV2ZXIgRW1hY3MgdmlzaXRzIGFueSBmaWxlCmluIHRoYXQgZGlyZWN0b3J5IG9yIGFu eSBvZiBpdHMgc3ViZGlyZWN0b3JpZXMsIGl0IHdpbGwgYXBwbHkgdGhlCmRpcmVjdG9yeS1sb2Nh bCB2YXJpYWJsZXMgc3BlY2lmaWVkIGluIOKAmC5kaXItbG9jYWxzLmVs4oCZLCBhcyB0aG91Z2gg dGhleQpoYWQgYmVlbiBkZWZpbmVkIGFzIGZpbGUtbG9jYWwgdmFyaWFibGVzIGZvciB0aGF0IGZp bGUgKCpub3RlIEZpbGUKVmFyaWFibGVzOjopLiAgRW1hY3Mgc2VhcmNoZXMgZm9yIOKAmC5kaXIt bG9jYWxzLmVs4oCZIHN0YXJ0aW5nIGluIHRoZQpkaXJlY3Rvcnkgb2YgdGhlIHZpc2l0ZWQgZmls ZSwgYW5kIG1vdmluZyB1cCB0aGUgZGlyZWN0b3J5IHRyZWUuICBUbwphdm9pZCBzbG93ZG93biwg dGhpcyBzZWFyY2ggaXMgc2tpcHBlZCBmb3IgcmVtb3RlIGZpbGVzLiAgSWYgbmVlZGVkLCB0aGUK c2VhcmNoIGNhbiBiZSBleHRlbmRlZCBmb3IgcmVtb3RlIGZpbGVzIGJ5IHNldHRpbmcgdGhlIHZh cmlhYmxlCuKAmGVuYWJsZS1yZW1vdGUtZGlyLWxvY2Fsc+KAmSB0byDigJh04oCZLgoKICAgWW91 IGNhbiBhbHNvIHVzZSDigJguZGlyLWxvY2Fscy0yLmVs4oCZOyBpZiBmb3VuZCwgRW1hY3MgbG9h ZHMgaXQgaW4KYWRkaXRpb24gdG8g4oCYLmRpci1sb2NhbHMuZWzigJkuICBUaGlzIGlzIHVzZWZ1 bCB3aGVuIOKAmC5kaXItbG9jYWxzLmVs4oCZIGlzCnVuZGVyIHZlcnNpb24gY29udHJvbCBpbiBh IHNoYXJlZCByZXBvc2l0b3J5IGFuZCBjYW7igJl0IGJlIHVzZWQgZm9yCnBlcnNvbmFsIGN1c3Rv bWl6YXRpb25zLgoKICAgVGhlIOKAmC5kaXItbG9jYWxzLmVs4oCZIGZpbGUgc2hvdWxkIGhvbGQg YSBzcGVjaWFsbHktY29uc3RydWN0ZWQgbGlzdCwKd2hpY2ggbWFwcyBtYWpvciBtb2RlIG5hbWVz IChzeW1ib2xzKSB0byBhbGlzdHMgKCpub3RlCihlbGlzcClBc3NvY2lhdGlvbiBMaXN0czo6KS4g IEVhY2ggYWxpc3QgZW50cnkgY29uc2lzdHMgb2YgYSB2YXJpYWJsZQpuYW1lIGFuZCB0aGUgZGly ZWN0b3J5LWxvY2FsIHZhbHVlIHRvIGFzc2lnbiB0byB0aGF0IHZhcmlhYmxlLCB3aGVuIHRoZQpz cGVjaWZpZWQgbWFqb3IgbW9kZSBpcyBlbmFibGVkLiAgSW5zdGVhZCBvZiBhIG1vZGUgbmFtZSwg eW91IGNhbgpzcGVjaWZ5IOKAmG5pbOKAmSwgd2hpY2ggbWVhbnMgdGhhdCB0aGUgYWxpc3QgYXBw bGllcyB0byBhbnkgbW9kZTsgb3IgeW91CmNhbiBzcGVjaWZ5IGEgc3ViZGlyZWN0b3J5IChhIHN0 cmluZyksIGluIHdoaWNoIGNhc2UgdGhlIGFsaXN0IGFwcGxpZXMKdG8gYWxsIGZpbGVzIGluIHRo YXQgc3ViZGlyZWN0b3J5LgoKICAgSGVyZeKAmXMgYW4gZXhhbXBsZSBvZiBhIOKAmC5kaXItbG9j YWxzLmVs4oCZIGZpbGU6CgogICAgICgobmlsIC4gKChpbmRlbnQtdGFicy1tb2RlIC4gdCkKICAg ICAgICAgICAgICAoZmlsbC1jb2x1bW4gLiA4MCkpKQogICAgICAoYy1tb2RlIC4gKChjLWZpbGUt c3R5bGUgLiAiQlNEIikKICAgICAgICAgICAgICAgICAoc3ViZGlycyAuIG5pbCkpKQogICAgICAo InNyYy9pbXBvcnRlZCIKICAgICAgIC4gKChuaWwgLiAoKGNoYW5nZS1sb2ctZGVmYXVsdC1uYW1l CiAgICAgICAgICAgICAgICAgICAuICJDaGFuZ2VMb2cubG9jYWwiKSkpKSkpCgpUaGlzIHNldHMg 4oCYaW5kZW50LXRhYnMtbW9kZeKAmSBhbmQg4oCYZmlsbC1jb2x1bW7igJkgZm9yIGFueSBmaWxl IGluIHRoZQpkaXJlY3RvcnkgdHJlZSwgYW5kIHRoZSBpbmRlbnRhdGlvbiBzdHlsZSBmb3IgYW55 IEMgc291cmNlIGZpbGUuICBUaGUKc3BlY2lhbCDigJhzdWJkaXJz4oCZIGVsZW1lbnQgaXMgbm90 IGEgdmFyaWFibGUsIGJ1dCBhIHNwZWNpYWwga2V5d29yZCB3aGljaAppbmRpY2F0ZXMgdGhhdCB0 aGUgQyBtb2RlIHNldHRpbmdzIGFyZSBvbmx5IHRvIGJlIGFwcGxpZWQgaW4gdGhlIGN1cnJlbnQK ZGlyZWN0b3J5LCBub3QgaW4gYW55IHN1YmRpcmVjdG9yaWVzLiAgRmluYWxseSwgaXQgc3BlY2lm aWVzIGEgZGlmZmVyZW50CuKAmENoYW5nZUxvZ+KAmSBmaWxlIG5hbWUgZm9yIGFueSBmaWxlIGlu IHRoZSDigJhzcmMvaW1wb3J0ZWTigJkgc3ViZGlyZWN0b3J5LgoKICAgWW91IGNhbiBzcGVjaWZ5 IHRoZSB2YXJpYWJsZXMg4oCYbW9kZeKAmSwg4oCYZXZhbOKAmSwgYW5kIOKAmHVuaWJ5dGXigJkg aW4geW91cgrigJguZGlyLWxvY2Fscy5lbOKAmSwgYW5kIHRoZXkgaGF2ZSB0aGUgc2FtZSBtZWFu aW5ncyBhcyB0aGV5IHdvdWxkIGhhdmUgaW4KZmlsZSBsb2NhbCB2YXJpYWJsZXMuICDigJhjb2Rp bmfigJkgY2Fubm90IGJlIHNwZWNpZmllZCBhcyBhIGRpcmVjdG9yeSBsb2NhbAp2YXJpYWJsZS4g ICpOb3RlIEZpbGUgVmFyaWFibGVzOjouCgogICBJbnN0ZWFkIG9mIGVkaXRpbmcgdGhlIOKAmC5k aXItbG9jYWxzLmVs4oCZIGZpbGUgYnkgaGFuZCwgeW91IGNhbiB1c2UgdGhlCmNvbW1hbmQg4oCY TS14IGFkZC1kaXItbG9jYWwtdmFyaWFibGXigJkuICBUaGlzIHByb21wdHMgZm9yIGEgbW9kZSBv cgpzdWJkaXJlY3RvcnksIGFuZCBmb3IgdmFyaWFibGUgYW5kIHZhbHVlLCBhbmQgYWRkcyB0aGUg ZW50cnkgZGVmaW5pbmcKdGhlIGRpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZS4gIOKAmE0teCBkZWxl dGUtZGlyLWxvY2FsLXZhcmlhYmxl4oCZIGRlbGV0ZXMKYW4gZW50cnkuICDigJhNLXggY29weS1m aWxlLWxvY2Fscy10by1kaXItbG9jYWxz4oCZIGNvcGllcyB0aGUgZmlsZS1sb2NhbAp2YXJpYWJs ZXMgaW4gdGhlIGN1cnJlbnQgZmlsZSBpbnRvIOKAmC5kaXItbG9jYWxzLmVs4oCZLgoKICAgQW5v dGhlciBtZXRob2Qgb2Ygc3BlY2lmeWluZyBkaXJlY3RvcnktbG9jYWwgdmFyaWFibGVzIGlzIHRv IGRlZmluZSBhCmdyb3VwIG9mIHZhcmlhYmxlcy92YWx1ZSBwYWlycyBpbiBhICJkaXJlY3Rvcnkg Y2xhc3MiLCB1c2luZyB0aGUK4oCYZGlyLWxvY2Fscy1zZXQtY2xhc3MtdmFyaWFibGVz4oCZIGZ1 bmN0aW9uOyB0aGVuLCB0ZWxsIEVtYWNzIHdoaWNoCmRpcmVjdG9yaWVzIGNvcnJlc3BvbmQgdG8g dGhlIGNsYXNzIGJ5IHVzaW5nIHRoZQrigJhkaXItbG9jYWxzLXNldC1kaXJlY3RvcnktY2xhc3Pi gJkgZnVuY3Rpb24uICBUaGVzZSBmdW5jdGlvbiBjYWxscwpub3JtYWxseSBnbyBpbiB5b3VyIGlu aXRpYWxpemF0aW9uIGZpbGUgKCpub3RlIEluaXQgRmlsZTo6KS4gIFRoaXMKbWV0aG9kIGlzIHVz ZWZ1bCB3aGVuIHlvdSBjYW7igJl0IHB1dCDigJguZGlyLWxvY2Fscy5lbOKAmSBpbiBhIGRpcmVj dG9yeSBmb3IKc29tZSByZWFzb24uICBGb3IgZXhhbXBsZSwgeW91IGNvdWxkIGFwcGx5IHNldHRp bmdzIHRvIGFuIHVud3JpdGFibGUKZGlyZWN0b3J5IHRoaXMgd2F5OgoKICAgICAoZGlyLWxvY2Fs cy1zZXQtY2xhc3MtdmFyaWFibGVzICd1bndyaXRhYmxlLWRpcmVjdG9yeQogICAgICAgICcoKG5p bCAuICgoc29tZS11c2VmdWwtc2V0dGluZyAuIHZhbHVlKSkpKSkKCiAgICAgKGRpci1sb2NhbHMt c2V0LWRpcmVjdG9yeS1jbGFzcwogICAgICAgICIvdXNyL2luY2x1ZGUvIiAndW53cml0YWJsZS1k aXJlY3RvcnkpCgogICBJZiBhIHZhcmlhYmxlIGhhcyBib3RoIGEgZGlyZWN0b3J5LWxvY2FsIGFu ZCBmaWxlLWxvY2FsIHZhbHVlCnNwZWNpZmllZCwgdGhlIGZpbGUtbG9jYWwgdmFsdWUgdGFrZXMg ZWZmZWN0LiAgVW5zYWZlIGRpcmVjdG9yeS1sb2NhbAp2YXJpYWJsZXMgYXJlIGhhbmRsZWQgaW4g dGhlIHNhbWUgd2F5IGFzIHVuc2FmZSBmaWxlLWxvY2FsIHZhcmlhYmxlcwooKm5vdGUgU2FmZSBG aWxlIFZhcmlhYmxlczo6KS4KCiAgIERpcmVjdG9yeS1sb2NhbCB2YXJpYWJsZXMgYWxzbyB0YWtl IGVmZmVjdCBpbiBjZXJ0YWluIGJ1ZmZlcnMgdGhhdCBkbwpub3QgdmlzaXQgYSBmaWxlIGRpcmVj dGx5IGJ1dCBwZXJmb3JtIHdvcmsgd2l0aGluIGEgZGlyZWN0b3J5LCBzdWNoIGFzCkRpcmVkIGJ1 ZmZlcnMgKCpub3RlIERpcmVkOjopLgoKICAgLS0tLS0tLS0tLSBGb290bm90ZXMgLS0tLS0tLS0t LQoKICAgKDEpIE9uIE1TLURPUywgdGhlIG5hbWUgb2YgdGhpcyBmaWxlIHNob3VsZCBiZSDigJhf ZGlyLWxvY2Fscy5lbOKAmSwgZHVlCnRvIGxpbWl0YXRpb25zIG9mIHRoZSBET1MgZmlsZXN5c3Rl bXMuICBJZiB0aGUgZmlsZXN5c3RlbSBpcyBsaW1pdGVkIHRvCjgrMyBmaWxlIG5hbWVzLCB0aGUg bmFtZSBvZiB0aGUgZmlsZSB3aWxsIGJlIHRydW5jYXRlZCBieSB0aGUgT1MgdG8K4oCYX2Rpci1s b2MuZWzigJkuCgoKKiogNDkuMyBDdXN0b21pemluZyBLZXkgQmluZGluZ3MKClRoaXMgc2VjdGlv biBkZXNjcmliZXMgImtleSBiaW5kaW5ncyIsIHdoaWNoIG1hcCBrZXlzIHRvIGNvbW1hbmRzLCBh bmQKImtleW1hcHMiLCB3aGljaCByZWNvcmQga2V5IGJpbmRpbmdzLiAgSXQgYWxzbyBleHBsYWlu cyBob3cgdG8gY3VzdG9taXplCmtleSBiaW5kaW5ncywgd2hpY2ggaXMgZG9uZSBieSBlZGl0aW5n IHlvdXIgaW5pdCBmaWxlICgqbm90ZSBJbml0ClJlYmluZGluZzo6KS4KCiAgIFNpbmNlIG1vc3Qg bW9kZXMgZGVmaW5lIHRoZWlyIG93biBrZXkgYmluZGluZ3MsIGFjdGl2YXRpbmcgYSBtb2RlCm1p Z2h0IG92ZXJyaWRlIHlvdXIgY3VzdG9tIGtleSBiaW5kaW5ncy4gIEEgc21hbGwgbnVtYmVyIG9m IGtleXMgYXJlCnJlc2VydmVkIGZvciB1c2VyLWRlZmluZWQgYmluZGluZ3MsIGFuZCBzaG91bGQg bm90IGJlIHVzZWQgYnkgbW9kZXMsIHNvCmtleSBiaW5kaW5ncyB1c2luZyB0aG9zZSBrZXlzIGFy ZSBzYWZlciBpbiB0aGlzIHJlZ2FyZC4gIFRoZSByZXNlcnZlZAprZXkgc2VxdWVuY2VzIGFyZSB0 aG9zZSBjb25zaXN0aW5nIG9mIOKAmEMtY+KAmSBmb2xsb3dlZCBieSBhIGxldHRlciAoZWl0aGVy CnVwcGVyIG9yIGxvd2VyIGNhc2UpLCBhbmQgZnVuY3Rpb24ga2V5cyA8RjU+IHRocm91Z2ggPEY5 PiB3aXRob3V0Cm1vZGlmaWVycyAoKm5vdGUgTW9kaWZpZXIgS2V5czo6KS4KCisgTWVudToKCiAg LSBLZXltYXBzOjogICAgICAgICAgICAgR2VuZXJhbGl0aWVzLiAgVGhlIGdsb2JhbCBrZXltYXAu CiAgLSBQcmVmaXggS2V5bWFwczo6ICAgICAgS2V5bWFwcyBmb3IgcHJlZml4IGtleXMuCiAgLSBM b2NhbCBLZXltYXBzOjogICAgICAgTWFqb3IgYW5kIG1pbm9yIG1vZGVzIGhhdmUgdGhlaXIgb3du IGtleW1hcHMuCiAgLSBNaW5pYnVmZmVyIE1hcHM6OiAgICAgVGhlIG1pbmlidWZmZXIgdXNlcyBp dHMgb3duIGxvY2FsIGtleW1hcHMuCiAgLSBSZWJpbmRpbmc6OiAgICAgICAgICAgSG93IHRvIHJl ZGVmaW5lIG9uZSBrZXnigJlzIG1lYW5pbmcgY29udmVuaWVudGx5LgogIC0gSW5pdCBSZWJpbmRp bmc6OiAgICAgIFJlYmluZGluZyBrZXlzIHdpdGggeW91ciBpbml0aWFsaXphdGlvbiBmaWxlLgog IC0gTW9kaWZpZXIgS2V5czo6ICAgICAgIFVzaW5nIG1vZGlmaWVyIGtleXMuCiAgLSBGdW5jdGlv biBLZXlzOjogICAgICAgUmViaW5kaW5nIHRlcm1pbmFsIGZ1bmN0aW9uIGtleXMuCiAgLSBOYW1l ZCBBU0NJSSBDaGFyczo6ICAgRGlzdGluZ3Vpc2hpbmcgPFRBQj4gZnJvbSDigJhDLWnigJksIGFu ZCBzbyBvbi4KICAtIE1vdXNlIEJ1dHRvbnM6OiAgICAgICBSZWJpbmRpbmcgbW91c2UgYnV0dG9u cyBpbiBFbWFjcy4KICAtIERpc2FibGluZzo6ICAgICAgICAgICBEaXNhYmxpbmcgYSBjb21tYW5k IG1lYW5zIGNvbmZpcm1hdGlvbiBpcyByZXF1aXJlZAogICAgICAgICAgICAgICAgICAgICAgICAg IGJlZm9yZSBpdCBjYW4gYmUgZXhlY3V0ZWQuICBUaGlzIGlzIGRvbmUgdG8gcHJvdGVjdAogICAg ICAgICAgICAgICAgICAgICAgICAgIGJlZ2lubmVycyBmcm9tIHN1cnByaXNlcy4KCgoqKiogNDku My4xIEtleW1hcHMKCkFzIGRlc2NyaWJlZCBpbiAqbm90ZSBDb21tYW5kczo6LCBlYWNoIEVtYWNz IGNvbW1hbmQgaXMgYSBMaXNwIGZ1bmN0aW9uCndob3NlIGRlZmluaXRpb24gcHJvdmlkZXMgZm9y IGludGVyYWN0aXZlIHVzZS4gIExpa2UgZXZlcnkgTGlzcApmdW5jdGlvbiwgYSBjb21tYW5kIGhh cyBhIGZ1bmN0aW9uIG5hbWUsIHdoaWNoIHVzdWFsbHkgY29uc2lzdHMgb2YKbG93ZXItY2FzZSBs ZXR0ZXJzIGFuZCBoeXBoZW5zLgoKICAgQSAia2V5IHNlcXVlbmNlIiAoImtleSIsIGZvciBzaG9y dCkgaXMgYSBzZXF1ZW5jZSBvZiAiaW5wdXQgZXZlbnRzIgp0aGF0IGhhdmUgYSBtZWFuaW5nIGFz IGEgdW5pdC4gIElucHV0IGV2ZW50cyBpbmNsdWRlIGNoYXJhY3RlcnMsCmZ1bmN0aW9uIGtleXMs IGFuZCBtb3VzZSBidXR0b25z4oCUYWxsIHRoZSBpbnB1dHMgdGhhdCB5b3UgY2FuIHNlbmQgdG8g dGhlCmNvbXB1dGVyLiAgQSBrZXkgc2VxdWVuY2UgZ2V0cyBpdHMgbWVhbmluZyBmcm9tIGl0cyAi YmluZGluZyIsIHdoaWNoCnNheXMgd2hhdCBjb21tYW5kIGl0IHJ1bnMuCgogICBUaGUgYmluZGlu Z3MgYmV0d2VlbiBrZXkgc2VxdWVuY2VzIGFuZCBjb21tYW5kIGZ1bmN0aW9ucyBhcmUgcmVjb3Jk ZWQKaW4gZGF0YSBzdHJ1Y3R1cmVzIGNhbGxlZCAia2V5bWFwcyIuICBFbWFjcyBoYXMgbWFueSBv ZiB0aGVzZSwgZWFjaCB1c2VkCm9uIHBhcnRpY3VsYXIgb2NjYXNpb25zLgoKICAgVGhlICJnbG9i YWwiIGtleW1hcCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQga2V5bWFwIGJlY2F1c2UgaXQgaXMgYWx3 YXlzCmluIGVmZmVjdC4gIFRoZSBnbG9iYWwga2V5bWFwIGRlZmluZXMga2V5cyBmb3IgRnVuZGFt ZW50YWwgbW9kZSAoKm5vdGUKTWFqb3IgTW9kZXM6Oik7IG1vc3Qgb2YgdGhlc2UgZGVmaW5pdGlv bnMgYXJlIGNvbW1vbiB0byBtb3N0IG9yIGFsbAptYWpvciBtb2Rlcy4gIEVhY2ggbWFqb3Igb3Ig bWlub3IgbW9kZSBjYW4gaGF2ZSBpdHMgb3duIGtleW1hcCB3aGljaApvdmVycmlkZXMgdGhlIGds b2JhbCBkZWZpbml0aW9ucyBvZiBzb21lIGtleXMuCgogICBGb3IgZXhhbXBsZSwgYSBzZWxmLWlu c2VydGluZyBjaGFyYWN0ZXIgc3VjaCBhcyDigJhn4oCZIGlzIHNlbGYtaW5zZXJ0aW5nCmJlY2F1 c2UgdGhlIGdsb2JhbCBrZXltYXAgYmluZHMgaXQgdG8gdGhlIGNvbW1hbmQg4oCYc2VsZi1pbnNl cnQtY29tbWFuZOKAmS4KVGhlIHN0YW5kYXJkIEVtYWNzIGVkaXRpbmcgY2hhcmFjdGVycyBzdWNo IGFzIOKAmEMtYeKAmSBhbHNvIGdldCB0aGVpcgpzdGFuZGFyZCBtZWFuaW5ncyBmcm9tIHRoZSBn bG9iYWwga2V5bWFwLiAgQ29tbWFuZHMgdG8gcmViaW5kIGtleXMsIHN1Y2gKYXMg4oCYTS14IGds b2JhbC1zZXQta2V54oCZLCB3b3JrIGJ5IHN0b3JpbmcgdGhlIG5ldyBiaW5kaW5nIGluIHRoZSBw cm9wZXIKcGxhY2UgaW4gdGhlIGdsb2JhbCBtYXAgKCpub3RlIFJlYmluZGluZzo6KS4KCiAgIE1v c3QgbW9kZXJuIGtleWJvYXJkcyBoYXZlIGZ1bmN0aW9uIGtleXMgYXMgd2VsbCBhcyBjaGFyYWN0 ZXIga2V5cy4KRnVuY3Rpb24ga2V5cyBzZW5kIGlucHV0IGV2ZW50cyBqdXN0IGFzIGNoYXJhY3Rl ciBrZXlzIGRvLCBhbmQga2V5bWFwcwpjYW4gaGF2ZSBiaW5kaW5ncyBmb3IgdGhlbS4gIEtleSBz ZXF1ZW5jZXMgY2FuIG1peCBmdW5jdGlvbiBrZXlzIGFuZApjaGFyYWN0ZXJzLiAgRm9yIGV4YW1w bGUsIGlmIHlvdXIga2V5Ym9hcmQgaGFzIGEgPEhvbWU+IGZ1bmN0aW9uIGtleSwKRW1hY3MgY2Fu IHJlY29nbml6ZSBrZXkgc2VxdWVuY2VzIGxpa2Ug4oCYQy14IDxIb21lPuKAmS4gIFlvdSBjYW4g ZXZlbiBtaXgKbW91c2UgZXZlbnRzIHdpdGgga2V5Ym9hcmQgZXZlbnRzLCBzdWNoIGFzIOKAmFMt ZG93bi1tb3VzZS0x4oCZLgoKICAgT24gdGV4dCB0ZXJtaW5hbHMsIHR5cGluZyBhIGZ1bmN0aW9u IGtleSBhY3R1YWxseSBzZW5kcyB0aGUgY29tcHV0ZXIKYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJz OyB0aGUgcHJlY2lzZSBkZXRhaWxzIG9mIHRoZSBzZXF1ZW5jZSBkZXBlbmQgb24KdGhlIGZ1bmN0 aW9uIGtleSBhbmQgb24gdGhlIHRlcm1pbmFsIHR5cGUuICAoT2Z0ZW4gdGhlIHNlcXVlbmNlIHN0 YXJ0cwp3aXRoIOKAmDxFU0M+IFvigJkuKSAgSWYgRW1hY3MgdW5kZXJzdGFuZHMgeW91ciB0ZXJt aW5hbCB0eXBlIHByb3Blcmx5LCBpdAphdXRvbWF0aWNhbGx5IGhhbmRsZXMgc3VjaCBzZXF1ZW5j ZXMgYXMgc2luZ2xlIGlucHV0IGV2ZW50cy4KCgoqKiogNDkuMy4yIFByZWZpeCBLZXltYXBzCgpJ bnRlcm5hbGx5LCBFbWFjcyByZWNvcmRzIG9ubHkgc2luZ2xlIGV2ZW50cyBpbiBlYWNoIGtleW1h cC4KSW50ZXJwcmV0aW5nIGEga2V5IHNlcXVlbmNlIG9mIG11bHRpcGxlIGV2ZW50cyBpbnZvbHZl cyBhIGNoYWluIG9mCmtleW1hcHM6IHRoZSBmaXJzdCBrZXltYXAgZ2l2ZXMgYSBkZWZpbml0aW9u IGZvciB0aGUgZmlyc3QgZXZlbnQsIHdoaWNoCmlzIGFub3RoZXIga2V5bWFwLCB3aGljaCBpcyB1 c2VkIHRvIGxvb2sgdXAgdGhlIHNlY29uZCBldmVudCBpbiB0aGUKc2VxdWVuY2UsIGFuZCBzbyBv bi4gIFRodXMsIGEgcHJlZml4IGtleSBzdWNoIGFzIOKAmEMteOKAmSBvciA8RVNDPiBoYXMgaXRz Cm93biBrZXltYXAsIHdoaWNoIGhvbGRzIHRoZSBkZWZpbml0aW9uIGZvciB0aGUgZXZlbnQgdGhh dCBpbW1lZGlhdGVseQpmb2xsb3dzIHRoYXQgcHJlZml4LgoKICAgVGhlIGRlZmluaXRpb24gb2Yg YSBwcmVmaXgga2V5IGlzIHVzdWFsbHkgdGhlIGtleW1hcCB0byB1c2UgZm9yCmxvb2tpbmcgdXAg dGhlIGZvbGxvd2luZyBldmVudC4gIFRoZSBkZWZpbml0aW9uIGNhbiBhbHNvIGJlIGEgTGlzcApz eW1ib2wgd2hvc2UgZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyB0aGUgZm9sbG93aW5nIGtleW1hcDsg dGhlIGVmZmVjdCBpcwp0aGUgc2FtZSwgYnV0IGl0IHByb3ZpZGVzIGEgY29tbWFuZCBuYW1lIGZv ciB0aGUgcHJlZml4IGtleSB0aGF0IGNhbiBiZQp1c2VkIGFzIGEgZGVzY3JpcHRpb24gb2Ygd2hh dCB0aGUgcHJlZml4IGtleSBpcyBmb3IuICBUaHVzLCB0aGUgYmluZGluZwpvZiDigJhDLXjigJkg aXMgdGhlIHN5bWJvbCDigJhDb250cm9sLVgtcHJlZml44oCZLCB3aG9zZSBmdW5jdGlvbiBkZWZp bml0aW9uIGlzCnRoZSBrZXltYXAgZm9yIOKAmEMteOKAmSBjb21tYW5kcy4gIFRoZSBkZWZpbml0 aW9ucyBvZiDigJhDLWPigJksIOKAmEMteOKAmSwg4oCYQy1o4oCZLAphbmQgPEVTQz4gYXMgcHJl Zml4IGtleXMgYXBwZWFyIGluIHRoZSBnbG9iYWwgbWFwLCBzbyB0aGVzZSBwcmVmaXgga2V5cwph cmUgYWx3YXlzIGF2YWlsYWJsZS4KCiAgIEFzaWRlIGZyb20gb3JkaW5hcnkgcHJlZml4IGtleXMs IHRoZXJlIGlzIGEgZmljdGl0aW91cyDigJxwcmVmaXgga2V54oCdCndoaWNoIHJlcHJlc2VudHMg dGhlIG1lbnUgYmFyOyBzZWUgKm5vdGUgKGVsaXNwKU1lbnUgQmFyOjosIGZvciBzcGVjaWFsCmlu Zm9ybWF0aW9uIGFib3V0IG1lbnUgYmFyIGtleSBiaW5kaW5ncy4gIE1vdXNlIGJ1dHRvbiBldmVu dHMgdGhhdAppbnZva2UgcG9wLXVwIG1lbnVzIGFyZSBhbHNvIHByZWZpeCBrZXlzOyBzZWUgKm5v dGUgKGVsaXNwKU1lbnUKS2V5bWFwczo6LCBmb3IgbW9yZSBkZXRhaWxzLgoKICAgU29tZSBwcmVm aXgga2V5bWFwcyBhcmUgc3RvcmVkIGluIHZhcmlhYmxlcyB3aXRoIG5hbWVzOgoKICAg4oCiIOKA mGN0bC14LW1hcOKAmSBpcyB0aGUgdmFyaWFibGUgbmFtZSBmb3IgdGhlIG1hcCB1c2VkIGZvciBj aGFyYWN0ZXJzCiAgICAgdGhhdCBmb2xsb3cg4oCYQy144oCZLgogICDigKIg4oCYaGVscC1tYXDi gJkgaXMgZm9yIGNoYXJhY3RlcnMgdGhhdCBmb2xsb3cg4oCYQy1o4oCZLgogICDigKIg4oCYZXNj LW1hcOKAmSBpcyBmb3IgY2hhcmFjdGVycyB0aGF0IGZvbGxvdyA8RVNDPi4gIFRodXMsIGFsbCBN ZXRhCiAgICAgY2hhcmFjdGVycyBhcmUgYWN0dWFsbHkgZGVmaW5lZCBieSB0aGlzIG1hcC4KICAg 4oCiIOKAmGN0bC14LTQtbWFw4oCZIGlzIGZvciBjaGFyYWN0ZXJzIHRoYXQgZm9sbG93IOKAmEMt eCA04oCZLgogICDigKIg4oCYbW9kZS1zcGVjaWZpYy1tYXDigJkgaXMgZm9yIGNoYXJhY3RlcnMg dGhhdCBmb2xsb3cg4oCYQy1j4oCZLgoKCioqKiA0OS4zLjMgTG9jYWwgS2V5bWFwcwoKU28gZmFy LCB3ZSBoYXZlIGV4cGxhaW5lZCB0aGUgaW5zIGFuZCBvdXRzIG9mIHRoZSBnbG9iYWwgbWFwLiAg TWFqb3IKbW9kZXMgY3VzdG9taXplIEVtYWNzIGJ5IHByb3ZpZGluZyB0aGVpciBvd24ga2V5IGJp bmRpbmdzIGluICJsb2NhbAprZXltYXBzIi4gIEZvciBleGFtcGxlLCBDIG1vZGUgb3ZlcnJpZGVz IDxUQUI+IHRvIG1ha2UgaXQgaW5kZW50IHRoZQpjdXJyZW50IGxpbmUgZm9yIEMgY29kZS4gIE1p bm9yIG1vZGVzIGNhbiBhbHNvIGhhdmUgbG9jYWwga2V5bWFwczsKd2hlbmV2ZXIgYSBtaW5vciBt b2RlIGlzIGluIGVmZmVjdCwgdGhlIGRlZmluaXRpb25zIGluIGl0cyBrZXltYXAKb3ZlcnJpZGUg Ym90aCB0aGUgbWFqb3IgbW9kZeKAmXMgbG9jYWwga2V5bWFwIGFuZCB0aGUgZ2xvYmFsIGtleW1h cC4gIEluCmFkZGl0aW9uLCBwb3J0aW9ucyBvZiB0ZXh0IGluIHRoZSBidWZmZXIgY2FuIHNwZWNp ZnkgdGhlaXIgb3duIGtleW1hcHMsCndoaWNoIG92ZXJyaWRlIGFsbCBvdGhlciBrZXltYXBzLgoK ICAgQSBsb2NhbCBrZXltYXAgY2FuIHJlZGVmaW5lIGEga2V5IGFzIGEgcHJlZml4IGtleSBieSBk ZWZpbmluZyBpdCBhcyBhCnByZWZpeCBrZXltYXAuICBJZiB0aGUga2V5IGlzIGFsc28gZGVmaW5l ZCBnbG9iYWxseSBhcyBhIHByZWZpeCwgaXRzCmxvY2FsIGFuZCBnbG9iYWwgZGVmaW5pdGlvbnMg KGJvdGgga2V5bWFwcykgZWZmZWN0aXZlbHkgY29tYmluZTogYm90aApkZWZpbml0aW9ucyBhcmUg dXNlZCB0byBsb29rIHVwIHRoZSBldmVudCB0aGF0IGZvbGxvd3MgdGhlIHByZWZpeCBrZXkuCkZv ciBleGFtcGxlLCBpZiBhIGxvY2FsIGtleW1hcCBkZWZpbmVzIOKAmEMtY+KAmSBhcyBhIHByZWZp eCBrZXltYXAsIGFuZAp0aGF0IGtleW1hcCBkZWZpbmVzIOKAmEMteuKAmSBhcyBhIGNvbW1hbmQs IHRoaXMgcHJvdmlkZXMgYSBsb2NhbCBtZWFuaW5nCmZvciDigJhDLWMgQy164oCZLiAgVGhpcyBk b2VzIG5vdCBhZmZlY3Qgb3RoZXIgc2VxdWVuY2VzIHRoYXQgc3RhcnQgd2l0aArigJhDLWPigJk7 IGlmIHRob3NlIHNlcXVlbmNlcyBkb27igJl0IGhhdmUgdGhlaXIgb3duIGxvY2FsIGJpbmRpbmdz LCB0aGVpcgpnbG9iYWwgYmluZGluZ3MgcmVtYWluIGluIGVmZmVjdC4KCiAgIEFub3RoZXIgd2F5 IHRvIHRoaW5rIG9mIHRoaXMgaXMgdGhhdCBFbWFjcyBoYW5kbGVzIGEgbXVsdGktZXZlbnQga2V5 CnNlcXVlbmNlIGJ5IGxvb2tpbmcgaW4gc2V2ZXJhbCBrZXltYXBzLCBvbmUgYnkgb25lLCBmb3Ig YSBiaW5kaW5nIG9mIHRoZQp3aG9sZSBrZXkgc2VxdWVuY2UuICBGaXJzdCBpdCBjaGVja3MgdGhl IG1pbm9yIG1vZGUga2V5bWFwcyBmb3IgbWlub3IKbW9kZXMgdGhhdCBhcmUgZW5hYmxlZCwgdGhl biBpdCBjaGVja3MgdGhlIG1ham9yIG1vZGXigJlzIGtleW1hcCwgYW5kIHRoZW4KaXQgY2hlY2tz IHRoZSBnbG9iYWwga2V5bWFwLiAgVGhpcyBpcyBub3QgcHJlY2lzZWx5IGhvdyBrZXkgbG9va3Vw CndvcmtzLCBidXQgaXTigJlzIGdvb2QgZW5vdWdoIGZvciB1bmRlcnN0YW5kaW5nIHRoZSByZXN1 bHRzIGluIG9yZGluYXJ5CmNpcmN1bXN0YW5jZXMuCgoKKioqIDQ5LjMuNCBNaW5pYnVmZmVyIEtl eW1hcHMKClRoZSBtaW5pYnVmZmVyIGhhcyBpdHMgb3duIHNldCBvZiBsb2NhbCBrZXltYXBzOyB0 aGV5IGNvbnRhaW4gdmFyaW91cwpjb21wbGV0aW9uIGFuZCBleGl0IGNvbW1hbmRzLgoKICAg4oCi IOKAmG1pbmlidWZmZXItbG9jYWwtbWFw4oCZIGlzIHVzZWQgZm9yIG9yZGluYXJ5IGlucHV0IChu byBjb21wbGV0aW9uKS4KICAg4oCiIOKAmG1pbmlidWZmZXItbG9jYWwtbnMtbWFw4oCZIGlzIHNp bWlsYXIsIGV4Y2VwdCB0aGF0IDxTUEM+IGV4aXRzIGp1c3QKICAgICBsaWtlIDxSRVQ+LgogICDi gKIg4oCYbWluaWJ1ZmZlci1sb2NhbC1jb21wbGV0aW9uLW1hcOKAmSBpcyBmb3IgcGVybWlzc2l2 ZSBjb21wbGV0aW9uLgogICDigKIg4oCYbWluaWJ1ZmZlci1sb2NhbC1tdXN0LW1hdGNoLW1hcOKA mSBpcyBmb3Igc3RyaWN0IGNvbXBsZXRpb24gYW5kIGZvcgogICAgIGNhdXRpb3VzIGNvbXBsZXRp b24uCiAgIOKAoiDigJhtaW5pYnVmZmVyLWxvY2FsLWZpbGVuYW1lLWNvbXBsZXRpb24tbWFw4oCZ IGFuZAogICAgIOKAmG1pbmlidWZmZXItbG9jYWwtZmlsZW5hbWUtbXVzdC1tYXRjaC1tYXDigJkg YXJlIGxpa2UgdGhlIHR3bwogICAgIHByZXZpb3VzIG9uZXMsIGJ1dCB0aGV5IGFyZSBzcGVjaWZp Y2FsbHkgZm9yIGZpbGUgbmFtZSBjb21wbGV0aW9uLgogICAgIFRoZXkgZG8gbm90IGJpbmQgPFNQ Qz4uCgoKKioqIDQ5LjMuNSBDaGFuZ2luZyBLZXkgQmluZGluZ3MgSW50ZXJhY3RpdmVseQoKVGhl IHdheSB0byByZWRlZmluZSBhbiBFbWFjcyBrZXkgaXMgdG8gY2hhbmdlIGl0cyBlbnRyeSBpbiBh IGtleW1hcC4KWW91IGNhbiBjaGFuZ2UgdGhlIGdsb2JhbCBrZXltYXAsIGluIHdoaWNoIGNhc2Ug dGhlIGNoYW5nZSBpcyBlZmZlY3RpdmUKaW4gYWxsIG1ham9yIG1vZGVzIChleGNlcHQgdGhvc2Ug dGhhdCBoYXZlIHRoZWlyIG93biBvdmVycmlkaW5nIGxvY2FsCmJpbmRpbmdzIGZvciB0aGUgc2Ft ZSBrZXkpLiAgT3IgeW91IGNhbiBjaGFuZ2UgYSBsb2NhbCBrZXltYXAsIHdoaWNoCmFmZmVjdHMg YWxsIGJ1ZmZlcnMgdXNpbmcgdGhlIHNhbWUgbWFqb3IgbW9kZS4KCiAgIEluIHRoaXMgc2VjdGlv biwgd2UgZGVzY3JpYmUgaG93IHRvIHJlYmluZCBrZXlzIGZvciB0aGUgcHJlc2VudCBFbWFjcwpz ZXNzaW9uLiAgKk5vdGUgSW5pdCBSZWJpbmRpbmc6OiwgZm9yIGEgZGVzY3JpcHRpb24gb2YgaG93 IHRvIG1ha2Uga2V5CnJlYmluZGluZ3MgYWZmZWN0IGZ1dHVyZSBFbWFjcyBzZXNzaW9ucy4KCuKA mE0teCBnbG9iYWwtc2V0LWtleSA8UkVUPiBLRVkgQ01EIDxSRVQ+4oCZCiAgICAgRGVmaW5lIEtF WSBnbG9iYWxseSB0byBydW4gQ01ELgrigJhNLXggbG9jYWwtc2V0LWtleSA8UkVUPiBLRVkgQ01E IDxSRVQ+4oCZCiAgICAgRGVmaW5lIEtFWSBsb2NhbGx5IChpbiB0aGUgbWFqb3IgbW9kZSBub3cg aW4gZWZmZWN0KSB0byBydW4gQ01ELgrigJhNLXggZ2xvYmFsLXVuc2V0LWtleSA8UkVUPiBLRVni gJkKICAgICBNYWtlIEtFWSB1bmRlZmluZWQgaW4gdGhlIGdsb2JhbCBtYXAuCuKAmE0teCBsb2Nh bC11bnNldC1rZXkgPFJFVD4gS0VZ4oCZCiAgICAgTWFrZSBLRVkgdW5kZWZpbmVkIGxvY2FsbHkg KGluIHRoZSBtYWpvciBtb2RlIG5vdyBpbiBlZmZlY3QpLgoKICAgRm9yIGV4YW1wbGUsIHRoZSBm b2xsb3dpbmcgYmluZHMg4oCYQy164oCZIHRvIHRoZSDigJhzaGVsbOKAmSBjb21tYW5kICgqbm90 ZQpJbnRlcmFjdGl2ZSBTaGVsbDo6KSwgcmVwbGFjaW5nIHRoZSBub3JtYWwgZ2xvYmFsIGRlZmlu aXRpb24gb2Yg4oCYQy164oCZOgoKICAgICBNLXggZ2xvYmFsLXNldC1rZXkgPFJFVD4gQy16IHNo ZWxsIDxSRVQ+CgpUaGUg4oCYZ2xvYmFsLXNldC1rZXnigJkgY29tbWFuZCByZWFkcyB0aGUgY29t bWFuZCBuYW1lIGFmdGVyIHRoZSBrZXkuCkFmdGVyIHlvdSBwcmVzcyB0aGUga2V5LCBhIG1lc3Nh Z2UgbGlrZSB0aGlzIGFwcGVhcnMgc28gdGhhdCB5b3UgY2FuCmNvbmZpcm0gdGhhdCB5b3UgYXJl IGJpbmRpbmcgdGhlIGtleSB5b3Ugd2FudDoKCiAgICAgU2V0IGtleSBDLXogdG8gY29tbWFuZDoK CiAgIFlvdSBjYW4gcmVkZWZpbmUgZnVuY3Rpb24ga2V5cyBhbmQgbW91c2UgZXZlbnRzIGluIHRo ZSBzYW1lIHdheTsganVzdAp0eXBlIHRoZSBmdW5jdGlvbiBrZXkgb3IgY2xpY2sgdGhlIG1vdXNl IHdoZW4gaXTigJlzIHRpbWUgdG8gc3BlY2lmeSB0aGUKa2V5IHRvIHJlYmluZC4KCiAgIFlvdSBj YW4gcmViaW5kIGEga2V5IHRoYXQgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBldmVudCBpbiB0aGUg c2FtZQp3YXkuICBFbWFjcyBrZWVwcyByZWFkaW5nIHRoZSBrZXkgdG8gcmViaW5kIHVudGlsIGl0 IGlzIGEgY29tcGxldGUga2V5Cih0aGF0IGlzLCBub3QgYSBwcmVmaXgga2V5KS4gIFRodXMsIGlm IHlvdSB0eXBlIOKAmEMtZuKAmSBmb3IgS0VZLCB0aGF04oCZcwp0aGUgZW5kOyBpdCBlbnRlcnMg dGhlIG1pbmlidWZmZXIgaW1tZWRpYXRlbHkgdG8gcmVhZCBDTUQuICBCdXQgaWYgeW91CnR5cGUg 4oCYQy144oCZLCBzaW5jZSB0aGF04oCZcyBhIHByZWZpeCwgaXQgcmVhZHMgYW5vdGhlciBjaGFy YWN0ZXI7IGlmIHRoYXQKaXMg4oCYNOKAmSwgYW5vdGhlciBwcmVmaXggY2hhcmFjdGVyLCBpdCBy ZWFkcyBvbmUgbW9yZSBjaGFyYWN0ZXIsIGFuZCBzbwpvbi4gIEZvciBleGFtcGxlLAoKICAgICBN LXggZ2xvYmFsLXNldC1rZXkgPFJFVD4gQy14IDQgJCBzcGVsbC1vdGhlci13aW5kb3cgPFJFVD4K CnJlZGVmaW5lcyDigJhDLXggNCAk4oCZIHRvIHJ1biB0aGUgKGZpY3RpdGlvdXMpIGNvbW1hbmQK 4oCYc3BlbGwtb3RoZXItd2luZG934oCZLgoKICAgWW91IGNhbiByZW1vdmUgdGhlIGdsb2JhbCBk ZWZpbml0aW9uIG9mIGEga2V5IHdpdGgK4oCYZ2xvYmFsLXVuc2V0LWtleeKAmS4gIFRoaXMgbWFr ZXMgdGhlIGtleSAidW5kZWZpbmVkIjsgaWYgeW91IHR5cGUgaXQsCkVtYWNzIHdpbGwganVzdCBi ZWVwLiAgU2ltaWxhcmx5LCDigJhsb2NhbC11bnNldC1rZXnigJkgbWFrZXMgYSBrZXkKdW5kZWZp bmVkIGluIHRoZSBjdXJyZW50IG1ham9yIG1vZGUga2V5bWFwLCB3aGljaCBtYWtlcyB0aGUgZ2xv YmFsCmRlZmluaXRpb24gKG9yIGxhY2sgb2Ygb25lKSBjb21lIGJhY2sgaW50byBlZmZlY3QgaW4g dGhhdCBtYWpvciBtb2RlLgoKICAgSWYgeW91IGhhdmUgcmVkZWZpbmVkIChvciB1bmRlZmluZWQp IGEga2V5IGFuZCB5b3Ugc3Vic2VxdWVudGx5IHdpc2gKdG8gcmV0cmFjdCB0aGUgY2hhbmdlLCB1 bmRlZmluaW5nIHRoZSBrZXkgd2lsbCBub3QgZG8gdGhlIGpvYuKAlHlvdSBuZWVkCnRvIHJlZGVm aW5lIHRoZSBrZXkgd2l0aCBpdHMgc3RhbmRhcmQgZGVmaW5pdGlvbi4gIFRvIGZpbmQgdGhlIG5h bWUgb2YKdGhlIHN0YW5kYXJkIGRlZmluaXRpb24gb2YgYSBrZXksIGdvIHRvIGEgRnVuZGFtZW50 YWwgbW9kZSBidWZmZXIgaW4gYQpmcmVzaCBFbWFjcyBhbmQgdXNlIOKAmEMtaCBj4oCZLiAgVGhl IGRvY3VtZW50YXRpb24gb2Yga2V5cyBpbiB0aGlzIG1hbnVhbAphbHNvIGxpc3RzIHRoZWlyIGNv bW1hbmQgbmFtZXMuCgogICBJZiB5b3Ugd2FudCB0byBwcmV2ZW50IHlvdXJzZWxmIGZyb20gaW52 b2tpbmcgYSBjb21tYW5kIGJ5IG1pc3Rha2UsCml0IGlzIGJldHRlciB0byBkaXNhYmxlIHRoZSBj b21tYW5kIHRoYW4gdG8gdW5kZWZpbmUgdGhlIGtleS4gIEEKZGlzYWJsZWQgY29tbWFuZCBpcyBs ZXNzIHdvcmsgdG8gaW52b2tlIHdoZW4geW91IHJlYWxseSB3YW50IHRvLiAgKk5vdGUKRGlzYWJs aW5nOjouCgoKKioqIDQ5LjMuNiBSZWJpbmRpbmcgS2V5cyBpbiBZb3VyIEluaXQgRmlsZQoKSWYg eW91IGhhdmUgYSBzZXQgb2Yga2V5IGJpbmRpbmdzIHRoYXQgeW91IGxpa2UgdG8gdXNlIGFsbCB0 aGUgdGltZSwgeW91CmNhbiBzcGVjaWZ5IHRoZW0gaW4geW91ciBpbml0aWFsaXphdGlvbiBmaWxl IGJ5IHdyaXRpbmcgTGlzcCBjb2RlLgoqTm90ZSBJbml0IEZpbGU6OiwgZm9yIGEgZGVzY3JpcHRp b24gb2YgdGhlIGluaXRpYWxpemF0aW9uIGZpbGUuCgogICBUaGVyZSBhcmUgc2V2ZXJhbCB3YXlz IHRvIHdyaXRlIGEga2V5IGJpbmRpbmcgdXNpbmcgTGlzcC4gIFRoZQpzaW1wbGVzdCBpcyB0byB1 c2UgdGhlIOKAmGtiZOKAmSBmdW5jdGlvbiwgd2hpY2ggY29udmVydHMgYSB0ZXh0dWFsCnJlcHJl c2VudGF0aW9uIG9mIGEga2V5IHNlcXVlbmNl4oCUc2ltaWxhciB0byBob3cgd2UgaGF2ZSB3cml0 dGVuIGtleQpzZXF1ZW5jZXMgaW4gdGhpcyBtYW51YWzigJRpbnRvIGEgZm9ybSB0aGF0IGNhbiBi ZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQKdG8g4oCYZ2xvYmFsLXNldC1rZXnigJkuICBGb3IgZXhh bXBsZSwgaGVyZeKAmXMgaG93IHRvIGJpbmQg4oCYQy164oCZIHRvIHRoZQrigJhzaGVsbOKAmSBj b21tYW5kICgqbm90ZSBJbnRlcmFjdGl2ZSBTaGVsbDo6KToKCiAgICAgKGdsb2JhbC1zZXQta2V5 IChrYmQgIkMteiIpICdzaGVsbCkKClRoZSBzaW5nbGUtcXVvdGUgYmVmb3JlIHRoZSBjb21tYW5k IG5hbWUsIOKAmHNoZWxs4oCZLCBtYXJrcyBpdCBhcyBhCmNvbnN0YW50IHN5bWJvbCByYXRoZXIg dGhhbiBhIHZhcmlhYmxlLiAgSWYgeW91IG9taXQgdGhlIHF1b3RlLCBFbWFjcwp3b3VsZCB0cnkg dG8gZXZhbHVhdGUg4oCYc2hlbGzigJkgYXMgYSB2YXJpYWJsZS4gIFRoaXMgcHJvYmFibHkgY2F1 c2VzIGFuCmVycm9yOyBpdCBjZXJ0YWlubHkgaXNu4oCZdCB3aGF0IHlvdSB3YW50LgoKICAgSGVy ZSBhcmUgc29tZSBhZGRpdGlvbmFsIGV4YW1wbGVzLCBpbmNsdWRpbmcgYmluZGluZyBmdW5jdGlv biBrZXlzCmFuZCBtb3VzZSBldmVudHM6CgogICAgIChnbG9iYWwtc2V0LWtleSAoa2JkICJDLWMg eSIpICdjbGlwYm9hcmQteWFuaykKICAgICAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy1NLXEiKSAn cXVlcnktcmVwbGFjZSkKICAgICAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiPGY1PiIpICdmbHlzcGVs bC1tb2RlKQogICAgIChnbG9iYWwtc2V0LWtleSAoa2JkICJDLTxmNT4iKSAnZGlzcGxheS1saW5l LW51bWJlcnMtbW9kZSkKICAgICAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiQy08cmlnaHQ+IikgJ2Zv cndhcmQtc2VudGVuY2UpCiAgICAgKGdsb2JhbC1zZXQta2V5IChrYmQgIjxtb3VzZS0yPiIpICdt b3VzZS1zYXZlLXRoZW4ta2lsbCkKCiAgIEluc3RlYWQgb2YgdXNpbmcg4oCYa2Jk4oCZLCB5b3Ug Y2FuIHVzZSBhIExpc3Agc3RyaW5nIG9yIHZlY3RvciB0bwpzcGVjaWZ5IHRoZSBrZXkgc2VxdWVu Y2UuICBVc2luZyBhIHN0cmluZyBpcyBzaW1wbGVyLCBidXQgb25seSB3b3JrcyBmb3IKQVNDSUkg Y2hhcmFjdGVycyBhbmQgTWV0YS1tb2RpZmllZCBBU0NJSSBjaGFyYWN0ZXJzLiAgRm9yIGV4YW1w bGUsCmhlcmXigJlzIGhvdyB0byBiaW5kIOKAmEMteCBNLWzigJkgdG8g4oCYbWFrZS1zeW1ib2xp Yy1saW5r4oCZICgqbm90ZSBDb3B5aW5nIGFuZApOYW1pbmc6Oik6CgogICAgIChnbG9iYWwtc2V0 LWtleSAiXEMteFxNLWwiICdtYWtlLXN5bWJvbGljLWxpbmspCgogICBUbyBiaW5kIGEga2V5IHNl cXVlbmNlIGluY2x1ZGluZyA8VEFCPiwgPFJFVD4sIDxFU0M+LCBvciA8REVMPiwgdGhlCnN0cmlu ZyBzaG91bGQgY29udGFpbiB0aGUgRW1hY3MgTGlzcCBlc2NhcGUgc2VxdWVuY2Ug4oCYXHTigJks IOKAmFxy4oCZLCDigJhcZeKAmSwKb3Ig4oCYXGTigJkgcmVzcGVjdGl2ZWx5LiAgSGVyZSBpcyBh biBleGFtcGxlIHdoaWNoIGJpbmRzIOKAmEMteCA8VEFCPuKAmSB0bwrigJhpbmRlbnQtcmlnaWRs eeKAmSAoKm5vdGUgSW5kZW50YXRpb246Oik6CgogICAgIChnbG9iYWwtc2V0LWtleSAiXEMteFx0 IiAnaW5kZW50LXJpZ2lkbHkpCgogICBXaGVuIHRoZSBrZXkgc2VxdWVuY2UgaW5jbHVkZXMgZnVu Y3Rpb24ga2V5cyBvciBtb3VzZSBidXR0b24gZXZlbnRzLApvciBub24tQVNDSUkgY2hhcmFjdGVy cyBzdWNoIGFzIOKAmEMtPeKAmSBvciDigJhILWHigJksIHlvdSBjYW4gdXNlIGEgdmVjdG9yIHRv CnNwZWNpZnkgdGhlIGtleSBzZXF1ZW5jZS4gIEVhY2ggZWxlbWVudCBpbiB0aGUgdmVjdG9yIHN0 YW5kcyBmb3IgYW4KaW5wdXQgZXZlbnQ7IHRoZSBlbGVtZW50cyBhcmUgc2VwYXJhdGVkIGJ5IHNw YWNlcyBhbmQgc3Vycm91bmRlZCBieSBhCnBhaXIgb2Ygc3F1YXJlIGJyYWNrZXRzLiAgSWYgYSB2 ZWN0b3IgZWxlbWVudCBpcyBhIGNoYXJhY3Rlciwgd3JpdGUgaXQKYXMgYSBMaXNwIGNoYXJhY3Rl ciBjb25zdGFudDog4oCYP+KAmSBmb2xsb3dlZCBieSB0aGUgY2hhcmFjdGVyIGFzIGl0IHdvdWxk CmFwcGVhciBpbiBhIHN0cmluZy4gIEZ1bmN0aW9uIGtleXMgYXJlIHJlcHJlc2VudGVkIGJ5IHN5 bWJvbHMgKCpub3RlCkZ1bmN0aW9uIEtleXM6Oik7IHNpbXBseSB3cml0ZSB0aGUgc3ltYm9s4oCZ cyBuYW1lLCB3aXRoIG5vIG90aGVyCmRlbGltaXRlcnMgb3IgcHVuY3R1YXRpb24uICBIZXJlIGFy ZSBzb21lIGV4YW1wbGVzOgoKICAgICAoZ2xvYmFsLXNldC1rZXkgWz9cQy09XSAnbWFrZS1zeW1i b2xpYy1saW5rKQogICAgIChnbG9iYWwtc2V0LWtleSBbP1xNLVxDLT1dICdtYWtlLXN5bWJvbGlj LWxpbmspCiAgICAgKGdsb2JhbC1zZXQta2V5IFs/XEgtYV0gJ21ha2Utc3ltYm9saWMtbGluaykK ICAgICAoZ2xvYmFsLXNldC1rZXkgW2Y3XSAnbWFrZS1zeW1ib2xpYy1saW5rKQogICAgIChnbG9i YWwtc2V0LWtleSBbQy1tb3VzZS0xXSAnbWFrZS1zeW1ib2xpYy1saW5rKQoKWW91IGNhbiB1c2Ug YSB2ZWN0b3IgZm9yIHRoZSBzaW1wbGUgY2FzZXMgdG9vOgoKICAgICAoZ2xvYmFsLXNldC1rZXkg Wz9cQy16ID9cTS1sXSAnbWFrZS1zeW1ib2xpYy1saW5rKQoKICAgTGFuZ3VhZ2UgYW5kIGNvZGlu ZyBzeXN0ZW1zIG1heSBjYXVzZSBwcm9ibGVtcyB3aXRoIGtleSBiaW5kaW5ncyBmb3IKbm9uLUFT Q0lJIGNoYXJhY3RlcnMuICAqTm90ZSBJbml0IE5vbi1BU0NJSTo6LgoKICAgQXMgZGVzY3JpYmVk IGluICpub3RlIExvY2FsIEtleW1hcHM6OiwgbWFqb3IgbW9kZXMgYW5kIG1pbm9yIG1vZGVzCmNh biBkZWZpbmUgbG9jYWwga2V5bWFwcy4gIFRoZXNlIGtleW1hcHMgYXJlIGNvbnN0cnVjdGVkIHdo ZW4gdGhlIG1vZGUKaXMgdXNlZCBmb3IgdGhlIGZpcnN0IHRpbWUgaW4gYSBzZXNzaW9uLiAgSWYg eW91IHdpc2ggdG8gY2hhbmdlIG9uZSBvZgp0aGVzZSBrZXltYXBzLCB5b3UgbXVzdCB1c2UgdGhl ICJtb2RlIGhvb2siICgqbm90ZSBIb29rczo6KS4KCiAgIEZvciBleGFtcGxlLCBUZXhpbmZvIG1v ZGUgcnVucyB0aGUgaG9vayDigJh0ZXhpbmZvLW1vZGUtaG9va+KAmS4gIEhlcmXigJlzCmhvdyB5 b3UgY2FuIHVzZSB0aGUgaG9vayB0byBhZGQgbG9jYWwgYmluZGluZ3MgZm9yIOKAmEMtYyBu4oCZ IGFuZCDigJhDLWMgcOKAmQppbiBUZXhpbmZvIG1vZGU6CgogICAgIChhZGQtaG9vayAndGV4aW5m by1tb2RlLWhvb2sKICAgICAgICAgICAgICAgKGxhbWJkYSAoKQogICAgICAgICAgICAgICAgIChk ZWZpbmUta2V5IHRleGluZm8tbW9kZS1tYXAgIlxDLWNwIgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdiYWNrd2FyZC1wYXJhZ3JhcGgpCiAgICAgICAgICAgICAgICAgKGRlZmluZS1rZXkg dGV4aW5mby1tb2RlLW1hcCAiXEMtY24iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zv cndhcmQtcGFyYWdyYXBoKSkpCgoKKioqIDQ5LjMuNyBNb2RpZmllciBLZXlzCgpUaGUgZGVmYXVs dCBrZXkgYmluZGluZ3MgaW4gRW1hY3MgYXJlIHNldCB1cCBzbyB0aGF0IG1vZGlmaWVkCmFscGhh YmV0aWNhbCBjaGFyYWN0ZXJzIGFyZSBjYXNlLWluc2Vuc2l0aXZlLiAgSW4gb3RoZXIgd29yZHMs IOKAmEMtQeKAmQpkb2VzIHRoZSBzYW1lIHRoaW5nIGFzIOKAmEMtYeKAmSwgYW5kIOKAmE0tQeKA mSBkb2VzIHRoZSBzYW1lIHRoaW5nIGFzIOKAmE0tYeKAmS4KVGhpcyBjb25jZXJucyBvbmx5IGFs cGhhYmV0aWNhbCBjaGFyYWN0ZXJzLCBhbmQgZG9lcyBub3QgYXBwbHkgdG8Kc2hpZnRlZCB2ZXJz aW9ucyBvZiBvdGhlciBrZXlzOyBmb3IgaW5zdGFuY2UsIOKAmEMtQOKAmSBpcyBub3QgdGhlIHNh bWUgYXMK4oCYQy0y4oCZLgoKICAgQSA8Q29udHJvbD4tbW9kaWZpZWQgYWxwaGFiZXRpY2FsIGNo YXJhY3RlciBpcyBhbHdheXMgY29uc2lkZXJlZApjYXNlLWluc2Vuc2l0aXZlOiBFbWFjcyBhbHdh eXMgdHJlYXRzIOKAmEMtQeKAmSBhcyDigJhDLWHigJksIOKAmEMtQuKAmSBhcyDigJhDLWLigJks CmFuZCBzbyBmb3J0aC4gIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgaGlzdG9yaWNhbC4KCiAgIEZv ciBhbGwgb3RoZXIgbW9kaWZpZXJzLCB5b3UgY2FuIG1ha2UgdGhlIG1vZGlmaWVkIGFscGhhYmV0 aWNhbApjaGFyYWN0ZXJzIGNhc2Utc2Vuc2l0aXZlIHdoZW4geW91IGN1c3RvbWl6ZSBFbWFjcy4g IEZvciBpbnN0YW5jZSwgeW91CmNvdWxkIG1ha2Ug4oCYTS1h4oCZIGFuZCDigJhNLUHigJkgcnVu IGRpZmZlcmVudCBjb21tYW5kcy4KCiAgIEFsdGhvdWdoIG9ubHkgdGhlIDxDb250cm9sPiBhbmQg PE1ldGE+IG1vZGlmaWVyIGtleXMgYXJlIGNvbW1vbmx5CnVzZWQsIEVtYWNzIHN1cHBvcnRzIHRo cmVlIG90aGVyIG1vZGlmaWVyIGtleXMuICBUaGVzZSBhcmUgY2FsbGVkCjxTdXBlcj4sIDxIeXBl cj4sIGFuZCA8QWx0Pi4gIEZldyB0ZXJtaW5hbHMgcHJvdmlkZSB3YXlzIHRvIHVzZSB0aGVzZQpt b2RpZmllcnM7IHRoZSBrZXkgbGFiZWxlZCA8QWx0PiBvbiBtb3N0IGtleWJvYXJkcyB1c3VhbGx5 IGlzc3VlcyB0aGUKPE1ldGE+IG1vZGlmaWVyLCBub3QgPEFsdD4uICBUaGUgc3RhbmRhcmQga2V5 IGJpbmRpbmdzIGluIEVtYWNzIGRvIG5vdAppbmNsdWRlIGFueSBjaGFyYWN0ZXJzIHdpdGggdGhl c2UgbW9kaWZpZXJzLiAgSG93ZXZlciwgeW91IGNhbiBjdXN0b21pemUKRW1hY3MgdG8gYXNzaWdu IG1lYW5pbmdzIHRvIHRoZW0uICBUaGUgbW9kaWZpZXIgYml0cyBhcmUgbGFiZWxlZCBhcwrigJhz LeKAmSwg4oCYSC3igJkgYW5kIOKAmEEt4oCZIHJlc3BlY3RpdmVseS4KCiAgIEV2ZW4gaWYgeW91 ciBrZXlib2FyZCBsYWNrcyB0aGVzZSBhZGRpdGlvbmFsIG1vZGlmaWVyIGtleXMsIHlvdSBjYW4K ZW50ZXIgaXQgdXNpbmcg4oCYQy14IEDigJk6IOKAmEMteCBAIGjigJkgYWRkcyB0aGUgSHlwZXIg ZmxhZyB0byB0aGUgbmV4dApjaGFyYWN0ZXIsIOKAmEMteCBAIHPigJkgYWRkcyB0aGUgU3VwZXIg ZmxhZywgYW5kIOKAmEMteCBAIGHigJkgYWRkcyB0aGUgQWx0CmZsYWcuICBGb3IgaW5zdGFuY2Us IOKAmEMteCBAIGggQy1h4oCZIGlzIGEgd2F5IHRvIGVudGVyIOKAmEh5cGVyLUNvbnRyb2wtYeKA mS4KKFVuZm9ydHVuYXRlbHksIHRoZXJlIGlzIG5vIHdheSB0byBhZGQgdHdvIG1vZGlmaWVycyBi eSB1c2luZyDigJhDLXggQOKAmQp0d2ljZSBmb3IgdGhlIHNhbWUgY2hhcmFjdGVyLCBiZWNhdXNl IHRoZSBmaXJzdCBvbmUgZ29lcyB0byB3b3JrIG9uIHRoZQrigJhDLXjigJkuKQoKCioqKiA0OS4z LjggUmViaW5kaW5nIEZ1bmN0aW9uIEtleXMKCktleSBzZXF1ZW5jZXMgY2FuIGNvbnRhaW4gZnVu Y3Rpb24ga2V5cyBhcyB3ZWxsIGFzIG9yZGluYXJ5IGNoYXJhY3RlcnMuCkp1c3QgYXMgTGlzcCBj aGFyYWN0ZXJzIChhY3R1YWxseSBpbnRlZ2VycykgcmVwcmVzZW50IGtleWJvYXJkCmNoYXJhY3Rl cnMsIExpc3Agc3ltYm9scyByZXByZXNlbnQgZnVuY3Rpb24ga2V5cy4gIElmIHRoZSBmdW5jdGlv biBrZXkKaGFzIGEgd29yZCBhcyBpdHMgbGFiZWwsIHRoZW4gdGhhdCB3b3JkIGlzIGFsc28gdGhl IG5hbWUgb2YgdGhlCmNvcnJlc3BvbmRpbmcgTGlzcCBzeW1ib2wuICBIZXJlIGFyZSB0aGUgY29u dmVudGlvbmFsIExpc3AgbmFtZXMgZm9yCmNvbW1vbiBmdW5jdGlvbiBrZXlzOgoK4oCYbGVmdOKA mSwg4oCYdXDigJksIOKAmHJpZ2h04oCZLCDigJhkb3du4oCZCiAgICAgQ3Vyc29yIGFycm93IGtl eXMuCgrigJhiZWdpbuKAmSwg4oCYZW5k4oCZLCDigJhob21l4oCZLCDigJhuZXh04oCZLCDigJhw cmlvcuKAmQogICAgIE90aGVyIGN1cnNvciByZXBvc2l0aW9uaW5nIGtleXMuCgrigJhzZWxlY3Ti gJksIOKAmHByaW504oCZLCDigJhleGVjdXRl4oCZLCDigJhiYWNrdGFi4oCZCuKAmGluc2VydOKA mSwg4oCYdW5kb+KAmSwg4oCYcmVkb+KAmSwg4oCYY2xlYXJsaW5l4oCZCuKAmGluc2VydGxpbmXi gJksIOKAmGRlbGV0ZWxpbmXigJksIOKAmGluc2VydGNoYXLigJksIOKAmGRlbGV0ZWNoYXLigJkK ICAgICBNaXNjZWxsYW5lb3VzIGZ1bmN0aW9uIGtleXMuCgrigJhmMeKAmSwg4oCYZjLigJksIOKA piDigJhmMzXigJkKICAgICBOdW1iZXJlZCBmdW5jdGlvbiBrZXlzIChhY3Jvc3MgdGhlIHRvcCBv ZiB0aGUga2V5Ym9hcmQpLgoK4oCYa3AtYWRk4oCZLCDigJhrcC1zdWJ0cmFjdOKAmSwg4oCYa3At bXVsdGlwbHnigJksIOKAmGtwLWRpdmlkZeKAmQrigJhrcC1iYWNrdGFi4oCZLCDigJhrcC1zcGFj ZeKAmSwg4oCYa3AtdGFi4oCZLCDigJhrcC1lbnRlcuKAmQrigJhrcC1zZXBhcmF0b3LigJksIOKA mGtwLWRlY2ltYWzigJksIOKAmGtwLWVxdWFs4oCZCuKAmGtwLXByaW9y4oCZLCDigJhrcC1uZXh0 4oCZLCDigJhrcC1lbmTigJksIOKAmGtwLWhvbWXigJkK4oCYa3AtbGVmdOKAmSwg4oCYa3AtdXDi gJksIOKAmGtwLXJpZ2h04oCZLCDigJhrcC1kb3du4oCZCuKAmGtwLWluc2VydCDigJksIOKAmGtw LWRlbGV0ZeKAmQogICAgIEtleXBhZCBrZXlzICh0byB0aGUgcmlnaHQgb2YgdGhlIHJlZ3VsYXIg a2V5Ym9hcmQpLCB3aXRoIG5hbWVzIG9yCiAgICAgcHVuY3R1YXRpb24uCgrigJhrcC0w4oCZLCDi gJhrcC0x4oCZLCDigKYg4oCYa3AtOeKAmQogICAgIEtleXBhZCBrZXlzIHdpdGggZGlnaXRzLgoK 4oCYa3AtZjHigJksIOKAmGtwLWYy4oCZLCDigJhrcC1mM+KAmSwg4oCYa3AtZjTigJkKICAgICBL ZXlwYWQgUEYga2V5cy4KCiAgIFRoZXNlIG5hbWVzIGFyZSBjb252ZW50aW9uYWwsIGJ1dCBzb21l IHN5c3RlbXMgKGVzcGVjaWFsbHkgd2hlbiB1c2luZwpYKSBtYXkgdXNlIGRpZmZlcmVudCBuYW1l cy4gIFRvIG1ha2UgY2VydGFpbiB3aGF0IHN5bWJvbCBpcyB1c2VkIGZvciBhCmdpdmVuIGZ1bmN0 aW9uIGtleSBvbiB5b3VyIHRlcm1pbmFsLCB0eXBlIOKAmEMtaCBj4oCZIGZvbGxvd2VkIGJ5IHRo YXQga2V5LgoKICAgKk5vdGUgSW5pdCBSZWJpbmRpbmc6OiwgZm9yIGV4YW1wbGVzIG9mIGJpbmRp bmcgZnVuY3Rpb24ga2V5cy4KCiAgIE1hbnkga2V5Ym9hcmRzIGhhdmUgYSBudW1lcmljIGtleXBh ZCBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlLiAgVGhlCm51bWVyaWMga2V5cyBpbiB0aGUga2V5cGFk IGRvdWJsZSB1cCBhcyBjdXJzb3IgbW90aW9uIGtleXMsIHRvZ2dsZWQgYnkgYQprZXkgbGFiZWxl ZCDigJhOdW0gTG9ja+KAmS4gIEJ5IGRlZmF1bHQsIEVtYWNzIHRyYW5zbGF0ZXMgdGhlc2Uga2V5 cyB0byB0aGUKY29ycmVzcG9uZGluZyBrZXlzIG9uIHRoZSBtYWluIGtleWJvYXJkLiAgRm9yIGV4 YW1wbGUsIHdoZW4g4oCYTnVtIExvY2vigJkKaXMgb24sIHRoZSBrZXkgbGFiZWxlZCDigJg44oCZ IG9uIHRoZSBudW1lcmljIGtleXBhZCBwcm9kdWNlcyDigJhrcC044oCZLCB3aGljaAppcyB0cmFu c2xhdGVkIHRvIOKAmDjigJk7IHdoZW4g4oCYTnVtIExvY2vigJkgaXMgb2ZmLCB0aGUgc2FtZSBr ZXkgcHJvZHVjZXMK4oCYa3AtdXDigJksIHdoaWNoIGlzIHRyYW5zbGF0ZWQgdG8gPFVQPi4gIElm IHlvdSByZWJpbmQgYSBrZXkgc3VjaCBhcyDigJg44oCZCm9yIDxVUD4sIGl0IGFmZmVjdHMgdGhl IGVxdWl2YWxlbnQga2V5cGFkIGtleSB0b28uICBIb3dldmVyLCBpZiB5b3UKcmViaW5kIGEg4oCY a3At4oCZIGtleSBkaXJlY3RseSwgdGhhdCB3b27igJl0IGFmZmVjdCBpdHMgbm9uLWtleXBhZApl cXVpdmFsZW50LiAgTm90ZSB0aGF0IHRoZSBtb2RpZmllZCBrZXlzIGFyZSBub3QgdHJhbnNsYXRl ZDogZm9yCmluc3RhbmNlLCBpZiB5b3UgaG9sZCBkb3duIHRoZSA8TWV0YT4ga2V5IHdoaWxlIHBy ZXNzaW5nIHRoZSDigJg44oCZIGtleSBvbgp0aGUgbnVtZXJpYyBrZXlwYWQsIHRoYXQgZ2VuZXJh dGVzIOKAmE0tPGtwLTg+4oCZLgoKICAgRW1hY3MgcHJvdmlkZXMgYSBjb252ZW5pZW50IG1ldGhv ZCBmb3IgYmluZGluZyB0aGUgbnVtZXJpYyBrZXlwYWQKa2V5cywgdXNpbmcgdGhlIHZhcmlhYmxl cyDigJhrZXlwYWQtc2V0dXDigJksIOKAmGtleXBhZC1udW1sb2NrLXNldHVw4oCZLArigJhrZXlw YWQtc2hpZnRlZC1zZXR1cOKAmSwgYW5kIOKAmGtleXBhZC1udW1sb2NrLXNoaWZ0ZWQtc2V0dXDi gJkuICBUaGVzZSBjYW4KYmUgZm91bmQgaW4gdGhlIOKAmGtleWJvYXJk4oCZIGN1c3RvbWl6YXRp b24gZ3JvdXAgKCpub3RlIEVhc3kKQ3VzdG9taXphdGlvbjo6KS4gIFlvdSBjYW4gcmViaW5kIHRo ZSBrZXlzIHRvIHBlcmZvcm0gb3RoZXIgdGFza3MsIHN1Y2gKYXMgaXNzdWluZyBudW1lcmljIHBy ZWZpeCBhcmd1bWVudHMuCgoKKioqIDQ5LjMuOSBOYW1lZCBBU0NJSSBDb250cm9sIENoYXJhY3Rl cnMKCjxUQUI+LCA8UkVUPiwgPEJTPiwgPExGRD4sIDxFU0M+LCBhbmQgPERFTD4gc3RhcnRlZCBv dXQgYXMgbmFtZXMgZm9yCmNlcnRhaW4gQVNDSUkgY29udHJvbCBjaGFyYWN0ZXJzLCB1c2VkIHNv IG9mdGVuIHRoYXQgdGhleSBoYXZlIHNwZWNpYWwKa2V5cyBvZiB0aGVpciBvd24uICBGb3IgaW5z dGFuY2UsIDxUQUI+IHdhcyBhbm90aGVyIG5hbWUgZm9yIOKAmEMtaeKAmS4KTGF0ZXIsIHVzZXJz IGZvdW5kIGl0IGNvbnZlbmllbnQgdG8gZGlzdGluZ3Vpc2ggaW4gRW1hY3MgYmV0d2VlbiB0aGVz ZQprZXlzIGFuZCB0aGUgY29ycmVzcG9uZGluZyBjb250cm9sIGNoYXJhY3RlcnMgdHlwZWQgd2l0 aCB0aGUgPEN0cmw+IGtleS4KVGhlcmVmb3JlLCBvbiBtb3N0IG1vZGVybiB0ZXJtaW5hbHMsIHRo ZXkgYXJlIG5vIGxvbmdlciB0aGUgc2FtZTogPFRBQj4KaXMgZGlmZmVyZW50IGZyb20g4oCYQy1p 4oCZLgoKICAgRW1hY3MgY2FuIGRpc3Rpbmd1aXNoIHRoZXNlIHR3byBraW5kcyBvZiBpbnB1dCBp ZiB0aGUga2V5Ym9hcmQgZG9lcy4KSXQgdHJlYXRzIHRoZSBzcGVjaWFsIGtleXMgYXMgZnVuY3Rp b24ga2V5cyBuYW1lZCDigJh0YWLigJksIOKAmHJldHVybuKAmSwK4oCYYmFja3NwYWNl4oCZLCDi gJhsaW5lZmVlZOKAmSwg4oCYZXNjYXBl4oCZLCBhbmQg4oCYZGVsZXRl4oCZLiAgVGhlc2UgZnVu Y3Rpb24ga2V5cwp0cmFuc2xhdGUgYXV0b21hdGljYWxseSBpbnRvIHRoZSBjb3JyZXNwb25kaW5n IEFTQ0lJIGNoYXJhY3RlcnMgX2lmXwp0aGV5IGhhdmUgbm8gYmluZGluZ3Mgb2YgdGhlaXIgb3du LiAgQXMgYSByZXN1bHQsIG5laXRoZXIgdXNlcnMgbm9yIExpc3AKcHJvZ3JhbXMgbmVlZCB0byBw YXkgYXR0ZW50aW9uIHRvIHRoZSBkaXN0aW5jdGlvbiB1bmxlc3MgdGhleSBjYXJlIHRvLgoKICAg SWYgeW91IGRvIG5vdCB3YW50IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gKGZvciBleGFtcGxlKSA8 VEFCPiBhbmQK4oCYQy1p4oCZLCBtYWtlIGp1c3Qgb25lIGJpbmRpbmcsIGZvciB0aGUgQVNDSUkg Y2hhcmFjdGVyIDxUQUI+IChvY3RhbCBjb2RlCjAxMSkuICBJZiB5b3UgZG8gd2FudCB0byBkaXN0 aW5ndWlzaCwgbWFrZSBvbmUgYmluZGluZyBmb3IgdGhpcyBBU0NJSQpjaGFyYWN0ZXIsIGFuZCBh bm90aGVyIGZvciB0aGUgZnVuY3Rpb24ga2V5IOKAmHRhYuKAmS4KCiAgIFdpdGggYW4gb3JkaW5h cnkgQVNDSUkgdGVybWluYWwsIHRoZXJlIGlzIG5vIHdheSB0byBkaXN0aW5ndWlzaApiZXR3ZWVu IDxUQUI+IGFuZCDigJhDLWnigJkgKGFuZCBsaWtld2lzZSBmb3Igb3RoZXIgc3VjaCBwYWlycyks IGJlY2F1c2UgdGhlCnRlcm1pbmFsIHNlbmRzIHRoZSBzYW1lIGNoYXJhY3RlciBpbiBib3RoIGNh c2VzLgoKCioqKiA0OS4zLjEwIFJlYmluZGluZyBNb3VzZSBCdXR0b25zCgpFbWFjcyB1c2VzIExp c3Agc3ltYm9scyB0byBkZXNpZ25hdGUgbW91c2UgYnV0dG9ucywgdG9vLiAgVGhlIG9yZGluYXJ5 Cm1vdXNlIGV2ZW50cyBpbiBFbWFjcyBhcmUgImNsaWNrIiBldmVudHM7IHRoZXNlIGhhcHBlbiB3 aGVuIHlvdSBwcmVzcyBhCmJ1dHRvbiBhbmQgcmVsZWFzZSBpdCB3aXRob3V0IG1vdmluZyB0aGUg bW91c2UuICBZb3UgY2FuIGFsc28gZ2V0ICJkcmFnIgpldmVudHMsIHdoZW4geW91IG1vdmUgdGhl IG1vdXNlIHdoaWxlIGhvbGRpbmcgdGhlIGJ1dHRvbiBkb3duLiAgRHJhZwpldmVudHMgaGFwcGVu IHdoZW4geW91IGZpbmFsbHkgbGV0IGdvIG9mIHRoZSBidXR0b24uCgogICBUaGUgc3ltYm9scyBm b3IgYmFzaWMgY2xpY2sgZXZlbnRzIGFyZSDigJhtb3VzZS0x4oCZIGZvciB0aGUgbGVmdG1vc3QK YnV0dG9uLCDigJhtb3VzZS0y4oCZIGZvciB0aGUgbmV4dCwgYW5kIHNvIG9uLiAgSGVyZSBpcyBo b3cgeW91IGNhbiByZWRlZmluZQp0aGUgc2Vjb25kIG1vdXNlIGJ1dHRvbiB0byBzcGxpdCB0aGUg Y3VycmVudCB3aW5kb3c6CgogICAgIChnbG9iYWwtc2V0LWtleSBbbW91c2UtMl0gJ3NwbGl0LXdp bmRvdy1iZWxvdykKCiAgIFRoZSBzeW1ib2xzIGZvciBkcmFnIGV2ZW50cyBhcmUgc2ltaWxhciwg YnV0IGhhdmUgdGhlIHByZWZpeCDigJhkcmFnLeKAmQpiZWZvcmUgdGhlIHdvcmQg4oCYbW91c2Xi gJkuICBGb3IgZXhhbXBsZSwgZHJhZ2dpbmcgdGhlIGZpcnN0IGJ1dHRvbgpnZW5lcmF0ZXMgYSDi gJhkcmFnLW1vdXNlLTHigJkgZXZlbnQuCgogICBZb3UgY2FuIGFsc28gZGVmaW5lIGJpbmRpbmdz IGZvciBldmVudHMgdGhhdCBvY2N1ciB3aGVuIGEgbW91c2UKYnV0dG9uIGlzIHByZXNzZWQgZG93 bi4gIFRoZXNlIGV2ZW50cyBzdGFydCB3aXRoIOKAmGRvd24t4oCZIGluc3RlYWQgb2YK4oCYZHJh Zy3igJkuICBTdWNoIGV2ZW50cyBhcmUgZ2VuZXJhdGVkIG9ubHkgaWYgdGhleSBoYXZlIGtleSBi aW5kaW5ncy4KV2hlbiB5b3UgZ2V0IGEgYnV0dG9uLWRvd24gZXZlbnQsIGEgY29ycmVzcG9uZGlu ZyBjbGljayBvciBkcmFnIGV2ZW50CndpbGwgYWx3YXlzIGZvbGxvdy4KCiAgIElmIHlvdSB3aXNo LCB5b3UgY2FuIGRpc3Rpbmd1aXNoIHNpbmdsZSwgZG91YmxlLCBhbmQgdHJpcGxlIGNsaWNrcy4K QSBkb3VibGUgY2xpY2sgbWVhbnMgY2xpY2tpbmcgYSBtb3VzZSBidXR0b24gdHdpY2UgaW4gYXBw cm94aW1hdGVseSB0aGUKc2FtZSBwbGFjZS4gIFRoZSBmaXJzdCBjbGljayBnZW5lcmF0ZXMgYW4g b3JkaW5hcnkgY2xpY2sgZXZlbnQuICBUaGUKc2Vjb25kIGNsaWNrLCBpZiBpdCBjb21lcyBzb29u IGVub3VnaCwgZ2VuZXJhdGVzIGEgZG91YmxlLWNsaWNrIGV2ZW50Cmluc3RlYWQuICBUaGUgZXZl bnQgdHlwZSBmb3IgYSBkb3VibGUtY2xpY2sgZXZlbnQgc3RhcnRzIHdpdGgg4oCYZG91YmxlLeKA mToKZm9yIGV4YW1wbGUsIOKAmGRvdWJsZS1tb3VzZS0z4oCZLgoKICAgVGhpcyBtZWFucyB0aGF0 IHlvdSBjYW4gZ2l2ZSBhIHNwZWNpYWwgbWVhbmluZyB0byB0aGUgc2Vjb25kIGNsaWNrIGF0CnRo ZSBzYW1lIHBsYWNlLCBidXQgaXQgbXVzdCBhY3Qgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGUg b3JkaW5hcnkKc2luZ2xlIGNsaWNrIGRlZmluaXRpb24gaGFzIHJ1biB3aGVuIHRoZSBmaXJzdCBj bGljayB3YXMgcmVjZWl2ZWQuCgogICBUaGlzIGNvbnN0cmFpbnMgd2hhdCB5b3UgY2FuIGRvIHdp dGggZG91YmxlIGNsaWNrcywgYnV0IHVzZXIKaW50ZXJmYWNlIGRlc2lnbmVycyBzYXkgdGhhdCB0 aGlzIGNvbnN0cmFpbnQgb3VnaHQgdG8gYmUgZm9sbG93ZWQgaW4gYW55CmNhc2UuICBBIGRvdWJs ZSBjbGljayBzaG91bGQgZG8gc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIHNpbmdsZSBjbGljaywK b25seSBtb3JlIHNvLiAgVGhlIGNvbW1hbmQgZm9yIHRoZSBkb3VibGUtY2xpY2sgZXZlbnQgc2hv dWxkIHBlcmZvcm0gdGhlCmV4dHJhIHdvcmsgZm9yIHRoZSBkb3VibGUgY2xpY2suCgogICBJZiBh IGRvdWJsZS1jbGljayBldmVudCBoYXMgbm8gYmluZGluZywgaXQgY2hhbmdlcyB0byB0aGUKY29y cmVzcG9uZGluZyBzaW5nbGUtY2xpY2sgZXZlbnQuICBUaHVzLCBpZiB5b3UgZG9u4oCZdCBkZWZp bmUgYQpwYXJ0aWN1bGFyIGRvdWJsZSBjbGljayBzcGVjaWFsbHksIGl0IGV4ZWN1dGVzIHRoZSBz aW5nbGUtY2xpY2sgY29tbWFuZAp0d2ljZS4KCiAgIEVtYWNzIGFsc28gc3VwcG9ydHMgdHJpcGxl LWNsaWNrIGV2ZW50cyB3aG9zZSBuYW1lcyBzdGFydCB3aXRoCuKAmHRyaXBsZS3igJkuICBFbWFj cyBkb2VzIG5vdCBkaXN0aW5ndWlzaCBxdWFkcnVwbGUgY2xpY2tzIGFzIGV2ZW50IHR5cGVzOwpj bGlja3MgYmV5b25kIHRoZSB0aGlyZCBnZW5lcmF0ZSBhZGRpdGlvbmFsIHRyaXBsZS1jbGljayBl dmVudHMuCkhvd2V2ZXIsIHRoZSBmdWxsIG51bWJlciBvZiBjbGlja3MgaXMgcmVjb3JkZWQgaW4g dGhlIGV2ZW50IGxpc3QsIHNvIGlmCnlvdSBrbm93IEVtYWNzIExpc3AgeW91IGNhbiBkaXN0aW5n dWlzaCBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gKCpub3RlCihlbGlzcClDbGljayBFdmVudHM6Oiku ICBXZSBkb27igJl0IHJlY29tbWVuZCBkaXN0aW5jdCBtZWFuaW5ncyBmb3IgbW9yZQp0aGFuIHRo cmVlIGNsaWNrcywgYnV0IHNvbWV0aW1lcyBpdCBpcyB1c2VmdWwgZm9yIHN1YnNlcXVlbnQgY2xp Y2tzIHRvCmN5Y2xlIHRocm91Z2ggdGhlIHNhbWUgc2V0IG9mIHRocmVlIG1lYW5pbmdzLCBzbyB0 aGF0IGZvdXIgY2xpY2tzIGFyZQplcXVpdmFsZW50IHRvIG9uZSBjbGljaywgZml2ZSBhcmUgZXF1 aXZhbGVudCB0byB0d28sIGFuZCBzaXggYXJlCmVxdWl2YWxlbnQgdG8gdGhyZWUuCgogICBFbWFj cyBhbHNvIHJlY29yZHMgbXVsdGlwbGUgcHJlc3NlcyBpbiBkcmFnIGFuZCBidXR0b24tZG93biBl dmVudHMuCkZvciBleGFtcGxlLCB3aGVuIHlvdSBwcmVzcyBhIGJ1dHRvbiB0d2ljZSwgdGhlbiBt b3ZlIHRoZSBtb3VzZSB3aGlsZQpob2xkaW5nIHRoZSBidXR0b24sIEVtYWNzIGdldHMgYSDigJhk b3VibGUtZHJhZy3igJkgZXZlbnQuICBBbmQgYXQgdGhlCm1vbWVudCB3aGVuIHlvdSBwcmVzcyBp dCBkb3duIGZvciB0aGUgc2Vjb25kIHRpbWUsIEVtYWNzIGdldHMgYQrigJhkb3VibGUtZG93bi3i gJkgZXZlbnQgKHdoaWNoIGlzIGlnbm9yZWQsIGxpa2UgYWxsIGJ1dHRvbi1kb3duIGV2ZW50cywg aWYKaXQgaGFzIG5vIGJpbmRpbmcpLgoKICAgVGhlIHZhcmlhYmxlIOKAmGRvdWJsZS1jbGljay10 aW1l4oCZIHNwZWNpZmllcyBob3cgbXVjaCB0aW1lIGNhbiBlbGFwc2UKYmV0d2VlbiBjbGlja3Mg YW5kIHN0aWxsIGFsbG93IHRoZW0gdG8gYmUgZ3JvdXBlZCBhcyBhIG11bHRpcGxlIGNsaWNrLgpJ dHMgdmFsdWUgaXMgaW4gdW5pdHMgb2YgbWlsbGlzZWNvbmRzLiAgSWYgdGhlIHZhbHVlIGlzIOKA mG5pbOKAmSwgZG91YmxlCmNsaWNrcyBhcmUgbm90IGRldGVjdGVkIGF0IGFsbC4gIElmIHRoZSB2 YWx1ZSBpcyDigJh04oCZLCB0aGVuIHRoZXJlIGlzIG5vCnRpbWUgbGltaXQuICBUaGUgZGVmYXVs dCBpcyA1MDAuCgogICBUaGUgdmFyaWFibGUg4oCYZG91YmxlLWNsaWNrLWZ1enrigJkgc3BlY2lm aWVzIGhvdyBtdWNoIHRoZSBtb3VzZSBjYW4KbW92ZSBiZXR3ZWVuIGNsaWNrcyBhbmQgc3RpbGwg YWxsb3cgdGhlbSB0byBiZSBncm91cGVkIGFzIGEgbXVsdGlwbGUKY2xpY2suICBJdHMgdmFsdWUg aXMgaW4gdW5pdHMgb2YgcGl4ZWxzIG9uIHdpbmRvd2VkIGRpc3BsYXlzIGFuZCBpbgp1bml0cyBv ZiAxLzggb2YgYSBjaGFyYWN0ZXIgY2VsbCBvbiB0ZXh0LW1vZGUgdGVybWluYWxzOyB0aGUgZGVm YXVsdCBpcwozLgoKICAgVGhlIHN5bWJvbHMgZm9yIG1vdXNlIGV2ZW50cyBhbHNvIGluZGljYXRl IHRoZSBzdGF0dXMgb2YgdGhlIG1vZGlmaWVyCmtleXMsIHdpdGggdGhlIHVzdWFsIHByZWZpeGVz IOKAmEMt4oCZLCDigJhNLeKAmSwg4oCYSC3igJksIOKAmHMt4oCZLCDigJhBLeKAmSwgYW5kIOKA mFMt4oCZLgpUaGVzZSBhbHdheXMgcHJlY2VkZSDigJhkb3VibGUt4oCZIG9yIOKAmHRyaXBsZS3i gJksIHdoaWNoIGFsd2F5cyBwcmVjZWRlCuKAmGRyYWct4oCZIG9yIOKAmGRvd24t4oCZLgoKICAg QSBmcmFtZSBpbmNsdWRlcyBhcmVhcyB0aGF0IGRvbuKAmXQgc2hvdyB0ZXh0IGZyb20gdGhlIGJ1 ZmZlciwgc3VjaCBhcwp0aGUgbW9kZSBsaW5lIGFuZCB0aGUgc2Nyb2xsIGJhci4gIFlvdSBjYW4g dGVsbCB3aGV0aGVyIGEgbW91c2UgYnV0dG9uCmNvbWVzIGZyb20gYSBzcGVjaWFsIGFyZWEgb2Yg dGhlIHNjcmVlbiBieSBtZWFucyBvZiBkdW1teSBwcmVmaXgga2V5cy4KRm9yIGV4YW1wbGUsIGlm IHlvdSBjbGljayB0aGUgbW91c2UgaW4gdGhlIG1vZGUgbGluZSwgeW91IGdldCB0aGUgcHJlZml4 CmtleSDigJhtb2RlLWxpbmXigJkgYmVmb3JlIHRoZSBvcmRpbmFyeSBtb3VzZS1idXR0b24gc3lt Ym9sLiAgVGh1cywgaGVyZSBpcwpob3cgdG8gZGVmaW5lIHRoZSBjb21tYW5kIGZvciBjbGlja2lu ZyB0aGUgZmlyc3QgYnV0dG9uIGluIGEgbW9kZSBsaW5lCnRvIHJ1biDigJhzY3JvbGwtdXAtY29t bWFuZOKAmToKCiAgICAgKGdsb2JhbC1zZXQta2V5IFttb2RlLWxpbmUgbW91c2UtMV0gJ3Njcm9s bC11cC1jb21tYW5kKQoKICAgSGVyZSBpcyB0aGUgY29tcGxldGUgbGlzdCBvZiB0aGVzZSBkdW1t eSBwcmVmaXgga2V5cyBhbmQgdGhlaXIKbWVhbmluZ3M6CgrigJhtb2RlLWxpbmXigJkKICAgICBU aGUgbW91c2Ugd2FzIGluIHRoZSBtb2RlIGxpbmUgb2YgYSB3aW5kb3cuCuKAmHZlcnRpY2FsLWxp bmXigJkKICAgICBUaGUgbW91c2Ugd2FzIGluIHRoZSB2ZXJ0aWNhbCBsaW5lIHNlcGFyYXRpbmcg c2lkZS1ieS1zaWRlIHdpbmRvd3MuCiAgICAgKElmIHlvdSB1c2Ugc2Nyb2xsIGJhcnMsIHRoZXkg YXBwZWFyIGluIHBsYWNlIG9mIHRoZXNlIHZlcnRpY2FsCiAgICAgbGluZXMuKQrigJh2ZXJ0aWNh bC1zY3JvbGwtYmFy4oCZCiAgICAgVGhlIG1vdXNlIHdhcyBpbiBhIHZlcnRpY2FsIHNjcm9sbCBi YXIuICAoVGhpcyBpcyB0aGUgb25seSBraW5kIG9mCiAgICAgc2Nyb2xsIGJhciBFbWFjcyBjdXJy ZW50bHkgc3VwcG9ydHMuKQrigJhtZW51LWJhcuKAmQogICAgIFRoZSBtb3VzZSB3YXMgaW4gdGhl IG1lbnUgYmFyLgrigJhoZWFkZXItbGluZeKAmQogICAgIFRoZSBtb3VzZSB3YXMgaW4gYSBoZWFk ZXIgbGluZS4KCiAgIFlvdSBjYW4gcHV0IG1vcmUgdGhhbiBvbmUgbW91c2UgYnV0dG9uIGluIGEg a2V5IHNlcXVlbmNlLCBidXQgaXQKaXNu4oCZdCB1c3VhbCB0byBkbyBzby4KCgoqKiogNDkuMy4x MSBEaXNhYmxpbmcgQ29tbWFuZHMKCkRpc2FibGluZyBhIGNvbW1hbmQgbWVhbnMgdGhhdCBpbnZv a2luZyBpdCBpbnRlcmFjdGl2ZWx5IGFza3MgZm9yCmNvbmZpcm1hdGlvbiBmcm9tIHRoZSB1c2Vy LiAgVGhlIHB1cnBvc2Ugb2YgZGlzYWJsaW5nIGEgY29tbWFuZCBpcyB0bwpwcmV2ZW50IHVzZXJz IGZyb20gZXhlY3V0aW5nIGl0IGJ5IGFjY2lkZW50OyB3ZSBkbyB0aGlzIGZvciBjb21tYW5kcwp0 aGF0IG1pZ2h0IGJlIGNvbmZ1c2luZyB0byB0aGUgdW5pbml0aWF0ZWQuCgogICBBdHRlbXB0aW5n IHRvIGludm9rZSBhIGRpc2FibGVkIGNvbW1hbmQgaW50ZXJhY3RpdmVseSBpbiBFbWFjcwpkaXNw bGF5cyBhIHdpbmRvdyBjb250YWluaW5nIHRoZSBjb21tYW5k4oCZcyBuYW1lLCBpdHMgZG9jdW1l bnRhdGlvbiwgYW5kCnNvbWUgaW5zdHJ1Y3Rpb25zIG9uIHdoYXQgdG8gZG8gaW1tZWRpYXRlbHk7 IHRoZW4gRW1hY3MgYXNrcyBmb3IgaW5wdXQKc2F5aW5nIHdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUg Y29tbWFuZCBhcyByZXF1ZXN0ZWQsIGVuYWJsZSBpdCBhbmQKZXhlY3V0ZSBpdCwgb3IgY2FuY2Vs LiAgSWYgeW91IGRlY2lkZSB0byBlbmFibGUgdGhlIGNvbW1hbmQsIHlvdSBtdXN0CnRoZW4gYW5z d2VyIGFub3RoZXIgcXVlc3Rpb27igJR3aGV0aGVyIHRvIGRvIHRoaXMgcGVybWFuZW50bHksIG9y IGp1c3QgZm9yCnRoZSBjdXJyZW50IHNlc3Npb24uICAoRW5hYmxpbmcgcGVybWFuZW50bHkgd29y a3MgYnkgYXV0b21hdGljYWxseQplZGl0aW5nIHlvdXIgaW5pdGlhbGl6YXRpb24gZmlsZS4pICBZ b3UgY2FuIGFsc28gdHlwZSDigJgh4oCZIHRvIGVuYWJsZQpfYWxsXyBjb21tYW5kcywgZm9yIHRo ZSBjdXJyZW50IHNlc3Npb24gb25seS4KCiAgIFRoZSBkaXJlY3QgbWVjaGFuaXNtIGZvciBkaXNh YmxpbmcgYSBjb21tYW5kIGlzIHRvIHB1dCBhIG5vbi3igJhuaWzigJkK4oCYZGlzYWJsZWTigJkg cHJvcGVydHkgb24gdGhlIExpc3Agc3ltYm9sIGZvciB0aGUgY29tbWFuZC4gIEhlcmUgaXMgdGhl Ckxpc3AgcHJvZ3JhbSB0byBkbyB0aGlzOgoKICAgICAocHV0ICdkZWxldGUtcmVnaW9uICdkaXNh YmxlZCB0KQoKICAgSWYgdGhlIHZhbHVlIG9mIHRoZSDigJhkaXNhYmxlZOKAmSBwcm9wZXJ0eSBp cyBhIHN0cmluZywgdGhhdCBzdHJpbmcgaXMKaW5jbHVkZWQgaW4gdGhlIG1lc3NhZ2UgZGlzcGxh eWVkIHdoZW4gdGhlIGNvbW1hbmQgaXMgdXNlZDoKCiAgICAgKHB1dCAnZGVsZXRlLXJlZ2lvbiAn ZGlzYWJsZWQKICAgICAgICAgICJJdCdzIGJldHRlciB0byB1c2UgYGtpbGwtcmVnaW9uJyBpbnN0 ZWFkLlxuIikKCiAgIFlvdSBjYW4gbWFrZSBhIGNvbW1hbmQgZGlzYWJsZWQgZWl0aGVyIGJ5IGVk aXRpbmcgdGhlIGluaXRpYWxpemF0aW9uCmZpbGUgZGlyZWN0bHksIG9yIHdpdGggdGhlIGNvbW1h bmQg4oCYTS14IGRpc2FibGUtY29tbWFuZOKAmSwgd2hpY2ggZWRpdHMKdGhlIGluaXRpYWxpemF0 aW9uIGZpbGUgZm9yIHlvdS4gIExpa2V3aXNlLCDigJhNLXggZW5hYmxlLWNvbW1hbmTigJkgZWRp dHMKdGhlIGluaXRpYWxpemF0aW9uIGZpbGUgdG8gZW5hYmxlIGEgY29tbWFuZCBwZXJtYW5lbnRs eS4gICpOb3RlIEluaXQKRmlsZTo6LgoKICAgSWYgRW1hY3Mgd2FzIGludm9rZWQgd2l0aCB0aGUg 4oCYLXHigJkgb3Ig4oCYLS1uby1pbml0LWZpbGXigJkgb3B0aW9ucyAoKm5vdGUKSW5pdGlhbCBP cHRpb25zOjopLCBpdCB3aWxsIG5vdCBlZGl0IHlvdXIgaW5pdGlhbGl6YXRpb24gZmlsZS4gIERv aW5nIHNvCmNvdWxkIGxvc2UgaW5mb3JtYXRpb24gYmVjYXVzZSBFbWFjcyBoYXMgbm90IHJlYWQg eW91ciBpbml0aWFsaXphdGlvbgpmaWxlLgoKICAgV2hldGhlciBhIGNvbW1hbmQgaXMgZGlzYWJs ZWQgaXMgaW5kZXBlbmRlbnQgb2Ygd2hhdCBrZXkgaXMgdXNlZCB0bwppbnZva2UgaXQ7IGRpc2Fi bGluZyBhbHNvIGFwcGxpZXMgaWYgdGhlIGNvbW1hbmQgaXMgaW52b2tlZCB1c2luZyDigJhNLXji gJkuCkhvd2V2ZXIsIGRpc2FibGluZyBhIGNvbW1hbmQgaGFzIG5vIGVmZmVjdCBvbiBjYWxsaW5n IGl0IGFzIGEgZnVuY3Rpb24KZnJvbSBMaXNwIHByb2dyYW1zLgoKCioqIDQ5LjQgVGhlIEVtYWNz IEluaXRpYWxpemF0aW9uIEZpbGUKCldoZW4gRW1hY3MgaXMgc3RhcnRlZCwgaXQgbm9ybWFsbHkg dHJpZXMgdG8gbG9hZCBhIExpc3AgcHJvZ3JhbSBmcm9tIGFuCiJpbml0aWFsaXphdGlvbiBmaWxl Iiwgb3IgImluaXQgZmlsZSIgZm9yIHNob3J0LiAgVGhpcyBmaWxlLCBpZiBpdApleGlzdHMsIHNw ZWNpZmllcyBob3cgdG8gaW5pdGlhbGl6ZSBFbWFjcyBmb3IgeW91LiAgRW1hY3MgbG9va3MgZm9y IHlvdXIKaW5pdCBmaWxlIHVzaW5nIHRoZSBmaWxlbmFtZXMg4oCYfi8uZW1hY3PigJksIOKAmH4v LmVtYWNzLmVs4oCZLCBvcgrigJh+Ly5lbWFjcy5kL2luaXQuZWzigJk7IHlvdSBjYW4gY2hvb3Nl IHRvIHVzZSBhbnkgb25lIG9mIHRoZXNlIHRocmVlIG5hbWVzCigqbm90ZSBGaW5kIEluaXQ6Oiku ICBIZXJlLCDigJh+L+KAmSBzdGFuZHMgZm9yIHlvdXIgaG9tZSBkaXJlY3RvcnkuCgogICBZb3Ug Y2FuIHVzZSB0aGUgY29tbWFuZCBsaW5lIHN3aXRjaCDigJgtceKAmSB0byBwcmV2ZW50IGxvYWRp bmcgeW91ciBpbml0CmZpbGUsIGFuZCDigJgtdeKAmSAob3Ig4oCYLS11c2Vy4oCZKSB0byBzcGVj aWZ5IGEgZGlmZmVyZW50IHVzZXLigJlzIGluaXQgZmlsZQooKm5vdGUgSW5pdGlhbCBPcHRpb25z OjopLgoKICAgVGhlcmUgY2FuIGFsc28gYmUgYSAiZGVmYXVsdCBpbml0IGZpbGUiLCB3aGljaCBp cyB0aGUgbGlicmFyeSBuYW1lZArigJhkZWZhdWx0LmVs4oCZLCBmb3VuZCB2aWEgdGhlIHN0YW5k YXJkIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMuICBUaGUKRW1hY3MgZGlzdHJpYnV0aW9uIGNv bnRhaW5zIG5vIHN1Y2ggbGlicmFyeTsgeW91ciBzaXRlIG1heSBjcmVhdGUgb25lCmZvciBsb2Nh bCBjdXN0b21pemF0aW9ucy4gIElmIHRoaXMgbGlicmFyeSBleGlzdHMsIGl0IGlzIGxvYWRlZCB3 aGVuZXZlcgp5b3Ugc3RhcnQgRW1hY3MgKGV4Y2VwdCB3aGVuIHlvdSBzcGVjaWZ5IOKAmC1x4oCZ KS4gIEJ1dCB5b3VyIGluaXQgZmlsZSwgaWYKYW55LCBpcyBsb2FkZWQgZmlyc3Q7IGlmIGl0IHNl dHMg4oCYaW5oaWJpdC1kZWZhdWx0LWluaXTigJkgbm9uLeKAmG5pbOKAmSwgdGhlbgrigJhkZWZh dWx04oCZIGlzIG5vdCBsb2FkZWQuCgogICBZb3VyIHNpdGUgbWF5IGFsc28gaGF2ZSBhICJzaXRl IHN0YXJ0dXAgZmlsZSI7IHRoaXMgaXMgbmFtZWQK4oCYc2l0ZS1zdGFydC5lbOKAmSwgaWYgaXQg ZXhpc3RzLiAgTGlrZSDigJhkZWZhdWx0LmVs4oCZLCBFbWFjcyBmaW5kcyB0aGlzIGZpbGUKdmlh IHRoZSBzdGFuZGFyZCBzZWFyY2ggcGF0aCBmb3IgTGlzcCBsaWJyYXJpZXMuICBFbWFjcyBsb2Fk cyB0aGlzCmxpYnJhcnkgYmVmb3JlIGl0IGxvYWRzIHlvdXIgaW5pdCBmaWxlLiAgVG8gaW5oaWJp dCBsb2FkaW5nIG9mIHRoaXMKbGlicmFyeSwgdXNlIHRoZSBvcHRpb24g4oCYLS1uby1zaXRlLWZp bGXigJkuICAqTm90ZSBJbml0aWFsIE9wdGlvbnM6Oi4gIFdlCnJlY29tbWVuZCBhZ2FpbnN0IHVz aW5nIOKAmHNpdGUtc3RhcnQuZWzigJkgZm9yIGNoYW5nZXMgdGhhdCBzb21lIHVzZXJzIG1heQpu b3QgbGlrZS4gIEl0IGlzIGJldHRlciB0byBwdXQgdGhlbSBpbiDigJhkZWZhdWx0LmVs4oCZLCBz byB0aGF0IHVzZXJzIGNhbgptb3JlIGVhc2lseSBvdmVycmlkZSB0aGVtLgoKICAgWW91IGNhbiBw bGFjZSDigJhkZWZhdWx0LmVs4oCZIGFuZCDigJhzaXRlLXN0YXJ0LmVs4oCZIGluIGFueSBvZiB0 aGUKZGlyZWN0b3JpZXMgd2hpY2ggRW1hY3Mgc2VhcmNoZXMgZm9yIExpc3AgbGlicmFyaWVzLiAg VGhlIHZhcmlhYmxlCuKAmGxvYWQtcGF0aOKAmSAoKm5vdGUgTGlzcCBMaWJyYXJpZXM6Oikgc3Bl Y2lmaWVzIHRoZXNlIGRpcmVjdG9yaWVzLiAgTWFueQpzaXRlcyBwdXQgdGhlc2UgZmlsZXMgaW4g YSBzdWJkaXJlY3RvcnkgbmFtZWQg4oCYc2l0ZS1saXNw4oCZIGluIHRoZSBFbWFjcwppbnN0YWxs YXRpb24gZGlyZWN0b3J5LCBzdWNoIGFzIOKAmC91c3IvbG9jYWwvc2hhcmUvZW1hY3Mvc2l0ZS1s aXNw4oCZLgoKICAgQnl0ZS1jb21waWxpbmcgeW91ciBpbml0IGZpbGUgaXMgbm90IHJlY29tbWVu ZGVkICgqbm90ZSBCeXRlCkNvbXBpbGF0aW9uOiAoZWxpc3ApQnl0ZSBDb21waWxhdGlvbi4pLiAg SXQgZ2VuZXJhbGx5IGRvZXMgbm90IHNwZWVkIHVwCnN0YXJ0dXAgdmVyeSBtdWNoLCBhbmQgb2Z0 ZW4gbGVhZHMgdG8gcHJvYmxlbXMgd2hlbiB5b3UgZm9yZ2V0IHRvCnJlY29tcGlsZSB0aGUgZmls ZS4gIEEgYmV0dGVyIHNvbHV0aW9uIGlzIHRvIHVzZSB0aGUgRW1hY3Mgc2VydmVyIHRvCnJlZHVj ZSB0aGUgbnVtYmVyIG9mIHRpbWVzIHlvdSBoYXZlIHRvIHN0YXJ0IEVtYWNzICgqbm90ZSBFbWFj cwpTZXJ2ZXI6OikuICBJZiB5b3VyIGluaXQgZmlsZSBkZWZpbmVzIG1hbnkgZnVuY3Rpb25zLCBj b25zaWRlciBtb3ZpbmcKdGhlbSB0byBhIHNlcGFyYXRlIChieXRlLWNvbXBpbGVkKSBmaWxlIHRo YXQgeW91IGxvYWQgaW4geW91ciBpbml0IGZpbGUuCgogICBJZiB5b3UgYXJlIGdvaW5nIHRvIHdy aXRlIGFjdHVhbCBFbWFjcyBMaXNwIHByb2dyYW1zIHRoYXQgZ28gYmV5b25kCm1pbm9yIGN1c3Rv bWl6YXRpb24sIHlvdSBzaG91bGQgcmVhZCB0aGUg4oCYRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFu dWFs4oCZLgoqTm90ZSBFbWFjcyBMaXNwOiAoZWxpc3ApVG9wLgoKKyBNZW51OgoKICAtIEluaXQg U3ludGF4OjogICAgICAgICBTeW50YXggb2YgY29uc3RhbnRzIGluIEVtYWNzIExpc3AuCiAgLSBJ bml0IEV4YW1wbGVzOjogICAgICAgSG93IHRvIGRvIHNvbWUgdGhpbmdzIHdpdGggYW4gaW5pdCBm aWxlLgogIC0gVGVybWluYWwgSW5pdDo6ICAgICAgIEVhY2ggdGVybWluYWwgdHlwZSBjYW4gaGF2 ZSBhbiBpbml0IGZpbGUuCiAgLSBGaW5kIEluaXQ6OiAgICAgICAgICAgSG93IEVtYWNzIGZpbmRz IHRoZSBpbml0IGZpbGUuCiAgLSBJbml0IE5vbi1BU0NJSTo6ICAgICAgVXNpbmcgbm9uLUFTQ0lJ IGNoYXJhY3RlcnMgaW4gYW4gaW5pdCBmaWxlLgoKCioqKiA0OS40LjEgSW5pdCBGaWxlIFN5bnRh eAoKVGhlIGluaXQgZmlsZSBjb250YWlucyBvbmUgb3IgbW9yZSBMaXNwIGV4cHJlc3Npb25zLiAg RWFjaCBvZiB0aGVzZQpjb25zaXN0cyBvZiBhIGZ1bmN0aW9uIG5hbWUgZm9sbG93ZWQgYnkgYXJn dW1lbnRzLCBhbGwgc3Vycm91bmRlZCBieQpwYXJlbnRoZXNlcy4gIEZvciBleGFtcGxlLCDigJgo c2V0cSBmaWxsLWNvbHVtbiA2MCnigJkgY2FsbHMgdGhlIGZ1bmN0aW9uCuKAmHNldHHigJkgdG8g c2V0IHRoZSB2YXJpYWJsZSDigJhmaWxsLWNvbHVtbuKAmSAoKm5vdGUgRmlsbGluZzo6KSB0byA2 MC4KCiAgIFlvdSBjYW4gc2V0IGFueSBMaXNwIHZhcmlhYmxlIHdpdGgg4oCYc2V0ceKAmSwgYnV0 IHdpdGggY2VydGFpbiB2YXJpYWJsZXMK4oCYc2V0ceKAmSB3b27igJl0IGRvIHdoYXQgeW91IHBy b2JhYmx5IHdhbnQgaW4gdGhlIOKAmC5lbWFjc+KAmSBmaWxlLiAgU29tZQp2YXJpYWJsZXMgYXV0 b21hdGljYWxseSBiZWNvbWUgYnVmZmVyLWxvY2FsIHdoZW4gc2V0IHdpdGgg4oCYc2V0ceKAmTsg d2hhdAp5b3Ugd2FudCBpbiDigJguZW1hY3PigJkgaXMgdG8gc2V0IHRoZSBkZWZhdWx0IHZhbHVl LCB1c2luZyDigJhzZXRxLWRlZmF1bHTigJkuClNvbWUgY3VzdG9taXphYmxlIG1pbm9yIG1vZGUg dmFyaWFibGVzIGRvIHNwZWNpYWwgdGhpbmdzIHRvIGVuYWJsZSB0aGUKbW9kZSB3aGVuIHlvdSBz ZXQgdGhlbSB3aXRoIEN1c3RvbWl6ZSwgYnV0IG9yZGluYXJ5IOKAmHNldHHigJkgd29u4oCZdCBk bwp0aGF0OyB0byBlbmFibGUgdGhlIG1vZGUgaW4geW91ciDigJguZW1hY3PigJkgZmlsZSwgY2Fs bCB0aGUgbWlub3IgbW9kZQpjb21tYW5kLiAgVGhlIGZvbGxvd2luZyBzZWN0aW9uIGhhcyBleGFt cGxlcyBvZiBib3RoIG9mIHRoZXNlIG1ldGhvZHMuCgogICBUaGUgc2Vjb25kIGFyZ3VtZW50IHRv IOKAmHNldHHigJkgaXMgYW4gZXhwcmVzc2lvbiBmb3IgdGhlIG5ldyB2YWx1ZSBvZgp0aGUgdmFy aWFibGUuICBUaGlzIGNhbiBiZSBhIGNvbnN0YW50LCBhIHZhcmlhYmxlLCBvciBhIGZ1bmN0aW9u IGNhbGwKZXhwcmVzc2lvbi4gIEluIOKAmC5lbWFjc+KAmSwgY29uc3RhbnRzIGFyZSB1c2VkIG1v c3Qgb2YgdGhlIHRpbWUuICBUaGV5IGNhbgpiZToKCk51bWJlcnM6CiAgICAgTnVtYmVycyBhcmUg d3JpdHRlbiBpbiBkZWNpbWFsLCB3aXRoIGFuIG9wdGlvbmFsIGluaXRpYWwgbWludXMKICAgICBz aWduLgoKU3RyaW5nczoKICAgICBMaXNwIHN0cmluZyBzeW50YXggaXMgdGhlIHNhbWUgYXMgQyBz dHJpbmcgc3ludGF4IHdpdGggYSBmZXcgZXh0cmEKICAgICBmZWF0dXJlcy4gIFVzZSBhIGRvdWJs ZS1xdW90ZSBjaGFyYWN0ZXIgdG8gYmVnaW4gYW5kIGVuZCBhIHN0cmluZwogICAgIGNvbnN0YW50 LgoKICAgICBJbiBhIHN0cmluZywgeW91IGNhbiBpbmNsdWRlIG5ld2xpbmVzIGFuZCBzcGVjaWFs IGNoYXJhY3RlcnMKICAgICBsaXRlcmFsbHkuICBCdXQgb2Z0ZW4gaXQgaXMgY2xlYW5lciB0byB1 c2UgYmFja3NsYXNoIHNlcXVlbmNlcyBmb3IKICAgICB0aGVtOiDigJhcbuKAmSBmb3IgbmV3bGlu ZSwg4oCYXGLigJkgZm9yIGJhY2tzcGFjZSwg4oCYXHLigJkgZm9yIGNhcnJpYWdlCiAgICAgcmV0 dXJuLCDigJhcdOKAmSBmb3IgdGFiLCDigJhcZuKAmSBmb3IgZm9ybWZlZWQgKGNvbnRyb2wtTCks IOKAmFxl4oCZIGZvcgogICAgIGVzY2FwZSwg4oCYXFzigJkgZm9yIGEgYmFja3NsYXNoLCDigJhc IuKAmSBmb3IgYSBkb3VibGUtcXVvdGUsIG9yIOKAmFxPT0/igJkKICAgICBmb3IgdGhlIGNoYXJh Y3RlciB3aG9zZSBvY3RhbCBjb2RlIGlzIE9PTy4gIEJhY2tzbGFzaCBhbmQKICAgICBkb3VibGUt cXVvdGUgYXJlIHRoZSBvbmx5IGNoYXJhY3RlcnMgZm9yIHdoaWNoIGJhY2tzbGFzaCBzZXF1ZW5j ZXMKICAgICBhcmUgbWFuZGF0b3J5LgoKICAgICDigJhcQy3igJkgY2FuIGJlIHVzZWQgYXMgYSBw cmVmaXggZm9yIGEgY29udHJvbCBjaGFyYWN0ZXIsIGFzIGluIOKAmFxDLXPigJkKICAgICBmb3Ig QVNDSUkgY29udHJvbC1TLCBhbmQg4oCYXE0t4oCZIGNhbiBiZSB1c2VkIGFzIGEgcHJlZml4IGZv ciBhIE1ldGEKICAgICBjaGFyYWN0ZXIsIGFzIGluIOKAmFxNLWHigJkgZm9yIOKAmDxNZXRhPi1B 4oCZIG9yIOKAmFxNLVxDLWHigJkgZm9yCiAgICAg4oCYPEN0cmw+LTxNZXRhPi1B4oCZLgoKICAg ICAqTm90ZSBJbml0IE5vbi1BU0NJSTo6LCBmb3IgaW5mb3JtYXRpb24gYWJvdXQgaW5jbHVkaW5n IG5vbi1BU0NJSQogICAgIGluIHlvdXIgaW5pdCBmaWxlLgoKQ2hhcmFjdGVyczoKICAgICBMaXNw IGNoYXJhY3RlciBjb25zdGFudCBzeW50YXggY29uc2lzdHMgb2YgYSDigJg/4oCZIGZvbGxvd2Vk IGJ5IGVpdGhlcgogICAgIGEgY2hhcmFjdGVyIG9yIGFuIGVzY2FwZSBzZXF1ZW5jZSBzdGFydGlu ZyB3aXRoIOKAmFzigJkuICBFeGFtcGxlczoKICAgICDigJg/eOKAmSwg4oCYP1xu4oCZLCDigJg/ XCLigJksIOKAmD9cKeKAmS4gIE5vdGUgdGhhdCBzdHJpbmdzIGFuZCBjaGFyYWN0ZXJzIGFyZQog ICAgIG5vdCBpbnRlcmNoYW5nZWFibGUgaW4gTGlzcDsgc29tZSBjb250ZXh0cyByZXF1aXJlIG9u ZSBhbmQgc29tZQogICAgIGNvbnRleHRzIHJlcXVpcmUgdGhlIG90aGVyLgoKICAgICAqTm90ZSBJ bml0IE5vbi1BU0NJSTo6LCBmb3IgaW5mb3JtYXRpb24gYWJvdXQgYmluZGluZyBjb21tYW5kcyB0 bwogICAgIGtleXMgd2hpY2ggc2VuZCBub24tQVNDSUkgY2hhcmFjdGVycy4KClRydWU6CiAgICAg 4oCYdOKAmSBzdGFuZHMgZm9yIOKAnHRydWXigJ0uCgpGYWxzZToKICAgICDigJhuaWzigJkgc3Rh bmRzIGZvciDigJxmYWxzZeKAnS4KCk90aGVyIExpc3Agb2JqZWN0czoKICAgICBXcml0ZSBhIHNp bmdsZS1xdW90ZSAo4oCYJ+KAmSkgZm9sbG93ZWQgYnkgdGhlIExpc3Agb2JqZWN0IHlvdSB3YW50 LgoKCioqKiA0OS40LjIgSW5pdCBGaWxlIEV4YW1wbGVzCgpIZXJlIGFyZSBzb21lIGV4YW1wbGVz IG9mIGRvaW5nIGNlcnRhaW4gY29tbW9ubHkgZGVzaXJlZCB0aGluZ3Mgd2l0aApMaXNwIGV4cHJl c3Npb25zOgoKICAg4oCiIEFkZCBhIGRpcmVjdG9yeSB0byB0aGUgdmFyaWFibGUg4oCYbG9hZC1w YXRo4oCZLiAgWW91IGNhbiB0aGVuIHB1dCBMaXNwCiAgICAgbGlicmFyaWVzIHRoYXQgYXJlIG5v dCBpbmNsdWRlZCB3aXRoIEVtYWNzIGluIHRoaXMgZGlyZWN0b3J5LCBhbmQKICAgICBsb2FkIHRo ZW0gd2l0aCDigJhNLXggbG9hZC1saWJyYXJ54oCZLiAgKk5vdGUgTGlzcCBMaWJyYXJpZXM6Oi4K CiAgICAgICAgICAoYWRkLXRvLWxpc3QgJ2xvYWQtcGF0aCAiL3BhdGgvdG8vbGlzcC9saWJyYXJp ZXMiKQoKICAg4oCiIE1ha2UgPFRBQj4gaW4gQyBtb2RlIGp1c3QgaW5zZXJ0IGEgdGFiIGlmIHBv aW50IGlzIGluIHRoZSBtaWRkbGUgb2YKICAgICBhIGxpbmUuCgogICAgICAgICAgKHNldHEgYy10 YWItYWx3YXlzLWluZGVudCBuaWwpCgogICAgIEhlcmUgd2UgaGF2ZSBhIHZhcmlhYmxlIHdob3Nl IHZhbHVlIGlzIG5vcm1hbGx5IOKAmHTigJkgZm9yIOKAnHRydWXigJ0gYW5kCiAgICAgdGhlIGFs dGVybmF0aXZlIGlzIOKAmG5pbOKAmSBmb3Ig4oCcZmFsc2XigJ0uCgogICDigKIgTWFrZSBzZWFy Y2hlcyBjYXNlIHNlbnNpdGl2ZSBieSBkZWZhdWx0IChpbiBhbGwgYnVmZmVycyB0aGF0IGRvIG5v dAogICAgIG92ZXJyaWRlIHRoaXMpLgoKICAgICAgICAgIChzZXRxLWRlZmF1bHQgY2FzZS1mb2xk LXNlYXJjaCBuaWwpCgogICAgIFRoaXMgc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSwgd2hpY2ggaXMg ZWZmZWN0aXZlIGluIGFsbCBidWZmZXJzIHRoYXQKICAgICBkbyBub3QgaGF2ZSBsb2NhbCB2YWx1 ZXMgZm9yIHRoZSB2YXJpYWJsZSAoKm5vdGUgTG9jYWxzOjopLgogICAgIFNldHRpbmcg4oCYY2Fz ZS1mb2xkLXNlYXJjaOKAmSB3aXRoIOKAmHNldHHigJkgYWZmZWN0cyBvbmx5IHRoZSBjdXJyZW50 CiAgICAgYnVmZmVy4oCZcyBsb2NhbCB2YWx1ZSwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQg eW91IHdhbnQgdG8gZG8gaW4KICAgICBhbiBpbml0IGZpbGUuCgogICDigKIgU3BlY2lmeSB5b3Vy IG93biBlbWFpbCBhZGRyZXNzLCBpZiBFbWFjcyBjYW7igJl0IGZpZ3VyZSBpdCBvdXQKICAgICBj b3JyZWN0bHkuCgogICAgICAgICAgKHNldHEgdXNlci1tYWlsLWFkZHJlc3MgImNoZW5leUB0b3J0 dXJlLmdvdiIpCgogICAgIFZhcmlvdXMgRW1hY3MgcGFja2FnZXMsIHN1Y2ggYXMgTWVzc2FnZSBt b2RlLCBjb25zdWx0CiAgICAg4oCYdXNlci1tYWlsLWFkZHJlc3PigJkgd2hlbiB0aGV5IG5lZWQg dG8ga25vdyB5b3VyIGVtYWlsIGFkZHJlc3MuCiAgICAgKk5vdGUgTWFpbCBIZWFkZXJzOjouCgog ICDigKIgTWFrZSBUZXh0IG1vZGUgdGhlIGRlZmF1bHQgbW9kZSBmb3IgbmV3IGJ1ZmZlcnMuCgog ICAgICAgICAgKHNldHEtZGVmYXVsdCBtYWpvci1tb2RlICd0ZXh0LW1vZGUpCgogICAgIE5vdGUg dGhhdCDigJh0ZXh0LW1vZGXigJkgaXMgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBjb21tYW5kIGZv cgogICAgIGVudGVyaW5nIFRleHQgbW9kZS4gIFRoZSBzaW5nbGUtcXVvdGUgYmVmb3JlIGl0IG1h a2VzIHRoZSBzeW1ib2wgYQogICAgIGNvbnN0YW50OyBvdGhlcndpc2UsIOKAmHRleHQtbW9kZeKA mSB3b3VsZCBiZSB0cmVhdGVkIGFzIGEgdmFyaWFibGUKICAgICBuYW1lLgoKICAg4oCiIFNldCB1 cCBkZWZhdWx0cyBmb3IgdGhlIExhdGluLTEgY2hhcmFjdGVyIHNldCwgd2hpY2ggc3VwcG9ydHMg bW9zdAogICAgIG9mIHRoZSBsYW5ndWFnZXMgb2YgV2VzdGVybiBFdXJvcGUuCgogICAgICAgICAg KHNldC1sYW5ndWFnZS1lbnZpcm9ubWVudCAiTGF0aW4tMSIpCgogICDigKIgVHVybiBvZmYgTGlu ZSBOdW1iZXIgbW9kZSwgYSBnbG9iYWwgbWlub3IgbW9kZS4KCiAgICAgICAgICAobGluZS1udW1i ZXItbW9kZSAwKQoKICAg4oCiIFR1cm4gb24gQXV0byBGaWxsIG1vZGUgYXV0b21hdGljYWxseSBp biBUZXh0IG1vZGUgYW5kIHJlbGF0ZWQgbW9kZXMKICAgICAoKm5vdGUgSG9va3M6OikuCgogICAg ICAgICAgKGFkZC1ob29rICd0ZXh0LW1vZGUtaG9vayAnYXV0by1maWxsLW1vZGUpCgogICDigKIg TG9hZCB0aGUgaW5zdGFsbGVkIExpc3AgbGlicmFyeSBuYW1lZCDigJhmb2/igJkgKGFjdHVhbGx5 IGEgZmlsZQogICAgIOKAmGZvby5lbGPigJkgb3Ig4oCYZm9vLmVs4oCZIGluIGEgc3RhbmRhcmQg RW1hY3MgZGlyZWN0b3J5KS4KCiAgICAgICAgICAobG9hZCAiZm9vIikKCiAgICAgV2hlbiB0aGUg YXJndW1lbnQgdG8g4oCYbG9hZOKAmSBpcyBhIHJlbGF0aXZlIGZpbGUgbmFtZSwgbm90IHN0YXJ0 aW5nCiAgICAgd2l0aCDigJgv4oCZIG9yIOKAmH7igJksIOKAmGxvYWTigJkgc2VhcmNoZXMgdGhl IGRpcmVjdG9yaWVzIGluIOKAmGxvYWQtcGF0aOKAmQogICAgICgqbm90ZSBMaXNwIExpYnJhcmll czo6KS4KCiAgIOKAoiBMb2FkIHRoZSBjb21waWxlZCBMaXNwIGZpbGUg4oCYZm9vLmVsY+KAmSBm cm9tIHlvdXIgaG9tZSBkaXJlY3RvcnkuCgogICAgICAgICAgKGxvYWQgIn4vZm9vLmVsYyIpCgog ICAgIEhlcmUgYSBmdWxsIGZpbGUgbmFtZSBpcyB1c2VkLCBzbyBubyBzZWFyY2hpbmcgaXMgZG9u ZS4KCiAgIOKAoiBUZWxsIEVtYWNzIHRvIGZpbmQgdGhlIGRlZmluaXRpb24gZm9yIHRoZSBmdW5j dGlvbiDigJhteWZ1bmN0aW9u4oCZIGJ5CiAgICAgbG9hZGluZyBhIExpc3AgbGlicmFyeSBuYW1l ZCDigJhteXBhY2thZ2XigJkgKGkuZS4sIGEgZmlsZQogICAgIOKAmG15cGFja2FnZS5lbGPigJkg b3Ig4oCYbXlwYWNrYWdlLmVs4oCZKToKCiAgICAgICAgICAoYXV0b2xvYWQgJ215ZnVuY3Rpb24g Im15cGFja2FnZSIgIkRvIHdoYXQgSSBzYXkuIiB0KQoKICAgICBIZXJlIHRoZSBzdHJpbmcg4oCY IkRvIHdoYXQgSSBzYXkuIuKAmSBpcyB0aGUgZnVuY3Rpb27igJlzIGRvY3VtZW50YXRpb24KICAg ICBzdHJpbmcuICBZb3Ugc3BlY2lmeSBpdCBpbiB0aGUg4oCYYXV0b2xvYWTigJkgZGVmaW5pdGlv biBzbyBpdCB3aWxsIGJlCiAgICAgYXZhaWxhYmxlIGZvciBoZWxwIGNvbW1hbmRzIGV2ZW4gd2hl biB0aGUgcGFja2FnZSBpcyBub3QgbG9hZGVkLgogICAgIFRoZSBsYXN0IGFyZ3VtZW50LCDigJh0 4oCZLCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgaW50ZXJhY3RpdmU7IHRo YXQgaXMsIGl0IGNhbiBiZSBpbnZva2VkIGludGVyYWN0aXZlbHkgYnkgdHlwaW5nCiAgICAg4oCY TS14IG15ZnVuY3Rpb24gPFJFVD7igJkgb3IgYnkgYmluZGluZyBpdCB0byBhIGtleS4gIElmIHRo ZSBmdW5jdGlvbgogICAgIGlzIG5vdCBpbnRlcmFjdGl2ZSwgb21pdCB0aGUg4oCYdOKAmSBvciB1 c2Ug4oCYbmls4oCZLgoKICAg4oCiIFJlYmluZCB0aGUga2V5IOKAmEMteCBs4oCZIHRvIHJ1biB0 aGUgZnVuY3Rpb24g4oCYbWFrZS1zeW1ib2xpYy1saW5r4oCZCiAgICAgKCpub3RlIEluaXQgUmVi aW5kaW5nOjopLgoKICAgICAgICAgIChnbG9iYWwtc2V0LWtleSAiXEMteGwiICdtYWtlLXN5bWJv bGljLWxpbmspCgogICAgIG9yCgogICAgICAgICAgKGRlZmluZS1rZXkgZ2xvYmFsLW1hcCAiXEMt eGwiICdtYWtlLXN5bWJvbGljLWxpbmspCgogICAgIE5vdGUgb25jZSBhZ2FpbiB0aGUgc2luZ2xl LXF1b3RlIHVzZWQgdG8gcmVmZXIgdG8gdGhlIHN5bWJvbAogICAgIOKAmG1ha2Utc3ltYm9saWMt bGlua+KAmSBpbnN0ZWFkIG9mIGl0cyB2YWx1ZSBhcyBhIHZhcmlhYmxlLgoKICAg4oCiIERvIHRo ZSBzYW1lIHRoaW5nIGZvciBMaXNwIG1vZGUgb25seS4KCiAgICAgICAgICAoZGVmaW5lLWtleSBs aXNwLW1vZGUtbWFwICJcQy14bCIgJ21ha2Utc3ltYm9saWMtbGluaykKCiAgIOKAoiBSZWRlZmlu ZSBhbGwga2V5cyB3aGljaCBub3cgcnVuIOKAmG5leHQtbGluZeKAmSBpbiBGdW5kYW1lbnRhbCBt b2RlIHNvCiAgICAgdGhhdCB0aGV5IHJ1biDigJhmb3J3YXJkLWxpbmXigJkgaW5zdGVhZC4KCiAg ICAgICAgICAoc3Vic3RpdHV0ZS1rZXktZGVmaW5pdGlvbiAnbmV4dC1saW5lICdmb3J3YXJkLWxp bmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC1tYXApCgogICDi gKIgTWFrZSDigJhDLXggQy124oCZIHVuZGVmaW5lZC4KCiAgICAgICAgICAoZ2xvYmFsLXVuc2V0 LWtleSAiXEMteFxDLXYiKQoKICAgICBPbmUgcmVhc29uIHRvIHVuZGVmaW5lIGEga2V5IGlzIHNv IHRoYXQgeW91IGNhbiBtYWtlIGl0IGEgcHJlZml4LgogICAgIFNpbXBseSBkZWZpbmluZyDigJhD LXggQy12IEFOWVRISU5H4oCZIHdpbGwgbWFrZSDigJhDLXggQy124oCZIGEgcHJlZml4LAogICAg IGJ1dCDigJhDLXggQy124oCZIG11c3QgZmlyc3QgYmUgZnJlZWQgb2YgaXRzIHVzdWFsIG5vbi1w cmVmaXgKICAgICBkZWZpbml0aW9uLgoKICAg4oCiIE1ha2Ug4oCYJOKAmSBoYXZlIHRoZSBzeW50 YXggb2YgcHVuY3R1YXRpb24gaW4gVGV4dCBtb2RlLiAgTm90ZSB0aGUgdXNlCiAgICAgb2YgYSBj aGFyYWN0ZXIgY29uc3RhbnQgZm9yIOKAmCTigJkuCgogICAgICAgICAgKG1vZGlmeS1zeW50YXgt ZW50cnkgP1wkICIuIiB0ZXh0LW1vZGUtc3ludGF4LXRhYmxlKQoKICAg4oCiIEVuYWJsZSB0aGUg dXNlIG9mIHRoZSBjb21tYW5kIOKAmG5hcnJvdy10by1yZWdpb27igJkgd2l0aG91dAogICAgIGNv bmZpcm1hdGlvbi4KCiAgICAgICAgICAocHV0ICduYXJyb3ctdG8tcmVnaW9uICdkaXNhYmxlZCBu aWwpCgogICDigKIgQWRqdXN0aW5nIHRoZSBjb25maWd1cmF0aW9uIHRvIHZhcmlvdXMgcGxhdGZv cm1zIGFuZCBFbWFjcwogICAgIHZlcnNpb25zLgoKICAgICBVc2VycyB0eXBpY2FsbHkgd2FudCBF bWFjcyB0byBiZWhhdmUgdGhlIHNhbWUgb24gYWxsIHN5c3RlbXMsIHNvCiAgICAgdGhlIHNhbWUg aW5pdCBmaWxlIGlzIHJpZ2h0IGZvciBhbGwgcGxhdGZvcm1zLiAgSG93ZXZlciwgc29tZXRpbWVz CiAgICAgaXQgaGFwcGVucyB0aGF0IGEgZnVuY3Rpb24geW91IHVzZSBmb3IgY3VzdG9taXppbmcg RW1hY3MgaXMgbm90CiAgICAgYXZhaWxhYmxlIG9uIHNvbWUgcGxhdGZvcm1zIG9yIGluIG9sZGVy IEVtYWNzIHZlcnNpb25zLiAgVG8gZGVhbAogICAgIHdpdGggdGhhdCBzaXR1YXRpb24sIHB1dCB0 aGUgY3VzdG9taXphdGlvbiBpbnNpZGUgYSBjb25kaXRpb25hbAogICAgIHRoYXQgdGVzdHMgd2hl dGhlciB0aGUgZnVuY3Rpb24gb3IgZmFjaWxpdHkgaXMgYXZhaWxhYmxlLCBsaWtlCiAgICAgdGhp czoKCiAgICAgICAgICAoaWYgKGZib3VuZHAgJ2JsaW5rLWN1cnNvci1tb2RlKQogICAgICAgICAg ICAgIChibGluay1jdXJzb3ItbW9kZSAwKSkKCiAgICAgICAgICAoaWYgKGJvdW5kcCAnY29kaW5n LWNhdGVnb3J5LXV0Zi04KQogICAgICAgICAgICAgIChzZXQtY29kaW5nLXByaW9yaXR5ICcoY29k aW5nLWNhdGVnb3J5LXV0Zi04KSkpCgogICAgIFlvdSBjYW4gYWxzbyBzaW1wbHkgZGlzcmVnYXJk IHRoZSBlcnJvcnMgdGhhdCBvY2N1ciBpZiB0aGUgZnVuY3Rpb24KICAgICBpcyBub3QgZGVmaW5l ZC4KCiAgICAgICAgICAoaWdub3JlLWVycm9ycyAoc2V0LWZhY2UtYmFja2dyb3VuZCAncmVnaW9u ICJncmV5NzUiKSkKCiAgICAgQSDigJhzZXRx4oCZIG9uIGEgdmFyaWFibGUgd2hpY2ggZG9lcyBu b3QgZXhpc3QgaXMgZ2VuZXJhbGx5IGhhcm1sZXNzLAogICAgIHNvIHRob3NlIGRvIG5vdCBuZWVk IGEgY29uZGl0aW9uYWwuCgoKKioqIDQ5LjQuMyBUZXJtaW5hbC1zcGVjaWZpYyBJbml0aWFsaXph dGlvbgoKRWFjaCB0ZXJtaW5hbCB0eXBlIGNhbiBoYXZlIGEgTGlzcCBsaWJyYXJ5IHRvIGJlIGxv YWRlZCBpbnRvIEVtYWNzIHdoZW4KaXQgaXMgcnVuIG9uIHRoYXQgdHlwZSBvZiB0ZXJtaW5hbC4g IEZvciBhIHRlcm1pbmFsIHR5cGUgbmFtZWQgVEVSTVRZUEUsCnRoZSBsaWJyYXJ5IGlzIGNhbGxl ZCDigJh0ZXJtL1RFUk1UWVBF4oCZLiAgKElmIHRoZXJlIGlzIGFuIGVudHJ5IG9mIHRoZQpmb3Jt IOKAmChURVJNVFlQRSAuIEFMSUFTKeKAmSBpbiB0aGUg4oCYdGVybS1maWxlLWFsaWFzZXPigJkg YXNzb2NpYXRpb24gbGlzdCwKRW1hY3MgdXNlcyBBTElBUyBpbiBwbGFjZSBvZiBURVJNVFlQRS4p ICBUaGUgbGlicmFyeSBpcyBmb3VuZCBieQpzZWFyY2hpbmcgdGhlIGRpcmVjdG9yaWVzIOKAmGxv YWQtcGF0aOKAmSBhcyB1c3VhbCBhbmQgdHJ5aW5nIHRoZSBzdWZmaXhlcwrigJguZWxj4oCZIGFu ZCDigJguZWzigJkuICBOb3JtYWxseSBpdCBhcHBlYXJzIGluIHRoZSBzdWJkaXJlY3Rvcnkg4oCY dGVybeKAmSBvZiB0aGUKZGlyZWN0b3J5IHdoZXJlIG1vc3QgRW1hY3MgbGlicmFyaWVzIGFyZSBr ZXB0LgoKICAgVGhlIHVzdWFsIHB1cnBvc2Ugb2YgdGhlIHRlcm1pbmFsLXNwZWNpZmljIGxpYnJh cnkgaXMgdG8gbWFwIHRoZQplc2NhcGUgc2VxdWVuY2VzIHVzZWQgYnkgdGhlIHRlcm1pbmFs4oCZ cyBmdW5jdGlvbiBrZXlzIG9udG8gbW9yZQptZWFuaW5nZnVsIG5hbWVzLCB1c2luZyDigJhpbnB1 dC1kZWNvZGUtbWFw4oCZIChvciDigJhmdW5jdGlvbi1rZXktbWFw4oCZIGJlZm9yZQppdCkuICBT ZWUgdGhlIGZpbGUg4oCYdGVybS9sazIwMS5lbOKAmSBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdGhp cyBpcyBkb25lLgpNYW55IGZ1bmN0aW9uIGtleXMgYXJlIG1hcHBlZCBhdXRvbWF0aWNhbGx5IGFj Y29yZGluZyB0byB0aGUgaW5mb3JtYXRpb24KaW4gdGhlIFRlcm1jYXAgZGF0YSBiYXNlOyB0aGUg dGVybWluYWwtc3BlY2lmaWMgbGlicmFyeSBuZWVkcyB0byBtYXAKb25seSB0aGUgZnVuY3Rpb24g a2V5cyB0aGF0IFRlcm1jYXAgZG9lcyBub3Qgc3BlY2lmeS4KCiAgIFdoZW4gdGhlIHRlcm1pbmFs IHR5cGUgY29udGFpbnMgYSBoeXBoZW4sIG9ubHkgdGhlIHBhcnQgb2YgdGhlIG5hbWUKYmVmb3Jl IHRoZSBmaXJzdCBoeXBoZW4gaXMgc2lnbmlmaWNhbnQgaW4gY2hvb3NpbmcgdGhlIGxpYnJhcnkg bmFtZS4KVGh1cywgdGVybWluYWwgdHlwZXMg4oCYYWFhLTQ44oCZIGFuZCDigJhhYWEtMzAtcnbi gJkgYm90aCB1c2UgdGhlIGxpYnJhcnkK4oCYdGVybS9hYWHigJkuICBUaGUgY29kZSBpbiB0aGUg bGlicmFyeSBjYW4gdXNlIOKAmChnZXRlbnYgIlRFUk0iKeKAmSB0byBmaW5kCnRoZSBmdWxsIHRl cm1pbmFsIHR5cGUgbmFtZS4KCiAgIFRoZSBsaWJyYXJ54oCZcyBuYW1lIGlzIGNvbnN0cnVjdGVk IGJ5IGNvbmNhdGVuYXRpbmcgdGhlIHZhbHVlIG9mIHRoZQp2YXJpYWJsZSDigJh0ZXJtLWZpbGUt cHJlZml44oCZIGFuZCB0aGUgdGVybWluYWwgdHlwZS4gIFlvdXIg4oCYLmVtYWNz4oCZIGZpbGUK Y2FuIHByZXZlbnQgdGhlIGxvYWRpbmcgb2YgdGhlIHRlcm1pbmFsLXNwZWNpZmljIGxpYnJhcnkg Ynkgc2V0dGluZwrigJh0ZXJtLWZpbGUtcHJlZml44oCZIHRvIOKAmG5pbOKAmS4KCiAgIEVtYWNz IHJ1bnMgdGhlIGhvb2sg4oCYdHR5LXNldHVwLWhvb2vigJkgYXQgdGhlIGVuZCBvZiBpbml0aWFs aXphdGlvbiwKYWZ0ZXIgYm90aCB5b3VyIOKAmC5lbWFjc+KAmSBmaWxlIGFuZCBhbnkgdGVybWlu YWwtc3BlY2lmaWMgbGlicmFyeSBoYXZlCmJlZW4gcmVhZCBpbi4gIEFkZCBob29rIGZ1bmN0aW9u cyB0byB0aGlzIGhvb2sgaWYgeW91IHdpc2ggdG8gb3ZlcnJpZGUKcGFydCBvZiBhbnkgb2YgdGhl IHRlcm1pbmFsLXNwZWNpZmljIGxpYnJhcmllcyBhbmQgdG8gZGVmaW5lCmluaXRpYWxpemF0aW9u cyBmb3IgdGVybWluYWxzIHRoYXQgZG8gbm90IGhhdmUgYSBsaWJyYXJ5LiAgKk5vdGUKSG9va3M6 Oi4KCgoqKiogNDkuNC40IEhvdyBFbWFjcyBGaW5kcyBZb3VyIEluaXQgRmlsZQoKTm9ybWFsbHkg RW1hY3MgdXNlcyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUg4oCYSE9NReKAmSAoKm5vdGUgSE9N RTogR2VuZXJhbApWYXJpYWJsZXMuKSB0byBmaW5kIOKAmC5lbWFjc+KAmTsgdGhhdOKAmXMgd2hh dCDigJh+4oCZIG1lYW5zIGluIGEgZmlsZSBuYW1lLiAgSWYK4oCYLmVtYWNz4oCZIGlzIG5vdCBm b3VuZCBpbnNpZGUg4oCYfi/igJkgKG5vciDigJguZW1hY3MuZWzigJkpLCBFbWFjcyBsb29rcyBm b3IK4oCYfi8uZW1hY3MuZC9pbml0LmVs4oCZICh3aGljaCwgbGlrZSDigJh+Ly5lbWFjcy5lbOKA mSwgY2FuIGJlIGJ5dGUtY29tcGlsZWQpLgoKICAgSG93ZXZlciwgaWYgeW91IHJ1biBFbWFjcyBm cm9tIGEgc2hlbGwgc3RhcnRlZCBieSDigJhzdeKAmSwgRW1hY3MgdHJpZXMKdG8gZmluZCB5b3Vy IG93biDigJguZW1hY3PigJksIG5vdCB0aGF0IG9mIHRoZSB1c2VyIHlvdSBhcmUgY3VycmVudGx5 CnByZXRlbmRpbmcgdG8gYmUuICBUaGUgaWRlYSBpcyB0aGF0IHlvdSBzaG91bGQgZ2V0IHlvdXIg b3duIGVkaXRvcgpjdXN0b21pemF0aW9ucyBldmVuIGlmIHlvdSBhcmUgcnVubmluZyBhcyB0aGUg c3VwZXIgdXNlci4KCiAgIE1vcmUgcHJlY2lzZWx5LCBFbWFjcyBmaXJzdCBkZXRlcm1pbmVzIHdo aWNoIHVzZXLigJlzIGluaXQgZmlsZSB0byB1c2UuCkl0IGdldHMgeW91ciB1c2VyIG5hbWUgZnJv bSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIOKAmExPR05BTUXigJkgYW5kCuKAmFVTRVLigJk7 IGlmIG5laXRoZXIgb2YgdGhvc2UgZXhpc3RzLCBpdCB1c2VzIGVmZmVjdGl2ZSB1c2VyLUlELiAg SWYgdGhhdAp1c2VyIG5hbWUgbWF0Y2hlcyB0aGUgcmVhbCB1c2VyLUlELCB0aGVuIEVtYWNzIHVz ZXMg4oCYSE9NReKAmTsgb3RoZXJ3aXNlLAppdCBsb29rcyB1cCB0aGUgaG9tZSBkaXJlY3Rvcnkg Y29ycmVzcG9uZGluZyB0byB0aGF0IHVzZXIgbmFtZSBpbiB0aGUKc3lzdGVt4oCZcyBkYXRhIGJh c2Ugb2YgdXNlcnMuCgoKKioqIDQ5LjQuNSBOb24tQVNDSUkgQ2hhcmFjdGVycyBpbiBJbml0IEZp bGVzCgpMYW5ndWFnZSBhbmQgY29kaW5nIHN5c3RlbXMgbWF5IGNhdXNlIHByb2JsZW1zIGlmIHlv dXIgaW5pdCBmaWxlCmNvbnRhaW5zIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBzdWNoIGFzIGFjY2Vu dGVkIGxldHRlcnMsIGluIHN0cmluZ3Mgb3IKa2V5IGJpbmRpbmdzLgoKICAgSWYgeW91IHdhbnQg dG8gdXNlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHlvdXIgaW5pdCBmaWxlLCB5b3Ugc2hvdWxk CnB1dCBhIOKAmC0qLWNvZGluZzogQ09ESU5HLVNZU1RFTS0qLeKAmSB0YWcgb24gdGhlIGZpcnN0 IGxpbmUgb2YgdGhlIGluaXQKZmlsZSwgYW5kIHNwZWNpZnkgYSBjb2Rpbmcgc3lzdGVtIHRoYXQg c3VwcG9ydHMgdGhlIGNoYXJhY3RlcihzKSBpbgpxdWVzdGlvbi4gICpOb3RlIFJlY29nbml6ZSBD b2Rpbmc6Oi4gIFRoaXMgaXMgYmVjYXVzZSB0aGUgZGVmYXVsdHMgZm9yCmRlY29kaW5nIG5vbi1B U0NJSSB0ZXh0IG1pZ2h0IG5vdCB5ZXQgYmUgc2V0IHVwIGJ5IHRoZSB0aW1lIEVtYWNzIHJlYWRz CnRob3NlIHBhcnRzIG9mIHlvdXIgaW5pdCBmaWxlIHdoaWNoIHVzZSBzdWNoIHN0cmluZ3MsIHBv c3NpYmx5IGxlYWRpbmcKRW1hY3MgdG8gZGVjb2RlIHRob3NlIHN0cmluZ3MgaW5jb3JyZWN0bHku ICBZb3Ugc2hvdWxkIHRoZW4gYXZvaWQgYWRkaW5nCkVtYWNzIExpc3AgY29kZSB0aGF0IG1vZGlm aWVzIHRoZSBjb2Rpbmcgc3lzdGVtIGluIG90aGVyIHdheXMsIHN1Y2ggYXMKY2FsbHMgdG8g4oCY c2V0LWxhbmd1YWdlLWVudmlyb25tZW504oCZLgoKICAgVG8gYmluZCBub24tQVNDSUkga2V5cywg eW91IG11c3QgdXNlIGEgdmVjdG9yICgqbm90ZSBJbml0ClJlYmluZGluZzo6KS4gIFRoZSBzdHJp bmcgc3ludGF4IGNhbm5vdCBiZSB1c2VkLCBzaW5jZSB0aGUgbm9uLUFTQ0lJCmNoYXJhY3RlcnMg d2lsbCBiZSBpbnRlcnByZXRlZCBhcyBtZXRhIGtleXMuICBGb3IgaW5zdGFuY2U6CgogICAgIChn bG9iYWwtc2V0LWtleSBbP0NIQVJdICdzb21lLWZ1bmN0aW9uKQoKVHlwZSDigJhDLXHigJksIGZv bGxvd2VkIGJ5IHRoZSBrZXkgeW91IHdhbnQgdG8gYmluZCwgdG8gaW5zZXJ0IENIQVIuCgoKKiA1 MCBRdWl0dGluZyBhbmQgQWJvcnRpbmcKCuKAmEMtZ+KAmQrigJhDLTxCcmVhaz4gKE1TLURPUyBv bmx5KeKAmQogICAgIFF1aXQ6IGNhbmNlbCBydW5uaW5nIG9yIHBhcnRpYWxseSB0eXBlZCBjb21t YW5kLgrigJhDLV3igJkKICAgICBBYm9ydCBpbm5lcm1vc3QgcmVjdXJzaXZlIGVkaXRpbmcgbGV2 ZWwgYW5kIGNhbmNlbCB0aGUgY29tbWFuZAogICAgIHdoaWNoIGludm9rZWQgaXQgKOKAmGFib3J0 LXJlY3Vyc2l2ZS1lZGl04oCZKS4K4oCYPEVTQz4gPEVTQz4gPEVTQz7igJkKICAgICBFaXRoZXIg cXVpdCBvciBhYm9ydCwgd2hpY2hldmVyIG1ha2VzIHNlbnNlCiAgICAgKOKAmGtleWJvYXJkLWVz Y2FwZS1xdWl04oCZKS4K4oCYTS14IHRvcC1sZXZlbOKAmQogICAgIEFib3J0IGFsbCByZWN1cnNp dmUgZWRpdGluZyBsZXZlbHMgdGhhdCBhcmUgY3VycmVudGx5IGV4ZWN1dGluZy4K4oCYQy0v4oCZ CuKAmEMteCB14oCZCuKAmEMtX+KAmQogICAgIENhbmNlbCBhIHByZXZpb3VzbHkgbWFkZSBjaGFu Z2UgaW4gdGhlIGJ1ZmZlciBjb250ZW50cyAo4oCYdW5kb+KAmSkuCgogICBUaGVyZSBhcmUgdHdv IHdheXMgb2YgY2FuY2VsaW5nIGEgY29tbWFuZCBiZWZvcmUgaXQgaGFzIGZpbmlzaGVkOgoicXVp dHRpbmciIHdpdGgg4oCYQy1n4oCZLCBhbmQgImFib3J0aW5nIiB3aXRoIOKAmEMtXeKAmSBvciDi gJhNLXggdG9wLWxldmVs4oCZLgpRdWl0dGluZyBjYW5jZWxzIGEgcGFydGlhbGx5IHR5cGVkIGNv bW1hbmQsIG9yIG9uZSB3aGljaCBpcyBzdGlsbApydW5uaW5nLiAgQWJvcnRpbmcgZXhpdHMgYSBy ZWN1cnNpdmUgZWRpdGluZyBsZXZlbCBhbmQgY2FuY2VscyB0aGUKY29tbWFuZCB0aGF0IGludm9r ZWQgdGhlIHJlY3Vyc2l2ZSBlZGl0ICgqbm90ZSBSZWN1cnNpdmUgRWRpdDo6KS4KCiAgIFF1aXR0 aW5nIHdpdGgg4oCYQy1n4oCZIGlzIHRoZSB3YXkgdG8gZ2V0IHJpZCBvZiBhIHBhcnRpYWxseSB0 eXBlZApjb21tYW5kLCBvciBhIG51bWVyaWMgYXJndW1lbnQgdGhhdCB5b3UgZG9u4oCZdCB3YW50 LiAgRnVydGhlcm1vcmUsIGlmIHlvdQphcmUgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1hbmQgdGhh dCBpcyBydW5uaW5nLCDigJhDLWfigJkgc3RvcHMgdGhlIGNvbW1hbmQKaW4gYSByZWxhdGl2ZWx5 IHNhZmUgd2F5LiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBxdWl0IG91dCBvZiBhIGtpbGwKY29tbWFu ZCB0aGF0IGlzIHRha2luZyBhIGxvbmcgdGltZSwgZWl0aGVyIHlvdXIgdGV4dCB3aWxsIF9hbGxf IHN0aWxsIGJlCmluIHRoZSBidWZmZXIsIG9yIGl0IHdpbGwgX2FsbF8gYmUgaW4gdGhlIGtpbGwg cmluZywgb3IgbWF5YmUgYm90aC4gIElmCnRoZSByZWdpb24gaXMgYWN0aXZlLCDigJhDLWfigJkg ZGVhY3RpdmF0ZXMgdGhlIG1hcmssIHVubGVzcyBUcmFuc2llbnQgTWFyawptb2RlIGlzIG9mZiAo Km5vdGUgRGlzYWJsZWQgVHJhbnNpZW50IE1hcms6OikuICBJZiB5b3UgYXJlIGluIHRoZSBtaWRk bGUKb2YgYW4gaW5jcmVtZW50YWwgc2VhcmNoLCDigJhDLWfigJkgYmVoYXZlcyBzcGVjaWFsbHk7 IGl0IG1heSB0YWtlIHR3bwpzdWNjZXNzaXZlIOKAmEMtZ+KAmSBjaGFyYWN0ZXJzIHRvIGdldCBv dXQgb2YgYSBzZWFyY2guICAqTm90ZSBJbmNyZW1lbnRhbApTZWFyY2g6OiwgZm9yIGRldGFpbHMu CgogICBPbiBNUy1ET1MsIHRoZSBjaGFyYWN0ZXIg4oCYQy08QnJlYWs+4oCZIHNlcnZlcyBhcyBh IHF1aXQgY2hhcmFjdGVyIGxpa2UK4oCYQy1n4oCZLiAgVGhlIHJlYXNvbiBpcyB0aGF0IGl0IGlz IG5vdCBmZWFzaWJsZSwgb24gTVMtRE9TLCB0byByZWNvZ25pemUK4oCYQy1n4oCZIHdoaWxlIGEg Y29tbWFuZCBpcyBydW5uaW5nLCBiZXR3ZWVuIGludGVyYWN0aW9ucyB3aXRoIHRoZSB1c2VyLgpC eSBjb250cmFzdCwgaXQgX2lzXyBmZWFzaWJsZSB0byByZWNvZ25pemUg4oCYQy08QnJlYWs+4oCZ IGF0IGFsbCB0aW1lcy4KKk5vdGUgTVMtRE9TIEtleWJvYXJkOjouCgogICDigJhDLWfigJkgd29y a3MgYnkgc2V0dGluZyB0aGUgdmFyaWFibGUg4oCYcXVpdC1mbGFn4oCZIHRvIOKAmHTigJkgdGhl IGluc3RhbnQK4oCYQy1n4oCZIGlzIHR5cGVkOyBFbWFjcyBMaXNwIGNoZWNrcyB0aGlzIHZhcmlh YmxlIGZyZXF1ZW50bHksIGFuZCBxdWl0cyBpZgppdCBpcyBub24t4oCYbmls4oCZLiAg4oCYQy1n 4oCZIGlzIG9ubHkgYWN0dWFsbHkgZXhlY3V0ZWQgYXMgYSBjb21tYW5kIGlmIHlvdQp0eXBlIGl0 IHdoaWxlIEVtYWNzIGlzIHdhaXRpbmcgZm9yIGlucHV0LiAgSW4gdGhhdCBjYXNlLCB0aGUgY29t bWFuZCBpdApydW5zIGlzIOKAmGtleWJvYXJkLXF1aXTigJkuCgogICBPbiBhIHRleHQgdGVybWlu YWwsIGlmIHlvdSBxdWl0IHdpdGgg4oCYQy1n4oCZIGEgc2Vjb25kIHRpbWUgYmVmb3JlIHRoZQpm aXJzdCDigJhDLWfigJkgaXMgcmVjb2duaXplZCwgeW91IGFjdGl2YXRlIHRoZSBlbWVyZ2VuY3kt ZXNjYXBlIGZlYXR1cmUgYW5kCnJldHVybiB0byB0aGUgc2hlbGwuICAqTm90ZSBFbWVyZ2VuY3kg RXNjYXBlOjouCgogICBUaGVyZSBhcmUgc29tZSBzaXR1YXRpb25zIHdoZXJlIHlvdSBjYW5ub3Qg cXVpdC4gIFdoZW4gRW1hY3MgaXMKd2FpdGluZyBmb3IgdGhlIG9wZXJhdGluZyBzeXN0ZW0gdG8g ZG8gc29tZXRoaW5nLCBxdWl0dGluZyBpcyBpbXBvc3NpYmxlCnVubGVzcyBzcGVjaWFsIHBhaW5z IGFyZSB0YWtlbiBmb3IgdGhlIHBhcnRpY3VsYXIgc3lzdGVtIGNhbGwgd2l0aGluCkVtYWNzIHdo ZXJlIHRoZSB3YWl0aW5nIG9jY3Vycy4gIFdlIGhhdmUgZG9uZSB0aGlzIGZvciB0aGUgc3lzdGVt IGNhbGxzCnRoYXQgdXNlcnMgYXJlIGxpa2VseSB0byB3YW50IHRvIHF1aXQgZnJvbSwgYnV0IGl0 4oCZcyBwb3NzaWJsZSB5b3Ugd2lsbAplbmNvdW50ZXIgYSBjYXNlIG5vdCBoYW5kbGVkLiAgSW4g b25lIHZlcnkgY29tbW9uIGNhc2XigJR3YWl0aW5nIGZvciBmaWxlCmlucHV0IG9yIG91dHB1dCB1 c2luZyBORlPigJRFbWFjcyBpdHNlbGYga25vd3MgaG93IHRvIHF1aXQsIGJ1dCBtYW55IE5GUwpp bXBsZW1lbnRhdGlvbnMgc2ltcGx5IGRvIG5vdCBhbGxvdyB1c2VyIHByb2dyYW1zIHRvIHN0b3Ag d2FpdGluZyBmb3IKTkZTIHdoZW4gdGhlIE5GUyBzZXJ2ZXIgaXMgaHVuZy4KCiAgIEFib3J0aW5n IHdpdGgg4oCYQy1d4oCZICjigJhhYm9ydC1yZWN1cnNpdmUtZWRpdOKAmSkgaXMgdXNlZCB0byBn ZXQgb3V0IG9mIGEKcmVjdXJzaXZlIGVkaXRpbmcgbGV2ZWwgYW5kIGNhbmNlbCB0aGUgY29tbWFu ZCB3aGljaCBpbnZva2VkIGl0LgpRdWl0dGluZyB3aXRoIOKAmEMtZ+KAmSBkb2VzIG5vdCBkbyB0 aGlzLCBhbmQgY291bGQgbm90IGRvIHRoaXMsIGJlY2F1c2UgaXQKaXMgdXNlZCB0byBjYW5jZWwg YSBwYXJ0aWFsbHkgdHlwZWQgY29tbWFuZCBfd2l0aGluXyB0aGUgcmVjdXJzaXZlCmVkaXRpbmcg bGV2ZWwuICBCb3RoIG9wZXJhdGlvbnMgYXJlIHVzZWZ1bC4gIEZvciBleGFtcGxlLCBpZiB5b3Ug YXJlIGluCmEgcmVjdXJzaXZlIGVkaXQgYW5kIHR5cGUg4oCYQy11IDjigJkgdG8gZW50ZXIgYSBu dW1lcmljIGFyZ3VtZW50LCB5b3UgY2FuCmNhbmNlbCB0aGF0IGFyZ3VtZW50IHdpdGgg4oCYQy1n 4oCZIGFuZCByZW1haW4gaW4gdGhlIHJlY3Vyc2l2ZSBlZGl0LgoKICAgVGhlIHNlcXVlbmNlIOKA mDxFU0M+IDxFU0M+IDxFU0M+4oCZICjigJhrZXlib2FyZC1lc2NhcGUtcXVpdOKAmSkgY2FuIGVp dGhlcgpxdWl0IG9yIGFib3J0LiAgKFdlIGRlZmluZWQgaXQgdGhpcyB3YXkgYmVjYXVzZSA8RVND PiBtZWFucyDigJxnZXQgb3V04oCdIGluCm1hbnkgUEMgcHJvZ3JhbXMuKSAgSXQgY2FuIGNhbmNl bCBhIHByZWZpeCBhcmd1bWVudCwgY2xlYXIgYSBzZWxlY3RlZApyZWdpb24sIG9yIGdldCBvdXQg b2YgYSBRdWVyeSBSZXBsYWNlLCBsaWtlIOKAmEMtZ+KAmS4gIEl0IGNhbiBnZXQgb3V0IG9mCnRo ZSBtaW5pYnVmZmVyIG9yIGEgcmVjdXJzaXZlIGVkaXQsIGxpa2Ug4oCYQy1d4oCZLiAgSXQgY2Fu IGFsc28gZ2V0IG91dCBvZgpzcGxpdHRpbmcgdGhlIGZyYW1lIGludG8gbXVsdGlwbGUgd2luZG93 cywgYXMgd2l0aCDigJhDLXggMeKAmS4gIE9uZSB0aGluZwppdCBjYW5ub3QgZG8sIGhvd2V2ZXIs IGlzIHN0b3AgYSBjb21tYW5kIHRoYXQgaXMgcnVubmluZy4gIFRoYXTigJlzCmJlY2F1c2UgaXQg ZXhlY3V0ZXMgYXMgYW4gb3JkaW5hcnkgY29tbWFuZCwgYW5kIEVtYWNzIGRvZXNu4oCZdCBub3Rp Y2UgaXQKdW50aWwgaXQgaXMgcmVhZHkgZm9yIHRoZSBuZXh0IGNvbW1hbmQuCgogICBUaGUgY29t bWFuZCDigJhNLXggdG9wLWxldmVs4oCZIGlzIGVxdWl2YWxlbnQgdG8gZW5vdWdoIOKAmEMtXeKA mSBjb21tYW5kcyB0bwpnZXQgeW91IG91dCBvZiBhbGwgdGhlIGxldmVscyBvZiByZWN1cnNpdmUg ZWRpdHMgdGhhdCB5b3UgYXJlIGluOyBpdAphbHNvIGV4aXRzIHRoZSBtaW5pYnVmZmVyIGlmIGl0 IGlzIGFjdGl2ZS4gIOKAmEMtXeKAmSBnZXRzIHlvdSBvdXQgb25lIGxldmVsCmF0IGEgdGltZSwg YnV0IOKAmE0teCB0b3AtbGV2ZWzigJkgZ29lcyBvdXQgYWxsIGxldmVscyBhdCBvbmNlLiAgQm90 aCDigJhDLV3igJkKYW5kIOKAmE0teCB0b3AtbGV2ZWzigJkgYXJlIGxpa2UgYWxsIG90aGVyIGNv bW1hbmRzLCBhbmQgdW5saWtlIOKAmEMtZ+KAmSwgaW4KdGhhdCB0aGV5IHRha2UgZWZmZWN0IG9u bHkgd2hlbiBFbWFjcyBpcyByZWFkeSBmb3IgYSBjb21tYW5kLiAg4oCYQy1d4oCZIGlzCmFuIG9y ZGluYXJ5IGtleSBhbmQgaGFzIGl0cyBtZWFuaW5nIG9ubHkgYmVjYXVzZSBvZiBpdHMgYmluZGlu ZyBpbiB0aGUKa2V5bWFwLiAgKk5vdGUgUmVjdXJzaXZlIEVkaXQ6Oi4KCiAgIOKAmEMtL+KAmSAo 4oCYdW5kb+KAmSkgaXMgbm90IHN0cmljdGx5IHNwZWFraW5nIGEgd2F5IG9mIGNhbmNlbGluZyBh IGNvbW1hbmQsCmJ1dCB5b3UgY2FuIHRoaW5rIG9mIGl0IGFzIGNhbmNlbGluZyBhIGNvbW1hbmQg dGhhdCBhbHJlYWR5IGZpbmlzaGVkCmV4ZWN1dGluZy4gICpOb3RlIFVuZG86OiwgZm9yIG1vcmUg aW5mb3JtYXRpb24gYWJvdXQgdGhlIHVuZG8gZmFjaWxpdHkuCgoKKiA1MSBEZWFsaW5nIHdpdGgg RW1hY3MgVHJvdWJsZQoKVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8gcmVjb2duaXplIGFu ZCBkZWFsIHdpdGggc2l0dWF0aW9ucyBpbgp3aGljaCBFbWFjcyBkb2VzIG5vdCB3b3JrIGFzIHlv dSBleHBlY3QsIHN1Y2ggYXMga2V5Ym9hcmQgY29kZSBtaXh1cHMsCmdhcmJsZWQgZGlzcGxheXMs IHJ1bm5pbmcgb3V0IG9mIG1lbW9yeSwgYW5kIGNyYXNoZXMgYW5kIGhhbmdzLgoKICAgKk5vdGUg QnVnczo6LCBmb3Igd2hhdCB0byBkbyB3aGVuIHlvdSB0aGluayB5b3UgaGF2ZSBmb3VuZCBhIGJ1 ZyBpbgpFbWFjcy4KCisgTWVudToKCiAgLSBERUwgRG9lcyBOb3QgRGVsZXRlOjogICBXaGF0IHRv IGRvIGlmIDxERUw+IGRvZXNu4oCZdCBkZWxldGUuCiAgLSBTdHVjayBSZWN1cnNpdmU6OiAgICAg ICDigJlbLi4uXeKAmSBpbiBtb2RlIGxpbmUgYXJvdW5kIHRoZSBwYXJlbnRoZXNlcy4KICAtIFNj cmVlbiBHYXJibGVkOjogICAgICAgIEdhcmJhZ2Ugb24gdGhlIHNjcmVlbi4KICAtIFRleHQgR2Fy YmxlZDo6ICAgICAgICAgIEdhcmJhZ2UgaW4gdGhlIHRleHQuCiAgLSBNZW1vcnkgRnVsbDo6ICAg ICAgICAgICBIb3cgdG8gY29wZSB3aGVuIHlvdSBydW4gb3V0IG9mIG1lbW9yeS4KICAtIENyYXNo aW5nOjogICAgICAgICAgICAgIFdoYXQgRW1hY3MgZG9lcyB3aGVuIGl0IGNyYXNoZXMuCiAgLSBB ZnRlciBhIENyYXNoOjogICAgICAgICBSZWNvdmVyaW5nIGVkaXRpbmcgaW4gYW4gRW1hY3Mgc2Vz c2lvbiB0aGF0IGNyYXNoZWQuCiAgLSBFbWVyZ2VuY3kgRXNjYXBlOjogICAgICBXaGF0IHRvIGRv IGlmIEVtYWNzIHN0b3BzIHJlc3BvbmRpbmcuCgoKKiogNTEuMSBJZiA8REVMPiBGYWlscyB0byBE ZWxldGUKCkV2ZXJ5IGtleWJvYXJkIGhhcyBhIGxhcmdlIGtleSwgdXN1YWxseSBsYWJlbGVkIDxC QUNLU1BBQ0U+LCB3aGljaCBpcwpvcmRpbmFyaWx5IHVzZWQgdG8gZXJhc2UgdGhlIGxhc3QgY2hh cmFjdGVyIHRoYXQgeW91IHR5cGVkLiAgSW4gRW1hY3MsCnRoaXMga2V5IGlzIHN1cHBvc2VkIHRv IGJlIGVxdWl2YWxlbnQgdG8gPERFTD4uCgogICBXaGVuIEVtYWNzIHN0YXJ0cyB1cCBvbiBhIGdy YXBoaWNhbCBkaXNwbGF5LCBpdCBkZXRlcm1pbmVzCmF1dG9tYXRpY2FsbHkgd2hpY2gga2V5IHNo b3VsZCBiZSA8REVMPi4gIEluIHNvbWUgdW51c3VhbCBjYXNlcywgRW1hY3MKZ2V0cyB0aGUgd3Jv bmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgc3lzdGVtLCBhbmQgPEJBQ0tTUEFDRT4gZW5kcyB1cApk ZWxldGluZyBmb3J3YXJkcyBpbnN0ZWFkIG9mIGJhY2t3YXJkcy4KCiAgIFNvbWUga2V5Ym9hcmRz IGFsc28gaGF2ZSBhIDxEZWxldGU+IGtleSwgd2hpY2ggaXMgb3JkaW5hcmlseSB1c2VkIHRvCmRl bGV0ZSBmb3J3YXJkcy4gIElmIHRoaXMga2V5IGRlbGV0ZXMgYmFja3dhcmQgaW4gRW1hY3MsIHRo YXQgdG9vCnN1Z2dlc3RzIEVtYWNzIGdvdCB0aGUgd3JvbmcgaW5mb3JtYXRpb27igJRidXQgaW4g dGhlIG9wcG9zaXRlIHNlbnNlLgoKICAgT24gYSB0ZXh0IHRlcm1pbmFsLCBpZiB5b3UgZmluZCB0 aGF0IDxCQUNLU1BBQ0U+IHByb21wdHMgZm9yIGEgSGVscApjb21tYW5kLCBsaWtlIOKAmENvbnRy b2wtaOKAmSwgaW5zdGVhZCBvZiBkZWxldGluZyBhIGNoYXJhY3RlciwgaXQgbWVhbnMKdGhhdCBr ZXkgaXMgYWN0dWFsbHkgc2VuZGluZyB0aGUg4oCYQlPigJkgY2hhcmFjdGVyLiAgRW1hY3Mgb3Vn aHQgdG8gYmUKdHJlYXRpbmcgPEJTPiBhcyA8REVMPiwgYnV0IGl0IGlzbuKAmXQuCgogICBJbiBh bGwgb2YgdGhvc2UgY2FzZXMsIHRoZSBpbW1lZGlhdGUgcmVtZWR5IGlzIHRoZSBzYW1lOiB1c2Ug dGhlCmNvbW1hbmQg4oCYTS14IG5vcm1hbC1lcmFzZS1pcy1iYWNrc3BhY2UtbW9kZeKAmS4gIFRo aXMgdG9nZ2xlcyBiZXR3ZWVuIHRoZQp0d28gbW9kZXMgdGhhdCBFbWFjcyBzdXBwb3J0cyBmb3Ig aGFuZGxpbmcgPERFTD4sIHNvIGlmIEVtYWNzIHN0YXJ0cyBpbgp0aGUgd3JvbmcgbW9kZSwgdGhp cyBzaG91bGQgc3dpdGNoIHRvIHRoZSByaWdodCBtb2RlLiAgT24gYSB0ZXh0CnRlcm1pbmFsLCBp ZiB5b3Ugd2FudCB0byBhc2sgZm9yIGhlbHAgd2hlbiA8QlM+IGlzIHRyZWF0ZWQgYXMgPERFTD4s IHVzZQo8RjE+IGluc3RlYWQgb2Yg4oCYQy1o4oCZOyDigJhDLT/igJkgbWF5IGFsc28gd29yaywg aWYgaXQgc2VuZHMgY2hhcmFjdGVyIGNvZGUKMTI3LgoKICAgVG8gZml4IHRoZSBwcm9ibGVtIGlu IGV2ZXJ5IEVtYWNzIHNlc3Npb24sIHB1dCBvbmUgb2YgdGhlIGZvbGxvd2luZwpsaW5lcyBpbnRv IHlvdXIgaW5pdGlhbGl6YXRpb24gZmlsZSAoKm5vdGUgSW5pdCBGaWxlOjopLiAgRm9yIHRoZSBm aXJzdApjYXNlIGFib3ZlLCB3aGVyZSA8QkFDS1NQQUNFPiBkZWxldGVzIGZvcndhcmRzIGluc3Rl YWQgb2YgYmFja3dhcmRzLCB1c2UKdGhpcyBsaW5lIHRvIG1ha2UgPEJBQ0tTUEFDRT4gYWN0IGFz IDxERUw+OgoKICAgICAobm9ybWFsLWVyYXNlLWlzLWJhY2tzcGFjZS1tb2RlIDApCgpGb3IgdGhl IG90aGVyIHR3byBjYXNlcywgdXNlIHRoaXMgbGluZToKCiAgICAgKG5vcm1hbC1lcmFzZS1pcy1i YWNrc3BhY2UtbW9kZSAxKQoKICAgQW5vdGhlciB3YXkgdG8gZml4IHRoZSBwcm9ibGVtIGZvciBl dmVyeSBFbWFjcyBzZXNzaW9uIGlzIHRvCmN1c3RvbWl6ZSB0aGUgdmFyaWFibGUg4oCYbm9ybWFs LWVyYXNlLWlzLWJhY2tzcGFjZeKAmTogdGhlIHZhbHVlIOKAmHTigJkKc3BlY2lmaWVzIHRoZSBt b2RlIHdoZXJlIDxCUz4gb3IgPEJBQ0tTUEFDRT4gaXMgPERFTD4sIGFuZCDigJhuaWzigJkKc3Bl Y2lmaWVzIHRoZSBvdGhlciBtb2RlLiAgKk5vdGUgRWFzeSBDdXN0b21pemF0aW9uOjouCgoKKiog NTEuMiBSZWN1cnNpdmUgRWRpdGluZyBMZXZlbHMKClJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVscyBh cmUgaW1wb3J0YW50IGFuZCB1c2VmdWwgZmVhdHVyZXMgb2YgRW1hY3MsIGJ1dAp0aGV5IGNhbiBz ZWVtIGxpa2UgbWFsZnVuY3Rpb25zIGlmIHlvdSBkbyBub3QgdW5kZXJzdGFuZCB0aGVtLgoKICAg SWYgdGhlIG1vZGUgbGluZSBoYXMgc3F1YXJlIGJyYWNrZXRzIOKAmFvigKZd4oCZIGFyb3VuZCB0 aGUgcGFyZW50aGVzZXMKdGhhdCBjb250YWluIHRoZSBuYW1lcyBvZiB0aGUgbWFqb3IgYW5kIG1p bm9yIG1vZGVzLCB5b3UgaGF2ZSBlbnRlcmVkIGEKcmVjdXJzaXZlIGVkaXRpbmcgbGV2ZWwuICBJ ZiB5b3UgZGlkIG5vdCBkbyB0aGlzIG9uIHB1cnBvc2UsIG9yIGlmIHlvdQpkb27igJl0IHVuZGVy c3RhbmQgd2hhdCB0aGF0IG1lYW5zLCB5b3Ugc2hvdWxkIGp1c3QgZ2V0IG91dCBvZiB0aGUKcmVj dXJzaXZlIGVkaXRpbmcgbGV2ZWwuICBUbyBkbyBzbywgdHlwZSDigJhNLXggdG9wLWxldmVs4oCZ LiAgKk5vdGUKUmVjdXJzaXZlIEVkaXQ6Oi4KCgoqKiA1MS4zIEdhcmJhZ2Ugb24gdGhlIFNjcmVl bgoKSWYgdGhlIHRleHQgb24gYSB0ZXh0IHRlcm1pbmFsIGxvb2tzIHdyb25nLCB0aGUgZmlyc3Qg dGhpbmcgdG8gZG8gaXMgc2VlCndoZXRoZXIgaXQgaXMgd3JvbmcgaW4gdGhlIGJ1ZmZlci4gIFR5 cGUg4oCYQy1s4oCZICjigJhyZWNlbnRlci10b3AtYm90dG9t4oCZKQp0byByZWRpc3BsYXkgdGhl IGVudGlyZSBzY3JlZW4uICBJZiB0aGUgc2NyZWVuIGFwcGVhcnMgY29ycmVjdCBhZnRlcgp0aGlz LCB0aGUgcHJvYmxlbSB3YXMgZW50aXJlbHkgaW4gdGhlIHByZXZpb3VzIHNjcmVlbiB1cGRhdGUu CihPdGhlcndpc2UsIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb24uKQoKICAgRGlzcGxheSB1cGRh dGluZyBwcm9ibGVtcyBvZnRlbiByZXN1bHQgZnJvbSBhbiBpbmNvcnJlY3QgdGVybWluZm8KZW50 cnkgZm9yIHRoZSB0ZXJtaW5hbCB5b3UgYXJlIHVzaW5nLiAgVGhlIGZpbGUg4oCYZXRjL1RFUk1T 4oCZIGluIHRoZSBFbWFjcwpkaXN0cmlidXRpb24gZ2l2ZXMgdGhlIGZpeGVzIGZvciBrbm93biBw cm9ibGVtcyBvZiB0aGlzIHNvcnQuICDigJhJTlNUQUxM4oCZCmNvbnRhaW5zIGdlbmVyYWwgYWR2 aWNlIGZvciB0aGVzZSBwcm9ibGVtcyBpbiBvbmUgb2YgaXRzIHNlY3Rpb25zLiAgSWYKeW91IHNl ZW0gdG8gYmUgdXNpbmcgdGhlIHJpZ2h0IHRlcm1pbmZvIGVudHJ5LCBpdCBpcyBwb3NzaWJsZSB0 aGF0IHRoZXJlCmlzIGEgYnVnIGluIHRoZSB0ZXJtaW5mbyBlbnRyeSwgb3IgYSBidWcgaW4gRW1h Y3MgdGhhdCBhcHBlYXJzIGZvcgpjZXJ0YWluIHRlcm1pbmFsIHR5cGVzLgoKCioqIDUxLjQgR2Fy YmFnZSBpbiB0aGUgVGV4dAoKSWYg4oCYQy1s4oCZIHNob3dzIHRoYXQgdGhlIHRleHQgaXMgd3Jv bmcsIGZpcnN0IHR5cGUg4oCYQy1oIGzigJkKKOKAmHZpZXctbG9zc2FnZeKAmSkgdG8gc2VlIHdo YXQgY29tbWFuZHMgeW91IHR5cGVkIHRvIHByb2R1Y2UgdGhlIG9ic2VydmVkCnJlc3VsdHMuICBU aGVuIHRyeSB1bmRvaW5nIHRoZSBjaGFuZ2VzIHN0ZXAgYnkgc3RlcCB1c2luZyDigJhDLXggdeKA mQoo4oCYdW5kb+KAmSksIHVudGlsIGl0IGdldHMgYmFjayB0byBhIHN0YXRlIHlvdSBjb25zaWRl ciBjb3JyZWN0LgoKICAgSWYgYSBsYXJnZSBwb3J0aW9uIG9mIHRleHQgYXBwZWFycyB0byBiZSBt aXNzaW5nIGF0IHRoZSBiZWdpbm5pbmcgb3IKZW5kIG9mIHRoZSBidWZmZXIsIGNoZWNrIGZvciB0 aGUgd29yZCDigJhOYXJyb3figJkgaW4gdGhlIG1vZGUgbGluZS4gIElmIGl0CmFwcGVhcnMsIHRo ZSB0ZXh0IHlvdSBkb27igJl0IHNlZSBpcyBwcm9iYWJseSBzdGlsbCBwcmVzZW50LCBidXQKdGVt cG9yYXJpbHkgb2ZmLWxpbWl0cy4gIFRvIG1ha2UgaXQgYWNjZXNzaWJsZSBhZ2FpbiwgdHlwZSDi gJhDLXggbiB34oCZCijigJh3aWRlbuKAmSkuICAqTm90ZSBOYXJyb3dpbmc6Oi4KCgoqKiA1MS41 IFJ1bm5pbmcgb3V0IG9mIE1lbW9yeQoKSWYgeW91IGdldCB0aGUgZXJyb3IgbWVzc2FnZSDigJhW aXJ0dWFsIG1lbW9yeSBleGNlZWRlZOKAmSwgc2F2ZSB5b3VyCm1vZGlmaWVkIGJ1ZmZlcnMgd2l0 aCDigJhDLXggc+KAmSAo4oCYc2F2ZS1zb21lLWJ1ZmZlcnPigJkpLiAgVGhpcyBtZXRob2Qgb2YK c2F2aW5nIHRoZW0gaGFzIHRoZSBzbWFsbGVzdCBuZWVkIGZvciBhZGRpdGlvbmFsIG1lbW9yeS4g IEVtYWNzIGtlZXBzIGEKcmVzZXJ2ZSBvZiBtZW1vcnkgd2hpY2ggaXQgbWFrZXMgYXZhaWxhYmxl IHdoZW4gdGhpcyBlcnJvciBoYXBwZW5zOyB0aGF0CnNob3VsZCBiZSBlbm91Z2ggdG8gZW5hYmxl IOKAmEMteCBz4oCZIHRvIGNvbXBsZXRlIGl0cyB3b3JrLiAgV2hlbiB0aGUKcmVzZXJ2ZSBoYXMg YmVlbiB1c2VkLCDigJghTUVNIEZVTEwh4oCZIGFwcGVhcnMgYXQgdGhlIGJlZ2lubmluZyBvZiB0 aGUgbW9kZQpsaW5lLCBpbmRpY2F0aW5nIHRoZXJlIGlzIG5vIG1vcmUgcmVzZXJ2ZS4KCiAgIE9u Y2UgeW91IGhhdmUgc2F2ZWQgeW91ciBtb2RpZmllZCBidWZmZXJzLCB5b3UgY2FuIGV4aXQgdGhp cyBFbWFjcwpzZXNzaW9uIGFuZCBzdGFydCBhbm90aGVyLCBvciB5b3UgY2FuIHVzZSDigJhNLXgg a2lsbC1zb21lLWJ1ZmZlcnPigJkgdG8KZnJlZSBzcGFjZSBpbiB0aGUgY3VycmVudCBFbWFjcyBq b2IuICBJZiB0aGlzIGZyZWVzIHVwIHN1ZmZpY2llbnQgc3BhY2UsCkVtYWNzIHdpbGwgcmVmaWxs IGl0cyBtZW1vcnkgcmVzZXJ2ZSwgYW5kIOKAmCFNRU0gRlVMTCHigJkgd2lsbCBkaXNhcHBlYXIK ZnJvbSB0aGUgbW9kZSBsaW5lLiAgVGhhdCBtZWFucyB5b3UgY2FuIHNhZmVseSBnbyBvbiBlZGl0 aW5nIGluIHRoZSBzYW1lCkVtYWNzIHNlc3Npb24uCgogICBEbyBub3QgdXNlIOKAmE0teCBidWZm ZXItbWVudeKAmSB0byBzYXZlIG9yIGtpbGwgYnVmZmVycyB3aGVuIHlvdSBydW4gb3V0Cm9mIG1l bW9yeSwgYmVjYXVzZSB0aGUgQnVmZmVyIE1lbnUgbmVlZHMgYSBmYWlyIGFtb3VudCBvZiBtZW1v cnkgaXRzZWxmLAphbmQgdGhlIHJlc2VydmUgc3VwcGx5IG1heSBub3QgYmUgZW5vdWdoLgoKCioq IDUxLjYgV2hlbiBFbWFjcyBDcmFzaGVzCgpFbWFjcyBpcyBub3Qgc3VwcG9zZWQgdG8gY3Jhc2gs IGJ1dCBpZiBpdCBkb2VzLCBpdCBwcm9kdWNlcyBhICJjcmFzaApyZXBvcnQiIHByaW9yIHRvIGV4 aXRpbmcuICBUaGUgY3Jhc2ggcmVwb3J0IGlzIHByaW50ZWQgdG8gdGhlIHN0YW5kYXJkCmVycm9y IHN0cmVhbS4gIElmIEVtYWNzIHdhcyBzdGFydGVkIGZyb20gYSBncmFwaGljYWwgZGVza3RvcCBv biBhIEdOVSBvcgpVbml4IHN5c3RlbSwgdGhlIHN0YW5kYXJkIGVycm9yIHN0cmVhbSBpcyBjb21t b25seSByZWRpcmVjdGVkIHRvIGEgZmlsZQpzdWNoIGFzIOKAmH4vLnhzZXNzaW9uLWVycm9yc+KA mSwgc28geW91IGNhbiBsb29rIGZvciB0aGUgY3Jhc2ggcmVwb3J0CnRoZXJlLiAgT24gTVMtV2lu ZG93cywgdGhlIGNyYXNoIHJlcG9ydCBpcyB3cml0dGVuIHRvIGEgZmlsZSBuYW1lZArigJhlbWFj c19iYWNrdHJhY2UudHh04oCZIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBvZiB0aGUgRW1hY3Mg cHJvY2VzcywgaW4KYWRkaXRpb24gdG8gdGhlIHN0YW5kYXJkIGVycm9yIHN0cmVhbS4KCiAgIFRo ZSBmb3JtYXQgb2YgdGhlIGNyYXNoIHJlcG9ydCBkZXBlbmRzIG9uIHRoZSBwbGF0Zm9ybS4gIE9u IHNvbWUKcGxhdGZvcm1zLCBzdWNoIGFzIHRob3NlIHVzaW5nIHRoZSBHTlUgQyBMaWJyYXJ5LCB0 aGUgY3Jhc2ggcmVwb3J0CmluY2x1ZGVzIGEgImJhY2t0cmFjZSIgZGVzY3JpYmluZyB0aGUgZXhl Y3V0aW9uIHN0YXRlIHByaW9yIHRvIGNyYXNoaW5nLAp3aGljaCBjYW4gYmUgdXNlZCB0byBoZWxw IGRlYnVnIHRoZSBjcmFzaC4gIEhlcmUgaXMgYW4gZXhhbXBsZSBmb3IgYSBHTlUKc3lzdGVtOgoK ICAgICBGYXRhbCBlcnJvciAxMTogU2VnbWVudGF0aW9uIGZhdWx0CiAgICAgQmFja3RyYWNlOgog ICAgIGVtYWNzWzB4NTA5NGU0XQogICAgIGVtYWNzWzB4NGVkM2U2XQogICAgIGVtYWNzWzB4NGVk NTA0XQogICAgIC9saWI2NC9saWJwdGhyZWFkLnNvLjBbMHgzNzUyMjBlZmUwXQogICAgIC9saWI2 NC9saWJwdGhyZWFkLnNvLjAocmVhZCsweGUpWzB4Mzc1MjIwZTA4ZV0KICAgICBlbWFjc1sweDUw OWFmNl0KICAgICBlbWFjc1sweDVhY2MyNl0KICAgICDigKYKClRoZSBudW1iZXIg4oCYMTHigJkg aXMgdGhlIHN5c3RlbSBzaWduYWwgbnVtYmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlCmNyYXNo4oCU aW4gdGhpcyBjYXNlIGEgc2VnbWVudGF0aW9uIGZhdWx0LiAgVGhlIGhleGFkZWNpbWFsIG51bWJl cnMgYXJlCnByb2dyYW0gYWRkcmVzc2VzLCB3aGljaCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIHNv dXJjZSBjb2RlIGxpbmVzIHVzaW5nCmEgZGVidWdnaW5nIHRvb2wuICBGb3IgZXhhbXBsZSwgdGhl IEdEQiBjb21tYW5kIOKAmGxpc3QgKjB4NTA5YWY24oCZIHByaW50cwp0aGUgc291cmNlLWNvZGUg bGluZXMgY29ycmVzcG9uZGluZyB0byB0aGUg4oCYZW1hY3NbMHg1MDlhZjZd4oCZIGVudHJ5LiAg SWYKeW91ciBzeXN0ZW0gaGFzIHRoZSDigJhhZGRyMmxpbmXigJkgdXRpbGl0eSwgdGhlIGZvbGxv d2luZyBzaGVsbCBjb21tYW5kCm91dHB1dHMgYSBiYWNrdHJhY2Ugd2l0aCBzb3VyY2UtY29kZSBs aW5lIG51bWJlcnM6CgogICAgIHNlZCAtbiAncy8uKlxbXCguKlwpXSQvXDEvcCcgQkFDS1RSQUNF IHwKICAgICAgIGFkZHIybGluZSAtQyAtZiAtaSAtcCAtZSBCSU5ESVIvRU1BQ1MtQklOQVJZCgpI ZXJlLCBCQUNLVFJBQ0UgaXMgdGhlIG5hbWUgb2YgYSB0ZXh0IGZpbGUgY29udGFpbmluZyBhIGNv cHkgb2YgdGhlCmJhY2t0cmFjZSwgQklORElSIGlzIHRoZSBuYW1lIG9mIHRoZSBkaXJlY3Rvcnkg dGhhdCBjb250YWlucyB0aGUgRW1hY3MKZXhlY3V0YWJsZSwgYW5kIEVNQUNTLUJJTkFSWSBpcyB0 aGUgbmFtZSBvZiB0aGUgRW1hY3MgZXhlY3V0YWJsZSBmaWxlLApub3JtYWxseSDigJhlbWFjc+KA mSBvbiBHTlUgYW5kIFVuaXggc3lzdGVtcyBhbmQg4oCYZW1hY3MuZXhl4oCZIG9uIE1TLVdpbmRv d3MKYW5kIE1TLURPUy4gIE9taXQgdGhlIOKAmC1w4oCZIG9wdGlvbiBpZiB5b3VyIHZlcnNpb24g b2Yg4oCYYWRkcjJsaW5l4oCZIGlzIHRvbwpvbGQgdG8gaGF2ZSBpdC4KCiAgIE9wdGlvbmFsbHks IEVtYWNzIGNhbiBnZW5lcmF0ZSBhICJjb3JlIGR1bXAiIHdoZW4gaXQgY3Jhc2hlcywgb24Kc3lz dGVtcyB0aGF0IHN1cHBvcnQgY29yZSBmaWxlcy4gIEEgY29yZSBkdW1wIGlzIGEgZmlsZSBjb250 YWluaW5nCnZvbHVtaW5vdXMgZGF0YSBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIHByb2dyYW0gcHJp b3IgdG8gdGhlIGNyYXNoLAp1c3VhbGx5IGV4YW1pbmVkIGJ5IGxvYWRpbmcgaXQgaW50byBhIGRl YnVnZ2VyIHN1Y2ggYXMgR0RCLiAgT24gbWFueQpwbGF0Zm9ybXMsIGNvcmUgZHVtcHMgYXJlIGRp c2FibGVkIGJ5IGRlZmF1bHQsIGFuZCB5b3UgbXVzdCBleHBsaWNpdGx5CmVuYWJsZSB0aGVtIGJ5 IHJ1bm5pbmcgdGhlIHNoZWxsIGNvbW1hbmQg4oCYdWxpbWl0IC1jIHVubGltaXRlZOKAmSAoZS5n LiwgaW4KeW91ciBzaGVsbCBzdGFydHVwIHNjcmlwdCkuCgoKKiogNTEuNyBSZWNvdmVyeSBBZnRl ciBhIENyYXNoCgpJZiBFbWFjcyBvciB0aGUgY29tcHV0ZXIgY3Jhc2hlcywgeW91IGNhbiByZWNv dmVyIHRoZSBmaWxlcyB5b3Ugd2VyZQplZGl0aW5nIGF0IHRoZSB0aW1lIG9mIHRoZSBjcmFzaCBm cm9tIHRoZWlyIGF1dG8tc2F2ZSBmaWxlcy4gIFRvIGRvCnRoaXMsIHN0YXJ0IEVtYWNzIGFnYWlu IGFuZCB0eXBlIHRoZSBjb21tYW5kIOKAmE0teCByZWNvdmVyLXNlc3Npb27igJkuCgogICBUaGlz IGNvbW1hbmQgaW5pdGlhbGx5IGRpc3BsYXlzIGEgYnVmZmVyIHdoaWNoIGxpc3RzIGludGVycnVw dGVkCnNlc3Npb24gZmlsZXMsIGVhY2ggd2l0aCBpdHMgZGF0ZS4gIFlvdSBtdXN0IGNob29zZSB3 aGljaCBzZXNzaW9uIHRvCnJlY292ZXIgZnJvbS4gIFR5cGljYWxseSB0aGUgb25lIHlvdSB3YW50 IGlzIHRoZSBtb3N0IHJlY2VudCBvbmUuICBNb3ZlCnBvaW50IHRvIHRoZSBvbmUgeW91IGNob29z ZSwgYW5kIHR5cGUg4oCYQy1jIEMtY+KAmS4KCiAgIFRoZW4g4oCYcmVjb3Zlci1zZXNzaW9u4oCZ IGNvbnNpZGVycyBlYWNoIG9mIHRoZSBmaWxlcyB0aGF0IHlvdSB3ZXJlCmVkaXRpbmcgZHVyaW5n IHRoYXQgc2Vzc2lvbjsgZm9yIGVhY2ggc3VjaCBmaWxlLCBpdCBhc2tzIHdoZXRoZXIgdG8KcmVj b3ZlciB0aGF0IGZpbGUuICBJZiB5b3UgYW5zd2VyIOKAmHnigJkgZm9yIGEgZmlsZSwgaXQgc2hv d3MgdGhlIGRhdGVzIG9mCnRoYXQgZmlsZSBhbmQgaXRzIGF1dG8tc2F2ZSBmaWxlLCB0aGVuIGFz a3Mgb25jZSBhZ2FpbiB3aGV0aGVyIHRvCnJlY292ZXIgdGhhdCBmaWxlLiAgRm9yIHRoZSBzZWNv bmQgcXVlc3Rpb24sIHlvdSBtdXN0IGNvbmZpcm0gd2l0aArigJh5ZXPigJkuICBJZiB5b3UgZG8s IEVtYWNzIHZpc2l0cyB0aGUgZmlsZSBidXQgZ2V0cyB0aGUgdGV4dCBmcm9tIHRoZQphdXRvLXNh dmUgZmlsZS4KCiAgIFdoZW4g4oCYcmVjb3Zlci1zZXNzaW9u4oCZIGlzIGRvbmUsIHRoZSBmaWxl cyB5b3XigJl2ZSBjaG9zZW4gdG8gcmVjb3ZlcgphcmUgcHJlc2VudCBpbiBFbWFjcyBidWZmZXJz LiAgWW91IHNob3VsZCB0aGVuIHNhdmUgdGhlbS4gIE9ubHkKdGhpc+KAlHNhdmluZyB0aGVt4oCU dXBkYXRlcyB0aGUgZmlsZXMgdGhlbXNlbHZlcy4KCiAgIEFzIGEgbGFzdCByZXNvcnQsIGlmIHlv dSBoYWQgYnVmZmVycyB3aXRoIGNvbnRlbnQgd2hpY2ggd2VyZSBub3QKYXNzb2NpYXRlZCB3aXRo IGFueSBmaWxlcywgb3IgaWYgdGhlIGF1dG9zYXZlIHdhcyBub3QgcmVjZW50IGVub3VnaCB0bwpo YXZlIHJlY29yZGVkIGltcG9ydGFudCBjaGFuZ2VzLCB5b3UgY2FuIHVzZSB0aGUg4oCYZXRjL2Vt YWNzLWJ1ZmZlci5nZGLigJkKc2NyaXB0IHdpdGggR0RCICh0aGUgR05VIERlYnVnZ2VyKSB0byBy ZXRyaWV2ZSB0aGVtIGZyb20gYSBjb3JlCmR1bXDigJNwcm92aWRlZCB0aGF0IGEgY29yZSBkdW1w IHdhcyBzYXZlZCwgYW5kIHRoYXQgdGhlIEVtYWNzIGV4ZWN1dGFibGUKd2FzIG5vdCBzdHJpcHBl ZCBvZiBpdHMgZGVidWdnaW5nIHN5bWJvbHMuCgogICBBcyBzb29uIGFzIHlvdSBnZXQgdGhlIGNv cmUgZHVtcCwgcmVuYW1lIGl0IHRvIGFub3RoZXIgbmFtZSBzdWNoIGFzCuKAmGNvcmUuZW1hY3Pi gJksIHNvIHRoYXQgYW5vdGhlciBjcmFzaCB3b27igJl0IG92ZXJ3cml0ZSBpdC4KCiAgIFRvIHVz ZSB0aGlzIHNjcmlwdCwgcnVuIOKAmGdkYuKAmSB3aXRoIHRoZSBmaWxlIG5hbWUgb2YgeW91ciBF bWFjcwpleGVjdXRhYmxlIGFuZCB0aGUgZmlsZSBuYW1lIG9mIHRoZSBjb3JlIGR1bXAsIGUuZy4s IOKAmGdkYiAvdXNyL2Jpbi9lbWFjcwpjb3JlLmVtYWNz4oCZLiAgQXQgdGhlIOKAmChnZGIp4oCZ IHByb21wdCwgbG9hZCB0aGUgcmVjb3Zlcnkgc2NyaXB0OiDigJhzb3VyY2UKL3Vzci9zcmMvZW1h Y3MvZXRjL2VtYWNzLWJ1ZmZlci5nZGLigJkuICBUaGVuIHR5cGUgdGhlIGNvbW1hbmQK4oCYeWJ1 ZmZlci1saXN04oCZIHRvIHNlZSB3aGljaCBidWZmZXJzIGFyZSBhdmFpbGFibGUuICBGb3IgZWFj aCBidWZmZXIsIGl0Cmxpc3RzIGEgYnVmZmVyIG51bWJlci4gIFRvIHNhdmUgYSBidWZmZXIsIHVz ZSDigJh5c2F2ZS1idWZmZXLigJk7IHlvdQpzcGVjaWZ5IHRoZSBidWZmZXIgbnVtYmVyLCBhbmQg dGhlIGZpbGUgbmFtZSB0byB3cml0ZSB0aGF0IGJ1ZmZlciBpbnRvLgpZb3Ugc2hvdWxkIHVzZSBh IGZpbGUgbmFtZSB3aGljaCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0OyBpZiB0aGUgZmlsZQpkb2Vz IGV4aXN0LCB0aGUgc2NyaXB0IGRvZXMgbm90IG1ha2UgYSBiYWNrdXAgb2YgaXRzIG9sZCBjb250 ZW50cy4KCgoqKiA1MS44IEVtZXJnZW5jeSBFc2NhcGUKCk9uIHRleHQgdGVybWluYWxzLCB0aGUg ImVtZXJnZW5jeSBlc2NhcGUiIGZlYXR1cmUgc3VzcGVuZHMgRW1hY3MKaW1tZWRpYXRlbHkgaWYg eW91IHR5cGUg4oCYQy1n4oCZIGEgc2Vjb25kIHRpbWUgYmVmb3JlIEVtYWNzIGNhbiBhY3R1YWxs eQpyZXNwb25kIHRvIHRoZSBmaXJzdCBvbmUgYnkgcXVpdHRpbmcuICBUaGlzIGlzIHNvIHlvdSBj YW4gYWx3YXlzIGdldCBvdXQKb2YgR05VIEVtYWNzIG5vIG1hdHRlciBob3cgYmFkbHkgaXQgbWln aHQgYmUgaHVuZy4gIFdoZW4gdGhpbmdzIGFyZQp3b3JraW5nIHByb3Blcmx5LCBFbWFjcyByZWNv Z25pemVzIGFuZCBoYW5kbGVzIHRoZSBmaXJzdCDigJhDLWfigJkgc28gZmFzdAp0aGF0IHRoZSBz ZWNvbmQgb25lIHdvbuKAmXQgdHJpZ2dlciBlbWVyZ2VuY3kgZXNjYXBlLiAgSG93ZXZlciwgaWYg c29tZQpwcm9ibGVtIHByZXZlbnRzIEVtYWNzIGZyb20gaGFuZGxpbmcgdGhlIGZpcnN0IOKAmEMt Z+KAmSBwcm9wZXJseSwgdGhlbiB0aGUKc2Vjb25kIG9uZSB3aWxsIGdldCB5b3UgYmFjayB0byB0 aGUgc2hlbGwuCgogICBXaGVuIHlvdSByZXN1bWUgRW1hY3MgYWZ0ZXIgYSBzdXNwZW5zaW9uIGNh dXNlZCBieSBlbWVyZ2VuY3kgZXNjYXBlLAppdCByZXBvcnRzIHRoZSByZXN1bXB0aW9uIGFuZCBh c2tzIGEgcXVlc3Rpb24gb3IgdHdvIGJlZm9yZSBnb2luZyBiYWNrCnRvIHdoYXQgaXQgaGFkIGJl ZW4gZG9pbmc6CgogICAgIEVtYWNzIGlzIHJlc3VtaW5nIGFmdGVyIGFuIGVtZXJnZW5jeSBlc2Nh cGUuCiAgICAgQXV0by1zYXZlPyAoeSBvciBuKQogICAgIEFib3J0IChhbmQgZHVtcCBjb3JlKT8g KHkgb3IgbikKCkFuc3dlciBlYWNoIHF1ZXN0aW9uIHdpdGgg4oCYeeKAmSBvciDigJhu4oCZIGZv bGxvd2VkIGJ5IDxSRVQ+LgoKICAgU2F5aW5nIOKAmHnigJkgdG8g4oCYQXV0by1zYXZlP+KAmSBj YXVzZXMgaW1tZWRpYXRlIGF1dG8tc2F2aW5nIG9mIGFsbAptb2RpZmllZCBidWZmZXJzIGluIHdo aWNoIGF1dG8tc2F2aW5nIGlzIGVuYWJsZWQuICBTYXlpbmcg4oCYbuKAmSBza2lwcwp0aGlzLiAg VGhpcyBxdWVzdGlvbiBpcyBvbWl0dGVkIGlmIEVtYWNzIGlzIGluIGEgc3RhdGUgd2hlcmUgYXV0 by1zYXZpbmcKY2Fubm90IGJlIGRvbmUgc2FmZWx5LgoKICAgU2F5aW5nIOKAmHnigJkgdG8g4oCY QWJvcnQgKGFuZCBkdW1wIGNvcmUpP+KAmSBjYXVzZXMgRW1hY3MgdG8gY3Jhc2gsIGR1bXBpbmcK Y29yZS4gIFRoaXMgaXMgdG8gZW5hYmxlIGEgd2l6YXJkIHRvIGZpZ3VyZSBvdXQgd2h5IEVtYWNz IHdhcyBmYWlsaW5nIHRvCnF1aXQgaW4gdGhlIGZpcnN0IHBsYWNlLiAgRXhlY3V0aW9uIGRvZXMg bm90IGNvbnRpbnVlIGFmdGVyIGEgY29yZSBkdW1wLgoKICAgSWYgeW91IGFuc3dlciB0aGlzIHF1 ZXN0aW9uIOKAmG7igJksIEVtYWNzIGV4ZWN1dGlvbiByZXN1bWVzLiAgV2l0aCBsdWNrLApFbWFj cyB3aWxsIHVsdGltYXRlbHkgZG8gdGhlIHJlcXVlc3RlZCBxdWl0LiAgSWYgbm90LCBlYWNoIHN1 YnNlcXVlbnQK4oCYQy1n4oCZIGludm9rZXMgZW1lcmdlbmN5IGVzY2FwZSBhZ2Fpbi4KCiAgIElm IEVtYWNzIGlzIG5vdCByZWFsbHkgaHVuZywganVzdCBzbG93LCB5b3UgbWF5IGludm9rZSB0aGUg ZG91YmxlCuKAmEMtZ+KAmSBmZWF0dXJlIHdpdGhvdXQgcmVhbGx5IG1lYW5pbmcgdG8uICBUaGVu IGp1c3QgcmVzdW1lIGFuZCBhbnN3ZXIK4oCYbuKAmSB0byBib3RoIHF1ZXN0aW9ucywgYW5kIHlv dSB3aWxsIGdldCBiYWNrIHRvIHRoZSBmb3JtZXIgc3RhdGUuICBUaGUKcXVpdCB5b3UgcmVxdWVz dGVkIHdpbGwgaGFwcGVuIGJ5IGFuZCBieS4KCiAgIEVtZXJnZW5jeSBlc2NhcGUgaXMgYWN0aXZl IG9ubHkgZm9yIHRleHQgdGVybWluYWxzLiAgT24gZ3JhcGhpY2FsCmRpc3BsYXlzLCB5b3UgY2Fu IHVzZSB0aGUgbW91c2UgdG8ga2lsbCBFbWFjcyBvciBzd2l0Y2ggdG8gYW5vdGhlcgpwcm9ncmFt LgoKICAgT24gTVMtRE9TLCB5b3UgbXVzdCB0eXBlIOKAmEMtPEJyZWFrPuKAmSAodHdpY2UpIHRv IGNhdXNlIGVtZXJnZW5jeQplc2NhcGXigJRidXQgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIGl0IHdv buKAmXQgd29yaywgd2hlbiBhIHN5c3RlbSBjYWxsIGhhbmdzCm9yIHdoZW4gRW1hY3MgaXMgc3R1 Y2sgaW4gYSB0aWdodCBsb29wIGluIEMgY29kZS4KCgoqIDUyIFJlcG9ydGluZyBCdWdzCgpJZiB5 b3UgdGhpbmsgeW91IGhhdmUgZm91bmQgYSBidWcgaW4gRW1hY3MsIHBsZWFzZSByZXBvcnQgaXQu ICBXZSBjYW5ub3QKcHJvbWlzZSB0byBmaXggaXQsIG9yIGFsd2F5cyB0byBhZ3JlZSB0aGF0IGl0 IGlzIGEgYnVnLCBidXQgd2UgY2VydGFpbmx5CndhbnQgdG8gaGVhciBhYm91dCBpdC4gIFRoZSBz YW1lIGFwcGxpZXMgZm9yIG5ldyBmZWF0dXJlcyB5b3Ugd291bGQgbGlrZQp0byBzZWUgYWRkZWQu ICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIHdpbGwgaGVscCB5b3UgdG8gY29uc3RydWN0IGFuCmVm ZmVjdGl2ZSBidWcgcmVwb3J0LgoKKyBNZW51OgoKICAtIEtub3duIFByb2JsZW1zOjogICAgICAg ICAgICAgICBIb3cgdG8gcmVhZCBhYm91dCBrbm93biBwcm9ibGVtcyBhbmQgYnVncy4KICAtIENy aXRlcmlhOiAgQnVnIENyaXRlcmlhLiAgICAgICBIYXZlIHlvdSByZWFsbHkgZm91bmQgYSBidWc/ CiAgLSBVbmRlcnN0YW5kaW5nIEJ1ZyBSZXBvcnRpbmc6OiAgSG93IHRvIHJlcG9ydCBhIGJ1ZyBl ZmZlY3RpdmVseS4KICAtIENoZWNrbGlzdDo6ICAgICAgICAgICAgICAgICAgICBTdGVwcyB0byBm b2xsb3cgZm9yIGEgZ29vZCBidWcgcmVwb3J0LgogIC0gU2VuZGluZyBQYXRjaGVzOjogICAgICAg ICAgICAgIEhvdyB0byBzZW5kIGEgcGF0Y2ggZm9yIEdOVSBFbWFjcy4KCgoqKiA1Mi4xIFJlYWRp bmcgRXhpc3RpbmcgQnVnIFJlcG9ydHMgYW5kIEtub3duIFByb2JsZW1zCgpCZWZvcmUgcmVwb3J0 aW5nIGEgYnVnLCBpZiBhdCBhbGwgcG9zc2libGUgcGxlYXNlIGNoZWNrIHRvIHNlZSBpZiBpdCBp cwphbHJlYWR5IGtub3duIGFib3V0LiAgSW5kZWVkLCBpdCBtYXkgYWxyZWFkeSBoYXZlIGJlZW4g Zml4ZWQgaW4gYSBsYXRlcgpyZWxlYXNlIG9mIEVtYWNzLCBvciBpbiB0aGUgZGV2ZWxvcG1lbnQg dmVyc2lvbi4gIEhlcmUgaXMgYSBsaXN0IG9mIHRoZQptYWluIHBsYWNlcyB5b3UgY2FuIHJlYWQg YWJvdXQga25vd24gaXNzdWVzOgoKICAg4oCiIFRoZSDigJhldGMvUFJPQkxFTVPigJkgZmlsZTsg dHlwZSDigJhDLWggQy1w4oCZIHRvIHJlYWQgaXQuICBUaGlzIGZpbGUKICAgICBjb250YWlucyBh IGxpc3Qgb2YgcGFydGljdWxhcmx5IHdlbGwta25vd24gaXNzdWVzIHRoYXQgaGF2ZSBiZWVuCiAg ICAgZW5jb3VudGVyZWQgaW4gY29tcGlsaW5nLCBpbnN0YWxsaW5nIGFuZCBydW5uaW5nIEVtYWNz LiAgT2Z0ZW4sCiAgICAgdGhlcmUgYXJlIHN1Z2dlc3Rpb25zIGZvciB3b3JrYXJvdW5kcyBhbmQg c29sdXRpb25zLgoKICAg4oCiIFRoZSBHTlUgQnVnIFRyYWNrZXIgYXQgPGh0dHBzOi8vZGViYnVn cy5nbnUub3JnPi4gIEVtYWNzIGJ1Z3MgYXJlCiAgICAgZmlsZWQgaW4gdGhlIHRyYWNrZXIgdW5k ZXIgdGhlIOKAmGVtYWNz4oCZIHBhY2thZ2UuICBUaGUgdHJhY2tlcgogICAgIHJlY29yZHMgaW5m b3JtYXRpb24gYWJvdXQgdGhlIHN0YXR1cyBvZiBlYWNoIGJ1ZywgdGhlIGluaXRpYWwgYnVnCiAg ICAgcmVwb3J0LCBhbmQgdGhlIGZvbGxvdy11cCBtZXNzYWdlcyBieSB0aGUgYnVnIHJlcG9ydGVy IGFuZCBFbWFjcwogICAgIGRldmVsb3BlcnMuICBZb3UgY2FuIHNlYXJjaCBmb3IgYnVncyBieSBz dWJqZWN0LCBzZXZlcml0eSwgYW5kCiAgICAgb3RoZXIgY3JpdGVyaWEuCgogICAgIEluc3RlYWQg b2YgYnJvd3NpbmcgdGhlIGJ1ZyB0cmFja2VyIGFzIGEgd2VicGFnZSwgeW91IGNhbiBicm93c2Ug aXQKICAgICBmcm9tIEVtYWNzIHVzaW5nIHRoZSDigJhkZWJidWdz4oCZIHBhY2thZ2UsIHdoaWNo IGNhbiBiZSBkb3dubG9hZGVkIHZpYQogICAgIHRoZSBQYWNrYWdlIE1lbnUgKCpub3RlIFBhY2th Z2VzOjopLiAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIHRoZQogICAgIGNvbW1hbmQg4oCYTS14IGRl YmJ1Z3MtZ2514oCZIHRvIGxpc3QgYnVncywgYW5kIOKAmE0teAogICAgIGRlYmJ1Z3MtZ251LXNl YXJjaOKAmSB0byBzZWFyY2ggZm9yIGEgc3BlY2lmaWMgYnVnLiAgVXNlciB0YWdzLAogICAgIGFw cGxpZWQgYnkgdGhlIEVtYWNzIG1haW50YWluZXJzLCBhcmUgc2hvd24gYnkg4oCYTS14CiAgICAg ZGViYnVncy1nbnUtdXNlcnRhZ3PigJkuCgogICDigKIgVGhlIOKAmGJ1Zy1nbnUtZW1hY3PigJkg bWFpbGluZyBsaXN0IChhbHNvIGF2YWlsYWJsZSBhcyB0aGUgbmV3c2dyb3VwCiAgICAg4oCYZ251 LmVtYWNzLmJ1Z+KAmSkuICBZb3UgY2FuIHJlYWQgdGhlIGxpc3QgYXJjaGl2ZXMgYXQKICAgICA8 aHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vYnVnLWdudS1lbWFjcz4uICBU aGlzIGxpc3QKICAgICB3b3JrcyBhcyBhIG1pcnJvciBvZiB0aGUgRW1hY3MgYnVnIHJlcG9ydHMg YW5kIGZvbGxvdy11cCBtZXNzYWdlcwogICAgIHdoaWNoIGFyZSBzZW50IHRvIHRoZSBidWcgdHJh Y2tlci4gIEl0IGFsc28gY29udGFpbnMgb2xkIGJ1ZwogICAgIHJlcG9ydHMgZnJvbSBiZWZvcmUg dGhlIGJ1ZyB0cmFja2VyIHdhcyBpbnRyb2R1Y2VkIChpbiBlYXJseSAyMDA4KS4KCiAgICAgSWYg eW91IGxpa2UsIHlvdSBjYW4gc3Vic2NyaWJlIHRvIHRoZSBsaXN0LiAgQmUgYXdhcmUgdGhhdCBp dHMKICAgICBwdXJwb3NlIGlzIHRvIHByb3ZpZGUgdGhlIEVtYWNzIG1haW50YWluZXJzIHdpdGgg aW5mb3JtYXRpb24gYWJvdXQKICAgICBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzLCBzbyByZXBv cnRzIG1heSBjb250YWluIGZhaXJseSBsYXJnZQogICAgIGFtb3VudHMgb2YgZGF0YTsgc3BlY3Rh dG9ycyBzaG91bGQgbm90IGNvbXBsYWluIGFib3V0IHRoaXMuCgogICDigKIgVGhlIOKAmGVtYWNz LXByZXRlc3QtYnVn4oCZIG1haWxpbmcgbGlzdC4gIFRoaXMgbGlzdCBpcyBubyBsb25nZXIgdXNl ZCwKICAgICBhbmQgaXMgbWFpbmx5IG9mIGhpc3RvcmljYWwgaW50ZXJlc3QuICBBdCBvbmUgdGlt ZSwgaXQgd2FzIHVzZWQgZm9yCiAgICAgYnVnIHJlcG9ydHMgaW4gZGV2ZWxvcG1lbnQgKGkuZS4s IG5vdCB5ZXQgcmVsZWFzZWQpIHZlcnNpb25zIG9mCiAgICAgRW1hY3MuICBZb3UgY2FuIHJlYWQg dGhlIGFyY2hpdmVzIGZvciAyMDAzIHRvIG1pZCAyMDA3IGF0CiAgICAgPGh0dHBzOi8vbGlzdHMu Z251Lm9yZy9yL2VtYWNzLXByZXRlc3QtYnVnLz4uICBOb3dhZGF5cywgaXQgaXMgYW4KICAgICBh bGlhcyBmb3Ig4oCYYnVnLWdudS1lbWFjc+KAmS4KCiAgIOKAoiBUaGUg4oCYZW1hY3MtZGV2ZWzi gJkgbWFpbGluZyBsaXN0LiAgU29tZXRpbWVzIHBlb3BsZSByZXBvcnQgYnVncyB0bwogICAgIHRo aXMgbWFpbGluZyBsaXN0LiAgVGhpcyBpcyBub3QgdGhlIG1haW4gcHVycG9zZSBvZiB0aGUgbGlz dCwKICAgICBob3dldmVyLCBhbmQgaXQgaXMgbXVjaCBiZXR0ZXIgdG8gc2VuZCBidWcgcmVwb3J0 cyB0byB0aGUgYnVnIGxpc3QuCiAgICAgWW91IHNob3VsZCBub3QgZmVlbCBvYmxpZ2VkIHRvIHJl YWQgdGhpcyBsaXN0IGJlZm9yZSByZXBvcnRpbmcgYQogICAgIGJ1Zy4KCgoqKiA1Mi4yIFdoZW4g SXMgVGhlcmUgYSBCdWcKCklmIEVtYWNzIGFjY2Vzc2VzIGFuIGludmFsaWQgbWVtb3J5IGxvY2F0 aW9uIChhLmsuYS4g4oCcc2VnbWVudGF0aW9uCmZhdWx04oCdKSBvciBleGl0cyB3aXRoIGFuIG9w ZXJhdGluZyBzeXN0ZW0gZXJyb3IgbWVzc2FnZSB0aGF0IGluZGljYXRlcyBhCnByb2JsZW0gaW4g dGhlIHByb2dyYW0gKGFzIG9wcG9zZWQgdG8gc29tZXRoaW5nIGxpa2Ug4oCcZGlzayBmdWxs4oCd KSwgdGhlbgppdCBpcyBjZXJ0YWlubHkgYSBidWcuCgogICBJZiB0aGUgRW1hY3MgZGlzcGxheSBk b2VzIG5vdCBjb3JyZXNwb25kIHByb3Blcmx5IHRvIHRoZSBjb250ZW50cyBvZgp0aGUgYnVmZmVy LCB0aGVuIGl0IGlzIGEgYnVnLiAgQnV0IHlvdSBzaG91bGQgY2hlY2sgdGhhdCBmZWF0dXJlcyBs aWtlCmJ1ZmZlciBuYXJyb3dpbmcgKCpub3RlIE5hcnJvd2luZzo6KSwgd2hpY2ggY2FuIGhpZGUg cGFydHMgb2YgdGhlIGJ1ZmZlcgpvciBjaGFuZ2UgaG93IGl0IGlzIGRpc3BsYXllZCwgYXJlIG5v dCByZXNwb25zaWJsZS4KCiAgIFRha2luZyBmb3JldmVyIHRvIGNvbXBsZXRlIGEgY29tbWFuZCBj YW4gYmUgYSBidWcsIGJ1dCB5b3UgbXVzdCBtYWtlCnN1cmUgdGhhdCBpdCBpcyByZWFsbHkgRW1h Y3PigJlzIGZhdWx0LiAgU29tZSBjb21tYW5kcyBzaW1wbHkgdGFrZSBhIGxvbmcKdGltZS4gIFR5 cGUg4oCYQy1n4oCZICjigJhDLTxCcmVhaz7igJkgb24gTVMtRE9TKSBhbmQgdGhlbiDigJhDLWgg bOKAmSB0byBzZWUKd2hldGhlciB0aGUgaW5wdXQgRW1hY3MgcmVjZWl2ZWQgd2FzIHdoYXQgeW91 IGludGVuZGVkIHRvIHR5cGU7IGlmIHRoZQppbnB1dCB3YXMgc3VjaCB0aGF0IHlvdSBfa25vd18g aXQgc2hvdWxkIGhhdmUgYmVlbiBwcm9jZXNzZWQgcXVpY2tseSwKcmVwb3J0IGEgYnVnLiAgSWYg eW91IGRvbuKAmXQga25vdyB3aGV0aGVyIHRoZSBjb21tYW5kIHNob3VsZCB0YWtlIGEgbG9uZwp0 aW1lLCBmaW5kIG91dCBieSBsb29raW5nIGluIHRoZSBtYW51YWwgb3IgYnkgYXNraW5nIGZvciBh c3Npc3RhbmNlLgoKICAgSWYgYSBjb21tYW5kIHlvdSBhcmUgZmFtaWxpYXIgd2l0aCBjYXVzZXMg YW4gRW1hY3MgZXJyb3IgbWVzc2FnZSBpbiBhCmNhc2Ugd2hlcmUgaXRzIHVzdWFsIGRlZmluaXRp b24gb3VnaHQgdG8gYmUgcmVhc29uYWJsZSwgaXQgaXMgcHJvYmFibHkgYQpidWcuCgogICBJZiBh IGNvbW1hbmQgZG9lcyB0aGUgd3JvbmcgdGhpbmcsIHRoYXQgaXMgYSBidWcuICBCdXQgYmUgc3Vy ZSB5b3UKa25vdyBmb3IgY2VydGFpbiB3aGF0IGl0IG91Z2h0IHRvIGhhdmUgZG9uZS4gIElmIHlv dSBhcmVu4oCZdCBmYW1pbGlhcgp3aXRoIHRoZSBjb21tYW5kLCBpdCBtaWdodCBhY3R1YWxseSBi ZSB3b3JraW5nIHJpZ2h0LiAgSWYgaW4gZG91YnQsIHJlYWQKdGhlIGNvbW1hbmTigJlzIGRvY3Vt ZW50YXRpb24gKCpub3RlIE5hbWUgSGVscDo6KS4KCiAgIEEgY29tbWFuZOKAmXMgaW50ZW5kZWQg ZGVmaW5pdGlvbiBtYXkgbm90IGJlIHRoZSBiZXN0IHBvc3NpYmxlCmRlZmluaXRpb24gZm9yIGVk aXRpbmcgd2l0aC4gIFRoaXMgaXMgYSB2ZXJ5IGltcG9ydGFudCBzb3J0IG9mIHByb2JsZW0sCmJ1 dCBpdCBpcyBhbHNvIGEgbWF0dGVyIG9mIGp1ZGdtZW50LiAgQWxzbywgaXQgaXMgZWFzeSB0byBj b21lIHRvIHN1Y2ggYQpjb25jbHVzaW9uIG91dCBvZiBpZ25vcmFuY2Ugb2Ygc29tZSBvZiB0aGUg ZXhpc3RpbmcgZmVhdHVyZXMuICBJdCBpcwpwcm9iYWJseSBiZXN0IG5vdCB0byBjb21wbGFpbiBh Ym91dCBzdWNoIGEgcHJvYmxlbSB1bnRpbCB5b3UgaGF2ZQpjaGVja2VkIHRoZSBkb2N1bWVudGF0 aW9uIGluIHRoZSB1c3VhbCB3YXlzLCBmZWVsIGNvbmZpZGVudCB0aGF0IHlvdQp1bmRlcnN0YW5k IGl0LCBhbmQga25vdyBmb3IgY2VydGFpbiB0aGF0IHdoYXQgeW91IHdhbnQgaXMgbm90IGF2YWls YWJsZS4KQXNrIG90aGVyIEVtYWNzIHVzZXJzLCB0b28uICBJZiB5b3UgYXJlIG5vdCBzdXJlIHdo YXQgdGhlIGNvbW1hbmQgaXMKc3VwcG9zZWQgdG8gZG8gYWZ0ZXIgYSBjYXJlZnVsIHJlYWRpbmcg b2YgdGhlIG1hbnVhbCwgY2hlY2sgdGhlIGluZGV4CmFuZCBnbG9zc2FyeSBmb3IgYW55IHRlcm1z IHRoYXQgbWF5IGJlIHVuY2xlYXIuCgogICBJZiBhZnRlciBjYXJlZnVsIHJlcmVhZGluZyBvZiB0 aGUgbWFudWFsIHlvdSBzdGlsbCBkbyBub3QgdW5kZXJzdGFuZAp3aGF0IHRoZSBjb21tYW5kIHNo b3VsZCBkbywgdGhhdCBpbmRpY2F0ZXMgYSBidWcgaW4gdGhlIG1hbnVhbCwgd2hpY2gKeW91IHNo b3VsZCByZXBvcnQuICBUaGUgbWFudWFs4oCZcyBqb2IgaXMgdG8gbWFrZSBldmVyeXRoaW5nIGNs ZWFyIHRvCnBlb3BsZSB3aG8gYXJlIG5vdCBFbWFjcyBleHBlcnRz4oCUaW5jbHVkaW5nIHlvdS4g IEl0IGlzIGp1c3QgYXMgaW1wb3J0YW50CnRvIHJlcG9ydCBkb2N1bWVudGF0aW9uIGJ1Z3MgYXMg cHJvZ3JhbSBidWdzLgoKICAgSWYgdGhlIGJ1aWx0LWluIGRvY3VtZW50YXRpb24gZm9yIGEgZnVu Y3Rpb24gb3IgdmFyaWFibGUgZGlzYWdyZWVzCndpdGggdGhlIG1hbnVhbCwgb25lIG9mIHRoZW0g bXVzdCBiZSB3cm9uZzsgdGhhdCBpcyBhIGJ1Zy4KCiAgIEZvciBwcm9ibGVtcyB3aXRoIHBhY2th Z2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIEVtYWNzLCBpdCBpcyBiZXR0ZXIKdG8gYmVnaW4gYnkg cmVwb3J0aW5nIHRoZW0gdG8gdGhlIHBhY2thZ2UgZGV2ZWxvcGVycy4KCgoqKiA1Mi4zIFVuZGVy c3RhbmRpbmcgQnVnIFJlcG9ydGluZwoKV2hlbiB5b3UgZGVjaWRlIHRoYXQgdGhlcmUgaXMgYSBi dWcsIGl0IGlzIGltcG9ydGFudCB0byByZXBvcnQgaXQgYW5kIHRvCnJlcG9ydCBpdCBpbiBhIHdh eSB3aGljaCBpcyB1c2VmdWwuICBXaGF0IGlzIG1vc3QgdXNlZnVsIGlzIGFuIGV4YWN0CmRlc2Ny aXB0aW9uIG9mIHdoYXQgY29tbWFuZHMgeW91IHR5cGUsIHN0YXJ0aW5nIHdpdGggdGhlIHNoZWxs IGNvbW1hbmQKdG8gcnVuIEVtYWNzLCB1bnRpbCB0aGUgcHJvYmxlbSBoYXBwZW5zLgoKICAgVGhl IG1vc3QgaW1wb3J0YW50IHByaW5jaXBsZSBpbiByZXBvcnRpbmcgYSBidWcgaXMgdG8gcmVwb3J0 IF9mYWN0c18uCkh5cG90aGVzZXMgYW5kIHZlcmJhbCBkZXNjcmlwdGlvbnMgYXJlIG5vIHN1YnN0 aXR1dGUgZm9yIHRoZSBkZXRhaWxlZApyYXcgZGF0YS4gIFJlcG9ydGluZyB0aGUgZmFjdHMgaXMg c3RyYWlnaHRmb3J3YXJkLCBidXQgbWFueSBwZW9wbGUKc3RyYWluIHRvIHBvc2l0IGV4cGxhbmF0 aW9ucyBhbmQgcmVwb3J0IHRoZW0gaW5zdGVhZCBvZiB0aGUgZmFjdHMuICBJZgp0aGUgZXhwbGFu YXRpb25zIGFyZSBiYXNlZCBvbiBndWVzc2VzIGFib3V0IGhvdyBFbWFjcyBpcyBpbXBsZW1lbnRl ZCwKdGhleSB3aWxsIGJlIHVzZWxlc3M7IG1lYW53aGlsZSwgbGFja2luZyB0aGUgZmFjdHMsIHdl IHdpbGwgaGF2ZSBubyByZWFsCmluZm9ybWF0aW9uIGFib3V0IHRoZSBidWcuICBJZiB5b3Ugd2Fu dCB0byBhY3R1YWxseSBfZGVidWdfIHRoZSBwcm9ibGVtLAphbmQgcmVwb3J0IGV4cGxhbmF0aW9u cyB0aGF0IGFyZSBtb3JlIHRoYW4gZ3Vlc3NlcywgdGhhdCBpcyB1c2VmdWzigJRidXQKcGxlYXNl IGluY2x1ZGUgdGhlIHJhdyBmYWN0cyBhcyB3ZWxsLgoKICAgRm9yIGV4YW1wbGUsIHN1cHBvc2Ug dGhhdCB5b3UgdHlwZSDigJhDLXggQy1mIC9nbG9ycC9iYXoudWdoIDxSRVQ+4oCZLAp2aXNpdGlu ZyBhIGZpbGUgd2hpY2ggKHlvdSBrbm93KSBoYXBwZW5zIHRvIGJlIHJhdGhlciBsYXJnZSwgYW5k IEVtYWNzCmRpc3BsYXlzIOKAmEkgZmVlbCBwcmV0dHkgdG9kYXnigJkuICBUaGUgYnVnIHJlcG9y dCB3b3VsZCBuZWVkIHRvIHByb3ZpZGUKYWxsIHRoYXQgaW5mb3JtYXRpb24uICBZb3Ugc2hvdWxk IG5vdCBhc3N1bWUgdGhhdCB0aGUgcHJvYmxlbSBpcyBkdWUgdG8KdGhlIHNpemUgb2YgdGhlIGZp bGUgYW5kIHNheSwg4oCcSSB2aXNpdGVkIGEgbGFyZ2UgZmlsZSwgYW5kIEVtYWNzCmRpc3BsYXll ZCDigJhJIGZlZWwgcHJldHR5IHRvZGF54oCZLuKAnSBUaGlzIGlzIHdoYXQgd2UgbWVhbiBieSDi gJxndWVzc2luZwpleHBsYW5hdGlvbnPigJ0uICBUaGUgcHJvYmxlbSBtaWdodCBiZSBkdWUgdG8g dGhlIGZhY3QgdGhhdCB0aGVyZSBpcyBhIOKAmHrigJkKaW4gdGhlIGZpbGUgbmFtZS4gIElmIHRo aXMgaXMgc28sIHRoZW4gd2hlbiB3ZSBnb3QgeW91ciByZXBvcnQsIHdlIHdvdWxkCnRyeSBvdXQg dGhlIHByb2JsZW0gd2l0aCBzb21lIGxhcmdlIGZpbGUsIHByb2JhYmx5IHdpdGggbm8g4oCYeuKA mSBpbiBpdHMKbmFtZSwgYW5kIG5vdCBzZWUgYW55IHByb2JsZW0uICBUaGVyZSBpcyBubyB3YXkg d2UgY291bGQgZ3Vlc3MgdGhhdCB3ZQpzaG91bGQgdHJ5IHZpc2l0aW5nIGEgZmlsZSB3aXRoIGEg 4oCYeuKAmSBpbiBpdHMgbmFtZS4KCiAgIFlvdSBzaG91bGQgbm90IGV2ZW4gc2F5IOKAnHZpc2l0 IGEgZmlsZeKAnSBpbnN0ZWFkIG9mIOKAmEMteCBDLWbigJkuClNpbWlsYXJseSwgcmF0aGVyIHRo YW4gc2F5aW5nIOKAnGlmIEkgaGF2ZSB0aHJlZSBjaGFyYWN0ZXJzIG9uIHRoZSBsaW5l4oCdLApz YXkg4oCcYWZ0ZXIgSSB0eXBlIOKAmDxSRVQ+IEEgQiBDIDxSRVQ+IEMtcOKAmeKAnSwgaWYgdGhh dCBpcyB0aGUgd2F5IHlvdQplbnRlcmVkIHRoZSB0ZXh0LgoKICAgSWYgcG9zc2libGUsIHRyeSBx dWlja2x5IHRvIHJlcHJvZHVjZSB0aGUgYnVnIGJ5IGludm9raW5nIEVtYWNzIHdpdGgK4oCYZW1h Y3MgLVHigJkgKHNvIHRoYXQgRW1hY3Mgc3RhcnRzIHdpdGggbm8gaW5pdGlhbCBjdXN0b21pemF0 aW9uczsgKm5vdGUKSW5pdGlhbCBPcHRpb25zOjopLCBhbmQgcmVwZWF0aW5nIHRoZSBzdGVwcyB0 aGF0IHlvdSB0b29rIHRvIHRyaWdnZXIgdGhlCmJ1Zy4gIElmIHlvdSBjYW4gcmVwcm9kdWNlIHRo ZSBidWcgdGhpcyB3YXksIHRoYXQgcnVsZXMgb3V0IGJ1Z3MgaW4geW91cgpwZXJzb25hbCBjdXN0 b21pemF0aW9ucy4gIFRoZW4geW91ciBidWcgcmVwb3J0IHNob3VsZCBiZWdpbiBieSBzdGF0aW5n CnRoYXQgeW91IHN0YXJ0ZWQgRW1hY3Mgd2l0aCDigJhlbWFjcyAtUeKAmSwgZm9sbG93ZWQgYnkg dGhlIGV4YWN0IHNlcXVlbmNlCm9mIHN0ZXBzIGZvciByZXByb2R1Y2luZyB0aGUgYnVnLiAgSWYg cG9zc2libGUsIGluZm9ybSB1cyBvZiB0aGUgZXhhY3QKY29udGVudHMgb2YgYW55IGZpbGUgdGhh dCBpcyBuZWVkZWQgdG8gcmVwcm9kdWNlIHRoZSBidWcuCgogICBTb21lIGJ1Z3MgYXJlIG5vdCBy ZXByb2R1Y2libGUgZnJvbSDigJhlbWFjcyAtUeKAmTsgc29tZSBhcmUgbm90IGVhc2lseQpyZXBy b2R1Y2libGUgYXQgYWxsLiAgSW4gdGhhdCBjYXNlLCB5b3Ugc2hvdWxkIHJlcG9ydCB3aGF0IHlv dSBoYXZl4oCUYnV0LAphcyBiZWZvcmUsIHBsZWFzZSBzdGljayB0byB0aGUgcmF3IGZhY3RzIGFi b3V0IHdoYXQgeW91IGRpZCB0byB0cmlnZ2VyCnRoZSBidWcgdGhlIGZpcnN0IHRpbWUuCgogICBJ ZiB5b3UgaGF2ZSBtdWx0aXBsZSBpc3N1ZXMgdGhhdCB5b3Ugd2FudCB0byByZXBvcnQsIHBsZWFz ZSBtYWtlIGEKc2VwYXJhdGUgYnVnIHJlcG9ydCBmb3IgZWFjaC4KCgoqKiA1Mi40IENoZWNrbGlz dCBmb3IgQnVnIFJlcG9ydHMKCkJlZm9yZSByZXBvcnRpbmcgYSBidWcsIGZpcnN0IHRyeSB0byBz ZWUgaWYgdGhlIHByb2JsZW0gaGFzIGFscmVhZHkgYmVlbgpyZXBvcnRlZCAoKm5vdGUgS25vd24g UHJvYmxlbXM6OikuCgogICBJZiB5b3UgYXJlIGFibGUgdG8sIHRyeSB0aGUgbGF0ZXN0IHJlbGVh c2Ugb2YgRW1hY3MgdG8gc2VlIGlmIHRoZQpwcm9ibGVtIGhhcyBhbHJlYWR5IGJlZW4gZml4ZWQu ICBFdmVuIGJldHRlciBpcyB0byB0cnkgdGhlIGxhdGVzdApkZXZlbG9wbWVudCB2ZXJzaW9uLiAg V2UgcmVjb2duaXplIHRoYXQgdGhpcyBpcyBub3QgZWFzeSBmb3Igc29tZQpwZW9wbGUsIHNvIGRv IG5vdCBmZWVsIHRoYXQgeW91IGFic29sdXRlbHkgbXVzdCBkbyB0aGlzIGJlZm9yZSBtYWtpbmcg YQpyZXBvcnQuCgogICBUaGUgYmVzdCB3YXkgdG8gd3JpdGUgYSBidWcgcmVwb3J0IGZvciBFbWFj cyBpcyB0byB1c2UgdGhlIGNvbW1hbmQK4oCYTS14IHJlcG9ydC1lbWFjcy1idWfigJkuICBUaGlz IHNldHMgdXAgYSBtYWlsIGJ1ZmZlciAoKm5vdGUgU2VuZGluZwpNYWlsOjopIGFuZCBhdXRvbWF0 aWNhbGx5IGluc2VydHMgX3NvbWVfIG9mIHRoZSBlc3NlbnRpYWwgaW5mb3JtYXRpb24uCkhvd2V2 ZXIsIGl0IGNhbm5vdCBzdXBwbHkgYWxsIHRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb247IHlvdSBz aG91bGQKc3RpbGwgcmVhZCBhbmQgZm9sbG93IHRoZSBndWlkZWxpbmVzIGJlbG93LCBzbyB5b3Ug Y2FuIGVudGVyIHRoZSBvdGhlcgpjcnVjaWFsIGluZm9ybWF0aW9uIGJ5IGhhbmQgYmVmb3JlIHlv dSBzZW5kIHRoZSBtZXNzYWdlLiAgWW91IG1heSBmZWVsCnRoYXQgc29tZSBvZiB0aGUgaW5mb3Jt YXRpb24gaW5zZXJ0ZWQgYnkg4oCYTS14IHJlcG9ydC1lbWFjcy1idWfigJkgaXMgbm90CnJlbGV2 YW50LCBidXQgdW5sZXNzIHlvdSBhcmUgYWJzb2x1dGVseSBzdXJlIGl0IGlzIGJlc3QgdG8gbGVh dmUgaXQsIHNvCnRoYXQgdGhlIGRldmVsb3BlcnMgY2FuIGRlY2lkZSBmb3IgdGhlbXNlbHZlcy4K CiAgIFdoZW4geW91IGhhdmUgZmluaXNoZWQgd3JpdGluZyB5b3VyIHJlcG9ydCwgdHlwZSDigJhD LWMgQy1j4oCZIGFuZCBpdAp3aWxsIGJlIHNlbnQgdG8gdGhlIEVtYWNzIG1haW50YWluZXJzIGF0 IDxidWctZ251LWVtYWNzQGdudS5vcmc+LiAgKElmCnlvdSB3YW50IHRvIHN1Z2dlc3QgYW4gaW1w cm92ZW1lbnQgb3IgbmV3IGZlYXR1cmUsIHVzZSB0aGUgc2FtZQphZGRyZXNzLikgIElmIHlvdSBj YW5ub3Qgc2VuZCBtYWlsIGZyb20gaW5zaWRlIEVtYWNzLCB5b3UgY2FuIGNvcHkgdGhlCnRleHQg b2YgeW91ciByZXBvcnQgdG8geW91ciBub3JtYWwgbWFpbCBjbGllbnQgKGlmIHlvdXIgc3lzdGVt IHN1cHBvcnRzCml0LCB5b3UgY2FuIHR5cGUg4oCYQy1jIE0taeKAmSB0byBoYXZlIEVtYWNzIGRv IHRoaXMgZm9yIHlvdSkgYW5kIHNlbmQgaXQgdG8KdGhhdCBhZGRyZXNzLiAgT3IgeW91IGNhbiBz aW1wbHkgc2VuZCBhbiBlbWFpbCB0byB0aGF0IGFkZHJlc3MKZGVzY3JpYmluZyB0aGUgcHJvYmxl bS4KCiAgIFlvdXIgcmVwb3J0IHdpbGwgYmUgc2VudCB0byB0aGUg4oCYYnVnLWdudS1lbWFjc+KA mSBtYWlsaW5nIGxpc3QsIGFuZApzdG9yZWQgaW4gdGhlIEdOVSBCdWcgVHJhY2tlciBhdCA8aHR0 cHM6Ly9kZWJidWdzLmdudS5vcmc+LiAgUGxlYXNlCmluY2x1ZGUgYSB2YWxpZCByZXBseSBlbWFp bCBhZGRyZXNzLCBpbiBjYXNlIHdlIG5lZWQgdG8gYXNrIHlvdSBmb3IgbW9yZQppbmZvcm1hdGlv biBhYm91dCB5b3VyIHJlcG9ydC4gIFN1Ym1pc3Npb25zIGFyZSBtb2RlcmF0ZWQsIHNvIHRoZXJl IG1heQpiZSBhIGRlbGF5IGJlZm9yZSB5b3VyIHJlcG9ydCBhcHBlYXJzLgoKICAgWW91IGRvIG5v dCBuZWVkIHRvIGtub3cgaG93IHRoZSBHTlUgQnVnIFRyYWNrZXIgd29ya3MgaW4gb3JkZXIgdG8K cmVwb3J0IGEgYnVnLCBidXQgaWYgeW91IHdhbnQgdG8sIHlvdSBjYW4gcmVhZCB0aGUgdHJhY2tl cuKAmXMgb25saW5lCmRvY3VtZW50YXRpb24gdG8gc2VlIHRoZSB2YXJpb3VzIGZlYXR1cmVzIHlv dSBjYW4gdXNlLgoKICAgQWxsIG1haWwgc2VudCB0byB0aGUg4oCYYnVnLWdudS1lbWFjc+KAmSBt YWlsaW5nIGxpc3QgaXMgYWxzbyBnYXRld2F5ZWQKdG8gdGhlIOKAmGdudS5lbWFjcy5idWfigJkg bmV3c2dyb3VwLiAgVGhlIHJldmVyc2UgaXMgYWxzbyB0cnVlLCBidXQgd2UgYXNrCnlvdSBub3Qg dG8gcG9zdCBidWcgcmVwb3J0cyAob3IgcmVwbGllcykgdmlhIHRoZSBuZXdzZ3JvdXAuICBJdCBj YW4gbWFrZQppdCBtdWNoIGhhcmRlciB0byBjb250YWN0IHlvdSBpZiB3ZSBuZWVkIHRvIGFzayBm b3IgbW9yZSBpbmZvcm1hdGlvbiwKYW5kIGl0IGRvZXMgbm90IGludGVncmF0ZSB3ZWxsIHdpdGgg dGhlIGJ1ZyB0cmFja2VyLgoKICAgSWYgeW91ciBkYXRhIGlzIG1vcmUgdGhhbiA1MDAsMDAwIGJ5 dGVzLCBwbGVhc2UgZG9u4oCZdCBpbmNsdWRlIGl0CmRpcmVjdGx5IGluIHRoZSBidWcgcmVwb3J0 OyBpbnN0ZWFkLCBvZmZlciB0byBzZW5kIGl0IG9uIHJlcXVlc3QsIG9yCm1ha2UgaXQgYXZhaWxh YmxlIG9ubGluZSBhbmQgc2F5IHdoZXJlLgoKICAgVGhlIEdOVSBCdWcgVHJhY2tlciB3aWxsIGFz c2lnbiBhIGJ1ZyBudW1iZXIgdG8geW91ciByZXBvcnQ7IHBsZWFzZQp1c2UgaXQgaW4gdGhlIGZv bGxvd2luZyBkaXNjdXNzaW9ucy4KCiAgIFRvIGVuYWJsZSBtYWludGFpbmVycyB0byBpbnZlc3Rp Z2F0ZSBhIGJ1ZywgeW91ciByZXBvcnQgc2hvdWxkCmluY2x1ZGUgYWxsIHRoZXNlIHRoaW5nczoK CiAgIOKAoiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgRW1hY3MuICBXaXRob3V0IHRoaXMsIHdlIHdv buKAmXQga25vdyB3aGV0aGVyCiAgICAgdGhlcmUgaXMgYW55IHBvaW50IGluIGxvb2tpbmcgZm9y IHRoZSBidWcgaW4gdGhlIGN1cnJlbnQgdmVyc2lvbiBvZgogICAgIEdOVSBFbWFjcy4KCiAgICAg 4oCYTS14IHJlcG9ydC1lbWFjcy1idWfigJkgaW5jbHVkZXMgdGhpcyBpbmZvcm1hdGlvbiBhdXRv bWF0aWNhbGx5LCBidXQKICAgICBpZiB5b3UgYXJlIG5vdCB1c2luZyB0aGF0IGNvbW1hbmQgZm9y IHlvdXIgcmVwb3J0IHlvdSBjYW4gZ2V0IHRoZQogICAgIHZlcnNpb24gbnVtYmVyIGJ5IHR5cGlu ZyDigJhNLXggZW1hY3MtdmVyc2lvbiA8UkVUPuKAmS4gIElmIHRoYXQKICAgICBjb21tYW5kIGRv ZXMgbm90IHdvcmssIHlvdSBwcm9iYWJseSBoYXZlIHNvbWV0aGluZyBvdGhlciB0aGFuIEdOVQog ICAgIEVtYWNzLCBzbyB5b3Ugd2lsbCBoYXZlIHRvIHJlcG9ydCB0aGUgYnVnIHNvbWV3aGVyZSBl bHNlLgoKICAg4oCiIFRoZSB0eXBlIG9mIG1hY2hpbmUgeW91IGFyZSB1c2luZywgYW5kIHRoZSBv cGVyYXRpbmcgc3lzdGVtIG5hbWUKICAgICBhbmQgdmVyc2lvbiBudW1iZXIgKGFnYWluLCBhdXRv bWF0aWNhbGx5IGluY2x1ZGVkIGJ5IOKAmE0teAogICAgIHJlcG9ydC1lbWFjcy1idWfigJkpLiAg 4oCYTS14IGVtYWNzLXZlcnNpb24gPFJFVD7igJkgcHJvdmlkZXMgdGhpcwogICAgIGluZm9ybWF0 aW9uIHRvby4gIENvcHkgaXRzIG91dHB1dCBmcm9tIHRoZSDigJgqTWVzc2FnZXMq4oCZIGJ1ZmZl ciwgc28KICAgICB0aGF0IHlvdSBnZXQgaXQgYWxsIGFuZCBnZXQgaXQgYWNjdXJhdGVseS4KCiAg IOKAoiBUaGUgb3BlcmFuZHMgZ2l2ZW4gdG8gdGhlIOKAmGNvbmZpZ3VyZeKAmSBjb21tYW5kIHdo ZW4gRW1hY3Mgd2FzCiAgICAgaW5zdGFsbGVkIChhdXRvbWF0aWNhbGx5IGluY2x1ZGVkIGJ5IOKA mE0teCByZXBvcnQtZW1hY3MtYnVn4oCZKS4KCiAgIOKAoiBBIGNvbXBsZXRlIGxpc3Qgb2YgYW55 IG1vZGlmaWNhdGlvbnMgeW91IGhhdmUgbWFkZSB0byB0aGUgRW1hY3MKICAgICBzb3VyY2UuICAo V2UgbWF5IG5vdCBoYXZlIHRpbWUgdG8gaW52ZXN0aWdhdGUgdGhlIGJ1ZyB1bmxlc3MgaXQKICAg ICBoYXBwZW5zIGluIGFuIHVubW9kaWZpZWQgRW1hY3MuICBCdXQgaWYgeW914oCZdmUgbWFkZSBt b2RpZmljYXRpb25zCiAgICAgYW5kIHlvdSBkb27igJl0IHRlbGwgdXMsIHlvdSBhcmUgc2VuZGlu ZyB1cyBvbiBhIHdpbGQgZ29vc2UgY2hhc2UuKQoKICAgICBCZSBwcmVjaXNlIGFib3V0IHRoZXNl IGNoYW5nZXMuICBBIGRlc2NyaXB0aW9uIGluIEVuZ2xpc2ggaXMgbm90CiAgICAgZW5vdWdo4oCU c2VuZCBhIHVuaWZpZWQgY29udGV4dCBkaWZmIGZvciB0aGVtLgoKICAgICBBZGRpbmcgZmlsZXMg b2YgeW91ciBvd24sIG9yIHBvcnRpbmcgdG8gYW5vdGhlciBtYWNoaW5lLCBpcyBhCiAgICAgbW9k aWZpY2F0aW9uIG9mIHRoZSBzb3VyY2UuCgogICDigKIgRGV0YWlscyBvZiBhbnkgb3RoZXIgZGV2 aWF0aW9ucyBmcm9tIHRoZSBzdGFuZGFyZCBwcm9jZWR1cmUgZm9yCiAgICAgaW5zdGFsbGluZyBH TlUgRW1hY3MuCgogICDigKIgVGhlIGNvbXBsZXRlIHRleHQgb2YgYW55IGZpbGVzIG5lZWRlZCB0 byByZXByb2R1Y2UgdGhlIGJ1Zy4KCiAgICAgSWYgeW91IGNhbiB0ZWxsIHVzIGEgd2F5IHRvIGNh dXNlIHRoZSBwcm9ibGVtIHdpdGhvdXQgdmlzaXRpbmcgYW55CiAgICAgZmlsZXMsIHBsZWFzZSBk byBzby4gIFRoaXMgbWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gZGVidWcuICBJZiB5b3UKICAgICBk byBuZWVkIGZpbGVzLCBtYWtlIHN1cmUgeW91IGFycmFuZ2UgZm9yIHVzIHRvIHNlZSB0aGVpciBl eGFjdAogICAgIGNvbnRlbnRzLiAgRm9yIGV4YW1wbGUsIGl0IGNhbiBtYXR0ZXIgd2hldGhlciB0 aGVyZSBhcmUgc3BhY2VzIGF0CiAgICAgdGhlIGVuZHMgb2YgbGluZXMsIG9yIGEgbmV3bGluZSBh ZnRlciB0aGUgbGFzdCBsaW5lIGluIHRoZSBidWZmZXIKICAgICAobm90aGluZyBvdWdodCB0byBj YXJlIHdoZXRoZXIgdGhlIGxhc3QgbGluZSBpcyB0ZXJtaW5hdGVkLCBidXQgdHJ5CiAgICAgdGVs bGluZyB0aGUgYnVncyB0aGF0KS4KCiAgIOKAoiBUaGUgcHJlY2lzZSBjb21tYW5kcyB3ZSBuZWVk IHRvIHR5cGUgdG8gcmVwcm9kdWNlIHRoZSBidWcuICBJZiBhdAogICAgIGFsbCBwb3NzaWJsZSwg Z2l2ZSBhIGZ1bGwgcmVjaXBlIGZvciBhbiBFbWFjcyBzdGFydGVkIHdpdGggdGhlIOKAmC1R4oCZ CiAgICAgb3B0aW9uICgqbm90ZSBJbml0aWFsIE9wdGlvbnM6OikuICBUaGlzIGJ5cGFzc2VzIHlv dXIgcGVyc29uYWwKICAgICBjdXN0b21pemF0aW9ucy4KCiAgICAgT25lIHdheSB0byByZWNvcmQg dGhlIGlucHV0IHRvIEVtYWNzIHByZWNpc2VseSBpcyB0byB3cml0ZSBhCiAgICAgZHJpYmJsZSBm aWxlLiAgVG8gc3RhcnQgdGhlIGZpbGUsIHVzZSB0aGUg4oCYTS14IG9wZW4tZHJpYmJsZS1maWxl 4oCZCiAgICAgY29tbWFuZC4gIEZyb20gdGhlbiBvbiwgRW1hY3MgY29waWVzIGFsbCB5b3VyIGlu cHV0IHRvIHRoZQogICAgIHNwZWNpZmllZCBkcmliYmxlIGZpbGUgdW50aWwgdGhlIEVtYWNzIHBy b2Nlc3MgaXMga2lsbGVkLiAgQmUgYXdhcmUKICAgICB0aGF0IHNlbnNpdGl2ZSBpbmZvcm1hdGlv biAoc3VjaCBhcyBwYXNzd29yZHMpIG1heSBlbmQgdXAgcmVjb3JkZWQKICAgICBpbiB0aGUgZHJp YmJsZSBmaWxlLgoKICAg4oCiIEZvciBwb3NzaWJsZSBkaXNwbGF5IGJ1Z3Mgb24gdGV4dC1tb2Rl IHRlcm1pbmFscywgdGhlIHRlcm1pbmFsIHR5cGUKICAgICAodGhlIHZhbHVlIG9mIGVudmlyb25t ZW50IHZhcmlhYmxlIOKAmFRFUk3igJkpLCB0aGUgY29tcGxldGUgdGVybWNhcAogICAgIGVudHJ5 IGZvciB0aGUgdGVybWluYWwgZnJvbSDigJgvZXRjL3Rlcm1jYXDigJkgKHNpbmNlIHRoYXQgZmls ZSBpcyBub3QKICAgICBpZGVudGljYWwgb24gYWxsIG1hY2hpbmVzKSwgYW5kIHRoZSBvdXRwdXQg dGhhdCBFbWFjcyBhY3R1YWxseSBzZW50CiAgICAgdG8gdGhlIHRlcm1pbmFsLgoKICAgICBUaGUg d2F5IHRvIGNvbGxlY3QgdGhlIHRlcm1pbmFsIG91dHB1dCBpcyB0byBleGVjdXRlIHRoZSBMaXNw CiAgICAgZXhwcmVzc2lvbgoKICAgICAgICAgIChvcGVuLXRlcm1zY3JpcHQgIn4vdGVybXNjcmlw dCIpCgogICAgIHVzaW5nIOKAmE0tOuKAmSBvciBmcm9tIHRoZSDigJgqc2NyYXRjaCrigJkgYnVm ZmVyIGp1c3QgYWZ0ZXIgc3RhcnRpbmcKICAgICBFbWFjcy4gIEZyb20gdGhlbiBvbiwgRW1hY3Mg Y29waWVzIGFsbCB0ZXJtaW5hbCBvdXRwdXQgdG8gdGhlCiAgICAgc3BlY2lmaWVkIHRlcm1zY3Jp cHQgZmlsZSBhcyB3ZWxsLCB1bnRpbCB0aGUgRW1hY3MgcHJvY2VzcyBpcwogICAgIGtpbGxlZC4g IElmIHRoZSBwcm9ibGVtIGhhcHBlbnMgd2hlbiBFbWFjcyBzdGFydHMgdXAsIHB1dCB0aGlzCiAg ICAgZXhwcmVzc2lvbiBpbnRvIHlvdXIgRW1hY3MgaW5pdGlhbGl6YXRpb24gZmlsZSBzbyB0aGF0 IHRoZQogICAgIHRlcm1zY3JpcHQgZmlsZSB3aWxsIGJlIG9wZW4gd2hlbiBFbWFjcyBkaXNwbGF5 cyB0aGUgc2NyZWVuIGZvciB0aGUKICAgICBmaXJzdCB0aW1lLgoKICAgICBCZSB3YXJuZWQ6IGl0 IGlzIG9mdGVuIGRpZmZpY3VsdCwgYW5kIHNvbWV0aW1lcyBpbXBvc3NpYmxlLCB0byBmaXgKICAg ICBhIHRlcm1pbmFsLWRlcGVuZGVudCBidWcgd2l0aG91dCBhY2Nlc3MgdG8gYSB0ZXJtaW5hbCBv ZiB0aGUgdHlwZQogICAgIHRoYXQgc3RpbXVsYXRlcyB0aGUgYnVnLgoKICAg4oCiIElmIG5vbi1B U0NJSSB0ZXh0IG9yIGludGVybmF0aW9uYWxpemF0aW9uIGlzIHJlbGV2YW50LCB0aGUgbG9jYWxl CiAgICAgdGhhdCB3YXMgY3VycmVudCB3aGVuIHlvdSBzdGFydGVkIEVtYWNzLiAgT24gR05VL0xp bnV4IGFuZCBVbml4CiAgICAgc3lzdGVtcywgb3IgaWYgeW91IHVzZSBhIFBPU0lYLXN0eWxlIHNo ZWxsIHN1Y2ggYXMgQmFzaCwgeW91IGNhbgogICAgIHVzZSB0aGlzIHNoZWxsIGNvbW1hbmQgdG8g dmlldyB0aGUgcmVsZXZhbnQgdmFsdWVzOgoKICAgICAgICAgIGVjaG8gTENfQUxMPSRMQ19BTEwg TENfQ09MTEFURT0kTENfQ09MTEFURSBMQ19DVFlQRT0kTENfQ1RZUEUgXAogICAgICAgICAgICBM Q19NRVNTQUdFUz0kTENfTUVTU0FHRVMgTENfVElNRT0kTENfVElNRSBMQU5HPSRMQU5HCgogICAg IEFsdGVybmF0aXZlbHksIHVzZSB0aGUg4oCYbG9jYWxl4oCZIGNvbW1hbmQsIGlmIHlvdXIgc3lz dGVtIGhhcyBpdCwgdG8KICAgICBkaXNwbGF5IHlvdXIgbG9jYWxlIHNldHRpbmdzLgoKICAgICBZ b3UgY2FuIHVzZSB0aGUg4oCYTS0h4oCZIGNvbW1hbmQgdG8gZXhlY3V0ZSB0aGVzZSBjb21tYW5k cyBmcm9tIEVtYWNzLAogICAgIGFuZCB0aGVuIGNvcHkgdGhlIG91dHB1dCBmcm9tIHRoZSDigJgq TWVzc2FnZXMq4oCZIGJ1ZmZlciBpbnRvIHRoZSBidWcKICAgICByZXBvcnQuICBBbHRlcm5hdGl2 ZWx5LCDigJhNLXggZ2V0ZW52IDxSRVQ+IExDX0FMTCA8UkVUPuKAmSB3aWxsCiAgICAgZGlzcGxh eSB0aGUgdmFsdWUgb2Yg4oCYTENfQUxM4oCZIGluIHRoZSBlY2hvIGFyZWEsIGFuZCB5b3UgY2Fu IGNvcHkKICAgICBpdHMgb3V0cHV0IGZyb20gdGhlIOKAmCpNZXNzYWdlcyrigJkgYnVmZmVyLgoK ICAg4oCiIEEgZGVzY3JpcHRpb24gb2Ygd2hhdCBiZWhhdmlvciB5b3Ugb2JzZXJ2ZSB0aGF0IHlv dSBiZWxpZXZlIGlzCiAgICAgaW5jb3JyZWN0LiAgRm9yIGV4YW1wbGUsIOKAnFRoZSBFbWFjcyBw cm9jZXNzIGdldHMgYSBmYXRhbCBzaWduYWzigJ0sCiAgICAgb3IsIOKAnFRoZSByZXN1bHRpbmcg dGV4dCBpcyBhcyBmb2xsb3dzLCB3aGljaCBJIHRoaW5rIGlzIHdyb25nLuKAnQoKICAgICBPZiBj b3Vyc2UsIGlmIHRoZSBidWcgaXMgdGhhdCBFbWFjcyBnZXRzIGEgZmF0YWwgc2lnbmFsLCB0aGVu IG9uZQogICAgIGNhbuKAmXQgbWlzcyBpdC4gIEJ1dCBpZiB0aGUgYnVnIGlzIGluY29ycmVjdCB0 ZXh0LCB0aGUgbWFpbnRhaW5lcgogICAgIG1pZ2h0IGZhaWwgdG8gbm90aWNlIHdoYXQgaXMgd3Jv bmcuICBXaHkgbGVhdmUgaXQgdG8gY2hhbmNlPwoKICAgICBFdmVuIGlmIHRoZSBwcm9ibGVtIHlv dSBleHBlcmllbmNlIGlzIGEgZmF0YWwgc2lnbmFsLCB5b3Ugc2hvdWxkCiAgICAgc3RpbGwgc2F5 IHNvIGV4cGxpY2l0bHkuICBTdXBwb3NlIHNvbWV0aGluZyBzdHJhbmdlIGlzIGdvaW5nIG9uLAog ICAgIHN1Y2ggYXMsIHlvdXIgY29weSBvZiB0aGUgc291cmNlIGlzIG91dCBvZiBzeW5jLCBvciB5 b3UgaGF2ZQogICAgIGVuY291bnRlcmVkIGEgYnVnIGluIHRoZSBDIGxpYnJhcnkgb24geW91ciBz eXN0ZW0uICAoVGhpcyBoYXMKICAgICBoYXBwZW5lZCEpICBZb3VyIGNvcHkgbWlnaHQgY3Jhc2gg YW5kIHRoZSBjb3B5IGhlcmUgbWlnaHQgbm90LiAgSWYKICAgICB5b3UgX3NhaWRfIHRvIGV4cGVj dCBhIGNyYXNoLCB0aGVuIHdoZW4gRW1hY3MgaGVyZSBmYWlscyB0byBjcmFzaCwKICAgICB3ZSB3 b3VsZCBrbm93IHRoYXQgdGhlIGJ1ZyB3YXMgbm90IGhhcHBlbmluZy4gIElmIHlvdSBkb27igJl0 IHNheSB0bwogICAgIGV4cGVjdCBhIGNyYXNoLCB0aGVuIHdlIHdvdWxkIG5vdCBrbm93IHdoZXRo ZXIgdGhlIGJ1ZyB3YXMKICAgICBoYXBwZW5pbmfigJR3ZSB3b3VsZCBub3QgYmUgYWJsZSB0byBk cmF3IGFueSBjb25jbHVzaW9uIGZyb20gb3VyCiAgICAgb2JzZXJ2YXRpb25zLgoKICAg4oCiIElm IHRoZSBidWcgaXMgdGhhdCB0aGUgRW1hY3MgTWFudWFsIG9yIHRoZSBFbWFjcyBMaXNwIFJlZmVy ZW5jZQogICAgIE1hbnVhbCBmYWlscyB0byBkZXNjcmliZSB0aGUgYWN0dWFsIGJlaGF2aW9yIG9m IEVtYWNzLCBvciB0aGF0IHRoZQogICAgIHRleHQgaXMgY29uZnVzaW5nLCBjb3B5IGluIHRoZSB0 ZXh0IGZyb20gdGhlIG1hbnVhbCB3aGljaCB5b3UgdGhpbmsKICAgICBpcyBhdCBmYXVsdC4gIElm IHRoZSBzZWN0aW9uIGlzIHNtYWxsLCBqdXN0IHRoZSBzZWN0aW9uIG5hbWUgaXMKICAgICBlbm91 Z2guCgogICDigKIgSWYgdGhlIG1hbmlmZXN0YXRpb24gb2YgdGhlIGJ1ZyBpcyBhbiBFbWFjcyBl cnJvciBtZXNzYWdlLCBpdCBpcwogICAgIGltcG9ydGFudCB0byByZXBvcnQgdGhlIHByZWNpc2Ug dGV4dCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYW5kIGEKICAgICBiYWNrdHJhY2Ugc2hvd2luZyBo b3cgdGhlIExpc3AgcHJvZ3JhbSBpbiBFbWFjcyBhcnJpdmVkIGF0IHRoZQogICAgIGVycm9yLgoK ICAgICBUbyBnZXQgdGhlIGVycm9yIG1lc3NhZ2UgdGV4dCBhY2N1cmF0ZWx5LCBjb3B5IGl0IGZy b20gdGhlCiAgICAg4oCYKk1lc3NhZ2VzKuKAmSBidWZmZXIgaW50byB0aGUgYnVnIHJlcG9ydC4g IENvcHkgYWxsIG9mIGl0LCBub3QganVzdAogICAgIHBhcnQuCgogICAgIFRvIG1ha2UgYSBiYWNr dHJhY2UgZm9yIHRoZSBlcnJvciwgdXNlIOKAmE0teCB0b2dnbGUtZGVidWctb24tZXJyb3LigJkK ICAgICBiZWZvcmUgdGhlIGVycm9yIGhhcHBlbnMgKHRoYXQgaXMgdG8gc2F5LCB5b3UgbXVzdCBn aXZlIHRoYXQKICAgICBjb21tYW5kIGFuZCB0aGVuIG1ha2UgdGhlIGJ1ZyBoYXBwZW4pLiAgVGhp cyBjYXVzZXMgdGhlIGVycm9yIHRvCiAgICAgc3RhcnQgdGhlIExpc3AgZGVidWdnZXIsIHdoaWNo IHNob3dzIHlvdSBhIGJhY2t0cmFjZS4gIENvcHkgdGhlCiAgICAgdGV4dCBvZiB0aGUgZGVidWdn ZXLigJlzIGJhY2t0cmFjZSBpbnRvIHRoZSBidWcgcmVwb3J0LiAgKk5vdGUKICAgICBFZGVidWc6 IChlbGlzcClFZGVidWcsIGZvciBpbmZvcm1hdGlvbiBvbiBkZWJ1Z2dpbmcgRW1hY3MgTGlzcAog ICAgIHByb2dyYW1zIHdpdGggdGhlIEVkZWJ1ZyBwYWNrYWdlLgoKICAgICBUaGlzIHVzZSBvZiB0 aGUgZGVidWdnZXIgaXMgcG9zc2libGUgb25seSBpZiB5b3Uga25vdyBob3cgdG8gbWFrZQogICAg IHRoZSBidWcgaGFwcGVuIGFnYWluLiAgSWYgeW91IGNhbuKAmXQgbWFrZSBpdCBoYXBwZW4gYWdh aW4sIGF0IGxlYXN0CiAgICAgY29weSB0aGUgd2hvbGUgZXJyb3IgbWVzc2FnZS4KCiAgICAgSWYg RW1hY3MgYXBwZWFycyB0byBiZSBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wIG9yIGluIGEgdmVy eSBsb25nCiAgICAgb3BlcmF0aW9uLCB0eXBpbmcg4oCYQy1n4oCZIHdpdGggdGhlIHZhcmlhYmxl IOKAmGRlYnVnLW9uLXF1aXTigJkgbm9uLeKAmG5pbOKAmQogICAgIHdpbGwgc3RhcnQgdGhlIExp c3AgZGVidWdnZXIgYW5kIHNob3cgYSBiYWNrdHJhY2UuICBUaGlzIGJhY2t0cmFjZQogICAgIGlz IHVzZWZ1bCBmb3IgZGVidWdnaW5nIHN1Y2ggbG9uZyBsb29wcywgc28gaWYgeW91IGNhbiBwcm9k dWNlIGl0LAogICAgIGNvcHkgaXQgaW50byB0aGUgYnVnIHJlcG9ydC4KCiAgICAgSWYgeW91IGNh bm5vdCBnZXQgRW1hY3MgdG8gcmVzcG9uZCB0byDigJhDLWfigJkgKGUuZy4sIGJlY2F1c2UKICAg ICDigJhpbmhpYml0LXF1aXTigJkgaXMgc2V0KSwgdGhlbiB5b3UgY2FuIHRyeSBzZW5kaW5nIHRo ZSBzaWduYWwKICAgICBzcGVjaWZpZWQgYnkg4oCYZGVidWctb24tZXZlbnTigJkgKGRlZmF1bHQg U0lHVVNSMikgZnJvbSBvdXRzaWRlIEVtYWNzCiAgICAgdG8gY2F1c2UgaXQgdG8gZW50ZXIgdGhl IGRlYnVnZ2VyLgoKICAg4oCiIENoZWNrIHdoZXRoZXIgYW55IHByb2dyYW1zIHlvdSBoYXZlIGxv YWRlZCBpbnRvIHRoZSBMaXNwIHdvcmxkLAogICAgIGluY2x1ZGluZyB5b3VyIGluaXRpYWxpemF0 aW9uIGZpbGUsIHNldCBhbnkgdmFyaWFibGVzIHRoYXQgbWF5CiAgICAgYWZmZWN0IHRoZSBmdW5j dGlvbmluZyBvZiBFbWFjcy4gIEFsc28sIHNlZSB3aGV0aGVyIHRoZSBwcm9ibGVtCiAgICAgaGFw cGVucyBpbiBhIGZyZXNobHkgc3RhcnRlZCBFbWFjcyB3aXRob3V0IGxvYWRpbmcgeW91cgogICAg IGluaXRpYWxpemF0aW9uIGZpbGUgKHN0YXJ0IEVtYWNzIHdpdGggdGhlIOKAmC1R4oCZIHN3aXRj aCB0byBwcmV2ZW50CiAgICAgbG9hZGluZyB0aGUgaW5pdCBmaWxlcykuICBJZiB0aGUgcHJvYmxl bSBkb2VzIF9ub3RfIG9jY3VyIHRoZW4sIHlvdQogICAgIG11c3QgcmVwb3J0IHRoZSBwcmVjaXNl IGNvbnRlbnRzIG9mIGFueSBwcm9ncmFtcyB0aGF0IHlvdSBtdXN0IGxvYWQKICAgICBpbnRvIHRo ZSBMaXNwIHdvcmxkIGluIG9yZGVyIHRvIGNhdXNlIHRoZSBwcm9ibGVtIHRvIG9jY3VyLgoKICAg 4oCiIElmIHRoZSBwcm9ibGVtIGRvZXMgZGVwZW5kIG9uIGFuIGluaXQgZmlsZSBvciBvdGhlciBM aXNwIHByb2dyYW1zCiAgICAgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIHN0YW5kYXJkIEVtYWNz IHN5c3RlbSwgdGhlbiB5b3Ugc2hvdWxkCiAgICAgbWFrZSBzdXJlIGl0IGlzIG5vdCBhIGJ1ZyBp biB0aG9zZSBwcm9ncmFtcyBieSBjb21wbGFpbmluZyB0byB0aGVpcgogICAgIG1haW50YWluZXJz IGZpcnN0LiAgQWZ0ZXIgdGhleSB2ZXJpZnkgdGhhdCB0aGV5IGFyZSB1c2luZyBFbWFjcyBpbgog ICAgIGEgd2F5IHRoYXQgaXMgc3VwcG9zZWQgdG8gd29yaywgdGhleSBzaG91bGQgcmVwb3J0IHRo ZSBidWcuCgogICDigKIgSWYgeW91IHdpc2ggdG8gbWVudGlvbiBzb21ldGhpbmcgaW4gdGhlIEdO VSBFbWFjcyBzb3VyY2UsIHNob3cgdGhlCiAgICAgbGluZSBvZiBjb2RlIHdpdGggYSBmZXcgbGlu ZXMgb2YgY29udGV4dC4gIERvbuKAmXQganVzdCBnaXZlIGEgbGluZQogICAgIG51bWJlci4KCiAg ICAgVGhlIGxpbmUgbnVtYmVycyBpbiB0aGUgZGV2ZWxvcG1lbnQgc291cmNlcyBkb27igJl0IG1h dGNoIHRob3NlIGluCiAgICAgeW91ciBzb3VyY2VzLiAgSXQgd291bGQgdGFrZSBleHRyYSB3b3Jr IGZvciB0aGUgbWFpbnRhaW5lcnMgdG8KICAgICBkZXRlcm1pbmUgd2hhdCBjb2RlIGlzIGluIHlv dXIgdmVyc2lvbiBhdCBhIGdpdmVuIGxpbmUgbnVtYmVyLCBhbmQKICAgICB3ZSBjb3VsZCBub3Qg YmUgY2VydGFpbi4KCiAgIOKAoiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyb20gYSBDIGRlYnVn Z2VyIHN1Y2ggYXMgR0RCIG1pZ2h0IGVuYWJsZQogICAgIHNvbWVvbmUgdG8gZmluZCBhIHByb2Js ZW0gb24gYSBtYWNoaW5lIHdoaWNoIGhlIGRvZXMgbm90IGhhdmUKICAgICBhdmFpbGFibGUuICBJ ZiB5b3UgZG9u4oCZdCBrbm93IGhvdyB0byB1c2UgR0RCLCBwbGVhc2UgcmVhZCB0aGUgR0RCCiAg ICAgbWFudWFs4oCUaXQgaXMgbm90IHZlcnkgbG9uZywgYW5kIHVzaW5nIEdEQiBpcyBlYXN5LiAg WW91IGNhbiBmaW5kCiAgICAgdGhlIEdEQiBkaXN0cmlidXRpb24sIGluY2x1ZGluZyB0aGUgR0RC IG1hbnVhbCBpbiBvbmxpbmUgZm9ybSwgaW4KICAgICBtb3N0IG9mIHRoZSBzYW1lIHBsYWNlcyB5 b3UgY2FuIGZpbmQgdGhlIEVtYWNzIGRpc3RyaWJ1dGlvbi4gIFRvCiAgICAgcnVuIEVtYWNzIHVu ZGVyIEdEQiwgeW91IHNob3VsZCBzd2l0Y2ggdG8gdGhlIOKAmHNyY+KAmSBzdWJkaXJlY3Rvcnkg aW4KICAgICB3aGljaCBFbWFjcyB3YXMgY29tcGlsZWQsIHRoZW4gZG8g4oCYZ2RiIGVtYWNz4oCZ LiAgSXQgaXMgaW1wb3J0YW50IGZvcgogICAgIHRoZSBkaXJlY3Rvcnkg4oCYc3Jj4oCZIHRvIGJl IGN1cnJlbnQgc28gdGhhdCBHREIgd2lsbCByZWFkIHRoZQogICAgIOKAmC5nZGJpbml04oCZIGZp bGUgaW4gdGhpcyBkaXJlY3RvcnkuCgogICAgIEhvd2V2ZXIsIHlvdSBuZWVkIHRvIHRoaW5rIHdo ZW4geW91IGNvbGxlY3QgdGhlIGFkZGl0aW9uYWwKICAgICBpbmZvcm1hdGlvbiBpZiB5b3Ugd2Fu dCBpdCB0byBzaG93IHdoYXQgY2F1c2VzIHRoZSBidWcuCgogICAgIEZvciBleGFtcGxlLCBtYW55 IHBlb3BsZSBzZW5kIGp1c3QgYSBDLWxldmVsIGJhY2t0cmFjZSwgYnV0IHRoYXQgaXMKICAgICBu b3QgdmVyeSB1c2VmdWwgYnkgaXRzZWxmLiAgQSBzaW1wbGUgYmFja3RyYWNlIHdpdGggYXJndW1l bnRzIG9mdGVuCiAgICAgY29udmV5cyBsaXR0bGUgYWJvdXQgd2hhdCBpcyBoYXBwZW5pbmcgaW5z aWRlIEdOVSBFbWFjcywgYmVjYXVzZQogICAgIG1vc3Qgb2YgdGhlIGFyZ3VtZW50cyBsaXN0ZWQg aW4gdGhlIGJhY2t0cmFjZSBhcmUgcG9pbnRlcnMgdG8gTGlzcAogICAgIG9iamVjdHMuICBUaGUg bnVtZXJpYyB2YWx1ZXMgb2YgdGhlc2UgcG9pbnRlcnMgaGF2ZSBubyBzaWduaWZpY2FuY2UKICAg ICB3aGF0ZXZlcjsgYWxsIHRoYXQgbWF0dGVycyBpcyB0aGUgY29udGVudHMgb2YgdGhlIG9iamVj dHMgdGhleQogICAgIHBvaW50IHRvIChhbmQgbW9zdCBvZiB0aGUgY29udGVudHMgYXJlIHRoZW1z ZWx2ZXMgcG9pbnRlcnMpLgoKICAgICBUbyBwcm92aWRlIHVzZWZ1bCBpbmZvcm1hdGlvbiwgeW91 IG5lZWQgdG8gc2hvdyB0aGUgdmFsdWVzIG9mIExpc3AKICAgICBvYmplY3RzIGluIExpc3Agbm90 YXRpb24uICBEbyB0aGlzIGZvciBlYWNoIHZhcmlhYmxlIHdoaWNoIGlzIGEKICAgICBMaXNwIG9i amVjdCwgaW4gc2V2ZXJhbCBzdGFjayBmcmFtZXMgbmVhciB0aGUgYm90dG9tIG9mIHRoZSBzdGFj ay4KICAgICBMb29rIGF0IHRoZSBzb3VyY2UgdG8gc2VlIHdoaWNoIHZhcmlhYmxlcyBhcmUgTGlz cCBvYmplY3RzLCBiZWNhdXNlCiAgICAgdGhlIGRlYnVnZ2VyIHRoaW5rcyBvZiB0aGVtIGFzIGlu dGVnZXJzLgoKICAgICBUbyBzaG93IGEgdmFyaWFibGXigJlzIHZhbHVlIGluIExpc3Agc3ludGF4 LCBmaXJzdCBwcmludCBpdHMgdmFsdWUsCiAgICAgdGhlbiB1c2UgdGhlIHVzZXItZGVmaW5lZCBH REIgY29tbWFuZCDigJhwcuKAmSB0byBwcmludCB0aGUgTGlzcCBvYmplY3QKICAgICBpbiBMaXNw IHN5bnRheC4gIChJZiB5b3UgbXVzdCB1c2UgYW5vdGhlciBkZWJ1Z2dlciwgY2FsbCB0aGUKICAg ICBmdW5jdGlvbiDigJhkZWJ1Z19wcmludOKAmSB3aXRoIHRoZSBvYmplY3QgYXMgYW4gYXJndW1l bnQuKSAgVGhlIOKAmHBy4oCZCiAgICAgY29tbWFuZCBpcyBkZWZpbmVkIGJ5IHRoZSBmaWxlIOKA mC5nZGJpbml04oCZLCBhbmQgaXQgd29ya3Mgb25seSBpZiB5b3UKICAgICBhcmUgZGVidWdnaW5n IGEgcnVubmluZyBwcm9jZXNzIChub3Qgd2l0aCBhIGNvcmUgZHVtcCkuCgogICAgIFRvIG1ha2Ug TGlzcCBlcnJvcnMgc3RvcCBFbWFjcyBhbmQgcmV0dXJuIHRvIEdEQiwgcHV0IGEgYnJlYWtwb2lu dAogICAgIGF0IOKAmEZzaWduYWzigJkuCgogICAgIEZvciBhIHNob3J0IGxpc3Rpbmcgb2YgTGlz cCBmdW5jdGlvbnMgcnVubmluZywgdHlwZSB0aGUgR0RCIGNvbW1hbmQKICAgICDigJh4YmFja3Ry YWNl4oCZLgoKICAgICBUaGUgZmlsZSDigJguZ2RiaW5pdOKAmSBkZWZpbmVzIHNldmVyYWwgb3Ro ZXIgY29tbWFuZHMgdGhhdCBhcmUgdXNlZnVsCiAgICAgZm9yIGV4YW1pbmluZyB0aGUgZGF0YSB0 eXBlcyBhbmQgY29udGVudHMgb2YgTGlzcCBvYmplY3RzLiAgVGhlaXIKICAgICBuYW1lcyBiZWdp biB3aXRoIOKAmHjigJkuICBUaGVzZSBjb21tYW5kcyB3b3JrIGF0IGEgbG93ZXIgbGV2ZWwgdGhh bgogICAgIOKAmHBy4oCZLCBhbmQgYXJlIGxlc3MgY29udmVuaWVudCwgYnV0IHRoZXkgbWF5IHdv cmsgZXZlbiB3aGVuIOKAmHBy4oCZCiAgICAgZG9lcyBub3QsIHN1Y2ggYXMgd2hlbiBkZWJ1Z2dp bmcgYSBjb3JlIGR1bXAgb3Igd2hlbiBFbWFjcyBoYXMgaGFkCiAgICAgYSBmYXRhbCBzaWduYWwu CgogICAgIE1vcmUgZGV0YWlsZWQgYWR2aWNlIGFuZCBvdGhlciB1c2VmdWwgdGVjaG5pcXVlcyBm b3IgZGVidWdnaW5nCiAgICAgRW1hY3MgYXJlIGF2YWlsYWJsZSBpbiB0aGUgZmlsZSDigJhldGMv REVCVUfigJkgaW4gdGhlIEVtYWNzCiAgICAgZGlzdHJpYnV0aW9uLiAgVGhhdCBmaWxlIGFsc28g aW5jbHVkZXMgaW5zdHJ1Y3Rpb25zIGZvcgogICAgIGludmVzdGlnYXRpbmcgcHJvYmxlbXMgd2hl cmVieSBFbWFjcyBzdG9wcyByZXNwb25kaW5nIChtYW55IHBlb3BsZQogICAgIGFzc3VtZSB0aGF0 IEVtYWNzIGlzIOKAnGh1bmfigJ0sIHdoZXJlYXMgaW4gZmFjdCBpdCBtaWdodCBiZSBpbiBhbgog ICAgIGluZmluaXRlIGxvb3ApLgoKICAgICBUbyBmaW5kIHRoZSBmaWxlIOKAmGV0Yy9ERUJVR+KA mSBpbiB5b3VyIEVtYWNzIGluc3RhbGxhdGlvbiwgdXNlIHRoZQogICAgIGRpcmVjdG9yeSBuYW1l IHN0b3JlZCBpbiB0aGUgdmFyaWFibGUg4oCYZGF0YS1kaXJlY3RvcnnigJkuCgogICBIZXJlIGFy ZSBzb21lIHRoaW5ncyB0aGF0IGFyZSBub3QgbmVjZXNzYXJ5IGluIGEgYnVnIHJlcG9ydDoKCiAg IOKAoiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBlbnZlbG9wZSBvZiB0aGUgYnVn4oCUdGhpcyBpcyBu b3QgbmVjZXNzYXJ5IGZvcgogICAgIGEgcmVwcm9kdWNpYmxlIGJ1Zy4KCiAgICAgT2Z0ZW4gcGVv cGxlIHdobyBlbmNvdW50ZXIgYSBidWcgc3BlbmQgYSBsb3Qgb2YgdGltZSBpbnZlc3RpZ2F0aW5n CiAgICAgd2hpY2ggY2hhbmdlcyB0byB0aGUgaW5wdXQgZmlsZSB3aWxsIG1ha2UgdGhlIGJ1ZyBn byBhd2F5IGFuZCB3aGljaAogICAgIGNoYW5nZXMgd2lsbCBub3QgYWZmZWN0IGl0LgoKICAgICBU aGlzIGlzIG9mdGVuIHRpbWUtY29uc3VtaW5nIGFuZCBub3QgdmVyeSB1c2VmdWwsIGJlY2F1c2Ug dGhlIHdheQogICAgIHdlIHdpbGwgZmluZCB0aGUgYnVnIGlzIGJ5IHJ1bm5pbmcgYSBzaW5nbGUg ZXhhbXBsZSB1bmRlciB0aGUKICAgICBkZWJ1Z2dlciB3aXRoIGJyZWFrcG9pbnRzLCBub3QgYnkg cHVyZSBkZWR1Y3Rpb24gZnJvbSBhIHNlcmllcyBvZgogICAgIGV4YW1wbGVzLiAgWW91IG1pZ2h0 IGFzIHdlbGwgc2F2ZSB0aW1lIGJ5IG5vdCBzZWFyY2hpbmcgZm9yCiAgICAgYWRkaXRpb25hbCBl eGFtcGxlcy4gIEl0IGlzIGJldHRlciB0byBzZW5kIHRoZSBidWcgcmVwb3J0IHJpZ2h0CiAgICAg YXdheSwgZ28gYmFjayB0byBlZGl0aW5nLCBhbmQgZmluZCBhbm90aGVyIGJ1ZyB0byByZXBvcnQu CgogICAgIE9mIGNvdXJzZSwgaWYgeW91IGNhbiBmaW5kIGEgc2ltcGxlciBleGFtcGxlIHRvIHJl cG9ydCBfaW5zdGVhZF8gb2YKICAgICB0aGUgb3JpZ2luYWwgb25lLCB0aGF0IGlzIGEgY29udmVu aWVuY2UuICBFcnJvcnMgaW4gdGhlIG91dHB1dCB3aWxsCiAgICAgYmUgZWFzaWVyIHRvIHNwb3Qs IHJ1bm5pbmcgdW5kZXIgdGhlIGRlYnVnZ2VyIHdpbGwgdGFrZSBsZXNzIHRpbWUsCiAgICAgZXRj LgoKICAgICBIb3dldmVyLCBzaW1wbGlmaWNhdGlvbiBpcyBub3Qgdml0YWw7IGlmIHlvdSBjYW7i gJl0IGRvIHRoaXMgb3IgZG9u4oCZdAogICAgIGhhdmUgdGltZSB0byB0cnksIHBsZWFzZSByZXBv cnQgdGhlIGJ1ZyB3aXRoIHlvdXIgb3JpZ2luYWwgdGVzdAogICAgIGNhc2UuCgogICDigKIgQSBj b3JlIGR1bXAgZmlsZS4KCiAgICAgRGVidWdnaW5nIHRoZSBjb3JlIGR1bXAgbWlnaHQgYmUgdXNl ZnVsLCBidXQgaXQgY2FuIG9ubHkgYmUgZG9uZSBvbgogICAgIHlvdXIgbWFjaGluZSwgd2l0aCB5 b3VyIEVtYWNzIGV4ZWN1dGFibGUuICBUaGVyZWZvcmUsIHNlbmRpbmcgdGhlCiAgICAgY29yZSBk dW1wIGZpbGUgdG8gdGhlIEVtYWNzIG1haW50YWluZXJzIHdvbuKAmXQgYmUgdXNlZnVsLiAgQWJv dmUKICAgICBhbGwsIGRvbuKAmXQgaW5jbHVkZSB0aGUgY29yZSBmaWxlIGluIGFuIGVtYWlsIGJ1 ZyByZXBvcnQhICBTdWNoIGEKICAgICBsYXJnZSBtZXNzYWdlIGNhbiBiZSBleHRyZW1lbHkgaW5j b252ZW5pZW50LgoKICAg4oCiIEEgc3lzdGVtLWNhbGwgdHJhY2Ugb2YgRW1hY3MgZXhlY3V0aW9u LgoKICAgICBTeXN0ZW0tY2FsbCB0cmFjZXMgYXJlIHZlcnkgdXNlZnVsIGZvciBjZXJ0YWluIHNw ZWNpYWwga2luZHMgb2YKICAgICBkZWJ1Z2dpbmcsIGJ1dCBpbiBtb3N0IGNhc2VzIHRoZXkgZ2l2 ZSBsaXR0bGUgdXNlZnVsIGluZm9ybWF0aW9uLgogICAgIEl0IGlzIHRoZXJlZm9yZSBzdHJhbmdl IHRoYXQgbWFueSBwZW9wbGUgc2VlbSB0byB0aGluayB0aGF0IF90aGVfCiAgICAgd2F5IHRvIHJl cG9ydCBpbmZvcm1hdGlvbiBhYm91dCBhIGNyYXNoIGlzIHRvIHNlbmQgYSBzeXN0ZW0tY2FsbAog ICAgIHRyYWNlLiAgUGVyaGFwcyB0aGlzIGlzIGEgaGFiaXQgZm9ybWVkIGZyb20gZXhwZXJpZW5j ZSBkZWJ1Z2dpbmcKICAgICBwcm9ncmFtcyB0aGF0IGRvbuKAmXQgaGF2ZSBzb3VyY2UgY29kZSBv ciBkZWJ1Z2dpbmcgc3ltYm9scy4KCiAgICAgSW4gbW9zdCBwcm9ncmFtcywgYSBiYWNrdHJhY2Ug aXMgbm9ybWFsbHkgZmFyLCBmYXIgbW9yZSBpbmZvcm1hdGl2ZQogICAgIHRoYW4gYSBzeXN0ZW0t Y2FsbCB0cmFjZS4gIEV2ZW4gaW4gRW1hY3MsIGEgc2ltcGxlIGJhY2t0cmFjZSBpcwogICAgIGdl bmVyYWxseSBtb3JlIGluZm9ybWF0aXZlLCB0aG91Z2ggdG8gZ2l2ZSBmdWxsIGluZm9ybWF0aW9u IHlvdQogICAgIHNob3VsZCBzdXBwbGVtZW50IHRoZSBiYWNrdHJhY2UgYnkgZGlzcGxheWluZyB2 YXJpYWJsZSB2YWx1ZXMgYW5kCiAgICAgcHJpbnRpbmcgdGhlbSBhcyBMaXNwIG9iamVjdHMgd2l0 aCDigJhwcuKAmSAoc2VlIGFib3ZlKS4KCiAgIOKAoiBBIHBhdGNoIGZvciB0aGUgYnVnLgoKICAg ICBBIHBhdGNoIGZvciB0aGUgYnVnIGlzIHVzZWZ1bCBpZiBpdCBpcyBhIGdvb2Qgb25lLiAgQnV0 IGRvbuKAmXQgb21pdAogICAgIHRoZSBvdGhlciBpbmZvcm1hdGlvbiB0aGF0IGEgYnVnIHJlcG9y dCBuZWVkcywgc3VjaCBhcyB0aGUgdGVzdAogICAgIGNhc2UsIG9uIHRoZSBhc3N1bXB0aW9uIHRo YXQgYSBwYXRjaCBpcyBzdWZmaWNpZW50LiAgV2UgbWlnaHQgc2VlCiAgICAgcHJvYmxlbXMgd2l0 aCB5b3VyIHBhdGNoIGFuZCBkZWNpZGUgdG8gZml4IHRoZSBwcm9ibGVtIGFub3RoZXIgd2F5LAog ICAgIG9yIHdlIG1pZ2h0IG5vdCB1bmRlcnN0YW5kIGl0IGF0IGFsbC4gIEFuZCBpZiB3ZSBjYW7i gJl0IHVuZGVyc3RhbmQKICAgICB3aGF0IGJ1ZyB5b3UgYXJlIHRyeWluZyB0byBmaXgsIG9yIHdo eSB5b3VyIHBhdGNoIHNob3VsZCBiZSBhbgogICAgIGltcHJvdmVtZW50LCB3ZSBtdXN0buKAmXQg aW5zdGFsbCBpdC4KCiAgICAgKk5vdGUgU2VuZGluZyBQYXRjaGVzOjosIGZvciBndWlkZWxpbmVz IG9uIGhvdyB0byBtYWtlIGl0IGVhc3kgZm9yCiAgICAgdXMgdG8gdW5kZXJzdGFuZCBhbmQgaW5z dGFsbCB5b3VyIHBhdGNoZXMuCgogICDigKIgQSBndWVzcyBhYm91dCB3aGF0IHRoZSBidWcgaXMg b3Igd2hhdCBpdCBkZXBlbmRzIG9uLgoKICAgICBTdWNoIGd1ZXNzZXMgYXJlIHVzdWFsbHkgd3Jv bmcuICBFdmVuIGV4cGVydHMgY2Fu4oCZdCBndWVzcyByaWdodAogICAgIGFib3V0IHN1Y2ggdGhp bmdzIHdpdGhvdXQgZmlyc3QgdXNpbmcgdGhlIGRlYnVnZ2VyIHRvIGZpbmQgdGhlCiAgICAgZmFj dHMuCgoKKiogNTIuNSBTZW5kaW5nIFBhdGNoZXMgZm9yIEdOVSBFbWFjcwoKSWYgeW91IHdvdWxk IGxpa2UgdG8gd3JpdGUgYnVnIGZpeGVzIG9yIGltcHJvdmVtZW50cyBmb3IgR05VIEVtYWNzLCB0 aGF0CmlzIHZlcnkgaGVscGZ1bC4gIFdoZW4geW91IHNlbmQgeW91ciBjaGFuZ2VzLCBwbGVhc2Ug Zm9sbG93IHRoZXNlCmd1aWRlbGluZXMgdG8gbWFrZSBpdCBlYXN5IGZvciB0aGUgbWFpbnRhaW5l cnMgdG8gdXNlIHRoZW0uICBJZiB5b3UKZG9u4oCZdCBmb2xsb3cgdGhlc2UgZ3VpZGVsaW5lcywg eW91ciBpbmZvcm1hdGlvbiBtaWdodCBzdGlsbCBiZSB1c2VmdWwsCmJ1dCB1c2luZyBpdCB3aWxs IHRha2UgZXh0cmEgd29yay4gIE1haW50YWluaW5nIEdOVSBFbWFjcyBpcyBhIGxvdCBvZgp3b3Jr IGluIHRoZSBiZXN0IG9mIGNpcmN1bXN0YW5jZXMsIGFuZCB3ZSBjYW7igJl0IGtlZXAgdXAgdW5s ZXNzIHlvdSBkbwp5b3VyIGJlc3QgdG8gaGVscC4KCiAgIEV2ZXJ5IHBhdGNoIG11c3QgaGF2ZSBz ZXZlcmFsIHBpZWNlcyBvZiBpbmZvcm1hdGlvbiBiZWZvcmUgd2UgY2FuCnByb3Blcmx5IGV2YWx1 YXRlIGl0LgoKICAgV2hlbiB5b3UgaGF2ZSBhbGwgdGhlc2UgcGllY2VzLCBidW5kbGUgdGhlbSB1 cCBpbiBhIG1haWwgbWVzc2FnZSBhbmQKc2VuZCBpdCB0byB0aGUgZGV2ZWxvcGVycy4gIFNlbmRp bmcgaXQgdG8gPGJ1Zy1nbnUtZW1hY3NAZ251Lm9yZz4gKHdoaWNoCmlzIHRoZSBidWcvZmVhdHVy ZSBsaXN0KSBpcyByZWNvbW1lbmRlZCwgYmVjYXVzZSB0aGF0IGxpc3QgaXMgY291cGxlZCB0bwph IHRyYWNraW5nIHN5c3RlbSB0aGF0IG1ha2VzIGl0IGVhc2llciB0byBsb2NhdGUgcGF0Y2hlcy4g IElmIHlvdXIgcGF0Y2gKaXMgbm90IGNvbXBsZXRlIGFuZCB5b3UgdGhpbmsgaXQgbmVlZHMgbW9y ZSBkaXNjdXNzaW9uLCB5b3UgbWlnaHQgd2FudAp0byBzZW5kIGl0IHRvIDxlbWFjcy1kZXZlbEBn bnUub3JnPiBpbnN0ZWFkLiAgSWYgeW91IHJldmlzZSB5b3VyIHBhdGNoLApzZW5kIGl0IGFzIGEg Zm9sbG93dXAgdG8gdGhlIGluaXRpYWwgdG9waWMuCgogICBXZSBwcmVmZXIgdG8gZ2V0IHRoZSBw YXRjaGVzIGFzIHBsYWluIHRleHQsIGVpdGhlciBpbmxpbmUgKGJlIGNhcmVmdWwKeW91ciBtYWls IGNsaWVudCBkb2VzIG5vdCBjaGFuZ2UgbGluZSBicmVha3MpIG9yIGFzIE1JTUUgYXR0YWNobWVu dHMuCgogICDigKIgSW5jbHVkZSBhbiBleHBsYW5hdGlvbiB3aXRoIHlvdXIgY2hhbmdlcyBvZiB3 aGF0IHByb2JsZW0gdGhleSBmaXgKICAgICBvciB3aGF0IGltcHJvdmVtZW50IHRoZXkgYnJpbmcg YWJvdXQuCgogICAgICAgIOKAoiBGb3IgYSBmaXggZm9yIGFuIGV4aXN0aW5nIGJ1ZywgaXQgaXMg YmVzdCB0byByZXBseSB0byB0aGUKICAgICAgICAgIHJlbGV2YW50IGRpc2N1c3Npb24gb24gdGhl IOKAmGJ1Zy1nbnUtZW1hY3PigJkgbGlzdCwgb3IgdGhlIGJ1ZwogICAgICAgICAgZW50cnkgaW4g dGhlIEdOVSBCdWcgVHJhY2tlciBhdCA8aHR0cHM6Ly9kZWJidWdzLmdudS5vcmc+LgogICAgICAg ICAgRXhwbGFpbiB3aHkgeW91ciBjaGFuZ2UgZml4ZXMgdGhlIGJ1Zy4KCiAgICAgICAg4oCiIEZv ciBhIG5ldyBmZWF0dXJlLCBpbmNsdWRlIGEgZGVzY3JpcHRpb24gb2YgdGhlIGZlYXR1cmUgYW5k CiAgICAgICAgICB5b3VyIGltcGxlbWVudGF0aW9uLgoKICAgICAgICDigKIgRm9yIGEgbmV3IGJ1 ZywgaW5jbHVkZSBhIHByb3BlciBidWcgcmVwb3J0IGZvciB0aGUgcHJvYmxlbSB5b3UKICAgICAg ICAgIHRoaW5rIHlvdSBoYXZlIGZpeGVkLiAgV2UgbmVlZCB0byBjb252aW5jZSBvdXJzZWx2ZXMg dGhhdCB0aGUKICAgICAgICAgIGNoYW5nZSBpcyByaWdodCBiZWZvcmUgaW5zdGFsbGluZyBpdC4g IEV2ZW4gaWYgaXQgaXMgY29ycmVjdCwKICAgICAgICAgIHdlIG1pZ2h0IGhhdmUgdHJvdWJsZSB1 bmRlcnN0YW5kaW5nIGl0IGlmIHdlIGRvbuKAmXQgaGF2ZSBhIHdheQogICAgICAgICAgdG8gcmVw cm9kdWNlIHRoZSBwcm9ibGVtLgoKICAg4oCiIEluY2x1ZGUgYWxsIHRoZSBjb21tZW50cyB0aGF0 IGFyZSBhcHByb3ByaWF0ZSB0byBoZWxwIHBlb3BsZQogICAgIHJlYWRpbmcgdGhlIHNvdXJjZSBp biB0aGUgZnV0dXJlIHVuZGVyc3RhbmQgd2h5IHRoaXMgY2hhbmdlIHdhcwogICAgIG5lZWRlZC4K CiAgIOKAoiBEb27igJl0IG1peCB0b2dldGhlciBjaGFuZ2VzIG1hZGUgZm9yIGRpZmZlcmVudCBy ZWFzb25zLiAgU2VuZCB0aGVtCiAgICAgX2luZGl2aWR1YWxseV8uCgogICAgIElmIHlvdSBtYWtl IHR3byBjaGFuZ2VzIGZvciBzZXBhcmF0ZSByZWFzb25zLCB0aGVuIHdlIG1pZ2h0IG5vdAogICAg IHdhbnQgdG8gaW5zdGFsbCB0aGVtIGJvdGguICBXZSBtaWdodCB3YW50IHRvIGluc3RhbGwganVz dCBvbmUuICBJZgogICAgIHlvdSBzZW5kIHRoZW0gYWxsIGp1bWJsZWQgdG9nZXRoZXIgaW4gYSBz aW5nbGUgc2V0IG9mIGRpZmZzLCB3ZQogICAgIGhhdmUgdG8gZG8gZXh0cmEgd29yayB0byBkaXNl bnRhbmdsZSB0aGVt4oCUdG8gZmlndXJlIG91dCB3aGljaCBwYXJ0cwogICAgIG9mIHRoZSBjaGFu Z2Ugc2VydmUgd2hpY2ggcHVycG9zZS4gIElmIHdlIGRvbuKAmXQgaGF2ZSB0aW1lIGZvciB0aGlz LAogICAgIHdlIG1pZ2h0IGhhdmUgdG8gaWdub3JlIHlvdXIgY2hhbmdlcyBlbnRpcmVseS4KCiAg ICAgSWYgeW91IHNlbmQgZWFjaCBjaGFuZ2UgYXMgc29vbiBhcyB5b3UgaGF2ZSB3cml0dGVuIGl0 LCB3aXRoIGl0cwogICAgIG93biBleHBsYW5hdGlvbiwgdGhlbiB0d28gY2hhbmdlcyBuZXZlciBn ZXQgdGFuZ2xlZCB1cCwgYW5kIHdlIGNhbgogICAgIGNvbnNpZGVyIGVhY2ggb25lIHByb3Blcmx5 IHdpdGhvdXQgYW55IGV4dHJhIHdvcmsgdG8gZGlzZW50YW5nbGUKICAgICB0aGVtLgoKICAg4oCi IFNlbmQgZWFjaCBjaGFuZ2UgYXMgc29vbiBhcyB0aGF0IGNoYW5nZSBpcyBmaW5pc2hlZC4gIFNv bWV0aW1lcwogICAgIHBlb3BsZSB0aGluayB0aGV5IGFyZSBoZWxwaW5nIHVzIGJ5IGFjY3VtdWxh dGluZyBtYW55IGNoYW5nZXMgdG8KICAgICBzZW5kIHRoZW0gYWxsIHRvZ2V0aGVyLiAgQXMgZXhw bGFpbmVkIGFib3ZlLCB0aGlzIGlzIGFic29sdXRlbHkgdGhlCiAgICAgd29yc3QgdGhpbmcgeW91 IGNvdWxkIGRvLgoKICAgICBTaW5jZSB5b3Ugc2hvdWxkIHNlbmQgZWFjaCBjaGFuZ2Ugc2VwYXJh dGVseSwgeW91IG1pZ2h0IGFzIHdlbGwKICAgICBzZW5kIGl0IHJpZ2h0IGF3YXkuICBUaGF0IGdp dmVzIHVzIHRoZSBvcHRpb24gb2YgaW5zdGFsbGluZyBpdAogICAgIGltbWVkaWF0ZWx5IGlmIGl0 IGlzIGltcG9ydGFudC4KCiAgIOKAoiBUaGUgcGF0Y2ggaXRzZWxmLgoKICAgICBVc2Ug4oCYZGlm ZiAtdeKAmSB0byBtYWtlIHlvdXIgZGlmZnMuICBEaWZmcyB3aXRob3V0IGNvbnRleHQgYXJlIGhh cmQKICAgICB0byBpbnN0YWxsIHJlbGlhYmx5LiAgTW9yZSB0aGFuIHRoYXQsIHRoZXkgYXJlIGhh cmQgdG8gc3R1ZHk7IHdlCiAgICAgbXVzdCBhbHdheXMgc3R1ZHkgYSBwYXRjaCB0byBkZWNpZGUg d2hldGhlciB3ZSB3YW50IHRvIGluc3RhbGwgaXQuCiAgICAgQ29udGV4dCBmb3JtYXQgaXMgYmV0 dGVyIHRoYW4gY29udGV4dGxlc3MgZGlmZnMsIGJ1dCB3ZSBwcmVmZXIgdGhlCiAgICAgdW5pZmll ZCBmb3JtYXQuCgogICAgIElmIHlvdSBoYXZlIEdOVSBkaWZmLCB1c2Ug4oCYZGlmZiAtdSAtRide W19hLXpBLVowLTkkXVwrICooJ+KAmSB3aGVuCiAgICAgbWFraW5nIGRpZmZzIG9mIEMgY29kZS4g IFRoaXMgc2hvd3MgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIHRoYXQKICAgICBlYWNoIGNoYW5n ZSBvY2N1cnMgaW4uCgogICAgIElmIHlvdSBhcmUgdXNpbmcgdGhlIEVtYWNzIHJlcG9zaXRvcnks IG1ha2Ugc3VyZSB5b3VyIGNvcHkgaXMKICAgICB1cC10by1kYXRlIChlLmcuLCB3aXRoIOKAmGdp dCBwdWxs4oCZKS4gIFlvdSBjYW4gY29tbWl0IHlvdXIgY2hhbmdlcyB0bwogICAgIGEgcHJpdmF0 ZSBicmFuY2ggYW5kIGdlbmVyYXRlIGEgcGF0Y2ggZnJvbSB0aGUgbWFzdGVyIHZlcnNpb24gYnkK ICAgICB1c2luZyDigJhnaXQgZm9ybWF0LXBhdGNoIG1hc3RlcuKAmS4gIE9yIHlvdSBjYW4gbGVh dmUgeW91ciBjaGFuZ2VzCiAgICAgdW5jb21taXR0ZWQgYW5kIHVzZSDigJhnaXQgZGlmZuKAmS4K CiAgIOKAoiBBdm9pZCBhbnkgYW1iaWd1aXR5IGFzIHRvIHdoaWNoIGlzIHRoZSBvbGQgdmVyc2lv biBhbmQgd2hpY2ggaXMgdGhlCiAgICAgbmV3LiAgUGxlYXNlIG1ha2UgdGhlIG9sZCB2ZXJzaW9u IHRoZSBmaXJzdCBhcmd1bWVudCB0byBkaWZmLCBhbmQKICAgICB0aGUgbmV3IHZlcnNpb24gdGhl IHNlY29uZCBhcmd1bWVudC4gIEFuZCBwbGVhc2UgZ2l2ZSBvbmUgdmVyc2lvbgogICAgIG9yIHRo ZSBvdGhlciBhIG5hbWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciBpdCBpcyB0aGUgb2xkIHZlcnNp b24gb3IKICAgICB5b3VyIG5ldyBjaGFuZ2VkIG9uZS4KCiAgIOKAoiBXcml0ZSB0aGUgY29tbWl0 IGxvZyBlbnRyaWVzIGZvciB5b3VyIGNoYW5nZXMuICBUaGlzIGlzIGJvdGggdG8KICAgICBzYXZl IHVzIHRoZSBleHRyYSB3b3JrIG9mIHdyaXRpbmcgdGhlbSwgYW5kIHRvIGhlbHAgZXhwbGFpbiB5 b3VyCiAgICAgY2hhbmdlcyBzbyB3ZSBjYW4gdW5kZXJzdGFuZCB0aGVtLgoKICAgICBUaGUgcHVy cG9zZSBvZiB0aGUgY29tbWl0IGxvZyBpcyB0byBzaG93IHBlb3BsZSB3aGVyZSB0byBmaW5kIHdo YXQKICAgICB3YXMgY2hhbmdlZC4gIFNvIHlvdSBuZWVkIHRvIGJlIHNwZWNpZmljIGFib3V0IHdo YXQgZnVuY3Rpb25zIHlvdQogICAgIGNoYW5nZWQ7IGluIGxhcmdlIGZ1bmN0aW9ucywgaXTigJlz IG9mdGVuIGhlbHBmdWwgdG8gaW5kaWNhdGUgd2hlcmUKICAgICB3aXRoaW4gdGhlIGZ1bmN0aW9u IHRoZSBjaGFuZ2Ugd2FzLgoKICAgICBPbiB0aGUgb3RoZXIgaGFuZCwgb25jZSB5b3UgaGF2ZSBz aG93biBwZW9wbGUgd2hlcmUgdG8gZmluZCB0aGUKICAgICBjaGFuZ2UsIHlvdSBuZWVkIG5vdCBl eHBsYWluIGl0cyBwdXJwb3NlIGluIHRoZSBjaGFuZ2UgbG9nLiAgVGh1cywKICAgICBpZiB5b3Ug YWRkIGEgbmV3IGZ1bmN0aW9uLCBhbGwgeW91IG5lZWQgdG8gc2F5IGFib3V0IGl0IGlzIHRoYXQg aXQKICAgICBpcyBuZXcuICBJZiB5b3UgZmVlbCB0aGF0IHRoZSBwdXJwb3NlIG5lZWRzIGV4cGxh aW5pbmcsIGl0IHByb2JhYmx5CiAgICAgZG9lc+KAlGJ1dCBwdXQgdGhlIGV4cGxhbmF0aW9uIGlu IGNvbW1lbnRzIGluIHRoZSBjb2RlLiAgSXQgd2lsbCBiZQogICAgIG1vcmUgdXNlZnVsIHRoZXJl LgoKICAgICBQbGVhc2UgbG9vayBhdCB0aGUgY29tbWl0IGxvZyBlbnRyaWVzIG9mIHJlY2VudCBj b21taXRzIHRvIHNlZSB3aGF0CiAgICAgc29ydHMgb2YgaW5mb3JtYXRpb24gdG8gcHV0IGluLCBh bmQgdG8gbGVhcm4gdGhlIHN0eWxlIHRoYXQgd2UgdXNlLgogICAgIE5vdGUgdGhhdCwgdW5saWtl IHNvbWUgb3RoZXIgcHJvamVjdHMsIHdlIGRvIHJlcXVpcmUgY29tbWl0IGxvZ3MKICAgICBmb3Ig ZG9jdW1lbnRhdGlvbiwgaS5lLiwgVGV4aW5mbyBmaWxlcy4gICpOb3RlIENoYW5nZSBMb2c6Oiwg Kk5vdGUKICAgICBDaGFuZ2UgTG9nIENvbmNlcHRzOiAoc3RhbmRhcmRzKUNoYW5nZSBMb2cgQ29u Y2VwdHMuCgogICDigKIgV2hlbiB5b3Ugd3JpdGUgdGhlIGZpeCwga2VlcCBpbiBtaW5kIHRoYXQg d2UgY2Fu4oCZdCBpbnN0YWxsIGEgY2hhbmdlCiAgICAgdGhhdCB3b3VsZCBicmVhayBvdGhlciBz eXN0ZW1zLiAgUGxlYXNlIHRoaW5rIGFib3V0IHdoYXQgZWZmZWN0CiAgICAgeW91ciBjaGFuZ2Ug d2lsbCBoYXZlIGlmIGNvbXBpbGVkIG9uIGFub3RoZXIgdHlwZSBvZiBzeXN0ZW0uCgogICAgIFNv bWV0aW1lcyBwZW9wbGUgc2VuZCBmaXhlcyB0aGF0IF9taWdodF8gYmUgYW4gaW1wcm92ZW1lbnQg aW4KICAgICBnZW5lcmFs4oCUYnV0IGl0IGlzIGhhcmQgdG8gYmUgc3VyZSBvZiB0aGlzLiAgSXTi gJlzIGhhcmQgdG8gaW5zdGFsbAogICAgIHN1Y2ggY2hhbmdlcyBiZWNhdXNlIHdlIGhhdmUgdG8g c3R1ZHkgdGhlbSB2ZXJ5IGNhcmVmdWxseS4gIE9mCiAgICAgY291cnNlLCBhIGdvb2QgZXhwbGFu YXRpb24gb2YgdGhlIHJlYXNvbmluZyBieSB3aGljaCB5b3UgY29uY2x1ZGVkCiAgICAgdGhlIGNo YW5nZSB3YXMgY29ycmVjdCBjYW4gaGVscCBjb252aW5jZSB1cy4KCiAgICAgVGhlIHNhZmVzdCBj aGFuZ2VzIGFyZSBjaGFuZ2VzIHRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBhCiAgICAg cGFydGljdWxhciBtYWNoaW5lLiAgVGhlc2UgYXJlIHNhZmUgYmVjYXVzZSB0aGV5IGNhbuKAmXQg Y3JlYXRlIG5ldwogICAgIGJ1Z3Mgb24gb3RoZXIgbWFjaGluZXMuCgogICAgIFBsZWFzZSBoZWxw IHVzIGtlZXAgdXAgd2l0aCB0aGUgd29ya2xvYWQgYnkgZGVzaWduaW5nIHRoZSBwYXRjaCBpbgog ICAgIGEgZm9ybSB0aGF0IGlzIGNsZWFybHkgc2FmZSB0byBpbnN0YWxsLgoKCiogNTMgQ29udHJp YnV0aW5nIHRvIEVtYWNzIERldmVsb3BtZW50CgpFbWFjcyBpcyBhIGNvbGxhYm9yYXRpdmUgcHJv amVjdCBhbmQgd2UgZW5jb3VyYWdlIGNvbnRyaWJ1dGlvbnMgZnJvbQphbnlvbmUgYW5kIGV2ZXJ5 b25lLgoKICAgVGhlcmUgYXJlIG1hbnkgd2F5cyB0byBjb250cmlidXRlIHRvIEVtYWNzOgoKICAg 4oCiIGZpbmQgYW5kIHJlcG9ydCBidWdzOyAqTm90ZSBCdWdzOjouCgogICDigKIgYW5zd2VyIHF1 ZXN0aW9ucyBvbiB0aGUgRW1hY3MgdXNlciBtYWlsaW5nIGxpc3QKICAgICA8aHR0cHM6Ly9saXN0 cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vaGVscC1nbnUtZW1hY3M+LgoKICAg4oCiIHdyaXRl IGRvY3VtZW50YXRpb24sIGVpdGhlciBvbiB0aGUgd2lraQogICAgIChodHRwczovL3d3dy5lbWFj c3dpa2kub3JnLyksIG9yIGluIHRoZSBFbWFjcyBzb3VyY2UgcmVwb3NpdG9yeQogICAgICgqbm90 ZSBTZW5kaW5nIFBhdGNoZXM6OikuCgogICDigKIgY2hlY2sgaWYgZXhpc3RpbmcgYnVnIHJlcG9y dHMgYXJlIGZpeGVkIGluIG5ld2VyIHZlcnNpb25zIG9mIEVtYWNzCiAgICAgPGh0dHBzOi8vZGVi YnVncy5nbnUub3JnL2NnaS9wa2dyZXBvcnQuY2dpP3doaWNoPXBrZyZkYXRhPWVtYWNzPi4KCiAg IOKAoiBmaXggZXhpc3RpbmcgYnVnIHJlcG9ydHMuCgogICDigKIgaW1wbGVtZW50IGEgZmVhdHVy ZSBsaXN0ZWQgaW4gdGhlIOKAmGV0Yy9UT0RP4oCZIGZpbGUgaW4gdGhlIEVtYWNzCiAgICAgZGlz dHJpYnV0aW9uLCBhbmQgc3VibWl0IGEgcGF0Y2guCgogICDigKIgaW1wbGVtZW50IGEgbmV3IGZl YXR1cmUsIGFuZCBzdWJtaXQgYSBwYXRjaC4KCiAgIOKAoiBkZXZlbG9wIGEgcGFja2FnZSB0aGF0 IHdvcmtzIHdpdGggRW1hY3MsIGFuZCBwdWJsaXNoIGl0IG9uIHlvdXIgb3duCiAgICAgb3IgaW4g R05VIEVMUEEgKDxodHRwczovL2VscGEuZ251Lm9yZy8+KS4KCiAgIOKAoiBwb3J0IEVtYWNzIHRv IGEgbmV3IHBsYXRmb3JtLCBidXQgdGhhdCBpcyBub3QgY29tbW9uIG5vd2FkYXlzLgoKICAgSWYg eW91IHdvdWxkIGxpa2UgdG8gd29yayBvbiBpbXByb3ZpbmcgRW1hY3MsIHBsZWFzZSBjb250YWN0 IHRoZQptYWludGFpbmVycyBhdCA8ZW1hY3MtZGV2ZWxAZ251Lm9yZz4uICBZb3UgY2FuIGFzayBm b3Igc3VnZ2VzdGVkCnByb2plY3RzIG9yIHN1Z2dlc3QgeW91ciBvd24gaWRlYXMuCgogICBJZiB5 b3UgaGF2ZSBhbHJlYWR5IHdyaXR0ZW4gYW4gaW1wcm92ZW1lbnQsIHBsZWFzZSB0ZWxsIHVzIGFi b3V0IGl0LgpJZiB5b3UgaGF2ZSBub3QgeWV0IHN0YXJ0ZWQgd29yaywgaXQgaXMgdXNlZnVsIHRv IGNvbnRhY3QKPGVtYWNzLWRldmVsQGdudS5vcmc+IGJlZm9yZSB5b3Ugc3RhcnQ7IGl0IG1pZ2h0 IGJlIHBvc3NpYmxlIHRvIHN1Z2dlc3QKd2F5cyB0byBtYWtlIHlvdXIgZXh0ZW5zaW9uIGZpdCBp biBiZXR0ZXIgd2l0aCB0aGUgcmVzdCBvZiBFbWFjcy4KCiAgIFdoZW4gaW1wbGVtZW50aW5nIGEg ZmVhdHVyZSwgcGxlYXNlIGZvbGxvdyB0aGUgRW1hY3MgY29kaW5nCnN0YW5kYXJkczsgKk5vdGUg Q29kaW5nIFN0YW5kYXJkczo6LiAgSW4gYWRkaXRpb24sIG5vbi10cml2aWFsCmNvbnRyaWJ1dGlv bnMgcmVxdWlyZSBhIGNvcHlyaWdodCBhc3NpZ25tZW50IHRvIHRoZSBGU0Y7ICpOb3RlIENvcHly aWdodApBc3NpZ25tZW50OjouCgogICBUaGUgZGV2ZWxvcG1lbnQgdmVyc2lvbiBvZiBFbWFjcyBj YW4gYmUgZG93bmxvYWRlZCBmcm9tIHRoZQpyZXBvc2l0b3J5IHdoZXJlIGl0IGlzIGFjdGl2ZWx5 IG1haW50YWluZWQgYnkgYSBncm91cCBvZiBkZXZlbG9wZXJzLgpTZWUgdGhlIEVtYWNzIHByb2pl Y3QgcGFnZSA8aHR0cHM6Ly9zYXZhbm5haC5nbnUub3JnL3Byb2plY3RzL2VtYWNzLz4KZm9yIGFj Y2VzcyBkZXRhaWxzLgoKICAgSXQgaXMgaW1wb3J0YW50IHRvIHdyaXRlIHlvdXIgcGF0Y2ggYmFz ZWQgb24gdGhlIGN1cnJlbnQgd29ya2luZwp2ZXJzaW9uLiAgSWYgeW91IHN0YXJ0IGZyb20gYW4g b2xkZXIgdmVyc2lvbiwgeW91ciBwYXRjaCBtYXkgYmUgb3V0ZGF0ZWQKKHNvIHRoYXQgbWFpbnRh aW5lcnMgd2lsbCBoYXZlIGEgaGFyZCB0aW1lIGFwcGx5aW5nIGl0KSwgb3IgY2hhbmdlcyBpbgpF bWFjcyBtYXkgaGF2ZSBtYWRlIHlvdXIgcGF0Y2ggdW5uZWNlc3NhcnkuICBBZnRlciB5b3UgaGF2 ZSBkb3dubG9hZGVkCnRoZSByZXBvc2l0b3J5IHNvdXJjZSwgeW91IHNob3VsZCByZWFkIHRoZSBm aWxlIOKAmElOU1RBTEwuUkVQT+KAmSBmb3IgYnVpbGQKaW5zdHJ1Y3Rpb25zICh0aGV5IGRpZmZl ciB0byBzb21lIGV4dGVudCBmcm9tIGEgbm9ybWFsIGJ1aWxkKS4KCiAgIElmIHlvdSB3b3VsZCBs aWtlIHRvIG1ha2UgbW9yZSBleHRlbnNpdmUgY29udHJpYnV0aW9ucywgc2VlIHRoZQrigJhDT05U UklCVVRF4oCZIGZpbGUgaW4gdGhlIEVtYWNzIGRpc3RyaWJ1dGlvbiBmb3IgaW5mb3JtYXRpb24g b24gaG93IHRvIGJlCmFuIEVtYWNzIGRldmVsb3Blci4KCiAgIEZvciBkb2N1bWVudGF0aW9uIG9u IEVtYWNzICh0byB1bmRlcnN0YW5kIGhvdyB0byBpbXBsZW1lbnQgeW91cgpkZXNpcmVkIGNoYW5n ZSksIHJlZmVyIHRvOgoKICAg4oCiICpOb3RlIEVtYWNzIE1hbnVhbDogKGVtYWNzKVRvcC4KCiAg IOKAoiAqTm90ZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWw6IChlbGlzcClUb3AuCgogICDi gKIgPGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3M+CgogICDigKIgPGh0dHBzOi8v d3d3LmVtYWNzd2lraS5vcmcvPgoKKyBNZW51OgoKICAtIENvZGluZyBTdGFuZGFyZHM6OiAgICAg ICAgR05VIEVtYWNzIGNvZGluZyBzdGFuZGFyZHMKICAtIENvcHlyaWdodCBBc3NpZ25tZW50Ojog ICAgYXNzaWduaW5nIGNvcHlyaWdodCB0byB0aGUgRlNGCgoKKiogNTMuMSBDb2RpbmcgU3RhbmRh cmRzCgpDb250cmlidXRlZCBjb2RlIHNob3VsZCBmb2xsb3cgdGhlIEdOVSBDb2RpbmcgU3RhbmRh cmRzCjxodHRwczovL3d3dy5nbnUub3JnL3ByZXAvc3RhbmRhcmRzLz4uICBUaGlzIG1heSBhbHNv IGJlIGF2YWlsYWJsZSBpbgppbmZvIG9uIHlvdXIgc3lzdGVtLgoKICAgSWYgaXQgZG9lc27igJl0 LCB3ZeKAmWxsIG5lZWQgdG8gZmluZCBzb21lb25lIHRvIGZpeCB0aGUgY29kZSBiZWZvcmUgd2UK Y2FuIHVzZSBpdC4KCiAgIEVtYWNzIGhhcyBhZGRpdGlvbmFsIHN0eWxlIGFuZCBjb2RpbmcgY29u dmVudGlvbnM6CgogICDigKIgKk5vdGUg4oCcVGlwcyBhbmQgQ29udmVudGlvbnPigJ0gQXBwZW5k aXggaW4gdGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlOgogICAgIChlbGlzcClUaXBzLgoKICAg4oCi IEF2b2lkIHVzaW5nIOKAmGRlZmFkdmljZeKAmSBvciDigJh3aXRoLWV2YWwtYWZ0ZXItbG9hZOKA mSBmb3IgTGlzcCBjb2RlIHRvCiAgICAgYmUgaW5jbHVkZWQgaW4gRW1hY3MuCgogICDigKIgUmVt b3ZlIGFsbCB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIGFsbCBzb3VyY2UgYW5kIHRleHQgZmlsZXMu CgogICDigKIgRW1hY3MgaGFzIG5vIGNvbnZlbnRpb24gb24gd2hldGhlciB0byB1c2UgdGFicyBp biBzb3VyY2UgY29kZTsKICAgICBwbGVhc2UgZG9u4oCZdCBjaGFuZ2Ugd2hpdGVzcGFjZSBpbiB0 aGUgZmlsZXMgeW91IGVkaXQuCgogICDigKIgVXNlIOKAmD9cc+KAmSBpbnN0ZWFkIG9mIOKAmD8g 4oCZIGluIExpc3AgY29kZSBmb3IgYSBzcGFjZSBjaGFyYWN0ZXIuCgoKKiogNTMuMiBDb3B5cmln aHQgQXNzaWdubWVudAoKVGhlIEZTRiAoRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uKSBpcyB0aGUg Y29weXJpZ2h0IGhvbGRlciBmb3IgR05VCkVtYWNzLiAgVGhlIEZTRiBpcyBhIG5vbnByb2ZpdCB3 aXRoIGEgd29ybGR3aWRlIG1pc3Npb24gdG8gcHJvbW90ZQpjb21wdXRlciB1c2VyIGZyZWVkb20g YW5kIHRvIGRlZmVuZCB0aGUgcmlnaHRzIG9mIGFsbCBmcmVlIHNvZnR3YXJlCnVzZXJzLiAgRm9y IGdlbmVyYWwgaW5mb3JtYXRpb24sIHNlZSB0aGUgd2Vic2l0ZSA8aHR0cHM6Ly93d3cuZnNmLm9y Zy8+LgoKICAgR2VuZXJhbGx5IHNwZWFraW5nLCBmb3Igbm9uLXRyaXZpYWwgY29udHJpYnV0aW9u cyB0byBHTlUgRW1hY3MgYW5kCnBhY2thZ2VzIHN0b3JlZCBpbiBHTlUgRUxQQSwgd2UgcmVxdWly ZSB0aGF0IHRoZSBjb3B5cmlnaHQgYmUgYXNzaWduZWQKdG8gdGhlIEZTRi4gIEZvciB0aGUgcmVh c29ucyBiZWhpbmQgdGhpcywgc2VlCjxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL3doeS1h c3NpZ24uaHRtbD4uCgogICBDb3B5cmlnaHQgYXNzaWdubWVudCBpcyBhIHNpbXBsZSBwcm9jZXNz LiAgUmVzaWRlbnRzIG9mIHNvbWUKY291bnRyaWVzIGNhbiBkbyBpdCBlbnRpcmVseSBlbGVjdHJv bmljYWxseS4gIFdlIGNhbiBoZWxwIHlvdSBnZXQKc3RhcnRlZCwgYW5kIGFuc3dlciBhbnkgcXVl c3Rpb25zIHlvdSBtYXkgaGF2ZSAob3IgcG9pbnQgeW91IHRvIHRoZQpwZW9wbGUgd2l0aCB0aGUg YW5zd2VycyksIGF0IHRoZSA8ZW1hY3MtZGV2ZWxAZ251Lm9yZz4gbWFpbGluZyBsaXN0LgoKICAg KFBsZWFzZSBub3RlOiBnZW5lcmFsIGRpc2N1c3Npb24gYWJvdXQgd2h5IHNvbWUgR05VIHByb2pl Y3RzIGFzayBmb3IKYSBjb3B5cmlnaHQgYXNzaWdubWVudCBpcyBvZmYtdG9waWMgZm9yIGVtYWNz LWRldmVsLiAgU2VlCmdudS1taXNjLWRpc2N1c3MgaW5zdGVhZC4pCgogICBBIGNvcHlyaWdodCBk aXNjbGFpbWVyIGlzIGFsc28gYSBwb3NzaWJpbGl0eSwgYnV0IHdlIHByZWZlciBhbgphc3NpZ25t ZW50LiAgTm90ZSB0aGF0IHRoZSBkaXNjbGFpbWVyLCBsaWtlIGFuIGFzc2lnbm1lbnQsIGludm9s dmVzIHlvdQpzZW5kaW5nIHNpZ25lZCBwYXBlcndvcmsgdG8gdGhlIEZTRiAoc2ltcGx5IHNheWlu ZyDigJx0aGlzIGlzIGluIHRoZQpwdWJsaWMgZG9tYWlu4oCdIGlzIG5vdCBlbm91Z2gpLiAgQWxz bywgYSBkaXNjbGFpbWVyIGNhbm5vdCBiZSBhcHBsaWVkIHRvCmZ1dHVyZSB3b3JrLCBpdCBoYXMg dG8gYmUgcmVwZWF0ZWQgZWFjaCB0aW1lIHlvdSB3YW50IHRvIHNlbmQgc29tZXRoaW5nCm5ldy4K CiAgIFdlIGNhbiBhY2NlcHQgc21hbGwgY2hhbmdlcyAocm91Z2hseSwgZmV3ZXIgdGhhbiAxNSBs aW5lcykgd2l0aG91dCBhbgphc3NpZ25tZW50LiAgVGhpcyBpcyBhIGN1bXVsYXRpdmUgbGltaXQg KGUuZy4sIHRocmVlIHNlcGFyYXRlIDUgbGluZQpwYXRjaGVzKSBvdmVyIGFsbCB5b3VyIGNvbnRy aWJ1dGlvbnMuCgoKKiA1NCBIb3cgVG8gR2V0IEhlbHAgd2l0aCBHTlUgRW1hY3MKCklmIHlvdSBu ZWVkIGhlbHAgaW5zdGFsbGluZywgdXNpbmcgb3IgY2hhbmdpbmcgR05VIEVtYWNzLCB0aGVyZSBh cmUgdHdvCndheXMgdG8gZmluZCBpdDoKCiAgIOKAoiBTZW5kIGEgbWVzc2FnZSB0byB0aGUgbWFp bGluZyBsaXN0IDxoZWxwLWdudS1lbWFjc0BnbnUub3JnPiwgb3IKICAgICBwb3N0IHlvdXIgcmVx dWVzdCBvbiBuZXdzZ3JvdXAg4oCYZ251LmVtYWNzLmhlbHDigJkuICAoVGhpcyBtYWlsaW5nCiAg ICAgbGlzdCBhbmQgbmV3c2dyb3VwIGludGVyY29ubmVjdCwgc28gaXQgZG9lcyBub3QgbWF0dGVy IHdoaWNoIG9uZQogICAgIHlvdSB1c2UuKQoKICAg4oCiIExvb2sgaW4gdGhlIHNlcnZpY2UgZGly ZWN0b3J5CiAgICAgKGh0dHBzOi8vd3d3LmZzZi5vcmcvcmVzb3VyY2VzL3NlcnZpY2UvKSBmb3Ig c29tZW9uZSB3aG8gbWlnaHQgaGVscAogICAgIHlvdSBmb3IgYSBmZWUuCgoqIEFwcGVuZGl4Cioq IEFwcGVuZGl4IEEgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKCiAgICAgICAgICAgICAgICAg ICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogICAgIENvcHlyaWdodCDCqSAyMDA3IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cHM6Ly9mc2Yub3JnLz4KCiAgICAgRXZl cnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVz IG9mIHRoaXMKICAgICBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFs bG93ZWQuCgpQcmVhbWJsZQoKVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGEgZnJl ZSwgY29weWxlZnQgbGljZW5zZSBmb3Igc29mdHdhcmUKYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtz LgoKICAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFuZCBvdGhlciBwcmFjdGljYWwg d29ya3MgYXJlIGRlc2lnbmVkCnRvIHRha2UgYXdheSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5k IGNoYW5nZSB0aGUgd29ya3MuICBCeSBjb250cmFzdCwKdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8Kc2hhcmUgYW5k IGNoYW5nZSBhbGwgdmVyc2lvbnMgb2YgYSBwcm9ncmFt4oCUdG8gbWFrZSBzdXJlIGl0IHJlbWFp bnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0 IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVh c2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHBy b2dyYW1zLCB0b28uCgogICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSBy ZWZlcnJpbmcgdG8gZnJlZWRvbSwgbm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0 byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGVt IGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0 IGlmIHlvdQp3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2Ug cGllY2VzIG9mIGl0IGluIG5ldwpmcmVlIHByb2dyYW1zLCBhbmQgdGhhdCB5b3Uga25vdyB5b3Ug Y2FuIGRvIHRoZXNlIHRoaW5ncy4KCiAgIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQg dG8gcHJldmVudCBvdGhlcnMgZnJvbSBkZW55aW5nIHlvdQp0aGVzZSByaWdodHMgb3IgYXNraW5n IHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4gIFRoZXJlZm9yZSwgeW91IGhhdmUKY2VydGFp biByZXNwb25zaWJpbGl0aWVzIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdh cmUsIG9yIGlmCnlvdSBtb2RpZnkgaXQ6IHJlc3BvbnNpYmlsaXRpZXMgdG8gcmVzcGVjdCB0aGUg ZnJlZWRvbSBvZiBvdGhlcnMuCgogICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29w aWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBt dXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3Ug cmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3Ig Y2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRl cm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogICBEZXZlbG9wZXJzIHRoYXQgdXNlIHRo ZSBHTlUgR1BMIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6CigxKSBhc3NlcnQg Y29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNl CmdpdmluZyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBt b2RpZnkgaXQuCgogICBGb3IgdGhlIGRldmVsb3BlcnPigJkgYW5kIGF1dGhvcnPigJkgcHJvdGVj dGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkg Zm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJz4oCZIGFuZAphdXRob3Jz4oCZ IHNha2UsIHRoZSBHUEwgcmVxdWlyZXMgdGhhdCBtb2RpZmllZCB2ZXJzaW9ucyBiZSBtYXJrZWQg YXMKY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVk IGVycm9uZW91c2x5IHRvCmF1dGhvcnMgb2YgcHJldmlvdXMgdmVyc2lvbnMuCgogICBTb21lIGRl dmljZXMgYXJlIGRlc2lnbmVkIHRvIGRlbnkgdXNlcnMgYWNjZXNzIHRvIGluc3RhbGwgb3IgcnVu Cm1vZGlmaWVkIHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZSBpbnNpZGUgdGhlbSwgYWx0aG91Z2gg dGhlIG1hbnVmYWN0dXJlcgpjYW4gZG8gc28uICBUaGlzIGlzIGZ1bmRhbWVudGFsbHkgaW5jb21w YXRpYmxlIHdpdGggdGhlIGFpbSBvZgpwcm90ZWN0aW5nIHVzZXJz4oCZIGZyZWVkb20gdG8gY2hh bmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljCnBhdHRlcm4gb2Ygc3VjaCBhYnVzZSBv Y2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJvZHVjdHMgZm9yIGluZGl2aWR1YWxzIHRvCnVzZSwgd2hp Y2ggaXMgcHJlY2lzZWx5IHdoZXJlIGl0IGlzIG1vc3QgdW5hY2NlcHRhYmxlLiAgVGhlcmVmb3Jl LCB3ZQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRo ZSBwcmFjdGljZSBmb3IgdGhvc2UKcHJvZHVjdHMuICBJZiBzdWNoIHByb2JsZW1zIGFyaXNlIHN1 YnN0YW50aWFsbHkgaW4gb3RoZXIgZG9tYWlucywgd2UKc3RhbmQgcmVhZHkgdG8gZXh0ZW5kIHRo aXMgcHJvdmlzaW9uIHRvIHRob3NlIGRvbWFpbnMgaW4gZnV0dXJlIHZlcnNpb25zCm9mIHRoZSBH UEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLgoKICAgRmluYWxs eSwgZXZlcnkgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUgcGF0 ZW50cy4KU3RhdGVzIHNob3VsZCBub3QgYWxsb3cgcGF0ZW50cyB0byByZXN0cmljdCBkZXZlbG9w bWVudCBhbmQgdXNlIG9mCnNvZnR3YXJlIG9uIGdlbmVyYWwtcHVycG9zZSBjb21wdXRlcnMsIGJ1 dCBpbiB0aG9zZSB0aGF0IGRvLCB3ZSB3aXNoIHRvCmF2b2lkIHRoZSBzcGVjaWFsIGRhbmdlciB0 aGF0IHBhdGVudHMgYXBwbGllZCB0byBhIGZyZWUgcHJvZ3JhbSBjb3VsZAptYWtlIGl0IGVmZmVj dGl2ZWx5IHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB0aGUgR1BMIGFzc3VyZXMgdGhh dApwYXRlbnRzIGNhbm5vdCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgcHJvZ3JhbSBub24tZnJlZS4K CiAgIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmli dXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgpURVJNUyBBTkQgQ09ORElUSU9OUwoKICAw LiBEZWZpbml0aW9ucy4KCiAgICAg4oCcVGhpcyBMaWNlbnNl4oCdIHJlZmVycyB0byB2ZXJzaW9u IDMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UuCgogICAgIOKAnENvcHly aWdodOKAnSBhbHNvIG1lYW5zIGNvcHlyaWdodC1saWtlIGxhd3MgdGhhdCBhcHBseSB0byBvdGhl cgogICAgIGtpbmRzIG9mIHdvcmtzLCBzdWNoIGFzIHNlbWljb25kdWN0b3IgbWFza3MuCgogICAg IOKAnFRoZSBQcm9ncmFt4oCdIHJlZmVycyB0byBhbnkgY29weXJpZ2h0YWJsZSB3b3JrIGxpY2Vu c2VkIHVuZGVyIHRoaXMKICAgICBMaWNlbnNlLiAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQg YXMg4oCceW914oCdLiAg4oCcTGljZW5zZWVz4oCdIGFuZAogICAgIOKAnHJlY2lwaWVudHPigJ0g bWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogICAgIFRvIOKAnG1vZGlmeeKA nSBhIHdvcmsgbWVhbnMgdG8gY29weSBmcm9tIG9yIGFkYXB0IGFsbCBvciBwYXJ0IG9mIHRoZQog ICAgIHdvcmsgaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3Ro ZXIgdGhhbiB0aGUKICAgICBtYWtpbmcgb2YgYW4gZXhhY3QgY29weS4gIFRoZSByZXN1bHRpbmcg d29yayBpcyBjYWxsZWQgYSDigJxtb2RpZmllZAogICAgIHZlcnNpb27igJ0gb2YgdGhlIGVhcmxp ZXIgd29yayBvciBhIHdvcmsg4oCcYmFzZWQgb27igJ0gdGhlIGVhcmxpZXIgd29yay4KCiAgICAg QSDigJxjb3ZlcmVkIHdvcmvigJ0gbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0g b3IgYSB3b3JrCiAgICAgYmFzZWQgb24gdGhlIFByb2dyYW0uCgogICAgIFRvIOKAnHByb3BhZ2F0 ZeKAnSBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0CiAg ICAgcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlh YmxlIGZvcgogICAgIGluZnJpbmdlbWVudCB1bmRlciBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXcs IGV4Y2VwdCBleGVjdXRpbmcgaXQgb24KICAgICBhIGNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHBy aXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzCiAgICAgY29weWluZywgZGlzdHJpYnV0 aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nCiAgICAgYXZhaWxhYmxl IHRvIHRoZSBwdWJsaWMsIGFuZCBpbiBzb21lIGNvdW50cmllcyBvdGhlciBhY3Rpdml0aWVzIGFz CiAgICAgd2VsbC4KCiAgICAgVG8g4oCcY29udmV54oCdIGEgd29yayBtZWFucyBhbnkga2luZCBv ZiBwcm9wYWdhdGlvbiB0aGF0IGVuYWJsZXMgb3RoZXIKICAgICBwYXJ0aWVzIHRvIG1ha2Ugb3Ig cmVjZWl2ZSBjb3BpZXMuICBNZXJlIGludGVyYWN0aW9uIHdpdGggYSB1c2VyCiAgICAgdGhyb3Vn aCBhIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QK ICAgICBjb252ZXlpbmcuCgogICAgIEFuIGludGVyYWN0aXZlIHVzZXIgaW50ZXJmYWNlIGRpc3Bs YXlzIOKAnEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXPigJ0KICAgICB0byB0aGUgZXh0ZW50IHRo YXQgaXQgaW5jbHVkZXMgYSBjb252ZW5pZW50IGFuZCBwcm9taW5lbnRseSB2aXNpYmxlCiAgICAg ZmVhdHVyZSB0aGF0ICgxKSBkaXNwbGF5cyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNl LCBhbmQgKDIpCiAgICAgdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBm b3IgdGhlIHdvcmsgKGV4Y2VwdCB0bwogICAgIHRoZSBleHRlbnQgdGhhdCB3YXJyYW50aWVzIGFy ZSBwcm92aWRlZCksIHRoYXQgbGljZW5zZWVzIG1heSBjb252ZXkKICAgICB0aGUgd29yayB1bmRl ciB0aGlzIExpY2Vuc2UsIGFuZCBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgIExpY2Vu c2UuICBJZiB0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9y CiAgICAgb3B0aW9ucywgc3VjaCBhcyBhIG1lbnUsIGEgcHJvbWluZW50IGl0ZW0gaW4gdGhlIGxp c3QgbWVldHMgdGhpcwogICAgIGNyaXRlcmlvbi4KCiAgMS4gU291cmNlIENvZGUuCgogICAgIFRo ZSDigJxzb3VyY2UgY29kZeKAnSBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBv ZiB0aGUgd29yawogICAgIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIOKAnE9iamVj dCBjb2Rl4oCdIG1lYW5zIGFueSBub24tc291cmNlCiAgICAgZm9ybSBvZiBhIHdvcmsuCgogICAg IEEg4oCcU3RhbmRhcmQgSW50ZXJmYWNl4oCdIG1lYW5zIGFuIGludGVyZmFjZSB0aGF0IGVpdGhl ciBpcyBhbgogICAgIG9mZmljaWFsIHN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0 YW5kYXJkcyBib2R5LCBvciwgaW4KICAgICB0aGUgY2FzZSBvZiBpbnRlcmZhY2VzIHNwZWNpZmll ZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nCiAgICAgbGFuZ3VhZ2UsIG9uZSB0aGF0IGlz IHdpZGVseSB1c2VkIGFtb25nIGRldmVsb3BlcnMgd29ya2luZyBpbiB0aGF0CiAgICAgbGFuZ3Vh Z2UuCgogICAgIFRoZSDigJxTeXN0ZW0gTGlicmFyaWVz4oCdIG9mIGFuIGV4ZWN1dGFibGUgd29y ayBpbmNsdWRlIGFueXRoaW5nLAogICAgIG90aGVyIHRoYW4gdGhlIHdvcmsgYXMgYSB3aG9sZSwg dGhhdCAoYSkgaXMgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbAogICAgIGZvcm0gb2YgcGFja2FnaW5n IGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdAogICAgIE1h am9yIENvbXBvbmVudCwgYW5kIChiKSBzZXJ2ZXMgb25seSB0byBlbmFibGUgdXNlIG9mIHRoZSB3 b3JrIHdpdGgKICAgICB0aGF0IE1ham9yIENvbXBvbmVudCwgb3IgdG8gaW1wbGVtZW50IGEgU3Rh bmRhcmQgSW50ZXJmYWNlIGZvcgogICAgIHdoaWNoIGFuIGltcGxlbWVudGF0aW9uIGlzIGF2YWls YWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlCiAgICAgZm9ybS4gIEEg4oCcTWFqb3Ig Q29tcG9uZW504oCdLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IKICAgICBlc3NlbnRp YWwgY29tcG9uZW50IChrZXJuZWwsIHdpbmRvdyBzeXN0ZW0sIGFuZCBzbyBvbikgb2YgdGhlCiAg ICAgc3BlY2lmaWMgb3BlcmF0aW5nIHN5c3RlbSAoaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0 YWJsZSB3b3JrCiAgICAgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvIHByb2R1Y2UgdGhlIHdv cmssIG9yIGFuIG9iamVjdCBjb2RlCiAgICAgaW50ZXJwcmV0ZXIgdXNlZCB0byBydW4gaXQuCgog ICAgIFRoZSDigJxDb3JyZXNwb25kaW5nIFNvdXJjZeKAnSBmb3IgYSB3b3JrIGluIG9iamVjdCBj b2RlIGZvcm0gbWVhbnMgYWxsCiAgICAgdGhlIHNvdXJjZSBjb2RlIG5lZWRlZCB0byBnZW5lcmF0 ZSwgaW5zdGFsbCwgYW5kIChmb3IgYW4gZXhlY3V0YWJsZQogICAgIHdvcmspIHJ1biB0aGUgb2Jq ZWN0IGNvZGUgYW5kIHRvIG1vZGlmeSB0aGUgd29yaywgaW5jbHVkaW5nIHNjcmlwdHMKICAgICB0 byBjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRl IHRoZQogICAgIHdvcmvigJlzIFN5c3RlbSBMaWJyYXJpZXMsIG9yIGdlbmVyYWwtcHVycG9zZSB0 b29scyBvciBnZW5lcmFsbHkKICAgICBhdmFpbGFibGUgZnJlZSBwcm9ncmFtcyB3aGljaCBhcmUg dXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcKICAgICB0aG9zZSBhY3Rpdml0aWVzIGJ1dCB3 aGljaCBhcmUgbm90IHBhcnQgb2YgdGhlIHdvcmsuICBGb3IgZXhhbXBsZSwKICAgICBDb3JyZXNw b25kaW5nIFNvdXJjZSBpbmNsdWRlcyBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcyBhc3NvY2lh dGVkCiAgICAgd2l0aCBzb3VyY2UgZmlsZXMgZm9yIHRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBj b2RlIGZvciBzaGFyZWQKICAgICBsaWJyYXJpZXMgYW5kIGR5bmFtaWNhbGx5IGxpbmtlZCBzdWJw cm9ncmFtcyB0aGF0IHRoZSB3b3JrIGlzCiAgICAgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJl cXVpcmUsIHN1Y2ggYXMgYnkgaW50aW1hdGUgZGF0YQogICAgIGNvbW11bmljYXRpb24gb3IgY29u dHJvbCBmbG93IGJldHdlZW4gdGhvc2Ugc3VicHJvZ3JhbXMgYW5kIG90aGVyCiAgICAgcGFydHMg b2YgdGhlIHdvcmsuCgogICAgIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBuZWVkIG5vdCBpbmNs dWRlIGFueXRoaW5nIHRoYXQgdXNlcnMgY2FuCiAgICAgcmVnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5 IGZyb20gb3RoZXIgcGFydHMgb2YgdGhlIENvcnJlc3BvbmRpbmcKICAgICBTb3VyY2UuCgogICAg IFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0g aXMgdGhhdAogICAgIHNhbWUgd29yay4KCiAgMi4gQmFzaWMgUGVybWlzc2lvbnMuCgogICAgIEFs bCByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UgYXJlIGdyYW50ZWQgZm9yIHRoZSB0 ZXJtIG9mCiAgICAgY29weXJpZ2h0IG9uIHRoZSBQcm9ncmFtLCBhbmQgYXJlIGlycmV2b2NhYmxl IHByb3ZpZGVkIHRoZSBzdGF0ZWQKICAgICBjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vu c2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCiAgICAgcGVybWlzc2lvbiB0byBy dW4gdGhlIHVubW9kaWZpZWQgUHJvZ3JhbS4gIFRoZSBvdXRwdXQgZnJvbSBydW5uaW5nCiAgICAg YSBjb3ZlcmVkIHdvcmsgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2Ugb25seSBpZiB0aGUgb3V0 cHV0LCBnaXZlbgogICAgIGl0cyBjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4g IFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMKICAgICB5b3VyIHJpZ2h0cyBvZiBmYWlyIHVzZSBv ciBvdGhlciBlcXVpdmFsZW50LCBhcyBwcm92aWRlZCBieQogICAgIGNvcHlyaWdodCBsYXcuCgog ICAgIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlv dSBkbyBub3QKICAgICBjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIg bGljZW5zZSBvdGhlcndpc2UKICAgICByZW1haW5zIGluIGZvcmNlLiAgWW91IG1heSBjb252ZXkg Y292ZXJlZCB3b3JrcyB0byBvdGhlcnMgZm9yIHRoZQogICAgIHNvbGUgcHVycG9zZSBvZiBoYXZp bmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwKICAgICBvciBw cm92aWRlIHlvdSB3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3Zp ZGVkCiAgICAgdGhhdCB5b3UgY29tcGx5IHdpdGggdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSBp biBjb252ZXlpbmcgYWxsCiAgICAgbWF0ZXJpYWwgZm9yIHdoaWNoIHlvdSBkbyBub3QgY29udHJv bCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZwogICAgIG9yIHJ1bm5pbmcgdGhlIGNvdmVy ZWQgd29ya3MgZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIKICAgICBiZWhh bGYsIHVuZGVyIHlvdXIgZGlyZWN0aW9uIGFuZCBjb250cm9sLCBvbiB0ZXJtcyB0aGF0IHByb2hp Yml0CiAgICAgdGhlbSBmcm9tIG1ha2luZyBhbnkgY29waWVzIG9mIHlvdXIgY29weXJpZ2h0ZWQg bWF0ZXJpYWwgb3V0c2lkZQogICAgIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgICAg Q29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xl bHkgdW5kZXIKICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgYmVsb3cuICBTdWJsaWNlbnNpbmcg aXMgbm90IGFsbG93ZWQ7IHNlY3Rpb24KICAgICAxMCBtYWtlcyBpdCB1bm5lY2Vzc2FyeS4KCiAg My4gUHJvdGVjdGluZyBVc2Vyc+KAmSBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRp b24gTGF3LgoKICAgICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4g ZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKICAgICBtZWFzdXJlIHVuZGVyIGFueSBhcHBsaWNhYmxl IGxhdyBmdWxmaWxsaW5nIG9ibGlnYXRpb25zIHVuZGVyCiAgICAgYXJ0aWNsZSAxMSBvZiB0aGUg V0lQTyBjb3B5cmlnaHQgdHJlYXR5IGFkb3B0ZWQgb24gMjAgRGVjZW1iZXIKICAgICAxOTk2LCBv ciBzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBv ZgogICAgIHN1Y2ggbWVhc3VyZXMuCgogICAgIFdoZW4geW91IGNvbnZleSBhIGNvdmVyZWQgd29y aywgeW91IHdhaXZlIGFueSBsZWdhbCBwb3dlciB0byBmb3JiaWQKICAgICBjaXJjdW12ZW50aW9u IG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoCiAgICAgY2lyY3Vt dmVudGlvbiBpcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vu c2UKICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIGNvdmVyZWQgd29yaywgYW5kIHlvdSBkaXNjbGFp bSBhbnkgaW50ZW50aW9uIHRvCiAgICAgbGltaXQgb3BlcmF0aW9uIG9yIG1vZGlmaWNhdGlvbiBv ZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mCiAgICAgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3Jr 4oCZcyB1c2VycywgeW91ciBvciB0aGlyZCBwYXJ0aWVz4oCZIGxlZ2FsCiAgICAgcmlnaHRzIHRv IGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENv bnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogICAgIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNv cGllcyBvZiB0aGUgUHJvZ3JhbeKAmXMgc291cmNlIGNvZGUgYXMgeW91CiAgICAgcmVjZWl2ZSBp dCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKICAg ICBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHly aWdodCBub3RpY2U7CiAgICAga2VlcCBpbnRhY3QgYWxsIG5vdGljZXMgc3RhdGluZyB0aGF0IHRo aXMgTGljZW5zZSBhbmQgYW55CiAgICAgbm9uLXBlcm1pc3NpdmUgdGVybXMgYWRkZWQgaW4gYWNj b3JkIHdpdGggc2VjdGlvbiA3IGFwcGx5IHRvIHRoZQogICAgIGNvZGU7IGtlZXAgaW50YWN0IGFs bCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kCiAgICAgZ2l2ZSBh bGwgcmVjaXBpZW50cyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggdGhlIFByb2dy YW0uCgogICAgIFlvdSBtYXkgY2hhcmdlIGFueSBwcmljZSBvciBubyBwcmljZSBmb3IgZWFjaCBj b3B5IHRoYXQgeW91IGNvbnZleSwKICAgICBhbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdh cnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLgoKICA1LiBDb252ZXlpbmcgTW9kaWZpZWQgU291 cmNlIFZlcnNpb25zLgoKICAgICBZb3UgbWF5IGNvbnZleSBhIHdvcmsgYmFzZWQgb24gdGhlIFBy b2dyYW0sIG9yIHRoZSBtb2RpZmljYXRpb25zIHRvCiAgICAgcHJvZHVjZSBpdCBmcm9tIHRoZSBQ cm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKICAgICB0ZXJtcyBv ZiBzZWN0aW9uIDQsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UKICAg ICBjb25kaXRpb25zOgoKICAgICAgIGEuIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5v dGljZXMgc3RhdGluZyB0aGF0IHlvdQogICAgICAgICAgbW9kaWZpZWQgaXQsIGFuZCBnaXZpbmcg YSByZWxldmFudCBkYXRlLgoKICAgICAgIGIuIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50 IG5vdGljZXMgc3RhdGluZyB0aGF0IGl0IGlzCiAgICAgICAgICByZWxlYXNlZCB1bmRlciB0aGlz IExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyCiAgICAgICAgICBzZWN0aW9u IDcuICBUaGlzIHJlcXVpcmVtZW50IG1vZGlmaWVzIHRoZSByZXF1aXJlbWVudCBpbgogICAgICAg ICAgc2VjdGlvbiA0IHRvIOKAnGtlZXAgaW50YWN0IGFsbCBub3RpY2Vz4oCdLgoKICAgICAgIGMu IFlvdSBtdXN0IGxpY2Vuc2UgdGhlIGVudGlyZSB3b3JrLCBhcyBhIHdob2xlLCB1bmRlciB0aGlz CiAgICAgICAgICBMaWNlbnNlIHRvIGFueW9uZSB3aG8gY29tZXMgaW50byBwb3NzZXNzaW9uIG9m IGEgY29weS4gIFRoaXMKICAgICAgICAgIExpY2Vuc2Ugd2lsbCB0aGVyZWZvcmUgYXBwbHksIGFs b25nIHdpdGggYW55IGFwcGxpY2FibGUKICAgICAgICAgIHNlY3Rpb24gNyBhZGRpdGlvbmFsIHRl cm1zLCB0byB0aGUgd2hvbGUgb2YgdGhlIHdvcmssIGFuZCBhbGwKICAgICAgICAgIGl0cyBwYXJ0 cywgcmVnYXJkbGVzcyBvZiBob3cgdGhleSBhcmUgcGFja2FnZWQuICBUaGlzIExpY2Vuc2UKICAg ICAgICAgIGdpdmVzIG5vIHBlcm1pc3Npb24gdG8gbGljZW5zZSB0aGUgd29yayBpbiBhbnkgb3Ro ZXIgd2F5LCBidXQKICAgICAgICAgIGl0IGRvZXMgbm90IGludmFsaWRhdGUgc3VjaCBwZXJtaXNz aW9uIGlmIHlvdSBoYXZlIHNlcGFyYXRlbHkKICAgICAgICAgIHJlY2VpdmVkIGl0LgoKICAgICAg IGQuIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVz dCBkaXNwbGF5CiAgICAgICAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBp ZiB0aGUgUHJvZ3JhbSBoYXMKICAgICAgICAgIGludGVyYWN0aXZlIGludGVyZmFjZXMgdGhhdCBk byBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbAogICAgICAgICAgTm90aWNlcywgeW91ciB3 b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgICAgQSBjb21waWxhdGlvbiBvZiBhIGNv dmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAogICAgIHdvcmtz LCB3aGljaCBhcmUgbm90IGJ5IHRoZWlyIG5hdHVyZSBleHRlbnNpb25zIG9mIHRoZSBjb3ZlcmVk CiAgICAgd29yaywgYW5kIHdoaWNoIGFyZSBub3QgY29tYmluZWQgd2l0aCBpdCBzdWNoIGFzIHRv IGZvcm0gYSBsYXJnZXIKICAgICBwcm9ncmFtLCBpbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3Jh Z2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMKICAgICBjYWxsZWQgYW4g4oCcYWdncmVnYXRl 4oCdIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZwogICAgIGNvcHlyaWdodCBh cmUgbm90IHVzZWQgdG8gbGltaXQgdGhlIGFjY2VzcyBvciBsZWdhbCByaWdodHMgb2YgdGhlCiAg ICAgY29tcGlsYXRpb27igJlzIHVzZXJzIGJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtz IHBlcm1pdC4KICAgICBJbmNsdXNpb24gb2YgYSBjb3ZlcmVkIHdvcmsgaW4gYW4gYWdncmVnYXRl IGRvZXMgbm90IGNhdXNlIHRoaXMKICAgICBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlciBw YXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4K CiAgICAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1 bmRlciB0aGUgdGVybXMKICAgICBvZiBzZWN0aW9ucyA0IGFuZCA1LCBwcm92aWRlZCB0aGF0IHlv dSBhbHNvIGNvbnZleSB0aGUKICAgICBtYWNoaW5lLXJlYWRhYmxlIENvcnJlc3BvbmRpbmcgU291 cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzCiAgICAgTGljZW5zZSwgaW4gb25lIG9mIHRoZXNl IHdheXM6CgogICAgICAgYS4gQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQg aW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgICAgICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRp c3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgICAgICAgIENvcnJlc3Bv bmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgICAgICAg IGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgICAgIGIuIENv bnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1 Y3QKICAgICAgICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwg YWNjb21wYW5pZWQgYnkgYQogICAgICAgICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxl YXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgICAgICAgIGxvbmcgYXMgeW91IG9m ZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQKICAgICAgICAgIHBy b2R1Y3QgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2Rl CiAgICAgICAgICBlaXRoZXIgKDEpIGEgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ug Zm9yIGFsbCB0aGUKICAgICAgICAgIHNvZnR3YXJlIGluIHRoZSBwcm9kdWN0IHRoYXQgaXMgY292 ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEKICAgICAgICAgIGR1cmFibGUgcGh5c2ljYWwgbWVk aXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlCiAgICAgICAgICBpbnRlcmNoYW5nZSwg Zm9yIGEgcHJpY2Ugbm8gbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mCiAgICAgICAg ICBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgdGhpcyBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikg YWNjZXNzCiAgICAgICAgICB0byBjb3B5IHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEg bmV0d29yayBzZXJ2ZXIgYXQgbm8KICAgICAgICAgIGNoYXJnZS4KCiAgICAgICBjLiBDb252ZXkg aW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQog ICAgICAgICAgd3JpdHRlbiBvZmZlciB0byBwcm92aWRlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJj ZS4gIFRoaXMKICAgICAgICAgIGFsdGVybmF0aXZlIGlzIGFsbG93ZWQgb25seSBvY2Nhc2lvbmFs bHkgYW5kIG5vbmNvbW1lcmNpYWxseSwKICAgICAgICAgIGFuZCBvbmx5IGlmIHlvdSByZWNlaXZl ZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLAogICAgICAgICAgaW4gYWNjb3Jk IHdpdGggc3Vic2VjdGlvbiA2Yi4KCiAgICAgICBkLiBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5 IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZAogICAgICAgICAgcGxhY2UgKGdyYXRp cyBvciBmb3IgYSBjaGFyZ2UpLCBhbmQgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8KICAgICAg ICAgIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBpbiB0aGUgc2FtZSB3YXkgdGhyb3VnaCB0aGUg c2FtZQogICAgICAgICAgcGxhY2UgYXQgbm8gZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3Qg cmVxdWlyZSByZWNpcGllbnRzCiAgICAgICAgICB0byBjb3B5IHRoZSBDb3JyZXNwb25kaW5nIFNv dXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KICAgICAgICAgIElmIHRoZSBwbGFjZSB0 byBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUKICAgICAgICAg IENvcnJlc3BvbmRpbmcgU291cmNlIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJh dGVkIGJ5CiAgICAgICAgICB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkgdGhhdCBzdXBwb3J0cyBlcXVp dmFsZW50IGNvcHlpbmcKICAgICAgICAgIGZhY2lsaXRpZXMsIHByb3ZpZGVkIHlvdSBtYWludGFp biBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlCiAgICAgICAgICBvYmplY3QgY29kZSBzYXlp bmcgd2hlcmUgdG8gZmluZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UuCiAgICAgICAgICBSZWdh cmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSwgeW91 CiAgICAgICAgICByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzIGF2YWlsYWJs ZSBmb3IgYXMgbG9uZyBhcwogICAgICAgICAgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWly ZW1lbnRzLgoKICAgICAgIGUuIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1w ZWVyIHRyYW5zbWlzc2lvbiwKICAgICAgICAgIHByb3ZpZGVkIHlvdSBpbmZvcm0gb3RoZXIgcGVl cnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZAogICAgICAgICAgQ29ycmVzcG9uZGluZyBTb3Vy Y2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlCiAgICAgICAgICBnZW5lcmFs IHB1YmxpYyBhdCBubyBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgICAgQSBzZXBhcmFi bGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzCiAgICAg ZXhjbHVkZWQgZnJvbSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgYXMgYSBTeXN0ZW0gTGlicmFy eSwgbmVlZAogICAgIG5vdCBiZSBpbmNsdWRlZCBpbiBjb252ZXlpbmcgdGhlIG9iamVjdCBjb2Rl IHdvcmsuCgogICAgIEEg4oCcVXNlciBQcm9kdWN04oCdIGlzIGVpdGhlciAoMSkgYSDigJxjb25z dW1lciBwcm9kdWN04oCdLCB3aGljaCBtZWFucwogICAgIGFueSB0YW5naWJsZSBwZXJzb25hbCBw cm9wZXJ0eSB3aGljaCBpcyBub3JtYWxseSB1c2VkIGZvciBwZXJzb25hbCwKICAgICBmYW1pbHks IG9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQg Zm9yCiAgICAgaW5jb3Jwb3JhdGlvbiBpbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3 aGV0aGVyIGEgcHJvZHVjdCBpcwogICAgIGEgY29uc3VtZXIgcHJvZHVjdCwgZG91YnRmdWwgY2Fz ZXMgc2hhbGwgYmUgcmVzb2x2ZWQgaW4gZmF2b3Igb2YKICAgICBjb3ZlcmFnZS4gIEZvciBhIHBh cnRpY3VsYXIgcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwKICAgICDigJxu b3JtYWxseSB1c2Vk4oCdIHJlZmVycyB0byBhIHR5cGljYWwgb3IgY29tbW9uIHVzZSBvZiB0aGF0 IGNsYXNzIG9mCiAgICAgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzIG9mIHRoZSBw YXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlCiAgICAgd2F5IGluIHdoaWNoIHRoZSBwYXJ0aWN1bGFy IHVzZXIgYWN0dWFsbHkgdXNlcywgb3IgZXhwZWN0cyBvciBpcwogICAgIGV4cGVjdGVkIHRvIHVz ZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QgaXMgYSBjb25zdW1lciBwcm9kdWN0CiAgICAgcmVn YXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbCBjb21tZXJjaWFs LAogICAgIGluZHVzdHJpYWwgb3Igbm9uLWNvbnN1bWVyIHVzZXMsIHVubGVzcyBzdWNoIHVzZXMg cmVwcmVzZW50IHRoZQogICAgIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHBy b2R1Y3QuCgogICAgIOKAnEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbuKAnSBmb3IgYSBVc2VyIFBy b2R1Y3QgbWVhbnMgYW55IG1ldGhvZHMsCiAgICAgcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBr ZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0bwogICAgIGluc3RhbGwgYW5kIGV4 ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdAogICAgIFVz ZXIgUHJvZHVjdCBmcm9tIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBpdHMgQ29ycmVzcG9uZGluZyBT b3VyY2UuCiAgICAgVGhlIGluZm9ybWF0aW9uIG11c3Qgc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0 aGUgY29udGludWVkCiAgICAgZnVuY3Rpb25pbmcgb2YgdGhlIG1vZGlmaWVkIG9iamVjdCBjb2Rl IGlzIGluIG5vIGNhc2UgcHJldmVudGVkIG9yCiAgICAgaW50ZXJmZXJlZCB3aXRoIHNvbGVseSBi ZWNhdXNlIG1vZGlmaWNhdGlvbiBoYXMgYmVlbiBtYWRlLgoKICAgICBJZiB5b3UgY29udmV5IGFu IG9iamVjdCBjb2RlIHdvcmsgdW5kZXIgdGhpcyBzZWN0aW9uIGluLCBvciB3aXRoLAogICAgIG9y IHNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlp bmcKICAgICBvY2N1cnMgYXMgcGFydCBvZiBhIHRyYW5zYWN0aW9uIGluIHdoaWNoIHRoZSByaWdo dCBvZiBwb3NzZXNzaW9uCiAgICAgYW5kIHVzZSBvZiB0aGUgVXNlciBQcm9kdWN0IGlzIHRyYW5z ZmVycmVkIHRvIHRoZSByZWNpcGllbnQgaW4KICAgICBwZXJwZXR1aXR5IG9yIGZvciBhIGZpeGVk IHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbgogICAgIGlzIGNoYXJhY3Rl cml6ZWQpLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgY29udmV5ZWQgdW5kZXIgdGhpcwogICAg IHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZCBieSB0aGUgSW5zdGFsbGF0aW9uIEluZm9ybWF0 aW9uLiAgQnV0CiAgICAgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseSBpZiBuZWl0aGVy IHlvdSBub3IgYW55IHRoaXJkIHBhcnR5CiAgICAgcmV0YWlucyB0aGUgYWJpbGl0eSB0byBpbnN0 YWxsIG1vZGlmaWVkIG9iamVjdCBjb2RlIG9uIHRoZSBVc2VyCiAgICAgUHJvZHVjdCAoZm9yIGV4 YW1wbGUsIHRoZSB3b3JrIGhhcyBiZWVuIGluc3RhbGxlZCBpbiBST00pLgoKICAgICBUaGUgcmVx dWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QKICAg ICBpbmNsdWRlIGEgcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNl cnZpY2UsCiAgICAgd2FycmFudHksIG9yIHVwZGF0ZXMgZm9yIGEgd29yayB0aGF0IGhhcyBiZWVu IG1vZGlmaWVkIG9yIGluc3RhbGxlZAogICAgIGJ5IHRoZSByZWNpcGllbnQsIG9yIGZvciB0aGUg VXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuCiAgICAgbW9kaWZpZWQgb3IgaW5zdGFs bGVkLiAgQWNjZXNzIHRvIGEgbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlCiAgICAgbW9k aWZpY2F0aW9uIGl0c2VsZiBtYXRlcmlhbGx5IGFuZCBhZHZlcnNlbHkgYWZmZWN0cyB0aGUgb3Bl cmF0aW9uCiAgICAgb2YgdGhlIG5ldHdvcmsgb3IgdmlvbGF0ZXMgdGhlIHJ1bGVzIGFuZCBwcm90 b2NvbHMgZm9yCiAgICAgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogICAgIENv cnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9u CiAgICAgcHJvdmlkZWQsIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGluIGEg Zm9ybWF0IHRoYXQgaXMKICAgICBwdWJsaWNseSBkb2N1bWVudGVkIChhbmQgd2l0aCBhbiBpbXBs ZW1lbnRhdGlvbiBhdmFpbGFibGUgdG8gdGhlCiAgICAgcHVibGljIGluIHNvdXJjZSBjb2RlIGZv cm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQKICAgICBvciBrZXkgZm9y IHVucGFja2luZywgcmVhZGluZyBvciBjb3B5aW5nLgoKICA3LiBBZGRpdGlvbmFsIFRlcm1zLgoK ICAgICDigJxBZGRpdGlvbmFsIHBlcm1pc3Npb25z4oCdIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1l bnQgdGhlIHRlcm1zIG9mCiAgICAgdGhpcyBMaWNlbnNlIGJ5IG1ha2luZyBleGNlcHRpb25zIGZy b20gb25lIG9yIG1vcmUgb2YgaXRzCiAgICAgY29uZGl0aW9ucy4gIEFkZGl0aW9uYWwgcGVybWlz c2lvbnMgdGhhdCBhcmUgYXBwbGljYWJsZSB0byB0aGUKICAgICBlbnRpcmUgUHJvZ3JhbSBzaGFs bCBiZSB0cmVhdGVkIGFzIHRob3VnaCB0aGV5IHdlcmUgaW5jbHVkZWQgaW4KICAgICB0aGlzIExp Y2Vuc2UsIHRvIHRoZSBleHRlbnQgdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxl CiAgICAgbGF3LiAgSWYgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcHBseSBvbmx5IHRvIHBhcnQg b2YgdGhlIFByb2dyYW0sCiAgICAgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkgdW5k ZXIgdGhvc2UgcGVybWlzc2lvbnMsIGJ1dCB0aGUKICAgICBlbnRpcmUgUHJvZ3JhbSByZW1haW5z IGdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0bwogICAgIHRoZSBhZGRp dGlvbmFsIHBlcm1pc3Npb25zLgoKICAgICBXaGVuIHlvdSBjb252ZXkgYSBjb3B5IG9mIGEgY292 ZXJlZCB3b3JrLCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uCiAgICAgcmVtb3ZlIGFueSBhZGRpdGlv bmFsIHBlcm1pc3Npb25zIGZyb20gdGhhdCBjb3B5LCBvciBmcm9tIGFueSBwYXJ0CiAgICAgb2Yg aXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRo ZWlyIG93bgogICAgIHJlbW92YWwgaW4gY2VydGFpbiBjYXNlcyB3aGVuIHlvdSBtb2RpZnkgdGhl IHdvcmsuKSAgWW91IG1heSBwbGFjZQogICAgIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgb24gbWF0 ZXJpYWwsIGFkZGVkIGJ5IHlvdSB0byBhIGNvdmVyZWQgd29yaywKICAgICBmb3Igd2hpY2ggeW91 IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogICAg IE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9y IG1hdGVyaWFsCiAgICAgeW91IGFkZCB0byBhIGNvdmVyZWQgd29yaywgeW91IG1heSAoaWYgYXV0 aG9yaXplZCBieSB0aGUgY29weXJpZ2h0CiAgICAgaG9sZGVycyBvZiB0aGF0IG1hdGVyaWFsKSBz dXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugd2l0aAogICAgIHRlcm1zOgoKICAg ICAgIGEuIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJl bnRseSBmcm9tCiAgICAgICAgICB0aGUgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRo aXMgTGljZW5zZTsgb3IKCiAgICAgICBiLiBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNp ZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMKICAgICAgICAgIG9yIGF1dGhvciBhdHRyaWJ1 dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUKICAgICAgICAgIExl Z2FsIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgICAg Yy4gUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1h dGVyaWFsLAogICAgICAgICAgb3IgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Yg c3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQKICAgICAgICAgIGluIHJlYXNvbmFibGUgd2F5cyBhcyBk aWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICAgICBkLiBMaW1pdGlu ZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzCiAg ICAgICAgICBvciBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICAgICBlLiBEZWNsaW5p bmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAg ICAgICAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAg ICAgICBmLiBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9y cyBvZiB0aGF0CiAgICAgICAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1h dGVyaWFsIChvciBtb2RpZmllZAogICAgICAgICAgdmVyc2lvbnMgb2YgaXQpIHdpdGggY29udHJh Y3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvCiAgICAgICAgICB0aGUgcmVjaXBpZW50 LCBmb3IgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsCiAgICAgICAgICBhc3N1 bXB0aW9ucyBkaXJlY3RseSBpbXBvc2Ugb24gdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoK ICAgICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lk ZXJlZCDigJxmdXJ0aGVyCiAgICAgcmVzdHJpY3Rpb25z4oCdIHdpdGhpbiB0aGUgbWVhbmluZyBv ZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMKICAgICB5b3UgcmVjZWl2ZWQgaXQsIG9y IGFueSBwYXJ0IG9mIGl0LCBjb250YWlucyBhIG5vdGljZSBzdGF0aW5nIHRoYXQKICAgICBpdCBp cyBnb3Zlcm5lZCBieSB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCBhIHRlcm0gdGhhdCBpcyBhIGZ1 cnRoZXIKICAgICByZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBs aWNlbnNlIGRvY3VtZW50CiAgICAgY29udGFpbnMgYSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGJ1dCBw ZXJtaXRzIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZwogICAgIHVuZGVyIHRoaXMgTGljZW5zZSwg eW91IG1heSBhZGQgdG8gYSBjb3ZlcmVkIHdvcmsgbWF0ZXJpYWwgZ292ZXJuZWQKICAgICBieSB0 aGUgdGVybXMgb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0 aGVyCiAgICAgcmVzdHJpY3Rpb24gZG9lcyBub3Qgc3Vydml2ZSBzdWNoIHJlbGljZW5zaW5nIG9y IGNvbnZleWluZy4KCiAgICAgSWYgeW91IGFkZCB0ZXJtcyB0byBhIGNvdmVyZWQgd29yayBpbiBh Y2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24sIHlvdQogICAgIG11c3QgcGxhY2UsIGluIHRoZSByZWxl dmFudCBzb3VyY2UgZmlsZXMsIGEgc3RhdGVtZW50IG9mIHRoZQogICAgIGFkZGl0aW9uYWwgdGVy bXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwogICAg IHdoZXJlIHRvIGZpbmQgdGhlIGFwcGxpY2FibGUgdGVybXMuCgogICAgIEFkZGl0aW9uYWwgdGVy bXMsIHBlcm1pc3NpdmUgb3Igbm9uLXBlcm1pc3NpdmUsIG1heSBiZSBzdGF0ZWQgaW4KICAgICB0 aGUgZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhj ZXB0aW9uczsKICAgICB0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgog IDguIFRlcm1pbmF0aW9uLgoKICAgICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEg Y292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKICAgICBwcm92aWRlZCB1bmRlciB0aGlz IExpY2Vuc2UuICBBbnkgYXR0ZW1wdCBvdGhlcndpc2UgdG8gcHJvcGFnYXRlIG9yCiAgICAgbW9k aWZ5IGl0IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmln aHRzCiAgICAgdW5kZXIgdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNl cyBncmFudGVkIHVuZGVyIHRoZQogICAgIHRoaXJkIHBhcmFncmFwaCBvZiBzZWN0aW9uIDExKS4K CiAgICAgSG93ZXZlciwgaWYgeW91IGNlYXNlIGFsbCB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNl LCB0aGVuIHlvdXIKICAgICBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xk ZXIgaXMgcmVpbnN0YXRlZCAoYSkKICAgICBwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGls IHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCiAgICAgZmluYWxseSB0ZXJtaW5h dGVzIHlvdXIgbGljZW5zZSwgYW5kIChiKSBwZXJtYW5lbnRseSwgaWYgdGhlCiAgICAgY29weXJp Z2h0IGhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZQog ICAgIHJlYXNvbmFibGUgbWVhbnMgcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9u LgoKICAgICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdo dCBob2xkZXIgaXMKICAgICByZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmlnaHQg aG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUKICAgICB2aW9sYXRpb24gYnkgc29tZSByZWFzb25h YmxlIG1lYW5zLCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdSBoYXZlCiAgICAgcmVjZWl2ZWQg bm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbQog ICAgIHRoYXQgY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24gcHJp b3IgdG8gMzAgZGF5cwogICAgIGFmdGVyIHlvdXIgcmVjZWlwdCBvZiB0aGUgbm90aWNlLgoKICAg ICBUZXJtaW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9lcyBub3Qg dGVybWluYXRlCiAgICAgdGhlIGxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQg Y29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdQogICAgIHVuZGVyIHRoaXMgTGljZW5zZS4gIElmIHlv dXIgcmlnaHRzIGhhdmUgYmVlbiB0ZXJtaW5hdGVkIGFuZCBub3QKICAgICBwZXJtYW5lbnRseSBy ZWluc3RhdGVkLCB5b3UgZG8gbm90IHF1YWxpZnkgdG8gcmVjZWl2ZSBuZXcgbGljZW5zZXMKICAg ICBmb3IgdGhlIHNhbWUgbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5j ZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogICAgIFlvdSBhcmUgbm90IHJlcXVp cmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgogICAgIHJ1 biBhIGNvcHkgb2YgdGhlIFByb2dyYW0uICBBbmNpbGxhcnkgcHJvcGFnYXRpb24gb2YgYSBjb3Zl cmVkIHdvcmsKICAgICBvY2N1cnJpbmcgc29sZWx5IGFzIGEgY29uc2VxdWVuY2Ugb2YgdXNpbmcg cGVlci10by1wZWVyCiAgICAgdHJhbnNtaXNzaW9uIHRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNl IGRvZXMgbm90IHJlcXVpcmUKICAgICBhY2NlcHRhbmNlLiAgSG93ZXZlciwgbm90aGluZyBvdGhl ciB0aGFuIHRoaXMgTGljZW5zZSBncmFudHMgeW91CiAgICAgcGVybWlzc2lvbiB0byBwcm9wYWdh dGUgb3IgbW9kaWZ5IGFueSBjb3ZlcmVkIHdvcmsuICBUaGVzZSBhY3Rpb25zCiAgICAgaW5mcmlu Z2UgY29weXJpZ2h0IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9y ZSwKICAgICBieSBtb2RpZnlpbmcgb3IgcHJvcGFnYXRpbmcgYSBjb3ZlcmVkIHdvcmssIHlvdSBp bmRpY2F0ZSB5b3VyCiAgICAgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28uCgog IDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4KCiAgICAg RWFjaCB0aW1lIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHRoZSByZWNpcGllbnQgYXV0b21h dGljYWxseQogICAgIHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNv cnMsIHRvIHJ1biwgbW9kaWZ5IGFuZAogICAgIHByb3BhZ2F0ZSB0aGF0IHdvcmssIHN1YmplY3Qg dG8gdGhpcyBMaWNlbnNlLiAgWW91IGFyZSBub3QKICAgICByZXNwb25zaWJsZSBmb3IgZW5mb3Jj aW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3aXRoIHRoaXMKICAgICBMaWNlbnNlLgoK ICAgICBBbiDigJxlbnRpdHkgdHJhbnNhY3Rpb27igJ0gaXMgYSB0cmFuc2FjdGlvbiB0cmFuc2Zl cnJpbmcgY29udHJvbCBvZiBhbgogICAgIG9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBh bGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4KICAgICBvcmdhbml6YXRpb24sIG9y IG1lcmdpbmcgb3JnYW5pemF0aW9ucy4gIElmIHByb3BhZ2F0aW9uIG9mIGEKICAgICBjb3ZlcmVk IHdvcmsgcmVzdWx0cyBmcm9tIGFuIGVudGl0eSB0cmFuc2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0 aGF0CiAgICAgdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNv IHJlY2VpdmVzIHdoYXRldmVyCiAgICAgbGljZW5zZXMgdG8gdGhlIHdvcmsgdGhlIHBhcnR54oCZ cyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IKICAgICBjb3VsZCBnaXZlIHVuZGVyIHRo ZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uCiAgICAgb2Yg dGhlIENvcnJlc3BvbmRpbmcgU291cmNlIG9mIHRoZSB3b3JrIGZyb20gdGhlIHByZWRlY2Vzc29y IGluCiAgICAgaW50ZXJlc3QsIGlmIHRoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBp dCB3aXRoIHJlYXNvbmFibGUKICAgICBlZmZvcnRzLgoKICAgICBZb3UgbWF5IG5vdCBpbXBvc2Ug YW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKICAgICByaWdo dHMgZ3JhbnRlZCBvciBhZmZpcm1lZCB1bmRlciB0aGlzIExpY2Vuc2UuICBGb3IgZXhhbXBsZSwg eW91CiAgICAgbWF5IG5vdCBpbXBvc2UgYSBsaWNlbnNlIGZlZSwgcm95YWx0eSwgb3Igb3RoZXIg Y2hhcmdlIGZvciBleGVyY2lzZQogICAgIG9mIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGlj ZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlCiAgICAgbGl0aWdhdGlvbiAoaW5jbHVkaW5n IGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkKICAgICBhbGxlZ2lu ZyB0aGF0IGFueSBwYXRlbnQgY2xhaW0gaXMgaW5mcmluZ2VkIGJ5IG1ha2luZywgdXNpbmcsCiAg ICAgc2VsbGluZywgb2ZmZXJpbmcgZm9yIHNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBv ciBhbnkgcG9ydGlvbgogICAgIG9mIGl0LgoKICAxMS4gUGF0ZW50cy4KCiAgICAgQSDigJxjb250 cmlidXRvcuKAnSBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVy IHRoaXMKICAgICBMaWNlbnNlIG9mIHRoZSBQcm9ncmFtIG9yIGEgd29yayBvbiB3aGljaCB0aGUg UHJvZ3JhbSBpcyBiYXNlZC4KICAgICBUaGUgd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0 aGUgY29udHJpYnV0b3LigJlzIOKAnGNvbnRyaWJ1dG9yCiAgICAgdmVyc2lvbuKAnS4KCiAgICAg QSBjb250cmlidXRvcuKAmXMg4oCcZXNzZW50aWFsIHBhdGVudCBjbGFpbXPigJ0gYXJlIGFsbCBw YXRlbnQgY2xhaW1zCiAgICAgb3duZWQgb3IgY29udHJvbGxlZCBieSB0aGUgY29udHJpYnV0b3Is IHdoZXRoZXIgYWxyZWFkeSBhY3F1aXJlZCBvcgogICAgIGhlcmVhZnRlciBhY3F1aXJlZCwgdGhh dCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsCiAgICAgcGVybWl0dGVkIGJ5IHRo aXMgTGljZW5zZSwgb2YgbWFraW5nLCB1c2luZywgb3Igc2VsbGluZyBpdHMKICAgICBjb250cmli dXRvciB2ZXJzaW9uLCBidXQgZG8gbm90IGluY2x1ZGUgY2xhaW1zIHRoYXQgd291bGQgYmUKICAg ICBpbmZyaW5nZWQgb25seSBhcyBhIGNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9u IG9mIHRoZQogICAgIGNvbnRyaWJ1dG9yIHZlcnNpb24uICBGb3IgcHVycG9zZXMgb2YgdGhpcyBk ZWZpbml0aW9uLCDigJxjb250cm9s4oCdCiAgICAgaW5jbHVkZXMgdGhlIHJpZ2h0IHRvIGdyYW50 IHBhdGVudCBzdWJsaWNlbnNlcyBpbiBhIG1hbm5lcgogICAgIGNvbnNpc3RlbnQgd2l0aCB0aGUg cmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZS4KCiAgICAgRWFjaCBjb250cmlidXRvciBncmFu dHMgeW91IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLAogICAgIHJveWFsdHktZnJlZSBwYXRl bnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3LigJlzIGVzc2VudGlhbAogICAgIHBhdGVu dCBjbGFpbXMsIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9ydCBhbmQK ICAgICBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kIHByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2Yg aXRzIGNvbnRyaWJ1dG9yCiAgICAgdmVyc2lvbi4KCiAgICAgSW4gdGhlIGZvbGxvd2luZyB0aHJl ZSBwYXJhZ3JhcGhzLCBhIOKAnHBhdGVudCBsaWNlbnNl4oCdIGlzIGFueQogICAgIGV4cHJlc3Mg YWdyZWVtZW50IG9yIGNvbW1pdG1lbnQsIGhvd2V2ZXIgZGVub21pbmF0ZWQsIG5vdCB0bwogICAg IGVuZm9yY2UgYSBwYXRlbnQgKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0 aWNlIGEKICAgICBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvIHN1ZSBmb3IgcGF0ZW50IGluZnJp bmdlbWVudCkuICBUbyDigJxncmFudOKAnQogICAgIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBh IHBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IKICAgICBjb21taXRtZW50 IG5vdCB0byBlbmZvcmNlIGEgcGF0ZW50IGFnYWluc3QgdGhlIHBhcnR5LgoKICAgICBJZiB5b3Ug Y29udmV5IGEgY292ZXJlZCB3b3JrLCBrbm93aW5nbHkgcmVseWluZyBvbiBhIHBhdGVudAogICAg IGxpY2Vuc2UsIGFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90 IGF2YWlsYWJsZQogICAgIGZvciBhbnlvbmUgdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGlzCiAgICAgTGljZW5zZSwgdGhyb3VnaCBhIHB1YmxpY2x5IGF2 YWlsYWJsZSBuZXR3b3JrIHNlcnZlciBvciBvdGhlcgogICAgIHJlYWRpbHkgYWNjZXNzaWJsZSBt ZWFucywgdGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZQogICAgIENvcnJlc3BvbmRp bmcgU291cmNlIHRvIGJlIHNvIGF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZQog ICAgIHlvdXJzZWxmIG9mIHRoZSBiZW5lZml0IG9mIHRoZSBwYXRlbnQgbGljZW5zZSBmb3IgdGhp cyBwYXJ0aWN1bGFyCiAgICAgd29yaywgb3IgKDMpIGFycmFuZ2UsIGluIGEgbWFubmVyIGNvbnNp c3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzCiAgICAgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRl bmQgdGhlIHBhdGVudCBsaWNlbnNlIHRvIGRvd25zdHJlYW0KICAgICByZWNpcGllbnRzLiAg4oCc S25vd2luZ2x5IHJlbHlpbmfigJ0gbWVhbnMgeW91IGhhdmUgYWN0dWFsIGtub3dsZWRnZQogICAg IHRoYXQsIGJ1dCBmb3IgdGhlIHBhdGVudCBsaWNlbnNlLCB5b3VyIGNvbnZleWluZyB0aGUgY292 ZXJlZCB3b3JrCiAgICAgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudOKAmXMgdXNlIG9m IHRoZSBjb3ZlcmVkIHdvcmsgaW4gYQogICAgIGNvdW50cnksIHdvdWxkIGluZnJpbmdlIG9uZSBv ciBtb3JlIGlkZW50aWZpYWJsZSBwYXRlbnRzIGluIHRoYXQKICAgICBjb3VudHJ5IHRoYXQgeW91 IGhhdmUgcmVhc29uIHRvIGJlbGlldmUgYXJlIHZhbGlkLgoKICAgICBJZiwgcHVyc3VhbnQgdG8g b3IgaW4gY29ubmVjdGlvbiB3aXRoIGEgc2luZ2xlIHRyYW5zYWN0aW9uIG9yCiAgICAgYXJyYW5n ZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBv ZiwgYQogICAgIGNvdmVyZWQgd29yaywgYW5kIGdyYW50IGEgcGF0ZW50IGxpY2Vuc2UgdG8gc29t ZSBvZiB0aGUgcGFydGllcwogICAgIHJlY2VpdmluZyB0aGUgY292ZXJlZCB3b3JrIGF1dGhvcml6 aW5nIHRoZW0gdG8gdXNlLCBwcm9wYWdhdGUsCiAgICAgbW9kaWZ5IG9yIGNvbnZleSBhIHNwZWNp ZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUKICAgICBwYXRlbnQgbGljZW5z ZSB5b3UgZ3JhbnQgaXMgYXV0b21hdGljYWxseSBleHRlbmRlZCB0byBhbGwKICAgICByZWNpcGll bnRzIG9mIHRoZSBjb3ZlcmVkIHdvcmsgYW5kIHdvcmtzIGJhc2VkIG9uIGl0LgoKICAgICBBIHBh dGVudCBsaWNlbnNlIGlzIOKAnGRpc2NyaW1pbmF0b3J54oCdIGlmIGl0IGRvZXMgbm90IGluY2x1 ZGUgd2l0aGluCiAgICAgdGhlIHNjb3BlIG9mIGl0cyBjb3ZlcmFnZSwgcHJvaGliaXRzIHRoZSBl eGVyY2lzZSBvZiwgb3IgaXMKICAgICBjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9m IG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdAogICAgIGFyZSBzcGVjaWZpY2FsbHkgZ3Jh bnRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBZb3UgbWF5IG5vdCBjb252ZXkgYQogICAgIGNvdmVy ZWQgd29yayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQgd2l0aCBhIHRoaXJk CiAgICAgcGFydHkgdGhhdCBpcyBpbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3 YXJlLCB1bmRlciB3aGljaAogICAgIHlvdSBtYWtlIHBheW1lbnQgdG8gdGhlIHRoaXJkIHBhcnR5 IGJhc2VkIG9uIHRoZSBleHRlbnQgb2YgeW91cgogICAgIGFjdGl2aXR5IG9mIGNvbnZleWluZyB0 aGUgd29yaywgYW5kIHVuZGVyIHdoaWNoIHRoZSB0aGlyZCBwYXJ0eQogICAgIGdyYW50cywgdG8g YW55IG9mIHRoZSBwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsKICAg ICBmcm9tIHlvdSwgYSBkaXNjcmltaW5hdG9yeSBwYXRlbnQgbGljZW5zZSAoYSkgaW4gY29ubmVj dGlvbiB3aXRoCiAgICAgY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsgY29udmV5ZWQgYnkgeW91 IChvciBjb3BpZXMgbWFkZSBmcm9tCiAgICAgdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmls eSBmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYwogICAgIHByb2R1Y3RzIG9yIGNv bXBpbGF0aW9ucyB0aGF0IGNvbnRhaW4gdGhlIGNvdmVyZWQgd29yaywgdW5sZXNzIHlvdQogICAg IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LCBvciB0aGF0IHBhdGVudCBsaWNlbnNlIHdh cyBncmFudGVkLAogICAgIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogICAgIE5vdGhpbmcgaW4g dGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcK ICAgICBhbnkgaW1wbGllZCBsaWNlbnNlIG9yIG90aGVyIGRlZmVuc2VzIHRvIGluZnJpbmdlbWVu dCB0aGF0IG1heQogICAgIG90aGVyd2lzZSBiZSBhdmFpbGFibGUgdG8geW91IHVuZGVyIGFwcGxp Y2FibGUgcGF0ZW50IGxhdy4KCiAgMTIuIE5vIFN1cnJlbmRlciBvZiBPdGhlcnPigJkgRnJlZWRv bS4KCiAgICAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291 cnQgb3JkZXIsIGFncmVlbWVudAogICAgIG9yIG90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRo ZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleQogICAgIGRvIG5vdCBleGN1c2UgeW91 IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91CiAgICAgY2Fubm90 IGNvbnZleSBhIGNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlv dXIKICAgICBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0 aW5lbnQgb2JsaWdhdGlvbnMsCiAgICAgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdSBtYXkgbm90 IGNvbnZleSBpdCBhdCBhbGwuICBGb3IgZXhhbXBsZSwKICAgICBpZiB5b3UgYWdyZWUgdG8gdGVy bXMgdGhhdCBvYmxpZ2F0ZSB5b3UgdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yCiAgICAgZnVydGhl ciBjb252ZXlpbmcgZnJvbSB0aG9zZSB0byB3aG9tIHlvdSBjb252ZXkgdGhlIFByb2dyYW0sIHRo ZQogICAgIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggdGhvc2UgdGVybXMgYW5kIHRo aXMgTGljZW5zZSB3b3VsZAogICAgIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlp bmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlLgoKICAgICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBv ZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCiAgICAgcGVybWlzc2lvbiB0byBsaW5rIG9yIGNvbWJp bmUgYW55IGNvdmVyZWQgd29yayB3aXRoIGEgd29yayBsaWNlbnNlZAogICAgIHVuZGVyIHZlcnNp b24gMyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGludG8gYQogICAg IHNpbmdsZSBjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4g IFRoZSB0ZXJtcwogICAgIG9mIHRoaXMgTGljZW5zZSB3aWxsIGNvbnRpbnVlIHRvIGFwcGx5IHRv IHRoZSBwYXJ0IHdoaWNoIGlzIHRoZQogICAgIGNvdmVyZWQgd29yaywgYnV0IHRoZSBzcGVjaWFs IHJlcXVpcmVtZW50cyBvZiB0aGUgR05VIEFmZmVybwogICAgIEdlbmVyYWwgUHVibGljIExpY2Vu c2UsIHNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaAogICAgIGEgbmV0 d29yayB3aWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBhcyBzdWNoLgoKICAxNC4gUmV2aXNl ZCBWZXJzaW9ucyBvZiB0aGlzIExpY2Vuc2UuCgogICAgIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3CiAgICAgdmVyc2lvbnMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaAogICAg IG5ldyB2ZXJzaW9ucyB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZl cnNpb24sIGJ1dAogICAgIG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3MgbmV3IHByb2Js ZW1zIG9yIGNvbmNlcm5zLgoKICAgICBFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlz aGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZQogICAgIFByb2dyYW0gc3BlY2lmaWVzIHRoYXQg YSBjZXJ0YWluIG51bWJlcmVkIHZlcnNpb24gb2YgdGhlIEdOVQogICAgIEdlbmVyYWwgUHVibGlj IExpY2Vuc2Ug4oCcb3IgYW55IGxhdGVyIHZlcnNpb27igJ0gYXBwbGllcyB0byBpdCwgeW91CiAg ICAgaGF2ZSB0aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg ZWl0aGVyIG9mCiAgICAgdGhhdCBudW1iZXJlZCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJz aW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQogICAgIFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0 aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbgogICAgIG51bWJlciBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueQogICAgIHZlcnNp b24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KCiAgICAg SWYgdGhlIFByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBwcm94eSBjYW4gZGVjaWRlIHdoaWNoIGZ1 dHVyZQogICAgIHZlcnNpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBjYW4g YmUgdXNlZCwgdGhhdAogICAgIHByb3h54oCZcyBwdWJsaWMgc3RhdGVtZW50IG9mIGFjY2VwdGFu Y2Ugb2YgYSB2ZXJzaW9uIHBlcm1hbmVudGx5CiAgICAgYXV0aG9yaXplcyB5b3UgdG8gY2hvb3Nl IHRoYXQgdmVyc2lvbiBmb3IgdGhlIFByb2dyYW0uCgogICAgIExhdGVyIGxpY2Vuc2UgdmVyc2lv bnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50CiAgICAgcGVybWlzc2lvbnMu ICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQog ICAgIGF1dGhvciBvciBjb3B5cmlnaHQgaG9sZGVyIGFzIGEgcmVzdWx0IG9mIHlvdXIgY2hvb3Np bmcgdG8gZm9sbG93IGEKICAgICBsYXRlciB2ZXJzaW9uLgoKICAxNS4gRGlzY2xhaW1lciBvZiBX YXJyYW50eS4KCiAgICAgVEhFUkUgSVMgTk8gV0FSUkFOVFkgRk9SIFRIRSBQUk9HUkFNLCBUTyBU SEUgRVhURU5UIFBFUk1JVFRFRCBCWQogICAgIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4g T1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRQogICAgIENPUFlSSUdIVCBIT0xERVJTIEFO RC9PUiBPVEhFUiBQQVJUSUVTIFBST1ZJREUgVEhFIFBST0dSQU0g4oCcQVMgSVPigJ0KICAgICBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQs CiAgICAgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ RVMgT0YKICAgICBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgVEhFIEVOVElSRQogICAgIFJJU0sgQVMgVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZP Uk1BTkNFIE9GIFRIRSBQUk9HUkFNIElTIFdJVEggWU9VLgogICAgIFNIT1VMRCBUSEUgUFJPR1JB TSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMCiAgICAgTkVDRVNT QVJZIFNFUlZJQ0lORywgUkVQQUlSIE9SIENPUlJFQ1RJT04uCgogIDE2LiBMaW1pdGF0aW9uIG9m IExpYWJpbGl0eS4KCiAgICAgSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FC TEUgTEFXIE9SIEFHUkVFRCBUTyBJTgogICAgIFdSSVRJTkcgV0lMTCBBTlkgQ09QWVJJR0hUIEhP TERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNT0RJRklFUwogICAgIEFORC9PUiBDT05WRVlT IFRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IKICAg ICBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5UQUwgT1IK ICAgICBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFIFVTRSBPUiBJTkFC SUxJVFkgVE8gVVNFCiAgICAgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gTE9TUyBPRiBEQVRBIE9SIERBVEEKICAgICBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9S IExPU1NFUyBTVVNUQUlORUQgQlkgWU9VIE9SIFRISVJECiAgICAgUEFSVElFUyBPUiBBIEZBSUxV UkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgogICAgIFBST0dSQU1T KSwgRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9G CiAgICAgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KCiAgMTcuIEludGVycHJldGF0 aW9uIG9mIFNlY3Rpb25zIDE1IGFuZCAxNi4KCiAgICAgSWYgdGhlIGRpc2NsYWltZXIgb2Ygd2Fy cmFudHkgYW5kIGxpbWl0YXRpb24gb2YgbGlhYmlsaXR5IHByb3ZpZGVkCiAgICAgYWJvdmUgY2Fu bm90IGJlIGdpdmVuIGxvY2FsIGxlZ2FsIGVmZmVjdCBhY2NvcmRpbmcgdG8gdGhlaXIgdGVybXMs CiAgICAgcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNs b3NlbHkKICAgICBhcHByb3hpbWF0ZXMgYW4gYWJzb2x1dGUgd2FpdmVyIG9mIGFsbCBjaXZpbCBs aWFiaWxpdHkgaW4KICAgICBjb25uZWN0aW9uIHdpdGggdGhlIFByb2dyYW0sIHVubGVzcyBhIHdh cnJhbnR5IG9yIGFzc3VtcHRpb24gb2YKICAgICBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYSBjb3B5 IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgpFTkQgT0YgVEVSTVMgQU5EIENP TkRJVElPTlMKCkhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoK SWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRo ZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFj aGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2Fu IHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlCnRlcm1zLgoKICAgVG8gZG8gc28s IGF0dGFjaCB0aGUgZm9sbG93aW5nIG5vdGljZXMgdG8gdGhlIHByb2dyYW0uICBJdCBpcyBzYWZl c3QKdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9z dCBlZmZlY3RpdmVseQpzdGF0ZSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBm aWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0IHRoZQrigJxjb3B5cmlnaHTigJ0gbGluZSBhbmQgYSBw b2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICAgT05FIExJTkUg VE8gR0lWRSBUSEUgUFJPR1JBTSdTIE5BTUUgQU5EIEEgQlJJRUYgSURFQSBPRiBXSEFUIElUIERP RVMuCiAgICAgQ29weXJpZ2h0IChDKSBZRUFSIE5BTUUgT0YgQVVUSE9SCgogICAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CiAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKICAgICB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCgogICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKICAgICBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK ICAgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCiAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICAgQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRv IGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyCm1haWwuCgogICBJZiB0aGUgcHJv Z3JhbSBkb2VzIHRlcm1pbmFsIGludGVyYWN0aW9uLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0Cm5v dGljZSBsaWtlIHRoaXMgd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAg ICAgUFJPR1JBTSBDb3B5cmlnaHQgKEMpIFlFQVIgTkFNRSBPRiBBVVRIT1IKICAgICBUaGlzIHBy b2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBl IOKAmHNob3cgd+KAmS4KICAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdl bGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICAgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zOyB0 eXBlIOKAmHNob3cgY+KAmSBmb3IgZGV0YWlscy4KCiAgIFRoZSBoeXBvdGhldGljYWwgY29tbWFu ZHMg4oCYc2hvdyB34oCZIGFuZCDigJhzaG93IGPigJkgc2hvdWxkIHNob3cgdGhlCmFwcHJvcHJp YXRlIHBhcnRzIG9mIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgT2YgY291cnNlLCB5b3Vy CnByb2dyYW3igJlzIGNvbW1hbmRzIG1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVy ZmFjZSwgeW91IHdvdWxkCnVzZSBhbiDigJxhYm91dCBib3jigJ0uCgogICBZb3Ugc2hvdWxkIGFs c28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IKc2No b29sLCBpZiBhbnksIHRvIHNpZ24gYSDigJxjb3B5cmlnaHQgZGlzY2xhaW1lcuKAnSBmb3IgdGhl IHByb2dyYW0sIGlmCm5lY2Vzc2FyeS4gIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMsIGFu ZCBob3cgdG8gYXBwbHkgYW5kIGZvbGxvdwp0aGUgR05VIEdQTCwgc2VlIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCgogICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9l cyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91cgpwcm9ncmFtIGludG8gcHJvcHJpZXRhcnkg cHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lCmxpYnJhcnksIHlvdSBt YXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkK YXBwbGljYXRpb25zIHdpdGggdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQg dG8gZG8sIHVzZSB0aGUKR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQg b2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LApwbGVhc2UgcmVhZCA8aHR0cHM6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy93aHktbm90LWxncGwuaHRtbD4uCgoKKiogQXBwZW5kaXggQiBHTlUgRnJl ZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UKCiAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMS4z LCAzIE5vdmVtYmVyIDIwMDgKCiAgICAgQ29weXJpZ2h0IMKpIDIwMDAsIDIwMDEsIDIwMDIsIDIw MDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICAgPGh0dHBzOi8vZnNm Lm9yZy8+CgogICAgIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRl IHZlcmJhdGltIGNvcGllcwogICAgIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5n aW5nIGl0IGlzIG5vdCBhbGxvd2VkLgoKICAwLiBQUkVBTUJMRQoKICAgICBUaGUgcHVycG9zZSBv ZiB0aGlzIExpY2Vuc2UgaXMgdG8gbWFrZSBhIG1hbnVhbCwgdGV4dGJvb2ssIG9yIG90aGVyCiAg ICAgZnVuY3Rpb25hbCBhbmQgdXNlZnVsIGRvY3VtZW50ICJmcmVlIiBpbiB0aGUgc2Vuc2Ugb2Yg ZnJlZWRvbTogdG8KICAgICBhc3N1cmUgZXZlcnlvbmUgdGhlIGVmZmVjdGl2ZSBmcmVlZG9tIHRv IGNvcHkgYW5kIHJlZGlzdHJpYnV0ZSBpdCwKICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZ5aW5n IGl0LCBlaXRoZXIgY29tbWVyY2lhbGx5IG9yCiAgICAgbm9uY29tbWVyY2lhbGx5LiAgU2Vjb25k YXJpbHksIHRoaXMgTGljZW5zZSBwcmVzZXJ2ZXMgZm9yIHRoZQogICAgIGF1dGhvciBhbmQgcHVi bGlzaGVyIGEgd2F5IHRvIGdldCBjcmVkaXQgZm9yIHRoZWlyIHdvcmssIHdoaWxlIG5vdAogICAg IGJlaW5nIGNvbnNpZGVyZWQgcmVzcG9uc2libGUgZm9yIG1vZGlmaWNhdGlvbnMgbWFkZSBieSBv dGhlcnMuCgogICAgIFRoaXMgTGljZW5zZSBpcyBhIGtpbmQgb2Yg4oCcY29weWxlZnTigJ0sIHdo aWNoIG1lYW5zIHRoYXQgZGVyaXZhdGl2ZQogICAgIHdvcmtzIG9mIHRoZSBkb2N1bWVudCBtdXN0 IHRoZW1zZWx2ZXMgYmUgZnJlZSBpbiB0aGUgc2FtZSBzZW5zZS4KICAgICBJdCBjb21wbGVtZW50 cyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdoaWNoIGlzIGEgY29weWxlZnQKICAg ICBsaWNlbnNlIGRlc2lnbmVkIGZvciBmcmVlIHNvZnR3YXJlLgoKICAgICBXZSBoYXZlIGRlc2ln bmVkIHRoaXMgTGljZW5zZSBpbiBvcmRlciB0byB1c2UgaXQgZm9yIG1hbnVhbHMgZm9yCiAgICAg ZnJlZSBzb2Z0d2FyZSwgYmVjYXVzZSBmcmVlIHNvZnR3YXJlIG5lZWRzIGZyZWUgZG9jdW1lbnRh dGlvbjogYQogICAgIGZyZWUgcHJvZ3JhbSBzaG91bGQgY29tZSB3aXRoIG1hbnVhbHMgcHJvdmlk aW5nIHRoZSBzYW1lIGZyZWVkb21zCiAgICAgdGhhdCB0aGUgc29mdHdhcmUgZG9lcy4gIEJ1dCB0 aGlzIExpY2Vuc2UgaXMgbm90IGxpbWl0ZWQgdG8KICAgICBzb2Z0d2FyZSBtYW51YWxzOyBpdCBj YW4gYmUgdXNlZCBmb3IgYW55IHRleHR1YWwgd29yaywgcmVnYXJkbGVzcwogICAgIG9mIHN1Ympl Y3QgbWF0dGVyIG9yIHdoZXRoZXIgaXQgaXMgcHVibGlzaGVkIGFzIGEgcHJpbnRlZCBib29rLiAg V2UKICAgICByZWNvbW1lbmQgdGhpcyBMaWNlbnNlIHByaW5jaXBhbGx5IGZvciB3b3JrcyB3aG9z ZSBwdXJwb3NlIGlzCiAgICAgaW5zdHJ1Y3Rpb24gb3IgcmVmZXJlbmNlLgoKICAxLiBBUFBMSUNB QklMSVRZIEFORCBERUZJTklUSU9OUwoKICAgICBUaGlzIExpY2Vuc2UgYXBwbGllcyB0byBhbnkg bWFudWFsIG9yIG90aGVyIHdvcmssIGluIGFueSBtZWRpdW0sCiAgICAgdGhhdCBjb250YWlucyBh IG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IGNhbgogICAg IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuICBTdWNoIGEg bm90aWNlCiAgICAgZ3JhbnRzIGEgd29ybGQtd2lkZSwgcm95YWx0eS1mcmVlIGxpY2Vuc2UsIHVu bGltaXRlZCBpbiBkdXJhdGlvbiwKICAgICB0byB1c2UgdGhhdCB3b3JrIHVuZGVyIHRoZSBjb25k aXRpb25zIHN0YXRlZCBoZXJlaW4uICBUaGUKICAgICDigJxEb2N1bWVudOKAnSwgYmVsb3csIHJl ZmVycyB0byBhbnkgc3VjaCBtYW51YWwgb3Igd29yay4gIEFueSBtZW1iZXIKICAgICBvZiB0aGUg cHVibGljIGlzIGEgbGljZW5zZWUsIGFuZCBpcyBhZGRyZXNzZWQgYXMg4oCceW914oCdLiAgWW91 IGFjY2VwdAogICAgIHRoZSBsaWNlbnNlIGlmIHlvdSBjb3B5LCBtb2RpZnkgb3IgZGlzdHJpYnV0 ZSB0aGUgd29yayBpbiBhIHdheQogICAgIHJlcXVpcmluZyBwZXJtaXNzaW9uIHVuZGVyIGNvcHly aWdodCBsYXcuCgogICAgIEEg4oCcTW9kaWZpZWQgVmVyc2lvbuKAnSBvZiB0aGUgRG9jdW1lbnQg bWVhbnMgYW55IHdvcmsgY29udGFpbmluZyB0aGUKICAgICBEb2N1bWVudCBvciBhIHBvcnRpb24g b2YgaXQsIGVpdGhlciBjb3BpZWQgdmVyYmF0aW0sIG9yIHdpdGgKICAgICBtb2RpZmljYXRpb25z IGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlciBsYW5ndWFnZS4KCiAgICAgQSDigJxTZWNv bmRhcnkgU2VjdGlvbuKAnSBpcyBhIG5hbWVkIGFwcGVuZGl4IG9yIGEgZnJvbnQtbWF0dGVyIHNl Y3Rpb24KICAgICBvZiB0aGUgRG9jdW1lbnQgdGhhdCBkZWFscyBleGNsdXNpdmVseSB3aXRoIHRo ZSByZWxhdGlvbnNoaXAgb2YgdGhlCiAgICAgcHVibGlzaGVycyBvciBhdXRob3JzIG9mIHRoZSBE b2N1bWVudCB0byB0aGUgRG9jdW1lbnTigJlzIG92ZXJhbGwKICAgICBzdWJqZWN0IChvciB0byBy ZWxhdGVkIG1hdHRlcnMpIGFuZCBjb250YWlucyBub3RoaW5nIHRoYXQgY291bGQKICAgICBmYWxs IGRpcmVjdGx5IHdpdGhpbiB0aGF0IG92ZXJhbGwgc3ViamVjdC4gIChUaHVzLCBpZiB0aGUgRG9j dW1lbnQKICAgICBpcyBpbiBwYXJ0IGEgdGV4dGJvb2sgb2YgbWF0aGVtYXRpY3MsIGEgU2Vjb25k YXJ5IFNlY3Rpb24gbWF5IG5vdAogICAgIGV4cGxhaW4gYW55IG1hdGhlbWF0aWNzLikgIFRoZSBy ZWxhdGlvbnNoaXAgY291bGQgYmUgYSBtYXR0ZXIgb2YKICAgICBoaXN0b3JpY2FsIGNvbm5lY3Rp b24gd2l0aCB0aGUgc3ViamVjdCBvciB3aXRoIHJlbGF0ZWQgbWF0dGVycywgb3IKICAgICBvZiBs ZWdhbCwgY29tbWVyY2lhbCwgcGhpbG9zb3BoaWNhbCwgZXRoaWNhbCBvciBwb2xpdGljYWwgcG9z aXRpb24KICAgICByZWdhcmRpbmcgdGhlbS4KCiAgICAgVGhlIOKAnEludmFyaWFudCBTZWN0aW9u c+KAnSBhcmUgY2VydGFpbiBTZWNvbmRhcnkgU2VjdGlvbnMgd2hvc2UKICAgICB0aXRsZXMgYXJl IGRlc2lnbmF0ZWQsIGFzIGJlaW5nIHRob3NlIG9mIEludmFyaWFudCBTZWN0aW9ucywgaW4gdGhl CiAgICAgbm90aWNlIHRoYXQgc2F5cyB0aGF0IHRoZSBEb2N1bWVudCBpcyByZWxlYXNlZCB1bmRl ciB0aGlzIExpY2Vuc2UuCiAgICAgSWYgYSBzZWN0aW9uIGRvZXMgbm90IGZpdCB0aGUgYWJvdmUg ZGVmaW5pdGlvbiBvZiBTZWNvbmRhcnkgdGhlbiBpdAogICAgIGlzIG5vdCBhbGxvd2VkIHRvIGJl IGRlc2lnbmF0ZWQgYXMgSW52YXJpYW50LiAgVGhlIERvY3VtZW50IG1heQogICAgIGNvbnRhaW4g emVybyBJbnZhcmlhbnQgU2VjdGlvbnMuICBJZiB0aGUgRG9jdW1lbnQgZG9lcyBub3QgaWRlbnRp ZnkKICAgICBhbnkgSW52YXJpYW50IFNlY3Rpb25zIHRoZW4gdGhlcmUgYXJlIG5vbmUuCgogICAg IFRoZSDigJxDb3ZlciBUZXh0c+KAnSBhcmUgY2VydGFpbiBzaG9ydCBwYXNzYWdlcyBvZiB0ZXh0 IHRoYXQgYXJlCiAgICAgbGlzdGVkLCBhcyBGcm9udC1Db3ZlciBUZXh0cyBvciBCYWNrLUNvdmVy IFRleHRzLCBpbiB0aGUgbm90aWNlCiAgICAgdGhhdCBzYXlzIHRoYXQgdGhlIERvY3VtZW50IGlz IHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEEKICAgICBGcm9udC1Db3ZlciBUZXh0IG1h eSBiZSBhdCBtb3N0IDUgd29yZHMsIGFuZCBhIEJhY2stQ292ZXIgVGV4dCBtYXkKICAgICBiZSBh dCBtb3N0IDI1IHdvcmRzLgoKICAgICBBIOKAnFRyYW5zcGFyZW504oCdIGNvcHkgb2YgdGhlIERv Y3VtZW50IG1lYW5zIGEgbWFjaGluZS1yZWFkYWJsZSBjb3B5LAogICAgIHJlcHJlc2VudGVkIGlu IGEgZm9ybWF0IHdob3NlIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIHRvIHRoZQogICAgIGdl bmVyYWwgcHVibGljLCB0aGF0IGlzIHN1aXRhYmxlIGZvciByZXZpc2luZyB0aGUgZG9jdW1lbnQK ICAgICBzdHJhaWdodGZvcndhcmRseSB3aXRoIGdlbmVyaWMgdGV4dCBlZGl0b3JzIG9yIChmb3Ig aW1hZ2VzIGNvbXBvc2VkCiAgICAgb2YgcGl4ZWxzKSBnZW5lcmljIHBhaW50IHByb2dyYW1zIG9y IChmb3IgZHJhd2luZ3MpIHNvbWUgd2lkZWx5CiAgICAgYXZhaWxhYmxlIGRyYXdpbmcgZWRpdG9y LCBhbmQgdGhhdCBpcyBzdWl0YWJsZSBmb3IgaW5wdXQgdG8gdGV4dAogICAgIGZvcm1hdHRlcnMg b3IgZm9yIGF1dG9tYXRpYyB0cmFuc2xhdGlvbiB0byBhIHZhcmlldHkgb2YgZm9ybWF0cwogICAg IHN1aXRhYmxlIGZvciBpbnB1dCB0byB0ZXh0IGZvcm1hdHRlcnMuICBBIGNvcHkgbWFkZSBpbiBh biBvdGhlcndpc2UKICAgICBUcmFuc3BhcmVudCBmaWxlIGZvcm1hdCB3aG9zZSBtYXJrdXAsIG9y IGFic2VuY2Ugb2YgbWFya3VwLCBoYXMKICAgICBiZWVuIGFycmFuZ2VkIHRvIHRod2FydCBvciBk aXNjb3VyYWdlIHN1YnNlcXVlbnQgbW9kaWZpY2F0aW9uIGJ5CiAgICAgcmVhZGVycyBpcyBub3Qg VHJhbnNwYXJlbnQuICBBbiBpbWFnZSBmb3JtYXQgaXMgbm90IFRyYW5zcGFyZW50IGlmCiAgICAg dXNlZCBmb3IgYW55IHN1YnN0YW50aWFsIGFtb3VudCBvZiB0ZXh0LiAgQSBjb3B5IHRoYXQgaXMg bm90CiAgICAg4oCcVHJhbnNwYXJlbnTigJ0gaXMgY2FsbGVkIOKAnE9wYXF1ZeKAnS4KCiAgICAg RXhhbXBsZXMgb2Ygc3VpdGFibGUgZm9ybWF0cyBmb3IgVHJhbnNwYXJlbnQgY29waWVzIGluY2x1 ZGUgcGxhaW4KICAgICBBU0NJSSB3aXRob3V0IG1hcmt1cCwgVGV4aW5mbyBpbnB1dCBmb3JtYXQs IExhVGVYIGlucHV0IGZvcm1hdCwKICAgICBTR01MIG9yIFhNTCB1c2luZyBhIHB1YmxpY2x5IGF2 YWlsYWJsZSBEVEQsIGFuZCBzdGFuZGFyZC1jb25mb3JtaW5nCiAgICAgc2ltcGxlIEhUTUwsIFBv c3RTY3JpcHQgb3IgUERGIGRlc2lnbmVkIGZvciBodW1hbiBtb2RpZmljYXRpb24uCiAgICAgRXhh bXBsZXMgb2YgdHJhbnNwYXJlbnQgaW1hZ2UgZm9ybWF0cyBpbmNsdWRlIFBORywgWENGIGFuZCBK UEcuCiAgICAgT3BhcXVlIGZvcm1hdHMgaW5jbHVkZSBwcm9wcmlldGFyeSBmb3JtYXRzIHRoYXQg Y2FuIGJlIHJlYWQgYW5kCiAgICAgZWRpdGVkIG9ubHkgYnkgcHJvcHJpZXRhcnkgd29yZCBwcm9j ZXNzb3JzLCBTR01MIG9yIFhNTCBmb3Igd2hpY2gKICAgICB0aGUgRFREIGFuZC9vciBwcm9jZXNz aW5nIHRvb2xzIGFyZSBub3QgZ2VuZXJhbGx5IGF2YWlsYWJsZSwgYW5kCiAgICAgdGhlIG1hY2hp bmUtZ2VuZXJhdGVkIEhUTUwsIFBvc3RTY3JpcHQgb3IgUERGIHByb2R1Y2VkIGJ5IHNvbWUgd29y ZAogICAgIHByb2Nlc3NvcnMgZm9yIG91dHB1dCBwdXJwb3NlcyBvbmx5LgoKICAgICBUaGUg4oCc VGl0bGUgUGFnZeKAnSBtZWFucywgZm9yIGEgcHJpbnRlZCBib29rLCB0aGUgdGl0bGUgcGFnZSBp dHNlbGYsCiAgICAgcGx1cyBzdWNoIGZvbGxvd2luZyBwYWdlcyBhcyBhcmUgbmVlZGVkIHRvIGhv bGQsIGxlZ2libHksIHRoZQogICAgIG1hdGVyaWFsIHRoaXMgTGljZW5zZSByZXF1aXJlcyB0byBh cHBlYXIgaW4gdGhlIHRpdGxlIHBhZ2UuICBGb3IKICAgICB3b3JrcyBpbiBmb3JtYXRzIHdoaWNo IGRvIG5vdCBoYXZlIGFueSB0aXRsZSBwYWdlIGFzIHN1Y2gsIOKAnFRpdGxlCiAgICAgUGFnZeKA nSBtZWFucyB0aGUgdGV4dCBuZWFyIHRoZSBtb3N0IHByb21pbmVudCBhcHBlYXJhbmNlIG9mIHRo ZQogICAgIHdvcmvigJlzIHRpdGxlLCBwcmVjZWRpbmcgdGhlIGJlZ2lubmluZyBvZiB0aGUgYm9k eSBvZiB0aGUgdGV4dC4KCiAgICAgVGhlIOKAnHB1Ymxpc2hlcuKAnSBtZWFucyBhbnkgcGVyc29u IG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIGNvcGllcwogICAgIG9mIHRoZSBEb2N1bWVudCB0 byB0aGUgcHVibGljLgoKICAgICBBIHNlY3Rpb24g4oCcRW50aXRsZWQgWFla4oCdIG1lYW5zIGEg bmFtZWQgc3VidW5pdCBvZiB0aGUgRG9jdW1lbnQKICAgICB3aG9zZSB0aXRsZSBlaXRoZXIgaXMg cHJlY2lzZWx5IFhZWiBvciBjb250YWlucyBYWVogaW4gcGFyZW50aGVzZXMKICAgICBmb2xsb3dp bmcgdGV4dCB0aGF0IHRyYW5zbGF0ZXMgWFlaIGluIGFub3RoZXIgbGFuZ3VhZ2UuICAoSGVyZSBY WVoKICAgICBzdGFuZHMgZm9yIGEgc3BlY2lmaWMgc2VjdGlvbiBuYW1lIG1lbnRpb25lZCBiZWxv dywgc3VjaCBhcwogICAgIOKAnEFja25vd2xlZGdlbWVudHPigJ0sIOKAnERlZGljYXRpb25z4oCd LCDigJxFbmRvcnNlbWVudHPigJ0sIG9yIOKAnEhpc3RvcnnigJ0uKQogICAgIFRvIOKAnFByZXNl cnZlIHRoZSBUaXRsZeKAnSBvZiBzdWNoIGEgc2VjdGlvbiB3aGVuIHlvdSBtb2RpZnkgdGhlCiAg ICAgRG9jdW1lbnQgbWVhbnMgdGhhdCBpdCByZW1haW5zIGEgc2VjdGlvbiDigJxFbnRpdGxlZCBY WVrigJ0gYWNjb3JkaW5nCiAgICAgdG8gdGhpcyBkZWZpbml0aW9uLgoKICAgICBUaGUgRG9jdW1l bnQgbWF5IGluY2x1ZGUgV2FycmFudHkgRGlzY2xhaW1lcnMgbmV4dCB0byB0aGUgbm90aWNlCiAg ICAgd2hpY2ggc3RhdGVzIHRoYXQgdGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gdGhlIERvY3VtZW50 LiAgVGhlc2UKICAgICBXYXJyYW50eSBEaXNjbGFpbWVycyBhcmUgY29uc2lkZXJlZCB0byBiZSBp bmNsdWRlZCBieSByZWZlcmVuY2UgaW4KICAgICB0aGlzIExpY2Vuc2UsIGJ1dCBvbmx5IGFzIHJl Z2FyZHMgZGlzY2xhaW1pbmcgd2FycmFudGllczogYW55IG90aGVyCiAgICAgaW1wbGljYXRpb24g dGhhdCB0aGVzZSBXYXJyYW50eSBEaXNjbGFpbWVycyBtYXkgaGF2ZSBpcyB2b2lkIGFuZAogICAg IGhhcyBubyBlZmZlY3Qgb24gdGhlIG1lYW5pbmcgb2YgdGhpcyBMaWNlbnNlLgoKICAyLiBWRVJC QVRJTSBDT1BZSU5HCgogICAgIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgRG9jdW1l bnQgaW4gYW55IG1lZGl1bSwgZWl0aGVyCiAgICAgY29tbWVyY2lhbGx5IG9yIG5vbmNvbW1lcmNp YWxseSwgcHJvdmlkZWQgdGhhdCB0aGlzIExpY2Vuc2UsIHRoZQogICAgIGNvcHlyaWdodCBub3Rp Y2VzLCBhbmQgdGhlIGxpY2Vuc2Ugbm90aWNlIHNheWluZyB0aGlzIExpY2Vuc2UKICAgICBhcHBs aWVzIHRvIHRoZSBEb2N1bWVudCBhcmUgcmVwcm9kdWNlZCBpbiBhbGwgY29waWVzLCBhbmQgdGhh dCB5b3UKICAgICBhZGQgbm8gb3RoZXIgY29uZGl0aW9ucyB3aGF0c29ldmVyIHRvIHRob3NlIG9m IHRoaXMgTGljZW5zZS4gIFlvdQogICAgIG1heSBub3QgdXNlIHRlY2huaWNhbCBtZWFzdXJlcyB0 byBvYnN0cnVjdCBvciBjb250cm9sIHRoZSByZWFkaW5nCiAgICAgb3IgZnVydGhlciBjb3B5aW5n IG9mIHRoZSBjb3BpZXMgeW91IG1ha2Ugb3IgZGlzdHJpYnV0ZS4gIEhvd2V2ZXIsCiAgICAgeW91 IG1heSBhY2NlcHQgY29tcGVuc2F0aW9uIGluIGV4Y2hhbmdlIGZvciBjb3BpZXMuICBJZiB5b3UK ICAgICBkaXN0cmlidXRlIGEgbGFyZ2UgZW5vdWdoIG51bWJlciBvZiBjb3BpZXMgeW91IG11c3Qg YWxzbyBmb2xsb3cgdGhlCiAgICAgY29uZGl0aW9ucyBpbiBzZWN0aW9uIDMuCgogICAgIFlvdSBt YXkgYWxzbyBsZW5kIGNvcGllcywgdW5kZXIgdGhlIHNhbWUgY29uZGl0aW9ucyBzdGF0ZWQgYWJv dmUsCiAgICAgYW5kIHlvdSBtYXkgcHVibGljbHkgZGlzcGxheSBjb3BpZXMuCgogIDMuIENPUFlJ TkcgSU4gUVVBTlRJVFkKCiAgICAgSWYgeW91IHB1Ymxpc2ggcHJpbnRlZCBjb3BpZXMgKG9yIGNv cGllcyBpbiBtZWRpYSB0aGF0IGNvbW1vbmx5CiAgICAgaGF2ZSBwcmludGVkIGNvdmVycykgb2Yg dGhlIERvY3VtZW50LCBudW1iZXJpbmcgbW9yZSB0aGFuIDEwMCwgYW5kCiAgICAgdGhlIERvY3Vt ZW504oCZcyBsaWNlbnNlIG5vdGljZSByZXF1aXJlcyBDb3ZlciBUZXh0cywgeW91IG11c3QKICAg ICBlbmNsb3NlIHRoZSBjb3BpZXMgaW4gY292ZXJzIHRoYXQgY2FycnksIGNsZWFybHkgYW5kIGxl Z2libHksIGFsbAogICAgIHRoZXNlIENvdmVyIFRleHRzOiBGcm9udC1Db3ZlciBUZXh0cyBvbiB0 aGUgZnJvbnQgY292ZXIsIGFuZAogICAgIEJhY2stQ292ZXIgVGV4dHMgb24gdGhlIGJhY2sgY292 ZXIuICBCb3RoIGNvdmVycyBtdXN0IGFsc28gY2xlYXJseQogICAgIGFuZCBsZWdpYmx5IGlkZW50 aWZ5IHlvdSBhcyB0aGUgcHVibGlzaGVyIG9mIHRoZXNlIGNvcGllcy4gIFRoZQogICAgIGZyb250 IGNvdmVyIG11c3QgcHJlc2VudCB0aGUgZnVsbCB0aXRsZSB3aXRoIGFsbCB3b3JkcyBvZiB0aGUg dGl0bGUKICAgICBlcXVhbGx5IHByb21pbmVudCBhbmQgdmlzaWJsZS4gIFlvdSBtYXkgYWRkIG90 aGVyIG1hdGVyaWFsIG9uIHRoZQogICAgIGNvdmVycyBpbiBhZGRpdGlvbi4gIENvcHlpbmcgd2l0 aCBjaGFuZ2VzIGxpbWl0ZWQgdG8gdGhlIGNvdmVycywgYXMKICAgICBsb25nIGFzIHRoZXkgcHJl c2VydmUgdGhlIHRpdGxlIG9mIHRoZSBEb2N1bWVudCBhbmQgc2F0aXNmeSB0aGVzZQogICAgIGNv bmRpdGlvbnMsIGNhbiBiZSB0cmVhdGVkIGFzIHZlcmJhdGltIGNvcHlpbmcgaW4gb3RoZXIgcmVz cGVjdHMuCgogICAgIElmIHRoZSByZXF1aXJlZCB0ZXh0cyBmb3IgZWl0aGVyIGNvdmVyIGFyZSB0 b28gdm9sdW1pbm91cyB0byBmaXQKICAgICBsZWdpYmx5LCB5b3Ugc2hvdWxkIHB1dCB0aGUgZmly c3Qgb25lcyBsaXN0ZWQgKGFzIG1hbnkgYXMgZml0CiAgICAgcmVhc29uYWJseSkgb24gdGhlIGFj dHVhbCBjb3ZlciwgYW5kIGNvbnRpbnVlIHRoZSByZXN0IG9udG8KICAgICBhZGphY2VudCBwYWdl cy4KCiAgICAgSWYgeW91IHB1Ymxpc2ggb3IgZGlzdHJpYnV0ZSBPcGFxdWUgY29waWVzIG9mIHRo ZSBEb2N1bWVudAogICAgIG51bWJlcmluZyBtb3JlIHRoYW4gMTAwLCB5b3UgbXVzdCBlaXRoZXIg aW5jbHVkZSBhIG1hY2hpbmUtcmVhZGFibGUKICAgICBUcmFuc3BhcmVudCBjb3B5IGFsb25nIHdp dGggZWFjaCBPcGFxdWUgY29weSwgb3Igc3RhdGUgaW4gb3Igd2l0aAogICAgIGVhY2ggT3BhcXVl IGNvcHkgYSBjb21wdXRlci1uZXR3b3JrIGxvY2F0aW9uIGZyb20gd2hpY2ggdGhlIGdlbmVyYWwK ICAgICBuZXR3b3JrLXVzaW5nIHB1YmxpYyBoYXMgYWNjZXNzIHRvIGRvd25sb2FkIHVzaW5nIHB1 YmxpYy1zdGFuZGFyZAogICAgIG5ldHdvcmsgcHJvdG9jb2xzIGEgY29tcGxldGUgVHJhbnNwYXJl bnQgY29weSBvZiB0aGUgRG9jdW1lbnQsIGZyZWUKICAgICBvZiBhZGRlZCBtYXRlcmlhbC4gIElm IHlvdSB1c2UgdGhlIGxhdHRlciBvcHRpb24sIHlvdSBtdXN0IHRha2UKICAgICByZWFzb25hYmx5 IHBydWRlbnQgc3RlcHMsIHdoZW4geW91IGJlZ2luIGRpc3RyaWJ1dGlvbiBvZiBPcGFxdWUKICAg ICBjb3BpZXMgaW4gcXVhbnRpdHksIHRvIGVuc3VyZSB0aGF0IHRoaXMgVHJhbnNwYXJlbnQgY29w eSB3aWxsCiAgICAgcmVtYWluIHRodXMgYWNjZXNzaWJsZSBhdCB0aGUgc3RhdGVkIGxvY2F0aW9u IHVudGlsIGF0IGxlYXN0IG9uZQogICAgIHllYXIgYWZ0ZXIgdGhlIGxhc3QgdGltZSB5b3UgZGlz dHJpYnV0ZSBhbiBPcGFxdWUgY29weSAoZGlyZWN0bHkgb3IKICAgICB0aHJvdWdoIHlvdXIgYWdl bnRzIG9yIHJldGFpbGVycykgb2YgdGhhdCBlZGl0aW9uIHRvIHRoZSBwdWJsaWMuCgogICAgIEl0 IGlzIHJlcXVlc3RlZCwgYnV0IG5vdCByZXF1aXJlZCwgdGhhdCB5b3UgY29udGFjdCB0aGUgYXV0 aG9ycyBvZgogICAgIHRoZSBEb2N1bWVudCB3ZWxsIGJlZm9yZSByZWRpc3RyaWJ1dGluZyBhbnkg bGFyZ2UgbnVtYmVyIG9mIGNvcGllcywKICAgICB0byBnaXZlIHRoZW0gYSBjaGFuY2UgdG8gcHJv dmlkZSB5b3Ugd2l0aCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlCiAgICAgRG9jdW1lbnQuCgog IDQuIE1PRElGSUNBVElPTlMKCiAgICAgWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIGEgTW9k aWZpZWQgVmVyc2lvbiBvZiB0aGUgRG9jdW1lbnQKICAgICB1bmRlciB0aGUgY29uZGl0aW9ucyBv ZiBzZWN0aW9ucyAyIGFuZCAzIGFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdQogICAgIHJlbGVhc2Ug dGhlIE1vZGlmaWVkIFZlcnNpb24gdW5kZXIgcHJlY2lzZWx5IHRoaXMgTGljZW5zZSwgd2l0aCB0 aGUKICAgICBNb2RpZmllZCBWZXJzaW9uIGZpbGxpbmcgdGhlIHJvbGUgb2YgdGhlIERvY3VtZW50 LCB0aHVzIGxpY2Vuc2luZwogICAgIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIG9mIHRo ZSBNb2RpZmllZCBWZXJzaW9uIHRvIHdob2V2ZXIKICAgICBwb3NzZXNzZXMgYSBjb3B5IG9mIGl0 LiAgSW4gYWRkaXRpb24sIHlvdSBtdXN0IGRvIHRoZXNlIHRoaW5ncyBpbgogICAgIHRoZSBNb2Rp ZmllZCBWZXJzaW9uOgoKICAgICAgIEEuIFVzZSBpbiB0aGUgVGl0bGUgUGFnZSAoYW5kIG9uIHRo ZSBjb3ZlcnMsIGlmIGFueSkgYSB0aXRsZQogICAgICAgICAgZGlzdGluY3QgZnJvbSB0aGF0IG9m IHRoZSBEb2N1bWVudCwgYW5kIGZyb20gdGhvc2Ugb2YgcHJldmlvdXMKICAgICAgICAgIHZlcnNp b25zICh3aGljaCBzaG91bGQsIGlmIHRoZXJlIHdlcmUgYW55LCBiZSBsaXN0ZWQgaW4gdGhlCiAg ICAgICAgICBIaXN0b3J5IHNlY3Rpb24gb2YgdGhlIERvY3VtZW50KS4gIFlvdSBtYXkgdXNlIHRo ZSBzYW1lIHRpdGxlCiAgICAgICAgICBhcyBhIHByZXZpb3VzIHZlcnNpb24gaWYgdGhlIG9yaWdp bmFsIHB1Ymxpc2hlciBvZiB0aGF0CiAgICAgICAgICB2ZXJzaW9uIGdpdmVzIHBlcm1pc3Npb24u CgogICAgICAgQi4gTGlzdCBvbiB0aGUgVGl0bGUgUGFnZSwgYXMgYXV0aG9ycywgb25lIG9yIG1v cmUgcGVyc29ucyBvcgogICAgICAgICAgZW50aXRpZXMgcmVzcG9uc2libGUgZm9yIGF1dGhvcnNo aXAgb2YgdGhlIG1vZGlmaWNhdGlvbnMgaW4KICAgICAgICAgIHRoZSBNb2RpZmllZCBWZXJzaW9u LCB0b2dldGhlciB3aXRoIGF0IGxlYXN0IGZpdmUgb2YgdGhlCiAgICAgICAgICBwcmluY2lwYWwg YXV0aG9ycyBvZiB0aGUgRG9jdW1lbnQgKGFsbCBvZiBpdHMgcHJpbmNpcGFsCiAgICAgICAgICBh dXRob3JzLCBpZiBpdCBoYXMgZmV3ZXIgdGhhbiBmaXZlKSwgdW5sZXNzIHRoZXkgcmVsZWFzZSB5 b3UKICAgICAgICAgIGZyb20gdGhpcyByZXF1aXJlbWVudC4KCiAgICAgICBDLiBTdGF0ZSBvbiB0 aGUgVGl0bGUgcGFnZSB0aGUgbmFtZSBvZiB0aGUgcHVibGlzaGVyIG9mIHRoZQogICAgICAgICAg TW9kaWZpZWQgVmVyc2lvbiwgYXMgdGhlIHB1Ymxpc2hlci4KCiAgICAgICBELiBQcmVzZXJ2ZSBh bGwgdGhlIGNvcHlyaWdodCBub3RpY2VzIG9mIHRoZSBEb2N1bWVudC4KCiAgICAgICBFLiBBZGQg YW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBmb3IgeW91ciBtb2RpZmljYXRpb25zCiAg ICAgICAgICBhZGphY2VudCB0byB0aGUgb3RoZXIgY29weXJpZ2h0IG5vdGljZXMuCgogICAgICAg Ri4gSW5jbHVkZSwgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGNvcHlyaWdodCBub3RpY2VzLCBhIGxp Y2Vuc2UKICAgICAgICAgIG5vdGljZSBnaXZpbmcgdGhlIHB1YmxpYyBwZXJtaXNzaW9uIHRvIHVz ZSB0aGUgTW9kaWZpZWQKICAgICAgICAgIFZlcnNpb24gdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMg TGljZW5zZSwgaW4gdGhlIGZvcm0gc2hvd24gaW4KICAgICAgICAgIHRoZSBBZGRlbmR1bSBiZWxv dy4KCiAgICAgICBHLiBQcmVzZXJ2ZSBpbiB0aGF0IGxpY2Vuc2Ugbm90aWNlIHRoZSBmdWxsIGxp c3RzIG9mIEludmFyaWFudAogICAgICAgICAgU2VjdGlvbnMgYW5kIHJlcXVpcmVkIENvdmVyIFRl eHRzIGdpdmVuIGluIHRoZSBEb2N1bWVudOKAmXMKICAgICAgICAgIGxpY2Vuc2Ugbm90aWNlLgoK ICAgICAgIEguIEluY2x1ZGUgYW4gdW5hbHRlcmVkIGNvcHkgb2YgdGhpcyBMaWNlbnNlLgoKICAg ICAgIEkuIFByZXNlcnZlIHRoZSBzZWN0aW9uIEVudGl0bGVkIOKAnEhpc3RvcnnigJ0sIFByZXNl cnZlIGl0cyBUaXRsZSwKICAgICAgICAgIGFuZCBhZGQgdG8gaXQgYW4gaXRlbSBzdGF0aW5nIGF0 IGxlYXN0IHRoZSB0aXRsZSwgeWVhciwgbmV3CiAgICAgICAgICBhdXRob3JzLCBhbmQgcHVibGlz aGVyIG9mIHRoZSBNb2RpZmllZCBWZXJzaW9uIGFzIGdpdmVuIG9uIHRoZQogICAgICAgICAgVGl0 bGUgUGFnZS4gIElmIHRoZXJlIGlzIG5vIHNlY3Rpb24gRW50aXRsZWQg4oCcSGlzdG9yeeKAnSBp biB0aGUKICAgICAgICAgIERvY3VtZW50LCBjcmVhdGUgb25lIHN0YXRpbmcgdGhlIHRpdGxlLCB5 ZWFyLCBhdXRob3JzLCBhbmQKICAgICAgICAgIHB1Ymxpc2hlciBvZiB0aGUgRG9jdW1lbnQgYXMg Z2l2ZW4gb24gaXRzIFRpdGxlIFBhZ2UsIHRoZW4gYWRkCiAgICAgICAgICBhbiBpdGVtIGRlc2Ny aWJpbmcgdGhlIE1vZGlmaWVkIFZlcnNpb24gYXMgc3RhdGVkIGluIHRoZQogICAgICAgICAgcHJl dmlvdXMgc2VudGVuY2UuCgogICAgICAgSi4gUHJlc2VydmUgdGhlIG5ldHdvcmsgbG9jYXRpb24s IGlmIGFueSwgZ2l2ZW4gaW4gdGhlIERvY3VtZW50CiAgICAgICAgICBmb3IgcHVibGljIGFjY2Vz cyB0byBhIFRyYW5zcGFyZW50IGNvcHkgb2YgdGhlIERvY3VtZW50LCBhbmQKICAgICAgICAgIGxp a2V3aXNlIHRoZSBuZXR3b3JrIGxvY2F0aW9ucyBnaXZlbiBpbiB0aGUgRG9jdW1lbnQgZm9yCiAg ICAgICAgICBwcmV2aW91cyB2ZXJzaW9ucyBpdCB3YXMgYmFzZWQgb24uICBUaGVzZSBtYXkgYmUg cGxhY2VkIGluIHRoZQogICAgICAgICAg4oCcSGlzdG9yeeKAnSBzZWN0aW9uLiAgWW91IG1heSBv bWl0IGEgbmV0d29yayBsb2NhdGlvbiBmb3IgYSB3b3JrCiAgICAgICAgICB0aGF0IHdhcyBwdWJs aXNoZWQgYXQgbGVhc3QgZm91ciB5ZWFycyBiZWZvcmUgdGhlIERvY3VtZW50CiAgICAgICAgICBp dHNlbGYsIG9yIGlmIHRoZSBvcmlnaW5hbCBwdWJsaXNoZXIgb2YgdGhlIHZlcnNpb24gaXQgcmVm ZXJzCiAgICAgICAgICB0byBnaXZlcyBwZXJtaXNzaW9uLgoKICAgICAgIEsuIEZvciBhbnkgc2Vj dGlvbiBFbnRpdGxlZCDigJxBY2tub3dsZWRnZW1lbnRz4oCdIG9yIOKAnERlZGljYXRpb25z4oCd LAogICAgICAgICAgUHJlc2VydmUgdGhlIFRpdGxlIG9mIHRoZSBzZWN0aW9uLCBhbmQgcHJlc2Vy dmUgaW4gdGhlIHNlY3Rpb24KICAgICAgICAgIGFsbCB0aGUgc3Vic3RhbmNlIGFuZCB0b25lIG9m IGVhY2ggb2YgdGhlIGNvbnRyaWJ1dG9yCiAgICAgICAgICBhY2tub3dsZWRnZW1lbnRzIGFuZC9v ciBkZWRpY2F0aW9ucyBnaXZlbiB0aGVyZWluLgoKICAgICAgIEwuIFByZXNlcnZlIGFsbCB0aGUg SW52YXJpYW50IFNlY3Rpb25zIG9mIHRoZSBEb2N1bWVudCwgdW5hbHRlcmVkCiAgICAgICAgICBp biB0aGVpciB0ZXh0IGFuZCBpbiB0aGVpciB0aXRsZXMuICBTZWN0aW9uIG51bWJlcnMgb3IgdGhl CiAgICAgICAgICBlcXVpdmFsZW50IGFyZSBub3QgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBzZWN0 aW9uIHRpdGxlcy4KCiAgICAgICBNLiBEZWxldGUgYW55IHNlY3Rpb24gRW50aXRsZWQg4oCcRW5k b3JzZW1lbnRz4oCdLiAgU3VjaCBhIHNlY3Rpb24KICAgICAgICAgIG1heSBub3QgYmUgaW5jbHVk ZWQgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb24uCgogICAgICAgTi4gRG8gbm90IHJldGl0bGUgYW55 IGV4aXN0aW5nIHNlY3Rpb24gdG8gYmUgRW50aXRsZWQKICAgICAgICAgIOKAnEVuZG9yc2VtZW50 c+KAnSBvciB0byBjb25mbGljdCBpbiB0aXRsZSB3aXRoIGFueSBJbnZhcmlhbnQKICAgICAgICAg IFNlY3Rpb24uCgogICAgICAgTy4gUHJlc2VydmUgYW55IFdhcnJhbnR5IERpc2NsYWltZXJzLgoK ICAgICBJZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiBpbmNsdWRlcyBuZXcgZnJvbnQtbWF0dGVyIHNl Y3Rpb25zIG9yCiAgICAgYXBwZW5kaWNlcyB0aGF0IHF1YWxpZnkgYXMgU2Vjb25kYXJ5IFNlY3Rp b25zIGFuZCBjb250YWluIG5vCiAgICAgbWF0ZXJpYWwgY29waWVkIGZyb20gdGhlIERvY3VtZW50 LCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIGRlc2lnbmF0ZQogICAgIHNvbWUgb3IgYWxsIG9mIHRo ZXNlIHNlY3Rpb25zIGFzIGludmFyaWFudC4gIFRvIGRvIHRoaXMsIGFkZCB0aGVpcgogICAgIHRp dGxlcyB0byB0aGUgbGlzdCBvZiBJbnZhcmlhbnQgU2VjdGlvbnMgaW4gdGhlIE1vZGlmaWVkIFZl cnNpb27igJlzCiAgICAgbGljZW5zZSBub3RpY2UuICBUaGVzZSB0aXRsZXMgbXVzdCBiZSBkaXN0 aW5jdCBmcm9tIGFueSBvdGhlcgogICAgIHNlY3Rpb24gdGl0bGVzLgoKICAgICBZb3UgbWF5IGFk ZCBhIHNlY3Rpb24gRW50aXRsZWQg4oCcRW5kb3JzZW1lbnRz4oCdLCBwcm92aWRlZCBpdCBjb250 YWlucwogICAgIG5vdGhpbmcgYnV0IGVuZG9yc2VtZW50cyBvZiB5b3VyIE1vZGlmaWVkIFZlcnNp b24gYnkgdmFyaW91cwogICAgIHBhcnRpZXPigJRmb3IgZXhhbXBsZSwgc3RhdGVtZW50cyBvZiBw ZWVyIHJldmlldyBvciB0aGF0IHRoZSB0ZXh0IGhhcwogICAgIGJlZW4gYXBwcm92ZWQgYnkgYW4g b3JnYW5pemF0aW9uIGFzIHRoZSBhdXRob3JpdGF0aXZlIGRlZmluaXRpb24gb2YKICAgICBhIHN0 YW5kYXJkLgoKICAgICBZb3UgbWF5IGFkZCBhIHBhc3NhZ2Ugb2YgdXAgdG8gZml2ZSB3b3JkcyBh cyBhIEZyb250LUNvdmVyIFRleHQsCiAgICAgYW5kIGEgcGFzc2FnZSBvZiB1cCB0byAyNSB3b3Jk cyBhcyBhIEJhY2stQ292ZXIgVGV4dCwgdG8gdGhlIGVuZCBvZgogICAgIHRoZSBsaXN0IG9mIENv dmVyIFRleHRzIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLiAgT25seSBvbmUgcGFzc2FnZQogICAg IG9mIEZyb250LUNvdmVyIFRleHQgYW5kIG9uZSBvZiBCYWNrLUNvdmVyIFRleHQgbWF5IGJlIGFk ZGVkIGJ5IChvcgogICAgIHRocm91Z2ggYXJyYW5nZW1lbnRzIG1hZGUgYnkpIGFueSBvbmUgZW50 aXR5LiAgSWYgdGhlIERvY3VtZW50CiAgICAgYWxyZWFkeSBpbmNsdWRlcyBhIGNvdmVyIHRleHQg Zm9yIHRoZSBzYW1lIGNvdmVyLCBwcmV2aW91c2x5IGFkZGVkCiAgICAgYnkgeW91IG9yIGJ5IGFy cmFuZ2VtZW50IG1hZGUgYnkgdGhlIHNhbWUgZW50aXR5IHlvdSBhcmUgYWN0aW5nIG9uCiAgICAg YmVoYWxmIG9mLCB5b3UgbWF5IG5vdCBhZGQgYW5vdGhlcjsgYnV0IHlvdSBtYXkgcmVwbGFjZSB0 aGUgb2xkCiAgICAgb25lLCBvbiBleHBsaWNpdCBwZXJtaXNzaW9uIGZyb20gdGhlIHByZXZpb3Vz IHB1Ymxpc2hlciB0aGF0IGFkZGVkCiAgICAgdGhlIG9sZCBvbmUuCgogICAgIFRoZSBhdXRob3Io cykgYW5kIHB1Ymxpc2hlcihzKSBvZiB0aGUgRG9jdW1lbnQgZG8gbm90IGJ5IHRoaXMKICAgICBM aWNlbnNlIGdpdmUgcGVybWlzc2lvbiB0byB1c2UgdGhlaXIgbmFtZXMgZm9yIHB1YmxpY2l0eSBm b3Igb3IgdG8KICAgICBhc3NlcnQgb3IgaW1wbHkgZW5kb3JzZW1lbnQgb2YgYW55IE1vZGlmaWVk IFZlcnNpb24uCgogIDUuIENPTUJJTklORyBET0NVTUVOVFMKCiAgICAgWW91IG1heSBjb21iaW5l IHRoZSBEb2N1bWVudCB3aXRoIG90aGVyIGRvY3VtZW50cyByZWxlYXNlZCB1bmRlcgogICAgIHRo aXMgTGljZW5zZSwgdW5kZXIgdGhlIHRlcm1zIGRlZmluZWQgaW4gc2VjdGlvbiA0IGFib3ZlIGZv cgogICAgIG1vZGlmaWVkIHZlcnNpb25zLCBwcm92aWRlZCB0aGF0IHlvdSBpbmNsdWRlIGluIHRo ZSBjb21iaW5hdGlvbiBhbGwKICAgICBvZiB0aGUgSW52YXJpYW50IFNlY3Rpb25zIG9mIGFsbCBv ZiB0aGUgb3JpZ2luYWwgZG9jdW1lbnRzLAogICAgIHVubW9kaWZpZWQsIGFuZCBsaXN0IHRoZW0g YWxsIGFzIEludmFyaWFudCBTZWN0aW9ucyBvZiB5b3VyCiAgICAgY29tYmluZWQgd29yayBpbiBp dHMgbGljZW5zZSBub3RpY2UsIGFuZCB0aGF0IHlvdSBwcmVzZXJ2ZSBhbGwKICAgICB0aGVpciBX YXJyYW50eSBEaXNjbGFpbWVycy4KCiAgICAgVGhlIGNvbWJpbmVkIHdvcmsgbmVlZCBvbmx5IGNv bnRhaW4gb25lIGNvcHkgb2YgdGhpcyBMaWNlbnNlLCBhbmQKICAgICBtdWx0aXBsZSBpZGVudGlj YWwgSW52YXJpYW50IFNlY3Rpb25zIG1heSBiZSByZXBsYWNlZCB3aXRoIGEgc2luZ2xlCiAgICAg Y29weS4gIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0aGUg c2FtZSBuYW1lCiAgICAgYnV0IGRpZmZlcmVudCBjb250ZW50cywgbWFrZSB0aGUgdGl0bGUgb2Yg ZWFjaCBzdWNoIHNlY3Rpb24gdW5pcXVlCiAgICAgYnkgYWRkaW5nIGF0IHRoZSBlbmQgb2YgaXQs IGluIHBhcmVudGhlc2VzLCB0aGUgbmFtZSBvZiB0aGUKICAgICBvcmlnaW5hbCBhdXRob3Igb3Ig cHVibGlzaGVyIG9mIHRoYXQgc2VjdGlvbiBpZiBrbm93biwgb3IgZWxzZSBhCiAgICAgdW5pcXVl IG51bWJlci4gIE1ha2UgdGhlIHNhbWUgYWRqdXN0bWVudCB0byB0aGUgc2VjdGlvbiB0aXRsZXMg aW4KICAgICB0aGUgbGlzdCBvZiBJbnZhcmlhbnQgU2VjdGlvbnMgaW4gdGhlIGxpY2Vuc2Ugbm90 aWNlIG9mIHRoZQogICAgIGNvbWJpbmVkIHdvcmsuCgogICAgIEluIHRoZSBjb21iaW5hdGlvbiwg eW91IG11c3QgY29tYmluZSBhbnkgc2VjdGlvbnMgRW50aXRsZWQKICAgICDigJxIaXN0b3J54oCd IGluIHRoZSB2YXJpb3VzIG9yaWdpbmFsIGRvY3VtZW50cywgZm9ybWluZyBvbmUgc2VjdGlvbgog ICAgIEVudGl0bGVkIOKAnEhpc3RvcnnigJ07IGxpa2V3aXNlIGNvbWJpbmUgYW55IHNlY3Rpb25z IEVudGl0bGVkCiAgICAg4oCcQWNrbm93bGVkZ2VtZW50c+KAnSwgYW5kIGFueSBzZWN0aW9ucyBF bnRpdGxlZCDigJxEZWRpY2F0aW9uc+KAnS4gIFlvdQogICAgIG11c3QgZGVsZXRlIGFsbCBzZWN0 aW9ucyBFbnRpdGxlZCDigJxFbmRvcnNlbWVudHMu4oCdCgogIDYuIENPTExFQ1RJT05TIE9GIERP Q1VNRU5UUwoKICAgICBZb3UgbWF5IG1ha2UgYSBjb2xsZWN0aW9uIGNvbnNpc3Rpbmcgb2YgdGhl IERvY3VtZW50IGFuZCBvdGhlcgogICAgIGRvY3VtZW50cyByZWxlYXNlZCB1bmRlciB0aGlzIExp Y2Vuc2UsIGFuZCByZXBsYWNlIHRoZSBpbmRpdmlkdWFsCiAgICAgY29waWVzIG9mIHRoaXMgTGlj ZW5zZSBpbiB0aGUgdmFyaW91cyBkb2N1bWVudHMgd2l0aCBhIHNpbmdsZSBjb3B5CiAgICAgdGhh dCBpcyBpbmNsdWRlZCBpbiB0aGUgY29sbGVjdGlvbiwgcHJvdmlkZWQgdGhhdCB5b3UgZm9sbG93 IHRoZQogICAgIHJ1bGVzIG9mIHRoaXMgTGljZW5zZSBmb3IgdmVyYmF0aW0gY29weWluZyBvZiBl YWNoIG9mIHRoZSBkb2N1bWVudHMKICAgICBpbiBhbGwgb3RoZXIgcmVzcGVjdHMuCgogICAgIFlv dSBtYXkgZXh0cmFjdCBhIHNpbmdsZSBkb2N1bWVudCBmcm9tIHN1Y2ggYSBjb2xsZWN0aW9uLCBh bmQKICAgICBkaXN0cmlidXRlIGl0IGluZGl2aWR1YWxseSB1bmRlciB0aGlzIExpY2Vuc2UsIHBy b3ZpZGVkIHlvdSBpbnNlcnQKICAgICBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGludG8gdGhlIGV4 dHJhY3RlZCBkb2N1bWVudCwgYW5kIGZvbGxvdyB0aGlzCiAgICAgTGljZW5zZSBpbiBhbGwgb3Ro ZXIgcmVzcGVjdHMgcmVnYXJkaW5nIHZlcmJhdGltIGNvcHlpbmcgb2YgdGhhdAogICAgIGRvY3Vt ZW50LgoKICA3LiBBR0dSRUdBVElPTiBXSVRIIElOREVQRU5ERU5UIFdPUktTCgogICAgIEEgY29t cGlsYXRpb24gb2YgdGhlIERvY3VtZW50IG9yIGl0cyBkZXJpdmF0aXZlcyB3aXRoIG90aGVyCiAg ICAgc2VwYXJhdGUgYW5kIGluZGVwZW5kZW50IGRvY3VtZW50cyBvciB3b3JrcywgaW4gb3Igb24g YSB2b2x1bWUgb2YgYQogICAgIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2Fs bGVkIGFuIOKAnGFnZ3JlZ2F0ZeKAnSBpZiB0aGUKICAgICBjb3B5cmlnaHQgcmVzdWx0aW5nIGZy b20gdGhlIGNvbXBpbGF0aW9uIGlzIG5vdCB1c2VkIHRvIGxpbWl0IHRoZQogICAgIGxlZ2FsIHJp Z2h0cyBvZiB0aGUgY29tcGlsYXRpb27igJlzIHVzZXJzIGJleW9uZCB3aGF0IHRoZSBpbmRpdmlk dWFsCiAgICAgd29ya3MgcGVybWl0LiAgV2hlbiB0aGUgRG9jdW1lbnQgaXMgaW5jbHVkZWQgaW4g YW4gYWdncmVnYXRlLCB0aGlzCiAgICAgTGljZW5zZSBkb2VzIG5vdCBhcHBseSB0byB0aGUgb3Ro ZXIgd29ya3MgaW4gdGhlIGFnZ3JlZ2F0ZSB3aGljaAogICAgIGFyZSBub3QgdGhlbXNlbHZlcyBk ZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBEb2N1bWVudC4KCiAgICAgSWYgdGhlIENvdmVyIFRleHQg cmVxdWlyZW1lbnQgb2Ygc2VjdGlvbiAzIGlzIGFwcGxpY2FibGUgdG8gdGhlc2UKICAgICBjb3Bp ZXMgb2YgdGhlIERvY3VtZW50LCB0aGVuIGlmIHRoZSBEb2N1bWVudCBpcyBsZXNzIHRoYW4gb25l IGhhbGYKICAgICBvZiB0aGUgZW50aXJlIGFnZ3JlZ2F0ZSwgdGhlIERvY3VtZW504oCZcyBDb3Zl ciBUZXh0cyBtYXkgYmUgcGxhY2VkCiAgICAgb24gY292ZXJzIHRoYXQgYnJhY2tldCB0aGUgRG9j dW1lbnQgd2l0aGluIHRoZSBhZ2dyZWdhdGUsIG9yIHRoZQogICAgIGVsZWN0cm9uaWMgZXF1aXZh bGVudCBvZiBjb3ZlcnMgaWYgdGhlIERvY3VtZW50IGlzIGluIGVsZWN0cm9uaWMKICAgICBmb3Jt LiAgT3RoZXJ3aXNlIHRoZXkgbXVzdCBhcHBlYXIgb24gcHJpbnRlZCBjb3ZlcnMgdGhhdCBicmFj a2V0CiAgICAgdGhlIHdob2xlIGFnZ3JlZ2F0ZS4KCiAgOC4gVFJBTlNMQVRJT04KCiAgICAgVHJh bnNsYXRpb24gaXMgY29uc2lkZXJlZCBhIGtpbmQgb2YgbW9kaWZpY2F0aW9uLCBzbyB5b3UgbWF5 CiAgICAgZGlzdHJpYnV0ZSB0cmFuc2xhdGlvbnMgb2YgdGhlIERvY3VtZW50IHVuZGVyIHRoZSB0 ZXJtcyBvZiBzZWN0aW9uCiAgICAgNC4gIFJlcGxhY2luZyBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0 aCB0cmFuc2xhdGlvbnMgcmVxdWlyZXMgc3BlY2lhbAogICAgIHBlcm1pc3Npb24gZnJvbSB0aGVp ciBjb3B5cmlnaHQgaG9sZGVycywgYnV0IHlvdSBtYXkgaW5jbHVkZQogICAgIHRyYW5zbGF0aW9u cyBvZiBzb21lIG9yIGFsbCBJbnZhcmlhbnQgU2VjdGlvbnMgaW4gYWRkaXRpb24gdG8gdGhlCiAg ICAgb3JpZ2luYWwgdmVyc2lvbnMgb2YgdGhlc2UgSW52YXJpYW50IFNlY3Rpb25zLiAgWW91IG1h eSBpbmNsdWRlIGEKICAgICB0cmFuc2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UsIGFuZCBhbGwgdGhl IGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUKICAgICBEb2N1bWVudCwgYW5kIGFueSBXYXJyYW50eSBE aXNjbGFpbWVycywgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbwogICAgIGluY2x1ZGUgdGhlIG9yaWdp bmFsIEVuZ2xpc2ggdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2UgYW5kIHRoZQogICAgIG9yaWdpbmFs IHZlcnNpb25zIG9mIHRob3NlIG5vdGljZXMgYW5kIGRpc2NsYWltZXJzLiAgSW4gY2FzZSBvZiBh CiAgICAgZGlzYWdyZWVtZW50IGJldHdlZW4gdGhlIHRyYW5zbGF0aW9uIGFuZCB0aGUgb3JpZ2lu YWwgdmVyc2lvbiBvZgogICAgIHRoaXMgTGljZW5zZSBvciBhIG5vdGljZSBvciBkaXNjbGFpbWVy LCB0aGUgb3JpZ2luYWwgdmVyc2lvbiB3aWxsCiAgICAgcHJldmFpbC4KCiAgICAgSWYgYSBzZWN0 aW9uIGluIHRoZSBEb2N1bWVudCBpcyBFbnRpdGxlZCDigJxBY2tub3dsZWRnZW1lbnRz4oCdLAog ICAgIOKAnERlZGljYXRpb25z4oCdLCBvciDigJxIaXN0b3J54oCdLCB0aGUgcmVxdWlyZW1lbnQg KHNlY3Rpb24gNCkgdG8KICAgICBQcmVzZXJ2ZSBpdHMgVGl0bGUgKHNlY3Rpb24gMSkgd2lsbCB0 eXBpY2FsbHkgcmVxdWlyZSBjaGFuZ2luZyB0aGUKICAgICBhY3R1YWwgdGl0bGUuCgogIDkuIFRF Uk1JTkFUSU9OCgogICAgIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgb3Ig ZGlzdHJpYnV0ZSB0aGUgRG9jdW1lbnQKICAgICBleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVk IHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0CiAgICAgb3RoZXJ3aXNlIHRvIGNvcHks IG1vZGlmeSwgc3VibGljZW5zZSwgb3IgZGlzdHJpYnV0ZSBpdCBpcyB2b2lkLAogICAgIGFuZCB3 aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5z ZS4KCiAgICAgSG93ZXZlciwgaWYgeW91IGNlYXNlIGFsbCB2aW9sYXRpb24gb2YgdGhpcyBMaWNl bnNlLCB0aGVuIHlvdXIKICAgICBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBo b2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkKICAgICBwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVu dGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCiAgICAgZmluYWxseSB0ZXJt aW5hdGVzIHlvdXIgbGljZW5zZSwgYW5kIChiKSBwZXJtYW5lbnRseSwgaWYgdGhlCiAgICAgY29w eXJpZ2h0IGhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29t ZQogICAgIHJlYXNvbmFibGUgbWVhbnMgcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0 aW9uLgoKICAgICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHly aWdodCBob2xkZXIgaXMKICAgICByZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmln aHQgaG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUKICAgICB2aW9sYXRpb24gYnkgc29tZSByZWFz b25hYmxlIG1lYW5zLCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdSBoYXZlCiAgICAgcmVjZWl2 ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJv bQogICAgIHRoYXQgY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24g cHJpb3IgdG8gMzAgZGF5cwogICAgIGFmdGVyIHlvdXIgcmVjZWlwdCBvZiB0aGUgbm90aWNlLgoK ICAgICBUZXJtaW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9lcyBu b3QgdGVybWluYXRlCiAgICAgdGhlIGxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2 ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdQogICAgIHVuZGVyIHRoaXMgTGljZW5zZS4gIElm IHlvdXIgcmlnaHRzIGhhdmUgYmVlbiB0ZXJtaW5hdGVkIGFuZCBub3QKICAgICBwZXJtYW5lbnRs eSByZWluc3RhdGVkLCByZWNlaXB0IG9mIGEgY29weSBvZiBzb21lIG9yIGFsbCBvZiB0aGUKICAg ICBzYW1lIG1hdGVyaWFsIGRvZXMgbm90IGdpdmUgeW91IGFueSByaWdodHMgdG8gdXNlIGl0LgoK ICAxMC4gRlVUVVJFIFJFVklTSU9OUyBPRiBUSElTIExJQ0VOU0UKCiAgICAgVGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCBuZXcsIHJldmlzZWQgdmVyc2lvbnMgb2YKICAg ICB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAg U3VjaCBuZXcKICAgICB2ZXJzaW9ucyB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBw cmVzZW50IHZlcnNpb24sIGJ1dCBtYXkKICAgICBkaWZmZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3Mg bmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLiAgU2VlCiAgICAgPGh0dHBzOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KCiAgICAgRWFjaCB2ZXJzaW9uIG9mIHRoZSBMaWNlbnNlIGlzIGdpdmVuIGEg ZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbgogICAgIG51bWJlci4gIElmIHRoZSBEb2N1bWVudCBzcGVj aWZpZXMgdGhhdCBhIHBhcnRpY3VsYXIgbnVtYmVyZWQKICAgICB2ZXJzaW9uIG9mIHRoaXMgTGlj ZW5zZSDigJxvciBhbnkgbGF0ZXIgdmVyc2lvbuKAnSBhcHBsaWVzIHRvIGl0LCB5b3UKICAgICBo YXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRo ZXIgb2YKICAgICB0aGF0IHNwZWNpZmllZCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9u IHRoYXQgaGFzIGJlZW4KICAgICBwdWJsaXNoZWQgKG5vdCBhcyBhIGRyYWZ0KSBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlCiAgICAgRG9jdW1lbnQgZG9lcyBub3Qgc3Bl Y2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgTGljZW5zZSwgeW91IG1heQogICAgIGNob29z ZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCAobm90IGFzIGEgZHJhZnQpIGJ5IHRoZSBGcmVl CiAgICAgU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBEb2N1bWVudCBzcGVjaWZpZXMgdGhh dCBhIHByb3h5IGNhbgogICAgIGRlY2lkZSB3aGljaCBmdXR1cmUgdmVyc2lvbnMgb2YgdGhpcyBM aWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0CiAgICAgcHJveHnigJlzIHB1YmxpYyBzdGF0ZW1lbnQg b2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkKICAgICBhdXRob3JpemVzIHlv dSB0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgRG9jdW1lbnQuCgogIDExLiBSRUxJQ0VO U0lORwoKICAgICDigJxNYXNzaXZlIE11bHRpYXV0aG9yIENvbGxhYm9yYXRpb24gU2l0ZeKAnSAo b3Ig4oCcTU1DIFNpdGXigJ0pIG1lYW5zIGFueQogICAgIFdvcmxkIFdpZGUgV2ViIHNlcnZlciB0 aGF0IHB1Ymxpc2hlcyBjb3B5cmlnaHRhYmxlIHdvcmtzIGFuZCBhbHNvCiAgICAgcHJvdmlkZXMg cHJvbWluZW50IGZhY2lsaXRpZXMgZm9yIGFueWJvZHkgdG8gZWRpdCB0aG9zZSB3b3Jrcy4gIEEK ICAgICBwdWJsaWMgd2lraSB0aGF0IGFueWJvZHkgY2FuIGVkaXQgaXMgYW4gZXhhbXBsZSBvZiBz dWNoIGEgc2VydmVyLgogICAgIEEg4oCcTWFzc2l2ZSBNdWx0aWF1dGhvciBDb2xsYWJvcmF0aW9u 4oCdIChvciDigJxNTUPigJ0pIGNvbnRhaW5lZCBpbiB0aGUKICAgICBzaXRlIG1lYW5zIGFueSBz ZXQgb2YgY29weXJpZ2h0YWJsZSB3b3JrcyB0aHVzIHB1Ymxpc2hlZCBvbiB0aGUgTU1DCiAgICAg c2l0ZS4KCiAgICAg4oCcQ0MtQlktU0HigJ0gbWVhbnMgdGhlIENyZWF0aXZlIENvbW1vbnMgQXR0 cmlidXRpb24tU2hhcmUgQWxpa2UgMy4wCiAgICAgbGljZW5zZSBwdWJsaXNoZWQgYnkgQ3JlYXRp dmUgQ29tbW9ucyBDb3Jwb3JhdGlvbiwgYSBub3QtZm9yLXByb2ZpdAogICAgIGNvcnBvcmF0aW9u IHdpdGggYSBwcmluY2lwYWwgcGxhY2Ugb2YgYnVzaW5lc3MgaW4gU2FuIEZyYW5jaXNjbywKICAg ICBDYWxpZm9ybmlhLCBhcyB3ZWxsIGFzIGZ1dHVyZSBjb3B5bGVmdCB2ZXJzaW9ucyBvZiB0aGF0 IGxpY2Vuc2UKICAgICBwdWJsaXNoZWQgYnkgdGhhdCBzYW1lIG9yZ2FuaXphdGlvbi4KCiAgICAg 4oCcSW5jb3Jwb3JhdGXigJ0gbWVhbnMgdG8gcHVibGlzaCBvciByZXB1Ymxpc2ggYSBEb2N1bWVu dCwgaW4gd2hvbGUgb3IKICAgICBpbiBwYXJ0LCBhcyBwYXJ0IG9mIGFub3RoZXIgRG9jdW1lbnQu CgogICAgIEFuIE1NQyBpcyDigJxlbGlnaWJsZSBmb3IgcmVsaWNlbnNpbmfigJ0gaWYgaXQgaXMg bGljZW5zZWQgdW5kZXIgdGhpcwogICAgIExpY2Vuc2UsIGFuZCBpZiBhbGwgd29ya3MgdGhhdCB3 ZXJlIGZpcnN0IHB1Ymxpc2hlZCB1bmRlciB0aGlzCiAgICAgTGljZW5zZSBzb21ld2hlcmUgb3Ro ZXIgdGhhbiB0aGlzIE1NQywgYW5kIHN1YnNlcXVlbnRseQogICAgIGluY29ycG9yYXRlZCBpbiB3 aG9sZSBvciBpbiBwYXJ0IGludG8gdGhlIE1NQywgKDEpIGhhZCBubyBjb3ZlcgogICAgIHRleHRz IG9yIGludmFyaWFudCBzZWN0aW9ucywgYW5kICgyKSB3ZXJlIHRodXMgaW5jb3Jwb3JhdGVkIHBy aW9yCiAgICAgdG8gTm92ZW1iZXIgMSwgMjAwOC4KCiAgICAgVGhlIG9wZXJhdG9yIG9mIGFuIE1N QyBTaXRlIG1heSByZXB1Ymxpc2ggYW4gTU1DIGNvbnRhaW5lZCBpbiB0aGUKICAgICBzaXRlIHVu ZGVyIENDLUJZLVNBIG9uIHRoZSBzYW1lIHNpdGUgYXQgYW55IHRpbWUgYmVmb3JlIEF1Z3VzdCAx LAogICAgIDIwMDksIHByb3ZpZGVkIHRoZSBNTUMgaXMgZWxpZ2libGUgZm9yIHJlbGljZW5zaW5n LgoKQURERU5EVU06IEhvdyB0byB1c2UgdGhpcyBMaWNlbnNlIGZvciB5b3VyIGRvY3VtZW50cwoK VG8gdXNlIHRoaXMgTGljZW5zZSBpbiBhIGRvY3VtZW50IHlvdSBoYXZlIHdyaXR0ZW4sIGluY2x1 ZGUgYSBjb3B5IG9mCnRoZSBMaWNlbnNlIGluIHRoZSBkb2N1bWVudCBhbmQgcHV0IHRoZSBmb2xs b3dpbmcgY29weXJpZ2h0IGFuZCBsaWNlbnNlCm5vdGljZXMganVzdCBhZnRlciB0aGUgdGl0bGUg cGFnZToKCiAgICAgICBDb3B5cmlnaHQgKEMpICBZRUFSICBZT1VSIE5BTUUuCiAgICAgICBQZXJt aXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMg ZG9jdW1lbnQKICAgICAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRh dGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMwogICAgICAgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247CiAgICAgICB3aXRoIG5vIElu dmFyaWFudCBTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVy CiAgICAgICBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUg c2VjdGlvbiBlbnRpdGxlZCBgYEdOVQogICAgICAgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2Un Jy4KCiAgIElmIHlvdSBoYXZlIEludmFyaWFudCBTZWN0aW9ucywgRnJvbnQtQ292ZXIgVGV4dHMg YW5kIEJhY2stQ292ZXIKVGV4dHMsIHJlcGxhY2UgdGhlIOKAnHdpdGjigKZUZXh0cy7igJ0gbGlu ZSB3aXRoIHRoaXM6CgogICAgICAgICB3aXRoIHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgYmVpbmcg TElTVCBUSEVJUiBUSVRMRVMsIHdpdGgKICAgICAgICAgdGhlIEZyb250LUNvdmVyIFRleHRzIGJl aW5nIExJU1QsIGFuZCB3aXRoIHRoZSBCYWNrLUNvdmVyIFRleHRzCiAgICAgICAgIGJlaW5nIExJ U1QuCgogICBJZiB5b3UgaGF2ZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aG91dCBDb3ZlciBUZXh0 cywgb3Igc29tZSBvdGhlcgpjb21iaW5hdGlvbiBvZiB0aGUgdGhyZWUsIG1lcmdlIHRob3NlIHR3 byBhbHRlcm5hdGl2ZXMgdG8gc3VpdCB0aGUKc2l0dWF0aW9uLgoKICAgSWYgeW91ciBkb2N1bWVu dCBjb250YWlucyBub250cml2aWFsIGV4YW1wbGVzIG9mIHByb2dyYW0gY29kZSwgd2UKcmVjb21t ZW5kIHJlbGVhc2luZyB0aGVzZSBleGFtcGxlcyBpbiBwYXJhbGxlbCB1bmRlciB5b3VyIGNob2lj ZSBvZiBmcmVlCnNvZnR3YXJlIGxpY2Vuc2UsIHN1Y2ggYXMgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLCB0byBwZXJtaXQKdGhlaXIgdXNlIGluIGZyZWUgc29mdHdhcmUuCgoKKiogQXBw ZW5kaXggQyBDb21tYW5kIExpbmUgQXJndW1lbnRzIGZvciBFbWFjcyBJbnZvY2F0aW9uCgpFbWFj cyBzdXBwb3J0cyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRvIHJlcXVlc3QgdmFyaW91cyBhY3Rp b25zIHdoZW4KaW52b2tpbmcgRW1hY3MuICBUaGVzZSBhcmUgZm9yIGNvbXBhdGliaWxpdHkgd2l0 aCBvdGhlciBlZGl0b3JzIGFuZCBmb3IKc29waGlzdGljYXRlZCBhY3Rpdml0aWVzLiAgV2UgZG9u 4oCZdCByZWNvbW1lbmQgdXNpbmcgdGhlbSBmb3Igb3JkaW5hcnkKZWRpdGluZyAoKk5vdGUgRW1h Y3MgU2VydmVyOjosIGZvciBhIHdheSB0byBhY2Nlc3MgYW4gZXhpc3RpbmcgRW1hY3Mgam9iCmZy b20gdGhlIGNvbW1hbmQgbGluZSkuCgogICBBcmd1bWVudHMgc3RhcnRpbmcgd2l0aCDigJgt4oCZ IGFyZSAib3B0aW9ucyIsIGFuZCBzbyBpcyDigJgrTElORU5VTeKAmS4gIEFsbApvdGhlciBhcmd1 bWVudHMgc3BlY2lmeSBmaWxlcyB0byB2aXNpdC4gIEVtYWNzIHZpc2l0cyB0aGUgc3BlY2lmaWVk CmZpbGVzIHdoaWxlIGl0IHN0YXJ0cyB1cC4gIFRoZSBsYXN0IGZpbGUgc3BlY2lmaWVkIG9uIHRo ZSBjb21tYW5kIGxpbmUKYmVjb21lcyB0aGUgY3VycmVudCBidWZmZXI7IHRoZSBvdGhlciBmaWxl cyBhcmUgYWxzbyB2aXNpdGVkIGluIG90aGVyCmJ1ZmZlcnMuICBBcyB3aXRoIG1vc3QgcHJvZ3Jh bXMsIHRoZSBzcGVjaWFsIGFyZ3VtZW50IOKAmC0t4oCZIHNheXMgdGhhdCBhbGwKc3Vic2VxdWVu dCBhcmd1bWVudHMgYXJlIGZpbGUgbmFtZXMsIG5vdCBvcHRpb25zLCBldmVuIGlmIHRoZXkgc3Rh cnQKd2l0aCDigJgt4oCZLgoKICAgRW1hY3MgY29tbWFuZCBvcHRpb25zIGNhbiBzcGVjaWZ5IG1h bnkgdGhpbmdzLCBzdWNoIGFzIHRoZSBzaXplIGFuZApwb3NpdGlvbiBvZiB0aGUgWCB3aW5kb3cg RW1hY3MgdXNlcywgaXRzIGNvbG9ycywgYW5kIHNvIG9uLiAgQSBmZXcKb3B0aW9ucyBzdXBwb3J0 IGFkdmFuY2VkIHVzYWdlLCBzdWNoIGFzIHJ1bm5pbmcgTGlzcCBmdW5jdGlvbnMgb24gZmlsZXMK aW4gYmF0Y2ggbW9kZS4gIFRoZSBzZWN0aW9ucyBvZiB0aGlzIGNoYXB0ZXIgZGVzY3JpYmUgdGhl IGF2YWlsYWJsZQpvcHRpb25zLCBhcnJhbmdlZCBhY2NvcmRpbmcgdG8gdGhlaXIgcHVycG9zZS4K CiAgIFRoZXJlIGFyZSB0d28gd2F5cyBvZiB3cml0aW5nIG9wdGlvbnM6IHRoZSBzaG9ydCBmb3Jt cyB0aGF0IHN0YXJ0CndpdGggYSBzaW5nbGUg4oCYLeKAmSwgYW5kIHRoZSBsb25nIGZvcm1zIHRo YXQgc3RhcnQgd2l0aCDigJgtLeKAmS4gIEZvcgpleGFtcGxlLCDigJgtZOKAmSBpcyBhIHNob3J0 IGZvcm0gYW5kIOKAmC0tZGlzcGxheeKAmSBpcyB0aGUgY29ycmVzcG9uZGluZyBsb25nCmZvcm0u CgogICBUaGUgbG9uZyBmb3JtcyB3aXRoIOKAmC0t4oCZIGFyZSBlYXNpZXIgdG8gcmVtZW1iZXIs IGJ1dCBsb25nZXIgdG8gdHlwZS4KSG93ZXZlciwgeW91IGRvbuKAmXQgaGF2ZSB0byBzcGVsbCBv dXQgdGhlIHdob2xlIG9wdGlvbiBuYW1lOyBhbnkKdW5hbWJpZ3VvdXMgYWJicmV2aWF0aW9uIGlz IGVub3VnaC4gIFdoZW4gYSBsb25nIG9wdGlvbiB0YWtlcyBhbgphcmd1bWVudCwgeW91IGNhbiB1 c2UgZWl0aGVyIGEgc3BhY2Ugb3IgYW4gZXF1YWwgc2lnbiB0byBzZXBhcmF0ZSB0aGUKb3B0aW9u IG5hbWUgYW5kIHRoZSBhcmd1bWVudC4gIFRodXMsIGZvciB0aGUgb3B0aW9uIOKAmC0tZGlzcGxh eeKAmSwgeW91IGNhbgp3cml0ZSBlaXRoZXIg4oCYLS1kaXNwbGF5IHN1Z2FyLWJvbWJzOjAuMOKA mSBvciDigJgtLWRpc3BsYXk9c3VnYXItYm9tYnM6MC4w4oCZLgpXZSByZWNvbW1lbmQgYW4gZXF1 YWwgc2lnbiBiZWNhdXNlIGl0IG1ha2VzIHRoZSByZWxhdGlvbnNoaXAgY2xlYXJlciwKYW5kIHRo ZSB0YWJsZXMgYmVsb3cgYWx3YXlzIHNob3cgYW4gZXF1YWwgc2lnbi4KCiAgIE1vc3Qgb3B0aW9u cyBzcGVjaWZ5IGhvdyB0byBpbml0aWFsaXplIEVtYWNzLCBvciBzZXQgcGFyYW1ldGVycyBmb3IK dGhlIEVtYWNzIHNlc3Npb24uICBXZSBjYWxsIHRoZW0gImluaXRpYWwgb3B0aW9ucyIuICBBIGZl dyBvcHRpb25zCnNwZWNpZnkgdGhpbmdzIHRvIGRvLCBzdWNoIGFzIGxvYWRpbmcgbGlicmFyaWVz IG9yIGNhbGxpbmcgTGlzcApmdW5jdGlvbnMuICBUaGVzZSBhcmUgY2FsbGVkICJhY3Rpb24gb3B0 aW9ucyIuICBUaGVzZSBhbmQgZmlsZSBuYW1lcwp0b2dldGhlciBhcmUgY2FsbGVkICJhY3Rpb24g YXJndW1lbnRzIi4gIFRoZSBhY3Rpb24gYXJndW1lbnRzIGFyZSBzdG9yZWQKYXMgYSBsaXN0IG9m IHN0cmluZ3MgaW4gdGhlIHZhcmlhYmxlIOKAmGNvbW1hbmQtbGluZS1hcmdz4oCZLiAgKEFjdHVh bGx5LAp3aGVuIEVtYWNzIHN0YXJ0cyB1cCwg4oCYY29tbWFuZC1saW5lLWFyZ3PigJkgY29udGFp bnMgYWxsIHRoZSBhcmd1bWVudHMKcGFzc2VkIGZyb20gdGhlIGNvbW1hbmQgbGluZTsgZHVyaW5n IGluaXRpYWxpemF0aW9uLCB0aGUgaW5pdGlhbAphcmd1bWVudHMgYXJlIHJlbW92ZWQgZnJvbSB0 aGlzIGxpc3Qgd2hlbiB0aGV5IGFyZSBwcm9jZXNzZWQsIGxlYXZpbmcKb25seSB0aGUgYWN0aW9u IGFyZ3VtZW50cy4pCgorIE1lbnU6CgogIC0gQWN0aW9uIEFyZ3VtZW50czo6ICAgIEFyZ3VtZW50 cyB0byB2aXNpdCBmaWxlcywgbG9hZCBsaWJyYXJpZXMsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIGNhbGwgZnVuY3Rpb25zLgogIC0gSW5pdGlhbCBPcHRpb25zOjogICAgIEFyZ3VtZW50 cyB0aGF0IHRha2UgZWZmZWN0IHdoaWxlIHN0YXJ0aW5nIEVtYWNzLgogIC0gQ29tbWFuZCBFeGFt cGxlOjogICAgIEV4YW1wbGVzIG9mIHVzaW5nIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCiAgLSBF bnZpcm9ubWVudDo6ICAgICAgICAgRW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgRW1hY3MgdXNl cy4KICAtIERpc3BsYXkgWDo6ICAgICAgICAgICBDaGFuZ2luZyB0aGUgZGVmYXVsdCBkaXNwbGF5 IGFuZCB1c2luZyByZW1vdGUgbG9naW4uCiAgLSBGb250IFg6OiAgICAgICAgICAgICAgQ2hvb3Np bmcgYSBmb250IGZvciB0ZXh0LCB1bmRlciBYLgogIC0gQ29sb3JzIFg6OiAgICAgICAgICAgIENo b29zaW5nIGRpc3BsYXkgY29sb3JzLgogIC0gV2luZG93IFNpemUgWDo6ICAgICAgIFN0YXJ0LXVw IHdpbmRvdyBzaXplLCB1bmRlciBYLgogIC0gQm9yZGVycyBYOjogICAgICAgICAgIEludGVybmFs IGFuZCBvdXRlciBib3JkZXJzLCB1bmRlciBYLgogIC0gVGl0bGUgWDo6ICAgICAgICAgICAgIFNw ZWNpZnlpbmcgdGhlIGluaXRpYWwgZnJhbWXigJlzIHRpdGxlLgogIC0gSWNvbnMgWDo6ICAgICAg ICAgICAgIENob29zaW5nIHdoYXQgc29ydCBvZiBpY29uIHRvIHVzZSwgdW5kZXIgWC4KICAtIE1p c2MgWDo6ICAgICAgICAgICAgICBPdGhlciBkaXNwbGF5IG9wdGlvbnMuCgoKKioqIEMuMSBBY3Rp b24gQXJndW1lbnRzCgpIZXJlIGlzIGEgdGFibGUgb2YgYWN0aW9uIGFyZ3VtZW50czoKCuKAmEZJ TEXigJkK4oCYLS1maWxlPUZJTEXigJkK4oCYLS1maW5kLWZpbGU9RklMReKAmQrigJgtLXZpc2l0 PUZJTEXigJkKICAgICBWaXNpdCB0aGUgc3BlY2lmaWVkIEZJTEUuICAqTm90ZSBWaXNpdGluZzo6 LgoKICAgICBXaGVuIEVtYWNzIHN0YXJ0cyB1cCwgaXQgZGlzcGxheXMgdGhlIHN0YXJ0dXAgYnVm ZmVyIGluIG9uZSB3aW5kb3csCiAgICAgYW5kIHRoZSBidWZmZXIgdmlzaXRpbmcgRklMRSBpbiBh bm90aGVyIHdpbmRvdyAoKm5vdGUgV2luZG93czo6KS4KICAgICBJZiB5b3Ugc3VwcGx5IG1vcmUg dGhhbiBvbmUgZmlsZSBhcmd1bWVudCwgdGhlIGRpc3BsYXllZCBmaWxlIGlzCiAgICAgdGhlIGxh c3Qgb25lIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lOyB0aGUgb3RoZXIgZmlsZXMgYXJl CiAgICAgdmlzaXRlZCBidXQgdGhlaXIgYnVmZmVycyBhcmUgbm90IHNob3duLgoKICAgICBJZiB0 aGUgc3RhcnR1cCBidWZmZXIgaXMgZGlzYWJsZWQgKCpub3RlIEVudGVyaW5nIEVtYWNzOjopLCB0 aGVuCiAgICAgc3RhcnRpbmcgRW1hY3Mgd2l0aCBvbmUgZmlsZSBhcmd1bWVudCBkaXNwbGF5cyB0 aGUgYnVmZmVyIHZpc2l0aW5nCiAgICAgRklMRSBpbiBhIHNpbmdsZSB3aW5kb3cuICBXaXRoIHR3 byBmaWxlIGFyZ3VtZW50cywgRW1hY3MgZGlzcGxheXMKICAgICB0aGUgZmlsZXMgaW4gdHdvIGRp ZmZlcmVudCB3aW5kb3dzLiAgV2l0aCBtb3JlIHRoYW4gdHdvIGZpbGUKICAgICBhcmd1bWVudHMs IEVtYWNzIGRpc3BsYXlzIHRoZSBsYXN0IGZpbGUgc3BlY2lmaWVkIGluIG9uZSB3aW5kb3csCiAg ICAgcGx1cyBhbm90aGVyIHdpbmRvdyB3aXRoIGEgQnVmZmVyIE1lbnUgc2hvd2luZyBhbGwgdGhl IG90aGVyIGZpbGVzCiAgICAgKCpub3RlIFNldmVyYWwgQnVmZmVyczo6KS4gIFRvIGluaGliaXQg dXNpbmcgdGhlIEJ1ZmZlciBNZW51IGZvcgogICAgIHRoaXMsIGNoYW5nZSB0aGUgdmFyaWFibGUg 4oCYaW5oaWJpdC1zdGFydHVwLWJ1ZmZlci1tZW514oCZIHRvIOKAmHTigJkuCgrigJgrTElORU5V TSBGSUxF4oCZCiAgICAgVmlzaXQgdGhlIHNwZWNpZmllZCBGSUxFLCB0aGVuIGdvIHRvIGxpbmUg bnVtYmVyIExJTkVOVU0gaW4gaXQuCgrigJgrTElORU5VTTpDT0xVTU5OVU0gRklMReKAmQogICAg IFZpc2l0IHRoZSBzcGVjaWZpZWQgRklMRSwgdGhlbiBnbyB0byBsaW5lIG51bWJlciBMSU5FTlVN IGFuZCBwdXQKICAgICBwb2ludCBhdCBjb2x1bW4gbnVtYmVyIENPTFVNTk5VTS4KCuKAmC1sIEZJ TEXigJkK4oCYLS1sb2FkPUZJTEXigJkKICAgICBMb2FkIGEgTGlzcCBsaWJyYXJ5IG5hbWVkIEZJ TEUgd2l0aCB0aGUgZnVuY3Rpb24g4oCYbG9hZOKAmS4gIElmIEZJTEUKICAgICBpcyBub3QgYW4g YWJzb2x1dGUgZmlsZSBuYW1lLCBFbWFjcyBmaXJzdCBsb29rcyBmb3IgaXQgaW4gdGhlCiAgICAg Y3VycmVudCBkaXJlY3RvcnksIHRoZW4gaW4gdGhlIGRpcmVjdG9yaWVzIGxpc3RlZCBpbiDigJhs b2FkLXBhdGjigJkKICAgICAoKm5vdGUgTGlzcCBMaWJyYXJpZXM6OikuCgogICAgICpXYXJuaW5n OiogSWYgcHJldmlvdXMgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBoYXZlIHZpc2l0ZWQgZmlsZXMs CiAgICAgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGlzIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGxhc3Qg ZmlsZSB2aXNpdGVkLgoK4oCYLUwgRElS4oCZCuKAmC0tZGlyZWN0b3J5PURJUuKAmQogICAgIFBy ZXBlbmQgZGlyZWN0b3J5IERJUiB0byB0aGUgdmFyaWFibGUg4oCYbG9hZC1wYXRo4oCZLiAgSWYg eW91IHNwZWNpZnkKICAgICBtdWx0aXBsZSDigJgtTOKAmSBvcHRpb25zLCBFbWFjcyBwcmVzZXJ2 ZXMgdGhlIHJlbGF0aXZlIG9yZGVyOyBpLmUuLAogICAgIHVzaW5nIOKAmC1MIC9mb28gLUwgL2Jh cuKAmSByZXN1bHRzIGluIGEg4oCYbG9hZC1wYXRo4oCZIG9mIHRoZSBmb3JtCiAgICAg4oCYKCIv Zm9vIiAiL2JhciIg4oCmKeKAmS4gIElmIERJUiBiZWdpbnMgd2l0aCDigJg64oCZLCBFbWFjcyBy ZW1vdmVzIHRoZSDigJg64oCZCiAgICAgYW5kIGFwcGVuZHMgKHJhdGhlciB0aGFuIHByZXBlbmRz KSB0aGUgcmVtYWluZGVyIHRvIOKAmGxvYWQtcGF0aOKAmS4KICAgICAoT24gTVMgV2luZG93cywg dXNlIOKAmDvigJkgaW5zdGVhZCBvZiDigJg64oCZOyBpLmUuLCB1c2UgdGhlIHZhbHVlIG9mCiAg ICAg4oCYcGF0aC1zZXBhcmF0b3LigJkuKQoK4oCYLWYgRlVOQ1RJT07igJkK4oCYLS1mdW5jYWxs PUZVTkNUSU9O4oCZCiAgICAgQ2FsbCBMaXNwIGZ1bmN0aW9uIEZVTkNUSU9OLiAgSWYgaXQgaXMg YW4gaW50ZXJhY3RpdmUgZnVuY3Rpb24gKGEKICAgICBjb21tYW5kKSwgaXQgcmVhZHMgdGhlIGFy Z3VtZW50cyBpbnRlcmFjdGl2ZWx5IGp1c3QgYXMgaWYgeW91IGhhZAogICAgIGNhbGxlZCB0aGUg c2FtZSBmdW5jdGlvbiB3aXRoIGEga2V5IHNlcXVlbmNlLiAgT3RoZXJ3aXNlLCBpdCBjYWxscwog ICAgIHRoZSBmdW5jdGlvbiB3aXRoIG5vIGFyZ3VtZW50cy4KCuKAmC0tZXZhbD1FWFBSRVNTSU9O 4oCZCuKAmC0tZXhlY3V0ZT1FWFBSRVNTSU9O4oCZCiAgICAgRXZhbHVhdGUgTGlzcCBleHByZXNz aW9uIEVYUFJFU1NJT04uCgrigJgtLWluc2VydD1GSUxF4oCZCiAgICAgSW5zZXJ0IHRoZSBjb250 ZW50cyBvZiBGSUxFIGludG8gdGhlIGJ1ZmZlciB0aGF0IGlzIGN1cnJlbnQgd2hlbgogICAgIHRo aXMgY29tbWFuZC1saW5lIGFyZ3VtZW50IGlzIHByb2Nlc3NlZC4gIFVzdWFsbHksIHRoaXMgaXMg dGhlCiAgICAg4oCYKnNjcmF0Y2gq4oCZIGJ1ZmZlciAoKm5vdGUgTGlzcCBJbnRlcmFjdGlvbjo6 KSwgYnV0IGlmIGFyZ3VtZW50cwogICAgIGVhcmxpZXIgb24gdGhlIGNvbW1hbmQgbGluZSB2aXNp dCBmaWxlcyBvciBzd2l0Y2ggYnVmZmVycywgdGhhdAogICAgIG1pZ2h0IGJlIGEgZGlmZmVyZW50 IGJ1ZmZlci4gIFRoZSBlZmZlY3Qgb2YgdGhpcyBjb21tYW5kLWxpbmUKICAgICBhcmd1bWVudCBp cyBsaWtlIHdoYXQg4oCYTS14IGluc2VydC1maWxl4oCZIGRvZXMgKCpub3RlIE1pc2MgRmlsZQog ICAgIE9wczo6KS4KCuKAmC0ta2lsbOKAmQogICAgIEV4aXQgZnJvbSBFbWFjcyB3aXRob3V0IGFz a2luZyBmb3IgY29uZmlybWF0aW9uLgoK4oCYLS1oZWxw4oCZCiAgICAgUHJpbnQgYSB1c2FnZSBt ZXNzYWdlIGxpc3RpbmcgYWxsIGF2YWlsYWJsZSBvcHRpb25zLCB0aGVuIGV4aXQKICAgICBzdWNj ZXNzZnVsbHkuCgrigJgtLXZlcnNpb27igJkKICAgICBQcmludCBFbWFjcyB2ZXJzaW9uLCB0aGVu IGV4aXQgc3VjY2Vzc2Z1bGx5LgoKCioqKiBDLjIgSW5pdGlhbCBPcHRpb25zCgpUaGUgaW5pdGlh bCBvcHRpb25zIHNwZWNpZnkgcGFyYW1ldGVycyBmb3IgdGhlIEVtYWNzIHNlc3Npb24uICBUaGlz CnNlY3Rpb24gZGVzY3JpYmVzIHRoZSBtb3JlIGdlbmVyYWwgaW5pdGlhbCBvcHRpb25zOyBzb21l IG90aGVyIG9wdGlvbnMKc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gdGhlIFggV2luZG93IFN5c3Rl bSBhcHBlYXIgaW4gdGhlIGZvbGxvd2luZwpzZWN0aW9ucy4KCiAgIFNvbWUgaW5pdGlhbCBvcHRp b25zIGFmZmVjdCB0aGUgbG9hZGluZyBvZiB0aGUgaW5pdGlhbGl6YXRpb24gZmlsZS4KTm9ybWFs bHksIEVtYWNzIGZpcnN0IGxvYWRzIOKAmHNpdGUtc3RhcnQuZWzigJkgaWYgaXQgZXhpc3RzLCB0 aGVuIHlvdXIgb3duCmluaXRpYWxpemF0aW9uIGZpbGUgaWYgaXQgZXhpc3RzLCBhbmQgZmluYWxs eSB0aGUgZGVmYXVsdCBpbml0aWFsaXphdGlvbgpmaWxlIOKAmGRlZmF1bHQuZWzigJkgaWYgaXQg ZXhpc3RzICgqbm90ZSBJbml0IEZpbGU6OikuICBDZXJ0YWluIG9wdGlvbnMKcHJldmVudCBsb2Fk aW5nIG9mIHNvbWUgb2YgdGhlc2UgZmlsZXMgb3Igc3Vic3RpdHV0ZSBvdGhlciBmaWxlcyBmb3IK dGhlbS4KCuKAmC1jaGRpciBESVJFQ1RPUlnigJkK4oCYLS1jaGRpcj1ESVJFQ1RPUlnigJkKICAg ICBDaGFuZ2UgdG8gRElSRUNUT1JZIGJlZm9yZSBkb2luZyBhbnl0aGluZyBlbHNlLiAgVGhpcyBp cyBtYWlubHkKICAgICB1c2VkIGJ5IHNlc3Npb24gbWFuYWdlbWVudCBpbiBYIHNvIHRoYXQgRW1h Y3Mgc3RhcnRzIGluIHRoZSBzYW1lCiAgICAgZGlyZWN0b3J5IGFzIGl0IHN0b3BwZWQuICBUaGlz IG1ha2VzIGRlc2t0b3Agc2F2aW5nIGFuZCByZXN0b3JpbmcKICAgICBlYXNpZXIuCgrigJgtdCBE RVZJQ0XigJkK4oCYLS10ZXJtaW5hbD1ERVZJQ0XigJkKICAgICBVc2UgREVWSUNFIGFzIHRoZSBk ZXZpY2UgZm9yIHRlcm1pbmFsIGlucHV0IGFuZCBvdXRwdXQuICBUaGlzCiAgICAgb3B0aW9uIGlt cGxpZXMg4oCYLS1uby13aW5kb3ctc3lzdGVt4oCZLgoK4oCYLWQgRElTUExBWeKAmQrigJgtLWRp c3BsYXk9RElTUExBWeKAmQogICAgIFVzZSB0aGUgWCBXaW5kb3cgU3lzdGVtIGFuZCB1c2UgdGhl IGRpc3BsYXkgbmFtZWQgRElTUExBWSB0byBvcGVuCiAgICAgdGhlIGluaXRpYWwgRW1hY3MgZnJh bWUuICAqTm90ZSBEaXNwbGF5IFg6OiwgZm9yIG1vcmUgZGV0YWlscy4KCuKAmC1ud+KAmQrigJgt LW5vLXdpbmRvdy1zeXN0ZW3igJkKICAgICBEb27igJl0IGNvbW11bmljYXRlIGRpcmVjdGx5IHdp dGggdGhlIHdpbmRvdyBzeXN0ZW0sIGRpc3JlZ2FyZGluZyB0aGUKICAgICDigJhESVNQTEFZ4oCZ IGVudmlyb25tZW50IHZhcmlhYmxlIGV2ZW4gaWYgaXQgaXMgc2V0LiAgVGhpcyBtZWFucyB0aGF0 CiAgICAgRW1hY3MgdXNlcyB0aGUgdGVybWluYWwgZnJvbSB3aGljaCBpdCB3YXMgbGF1bmNoZWQg Zm9yIGFsbCBpdHMKICAgICBkaXNwbGF5IGFuZCBpbnB1dC4KCuKAmC1iYXRjaOKAmQrigJgtLWJh dGNo4oCZCiAgICAgUnVuIEVtYWNzIGluICJiYXRjaCBtb2RlIi4gIEJhdGNoIG1vZGUgaXMgdXNl ZCBmb3IgcnVubmluZyBwcm9ncmFtcwogICAgIHdyaXR0ZW4gaW4gRW1hY3MgTGlzcCBmcm9tIHNo ZWxsIHNjcmlwdHMsIG1ha2VmaWxlcywgYW5kIHNvIG9uLiAgVG8KICAgICBpbnZva2UgYSBMaXNw IHByb2dyYW0sIHVzZSB0aGUg4oCYLWJhdGNo4oCZIG9wdGlvbiBpbiBjb25qdW5jdGlvbiB3aXRo CiAgICAgb25lIG9yIG1vcmUgb2Yg4oCYLWzigJksIOKAmC1m4oCZIG9yIOKAmC0tZXZhbOKAmSAo Km5vdGUgQWN0aW9uIEFyZ3VtZW50czo6KS4KICAgICAqTm90ZSBDb21tYW5kIEV4YW1wbGU6Oiwg Zm9yIGFuIGV4YW1wbGUuCgogICAgIEluIGJhdGNoIG1vZGUsIEVtYWNzIGRvZXMgbm90IGRpc3Bs YXkgdGhlIHRleHQgYmVpbmcgZWRpdGVkLCBhbmQKICAgICB0aGUgc3RhbmRhcmQgdGVybWluYWwg aW50ZXJydXB0IGNoYXJhY3RlcnMgc3VjaCBhcyDigJhDLXrigJkgYW5kIOKAmEMtY+KAmQogICAg IGhhdmUgdGhlaXIgdXN1YWwgZWZmZWN0LiAgRW1hY3MgZnVuY3Rpb25zIHRoYXQgbm9ybWFsbHkg cHJpbnQgYQogICAgIG1lc3NhZ2UgaW4gdGhlIGVjaG8gYXJlYSB3aWxsIHByaW50IHRvIGVpdGhl ciB0aGUgc3RhbmRhcmQgb3V0cHV0CiAgICAgc3RyZWFtICjigJhzdGRvdXTigJkpIG9yIHRoZSBz dGFuZGFyZCBlcnJvciBzdHJlYW0gKOKAmHN0ZGVycuKAmSkgaW5zdGVhZC4KICAgICAoVG8gYmUg cHJlY2lzZSwgZnVuY3Rpb25zIGxpa2Ug4oCYcHJpbjHigJksIOKAmHByaW5j4oCZIGFuZCDigJhw cmludOKAmSBwcmludAogICAgIHRvIOKAmHN0ZG91dOKAmSwgd2hpbGUg4oCYbWVzc2FnZeKAmSBh bmQg4oCYZXJyb3LigJkgcHJpbnQgdG8g4oCYc3RkZXJy4oCZLikKICAgICBGdW5jdGlvbnMgdGhh dCBub3JtYWxseSByZWFkIGtleWJvYXJkIGlucHV0IGZyb20gdGhlIG1pbmlidWZmZXIKICAgICB0 YWtlIHRoZWlyIGlucHV0IGZyb20gdGhlIHRlcm1pbmFs4oCZcyBzdGFuZGFyZCBpbnB1dCBzdHJl YW0KICAgICAo4oCYc3RkaW7igJkpIGluc3RlYWQuCgogICAgIOKAmC0tYmF0Y2jigJkgaW1wbGll cyDigJgtceKAmSAoZG8gbm90IGxvYWQgYW4gaW5pdGlhbGl6YXRpb24gZmlsZSksIGJ1dAogICAg IOKAmHNpdGUtc3RhcnQuZWzigJkgaXMgbG9hZGVkIG5vbmV0aGVsZXNzLiAgSXQgYWxzbyBjYXVz ZXMgRW1hY3MgdG8KICAgICBleGl0IGFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBjb21tYW5kIG9w dGlvbnMuICBJbiBhZGRpdGlvbiwgaXQKICAgICBkaXNhYmxlcyBhdXRvLXNhdmluZyBleGNlcHQg aW4gYnVmZmVycyBmb3Igd2hpY2ggYXV0by1zYXZpbmcgaXMKICAgICBleHBsaWNpdGx5IHJlcXVl c3RlZCwgYW5kIHdoZW4gc2F2aW5nIGZpbGVzIGl0IG9taXRzIHRoZSDigJhmc3luY+KAmQogICAg IHN5c3RlbSBjYWxsIHVubGVzcyBvdGhlcndpc2UgcmVxdWVzdGVkLgoK4oCYLS1zY3JpcHQgRklM ReKAmQogICAgIFJ1biBFbWFjcyBpbiBiYXRjaCBtb2RlLCBsaWtlIOKAmC0tYmF0Y2jigJksIGFu ZCB0aGVuIHJlYWQgYW5kIGV4ZWN1dGUKICAgICB0aGUgTGlzcCBjb2RlIGluIEZJTEUuCgogICAg IFRoZSBub3JtYWwgdXNlIG9mIHRoaXMgb3B0aW9uIGlzIGluIGV4ZWN1dGFibGUgc2NyaXB0IGZp bGVzIHRoYXQKICAgICBydW4gRW1hY3MuICBUaGV5IGNhbiBzdGFydCB3aXRoIHRoaXMgdGV4dCBv biB0aGUgZmlyc3QgbGluZQoKICAgICAgICAgICMhL3Vzci9iaW4vZW1hY3MgLS1zY3JpcHQKCiAg ICAgd2hpY2ggd2lsbCBpbnZva2UgRW1hY3Mgd2l0aCDigJgtLXNjcmlwdOKAmSBhbmQgc3VwcGx5 IHRoZSBuYW1lIG9mIHRoZQogICAgIHNjcmlwdCBmaWxlIGFzIEZJTEUuICBFbWFjcyBMaXNwIHRo ZW4gdHJlYXRzIHRoZSDigJgjIeKAmSBvbiB0aGlzIGZpcnN0CiAgICAgbGluZSBhcyBhIGNvbW1l bnQgZGVsaW1pdGVyLgoK4oCYLS1uby1idWlsZC1kZXRhaWxz4oCZCiAgICAgT21pdCBkZXRhaWxz IGxpa2Ugc3lzdGVtIG5hbWUgYW5kIGJ1aWxkIHRpbWUgZnJvbSB0aGUgRW1hY3MKICAgICBleGVj dXRhYmxlLCBzbyB0aGF0IGJ1aWxkcyBhcmUgbW9yZSBkZXRlcm1pbmlzdGljLgoK4oCYLXHigJkK 4oCYLS1uby1pbml0LWZpbGXigJkKICAgICBEbyBub3QgbG9hZCBhbnkgaW5pdGlhbGl6YXRpb24g ZmlsZSAoKm5vdGUgSW5pdCBGaWxlOjopLiAgV2hlbgogICAgIEVtYWNzIGlzIGludm9rZWQgd2l0 aCB0aGlzIG9wdGlvbiwgdGhlIEN1c3RvbWl6ZSBmYWNpbGl0eSBkb2VzIG5vdAogICAgIGFsbG93 IG9wdGlvbnMgdG8gYmUgc2F2ZWQgKCpub3RlIEVhc3kgQ3VzdG9taXphdGlvbjo6KS4gIFRoaXMK ICAgICBvcHRpb24gZG9lcyBub3QgZGlzYWJsZSBsb2FkaW5nIOKAmHNpdGUtc3RhcnQuZWzigJku CgrigJgtLW5vLXNpdGUtZmlsZeKAmQogICAgIERvIG5vdCBsb2FkIOKAmHNpdGUtc3RhcnQuZWzi gJkgKCpub3RlIEluaXQgRmlsZTo6KS4gIFRoZSDigJgtUeKAmSBvcHRpb24KICAgICBkb2VzIHRo aXMgdG9vLCBidXQgb3RoZXIgb3B0aW9ucyBsaWtlIOKAmC1x4oCZIGRvIG5vdC4KCuKAmC0tbm8t c2l0ZS1saXNw4oCZCiAgICAgRG8gbm90IGluY2x1ZGUgdGhlIOKAmHNpdGUtbGlzcOKAmSBkaXJl Y3RvcmllcyBpbiDigJhsb2FkLXBhdGjigJkgKCpub3RlCiAgICAgSW5pdCBGaWxlOjopLiAgVGhl IOKAmC1R4oCZIG9wdGlvbiBkb2VzIHRoaXMgdG9vLgoK4oCYLS1uby1zcGxhc2jigJkKICAgICBE byBub3QgZGlzcGxheSBhIHN0YXJ0dXAgc2NyZWVuLiAgWW91IGNhbiBhbHNvIGFjaGlldmUgdGhp cyBlZmZlY3QKICAgICBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZSDigJhpbmhpYml0LXN0YXJ0dXAt c2NyZWVu4oCZIHRvIG5vbi3igJhuaWzigJkgaW4KICAgICB5b3VyIGluaXRpYWxpemF0aW9uIGZp bGUgKCpub3RlIEVudGVyaW5nIEVtYWNzOjopLgoK4oCYLVHigJkK4oCYLS1xdWlja+KAmQogICAg IFN0YXJ0IEVtYWNzIHdpdGggbWluaW11bSBjdXN0b21pemF0aW9ucy4gIFRoaXMgaXMgc2ltaWxh ciB0byB1c2luZwogICAgIOKAmC1x4oCZLCDigJgtLW5vLXNpdGUtZmlsZeKAmSwg4oCYLS1uby1z aXRlLWxpc3DigJksIGFuZCDigJgtLW5vLXNwbGFzaOKAmQogICAgIHRvZ2V0aGVyLiAgVGhpcyBh bHNvIHN0b3BzIEVtYWNzIGZyb20gcHJvY2Vzc2luZyBYIHJlc291cmNlcyBieQogICAgIHNldHRp bmcg4oCYaW5oaWJpdC14LXJlc291cmNlc+KAmSB0byDigJh04oCZICgqbm90ZSBSZXNvdXJjZXM6 OikuCgrigJgtZGFlbW9u4oCZCuKAmC0tZGFlbW9uWz1OQU1FXeKAmQrigJgtLWJnLWRhZW1vbls9 TkFNRV3igJkK4oCYLS1mZy1kYWVtb25bPU5BTUVd4oCZCiAgICAgU3RhcnQgRW1hY3MgYXMgYSBk YWVtb246IGFmdGVyIEVtYWNzIHN0YXJ0cyB1cCwgaXQgc3RhcnRzIHRoZSBFbWFjcwogICAgIHNl cnZlciB3aXRob3V0IG9wZW5pbmcgYW55IGZyYW1lcy4gIChPcHRpb25hbGx5LCB5b3UgY2FuIHNw ZWNpZnkgYW4KICAgICBleHBsaWNpdCBOQU1FIGZvciB0aGUgc2VydmVyLikgIFlvdSBjYW4gdGhl biB1c2UgdGhlIOKAmGVtYWNzY2xpZW504oCZCiAgICAgY29tbWFuZCB0byBjb25uZWN0IHRvIEVt YWNzIGZvciBlZGl0aW5nLiAgKk5vdGUgRW1hY3MgU2VydmVyOjosIGZvcgogICAgIGluZm9ybWF0 aW9uIGFib3V0IHVzaW5nIEVtYWNzIGFzIGEgZGFlbW9uLiAgQSDigJxiYWNrZ3JvdW5k4oCdIGRh ZW1vbgogICAgIGRpc2Nvbm5lY3RzIGZyb20gdGhlIHRlcm1pbmFsIGFuZCBydW5zIGluIHRoZSBi YWNrZ3JvdW5kCiAgICAgKOKAmC0tZGFlbW9u4oCZIGlzIGFuIGFsaWFzIGZvciDigJgtLWJnLWRh ZW1vbuKAmSkuCgrigJgtLW5vLWRlc2t0b3DigJkKICAgICBEbyBub3QgcmVsb2FkIGFueSBzYXZl ZCBkZXNrdG9wLiAgKk5vdGUgU2F2aW5nIEVtYWNzIFNlc3Npb25zOjouCgrigJgtdSBVU0VS4oCZ CuKAmC0tdXNlcj1VU0VS4oCZCiAgICAgTG9hZCBVU0VS4oCZcyBpbml0aWFsaXphdGlvbiBmaWxl IGluc3RlYWQgb2YgeW91ciBvd24oMSkuCgrigJgtLWRlYnVnLWluaXTigJkKICAgICBFbmFibGUg dGhlIEVtYWNzIExpc3AgZGVidWdnZXIgZm9yIGVycm9ycyBpbiB0aGUgaW5pdCBmaWxlLiAgKk5v dGUKICAgICBFbnRlcmluZyB0aGUgRGVidWdnZXIgb24gYW4gRXJyb3I6IChlbGlzcClFcnJvciBE ZWJ1Z2dpbmcuCgrigJgtLW1vZHVsZS1hc3NlcnRpb25z4oCZCiAgICAgRW5hYmxlIGV4cGVuc2l2 ZSBjb3JyZWN0bmVzcyBjaGVja3Mgd2hlbiBkZWFsaW5nIHdpdGggZHluYW1pY2FsbHkKICAgICBs b2FkYWJsZSBtb2R1bGVzLiAgVGhpcyBpcyBpbnRlbmRlZCBmb3IgbW9kdWxlIGF1dGhvcnMgdGhh dCB3aXNoIHRvCiAgICAgdmVyaWZ5IHRoYXQgdGhlaXIgbW9kdWxlIGNvbmZvcm1zIHRvIHRoZSBt b2R1bGUgQVBJIHJlcXVpcmVtZW50cy4KICAgICBUaGUgb3B0aW9uIG1ha2VzIEVtYWNzIGFib3J0 IGlmIGEgbW9kdWxlLXJlbGF0ZWQgYXNzZXJ0aW9uCiAgICAgdHJpZ2dlcnMuCgogICAtLS0tLS0t LS0tIEZvb3Rub3RlcyAtLS0tLS0tLS0tCgogICAoMSkgVGhpcyBvcHRpb24gaGFzIG5vIGVmZmVj dCBvbiBNUy1XaW5kb3dzLgoKCioqKiBDLjMgQ29tbWFuZCBBcmd1bWVudCBFeGFtcGxlCgpIZXJl IGlzIGFuIGV4YW1wbGUgb2YgdXNpbmcgRW1hY3Mgd2l0aCBhcmd1bWVudHMgYW5kIG9wdGlvbnMu ICBJdAphc3N1bWVzIHlvdSBoYXZlIGEgTGlzcCBwcm9ncmFtIGZpbGUgY2FsbGVkIOKAmGhhY2st Yy5lbOKAmSB3aGljaCwgd2hlbgpsb2FkZWQsIHBlcmZvcm1zIHNvbWUgdXNlZnVsIG9wZXJhdGlv biBvbiB0aGUgY3VycmVudCBidWZmZXIsIGV4cGVjdGVkCnRvIGJlIGEgQyBwcm9ncmFtLgoKICAg ICBlbWFjcyAtLWJhdGNoIGZvby5jIC1sIGhhY2stYyAtZiBzYXZlLWJ1ZmZlciA+JiBsb2cKClRo aXMgc2F5cyB0byB2aXNpdCDigJhmb28uY+KAmSwgbG9hZCDigJhoYWNrLWMuZWzigJkgKHdoaWNo IG1ha2VzIGNoYW5nZXMgaW4gdGhlCnZpc2l0ZWQgZmlsZSksIHNhdmUg4oCYZm9vLmPigJkgKG5v dGUgdGhhdCDigJhzYXZlLWJ1ZmZlcuKAmSBpcyB0aGUgZnVuY3Rpb24KdGhhdCDigJhDLXggQy1z 4oCZIGlzIGJvdW5kIHRvKSwgYW5kIHRoZW4gZXhpdCBiYWNrIHRvIHRoZSBzaGVsbCAoYmVjYXVz ZSBvZgrigJgtLWJhdGNo4oCZKS4gIOKAmC0tYmF0Y2jigJkgYWxzbyBndWFyYW50ZWVzIHRoZXJl IHdpbGwgYmUgbm8gcHJvYmxlbQpyZWRpcmVjdGluZyBvdXRwdXQgdG8g4oCYbG9n4oCZLCBiZWNh dXNlIEVtYWNzIHdpbGwgbm90IGFzc3VtZSB0aGF0IGl0IGhhcyBhCmRpc3BsYXkgdGVybWluYWwg dG8gd29yayB3aXRoLgoKCioqKiBDLjQgRW52aXJvbm1lbnQgVmFyaWFibGVzCgpUaGUgImVudmly b25tZW50IiBpcyBhIGZlYXR1cmUgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW07IGl0IGNvbnNpc3Rz IG9mIGEKY29sbGVjdGlvbiBvZiB2YXJpYWJsZXMgd2l0aCBuYW1lcyBhbmQgdmFsdWVzLiAgRWFj aCB2YXJpYWJsZSBpcyBjYWxsZWQKYW4gImVudmlyb25tZW50IHZhcmlhYmxlIjsgZW52aXJvbm1l bnQgdmFyaWFibGUgbmFtZXMgYXJlCmNhc2Utc2Vuc2l0aXZlLCBhbmQgaXQgaXMgY29udmVudGlv bmFsIHRvIHVzZSB1cHBlciBjYXNlIGxldHRlcnMgb25seS4KVGhlIHZhbHVlcyBhcmUgYWxsIHRl eHQgc3RyaW5ncy4KCiAgIFdoYXQgbWFrZXMgdGhlIGVudmlyb25tZW50IHVzZWZ1bCBpcyB0aGF0 IHN1YnByb2Nlc3NlcyBpbmhlcml0IHRoZQplbnZpcm9ubWVudCBhdXRvbWF0aWNhbGx5IGZyb20g dGhlaXIgcGFyZW50IHByb2Nlc3MuICBUaGlzIG1lYW5zIHlvdSBjYW4Kc2V0IHVwIGFuIGVudmly b25tZW50IHZhcmlhYmxlIGluIHlvdXIgbG9naW4gc2hlbGwsIGFuZCBhbGwgdGhlIHByb2dyYW1z CnlvdSBydW4gKGluY2x1ZGluZyBFbWFjcykgd2lsbCBhdXRvbWF0aWNhbGx5IHNlZSBpdC4gIFN1 YnByb2Nlc3NlcyBvZgpFbWFjcyAoc3VjaCBhcyBzaGVsbHMsIGNvbXBpbGVycywgYW5kIHZlcnNp b24gY29udHJvbCBwcm9ncmFtcykgaW5oZXJpdAp0aGUgZW52aXJvbm1lbnQgZnJvbSBFbWFjcywg dG9vLgoKICAgSW5zaWRlIEVtYWNzLCB0aGUgY29tbWFuZCDigJhNLXggZ2V0ZW524oCZIHJlYWRz IHRoZSBuYW1lIG9mIGFuCmVudmlyb25tZW50IHZhcmlhYmxlLCBhbmQgcHJpbnRzIGl0cyB2YWx1 ZSBpbiB0aGUgZWNobyBhcmVhLiAg4oCYTS14CnNldGVuduKAmSBzZXRzIGEgdmFyaWFibGUgaW4g dGhlIEVtYWNzIGVudmlyb25tZW50LCBhbmQg4oCYQy11IE0teCBzZXRlbnbigJkKcmVtb3ZlcyBh IHZhcmlhYmxlLiAgKEVudmlyb25tZW50IHZhcmlhYmxlIHN1YnN0aXR1dGlvbnMgd2l0aCDigJgk 4oCZIHdvcmsKaW4gdGhlIHZhbHVlIGp1c3QgYXMgaW4gZmlsZSBuYW1lczsgc2VlICpub3RlIEZp bGUgTmFtZXMgd2l0aCAkOjouKSAgVGhlCnZhcmlhYmxlIOKAmGluaXRpYWwtZW52aXJvbm1lbnTi gJkgc3RvcmVzIHRoZSBpbml0aWFsIGVudmlyb25tZW50IGluaGVyaXRlZApieSBFbWFjcy4KCiAg IFRoZSB3YXkgdG8gc2V0IGVudmlyb25tZW50IHZhcmlhYmxlcyBvdXRzaWRlIG9mIEVtYWNzIGRl cGVuZHMgb24gdGhlCm9wZXJhdGluZyBzeXN0ZW0sIGFuZCBlc3BlY2lhbGx5IHRoZSBzaGVsbCB0 aGF0IHlvdSBhcmUgdXNpbmcuICBGb3IKZXhhbXBsZSwgaGVyZeKAmXMgaG93IHRvIHNldCB0aGUg ZW52aXJvbm1lbnQgdmFyaWFibGUg4oCYT1JHQU5JWkFUSU9O4oCZIHRvCuKAmG5vdCB2ZXJ5IG11 Y2jigJkgdXNpbmcgQmFzaDoKCiAgICAgZXhwb3J0IE9SR0FOSVpBVElPTj0ibm90IHZlcnkgbXVj aCIKCmFuZCBoZXJl4oCZcyBob3cgdG8gZG8gaXQgaW4gY3NoIG9yIHRjc2g6CgogICAgIHNldGVu diBPUkdBTklaQVRJT04gIm5vdCB2ZXJ5IG11Y2giCgogICBXaGVuIEVtYWNzIGlzIHVzaW5nIHRo ZSBYIFdpbmRvdyBTeXN0ZW0sIHZhcmlvdXMgZW52aXJvbm1lbnQKdmFyaWFibGVzIHRoYXQgY29u dHJvbCBYIHdvcmsgZm9yIEVtYWNzIGFzIHdlbGwuICBTZWUgdGhlIFgKZG9jdW1lbnRhdGlvbiBm b3IgbW9yZSBpbmZvcm1hdGlvbi4KCisgTWVudToKCiAgLSBHZW5lcmFsIFZhcmlhYmxlczo6ICAg RW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYWxsIHZlcnNpb25zIG9mIEVtYWNzIHVzZS4KICAt IE1pc2MgVmFyaWFibGVzOjogICAgICBDZXJ0YWluIHN5c3RlbS1zcGVjaWZpYyB2YXJpYWJsZXMu CiAgLSBNUy1XaW5kb3dzIFJlZ2lzdHJ5OjogQW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGVudmlyb25t ZW50IG9uIE1TLVdpbmRvd3MuCgoKKioqKiBDLjQuMSBHZW5lcmFsIFZhcmlhYmxlcwoKSGVyZSBp cyBhbiBhbHBoYWJldGljYWwgbGlzdCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBoYXZl IHNwZWNpYWwKbWVhbmluZ3MgaW4gRW1hY3MuICBNb3N0IG9mIHRoZXNlIHZhcmlhYmxlcyBhcmUg YWxzbyB1c2VkIGJ5IHNvbWUgb3RoZXIKcHJvZ3JhbXMuICBFbWFjcyBkb2VzIG5vdCByZXF1aXJl IGFueSBvZiB0aGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8KYmUgc2V0LCBidXQgaXQgdXNl cyB0aGVpciB2YWx1ZXMgaWYgdGhleSBhcmUgc2V0LgoK4oCYQ0RQQVRI4oCZCiAgICAgVXNlZCBi eSB0aGUg4oCYY2TigJkgY29tbWFuZCB0byBzZWFyY2ggZm9yIHRoZSBkaXJlY3RvcnkgeW91IHNw ZWNpZnksCiAgICAgd2hlbiB5b3Ugc3BlY2lmeSBhIHJlbGF0aXZlIGRpcmVjdG9yeSwK4oCYREJV U19TRVNTSU9OX0JVU19BRERSRVNT4oCZCiAgICAgVXNlZCBieSBELUJ1cyB3aGVuIEVtYWNzIGlz IGNvbXBpbGVkIHdpdGggaXQuICBVc3VhbGx5LCB0aGVyZSBpcyBubwogICAgIG5lZWQgdG8gY2hh bmdlIGl0LiAgU2V0dGluZyBpdCB0byBhIGR1bW15IGFkZHJlc3MsIGxpa2UKICAgICDigJh1bml4 OnBhdGg9L2Rldi9udWxs4oCZLCBzdXBwcmVzc2VzIGNvbm5lY3Rpb25zIHRvIHRoZSBELUJ1cyBz ZXNzaW9uCiAgICAgYnVzIGFzIHdlbGwgYXMgYXV0b2xhdW5jaGluZyB0aGUgRC1CdXMgc2Vzc2lv biBidXMgaWYgbm90IHJ1bm5pbmcKICAgICB5ZXQuCuKAmEVNQUNTREFUQeKAmQogICAgIERpcmVj dG9yeSBmb3IgdGhlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyB0aGF0IGNvbWUgd2l0 aAogICAgIEVtYWNzLiAgVGhpcyBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHZhcmlhYmxlIOKA mGRhdGEtZGlyZWN0b3J54oCZLgrigJhFTUFDU0RPQ+KAmQogICAgIERpcmVjdG9yeSBmb3IgdGhl IGRvY3VtZW50YXRpb24gc3RyaW5nIGZpbGUsIHdoaWNoIGlzIHVzZWQgdG8KICAgICBpbml0aWFs aXplIHRoZSBMaXNwIHZhcmlhYmxlIOKAmGRvYy1kaXJlY3RvcnnigJkuCuKAmEVNQUNTTE9BRFBB VEjigJkKICAgICBBIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIGRpcmVjdG9yaWVzKDEpIHRvIHNl YXJjaCBmb3IgRW1hY3MgTGlzcAogICAgIGZpbGVzLiAgSWYgc2V0LCBpdCBtb2RpZmllcyB0aGUg dXN1YWwgaW5pdGlhbCB2YWx1ZSBvZiB0aGUKICAgICDigJhsb2FkLXBhdGjigJkgdmFyaWFibGUg KCpub3RlIExpc3AgTGlicmFyaWVzOjopLiAgQW4gZW1wdHkgZWxlbWVudAogICAgIHN0YW5kcyBm b3IgdGhlIGRlZmF1bHQgdmFsdWUgb2Yg4oCYbG9hZC1wYXRo4oCZOyBlLmcuLCB1c2luZwogICAg IOKAmEVNQUNTTE9BRFBBVEg9Ii90bXA6IuKAmSBhZGRzIOKAmC90bXDigJkgdG8gdGhlIGZyb250 IG9mIHRoZSBkZWZhdWx0CiAgICAg4oCYbG9hZC1wYXRo4oCZLiAgVG8gc3BlY2lmeSBhbiBlbXB0 eSBlbGVtZW50IGluIHRoZSBtaWRkbGUgb2YgdGhlCiAgICAgbGlzdCwgdXNlIDIgY29sb25zIGlu IGEgcm93LCBhcyBpbiDigJhFTUFDU0xPQURQQVRIPSIvdG1wOjovZm9vIuKAmS4K4oCYRU1BQ1NQ QVRI4oCZCiAgICAgQSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBzZWFy Y2ggZm9yIGV4ZWN1dGFibGUKICAgICBmaWxlcy4gIElmIHNldCwgRW1hY3MgdXNlcyB0aGlzIGlu IGFkZGl0aW9uIHRvIOKAmFBBVEjigJkgKHNlZSBiZWxvdykKICAgICB3aGVuIGluaXRpYWxpemlu ZyB0aGUgdmFyaWFibGUg4oCYZXhlYy1wYXRo4oCZICgqbm90ZSBTaGVsbDo6KS4K4oCYRU1BSUzi gJkKICAgICBZb3VyIGVtYWlsIGFkZHJlc3M7IHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgTGlzcCB2 YXJpYWJsZQogICAgIOKAmHVzZXItbWFpbC1hZGRyZXNz4oCZLCB3aGljaCB0aGUgRW1hY3MgbWFp bCBpbnRlcmZhY2UgcHV0cyBpbnRvIHRoZQogICAgIOKAmEZyb23igJkgaGVhZGVyIG9mIG91dGdv aW5nIG1lc3NhZ2VzICgqbm90ZSBNYWlsIEhlYWRlcnM6OikuCuKAmEVTSEVMTOKAmQogICAgIFVz ZWQgZm9yIHNoZWxsLW1vZGUgdG8gb3ZlcnJpZGUgdGhlIOKAmFNIRUxM4oCZIGVudmlyb25tZW50 IHZhcmlhYmxlCiAgICAgKCpub3RlIEludGVyYWN0aXZlIFNoZWxsOjopLgrigJhISVNURklMReKA mQogICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRoYXQgc2hlbGwgY29tbWFuZHMgYXJlIHNhdmVk IGluIGJldHdlZW4KICAgICBsb2dpbnMuICBUaGlzIHZhcmlhYmxlIGRlZmF1bHRzIHRvIOKAmH4v LmJhc2hfaGlzdG9yeeKAmSBpZiB5b3UgdXNlCiAgICAgQmFzaCwgdG8g4oCYfi8uc2hfaGlzdG9y eeKAmSBpZiB5b3UgdXNlIGtzaCwgYW5kIHRvIOKAmH4vLmhpc3RvcnnigJkKICAgICBvdGhlcndp c2UuCuKAmEhPTUXigJkKICAgICBUaGUgbG9jYXRpb24gb2YgeW91ciBmaWxlcyBpbiB0aGUgZGly ZWN0b3J5IHRyZWU7IHVzZWQgZm9yCiAgICAgZXhwYW5zaW9uIG9mIGZpbGUgbmFtZXMgc3RhcnRp bmcgd2l0aCBhIHRpbGRlICjigJh+4oCZKS4gIE9uIE1TLURPUywgaXQKICAgICBkZWZhdWx0cyB0 byB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggRW1hY3Mgd2FzIHN0YXJ0ZWQsIHdpdGgg4oCYL2Jp buKAmQogICAgIHJlbW92ZWQgZnJvbSB0aGUgZW5kIGlmIGl0IHdhcyBwcmVzZW50LiAgT24gV2lu ZG93cywgdGhlIGRlZmF1bHQKICAgICB2YWx1ZSBvZiDigJhIT01F4oCZIGlzIHRoZSDigJhBcHBs aWNhdGlvbiBEYXRh4oCZIHN1YmRpcmVjdG9yeSBvZiB0aGUgdXNlcgogICAgIHByb2ZpbGUgZGly ZWN0b3J5IChub3JtYWxseSwgdGhpcyBpcyDigJhDOi9Eb2N1bWVudHMgYW5kCiAgICAgU2V0dGlu Z3MvVVNFUk5BTUUvQXBwbGljYXRpb24gRGF0YeKAmSwgd2hlcmUgVVNFUk5BTUUgaXMgeW91ciB1 c2VyCiAgICAgbmFtZSksIHRob3VnaCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg4oCYQzov 4oCZIHdpbGwgYmUgdXNlZAogICAgIGluc3RlYWQgaWYgYSDigJguZW1hY3PigJkgZmlsZSBpcyBm b3VuZCB0aGVyZS4K4oCYSE9TVE5BTUXigJkKICAgICBUaGUgbmFtZSBvZiB0aGUgbWFjaGluZSB0 aGF0IEVtYWNzIGlzIHJ1bm5pbmcgb24uCuKAmElORk9QQVRI4oCZCiAgICAgQSBjb2xvbi1zZXBh cmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyBpbiB3aGljaCB0byBzZWFyY2ggZm9yIEluZm8KICAg ICBmaWxlcy4K4oCYTENfQUxM4oCZCuKAmExDX0NPTExBVEXigJkK4oCYTENfQ1RZUEXigJkK4oCY TENfTUVTU0FHRVPigJkK4oCYTENfTU9ORVRBUlnigJkK4oCYTENfTlVNRVJJQ+KAmQrigJhMQ19U SU1F4oCZCuKAmExBTkfigJkKICAgICBUaGUgdXNlcuKAmXMgcHJlZmVycmVkIGxvY2FsZS4gIFRo ZSBsb2NhbGUgaGFzIHNpeCBjYXRlZ29yaWVzLAogICAgIHNwZWNpZmllZCBieSB0aGUgZW52aXJv bm1lbnQgdmFyaWFibGVzIOKAmExDX0NPTExBVEXigJkgZm9yIHNvcnRpbmcsCiAgICAg4oCYTENf Q1RZUEXigJkgZm9yIGNoYXJhY3RlciBlbmNvZGluZywg4oCYTENfTUVTU0FHRVPigJkgZm9yIHN5 c3RlbQogICAgIG1lc3NhZ2VzLCDigJhMQ19NT05FVEFSWeKAmSBmb3IgbW9uZXRhcnkgZm9ybWF0 cywg4oCYTENfTlVNRVJJQ+KAmSBmb3IKICAgICBudW1iZXJzLCBhbmQg4oCYTENfVElNReKAmSBm b3IgZGF0ZXMgYW5kIHRpbWVzLiAgSWYgb25lIG9mIHRoZXNlCiAgICAgdmFyaWFibGVzIGlzIG5v dCBzZXQsIHRoZSBjYXRlZ29yeSBkZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgdGhlCiAgICAg4oCY TEFOR+KAmSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgb3IgdG8gdGhlIGRlZmF1bHQg4oCYQ+KAmSBs b2NhbGUgaWYg4oCYTEFOR+KAmQogICAgIGlzIG5vdCBzZXQuICBCdXQgaWYg4oCYTENfQUxM4oCZ IGlzIHNwZWNpZmllZCwgaXQgb3ZlcnJpZGVzIHRoZQogICAgIHNldHRpbmdzIG9mIGFsbCB0aGUg b3RoZXIgbG9jYWxlIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCiAgICAgT24gTVMtV2luZG93cyBh bmQgbWFjT1MsIGlmIOKAmExBTkfigJkgaXMgbm90IGFscmVhZHkgc2V0IGluIHRoZQogICAgIGVu dmlyb25tZW50LCBFbWFjcyBzZXRzIGl0IGJhc2VkIG9uIHRoZSBzeXN0ZW0td2lkZSBkZWZhdWx0 LiAgWW91CiAgICAgY2FuIHNldCB0aGlzIGluIHRoZSDigJxSZWdpb25hbCBTZXR0aW5nc+KAnSBD b250cm9sIFBhbmVsIG9uIHNvbWUKICAgICB2ZXJzaW9ucyBvZiBNUy1XaW5kb3dzLCBhbmQgaW4g dGhlIOKAnExhbmd1YWdlIGFuZCBSZWdpb27igJ0gU3lzdGVtCiAgICAgUHJlZmVyZW5jZSBvbiBt YWNPUy4KCiAgICAgVGhlIHZhbHVlIG9mIHRoZSDigJhMQ19DVFlQReKAmSBjYXRlZ29yeSBpcyBt YXRjaGVkIGFnYWluc3QgZW50cmllcyBpbgogICAgIOKAmGxvY2FsZS1sYW5ndWFnZS1uYW1lc+KA mSwg4oCYbG9jYWxlLWNoYXJzZXQtbGFuZ3VhZ2UtbmFtZXPigJksIGFuZAogICAgIOKAmGxvY2Fs ZS1wcmVmZXJyZWQtY29kaW5nLXN5c3RlbXPigJksIHRvIHNlbGVjdCBhIGRlZmF1bHQgbGFuZ3Vh Z2UKICAgICBlbnZpcm9ubWVudCBhbmQgY29kaW5nIHN5c3RlbS4gICpOb3RlIExhbmd1YWdlIEVu dmlyb25tZW50czo6LgrigJhMT0dOQU1F4oCZCiAgICAgVGhlIHVzZXLigJlzIGxvZ2luIG5hbWUu ICBTZWUgYWxzbyDigJhVU0VS4oCZLgrigJhNQUlM4oCZCiAgICAgVGhlIG5hbWUgb2YgeW91ciBz eXN0ZW0gbWFpbCBpbmJveC4K4oCYTUjigJkKICAgICBOYW1lIG9mIHNldHVwIGZpbGUgZm9yIHRo ZSBtaCBzeXN0ZW0uICAqTm90ZSBNSC1FOiAobWgtZSlUb3AuCuKAmE5BTUXigJkKICAgICBZb3Vy IHJlYWwtd29ybGQgbmFtZS4gIFRoaXMgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSB2YXJpYWJs ZQogICAgIOKAmHVzZXItZnVsbC1uYW1l4oCZICgqbm90ZSBNYWlsIEhlYWRlcnM6OikuCuKAmE5O VFBTRVJWRVLigJkKICAgICBUaGUgbmFtZSBvZiB0aGUgbmV3cyBzZXJ2ZXIuICBVc2VkIGJ5IHRo ZSBtaCBhbmQgR251cyBwYWNrYWdlcy4K4oCYT1JHQU5JWkFUSU9O4oCZCiAgICAgVGhlIG5hbWUg b2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCB5b3UgYmVsb25nLiAgVXNlZCBmb3Igc2V0dGlu ZwogICAgIHRoZSDigJhPcmdhbml6YXRpb2464oCZIGhlYWRlciBpbiB5b3VyIHBvc3RzIGZyb20g dGhlIEdudXMgcGFja2FnZS4K4oCYUEFUSOKAmQogICAgIEEgY29sb24tc2VwYXJhdGVkIGxpc3Qg b2YgZGlyZWN0b3JpZXMgY29udGFpbmluZyBleGVjdXRhYmxlIGZpbGVzLgogICAgIFRoaXMgaXMg dXNlZCB0byBpbml0aWFsaXplIHRoZSB2YXJpYWJsZSDigJhleGVjLXBhdGjigJkgKCpub3RlCiAg ICAgU2hlbGw6OikuCuKAmFBXROKAmQogICAgIElmIHNldCwgdGhpcyBzaG91bGQgYmUgdGhlIGRl ZmF1bHQgZGlyZWN0b3J5IHdoZW4gRW1hY3Mgd2FzCiAgICAgc3RhcnRlZC4K4oCYUkVQTFlUT+KA mQogICAgIElmIHNldCwgdGhpcyBzcGVjaWZpZXMgYW4gaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIHZh cmlhYmxlCiAgICAg4oCYbWFpbC1kZWZhdWx0LXJlcGx5LXRv4oCZICgqbm90ZSBNYWlsIEhlYWRl cnM6OikuCuKAmFNBVkVESVLigJkKICAgICBUaGUgbmFtZSBvZiBhIGRpcmVjdG9yeSBpbiB3aGlj aCBuZXdzIGFydGljbGVzIGFyZSBzYXZlZCBieQogICAgIGRlZmF1bHQuICBVc2VkIGJ5IHRoZSBH bnVzIHBhY2thZ2UuCuKAmFNIRUxM4oCZCiAgICAgVGhlIG5hbWUgb2YgYW4gaW50ZXJwcmV0ZXIg dXNlZCB0byBwYXJzZSBhbmQgZXhlY3V0ZSBwcm9ncmFtcyBydW4KICAgICBmcm9tIGluc2lkZSBF bWFjcy4K4oCYU01UUFNFUlZFUuKAmQogICAgIFRoZSBuYW1lIG9mIHRoZSBvdXRnb2luZyBtYWls IHNlcnZlci4gIFRoaXMgaXMgdXNlZCB0byBpbml0aWFsaXplCiAgICAgdGhlIHZhcmlhYmxlIOKA mHNtdHBtYWlsLXNtdHAtc2VydmVy4oCZICgqbm90ZSBNYWlsIFNlbmRpbmc6OikuCuKAmFRFUk3i gJkKICAgICBUaGUgdHlwZSBvZiB0aGUgdGVybWluYWwgdGhhdCBFbWFjcyBpcyB1c2luZy4gIFRo aXMgdmFyaWFibGUgbXVzdAogICAgIGJlIHNldCB1bmxlc3MgRW1hY3MgaXMgcnVuIGluIGJhdGNo IG1vZGUuICBPbiBNUy1ET1MsIGl0IGRlZmF1bHRzCiAgICAgdG8g4oCYaW50ZXJuYWzigJksIHdo aWNoIHNwZWNpZmllcyBhIGJ1aWx0LWluIHRlcm1pbmFsIGVtdWxhdGlvbiB0aGF0CiAgICAgaGFu ZGxlcyB0aGUgbWFjaGluZeKAmXMgb3duIGRpc3BsYXkuCuKAmFRFUk1DQVDigJkKICAgICBUaGUg bmFtZSBvZiB0aGUgdGVybWNhcCBsaWJyYXJ5IGZpbGUgZGVzY3JpYmluZyBob3cgdG8gcHJvZ3Jh bSB0aGUKICAgICB0ZXJtaW5hbCBzcGVjaWZpZWQgYnkg4oCYVEVSTeKAmS4gIFRoaXMgZGVmYXVs dHMgdG8g4oCYL2V0Yy90ZXJtY2Fw4oCZLgrigJhUTVBESVLigJkK4oCYVE1Q4oCZCuKAmFRFTVDi gJkKICAgICBUaGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIHVzZWQgdG8gaW5pdGlhbGl6 ZSB0aGUgdmFyaWFibGUKICAgICDigJh0ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnnigJksIHdoaWNo IHNwZWNpZmllcyBhIGRpcmVjdG9yeSBpbiB3aGljaCB0bwogICAgIHB1dCB0ZW1wb3JhcnkgZmls ZXMgKCpub3RlIEJhY2t1cDo6KS4gIEVtYWNzIHRyaWVzIHRvIHVzZSDigJhUTVBESVLigJkKICAg ICBmaXJzdC4gIElmIHRoYXQgaXMgdW5zZXQsIEVtYWNzIG5vcm1hbGx5IGZhbGxzIGJhY2sgb24g 4oCYL3RtcOKAmSwgYnV0CiAgICAgb24gTVMtV2luZG93cyBhbmQgTVMtRE9TIGl0IGluc3RlYWQg ZmFsbHMgYmFjayBvbiDigJhUTVDigJksIHRoZW4KICAgICDigJhURU1Q4oCZLCBhbmQgZmluYWxs eSDigJhjOi90ZW1w4oCZLgrigJhUWuKAmQogICAgIFRoaXMgc3BlY2lmaWVzIHRoZSBkZWZhdWx0 IHRpbWUgem9uZSBhbmQgcG9zc2libHkgYWxzbyBkYXlsaWdodAogICAgIHNhdmluZyB0aW1lIGlu Zm9ybWF0aW9uLiAgKk5vdGUgKGVsaXNwKVRpbWUgWm9uZSBSdWxlczo6LiAgT24KICAgICBNUy1E T1MsIGlmIOKAmFRa4oCZIGlzIG5vdCBzZXQgaW4gdGhlIGVudmlyb25tZW50IHdoZW4gRW1hY3Mg c3RhcnRzLAogICAgIEVtYWNzIGRlZmluZXMgYSBkZWZhdWx0IHZhbHVlIGFzIGFwcHJvcHJpYXRl IGZvciB0aGUgY291bnRyeSBjb2RlCiAgICAgcmV0dXJuZWQgYnkgRE9TLiAgT24gTVMtV2luZG93 cywgRW1hY3MgZG9lcyBub3QgdXNlIOKAmFRa4oCZIGF0IGFsbC4K4oCYVVNFUuKAmQogICAgIFRo ZSB1c2Vy4oCZcyBsb2dpbiBuYW1lLiAgU2VlIGFsc28g4oCYTE9HTkFNReKAmS4gIE9uIE1TLURP UywgdGhpcwogICAgIGRlZmF1bHRzIHRvIOKAmHJvb3TigJkuCuKAmFZFUlNJT05fQ09OVFJPTOKA mQogICAgIFVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUg4oCYdmVyc2lvbi1jb250cm9s4oCZIHZhcmlh YmxlICgqbm90ZSBCYWNrdXAKICAgICBOYW1lczo6KS4KCiAgIC0tLS0tLS0tLS0gRm9vdG5vdGVz IC0tLS0tLS0tLS0KCiAgICgxKSBIZXJlIGFuZCBiZWxvdywgd2hlbmV2ZXIgd2Ugc2F5IOKAnGNv bG9uLXNlcGFyYXRlZCBsaXN0IG9mCmRpcmVjdG9yaWVz4oCdLCBpdCBwZXJ0YWlucyB0byBVbml4 IGFuZCBHTlUvTGludXggc3lzdGVtcy4gIE9uIE1TLURPUyBhbmQKTVMtV2luZG93cywgdGhlIGRp cmVjdG9yaWVzIGFyZSBzZXBhcmF0ZWQgYnkgc2VtaS1jb2xvbnMgaW5zdGVhZCwgc2luY2UKRE9T L1dpbmRvd3MgZmlsZSBuYW1lcyBtaWdodCBpbmNsdWRlIGEgY29sb24gYWZ0ZXIgYSBkcml2ZSBs ZXR0ZXIuCgoKKioqKiBDLjQuMiBNaXNjZWxsYW5lb3VzIFZhcmlhYmxlcwoKVGhlc2UgdmFyaWFi bGVzIGFyZSB1c2VkIG9ubHkgb24gcGFydGljdWxhciBjb25maWd1cmF0aW9uczoKCuKAmENPTVNQ RUPigJkKICAgICBPbiBNUy1ET1MgYW5kIE1TLVdpbmRvd3MsIHRoZSBuYW1lIG9mIHRoZSBjb21t YW5kIGludGVycHJldGVyIHRvCiAgICAgdXNlIHdoZW4gaW52b2tpbmcgYmF0Y2ggZmlsZXMgYW5k IGNvbW1hbmRzIGludGVybmFsIHRvIHRoZSBzaGVsbC4KICAgICBPbiBNUy1ET1MgdGhpcyBpcyBh bHNvIHVzZWQgdG8gbWFrZSBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSDigJhTSEVMTOKAmQogICAg IGVudmlyb25tZW50IHZhcmlhYmxlLgoK4oCYTkFNReKAmQogICAgIE9uIE1TLURPUywgdGhpcyB2 YXJpYWJsZSBkZWZhdWx0cyB0byB0aGUgdmFsdWUgb2YgdGhlIOKAmFVTRVLigJkKICAgICB2YXJp YWJsZS4KCuKAmEVNQUNTVEVTVOKAmQogICAgIE9uIE1TLURPUywgdGhpcyBzcGVjaWZpZXMgYSBm aWxlIHRvIHVzZSB0byBsb2cgdGhlIG9wZXJhdGlvbiBvZiB0aGUKICAgICBpbnRlcm5hbCB0ZXJt aW5hbCBlbXVsYXRvci4gIFRoaXMgZmVhdHVyZSBpcyB1c2VmdWwgZm9yIHN1Ym1pdHRpbmcKICAg ICBidWcgcmVwb3J0cy4KCuKAmEVNQUNTQ09MT1JT4oCZCiAgICAgT24gTVMtRE9TLCB0aGlzIHNw ZWNpZmllcyB0aGUgc2NyZWVuIGNvbG9ycy4gIEl0IGlzIHVzZWZ1bCB0byBzZXQKICAgICB0aGVt IHRoaXMgd2F5LCBzaW5jZSBvdGhlcndpc2UgRW1hY3Mgd291bGQgZGlzcGxheSB0aGUgZGVmYXVs dAogICAgIGNvbG9ycyBtb21lbnRhcmlseSB3aGVuIGl0IHN0YXJ0cyB1cC4KCiAgICAgVGhlIHZh bHVlIG9mIHRoaXMgdmFyaWFibGUgc2hvdWxkIGJlIHRoZSB0d28tY2hhcmFjdGVyIGVuY29kaW5n IG9mCiAgICAgdGhlIGZvcmVncm91bmQgKHRoZSBmaXJzdCBjaGFyYWN0ZXIpIGFuZCB0aGUgYmFj a2dyb3VuZCAodGhlIHNlY29uZAogICAgIGNoYXJhY3RlcikgY29sb3JzIG9mIHRoZSBkZWZhdWx0 IGZhY2UuICBFYWNoIGNoYXJhY3RlciBzaG91bGQgYmUKICAgICB0aGUgaGV4YWRlY2ltYWwgY29k ZSBmb3IgdGhlIGRlc2lyZWQgY29sb3Igb24gYSBzdGFuZGFyZCBQQwogICAgIHRleHQtbW9kZSBk aXNwbGF5LiAgRm9yIGV4YW1wbGUsIHRvIGdldCBibHVlIHRleHQgb24gYSBsaWdodCBncmF5CiAg ICAgYmFja2dyb3VuZCwgc3BlY2lmeSDigJhFTUFDU0NPTE9SUz0xN+KAmSwgc2luY2UgMSBpcyB0 aGUgY29kZSBvZiB0aGUKICAgICBibHVlIGNvbG9yIGFuZCA3IGlzIHRoZSBjb2RlIG9mIHRoZSBs aWdodCBncmF5IGNvbG9yLgoKICAgICBUaGUgUEMgZGlzcGxheSB1c3VhbGx5IHN1cHBvcnRzIG9u bHkgZWlnaHQgYmFja2dyb3VuZCBjb2xvcnMuCiAgICAgSG93ZXZlciwgRW1hY3Mgc3dpdGNoZXMg dGhlIERPUyBkaXNwbGF5IHRvIGEgbW9kZSB3aGVyZSBhbGwgMTYKICAgICBjb2xvcnMgY2FuIGJl IHVzZWQgZm9yIHRoZSBiYWNrZ3JvdW5kLCBzbyBhbGwgZm91ciBiaXRzIG9mIHRoZQogICAgIGJh Y2tncm91bmQgY29sb3IgYXJlIGFjdHVhbGx5IHVzZWQuCgrigJhQUkVMT0FEX1dJTlNPQ0vigJkK ICAgICBPbiBNUy1XaW5kb3dzLCBpZiB5b3Ugc2V0IHRoaXMgdmFyaWFibGUsIEVtYWNzIHdpbGwg bG9hZCBhbmQKICAgICBpbml0aWFsaXplIHRoZSBuZXR3b3JrIGxpYnJhcnkgYXQgc3RhcnR1cCwg aW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsCiAgICAgdGhlIGZpcnN0IHRpbWUgaXQgaXMgcmVxdWly ZWQuCgrigJhlbWFjc19kaXLigJkKICAgICBPbiBNUy1XaW5kb3dzLCDigJhlbWFjc19kaXLigJkg aXMgYSBzcGVjaWFsIGVudmlyb25tZW50IHZhcmlhYmxlLCB3aGljaAogICAgIGluZGljYXRlcyB0 aGUgZnVsbCBwYXRoIG9mIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggRW1hY3MgaXMKICAgICBpbnN0 YWxsZWQuICBJZiBFbWFjcyBpcyBpbnN0YWxsZWQgaW4gdGhlIHN0YW5kYXJkIGRpcmVjdG9yeQog ICAgIHN0cnVjdHVyZSwgaXQgY2FsY3VsYXRlcyB0aGlzIHZhbHVlIGF1dG9tYXRpY2FsbHkuICBJ dCBpcyBub3QgbXVjaAogICAgIHVzZSBzZXR0aW5nIHRoaXMgdmFyaWFibGUgeW91cnNlbGYgdW5s ZXNzIHlvdXIgaW5zdGFsbGF0aW9uIGlzCiAgICAgbm9uLXN0YW5kYXJkLCBzaW5jZSB1bmxpa2Ug b3RoZXIgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBpdCB3aWxsIGJlCiAgICAgb3ZlcnJpZGRlbiBi eSBFbWFjcyBhdCBzdGFydHVwLiAgV2hlbiBzZXR0aW5nIG90aGVyIGVudmlyb25tZW50CiAgICAg dmFyaWFibGVzLCBzdWNoIGFzIOKAmEVNQUNTTE9BRFBBVEjigJksIHlvdSBtYXkgZmluZCBpdCB1 c2VmdWwgdG8gdXNlCiAgICAg4oCYZW1hY3NfZGly4oCZIHJhdGhlciB0aGFuIGhhcmQtY29kaW5n IGFuIGFic29sdXRlIHBhdGguICBUaGlzIGFsbG93cwogICAgIG11bHRpcGxlIHZlcnNpb25zIG9m IEVtYWNzIHRvIHNoYXJlIHRoZSBzYW1lIGVudmlyb25tZW50IHZhcmlhYmxlCiAgICAgc2V0dGlu Z3MsIGFuZCBpdCBhbGxvd3MgeW91IHRvIG1vdmUgdGhlIEVtYWNzIGluc3RhbGxhdGlvbgogICAg IGRpcmVjdG9yeSwgd2l0aG91dCBjaGFuZ2luZyBhbnkgZW52aXJvbm1lbnQgb3IgcmVnaXN0cnkg c2V0dGluZ3MuCgoKKioqKiBDLjQuMyBUaGUgTVMtV2luZG93cyBTeXN0ZW0gUmVnaXN0cnkKCk9u IE1TLVdpbmRvd3MsIHRoZSBpbnN0YWxsYXRpb24gcHJvZ3JhbSDigJhhZGRwbS5leGXigJkgYWRk cyB2YWx1ZXMgZm9yCuKAmGVtYWNzX2RpcuKAmSwg4oCYRU1BQ1NMT0FEUEFUSOKAmSwg4oCYRU1B Q1NEQVRB4oCZLCDigJhFTUFDU1BBVEjigJksIOKAmEVNQUNTRE9D4oCZLArigJhTSEVMTOKAmSBh bmQg4oCYVEVSTeKAmSB0byB0aGUg4oCYSEtFWV9MT0NBTF9NQUNISU5F4oCZIHNlY3Rpb24gb2Yg dGhlIHN5c3RlbQpyZWdpc3RyeSwgdW5kZXIg4oCYL1NvZnR3YXJlL0dOVS9FbWFjc+KAmS4gIEl0 IGRvZXMgdGhpcyBiZWNhdXNlIHRoZXJlIGlzIG5vCnN0YW5kYXJkIHBsYWNlIHRvIHNldCBlbnZp cm9ubWVudCB2YXJpYWJsZXMgYWNyb3NzIGRpZmZlcmVudCB2ZXJzaW9ucyBvZgpXaW5kb3dzLiAg UnVubmluZyDigJhhZGRwbS5leGXigJkgaXMgbm8gbG9uZ2VyIHN0cmljdGx5IG5lY2Vzc2FyeSBp biByZWNlbnQKdmVyc2lvbnMgb2YgRW1hY3MsIGJ1dCBpZiB5b3UgYXJlIHVwZ3JhZGluZyBmcm9t IGFuIG9sZGVyIHZlcnNpb24sCnJ1bm5pbmcg4oCYYWRkcG0uZXhl4oCZIGVuc3VyZXMgdGhhdCB5 b3UgZG8gbm90IGhhdmUgb2xkZXIgcmVnaXN0cnkgZW50cmllcwpmcm9tIGEgcHJldmlvdXMgaW5z dGFsbGF0aW9uLCB3aGljaCBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUKbGF0ZXN0IHZl cnNpb24gb2YgRW1hY3MuCgogICBXaGVuIEVtYWNzIHN0YXJ0cywgYXMgd2VsbCBhcyBjaGVja2lu ZyB0aGUgZW52aXJvbm1lbnQsIGl0IGFsc28KY2hlY2tzIHRoZSBTeXN0ZW0gUmVnaXN0cnkgZm9y IHRob3NlIHZhcmlhYmxlcyBhbmQgZm9yIOKAmEhPTUXigJksIOKAmExBTkfigJkKYW5kIOKAmFBS RUxPQURfV0lOU09DS+KAmS4KCiAgIFRvIGRldGVybWluZSB0aGUgdmFsdWUgb2YgdGhvc2UgdmFy aWFibGVzLCBFbWFjcyBnb2VzIHRocm91Z2ggdGhlCmZvbGxvd2luZyBwcm9jZWR1cmUuICBGaXJz dCwgdGhlIGVudmlyb25tZW50IGlzIGNoZWNrZWQuICBJZiB0aGUKdmFyaWFibGUgaXMgbm90IGZv dW5kIHRoZXJlLCBFbWFjcyBsb29rcyBmb3IgcmVnaXN0cnkga2V5cyBieSB0aGF0IG5hbWUKdW5k ZXIg4oCYL1NvZnR3YXJlL0dOVS9FbWFjc+KAmTsgZmlyc3QgaW4gdGhlIOKAmEhLRVlfQ1VSUkVO VF9VU0VS4oCZIHNlY3Rpb24gb2YKdGhlIHJlZ2lzdHJ5LCBhbmQgaWYgbm90IGZvdW5kIHRoZXJl LCBpbiB0aGUg4oCYSEtFWV9MT0NBTF9NQUNISU5F4oCZCnNlY3Rpb24uICBGaW5hbGx5LCBpZiBF bWFjcyBzdGlsbCBjYW5ub3QgZGV0ZXJtaW5lIHRoZSB2YWx1ZXMsCmNvbXBpbGVkLWluIGRlZmF1 bHRzIGFyZSB1c2VkLgoKICAgSW4gYWRkaXRpb24gdG8gdGhlIGVudmlyb25tZW50IHZhcmlhYmxl cyBhYm92ZSwgeW91IGNhbiBhbHNvIGFkZApzZXR0aW5ncyB0byB0aGUg4oCYL1NvZnR3YXJlL0dO VS9FbWFjc+KAmSByZWdpc3RyeSBrZXkgdG8gc3BlY2lmeSBYCnJlc291cmNlcyAoKm5vdGUgWCBS ZXNvdXJjZXM6OikuICBNb3N0IG9mIHRoZSBzZXR0aW5ncyB5b3UgY2FuIHNwZWNpZnkKaW4geW91 ciDigJguWGRlZmF1bHRz4oCZIGZpbGUgY2FuIGJlIHNldCBmcm9tIHRoYXQgcmVnaXN0cnkga2V5 LgoKCioqKiBDLjUgU3BlY2lmeWluZyB0aGUgRGlzcGxheSBOYW1lCgpUaGUgZW52aXJvbm1lbnQg dmFyaWFibGUg4oCYRElTUExBWeKAmSB0ZWxscyBhbGwgWCBjbGllbnRzLCBpbmNsdWRpbmcgRW1h Y3MsCndoZXJlIHRvIGRpc3BsYXkgdGhlaXIgd2luZG93cy4gIEl0cyB2YWx1ZSBpcyBzZXQgYnkg ZGVmYXVsdCBpbiBvcmRpbmFyeQpjaXJjdW1zdGFuY2VzLCB3aGVuIHlvdSBzdGFydCBhbiBYIHNl cnZlciBhbmQgcnVuIGpvYnMgbG9jYWxseS4gIFlvdSBjYW4Kc3BlY2lmeSB0aGUgZGlzcGxheSB5 b3Vyc2VsZjsgb25lIHJlYXNvbiB0byBkbyB0aGlzIGlzIGlmIHlvdSB3YW50IHRvCmxvZyBpbnRv IGFub3RoZXIgc3lzdGVtIGFuZCBydW4gRW1hY3MgdGhlcmUsIGFuZCBoYXZlIHRoZSB3aW5kb3cK ZGlzcGxheWVkIGF0IHlvdXIgbG9jYWwgdGVybWluYWwuCgogICDigJhESVNQTEFZ4oCZIGhhcyB0 aGUgc3ludGF4IOKAmEhPU1Q6RElTUExBWS5TQ1JFRU7igJksIHdoZXJlIEhPU1QgaXMgdGhlCmhv c3QgbmFtZSBvZiB0aGUgWCBXaW5kb3cgU3lzdGVtIHNlcnZlciBtYWNoaW5lLCBESVNQTEFZIGlz IGFuCmFyYml0cmFyaWx5LWFzc2lnbmVkIG51bWJlciB0aGF0IGRpc3Rpbmd1aXNoZXMgeW91ciBz ZXJ2ZXIgKFggdGVybWluYWwpCmZyb20gb3RoZXIgc2VydmVycyBvbiB0aGUgc2FtZSBtYWNoaW5l LCBhbmQgU0NSRUVOIGlzIGEgZmllbGQgdGhhdAphbGxvd3MgYW4gWCBzZXJ2ZXIgdG8gY29udHJv bCBtdWx0aXBsZSB0ZXJtaW5hbCBzY3JlZW5zLiAgVGhlIHBlcmlvZCBhbmQKdGhlIFNDUkVFTiBm aWVsZCBhcmUgb3B0aW9uYWwuICBJZiBpbmNsdWRlZCwgU0NSRUVOIGlzIHVzdWFsbHkgemVyby4K CiAgIEZvciBleGFtcGxlLCBpZiB5b3VyIGhvc3QgaXMgbmFtZWQg4oCYZ2xhc3Blcmxl4oCZIGFu ZCB5b3VyIHNlcnZlciBpcyB0aGUKZmlyc3QgKG9yIHBlcmhhcHMgdGhlIG9ubHkpIHNlcnZlciBs aXN0ZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIHlvdXIK4oCYRElTUExBWeKAmSBpcyDigJhnbGFz cGVybGU6MC4w4oCZLgoKICAgWW91IGNhbiBzcGVjaWZ5IHRoZSBkaXNwbGF5IG5hbWUgZXhwbGlj aXRseSB3aGVuIHlvdSBydW4gRW1hY3MsCmVpdGhlciBieSBjaGFuZ2luZyB0aGUg4oCYRElTUExB WeKAmSB2YXJpYWJsZSwgb3Igd2l0aCB0aGUgb3B0aW9uIOKAmC1kCkRJU1BMQVnigJkgb3Ig4oCY LS1kaXNwbGF5PURJU1BMQVnigJkuICBIZXJlIGlzIGFuIGV4YW1wbGU6CgogICAgIGVtYWNzIC0t ZGlzcGxheT1nbGFzcGVybGU6MCAmCgogICBZb3UgY2FuIGluaGliaXQgdGhlIHVzZSBvZiB0aGUg WCB3aW5kb3cgc3lzdGVtIHdpdGggdGhlIOKAmC1ud+KAmSBvcHRpb24uClRoZW4gRW1hY3MgdXNl cyBpdHMgY29udHJvbGxpbmcgdGV4dCB0ZXJtaW5hbCBmb3IgZGlzcGxheS4gICpOb3RlCkluaXRp YWwgT3B0aW9uczo6LgoKICAgU29tZXRpbWVzLCBzZWN1cml0eSBhcnJhbmdlbWVudHMgcHJldmVu dCBhIHByb2dyYW0gb24gYSByZW1vdGUgc3lzdGVtCmZyb20gZGlzcGxheWluZyBvbiB5b3VyIGxv Y2FsIHN5c3RlbS4gIEluIHRoaXMgY2FzZSwgdHJ5aW5nIHRvIHJ1biBFbWFjcwpwcm9kdWNlcyBt ZXNzYWdlcyBsaWtlIHRoaXM6CgogICAgIFhsaWI6ICBjb25uZWN0aW9uIHRvICJnbGFzcGVybGU6 MC4wIiByZWZ1c2VkIGJ5IHNlcnZlcgoKWW91IG1pZ2h0IGJlIGFibGUgdG8gb3ZlcmNvbWUgdGhp cyBwcm9ibGVtIGJ5IHVzaW5nIHRoZSDigJh4aG9zdOKAmSBjb21tYW5kCm9uIHRoZSBsb2NhbCBz eXN0ZW0gdG8gZ2l2ZSBwZXJtaXNzaW9uIGZvciBhY2Nlc3MgZnJvbSB5b3VyIHJlbW90ZQptYWNo aW5lLgoKCioqKiBDLjYgRm9udCBTcGVjaWZpY2F0aW9uIE9wdGlvbnMKCllvdSBjYW4gdXNlIHRo ZSBjb21tYW5kIGxpbmUgb3B0aW9uIOKAmC1mbiBGT05U4oCZIChvciDigJgtLWZvbnTigJksIHdo aWNoIGlzIGFuCmFsaWFzIGZvciDigJgtZm7igJkpIHRvIHNwZWNpZnkgYSBkZWZhdWx0IGZvbnQ6 CgrigJgtZm4gRk9OVOKAmQrigJgtLWZvbnQ9Rk9OVOKAmQogICAgIFVzZSBGT05UIGFzIHRoZSBk ZWZhdWx0IGZvbnQuCgogICBXaGVuIHBhc3NpbmcgYSBmb250IG5hbWUgdG8gRW1hY3Mgb24gdGhl IGNvbW1hbmQgbGluZSwgeW91IG1heSBuZWVkCnRvIHF1b3RlIGl0LCBieSBlbmNsb3NpbmcgaXQg aW4gcXVvdGF0aW9uIG1hcmtzLCBpZiBpdCBjb250YWlucwpjaGFyYWN0ZXJzIHRoYXQgdGhlIHNo ZWxsIHRyZWF0cyBzcGVjaWFsbHkgKGUuZy4sIHNwYWNlcykuICBGb3IgZXhhbXBsZToKCiAgICAg ZW1hY3MgLWZuICJEZWphVnUgU2FucyBNb25vLTEyIgoKICAgKk5vdGUgRm9udHM6OiwgZm9yIGRl dGFpbHMgYWJvdXQgZm9udCBuYW1lcyBhbmQgb3RoZXIgd2F5cyB0byBzcGVjaWZ5CnRoZSBkZWZh dWx0IGZvbnQuCgoKKioqIEMuNyBXaW5kb3cgQ29sb3IgT3B0aW9ucwoKWW91IGNhbiB1c2UgdGhl IGZvbGxvd2luZyBjb21tYW5kLWxpbmUgb3B0aW9ucyB0byBzcGVjaWZ5IHRoZSBjb2xvcnMgdG8K dXNlIGZvciB2YXJpb3VzIHBhcnRzIG9mIHRoZSBFbWFjcyBkaXNwbGF5LiAgQ29sb3JzIG1heSBi ZSBzcGVjaWZpZWQKdXNpbmcgZWl0aGVyIGNvbG9yIG5hbWVzIG9yIFJHQiB0cmlwbGV0cyAoKm5v dGUgQ29sb3JzOjopLgoK4oCYLWZnIENPTE9S4oCZCuKAmC0tZm9yZWdyb3VuZC1jb2xvcj1DT0xP UuKAmQogICAgIFNwZWNpZnkgdGhlIGZvcmVncm91bmQgY29sb3IsIG92ZXJyaWRpbmcgdGhlIGNv bG9yIHNwZWNpZmllZCBieSB0aGUKICAgICDigJhkZWZhdWx04oCZIGZhY2UgKCpub3RlIEZhY2Vz OjopLgrigJgtYmcgQ09MT1LigJkK4oCYLS1iYWNrZ3JvdW5kLWNvbG9yPUNPTE9S4oCZCiAgICAg U3BlY2lmeSB0aGUgYmFja2dyb3VuZCBjb2xvciwgb3ZlcnJpZGluZyB0aGUgY29sb3Igc3BlY2lm aWVkIGJ5IHRoZQogICAgIOKAmGRlZmF1bHTigJkgZmFjZS4K4oCYLWJkIENPTE9S4oCZCuKAmC0t Ym9yZGVyLWNvbG9yPUNPTE9S4oCZCiAgICAgU3BlY2lmeSB0aGUgY29sb3Igb2YgdGhlIGJvcmRl ciBvZiB0aGUgWCB3aW5kb3cuICBUaGlzIGhhcyBubwogICAgIGVmZmVjdCBpZiBFbWFjcyBpcyBj b21waWxlZCB3aXRoIEdUSysgc3VwcG9ydC4K4oCYLWNyIENPTE9S4oCZCuKAmC0tY3Vyc29yLWNv bG9yPUNPTE9S4oCZCiAgICAgU3BlY2lmeSB0aGUgY29sb3Igb2YgdGhlIEVtYWNzIGN1cnNvciB3 aGljaCBpbmRpY2F0ZXMgd2hlcmUgcG9pbnQKICAgICBpcy4K4oCYLW1zIENPTE9S4oCZCuKAmC0t bW91c2UtY29sb3I9Q09MT1LigJkKICAgICBTcGVjaWZ5IHRoZSBjb2xvciBmb3IgdGhlIG1vdXNl IGN1cnNvciB3aGVuIHRoZSBtb3VzZSBpcyBpbiB0aGUKICAgICBFbWFjcyB3aW5kb3cuCuKAmC1y 4oCZCuKAmC1yduKAmQrigJgtLXJldmVyc2UtdmlkZW/igJkKICAgICBSZXZlcnNlIHZpZGVvOiBz d2FwIHRoZSBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycy4K4oCYLS1jb2xvcj1NT0RF 4oCZCiAgICAgU2V0IHRoZSAiY29sb3Igc3VwcG9ydCBtb2RlIiB3aGVuIEVtYWNzIGlzIHJ1biBv biBhIHRleHQgdGVybWluYWwuCiAgICAgVGhpcyBvcHRpb24gb3ZlcnJpZGVzIHRoZSBudW1iZXIg b2Ygc3VwcG9ydGVkIGNvbG9ycyB0aGF0IHRoZQogICAgIGNoYXJhY3RlciB0ZXJtaW5hbCBhZHZl cnRpc2VzIGluIGl0cyDigJh0ZXJtY2Fw4oCZIG9yIOKAmHRlcm1pbmZv4oCZCiAgICAgZGF0YWJh c2UuICBUaGUgcGFyYW1ldGVyIE1PREUgY2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgogICAg IOKAmG5ldmVy4oCZCiAgICAg4oCYbm/igJkKICAgICAgICAgIERvbuKAmXQgdXNlIGNvbG9ycyBl dmVuIGlmIHRoZSB0ZXJtaW5hbOKAmXMgY2FwYWJpbGl0aWVzIHNwZWNpZnkKICAgICAgICAgIGNv bG9yIHN1cHBvcnQuCiAgICAg4oCYZGVmYXVsdOKAmQogICAgIOKAmGF1dG/igJkKICAgICAgICAg IFNhbWUgYXMgd2hlbiDigJgtLWNvbG9y4oCZIGlzIG5vdCB1c2VkIGF0IGFsbDogRW1hY3MgZGV0 ZWN0cyBhdAogICAgICAgICAgc3RhcnR1cCB3aGV0aGVyIHRoZSB0ZXJtaW5hbCBzdXBwb3J0cyBj b2xvcnMsIGFuZCBpZiBpdCBkb2VzLAogICAgICAgICAgdHVybnMgb24gY29sb3JlZCBkaXNwbGF5 LgogICAgIOKAmGFsd2F5c+KAmQogICAgIOKAmHllc+KAmQogICAgIOKAmGFuc2k44oCZCiAgICAg ICAgICBUdXJuIG9uIHRoZSBjb2xvciBzdXBwb3J0IHVuY29uZGl0aW9uYWxseSwgYW5kIHVzZSBj b2xvcgogICAgICAgICAgY29tbWFuZHMgc3BlY2lmaWVkIGJ5IHRoZSBBTlNJIGVzY2FwZSBzZXF1 ZW5jZXMgZm9yIHRoZSA4CiAgICAgICAgICBzdGFuZGFyZCBjb2xvcnMuCiAgICAg4oCYTlVN4oCZ CiAgICAgICAgICBVc2UgY29sb3IgbW9kZSBmb3IgTlVNIGNvbG9ycy4gIElmIE5VTSBpcyDiiJIx LCB0dXJuIG9mZiBjb2xvcgogICAgICAgICAgc3VwcG9ydCAoZXF1aXZhbGVudCB0byDigJhuZXZl cuKAmSk7IGlmIGl0IGlzIDAsIHVzZSB0aGUgZGVmYXVsdAogICAgICAgICAgY29sb3Igc3VwcG9y dCBmb3IgdGhpcyB0ZXJtaW5hbCAoZXF1aXZhbGVudCB0byDigJhhdXRv4oCZKTsKICAgICAgICAg IG90aGVyd2lzZSB1c2UgYW4gYXBwcm9wcmlhdGUgc3RhbmRhcmQgbW9kZSBmb3IgTlVNIGNvbG9y cy4KICAgICAgICAgIERlcGVuZGluZyBvbiB5b3VyIHRlcm1pbmFs4oCZcyBjYXBhYmlsaXRpZXMs IEVtYWNzIG1pZ2h0IGJlIGFibGUKICAgICAgICAgIHRvIHR1cm4gb24gYSBjb2xvciBtb2RlIGZv ciA4LCAxNiwgODgsIG9yIDI1NiBhcyB0aGUgdmFsdWUgb2YKICAgICAgICAgIE5VTS4gIElmIHRo ZXJlIGlzIG5vIG1vZGUgdGhhdCBzdXBwb3J0cyBOVU0gY29sb3JzLCBFbWFjcyBhY3RzCiAgICAg ICAgICBhcyBpZiBOVU0gd2VyZSAwLCBpLmUuLCBpdCB1c2VzIHRoZSB0ZXJtaW5hbOKAmXMgZGVm YXVsdCBjb2xvcgogICAgICAgICAgc3VwcG9ydCBtb2RlLgogICAgIElmIE1PREUgaXMgb21pdHRl ZCwgaXQgZGVmYXVsdHMgdG8gQU5TSTguCgogICBGb3IgZXhhbXBsZSwgdG8gdXNlIGEgY29yYWwg bW91c2UgY3Vyc29yIGFuZCBhIHNsYXRlIGJsdWUgdGV4dApjdXJzb3IsIGVudGVyOgoKICAgICBl bWFjcyAtbXMgY29yYWwgLWNyICdzbGF0ZSBibHVlJyAmCgogICBZb3UgY2FuIHJldmVyc2UgdGhl IGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIHRocm91Z2ggdGhlCuKAmC1yduKAmSBv cHRpb24gb3Igd2l0aCB0aGUgWCByZXNvdXJjZSDigJhyZXZlcnNlVmlkZW/igJkuCgogICBUaGUg 4oCYLWZn4oCZLCDigJgtYmfigJksIGFuZCDigJgtcnbigJkgb3B0aW9ucyBmdW5jdGlvbiBvbiB0 ZXh0IHRlcm1pbmFscyBhcwp3ZWxsIGFzIG9uIGdyYXBoaWNhbCBkaXNwbGF5cy4KCgoqKiogQy44 IE9wdGlvbnMgZm9yIFdpbmRvdyBTaXplIGFuZCBQb3NpdGlvbgoKSGVyZSBpcyBhIGxpc3Qgb2Yg dGhlIGNvbW1hbmQtbGluZSBvcHRpb25zIGZvciBzcGVjaWZ5aW5nIHNpemUgYW5kCnBvc2l0aW9u IG9mIHRoZSBpbml0aWFsIEVtYWNzIGZyYW1lOgoK4oCYLWcgV0lEVEh4SEVJR0hUW3srLX1YT0ZG U0VUeystfVlPRkZTRVRdXeKAmQrigJgtLWdlb21ldHJ5PVdJRFRIeEhFSUdIVFt7Ky19WE9GRlNF VHsrLX1ZT0ZGU0VUXV3igJkKICAgICBTcGVjaWZ5IHRoZSBzaXplIFdJRFRIIGFuZCBIRUlHSFQg KG1lYXN1cmVkIGluIGNoYXJhY3RlciBjb2x1bW5zCiAgICAgYW5kIGxpbmVzKSwgYW5kIHBvc2l0 aW9ucyBYT0ZGU0VUIGFuZCBZT0ZGU0VUIChtZWFzdXJlZCBpbiBwaXhlbHMpLgogICAgIFRoZSBX SURUSCBhbmQgSEVJR0hUIHBhcmFtZXRlcnMgYXBwbHkgdG8gYWxsIGZyYW1lcywgd2hlcmVhcwog ICAgIFhPRkZTRVQgYW5kIFlPRkZTRVQgb25seSB0byB0aGUgaW5pdGlhbCBmcmFtZS4KCuKAmC1m c+KAmQrigJgtLWZ1bGxzY3JlZW7igJkKICAgICBTcGVjaWZ5IHRoYXQgd2lkdGggYW5kIGhlaWdo dCBzaG91bGQgYmUgdGhhdCBvZiB0aGUgc2NyZWVuLgogICAgIE5vcm1hbGx5IG5vIHdpbmRvdyBt YW5hZ2VyIGRlY29yYXRpb25zIGFyZSBzaG93bi4gIChBZnRlciBzdGFydGluZwogICAgIEVtYWNz LCB5b3UgY2FuIHRvZ2dsZSB0aGlzIHN0YXRlIHVzaW5nIDxGMTE+LAogICAgIOKAmHRvZ2dsZS1m cmFtZS1mdWxsc2NyZWVu4oCZLikKCuKAmC1tbeKAmQrigJgtLW1heGltaXplZOKAmQogICAgIFNw ZWNpZnkgdGhhdCB0aGUgRW1hY3MgZnJhbWUgc2hvdWxkIGJlIG1heGltaXplZC4gIFRoaXMgbm9y bWFsbHkKICAgICBtZWFucyB0aGF0IHRoZSBmcmFtZSBoYXMgd2luZG93IG1hbmFnZXIgZGVjb3Jh dGlvbnMuICAoQWZ0ZXIKICAgICBzdGFydGluZyBFbWFjcywgeW91IGNhbiB0b2dnbGUgdGhpcyBz dGF0ZSB1c2luZyDigJhNLUYxMOKAmSwKICAgICDigJh0b2dnbGUtZnJhbWUtbWF4aW1pemVk4oCZ LikKCuKAmC1maOKAmQrigJgtLWZ1bGxoZWlnaHTigJkKICAgICBTcGVjaWZ5IHRoYXQgdGhlIGhl aWdodCBzaG91bGQgYmUgdGhlIGhlaWdodCBvZiB0aGUgc2NyZWVuLgoK4oCYLWZ34oCZCuKAmC0t ZnVsbHdpZHRo4oCZCiAgICAgU3BlY2lmeSB0aGF0IHRoZSB3aWR0aCBzaG91bGQgYmUgdGhlIHdp ZHRoIG9mIHRoZSBzY3JlZW4uCgpJbiB0aGUg4oCYLS1nZW9tZXRyeeKAmSBvcHRpb24sIOKAmHsr LX3igJkgbWVhbnMgZWl0aGVyIGEgcGx1cyBzaWduIG9yIGEgbWludXMKc2lnbi4gIEEgcGx1cyBz aWduIGJlZm9yZSBYT0ZGU0VUIG1lYW5zIGl0IGlzIHRoZSBkaXN0YW5jZSBmcm9tIHRoZSBsZWZ0 CnNpZGUgb2YgdGhlIHNjcmVlbjsgYSBtaW51cyBzaWduIG1lYW5zIGl0IGNvdW50cyBmcm9tIHRo ZSByaWdodCBzaWRlLiAgQQpwbHVzIHNpZ24gYmVmb3JlIFlPRkZTRVQgbWVhbnMgaXQgaXMgdGhl IGRpc3RhbmNlIGZyb20gdGhlIHRvcCBvZiB0aGUKc2NyZWVuLCBhbmQgYSBtaW51cyBzaWduIHRo ZXJlIGluZGljYXRlcyB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgYm90dG9tLgpUaGUgdmFsdWVzIFhP RkZTRVQgYW5kIFlPRkZTRVQgbWF5IHRoZW1zZWx2ZXMgYmUgcG9zaXRpdmUgb3IgbmVnYXRpdmUs CmJ1dCB0aGF0IGRvZXNu4oCZdCBjaGFuZ2UgdGhlaXIgbWVhbmluZywgb25seSB0aGVpciBkaXJl Y3Rpb24uCgogICBFbWFjcyB1c2VzIHRoZSBzYW1lIHVuaXRzIGFzIOKAmHh0ZXJt4oCZIGRvZXMg dG8gaW50ZXJwcmV0IHRoZSBnZW9tZXRyeS4KVGhlIFdJRFRIIGFuZCBIRUlHSFQgYXJlIG1lYXN1 cmVkIGluIGNoYXJhY3RlcnMsIHNvIGEgbGFyZ2UgZm9udCBjcmVhdGVzCmEgbGFyZ2VyIGZyYW1l IHRoYW4gYSBzbWFsbCBmb250LiAgKElmIHlvdSBzcGVjaWZ5IGEgcHJvcG9ydGlvbmFsIGZvbnQs CkVtYWNzIHVzZXMgaXRzIG1heGltdW0gYm91bmRzIHdpZHRoIGFzIHRoZSB3aWR0aCB1bml0Likg IFRoZSBYT0ZGU0VUIGFuZApZT0ZGU0VUIGFyZSBtZWFzdXJlZCBpbiBwaXhlbHMuCgogICBZb3Ug ZG8gbm90IGhhdmUgdG8gc3BlY2lmeSBhbGwgb2YgdGhlIGZpZWxkcyBpbiB0aGUgZ2VvbWV0cnkK c3BlY2lmaWNhdGlvbi4gIElmIHlvdSBvbWl0IGJvdGggWE9GRlNFVCBhbmQgWU9GRlNFVCwgdGhl IHdpbmRvdyBtYW5hZ2VyCmRlY2lkZXMgd2hlcmUgdG8gcHV0IHRoZSBFbWFjcyBmcmFtZSwgcG9z c2libHkgYnkgbGV0dGluZyB5b3UgcGxhY2UgaXQKd2l0aCB0aGUgbW91c2UuICBGb3IgZXhhbXBs ZSwg4oCYMTY0eDU14oCZIHNwZWNpZmllcyBhIHdpbmRvdyAxNjQgY29sdW1ucwp3aWRlLCBlbm91 Z2ggZm9yIHR3byBvcmRpbmFyeSB3aWR0aCB3aW5kb3dzIHNpZGUgYnkgc2lkZSwgYW5kIDU1IGxp bmVzCnRhbGwuCgogICBUaGUgZGVmYXVsdCBmcmFtZSB3aWR0aCBpcyA4MCBjaGFyYWN0ZXJzIGFu ZCB0aGUgZGVmYXVsdCBoZWlnaHQgaXMgNDAKbGluZXMuICBZb3UgY2FuIG9taXQgZWl0aGVyIHRo ZSB3aWR0aCBvciB0aGUgaGVpZ2h0IG9yIGJvdGguICBJZiB5b3UKc3RhcnQgdGhlIGdlb21ldHJ5 IHdpdGggYW4gaW50ZWdlciwgRW1hY3MgaW50ZXJwcmV0cyBpdCBhcyB0aGUgd2lkdGguCklmIHlv dSBzdGFydCB3aXRoIGFuIOKAmHjigJkgZm9sbG93ZWQgYnkgYW4gaW50ZWdlciwgRW1hY3MgaW50 ZXJwcmV0cyBpdCBhcwp0aGUgaGVpZ2h0LiAgVGh1cywg4oCYODHigJkgc3BlY2lmaWVzIGp1c3Qg dGhlIHdpZHRoOyDigJh4NDXigJkgc3BlY2lmaWVzIGp1c3QKdGhlIGhlaWdodC4KCiAgIElmIHlv dSBzdGFydCB0aGUgZ2VvbWV0cnkgd2l0aCDigJgr4oCZIG9yIOKAmC3igJksIHRoYXQgaW50cm9k dWNlcyBhbiBvZmZzZXQsCndoaWNoIG1lYW5zIGJvdGggc2l6ZXMgYXJlIG9taXR0ZWQuICBUaHVz LCDigJgtM+KAmSBzcGVjaWZpZXMgdGhlIFhPRkZTRVQKb25seS4gIChJZiB5b3UgZ2l2ZSBqdXN0 IG9uZSBvZmZzZXQsIGl0IGlzIGFsd2F5cyBYT0ZGU0VULikgIOKAmCszLTPigJkKc3BlY2lmaWVz IGJvdGggdGhlIFhPRkZTRVQgYW5kIHRoZSBZT0ZGU0VULCBwbGFjaW5nIHRoZSBmcmFtZSBuZWFy IHRoZQpib3R0b20gbGVmdCBvZiB0aGUgc2NyZWVuLgoKICAgWW91IGNhbiBzcGVjaWZ5IGEgZGVm YXVsdCBmb3IgYW55IG9yIGFsbCBvZiB0aGUgZmllbGRzIGluIHlvdXIgWApyZXNvdXJjZSBmaWxl ICgqbm90ZSBSZXNvdXJjZXM6OiksIGFuZCB0aGVuIG92ZXJyaWRlIHNlbGVjdGVkIGZpZWxkcwp3 aXRoIGEg4oCYLS1nZW9tZXRyeeKAmSBvcHRpb24uCgogICBTaW5jZSB0aGUgbW9kZSBsaW5lIGFu ZCB0aGUgZWNobyBhcmVhIG9jY3VweSB0aGUgbGFzdCAyIGxpbmVzIG9mIHRoZQpmcmFtZSwgdGhl IGhlaWdodCBvZiB0aGUgaW5pdGlhbCB0ZXh0IHdpbmRvdyBpcyAyIGxlc3MgdGhhbiB0aGUgaGVp Z2h0CnNwZWNpZmllZCBpbiB5b3VyIGdlb21ldHJ5LiAgSW4gbm9uLVgtdG9vbGtpdCB2ZXJzaW9u cyBvZiBFbWFjcywgdGhlCm1lbnUgYmFyIGFsc28gdGFrZXMgb25lIGxpbmUgb2YgdGhlIHNwZWNp ZmllZCBudW1iZXIuICBCdXQgaW4gdGhlIFgKdG9vbGtpdCB2ZXJzaW9uLCB0aGUgbWVudSBiYXIg aXMgYWRkaXRpb25hbCBhbmQgZG9lcyBub3QgY291bnQgYWdhaW5zdAp0aGUgc3BlY2lmaWVkIGhl aWdodC4gIFRoZSB0b29sIGJhciwgaWYgcHJlc2VudCwgaXMgYWxzbyBhZGRpdGlvbmFsLgoKICAg RW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoZSBtZW51IGJhciBvciB0b29sIGJhciBhbHRlcnMgdGhl IGFtb3VudCBvZgpzcGFjZSBhdmFpbGFibGUgZm9yIG9yZGluYXJ5IHRleHQuICBUaGVyZWZvcmUs IGlmIEVtYWNzIHN0YXJ0cyB1cCB3aXRoIGEKdG9vbCBiYXIgKHdoaWNoIGlzIHRoZSBkZWZhdWx0 KSwgYW5kIGhhbmRsZXMgdGhlIGdlb21ldHJ5IHNwZWNpZmljYXRpb24KYXNzdW1pbmcgdGhlcmUg aXMgYSB0b29sIGJhciwgYW5kIHRoZW4geW91ciBpbml0aWFsaXphdGlvbiBmaWxlIGRpc2FibGVz CnRoZSB0b29sIGJhciwgeW91IHdpbGwgZW5kIHVwIHdpdGggYSBmcmFtZSBnZW9tZXRyeSBkaWZm ZXJlbnQgZnJvbSB3aGF0CnlvdSBhc2tlZCBmb3IuICBUbyBnZXQgdGhlIGludGVuZGVkIHNpemUg d2l0aCBubyB0b29sIGJhciwgdXNlIGFuIFgKcmVzb3VyY2UgdG8gc3BlY2lmeSDigJxubyB0b29s IGJhcuKAnSAoKm5vdGUgVGFibGUgb2YgUmVzb3VyY2VzOjopOyB0aGVuCkVtYWNzIHdpbGwgYWxy ZWFkeSBrbm93IHRoZXJl4oCZcyBubyB0b29sIGJhciB3aGVuIGl0IHByb2Nlc3NlcyB0aGUKc3Bl Y2lmaWVkIGdlb21ldHJ5LgoKICAgV2hlbiB1c2luZyBvbmUgb2Yg4oCYLS1mdWxsc2NyZWVu4oCZ LCDigJgtLW1heGltaXplZOKAmSwg4oCYLS1mdWxsd2lkdGjigJkgb3IK4oCYLS1mdWxsaGVpZ2h0 4oCZLCBzb21lIHdpbmRvdyBtYW5hZ2VycyByZXF1aXJlIHlvdSB0byBzZXQgdGhlIHZhcmlhYmxl CuKAmGZyYW1lLXJlc2l6ZS1waXhlbHdpc2XigJkgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlIHRv IG1ha2UgYSBmcmFtZSBhcHBlYXIKdHJ1bHkgbWF4aW1pemVkIG9yIGZ1bGwtc2NyZWVuLgoKICAg U29tZSB3aW5kb3cgbWFuYWdlcnMgaGF2ZSBvcHRpb25zIHRoYXQgY2FuIG1ha2UgdGhlbSBpZ25v cmUgYm90aApwcm9ncmFtLXNwZWNpZmllZCBhbmQgdXNlci1zcGVjaWZpZWQgcG9zaXRpb25zLiAg SWYgdGhlc2UgYXJlIHNldCwgRW1hY3MKZmFpbHMgdG8gcG9zaXRpb24gdGhlIHdpbmRvdyBjb3Jy ZWN0bHkuCgoKKioqIEMuOSBJbnRlcm5hbCBhbmQgT3V0ZXIgQm9yZGVycwoKQW4gRW1hY3MgZnJh bWUgaGFzIGFuIGludGVybmFsIGJvcmRlciBhbmQgYW4gb3V0ZXIgYm9yZGVyLiAgVGhlIGludGVy bmFsCmJvcmRlciBpcyBhbiBleHRyYSBzdHJpcCBvZiB0aGUgYmFja2dyb3VuZCBjb2xvciBhcm91 bmQgdGhlIHRleHQgcG9ydGlvbgpvZiB0aGUgZnJhbWUuICBFbWFjcyBpdHNlbGYgZHJhd3MgdGhl IGludGVybmFsIGJvcmRlci4gIFRoZSBvdXRlciBib3JkZXIKaXMgZHJhd24gYnkgWCBvdXRzaWRl IHRoZSB0b29sIGFuZCBtZW51IGJhcnMgb2YgdGhlIGZyYW1lLiAgVGhlcmUgaXMKYWxzbyBhbiBl eHRlcm5hbCBib3JkZXIgd2hpY2ggaXMgZHJhd24gYnkgdGhlIHdpbmRvdyBtYW5hZ2VyLiAgVGhl IHNpemUKb2YgdGhlIGV4dGVybmFsIGJvcmRlciBjYW5ub3QgYmUgc2V0IGZyb20gd2l0aGluIEVt YWNzLgoK4oCYLWliIFdJRFRI4oCZCuKAmC0taW50ZXJuYWwtYm9yZGVyPVdJRFRI4oCZCiAgICAg U3BlY2lmeSBXSURUSCBhcyB0aGUgd2lkdGggb2YgdGhlIGludGVybmFsIGJvcmRlciAoYXJvdW5k IHRoZQogICAgIGZyYW1l4oCZcyB0ZXh0IGFyZWEpLCBpbiBwaXhlbHMuCgrigJgtYncgV0lEVEji gJkK4oCYLS1ib3JkZXItd2lkdGg9V0lEVEjigJkKICAgICBTcGVjaWZ5IFdJRFRIIGFzIHRoZSB3 aWR0aCBvZiB0aGUgb3V0ZXIgYm9yZGVyLCBpbiBwaXhlbHMuCgogICBXaGVuIHlvdSBzcGVjaWZ5 IHRoZSBzaXplIG9mIHRoZSBmcmFtZSwgdGhhdCBkb2VzIG5vdCBjb3VudCB0aGUKYm9yZGVycy4g IFRoZSBmcmFtZeKAmXMgcG9zaXRpb24gaXMgbWVhc3VyZWQgZnJvbSB0aGUgb3V0c2lkZSBlZGdl IG9mIHRoZQpleHRlcm5hbCBib3JkZXIuCgogICBVc2UgdGhlIOKAmC1pYiBO4oCZIG9wdGlvbiB0 byBzcGVjaWZ5IGFuIGludGVybmFsIGJvcmRlciBOIHBpeGVscyB3aWRlLgpUaGUgZGVmYXVsdCBp cyAxLiAgVXNlIOKAmC1idyBO4oCZIHRvIHNwZWNpZnkgdGhlIHdpZHRoIG9mIHRoZSBvdXRlciBi b3JkZXIKKHRob3VnaCB0aGUgd2luZG93IG1hbmFnZXIgbWF5IG5vdCBwYXkgYXR0ZW50aW9uIHRv IHdoYXQgeW91IHNwZWNpZnkpLgpUaGUgZGVmYXVsdCB3aWR0aCBvZiB0aGUgb3V0ZXIgYm9yZGVy IGlzIDIuCgoKKioqIEMuMTAgRnJhbWUgVGl0bGVzCgpFYWNoIEVtYWNzIGZyYW1lIGFsd2F5cyBo YXMgYSB0aXRsZSwgd2hpY2ggYXBwZWFycyBpbiB3aW5kb3cgZGVjb3JhdGlvbnMKYW5kIGljb25z IGFzIHRoZSBuYW1lIG9mIHRoZSBmcmFtZS4gIFRoZSBkZWZhdWx0IHRpdGxlIGlzIG9mIHRoZSBm b3JtCuKAmElOVk9DQVRJT04tTkFNRUBNQUNISU5F4oCZIChpZiB0aGVyZSBpcyBvbmx5IG9uZSBm cmFtZSkgb3Igc2hvd3MgdGhlCnNlbGVjdGVkIHdpbmRvd+KAmXMgYnVmZmVyIG5hbWUgKGlmIHRo ZXJlIGlzIG1vcmUgdGhhbiBvbmUgZnJhbWUpLgoKICAgWW91IGNhbiBzcGVjaWZ5IGEgbm9uLWRl ZmF1bHQgdGl0bGUgZm9yIHRoZSBpbml0aWFsIEVtYWNzIGZyYW1lIHdpdGgKYSBjb21tYW5kIGxp bmUgb3B0aW9uOgoK4oCYLVQgVElUTEXigJkK4oCYLS10aXRsZT1USVRMReKAmQogICAgIFNwZWNp ZnkgVElUTEUgYXMgdGhlIHRpdGxlIGZvciB0aGUgaW5pdGlhbCBFbWFjcyBmcmFtZS4KCiAgIFRo ZSDigJgtLW5hbWXigJkgb3B0aW9uICgqbm90ZSBSZXNvdXJjZXM6OikgYWxzbyBzcGVjaWZpZXMg dGhlIHRpdGxlIGZvcgp0aGUgaW5pdGlhbCBFbWFjcyBmcmFtZS4KCgoqKiogQy4xMSBJY29ucwoK 4oCYLWljb25pY+KAmQrigJgtLWljb25pY+KAmQogICAgIFN0YXJ0IEVtYWNzIGluIGFuIGljb25p ZmllZCBzdGF0ZS4KCuKAmC1uYmnigJkK4oCYLS1uby1iaXRtYXAtaWNvbuKAmQogICAgIERpc2Fi bGUgdGhlIHVzZSBvZiB0aGUgRW1hY3MgaWNvbi4KCiAgIE1vc3Qgd2luZG93IG1hbmFnZXJzIGFs bG93IHlvdSB0byBpY29uaWZ5IChvciDigJxtaW5pbWl6ZeKAnSkgYW4gRW1hY3MKZnJhbWUsIGhp ZGluZyBpdCBmcm9tIHNpZ2h0LiAgU29tZSB3aW5kb3cgbWFuYWdlcnMgcmVwbGFjZSBpY29uaWZp ZWQKd2luZG93cyB3aXRoIHRpbnkgaWNvbnMsIHdoaWxlIG90aGVycyByZW1vdmUgdGhlbSBlbnRp cmVseSBmcm9tIHNpZ2h0LgpUaGUg4oCYLWljb25pY+KAmSBvcHRpb24gdGVsbHMgRW1hY3MgdG8g YmVnaW4gcnVubmluZyBpbiBhbiBpY29uaWZpZWQgc3RhdGUsCnJhdGhlciB0aGFuIHNob3dpbmcg YSBmcmFtZSByaWdodCBhd2F5LiAgVGhlIHRleHQgZnJhbWUgZG9lc27igJl0IGFwcGVhcgp1bnRp bCB5b3UgZGVpY29uaWZ5IChvciDigJx1bi1taW5pbWl6ZeKAnSkgaXQuCgogICBCeSBkZWZhdWx0 LCBFbWFjcyB1c2VzIGFuIGljb24gY29udGFpbmluZyB0aGUgRW1hY3MgbG9nby4gIE9uIGRlc2t0 b3AKZW52aXJvbm1lbnRzIHN1Y2ggYXMgR25vbWUsIHRoaXMgaWNvbiBpcyBhbHNvIGRpc3BsYXll ZCBpbiBvdGhlcgpjb250ZXh0cywgZS5nLiwgd2hlbiBzd2l0Y2hpbmcgaW50byBhbiBFbWFjcyBm cmFtZS4gIFRoZSDigJgtbmJp4oCZIG9yCuKAmC0tbm8tYml0bWFwLWljb27igJkgb3B0aW9uIHRl bGxzIEVtYWNzIHRvIGxldCB0aGUgd2luZG93IG1hbmFnZXIgY2hvb3NlCndoYXQgc29ydCBvZiBp Y29uIHRvIHVzZeKAlHVzdWFsbHkganVzdCBhIHNtYWxsIHJlY3RhbmdsZSBjb250YWluaW5nIHRo ZQpmcmFtZeKAmXMgdGl0bGUuCgoKKioqIEMuMTIgT3RoZXIgRGlzcGxheSBPcHRpb25zCgrigJgt LXBhcmVudC1pZCBJROKAmQogICAgIE9wZW4gRW1hY3MgYXMgYSBjbGllbnQgWCB3aW5kb3cgdmlh IHRoZSBYRW1iZWQgcHJvdG9jb2wsIHdpdGggSUQgYXMKICAgICB0aGUgcGFyZW50IFggd2luZG93 IGlkLiAgQ3VycmVudGx5LCB0aGlzIG9wdGlvbiBpcyBtYWlubHkgdXNlZnVsCiAgICAgZm9yIGRl dmVsb3BlcnMuCgrigJgtdmLigJkK4oCYLS12ZXJ0aWNhbC1zY3JvbGwtYmFyc+KAmQogICAgIEVu YWJsZSB2ZXJ0aWNhbCBzY3JvbGwgYmFycy4KCuKAmC1sc3AgUElYRUxT4oCZCuKAmC0tbGluZS1z cGFjaW5nPVBJWEVMU+KAmQogICAgIFNwZWNpZnkgUElYRUxTIGFzIGFkZGl0aW9uYWwgc3BhY2Ug dG8gcHV0IGJldHdlZW4gbGluZXMsIGluIHBpeGVscy4KCuKAmC1uYmPigJkK4oCYLS1uby1ibGlu a2luZy1jdXJzb3LigJkKICAgICBEaXNhYmxlIHRoZSBibGlua2luZyBjdXJzb3Igb24gZ3JhcGhp Y2FsIGRpc3BsYXlzLgoK4oCYLUTigJkK4oCYLS1iYXNpYy1kaXNwbGF54oCZCiAgICAgRGlzYWJs ZSB0aGUgbWVudS1iYXIsIHRoZSB0b29sLWJhciwgdGhlIHNjcm9sbC1iYXJzLCBhbmQgdG9vbCB0 aXBzLAogICAgIGFuZCB0dXJuIG9mZiB0aGUgYmxpbmtpbmcgY3Vyc29yLiAgVGhpcyBjYW4gYmUg dXNlZnVsIGZvciBtYWtpbmcgYQogICAgIHRlc3QgY2FzZSB0aGF0IHNpbXBsaWZpZXMgZGVidWdn aW5nIG9mIGRpc3BsYXkgcHJvYmxlbXMuCgogICBUaGUg4oCYLS14cm3igJkgb3B0aW9uICgqbm90 ZSBSZXNvdXJjZXM6Oikgc3BlY2lmaWVzIGFkZGl0aW9uYWwgWApyZXNvdXJjZSB2YWx1ZXMuCgoK KiogQXBwZW5kaXggRCBYIE9wdGlvbnMgYW5kIFJlc291cmNlcwoKWW91IGNhbiBjdXN0b21pemUg c29tZSBYLXJlbGF0ZWQgYXNwZWN0cyBvZiBFbWFjcyBiZWhhdmlvciB1c2luZyBYCnJlc291cmNl cywgYXMgaXMgdXN1YWwgZm9yIHByb2dyYW1zIHRoYXQgdXNlIFguCgogICBXaGVuIEVtYWNzIGlz IGNvbXBpbGVkIHdpdGggR1RLKyBzdXBwb3J0LCB0aGUgYXBwZWFyYW5jZSBvZiB2YXJpb3VzCmdy YXBoaWNhbCB3aWRnZXRzLCBzdWNoIGFzIHRoZSBtZW51LWJhciwgc2Nyb2xsLWJhciwgYW5kIGRp YWxvZyBib3hlcywKaXMgZGV0ZXJtaW5lZCBieSBHVEsrIHJlc291cmNlcywgd2hpY2ggd2Ugd2ls bCBhbHNvIGRlc2NyaWJlLiAgV2hlbgpFbWFjcyBpcyBidWlsdCB3aXRob3V0IEdUSysgc3VwcG9y dCwgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlc2Ugd2lkZ2V0cyBpcwpkZXRlcm1pbmVkIGJ5IGFkZGl0 aW9uYWwgWCByZXNvdXJjZXMuCgogICBPbiBNUy1XaW5kb3dzLCB5b3UgY2FuIGN1c3RvbWl6ZSBz b21lIG9mIHRoZSBzYW1lIGFzcGVjdHMgdXNpbmcgdGhlCnN5c3RlbSByZWdpc3RyeSAoKm5vdGUg TVMtV2luZG93cyBSZWdpc3RyeTo6KS4KCisgTWVudToKCiAgLSBSZXNvdXJjZXM6OiAgICAgICAg ICAgVXNpbmcgWCByZXNvdXJjZXMgd2l0aCBFbWFjcyAoaW4gZ2VuZXJhbCkuCiAgLSBUYWJsZSBv ZiBSZXNvdXJjZXM6OiAgVGFibGUgb2Ygc3BlY2lmaWMgWCByZXNvdXJjZXMgdGhhdCBhZmZlY3Qg RW1hY3MuCiAgLSBMdWNpZCBSZXNvdXJjZXM6OiAgICAgWCByZXNvdXJjZXMgZm9yIEx1Y2lkIG1l bnVzLgogIC0gTW90aWYgUmVzb3VyY2VzOjogICAgIFggcmVzb3VyY2VzIGZvciBNb3RpZiBhbmQg TGVzc1RpZiBtZW51cy4KICAtIEdUSyByZXNvdXJjZXM6OiAgICAgICBSZXNvdXJjZXMgZm9yIEdU Sysgd2lkZ2V0cy4KCgoqKiogRC4xIFggUmVzb3VyY2VzCgpQcm9ncmFtcyBydW5uaW5nIHVuZGVy IHRoZSBYIFdpbmRvdyBTeXN0ZW0gb3JnYW5pemUgdGhlaXIgdXNlciBvcHRpb25zCnVuZGVyIGEg aGllcmFyY2h5IG9mIGNsYXNzZXMgYW5kIHJlc291cmNlcy4gIFlvdSBjYW4gc3BlY2lmeSBkZWZh dWx0CnZhbHVlcyBmb3IgdGhlc2Ugb3B0aW9ucyBpbiB5b3VyICJYIHJlc291cmNlIGZpbGUiLCB1 c3VhbGx5IG5hbWVkCuKAmH4vLlhkZWZhdWx0c+KAmSBvciDigJh+Ly5YcmVzb3VyY2Vz4oCZLiAg Q2hhbmdlcyBpbiB0aGlzIGZpbGUgZG8gbm90IHRha2UKZWZmZWN0IGltbWVkaWF0ZWx5LCBiZWNh dXNlIHRoZSBYIHNlcnZlciBzdG9yZXMgaXRzIG93biBsaXN0IG9mCnJlc291cmNlczsgdG8gdXBk YXRlIGl0LCB1c2UgdGhlIGNvbW1hbmQg4oCYeHJkYuKAmeKAlGZvciBpbnN0YW5jZSwg4oCYeHJk Ygp+Ly5YZGVmYXVsdHPigJkuCgogICAoTVMtV2luZG93cyBzeXN0ZW1zIGRvIG5vdCBzdXBwb3J0 IFggcmVzb3VyY2UgZmlsZXM7IG9uIHN1Y2ggc3lzdGVtcywKRW1hY3MgbG9va3MgZm9yIFggcmVz b3VyY2VzIGluIHRoZSBXaW5kb3dzIFJlZ2lzdHJ5LCBmaXJzdCB1bmRlciB0aGUga2V5CuKAmEhL RVlfQ1VSUkVOVF9VU0VSXFNPRlRXQVJFXEdOVVxFbWFjc+KAmSwgd2hpY2ggYWZmZWN0cyBvbmx5 IHRoZSBjdXJyZW50CnVzZXIgYW5kIG92ZXJyaWRlIHRoZSBzeXN0ZW0td2lkZSBzZXR0aW5ncywg YW5kIHRoZW4gdW5kZXIgdGhlIGtleQrigJhIS0VZX0xPQ0FMX01BQ0hJTkVcU09GVFdBUkVcR05V XEVtYWNz4oCZLCB3aGljaCBhZmZlY3RzIGFsbCB1c2VycyBvZiB0aGUKc3lzdGVtLiAgVGhlIG1l bnUgYW5kIHNjcm9sbCBiYXJzIGFyZSBuYXRpdmUgd2lkZ2V0cyBvbiBNUy1XaW5kb3dzLCBzbwp0 aGV5IGFyZSBvbmx5IGN1c3RvbWl6YWJsZSB2aWEgdGhlIHN5c3RlbS13aWRlIHNldHRpbmdzIGlu IHRoZSBEaXNwbGF5CkNvbnRyb2wgUGFuZWwuICBZb3UgY2FuIGFsc28gc2V0IHJlc291cmNlcyB1 c2luZyB0aGUg4oCYLXhybeKAmSBjb21tYW5kIGxpbmUKb3B0aW9uLCBhcyBleHBsYWluZWQgYmVs b3cuKQoKICAgRWFjaCBsaW5lIGluIHRoZSBYIHJlc291cmNlIGZpbGUgc3BlY2lmaWVzIGEgdmFs dWUgZm9yIG9uZSBvcHRpb24gb3IKZm9yIGEgY29sbGVjdGlvbiBvZiByZWxhdGVkIG9wdGlvbnMu ICBUaGUgb3JkZXIgaW4gd2hpY2ggdGhlIGxpbmVzCmFwcGVhciBpbiB0aGUgZmlsZSBkb2VzIG5v dCBtYXR0ZXIuICBFYWNoIHJlc291cmNlIHNwZWNpZmljYXRpb24KY29uc2lzdHMgb2YgYSAicHJv Z3JhbSBuYW1lIiBhbmQgYSAicmVzb3VyY2UgbmFtZSIuICBDYXNlIGRpc3RpbmN0aW9ucwphcmUg c2lnbmlmaWNhbnQgaW4gZWFjaCBvZiB0aGVzZSBuYW1lcy4gIEhlcmUgaXMgYW4gZXhhbXBsZToK CiAgICAgZW1hY3MuY3Vyc29yQ29sb3I6IGRhcmsgZ3JlZW4KCiAgIFRoZSBwcm9ncmFtIG5hbWUg aXMgdGhlIG5hbWUgb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSB0byB3aGljaCB0aGUKcmVzb3VyY2Ug YXBwbGllcy4gIEZvciBFbWFjcywgdGhpcyBpcyBub3JtYWxseSDigJhlbWFjc+KAmS4gIFRvIHNw ZWNpZnkgYQpkZWZpbml0aW9uIHRoYXQgYXBwbGllcyB0byBhbGwgaW5zdGFuY2VzIG9mIEVtYWNz LCByZWdhcmRsZXNzIG9mIHRoZQpuYW1lIG9mIHRoZSBFbWFjcyBleGVjdXRhYmxlLCB1c2Ug4oCY RW1hY3PigJkuCgogICBUaGUgcmVzb3VyY2UgbmFtZSBpcyB0aGUgbmFtZSBvZiBhIHByb2dyYW0g c2V0dGluZy4gIEZvciBpbnN0YW5jZSwKRW1hY3MgcmVjb2duaXplcyBhIOKAmGN1cnNvckNvbG9y 4oCZIHJlc291cmNlIHRoYXQgY29udHJvbHMgdGhlIGNvbG9yIG9mIHRoZQp0ZXh0IGN1cnNvci4K CiAgIFJlc291cmNlcyBhcmUgZ3JvdXBlZCBpbnRvIG5hbWVkIGNsYXNzZXMuICBGb3IgaW5zdGFu Y2UsIHRoZQrigJhGb3JlZ3JvdW5k4oCZIGNsYXNzIGNvbnRhaW5zIHRoZSDigJhjdXJzb3JDb2xv cuKAmSwg4oCYZm9yZWdyb3VuZOKAmSBhbmQK4oCYcG9pbnRlckNvbG9y4oCZIHJlc291cmNlcyAo Km5vdGUgVGFibGUgb2YgUmVzb3VyY2VzOjopLiAgSW5zdGVhZCBvZiB1c2luZwphIHJlc291cmNl IG5hbWUsIHlvdSBjYW4gdXNlIGEgY2xhc3MgbmFtZSB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0IHZh bHVlCmZvciBhbGwgcmVzb3VyY2VzIGluIHRoYXQgY2xhc3MsIGxpa2UgdGhpczoKCiAgICAgZW1h Y3MuRm9yZWdyb3VuZDogZGFyayBncmVlbgoKICAgRW1hY3MgZG9lcyBub3QgcHJvY2VzcyBYIHJl c291cmNlcyBhdCBhbGwgaWYgeW91IHNldCB0aGUgdmFyaWFibGUK4oCYaW5oaWJpdC14LXJlc291 cmNlc+KAmSB0byBhIG5vbi3igJhuaWzigJkgdmFsdWUuICBJZiB5b3UgaW52b2tlIEVtYWNzIHdp dGgKdGhlIOKAmC1R4oCZIChvciDigJgtLXF1aWNr4oCZKSBjb21tYW5kLWxpbmUgb3B0aW9uLCDi gJhpbmhpYml0LXgtcmVzb3VyY2Vz4oCZIGlzCmF1dG9tYXRpY2FsbHkgc2V0IHRvIOKAmHTigJkg KCpub3RlIEluaXRpYWwgT3B0aW9uczo6KS4KCiAgIEluIGFkZGl0aW9uLCB5b3UgY2FuIHVzZSB0 aGUgZm9sbG93aW5nIGNvbW1hbmQtbGluZSBvcHRpb25zIHRvCm92ZXJyaWRlIHRoZSBYIHJlc291 cmNlcyBmaWxlOgoK4oCYLW5hbWUgTkFNReKAmQrigJgtLW5hbWU9TkFNReKAmQogICAgIFRoaXMg b3B0aW9uIHNldHMgdGhlIHByb2dyYW0gbmFtZSBvZiB0aGUgaW5pdGlhbCBFbWFjcyBmcmFtZSB0 bwogICAgIE5BTUUuICBJdCBhbHNvIHNldHMgdGhlIHRpdGxlIG9mIHRoZSBpbml0aWFsIGZyYW1l IHRvIE5BTUUuICBUaGlzCiAgICAgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCBzdWJzZXF1ZW50IGZy YW1lcy4KCiAgICAgSWYgeW91IGRvbuKAmXQgc3BlY2lmeSB0aGlzIG9wdGlvbiwgdGhlIGRlZmF1 bHQgaXMgdG8gdXNlIHRoZSBFbWFjcwogICAgIGV4ZWN1dGFibGXigJlzIG5hbWUgYXMgdGhlIHBy b2dyYW0gbmFtZS4KCiAgICAgRm9yIGNvbnNpc3RlbmN5LCDigJgtbmFtZeKAmSBhbHNvIHNwZWNp ZmllcyB0aGUgbmFtZSB0byB1c2UgZm9yIG90aGVyCiAgICAgcmVzb3VyY2UgdmFsdWVzIHRoYXQg ZG8gbm90IGJlbG9uZyB0byBhbnkgcGFydGljdWxhciBmcmFtZS4KCiAgICAgVGhlIHJlc291cmNl cyB0aGF0IG5hbWUgRW1hY3MgaW52b2NhdGlvbnMgYWxzbyBiZWxvbmcgdG8gYSBjbGFzcywKICAg ICBuYW1lZCDigJhFbWFjc+KAmS4gIElmIHlvdSB3cml0ZSDigJhFbWFjc+KAmSBpbnN0ZWFkIG9m IOKAmGVtYWNz4oCZLCB0aGUKICAgICByZXNvdXJjZSBhcHBsaWVzIHRvIGFsbCBmcmFtZXMgaW4g YWxsIEVtYWNzIGpvYnMsIHJlZ2FyZGxlc3Mgb2YKICAgICBmcmFtZSB0aXRsZXMgYW5kIHJlZ2Fy ZGxlc3Mgb2YgdGhlIG5hbWUgb2YgdGhlIGV4ZWN1dGFibGUgZmlsZS4KCuKAmC14cm0gUkVTT1VS Q0UtVkFMVUXigJkK4oCYLS14cm09UkVTT1VSQ0UtVkFMVUXigJkKICAgICBUaGlzIG9wdGlvbiBz cGVjaWZpZXMgWCByZXNvdXJjZSB2YWx1ZXMgZm9yIHRoZSBwcmVzZW50IEVtYWNzIGpvYi4KCiAg ICAgUkVTT1VSQ0UtVkFMVUUgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZm9ybWF0IHRoYXQgeW91IHdv dWxkIHVzZQogICAgIGluc2lkZSBhIGZpbGUgb2YgWCByZXNvdXJjZXMuICBTZXZlcmFsIOKAmC14 cm3igJkgb3B0aW9ucyBhcmUgcG9zc2libGUKICAgICB0byBpbmNsdWRlIG11bHRpcGxlIHJlc291 cmNlIHNwZWNpZmljYXRpb25zLiAgWW91IGNhbiBhbHNvIHVzZQogICAgIOKAmCNpbmNsdWRlICJG SUxFTkFNRSLigJkgYXMgUkVTT1VSQ0UtVkFMVUUgdG8gaW5jbHVkZSBhIGZpbGUgZnVsbCBvZgog ICAgIHJlc291cmNlIHNwZWNpZmljYXRpb25zLiAgUmVzb3VyY2UgdmFsdWVzIHNwZWNpZmllZCB3 aXRoIOKAmC14cm3igJkKICAgICB0YWtlIHByZWNlZGVuY2Ugb3ZlciBhbGwgb3RoZXIgcmVzb3Vy Y2Ugc3BlY2lmaWNhdGlvbnMuCgoKKioqIEQuMiBUYWJsZSBvZiBYIFJlc291cmNlcyBmb3IgRW1h Y3MKClRoZSB0YWJsZSBiZWxvdyBsaXN0cyB0aGUgWCByZXNvdXJjZSBuYW1lcyB0aGF0IEVtYWNz IHJlY29nbml6ZXMuICBOb3RlCnRoYXQgc29tZSBvZiB0aGUgcmVzb3VyY2VzIGhhdmUgbm8gZWZm ZWN0IGluIEVtYWNzIGNvbXBpbGVkIHdpdGggdmFyaW91cwpYIHRvb2xraXRzIChHVEsrLCBMdWNp ZCwgZXRjLinigJR3ZSBpbmRpY2F0ZSBiZWxvdyB3aGVuIHRoaXMgaXMgdGhlIGNhc2UuCgrigJhi YWNrZ3JvdW5k4oCZIChjbGFzcyDigJhCYWNrZ3JvdW5k4oCZKQogICAgIEJhY2tncm91bmQgY29s b3IgKCpub3RlIENvbG9yczo6KS4KCuKAmGJpdG1hcEljb27igJkgKGNsYXNzIOKAmEJpdG1hcElj b27igJkpCiAgICAgVGVsbCB0aGUgd2luZG93IG1hbmFnZXIgdG8gZGlzcGxheSB0aGUgRW1hY3Mg aWNvbiBpZiDigJhvbuKAmTsgZG9u4oCZdCBkbwogICAgIHNvIGlmIOKAmG9mZuKAmS4gICpOb3Rl IEljb25zIFg6OiwgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGljb24uCgrigJhib3JkZXJDb2xv cuKAmSAoY2xhc3Mg4oCYQm9yZGVyQ29sb3LigJkpCiAgICAgQ29sb3Igb2YgdGhlIGZyYW1l4oCZ cyBleHRlcm5hbCBib3JkZXIuICBUaGlzIGhhcyBubyBlZmZlY3QgaWYgRW1hY3MKICAgICBpcyBj b21waWxlZCB3aXRoIEdUSysgc3VwcG9ydC4KCuKAmGJvcmRlcldpZHRo4oCZIChjbGFzcyDigJhC b3JkZXJXaWR0aOKAmSkKICAgICBXaWR0aCBvZiB0aGUgZnJhbWXigJlzIGV4dGVybmFsIGJvcmRl ciwgaW4gcGl4ZWxzLiAgVGhpcyBoYXMgbm8KICAgICBlZmZlY3QgaWYgRW1hY3MgaXMgY29tcGls ZWQgd2l0aCBHVEsrIHN1cHBvcnQuCgrigJhjdXJzb3JCbGlua+KAmSAoY2xhc3Mg4oCYQ3Vyc29y QmxpbmvigJkpCiAgICAgSWYgdGhlIHZhbHVlIG9mIHRoaXMgcmVzb3VyY2UgaXMg4oCYb2Zm4oCZ IG9yIOKAmGZhbHNl4oCZIG9yIOKAmDDigJkgYXQKICAgICBzdGFydHVwLCBFbWFjcyBkaXNhYmxl cyBCbGluayBDdXJzb3IgbW9kZSAoKm5vdGUgQ3Vyc29yIERpc3BsYXk6OikuCgrigJhjdXJzb3JD b2xvcuKAmSAoY2xhc3Mg4oCYRm9yZWdyb3VuZOKAmSkKICAgICBUZXh0IGN1cnNvciBjb2xvci4g IElmIHRoaXMgcmVzb3VyY2UgaXMgc3BlY2lmaWVkIHdoZW4gRW1hY3Mgc3RhcnRzCiAgICAgdXAs IEVtYWNzIHNldHMgaXRzIHZhbHVlIGFzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSDigJhj dXJzb3LigJkKICAgICBmYWNlICgqbm90ZSBGYWNlczo6KS4KCuKAmGZvbnTigJkgKGNsYXNzIOKA mEZvbnTigJkpCiAgICAgRm9udCBuYW1lIGZvciB0aGUg4oCYZGVmYXVsdOKAmSBmYWNlICgqbm90 ZSBGb250czo6KS4gIFlvdSBjYW4gYWxzbwogICAgIHNwZWNpZnkgYSBmb250c2V0IG5hbWUgKCpu b3RlIEZvbnRzZXRzOjopLgoK4oCYZm9udEJhY2tlbmTigJkgKGNsYXNzIOKAmEZvbnRCYWNrZW5k 4oCZKQogICAgIENvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGJhY2tlbmQocykgdG8gdXNlIGZvciBk cmF3aW5nIGZvbnRzLCBpbgogICAgIG9yZGVyIG9mIHByZWNlZGVuY2UuICBGb3IgaW5zdGFuY2Us IHRoZSB2YWx1ZSDigJh4LHhmdOKAmSB0ZWxscyBFbWFjcwogICAgIHRvIGRyYXcgZm9udHMgdXNp bmcgdGhlIFggY29yZSBmb250IGRyaXZlciwgZmFsbGluZyBiYWNrIG9uIHRoZSBYZnQKICAgICBm b250IGRyaXZlciBpZiB0aGF0IGZhaWxzLiAgTm9ybWFsbHksIHlvdSBzaG91bGQgbGVhdmUgdGhp cwogICAgIHJlc291cmNlIHVuc2V0LCBpbiB3aGljaCBjYXNlIEVtYWNzIHRyaWVzIHVzaW5nIGFs bCBhdmFpbGFibGUgZm9udAogICAgIGJhY2tlbmRzLgoK4oCYZm9yZWdyb3VuZOKAmSAoY2xhc3Mg 4oCYRm9yZWdyb3VuZOKAmSkKICAgICBEZWZhdWx0IGZvcmVncm91bmQgY29sb3IgZm9yIHRleHQu CgrigJhmdWxsc2NyZWVu4oCZIChjbGFzcyDigJhGdWxsc2NyZWVu4oCZKQogICAgIFRoZSBkZXNp cmVkIGZ1bGxzY3JlZW4gc2l6ZS4gIFRoZSB2YWx1ZSBjYW4gYmUgb25lIG9mIOKAmGZ1bGxib3Ro 4oCZLAogICAgIOKAmG1heGltaXplZOKAmSwg4oCYZnVsbHdpZHRo4oCZIG9yIOKAmGZ1bGxoZWln aHTigJksIHdoaWNoIGNvcnJlc3BvbmQgdG8gdGhlCiAgICAgY29tbWFuZC1saW5lIG9wdGlvbnMg 4oCYLWZz4oCZLCDigJgtbW3igJksIOKAmC1md+KAmSwgYW5kIOKAmC1maOKAmSAoKm5vdGUgV2lu ZG93CiAgICAgU2l6ZSBYOjopLiAgTm90ZSB0aGF0IHRoaXMgYXBwbGllcyB0byB0aGUgaW5pdGlh bCBmcmFtZSBvbmx5LgoK4oCYZ2VvbWV0cnnigJkgKGNsYXNzIOKAmEdlb21ldHJ54oCZKQogICAg IFdpbmRvdyBzaXplIGFuZCBwb3NpdGlvbi4gIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBzaXplIGFu ZCBwb3NpdGlvbgogICAgIHNwZWNpZmljYXRpb24sIG9mIHRoZSBzYW1lIGZvcm0gYXMgaW4gdGhl IOKAmC1n4oCZIG9yIOKAmC0tZ2VvbWV0cnnigJkKICAgICBjb21tYW5kLWxpbmUgb3B0aW9uICgq bm90ZSBXaW5kb3cgU2l6ZSBYOjopLgoKICAgICBUaGUgc2l6ZSBhcHBsaWVzIHRvIGFsbCBmcmFt ZXMgaW4gdGhlIEVtYWNzIHNlc3Npb24sIGJ1dCB0aGUKICAgICBwb3NpdGlvbiBhcHBsaWVzIG9u bHkgdG8gdGhlIGluaXRpYWwgRW1hY3MgZnJhbWUgKG9yLCBpbiB0aGUgY2FzZQogICAgIG9mIGEg cmVzb3VyY2UgZm9yIGEgc3BlY2lmaWMgZnJhbWUgbmFtZSwgb25seSB0aGF0IGZyYW1lKS4KCiAg ICAgQmUgY2FyZWZ1bCBub3QgdG8gc3BlY2lmeSB0aGlzIHJlc291cmNlIGFzIOKAmGVtYWNzKmdl b21ldHJ54oCZLCBhcwogICAgIHRoYXQgbWF5IGFmZmVjdCBpbmRpdmlkdWFsIG1lbnVzIGFzIHdl bGwgYXMgdGhlIG1haW4gRW1hY3MgZnJhbWUuCgrigJhob3Jpem9udGFsU2Nyb2xsQmFyc+KAmSAo Y2xhc3Mg4oCYU2Nyb2xsQmFyc+KAmSkKICAgICBJZiB0aGUgdmFsdWUgb2YgdGhpcyByZXNvdXJj ZSBpcyDigJhvZmbigJkgb3Ig4oCYZmFsc2XigJkgb3Ig4oCYMOKAmSwgRW1hY3MKICAgICBkaXNh YmxlcyBIb3Jpem9udGFsIFNjcm9sbCBCYXIgbW9kZSBhdCBzdGFydHVwICgqbm90ZSBTY3JvbGwK ICAgICBCYXJzOjopLgoK4oCYaWNvbk5hbWXigJkgKGNsYXNzIOKAmFRpdGxl4oCZKQogICAgIE5h bWUgdG8gZGlzcGxheSBpbiB0aGUgaWNvbi4KCuKAmGludGVybmFsQm9yZGVy4oCZIChjbGFzcyDi gJhCb3JkZXJXaWR0aOKAmSkKICAgICBXaWR0aCBvZiB0aGUgaW50ZXJuYWwgZnJhbWUgYm9yZGVy LCBpbiBwaXhlbHMuCgrigJhsaW5lU3BhY2luZ+KAmSAoY2xhc3Mg4oCYTGluZVNwYWNpbmfigJkp CiAgICAgQWRkaXRpb25hbCBzcGFjZSBiZXR3ZWVuIGxpbmVzLCBpbiBwaXhlbHMuCgrigJhtZW51 QmFja2dyb3VuZOKAmSAoY2xhc3Mg4oCYQmFja2dyb3VuZOKAmSkKICAgICBUaGUgYmFja2dyb3Vu ZCBjb2xvciBvZiB0aGUgbWVudXMgaW4gbm9uLXRvb2xraXQgdmVyc2lvbnMgb2YgRW1hY3MuCiAg ICAgKEZvciB0b29sa2l0IHZlcnNpb25zLCBzZWUgKm5vdGUgTHVjaWQgUmVzb3VyY2VzOjosIGFs c28gc2VlICpub3RlCiAgICAgTW90aWYgUmVzb3VyY2VzOjosIGFuZCBzZWUgKm5vdGUgR1RLIHJl c291cmNlczo6LikKCuKAmG1lbnVCYXLigJkgKGNsYXNzIOKAmE1lbnVCYXLigJkpCiAgICAgSWYg dGhlIHZhbHVlIG9mIHRoaXMgcmVzb3VyY2UgaXMg4oCYb2Zm4oCZIG9yIOKAmGZhbHNl4oCZIG9y IOKAmDDigJksIEVtYWNzCiAgICAgZGlzYWJsZXMgTWVudSBCYXIgbW9kZSBhdCBzdGFydHVwICgq bm90ZSBNZW51IEJhcnM6OikuCgrigJhtaW5pYnVmZmVy4oCZIChjbGFzcyDigJhNaW5pYnVmZmVy 4oCZKQogICAgIElmIOKAmG5vbmXigJksIEVtYWNzIHdpbGwgbm90IG1ha2UgYSBtaW5pYnVmZmVy IGluIHRoaXMgZnJhbWU7IGl0IHdpbGwKICAgICB1c2UgYSBzZXBhcmF0ZSBtaW5pYnVmZmVyIGZy YW1lIGluc3RlYWQuCgrigJhwYW5lRm9udOKAmSAoY2xhc3Mg4oCYRm9udOKAmSkKICAgICBGb250 IG5hbWUgZm9yIG1lbnUgcGFuZSB0aXRsZXMsIGluIG5vbi10b29sa2l0IHZlcnNpb25zIG9mIEVt YWNzLgogICAgIChGb3IgdG9vbGtpdCB2ZXJzaW9ucywgc2VlICpub3RlIEx1Y2lkIFJlc291cmNl czo6LCBhbHNvIHNlZSAqbm90ZQogICAgIE1vdGlmIFJlc291cmNlczo6LCBhbmQgc2VlICpub3Rl IEdUSyByZXNvdXJjZXM6Oi4pCgrigJhwYW5lRm9yZWdyb3VuZOKAmSAoY2xhc3Mg4oCYRm9yZWdy b3VuZOKAmSkKICAgICBGb3JlZ3JvdW5kIGNvbG9yIGZvciBtZW51IHBhbmUgdGl0bGVzLCBpbiBu b24tdG9vbGtpdCB2ZXJzaW9ucyBvZgogICAgIEVtYWNzLiAgKEZvciB0b29sa2l0IHZlcnNpb25z LCBzZWUgKm5vdGUgTHVjaWQgUmVzb3VyY2VzOjosIGFsc28KICAgICBzZWUgKm5vdGUgTW90aWYg UmVzb3VyY2VzOjosIGFuZCBzZWUgKm5vdGUgR1RLIHJlc291cmNlczo6LikKCuKAmHBvaW50ZXJD b2xvcuKAmSAoY2xhc3Mg4oCYRm9yZWdyb3VuZOKAmSkKICAgICBDb2xvciBvZiB0aGUgbW91c2Ug Y3Vyc29yLiAgVGhpcyBoYXMgbm8gZWZmZWN0IGluIG1hbnkgZ3JhcGhpY2FsCiAgICAgZGVza3Rv cCBlbnZpcm9ubWVudHMsIGFzIHRoZXkgZG8gbm90IGxldCBFbWFjcyBjaGFuZ2UgdGhlIG1vdXNl CiAgICAgY3Vyc29yIHRoaXMgd2F5LgoK4oCYcHJpdmF0ZUNvbG9ybWFw4oCZIChjbGFzcyDigJhQ cml2YXRlQ29sb3JtYXDigJkpCiAgICAgSWYg4oCYb27igJksIHVzZSBhIHByaXZhdGUgY29sb3Ig bWFwLCBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgZGVmYXVsdAogICAgIHZpc3VhbCBvZiBjbGFzcyBQ c2V1ZG9Db2xvciBhbmQgRW1hY3MgaXMgdXNpbmcgaXQuCgrigJhyZXZlcnNlVmlkZW/igJkgKGNs YXNzIOKAmFJldmVyc2VWaWRlb+KAmSkKICAgICBTd2l0Y2ggZm9yZWdyb3VuZCBhbmQgYmFja2dy b3VuZCBkZWZhdWx0IGNvbG9ycyBpZiDigJhvbuKAmSwgdXNlIGNvbG9ycwogICAgIGFzIHNwZWNp ZmllZCBpZiDigJhvZmbigJkuCgrigJhzY3JlZW5HYW1tYeKAmSAoY2xhc3Mg4oCYU2NyZWVuR2Ft bWHigJkpCiAgICAgR2FtbWEgY29ycmVjdGlvbiBmb3IgY29sb3JzLCBlcXVpdmFsZW50IHRvIHRo ZSBmcmFtZSBwYXJhbWV0ZXIKICAgICDigJhzY3JlZW4tZ2FtbWHigJkuCgrigJhzY3JvbGxCYXLi gJkgKGNsYXNzIOKAmFNjcm9sbEJhcuKAmSkKICAgICBJZiB0aGUgdmFsdWUgb2YgdGhpcyByZXNv dXJjZSBpcyDigJhvZmbigJkgb3Ig4oCYZmFsc2XigJkgb3Ig4oCYMOKAmSwgRW1hY3MKICAgICBk aXNhYmxlcyBTY3JvbGwgQmFyIG1vZGUgYXQgc3RhcnR1cCAoKm5vdGUgU2Nyb2xsIEJhcnM6Oiku CgrigJhzY3JvbGxCYXJXaWR0aOKAmSAoY2xhc3Mg4oCYU2Nyb2xsQmFyV2lkdGjigJkpCiAgICAg VGhlIHNjcm9sbCBiYXIgd2lkdGggaW4gcGl4ZWxzLCBlcXVpdmFsZW50IHRvIHRoZSBmcmFtZSBw YXJhbWV0ZXIKICAgICDigJhzY3JvbGwtYmFyLXdpZHRo4oCZLiAgRG8gbm90IHNldCB0aGlzIHJl c291cmNlIGlmIEVtYWNzIGlzIGNvbXBpbGVkCiAgICAgd2l0aCBHVEsrIHN1cHBvcnQuCgrigJhz ZWxlY3Rpb25Gb2504oCZIChjbGFzcyDigJhTZWxlY3Rpb25Gb2504oCZKQogICAgIEZvbnQgbmFt ZSBmb3IgcG9wLXVwIG1lbnUgaXRlbXMsIGluIG5vbi10b29sa2l0IHZlcnNpb25zIG9mIEVtYWNz LgogICAgIChGb3IgdG9vbGtpdCB2ZXJzaW9ucywgc2VlICpub3RlIEx1Y2lkIFJlc291cmNlczo6 LCBhbHNvIHNlZSAqbm90ZQogICAgIE1vdGlmIFJlc291cmNlczo6LCBhbmQgc2VlICpub3RlIEdU SyByZXNvdXJjZXM6Oi4pCgrigJhzZWxlY3Rpb25Gb3JlZ3JvdW5k4oCZIChjbGFzcyDigJhTZWxl Y3Rpb25Gb3JlZ3JvdW5k4oCZKQogICAgIEZvcmVncm91bmQgY29sb3IgZm9yIHBvcC11cCBtZW51 IGl0ZW1zLCBpbiBub24tdG9vbGtpdCB2ZXJzaW9ucyBvZgogICAgIEVtYWNzLiAgKEZvciB0b29s a2l0IHZlcnNpb25zLCBzZWUgKm5vdGUgTHVjaWQgUmVzb3VyY2VzOjosIGFsc28KICAgICBzZWUg Km5vdGUgTW90aWYgUmVzb3VyY2VzOjosIGFuZCBzZWUgKm5vdGUgR1RLIHJlc291cmNlczo6LikK CuKAmHNlbGVjdGlvblRpbWVvdXTigJkgKGNsYXNzIOKAmFNlbGVjdGlvblRpbWVvdXTigJkpCiAg ICAgTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IGZvciBhIHNlbGVjdGlvbiByZXBseS4g IElmIHRoZQogICAgIHNlbGVjdGlvbiBvd25lciBkb2VzbuKAmXQgcmVwbHkgaW4gdGhpcyB0aW1l LCB3ZSBnaXZlIHVwLiAgQSB2YWx1ZSBvZgogICAgIDAgbWVhbnMgd2FpdCBhcyBsb25nIGFzIG5l Y2Vzc2FyeS4KCuKAmHN5bmNocm9ub3Vz4oCZIChjbGFzcyDigJhTeW5jaHJvbm91c+KAmSkKICAg ICBSdW4gRW1hY3MgaW4gc3luY2hyb25vdXMgbW9kZSBpZiDigJhvbuKAmS4gIFN5bmNocm9ub3Vz IG1vZGUgaXMgdXNlZnVsCiAgICAgZm9yIGRlYnVnZ2luZyBYIHByb2JsZW1zLgoK4oCYdGl0bGXi gJkgKGNsYXNzIOKAmFRpdGxl4oCZKQogICAgIE5hbWUgdG8gZGlzcGxheSBpbiB0aGUgdGl0bGUg YmFyIG9mIHRoZSBpbml0aWFsIEVtYWNzIGZyYW1lLgoK4oCYdG9vbEJhcuKAmSAoY2xhc3Mg4oCY VG9vbEJhcuKAmSkKICAgICBJZiB0aGUgdmFsdWUgb2YgdGhpcyByZXNvdXJjZSBpcyDigJhvZmbi gJkgb3Ig4oCYZmFsc2XigJkgb3Ig4oCYMOKAmSwgRW1hY3MKICAgICBkaXNhYmxlcyBUb29sIEJh ciBtb2RlIGF0IHN0YXJ0dXAgKCpub3RlIFRvb2wgQmFyczo6KS4KCuKAmHVzZVhJTeKAmSAoY2xh c3Mg4oCYVXNlWElN4oCZKQogICAgIERpc2FibGUgdXNlIG9mIFggaW5wdXQgbWV0aG9kcyAoWElN KSBpZiDigJhmYWxzZeKAmSBvciDigJhvZmbigJkuICBUaGlzIGlzCiAgICAgb25seSByZWxldmFu dCBpZiB5b3VyIEVtYWNzIGlzIGJ1aWx0IHdpdGggWElNIHN1cHBvcnQuICBJdCBtaWdodCBiZQog ICAgIHVzZWZ1bCB0byB0dXJuIG9mZiBYSU0gb24gc2xvdyBYIGNsaWVudC9zZXJ2ZXIgbGlua3Mu CgrigJh2ZXJ0aWNhbFNjcm9sbEJhcnPigJkgKGNsYXNzIOKAmFNjcm9sbEJhcnPigJkpCiAgICAg R2l2ZSBmcmFtZXMgc2Nyb2xsIGJhcnMgb24gdGhlIGxlZnQgaWYg4oCYbGVmdOKAmSwgb24gdGhl IHJpZ2h0IGlmCiAgICAg4oCYcmlnaHTigJk7IGRvbuKAmXQgaGF2ZSBzY3JvbGwgYmFycyBpZiDi gJhvZmbigJkgKCpub3RlIFNjcm9sbCBCYXJzOjopLgoK4oCYdmlzdWFsQ2xhc3PigJkgKGNsYXNz IOKAmFZpc3VhbENsYXNz4oCZKQogICAgIFRoZSAidmlzdWFsIGNsYXNzIiBmb3IgWCBjb2xvciBk aXNwbGF5LiAgSWYgc3BlY2lmaWVkLCB0aGUgdmFsdWUKICAgICBzaG91bGQgc3RhcnQgd2l0aCBv bmUgb2Yg4oCYVHJ1ZUNvbG9y4oCZLCDigJhQc2V1ZG9Db2xvcuKAmSwg4oCYRGlyZWN0Q29sb3Li gJksCiAgICAg4oCYU3RhdGljQ29sb3LigJksIOKAmEdyYXlTY2FsZeKAmSwgYW5kIOKAmFN0YXRp Y0dyYXnigJksIGZvbGxvd2VkIGJ5IOKAmC1ERVBUSOKAmSwKICAgICB3aGVyZSBERVBUSCBpcyB0 aGUgbnVtYmVyIG9mIGNvbG9yIHBsYW5lcy4KCiAgIFlvdSBjYW4gYWxzbyB1c2UgWCByZXNvdXJj ZXMgdG8gY3VzdG9taXplIGluZGl2aWR1YWwgRW1hY3MgZmFjZXMKKCpub3RlIEZhY2VzOjopLiAg Rm9yIGV4YW1wbGUsIHNldHRpbmcgdGhlIHJlc291cmNlCuKAmEZBQ0UuYXR0cmlidXRlRm9yZWdy b3VuZOKAmSBpcyBlcXVpdmFsZW50IHRvIGN1c3RvbWl6aW5nIHRoZSDigJhmb3JlZ3JvdW5k4oCZ CmF0dHJpYnV0ZSBvZiB0aGUgZmFjZSBGQUNFLiAgSG93ZXZlciwgd2UgcmVjb21tZW5kIGN1c3Rv bWl6aW5nIGZhY2VzCmZyb20gd2l0aGluIEVtYWNzLCBpbnN0ZWFkIG9mIHVzaW5nIFggcmVzb3Vy Y2VzLiAgKk5vdGUgRmFjZQpDdXN0b21pemF0aW9uOjouCgoKKioqIEQuMyBMdWNpZCBNZW51IEFu ZCBEaWFsb2cgWCBSZXNvdXJjZXMKCklmIEVtYWNzIGlzIGNvbXBpbGVkIHdpdGggdGhlIFggdG9v bGtpdCBzdXBwb3J0IHVzaW5nIEx1Y2lkIHdpZGdldHMsIHlvdQpjYW4gdXNlIFggcmVzb3VyY2Vz IHRvIGN1c3RvbWl6ZSB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgbWVudSBiYXIgKCpub3RlCk1lbnUg QmFyOjopLCBwb3AtdXAgbWVudXMsIGFuZCBkaWFsb2cgYm94ZXMgKCpub3RlIERpYWxvZyBCb3hl czo6KS4gIFRoZQpyZXNvdXJjZXMgZm9yIHRoZSBtZW51IGJhciBmYWxsIGluIHRoZSDigJhwYW5l Lm1lbnViYXLigJkgY2xhc3MgKGZvbGxvd2luZywKYXMgYWx3YXlzLCBlaXRoZXIgdGhlIG5hbWUg b2YgdGhlIEVtYWNzIGV4ZWN1dGFibGUgb3Ig4oCYRW1hY3PigJkgZm9yIGFsbApFbWFjcyBpbnZv Y2F0aW9ucykuICBUaGUgcmVzb3VyY2VzIGZvciB0aGUgcG9wLXVwIG1lbnUgYXJlIGluIHRoZQri gJhtZW51KuKAmSBjbGFzcy4gIFRoZSByZXNvdXJjZXMgZm9yIGRpYWxvZyBib3hlcyBhcmUgaW4g dGhlIOKAmGRpYWxvZyrigJkKY2xhc3MuCgogICBGb3IgZXhhbXBsZSwgdG8gZGlzcGxheSBtZW51 IGJhciBlbnRyaWVzIHdpdGggdGhlIOKAmENvdXJpZXItMTLigJkgZm9udAooKm5vdGUgRm9udHM6 OiksIHdyaXRlIHRoaXM6CgogICAgIEVtYWNzLnBhbmUubWVudWJhci5mb250OiBDb3VyaWVyLTEy CgpMdWNpZCB3aWRnZXRzIGNhbiBkaXNwbGF5IG11bHRpbGluZ3VhbCB0ZXh0IGluIHlvdXIgbG9j YWxlLiAgVG8gZW5hYmxlCnRoaXMsIHNwZWNpZnkgYSDigJhmb250U2V04oCZIHJlc291cmNlIGlu c3RlYWQgb2YgYSDigJhmb2504oCZIHJlc291cmNlLiAgKk5vdGUKRm9udHNldHM6Oi4gIElmIGJv dGgg4oCYZm9udOKAmSBhbmQg4oCYZm9udFNldOKAmSByZXNvdXJjZXMgYXJlIHNwZWNpZmllZCwg dGhlCuKAmGZvbnRTZXTigJkgcmVzb3VyY2UgaXMgdXNlZC4KCiAgIEhlcmUgaXMgYSBsaXN0IG9m IHJlc291cmNlcyBmb3IgbWVudSBiYXJzLCBwb3AtdXAgbWVudXMsIGFuZCBkaWFsb2dzOgoK4oCY Zm9udOKAmQogICAgIEZvbnQgZm9yIG1lbnUgaXRlbSB0ZXh0LgrigJhmb250U2V04oCZCiAgICAg Rm9udHNldCBmb3IgbWVudSBpdGVtIHRleHQuCuKAmGJhY2tncm91bmTigJkKICAgICBCYWNrZ3Jv dW5kIGNvbG9yLgrigJhidXR0b25Gb3JlZ3JvdW5k4oCZCiAgICAgRm9yZWdyb3VuZCBjb2xvciBm b3IgYSBzZWxlY3RlZCBpdGVtLgrigJhmb3JlZ3JvdW5k4oCZCiAgICAgRm9yZWdyb3VuZCBjb2xv ci4K4oCYaG9yaXpvbnRhbFNwYWNpbmfigJkKICAgICBIb3Jpem9udGFsIHNwYWNpbmcgaW4gcGl4 ZWxzIGJldHdlZW4gaXRlbXMuICBEZWZhdWx0IGlzIDMuCuKAmHZlcnRpY2FsU3BhY2luZ+KAmQog ICAgIFZlcnRpY2FsIHNwYWNpbmcgaW4gcGl4ZWxzIGJldHdlZW4gaXRlbXMuICBEZWZhdWx0IGlz IDIuCuKAmGFycm93U3BhY2luZ+KAmQogICAgIEhvcml6b250YWwgc3BhY2luZyBiZXR3ZWVuIHRo ZSBhcnJvdyAod2hpY2ggaW5kaWNhdGVzIGEgc3VibWVudSkKICAgICBhbmQgdGhlIGFzc29jaWF0 ZWQgdGV4dC4gIERlZmF1bHQgaXMgMTAuCuKAmHNoYWRvd1RoaWNrbmVzc+KAmQogICAgIFRoaWNr bmVzcyBvZiBzaGFkb3cgbGluZXMgZm9yIDNEIGJ1dHRvbnMsIGFycm93cywgYW5kIG90aGVyCiAg ICAgZ3JhcGhpY2FsIGVsZW1lbnRzLiAgRGVmYXVsdCBpcyAxLgrigJhtYXJnaW7igJkKICAgICBN YXJnaW4gb2YgdGhlIG1lbnUgYmFyLCBpbiBjaGFyYWN0ZXJzLiAgRGVmYXVsdCBpcyAxLgoKCioq KiBELjQgTW90aWYgTWVudSBYIFJlc291cmNlcwoKSWYgRW1hY3MgaXMgY29tcGlsZWQgd2l0aCB0 aGUgWCB0b29sa2l0IHN1cHBvcnQgdXNpbmcgTW90aWYgb3IgTGVzc1RpZgp3aWRnZXRzLCB5b3Ug Y2FuIHVzZSBYIHJlc291cmNlcyB0byBjdXN0b21pemUgdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIG1l bnUKYmFyICgqbm90ZSBNZW51IEJhcjo6KSwgcG9wLXVwIG1lbnVzLCBhbmQgZGlhbG9nIGJveGVz ICgqbm90ZSBEaWFsb2cKQm94ZXM6OikuICBIb3dldmVyLCB0aGUgcmVzb3VyY2VzIGFyZSBvcmdh bml6ZWQgZGlmZmVyZW50bHkgZnJvbSBMdWNpZAp3aWRnZXRzLgoKICAgVGhlIHJlc291cmNlIG5h bWVzIGZvciB0aGUgbWVudSBiYXIgYXJlIGluIHRoZSDigJhwYW5lLm1lbnViYXLigJkgY2xhc3Ms CmFuZCB0aGV5IG11c3QgYmUgc3BlY2lmaWVkIGluIHRoaXMgZm9ybToKCiAgICAgRW1hY3MucGFu ZS5tZW51YmFyLlNVQldJREdFVC5SRVNPVVJDRTogVkFMVUUKCkZvciBwb3AtdXAgbWVudXMsIHRo ZSByZXNvdXJjZXMgYXJlIGluIHRoZSDigJhtZW51KuKAmSBjbGFzcywgaW5zdGVhZCBvZgrigJhw YW5lLm1lbnViYXLigJkuICBGb3IgZGlhbG9nIGJveGVzLCB0aGV5IGFyZSBpbiDigJhkaWFsb2fi gJkuICBJbiBlYWNoIGNhc2UsCmVhY2ggaW5kaXZpZHVhbCBtZW51IHN0cmluZyBpcyBhIHN1Yndp ZGdldDsgdGhlIHN1YndpZGdldOKAmXMgbmFtZSBpcyB0aGUKc2FtZSBhcyB0aGUgbWVudSBpdGVt IHN0cmluZy4gIEZvciBleGFtcGxlLCB0aGUg4oCYRmlsZeKAmSBtZW51IGluIHRoZSBtZW51CmJh ciBpcyBhIHN1YndpZGdldCBuYW1lZCDigJhlbWFjcy5wYW5lLm1lbnViYXIuRmlsZeKAmS4KCiAg IFR5cGljYWxseSwgeW91IHdhbnQgdG8gc3BlY2lmeSB0aGUgc2FtZSByZXNvdXJjZXMgZm9yIHRo ZSB3aG9sZSBtZW51CmJhci4gIFRvIGRvIHRoaXMsIHVzZSDigJgq4oCZIGluc3RlYWQgb2YgYSBz cGVjaWZpYyBzdWJ3aWRnZXQgbmFtZS4gIEZvcgpleGFtcGxlLCB0byBzcGVjaWZ5IHRoZSBmb250 IOKAmDh4MTbigJkgZm9yIGFsbCBtZW51IGJhciBpdGVtcywgaW5jbHVkaW5nCnN1Ym1lbnVzLCB3 cml0ZSB0aGlzOgoKICAgICBFbWFjcy5wYW5lLm1lbnViYXIuKi5mb250TGlzdDogOHgxNgoKICAg RWFjaCBpdGVtIGluIGEgc3VibWVudSBhbHNvIGhhcyBpdHMgb3duIG5hbWUgZm9yIFggcmVzb3Vy Y2VzOyBmb3IKZXhhbXBsZSwgdGhlIOKAmEZpbGXigJkgc3VibWVudSBoYXMgYW4gaXRlbSBuYW1l ZCDigJhTYXZlIChjdXJyZW50IGJ1ZmZlcinigJkuCkEgcmVzb3VyY2Ugc3BlY2lmaWNhdGlvbiBm b3IgYSBzdWJtZW51IGl0ZW0gbG9va3MgbGlrZSB0aGlzOgoKICAgICBFbWFjcy5wYW5lLm1lbnVi YXIucG9wdXBfKi5NRU5VLklURU0uUkVTT1VSQ0U6IFZBTFVFCgpGb3IgZXhhbXBsZSwgaGVyZeKA mXMgaG93IHRvIHNwZWNpZnkgdGhlIGZvbnQgZm9yIHRoZSDigJhTYXZlIChjdXJyZW50CmJ1ZmZl cinigJkgaXRlbToKCiAgICAgRW1hY3MucGFuZS5tZW51YmFyLnBvcHVwXyouRmlsZS5TYXZlIChj dXJyZW50IGJ1ZmZlcikuZm9udExpc3Q6IDh4MTYKCkZvciBhbiBpdGVtIGluIGEgc2Vjb25kLWxl dmVsIHN1Ym1lbnUsIHN1Y2ggYXMg4oCYQ29tcGxldGUgV29yZOKAmSB1bmRlcgrigJhTcGVsbCBD aGVja2luZ+KAmSB1bmRlciDigJhUb29sc+KAmSwgdGhlIHJlc291cmNlIGZpdHMgdGhpcyB0ZW1w bGF0ZToKCiAgICAgRW1hY3MucGFuZS5tZW51YmFyLnBvcHVwXyoucG9wdXBfKi5NRU5VLlJFU09V UkNFOiBWQUxVRQoKRm9yIGV4YW1wbGUsCgogICAgIEVtYWNzLnBhbmUubWVudWJhci5wb3B1cF8q LnBvcHVwXyouU3BlbGwgQ2hlY2tpbmcuQ29tcGxldGUgV29yZDogVkFMVUUKCihUaGlzIHNob3Vs ZCBiZSBvbmUgbG9uZyBsaW5lLikKCiAgIElmIHlvdSB3YW50IHRoZSBzdWJtZW51IGl0ZW1zIHRv IGxvb2sgZGlmZmVyZW50IGZyb20gdGhlIG1lbnUgYmFyCml0c2VsZiwgeW91IG11c3QgZmlyc3Qg c3BlY2lmeSB0aGUgcmVzb3VyY2UgZm9yIGFsbCBvZiB0aGVtLCB0aGVuCm92ZXJyaWRlIHRoZSB2 YWx1ZSBmb3Igc3VibWVudXMgYWxvbmUuICBIZXJlIGlzIGFuIGV4YW1wbGU6CgogICAgIEVtYWNz LnBhbmUubWVudWJhci4qLmZvbnRMaXN0OiA5eDE4CiAgICAgRW1hY3MucGFuZS5tZW51YmFyLnBv cHVwXyouZm9udExpc3Q6IDh4MTYKCiAgIFRvIHNwZWNpZnkgcmVzb3VyY2VzIGZvciB0aGUgTGVz c1RpZiBmaWxlLXNlbGVjdGlvbiBib3gsIHVzZSDigJhmc2Iq4oCZLApsaWtlIHRoaXM6CgogICAg IEVtYWNzLmZzYiouZm9udExpc3Q6IDh4MTYKCiAgIEhlcmUgaXMgYSBsaXN0IG9mIHJlc291cmNl cyBmb3IgTGVzc1RpZiBtZW51IGJhcnMgYW5kIHBvcC11cCBtZW51czoKCuKAmGFybUNvbG9y4oCZ CiAgICAgVGhlIGNvbG9yIHRvIHNob3cgaW4gYW4gYXJtZWQgYnV0dG9uLgrigJhmb250TGlzdOKA mQogICAgIFRoZSBmb250IHRvIHVzZS4K4oCYbWFyZ2luQm90dG9t4oCZCuKAmG1hcmdpbkhlaWdo dOKAmQrigJhtYXJnaW5MZWZ04oCZCuKAmG1hcmdpblJpZ2h04oCZCuKAmG1hcmdpblRvcOKAmQri gJhtYXJnaW5XaWR0aOKAmQogICAgIEFtb3VudCBvZiBzcGFjZSB0byBsZWF2ZSBhcm91bmQgdGhl IGl0ZW0sIHdpdGhpbiB0aGUgYm9yZGVyLgrigJhib3JkZXJXaWR0aOKAmQogICAgIFRoZSB3aWR0 aCBvZiB0aGUgYm9yZGVyIGFyb3VuZCB0aGUgbWVudSBpdGVtLCBvbiBhbGwgc2lkZXMuCuKAmHNo YWRvd1RoaWNrbmVzc+KAmQogICAgIFRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyIHNoYWRvdy4K4oCY Ym90dG9tU2hhZG93Q29sb3LigJkKICAgICBUaGUgY29sb3IgZm9yIHRoZSBib3JkZXIgc2hhZG93 LCBvbiB0aGUgYm90dG9tIGFuZCB0aGUgcmlnaHQuCuKAmHRvcFNoYWRvd0NvbG9y4oCZCiAgICAg VGhlIGNvbG9yIGZvciB0aGUgYm9yZGVyIHNoYWRvdywgb24gdGhlIHRvcCBhbmQgdGhlIGxlZnQu CgoKKioqIEQuNSBHVEsrIHJlc291cmNlcwoKSWYgRW1hY3MgaXMgY29tcGlsZWQgd2l0aCBHVEsr IHRvb2xraXQgc3VwcG9ydCwgdGhlIHNpbXBsZXN0IHdheSB0bwpjdXN0b21pemUgaXRzIEdUSysg d2lkZ2V0cyAoZS5nLiwgbWVudXMsIGRpYWxvZ3MsIHRvb2wgYmFycyBhbmQgc2Nyb2xsCmJhcnMp IGlzIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBHVEsrIHRoZW1lLCBmb3IgZXhhbXBsZSB3aXRo IHRoZSBHTk9NRQp0aGVtZSBzZWxlY3Rvci4KCiAgIEluIEdUSysgdmVyc2lvbiAyLCB5b3UgY2Fu IGFsc28gdXNlICJHVEsrIHJlc291cmNlcyIgdG8gY3VzdG9taXplIHRoZQphcHBlYXJhbmNlIG9m IEdUSysgd2lkZ2V0cyB1c2VkIGJ5IEVtYWNzLiAgVGhlc2UgcmVzb3VyY2VzIGFyZSBzcGVjaWZp ZWQKaW4gZWl0aGVyIHRoZSBmaWxlIOKAmH4vLmVtYWNzLmQvZ3RrcmPigJkgKGZvciBFbWFjcy1z cGVjaWZpYyBHVEsrCnJlc291cmNlcyksIG9yIOKAmH4vLmd0a3JjLTIuMOKAmSAoZm9yIGdlbmVy YWwgR1RLKyByZXNvdXJjZXMpLiAgV2UKcmVjb21tZW5kIHVzaW5nIOKAmH4vLmVtYWNzLmQvZ3Rr cmPigJksIHNpbmNlIEdUSysgc2VlbXMgdG8gaWdub3JlCuKAmH4vLmd0a3JjLTIuMOKAmSB3aGVu IHJ1bm5pbmcgR0NvbmYgd2l0aCBHTk9NRS4gIE5vdGUsIGhvd2V2ZXIsIHRoYXQgc29tZQpHVEsr IHRoZW1lcyBtYXkgb3ZlcnJpZGUgY3VzdG9taXphdGlvbnMgaW4g4oCYfi8uZW1hY3MuZC9ndGty Y+KAmTsgdGhlcmUgaXMKbm90aGluZyB3ZSBjYW4gZG8gYWJvdXQgdGhpcy4gIEdUSysgcmVzb3Vy Y2VzIGRvIG5vdCBhZmZlY3QgYXNwZWN0cyBvZgpFbWFjcyB1bnJlbGF0ZWQgdG8gR1RLKyB3aWRn ZXRzLCBzdWNoIGFzIGZvbnRzIGFuZCBjb2xvcnMgaW4gdGhlIG1haW4KRW1hY3Mgd2luZG93OyB0 aG9zZSBhcmUgZ292ZXJuZWQgYnkgbm9ybWFsIFggcmVzb3VyY2VzICgqbm90ZQpSZXNvdXJjZXM6 OikuCgogICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGRlc2NyaWJlIGhvdyB0byBjdXN0b21pemUg R1RLKyByZXNvdXJjZXMgZm9yCkVtYWNzLiAgRm9yIGRldGFpbHMgYWJvdXQgR1RLKyByZXNvdXJj ZXMsIHNlZSB0aGUgR1RLKyBBUEkgZG9jdW1lbnQgYXQKPGh0dHBzOi8vZGV2ZWxvcGVyLmdub21l Lm9yZy9ndGsyL3N0YWJsZS9ndGsyLVJlc291cmNlLUZpbGVzLmh0bWw+LgoKICAgSW4gR1RLKyB2 ZXJzaW9uIDMsIEdUSysgcmVzb3VyY2VzIGhhdmUgYmVlbiByZXBsYWNlZCBieSBhIGNvbXBsZXRl bHkKZGlmZmVyZW50IHN5c3RlbS4gIFRoZSBhcHBlYXJhbmNlIG9mIEdUSysgd2lkZ2V0cyBpcyBu b3cgZGV0ZXJtaW5lZCBieQpDU1MtbGlrZSBzdHlsZSBmaWxlczog4oCYZ3RrLTMuMC9ndGsuY3Nz 4oCZIGluIHRoZSBHVEsrIGluc3RhbGxhdGlvbgpkaXJlY3RvcnksIGFuZCDigJh+Ly50aGVtZXMv VEhFTUUvZ3RrLTMuMC9ndGsuY3Nz4oCZIGZvciBsb2NhbCBzdHlsZQpzZXR0aW5ncyAod2hlcmUg VEhFTUUgaXMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgR1RLKyB0aGVtZSkuClRoZXJlZm9yZSwg dGhlIGRlc2NyaXB0aW9uIG9mIEdUSysgcmVzb3VyY2VzIGluIHRoaXMgc2VjdGlvbiBkb2VzIG5v dAphcHBseSB0byBHVEsrIDMuICBGb3IgZGV0YWlscyBhYm91dCB0aGUgR1RLKyAzIHN0eWxpbmcg c3lzdGVtLCBzZWUKPGh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9ndGszLzMuMC9HdGtDc3NQ cm92aWRlci5odG1sPi4KCisgTWVudToKCiAgLSBHVEsgUmVzb3VyY2UgQmFzaWNzOjogICBCYXNp YyB1c2FnZSBvZiBHVEsrIHJlc291cmNlcy4KICAtIEdUSyBXaWRnZXQgTmFtZXM6OiAgICAgIEhv dyBHVEsrIHdpZGdldHMgYXJlIG5hbWVkLgogIC0gR1RLIE5hbWVzIGluIEVtYWNzOjogICAgR1RL KyB3aWRnZXRzIHVzZWQgYnkgRW1hY3MuCiAgLSBHVEsgc3R5bGVzOjogICAgICAgICAgICBXaGF0 IGNhbiBiZSBjdXN0b21pemVkIGluIGEgR1RLKyB3aWRnZXQuCgoKKioqKiBELjUuMSBHVEsrIFJl c291cmNlIEJhc2ljcwoKSW4gYSBHVEsrIDIgcmVzb3VyY2UgZmlsZSAodXN1YWxseSDigJh+Ly5l bWFjcy5kL2d0a3Jj4oCZKSwgdGhlIHNpbXBsZXN0CmtpbmQgb2YgYSByZXNvdXJjZSBzZXR0aW5n IHNpbXBseSBhc3NpZ25zIGEgdmFsdWUgdG8gYSB2YXJpYWJsZS4gIEZvcgpleGFtcGxlLCBwdXR0 aW5nIHRoZSBmb2xsb3dpbmcgbGluZSBpbiB0aGUgcmVzb3VyY2UgZmlsZSBjaGFuZ2VzIHRoZQpm b250IG9uIGFsbCBHVEsrIHdpZGdldHMgdG8g4oCYY291cmllci0xMuKAmToKCiAgICAgZ3RrLWZv bnQtbmFtZSA9ICJjb3VyaWVyIDEyIgoKTm90ZSB0aGF0IGluIHRoaXMgY2FzZSB0aGUgZm9udCBu YW1lIG11c3QgYmUgc3VwcGxpZWQgYXMgYSBHVEsgZm9udApwYXR0ZXJuIChhbHNvIGNhbGxlZCBh ICJQYW5nbyBmb250IG5hbWUiKSwgbm90IGFzIGEgRm9udGNvbmZpZy1zdHlsZQpmb250IG5hbWUg b3IgWExGRC4gICpOb3RlIEZvbnRzOjouCgogICBUbyBjdXN0b21pemUgd2lkZ2V0cyB5b3UgZmly c3QgZGVmaW5lIGEgInN0eWxlIiwgYW5kIHRoZW4gYXBwbHkgdGhlCnN0eWxlIHRvIHRoZSB3aWRn ZXRzLiAgSGVyZSBpcyBhbiBleGFtcGxlIHRoYXQgc2V0cyB0aGUgZm9udCBmb3IgbWVudXMKKOKA mCPigJkgY2hhcmFjdGVycyBpbmRpY2F0ZSBjb21tZW50cyk6CgogICAgICMgRGVmaW5lIHRoZSBz dHlsZSDigJhteV9zdHlsZeKAmS4KICAgICBzdHlsZSAibXlfc3R5bGUiCiAgICAgewogICAgICAg Zm9udF9uYW1lID0gImhlbHZldGljYSBib2xkIDE0IgogICAgIH0KCiAgICAgIyBTcGVjaWZ5IHRo YXQgd2lkZ2V0IHR5cGUg4oCYKmVtYWNzLW1lbnVpdGVtKuKAmSB1c2VzIOKAmG15X3N0eWxl4oCZ LgogICAgIHdpZGdldCAiKmVtYWNzLW1lbnVpdGVtKiIgc3R5bGUgIm15X3N0eWxlIgoKVGhlIHdp ZGdldCBuYW1lIGluIHRoaXMgZXhhbXBsZSBjb250YWlucyB3aWxkY2FyZHMsIHNvIHRoZSBzdHls ZSBpcwphcHBsaWVkIHRvIGFsbCB3aWRnZXRzIG1hdGNoaW5nIOKAmCplbWFjcy1tZW51aXRlbSri gJkuICBUaGUgd2lkZ2V0cyBhcmUKbmFtZWQgYnkgdGhlIHdheSB0aGV5IGFyZSBjb250YWluZWQs IGZyb20gdGhlIG91dGVyIHdpZGdldCB0byB0aGUgaW5uZXIKd2lkZ2V0LiAgSGVyZSBpcyBhbm90 aGVyIGV4YW1wbGUgdGhhdCBhcHBsaWVzIOKAmG15X3N0eWxl4oCZIHNwZWNpZmljYWxseSB0bwp0 aGUgRW1hY3MgbWVudSBiYXI6CgogICAgIHdpZGdldCAiRW1hY3MucGFuZS5tZW51YmFyLioiIHN0 eWxlICJteV9zdHlsZSIKCiAgIEhlcmUgaXMgYSBtb3JlIGVsYWJvcmF0ZSBleGFtcGxlLCBzaG93 aW5nIGhvdyB0byBjaGFuZ2UgdGhlIHBhcnRzIG9mCnRoZSBzY3JvbGwgYmFyOgoKICAgICBzdHls ZSAic2Nyb2xsIgogICAgIHsKICAgICAgIGZnW05PUk1BTF0gPSAicmVkIiAgICAgIyBBcnJvdyBj b2xvci4KICAgICAgIGJnW05PUk1BTF0gPSAieWVsbG93IiAgIyBUaHVtYiBhbmQgYmFja2dyb3Vu ZCBhcm91bmQgYXJyb3cuCiAgICAgICBiZ1tBQ1RJVkVdID0gImJsdWUiICAgICMgVHJvdWdoIGNv bG9yLgogICAgICAgYmdbUFJFTElHSFRdID0gIndoaXRlIiAjIFRodW1iIGNvbG9yIHdoZW4gdGhl IG1vdXNlIGlzIG92ZXIgaXQuCiAgICAgfQoKICAgICB3aWRnZXQgIip2ZXJ0aWNhbFNjcm9sbEJh cioiIHN0eWxlICJzY3JvbGwiCgoKKioqKiBELjUuMiBHVEsrIHdpZGdldCBuYW1lcwoKQSBHVEsr IHdpZGdldCBpcyBzcGVjaWZpZWQgYnkgYSAid2lkZ2V0IG5hbWUiIGFuZCBhICJ3aWRnZXQgY2xh c3MiLiAgVGhlCndpZGdldCBuYW1lIHJlZmVycyB0byBhIHNwZWNpZmljIHdpZGdldCAoZS5nLiwg 4oCYZW1hY3MtbWVudWl0ZW3igJkpLCB3aGlsZQp0aGUgd2lkZ2V0IGNsYXNzIHJlZmVycyB0byBh IGNvbGxlY3Rpb24gb2Ygc2ltaWxhciB3aWRnZXRzIChlLmcuLArigJhHdGtNZW51SXRlbeKAmSku ICBBIHdpZGdldCBhbHdheXMgaGFzIGEgY2xhc3MsIGJ1dCBuZWVkIG5vdCBoYXZlIGEgbmFtZS4K CiAgICJBYnNvbHV0ZSBuYW1lcyIgYXJlIHNlcXVlbmNlcyBvZiB3aWRnZXQgbmFtZXMgb3Igd2lk Z2V0IGNsYXNzZXMsCmNvcnJlc3BvbmRpbmcgdG8gaGllcmFyY2hpZXMgb2Ygd2lkZ2V0cyBlbWJl ZGRlZCB3aXRoaW4gb3RoZXIgd2lkZ2V0cy4KRm9yIGV4YW1wbGUsIGlmIGEg4oCYR3RrV2luZG93 4oCZIG5hbWVkIOKAmHRvcOKAmSBjb250YWlucyBhIOKAmEd0a1ZCb3jigJkgbmFtZWQK4oCYYm94 4oCZLCB3aGljaCBpbiB0dXJuIGNvbnRhaW5zIGEg4oCYR3RrTWVudUJhcuKAmSBjYWxsZWQg4oCY bWVudWJhcuKAmSwgdGhlCmFic29sdXRlIGNsYXNzIG5hbWUgb2YgdGhlIG1lbnUtYmFyIHdpZGdl dCBpcwrigJhHdGtXaW5kb3cuR3RrVkJveC5HdGtNZW51QmFy4oCZLCBhbmQgaXRzIGFic29sdXRl IHdpZGdldCBuYW1lIGlzCuKAmHRvcC5ib3gubWVudWJhcuKAmS4KCiAgIEdUSysgcmVzb3VyY2Ug ZmlsZXMgY2FuIGNvbnRhaW4gdHdvIHR5cGVzIG9mIGNvbW1hbmRzIGZvciBzcGVjaWZ5aW5nCndp ZGdldCBhcHBlYXJhbmNlczoKCuKAmHdpZGdldOKAmQogICAgIHNwZWNpZmllcyBhIHN0eWxlIGZv ciB3aWRnZXRzIGJhc2VkIG9uIHRoZSBjbGFzcyBuYW1lLCBvciBqdXN0IHRoZQogICAgIGNsYXNz LgoK4oCYd2lkZ2V0X2NsYXNz4oCZCiAgICAgc3BlY2lmaWVzIGEgc3R5bGUgZm9yIHdpZGdldHMg YmFzZWQgb24gdGhlIGNsYXNzIG5hbWUuCgpTZWUgdGhlIHByZXZpb3VzIHN1YnNlY3Rpb24gZm9y IGV4YW1wbGVzIG9mIHVzaW5nIHRoZSDigJh3aWRnZXTigJkgY29tbWFuZDsKdGhlIOKAmHdpZGdl dF9jbGFzc+KAmSBjb21tYW5kIGlzIHVzZWQgc2ltaWxhcmx5LiAgTm90ZSB0aGF0IHRoZSB3aWRn ZXQKbmFtZS9jbGFzcyBhbmQgdGhlIHN0eWxlIG11c3QgYmUgZW5jbG9zZWQgaW4gZG91YmxlLXF1 b3RlcywgYW5kIHRoZXNlCmNvbW1hbmRzIG11c3QgYmUgYXQgdGhlIHRvcCBsZXZlbCBpbiB0aGUg R1RLKyByZXNvdXJjZSBmaWxlLgoKICAgQXMgcHJldmlvdXNseSBub3RlZCwgeW91IG1heSBzcGVj aWZ5IGEgd2lkZ2V0IG5hbWUgb3IgY2xhc3Mgd2l0aApzaGVsbCB3aWxkY2FyZCBzeW50YXg6IOKA mCrigJkgbWF0Y2hlcyB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyBhbmQg4oCYP+KAmQptYXRjaGVz IG9uZSBjaGFyYWN0ZXIuICBUaGlzIGV4YW1wbGUgYXNzaWducyBhIHN0eWxlIHRvIGFsbCB3aWRn ZXRzOgoKICAgICB3aWRnZXQgIioiIHN0eWxlICJteV9zdHlsZSIKCgoqKioqIEQuNS4zIEdUSysg V2lkZ2V0IE5hbWVzIGluIEVtYWNzCgpUaGUgR1RLKyB3aWRnZXRzIHVzZWQgYnkgYW4gRW1hY3Mg ZnJhbWUgYXJlIGxpc3RlZCBiZWxvdzoKCuKAmEVtYWNz4oCZIChjbGFzcyDigJhHdGtXaW5kb3fi gJkpCiAgICAg4oCYcGFuZeKAmSAoY2xhc3Mg4oCYR3RrVkJveOKAmSkKICAgICAgICAgIOKAmG1l bnViYXLigJkgKGNsYXNzIOKAmEd0a01lbnVCYXLigJkpCiAgICAgICAgICAgICAgIFttZW51IGl0 ZW0gd2lkZ2V0c10KICAgICAgICAgIFt1bm5hbWVkIHdpZGdldF0gKGNsYXNzIOKAmEd0a0hhbmRs ZUJveOKAmSkKICAgICAgICAgICAgICAg4oCYZW1hY3MtdG9vbGJhcuKAmSAoY2xhc3Mg4oCYR3Rr VG9vbGJhcuKAmSkKICAgICAgICAgICAgICAgICAgICBbdG9vbCBiYXIgaXRlbSB3aWRnZXRzXQog ICAgICAgICAg4oCYZW1hY3PigJkgKGNsYXNzIOKAmEd0a0ZpeGVk4oCZKQogICAgICAgICAgICAg ICDigJh2ZXJ0aWNhbFNjcm9sbEJhcuKAmSAoY2xhc3Mg4oCYR3RrVlNjcm9sbGJhcuKAmSkKClRo ZSBjb250ZW50cyBvZiBFbWFjcyB3aW5kb3dzIGFyZSBkcmF3biBpbiB0aGUg4oCYZW1hY3PigJkg d2lkZ2V0LiAgTm90ZQp0aGF0IGV2ZW4gaWYgdGhlcmUgYXJlIG11bHRpcGxlIEVtYWNzIHdpbmRv d3MsIGVhY2ggc2Nyb2xsIGJhciB3aWRnZXQgaXMKbmFtZWQg4oCYdmVydGljYWxTY3JvbGxCYXLi gJkuCgogICBGb3IgZXhhbXBsZSwgaGVyZSBhcmUgdHdvIGRpZmZlcmVudCB3YXlzIHRvIHNldCB0 aGUgbWVudSBiYXIgc3R5bGU6CgogICAgIHdpZGdldCAiRW1hY3MucGFuZS5tZW51YmFyLioiIHN0 eWxlICJteV9zdHlsZSIKICAgICB3aWRnZXRfY2xhc3MgIkd0a1dpbmRvdy5HdGtWQm94Lkd0a01l bnVCYXIuKiIgc3R5bGUgIm15X3N0eWxlIgoKICAgRm9yIEdUSysgZGlhbG9ncywgRW1hY3MgdXNl cyBhIHdpZGdldCBuYW1lZCDigJhlbWFjcy1kaWFsb2figJksIG9mIGNsYXNzCuKAmEd0a0RpYWxv Z+KAmS4gIEZvciBmaWxlIHNlbGVjdGlvbiwgRW1hY3MgdXNlcyBhIHdpZGdldCBuYW1lZArigJhl bWFjcy1maWxlZGlhbG9n4oCZLCBvZiBjbGFzcyDigJhHdGtGaWxlU2VsZWN0aW9u4oCZLgoKICAg QmVjYXVzZSB0aGUgd2lkZ2V0cyBmb3IgcG9wLXVwIG1lbnVzIGFuZCBkaWFsb2dzIGFyZSBmcmVl LXN0YW5kaW5nCndpbmRvd3MgYW5kIG5vdCBjb250YWluZWQgaW4gdGhlIOKAmEVtYWNz4oCZIHdp ZGdldCwgdGhlaXIgR1RLKyBhYnNvbHV0ZQpuYW1lcyBkbyBub3Qgc3RhcnQgd2l0aCDigJhFbWFj c+KAmS4gIFRvIGN1c3RvbWl6ZSB0aGVzZSB3aWRnZXRzLCB1c2UKd2lsZGNhcmRzIGxpa2UgdGhp czoKCiAgICAgd2lkZ2V0ICIqZW1hY3MtZGlhbG9nKiIgc3R5bGUgIm15X2RpYWxvZ19zdHlsZSIK ICAgICB3aWRnZXQgIiplbWFjcy1maWxlZGlhbG9nKiBzdHlsZSAibXlfZmlsZV9zdHlsZSIKICAg ICB3aWRnZXQgIiplbWFjcy1tZW51aXRlbSogc3R5bGUgIm15X21lbnVfc3R5bGUiCgogICBJZiB5 b3Ugd2FudCB0byBhcHBseSBhIHN0eWxlIHRvIGFsbCBtZW51cyBpbiBFbWFjcywgdXNlIHRoaXM6 CgogICAgIHdpZGdldF9jbGFzcyAiKk1lbnUqIiBzdHlsZSAibXlfbWVudV9zdHlsZSIKCgoqKioq IEQuNS40IEdUSysgc3R5bGVzCgpIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdHdvIEdUSysgc3R5bGUg ZGVjbGFyYXRpb25zOgoKICAgICBwaXhtYXBfcGF0aCAiL3Vzci9zaGFyZS9waXhtYXBzOi91c3Iv aW5jbHVkZS9YMTEvcGl4bWFwcyIKCiAgICAgc3R5bGUgImRlZmF1bHQiCiAgICAgewogICAgICAg Zm9udF9uYW1lID0gImhlbHZldGljYSAxMiIKCiAgICAgICBiZ1tOT1JNQUxdID0geyAwLjgzLCAw LjgwLCAwLjczIH0KICAgICAgIGJnW1NFTEVDVEVEXSA9IHsgMC4wLCAwLjU1LCAwLjU1IH0KICAg ICAgIGJnW0lOU0VOU0lUSVZFXSA9IHsgMC43NywgMC43NywgMC42NiB9CiAgICAgICBiZ1tBQ1RJ VkVdID0geyAwLjAsIDAuNTUsIDAuNTUgfQogICAgICAgYmdbUFJFTElHSFRdID0geyAwLjAsIDAu NTUsIDAuNTUgfQoKICAgICAgIGZnW05PUk1BTF0gPSAiYmxhY2siCiAgICAgICBmZ1tTRUxFQ1RF RF0gPSB7IDAuOSwgMC45LCAwLjkgfQogICAgICAgZmdbQUNUSVZFXSA9ICJibGFjayIKICAgICAg IGZnW1BSRUxJR0hUXSA9IHsgMC45LCAwLjksIDAuOSB9CgogICAgICAgYmFzZVtJTlNFTlNJVElW RV0gPSAiIzc3Nzc2NiIKICAgICAgIHRleHRbSU5TRU5TSVRJVkVdID0geyAwLjYwLCAwLjY1LCAw LjU3IH0KCiAgICAgICBiZ19waXhtYXBbTk9STUFMXSA9ICJiYWNrZ3JvdW5kLnhwbSIKICAgICAg IGJnX3BpeG1hcFtJTlNFTlNJVElWRV0gPSAiYmFja2dyb3VuZC54cG0iCiAgICAgICBiZ19waXht YXBbQUNUSVZFXSA9ICJiYWNrZ3JvdW5kLnhwbSIKICAgICAgIGJnX3BpeG1hcFtQUkVMSUdIVF0g PSAiPG5vbmU+IgoKICAgICB9CgogICAgIHN0eWxlICJydWxlciIgPSAiZGVmYXVsdCIKICAgICB7 CiAgICAgICBmb250X25hbWUgPSAiaGVsdmV0aWNhIDgiCiAgICAgfQoKICAgVGhlIHN0eWxlIOKA mHJ1bGVy4oCZIGluaGVyaXRzIGZyb20g4oCYZGVmYXVsdOKAmS4gIFRoaXMgd2F5IHlvdSBjYW4g YnVpbGQgb24KZXhpc3Rpbmcgc3R5bGVzLiAgVGhlIHN5bnRheCBmb3IgZm9udHMgYW5kIGNvbG9y cyBpcyBkZXNjcmliZWQgYmVsb3cuCgogICBBcyB0aGlzIGV4YW1wbGUgc2hvd3MsIGl0IGlzIHBv c3NpYmxlIHRvIHNwZWNpZnkgc2V2ZXJhbCB2YWx1ZXMgZm9yCmZvcmVncm91bmQgYW5kIGJhY2tn cm91bmQgZGVwZW5kaW5nIG9uIHRoZSB3aWRnZXTigJlzICJzdGF0ZSIuICBUaGUKcG9zc2libGUg c3RhdGVzIGFyZToKCuKAmE5PUk1BTOKAmQogICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgc3RhdGUg Zm9yIHdpZGdldHMuCgrigJhBQ1RJVkXigJkKICAgICBUaGlzIGlzIHRoZSBzdGF0ZSBmb3IgYSB3 aWRnZXQgdGhhdCBpcyByZWFkeSB0byBkbyBzb21ldGhpbmcuICBJdAogICAgIGlzIGFsc28gZm9y IHRoZSB0cm91Z2ggb2YgYSBzY3JvbGwgYmFyLCBpLmUuLCDigJhiZ1tBQ1RJVkVdID0gInJlZCLi gJkKICAgICBzZXRzIHRoZSBzY3JvbGwgYmFyIHRyb3VnaCB0byByZWQuICBCdXR0b25zIHRoYXQg aGF2ZSBiZWVuIGFybWVkCiAgICAgKHByZXNzZWQgYnV0IG5vdCByZWxlYXNlZCB5ZXQpIGFyZSBp biB0aGlzIHN0YXRlLgoK4oCYUFJFTElHSFTigJkKICAgICBUaGlzIGlzIHRoZSBzdGF0ZSBmb3Ig YSB3aWRnZXQgdGhhdCBjYW4gYmUgbWFuaXB1bGF0ZWQsIHdoZW4gdGhlCiAgICAgbW91c2UgcG9p bnRlciBpcyBvdmVyIGl04oCUZm9yIGV4YW1wbGUgd2hlbiB0aGUgbW91c2UgaXMgb3ZlciB0aGUK ICAgICB0aHVtYiBpbiB0aGUgc2Nyb2xsIGJhciBvciBvdmVyIGEgbWVudSBpdGVtLiAgV2hlbiB0 aGUgbW91c2UgaXMKICAgICBvdmVyIGEgYnV0dG9uIHRoYXQgaXMgbm90IHByZXNzZWQsIHRoZSBi dXR0b24gaXMgaW4gdGhpcyBzdGF0ZS4KCuKAmFNFTEVDVEVE4oCZCiAgICAgVGhpcyBpcyB0aGUg c3RhdGUgZm9yIGRhdGEgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZCBieSB0aGUgdXNlci4gIEl0CiAg ICAgY2FuIGJlIHNlbGVjdGVkIHRleHQgb3IgaXRlbXMgc2VsZWN0ZWQgaW4gYSBsaXN0LiAgVGhp cyBzdGF0ZSBpcwogICAgIG5vdCB1c2VkIGluIEVtYWNzLgoK4oCYSU5TRU5TSVRJVkXigJkKICAg ICBUaGlzIGlzIHRoZSBzdGF0ZSBmb3Igd2lkZ2V0cyB0aGF0IGFyZSB2aXNpYmxlLCBidXQgdGhl eSBjYW5ub3QgYmUKICAgICBtYW5pcHVsYXRlZCBpbiB0aGUgdXN1YWwgd2F54oCUZm9yIGV4YW1w bGUsIGJ1dHRvbnMgdGhhdCBjYW7igJl0IGJlCiAgICAgcHJlc3NlZCwgYW5kIGRpc2FibGVkIG1l bnUgaXRlbXMuICBUbyBkaXNwbGF5IGRpc2FibGVkIG1lbnUgaXRlbXMKICAgICBpbiB5ZWxsb3cs IHVzZSDigJhmZ1tJTlNFTlNJVElWRV0gPSAieWVsbG93IuKAmS4KCiAgIEhlcmUgYXJlIHRoZSB0 aGluZ3MgdGhhdCBjYW4gZ28gaW4gYSBzdHlsZSBkZWNsYXJhdGlvbjoKCuKAmGJnW1NUQVRFXSA9 IENPTE9S4oCZCiAgICAgVGhpcyBzcGVjaWZpZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRo ZSB3aWRnZXQuICBOb3RlIHRoYXQKICAgICBlZGl0YWJsZSB0ZXh0IGRvZXNu4oCZdCB1c2Ug4oCY YmfigJk7IGl0IHVzZXMg4oCYYmFzZeKAmSBpbnN0ZWFkLgoK4oCYYmFzZVtTVEFURV0gPSBDT0xP UuKAmQogICAgIFRoaXMgc3BlY2lmaWVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciBlZGl0YWJs ZSB0ZXh0LiAgSW4gRW1hY3MsCiAgICAgdGhpcyBjb2xvciBpcyB1c2VkIGZvciB0aGUgYmFja2dy b3VuZCBvZiB0aGUgdGV4dCBmaWVsZHMgaW4gdGhlCiAgICAgZmlsZSBkaWFsb2cuCgrigJhiZ19w aXhtYXBbU1RBVEVdID0gIlBJWE1BUCLigJkKICAgICBUaGlzIHNwZWNpZmllcyBhbiBpbWFnZSBi YWNrZ3JvdW5kIChpbnN0ZWFkIG9mIGEgYmFja2dyb3VuZCBjb2xvcikuCiAgICAgUElYTUFQIHNo b3VsZCBiZSB0aGUgaW1hZ2UgZmlsZSBuYW1lLiAgR1RLKyBjYW4gdXNlIGEgbnVtYmVyIG9mCiAg ICAgaW1hZ2UgZmlsZSBmb3JtYXRzLCBpbmNsdWRpbmcgWFBNLCBYQk0sIEdJRiwgSlBFRyBhbmQg UE5HLiAgSWYgeW91CiAgICAgd2FudCBhIHdpZGdldCB0byB1c2UgdGhlIHNhbWUgaW1hZ2UgYXMg aXRzIHBhcmVudCwgdXNlIOKAmDxwYXJlbnQ+4oCZLgogICAgIElmIHlvdSBkb27igJl0IHdhbnQg YW55IGltYWdlLCB1c2Ug4oCYPG5vbmU+4oCZLiAg4oCYPG5vbmU+4oCZIGlzIHRoZSB3YXkgdG8K ICAgICBjYW5jZWwgYSBiYWNrZ3JvdW5kIGltYWdlIGluaGVyaXRlZCBmcm9tIGEgcGFyZW50IHN0 eWxlLgoKICAgICBZb3UgY2Fu4oCZdCBzcGVjaWZ5IHRoZSBmaWxlIGJ5IGl0cyBhYnNvbHV0ZSBm aWxlIG5hbWUuICBHVEsrIGxvb2tzCiAgICAgZm9yIHRoZSBwaXhtYXAgZmlsZSBpbiBkaXJlY3Rv cmllcyBzcGVjaWZpZWQgaW4g4oCYcGl4bWFwX3BhdGjigJkuCiAgICAg4oCYcGl4bWFwX3BhdGji gJkgaXMgYSBjb2xvbi1zZXBhcmF0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcyB3aXRoaW4KICAgICBk b3VibGUgcXVvdGVzLCBzcGVjaWZpZWQgYXQgdGhlIHRvcCBsZXZlbCBpbiBhIOKAmGd0a3Jj4oCZ IGZpbGUgKGkuZS4sCiAgICAgbm90IGluc2lkZSBhIHN0eWxlIGRlZmluaXRpb247IHNlZSBleGFt cGxlIGFib3ZlKToKCiAgICAgICAgICBwaXhtYXBfcGF0aCAiL3Vzci9zaGFyZS9waXhtYXBzOi91 c3IvaW5jbHVkZS9YMTEvcGl4bWFwcyIKCuKAmGZnW1NUQVRFXSA9IENPTE9S4oCZCiAgICAgVGhp cyBzcGVjaWZpZXMgdGhlIGZvcmVncm91bmQgY29sb3IgZm9yIHdpZGdldHMgdG8gdXNlLiAgSXQg aXMgdGhlCiAgICAgY29sb3Igb2YgdGV4dCBpbiBtZW51cyBhbmQgYnV0dG9ucywgYW5kIHRoZSBj b2xvciBmb3IgdGhlIGFycm93cyBpbgogICAgIHRoZSBzY3JvbGwgYmFyLiAgRm9yIGVkaXRhYmxl IHRleHQsIHVzZSDigJh0ZXh04oCZLgoK4oCYdGV4dFtTVEFURV0gPSBDT0xPUuKAmQogICAgIFRo aXMgaXMgdGhlIGNvbG9yIGZvciBlZGl0YWJsZSB0ZXh0LiAgSW4gRW1hY3MsIHRoaXMgY29sb3Ig aXMgdXNlZAogICAgIGZvciB0aGUgdGV4dCBmaWVsZHMgaW4gdGhlIGZpbGUgZGlhbG9nLgoK4oCY Zm9udF9uYW1lID0gIkZPTlQi4oCZCiAgICAgVGhpcyBzcGVjaWZpZXMgdGhlIGZvbnQgZm9yIHRl eHQgaW4gdGhlIHdpZGdldC4gIEZPTlQgaXMgYQogICAgIEdUSy1zdHlsZSAob3IgUGFuZ28pIGZv bnQgbmFtZSwgbGlrZSDigJhTYW5zIEl0YWxpYyAxMOKAmS4gICpOb3RlCiAgICAgRm9udHM6Oi4g IFRoZSBuYW1lcyBhcmUgY2FzZSBpbnNlbnNpdGl2ZS4KCiAgIFRoZXJlIGFyZSB0aHJlZSB3YXlz IHRvIHNwZWNpZnkgYSBjb2xvcjogYSBjb2xvciBuYW1lLCBhbiBSR0IKdHJpcGxldCwgb3IgYSBH VEstc3R5bGUgUkdCIHRyaXBsZXQuICAqTm90ZSBDb2xvcnM6OiwgZm9yIGEgZGVzY3JpcHRpb24K b2YgY29sb3IgbmFtZXMgYW5kIFJHQiB0cmlwbGV0cy4gIENvbG9yIG5hbWVzIHNob3VsZCBiZSBl bmNsb3NlZCB3aXRoCmRvdWJsZSBxdW90ZXMsIGUuZy4sIOKAmCJyZWQi4oCZLiAgUkdCIHRyaXBs ZXRzIHNob3VsZCBiZSB3cml0dGVuIHdpdGhvdXQKZG91YmxlIHF1b3RlcywgZS5nLiwg4oCYI2Zm MDAwMOKAmS4gIEdUSy1zdHlsZSBSR0IgdHJpcGxldHMgaGF2ZSB0aGUgZm9ybQrigJh7IFIsIEcs IEIgfeKAmSwgd2hlcmUgUiwgRyBhbmQgQiBhcmUgZWl0aGVyIGludGVnZXJzIGluIHRoZSByYW5n ZSAw4oCTNjU1MzUKb3IgZmxvYXRzIGluIHRoZSByYW5nZSAwLjDigJMxLjAuCgoKKiogQXBwZW5k aXggRSBFbWFjcyAyNSBBbnRpbmV3cwoKRm9yIHRob3NlIHVzZXJzIHdobyBsaXZlIGJhY2t3YXJk cyBpbiB0aW1lLCBoZXJlIGlzIGluZm9ybWF0aW9uIGFib3V0CmRvd25ncmFkaW5nIHRvIEVtYWNz IHZlcnNpb24gMjUuMy4gIFdlIGhvcGUgeW91IHdpbGwgZW5qb3kgdGhlIGdyZWF0ZXIKc2ltcGxp Y2l0eSB0aGF0IHJlc3VsdHMgZnJvbSB0aGUgYWJzZW5jZSBvZiBtYW55IEVtYWNzIDI2LjEuNTAg ZmVhdHVyZXMuCgogICDigKIgRW1hY3Mgbm8gbG9uZ2VyIGRlZmF1bHRzIHRvIHJlcXVpcmluZyB0 aGUgR251VExTIGxpYnJhcnkgd2hlbiB5b3UKICAgICBidWlsZCBpdC4gIFRob3NlIHdobyB3YW50 IHRoZSBUTFMgZnVuY3Rpb25hbGl0eSBidWlsdC1pbiB3aWxsIGhhdmUKICAgICB0byBleHBsaWNp dGx5IHJlcXVlc3QgaXQgYXQgYnVpbGQgdGltZeKAlG9yIGZvcmV2ZXIgaG9sZCB0aGVpciBwZWFj ZS4KICAgICBXZSBkZWNpZGVkIHRoYXQgaGF2aW5nIHRoZSBUTFMgZnVuY3Rpb25hbGl0eSBkb2Vz buKAmXQganVzdGlmeQogICAgIGFubm95aW5nIHVzZXJzIG9yIHBhY2thZ2UgYnVpbGRlcnMgd2l0 aCBlcnJvciBtZXNzYWdlcyBhYm91dAogICAgIGxpYmdudXRscyBhYnNlbmNlLiAgV2UgYWxzbyBk ZWNpZGVkIHRoYXQgaWYgeW91IGRvIGJ1aWxkIHdpdGgKICAgICBHbnVUTFMsIHdlIHdpbGwgYWxs b3cgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkgb2xkZXIgdGhhbiAyLjEyLjIsIGFzCiAgICAgdGhh dCB2ZXJzaW9uIHdpbGwgYmVjb21lIGxlc3MgYW5kIGxlc3MgYXZhaWxhYmxlL3BvcHVsYXIgYXMg eW91CiAgICAgbW92ZSBmYXJ0aGVyIGJhY2sgaW4gdGltZS4KCiAgIOKAoiBGb3Igc2ltaWxhciBy ZWFzb25zLCB3ZeKAmXZlIHJldmVydGVkIGJhY2sgdG8gYnVpbGRpbmcgb3VyIG93bgogICAgIHZl cnNpb24gb2Yg4oCYbW92ZW1haWzigJkgdGhhdCByZXRyaWV2ZXMgUE9QMyBtYWlsIGFzIGNsZWFy IHRleHQgdmlhCiAgICAgaW5zZWN1cmUgY2hhbm5lbHMuICBBcyB5b3UgbW92ZSBiYWNrIGluIHRp bWUsIHRoZSBhdmFpbGFiaWxpdHkgb2YKICAgICBzZWN1cmUgYWx0ZXJuYXRpdmVzIHRvIFBPUDMg d2lsbCBkaW1pbmlzaCwgYW5kIHdlIGFyZSBvbmx5IGtlZW4gdG8KICAgICBzdXBwb3J0IHRoYXQu ICBXZeKAmXZlIGFsc28gcmVtb3ZlZCB0aGUg4oCYLS13aXRoLW1haWx1dGlsc+KAmQogICAgIGNv bmZpZ3VyZS10aW1lIG9wdGlvbiwgYXMgaXQgbm8gbG9uZ2VyIG1ha2VzIHNlbnNlIGZvciB0aGUK ICAgICBvYnNlcnZhYmxlIHBhc3QuCgogICDigKIgV2UgaGF2ZSByZW1vdmVkIHN1cHBvcnQgZm9y IOKAmHN5c3RlbWTigJkgYW5kIHNpbWlsYXIgc2VydmljZXM6IHdlIG5vCiAgICAgbG9uZ2VyIHBy b3ZpZGUgYSB1c2VyIGluaXQgZmlsZSBmb3IgZW5hYmxpbmcgRW1hY3Mgc3VwcG9ydCB2aWEKICAg ICB0aG9zZSBzZXJ2aWNlcywgYW5kIHdlIHJlbW92ZWQgZnJvbSB0aGUgRW1hY3Mgc2VydmVyIHRo ZQogICAgIHNvY2tldC1sYXVuY2hpbmcgc3VwcG9ydCBpbXBvcnRhbnQgZm9yIEVtYWNzIGNsaWVu dCBvcGVyYXRpb24gdW5kZXIKICAgICB0aGVzZSBzZXJ2aWNlcy4gIEFnYWluLCB0aGVzZSBzZXJ2 aWNlcyB3aWxsIGxvc2UgcG9wdWxhcml0eSBhcyB5b3UKICAgICBtb3ZlIGJhY2sgaW4gdGltZSwg c28gdGhlIGNvZGUgc3VwcG9ydGluZyB0aGVtIHdpbGwgYmUganVzdCBkZWFkCiAgICAgY29kZSwg YmxvYXRpbmcgRW1hY3MgdW5uZWNlc3NhcmlseS4KCiAgIOKAoiBSZXByb2R1Y2libGUgYnVpbGRz IG9mIEVtYWNzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLCBhcyBwYXN0CiAgICAgZGV2ZWxvcG1l bnQgd2lsbCBtYWtlIHRoYXQgdW5uZWNlc3NhcnkuCgogICDigKIgVGhlIOKAmC0tZmctZGFlbW9u 4oCZIGlzIGdvbmUsIGxlYXZpbmcgb25seSDigJgtLWRhZW1vbuKAmS4gIE5vIG5lZWQgdG8KICAg ICBwcm9jcmFzdGluYXRlIG9uIHRoZSBkaWxlbW1hIHdoZXRoZXIgeW91IGRvIG9yIGRvIG5vdCB3 YW50IHRoZSBuZXcKICAgICBzaGlueSDigJxoZWFkbGVzcyBFbWFjc+KAnSB0aGluZ3kuICBIYWls LCBzaW1wbGljaXR5IQoKICAg4oCiIEFzIHRleHQgdGVybWluYWxzIHN1cHBvcnRpbmcgdHJ1ZSBj b2xvciB3aWxsIGxvc2UgZ3JvdW5kIGFzIHlvdQogICAgIG1vdmUgYmFjayBpbiB0aW1lLCB3ZeKA mXZlIHJlbW92ZWQgc3VwcG9ydCBmb3IgMjQtYml0IGNvbG9ycyBvbiB0ZXh0CiAgICAgdGVybWlu YWxzLiAgSWYgeW91IHdhbnQgY29sb3JzIG9uIGEgdGV4dCB0ZXJtaW5hbCwgeW91IHNob3VsZCBi ZQogICAgIGZpbmUgd2l0aCBqdXN0IDggb2YgdGhlbS4gIChUcnV0aCBiZWluZyB0b2xkLCB3ZSB0 aGluayB0ZXh0CiAgICAgdGVybWluYWxzIHNob3VsZCBiZSBtb25vY2hyb21lLCBidXQgeW91IHdp bGwgaGF2ZSB0byBrZWVwCiAgICAgZG93bmdyYWRpbmcgdG8gb2xkZXIgRW1hY3MgdmVyc2lvbnMg dG8gaGF2ZSB0aGF0IGZlYXR1cmUgYmFjay4pCgogICDigKIgRW1hY3MgMjUuMyBubyBsb25nZXIg c3VwcG9ydHMgbWFnaWMgc2lnbmF0dXJlcyBvZiB0aGUgZm9ybQogICAgIOKAmCMhL3Vzci9iaW4v ZW52IElOVEVSUFJFVEVS4oCZIGluIHNjcmlwdHMuICBNb3ZpbmcgYmFjayBpbiB0aW1lIG1lYW5z CiAgICAgeW91IGFyZSBnZXR0aW5nIGNsb3NlciB0byB0aGUgaWRlYWwgb2YgdGhlIG9yaWdpbmFs IFVuaXggZGVzaWduCiAgICAgd2hlcmUgYWxsIHRoZSBpbnRlcnByZXRlcnMgbGl2ZWQgaW4gYSBz aW5nbGUgZGlyZWN0b3J5IOKAmC9iaW7igJksIHNvCiAgICAgdGhpcyBmYW5jeSBmZWF0dXJlIGlz IHNpbXBseSBiZWNvbWluZyB1bm5lY2Vzc2FyeSBiYWxsYXN0LgoKICAg4oCiIFRoZSBkb3VibGUt YnVmZmVyaW5nIGZlYXR1cmUgb2YgRW1hY3MgZGlzcGxheSBvbiBYIGhhcyBiZWVuCiAgICAgcmVt b3ZlZC4gIFdlIGRlY2lkZWQgdGhhdCBpdHMgY29tcGxleGl0eSBhbmQgYSBmZXcgcmFuZG9tCiAg ICAgc3VycHJpc2luZyBzaWRlLWVmZmVjdHMgYXJlbuKAmXQganVzdGlmaWVkIGJ5IHRoZSBnYWlu cywgZXZlbiB0aG91Z2gKICAgICB0aG9zZSBnYWlucyB3ZXJlIGhhaWxlZCBpbiBzb21lIHF1YXJ0 ZXJzLiAgWWVzLCBFbWFjcyAyNS4zIHdpbGwKICAgICBmbGlja2VyIGluIHNvbWUgdXNlIGNhc2Vz LCBidXQgd2UgYXJlIHN1cmUgRW1hY3MgdXNlcnMgd2lsbCBiZSBhYmxlCiAgICAgdG8gc3VjayBp dCwgYXMgdGhleSBoYXZlIGJlZW4gZG9pbmcgZm9yIHllYXJzLiAgU2luY2UgdGhpcyBmZWF0dXJl CiAgICAgaXMgZ29uZSwgd2XigJl2ZSBhbHNvIHJlbW92ZWQgdGhlIOKAmGluaGliaXQtZG91Ymxl LWJ1ZmZlcmluZ+KAmSBmcmFtZQogICAgIHBhcmFtZXRlciwgd2hpY2ggaXMgbm93IHVubmVjZXNz YXJ5LgoKICAg4oCiIE5vbi1icmVha2luZyBoeXBoZW5zIGFuZCBBU0NJSSBjaGFyYWN0ZXJzIGRp c3BsYXllZCBpbnN0ZWFkIG9mCiAgICAgdW5zdXBwb3J0ZWQgcXVvdGUgY2hhcmFjdGVycyBhcmUg bm93IGFnYWluIGRpc3BsYXllZCB1c2luZyB0aGUKICAgICDigJhlc2NhcGUtZ2x5cGjigJkgZmFj ZS4gIFdlIHRoaW5rIGhhdmluZyBhIHNpbmdsZSBmYWNlIGluc3RlYWQgb2YgMwogICAgIGRpZmZl cmVudCBvbmVzIHdpbGwgbWFrZSBFbWFjcyBjdXN0b21pemF0aW9uIGEgbXVjaCBzaW1wbGVyIGpv YiBmb3IKICAgICB1c2Vycy4gIEZvciB0aGUgc2FtZSByZWFzb24sIHdl4oCZdmUgcmVtb3ZlZCB0 aGUKICAgICDigJhoZWFkZXItbGluZS1oaWdobGlnaHTigJkgZmFjZSwgbGVhdmluZyBqdXN0IOKA mGhpZ2hsaWdodOKAmSBmb3IgYW55CiAgICAgZWxlbWVudCBvZiB0aGUgRW1hY3MgZGlzcGxheSBi ZXNpZGVzIHRoZSBtb2RlIGxpbmUuCgogICDigKIgWW91IGNhbiBubyBsb25nZXIgZGlzYWJsZSBh dHRlbXB0cyBvZiByZWNvdmVyeSBmcm9tIGZhdGFsCiAgICAgZXhjZXB0aW9ucyBzdWNoIGFzIEMg c3RhY2sgb3ZlcmZsb3dzIGFuZCBmYXRhbCBzaWduYWxzLiAgU2luY2UgdGhlCiAgICAgcmVjb3Zl cnkgaW5jbHVkZWQgaW4gRW1hY3MgaXMgcmVsaWFibGUgZW5vdWdoLCB3ZSBkZWNpZGVkIHRoZXJl IHdhcwogICAgIG5vIHJlYXNvbiB0byBwdXQgeW91ciBlZGl0cyBpbiBkYW5nZXIgb2YgYmVjb21p bmcgbG9zdCB3aGVuIHRoZXNlCiAgICAgc2l0dWF0aW9ucyBoYXBwZW4uICBUaGUgdmFyaWFibGVz IOKAmGF0dGVtcHQtc3RhY2stb3ZlcmZsb3ctcmVjb3ZlcnnigJkKICAgICBhbmQg4oCYYXR0ZW1w dC1vcmRlcmx5LXNodXRkb3duLW9uLWZhdGFsLXNpZ25hbOKAmSBhcmUgdGhlcmVmb3JlCiAgICAg cmVtb3ZlZC4KCiAgIOKAoiBUaGUg4oCYbGlzdC10aW1lcnPigJkgY29tbWFuZCB3YXMgcmVtb3Zl ZCwgYXMgd2UgZGVjaWRlZCB0aW1lcnMgYXJlIG5vdAogICAgIGEgdXNlci1sZXZlbCBmZWF0dXJl LCBhbmQgdGhlcmVmb3JlIHVzZXJzIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0bwogICAgIG1lc3Mg d2l0aCB0aGVtLiAgQXNrIGFuIEVtYWNzIExpc3AgZ3VydSBuZWFyIHlvdSBmb3IgaGVscCBpZiB5 b3UKICAgICBoYXZlIGEgcnVuYXdheSB0aW1lciBpbiB5b3VyIHNlc3Npb24uICAoT2YgY291cnNl LCBhcyB5b3UgbW92ZSBiYWNrCiAgICAgaW4gdGltZSwgc3VjaCBydW5hd2F5IHRpbWVycyB3aWxs IGJlY29tZSBsZXNzIGFuZCBsZXNzIGZyZXF1ZW50LAogICAgIGFuZCBhY3R1YWxseSB0aW1lcnMg bWlnaHQgc3RhcnQgc2h1dHRpbmcgZG93biBhdXRvbWF0aWNhbGx5LCBhcwogICAgIHRoZXkgY2Fu bm90IGNvcGUgd2l0aCB0aW1lIHJldmVyc2FsLikKCiAgIOKAoiBIb3Jpem9udGFsIHNjcm9sbGlu ZyB1c2luZyB0aGUgbW91c2Ugb3IgdG91Y2hwYWQgaGFzIGJlZW4gcmVtb3ZlZC4KICAgICBJbiB0 aGUgcGFzdCwgd2lkZSBtb25pdG9ycyB3aWxsIGJlY29tZSBsZXNzIHBvcHVsYXIsIHNvIGhvcml6 b250YWwKICAgICBzY3JvbGxpbmcgd2lsbCBubyBsb25nZXIgYmUgbmVlZGVkLiAgUmVtb3ZhbCBv ZiB0aGUgbW91c2Ugc3VwcG9ydAogICAgIGZvciBob3Jpem9udGFsIHNjcm9sbGluZyBpcyB0aGUg Zmlyc3Qgc3RlcCB0b3dhcmRzIGl0cyBjb21wbGV0ZQogICAgIHJlbW92YWwgaW4gcHJpb3IgRW1h Y3MgdmVyc2lvbnMuCgogICDigKIgV2UgaGF2ZSBmb3VuZCB0aGUg4oCYLS10cmFtcOKAmSBvcHRp b24gb2Yg4oCYZW1hY3NjbGllbnTigJkgdG9vIHJpc2t5IGFuZAogICAgIHRvbyBjb21wbGljYXRl ZCwgc28gd2UgcmVtb3ZlZCBpdCB0byBzaW1wbGlmeSB0aGUgY2xpZW50IGNvZGUgYW5kCiAgICAg aXRzIHVzYWdlLgoKICAg4oCiIFRoZSDigJhkaXNwbGF5LXJhdy1ieXRlcy1hcy1oZXjigJkgdmFy aWFibGUgaXMgZ29uZSwgc28gcmF3IGJ5dGVzIGNhbgogICAgIG9ubHkgYmUgZGlzcGxheWVkIGFz IG9jdGFsIGVzY2FwZXMuICBFbWFjcyB1c2VycyBzaG91bGQgYmUgYWJsZSB0bwogICAgIGNvbnZl cnQgZnJvbSBvY3RhbCB0byBhbnkgb3RoZXIgYmFzZSBpbiB0aGVpciBzbGVlcCEKCiAgIOKAoiBE aXNwbGF5aW5nIGxpbmUgbnVtYmVycyBmb3IgYSBidWZmZXIgaXMgb25seSBwb3NzaWJseSB1c2lu ZyBhZGQtb24KICAgICBmZWF0dXJlcywgc3VjaCBhcyDigJhsaW51bS1tb2Rl4oCZLCB3aGljaCBj YW4gb25seSBkaXNwbGF5IHRoZSBudW1iZXJzCiAgICAgaW4gdGhlIGRpc3BsYXkgbWFyZ2lucy4g IExpbmUtbnVtYmVyIGRpc3BsYXkgdXNpbmcgdGhlc2UgZmVhdHVyZXMKICAgICBpcyBhbHNvIHNs b3csIGFzIHdlIGZpcm1seSBiZWxpZXZlIHN1Y2ggYSBmZWF0dXJlIGlzIHVuLUVtYWNzeSBhbmQK ICAgICBzaG91bGQgbm90IGhhdmUgYmVlbiBpbmNsdWRlZCBpbiBFbWFjcyB0byBiZWdpbiB3aXRo LgogICAgIENvbnNlcXVlbnRseSwg4oCYZGlzcGxheS1saW5lLW51bWJlcnMtbW9kZeKAmSB3YXMg cmVtb3ZlZC4KCiAgIOKAoiBPbiBvdXIgcGVybWFuZW50IHF1ZXN0IGZvciBzaW1wbGlmeWluZyBF bWFjcywgd2XigJl2ZSByZW1vdmVkIHRoZQogICAgIHN1cHBvcnQgZm9yIHBhc3NpbmcgY29tbWFu ZC1saW5lIGFyZ3VtZW50cyBhbmQgb3B0aW9ucyB0byBFbWFjcyB2aWEKICAgICB0aGUg4oCYLS1h bHRlcm5hdGUtZWRpdG9y4oCZIG9wdGlvbiBvZiDigJhlbWFjc2NsaWVudOKAmSBhbmQKICAgICDi gJhBTFRFUk5BVEVfRURJVE9S4oCZIGVudmlyb25tZW50IHZhcmlhYmxlLiAgVGhlcmXigJlzIG9u bHkgb25lIFRydWUKICAgICBFbWFjc+KAlHRoZSBvbmUgdGhhdCBjb21lcyB1cCB3aGVuIGludm9r ZWQgYXMg4oCYZW1hY3PigJksIG5vIG5lZWQgZm9yCiAgICAgYWxsIHRob3NlIGZhbmN5IG9wdGlv bnMhCgogICDigKIgVGhlIGNvbXBsaWNhdGlvbiBrbm93biBhcyDigJxzaW5nbGUtbGluZSBob3Jp em9udGFsIHNjcm9sbGluZ+KAnSBpcyBubwogICAgIGxvbmdlciB3aXRoIHlvdSBpbiBFbWFjcyAy NS4zLiAgVGhpcyBmZWF0dXJlIHdhcyBhIGJvdyB0byDigJxvdGhlcgogICAgIGVkaXRvcnPigJ07 IGluc3RlYWQsIGxldCB0aG9zZSBvdGhlciBlZGl0b3JzIGJvdyB0byBFbWFjcyBieQogICAgIGhz Y3JvbGxpbmcgdGhlIGVudGlyZSB3aW5kb3cgYXQgYWxsIHRpbWVzLiAgUmVwZWF0IGFmdGVyIG1l OiDigJxUaGUKICAgICBFbWFjcyB3YXkgaXMgdGhlIE9ubHkgV2F5IeKAnQoKICAg4oCiIFRoZSBm YW5jeSBjYXNlIGNvbnZlcnNpb25zIG9mIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIHVzZWQgaW4gc2V2 ZXJhbAogICAgIGxvY2FsZXMsIGxpa2UgVHVya2lzaCBhbmQgR3JlZWssIGFyZSByZW1vdmVkLCBs ZWF2aW5nIHRoZSByZWxhdGlvbnMKICAgICBiZXR3ZWVuIHVwcGVyIGFuZCBsb3dlciBsZXR0ZXIt Y2FzZSBzaW1wbGUgYWdhaW4sIGFzIHRoZXkgd2VyZSBpbgogICAgIDctYml0IEFTQ0lJLiBMaWtl d2lzZSB3aXRoIGxpZ2F0dXJlcyB0aGF0IHR1cm4gaW50byBtdWx0aXBsZQogICAgIGNoYXJhY3Rl cnMgd2hlbiB0aGVpciBsZXR0ZXItY2FzZSBjaGFuZ2Vz4oCUZ29uZS4KCiAgIOKAoiBFbmNoYW50 IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQgYnkg4oCYaXNwZWxsLWJ1ZmZlcuKAmSBhbmQgc2ltaWxh cgogICAgIHNwZWxsLWNoZWNraW5nIGNvbW1hbmRzLiAgQXMgRW5jaGFudCB3aWxsIGdyYWR1YWxs eSBkaXNhcHBlYXIgd2hpbGUKICAgICB5b3UgbW92ZSBiYWNrIGluIHRpbWUsIGl0cyBzdXBwb3J0 IHdpbGwgYmVjb21lIHVubmVjZXNzYXJ5IGFueXdheS4KCiAgIOKAoiBUcmFtcCBsb3N0IGl0cyBz dXBwb3J0IGZvciBHb29nbGUgRHJpdmUgcmVwb3NpdG9yaWVzLiAgQ2xvdWQKICAgICBzdG9yYWdl IGlzIG9uIGl0cyB3YXkgdG8gZXh0aW5jdGlvbiBhcyB5b3UgbW92ZSBiYWNrIGluIHRpbWUsIHRo dXMKICAgICBtYWtpbmcgdGhpcyBmZWF0dXJlIHJlZHVuZGFudC4KCiAgIOKAoiBTZXZlcmFsIGNv bW1hbmRzLCBkZWVtZWQgdG8gYmUgdW5uZWNlc3NhcnkgY29tcGxpY2F0aW9ucywgaGF2ZSBiZWVu CiAgICAgcmVtb3ZlZC4gIEV4YW1wbGVzIGluY2x1ZGUg4oCYcmVwbGFjZS1idWZmZXItY29udGVu dHPigJkgYW5kCiAgICAg4oCYYXByb3Bvcy1sb2NhbC12YXJpYWJsZeKAmS4KCiAgIOKAoiBUbyBr ZWVwIHVwIHdpdGggZGVjcmVhc2luZyBjb21wdXRlciBtZW1vcnkgY2FwYWNpdHkgYW5kIGRpc2sg c3BhY2UsCiAgICAgbWFueSBvdGhlciBmdW5jdGlvbnMgYW5kIGZpbGVzIGhhdmUgYmVlbiBlbGlt aW5hdGVkIGluIEVtYWNzIDI1LjMuCgoKKiogQXBwZW5kaXggRiBFbWFjcyBhbmQgbWFjT1MgLyBH TlVzdGVwCgpUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBwZWN1bGlhcml0aWVzIG9mIHVzaW5n IEVtYWNzIGJ1aWx0IHdpdGggdGhlCkdOVXN0ZXAgbGlicmFyaWVzIG9uIEdOVS9MaW51eCBvciBv dGhlciBvcGVyYXRpbmcgc3lzdGVtcywgb3Igb24gbWFjT1MKd2l0aCBuYXRpdmUgd2luZG93IHN5 c3RlbSBzdXBwb3J0LiAgT24gbWFjT1MsIEVtYWNzIGNhbiBiZSBidWlsdCBlaXRoZXIKd2l0aG91 dCB3aW5kb3cgc3lzdGVtIHN1cHBvcnQsIHdpdGggWDExLCBvciB3aXRoIHRoZSBDb2NvYSBpbnRl cmZhY2U7CnRoaXMgc2VjdGlvbiBvbmx5IGFwcGxpZXMgdG8gdGhlIENvY29hIGJ1aWxkLiAgVGhp cyBkb2VzIG5vdCBzdXBwb3J0CnZlcnNpb25zIGJlZm9yZSBtYWNPUyAxMC42LgoKICAgR05Vc3Rl cCBpcyBmcmVlIHNvZnR3YXJlOyBtYWNPUyBpcyBub3QuICBCZWNhdXNlIGl0IGlzIGEgbm9uLWZy ZWUKb3BlcmF0aW5nIHN5c3RlbSwgbWFjT1MgZGVuaWVzIGl0cyB1c2VycyB0aGUgZnJlZWRvbSB0 aGF0IGV2ZXJ5IGNvbXB1dGVyCnVzZXIgZGVzZXJ2ZXMuICBUaGF0IGlzIGFuIGluanVzdGljZS4g IEZvciB5b3VyIGZyZWVkb23igJlzIHNha2UsIHdlIHVyZ2UKeW91IHRvIHN3aXRjaCB0byBhIGZy ZWUgb3BlcmF0aW5nIHN5c3RlbS4KCiAgIFdlIHN1cHBvcnQgR05VIEVtYWNzIG9uIHByb3ByaWV0 YXJ5IG9wZXJhdGluZyBzeXN0ZW1zIGJlY2F1c2Ugd2UgaG9wZQp0aGlzIHRhc3RlIG9mIGZyZWVk b20gd2lsbCBpbnNwaXJlIHVzZXJzIHRvIGVzY2FwZSBmcm9tIHRoZW0uCgogICBGb3IgdmFyaW91 cyBoaXN0b3JpY2FsIGFuZCB0ZWNobmljYWwgcmVhc29ucywgRW1hY3MgdXNlcyB0aGUgdGVybQri gJhOZXh0c3RlcOKAmSBpbnRlcm5hbGx5LCBpbnN0ZWFkIG9mIOKAnENvY29h4oCdIG9yIOKAnG1h Y09T4oCdOyBmb3IgaW5zdGFuY2UsIG1vc3QKb2YgdGhlIGNvbW1hbmRzIGFuZCB2YXJpYWJsZXMg ZGVzY3JpYmVkIGluIHRoaXMgc2VjdGlvbiBiZWdpbiB3aXRoCuKAmG5zLeKAmSwgd2hpY2ggaXMg c2hvcnQgZm9yIOKAmE5leHRzdGVw4oCZLiAgTmVYVHN0ZXAgd2FzIGFuIGFwcGxpY2F0aW9uCmlu dGVyZmFjZSByZWxlYXNlZCBieSBOZVhUIEluYy4gZHVyaW5nIHRoZSAxOTgwcywgb2Ygd2hpY2gg Q29jb2EgaXMgYQpkaXJlY3QgZGVzY2VuZGFudC4gIEFwYXJ0IGZyb20gQ29jb2EsIHRoZXJlIGlz IGFub3RoZXIgTmVYVHN0ZXAtc3R5bGUKc3lzdGVtOiBHTlVzdGVwLCB3aGljaCBpcyBmcmVlIHNv ZnR3YXJlLiAgQXMgb2YgdGhpcyB3cml0aW5nLCBFbWFjcwpHTlVzdGVwIHN1cHBvcnQgaXMgaW4g YWxwaGEgc3RhdHVzICgqbm90ZSBHTlVzdGVwIFN1cHBvcnQ6OiksIGJ1dCB3ZQpob3BlIHRvIGlt cHJvdmUgaXQgaW4gdGhlIGZ1dHVyZS4KCisgTWVudToKCiAgLSBNYWMgLyBHTlVzdGVwIEJhc2lj czo6ICAgICAgICBCYXNpYyBFbWFjcyB1c2FnZSB1bmRlciBHTlVzdGVwIG9yIG1hY09TLgogIC0g TWFjIC8gR05Vc3RlcCBDdXN0b21pemF0aW9uOjogQ3VzdG9taXphdGlvbnMgdW5kZXIgR05Vc3Rl cCBvciBtYWNPUy4KICAtIE1hYyAvIEdOVXN0ZXAgRXZlbnRzOjogICAgICAgIEhvdyB3aW5kb3cg c3lzdGVtIGV2ZW50cyBhcmUgaGFuZGxlZC4KICAtIEdOVXN0ZXAgU3VwcG9ydDo6ICAgICAgICAg ICAgIERldGFpbHMgb24gc3RhdHVzIG9mIEdOVXN0ZXAgc3VwcG9ydC4KCgoqKiogRi4xIEJhc2lj IEVtYWNzIHVzYWdlIHVuZGVyIG1hY09TIGFuZCBHTlVzdGVwCgpCeSBkZWZhdWx0LCB0aGUgPEFs dD4gYW5kIDxPcHRpb24+IGtleXMgYXJlIHRoZSBzYW1lIGFzIDxNZXRhPi4gIFRoZSBNYWMKPENt ZD4ga2V5IGlzIHRoZSBzYW1lIGFzIDxTdXBlcj4sIGFuZCBFbWFjcyBwcm92aWRlcyBhIHNldCBv ZiBrZXkKYmluZGluZ3MgdXNpbmcgdGhpcyBtb2RpZmllciBrZXkgdGhhdCBtaW1pYyBvdGhlciBN YWMgLyBHTlVzdGVwCmFwcGxpY2F0aW9ucyAoKm5vdGUgTWFjIC8gR05Vc3RlcCBFdmVudHM6Oiku ICBZb3UgY2FuIGNoYW5nZSB0aGVzZQpiaW5kaW5ncyBpbiB0aGUgdXN1YWwgd2F5ICgqbm90ZSBL ZXkgQmluZGluZ3M6OikuCgogICBUaGUgdmFyaWFibGUg4oCYbnMtcmlnaHQtYWx0ZXJuYXRlLW1v ZGlmaWVy4oCZIGNvbnRyb2xzIHRoZSBiZWhhdmlvciBvZgp0aGUgcmlnaHQgPEFsdD4gYW5kIDxP cHRpb24+IGtleXMuICBUaGVzZSBrZXlzIGJlaGF2ZSBsaWtlIHRoZSBsZWZ0LWhhbmQKa2V5cyBp ZiB0aGUgdmFsdWUgaXMg4oCYbGVmdOKAmSAodGhlIGRlZmF1bHQpLiAgQSB2YWx1ZSBvZiDigJhj b250cm9s4oCZLArigJhtZXRh4oCZLCDigJhhbHTigJksIOKAmHN1cGVy4oCZLCBvciDigJhoeXBl cuKAmSBtYWtlcyB0aGVtIGJlaGF2ZSBsaWtlIHRoZQpjb3JyZXNwb25kaW5nIG1vZGlmaWVyIGtl eXM7IGEgdmFsdWUgb2Yg4oCYbGVmdOKAmSBtZWFucyBiZSB0aGUgc2FtZSBrZXkgYXMK4oCYbnMt YWx0ZXJuYXRlLW1vZGlmaWVy4oCZOyBhIHZhbHVlIG9mIOKAmG5vbmXigJkgdGVsbHMgRW1hY3Mg dG8gaWdub3JlIHRoZW0sCmluIHdoaWNoIGNhc2UgeW91IGdldCB0aGUgZGVmYXVsdCBiZWhhdmlv ciBvZiBtYWNPUyBhY2NlbnR1YXRpb24gc3lzdGVtCmZyb20gdGhlIHJpZ2h0IDxPcHRpb24+IGtl eS4KCiAgIOKAmFMtbW91c2UtMeKAmSBhZGp1c3RzIHRoZSByZWdpb24gdG8gdGhlIGNsaWNrIHBv c2l0aW9uLCBqdXN0IGxpa2UK4oCYbW91c2UtM+KAmSAo4oCYbW91c2Utc2F2ZS10aGVuLWtpbGzi gJkpOyBpdCBkb2VzIG5vdCBwb3AgdXAgYSBtZW51IGZvcgpjaGFuZ2luZyB0aGUgZGVmYXVsdCBm YWNlLCBhcyDigJhTLW1vdXNlLTHigJkgbm9ybWFsbHkgZG9lcyAoKm5vdGUgVGV4dApTY2FsZTo6 KS4gIFRoaXMgY2hhbmdlIG1ha2VzIEVtYWNzIGJlaGF2ZSBtb3JlIGxpa2Ugb3RoZXIgTWFjIC8g R05Vc3RlcAphcHBsaWNhdGlvbnMuCgogICBXaGVuIHlvdSBvcGVuIG9yIHNhdmUgZmlsZXMgdXNp bmcgdGhlIG1lbnVzLCBvciB1c2luZyB0aGUg4oCYQ21kLW/igJkgYW5kCuKAmENtZC1T4oCZIGJp bmRpbmdzLCBFbWFjcyB1c2VzIGdyYXBoaWNhbCBmaWxlIGRpYWxvZ3MgdG8gcmVhZCBmaWxlIG5h bWVzLgpIb3dldmVyLCBpZiB5b3UgdXNlIHRoZSByZWd1bGFyIEVtYWNzIGtleSBzZXF1ZW5jZXMs IHN1Y2ggYXMg4oCYQy14IEMtZuKAmSwKRW1hY3MgdXNlcyB0aGUgbWluaWJ1ZmZlciB0byByZWFk IGZpbGUgbmFtZXMuCgogICBPbiBHTlVzdGVwLCBpbiBhbiBYLXdpbmRvd3MgZW52aXJvbm1lbnQg eW91IG5lZWQgdG8gdXNlIOKAmENtZC1j4oCZCmluc3RlYWQgb2Ygb25lIG9mIHRoZSDigJhDLXfi gJkgb3Ig4oCYTS134oCZIGNvbW1hbmRzIHRvIHRyYW5zZmVyIHRleHQgdG8gdGhlIFgKcHJpbWFy eSBzZWxlY3Rpb247IG90aGVyd2lzZSwgRW1hY3Mgd2lsbCB1c2UgdGhlIGNsaXBib2FyZCBzZWxl Y3Rpb24uCkxpa2V3aXNlLCDigJhDbWQteeKAmSAoaW5zdGVhZCBvZiDigJhDLXnigJkpIHlhbmtz IGZyb20gdGhlIFggcHJpbWFyeSBzZWxlY3Rpb24KaW5zdGVhZCBvZiB0aGUga2lsbC1yaW5nIG9y IGNsaXBib2FyZC4KCkYuMS4xIEdyYWJiaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcwoKTWFueSBw cm9ncmFtcyB3aGljaCBtYXkgcnVuIHVuZGVyIEVtYWNzLCBsaWtlIGxhdGV4IG9yIG1hbiwgZGVw ZW5kIG9uCnRoZSBzZXR0aW5ncyBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICBJZiBFbWFjcyBp cyBsYXVuY2hlZCBmcm9tIHRoZQpzaGVsbCwgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGluaGVyaXQg dGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBpdHMKc3VicHJvY2Vzc2VzIHdpbGwgaW5o ZXJpdCB0aGVtIGZyb20gaXQuICBCdXQgaWYgRW1hY3MgaXMgbGF1bmNoZWQgZnJvbQp0aGUgRmlu ZGVyIGl0IGlzIG5vdCBhIGRlc2NlbmRhbnQgb2YgYW55IHNoZWxsLCBzbyBpdHMgZW52aXJvbm1l bnQKdmFyaWFibGVzIGhhdmVu4oCZdCBiZWVuIHNldCwgd2hpY2ggb2Z0ZW4gY2F1c2VzIHRoZSBz dWJwcm9jZXNzZXMgaXQKbGF1bmNoZXMgdG8gYmVoYXZlIGRpZmZlcmVudGx5IHRoYW4gdGhleSB3 b3VsZCB3aGVuIGxhdW5jaGVkIGZyb20gdGhlCnNoZWxsLgoKICAgRm9yIHRoZSBQQVRIIGFuZCBN QU5QQVRIIHZhcmlhYmxlcywgYSBzeXN0ZW0td2lkZSBtZXRob2Qgb2Ygc2V0dGluZwpQQVRIIGlz IHJlY29tbWVuZGVkIG9uIG1hY09TLCB1c2luZyB0aGUg4oCYL2V0Yy9wYXRoc+KAmSBmaWxlcyBh bmQgdGhlCuKAmC9ldGMvcGF0aHMuZOKAmSBkaXJlY3RvcnkuCgoKKioqIEYuMiBNYWMgLyBHTlVz dGVwIEN1c3RvbWl6YXRpb24KClRoZXJlIGFyZSBhIGZldyBjdXN0b21pemF0aW9uIG9wdGlvbnMg dGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhlIE5leHRzdGVwCnBvcnQuICBGb3IgZXhhbXBsZSwgdGhl eSBhZmZlY3QgdGhpbmdzIHN1Y2ggYXMgdGhlIG1vZGlmaWVyIGtleXMgYW5kIHRoZQpmdWxsc2Ny ZWVuIGJlaGF2aW9yLiAgVG8gc2VlIGFsbCBzdWNoIG9wdGlvbnMsIHVzZSDigJhNLXggY3VzdG9t aXplLWdyb3VwCjxSRVQ+IG5zIDxSRVQ+4oCZLgoKKioqKiBGLjIuMSBGb250IFBhbmVsCgpUaGUg c3RhbmRhcmQgTWFjIC8gR05Vc3RlcCBmb250IHBhbmVsIGlzIGFjY2Vzc2libGUgd2l0aCDigJhN LXgKbnMtcG9wdXAtZm9udC1wYW5lbOKAmSBhbmQgd2lsbCBzZXQgdGhlIGRlZmF1bHQgZm9udCBp biB0aGUgZnJhbWUgbW9zdApyZWNlbnRseSB1c2VkIG9yIGNsaWNrZWQgb24uCgogICBJbiBtYWNP UywgRW1hY3MgdXNlcyBhIENvcmUgVGV4dCBiYXNlZCBmb250IGJhY2tlbmQgYnkgZGVmYXVsdC4g IElmCnlvdSBwcmVmZXIgdGhlIG9sZGVyIGZvbnQgc3R5bGUsIGVudGVyIHRoZSBmb2xsb3dpbmcg YXQgdGhlIGNvbW1hbmQtbGluZQpiZWZvcmUgc3RhcnRpbmcgRW1hY3M6CgogICAgICUgZGVmYXVs dHMgd3JpdGUgb3JnLmdudS5FbWFjcyBGb250QmFja2VuZCBucwoKCioqKiBGLjMgV2luZG93aW5n IFN5c3RlbSBFdmVudHMgdW5kZXIgbWFjT1MgLyBHTlVzdGVwCgpOZXh0c3RlcCBhcHBsaWNhdGlv bnMgcmVjZWl2ZSBhIG51bWJlciBvZiBzcGVjaWFsIGV2ZW50cyB3aGljaCBoYXZlIG5vIFgKZXF1 aXZhbGVudC4gIFRoZXNlIGFyZSBzZW50IGFzIHNwZWNpYWxseSBkZWZpbmVkIGtleSBldmVudHMs IHdoaWNoIGRvCm5vdCBjb3JyZXNwb25kIHRvIGFueSBzZXF1ZW5jZSBvZiBrZXlzdHJva2VzLiAg VW5kZXIgRW1hY3MsIHRoZXNlIGtleQpldmVudHMgY2FuIGJlIGJvdW5kIHRvIGZ1bmN0aW9ucyBq dXN0IGxpa2Ugb3JkaW5hcnkga2V5c3Ryb2tlcy4gIEhlcmUgaXMKYSBsaXN0IG9mIHRoZXNlIGV2 ZW50cy4KCjxucy1vcGVuLWZpbGU+CiAgICAgVGhpcyBldmVudCBvY2N1cnMgd2hlbiBhbm90aGVy IE5leHRzdGVwIGFwcGxpY2F0aW9uIHJlcXVlc3RzIHRoYXQKICAgICBFbWFjcyBvcGVuIGEgZmls ZS4gIEEgdHlwaWNhbCByZWFzb24gZm9yIHRoaXMgd291bGQgYmUgYSB1c2VyCiAgICAgZG91Ymxl LWNsaWNraW5nIGEgZmlsZSBpbiB0aGUgRmluZGVyIGFwcGxpY2F0aW9uLiAgQnkgZGVmYXVsdCwK ICAgICBFbWFjcyByZXNwb25kcyB0byB0aGlzIGV2ZW50IGJ5IG9wZW5pbmcgYSBuZXcgZnJhbWUg YW5kIHZpc2l0aW5nCiAgICAgdGhlIGZpbGUgaW4gdGhhdCBmcmFtZSAo4oCYbnMtZmluZC1maWxl 4oCZKS4gIEFzIGFuIGV4Y2VwdGlvbiwgaWYgdGhlCiAgICAgc2VsZWN0ZWQgYnVmZmVyIGlzIHRo ZSDigJgqc2NyYXRjaCrigJkgYnVmZmVyLCBFbWFjcyB2aXNpdHMgdGhlIGZpbGUgaW4KICAgICB0 aGUgc2VsZWN0ZWQgZnJhbWUuCgogICAgIFlvdSBjYW4gY2hhbmdlIGhvdyBFbWFjcyByZXNwb25k cyB0byBhIOKAmG5zLW9wZW4tZmlsZeKAmSBldmVudCBieQogICAgIGNoYW5naW5nIHRoZSB2YXJp YWJsZSDigJhucy1wb3AtdXAtZnJhbWVz4oCZLiAgSXRzIGRlZmF1bHQgdmFsdWUsCiAgICAg4oCY ZnJlc2jigJksIGlzIHdoYXQgd2UgaGF2ZSBqdXN0IGRlc2NyaWJlZC4gIEEgdmFsdWUgb2Yg4oCY dOKAmSBtZWFucyB0bwogICAgIGFsd2F5cyB2aXNpdCB0aGUgZmlsZSBpbiBhIG5ldyBmcmFtZS4g IEEgdmFsdWUgb2Yg4oCYbmls4oCZIG1lYW5zIHRvCiAgICAgYWx3YXlzIHZpc2l0IHRoZSBmaWxl IGluIHRoZSBzZWxlY3RlZCBmcmFtZS4KCjxucy1vcGVuLXRlbXAtZmlsZT4KICAgICBUaGlzIGV2 ZW50IG9jY3VycyB3aGVuIGFub3RoZXIgYXBwbGljYXRpb24gcmVxdWVzdHMgdGhhdCBFbWFjcyBv cGVuCiAgICAgYSB0ZW1wb3JhcnkgZmlsZS4gIEJ5IGRlZmF1bHQsIHRoaXMgaXMgaGFuZGxlZCBi eSBqdXN0IGdlbmVyYXRpbmcgYQogICAgIOKAmG5zLW9wZW4tZmlsZeKAmSBldmVudCwgdGhlIHJl c3VsdHMgb2Ygd2hpY2ggYXJlIGRlc2NyaWJlZCBhYm92ZS4KCjxucy1vcGVuLWZpbGUtbGluZT4K ICAgICBTb21lIGFwcGxpY2F0aW9ucywgc3VjaCBhcyBQcm9qZWN0QnVpbGRlciBhbmQgZ2RiLCBy ZXF1ZXN0IG5vdCBvbmx5CiAgICAgYSBwYXJ0aWN1bGFyIGZpbGUsIGJ1dCBhbHNvIGEgcGFydGlj dWxhciBsaW5lIG9yIHNlcXVlbmNlIG9mIGxpbmVzCiAgICAgaW4gdGhlIGZpbGUuICBFbWFjcyBo YW5kbGVzIHRoaXMgYnkgdmlzaXRpbmcgdGhhdCBmaWxlIGFuZAogICAgIGhpZ2hsaWdodGluZyB0 aGUgcmVxdWVzdGVkIGxpbmUgKOKAmG5zLW9wZW4tZmlsZS1zZWxlY3QtbGluZeKAmSkuCgo8bnMt ZHJhZy1uLWRyb3A+CiAgICAgVGhpcyBldmVudCBvY2N1cnMgd2hlbiBhIHVzZXIgZHJhZ3MgYW4g b2JqZWN0IGZyb20gYW5vdGhlcgogICAgIGFwcGxpY2F0aW9uIGludG8gYW4gRW1hY3MgZnJhbWUu ICBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBvcGVuIGEKICAgICBmaWxlIGluIHRoZSB3aW5k b3cgdW5kZXIgdGhlIG1vdXNlLCBvciB0byBpbnNlcnQgdGV4dCBhdCBwb2ludCBvZgogICAgIHRo ZSB3aW5kb3cgdW5kZXIgdGhlIG1vdXNlLiAgSXQgbWF5IHNvbWV0aW1lcyBiZSBuZWNlc3Nhcnkg dG8gdXNlCiAgICAgdGhlIDxNZXRhPiBrZXkgaW4gY29uanVuY3Rpb24gd2l0aCBkcmFnZ2luZyB0 byBmb3JjZSB0ZXh0CiAgICAgaW5zZXJ0aW9uLgoKPG5zLWNoYW5nZS1mb250PgogICAgIFRoaXMg ZXZlbnQgb2NjdXJzIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGZvbnQgaW4gYSBOZXh0c3RlcCBm b250CiAgICAgcGFuZWwgKHdoaWNoIGNhbiBiZSBvcGVuZWQgd2l0aCDigJhDbWQtdOKAmSkuICBU aGUgZGVmYXVsdCBiZWhhdmlvciBpcwogICAgIHRvIGFkanVzdCB0aGUgZm9udCBvZiB0aGUgc2Vs ZWN0ZWQgZnJhbWUKICAgICAo4oCYbnMtcmVzcG9uZC10by1jaGFuZ2Vmb2504oCZKS4gIFRoZSBu YW1lIGFuZCBzaXplIG9mIHRoZSBzZWxlY3RlZAogICAgIGZvbnQgYXJlIHN0b3JlZCBpbiB0aGUg dmFyaWFibGVzIOKAmG5zLWlucHV0LWZvbnTigJkgYW5kCiAgICAg4oCYbnMtaW5wdXQtZm9udHNp emXigJksIHJlc3BlY3RpdmVseS4KCjxucy1wb3dlci1vZmY+CiAgICAgVGhpcyBldmVudCBvY2N1 cnMgd2hlbiB0aGUgdXNlciBsb2dzIG91dCBhbmQgRW1hY3MgaXMgc3RpbGwKICAgICBydW5uaW5n LCBvciB3aGVuIOKAnFF1aXQgRW1hY3PigJ0gaXMgY2hvc2VuIGZyb20gdGhlIGFwcGxpY2F0aW9u IG1lbnUuCiAgICAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gc2F2ZSBhbGwgZmlsZS12aXNp dGluZyBidWZmZXJzLgoKICAgRW1hY3MgYWxzbyBhbGxvd3MgdXNlcnMgdG8gbWFrZSB1c2Ugb2Yg TmV4dHN0ZXAgc2VydmljZXMsIHZpYSBhIHNldApvZiBjb21tYW5kcyB3aG9zZSBuYW1lcyBiZWdp biB3aXRoIOKAmG5zLXNlcnZpY2Ut4oCZIGFuZCBlbmQgd2l0aCB0aGUgbmFtZQpvZiB0aGUgc2Vy dmljZS4gIFR5cGUg4oCYTS14IG5zLXNlcnZpY2UtPFRBQj7igJkgdG8gc2VlIGEgbGlzdCBvZiB0 aGVzZQpjb21tYW5kcy4gIFRoZXNlIGZ1bmN0aW9ucyBlaXRoZXIgb3BlcmF0ZSBvbiBtYXJrZWQg dGV4dCAocmVwbGFjaW5nIGl0CndpdGggdGhlIHJlc3VsdCkgb3IgdGFrZSBhIHN0cmluZyBhcmd1 bWVudCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgYQpzdHJpbmcuICBZb3UgY2FuIGFsc28gdXNl IHRoZSBMaXNwIGZ1bmN0aW9uIOKAmG5zLXBlcmZvcm0tc2VydmljZeKAmSB0byBwYXNzCmFyYml0 cmFyeSBzdHJpbmdzIHRvIGFyYml0cmFyeSBzZXJ2aWNlcyBhbmQgcmVjZWl2ZSB0aGUgcmVzdWx0 cyBiYWNrLgpOb3RlIHRoYXQgeW91IG1heSBuZWVkIHRvIHJlc3RhcnQgRW1hY3MgdG8gYWNjZXNz IG5ld2x5LWF2YWlsYWJsZQpzZXJ2aWNlcy4KCgoqKiogRi40IEdOVXN0ZXAgU3VwcG9ydAoKRW1h Y3MgY2FuIGJlIGJ1aWx0IGFuZCBydW4gdW5kZXIgR05Vc3RlcCwgYnV0IHRoZXJlIGFyZSBzdGls bCBpc3N1ZXMgdG8KYmUgYWRkcmVzc2VkLiAgSW50ZXJlc3RlZCBkZXZlbG9wZXJzIHNob3VsZCBj b250YWN0CjxlbWFjcy1kZXZlbEBnbnUub3JnPi4KCgoqKiBBcHBlbmRpeCBHIEVtYWNzIGFuZCBN aWNyb3NvZnQgV2luZG93cy9NUy1ET1MKClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgcGVjdWxpYXJp dGllcyBvZiB1c2luZyBFbWFjcyBvbiBNaWNyb3NvZnQKV2luZG93cy4gIFNvbWUgb2YgdGhlc2Ug cGVjdWxpYXJpdGllcyBhcmUgYWxzbyByZWxldmFudCB0byBNaWNyb3NvZnTigJlzCm9sZGVyIE1T LURPUyBvcGVyYXRpbmcgc3lzdGVtLiAgSG93ZXZlciwgRW1hY3MgZmVhdHVyZXMgdGhhdCBhcmUK cmVsZXZhbnQgX29ubHlfIHRvIE1TLURPUyBhcmUgZGVzY3JpYmVkIGluIGEgc2VwYXJhdGUgc2Vj dGlvbiAoKm5vdGUKTVMtRE9TOjopLgoKICAgTVMtV2luZG93cyBpcyBhIG5vbi1mcmVlIG9wZXJh dGluZyBzeXN0ZW07IHRoYXQgbWVhbnMgaXQgZGVuaWVzIGl0cwp1c2VycyB0aGUgZnJlZWRvbSB0 aGF0IGV2ZXJ5IGNvbXB1dGVyIHVzZXIgZGVzZXJ2ZXMuICBUaGF0IGlzIGFuCmluanVzdGljZS4g IEZvciB5b3VyIGZyZWVkb23igJlzIHNha2UsIHdlIHVyZ2UgeW91IHRvIHN3aXRjaCB0byBhIGZy ZWUKb3BlcmF0aW5nIHN5c3RlbS4KCiAgIFdlIHN1cHBvcnQgR05VIEVtYWNzIG9uIHByb3ByaWV0 YXJ5IG9wZXJhdGluZyBzeXN0ZW1zIGJlY2F1c2Ugd2UgaG9wZQp0aGlzIHRhc3RlIG9mIGZyZWVk b20gd2lsbCBpbnNwaXJlIHVzZXJzIHRvIGVzY2FwZSBmcm9tIHRoZW0uCgogICBUaGUgYmVoYXZp b3Igb2YgRW1hY3Mgb24gTVMtV2luZG93cyBpcyByZWFzb25hYmx5IHNpbWlsYXIgdG8gd2hhdCBp cwpkb2N1bWVudGVkIGluIHRoZSByZXN0IG9mIHRoZSBtYW51YWwsIGluY2x1ZGluZyBzdXBwb3J0 IGZvciBsb25nIGZpbGUKbmFtZXMsIG11bHRpcGxlIGZyYW1lcywgc2Nyb2xsIGJhcnMsIG1vdXNl IG1lbnVzLCBhbmQgc3VicHJvY2Vzc2VzLgpIb3dldmVyLCBhIGZldyBzcGVjaWFsIGNvbnNpZGVy YXRpb25zIGFwcGx5LCBhbmQgdGhleSBhcmUgZGVzY3JpYmVkCmhlcmUuCgorIE1lbnU6CgogIC0g V2luZG93cyBTdGFydHVwOjogICAgIEhvdyB0byBzdGFydCBFbWFjcyBvbiBXaW5kb3dzLgogIC0g VGV4dCBhbmQgQmluYXJ5OjogICAgIFRleHQgZmlsZXMgdXNlIENSTEYgdG8gdGVybWluYXRlIGxp bmVzLgogIC0gV2luZG93cyBGaWxlczo6ICAgICAgIEZpbGUtbmFtZSBjb252ZW50aW9ucyBvbiBX aW5kb3dzLgogIC0gbHMgaW4gTGlzcDo6ICAgICAgICAgIEVtdWxhdGlvbiBvZiDigJhsc+KAmSBm b3IgRGlyZWQuCiAgLSBXaW5kb3dzIEhPTUU6OiAgICAgICAgV2hlcmUgRW1hY3MgbG9va3MgZm9y IHlvdXIg4oCYLmVtYWNz4oCZIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlIGl0 IHN0YXJ0cyB1cC4KICAtIFdpbmRvd3MgS2V5Ym9hcmQ6OiAgICBXaW5kb3dzLXNwZWNpZmljIGtl eWJvYXJkIGZlYXR1cmVzLgogIC0gV2luZG93cyBNb3VzZTo6ICAgICAgIFdpbmRvd3Mtc3BlY2lm aWMgbW91c2UgZmVhdHVyZXMuCiAgLSBXaW5kb3dzIFByb2Nlc3Nlczo6ICAgUnVubmluZyBzdWJw cm9jZXNzZXMgb24gV2luZG93cy4KICAtIFdpbmRvd3MgUHJpbnRpbmc6OiAgICBIb3cgdG8gc3Bl Y2lmeSB0aGUgcHJpbnRlciBvbiBNUy1XaW5kb3dzLgogIC0gV2luZG93cyBGb250czo6ICAgICAg IFNwZWNpZnlpbmcgZm9udHMgb24gTVMtV2luZG93cy4KICAtIFdpbmRvd3MgTWlzYzo6ICAgICAg ICBNaXNjZWxsYW5lb3VzIFdpbmRvd3MgZmVhdHVyZXMuCiAgLSBNUy1ET1M6OiAgICAgICAgICAg ICAgVXNpbmcgRW1hY3Mgb24gTVMtRE9TLgoKCioqKiBHLjEgSG93IHRvIFN0YXJ0IEVtYWNzIG9u IE1TLVdpbmRvd3MKClRoZXJlIGFyZSBzZXZlcmFsIHdheXMgb2Ygc3RhcnRpbmcgRW1hY3Mgb24g TVMtV2luZG93czoKCiAgMS4gRnJvbSB0aGUgZGVza3RvcCBzaG9ydGN1dCBpY29uOiBlaXRoZXIg ZG91YmxlLWNsaWNrIHRoZSBsZWZ0IG1vdXNlCiAgICAgYnV0dG9uIG9uIHRoZSBpY29uLCBvciBj bGljayBvbmNlLCB0aGVuIHByZXNzIDxSRVQ+LiAgVGhlIGRlc2t0b3AKICAgICBzaG9ydGN1dCBz aG91bGQgc3BlY2lmeSBhcyBpdHMg4oCcVGFyZ2V04oCdIChpbiB0aGUg4oCcUHJvcGVydGllc+KA nSBvZiB0aGUKICAgICBzaG9ydGN1dCkgdGhlIGZ1bGwgYWJzb2x1dGUgZmlsZSBuYW1lIG9mIOKA mHJ1bmVtYWNzLmV4ZeKAmSwgX25vdF8gb2YKICAgICDigJhlbWFjcy5leGXigJkuICBUaGlzIGlz IGJlY2F1c2Ug4oCYcnVuZW1hY3MuZXhl4oCZIGhpZGVzIHRoZSBjb25zb2xlCiAgICAgd2luZG93 IHRoYXQgd291bGQgaGF2ZSBiZWVuIGNyZWF0ZWQgaWYgdGhlIHRhcmdldCBvZiB0aGUgc2hvcnRj dXQKICAgICB3ZXJlIOKAmGVtYWNzLmV4ZeKAmSAod2hpY2ggaXMgYSBjb25zb2xlIHByb2dyYW0s IGFzIGZhciBhcyBXaW5kb3dzIGlzCiAgICAgY29uY2VybmVkKS4gIElmIHlvdSB1c2UgdGhpcyBt ZXRob2QsIEVtYWNzIHN0YXJ0cyBpbiB0aGUgZGlyZWN0b3J5CiAgICAgc3BlY2lmaWVkIGJ5IHRo ZSBzaG9ydGN1dC4gIFRvIGNvbnRyb2wgd2hlcmUgdGhhdCBpcywgcmlnaHQtY2xpY2sKICAgICBv biB0aGUgc2hvcnRjdXQsIHNlbGVjdCDigJxQcm9wZXJ0aWVz4oCdLCBhbmQgaW4gdGhlIOKAnFNo b3J0Y3V04oCdIHRhYgogICAgIG1vZGlmeSB0aGUg4oCcU3RhcnQgaW7igJ0gZmllbGQgdG8geW91 ciBsaWtpbmcuCgogIDIuIEZyb20gYSB0YXNrLWJhciBzaG9ydGN1dCBpY29uLCBieSBjbGlja2lu ZyBvbmNlIHRoZSBsZWZ0IG1vdXNlCiAgICAgYnV0dG9uLiAgV2luZG93cyB2ZXJzaW9ucyBzaW5j ZSBWaXN0YSBhbGxvdyB5b3UgdG8gY3JlYXRlIHN1Y2gKICAgICBzaG9ydGN1dHMgYnkgInBpbm5p bmciIHRoZSBpY29uIG9mIGEgcnVubmluZyBwcm9ncmFtIHRoYXQgYXBwZWFycwogICAgIGluIHRo ZSB0YXNrIGJhci4gIFlvdSBjYW4gZG8gdGhhdCB3aXRoIEVtYWNzLCBidXQgYWZ0ZXJ3YXJkcyB5 b3UKICAgICB3aWxsIGhhdmUgdG8gY2hhbmdlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBwaW5uZWQg c2hvcnRjdXQgdG8gcnVuCiAgICAg4oCYcnVuZW1hY3MuZXhl4oCZLCBfbm90XyBvZiDigJhlbWFj cy5leGXigJkuICBZb3UgY2FuIGFsc28gcGluIEVtYWNzIHRvCiAgICAgdGhlIHRhc2sgYmFyIGJ5 IGNsaWNraW5nIHRoZSByaWdodCBtb3VzZSBidXR0b24gb24gaXRzIGljb24gaW4gdGhlCiAgICAg U3RhcnQgbWVudSwgdGhlbiBzZWxlY3Rpbmcg4oCYUGluIHRvIHRhc2tiYXLigJkuICBPbmNlIGFn YWluLCBiZSBzdXJlCiAgICAgdG8gc3BlY2lmeSDigJhydW5lbWFjcy5leGXigJkgYXMgdGhlIHBy b2dyYW0gdG8gcnVuLiAgWW91IGNhbiBjb250cm9sCiAgICAgd2hlcmUgRW1hY3Mgc3RhcnRzIGJ5 IHNldHRpbmcgdGhlIOKAnFN0YXJ0IGlu4oCdIGZpZWxkIG9mIHRoZQogICAgIHNob3J0Y3V04oCZ cyBQcm9wZXJ0aWVzLgoKICAzLiBGcm9tIHRoZSBDb21tYW5kIFByb21wdCB3aW5kb3csIGJ5IHR5 cGluZyDigJhlbWFjcyA8UkVUPuKAmSBhdCB0aGUKICAgICBwcm9tcHQuICBUaGUgQ29tbWFuZCBQ cm9tcHQgd2luZG93IHdoZXJlIHlvdSBkaWQgdGhhdCB3aWxsIG5vdCBiZQogICAgIGF2YWlsYWJs ZSBmb3IgaW52b2tpbmcgb3RoZXIgY29tbWFuZHMgdW50aWwgRW1hY3MgZXhpdHMuICBJbiB0aGlz CiAgICAgY2FzZSwgRW1hY3Mgd2lsbCBzdGFydCBpbiB0aGUgY3VycmVudCBkaXJlY3Rvcnkgb2Yg dGhlIFdpbmRvd3MKICAgICBzaGVsbC4KCiAgNC4gRnJvbSB0aGUgQ29tbWFuZCBQcm9tcHQgd2lu ZG93LCBieSB0eXBpbmcg4oCYcnVuZW1hY3MgPFJFVD7igJkgYXQgdGhlCiAgICAgcHJvbXB0LiAg VGhlIENvbW1hbmQgUHJvbXB0IHdpbmRvdyB3aGVyZSB5b3UgZGlkIHRoYXQgd2lsbCBiZQogICAg IGltbWVkaWF0ZWx5IGF2YWlsYWJsZSBmb3IgaW52b2tpbmcgb3RoZXIgY29tbWFuZHMuICBJbiB0 aGlzIGNhc2UsCiAgICAgRW1hY3Mgd2lsbCBzdGFydCBpbiB0aGUgY3VycmVudCBkaXJlY3Rvcnkg b2YgdGhlIFdpbmRvd3Mgc2hlbGwuCgogIDUuIEZyb20gdGhlIFdpbmRvd3Mg4oCYUnVu4oCZIGRp YWxvZyAobm9ybWFsbHkgcmVhY2hlZCBieSBjbGlja2luZyB0aGUKICAgICDigJhTdGFydOKAmSBi dXR0b24pLiAgVHlwaW5nIOKAmHJ1bmVtYWNzIDxSRVQ+4oCZIGludG8gdGhlIGRpYWxvZyB3aWxs CiAgICAgc3RhcnQgRW1hY3MgaW4gdGhlIHBhcmVudCBkaXJlY3Rvcnkgb2YgdGhlIFdpbmRvd3Mg ZXF1aXZhbGVudCBvZgogICAgIHlvdXIgdXNlcuKAmXMg4oCYSE9NReKAmSBkaXJlY3RvcnksIHNl ZSAqbm90ZSBXaW5kb3dzIEhPTUU6Oi4KCiAgNi4gVmlhIOKAmGVtYWNzY2xpZW50LmV4ZeKAmSBv ciDigJhlbWFjc2NsaWVudHcuZXhl4oCZLCB3aGljaCBhbGxvdyB5b3UgdG8KICAgICBpbnZva2Ug RW1hY3MgZnJvbSBvdGhlciBwcm9ncmFtcywgYW5kIHRvIHJldXNlIGEgcnVubmluZyBFbWFjcwog ICAgIHByb2Nlc3MgZm9yIHNlcnZpbmcgZWRpdGluZyBqb2JzIHJlcXVpcmVkIGJ5IG90aGVyIHBy b2dyYW1zLiAgKk5vdGUKICAgICBFbWFjcyBTZXJ2ZXI6Oi4gIFRoZSBkaWZmZXJlbmNlIGJldHdl ZW4g4oCYZW1hY3NjbGllbnQuZXhl4oCZIGFuZAogICAgIOKAmGVtYWNzY2xpZW50dy5leGXigJkg aXMgdGhhdCB0aGUgZm9ybWVyIGlzIGEgY29uc29sZSBwcm9ncmFtLCB3aGlsZQogICAgIHRoZSBs YXR0ZXIgaXMgYSBXaW5kb3dzIEdVSSBwcm9ncmFtLiAgQm90aCBwcm9ncmFtcyB3YWl0IGZvciBF bWFjcwogICAgIHRvIHNpZ25hbCB0aGF0IHRoZSBlZGl0aW5nIGpvYiBpcyBmaW5pc2hlZCwgYmVm b3JlIHRoZXkgZXhpdCBhbmQKICAgICByZXR1cm4gY29udHJvbCB0byB0aGUgcHJvZ3JhbSB0aGF0 IGludm9rZWQgdGhlbS4gIFdoaWNoIG9uZSBvZiB0aGVtCiAgICAgdG8gdXNlIGluIGVhY2ggY2Fz ZSBkZXBlbmRzIG9uIHRoZSBleHBlY3RhdGlvbnMgb2YgdGhlIHByb2dyYW0gdGhhdAogICAgIG5l ZWRzIGVkaXRpbmcgc2VydmljZXMuICBJZiB0aGF0IHByb2dyYW0gaXMgaXRzZWxmIGEgY29uc29s ZQogICAgICh0ZXh0LW1vZGUpIHByb2dyYW0sIHlvdSBzaG91bGQgdXNlIOKAmGVtYWNzY2xpZW50 LmV4ZeKAmSwgc28gdGhhdCBhbnkKICAgICBvZiBpdHMgbWVzc2FnZXMgYW5kIHByb21wdHMgYXBw ZWFyIGluIHRoZSBzYW1lIGNvbW1hbmQgd2luZG93IGFzCiAgICAgdGhvc2Ugb2YgdGhlIGludm9r aW5nIHByb2dyYW0uICBCeSBjb250cmFzdCwgaWYgdGhlIGludm9raW5nCiAgICAgcHJvZ3JhbSBp cyBhIEdVSSBwcm9ncmFtLCB5b3Ugd2lsbCBiZSBiZXR0ZXIgb2ZmIHVzaW5nCiAgICAg4oCYZW1h Y3NjbGllbnR3LmV4ZeKAmSwgYmVjYXVzZSDigJhlbWFjc2NsaWVudC5leGXigJkgd2lsbCBwb3Ag dXAgYSBjb21tYW5kCiAgICAgd2luZG93IGlmIGl0IGlzIGludm9rZWQgZnJvbSBhIEdVSSBwcm9n cmFtLiAgQSBub3RhYmxlIHNpdHVhdGlvbgogICAgIHdoZXJlIHlvdSB3b3VsZCB3YW50IOKAmGVt YWNzY2xpZW50dy5leGXigJkgaXMgd2hlbiB5b3UgcmlnaHQtY2xpY2sgb24KICAgICBhIGZpbGUg aW4gdGhlIFdpbmRvd3MgRXhwbG9yZXIgYW5kIHNlbGVjdCDigJxPcGVuIFdpdGjigJ0gZnJvbSB0 aGUKICAgICBwb3AtdXAgbWVudS4gIFVzZSB0aGUg4oCYLS1hbHRlcm5hdGUtZWRpdG9yPeKAmSBv ciDigJgtYeKAmSBvcHRpb25zIGlmCiAgICAgRW1hY3MgbWlnaHQgbm90IGJlIHJ1bm5pbmcgKG9y IG5vdCBydW5uaW5nIGFzIGEgc2VydmVyKSB3aGVuCiAgICAg4oCYZW1hY3NjbGllbnTigJkgaXMg aW52b2tlZOKAlHRoYXQgd2lsbCBhbHdheXMgZ2l2ZSB5b3UgYW4gZWRpdG9yLiAgV2hlbgogICAg IGludm9rZWQgdmlhIOKAmGVtYWNzY2xpZW504oCZLCBFbWFjcyB3aWxsIHN0YXJ0IGluIHRoZSBj dXJyZW50CiAgICAgZGlyZWN0b3J5IG9mIHRoZSBwcm9ncmFtIHRoYXQgaW52b2tlZCDigJhlbWFj c2NsaWVudOKAmS4KCiAgIE5vdGUgdGhhdCwgZHVlIHRvIGxpbWl0YXRpb25zIG9mIE1TLVdpbmRv d3MsIEVtYWNzIGNhbm5vdCBoYXZlIGJvdGgKR1VJIGFuZCB0ZXh0LW1vZGUgZnJhbWVzIGluIHRo ZSBzYW1lIHNlc3Npb24uICBJdCBhbHNvIGNhbm5vdCBvcGVuCnRleHQtbW9kZSBmcmFtZXMgb24g bW9yZSB0aGFuIGEgc2luZ2xlICJDb21tYW5kIFByb21wdCIgd2luZG93LCBiZWNhdXNlCmVhY2gg V2luZG93cyBwcm9ncmFtIGNhbiBoYXZlIG9ubHkgb25lIGNvbnNvbGUgYXQgYW55IGdpdmVuIHRp bWUuICBGb3IKdGhlc2UgcmVhc29ucywgaWYgeW91IGludm9rZSDigJhlbWFjc2NsaWVudOKAmSB3 aXRoIHRoZSDigJgtY+KAmSBvcHRpb24sIGFuZCB0aGUKRW1hY3Mgc2VydmVyIHJ1bnMgaW4gYSB0 ZXh0LW1vZGUgc2Vzc2lvbiwgRW1hY3Mgd2lsbCBhbHdheXMgY3JlYXRlIGEgbmV3CnRleHQtbW9k ZSBmcmFtZSBpbiB0aGUgc2FtZSAiQ29tbWFuZCBQcm9tcHQiIHdpbmRvdyB3aGVyZSBpdCB3YXMK c3RhcnRlZDsgYSBHVUkgZnJhbWUgd2lsbCBiZSBjcmVhdGVkIG9ubHkgaWYgdGhlIHNlcnZlciBy dW5zIGluIGEgR1VJCnNlc3Npb24uICBTaW1pbGFybHksIGlmIHlvdSBpbnZva2Ug4oCYZW1hY3Nj bGllbnTigJkgd2l0aCB0aGUg4oCYLXTigJkgb3B0aW9uLApFbWFjcyB3aWxsIGNyZWF0ZSBhIEdV SSBmcmFtZSBpZiB0aGUgc2VydmVyIHJ1bnMgaW4gYSBHVUkgc2Vzc2lvbiwgb3IgYQp0ZXh0LW1v ZGUgZnJhbWUgd2hlbiB0aGUgc2Vzc2lvbiBydW5zIGluIHRleHQgbW9kZSBpbiBhICJDb21tYW5k IFByb21wdCIKd2luZG93LiAgKk5vdGUgZW1hY3NjbGllbnQgT3B0aW9uczo6LgoKCioqKiBHLjIg VGV4dCBGaWxlcyBhbmQgQmluYXJ5IEZpbGVzCgpHTlUgRW1hY3MgdXNlcyBuZXdsaW5lIGNoYXJh Y3RlcnMgdG8gc2VwYXJhdGUgdGV4dCBsaW5lcy4gIFRoaXMgaXMgdGhlCmNvbnZlbnRpb24gdXNl ZCBvbiBHTlUsIFVuaXgsIGFuZCBvdGhlciBQT1NJWC1jb21wbGlhbnQgc3lzdGVtcy4KCiAgIEJ5 IGNvbnRyYXN0LCBNUy1ET1MgYW5kIE1TLVdpbmRvd3Mgbm9ybWFsbHkgdXNlIGNhcnJpYWdlIHJl dHVybgpmb2xsb3dlZCBieSBsaW5lZmVlZCwgYSB0d28tY2hhcmFjdGVyIHNlcXVlbmNlLCB0byBz ZXBhcmF0ZSB0ZXh0IGxpbmVzLgooTGluZWZlZWQgaXMgdGhlIHNhbWUgY2hhcmFjdGVyIGFzIG5l d2xpbmUuKSAgVGhlcmVmb3JlLCBjb252ZW5pZW50CmVkaXRpbmcgb2YgdHlwaWNhbCBmaWxlcyB3 aXRoIEVtYWNzIHJlcXVpcmVzIGNvbnZlcnNpb24gb2YgdGhlc2UKZW5kLW9mLWxpbmUgKEVPTCkg c2VxdWVuY2VzLiAgQW5kIHRoYXQgaXMgd2hhdCBFbWFjcyBub3JtYWxseSBkb2VzOiBpdApjb252 ZXJ0cyBjYXJyaWFnZSByZXR1cm4gZm9sbG93ZWQgYnkgbGluZWZlZWQgaW50byBuZXdsaW5lIHdo ZW4gcmVhZGluZwpmaWxlcywgYW5kIGNvbnZlcnRzIG5ld2xpbmUgaW50byBjYXJyaWFnZSByZXR1 cm4gZm9sbG93ZWQgYnkgbGluZWZlZWQKd2hlbiB3cml0aW5nIGZpbGVzLiAgVGhlIHNhbWUgbWVj aGFuaXNtIHRoYXQgaGFuZGxlcyBjb252ZXJzaW9uIG9mCmludGVybmF0aW9uYWwgY2hhcmFjdGVy IGNvZGVzIGRvZXMgdGhpcyBjb252ZXJzaW9uIGFsc28gKCpub3RlIENvZGluZwpTeXN0ZW1zOjop LgoKICAgT25lIGNvbnNlcXVlbmNlIG9mIHRoaXMgc3BlY2lhbCBmb3JtYXQtY29udmVyc2lvbiBv ZiBtb3N0IGZpbGVzIGlzCnRoYXQgY2hhcmFjdGVyIHBvc2l0aW9ucyBhcyByZXBvcnRlZCBieSBF bWFjcyAoKm5vdGUgUG9zaXRpb24gSW5mbzo6KSBkbwpub3QgYWdyZWUgd2l0aCB0aGUgZmlsZSBz aXplIGluZm9ybWF0aW9uIGtub3duIHRvIHRoZSBvcGVyYXRpbmcgc3lzdGVtLgoKICAgSW4gYWRk aXRpb24sIGlmIEVtYWNzIHJlY29nbml6ZXMgZnJvbSBhIGZpbGXigJlzIGNvbnRlbnRzIHRoYXQg aXQgdXNlcwpuZXdsaW5lIHJhdGhlciB0aGFuIGNhcnJpYWdlIHJldHVybiBmb2xsb3dlZCBieSBs aW5lZmVlZCBhcyBpdHMgbGluZQpzZXBhcmF0b3IsIGl0IGRvZXMgbm90IHBlcmZvcm0gRU9MIGNv bnZlcnNpb24gd2hlbiByZWFkaW5nIG9yIHdyaXRpbmcKdGhhdCBmaWxlLiAgVGh1cywgeW91IGNh biByZWFkIGFuZCBlZGl0IGZpbGVzIGZyb20gR05VIGFuZCBVbml4IHN5c3RlbXMKb24gTVMtRE9T IHdpdGggbm8gc3BlY2lhbCBlZmZvcnQsIGFuZCB0aGV5IHdpbGwgcmV0YWluIHRoZWlyIFVuaXgt c3R5bGUKZW5kLW9mLWxpbmUgY29udmVudGlvbiBhZnRlciB5b3UgZWRpdCB0aGVtLgoKICAgVGhl IG1vZGUgbGluZSBpbmRpY2F0ZXMgd2hldGhlciBlbmQtb2YtbGluZSB0cmFuc2xhdGlvbiB3YXMg dXNlZCBmb3IKdGhlIGN1cnJlbnQgYnVmZmVyLiAgSWYgTVMtRE9TIGVuZC1vZi1saW5lIHRyYW5z bGF0aW9uIGlzIGluIHVzZSBmb3IgdGhlCmJ1ZmZlciwgdGhlIE1TLVdpbmRvd3MgYnVpbGQgb2Yg RW1hY3MgZGlzcGxheXMgYSBiYWNrc2xhc2gg4oCYXOKAmSBhZnRlciB0aGUKY29kaW5nIHN5c3Rl bSBtbmVtb25pYyBuZWFyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1vZGUgbGluZSAoKm5vdGUgTW9k ZQpMaW5lOjopLiAgSWYgbm8gRU9MIHRyYW5zbGF0aW9uIHdhcyBwZXJmb3JtZWQsIHRoZSBzdHJp bmcg4oCYKFVuaXgp4oCZIGlzCmRpc3BsYXllZCBpbnN0ZWFkIG9mIHRoZSBiYWNrc2xhc2gsIHRv IGFsZXJ0IHlvdSB0aGF0IHRoZSBmaWxl4oCZcyBFT0wKZm9ybWF0IGlzIG5vdCB0aGUgdXN1YWwg Y2FycmlhZ2UgcmV0dXJuIGZvbGxvd2VkIGJ5IGxpbmVmZWVkLgoKICAgVG8gdmlzaXQgYSBmaWxl IGFuZCBzcGVjaWZ5IHdoZXRoZXIgaXQgdXNlcyBET1Mtc3R5bGUgb3IgVW5peC1zdHlsZQplbmQt b2YtbGluZSwgc3BlY2lmeSBhIGNvZGluZyBzeXN0ZW0gKCpub3RlIFRleHQgQ29kaW5nOjopLiAg Rm9yCmV4YW1wbGUsIOKAmEMteCA8UkVUPiBjIHVuaXggPFJFVD4gQy14IEMtZiBmb29iYXIudHh0 4oCZIHZpc2l0cyB0aGUgZmlsZQrigJhmb29iYXIudHh04oCZIHdpdGhvdXQgY29udmVydGluZyB0 aGUgRU9MczsgaWYgc29tZSBsaW5lIGVuZHMgd2l0aCBhCmNhcnJpYWdlIHJldHVybiBmb2xsb3dl ZCBieSBsaW5lZmVlZCBwYWlyLCBFbWFjcyB3aWxsIGRpc3BsYXkg4oCYXk3igJkgYXQKdGhlIGVu ZCBvZiB0aGF0IGxpbmUuICBTaW1pbGFybHksIHlvdSBjYW4gZGlyZWN0IEVtYWNzIHRvIHNhdmUg YSBidWZmZXIKaW4gYSBzcGVjaWZpZWQgRU9MIGZvcm1hdCB3aXRoIHRoZSDigJhDLXggPFJFVD4g ZuKAmSBjb21tYW5kLiAgRm9yIGV4YW1wbGUsCnRvIHNhdmUgYSBidWZmZXIgd2l0aCBVbml4IEVP TCBmb3JtYXQsIHR5cGUg4oCYQy14IDxSRVQ+IGYgdW5peCA8UkVUPiBDLXgKQy1z4oCZLiAgSWYg eW91IHZpc2l0IGEgZmlsZSB3aXRoIERPUyBFT0wgY29udmVyc2lvbiwgdGhlbiBzYXZlIGl0IHdp dGgKVW5peCBFT0wgZm9ybWF0LCB0aGF0IGVmZmVjdGl2ZWx5IGNvbnZlcnRzIHRoZSBmaWxlIHRv IFVuaXggRU9MIHN0eWxlLApsaWtlIHRoZSDigJhkb3MydW5peOKAmSBwcm9ncmFtLgoKICAgV2hl biB5b3UgdXNlIE5GUywgU2FtYmEsIG9yIHNvbWUgb3RoZXIgc2ltaWxhciBtZXRob2QgdG8gYWNj ZXNzIGZpbGUKc3lzdGVtcyB0aGF0IHJlc2lkZSBvbiBjb21wdXRlcnMgdXNpbmcgR05VIG9yIFVu aXggc3lzdGVtcywgRW1hY3Mgc2hvdWxkCm5vdCBwZXJmb3JtIGVuZC1vZi1saW5lIHRyYW5zbGF0 aW9uIG9uIGFueSBmaWxlcyBpbiB0aGVzZSBmaWxlCnN5c3RlbXPigJRub3QgZXZlbiB3aGVuIHlv dSBjcmVhdGUgYSBuZXcgZmlsZS4gIFRvIHJlcXVlc3QgdGhpcywgZGVzaWduYXRlCnRoZXNlIGZp bGUgc3lzdGVtcyBhcyAidW50cmFuc2xhdGVkIiBmaWxlIHN5c3RlbXMgYnkgY2FsbGluZyB0aGUK ZnVuY3Rpb24g4oCYYWRkLXVudHJhbnNsYXRlZC1maWxlc3lzdGVt4oCZLiAgSXQgdGFrZXMgb25l IGFyZ3VtZW50OiB0aGUgZmlsZQpzeXN0ZW0gbmFtZSwgaW5jbHVkaW5nIGEgZHJpdmUgbGV0dGVy IGFuZCBvcHRpb25hbGx5IGEgZGlyZWN0b3J5LiAgRm9yCmV4YW1wbGUsCgogICAgIChhZGQtdW50 cmFuc2xhdGVkLWZpbGVzeXN0ZW0gIlo6IikKCmRlc2lnbmF0ZXMgZHJpdmUgWiBhcyBhbiB1bnRy YW5zbGF0ZWQgZmlsZSBzeXN0ZW0sIGFuZAoKICAgICAoYWRkLXVudHJhbnNsYXRlZC1maWxlc3lz dGVtICJaOlxcZm9vIikKCmRlc2lnbmF0ZXMgZGlyZWN0b3J5IOKAmFxmb2/igJkgb24gZHJpdmUg WiBhcyBhbiB1bnRyYW5zbGF0ZWQgZmlsZSBzeXN0ZW0uCgogICBNb3N0IG9mdGVuIHlvdSB3b3Vs ZCB1c2Ug4oCYYWRkLXVudHJhbnNsYXRlZC1maWxlc3lzdGVt4oCZIGluIHlvdXIK4oCYLmVtYWNz 4oCZIG9yIOKAmGluaXQuZWzigJkgaW5pdCBmaWxlLCBvciBpbiDigJhzaXRlLXN0YXJ0LmVs4oCZ IHNvIHRoYXQgYWxsIHRoZQp1c2VycyBhdCB5b3VyIHNpdGUgZ2V0IHRoZSBiZW5lZml0IG9mIGl0 LgoKICAgVG8gY291bnRlcm1hbmQgdGhlIGVmZmVjdCBvZiDigJhhZGQtdW50cmFuc2xhdGVkLWZp bGVzeXN0ZW3igJksIHVzZSB0aGUKZnVuY3Rpb24g4oCYcmVtb3ZlLXVudHJhbnNsYXRlZC1maWxl c3lzdGVt4oCZLiAgVGhpcyBmdW5jdGlvbiB0YWtlcyBvbmUKYXJndW1lbnQsIHdoaWNoIHNob3Vs ZCBiZSBhIHN0cmluZyBqdXN0IGxpa2UgdGhlIG9uZSB0aGF0IHdhcyB1c2VkCnByZXZpb3VzbHkg d2l0aCDigJhhZGQtdW50cmFuc2xhdGVkLWZpbGVzeXN0ZW3igJkuCgogICBEZXNpZ25hdGluZyBh IGZpbGUgc3lzdGVtIGFzIHVudHJhbnNsYXRlZCBkb2VzIG5vdCBhZmZlY3QgY2hhcmFjdGVyCnNl dCBjb252ZXJzaW9uLCBvbmx5IGVuZC1vZi1saW5lIGNvbnZlcnNpb24uICBFc3NlbnRpYWxseSwg aXQgZGlyZWN0cwpFbWFjcyB0byBkZWZhdWx0IHRvIGNyZWF0aW5nIG5ldyBmaWxlcyB3aXRoIHRo ZSBVbml4LXN0eWxlIGNvbnZlbnRpb24gb2YKdXNpbmcgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGEg bGluZS4gICpOb3RlIENvZGluZyBTeXN0ZW1zOjouCgoKKioqIEcuMyBGaWxlIE5hbWVzIG9uIE1T LVdpbmRvd3MKCk1TLVdpbmRvd3MgYW5kIE1TLURPUyBub3JtYWxseSB1c2UgYSBiYWNrc2xhc2gs IOKAmFzigJksIHRvIHNlcGFyYXRlIG5hbWUKdW5pdHMgd2l0aGluIGEgZmlsZSBuYW1lLCBpbnN0 ZWFkIG9mIHRoZSBzbGFzaCB1c2VkIG9uIG90aGVyIHN5c3RlbXMuCkVtYWNzIG9uIE1TLURPUy9N Uy1XaW5kb3dzIHBlcm1pdHMgdXNlIG9mIGVpdGhlciBzbGFzaCBvciBiYWNrc2xhc2gsIGFuZAph bHNvIGtub3dzIGFib3V0IGRyaXZlIGxldHRlcnMgaW4gZmlsZSBuYW1lcy4KCiAgIE9uIE1TLURP Uy9NUy1XaW5kb3dzLCBmaWxlIG5hbWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlLCBzbyBFbWFjcyBi eQpkZWZhdWx0IGlnbm9yZXMgbGV0dGVyLWNhc2UgaW4gZmlsZSBuYW1lcyBkdXJpbmcgY29tcGxl dGlvbi4gIFRvIHRoaXMKZW5kLCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiDigJhyZWFkLWZpbGUtbmFt ZS1jb21wbGV0aW9uLWlnbm9yZS1jYXNl4oCZIGlzCm5vbi3igJhuaWzigJkgb24gTVMtRE9TL01T LVdpbmRvd3MuICAqTm90ZSBDb21wbGV0aW9uIE9wdGlvbnM6Oi4KCiAgIFRoZSB2YXJpYWJsZSDi gJh3MzItZ2V0LXRydWUtZmlsZS1hdHRyaWJ1dGVz4oCZIGNvbnRyb2xzIHdoZXRoZXIgRW1hY3MK c2hvdWxkIGlzc3VlIGFkZGl0aW9uYWwgc3lzdGVtIGNhbGxzIHRvIGRldGVybWluZSBtb3JlIGFj Y3VyYXRlbHkgZmlsZQphdHRyaWJ1dGVzIGluIHByaW1pdGl2ZXMgbGlrZSDigJhmaWxlLWF0dHJp YnV0ZXPigJkgYW5kCuKAmGRpcmVjdG9yeS1maWxlcy1hbmQtYXR0cmlidXRlc+KAmS4gIFRoZXNl IGFkZGl0aW9uYWwgY2FsbHMgYXJlIG5lZWRlZCB0bwpyZXBvcnQgY29ycmVjdCBmaWxlIG93bmVy c2hpcCwgbGluayBjb3VudHMgYW5kIGZpbGUgdHlwZXMgZm9yIHNwZWNpYWwKZmlsZXMgc3VjaCBh cyBwaXBlcy4gIFdpdGhvdXQgdGhlc2Ugc3lzdGVtIGNhbGxzLCBmaWxlIG93bmVyc2hpcCB3aWxs IGJlCmF0dHJpYnV0ZWQgdG8gdGhlIGN1cnJlbnQgdXNlciwgbGluayBjb3VudHMgd2lsbCBiZSBh bHdheXMgcmVwb3J0ZWQgYXMKMSwgYW5kIHNwZWNpYWwgZmlsZXMgd2lsbCBiZSByZXBvcnRlZCBh cyByZWd1bGFyIGZpbGVzLgoKICAgSWYgdGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgaXMg4oCY bG9jYWzigJkgKHRoZSBkZWZhdWx0KSwgRW1hY3Mgd2lsbAppc3N1ZSB0aGVzZSBhZGRpdGlvbmFs IHN5c3RlbSBjYWxscyBvbmx5IGZvciBmaWxlcyBvbiBsb2NhbCBmaXhlZApkcml2ZXMuICBBbnkg b3RoZXIgbm9uLeKAmG5pbOKAmSB2YWx1ZSBtZWFucyBkbyB0aGlzIGV2ZW4gZm9yIHJlbW92YWJs ZSBhbmQKcmVtb3RlIHZvbHVtZXMsIHdoZXJlIHRoaXMgY291bGQgcG90ZW50aWFsbHkgc2xvdyBk b3duIERpcmVkIGFuZCBvdGhlcgpyZWxhdGVkIGZlYXR1cmVzLiAgVGhlIHZhbHVlIG9mIOKAmG5p bOKAmSBtZWFucyBuZXZlciBpc3N1ZSB0aG9zZSBzeXN0ZW0KY2FsbHMuICBOb24t4oCYbmls4oCZ IHZhbHVlcyBhcmUgbW9yZSB1c2VmdWwgb24gTlRGUyB2b2x1bWVzLCB3aGljaCBzdXBwb3J0Cmhh cmQgbGlua3MgYW5kIGZpbGUgc2VjdXJpdHksIHRoYW4gb24gRkFULCBGQVQzMiwgYW5kIGV4RkFU IHZvbHVtZXMuCgogICBVbmxpa2UgVW5peCwgTVMtV2luZG93cyBmaWxlIHN5c3RlbXMgcmVzdHJp Y3QgdGhlIHNldCBvZiBjaGFyYWN0ZXJzCnRoYXQgY2FuIGJlIHVzZWQgaW4gYSBmaWxlIG5hbWUu ICBUaGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgYXJlIG5vdAphbGxvd2VkOgoKICAg4oCiIFNoZWxs IHJlZGlyZWN0aW9uIHN5bWJvbHMg4oCYPOKAmSwg4oCYPuKAmSwgYW5kIOKAmHzigJkuCgogICDi gKIgQ29sb24g4oCYOuKAmSAoZXhjZXB0IGFmdGVyIHRoZSBkcml2ZSBsZXR0ZXIpLgoKICAg4oCi IEZvcndhcmQgc2xhc2gg4oCYL+KAmSBhbmQgYmFja3NsYXNoIOKAmFzigJkgKGV4Y2VwdCBhcyBk aXJlY3RvcnkKICAgICBzZXBhcmF0b3JzKS4KCiAgIOKAoiBXaWxkY2FyZCBjaGFyYWN0ZXJzIOKA mCrigJkgYW5kIOKAmD/igJkuCgogICDigKIgQ29udHJvbCBjaGFyYWN0ZXJzIHdob3NlIGNvZGVw b2ludHMgYXJlIDEgdGhyb3VnaCAzMSBkZWNpbWFsLiAgSW4KICAgICBwYXJ0aWN1bGFyLCBuZXds aW5lcyBpbiBmaWxlIG5hbWVzIGFyZSBub3QgYWxsb3dlZC4KCiAgIOKAoiBUaGUgbnVsbCBjaGFy YWN0ZXIsIHdob3NlIGNvZGVwb2ludCBpcyB6ZXJvICh0aGlzIGxpbWl0YXRpb24gZXhpc3RzCiAg ICAgb24gVW5peCBmaWxlc3lzdGVtcyBhcyB3ZWxsKS4KCkluIGFkZGl0aW9uLCByZWZlcmVuY2lu ZyBhbnkgZmlsZSB3aG9zZSBuYW1lIG1hdGNoZXMgYSBET1MgY2hhcmFjdGVyCmRldmljZSwgc3Vj aCBhcyDigJhOVUzigJkgb3Ig4oCYTFBUMeKAmSBvciDigJhQUk7igJkgb3Ig4oCYQ09O4oCZLCB3 aXRoIG9yIHdpdGhvdXQgYW55CmZpbGUtbmFtZSBleHRlbnNpb24sIHdpbGwgYWx3YXlzIHJlc29s dmUgdG8gdGhvc2UgY2hhcmFjdGVyIGRldmljZXMsIGluCmFueSBkaXJlY3RvcnkuICBUaGVyZWZv cmUsIG9ubHkgdXNlIHN1Y2ggZmlsZSBuYW1lcyB3aGVuIHlvdSB3YW50IHRvIHVzZQp0aGUgY29y cmVzcG9uZGluZyBjaGFyYWN0ZXIgZGV2aWNlLgoKCioqKiBHLjQgRW11bGF0aW9uIG9mIOKAmGxz 4oCZIG9uIE1TLVdpbmRvd3MKCkRpcmVkIG5vcm1hbGx5IHVzZXMgdGhlIGV4dGVybmFsIHByb2dy YW0g4oCYbHPigJkgdG8gcHJvZHVjZSB0aGUgZGlyZWN0b3J5Cmxpc3RpbmcgZGlzcGxheWVkIGlu IERpcmVkIGJ1ZmZlcnMgKCpub3RlIERpcmVkOjopLiAgSG93ZXZlciwgTVMtV2luZG93cwphbmQg TVMtRE9TIHN5c3RlbXMgZG9u4oCZdCBjb21lIHdpdGggc3VjaCBhIHByb2dyYW0sIGFsdGhvdWdo IHNldmVyYWwKcG9ydHMgb2YgR05VIOKAmGxz4oCZIGFyZSBhdmFpbGFibGUuICBUaGVyZWZvcmUs IEVtYWNzIG9uIHRob3NlIHN5c3RlbXMKX2VtdWxhdGVzXyDigJhsc+KAmSBpbiBMaXNwLCBieSB1 c2luZyB0aGUg4oCYbHMtbGlzcC5lbOKAmSBwYWNrYWdlLiAgV2hpbGUK4oCYbHMtbGlzcC5lbOKA mSBwcm92aWRlcyBhIHJlYXNvbmFibHkgZnVsbCBlbXVsYXRpb24gb2Yg4oCYbHPigJksIHRoZXJl IGFyZQpzb21lIG9wdGlvbnMgYW5kIGZlYXR1cmVzIHBlY3VsaWFyIHRvIHRoYXQgZW11bGF0aW9u OyB0aGV5IGFyZSBkZXNjcmliZWQKaW4gdGhpcyBzZWN0aW9uLgoKICAgVGhlIOKAmGxz4oCZIGVt dWxhdGlvbiBzdXBwb3J0cyBtYW55IG9mIHRoZSDigJhsc+KAmSBzd2l0Y2hlcywgYnV0IGl0IGRv ZXNu4oCZdApzdXBwb3J0IGFsbCBvZiB0aGVtLiAgSGVyZeKAmXMgdGhlIGxpc3Qgb2YgdGhlIHN3 aXRjaGVzIGl0IGRvZXMgc3VwcG9ydDoK4oCYLUHigJksIOKAmC1h4oCZLCDigJgtQuKAmSwg4oCY LUPigJksIOKAmC1j4oCZLCDigJgtR+KAmSwg4oCYLWfigJksIOKAmC1o4oCZLCDigJgtaeKAmSwg 4oCYLW7igJksIOKAmC1S4oCZLCDigJgtcuKAmSwK4oCYLVPigJksIOKAmC1z4oCZLCDigJgtdOKA mSwg4oCYLVXigJksIOKAmC114oCZLCDigJgtduKAmSwgYW5kIOKAmC1Y4oCZLiAgVGhlIOKAmC1G 4oCZIHN3aXRjaCBpcwpwYXJ0aWFsbHkgc3VwcG9ydGVkIChpdCBhcHBlbmRzIHRoZSBjaGFyYWN0 ZXIgdGhhdCBjbGFzc2lmaWVzIHRoZSBmaWxlLApidXQgZG9lcyBub3QgcHJldmVudCBzeW1saW5r IGZvbGxvd2luZykuCgogICBPbiBNUy1XaW5kb3dzIGFuZCBNUy1ET1MsIOKAmGxzLWxpc3AuZWzi gJkgaXMgcHJlbG9hZGVkIHdoZW4gRW1hY3MgaXMKYnVpbHQsIHNvIHRoZSBMaXNwIGVtdWxhdGlv biBvZiDigJhsc+KAmSBpcyBhbHdheXMgdXNlZCBvbiB0aG9zZSBwbGF0Zm9ybXMuCklmIHlvdSBo YXZlIGEgcG9ydGVkIOKAmGxz4oCZLCBzZXR0aW5nCuKAmGxzLWxpc3AtdXNlLWluc2VydC1kaXJl Y3RvcnktcHJvZ3JhbeKAmSB0byBhIG5vbi3igJhuaWzigJkgdmFsdWUgd2lsbCByZXZlcnQKdG8g dXNpbmcgYW4gZXh0ZXJuYWwgcHJvZ3JhbSBuYW1lZCBieSB0aGUgdmFyaWFibGUK4oCYaW5zZXJ0 LWRpcmVjdG9yeS1wcm9ncmFt4oCZLgoKICAgVGhlIG9yZGVyIGluIHdoaWNoIOKAmGxzLWxpc3Au ZWzigJkgc29ydHMgZmlsZXMgZGVwZW5kcyBvbiBzZXZlcmFsCmN1c3RvbWl6YWJsZSBvcHRpb25z IGRlc2NyaWJlZCBiZWxvdy4KCiAgIFRoZSBkZWZhdWx0IHNvcnRpbmcgb3JkZXIgZm9sbG93cyBs b2NhbGUtc3BlY2lmaWMgcnVsZXMgZGVyaXZlZCBmcm9tCnlvdXIgc3lzdGVtIGxvY2FsZS4gIFlv dSBjYW4gbWFrZSB0aGUgb3JkZXIgbG9jYWxlLWluZGVwZW5kZW50IGJ5CmN1c3RvbWl6aW5nIOKA mGxzLWxpc3AtdXNlLXN0cmluZy1jb2xsYXRl4oCZIHRvIGEg4oCYbmls4oCZIHZhbHVlLgoKICAg T24gR05VIGFuZCBVbml4IHN5c3RlbXMsIHdoZW4gdGhlIGxvY2FsZeKAmXMgZW5jb2RpbmcgaXMg VVRGLTgsIHRoZQpjb2xsYXRpb24gb3JkZXIgZm9sbG93cyB0aGUgVW5pY29kZSBDb2xsYXRpb24g QWxnb3JpdGhtIChVQ0EpLiAgVG8gaGF2ZQphIHNpbWlsYXIgZWZmZWN0IG9uIE1TLVdpbmRvd3Ms IHRoZSB2YXJpYWJsZQrigJhscy1saXNwLVVDQS1saWtlLWNvbGxhdGlvbuKAmSBzaG91bGQgaGF2 ZSBhIG5vbi3igJhuaWzigJkgdmFsdWUgKHRoaXMgaXMgdGhlCmRlZmF1bHQpLiAgVGhlIHJlc3Vs dGluZyBzb3J0aW5nIG9yZGVyIGlnbm9yZXMgcHVuY3R1YXRpb24sIHN5bWJvbApjaGFyYWN0ZXJz LCBhbmQgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLCBzbyDigJguZm9vYmFy4oCZLCDigJhmb29iYXLi gJkgYW5kIOKAmGZvbyBiYXLigJkKd2lsbCBhcHBlYXIgdG9nZXRoZXIgcmF0aGVyIHRoYW4gZmFy IGFwYXJ0LgoKICAgQnkgZGVmYXVsdCwg4oCYbHMtbGlzcC5lbOKAmSB1c2VzIGEgY2FzZS1zZW5z aXRpdmUgc29ydCBvcmRlciBmb3IgdGhlCmRpcmVjdG9yeSBsaXN0aW5nIGl0IHByb2R1Y2VzOyB0 aGlzIGlzIHNvIHRoZSBsaXN0aW5nIGxvb2tzIHRoZSBzYW1lIGFzCm9uIG90aGVyIHBsYXRmb3Jt cy4gIElmIHlvdSB3aXNoIHRoYXQgdGhlIGZpbGVzIGJlIHNvcnRlZCBpbgpjYXNlLWluc2Vuc2l0 aXZlIG9yZGVyLCBzZXQgdGhlIHZhcmlhYmxlIOKAmGxzLWxpc3AtaWdub3JlLWNhc2XigJkgdG8g YQpub24t4oCYbmls4oCZIHZhbHVlLgoKICAgQnkgZGVmYXVsdCwgZmlsZXMgYW5kIHN1YmRpcmVj dG9yaWVzIGFyZSBzb3J0ZWQgdG9nZXRoZXIsIHRvIGVtdWxhdGUKdGhlIGJlaGF2aW9yIG9mIOKA mGxz4oCZLiAgSG93ZXZlciwgbmF0aXZlIE1TLVdpbmRvd3MvTVMtRE9TIGZpbGUgbWFuYWdlcnMK bGlzdCB0aGUgZGlyZWN0b3JpZXMgYmVmb3JlIHRoZSBmaWxlczsgaWYgeW91IHdhbnQgdGhhdCBi ZWhhdmlvciwKY3VzdG9taXplIHRoZSBvcHRpb24g4oCYbHMtbGlzcC1kaXJzLWZpcnN04oCZIHRv IGEgbm9uLeKAmG5pbOKAmSB2YWx1ZS4KCiAgIFRoZSB2YXJpYWJsZSDigJhscy1saXNwLXZlcmJv c2l0eeKAmSBjb250cm9scyB0aGUgZmlsZSBhdHRyaWJ1dGVzIHRoYXQK4oCYbHMtbGlzcC5lbOKA mSBkaXNwbGF5cy4gIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBsaXN0IHRoYXQgY29udGFpbnMgb25l IG9yCm1vcmUgb2YgdGhlIHN5bWJvbHMg4oCYbGlua3PigJksIOKAmHVpZOKAmSwgYW5kIOKAmGdp ZOKAmS4gIOKAmGxpbmtz4oCZIG1lYW5zIGRpc3BsYXkKdGhlIGNvdW50IG9mIGRpZmZlcmVudCBm aWxlIG5hbWVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCAoYS5rLmEuCiJsaW5rcyB0byIpIHRo ZSBmaWxl4oCZcyBkYXRhOyB0aGlzIGlzIG9ubHkgdXNlZnVsIG9uIE5URlMgdm9sdW1lcy4gIOKA mHVpZOKAmQptZWFucyBkaXNwbGF5IHRoZSBudW1lcmljYWwgaWRlbnRpZmllciBvZiB0aGUgdXNl ciB3aG8gb3ducyB0aGUgZmlsZS4K4oCYZ2lk4oCZIG1lYW5zIGRpc3BsYXkgdGhlIG51bWVyaWNh bCBpZGVudGlmaWVyIG9mIHRoZSBmaWxlIG93bmVy4oCZcyBncm91cC4KVGhlIGRlZmF1bHQgdmFs dWUgaXMg4oCYKGxpbmtzIHVpZCBnaWQp4oCZIGkuZS4sIGFsbCB0aGUgMyBvcHRpb25hbAphdHRy aWJ1dGVzIGFyZSBkaXNwbGF5ZWQuCgogICBUaGUgdmFyaWFibGUg4oCYbHMtbGlzcC1lbXVsYXRp b27igJkgY29udHJvbHMgdGhlIGZsYXZvciBvZiB0aGUg4oCYbHPigJkKZW11bGF0aW9uIGJ5IHNl dHRpbmcgdGhlIGRlZmF1bHRzIGZvciB0aGUgMyBvcHRpb25zIGRlc2NyaWJlZCBhYm92ZToK4oCY bHMtbGlzcC1pZ25vcmUtY2FzZeKAmSwg4oCYbHMtbGlzcC1kaXJzLWZpcnN04oCZLCBhbmQg4oCY bHMtbGlzcC12ZXJib3NpdHnigJkuClRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiBjYW4gYmUgb25l IG9mIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKCuKAmEdOVeKAmQrigJhuaWzigJkKICAgICBFbXVs YXRlIEdOVSBzeXN0ZW1zOyB0aGlzIGlzIHRoZSBkZWZhdWx0LiAgVGhpcyBzZXRzCiAgICAg4oCY bHMtbGlzcC1pZ25vcmUtY2FzZeKAmSBhbmQg4oCYbHMtbGlzcC1kaXJzLWZpcnN04oCZIHRvIOKA mG5pbOKAmSwgYW5kCiAgICAg4oCYbHMtbGlzcC12ZXJib3NpdHnigJkgdG8g4oCYKGxpbmtzIHVp ZCBnaWQp4oCZLgrigJhVTklY4oCZCiAgICAgRW11bGF0ZSBVbml4IHN5c3RlbXMuICBMaWtlIOKA mEdOVeKAmSwgYnV0IHNldHMg4oCYbHMtbGlzcC12ZXJib3NpdHnigJkgdG8KICAgICDigJgobGlu a3MgdWlkKeKAmS4K4oCYTWFjT1PigJkKICAgICBFbXVsYXRlIG1hY09TLiAgU2V0cyDigJhscy1s aXNwLWlnbm9yZS1jYXNl4oCZIHRvIOKAmHTigJksIGFuZAogICAgIOKAmGxzLWxpc3AtZGlycy1m aXJzdOKAmSBhbmQg4oCYbHMtbGlzcC12ZXJib3NpdHnigJkgdG8g4oCYbmls4oCZLgrigJhNUy1X aW5kb3dz4oCZCiAgICAgRW11bGF0ZSBNUy1XaW5kb3dzLiAgU2V0cyDigJhscy1saXNwLWlnbm9y ZS1jYXNl4oCZIGFuZAogICAgIOKAmGxzLWxpc3AtZGlycy1maXJzdOKAmSB0byDigJh04oCZLCBh bmQg4oCYbHMtbGlzcC12ZXJib3NpdHnigJkgdG8g4oCYbmls4oCZIG9uCiAgICAgV2luZG93cyA5 WCBhbmQgdG8g4oCYdOKAmSBvbiBtb2Rlcm4gdmVyc2lvbnMgb2YgV2luZG93cy4gIE5vdGUgdGhh dCB0aGUKICAgICBkZWZhdWx0IGVtdWxhdGlvbiBpcyBfbm90XyDigJhNUy1XaW5kb3dz4oCZLCBl dmVuIG9uIFdpbmRvd3MsIHNpbmNlCiAgICAgbWFueSB1c2VycyBvZiBFbWFjcyBvbiB0aG9zZSBw bGF0Zm9ybXMgcHJlZmVyIHRoZSBHTlUgZGVmYXVsdHMuCgpBbnkgb3RoZXIgdmFsdWUgb2Yg4oCY bHMtbGlzcC1lbXVsYXRpb27igJkgbWVhbnMgdGhlIHNhbWUgYXMg4oCYR05V4oCZLgpDdXN0b21p emluZyB0aGlzIG9wdGlvbiBjYWxscyB0aGUgZnVuY3Rpb24g4oCYbHMtbGlzcC1zZXQtb3B0aW9u c+KAmSB0bwp1cGRhdGUgdGhlIDMgZGVwZW5kZW50IG9wdGlvbnMgYXMgbmVlZGVkLiAgSWYgeW91 IGNoYW5nZSB0aGUgdmFsdWUgb2YKdGhpcyB2YXJpYWJsZSB3aXRob3V0IHVzaW5nIGN1c3RvbWl6 ZSBhZnRlciDigJhscy1saXNwLmVs4oCZIGlzIGxvYWRlZCAobm90ZQp0aGF0IGl0IGlzIHByZWxv YWRlZCBvbiBNUy1XaW5kb3dzIGFuZCBNUy1ET1MpLCB5b3UgY2FuIGNhbGwgdGhhdApmdW5jdGlv biBtYW51YWxseSBmb3IgdGhlIHNhbWUgcmVzdWx0LgoKICAgVGhlIHZhcmlhYmxlIOKAmGxzLWxp c3Atc3VwcG9ydC1zaGVsbC13aWxkY2FyZHPigJkgY29udHJvbHMgaG93IGZpbGUtbmFtZQpwYXR0 ZXJucyBhcmUgc3VwcG9ydGVkOiBpZiBpdCBpcyBub24t4oCYbmls4oCZICh0aGUgZGVmYXVsdCks IHRoZXkgYXJlCnRyZWF0ZWQgYXMgc2hlbGwtc3R5bGUgd2lsZGNhcmRzOyBvdGhlcndpc2UgdGhl eSBhcmUgdHJlYXRlZCBhcyBFbWFjcwpyZWd1bGFyIGV4cHJlc3Npb25zLgoKICAgVGhlIHZhcmlh YmxlIOKAmGxzLWxpc3AtZm9ybWF0LXRpbWUtbGlzdOKAmSBkZWZpbmVzIGhvdyB0byBmb3JtYXQg dGhlCmRhdGUgYW5kIHRpbWUgb2YgZmlsZXMuICBfVGhlIHZhbHVlIG9mIHRoaXMgdmFyaWFibGUg aXMgaWdub3JlZF8sIHVubGVzcwpFbWFjcyBjYW5ub3QgZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGxv Y2FsZS4gIChIb3dldmVyLCBpZiB0aGUgdmFsdWUgb2YK4oCYbHMtbGlzcC11c2UtbG9jYWxpemVk LXRpbWUtZm9ybWF04oCZIGlzIG5vbi3igJhuaWzigJksIEVtYWNzIG9iZXlzCuKAmGxzLWxpc3At Zm9ybWF0LXRpbWUtbGlzdOKAmSBldmVuIGlmIHRoZSBjdXJyZW50IGxvY2FsZSBpcyBhdmFpbGFi bGU7IHNlZQpiZWxvdy4pCgogICBUaGUgdmFsdWUgb2Yg4oCYbHMtbGlzcC1mb3JtYXQtdGltZS1s aXN04oCZIGlzIGEgbGlzdCBvZiAyIHN0cmluZ3MuICBUaGUKZmlyc3Qgc3RyaW5nIGlzIHVzZWQg aWYgdGhlIGZpbGUgd2FzIG1vZGlmaWVkIHdpdGhpbiB0aGUgY3VycmVudCB5ZWFyLAp3aGlsZSB0 aGUgc2Vjb25kIHN0cmluZyBpcyB1c2VkIGZvciBvbGRlciBmaWxlcy4gIEluIGVhY2ggb2YgdGhl c2UgdHdvCnN0cmluZ3MgeW91IGNhbiB1c2Ug4oCYJeKAmS1zZXF1ZW5jZXMgdG8gc3Vic3RpdHV0 ZSBwYXJ0cyBvZiB0aGUgdGltZS4gIEZvcgpleGFtcGxlOgogICAgICgiJWIgJWUgJUg6JU0iICIl YiAlZSAgJVkiKQoKTm90ZSB0aGF0IHRoZSBzdHJpbmdzIHN1YnN0aXR1dGVkIGZvciB0aGVzZSDi gJgl4oCZLXNlcXVlbmNlcyBkZXBlbmQgb24gdGhlCmN1cnJlbnQgbG9jYWxlLiAgKk5vdGUgKGVs aXNwKVRpbWUgUGFyc2luZzo6LCBmb3IgbW9yZSBhYm91dCBmb3JtYXQgdGltZQpzcGVjcy4KCiAg IE5vcm1hbGx5LCBFbWFjcyBmb3JtYXRzIHRoZSBmaWxlIHRpbWUgc3RhbXBzIGluIGVpdGhlciB0 cmFkaXRpb25hbCBvcgpJU08tc3R5bGUgdGltZSBmb3JtYXQuICBIb3dldmVyLCBpZiB0aGUgdmFs dWUgb2YgdGhlIHZhcmlhYmxlCuKAmGxzLWxpc3AtdXNlLWxvY2FsaXplZC10aW1lLWZvcm1hdOKA mSBpcyBub24t4oCYbmls4oCZLCBFbWFjcyBmb3JtYXRzIGZpbGUKdGltZSBzdGFtcHMgYWNjb3Jk aW5nIHRvIHdoYXQg4oCYbHMtbGlzcC1mb3JtYXQtdGltZS1saXN04oCZIHNwZWNpZmllcy4gIFRo ZQrigJgl4oCZLXNlcXVlbmNlcyBpbiDigJhscy1saXNwLWZvcm1hdC10aW1lLWxpc3TigJkgcHJv ZHVjZSBsb2NhbGUtZGVwZW5kZW50Cm1vbnRoIGFuZCBkYXkgbmFtZXMsIHdoaWNoIG1pZ2h0IGNh dXNlIG1pc2FsaWdubWVudCBvZiBjb2x1bW5zIGluIERpcmVkCmRpc3BsYXkuICBUaGUgZGVmYXVs dCB2YWx1ZSBvZiDigJhscy1saXNwLXVzZS1sb2NhbGl6ZWQtdGltZS1mb3JtYXTigJkgaXMK4oCY bmls4oCZLgoKCioqKiBHLjUgSE9NRSBhbmQgU3RhcnR1cCBEaXJlY3RvcmllcyBvbiBNUy1XaW5k b3dzCgpUaGUgV2luZG93cyBlcXVpdmFsZW50IG9mIOKAmEhPTUXigJkgaXMgdGhlICJ1c2VyLXNw ZWNpZmljIGFwcGxpY2F0aW9uIGRhdGEKZGlyZWN0b3J5Ii4gIFRoZSBhY3R1YWwgbG9jYXRpb24g ZGVwZW5kcyBvbiB0aGUgV2luZG93cyB2ZXJzaW9uOyB0eXBpY2FsCnZhbHVlcyBhcmUg4oCYQzpc RG9jdW1lbnRzIGFuZCBTZXR0aW5nc1xVU0VSTkFNRVxBcHBsaWNhdGlvbiBEYXRh4oCZIG9uCldp bmRvd3MgMjAwMCB1cCB0byBYUCwg4oCYQzpcVXNlcnNcVVNFUk5BTUVcQXBwRGF0YVxSb2FtaW5n 4oCZIG9uIFdpbmRvd3MKVmlzdGEgYW5kIGxhdGVyLCBhbmQgZWl0aGVyIOKAmEM6XFdJTkRPV1Nc QXBwbGljYXRpb24gRGF0YeKAmSBvcgrigJhDOlxXSU5ET1dTXFByb2ZpbGVzXFVTRVJOQU1FXEFw cGxpY2F0aW9uIERhdGHigJkgb24gV2luZG93cyA5WC9NRS4gIElmCnRoaXMgZGlyZWN0b3J5IGRv ZXMgbm90IGV4aXN0IG9yIGNhbm5vdCBiZSBhY2Nlc3NlZCwgRW1hY3MgZmFsbHMgYmFjayB0bwri gJhDOlzigJkgYXMgdGhlIGRlZmF1bHQgdmFsdWUgb2Yg4oCYSE9NReKAmS4KCiAgIFlvdSBjYW4g b3ZlcnJpZGUgdGhpcyBkZWZhdWx0IHZhbHVlIG9mIOKAmEhPTUXigJkgYnkgZXhwbGljaXRseSBz ZXR0aW5nCnRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSDigJhIT01F4oCZIHRvIHBvaW50IHRvIGFu eSBkaXJlY3Rvcnkgb24geW91cgpzeXN0ZW0uICDigJhIT01F4oCZIGNhbiBiZSBzZXQgZWl0aGVy IGZyb20gdGhlIGNvbW1hbmQgc2hlbGwgcHJvbXB0IG9yIGZyb20K4oCYUHJvcGVydGllc+KAmSBk aWFsb2cgb2Yg4oCYTXkgQ29tcHV0ZXLigJkuICDigJhIT01F4oCZIGNhbiBhbHNvIGJlIHNldCBp biB0aGUKc3lzdGVtIHJlZ2lzdHJ5LCAqbm90ZSBNUy1XaW5kb3dzIFJlZ2lzdHJ5OjouCgogICBG b3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIEVtYWNzKDEpLCBpZiB0aGVy ZSBpcyBhIGZpbGUKbmFtZWQg4oCYLmVtYWNz4oCZIGluIOKAmEM6XOKAmSwgdGhlIHJvb3QgZGly ZWN0b3J5IG9mIGRyaXZlIOKAmEM64oCZLCBhbmQg4oCYSE9NReKAmSBpcwpzZXQgbmVpdGhlciBp biB0aGUgZW52aXJvbm1lbnQgbm9yIGluIHRoZSBSZWdpc3RyeSwgRW1hY3Mgd2lsbCB0cmVhdAri gJhDOlzigJkgYXMgdGhlIGRlZmF1bHQg4oCYSE9NReKAmSBsb2NhdGlvbiwgYW5kIHdpbGwgbm90 IGxvb2sgaW4gdGhlCmFwcGxpY2F0aW9uIGRhdGEgZGlyZWN0b3J5LCBldmVuIGlmIGl0IGV4aXN0 cy4gIE5vdGUgdGhhdCBvbmx5IOKAmC5lbWFjc+KAmQppcyBsb29rZWQgZm9yIGluIOKAmEM6XOKA mTsgdGhlIG9sZGVyIG5hbWUg4oCYX2VtYWNz4oCZIChzZWUgYmVsb3cpIGlzIG5vdC4KVGhpcyB1 c2Ugb2Yg4oCYQzpcLmVtYWNz4oCZIHRvIGRlZmluZSDigJhIT01F4oCZIGlzIGRlcHJlY2F0ZWQ7 IEVtYWNzIHdpbGwKZGlzcGxheSBhIHdhcm5pbmcgYWJvdXQgaXRzIHVzZSBkdXJpbmcgc3RhcnR1 cC4KCiAgIFdoYXRldmVyIHRoZSBmaW5hbCBwbGFjZSBpcywgRW1hY3Mgc2V0cyB0aGUgaW50ZXJu YWwgdmFsdWUgb2YgdGhlCuKAmEhPTUXigJkgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcG9pbnQg dG8gaXQsIGFuZCBpdCB3aWxsIHVzZSB0aGF0CmxvY2F0aW9uIGZvciBvdGhlciBmaWxlcyBhbmQg ZGlyZWN0b3JpZXMgaXQgbm9ybWFsbHkgbG9va3MgZm9yIG9yCmNyZWF0ZXMgaW4geW91ciBob21l IGRpcmVjdG9yeS4KCiAgIFlvdSBjYW4gYWx3YXlzIGZpbmQgb3V0IHdoYXQgRW1hY3MgdGhpbmtz IGlzIHlvdXIgaG9tZSBkaXJlY3RvcnnigJlzCmxvY2F0aW9uIGJ5IHR5cGluZyDigJhDLXggZCB+ LyA8UkVUPuKAmS4gIFRoaXMgc2hvdWxkIHByZXNlbnQgdGhlIGxpc3Qgb2YKZmlsZXMgaW4gdGhl IGhvbWUgZGlyZWN0b3J5LCBhbmQgc2hvdyBpdHMgZnVsbCBuYW1lIG9uIHRoZSBmaXJzdCBsaW5l LgpMaWtld2lzZSwgdG8gdmlzaXQgeW91ciBpbml0IGZpbGUsIHR5cGUg4oCYQy14IEMtZiB+Ly5l bWFjcyA8UkVUPuKAmQooYXNzdW1pbmcgdGhlIGZpbGXigJlzIG5hbWUgaXMg4oCYLmVtYWNz4oCZ KS4KCiAgIFlvdXIgaW5pdCBmaWxlIGNhbiBoYXZlIGFueSBuYW1lIG1lbnRpb25lZCBpbiAqbm90 ZSBJbml0IEZpbGU6Oi4KCiAgIEJlY2F1c2UgTVMtRE9TIGRvZXMgbm90IGFsbG93IGZpbGUgbmFt ZXMgd2l0aCBsZWFkaW5nIGRvdHMsIGFuZCBvbGRlcgpXaW5kb3dzIHN5c3RlbXMgbWFkZSBpdCBo YXJkIHRvIGNyZWF0ZSBmaWxlcyB3aXRoIHN1Y2ggbmFtZXMsIHRoZQpXaW5kb3dzIHBvcnQgb2Yg RW1hY3Mgc3VwcG9ydHMgYW4gaW5pdCBmaWxlIG5hbWUg4oCYX2VtYWNz4oCZLCBpZiBzdWNoIGEK ZmlsZSBleGlzdHMgaW4gdGhlIGhvbWUgZGlyZWN0b3J5IGFuZCDigJguZW1hY3PigJkgZG9lcyBu b3QuICBUaGlzIG5hbWUgaXMKY29uc2lkZXJlZCBvYnNvbGV0ZSwgc28gRW1hY3Mgd2lsbCBkaXNw bGF5IGEgd2FybmluZyBpZiBpdCBpcyB1c2VkLgoKICAgLS0tLS0tLS0tLSBGb290bm90ZXMgLS0t LS0tLS0tLQoKICAgKDEpIE9sZGVyIHZlcnNpb25zIG9mIEVtYWNzIGRpZG7igJl0IGNoZWNrIHRo ZSBhcHBsaWNhdGlvbiBkYXRhCmRpcmVjdG9yeS4KCgoqKiogRy42IEtleWJvYXJkIFVzYWdlIG9u IE1TLVdpbmRvd3MKClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIFdpbmRvd3Mtc3BlY2lmaWMg ZmVhdHVyZXMgcmVsYXRlZCB0byBrZXlib2FyZAppbnB1dCBpbiBFbWFjcy4KCiAgIE1hbnkga2V5 IGNvbWJpbmF0aW9ucyAoa25vd24gYXMg4oCca2V5Ym9hcmQgc2hvcnRjdXRz4oCdKSB0aGF0IGhh dmUKY29udmVudGlvbmFsIHVzZXMgaW4gTVMtV2luZG93cyBwcm9ncmFtcyBjb25mbGljdCB3aXRo IHRyYWRpdGlvbmFsIEVtYWNzCmtleSBiaW5kaW5ncy4gIChUaGVzZSBFbWFjcyBrZXkgYmluZGlu Z3Mgd2VyZSBlc3RhYmxpc2hlZCB5ZWFycyBiZWZvcmUKTWljcm9zb2Z0IHdhcyBmb3VuZGVkLikg IEV4YW1wbGVzIG9mIGNvbmZsaWN0cyBpbmNsdWRlIOKAmEMtY+KAmSwg4oCYQy144oCZLArigJhD LXrigJksIOKAmEMtYeKAmSwgYW5kIOKAmFctPFNQQz7igJkuICBZb3UgY2FuIHJlZGVmaW5lIHNv bWUgb2YgdGhlbSB3aXRoCm1lYW5pbmdzIG1vcmUgbGlrZSB0aGUgTVMtV2luZG93cyBtZWFuaW5n cyBieSBlbmFibGluZyBDVUEgTW9kZSAoKm5vdGUKQ1VBIEJpbmRpbmdzOjopLiAgQW5vdGhlciBv cHRpb25hbCBmZWF0dXJlIHdoaWNoIHdpbGwgbWFrZSBFbWFjcyBiZWhhdmUKbGlrZSBvdGhlciBX aW5kb3dzIGFwcGxpY2F0aW9ucyBpcyBEZWxldGUgU2VsZWN0aW9uIG1vZGUgKCpub3RlIFVzaW5n ClJlZ2lvbjo6KS4KCiAgIEJ5IGRlZmF1bHQsIHRoZSBrZXkgbGFiZWxlZCA8QWx0PiBpcyBtYXBw ZWQgYXMgdGhlIDxNZXRhPiBrZXkuICBJZgp5b3Ugd2lzaCBpdCB0byBwcm9kdWNlIHRoZSDigJhB bHTigJkgbW9kaWZpZXIgaW5zdGVhZCwgc2V0IHRoZSB2YXJpYWJsZQrigJh3MzItYWx0LWlzLW1l dGHigJkgdG8gYSDigJhuaWzigJkgdmFsdWUuCgogICBNUy1XaW5kb3dzIHJlc2VydmVzIGNlcnRh aW4ga2V5IGNvbWJpbmF0aW9ucywgc3VjaCBhcyDigJg8QWx0Pi08VEFCPuKAmQphbmQgYSBudW1i ZXIgb2YgV2luZG93cyBrZXkgY29tYmluYXRpb25zLCBmb3IgaXRzIG93biB1c2UuICBUaGVzZSBr ZXkKY29tYmluYXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3lzdGVtIGJlZm9yZSBFbWFj cyBjYW4gc2VlIHRoZW0uCkFsc28sIG9uIFdpbmRvd3MgMTAsIGFsbCBXaW5kb3dzIGtleSBjb21i aW5hdGlvbnMgYXJlIHJlc2VydmVkIGJ5IHRoZQpzeXN0ZW0gaW4gc3VjaCBhIHdheSB0aGF0IHRo ZXkgYXJlIG5ldmVyIHByb3BhZ2F0ZWQgdG8gYXBwbGljYXRpb25zLApldmVuIGlmIHRoZSBzeXN0 ZW0gZG9lcyBub3QgY3VycmVudGx5IGRlZmluZSBhIGhvdGtleSBvbiB0aGUgc3BlY2lmaWMKY29t YmluYXRpb24uICBZb3UgY2FuIHVzZSB0aGUg4oCYdzMyLXJlZ2lzdGVyLWhvdC1rZXnigJkgZnVu Y3Rpb24gdG8gYWxsb3cgYQprZXkgc2VxdWVuY2UgdG8gYmUgc2VlbiBieSBFbWFjcyBpbnN0ZWFk IG9mIGJlaW5nIGdyYWJiZWQgYnkgV2luZG93cy4KV2hlbiByZWdpc3RlcmVkIGFzIGEgaG90IGtl eSwgdGhlIGtleSBjb21iaW5hdGlvbiBpcyBwdWxsZWQgb3V0IG9mIHRoZQpzeXN0ZW3igJlzIGlu cHV0IHF1ZXVlIGJlZm9yZSBpdCBpcyBoYW5kbGVkIGJ5IFdpbmRvd3MsIGVmZmVjdGl2ZWx5Cm92 ZXJyaWRpbmcgdGhlIHNwZWNpYWwgbWVhbmluZyBvZiB0aGF0IGtleSBzZXF1ZW5jZSBmb3IgV2lu ZG93cy4gIFRoZQpvdmVycmlkZSBpcyBvbmx5IGVmZmVjdGl2ZSB3aGVuIEVtYWNzIGlzIGFjdGl2 ZTsgd2l0aCBvdGhlciBhcHBsaWNhdGlvbnMKb24gdGhlIGZvcmVncm91bmQgdGhlIGtleXMgYmVo YXZlIG5vcm1hbGx5LgoKICAgVGhlIGFyZ3VtZW50IHRvIOKAmHczMi1yZWdpc3Rlci1ob3Qta2V5 4oCZIG11c3QgYmUgYSBzaW5nbGUga2V5IHdpdGggYQpzaW5nbGUgbW9kaWZpZXIsIGluIHZlY3Rv ciBmb3JtIHRoYXQgd291bGQgYmUgYWNjZXB0YWJsZSB0bwrigJhkZWZpbmUta2V54oCZLiAgVGhl IGNvbnRyb2wgYW5kIHNoaWZ0IG1vZGlmaWVycyBoYXZlIG5vIGVmZmVjdCBvbiB0aGUKYXJndW1l bnQuICBUaGUgbWV0YSBtb2RpZmllciBpcyBpbnRlcnByZXRlZCBhcyB0aGUgPEFsdD4ga2V5IGlm CuKAmHczMi1hbHQtaXMtbWV0YeKAmSBpcyDigJh04oCZICh0aGUgZGVmYXVsdCksIGFuZCB0aGUg c3VwZXIgYW5kIGh5cGVyCm1vZGlmaWVycyBhcmUgaW50ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHRo ZSBiaW5kaW5ncyBvZgrigJh3MzItbHdpbmRvdy1tb2RpZmllcuKAmSBhbmQg4oCYdzMyLXJ3aW5k b3ctbW9kaWZpZXLigJkuICBBZGRpdGlvbmFsbHksIGEKbW9kaWZpZXIgd2l0aCB0aGUgdHJhaWxp bmcgZGFzaCBidXQgd2l0aCBubyBrZXkgaW5kaWNhdGVzIHRoYXQgYWxsCldpbmRvd3MgZGVmaW5l ZCBob3RrZXlzIGZvciB0aGF0IG1vZGlmaWVyIGFyZSB0byBiZSBvdmVycmlkZGVuIGluIHRoZQpm YXZvciBvZiBFbWFjcy4KCiAgIEZvciBleGFtcGxlLCDigJgodzMyLXJlZ2lzdGVyLWhvdC1rZXkg W00tdGFiXSnigJkgbGV0cyB5b3UgdXNlIOKAmE0tPFRBQj7igJkKbm9ybWFsbHkgaW4gRW1hY3M7 IGZvciBpbnN0YW5jZSwgdG8gY29tcGxldGUgdGhlIHdvcmQgb3Igc3ltYm9sIGF0IHBvaW50CmF0 IHRvcCBsZXZlbCwgb3IgdG8gY29tcGxldGUgdGhlIGN1cnJlbnQgc2VhcmNoIHN0cmluZyBhZ2Fp bnN0CnByZXZpb3VzbHkgc291Z2h0IHN0cmluZ3MgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaC4K 4oCYKHczMi1yZWdpc3Rlci1ob3Qta2V5IFtzLV0p4oCZIHdpdGgg4oCYdzMyLWx3aW5kb3ctbW9k aWZpZXLigJkgYm91bmQgdG8K4oCYc3VwZXLigJkgZGlzYWJsZXMgYWxsIHRoZSBXaW5kb3dz4oCZ IG93biBXaW5kb3dzIGtleSBiYXNlZCBzaG9ydGN1dHMuKDEpCgogICBOb3RlIHRoYXQg4oCYdzMy LXJlZ2lzdGVyLWhvdC1rZXnigJkgY2hlY2tzIHRoZSDigJh3MzItW2xyXXdpbmRvdy1tb2RpZmll cuKAmQp2YWx1ZXMgYXQgdGhlIHRpbWUgb2YgdGhlIGZ1bmN0aW9uIGNhbGwuICBUaHVzLCB5b3Ug Y2FuIHNldArigJh3MzItbHdpbmRvdy1tb2RpZmllcuKAmSBhcyDigJhzdXBlcuKAmSwgdGhlbiBj YWxsIOKAmCh3MzItcmVnaXN0ZXItaG90LWtleQpbcy1yXSnigJksIGFuZCBmaW5hbGx5IHNldCDi gJh3MzItcndpbmRvdy1tb2RpZmllcuKAmSBhcyDigJhzdXBlcuKAmSBhcyB3ZWxsLiAgVGhlCnJl c3VsdCBpcyB0aGF0IHRoZSBsZWZ0IFdpbmRvd3Mga2V5IHRvZ2V0aGVyIHdpdGgg4oCYUuKAmSBp bnZva2VzIHdoaWNoZXZlcgpmdW5jdGlvbiB5b3UgaGF2ZSBib3VuZCBmb3IgdGhlIGNvbWJpbmF0 aW9uIGluIEVtYWNzLCBhbmQgdGhlIHJpZ2h0CldpbmRvd3Mga2V5IGFuZCDigJhS4oCZIG9wZW5z IHRoZSBXaW5kb3dzIOKAmFJ1buKAmSBkaWFsb2cuCgogICBUaGUgaG90a2V5IHJlZ2lzdHJhdGlv bnMgYWx3YXlzIGFsc28gaW5jbHVkZSBhbGwgdGhlIHNoaWZ0IGFuZApjb250cm9sIG1vZGlmaWVy IGNvbWJpbmF0aW9ucyBmb3IgdGhlIGdpdmVuIGhvdGtleTsgdGhhdCBpcywgcmVnaXN0ZXJpbmcK 4oCYcy1h4oCZIGFzIGEgaG90a2V5IGdpdmVzIHlvdSDigJhTLXMtYeKAmSwg4oCYQy1zLWHigJkg YW5kIOKAmEMtUy1zLWHigJkgYXMgd2VsbC4KCiAgIE9uIFdpbmRvd3MgOTggYW5kIE1FLCB0aGUg aG90a2V5IHJlZ2lzdHJhdGlvbiBpcyBtb3JlIHJlc3RyaWN0ZWQuClRoZSBkZXNpcmVkIGhvdGtl eSBtdXN0IGFsd2F5cyBiZSBmdWxseSBzcGVjaWZpZWQsIGFuZArigJh3MzItcGhhbnRvbS1rZXkt Y29kZeKAmSBjYW4gYmUgY3VzdG9taXplZCB0byBhY2hpZXZlIGRlc2lyZWQgcmVzdWx0cy4KCiAg IFRoZSBmdW5jdGlvbiDigJh3MzItdW5yZWdpc3Rlci1ob3Qta2V54oCZIHJldmVyc2VzIHRoZSBl ZmZlY3Qgb2YK4oCYdzMyLXJlZ2lzdGVyLWhvdC1rZXnigJkgZm9yIGl0cyBhcmd1bWVudCBrZXkg c2VxdWVuY2UuCgogICBCeSBkZWZhdWx0LCB0aGUgPENhcHNMb2NrPiBrZXkgb25seSBhZmZlY3Rz IG5vcm1hbCBjaGFyYWN0ZXIga2V5cyAoaXQKY29udmVydHMgbG93ZXItY2FzZSBjaGFyYWN0ZXJz IHRvIHRoZWlyIHVwcGVyLWNhc2UgdmFyaWFudHMpLiAgSG93ZXZlciwKaWYgeW91IHNldCB0aGUg dmFyaWFibGUg4oCYdzMyLWNhcHNsb2NrLWlzLXNoaWZ0bG9ja+KAmSB0byBhIG5vbi3igJhuaWzi gJkKdmFsdWUsIHRoZSA8Q2Fwc0xvY2s+IGtleSB3aWxsIGFmZmVjdCBub24tY2hhcmFjdGVyIGtl eXMgYXMgd2VsbCwgYXMgaWYKeW91IHByZXNzZWQgdGhlIDxTSElGVD4ga2V5IHdoaWxlIHR5cGlu ZyB0aGUgbm9uLWNoYXJhY3RlciBrZXkuCgogICBJZiB0aGUgdmFyaWFibGUg4oCYdzMyLWVuYWJs ZS1jYXBzLWxvY2vigJkgaXMgc2V0IHRvIGEg4oCYbmls4oCZIHZhbHVlLCB0aGUKPENhcHNMb2Nr PiBrZXkgcHJvZHVjZXMgdGhlIHN5bWJvbCDigJhjYXBzbG9ja+KAmSBpbnN0ZWFkIG9mIHRoZSBz aGlmdGVkCnZlcnNpb24gb2YgdHlwZWQga2V5cy4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIOKAmHTi gJkuCgogICBTaW1pbGFybHksIGlmIOKAmHczMi1lbmFibGUtbnVtLWxvY2vigJkgaXMg4oCYbmls 4oCZLCB0aGUgPE51bUxvY2s+IGtleSB3aWxsCnByb2R1Y2UgdGhlIHN5bWJvbCDigJhrcC1udW1s b2Nr4oCZLiAgVGhlIGRlZmF1bHQgaXMg4oCYdOKAmSwgd2hpY2ggY2F1c2VzCjxOdW1Mb2NrPiB0 byB3b3JrIGFzIGV4cGVjdGVkOiB0b2dnbGUgdGhlIG1lYW5pbmcgb2YgdGhlIGtleXMgb24gdGhl Cm51bWVyaWMga2V5cGFkLgoKICAgVGhlIHZhcmlhYmxlIOKAmHczMi1hcHBzLW1vZGlmaWVy4oCZ IGNvbnRyb2xzIHRoZSBlZmZlY3Qgb2YgdGhlIDxBcHBzPgprZXkgKHVzdWFsbHkgbG9jYXRlZCBi ZXR3ZWVuIHRoZSByaWdodCA8QWx0PiBhbmQgdGhlIHJpZ2h0IDxDdHJsPiBrZXlzKS4KSXRzIHZh bHVlIGNhbiBiZSBvbmUgb2YgdGhlIHN5bWJvbHMg4oCYaHlwZXLigJksIOKAmHN1cGVy4oCZLCDi gJhtZXRh4oCZLCDigJhhbHTigJksCuKAmGNvbnRyb2zigJksIG9yIOKAmHNoaWZ04oCZIGZvciB0 aGUgcmVzcGVjdGl2ZSBtb2RpZmllciwgb3Ig4oCYbmls4oCZIHRvIGFwcGVhciBhcwp0aGUga2V5 IOKAmGFwcHPigJkuICBUaGUgZGVmYXVsdCBpcyDigJhuaWzigJkuCgogICBUaGUgdmFyaWFibGUg 4oCYdzMyLWx3aW5kb3ctbW9kaWZpZXLigJkgZGV0ZXJtaW5lcyB0aGUgZWZmZWN0IG9mIHRoZSBs ZWZ0CldpbmRvd3Mga2V5ICh1c3VhbGx5IGxhYmVsZWQgd2l0aCA8c3RhcnQ+IGFuZCB0aGUgV2lu ZG93cyBsb2dvKS4gIElmIGl0cwp2YWx1ZSBpcyDigJhuaWzigJkgKHRoZSBkZWZhdWx0KSwgdGhl IGtleSB3aWxsIHByb2R1Y2UgdGhlIHN5bWJvbCDigJhsd2luZG934oCZLgpTZXR0aW5nIGl0IHRv IG9uZSBvZiB0aGUgc3ltYm9scyDigJhoeXBlcuKAmSwg4oCYc3VwZXLigJksIOKAmG1ldGHigJks IOKAmGFsdOKAmSwK4oCYY29udHJvbOKAmSwgb3Ig4oCYc2hpZnTigJkgd2lsbCBwcm9kdWNlIHRo ZSByZXNwZWN0aXZlIG1vZGlmaWVyLiAgQSBzaW1pbGFyCnZhcmlhYmxlIOKAmHczMi1yd2luZG93 LW1vZGlmaWVy4oCZIGNvbnRyb2xzIHRoZSBlZmZlY3Qgb2YgdGhlIHJpZ2h0IFdpbmRvd3MKa2V5 LCBhbmQg4oCYdzMyLXNjcm9sbC1sb2NrLW1vZGlmaWVy4oCZIGRvZXMgdGhlIHNhbWUgZm9yIHRo ZSA8U2NyTG9jaz4ga2V5LgpJZiB0aGVzZSB2YXJpYWJsZXMgYXJlIHNldCB0byDigJhuaWzigJks IHRoZSByaWdodCBXaW5kb3dzIGtleSBwcm9kdWNlcyB0aGUKc3ltYm9sIOKAmHJ3aW5kb3figJkg YW5kIDxTY3JMb2NrPiBwcm9kdWNlcyB0aGUgc3ltYm9sIOKAmHNjcm9sbOKAmS4gIElmIHlvdQp3 YW50IDxTY3JMb2NrPiB0byBwcm9kdWNlIHRoZSBzYW1lIGVmZmVjdCBhcyBpbiBvdGhlciBhcHBs aWNhdGlvbnMsIGkuZS4KdG9nZ2xlIHRoZSBTY3JvbGwgTG9jayBMRUQgaW5kaWNhdGlvbiBvbiB0 aGUga2V5Ym9hcmQsIHNldArigJh3MzItc2Nyb2xsLWxvY2stbW9kaWZpZXLigJkgdG8g4oCYdOKA mSBvciBhbnkgbm9uLeKAmG5pbOKAmSB2YWx1ZSBvdGhlciB0aGFuIHRoZQphYm92ZSBtb2RpZmll ciBzeW1ib2xzLgoKICAgRW1hY3MgY29tcGlsZWQgYXMgYSBuYXRpdmUgV2luZG93cyBhcHBsaWNh dGlvbiBub3JtYWxseSB0dXJucyBvZmYgdGhlCldpbmRvd3MgZmVhdHVyZSB0aGF0IHRhcHBpbmcg dGhlIDxBbHQ+IGtleSBpbnZva2VzIHRoZSBXaW5kb3dzIG1lbnUuClRoZSByZWFzb24gaXMgdGhh dCB0aGUgPEFsdD4gc2VydmVzIGFzIDxNZXRhPiBpbiBFbWFjcy4gIFdoZW4gdXNpbmcKRW1hY3Ms IHVzZXJzIG9mdGVuIHByZXNzIHRoZSA8TWV0YT4ga2V5IHRlbXBvcmFyaWx5IGFuZCB0aGVuIGNo YW5nZQp0aGVpciBtaW5kczsgaWYgdGhpcyBoYXMgdGhlIGVmZmVjdCBvZiBicmluZ2luZyB1cCB0 aGUgV2luZG93cyBtZW51LCBpdAphbHRlcnMgdGhlIG1lYW5pbmcgb2Ygc3Vic2VxdWVudCBjb21t YW5kcy4gIE1hbnkgdXNlcnMgZmluZCB0aGlzCmZydXN0cmF0aW5nLgoKICAgWW91IGNhbiByZS1l bmFibGUgV2luZG93c+KAmXMgZGVmYXVsdCBoYW5kbGluZyBvZiB0YXBwaW5nIHRoZSA8QWx0PiBr ZXkKYnkgc2V0dGluZyDigJh3MzItcGFzcy1hbHQtdG8tc3lzdGVt4oCZIHRvIGEgbm9uLeKAmG5p bOKAmSB2YWx1ZS4KCiAgIFRoZSB2YXJpYWJsZXMg4oCYdzMyLXBhc3MtbHdpbmRvdy10by1zeXN0 ZW3igJkgYW5kCuKAmHczMi1wYXNzLXJ3aW5kb3ctdG8tc3lzdGVt4oCZIGRldGVybWluZSB3aGV0 aGVyIHRoZSByZXNwZWN0aXZlIGtleXMgYXJlCnBhc3NlZCB0byBXaW5kb3dzIG9yIHN3YWxsb3dl ZCBieSBFbWFjcy4gIElmIHRoZSB2YWx1ZSBpcyDigJhuaWzigJksIHRoZQpyZXNwZWN0aXZlIGtl eSBpcyBzaWxlbnRseSBzd2FsbG93ZWQgYnkgRW1hY3MsIG90aGVyd2lzZSBpdCBpcyBwYXNzZWQg dG8KV2luZG93cy4gIFRoZSBkZWZhdWx0IGlzIOKAmHTigJkgZm9yIGJvdGggb2YgdGhlc2UgdmFy aWFibGVzLiAgUGFzc2luZyBlYWNoCm9mIHRoZXNlIGtleXMgdG8gV2luZG93cyBwcm9kdWNlcyBp dHMgbm9ybWFsIGVmZmVjdDogZm9yIGV4YW1wbGUsCuKAmDxMd2luZG93PuKAmSBvcGVucyB0aGUg 4oCYU3RhcnTigJkgbWVudSwgZXRjLgoKICAgVGhlIHZhcmlhYmxlIOKAmHczMi1yZWNvZ25pemUt YWx0Z3LigJkgY29udHJvbHMgd2hldGhlciB0aGUgPEFsdEdyPiBrZXkKKGlmIGl0IGV4aXN0cyBv biB5b3VyIGtleWJvYXJkKSwgb3IgaXRzIGVxdWl2YWxlbnQsIHRoZSBjb21iaW5hdGlvbiBvZgp0 aGUgcmlnaHQgPEFsdD4gYW5kIGxlZnQgPEN0cmw+IGtleXMgcHJlc3NlZCB0b2dldGhlciwgaXMg cmVjb2duaXplZCBhcwp0aGUgPEFsdEdyPiBrZXkuICBUaGUgZGVmYXVsdCBpcyDigJh04oCZLCB3 aGljaCBtZWFucyB0aGVzZSBrZXlzIHByb2R1Y2UK4oCYQWx0R3LigJk7IHNldHRpbmcgaXQgdG8g 4oCYbmls4oCZIGNhdXNlcyA8QWx0R3I+IG9yIHRoZSBlcXVpdmFsZW50IGtleQpjb21iaW5hdGlv biB0byBiZSBpbnRlcnByZXRlZCBhcyB0aGUgY29tYmluYXRpb24gb2YgPEN0cmw+IGFuZCA8TWV0 YT4KbW9kaWZpZXJzLgoKICAgLS0tLS0tLS0tLSBGb290bm90ZXMgLS0tLS0tLS0tLQoKICAgKDEp IFRoZXJlIGlzIG9uZSBrbm93biBleGNlcHRpb246IFRoZSBjb21iaW5hdGlvbiDigJg8V2luZG93 cz4tTOKAmSB0aGF0CmxvY2tzIHRoZSB3b3Jrc3RhdGlvbiBpcyBoYW5kbGVkIGJ5IHRoZSBzeXN0 ZW0gb24gYSBsb3dlciBsZXZlbC4gIEZvcgp0aGlzIHJlYXNvbiwg4oCYdzMyLXJlZ2lzdGVyLWhv dC1rZXnigJkgY2Fubm90IG92ZXJyaWRlIHRoaXMga2V5IGNvbWJpbmF0aW9uCi0gaXQgYWx3YXlz IGxvY2tzIHRoZSBjb21wdXRlci4KCgoqKiogRy43IE1vdXNlIFVzYWdlIG9uIE1TLVdpbmRvd3MK ClRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgdmFyaWFibGVzIHJl bGF0ZWQgdG8gdGhlCm1vdXNlLgoKICAgVGhlIHZhcmlhYmxlIOKAmHczMi1tb3VzZS1idXR0b24t dG9sZXJhbmNl4oCZIHNwZWNpZmllcyB0aGUgdGltZQppbnRlcnZhbCwgaW4gbWlsbGlzZWNvbmRz LCBmb3IgZmFraW5nIG1pZGRsZSBtb3VzZSBidXR0b24gcHJlc3Mgb24KMi1idXR0b24gbWljZS4g IElmIGJvdGggbW91c2UgYnV0dG9ucyBhcmUgZGVwcmVzc2VkIHdpdGhpbiB0aGlzIHRpbWUKaW50 ZXJ2YWwsIEVtYWNzIGdlbmVyYXRlcyBhIG1pZGRsZSBtb3VzZSBidXR0b24gY2xpY2sgZXZlbnQg aW5zdGVhZCBvZiBhCmRvdWJsZSBjbGljayBvbiBvbmUgb2YgdGhlIGJ1dHRvbnMuCgogICBJZiB0 aGUgdmFyaWFibGUg4oCYdzMyLXBhc3MtZXh0cmEtbW91c2UtYnV0dG9ucy10by1zeXN0ZW3igJkg aXMKbm9uLeKAmG5pbOKAmSwgRW1hY3MgcGFzc2VzIHRoZSBmb3VydGggYW5kIGZpZnRoIG1vdXNl IGJ1dHRvbnMgdG8gV2luZG93cy4KCiAgIFRoZSB2YXJpYWJsZSDigJh3MzItc3dhcC1tb3VzZS1i dXR0b25z4oCZIGNvbnRyb2xzIHdoaWNoIG9mIHRoZSAzIG1vdXNlCmJ1dHRvbnMgZ2VuZXJhdGVz IHRoZSDigJhtb3VzZS0y4oCZIGV2ZW50cy4gIFdoZW4gaXQgaXMg4oCYbmls4oCZICh0aGUgZGVm YXVsdCksCnRoZSBtaWRkbGUgYnV0dG9uIGdlbmVyYXRlcyDigJhtb3VzZS0y4oCZIGFuZCB0aGUg cmlnaHQgYnV0dG9uIGdlbmVyYXRlcwrigJhtb3VzZS0z4oCZIGV2ZW50cy4gIElmIHRoaXMgdmFy aWFibGUgaXMgbm9uLeKAmG5pbOKAmSwgdGhlIHJvbGVzIG9mIHRoZXNlIHR3bwpidXR0b25zIGFy ZSByZXZlcnNlZC4KCgoqKiogRy44IFN1YnByb2Nlc3NlcyBvbiBXaW5kb3dzIDlYL01FIGFuZCBX aW5kb3dzIE5ULzJLL1hQL1Zpc3RhLzcvOC8xMAoKRW1hY3MgY29tcGlsZWQgYXMgYSBuYXRpdmUg V2luZG93cyBhcHBsaWNhdGlvbiAoYXMgb3Bwb3NlZCB0byB0aGUgRE9TCnZlcnNpb24pIGluY2x1 ZGVzIGZ1bGwgc3VwcG9ydCBmb3IgYXN5bmNocm9ub3VzIHN1YnByb2Nlc3Nlcy4gIEluIHRoZQpX aW5kb3dzIHZlcnNpb24sIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgc3VicHJvY2Vzc2Vz IHdvcmsgZmluZSBvbgphbGwgdmVyc2lvbnMgb2YgTVMtV2luZG93cywgYXMgbG9uZyBhcyB5b3Ug cnVuIG9ubHkgMzItYml0IG9yIDY0LWJpdApXaW5kb3dzIGFwcGxpY2F0aW9ucy4gIEhvd2V2ZXIs IHdoZW4geW91IHJ1biBhIERPUyBhcHBsaWNhdGlvbiBpbiBhCnN1YnByb2Nlc3MsIHlvdSBtYXkg ZW5jb3VudGVyIHByb2JsZW1zIG9yIGJlIHVuYWJsZSB0byBydW4gdGhlCmFwcGxpY2F0aW9uIGF0 IGFsbDsgYW5kIGlmIHlvdSBydW4gdHdvIERPUyBhcHBsaWNhdGlvbnMgYXQgdGhlIHNhbWUgdGlt ZQppbiB0d28gc3VicHJvY2Vzc2VzLCB5b3UgbWF5IGhhdmUgdG8gcmVib290IHlvdXIgc3lzdGVt LgoKICAgU2luY2UgdGhlIHN0YW5kYXJkIGNvbW1hbmQgaW50ZXJwcmV0ZXIgKGFuZCBtb3N0IGNv bW1hbmQgbGluZQp1dGlsaXRpZXMpIG9uIFdpbmRvd3MgOVggYXJlIERPUyBhcHBsaWNhdGlvbnMs IHRoZXNlIHByb2JsZW1zIGFyZQpzaWduaWZpY2FudCB3aGVuIHVzaW5nIHRoYXQgc3lzdGVtLiAg QnV0IHRoZXJl4oCZcyBub3RoaW5nIHdlIGNhbiBkbyBhYm91dAp0aGVtOyBvbmx5IE1pY3Jvc29m dCBjYW4gZml4IHRoZW0uCgogICBJZiB5b3UgcnVuIGp1c3Qgb25lIERPUyBhcHBsaWNhdGlvbiBz dWJwcm9jZXNzLCB0aGUgc3VicHJvY2VzcyBzaG91bGQKd29yayBhcyBleHBlY3RlZCBhcyBsb25n IGFzIGl0IGlzIOKAnHdlbGwtYmVoYXZlZOKAnSBhbmQgZG9lcyBub3QgcGVyZm9ybQpkaXJlY3Qg c2NyZWVuIGFjY2VzcyBvciBvdGhlciB1bnVzdWFsIGFjdGlvbnMuICBJZiB5b3UgaGF2ZSBhIENQ VQptb25pdG9yIGFwcGxpY2F0aW9uLCB5b3VyIG1hY2hpbmUgd2lsbCBhcHBlYXIgdG8gYmUgMTAw JSBidXN5IGV2ZW4gd2hlbgp0aGUgRE9TIGFwcGxpY2F0aW9uIGlzIGlkbGUsIGJ1dCB0aGlzIGlz IG9ubHkgYW4gYXJ0aWZhY3Qgb2YgdGhlIHdheSBDUFUKbW9uaXRvcnMgbWVhc3VyZSBwcm9jZXNz b3IgbG9hZC4KCiAgIFlvdSBtdXN0IHRlcm1pbmF0ZSB0aGUgRE9TIGFwcGxpY2F0aW9uIGJlZm9y ZSB5b3Ugc3RhcnQgYW55IG90aGVyIERPUwphcHBsaWNhdGlvbiBpbiBhIGRpZmZlcmVudCBzdWJw cm9jZXNzLiAgRW1hY3MgaXMgdW5hYmxlIHRvIGludGVycnVwdCBvcgp0ZXJtaW5hdGUgYSBET1Mg c3VicHJvY2Vzcy4gIFRoZSBvbmx5IHdheSB5b3UgY2FuIHRlcm1pbmF0ZSBzdWNoIGEKc3VicHJv Y2VzcyBpcyBieSBnaXZpbmcgaXQgYSBjb21tYW5kIHRoYXQgdGVsbHMgaXRzIHByb2dyYW0gdG8g ZXhpdC4KCiAgIElmIHlvdSBhdHRlbXB0IHRvIHJ1biB0d28gRE9TIGFwcGxpY2F0aW9ucyBhdCB0 aGUgc2FtZSB0aW1lIGluCnNlcGFyYXRlIHN1YnByb2Nlc3NlcywgdGhlIHNlY29uZCBvbmUgdGhh dCBpcyBzdGFydGVkIHdpbGwgYmUgc3VzcGVuZGVkCnVudGlsIHRoZSBmaXJzdCBvbmUgZmluaXNo ZXMsIGV2ZW4gaWYgZWl0aGVyIG9yIGJvdGggb2YgdGhlbSBhcmUKYXN5bmNocm9ub3VzLgoKICAg SWYgeW91IGNhbiBnbyB0byB0aGUgZmlyc3Qgc3VicHJvY2VzcywgYW5kIHRlbGwgaXQgdG8gZXhp dCwgdGhlCnNlY29uZCBzdWJwcm9jZXNzIHNob3VsZCBjb250aW51ZSBub3JtYWxseS4gIEhvd2V2 ZXIsIGlmIHRoZSBzZWNvbmQKc3VicHJvY2VzcyBpcyBzeW5jaHJvbm91cywgRW1hY3MgaXRzZWxm IHdpbGwgYmUgaHVuZyB1bnRpbCB0aGUgZmlyc3QKc3VicHJvY2VzcyBmaW5pc2hlcy4gIElmIGl0 IHdpbGwgbm90IGZpbmlzaCB3aXRob3V0IHVzZXIgaW5wdXQsIHRoZW4geW91CmhhdmUgbm8gY2hv aWNlIGJ1dCB0byByZWJvb3QgaWYgeW91IGFyZSBydW5uaW5nIG9uIFdpbmRvd3MgOVguICBJZiB5 b3UKYXJlIHJ1bm5pbmcgb24gV2luZG93cyBOVCBhbmQgbGF0ZXIsIHlvdSBjYW4gdXNlIGEgcHJv Y2VzcyB2aWV3ZXIKYXBwbGljYXRpb24gdG8ga2lsbCB0aGUgYXBwcm9wcmlhdGUgaW5zdGFuY2Ug b2YgTlRWRE0gaW5zdGVhZCAodGhpcyB3aWxsCnRlcm1pbmF0ZSBib3RoIERPUyBzdWJwcm9jZXNz ZXMpLgoKICAgSWYgeW91IGhhdmUgdG8gcmVib290IFdpbmRvd3MgOVggaW4gdGhpcyBzaXR1YXRp b24sIGRvIG5vdCB1c2UgdGhlCuKAmFNodXRkb3du4oCZIGNvbW1hbmQgb24gdGhlIOKAmFN0YXJ0 4oCZIG1lbnU7IHRoYXQgdXN1YWxseSBoYW5ncyB0aGUgc3lzdGVtLgpJbnN0ZWFkLCB0eXBlIOKA mDxDdHJsPi08QWx0Pi08REVMPuKAmSBhbmQgdGhlbiBjaG9vc2Ug4oCYU2h1dGRvd27igJkuICBU aGF0CnVzdWFsbHkgd29ya3MsIGFsdGhvdWdoIGl0IG1heSB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8g ZG8gaXRzIGpvYi4KCiAgIFRoZSB2YXJpYWJsZSDigJh3MzItcXVvdGUtcHJvY2Vzcy1hcmdz4oCZ IGNvbnRyb2xzIGhvdyBFbWFjcyBxdW90ZXMgdGhlCnByb2Nlc3MgYXJndW1lbnRzLiAgTm9uLeKA mG5pbOKAmSBtZWFucyBxdW90ZSB3aXRoIHRoZSDigJgi4oCZIGNoYXJhY3Rlci4gIElmCnRoZSB2 YWx1ZSBpcyBhIGNoYXJhY3RlciwgRW1hY3MgdXNlcyB0aGF0IGNoYXJhY3RlciB0byBlc2NhcGUg YW55IHF1b3RlCmNoYXJhY3RlcnMgdGhhdCBhcHBlYXI7IG90aGVyd2lzZSBpdCBjaG9vc2VzIGEg c3VpdGFibGUgZXNjYXBlIGNoYXJhY3RlcgpiYXNlZCBvbiB0aGUgdHlwZSBvZiB0aGUgcHJvZ3Jh bS4KCiAgIFRoZSB2YXJpYWJsZSDigJh3MzItcGlwZS1idWZmZXItc2l6ZeKAmSBjb250cm9scyB0 aGUgc2l6ZSBvZiB0aGUgYnVmZmVyCkVtYWNzIHJlcXVlc3RzIGZyb20gdGhlIHN5c3RlbSB3aGVu IGl0IGNyZWF0ZXMgcGlwZXMgZm9yIGNvbW11bmljYXRpb25zCndpdGggc3VicHJvY2Vzc2VzLiAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgemVybywgd2hpY2ggbGV0cyB0aGUgT1MgY2hvb3NlCnRoZSBz aXplLiAgQW55IHZhbGlkIHBvc2l0aXZlIHZhbHVlIHdpbGwgcmVxdWVzdCBhIGJ1ZmZlciBvZiB0 aGF0IHNpemUKaW4gYnl0ZXMuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHRhaWxvciBjb21tdW5pY2F0 aW9ucyB3aXRoIHN1YnByb2Nlc3Nlcwp0byBwcm9ncmFtcyB0aGF0IGV4aGliaXQgdW51c3VhbCBi ZWhhdmlvciB3aXRoIHJlc3BlY3QgdG8gYnVmZmVyaW5nIHBpcGUKSS9PLgoKICAgVGhlIGZ1bmN0 aW9uIOKAmHczMi1zaGVsbC1leGVjdXRl4oCZIGNhbiBiZSB1c2VmdWwgZm9yIHdyaXRpbmcgY3Vz dG9taXplZApjb21tYW5kcyB0aGF0IHJ1biBNUy1XaW5kb3dzIGFwcGxpY2F0aW9ucyByZWdpc3Rl cmVkIHRvIGhhbmRsZSBhIGNlcnRhaW4Kc3RhbmRhcmQgV2luZG93cyBvcGVyYXRpb24gZm9yIGEg c3BlY2lmaWMgdHlwZSBvZiBkb2N1bWVudCBvciBmaWxlLgpUaGlzIGZ1bmN0aW9uIGlzIGEgd3Jh cHBlciBhcm91bmQgdGhlIFdpbmRvd3Mg4oCYU2hlbGxFeGVjdXRl4oCZIEFQSS4gIFNlZQp0aGUg TVMtV2luZG93cyBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLgoKCioqKiBHLjkg UHJpbnRpbmcgYW5kIE1TLVdpbmRvd3MKClByaW50aW5nIGNvbW1hbmRzLCBzdWNoIGFzIOKAmGxw ci1idWZmZXLigJkgKCpub3RlIFByaW50aW5nOjopIGFuZArigJhwcy1wcmludC1idWZmZXLigJkg KCpub3RlIFBvc3RTY3JpcHQ6Oikgd29yayBpbiBNUy1ET1MgYW5kIE1TLVdpbmRvd3MgYnkKc2Vu ZGluZyB0aGUgb3V0cHV0IHRvIG9uZSBvZiB0aGUgcHJpbnRlciBwb3J0cywgaWYgYSBQT1NJWC1z dHlsZSDigJhscHLigJkKcHJvZ3JhbSBpcyB1bmF2YWlsYWJsZS4gIFRoZSBzYW1lIEVtYWNzIHZh cmlhYmxlcyBjb250cm9sIHByaW50aW5nIG9uCmFsbCBzeXN0ZW1zLCBidXQgaW4gc29tZSBjYXNl cyB0aGV5IGhhdmUgZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzIG9uCk1TLURPUyBhbmQgTVMtV2lu ZG93cy4KCiAgIEVtYWNzIG9uIE1TIFdpbmRvd3MgYXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIHlvdXIg ZGVmYXVsdCBwcmludGVyCmF1dG9tYXRpY2FsbHkgKHVzaW5nIHRoZSBmdW5jdGlvbiDigJhkZWZh dWx0LXByaW50ZXItbmFtZeKAmSkuICBCdXQgaW4gc29tZQpyYXJlIGNhc2VzIHRoaXMgY2FuIGZh aWwsIG9yIHlvdSBtYXkgd2lzaCB0byB1c2UgYSBkaWZmZXJlbnQgcHJpbnRlcgpmcm9tIHdpdGhp biBFbWFjcy4gIFRoZSByZXN0IG9mIHRoaXMgc2VjdGlvbiBleHBsYWlucyBob3cgdG8gdGVsbCBF bWFjcwp3aGljaCBwcmludGVyIHRvIHVzZS4KCiAgIElmIHlvdSB3YW50IHRvIHVzZSB5b3VyIGxv Y2FsIHByaW50ZXIsIHRoZW4gc2V0IHRoZSBMaXNwIHZhcmlhYmxlCuKAmGxwci1jb21tYW5k4oCZ IHRvIOKAmCIi4oCZIChpdHMgZGVmYXVsdCB2YWx1ZSBvbiBXaW5kb3dzKSBhbmQg4oCYcHJpbnRl ci1uYW1l4oCZCnRvIHRoZSBuYW1lIG9mIHRoZSBwcmludGVyIHBvcnTigJRmb3IgZXhhbXBsZSwg 4oCYIlBSTiLigJksIHRoZSB1c3VhbCBsb2NhbApwcmludGVyIHBvcnQsIG9yIOKAmCJMUFQyIuKA mSwgb3Ig4oCYIkNPTTEi4oCZIGZvciBhIHNlcmlhbCBwcmludGVyLiAgWW91IGNhbgphbHNvIHNl dCDigJhwcmludGVyLW5hbWXigJkgdG8gYSBmaWxlIG5hbWUsIGluIHdoaWNoIGNhc2Ug4oCccHJp bnRlZOKAnSBvdXRwdXQKaXMgYWN0dWFsbHkgYXBwZW5kZWQgdG8gdGhhdCBmaWxlLiAgSWYgeW91 IHNldCDigJhwcmludGVyLW5hbWXigJkgdG8K4oCYIk5VTCLigJksIHByaW50ZWQgb3V0cHV0IGlz IHNpbGVudGx5IGRpc2NhcmRlZCAoc2VudCB0byB0aGUgc3lzdGVtIG51bGwKZGV2aWNlKS4KCiAg IFlvdSBjYW4gYWxzbyB1c2UgYSBwcmludGVyIHNoYXJlZCBieSBhbm90aGVyIG1hY2hpbmUgYnkg c2V0dGluZwrigJhwcmludGVyLW5hbWXigJkgdG8gdGhlIFVOQyBzaGFyZSBuYW1lIGZvciB0aGF0 IHByaW50ZXLigJRmb3IgZXhhbXBsZSwK4oCYIi8vam9lc19wYy9ocDRzaSLigJkuICAoSXQgZG9l c27igJl0IG1hdHRlciB3aGV0aGVyIHlvdSB1c2UgZm9yd2FyZCBzbGFzaGVzCm9yIGJhY2tzbGFz aGVzIGhlcmUuKSAgVG8gZmluZCBvdXQgdGhlIG5hbWVzIG9mIHNoYXJlZCBwcmludGVycywgcnVu IHRoZQpjb21tYW5kIOKAmG5ldCB2aWV34oCZIGZyb20gdGhlIGNvbW1hbmQgcHJvbXB0IHRvIG9i dGFpbiBhIGxpc3Qgb2Ygc2VydmVycywKYW5kIOKAmG5ldCB2aWV3IFNFUlZFUi1OQU1F4oCZIHRv IHNlZSB0aGUgbmFtZXMgb2YgcHJpbnRlcnMgKGFuZApkaXJlY3Rvcmllcykgc2hhcmVkIGJ5IHRo YXQgc2VydmVyLiAgQWx0ZXJuYXRpdmVseSwgY2xpY2sgdGhlIOKAmE5ldHdvcmsKTmVpZ2hib3Jo b29k4oCZIGljb24gb24geW91ciBkZXNrdG9wLCBhbmQgbG9vayBmb3IgbWFjaGluZXMgdGhhdCBz aGFyZQp0aGVpciBwcmludGVycyB2aWEgdGhlIG5ldHdvcmsuCgogICBJZiB0aGUgcHJpbnRlciBk b2VzbuKAmXQgYXBwZWFyIGluIHRoZSBvdXRwdXQgb2Yg4oCYbmV0IHZpZXfigJksIG9yIGlmCnNl dHRpbmcg4oCYcHJpbnRlci1uYW1l4oCZIHRvIHRoZSBVTkMgc2hhcmUgbmFtZSBkb2VzbuKAmXQg cHJvZHVjZSBhIGhhcmRjb3B5Cm9uIHRoYXQgcHJpbnRlciwgeW91IGNhbiB1c2UgdGhlIOKAmG5l dCB1c2XigJkgY29tbWFuZCB0byBjb25uZWN0IGEgbG9jYWwKcHJpbnQgcG9ydCBzdWNoIGFzIOKA mCJMUFQyIuKAmSB0byB0aGUgbmV0d29ya2VkIHByaW50ZXIuICBGb3IgZXhhbXBsZSwKdHlwaW5n IOKAmG5ldCB1c2UgTFBUMjogXFxqb2VzX3BjXGhwNHNp4oCZKDEpIGNhdXNlcyBXaW5kb3dzIHRv ICJjYXB0dXJlIgp0aGUg4oCYTFBUMuKAmSBwb3J0IGFuZCByZWRpcmVjdCB0aGUgcHJpbnRlZCBt YXRlcmlhbCB0byB0aGUgcHJpbnRlcgpjb25uZWN0ZWQgdG8gdGhlIG1hY2hpbmUg4oCYam9lc19w Y+KAmS4gIEFmdGVyIHRoaXMgY29tbWFuZCwgc2V0dGluZwrigJhwcmludGVyLW5hbWXigJkgdG8g 4oCYIkxQVDIi4oCZIHNob3VsZCBwcm9kdWNlIHRoZSBoYXJkY29weSBvbiB0aGUgbmV0d29ya2Vk CnByaW50ZXIuCgogICBXaXRoIHNvbWUgdmFyaWV0aWVzIG9mIFdpbmRvd3MgbmV0d29yayBzb2Z0 d2FyZSwgeW91IGNhbiBpbnN0cnVjdApXaW5kb3dzIHRvIGNhcHR1cmUgYSBzcGVjaWZpYyBwcmlu dGVyIHBvcnQgc3VjaCBhcyDigJgiTFBUMiLigJksIGFuZApyZWRpcmVjdCBpdCB0byBhIG5ldHdv cmtlZCBwcmludGVyIHZpYSB0aGUg4oCYQ29udHJvbCBQYW5lbC0+UHJpbnRlcnPigJkKYXBwbGV0 IGluc3RlYWQgb2Yg4oCYbmV0IHVzZeKAmS4KCiAgIElmIHlvdSBzZXQg4oCYcHJpbnRlci1uYW1l 4oCZIHRvIGEgZmlsZSBuYW1lLCBpdOKAmXMgYmVzdCB0byB1c2UgYW4KYWJzb2x1dGUgZmlsZSBu YW1lLiAgRW1hY3MgY2hhbmdlcyB0aGUgd29ya2luZyBkaXJlY3RvcnkgYWNjb3JkaW5nIHRvCnRo ZSBkZWZhdWx0IGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBidWZmZXIsIHNvIGlmIHRoZSBmaWxl IG5hbWUgaW4K4oCYcHJpbnRlci1uYW1l4oCZIGlzIHJlbGF0aXZlLCB5b3Ugd2lsbCBlbmQgdXAg d2l0aCBzZXZlcmFsIHN1Y2ggZmlsZXMsCmVhY2ggb25lIGluIHRoZSBkaXJlY3Rvcnkgb2YgdGhl IGJ1ZmZlciBmcm9tIHdoaWNoIHRoZSBwcmludGluZyB3YXMKZG9uZS4KCiAgIElmIHRoZSB2YWx1 ZSBvZiDigJhwcmludGVyLW5hbWXigJkgaXMgY29ycmVjdCwgYnV0IHByaW50aW5nIGRvZXMgbm90 CnByb2R1Y2UgdGhlIGhhcmRjb3B5IG9uIHlvdXIgcHJpbnRlciwgaXQgaXMgcG9zc2libGUgdGhh dCB5b3VyIHByaW50ZXIKZG9lcyBub3Qgc3VwcG9ydCBwcmludGluZyBwbGFpbiB0ZXh0IChzb21l IGNoZWFwIHByaW50ZXJzIG9taXQgdGhpcwpmdW5jdGlvbmFsaXR5KS4gIEluIHRoYXQgY2FzZSwg dHJ5IHRoZSBQb3N0U2NyaXB0IHByaW50IGNvbW1hbmRzLApkZXNjcmliZWQgYmVsb3cuCgogICBU aGUgY29tbWFuZHMg4oCYcHJpbnQtYnVmZmVy4oCZIGFuZCDigJhwcmludC1yZWdpb27igJkgY2Fs bCB0aGUg4oCYcHLigJkgcHJvZ3JhbSwKb3IgdXNlIHNwZWNpYWwgc3dpdGNoZXMgdG8gdGhlIOKA mGxwcuKAmSBwcm9ncmFtLCB0byBwcm9kdWNlIGhlYWRlcnMgb24gZWFjaApwcmludGVkIHBhZ2Uu ICBNUy1ET1MgYW5kIE1TLVdpbmRvd3MgZG9u4oCZdCBub3JtYWxseSBoYXZlIHRoZXNlIHByb2dy YW1zLApzbyBieSBkZWZhdWx0LCB0aGUgdmFyaWFibGUg4oCYbHByLWhlYWRlcnMtc3dpdGNoZXPi gJkgaXMgc2V0IHNvIHRoYXQgdGhlCnJlcXVlc3RzIHRvIHByaW50IHBhZ2UgaGVhZGVycyBhcmUg c2lsZW50bHkgaWdub3JlZC4gIFRodXMsCuKAmHByaW50LWJ1ZmZlcuKAmSBhbmQg4oCYcHJpbnQt cmVnaW9u4oCZIHByb2R1Y2UgdGhlIHNhbWUgb3V0cHV0IGFzCuKAmGxwci1idWZmZXLigJkgYW5k IOKAmGxwci1yZWdpb27igJksIHJlc3BlY3RpdmVseS4gIElmIHlvdSBkbyBoYXZlIGEgc3VpdGFi bGUK4oCYcHLigJkgcHJvZ3JhbSAoZm9yIGV4YW1wbGUsIGZyb20gR05VIENvcmV1dGlscyksIHNl dArigJhscHItaGVhZGVycy1zd2l0Y2hlc+KAmSB0byDigJhuaWzigJk7IEVtYWNzIHdpbGwgdGhl biBjYWxsIOKAmHBy4oCZIHRvIHByb2R1Y2UKdGhlIHBhZ2UgaGVhZGVycywgYW5kIHByaW50IHRo ZSByZXN1bHRpbmcgb3V0cHV0IGFzIHNwZWNpZmllZCBieQrigJhwcmludGVyLW5hbWXigJkuCgog ICBGaW5hbGx5LCBpZiB5b3UgZG8gaGF2ZSBhbiDigJhscHLigJkgd29yay1hbGlrZSwgeW91IGNh biBzZXQgdGhlIHZhcmlhYmxlCuKAmGxwci1jb21tYW5k4oCZIHRvIOKAmCJscHIi4oCZLiAgVGhl biBFbWFjcyB3aWxsIHVzZSDigJhscHLigJkgZm9yIHByaW50aW5nLCBhcyBvbgpvdGhlciBzeXN0 ZW1zLiAgKElmIHRoZSBuYW1lIG9mIHRoZSBwcm9ncmFtIGlzbuKAmXQg4oCYbHBy4oCZLCBzZXQK 4oCYbHByLWNvbW1hbmTigJkgdG8gdGhlIGFwcHJvcHJpYXRlIHZhbHVlLikgIFRoZSB2YXJpYWJs ZSDigJhscHItc3dpdGNoZXPigJkKaGFzIGl0cyBzdGFuZGFyZCBtZWFuaW5nIHdoZW4g4oCYbHBy LWNvbW1hbmTigJkgaXMgbm90IOKAmCIi4oCZLiAgSWYgdGhlCnZhcmlhYmxlIOKAmHByaW50ZXIt bmFtZeKAmSBoYXMgYSBzdHJpbmcgdmFsdWUsIGl0IGlzIHVzZWQgYXMgdGhlIHZhbHVlIGZvcgp0 aGUg4oCYLVDigJkgb3B0aW9uIHRvIOKAmGxwcuKAmSwgYXMgb24gVW5peC4KCiAgIEEgcGFyYWxs ZWwgc2V0IG9mIHZhcmlhYmxlcywg4oCYcHMtbHByLWNvbW1hbmTigJksIOKAmHBzLWxwci1zd2l0 Y2hlc+KAmSwgYW5kCuKAmHBzLXByaW50ZXItbmFtZeKAmSAoKm5vdGUgUG9zdFNjcmlwdCBWYXJp YWJsZXM6OiksIGRlZmluZXMgaG93IFBvc3RTY3JpcHQKZmlsZXMgc2hvdWxkIGJlIHByaW50ZWQu ICBUaGVzZSB2YXJpYWJsZXMgYXJlIHVzZWQgaW4gdGhlIHNhbWUgd2F5IGFzCnRoZSBjb3JyZXNw b25kaW5nIHZhcmlhYmxlcyBkZXNjcmliZWQgYWJvdmUgZm9yIG5vbi1Qb3N0U2NyaXB0IHByaW50 aW5nLgpUaHVzLCB0aGUgdmFsdWUgb2Yg4oCYcHMtcHJpbnRlci1uYW1l4oCZIGlzIHVzZWQgYXMg dGhlIG5hbWUgb2YgdGhlIGRldmljZQoob3IgZmlsZSkgdG8gd2hpY2ggUG9zdFNjcmlwdCBvdXRw dXQgaXMgc2VudCwganVzdCBhcyDigJhwcmludGVyLW5hbWXigJkgaXMKdXNlZCBmb3Igbm9uLVBv c3RTY3JpcHQgcHJpbnRpbmcuICAoVGhlcmUgYXJlIHR3byBkaXN0aW5jdCBzZXRzIG9mCnZhcmlh YmxlcyBpbiBjYXNlIHlvdSBoYXZlIHR3byBwcmludGVycyBhdHRhY2hlZCB0byB0d28gZGlmZmVy ZW50IHBvcnRzLAphbmQgb25seSBvbmUgb2YgdGhlbSBpcyBhIFBvc3RTY3JpcHQgcHJpbnRlci4p CgogICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg4oCYcHMtbHByLWNvbW1hbmTi gJkgaXMg4oCYIiLigJksIHdoaWNoCmNhdXNlcyBQb3N0U2NyaXB0IG91dHB1dCB0byBiZSBzZW50 IHRvIHRoZSBwcmludGVyIHBvcnQgc3BlY2lmaWVkIGJ5CuKAmHBzLXByaW50ZXItbmFtZeKAmTsg YnV0IOKAmHBzLWxwci1jb21tYW5k4oCZIGNhbiBhbHNvIGJlIHNldCB0byB0aGUgbmFtZSBvZiBh CnByb2dyYW0gd2hpY2ggd2lsbCBhY2NlcHQgUG9zdFNjcmlwdCBmaWxlcy4gIFRodXMsIGlmIHlv dSBoYXZlIGEKbm9uLVBvc3RTY3JpcHQgcHJpbnRlciwgeW91IGNhbiBzZXQgdGhpcyB2YXJpYWJs ZSB0byB0aGUgbmFtZSBvZiBhClBvc3RTY3JpcHQgaW50ZXJwcmV0ZXIgcHJvZ3JhbSAoc3VjaCBh cyBHaG9zdHNjcmlwdCkuICBBbnkgc3dpdGNoZXMgdGhhdApuZWVkIHRvIGJlIHBhc3NlZCB0byB0 aGUgaW50ZXJwcmV0ZXIgcHJvZ3JhbSBhcmUgc3BlY2lmaWVkIHVzaW5nCuKAmHBzLWxwci1zd2l0 Y2hlc+KAmS4gIChJZiB0aGUgdmFsdWUgb2Yg4oCYcHMtcHJpbnRlci1uYW1l4oCZIGlzIGEgc3Ry aW5nLCBpdAp3aWxsIGJlIGFkZGVkIHRvIHRoZSBsaXN0IG9mIHN3aXRjaGVzIGFzIHRoZSB2YWx1 ZSBmb3IgdGhlIOKAmC1Q4oCZIG9wdGlvbi4KVGhpcyBpcyBwcm9iYWJseSBvbmx5IHVzZWZ1bCBp ZiB5b3UgYXJlIHVzaW5nIOKAmGxwcuKAmSwgc28gd2hlbiB1c2luZyBhbgppbnRlcnByZXRlciB0 eXBpY2FsbHkgeW91IHdvdWxkIHNldCDigJhwcy1wcmludGVyLW5hbWXigJkgdG8gc29tZXRoaW5n IG90aGVyCnRoYW4gYSBzdHJpbmcgc28gaXQgaXMgaWdub3JlZC4pCgogICBGb3IgZXhhbXBsZSwg dG8gdXNlIEdob3N0c2NyaXB0IGZvciBwcmludGluZyBvbiB0aGUgc3lzdGVt4oCZcyBkZWZhdWx0 CnByaW50ZXIsIHB1dCB0aGlzIGluIHlvdXIg4oCYLmVtYWNz4oCZIGZpbGU6CgogICAgIChzZXRx IHBzLXByaW50ZXItbmFtZSB0KQogICAgIChzZXRxIHBzLWxwci1jb21tYW5kICJEOi9nczYuMDEv YmluL2dzd2luMzJjLmV4ZSIpCiAgICAgKHNldHEgcHMtbHByLXN3aXRjaGVzICcoIi1xIiAiLWRO T1BBVVNFIiAiLWRCQVRDSCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLXNERVZJQ0U9 bXN3aW5wcjIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1zUEFQRVJTSVpFPWE0Iikp CgooVGhpcyBhc3N1bWVzIHRoYXQgR2hvc3RzY3JpcHQgaXMgaW5zdGFsbGVkIGluIHRoZSDigJhE Oi9nczYuMDHigJkKZGlyZWN0b3J5LikKCiAgIC0tLS0tLS0tLS0gRm9vdG5vdGVzIC0tLS0tLS0t LS0KCiAgICgxKSBOb3RlIHRoYXQgdGhlIOKAmG5ldCB1c2XigJkgY29tbWFuZCByZXF1aXJlcyB0 aGUgVU5DIHNoYXJlIG5hbWUgdG8gYmUKdHlwZWQgd2l0aCB0aGUgV2luZG93cy1zdHlsZSBiYWNr c2xhc2hlcywgd2hpbGUgdGhlIHZhbHVlIG9mCuKAmHByaW50ZXItbmFtZeKAmSBjYW4gYmUgc2V0 IHdpdGggZWl0aGVyIGZvcndhcmQtIG9yIGJhY2tzbGFzaGVzLgoKCioqKiBHLjEwIFNwZWNpZnlp bmcgRm9udHMgb24gTVMtV2luZG93cwoKU3RhcnRpbmcgd2l0aCBFbWFjcyAyMywgZm9udHMgYXJl IHNwZWNpZmllZCBieSB0aGVpciBuYW1lLCBzaXplIGFuZApvcHRpb25hbCBwcm9wZXJ0aWVzLiAg VGhlIGZvcm1hdCBmb3Igc3BlY2lmeWluZyBmb250cyBjb21lcyBmcm9tIHRoZQpmb250Y29uZmln IGxpYnJhcnkgdXNlZCBpbiBtb2Rlcm4gRnJlZSBkZXNrdG9wczoKCiAgICAgICBbRmFtaWx5Wy1Q b2ludFNpemVdXVs6T3B0aW9uMT1WYWx1ZTFbOk9wdGlvbjI9VmFsdWUyWy4uLl1dXQoKICAgVGhl IG9sZCBYTEZEIGJhc2VkIGZvcm1hdCBpcyBhbHNvIHN1cHBvcnRlZCBmb3IgYmFja3dhcmRzCmNv bXBhdGliaWxpdHkuCgogICBFbWFjcyAyMyBhbmQgbGF0ZXIgc3VwcG9ydHMgYSBudW1iZXIgb2Yg Zm9udCBiYWNrZW5kcy4gIEN1cnJlbnRseSwKdGhlIOKAmGdkaeKAmSBhbmQg4oCYdW5pc2NyaWJl 4oCZIGJhY2tlbmRzIGFyZSBzdXBwb3J0ZWQgb24gV2luZG93cy4gIFRoZSDigJhnZGnigJkKZm9u dCBiYWNrZW5kIGlzIGF2YWlsYWJsZSBvbiBhbGwgdmVyc2lvbnMgb2YgV2luZG93cywgYW5kIHN1 cHBvcnRzIGFsbApmb250cyB0aGF0IGFyZSBuYXRpdmVseSBzdXBwb3J0ZWQgYnkgV2luZG93cy4g IFRoZSDigJh1bmlzY3JpYmXigJkgZm9udApiYWNrZW5kIGlzIGF2YWlsYWJsZSBvbiBXaW5kb3dz IDIwMDAgYW5kIGxhdGVyLCBhbmQgc3VwcG9ydHMgVHJ1ZVR5cGUKYW5kIE9wZW5UeXBlIGZvbnRz LiAgU29tZSBsYW5ndWFnZXMgcmVxdWlyaW5nIGNvbXBsZXggbGF5b3V0IGNhbiBvbmx5IGJlCnBy b3Blcmx5IHN1cHBvcnRlZCBieSB0aGUgVW5pc2NyaWJlIGJhY2tlbmQuICBCeSBkZWZhdWx0LCBi b3RoIGJhY2tlbmRzCmFyZSBlbmFibGVkIGlmIHN1cHBvcnRlZCwgd2l0aCDigJh1bmlzY3JpYmXi gJkgdGFraW5nIHByaW9yaXR5IG92ZXIg4oCYZ2Rp4oCZLgpUbyBvdmVycmlkZSB0aGF0IGFuZCB1 c2UgdGhlIEdESSBiYWNrZW5kIGV2ZW4gaWYgVW5pc2NyaWJlIGlzIGF2YWlsYWJsZSwKaW52b2tl IEVtYWNzIHdpdGggdGhlIOKAmC14cm0gRW1hY3MuZm9udEJhY2tlbmQ6Z2Rp4oCZIGNvbW1hbmQt bGluZQphcmd1bWVudCwgb3IgYWRkIGEg4oCYRW1hY3MuZm9udEJhY2tlbmTigJkgcmVzb3VyY2Ug d2l0aCB0aGUgdmFsdWUg4oCYZ2Rp4oCZIGluCnRoZSBSZWdpc3RyeSB1bmRlciBlaXRoZXIgdGhl IOKAmEhLRVlfQ1VSUkVOVF9VU0VSXFNPRlRXQVJFXEdOVVxFbWFjc+KAmSBvcgp0aGUg4oCYSEtF WV9MT0NBTF9NQUNISU5FXFNPRlRXQVJFXEdOVVxFbWFjc+KAmSBrZXkgKCpub3RlIFJlc291cmNl czo6KS4KCk9wdGlvbmFsIHByb3BlcnRpZXMgY29tbW9uIHRvIGFsbCBmb250IGJhY2tlbmRzIG9u IE1TLVdpbmRvd3MgYXJlOgoK4oCYd2VpZ2h04oCZCiAgICAgU3BlY2lmaWVzIHRoZSB3ZWlnaHQg b2YgdGhlIGZvbnQuICBTcGVjaWFsIHZhbHVlcyDigJhsaWdodOKAmSwKICAgICDigJhtZWRpdW3i gJksIOKAmGRlbWlib2xk4oCZLCDigJhib2xk4oCZLCBhbmQg4oCYYmxhY2vigJkgY2FuIGJlIHNw ZWNpZmllZCB3aXRob3V0CiAgICAg4oCYd2VpZ2h0PeKAmSAoZS5nLiwg4oCYQ291cmllciBOZXct MTI6Ym9sZOKAmSkuICBPdGhlcndpc2UsIHRoZSB3ZWlnaHQKICAgICBzaG91bGQgYmUgYSBudW1l cmljIHZhbHVlIGJldHdlZW4gMTAwIGFuZCA5MDAsIG9yIG9uZSBvZiB0aGUgbmFtZWQKICAgICB3 ZWlnaHRzIGluIOKAmGZvbnQtd2VpZ2h0LXRhYmxl4oCZLiAgSWYgdW5zcGVjaWZpZWQsIGEgcmVn dWxhciBmb250IGlzCiAgICAgYXNzdW1lZC4KCuKAmHNsYW504oCZCiAgICAgU3BlY2lmaWVzIHdo ZXRoZXIgdGhlIGZvbnQgaXMgaXRhbGljLiAgU3BlY2lhbCB2YWx1ZXMg4oCYcm9tYW7igJksCiAg ICAg4oCYaXRhbGlj4oCZIGFuZCDigJhvYmxpcXVl4oCZIGNhbiBiZSBzcGVjaWZpZWQgd2l0aG91 dCDigJhzbGFudD3igJkgKGUuZy4sCiAgICAg4oCYQ291cmllciBOZXctMTI6aXRhbGlj4oCZKS4g IE90aGVyd2lzZSwgdGhlIHNsYW50IHNob3VsZCBiZSBhIG51bWVyaWMKICAgICB2YWx1ZSwgb3Ig b25lIG9mIHRoZSBuYW1lZCBzbGFudHMgaW4g4oCYZm9udC1zbGFudC10YWJsZeKAmS4gIE9uCiAg ICAgV2luZG93cywgYW55IHNsYW50IGFib3ZlIDE1MCBpcyB0cmVhdGVkIGFzIGl0YWxpY3MsIGFu ZCBhbnl0aGluZwogICAgIGJlbG93IGFzIHJvbWFuLgoK4oCYZmFtaWx54oCZCiAgICAgU3BlY2lm aWVzIHRoZSBmb250IGZhbWlseSwgYnV0IG5vcm1hbGx5IHRoaXMgd2lsbCBiZSBzcGVjaWZpZWQg YXQKICAgICB0aGUgc3RhcnQgb2YgdGhlIGZvbnQgbmFtZS4KCuKAmHBpeGVsc2l6ZeKAmQogICAg IFNwZWNpZmllcyB0aGUgZm9udCBzaXplIGluIHBpeGVscy4gIFRoaXMgY2FuIGJlIHVzZWQgaW5z dGVhZCBvZiB0aGUKICAgICBwb2ludCBzaXplIHNwZWNpZmllZCBhZnRlciB0aGUgZmFtaWx5IG5h bWUuCgrigJhhZHN0eWxl4oCZCiAgICAgU3BlY2lmaWVzIGFkZGl0aW9uYWwgc3R5bGUgaW5mb3Jt YXRpb24gZm9yIHRoZSBmb250LiAgT24KICAgICBNUy1XaW5kb3dzLCB0aGUgdmFsdWVzIOKAmG1v bm/igJksIOKAmHNhbnPigJksIOKAmHNlcmlm4oCZLCDigJhzY3JpcHTigJkgYW5kCiAgICAg4oCY ZGVjb3JhdGl2ZeKAmSBhcmUgcmVjb2duaXplZC4gIFRoZXNlIGFyZSBtb3N0IHVzZWZ1bCBhcyBh IGZhbGxiYWNrCiAgICAgd2l0aCB0aGUgZm9udCBmYW1pbHkgbGVmdCB1bnNwZWNpZmllZC4KCuKA mHJlZ2lzdHJ54oCZCiAgICAgU3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXIgc2V0IHJlZ2lzdHJ5IHRo YXQgdGhlIGZvbnQgaXMgZXhwZWN0ZWQgdG8KICAgICBjb3Zlci4gIE1vc3QgVHJ1ZVR5cGUgYW5k IE9wZW5UeXBlIGZvbnRzIHdpbGwgYmUgVW5pY29kZSBmb250cyB0aGF0CiAgICAgY292ZXIgc2V2 ZXJhbCBuYXRpb25hbCBjaGFyYWN0ZXIgc2V0cywgYnV0IHlvdSBjYW4gbmFycm93IGRvd24gdGhl CiAgICAgc2VsZWN0aW9uIG9mIGZvbnRzIHRvIHRob3NlIHRoYXQgc3VwcG9ydCBhIHBhcnRpY3Vs YXIgY2hhcmFjdGVyIHNldAogICAgIGJ5IHVzaW5nIGEgc3BlY2lmaWMgcmVnaXN0cnkgZnJvbSDi gJh3MzItY2hhcnNldC1pbmZvLWFsaXN04oCZIGhlcmUuCgrigJhzcGFjaW5n4oCZCiAgICAgU3Bl Y2lmaWVzIGhvdyB0aGUgZm9udCBpcyBzcGFjZWQuICBUaGUg4oCYcOKAmSBzcGFjaW5nIHNwZWNp ZmllcyBhCiAgICAgcHJvcG9ydGlvbmFsIGZvbnQsIGFuZCDigJht4oCZIG9yIOKAmGPigJkgc3Bl Y2lmeSBhIG1vbm9zcGFjZWQgZm9udC4KCuKAmGZvdW5kcnnigJkKICAgICBOb3QgdXNlZCBvbiBX aW5kb3dzLCBidXQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgYW5kIHRvIHByZXZlbnQKICAg ICBwcm9ibGVtcyB3aXRoIGNvZGUgdGhhdCBleHBlY3RzIGl0IHRvIGJlIHNldCwgaXMgc2V0IGlu dGVybmFsbHkgdG8KICAgICDigJhyYXN0ZXLigJkgZm9yIGJpdG1hcHBlZCBmb250cywg4oCYb3V0 bGluZeKAmSBmb3Igc2NhbGFibGUgZm9udHMsIG9yCiAgICAg4oCYdW5rbm93buKAmSBpZiB0aGUg dHlwZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBhcyBvbmUgb2YgdGhvc2UuCgogICBPcHRpb25zIHNw ZWNpZmljIHRvIOKAmEdESeKAmSBmb250czoKCuKAmHNjcmlwdOKAmQogICAgIFNwZWNpZmllcyBh IFVuaWNvZGUgc3VicmFuZ2UgdGhlIGZvbnQgc2hvdWxkIHN1cHBvcnQuCgogICAgIFRoZSBmb2xs b3dpbmcgc2NyaXB0cyBhcmUgcmVjb2duaXplZCBvbiBXaW5kb3dzOiDigJhsYXRpbuKAmSwg4oCY Z3JlZWvigJksCiAgICAg4oCYY29wdGlj4oCZLCDigJhjeXJpbGxpY+KAmSwg4oCYYXJtZW5pYW7i gJksIOKAmGhlYnJld+KAmSwg4oCYYXJhYmlj4oCZLCDigJhzeXJpYWPigJksCiAgICAg4oCYbmtv 4oCZLCDigJh0aGFhbmHigJksIOKAmGRldmFuYWdhcmnigJksIOKAmGJlbmdhbGnigJksIOKAmGd1 cm11a2hp4oCZLCDigJhndWphcmF0aeKAmSwKICAgICDigJhvcml5YeKAmSwg4oCYdGFtaWzigJks IOKAmHRlbHVndeKAmSwg4oCYa2FubmFkYeKAmSwg4oCYbWFsYXlhbeKAmSwg4oCYc2luaGFsYeKA mSwKICAgICDigJh0aGFp4oCZLCDigJhsYW/igJksIOKAmHRpYmV0YW7igJksIOKAmG15YW5tYXLi gJksIOKAmGdlb3JnaWFu4oCZLCDigJhoYW5ndWzigJksCiAgICAg4oCYZXRoaW9waWPigJksIOKA mGNoZXJva2Vl4oCZLCDigJhjYW5hZGlhbi1hYm9yaWdpbmFs4oCZLCDigJhvZ2hhbeKAmSwg4oCY cnVuaWPigJksCiAgICAg4oCYa2htZXLigJksIOKAmG1vbmdvbGlhbuKAmSwg4oCYc3ltYm9s4oCZ LCDigJhicmFpbGxl4oCZLCDigJhoYW7igJksCiAgICAg4oCYaWRlb2dyYXBoaWMtZGVzY3JpcHRp b27igJksIOKAmGNqay1taXNj4oCZLCDigJhrYW5h4oCZLCDigJhib3BvbW9mb+KAmSwKICAgICDi gJhrYW5idW7igJksIOKAmHlp4oCZLCDigJhieXphbnRpbmUtbXVzaWNhbC1zeW1ib2zigJksIOKA mG11c2ljYWwtc3ltYm9s4oCZLCBhbmQKICAgICDigJhtYXRoZW1hdGljYWzigJkuCgrigJhhbnRp YWxpYXPigJkKICAgICBTcGVjaWZpZXMgdGhlIGFudGlhbGlhc2luZyBtZXRob2QuICBUaGUgdmFs dWUg4oCYbm9uZeKAmSBtZWFucyBubwogICAgIGFudGlhbGlhc2luZywg4oCYc3RhbmRhcmTigJkg bWVhbnMgdXNlIHN0YW5kYXJkIGFudGlhbGlhc2luZywKICAgICDigJhzdWJwaXhlbOKAmSBtZWFu cyB1c2Ugc3VicGl4ZWwgYW50aWFsaWFzaW5nIChrbm93biBhcyBDbGVhcnR5cGUgb24KICAgICBX aW5kb3dzKSwgYW5kIOKAmG5hdHVyYWzigJkgbWVhbnMgdXNlIHN1YnBpeGVsIGFudGlhbGlhc2lu ZyB3aXRoCiAgICAgYWRqdXN0ZWQgc3BhY2luZyBiZXR3ZWVuIGxldHRlcnMuICBJZiB1bnNwZWNp ZmllZCwgdGhlIGZvbnQgd2lsbAogICAgIHVzZSB0aGUgc3lzdGVtIGRlZmF1bHQgYW50aWFsaWFz aW5nLgoKCioqKiBHLjExIE1pc2NlbGxhbmVvdXMgV2luZG93cy1zcGVjaWZpYyBmZWF0dXJlcwoK VGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBXaW5kb3dzLXNwZWNpZmljIGZlYXR1cmVzIHRoYXQgZG9u 4oCZdCBmaXQgYW55d2hlcmUKZWxzZS4KCiAgIFRoZSB2YXJpYWJsZSDigJh3MzItdXNlLXZpc2li bGUtc3lzdGVtLWNhcmV04oCZIGlzIGEgZmxhZyB0aGF0IGRldGVybWluZXMKd2hldGhlciB0byBt YWtlIHRoZSBzeXN0ZW0gY2FyZXQgdmlzaWJsZS4gIFRoZSBkZWZhdWx0IHdoZW4gbm8gc2NyZWVu CnJlYWRlciBzb2Z0d2FyZSBpcyBpbiB1c2UgaXMg4oCYbmls4oCZLCB3aGljaCBtZWFucyBFbWFj cyBkcmF3cyBpdHMgb3duCmN1cnNvciB0byBpbmRpY2F0ZSB0aGUgcG9zaXRpb24gb2YgcG9pbnQu ICBBIG5vbi3igJhuaWzigJkgdmFsdWUgbWVhbnMgRW1hY3MKd2lsbCBpbmRpY2F0ZSBwb2ludCBs b2NhdGlvbiB3aXRoIHRoZSBzeXN0ZW0gY2FyZXQ7IHRoaXMgZmFjaWxpdGF0ZXMgdXNlCm9mIHNj cmVlbiByZWFkZXIgc29mdHdhcmUsIGFuZCBpcyB0aGUgZGVmYXVsdCB3aGVuIHN1Y2ggc29mdHdh cmUgaXMKZGV0ZWN0ZWQgd2hlbiBydW5uaW5nIEVtYWNzLiAgV2hlbiB0aGlzIHZhcmlhYmxlIGlz IG5vbi3igJhuaWzigJksIG90aGVyCnZhcmlhYmxlcyBhZmZlY3RpbmcgdGhlIGN1cnNvciBkaXNw bGF5IGhhdmUgbm8gZWZmZWN0LgoKICAgVGhlIHZhcmlhYmxlIOKAmHczMi1ncmFiLWZvY3VzLW9u LXJhaXNl4oCZLCBpZiBzZXQgdG8gYSBub24t4oCYbmls4oCZIHZhbHVlCmNhdXNlcyBhIGZyYW1l IHRvIGdyYWIgZm9jdXMgd2hlbiBpdCBpcyByYWlzZWQuICBUaGUgZGVmYXVsdCBpcyDigJh04oCZ LAp3aGljaCBmaXRzIHdlbGwgd2l0aCB0aGUgV2luZG93cyBkZWZhdWx0IGNsaWNrLXRvLWZvY3Vz IHBvbGljeS4KCgoqKiogRy4xMiBFbWFjcyBhbmQgTVMtRE9TCgpUaGlzIHNlY3Rpb24gYnJpZWZs eSBkZXNjcmliZXMgdGhlIHBlY3VsaWFyaXRpZXMgb2YgdXNpbmcgRW1hY3Mgb24KTVMtRE9TLiBJ bmZvcm1hdGlvbiBhYm91dCBwZWN1bGlhcml0aWVzIGNvbW1vbiB0byBNUy1ET1MgYW5kIE1pY3Jv c29mdOKAmXMKY3VycmVudCBvcGVyYXRpbmcgc3lzdGVtcyBXaW5kb3dzIGlzIGluICpub3RlIE1p Y3Jvc29mdCBXaW5kb3dzOjouCgogICBJZiB5b3UgYnVpbGQgRW1hY3MgZm9yIE1TLURPUywgdGhl IGJpbmFyeSB3aWxsIGFsc28gcnVuIG9uIFdpbmRvd3MKMy5YLCBXaW5kb3dzIE5ULCBXaW5kb3dz IDlYL01FLCBvciBXaW5kb3dzIDIwMDAvWFAgYXMgYSBET1MgYXBwbGljYXRpb247CmFsbCBvZiB0 aGlzIGNoYXB0ZXIgYXBwbGllcyBmb3IgYWxsIG9mIHRob3NlIHN5c3RlbXMsIGlmIHlvdSB1c2Ug YW4KRW1hY3MgdGhhdCB3YXMgYnVpbHQgZm9yIE1TLURPUy4KCiAgICpOb3RlIFRleHQgYW5kIEJp bmFyeTo6LCBmb3IgaW5mb3JtYXRpb24gYWJvdXQgRW1hY3PigJlzIHNwZWNpYWwKaGFuZGxpbmcg b2YgdGV4dCBmaWxlcyB1bmRlciBNUy1ET1MgKGFuZCBXaW5kb3dzKS4KCisgTWVudToKCiAgLSBL ZXlib2FyZDogTVMtRE9TIEtleWJvYXJkLiAgIEtleWJvYXJkIGNvbnZlbnRpb25zIG9uIE1TLURP Uy4KICAtIE1vdXNlOiBNUy1ET1MgTW91c2UuICAgICAgICAgTW91c2UgY29udmVudGlvbnMgb24g TVMtRE9TLgogIC0gRGlzcGxheTogTVMtRE9TIERpc3BsYXkuICAgICBGb250cywgZnJhbWVzIGFu ZCBkaXNwbGF5IHNpemUgb24gTVMtRE9TLgogIC0gRmlsZXM6IE1TLURPUyBGaWxlIE5hbWVzLiAg ICBGaWxlIG5hbWUgY29udmVudGlvbnMgb24gTVMtRE9TLgogIC0gUHJpbnRpbmc6IE1TLURPUyBQ cmludGluZy4gICBQcmludGluZyBzcGVjaWZpY3Mgb24gTVMtRE9TLgogIC0gSTE4TjogTVMtRE9T IGFuZCBNVUxFLiAgICAgICBTdXBwb3J0IGZvciBpbnRlcm5hdGlvbmFsaXphdGlvbiBvbiBNUy1E T1MuCiAgLSBQcm9jZXNzZXM6IE1TLURPUyBQcm9jZXNzZXMuIFJ1bm5pbmcgc3VicHJvY2Vzc2Vz IG9uIE1TLURPUy4KCgoqKioqIEcuMTIuMSBLZXlib2FyZCBVc2FnZSBvbiBNUy1ET1MKClRoZSBr ZXkgdGhhdCBpcyBjYWxsZWQgPERFTD4gaW4gRW1hY3MgKGJlY2F1c2UgdGhhdOKAmXMgaG93IGl0 IGlzCmRlc2lnbmF0ZWQgb24gbW9zdCB3b3Jrc3RhdGlvbnMpIGlzIGtub3duIGFzIDxCUz4gKGJh Y2tzcGFjZSkgb24gYSBQQy4KVGhhdCBpcyB3aHkgdGhlIFBDLXNwZWNpZmljIHRlcm1pbmFsIGlu aXRpYWxpemF0aW9uIHJlbWFwcyB0aGUgPEJTPiBrZXkKdG8gYWN0IGFzIDxERUw+OyB0aGUgPERl bGV0ZT4ga2V5IGlzIHJlbWFwcGVkIHRvIGFjdCBhcyDigJhDLWTigJkgZm9yIHRoZQpzYW1lIHJl YXNvbnMuCgogICBFbWFjcyBidWlsdCBmb3IgTVMtRE9TIHJlY29nbml6ZXMg4oCYQy08QnJlYWs+ 4oCZIGFzIGEgcXVpdCBjaGFyYWN0ZXIsCmp1c3QgbGlrZSDigJhDLWfigJkuICBUaGlzIGlzIGJl Y2F1c2UgRW1hY3MgY2Fubm90IGRldGVjdCB0aGF0IHlvdSBoYXZlCnR5cGVkIOKAmEMtZ+KAmSB1 bnRpbCBpdCBpcyByZWFkeSBmb3IgbW9yZSBpbnB1dC4gIEFzIGEgY29uc2VxdWVuY2UsIHlvdQpj YW5ub3QgdXNlIOKAmEMtZ+KAmSB0byBzdG9wIGEgcnVubmluZyBjb21tYW5kICgqbm90ZSBRdWl0 dGluZzo6KS4gIEJ5CmNvbnRyYXN0LCDigJhDLTxCcmVhaz7igJkgX2lzXyBkZXRlY3RlZCBhcyBz b29uIGFzIHlvdSB0eXBlIGl0IChhcyDigJhDLWfigJkgaXMKb24gb3RoZXIgc3lzdGVtcyksIHNv IGl0IGNhbiBiZSB1c2VkIHRvIHN0b3AgYSBydW5uaW5nIGNvbW1hbmQgYW5kIGZvcgplbWVyZ2Vu Y3kgZXNjYXBlICgqbm90ZSBFbWVyZ2VuY3kgRXNjYXBlOjopLgoKICAgVGhlIFBDIGtleWJvYXJk IG1hcHMgdXNlIHRoZSBsZWZ0IDxBbHQ+IGtleSBhcyB0aGUgPE1ldGE+IGtleS4gIFlvdQpoYXZl IHR3byBjaG9pY2VzIGZvciBlbXVsYXRpbmcgdGhlIDxTVVBFUj4gYW5kIDxIeXBlcj4ga2V5czog Y2hvb3NlCmVpdGhlciB0aGUgcmlnaHQgPEN0cmw+IGtleSBvciB0aGUgcmlnaHQgPEFsdD4ga2V5 IGJ5IHNldHRpbmcgdGhlCnZhcmlhYmxlcyDigJhkb3MtaHlwZXIta2V54oCZIGFuZCDigJhkb3Mt c3VwZXIta2V54oCZIHRvIDEgb3IgMiByZXNwZWN0aXZlbHkuCklmIG5laXRoZXIg4oCYZG9zLXN1 cGVyLWtleeKAmSBub3Ig4oCYZG9zLWh5cGVyLWtleeKAmSBpcyAxLCB0aGVuIGJ5IGRlZmF1bHQg dGhlCnJpZ2h0IDxBbHQ+IGtleSBpcyBhbHNvIG1hcHBlZCB0byB0aGUgPE1ldGE+IGtleS4gIEhv d2V2ZXIsIGlmIHRoZQpNUy1ET1MgaW50ZXJuYXRpb25hbCBrZXlib2FyZCBzdXBwb3J0IHByb2dy YW0g4oCYS0VZQi5DT03igJkgaXMgaW5zdGFsbGVkLApFbWFjcyB3aWxsIF9ub3RfIG1hcCB0aGUg cmlnaHQgPEFsdD4gdG8gPE1ldGE+LCBzaW5jZSBpdCBpcyB1c2VkIGZvcgphY2Nlc3NpbmcgY2hh cmFjdGVycyBsaWtlIOKAmH7igJkgYW5kIOKAmEDigJkgb24gbm9uLVVTIGtleWJvYXJkIGxheW91 dHM7IGluCnRoaXMgY2FzZSwgeW91IG1heSBvbmx5IHVzZSB0aGUgbGVmdCA8QWx0PiBhcyA8TWV0 YT4ga2V5LgoKICAgVGhlIHZhcmlhYmxlIOKAmGRvcy1rZXlwYWQtbW9kZeKAmSBpcyBhIGZsYWcg dmFyaWFibGUgdGhhdCBjb250cm9scyB3aGF0CmtleSBjb2RlcyBhcmUgcmV0dXJuZWQgYnkga2V5 cyBpbiB0aGUgbnVtZXJpYyBrZXlwYWQuICBZb3UgY2FuIGFsc28KZGVmaW5lIHRoZSBrZXlwYWQg PEVOVEVSPiBrZXkgdG8gYWN0IGxpa2Ug4oCYQy1q4oCZLCBieSBwdXR0aW5nIHRoZQpmb2xsb3dp bmcgbGluZSBpbnRvIHlvdXIg4oCYX2VtYWNz4oCZIGZpbGU6CgogICAgIDs7IE1ha2UgdGhlIDxF TlRFUj4ga2V5IGZyb20gdGhlIG51bWVyaWMga2V5cGFkIGFjdCBhcyDigJhDLWrigJkuCiAgICAg KGRlZmluZS1rZXkgZnVuY3Rpb24ta2V5LW1hcCBba3AtZW50ZXJdIFs/XEMtal0pCgoKKioqKiBH LjEyLjIgTW91c2UgVXNhZ2Ugb24gTVMtRE9TCgpFbWFjcyBvbiBNUy1ET1Mgc3VwcG9ydHMgYSBt b3VzZSAob24gdGhlIGRlZmF1bHQgdGVybWluYWwgb25seSkuICBUaGUKbW91c2UgY29tbWFuZHMg d29yayBhcyBkb2N1bWVudGVkLCBpbmNsdWRpbmcgdGhvc2UgdGhhdCB1c2UgbWVudXMgYW5kCnRo ZSBtZW51IGJhciAoKm5vdGUgTWVudSBCYXI6OikuICBTY3JvbGwgYmFycyBkb27igJl0IHdvcmsg aW4gTVMtRE9TCkVtYWNzLiAgUEMgbWljZSB1c3VhbGx5IGhhdmUgb25seSB0d28gYnV0dG9uczsg dGhlc2UgYWN0IGFzIOKAmG1vdXNlLTHigJkKYW5kIOKAmG1vdXNlLTLigJksIGJ1dCBpZiB5b3Ug cHJlc3MgYm90aCBvZiB0aGVtIHRvZ2V0aGVyLCB0aGF0IGhhcyB0aGUKZWZmZWN0IG9mIOKAmG1v dXNlLTPigJkuICBJZiB0aGUgbW91c2UgZG9lcyBoYXZlIDMgYnV0dG9ucywgRW1hY3MgZGV0ZWN0 cwp0aGF0IGF0IHN0YXJ0dXAsIGFuZCBhbGwgdGhlIDMgYnV0dG9ucyBmdW5jdGlvbiBub3JtYWxs eSwgYXMgb24gWC4KCiAgIEhlbHAgc3RyaW5ncyBmb3IgbWVudS1iYXIgYW5kIHBvcC11cCBtZW51 cyBhcmUgZGlzcGxheWVkIGluIHRoZSBlY2hvCmFyZWEgd2hlbiB0aGUgbW91c2UgcG9pbnRlciBt b3ZlcyBhY3Jvc3MgdGhlIG1lbnUgaXRlbXMuICBIaWdobGlnaHRpbmcKb2YgbW91c2Utc2Vuc2l0 aXZlIHRleHQgKCpub3RlIE1vdXNlIFJlZmVyZW5jZXM6OikgaXMgYWxzbyBzdXBwb3J0ZWQuCgog ICBTb21lIHZlcnNpb25zIG9mIG1vdXNlIGRyaXZlcnMgZG9u4oCZdCByZXBvcnQgdGhlIG51bWJl ciBvZiBtb3VzZQpidXR0b25zIGNvcnJlY3RseS4gIEZvciBleGFtcGxlLCBtaWNlIHdpdGggYSB3 aGVlbCByZXBvcnQgdGhhdCB0aGV5IGhhdmUKMyBidXR0b25zLCBidXQgb25seSAyIG9mIHRoZW0g YXJlIHBhc3NlZCB0byBFbWFjczsgdGhlIGNsaWNrcyBvbiB0aGUKd2hlZWwsIHdoaWNoIHNlcnZl cyBhcyB0aGUgbWlkZGxlIGJ1dHRvbiwgYXJlIG5vdCBwYXNzZWQuICBJbiB0aGVzZQpjYXNlcywg eW91IGNhbiB1c2UgdGhlIOKAmE0teCBtc2Rvcy1zZXQtbW91c2UtYnV0dG9uc+KAmSBjb21tYW5k IHRvIHRlbGwKRW1hY3MgaG93IG1hbnkgbW91c2UgYnV0dG9ucyB0byBleHBlY3QuICBZb3UgY291 bGQgbWFrZSBzdWNoIGEgc2V0dGluZwpwZXJtYW5lbnQgYnkgYWRkaW5nIHRoaXMgZnJhZ21lbnQg dG8geW91ciDigJhfZW1hY3PigJkgaW5pdCBmaWxlOgoKICAgICA7OyBUcmVhdCB0aGUgbW91c2Ug bGlrZSBhIDItYnV0dG9uIG1vdXNlLgogICAgIChtc2Rvcy1zZXQtbW91c2UtYnV0dG9ucyAyKQoK ICAgRW1hY3MgYnVpbHQgZm9yIE1TLURPUyBzdXBwb3J0cyBjbGlwYm9hcmQgb3BlcmF0aW9ucyB3 aGVuIGl0IHJ1bnMgb24KV2luZG93cy4gIENvbW1hbmRzIHRoYXQgcHV0IHRleHQgb24gdGhlIGtp bGwgcmluZywgb3IgeWFuayB0ZXh0IGZyb20gdGhlCnJpbmcsIGNoZWNrIHRoZSBXaW5kb3dzIGNs aXBib2FyZCBmaXJzdCwganVzdCBhcyBFbWFjcyBkb2VzIG9uIHRoZSBYCldpbmRvdyBTeXN0ZW0g KCpub3RlIE1vdXNlIENvbW1hbmRzOjopLiAgT25seSB0aGUgcHJpbWFyeSBzZWxlY3Rpb24gYW5k CnRoZSBjdXQgYnVmZmVyIGFyZSBzdXBwb3J0ZWQgYnkgTVMtRE9TIEVtYWNzIG9uIFdpbmRvd3M7 IHRoZSBzZWNvbmRhcnkKc2VsZWN0aW9uIGFsd2F5cyBhcHBlYXJzIGFzIGVtcHR5LgoKICAgRHVl IHRvIHRoZSB3YXkgY2xpcGJvYXJkIGFjY2VzcyBpcyBpbXBsZW1lbnRlZCBieSBXaW5kb3dzLCB0 aGUgbGVuZ3RoCm9mIHRleHQgeW91IGNhbiBwdXQgaW50byB0aGUgY2xpcGJvYXJkIGlzIGxpbWl0 ZWQgYnkgdGhlIGFtb3VudCBvZiBmcmVlCkRPUyBtZW1vcnkgdGhhdCBpcyBhdmFpbGFibGUgdG8g RW1hY3MuICBVc3VhbGx5LCB1cCB0byA2MjBLQiBvZiB0ZXh0IGNhbgpiZSBwdXQgaW50byB0aGUg Y2xpcGJvYXJkLCBidXQgdGhpcyBsaW1pdCBkZXBlbmRzIG9uIHRoZSBzeXN0ZW0KY29uZmlndXJh dGlvbiBhbmQgaXMgbG93ZXIgaWYgeW91IHJ1biBFbWFjcyBhcyBhIHN1YnByb2Nlc3Mgb2YgYW5v dGhlcgpwcm9ncmFtLiAgSWYgdGhlIGtpbGxlZCB0ZXh0IGRvZXMgbm90IGZpdCwgRW1hY3Mgb3V0 cHV0cyBhIG1lc3NhZ2UKc2F5aW5nIHNvLCBhbmQgZG9lcyBub3QgcHV0IHRoZSB0ZXh0IGludG8g dGhlIGNsaXBib2FyZC4KCiAgIE51bGwgY2hhcmFjdGVycyBhbHNvIGNhbm5vdCBiZSBwdXQgaW50 byB0aGUgV2luZG93cyBjbGlwYm9hcmQuICBJZgp0aGUga2lsbGVkIHRleHQgaW5jbHVkZXMgbnVs bCBjaGFyYWN0ZXJzLCBFbWFjcyBkb2VzIG5vdCBwdXQgc3VjaCB0ZXh0CmludG8gdGhlIGNsaXBi b2FyZCwgYW5kIGRpc3BsYXlzIGluIHRoZSBlY2hvIGFyZWEgYSBtZXNzYWdlIHRvIHRoYXQKZWZm ZWN0LgoKICAgVGhlIHZhcmlhYmxlIOKAmGRvcy1kaXNwbGF5LXNjYW5jb2Rlc+KAmSwgd2hlbiBu b24t4oCYbmls4oCZLCBkaXJlY3RzIEVtYWNzCnRvIGRpc3BsYXkgdGhlIEFTQ0lJIHZhbHVlIGFu ZCB0aGUga2V5Ym9hcmQgc2NhbiBjb2RlIG9mIGVhY2gga2V5c3Ryb2tlOwp0aGlzIGZlYXR1cmUg c2VydmVzIGFzIGEgY29tcGxlbWVudCB0byB0aGUg4oCYdmlldy1sb3NzYWdl4oCZIGNvbW1hbmQs IGZvcgpkZWJ1Z2dpbmcuCgoKKioqKiBHLjEyLjMgRGlzcGxheSBvbiBNUy1ET1MKCkRpc3BsYXkg b24gTVMtRE9TIGNhbm5vdCB1c2UgZm9udCB2YXJpYW50cywgbGlrZSBib2xkIG9yIGl0YWxpYywg YnV0IGl0CmRvZXMgc3VwcG9ydCBtdWx0aXBsZSBmYWNlcywgZWFjaCBvZiB3aGljaCBjYW4gc3Bl Y2lmeSBhIGZvcmVncm91bmQgYW5kCmEgYmFja2dyb3VuZCBjb2xvci4gIFRoZXJlZm9yZSwgeW91 IGNhbiBnZXQgdGhlIGZ1bGwgZnVuY3Rpb25hbGl0eSBvZgpFbWFjcyBwYWNrYWdlcyB0aGF0IHVz ZSBmb250cyAoc3VjaCBhcyDigJhmb250LWxvY2vigJksIEVucmljaGVkIFRleHQgbW9kZSwKYW5k IG90aGVycykgYnkgZGVmaW5pbmcgdGhlIHJlbGV2YW50IGZhY2VzIHRvIHVzZSBkaWZmZXJlbnQg Y29sb3JzLiAgVXNlCnRoZSDigJhsaXN0LWNvbG9ycy1kaXNwbGF54oCZIGNvbW1hbmQgKCpub3Rl IENvbG9yczo6KSBhbmQgdGhlCuKAmGxpc3QtZmFjZXMtZGlzcGxheeKAmSBjb21tYW5kICgqbm90 ZSBGYWNlczo6KSB0byBzZWUgd2hhdCBjb2xvcnMgYW5kCmZhY2VzIGFyZSBhdmFpbGFibGUgYW5k IHdoYXQgdGhleSBsb29rIGxpa2UuCgogICAqTm90ZSBNUy1ET1MgYW5kIE1VTEU6OiwgbGF0ZXIg aW4gdGhpcyBjaGFwdGVyLCBmb3IgaW5mb3JtYXRpb24gb24KaG93IEVtYWNzIGRpc3BsYXlzIGds eXBocyBhbmQgY2hhcmFjdGVycyB0aGF0IGFyZW7igJl0IHN1cHBvcnRlZCBieSB0aGUKbmF0aXZl IGZvbnQgYnVpbHQgaW50byB0aGUgRE9TIGRpc3BsYXkuCgogICBXaGVuIEVtYWNzIHN0YXJ0cywg aXQgY2hhbmdlcyB0aGUgY3Vyc29yIHNoYXBlIHRvIGEgc29saWQgYm94LiAgVGhpcwppcyBmb3Ig Y29tcGF0aWJpbGl0eSB3aXRoIG90aGVyIHN5c3RlbXMsIHdoZXJlIHRoZSBib3ggY3Vyc29yIGlz IHRoZQpkZWZhdWx0IGluIEVtYWNzLiAgVGhpcyBkZWZhdWx0IHNoYXBlIGNhbiBiZSBjaGFuZ2Vk IHRvIGEgYmFyIGJ5CnNwZWNpZnlpbmcgdGhlIOKAmGN1cnNvci10eXBl4oCZIHBhcmFtZXRlciBp biB0aGUgdmFyaWFibGUK4oCYZGVmYXVsdC1mcmFtZS1hbGlzdOKAmSAoKm5vdGUgQ3JlYXRpbmcg RnJhbWVzOjopLiAgVGhlIE1TLURPUyB0ZXJtaW5hbApkb2VzbuKAmXQgc3VwcG9ydCBhIHZlcnRp Y2FsLWJhciBjdXJzb3IsIHNvIHRoZSBiYXIgY3Vyc29yIGlzIGhvcml6b250YWwsCmFuZCB0aGUg 4oCYV0lEVEjigJkgcGFyYW1ldGVyLCBpZiBzcGVjaWZpZWQgYnkgdGhlIGZyYW1lIHBhcmFtZXRl cnMsCmFjdHVhbGx5IGRldGVybWluZXMgaXRzIGhlaWdodC4gIEZvciB0aGlzIHJlYXNvbiwgdGhl IOKAmGJhcuKAmSBhbmQg4oCYaGJhcuKAmQpjdXJzb3IgdHlwZXMgcHJvZHVjZSB0aGUgc2FtZSBl ZmZlY3Qgb24gTVMtRE9TLiAgQXMgYW4gZXh0ZW5zaW9uLCB0aGUKYmFyIGN1cnNvciBzcGVjaWZp Y2F0aW9uIGNhbiBpbmNsdWRlIHRoZSBzdGFydGluZyBzY2FuIGxpbmUgb2YgdGhlCmN1cnNvciBh cyB3ZWxsIGFzIGl0cyB3aWR0aCwgbGlrZSB0aGlzOgoKICAgICAgJyhjdXJzb3ItdHlwZSBiYXIg V0lEVEggLiBTVEFSVCkKCkluIGFkZGl0aW9uLCBpZiB0aGUgV0lEVEggcGFyYW1ldGVyIGlzIG5l Z2F0aXZlLCB0aGUgY3Vyc29yIGJhciBiZWdpbnMKYXQgdGhlIHRvcCBvZiB0aGUgY2hhcmFjdGVy IGNlbGwuCgogICBUaGUgTVMtRE9TIHRlcm1pbmFsIGNhbiBvbmx5IGRpc3BsYXkgYSBzaW5nbGUg ZnJhbWUgYXQgYSB0aW1lLiAgVGhlCkVtYWNzIGZyYW1lIGZhY2lsaXRpZXMgd29yayBvbiBNUy1E T1MgbXVjaCBhcyB0aGV5IGRvIG9uIHRleHQgdGVybWluYWxzCigqbm90ZSBGcmFtZXM6OikuICBX aGVuIHlvdSBydW4gRW1hY3MgZnJvbSBhIERPUyB3aW5kb3cgb24gTVMtV2luZG93cywKeW91IGNh biBtYWtlIHRoZSB2aXNpYmxlIGZyYW1lIHNtYWxsZXIgdGhhbiB0aGUgZnVsbCBzY3JlZW4sIGJ1 dCBFbWFjcwpzdGlsbCBjYW5ub3QgZGlzcGxheSBtb3JlIHRoYW4gYSBzaW5nbGUgZnJhbWUgYXQg YSB0aW1lLgoKICAgVGhlIOKAmGRvcy1tb2RlNDM1MOKAmSBjb21tYW5kIHN3aXRjaGVzIHRoZSBk aXNwbGF5IHRvIDQzIG9yIDUwIGxpbmVzLApkZXBlbmRpbmcgb24geW91ciBoYXJkd2FyZTsgdGhl IOKAmGRvcy1tb2RlMjXigJkgY29tbWFuZCBzd2l0Y2hlcyB0byB0aGUKZGVmYXVsdCA4MHgyNSBz Y3JlZW4gc2l6ZS4KCiAgIEJ5IGRlZmF1bHQsIEVtYWNzIG9ubHkga25vd3MgaG93IHRvIHNldCBz Y3JlZW4gc2l6ZXMgb2YgODAgY29sdW1ucyBieQoyNSwgMjgsIDM1LCA0MCwgNDMgb3IgNTAgcm93 cy4gIEhvd2V2ZXIsIGlmIHlvdXIgdmlkZW8gYWRhcHRlciBoYXMKc3BlY2lhbCB2aWRlbyBtb2Rl cyB0aGF0IHdpbGwgc3dpdGNoIHRoZSBkaXNwbGF5IHRvIG90aGVyIHNpemVzLCB5b3UgY2FuCmhh dmUgRW1hY3Mgc3VwcG9ydCB0aG9zZSB0b28uICBXaGVuIHlvdSBhc2sgRW1hY3MgdG8gc3dpdGNo IHRoZSBmcmFtZSB0bwpOIHJvd3MgYnkgTSBjb2x1bW5zIGRpbWVuc2lvbnMsIGl0IGNoZWNrcyBp ZiB0aGVyZSBpcyBhIHZhcmlhYmxlIGNhbGxlZArigJhzY3JlZW4tZGltZW5zaW9ucy1OeE3igJks IGFuZCBpZiBzbywgdXNlcyBpdHMgdmFsdWUgKHdoaWNoIG11c3QgYmUgYW4KaW50ZWdlcikgYXMg dGhlIHZpZGVvIG1vZGUgdG8gc3dpdGNoIHRvLiAgKEVtYWNzIHN3aXRjaGVzIHRvIHRoYXQgdmlk ZW8KbW9kZSBieSBjYWxsaW5nIHRoZSBCSU9TIOKAmFNldCBWaWRlbyBNb2Rl4oCZIGZ1bmN0aW9u IHdpdGggdGhlIHZhbHVlIG9mCuKAmHNjcmVlbi1kaW1lbnNpb25zLU54TeKAmSBpbiB0aGUg4oCY QUzigJkgcmVnaXN0ZXIuKSAgRm9yIGV4YW1wbGUsIHN1cHBvc2UKeW91ciBhZGFwdGVyIHdpbGwg c3dpdGNoIHRvIDY2eDgwIGRpbWVuc2lvbnMgd2hlbiBwdXQgaW50byB2aWRlbyBtb2RlCjg1LiAg VGhlbiB5b3UgY2FuIG1ha2UgRW1hY3Mgc3VwcG9ydCB0aGlzIHNjcmVlbiBzaXplIGJ5IHB1dHRp bmcgdGhlCmZvbGxvd2luZyBpbnRvIHlvdXIg4oCYX2VtYWNz4oCZIGZpbGU6CgogICAgIChzZXRx IHNjcmVlbi1kaW1lbnNpb25zLTY2eDgwIDg1KQoKICAgU2luY2UgRW1hY3Mgb24gTVMtRE9TIGNh biBvbmx5IHNldCB0aGUgZnJhbWUgc2l6ZSB0byBzcGVjaWZpYwpzdXBwb3J0ZWQgZGltZW5zaW9u cywgaXQgY2Fubm90IGhvbm9yIGV2ZXJ5IHBvc3NpYmxlIGZyYW1lIHJlc2l6aW5nCnJlcXVlc3Qu ICBXaGVuIGFuIHVuc3VwcG9ydGVkIHNpemUgaXMgcmVxdWVzdGVkLCBFbWFjcyBjaG9vc2VzIHRo ZSBuZXh0CmxhcmdlciBzdXBwb3J0ZWQgc2l6ZSBiZXlvbmQgdGhlIHNwZWNpZmllZCBzaXplLiAg Rm9yIGV4YW1wbGUsIGlmIHlvdQphc2sgZm9yIDM2eDgwIGZyYW1lLCB5b3Ugd2lsbCBnZXQgNDB4 ODAgaW5zdGVhZC4KCiAgIFRoZSB2YXJpYWJsZXMg4oCYc2NyZWVuLWRpbWVuc2lvbnMtTnhN4oCZ IGFyZSB1c2VkIG9ubHkgd2hlbiB0aGV5IGV4YWN0bHkKbWF0Y2ggdGhlIHNwZWNpZmllZCBzaXpl OyB0aGUgc2VhcmNoIGZvciB0aGUgbmV4dCBsYXJnZXIgc3VwcG9ydGVkIHNpemUKaWdub3JlcyB0 aGVtLiAgSW4gdGhlIGFib3ZlIGV4YW1wbGUsIGV2ZW4gaWYgeW91ciBWR0Egc3VwcG9ydHMgMzh4 ODAKZGltZW5zaW9ucyBhbmQgeW91IGRlZmluZSBhIHZhcmlhYmxlIOKAmHNjcmVlbi1kaW1lbnNp b25zLTM4eDgw4oCZIHdpdGggYQpzdWl0YWJsZSB2YWx1ZSwgeW91IHdpbGwgc3RpbGwgZ2V0IDQw eDgwIHNjcmVlbiB3aGVuIHlvdSBhc2sgZm9yIGEgMzZ4ODAKZnJhbWUuICBJZiB5b3Ugd2FudCB0 byBnZXQgdGhlIDM4eDgwIHNpemUgaW4gdGhpcyBjYXNlLCB5b3UgY2FuIGRvIGl0IGJ5CnNldHRp bmcgdGhlIHZhcmlhYmxlIG5hbWVkIOKAmHNjcmVlbi1kaW1lbnNpb25zLTM2eDgw4oCZIHdpdGgg dGhlIHNhbWUgdmlkZW8KbW9kZSB2YWx1ZSBhcyDigJhzY3JlZW4tZGltZW5zaW9ucy0zOHg4MOKA mS4KCiAgIENoYW5naW5nIGZyYW1lIGRpbWVuc2lvbnMgb24gTVMtRE9TIGhhcyB0aGUgZWZmZWN0 IG9mIGNoYW5naW5nIGFsbAp0aGUgb3RoZXIgZnJhbWVzIHRvIHRoZSBuZXcgZGltZW5zaW9ucy4K CgoqKioqIEcuMTIuNCBGaWxlIE5hbWVzIG9uIE1TLURPUwoKT24gTVMtRE9TLCBmaWxlIG5hbWVz IGFyZSBjYXNlLWluc2Vuc2l0aXZlIGFuZCBsaW1pdGVkIHRvIGVpZ2h0CmNoYXJhY3RlcnMsIHBs dXMgb3B0aW9uYWxseSBhIHBlcmlvZCBhbmQgdGhyZWUgbW9yZSBjaGFyYWN0ZXJzLiAgRW1hY3MK a25vd3MgZW5vdWdoIGFib3V0IHRoZXNlIGxpbWl0YXRpb25zIHRvIGhhbmRsZSBmaWxlIG5hbWVz IHRoYXQgd2VyZQptZWFudCBmb3Igb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMuICBGb3IgaW5zdGFu Y2UsIGxlYWRpbmcgZG90cyDigJgu4oCZIGluCmZpbGUgbmFtZXMgYXJlIGludmFsaWQgaW4gTVMt RE9TLCBzbyBFbWFjcyB0cmFuc3BhcmVudGx5IGNvbnZlcnRzIHRoZW0KdG8gdW5kZXJzY29yZXMg 4oCYX+KAmTsgdGh1cyB5b3VyIGRlZmF1bHQgaW5pdCBmaWxlICgqbm90ZSBJbml0IEZpbGU6Oikg aXMKY2FsbGVkIOKAmF9lbWFjc+KAmSBvbiBNUy1ET1MuICBFeGNlc3MgY2hhcmFjdGVycyBiZWZv cmUgb3IgYWZ0ZXIgdGhlIHBlcmlvZAphcmUgZ2VuZXJhbGx5IGlnbm9yZWQgYnkgTVMtRE9TIGl0 c2VsZjsgdGh1cywgaWYgeW91IHZpc2l0IHRoZSBmaWxlCuKAmExvbmdGaWxlTmFtZS5FdmVuTG9u Z2VyRXh0ZW5zaW9u4oCZLCB5b3Ugd2lsbCBzaWxlbnRseSBnZXQK4oCYbG9uZ2ZpbGUuZXZl4oCZ LCBidXQgRW1hY3Mgd2lsbCBzdGlsbCBkaXNwbGF5IHRoZSBsb25nIGZpbGUgbmFtZSBvbiB0aGUK bW9kZSBsaW5lLiAgT3RoZXIgdGhhbiB0aGF0LCBpdOKAmXMgdXAgdG8geW91IHRvIHNwZWNpZnkg ZmlsZSBuYW1lcyB3aGljaAphcmUgdmFsaWQgdW5kZXIgTVMtRE9TOyB0aGUgdHJhbnNwYXJlbnQg Y29udmVyc2lvbiBhcyBkZXNjcmliZWQgYWJvdmUKb25seSB3b3JrcyBvbiBmaWxlIG5hbWVzIGJ1 aWx0IGludG8gRW1hY3MuCgogICBUaGUgYWJvdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBmaWxlIG5h bWVzIG9uIE1TLURPUyBtYWtlIGl0IGFsbW9zdAppbXBvc3NpYmxlIHRvIGNvbnN0cnVjdCB0aGUg bmFtZSBvZiBhIGJhY2t1cCBmaWxlICgqbm90ZSBCYWNrdXAgTmFtZXM6OikKd2l0aG91dCBsb3Np bmcgc29tZSBvZiB0aGUgb3JpZ2luYWwgZmlsZSBuYW1lIGNoYXJhY3RlcnMuICBGb3IgZXhhbXBs ZSwKdGhlIG5hbWUgb2YgYSBiYWNrdXAgZmlsZSBmb3Ig4oCYZG9jcy50eHTigJkgaXMg4oCYZG9j cy50eH7igJkgZXZlbiBpZiBzaW5nbGUKYmFja3VwIGlzIHVzZWQuCgogICBJZiB5b3UgcnVuIEVt YWNzIGFzIGEgRE9TIGFwcGxpY2F0aW9uIHVuZGVyIFdpbmRvd3MgOVgsIFdpbmRvd3MgTUUsCm9y IFdpbmRvd3MgMjAwMC9YUCwgeW91IGNhbiB0dXJuIG9uIHN1cHBvcnQgZm9yIGxvbmcgZmlsZSBu YW1lcy4gIElmIHlvdQpkbyB0aGF0LCBFbWFjcyBkb2VzbuKAmXQgdHJ1bmNhdGUgZmlsZSBuYW1l cyBvciBjb252ZXJ0IHRoZW0gdG8gbG93ZXIKY2FzZTsgaW5zdGVhZCwgaXQgdXNlcyB0aGUgZmls ZSBuYW1lcyB0aGF0IHlvdSBzcGVjaWZ5LCB2ZXJiYXRpbS4gIFRvCmVuYWJsZSBsb25nIGZpbGUg bmFtZSBzdXBwb3J0LCBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIOKAmExGTuKAmSB0byDi gJh54oCZCmJlZm9yZSBzdGFydGluZyBFbWFjcy4gIFVuZm9ydHVuYXRlbHksIFdpbmRvd3MgTlQg ZG9lc27igJl0IGFsbG93IERPUwpwcm9ncmFtcyB0byBhY2Nlc3MgbG9uZyBmaWxlIG5hbWVzLCBz byBFbWFjcyBidWlsdCBmb3IgTVMtRE9TIHdpbGwgb25seQpzZWUgdGhlaXIgc2hvcnQgOCszIGFs aWFzZXMuCgogICBNUy1ET1MgaGFzIG5vIG5vdGlvbiBvZiBob21lIGRpcmVjdG9yeSwgc28gRW1h Y3Mgb24gTVMtRE9TIHByZXRlbmRzCnRoYXQgdGhlIGRpcmVjdG9yeSB3aGVyZSBpdCBpcyBpbnN0 YWxsZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSDigJhIT01F4oCZCmVudmlyb25tZW50IHZhcmlhYmxl LiAgVGhhdCBpcywgaWYgeW91ciBFbWFjcyBiaW5hcnksIOKAmGVtYWNzLmV4ZeKAmSwgaXMgaW4K dGhlIGRpcmVjdG9yeSDigJhjOi91dGlscy9lbWFjcy9iaW7igJksIHRoZW4gRW1hY3MgYWN0cyBh cyBpZiDigJhIT01F4oCZIHdlcmUKc2V0IHRvIOKAmGM6L3V0aWxzL2VtYWNz4oCZLiAgSW4gcGFy dGljdWxhciwgdGhhdCBpcyB3aGVyZSBFbWFjcyBsb29rcyBmb3IKdGhlIGluaXQgZmlsZSDigJhf ZW1hY3PigJkuICBXaXRoIHRoaXMgaW4gbWluZCwgeW91IGNhbiB1c2Ug4oCYfuKAmSBpbiBmaWxl Cm5hbWVzIGFzIGFuIGFsaWFzIGZvciB0aGUgaG9tZSBkaXJlY3RvcnksIGFzIHlvdSB3b3VsZCBv biBHTlUgb3IgVW5peC4KWW91IGNhbiBhbHNvIHNldCDigJhIT01F4oCZIHZhcmlhYmxlIGluIHRo ZSBlbnZpcm9ubWVudCBiZWZvcmUgc3RhcnRpbmcKRW1hY3M7IGl0cyB2YWx1ZSB3aWxsIHRoZW4g b3ZlcnJpZGUgdGhlIGFib3ZlIGRlZmF1bHQgYmVoYXZpb3IuCgogICBFbWFjcyBvbiBNUy1ET1Mg aGFuZGxlcyB0aGUgbmFtZSDigJgvZGV24oCZIHNwZWNpYWxseSwgYmVjYXVzZSBvZiBhCmZlYXR1 cmUgaW4gdGhlIGVtdWxhdG9yIGxpYnJhcmllcyBvZiBESkdQUCB0aGF0IHByZXRlbmRzIEkvTyBk ZXZpY2VzCmhhdmUgbmFtZXMgaW4gdGhhdCBkaXJlY3RvcnkuICBXZSByZWNvbW1lbmQgdGhhdCB5 b3UgYXZvaWQgdXNpbmcgYW4KYWN0dWFsIGRpcmVjdG9yeSBuYW1lZCDigJgvZGV24oCZIG9uIGFu eSBkaXNrLgoKCioqKiogRy4xMi41IFByaW50aW5nIGFuZCBNUy1ET1MKClByaW50aW5nIGNvbW1h bmRzLCBzdWNoIGFzIOKAmGxwci1idWZmZXLigJkgKCpub3RlIFByaW50aW5nOjopIGFuZArigJhw cy1wcmludC1idWZmZXLigJkgKCpub3RlIFBvc3RTY3JpcHQ6OikgY2FuIHdvcmsgb24gTVMtRE9T IGJ5IHNlbmRpbmcgdGhlCm91dHB1dCB0byBvbmUgb2YgdGhlIHByaW50ZXIgcG9ydHMsIGlmIGEg UE9TSVgtc3R5bGUg4oCYbHBy4oCZIHByb2dyYW0gaXMKdW5hdmFpbGFibGUuICBUaGUgc2FtZSBF bWFjcyB2YXJpYWJsZXMgY29udHJvbCBwcmludGluZyBvbiBhbGwgc3lzdGVtcywKYnV0IGluIHNv bWUgY2FzZXMgdGhleSBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcyBvbiBNUy1ET1MuCgog ICAqTm90ZSBXaW5kb3dzIFByaW50aW5nOjosIGZvciBkZXRhaWxzIGFib3V0IHNldHRpbmcgdXAg cHJpbnRpbmcgdG8gYQpuZXR3b3JrZWQgcHJpbnRlci4KCiAgIFNvbWUgcHJpbnRlcnMgZXhwZWN0 IERPUyBjb2RlcGFnZSBlbmNvZGluZyBvZiBub24tQVNDSUkgdGV4dCwgZXZlbgp0aG91Z2ggdGhl eSBhcmUgY29ubmVjdGVkIHRvIGEgV2luZG93cyBtYWNoaW5lIHRoYXQgdXNlcyBhIGRpZmZlcmVu dAplbmNvZGluZyBmb3IgdGhlIHNhbWUgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGluIHRoZSBMYXRp bi0xIGxvY2FsZSwgRE9TCnVzZXMgY29kZXBhZ2UgODUwIHdoZXJlYXMgV2luZG93cyB1c2VzIGNv ZGVwYWdlIDEyNTIuICAqTm90ZSBNUy1ET1MgYW5kCk1VTEU6Oi4gIFdoZW4geW91IHByaW50IHRv IHN1Y2ggcHJpbnRlcnMgZnJvbSBXaW5kb3dzLCB5b3UgY2FuIHVzZSB0aGUK4oCYQy14IDxSRVQ+ IGPigJkgKOKAmHVuaXZlcnNhbC1jb2Rpbmctc3lzdGVtLWFyZ3VtZW504oCZKSBjb21tYW5kIGJl Zm9yZSDigJhNLXgKbHByLWJ1ZmZlcuKAmTsgRW1hY3Mgd2lsbCB0aGVuIGNvbnZlcnQgdGhlIHRl eHQgdG8gdGhlIERPUyBjb2RlcGFnZSB0aGF0CnlvdSBzcGVjaWZ5LiAgRm9yIGV4YW1wbGUsIOKA mEMteCA8UkVUPiBjIGNwODUwLWRvcyA8UkVUPiBNLXggbHByLXJlZ2lvbgo8UkVUPuKAmSB3aWxs IHByaW50IHRoZSByZWdpb24gd2hpbGUgY29udmVydGluZyBpdCB0byB0aGUgY29kZXBhZ2UgODUw CmVuY29kaW5nLgoKICAgRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB0aGUgdmFsdWUgb2Yg 4oCYZG9zLXByaW50ZXLigJkKKOKAmGRvcy1wcy1wcmludGVy4oCZKSwgaWYgaXQgaGFzIGEgdmFs dWUsIG92ZXJyaWRlcyB0aGUgdmFsdWUgb2YK4oCYcHJpbnRlci1uYW1l4oCZICjigJhwcy1wcmlu dGVyLW5hbWXigJkpLCBvbiBNUy1ET1MuCgoKKioqKiBHLjEyLjYgSW50ZXJuYXRpb25hbCBTdXBw b3J0IG9uIE1TLURPUwoKRW1hY3Mgb24gTVMtRE9TIHN1cHBvcnRzIHRoZSBzYW1lIGludGVybmF0 aW9uYWwgY2hhcmFjdGVyIHNldHMgYXMgaXQKZG9lcyBvbiBHTlUsIFVuaXggYW5kIG90aGVyIHBs YXRmb3JtcyAoKm5vdGUgSW50ZXJuYXRpb25hbDo6KSwgaW5jbHVkaW5nCmNvZGluZyBzeXN0ZW1z IGZvciBjb252ZXJ0aW5nIGJldHdlZW4gdGhlIGRpZmZlcmVudCBjaGFyYWN0ZXIgc2V0cy4KSG93 ZXZlciwgZHVlIHRvIGluY29tcGF0aWJpbGl0aWVzIGJldHdlZW4gTVMtRE9TL01TLVdpbmRvd3Mg YW5kIG90aGVyCnN5c3RlbXMsIHRoZXJlIGFyZSBzZXZlcmFsIERPUy1zcGVjaWZpYyBhc3BlY3Rz IG9mIHRoaXMgc3VwcG9ydCB0aGF0IHlvdQpzaG91bGQgYmUgYXdhcmUgb2YuICBUaGlzIHNlY3Rp b24gZGVzY3JpYmVzIHRoZXNlIGFzcGVjdHMuCgogICBUaGUgZGVzY3JpcHRpb24gYmVsb3cgaXMg bGFyZ2VseSBzcGVjaWZpYyB0byB0aGUgTVMtRE9TIHBvcnQgb2YKRW1hY3MsIGVzcGVjaWFsbHkg d2hlcmUgaXQgdGFsa3MgYWJvdXQgcHJhY3RpY2FsIGltcGxpY2F0aW9ucyBmb3IgRW1hY3MKdXNl cnMuCgrigJhNLXggZG9zLWNvZGVwYWdlLXNldHVw4oCZCiAgICAgU2V0IHVwIEVtYWNzIGRpc3Bs YXkgYW5kIGNvZGluZyBzeXN0ZW1zIGFzIGFwcHJvcHJpYXRlIGZvciB0aGUKICAgICBjdXJyZW50 IERPUyBjb2RlcGFnZS4KCiAgIE1TLURPUyBpcyBkZXNpZ25lZCB0byBzdXBwb3J0IG9uZSBjaGFy YWN0ZXIgc2V0IG9mIDI1NiBjaGFyYWN0ZXJzIGF0CmFueSBnaXZlbiB0aW1lLCBidXQgZ2l2ZXMg eW91IGEgdmFyaWV0eSBvZiBjaGFyYWN0ZXIgc2V0cyB0byBjaG9vc2UKZnJvbS4gIFRoZSBhbHRl cm5hdGl2ZSBjaGFyYWN0ZXIgc2V0cyBhcmUga25vd24gYXMgIkRPUyBjb2RlcGFnZXMiLgpFYWNo IGNvZGVwYWdlIGluY2x1ZGVzIGFsbCAxMjggQVNDSUkgY2hhcmFjdGVycywgYnV0IHRoZSBvdGhl ciAxMjgKY2hhcmFjdGVycyAoY29kZXMgMTI4IHRocm91Z2ggMjU1KSB2YXJ5IGZyb20gb25lIGNv ZGVwYWdlIHRvIGFub3RoZXIuCkVhY2ggRE9TIGNvZGVwYWdlIGlzIGlkZW50aWZpZWQgYnkgYSAz LWRpZ2l0IG51bWJlciwgc3VjaCBhcyA4NTAsIDg2MiwKZXRjLgoKICAgSW4gY29udHJhc3QgdG8g WCwgd2hpY2ggbGV0cyB5b3UgdXNlIHNldmVyYWwgZm9udHMgYXQgdGhlIHNhbWUgdGltZSwKTVMt RE9TIG5vcm1hbGx5IGRvZXNu4oCZdCBhbGxvdyB1c2Ugb2Ygc2V2ZXJhbCBjb2RlcGFnZXMgaW4g YSBzaW5nbGUKc2Vzc2lvbi4gIE1TLURPUyB3YXMgZGVzaWduZWQgdG8gbG9hZCBhIHNpbmdsZSBj b2RlcGFnZSBhdCBzeXN0ZW0Kc3RhcnR1cCwgYW5kIHJlcXVpcmUgeW91IHRvIHJlYm9vdCBpbiBv cmRlciB0byBjaGFuZ2UgaXQoMSkuICBNdWNoIHRoZQpzYW1lIGxpbWl0YXRpb24gYXBwbGllcyB3 aGVuIHlvdSBydW4gRE9TIGV4ZWN1dGFibGVzIG9uIG90aGVyIHN5c3RlbXMKc3VjaCBhcyBNUy1X aW5kb3dzLgoKICAgRm9yIG11bHRpYnl0ZSBvcGVyYXRpb24gb24gTVMtRE9TLCBFbWFjcyBuZWVk cyB0byBrbm93IHdoaWNoCmNoYXJhY3RlcnMgdGhlIGNob3NlbiBET1MgY29kZXBhZ2UgY2FuIGRp c3BsYXkuICBTbyBpdCBxdWVyaWVzIHRoZQpzeXN0ZW0gc2hvcnRseSBhZnRlciBzdGFydHVwIHRv IGdldCB0aGUgY2hvc2VuIGNvZGVwYWdlIG51bWJlciwgYW5kCnN0b3JlcyB0aGUgbnVtYmVyIGlu IHRoZSB2YXJpYWJsZSDigJhkb3MtY29kZXBhZ2XigJkuICBTb21lIHN5c3RlbXMgcmV0dXJuCnRo ZSBkZWZhdWx0IHZhbHVlIDQzNyBmb3IgdGhlIGN1cnJlbnQgY29kZXBhZ2UsIGV2ZW4gdGhvdWdo IHRoZSBhY3R1YWwKY29kZXBhZ2UgaXMgZGlmZmVyZW50LiAgKFRoaXMgdHlwaWNhbGx5IGhhcHBl bnMgd2hlbiB5b3UgdXNlIHRoZQpjb2RlcGFnZSBidWlsdCBpbnRvIHRoZSBkaXNwbGF5IGhhcmR3 YXJlLikgIFlvdSBjYW4gc3BlY2lmeSBhIGRpZmZlcmVudApjb2RlcGFnZSBmb3IgRW1hY3MgdG8g dXNlIGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlIOKAmGRvcy1jb2RlcGFnZeKAmSBpbiB5b3VyCmlu aXQgZmlsZS4KCiAgIE11bHRpYnl0ZSBFbWFjcyBzdXBwb3J0cyBvbmx5IGNlcnRhaW4gRE9TIGNv ZGVwYWdlczogdGhvc2Ugd2hpY2ggY2FuCmRpc3BsYXkgRmFyLUVhc3Rlcm4gc2NyaXB0cywgbGlr ZSB0aGUgSmFwYW5lc2UgY29kZXBhZ2UgOTMyLCBhbmQgdGhvc2UKdGhhdCBlbmNvZGUgYSBzaW5n bGUgSVNPIDg4NTkgY2hhcmFjdGVyIHNldC4KCiAgIFRoZSBGYXItRWFzdGVybiBjb2RlcGFnZXMg Y2FuIGRpcmVjdGx5IGRpc3BsYXkgb25lIG9mIHRoZSBNVUxFCmNoYXJhY3RlciBzZXRzIGZvciB0 aGVzZSBjb3VudHJpZXMsIHNvIEVtYWNzIHNpbXBseSBzZXRzIHVwIHRvIHVzZSB0aGUKYXBwcm9w cmlhdGUgdGVybWluYWwgY29kaW5nIHN5c3RlbSB0aGF0IGlzIHN1cHBvcnRlZCBieSB0aGUgY29k ZXBhZ2UuClRoZSBzcGVjaWFsIGZlYXR1cmVzIGRlc2NyaWJlZCBpbiB0aGUgcmVzdCBvZiB0aGlz IHNlY3Rpb24gbW9zdGx5CnBlcnRhaW4gdG8gY29kZXBhZ2VzIHRoYXQgZW5jb2RlIElTTyA4ODU5 IGNoYXJhY3RlciBzZXRzLgoKICAgRm9yIHRoZSBjb2RlcGFnZXMgdGhhdCBjb3JyZXNwb25kIHRv IG9uZSBvZiB0aGUgSVNPIGNoYXJhY3RlciBzZXRzLApFbWFjcyBrbm93cyB0aGUgY2hhcmFjdGVy IHNldCBiYXNlZCBvbiB0aGUgY29kZXBhZ2UgbnVtYmVyLiAgRW1hY3MKYXV0b21hdGljYWxseSBj cmVhdGVzIGEgY29kaW5nIHN5c3RlbSB0byBzdXBwb3J0IHJlYWRpbmcgYW5kIHdyaXRpbmcKZmls ZXMgdGhhdCB1c2UgdGhlIGN1cnJlbnQgY29kZXBhZ2UsIGFuZCB1c2VzIHRoaXMgY29kaW5nIHN5 c3RlbSBieQpkZWZhdWx0LiAgVGhlIG5hbWUgb2YgdGhpcyBjb2Rpbmcgc3lzdGVtIGlzIOKAmGNw Tk5O4oCZLCB3aGVyZSBOTk4gaXMgdGhlCmNvZGVwYWdlIG51bWJlci4oMikKCiAgIEFsbCB0aGUg 4oCYY3BOTk7igJkgY29kaW5nIHN5c3RlbXMgdXNlIHRoZSBsZXR0ZXIg4oCYROKAmSAoZm9yIOKA nERPU+KAnSkgYXMKdGhlaXIgbW9kZS1saW5lIG1uZW1vbmljLiAgU2luY2UgYm90aCB0aGUgdGVy bWluYWwgY29kaW5nIHN5c3RlbSBhbmQgdGhlCmRlZmF1bHQgY29kaW5nIHN5c3RlbSBmb3IgZmls ZSBJL08gYXJlIHNldCB0byB0aGUgcHJvcGVyIOKAmGNwTk5O4oCZIGNvZGluZwpzeXN0ZW0gYXQg c3RhcnR1cCwgaXQgaXMgbm9ybWFsIGZvciB0aGUgbW9kZSBsaW5lIG9uIE1TLURPUyB0byBiZWdp bgp3aXRoIOKAmC1ERFwt4oCZLiAgKk5vdGUgTW9kZSBMaW5lOjouICBGYXItRWFzdGVybiBET1Mg dGVybWluYWxzIGRvIG5vdCB1c2UKdGhlIOKAmGNwTk5O4oCZIGNvZGluZyBzeXN0ZW1zLCBhbmQg dGh1cyB0aGVpciBpbml0aWFsIG1vZGUgbGluZSBsb29rcyBsaWtlCnRoZSBFbWFjcyBkZWZhdWx0 LgoKICAgU2luY2UgdGhlIGNvZGVwYWdlIG51bWJlciBhbHNvIGluZGljYXRlcyB3aGljaCBzY3Jp cHQgeW91IGFyZSB1c2luZywKRW1hY3MgYXV0b21hdGljYWxseSBydW5zIOKAmHNldC1sYW5ndWFn ZS1lbnZpcm9ubWVudOKAmSB0byBzZWxlY3QgdGhlCmxhbmd1YWdlIGVudmlyb25tZW50IGZvciB0 aGF0IHNjcmlwdCAoKm5vdGUgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzOjopLgoKICAgSWYgYSBidWZm ZXIgY29udGFpbnMgYSBjaGFyYWN0ZXIgYmVsb25naW5nIHRvIHNvbWUgb3RoZXIgSVNPIDg4NTkK Y2hhcmFjdGVyIHNldCwgbm90IHRoZSBvbmUgdGhhdCB0aGUgY2hvc2VuIERPUyBjb2RlcGFnZSBz dXBwb3J0cywgRW1hY3MKZGlzcGxheXMgaXQgdXNpbmcgYSBzZXF1ZW5jZSBvZiBBU0NJSSBjaGFy YWN0ZXJzLiAgRm9yIGV4YW1wbGUsIGlmIHRoZQpjdXJyZW50IGNvZGVwYWdlIGRvZXNu4oCZdCBo YXZlIGEgZ2x5cGggZm9yIHRoZSBsZXR0ZXIg4oCYw7LigJkgKHNtYWxsIOKAmG/igJkgd2l0aAph IGdyYXZlIGFjY2VudCksIGl0IGlzIGRpc3BsYXllZCBhcyDigJh7YG994oCZLCB3aGVyZSB0aGUg YnJhY2VzIHNlcnZlIGFzIGEKdmlzdWFsIGluZGljYXRpb24gdGhhdCB0aGlzIGlzIGEgc2luZ2xl IGNoYXJhY3Rlci4gIChUaGlzIG1heSBsb29rCmF3a3dhcmQgZm9yIHNvbWUgbm9uLUxhdGluIGNo YXJhY3RlcnMsIHN1Y2ggYXMgdGhvc2UgZnJvbSBHcmVlayBvcgpIZWJyZXcgYWxwaGFiZXRzLCBi dXQgaXQgaXMgc3RpbGwgcmVhZGFibGUgYnkgYSBwZXJzb24gd2hvIGtub3dzIHRoZQpsYW5ndWFn ZS4pICBFdmVuIHRob3VnaCB0aGUgY2hhcmFjdGVyIG1heSBvY2N1cHkgc2V2ZXJhbCBjb2x1bW5z IG9uIHRoZQpzY3JlZW4sIGl0IGlzIHJlYWxseSBzdGlsbCBqdXN0IGEgc2luZ2xlIGNoYXJhY3Rl ciwgYW5kIGFsbCBFbWFjcwpjb21tYW5kcyB0cmVhdCBpdCBhcyBvbmUuCgogICBNUy1XaW5kb3dz IHByb3ZpZGVzIGl0cyBvd24gY29kZXBhZ2VzLCB3aGljaCBhcmUgZGlmZmVyZW50IGZyb20gdGhl CkRPUyBjb2RlcGFnZXMgZm9yIHRoZSBzYW1lIGxvY2FsZS4gIEZvciBleGFtcGxlLCBET1MgY29k ZXBhZ2UgODUwCnN1cHBvcnRzIHRoZSBzYW1lIGNoYXJhY3RlciBzZXQgYXMgV2luZG93cyBjb2Rl cGFnZSAxMjUyOyBET1MgY29kZXBhZ2UKODU1IHN1cHBvcnRzIHRoZSBzYW1lIGNoYXJhY3RlciBz ZXQgYXMgV2luZG93cyBjb2RlcGFnZSAxMjUxLCBldGMuICBUaGUKTVMtV2luZG93cyB2ZXJzaW9u IG9mIEVtYWNzIHVzZXMgdGhlIGN1cnJlbnQgY29kZXBhZ2UgZm9yIGRpc3BsYXkgd2hlbgppbnZv a2VkIHdpdGggdGhlIOKAmC1ud+KAmSBvcHRpb24uCgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAt LS0tLS0tLS0tCgogICAoMSkgTm9ybWFsbHksIG9uZSBwYXJ0aWN1bGFyIGNvZGVwYWdlIGlzIGJ1 cm50IGludG8gdGhlIGRpc3BsYXkKbWVtb3J5LCB3aGlsZSBvdGhlciBjb2RlcGFnZXMgY2FuIGJl IGluc3RhbGxlZCBieSBtb2RpZnlpbmcgc3lzdGVtCmNvbmZpZ3VyYXRpb24gZmlsZXMsIHN1Y2gg YXMg4oCYQ09ORklHLlNZU+KAmSwgYW5kIHJlYm9vdGluZy4gIFdoaWxlIHRoZXJlCmlzIHRoaXJk LXBhcnR5IHNvZnR3YXJlIHRoYXQgYWxsb3dzIGNoYW5naW5nIHRoZSBjb2RlcGFnZSB3aXRob3V0 CnJlYm9vdGluZywgd2UgZGVzY3JpYmUgaGVyZSBob3cgYSBzdG9jayBNUy1ET1Mgc3lzdGVtIGJl aGF2ZXMuCgogICAoMikgVGhlIHN0YW5kYXJkIEVtYWNzIGNvZGluZyBzeXN0ZW1zIGZvciBJU08g ODg1OSBhcmUgbm90IHF1aXRlCnJpZ2h0IGZvciB0aGUgcHVycG9zZSwgYmVjYXVzZSB0eXBpY2Fs bHkgdGhlIERPUyBjb2RlcGFnZSBkb2VzIG5vdCBtYXRjaAp0aGUgc3RhbmRhcmQgSVNPIGNoYXJh Y3RlciBjb2Rlcy4gIEZvciBleGFtcGxlLCB0aGUgbGV0dGVyIOKAmMOn4oCZICjigJhj4oCZIHdp dGgKY2VkaWxsYSkgaGFzIGNvZGUgMjMxIGluIHRoZSBzdGFuZGFyZCBMYXRpbi0xIGNoYXJhY3Rl ciBzZXQsIGJ1dCB0aGUKY29ycmVzcG9uZGluZyBET1MgY29kZXBhZ2UgODUwIHVzZXMgY29kZSAx MzUgZm9yIHRoaXMgZ2x5cGguCgoKKioqKiBHLjEyLjcgU3VicHJvY2Vzc2VzIG9uIE1TLURPUwoK QmVjYXVzZSBNUy1ET1MgaXMgYSBzaW5nbGUtcHJvY2VzcyDigJxvcGVyYXRpbmcgc3lzdGVt4oCd LCBhc3luY2hyb25vdXMKc3VicHJvY2Vzc2VzIGFyZSBub3QgYXZhaWxhYmxlLiAgSW4gcGFydGlj dWxhciwgU2hlbGwgbW9kZSBhbmQgaXRzCnZhcmlhbnRzIGRvIG5vdCB3b3JrLiAgTW9zdCBFbWFj cyBmZWF0dXJlcyB0aGF0IHVzZSBhc3luY2hyb25vdXMKc3VicHJvY2Vzc2VzIGFsc28gZG9u4oCZ dCB3b3JrIG9uIE1TLURPUywgaW5jbHVkaW5nIFNoZWxsIG1vZGUgYW5kIEdVRC4KV2hlbiBpbiBk b3VidCwgdHJ5IGFuZCBzZWU7IGNvbW1hbmRzIHRoYXQgZG9u4oCZdCB3b3JrIG91dHB1dCBhbiBl cnJvcgptZXNzYWdlIHNheWluZyB0aGF0IGFzeW5jaHJvbm91cyBwcm9jZXNzZXMgYXJlbuKAmXQg c3VwcG9ydGVkLgoKICAgQ29tcGlsYXRpb24gdW5kZXIgRW1hY3Mgd2l0aCDigJhNLXggY29tcGls ZeKAmSwgc2VhcmNoaW5nIGZpbGVzIHdpdGgg4oCYTS14CmdyZXDigJkgYW5kIGRpc3BsYXlpbmcg ZGlmZmVyZW5jZXMgYmV0d2VlbiBmaWxlcyB3aXRoIOKAmE0teCBkaWZm4oCZIGRvIHdvcmssCmJ5 IHJ1bm5pbmcgdGhlIGluZmVyaW9yIHByb2Nlc3NlcyBzeW5jaHJvbm91c2x5LiAgVGhpcyBtZWFu cyB5b3UgY2Fubm90CmRvIGFueSBtb3JlIGVkaXRpbmcgdW50aWwgdGhlIGluZmVyaW9yIHByb2Nl c3MgZmluaXNoZXMuCgogICBTcGVsbCBjaGVja2luZyBhbHNvIHdvcmtzLCBieSBtZWFucyBvZiBz cGVjaWFsIHN1cHBvcnQgZm9yCnN5bmNocm9ub3VzIGludm9jYXRpb24gb2YgdGhlIOKAmGlzcGVs bOKAmSBwcm9ncmFtLiAgVGhpcyBpcyBzbG93ZXIgdGhhbiB0aGUKYXN5bmNocm9ub3VzIGludm9j YXRpb24gb24gb3RoZXIgcGxhdGZvcm1zCgogICBJbnN0ZWFkIG9mIHRoZSBTaGVsbCBtb2RlLCB3 aGljaCBkb2VzbuKAmXQgd29yayBvbiBNUy1ET1MsIHlvdSBjYW4gdXNlCnRoZSDigJhNLXggZXNo ZWxs4oCZIGNvbW1hbmQuICBUaGlzIGludm9rZXMgdGhlIEVzaGVsbCBwYWNrYWdlIHRoYXQKaW1w bGVtZW50cyBhIFBPU0lYLWxpa2Ugc2hlbGwgZW50aXJlbHkgaW4gRW1hY3MgTGlzcC4KCiAgIEJ5 IGNvbnRyYXN0LCBFbWFjcyBjb21waWxlZCBhcyBhIG5hdGl2ZSBXaW5kb3dzIGFwcGxpY2F0aW9u ICpkb2VzKgpzdXBwb3J0IGFzeW5jaHJvbm91cyBzdWJwcm9jZXNzZXMuICAqTm90ZSBXaW5kb3dz IFByb2Nlc3Nlczo6LgoKICAgUHJpbnRpbmcgY29tbWFuZHMsIHN1Y2ggYXMg4oCYbHByLWJ1ZmZl cuKAmSAoKm5vdGUgUHJpbnRpbmc6OikgYW5kCuKAmHBzLXByaW50LWJ1ZmZlcuKAmSAoKm5vdGUg UG9zdFNjcmlwdDo6KSwgd29yayBpbiBNUy1ET1MgYnkgc2VuZGluZyB0aGUKb3V0cHV0IHRvIG9u ZSBvZiB0aGUgcHJpbnRlciBwb3J0cy4gICpOb3RlIE1TLURPUyBQcmludGluZzo6LgoKICAgV2hl biB5b3UgcnVuIGEgc3VicHJvY2VzcyBzeW5jaHJvbm91c2x5IG9uIE1TLURPUywgbWFrZSBzdXJl IHRoZQpwcm9ncmFtIHRlcm1pbmF0ZXMgYW5kIGRvZXMgbm90IHRyeSB0byByZWFkIGtleWJvYXJk IGlucHV0LiAgSWYgdGhlCnByb2dyYW0gZG9lcyBub3QgdGVybWluYXRlIG9uIGl0cyBvd24sIHlv dSB3aWxsIGJlIHVuYWJsZSB0byB0ZXJtaW5hdGUKaXQsIGJlY2F1c2UgTVMtRE9TIHByb3ZpZGVz IG5vIGdlbmVyYWwgd2F5IHRvIHRlcm1pbmF0ZSBhIHByb2Nlc3MuClByZXNzaW5nIOKAmEMtY+KA mSBvciDigJhDLTxCcmVhaz7igJkgbWlnaHQgc29tZXRpbWVzIGhlbHAgaW4gdGhlc2UgY2FzZXMu CgogICBBY2Nlc3NpbmcgZmlsZXMgb24gb3RoZXIgbWFjaGluZXMgaXMgbm90IHN1cHBvcnRlZCBv biBNUy1ET1MuICBPdGhlcgpuZXR3b3JrLW9yaWVudGVkIGNvbW1hbmRzIHN1Y2ggYXMgc2VuZGlu ZyBtYWlsLCBXZWIgYnJvd3NpbmcsIHJlbW90ZQpsb2dpbiwgZXRjLiwgZG9u4oCZdCB3b3JrIGVp dGhlciwgdW5sZXNzIG5ldHdvcmsgYWNjZXNzIGlzIGJ1aWx0IGludG8KTVMtRE9TIHdpdGggc29t ZSBuZXR3b3JrIHJlZGlyZWN0b3IuCgogICBEaXJlZCBvbiBNUy1ET1MgdXNlcyB0aGUg4oCYbHMt bGlzcOKAmSBwYWNrYWdlICgqbm90ZSBscyBpbiBMaXNwOjopLgpUaGVyZWZvcmUsIERpcmVkIG9u IE1TLURPUyBzdXBwb3J0cyBvbmx5IHNvbWUgb2YgdGhlIHBvc3NpYmxlIG9wdGlvbnMKeW91IGNh biBtZW50aW9uIGluIHRoZSDigJhkaXJlZC1saXN0aW5nLXN3aXRjaGVz4oCZIHZhcmlhYmxlLiAg VGhlIG9wdGlvbnMKdGhhdCB3b3JrIGFyZSDigJgtQeKAmSwg4oCYLWHigJksIOKAmC1j4oCZLCDi gJgtaeKAmSwg4oCYLXLigJksIOKAmC1T4oCZLCDigJgtc+KAmSwg4oCYLXTigJksIGFuZCDigJgt deKAmS4KCgoqKiBUaGUgR05VIE1hbmlmZXN0bwoKICAgICBUaGUgR05VIE1hbmlmZXN0byB3aGlj aCBhcHBlYXJzIGJlbG93IHdhcyB3cml0dGVuIGJ5IFJpY2hhcmQKICAgICBTdGFsbG1hbiBhdCB0 aGUgYmVnaW5uaW5nIG9mIHRoZSBHTlUgcHJvamVjdCwgdG8gYXNrIGZvcgogICAgIHBhcnRpY2lw YXRpb24gYW5kIHN1cHBvcnQuICBGb3IgdGhlIGZpcnN0IGZldyB5ZWFycywgaXQgd2FzIHVwZGF0 ZWQKICAgICBpbiBtaW5vciB3YXlzIHRvIGFjY291bnQgZm9yIGRldmVsb3BtZW50cywgYnV0IG5v dyBpdCBzZWVtcyBiZXN0IHRvCiAgICAgbGVhdmUgaXQgdW5jaGFuZ2VkIGFzIG1vc3QgcGVvcGxl IGhhdmUgc2VlbiBpdC4KCiAgICAgU2luY2UgdGhhdCB0aW1lLCB3ZSBoYXZlIGxlYXJuZWQgYWJv dXQgY2VydGFpbiBjb21tb24KICAgICBtaXN1bmRlcnN0YW5kaW5ncyB0aGF0IGRpZmZlcmVudCB3 b3JkaW5nIGNvdWxkIGhlbHAgYXZvaWQuCiAgICAgRm9vdG5vdGVzIGFkZGVkIGluIDE5OTMgaGVs cCBjbGFyaWZ5IHRoZXNlIHBvaW50cy4KCiAgICAgRm9yIHVwLXRvLWRhdGUgaW5mb3JtYXRpb24g YWJvdXQgYXZhaWxhYmxlIEdOVSBzb2Z0d2FyZSwgcGxlYXNlIHNlZQogICAgIG91ciB3ZWIgc2l0 ZSwgPGh0dHBzOi8vd3d3LmdudS5vcmc+LiAgRm9yIHNvZnR3YXJlIHRhc2tzIGFuZCBvdGhlcgog ICAgIHdheXMgdG8gY29udHJpYnV0ZSwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2hlbHA+LgoK V2hhdOKAmXMgR05VPyBHbnXigJlzIE5vdCBVbml4IQoKR05VLCB3aGljaCBzdGFuZHMgZm9yIEdu deKAmXMgTm90IFVuaXgsIGlzIHRoZSBuYW1lIGZvciB0aGUgY29tcGxldGUKVW5peC1jb21wYXRp YmxlIHNvZnR3YXJlIHN5c3RlbSB3aGljaCBJIGFtIHdyaXRpbmcgc28gdGhhdCBJIGNhbiBnaXZl IGl0CmF3YXkgZnJlZSB0byBldmVyeW9uZSB3aG8gY2FuIHVzZSBpdC4oMSkgIFNldmVyYWwgb3Ro ZXIgdm9sdW50ZWVycyBhcmUKaGVscGluZyBtZS4gIENvbnRyaWJ1dGlvbnMgb2YgdGltZSwgbW9u ZXksIHByb2dyYW1zIGFuZCBlcXVpcG1lbnQgYXJlCmdyZWF0bHkgbmVlZGVkLgoKICAgU28gZmFy IHdlIGhhdmUgYW4gRW1hY3MgdGV4dCBlZGl0b3Igd2l0aCBMaXNwIGZvciB3cml0aW5nIGVkaXRv cgpjb21tYW5kcywgYSBzb3VyY2UgbGV2ZWwgZGVidWdnZXIsIGEgeWFjYy1jb21wYXRpYmxlIHBh cnNlciBnZW5lcmF0b3IsIGEKbGlua2VyLCBhbmQgYXJvdW5kIDM1IHV0aWxpdGllcy4gIEEgc2hl bGwgKGNvbW1hbmQgaW50ZXJwcmV0ZXIpIGlzCm5lYXJseSBjb21wbGV0ZWQuICBBIG5ldyBwb3J0 YWJsZSBvcHRpbWl6aW5nIEMgY29tcGlsZXIgaGFzIGNvbXBpbGVkCml0c2VsZiBhbmQgbWF5IGJl IHJlbGVhc2VkIHRoaXMgeWVhci4gIEFuIGluaXRpYWwga2VybmVsIGV4aXN0cyBidXQgbWFueQpt b3JlIGZlYXR1cmVzIGFyZSBuZWVkZWQgdG8gZW11bGF0ZSBVbml4LiAgV2hlbiB0aGUga2VybmVs IGFuZCBjb21waWxlcgphcmUgZmluaXNoZWQsIGl0IHdpbGwgYmUgcG9zc2libGUgdG8gZGlzdHJp YnV0ZSBhIEdOVSBzeXN0ZW0gc3VpdGFibGUKZm9yIHByb2dyYW0gZGV2ZWxvcG1lbnQuICBXZSB3 aWxsIHVzZSBUZVggYXMgb3VyIHRleHQgZm9ybWF0dGVyLCBidXQgYW4KbnJvZmYgaXMgYmVpbmcg d29ya2VkIG9uLiAgV2Ugd2lsbCB1c2UgdGhlIGZyZWUsIHBvcnRhYmxlIFggd2luZG93CnN5c3Rl bSBhcyB3ZWxsLiAgQWZ0ZXIgdGhpcyB3ZSB3aWxsIGFkZCBhIHBvcnRhYmxlIENvbW1vbiBMaXNw LCBhbgpFbXBpcmUgZ2FtZSwgYSBzcHJlYWRzaGVldCwgYW5kIGh1bmRyZWRzIG9mIG90aGVyIHRo aW5ncywgcGx1cyBvbi1saW5lCmRvY3VtZW50YXRpb24uICBXZSBob3BlIHRvIHN1cHBseSwgZXZl bnR1YWxseSwgZXZlcnl0aGluZyB1c2VmdWwgdGhhdApub3JtYWxseSBjb21lcyB3aXRoIGEgVW5p eCBzeXN0ZW0sIGFuZCBtb3JlLgoKICAgR05VIHdpbGwgYmUgYWJsZSB0byBydW4gVW5peCBwcm9n cmFtcywgYnV0IHdpbGwgbm90IGJlIGlkZW50aWNhbCB0bwpVbml4LiAgV2Ugd2lsbCBtYWtlIGFs bCBpbXByb3ZlbWVudHMgdGhhdCBhcmUgY29udmVuaWVudCwgYmFzZWQgb24gb3VyCmV4cGVyaWVu Y2Ugd2l0aCBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcy4gIEluIHBhcnRpY3VsYXIsIHdlIHBsYW4g dG8gaGF2ZQpsb25nZXIgZmlsZSBuYW1lcywgZmlsZSB2ZXJzaW9uIG51bWJlcnMsIGEgY3Jhc2hw cm9vZiBmaWxlIHN5c3RlbSwgZmlsZQpuYW1lIGNvbXBsZXRpb24gcGVyaGFwcywgdGVybWluYWwt aW5kZXBlbmRlbnQgZGlzcGxheSBzdXBwb3J0LCBhbmQKcGVyaGFwcyBldmVudHVhbGx5IGEgTGlz cC1iYXNlZCB3aW5kb3cgc3lzdGVtIHRocm91Z2ggd2hpY2ggc2V2ZXJhbCBMaXNwCnByb2dyYW1z IGFuZCBvcmRpbmFyeSBVbml4IHByb2dyYW1zIGNhbiBzaGFyZSBhIHNjcmVlbi4gIEJvdGggQyBh bmQgTGlzcAp3aWxsIGJlIGF2YWlsYWJsZSBhcyBzeXN0ZW0gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Vz LiAgV2Ugd2lsbCB0cnkgdG8Kc3VwcG9ydCBVVUNQLCBNSVQgQ2hhb3NuZXQsIGFuZCBJbnRlcm5l dCBwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24uCgogICBHTlUgaXMgYWltZWQgaW5pdGlhbGx5 IGF0IG1hY2hpbmVzIGluIHRoZSA2ODAwMC8xNjAwMCBjbGFzcyB3aXRoCnZpcnR1YWwgbWVtb3J5 LCBiZWNhdXNlIHRoZXkgYXJlIHRoZSBlYXNpZXN0IG1hY2hpbmVzIHRvIG1ha2UgaXQgcnVuIG9u LgpUaGUgZXh0cmEgZWZmb3J0IHRvIG1ha2UgaXQgcnVuIG9uIHNtYWxsZXIgbWFjaGluZXMgd2ls bCBiZSBsZWZ0IHRvCnNvbWVvbmUgd2hvIHdhbnRzIHRvIHVzZSBpdCBvbiB0aGVtLgoKICAgVG8g YXZvaWQgaG9ycmlibGUgY29uZnVzaW9uLCBwbGVhc2UgcHJvbm91bmNlIHRoZSDigJxH4oCdIGlu IHRoZSB3b3JkCuKAnEdOVeKAnSB3aGVuIGl0IGlzIHRoZSBuYW1lIG9mIHRoaXMgcHJvamVjdC4K CldoeSBJIE11c3QgV3JpdGUgR05VCgpJIGNvbnNpZGVyIHRoYXQgdGhlIGdvbGRlbiBydWxlIHJl cXVpcmVzIHRoYXQgaWYgSSBsaWtlIGEgcHJvZ3JhbSBJIG11c3QKc2hhcmUgaXQgd2l0aCBvdGhl ciBwZW9wbGUgd2hvIGxpa2UgaXQuICBTb2Z0d2FyZSBzZWxsZXJzIHdhbnQgdG8gZGl2aWRlCnRo ZSB1c2VycyBhbmQgY29ucXVlciB0aGVtLCBtYWtpbmcgZWFjaCB1c2VyIGFncmVlIG5vdCB0byBz aGFyZSB3aXRoCm90aGVycy4gIEkgcmVmdXNlIHRvIGJyZWFrIHNvbGlkYXJpdHkgd2l0aCBvdGhl ciB1c2VycyBpbiB0aGlzIHdheS4gIEkKY2Fubm90IGluIGdvb2QgY29uc2NpZW5jZSBzaWduIGEg bm9uZGlzY2xvc3VyZSBhZ3JlZW1lbnQgb3IgYSBzb2Z0d2FyZQpsaWNlbnNlIGFncmVlbWVudC4g IEZvciB5ZWFycyBJIHdvcmtlZCB3aXRoaW4gdGhlIEFydGlmaWNpYWwKSW50ZWxsaWdlbmNlIExh YiB0byByZXNpc3Qgc3VjaCB0ZW5kZW5jaWVzIGFuZCBvdGhlciBpbmhvc3BpdGFsaXRpZXMsCmJ1 dCBldmVudHVhbGx5IHRoZXkgaGFkIGdvbmUgdG9vIGZhcjogSSBjb3VsZCBub3QgcmVtYWluIGlu IGFuCmluc3RpdHV0aW9uIHdoZXJlIHN1Y2ggdGhpbmdzIGFyZSBkb25lIGZvciBtZSBhZ2FpbnN0 IG15IHdpbGwuCgogICBTbyB0aGF0IEkgY2FuIGNvbnRpbnVlIHRvIHVzZSBjb21wdXRlcnMgd2l0 aG91dCBkaXNob25vciwgSSBoYXZlCmRlY2lkZWQgdG8gcHV0IHRvZ2V0aGVyIGEgc3VmZmljaWVu dCBib2R5IG9mIGZyZWUgc29mdHdhcmUgc28gdGhhdCBJCndpbGwgYmUgYWJsZSB0byBnZXQgYWxv bmcgd2l0aG91dCBhbnkgc29mdHdhcmUgdGhhdCBpcyBub3QgZnJlZS4gIEkgaGF2ZQpyZXNpZ25l ZCBmcm9tIHRoZSBBSSBsYWIgdG8gZGVueSBNSVQgYW55IGxlZ2FsIGV4Y3VzZSB0byBwcmV2ZW50 IG1lIGZyb20KZ2l2aW5nIEdOVSBhd2F5LgoKV2h5IEdOVSBXaWxsIEJlIENvbXBhdGlibGUgd2l0 aCBVbml4CgpVbml4IGlzIG5vdCBteSBpZGVhbCBzeXN0ZW0sIGJ1dCBpdCBpcyBub3QgdG9vIGJh ZC4gIFRoZSBlc3NlbnRpYWwKZmVhdHVyZXMgb2YgVW5peCBzZWVtIHRvIGJlIGdvb2Qgb25lcywg YW5kIEkgdGhpbmsgSSBjYW4gZmlsbCBpbiB3aGF0ClVuaXggbGFja3Mgd2l0aG91dCBzcG9pbGlu ZyB0aGVtLiAgQW5kIGEgc3lzdGVtIGNvbXBhdGlibGUgd2l0aCBVbml4CndvdWxkIGJlIGNvbnZl bmllbnQgZm9yIG1hbnkgb3RoZXIgcGVvcGxlIHRvIGFkb3B0LgoKSG93IEdOVSBXaWxsIEJlIEF2 YWlsYWJsZQoKR05VIGlzIG5vdCBpbiB0aGUgcHVibGljIGRvbWFpbi4gIEV2ZXJ5b25lIHdpbGwg YmUgcGVybWl0dGVkIHRvIG1vZGlmeQphbmQgcmVkaXN0cmlidXRlIEdOVSwgYnV0IG5vIGRpc3Ry aWJ1dG9yIHdpbGwgYmUgYWxsb3dlZCB0byByZXN0cmljdCBpdHMKZnVydGhlciByZWRpc3RyaWJ1 dGlvbi4gIFRoYXQgaXMgdG8gc2F5LCBwcm9wcmlldGFyeSBtb2RpZmljYXRpb25zIHdpbGwKbm90 IGJlIGFsbG93ZWQuICBJIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQgYWxsIHZlcnNpb25zIG9mIEdO VSByZW1haW4KZnJlZS4KCldoeSBNYW55IE90aGVyIFByb2dyYW1tZXJzIFdhbnQgdG8gSGVscAoK SSBoYXZlIGZvdW5kIG1hbnkgb3RoZXIgcHJvZ3JhbW1lcnMgd2hvIGFyZSBleGNpdGVkIGFib3V0 IEdOVSBhbmQgd2FudAp0byBoZWxwLgoKICAgTWFueSBwcm9ncmFtbWVycyBhcmUgdW5oYXBweSBh Ym91dCB0aGUgY29tbWVyY2lhbGl6YXRpb24gb2Ygc3lzdGVtCnNvZnR3YXJlLiAgSXQgbWF5IGVu YWJsZSB0aGVtIHRvIG1ha2UgbW9yZSBtb25leSwgYnV0IGl0IHJlcXVpcmVzIHRoZW0KdG8gZmVl bCBpbiBjb25mbGljdCB3aXRoIG90aGVyIHByb2dyYW1tZXJzIGluIGdlbmVyYWwgcmF0aGVyIHRo YW4gZmVlbAphcyBjb21yYWRlcy4gIFRoZSBmdW5kYW1lbnRhbCBhY3Qgb2YgZnJpZW5kc2hpcCBh bW9uZyBwcm9ncmFtbWVycyBpcyB0aGUKc2hhcmluZyBvZiBwcm9ncmFtczsgbWFya2V0aW5nIGFy cmFuZ2VtZW50cyBub3cgdHlwaWNhbGx5IHVzZWQKZXNzZW50aWFsbHkgZm9yYmlkIHByb2dyYW1t ZXJzIHRvIHRyZWF0IG90aGVycyBhcyBmcmllbmRzLiAgVGhlCnB1cmNoYXNlciBvZiBzb2Z0d2Fy ZSBtdXN0IGNob29zZSBiZXR3ZWVuIGZyaWVuZHNoaXAgYW5kIG9iZXlpbmcgdGhlCmxhdy4gIE5h dHVyYWxseSwgbWFueSBkZWNpZGUgdGhhdCBmcmllbmRzaGlwIGlzIG1vcmUgaW1wb3J0YW50LiAg QnV0CnRob3NlIHdobyBiZWxpZXZlIGluIGxhdyBvZnRlbiBkbyBub3QgZmVlbCBhdCBlYXNlIHdp dGggZWl0aGVyIGNob2ljZS4KVGhleSBiZWNvbWUgY3luaWNhbCBhbmQgdGhpbmsgdGhhdCBwcm9n cmFtbWluZyBpcyBqdXN0IGEgd2F5IG9mIG1ha2luZwptb25leS4KCiAgIEJ5IHdvcmtpbmcgb24g YW5kIHVzaW5nIEdOVSByYXRoZXIgdGhhbiBwcm9wcmlldGFyeSBwcm9ncmFtcywgd2UgY2FuCmJl IGhvc3BpdGFibGUgdG8gZXZlcnlvbmUgYW5kIG9iZXkgdGhlIGxhdy4gIEluIGFkZGl0aW9uLCBH TlUgc2VydmVzIGFzCmFuIGV4YW1wbGUgdG8gaW5zcGlyZSBhbmQgYSBiYW5uZXIgdG8gcmFsbHkg b3RoZXJzIHRvIGpvaW4gdXMgaW4Kc2hhcmluZy4gIFRoaXMgY2FuIGdpdmUgdXMgYSBmZWVsaW5n IG9mIGhhcm1vbnkgd2hpY2ggaXMgaW1wb3NzaWJsZSBpZgp3ZSB1c2Ugc29mdHdhcmUgdGhhdCBp cyBub3QgZnJlZS4gIEZvciBhYm91dCBoYWxmIHRoZSBwcm9ncmFtbWVycyBJIHRhbGsKdG8sIHRo aXMgaXMgYW4gaW1wb3J0YW50IGhhcHBpbmVzcyB0aGF0IG1vbmV5IGNhbm5vdCByZXBsYWNlLgoK SG93IFlvdSBDYW4gQ29udHJpYnV0ZQoKSSBhbSBhc2tpbmcgY29tcHV0ZXIgbWFudWZhY3R1cmVy cyBmb3IgZG9uYXRpb25zIG9mIG1hY2hpbmVzIGFuZCBtb25leS4KSeKAmW0gYXNraW5nIGluZGl2 aWR1YWxzIGZvciBkb25hdGlvbnMgb2YgcHJvZ3JhbXMgYW5kIHdvcmsuCgogICBPbmUgY29uc2Vx dWVuY2UgeW91IGNhbiBleHBlY3QgaWYgeW91IGRvbmF0ZSBtYWNoaW5lcyBpcyB0aGF0IEdOVQp3 aWxsIHJ1biBvbiB0aGVtIGF0IGFuIGVhcmx5IGRhdGUuICBUaGUgbWFjaGluZXMgc2hvdWxkIGJl IGNvbXBsZXRlLApyZWFkeSB0byB1c2Ugc3lzdGVtcywgYXBwcm92ZWQgZm9yIHVzZSBpbiBhIHJl c2lkZW50aWFsIGFyZWEsIGFuZCBub3QgaW4KbmVlZCBvZiBzb3BoaXN0aWNhdGVkIGNvb2xpbmcg b3IgcG93ZXIuCgogICBJIGhhdmUgZm91bmQgdmVyeSBtYW55IHByb2dyYW1tZXJzIGVhZ2VyIHRv IGNvbnRyaWJ1dGUgcGFydC10aW1lIHdvcmsKZm9yIEdOVS4gIEZvciBtb3N0IHByb2plY3RzLCBz dWNoIHBhcnQtdGltZSBkaXN0cmlidXRlZCB3b3JrIHdvdWxkIGJlCnZlcnkgaGFyZCB0byBjb29y ZGluYXRlOyB0aGUgaW5kZXBlbmRlbnRseS13cml0dGVuIHBhcnRzIHdvdWxkIG5vdCB3b3JrCnRv Z2V0aGVyLiAgQnV0IGZvciB0aGUgcGFydGljdWxhciB0YXNrIG9mIHJlcGxhY2luZyBVbml4LCB0 aGlzIHByb2JsZW0KaXMgYWJzZW50LiAgQSBjb21wbGV0ZSBVbml4IHN5c3RlbSBjb250YWlucyBo dW5kcmVkcyBvZiB1dGlsaXR5CnByb2dyYW1zLCBlYWNoIG9mIHdoaWNoIGlzIGRvY3VtZW50ZWQg c2VwYXJhdGVseS4gIE1vc3QgaW50ZXJmYWNlCnNwZWNpZmljYXRpb25zIGFyZSBmaXhlZCBieSBV bml4IGNvbXBhdGliaWxpdHkuICBJZiBlYWNoIGNvbnRyaWJ1dG9yIGNhbgp3cml0ZSBhIGNvbXBh dGlibGUgcmVwbGFjZW1lbnQgZm9yIGEgc2luZ2xlIFVuaXggdXRpbGl0eSwgYW5kIG1ha2UgaXQK d29yayBwcm9wZXJseSBpbiBwbGFjZSBvZiB0aGUgb3JpZ2luYWwgb24gYSBVbml4IHN5c3RlbSwg dGhlbiB0aGVzZQp1dGlsaXRpZXMgd2lsbCB3b3JrIHJpZ2h0IHdoZW4gcHV0IHRvZ2V0aGVyLiAg RXZlbiBhbGxvd2luZyBmb3IgTXVycGh5CnRvIGNyZWF0ZSBhIGZldyB1bmV4cGVjdGVkIHByb2Js ZW1zLCBhc3NlbWJsaW5nIHRoZXNlIGNvbXBvbmVudHMgd2lsbCBiZQphIGZlYXNpYmxlIHRhc2su ICAoVGhlIGtlcm5lbCB3aWxsIHJlcXVpcmUgY2xvc2VyIGNvbW11bmljYXRpb24gYW5kIHdpbGwK YmUgd29ya2VkIG9uIGJ5IGEgc21hbGwsIHRpZ2h0IGdyb3VwLikKCiAgIElmIEkgZ2V0IGRvbmF0 aW9ucyBvZiBtb25leSwgSSBtYXkgYmUgYWJsZSB0byBoaXJlIGEgZmV3IHBlb3BsZSBmdWxsCm9y IHBhcnQgdGltZS4gIFRoZSBzYWxhcnkgd29u4oCZdCBiZSBoaWdoIGJ5IHByb2dyYW1tZXJz4oCZ IHN0YW5kYXJkcywgYnV0CknigJltIGxvb2tpbmcgZm9yIHBlb3BsZSBmb3Igd2hvbSBidWlsZGlu ZyBjb21tdW5pdHkgc3Bpcml0IGlzIGFzCmltcG9ydGFudCBhcyBtYWtpbmcgbW9uZXkuICBJIHZp ZXcgdGhpcyBhcyBhIHdheSBvZiBlbmFibGluZyBkZWRpY2F0ZWQKcGVvcGxlIHRvIGRldm90ZSB0 aGVpciBmdWxsIGVuZXJnaWVzIHRvIHdvcmtpbmcgb24gR05VIGJ5IHNwYXJpbmcgdGhlbQp0aGUg bmVlZCB0byBtYWtlIGEgbGl2aW5nIGluIGFub3RoZXIgd2F5LgoKV2h5IEFsbCBDb21wdXRlciBV c2VycyBXaWxsIEJlbmVmaXQKCk9uY2UgR05VIGlzIHdyaXR0ZW4sIGV2ZXJ5b25lIHdpbGwgYmUg YWJsZSB0byBvYnRhaW4gZ29vZCBzeXN0ZW0Kc29mdHdhcmUgZnJlZSwganVzdCBsaWtlIGFpci4o MikKCiAgIFRoaXMgbWVhbnMgbXVjaCBtb3JlIHRoYW4ganVzdCBzYXZpbmcgZXZlcnlvbmUgdGhl IHByaWNlIG9mIGEgVW5peApsaWNlbnNlLiAgSXQgbWVhbnMgdGhhdCBtdWNoIHdhc3RlZnVsIGR1 cGxpY2F0aW9uIG9mIHN5c3RlbSBwcm9ncmFtbWluZwplZmZvcnQgd2lsbCBiZSBhdm9pZGVkLiAg VGhpcyBlZmZvcnQgY2FuIGdvIGluc3RlYWQgaW50byBhZHZhbmNpbmcgdGhlCnN0YXRlIG9mIHRo ZSBhcnQuCgogICBDb21wbGV0ZSBzeXN0ZW0gc291cmNlcyB3aWxsIGJlIGF2YWlsYWJsZSB0byBl dmVyeW9uZS4gIEFzIGEgcmVzdWx0LAphIHVzZXIgd2hvIG5lZWRzIGNoYW5nZXMgaW4gdGhlIHN5 c3RlbSB3aWxsIGFsd2F5cyBiZSBmcmVlIHRvIG1ha2UgdGhlbQpoaW1zZWxmLCBvciBoaXJlIGFu eSBhdmFpbGFibGUgcHJvZ3JhbW1lciBvciBjb21wYW55IHRvIG1ha2UgdGhlbSBmb3IKaGltLiAg VXNlcnMgd2lsbCBubyBsb25nZXIgYmUgYXQgdGhlIG1lcmN5IG9mIG9uZSBwcm9ncmFtbWVyIG9y IGNvbXBhbnkKd2hpY2ggb3ducyB0aGUgc291cmNlcyBhbmQgaXMgaW4gc29sZSBwb3NpdGlvbiB0 byBtYWtlIGNoYW5nZXMuCgogICBTY2hvb2xzIHdpbGwgYmUgYWJsZSB0byBwcm92aWRlIGEgbXVj aCBtb3JlIGVkdWNhdGlvbmFsIGVudmlyb25tZW50CmJ5IGVuY291cmFnaW5nIGFsbCBzdHVkZW50 cyB0byBzdHVkeSBhbmQgaW1wcm92ZSB0aGUgc3lzdGVtIGNvZGUuCkhhcnZhcmTigJlzIGNvbXB1 dGVyIGxhYiB1c2VkIHRvIGhhdmUgdGhlIHBvbGljeSB0aGF0IG5vIHByb2dyYW0gY291bGQgYmUK aW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0gaWYgaXRzIHNvdXJjZXMgd2VyZSBub3Qgb24gcHVibGlj IGRpc3BsYXksIGFuZAp1cGhlbGQgaXQgYnkgYWN0dWFsbHkgcmVmdXNpbmcgdG8gaW5zdGFsbCBj ZXJ0YWluIHByb2dyYW1zLiAgSSB3YXMgdmVyeQptdWNoIGluc3BpcmVkIGJ5IHRoaXMuCgogICBG aW5hbGx5LCB0aGUgb3ZlcmhlYWQgb2YgY29uc2lkZXJpbmcgd2hvIG93bnMgdGhlIHN5c3RlbSBz b2Z0d2FyZSBhbmQKd2hhdCBvbmUgaXMgb3IgaXMgbm90IGVudGl0bGVkIHRvIGRvIHdpdGggaXQg d2lsbCBiZSBsaWZ0ZWQuCgogICBBcnJhbmdlbWVudHMgdG8gbWFrZSBwZW9wbGUgcGF5IGZvciB1 c2luZyBhIHByb2dyYW0sIGluY2x1ZGluZwpsaWNlbnNpbmcgb2YgY29waWVzLCBhbHdheXMgaW5j dXIgYSB0cmVtZW5kb3VzIGNvc3QgdG8gc29jaWV0eSB0aHJvdWdoCnRoZSBjdW1iZXJzb21lIG1l Y2hhbmlzbXMgbmVjZXNzYXJ5IHRvIGZpZ3VyZSBvdXQgaG93IG11Y2ggKHRoYXQgaXMsCndoaWNo IHByb2dyYW1zKSBhIHBlcnNvbiBtdXN0IHBheSBmb3IuICBBbmQgb25seSBhIHBvbGljZSBzdGF0 ZSBjYW4KZm9yY2UgZXZlcnlvbmUgdG8gb2JleSB0aGVtLiAgQ29uc2lkZXIgYSBzcGFjZSBzdGF0 aW9uIHdoZXJlIGFpciBtdXN0IGJlCm1hbnVmYWN0dXJlZCBhdCBncmVhdCBjb3N0OiBjaGFyZ2lu ZyBlYWNoIGJyZWF0aGVyIHBlciBsaXRlciBvZiBhaXIgbWF5CmJlIGZhaXIsIGJ1dCB3ZWFyaW5n IHRoZSBtZXRlcmVkIGdhcyBtYXNrIGFsbCBkYXkgYW5kIGFsbCBuaWdodCBpcwppbnRvbGVyYWJs ZSBldmVuIGlmIGV2ZXJ5b25lIGNhbiBhZmZvcmQgdG8gcGF5IHRoZSBhaXIgYmlsbC4gIEFuZCB0 aGUgVFYKY2FtZXJhcyBldmVyeXdoZXJlIHRvIHNlZSBpZiB5b3UgZXZlciB0YWtlIHRoZSBtYXNr IG9mZiBhcmUgb3V0cmFnZW91cy4KSXTigJlzIGJldHRlciB0byBzdXBwb3J0IHRoZSBhaXIgcGxh bnQgd2l0aCBhIGhlYWQgdGF4IGFuZCBjaHVjayB0aGUKbWFza3MuCgogICBDb3B5aW5nIGFsbCBv ciBwYXJ0cyBvZiBhIHByb2dyYW0gaXMgYXMgbmF0dXJhbCB0byBhIHByb2dyYW1tZXIgYXMKYnJl YXRoaW5nLCBhbmQgYXMgcHJvZHVjdGl2ZS4gIEl0IG91Z2h0IHRvIGJlIGFzIGZyZWUuCgpTb21l IEVhc2lseSBSZWJ1dHRlZCBPYmplY3Rpb25zIHRvIEdOVeKAmXMgR29hbHMKCiAgICAg4oCcTm9i b2R5IHdpbGwgdXNlIGl0IGlmIGl0IGlzIGZyZWUsIGJlY2F1c2UgdGhhdCBtZWFucyB0aGV5IGNh buKAmXQKICAgICByZWx5IG9uIGFueSBzdXBwb3J0LuKAnQoKICAgICDigJxZb3UgaGF2ZSB0byBj aGFyZ2UgZm9yIHRoZSBwcm9ncmFtIHRvIHBheSBmb3IgcHJvdmlkaW5nIHRoZQogICAgIHN1cHBv cnQu4oCdCgogICBJZiBwZW9wbGUgd291bGQgcmF0aGVyIHBheSBmb3IgR05VIHBsdXMgc2Vydmlj ZSB0aGFuIGdldCBHTlUgZnJlZQp3aXRob3V0IHNlcnZpY2UsIGEgY29tcGFueSB0byBwcm92aWRl IGp1c3Qgc2VydmljZSB0byBwZW9wbGUgd2hvIGhhdmUKb2J0YWluZWQgR05VIGZyZWUgb3VnaHQg dG8gYmUgcHJvZml0YWJsZS4oMykKCiAgIFdlIG11c3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBzdXBw b3J0IGluIHRoZSBmb3JtIG9mIHJlYWwgcHJvZ3JhbW1pbmcKd29yayBhbmQgbWVyZSBoYW5kaG9s ZGluZy4gIFRoZSBmb3JtZXIgaXMgc29tZXRoaW5nIG9uZSBjYW5ub3QgcmVseSBvbgpmcm9tIGEg c29mdHdhcmUgdmVuZG9yLiAgSWYgeW91ciBwcm9ibGVtIGlzIG5vdCBzaGFyZWQgYnkgZW5vdWdo IHBlb3BsZSwKdGhlIHZlbmRvciB3aWxsIHRlbGwgeW91IHRvIGdldCBsb3N0LgoKICAgSWYgeW91 ciBidXNpbmVzcyBuZWVkcyB0byBiZSBhYmxlIHRvIHJlbHkgb24gc3VwcG9ydCwgdGhlIG9ubHkg d2F5IGlzCnRvIGhhdmUgYWxsIHRoZSBuZWNlc3Nhcnkgc291cmNlcyBhbmQgdG9vbHMuICBUaGVu IHlvdSBjYW4gaGlyZSBhbnkKYXZhaWxhYmxlIHBlcnNvbiB0byBmaXggeW91ciBwcm9ibGVtOyB5 b3UgYXJlIG5vdCBhdCB0aGUgbWVyY3kgb2YgYW55CmluZGl2aWR1YWwuICBXaXRoIFVuaXgsIHRo ZSBwcmljZSBvZiBzb3VyY2VzIHB1dHMgdGhpcyBvdXQgb2YKY29uc2lkZXJhdGlvbiBmb3IgbW9z dCBidXNpbmVzc2VzLiAgV2l0aCBHTlUgdGhpcyB3aWxsIGJlIGVhc3kuICBJdCBpcwpzdGlsbCBw b3NzaWJsZSBmb3IgdGhlcmUgdG8gYmUgbm8gYXZhaWxhYmxlIGNvbXBldGVudCBwZXJzb24sIGJ1 dCB0aGlzCnByb2JsZW0gY2Fubm90IGJlIGJsYW1lZCBvbiBkaXN0cmlidXRpb24gYXJyYW5nZW1l bnRzLiAgR05VIGRvZXMgbm90CmVsaW1pbmF0ZSBhbGwgdGhlIHdvcmxk4oCZcyBwcm9ibGVtcywg b25seSBzb21lIG9mIHRoZW0uCgogICBNZWFud2hpbGUsIHRoZSB1c2VycyB3aG8ga25vdyBub3Ro aW5nIGFib3V0IGNvbXB1dGVycyBuZWVkCmhhbmRob2xkaW5nOiBkb2luZyB0aGluZ3MgZm9yIHRo ZW0gd2hpY2ggdGhleSBjb3VsZCBlYXNpbHkgZG8gdGhlbXNlbHZlcwpidXQgZG9u4oCZdCBrbm93 IGhvdy4KCiAgIFN1Y2ggc2VydmljZXMgY291bGQgYmUgcHJvdmlkZWQgYnkgY29tcGFuaWVzIHRo YXQgc2VsbCBqdXN0CmhhbmQtaG9sZGluZyBhbmQgcmVwYWlyIHNlcnZpY2UuICBJZiBpdCBpcyB0 cnVlIHRoYXQgdXNlcnMgd291bGQgcmF0aGVyCnNwZW5kIG1vbmV5IGFuZCBnZXQgYSBwcm9kdWN0 IHdpdGggc2VydmljZSwgdGhleSB3aWxsIGFsc28gYmUgd2lsbGluZyB0bwpidXkgdGhlIHNlcnZp Y2UgaGF2aW5nIGdvdCB0aGUgcHJvZHVjdCBmcmVlLiAgVGhlIHNlcnZpY2UgY29tcGFuaWVzIHdp bGwKY29tcGV0ZSBpbiBxdWFsaXR5IGFuZCBwcmljZTsgdXNlcnMgd2lsbCBub3QgYmUgdGllZCB0 byBhbnkgcGFydGljdWxhcgpvbmUuICBNZWFud2hpbGUsIHRob3NlIG9mIHVzIHdobyBkb27igJl0 IG5lZWQgdGhlIHNlcnZpY2Ugc2hvdWxkIGJlIGFibGUKdG8gdXNlIHRoZSBwcm9ncmFtIHdpdGhv dXQgcGF5aW5nIGZvciB0aGUgc2VydmljZS4KCiAgICAg4oCcWW91IGNhbm5vdCByZWFjaCBtYW55 IHBlb3BsZSB3aXRob3V0IGFkdmVydGlzaW5nLCBhbmQgeW91IG11c3QKICAgICBjaGFyZ2UgZm9y IHRoZSBwcm9ncmFtIHRvIHN1cHBvcnQgdGhhdC7igJ0KCiAgICAg4oCcSXTigJlzIG5vIHVzZSBh ZHZlcnRpc2luZyBhIHByb2dyYW0gcGVvcGxlIGNhbiBnZXQgZnJlZS7igJ0KCiAgIFRoZXJlIGFy ZSB2YXJpb3VzIGZvcm1zIG9mIGZyZWUgb3IgdmVyeSBjaGVhcCBwdWJsaWNpdHkgdGhhdCBjYW4g YmUKdXNlZCB0byBpbmZvcm0gbnVtYmVycyBvZiBjb21wdXRlciB1c2VycyBhYm91dCBzb21ldGhp bmcgbGlrZSBHTlUuICBCdXQKaXQgbWF5IGJlIHRydWUgdGhhdCBvbmUgY2FuIHJlYWNoIG1vcmUg bWljcm9jb21wdXRlciB1c2VycyB3aXRoCmFkdmVydGlzaW5nLiAgSWYgdGhpcyBpcyByZWFsbHkg c28sIGEgYnVzaW5lc3Mgd2hpY2ggYWR2ZXJ0aXNlcyB0aGUKc2VydmljZSBvZiBjb3B5aW5nIGFu ZCBtYWlsaW5nIEdOVSBmb3IgYSBmZWUgb3VnaHQgdG8gYmUgc3VjY2Vzc2Z1bAplbm91Z2ggdG8g cGF5IGZvciBpdHMgYWR2ZXJ0aXNpbmcgYW5kIG1vcmUuICBUaGlzIHdheSwgb25seSB0aGUgdXNl cnMKd2hvIGJlbmVmaXQgZnJvbSB0aGUgYWR2ZXJ0aXNpbmcgcGF5IGZvciBpdC4KCiAgIE9uIHRo ZSBvdGhlciBoYW5kLCBpZiBtYW55IHBlb3BsZSBnZXQgR05VIGZyb20gdGhlaXIgZnJpZW5kcywg YW5kCnN1Y2ggY29tcGFuaWVzIGRvbuKAmXQgc3VjY2VlZCwgdGhpcyB3aWxsIHNob3cgdGhhdCBh ZHZlcnRpc2luZyB3YXMgbm90CnJlYWxseSBuZWNlc3NhcnkgdG8gc3ByZWFkIEdOVS4gIFdoeSBp cyBpdCB0aGF0IGZyZWUgbWFya2V0IGFkdm9jYXRlcwpkb27igJl0IHdhbnQgdG8gbGV0IHRoZSBm cmVlIG1hcmtldCBkZWNpZGUgdGhpcz8oNCkKCiAgICAg4oCcTXkgY29tcGFueSBuZWVkcyBhIHBy b3ByaWV0YXJ5IG9wZXJhdGluZyBzeXN0ZW0gdG8gZ2V0IGEKICAgICBjb21wZXRpdGl2ZSBlZGdl LuKAnQoKICAgR05VIHdpbGwgcmVtb3ZlIG9wZXJhdGluZyBzeXN0ZW0gc29mdHdhcmUgZnJvbSB0 aGUgcmVhbG0gb2YKY29tcGV0aXRpb24uICBZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byBnZXQgYW4g ZWRnZSBpbiB0aGlzIGFyZWEsIGJ1dApuZWl0aGVyIHdpbGwgeW91ciBjb21wZXRpdG9ycyBiZSBh YmxlIHRvIGdldCBhbiBlZGdlIG92ZXIgeW91LiAgWW91IGFuZAp0aGV5IHdpbGwgY29tcGV0ZSBp biBvdGhlciBhcmVhcywgd2hpbGUgYmVuZWZpdGluZyBtdXR1YWxseSBpbiB0aGlzIG9uZS4KSWYg eW91ciBidXNpbmVzcyBpcyBzZWxsaW5nIGFuIG9wZXJhdGluZyBzeXN0ZW0sIHlvdSB3aWxsIG5v dCBsaWtlIEdOVSwKYnV0IHRoYXTigJlzIHRvdWdoIG9uIHlvdS4gIElmIHlvdXIgYnVzaW5lc3Mg aXMgc29tZXRoaW5nIGVsc2UsIEdOVSBjYW4Kc2F2ZSB5b3UgZnJvbSBiZWluZyBwdXNoZWQgaW50 byB0aGUgZXhwZW5zaXZlIGJ1c2luZXNzIG9mIHNlbGxpbmcKb3BlcmF0aW5nIHN5c3RlbXMuCgog ICBJIHdvdWxkIGxpa2UgdG8gc2VlIEdOVSBkZXZlbG9wbWVudCBzdXBwb3J0ZWQgYnkgZ2lmdHMg ZnJvbSBtYW55Cm1hbnVmYWN0dXJlcnMgYW5kIHVzZXJzLCByZWR1Y2luZyB0aGUgY29zdCB0byBl YWNoLig1KQoKICAgICDigJxEb27igJl0IHByb2dyYW1tZXJzIGRlc2VydmUgYSByZXdhcmQgZm9y IHRoZWlyIGNyZWF0aXZpdHk/4oCdCgogICBJZiBhbnl0aGluZyBkZXNlcnZlcyBhIHJld2FyZCwg aXQgaXMgc29jaWFsIGNvbnRyaWJ1dGlvbi4gIENyZWF0aXZpdHkKY2FuIGJlIGEgc29jaWFsIGNv bnRyaWJ1dGlvbiwgYnV0IG9ubHkgaW4gc28gZmFyIGFzIHNvY2lldHkgaXMgZnJlZSB0bwp1c2Ug dGhlIHJlc3VsdHMuICBJZiBwcm9ncmFtbWVycyBkZXNlcnZlIHRvIGJlIHJld2FyZGVkIGZvciBj cmVhdGluZwppbm5vdmF0aXZlIHByb2dyYW1zLCBieSB0aGUgc2FtZSB0b2tlbiB0aGV5IGRlc2Vy dmUgdG8gYmUgcHVuaXNoZWQgaWYKdGhleSByZXN0cmljdCB0aGUgdXNlIG9mIHRoZXNlIHByb2dy YW1zLgoKICAgICDigJxTaG91bGRu4oCZdCBhIHByb2dyYW1tZXIgYmUgYWJsZSB0byBhc2sgZm9y IGEgcmV3YXJkIGZvciBoaXMKICAgICBjcmVhdGl2aXR5P+KAnQoKICAgVGhlcmUgaXMgbm90aGlu ZyB3cm9uZyB3aXRoIHdhbnRpbmcgcGF5IGZvciB3b3JrLCBvciBzZWVraW5nIHRvCm1heGltaXpl IG9uZeKAmXMgaW5jb21lLCBhcyBsb25nIGFzIG9uZSBkb2VzIG5vdCB1c2UgbWVhbnMgdGhhdCBh cmUKZGVzdHJ1Y3RpdmUuICBCdXQgdGhlIG1lYW5zIGN1c3RvbWFyeSBpbiB0aGUgZmllbGQgb2Yg c29mdHdhcmUgdG9kYXkgYXJlCmJhc2VkIG9uIGRlc3RydWN0aW9uLgoKICAgRXh0cmFjdGluZyBt b25leSBmcm9tIHVzZXJzIG9mIGEgcHJvZ3JhbSBieSByZXN0cmljdGluZyB0aGVpciB1c2Ugb2YK aXQgaXMgZGVzdHJ1Y3RpdmUgYmVjYXVzZSB0aGUgcmVzdHJpY3Rpb25zIHJlZHVjZSB0aGUgYW1v dW50IGFuZCB0aGUKd2F5cyB0aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSB1c2VkLiAgVGhpcyByZWR1 Y2VzIHRoZSBhbW91bnQgb2Ygd2VhbHRoCnRoYXQgaHVtYW5pdHkgZGVyaXZlcyBmcm9tIHRoZSBw cm9ncmFtLiAgV2hlbiB0aGVyZSBpcyBhIGRlbGliZXJhdGUKY2hvaWNlIHRvIHJlc3RyaWN0LCB0 aGUgaGFybWZ1bCBjb25zZXF1ZW5jZXMgYXJlIGRlbGliZXJhdGUgZGVzdHJ1Y3Rpb24uCgogICBU aGUgcmVhc29uIGEgZ29vZCBjaXRpemVuIGRvZXMgbm90IHVzZSBzdWNoIGRlc3RydWN0aXZlIG1l YW5zIHRvCmJlY29tZSB3ZWFsdGhpZXIgaXMgdGhhdCwgaWYgZXZlcnlvbmUgZGlkIHNvLCB3ZSB3 b3VsZCBhbGwgYmVjb21lIHBvb3Jlcgpmcm9tIHRoZSBtdXR1YWwgZGVzdHJ1Y3RpdmVuZXNzLiAg VGhpcyBpcyBLYW50aWFuIGV0aGljczsgb3IsIHRoZSBHb2xkZW4KUnVsZS4gIFNpbmNlIEkgZG8g bm90IGxpa2UgdGhlIGNvbnNlcXVlbmNlcyB0aGF0IHJlc3VsdCBpZiBldmVyeW9uZQpob2FyZHMg aW5mb3JtYXRpb24sIEkgYW0gcmVxdWlyZWQgdG8gY29uc2lkZXIgaXQgd3JvbmcgZm9yIG9uZSB0 byBkbyBzby4KU3BlY2lmaWNhbGx5LCB0aGUgZGVzaXJlIHRvIGJlIHJld2FyZGVkIGZvciBvbmXi gJlzIGNyZWF0aXZpdHkgZG9lcyBub3QKanVzdGlmeSBkZXByaXZpbmcgdGhlIHdvcmxkIGluIGdl bmVyYWwgb2YgYWxsIG9yIHBhcnQgb2YgdGhhdApjcmVhdGl2aXR5LgoKICAgICDigJxXb27igJl0 IHByb2dyYW1tZXJzIHN0YXJ2ZT/igJ0KCiAgIEkgY291bGQgYW5zd2VyIHRoYXQgbm9ib2R5IGlz IGZvcmNlZCB0byBiZSBhIHByb2dyYW1tZXIuICBNb3N0IG9mIHVzCmNhbm5vdCBtYW5hZ2UgdG8g Z2V0IGFueSBtb25leSBmb3Igc3RhbmRpbmcgb24gdGhlIHN0cmVldCBhbmQgbWFraW5nCmZhY2Vz LiAgQnV0IHdlIGFyZSBub3QsIGFzIGEgcmVzdWx0LCBjb25kZW1uZWQgdG8gc3BlbmQgb3VyIGxp dmVzCnN0YW5kaW5nIG9uIHRoZSBzdHJlZXQgbWFraW5nIGZhY2VzLCBhbmQgc3RhcnZpbmcuICBX ZSBkbyBzb21ldGhpbmcKZWxzZS4KCiAgIEJ1dCB0aGF0IGlzIHRoZSB3cm9uZyBhbnN3ZXIgYmVj YXVzZSBpdCBhY2NlcHRzIHRoZSBxdWVzdGlvbmVy4oCZcwppbXBsaWNpdCBhc3N1bXB0aW9uOiB0 aGF0IHdpdGhvdXQgb3duZXJzaGlwIG9mIHNvZnR3YXJlLCBwcm9ncmFtbWVycwpjYW5ub3QgcG9z c2libHkgYmUgcGFpZCBhIGNlbnQuICBTdXBwb3NlZGx5IGl0IGlzIGFsbCBvciBub3RoaW5nLgoK ICAgVGhlIHJlYWwgcmVhc29uIHByb2dyYW1tZXJzIHdpbGwgbm90IHN0YXJ2ZSBpcyB0aGF0IGl0 IHdpbGwgc3RpbGwgYmUKcG9zc2libGUgZm9yIHRoZW0gdG8gZ2V0IHBhaWQgZm9yIHByb2dyYW1t aW5nOyBqdXN0IG5vdCBwYWlkIGFzIG11Y2ggYXMKbm93LgoKICAgUmVzdHJpY3RpbmcgY29weWlu ZyBpcyBub3QgdGhlIG9ubHkgYmFzaXMgZm9yIGJ1c2luZXNzIGluIHNvZnR3YXJlLgpJdCBpcyB0 aGUgbW9zdCBjb21tb24gYmFzaXMgYmVjYXVzZSBpdCBicmluZ3MgaW4gdGhlIG1vc3QgbW9uZXku ICBJZiBpdAp3ZXJlIHByb2hpYml0ZWQsIG9yIHJlamVjdGVkIGJ5IHRoZSBjdXN0b21lciwgc29m dHdhcmUgYnVzaW5lc3Mgd291bGQKbW92ZSB0byBvdGhlciBiYXNlcyBvZiBvcmdhbml6YXRpb24g d2hpY2ggYXJlIG5vdyB1c2VkIGxlc3Mgb2Z0ZW4uClRoZXJlIGFyZSBhbHdheXMgbnVtZXJvdXMg d2F5cyB0byBvcmdhbml6ZSBhbnkga2luZCBvZiBidXNpbmVzcy4KCiAgIFByb2JhYmx5IHByb2dy YW1taW5nIHdpbGwgbm90IGJlIGFzIGx1Y3JhdGl2ZSBvbiB0aGUgbmV3IGJhc2lzIGFzIGl0Cmlz IG5vdy4gIEJ1dCB0aGF0IGlzIG5vdCBhbiBhcmd1bWVudCBhZ2FpbnN0IHRoZSBjaGFuZ2UuICBJ dCBpcyBub3QKY29uc2lkZXJlZCBhbiBpbmp1c3RpY2UgdGhhdCBzYWxlcyBjbGVya3MgbWFrZSB0 aGUgc2FsYXJpZXMgdGhhdCB0aGV5Cm5vdyBkby4gIElmIHByb2dyYW1tZXJzIG1hZGUgdGhlIHNh bWUsIHRoYXQgd291bGQgbm90IGJlIGFuIGluanVzdGljZQplaXRoZXIuICAoSW4gcHJhY3RpY2Ug dGhleSB3b3VsZCBzdGlsbCBtYWtlIGNvbnNpZGVyYWJseSBtb3JlIHRoYW4KdGhhdC4pCgogICAg IOKAnERvbuKAmXQgcGVvcGxlIGhhdmUgYSByaWdodCB0byBjb250cm9sIGhvdyB0aGVpciBjcmVh dGl2aXR5IGlzCiAgICAgdXNlZD/igJ0KCiAgIOKAnENvbnRyb2wgb3ZlciB0aGUgdXNlIG9mIG9u ZeKAmXMgaWRlYXPigJ0gcmVhbGx5IGNvbnN0aXR1dGVzIGNvbnRyb2wgb3ZlcgpvdGhlciBwZW9w bGXigJlzIGxpdmVzOyBhbmQgaXQgaXMgdXN1YWxseSB1c2VkIHRvIG1ha2UgdGhlaXIgbGl2ZXMg bW9yZQpkaWZmaWN1bHQuCgogICBQZW9wbGUgd2hvIGhhdmUgc3R1ZGllZCB0aGUgaXNzdWUgb2Yg aW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyg2KQpjYXJlZnVsbHkgKHN1Y2ggYXMgbGF3eWVy cykgc2F5IHRoYXQgdGhlcmUgaXMgbm8gaW50cmluc2ljIHJpZ2h0IHRvCmludGVsbGVjdHVhbCBw cm9wZXJ0eS4gIFRoZSBraW5kcyBvZiBzdXBwb3NlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkKcmln aHRzIHRoYXQgdGhlIGdvdmVybm1lbnQgcmVjb2duaXplcyB3ZXJlIGNyZWF0ZWQgYnkgc3BlY2lm aWMgYWN0cyBvZgpsZWdpc2xhdGlvbiBmb3Igc3BlY2lmaWMgcHVycG9zZXMuCgogICBGb3IgZXhh bXBsZSwgdGhlIHBhdGVudCBzeXN0ZW0gd2FzIGVzdGFibGlzaGVkIHRvIGVuY291cmFnZSBpbnZl bnRvcnMKdG8gZGlzY2xvc2UgdGhlIGRldGFpbHMgb2YgdGhlaXIgaW52ZW50aW9ucy4gIEl0cyBw dXJwb3NlIHdhcyB0byBoZWxwCnNvY2lldHkgcmF0aGVyIHRoYW4gdG8gaGVscCBpbnZlbnRvcnMu ICBBdCB0aGUgdGltZSwgdGhlIGxpZmUgc3BhbiBvZiAxNwp5ZWFycyBmb3IgYSBwYXRlbnQgd2Fz IHNob3J0IGNvbXBhcmVkIHdpdGggdGhlIHJhdGUgb2YgYWR2YW5jZSBvZiB0aGUKc3RhdGUgb2Yg dGhlIGFydC4gIFNpbmNlIHBhdGVudHMgYXJlIGFuIGlzc3VlIG9ubHkgYW1vbmcgbWFudWZhY3R1 cmVycywKZm9yIHdob20gdGhlIGNvc3QgYW5kIGVmZm9ydCBvZiBhIGxpY2Vuc2UgYWdyZWVtZW50 IGFyZSBzbWFsbCBjb21wYXJlZAp3aXRoIHNldHRpbmcgdXAgcHJvZHVjdGlvbiwgdGhlIHBhdGVu dHMgb2Z0ZW4gZG8gbm90IGRvIG11Y2ggaGFybS4gIFRoZXkKZG8gbm90IG9ic3RydWN0IG1vc3Qg aW5kaXZpZHVhbHMgd2hvIHVzZSBwYXRlbnRlZCBwcm9kdWN0cy4KCiAgIFRoZSBpZGVhIG9mIGNv cHlyaWdodCBkaWQgbm90IGV4aXN0IGluIGFuY2llbnQgdGltZXMsIHdoZW4gYXV0aG9ycwpmcmVx dWVudGx5IGNvcGllZCBvdGhlciBhdXRob3JzIGF0IGxlbmd0aCBpbiB3b3JrcyBvZiBub24tZmlj dGlvbi4gIFRoaXMKcHJhY3RpY2Ugd2FzIHVzZWZ1bCwgYW5kIGlzIHRoZSBvbmx5IHdheSBtYW55 IGF1dGhvcnPigJkgd29ya3MgaGF2ZQpzdXJ2aXZlZCBldmVuIGluIHBhcnQuICBUaGUgY29weXJp Z2h0IHN5c3RlbSB3YXMgY3JlYXRlZCBleHByZXNzbHkgZm9yCnRoZSBwdXJwb3NlIG9mIGVuY291 cmFnaW5nIGF1dGhvcnNoaXAuICBJbiB0aGUgZG9tYWluIGZvciB3aGljaCBpdCB3YXMKaW52ZW50 ZWTigJRib29rcywgd2hpY2ggY291bGQgYmUgY29waWVkIGVjb25vbWljYWxseSBvbmx5IG9uIGEg cHJpbnRpbmcKcHJlc3PigJRpdCBkaWQgbGl0dGxlIGhhcm0sIGFuZCBkaWQgbm90IG9ic3RydWN0 IG1vc3Qgb2YgdGhlIGluZGl2aWR1YWxzCndobyByZWFkIHRoZSBib29rcy4KCiAgIEFsbCBpbnRl bGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGFyZSBqdXN0IGxpY2Vuc2VzIGdyYW50ZWQgYnkgc29j aWV0eQpiZWNhdXNlIGl0IHdhcyB0aG91Z2h0LCByaWdodGx5IG9yIHdyb25nbHksIHRoYXQgc29j aWV0eSBhcyBhIHdob2xlCndvdWxkIGJlbmVmaXQgYnkgZ3JhbnRpbmcgdGhlbS4gIEJ1dCBpbiBh bnkgcGFydGljdWxhciBzaXR1YXRpb24sIHdlCmhhdmUgdG8gYXNrOiBhcmUgd2UgcmVhbGx5IGJl dHRlciBvZmYgZ3JhbnRpbmcgc3VjaCBsaWNlbnNlPyAgV2hhdCBraW5kCm9mIGFjdCBhcmUgd2Ug bGljZW5zaW5nIGEgcGVyc29uIHRvIGRvPwoKICAgVGhlIGNhc2Ugb2YgcHJvZ3JhbXMgdG9kYXkg aXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGF0IG9mIGJvb2tzIGEKaHVuZHJlZCB5ZWFycyBhZ28u ICBUaGUgZmFjdCB0aGF0IHRoZSBlYXNpZXN0IHdheSB0byBjb3B5IGEgcHJvZ3JhbSBpcwpmcm9t IG9uZSBuZWlnaGJvciB0byBhbm90aGVyLCB0aGUgZmFjdCB0aGF0IGEgcHJvZ3JhbSBoYXMgYm90 aCBzb3VyY2UKY29kZSBhbmQgb2JqZWN0IGNvZGUgd2hpY2ggYXJlIGRpc3RpbmN0LCBhbmQgdGhl IGZhY3QgdGhhdCBhIHByb2dyYW0gaXMKdXNlZCByYXRoZXIgdGhhbiByZWFkIGFuZCBlbmpveWVk LCBjb21iaW5lIHRvIGNyZWF0ZSBhIHNpdHVhdGlvbiBpbgp3aGljaCBhIHBlcnNvbiB3aG8gZW5m b3JjZXMgYSBjb3B5cmlnaHQgaXMgaGFybWluZyBzb2NpZXR5IGFzIGEgd2hvbGUKYm90aCBtYXRl cmlhbGx5IGFuZCBzcGlyaXR1YWxseTsgaW4gd2hpY2ggYSBwZXJzb24gc2hvdWxkIG5vdCBkbyBz bwpyZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGxhdyBlbmFibGVzIGhpbSB0by4KCiAgICAg4oCc Q29tcGV0aXRpb24gbWFrZXMgdGhpbmdzIGdldCBkb25lIGJldHRlci7igJ0KCiAgIFRoZSBwYXJh ZGlnbSBvZiBjb21wZXRpdGlvbiBpcyBhIHJhY2U6IGJ5IHJld2FyZGluZyB0aGUgd2lubmVyLCB3 ZQplbmNvdXJhZ2UgZXZlcnlvbmUgdG8gcnVuIGZhc3Rlci4gIFdoZW4gY2FwaXRhbGlzbSByZWFs bHkgd29ya3MgdGhpcwp3YXksIGl0IGRvZXMgYSBnb29kIGpvYjsgYnV0IGl0cyBkZWZlbmRlcnMg YXJlIHdyb25nIGluIGFzc3VtaW5nIGl0CmFsd2F5cyB3b3JrcyB0aGlzIHdheS4gIElmIHRoZSBy dW5uZXJzIGZvcmdldCB3aHkgdGhlIHJld2FyZCBpcyBvZmZlcmVkCmFuZCBiZWNvbWUgaW50ZW50 IG9uIHdpbm5pbmcsIG5vIG1hdHRlciBob3csIHRoZXkgbWF5IGZpbmQgb3RoZXIKc3RyYXRlZ2ll c+KAlHN1Y2ggYXMsIGF0dGFja2luZyBvdGhlciBydW5uZXJzLiAgSWYgdGhlIHJ1bm5lcnMgZ2V0 IGludG8gYQpmaXN0IGZpZ2h0LCB0aGV5IHdpbGwgYWxsIGZpbmlzaCBsYXRlLgoKICAgUHJvcHJp ZXRhcnkgYW5kIHNlY3JldCBzb2Z0d2FyZSBpcyB0aGUgbW9yYWwgZXF1aXZhbGVudCBvZiBydW5u ZXJzIGluCmEgZmlzdCBmaWdodC4gIFNhZCB0byBzYXksIHRoZSBvbmx5IHJlZmVyZWUgd2XigJl2 ZSBnb3QgZG9lcyBub3Qgc2VlbSB0bwpvYmplY3QgdG8gZmlnaHRzOyBoZSBqdXN0IHJlZ3VsYXRl cyB0aGVtICjigJxGb3IgZXZlcnkgdGVuIHlhcmRzIHlvdSBydW4sCnlvdSBjYW4gZmlyZSBvbmUg c2hvdOKAnSkuICBIZSByZWFsbHkgb3VnaHQgdG8gYnJlYWsgdGhlbSB1cCwgYW5kIHBlbmFsaXpl CnJ1bm5lcnMgZm9yIGV2ZW4gdHJ5aW5nIHRvIGZpZ2h0LgoKICAgICDigJxXb27igJl0IGV2ZXJ5 b25lIHN0b3AgcHJvZ3JhbW1pbmcgd2l0aG91dCBhIG1vbmV0YXJ5IGluY2VudGl2ZT/igJ0KCiAg IEFjdHVhbGx5LCBtYW55IHBlb3BsZSB3aWxsIHByb2dyYW0gd2l0aCBhYnNvbHV0ZWx5IG5vIG1v bmV0YXJ5CmluY2VudGl2ZS4gIFByb2dyYW1taW5nIGhhcyBhbiBpcnJlc2lzdGlibGUgZmFzY2lu YXRpb24gZm9yIHNvbWUgcGVvcGxlLAp1c3VhbGx5IHRoZSBwZW9wbGUgd2hvIGFyZSBiZXN0IGF0 IGl0LiAgVGhlcmUgaXMgbm8gc2hvcnRhZ2Ugb2YKcHJvZmVzc2lvbmFsIG11c2ljaWFucyB3aG8g a2VlcCBhdCBpdCBldmVuIHRob3VnaCB0aGV5IGhhdmUgbm8gaG9wZSBvZgptYWtpbmcgYSBsaXZp bmcgdGhhdCB3YXkuCgogICBCdXQgcmVhbGx5IHRoaXMgcXVlc3Rpb24sIHRob3VnaCBjb21tb25s eSBhc2tlZCwgaXMgbm90IGFwcHJvcHJpYXRlCnRvIHRoZSBzaXR1YXRpb24uICBQYXkgZm9yIHBy b2dyYW1tZXJzIHdpbGwgbm90IGRpc2FwcGVhciwgb25seSBiZWNvbWUKbGVzcy4gIFNvIHRoZSBy aWdodCBxdWVzdGlvbiBpcywgd2lsbCBhbnlvbmUgcHJvZ3JhbSB3aXRoIGEgcmVkdWNlZAptb25l dGFyeSBpbmNlbnRpdmU/ICBNeSBleHBlcmllbmNlIHNob3dzIHRoYXQgdGhleSB3aWxsLgoKICAg Rm9yIG1vcmUgdGhhbiB0ZW4geWVhcnMsIG1hbnkgb2YgdGhlIHdvcmxk4oCZcyBiZXN0IHByb2dy YW1tZXJzIHdvcmtlZAphdCB0aGUgQXJ0aWZpY2lhbCBJbnRlbGxpZ2VuY2UgTGFiIGZvciBmYXIg bGVzcyBtb25leSB0aGFuIHRoZXkgY291bGQKaGF2ZSBoYWQgYW55d2hlcmUgZWxzZS4gIFRoZXkg Z290IG1hbnkga2luZHMgb2Ygbm9uLW1vbmV0YXJ5IHJld2FyZHM6CmZhbWUgYW5kIGFwcHJlY2lh dGlvbiwgZm9yIGV4YW1wbGUuICBBbmQgY3JlYXRpdml0eSBpcyBhbHNvIGZ1biwgYQpyZXdhcmQg aW4gaXRzZWxmLgoKICAgVGhlbiBtb3N0IG9mIHRoZW0gbGVmdCB3aGVuIG9mZmVyZWQgYSBjaGFu Y2UgdG8gZG8gdGhlIHNhbWUKaW50ZXJlc3Rpbmcgd29yayBmb3IgYSBsb3Qgb2YgbW9uZXkuCgog ICBXaGF0IHRoZSBmYWN0cyBzaG93IGlzIHRoYXQgcGVvcGxlIHdpbGwgcHJvZ3JhbSBmb3IgcmVh c29ucyBvdGhlcgp0aGFuIHJpY2hlczsgYnV0IGlmIGdpdmVuIGEgY2hhbmNlIHRvIG1ha2UgYSBs b3Qgb2YgbW9uZXkgYXMgd2VsbCwgdGhleQp3aWxsIGNvbWUgdG8gZXhwZWN0IGFuZCBkZW1hbmQg aXQuICBMb3ctcGF5aW5nIG9yZ2FuaXphdGlvbnMgZG8gcG9vcmx5CmluIGNvbXBldGl0aW9uIHdp dGggaGlnaC1wYXlpbmcgb25lcywgYnV0IHRoZXkgZG8gbm90IGhhdmUgdG8gZG8gYmFkbHkKaWYg dGhlIGhpZ2gtcGF5aW5nIG9uZXMgYXJlIGJhbm5lZC4KCiAgICAg4oCcV2UgbmVlZCB0aGUgcHJv Z3JhbW1lcnMgZGVzcGVyYXRlbHkuICBJZiB0aGV5IGRlbWFuZCB0aGF0IHdlIHN0b3AKICAgICBo ZWxwaW5nIG91ciBuZWlnaGJvcnMsIHdlIGhhdmUgdG8gb2JleS7igJ0KCiAgIFlvdeKAmXJlIG5l dmVyIHNvIGRlc3BlcmF0ZSB0aGF0IHlvdSBoYXZlIHRvIG9iZXkgdGhpcyBzb3J0IG9mIGRlbWFu ZC4KUmVtZW1iZXI6IG1pbGxpb25zIGZvciBkZWZlbnNlLCBidXQgbm90IGEgY2VudCBmb3IgdHJp YnV0ZSEKCiAgICAg4oCcUHJvZ3JhbW1lcnMgbmVlZCB0byBtYWtlIGEgbGl2aW5nIHNvbWVob3cu 4oCdCgogICBJbiB0aGUgc2hvcnQgcnVuLCB0aGlzIGlzIHRydWUuICBIb3dldmVyLCB0aGVyZSBh cmUgcGxlbnR5IG9mIHdheXMKdGhhdCBwcm9ncmFtbWVycyBjb3VsZCBtYWtlIGEgbGl2aW5nIHdp dGhvdXQgc2VsbGluZyB0aGUgcmlnaHQgdG8gdXNlIGEKcHJvZ3JhbS4gIFRoaXMgd2F5IGlzIGN1 c3RvbWFyeSBub3cgYmVjYXVzZSBpdCBicmluZ3MgcHJvZ3JhbW1lcnMgYW5kCmJ1c2luZXNzbWVu IHRoZSBtb3N0IG1vbmV5LCBub3QgYmVjYXVzZSBpdCBpcyB0aGUgb25seSB3YXkgdG8gbWFrZSBh CmxpdmluZy4gIEl0IGlzIGVhc3kgdG8gZmluZCBvdGhlciB3YXlzIGlmIHlvdSB3YW50IHRvIGZp bmQgdGhlbS4gIEhlcmUKYXJlIGEgbnVtYmVyIG9mIGV4YW1wbGVzLgoKICAgQSBtYW51ZmFjdHVy ZXIgaW50cm9kdWNpbmcgYSBuZXcgY29tcHV0ZXIgd2lsbCBwYXkgZm9yIHRoZSBwb3J0aW5nIG9m Cm9wZXJhdGluZyBzeXN0ZW1zIG9udG8gdGhlIG5ldyBoYXJkd2FyZS4KCiAgIFRoZSBzYWxlIG9m IHRlYWNoaW5nLCBoYW5kLWhvbGRpbmcgYW5kIG1haW50ZW5hbmNlIHNlcnZpY2VzIGNvdWxkCmFs c28gZW1wbG95IHByb2dyYW1tZXJzLgoKICAgUGVvcGxlIHdpdGggbmV3IGlkZWFzIGNvdWxkIGRp c3RyaWJ1dGUgcHJvZ3JhbXMgYXMgZnJlZXdhcmUoNyksCmFza2luZyBmb3IgZG9uYXRpb25zIGZy b20gc2F0aXNmaWVkIHVzZXJzLCBvciBzZWxsaW5nIGhhbmQtaG9sZGluZwpzZXJ2aWNlcy4gIEkg aGF2ZSBtZXQgcGVvcGxlIHdobyBhcmUgYWxyZWFkeSB3b3JraW5nIHRoaXMgd2F5CnN1Y2Nlc3Nm dWxseS4KCiAgIFVzZXJzIHdpdGggcmVsYXRlZCBuZWVkcyBjYW4gZm9ybSB1c2Vyc+KAmSBncm91 cHMsIGFuZCBwYXkgZHVlcy4gIEEKZ3JvdXAgd291bGQgY29udHJhY3Qgd2l0aCBwcm9ncmFtbWlu ZyBjb21wYW5pZXMgdG8gd3JpdGUgcHJvZ3JhbXMgdGhhdAp0aGUgZ3JvdXDigJlzIG1lbWJlcnMg d291bGQgbGlrZSB0byB1c2UuCgogICBBbGwgc29ydHMgb2YgZGV2ZWxvcG1lbnQgY2FuIGJlIGZ1 bmRlZCB3aXRoIGEgU29mdHdhcmUgVGF4OgoKICAgICBTdXBwb3NlIGV2ZXJ5b25lIHdobyBidXlz IGEgY29tcHV0ZXIgaGFzIHRvIHBheSB4IHBlcmNlbnQgb2YgdGhlCiAgICAgcHJpY2UgYXMgYSBz b2Z0d2FyZSB0YXguICBUaGUgZ292ZXJubWVudCBnaXZlcyB0aGlzIHRvIGFuIGFnZW5jeQogICAg IGxpa2UgdGhlIE5TRiB0byBzcGVuZCBvbiBzb2Z0d2FyZSBkZXZlbG9wbWVudC4KCiAgICAgQnV0 IGlmIHRoZSBjb21wdXRlciBidXllciBtYWtlcyBhIGRvbmF0aW9uIHRvIHNvZnR3YXJlIGRldmVs b3BtZW50CiAgICAgaGltc2VsZiwgaGUgY2FuIHRha2UgYSBjcmVkaXQgYWdhaW5zdCB0aGUgdGF4 LiAgSGUgY2FuIGRvbmF0ZSB0bwogICAgIHRoZSBwcm9qZWN0IG9mIGhpcyBvd24gY2hvb3Npbmfi gJRvZnRlbiwgY2hvc2VuIGJlY2F1c2UgaGUgaG9wZXMgdG8KICAgICB1c2UgdGhlIHJlc3VsdHMg d2hlbiBpdCBpcyBkb25lLiAgSGUgY2FuIHRha2UgYSBjcmVkaXQgZm9yIGFueQogICAgIGFtb3Vu dCBvZiBkb25hdGlvbiB1cCB0byB0aGUgdG90YWwgdGF4IGhlIGhhZCB0byBwYXkuCgogICAgIFRo ZSB0b3RhbCB0YXggcmF0ZSBjb3VsZCBiZSBkZWNpZGVkIGJ5IGEgdm90ZSBvZiB0aGUgcGF5ZXJz IG9mIHRoZQogICAgIHRheCwgd2VpZ2h0ZWQgYWNjb3JkaW5nIHRvIHRoZSBhbW91bnQgdGhleSB3 aWxsIGJlIHRheGVkIG9uLgoKICAgICBUaGUgY29uc2VxdWVuY2VzOgoKICAgICAgICDigKIgVGhl IGNvbXB1dGVyLXVzaW5nIGNvbW11bml0eSBzdXBwb3J0cyBzb2Z0d2FyZSBkZXZlbG9wbWVudC4K ICAgICAgICDigKIgVGhpcyBjb21tdW5pdHkgZGVjaWRlcyB3aGF0IGxldmVsIG9mIHN1cHBvcnQg aXMgbmVlZGVkLgogICAgICAgIOKAoiBVc2VycyB3aG8gY2FyZSB3aGljaCBwcm9qZWN0cyB0aGVp ciBzaGFyZSBpcyBzcGVudCBvbiBjYW4KICAgICAgICAgIGNob29zZSB0aGlzIGZvciB0aGVtc2Vs dmVzLgoKICAgSW4gdGhlIGxvbmcgcnVuLCBtYWtpbmcgcHJvZ3JhbXMgZnJlZSBpcyBhIHN0ZXAg dG93YXJkIHRoZQpwb3N0LXNjYXJjaXR5IHdvcmxkLCB3aGVyZSBub2JvZHkgd2lsbCBoYXZlIHRv IHdvcmsgdmVyeSBoYXJkIGp1c3QgdG8KbWFrZSBhIGxpdmluZy4gIFBlb3BsZSB3aWxsIGJlIGZy ZWUgdG8gZGV2b3RlIHRoZW1zZWx2ZXMgdG8gYWN0aXZpdGllcwp0aGF0IGFyZSBmdW4sIHN1Y2gg YXMgcHJvZ3JhbW1pbmcsIGFmdGVyIHNwZW5kaW5nIHRoZSBuZWNlc3NhcnkgdGVuCmhvdXJzIGEg d2VlayBvbiByZXF1aXJlZCB0YXNrcyBzdWNoIGFzIGxlZ2lzbGF0aW9uLCBmYW1pbHkgY291bnNl bGluZywKcm9ib3QgcmVwYWlyIGFuZCBhc3Rlcm9pZCBwcm9zcGVjdGluZy4gIFRoZXJlIHdpbGwg YmUgbm8gbmVlZCB0byBiZSBhYmxlCnRvIG1ha2UgYSBsaXZpbmcgZnJvbSBwcm9ncmFtbWluZy4K CiAgIFdlIGhhdmUgYWxyZWFkeSBncmVhdGx5IHJlZHVjZWQgdGhlIGFtb3VudCBvZiB3b3JrIHRo YXQgdGhlIHdob2xlCnNvY2lldHkgbXVzdCBkbyBmb3IgaXRzIGFjdHVhbCBwcm9kdWN0aXZpdHks IGJ1dCBvbmx5IGEgbGl0dGxlIG9mIHRoaXMKaGFzIHRyYW5zbGF0ZWQgaXRzZWxmIGludG8gbGVp c3VyZSBmb3Igd29ya2VycyBiZWNhdXNlIG11Y2gKbm9ucHJvZHVjdGl2ZSBhY3Rpdml0eSBpcyBy ZXF1aXJlZCB0byBhY2NvbXBhbnkgcHJvZHVjdGl2ZSBhY3Rpdml0eS4KVGhlIG1haW4gY2F1c2Vz IG9mIHRoaXMgYXJlIGJ1cmVhdWNyYWN5IGFuZCBpc29tZXRyaWMgc3RydWdnbGVzIGFnYWluc3QK Y29tcGV0aXRpb24uICBGcmVlIHNvZnR3YXJlIHdpbGwgZ3JlYXRseSByZWR1Y2UgdGhlc2UgZHJh aW5zIGluIHRoZSBhcmVhCm9mIHNvZnR3YXJlIHByb2R1Y3Rpb24uICBXZSBtdXN0IGRvIHRoaXMs IGluIG9yZGVyIGZvciB0ZWNobmljYWwgZ2FpbnMKaW4gcHJvZHVjdGl2aXR5IHRvIHRyYW5zbGF0 ZSBpbnRvIGxlc3Mgd29yayBmb3IgdXMuCgogICAtLS0tLS0tLS0tIEZvb3Rub3RlcyAtLS0tLS0t LS0tCgogICAoMSkgVGhlIHdvcmRpbmcgaGVyZSB3YXMgY2FyZWxlc3MuICBUaGUgaW50ZW50aW9u IHdhcyB0aGF0IG5vYm9keQp3b3VsZCBoYXZlIHRvIHBheSBmb3IgX3Blcm1pc3Npb25fIHRvIHVz ZSB0aGUgR05VIHN5c3RlbS4gIEJ1dCB0aGUgd29yZHMKZG9u4oCZdCBtYWtlIHRoaXMgY2xlYXIs IGFuZCBwZW9wbGUgb2Z0ZW4gaW50ZXJwcmV0IHRoZW0gYXMgc2F5aW5nIHRoYXQKY29waWVzIG9m IEdOVSBzaG91bGQgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIGF0IGxpdHRsZSBvciBubyBjaGFyZ2Uu ICBUaGF0CndhcyBuZXZlciB0aGUgaW50ZW50OyBsYXRlciBvbiwgdGhlIG1hbmlmZXN0byBtZW50 aW9ucyB0aGUgcG9zc2liaWxpdHkKb2YgY29tcGFuaWVzIHByb3ZpZGluZyB0aGUgc2VydmljZSBv ZiBkaXN0cmlidXRpb24gZm9yIGEgcHJvZml0LgpTdWJzZXF1ZW50bHkgSSBoYXZlIGxlYXJuZWQg dG8gZGlzdGluZ3Vpc2ggY2FyZWZ1bGx5IGJldHdlZW4g4oCcZnJlZeKAnSBpbgp0aGUgc2Vuc2Ug b2YgZnJlZWRvbSBhbmQg4oCcZnJlZeKAnSBpbiB0aGUgc2Vuc2Ugb2YgcHJpY2UuICBGcmVlIHNv ZnR3YXJlIGlzCnNvZnR3YXJlIHRoYXQgdXNlcnMgaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmli dXRlIGFuZCBjaGFuZ2UuICBTb21lCnVzZXJzIG1heSBvYnRhaW4gY29waWVzIGF0IG5vIGNoYXJn ZSwgd2hpbGUgb3RoZXJzIHBheSB0byBvYnRhaW4KY29waWVz4oCUYW5kIGlmIHRoZSBmdW5kcyBo ZWxwIHN1cHBvcnQgaW1wcm92aW5nIHRoZSBzb2Z0d2FyZSwgc28gbXVjaCB0aGUKYmV0dGVyLiAg VGhlIGltcG9ydGFudCB0aGluZyBpcyB0aGF0IGV2ZXJ5b25lIHdobyBoYXMgYSBjb3B5IGhhcyB0 aGUKZnJlZWRvbSB0byBjb29wZXJhdGUgd2l0aCBvdGhlcnMgaW4gdXNpbmcgaXQuCgogICAoMikg VGhpcyBpcyBhbm90aGVyIHBsYWNlIEkgZmFpbGVkIHRvIGRpc3Rpbmd1aXNoIGNhcmVmdWxseSBi ZXR3ZWVuCnRoZSB0d28gZGlmZmVyZW50IG1lYW5pbmdzIG9mIOKAnGZyZWUu4oCdIFRoZSBzdGF0 ZW1lbnQgYXMgaXQgc3RhbmRzIGlzIG5vdApmYWxzZeKAlHlvdSBjYW4gZ2V0IGNvcGllcyBvZiBH TlUgc29mdHdhcmUgYXQgbm8gY2hhcmdlLCBmcm9tIHlvdXIgZnJpZW5kcwpvciBvdmVyIHRoZSBu ZXQuICBCdXQgaXQgZG9lcyBzdWdnZXN0IHRoZSB3cm9uZyBpZGVhLgoKICAgKDMpIFNldmVyYWwg c3VjaCBjb21wYW5pZXMgbm93IGV4aXN0LgoKICAgKDQpIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24gcmFpc2VzIG1vc3Qgb2YgaXRzIGZ1bmRzIGZyb20gYQpkaXN0cmlidXRpb24gc2Vydmlj ZSwgYWx0aG91Z2ggaXQgaXMgYSBjaGFyaXR5IHJhdGhlciB0aGFuIGEgY29tcGFueS4KSWYgX25v IG9uZV8gY2hvb3NlcyB0byBvYnRhaW4gY29waWVzIGJ5IG9yZGVyaW5nIGZyb20gdGhlIEZTRiwg aXQgd2lsbApiZSB1bmFibGUgdG8gZG8gaXRzIHdvcmsuICBCdXQgdGhpcyBkb2VzIG5vdCBtZWFu IHRoYXQgcHJvcHJpZXRhcnkKcmVzdHJpY3Rpb25zIGFyZSBqdXN0aWZpZWQgdG8gZm9yY2UgZXZl cnkgdXNlciB0byBwYXkuICBJZiBhIHNtYWxsCmZyYWN0aW9uIG9mIGFsbCB0aGUgdXNlcnMgb3Jk ZXIgY29waWVzIGZyb20gdGhlIEZTRiwgdGhhdCBpcyBzdWZmaWNpZW50CnRvIGtlZXAgdGhlIEZT RiBhZmxvYXQuICBTbyB3ZSBhc2sgdXNlcnMgdG8gY2hvb3NlIHRvIHN1cHBvcnQgdXMgaW4gdGhp cwp3YXkuICBIYXZlIHlvdSBkb25lIHlvdXIgcGFydD8KCiAgICg1KSBBIGdyb3VwIG9mIGNvbXB1 dGVyIGNvbXBhbmllcyByZWNlbnRseSBwb29sZWQgZnVuZHMgdG8gc3VwcG9ydAptYWludGVuYW5j ZSBvZiB0aGUgR05VIEMgQ29tcGlsZXIuCgogICAoNikgSW4gdGhlIDgwcyBJIGhhZCBub3QgeWV0 IHJlYWxpemVkIGhvdyBjb25mdXNpbmcgaXQgd2FzIHRvIHNwZWFrCm9mIOKAnHRoZSBpc3N1ZeKA nSBvZiDigJxpbnRlbGxlY3R1YWwgcHJvcGVydHku4oCdIFRoYXQgdGVybSBpcyBvYnZpb3VzbHkK Ymlhc2VkOyBtb3JlIHN1YnRsZSBpcyB0aGUgZmFjdCB0aGF0IGl0IGx1bXBzIHRvZ2V0aGVyIHZh cmlvdXMgZGlzcGFyYXRlCmxhd3Mgd2hpY2ggcmFpc2UgdmVyeSBkaWZmZXJlbnQgaXNzdWVzLiAg Tm93YWRheXMgSSB1cmdlIHBlb3BsZSB0bwpyZWplY3QgdGhlIHRlcm0g4oCcaW50ZWxsZWN0dWFs IHByb3BlcnR54oCdIGVudGlyZWx5LCBsZXN0IGl0IGxlYWQgb3RoZXJzIHRvCnN1cHBvc2UgdGhh dCB0aG9zZSBsYXdzIGZvcm0gb25lIGNvaGVyZW50IGlzc3VlLiAgVGhlIHdheSB0byBiZSBjbGVh ciBpcwp0byBkaXNjdXNzIHBhdGVudHMsIGNvcHlyaWdodHMsIGFuZCB0cmFkZW1hcmtzIHNlcGFy YXRlbHkuICBTZWUKPGh0dHBzOi8vd3d3LmdudS5vcmcvcGhpbG9zb3BoeS9ub3QtaXByLnhodG1s PiBmb3IgbW9yZSBleHBsYW5hdGlvbiBvZgpob3cgdGhpcyB0ZXJtIHNwcmVhZHMgY29uZnVzaW9u IGFuZCBiaWFzLgoKICAgKDcpIFN1YnNlcXVlbnRseSB3ZSBoYXZlIGRpc2NvdmVyZWQgdGhlIG5l ZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgrigJxmcmVlIHNvZnR3YXJl4oCdIGFuZCDigJxmcmVl d2FyZeKAnS4gIFRoZSB0ZXJtIOKAnGZyZWV3YXJl4oCdIG1lYW5zIHNvZnR3YXJlIHlvdQphcmUg ZnJlZSB0byByZWRpc3RyaWJ1dGUsIGJ1dCB1c3VhbGx5IHlvdSBhcmUgbm90IGZyZWUgdG8gc3R1 ZHkgYW5kCmNoYW5nZSB0aGUgc291cmNlIGNvZGUsIHNvIG1vc3Qgb2YgaXQgaXMgbm90IGZyZWUg c29mdHdhcmUuICBTZWUKPGh0dHBzOi8vd3d3LmdudS5vcmcvcGhpbG9zb3BoeS93b3Jkcy10by1h dm9pZC5odG1sPiBmb3IgbW9yZQpleHBsYW5hdGlvbi4KCgoqIEdsb3NzYXJ5CgpBYmJyZXYKICAg ICBBbiBhYmJyZXYgaXMgYSB0ZXh0IHN0cmluZyB0aGF0IGV4cGFuZHMgaW50byBhIGRpZmZlcmVu dCB0ZXh0CiAgICAgc3RyaW5nIHdoZW4gcHJlc2VudCBpbiB0aGUgYnVmZmVyLiAgRm9yIGV4YW1w bGUsIHlvdSBtaWdodCBkZWZpbmUgYQogICAgIGZldyBsZXR0ZXJzIGFzIGFuIGFiYnJldiBmb3Ig YSBsb25nIHBocmFzZSB0aGF0IHlvdSB3YW50IHRvIGluc2VydAogICAgIGZyZXF1ZW50bHkuICAq Tm90ZSBBYmJyZXZzOjouCgpBYm9ydGluZwogICAgIEFib3J0aW5nIG1lYW5zIGdldHRpbmcgb3V0 IG9mIGEgcmVjdXJzaXZlIGVkaXQgKHEudi4pLiAgVGhlCiAgICAgY29tbWFuZHMg4oCYQy1d4oCZ IGFuZCDigJhNLXggdG9wLWxldmVs4oCZIGFyZSB1c2VkIGZvciB0aGlzLiAgKk5vdGUKICAgICBR dWl0dGluZzo6LgoKQWN0aXZlIFJlZ2lvbgogICAgIFNldHRpbmcgdGhlIG1hcmsgKHEudi4pIGF0 IGEgcG9zaXRpb24gaW4gdGhlIHRleHQgYWxzbyBhY3RpdmF0ZXMKICAgICBpdC4gIFdoZW4gdGhl IG1hcmsgaXMgYWN0aXZlLCB3ZSBjYWxsIHRoZSByZWdpb24gYW4gYWN0aXZlIHJlZ2lvbi4KICAg ICAqTm90ZSBNYXJrOjouCgo8QWx0PgogICAgIEFsdCBpcyB0aGUgbmFtZSBvZiBhIG1vZGlmaWVy IGJpdCB0aGF0IGEga2V5Ym9hcmQgaW5wdXQgY2hhcmFjdGVyCiAgICAgbWF5IGhhdmUuICBUbyBt YWtlIGEgY2hhcmFjdGVyIEFsdCwgdHlwZSBpdCB3aGlsZSBob2xkaW5nIGRvd24gdGhlCiAgICAg PEFsdD4ga2V5LiAgU3VjaCBjaGFyYWN0ZXJzIGFyZSBnaXZlbiBuYW1lcyB0aGF0IHN0YXJ0IHdp dGgKICAgICDigJg8QWx0Pi3igJkgKHVzdWFsbHkgd3JpdHRlbiDigJhBLeKAmSBmb3Igc2hvcnQp LiAgKE5vdGUgdGhhdCBtYW55CiAgICAgdGVybWluYWxzIGhhdmUgYSBrZXkgbGFiZWxlZCA8QWx0 PiB0aGF0IGlzIHJlYWxseSBhIDxNZXRhPiBrZXkuKQogICAgICpOb3RlIEFsdDogVXNlciBJbnB1 dC4KCkFyZ3VtZW50CiAgICAgKk5vdGUgR2xvc3NhcnktLS1OdW1lcmljIEFyZ3VtZW50OjouCgpB U0NJSSBjaGFyYWN0ZXIKICAgICBBbiBBU0NJSSBjaGFyYWN0ZXIgaXMgZWl0aGVyIGFuIEFTQ0lJ IGNvbnRyb2wgY2hhcmFjdGVyIG9yIGFuIEFTQ0lJCiAgICAgcHJpbnRpbmcgY2hhcmFjdGVyLiAg Kk5vdGUgVXNlciBJbnB1dDo6LgoKQVNDSUkgY29udHJvbCBjaGFyYWN0ZXIKICAgICBBbiBBU0NJ SSBjb250cm9sIGNoYXJhY3RlciBpcyB0aGUgQ29udHJvbCB2ZXJzaW9uIG9mIGFuIHVwcGVyLWNh c2UKICAgICBsZXR0ZXIsIG9yIHRoZSBDb250cm9sIHZlcnNpb24gb2Ygb25lIG9mIHRoZSBjaGFy YWN0ZXJzIOKAmEBbXF1eXz/igJkuCgpBU0NJSSBwcmludGluZyBjaGFyYWN0ZXIKICAgICBBU0NJ SSBsZXR0ZXJzLCBkaWdpdHMsIHNwYWNlLCBhbmQgdGhlIGZvbGxvd2luZyBwdW5jdHVhdGlvbgog ICAgIGNoYXJhY3RlcnM6IOKAmCFAIyQlXiYqKClfLSs9fFx+YHt9W106OyInPD4sLj8v4oCZLgoK QXV0byBGaWxsIE1vZGUKICAgICBBdXRvIEZpbGwgbW9kZSBpcyBhIG1pbm9yIG1vZGUgKHEudi4p IGluIHdoaWNoIHRleHQgdGhhdCB5b3UgaW5zZXJ0CiAgICAgaXMgYXV0b21hdGljYWxseSBicm9r ZW4gaW50byBsaW5lcyBvZiBhIGdpdmVuIG1heGltdW0gd2lkdGguICAqTm90ZQogICAgIEZpbGxp bmc6Oi4KCkF1dG8gU2F2aW5nCiAgICAgQXV0byBzYXZpbmcgaXMgdGhlIHByYWN0aWNlIG9mIHBl cmlvZGljYWxseSBzYXZpbmcgdGhlIGNvbnRlbnRzIG9mCiAgICAgYW4gRW1hY3MgYnVmZmVyIGlu IGEgc3BlY2lhbGx5LW5hbWVkIGZpbGUsIHNvIHRoYXQgdGhlIGluZm9ybWF0aW9uCiAgICAgd2ls bCBiZSBwcmVzZXJ2ZWQgaWYgdGhlIGJ1ZmZlciBpcyBsb3N0IGR1ZSB0byBhIHN5c3RlbSBlcnJv ciBvcgogICAgIHVzZXIgZXJyb3IuICAqTm90ZSBBdXRvIFNhdmU6Oi4KCkF1dG9sb2FkaW5nCiAg ICAgRW1hY3MgY2FuIGF1dG9tYXRpY2FsbHkgbG9hZCBMaXNwIGxpYnJhcmllcyB3aGVuIGEgTGlz cCBwcm9ncmFtCiAgICAgcmVxdWVzdHMgYSBmdW5jdGlvbiBmcm9tIHRob3NlIGxpYnJhcmllcy4g IFRoaXMgaXMgY2FsbGVkCiAgICAg4oCcYXV0b2xvYWRpbmfigJ0uICAqTm90ZSBMaXNwIExpYnJh cmllczo6LgoKQmFja3RyYWNlCiAgICAgQSBiYWNrdHJhY2UgaXMgYSB0cmFjZSBvZiBhIHNlcmll cyBvZiBmdW5jdGlvbiBjYWxscyBzaG93aW5nIGhvdyBhCiAgICAgcHJvZ3JhbSBhcnJpdmVkIGF0 IGEgY2VydGFpbiBwb2ludC4gIEl0IGlzIHVzZWQgbWFpbmx5IGZvciBmaW5kaW5nCiAgICAgYW5k IGNvcnJlY3RpbmcgYnVncyAocS52LikuICBFbWFjcyBjYW4gZGlzcGxheSBhIGJhY2t0cmFjZSB3 aGVuIGl0CiAgICAgc2lnbmFscyBhbiBlcnJvciBvciB3aGVuIHlvdSB0eXBlIOKAmEMtZ+KAmSAo Km5vdGUKICAgICBHbG9zc2FyeS0tLVF1aXR0aW5nOjopLiAgKk5vdGUgQ2hlY2tsaXN0OjouCgpC YWNrdXAgRmlsZQogICAgIEEgYmFja3VwIGZpbGUgcmVjb3JkcyB0aGUgY29udGVudHMgdGhhdCBh IGZpbGUgaGFkIGJlZm9yZSB0aGUKICAgICBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbi4gIEVtYWNz IG1ha2VzIGJhY2t1cCBmaWxlcyBhdXRvbWF0aWNhbGx5IHRvCiAgICAgaGVscCB5b3UgdHJhY2sg ZG93biBvciBjYW5jZWwgY2hhbmdlcyB5b3UgbGF0ZXIgcmVncmV0IG1ha2luZy4KICAgICAqTm90 ZSBCYWNrdXA6Oi4KCkJhbGFuY2luZyBQYXJlbnRoZXNlcwogICAgIEVtYWNzIGNhbiBiYWxhbmNl IHBhcmVudGhlc2VzIChvciBvdGhlciBtYXRjaGluZyBkZWxpbWl0ZXJzKSBlaXRoZXIKICAgICBt YW51YWxseSBvciBhdXRvbWF0aWNhbGx5LiAgWW91IGRvIG1hbnVhbCBiYWxhbmNpbmcgd2l0aCB0 aGUKICAgICBjb21tYW5kcyB0byBtb3ZlIG92ZXIgcGFyZW50aGV0aWNhbCBncm91cGluZ3MgKCpu b3RlIE1vdmluZyBieQogICAgIFBhcmVuczo6KS4gIEF1dG9tYXRpYyBiYWxhbmNpbmcgd29ya3Mg YnkgYmxpbmtpbmcgb3IgaGlnaGxpZ2h0aW5nCiAgICAgdGhlIGRlbGltaXRlciB0aGF0IG1hdGNo ZXMgdGhlIG9uZSB5b3UganVzdCBpbnNlcnRlZCwgb3IgaW5zZXJ0aW5nCiAgICAgdGhlIG1hdGNo aW5nIGRlbGltaXRlciBmb3IgeW91ICgqbm90ZSBNYXRjaGluZyBQYXJlbnM6IE1hdGNoaW5nLiku CgpCYWxhbmNlZCBFeHByZXNzaW9ucwogICAgIEEgYmFsYW5jZWQgZXhwcmVzc2lvbiBpcyBhIHN5 bnRhY3RpY2FsbHkgcmVjb2duaXphYmxlIGV4cHJlc3Npb24sCiAgICAgc3VjaCBhcyBhIHN5bWJv bCwgbnVtYmVyLCBzdHJpbmcgY29uc3RhbnQsIGJsb2NrLCBvciBwYXJlbnRoZXNpemVkCiAgICAg ZXhwcmVzc2lvbiBpbiBDLiAgKk5vdGUgQmFsYW5jZWQgRXhwcmVzc2lvbnM6IEV4cHJlc3Npb25z LgoKQmFsbG9vbiBIZWxwCiAgICAgKk5vdGUgR2xvc3NhcnktLS1Ub29sdGlwczo6LgoKQmFzZSBC dWZmZXIKICAgICBBIGJhc2UgYnVmZmVyIGlzIGEgYnVmZmVyIHdob3NlIHRleHQgaXMgc2hhcmVk IGJ5IGFuIGluZGlyZWN0CiAgICAgYnVmZmVyIChxLnYuKS4KCkJpZGlyZWN0aW9uYWwgVGV4dAog ICAgIFNvbWUgaHVtYW4gbGFuZ3VhZ2VzLCBzdWNoIGFzIEVuZ2xpc2gsIGFyZSB3cml0dGVuIGZy b20gbGVmdCB0bwogICAgIHJpZ2h0LiAgT3RoZXJzLCBzdWNoIGFzIEFyYWJpYywgYXJlIHdyaXR0 ZW4gZnJvbSByaWdodCB0byBsZWZ0LgogICAgIEVtYWNzIHN1cHBvcnRzIGJvdGggb2YgdGhlc2Ug Zm9ybXMsIGFzIHdlbGwgYXMgYW55IG1peHR1cmUgb2YKICAgICB0aGVt4oCUdGhpcyBpcyDigJxi aWRpcmVjdGlvbmFsIHRleHTigJ0uICAqTm90ZSBCaWRpcmVjdGlvbmFsIEVkaXRpbmc6Oi4KCkJp bmQKICAgICBUbyBiaW5kIGEga2V5IHNlcXVlbmNlIG1lYW5zIHRvIGdpdmUgaXQgYSBiaW5kaW5n IChxLnYuKS4gICpOb3RlCiAgICAgUmViaW5kaW5nOjouCgpCaW5kaW5nCiAgICAgQSBrZXkgc2Vx dWVuY2UgZ2V0cyBpdHMgbWVhbmluZyBpbiBFbWFjcyBieSBoYXZpbmcgYSBiaW5kaW5nLCB3aGlj aAogICAgIGlzIGEgY29tbWFuZCAocS52LinigJRhIExpc3AgZnVuY3Rpb24gdGhhdCBpcyBydW4g d2hlbiB5b3UgdHlwZSB0aGF0CiAgICAgc2VxdWVuY2UuICAqTm90ZSBCaW5kaW5nOiBDb21tYW5k cy4gIEN1c3RvbWl6YXRpb24gb2Z0ZW4gaW52b2x2ZXMKICAgICByZWJpbmRpbmcgYSBjaGFyYWN0 ZXIgdG8gYSBkaWZmZXJlbnQgY29tbWFuZCBmdW5jdGlvbi4gIFRoZQogICAgIGJpbmRpbmdzIG9m IGFsbCBrZXkgc2VxdWVuY2VzIGFyZSByZWNvcmRlZCBpbiB0aGUga2V5bWFwcyAocS52LikuCiAg ICAgKk5vdGUgS2V5bWFwczo6LgoKQmxhbmsgTGluZXMKICAgICBCbGFuayBsaW5lcyBhcmUgbGlu ZXMgdGhhdCBjb250YWluIG9ubHkgd2hpdGVzcGFjZS4gIEVtYWNzIGhhcwogICAgIHNldmVyYWwg Y29tbWFuZHMgZm9yIG9wZXJhdGluZyBvbiB0aGUgYmxhbmsgbGluZXMgaW4gdGhlIGJ1ZmZlci4K ICAgICAqTm90ZSBCbGFuayBMaW5lczo6LgoKQm9va21hcmsKICAgICBCb29rbWFya3MgYXJlIGFr aW4gdG8gcmVnaXN0ZXJzIChxLnYuKSBpbiB0aGF0IHRoZXkgcmVjb3JkCiAgICAgcG9zaXRpb25z IGluIGJ1ZmZlcnMgdG8gd2hpY2ggeW91IGNhbiByZXR1cm4gbGF0ZXIuICBVbmxpa2UKICAgICBy ZWdpc3RlcnMsIGJvb2ttYXJrcyBwZXJzaXN0IGJldHdlZW4gRW1hY3Mgc2Vzc2lvbnMuICAqTm90 ZQogICAgIEJvb2ttYXJrczo6LgoKQm9yZGVyCiAgICAgQSBib3JkZXIgaXMgYSB0aGluIHNwYWNl IGFsb25nIHRoZSBlZGdlIG9mIHRoZSBmcmFtZSwgdXNlZCBqdXN0IGZvcgogICAgIHNwYWNpbmcs IG5vdCBmb3IgZGlzcGxheWluZyBhbnl0aGluZy4gIEFuIEVtYWNzIGZyYW1lIGhhcyBhbgogICAg IG9yZGluYXJ5IGV4dGVybmFsIGJvcmRlciwgb3V0c2lkZSBvZiBldmVyeXRoaW5nIGluY2x1ZGlu ZyB0aGUgbWVudQogICAgIGJhciwgcGx1cyBhbiBpbnRlcm5hbCBib3JkZXIgdGhhdCBzdXJyb3Vu ZHMgdGhlIHRleHQgd2luZG93cywgdGhlaXIKICAgICBzY3JvbGwgYmFycyBhbmQgZnJpbmdlcywg YW5kIHNlcGFyYXRlcyB0aGVtIGZyb20gdGhlIG1lbnUgYmFyIGFuZAogICAgIHRvb2wgYmFyLiAg WW91IGNhbiBjdXN0b21pemUgYm90aCBib3JkZXJzIHdpdGggb3B0aW9ucyBhbmQKICAgICByZXNv dXJjZXMgKCpub3RlIEJvcmRlcnMgWDo6KS4gIEJvcmRlcnMgYXJlIG5vdCB0aGUgc2FtZSBhcyBm cmluZ2VzCiAgICAgKHEudi4pLgoKQnVmZmVyCiAgICAgVGhlIGJ1ZmZlciBpcyB0aGUgYmFzaWMg ZWRpdGluZyB1bml0OyBvbmUgYnVmZmVyIGNvcnJlc3BvbmRzIHRvIG9uZQogICAgIHRleHQgYmVp bmcgZWRpdGVkLiAgWW91IG5vcm1hbGx5IGhhdmUgc2V2ZXJhbCBidWZmZXJzLCBidXQgYXQgYW55 CiAgICAgdGltZSB5b3UgYXJlIGVkaXRpbmcgb25seSBvbmUsIHRoZSBjdXJyZW50IGJ1ZmZlciwg dGhvdWdoIHNldmVyYWwKICAgICBjYW4gYmUgdmlzaWJsZSB3aGVuIHlvdSBhcmUgdXNpbmcgbXVs dGlwbGUgd2luZG93cyBvciBmcmFtZXMKICAgICAocS52LikuICBNb3N0IGJ1ZmZlcnMgYXJlIHZp c2l0aW5nIChxLnYuKSBzb21lIGZpbGUuICAqTm90ZQogICAgIEJ1ZmZlcnM6Oi4KCkJ1ZmZlciBT ZWxlY3Rpb24gSGlzdG9yeQogICAgIEVtYWNzIGtlZXBzIGEgYnVmZmVyIHNlbGVjdGlvbiBoaXN0 b3J5IHRoYXQgcmVjb3JkcyBob3cgcmVjZW50bHkKICAgICBlYWNoIEVtYWNzIGJ1ZmZlciBoYXMg YmVlbiBzZWxlY3RlZC4gIFRoaXMgaXMgdXNlZCBmb3IgY2hvb3NpbmcKICAgICB3aGljaCBidWZm ZXIgdG8gc2VsZWN0LiAgKk5vdGUgQnVmZmVyczo6LgoKQnVnCiAgICAgQSBidWcgaXMgYW4gaW5j b3JyZWN0IG9yIHVucmVhc29uYWJsZSBiZWhhdmlvciBvZiBhIHByb2dyYW0sIG9yCiAgICAgaW5h Y2N1cmF0ZSBvciBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4gIEVtYWNzIGRldmVsb3BlcnMgdHJl YXQgYnVnCiAgICAgcmVwb3J0cywgYm90aCBpbiBFbWFjcyBjb2RlIGFuZCBpdHMgZG9jdW1lbnRh dGlvbiwgdmVyeSBzZXJpb3VzbHkKICAgICBhbmQgYXNrIHlvdSB0byByZXBvcnQgYW55IGJ1Z3Mg eW91IGZpbmQuICAqTm90ZSBCdWdzOjouCgpCdXR0b24gRG93biBFdmVudAogICAgIEEgYnV0dG9u IGRvd24gZXZlbnQgaXMgdGhlIGtpbmQgb2YgaW5wdXQgZXZlbnQgKHEudi4pIGdlbmVyYXRlZAog ICAgIHJpZ2h0IGF3YXkgd2hlbiB5b3UgcHJlc3MgZG93biBvbiBhIG1vdXNlIGJ1dHRvbi4gICpO b3RlIE1vdXNlCiAgICAgQnV0dG9uczo6LgoKQnkgRGVmYXVsdAogICAgICpOb3RlIEdsb3NzYXJ5 LS0tRGVmYXVsdDo6LgoKQnl0ZSBDb21waWxhdGlvbgogICAgICpOb3RlIEdsb3NzYXJ5LS0tQ29t cGlsYXRpb246Oi4KCmNmLgpjLmYuCiAgICAgU2hvcnQgZm9yIOKAnGNvbmZlcuKAnSBpbiBMYXRp biwgd2hpY2ggbWVhbnMg4oCcY29tcGFyZSB3aXRo4oCdIG9yIOKAnGNvbXBhcmUKICAgICB0b+KA nS4gIFRoZSBzZWNvbmQgdmFyaWFudCwg4oCcYy5mLuKAnSwgaXMgYSB3aWRlc3ByZWFkIG1pc3Nw ZWxsaW5nLgoK4oCYQy3igJkKICAgICDigJhDLeKAmSBpbiB0aGUgbmFtZSBvZiBhIGNoYXJhY3Rl ciBpcyBhbiBhYmJyZXZpYXRpb24gZm9yIENvbnRyb2wuCiAgICAgKk5vdGUgQy06IFVzZXIgSW5w dXQuCgrigJhDLU0t4oCZCiAgICAg4oCYQy1NLeKAmSBpbiB0aGUgbmFtZSBvZiBhIGNoYXJhY3Rl ciBpcyBhbiBhYmJyZXZpYXRpb24gZm9yCiAgICAgQ29udHJvbC1NZXRhLiAgSWYgeW91ciB0ZXJt aW5hbCBsYWNrcyBhIHJlYWwgPE1ldGE+IGtleSwgeW91IHR5cGUgYQogICAgIENvbnRyb2wtTWV0 YSBjaGFyYWN0ZXIgYnkgdHlwaW5nIDxFU0M+IGFuZCB0aGVuIHR5cGluZyB0aGUKICAgICBjb3Jy ZXNwb25kaW5nIENvbnRyb2wgY2hhcmFjdGVyLiAgKk5vdGUgQy1NLTogVXNlciBJbnB1dC4KCkNh c2UgQ29udmVyc2lvbgogICAgIENhc2UgY29udmVyc2lvbiBtZWFucyBjaGFuZ2luZyB0ZXh0IGZy b20gdXBwZXIgY2FzZSB0byBsb3dlciBjYXNlCiAgICAgb3IgdmljZSB2ZXJzYS4gICpOb3RlIENh c2U6Oi4KCkNhc2UgRm9sZGluZwogICAgIENhc2UgZm9sZGluZyBtZWFucyBpZ25vcmluZyB0aGUg ZGlmZmVyZW5jZXMgYmV0d2VlbiBjYXNlIHZhcmlhbnRzCiAgICAgb2YgdGhlIHNhbWUgbGV0dGVy OiB1cHBlci1jYXNlLCBsb3dlci1jYXNlLCBhbmQgdGl0bGUtY2FzZS4gIEVtYWNzCiAgICAgcGVy Zm9ybXMgY2FzZSBmb2xkaW5nIGJ5IGRlZmF1bHQgaW4gdGV4dCBzZWFyY2guICAqTm90ZSBMYXgK ICAgICBTZWFyY2g6Oi4KCkNoYXJhY3RlcgogICAgIENoYXJhY3RlcnMgZm9ybSB0aGUgY29udGVu dHMgb2YgYW4gRW1hY3MgYnVmZmVyLiAgQWxzbywga2V5CiAgICAgc2VxdWVuY2VzIChxLnYuKSBh cmUgdXN1YWxseSBtYWRlIHVwIG9mIGNoYXJhY3RlcnMgKHRob3VnaCB0aGV5IG1heQogICAgIGlu Y2x1ZGUgb3RoZXIgaW5wdXQgZXZlbnRzIGFzIHdlbGwpLiAgKk5vdGUgVXNlciBJbnB1dDo6LgoK Q2hhcmFjdGVyIEZvbGRpbmcKICAgICBDaGFyYWN0ZXIgZm9sZGluZyBtZWFucyBpZ25vcmluZyBk aWZmZXJlbmNlcyBiZXR3ZWVuIHNpbWlsYXJseQogICAgIGxvb2tpbmcgY2hhcmFjdGVycywgc3Vj aCBhcyBiZXR3ZWVuIOKAmGHigJksIGFuZCDigJjDpOKAmSBhbmQg4oCYw6HigJkuICBFbWFjcwog ICAgIHBlcmZvcm1zIGNoYXJhY3RlciBmb2xkaW5nIGJ5IGRlZmF1bHQgaW4gdGV4dCBzZWFyY2gu ICAqTm90ZSBMYXgKICAgICBTZWFyY2g6Oi4KCkNoYXJhY3RlciBTZXQKICAgICBFbWFjcyBzdXBw b3J0cyBhIG51bWJlciBvZiBjaGFyYWN0ZXIgc2V0cywgZWFjaCBvZiB3aGljaCByZXByZXNlbnRz CiAgICAgYSBwYXJ0aWN1bGFyIGFscGhhYmV0IG9yIHNjcmlwdC4gICpOb3RlIEludGVybmF0aW9u YWw6Oi4KCkNoYXJhY3RlciBUZXJtaW5hbAogICAgICpOb3RlIEdsb3NzYXJ5LS0tVGV4dCBUZXJt aW5hbDo6LgoKQ2xpY2sgRXZlbnQKICAgICBBIGNsaWNrIGV2ZW50IGlzIHRoZSBraW5kIG9mIGlu cHV0IGV2ZW50IChxLnYuKSBnZW5lcmF0ZWQgd2hlbiB5b3UKICAgICBwcmVzcyBhIG1vdXNlIGJ1 dHRvbiBhbmQgcmVsZWFzZSBpdCB3aXRob3V0IG1vdmluZyB0aGUgbW91c2UuCiAgICAgKk5vdGUg TW91c2UgQnV0dG9uczo6LgoKQ2xpZW50CiAgICAgKk5vdGUgR2xvc3NhcnktLS1TZXJ2ZXI6Oi4K CkNsaXBib2FyZAogICAgIEEgY2xpcGJvYXJkIGlzIGEgYnVmZmVyIHByb3ZpZGVkIGJ5IHRoZSB3 aW5kb3cgc3lzdGVtIGZvcgogICAgIHRyYW5zZmVycmluZyB0ZXh0IGJldHdlZW4gYXBwbGljYXRp b25zLiAgT24gdGhlIFggV2luZG93IFN5c3RlbSwKICAgICB0aGUgY2xpcGJvYXJkIGlzIHByb3Zp ZGVkIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IHNlbGVjdGlvbgogICAgIChxLnYuKTsgb24g TVMtV2luZG93cyBhbmQgTWFjLCB0aGUgY2xpcGJvYXJkIGlzIHVzZWQgX2luc3RlYWRfIG9mCiAg ICAgdGhlIHByaW1hcnkgc2VsZWN0aW9uLiAgKk5vdGUgQ2xpcGJvYXJkOjouCgpDb2RpbmcgU3lz dGVtCiAgICAgQSBjb2Rpbmcgc3lzdGVtIGlzIGEgd2F5IHRvIGVuY29kZSB0ZXh0IGNoYXJhY3Rl cnMgaW4gYSBmaWxlIG9yIGluCiAgICAgYSBzdHJlYW0gb2YgaW5mb3JtYXRpb24uICBFbWFjcyBo YXMgdGhlIGFiaWxpdHkgdG8gY29udmVydCB0ZXh0IHRvCiAgICAgb3IgZnJvbSBhIHZhcmlldHkg b2YgY29kaW5nIHN5c3RlbXMgd2hlbiByZWFkaW5nIG9yIHdyaXRpbmcgaXQuCiAgICAgKk5vdGUg Q29kaW5nIFN5c3RlbXM6Oi4KCkNvbW1hbmQKICAgICBBIGNvbW1hbmQgaXMgYSBMaXNwIGZ1bmN0 aW9uIHNwZWNpYWxseSBkZWZpbmVkIHRvIGJlIGFibGUgdG8gc2VydmUKICAgICBhcyBhIGtleSBi aW5kaW5nIGluIEVtYWNzIG9yIHRvIGJlIGludm9rZWQgYnkgaXRzIG5hbWUgKCpub3RlCiAgICAg R2xvc3NhcnktLS1Db21tYW5kIE5hbWU6OikuICBXaGVuIHlvdSB0eXBlIGEga2V5IHNlcXVlbmNl IChxLnYuKSwKICAgICBpdHMgYmluZGluZyAocS52LikgaXMgbG9va2VkIHVwIGluIHRoZSByZWxl dmFudCBrZXltYXBzIChxLnYuKSB0bwogICAgIGZpbmQgdGhlIGNvbW1hbmQgdG8gcnVuLiAgKk5v dGUgQ29tbWFuZHM6Oi4KCkNvbW1hbmQgSGlzdG9yeQogICAgICpOb3RlIEdsb3NzYXJ5LS0tTWlu aWJ1ZmZlciBIaXN0b3J5OjouCgpDb21tYW5kIE5hbWUKICAgICBBIGNvbW1hbmQgbmFtZSBpcyB0 aGUgbmFtZSBvZiBhIExpc3Agc3ltYm9sIHRoYXQgaXMgYSBjb21tYW5kCiAgICAgKCpub3RlIENv bW1hbmRzOjopLiAgWW91IGNhbiBpbnZva2UgYW55IGNvbW1hbmQgYnkgaXRzIG5hbWUgdXNpbmcK ICAgICDigJhNLXjigJkgKCpub3RlIE0teDogTS14LikuCgpDb21tZW50CiAgICAgQSBjb21tZW50 IGlzIHRleHQgaW4gYSBwcm9ncmFtIHdoaWNoIGlzIGludGVuZGVkIG9ubHkgZm9yIGh1bWFucwog ICAgIHJlYWRpbmcgdGhlIHByb2dyYW0sIGFuZCB3aGljaCBpcyBzcGVjaWFsbHkgbWFya2VkIHNv IHRoYXQgaXQgd2lsbAogICAgIGJlIGlnbm9yZWQgd2hlbiB0aGUgcHJvZ3JhbSBpcyBsb2FkZWQg b3IgY29tcGlsZWQuICBFbWFjcyBvZmZlcnMKICAgICBzcGVjaWFsIGNvbW1hbmRzIGZvciBjcmVh dGluZywgYWxpZ25pbmcgYW5kIGtpbGxpbmcgY29tbWVudHMuCiAgICAgKk5vdGUgQ29tbWVudHM6 Oi4KCkNvbW1vbiBMaXNwCiAgICAgQ29tbW9uIExpc3AgaXMgYSBkaWFsZWN0IG9mIExpc3AgKHEu di4pIG11Y2ggbGFyZ2VyIGFuZCBtb3JlCiAgICAgcG93ZXJmdWwgdGhhbiBFbWFjcyBMaXNwLiAg RW1hY3MgcHJvdmlkZXMgYSBzdWJzZXQgb2YgQ29tbW9uIExpc3AKICAgICBpbiB0aGUgQ0wgcGFj a2FnZS4gICpOb3RlIENvbW1vbiBMaXNwOiAoY2wpVG9wLgoKQ29tcGlsYXRpb24KICAgICBDb21w aWxhdGlvbiBpcyB0aGUgcHJvY2VzcyBvZiBjcmVhdGluZyBhbiBleGVjdXRhYmxlIHByb2dyYW0g ZnJvbQogICAgIHNvdXJjZSBjb2RlLiAgRW1hY3MgaGFzIGNvbW1hbmRzIGZvciBjb21waWxpbmcg ZmlsZXMgb2YgRW1hY3MgTGlzcAogICAgIGNvZGUgKCpub3RlIChlbGlzcClCeXRlIENvbXBpbGF0 aW9uOjopIGFuZCBwcm9ncmFtcyBpbiBDIGFuZCBvdGhlcgogICAgIGxhbmd1YWdlcyAoKm5vdGUg Q29tcGlsYXRpb246OikuICBCeXRlLWNvbXBpbGVkIEVtYWNzIExpc3AgY29kZQogICAgIGxvYWRz IGFuZCBleGVjdXRlcyBmYXN0ZXIuCgpDb21wbGV0ZSBLZXkKICAgICBBIGNvbXBsZXRlIGtleSBp cyBhIGtleSBzZXF1ZW5jZSB0aGF0IGZ1bGx5IHNwZWNpZmllcyBvbmUgYWN0aW9uIHRvCiAgICAg YmUgcGVyZm9ybWVkIGJ5IEVtYWNzLiAgRm9yIGV4YW1wbGUsIOKAmFjigJkgYW5kIOKAmEMtZuKA mSBhbmQg4oCYQy14IG3igJkgYXJlCiAgICAgY29tcGxldGUga2V5cy4gIENvbXBsZXRlIGtleXMg ZGVyaXZlIHRoZWlyIG1lYW5pbmdzIGZyb20gYmVpbmcKICAgICBib3VuZCAoKm5vdGUgR2xvc3Nh cnktLS1CaW5kOjopIHRvIGNvbW1hbmRzIChxLnYuKS4gIFRodXMsIOKAmFjigJkgaXMKICAgICBj b252ZW50aW9uYWxseSBib3VuZCB0byBhIGNvbW1hbmQgdG8gaW5zZXJ0IOKAmFjigJkgaW4gdGhl IGJ1ZmZlcjsg4oCYQy14CiAgICAgbeKAmSBpcyBjb252ZW50aW9uYWxseSBib3VuZCB0byBhIGNv bW1hbmQgdG8gYmVnaW4gY29tcG9zaW5nIGEgbWFpbAogICAgIG1lc3NhZ2UuICAqTm90ZSBLZXlz OjouCgpDb21wbGV0aW9uCiAgICAgQ29tcGxldGlvbiBpcyB3aGF0IEVtYWNzIGRvZXMgd2hlbiBp dCBhdXRvbWF0aWNhbGx5IGV4cGFuZHMgYW4KICAgICBhYmJyZXZpYXRpb24gZm9yIGEgbmFtZSBp bnRvIHRoZSBlbnRpcmUgbmFtZS4gIENvbXBsZXRpb24gaXMgZG9uZQogICAgIGZvciBtaW5pYnVm ZmVyIChxLnYuKSBhcmd1bWVudHMgd2hlbiB0aGUgc2V0IG9mIHBvc3NpYmxlIHZhbGlkCiAgICAg aW5wdXRzIGlzIGtub3duOyBmb3IgZXhhbXBsZSwgb24gY29tbWFuZCBuYW1lcywgYnVmZmVyIG5h bWVzLCBhbmQKICAgICBmaWxlIG5hbWVzLiAgQ29tcGxldGlvbiB1c3VhbGx5IG9jY3VycyB3aGVu IDxUQUI+LCA8U1BDPiBvciA8UkVUPgogICAgIGlzIHR5cGVkLiAgKk5vdGUgQ29tcGxldGlvbjo6 LgoKQ29udGludWF0aW9uIExpbmUKICAgICBXaGVuIGEgbGluZSBvZiB0ZXh0IGlzIGxvbmdlciB0 aGFuIHRoZSB3aWR0aCBvZiB0aGUgd2luZG93LCBpdAogICAgIG5vcm1hbGx5IHRha2VzIHVwIG1v cmUgdGhhbiBvbmUgc2NyZWVuIGxpbmUgd2hlbiBkaXNwbGF5ZWQgKGJ1dCBzZWUKICAgICAqbm90 ZSBHbG9zc2FyeS0tLVRydW5jYXRpb246OikuICBXZSBzYXkgdGhhdCB0aGUgdGV4dCBsaW5lIGlz CiAgICAgY29udGludWVkLCBhbmQgYWxsIHNjcmVlbiBsaW5lcyB1c2VkIGZvciBpdCBhZnRlciB0 aGUgZmlyc3QgYXJlCiAgICAgY2FsbGVkIGNvbnRpbnVhdGlvbiBsaW5lcy4gICpOb3RlIENvbnRp bnVhdGlvbiBMaW5lczo6LiAgQSByZWxhdGVkCiAgICAgRW1hY3MgZmVhdHVyZSBpcyBmaWxsaW5n IChxLnYuKS4KCkNvbnRyb2wgQ2hhcmFjdGVyCiAgICAgQSBjb250cm9sIGNoYXJhY3RlciBpcyBh IGNoYXJhY3RlciB0aGF0IHlvdSB0eXBlIGJ5IGhvbGRpbmcgZG93bgogICAgIHRoZSA8Q3RybD4g a2V5LiAgU29tZSBjb250cm9sIGNoYXJhY3RlcnMgYWxzbyBoYXZlIHRoZWlyIG93biBrZXlzLAog ICAgIHNvIHRoYXQgeW91IGNhbiB0eXBlIHRoZW0gd2l0aG91dCB1c2luZyA8Q3RybD4uICBGb3Ig ZXhhbXBsZSwKICAgICA8UkVUPiwgPFRBQj4sIDxFU0M+IGFuZCA8REVMPiBhcmUgYWxsIGNvbnRy b2wgY2hhcmFjdGVycy4gICpOb3RlCiAgICAgVXNlciBJbnB1dDo6LgoKQ29weWxlZnQKICAgICBB IGNvcHlsZWZ0IGlzIGEgbm90aWNlIGdpdmluZyB0aGUgcHVibGljIGxlZ2FsIHBlcm1pc3Npb24g dG8KICAgICByZWRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBhIHByb2dyYW0gb3Igb3RoZXIgd29yayBv ZiBhcnQsIGJ1dAogICAgIHJlcXVpcmluZyBtb2RpZmllZCB2ZXJzaW9ucyB0byBjYXJyeSBzaW1p bGFyIHBlcm1pc3Npb24uICBDb3B5cmlnaHQKICAgICBpcyBub3JtYWxseSB1c2VkIHRvIGtlZXAg dXNlcnMgZGl2aWRlZCBhbmQgaGVscGxlc3M7IHdpdGggY29weWxlZnQKICAgICB3ZSB0dXJuIHRo YXQgYXJvdW5kIHRvIGVtcG93ZXIgdXNlcnMgYW5kIGVuY291cmFnZSB0aGVtIHRvCiAgICAgY29v cGVyYXRlLgoKICAgICBUaGUgcGFydGljdWxhciBmb3JtIG9mIGNvcHlsZWZ0IHVzZWQgYnkgdGhl IEdOVSBwcm9qZWN0IGlzIGNhbGxlZAogICAgIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZS4gICpOb3RlIENvcHlpbmc6Oi4KCjxDdHJsPgogICAgIFRoZSA8Q3RybD4gb3IgY29udHJvbCBr ZXkgaXMgd2hhdCB5b3UgaG9sZCBkb3duIGluIG9yZGVyIHRvIGVudGVyIGEKICAgICBjb250cm9s IGNoYXJhY3RlciAocS52LikuICAqTm90ZSBHbG9zc2FyeS0tLUMtOjouCgpDdXJyZW50IEJ1ZmZl cgogICAgIFRoZSBjdXJyZW50IGJ1ZmZlciBpbiBFbWFjcyBpcyB0aGUgRW1hY3MgYnVmZmVyIG9u IHdoaWNoIG1vc3QKICAgICBlZGl0aW5nIGNvbW1hbmRzIG9wZXJhdGUuICBZb3UgY2FuIHNlbGVj dCBhbnkgRW1hY3MgYnVmZmVyIGFzIHRoZQogICAgIGN1cnJlbnQgb25lLiAgKk5vdGUgQnVmZmVy czo6LgoKQ3VycmVudCBMaW5lCiAgICAgVGhlIGN1cnJlbnQgbGluZSBpcyB0aGUgbGluZSB0aGF0 IHBvaW50IGlzIG9uICgqbm90ZSBQb2ludDo6KS4KCkN1cnJlbnQgUGFyYWdyYXBoCiAgICAgVGhl IGN1cnJlbnQgcGFyYWdyYXBoIGlzIHRoZSBwYXJhZ3JhcGggdGhhdCBwb2ludCBpcyBpbi4gIElm IHBvaW50CiAgICAgaXMgYmV0d2VlbiB0d28gcGFyYWdyYXBocywgdGhlIGN1cnJlbnQgcGFyYWdy YXBoIGlzIHRoZSBvbmUgdGhhdAogICAgIGZvbGxvd3MgcG9pbnQuICAqTm90ZSBQYXJhZ3JhcGhz OjouCgpDdXJyZW50IERlZnVuCiAgICAgVGhlIGN1cnJlbnQgZGVmdW4gaXMgdGhlIGRlZnVuIChx LnYuKSB0aGF0IHBvaW50IGlzIGluLiAgSWYgcG9pbnQKICAgICBpcyBiZXR3ZWVuIGRlZnVucywg dGhlIGN1cnJlbnQgZGVmdW4gaXMgdGhlIG9uZSB0aGF0IGZvbGxvd3MgcG9pbnQuCiAgICAgKk5v dGUgRGVmdW5zOjouCgpDdXJzb3IKICAgICBUaGUgY3Vyc29yIGlzIHRoZSByZWN0YW5nbGUgb24g dGhlIHNjcmVlbiB3aGljaCBpbmRpY2F0ZXMgdGhlCiAgICAgcG9zaXRpb24gKGNhbGxlZCBwb2lu dDsgcS52LikgYXQgd2hpY2ggaW5zZXJ0aW9uIGFuZCBkZWxldGlvbiB0YWtlcwogICAgIHBsYWNl LiAgVGhlIGN1cnNvciBpcyBvbiBvciB1bmRlciB0aGUgY2hhcmFjdGVyIHRoYXQgZm9sbG93cyBw b2ludC4KICAgICBPZnRlbiBwZW9wbGUgc3BlYWsgb2Yg4oCcdGhlIGN1cnNvcuKAnSB3aGVuLCBz dHJpY3RseSBzcGVha2luZywgdGhleQogICAgIG1lYW4g4oCccG9pbnTigJ0uICAqTm90ZSBDdXJz b3I6IFBvaW50LgoKQ3VzdG9taXphdGlvbgogICAgIEN1c3RvbWl6YXRpb24gaXMgbWFraW5nIG1p bm9yIGNoYW5nZXMgaW4gdGhlIHdheSBFbWFjcyB3b3JrcywgdG8KICAgICByZWZsZWN0IHlvdXIg cHJlZmVyZW5jZXMgb3IgbmVlZHMuICBJdCBpcyBvZnRlbiBkb25lIGJ5IHNldHRpbmcKICAgICB2 YXJpYWJsZXMgKCpub3RlIFZhcmlhYmxlczo6KSBvciBmYWNlcyAoKm5vdGUgRmFjZQogICAgIEN1 c3RvbWl6YXRpb246OiksIG9yIGJ5IHJlYmluZGluZyBrZXkgc2VxdWVuY2VzICgqbm90ZSBLZXlt YXBzOjopLgoKQ3V0IGFuZCBQYXN0ZQogICAgICpOb3RlIEdsb3NzYXJ5LS0tS2lsbGluZzo6LCBh bmQgKm5vdGUgR2xvc3NhcnktLS1ZYW5raW5nOjouCgpEYWVtb24KICAgICBBIGRhZW1vbiBpcyBh IHN0YW5kYXJkIHRlcm0gZm9yIGEgc3lzdGVtLWxldmVsIHByb2Nlc3MgdGhhdCBydW5zIGluCiAg ICAgdGhlIGJhY2tncm91bmQuICBEYWVtb25zIGFyZSBvZnRlbiBzdGFydGVkIHdoZW4gdGhlIHN5 c3RlbSBmaXJzdAogICAgIHN0YXJ0cyB1cC4gIFdoZW4gRW1hY3MgcnVucyBpbiBkYWVtb24tbW9k ZSwgaXQgZG9lcyBub3Qgb3BlbiBhCiAgICAgZGlzcGxheS4gIFlvdSBjb25uZWN0IHRvIGl0IHdp dGggdGhlIOKAmGVtYWNzY2xpZW504oCZIHByb2dyYW0uICAqTm90ZQogICAgIEVtYWNzIFNlcnZl cjo6LgoKRGVmYXVsdCBBcmd1bWVudAogICAgIFRoZSBkZWZhdWx0IGZvciBhbiBhcmd1bWVudCBp cyB0aGUgdmFsdWUgdGhhdCB3aWxsIGJlIGFzc3VtZWQgaWYKICAgICB5b3UgZG8gbm90IHNwZWNp Znkgb25lLiAgV2hlbiB0aGUgbWluaWJ1ZmZlciBpcyB1c2VkIHRvIHJlYWQgYW4KICAgICBhcmd1 bWVudCwgdGhlIGRlZmF1bHQgYXJndW1lbnQgaXMgdXNlZCBpZiB5b3UganVzdCB0eXBlIDxSRVQ+ LgogICAgICpOb3RlIE1pbmlidWZmZXI6Oi4KCkRlZmF1bHQKICAgICBBIGRlZmF1bHQgaXMgdGhl IHZhbHVlIHRoYXQgaXMgdXNlZCBmb3IgYSBjZXJ0YWluIHB1cnBvc2Ugd2hlbiB5b3UKICAgICBk byBub3QgZXhwbGljaXRseSBzcGVjaWZ5IGEgdmFsdWUgdG8gdXNlLgoKRGVmYXVsdCBEaXJlY3Rv cnkKICAgICBXaGVuIHlvdSBzcGVjaWZ5IGEgZmlsZSBuYW1lIHRoYXQgZG9lcyBub3Qgc3RhcnQg d2l0aCDigJgv4oCZIG9yIOKAmH7igJksCiAgICAgaXQgaXMgaW50ZXJwcmV0ZWQgcmVsYXRpdmUg dG8gdGhlIGN1cnJlbnQgYnVmZmVy4oCZcyBkZWZhdWx0CiAgICAgZGlyZWN0b3J5LiAgKE9uIE1T IHN5c3RlbXMsIGZpbGUgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGEgZHJpdmUKICAgICBsZXR0ZXIg 4oCYWDrigJkgYXJlIHRyZWF0ZWQgYXMgYWJzb2x1dGUsIG5vdCByZWxhdGl2ZS4pICAqTm90ZSBE ZWZhdWx0CiAgICAgRGlyZWN0b3J5OiBNaW5pYnVmZmVyIEZpbGUuCgpEZWZ1bgogICAgIEEgZGVm dW4gaXMgYSBtYWpvciBkZWZpbml0aW9uIGF0IHRoZSB0b3AgbGV2ZWwgaW4gYSBwcm9ncmFtLiAg VGhlCiAgICAgbmFtZSDigJxkZWZ1buKAnSBjb21lcyBmcm9tIExpc3AsIHdoZXJlIG1vc3Qgc3Vj aCBkZWZpbml0aW9ucyB1c2UgdGhlCiAgICAgY29uc3RydWN0IOKAmGRlZnVu4oCZLiAgKk5vdGUg RGVmdW5zOjouCgo8REVMPgogICAgIDxERUw+IGlzIGEgY2hhcmFjdGVyIHRoYXQgcnVucyB0aGUg Y29tbWFuZCB0byBkZWxldGUgb25lIGNoYXJhY3RlcgogICAgIG9mIHRleHQgYmVmb3JlIHRoZSBj dXJzb3IuICBJdCBpcyB0eXBpY2FsbHkgZWl0aGVyIHRoZSA8RGVsZXRlPiBrZXkKICAgICBvciB0 aGUgPEJBQ0tTUEFDRT4ga2V5LCB3aGljaGV2ZXIgb25lIGlzIGVhc3kgdG8gdHlwZS4gICpOb3Rl IERFTDoKICAgICBFcmFzaW5nLgoKRGVsZXRpb24KICAgICBEZWxldGlvbiBtZWFucyBlcmFzaW5n IHRleHQgd2l0aG91dCBjb3B5aW5nIGl0IGludG8gdGhlIGtpbGwgcmluZwogICAgIChxLnYuKS4g IFRoZSBhbHRlcm5hdGl2ZSBpcyBraWxsaW5nIChxLnYuKS4gICpOb3RlIERlbGV0aW9uOgogICAg IEtpbGxpbmcuCgpEZWxldGlvbiBvZiBGaWxlcwogICAgIERlbGV0aW5nIGEgZmlsZSBtZWFucyBl cmFzaW5nIGl0IGZyb20gdGhlIGZpbGUgc3lzdGVtLiAgKE5vdGUgdGhhdAogICAgIHNvbWUgc3lz dGVtcyB1c2UgdGhlIGNvbmNlcHQgb2YgYSB0cmFzaCBjYW4sIG9yIHJlY3ljbGUgYmluLCB0bwog ICAgIGFsbG93IHlvdSB0byB1bmRlbGV0ZSBmaWxlcy4pICAqTm90ZSBNaXNjIEZpbGUgT3BzOiBN aXNjIEZpbGUgT3BzLgoKRGVsZXRpb24gb2YgTWVzc2FnZXMKICAgICBEZWxldGluZyBhIG1lc3Nh Z2UgKGluIFJtYWlsLCBhbmQgb3RoZXIgbWFpbCBjbGllbnRzKSBtZWFucwogICAgIGZsYWdnaW5n IGl0IHRvIGJlIGVsaW1pbmF0ZWQgZnJvbSB5b3VyIG1haWwgZmlsZS4gIFVudGlsIHlvdQogICAg IGV4cHVuZ2UgKHEudi4pIHRoZSBSbWFpbCBmaWxlLCB5b3UgY2FuIHN0aWxsIHVuZGVsZXRlIHRo ZSBtZXNzYWdlcwogICAgIHlvdSBoYXZlIGRlbGV0ZWQuICAqTm90ZSBSbWFpbCBEZWxldGlvbjo6 LgoKRGVsZXRpb24gb2YgV2luZG93cwogICAgIERlbGV0aW5nIGEgd2luZG93IG1lYW5zIGVsaW1p bmF0aW5nIGl0IGZyb20gdGhlIHNjcmVlbi4gIE90aGVyCiAgICAgd2luZG93cyBleHBhbmQgdG8g dXNlIHVwIHRoZSBzcGFjZS4gIFRoZSB0ZXh0IHRoYXQgd2FzIGluIHRoZQogICAgIHdpbmRvdyBp cyBub3QgbG9zdCwgYW5kIHlvdSBjYW4gY3JlYXRlIGEgbmV3IHdpbmRvdyB3aXRoIHRoZSBzYW1l CiAgICAgZGltZW5zaW9ucyBhcyB0aGUgb2xkIGlmIHlvdSB3aXNoLiAgKk5vdGUgV2luZG93czo6 LgoKRGlyZWN0b3J5CiAgICAgRmlsZSBkaXJlY3RvcmllcyBhcmUgbmFtZWQgY29sbGVjdGlvbnMg aW4gdGhlIGZpbGUgc3lzdGVtLCB3aXRoaW4KICAgICB3aGljaCB5b3UgY2FuIHBsYWNlIGluZGl2 aWR1YWwgZmlsZXMgb3Igc3ViZGlyZWN0b3JpZXMuICBUaGV5IGFyZQogICAgIHNvbWV0aW1lcyBy ZWZlcnJlZCB0byBhcyDigJxmb2xkZXJz4oCdLiAgKk5vdGUgRGlyZWN0b3JpZXM6Oi4KCkRpcmVj dG9yeSBMb2NhbCBWYXJpYWJsZQogICAgIEEgZGlyZWN0b3J5IGxvY2FsIHZhcmlhYmxlIGlzIGEg bG9jYWwgdmFyaWFibGUgKHEudi4pIHRoYXQgYXBwbGllcwogICAgIHRvIGFsbCB0aGUgZmlsZXMg d2l0aGluIGEgY2VydGFpbiBkaXJlY3RvcnkuICAqTm90ZSBEaXJlY3RvcnkKICAgICBWYXJpYWJs ZXM6Oi4KCkRpcmVjdG9yeSBOYW1lCiAgICAgT24gR05VIGFuZCBvdGhlciBVbml4LWxpa2Ugc3lz dGVtcywgZGlyZWN0b3J5IG5hbWVzIGFyZSBzdHJpbmdzCiAgICAgdGhhdCBlbmQgaW4g4oCYL+KA mS4gIEZvciBleGFtcGxlLCDigJgvbm8tc3VjaC1kaXIv4oCZIGlzIGEgZGlyZWN0b3J5IG5hbWUK ICAgICB3aGVyZWFzIOKAmC90bXDigJkgaXMgbm90LCBldmVuIHRob3VnaCDigJgvdG1w4oCZIG5h bWVzIGEgZmlsZSB0aGF0IGhhcHBlbnMKICAgICB0byBiZSBhIGRpcmVjdG9yeS4gIE9uIE1TLVdp bmRvd3MgdGhlIHJlbGF0aW9uc2hpcCBpcyBtb3JlCiAgICAgY29tcGxpY2F0ZWQuICAqTm90ZSAo ZWxpc3ApRGlyZWN0b3J5IE5hbWVzOjouCgpEaXJlZAogICAgIERpcmVkIGlzIHRoZSBFbWFjcyBm YWNpbGl0eSB0aGF0IGRpc3BsYXlzIHRoZSBjb250ZW50cyBvZiBhIGZpbGUKICAgICBkaXJlY3Rv cnkgYW5kIGFsbG93cyB5b3UgdG8g4oCcZWRpdCB0aGUgZGlyZWN0b3J54oCdLCBwZXJmb3JtaW5n CiAgICAgb3BlcmF0aW9ucyBvbiB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeS4gICpOb3RlIERp cmVkOjouCgpEaXNhYmxlZCBDb21tYW5kCiAgICAgQSBkaXNhYmxlZCBjb21tYW5kIGlzIG9uZSB0 aGF0IHlvdSBtYXkgbm90IHJ1biB3aXRob3V0IHNwZWNpYWwKICAgICBjb25maXJtYXRpb24uICBU aGUgdXN1YWwgcmVhc29uIGZvciBkaXNhYmxpbmcgYSBjb21tYW5kIGlzIHRoYXQgaXQKICAgICBp cyBjb25mdXNpbmcgZm9yIGJlZ2lubmluZyB1c2Vycy4gICpOb3RlIERpc2FibGluZzo6LgoKRG93 biBFdmVudAogICAgIFNob3J0IGZvciDigJxidXR0b24gZG93biBldmVudOKAnSAocS52LikuCgpE cmFnIEV2ZW50CiAgICAgQSBkcmFnIGV2ZW50IGlzIHRoZSBraW5kIG9mIGlucHV0IGV2ZW50IChx LnYuKSBnZW5lcmF0ZWQgd2hlbiB5b3UKICAgICBwcmVzcyBhIG1vdXNlIGJ1dHRvbiwgbW92ZSB0 aGUgbW91c2UsIGFuZCB0aGVuIHJlbGVhc2UgdGhlIGJ1dHRvbi4KICAgICAqTm90ZSBNb3VzZSBC dXR0b25zOjouCgpEcmliYmxlIEZpbGUKICAgICBBIGRyaWJibGUgZmlsZSBpcyBhIGZpbGUgaW50 byB3aGljaCBFbWFjcyB3cml0ZXMgYWxsIHRoZSBjaGFyYWN0ZXJzCiAgICAgdGhhdCB5b3UgdHlw ZSBvbiB0aGUga2V5Ym9hcmQuICBEcmliYmxlIGZpbGVzIGNhbiBiZSB1c2VkIHRvIG1ha2UgYQog ICAgIHJlY29yZCBmb3IgZGVidWdnaW5nIEVtYWNzIGJ1Z3MuICBFbWFjcyBkb2VzIG5vdCBtYWtl IGEgZHJpYmJsZQogICAgIGZpbGUgdW5sZXNzIHlvdSB0ZWxsIGl0IHRvLiAgKk5vdGUgQnVnczo6 LgoKZS5nLgogICAgIFNob3J0IGZvciDigJxleGVtcGxpIGdyYXRpYeKAnSBpbiBMYXRpbiwgd2hp Y2ggbWVhbnMg4oCcZm9yIGV4YW1wbGXigJ0uCgpFY2hvIEFyZWEKICAgICBUaGUgZWNobyBhcmVh IGlzIHRoZSBib3R0b20gbGluZSBvZiB0aGUgc2NyZWVuLCB1c2VkIGZvciBlY2hvaW5nCiAgICAg dGhlIGFyZ3VtZW50cyB0byBjb21tYW5kcywgZm9yIGFza2luZyBxdWVzdGlvbnMsIGFuZCBzaG93 aW5nIGJyaWVmCiAgICAgbWVzc2FnZXMgKGluY2x1ZGluZyBlcnJvciBtZXNzYWdlcykuICBUaGUg bWVzc2FnZXMgYXJlIHN0b3JlZCBpbgogICAgIHRoZSBidWZmZXIg4oCYKk1lc3NhZ2VzKuKAmSBz byB5b3UgY2FuIHJldmlldyB0aGVtIGxhdGVyLiAgKk5vdGUgRWNobwogICAgIEFyZWE6Oi4KCkVj aG9pbmcKICAgICBFY2hvaW5nIGlzIGFja25vd2xlZGdpbmcgdGhlIHJlY2VpcHQgb2YgaW5wdXQg ZXZlbnRzIGJ5IGRpc3BsYXlpbmcKICAgICB0aGVtIChpbiB0aGUgZWNobyBhcmVhKS4gIEVtYWNz IG5ldmVyIGVjaG9lcyBzaW5nbGUtY2hhcmFjdGVyIGtleQogICAgIHNlcXVlbmNlczsgbG9uZ2Vy IGtleSBzZXF1ZW5jZXMgZWNobyBvbmx5IGlmIHlvdSBwYXVzZSB3aGlsZSB0eXBpbmcKICAgICB0 aGVtLgoKRWxlY3RyaWMKICAgICBXZSBzYXkgdGhhdCBhIGNoYXJhY3RlciBpcyBlbGVjdHJpYyBp ZiBpdCBpcyBub3JtYWxseQogICAgIHNlbGYtaW5zZXJ0aW5nIChxLnYuKSwgYnV0IHRoZSBjdXJy ZW50IG1ham9yIG1vZGUgKHEudi4pIHJlZGVmaW5lcwogICAgIGl0IHRvIGRvIHNvbWV0aGluZyBl bHNlIGFzIHdlbGwuICBGb3IgZXhhbXBsZSwgc29tZSBwcm9ncmFtbWluZwogICAgIGxhbmd1YWdl IG1ham9yIG1vZGVzIGRlZmluZSBwYXJ0aWN1bGFyIGRlbGltaXRlciBjaGFyYWN0ZXJzIHRvCiAg ICAgcmVpbmRlbnQgdGhlIGxpbmUsIG9yIGluc2VydCBvbmUgb3IgbW9yZSBuZXdsaW5lcyBpbiBh ZGRpdGlvbiB0bwogICAgIHNlbGYtaW5zZXJ0aW9uLgoKRW5kIE9mIExpbmUKICAgICBFbmQgb2Yg bGluZSBpcyBhIGNoYXJhY3RlciBvciBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdAogICAg IGluZGljYXRlIHRoZSBlbmQgb2YgYSB0ZXh0IGxpbmUuICBPbiBHTlUgYW5kIFVuaXggc3lzdGVt cywgdGhpcyBpcwogICAgIGEgbmV3bGluZSAocS52LiksIGJ1dCBvdGhlciBzeXN0ZW1zIGhhdmUg b3RoZXIgY29udmVudGlvbnMuICAqTm90ZQogICAgIGVuZC1vZi1saW5lOiBDb2RpbmcgU3lzdGVt cy4gIEVtYWNzIGNhbiByZWNvZ25pemUgc2V2ZXJhbAogICAgIGVuZC1vZi1saW5lIGNvbnZlbnRp b25zIGluIGZpbGVzIGFuZCBjb252ZXJ0IGJldHdlZW4gdGhlbS4KCkVudmlyb25tZW50IFZhcmlh YmxlCiAgICAgQW4gZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgb25lIG9mIGEgY29sbGVjdGlvbiBv ZiB2YXJpYWJsZXMgc3RvcmVkCiAgICAgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sIGVhY2ggb25l IGhhdmluZyBhIG5hbWUgYW5kIGEgdmFsdWUuICBFbWFjcwogICAgIGNhbiBhY2Nlc3MgZW52aXJv bm1lbnQgdmFyaWFibGVzIHNldCBieSBpdHMgcGFyZW50IHNoZWxsLCBhbmQgaXQKICAgICBjYW4g c2V0IHZhcmlhYmxlcyBpbiB0aGUgZW52aXJvbm1lbnQgaXQgcGFzc2VzIHRvIHByb2dyYW1zIGl0 CiAgICAgaW52b2tlcy4gICpOb3RlIEVudmlyb25tZW50OjouCgpFT0wKICAgICAqTm90ZSBHbG9z c2FyeS0tLUVuZCBPZiBMaW5lOjouCgpFcnJvcgogICAgIEFuIGVycm9yIG9jY3VycyB3aGVuIGFu IEVtYWNzIGNvbW1hbmQgY2Fubm90IGV4ZWN1dGUgaW4gdGhlIGN1cnJlbnQKICAgICBjaXJjdW1z dGFuY2VzLiAgV2hlbiBhbiBlcnJvciBvY2N1cnMsIGV4ZWN1dGlvbiBvZiB0aGUgY29tbWFuZAog ICAgIHN0b3BzICh1bmxlc3MgdGhlIGNvbW1hbmQgaGFzIGJlZW4gcHJvZ3JhbW1lZCB0byBkbyBv dGhlcndpc2UpIGFuZAogICAgIEVtYWNzIHJlcG9ydHMgdGhlIGVycm9yIGJ5IGRpc3BsYXlpbmcg YW4gZXJyb3IgbWVzc2FnZSAocS52LikuCgpFcnJvciBNZXNzYWdlCiAgICAgQW4gZXJyb3IgbWVz c2FnZSBpcyBvdXRwdXQgZGlzcGxheWVkIGJ5IEVtYWNzIHdoZW4geW91IGFzayBpdCB0byBkbwog ICAgIHNvbWV0aGluZyBpbXBvc3NpYmxlIChzdWNoIGFzLCBraWxsaW5nIHRleHQgZm9yd2FyZCB3 aGVuIHBvaW50IGlzCiAgICAgYXQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyKSwgb3Igd2hlbiBhIGNv bW1hbmQgbWFsZnVuY3Rpb25zIGluIHNvbWUKICAgICB3YXkuICBTdWNoIG1lc3NhZ2VzIGFwcGVh ciBpbiB0aGUgZWNobyBhcmVhLCBhY2NvbXBhbmllZCBieSBhIGJlZXAuCgo8RVNDPgogICAgIDxF U0M+IGlzIGEgY2hhcmFjdGVyIHVzZWQgYXMgYSBwcmVmaXggZm9yIHR5cGluZyBNZXRhIGNoYXJh Y3RlcnMgb24KICAgICBrZXlib2FyZHMgbGFja2luZyBhIDxNZXRhPiBrZXkuICBVbmxpa2UgdGhl IDxNZXRhPiBrZXkgKHdoaWNoLCBsaWtlCiAgICAgdGhlIDxTSElGVD4ga2V5LCBpcyBoZWxkIGRv d24gd2hpbGUgYW5vdGhlciBjaGFyYWN0ZXIgaXMgdHlwZWQpLAogICAgIHlvdSBwcmVzcyB0aGUg PEVTQz4ga2V5IGFzIHlvdSB3b3VsZCBwcmVzcyBhIGxldHRlciBrZXksIGFuZCBpdAogICAgIGFw cGxpZXMgdG8gdGhlIG5leHQgY2hhcmFjdGVyIHlvdSB0eXBlLgoKZXRjLgogICAgIFNob3J0IGZv ciDigJxldCBjZXRlcmHigJ0gaW4gTGF0aW4sIHdoaWNoIG1lYW5zIOKAnGFuZCBzbyBvbuKAnS4K CkV4cHJlc3Npb24KICAgICAqTm90ZSBHbG9zc2FyeS0tLUJhbGFuY2VkIEV4cHJlc3Npb246Oi4K CkV4cHVuZ2luZwogICAgIEV4cHVuZ2luZyBhbiBSbWFpbCwgR251cyBuZXdzZ3JvdXAsIG9yIERp cmVkIGJ1ZmZlciBpcyBhbiBvcGVyYXRpb24KICAgICB0aGF0IHRydWx5IGRpc2NhcmRzIHRoZSBt ZXNzYWdlcyBvciBmaWxlcyB5b3UgaGF2ZSBwcmV2aW91c2x5CiAgICAgZmxhZ2dlZCBmb3IgZGVs ZXRpb24uCgpGYWNlCiAgICAgQSBmYWNlIGlzIGEgc3R5bGUgb2YgZGlzcGxheWluZyBjaGFyYWN0 ZXJzLiAgSXQgc3BlY2lmaWVzCiAgICAgYXR0cmlidXRlcyBzdWNoIGFzIGZvbnQgZmFtaWx5IGFu ZCBzaXplLCBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kCiAgICAgY29sb3JzLCB1bmRlcmxpbmUg YW5kIHN0cmlrZS10aHJvdWdoLCBiYWNrZ3JvdW5kIHN0aXBwbGUsIGV0Yy4KICAgICBFbWFjcyBw cm92aWRlcyBmZWF0dXJlcyB0byBhc3NvY2lhdGUgc3BlY2lmaWMgZmFjZXMgd2l0aCBwb3J0aW9u cwogICAgIG9mIGJ1ZmZlciB0ZXh0LCBpbiBvcmRlciB0byBkaXNwbGF5IHRoYXQgdGV4dCBhcyBz cGVjaWZpZWQgYnkgdGhlCiAgICAgZmFjZSBhdHRyaWJ1dGVzLiAgKk5vdGUgRmFjZXM6Oi4KCkZp bGUgTG9jYWwgVmFyaWFibGUKICAgICBBIGZpbGUgbG9jYWwgdmFyaWFibGUgaXMgYSBsb2NhbCB2 YXJpYWJsZSAocS52Likgc3BlY2lmaWVkIGluIGEKICAgICBnaXZlbiBmaWxlLiAgKk5vdGUgRmls ZSBWYXJpYWJsZXM6OiwgYW5kICpub3RlIEdsb3NzYXJ5LS0tRGlyZWN0b3J5CiAgICAgTG9jYWwg VmFyaWFibGU6Oi4KCkZpbGUgTG9ja2luZwogICAgIEVtYWNzIHVzZXMgZmlsZSBsb2NraW5nIHRv IG5vdGljZSB3aGVuIHR3byBkaWZmZXJlbnQgdXNlcnMgc3RhcnQgdG8KICAgICBlZGl0IG9uZSBm aWxlIGF0IHRoZSBzYW1lIHRpbWUuICAqTm90ZSBJbnRlcmxvY2tpbmc6Oi4KCkZpbGUgTmFtZQog ICAgIEEgZmlsZSBuYW1lIGlzIGEgbmFtZSB0aGF0IHJlZmVycyB0byBhIGZpbGUuICBGaWxlIG5h bWVzIG1heSBiZQogICAgIHJlbGF0aXZlIG9yIGFic29sdXRlOyB0aGUgbWVhbmluZyBvZiBhIHJl bGF0aXZlIGZpbGUgbmFtZSBkZXBlbmRzCiAgICAgb24gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBi dXQgYW4gYWJzb2x1dGUgZmlsZSBuYW1lIHJlZmVycyB0byB0aGUKICAgICBzYW1lIGZpbGUgcmVn YXJkbGVzcyBvZiB3aGljaCBkaXJlY3RvcnkgaXMgY3VycmVudC4gIE9uIEdOVSBhbmQKICAgICBV bml4IHN5c3RlbXMsIGFuIGFic29sdXRlIGZpbGUgbmFtZSBzdGFydHMgd2l0aCBhIHNsYXNoICh0 aGUgcm9vdAogICAgIGRpcmVjdG9yeSkgb3Igd2l0aCDigJh+L+KAmSBvciDigJh+VVNFUi/igJkg KGEgaG9tZSBkaXJlY3RvcnkpLiAgT24KICAgICBNUy1XaW5kb3dzL01TLURPUywgYW4gYWJzb2x1 dGUgZmlsZSBuYW1lIGNhbiBhbHNvIHN0YXJ0IHdpdGggYQogICAgIGRyaXZlIGxldHRlciBhbmQg YSBjb2xvbiwgZS5nLiwg4oCYRDrigJkuCgogICAgIFNvbWUgcGVvcGxlIHVzZSB0aGUgdGVybSDi gJxwYXRobmFtZeKAnSBmb3IgZmlsZSBuYW1lcywgYnV0IHdlIGRvIG5vdDsKICAgICB3ZSB1c2Ug dGhlIHdvcmQg4oCccGF0aOKAnSBvbmx5IGluIHRoZSB0ZXJtIOKAnHNlYXJjaCBwYXRo4oCdIChx LnYuKS4KCkZpbGUtTmFtZSBDb21wb25lbnQKICAgICBBIGZpbGUtbmFtZSBjb21wb25lbnQgbmFt ZXMgYSBmaWxlIGRpcmVjdGx5IHdpdGhpbiBhIHBhcnRpY3VsYXIKICAgICBkaXJlY3RvcnkuICBP biBHTlUgYW5kIFVuaXggc3lzdGVtcywgYSBmaWxlIG5hbWUgaXMgYSBzZXF1ZW5jZSBvZgogICAg IGZpbGUtbmFtZSBjb21wb25lbnRzLCBzZXBhcmF0ZWQgYnkgc2xhc2hlcy4gIEZvciBleGFtcGxl LCDigJhmb28vYmFy4oCZCiAgICAgaXMgYSBmaWxlIG5hbWUgY29udGFpbmluZyB0d28gY29tcG9u ZW50cywg4oCYZm9v4oCZIGFuZCDigJhiYXLigJk7IGl0CiAgICAgcmVmZXJzIHRvIHRoZSBmaWxl IG5hbWVkIOKAmGJhcuKAmSBpbiB0aGUgZGlyZWN0b3J5IG5hbWVkIOKAmGZvb+KAmSBpbiB0aGUK ICAgICBjdXJyZW50IGRpcmVjdG9yeS4gIE1TLURPUy9NUy1XaW5kb3dzIGZpbGUgbmFtZXMgY2Fu IGFsc28gdXNlCiAgICAgYmFja3NsYXNoZXMgdG8gc2VwYXJhdGUgY29tcG9uZW50cywgYXMgaW4g 4oCYZm9vXGJhcuKAmS4KCkZpbGwgUHJlZml4CiAgICAgVGhlIGZpbGwgcHJlZml4IGlzIGEgc3Ry aW5nIHRoYXQgc2hvdWxkIGJlIGV4cGVjdGVkIGF0IHRoZQogICAgIGJlZ2lubmluZyBvZiBlYWNo IGxpbmUgd2hlbiBmaWxsaW5nIGlzIGRvbmUuICBJdCBpcyBub3QgcmVnYXJkZWQgYXMKICAgICBw YXJ0IG9mIHRoZSB0ZXh0IHRvIGJlIGZpbGxlZC4gICpOb3RlIEZpbGxpbmc6Oi4KCkZpbGxpbmcK ICAgICBGaWxsaW5nIHRleHQgbWVhbnMgYWRqdXN0aW5nIHRoZSBwb3NpdGlvbiBvZiBsaW5lLWJy ZWFrcyB0byBzaGlmdAogICAgIHRleHQgYmV0d2VlbiBjb25zZWN1dGl2ZSBsaW5lcywgc28gdGhh dCBhbGwgdGhlIGxpbmVzIGFyZQogICAgIGFwcHJveGltYXRlbHkgdGhlIHNhbWUgbGVuZ3RoLiAg Kk5vdGUgRmlsbGluZzo6LiAgU29tZSBvdGhlcgogICAgIGVkaXRvcnMgY2FsbCB0aGlzIGZlYXR1 cmUg4oCcbGluZSB3cmFwcGluZ+KAnS4KCkZvbnQgTG9jawogICAgIEZvbnQgTG9jayBpcyBhIG1v ZGUgdGhhdCBoaWdobGlnaHRzIHBhcnRzIG9mIGJ1ZmZlciB0ZXh0IGluCiAgICAgZGlmZmVyZW50 IGZhY2VzLCBhY2NvcmRpbmcgdG8gdGhlIHN5bnRheC4gIFNvbWUgb3RoZXIgZWRpdG9ycyByZWZl cgogICAgIHRvIHRoaXMgYXMg4oCcc3ludGF4IGhpZ2hsaWdodGluZ+KAnS4gIEZvciBleGFtcGxl LCBhbGwgY29tbWVudHMgKHEudi4pCiAgICAgbWlnaHQgYmUgY29sb3JlZCByZWQuICAqTm90ZSBG b250IExvY2s6Oi4KCkZvbnRzZXQKICAgICBBIGZvbnRzZXQgaXMgYSBuYW1lZCBjb2xsZWN0aW9u IG9mIGZvbnRzLiAgQSBmb250c2V0IHNwZWNpZmljYXRpb24KICAgICBsaXN0cyBjaGFyYWN0ZXIg c2V0cyBhbmQgd2hpY2ggZm9udCB0byB1c2UgdG8gZGlzcGxheSBlYWNoIG9mIHRoZW0uCiAgICAg Rm9udHNldHMgbWFrZSBpdCBlYXN5IHRvIGNoYW5nZSBzZXZlcmFsIGZvbnRzIGF0IG9uY2UgYnkg c3BlY2lmeWluZwogICAgIHRoZSBuYW1lIG9mIGEgZm9udHNldCwgcmF0aGVyIHRoYW4gY2hhbmdp bmcgZWFjaCBmb250IHNlcGFyYXRlbHkuCiAgICAgKk5vdGUgRm9udHNldHM6Oi4KCkZvcm1mZWVk IENoYXJhY3RlcgogICAgICpOb3RlIEdsb3NzYXJ5LS0tUGFnZTo6LgoKRnJhbWUKICAgICBBIGZy YW1lIGlzIGEgcmVjdGFuZ3VsYXIgY2x1c3RlciBvZiBFbWFjcyB3aW5kb3dzLiAgRW1hY3Mgc3Rh cnRzCiAgICAgb3V0IHdpdGggb25lIGZyYW1lLCBidXQgeW91IGNhbiBjcmVhdGUgbW9yZS4gIFlv dSBjYW4gc3ViZGl2aWRlCiAgICAgZWFjaCBmcmFtZSBpbnRvIEVtYWNzIHdpbmRvd3MgKHEudi4p LiAgV2hlbiB5b3UgYXJlIHVzaW5nIGEgd2luZG93CiAgICAgc3lzdGVtIChxLnYuKSwgbW9yZSB0 aGFuIG9uZSBmcmFtZSBjYW4gYmUgdmlzaWJsZSBhdCB0aGUgc2FtZSB0aW1lLgogICAgICpOb3Rl IEZyYW1lczo6LiAgU29tZSBvdGhlciBlZGl0b3JzIHVzZSB0aGUgdGVybSDigJx3aW5kb3figJ0g Zm9yIHRoaXMsCiAgICAgYnV0IGluIEVtYWNzIGEgd2luZG93IG1lYW5zIHNvbWV0aGluZyBlbHNl LgoKRnJlZSBTb2Z0d2FyZQogICAgIEZyZWUgc29mdHdhcmUgaXMgc29mdHdhcmUgdGhhdCBnaXZl cyB5b3UgdGhlIGZyZWVkb20gdG8gc2hhcmUsCiAgICAgc3R1ZHkgYW5kIG1vZGlmeSBpdC4gIEVt YWNzIGlzIGZyZWUgc29mdHdhcmUsIHBhcnQgb2YgdGhlIEdOVQogICAgIHByb2plY3QgKHEudi4p LCBhbmQgZGlzdHJpYnV0ZWQgdW5kZXIgYSBjb3B5bGVmdCAocS52LikgbGljZW5zZQogICAgIGNh bGxlZCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICAqTm90ZSBDb3B5aW5nOjouCgpG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KICAgICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u IChGU0YpIGlzIGEgY2hhcml0YWJsZSBmb3VuZGF0aW9uCiAgICAgZGVkaWNhdGVkIHRvIHByb21v dGluZyB0aGUgZGV2ZWxvcG1lbnQgb2YgZnJlZSBzb2Z0d2FyZSAocS52LikuCiAgICAgRm9yIG1v cmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgRlNGIHdlYnNpdGUgKGh0dHBzOi8vZnNmLm9yZy8pLgoK RnJpbmdlCiAgICAgT24gYSBncmFwaGljYWwgZGlzcGxheSAocS52LiksIHRoZXJl4oCZcyBhIG5h cnJvdyBwb3J0aW9uIG9mIHRoZQogICAgIGZyYW1lIChxLnYuKSBiZXR3ZWVuIHRoZSB0ZXh0IGFy ZWEgYW5kIHRoZSB3aW5kb3figJlzIGJvcmRlci4gIFRoZXNlCiAgICAg4oCcZnJpbmdlc+KAnSBh cmUgdXNlZCB0byBkaXNwbGF5IHN5bWJvbHMgdGhhdCBwcm92aWRlIGluZm9ybWF0aW9uCiAgICAg YWJvdXQgdGhlIGJ1ZmZlciB0ZXh0ICgqbm90ZSBGcmluZ2VzOjopLiAgRW1hY3MgZGlzcGxheXMg dGhlIGZyaW5nZQogICAgIHVzaW5nIGEgc3BlY2lhbCBmYWNlIChxLnYuKSBjYWxsZWQg4oCYZnJp bmdl4oCZLiAgKk5vdGUgZnJpbmdlOiBGYWNlcy4KCkZTRgogICAgICpOb3RlIEdsb3NzYXJ5LS0t RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOjouCgpGVFAKICAgICBGVFAgaXMgYW4gYWNyb255bSBm b3IgRmlsZSBUcmFuc2ZlciBQcm90b2NvbC4gIFRoaXMgaXMgb25lIHN0YW5kYXJkCiAgICAgbWV0 aG9kIGZvciByZXRyaWV2aW5nIHJlbW90ZSBmaWxlcyAocS52LikuCgpGdW5jdGlvbiBLZXkKICAg ICBBIGZ1bmN0aW9uIGtleSBpcyBhIGtleSBvbiB0aGUga2V5Ym9hcmQgdGhhdCBzZW5kcyBpbnB1 dCBidXQgZG9lcwogICAgIG5vdCBjb3JyZXNwb25kIHRvIGFueSBjaGFyYWN0ZXIuICAqTm90ZSBG dW5jdGlvbiBLZXlzOjouCgpHbG9iYWwKICAgICBHbG9iYWwgbWVhbnMg4oCcaW5kZXBlbmRlbnQg b2YgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQ7IGluIGVmZmVjdAogICAgIHRocm91Z2hvdXQgRW1h Y3PigJ0uICBJdCBpcyB0aGUgb3Bwb3NpdGUgb2YgbG9jYWwgKHEudi4pLiAgUGFydGljdWxhcgog ICAgIGV4YW1wbGVzIG9mIHRoZSB1c2Ugb2Yg4oCcZ2xvYmFs4oCdIGFwcGVhciBiZWxvdy4KCkds b2JhbCBBYmJyZXYKICAgICBBIGdsb2JhbCBkZWZpbml0aW9uIG9mIGFuIGFiYnJldiAocS52Likg aXMgZWZmZWN0aXZlIGluIGFsbCBtYWpvcgogICAgIG1vZGVzIHRoYXQgZG8gbm90IGhhdmUgbG9j YWwgKHEudi4pIGRlZmluaXRpb25zIGZvciB0aGUgc2FtZQogICAgIGFiYnJldi4gICpOb3RlIEFi YnJldnM6Oi4KCkdsb2JhbCBLZXltYXAKICAgICBUaGUgZ2xvYmFsIGtleW1hcCAocS52LikgY29u dGFpbnMga2V5IGJpbmRpbmdzIHRoYXQgYXJlIGluIGVmZmVjdAogICAgIGV2ZXJ5d2hlcmUsIGV4 Y2VwdCB3aGVuIG92ZXJyaWRkZW4gYnkgbG9jYWwga2V5IGJpbmRpbmdzIGluIGEgbWFqb3IKICAg ICBtb2Rl4oCZcyBsb2NhbCBrZXltYXAgKHEudi4pLiAgKk5vdGUgS2V5bWFwczo6LgoKR2xvYmFs IE1hcmsgUmluZwogICAgIFRoZSBnbG9iYWwgbWFyayByaW5nIHJlY29yZHMgdGhlIHNlcmllcyBv ZiBidWZmZXJzIHlvdSBoYXZlCiAgICAgcmVjZW50bHkgc2V0IGEgbWFyayAocS52LikgaW4uICBJ biBtYW55IGNhc2VzIHlvdSBjYW4gdXNlIHRoaXMgdG8KICAgICBiYWNrdHJhY2sgdGhyb3VnaCBi dWZmZXJzIHlvdSBoYXZlIGJlZW4gZWRpdGluZywgb3IgaW4gd2hpY2ggeW91CiAgICAgaGF2ZSBm b3VuZCB0YWdzICgqbm90ZSBHbG9zc2FyeS0tLVRhZ3MgVGFibGU6OikuICAqTm90ZSBHbG9iYWwg TWFyawogICAgIFJpbmc6Oi4KCkdsb2JhbCBTdWJzdGl0dXRpb24KICAgICBHbG9iYWwgc3Vic3Rp dHV0aW9uIG1lYW5zIHJlcGxhY2luZyBlYWNoIG9jY3VycmVuY2Ugb2Ygb25lIHN0cmluZwogICAg IGJ5IGFub3RoZXIgc3RyaW5nIHRocm91Z2hvdXQgYSBsYXJnZSBhbW91bnQgb2YgdGV4dC4gICpO b3RlCiAgICAgUmVwbGFjZTo6LgoKR2xvYmFsIFZhcmlhYmxlCiAgICAgVGhlIGdsb2JhbCB2YWx1 ZSBvZiBhIHZhcmlhYmxlIChxLnYuKSB0YWtlcyBlZmZlY3QgaW4gYWxsIGJ1ZmZlcnMKICAgICB0 aGF0IGRvIG5vdCBoYXZlIHRoZWlyIG93biBsb2NhbCAocS52LikgdmFsdWVzIGZvciB0aGUgdmFy aWFibGUuCiAgICAgKk5vdGUgVmFyaWFibGVzOjouCgpHTlUKICAgICBHTlUgaXMgYSByZWN1cnNp dmUgYWNyb255bSBmb3IgR05V4oCZcyBOb3QgVW5peCwgYW5kIGl0IHJlZmVycyB0byBhCiAgICAg VW5peC1jb21wYXRpYmxlIG9wZXJhdGluZyBzeXN0ZW0gd2hpY2ggaXMgZnJlZSBzb2Z0d2FyZSAo cS52LikuCiAgICAgKk5vdGUgTWFuaWZlc3RvOjouICBHTlUgaXMgbm9ybWFsbHkgdXNlZCB3aXRo IExpbnV4IGFzIHRoZSBrZXJuZWwKICAgICBzaW5jZSBMaW51eCB3b3JrcyBiZXR0ZXIgdGhhbiB0 aGUgR05VIGtlcm5lbC4gIEZvciBtb3JlCiAgICAgaW5mb3JtYXRpb24sIHNlZSB0aGUgR05VIHdl YnNpdGUgKGh0dHBzOi8vd3d3LmdudS5vcmcvKS4KCkdyYXBoaWMgQ2hhcmFjdGVyCiAgICAgR3Jh cGhpYyBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBhc3NpZ25lZCBwaWN0b3JpYWwgaW1hZ2VzIHJhdGhl ciB0aGFuCiAgICAganVzdCBuYW1lcy4gIEFsbCB0aGUgbm9uLU1ldGEgKHEudi4pIGNoYXJhY3Rl cnMgZXhjZXB0IGZvciB0aGUKICAgICBDb250cm9sIChxLnYuKSBjaGFyYWN0ZXJzIGFyZSBncmFw aGljIGNoYXJhY3RlcnMuICBUaGVzZSBpbmNsdWRlCiAgICAgbGV0dGVycywgZGlnaXRzLCBwdW5j dHVhdGlvbiwgYW5kIHNwYWNlczsgdGhleSBkbyBub3QgaW5jbHVkZSA8UkVUPgogICAgIG9yIDxF U0M+LiAgSW4gRW1hY3MsIHR5cGluZyBhIGdyYXBoaWMgY2hhcmFjdGVyIGluc2VydHMgdGhhdAog ICAgIGNoYXJhY3RlciAoaW4gb3JkaW5hcnkgZWRpdGluZyBtb2RlcykuICAqTm90ZSBJbnNlcnRp bmcgVGV4dDo6LgoKR3JhcGhpY2FsIERpc3BsYXkKICAgICBBIGdyYXBoaWNhbCBkaXNwbGF5IGlz IG9uZSB0aGF0IGNhbiBkaXNwbGF5IGltYWdlcyBhbmQgbXVsdGlwbGUKICAgICBmb250cy4gIFVz dWFsbHkgaXQgYWxzbyBoYXMgYSB3aW5kb3cgc3lzdGVtIChxLnYuKS4KCkhpZ2hsaWdodGluZwog ICAgIEhpZ2hsaWdodGluZyB0ZXh0IG1lYW5zIGRpc3BsYXlpbmcgaXQgd2l0aCBhIGRpZmZlcmVu dCBmb3JlZ3JvdW5kCiAgICAgYW5kL29yIGJhY2tncm91bmQgY29sb3IgdG8gbWFrZSBpdCBzdGFu ZCBvdXQgZnJvbSB0aGUgcmVzdCBvZiB0aGUKICAgICB0ZXh0IGluIHRoZSBidWZmZXIuCgogICAg IEVtYWNzIHVzZXMgaGlnaGxpZ2h0aW5nIGluIHNldmVyYWwgd2F5cy4gIEl0IGhpZ2hsaWdodHMg dGhlIHJlZ2lvbgogICAgIHdoZW5ldmVyIGl0IGlzIGFjdGl2ZSAoKm5vdGUgTWFyazo6KS4gIElu Y3JlbWVudGFsIHNlYXJjaCBhbHNvCiAgICAgaGlnaGxpZ2h0cyBtYXRjaGVzICgqbm90ZSBJbmNy ZW1lbnRhbCBTZWFyY2g6OikuICAqTm90ZQogICAgIEdsb3NzYXJ5LS0tRm9udCBMb2NrOjouCgpI YXJkY29weQogICAgIEhhcmRjb3B5IG1lYW5zIHByaW50ZWQgb3V0cHV0LiAgRW1hY3MgaGFzIHZh cmlvdXMgY29tbWFuZHMgZm9yCiAgICAgcHJpbnRpbmcgdGhlIGNvbnRlbnRzIG9mIEVtYWNzIGJ1 ZmZlcnMuICAqTm90ZSBQcmludGluZzo6LgoKPEhFTFA+CiAgICAgPEhFTFA+IGlzIHRoZSBFbWFj cyBuYW1lIGZvciDigJhDLWjigJkgb3IgPEYxPi4gIFlvdSBjYW4gdHlwZSA8SEVMUD4gYXQKICAg ICBhbnkgdGltZSB0byBhc2sgd2hhdCBvcHRpb25zIHlvdSBoYXZlLCBvciB0byBhc2sgd2hhdCBh IGNvbW1hbmQKICAgICBkb2VzLiAgKk5vdGUgSGVscDo6LgoKSGVscCBFY2hvCiAgICAgSGVscCBl Y2hvIGlzIGEgc2hvcnQgbWVzc2FnZSBkaXNwbGF5ZWQgaW4gdGhlIGVjaG8gYXJlYSAocS52Likg d2hlbgogICAgIHRoZSBtb3VzZSBwb2ludGVyIGlzIGxvY2F0ZWQgb24gcG9ydGlvbnMgb2YgZGlz cGxheSB0aGF0IHJlcXVpcmUKICAgICBzb21lIGV4cGxhbmF0aW9ucy4gIEVtYWNzIGRpc3BsYXlz IGhlbHAgZWNobyBmb3IgbWVudSBpdGVtcywgcGFydHMKICAgICBvZiB0aGUgbW9kZSBsaW5lLCB0 b29sLWJhciBidXR0b25zLCBldGMuICBPbiBncmFwaGljYWwgZGlzcGxheXMsCiAgICAgdGhlIG1l c3NhZ2VzIGNhbiBiZSBkaXNwbGF5ZWQgYXMgdG9vbHRpcHMgKHEudi4pLiAgKk5vdGUKICAgICBU b29sdGlwczo6LgoKSG9tZSBEaXJlY3RvcnkKICAgICBZb3VyIGhvbWUgZGlyZWN0b3J5IGNvbnRh aW5zIHlvdXIgcGVyc29uYWwgZmlsZXMuICBPbiBhIG11bHRpLXVzZXIKICAgICBHTlUgb3IgVW5p eCBzeXN0ZW0sIGVhY2ggdXNlciBoYXMgaGlzIG9yIGhlciBvd24gaG9tZSBkaXJlY3RvcnkuCiAg ICAgV2hlbiB5b3Ugc3RhcnQgYSBuZXcgbG9naW4gc2Vzc2lvbiwgeW91ciBob21lIGRpcmVjdG9y eSBpcyB0aGUKICAgICBkZWZhdWx0IGRpcmVjdG9yeSBpbiB3aGljaCB0byBzdGFydC4gIEEgc3Rh bmRhcmQgc2hvcnRoYW5kIGZvciB5b3VyCiAgICAgaG9tZSBkaXJlY3RvcnkgaXMg4oCYfuKAmS4g IFNpbWlsYXJseSwg4oCYflVTRVLigJkgcmVwcmVzZW50cyB0aGUgaG9tZQogICAgIGRpcmVjdG9y eSBvZiBzb21lIG90aGVyIHVzZXIuCgpIb29rCiAgICAgQSBob29rIGlzIGEgbGlzdCBvZiBmdW5j dGlvbnMgdG8gYmUgY2FsbGVkIG9uIHNwZWNpZmljIG9jY2FzaW9ucywKICAgICBzdWNoIGFzIHNh dmluZyBhIGJ1ZmZlciBpbiBhIGZpbGUsIG1ham9yIG1vZGUgYWN0aXZhdGlvbiwgZXRjLiAgQnkK ICAgICBjdXN0b21pemluZyB0aGUgdmFyaW91cyBob29rcywgeW91IGNhbiBtb2RpZnkgRW1hY3Pi gJlzIGJlaGF2aW9yCiAgICAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb2YgaXRzIGNvZGUuICAqTm90 ZSBIb29rczo6LgoKSHlwZXIKICAgICBIeXBlciBpcyB0aGUgbmFtZSBvZiBhIG1vZGlmaWVyIGJp dCB0aGF0IGEga2V5Ym9hcmQgaW5wdXQgY2hhcmFjdGVyCiAgICAgbWF5IGhhdmUuICBUbyBtYWtl IGEgY2hhcmFjdGVyIEh5cGVyLCB0eXBlIGl0IHdoaWxlIGhvbGRpbmcgZG93bgogICAgIHRoZSA8 SHlwZXI+IGtleS4gIFN1Y2ggY2hhcmFjdGVycyBhcmUgZ2l2ZW4gbmFtZXMgdGhhdCBzdGFydCB3 aXRoCiAgICAg4oCYSHlwZXIt4oCZICh1c3VhbGx5IHdyaXR0ZW4g4oCYSC3igJkgZm9yIHNob3J0 KS4gICpOb3RlIE1vZGlmaWVyIEtleXM6Oi4KCmkuZS4KICAgICBTaG9ydCBmb3Ig4oCcaWQgZXN0 4oCdIGluIExhdGluLCB3aGljaCBtZWFucyDigJx0aGF0IGlz4oCdLgoKSWZmCiAgICAg4oCcSWZm 4oCdIG1lYW5zIOKAnGlmIGFuZCBvbmx5IGlm4oCdLiAgVGhpcyB0ZXJtaW5vbG9neSBjb21lcyBm cm9tCiAgICAgbWF0aGVtYXRpY3MuICBUcnkgdG8gYXZvaWQgdXNpbmcgdGhpcyB0ZXJtIGluIGRv Y3VtZW50YXRpb24sIHNpbmNlCiAgICAgbWFueSBhcmUgdW5mYW1pbGlhciB3aXRoIGl0IGFuZCBt aXN0YWtlIGl0IGZvciBhIHR5cG8uCgpJbmJveAogICAgIEFuIGluYm94IGlzIGEgZmlsZSBpbiB3 aGljaCBtYWlsIGlzIGRlbGl2ZXJlZCBieSB0aGUgb3BlcmF0aW5nCiAgICAgc3lzdGVtLiAgUm1h aWwgdHJhbnNmZXJzIG1haWwgZnJvbSBpbmJveGVzIHRvIFJtYWlsIGZpbGVzIGluIHdoaWNoCiAg ICAgdGhlIG1haWwgaXMgdGhlbiBzdG9yZWQgcGVybWFuZW50bHkgb3IgdW50aWwgZXhwbGljaXRs eSBkZWxldGVkLgogICAgICpOb3RlIFJtYWlsIEluYm94OjouCgpJbmNyZW1lbnRhbCBTZWFyY2gK ICAgICBFbWFjcyBwcm92aWRlcyBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggZmFjaWxpdHksIHdoZXJl YnkgRW1hY3MgYmVnaW5zCiAgICAgc2VhcmNoaW5nIGZvciBhIHN0cmluZyBhcyBzb29uIGFzIHlv dSB0eXBlIHRoZSBmaXJzdCBjaGFyYWN0ZXIuICBBcwogICAgIHlvdSB0eXBlIG1vcmUgY2hhcmFj dGVycywgaXQgcmVmaW5lcyB0aGUgc2VhcmNoLiAgKk5vdGUgSW5jcmVtZW50YWwKICAgICBTZWFy Y2g6Oi4KCkluZGVudGF0aW9uCiAgICAgSW5kZW50YXRpb24gbWVhbnMgYmxhbmsgc3BhY2UgYXQg dGhlIGJlZ2lubmluZyBvZiBhIGxpbmUuICBNb3N0CiAgICAgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Vz IGhhdmUgY29udmVudGlvbnMgZm9yIHVzaW5nIGluZGVudGF0aW9uIHRvCiAgICAgaWxsdW1pbmF0 ZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBwcm9ncmFtLCBhbmQgRW1hY3MgaGFzIHNwZWNpYWwKICAg ICBjb21tYW5kcyB0byBhZGp1c3QgaW5kZW50YXRpb24uICAqTm90ZSBJbmRlbnRhdGlvbjo6LgoK SW5kaXJlY3QgQnVmZmVyCiAgICAgQW4gaW5kaXJlY3QgYnVmZmVyIGlzIGEgYnVmZmVyIHRoYXQg c2hhcmVzIHRoZSB0ZXh0IG9mIGFub3RoZXIKICAgICBidWZmZXIsIGNhbGxlZCBpdHMgYmFzZSBi dWZmZXIgKHEudi4pLiAgKk5vdGUgSW5kaXJlY3QgQnVmZmVyczo6LgoKSW5mbwogICAgIEluZm8g aXMgdGhlIGh5cGVydGV4dCBmb3JtYXQgdXNlZCBieSB0aGUgR05VIHByb2plY3QgZm9yIHdyaXRp bmcKICAgICBkb2N1bWVudGF0aW9uLgoKSW5wdXQgRXZlbnQKICAgICBBbiBpbnB1dCBldmVudCBy ZXByZXNlbnRzLCB3aXRoaW4gRW1hY3MsIG9uZSBhY3Rpb24gdGFrZW4gYnkgdGhlCiAgICAgdXNl ciBvbiB0aGUgdGVybWluYWwuICBJbnB1dCBldmVudHMgaW5jbHVkZSB0eXBpbmcgY2hhcmFjdGVy cywKICAgICB0eXBpbmcgZnVuY3Rpb24ga2V5cywgcHJlc3Npbmcgb3IgcmVsZWFzaW5nIG1vdXNl IGJ1dHRvbnMsIGFuZAogICAgIHN3aXRjaGluZyBiZXR3ZWVuIEVtYWNzIGZyYW1lcy4gICpOb3Rl IFVzZXIgSW5wdXQ6Oi4KCklucHV0IE1ldGhvZAogICAgIEFuIGlucHV0IG1ldGhvZCBpcyBhIHN5 c3RlbSBmb3IgZW50ZXJpbmcgbm9uLUFTQ0lJIHRleHQgY2hhcmFjdGVycwogICAgIGJ5IHR5cGlu ZyBzZXF1ZW5jZXMgb2YgQVNDSUkgY2hhcmFjdGVycyAocS52LikuICAqTm90ZSBJbnB1dAogICAg IE1ldGhvZHM6Oi4KCkluc2VydGlvbgogICAgIEluc2VydGlvbiBtZWFucyBhZGRpbmcgdGV4dCBp bnRvIHRoZSBidWZmZXIsIGVpdGhlciBmcm9tIHRoZQogICAgIGtleWJvYXJkIG9yIGZyb20gc29t ZSBvdGhlciBwbGFjZSBpbiBFbWFjcy4KCkludGVybG9ja2luZwogICAgICpOb3RlIEdsb3NzYXJ5 LS0tRmlsZSBMb2NraW5nOjouCgpJc2VhcmNoCiAgICAgKk5vdGUgR2xvc3NhcnktLS1JbmNyZW1l bnRhbCBTZWFyY2g6Oi4KCkp1c3RpZmljYXRpb24KICAgICBKdXN0aWZpY2F0aW9uIG1lYW5zIGFk ZGluZyBleHRyYSBzcGFjZXMgd2l0aGluIGxpbmVzIG9mIHRleHQgaW4KICAgICBvcmRlciB0byBh ZGp1c3QgdGhlIHBvc2l0aW9uIG9mIHRoZSB0ZXh0IGVkZ2VzLiAgKk5vdGUgRmlsbAogICAgIENv bW1hbmRzOjouCgpLZXkgQmluZGluZwogICAgICpOb3RlIEdsb3NzYXJ5LS0tQmluZGluZzo6LgoK S2V5Ym9hcmQgTWFjcm8KICAgICBLZXlib2FyZCBtYWNyb3MgYXJlIGEgd2F5IG9mIGRlZmluaW5n IG5ldyBFbWFjcyBjb21tYW5kcyBmcm9tCiAgICAgc2VxdWVuY2VzIG9mIGV4aXN0aW5nIG9uZXMs IHdpdGggbm8gbmVlZCB0byB3cml0ZSBhIExpc3AgcHJvZ3JhbS4KICAgICBZb3UgY2FuIHVzZSBh IG1hY3JvIHRvIHJlY29yZCBhIHNlcXVlbmNlIG9mIGNvbW1hbmRzLCB0aGVuIHBsYXkKICAgICB0 aGVtIGJhY2sgYXMgbWFueSB0aW1lcyBhcyB5b3UgbGlrZS4gICpOb3RlIEtleWJvYXJkIE1hY3Jv czo6LgoKS2V5Ym9hcmQgU2hvcnRjdXQKICAgICBBIGtleWJvYXJkIHNob3J0Y3V0IGlzIGEga2V5 IHNlcXVlbmNlIChxLnYuKSB0aGF0IGludm9rZXMgYQogICAgIGNvbW1hbmQuICBXaGF0IHNvbWUg cHJvZ3JhbXMgY2FsbCDigJxhc3NpZ25pbmcgYSBrZXlib2FyZCBzaG9ydGN1dOKAnSwKICAgICBF bWFjcyBjYWxscyDigJxiaW5kaW5nIGEga2V5IHNlcXVlbmNl4oCdLiAgKk5vdGUgR2xvc3Nhcnkt LS1CaW5kaW5nOjouCgpLZXkgU2VxdWVuY2UKICAgICBBIGtleSBzZXF1ZW5jZSAoa2V5LCBmb3Ig c2hvcnQpIGlzIGEgc2VxdWVuY2Ugb2YgaW5wdXQgZXZlbnRzCiAgICAgKHEudi4pIHRoYXQgYXJl IG1lYW5pbmdmdWwgYXMgYSBzaW5nbGUgdW5pdC4gIElmIHRoZSBrZXkgc2VxdWVuY2UKICAgICBp cyBlbm91Z2ggdG8gc3BlY2lmeSBvbmUgYWN0aW9uLCBpdCBpcyBhIGNvbXBsZXRlIGtleSAocS52 Lik7IGlmIGl0CiAgICAgaXMgbm90IGVub3VnaCwgaXQgaXMgYSBwcmVmaXgga2V5IChxLnYuKS4g ICpOb3RlIEtleXM6Oi4KCktleW1hcAogICAgIFRoZSBrZXltYXAgaXMgdGhlIGRhdGEgc3RydWN0 dXJlIHRoYXQgcmVjb3JkcyB0aGUgYmluZGluZ3MgKHEudi4pCiAgICAgb2Yga2V5IHNlcXVlbmNl cyB0byB0aGUgY29tbWFuZHMgdGhhdCB0aGV5IHJ1bi4gIEZvciBleGFtcGxlLCB0aGUKICAgICBn bG9iYWwga2V5bWFwIGJpbmRzIHRoZSBjaGFyYWN0ZXIg4oCYQy1u4oCZIHRvIHRoZSBjb21tYW5k IGZ1bmN0aW9uCiAgICAg4oCYbmV4dC1saW5l4oCZLiAgKk5vdGUgS2V5bWFwczo6LgoKS2V5Ym9h cmQgVHJhbnNsYXRpb24gVGFibGUKICAgICBUaGUga2V5Ym9hcmQgdHJhbnNsYXRpb24gdGFibGUg aXMgYW4gYXJyYXkgdGhhdCB0cmFuc2xhdGVzIHRoZQogICAgIGNoYXJhY3RlciBjb2RlcyB0aGF0 IGNvbWUgZnJvbSB0aGUgdGVybWluYWwgaW50byB0aGUgY2hhcmFjdGVyCiAgICAgY29kZXMgdGhh dCBtYWtlIHVwIGtleSBzZXF1ZW5jZXMuCgpLaWxsIFJpbmcKICAgICBUaGUga2lsbCByaW5nIGlz IHdoZXJlIGFsbCB0ZXh0IHlvdSBoYXZlIGtpbGxlZCAoKm5vdGUKICAgICBHbG9zc2FyeS0tLUtp bGxpbmc6OikgcmVjZW50bHkgaXMgc2F2ZWQuICBZb3UgY2FuIHJlaW5zZXJ0IGFueSBvZgogICAg IHRoZSBraWxsZWQgdGV4dCBzdGlsbCBpbiB0aGUgcmluZzsgdGhpcyBpcyBjYWxsZWQgeWFua2lu ZyAocS52LikuCiAgICAgKk5vdGUgWWFua2luZzo6LgoKS2lsbGluZwogICAgIEtpbGxpbmcgbWVh bnMgZXJhc2luZyB0ZXh0IGFuZCBzYXZpbmcgaXQgb24gdGhlIGtpbGwgcmluZyBzbyBpdCBjYW4K ICAgICBiZSB5YW5rZWQgKHEudi4pIGxhdGVyLiAgU29tZSBvdGhlciBzeXN0ZW1zIGNhbGwgdGhp cyDigJxjdXR0aW5n4oCdLgogICAgIE1vc3QgRW1hY3MgY29tbWFuZHMgdGhhdCBlcmFzZSB0ZXh0 IHBlcmZvcm0ga2lsbGluZywgYXMgb3Bwb3NlZCB0bwogICAgIGRlbGV0aW9uIChxLnYuKS4gICpO b3RlIEtpbGxpbmc6Oi4KCktpbGxpbmcgYSBKb2IKICAgICBLaWxsaW5nIGEgam9iIChzdWNoIGFz LCBhbiBpbnZvY2F0aW9uIG9mIEVtYWNzKSBtZWFucyBtYWtpbmcgaXQKICAgICBjZWFzZSB0byBl eGlzdC4gIEFueSBkYXRhIHdpdGhpbiBpdCwgaWYgbm90IHNhdmVkIGluIGEgZmlsZSwgaXMKICAg ICBsb3N0LiAgKk5vdGUgRXhpdGluZzo6LgoKTGFuZ3VhZ2UgRW52aXJvbm1lbnQKICAgICBZb3Vy IGNob2ljZSBvZiBsYW5ndWFnZSBlbnZpcm9ubWVudCBzcGVjaWZpZXMgZGVmYXVsdHMgZm9yIHRo ZQogICAgIGlucHV0IG1ldGhvZCAocS52LikgYW5kIGNvZGluZyBzeXN0ZW0gKHEudi4pLiAgKk5v dGUgTGFuZ3VhZ2UKICAgICBFbnZpcm9ubWVudHM6Oi4gIFRoZXNlIGRlZmF1bHRzIGFyZSByZWxl dmFudCBpZiB5b3UgZWRpdCBub24tQVNDSUkKICAgICB0ZXh0ICgqbm90ZSBJbnRlcm5hdGlvbmFs OjopLgoKTGluZSBXcmFwcGluZwogICAgICpOb3RlIEdsb3NzYXJ5LS0tRmlsbGluZzo6LgoKTGlz cAogICAgIExpc3AgaXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZS4gIE1vc3Qgb2YgRW1hY3MgaXMg d3JpdHRlbiBpbiBhCiAgICAgZGlhbGVjdCBvZiBMaXNwLCBjYWxsZWQgRW1hY3MgTGlzcCwgd2hp Y2ggaXMgZXh0ZW5kZWQgd2l0aCBzcGVjaWFsCiAgICAgZmVhdHVyZXMgdGhhdCBtYWtlIGl0IGVz cGVjaWFsbHkgc3VpdGFibGUgZm9yIHRleHQgZWRpdGluZyB0YXNrcy4KCkxpc3QKICAgICBBIGxp c3QgaXMsIGFwcHJveGltYXRlbHksIGEgdGV4dCBzdHJpbmcgYmVnaW5uaW5nIHdpdGggYW4gb3Bl bgogICAgIHBhcmVudGhlc2lzIGFuZCBlbmRpbmcgd2l0aCB0aGUgbWF0Y2hpbmcgY2xvc2UgcGFy ZW50aGVzaXMuICBJbiBDCiAgICAgbW9kZSBhbmQgb3RoZXIgbm9uLUxpc3AgbW9kZXMsIGdyb3Vw aW5ncyBzdXJyb3VuZGVkIGJ5IG90aGVyIGtpbmRzCiAgICAgb2YgbWF0Y2hlZCBkZWxpbWl0ZXJz IGFwcHJvcHJpYXRlIHRvIHRoZSBsYW5ndWFnZSwgc3VjaCBhcyBicmFjZXMsCiAgICAgYXJlIGFs c28gY29uc2lkZXJlZCBsaXN0cy4gIEVtYWNzIGhhcyBzcGVjaWFsIGNvbW1hbmRzIGZvciBtYW55 CiAgICAgb3BlcmF0aW9ucyBvbiBsaXN0cy4gICpOb3RlIE1vdmluZyBieSBQYXJlbnM6Oi4KCkxv Y2FsCiAgICAgTG9jYWwgbWVhbnMg4oCcaW4gZWZmZWN0IG9ubHkgaW4gYSBwYXJ0aWN1bGFyIGNv bnRleHTigJ07IHRoZSByZWxldmFudAogICAgIGtpbmQgb2YgY29udGV4dCBpcyBhIHBhcnRpY3Vs YXIgZnVuY3Rpb24gZXhlY3V0aW9uLCBhIHBhcnRpY3VsYXIKICAgICBidWZmZXIsIG9yIGEgcGFy dGljdWxhciBtYWpvciBtb2RlLiAgSXQgaXMgdGhlIG9wcG9zaXRlIG9mIOKAnGdsb2JhbOKAnQog ICAgIChxLnYuKS4gIFNwZWNpZmljIHVzZXMgb2Yg4oCcbG9jYWzigJ0gaW4gRW1hY3MgdGVybWlu b2xvZ3kgYXBwZWFyCiAgICAgYmVsb3cuCgpMb2NhbCBBYmJyZXYKICAgICBBIGxvY2FsIGFiYnJl diBkZWZpbml0aW9uIGlzIGVmZmVjdGl2ZSBvbmx5IGlmIGEgcGFydGljdWxhciBtYWpvcgogICAg IG1vZGUgaXMgc2VsZWN0ZWQuICBJbiB0aGF0IG1ham9yIG1vZGUsIGl0IG92ZXJyaWRlcyBhbnkg Z2xvYmFsCiAgICAgZGVmaW5pdGlvbiBmb3IgdGhlIHNhbWUgYWJicmV2LiAgKk5vdGUgQWJicmV2 czo6LgoKTG9jYWwgS2V5bWFwCiAgICAgQSBsb2NhbCBrZXltYXAgaXMgdXNlZCBpbiBhIHBhcnRp Y3VsYXIgbWFqb3IgbW9kZTsgdGhlIGtleSBiaW5kaW5ncwogICAgIChxLnYuKSBpbiB0aGUgY3Vy cmVudCBsb2NhbCBrZXltYXAgb3ZlcnJpZGUgZ2xvYmFsIGJpbmRpbmdzIG9mIHRoZQogICAgIHNh bWUga2V5IHNlcXVlbmNlcy4gICpOb3RlIEtleW1hcHM6Oi4KCkxvY2FsIFZhcmlhYmxlCiAgICAg QSBsb2NhbCB2YWx1ZSBvZiBhIHZhcmlhYmxlIChxLnYuKSBhcHBsaWVzIHRvIG9ubHkgb25lIGJ1 ZmZlci4KICAgICAqTm90ZSBMb2NhbHM6Oi4KCuKAmE0t4oCZCiAgICAg4oCYTS3igJkgaW4gdGhl IG5hbWUgb2YgYSBjaGFyYWN0ZXIgaXMgYW4gYWJicmV2aWF0aW9uIGZvciA8TWV0YT4sIG9uZQog ICAgIG9mIHRoZSBtb2RpZmllciBrZXlzIHRoYXQgY2FuIGFjY29tcGFueSBhbnkgY2hhcmFjdGVy LiAgKk5vdGUgTS06CiAgICAgVXNlciBJbnB1dC4KCuKAmE0tQy3igJkKICAgICDigJhNLUMt4oCZ IGluIHRoZSBuYW1lIG9mIGEgY2hhcmFjdGVyIGlzIGFuIGFiYnJldmlhdGlvbiBmb3IKICAgICBD b250cm9sLU1ldGE7IGl0IG1lYW5zIHRoZSBzYW1lIHRoaW5nIGFzIOKAmEMtTS3igJkgKHEudi4p LgoK4oCYTS144oCZCiAgICAg4oCYTS144oCZIGlzIHRoZSBrZXkgc2VxdWVuY2UgdGhhdCBpcyB1 c2VkIHRvIGNhbGwgYW4gRW1hY3MgY29tbWFuZCBieQogICAgIG5hbWUuICBUaGlzIGlzIGhvdyB5 b3UgcnVuIGNvbW1hbmRzIHRoYXQgYXJlIG5vdCBib3VuZCB0byBrZXkKICAgICBzZXF1ZW5jZXMu ICAqTm90ZSBNLXg6IE0teC4KCk1haWwKICAgICBNYWlsIG1lYW5zIG1lc3NhZ2VzIHNlbnQgZnJv bSBvbmUgdXNlciB0byBhbm90aGVyIHRocm91Z2ggdGhlCiAgICAgY29tcHV0ZXIgc3lzdGVtLCB0 byBiZSByZWFkIGF0IHRoZSByZWNpcGllbnTigJlzIGNvbnZlbmllbmNlLiAgRW1hY3MKICAgICBo YXMgY29tbWFuZHMgZm9yIGNvbXBvc2luZyBhbmQgc2VuZGluZyBtYWlsLCBhbmQgZm9yIHJlYWRp bmcgYW5kCiAgICAgZWRpdGluZyB0aGUgbWFpbCB5b3UgaGF2ZSByZWNlaXZlZC4gICpOb3RlIFNl bmRpbmcgTWFpbDo6LiAgKk5vdGUKICAgICBSbWFpbDo6LCBmb3Igb25lIHdheSB0byByZWFkIG1h aWwgd2l0aCBFbWFjcy4KCk1haWwgQ29tcG9zaXRpb24gTWV0aG9kCiAgICAgQSBtYWlsIGNvbXBv c2l0aW9uIG1ldGhvZCBpcyBhIHByb2dyYW0gcnVubmFibGUgd2l0aGluIEVtYWNzIGZvcgogICAg IGVkaXRpbmcgYW5kIHNlbmRpbmcgYSBtYWlsIG1lc3NhZ2UuICBFbWFjcyBsZXRzIHlvdSBzZWxl Y3QgZnJvbQogICAgIHNldmVyYWwgYWx0ZXJuYXRpdmUgbWFpbCBjb21wb3NpdGlvbiBtZXRob2Rz LiAgKk5vdGUgTWFpbAogICAgIE1ldGhvZHM6Oi4KCk1ham9yIE1vZGUKICAgICBUaGUgRW1hY3Mg bWFqb3IgbW9kZXMgYXJlIGEgbXV0dWFsbHkgZXhjbHVzaXZlIHNldCBvZiBvcHRpb25zLCBlYWNo CiAgICAgb2Ygd2hpY2ggY29uZmlndXJlcyBFbWFjcyBmb3IgZWRpdGluZyBhIGNlcnRhaW4gc29y dCBvZiB0ZXh0LgogICAgIElkZWFsbHksIGVhY2ggcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgaGFzIGl0 cyBvd24gbWFqb3IgbW9kZS4gICpOb3RlCiAgICAgTWFqb3IgTW9kZXM6Oi4KCk1hcmdpbgogICAg IFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSB1c2FibGUgcGFydCBvZiBhIHdpbmRvdyAoaW5jbHVkaW5n IHRoZQogICAgIGZyaW5nZSkgYW5kIHRoZSB3aW5kb3cgZWRnZS4KCk1hcmsKICAgICBUaGUgbWFy ayBwb2ludHMgdG8gYSBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gIEl0IHNwZWNpZmllcyBvbmUgZW5k IG9mCiAgICAgdGhlIHJlZ2lvbiAocS52LiksIHBvaW50IGJlaW5nIHRoZSBvdGhlciBlbmQuICBN YW55IGNvbW1hbmRzCiAgICAgb3BlcmF0ZSBvbiBhbGwgdGhlIHRleHQgZnJvbSBwb2ludCB0byB0 aGUgbWFyay4gIEVhY2ggYnVmZmVyIGhhcwogICAgIGl0cyBvd24gbWFyay4gICpOb3RlIE1hcms6 Oi4KCk1hcmsgUmluZwogICAgIFRoZSBtYXJrIHJpbmcgaXMgdXNlZCB0byBob2xkIHNldmVyYWwg cmVjZW50IHByZXZpb3VzIGxvY2F0aW9ucyBvZgogICAgIHRoZSBtYXJrLCBpbiBjYXNlIHlvdSB3 YW50IHRvIG1vdmUgYmFjayB0byB0aGVtLiAgRWFjaCBidWZmZXIgaGFzCiAgICAgaXRzIG93biBt YXJrIHJpbmc7IGluIGFkZGl0aW9uLCB0aGVyZSBpcyBhIHNpbmdsZSBnbG9iYWwgbWFyayByaW5n CiAgICAgKHEudi4pLiAgKk5vdGUgTWFyayBSaW5nOjouCgpNZW51IEJhcgogICAgIFRoZSBtZW51 IGJhciBpcyBhIGxpbmUgYXQgdGhlIHRvcCBvZiBhbiBFbWFjcyBmcmFtZS4gIEl0IGNvbnRhaW5z CiAgICAgd29yZHMgeW91IGNhbiBjbGljayBvbiB3aXRoIHRoZSBtb3VzZSB0byBicmluZyB1cCBt ZW51cywgb3IgeW91IGNhbgogICAgIHVzZSBhIGtleWJvYXJkIGludGVyZmFjZSB0byBuYXZpZ2F0 ZSBpdC4gICpOb3RlIE1lbnUgQmFyczo6LgoKTWVzc2FnZQogICAgICpOb3RlIEdsb3NzYXJ5LS0t TWFpbDo6LgoKTWV0YQogICAgIE1ldGEgaXMgdGhlIG5hbWUgb2YgYSBtb2RpZmllciBiaXQgd2hp Y2ggeW91IGNhbiB1c2UgaW4gYSBjb21tYW5kCiAgICAgY2hhcmFjdGVyLiAgVG8gZW50ZXIgYSBt ZXRhIGNoYXJhY3RlciwgeW91IGhvbGQgZG93biB0aGUgPE1ldGE+IGtleQogICAgIHdoaWxlIHR5 cGluZyB0aGUgY2hhcmFjdGVyLiAgV2UgcmVmZXIgdG8gc3VjaCBjaGFyYWN0ZXJzIHdpdGggbmFt ZXMKICAgICB0aGF0IHN0YXJ0IHdpdGgg4oCYTWV0YS3igJkgKHVzdWFsbHkgd3JpdHRlbiDigJhN LeKAmSBmb3Igc2hvcnQpLiAgRm9yCiAgICAgZXhhbXBsZSwg4oCYTS084oCZIGlzIHR5cGVkIGJ5 IGhvbGRpbmcgZG93biA8TWV0YT4gYW5kIGF0IHRoZSBzYW1lIHRpbWUKICAgICB0eXBpbmcg4oCY POKAmSAod2hpY2ggaXRzZWxmIGlzIGRvbmUsIG9uIG1vc3QgdGVybWluYWxzLCBieSBob2xkaW5n CiAgICAgZG93biA8U0hJRlQ+IGFuZCB0eXBpbmcg4oCYLOKAmSkuICAqTm90ZSBNZXRhOiBVc2Vy IElucHV0LgoKICAgICBPbiBzb21lIHRlcm1pbmFscywgdGhlIDxNZXRhPiBrZXkgaXMgYWN0dWFs bHkgbGFiZWxlZCA8QWx0PiBvcgogICAgIDxFZGl0Pi4KCk1ldGEgQ2hhcmFjdGVyCiAgICAgQSBN ZXRhIGNoYXJhY3RlciBpcyBvbmUgd2hvc2UgY2hhcmFjdGVyIGNvZGUgaW5jbHVkZXMgdGhlIE1l dGEgYml0LgoKTWluaWJ1ZmZlcgogICAgIFRoZSBtaW5pYnVmZmVyIGlzIHRoZSB3aW5kb3cgdGhh dCBhcHBlYXJzIHdoZW4gbmVjZXNzYXJ5IGluc2lkZSB0aGUKICAgICBlY2hvIGFyZWEgKHEudi4p LCB1c2VkIGZvciByZWFkaW5nIGFyZ3VtZW50cyB0byBjb21tYW5kcy4gICpOb3RlCiAgICAgTWlu aWJ1ZmZlcjo6LgoKTWluaWJ1ZmZlciBIaXN0b3J5CiAgICAgVGhlIG1pbmlidWZmZXIgaGlzdG9y eSByZWNvcmRzIHRoZSB0ZXh0IHlvdSBoYXZlIHNwZWNpZmllZCBpbiB0aGUKICAgICBwYXN0IGZv ciBtaW5pYnVmZmVyIGFyZ3VtZW50cywgc28geW91IGNhbiBjb252ZW5pZW50bHkgdXNlIHRoZSBz YW1lCiAgICAgdGV4dCBhZ2Fpbi4gICpOb3RlIE1pbmlidWZmZXIgSGlzdG9yeTo6LgoKTWlub3Ig TW9kZQogICAgIEEgbWlub3IgbW9kZSBpcyBhbiBvcHRpb25hbCBmZWF0dXJlIG9mIEVtYWNzLCB3 aGljaCBjYW4gYmUgc3dpdGNoZWQKICAgICBvbiBvciBvZmYgaW5kZXBlbmRlbnRseSBvZiBhbGwg b3RoZXIgZmVhdHVyZXMuICBFYWNoIG1pbm9yIG1vZGUgaGFzCiAgICAgYSBjb21tYW5kIHRvIHR1 cm4gaXQgb24gb3Igb2ZmLiAgU29tZSBtaW5vciBtb2RlcyBhcmUgZ2xvYmFsCiAgICAgKHEudi4p LCBhbmQgc29tZSBhcmUgbG9jYWwgKHEudi4pLiAgKk5vdGUgTWlub3IgTW9kZXM6Oi4KCk1pbm9y IE1vZGUgS2V5bWFwCiAgICAgQSBtaW5vciBtb2RlIGtleW1hcCBpcyBhIGtleW1hcCB0aGF0IGJl bG9uZ3MgdG8gYSBtaW5vciBtb2RlIGFuZCBpcwogICAgIGFjdGl2ZSB3aGVuIHRoYXQgbW9kZSBp cyBlbmFibGVkLiAgTWlub3IgbW9kZSBrZXltYXBzIHRha2UKICAgICBwcmVjZWRlbmNlIG92ZXIg dGhlIGJ1ZmZlcuKAmXMgbG9jYWwga2V5bWFwLCBqdXN0IGFzIHRoZSBsb2NhbCBrZXltYXAKICAg ICB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGdsb2JhbCBrZXltYXAuICAqTm90ZSBLZXltYXBz OjouCgpNb2RlIExpbmUKICAgICBUaGUgbW9kZSBsaW5lIGlzIHRoZSBsaW5lIGF0IHRoZSBib3R0 b20gb2YgZWFjaCB3aW5kb3cgKHEudi4pLAogICAgIGdpdmluZyBzdGF0dXMgaW5mb3JtYXRpb24g b24gdGhlIGJ1ZmZlciBkaXNwbGF5ZWQgaW4gdGhhdCB3aW5kb3cuCiAgICAgKk5vdGUgTW9kZSBM aW5lOjouCgpNb2RpZmllZCBCdWZmZXIKICAgICBBIGJ1ZmZlciAocS52LikgaXMgbW9kaWZpZWQg aWYgaXRzIHRleHQgaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSB0aGUKICAgICBsYXN0IHRpbWUgdGhl IGJ1ZmZlciB3YXMgc2F2ZWQgKG9yIHNpbmNlIGl0IHdhcyBjcmVhdGVkLCBpZiBpdCBoYXMKICAg ICBuZXZlciBiZWVuIHNhdmVkKS4gICpOb3RlIFNhdmluZzo6LgoKTW92aW5nIFRleHQKICAgICBN b3ZpbmcgdGV4dCBtZWFucyBlcmFzaW5nIGl0IGZyb20gb25lIHBsYWNlIGFuZCBpbnNlcnRpbmcg aXQgaW4KICAgICBhbm90aGVyLiAgVGhlIHVzdWFsIHdheSB0byBtb3ZlIHRleHQgaXMgYnkga2ls bGluZyAocS52LikgaXQgYW5kCiAgICAgdGhlbiB5YW5raW5nIChxLnYuKSBpdC4gICpOb3RlIEtp bGxpbmc6Oi4KCk1VTEUKICAgICBQcmlvciB0byBFbWFjcyAyMywgTVVMRSB3YXMgdGhlIG5hbWUg b2YgYSBzb2Z0d2FyZSBwYWNrYWdlIHdoaWNoCiAgICAgcHJvdmlkZWQgYSAiTVVMdGlsaW5ndWFs IEVuaGFuY2VtZW50IiB0byBFbWFjcywgYnkgYWRkaW5nIHN1cHBvcnQKICAgICBmb3IgbXVsdGlw bGUgY2hhcmFjdGVyIHNldHMgKHEudi4pLiAgTVVMRSB3YXMgbGF0ZXIgaW50ZWdyYXRlZCBpbnRv CiAgICAgRW1hY3MsIGFuZCBtdWNoIG9mIGl0IHdhcyByZXBsYWNlZCB3aGVuIEVtYWNzIGdhaW5l ZCBpbnRlcm5hbAogICAgIFVuaWNvZGUgc3VwcG9ydCBpbiB2ZXJzaW9uIDIzLgoKICAgICBTb21l IHBhcnRzIG9mIEVtYWNzIHRoYXQgZGVhbCB3aXRoIGNoYXJhY3RlciBzZXQgc3VwcG9ydCBzdGls bCB1c2UKICAgICB0aGUgTVVMRSBuYW1lLiAgKk5vdGUgSW50ZXJuYXRpb25hbDo6LgoKTXVsdGli eXRlIENoYXJhY3RlcgogICAgIEEgbXVsdGlieXRlIGNoYXJhY3RlciBpcyBhIGNoYXJhY3RlciB0 aGF0IHRha2VzIHVwIHNldmVyYWwgYnl0ZXMgaW4KICAgICBhIGJ1ZmZlci4gIEVtYWNzIHVzZXMg bXVsdGlieXRlIGNoYXJhY3RlcnMgdG8gcmVwcmVzZW50IG5vbi1BU0NJSQogICAgIHRleHQsIHNp bmNlIHRoZSBudW1iZXIgb2Ygbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaXMgbXVjaCBtb3JlIHRoYW4K ICAgICAyNTYuICAqTm90ZSBJbnRlcm5hdGlvbmFsIENoYXJhY3RlcnM6IEludGVybmF0aW9uYWwg Q2hhcnMuCgpOYW1lZCBNYXJrCiAgICAgQSBuYW1lZCBtYXJrIGlzIGEgcmVnaXN0ZXIgKHEudi4p LCBpbiBpdHMgcm9sZSBvZiByZWNvcmRpbmcgYQogICAgIGxvY2F0aW9uIGluIHRleHQgc28gdGhh dCB5b3UgY2FuIG1vdmUgcG9pbnQgdG8gdGhhdCBsb2NhdGlvbi4KICAgICAqTm90ZSBSZWdpc3Rl cnM6Oi4KCk5hcnJvd2luZwogICAgIE5hcnJvd2luZyBtZWFucyBjcmVhdGluZyBhIHJlc3RyaWN0 aW9uIChxLnYuKSB0aGF0IGxpbWl0cyBlZGl0aW5nCiAgICAgaW4gdGhlIGN1cnJlbnQgYnVmZmVy IHRvIG9ubHkgYSBwYXJ0IG9mIHRoZSB0ZXh0LiAgVGV4dCBvdXRzaWRlCiAgICAgdGhhdCBwYXJ0 IGlzIGluYWNjZXNzaWJsZSBmb3IgZWRpdGluZyAob3Igdmlld2luZykgdW50aWwgdGhlCiAgICAg Ym91bmRhcmllcyBhcmUgd2lkZW5lZCBhZ2FpbiwgYnV0IGl0IGlzIHN0aWxsIHRoZXJlLCBhbmQg c2F2aW5nIHRoZQogICAgIGZpbGUgc2F2ZXMgaXQgYWxsLiAgKk5vdGUgTmFycm93aW5nOjouCgpO ZXdsaW5lCiAgICAgQ29udHJvbC1KIGNoYXJhY3RlcnMgaW4gdGhlIGJ1ZmZlciB0ZXJtaW5hdGUg bGluZXMgb2YgdGV4dCBhbmQgYXJlCiAgICAgdGhlcmVmb3JlIGFsc28gY2FsbGVkIG5ld2xpbmVz LiAgKk5vdGUgR2xvc3NhcnktLS1FbmQgT2YgTGluZTo6LgoK4oCYbmls4oCZCiAgICAg4oCYbmls 4oCZIGlzIGEgdmFsdWUgdXN1YWxseSBpbnRlcnByZXRlZCBhcyBhIGxvZ2ljYWwg4oCcZmFsc2Xi gJ0uICBJdHMKICAgICBvcHBvc2l0ZSBpcyDigJh04oCZLCBpbnRlcnByZXRlZCBhcyDigJx0cnVl 4oCdLgoKTnVtZXJpYyBBcmd1bWVudAogICAgIEEgbnVtZXJpYyBhcmd1bWVudCBpcyBhIG51bWJl ciwgc3BlY2lmaWVkIGJlZm9yZSBhIGNvbW1hbmQsIHRvCiAgICAgY2hhbmdlIHRoZSBlZmZlY3Qg b2YgdGhlIGNvbW1hbmQuICBPZnRlbiB0aGUgbnVtZXJpYyBhcmd1bWVudAogICAgIHNlcnZlcyBh cyBhIHJlcGVhdCBjb3VudC4gICpOb3RlIEFyZ3VtZW50czo6LgoKT3ZlcndyaXRlIE1vZGUKICAg ICBPdmVyd3JpdGUgbW9kZSBpcyBhIG1pbm9yIG1vZGUuICBXaGVuIGl0IGlzIGVuYWJsZWQsIG9y ZGluYXJ5IHRleHQKICAgICBjaGFyYWN0ZXJzIHJlcGxhY2UgdGhlIGV4aXN0aW5nIHRleHQgYWZ0 ZXIgcG9pbnQgcmF0aGVyIHRoYW4KICAgICBwdXNoaW5nIGl0IHRvIG9uZSBzaWRlLiAgKk5vdGUg TWlub3IgTW9kZXM6Oi4KClBhY2thZ2UKICAgICBBIHBhY2thZ2UgaXMgYSBjb2xsZWN0aW9uIG9m IExpc3AgY29kZSB0aGF0IHlvdSBkb3dubG9hZCBhbmQKICAgICBhdXRvbWF0aWNhbGx5IGluc3Rh bGwgZnJvbSB3aXRoaW4gRW1hY3MuICBQYWNrYWdlcyBwcm92aWRlIGEKICAgICBjb252ZW5pZW50 IHdheSB0byBhZGQgbmV3IGZlYXR1cmVzLiAgKk5vdGUgUGFja2FnZXM6Oi4KClBhZ2UKICAgICBB IHBhZ2UgaXMgYSB1bml0IG9mIHRleHQsIGRlbGltaXRlZCBieSBmb3JtZmVlZCBjaGFyYWN0ZXJz IChBU0NJSQogICAgIGNvbnRyb2wtTCwgY29kZSAwMTQpIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBs aW5lLiAgU29tZSBFbWFjcwogICAgIGNvbW1hbmRzIGFyZSBwcm92aWRlZCBmb3IgbW92aW5nIG92 ZXIgYW5kIG9wZXJhdGluZyBvbiBwYWdlcy4KICAgICAqTm90ZSBQYWdlczo6LgoKUGFyYWdyYXBo CiAgICAgUGFyYWdyYXBocyBhcmUgdGhlIG1lZGl1bS1zaXplIHVuaXQgb2YgaHVtYW4tbGFuZ3Vh Z2UgdGV4dC4gIFRoZXJlCiAgICAgYXJlIHNwZWNpYWwgRW1hY3MgY29tbWFuZHMgZm9yIG1vdmlu ZyBvdmVyIGFuZCBvcGVyYXRpbmcgb24KICAgICBwYXJhZ3JhcGhzLiAgKk5vdGUgUGFyYWdyYXBo czo6LgoKUGFyc2luZwogICAgIFdlIHNheSB0aGF0IGNlcnRhaW4gRW1hY3MgY29tbWFuZHMgcGFy c2Ugd29yZHMgb3IgZXhwcmVzc2lvbnMgaW4KICAgICB0aGUgdGV4dCBiZWluZyBlZGl0ZWQuICBS ZWFsbHksIGFsbCB0aGV5IGtub3cgaG93IHRvIGRvIGlzIGZpbmQgdGhlCiAgICAgb3RoZXIgZW5k IG9mIGEgd29yZCBvciBleHByZXNzaW9uLgoKUG9pbnQKICAgICBQb2ludCBpcyB0aGUgcGxhY2Ug aW4gdGhlIGJ1ZmZlciBhdCB3aGljaCBpbnNlcnRpb24gYW5kIGRlbGV0aW9uCiAgICAgb2NjdXIu ICBQb2ludCBpcyBjb25zaWRlcmVkIHRvIGJlIGJldHdlZW4gdHdvIGNoYXJhY3RlcnMsIG5vdCBh dAogICAgIG9uZSBjaGFyYWN0ZXIuICBUaGUgdGVybWluYWzigJlzIGN1cnNvciAocS52LikgaW5k aWNhdGVzIHRoZSBsb2NhdGlvbgogICAgIG9mIHBvaW50LiAgKk5vdGUgUG9pbnQ6Oi4KClByZWZp eCBBcmd1bWVudAogICAgICpOb3RlIEdsb3NzYXJ5LS0tTnVtZXJpYyBBcmd1bWVudDo6LgoKUHJl Zml4IEtleQogICAgIEEgcHJlZml4IGtleSBpcyBhIGtleSBzZXF1ZW5jZSAocS52Likgd2hvc2Ug c29sZSBmdW5jdGlvbiBpcyB0bwogICAgIGludHJvZHVjZSBhIHNldCBvZiBsb25nZXIga2V5IHNl cXVlbmNlcy4gIOKAmEMteOKAmSBpcyBhbiBleGFtcGxlIG9mCiAgICAgcHJlZml4IGtleTsgYW55 IHR3by1jaGFyYWN0ZXIgc2VxdWVuY2Ugc3RhcnRpbmcgd2l0aCDigJhDLXjigJkgaXMKICAgICB0 aGVyZWZvcmUgYSBsZWdpdGltYXRlIGtleSBzZXF1ZW5jZS4gICpOb3RlIEtleXM6Oi4KClByaW1h cnkgU2VsZWN0aW9uCiAgICAgVGhlIHByaW1hcnkgc2VsZWN0aW9uIGlzIG9uZSBwYXJ0aWN1bGFy IFggc2VsZWN0aW9uIChxLnYuKTsgaXQgaXMKICAgICB0aGUgc2VsZWN0aW9uIHRoYXQgbW9zdCBY IGFwcGxpY2F0aW9ucyB1c2UgZm9yIHRyYW5zZmVycmluZyB0ZXh0IHRvCiAgICAgYW5kIGZyb20g b3RoZXIgYXBwbGljYXRpb25zLgoKICAgICBUaGUgRW1hY3MgY29tbWFuZHMgdGhhdCBtYXJrIG9y IHNlbGVjdCB0ZXh0IHNldCB0aGUgcHJpbWFyeQogICAgIHNlbGVjdGlvbiwgYW5kIGNsaWNraW5n IHRoZSBtb3VzZSBpbnNlcnRzIHRleHQgZnJvbSB0aGUgcHJpbWFyeQogICAgIHNlbGVjdGlvbiB3 aGVuIGFwcHJvcHJpYXRlLiAgKk5vdGUgU2hpZnQgU2VsZWN0aW9uOjouCgpQcm9tcHQKICAgICBB IHByb21wdCBpcyB0ZXh0IHVzZWQgdG8gYXNrIHlvdSBmb3IgaW5wdXQuICBEaXNwbGF5aW5nIGEg cHJvbXB0IGlzCiAgICAgY2FsbGVkIHByb21wdGluZy4gIEVtYWNzIHByb21wdHMgYWx3YXlzIGFw cGVhciBpbiB0aGUgZWNobyBhcmVhCiAgICAgKHEudi4pLiAgT25lIGtpbmQgb2YgcHJvbXB0aW5n IGhhcHBlbnMgd2hlbiB0aGUgbWluaWJ1ZmZlciBpcyB1c2VkCiAgICAgdG8gcmVhZCBhbiBhcmd1 bWVudCAoKm5vdGUgTWluaWJ1ZmZlcjo6KTsgdGhlIGVjaG9pbmcgdGhhdCBoYXBwZW5zCiAgICAg d2hlbiB5b3UgcGF1c2UgaW4gdGhlIG1pZGRsZSBvZiB0eXBpbmcgYSBtdWx0aS1jaGFyYWN0ZXIg a2V5CiAgICAgc2VxdWVuY2UgaXMgYWxzbyBhIGtpbmQgb2YgcHJvbXB0aW5nICgqbm90ZSBFY2hv IEFyZWE6OikuCgpxLnYuCiAgICAgU2hvcnQgZm9yIOKAnHF1b2QgdmlkZeKAnSBpbiBMYXRpbiwg d2hpY2ggbWVhbnMg4oCcd2hpY2ggc2Vl4oCdLgoKUXVlcnktUmVwbGFjZQogICAgIFF1ZXJ5LXJl cGxhY2UgaXMgYW4gaW50ZXJhY3RpdmUgc3RyaW5nIHJlcGxhY2VtZW50IGZlYXR1cmUgcHJvdmlk ZWQKICAgICBieSBFbWFjcy4gICpOb3RlIFF1ZXJ5IFJlcGxhY2U6Oi4KClF1aXR0aW5nCiAgICAg UXVpdHRpbmcgbWVhbnMgY2FuY2VsaW5nIGEgcGFydGlhbGx5IHR5cGVkIGNvbW1hbmQgb3IgYSBy dW5uaW5nCiAgICAgY29tbWFuZCwgdXNpbmcg4oCYQy1n4oCZIChvciDigJhDLTxCUkVBSz7igJkg b24gTVMtRE9TKS4gKk5vdGUgUXVpdHRpbmc6Oi4KClF1b3RpbmcKICAgICBRdW90aW5nIG1lYW5z IGRlcHJpdmluZyBhIGNoYXJhY3RlciBvZiBpdHMgdXN1YWwgc3BlY2lhbAogICAgIHNpZ25pZmlj YW5jZS4gIFRoZSBtb3N0IGNvbW1vbiBraW5kIG9mIHF1b3RpbmcgaW4gRW1hY3MgaXMgd2l0aAog ICAgIOKAmEMtceKAmS4gIFdoYXQgY29uc3RpdHV0ZXMgc3BlY2lhbCBzaWduaWZpY2FuY2UgZGVw ZW5kcyBvbiB0aGUKICAgICBjb250ZXh0IGFuZCBvbiBjb252ZW50aW9uLiAgRm9yIGV4YW1wbGUs IGFuIG9yZGluYXJ5IGNoYXJhY3RlciBhcwogICAgIGFuIEVtYWNzIGNvbW1hbmQgaW5zZXJ0cyBp dHNlbGY7IHNvIGluIHRoaXMgY29udGV4dCwgYSBzcGVjaWFsCiAgICAgY2hhcmFjdGVyIGlzIGFu eSBjaGFyYWN0ZXIgdGhhdCBkb2VzIG5vdCBub3JtYWxseSBpbnNlcnQgaXRzZWxmCiAgICAgKHN1 Y2ggYXMgPERFTD4sIGZvciBleGFtcGxlKSwgYW5kIHF1b3RpbmcgaXQgbWFrZXMgaXQgaW5zZXJ0 IGl0c2VsZgogICAgIGFzIGlmIGl0IHdlcmUgbm90IHNwZWNpYWwuICBOb3QgYWxsIGNvbnRleHRz IGFsbG93IHF1b3RpbmcuICAqTm90ZQogICAgIFF1b3Rpbmc6IEluc2VydGluZyBUZXh0LgoKUXVv dGluZyBGaWxlIE5hbWVzCiAgICAgUXVvdGluZyBhIGZpbGUgbmFtZSB0dXJucyBvZmYgdGhlIHNw ZWNpYWwgc2lnbmlmaWNhbmNlIG9mCiAgICAgY29uc3RydWN0cyBzdWNoIGFzIOKAmCTigJksIOKA mH7igJkgYW5kIOKAmDrigJkuICAqTm90ZSBRdW90ZWQgRmlsZSBOYW1lczo6LgoKUmVhZC1Pbmx5 IEJ1ZmZlcgogICAgIEEgcmVhZC1vbmx5IGJ1ZmZlciBpcyBvbmUgd2hvc2UgdGV4dCB5b3UgYXJl IG5vdCBhbGxvd2VkIHRvIGNoYW5nZS4KICAgICBOb3JtYWxseSBFbWFjcyBtYWtlcyBidWZmZXJz IHJlYWQtb25seSB3aGVuIHRoZXkgY29udGFpbiB0ZXh0IHdoaWNoCiAgICAgaGFzIGEgc3BlY2lh bCBzaWduaWZpY2FuY2UgdG8gRW1hY3M7IGZvciBleGFtcGxlLCBEaXJlZCBidWZmZXJzLgogICAg IFZpc2l0aW5nIGEgZmlsZSB0aGF0IGlzIHdyaXRlLXByb3RlY3RlZCBhbHNvIG1ha2VzIGEgcmVh ZC1vbmx5CiAgICAgYnVmZmVyLiAgKk5vdGUgQnVmZmVyczo6LgoKUmVjdGFuZ2xlCiAgICAgQSBy ZWN0YW5nbGUgY29uc2lzdHMgb2YgdGhlIHRleHQgaW4gYSBnaXZlbiByYW5nZSBvZiBjb2x1bW5z IG9uIGEKICAgICBnaXZlbiByYW5nZSBvZiBsaW5lcy4gIE5vcm1hbGx5IHlvdSBzcGVjaWZ5IGEg cmVjdGFuZ2xlIGJ5IHB1dHRpbmcKICAgICBwb2ludCBhdCBvbmUgY29ybmVyIGFuZCBwdXR0aW5n IHRoZSBtYXJrIGF0IHRoZSBkaWFnb25hbGx5IG9wcG9zaXRlCiAgICAgY29ybmVyLiAgKk5vdGUg UmVjdGFuZ2xlczo6LgoKUmVjdXJzaXZlIEVkaXRpbmcgTGV2ZWwKICAgICBBIHJlY3Vyc2l2ZSBl ZGl0aW5nIGxldmVsIGlzIGEgc3RhdGUgaW4gd2hpY2ggcGFydCBvZiB0aGUgZXhlY3V0aW9uCiAg ICAgb2YgYSBjb21tYW5kIGludm9sdmVzIGFza2luZyB5b3UgdG8gZWRpdCBzb21lIHRleHQuICBU aGlzIHRleHQgbWF5CiAgICAgb3IgbWF5IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgdGV4dCB0byB3 aGljaCB0aGUgY29tbWFuZCB3YXMKICAgICBhcHBsaWVkLiAgVGhlIG1vZGUgbGluZSAocS52Likg aW5kaWNhdGVzIHJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVscwogICAgIHdpdGggc3F1YXJlIGJyYWNr ZXRzICjigJhb4oCZIGFuZCDigJhd4oCZKS4gICpOb3RlIFJlY3Vyc2l2ZSBFZGl0OjouCgpSZWRp c3BsYXkKICAgICBSZWRpc3BsYXkgaXMgdGhlIHByb2Nlc3Mgb2YgY29ycmVjdGluZyB0aGUgaW1h Z2Ugb24gdGhlIHNjcmVlbiB0bwogICAgIGNvcnJlc3BvbmQgdG8gY2hhbmdlcyB0aGF0IGhhdmUg YmVlbiBtYWRlIGluIHRoZSB0ZXh0IGJlaW5nIGVkaXRlZC4KICAgICAqTm90ZSBSZWRpc3BsYXk6 IFNjcmVlbi4KClJlZ2V4cAogICAgICpOb3RlIEdsb3NzYXJ5LS0tUmVndWxhciBFeHByZXNzaW9u OjouCgpSZWdpb24KICAgICBUaGUgcmVnaW9uIGlzIHRoZSB0ZXh0IGJldHdlZW4gcG9pbnQgKHEu di4pIGFuZCB0aGUgbWFyayAocS52LikuCiAgICAgTWFueSBjb21tYW5kcyBvcGVyYXRlIG9uIHRo ZSB0ZXh0IG9mIHRoZSByZWdpb24uICAqTm90ZSBSZWdpb246CiAgICAgTWFyay4KClJlZ2lzdGVy CiAgICAgUmVnaXN0ZXJzIGFyZSBuYW1lZCBzbG90cyBpbiB3aGljaCB0ZXh0LCBidWZmZXIgcG9z aXRpb25zLCBvcgogICAgIHJlY3RhbmdsZXMgY2FuIGJlIHNhdmVkIGZvciBsYXRlciB1c2UuICAq Tm90ZSBSZWdpc3RlcnM6Oi4gIEEKICAgICByZWxhdGVkIEVtYWNzIGZlYXR1cmUgaXMgYm9va21h cmtzIChxLnYuKS4KClJlZ3VsYXIgRXhwcmVzc2lvbgogICAgIEEgcmVndWxhciBleHByZXNzaW9u IGlzIGEgcGF0dGVybiB0aGF0IGNhbiBtYXRjaCB2YXJpb3VzIHRleHQKICAgICBzdHJpbmdzOyBm b3IgZXhhbXBsZSwg4oCYYVswLTldK+KAmSBtYXRjaGVzIOKAmGHigJkgZm9sbG93ZWQgYnkgb25l IG9yIG1vcmUKICAgICBkaWdpdHMuICAqTm90ZSBSZWdleHBzOjouCgpSZW1vdGUgRmlsZQogICAg IEEgcmVtb3RlIGZpbGUgaXMgYSBmaWxlIHRoYXQgaXMgc3RvcmVkIG9uIGEgc3lzdGVtIG90aGVy IHRoYW4geW91cgogICAgIG93bi4gIEVtYWNzIGNhbiBhY2Nlc3MgZmlsZXMgb24gb3RoZXIgY29t cHV0ZXJzIHByb3ZpZGVkIHRoYXQgdGhleQogICAgIGFyZSByZWFjaGFibGUgZnJvbSB5b3VyIG1h Y2hpbmUgb3ZlciB0aGUgbmV0d29yaywgYW5kIChvYnZpb3VzbHkpCiAgICAgdGhhdCB5b3UgaGF2 ZSBhIHN1cHBvcnRlZCBtZXRob2QgdG8gZ2FpbiBhY2Nlc3MgdG8gdGhvc2UgZmlsZXMuCiAgICAg Kk5vdGUgUmVtb3RlIEZpbGVzOjouCgpSZXBlYXQgQ291bnQKICAgICAqTm90ZSBHbG9zc2FyeS0t LU51bWVyaWMgQXJndW1lbnQ6Oi4KClJlcGxhY2VtZW50CiAgICAgKk5vdGUgR2xvc3NhcnktLS1H bG9iYWwgU3Vic3RpdHV0aW9uOjouCgpSZXN0cmljdGlvbgogICAgIEEgYnVmZmVy4oCZcyByZXN0 cmljdGlvbiBpcyB0aGUgYW1vdW50IG9mIHRleHQsIGF0IHRoZSBiZWdpbm5pbmcgb3IKICAgICB0 aGUgZW5kIG9mIHRoZSBidWZmZXIsIHRoYXQgaXMgdGVtcG9yYXJpbHkgaW5hY2Nlc3NpYmxlLiAg R2l2aW5nIGEKICAgICBidWZmZXIgYSBub256ZXJvIGFtb3VudCBvZiByZXN0cmljdGlvbiBpcyBj YWxsZWQgbmFycm93aW5nIChxLnYuKTsKICAgICByZW1vdmluZyBhIHJlc3RyaWN0aW9uIGlzIGNh bGxlZCB3aWRlbmluZyAocS52LikuICAqTm90ZQogICAgIE5hcnJvd2luZzo6LgoKPFJFVD4KICAg ICA8UkVUPiBpcyBhIGNoYXJhY3RlciB0aGF0IGluIEVtYWNzIHJ1bnMgdGhlIGNvbW1hbmQgdG8g aW5zZXJ0IGEKICAgICBuZXdsaW5lIGludG8gdGhlIHRleHQuICBJdCBpcyBhbHNvIHVzZWQgdG8g dGVybWluYXRlIG1vc3QgYXJndW1lbnRzCiAgICAgcmVhZCBpbiB0aGUgbWluaWJ1ZmZlciAocS52 LikuICAqTm90ZSBSZXR1cm46IFVzZXIgSW5wdXQuCgpSZXZlcnRpbmcKICAgICBSZXZlcnRpbmcg bWVhbnMgcmV0dXJuaW5nIHRvIHRoZSBvcmlnaW5hbCBzdGF0ZS4gIEZvciBleGFtcGxlLAogICAg IEVtYWNzIGxldHMgeW91IHJldmVydCBhIGJ1ZmZlciBieSByZS1yZWFkaW5nIGl0cyBmaWxlIGZy b20gZGlzay4KICAgICAqTm90ZSBSZXZlcnRpbmc6Oi4KClNhdmluZwogICAgIFNhdmluZyBhIGJ1 ZmZlciBtZWFucyBjb3B5aW5nIGl0cyB0ZXh0IGludG8gdGhlIGZpbGUgdGhhdCB3YXMKICAgICB2 aXNpdGVkIChxLnYuKSBpbiB0aGF0IGJ1ZmZlci4gIFRoaXMgaXMgdGhlIHdheSB0ZXh0IGluIGZp bGVzCiAgICAgYWN0dWFsbHkgZ2V0cyBjaGFuZ2VkIGJ5IHlvdXIgRW1hY3MgZWRpdGluZy4gICpO b3RlIFNhdmluZzo6LgoKU2Nyb2xsIEJhcgogICAgIEEgc2Nyb2xsIGJhciBpcyBhIHRhbGwgdGhp biBob2xsb3cgYm94IHRoYXQgYXBwZWFycyBhdCB0aGUgc2lkZSBvZgogICAgIGEgd2luZG93LiAg WW91IGNhbiB1c2UgbW91c2UgY29tbWFuZHMgaW4gdGhlIHNjcm9sbCBiYXIgdG8gc2Nyb2xsCiAg ICAgdGhlIHdpbmRvdy4gIFRoZSBzY3JvbGwgYmFyIGZlYXR1cmUgaXMgc3VwcG9ydGVkIG9ubHkg dW5kZXIKICAgICB3aW5kb3dpbmcgc3lzdGVtcy4gICpOb3RlIFNjcm9sbCBCYXJzOjouCgpTY3Jv bGxpbmcKICAgICBTY3JvbGxpbmcgbWVhbnMgc2hpZnRpbmcgdGhlIHRleHQgaW4gdGhlIEVtYWNz IHdpbmRvdyBzbyBhcyB0byBzZWUKICAgICBhIGRpZmZlcmVudCBwYXJ0IG9mIHRoZSBidWZmZXIu ICAqTm90ZSBTY3JvbGxpbmc6Oi4KClNlYXJjaGluZwogICAgIFNlYXJjaGluZyBtZWFucyBtb3Zp bmcgcG9pbnQgdG8gdGhlIG5leHQgb2NjdXJyZW5jZSBvZiBhIHNwZWNpZmllZAogICAgIHN0cmlu ZyBvciB0aGUgbmV4dCBtYXRjaCBmb3IgYSBzcGVjaWZpZWQgcmVndWxhciBleHByZXNzaW9uLiAg Kk5vdGUKICAgICBTZWFyY2g6Oi4KClNlYXJjaCBQYXRoCiAgICAgQSBzZWFyY2ggcGF0aCBpcyBh IGxpc3Qgb2YgZGlyZWN0b3JpZXMsIHRvIGJlIHVzZWQgZm9yIHNlYXJjaGluZwogICAgIGZvciBm aWxlcyBmb3IgY2VydGFpbiBwdXJwb3Nlcy4gIEZvciBleGFtcGxlLCB0aGUgdmFyaWFibGUKICAg ICDigJhsb2FkLXBhdGjigJkgaG9sZHMgYSBzZWFyY2ggcGF0aCBmb3IgZmluZGluZyBMaXNwIGxp YnJhcnkgZmlsZXMuCiAgICAgKk5vdGUgTGlzcCBMaWJyYXJpZXM6Oi4KClNlY29uZGFyeSBTZWxl Y3Rpb24KICAgICBUaGUgc2Vjb25kYXJ5IHNlbGVjdGlvbiBpcyBvbmUgcGFydGljdWxhciBYIHNl bGVjdGlvbiAocS52Lik7IHNvbWUKICAgICBYIGFwcGxpY2F0aW9ucyBjYW4gdXNlIGl0IGZvciB0 cmFuc2ZlcnJpbmcgdGV4dCB0byBhbmQgZnJvbSBvdGhlcgogICAgIGFwcGxpY2F0aW9ucy4gIEVt YWNzIGhhcyBzcGVjaWFsIG1vdXNlIGNvbW1hbmRzIGZvciB0cmFuc2ZlcnJpbmcKICAgICB0ZXh0 IHVzaW5nIHRoZSBzZWNvbmRhcnkgc2VsZWN0aW9uLiAgKk5vdGUgU2Vjb25kYXJ5IFNlbGVjdGlv bjo6LgoKU2VsZWN0ZWQgRnJhbWUKICAgICBUaGUgc2VsZWN0ZWQgZnJhbWUgaXMgdGhlIG9uZSB5 b3VyIGlucHV0IGN1cnJlbnRseSBvcGVyYXRlcyBvbi4KICAgICAqTm90ZSBGcmFtZXM6Oi4KClNl bGVjdGVkIFdpbmRvdwogICAgIFRoZSBzZWxlY3RlZCB3aW5kb3cgaXMgdGhlIG9uZSB5b3VyIGlu cHV0IGN1cnJlbnRseSBvcGVyYXRlcyBvbi4KICAgICAqTm90ZSBCYXNpYyBXaW5kb3c6Oi4KClNl bGVjdGluZyBhIEJ1ZmZlcgogICAgIFNlbGVjdGluZyBhIGJ1ZmZlciBtZWFucyBtYWtpbmcgaXQg dGhlIGN1cnJlbnQgKHEudi4pIGJ1ZmZlci4KICAgICAqTm90ZSBTZWxlY3QgQnVmZmVyOjouCgpT ZWxlY3Rpb24KICAgICBXaW5kb3dpbmcgc3lzdGVtcyBhbGxvdyBhbiBhcHBsaWNhdGlvbiBwcm9n cmFtIHRvIHNwZWNpZnkKICAgICBzZWxlY3Rpb25zIHdob3NlIHZhbHVlcyBhcmUgdGV4dC4gIEEg cHJvZ3JhbSBjYW4gYWxzbyByZWFkIHRoZQogICAgIHNlbGVjdGlvbnMgdGhhdCBvdGhlciBwcm9n cmFtcyBoYXZlIHNldCB1cC4gIFRoaXMgaXMgdGhlIHByaW5jaXBhbAogICAgIHdheSBvZiB0cmFu c2ZlcnJpbmcgdGV4dCBiZXR3ZWVuIHdpbmRvdyBhcHBsaWNhdGlvbnMuICBFbWFjcyBoYXMKICAg ICBjb21tYW5kcyB0byB3b3JrIHdpdGggdGhlIHByaW1hcnkgKHEudi4pIHNlbGVjdGlvbiBhbmQg dGhlCiAgICAgc2Vjb25kYXJ5IChxLnYuKSBzZWxlY3Rpb24sIGFuZCBhbHNvIHdpdGggdGhlIGNs aXBib2FyZCAocS52LikuCgpTZWxmLURvY3VtZW50YXRpb24KICAgICBTZWxmLWRvY3VtZW50YXRp b24gaXMgdGhlIGZlYXR1cmUgb2YgRW1hY3MgdGhhdCBjYW4gdGVsbCB5b3Ugd2hhdAogICAgIGFu eSBjb21tYW5kIGRvZXMsIG9yIGdpdmUgeW91IGEgbGlzdCBvZiBhbGwgY29tbWFuZHMgcmVsYXRl ZCB0byBhCiAgICAgdG9waWMgeW91IHNwZWNpZnkuICBZb3UgYXNrIGZvciBzZWxmLWRvY3VtZW50 YXRpb24gd2l0aCB0aGUgaGVscAogICAgIGNoYXJhY3Rlciwg4oCYQy1o4oCZLiAgKk5vdGUgSGVs cDo6LgoKU2VsZi1JbnNlcnRpbmcgQ2hhcmFjdGVyCiAgICAgQSBjaGFyYWN0ZXIgaXMgc2VsZi1p bnNlcnRpbmcgaWYgdHlwaW5nIHRoYXQgY2hhcmFjdGVyIGluc2VydHMgdGhhdAogICAgIGNoYXJh Y3RlciBpbiB0aGUgYnVmZmVyLiAgT3JkaW5hcnkgcHJpbnRpbmcgYW5kIHdoaXRlc3BhY2UKICAg ICBjaGFyYWN0ZXJzIGFyZSBzZWxmLWluc2VydGluZyBpbiBFbWFjcywgZXhjZXB0IGluIGNlcnRh aW4gc3BlY2lhbAogICAgIG1ham9yIG1vZGVzLgoKU2VudGVuY2VzCiAgICAgRW1hY3MgaGFzIGNv bW1hbmRzIGZvciBtb3ZpbmcgYnkgb3Iga2lsbGluZyBieSBzZW50ZW5jZXMuICAqTm90ZQogICAg IFNlbnRlbmNlczo6LgoKU2VydmVyCiAgICAgV2l0aGluIEVtYWNzLCB5b3UgY2FuIHN0YXJ0IGEg 4oCcc2VydmVy4oCdIHByb2Nlc3MsIHdoaWNoIGxpc3RlbnMgZm9yCiAgICAgY29ubmVjdGlvbnMg ZnJvbSDigJxjbGllbnRz4oCdLiAgVGhpcyBvZmZlcnMgYSBmYXN0ZXIgYWx0ZXJuYXRpdmUgdG8K ICAgICBzdGFydGluZyBzZXZlcmFsIEVtYWNzIGluc3RhbmNlcy4gICpOb3RlIEVtYWNzIFNlcnZl cjo6LCBhbmQgKm5vdGUKICAgICBHbG9zc2FyeS0tLURhZW1vbjo6LgoKU2V4cAogICAgIEEgc2V4 cCAoc2hvcnQgZm9yIOKAnHMtZXhwcmVzc2lvbuKAnSkgaXMgdGhlIGJhc2ljIHN5bnRhY3RpYyB1 bml0IG9mCiAgICAgTGlzcCBpbiBpdHMgdGV4dHVhbCBmb3JtOiBlaXRoZXIgYSBsaXN0LCBvciBM aXNwIGF0b20uICBTZXhwcyBhcmUKICAgICBhbHNvIHRoZSBiYWxhbmNlZCBleHByZXNzaW9ucyAo cS52Likgb2YgdGhlIExpc3AgbGFuZ3VhZ2U7IHRoaXMgaXMKICAgICB3aHkgdGhlIGNvbW1hbmRz IGZvciBlZGl0aW5nIGJhbGFuY2VkIGV4cHJlc3Npb25zIGhhdmUg4oCYc2V4cOKAmSBpbgogICAg IHRoZWlyIG5hbWUuICAqTm90ZSBTZXhwczogRXhwcmVzc2lvbnMuCgpTaW11bHRhbmVvdXMgRWRp dGluZwogICAgIFNpbXVsdGFuZW91cyBlZGl0aW5nIG1lYW5zIHR3byB1c2VycyBtb2RpZnlpbmcg dGhlIHNhbWUgZmlsZSBhdAogICAgIG9uY2UuICBTaW11bHRhbmVvdXMgZWRpdGluZywgaWYgbm90 IGRldGVjdGVkLCBjYW4gY2F1c2Ugb25lIHVzZXIgdG8KICAgICBsb3NlIGhpcyBvciBoZXIgd29y ay4gIEVtYWNzIGRldGVjdHMgYWxsIGNhc2VzIG9mIHNpbXVsdGFuZW91cwogICAgIGVkaXRpbmcs IGFuZCB3YXJucyBvbmUgb2YgdGhlIHVzZXJzIHRvIGludmVzdGlnYXRlLiAgKk5vdGUKICAgICBJ bnRlcmxvY2tpbmc6IEludGVybG9ja2luZy4KCjxTUEM+CiAgICAgPFNQQz4gaXMgdGhlIHNwYWNl IGNoYXJhY3Rlciwgd2hpY2ggeW91IGVudGVyIGJ5IHByZXNzaW5nIHRoZSBzcGFjZQogICAgIGJh ci4KClNwZWVkYmFyCiAgICAgVGhlIHNwZWVkYmFyIGlzIGEgc3BlY2lhbCB0YWxsIGZyYW1lIHRo YXQgcHJvdmlkZXMgZmFzdCBhY2Nlc3MgdG8KICAgICBFbWFjcyBidWZmZXJzLCBmdW5jdGlvbnMg d2l0aGluIHRob3NlIGJ1ZmZlcnMsIEluZm8gbm9kZXMsIGFuZAogICAgIG90aGVyIGludGVyZXN0 aW5nIHBhcnRzIG9mIHRleHQgd2l0aGluIEVtYWNzLiAgKk5vdGUgU3BlZWRiYXI6Oi4KClNwZWxs IENoZWNraW5nCiAgICAgU3BlbGwgY2hlY2tpbmcgbWVhbnMgY2hlY2tpbmcgY29ycmVjdG5lc3Mg b2YgdGhlIHdyaXR0ZW4gZm9ybSBvZgogICAgIGVhY2ggb25lIG9mIHRoZSB3b3JkcyBpbiBhIHRl eHQuICBFbWFjcyBjYW4gdXNlIHZhcmlvdXMgZXh0ZXJuYWwKICAgICBzcGVsbGluZy1jaGVja2Vy IHByb2dyYW1zIHRvIGNoZWNrIHRoZSBzcGVsbGluZyBvZiBwYXJ0cyBvZiBhCiAgICAgYnVmZmVy IHZpYSBhIGNvbnZlbmllbnQgdXNlciBpbnRlcmZhY2UuICAqTm90ZSBTcGVsbGluZzo6LgoKU3Ry aW5nCiAgICAgQSBzdHJpbmcgaXMgYSBraW5kIG9mIExpc3AgZGF0YSBvYmplY3QgdGhhdCBjb250 YWlucyBhIHNlcXVlbmNlIG9mCiAgICAgY2hhcmFjdGVycy4gIE1hbnkgRW1hY3MgdmFyaWFibGVz IGFyZSBpbnRlbmRlZCB0byBoYXZlIHN0cmluZ3MgYXMKICAgICB2YWx1ZXMuICBUaGUgTGlzcCBz eW50YXggZm9yIGEgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBjaGFyYWN0ZXJzIGluCiAgICAgdGhl IHN0cmluZyB3aXRoIGEg4oCYIuKAmSBiZWZvcmUgYW5kIGFub3RoZXIg4oCYIuKAmSBhZnRlci4g IEEg4oCYIuKAmSB0aGF0IGlzCiAgICAgcGFydCBvZiB0aGUgc3RyaW5nIG11c3QgYmUgd3JpdHRl biBhcyDigJhcIuKAmSBhbmQgYSDigJhc4oCZIHRoYXQgaXMgcGFydAogICAgIG9mIHRoZSBzdHJp bmcgbXVzdCBiZSB3cml0dGVuIGFzIOKAmFxc4oCZLiAgQWxsIG90aGVyIGNoYXJhY3RlcnMsCiAg ICAgaW5jbHVkaW5nIG5ld2xpbmUsIGNhbiBiZSBpbmNsdWRlZCBqdXN0IGJ5IHdyaXRpbmcgdGhl bSBpbnNpZGUgdGhlCiAgICAgc3RyaW5nOyBob3dldmVyLCBiYWNrc2xhc2ggc2VxdWVuY2VzIGFz IGluIEMsIHN1Y2ggYXMg4oCYXG7igJkgZm9yCiAgICAgbmV3bGluZSBvciDigJhcMjQx4oCZIHVz aW5nIGFuIG9jdGFsIGNoYXJhY3RlciBjb2RlLCBhcmUgYWxsb3dlZCBhcwogICAgIHdlbGwuCgpT dHJpbmcgU3Vic3RpdHV0aW9uCiAgICAgKk5vdGUgR2xvc3NhcnktLS1HbG9iYWwgU3Vic3RpdHV0 aW9uOjouCgpTeW50YXggSGlnaGxpZ2h0aW5nCiAgICAgKk5vdGUgR2xvc3NhcnktLS1Gb250IExv Y2s6Oi4KClN5bnRheCBUYWJsZQogICAgIFRoZSBzeW50YXggdGFibGUgdGVsbHMgRW1hY3Mgd2hp Y2ggY2hhcmFjdGVycyBhcmUgcGFydCBvZiBhIHdvcmQsCiAgICAgd2hpY2ggY2hhcmFjdGVycyBi YWxhbmNlIGVhY2ggb3RoZXIgbGlrZSBwYXJlbnRoZXNlcywgZXRjLiAgKk5vdGUKICAgICBTeW50 YXggVGFibGVzOiAoZWxpc3ApU3ludGF4IFRhYmxlcy4KClN1cGVyCiAgICAgU3VwZXIgaXMgdGhl IG5hbWUgb2YgYSBtb2RpZmllciBiaXQgdGhhdCBhIGtleWJvYXJkIGlucHV0IGNoYXJhY3Rlcgog ICAgIG1heSBoYXZlLiAgVG8gbWFrZSBhIGNoYXJhY3RlciBTdXBlciwgdHlwZSBpdCB3aGlsZSBo b2xkaW5nIGRvd24KICAgICB0aGUgPFNVUEVSPiBrZXkuICBTdWNoIGNoYXJhY3RlcnMgYXJlIGdp dmVuIG5hbWVzIHRoYXQgc3RhcnQgd2l0aAogICAgIOKAmFN1cGVyLeKAmSAodXN1YWxseSB3cml0 dGVuIOKAmHMt4oCZIGZvciBzaG9ydCkuICAqTm90ZSBNb2RpZmllciBLZXlzOjouCgpTdXNwZW5k aW5nCiAgICAgU3VzcGVuZGluZyBFbWFjcyBtZWFucyBzdG9wcGluZyBpdCB0ZW1wb3JhcmlseSBh bmQgcmV0dXJuaW5nCiAgICAgY29udHJvbCB0byBpdHMgcGFyZW50IHByb2Nlc3MsIHdoaWNoIGlz IHVzdWFsbHkgYSBzaGVsbC4gIFVubGlrZQogICAgIGtpbGxpbmcgYSBqb2IgKHEudi4pLCB5b3Ug Y2FuIGxhdGVyIHJlc3VtZSB0aGUgc3VzcGVuZGVkIEVtYWNzIGpvYgogICAgIHdpdGhvdXQgbG9z aW5nIHlvdXIgYnVmZmVycywgdW5zYXZlZCBlZGl0cywgdW5kbyBoaXN0b3J5LCBldGMuCiAgICAg Kk5vdGUgRXhpdGluZzo6LgoKPFRBQj4KICAgICA8VEFCPiBpcyB0aGUgdGFiIGNoYXJhY3Rlci4g IEluIEVtYWNzIGl0IGlzIHR5cGljYWxseSB1c2VkIGZvcgogICAgIGluZGVudGF0aW9uIG9yIGNv bXBsZXRpb24uCgpUYWdzIFRhYmxlCiAgICAgQSB0YWdzIHRhYmxlIGlzIGEgZmlsZSB0aGF0IHNl cnZlcyBhcyBhbiBpbmRleCB0byB0aGUgZnVuY3Rpb24KICAgICBkZWZpbml0aW9ucyBpbiBvbmUg b3IgbW9yZSBvdGhlciBmaWxlcy4gICpOb3RlIFRhZ3MgVGFibGVzOjouCgpUZXJtc2NyaXB0IEZp bGUKICAgICBBIHRlcm1zY3JpcHQgZmlsZSBjb250YWlucyBhIHJlY29yZCBvZiBhbGwgY2hhcmFj dGVycyBzZW50IGJ5IEVtYWNzCiAgICAgdG8gdGhlIHRlcm1pbmFsLiAgSXQgaXMgdXNlZCBmb3Ig dHJhY2tpbmcgZG93biBidWdzIGluIEVtYWNzCiAgICAgcmVkaXNwbGF5LiAgRW1hY3MgZG9lcyBu b3QgbWFrZSBhIHRlcm1zY3JpcHQgZmlsZSB1bmxlc3MgeW91IHRlbGwKICAgICBpdCB0by4gICpO b3RlIEJ1Z3M6Oi4KClRleHQKCiAgICAg4oCcVGV4dOKAnSBoYXMgdHdvIG1lYW5pbmdzICgqbm90 ZSBUZXh0OjopOgoKICAgICAgICDigKIgRGF0YSBjb25zaXN0aW5nIG9mIGEgc2VxdWVuY2Ugb2Yg Y2hhcmFjdGVycywgYXMgb3Bwb3NlZCB0bwogICAgICAgICAgYmluYXJ5IG51bWJlcnMsIGV4ZWN1 dGFibGUgcHJvZ3JhbXMsIGFuZCB0aGUgbGlrZS4gIFRoZSBiYXNpYwogICAgICAgICAgY29udGVu dHMgb2YgYW4gRW1hY3MgYnVmZmVyIChhc2lkZSBmcm9tIHRoZSB0ZXh0IHByb3BlcnRpZXMsCiAg ICAgICAgICBxLnYuKSBhcmUgYWx3YXlzIHRleHQgaW4gdGhpcyBzZW5zZS4KCiAgICAgICAg4oCi IERhdGEgY29uc2lzdGluZyBvZiB3cml0dGVuIGh1bWFuIGxhbmd1YWdlIChhcyBvcHBvc2VkIHRv CiAgICAgICAgICBwcm9ncmFtcyksIG9yIGZvbGxvd2luZyB0aGUgc3R5bGlzdGljIGNvbnZlbnRp b25zIG9mIGh1bWFuCiAgICAgICAgICBsYW5ndWFnZS4KClRleHQgVGVybWluYWwKICAgICBBIHRl eHQgdGVybWluYWwsIG9yIGNoYXJhY3RlciB0ZXJtaW5hbCwgaXMgYSBkaXNwbGF5IHRoYXQgaXMK ICAgICBsaW1pdGVkIHRvIGRpc3BsYXlpbmcgdGV4dCBpbiBjaGFyYWN0ZXIgdW5pdHMuICBTdWNo IGEgdGVybWluYWwKICAgICBjYW5ub3QgY29udHJvbCBpbmRpdmlkdWFsIHBpeGVscyBpdCBkaXNw bGF5cy4gIEVtYWNzIHN1cHBvcnRzIGEKICAgICBzdWJzZXQgb2YgZGlzcGxheSBmZWF0dXJlcyBv biB0ZXh0IHRlcm1pbmFscy4KClRleHQgUHJvcGVydGllcwogICAgIFRleHQgcHJvcGVydGllcyBh cmUgYW5ub3RhdGlvbnMgcmVjb3JkZWQgZm9yIHBhcnRpY3VsYXIgY2hhcmFjdGVycwogICAgIGlu IHRoZSBidWZmZXIuICBJbWFnZXMgaW4gdGhlIGJ1ZmZlciBhcmUgcmVjb3JkZWQgYXMgdGV4dAog ICAgIHByb3BlcnRpZXM7IHRoZXkgYWxzbyBzcGVjaWZ5IGZvcm1hdHRpbmcgaW5mb3JtYXRpb24u ICAqTm90ZQogICAgIEVkaXRpbmcgRm9ybWF0IEluZm86Oi4KClRoZW1lCiAgICAgQSB0aGVtZSBp cyBhIHNldCBvZiBjdXN0b21pemF0aW9ucyAocS52LikgdGhhdCBnaXZlIEVtYWNzIGEKICAgICBw YXJ0aWN1bGFyIGFwcGVhcmFuY2Ugb3IgYmVoYXZpb3IuICBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0 IHVzZSBhCiAgICAgdGhlbWUgZm9yIHlvdXIgZmF2b3JpdGUgc2V0IG9mIGZhY2VzIChxLnYuKS4K ClRvb2wgQmFyCiAgICAgVGhlIHRvb2wgYmFyIGlzIGEgbGluZSAoc29tZXRpbWVzIG11bHRpcGxl IGxpbmVzKSBvZiBpY29ucyBhdCB0aGUKICAgICB0b3Agb2YgYW4gRW1hY3MgZnJhbWUuICBDbGlj a2luZyBvbiBvbmUgb2YgdGhlc2UgaWNvbnMgZXhlY3V0ZXMgYQogICAgIGNvbW1hbmQuICBZb3Ug Y2FuIHRoaW5rIG9mIHRoaXMgYXMgYSBncmFwaGljYWwgcmVsYXRpdmUgb2YgdGhlIG1lbnUKICAg ICBiYXIgKHEudi4pLiAgKk5vdGUgVG9vbCBCYXJzOjouCgpUb29sdGlwcwogICAgIFRvb2x0aXBz IGFyZSBzbWFsbCB3aW5kb3dzIGRpc3BsYXlpbmcgYSBoZWxwIGVjaG8gKHEudi4pIHRleHQsCiAg ICAgd2hpY2ggZXhwbGFpbnMgcGFydHMgb2YgdGhlIGRpc3BsYXksIGxpc3RzIHVzZWZ1bCBvcHRp b25zIGF2YWlsYWJsZQogICAgIHZpYSBtb3VzZSBjbGlja3MsIGV0Yy4gICpOb3RlIFRvb2x0aXBz OjouCgpUb3AgTGV2ZWwKICAgICBUb3AgbGV2ZWwgaXMgdGhlIG5vcm1hbCBzdGF0ZSBvZiBFbWFj cywgaW4gd2hpY2ggeW91IGFyZSBlZGl0aW5nCiAgICAgdGhlIHRleHQgb2YgdGhlIGZpbGUgeW91 IGhhdmUgdmlzaXRlZC4gIFlvdSBhcmUgYXQgdG9wIGxldmVsCiAgICAgd2hlbmV2ZXIgeW91IGFy ZSBub3QgaW4gYSByZWN1cnNpdmUgZWRpdGluZyBsZXZlbCAocS52Likgb3IgdGhlCiAgICAgbWlu aWJ1ZmZlciAocS52LiksIGFuZCBub3QgaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1hbmQuICBZb3Ug Y2FuIGdldAogICAgIGJhY2sgdG8gdG9wIGxldmVsIGJ5IGFib3J0aW5nIChxLnYuKSBhbmQgcXVp dHRpbmcgKHEudi4pLiAgKk5vdGUKICAgICBRdWl0dGluZzo6LgoKVHJhbnNpZW50IE1hcmsgTW9k ZQogICAgIFRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBtYXJrIChxLnYuKSBhbmQgcmVnaW9u IChxLnYuKSwgaW4gd2hpY2gKICAgICBzZXR0aW5nIHRoZSBtYXJrIGFjdGl2YXRlcyBpdCBhbmQg aGlnaGxpZ2h0cyB0aGUgcmVnaW9uLCBpcyBjYWxsZWQKICAgICBUcmFuc2llbnQgTWFyayBtb2Rl LiAgSW4gR05VIEVtYWNzIDIzIGFuZCBvbndhcmRzLCBpdCBpcyBlbmFibGVkIGJ5CiAgICAgZGVm YXVsdC4gICpOb3RlIERpc2FibGVkIFRyYW5zaWVudCBNYXJrOjouCgpUcmFuc3Bvc2l0aW9uCiAg ICAgVHJhbnNwb3NpbmcgdHdvIHVuaXRzIG9mIHRleHQgbWVhbnMgcHV0dGluZyBlYWNoIG9uZSBp bnRvIHRoZSBwbGFjZQogICAgIGZvcm1lcmx5IG9jY3VwaWVkIGJ5IHRoZSBvdGhlci4gIFRoZXJl IGFyZSBFbWFjcyBjb21tYW5kcyB0bwogICAgIHRyYW5zcG9zZSB0d28gYWRqYWNlbnQgY2hhcmFj dGVycywgd29yZHMsIGJhbGFuY2VkIGV4cHJlc3Npb25zCiAgICAgKHEudi4pIG9yIGxpbmVzICgq bm90ZSBUcmFuc3Bvc2U6OikuCgpUcmFzaCBDYW4KICAgICAqTm90ZSBHbG9zc2FyeS0tLURlbGV0 aW9uIG9mIEZpbGVzOjouCgpUcnVuY2F0aW9uCiAgICAgVHJ1bmNhdGluZyB0ZXh0IGxpbmVzIGlu IHRoZSBkaXNwbGF5IG1lYW5zIGxlYXZpbmcgb3V0IGFueSB0ZXh0IG9uCiAgICAgYSBsaW5lIHRo YXQgZG9lcyBub3QgZml0IHdpdGhpbiB0aGUgcmlnaHQgbWFyZ2luIG9mIHRoZSB3aW5kb3cKICAg ICBkaXNwbGF5aW5nIGl0LiAgKk5vdGUgVHJ1bmNhdGlvbjogQ29udGludWF0aW9uIExpbmVzLCBh bmQgKm5vdGUKICAgICBHbG9zc2FyeS0tLUNvbnRpbnVhdGlvbiBMaW5lOjouCgpUVFkKICAgICAq Tm90ZSBHbG9zc2FyeS0tLVRleHQgVGVybWluYWw6Oi4KClVuZG9pbmcKICAgICBVbmRvaW5nIG1l YW5zIG1ha2luZyB5b3VyIHByZXZpb3VzIGVkaXRpbmcgZ28gaW4gcmV2ZXJzZSwgYnJpbmdpbmcK ICAgICBiYWNrIHRoZSB0ZXh0IHRoYXQgZXhpc3RlZCBlYXJsaWVyIGluIHRoZSBlZGl0aW5nIHNl c3Npb24uICAqTm90ZQogICAgIFVuZG86Oi4KClVuaXgKICAgICBVbml4IGlzIGEgY2xhc3Mgb2Yg bXVsdGktdXNlciBjb21wdXRlciBvcGVyYXRpbmcgc3lzdGVtcyB3aXRoIGEKICAgICBsb25nIGhp c3RvcnkuICBUaGVyZSBhcmUgc2V2ZXJhbCBpbXBsZW1lbnRhdGlvbnMgdG9kYXkuICBUaGUgR05V CiAgICAgcHJvamVjdCAocS52LikgYWltcyB0byBkZXZlbG9wIGEgY29tcGxldGUgVW5peC1saWtl IG9wZXJhdGluZwogICAgIHN5c3RlbSB0aGF0IGlzIGZyZWUgc29mdHdhcmUgKHEudi4pLgoKVXNl ciBPcHRpb24KICAgICBBIHVzZXIgb3B0aW9uIGlzIGEgZmFjZSAocS52Likgb3IgYSB2YXJpYWJs ZSAocS52LikgdGhhdCBleGlzdHMgc28KICAgICB0aGF0IHlvdSBjYW4gY3VzdG9taXplIEVtYWNz IGJ5IHNldHRpbmcgaXQgdG8gYSBuZXcgdmFsdWUuICAqTm90ZQogICAgIEVhc3kgQ3VzdG9taXph dGlvbjo6LgoKVmFyaWFibGUKICAgICBBIHZhcmlhYmxlIGlzIGFuIG9iamVjdCBpbiBMaXNwIHRo YXQgY2FuIHN0b3JlIGFuIGFyYml0cmFyeSB2YWx1ZS4KICAgICBFbWFjcyB1c2VzIHNvbWUgdmFy aWFibGVzIGZvciBpbnRlcm5hbCBwdXJwb3NlcywgYW5kIGhhcyBvdGhlcnMKICAgICAoa25vd24g YXMg4oCcdXNlciBvcHRpb25z4oCdOyBxLnYuKSBqdXN0IHNvIHRoYXQgeW91IGNhbiBzZXQgdGhl aXIKICAgICB2YWx1ZXMgdG8gY29udHJvbCB0aGUgYmVoYXZpb3Igb2YgRW1hY3MuICBUaGUgdmFy aWFibGVzIHVzZWQgaW4KICAgICBFbWFjcyB0aGF0IHlvdSBhcmUgbGlrZWx5IHRvIGJlIGludGVy ZXN0ZWQgaW4gYXJlIGxpc3RlZCBpbiB0aGUKICAgICBWYXJpYWJsZXMgSW5kZXggaW4gdGhpcyBt YW51YWwgKCpub3RlIFZhcmlhYmxlIEluZGV4OjopLiAgKk5vdGUKICAgICBWYXJpYWJsZXM6Oiwg Zm9yIGluZm9ybWF0aW9uIG9uIHZhcmlhYmxlcy4KClZlcnNpb24gQ29udHJvbAogICAgIFZlcnNp b24gY29udHJvbCBzeXN0ZW1zIGtlZXAgdHJhY2sgb2YgbXVsdGlwbGUgdmVyc2lvbnMgb2YgYSBz b3VyY2UKICAgICBmaWxlLiAgVGhleSBwcm92aWRlIGEgbW9yZSBwb3dlcmZ1bCBhbHRlcm5hdGl2 ZSB0byBrZWVwaW5nIGJhY2t1cAogICAgIGZpbGVzIChxLnYuKS4gICpOb3RlIFZlcnNpb24gQ29u dHJvbDo6LgoKVmlzaXRpbmcKICAgICBWaXNpdGluZyBhIGZpbGUgbWVhbnMgbG9hZGluZyBpdHMg Y29udGVudHMgaW50byBhIGJ1ZmZlciAocS52LikKICAgICB3aGVyZSB0aGV5IGNhbiBiZSBlZGl0 ZWQuICAqTm90ZSBWaXNpdGluZzo6LgoKV2hpdGVzcGFjZQogICAgIFdoaXRlc3BhY2UgaXMgYW55 IHJ1biBvZiBjb25zZWN1dGl2ZSBmb3JtYXR0aW5nIGNoYXJhY3RlcnMgKHNwYWNlLAogICAgIHRh YiwgbmV3bGluZSwgYmFja3NwYWNlLCBldGMuKS4KCldpZGVuaW5nCiAgICAgV2lkZW5pbmcgaXMg cmVtb3ZpbmcgYW55IHJlc3RyaWN0aW9uIChxLnYuKSBvbiB0aGUgY3VycmVudCBidWZmZXI7CiAg ICAgaXQgaXMgdGhlIG9wcG9zaXRlIG9mIG5hcnJvd2luZyAocS52LikuICAqTm90ZSBOYXJyb3dp bmc6Oi4KCldpbmRvdwogICAgIEVtYWNzIGRpdmlkZXMgYSBmcmFtZSAocS52LikgaW50byBvbmUg b3IgbW9yZSB3aW5kb3dzLCBlYWNoIG9mCiAgICAgd2hpY2ggY2FuIGRpc3BsYXkgdGhlIGNvbnRl bnRzIG9mIG9uZSBidWZmZXIgKHEudi4pIGF0IGFueSB0aW1lLgogICAgICpOb3RlIFNjcmVlbjo6 LCBmb3IgYmFzaWMgaW5mb3JtYXRpb24gb24gaG93IEVtYWNzIHVzZXMgdGhlIHNjcmVlbi4KICAg ICAqTm90ZSBXaW5kb3dzOjosIGZvciBjb21tYW5kcyB0byBjb250cm9sIHRoZSB1c2Ugb2Ygd2lu ZG93cy4gIFNvbWUKICAgICBvdGhlciBlZGl0b3JzIHVzZSB0aGUgdGVybSDigJx3aW5kb3figJ0g Zm9yIHdoYXQgd2UgY2FsbCBhIOKAnGZyYW1l4oCdIGluCiAgICAgRW1hY3MuCgpXaW5kb3cgU3lz dGVtCiAgICAgQSB3aW5kb3cgc3lzdGVtIGlzIHNvZnR3YXJlIHRoYXQgb3BlcmF0ZXMgb24gYSBn cmFwaGljYWwgZGlzcGxheQogICAgIChxLnYuKSwgdG8gc3ViZGl2aWRlIHRoZSBzY3JlZW4gc28g dGhhdCBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgY2FuCiAgICAgaGF2ZSB0aGVpciBvd24gd2luZG93 cyBhdCB0aGUgc2FtZSB0aW1lLiAgQWxsIG1vZGVybiBvcGVyYXRpbmcKICAgICBzeXN0ZW1zIGlu Y2x1ZGUgYSB3aW5kb3cgc3lzdGVtLgoKV29yZCBBYmJyZXYKICAgICAqTm90ZSBHbG9zc2FyeS0t LUFiYnJldjo6LgoKV29yZCBTZWFyY2gKICAgICBXb3JkIHNlYXJjaCBpcyBzZWFyY2hpbmcgZm9y IGEgc2VxdWVuY2Ugb2Ygd29yZHMsIGNvbnNpZGVyaW5nIHRoZQogICAgIHB1bmN0dWF0aW9uIGJl dHdlZW4gdGhlbSBhcyBpbnNpZ25pZmljYW50LiAgKk5vdGUgV29yZCBTZWFyY2g6Oi4KCllhbmtp bmcKICAgICBZYW5raW5nIG1lYW5zIHJlaW5zZXJ0aW5nIHRleHQgcHJldmlvdXNseSBraWxsZWQg KHEudi4pLiAgSXQgY2FuIGJlCiAgICAgdXNlZCB0byB1bmRvIGEgbWlzdGFrZW4ga2lsbCwgb3Ig Zm9yIGNvcHlpbmcgb3IgbW92aW5nIHRleHQuICBTb21lCiAgICAgb3RoZXIgc3lzdGVtcyBjYWxs IHRoaXMg4oCccGFzdGluZ+KAnS4gICpOb3RlIFlhbmtpbmc6Oi4KCgoqIEFja25vd2xlZGdtZW50 cwoKTWFueSBwZW9wbGUgaGF2ZSBjb250cmlidXRlZCBjb2RlIGluY2x1ZGVkIGluIHRoZSBGcmVl IFNvZnR3YXJlCkZvdW5kYXRpb27igJlzIGRpc3RyaWJ1dGlvbiBvZiBHTlUgRW1hY3MuICBUbyBz aG93IG91ciBhcHByZWNpYXRpb24gZm9yCnRoZWlyIHB1YmxpYyBzcGlyaXQsIHdlIGxpc3QgaGVy ZSBpbiBhbHBoYWJldGljYWwgb3JkZXIgdGhvc2Ugd2hvIGhhdmUKd3JpdHRlbiBzdWJzdGFudGlh bCBwb3J0aW9ucy4gIE90aGVycyB0b28gbnVtZXJvdXMgdG8gbWVudGlvbiBoYXZlCnJlcG9ydGVk IGFuZCBmaXhlZCBidWdzLCBhbmQgYWRkZWQgZmVhdHVyZXMgdG8gbWFueSBwYXJ0cyBvZiBFbWFj cy4gIFdlCnRoYW5rIHRoZW0gZm9yIHRoZWlyIGdlbmVyb3NpdHkgYXMgd2VsbC4KCiAgIFRoaXMg bGlzdCBpcyBpbnRlbmRlZCB0byBtZW50aW9uIGV2ZXJ5IGNvbnRyaWJ1dG9yIG9mIGEgbWFqb3Ig cGFja2FnZQpvciBmZWF0dXJlIHdlIGN1cnJlbnRseSBkaXN0cmlidXRlOyBpZiB5b3Uga25vdyBv ZiBzb21lb25lIHdlIGhhdmUKb21pdHRlZCwgcGxlYXNlIG1ha2UgYSBidWcgcmVwb3J0LiAgTW9y ZSBjb21wcmVoZW5zaXZlIGluZm9ybWF0aW9uIGlzCmF2YWlsYWJsZSBpbiB0aGUg4oCYQ2hhbmdl TG9n4oCZIGZpbGVzLCBzdW1tYXJpemVkIGluIHRoZSBmaWxlIOKAmGV0Yy9BVVRIT1JT4oCZCmlu IHRoZSBkaXN0cmlidXRpb24uCgogICDigKIgUGVyIEFicmFoYW1zZW4gd3JvdGUgdGhlIGN1c3Rv bWl6YXRpb24gZmFjaWxpdGllcywgYXMgd2VsbCBhcwogICAgIOKAmGRvdWJsZS5lbOKAmSwgZm9y IHR5cGluZyBhY2NlbnRlZCBjaGFyYWN0ZXJzIG5vdCBub3JtYWxseSBhdmFpbGFibGUKICAgICBm cm9tIHRoZSBrZXlib2FyZDsg4oCYeHQtbW91c2UuZWzigJksIHdoaWNoIGFsbG93cyBtb3VzZSBj b21tYW5kcwogICAgIHRocm91Z2ggWHRlcm07IOKAmGdudXMtY3VzLmVs4oCZLCB3aGljaCBpbXBs ZW1lbnRzIGN1c3RvbWl6YXRpb24KICAgICBjb21tYW5kcyBmb3IgR251czsg4oCYZ251cy1jaXRl LmVs4oCZLCBhIGNpdGF0aW9uLXBhcnNpbmcgZmFjaWxpdHkgZm9yCiAgICAgbmV3cyBhcnRpY2xl czsg4oCYZ251cy1zY29yZS5lbOKAmSwgc2NvcmluZyBmb3IgR251czsg4oCYY3BwLmVs4oCZLCB3 aGljaAogICAgIGhpZGVzIG9yIGhpZ2hsaWdodHMgcGFydHMgb2YgQyBwcm9ncmFtcyBhY2NvcmRp bmcgdG8gcHJlcHJvY2Vzc29yCiAgICAgY29uZGl0aW9uYWxzOyBhbmQgdGhlIHdpZGdldCBsaWJy YXJ5IGZpbGVzIOKAmHdpZC1icm93c2UuZWzigJksCiAgICAg4oCYd2lkLWVkaXQuZWzigJksIOKA mHdpZGdldC5lbOKAmS4gIEhlIGFsc28gY28td3JvdGUg4oCYZ251cy1zb3VwLmVs4oCZLgoKICAg 4oCiIFRvbWFzIEFicmFoYW1zc29uIHdyb3RlIOKAmGFydGlzdC5lbOKAmSwgYSBwYWNrYWdlIGZv ciBwcm9kdWNpbmcgQVNDSUkKICAgICBhcnQgd2l0aCBhIG1vdXNlIG9yIHdpdGgga2V5Ym9hcmQg a2V5cy4KCiAgIOKAoiBKYXkgSy4gQWRhbXMgd3JvdGUg4oCYamthLWNvbXByLmVs4oCZIGFuZCDi gJhqa2EtY21wci1ob29rLmVs4oCZLCBwcm92aWRpbmcKICAgICBhdXRvbWF0aWMgZGVjb21wcmVz c2lvbiBhbmQgcmVjb21wcmVzc2lvbiBmb3IgY29tcHJlc3NlZCBmaWxlcy4KCiAgIOKAoiBNaWNo YWVsIEFsYmludXMgd3JvdGUg4oCYZGJ1cy5lbOKAmSwgYSBwYWNrYWdlIHRoYXQgaW1wbGVtZW50 cyB0aGUKICAgICBELUJ1cyBtZXNzYWdlIGJ1cyBwcm90b2NvbDsg4oCYemVyb2NvbmYuZWzigJks IGEgbW9kZSBmb3IgYnJvd3NpbmcKICAgICBBdmFoaSBzZXJ2aWNlczsg4oCYc2VjcmV0cy5lbOKA mSwgYW4gaW50ZXJmYWNlIHRvIGtleXJpbmcgZGFlbW9ucyBmb3IKICAgICBzdG9yaW5nIGNvbmZp ZGVudGlhbCBkYXRhOyBhbmQg4oCYZmlsZW5vdGlmeS5lbOKAmSBhbmQgdGhlIGFzc29jaWF0ZWQK ICAgICBsb3ctbGV2ZWwgaW50ZXJmYWNlIHJvdXRpbmVzLCBmb3Igd2F0Y2hpbmcgZmlsZSBzdGF0 dXMgY2hhbmdlcy4gIEhlCiAgICAgYW5kIEthaSBHcm/Dn2pvaGFubiB3cm90ZSB0aGUgVHJhbXAg cGFja2FnZSwgd2hpY2ggcHJvdmlkZXMKICAgICB0cmFuc3BhcmVudCByZW1vdGUgZmlsZSBlZGl0 aW5nIHVzaW5nIHNzaCwgZnRwLCBhbmQgb3RoZXIgbmV0d29yawogICAgIHByb3RvY29scy4gIEhl IGFuZCBEYW5pZWwgUGl0dG1hbiB3cm90ZSDigJh0cmFtcC1jYWNoZS5lbOKAmS4KCiAgIOKAoiBS YWxmIEFuZ2VsaSB3cm90ZSDigJhzY3JvbGwtbG9jay5lbOKAmSwgYSBtaW5vciBtb2RlIHdoaWNo IGtlZXBzIHRoZQogICAgIHBvaW50IHZlcnRpY2FsbHkgZml4ZWQgYnkgc2Nyb2xsaW5nIHRoZSB3 aW5kb3cgd2hlbiBtb3ZpbmcgdXAgYW5kCiAgICAgZG93biBpbiB0aGUgYnVmZmVyLgoKICAg4oCi IEF1csOpbGllbiBBcHRlbCBhZGRlZCBkeW5hbWljIG1vZHVsZSBzdXBwb3J0IHRvIEVtYWNzLiAg UGhpbGlwcAogICAgIFN0ZXBoYW5pIGFuZCBvdGhlcnMgYWxzbyB3b3JrZWQgb24gdGhlIGR5bmFt aWMgbW9kdWxlIGNvZGUuCgogICDigKIgSm9lIEFyY2VuZWF1eCB3cm90ZSB0aGUgb3JpZ2luYWwg dGV4dCBwcm9wZXJ0eSBpbXBsZW1lbnRhdGlvbiwgYW5kCiAgICAgaW1wbGVtZW50ZWQgc3VwcG9y dCBmb3IgWDExLgoKICAg4oCiIEVtaWwgw4VzdHLDtm0sIE1pbGFuIFphbWF6YSwgYW5kIFN0ZWZh biBCcnVkYSB3cm90ZSDigJhwcm9sb2cuZWzigJksIGEKICAgICBtb2RlIGZvciBlZGl0aW5nIFBy b2xvZyAoYW5kIE1lcmN1cnkpIGNvZGUuCgogICDigKIgTWlsZXMgQmFkZXIgd3JvdGUg4oCYaW1h Z2UtZmlsZS5lbOKAmSwgc3VwcG9ydCBjb2RlIGZvciB2aXNpdGluZyBpbWFnZQogICAgIGZpbGVz OyDigJhtaW5pYnVmLWVsZGVmLmVs4oCZLCBhIG1pbm9yIG1vZGUgdGhhdCBoaWRlcyB0aGUgbWlu aWJ1ZmZlcgogICAgIGRlZmF1bHQgdmFsdWUgd2hlbiBhcHByb3ByaWF0ZTsg4oCYcmZuLWVzaGFk b3cuZWzigJksIHNoYWRvd2luZyBvZgogICAgIOKAmHJlYWQtZmlsZS1uYW1l4oCZIGlucHV0OyDi gJhtYi1kZXB0aC5lbOKAmSwgZGlzcGxheSBvZiBtaW5pYnVmZmVyIGRlcHRoOwogICAgIOKAmGJ1 dHRvbi5lbOKAmSwgdGhlIGxpYnJhcnkgdGhhdCBpbXBsZW1lbnRzIGNsaWNrYWJsZSBidXR0b25z OwogICAgIOKAmGZhY2UtcmVtYXAuZWzigJksIGEgcGFja2FnZSBmb3IgY2hhbmdpbmcgdGhlIGRl ZmF1bHQgZmFjZSBpbgogICAgIGluZGl2aWR1YWwgYnVmZmVyczsgYW5kIOKAmG1hY3JvZXhwLmVs 4oCZIGZvciBtYWNyby1leHBhbnNpb24uICBIZSBhbHNvCiAgICAgd29ya2VkIG9uIGFuIGVhcmx5 IHZlcnNpb24gb2YgdGhlIGxleGljYWwgYmluZGluZyBjb2RlLgoKICAg4oCiIERhdmlkIEJha2hh c2ggd3JvdGUg4oCYc3Ryb2tlcy5lbOKAmSwgYSBtb2RlIGZvciBjb250cm9sbGluZyBFbWFjcyBi eQogICAgIG1vdmluZyB0aGUgbW91c2UgaW4gcGFydGljdWxhciBwYXR0ZXJucy4KCiAgIOKAoiBK dWFubWEgQmFycmFucXVlcm8gd3JvdGUg4oCYZW1hY3MtbG9jay5lbOKAmSAoYmFzZWQgb24gdGhl IG9yaWdpbmFsCiAgICAgdmVyc2lvbiBieSBUb20gV3VyZ2xlciksIHdoaWNoIG1ha2VzIGl0IGhh cmRlciB0byBleGl0IHdpdGgKICAgICB2YWx1YWJsZSBidWZmZXJzIHVuc2F2ZWQ7IGFuZCDigJhm cmFtZXNldC5lbOKAmSwgZm9yIHNhdmluZyBhbmQKICAgICByZXN0b3JpbmcgdGhlIGZyYW1lL3dp bmRvdyBzZXR1cC4gIEhlIGFsc28gbWFkZSBtYW55IG90aGVyCiAgICAgY29udHJpYnV0aW9ucyB0 byBvdGhlciBhcmVhcywgaW5jbHVkaW5nIE1TIFdpbmRvd3Mgc3VwcG9ydC4KCiAgIOKAoiBFbGkg QmFyemlsYXkgd3JvdGUg4oCYY2FsY3VsYXRvci5lbOKAmSwgYSBkZXNrdG9wIGNhbGN1bGF0b3Ig Zm9yIEVtYWNzLgoKICAg4oCiIFN0ZXZlbiBMLiBCYXVyIHdyb3RlIOKAmGZvb3Rub3RlLmVs4oCZ IHdoaWNoIGxldHMgeW91IGluY2x1ZGUgZm9vdG5vdGVzCiAgICAgaW4gZW1haWwgbWVzc2FnZXM7 IGFuZCDigJhnbnVzLWF1ZGlvLmVs4oCZIGFuZCDigJhlYXJjb24uZWzigJksIHdoaWNoCiAgICAg cHJvdmlkZSBzb3VuZCBlZmZlY3RzIGZvciBHbnVzLiAgSGUgYWxzbyB3cm90ZSDigJhnbnVzLXNl dHVwLmVs4oCZLgoKICAg4oCiIEFsZXhhbmRlciBMLiBCZWxpa29mZiwgU2VyZ2V5IEJlcmV6aW4s IFNhY2hhIENodWEsIERhdmlkIEVkbW9uZHNvbiwKICAgICBOb2FoIEZyaWVkbWFuLCBBbmRyZWFz IEZ1Y2hzLCBNYXJpbyBMYW5nLCBCZW4gTWVzYW5kZXIsIExhd3JlbmNlCiAgICAgTWl0Y2hlbGws IEdlcmdlbHkgTmFneSwgTWljaGFlbCBPbHNvbiwgUGVyIFBlcnNzb24sIEpvcmdlbiBTY2jDpGZl ciwKICAgICBBbGV4IFNjaHJvZWRlciwgYW5kIFRvbSBUcm9tZXkgd3JvdGUgRVJDLCBhbiBhZHZh bmNlZCBJbnRlcm5ldAogICAgIFJlbGF5IENoYXQgY2xpZW50IChmb3IgbW9yZSBpbmZvcm1hdGlv biwgc2VlIHRoZSBmaWxlIOKAmENSRURJVFPigJkgaW4KICAgICB0aGUgRVJDIGRpc3RyaWJ1dGlv bikuCgogICDigKIgU2NvdHQgQmVuZGVyLCBNaWNoYWVsIEJyb3V3ZXIsIENocmlzdG9waGUgZGUg RGluZWNoaW4sIENhcmwgRWRtYW4sCiAgICAgQ2hyaXN0aWFuIExpbXBhY2ggYW5kIEFkcmlhbiBS b2JlcnQgZGV2ZWxvcGVkIGFuZCBtYWludGFpbmVkIHRoZQogICAgIE5lWFRzdGVwIHBvcnQgb2Yg RW1hY3MuCgogICDigKIgU3RlcGhlbiBCZXJtYW4gd3JvdGUg4oCYdG9kby1tb2RlLmVs4oCZIChi YXNlZCBvbiB0aGUgb3JpZ2luYWwgdmVyc2lvbgogICAgIGJ5IE9saXZlciBTZWlkZWwpLCBhIHBh Y2thZ2UgZm9yIG1haW50YWluaW5nIOKAmFRPRE/igJkgbGlzdCBmaWxlcy4KCiAgIOKAoiBBbm5h IE0uIEJpZ2F0dGkgd3JvdGUg4oCYY2FsLWh0bWwuZWzigJksIHdoaWNoIHByb2R1Y2VzIEhUTUwg Y2FsZW5kYXJzLgoKICAg4oCiIFJheSBCbGFhayBhbmQgU2ltb24gU291dGggd3JvdGUg4oCYb3Bh c2NhbC5lbOKAmSwgYSBtb2RlIGZvciBlZGl0aW5nCiAgICAgT2JqZWN0IFBhc2NhbCBzb3VyY2Ug Y29kZS4KCiAgIOKAoiBNYXJ0aW4gQmxhaXMsIFN0ZWZhbiBNZXJ0ZW4sIGFuZCBEYXZpZCBHb29k Z2VyIHdyb3RlIOKAmHJzdC5lbOKAmSwgYQogICAgIG1vZGUgZm9yIGVkaXRpbmcgcmVTdHJ1Y3R1 cmVkVGV4dCBkb2N1bWVudHMuCgogICDigKIgSmltIEJsYW5keSB3cm90ZSBFbWFjcyAxOeKAmXMg aW5wdXQgc3lzdGVtLCBicm91Z2h0IGl0cyBjb25maWd1cmF0aW9uCiAgICAgYW5kIGJ1aWxkIHBy b2Nlc3MgdXAgdG8gdGhlIEdOVSBjb2Rpbmcgc3RhbmRhcmRzLCBhbmQgY29udHJpYnV0ZWQKICAg ICB0byB0aGUgZnJhbWUgc3VwcG9ydCBhbmQgbXVsdGktZmFjZSBzdXBwb3J0LiAgSmltIGFsc28g d3JvdGUKICAgICDigJh0dmk5NzAuZWzigJksIHRlcm1pbmFsIHN1cHBvcnQgZm9yIHRoZSBUZWxl VmlkZW8gOTcwIHRlcm1pbmFsczsgYW5kCiAgICAgY28td3JvdGUg4oCYd3lzZTUwLmVs4oCZIChx LnYuKS4KCiAgIOKAoiBQZXIgQm90aG5lciB3cm90ZSDigJh0ZXJtLmVs4oCZLCBhIHRlcm1pbmFs IGVtdWxhdG9yIGluIGFuIEVtYWNzCiAgICAgYnVmZmVyLgoKICAg4oCiIFRlcnJlbmNlIE0uIEJy YW5ub24gd3JvdGUg4oCYbGFuZG1hcmsuZWzigJksIGEgbmV1cmFsLW5ldHdvcmsgcm9ib3QKICAg ICB0aGF0IGxlYXJucyBsYW5kbWFya3MuCgogICDigKIgRnJhbmsgQnJlc3ogd3JvdGUg4oCYZGlm Zi5lbOKAmSwgYSBwcm9ncmFtIHRvIGRpc3BsYXkg4oCYZGlmZuKAmSBvdXRwdXQuCgogICDigKIg UGV0ZXIgQnJldG9uIGltcGxlbWVudGVkIOKAmGRpcnRyYWNrLmVs4oCZLCBhIGxpYnJhcnkgZm9y IHRyYWNraW5nCiAgICAgZGlyZWN0b3J5IGNoYW5nZXMgaW4gc2hlbGwgYnVmZmVyczsg4oCYZmls ZWNhY2hlLmVs4oCZLCB3aGljaCByZWNvcmRzCiAgICAgd2hpY2ggZGlyZWN0b3JpZXMgeW91ciBm aWxlcyBhcmUgaW47IOKAmGxvY2F0ZS5lbOKAmSwgd2hpY2ggaW50ZXJmYWNlcwogICAgIHRvIHRo ZSDigJhsb2NhdGXigJkgY29tbWFuZDsg4oCYZmluZC1saXNwLmVs4oCZLCBhbiBFbWFjcyBMaXNw IGVtdWxhdGlvbiBvZgogICAgIHRoZSDigJhmaW5k4oCZIHByb2dyYW07IOKAmG5ldC11dGlscy5l bOKAmTsgYW5kIHRoZSBnZW5lcmljIG1vZGUgZmVhdHVyZS4KCiAgIOKAoiBFbW1hbnVlbCBCcmlv dCB3cm90ZSDigJh4bWwuZWzigJksIGFuIFhNTCBwYXJzZXIgZm9yIEVtYWNzOyBhbmQKICAgICDi gJhhZGEtcHJqLmVs4oCZLCBlZGl0aW5nIG9mIEFkYSBtb2RlIHByb2plY3QgZmlsZXMsIGFzIHdl bGwgYXMKICAgICBjby1hdXRob3Jpbmcg4oCYYWRhLW1vZGUuZWzigJkgYW5kIOKAmGFkYS14cmVm LmVs4oCZLgoKICAg4oCiIEtldmluIEJyb2FkZXkgd3JvdGUg4oCYZm9sZG91dC5lbOKAmSwgcHJv dmlkaW5nIGZvbGRpbmcgZXh0ZW5zaW9ucyB0bwogICAgIEVtYWNz4oCZcyBvdXRsaW5lIG1vZGVz LgoKICAg4oCiIERhdmlkIE0uIEJyb3duIHdyb3RlIOKAmGFycmF5LmVs4oCZLCBmb3IgZWRpdGlu ZyBhcnJheXMgYW5kIG90aGVyCiAgICAgdGFidWxhciBkYXRhLgoKICAg4oCiIFfFgm9kZWsgQnp5 bCBhbmQgUnlzemFyZCBLdWJpYWsgd3JvdGUg4oCYb2dvbmVrLmVs4oCZLCBhIHBhY2thZ2UgZm9y CiAgICAgY2hhbmdpbmcgdGhlIGVuY29kaW5nIG9mIFBvbGlzaCBjaGFyYWN0ZXJzLgoKICAg4oCi IEJpbGwgQ2FycGVudGVyIHByb3ZpZGVkIOKAmGZlZWRtYWlsLmVs4oCZLCBhIHBhY2thZ2UgZm9y IG1hc3NhZ2luZwogICAgIG91dGdvaW5nIG1haWwgbWVzc2FnZXMgYW5kIHNlbmRpbmcgdGhlbSB0 aHJvdWdoIHZhcmlvdXMgcG9wdWxhcgogICAgIG1haWxlcnMuCgogICDigKIgUGVyIENlZGVycXZp c3QgYW5kIEluZ2UgV2FsbGluIHdyb3RlIOKAmGV3b2MuZWzigJksIGFuIEVtYWNzIHdpZGdldCBm b3IKICAgICBtYW5pcHVsYXRpbmcgb2JqZWN0IGNvbGxlY3Rpb25zLiAgUGVyIENlZGVycXZpc3Qs IEluZ2UgV2FsbGluLCBhbmQKICAgICBUaG9tYXMgQmVsbG1hbiB3cm90ZSDigJhhdmwtdHJlZS5l bOKAmSwgZm9yIGJhbGFuY2VkIGJpbmFyeSB0cmVlcy4KCiAgIOKAoiBIYW5zIENoYWx1cHNreSB3 cm90ZSDigJhhZHZpY2UuZWzigJksIGFuIG92ZXJsb2FkaW5nIG1lY2hhbmlzbSBmb3IKICAgICBF bWFjcyBMaXNwIGZ1bmN0aW9uczsgYW5kIOKAmHRyYWNlLmVs4oCZLCBhIHRyYWNpbmcgZmFjaWxp dHkgZm9yIEVtYWNzCiAgICAgTGlzcC4KCiAgIOKAoiBDaHJpcyBDaGFzZSwgQ2Fyc3RlbiBEb21p bmlrLCBhbmQgSi4gRC4gU21pdGggd3JvdGUgSURMV0FWRSBtb2RlLAogICAgIGZvciBlZGl0aW5n IElETCBhbmQgV0FWRSBDTC4KCiAgIOKAoiBCb2IgQ2hhc3NlbGwgd3JvdGUg4oCYdGV4bmZvLXVw ZC5lbOKAmSwg4oCYdGV4aW5mby5lbOKAmSwgYW5kCiAgICAg4oCYbWFrZWluZm8uZWzigJksIG1v ZGVzIGFuZCB1dGlsaXRpZXMgZm9yIHdvcmtpbmcgd2l0aCBUZXhpbmZvIGZpbGVzOwogICAgIGFu ZCDigJhwYWdlLWV4dC5lbOKAmSwgY29tbWFuZHMgZm9yIGV4dGVuZGVkIHBhZ2UgaGFuZGxpbmcu ICBIZSBhbHNvCiAgICAgd3JvdGUgdGhlIEVtYWNzIExpc3AgaW50cm9kdWN0aW9uLiAgKk5vdGUg KGVpbnRyKVRvcDo6LgoKICAg4oCiIEppaHl1biBDaG8gd3JvdGUg4oCYaGFuamEtdXRpbC5lbOKA mSBhbmQg4oCYaGFuZ3VsLmVs4oCZLCB1dGlsaXRpZXMgZm9yCiAgICAgS29yZWFuIEhhbmphLgoK ICAg4oCiIEFuZHJldyBDaG9pIGFuZCBZYW1hbW90byBNaXRzdWhhcnUgd3JvdGUgdGhlIENhcmJv biBzdXBwb3J0LCB1c2VkCiAgICAgcHJpb3IgdG8gRW1hY3MgMjMgZm9yIG1hY09TLiAgWWFtYW1v dG8gTWl0c3VoYXJ1IGNvbnRpbnVlZCB0bwogICAgIGNvbnRyaWJ1dGUgdG8gbWFjT1Mgc3VwcG9y dCBpbiB0aGUgbmV3ZXIgTmV4dHN0ZXAgcG9ydDsgYW5kIGFsc28KICAgICBpbXByb3ZlZCBzdXBw b3J0IGZvciBtdWx0aS1tb25pdG9yIGRpc3BsYXlzLgoKICAg4oCiIENob25nIFlpZG9uZyB3YXMg dGhlIEVtYWNzIGNvLW1haW50YWluZXIgZnJvbSBFbWFjcyAyMyB0byAyNC4zLiAgSGUKICAgICBt YWRlIG1hbnkgaW1wcm92ZW1lbnRzIHRvIHRoZSBFbWFjcyBkaXNwbGF5IGVuZ2luZS4gIEhlIGFs c28gd3JvdGUKICAgICDigJh0YWJ1bGF0ZWQtbGlzdC5lbOKAmSwgYSBnZW5lcmljIG1ham9yIG1v ZGUgZm9yIGxpc3RzIG9mIGRhdGE7IGFuZAogICAgIGltcHJvdmVkIHN1cHBvcnQgZm9yIHRoZW1l cyBhbmQgcGFja2FnZXMuCgogICDigKIgSmFtZXMgQ2xhcmsgd3JvdGUgU0dNTCBtb2RlLCBhIG1v ZGUgZm9yIGVkaXRpbmcgU0dNTCBkb2N1bWVudHM7IGFuZAogICAgIG5YTUwgbW9kZSwgYSBtb2Rl IGZvciBlZGl0aW5nIFhNTCBkb2N1bWVudHMuICBIZSBhbHNvIGNvbnRyaWJ1dGVkCiAgICAgdG8g RW1hY3PigJlzIGR1bXBpbmcgcHJvY2VkdXJlcy4KCiAgIOKAoiBNaWtlIENsYXJrc29uIHdyb3Rl IOKAmGVkdC5lbOKAmSwgYW4gZW11bGF0aW9uIG9mIERFQ+KAmXMgRURUIGVkaXRvci4KCiAgIOKA oiBHbHlubiBDbGVtZW50cyBwcm92aWRlZCDigJhnYW1lZ3JpZC5lbOKAmSBhbmQgYSBjb3VwbGUg b2YgZ2FtZXMgdGhhdAogICAgIHVzZSBpdCwgU25ha2UgYW5kIFRldHJpcy4KCiAgIOKAoiBBbmRy ZXcgQ29oZW4gd3JvdGUg4oCYc3BhbS13YXNoLmVs4oCZLCB0byBkZWNvZGUgYW5kIGNsZWFuIGVt YWlsIGJlZm9yZQogICAgIGl0IGlzIGFuYWx5emVkIGZvciBzcGFtLgoKICAg4oCiIFRoZXJlc2Eg T+KAmUNvbm5vciB3cm90ZSDigJhqc29uLmVs4oCZLCBhIGZpbGUgZm9yIHBhcnNpbmcgYW5kIGdl bmVyYXRpbmcKICAgICBKU09OIGZpbGVzLgoKICAg4oCiIEdlb3JnZXMgQnJ1bi1Db3R0YW4gYW5k IFN0ZWZhbiBNb25uaWVyIHdyb3RlIOKAmGVhc3ktbW1vZGUuZWzigJksIGEKICAgICBwYWNrYWdl IGZvciBlYXN5IGRlZmluaXRpb24gb2YgbWFqb3IgYW5kIG1pbm9yIG1vZGVzLgoKICAg4oCiIEFu ZHJldyBDc2lsbGFnIHdyb3RlIE00IG1vZGUgKOKAmG00LW1vZGUuZWzigJkpLgoKICAg4oCiIERv dWcgQ3V0dGluZyBhbmQgSmFtaWUgWmF3aW5za2kgd3JvdGUg4oCYZGlzYXNzLmVs4oCZLCBhIGRp c2Fzc2VtYmxlcgogICAgIGZvciBjb21waWxlZCBFbWFjcyBMaXNwIGNvZGUuCgogICDigKIgTWF0 aGlhcyBEYWhsIHdyb3RlIOKAmGltYWdlLWRpcmVkLmVs4oCZLCBhIHBhY2thZ2UgZm9yIHZpZXdp bmcgaW1hZ2UKICAgICBmaWxlcyBhcyB0aHVtYm5haWxzLgoKICAg4oCiIEp1bGllbiBEYW5qb3Ug d3JvdGUgYW4gaW1wbGVtZW50YXRpb24gb2YgZGVza3RvcCBub3RpZmljYXRpb25zCiAgICAgKOKA mG5vdGlmaWNhdGlvbnMuZWzigJksIGFuZCByZWxhdGVkIHBhY2thZ2VzIGZvciBFUkMgYW5kIEdu dXMpOyBhbmQKICAgICDigJhjb2xvci5lbOKAmSwgYSBsaWJyYXJ5IGZvciBnZW5lcmFsIGNvbG9y IG1hbmlwdWxhdGlvbi4gIEhlIGFsc28gbWFkZQogICAgIHZhcmlvdXMgY29udHJpYnV0aW9ucyB0 byBHbnVzLgoKICAg4oCiIFZpdmVrIERhc21vaGFwYXRyYSB3cm90ZSDigJhodG1sZm9udGlmeS5l bOKAmSwgdG8gY29udmVydCBhIGJ1ZmZlciBvcgogICAgIHNvdXJjZSB0cmVlIHRvIEhUTUwuCgog ICDigKIgTWF0dGhpZXUgRGV2aW4gd3JvdGUg4oCYZGVsc2VsLmVs4oCZLCBhIHBhY2thZ2UgdG8g bWFrZSBuZXdseS10eXBlZAogICAgIHRleHQgcmVwbGFjZSB0aGUgY3VycmVudCBzZWxlY3Rpb24u CgogICDigKIgRXJpYyBEaW5nIHdyb3RlIOKAmGdvdG8tYWRkci5lbOKAmSwKCiAgIOKAoiBKYW4g RGrDpHJ2IGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBHVEsrIHRvb2xraXQgYW5kIFggZHJhZy1hbmQt ZHJvcC4KICAgICBIZSBhbHNvIHdyb3RlIOKAmGR5bmFtaWMtc2V0dGluZy5lbOKAmS4KCiAgIOKA oiBDYXJzdGVuIERvbWluaWsgd3JvdGUgUmVmVGVYLCBhIHBhY2thZ2UgZm9yIHNldHRpbmcgdXAg bGFiZWxzIGFuZAogICAgIGNyb3NzLXJlZmVyZW5jZXMgaW4gTGFUZVggZG9jdW1lbnRzOyBhbmQg Y28td3JvdGUgSURMV0FWRSBtb2RlCiAgICAgKHEudi4pLiAgSGUgd2FzIHRoZSBvcmlnaW5hbCBh dXRob3Igb2YgT3JnIG1vZGUsIGZvciBtYWludGFpbmluZwogICAgIG5vdGVzLCB0b2RvIGxpc3Rz LCBhbmQgcHJvamVjdCBwbGFubmluZy4gIEJhc3RpZW4gR3VlcnJ5CiAgICAgc3Vic2VxdWVudGx5 IHRvb2sgb3ZlciBtYWludGFpbmVyc2hpcC4gIEJlbmphbWluIEFuZHJlc2VuLCBUaG9tYXMKICAg ICBCYXVtYW5uLCBKb2VsIEJvZWhsYW5kLCBKYW4gQsO2Y2tlciwgTGVubmFydCBCb3JnbWFuLCBC YW9xaXUgQ3VpLAogICAgIERhbiBEYXZpc29uLCBDaHJpc3RpYW4gRWdsaSwgRXJpYyBTLiBGcmFn YSwgRGFuaWVsIEdlcm1hbiwgQ2hyaXMKICAgICBHcmF5LCBLb25yYWQgSGluc2VuLCBUYXNzaWxv IEhvcm4sIFBoaWxpcCBKYWNrc29uLCBNYXJ0eW4gSmFnbywKICAgICBUaG9yc3RlbiBKb2xpdHos IEphbWJ1bmF0aGFuIEssIFRva3V5YSBLYW1lc2hpbWEsIFNlcmdleSBMaXR2aW5vdiwKICAgICBE YXZpZCBNYXVzLCBSb3NzIFBhdHRlcnNvbiwgSnVhbiBQZWNoaWFyLCBTZWJhc3RpYW4gUm9zZSwg RXJpYwogICAgIFNjaHVsdGUsIFBhdWwgU2V4dG9uLCBVbGYgU3RlZ2VtYW5uLCBBbmR5IFN0ZXdh cnQsIENocmlzdG9waGVyCiAgICAgU3Vja2xpbmcsIERhdmlkIE/igJlUb29sZSwgSm9obiBXaWVn bGV5LCBaaGFuZyBXZWl6ZSwgUGlvdHIKICAgICBaaWVsacWEc2tpLCBhbmQgb3RoZXJzIGFsc28g d3JvdGUgdmFyaW91cyBPcmcgbW9kZSBjb21wb25lbnRzLiAgRm9yCiAgICAgbW9yZSBpbmZvcm1h dGlvbiwgKm5vdGUgKG9yZylIaXN0b3J5IGFuZCBhY2tub3dsZWRnbWVudHM6Oi4KCiAgIOKAoiBT Y290dCBEcmF2ZXMgd3JvdGUg4oCYdHEuZWzigJksIGhlbHAgZnVuY3Rpb25zIGZvciBtYWludGFp bmluZwogICAgIHRyYW5zYWN0aW9uIHF1ZXVlcyBiZXR3ZWVuIEVtYWNzIGFuZCBpdHMgc3VicHJv Y2Vzc2VzLgoKICAg4oCiIEJlbmphbWluIERyaWV1IHdyb3RlIOKAmHBvbmcuZWzigJksIGFuIGlt cGxlbWVudGF0aW9uIG9mIHRoZSBjbGFzc2ljYWwKICAgICBwb25nIGdhbWUuCgogICDigKIgVmlr dG9yIER1a2hvdm5pIHdyb3RlIHN1cHBvcnQgZm9yIGR1bXBpbmcgdW5kZXIgU3VuT1MgdmVyc2lv biA0LgoKICAg4oCiIEpvaG4gRWF0b24gYW5kIEt1cnQgSG9ybmlrIHdyb3RlIE9jdGF2ZSBtb2Rl LgoKICAg4oCiIFJvbGYgRWJlcnQsIE1hcmt1cyBIZXJpdHNjaCwgYW5kIEVtbWFudWVsIEJyaW90 IHdyb3RlIEFkYSBtb2RlLgoKICAg4oCiIFBhdWwgRWdnZXJ0IGludGVncmF0ZWQgdGhlIEdudWxp YiBwb3J0YWJpbGl0eSBsaWJyYXJ5LCBhbmQgbWFkZQogICAgIG1hbnkgb3RoZXIgcG9ydGFiaWxp dHkgZml4ZXMgdG8gdGhlIEMgY29kZTsgYXMgd2VsbCBhcyBoaXMKICAgICBjb250cmlidXRpb25z IHRvIFZDIGFuZCB0aGUgY2FsZW5kYXIuCgogICDigKIgU3RlcGhlbiBFZ2xlbiB3cm90ZSDigJht c3Bvb2xzLmVs4oCZLCB3aGljaCB0ZWxscyB5b3Ugd2hpY2ggUHJvY21haWwKICAgICBmb2xkZXJz IGhhdmUgbWFpbCB3YWl0aW5nIGluIHRoZW0uCgogICDigKIgVG9yYmrDtnJuIEVpbmFyc3NvbiB3 cm90ZSDigJhmOTAuZWzigJksIGEgbW9kZSBmb3IgRm9ydHJhbiA5MCBmaWxlcy4KCiAgIOKAoiBU c3VndXRvbW8gRW5hbWkgY28td3JvdGUgdGhlIHN1cHBvcnQgZm9yIGludGVybmF0aW9uYWwgY2hh cmFjdGVyCiAgICAgc2V0cy4KCiAgIOKAoiBEYXZpZCBFbmdzdGVyIHdyb3RlIOKAmG1haXJpeC5l bOKAmSBhbmQg4oCYbm5tYWlyaXguZWzigJksIGFuIGludGVyZmFjZSB0bwogICAgIHRoZSBNYWly aXggaW5kZXhpbmcgdG9vbC4KCiAgIOKAoiBIYW5zIEhlbnJpayBFcmlrc2VuIHdyb3RlIOKAmHNp bXVsYS5lbOKAmSwgYSBtb2RlIGZvciBlZGl0aW5nIFNJTVVMQSA4NwogICAgIGNvZGUuCgogICDi gKIgTWljaGFlbCBFcm5zdCB3cm90ZSDigJhyZXBvc2l0aW9uLmVs4oCZLCBhIGNvbW1hbmQgZm9y IHJlY2VudGVyaW5nIGEKICAgICBmdW5jdGlvbuKAmXMgc291cmNlIGNvZGUgYW5kIHByZWNlZGlu ZyBjb21tZW50IG9uIHRoZSBzY3JlZW4uCgogICDigKIgQXRhIEV0ZW1hZGkgd3JvdGUg4oCYY2Rs LmVs4oCZLCBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBDb21tb24gRGF0YQogICAgIExhbmd1 YWdlIHNvdXJjZSBjb2RlLgoKICAg4oCiIEZyZWRlcmljayBGYXJuYmFjaCBpbXBsZW1lbnRlZCDi gJhtb3JzZS5lbOKAmSwgd2hpY2ggY29udmVydHMgdGV4dCB0bwogICAgIE1vcnNlIGNvZGUuCgog ICDigKIgT3NjYXIgRmlndWVpcmVkbyB3cm90ZSBFVURDLCB0aGUgRW1hY3MgVW5pZmllZCBEaXJl Y3RvcnkgQ2xpZW50LAogICAgIHdoaWNoIGlzIGFuIGludGVyZmFjZSB0byBkaXJlY3Rvcnkgc2Vy dmVycyB2aWEgTERBUCwgQ0NTTyBQSC9RSSwgb3IKICAgICBCQkRCOyBhbmQg4oCYbGRhcC5lbOKA mSwgdGhlIExEQVAgY2xpZW50IGludGVyZmFjZS4KCiAgIOKAoiBGcmVkIEZpc2ggd3JvdGUgdGhl IHN1cHBvcnQgZm9yIGR1bXBpbmcgQ09GRiBleGVjdXRhYmxlIGZpbGVzLgoKICAg4oCiIEthcmwg Rm9nZWwgd3JvdGUg4oCYYm9va21hcmsuZWzigJksIHdoaWNoIGltcGxlbWVudHMgbmFtZWQKICAg ICBwbGFjZWhvbGRlcnM7IOKAmG1haWwtaGlzdC5lbOKAmSwgYSBoaXN0b3J5IG1lY2hhbmlzbSBm b3Igb3V0Z29pbmcgbWFpbAogICAgIG1lc3NhZ2VzOyBhbmQg4oCYc2F2ZXBsYWNlLmVs4oCZLCBm b3IgcHJlc2VydmluZyBwb2ludOKAmXMgbG9jYXRpb24gaW4KICAgICBmaWxlcyBiZXR3ZWVuIGVk aXRpbmcgc2Vzc2lvbnMuCgogICDigKIgR2FyeSBGb3N0ZXIgd3JvdGUg4oCYc2Nyb2xsLWFsbC5l bOKAmSwgYSBtb2RlIGZvciBzY3JvbGxpbmcgc2V2ZXJhbAogICAgIGJ1ZmZlcnMgdG9nZXRoZXIu CgogICDigKIgUm9tYWluIEZyYW5jb2lzZSBjb250cmlidXRlZCBBQ0wgKEFjY2VzcyBDb250cm9s IExpc3QpIHN1cHBvcnQsIGZvcgogICAgIHByZXNlcnZpbmcgZXh0ZW5kZWQgZmlsZSBhdHRyaWJ1 dGVzIG9uIGJhY2t1cCBhbmQgY29weS4KCiAgIOKAoiBOb2FoIEZyaWVkbWFuIHdyb3RlIOKAmHJs b2dpbi5lbOKAmSwgYW4gaW50ZXJmYWNlIHRvIFJsb2dpbiwKICAgICDigJh0eXBlLWJyZWFrLmVs 4oCZLCB3aGljaCByZW1pbmRzIHlvdSB0byB0YWtlIHBlcmlvZGljIGJyZWFrcyBmcm9tCiAgICAg dHlwaW5nLCBhbmQg4oCYZWxkb2MtbW9kZeKAmSwgYSBtb2RlIHRvIHNob3cgdGhlIGRlZmluZWQg cGFyYW1ldGVycyBvcgogICAgIHRoZSBkb2Mgc3RyaW5nIGZvciB0aGUgTGlzcCBmdW5jdGlvbiBu ZWFyIHBvaW50LgoKICAg4oCiIFNoaWdlcnUgRnVrYXlhIHdyb3RlIGEgdGVzdHN1aXRlIGZvciB0 aGUgYnl0ZS1jb21waWxlci4KCiAgIOKAoiBLZWl0aCBHYWJyeWVsc2tpIHdyb3RlIOKAmGhleGwu ZWzigJksIGEgbW9kZSBmb3IgZWRpdGluZyBiaW5hcnkgZmlsZXMuCgogICDigKIgS2V2aW4gR2Fs bGFnaGVyIHJld3JvdGUgYW5kIGVuaGFuY2VkIHRoZSBFRFQgZW11bGF0aW9uLCBhbmQgd3JvdGUK ICAgICDigJhmbG93LWN0cmwuZWzigJksIGEgcGFja2FnZSBmb3IgY29waW5nIHdpdGggdW5zdXBw cmVzc2libGUgWE9OL1hPRkYKICAgICBmbG93IGNvbnRyb2wuCgogICDigKIgRmFiacOhbiBFLiBH YWxsaW5hIHJld3JvdGUg4oCYcHl0aG9uLmVs4oCZLCB0aGUgbWFqb3IgbW9kZSBmb3IgdGhlCiAg ICAgUHl0aG9uIHByb2dyYW1taW5nIGxhbmd1YWdlIHVzZWQgaW4gRW1hY3MgMjQuMyBvbndhcmRz LgoKICAg4oCiIEtldmluIEdhbGxvIGFkZGVkIG11bHRpcGxlLWZyYW1lIHN1cHBvcnQgZm9yIFdp bmRvd3MgTlQgYW5kIHdyb3RlCiAgICAg4oCYdzMyLXdpbi5lbOKAmSwgc3VwcG9ydCBmdW5jdGlv bnMgZm9yIHRoZSBNUy1XaW5kb3dzIHdpbmRvdyBzeXN0ZW0uCgogICDigKIgSnVhbiBMZcOzbiBM YWhveiBHYXJjw61hIHdyb3RlIOKAmHdkaXJlZC5lbOKAmSwgYSBwYWNrYWdlIGZvciBwZXJmb3Jt aW5nCiAgICAgZmlsZSBvcGVyYXRpb25zIGJ5IGRpcmVjdGx5IGVkaXRpbmcgRGlyZWQgYnVmZmVy cy4KCiAgIOKAoiBIb3dhcmQgR2F5bGUgd3JvdGUgbXVjaCBvZiB0aGUgQyBhbmQgTGlzcCBjb2Rl IGZvciBkaXNwbGF5IHRhYmxlcwogICAgIGFuZCBjYXNlIHRhYmxlcy4gIEhlIGFsc28gd3JvdGUg 4oCYcm90MTMuZWzigJksIGEgY29tbWFuZCB0byBkaXNwbGF5CiAgICAgdGhlIHBsYWluLXRleHQg Zm9ybSBvZiBhIGJ1ZmZlciBlbmNvZGVkIHdpdGggdGhlIENhZXNhciBjaXBoZXI7CiAgICAg4oCY dnQxMDAtbGVkLmVs4oCZLCBhIHBhY2thZ2UgZm9yIGNvbnRyb2xsaW5nIHRoZSBMRURzIG9uCiAg ICAgVlQxMDAtY29tcGF0aWJsZSB0ZXJtaW5hbHM7IGFuZCBtdWNoIG9mIHRoZSBzdXBwb3J0IGZv ciBJU08tODg1OQogICAgIEV1cm9wZWFuIGNoYXJhY3RlciBzZXRzICh3aGljaCBpbmNsdWRlcyDi gJhpc28tYXNjaWkuZWzigJksCiAgICAg4oCYaXNvLWluc2VydC5lbOKAmSwg4oCYaXNvLXN3ZWQu ZWzigJksIOKAmGlzby1zeW50YXguZWzigJksIOKAmGlzby10cmFuc2wuZWzigJksCiAgICAgYW5k IOKAmHN3ZWRpc2guZWzigJkpLgoKICAg4oCiIFN0ZXBoZW4gR2lsZGVhIG1hZGUgdGhlIEVtYWNz IHF1aWNrIHJlZmVyZW5jZSBjYXJkLCBhbmQgbWFkZSBtYW55CiAgICAgY29udHJpYnV0aW9ucyBm b3Ig4oCYdGltZS1zdGFtcC5lbOKAmSwgYSBwYWNrYWdlIGZvciBtYWludGFpbmluZwogICAgIGxh c3QtY2hhbmdlIHRpbWUgc3RhbXBzIGluIGZpbGVzLgoKICAg4oCiIEp1bGllbiBHaWxsZXMgd3Jv dGUg4oCYZ251cy1tbC5lbOKAmSwgYSBtYWlsaW5nIGxpc3QgbWlub3IgbW9kZSBmb3IKICAgICBH bnVzLgoKICAg4oCiIERhdmlkIEdpbGxlc3BpZSB3cm90ZSB0aGUgQ29tbW9uIExpc3AgY29tcGF0 aWJpbGl0eSBwYWNrYWdlczsKICAgICDigJhDYWxj4oCZLCBhbiBhZHZhbmNlZCBjYWxjdWxhdG9y IGFuZCBtYXRoZW1hdGljYWwgdG9vbCwgc2luY2UKICAgICBtYWludGFpbmVkIGFuZCBkZXZlbG9w ZWQgYnkgSmF5IEJlbGFuZ2VyOyDigJhjb21wbGV0ZS5lbOKAmSwgYSBwYXJ0aWFsCiAgICAgY29t cGxldGlvbiBtZWNoYW5pc207IGFuZCDigJhlZG1hY3JvLmVs4oCZLCBhIHBhY2thZ2UgZm9yIGVk aXRpbmcKICAgICBrZXlib2FyZCBtYWNyb3MuCgogICDigKIgQm9iIEdsaWNrc3RlaW4gd3JvdGUg 4oCYc3JlZ2V4LmVs4oCZLCBhIGZhY2lsaXR5IGZvciB3cml0aW5nIHJlZ2V4cHMKICAgICB1c2lu ZyBhIExpc3AtbGlrZSBzeW50YXguCgogICDigKIgQm9yaXMgR29sZG93c2t5IHdyb3RlIOKAmGF2 b2lkLmVs4oCZLCBhIHBhY2thZ2UgdG8ga2VlcCB0aGUgbW91c2UKICAgICBjdXJzb3Igb3V0IG9m IHRoZSB3YXkgb2YgdGhlIHRleHQgY3Vyc29yOyDigJhzaGFkb3dmaWxlLmVs4oCZLCBhCiAgICAg cGFja2FnZSBmb3Iga2VlcGluZyBpZGVudGljYWwgY29waWVzIG9mIGZpbGVzIGluIG1vcmUgdGhh biBvbmUKICAgICBwbGFjZTsg4oCYZm9ybWF0LmVs4oCZLCBhIHBhY2thZ2UgZm9yIHJlYWRpbmcg YW5kIHdyaXRpbmcgZmlsZXMgaW4KICAgICB2YXJpb3VzIGZvcm1hdHM7IOKAmGVucmljaGVkLmVs 4oCZLCBhIHBhY2thZ2UgZm9yIHNhdmluZyB0ZXh0CiAgICAgcHJvcGVydGllcyBpbiBmaWxlczsg 4oCYZmFjZW1lbnUuZWzigJksIGEgcGFja2FnZSBmb3Igc3BlY2lmeWluZyBmYWNlczsKICAgICBh bmQg4oCYZGVzY3ItdGV4dC5lbOKAmSwgZGVzY3JpYmluZyB0ZXh0IGFuZCBjaGFyYWN0ZXIgcHJv cGVydGllcy4KCiAgIOKAoiBNaWNoZWxhbmdlbG8gR3JpZ25pIHdyb3RlIOKAmGZmYXAuZWzigJkg d2hpY2ggdmlzaXRzIGEgZmlsZSwgdGFraW5nIHRoZQogICAgIGZpbGUgbmFtZSBmcm9tIHRoZSBi dWZmZXIuCgogICDigKIgT2RkIEdyaXBlbnN0YW0gd3JvdGUg4oCYZGNsLW1vZGUuZWzigJkgZm9y IGVkaXRpbmcgRENMIGNvbW1hbmQgZmlsZXMuCgogICDigKIgTWljaGFlbCBHc2Nod2luZCB3cm90 ZSDigJhpc28tY3Z0LmVs4oCZLCBhIHBhY2thZ2UgdG8gY29udmVydCBiZXR3ZWVuCiAgICAgdGhl IElTTyA4ODU5LTEgY2hhcmFjdGVyIHNldCBhbmQgdGhlIG5vdGF0aW9ucyBmb3Igbm9uLUFTQ0lJ CiAgICAgY2hhcmFjdGVycyB1c2VkIGJ5IFRlWCBhbmQgbmV0IHRyYWRpdGlvbi4KCiAgIOKAoiBC YXN0aWVuIEd1ZXJyeSB3cm90ZSDigJhnbnVzLWJvb2ttYXJrLmVs4oCZLCBib29rbWFyayBzdXBw b3J0IGZvciBHbnVzOwogICAgIGFzIHdlbGwgYXMgaGVscGluZyB0byBtYWludGFpbiBPcmcgbW9k ZSAocS52LikuCgogICDigKIgSGVucnkgR3VpbGxhdW1lIHdyb3RlIOKAmGZpbmQtZmlsZS5lbOKA mSwgYSBwYWNrYWdlIHRvIHZpc2l0IGZpbGVzCiAgICAgcmVsYXRlZCB0byB0aGUgY3VycmVudGx5 IHZpc2l0ZWQgZmlsZS4KCiAgIOKAoiBEb3VnIEd3eW4gd3JvdGUgdGhlIHBvcnRhYmxlIOKAmGFs bG9jYeKAmSBpbXBsZW1lbnRhdGlvbi4KCiAgIOKAoiBLZW7igJlpY2hpIEhhbmRhIGltcGxlbWVu dGVkIG1vc3Qgb2YgdGhlIHN1cHBvcnQgZm9yIGludGVybmF0aW9uYWwKICAgICBjaGFyYWN0ZXIg c2V0cywgYW5kIHdyb3RlIG1vc3Qgb2YgdGhlIEVtYWNzIDIzIGZvbnQgaGFuZGxpbmcgY29kZS4K ICAgICBIZSBhbHNvIHdyb3RlIOKAmGNvbXBvc2l0ZS5lbOKAmSwgd2hpY2ggcHJvdmlkZXMgYSBt aW5vciBtb2RlIHRoYXQKICAgICBjb21wb3NlcyBjaGFyYWN0ZXJzIGF1dG9tYXRpY2FsbHkgd2hl biB0aGV5IGFyZSBkaXNwbGF5ZWQ7CiAgICAg4oCYaXNlYXJjaC14LmVs4oCZLCBhIGZhY2lsaXR5 IGZvciBzZWFyY2hpbmcgbm9uLUFTQ0lJIHRleHQ7IGFuZAogICAgIOKAmHBzLWJkZi5lbOKAmSwg YSBCREYgZm9udCBzdXBwb3J0IGZvciBwcmludGluZyBub24tQVNDSUkgdGV4dCBvbiBhCiAgICAg UG9zdFNjcmlwdCBwcmludGVyLiAgVG9nZXRoZXIgd2l0aCBOYW90byBUYWthaGFzaGksIGhlIHdy b3RlCiAgICAg4oCYcXVhaWwuZWzigJksIGFuIGlucHV0IGZhY2lsaXR5IGZvciB0eXBpbmcgbm9u LUFTQ0lJIHRleHQgZnJvbSBhbgogICAgIEFTQ0lJIGtleWJvYXJkLgoKICAg4oCiIEplc3BlciBI YXJkZXIgd3JvdGUg4oCYeWVuYy5lbOKAmSwgZm9yIGRlY29kaW5nIHllbmMgZW5jb2RlZCBtZXNz YWdlcy4KCiAgIOKAoiBBbGV4YW5kcnUgSGFyc2FueWkgd3JvdGUgYSBsaWJyYXJ5IGZvciBhY2Nl c3NpbmcgU09BUCB3ZWIgc2VydmljZXMuCgogICDigKIgSy4gU2hhbmUgSGFydG1hbiB3cm90ZSDi gJhjaGlzdG9yeS5lbOKAmSBhbmQg4oCYZWNoaXN0b3J5LmVs4oCZLCBwYWNrYWdlcwogICAgIGZv ciBicm93c2luZyBjb21tYW5kIGhpc3RvcnkgbGlzdHM7IOKAmGVsZWN0cmljLmVs4oCZIGFuZCDi gJhoZWxwZXIuZWzigJksCiAgICAgd2hpY2ggcHJvdmlkZSBhbiBhbHRlcm5hdGl2ZSBjb21tYW5k IGxvb3AgYW5kIGFwcHJvcHJpYXRlIGhlbHAKICAgICBmYWNpbGl0aWVzOyDigJhlbWFjc2J1Zy5l bOKAmSwgYSBwYWNrYWdlIGZvciByZXBvcnRpbmcgRW1hY3MgYnVnczsKICAgICDigJhwaWN0dXJl LmVs4oCZLCBhIG1vZGUgZm9yIGVkaXRpbmcgQVNDSUkgcGljdHVyZXM7IGFuZCDigJh2aWV3LmVs 4oCZLCBhCiAgICAgcGFja2FnZSBmb3IgcGVydXNpbmcgZmlsZXMgYW5kIGJ1ZmZlcnMgd2l0aG91 dCBlZGl0aW5nIHRoZW0uCgogICDigKIgSm9obiBIZWlkZW1hbm4gd3JvdGUg4oCYbW91c2UtY29w eS5lbOKAmSBhbmQg4oCYbW91c2UtZHJhZy5lbOKAmSwgd2hpY2gKICAgICBwcm92aWRlIGFsdGVy bmF0aXZlIG1vdXNlLWJhc2VkIGVkaXRpbmcgYW5kIHNjcm9sbGluZyBmZWF0dXJlcy4KCiAgIOKA oiBKb24gSyBIZWxsYW4gd3JvdGUg4oCYdXRmNy5lbOKAmSwgc3VwcG9ydCBmb3IgbWFpbC1zYWZl IHRyYW5zZm9ybWF0aW9uCiAgICAgZm9ybWF0IG9mIFVuaWNvZGUuCgogICDigKIgS2FybCBIZXVl ciB3cm90ZSB0aGUgb3JpZ2luYWwgYmxlc3NtYWlsIHNjcmlwdCwgaW1wbGVtZW50ZWQgdGhlCiAg ICAg4oCYaW50YW5naWJsZeKAmSB0ZXh0IHByb3BlcnR5LCBhbmQgcmVhcnJhbmdlZCB0aGUgc3Ry dWN0dXJlIG9mIHRoZQogICAgIOKAmExpc3BfT2JqZWN04oCZIHR5cGUgdG8gYWxsb3cgZm9yIG1v cmUgZGF0YSBiaXRzLgoKICAg4oCiIE1hbmFidSBIaWdhc2hpZGEgcG9ydGVkIEVtYWNzIHRvIE1T LURPUy4KCiAgIOKAoiBBbmRlcnMgSG9sc3Qgd3JvdGUg4oCYaGlwcGllLWV4cC5lbOKAmSwgYSB2 ZXJzYXRpbGUgY29tcGxldGlvbiBhbmQKICAgICBleHBhbnNpb24gcGFja2FnZS4KCiAgIOKAoiBU YXNzaWxvIEhvcm4gd3JvdGUgRG9jVmlldyBtb2RlLCBhbGxvd2luZyB2aWV3aW5nIG9mIFBERiwK ICAgICBQb3N0U2NyaXB0IGFuZCBEVkkgZG9jdW1lbnRzLgoKICAg4oCiIFRvbSBIb3VsZGVyIHdy b3RlIOKAmG1hbnRlbXAuZWzigJksIHdoaWNoIGdlbmVyYXRlcyBtYW51YWwgQysrIHRlbXBsYXRl CiAgICAgaW5zdGFudGlhdGlvbnMuCgogICDigKIgSm9ha2ltIEhvdmUgd3JvdGUg4oCYaHRtbDJ0 ZXh0LmVs4oCZLCBhIGh0bWwgdG8gcGxhaW4gdGV4dCBjb252ZXJ0ZXIuCgogICDigKIgRGVuaXMg SG93ZSB3cm90ZSDigJhicm93c2UtdXJsLmVs4oCZLCBhIHBhY2thZ2UgZm9yIGludm9raW5nIGEg V1dXCiAgICAgYnJvd3NlciB0byBkaXNwbGF5IGEgVVJMLgoKICAg4oCiIExhcnMgTWFnbmUgSW5n ZWJyaWd0c2VuIGRpZCBhIG1ham9yIHJlZGVzaWduIG9mIHRoZSBHbnVzCiAgICAgbmV3cy1yZWFk ZXIgYW5kIHdyb3RlIG1hbnkgb2YgaXRzIHBhcnRzLiAgU2V2ZXJhbCBvZiB0aGVzZSBhcmUgbm93 CiAgICAgZ2VuZXJhbCBjb21wb25lbnRzIG9mIEVtYWNzLCBpbmNsdWRpbmc6IOKAmGRucy5lbOKA mSBmb3IgRG9tYWluIE5hbWUKICAgICBTZXJ2aWNlIGxvb2t1cHM7IOKAmGZvcm1hdC1zcGVjLmVs 4oCZIGZvciBmb3JtYXR0aW5nIGFyYml0cmFyeSBmb3JtYXQKICAgICBzdHJpbmdzOyDigJhuZXRy Yy5lbOKAmSBmb3IgcGFyc2luZyBvZiDigJgubmV0cmPigJkgZmlsZXM7IGFuZAogICAgIOKAmHRp bWUtZGF0ZS5lbOKAmSBmb3IgZ2VuZXJhbCBkYXRlIGFuZCB0aW1lIGhhbmRsaW5nLiAgSGUgYWxz byB3cm90ZQogICAgIOKAmG5ldHdvcmstc3RyZWFtLmVs4oCZLCBmb3Igb3BlbmluZyBuZXR3b3Jr IHByb2Nlc3Nlczsg4oCYdXJsLXF1ZXVlLmVs4oCZLAogICAgIGZvciBjb250cm9sbGluZyBwYXJh bGxlbCBkb3dubG9hZHMgb2YgVVJMczsgYW5kIGltcGxlbWVudGVkIGxpYnhtbDIKICAgICBzdXBw b3J0LiAgSGUgYWxzbyB3cm90ZSDigJhld3cuZWzigJksIGFuIEVtYWNzIExpc3Agd2ViIGJyb3dz ZXI7IGFuZAogICAgIGltcGxlbWVudGVkIG5hdGl2ZSB6bGliIGRlY29tcHJlc3Npb24uICBDb21w b25lbnRzIG9mIEdudXMgaGF2ZQogICAgIGFsc28gYmVlbiB3cml0dGVuIGJ5OiBOYWd5IEFuZHJh cywgRGF2aWQgQmxhY2thLCBTY290dCBCeWVyLAogICAgIEx1ZG92aWMgQ291cnTDqHMsIEp1bGll biBEYW5qb3UsIEtldmluIEdyZWluZXIsIEthaSBHcm/Dn2pvaGFubiwgSm9lCiAgICAgSGlsZGVi cmFuZCwgUGF1bCBKYXJjLCBTaW1vbiBKb3NlZnNzb24sIFNhc2NoYSBMw7xkZWNrZSwgRGF2aWQK ICAgICBNb29yZSwgSmltIFJhZGZvcmQsIEJlbmphbWluIFJ1dHQsIFJheW1vbmQgU2Nob2x6LCBU aG9tYXMgU3RlZmZlbiwKICAgICBSZWluZXIgU3RlaWIsIEphbiBUYXRhcmlrLCBEaWRpZXIgVmVy bmEsIElsamEgV2VpcywgS2F0c3VtaQogICAgIFlhbWFva2EsIFRlb2RvciBabGF0YW5vdiwgYW5k IG90aGVycyAoKm5vdGUgKGdudXMpQ29udHJpYnV0b3JzOjopLgoKICAg4oCiIEFuZHJldyBJbm5l cyBjb250cmlidXRlZCBleHRlbnNpdmVseSB0byB0aGUgTVMtV2luZG93cyBzdXBwb3J0LgoKICAg 4oCiIFNlaWljaGlybyBJbm91ZSBpbXByb3ZlZCBFbWFjc+KAmXMgWElNIHN1cHBvcnQuCgogICDi gKIgUGhpbGlwIEphY2tzb24gd3JvdGUg4oCYZmluZC1jbWQuZWzigJksIHRvIGJ1aWxkIGEg4oCY ZmluZOKAmSBjb21tYW5kLWxpbmUuCgogICDigKIgVWxmIEphc3BlciB3cm90ZSDigJhpY2FsZW5k YXIuZWzigJksIGEgcGFja2FnZSBmb3IgY29udmVydGluZyBFbWFjcwogICAgIGRpYXJ5IGVudHJp ZXMgdG8gYW5kIGZyb20gdGhlIGlDYWxlbmRhciBmb3JtYXQ7IOKAmG5ld3N0aWNrZXIuZWzigJks IGFuCiAgICAgUlNTIGFuZCBBdG9tIGJhc2VkIE5ld3N0aWNrZXI7IGFuZCDigJhidWJibGVzLmVs 4oCZLCBhIHB1enpsZSBnYW1lLgoKICAg4oCiIEt5bGUgSm9uZXMgd3JvdGUg4oCYbGlmZS5lbOKA mSwgYSBwYWNrYWdlIHRvIHBsYXkgQ29ud2F54oCZcyBHYW1lIG9mCiAgICAgTGlmZS4KCiAgIOKA oiBUZXJyeSBKb25lcyB3cm90ZSDigJhzaGFkb3cuZWzigJksIGEgcGFja2FnZSBmb3IgZmluZGlu ZyBwb3RlbnRpYWwKICAgICBsb2FkLXBhdGggcHJvYmxlbXMgd2hlbiBzb21lIExpc3AgZmlsZSBz aGFkb3dzIGFub3RoZXIuCgogICDigKIgU2ltb24gSm9zZWZzc29uIHdyb3RlIOKAmGRucy1tb2Rl LmVs4oCZLCBhbiBlZGl0aW5nIG1vZGUgZm9yIERvbWFpbgogICAgIE5hbWUgU3lzdGVtIG1hc3Rl ciBmaWxlczsg4oCYZGlnLmVs4oCZLCBhIERvbWFpbiBOYW1lIFN5c3RlbSBpbnRlcmZhY2U7CiAg ICAg4oCYZmxvdy1maWxsLmVs4oCZLCBhIHBhY2thZ2UgZm9yIGludGVycHJldGluZyBSRkMyNjQ2 IGZvcm1hdHRlZCB0ZXh0CiAgICAgaW4gbWVzc2FnZXM7IOKAmGZyaW5nZS5lbOKAmSwgYSBwYWNr YWdlIGZvciBjdXN0b21pemluZyB0aGUgZnJpbmdlOwogICAgIOKAmGltYXAuZWzigJksIGFuIEVt YWNzIExpc3AgbGlicmFyeSBmb3IgdGFsa2luZyB0byBJTUFQIHNlcnZlcnM7CiAgICAg4oCYcGFz c3dvcmQtY2FjaGUuZWzigJksIGEgcGFzc3dvcmQgcmVhZGVyOyDigJhubmltYXAuZWzigJksIHRo ZSBJTUFQCiAgICAgYmFjay1lbmQgZm9yIEdudXM7IOKAmHVybC1pbWFwLmVs4oCZIGZvciB0aGUg VVJMIGxpYnJhcnk7IOKAmHJmYzIxMDQuZWzigJksCiAgICAgYSBoYXNoZWQgbWVzc2FnZSBhdXRo ZW50aWNhdGlvbiBmYWNpbGl0eTsgdGhlIEdudXMgUy9NSU1FIGFuZCBTaWV2ZQogICAgIGNvbXBv bmVudHM7IGFuZCDigJh0bHMuZWzigJkgYW5kIOKAmHN0YXJ0dGxzLmVs4oCZIGZvciB0aGUgVHJh bnNwb3J0IExheWVyCiAgICAgU2VjdXJpdHkgcHJvdG9jb2wuCgogICDigKIgQXJuZSBKw7hyZ2Vu c2VuIHdyb3RlIOKAmGxhdGV4ZW5jLmVs4oCZLCBhIHBhY2thZ2UgdG8gYXV0b21hdGljYWxseQog ICAgIGd1ZXNzIHRoZSBjb3JyZWN0IGNvZGluZyBzeXN0ZW0gaW4gTGFUZVggZmlsZXMuCgogICDi gKIgQWxleGFuZHJlIEp1bGxpYXJkIHdyb3RlIOKAmHZjLWdpdC5lbOKAmSwgc3VwcG9ydCBmb3Ig dGhlIEdpdCB2ZXJzaW9uCiAgICAgY29udHJvbCBzeXN0ZW0uCgogICDigKIgVG9tb2ppIEthZ2F0 YW5pIGltcGxlbWVudGVkIOKAmHNtdHBtYWlsLmVs4oCZLCB1c2VkIGZvciBzZW5kaW5nIG91dAog ICAgIG1haWwgd2l0aCBTTVRQLgoKICAg4oCiIEl2YW4gS2FuaXMgd3JvdGUg4oCYdmMtaGcuZWzi gJksIHN1cHBvcnQgZm9yIHRoZSBNZXJjdXJpYWwgdmVyc2lvbgogICAgIGNvbnRyb2wgc3lzdGVt LgoKICAg4oCiIEhlbnJ5IEthdXR6IHdyb3RlIOKAmGJpYi1tb2RlLmVs4oCZLCBhIG1vZGUgZm9y IG1haW50YWluaW5nCiAgICAgYmlibGlvZ3JhcGh5IGRhdGFiYXNlcyBjb21wYXRpYmxlIHdpdGgg 4oCYcmVmZXLigJkgKHRoZSDigJh0cm9mZuKAmQogICAgIHZlcnNpb24pIGFuZCDigJhsb29rYmli 4oCZLCBhbmQg4oCYcmVmYmliLmVs4oCZLCBhIHBhY2thZ2UgdG8gY29udmVydCB0aG9zZQogICAg IGRhdGFiYXNlcyB0byB0aGUgZm9ybWF0IHVzZWQgYnkgdGhlIExhVGVYIHRleHQgZm9ybWF0dGlu ZyBwYWNrYWdlLgoKICAg4oCiIFRhaWNoaSBLYXdhYmF0YSBhZGRlZCBzdXBwb3J0IGZvciBEZXZh bmFnYXJpIHNjcmlwdCBhbmQgdGhlIEluZGlhbgogICAgIGxhbmd1YWdlcywgYW5kIHdyb3RlIOKA mHVjcy1ub3JtYWxpemUuZWzigJkgZm9yIFVuaWNvZGUgbm9ybWFsaXphdGlvbi4KCiAgIOKAoiBU YXJvIEthd2FnaXNoaSBpbXBsZW1lbnRlZCB0aGUgTUQ0IE1lc3NhZ2UgRGlnZXN0IEFsZ29yaXRo bSBpbgogICAgIExpc3A7IGFuZCB3cm90ZSDigJhudGxtLmVs4oCZIGFuZCDigJhzYXNsLW50bG0u ZWzigJkgZm9yIE5UIExhbk1hbmFnZXIKICAgICBhdXRoZW50aWNhdGlvbiBzdXBwb3J0LgoKICAg 4oCiIEhvd2FyZCBLYXllIHdyb3RlIOKAmHNvcnQuZWzigJksIGNvbW1hbmRzIHRvIHNvcnQgdGV4 dCBpbiBFbWFjcwogICAgIGJ1ZmZlcnMuCgogICDigKIgTWljaGFlbCBLaWZlciB3cm90ZSDigJhl ZGlmZuKAmSwgYW4gaW50ZXJhY3RpdmUgaW50ZXJmYWNlIHRvIHRoZQogICAgIOKAmGRpZmbigJks IOKAmHBhdGNo4oCZLCBhbmQg4oCYbWVyZ2XigJkgcHJvZ3JhbXM7IGFuZCBWaXBlciwgYW4gZW11 bGF0b3Igb2YKICAgICB0aGUgVkkgZWRpdG9yLgoKICAg4oCiIFJpY2hhcmQgS2luZyB3cm90ZSB0 aGUgZmlyc3QgdmVyc2lvbiBvZiDigJh1c2VybG9jay5lbOKAmSBhbmQKICAgICDigJhmaWxlbG9j ay5j4oCZLCB3aGljaCBwcm92aWRlIHNpbXBsZSBzdXBwb3J0IGZvciBtdWx0aXBsZSB1c2Vycwog ICAgIGVkaXRpbmcgdGhlIHNhbWUgZmlsZS4gIEhlIGFsc28gd3JvdGUgdGhlIGluaXRpYWwgdmVy c2lvbiBvZgogICAgIOKAmHVuaXF1aWZ5LmVs4oCZLCBhIGZhY2lsaXR5IHRvIG1ha2UgYnVmZmVy IG5hbWVzIHVuaXF1ZSBieSBhZGRpbmcKICAgICBwYXJ0cyBvZiB0aGUgZmlsZeKAmXMgbmFtZSB0 byB0aGUgYnVmZmVyIG5hbWUuCgogICDigKIgUGV0ZXIgS2xlaXdlZyB3cm90ZSDigJhwcy1tb2Rl LmVs4oCZLCBhIG1vZGUgZm9yIGVkaXRpbmcgUG9zdFNjcmlwdAogICAgIGZpbGVzIGFuZCBydW5u aW5nIGEgUG9zdFNjcmlwdCBpbnRlcnByZXRlciBpbnRlcmFjdGl2ZWx5IGZyb20KICAgICB3aXRo aW4gRW1hY3MuCgogICDigKIgS2FyZWwgS2zDrcSNIGNvbnRyaWJ1dGVkIFNFTGludXggc3VwcG9y dCwgZm9yIHByZXNlcnZpbmcgdGhlCiAgICAgU2VjdXJpdHktRW5oYW5jZWQgTGludXggY29udGV4 dCBvZiBmaWxlcyBvbiBiYWNrdXAgYW5kIGNvcHkuCgogICDigKIgU2h1aGVpIEtvYmF5YXNoaSB3 cm90ZSDigJhoZXgtdXRpbC5lbOKAmSwgZm9yIG9wZXJhdGluZyBvbiBoZXhhZGVjaW1hbAogICAg IHN0cmluZ3M7IGFuZCBzdXBwb3J0IGZvciBITUFDIChLZXllZC1IYXNoaW5nIGZvciBNZXNzYWdl CiAgICAgQXV0aGVudGljYXRpb24pLgoKICAg4oCiIFBhdmVsIEtvYnlha292IHdyb3RlIOKAmGZs eW1ha2UuZWzigJksIGEgbWlub3IgbW9kZSBmb3IgcGVyZm9ybWluZwogICAgIG9uLXRoZS1mbHkg c3ludGF4IGNoZWNraW5nLgoKICAg4oCiIERhdmlkIE0uIEtvcHBlbG1hbiB3cm90ZSDigJhoaS1s b2NrLmVs4oCZLCBhIG1pbm9yIG1vZGUgZm9yIGludGVyYWN0aXZlCiAgICAgYXV0b21hdGljIGhp Z2hsaWdodGluZyBvZiBwYXJ0cyBvZiB0aGUgYnVmZmVyIHRleHQuCgogICDigKIgS29zZWtpIFlv c2hpbm9yaSB3cm90ZSDigJhpaW1hZ2UuZWzigJksIGEgbWlub3IgbW9kZSBmb3IgZGlzcGxheWlu ZwogICAgIGlubGluZSBpbWFnZXMuCgogICDigKIgUm9iZXJ0IEtyYXdpdHogd3JvdGUgdGhlIG9y aWdpbmFsIOKAmHhtZW51LmPigJksIHBhcnQgb2YgRW1hY3PigJlzIHBvcC11cAogICAgIG1lbnUg c3VwcG9ydC4KCiAgIOKAoiBTZWJhc3RpYW4gS3JlbWVyIHdyb3RlIOKAmGRpcmVkLW1vZGXigJks IHdpdGggY29udHJpYnV0aW9ucyBieSBMYXdyZW5jZQogICAgIFIuIERvZGQuICBIZSBhbHNvIHdy b3RlIOKAmGxzLWxpc3AuZWzigJksIGEgTGlzcCBlbXVsYXRpb24gb2YgdGhlIOKAmGxz4oCZCiAg ICAgY29tbWFuZCBmb3IgcGxhdGZvcm1zIHRoYXQgZG9u4oCZdCBoYXZlIOKAmGxz4oCZIGFzIGEg c3RhbmRhcmQgcHJvZ3JhbS4KCiAgIOKAoiBEYXZpZCBLw6VnZWRhbCB3cm90ZSDigJh0ZW1wby5l bOKAmSwgcHJvdmlkaW5nIHN1cHBvcnQgZm9yIGVhc3kKICAgICBpbnNlcnRpb24gb2YgYm9pbGVy cGxhdGUgdGV4dCBhbmQgb3RoZXIgY29tbW9uIGNvbnN0cnVjdGlvbnMuCgogICDigKIgSWdvciBL dXptaW4gd3JvdGUg4oCYY2NvbnYuZWzigJksIHByb3ZpZGluZyBjbG9zdXJlIGNvbnZlcnNpb24g Zm9yCiAgICAgc3RhdGljYWxseSBzY29wZWQgRW1hY3MgbGlzcC4KCiAgIOKAoiBEYW5pZWwgTGFM aWJlcnRlIHdyb3RlIOKAmGVkZWJ1Zy5lbOKAmSwgYSBzb3VyY2UtbGV2ZWwgZGVidWdnZXIgZm9y CiAgICAgRW1hY3MgTGlzcDsg4oCYY2wtc3BlY3MuZWzigJksIHNwZWNpZmljYXRpb25zIHRvIGhl bHAg4oCYZWRlYnVn4oCZIGRlYnVnCiAgICAgY29kZSB3cml0dGVuIHVzaW5nIERhdmlkIEdpbGxl c3BpZeKAmXMgQ29tbW9uIExpc3Agc3VwcG9ydDsgYW5kCiAgICAg4oCYaXNlYXJjaC5lbOKAmSwg RW1hY3PigJlzIGluY3JlbWVudGFsIHNlYXJjaCBtaW5vciBtb2RlLiAgSGUgYWxzbwogICAgIGNv LXdyb3RlIOKAmGhpZGVpZi5lbOKAmSAocS52LikuCgogICDigKIgS2FybCBMYW5kc3Ryb20gYW5k IERhbmllbCBDb2xhc2Npb25lIHdyb3RlIOKAmGpzLmVs4oCZLCBhIG1vZGUgZm9yCiAgICAgZWRp dGluZyBKYXZhU2NyaXB0LgoKICAg4oCiIFZpbmljaXVzIEpvc2UgTGF0b3JyZSB3cm90ZSB0aGUg RW1hY3MgcHJpbnRpbmcgZmFjaWxpdGllcywgYXMgd2VsbAogICAgIGFzIOKAmHBzLXByaW504oCZ ICh3aXRoIEppbSBUaG9tcHNvbiwgSmFjcXVlcyBEdXRoZW4sIGFuZCBLZW5pY2hpCiAgICAgSGFu ZGEpLCBhIHBhY2thZ2UgZm9yIHByZXR0eS1wcmludGluZyBFbWFjcyBidWZmZXJzIHRvIFBvc3RT Y3JpcHQKICAgICBwcmludGVyczsg4oCYZGVsaW0tY29sLmVs4oCZLCBhIHBhY2thZ2UgdG8gYXJy YW5nZSB0ZXh0IGludG8gY29sdW1uczsKICAgICDigJhlYm5mMnBzLmVs4oCZLCBhIHBhY2thZ2Ug dGhhdCB0cmFuc2xhdGVzIEVCTkYgZ3JhbW1hciB0byBhIHN5bnRhY3RpYwogICAgIGNoYXJ0IHRo YXQgY2FuIGJlIHByaW50ZWQgdG8gYSBQb3N0U2NyaXB0IHByaW50ZXI7IGFuZAogICAgIOKAmHdo aXRlc3BhY2UuZWzigJksIGEgcGFja2FnZSB0aGF0IGRldGVjdHMgYW5kIGNsZWFucyB1cCBleGNl c3MKICAgICB3aGl0ZXNwYWNlIGluIGEgZmlsZSAoYnVpbGRpbmcgb24gYW4gZWFybGllciB2ZXJz aW9uIGJ5IFJhamVzaAogICAgIFZhaWRoZWVzd2FycmFuKS4KCiAgIOKAoiBGcmVkZXJpYyBMZXBp ZWQgd3JvdGUg4oCYZXhwYW5kLmVs4oCZLCB3aGljaCB1c2VzIHRoZSBhYmJyZXYgbWVjaGFuaXNt CiAgICAgZm9yIGluc2VydGluZyBwcm9ncmFtbWluZyBjb25zdHJ1Y3RzLgoKICAg4oCiIFBldGVy IExpbGplbmJlcmcgd3JvdGUg4oCYZWxpbnQuZWzigJksIGEgTGludC1zdHlsZSBjb2RlIGNoZWNr ZXIgZm9yCiAgICAgRW1hY3MgTGlzcCBwcm9ncmFtcy4KCiAgIOKAoiBMYXJzIExpbmRiZXJnIHdy b3RlIOKAmG1zYi5lbOKAmSwgd2hpY2ggcHJvdmlkZXMgbW9yZSBmbGV4aWJsZSBtZW51cwogICAg IGZvciBidWZmZXIgc2VsZWN0aW9uOyBjby13cm90ZSDigJhpbWVudS5lbOKAmSAocS52Lik7IGFu ZCByZXdyb3RlCiAgICAg4oCYZGFiYnJldi5lbOKAmSwgb3JpZ2luYWxseSB3cml0dGVuIGJ5IERv biBNb3JyaXNvbi4KCiAgIOKAoiBBbmRlcnMgTGluZGdyZW4gd3JvdGUg4oCYYXV0b3JldmVydC5l bOKAmSwgYSBwYWNrYWdlIGZvciBhdXRvbWF0aWNhbGx5CiAgICAgcmV2ZXJ0aW5nIGZpbGVzIHZp c2l0ZWQgYnkgRW1hY3MgdGhhdCB3ZXJlIGNoYW5nZWQgb24gZGlzazsKICAgICDigJhjd2Fybi5l bOKAmSwgYSBwYWNrYWdlIHRvIGhpZ2hsaWdodCBzdXNwaWNpb3VzIEMgYW5kIEMrKyBjb25zdHJ1 Y3RzOwogICAgIGFuZCDigJhmb2xsb3cuZWzigJksIGEgbWlub3IgbW9kZSB0byBzeW5jaHJvbml6 ZSB3aW5kb3dzIHRoYXQgc2hvdyB0aGUKICAgICBzYW1lIGJ1ZmZlci4KCiAgIOKAoiBUaG9tYXMg TGluayB3cm90ZSDigJhmaWxlc2V0cy5lbOKAmSwgYSBwYWNrYWdlIGZvciBoYW5kbGluZyBzZXRz IG9mCiAgICAgZmlsZXMuCgogICDigKIgSnVyaSBMaW5rb3Ygd3JvdGUg4oCYbWlzZWFyY2guZWzi gJksIGV4dGVuZGluZyBpc2VhcmNoIHRvIG11bHRpLWJ1ZmZlcgogICAgIHNlYXJjaGVzOyB0aGUg Y29kZSBpbiDigJhmaWxlcy14LmVs4oCZIGZvciBoYW5kbGluZyBmaWxlLSBhbmQKICAgICBkaXJl Y3RvcnktbG9jYWwgdmFyaWFibGVzOyBhbmQgdGhlIOKAmGluZm8tZmluZGVy4oCZIGZlYXR1cmUg dGhhdAogICAgIGNyZWF0ZXMgYSB2aXJ0dWFsIEluZm8gbWFudWFsIG9mIHBhY2thZ2Uga2V5d29y ZHMuCgogICDigKIgTGVvIExpdSB3cm90ZSDigJhwY21wbC14LmVs4oCZLCBwcm92aWRpbmcgY29t cGxldGlvbiBmb3IgbWlzY2VsbGFuZW91cwogICAgIGV4dGVybmFsIHRvb2xzOyBhbmQgcmV2YW1w ZWQgc3VwcG9ydCBmb3IgT2N0YXZlIGluIEVtYWNzIDI0LjQuCgogICDigKIgS8Ohcm9seSBMxZFy ZW50ZXkgd3JvdGUgdGhlIG11bHRpLXRlcm1pbmFsIGNvZGUsIHdoaWNoIGFsbG93cyBFbWFjcwog ICAgIHRvIHJ1biBvbiBncmFwaGljYWwgYW5kIHRleHQgdGVybWluYWxzIHNpbXVsdGFuZW91c2x5 LgoKICAg4oCiIE1hcnRpbiBMb3JlbnR6b24gd3JvdGUg4oCYdmMtYW5ub3RhdGUuZWzigJksIHN1 cHBvcnQgZm9yIHZlcnNpb24KICAgICBjb250cm9sIGFubm90YXRpb24uCgogICDigKIgRGF2ZSBM b3ZlIHdyb3RlIG11Y2ggb2YgdGhlIGNvZGUgZGVhbGluZyB3aXRoIFVuaWNvZGUgc3VwcG9ydCBh bmQKICAgICBMYXRpbi1OIHVuaWZpY2F0aW9uLiAgSGUgYWRkZWQgc3VwcG9ydCBmb3IgbWFueSBj b2Rpbmcgc3lzdGVtcywKICAgICBpbmNsdWRpbmcgdGhlIHZhcmlvdXMgVVRGLTcgYW5kIFVURi0x NiBjb2Rpbmcgc3lzdGVtcy4gIEhlIGFsc28KICAgICB3cm90ZSDigJhhdXRvYXJnLW1vZGXigJks IGEgZ2xvYmFsIG1pbm9yIG1vZGUgd2hlcmVieSBkaWdpdCBrZXlzIHN1cHBseQogICAgIHByZWZp eCBhcmd1bWVudHM7IOKAmGF1dG9hcmcta3AtbW9kZeKAmSwgd2hpY2ggcmVkZWZpbmVzIHRoZSBr ZXlwYWQKICAgICBudW1lcmljIGtleXMgdG8gZGlnaXQgYXJndW1lbnRzOyDigJhhdXRvY29uZi5l bOKAmSwgYSBtb2RlIGZvciBlZGl0aW5nCiAgICAgQXV0b2NvbmYgZmlsZXM7IOKAmGNmZW5naW5l LmVs4oCZLCBhIG1vZGUgZm9yIGVkaXRpbmcgQ2ZlbmdpbmUgZmlsZXM7CiAgICAg4oCYZWxpZGUt aGVhZC5lbOKAmSwgYSBwYWNrYWdlIGZvciBlbGlkaW5nIGJvaWxlcnBsYXRlIHRleHQgZnJvbSBm aWxlCiAgICAgaGVhZGVyczsg4oCYaGwtbGluZS5lbOKAmSwgYSBtaW5vciBtb2RlIGZvciBoaWdo bGlnaHRpbmcgdGhlIGxpbmUgaW4KICAgICB0aGUgY3VycmVudCB3aW5kb3cgb24gd2hpY2ggcG9p bnQgaXM7IOKAmGNhcC13b3Jkcy5lbOKAmSwgYSBtaW5vciBtb2RlCiAgICAgZm9yIG1vdGlvbiBp biDigJhDYXBpdGFsaXplZFdvcmRJZGVudGlmaWVyc+KAmTsg4oCYbGF0aW4xLWRpc3AuZWzigJks IGEKICAgICBwYWNrYWdlIHRoYXQgbGV0cyB5b3UgZGlzcGxheSBJU08gODg1OSBjaGFyYWN0ZXJz IG9uIExhdGluLTEKICAgICB0ZXJtaW5hbHMgYnkgc2V0dGluZyB1cCBhcHByb3ByaWF0ZSBkaXNw bGF5IHRhYmxlczsgdGhlIHZlcnNpb24gb2YKICAgICDigJhweXRob24uZWzigJkgdXNlZCBwcmlv ciB0byBFbWFjcyAyNC4zOyDigJhzbWlsZXkuZWzigJksIGEgZmFjaWxpdHkgZm9yCiAgICAgZGlz cGxheWluZyBzbWlsZXkgZmFjZXM7IOKAmHN5bS1jb21wLmVs4oCZLCBhIGxpYnJhcnkgZm9yIHBl cmZvcm1pbmcKICAgICBtb2RlLWRlcGVuZGVudCBzeW1ib2wgY29tcGxldGlvbjsg4oCYYmVuY2ht YXJrLmVs4oCZIGZvciB0aW1pbmcgY29kZQogICAgIGV4ZWN1dGlvbjsgYW5kIOKAmHRvb2wtYmFy LmVs4oCZLCBhIG1vZGUgdG8gY29udHJvbCB0aGUgZGlzcGxheSBvZiB0aGUKICAgICBFbWFjcyB0 b29sIGJhci4gIFdpdGggUmljY2FyZG8gTXVycmkgaGUgd3JvdGUg4oCYdmMtYnpyLmVs4oCZLCBz dXBwb3J0CiAgICAgZm9yIHRoZSBCYXphYXIgdmVyc2lvbiBjb250cm9sIHN5c3RlbS4KCiAgIOKA oiBFcmljIEx1ZGxhbSB3cm90ZSB0aGUgU3BlZWRiYXIgcGFja2FnZTsg4oCYY2hlY2tkb2MuZWzi gJksIGZvciBjaGVja2luZwogICAgIGRvYyBzdHJpbmdzIGluIEVtYWNzIExpc3AgcHJvZ3JhbXM7 IOKAmGRmcmFtZS5lbOKAmSwgcHJvdmlkaW5nCiAgICAgZGVkaWNhdGVkIGZyYW1lIHN1cHBvcnQg bW9kZXM7IOKAmGV6aW1hZ2UuZWzigJksIGEgZ2VuZXJhbGl6ZWQgd2F5IHRvCiAgICAgcGxhY2Ug aW1hZ2VzIG92ZXIgdGV4dDsg4oCYY2hhcnQuZWzigJkgZm9yIGRyYXdpbmcgYmFyIGNoYXJ0cyBl dGMuOyBhbmQKICAgICB0aGUgRUlFSU8gKEVuaGFuY2VkIEltcGxlbWVudGF0aW9uIG9mIEVtYWNz IEludGVycHJldGVkIE9iamVjdHMpCiAgICAgcGFja2FnZS4gIEhlIHdhcyBhbHNvIHRoZSBtYWlu IGF1dGhvciBvZiB0aGUgQ0VERVQgKENvbGxlY3Rpb24gb2YKICAgICBFbWFjcyBEZXZlbG9wbWVu dCBFbnZpcm9ubWVudCBUb29scykgcGFja2FnZS4gIFBvcnRpb25zIHdlcmUgYWxzbwogICAgIHdy aXR0ZW4gYnkgSmFuIE1vcmluZ2VuLCBEYXZpZCBQb25jZSwgYW5kIEpvYWtpbSBWZXJvbmEuCgog ICDigKIgUm9sYW5kIE1jR3JhdGggd3JvdGUg4oCYY29tcGlsZS5lbOKAmSAoc2luY2UgdXBkYXRl ZCBieSBEYW5pZWwKICAgICBQZmVpZmZlciksIGEgcGFja2FnZSBmb3IgcnVubmluZyBjb21waWxh dGlvbnMgaW4gYSBidWZmZXIsIGFuZCB0aGVuCiAgICAgdmlzaXRpbmcgdGhlIGxvY2F0aW9ucyBy ZXBvcnRlZCBpbiBlcnJvciBtZXNzYWdlczsg4oCYZXRhZ3MuZWzigJksIGEKICAgICBwYWNrYWdl IGZvciBqdW1waW5nIHRvIGZ1bmN0aW9uIGRlZmluaXRpb25zIGFuZCBzZWFyY2hpbmcgb3IKICAg ICByZXBsYWNpbmcgaW4gYWxsIHRoZSBmaWxlcyBtZW50aW9uZWQgaW4gYSDigJhUQUdT4oCZIGZp bGU7IHdpdGgKICAgICBTZWJhc3RpYW4gS3JlbWVyIOKAmGZpbmQtZGlyZWQuZWzigJksIGZvciB1 c2luZyDigJhkaXJlZOKAmSBjb21tYW5kcyBvbgogICAgIG91dHB1dCBmcm9tIHRoZSDigJhmaW5k 4oCZIHByb2dyYW07IOKAmGdyZXAuZWzigJkgZm9yIHJ1bm5pbmcgdGhlIOKAmGdyZXDigJkKICAg ICBjb21tYW5kOyDigJhtYXAteW5wLmVs4oCZLCBhIGdlbmVyYWwgcHVycG9zZSBib29sZWFuIHF1 ZXN0aW9uLWFza2VyOwogICAgIOKAmGF1dG9sb2FkLmVs4oCZLCBwcm92aWRpbmcgc2VtaS1hdXRv bWF0aWMgbWFpbnRlbmFuY2Ugb2YgYXV0b2xvYWQKICAgICBmaWxlcy4KCiAgIOKAoiBBbGFuIE1h Y2tlbnppZSB3cm90ZSB0aGUgaW50ZWdyYXRlZCBBV0sgc3VwcG9ydCBpbiBDQyBNb2RlLCBhbmQK ICAgICBtYWludGFpbmVkIENDIE1vZGUgZnJvbSBFbWFjcyAyMiBvbndhcmRzLgoKICAg4oCiIE1p Y2hhZWwgTWNOYW1hcmEgYW5kIFdpbHNvbiBTbnlkZXIgd3JvdGUgVmVyaWxvZyBtb2RlLgoKICAg 4oCiIENocmlzdG9waGVyIEouIE1hZHNlbiB3cm90ZSDigJhkZWNpcGhlci5lbOKAmSwgYSBwYWNr YWdlIGZvciBjcmFja2luZwogICAgIHNpbXBsZSBzdWJzdGl0dXRpb24gY2lwaGVycy4KCiAgIOKA oiBOZWlsIE0uIE1hZ2VyIHdyb3RlIOKAmGFwcHQuZWzigJksIGZ1bmN0aW9ucyB0byBub3RpZnkg dXNlcnMgb2YgdGhlaXIKICAgICBhcHBvaW50bWVudHMuICBJdCBmaW5kcyBhcHBvaW50bWVudHMg cmVjb3JkZWQgaW4gdGhlIGRpYXJ5IGZpbGVzCiAgICAgdXNlZCBieSB0aGUg4oCYY2FsZW5kYXLi gJkgcGFja2FnZS4KCiAgIOKAoiBLZW4gTWFuaGVpbWVyIHdyb3RlIOKAmGFsbG91dC5lbOKAmSwg YSBtb2RlIGZvciBtYW5pcHVsYXRpbmcgYW5kCiAgICAgZm9ybWF0dGluZyBvdXRsaW5lcywgYW5k IOKAmGljb21wbGV0ZS5lbOKAmSwgd2hpY2ggcHJvdmlkZXMgaW5jcmVtZW50YWwKICAgICBjb21w bGV0aW9uIGZlZWRiYWNrIGluIHRoZSBtaW5pYnVmZmVyLgoKICAg4oCiIEJpbGwgTWFubiB3cm90 ZSDigJhwZXJsLW1vZGUuZWzigJksIGEgbW9kZSBmb3IgZWRpdGluZyBQZXJsIGNvZGUuCgogICDi gKIgQnJpYW4gTWFyaWNrIGFuZCBEYW5pZWwgTGFMaWJlcnRlIHdyb3RlIOKAmGhpZGVpZi5lbOKA mSwgc3VwcG9ydCBmb3IKICAgICBoaWRpbmcgc2VsZWN0ZWQgY29kZSB3aXRoaW4gQyDigJgjaWZk ZWbigJkgY2xhdXNlcy4KCiAgIOKAoiBTaW1vbiBNYXJzaGFsbCB3cm90ZSDigJhyZWdleHAtb3B0 LmVs4oCZLCB3aGljaCBnZW5lcmF0ZXMgYSByZWd1bGFyCiAgICAgZXhwcmVzc2lvbiBmcm9tIGEg bGlzdCBvZiBzdHJpbmdzOyBhbmQgdGhlIGZhc3QtbG9jayBhbmQgbGF6eS1sb2NrCiAgICAgZm9u dC1sb2NrIHN1cHBvcnQgbW9kZXMuICBIZSBhbHNvIGV4dGVuZGVkIOKAmGNvbWludC5lbOKAmSBh bmQKICAgICDigJhzaGVsbC5lbOKAmSwgb3JpZ2luYWxseSB3cml0dGVuIGJ5IE9saW4gU2hpdmVy cy4KCiAgIOKAoiBCZW5ndCBNYXJ0ZW5zc29uLCBEaXJrIEhlcnJtYW5uLCBNYXJjIFNoYXBpcm8s IE1pa2UgTmV3dG9uLCBBYXJvbgogICAgIExhcnNvbiwgYW5kIFN0ZWZhbiBTY2hvZWYsIHdyb3Rl IOKAmGJpYnRleC5lbOKAmSwgYSBtb2RlIGZvciBlZGl0aW5nCiAgICAgQmliVGVYIGJpYmxpb2dy YXBoeSBmaWxlcy4KCiAgIOKAoiBDaGFybGllIE1hcnRpbiB3cm90ZSDigJhhdXRvaW5zZXJ0LmVs 4oCZLCB3aGljaCBwcm92aWRlcyBhdXRvbWF0aWMKICAgICBtb2RlLXNlbnNpdGl2ZSBpbnNlcnRp b24gb2YgdGV4dCBpbnRvIG5ldyBmaWxlcy4KCiAgIOKAoiBZdWtpaGlybyBNYXRzdW1vdG8gYW5k IE5vYnV5b3NoaSBOYWthZGEgd3JvdGUgUnVieS1tb2RlLgoKICAg4oCiIFRvbW9oaXJvIE1hdHN1 eWFtYSB3cm90ZSB0aGUgbmF0aXZlIEVsaXNwIHByb2ZpbGVyLgoKICAg4oCiIFRob21hcyBNYXkg d3JvdGUg4oCYYmxhY2tib3guZWzigJksIGEgdmVyc2lvbiBvZiB0aGUgdHJhZGl0aW9uYWwKICAg ICBibGFja2JveCBnYW1lLgoKICAg4oCiIERhdmlkIE1lZ2dpbnNvbiB3cm90ZSDigJhkZXJpdmVk LmVs4oCZLCB3aGljaCBhbGxvd3Mgb25lIHRvIGRlZmluZSBuZXcKICAgICBtYWpvciBtb2RlcyBi eSBpbmhlcml0aW5nIGtleSBiaW5kaW5ncyBhbmQgY29tbWFuZHMgZnJvbSBleGlzdGluZwogICAg IG1ham9yIG1vZGVzLgoKICAg4oCiIFdpbGwgTWVuZ2FyaW5pIHdyb3RlIOKAmHJlcGVhdC5lbOKA mSwgYSBjb21tYW5kIHRvIHJlcGVhdCB0aGUgcHJlY2VkaW5nCiAgICAgY29tbWFuZCB3aXRoIGl0 cyBhcmd1bWVudHMuCgogICDigKIgUmljaGFyZCBNbHluYXJpayB3cm90ZSDigJhjbC1pbmRlbnQu ZWzigJksIGEgcGFja2FnZSBmb3IgaW5kZW50aW5nCiAgICAgQ29tbW9uIExpc3AgY29kZTsg4oCY ZWJ1ZmYtbWVudS5lbOKAmSwgYW4gZWxlY3RyaWMgYnJvd3NlciBmb3IgYnVmZmVyCiAgICAgbGlz dGluZ3M7IOKAmGVoZWxwLmVs4oCZLCBiaW5kaW5ncyBmb3IgYnJvd3NpbmcgaGVscCBzY3JlZW5z OyBhbmQKICAgICDigJhyZmM4MjIuZWzigJksIGEgcGFyc2VyIGZvciBFLW1haWwgYWRkcmVzc2Vz IGluIHRoZSBSRkMtODIyIGZvcm1hdCwKICAgICB1c2VkIGluIG1haWwgbWVzc2FnZXMgYW5kIG5l d3MgYXJ0aWNsZXMuCgogICDigKIgR2VyZCBNw7ZsbG1hbm4gd2FzIHRoZSBFbWFjcyBtYWludGFp bmVyIGZyb20gdGhlIGJlZ2lubmluZyBvZiBFbWFjcwogICAgIDIxIGRldmVsb3BtZW50IHVudGls IHRoZSByZWxlYXNlIG9mIDIxLjEuICBIZSB3cm90ZSB0aGUgbmV3IGRpc3BsYXkKICAgICBlbmdp bmUgdXNlZCBmcm9tIEVtYWNzIDIxIG9ud2FyZHMsIGFuZCB0aGUgYXN5bmNocm9ub3VzIHRpbWVy cwogICAgIGZhY2lsaXR5LiAgSGUgYWxzbyB3cm90ZSDigJhlYnJvd3Nl4oCZLCB0aGUgQysrIGJy b3dzZXI7IOKAmGppdC1sb2NrLmVs4oCZLAogICAgIHRoZSBKdXN0LUluLVRpbWUgZm9udC1sb2Nr IHN1cHBvcnQgbW9kZTsg4oCYdG9vbHRpcC5lbOKAmSwgYSBwYWNrYWdlCiAgICAgZm9yIGRpc3Bs YXlpbmcgdG9vbHRpcHM7IOKAmGF1dGhvcnMuZWzigJksIGEgcGFja2FnZSBmb3IgbWFpbnRhaW5p bmcKICAgICB0aGUg4oCYQVVUSE9SU+KAmSBmaWxlOyBhbmQg4oCYcnguZWzigJksIGEgcmVndWxh ciBleHByZXNzaW9uIGNvbnN0cnVjdG9yLgoKICAg4oCiIFN0ZWZhbiBNb25uaWVyIHdhcyB0aGUg RW1hY3MgKGNvLSltYWludGFpbmVyIGZyb20gRW1hY3MgMjMgdW50aWwKICAgICBsYXRlIGluIHRo ZSBkZXZlbG9wbWVudCBvZiAyNS4xLiAgSGUgYWRkZWQgc3VwcG9ydCBmb3IgQXJjaCBhbmQKICAg ICBTdWJ2ZXJzaW9uIHRvIFZDLCByZS13cm90ZSBtdWNoIG9mIHRoZSBFbWFjcyBzZXJ2ZXIgdG8g dXNlIHRoZQogICAgIGJ1aWx0LWluIG5ldHdvcmtpbmcgcHJpbWl0aXZlcywgYW5kIHJlLXdyb3Rl IHRoZSBhYmJyZXYgYW5kCiAgICAgbWluaWJ1ZmZlciBjb21wbGV0aW9uIGNvZGUgZm9yIEVtYWNz IDIzLiAgSGUgYWxzbyB3cm90ZSDigJhQQ0wtQ1ZT4oCZLAogICAgIGEgZGlyZWN0b3J5LWxldmVs IGZyb250IGVuZCB0byB0aGUgQ1ZTIHZlcnNpb24gY29udHJvbCBzeXN0ZW07CiAgICAg4oCYcmV2 ZWFsLmVs4oCZLCBhIG1pbm9yIG1vZGUgZm9yIGF1dG9tYXRpY2FsbHkgcmV2ZWFsaW5nIGludmlz aWJsZQogICAgIHRleHQ7IOKAmHNtZXJnZS1tb2RlLmVs4oCZLCBhIG1pbm9yIG1vZGUgZm9yIHJl c29sdmluZyDigJhkaWZmM+KAmQogICAgIGNvbmZsaWN0czsg4oCYZGlmZi1tb2RlLmVs4oCZLCBh IG1vZGUgZm9yIHZpZXdpbmcgYW5kIGVkaXRpbmcgY29udGV4dAogICAgIGRpZmZzOyDigJhjc3Mt bW9kZS5lbOKAmSBmb3IgQ2FzY2FkaW5nIFN0eWxlIFNoZWV0czsg4oCYYmlidGV4LXN0eWxlLmVs 4oCZCiAgICAgZm9yIEJpYlRlWCBTdHlsZSBmaWxlczsg4oCYbXBjLmVs4oCZLCBhIGNsaWVudCBm b3IgdGhlIE11c2ljIFBsYXllcgogICAgIERhZW1vbiAoTVBEKTsg4oCYc21pZS5lbOKAmSwgYSBn ZW5lcmljIGluZGVudGF0aW9uIGVuZ2luZTsgYW5kCiAgICAg4oCYcGNhc2UuZWzigJksIGltcGxl bWVudGluZyBNTC1zdHlsZSBwYXR0ZXJuIG1hdGNoaW5nLiAgSW4gRW1hY3MgMjQsCiAgICAgaGUg aW50ZWdyYXRlZCB0aGUgbGV4aWNhbCBiaW5kaW5nIGNvZGUsIGNsZWFuZWQgdXAgdGhlIENMIG5h bWVzcGFjZQogICAgIChtYWtpbmcgaXQgYWNjZXB0YWJsZSB0byB1c2UgQ0wgZnVuY3Rpb25zIGF0 IHJ1bnRpbWUpLCBhZGRlZAogICAgIGdlbmVyYWxpemVkIHZhcmlhYmxlcyB0byBjb3JlIEVtYWNz IExpc3AsIGFuZCBpbXBsZW1lbnRlZCBhIG5ldwogICAgIGxpZ2h0d2VpZ2h0IGFkdmljZSBtZWNo YW5pc20uCgogICDigKIgTW9yaW9rYSBUb21vaGlrbyB3cm90ZSBzZXZlcmFsIHBhY2thZ2VzIGZv ciBNSU1FIHN1cHBvcnQgaW4gR251cwogICAgIGFuZCBlbHNld2hlcmUuCgogICDigKIgU2VuIE5h Z2F0YSB3cm90ZSDigJhjcm0uZWzigJksIGEgcGFja2FnZSBmb3IgcmVhZGluZyBtdWx0aXBsZSBz dHJpbmdzCiAgICAgd2l0aCBjb21wbGV0aW9uLCBhbmQg4oCYcmZjMjM2OC5lbOKAmSwgc3VwcG9y dCBmb3Ig4oCYbWFpbHRvOuKAmSBVUkxzLgoKICAg4oCiIEVyaWsgTmFnZ3VtIHdyb3RlIHRoZSB0 aW1lLWNvbnZlcnNpb24gZnVuY3Rpb25zLiAgSGUgYWxzbyB3cm90ZQogICAgIOKAmGRpc3AtdGFi bGUuZWzigJksIGZvciBkZWFsaW5nIHdpdGggZGlzcGxheSB0YWJsZXM7IOKAmG1haWxoZWFkZXIu ZWzigJksCiAgICAgZm9yIHBhcnNpbmcgZW1haWwgaGVhZGVyczsgYW5kIOKAmHBhcnNlLXRpbWUu ZWzigJksIGZvciBwYXJzaW5nIHRpbWUKICAgICBzdHJpbmdzLgoKICAg4oCiIFRha2FoYXNoaSBO YW90byBjby13cm90ZSDigJhxdWFpbC5lbOKAmSAocS52LiksIGFuZCB3cm90ZSDigJhyb2Jpbi5l bOKAmSwKICAgICBhbm90aGVyIGlucHV0IG1ldGhvZC4KCiAgIOKAoiBUaG9tYXMgTmV1bWFubiBh bmQgRXJpYyBSYXltb25kIHdyb3RlIOKAmG1ha2UtbW9kZS5lbOKAmSwgYSBtb2RlIGZvcgogICAg IGVkaXRpbmcgbWFrZWZpbGVzLgoKICAg4oCiIFRoaWVuLVRoaSBOZ3V5ZW4gYW5kIERhbiBOaWNv bGFlc2N1IHdyb3RlIOKAmGhpZGVzaG93LmVs4oCZLCBhIG1pbm9yCiAgICAgbW9kZSBmb3Igc2Vs ZWN0aXZlbHkgZGlzcGxheWluZyBibG9ja3Mgb2YgdGV4dC4KCiAgIOKAoiBEYW4gTmljb2xhZXNj dSBhZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIEVtYWNzIGFzIGEgZGFlbW9uLiAgSGUKICAgICBh bHNvIHdyb3RlIOKAmHJvbWFuaWFuLmVs4oCZLCBzdXBwb3J0IGZvciBlZGl0aW5nIFJvbWFuaWFu IHRleHQ7CiAgICAg4oCYaXJpcy1hbnNpLmVs4oCZLCBzdXBwb3J0IGZvciBydW5uaW5nIEVtYWNz IG9uIFNHSeKAmXMg4oCYeHdzaOKAmSBhbmQKICAgICDigJh3aW50ZXJt4oCZIHRlcm1pbmFsIGVt dWxhdG9yczsgYW5kIOKAmHZjLWRpci5lbOKAmSwgZGlzcGxheWluZyB0aGUKICAgICBzdGF0dXMg b2YgdmVyc2lvbi1jb250cm9sbGVkIGRpcmVjdG9yaWVzLgoKICAg4oCiIEhydm9qZSBOaWvFoWnE hyB3cm90ZSDigJhzYXZlaGlzdC5lbOKAmSwgZm9yIHNhdmluZyB0aGUgbWluaWJ1ZmZlcgogICAg IGhpc3RvcnkgYmV0d2VlbiBFbWFjcyBzZXNzaW9ucy4KCiAgIOKAoiBKZWZmIE5vcmRlbiB3cm90 ZSDigJhrZXJtaXQuZWzigJksIGEgcGFja2FnZSB0byBoZWxwIHRoZSBLZXJtaXQgZGlhbHVwCiAg ICAgY29tbXVuaWNhdGlvbnMgcHJvZ3JhbSBydW4gY29tZm9ydGFibHkgaW4gYW4gRW1hY3Mgc2hl bGwgYnVmZmVyLgoKICAg4oCiIEFuZHJldyBOb3JtYW4gd3JvdGUg4oCYYW5nZS1mdHAuZWzigJks IHByb3ZpZGluZyB0cmFuc3BhcmVudCBGVFAKICAgICBzdXBwb3J0LgoKICAg4oCiIEtlbnRhcm8g T2hrb3VjaGkgY3JlYXRlZCB0aGUgRW1hY3MgaWNvbnMgdXNlZCBiZWdpbm5pbmcgd2l0aCBFbWFj cwogICAgIDIzLgoKICAg4oCiIENocmlzdGlhbiBPaGxlciB3cm90ZSDigJhlcnQuZWzigJksIGEg bGlicmFyeSBmb3IgYXV0b21hdGVkIHJlZ3Jlc3Npb24KICAgICB0ZXN0aW5nLgoKICAg4oCiIEFs ZXhhbmRyZSBPbGl2YSB3cm90ZSDigJhnbnVzLW1sc3BsLmVs4oCZLCBhIGdyb3VwIHBhcmFtcy1i YXNlZCBtYWlsCiAgICAgc3BsaXR0aW5nIG1lY2hhbmlzbS4KCiAgIOKAoiBUYWthYWtpIE90YSB3 cm90ZSDigJh0YWJsZS5lbOKAmSwgYSBwYWNrYWdlIGZvciBjcmVhdGluZyBhbmQgZWRpdGluZwog ICAgIGVtYmVkZGVkIHRleHQtYmFzZWQgdGFibGVzLgoKICAg4oCiIFBpZXRlciBFLiBKLiBQYXJl aXQgd3JvdGUg4oCYbWl4YWwtbW9kZS5lbOKAmSwgYW4gZWRpdGluZyBtb2RlIGZvciB0aGUKICAg ICBNSVggYXNzZW1ibHkgbGFuZ3VhZ2UuCgogICDigKIgRGF2aWQgUGVhcnNvbiB3cm90ZSDigJhx dWlja3VybC5lbOKAmSwgYSBzaW1wbGUgbWV0aG9kIG9mIGluc2VydGluZyBhCiAgICAgVVJMIGlu dG8gdGhlIGN1cnJlbnQgYnVmZmVyIGJhc2VkIG9uIHRleHQgYXQgcG9pbnQ7IOKAmDV4NS5lbOKA mSwgYQogICAgIGdhbWUgdG8gZmlsbCBhbGwgc3F1YXJlcyBvbiB0aGUgZmllbGQuCgogICDigKIg SmVmZiBQZWNrIHdyb3RlIOKAmHN1bi5lbOKAmSwga2V5IGJpbmRpbmdzIGZvciBzdW50ZXJtIGtl eXMuCgogICDigKIgRGFtb24gQW50b24gUGVybWV6ZWwgd3JvdGUg4oCYaGFub2kuZWzigJksIGFu IGFuaW1hdGVkIGRlbW9uc3RyYXRpb24gb2YKICAgICB0aGUgVG93ZXJzIG9mIEhhbm9pIHB1enps ZS4KCiAgIOKAoiBXaWxsaWFtIE0uIFBlcnJ5IHdyb3RlIOKAmG1haWxjYXAuZWzigJkgKHdpdGgg TGFycyBNYWduZSBJbmdlYnJpZ3RzZW4pLAogICAgIGEgTUlNRSBtZWRpYSB0eXBlcyBjb25maWd1 cmF0aW9uIGZhY2lsaXR5OyDigJhtd2hlZWwuZWzigJksIGEgcGFja2FnZQogICAgIGZvciBzdXBw b3J0aW5nIG1vdXNlIHdoZWVsczsgY28td3JvdGUgKHdpdGggRGF2ZSBMb3ZlKSDigJhzb2Nrcy5l bOKAmSwKICAgICBhIFNvY2tzIHY1IGNsaWVudDsgYW5kIGRldmVsb3BlZCB0aGUgVVJMIHBhY2th Z2UuCgogICDigKIgUGVyIFBlcnNzb24gd3JvdGUg4oCYZ251cy12bS5lbOKAmSwgdGhlIFZNIGlu dGVyZmFjZSBmb3IgR251cy4KCiAgIOKAoiBKZW5zIFBldGVyc2VuIHdyb3RlIOKAmGZpbmQtZnVu Yy5lbOKAmSwgd2hpY2ggbWFrZXMgaXQgZWFzeSB0byBmaW5kIHRoZQogICAgIHNvdXJjZSBjb2Rl IGZvciBhbiBFbWFjcyBMaXNwIGZ1bmN0aW9uIG9yIHZhcmlhYmxlLgoKICAg4oCiIE5pY29sYXMg UGV0dG9uIHdyb3RlIOKAmG1hcC5lbOKAmSwgYSBsaWJyYXJ5IHByb3ZpZGluZyBtYXAtbWFuaXB1 bGF0aW9uCiAgICAgZnVuY3Rpb25zIHRoYXQgd29yayBvbiBhbGlzdHMsIGhhc2gtdGFibGUgYW5k IGFycmF5czsg4oCYc2VxLmVs4oCZLCBhCiAgICAgbGlicmFyeSBwcm92aWRpbmcgYWR2YW5jZWQg c2VxdWVuY2UgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBhbmQKICAgICBtYWNyb3M7IGFuZCDigJh0 aHVuay5lbOKAmSwgYSBsaWJyYXJ5IHByb3ZpZGluZyBmdW5jdGlvbnMgYW5kIG1hY3JvcyB0bwog ICAgIGRlbGF5IHRoZSBldmFsdWF0aW9uIG9mIGZvcm1zLiAgSGUgYWxzbyBjcmVhdGVkIHRoZSBu ZXcgaWNvbiBpbgogICAgIEVtYWNzIDI1LgoKICAg4oCiIERhbmllbCBQZmVpZmZlciB3cm90ZSDi gJhjb25mLW1vZGUuZWzigJksIGEgbW9kZSBmb3IgZWRpdGluZwogICAgIGNvbmZpZ3VyYXRpb24g ZmlsZXM7IOKAmGNvcHlyaWdodC5lbOKAmSwgYSBwYWNrYWdlIGZvciB1cGRhdGluZwogICAgIGNv cHlyaWdodCBub3RpY2VzIGluIGZpbGVzOyDigJhleGVjdXRhYmxlLmVs4oCZLCBhIHBhY2thZ2Ug Zm9yCiAgICAgZXhlY3V0aW5nIGludGVycHJldGVyIHNjcmlwdHM7IOKAmHNoLXNjcmlwdC5lbOKA mSwgYSBtb2RlIGZvciBlZGl0aW5nCiAgICAgc2hlbGwgc2NyaXB0czsg4oCYc2tlbGV0b24uZWzi gJksIGltcGxlbWVudGluZyBhIGNvbmNpc2UgbGFuZ3VhZ2UgZm9yCiAgICAgd3JpdGluZyBzdGF0 ZW1lbnQgc2tlbGV0b25zOyBhbmQg4oCYdHdvLWNvbHVtbi5lbOKAmSwgYSBtaW5vciBtb2RlIGZv cgogICAgIHNpbXVsdGFuZW91cyB0d28tY29sdW1uIGVkaXRpbmcuCgogICAgIERhbmllbCBhbHNv IHJld3JvdGUg4oCYYXByb3Bvcy5lbOKAmSAob3JpZ2luYWxseSB3cml0dGVuIGJ5IEpvZSBXZWxs cyksCiAgICAgZm9yIGZpbmRpbmcgY29tbWFuZHMsIGZ1bmN0aW9ucywgYW5kIHZhcmlhYmxlcyBt YXRjaGluZyBhIHJlZ3VsYXIKICAgICBleHByZXNzaW9uOyBhbmQsIHRvZ2V0aGVyIHdpdGggSmlt IEJsYW5keSwgY28tYXV0aG9yZWQg4oCYd3lzZTUwLmVs4oCZLAogICAgIHN1cHBvcnQgZm9yIFd5 c2UgNTAgdGVybWluYWxzLiAgSGUgYWxzbyBjby13cm90ZSDigJhjb21waWxlLmVs4oCZCiAgICAg KHEudi4pIGFuZCDigJhhZGEtc3RtdC5lbOKAmS4KCiAgIOKAoiBSaWNoYXJkIEwuIFBpZXJpIHdy b3RlIOKAmHBvcDMuZWzigJksIGEgUG9zdCBPZmZpY2UgUHJvdG9jb2wgKFJGQyAxNDYwKQogICAg IGludGVyZmFjZSBmb3IgRW1hY3MuCgogICDigKIgRnJlZCBQaWVycmVzdGVndXkgYW5kIFBhdWwg UmVpbGx5IG1hZGUgRW1hY3Mgd29yayB3aXRoIFggVG9vbGtpdAogICAgIHdpZGdldHMuCgogICDi gKIgRnJhbsOnb2lzIFBpbmFyZCwgR3JlZyBNY0dhcnksIGFuZCBCcnVubyBIYWlibGUgd3JvdGUg 4oCYcG8uZWzigJksCiAgICAgc3VwcG9ydCBmb3IgUE8gdHJhbnNsYXRpb24gZmlsZXMuCgogICDi gKIgQ2hyaXN0aWFuIFBsYXVudCB3cm90ZSDigJhzb3VuZGV4LmVs4oCZLCBhbiBpbXBsZW1lbnRh dGlvbiBvZiB0aGUKICAgICBTb3VuZGV4IGFsZ29yaXRobSBmb3IgY29tcGFyaW5nIEVuZ2xpc2gg d29yZHMgYnkgdGhlaXIKICAgICBwcm9udW5jaWF0aW9uLgoKICAg4oCiIERhdmlkIFBvbmNlIHdy b3RlIOKAmHJlY2VudGYuZWzigJksIGEgcGFja2FnZSB0aGF0IHB1dHMgYSBtZW51IG9mCiAgICAg cmVjZW50bHkgdmlzaXRlZCBmaWxlcyBpbiB0aGUgRW1hY3MgbWVudSBiYXI7IOKAmHJ1bGVyLW1v ZGUuZWzigJksIGEKICAgICBtaW5vciBtb2RlIGZvciBkaXNwbGF5aW5nIGEgcnVsZXIgaW4gdGhl IGhlYWRlciBsaW5lOyBhbmQKICAgICDigJh0cmVlLXdpZGdldC5lbOKAmSwgYSBwYWNrYWdlIHRv IGRpc3BsYXkgaGllcmFyY2hpY2FsIGRhdGEKICAgICBzdHJ1Y3R1cmVzLgoKICAg4oCiIEZyYW5j ZXNjbyBBLiBQb3RvcnTDrCB3cm90ZSDigJhjbWFjZXhwLmVs4oCZLCBwcm92aWRpbmcgYSBjb21t YW5kIHdoaWNoCiAgICAgcnVucyB0aGUgQyBwcmVwcm9jZXNzb3Igb24gYSByZWdpb24gb2YgYSBm aWxlIGFuZCBkaXNwbGF5cyB0aGUKICAgICByZXN1bHRzLiAgSGUgYWxzbyBleHBhbmRlZCBhbmQg cmVkZXNpZ25lZCB0aGUg4oCYZXRhZ3PigJkgcHJvZ3JhbS4KCiAgIOKAoiBNaWNoYWVsIEQuIFBy YW5nZSBhbmQgU3RldmVuIEEuIFdvb2Qgd3JvdGUg4oCYZm9ydHJhbi5lbOKAmSwgYSBtb2RlIGZv cgogICAgIGVkaXRpbmcgRm9ydHJhbiBjb2RlLgoKICAg4oCiIEFzaHdpbiBSYW0gd3JvdGUg4oCY cmVmZXIuZWzigJksIGNvbW1hbmRzIHRvIGxvb2sgdXAgcmVmZXJlbmNlcyBpbgogICAgIGJpYmxp b2dyYXBoeSBmaWxlcyBieSBrZXl3b3JkLgoKICAg4oCiIEVyaWMgUy4gUmF5bW9uZCB3cm90ZSDi gJh2Yy5lbOKAmSwgYW4gaW50ZXJmYWNlIHRvIHRoZSBSQ1MgYW5kIFNDQ1MKICAgICBzb3VyY2Ug Y29kZSB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtcywgd2l0aCBQYXVsIEVnZ2VydDsg4oCYZ3VkLmVs 4oCZLCBhCiAgICAgcGFja2FnZSBmb3IgcnVubmluZyBzb3VyY2UtbGV2ZWwgZGVidWdnZXJzIGxp a2UgR0RCIGFuZCBTREIgaW4KICAgICBFbWFjczsg4oCYYXNtLW1vZGUuZWzigJksIGEgbW9kZSBm b3IgZWRpdGluZyBhc3NlbWJseSBsYW5ndWFnZSBjb2RlOwogICAgIOKAmEFUMzg2LmVs4oCZLCB0 ZXJtaW5hbCBzdXBwb3J0IHBhY2thZ2UgZm9yIElCTeKAmXMgQVQga2V5Ym9hcmRzOwogICAgIOKA mGNvb2tpZTEuZWzigJksIHN1cHBvcnQgZm9yIGZvcnR1bmUtY29va2llIHByb2dyYW1zIGxpa2Ug 4oCYeW93LmVs4oCZIGFuZAogICAgIOKAmHNwb29rLmVs4oCZOyDigJhmaW5kZXIuZWzigJksIGEg cGFja2FnZSBmb3IgZmluZGluZyBFbWFjcyBMaXNwIHBhY2thZ2VzCiAgICAgYnkga2V5d29yZCBh bmQgdG9waWM7IOKAmGtleXN3YXAuZWzigJksIGNvZGUgdG8gc3dhcCB0aGUgPEJTPiBhbmQgPERF TD4KICAgICBrZXlzOyDigJhsb2FkaGlzdC5lbOKAmSwgZnVuY3Rpb25zIGZvciBsb2FkaW5nIGFu ZCB1bmxvYWRpbmcgRW1hY3MKICAgICBmZWF0dXJlczsg4oCYbGlzcC1tbnQuZWzigJksIGZ1bmN0 aW9ucyBmb3Igd29ya2luZyB3aXRoIHRoZSBzcGVjaWFsCiAgICAgaGVhZGVycyB1c2VkIGluIEVt YWNzIExpc3AgbGlicmFyeSBmaWxlczsgYW5kIGNvZGUgdG8gc2V0IGFuZCBtYWtlCiAgICAgdXNl IG9mIHRoZSDigJhsb2FkLWhpc3RvcnnigJkgbGlzcCB2YXJpYWJsZSwgd2hpY2ggcmVjb3JkcyB0 aGUgc291cmNlCiAgICAgZmlsZSBmcm9tIHdoaWNoIGVhY2ggbGlzcCBmdW5jdGlvbiBsb2FkZWQg aW50byBFbWFjcyBjYW1lLgoKICAg4oCiIEVkd2FyZCBNLiBSZWluZ29sZCB3cm90ZSB0aGUgY2Fs ZW5kYXIgYW5kIGRpYXJ5IHN1cHBvcnQsIHdpdGgKICAgICBjb250cmlidXRpb25zIGZyb20gU3Rl d2FydCBDbGFtZW4gKOKAmGNhbC1tYXlhbi5lbOKAmSksIE5hY2h1bQogICAgIERlcnNob3dpdHog KOKAmGNhbC1oZWJyZXcuZWzigJkpLCBQYXVsIEVnZ2VydCAo4oCYY2FsLWRzdC5lbOKAmSksIFN0 ZXZlCiAgICAgRmlzayAo4oCYY2FsLXRleC5lbOKAmSksIE1pY2hhZWwgS2lmZXIgKOKAmGNhbC14 LmVs4oCZKSwgTGFyYSBSaW9zCiAgICAgKOKAmGNhbC1tZW51LmVs4oCZKSwgYW5kIERlbmlzIEIu IFJvZWdlbCAo4oCYc29sYXIuZWzigJkpLiAgQW5keSBPcmFtCiAgICAgY29udHJpYnV0ZWQgdG8g aXRzIGRvY3VtZW50YXRpb24uICBSZWluZ29sZCBhbHNvIGNvbnRyaWJ1dGVkIHRvCiAgICAg4oCY dGV4LW1vZGUuZWzigJksIGEgbW9kZSBmb3IgZWRpdGluZyBUZVggZmlsZXMsIGFzIGRpZCBXaWxs aWFtIEYuCiAgICAgU2NoZWx0ZXIsIERpY2sgS2luZywgU3RlcGhlbiBHaWxkZWEsIE1pY2hhZWwg UHJhbmdlLCBhbmQgSmFjb2IKICAgICBHb3JlLgoKICAg4oCiIERhdmlkIFJlaXR0ZXIgd3JvdGUg 4oCYbWFpbGNsaWVudC5lbOKAmSB3aGljaCBjYW4gc2VuZCBtYWlsIHZpYSB0aGUKICAgICBzeXN0 ZW3igJlzIGRlc2lnbmF0ZWQgbWFpbCBjbGllbnQuCgogICDigKIgQWxleCBSZXppbnNreSB3cm90 ZSDigJh3aGljaC1mdW5jLmVs4oCZLCBhIG1vZGUgdGhhdCBzaG93cyB0aGUgbmFtZSBvZgogICAg IHRoZSBjdXJyZW50IGZ1bmN0aW9uIGluIHRoZSBtb2RlIGxpbmUuCgogICDigKIgUm9iIFJpZXBl bCB3cm90ZSDigJh2dC1jb250cm9sLmVs4oCZLCBwcm92aWRpbmcgc29tZSBjb250cm9sIGZ1bmN0 aW9ucwogICAgIGZvciB0aGUgREVDIFZUIGxpbmUgb2YgdGVybWluYWxzLgoKICAg4oCiIE5pY2sg Um9iZXJ0cyB3cm90ZSDigJh0LW1vdXNlLmVs4oCZLCBmb3IgbW91c2Ugc3VwcG9ydCBpbiB0ZXh0 CiAgICAgdGVybWluYWxzOyBhbmQg4oCYZ2RiLXVpLmVs4oCZLCBhIGdyYXBoaWNhbCB1c2VyIGlu dGVyZmFjZSB0byBHREIuCiAgICAgVG9nZXRoZXIgd2l0aCBEbWl0cnkgRHpodXMsIGhlIHdyb3Rl IOKAmGdkYi1taS5lbOKAmSwgdGhlIHN1Y2Nlc3NvciB0bwogICAgIOKAmGdkYi11aS5lbOKAmS4K CiAgIOKAoiBEYW5ueSBSb296ZW5kYWFsIGltcGxlbWVudGVkIOKAmGhhbmR3cml0ZS5lbOKAmSwg d2hpY2ggY29udmVydHMgdGV4dAogICAgIGludG8g4oCcaGFuZHdyaXRpbmfigJ0uCgogICDigKIg TWFya3VzIFJvc3Qgd3JvdGUg4oCYY3VzLXRlc3QuZWzigJksIGEgdGVzdGluZyBmcmFtZXdvcmsg Zm9yIGN1c3RvbWl6ZS4KCiAgIOKAoiBHdWlsbGVybW8gSi4gUm96YXMgd3JvdGUg4oCYc2NoZW1l LmVs4oCZLCBhIG1vZGUgZm9yIGVkaXRpbmcgU2NoZW1lIGFuZAogICAgIERTU1NMIGNvZGUuCgog ICDigKIgTWFydGluIFJ1ZGFsaWNzIGltcGxlbWVudGVkIGltcHJvdmVkIGRpc3BsYXktYnVmZmVy IGhhbmRsaW5nIGluCiAgICAgRW1hY3MgMjQ7IGFuZCBpbXBsZW1lbnRlZCBwaXhlbC13aXNlIHJl c2l6aW5nIG9mIHdpbmRvd3MgYW5kCiAgICAgZnJhbWVzLgoKICAg4oCiIEl2YXIgUnVtbWVsaG9m ZiB3cm90ZSDigJh3aW5uZXIuZWzigJksIHdoaWNoIHJlY29yZHMgcmVjZW50IHdpbmRvdwogICAg IGNvbmZpZ3VyYXRpb25zIHNvIHlvdSBjYW4gbW92ZSBiYWNrIHRvIHRoZW0uCgogICDigKIgSmFz b24gUnVtbmV5IHBvcnRlZCB0aGUgRW1hY3MgMjEgZGlzcGxheSBlbmdpbmUgdG8gTVMtV2luZG93 cywgYW5kCiAgICAgaGFzIGNvbnRyaWJ1dGVkIGV4dGVuc2l2ZWx5IHRvIHRoZSBNUy1XaW5kb3dz IHBvcnQgb2YgRW1hY3MuCgogICDigKIgV29sZmdhbmcgUnVwcHJlY2h0IHdyb3RlIEVtYWNzIDE5 4oCZcyBmbG9hdGluZy1wb2ludCBzdXBwb3J0CiAgICAgKGluY2x1ZGluZyDigJhmbG9hdC1zdXAu ZWzigJkgYW5kIOKAmGZsb2F0Zm5zLmPigJkpLgoKICAg4oCiIEtldmluIFJ5ZGUgd3JvdGUg4oCY aW5mby14cmVmLmVs4oCZLCBhIGxpYnJhcnkgZm9yIGNoZWNraW5nIHJlZmVyZW5jZXMKICAgICBp biBJbmZvIGZpbGVzLgoKICAg4oCiIEphbWVzIEIuIFNhbGVtIGFuZCBCcmV3c3RlciBLYWhsZSB3 cm90ZSDigJhjb21wbGV0aW9uLmVs4oCZLCBwcm92aWRpbmcKICAgICBkeW5hbWljIHdvcmQgY29t cGxldGlvbi4KCiAgIOKAoiBIb2xnZXIgU2NoYXVlciB3cm90ZSDigJhmb3J0dW5lLmVs4oCZLCBh IHBhY2thZ2UgZm9yIHVzaW5nIGZvcnR1bmUgaW4KICAgICBtZXNzYWdlIHNpZ25hdHVyZXMuCgog ICDigKIgV2lsbGlhbSBTY2hlbHRlciB3cm90ZSDigJh0ZWxuZXQuZWzigJksIHN1cHBvcnQgZm9y IOKAmHRlbG5ldOKAmSBzZXNzaW9ucwogICAgIHdpdGhpbiBFbWFjcy4KCiAgIOKAoiBSYWxwaCBT Y2hsZWljaGVyIHdyb3RlIOKAmGJhdHRlcnkuZWzigJksIGEgcGFja2FnZSBmb3IgZGlzcGxheWlu ZwogICAgIGxhcHRvcCBjb21wdXRlciBiYXR0ZXJ5IHN0YXR1cywgYW5kIOKAmGluZm8tbG9vay5l bOKAmSwgYSBwYWNrYWdlIGZvcgogICAgIGxvb2tpbmcgdXAgSW5mbyBkb2N1bWVudGF0aW9uIGZv ciBzeW1ib2xzIGluIHRoZSBidWZmZXIuCgogICDigKIgTWljaGFlbCBTY2htaWR0IGFuZCBUb20g UGVycmluZSB3cm90ZSDigJhtb2R1bGEyLmVs4oCZLCBhIG1vZGUgZm9yCiAgICAgZWRpdGluZyBN b2R1bGEtMiBjb2RlLCBiYXNlZCBvbiB3b3JrIGJ5IE1pY2sgSm9yZGFuIGFuZCBQZXRlcgogICAg IFJvYmluc29uLgoKICAg4oCiIFJvbmFsZCBTLiBTY2huZWxsIHdyb3RlIOKAmGR1bm5ldC5lbOKA mSwgYSB0ZXh0IGFkdmVudHVyZSBnYW1lLgoKICAg4oCiIFBoaWxpcHBlIFNjaG5vZWJlbGVuIHdy b3RlIOKAmGdvbW9rdS5lbOKAmSwgYSBHbyBNb2t1IGdhbWUgcGxheWVkCiAgICAgYWdhaW5zdCBF bWFjczsgYW5kIOKAmG1wdXouZWzigJksIGEgbXVsdGlwbGljYXRpb24gcHV6emxlLgoKICAg4oCi IEphbiBTY2hvcm1hbm4gd3JvdGUg4oCYc29saXRhaXJlLmVs4oCZLCBhbiBpbXBsZW1lbnRhdGlv biBvZiB0aGUKICAgICBTb2xpdGFpcmUgZ2FtZS4KCiAgIOKAoiBBbGV4IFNjaHJvZWRlciB3cm90 ZSDigJhhbnNpLWNvbG9yLmVs4oCZLCBhIHBhY2thZ2UgZm9yIHRyYW5zbGF0aW5nCiAgICAgQU5T SSBjb2xvciBlc2NhcGUgc2VxdWVuY2VzIHRvIEVtYWNzIGZhY2VzOyDigJhzcWwuZWzigJksIGEg cGFja2FnZSBmb3IKICAgICBpbnRlcmFjdGl2ZWx5IHJ1bm5pbmcgYW4gU1FMIGludGVycHJldGVy IGluIGFuIEVtYWNzIGJ1ZmZlcjsKICAgICDigJhjdXMtdGhlbWUuZWzigJksIGFuIGludGVyZmFj ZSBmb3IgY3VzdG9tIHRoZW1lczsg4oCYbWFzdGVyLmVs4oCZLCBhCiAgICAgcGFja2FnZSBmb3Ig bWFraW5nIGEgYnVmZmVyIOKAmG1hc3RlcuKAmSBvdmVyIGFub3RoZXI7IGFuZAogICAgIOKAmHNw YW0tc3RhdC5lbOKAmSwgZm9yIHN0YXRpc3RpY2FsIGRldGVjdGlvbiBvZiBqdW5rIGVtYWlsLiAg SGUgYWxzbwogICAgIHdyb3RlIHBhcnRzIG9mIHRoZSBJUkMgY2xpZW50IEVSQyAocS52LikuCgog ICDigKIgUmFuZGFsIFNjaHdhcnR6IHdyb3RlIOKAmHBwLmVs4oCZLCBhIHByZXR0eS1wcmludGVy IGZvciBsaXNwIG9iamVjdHMuCgogICDigKIgTWFudWVsIFNlcnJhbm8gd3JvdGUgdGhlIEZseXNw ZWxsIHBhY2thZ2UsIHdoaWNoIGRvZXMgc3BlbGwKICAgICBjaGVja2luZyBhcyB5b3UgdHlwZS4K CiAgIOKAoiBIb3ZhdiBTaGFjaGFtIHdyb3RlIOKAmHdpbmRtb3ZlLmVs4oCZLCBhIHNldCBvZiBj b21tYW5kcyBmb3Igc2VsZWN0aW5nCiAgICAgd2luZG93cyBiYXNlZCBvbiB0aGVpciBnZW9tZXRy aWNhbCBwb3NpdGlvbiBvbiB0aGUgZnJhbWUuCgogICDigKIgU3RhbmlzbGF2IFNoYWx1bm92IHdy b3RlIOKAmHVjZS5lbOKAmSwgZm9yIHJlc3BvbmRpbmcgdG8gdW5zb2xpY2l0ZWQKICAgICBjb21t ZXJjaWFsIGVtYWlsLgoKICAg4oCiIFJpY2hhcmQgU2hhcm1hbiB3cm90ZSDigJhoaWxpdC1jaGcu ZWzigJksIHdoaWNoIHVzZXMgY29sb3JzIHRvIHNob3cKICAgICByZWNlbnQgZWRpdGluZyBjaGFu Z2VzLgoKICAg4oCiIE9saW4gU2hpdmVycyB3cm90ZSDigJhjb21pbnQuZWzigJksIGEgbGlicmFy eSBmb3IgbW9kZXMgcnVubmluZwogICAgIGludGVyYWN0aXZlIGNvbW1hbmQtbGluZS1vcmllbnRl ZCBzdWJwcm9jZXNzZXMsIGFuZCDigJhzaGVsbC5lbOKAmSwgZm9yCiAgICAgcnVubmluZyBpbmZl cmlvciBzaGVsbHMgKGJvdGggc2luY2UgZXh0ZW5kZWQgYnkgU2ltb24gTWFyc2hhbGwpOwogICAg IOKAmGNtdXNjaGVtZS5lbOKAmSwgZm9yIHJ1bm5pbmcgaW5mZXJpb3IgU2NoZW1lIHByb2Nlc3Nl czsKICAgICDigJhpbmYtbGlzcC5lbOKAmSwgZm9yIHJ1bm5pbmcgaW5mZXJpb3IgTGlzcCBwcm9j ZXNzLgoKICAg4oCiIEVzcGVuIFNrb2dsdW5kIHdyb3RlIOKAmHBhc2NhbC5lbOKAmSwgYSBtb2Rl IGZvciBlZGl0aW5nIFBhc2NhbCBjb2RlLgoKICAg4oCiIFJpY2sgU2xhZGtleSB3cm90ZSDigJhi YWNrcXVvdGUuZWzigJksIGEgbGlzcCBtYWNybyBmb3IgY3JlYXRpbmcKICAgICBtb3N0bHktY29u c3RhbnQgZGF0YS4KCiAgIOKAoiBMeW5uIFNsYXRlciB3cm90ZSDigJhoZWxwLW1hY3JvLmVs4oCZ LCBhIG1hY3JvIGZvciB3cml0aW5nIGludGVyYWN0aXZlCiAgICAgaGVscCBmb3Iga2V5IGJpbmRp bmdzLgoKICAg4oCiIENocmlzIFNtaXRoIHdyb3RlIOKAmGljb24uZWzigJksIGEgbW9kZSBmb3Ig ZWRpdGluZyBJY29uIGNvZGUuCgogICDigKIgRGF2aWQgU21pdGggd3JvdGUg4oCYaWVsbS5lbOKA mSwgYSBtb2RlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBFbWFjcwogICAgIExpc3AgaW50ZXJw cmV0ZXIgYXMgYSBzdWJwcm9jZXNzLgoKICAg4oCiIFBhdWwgRC4gU21pdGggd3JvdGUg4oCYc25t cC1tb2RlLmVs4oCZLgoKICAg4oCiIFdpbGxpYW0gU29tbWVyZmVsZCB3cm90ZSDigJhzY3JpYmUu ZWzigJksIGEgbW9kZSBmb3IgZWRpdGluZyBTY3JpYmUKICAgICBmaWxlcywgYW5kIOKAmHNlcnZl ci5lbOKAmSwgYSBwYWNrYWdlIGFsbG93aW5nIHByb2dyYW1zIHRvIHNlbmQgZmlsZXMKICAgICB0 byBhbiBleHRhbnQgRW1hY3Mgam9iIHRvIGJlIGVkaXRlZC4KCiAgIOKAoiBBbmRyZSBTcGllZ2Vs IG1hZGUgbWFueSBjb250cmlidXRpb25zIHRvIHRoZSBFbWFjcyBWZXJzaW9uIENvbnRyb2wKICAg ICBwYWNrYWdlLCBhbmQgaW4gcGFydGljdWxhciBtYWRlIGl0IHN1cHBvcnQgbXVsdGlwbGUgYmFj ayBlbmRzLgoKICAg4oCiIE1pY2hhZWwgU3RhYXRzIHdyb3RlIOKAmHBjLXNlbGVjdC5lbOKAmSwg d2hpY2ggcmViaW5kcyBrZXlzIGZvcgogICAgIHNlbGVjdGluZyByZWdpb25zIHRvIGZvbGxvdyBt YW55IG90aGVyIHN5c3RlbXMuCgogICDigKIgUmljaGFyZCBTdGFsbG1hbiBpbnZlbnRlZCBFbWFj cy4gIEhlIGlzIHRoZSBvcmlnaW5hbCBhdXRob3Igb2YgR05VCiAgICAgRW1hY3MsIGFuZCBoYXMg YmVlbiBFbWFjcyBtYWludGFpbmVyIG92ZXIgc2V2ZXJhbCBub24tY29udGlndW91cwogICAgIHBl cmlvZHMuICBJbiBhZGRpdGlvbiB0byBtdWNoIG9mIHRoZSBjb3JlIEVtYWNzIGNvZGUsIGhlIGhh cwogICAgIHdyaXR0ZW4g4oCYZWFzeW1lbnUuZWzigJksIGEgZmFjaWxpdHkgZm9yIGRlZmluaW5n IEVtYWNzIG1lbnVzOwogICAgIOKAmGltYWdlLW1vZGUuZWzigJksIHN1cHBvcnQgZm9yIHZpc2l0 aW5nIGltYWdlIGZpbGVzOyDigJhtZW51LWJhci5lbOKAmSwKICAgICB0aGUgRW1hY3MgbWVudSBi YXIgc3VwcG9ydCBjb2RlOyDigJhwYXJlbi5lbOKAmSwgYSBwYWNrYWdlIHRvIG1ha2UKICAgICBt YXRjaGluZyBwYXJlbnRoZXNlcyBzdGFuZCBvdXQgaW4gY29sb3I7IGFuZCBhbHNvIGNvLWF1dGhv cmVkCiAgICAgcG9ydGlvbnMgb2YgQ0MgbW9kZS4KCiAgIOKAoiBTYW0gU3RlaW5nb2xkIHdyb3Rl IOKAmG1pZG5pZ2h0LmVs4oCZLCBhIHBhY2thZ2UgZm9yIHJ1bm5pbmcgYSBjb21tYW5kCiAgICAg ZXZlcnkgbWlkbmlnaHQuCgogICDigKIgQWtlIFN0ZW5ob2ZmIGFuZCBMYXJzIExpbmRiZXJnIHdy b3RlIOKAmGltZW51LmVs4oCZLCBhIGZyYW1ld29yayBmb3IKICAgICBicm93c2luZyBpbmRpY2Vz IG1hZGUgZnJvbSBidWZmZXIgY29udGVudHMuCgogICDigKIgUGV0ZXIgU3RlcGhlbnNvbiB3cm90 ZSDigJh2Y3Vyc29yLmVs4oCZLCB3aGljaCBpbXBsZW1lbnRzIGEgdmlydHVhbAogICAgIGN1cnNv ciB0aGF0IHlvdSBjYW4gbW92ZSB3aXRoIHRoZSBrZXlib2FyZCBhbmQgdXNlIGZvciBjb3B5aW5n CiAgICAgdGV4dC4KCiAgIOKAoiBLZW4gU3RldmVucyB3cm90ZSDigJhpc3BlbGwuZWzigJksIGEg c3BlbGwtY2hlY2tlciBpbnRlcmZhY2UuCgogICDigKIgS2ltIEYuIFN0b3JtIG1hZGUgbWFueSBp bXByb3ZlbWVudHMgdG8gdGhlIEVtYWNzIGRpc3BsYXkgZW5naW5lLAogICAgIHByb2Nlc3Mgc3Vw cG9ydCwgYW5kIG5ldHdvcmtpbmcgc3VwcG9ydC4gIEhlIGFsc28gd3JvdGUKICAgICDigJhiaW5k YXQuZWzigJksIGEgcGFja2FnZSBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGJpbmFyeSBkYXRh OyBDVUEKICAgICBtb2RlLCB3aGljaCBhbGxvd3MgRW1hY3MgdG8gZW11bGF0ZSB0aGUgc3RhbmRh cmQgQ1VBIGtleSBiaW5kaW5nczsKICAgICDigJhpZG8uZWzigJksIGEgcGFja2FnZSBmb3Igc2Vs ZWN0aW5nIGJ1ZmZlcnMgYW5kIGZpbGVzIHF1aWNrbHk7CiAgICAg4oCYa2V5cGFkLmVs4oCZIGZv ciBzaW1wbGlmaWVkIGtleXBhZCBiaW5kaW5nczsgYW5kIOKAmGttYWNyby5lbOKAmSwgdGhlCiAg ICAga2V5Ym9hcmQgbWFjcm8gZmFjaWxpdHkuCgogICDigKIgTWFydGluIFN0amVybmhvbG0gY28t YXV0aG9yZWQgQ0MgTW9kZSwgYSBtYWpvciBlZGl0aW5nIG1vZGUgZm9yIEMsCiAgICAgQysrLCBP YmplY3RpdmUtQywgSmF2YSwgUGlrZSwgQ09SQkEgSURMLCBhbmQgQVdLIGNvZGUuCgogICDigKIg U3RldmUgU3RyYXNzbWFubiBkaWQgbm90IHdyaXRlIOKAmHNwb29rLmVs4oCZLCBhbmQgZXZlbiBp ZiBoZSBkaWQsIGhlCiAgICAgcmVhbGx5IGRpZG7igJl0IG1lYW4gZm9yIHlvdSB0byB1c2UgaXQg aW4gYW4gYW5hcmNoaXN0aWMgd2F5LgoKICAg4oCiIE9sYWYgU3lsdmVzdGVyIHdyb3RlIOKAmGJz LmVs4oCZLCBhIHBhY2thZ2UgZm9yIG1hbmlwdWxhdGluZyBFbWFjcwogICAgIGJ1ZmZlcnMuCgog ICDigKIgVGlib3IgxaBpbWtvIGFuZCBNaWxhbiBaYW1hemFsIHdyb3RlIOKAmHNsb3Zhay5lbOKA mSwgc3VwcG9ydCBmb3IKICAgICBlZGl0aW5nIHRleHQgaW4gU2xvdmFrIGxhbmd1YWdlLgoKICAg 4oCiIEx1YyBUZWlybGluY2sgd3JvdGUg4oCYaGVscC1hdC1wdC5lbOKAmSwgcHJvdmlkaW5nIGxv Y2FsIGhlbHAgdGhyb3VnaAogICAgIHRoZSBrZXlib2FyZC4KCiAgIOKAoiBKZWFuLVBoaWxpcHBl IFRoZWJlcmdlIHdyb3RlIOKAmHRodW1icy5lbOKAmSwgYSBwYWNrYWdlIGZvciB2aWV3aW5nCiAg ICAgaW1hZ2UgZmlsZXMgYXMgdGh1bWJuYWlscy4KCiAgIOKAoiBTcGVuY2VyIFRob21hcyB3cm90 ZSB0aGUgb3JpZ2luYWwg4oCYZGFiYnJldi5lbOKAmSwgcHJvdmlkaW5nIGEgY29tbWFuZAogICAg IHdoaWNoIGNvbXBsZXRlcyB0aGUgcGFydGlhbCB3b3JkIGJlZm9yZSBwb2ludCwgYmFzZWQgb24g b3RoZXIKICAgICBuZWFyYnkgd29yZHMgZm9yIHdoaWNoIGl0IGlzIGEgcHJlZml4LiAgSGUgYWxz byB3cm90ZSB0aGUgb3JpZ2luYWwKICAgICBkdW1waW5nIHN1cHBvcnQuCgogICDigKIgVG9ydSBU b21hYmVjaGkgY29udHJpYnV0ZWQgdG8gVGliZXRhbiBzdXBwb3J0LgoKICAg4oCiIE1hcmt1cyBU cmlza2Egd3JvdGUg4oCYbGludW0uZWzigJksIGEgbWlub3IgbW9kZSB0aGF0IGRpc3BsYXlzIGxp bmUKICAgICBudW1iZXJzIGluIHRoZSBsZWZ0IG1hcmdpbi4KCiAgIOKAoiBUb20gVHJvbWV5IGFu ZCBDaHJpcyBMaW5kYmxhZCB3cm90ZSDigJh0Y2wuZWzigJksIGEgbW9kZSBmb3IgZWRpdGluZwog ICAgIFRjbC9UayBzb3VyY2UgZmlsZXMgYW5kIHJ1bm5pbmcgYSBUY2wgaW50ZXJwcmV0ZXIgYXMg YW4gRW1hY3MKICAgICBzdWJwcm9jZXNzLiAgVG9tIFRyb21leSBhbHNvIHdyb3RlIOKAmGJ1Zy1y ZWZlcmVuY2UuZWzigJksIHByb3ZpZGluZwogICAgIGNsaWNrYWJsZSBsaW5rcyB0byBidWcgcmVw b3J0czsgYW5kIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBFbWFjcwogICAgIHBhY2thZ2Ugc3lz dGVtLgoKICAg4oCiIEVsaSBUemlwZXJtYW4gd3JvdGUg4oCYcm1haWwtc3BhbS1maWx0ZXIuZWzi gJksIGEgc3BhbSBmaWx0ZXIgZm9yCiAgICAgUk1BSUwuCgogICDigKIgRGFpa2kgVWVubyB3cm90 ZSDigJhzdGFydHRscy5lbOKAmSwgc3VwcG9ydCBmb3IgVHJhbnNwb3J0IExheWVyCiAgICAgU2Vj dXJpdHkgcHJvdG9jb2w7IOKAmHNhc2wtY3JhbS5lbOKAmSBhbmQg4oCYc2FzbC1kaWdlc3QuZWzi gJkgKHdpdGgKICAgICBLZW5pY2hpIE9rYWRhKSwgYW5kIOKAmHNhc2wuZWzigJksIHN1cHBvcnQg Zm9yIFNpbXBsZSBBdXRoZW50aWNhdGlvbgogICAgIGFuZCBTZWN1cml0eSBMYXllciAoU0FTTCk7 IOKAmHBsc3RvcmUuZWzigJkgZm9yIHNlY3VyZSBzdG9yYWdlIG9mCiAgICAgcHJvcGVydHkgbGlz dHM7IGFuZCB0aGUgRWFzeVBHIChhbmQgaXRzIHByZWRlY2Vzc29yIFBHRykgcGFja2FnZSwKICAg ICBmb3IgR251UEcgYW5kIFBHUCBzdXBwb3J0LgoKICAg4oCiIE1hc2Fub2J1IFVtZWRhIHdyb3Rl IEdOVVMsIGEgZmVhdHVyZS1yaWNoIHJlYWRlciBmb3IgVXNlbmV0IG5ld3MKICAgICB0aGF0IHdh cyB0aGUgYW5jZXN0b3Igb2YgdGhlIGN1cnJlbnQgR251cyBwYWNrYWdlLiAgSGUgYWxzbyB3cm90 ZQogICAgIOKAmHJtYWlsc29ydC5lbOKAmSwgYSBwYWNrYWdlIGZvciBzb3J0aW5nIG1lc3NhZ2Vz IGluIFJNQUlMIGZvbGRlcnM7CiAgICAg4oCYbWV0YW1haWwuZWzigJksIGFuIGludGVyZmFjZSB0 byB0aGUgTWV0YW1haWwgcHJvZ3JhbTsKICAgICDigJhnbnVzLWtpbGwuZWzigJksIHRoZSBLaWxs IEZpbGUgbW9kZSBmb3IgR251czsg4oCYZ251cy1taC5lbOKAmSwgYW4gbWgtZQogICAgIGludGVy ZmFjZSBmb3IgR251czsg4oCYZ251cy1tc2cuZWzigJksIGEgbWFpbCBhbmQgcG9zdCBpbnRlcmZh Y2UgZm9yCiAgICAgR251czsgYW5kIOKAmHRpbWV6b25lLmVs4oCZLCBwcm92aWRpbmcgZnVuY3Rp b25zIGZvciBkZWFsaW5nIHdpdGggdGltZQogICAgIHpvbmVzLgoKICAg4oCiIE5laWwgVy4gVmFu IER5a2Ugd3JvdGUg4oCYd2VianVtcC5lbOKAmSwgYSBXZWIgaG90bGlzdCBwYWNrYWdlLgoKICAg 4oCiIERpZGllciBWZXJuYSB3cm90ZSDigJhyZWN0LmVs4oCZLCBhIHBhY2thZ2Ugb2YgZnVuY3Rp b25zIGZvciBvcGVyYXRpb25zCiAgICAgb24gcmVjdGFuZ2xlIHJlZ2lvbnMgb2YgdGV4dC4gIEhl IGFsc28gY29udHJpYnV0ZWQgdG8gR251cyAocS52LikuCgogICDigKIgSm9ha2ltIFZlcm9uYSBp bXBsZW1lbnRlZCBJbWFnZU1hZ2ljayBzdXBwb3J0LgoKICAg4oCiIFVscmlrIFZpZXRoIGltcGxl bWVudGVkIOKAmG1ldGEtbW9kZS5lbOKAmSwgZm9yIGVkaXRpbmcgTWV0YUZvbnQgY29kZS4KCiAg IOKAoiBHZW9mZnJleSBWb2Vsa2VyIHdyb3RlIHRoZSBXaW5kb3dzIE5UIHN1cHBvcnQuICBIZSBh bHNvIHdyb3RlCiAgICAg4oCYZG9zLXczMi5lbOKAmSwgZnVuY3Rpb25zIHNoYXJlZCBieSB0aGUg TVMtRE9TIGFuZCBNUy1XaW5kb3dzIHBvcnRzCiAgICAgb2YgRW1hY3MsIGFuZCDigJh3MzItZm5z LmVs4oCZLCBNUy1XaW5kb3dzIHNwZWNpZmljIHN1cHBvcnQgZnVuY3Rpb25zLgoKICAg4oCiIEpv aGFuIFZyb21hbnMgd3JvdGUg4oCYZm9ybXMuZWzigJkgYW5kIGl0cyBhc3NvY2lhdGVkIGZpbGVz LCBhIG1vZGUgZm9yCiAgICAgZmlsbGluZyBpbiBmb3Jtcy4gIEhlIGFsc28gd3JvdGUg4oCYaXNv LWFjYy5lbOKAmSwgYSBtaW5vciBtb2RlCiAgICAgcHJvdmlkaW5nIGVsZWN0cmljIGFjY2VudCBr ZXlzLgoKICAg4oCiIENvbGluIFdhbHRlcnMgd3JvdGUgSWJ1ZmZlciwgYW4gZW5oYW5jZWQgYnVm ZmVyIG1lbnUuCgogICDigKIgQmFycnkgV2Fyc2F3IHdyb3RlIOKAmGNjLW1vZGUuZWzigJksIGEg bW9kZSBmb3IgZWRpdGluZyBDLCBDKyssIGFuZAogICAgIEphdmEgY29kZSwgYmFzZWQgb24gZWFy bGllciB3b3JrIGJ5IERhdmUgRGV0bGVmcywgU3Rld2FydCBDbGFtZW4sCiAgICAgYW5kIFJpY2hh cmQgU3RhbGxtYW47IOKAmGVscC5lbOKAmSwgYSBwcm9maWxlciBmb3IgRW1hY3MgTGlzcCBwcm9n cmFtczsKICAgICDigJhtYW4uZWzigJksIGEgbW9kZSBmb3IgcmVhZGluZyBVbml4IG1hbnVhbCBw YWdlczsg4oCYcmVnaS5lbOKAmSwKICAgICBwcm92aWRpbmcgYW4gQVdLLWxpa2UgZnVuY3Rpb25h bGl0eSBmb3IgdXNlIGluIGxpc3AgcHJvZ3JhbXM7CiAgICAg4oCYcmVwb3J0ZXIuZWzigJksIHBy b3ZpZGluZyBjdXN0b21pemFibGUgYnVnIHJlcG9ydGluZyBmb3IgbGlzcAogICAgIHBhY2thZ2Vz OyBhbmQg4oCYc3VwZXJjaXRlLmVs4oCZLCBhIG1pbm9yIG1vZGUgZm9yIHF1b3Rpbmcgc2VjdGlv bnMgb2YKICAgICBtYWlsIG1lc3NhZ2VzIGFuZCBuZXdzIGFydGljbGVzLgoKICAg4oCiIENocmlz dG9waCBXZWRsZXIgd3JvdGUg4oCYYW50bHItbW9kZS5lbOKAmSwgYSBtYWpvciBtb2RlIGZvciBB TlRMUgogICAgIGdyYW1tYXIgZmlsZXMuCgogICDigKIgTW9ydGVuIFdlbGluZGVyIGhlbHBlZCBw b3J0IEVtYWNzIHRvIE1TLURPUywgYW5kIGludHJvZHVjZWQgZmFjZQogICAgIHN1cHBvcnQgaW50 byB0aGUgTVMtRE9TIHBvcnQgb2YgRW1hY3MuICBIZSBhbHNvIHdyb3RlIOKAmGRlc2t0b3AuZWzi gJksCiAgICAgZmFjaWxpdGllcyBmb3Igc2F2aW5nIHNvbWUgb2YgRW1hY3PigJlzIHN0YXRlIGJl dHdlZW4gc2Vzc2lvbnM7CiAgICAg4oCYdGltZXIuZWzigJksIHRoZSBFbWFjcyBmYWNpbGl0eSB0 byBydW4gY29tbWFuZHMgYXQgYSBnaXZlbiB0aW1lIG9yCiAgICAgZnJlcXVlbmN5LCBvciB3aGVu IEVtYWNzIGlzIGlkbGUsIGFuZCBpdHMgQy1sZXZlbCBzdXBwb3J0IGNvZGU7CiAgICAg4oCYcGMt d2luLmVs4oCZLCB0aGUgTVMtRE9TIOKAnHdpbmRvdy1zeXN0ZW3igJ0gc3VwcG9ydDsg4oCYaW50 ZXJuYWwuZWzigJksIGFuCiAgICAg4oCcaW50ZXJuYWwgdGVybWluYWzigJ0gZW11bGF0b3IgZm9y IHRoZSBNUy1ET1MgcG9ydCBvZiBFbWFjczsKICAgICDigJhhcmMtbW9kZS5lbOKAmSwgdGhlIG1v ZGUgZm9yIGVkaXRpbmcgY29tcHJlc3NlZCBhcmNoaXZlczsKICAgICDigJhzLXJlZ2lvbi5lbOKA mSwgY29tbWFuZHMgZm9yIHNldHRpbmcgdGhlIHJlZ2lvbiB1c2luZyB0aGUgc2hpZnQga2V5CiAg ICAgYW5kIG1vdGlvbiBjb21tYW5kczsgYW5kIOKAmGRvcy1mbnMuZWzigJksIGZ1bmN0aW9ucyBm b3IgdXNlIHVuZGVyCiAgICAgTVMtRE9TLgoKICAg4oCiIEpvZSBXZWxscyB3cm90ZSB0aGUgb3Jp Z2luYWwgdmVyc2lvbiBvZiDigJhhcHJvcG9zLmVs4oCZIChxLnYuKTsKICAgICDigJhyZXN1bWUu ZWzigJksIHN1cHBvcnQgZm9yIHByb2Nlc3NpbmcgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBhZnRl cgogICAgIHJlc3VtaW5nIGEgc3VzcGVuZGVkIEVtYWNzIGpvYjsgYW5kIOKAmG1haWwtZXh0ci5l bOKAmSwgYSBwYWNrYWdlIGZvcgogICAgIGV4dHJhY3RpbmcgbmFtZXMgYW5kIGFkZHJlc3NlcyBm cm9tIG1haWwgaGVhZGVycywgd2l0aAogICAgIGNvbnRyaWJ1dGlvbnMgZnJvbSBKYW1pZSBaYXdp bnNraS4KCiAgIOKAoiBSb2RuZXkgV2hpdGJ5IGFuZCBSZXRvIFppbW1lcm1hbm4gd3JvdGUg4oCY dmhkbC1tb2RlLmVs4oCZLCBhIG1ham9yCiAgICAgbW9kZSBmb3IgZWRpdGluZyBWSERMIHNvdXJj ZSBjb2RlLgoKICAg4oCiIEpvaG4gV2llZ2xleSB3YXMgdGhlIEVtYWNzIG1haW50YWluZXIgZnJv bSBFbWFjcyAyNSBvbndhcmRzLiAgSGUKICAgICB3cm90ZSDigJhhbGlnbi5lbOKAmSwgYSBzZXQg b2YgY29tbWFuZHMgZm9yIGFsaWduaW5nIHRleHQgYWNjb3JkaW5nIHRvCiAgICAgcmVndWxhci1l eHByZXNzaW9uIGJhc2VkIHJ1bGVzOyDigJhpc2VhcmNoYi5lbOKAmSBmb3IgZmFzdCBidWZmZXIK ICAgICBzd2l0Y2hpbmc7IOKAmHRpbWVjbG9jay5lbOKAmSwgYSBwYWNrYWdlIGZvciBrZWVwaW5n IHRyYWNrIG9mIHRpbWUKICAgICBzcGVudCBvbiBwcm9qZWN0czsgdGhlIEJhaMOh4oCZw60gY2Fs ZW5kYXIgc3VwcG9ydDsg4oCYcGNvbXBsZXRlLmVs4oCZLCBhCiAgICAgcHJvZ3JhbW1hYmxlIGNv bXBsZXRpb24gZmFjaWxpdHk7IOKAmHJlbWVtYmVyLmVs4oCZLCBhIG1vZGUgZm9yIGpvdHRpbmcK ICAgICBkb3duIHRoaW5ncyB0byByZW1lbWJlcjsg4oCYZXVkY2ItbWFiLmVs4oCZLCBhbiBhZGRy ZXNzIGJvb2sgYmFja2VuZAogICAgIGZvciB0aGUgRW1hY3MgVW5pZmllZCBEaXJlY3RvcnkgQ2xp ZW50OyBhbmQg4oCYZXNoZWxs4oCZLCBhIGNvbW1hbmQKICAgICBzaGVsbCBpbXBsZW1lbnRlZCBl bnRpcmVseSBpbiBFbWFjcyBMaXNwLiAgSGUgYWxzbyBjb250cmlidXRlZCB0bwogICAgIE9yZyBt b2RlIChxLnYuKS4KCiAgIOKAoiBNaWtlIFdpbGxpYW1zIHdyb3RlIOKAmHRoaW5nYXRwdC5lbOKA mSwgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyBmb3IKICAgICBmaW5kaW5nIHRoZSDigJx0aGluZ+KA nSAod29yZCwgbGluZSwgcy1leHByZXNzaW9uKSBhdCBwb2ludC4KCiAgIOKAoiBSb2xhbmQgV2lu a2xlciB3cm90ZSDigJhwcm9jZWQuZWzigJksIGEgc3lzdGVtIHByb2Nlc3MgZWRpdG9yLgoKICAg 4oCiIEJpbGwgV29obGVyIHdyb3RlIE1ILUUsIHRoZSBFbWFjcyBpbnRlcmZhY2UgdG8gdGhlIE1I IG1haWwgc3lzdGVtOwogICAgIG1ha2luZyB1c2Ugb2YgZWFybGllciB3b3JrIGJ5IEphbWVzIFIu IExhcnVzLiAgU2F0eWFraSBEYXMsIFBldGVyCiAgICAgUy4gR2FsYnJhaXRoLCBTdGVwaGVuIEdp bGRlYSwgYW5kIEplZmZyZXkgQy4gSG9uaWcgYWxzbyB3cm90ZQogICAgIHZhcmlvdXMgTUgtRSBj b21wb25lbnRzLgoKICAg4oCiIERhbGUgUi4gV29ybGV5IHdyb3RlIOKAmGVtZXJnZS5lbOKAmSwg YSBwYWNrYWdlIGZvciBpbnRlcmFjdGl2ZWx5CiAgICAgbWVyZ2luZyB0d28gdmVyc2lvbnMgb2Yg YSBmaWxlLgoKICAg4oCiIEZyYW5jaXMgSi4gV3JpZ2h0IHdyb3RlIOKAmHdvbWFuLmVs4oCZLCBh IHBhY2thZ2UgZm9yIGJyb3dzaW5nIG1hbnVhbAogICAgIHBhZ2VzIHdpdGhvdXQgdGhlIOKAmG1h buKAmSBjb21tYW5kLgoKICAg4oCiIE1hc2F0YWtlIFlhbWF0byB3cm90ZSDigJhsZC1zY3JpcHQu ZWzigJksIGFuIGVkaXRpbmcgbW9kZSBmb3IgR05VCiAgICAgbGlua2VyIHNjcmlwdHMsIGFuZCBj b250cmlidXRlZCBzdWJ3b3JkIGhhbmRsaW5nIGFuZCBzdHlsZSBndWVzc2luZwogICAgIGluIEND IG1vZGUuCgogICDigKIgSm9uYXRoYW4gWWF2bmVyIHdyb3RlIOKAmHRlc3Rjb3Zlci5lbOKAmSwg YSBwYWNrYWdlIGZvciBrZWVwaW5nIHRyYWNrCiAgICAgb2YgdGhlIHRlc3Rpbmcgc3RhdHVzIG9m IEVtYWNzIExpc3AgY29kZTsg4oCYdW5zYWZlcC5lbOKAmSB0byBkZXRlcm1pbmUKICAgICBpZiBh IExpc3AgZm9ybSBpcyBzYWZlOyBhbmQgdGhlIFNFUyBzcHJlYWRzaGVldCBwYWNrYWdlLgoKICAg 4oCiIFJ5YW4gWWVza2Ugd3JvdGUg4oCYcmNpcmMuZWzigJkgYSBzaW1wbGUgSW50ZXJuZXQgUmVs YXkgQ2hhdCBjbGllbnQuCgogICDigKIgSWx5YSBaYWtoYXJldmljaCBhbmQgQm9iIE9sc29uIHdy b3RlIOKAmGNwZXJsLW1vZGUuZWzigJksIGEgbWFqb3IgbW9kZQogICAgIGZvciBlZGl0aW5nIFBl cmwgY29kZS4gIElseWEgWmFraGFyZXZpY2ggYWxzbyB3cm90ZSDigJh0bW0uZWzigJksIGEKICAg ICBtb2RlIGZvciBhY2Nlc3NpbmcgdGhlIEVtYWNzIG1lbnUgYmFyIG9uIGEgdGV4dC1tb2RlIHRl cm1pbmFsLgoKICAg4oCiIE1pbGFuIFphbWF6YWwgd3JvdGUg4oCYY3plY2guZWzigJksIHN1cHBv cnQgZm9yIGVkaXRpbmcgQ3plY2ggdGV4dDsKICAgICDigJhnbGFzc2VzLmVs4oCZLCBhIHBhY2th Z2UgZm9yIGVhc2llciByZWFkaW5nIG9mIHNvdXJjZSBjb2RlIHRoYXQgdXNlcwogICAgIGlsbGVn aWJsZSBpZGVudGlmaWVyIG5hbWVzOyBhbmQg4oCYdGlsZGlmeS5lbOKAmSwgY29tbWFuZHMgZm9y IGFkZGluZwogICAgIGhhcmQgc3BhY2VzIHRvIHRleHQsIFRlWCwgYW5kIFNHTUwvSFRNTCBmaWxl cy4KCiAgIOKAoiBWaWN0b3IgWmFuZHkgd3JvdGUg4oCYem9uZS5lbOKAmSwgYSBwYWNrYWdlIGZv ciBwZW9wbGUgd2hvIGxpa2UgdG8gem9uZQogICAgIG91dCBpbiBmcm9udCBvZiBFbWFjcy4KCiAg IOKAoiBFbGkgWmFyZXRza2lpIG1hZGUgbWFueSBzdGFuZGFyZCBFbWFjcyBmZWF0dXJlcyB3b3Jr IG9uIE1TLURPUyBhbmQKICAgICBNaWNyb3NvZnQgV2luZG93cy4gIEhlIGFsc28gd3JvdGUg4oCY dHR5LWNvbG9ycy5lbOKAmSwgd2hpY2ggaW1wbGVtZW50cwogICAgIHRyYW5zcGFyZW50IG1hcHBp bmcgb2YgWCBjb2xvcnMgdG8gdHR5IGNvbG9yczsgYW5kIOKAmHJ4dnQuZWzigJkuICBIZQogICAg IGltcGxlbWVudGVkIHN1cHBvcnQgZm9yIGJpZGlyZWN0aW9uYWwgdGV4dCwgbWVudXMgb24gdGV4 dC1tb2RlCiAgICAgdGVybWluYWxzLCBhbmQgYnVpbHQtaW4gZGlzcGxheSBvZiBsaW5lIG51bWJl cnMuCgogICDigKIgSmFtaWUgWmF3aW5za2kgd3JvdGUgbXVjaCBvZiB0aGUgc3VwcG9ydCBmb3Ig ZmFjZXMgYW5kIFgKICAgICBzZWxlY3Rpb25zLiAgV2l0aCBIYWxsdmFyZCBGdXJ1c2V0aCwgaGUg d3JvdGUgdGhlIG9wdGltaXppbmcgYnl0ZQogICAgIGNvbXBpbGVyIHVzZWQgZnJvbSBFbWFjcyAx OSBvbndhcmRzLiAgSGUgYWxzbyB3cm90ZQogICAgIOKAmG1haWxhYmJyZXYuZWzigJksIGEgcGFj a2FnZSB0aGF0IHByb3ZpZGVzIGF1dG9tYXRpYyBleHBhbnNpb24gb2YKICAgICBtYWlsIGFsaWFz ZXMsIGFuZCDigJh0YXItbW9kZS5lbOKAmSwgd2hpY2ggcHJvdmlkZXMgc2ltcGxlIHZpZXdpbmcg YW5kCiAgICAgZWRpdGluZyBjb21tYW5kcyBmb3IgdGFyIGZpbGVzLgoKICAg4oCiIEFuZHJldyBa aGlsaW4gY3JlYXRlZCB0aGUgRW1hY3MgMjIgaWNvbnMuCgogICDigKIgU2hlbmdodW8gWmh1IHdy b3RlIOKAmGJpbmhleC5lbOKAmSwgYSBwYWNrYWdlIGZvciByZWFkaW5nIGFuZCB3cml0aW5nCiAg ICAgYmluaGV4IGZpbGVzOyDigJhtbS1wYXJ0aWFsLmVs4oCZLCBtZXNzYWdlL3BhcnRpYWwgc3Vw cG9ydCBmb3IgTUlNRQogICAgIG1lc3NhZ2VzOyDigJhyZmMxODQzLmVs4oCZLCBhbiBIWiBkZWNv ZGluZyBwYWNrYWdlOyDigJh1dWRlY29kZS5lbOKAmSwgYW4KICAgICBFbWFjcyBMaXNwIGRlY29k ZXIgZm9yIHV1ZW5jb2RlZCBkYXRhOyBhbmQg4oCYd2VibWFpbC5lbOKAmSwgYW4KICAgICBpbnRl cmZhY2UgdG8gV2ViIG1haWwuICBIZSBhbHNvIHdyb3RlIHNldmVyYWwgb3RoZXIgR251cwogICAg IGNvbXBvbmVudHMuCgogICDigKIgSWFuIFQuIFppbW1lcm1hbiB3cm90ZSDigJhnYW1ldHJlZS5l bOKAmS4KCiAgIOKAoiBSZXRvIFppbW1lcm1hbm4gd3JvdGUg4oCYdmVyYS1tb2RlLmVs4oCZLgoK ICAg4oCiIE5lYWwgWmlyaW5nIGFuZCBGZWxpeCBTLiBULiBXdSB3cm90ZSDigJh2aS5lbOKAmSwg YW4gZW11bGF0aW9uIG9mIHRoZQogICAgIFZJIHRleHQgZWRpdG9yLgoKICAg4oCiIFRlZCBabGF0 YW5vdiAoYXMgd2VsbCBhcyBoaXMgY29udHJpYnV0aW9ucyB0byB0aGUgR251cyBuZXdzcmVhZGVy KQogICAgIHdyb3RlIGFuIGludGVyZmFjZSB0byB0aGUgR251VExTIGxpYnJhcnksIGZvciBzZWN1 cmUgbmV0d29yawogICAgIGNvbm5lY3Rpb25zOyBhbmQgYSBmdXR1cmVzIGZhY2lsaXR5IGZvciB0 aGUgVVJMIGxpYnJhcnkuCgogICDigKIgRGV0bGV2IFp1bmRlbCB3cm90ZSDigJhyZS1idWlsZGVy LmVs4oCZLCBhIHBhY2thZ2UgZm9yIGJ1aWxkaW5nIHJlZ2V4cHMKICAgICB3aXRoIHZpc3VhbCBm ZWVkYmFjay4KCgoqIEtleSAoQ2hhcmFjdGVyKSBJbmRleAoKKyBNZW51OgoKICAtICEgKERpcmVk KTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIENvbW1hbmRzIGluIERpcmVkLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICAgNikKICAtICIgKFRlWCBtb2RlKTogICAgICAgICAgICAgICAgICAgICAgICAg IFRlWCBFZGl0aW5nLiAgICAgICAgIChsaW5lICAyMSkKICAtICMgKERpcmVkKTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZsYWdnaW5nIE1hbnkgRmlsZXMuIChsaW5lICAzMCkKICAtICQg KERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhpZGluZyBTdWJkaXJlY3Rvcmll cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgMTApCiAgLSAlICYgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAg ICAgICBGbGFnZ2luZyBNYW55IEZpbGVzLiAobGluZSAgNTApCiAgLSAlIChCdWZmZXIgTWVudSk6 ICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNzcpCiAg LSAlIEMgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1pbmcgRmls ZSBOYW1lcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgMzMpCiAgLSAlIGQgKERpcmVkKTogICAgICAgICAgICAgICAg ICAgICAgICAgICBGbGFnZ2luZyBNYW55IEZpbGVzLiAobGluZSAgNTYpCiAgLSAlIGcgKERpcmVk KTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAx MjQpCiAgLSAlIEggKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1p bmcgRmlsZSBOYW1lcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMzQpCiAgLSAlIGwgKERpcmVkKTogICAgICAgICAg ICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1pbmcgRmlsZSBOYW1lcy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjcp CiAgLSAlIG0gKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFn cy4gICAgICAobGluZSAxMTUpCiAgLSAlIFIgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAg ICAgICBUcmFuc2Zvcm1pbmcgRmlsZSBOYW1lcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzIpCiAgLSAlIFMgKERp cmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1pbmcgRmlsZSBOYW1lcy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgMzUpCiAgLSAlIHUgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAg ICBUcmFuc2Zvcm1pbmcgRmlsZSBOYW1lcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjEpCiAgLSAoIChEaXJlZCk6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIERpcmVkIEZlYXR1cmVzLiAobGluZSAg NDApCiAgLSAqICEgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBG bGFncy4gICAgICAobGluZSAgNjApCiAgLSAqICUgKERpcmVkKTogICAgICAgICAgICAgICAgICAg ICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAxMTUpCiAgLSAqICogKERpcmVkKTog ICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgMjYp CiAgLSAqIC8gKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFn cy4gICAgICAobGluZSAgMzQpCiAgLSAqID8gKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAg ICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgNjUpCiAgLSAqIEAgKERpcmVkKTogICAg ICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgMzApCiAg LSAqIGMgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4g ICAgICAobGluZSAgOTMpCiAgLSAqIEMtbiAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAg ICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgNzkpCiAgLSAqIEMtcCAoRGlyZWQpOiAgICAg ICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgODQpCiAgLSAq IERFTCAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAg ICAobGluZSAgNTIpCiAgLSAqIG0gKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBN YXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgMTcpCiAgLSAqIHMgKERpcmVkKTogICAgICAgICAg ICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgMzkpCiAgLSAqIHQg KERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAo bGluZSAgODgpCiAgLSAqIHUgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJr cyB2cyBGbGFncy4gICAgICAobGluZSAgNDQpCiAgLSArIChEaXJlZCk6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNaXNjIERpcmVkIEZlYXR1cmVzLiAobGluZSAgIDYpCiAgLSArIChEb2NW aWV3IG1vZGUpOiAgICAgICAgICAgICAgICAgICAgICBEb2NWaWV3IE5hdmlnYXRpb24uICAobGlu ZSAgMjkpCiAgLSAtIChEb2NWaWV3IG1vZGUpOiAgICAgICAgICAgICAgICAgICAgICBEb2NWaWV3 IE5hdmlnYXRpb24uICAobGluZSAgMjkpCiAgLSAuIChDYWxlbmRhciBtb2RlKTogICAgICAgICAg ICAgICAgICAgICBTcGVjaWZpZWQgRGF0ZXMuICAgICAobGluZSAgMzMpCiAgLSAuIChEaXJlZCk6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnZ2luZyBNYW55IEZpbGVzLiAobGluZSAg MzcpCiAgLSAuIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBTY3Jv bGxpbmcuICAgICAobGluZSAgMjYpCiAgLSAvIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSbWFpbCBTY3JvbGxpbmcuICAgICAobGluZSAgMjYpCiAgLSAxIChCdWZmZXIgTWVu dSk6ICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMDQp CiAgLSAyIChCdWZmZXIgTWVudSk6ICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZl cnMuICAgICAobGluZSAxMDgpCiAgLSA6ZCAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxMTgpCiAgLSA6ZSAoRGlyZWQpOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxMzApCiAg LSA6cyAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmls ZXMuICAobGluZSAxMjYpCiAgLSA6diAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxMjIpCiAgLSA8IChDYWxlbmRhciBtb2RlKTog ICAgICAgICAgICAgICAgICAgICBTY3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAgMjcpCiAgLSA8 IChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJkaXJlY3RvcnkgTW90aW9u LiAobGluZSAgMzApCiAgLSA8IChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS bWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgODMpCiAgLSA9IChEaXJlZCk6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDb21wYXJpc29uIGluIERpcmVkLiAobGluZSAgIDYpCiAgLSA+IChD YWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBTY3JvbGwgQ2FsZW5kYXIuICAgICAo bGluZSAgMjcpCiAgLSA+IChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJk aXJlY3RvcnkgTW90aW9uLiAobGluZSAgMzUpCiAgLSA+IChSbWFpbCk6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgODMpCiAgLSA/IChjb21w bGV0aW9uKTogICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV0aW9uIENvbW1hbmRzLiAobGlu ZSAgMzUpCiAgLSBeIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBW aXNpdGluZy4gICAgICAobGluZSAgNDMpCiAgLSB+IChCdWZmZXIgTWVudSk6ICAgICAgICAgICAg ICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNzMpCiAgLSB+IChEaXJlZCk6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbGFnZ2luZyBNYW55IEZpbGVzLiAobGluZSAg MzQpCiAgLSBhIChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBIb2xpZGF5cy4g ICAgICAgICAgICAobGluZSAgNDMpCiAgLSBBIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxNDMpCiAgLSBhIChSbWFpbCk6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBMYWJlbHMuICAgICAgICAobGluZSAgMzAp CiAgLSBBIGsgKEdudXMgR3JvdXAgbW9kZSk6ICAgICAgICAgICAgICAgICBHbnVzIEdyb3VwIEJ1 ZmZlci4gICAobGluZSAgMjMpCiAgLSBBIHMgKEdudXMgR3JvdXAgbW9kZSk6ICAgICAgICAgICAg ICAgICBHbnVzIEdyb3VwIEJ1ZmZlci4gICAobGluZSAgMTIpCiAgLSBBIHUgKEdudXMgR3JvdXAg bW9kZSk6ICAgICAgICAgICAgICAgICBHbnVzIEdyb3VwIEJ1ZmZlci4gICAobGluZSAgMTgpCiAg LSBBIHogKEdudXMgR3JvdXAgbW9kZSk6ICAgICAgICAgICAgICAgICBHbnVzIEdyb3VwIEJ1ZmZl ci4gICAobGluZSAgMjYpCiAgLSBBbHRHciAoTVMtV2luZG93cyk6ICAgICAgICAgICAgICAgICAg ICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAxMjgpCiAgLSBiIChCdWZmZXIgTWVudSk6ICAg ICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMTMpCiAgLSBC IChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMu ICAobGluZSAxMzgpCiAgLSBiIChSbWFpbCBzdW1tYXJ5KTogICAgICAgICAgICAgICAgICAgICBS bWFpbCBTdW1tYXJ5IEVkaXQuICAobGluZSAgOTMpCiAgLSBiIChSbWFpbCk6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSbWFpbCBCYXNpY3MuICAgICAgICAobGluZSAgMzUpCiAgLSBCUyAo TVMtRE9TKTogICAgICAgICAgICAgICAgICAgICAgICAgICBNUy1ET1MgS2V5Ym9hcmQuICAgICAo bGluZSAgIDYpCiAgLSBDIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVy YXRpbmcgb24gRmlsZXMuICAobGluZSAgMzQpCiAgLSBjIChEaXJlZCk6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxMTIpCiAgLSBjIChSbWFp bCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAgICAgICAobGlu ZSAxMDUpCiAgLSBDLS86ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmRvLiAg ICAgICAgICAgICAgICAobGluZSAgMjEpCiAgLSBDLUA6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTZXR0aW5nIE1hcmsuICAgICAgICAobGluZSAgMjQpCiAgLSBDLWE6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAg NDUpCiAgLSBDLWEgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBNb3ZlIHRvIEJl Z2lubmluZyBvciBFbmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDEwKQogIC0gQy1iOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgIDI2KQogIC0gQy1i IChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgVW5pdCBNb3Rpb24u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDI3KQogIC0gQy1CcmVhayAoTVMtRE9TKTogICAgICAgICAgICAgICAgICAg ICAgTVMtRE9TIEtleWJvYXJkLiAgICAgKGxpbmUgIDEyKQogIC0gQy1jICcgKFBpY3R1cmUgbW9k ZSk6ICAgICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0g Qy1jICwgajogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VtYW50aWMuICAgICAgICAg ICAgKGxpbmUgIDI4KQogIC0gQy1jICwgSjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U2VtYW50aWMuICAgICAgICAgICAgKGxpbmUgIDMyKQogIC0gQy1jICwgbDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2VtYW50aWMuICAgICAgICAgICAgKGxpbmUgIDQ0KQogIC0gQy1j ICwgU1BDOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VtYW50aWMuICAgICAgICAgICAg KGxpbmUgIDM2KQogIC0gQy1jIC4gKEMgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgICAgQ3Vz dG9tIEMgSW5kZW50LiAgICAgKGxpbmUgIDI2KQogIC0gQy1jIC4gKFBpY3R1cmUgbW9kZSk6ICAg ICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIC4g KFNoZWxsIG1vZGUpOiAgICAgICAgICAgICAgICAgICAgU2hlbGwgUmluZy4gICAgICAgICAgKGxp bmUgIDIzKQogIC0gQy1jIC8gKFBpY3R1cmUgbW9kZSk6ICAgICAgICAgICAgICAgICAgSW5zZXJ0 IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIC8gKFNHTUwgbW9kZSk6ICAgICAgICAg ICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDU3KQogIC0gQy1jIDggKFNH TUwgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUg IDYyKQogIC0gQy1jIDsgKEZvcnRyYW4gbW9kZSk6ICAgICAgICAgICAgICAgICAgRm9ydHJhbiBD b21tZW50cy4gICAgKGxpbmUgIDc4KQogIC0gQy1jIDwgKEdVRCk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDY5KQogIC0gQy1jIDwgKFBpY3R1 cmUgbW9kZSk6ICAgICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2 KQogIC0gQy1jID4gKEdVRCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2Yg R1VELiAgICAgKGxpbmUgIDc0KQogIC0gQy1jID4gKFBpY3R1cmUgbW9kZSk6ICAgICAgICAgICAg ICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jID8gKFNHTUwgbW9k ZSk6ICAgICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDUzKQog IC0gQy1jIEAgKE91dGxpbmUgbWlub3IgbW9kZSk6ICAgICAgICAgICAgT3V0bGluZSBNb2RlLiAg ICAgICAgKGxpbmUgIDMyKQogIC0gQy1jIEAgQy1oOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSGlkZXNob3cuICAgICAgICAgICAgKGxpbmUgIDE5KQogIC0gQy1jIEAgQy1sOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSGlkZXNob3cuICAgICAgICAgICAgKGxpbmUgIDE5KQogIC0g Qy1jIEAgQy1NLWg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkZXNob3cuICAgICAgICAg ICAgKGxpbmUgIDE5KQogIC0gQy1jIEAgQy1NLXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAg SGlkZXNob3cuICAgICAgICAgICAgKGxpbmUgIDE5KQogIC0gQy1jIEAgQy1yOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSGlkZXNob3cuICAgICAgICAgICAgKGxpbmUgIDE5KQogIC0gQy1j IEAgQy1zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkZXNob3cuICAgICAgICAgICAg KGxpbmUgIDE5KQogIC0gQy1jIEMtYSAoQyBtb2RlKTogICAgICAgICAgICAgICAgICAgICAgRWxl Y3RyaWMgQy4gICAgICAgICAgKGxpbmUgIDMxKQogIC0gQy1jIEMtYSAoRjkwIG1vZGUpOiAgICAg ICAgICAgICAgICAgICAgRm9ydHJhbiBNb3Rpb24uICAgICAgKGxpbmUgIDI5KQogIC0gQy1jIEMt YSAoTG9nIEVkaXQgbW9kZSk6ICAgICAgICAgICAgICAgTG9nIEJ1ZmZlci4gICAgICAgICAgKGxp bmUgIDQwKQogIC0gQy1jIEMtYSAoTWVzc2FnZSBtb2RlKTogICAgICAgICAgICAgICAgTWFpbCBN aXNjLiAgICAgICAgICAgKGxpbmUgICA2KQogIC0gQy1jIEMtYSAoT3V0bGluZSBtb2RlKTogICAg ICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDcyKQogIC0gQy1jIEMtYSAo U0dNTCBtb2RlKTogICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUg IDMyKQogIC0gQy1jIEMtYSAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9k ZS4gICAgICAgICAgKGxpbmUgIDM5KQogIC0gQy1jIEMtYiAoSGVscCBtb2RlKTogICAgICAgICAg ICAgICAgICAgSGVscCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDI5KQogIC0gQy1jIEMtYiAoTWVz c2FnZSBtb2RlKTogICAgICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxpbmUgIDM1 KQogIC0gQy1jIEMtYiAoT3V0bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0bGluZSBNb3Rp b24uICAgICAgKGxpbmUgIDE5KQogIC0gQy1jIEMtYiAoUGljdHVyZSBtb2RlKTogICAgICAgICAg ICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgIDQzKQogIC0gQy1jIEMtYiAoU0dNTCBt b2RlKTogICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDQxKQog IC0gQy1jIEMtYiAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAg ICAgICAgKGxpbmUgMTA2KQogIC0gQy1jIEMtYiAoVGVYIG1vZGUpOiAgICAgICAgICAgICAgICAg ICAgVGVYIFByaW50LiAgICAgICAgICAgKGxpbmUgIDM5KQogIC0gQy1jIEMtYyAoQyBtb2RlKTog ICAgICAgICAgICAgICAgICAgICAgQ29tbWVudCBDb21tYW5kcy4gICAgKGxpbmUgIDgxKQogIC0g Qy1jIEMtYyAoY3VzdG9taXphdGlvbiBidWZmZXIpOiAgICAgICAgQ2hhbmdpbmcgYSBWYXJpYWJs ZS4gKGxpbmUgMTM1KQogIC0gQy1jIEMtYyAoRWRpdCBBYmJyZXZzKTogICAgICAgICAgICAgICAg RWRpdGluZyBBYmJyZXZzLiAgICAgKGxpbmUgIDQxKQogIC0gQy1jIEMtYyAoRWRpdCBUYWIgU3Rv cHMpOiAgICAgICAgICAgICAgVGFiIFN0b3BzLiAgICAgICAgICAgKGxpbmUgIDE2KQogIC0gQy1j IEMtYyAoTG9nIEVkaXQgbW9kZSk6ICAgICAgICAgICAgICAgTG9nIEJ1ZmZlci4gICAgICAgICAg KGxpbmUgICA2KQogIC0gQy1jIEMtYyAoTWVzc2FnZSBtb2RlKTogICAgICAgICAgICAgICAgTWFp bCBTZW5kaW5nLiAgICAgICAgKGxpbmUgIDEzKQogIC0gQy1jIEMtYyAoT3V0bGluZSBtb2RlKTog ICAgICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDQ5KQogIC0gQy1jIEMt YyAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAgICAgKGxp bmUgIDY0KQogIC0gQy1jIEMtYyAoVGVYIG1vZGUpOiAgICAgICAgICAgICAgICAgICAgVGVYIFBy aW50LiAgICAgICAgICAgKGxpbmUgMTQ4KQogIC0gQy1jIEMtZCAoQyBNb2RlKTogICAgICAgICAg ICAgICAgICAgICAgSHVuZ3J5IERlbGV0ZS4gICAgICAgKGxpbmUgIDIwKQogIC0gQy1jIEMtZCAo Rm9ydHJhbiBtb2RlKTogICAgICAgICAgICAgICAgRm9ySW5kZW50IENvbW1hbmRzLiAgKGxpbmUg IDMwKQogIC0gQy1jIEMtZCAoR1VEKTogICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMg b2YgR1VELiAgICAgKGxpbmUgIDU3KQogIC0gQy1jIEMtZCAoTG9nIEVkaXQgbW9kZSk6ICAgICAg ICAgICAgICAgTG9nIEJ1ZmZlci4gICAgICAgICAgKGxpbmUgIDMyKQogIC0gQy1jIEMtZCAoT3Jn IE1vZGUpOiAgICAgICAgICAgICAgICAgICAgT3JnIE9yZ2FuaXplci4gICAgICAgKGxpbmUgIDEz KQogIC0gQy1jIEMtZCAoT3V0bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0bGluZSBWaXNp YmlsaXR5LiAgKGxpbmUgIDU0KQogIC0gQy1jIEMtZCAoUGljdHVyZSBtb2RlKTogICAgICAgICAg ICAgICAgQmFzaWMgUGljdHVyZS4gICAgICAgKGxpbmUgIDQ0KQogIC0gQy1jIEMtZCAoU0dNTCBt b2RlKTogICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDQ3KQog IC0gQy1jIEMtREVMIChDIE1vZGUpOiAgICAgICAgICAgICAgICAgICAgSHVuZ3J5IERlbGV0ZS4g ICAgICAgKGxpbmUgIDE0KQogIC0gQy1jIEMtRGVsZXRlIChDIE1vZGUpOiAgICAgICAgICAgICAg ICAgSHVuZ3J5IERlbGV0ZS4gICAgICAgKGxpbmUgIDIwKQogIC0gQy1jIEMtZSAoQyBtb2RlKTog ICAgICAgICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxpbmUgIDM0KQogIC0g Qy1jIEMtZSAoRjkwIG1vZGUpOiAgICAgICAgICAgICAgICAgICAgRm9ydHJhbiBNb3Rpb24uICAg ICAgKGxpbmUgIDIyKQogIC0gQy1jIEMtZSAoTGFUZVggbW9kZSk6ICAgICAgICAgICAgICAgICAg TGFUZVggRWRpdGluZy4gICAgICAgKGxpbmUgIDI3KQogIC0gQy1jIEMtZSAoT3JnIG1vZGUpOiAg ICAgICAgICAgICAgICAgICAgT3JnIEF1dGhvcmluZy4gICAgICAgKGxpbmUgICA2KQogIC0gQy1j IEMtZSAoT3V0bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAg KGxpbmUgIDQ5KQogIC0gQy1jIEMtZSAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hl bGwgTW9kZS4gICAgICAgICAgKGxpbmUgIDk2KQogIC0gQy1jIEMtZiAoR1VEKTogICAgICAgICAg ICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDg2KQogIC0gQy1jIEMt ZiAoSGVscCBtb2RlKTogICAgICAgICAgICAgICAgICAgSGVscCBNb2RlLiAgICAgICAgICAgKGxp bmUgIDI5KQogIC0gQy1jIEMtZiAoTG9nIEVkaXQgbW9kZSk6ICAgICAgICAgICAgICAgTG9nIEJ1 ZmZlci4gICAgICAgICAgKGxpbmUgIDMyKQogIC0gQy1jIEMtZiAoT3V0bGluZSBtb2RlKTogICAg ICAgICAgICAgICAgT3V0bGluZSBNb3Rpb24uICAgICAgKGxpbmUgIDE2KQogIC0gQy1jIEMtZiAo UGljdHVyZSBtb2RlKTogICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUg IDQzKQogIC0gQy1jIEMtZiAoU0dNTCBtb2RlKTogICAgICAgICAgICAgICAgICAgSFRNTCBNb2Rl LiAgICAgICAgICAgKGxpbmUgIDM2KQogIC0gQy1jIEMtZiAoU2hlbGwgbW9kZSk6ICAgICAgICAg ICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAgICAgKGxpbmUgMTAwKQogIC0gQy1jIEMtZiAoVGVY IG1vZGUpOiAgICAgICAgICAgICAgICAgICAgVGVYIFByaW50LiAgICAgICAgICAgKGxpbmUgMTEw KQogIC0gQy1jIEMtZiBDLWIgKE1lc3NhZ2UgbW9kZSk6ICAgICAgICAgICAgSGVhZGVyIEVkaXRp bmcuICAgICAgKGxpbmUgIDMwKQogIC0gQy1jIEMtZiBDLWMgKE1lc3NhZ2UgbW9kZSk6ICAgICAg ICAgICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxpbmUgIDMwKQogIC0gQy1jIEMtZiBDLWYgKE1l c3NhZ2UgbW9kZSk6ICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxpbmUgIDMwKQog IC0gQy1jIEMtZiBDLXIgKE1lc3NhZ2UgbW9kZSk6ICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcu ICAgICAgKGxpbmUgIDMwKQogIC0gQy1jIEMtZiBDLXMgKE1lc3NhZ2UgbW9kZSk6ICAgICAgICAg ICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxpbmUgIDMwKQogIC0gQy1jIEMtZiBDLXQgKE1lc3Nh Z2UgbW9kZSk6ICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxpbmUgIDMwKQogIC0g Qy1jIEMtZiBDLXcgKE1lc3NhZ2UgbW9kZSk6ICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcuICAg ICAgKGxpbmUgIDMwKQogIC0gQy1jIEMtaSAoR1VEKTogICAgICAgICAgICAgICAgICAgICAgICAg Q29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDQxKQogIC0gQy1jIEMtaSAoT3V0bGluZSBtb2Rl KTogICAgICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDU5KQogIC0gQy1j IEMtaiAoVGVybSBtb2RlKTogICAgICAgICAgICAgICAgICAgVGVybSBNb2RlLiAgICAgICAgICAg KGxpbmUgICA4KQogIC0gQy1jIEMtayAoT3V0bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0 bGluZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDU5KQogIC0gQy1jIEMtayAoUGljdHVyZSBtb2RlKTog ICAgICAgICAgICAgICAgUmVjdGFuZ2xlcyBpbiBQaWN0dXJlLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNikKICAt IEMtYyBDLWsgKFRlcm0gbW9kZSk6ICAgICAgICAgICAgICAgICAgIFRlcm0gTW9kZS4gICAgICAg ICAgIChsaW5lICAxMikKICAtIEMtYyBDLWsgKFRlWCBtb2RlKTogICAgICAgICAgICAgICAgICAg IFRlWCBQcmludC4gICAgICAgICAgIChsaW5lICA3OCkKICAtIEMtYyBDLWwgKEMgbW9kZSk6ICAg ICAgICAgICAgICAgICAgICAgIEVsZWN0cmljIEMuICAgICAgICAgIChsaW5lICAyMSkKICAtIEMt YyBDLWwgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgIEdlbmVyYWwgQ2FsZW5kYXIuICAg IChsaW5lICAyNCkKICAtIEMtYyBDLWwgKEdVRCk6ICAgICAgICAgICAgICAgICAgICAgICAgIENv bW1hbmRzIG9mIEdVRC4gICAgIChsaW5lICAyNSkKICAtIEMtYyBDLWwgKE91dGxpbmUgbW9kZSk6 ICAgICAgICAgICAgICAgIE91dGxpbmUgVmlzaWJpbGl0eS4gIChsaW5lICA1OSkKICAtIEMtYyBD LWwgKFNoZWxsIG1vZGUpOiAgICAgICAgICAgICAgICAgIFNoZWxsIFJpbmcuICAgICAgICAgIChs aW5lICAyNykKICAtIEMtYyBDLWwgKFRlWCBtb2RlKTogICAgICAgICAgICAgICAgICAgIFRlWCBQ cmludC4gICAgICAgICAgIChsaW5lICA3OCkKICAtIEMtYyBDLW4gKEMgbW9kZSk6ICAgICAgICAg ICAgICAgICAgICAgIE1vdGlvbiBpbiBDLiAgICAgICAgIChsaW5lICAzNSkKICAtIEMtYyBDLW4g KEZvcnRyYW4gbW9kZSk6ICAgICAgICAgICAgICAgIEZvcnRyYW4gTW90aW9uLiAgICAgIChsaW5l ICAxMikKICAtIEMtYyBDLW4gKEdVRCk6ICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRz IG9mIEdVRC4gICAgIChsaW5lICAzNikKICAtIEMtYyBDLW4gKE91dGxpbmUgbW9kZSk6ICAgICAg ICAgICAgICAgIE91dGxpbmUgTW90aW9uLiAgICAgIChsaW5lICAxMCkKICAtIEMtYyBDLW4gKFJt YWlsKTogICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIE1vdGlvbi4gICAgICAgIChsaW5lICA3 NSkKICAtIEMtYyBDLW4gKFNHTUwgbW9kZSk6ICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4g ICAgICAgICAgIChsaW5lICAxNikKICAtIEMtYyBDLW4gKFNoZWxsIG1vZGUpOiAgICAgICAgICAg ICAgICAgIFNoZWxsIEhpc3RvcnkgQ29weWluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDkpCiAgLSBDLWMgQy1v IChMYVRlWCBtb2RlKTogICAgICAgICAgICAgICAgICBMYVRlWCBFZGl0aW5nLiAgICAgICAobGlu ZSAgMTUpCiAgLSBDLWMgQy1vIChPdXRsaW5lIG1vZGUpOiAgICAgICAgICAgICAgICBPdXRsaW5l IFZpc2liaWxpdHkuICAobGluZSAgNjcpCiAgLSBDLWMgQy1vIChTaGVsbCBtb2RlKTogICAgICAg ICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgICAobGluZSAgNzkpCiAgLSBDLWMgQy1wIChD IG1vZGUpOiAgICAgICAgICAgICAgICAgICAgICBNb3Rpb24gaW4gQy4gICAgICAgICAobGluZSAg MzApCiAgLSBDLWMgQy1wIChGb3J0cmFuIG1vZGUpOiAgICAgICAgICAgICAgICBGb3J0cmFuIE1v dGlvbi4gICAgICAobGluZSAgMTYpCiAgLSBDLWMgQy1wIChHVUQpOiAgICAgICAgICAgICAgICAg ICAgICAgICBDb21tYW5kcyBvZiBHVUQuICAgICAobGluZSAgNDUpCiAgLSBDLWMgQy1wIChPdXRs aW5lIG1vZGUpOiAgICAgICAgICAgICAgICBPdXRsaW5lIE1vdGlvbi4gICAgICAobGluZSAgMTMp CiAgLSBDLWMgQy1wIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24u ICAgICAgICAobGluZSAgNzUpCiAgLSBDLWMgQy1wIChTaGVsbCBtb2RlKTogICAgICAgICAgICAg ICAgICBTaGVsbCBIaXN0b3J5IENvcHlpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gQy1jIEMtcCAo VGVYIG1vZGUpOiAgICAgICAgICAgICAgICAgICAgVGVYIFByaW50LiAgICAgICAgICAgKGxpbmUg IDM5KQogIC0gQy1jIEMtcSAoQyBtb2RlKTogICAgICAgICAgICAgICAgICAgICAgQyBJbmRlbnQu ICAgICAgICAgICAgKGxpbmUgICA5KQogIC0gQy1jIEMtcSAoTWVzc2FnZSBtb2RlKTogICAgICAg ICAgICAgICAgQ2l0aW5nIE1haWwuICAgICAgICAgKGxpbmUgIDIzKQogIC0gQy1jIEMtcSAoT3V0 bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDcy KQogIC0gQy1jIEMtcSAoVGVybSBtb2RlKTogICAgICAgICAgICAgICAgICAgVGVybSBNb2RlLiAg ICAgICAgICAgKGxpbmUgIDI5KQogIC0gQy1jIEMtciAoRm9ydHJhbiBtb2RlKTogICAgICAgICAg ICAgICAgRm9ydHJhbiBDb2x1bW5zLiAgICAgKGxpbmUgIDMzKQogIC0gQy1jIEMtciAoR1VEKTog ICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDUxKQog IC0gQy1jIEMtciAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAg ICAgICAgKGxpbmUgIDkxKQogIC0gQy1jIEMtciAoVGVYIG1vZGUpOiAgICAgICAgICAgICAgICAg ICAgVGVYIFByaW50LiAgICAgICAgICAgKGxpbmUgIDg4KQogIC0gQy1jIEMtcyAoQyBtb2RlKTog ICAgICAgICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxpbmUgIDY1KQogIC0g Qy1jIEMtcyAoR1VEKTogICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAg ICAgKGxpbmUgIDMwKQogIC0gQy1jIEMtcyAoTWVzc2FnZSBtb2RlKTogICAgICAgICAgICAgICAg TWFpbCBTZW5kaW5nLiAgICAgICAgKGxpbmUgIDEzKQogIC0gQy1jIEMtcyAoT3JnIE1vZGUpOiAg ICAgICAgICAgICAgICAgICAgT3JnIE9yZ2FuaXplci4gICAgICAgKGxpbmUgIDEzKQogIC0gQy1j IEMtcyAoT3V0bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAg KGxpbmUgIDU0KQogIC0gQy1jIEMtcyAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hl bGwgTW9kZS4gICAgICAgICAgKGxpbmUgIDg0KQogIC0gQy1jIEMtdCAoR1VEKTogICAgICAgICAg ICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDYzKQogIC0gQy1jIEMt dCAoT3JnIE1vZGUpOiAgICAgICAgICAgICAgICAgICAgT3JnIE9yZ2FuaXplci4gICAgICAgKGxp bmUgICA2KQogIC0gQy1jIEMtdCAoT3V0bGluZSBtb2RlKTogICAgICAgICAgICAgICAgT3V0bGlu ZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDcyKQogIC0gQy1jIEMtdCAoU0dNTCBtb2RlKTogICAgICAg ICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDIwKQogIC0gQy1jIEMtdSAo QyBtb2RlKTogICAgICAgICAgICAgICAgICAgICAgTW90aW9uIGluIEMuICAgICAgICAgKGxpbmUg IDIwKQogIC0gQy1jIEMtdSAoR1VEKTogICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMg b2YgR1VELiAgICAgKGxpbmUgIDc5KQogIC0gQy1jIEMtdSAoT3V0bGluZSBtb2RlKTogICAgICAg ICAgICAgICAgT3V0bGluZSBNb3Rpb24uICAgICAgKGxpbmUgIDIyKQogIC0gQy1jIEMtdSAoU2hl bGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAgICAgKGxpbmUgIDU2 KQogIC0gQy1jIEMtdiAoU0dNTCBtb2RlKTogICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAg ICAgICAgICAgKGxpbmUgIDY3KQogIC0gQy1jIEMtdiAoVGVYIG1vZGUpOiAgICAgICAgICAgICAg ICAgICAgVGVYIFByaW50LiAgICAgICAgICAgKGxpbmUgIDM5KQogIC0gQy1jIEMtdyAoRm9ydHJh biBtb2RlKTogICAgICAgICAgICAgICAgRm9ydHJhbiBDb2x1bW5zLiAgICAgKGxpbmUgIDUzKQog IC0gQy1jIEMtdyAoTWVzc2FnZSBtb2RlKTogICAgICAgICAgICAgICAgTWFpbCBTaWduYXR1cmUu ICAgICAgKGxpbmUgIDIwKQogIC0gQy1jIEMtdyAoUGljdHVyZSBtb2RlKTogICAgICAgICAgICAg ICAgUmVjdGFuZ2xlcyBpbiBQaWN0dXJlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNikKICAtIEMtYyBDLXcgKFNo ZWxsIG1vZGUpOiAgICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lICA2 MSkKICAtIEMtYyBDLXg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbGRvdXQuICAg ICAgICAgICAgIChsaW5lICA0MikKICAtIEMtYyBDLXggKFBpY3R1cmUgbW9kZSk6ICAgICAgICAg ICAgICAgIFJlY3RhbmdsZXMgaW4gUGljdHVyZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzcpCiAgLSBDLWMgQy14 IChTaGVsbCBtb2RlKTogICAgICAgICAgICAgICAgICBTaGVsbCBSaW5nLiAgICAgICAgICAobGlu ZSAgMTkpCiAgLSBDLWMgQy15IChNZXNzYWdlIG1vZGUpOiAgICAgICAgICAgICAgICBDaXRpbmcg TWFpbC4gICAgICAgICAobGluZSAgMTMpCiAgLSBDLWMgQy15IChQaWN0dXJlIG1vZGUpOiAgICAg ICAgICAgICAgICBSZWN0YW5nbGVzIGluIFBpY3R1cmUuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gQy1j IEMtejogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9sZG91dC4gICAgICAgICAgICAg KGxpbmUgIDE1KQogIC0gQy1jIEMteiAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hl bGwgTW9kZS4gICAgICAgICAgKGxpbmUgIDY5KQogIC0gQy1jIEMtXCAoQyBtb2RlKTogICAgICAg ICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxpbmUgIDQ2KQogIC0gQy1jIEMt XCAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAgICAgKGxp bmUgIDc0KQogIC0gQy1jIERFTCAoQyBNb2RlKTogICAgICAgICAgICAgICAgICAgICAgSHVuZ3J5 IERlbGV0ZS4gICAgICAgKGxpbmUgIDE0KQogIC0gQy1jIERlbGV0ZSAoQyBNb2RlKTogICAgICAg ICAgICAgICAgICAgSHVuZ3J5IERlbGV0ZS4gICAgICAgKGxpbmUgIDIwKQogIC0gQy1jIERPV04g KFBpY3R1cmUgbW9kZSk6ICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUg ICA2KQogIC0gQy1jIEVuZCAoUGljdHVyZSBtb2RlKTogICAgICAgICAgICAgICAgSW5zZXJ0IGlu IFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIEhvbWUgKFBpY3R1cmUgbW9kZSk6ICAgICAg ICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIExFRlQgKFBp Y3R1cmUgbW9kZSk6ICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2 KQogIC0gQy1jIG5leHQgKFBpY3R1cmUgbW9kZSk6ICAgICAgICAgICAgICAgSW5zZXJ0IGluIFBp Y3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIFBhZ2VEb3duIChQaWN0dXJlIG1vZGUpOiAgICAg ICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIFBhZ2VVcCAoUGlj dHVyZSBtb2RlKTogICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1cmUuICAgKGxpbmUgICA2KQog IC0gQy1jIHByaW9yIChQaWN0dXJlIG1vZGUpOiAgICAgICAgICAgICAgSW5zZXJ0IGluIFBpY3R1 cmUuICAgKGxpbmUgICA2KQogIC0gQy1jIFJFVCAoR290byBBZGRyZXNzIG1vZGUpOiAgICAgICAg ICAgR290byBBZGRyZXNzIG1vZGUuICAgKGxpbmUgICA5KQogIC0gQy1jIFJFVCAoU2hlbGwgbW9k ZSk6ICAgICAgICAgICAgICAgICAgU2hlbGwgSGlzdG9yeSBDb3B5aW5nLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAx MikKICAtIEMtYyBSSUdIVCAoUGljdHVyZSBtb2RlKTogICAgICAgICAgICAgIEluc2VydCBpbiBQ aWN0dXJlLiAgIChsaW5lICAgNikKICAtIEMtYyBUQUIgKFBpY3R1cmUgbW9kZSk6ICAgICAgICAg ICAgICAgIFRhYnMgaW4gUGljdHVyZS4gICAgIChsaW5lICAyNSkKICAtIEMtYyBUQUIgKFNHTUwg bW9kZSk6ICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICA3MikK ICAtIEMtYyBUQUIgKFRlWCBtb2RlKTogICAgICAgICAgICAgICAgICAgIFRlWCBQcmludC4gICAg ICAgICAgIChsaW5lIDEzOCkKICAtIEMtYyBVUCAoUGljdHVyZSBtb2RlKTogICAgICAgICAgICAg ICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIEMtYyBbIChFbnJpY2hlZCBt b2RlKTogICAgICAgICAgICAgICAgIEVucmljaGVkIEluZGVudGF0aW9uLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAz MykKICAtIEMtYyBbIChPcmcgTW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIE9yZyBPcmdhbml6 ZXIuICAgICAgIChsaW5lICAyMCkKICAtIEMtYyBcIChQaWN0dXJlIG1vZGUpOiAgICAgICAgICAg ICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIEMtYyBdIChFbnJpY2hl ZCBtb2RlKTogICAgICAgICAgICAgICAgIEVucmljaGVkIEluZGVudGF0aW9uLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICAzMykKICAtIEMtYyBeIChQaWN0dXJlIG1vZGUpOiAgICAgICAgICAgICAgICAgIEluc2VydCBp biBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIEMtYyBgIChQaWN0dXJlIG1vZGUpOiAgICAgICAg ICAgICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIEMtYyB7IChUZVgg bW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIFRlWCBFZGl0aW5nLiAgICAgICAgIChsaW5lICA0 MykKICAtIEMtYyB9IChUZVggbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIFRlWCBFZGl0aW5n LiAgICAgICAgIChsaW5lICA0MykKICAtIEMtZCAoQnVmZmVyIE1lbnUpOiAgICAgICAgICAgICAg ICAgICAgIFNldmVyYWwgQnVmZmVycy4gICAgIChsaW5lICAzNSkKICAtIEMtZCAoUm1haWwpOiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIERlbGV0aW9uLiAgICAgIChsaW5lICAyNikK ICAtIEMtZCAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAg ICAgICAgIChsaW5lICAzMykKICAtIEMtRG93bi1tb3VzZS0xOiAgICAgICAgICAgICAgICAgICAg ICAgIEJ1ZmZlciBNZW51cy4gICAgICAgIChsaW5lICAyMikKICAtIEMtZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lICA0OSkKICAt IEMtZSAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgIE1vdmUgdG8gQmVnaW5uaW5n IG9yIEVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgMTEpCiAgLSBDLUVORDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgODgpCiAgLSBDLWY6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAg MTkpCiAgLSBDLWYgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBV bml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgMjcpCiAgLSBDLWc6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRdWl0dGluZy4gICAgICAgICAgICAobGluZSAgMjgpCiAgLSBDLWcgKElu Y3JlbWVudGFsIHNlYXJjaCk6ICAgICAgICAgICAgICBFcnJvciBpbiBJc2VhcmNoLiAgICAobGlu ZSAgMjIpCiAgLSBDLWcgKE1TLURPUyk6ICAgICAgICAgICAgICAgICAgICAgICAgICBNUy1ET1Mg S2V5Ym9hcmQuICAgICAobGluZSAgMTIpCiAgLSBDLWg6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBIZWxwLiAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBDLWggLjogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEVjaG8uICAgICAgICAgICAobGluZSAg MTMpCiAgLSBDLWggYTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHJvcG9zLiAg ICAgICAgICAgICAobGluZSAgMTUpCiAgLSBDLWggYjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNaXNjIEhlbHAuICAgICAgICAgICAobGluZSAgNDIpCiAgLSBDLWggYzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBLZXkgSGVscC4gICAgICAgICAgICAobGluZSAgIDkp CiAgLSBDLWggQzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2RpbmcgU3lzdGVt cy4gICAgICAobGluZSAgNDMpCiAgLSBDLWggQy1jOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLWggQy1kOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAg LSBDLWggQy1lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAg ICAgICAobGluZSAgMTIpCiAgLSBDLWggQy1mOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLWggQy1oOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBIZWxwLiAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBD LWggQy1oIChJbmNyZW1lbnRhbCBTZWFyY2gpOiAgICAgICAgICBTcGVjaWFsIElzZWFyY2guICAg ICAobGluZSAgODcpCiAgLSBDLWggQy1tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBI ZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLWggQy1uOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLWgg Qy1vOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAo bGluZSAgMTIpCiAgLSBDLWggQy1wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxw IEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLWggQy10OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLWggQy13 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGlu ZSAgMTIpCiAgLSBDLWggQy1cOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Qg SW5wdXQgTWV0aG9kLiAobGluZSAgMTYpCiAgLSBDLWggZDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBcHJvcG9zLiAgICAgICAgICAgICAobGluZSAgNDQpCiAgLSBDLWggZTogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAgICAgICAgICAobGluZSAg MzIpCiAgLSBDLWggZjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIEhlbHAu ICAgICAgICAgICAobGluZSAgIDYpCiAgLSBDLWggRjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIEhlbHAuICAgICAgICAgICAobGluZSAgNDkpCiAgLSBDLWggZzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIp CiAgLSBDLWggaDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hdGlvbmFs IENoYXJzLiAobGluZSAgMTgpCiAgLSBDLWggaTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNaXNjIEhlbHAuICAgICAgICAgICAobGluZSAgIDYpCiAgLSBDLWggSTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgSW5wdXQgTWV0aG9kLiAobGluZSAgMTYpCiAg LSBDLWggazogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXkgSGVscC4gICAgICAg ICAgICAobGluZSAgMTIpCiAgLSBDLWggSzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBLZXkgSGVscC4gICAgICAgICAgICAobGluZSAgMTYpCiAgLSBDLWggbDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAgICAgICAgICAobGluZSAgMjYpCiAgLSBD LWggTDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVu dHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDc2KQogIC0gQy1oIG06ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTWlzYyBIZWxwLiAgICAgICAgICAgKGxpbmUgIDM2KQogIC0gQy1oIG86ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSBIZWxwLiAgICAgICAgICAgKGxpbmUgIDUzKQog IC0gQy1oIHA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSBLZXl3b3Jk cy4gICAgKGxpbmUgIDEwKQogIC0gQy1oIFA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUGFja2FnZSBLZXl3b3Jkcy4gICAgKGxpbmUgIDE3KQogIC0gQy1oIFM6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWlzYyBIZWxwLiAgICAgICAgICAgKGxpbmUgIDIxKQogIC0g Qy1oIHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBIZWxwLiAgICAgICAg ICAgKGxpbmUgIDQyKQogIC0gQy1oIHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QmFzaWMuICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gQy1oIHY6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSBIZWxwLiAgICAgICAgICAgKGxpbmUgIDQwKQogIC0gQy1o IHc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5IEhlbHAuICAgICAgICAgICAg KGxpbmUgIDI1KQogIC0gQy1qOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5z ZXJ0aW5nIFRleHQuICAgICAgKGxpbmUgIDExKQogIC0gQy1qIChhbmQgbWFqb3IgbW9kZXMpOiAg ICAgICAgICAgICAgICAgTWFqb3IgTW9kZXMuICAgICAgICAgKGxpbmUgICA2KQogIC0gQy1qIChM aXNwIEludGVyYWN0aW9uIG1vZGUpOiAgICAgICAgICAgTGlzcCBJbnRlcmFjdGlvbi4gICAgKGxp bmUgIDExKQogIC0gQy1qIChNUy1ET1MpOiAgICAgICAgICAgICAgICAgICAgICAgICAgTVMtRE9T IEtleWJvYXJkLiAgICAgKGxpbmUgIDMxKQogIC0gQy1qIChUZVggbW9kZSk6ICAgICAgICAgICAg ICAgICAgICAgICAgVGVYIEVkaXRpbmcuICAgICAgICAgKGxpbmUgIDUxKQogIC0gQy1rOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2lsbGluZyBieSBMaW5lcy4gICAgKGxpbmUg IDExKQogIC0gQy1rIChHbnVzIEdyb3VwIG1vZGUpOiAgICAgICAgICAgICAgICAgR251cyBHcm91 cCBCdWZmZXIuICAgKGxpbmUgIDM2KQogIC0gQy1sOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVjZW50ZXJpbmcuICAgICAgICAgKGxpbmUgIDIwKQogIC0gQy1MRUZUOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgIDY1 KQogIC0gQy1NLSU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVlcnkgUmVwbGFj ZS4gICAgICAgKGxpbmUgIDIxKQogIC0gQy1NLS46ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9va2luZyBVcCBJZGVudGlmaWVycy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTApCiAgLSBDLU0tLzog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljIEFiYnJldnMuICAgICAobGlu ZSAgMTIpCiAgLSBDLU0tQDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJraW5n IE9iamVjdHMuICAgICAobGluZSAgMzgpCiAgLSBDLU0tYTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNb3ZpbmcgYnkgRGVmdW5zLiAgICAobGluZSAgMTcpCiAgLSBDLU0tYjogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9ucy4gICAgICAgICAobGluZSAg MjUpCiAgLSBDLU0tYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWN1cnNpdmUg RWRpdC4gICAgICAobGluZSAgMTMpCiAgLSBDLU0tZDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNb3ZpbmcgYnkgUGFyZW5zLiAgICAobGluZSAgMzkpCiAgLSBDLU0tZCAoRGlyZWQp OiAgICAgICAgICAgICAgICAgICAgICAgICBTdWJkaXJlY3RvcnkgTW90aW9uLiAobGluZSAgMjYp CiAgLSBDLU0tZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkgRGVm dW5zLiAgICAobGluZSAgMTcpCiAgLSBDLU0tZjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFeHByZXNzaW9ucy4gICAgICAgICAobGluZSAgMjUpCiAgLSBDLU0tZiAoUm1haWwpOiAg ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAgNTUpCiAg LSBDLU0taDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkgRGVmdW5z LiAgICAobGluZSAgMTcpCiAgLSBDLU0taCAoQyBtb2RlKTogICAgICAgICAgICAgICAgICAgICAg ICBNb3ZpbmcgYnkgRGVmdW5zLiAgICAobGluZSAgMzApCiAgLSBDLU0taTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTeW1ib2wgQ29tcGxldGlvbi4gICAobGluZSAgIDkpCiAgLSBD LU0taSAoY3VzdG9taXphdGlvbiBidWZmZXIpOiAgICAgICAgICBDaGFuZ2luZyBhIFZhcmlhYmxl LiAobGluZSAgNTMpCiAgLSBDLU0tajogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN dWx0aS1MaW5lIENvbW1lbnRzLiAobGluZSAgIDYpCiAgLSBDLU0taiAoRm9ydHJhbiBtb2RlKTog ICAgICAgICAgICAgICAgICBGb3JJbmRlbnQgQ29tbWFuZHMuICAobGluZSAgMjUpCiAgLSBDLU0t azogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9ucy4gICAgICAgICAo bGluZSAgNDQpCiAgLSBDLU0tbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWNl bnRlcmluZy4gICAgICAgICAobGluZSAgNTYpCiAgLSBDLU0tbCAoUm1haWwpOiAgICAgICAgICAg ICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAgMzYpCiAgLSBDLU0tbCAo U2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgICAobGlu ZSAgOTEpCiAgLSBDLU0tbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3Zpbmcg YnkgUGFyZW5zLiAgICAobGluZSAgMjgpCiAgLSBDLU0tbiAoRGlyZWQpOiAgICAgICAgICAgICAg ICAgICAgICAgICBTdWJkaXJlY3RvcnkgTW90aW9uLiAobGluZSAgMTUpCiAgLSBDLU0tbiAoRm9y dHJhbiBtb2RlKTogICAgICAgICAgICAgICAgICBGb3J0cmFuIE1vdGlvbi4gICAgICAobGluZSAg MzMpCiAgLSBDLU0tbiAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBMYWJl bHMuICAgICAgICAobGluZSAgMzkpCiAgLSBDLU0tbzogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRlbnRhdGlvbiBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTApCiAgLSBDLU0tcDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkgUGFyZW5zLiAgICAobGlu ZSAgMjgpCiAgLSBDLU0tcCAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICBTdWJkaXJl Y3RvcnkgTW90aW9uLiAobGluZSAgMTkpCiAgLSBDLU0tcCAoRm9ydHJhbiBtb2RlKTogICAgICAg ICAgICAgICAgICBGb3J0cmFuIE1vdGlvbi4gICAgICAobGluZSAgNDEpCiAgLSBDLU0tcCAoUm1h aWwpOiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBMYWJlbHMuICAgICAgICAobGluZSAg MzkpCiAgLSBDLU0tcTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdWx0aS1saW5l IEluZGVudC4gICAobGluZSAgMjUpCiAgLSBDLU0tcSAoQyBtb2RlKTogICAgICAgICAgICAgICAg ICAgICAgICBDIEluZGVudC4gICAgICAgICAgICAobGluZSAgMTMpCiAgLSBDLU0tcSAoRm9ydHJh biBtb2RlKTogICAgICAgICAgICAgICAgICBGb3JJbmRlbnQgQ29tbWFuZHMuICAobGluZSAgMjEp CiAgLSBDLU0tcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdleHAgU2VhcmNo LiAgICAgICAobGluZSAgMTcpCiAgLSBDLU0tciAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAg ICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAgNDApCiAgLSBDLU0tczogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdleHAgU2VhcmNoLiAgICAgICAobGluZSAgMTcpCiAg LSBDLU0tcyAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1h cnkuICAobGluZSAgNTEpCiAgLSBDLU0tU1BDOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFeHByZXNzaW9ucy4gICAgICAgICAobGluZSAgNTYpCiAgLSBDLU0tdDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9ucy4gICAgICAgICAobGluZSAgNDcpCiAgLSBD LU0tdCAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnku ICAobGluZSAgNDYpCiAgLSBDLU0tdTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN b3ZpbmcgYnkgUGFyZW5zLiAgICAobGluZSAgMzIpCiAgLSBDLU0tdSAoRGlyZWQpOiAgICAgICAg ICAgICAgICAgICAgICAgICBTdWJkaXJlY3RvcnkgTW90aW9uLiAobGluZSAgMjMpCiAgLSBDLU0t djogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlciBXaW5kb3cuICAgICAgICAo bGluZSAgMjgpCiAgLSBDLU0tdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBl bmRpbmcgS2lsbHMuICAgICAobGluZSAgMzkpCiAgLSBDLU0tdyAoSW5jcmVtZW50YWwgc2VhcmNo KTogICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGluZSAgMjgpCiAgLSBDLU0teCAo RW1hY3MgTGlzcCBtb2RlKTogICAgICAgICAgICAgICBMaXNwIEV2YWwuICAgICAgICAgICAobGlu ZSAgNTIpCiAgLSBDLU0teCAoTGlzcCBtb2RlKTogICAgICAgICAgICAgICAgICAgICBFeHRlcm5h bCBMaXNwLiAgICAgICAobGluZSAgMjUpCiAgLSBDLU0teCAoU2NoZW1lIG1vZGUpOiAgICAgICAg ICAgICAgICAgICBFeHRlcm5hbCBMaXNwLiAgICAgICAobGluZSAgMzUpCiAgLSBDLU0teSAoSW5j cmVtZW50YWwgc2VhcmNoKTogICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGluZSAg MjgpCiAgLSBDLU0tXDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRlbnRhdGlv biBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNDYpCiAgLSBDLW1vdXNlLTE6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNZW51IE1vdXNlIENsaWNrcy4gICAobGluZSAgMTApCiAgLSBDLW1vdXNl LTI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51IE1vdXNlIENsaWNrcy4gICAobGlu ZSAgMTYpCiAgLSBDLW1vdXNlLTIgKG1vZGUgbGluZSk6ICAgICAgICAgICAgICAgICBTcGxpdCBX aW5kb3cuICAgICAgICAobGluZSAgNTkpCiAgLSBDLW1vdXNlLTIgKHNjcm9sbCBiYXIpOiAgICAg ICAgICAgICAgICBTcGxpdCBXaW5kb3cuICAgICAgICAobGluZSAgNTkpCiAgLSBDLW1vdXNlLTM6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51IE1vdXNlIENsaWNrcy4gICAobGluZSAg MjEpCiAgLSBDLW1vdXNlLTMgKHdoZW4gbWVudSBiYXIgaXMgZGlzYWJsZWQpOiBNZW51IEJhcnMu ICAgICAgICAgICAobGluZSAgMTIpCiAgLSBDLW46ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgMzQpCiAgLSBDLW4gKENhbGVuZGFy IG1vZGUpOiAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBVbml0IE1vdGlvbi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMjcpCiAgLSBDLW4gKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBO YXZpZ2F0aW9uLiAgICAobGluZSAgIDYpCiAgLSBDLW86ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCbGFuayBMaW5lcy4gICAgICAgICAobGluZSAgMTUpCiAgLSBDLW8gKEJ1ZmZl ciBNZW51KTogICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAx MDApCiAgLSBDLW8gKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBWaXNp dGluZy4gICAgICAobGluZSAgMjcpCiAgLSBDLW8gKE9jY3VyIG1vZGUpOiAgICAgICAgICAgICAg ICAgICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2NCkKICAtIEMtbyAo Um1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIE91dHB1dC4gICAgICAgIChs aW5lICAyMCkKICAtIEMtcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vdmlu ZyBQb2ludC4gICAgICAgIChsaW5lICA0MCkKICAtIEMtcCAoQ2FsZW5kYXIgbW9kZSk6ICAgICAg ICAgICAgICAgICAgIENhbGVuZGFyIFVuaXQgTW90aW9uLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNykKICAtIEMt cCAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVkIE5hdmlnYXRpb24uICAg IChsaW5lICAgNikKICAtIEMtcTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu c2VydGluZyBUZXh0LiAgICAgIChsaW5lICAzMCkKICAtIEMtcjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJhc2ljIElzZWFyY2guICAgICAgIChsaW5lICA1NykKICAtIEMtUklH SFQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChs aW5lICA1NikKICAtIEMtczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2lj IElzZWFyY2guICAgICAgIChsaW5lICAxMSkKICAtIEMtUy1iYWNrc3BhY2U6ICAgICAgICAgICAg ICAgICAgICAgICAgIEtpbGxpbmcgYnkgTGluZXMuICAgIChsaW5lICAzOCkKICAtIEMtUy1tb3Vz ZS0zIChGRkFQKTogICAgICAgICAgICAgICAgICAgIEZGQVAuICAgICAgICAgICAgICAgIChsaW5l ICA1NSkKICAtIEMtU1BDOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcg TWFyay4gICAgICAgIChsaW5lICAyNCkKICAtIEMtU1BDIEMtU1BDOiAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1hcmsgUmluZy4gICAgICAgICAgIChsaW5lICAxNykKICAtIEMtU1BDIEMtU1BD LCBkaXNhYmxpbmcgVHJhbnNpZW50IE1hcms6IERpc2FibGVkIFRyYW5zaWVudCBNYXJrLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAzMykKICAtIEMtdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRy YW5zcG9zZS4gICAgICAgICAgIChsaW5lICAxNSkKICAtIEMtdCBkIChJbWFnZS1EaXJlZCk6ICAg ICAgICAgICAgICAgICAgIEltYWdlLURpcmVkLiAgICAgICAgIChsaW5lICAxMCkKICAtIEMtVEFC OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgTmFtZSBDYWNoZS4gICAgIChs aW5lICAgNikKICAtIEMtdTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZ3Vt ZW50cy4gICAgICAgICAgIChsaW5lICA0MSkKICAtIEMtdSBDLS86ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFVuZG8uICAgICAgICAgICAgICAgIChsaW5lICA1MykKICAtIEMtdSBDLWMg Qy13IChGb3J0cmFuIG1vZGUpOiAgICAgICAgICAgIEZvcnRyYW4gQ29sdW1ucy4gICAgIChsaW5l ICA1OCkKICAtIEMtdSBDLVNQQzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmsgUmlu Zy4gICAgICAgICAgIChsaW5lICAyNikKICAtIEMtdSBDLXggQy14OiAgICAgICAgICAgICAgICAg ICAgICAgICAgIERpc2FibGVkIFRyYW5zaWVudCBNYXJrLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzOSkKICAtIEMt dSBDLXggdiA9OiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZCBSZXZpc2lvbnMuICAgICAg IChsaW5lICAzNSkKICAtIEMtdSBNLTs6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bW1lbnQgQ29tbWFuZHMuICAgIChsaW5lICA3MykKICAtIEMtdSBUQUI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE11bHRpLWxpbmUgSW5kZW50LiAgIChsaW5lICAzMykKICAtIEMtdjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChs aW5lICA5NCkKICAtIEMtdiA8MT46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcm9s bGluZy4gICAgICAgICAgIChsaW5lICAzNSkKICAtIEMtdiAoQ2FsZW5kYXIgbW9kZSk6ICAgICAg ICAgICAgICAgICAgIFNjcm9sbCBDYWxlbmRhci4gICAgIChsaW5lICAzMykKICAtIEMtdzogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIEtpbGwgQ29tbWFuZHMuIChsaW5l ICAyNSkKICAtIEMtdyAoSW5jcmVtZW50YWwgc2VhcmNoKTogICAgICAgICAgICAgIElzZWFyY2gg WWFuay4gICAgICAgIChsaW5lICAxMCkKICAtIEMteCAjOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEludm9raW5nIGVtYWNzY2xpZW50LgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzMikKICAtIEMteCAk OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGl2ZSBEaXNwbGF5LiAgIChs aW5lICAgNikKICAtIEMteCAoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2lj IEtleWJvYXJkIE1hY3JvLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA4NykKICAtIEMteCApOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJhc2ljIEtleWJvYXJkIE1hY3JvLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA4NykK ICAtIEMteCArOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZSBXaW5kb3cu ICAgICAgIChsaW5lICA2OCkKICAtIEMteCAtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENoYW5nZSBXaW5kb3cuICAgICAgIChsaW5lICA2MykKICAtIEMteCAuOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZpbGwgUHJlZml4LiAgICAgICAgIChsaW5lICAyMykKICAt IEMteCAwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZSBXaW5kb3cuICAg ICAgIChsaW5lICAyNykKICAtIEMteCAxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENoYW5nZSBXaW5kb3cuICAgICAgIChsaW5lICAzNykKICAtIEMteCAyOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNwbGl0IFdpbmRvdy4gICAgICAgIChsaW5lICAxNSkKICAtIEMt eCAzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNwbGl0IFdpbmRvdy4gICAgICAg IChsaW5lICAzMikKICAtIEMteCA0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBv cCBVcCBXaW5kb3cuICAgICAgIChsaW5lICAgNikKICAtIEMteCA0IC46ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExvb2tpbmcgVXAgSWRlbnRpZmllcnMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ0KQog IC0gQy14IDQgMDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIFdpbmRvdy4g ICAgICAgKGxpbmUgIDM0KQogIC0gQy14IDQgYTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2hhbmdlIExvZyBDb21tYW5kcy4gKGxpbmUgICA2KQogIC0gQy14IDQgYjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IEJ1ZmZlci4gICAgICAgKGxpbmUgIDUyKQogIC0g Qy14IDQgYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kaXJlY3QgQnVmZmVycy4g ICAgKGxpbmUgIDE3KQogIC0gQy14IDQgQy1vOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UG9wIFVwIFdpbmRvdy4gICAgICAgKGxpbmUgIDE2KQogIC0gQy14IDQgZDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGlyZWQgRW50ZXIuICAgICAgICAgKGxpbmUgIDUyKQogIC0gQy14 IDQgZjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlzaXRpbmcuICAgICAgICAgICAg KGxpbmUgMTA4KQogIC0gQy14IDQgZiAoRkZBUCk6ICAgICAgICAgICAgICAgICAgICAgICAgRkZB UC4gICAgICAgICAgICAgICAgKGxpbmUgIDM1KQogIC0gQy14IDQgbTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2VuZGluZyBNYWlsLiAgICAgICAgKGxpbmUgIDMxKQogIC0gQy14IDU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRpbmcgRnJhbWVzLiAgICAgKGxp bmUgICA2KQogIC0gQy14IDUgLjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9va2lu ZyBVcCBJZGVudGlmaWVycy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDQpCiAgLSBDLXggNSAwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGcmFtZSBDb21tYW5kcy4gICAgICAobGluZSAgIDkpCiAgLSBD LXggNSAxOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBDb21tYW5kcy4gICAg ICAobGluZSAgMjEpCiAgLSBDLXggNSAyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD cmVhdGluZyBGcmFtZXMuICAgICAobGluZSAgMTgpCiAgLSBDLXggNSBiOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTZWxlY3QgQnVmZmVyLiAgICAgICAobGluZSAgNTcpCiAgLSBDLXgg NSBkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBFbnRlci4gICAgICAgICAo bGluZSAgNTIpCiAgLSBDLXggNSBmOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaXNp dGluZy4gICAgICAgICAgICAobGluZSAxMTYpCiAgLSBDLXggNSBmIChGRkFQKTogICAgICAgICAg ICAgICAgICAgICAgICBGRkFQLiAgICAgICAgICAgICAgICAobGluZSAgNDIpCiAgLSBDLXggNSBt OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kaW5nIE1haWwuICAgICAgICAobGlu ZSAgMzEpCiAgLSBDLXggNSBvOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBD b21tYW5kcy4gICAgICAobGluZSAgMTcpCiAgLSBDLXggNSByOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGluZyBGcmFtZXMuICAgICAobGluZSAgMzcpCiAgLSBDLXggNiAxOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUd28tQ29sdW1uLiAgICAgICAgICAobGluZSAg NTgpCiAgLSBDLXggNiAyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUd28tQ29sdW1u LiAgICAgICAgICAobGluZSAgMTEpCiAgLSBDLXggNiBiOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUd28tQ29sdW1uLiAgICAgICAgICAobGluZSAgMzQpCiAgLSBDLXggNiBkOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUd28tQ29sdW1uLiAgICAgICAgICAobGluZSAgNjMp CiAgLSBDLXggNiBSRVQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUd28tQ29sdW1uLiAg ICAgICAgICAobGluZSAgNTMpCiAgLSBDLXggNiBzOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUd28tQ29sdW1uLiAgICAgICAgICAobGluZSAgMjEpCiAgLSBDLXggODogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbnNlcnRpbmcgVGV4dC4gICAgICAobGluZSAgNjApCiAg LSBDLXggOzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcHRpb25zIGZvciBDb21t ZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgIDYpCiAgLSBDLXggPDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBIb3Jpem9udGFsIFNjcm9sbGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDIpCiAgLSBDLXggPTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBJbmZvLiAgICAgICAobGlu ZSAgNTQpCiAgLSBDLXggPSwgYW5kIGludGVybmF0aW9uYWwgY2hhcmFjdGVyczogICBJbnRlcm5h dGlvbmFsIENoYXJzLiAobGluZSAgMzgpCiAgLSBDLXggPjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBIb3Jpem9udGFsIFNjcm9sbGluZy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDIpCiAgLSBDLXgg YSBnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBBYmJyZXZzLiAgICAo bGluZSAgMzEpCiAgLSBDLXggYSBpIGc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZp bmluZyBBYmJyZXZzLiAgICAobGluZSAgNDcpCiAgLSBDLXggYSBpIGw6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEZWZpbmluZyBBYmJyZXZzLiAgICAobGluZSAgNDcpCiAgLSBDLXggYSBs OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBBYmJyZXZzLiAgICAobGlu ZSAgNDMpCiAgLSBDLXggYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Qg QnVmZmVyLiAgICAgICAobGluZSAgMjMpCiAgLSBDLXggQy0rOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUZXh0IFNjYWxlLiAgICAgICAgICAobGluZSAgIDYpCiAgLSBDLXggQy0tOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0IFNjYWxlLiAgICAgICAgICAobGluZSAg IDYpCiAgLSBDLXggQy0wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0IFNjYWxl LiAgICAgICAgICAobGluZSAgIDYpCiAgLSBDLXggQy07OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDb21tZW50IENvbW1hbmRzLiAgICAobGluZSAgNjMpCiAgLSBDLXggQy09OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0IFNjYWxlLiAgICAgICAgICAobGluZSAgIDYp CiAgLSBDLXggQy1hIChHVUQpOiAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kcyBvZiBH VUQuICAgICAobGluZSAgMTcpCiAgLSBDLXggQy1hIEMtYjogICAgICAgICAgICAgICAgICAgICAg ICAgICBDb21tYW5kcyBvZiBHVUQuICAgICAobGluZSAgMTApCiAgLSBDLXggQy1hIEMtaiAoR1VE KTogICAgICAgICAgICAgICAgICAgICBDb21tYW5kcyBvZiBHVUQuICAgICAobGluZSAgOTMpCiAg LSBDLXggQy1hIEMtdyAoR1VEKTogICAgICAgICAgICAgICAgICAgICBXYXRjaCBFeHByZXNzaW9u cy4gICAobGluZSAgIDYpCiAgLSBDLXggQy1iOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IEJ1ZmZlcnMuICAgICAgICAobGluZSAgIDkpCiAgLSBDLXggQy1jOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFeGl0aW5nLiAgICAgICAgICAgICAobGluZSAgMTIpCiAgLSBD LXggQy1jIChjdXN0b21pemF0aW9uIGJ1ZmZlcik6ICAgICAgICBDaGFuZ2luZyBhIFZhcmlhYmxl LiAobGluZSAxMzUpCiAgLSBDLXggQy1kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE aXJlY3Rvcmllcy4gICAgICAgICAobGluZSAgMjMpCiAgLSBDLXggQy1lOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXNwIEV2YWwuICAgICAgICAgICAobGluZSAgMzYpCiAgLSBDLXgg Qy1mOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaXNpdGluZy4gICAgICAgICAgICAo bGluZSAgMjcpCiAgLSBDLXggQy1mIChGRkFQKTogICAgICAgICAgICAgICAgICAgICAgICBGRkFQ LiAgICAgICAgICAgICAgICAobGluZSAgMjMpCiAgLSBDLXggQy1rIGI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTYXZlIEtleWJvYXJkIE1hY3JvLiAobGluZSAgMjYpCiAgLSBDLXggQy1r IEMtYTogICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZCBNYWNybyBDb3VudGVyLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICA2MSkKICAtIEMteCBDLWsgQy1jOiAgICAgICAgICAgICAgICAgICAgICAgICAg IEtleWJvYXJkIE1hY3JvIENvdW50ZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDUzKQogIC0gQy14IEMtayBDLWU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdCBLZXlib2FyZCBNYWNyby4gKGxpbmUgIDE0 KQogIC0gQy14IEMtayBDLWY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Ym9hcmQgTWFj cm8gQ291bnRlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNjcpCiAgLSBDLXggQy1rIEMtaTogICAgICAgICAgICAg ICAgICAgICAgICAgICBLZXlib2FyZCBNYWNybyBDb3VudGVyLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNykKICAt IEMteCBDLWsgQy1rOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleWJvYXJkIE1hY3JvIFJp bmcuIChsaW5lICAzMSkKICAtIEMteCBDLWsgQy1uOiAgICAgICAgICAgICAgICAgICAgICAgICAg IEtleWJvYXJkIE1hY3JvIFJpbmcuIChsaW5lICA0MSkKICAtIEMteCBDLWsgQy1wOiAgICAgICAg ICAgICAgICAgICAgICAgICAgIEtleWJvYXJkIE1hY3JvIFJpbmcuIChsaW5lICA0MSkKICAtIEMt eCBDLWsgZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQgS2V5Ym9hcmQgTWFjcm8u IChsaW5lICAyMCkKICAtIEMteCBDLWsgbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVk aXQgS2V5Ym9hcmQgTWFjcm8uIChsaW5lICAyNSkKICAtIEMteCBDLWsgbjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNhdmUgS2V5Ym9hcmQgTWFjcm8uIChsaW5lICAxNSkKICAtIEMteCBD LWsgcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIEtleWJvYXJkIE1hY3JvLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICA4MikKICAtIEMteCBDLWsgUkVUOiAgICAgICAgICAgICAgICAgICAgICAgICAg IEVkaXQgS2V5Ym9hcmQgTWFjcm8uIChsaW5lICAxNCkKICAtIEMteCBDLWsgU1BDOiAgICAgICAg ICAgICAgICAgICAgICAgICAgIEtleWJvYXJkIE1hY3JvIFN0ZXAtRWRpdC4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg IDYpCiAgLSBDLXggQy1rIHg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZCBN YWNybyBSZWdpc3RlcnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gQy14IEMtbDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ2FzZS4gICAgICAgICAgICAgICAgKGxpbmUgIDQxKQogIC0gQy14 IEMtbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAg KGxpbmUgMTIzKQogIC0gQy14IEMtbzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmxh bmsgTGluZXMuICAgICAgICAgKGxpbmUgIDE1KQogIC0gQy14IEMtcDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFnZXMuICAgICAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gQy14IEMt cTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBCdWZmZXIuICAgICAgICAgKGxp bmUgIDE1KQogIC0gQy14IEMtcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlzaXRp bmcuICAgICAgICAgICAgKGxpbmUgMTA0KQogIC0gQy14IEMtciAoRkZBUCk6ICAgICAgICAgICAg ICAgICAgICAgICAgRkZBUC4gICAgICAgICAgICAgICAgKGxpbmUgIDI2KQogIC0gQy14IEMtczog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZSBDb21tYW5kcy4gICAgICAgKGxpbmUg IDIwKQogIC0gQy14IEMtcyAoQ3VzdG9tIFRoZW1lcyBidWZmZXIpOiAgICAgICAgQ3VzdG9tIFRo ZW1lcy4gICAgICAgKGxpbmUgIDM2KQogIC0gQy14IEMtU1BDOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR2xvYmFsIE1hcmsgUmluZy4gICAgKGxpbmUgIDE1KQogIC0gQy14IEMtdDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3NlLiAgICAgICAgICAgKGxpbmUgIDI5 KQogIC0gQy14IEMtdTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZS4gICAgICAg ICAgICAgICAgKGxpbmUgIDQxKQogIC0gQy14IEMtdjogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVmlzaXRpbmcuICAgICAgICAgICAgKGxpbmUgIDgwKQogIC0gQy14IEMtdiAoRkZBUCk6 ICAgICAgICAgICAgICAgICAgICAgICAgRkZBUC4gICAgICAgICAgICAgICAgKGxpbmUgIDI4KQog IC0gQy14IEMtdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2ZSBDb21tYW5kcy4g ICAgICAgKGxpbmUgIDg5KQogIC0gQy14IEMteDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2V0dGluZyBNYXJrLiAgICAgICAgKGxpbmUgIDQzKQogIC0gQy14IEMteCwgaW4gcmVjdGFu Z2xlLW1hcmstbW9kZTogICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUgMTMyKQogIC0g Qy14IEMtejogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWwgTGlzcC4gICAg ICAgKGxpbmUgIDExKQogIC0gQy14IGQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RGlyZWQgRW50ZXIuICAgICAgICAgKGxpbmUgICA2KQogIC0gQy14IGQgKEZGQVApOiAgICAgICAg ICAgICAgICAgICAgICAgICAgRkZBUC4gICAgICAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gQy14 IERFTDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VudGVuY2VzLiAgICAgICAgICAg KGxpbmUgIDM3KQogIC0gQy14IGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFz aWMgS2V5Ym9hcmQgTWFjcm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDg3KQogIC0gQy14IEVTQyBFU0M6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVwZXRpdGlvbi4gICAgICAgICAgKGxpbmUgIDE5KQogIC0g Qy14IGY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsbCBDb21tYW5kcy4gICAg ICAgKGxpbmUgIDM5KQogIC0gQy14IGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TWFya2luZyBPYmplY3RzLiAgICAgKGxpbmUgIDUyKQogIC0gQy14IGk6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTWlzYyBGaWxlIE9wcy4gICAgICAgKGxpbmUgIDMxKQogIC0gQy14 IGs6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2lsbCBCdWZmZXIuICAgICAgICAg KGxpbmUgIDIyKQogIC0gQy14IGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFn ZXMuICAgICAgICAgICAgICAgKGxpbmUgIDUxKQogIC0gQy14IExFRlQ6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2VsZWN0IEJ1ZmZlci4gICAgICAgKGxpbmUgIDQ2KQogIC0gQy14IG06 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGluZyBNYWlsLiAgICAgICAgKGxp bmUgICA2KQogIC0gQy14IG4gZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFycm93 aW5nLiAgICAgICAgICAgKGxpbmUgIDM4KQogIC0gQy14IG4gbjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTmFycm93aW5nLiAgICAgICAgICAgKGxpbmUgIDMzKQogIC0gQy14IG4gcDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFycm93aW5nLiAgICAgICAgICAgKGxpbmUg IDM4KQogIC0gQy14IG4gdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFycm93aW5n LiAgICAgICAgICAgKGxpbmUgIDQzKQogIC0gQy14IG86ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT3RoZXIgV2luZG93LiAgICAgICAgKGxpbmUgIDE1KQogIC0gQy14IHE6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Ym9hcmQgTWFjcm8gUXVlcnkuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDE0KQogIC0gQy14IHIgKzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVy IFJlZ2lzdGVycy4gICAgKGxpbmUgIDEzKQogIC0gQy14IHIgYjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQm9va21hcmtzLiAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gQy14IHIgYzog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUg IDkzKQogIC0gQy14IHIgZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xl cy4gICAgICAgICAgKGxpbmUgIDYzKQogIC0gQy14IHIgZjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gQy14 IHIgaTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCBSZWdpc3RlcnMuICAgICAg KGxpbmUgIDUxKQogIC0gQy14IHIgajogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9z aXRpb24gUmVnaXN0ZXJzLiAgKGxpbmUgIDE4KQogIC0gQy14IHIgazogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUgIDYzKQogIC0gQy14IHIg bDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9va21hcmtzLiAgICAgICAgICAgKGxp bmUgIDQwKQogIC0gQy14IHIgbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQm9va21h cmtzLiAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gQy14IHIgTTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQm9va21hcmtzLiAgICAgICAgICAgKGxpbmUgIDM2KQogIC0gQy14IHIgTS13 OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUg IDc2KQogIC0gQy14IHIgTjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xl cy4gICAgICAgICAgKGxpbmUgMTA0KQogIC0gQy14IHIgbjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTnVtYmVyIFJlZ2lzdGVycy4gICAgKGxpbmUgIDExKQogIC0gQy14IHIgbzogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUgIDkz KQogIC0gQy14IHIgcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlIFJl Z2lzdGVycy4gKGxpbmUgIDEwKQogIC0gQy14IHIgczogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGV4dCBSZWdpc3RlcnMuICAgICAgKGxpbmUgIDI2KQogIC0gQy14IHIgU1BDOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gUmVnaXN0ZXJzLiAgKGxpbmUgIDEzKQog IC0gQy14IHIgdDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAg ICAgICAgKGxpbmUgMTExKQogIC0gQy14IHIgdzogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29uZmlndXJhdGlvbiBSZWdpc3RlcnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gQy14IHIgeTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUg IDgwKQogIC0gQy14IFJFVDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYXRp b25hbCBDaGFycy4gKGxpbmUgIDM1KQogIC0gQy14IFJFVCBjOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVGV4dCBDb2RpbmcuICAgICAgICAgKGxpbmUgIDQzKQogIC0gQy14IFJFVCBDLVw6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IElucHV0IE1ldGhvZC4gKGxpbmUgIDI0 KQogIC0gQy14IFJFVCBmOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCBDb2Rpbmcu ICAgICAgICAgKGxpbmUgIDI1KQogIC0gQy14IFJFVCBGOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmlsZSBOYW1lIENvZGluZy4gICAgKGxpbmUgIDEwKQogIC0gQy14IFJFVCBrOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGVybWluYWwgQ29kaW5nLiAgICAgKGxpbmUgIDI5KQog IC0gQy14IFJFVCBwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbXVuaWNhdGlvbiBD b2RpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDQzKQogIC0gQy14IFJFVCByOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVGV4dCBDb2RpbmcuICAgICAgICAgKGxpbmUgIDc0KQogIC0gQy14IFJFVCB0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVybWluYWwgQ29kaW5nLiAgICAgKGxpbmUgIDE0 KQogIC0gQy14IFJFVCB4OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbXVuaWNhdGlv biBDb2RpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDIzKQogIC0gQy14IFJFVCBYOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29tbXVuaWNhdGlvbiBDb2RpbmcuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIzKQogIC0gQy14 IFJJR0hUOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IEJ1ZmZlci4gICAgICAg KGxpbmUgIDQ2KQogIC0gQy14IHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2 ZSBDb21tYW5kcy4gICAgICAgKGxpbmUgIDM2KQogIC0gQy14IFRBQjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSW5kZW50YXRpb24gQ29tbWFuZHMuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDUzKQogIC0g Qy14IFRBQiAoRW5yaWNoZWQgbW9kZSk6ICAgICAgICAgICAgICAgRW5yaWNoZWQgSW5kZW50YXRp b24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDEzKQogIC0gQy14IHU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVW5kby4gICAgICAgICAgICAgICAgKGxpbmUgIDIxKQogIC0gQy14IHYgKzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVsbGluZyAvIFB1c2hpbmcuICAgKGxpbmUgIDM4KQog IC0gQy14IHYgPTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2xkIFJldmlzaW9ucy4g ICAgICAgKGxpbmUgIDI4KQogIC0gQy14IHYgYTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ2hhbmdlIExvZ3MgYW5kIFZDLiAgKGxpbmUgIDE4KQogIC0gQy14IHYgRDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgT2xkIFJldmlzaW9ucy4gICAgICAgKGxpbmUgIDU2KQogIC0g Qy14IHYgZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkMgRGlyZWN0b3J5IE1vZGUu ICAgKGxpbmUgIDEzKQogIC0gQy14IHYgZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T2xkIFJldmlzaW9ucy4gICAgICAgKGxpbmUgIDc4KQogIC0gQy14IHYgRzogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVkMgSWdub3JlLiAgICAgICAgICAgKGxpbmUgICA5KQogIC0gQy14 IHYgaDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkMgQ2hhbmdlIExvZy4gICAgICAg KGxpbmUgMTEzKQogIC0gQy14IHYgaTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXJpbmcuICAgICAgICAgKGxpbmUgICA5KQogIC0gQy14IHYgbDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVkMgQ2hhbmdlIExvZy4gICAgICAgKGxpbmUgIDIyKQogIC0gQy14IHYg UDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVsbGluZyAvIFB1c2hpbmcuICAgKGxp bmUgIDE4KQogIC0gQy14IHYgcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV2aXNp b24gVGFncy4gICAgICAgKGxpbmUgIDIxKQogIC0gQy14IHYgczogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV2aXNpb24gVGFncy4gICAgICAgKGxpbmUgIDE3KQogIC0gQy14IHYgdTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkMgVW5kby4gICAgICAgICAgICAgKGxpbmUg IDEwKQogIC0gQy14IHYgdjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgVkMg RWRpdGluZy4gICAgKGxpbmUgIDI1KQogIC0gQy14IHYgfjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT2xkIFJldmlzaW9ucy4gICAgICAgKGxpbmUgIDczKQogIC0gQy14IHcgLjogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDcxKQogIC0gQy14IHcgYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGln aGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc2KQogIC0gQy14IHcgaDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDI4KQogIC0gQy14IHcgaTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxp Z2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDg4KQogIC0gQy14IHcgbDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDU5KQogIC0gQy14IHcgcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0 IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDY0KQogIC0gQy14IHcgcjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ3 KQogIC0gQy14IHo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0aW5nLiAg ICAgICAgICAgKGxpbmUgIDEyKQogIC0gQy14IFs6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUGFnZXMuICAgICAgICAgICAgICAgKGxpbmUgIDMxKQogIC0gQy14IFsgKENhbGVuZGFy IG1vZGUpOiAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgVW5pdCBNb3Rpb24uCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDM2KQogIC0gQy14IFsgKERvY1ZpZXcgbW9kZSk6ICAgICAgICAgICAgICAgICAgRG9jVmlldyBO YXZpZ2F0aW9uLiAgKGxpbmUgIDE2KQogIC0gQy14IF06ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFnZXMuICAgICAgICAgICAgICAgKGxpbmUgIDMxKQogIC0gQy14IF0gKENhbGVu ZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgVW5pdCBNb3Rpb24uCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDM2KQogIC0gQy14IF0gKERvY1ZpZXcgbW9kZSk6ICAgICAgICAgICAgICAgICAgRG9jVmll dyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDE2KQogIC0gQy14IF46ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ2hhbmdlIFdpbmRvdy4gICAgICAgKGxpbmUgIDQyKQogIC0gQy14IGA6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGlsYXRpb24gTW9kZS4gICAgKGxpbmUg IDQ4KQogIC0gQy14IH06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIFdp bmRvdy4gICAgICAgKGxpbmUgIDQyKQogIC0gQy15OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWWFua2luZy4gICAgICAgICAgICAgKGxpbmUgIDE4KQogIC0gQy15IChJbmNyZW1l bnRhbCBzZWFyY2gpOiAgICAgICAgICAgICAgSXNlYXJjaCBZYW5rLiAgICAgICAgKGxpbmUgIDIw KQogIC0gQy16OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhpdGluZy4gICAg ICAgICAgICAgKGxpbmUgIDQ3KQogIC0gQy16IChYIHdpbmRvd3MpOiAgICAgICAgICAgICAgICAg ICAgICAgRnJhbWUgQ29tbWFuZHMuICAgICAgKGxpbmUgIDEzKQogIC0gQy1cOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IElucHV0IE1ldGhvZC4gKGxpbmUgIDMwKQog IC0gQy1dOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVpdHRpbmcuICAgICAg ICAgICAgKGxpbmUgIDY2KQogIC0gQy1eIChJbmNyZW1lbnRhbCBTZWFyY2gpOiAgICAgICAgICAg ICAgU3BlY2lhbCBJc2VhcmNoLiAgICAgKGxpbmUgIDQ2KQogIC0gQy1fOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVW5kby4gICAgICAgICAgICAgICAgKGxpbmUgIDIxKQogIC0g Qy1fIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAg ICAgKGxpbmUgMTQyKQogIC0gZCAoQnVmZmVyIE1lbnUpOiAgICAgICAgICAgICAgICAgICAgICAg U2V2ZXJhbCBCdWZmZXJzLiAgICAgKGxpbmUgIDI5KQogIC0gZCAoQ2FsZW5kYXIgbW9kZSk6ICAg ICAgICAgICAgICAgICAgICAgRGlzcGxheWluZyB0aGUgRGlhcnkuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI4KQog IC0gZCAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWQgRGVsZXRpb24u ICAgICAgKGxpbmUgIDE5KQogIC0gRCAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUgIDQ4KQogIC0gRCAoR0RCIEJyZWFrcG9pbnRz IGJ1ZmZlcik6ICAgICAgICAgICAgQnJlYWtwb2ludHMgQnVmZmVyLiAgKGxpbmUgIDE4KQogIC0g RCAoR0RCIHNwZWVkYmFyKTogICAgICAgICAgICAgICAgICAgICAgV2F0Y2ggRXhwcmVzc2lvbnMu ICAgKGxpbmUgIDI1KQogIC0gZCAoR0RCIHRocmVhZHMgYnVmZmVyKTogICAgICAgICAgICAgICAg VGhyZWFkcyBCdWZmZXIuICAgICAgKGxpbmUgIDMxKQogIC0gZCAoUm1haWwpOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUm1haWwgRGVsZXRpb24uICAgICAgKGxpbmUgIDI2KQogIC0gREVM IChhbmQgbWFqb3IgbW9kZXMpOiAgICAgICAgICAgICAgICAgTWFqb3IgTW9kZXMuICAgICAgICAg KGxpbmUgICA2KQogIC0gREVMIChCdWZmZXIgTWVudSk6ICAgICAgICAgICAgICAgICAgICAgU2V2 ZXJhbCBCdWZmZXJzLiAgICAgKGxpbmUgIDUzKQogIC0gREVMIChEaXJlZCk6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGlyZWQgRGVsZXRpb24uICAgICAgKGxpbmUgIDMwKQogIC0gREVMIChE b2NWaWV3IG1vZGUpOiAgICAgICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxp bmUgIDIwKQogIC0gREVMIChHbnVzIEdyb3VwIG1vZGUpOiAgICAgICAgICAgICAgICAgR251cyBH cm91cCBCdWZmZXIuICAgKGxpbmUgIDQxKQogIC0gREVMIChHbnVzIFN1bW1hcnkgbW9kZSk6ICAg ICAgICAgICAgICAgR251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgIDE2KQogIC0gREVMIChNUy1E T1MpOiAgICAgICAgICAgICAgICAgICAgICAgICAgTVMtRE9TIEtleWJvYXJkLiAgICAgKGxpbmUg ICA2KQogIC0gREVMIChwcm9ncmFtbWluZyBtb2Rlcyk6ICAgICAgICAgICAgICAgUHJvZ3JhbSBN b2Rlcy4gICAgICAgKGxpbmUgIDMxKQogIC0gREVMIChSbWFpbCk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgUm1haWwgU2Nyb2xsaW5nLiAgICAgKGxpbmUgIDIxKQogIC0gREVMIChWaWV3IG1v ZGUpOiAgICAgICAgICAgICAgICAgICAgICAgVmlldyBNb2RlLiAgICAgICAgICAgKGxpbmUgICA2 KQogIC0gRE9XTjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50 LiAgICAgICAgKGxpbmUgIDM0KQogIC0gRE9XTiAobWluaWJ1ZmZlciBoaXN0b3J5KTogICAgICAg ICAgICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAgKGxpbmUgIDU0KQogIC0gZSAoRGlyZWQpOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWQgVmlzaXRpbmcuICAgICAgKGxpbmUgIDE4KQog IC0gZSAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm1haWwgRWRpdGluZy4g ICAgICAgKGxpbmUgIDE1KQogIC0gZSAoVmlldyBtb2RlKTogICAgICAgICAgICAgICAgICAgICAg ICAgVmlldyBNb2RlLiAgICAgICAgICAgKGxpbmUgIDEzKQogIC0gRU5EOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgIDQ5KQogIC0g RVNDIEVTQyBFU0M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVpdHRpbmcuICAgICAgICAg ICAgKGxpbmUgIDc0KQogIC0gZiAoQnVmZmVyIE1lbnUpOiAgICAgICAgICAgICAgICAgICAgICAg U2V2ZXJhbCBCdWZmZXJzLiAgICAgKGxpbmUgIDkyKQogIC0gZiAoRGlyZWQpOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGlyZWQgVmlzaXRpbmcuICAgICAgKGxpbmUgIDEyKQogIC0gZiAo R0RCIHRocmVhZHMgYnVmZmVyKTogICAgICAgICAgICAgICAgVGhyZWFkcyBCdWZmZXIuICAgICAg KGxpbmUgIDM1KQogIC0gZiAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm1h aWwgUmVwbHkuICAgICAgICAgKGxpbmUgIDY4KQogIC0gRjE6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSGVscC4gICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gRjEwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVudSBCYXIuICAgICAgICAgICAgKGxp bmUgIDIyKQogIC0gRjExOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUg Q29tbWFuZHMuICAgICAgKGxpbmUgIDI4KQogIC0gRjIgMTogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVHdvLUNvbHVtbi4gICAgICAgICAgKGxpbmUgIDU4KQogIC0gRjIgMjogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHdvLUNvbHVtbi4gICAgICAgICAgKGxpbmUg IDExKQogIC0gRjIgYjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHdvLUNvbHVt bi4gICAgICAgICAgKGxpbmUgIDM0KQogIC0gRjIgZDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVHdvLUNvbHVtbi4gICAgICAgICAgKGxpbmUgIDYzKQogIC0gRjIgUkVUOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVHdvLUNvbHVtbi4gICAgICAgICAgKGxpbmUgIDUz KQogIC0gRjIgczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHdvLUNvbHVtbi4g ICAgICAgICAgKGxpbmUgIDIxKQogIC0gRjM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQmFzaWMgS2V5Ym9hcmQgTWFjcm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI1KQogIC0gRjQ6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgS2V5Ym9hcmQgTWFjcm8uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDI1KQogIC0gRyAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Bl cmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUgIDgxKQogIC0gZyAoRGlyZWQpOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRGlyZWQgVXBkYXRpbmcuICAgICAgKGxpbmUgIDI5KQogIC0gZyAoUm1h aWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm1haWwgRmlsZXMuICAgICAgICAgKGxp bmUgIDQ5KQogIC0gZyBDSEFSIChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgRnJvbSBP dGhlciBDYWxlbmRhci4gKGxpbmUgIDEwKQogIC0gZyBkIChDYWxlbmRhciBtb2RlKTogICAgICAg ICAgICAgICAgICAgU3BlY2lmaWVkIERhdGVzLiAgICAgKGxpbmUgIDIwKQogIC0gZyBEIChDYWxl bmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgU3BlY2lmaWVkIERhdGVzLiAgICAgKGxpbmUg IDI1KQogIC0gZyBtIChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgTWF5YW4gQ2Fs ZW5kYXIuICAgICAgKGxpbmUgIDM2KQogIC0gZyB3IChDYWxlbmRhciBtb2RlKTogICAgICAgICAg ICAgICAgICAgU3BlY2lmaWVkIERhdGVzLiAgICAgKGxpbmUgIDI1KQogIC0gSCAoQ2FsZW5kYXIg bW9kZSk6ICAgICAgICAgICAgICAgICAgICAgV3JpdGluZyBDYWxlbmRhciBGaWxlcy4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgMjQpCiAgLSBoIChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBIb2xp ZGF5cy4gICAgICAgICAgICAobGluZSAgMjYpCiAgLSBIIChEaXJlZCk6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAgNjQpCiAgLSBoIChSbWFp bCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGlu ZSAgMzEpCiAgLSBIT01FOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3Zpbmcg UG9pbnQuICAgICAgICAobGluZSAgNDUpCiAgLSBpIChEaXJlZCk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTdWJkaXJlY3RvcmllcyBpbiBEaXJlZC4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTgpCiAgLSBp IChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBGaWxlcy4gICAgICAg ICAobGluZSAgMjApCiAgLSBpIGEgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBT cGVjaWFsIERpYXJ5IEVudHJpZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI2KQogIC0gaSBiIChDYWxlbmRhciBt b2RlKTogICAgICAgICAgICAgICAgICAgU3BlY2lhbCBEaWFyeSBFbnRyaWVzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICA1MSkKICAtIGkgYyAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgIFNwZWNpYWwg RGlhcnkgRW50cmllcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgNTYpCiAgLSBpIGQgKENhbGVuZGFyIG1vZGUpOiAg ICAgICAgICAgICAgICAgICBBZGRpbmcgdG8gRGlhcnkuICAgICAobGluZSAgMjQpCiAgLSBpIG0g KENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBBZGRpbmcgdG8gRGlhcnkuICAgICAo bGluZSAgMjkpCiAgLSBpIHcgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBBZGRp bmcgdG8gRGlhcnkuICAgICAobGluZSAgMjkpCiAgLSBpIHkgKENhbGVuZGFyIG1vZGUpOiAgICAg ICAgICAgICAgICAgICBBZGRpbmcgdG8gRGlhcnkuICAgICAobGluZSAgMjkpCiAgLSBJTlNFUlQ6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaW5vciBNb2Rlcy4gICAgICAgICAobGlu ZSAgODMpCiAgLSBqIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBO YXZpZ2F0aW9uLiAgICAobGluZSAgMTcpCiAgLSBqIChSbWFpbCk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgODMpCiAgLSBrIChEaXJlZCk6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBVcGRhdGluZy4gICAgICAobGluZSAg NTEpCiAgLSBrIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBMYWJl bHMuICAgICAgICAobGluZSAgMzApCiAgLSBMIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxMzQpCiAgLSBsIChEaXJlZCk6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBVcGRhdGluZy4gICAgICAobGluZSAgMzQp CiAgLSBsIChHREIgdGhyZWFkcyBidWZmZXIpOiAgICAgICAgICAgICAgICBUaHJlYWRzIEJ1ZmZl ci4gICAgICAobGluZSAgMzkpCiAgLSBsIChHbnVzIEdyb3VwIG1vZGUpOiAgICAgICAgICAgICAg ICAgICBHbnVzIEdyb3VwIEJ1ZmZlci4gICAobGluZSAgMTIpCiAgLSBMIChHbnVzIEdyb3VwIG1v ZGUpOiAgICAgICAgICAgICAgICAgICBHbnVzIEdyb3VwIEJ1ZmZlci4gICAobGluZSAgMTgpCiAg LSBsIChIZWxwIG1vZGUpOiAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIE1vZGUuICAgICAg ICAgICAobGluZSAgMjkpCiAgLSBsIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAgMzYpCiAgLSBMRUZUOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgMjkpCiAgLSBM RUZULCBhbmQgYmlkaXJlY3Rpb25hbCB0ZXh0OiAgICAgICAgICBCaWRpcmVjdGlvbmFsIEVkaXRp bmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDc5KQogIC0gbSAoQnVmZmVyIE1lbnUpOiAgICAgICAgICAgICAgICAg ICAgICAgU2V2ZXJhbCBCdWZmZXJzLiAgICAgKGxpbmUgMTE3KQogIC0gTSAoQ2FsZW5kYXIgbW9k ZSk6ICAgICAgICAgICAgICAgICAgICAgTHVuYXIgUGhhc2VzLiAgICAgICAgKGxpbmUgIDE3KQog IC0gbSAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgRGlzcGxheWluZyB0aGUg RGlhcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDQzKQogIC0gbSAoRGlyZWQpOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDE3KQogIC0gTSAoRGlyZWQpOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUgIDc2 KQogIC0gbSAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUm1haWwgUmVwbHku ICAgICAgICAgKGxpbmUgMTAwKQogIC0gTS0hOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2luZ2xlIFNoZWxsLiAgICAgICAgKGxpbmUgICA2KQogIC0gTS0kOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3BlbGxpbmcuICAgICAgICAgICAgKGxpbmUgIDQwKQog IC0gTS0kIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkaW5nIFN1YmRpcmVj dG9yaWVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICAxNSkKICAtIE0tJTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFF1ZXJ5IFJlcGxhY2UuICAgICAgIChsaW5lICAxMSkKICAtIE0tJSAoSW5jcmVt ZW50YWwgc2VhcmNoKTogICAgICAgICAgICAgIFNwZWNpYWwgSXNlYXJjaC4gICAgIChsaW5lICA2 NykKICAtIE0tJjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmdsZSBTaGVs bC4gICAgICAgIChsaW5lICAzNSkKICAtIE0tJzogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEV4cGFuZGluZyBBYmJyZXZzLiAgIChsaW5lICAzNSkKICAtIE0tLDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExvb2tpbmcgVXAgSWRlbnRpZmllcnMuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDYwKQogIC0gTS0tOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJndW1l bnRzLiAgICAgICAgICAgKGxpbmUgIDE1KQogIC0gTS0tIE0tYzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRml4aW5nIENhc2UuICAgICAgICAgKGxpbmUgIDEzKQogIC0gTS0tIE0tbDog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRml4aW5nIENhc2UuICAgICAgICAgKGxpbmUg IDEzKQogIC0gTS0tIE0tdTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRml4aW5nIENh c2UuICAgICAgICAgKGxpbmUgIDEzKQogIC0gTS0uOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9va2luZyBVcCBJZGVudGlmaWVycy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjYpCiAgLSBNLS86 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEeW5hbWljIEFiYnJldnMuICAgICAo bGluZSAgMTIpCiAgLSBNLTE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmd1 bWVudHMuICAgICAgICAgICAobGluZSAgMTUpCiAgLSBNLTs6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDb21tZW50IENvbW1hbmRzLiAgICAobGluZSAgMjcpCiAgLSBNLTw6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGlu ZSAgODMpCiAgLSBNLTwgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBNb3ZlIHRv IEJlZ2lubmluZyBvciBFbmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE3KQogIC0gTS08IChEb2NWaWV3IG1vZGUp OiAgICAgICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDI1KQogIC0g TS09OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gSW5mby4gICAg ICAgKGxpbmUgIDQ1KQogIC0gTS09IChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAg Q291bnRpbmcgRGF5cy4gICAgICAgKGxpbmUgIDEwKQogIC0gTS0+OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgIDg4KQogIC0gTS0+ IChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgTW92ZSB0byBCZWdpbm5pbmcgb3Ig RW5kLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAxOSkKICAtIE0tPiAoRG9jVmlldyBtb2RlKTogICAgICAgICAgICAg ICAgICAgIERvY1ZpZXcgTmF2aWdhdGlvbi4gIChsaW5lICAyNSkKICAtIE0tPzogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgU2VhcmNoLiAgIChsaW5lICAyOCkK ICAtIE0tPyAoTnJvZmYgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIE5yb2ZmIE1vZGUuICAg ICAgICAgIChsaW5lICAxNSkKICAtIE0tPyAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAg ICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lICAyOSkKICAtIE0tQDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1hcmtpbmcgT2JqZWN0cy4gICAgIChsaW5lICAyOCkKICAt IE0tQCA8MT46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmRzLiAgICAgICAgICAg ICAgIChsaW5lICA1NikKICAtIE0tYTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNlbnRlbmNlcy4gICAgICAgICAgIChsaW5lICAxOSkKICAtIE0tYSAoQyBtb2RlKTogICAgICAg ICAgICAgICAgICAgICAgICAgIE1vdGlvbiBpbiBDLiAgICAgICAgIChsaW5lICA0MCkKICAtIE0t YSAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgIE1vdmUgdG8gQmVnaW5uaW5nIG9y IEVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgMTMpCiAgLSBNLWI6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBXb3Jkcy4gICAgICAgICAgICAgICAobGluZSAgMjYpCiAgLSBNLWM6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlLiAgICAgICAgICAgICAgICAobGluZSAgMjAp CiAgLSBNLWMgKEluY3JlbWVudGFsIHNlYXJjaCk6ICAgICAgICAgICAgICBMYXggU2VhcmNoLiAg ICAgICAgICAobGluZSAgNjEpCiAgLSBNLWNvbG9uOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXNwIEV2YWwuICAgICAgICAgICAobGluZSAgMzEpCiAgLSBNLWQ6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBXb3Jkcy4gICAgICAgICAgICAgICAobGluZSAgMzUpCiAg LSBNLURFTDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3Jkcy4gICAgICAgICAg ICAgICAobGluZSAgNDMpCiAgLSBNLURFTCAoQnVmZmVyIE1lbnUpOiAgICAgICAgICAgICAgICAg ICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNTcpCiAgLSBNLURFTCAoRGlyZWQpOiAgICAg ICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgNjUpCiAgLSBN LURPV04gKE9yZyBNb2RlKTogICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAg ICAobGluZSAgMjkpCiAgLSBNLURyYWctbW91c2UtMTogICAgICAgICAgICAgICAgICAgICAgICBT ZWNvbmRhcnkgU2VsZWN0aW9uLiAobGluZSAgMTEpCiAgLSBNLWU6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTZW50ZW5jZXMuICAgICAgICAgICAobGluZSAgMTkpCiAgLSBNLWUg KEMgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgICAgICBNb3Rpb24gaW4gQy4gICAgICAgICAo bGluZSAgNDkpCiAgLSBNLWUgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBNb3Zl IHRvIEJlZ2lubmluZyBvciBFbmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE1KQogIC0gTS1lIChJbmNyZW1lbnRh bCBzZWFyY2gpOiAgICAgICAgICAgICAgUmVwZWF0IElzZWFyY2guICAgICAgKGxpbmUgIDUyKQog IC0gTS1mOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV29yZHMuICAgICAgICAg ICAgICAgKGxpbmUgIDI2KQogIC0gTS1GMTA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRnJhbWUgQ29tbWFuZHMuICAgICAgKGxpbmUgIDI0KQogIC0gTS1nIGM6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgMTA0KQogIC0g TS1nIGc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAg ICAgKGxpbmUgMTA5KQogIC0gTS1nIE0tZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgMTA5KQogIC0gTS1nIE0tbjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ29tcGlsYXRpb24gTW9kZS4gICAgKGxpbmUgIDQ4KQogIC0gTS1n IG46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGlsYXRpb24gTW9kZS4gICAg KGxpbmUgIDQ4KQogIC0gTS1nIFRBQjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92 aW5nIFBvaW50LiAgICAgICAgKGxpbmUgMTE4KQogIC0gTS1oOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUGFyYWdyYXBocy4gICAgICAgICAgKGxpbmUgIDIzKQogIC0gTS1pOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZW50YXRpb24gQ29tbWFuZHMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDIyKQogIC0gTS1qOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TXVsdGktTGluZSBDb21tZW50cy4gKGxpbmUgICA2KQogIC0gTS1qIGIgKEVucmljaGVkIG1vZGUp OiAgICAgICAgICAgICAgICAgRW5yaWNoZWQgSnVzdGlmaWNhdGlvbi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTcp CiAgLSBNLWogYyAoRW5yaWNoZWQgbW9kZSk6ICAgICAgICAgICAgICAgICBFbnJpY2hlZCBKdXN0 aWZpY2F0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAyMSkKICAtIE0taiBsIChFbnJpY2hlZCBtb2RlKTogICAg ICAgICAgICAgICAgIEVucmljaGVkIEp1c3RpZmljYXRpb24uCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDExKQogIC0g TS1qIHIgKEVucmljaGVkIG1vZGUpOiAgICAgICAgICAgICAgICAgRW5yaWNoZWQgSnVzdGlmaWNh dGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgMTQpCiAgLSBNLWogdSAoRW5yaWNoZWQgbW9kZSk6ICAgICAgICAg ICAgICAgICBFbnJpY2hlZCBKdXN0aWZpY2F0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNSkKICAtIE0tazog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbnRlbmNlcy4gICAgICAgICAgIChs aW5lICAzMCkKICAtIE0tbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhc2Uu ICAgICAgICAgICAgICAgIChsaW5lICAyMCkKICAtIE0tTEVGVDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lICA2NSkKICAtIE0tTEVGVCAo T3JnIE1vZGUpOiAgICAgICAgICAgICAgICAgICAgIE9yZyBNb2RlLiAgICAgICAgICAgIChsaW5l ICAyOSkKICAtIE0tbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGVudGF0 aW9uIENvbW1hbmRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAxNikKICAtIE0tbSAoUm1haWwpOiAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJtYWlsIFJlcGx5LiAgICAgICAgIChsaW5lICA1NykKICAtIE0tbW91 c2UtMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY29uZGFyeSBTZWxlY3Rpb24uIChs aW5lICAyMikKICAtIE0tbW91c2UtMjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY29u ZGFyeSBTZWxlY3Rpb24uIChsaW5lICAzMykKICAtIE0tbW91c2UtMzogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNlY29uZGFyeSBTZWxlY3Rpb24uIChsaW5lICAyNikKICAtIE0tbiAoSW5j cmVtZW50YWwgc2VhcmNoKTogICAgICAgICAgICAgIFJlcGVhdCBJc2VhcmNoLiAgICAgIChsaW5l ICA0NCkKICAtIE0tbiAoTG9nIEVkaXQgbW9kZSk6ICAgICAgICAgICAgICAgICAgIExvZyBCdWZm ZXIuICAgICAgICAgIChsaW5lICA1NSkKICAtIE0tbiAoTWFuIG1vZGUpOiAgICAgICAgICAgICAg ICAgICAgICAgIE1hbiBQYWdlLiAgICAgICAgICAgIChsaW5lICAzMikKICAtIE0tbiAobWluaWJ1 ZmZlciBoaXN0b3J5KTogICAgICAgICAgICAgIE1pbmlidWZmZXIgSGlzdG9yeS4gIChsaW5lICAz MCkKICAtIE0tbiAoTnJvZmYgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIE5yb2ZmIE1vZGUu ICAgICAgICAgIChsaW5lICAxNSkKICAtIE0tbiAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJtYWlsIE1vdGlvbi4gICAgICAgIChsaW5lICA0NikKICAtIE0tbiAoU2hlbGwgbW9k ZSk6ICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIFJpbmcuICAgICAgICAgIChsaW5lICAxMCkK ICAtIE0tbyBiIChFbnJpY2hlZCBtb2RlKTogICAgICAgICAgICAgICAgIEVucmljaGVkIEZhY2Vz LiAgICAgIChsaW5lICAxNSkKICAtIE0tbyBkIChFbnJpY2hlZCBtb2RlKTogICAgICAgICAgICAg ICAgIEVucmljaGVkIEZhY2VzLiAgICAgIChsaW5lICAxMikKICAtIE0tbyBpIChFbnJpY2hlZCBt b2RlKTogICAgICAgICAgICAgICAgIEVucmljaGVkIEZhY2VzLiAgICAgIChsaW5lICAxOCkKICAt IE0tbyBsIChFbnJpY2hlZCBtb2RlKTogICAgICAgICAgICAgICAgIEVucmljaGVkIEZhY2VzLiAg ICAgIChsaW5lICAyMSkKICAtIE0tbyBNLXMgKFRleHQgbW9kZSk6ICAgICAgICAgICAgICAgICAg IEZpbGwgQ29tbWFuZHMuICAgICAgIChsaW5lICA0NikKICAtIE0tbyBvIChFbnJpY2hlZCBtb2Rl KTogICAgICAgICAgICAgICAgIEVucmljaGVkIEZhY2VzLiAgICAgIChsaW5lICAyNykKICAtIE0t byB1IChFbnJpY2hlZCBtb2RlKTogICAgICAgICAgICAgICAgIEVucmljaGVkIEZhY2VzLiAgICAg IChsaW5lICAyNCkKICAtIE0tcCAoSW5jcmVtZW50YWwgc2VhcmNoKTogICAgICAgICAgICAgIFJl cGVhdCBJc2VhcmNoLiAgICAgIChsaW5lICA0NCkKICAtIE0tcCAoTG9nIEVkaXQgbW9kZSk6ICAg ICAgICAgICAgICAgICAgIExvZyBCdWZmZXIuICAgICAgICAgIChsaW5lICA1NSkKICAtIE0tcCAo TWFuIG1vZGUpOiAgICAgICAgICAgICAgICAgICAgICAgIE1hbiBQYWdlLiAgICAgICAgICAgIChs aW5lICAzMikKICAtIE0tcCAobWluaWJ1ZmZlciBoaXN0b3J5KTogICAgICAgICAgICAgIE1pbmli dWZmZXIgSGlzdG9yeS4gIChsaW5lICAzMCkKICAtIE0tcCAoTnJvZmYgbW9kZSk6ICAgICAgICAg ICAgICAgICAgICAgIE5yb2ZmIE1vZGUuICAgICAgICAgIChsaW5lICAxNSkKICAtIE0tcCAoUm1h aWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIE1vdGlvbi4gICAgICAgIChsaW5l ICA0NikKICAtIE0tcCAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIFJp bmcuICAgICAgICAgIChsaW5lICAgNikKICAtIE0tcTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZpbGwgQ29tbWFuZHMuICAgICAgIChsaW5lICAxNykKICAtIE0tcSAoQyBtb2Rl KTogICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIEMgQ29tbWFuZHMuICAgIChsaW5lICAy OCkKICAtIE0tcSAoRm9ydHJhbiBtb2RlKTogICAgICAgICAgICAgICAgICAgIEZvckluZGVudCBD b21tYW5kcy4gIChsaW5lICAzNSkKICAtIE0tcjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lICA3MCkKICAtIE0tciAoR251cyBTdW1t YXJ5IG1vZGUpOiAgICAgICAgICAgICAgIEdudXMgU3VtbWFyeSBCdWZmZXIuIChsaW5lICAzNykK ICAtIE0tciAoSW5jcmVtZW50YWwgU2VhcmNoKTogICAgICAgICAgICAgIFNwZWNpYWwgSXNlYXJj aC4gICAgIChsaW5lICAyNSkKICAtIE0tciAoTG9nIEVkaXQgbW9kZSk6ICAgICAgICAgICAgICAg ICAgIExvZyBCdWZmZXIuICAgICAgICAgIChsaW5lICA1NSkKICAtIE0tciAobWluaWJ1ZmZlciBo aXN0b3J5KTogICAgICAgICAgICAgIE1pbmlidWZmZXIgSGlzdG9yeS4gIChsaW5lICA2NCkKICAt IE0tciAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIFJpbmcuICAgICAg ICAgIChsaW5lICAxNCkKICAtIE0tUklHSFQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lICA1NikKICAtIE0tUklHSFQgKE9yZyBNb2RlKTog ICAgICAgICAgICAgICAgICAgIE9yZyBNb2RlLiAgICAgICAgICAgIChsaW5lICAyOSkKICAtIE0t cyAnIChJbmNyZW1lbnRhbCBTZWFyY2gpOiAgICAgICAgICAgIExheCBTZWFyY2guICAgICAgICAg IChsaW5lICA5MSkKICAtIE0tUyAoRW5yaWNoZWQgbW9kZSk6ICAgICAgICAgICAgICAgICAgIEVu cmljaGVkIEp1c3RpZmljYXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIxKQogIC0gTS1zIChHbnVzIFN1bW1h cnkgbW9kZSk6ICAgICAgICAgICAgICAgR251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgIDMzKQog IC0gTS1zIChMb2cgRWRpdCBtb2RlKTogICAgICAgICAgICAgICAgICAgTG9nIEJ1ZmZlci4gICAg ICAgICAgKGxpbmUgIDU1KQogIC0gTS1zIChtaW5pYnVmZmVyIGhpc3RvcnkpOiAgICAgICAgICAg ICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAgKGxpbmUgIDY0KQogIC0gTS1zIChSbWFpbCk6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgUm1haWwgTW90aW9uLiAgICAgICAgKGxpbmUgIDYwKQogIC0g TS1zIC46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3ltYm9sIFNlYXJjaC4gICAg ICAgKGxpbmUgIDI3KQogIC0gTS1zIGEgQy1zIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAg TWlzYyBEaXJlZCBGZWF0dXJlcy4gKGxpbmUgIDEwKQogIC0gTS1zIGEgTS1DLXMgKERpcmVkKTog ICAgICAgICAgICAgICAgICAgTWlzYyBEaXJlZCBGZWF0dXJlcy4gKGxpbmUgIDEwKQogIC0gTS1z IGMgKEluY3JlbWVudGFsIHNlYXJjaCk6ICAgICAgICAgICAgTGF4IFNlYXJjaC4gICAgICAgICAg KGxpbmUgIDYxKQogIC0gTS1zIEMtZSAoSW5jcmVtZW50YWwgc2VhcmNoKTogICAgICAgICAgSXNl YXJjaCBZYW5rLiAgICAgICAgKGxpbmUgIDE1KQogIC0gTS1zIGYgQy1zIChEaXJlZCk6ICAgICAg ICAgICAgICAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4gICAgKGxpbmUgIDIwKQogIC0gTS1zIGYg TS1DLXMgKERpcmVkKTogICAgICAgICAgICAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4gICAgKGxp bmUgIDIwKQogIC0gTS1zIGggLjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxp Z2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDcxKQogIC0gTS1zIGggZjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDg4KQogIC0gTS1zIGggbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0 IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDU5KQogIC0gTS1zIGggcDogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDY0 KQogIC0gTS1zIGggcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IElu dGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gTS1zIGggciAoSW5jcmVtZW50YWwgU2Vh cmNoKTogICAgICAgICAgU3BlY2lhbCBJc2VhcmNoLiAgICAgKGxpbmUgIDgwKQogIC0gTS1zIGgg dTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHku CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDQ3KQogIC0gTS1zIGggdzogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc2KQogIC0gTS1zIGkgKElu Y3JlbWVudGFsIHNlYXJjaCk6ICAgICAgICAgICAgU3BlY2lhbCBJc2VhcmNoLiAgICAgKGxpbmUg IDIyKQogIC0gTS1zIE0tdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV29yZCBTZWFy Y2guICAgICAgICAgKGxpbmUgIDU1KQogIC0gTS1zIG86ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDEpCiAgLSBNLXMg byAoSW5jcmVtZW50YWwgU2VhcmNoKTogICAgICAgICAgICBTcGVjaWFsIElzZWFyY2guICAgICAo bGluZSAgNjMpCiAgLSBNLXMgciAoSW5jcmVtZW50YWwgU2VhcmNoKTogICAgICAgICAgICBTcGVj aWFsIElzZWFyY2guICAgICAobGluZSAgMjUpCiAgLSBNLXMgU1BDIChJbmNyZW1lbnRhbCBzZWFy Y2gpOiAgICAgICAgICBMYXggU2VhcmNoLiAgICAgICAgICAobGluZSAgMTUpCiAgLSBNLXMgdzog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JkIFNlYXJjaC4gICAgICAgICAobGlu ZSAgMjcpCiAgLSBNLXMgXzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2wg U2VhcmNoLiAgICAgICAobGluZSAgMjcpCiAgLSBNLVNQQzogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEZWxldGlvbi4gICAgICAgICAgICAobGluZSAgNDApCiAgLSBNLXQ6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc3Bvc2UuICAgICAgICAgICAobGluZSAg MjkpCiAgLSBNLVRBQjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2wgQ29t cGxldGlvbi4gICAobGluZSAgIDkpCiAgLSBNLVRBQiAoY3VzdG9taXphdGlvbiBidWZmZXIpOiAg ICAgICAgICBDaGFuZ2luZyBhIFZhcmlhYmxlLiAobGluZSAgNTMpCiAgLSBNLVRBQiAoSW5jcmVt ZW50YWwgc2VhcmNoKTogICAgICAgICAgICBTcGVjaWFsIElzZWFyY2guICAgICAobGluZSAgNzIp CiAgLSBNLVRBQiAoUGljdHVyZSBtb2RlKTogICAgICAgICAgICAgICAgICBUYWJzIGluIFBpY3R1 cmUuICAgICAobGluZSAgIDYpCiAgLSBNLVRBQiAoVGV4dCBtb2RlKTogICAgICAgICAgICAgICAg ICAgICBUZXh0IE1vZGUuICAgICAgICAgICAobGluZSAgMzYpCiAgLSBNLVRBQiwgKE1TLVdpbmRv d3MpOiAgICAgICAgICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAgNDgpCiAg LSBNLXU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlLiAgICAgICAgICAg ICAgICAobGluZSAgMjApCiAgLSBNLVVQIChPcmcgTW9kZSk6ICAgICAgICAgICAgICAgICAgICAg ICBPcmcgTW9kZS4gICAgICAgICAgICAobGluZSAgMjkpCiAgLSBNLXY6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAxMDApCiAgLSBN LXYgPDE+OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAg ICAobGluZSAgMzUpCiAgLSBNLXYgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBT Y3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAgMzMpCiAgLSBNLXc6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPdGhlciBLaWxsIENvbW1hbmRzLiAobGluZSAgMjUpCiAgLSBNLXg6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNLXguICAgICAgICAgICAgICAgICAo bGluZSAgMTcpCiAgLSBNLXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFYXJs aWVyIEtpbGxzLiAgICAgICAobGluZSAgMTEpCiAgLSBNLXkgKEluY3JlbWVudGFsIHNlYXJjaCk6 ICAgICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGluZSAgMjApCiAgLSBNLXo6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlciBLaWxsIENvbW1hbmRzLiAobGlu ZSAgMzcpCiAgLSBNLVw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxldGlv bi4gICAgICAgICAgICAobGluZSAgNDApCiAgLSBNLV46ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRlbnRhdGlvbiBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzMpCiAgLSBNLV4g KEZvcnRyYW4gbW9kZSk6ICAgICAgICAgICAgICAgICAgICBGb3JJbmRlbnQgQ29tbWFuZHMuICAo bGluZSAgMzApCiAgLSBNLWA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51 IEJhci4gICAgICAgICAgICAobGluZSAgMzIpCiAgLSBNLXs6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAgICAgICAgICAobGluZSAgMTYpCiAgLSBNLXsgKENh bGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBVbml0IE1vdGlvbi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgMzYpCiAgLSBNLXsgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBN YXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgODQpCiAgLSBNLXw6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTaW5nbGUgU2hlbGwuICAgICAgICAobGluZSAgNTUpCiAgLSBNLX06 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAgICAgICAgICAo bGluZSAgMTYpCiAgLSBNLX0gKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBDYWxl bmRhciBVbml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzYpCiAgLSBNLX0gKERpcmVkKTogICAgICAg ICAgICAgICAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgICAobGluZSAgNzkpCiAgLSBN LX46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYXZlIENvbW1hbmRzLiAgICAg ICAobGluZSAgNjgpCiAgLSBtb3VzZS0xOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN b3VzZSBDb21tYW5kcy4gICAgICAobGluZSAgIDYpCiAgLSBtb3VzZS0xIChtb2RlIGxpbmUpOiAg ICAgICAgICAgICAgICAgICBNb2RlIExpbmUgTW91c2UuICAgICAobGluZSAgMTYpCiAgLSBtb3Vz ZS0xIChvbiBidXR0b25zKTogICAgICAgICAgICAgICAgICBNb3VzZSBSZWZlcmVuY2VzLiAgICAo bGluZSAgIDYpCiAgLSBtb3VzZS0xIChzY3JvbGwgYmFyKTogICAgICAgICAgICAgICAgICBNb2Rl IExpbmUgTW91c2UuICAgICAobGluZSAgMzQpCiAgLSBtb3VzZS0xIGluIHRoZSBtaW5pYnVmZmVy IChJbmNyZW1lbnRhbCBTZWFyY2gpOiBSZXBlYXQgSXNlYXJjaC4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTIpCiAg LSBtb3VzZS0yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4g ICAgICAobGluZSAgIDYpCiAgLSBtb3VzZS0yIChHREIgQnJlYWtwb2ludHMgYnVmZmVyKTogICAg ICBCcmVha3BvaW50cyBCdWZmZXIuICAobGluZSAgMjUpCiAgLSBtb3VzZS0yIChtb2RlIGxpbmUp OiAgICAgICAgICAgICAgICAgICBNb2RlIExpbmUgTW91c2UuICAgICAobGluZSAgMjMpCiAgLSBt b3VzZS0yIChvbiBidXR0b25zKTogICAgICAgICAgICAgICAgICBNb3VzZSBSZWZlcmVuY2VzLiAg ICAobGluZSAgIDYpCiAgLSBtb3VzZS0yIGluIHRoZSBtaW5pYnVmZmVyIChJbmNyZW1lbnRhbCBz ZWFyY2gpOiBJc2VhcmNoIFlhbmsuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIwKQogIC0gbW91c2UtMzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTW91c2UgQ29tbWFuZHMuICAgICAgKGxpbmUgICA2KQog IC0gbW91c2UtMyAobW9kZSBsaW5lKTogICAgICAgICAgICAgICAgICAgTW9kZSBMaW5lIE1vdXNl LiAgICAgKGxpbmUgIDI2KQogIC0gbiAoRG9jVmlldyBtb2RlKTogICAgICAgICAgICAgICAgICAg ICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDE2KQogIC0gbiAoR251cyBHcm91cCBtb2Rl KTogICAgICAgICAgICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxpbmUgIDQ1KQogIC0g biAoR251cyBTdW1tYXJ5IG1vZGUpOiAgICAgICAgICAgICAgICAgR251cyBTdW1tYXJ5IEJ1ZmZl ci4gKGxpbmUgIDIwKQogIC0gbiAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Um1haWwgTW90aW9uLiAgICAgICAgKGxpbmUgIDQ2KQogIC0gbmV4dDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgIDk0KQogIC0gbmV4 dCA8MT46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2Nyb2xsaW5nLiAgICAgICAgICAg KGxpbmUgIDM1KQogIC0gbmV4dCAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgU2Ny b2xsIENhbGVuZGFyLiAgICAgKGxpbmUgIDMzKQogIC0gbmV4dCAoRG9jVmlldyBtb2RlKTogICAg ICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDE2KQogIC0gbyAoQnVm ZmVyIE1lbnUpOiAgICAgICAgICAgICAgICAgICAgICAgU2V2ZXJhbCBCdWZmZXJzLiAgICAgKGxp bmUgIDk2KQogIC0gbyAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgU3BlY2lm aWVkIERhdGVzLiAgICAgKGxpbmUgIDMwKQogIC0gbyAoRGlyZWQpOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGlyZWQgVmlzaXRpbmcuICAgICAgKGxpbmUgIDIxKQogIC0gTyAoRGlyZWQp OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUg IDg1KQogIC0gbyAoT2NjdXIgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXIgUmVw ZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgNjQpCiAgLSBvIChSbWFpbCk6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSbWFpbCBPdXRwdXQuICAgICAgICAobGluZSAgMjApCiAgLSBwIChD YWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAo bGluZSAgIDkpCiAgLSBQIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVy YXRpbmcgb24gRmlsZXMuICAobGluZSAgOTkpCiAgLSBwIChEb2NWaWV3IG1vZGUpOiAgICAgICAg ICAgICAgICAgICAgICBEb2NWaWV3IE5hdmlnYXRpb24uICAobGluZSAgMTYpCiAgLSBwIChHbnVz IEdyb3VwIG1vZGUpOiAgICAgICAgICAgICAgICAgICBHbnVzIEdyb3VwIEJ1ZmZlci4gICAobGlu ZSAgNDkpCiAgLSBwIChHbnVzIFN1bW1hcnkgbW9kZSk6ICAgICAgICAgICAgICAgICBHbnVzIFN1 bW1hcnkgQnVmZmVyLiAobGluZSAgMjQpCiAgLSBwIChSbWFpbCk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgNDYpCiAgLSBwIGQgKENhbGVu ZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBHZW5lcmFsIENhbGVuZGFyLiAgICAobGluZSAg MTgpCiAgLSBQYWdlRG93bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9p bnQuICAgICAgICAobGluZSAgOTQpCiAgLSBQYWdlRG93biA8MT46ICAgICAgICAgICAgICAgICAg ICAgICAgICBTY3JvbGxpbmcuICAgICAgICAgICAobGluZSAgMzUpCiAgLSBQYWdlRG93biAoQ2Fs ZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICBTY3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAgMzMp CiAgLSBQYWdlRG93biAoRG9jVmlldyBtb2RlKTogICAgICAgICAgICAgICBEb2NWaWV3IE5hdmln YXRpb24uICAobGluZSAgMTYpCiAgLSBQYWdlVXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAxMDApCiAgLSBQYWdlVXAgPDE+OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAgICAobGluZSAgMzUpCiAg LSBQYWdlVXAgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICBTY3JvbGwgQ2FsZW5kYXIu ICAgICAobGluZSAgMzMpCiAgLSBQYWdlVXAgKERvY1ZpZXcgbW9kZSk6ICAgICAgICAgICAgICAg ICBEb2NWaWV3IE5hdmlnYXRpb24uICAobGluZSAgMTYpCiAgLSBwcmlvcjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAxMDApCiAgLSBw cmlvciA8MT46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAg ICAobGluZSAgMzUpCiAgLSBwcmlvciAoQ2FsZW5kYXIgbW9kZSk6ICAgICAgICAgICAgICAgICBT Y3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAgMzMpCiAgLSBwcmlvciAoRG9jVmlldyBtb2RlKTog ICAgICAgICAgICAgICAgICBEb2NWaWV3IE5hdmlnYXRpb24uICAobGluZSAgMTYpCiAgLSBxIChC dWZmZXIgTWVudSk6ICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAo bGluZSAgODcpCiAgLSBxIChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBHZW5l cmFsIENhbGVuZGFyLiAgICAobGluZSAgMzMpCiAgLSBxIChEaXJlZCk6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEaXJlZCBFbnRlci4gICAgICAgICAobGluZSAgNTYpCiAgLSBRIChEaXJl ZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGlu ZSAxNTgpCiAgLSBxIChHbnVzIEdyb3VwIG1vZGUpOiAgICAgICAgICAgICAgICAgICBHbnVzIEdy b3VwIEJ1ZmZlci4gICAobGluZSAgNTMpCiAgLSBxIChHbnVzIFN1bW1hcnkgbW9kZSk6ICAgICAg ICAgICAgICAgICBHbnVzIFN1bW1hcnkgQnVmZmVyLiAobGluZSAgNDEpCiAgLSBRIChSbWFpbCBz dW1tYXJ5KTogICAgICAgICAgICAgICAgICAgICBSbWFpbCBTdW1tYXJ5IEVkaXQuICAobGluZSAg OTMpCiAgLSBxIChSbWFpbCBzdW1tYXJ5KTogICAgICAgICAgICAgICAgICAgICBSbWFpbCBTdW1t YXJ5IEVkaXQuICAobGluZSAgOTMpCiAgLSBxIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSbWFpbCBCYXNpY3MuICAgICAgICAobGluZSAgMzUpCiAgLSBxIChWaWV3IG1vZGUp OiAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IE1vZGUuICAgICAgICAgICAobGluZSAgMTMp CiAgLSBSIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpbmcgb24g RmlsZXMuICAobGluZSAgNTUpCiAgLSByIChHREIgdGhyZWFkcyBidWZmZXIpOiAgICAgICAgICAg ICAgICBUaHJlYWRzIEJ1ZmZlci4gICAgICAobGluZSAgNDMpCiAgLSByIChIZWxwIG1vZGUpOiAg ICAgICAgICAgICAgICAgICAgICAgICBIZWxwIE1vZGUuICAgICAgICAgICAobGluZSAgMjkpCiAg LSByIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAg ICAgICAobGluZSAgMjgpCiAgLSBSRVQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbnNlcnRpbmcgVGV4dC4gICAgICAobGluZSAgMTEpCiAgLSBSRVQgKEJ1ZmZlciBNZW51KTog ICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgOTIpCiAgLSBS RVQgKGNvbXBsZXRpb24gaW4gbWluaWJ1ZmZlcik6ICAgICAgICBDb21wbGV0aW9uIEV4aXQuICAg ICAobGluZSAgIDYpCiAgLSBSRVQgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICBE aXJlZCBWaXNpdGluZy4gICAgICAobGluZSAgMTgpCiAgLSBSRVQgKEdEQiBCcmVha3BvaW50cyBi dWZmZXIpOiAgICAgICAgICBCcmVha3BvaW50cyBCdWZmZXIuICAobGluZSAgMjEpCiAgLSBSRVQg KEdEQiBzcGVlZGJhcik6ICAgICAgICAgICAgICAgICAgICBXYXRjaCBFeHByZXNzaW9ucy4gICAo bGluZSAgMjgpCiAgLSBSRVQgKEhlbHAgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgICBIZWxw IE1vZGUuICAgICAgICAgICAobGluZSAgMjkpCiAgLSBSRVQgKE9jY3VyIG1vZGUpOiAgICAgICAg ICAgICAgICAgICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2NCkKICAt IFJFVCAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAg ICAgIChsaW5lICAxMikKICAtIFJJR0hUOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lICAyMikKICAtIFJJR0hULCBhbmQgYmlkaXJlY3Rp b25hbCB0ZXh0OiAgICAgICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNzkp CiAgLSBzIChCdWZmZXIgTWVudSk6ICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZl cnMuICAgICAobGluZSAgMzkpCiAgLSBTIChCdWZmZXIgTWVudSk6ICAgICAgICAgICAgICAgICAg ICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMzEpCiAgLSBTIChDYWxlbmRhciBtb2Rl KTogICAgICAgICAgICAgICAgICAgICBTdW5yaXNlL1N1bnNldC4gICAgICAobGluZSAgMjApCiAg LSBzIChDYWxlbmRhciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBEaXNwbGF5aW5nIHRoZSBE aWFyeS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNjIpCiAgLSBTIChEaXJlZCk6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAgNzApCiAgLSBzIChEaXJlZCk6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBVcGRhdGluZy4gICAgICAobGluZSAgNjcp CiAgLSBzIChHbnVzIFN1bW1hcnkgbW9kZSk6ICAgICAgICAgICAgICAgICBHbnVzIFN1bW1hcnkg QnVmZmVyLiAobGluZSAgMjgpCiAgLSBzIChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSbWFpbCBCYXNpY3MuICAgICAgICAobGluZSAgMjgpCiAgLSBzIChWaWV3IG1vZGUpOiAg ICAgICAgICAgICAgICAgICAgICAgICBWaWV3IE1vZGUuICAgICAgICAgICAobGluZSAgIDYpCiAg LSBTLW1vdXNlLTI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4gICAgICAg ICAgICAobGluZSAgMTkpCiAgLSBTLW1vdXNlLTMgKEZGQVApOiAgICAgICAgICAgICAgICAgICAg ICBGRkFQLiAgICAgICAgICAgICAgICAobGluZSAgNTIpCiAgLSBTLVNQQyAoUm1haWwpOiAgICAg ICAgICAgICAgICAgICAgICAgICBSbWFpbCBTY3JvbGxpbmcuICAgICAobGluZSAgMjEpCiAgLSBT LVRBQiAoY3VzdG9taXphdGlvbiBidWZmZXIpOiAgICAgICAgICBDdXN0b21pemF0aW9uIEdyb3Vw cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgNDcpCiAgLSBTLVRBQiAoSGVscCBtb2RlKTogICAgICAgICAgICAgICAg ICAgICBIZWxwIE1vZGUuICAgICAgICAgICAobGluZSAgNDMpCiAgLSBTLVRBQiAoT3JnIE1vZGUp OiAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAgICAobGluZSAgMjQpCiAg LSBTUEMgKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAgICAgICAgICBHZW5lcmFsIENhbGVuZGFy LiAgICAobGluZSAgMjgpCiAgLSBTUEMgKGNvbXBsZXRpb24pOiAgICAgICAgICAgICAgICAgICAg ICBDb21wbGV0aW9uIENvbW1hbmRzLiAobGluZSAgMjkpCiAgLSBTUEMgKERpcmVkKTogICAgICAg ICAgICAgICAgICAgICAgICAgICBEaXJlZCBOYXZpZ2F0aW9uLiAgICAobGluZSAgMTIpCiAgLSBT UEMgKERvY1ZpZXcgbW9kZSk6ICAgICAgICAgICAgICAgICAgICBEb2NWaWV3IE5hdmlnYXRpb24u ICAobGluZSAgMjApCiAgLSBTUEMgKEdEQiBCcmVha3BvaW50cyBidWZmZXIpOiAgICAgICAgICBC cmVha3BvaW50cyBCdWZmZXIuICAobGluZSAgMTIpCiAgLSBTUEMgKEdudXMgR3JvdXAgbW9kZSk6 ICAgICAgICAgICAgICAgICBHbnVzIEdyb3VwIEJ1ZmZlci4gICAobGluZSAgIDgpCiAgLSBTUEMg KEdudXMgU3VtbWFyeSBtb2RlKTogICAgICAgICAgICAgICBHbnVzIFN1bW1hcnkgQnVmZmVyLiAo bGluZSAgIDgpCiAgLSBTUEMgKEluY3JlbWVudGFsIHNlYXJjaCk6ICAgICAgICAgICAgICBMYXgg U2VhcmNoLiAgICAgICAgICAobGluZSAgMTUpCiAgLSBTUEMgKFJtYWlsKTogICAgICAgICAgICAg ICAgICAgICAgICAgICBSbWFpbCBTY3JvbGxpbmcuICAgICAobGluZSAgMjEpCiAgLSBTUEMgKFZp ZXcgbW9kZSk6ICAgICAgICAgICAgICAgICAgICAgICBWaWV3IE1vZGUuICAgICAgICAgICAobGlu ZSAgIDYpCiAgLSB0IChCdWZmZXIgTWVudSk6ICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFs IEJ1ZmZlcnMuICAgICAobGluZSAgODEpCiAgLSBUIChCdWZmZXIgTWVudSk6ICAgICAgICAgICAg ICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMzYpCiAgLSB0IChDYWxlbmRh ciBtb2RlKTogICAgICAgICAgICAgICAgICAgICBXcml0aW5nIENhbGVuZGFyIEZpbGVzLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA0MSkKICAtIHQgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1h cmtzIHZzIEZsYWdzLiAgICAgIChsaW5lICA4OCkKICAtIFQgKERpcmVkKTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lICA5NCkKICAtIHQgKFJt YWlsKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIERpc3BsYXkuICAgICAgIChs aW5lICAxMikKICAtIFRBQiAoYW5kIG1ham9yIG1vZGVzKTogICAgICAgICAgICAgICAgIE1ham9y IE1vZGVzLiAgICAgICAgIChsaW5lICAgNikKICAtIFRBQiAoY29tcGxldGlvbiBleGFtcGxlKTog ICAgICAgICAgICAgIENvbXBsZXRpb24gRXhhbXBsZS4gIChsaW5lICAgNikKICAtIFRBQiAoY29t cGxldGlvbik6ICAgICAgICAgICAgICAgICAgICAgIENvbXBsZXRpb24gQ29tbWFuZHMuIChsaW5l ICAyNCkKICAtIFRBQiAoY3VzdG9taXphdGlvbiBidWZmZXIpOiAgICAgICAgICAgIEN1c3RvbWl6 YXRpb24gR3JvdXBzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICA0NykKICAtIFRBQiAoR1VEKTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENvbW1hbmRzIG9mIEdVRC4gICAgIChsaW5lIDEwMikKICAtIFRBQiAo SGVscCBtb2RlKTogICAgICAgICAgICAgICAgICAgICAgIEhlbHAgTW9kZS4gICAgICAgICAgIChs aW5lICA0MykKICAtIFRBQiAoaW5kZW50YXRpb24pOiAgICAgICAgICAgICAgICAgICAgIEluZGVu dGF0aW9uLiAgICAgICAgIChsaW5lICAxMykKICAtIFRBQiAoTWVzc2FnZSBtb2RlKTogICAgICAg ICAgICAgICAgICAgIEhlYWRlciBFZGl0aW5nLiAgICAgIChsaW5lICAzOCkKICAtIFRBQiAoT3Jn IE1vZGUpOiAgICAgICAgICAgICAgICAgICAgICAgIE9yZyBNb2RlLiAgICAgICAgICAgIChsaW5l ICAxNikKICAtIFRBQiAocHJvZ3JhbW1pbmcgbW9kZXMpOiAgICAgICAgICAgICAgIEJhc2ljIElu ZGVudC4gICAgICAgIChsaW5lICAxMikKICAtIFRBQiAoU2hlbGwgbW9kZSk6ICAgICAgICAgICAg ICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lICAyMCkKICAtIFRBQiAoVGV4dCBt b2RlKTogICAgICAgICAgICAgICAgICAgICAgIFRleHQgTW9kZS4gICAgICAgICAgIChsaW5lICAx NikKICAtIHUgKEJ1ZmZlciBNZW51KTogICAgICAgICAgICAgICAgICAgICAgIFNldmVyYWwgQnVm ZmVycy4gICAgIChsaW5lICA0OCkKICAtIFUgKEJ1ZmZlciBNZW51KTogICAgICAgICAgICAgICAg ICAgICAgIFNldmVyYWwgQnVmZmVycy4gICAgIChsaW5lICA2MykKICAtIHUgKENhbGVuZGFyIG1v ZGUpOiAgICAgICAgICAgICAgICAgICAgIEhvbGlkYXlzLiAgICAgICAgICAgIChsaW5lICAzMykK ICAtIHUgKERpcmVkIGRlbGV0aW9uKTogICAgICAgICAgICAgICAgICAgIERpcmVkIERlbGV0aW9u LiAgICAgIChsaW5lICAzMCkKICAtIHUgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1hcmtzIHZzIEZsYWdzLiAgICAgIChsaW5lICA0NCkKICAtIFUgKERpcmVkKTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1hcmtzIHZzIEZsYWdzLiAgICAgIChsaW5lICA2MCkKICAt IHUgKEdudXMgR3JvdXAgbW9kZSk6ICAgICAgICAgICAgICAgICAgIEdudXMgR3JvdXAgQnVmZmVy LiAgIChsaW5lICAyOSkKICAtIHUgKFJtYWlsKTogICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJtYWlsIERlbGV0aW9uLiAgICAgIChsaW5lICA0MSkKICAtIFVQOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lICA0MCkKICAtIFVQ IChtaW5pYnVmZmVyIGhpc3RvcnkpOiAgICAgICAgICAgICAgIE1pbmlidWZmZXIgSGlzdG9yeS4g IChsaW5lICA1NCkKICAtIHYgKEJ1ZmZlciBNZW51KTogICAgICAgICAgICAgICAgICAgICAgIFNl dmVyYWwgQnVmZmVycy4gICAgIChsaW5lIDEyMykKICAtIHYgKERpcmVkKTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIERpcmVkIFZpc2l0aW5nLiAgICAgIChsaW5lICAzOCkKICAtIHYgKFJt YWlsKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIERpc3BsYXkuICAgICAgIChs aW5lICA1NikKICAtIHcgKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2Mg RGlyZWQgRmVhdHVyZXMuIChsaW5lICAxOSkKICAtIFcgKERpcmVkKTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE1pc2MgRGlyZWQgRmVhdHVyZXMuIChsaW5lICAzNikKICAtIHcgKFJtYWls KTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIE91dHB1dC4gICAgICAgIChsaW5l ICAzMikKICAtIHggKEJ1ZmZlciBNZW51KTogICAgICAgICAgICAgICAgICAgICAgIFNldmVyYWwg QnVmZmVycy4gICAgIChsaW5lICA0NSkKICAtIHggKENhbGVuZGFyIG1vZGUpOiAgICAgICAgICAg ICAgICAgICAgIEhvbGlkYXlzLiAgICAgICAgICAgIChsaW5lICAzMykKICAtIHggKERpcmVkKTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVkIERlbGV0aW9uLiAgICAgIChsaW5lICA0 MSkKICAtIFggKERpcmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIENvbW1h bmRzIGluIERpcmVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAgNikKICAtIHggKFJtYWlsKTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJtYWlsIERlbGV0aW9uLiAgICAgIChsaW5lICA0MSkKICAtIFogKERp cmVkKTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gIChs aW5lIDEwNikKCgpDb21tYW5kLUxpbmUgT3B0aW9ucyBJbmRleAoKAAhbaW5kZXgACF0KKyBNZW51 OgoKICAtICtMSU5FTlVNOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1 bWVudHMuICAgIChsaW5lICAzMCkKICAtIC0tYmFja2dyb3VuZC1jb2xvcjogICAgICAgICAgICAg ICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAxNikKICAtIC0tYmFzaWMtZGlzcGxh eTogICAgICAgICAgICAgICAgICAgICAgIE1pc2MgWC4gICAgICAgICAgICAgIChsaW5lICAyNSkK ICAtIC0tYmF0Y2g6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9u cy4gICAgIChsaW5lICA0MykKICAtIC0tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAg ICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAyMCkKICAtIC0tYm9yZGVyLXdpZHRoOiAg ICAgICAgICAgICAgICAgICAgICAgIEJvcmRlcnMgWC4gICAgICAgICAgIChsaW5lICAyMCkKICAt IC0tY2hkaXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4g ICAgIChsaW5lICAyMCkKICAtIC0tY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAzNSkKICAtIC0tY3Vyc29yLWNvbG9yOiAgICAg ICAgICAgICAgICAgICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAyNCkKICAtIC0t ZGFlbW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAg IChsaW5lIDExNCkKICAtIC0tZGVidWctaW5pdDogICAgICAgICAgICAgICAgICAgICAgICAgIElu aXRpYWwgT3B0aW9ucy4gICAgIChsaW5lIDEzMikKICAtIC0tZGlyZWN0b3J5OiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICA0OCkKICAtIC0tZGlz cGxheTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChs aW5lICAzMikKICAtIC0tZXZhbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlv biBBcmd1bWVudHMuICAgIChsaW5lICA2NCkKICAtIC0tZXhlY3V0ZTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICA2NSkKICAtIC0tZmlsZTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5l ICAgOSkKICAtIC0tZmluZC1maWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBB cmd1bWVudHMuICAgIChsaW5lICAxMCkKICAtIC0tZm9udDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZvbnQgWC4gICAgICAgICAgICAgIChsaW5lICAxMSkKICAtIC0tZm9yZWdyb3Vu ZC1jb2xvcjogICAgICAgICAgICAgICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAx MikKICAtIC0tZnVsbGhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBTaXpl IFguICAgICAgIChsaW5lICAzMikKICAtIC0tZnVsbHNjcmVlbjogICAgICAgICAgICAgICAgICAg ICAgICAgIFdpbmRvdyBTaXplIFguICAgICAgIChsaW5lICAxOCkKICAtIC0tZnVsbHdpZHRoOiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBTaXplIFguICAgICAgIChsaW5lICAzNikK ICAtIC0tZnVuY2FsbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVu dHMuICAgIChsaW5lICA1OCkKICAtIC0tZ2VvbWV0cnk6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFdpbmRvdyBTaXplIFguICAgICAgIChsaW5lICAxMSkKICAtIC0taGVscDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICA4MCkKICAt IC0taWNvbmljOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEljb25zIFguICAgICAgICAg ICAgIChsaW5lICAgNykKICAtIC0taW5zZXJ0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICA2OCkKICAtIC0taW50ZXJuYWwtYm9yZGVyOiAg ICAgICAgICAgICAgICAgICAgIEJvcmRlcnMgWC4gICAgICAgICAgIChsaW5lICAxNSkKICAtIC0t a2lsbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAg IChsaW5lICA3NykKICAtIC0tbGluZS1zcGFjaW5nOiAgICAgICAgICAgICAgICAgICAgICAgIE1p c2MgWC4gICAgICAgICAgICAgIChsaW5lICAxNykKICAtIC0tbG9hZDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICAzOCkKICAtIC0tbWF4 aW1pemVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBTaXplIFguICAgICAgIChs aW5lICAyNSkKICAtIC0tbW9kdWxlLWFzc2VydGlvbnM6ICAgICAgICAgICAgICAgICAgIEluaXRp YWwgT3B0aW9ucy4gICAgIChsaW5lIDEzNikKICAtIC0tbW91c2UtY29sb3I6ICAgICAgICAgICAg ICAgICAgICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAyOCkKICAtIC0tbmFtZTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlcy4gICAgICAgICAgIChsaW5l ICA1OCkKICAtIC0tbm8tYml0bWFwLWljb246ICAgICAgICAgICAgICAgICAgICAgIEljb25zIFgu ICAgICAgICAgICAgIChsaW5lICAxMikKICAtIC0tbm8tYmxpbmtpbmctY3Vyc29yOiAgICAgICAg ICAgICAgICAgIE1pc2MgWC4gICAgICAgICAgICAgIChsaW5lICAyMSkKICAtIC0tbm8tYnVpbGQt ZGV0YWlsczogICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICA4 MikKICAtIC0tbm8tZGVza3RvcDogICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0 aW9ucy4gICAgIChsaW5lIDEyNSkKICAtIC0tbm8taW5pdC1maWxlOiAgICAgICAgICAgICAgICAg ICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICA4NykKICAtIC0tbm8tc2l0ZS1maWxl OiAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICA5MykK ICAtIC0tbm8tc2l0ZS1saXNwOiAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9u cy4gICAgIChsaW5lICA5NykKICAtIC0tbm8tc3BsYXNoOiAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lIDEwMSkKICAtIC0tbm8td2luZG93LXN5c3Rl bTogICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICAzNykKICAt IC0tcXVpY2s6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4g ICAgIChsaW5lIDEwNykKICAtIC0tcmV2ZXJzZS12aWRlbzogICAgICAgICAgICAgICAgICAgICAg IENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAzMykKICAtIC0tc2NyaXB0OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICA2OSkKICAtIC0t dGVybWluYWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAg IChsaW5lICAyNykKICAtIC0tdGl0bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRp dGxlIFguICAgICAgICAgICAgIChsaW5lICAxNikKICAtIC0tdXNlcjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lIDEyOSkKICAtIC0tdmVy c2lvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChs aW5lICA4NCkKICAtIC0tdmVydGljYWwtc2Nyb2xsLWJhcnM6ICAgICAgICAgICAgICAgIE1pc2Mg WC4gICAgICAgICAgICAgIChsaW5lICAxMykKICAtIC0tdmlzaXQ6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICAxMSkKICAtIC0teHJtOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlcy4gICAgICAgICAgIChsaW5l ICA3NSkKICAtIC1iZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9ycyBY LiAgICAgICAgICAgIChsaW5lICAxOSkKICAtIC1iZzogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAxNSkKICAtIC1idzogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvcmRlcnMgWC4gICAgICAgICAgIChsaW5lICAx OSkKICAtIC1jaGRpcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0 aW9ucy4gICAgIChsaW5lICAxOSkKICAtIC1jcjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAyMykKICAtIC1kOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICAzMSkK ICAtIC1EOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgWC4gICAgICAg ICAgICAgIChsaW5lICAyNCkKICAtIC1kYWVtb246ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lIDExMykKICAtIC1mOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICA1NykKICAt IC1mZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbG9ycyBYLiAgICAgICAg ICAgIChsaW5lICAxMSkKICAtIC1maDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdpbmRvdyBTaXplIFguICAgICAgIChsaW5lICAzMSkKICAtIC1mbjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZvbnQgWC4gICAgICAgICAgICAgIChsaW5lICAxMCkKICAtIC1m czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBTaXplIFguICAgICAg IChsaW5lICAxNykKICAtIC1mdzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdp bmRvdyBTaXplIFguICAgICAgIChsaW5lICAzNSkKICAtIC1nOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdpbmRvdyBTaXplIFguICAgICAgIChsaW5lICAxMCkKICAtIC1pYjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvcmRlcnMgWC4gICAgICAgICAgIChs aW5lICAxNCkKICAtIC1sOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlv biBBcmd1bWVudHMuICAgIChsaW5lICAzNykKICAtIC1MOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFjdGlvbiBBcmd1bWVudHMuICAgIChsaW5lICA0NykKICAtIC1sc3A6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgWC4gICAgICAgICAgICAgIChsaW5l ICAxNikKICAtIC1tbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBT aXplIFguICAgICAgIChsaW5lICAyNCkKICAtIC1tczogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAyNykKICAtIC1uYmM6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgWC4gICAgICAgICAgICAgIChsaW5lICAy MCkKICAtIC1uYmk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEljb25zIFguICAg ICAgICAgICAgIChsaW5lICAxMSkKICAtIC1udzogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICAzNikKICAtIC1xOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lICA4NikK ICAtIC1ROiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9u cy4gICAgIChsaW5lIDEwNikKICAtIC1yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAzMSkKICAtIC1ydjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENvbG9ycyBYLiAgICAgICAgICAgIChsaW5lICAzMikKICAt IC10OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4g ICAgIChsaW5lICAyNikKICAtIC1UOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFRpdGxlIFguICAgICAgICAgICAgIChsaW5lICAxNSkKICAtIC11OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgIChsaW5lIDEyOCkKICAtIC12 YjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgWC4gICAgICAgICAgICAg IChsaW5lICAxMikKCgpDb21tYW5kIGFuZCBGdW5jdGlvbiBJbmRleAoKAAhbaW5kZXgACF0KKyBN ZW51OgoKICAtIDJDLWFzc29jaWF0ZS1idWZmZXI6ICAgICAgICAgICAgICAgICAgIFR3by1Db2x1 bW4uICAgICAgICAgIChsaW5lICAzNCkKICAtIDJDLWRpc3NvY2lhdGU6ICAgICAgICAgICAgICAg ICAgICAgICAgIFR3by1Db2x1bW4uICAgICAgICAgIChsaW5lICA2MykKICAtIDJDLW1lcmdlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR3by1Db2x1bW4uICAgICAgICAgIChsaW5lICA1 OCkKICAtIDJDLW5ld2xpbmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR3by1Db2x1bW4u ICAgICAgICAgIChsaW5lICA1MykKICAtIDJDLXNwbGl0OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFR3by1Db2x1bW4uICAgICAgICAgIChsaW5lICAyMSkKICAtIDJDLXR3by1jb2x1bW5z OiAgICAgICAgICAgICAgICAgICAgICAgIFR3by1Db2x1bW4uICAgICAgICAgIChsaW5lICAxMSkK ICAtIDV4NTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtdXNlbWVudHMuICAg ICAgICAgIChsaW5lICAgOSkKICAtIGFiYnJldi1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFiYnJldiBDb25jZXB0cy4gICAgIChsaW5lICAxMikKICAtIGFiYnJldi1wcmVmaXgtbWFy azogICAgICAgICAgICAgICAgICAgIEV4cGFuZGluZyBBYmJyZXZzLiAgIChsaW5lICAzNSkKICAt IGFib3J0LXJlY3Vyc2l2ZS1lZGl0OiAgICAgICAgICAgICAgICAgIFF1aXR0aW5nLiAgICAgICAg ICAgIChsaW5lICA2NikKICAtIGFkZC1jaGFuZ2UtbG9nLWVudHJ5LW90aGVyLXdpbmRvdzogICAg IENoYW5nZSBMb2cgQ29tbWFuZHMuIChsaW5lICAgNikKICAtIGFkZC1jaGFuZ2UtbG9nLWVudHJ5 LW90aGVyLXdpbmRvdywgaW4gRGlmZiBtb2RlOiBEaWZmIE1vZGUuIChsaW5lIDExNSkKICAtIGFk ZC1kaXItbG9jYWwtdmFyaWFibGU6ICAgICAgICAgICAgICAgIERpcmVjdG9yeSBWYXJpYWJsZXMu IChsaW5lICA2MikKICAtIGFkZC1maWxlLWxvY2FsLXZhcmlhYmxlOiAgICAgICAgICAgICAgIFNw ZWNpZnlpbmcgRmlsZSBWYXJpYWJsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDgwKQogIC0gYWRkLWZpbGUtbG9j YWwtdmFyaWFibGUtcHJvcC1saW5lOiAgICAgU3BlY2lmeWluZyBGaWxlIFZhcmlhYmxlcy4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgMTcpCiAgLSBhZGQtZ2xvYmFsLWFiYnJldjogICAgICAgICAgICAgICAgICAgICBE ZWZpbmluZyBBYmJyZXZzLiAgICAobGluZSAgMzEpCiAgLSBhZGQtaG9vazogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBIb29rcy4gICAgICAgICAgICAgICAobGluZSAgMjkpCiAgLSBhZGQt bW9kZS1hYmJyZXY6ICAgICAgICAgICAgICAgICAgICAgICBEZWZpbmluZyBBYmJyZXZzLiAgICAo bGluZSAgNDMpCiAgLSBhZGQtbmFtZS10by1maWxlOiAgICAgICAgICAgICAgICAgICAgICBDb3B5 aW5nIGFuZCBOYW1pbmcuICAobGluZSAgNDApCiAgLSBhZGQtdW50cmFuc2xhdGVkLWZpbGVzeXN0 ZW06ICAgICAgICAgICBUZXh0IGFuZCBCaW5hcnkuICAgICAobGluZSAgNTEpCiAgLSBhbmltYXRl LWJpcnRoZGF5LXByZXNlbnQ6ICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAgICAobGlu ZSAgIDYpCiAgLSBhcHBlbmQtbmV4dC1raWxsOiAgICAgICAgICAgICAgICAgICAgICBBcHBlbmRp bmcgS2lsbHMuICAgICAobGluZSAgMzkpCiAgLSBhcHBlbmQtdG8tYnVmZmVyOiAgICAgICAgICAg ICAgICAgICAgICBBY2N1bXVsYXRpbmcgVGV4dC4gICAobGluZSAgIDYpCiAgLSBhcHBlbmQtdG8t ZmlsZTogICAgICAgICAgICAgICAgICAgICAgICBBY2N1bXVsYXRpbmcgVGV4dC4gICAobGluZSAg IDYpCiAgLSBhcHBlbmQtdG8tcmVnaXN0ZXI6ICAgICAgICAgICAgICAgICAgICBUZXh0IFJlZ2lz dGVycy4gICAgICAobGluZSAgMzQpCiAgLSBhcHBseS1tYWNyby10by1yZWdpb24tbGluZXM6ICAg ICAgICAgICBCYXNpYyBLZXlib2FyZCBNYWNyby4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgODIpCiAgLSBhcHB0LWFj dGl2YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICBBcHBvaW50bWVudHMuICAgICAgICAobGlu ZSAgMjEpCiAgLSBhcHB0LWFkZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBvaW50 bWVudHMuICAgICAgICAobGluZSAgNTkpCiAgLSBhcHB0LWRlbGV0ZTogICAgICAgICAgICAgICAg ICAgICAgICAgICBBcHBvaW50bWVudHMuICAgICAgICAobGluZSAgNTkpCiAgLSBhcHJvcG9zOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHJvcG9zLiAgICAgICAgICAgICAobGluZSAg MTkpCiAgLSBhcHJvcG9zLWNvbW1hbmQ6ICAgICAgICAgICAgICAgICAgICAgICBBcHJvcG9zLiAg ICAgICAgICAgICAobGluZSAgMTUpCiAgLSBhcHJvcG9zLWRvY3VtZW50YXRpb246ICAgICAgICAg ICAgICAgICBBcHJvcG9zLiAgICAgICAgICAgICAobGluZSAgNDQpCiAgLSBhcHJvcG9zLWxvY2Fs LXZhbHVlOiAgICAgICAgICAgICAgICAgICBBcHJvcG9zLiAgICAgICAgICAgICAobGluZSAgNDAp CiAgLSBhcHJvcG9zLWxvY2FsLXZhcmlhYmxlOiAgICAgICAgICAgICAgICBBcHJvcG9zLiAgICAg ICAgICAgICAobGluZSAgMzEpCiAgLSBhcHJvcG9zLXVzZXItb3B0aW9uOiAgICAgICAgICAgICAg ICAgICBBcHJvcG9zLiAgICAgICAgICAgICAobGluZSAgMjMpCiAgLSBhcHJvcG9zLXZhbHVlOiAg ICAgICAgICAgICAgICAgICAgICAgICBBcHJvcG9zLiAgICAgICAgICAgICAobGluZSAgMzQpCiAg LSBhcHJvcG9zLXZhcmlhYmxlOiAgICAgICAgICAgICAgICAgICAgICBBcHJvcG9zLiAgICAgICAg ICAgICAobGluZSAgMjcpCiAgLSBhc2stdXNlci1hYm91dC1sb2NrOiAgICAgICAgICAgICAgICAg ICBJbnRlcmxvY2tpbmcuICAgICAgICAobGluZSAgMTgpCiAgLSBhc3luYy1zaGVsbC1jb21tYW5k OiAgICAgICAgICAgICAgICAgICBTaW5nbGUgU2hlbGwuICAgICAgICAobGluZSAgMzUpCiAgLSBh dXRvLWNvbXByZXNzaW9uLW1vZGU6ICAgICAgICAgICAgICAgICBDb21wcmVzc2VkIEZpbGVzLiAg ICAobGluZSAgMTcpCiAgLSBhdXRvLWZpbGwtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICBB dXRvIEZpbGwuICAgICAgICAgICAobGluZSAgMTYpCiAgLSBhdXRvLXJldmVydC1tb2RlOiAgICAg ICAgICAgICAgICAgICAgICBSZXZlcnRpbmcuICAgICAgICAgICAobGluZSAgMzcpCiAgLSBhdXRv LXJldmVydC10YWlsLW1vZGU6ICAgICAgICAgICAgICAgICBSZXZlcnRpbmcuICAgICAgICAgICAo bGluZSAgMzcpCiAgLSBhdXRvLXNhdmUtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICBBdXRv IFNhdmUgQ29udHJvbC4gICAobGluZSAgIDYpCiAgLSBiYWNrLXRvLWluZGVudGF0aW9uOiAgICAg ICAgICAgICAgICAgICBJbmRlbnRhdGlvbiBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTYpCiAgLSBi YWNrd2FyZC1idXR0b246ICAgICAgICAgICAgICAgICAgICAgICBIZWxwIE1vZGUuICAgICAgICAg ICAobGluZSAgNDMpCiAgLSBiYWNrd2FyZC1jaGFyOiAgICAgICAgICAgICAgICAgICAgICAgICBN b3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgMjYpCiAgLSBiYWNrd2FyZC1kZWxldGUtY2hhci11 bnRhYmlmeTogICAgICAgICBQcm9ncmFtIE1vZGVzLiAgICAgICAobGluZSAgMzEpCiAgLSBiYWNr d2FyZC1raWxsLXNlbnRlbmNlOiAgICAgICAgICAgICAgICBTZW50ZW5jZXMuICAgICAgICAgICAo bGluZSAgMzcpCiAgLSBiYWNrd2FyZC1raWxsLXdvcmQ6ICAgICAgICAgICAgICAgICAgICBXb3Jk cy4gICAgICAgICAgICAgICAobGluZSAgNDMpCiAgLSBiYWNrd2FyZC1saXN0OiAgICAgICAgICAg ICAgICAgICAgICAgICBNb3ZpbmcgYnkgUGFyZW5zLiAgICAobGluZSAgMjgpCiAgLSBiYWNrd2Fy ZC1wYWdlOiAgICAgICAgICAgICAgICAgICAgICAgICBQYWdlcy4gICAgICAgICAgICAgICAobGlu ZSAgMzEpCiAgLSBiYWNrd2FyZC1wYXJhZ3JhcGg6ICAgICAgICAgICAgICAgICAgICBQYXJhZ3Jh cGhzLiAgICAgICAgICAobGluZSAgMTYpCiAgLSBiYWNrd2FyZC1zZW50ZW5jZTogICAgICAgICAg ICAgICAgICAgICBTZW50ZW5jZXMuICAgICAgICAgICAobGluZSAgMTkpCiAgLSBiYWNrd2FyZC1z ZXhwOiAgICAgICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9ucy4gICAgICAgICAobGluZSAg MjUpCiAgLSBiYWNrd2FyZC11cC1saXN0OiAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkg UGFyZW5zLiAgICAobGluZSAgMzIpCiAgLSBiYWNrd2FyZC13b3JkOiAgICAgICAgICAgICAgICAg ICAgICAgICBXb3Jkcy4gICAgICAgICAgICAgICAobGluZSAgMjYpCiAgLSBiYWxhbmNlLXdpbmRv d3M6ICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgV2luZG93LiAgICAgICAobGluZSAgNjgp CiAgLSBiZWdpbm5pbmctb2YtYnVmZmVyOiAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQu ICAgICAgICAobGluZSAgODMpCiAgLSBiZWdpbm5pbmctb2YtZGVmdW46ICAgICAgICAgICAgICAg ICAgICBNb3ZpbmcgYnkgRGVmdW5zLiAgICAobGluZSAgMTcpCiAgLSBiZWdpbm5pbmctb2Ytdmlz dWFsLWxpbmU6ICAgICAgICAgICAgICBWaXN1YWwgTGluZSBNb2RlLiAgICAobGluZSAgMjMpCiAg LSBiaWJ0ZXgtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggTW9kZS4gICAgICAg ICAgICAobGluZSAgIDYpCiAgLSBiaW5hcnktb3ZlcndyaXRlLW1vZGU6ICAgICAgICAgICAgICAg ICBNaW5vciBNb2Rlcy4gICAgICAgICAobGluZSAgOTMpCiAgLSBibGFja2JveDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAgICAobGluZSAgIDkpCiAgLSBi bGluay1jdXJzb3ItbW9kZTogICAgICAgICAgICAgICAgICAgICBDdXJzb3IgRGlzcGxheS4gICAg ICAobGluZSAgMjQpCiAgLSBib29rbWFyay1kZWxldGU6ICAgICAgICAgICAgICAgICAgICAgICBC b29rbWFya3MuICAgICAgICAgICAobGluZSAgODIpCiAgLSBib29rbWFyay1pbnNlcnQ6ICAgICAg ICAgICAgICAgICAgICAgICBCb29rbWFya3MuICAgICAgICAgICAobGluZSAgODkpCiAgLSBib29r bWFyay1pbnNlcnQtbG9jYXRpb246ICAgICAgICAgICAgICBCb29rbWFya3MuICAgICAgICAgICAo bGluZSAgODUpCiAgLSBib29rbWFyay1qdW1wOiAgICAgICAgICAgICAgICAgICAgICAgICBCb29r bWFya3MuICAgICAgICAgICAobGluZSAgMzApCiAgLSBib29rbWFyay1sb2FkOiAgICAgICAgICAg ICAgICAgICAgICAgICBCb29rbWFya3MuICAgICAgICAgICAobGluZSAgNzMpCiAgLSBib29rbWFy ay1zYXZlOiAgICAgICAgICAgICAgICAgICAgICAgICBCb29rbWFya3MuICAgICAgICAgICAobGlu ZSAgNDYpCiAgLSBib29rbWFyay1zZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBCb29rbWFy a3MuICAgICAgICAgICAobGluZSAgMzApCiAgLSBib29rbWFyay1zZXQtbm8tb3ZlcndyaXRlOiAg ICAgICAgICAgICBCb29rbWFya3MuICAgICAgICAgICAobGluZSAgMzYpCiAgLSBib29rbWFyay13 cml0ZTogICAgICAgICAgICAgICAgICAgICAgICBCb29rbWFya3MuICAgICAgICAgICAobGluZSAg NzkpCiAgLSBicm93c2UtdXJsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcm93c2UtVVJM LiAgICAgICAgICAobGluZSAgIDYpCiAgLSBicm93c2UtdXJsLWF0LW1vdXNlOiAgICAgICAgICAg ICAgICAgICBCcm93c2UtVVJMLiAgICAgICAgICAobGluZSAgIDYpCiAgLSBicm93c2UtdXJsLWF0 LXBvaW50OiAgICAgICAgICAgICAgICAgICBCcm93c2UtVVJMLiAgICAgICAgICAobGluZSAgIDYp CiAgLSBicm93c2UtdXJsLW9mLWRpcmVkLWZpbGU6ICAgICAgICAgICAgICBNaXNjIERpcmVkIEZl YXR1cmVzLiAobGluZSAgMzYpCiAgLSBicy1jdXN0b21pemU6ICAgICAgICAgICAgICAgICAgICAg ICAgICBCdWZmZXIgTWVudXMuICAgICAgICAobGluZSAgMTIpCiAgLSBicy1zaG93OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgTWVudXMuICAgICAgICAobGluZSAgIDYpCiAg LSBidWJibGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAg ICAgICAobGluZSAgMTYpCiAgLSBidWZmZXItbWVudTogICAgICAgICAgICAgICAgICAgICAgICAg ICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgMTcpCiAgLSBCdWZmZXItbWVudS0xLXdpbmRv dzogICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMDQpCiAgLSBC dWZmZXItbWVudS0yLXdpbmRvdzogICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAg ICAobGluZSAxMDgpCiAgLSBCdWZmZXItbWVudS1iYWNrdXAtdW5tYXJrOiAgICAgICAgICAgICBT ZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNTMpCiAgLSBCdWZmZXItbWVudS1idXJ5OiAgICAg ICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMTMpCiAgLSBCdWZm ZXItbWVudS1kZWxldGU6ICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAo bGluZSAgMjkpCiAgLSBCdWZmZXItbWVudS1kZWxldGUtYmFja3dhcmRzOiAgICAgICAgICBTZXZl cmFsIEJ1ZmZlcnMuICAgICAobGluZSAgMzUpCiAgLSBCdWZmZXItbWVudS1leGVjdXRlOiAgICAg ICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNDUpCiAgLSBCdWZmZXIt bWVudS1tYXJrOiAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGlu ZSAxMTcpCiAgLSBCdWZmZXItbWVudS1ub3QtbW9kaWZpZWQ6ICAgICAgICAgICAgICBTZXZlcmFs IEJ1ZmZlcnMuICAgICAobGluZSAgNzMpCiAgLSBidWZmZXItbWVudS1vdGhlci13aW5kb3c6ICAg ICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgMTcpCiAgLSBCdWZmZXItbWVu dS1vdGhlci13aW5kb3c6ICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAg OTYpCiAgLSBCdWZmZXItbWVudS1zYXZlOiAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1 ZmZlcnMuICAgICAobGluZSAgMzkpCiAgLSBCdWZmZXItbWVudS1zZWxlY3Q6ICAgICAgICAgICAg ICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMjMpCiAgLSBCdWZmZXItbWVudS1z d2l0Y2gtb3RoZXItd2luZG93OiAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMDAp CiAgLSBCdWZmZXItbWVudS10aGlzLXdpbmRvdzogICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZl cnMuICAgICAobGluZSAgOTIpCiAgLSBCdWZmZXItbWVudS10b2dnbGUtZmlsZXMtb25seTogICAg ICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMzYpCiAgLSBCdWZmZXItbWVudS10b2dn bGUtcmVhZC1vbmx5OiAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNzcpCiAg LSBCdWZmZXItbWVudS11bm1hcms6ICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMu ICAgICAobGluZSAgNDgpCiAgLSBCdWZmZXItbWVudS11bm1hcmstYWxsOiAgICAgICAgICAgICAg ICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNjMpCiAgLSBCdWZmZXItbWVudS11bm1hcmst YWxsLWJ1ZmZlcnM6ICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAgNTcpCiAgLSBC dWZmZXItbWVudS12aXNpdC10YWdzLXRhYmxlOiAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAg ICAobGluZSAgODEpCiAgLSBidXR0ZXJmbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB bXVzZW1lbnRzLiAgICAgICAgICAobGluZSAgNTkpCiAgLSBjLWJhY2tzbGFzaC1yZWdpb246ICAg ICAgICAgICAgICAgICAgICBPdGhlciBDIENvbW1hbmRzLiAgICAobGluZSAgNDYpCiAgLSBjLWJh Y2t3YXJkLWNvbmRpdGlvbmFsOiAgICAgICAgICAgICAgICBNb3Rpb24gaW4gQy4gICAgICAgICAo bGluZSAgMzApCiAgLSBjLWJlZ2lubmluZy1vZi1kZWZ1bjogICAgICAgICAgICAgICAgICBNb3Rp b24gaW4gQy4gICAgICAgICAobGluZSAgMTEpCiAgLSBjLWJlZ2lubmluZy1vZi1zdGF0ZW1lbnQ6 ICAgICAgICAgICAgICBNb3Rpb24gaW4gQy4gICAgICAgICAobGluZSAgNDApCiAgLSBjLWNvbnRl eHQtbGluZS1icmVhazogICAgICAgICAgICAgICAgICBPdGhlciBDIENvbW1hbmRzLiAgICAobGlu ZSAgIDcpCiAgLSBjLWVuZC1vZi1kZWZ1bjogICAgICAgICAgICAgICAgICAgICAgICBNb3Rpb24g aW4gQy4gICAgICAgICAobGluZSAgMTEpCiAgLSBjLWVuZC1vZi1zdGF0ZW1lbnQ6ICAgICAgICAg ICAgICAgICAgICBNb3Rpb24gaW4gQy4gICAgICAgICAobGluZSAgNDkpCiAgLSBjLWZpbGwtcGFy YWdyYXBoOiAgICAgICAgICAgICAgICAgICAgICBPdGhlciBDIENvbW1hbmRzLiAgICAobGluZSAg MjgpCiAgLSBjLWZvcndhcmQtY29uZGl0aW9uYWw6ICAgICAgICAgICAgICAgICBNb3Rpb24gaW4g Qy4gICAgICAgICAobGluZSAgMzUpCiAgLSBjLWd1ZXNzOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDdXN0b20gQyBJbmRlbnQuICAgICAobGluZSAgNTkpCiAgLSBjLWd1ZXNzLWluc3Rh bGw6ICAgICAgICAgICAgICAgICAgICAgICBDdXN0b20gQyBJbmRlbnQuICAgICAobGluZSAgNTkp CiAgLSBjLWh1bmdyeS1kZWxldGUtYmFja3dhcmRzOiAgICAgICAgICAgICBIdW5ncnkgRGVsZXRl LiAgICAgICAobGluZSAgMTQpCiAgLSBjLWh1bmdyeS1kZWxldGUtZm9yd2FyZDogICAgICAgICAg ICAgICBIdW5ncnkgRGVsZXRlLiAgICAgICAobGluZSAgMjApCiAgLSBjLWluZGVudC1jb21tYW5k OiAgICAgICAgICAgICAgICAgICAgICBDIEluZGVudC4gICAgICAgICAgICAobGluZSAgMTgpCiAg LSBjLWluZGVudC1kZWZ1bjogICAgICAgICAgICAgICAgICAgICAgICBDIEluZGVudC4gICAgICAg ICAgICAobGluZSAgIDkpCiAgLSBjLWluZGVudC1leHA6ICAgICAgICAgICAgICAgICAgICAgICAg ICBDIEluZGVudC4gICAgICAgICAgICAobGluZSAgMTMpCiAgLSBjLW1hY3JvLWV4cGFuZDogICAg ICAgICAgICAgICAgICAgICAgICBPdGhlciBDIENvbW1hbmRzLiAgICAobGluZSAgMzQpCiAgLSBj LW1hcmstZnVuY3Rpb246ICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkgRGVmdW5zLiAg ICAobGluZSAgMzApCiAgLSBjLXNldC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICBD dXN0b20gQyBJbmRlbnQuICAgICAobGluZSAgMjYpCiAgLSBjLXNob3ctc3ludGFjdGljLWluZm9y bWF0aW9uOiAgICAgICAgICBPdGhlciBDIENvbW1hbmRzLiAgICAobGluZSAgNjUpCiAgLSBjLXRv Z2dsZS1hdXRvLW5ld2xpbmU6ICAgICAgICAgICAgICAgICBFbGVjdHJpYyBDLiAgICAgICAgICAo bGluZSAgMzEpCiAgLSBjLXRvZ2dsZS1lbGVjdHJpYy1zdGF0ZTogICAgICAgICAgICAgICBFbGVj dHJpYyBDLiAgICAgICAgICAobGluZSAgMjEpCiAgLSBjLXRvZ2dsZS1odW5ncnktc3RhdGU6ICAg ICAgICAgICAgICAgICBIdW5ncnkgRGVsZXRlLiAgICAgICAobGluZSAgMzApCiAgLSBjLXVwLWNv bmRpdGlvbmFsOiAgICAgICAgICAgICAgICAgICAgICBNb3Rpb24gaW4gQy4gICAgICAgICAobGlu ZSAgMjApCiAgLSBjYWxlbmRhcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRh ci9EaWFyeS4gICAgICAobGluZSAgIDYpCiAgLSBjYWxlbmRhci1hc3Ryby1nb3RvLWRheS1udW1i ZXI6ICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxlbmRhci1h c3Ryby1wcmludC1kYXktbnVtYmVyOiAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAg MTgpCiAgLSBjYWxlbmRhci1iYWNrd2FyZC1kYXk6ICAgICAgICAgICAgICAgICBDYWxlbmRhciBV bml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgMjcpCiAgLSBjYWxlbmRhci1iYWNrd2FyZC1tb250aDog ICAgICAgICAgICAgICBDYWxlbmRhciBVbml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzYpCiAgLSBj YWxlbmRhci1iYWNrd2FyZC13ZWVrOiAgICAgICAgICAgICAgICBDYWxlbmRhciBVbml0IE1vdGlv bi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgMjcpCiAgLSBjYWxlbmRhci1iYWNrd2FyZC15ZWFyOiAgICAgICAgICAg ICAgICBDYWxlbmRhciBVbml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzYpCiAgLSBjYWxlbmRhci1i YWhhaS1nb3RvLWRhdGU6ICAgICAgICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAg MTApCiAgLSBjYWxlbmRhci1iYWhhaS1wcmludC1kYXRlOiAgICAgICAgICAgICBUbyBPdGhlciBD YWxlbmRhci4gICAobGluZSAgMzApCiAgLSBjYWxlbmRhci1iZWdpbm5pbmctb2YtbW9udGg6ICAg ICAgICAgICBNb3ZlIHRvIEJlZ2lubmluZyBvciBFbmQuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDEzKQogIC0gY2Fs ZW5kYXItYmVnaW5uaW5nLW9mLXdlZWs6ICAgICAgICAgICAgTW92ZSB0byBCZWdpbm5pbmcgb3Ig RW5kLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAxMCkKICAtIGNhbGVuZGFyLWJlZ2lubmluZy1vZi15ZWFyOiAgICAg ICAgICAgIE1vdmUgdG8gQmVnaW5uaW5nIG9yIEVuZC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTcpCiAgLSBjYWxl bmRhci1jaGluZXNlLWdvdG8tZGF0ZTogICAgICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAo bGluZSAgMTApCiAgLSBjYWxlbmRhci1jaGluZXNlLXByaW50LWRhdGU6ICAgICAgICAgICBUbyBP dGhlciBDYWxlbmRhci4gICAobGluZSAgMzMpCiAgLSBjYWxlbmRhci1jb3B0aWMtZ290by1kYXRl OiAgICAgICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxlbmRh ci1jb3B0aWMtcHJpbnQtZGF0ZTogICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGlu ZSAgMzUpCiAgLSBjYWxlbmRhci1jb3VudC1kYXlzLXJlZ2lvbjogICAgICAgICAgICBDb3VudGlu ZyBEYXlzLiAgICAgICAobGluZSAgMTApCiAgLSBjYWxlbmRhci1jdXJzb3ItaG9saWRheXM6ICAg ICAgICAgICAgICBIb2xpZGF5cy4gICAgICAgICAgICAobGluZSAgMjYpCiAgLSBjYWxlbmRhci1l bmQtb2YtbW9udGg6ICAgICAgICAgICAgICAgICBNb3ZlIHRvIEJlZ2lubmluZyBvciBFbmQuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDE1KQogIC0gY2FsZW5kYXItZW5kLW9mLXdlZWs6ICAgICAgICAgICAgICAgICAg TW92ZSB0byBCZWdpbm5pbmcgb3IgRW5kLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAxMSkKICAtIGNhbGVuZGFyLWVu ZC1vZi15ZWFyOiAgICAgICAgICAgICAgICAgIE1vdmUgdG8gQmVnaW5uaW5nIG9yIEVuZC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgMTkpCiAgLSBjYWxlbmRhci1ldGhpb3BpYy1nb3RvLWRhdGU6ICAgICAgICAgICBG cm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxlbmRhci1ldGhpb3BpYy1wcmlu dC1kYXRlOiAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAgMzgpCiAgLSBjYWxl bmRhci1mb3J3YXJkLWRheTogICAgICAgICAgICAgICAgICBDYWxlbmRhciBVbml0IE1vdGlvbi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgMjcpCiAgLSBjYWxlbmRhci1mb3J3YXJkLW1vbnRoOiAgICAgICAgICAgICAg ICBDYWxlbmRhciBVbml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzYpCiAgLSBjYWxlbmRhci1mb3J3 YXJkLXdlZWs6ICAgICAgICAgICAgICAgICBDYWxlbmRhciBVbml0IE1vdGlvbi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMjcpCiAgLSBjYWxlbmRhci1mb3J3YXJkLXllYXI6ICAgICAgICAgICAgICAgICBDYWxlbmRh ciBVbml0IE1vdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMzYpCiAgLSBjYWxlbmRhci1mcmVuY2gtZ290by1k YXRlOiAgICAgICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxl bmRhci1mcmVuY2gtcHJpbnQtZGF0ZTogICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAo bGluZSAgMjcpCiAgLSBjYWxlbmRhci1nb3RvLWRhdGU6ICAgICAgICAgICAgICAgICAgICBTcGVj aWZpZWQgRGF0ZXMuICAgICAobGluZSAgMjApCiAgLSBjYWxlbmRhci1nb3RvLWRheS1vZi15ZWFy OiAgICAgICAgICAgICBTcGVjaWZpZWQgRGF0ZXMuICAgICAobGluZSAgMjUpCiAgLSBjYWxlbmRh ci1nb3RvLXRvZGF5OiAgICAgICAgICAgICAgICAgICBTcGVjaWZpZWQgRGF0ZXMuICAgICAobGlu ZSAgMzMpCiAgLSBjYWxlbmRhci1oZWJyZXctZ290by1kYXRlOiAgICAgICAgICAgICBGcm9tIE90 aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxlbmRhci1oZWJyZXctbGlzdC15YWhyemVp dHM6ICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgNTQpCiAgLSBjYWxlbmRhci1o ZWJyZXctcHJpbnQtZGF0ZTogICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAg MjEpCiAgLSBjYWxlbmRhci1pc2xhbWljLWdvdG8tZGF0ZTogICAgICAgICAgICBGcm9tIE90aGVy IENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxlbmRhci1pc2xhbWljLXByaW50LWRhdGU6ICAg ICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAgMjQpCiAgLSBjYWxlbmRhci1pc28t Z290by1kYXRlOiAgICAgICAgICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgMTAp CiAgLSBjYWxlbmRhci1pc28tZ290by13ZWVrOiAgICAgICAgICAgICAgICBTcGVjaWZpZWQgRGF0 ZXMuICAgICAobGluZSAgMjUpCiAgLSBjYWxlbmRhci1pc28tcHJpbnQtZGF0ZTogICAgICAgICAg ICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAgMTIpCiAgLSBjYWxlbmRhci1qdWxpYW4t Z290by1kYXRlOiAgICAgICAgICAgICBGcm9tIE90aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAg LSBjYWxlbmRhci1qdWxpYW4tcHJpbnQtZGF0ZTogICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRh ci4gICAobGluZSAgMTUpCiAgLSBjYWxlbmRhci1saXN0LWhvbGlkYXlzOiAgICAgICAgICAgICAg ICBIb2xpZGF5cy4gICAgICAgICAgICAobGluZSAgNDMpCiAgLSBjYWxlbmRhci1sdW5hci1waGFz ZXM6ICAgICAgICAgICAgICAgICBMdW5hciBQaGFzZXMuICAgICAgICAobGluZSAgMTcpCiAgLSBj YWxlbmRhci1tYXJrLWhvbGlkYXlzOiAgICAgICAgICAgICAgICBIb2xpZGF5cy4gICAgICAgICAg ICAobGluZSAgMzMpCiAgLSBjYWxlbmRhci1tYXJrLXRvZGF5OiAgICAgICAgICAgICAgICAgICBD YWxlbmRhciBDdXN0b21pemluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDEpCiAgLSBjYWxlbmRhci1tYXlhbi1n b3RvLWxvbmctY291bnQtZGF0ZTogICBNYXlhbiBDYWxlbmRhci4gICAgICAobGluZSAgMzYpCiAg LSBjYWxlbmRhci1tYXlhbi1uZXh0LWNhbGVuZGFyLXJvdW5kLWRhdGU6IE1heWFuIENhbGVuZGFy LiAgICAobGluZSAgNTgpCiAgLSBjYWxlbmRhci1tYXlhbi1uZXh0LWhhYWItZGF0ZTogICAgICAg ICBNYXlhbiBDYWxlbmRhci4gICAgICAobGluZSAgNTApCiAgLSBjYWxlbmRhci1tYXlhbi1uZXh0 LXR6b2xraW4tZGF0ZTogICAgICBNYXlhbiBDYWxlbmRhci4gICAgICAobGluZSAgNDIpCiAgLSBj YWxlbmRhci1tYXlhbi1wcmV2aW91cy1oYWFiLWRhdGU6ICAgICBNYXlhbiBDYWxlbmRhci4gICAg ICAobGluZSAgNTApCiAgLSBjYWxlbmRhci1tYXlhbi1wcmV2aW91cy10em9sa2luLWRhdGU6ICBN YXlhbiBDYWxlbmRhci4gICAgICAobGluZSAgNDIpCiAgLSBjYWxlbmRhci1tYXlhbi1wcmludC1k YXRlOiAgICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAgNDQpCiAgLSBjYWxl bmRhci1vdGhlci1tb250aDogICAgICAgICAgICAgICAgICBTcGVjaWZpZWQgRGF0ZXMuICAgICAo bGluZSAgMzApCiAgLSBjYWxlbmRhci1wZXJzaWFuLWdvdG8tZGF0ZTogICAgICAgICAgICBGcm9t IE90aGVyIENhbGVuZGFyLiAobGluZSAgMTApCiAgLSBjYWxlbmRhci1wZXJzaWFuLXByaW50LWRh dGU6ICAgICAgICAgICBUbyBPdGhlciBDYWxlbmRhci4gICAobGluZSAgNDEpCiAgLSBjYWxlbmRh ci1wcmludC1kYXktb2YteWVhcjogICAgICAgICAgICBHZW5lcmFsIENhbGVuZGFyLiAgICAobGlu ZSAgMTgpCiAgLSBjYWxlbmRhci1wcmludC1vdGhlci1kYXRlczogICAgICAgICAgICBUbyBPdGhl ciBDYWxlbmRhci4gICAobGluZSAgIDkpCiAgLSBjYWxlbmRhci1yZWRyYXc6ICAgICAgICAgICAg ICAgICAgICAgICBHZW5lcmFsIENhbGVuZGFyLiAgICAobGluZSAgMjQpCiAgLSBjYWxlbmRhci1z Y3JvbGwtbGVmdDogICAgICAgICAgICAgICAgICBTY3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAg MjcpCiAgLSBjYWxlbmRhci1zY3JvbGwtbGVmdC10aHJlZS1tb250aHM6ICAgICBTY3JvbGwgQ2Fs ZW5kYXIuICAgICAobGluZSAgMzMpCiAgLSBjYWxlbmRhci1zY3JvbGwtcmlnaHQ6ICAgICAgICAg ICAgICAgICBTY3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAgMjcpCiAgLSBjYWxlbmRhci1zY3Jv bGwtcmlnaHQtdGhyZWUtbW9udGhzOiAgICBTY3JvbGwgQ2FsZW5kYXIuICAgICAobGluZSAgMzMp CiAgLSBjYWxlbmRhci1zZXQtZGF0ZS1zdHlsZTogICAgICAgICAgICAgICBEYXRlIEZvcm1hdHMu ICAgICAgICAobGluZSAgNDMpCiAgLSBjYWxlbmRhci1zdGFyLWRhdGU6ICAgICAgICAgICAgICAg ICAgICBDYWxlbmRhciBDdXN0b21pemluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzUpCiAgLSBjYWxlbmRhci1z dW5yaXNlLXN1bnNldDogICAgICAgICAgICAgICBTdW5yaXNlL1N1bnNldC4gICAgICAobGluZSAg MjApCiAgLSBjYWxlbmRhci11bm1hcms6ICAgICAgICAgICAgICAgICAgICAgICBIb2xpZGF5cy4g ICAgICAgICAgICAobGluZSAgMzMpCiAgLSBjYXBpdGFsaXplLXdvcmQ6ICAgICAgICAgICAgICAg ICAgICAgICBDYXNlLiAgICAgICAgICAgICAgICAobGluZSAgMjApCiAgLSBjZDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIE5hbWVzLiAgICAgICAgICAobGluZSAgMzEp CiAgLSBjZW50ZXItbGluZTogICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxsIENvbW1hbmRz LiAgICAgICAobGluZSAgNDYpCiAgLSBjaGFuZ2UtbG9nLW1lcmdlOiAgICAgICAgICAgICAgICAg ICAgICBDaGFuZ2UgTG9nIENvbW1hbmRzLiAobGluZSAgNTIpCiAgLSBjaGFuZ2UtbG9nLW1vZGU6 ICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgTG9nIENvbW1hbmRzLiAobGluZSAgNDApCiAg LSBjaGVjay1wYXJlbnM6ICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJlbnRoZXNlcy4gICAg ICAgICAobGluZSAgIDYpCiAgLSBjaG9vc2UtY29tcGxldGlvbjogICAgICAgICAgICAgICAgICAg ICBDb21wbGV0aW9uIENvbW1hbmRzLiAobGluZSAgNDgpCiAgLSBjbGVhbi1idWZmZXItbGlzdDog ICAgICAgICAgICAgICAgICAgICBLaWxsIEJ1ZmZlci4gICAgICAgICAobGluZSAgNTApCiAgLSBj bGVhci1yZWN0YW5nbGU6ICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGVzLiAgICAgICAg ICAobGluZSAgOTMpCiAgLSBjbGlwYm9hcmQta2lsbC1yZWdpb246ICAgICAgICAgICAgICAgICBD bGlwYm9hcmQuICAgICAgICAgICAobGluZSAgNDYpCiAgLSBjbGlwYm9hcmQta2lsbC1yaW5nLXNh dmU6ICAgICAgICAgICAgICBDbGlwYm9hcmQuICAgICAgICAgICAobGluZSAgNDYpCiAgLSBjbGlw Ym9hcmQteWFuazogICAgICAgICAgICAgICAgICAgICAgICBDbGlwYm9hcmQuICAgICAgICAgICAo bGluZSAgNDYpCiAgLSBjbG9uZS1pbmRpcmVjdC1idWZmZXI6ICAgICAgICAgICAgICAgICBJbmRp cmVjdCBCdWZmZXJzLiAgICAobGluZSAgMTIpCiAgLSBjbG9uZS1pbmRpcmVjdC1idWZmZXItb3Ro ZXItd2luZG93OiAgICBJbmRpcmVjdCBCdWZmZXJzLiAgICAobGluZSAgMTcpCiAgLSBjb2x1bW4t bnVtYmVyLW1vZGU6ICAgICAgICAgICAgICAgICAgICBPcHRpb25hbCBNb2RlIExpbmUuICAobGlu ZSAgMjMpCiAgLSBjb21pbnQtYm9sLW9yLXByb2Nlc3MtbWFyazogICAgICAgICAgICBTaGVsbCBN b2RlLiAgICAgICAgICAobGluZSAgMzkpCiAgLSBjb21pbnQtY29udGludWUtc3Viam9iOiAgICAg ICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgICAobGluZSAxMjYpCiAgLSBjb21pbnQtY29w eS1vbGQtaW5wdXQ6ICAgICAgICAgICAgICAgICBTaGVsbCBIaXN0b3J5IENvcHlpbmcuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDEyKQogIC0gY29taW50LWRlbGNoYXItb3ItbWF5YmUtZW9mOiAgICAgICAgICAgU2hl bGwgTW9kZS4gICAgICAgICAgKGxpbmUgIDMzKQogIC0gY29taW50LWRlbGV0ZS1vdXRwdXQ6ICAg ICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAgICAgKGxpbmUgIDc5KQogIC0gY29taW50 LWR5bmFtaWMtbGlzdC1maWxlbmFtZeKApjogICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgICAo bGluZSAgMjkpCiAgLSBjb21pbnQtZHluYW1pYy1saXN0LWlucHV0LXJpbmc6ICAgICAgICBTaGVs bCBSaW5nLiAgICAgICAgICAobGluZSAgMjcpCiAgLSBjb21pbnQtZ2V0LW5leHQtZnJvbS1oaXN0 b3J5OiAgICAgICAgICBTaGVsbCBSaW5nLiAgICAgICAgICAobGluZSAgMTkpCiAgLSBjb21pbnQt aGlzdG9yeS1pc2VhcmNoLWJhY2t3YXJkLXJlZ2V4cDogU2hlbGwgUmluZy4gICAgICAgICAobGlu ZSAgMTQpCiAgLSBjb21pbnQtaW5wdXQtcHJldmlvdXMtYXJndW1lbnQ6ICAgICAgICBTaGVsbCBS aW5nLiAgICAgICAgICAobGluZSAgMjMpCiAgLSBjb21pbnQtaW50ZXJydXB0LXN1YmpvYjogICAg ICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgICAobGluZSAgNjQpCiAgLSBjb21pbnQta2ls bC1pbnB1dDogICAgICAgICAgICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgICAobGluZSAg NTYpCiAgLSBjb21pbnQtbWFnaWMtc3BhY2U6ICAgICAgICAgICAgICAgICAgICBIaXN0b3J5IFJl ZmVyZW5jZXMuICAobGluZSAgMTcpCiAgLSBjb21pbnQtbmV4dC1pbnB1dDogICAgICAgICAgICAg ICAgICAgICBTaGVsbCBSaW5nLiAgICAgICAgICAobGluZSAgMTApCiAgLSBjb21pbnQtbmV4dC1w cm9tcHQ6ICAgICAgICAgICAgICAgICAgICBTaGVsbCBIaXN0b3J5IENvcHlpbmcuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgICA5KQogIC0gY29taW50LXByZXZpb3VzLWlucHV0OiAgICAgICAgICAgICAgICAgU2hlbGwg UmluZy4gICAgICAgICAgKGxpbmUgICA2KQogIC0gY29taW50LXByZXZpb3VzLXByb21wdDogICAg ICAgICAgICAgICAgU2hlbGwgSGlzdG9yeSBDb3B5aW5nLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNikKICAtIGNv bWludC1xdWl0LXN1YmpvYjogICAgICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAg IChsaW5lICA3NCkKICAtIGNvbWludC1ydW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNo ZWxsIE1vZGUuICAgICAgICAgIChsaW5lIDE1NikKICAtIGNvbWludC1zZW5kLWlucHV0OiAgICAg ICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lICAxMikKICAtIGNvbWlu dC1zaG93LW1heGltdW0tb3V0cHV0OiAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChs aW5lICA5NikKICAtIGNvbWludC1zaG93LW91dHB1dDogICAgICAgICAgICAgICAgICAgIFNoZWxs IE1vZGUuICAgICAgICAgIChsaW5lICA5MSkKICAtIGNvbWludC1zdG9wLXN1YmpvYjogICAgICAg ICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lICA2OSkKICAtIGNvbWludC1z dHJpcC1jdHJsLW06ICAgICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5l IDEzMCkKICAtIGNvbWludC10cnVuY2F0ZS1idWZmZXI6ICAgICAgICAgICAgICAgIFNoZWxsIE1v ZGUuICAgICAgICAgIChsaW5lIDEzOSkKICAtIGNvbWludC13cml0ZS1vdXRwdXQ6ICAgICAgICAg ICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lICA4NCkKICAtIGNvbW1lbnQtZHdp bTogICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQgQ29tbWFuZHMuICAgIChsaW5lICAy NykKICAtIGNvbW1lbnQtaW5kZW50LW5ldy1saW5lOiAgICAgICAgICAgICAgIE11bHRpLUxpbmUg Q29tbWVudHMuIChsaW5lICAgNikKICAtIGNvbW1lbnQta2lsbDogICAgICAgICAgICAgICAgICAg ICAgICAgIENvbW1lbnQgQ29tbWFuZHMuICAgIChsaW5lICA3MykKICAtIGNvbW1lbnQtbGluZTog ICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQgQ29tbWFuZHMuICAgIChsaW5lICA2MykK ICAtIGNvbW1lbnQtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnQgQ29tbWFu ZHMuICAgIChsaW5lICA4MSkKICAtIGNvbW1lbnQtc2V0LWNvbHVtbjogICAgICAgICAgICAgICAg ICAgIE9wdGlvbnMgZm9yIENvbW1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNikKICAtIGNvbXBhcmUtd2lu ZG93czogICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgIChsaW5lICAy OSkKICAtIGNvbXBpbGF0aW9uLW5leHQtZXJyb3I6ICAgICAgICAgICAgICAgIENvbXBpbGF0aW9u IE1vZGUuICAgIChsaW5lIDEwMykKICAtIGNvbXBpbGF0aW9uLW5leHQtZmlsZTogICAgICAgICAg ICAgICAgIENvbXBpbGF0aW9uIE1vZGUuICAgIChsaW5lIDEwMykKICAtIGNvbXBpbGF0aW9uLXBy ZXZpb3VzLWVycm9yOiAgICAgICAgICAgIENvbXBpbGF0aW9uIE1vZGUuICAgIChsaW5lIDEwMykK ICAtIGNvbXBpbGF0aW9uLXByZXZpb3VzLWZpbGU6ICAgICAgICAgICAgIENvbXBpbGF0aW9uIE1v ZGUuICAgIChsaW5lIDEwMykKICAtIGNvbXBpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvbXBpbGF0aW9uLiAgICAgICAgIChsaW5lICAyMikKICAtIGNvbXBpbGUgKE1TLURPUyk6 ICAgICAgICAgICAgICAgICAgICAgIE1TLURPUyBQcm9jZXNzZXMuICAgIChsaW5lICAgNikKICAt IGNvbXBpbGUtZ290by1lcnJvcjogICAgICAgICAgICAgICAgICAgIENvbXBpbGF0aW9uIE1vZGUu ICAgIChsaW5lICAxMykKICAtIGNvbXBsZXRpb24tYXQtcG9pbnQsIGluIHByb2dyYW1taW5nIGxh bmd1YWdlIG1vZGVzOiBTeW1ib2wgQ29tcGxldGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTQpCiAgLSBjb21w bGV0aW9uLWF0LXBvaW50LCBpbiBTaGVsbCBNb2RlOiAgICBTaGVsbCBNb2RlLiAgICAgICAgICAo bGluZSAgMjApCiAgLSBjb21wb3NlLW1haWw6ICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5k aW5nIE1haWwuICAgICAgICAobGluZSAgIDYpCiAgLSBjb21wb3NlLW1haWwtb3RoZXItZnJhbWU6 ICAgICAgICAgICAgICBTZW5kaW5nIE1haWwuICAgICAgICAobGluZSAgMzEpCiAgLSBjb21wb3Nl LW1haWwtb3RoZXItd2luZG93OiAgICAgICAgICAgICBTZW5kaW5nIE1haWwuICAgICAgICAobGlu ZSAgMzEpCiAgLSBjb3B5LWRpci1sb2NhbHMtdG8tZmlsZS1sb2NhbHM6ICAgICAgICBTcGVjaWZ5 aW5nIEZpbGUgVmFyaWFibGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA4MCkKICAtIGNvcHktZGlyLWxvY2Fscy10 by1maWxlLWxvY2Fscy1wcm9wLWxpbmU6IFNwZWNpZnlpbmcgRmlsZSBWYXJpYWJsZXMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDE3KQogIC0gY29weS1kaXJlY3Rvcnk6ICAgICAgICAgICAgICAgICAgICAgICAgQ29w eWluZyBhbmQgTmFtaW5nLiAgKGxpbmUgIDI0KQogIC0gY29weS1maWxlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ29weWluZyBhbmQgTmFtaW5nLiAgKGxpbmUgIDIyKQogIC0gY29weS1m aWxlLWxvY2Fscy10by1kaXItbG9jYWxzOiAgICAgICAgRGlyZWN0b3J5IFZhcmlhYmxlcy4gKGxp bmUgIDYyKQogIC0gY29weS1yZWN0YW5nbGUtYXMta2lsbDogICAgICAgICAgICAgICAgUmVjdGFu Z2xlcy4gICAgICAgICAgKGxpbmUgIDc2KQogIC0gY29weS1yZWN0YW5nbGUtdG8tcmVnaXN0ZXI6 ICAgICAgICAgICAgUmVjdGFuZ2xlIFJlZ2lzdGVycy4gKGxpbmUgIDEwKQogIC0gY29weS10by1i dWZmZXI6ICAgICAgICAgICAgICAgICAgICAgICAgQWNjdW11bGF0aW5nIFRleHQuICAgKGxpbmUg ICA2KQogIC0gY29weS10by1yZWdpc3RlcjogICAgICAgICAgICAgICAgICAgICAgVGV4dCBSZWdp c3RlcnMuICAgICAgKGxpbmUgIDI2KQogIC0gY291bnQtbGluZXMtcGFnZTogICAgICAgICAgICAg ICAgICAgICAgUGFnZXMuICAgICAgICAgICAgICAgKGxpbmUgIDUxKQogIC0gY291bnQtd29yZHM6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gSW5mby4gICAgICAgKGxpbmUgIDUw KQogIC0gY291bnQtd29yZHMtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24gSW5m by4gICAgICAgKGxpbmUgIDQ1KQogIC0gY3BwLWhpZ2hsaWdodC1idWZmZXI6ICAgICAgICAgICAg ICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxpbmUgIDU2KQogIC0gY3JlYXRlLWZvbnRzZXQt ZnJvbS1mb250c2V0LXNwZWM6ICAgICAgRGVmaW5pbmcgRm9udHNldHMuICAgKGxpbmUgMTA2KQog IC0gY3VhLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VBIEJpbmRpbmdzLiAg ICAgICAgKGxpbmUgICA2KQogIC0gY3VzdG9tLXByb21wdC1jdXN0b21pemUtdW5zYXZlZC1vcHRp b25zOiBTYXZpbmcgQ3VzdG9taXphdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ2KQogIC0gQ3VzdG9tLXNh dmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdpbmcgYSBWYXJpYWJsZS4gKGxpbmUg MTM1KQogIC0gQ3VzdG9tLXNldDogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdpbmcg YSBWYXJpYWJsZS4gKGxpbmUgMTM1KQogIC0gY3VzdG9taXplOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRWFzeSBDdXN0b21pemF0aW9uLiAgKGxpbmUgIDE0KQogIC0gY3VzdG9taXplLWFw cm9wb3M6ICAgICAgICAgICAgICAgICAgICAgU3BlY2lmaWMgQ3VzdG9taXphdGlvbi4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgNDYpCiAgLSBjdXN0b21pemUtYnJvd3NlOiAgICAgICAgICAgICAgICAgICAgICBCcm93 c2luZyBDdXN0b20uICAgICAobGluZSAgIDYpCiAgLSBjdXN0b21pemUtY2hhbmdlZDogICAgICAg ICAgICAgICAgICAgICBTcGVjaWZpYyBDdXN0b21pemF0aW9uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA1MikKICAt IGN1c3RvbWl6ZS1jcmVhdGUtdGhlbWU6ICAgICAgICAgICAgICAgIENyZWF0aW5nIEN1c3RvbSBU aGVtZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gY3VzdG9taXplLWZhY2U6ICAgICAgICAgICAgICAg ICAgICAgICAgU3BlY2lmaWMgQ3VzdG9taXphdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDIpCiAgLSBjdXN0 b21pemUtZ3JvdXA6ICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZpYyBDdXN0b21pemF0aW9u LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA0MikKICAtIGN1c3RvbWl6ZS1vcHRpb246ICAgICAgICAgICAgICAgICAg ICAgIFNwZWNpZmljIEN1c3RvbWl6YXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM2KQogIC0gY3VzdG9taXpl LXNhdmVkOiAgICAgICAgICAgICAgICAgICAgICAgU3BlY2lmaWMgQ3VzdG9taXphdGlvbi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNjApCiAgLSBjdXN0b21pemUtdGhlbWVzOiAgICAgICAgICAgICAgICAgICAgICBD dXN0b20gVGhlbWVzLiAgICAgICAobGluZSAgMTYpCiAgLSBjdXN0b21pemUtdW5zYXZlZDogICAg ICAgICAgICAgICAgICAgICBTcGVjaWZpYyBDdXN0b21pemF0aW9uLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2MCkK ICAtIGN3YXJuLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIEMgQ29tbWFu ZHMuICAgIChsaW5lICA3MSkKICAtIGN5Y2xlLXNwYWNpbmc6ICAgICAgICAgICAgICAgICAgICAg ICAgIERlbGV0aW9uLiAgICAgICAgICAgIChsaW5lICA0MCkKICAtIGRhYmJyZXYtY29tcGxldGlv bjogICAgICAgICAgICAgICAgICAgIER5bmFtaWMgQWJicmV2cy4gICAgIChsaW5lICAxMikKICAt IGRhYmJyZXYtZXhwYW5kOiAgICAgICAgICAgICAgICAgICAgICAgIER5bmFtaWMgQWJicmV2cy4g ICAgIChsaW5lICAxMikKICAtIGRieDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFN0YXJ0aW5nIEdVRC4gICAgICAgIChsaW5lICAzNikKICAtIGRlYnVnX3ByaW50OiAgICAgICAg ICAgICAgICAgICAgICAgICAgIENoZWNrbGlzdC4gICAgICAgICAgIChsaW5lIDI1OCkKICAtIGRl Y2lwaGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtdXNlbWVudHMuICAgICAgICAg IChsaW5lICAxOSkKICAtIGRlZmF1bHQtdmFsdWU6ICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2Fscy4gICAgICAgICAgICAgIChsaW5lICA3MCkKICAtIGRlZmluZS1hYmJyZXZzOiAgICAgICAg ICAgICAgICAgICAgICAgIFNhdmluZyBBYmJyZXZzLiAgICAgIChsaW5lICA0NykKICAtIGRlZmlu ZS1nbG9iYWwtYWJicmV2OiAgICAgICAgICAgICAgICAgIERlZmluaW5nIEFiYnJldnMuICAgIChs aW5lICA1MykKICAtIGRlZmluZS1rZXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXQg UmViaW5kaW5nLiAgICAgIChsaW5lICA3NykKICAtIGRlZmluZS1tb2RlLWFiYnJldjogICAgICAg ICAgICAgICAgICAgIERlZmluaW5nIEFiYnJldnMuICAgIChsaW5lICA1MykKICAtIGRlbGV0ZS1i YWNrd2FyZC1jaGFyOiAgICAgICAgICAgICAgICAgIERlbGV0aW9uLiAgICAgICAgICAgIChsaW5l ICAgNikKICAtIGRlbGV0ZS1ibGFuay1saW5lczogICAgICAgICAgICAgICAgICAgIEJsYW5rIExp bmVzLiAgICAgICAgIChsaW5lICAxNSkKICAtIGRlbGV0ZS1jaGFyOiAgICAgICAgICAgICAgICAg ICAgICAgICAgIERlbGV0aW9uLiAgICAgICAgICAgIChsaW5lICAgNikKICAtIGRlbGV0ZS1kaXIt bG9jYWwtdmFyaWFibGU6ICAgICAgICAgICAgIERpcmVjdG9yeSBWYXJpYWJsZXMuIChsaW5lICA2 MikKICAtIGRlbGV0ZS1kdXBsaWNhdGUtbGluZXM6ICAgICAgICAgICAgICAgIERlbGV0aW9uLiAg ICAgICAgICAgIChsaW5lICA2NCkKICAtIGRlbGV0ZS1maWxlOiAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1pc2MgRmlsZSBPcHMuICAgICAgIChsaW5lICAgOSkKICAtIGRlbGV0ZS1maWxlLWxv Y2FsLXZhcmlhYmxlOiAgICAgICAgICAgIFNwZWNpZnlpbmcgRmlsZSBWYXJpYWJsZXMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDgwKQogIC0gZGVsZXRlLWZpbGUtbG9jYWwtdmFyaWFibGUtcHJvcC1saW5lOiAgU3Bl Y2lmeWluZyBGaWxlIFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTcpCiAgLSBkZWxldGUtZnJhbWU6 ICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZSBDb21tYW5kcy4gICAgICAobGluZSAgIDkp CiAgLSBkZWxldGUtaG9yaXpvbnRhbC1zcGFjZTogICAgICAgICAgICAgICBEZWxldGlvbi4gICAg ICAgICAgICAobGluZSAgNDApCiAgLSBkZWxldGUtaW5kZW50YXRpb246ICAgICAgICAgICAgICAg ICAgICBJbmRlbnRhdGlvbiBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzMpCiAgLSBkZWxldGUtb3Ro ZXItZnJhbWVzOiAgICAgICAgICAgICAgICAgICBGcmFtZSBDb21tYW5kcy4gICAgICAobGluZSAg MjEpCiAgLSBkZWxldGUtb3RoZXItd2luZG93czogICAgICAgICAgICAgICAgICBDaGFuZ2UgV2lu ZG93LiAgICAgICAobGluZSAgMzcpCiAgLSBkZWxldGUtcmVjdGFuZ2xlOiAgICAgICAgICAgICAg ICAgICAgICBSZWN0YW5nbGVzLiAgICAgICAgICAobGluZSAgNjMpCiAgLSBkZWxldGUtc2VsZWN0 aW9uLW1vZGU6ICAgICAgICAgICAgICAgICBVc2luZyBSZWdpb24uICAgICAgICAobGluZSAgNTAp CiAgLSBkZWxldGUtdHJhaWxpbmctd2hpdGVzcGFjZTogICAgICAgICAgICBVc2VsZXNzIFdoaXRl c3BhY2UuICAobGluZSAgMjEpCiAgLSBkZWxldGUtd2hpdGVzcGFjZS1yZWN0YW5nbGU6ICAgICAg ICAgICBSZWN0YW5nbGVzLiAgICAgICAgICAobGluZSAgOTgpCiAgLSBkZWxldGUtd2luZG93OiAg ICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgV2luZG93LiAgICAgICAobGluZSAgMjcpCiAg LSBkZXNjcmliZS1iaW5kaW5nczogICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAgICAg ICAgICAobGluZSAgNDIpCiAgLSBkZXNjcmliZS1jYXRlZ29yaWVzOiAgICAgICAgICAgICAgICAg ICBSZWdleHAgQmFja3NsYXNoLiAgICAobGluZSAxNDIpCiAgLSBkZXNjcmliZS1jaGFyYWN0ZXIt c2V0OiAgICAgICAgICAgICAgICBDaGFyc2V0cy4gICAgICAgICAgICAobGluZSAgMjQpCiAgLSBk ZXNjcmliZS1jb2Rpbmctc3lzdGVtOiAgICAgICAgICAgICAgICBDb2RpbmcgU3lzdGVtcy4gICAg ICAobGluZSAgNDMpCiAgLSBkZXNjcmliZS1jb3B5aW5nOiAgICAgICAgICAgICAgICAgICAgICBI ZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBkZXNjcmliZS1kaXN0cmlidXRpb246 ICAgICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBkZXNj cmliZS1mb250c2V0OiAgICAgICAgICAgICAgICAgICAgICBGb250c2V0cy4gICAgICAgICAgICAo bGluZSAgNDYpCiAgLSBkZXNjcmliZS1mdW5jdGlvbjogICAgICAgICAgICAgICAgICAgICBOYW1l IEhlbHAuICAgICAgICAgICAobGluZSAgIDYpCiAgLSBkZXNjcmliZS1nbnUtcHJvamVjdDogICAg ICAgICAgICAgICAgICBIZWxwIEZpbGVzLiAgICAgICAgICAobGluZSAgMTIpCiAgLSBkZXNjcmli ZS1pbnB1dC1tZXRob2Q6ICAgICAgICAgICAgICAgICBTZWxlY3QgSW5wdXQgTWV0aG9kLiAobGlu ZSAgMTYpCiAgLSBkZXNjcmliZS1rZXk6ICAgICAgICAgICAgICAgICAgICAgICAgICBLZXkgSGVs cC4gICAgICAgICAgICAobGluZSAgIDYpCiAgLSBkZXNjcmliZS1rZXktYnJpZWZseTogICAgICAg ICAgICAgICAgICBLZXkgSGVscC4gICAgICAgICAgICAobGluZSAgIDYpCiAgLSBkZXNjcmliZS1s YW5ndWFnZS1lbnZpcm9ubWVudDogICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDc2KQogIC0gZGVzY3JpYmUtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgTWlz YyBIZWxwLiAgICAgICAgICAgKGxpbmUgIDM2KQogIC0gZGVzY3JpYmUtbm8td2FycmFudHk6ICAg ICAgICAgICAgICAgICAgSGVscCBGaWxlcy4gICAgICAgICAgKGxpbmUgIDEyKQogIC0gZGVzY3Jp YmUtcGFja2FnZTogICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSBLZXl3b3Jkcy4gICAgKGxp bmUgIDE3KQogIC0gZGVzY3JpYmUtcHJlZml4LWJpbmRpbmdzOiAgICAgICAgICAgICAgTWlzYyBI ZWxwLiAgICAgICAgICAgKGxpbmUgIDUxKQogIC0gZGVzY3JpYmUtc3ltYm9sOiAgICAgICAgICAg ICAgICAgICAgICAgTmFtZSBIZWxwLiAgICAgICAgICAgKGxpbmUgIDUzKQogIC0gZGVzY3JpYmUt c3ludGF4OiAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBIZWxwLiAgICAgICAgICAgKGxpbmUg IDQyKQogIC0gZGVzY3JpYmUtdGV4dC1wcm9wZXJ0aWVzOiAgICAgICAgICAgICAgRWRpdGluZyBG b3JtYXQgSW5mby4gKGxpbmUgIDIwKQogIC0gZGVzY3JpYmUtdGhlbWU6ICAgICAgICAgICAgICAg ICAgICAgICAgQ3VzdG9tIFRoZW1lcy4gICAgICAgKGxpbmUgIDc2KQogIC0gZGVzY3JpYmUtdmFy aWFibGU6ICAgICAgICAgICAgICAgICAgICAgTmFtZSBIZWxwLiAgICAgICAgICAgKGxpbmUgIDQw KQogIC0gZGVza3RvcC1jaGFuZ2UtZGlyOiAgICAgICAgICAgICAgICAgICAgU2F2aW5nIEVtYWNz IFNlc3Npb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAzOCkKICAtIGRlc2t0b3AtY2xlYXI6ICAgICAgICAgICAg ICAgICAgICAgICAgIFNhdmluZyBFbWFjcyBTZXNzaW9ucy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTkpCiAgLSBk ZXNrdG9wLXJldmVydDogICAgICAgICAgICAgICAgICAgICAgICBTYXZpbmcgRW1hY3MgU2Vzc2lv bnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDM4KQogIC0gZGVza3RvcC1zYXZlOiAgICAgICAgICAgICAgICAgICAg ICAgICAgU2F2aW5nIEVtYWNzIFNlc3Npb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyOSkKICAtIGRpYXJ5OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlpbmcgdGhlIERpYXJ5LgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA2NSkKICAtIGRpYXJ5LWFubml2ZXJzYXJ5OiAgICAgICAgICAgICAgICAgICAgIFNw ZWNpYWwgRGlhcnkgRW50cmllcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzIpCiAgLSBkaWFyeS1hbm5pdmVyc2Fy eSwgYW5kIHNleHAgZGlhcnkgZW50cmllczogU2V4cCBEaWFyeSBFbnRyaWVzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICAxNikKICAtIGRpYXJ5LWFzdHJvLWRheS1udW1iZXI6ICAgICAgICAgICAgICAgIFNleHAgRGlh cnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LWJhaGFpLWRhdGU6ICAgICAgICAgICAg ICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LWJhaGFp LWluc2VydC1lbnRyeTogICAgICAgICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICA3 MykKICAtIGRpYXJ5LWJhaGFpLWluc2VydC1tb250aGx5LWVudHJ5OiAgICAgIE5vbi1HcmVnb3Jp YW4gRGlhcnkuIChsaW5lICA3MykKICAtIGRpYXJ5LWJhaGFpLWluc2VydC15ZWFybHktZW50cnk6 ICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICA3MykKICAtIGRpYXJ5LWJhaGFpLWxp c3QtZW50cmllczogICAgICAgICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICAxMykK ICAtIGRpYXJ5LWJhaGFpLW1hcmstZW50cmllczogICAgICAgICAgICAgIE5vbi1HcmVnb3JpYW4g RGlhcnkuIChsaW5lICAxMykKICAtIGRpYXJ5LWJsb2NrOiAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNwZWNpYWwgRGlhcnkgRW50cmllcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDQpCiAgLSBkaWFyeS1jaGlu ZXNlLWRhdGU6ICAgICAgICAgICAgICAgICAgICBTZXhwIERpYXJ5IEVudHJpZXMuICAobGluZSAx MTYpCiAgLSBkaWFyeS1jaGluZXNlLWluc2VydC1hbm5pdmVyc2FyeS1lbnRyeTogTm9uLUdyZWdv cmlhbiBEaWFyeS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNzMpCiAgLSBkaWFyeS1jaGluZXNlLWluc2VydC1lbnRy eTogICAgICAgICAgICBOb24tR3JlZ29yaWFuIERpYXJ5LiAobGluZSAgNzMpCiAgLSBkaWFyeS1j aGluZXNlLWluc2VydC1tb250aGx5LWVudHJ5OiAgICBOb24tR3JlZ29yaWFuIERpYXJ5LiAobGlu ZSAgNzMpCiAgLSBkaWFyeS1jaGluZXNlLWluc2VydC15ZWFybHktZW50cnk6ICAgICBOb24tR3Jl Z29yaWFuIERpYXJ5LiAobGluZSAgNzMpCiAgLSBkaWFyeS1jaGluZXNlLWxpc3QtZW50cmllczog ICAgICAgICAgICBOb24tR3JlZ29yaWFuIERpYXJ5LiAobGluZSAgMTMpCiAgLSBkaWFyeS1jaGlu ZXNlLW1hcmstZW50cmllczogICAgICAgICAgICBOb24tR3JlZ29yaWFuIERpYXJ5LiAobGluZSAg MTMpCiAgLSBkaWFyeS1jb3B0aWMtZGF0ZTogICAgICAgICAgICAgICAgICAgICBTZXhwIERpYXJ5 IEVudHJpZXMuICAobGluZSAxMTYpCiAgLSBkaWFyeS1jeWNsaWM6ICAgICAgICAgICAgICAgICAg ICAgICAgICBTcGVjaWFsIERpYXJ5IEVudHJpZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDYxKQogIC0gZGlhcnkt Y3ljbGljLCBhbmQgc2V4cCBkaWFyeSBlbnRyaWVzOiAgU2V4cCBEaWFyeSBFbnRyaWVzLiAgKGxp bmUgIDM1KQogIC0gZGlhcnktZGF0ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V4cCBE aWFyeSBFbnRyaWVzLiAgKGxpbmUgIDUzKQogIC0gZGlhcnktZGF5LW9mLXllYXI6ICAgICAgICAg ICAgICAgICAgICAgU2V4cCBEaWFyeSBFbnRyaWVzLiAgKGxpbmUgMTE2KQogIC0gZGlhcnktZXRo aW9waWMtZGF0ZTogICAgICAgICAgICAgICAgICAgU2V4cCBEaWFyeSBFbnRyaWVzLiAgKGxpbmUg MTE2KQogIC0gZGlhcnktZmFuY3ktZGlzcGxheTogICAgICAgICAgICAgICAgICAgRGlhcnkgRGlz cGxheS4gICAgICAgKGxpbmUgICA2KQogIC0gZGlhcnktZmxvYXQ6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3BlY2lhbCBEaWFyeSBFbnRyaWVzLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA4MykKICAtIGRpYXJ5 LWZsb2F0LCBhbmQgc2V4cCBkaWFyeSBlbnRyaWVzOiAgIFNleHAgRGlhcnkgRW50cmllcy4gIChs aW5lICA2NSkKICAtIGRpYXJ5LWZyZW5jaC1kYXRlOiAgICAgICAgICAgICAgICAgICAgIFNleHAg RGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LWhlYnJldy1iaXJ0aGRheTogICAg ICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDE2MikKICAtIGRpYXJ5LWhl YnJldy1kYXRlOiAgICAgICAgICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5l IDExNikKICAtIGRpYXJ5LWhlYnJldy1pbnNlcnQtZW50cnk6ICAgICAgICAgICAgIE5vbi1HcmVn b3JpYW4gRGlhcnkuIChsaW5lICA3MykKICAtIGRpYXJ5LWhlYnJldy1pbnNlcnQtbW9udGhseS1l bnRyeTogICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICA3MykKICAtIGRpYXJ5LWhlYnJl dy1pbnNlcnQteWVhcmx5LWVudHJ5OiAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICA3 MykKICAtIGRpYXJ5LWhlYnJldy1saXN0LWVudHJpZXM6ICAgICAgICAgICAgIE5vbi1HcmVnb3Jp YW4gRGlhcnkuIChsaW5lICAxMykKICAtIGRpYXJ5LWhlYnJldy1tYXJrLWVudHJpZXM6ICAgICAg ICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICAxMykKICAtIGRpYXJ5LWhlYnJldy1v bWVyOiAgICAgICAgICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDE2MikK ICAtIGRpYXJ5LWhlYnJldy1wYXJhc2hhOiAgICAgICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50 cmllcy4gIChsaW5lIDE2MikKICAtIGRpYXJ5LWhlYnJldy1yb3NoLWhvZGVzaDogICAgICAgICAg ICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDE2MikKICAtIGRpYXJ5LWhlYnJldy1zYWJi YXRoLWNhbmRsZXM6ICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDE2MikKICAt IGRpYXJ5LWhlYnJldy15YWhyemVpdDogICAgICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmll cy4gIChsaW5lIDE2MikKICAtIGRpYXJ5LWluY2x1ZGUtb3RoZXItZGlhcnktZmlsZXM6ICAgICAg IEZhbmN5IERpYXJ5IERpc3BsYXkuIChsaW5lICAzNikKICAtIGRpYXJ5LWluc2VydC1hbm5pdmVy c2FyeS1lbnRyeTogICAgICAgIFNwZWNpYWwgRGlhcnkgRW50cmllcy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjYp CiAgLSBkaWFyeS1pbnNlcnQtYmxvY2stZW50cnk6ICAgICAgICAgICAgICBTcGVjaWFsIERpYXJ5 IEVudHJpZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDUxKQogIC0gZGlhcnktaW5zZXJ0LWN5Y2xpYy1lbnRyeTog ICAgICAgICAgICAgU3BlY2lhbCBEaWFyeSBFbnRyaWVzLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA1NikKICAtIGRp YXJ5LWluc2VydC1lbnRyeTogICAgICAgICAgICAgICAgICAgIEFkZGluZyB0byBEaWFyeS4gICAg IChsaW5lICAyNCkKICAtIGRpYXJ5LWluc2VydC1tb250aGx5LWVudHJ5OiAgICAgICAgICAgIEFk ZGluZyB0byBEaWFyeS4gICAgIChsaW5lICAyOSkKICAtIGRpYXJ5LWluc2VydC13ZWVrbHktZW50 cnk6ICAgICAgICAgICAgIEFkZGluZyB0byBEaWFyeS4gICAgIChsaW5lICAyOSkKICAtIGRpYXJ5 LWluc2VydC15ZWFybHktZW50cnk6ICAgICAgICAgICAgIEFkZGluZyB0byBEaWFyeS4gICAgIChs aW5lICAyOSkKICAtIGRpYXJ5LWlzbGFtaWMtZGF0ZTogICAgICAgICAgICAgICAgICAgIFNleHAg RGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LWlzbGFtaWMtaW5zZXJ0LWVudHJ5 OiAgICAgICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICA3MykKICAtIGRpYXJ5LWlz bGFtaWMtaW5zZXJ0LW1vbnRobHktZW50cnk6ICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5l ICA3MykKICAtIGRpYXJ5LWlzbGFtaWMtaW5zZXJ0LXllYXJseS1lbnRyeTogICAgIE5vbi1HcmVn b3JpYW4gRGlhcnkuIChsaW5lICA3MykKICAtIGRpYXJ5LWlzbGFtaWMtbGlzdC1lbnRyaWVzOiAg ICAgICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICAxMykKICAtIGRpYXJ5LWlzbGFt aWMtbWFyay1lbnRyaWVzOiAgICAgICAgICAgIE5vbi1HcmVnb3JpYW4gRGlhcnkuIChsaW5lICAx MykKICAtIGRpYXJ5LWlzby1kYXRlOiAgICAgICAgICAgICAgICAgICAgICAgIFNleHAgRGlhcnkg RW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LWp1bGlhbi1kYXRlOiAgICAgICAgICAgICAg ICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LWx1bmFyLXBo YXNlczogICAgICAgICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDExNikK ICAtIGRpYXJ5LW1haWwtZW50cmllczogICAgICAgICAgICAgICAgICAgIERpc3BsYXlpbmcgdGhl IERpYXJ5LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICA3MykKICAtIGRpYXJ5LW1hcmstZW50cmllczogICAgICAgICAg ICAgICAgICAgIERpc3BsYXlpbmcgdGhlIERpYXJ5LgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0MykKICAtIGRpYXJ5 LW1hcmstaW5jbHVkZWQtZGlhcnktZmlsZXM6ICAgICAgIEZhbmN5IERpYXJ5IERpc3BsYXkuIChs aW5lICAzNikKICAtIGRpYXJ5LW1heWFuLWRhdGU6ICAgICAgICAgICAgICAgICAgICAgIFNleHAg RGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LXBlcnNpYW4tZGF0ZTogICAgICAg ICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LXBy aW50LWVudHJpZXM6ICAgICAgICAgICAgICAgICAgIERpYXJ5IERpc3BsYXkuICAgICAgIChsaW5l ICAzMikKICAtIGRpYXJ5LXJlbWluZDogICAgICAgICAgICAgICAgICAgICAgICAgIFNleHAgRGlh cnkgRW50cmllcy4gIChsaW5lICA0OCkKICAtIGRpYXJ5LXNob3ctYWxsLWVudHJpZXM6ICAgICAg ICAgICAgICAgIERpc3BsYXlpbmcgdGhlIERpYXJ5LgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2MikKICAtIGRpYXJ5 LXNpbXBsZS1kaXNwbGF5OiAgICAgICAgICAgICAgICAgIERpYXJ5IERpc3BsYXkuICAgICAgIChs aW5lICAgNikKICAtIGRpYXJ5LXNvcnQtZW50cmllczogICAgICAgICAgICAgICAgICAgIEZhbmN5 IERpYXJ5IERpc3BsYXkuIChsaW5lICAxMSkKICAtIGRpYXJ5LXN1bnJpc2Utc3Vuc2V0OiAgICAg ICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gIChsaW5lIDExNikKICAtIGRpYXJ5LXZp ZXctZW50cmllczogICAgICAgICAgICAgICAgICAgIERpc3BsYXlpbmcgdGhlIERpYXJ5LgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAyOCkKICAtIGRpZmY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bXBhcmluZyBGaWxlcy4gICAgIChsaW5lICAgNikKICAtIGRpZmYtYWRkLWNoYW5nZS1sb2ctZW50 cmllcy1vdGhlci13aW5kb3c6IERpZmYgTW9kZS4gICAgICAgIChsaW5lIDExNSkKICAtIGRpZmYt YXBwbHktaHVuazogICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChs aW5lICA2NSkKICAtIGRpZmYtYXV0by1yZWZpbmUtbW9kZTogICAgICAgICAgICAgICAgIERpZmYg TW9kZS4gICAgICAgICAgIChsaW5lICAzNSkKICAtIGRpZmYtYmFja3VwOiAgICAgICAgICAgICAg ICAgICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgIChsaW5lICAyMCkKICAtIGRpZmYtYnVm ZmVyLXdpdGgtZmlsZTogICAgICAgICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgIChsaW5l ICAyNSkKICAtIGRpZmYtY29udGV4dC0+dW5pZmllZDogICAgICAgICAgICAgICAgIERpZmYgTW9k ZS4gICAgICAgICAgIChsaW5lIDEwNSkKICAtIGRpZmYtZGVsZXRlLXRyYWlsaW5nLXdoaXRlc3Bh Y2U6ICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lIDEyNCkKICAtIGRpZmYtZWRpZmYt cGF0Y2g6ICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICA3 OCkKICAtIGRpZmYtZmlsZS1raWxsOiAgICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4g ICAgICAgICAgIChsaW5lICA2MSkKICAtIGRpZmYtZmlsZS1uZXh0OiAgICAgICAgICAgICAgICAg ICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICA1MCkKICAtIGRpZmYtZmlsZS1wcmV2 OiAgICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICA1NCkK ICAtIGRpZmYtZ290by1zb3VyY2U6ICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAg ICAgICAgIChsaW5lICA3NCkKICAtIGRpZmYtaHVuay1raWxsOiAgICAgICAgICAgICAgICAgICAg ICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICA1OCkKICAtIGRpZmYtaHVuay1uZXh0OiAg ICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICAzMykKICAt IGRpZmYtaHVuay1wcmV2OiAgICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAg ICAgIChsaW5lICA0NSkKICAtIGRpZmYtaWdub3JlLXdoaXRlc3BhY2UtaHVuazogICAgICAgICAg IERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lIDExMSkKICAtIGRpZmYtbW9kZTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICAgNikKICAtIGRp ZmYtcmVmaW5lLWh1bms6ICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAg IChsaW5lICA2OSkKICAtIGRpZmYtcmVzdHJpY3QtdmlldzogICAgICAgICAgICAgICAgICAgIERp ZmYgTW9kZS4gICAgICAgICAgIChsaW5lICA4MikKICAtIGRpZmYtcmV2ZXJzZS1kaXJlY3Rpb246 ICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChsaW5lICA4OCkKICAtIGRpZmYt c3BsaXQtaHVuazogICAgICAgICAgICAgICAgICAgICAgIERpZmYgTW9kZS4gICAgICAgICAgIChs aW5lICA5MikKICAtIGRpZmYtdW5pZmllZC0+Y29udGV4dDogICAgICAgICAgICAgICAgIERpZmYg TW9kZS4gICAgICAgICAgIChsaW5lIDEwMCkKICAtIGRpZ2l0LWFyZ3VtZW50OiAgICAgICAgICAg ICAgICAgICAgICAgIEFyZ3VtZW50cy4gICAgICAgICAgIChsaW5lICAxNSkKICAtIGRpci1sb2Nh bHMtc2V0LWNsYXNzLXZhcmlhYmxlczogICAgICAgIERpcmVjdG9yeSBWYXJpYWJsZXMuIChsaW5l ICA2OSkKICAtIGRpci1sb2NhbHMtc2V0LWRpcmVjdG9yeS1jbGFzczogICAgICAgIERpcmVjdG9y eSBWYXJpYWJsZXMuIChsaW5lICA2OSkKICAtIGRpcmVkOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERpcmVkIEVudGVyLiAgICAgICAgIChsaW5lICAgNikKICAtIGRpcmVkLWF0LXBv aW50OiAgICAgICAgICAgICAgICAgICAgICAgIEZGQVAuICAgICAgICAgICAgICAgIChsaW5lICAg NikKICAtIGRpcmVkLWNoYW5nZS1tYXJrczogICAgICAgICAgICAgICAgICAgIE1hcmtzIHZzIEZs YWdzLiAgICAgIChsaW5lICA5MykKICAtIGRpcmVkLWNsZWFuLWRpcmVjdG9yeTogICAgICAgICAg ICAgICAgIEZsYWdnaW5nIE1hbnkgRmlsZXMuIChsaW5lICAzNykKICAtIGRpcmVkLWNvbXBhcmUt ZGlyZWN0b3JpZXM6ICAgICAgICAgICAgIE1pc2MgRGlyZWQgRmVhdHVyZXMuIChsaW5lICA1MikK ICAtIGRpcmVkLWNvcHktZmlsZW5hbWUtYXMta2lsbDogICAgICAgICAgIE1pc2MgRGlyZWQgRmVh dHVyZXMuIChsaW5lICAxOSkKICAtIGRpcmVkLWNyZWF0ZS1kaXJlY3Rvcnk6ICAgICAgICAgICAg ICAgIE1pc2MgRGlyZWQgRmVhdHVyZXMuIChsaW5lICAgNikKICAtIGRpcmVkLWRpZmY6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmlzb24gaW4gRGlyZWQuIChsaW5lICAgNikKICAt IGRpcmVkLWRpc3BsYXktZmlsZTogICAgICAgICAgICAgICAgICAgIERpcmVkIFZpc2l0aW5nLiAg ICAgIChsaW5lICAyNykKICAtIGRpcmVkLWRvLWJ5dGUtY29tcGlsZTogICAgICAgICAgICAgICAg IE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lIDEzOCkKICAtIGRpcmVkLWRvLWNoZ3JwOiAgICAg ICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lICA4MSkKICAtIGRp cmVkLWRvLWNobW9kOiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4g IChsaW5lICA3NikKICAtIGRpcmVkLWRvLWNob3duOiAgICAgICAgICAgICAgICAgICAgICAgIE9w ZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lICA4NSkKICAtIGRpcmVkLWRvLWNvbXByZXNzOiAgICAg ICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lIDEwNikKICAtIGRpcmVk LWRvLWNvbXByZXNzLXRvOiAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gIChs aW5lIDExMikKICAtIGRpcmVkLWRvLWNvcHk6ICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJh dGluZyBvbiBGaWxlcy4gIChsaW5lICAzNCkKICAtIGRpcmVkLWRvLWNvcHktcmVnZXhwOiAgICAg ICAgICAgICAgICAgIFRyYW5zZm9ybWluZyBGaWxlIE5hbWVzLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzMykKICAt IGRpcmVkLWRvLWRlbGV0ZTogICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxl cy4gIChsaW5lICA0OCkKICAtIGRpcmVkLWRvLWZpbmQtcmVnZXhwOiAgICAgICAgICAgICAgICAg IE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lIDE0MykKICAtIGRpcmVkLWRvLWZpbmQtcmVnZXhw LWFuZC1yZXBsYWNlOiAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lIDE1OCkKICAtIGRp cmVkLWRvLWZsYWdnZWQtZGVsZXRlOiAgICAgICAgICAgICAgIERpcmVkIERlbGV0aW9uLiAgICAg IChsaW5lICA0MSkKICAtIGRpcmVkLWRvLWhhcmRsaW5rOiAgICAgICAgICAgICAgICAgICAgIE9w ZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lICA2NCkKICAtIGRpcmVkLWRvLWhhcmRsaW5rLXJlZ2V4 cDogICAgICAgICAgICAgIFRyYW5zZm9ybWluZyBGaWxlIE5hbWVzLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzNCkK ICAtIGRpcmVkLWRvLWlzZWFyY2g6ICAgICAgICAgICAgICAgICAgICAgIE1pc2MgRGlyZWQgRmVh dHVyZXMuIChsaW5lICAxMCkKICAtIGRpcmVkLWRvLWlzZWFyY2gtcmVnZXhwOiAgICAgICAgICAg ICAgIE1pc2MgRGlyZWQgRmVhdHVyZXMuIChsaW5lICAxMCkKICAtIGRpcmVkLWRvLWtpbGwtbGlu ZXM6ICAgICAgICAgICAgICAgICAgIERpcmVkIFVwZGF0aW5nLiAgICAgIChsaW5lICA1MSkKICAt IGRpcmVkLWRvLWxvYWQ6ICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxl cy4gIChsaW5lIDEzNCkKICAtIGRpcmVkLWRvLXByaW50OiAgICAgICAgICAgICAgICAgICAgICAg IE9wZXJhdGluZyBvbiBGaWxlcy4gIChsaW5lICA5OSkKICAtIGRpcmVkLWRvLXJlZGlzcGxheTog ICAgICAgICAgICAgICAgICAgIERpcmVkIFVwZGF0aW5nLiAgICAgIChsaW5lICAzNCkKICAtIGRp cmVkLWRvLXJlbmFtZTogICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4g IChsaW5lICA1NSkKICAtIGRpcmVkLWRvLXJlbmFtZS1yZWdleHA6ICAgICAgICAgICAgICAgIFRy YW5zZm9ybWluZyBGaWxlIE5hbWVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzMikKICAtIGRpcmVkLWRvLXNoZWxs LWNvbW1hbmQ6ICAgICAgICAgICAgICAgIFNoZWxsIENvbW1hbmRzIGluIERpcmVkLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICAgNikKICAtIGRpcmVkLWRvLXN5bWxpbms6ICAgICAgICAgICAgICAgICAgICAgIE9wZXJh dGluZyBvbiBGaWxlcy4gIChsaW5lICA3MCkKICAtIGRpcmVkLWRvLXN5bWxpbmstcmVnZXhwOiAg ICAgICAgICAgICAgIFRyYW5zZm9ybWluZyBGaWxlIE5hbWVzLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzNSkKICAt IGRpcmVkLWRvLXRvdWNoOiAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxl cy4gIChsaW5lICA5NCkKICAtIGRpcmVkLWRvd25jYXNlOiAgICAgICAgICAgICAgICAgICAgICAg IFRyYW5zZm9ybWluZyBGaWxlIE5hbWVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyNykKICAtIGRpcmVkLWZpbmQt ZmlsZTogICAgICAgICAgICAgICAgICAgICAgIERpcmVkIFZpc2l0aW5nLiAgICAgIChsaW5lICAx MikKICAtIGRpcmVkLWZpbmQtZmlsZS1vdGhlci13aW5kb3c6ICAgICAgICAgIERpcmVkIFZpc2l0 aW5nLiAgICAgIChsaW5lICAyMSkKICAtIGRpcmVkLWZsYWctYXV0by1zYXZlLWZpbGVzOiAgICAg ICAgICAgIEZsYWdnaW5nIE1hbnkgRmlsZXMuIChsaW5lICAzMCkKICAtIGRpcmVkLWZsYWctYmFj a3VwLWZpbGVzOiAgICAgICAgICAgICAgIEZsYWdnaW5nIE1hbnkgRmlsZXMuIChsaW5lICAzNCkK ICAtIGRpcmVkLWZsYWctZmlsZS1kZWxldGlvbjogICAgICAgICAgICAgIERpcmVkIERlbGV0aW9u LiAgICAgIChsaW5lICAxOSkKICAtIGRpcmVkLWZsYWctZmlsZXMtcmVnZXhwOiAgICAgICAgICAg ICAgIEZsYWdnaW5nIE1hbnkgRmlsZXMuIChsaW5lICA1NikKICAtIGRpcmVkLWZsYWctZ2FyYmFn ZS1maWxlczogICAgICAgICAgICAgIEZsYWdnaW5nIE1hbnkgRmlsZXMuIChsaW5lICA1MCkKICAt IGRpcmVkLWdvdG8tZmlsZTogICAgICAgICAgICAgICAgICAgICAgIERpcmVkIE5hdmlnYXRpb24u ICAgIChsaW5lICAxNykKICAtIGRpcmVkLWhpZGUtYWxsOiAgICAgICAgICAgICAgICAgICAgICAg IEhpZGluZyBTdWJkaXJlY3Rvcmllcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTUpCiAgLSBkaXJlZC1oaWRlLWRl dGFpbHMtbW9kZTogICAgICAgICAgICAgICBNaXNjIERpcmVkIEZlYXR1cmVzLiAobGluZSAgNDAp CiAgLSBkaXJlZC1oaWRlLXN1YmRpcjogICAgICAgICAgICAgICAgICAgICBIaWRpbmcgU3ViZGly ZWN0b3JpZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDEwKQogIC0gZGlyZWQtaXNlYXJjaC1maWxlbmFtZXM6ICAg ICAgICAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4gICAgKGxpbmUgIDIwKQogIC0gZGlyZWQtaXNl YXJjaC1maWxlbmFtZXMtcmVnZXhwOiAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4gICAgKGxpbmUg IDIwKQogIC0gZGlyZWQtbWFyazogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFya3MgdnMg RmxhZ3MuICAgICAgKGxpbmUgIDE3KQogIC0gZGlyZWQtbWFyay1kaXJlY3RvcmllczogICAgICAg ICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDM0KQogIC0gZGlyZWQtbWFyay1l eGVjdXRhYmxlczogICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDI2 KQogIC0gZGlyZWQtbWFyay1maWxlcy1jb250YWluaW5nLXJlZ2V4cDogICAgTWFya3MgdnMgRmxh Z3MuICAgICAgKGxpbmUgMTI0KQogIC0gZGlyZWQtbWFyay1maWxlcy1yZWdleHA6ICAgICAgICAg ICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgMTE1KQogIC0gZGlyZWQtbWFyay1zdWJk aXItZmlsZXM6ICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDM5KQog IC0gZGlyZWQtbWFyay1zeW1saW5rczogICAgICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3Mu ICAgICAgKGxpbmUgIDMwKQogIC0gZGlyZWQtbWF5YmUtaW5zZXJ0LXN1YmRpcjogICAgICAgICAg ICAgU3ViZGlyZWN0b3JpZXMgaW4gRGlyZWQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE4KQogIC0gZGlyZWQtbW91 c2UtZmluZC1maWxlLW90aGVyLXdpbmRvdzogICAgRGlyZWQgVmlzaXRpbmcuICAgICAgKGxpbmUg IDMzKQogIC0gZGlyZWQtbmV4dC1kaXJsaW5lOiAgICAgICAgICAgICAgICAgICAgU3ViZGlyZWN0 b3J5IE1vdGlvbi4gKGxpbmUgIDM1KQogIC0gZGlyZWQtbmV4dC1saW5lOiAgICAgICAgICAgICAg ICAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4gICAgKGxpbmUgICA2KQogIC0gZGlyZWQtbmV4dC1t YXJrZWQtZmlsZTogICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDc5 KQogIC0gZGlyZWQtbmV4dC1zdWJkaXI6ICAgICAgICAgICAgICAgICAgICAgU3ViZGlyZWN0b3J5 IE1vdGlvbi4gKGxpbmUgIDE1KQogIC0gZGlyZWQtb3RoZXItZnJhbWU6ICAgICAgICAgICAgICAg ICAgICAgRGlyZWQgRW50ZXIuICAgICAgICAgKGxpbmUgIDUyKQogIC0gZGlyZWQtb3RoZXItd2lu ZG93OiAgICAgICAgICAgICAgICAgICAgRGlyZWQgRW50ZXIuICAgICAgICAgKGxpbmUgIDUyKQog IC0gZGlyZWQtcHJldi1kaXJsaW5lOiAgICAgICAgICAgICAgICAgICAgU3ViZGlyZWN0b3J5IE1v dGlvbi4gKGxpbmUgIDMwKQogIC0gZGlyZWQtcHJldi1tYXJrZWQtZmlsZTogICAgICAgICAgICAg ICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDg0KQogIC0gZGlyZWQtcHJldi1zdWJkaXI6 ICAgICAgICAgICAgICAgICAgICAgU3ViZGlyZWN0b3J5IE1vdGlvbi4gKGxpbmUgIDE5KQogIC0g ZGlyZWQtcHJldmlvdXMtbGluZTogICAgICAgICAgICAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4g ICAgKGxpbmUgICA2KQogIC0gZGlyZWQtc29ydC10b2dnbGUtb3ItZWRpdDogICAgICAgICAgICAg RGlyZWQgVXBkYXRpbmcuICAgICAgKGxpbmUgIDY3KQogIC0gZGlyZWQtdG9nZ2xlLW1hcmtzOiAg ICAgICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDg4KQogIC0gZGly ZWQtdHJlZS1kb3duOiAgICAgICAgICAgICAgICAgICAgICAgU3ViZGlyZWN0b3J5IE1vdGlvbi4g KGxpbmUgIDI2KQogIC0gZGlyZWQtdHJlZS11cDogICAgICAgICAgICAgICAgICAgICAgICAgU3Vi ZGlyZWN0b3J5IE1vdGlvbi4gKGxpbmUgIDIzKQogIC0gZGlyZWQtdW5kbzogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgMTQyKQogIC0gZGlyZWQt dW5tYXJrOiAgICAgICAgICAgICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxp bmUgIDQ0KQogIC0gZGlyZWQtdW5tYXJrLWFsbC1maWxlczogICAgICAgICAgICAgICAgTWFya3Mg dnMgRmxhZ3MuICAgICAgKGxpbmUgIDY1KQogIC0gZGlyZWQtdW5tYXJrLWFsbC1tYXJrczogICAg ICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUgIDYwKQogIC0gZGlyZWQtdW5t YXJrLWJhY2t3YXJkOiAgICAgICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAgKGxpbmUg IDUyKQogIC0gZGlyZWQtdXAtZGlyZWN0b3J5OiAgICAgICAgICAgICAgICAgICAgRGlyZWQgVmlz aXRpbmcuICAgICAgKGxpbmUgIDQzKQogIC0gZGlyZWQtdXBjYXNlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgVHJhbnNmb3JtaW5nIEZpbGUgTmFtZXMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIxKQogIC0gZGly ZWQtdmlldy1maWxlOiAgICAgICAgICAgICAgICAgICAgICAgRGlyZWQgVmlzaXRpbmcuICAgICAg KGxpbmUgIDM4KQogIC0gZGlyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGly ZWN0b3J5IFRyYWNraW5nLiAgKGxpbmUgIDE5KQogIC0gZGlydHJhY2stbW9kZTogICAgICAgICAg ICAgICAgICAgICAgICAgRGlyZWN0b3J5IFRyYWNraW5nLiAgKGxpbmUgIDI1KQogIC0gZGlzYWJs ZS1jb21tYW5kOiAgICAgICAgICAgICAgICAgICAgICAgRGlzYWJsaW5nLiAgICAgICAgICAgKGxp bmUgIDMzKQogIC0gZGlzYWJsZS10aGVtZTogICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9t IFRoZW1lcy4gICAgICAgKGxpbmUgIDY5KQogIC0gZGlzcGxheS1iYXR0ZXJ5LW1vZGU6ICAgICAg ICAgICAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAgKGxpbmUgIDc4KQogIC0gZGlzcGxheS1i dWZmZXIgKGNvbW1hbmQpOiAgICAgICAgICAgICAgUG9wIFVwIFdpbmRvdy4gICAgICAgKGxpbmUg IDE1KQogIC0gZGlzcGxheS1idWZmZXIsIGRldGFpbGVkIGRlc2NyaXB0aW9uOiAgV2luZG93IENo b2ljZS4gICAgICAgKGxpbmUgICA2KQogIC0gZGlzcGxheS1saW5lLW51bWJlcnMtbW9kZTogICAg ICAgICAgICAgRGlzcGxheSBDdXN0b20uICAgICAgKGxpbmUgIDM5KQogIC0gZGlzcGxheS1sb2Nh bC1oZWxwOiAgICAgICAgICAgICAgICAgICAgSGVscCBFY2hvLiAgICAgICAgICAgKGxpbmUgIDEz KQogIC0gZGlzcGxheS10aW1lOiAgICAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9uYWwgTW9k ZSBMaW5lLiAgKGxpbmUgIDUzKQogIC0gZGlzc29jaWF0ZWQtcHJlc3M6ICAgICAgICAgICAgICAg ICAgICAgQW11c2VtZW50cy4gICAgICAgICAgKGxpbmUgIDIyKQogIC0gZG8tYXV0by1zYXZlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgQXV0byBTYXZlIENvbnRyb2wuICAgKGxpbmUgIDQxKQog IC0gZG9jLXZpZXctY2xlYXItY2FjaGU6ICAgICAgICAgICAgICAgICAgRG9jVmlldyBDb252ZXJz aW9uLiAgKGxpbmUgICA2KQogIC0gZG9jLXZpZXctZW5sYXJnZTogICAgICAgICAgICAgICAgICAg ICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDI5KQogIC0gZG9jLXZpZXctZmlyc3QtcGFn ZTogICAgICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDI1KQogIC0g ZG9jLXZpZXctZ290by1wYWdlOiAgICAgICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9u LiAgKGxpbmUgIDI1KQogIC0gZG9jLXZpZXcta2lsbC1wcm9jOiAgICAgICAgICAgICAgICAgICAg RG9jVmlldyBDb252ZXJzaW9uLiAgKGxpbmUgIDExKQogIC0gZG9jLXZpZXcta2lsbC1wcm9jLWFu ZC1idWZmZXI6ICAgICAgICAgRG9jVmlldyBDb252ZXJzaW9uLiAgKGxpbmUgIDExKQogIC0gZG9j LXZpZXctbGFzdC1wYWdlOiAgICAgICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAg KGxpbmUgIDI1KQogIC0gZG9jLXZpZXctbWlub3ItbW9kZTogICAgICAgICAgICAgICAgICAgRG9j dW1lbnQgVmlldy4gICAgICAgKGxpbmUgIDEzKQogIC0gZG9jLXZpZXctbW9kZTogICAgICAgICAg ICAgICAgICAgICAgICAgRG9jdW1lbnQgVmlldy4gICAgICAgKGxpbmUgICA2KQogIC0gZG9jLXZp ZXctbmV4dC1wYWdlOiAgICAgICAgICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxp bmUgIDE2KQogIC0gZG9jLXZpZXctb3Blbi10ZXh0OiAgICAgICAgICAgICAgICAgICAgRG9jdW1l bnQgVmlldy4gICAgICAgKGxpbmUgIDIyKQogIC0gZG9jLXZpZXctcHJldmlvdXMtcGFnZTogICAg ICAgICAgICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDE2KQogIC0gZG9jLXZpZXct cmVzZXQtc2xpY2U6ICAgICAgICAgICAgICAgICAgRG9jVmlldyBTbGljaW5nLiAgICAgKGxpbmUg IDI3KQogIC0gZG9jLXZpZXctc2Nyb2xsLWRvd24tb3ItcHJldmlvdXMtcGFnZTogRG9jVmlldyBO YXZpZ2F0aW9uLiAgKGxpbmUgIDIwKQogIC0gZG9jLXZpZXctc2Nyb2xsLXVwLW9yLW5leHQtcGFn ZTogICAgICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDIwKQogIC0gZG9jLXZpZXctc2Vh cmNoOiAgICAgICAgICAgICAgICAgICAgICAgRG9jVmlldyBTZWFyY2hpbmcuICAgKGxpbmUgIDEw KQogIC0gZG9jLXZpZXctc2VhcmNoLWJhY2t3YXJkOiAgICAgICAgICAgICAgRG9jVmlldyBTZWFy Y2hpbmcuICAgKGxpbmUgIDEwKQogIC0gZG9jLXZpZXctc2V0LXNsaWNlOiAgICAgICAgICAgICAg ICAgICAgRG9jVmlldyBTbGljaW5nLiAgICAgKGxpbmUgIDEwKQogIC0gZG9jLXZpZXctc2V0LXNs aWNlLXVzaW5nLW1vdXNlOiAgICAgICAgRG9jVmlldyBTbGljaW5nLiAgICAgKGxpbmUgIDEwKQog IC0gZG9jLXZpZXctc2hvdy10b29sdGlwOiAgICAgICAgICAgICAgICAgRG9jVmlldyBTZWFyY2hp bmcuICAgKGxpbmUgIDEwKQogIC0gZG9jLXZpZXctc2hyaW5rOiAgICAgICAgICAgICAgICAgICAg ICAgRG9jVmlldyBOYXZpZ2F0aW9uLiAgKGxpbmUgIDI5KQogIC0gZG9jLXZpZXctdG9nZ2xlLWRp c3BsYXk6ICAgICAgICAgICAgICAgRG9jdW1lbnQgVmlldy4gICAgICAgKGxpbmUgIDEzKQogIC0g ZG9jdGV4LW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYIE1vZGUuICAgICAgICAg ICAgKGxpbmUgICA2KQogIC0gZG9jdG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QW11c2VtZW50cy4gICAgICAgICAgKGxpbmUgIDYyKQogIC0gZG9zLW1vZGUyNTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTVMtRE9TIERpc3BsYXkuICAgICAgKGxpbmUgIDQyKQogIC0gZG9z LW1vZGU0MzUwOiAgICAgICAgICAgICAgICAgICAgICAgICAgTVMtRE9TIERpc3BsYXkuICAgICAg KGxpbmUgIDQyKQogIC0gZG93bi1saXN0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92 aW5nIGJ5IFBhcmVucy4gICAgKGxpbmUgIDM5KQogIC0gZG93bmNhc2UtcmVnaW9uOiAgICAgICAg ICAgICAgICAgICAgICAgQ2FzZS4gICAgICAgICAgICAgICAgKGxpbmUgIDQxKQogIC0gZG93bmNh c2Utd29yZDogICAgICAgICAgICAgICAgICAgICAgICAgQ2FzZS4gICAgICAgICAgICAgICAgKGxp bmUgIDIwKQogIC0gZHVubmV0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW11c2Vt ZW50cy4gICAgICAgICAgKGxpbmUgIDM0KQogIC0gZWRpdC1hYmJyZXZzOiAgICAgICAgICAgICAg ICAgICAgICAgICAgRWRpdGluZyBBYmJyZXZzLiAgICAgKGxpbmUgIDQxKQogIC0gZWRpdC1rYmQt bWFjcm86ICAgICAgICAgICAgICAgICAgICAgICAgRWRpdCBLZXlib2FyZCBNYWNyby4gKGxpbmUg IDIwKQogIC0gZWRpdC10YWItc3RvcHM6ICAgICAgICAgICAgICAgICAgICAgICAgVGFiIFN0b3Bz LiAgICAgICAgICAgKGxpbmUgIDE2KQogIC0gZWxkb2MtbW9kZTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzcCBEb2MuICAgICAgICAgICAgKGxpbmUgIDExKQogIC0gZWxlY3RyaWMtaW5k ZW50LW1vZGU6ICAgICAgICAgICAgICAgICAgSW5kZW50IENvbnZlbmllbmNlLiAgKGxpbmUgIDE1 KQogIC0gZWxlY3RyaWMtbGF5b3V0LW1vZGU6ICAgICAgICAgICAgICAgICAgTWlzYyBmb3IgUHJv Z3JhbXMuICAgKGxpbmUgIDI1KQogIC0gZWxlY3RyaWMtcGFpci1tb2RlOiAgICAgICAgICAgICAg ICAgICAgTWF0Y2hpbmcuICAgICAgICAgICAgKGxpbmUgIDYxKQogIC0gZWxlY3RyaWMtcXVvdGUt bW9kZTogICAgICAgICAgICAgICAgICAgUXVvdGF0aW9uIE1hcmtzLiAgICAgKGxpbmUgICA2KQog IC0gZW1hY3MtbGlzcC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgTGlzcCBFdmFsLiAgICAg ICAgICAgKGxpbmUgICA2KQogIC0gZW1hY3MtdmVyc2lvbjogICAgICAgICAgICAgICAgICAgICAg ICAgQ2hlY2tsaXN0LiAgICAgICAgICAgKGxpbmUgIDY0KQogIC0gZW1lcmdlLWF1dG8tYWR2YW5j ZTogICAgICAgICAgICAgICAgICAgU3VibW9kZXMgb2YgRW1lcmdlLiAgKGxpbmUgIDMxKQogIC0g ZW1lcmdlLWJ1ZmZlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcnZpZXcgb2YgRW1lcmdl LiAgKGxpbmUgIDE1KQogIC0gZW1lcmdlLWJ1ZmZlcnMtd2l0aC1hbmNlc3RvcjogICAgICAgICAg T3ZlcnZpZXcgb2YgRW1lcmdlLiAgKGxpbmUgIDE4KQogIC0gZW1lcmdlLWZpbGVzOiAgICAgICAg ICAgICAgICAgICAgICAgICAgT3ZlcnZpZXcgb2YgRW1lcmdlLiAgKGxpbmUgICA5KQogIC0gZW1l cmdlLWZpbGVzLXdpdGgtYW5jZXN0b3I6ICAgICAgICAgICAgT3ZlcnZpZXcgb2YgRW1lcmdlLiAg KGxpbmUgIDEyKQogIC0gZW1lcmdlLXNraXAtcHJlZmVyczogICAgICAgICAgICAgICAgICAgU3Vi bW9kZXMgb2YgRW1lcmdlLiAgKGxpbmUgIDMxKQogIC0gZW5hYmxlLWNvbW1hbmQ6ICAgICAgICAg ICAgICAgICAgICAgICAgRGlzYWJsaW5nLiAgICAgICAgICAgKGxpbmUgIDMzKQogIC0gZW5hYmxl LXRoZW1lOiAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tIFRoZW1lcy4gICAgICAgKGxp bmUgIDY5KQogIC0gZW5kLW9mLWJ1ZmZlcjogICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5n IFBvaW50LiAgICAgICAgKGxpbmUgIDg4KQogIC0gZW5kLW9mLWRlZnVuOiAgICAgICAgICAgICAg ICAgICAgICAgICAgTW92aW5nIGJ5IERlZnVucy4gICAgKGxpbmUgIDE3KQogIC0gZW5kLW9mLXZp c3VhbC1saW5lOiAgICAgICAgICAgICAgICAgICAgVmlzdWFsIExpbmUgTW9kZS4gICAgKGxpbmUg IDIzKQogIC0gZW5sYXJnZS13aW5kb3c6ICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIFdp bmRvdy4gICAgICAgKGxpbmUgIDQyKQogIC0gZW5sYXJnZS13aW5kb3ctaG9yaXpvbnRhbGx5OiAg ICAgICAgICAgQ2hhbmdlIFdpbmRvdy4gICAgICAgKGxpbmUgIDUzKQogIC0gZW5yaWNoZWQtbW9k ZTogICAgICAgICAgICAgICAgICAgICAgICAgRW5yaWNoZWQgTW9kZS4gICAgICAgKGxpbmUgIDEz KQogIC0gZXBhLWRpcmVkLWRvLWRlY3J5cHQ6ICAgICAgICAgICAgICAgICAgT3BlcmF0aW5nIG9u IEZpbGVzLiAgKGxpbmUgMTE4KQogIC0gZXBhLWRpcmVkLWRvLWVuY3J5cHQ6ICAgICAgICAgICAg ICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUgMTMwKQogIC0gZXBhLWRpcmVkLWRvLXNp Z246ICAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUgMTI2KQog IC0gZXBhLWRpcmVkLWRvLXZlcmlmeTogICAgICAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZp bGVzLiAgKGxpbmUgMTIyKQogIC0gZXZhbC1idWZmZXI6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzcCBFdmFsLiAgICAgICAgICAgKGxpbmUgIDY5KQogIC0gZXZhbC1kZWZ1bjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzcCBFdmFsLiAgICAgICAgICAgKGxpbmUgIDUyKQogIC0g ZXZhbC1leHByZXNzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgTGlzcCBFdmFsLiAgICAgICAg ICAgKGxpbmUgIDMxKQogIC0gZXZhbC1sYXN0LXNleHA6ICAgICAgICAgICAgICAgICAgICAgICAg TGlzcCBFdmFsLiAgICAgICAgICAgKGxpbmUgIDM2KQogIC0gZXZhbC1wcmludC1sYXN0LXNleHA6 ICAgICAgICAgICAgICAgICAgTGlzcCBJbnRlcmFjdGlvbi4gICAgKGxpbmUgIDExKQogIC0gZXZh bC1yZWdpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcCBFdmFsLiAgICAgICAgICAg KGxpbmUgIDY5KQogIC0gZXd3OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVdX LiAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZXd3LW9wZW4tZmlsZTogICAgICAgICAg ICAgICAgICAgICAgICAgRVdXLiAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZXd3LXNl YXJjaC13b3JkczogICAgICAgICAgICAgICAgICAgICAgV29yZCBTZWFyY2guICAgICAgICAgKGxp bmUgIDU1KQogIC0gZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcms6ICAgICAgICAgICAgICAgU2V0dGlu ZyBNYXJrLiAgICAgICAgKGxpbmUgIDQzKQogIC0gZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmssIGlu IHJlY3RhbmdsZS1tYXJrLW1vZGU6IFJlY3RhbmdsZXMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgMTMyKQogIC0gZXhl Y3V0ZS1leHRlbmRlZC1jb21tYW5kOiAgICAgICAgICAgICAgTS14LiAgICAgICAgICAgICAgICAg KGxpbmUgIDc0KQogIC0gZXhpdC1jYWxlbmRhcjogICAgICAgICAgICAgICAgICAgICAgICAgR2Vu ZXJhbCBDYWxlbmRhci4gICAgKGxpbmUgIDMzKQogIC0gZXhpdC1yZWN1cnNpdmUtZWRpdDogICAg ICAgICAgICAgICAgICAgUmVjdXJzaXZlIEVkaXQuICAgICAgKGxpbmUgIDEzKQogIC0gZXhwYW5k LWFiYnJldjogICAgICAgICAgICAgICAgICAgICAgICAgRXhwYW5kaW5nIEFiYnJldnMuICAgKGxp bmUgIDI2KQogIC0gZXhwYW5kLXJlZ2lvbi1hYmJyZXZzOiAgICAgICAgICAgICAgICAgRXhwYW5k aW5nIEFiYnJldnMuICAgKGxpbmUgIDYxKQogIC0gZjkwLWJlZ2lubmluZy1vZi1ibG9jazogICAg ICAgICAgICAgICAgRm9ydHJhbiBNb3Rpb24uICAgICAgKGxpbmUgIDQxKQogIC0gZjkwLWVuZC1v Zi1ibG9jazogICAgICAgICAgICAgICAgICAgICAgRm9ydHJhbiBNb3Rpb24uICAgICAgKGxpbmUg IDMzKQogIC0gZjkwLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9ydHJhbi4g ICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZjkwLW5leHQtYmxvY2s6ICAgICAgICAgICAgICAg ICAgICAgICAgRm9ydHJhbiBNb3Rpb24uICAgICAgKGxpbmUgIDIyKQogIC0gZjkwLW5leHQtc3Rh dGVtZW50OiAgICAgICAgICAgICAgICAgICAgRm9ydHJhbiBNb3Rpb24uICAgICAgKGxpbmUgIDEy KQogIC0gZjkwLXByZXZpb3VzLWJsb2NrOiAgICAgICAgICAgICAgICAgICAgRm9ydHJhbiBNb3Rp b24uICAgICAgKGxpbmUgIDI5KQogIC0gZjkwLXByZXZpb3VzLXN0YXRlbWVudDogICAgICAgICAg ICAgICAgRm9ydHJhbiBNb3Rpb24uICAgICAgKGxpbmUgIDE2KQogIC0gZmFjZW1lbnUtcmVtb3Zl LWFsbDogICAgICAgICAgICAgICAgICAgRWRpdGluZyBGb3JtYXQgSW5mby4gKGxpbmUgIDE2KQog IC0gZmFjZW1lbnUtcmVtb3ZlLWZhY2UtcHJvcHM6ICAgICAgICAgICAgRWRpdGluZyBGb3JtYXQg SW5mby4gKGxpbmUgIDEyKQogIC0gZmFjZW1lbnUtc2V0LWJhY2tncm91bmQ6ICAgICAgICAgICAg ICAgRW5yaWNoZWQgRmFjZXMuICAgICAgKGxpbmUgIDM0KQogIC0gZmFjZW1lbnUtc2V0LWJvbGQ6 ICAgICAgICAgICAgICAgICAgICAgRW5yaWNoZWQgRmFjZXMuICAgICAgKGxpbmUgIDE1KQogIC0g ZmFjZW1lbnUtc2V0LWJvbGQtaXRhbGljOiAgICAgICAgICAgICAgRW5yaWNoZWQgRmFjZXMuICAg ICAgKGxpbmUgIDIxKQogIC0gZmFjZW1lbnUtc2V0LWRlZmF1bHQ6ICAgICAgICAgICAgICAgICAg RW5yaWNoZWQgRmFjZXMuICAgICAgKGxpbmUgIDEyKQogIC0gZmFjZW1lbnUtc2V0LWZhY2U6ICAg ICAgICAgICAgICAgICAgICAgRW5yaWNoZWQgRmFjZXMuICAgICAgKGxpbmUgIDI3KQogIC0gZmFj ZW1lbnUtc2V0LWZvcmVncm91bmQ6ICAgICAgICAgICAgICAgRW5yaWNoZWQgRmFjZXMuICAgICAg KGxpbmUgIDMwKQogIC0gZmFjZW1lbnUtc2V0LWl0YWxpYzogICAgICAgICAgICAgICAgICAgRW5y aWNoZWQgRmFjZXMuICAgICAgKGxpbmUgIDE4KQogIC0gZmFjZW1lbnUtc2V0LXVuZGVybGluZTog ICAgICAgICAgICAgICAgRW5yaWNoZWQgRmFjZXMuICAgICAgKGxpbmUgIDI0KQogIC0gZmYtZmlu ZC1yZWxhdGVkLWZpbGU6ICAgICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxp bmUgIDk0KQogIC0gZmZhcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZBUC4g ICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZmZhcC1tZW51OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkZBUC4gICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZmZhcC1tb2Rl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZBUC4gICAgICAgICAgICAgICAgKGxpbmUg IDE4KQogIC0gZmZhcC1uZXh0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkZBUC4gICAg ICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZmlsZS1jYWNoZS1hZGQtZGlyZWN0b3J5OiAgICAg ICAgICAgICAgRmlsZSBOYW1lIENhY2hlLiAgICAgKGxpbmUgIDE3KQogIC0gZmlsZS1jYWNoZS1t aW5pYnVmZmVyLWNvbXBsZXRlOiAgICAgICAgRmlsZSBOYW1lIENhY2hlLiAgICAgKGxpbmUgICA2 KQogIC0gZmlsZS1uYW1lLXNoYWRvdy1tb2RlOiAgICAgICAgICAgICAgICAgTWluaWJ1ZmZlciBG aWxlLiAgICAgKGxpbmUgIDM0KQogIC0gZmlsZXNldHMtYWRkLWJ1ZmZlcjogICAgICAgICAgICAg ICAgICAgRmlsZXNldHMuICAgICAgICAgICAgKGxpbmUgIDEzKQogIC0gZmlsZXNldHMtaW5pdDog ICAgICAgICAgICAgICAgICAgICAgICAgRmlsZXNldHMuICAgICAgICAgICAgKGxpbmUgICA2KQog IC0gZmlsZXNldHMtcmVtb3ZlLWJ1ZmZlcjogICAgICAgICAgICAgICAgRmlsZXNldHMuICAgICAg ICAgICAgKGxpbmUgIDEzKQogIC0gZmlsbC1pbmRpdmlkdWFsLXBhcmFncmFwaHM6ICAgICAgICAg ICAgRmlsbCBQcmVmaXguICAgICAgICAgKGxpbmUgIDYxKQogIC0gZmlsbC1ub251bmlmb3JtLXBh cmFncmFwaHM6ICAgICAgICAgICAgRmlsbCBQcmVmaXguICAgICAgICAgKGxpbmUgIDY4KQogIC0g ZmlsbC1wYXJhZ3JhcGg6ICAgICAgICAgICAgICAgICAgICAgICAgRmlsbCBDb21tYW5kcy4gICAg ICAgKGxpbmUgIDE3KQogIC0gZmlsbC1yZWdpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAg RmlsbCBDb21tYW5kcy4gICAgICAgKGxpbmUgIDIyKQogIC0gZmlsbC1yZWdpb24tYXMtcGFyYWdy YXBoOiAgICAgICAgICAgICAgRmlsbCBDb21tYW5kcy4gICAgICAgKGxpbmUgIDI3KQogIC0gZmlu ZC1hbHRlcm5hdGUtZmlsZTogICAgICAgICAgICAgICAgICAgVmlzaXRpbmcuICAgICAgICAgICAg KGxpbmUgIDgwKQogIC0gZmluZC1kaXJlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGly ZWQgYW5kIEZpbmQuICAgICAgKGxpbmUgIDI2KQogIC0gZmluZC1maWxlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVmlzaXRpbmcuICAgICAgICAgICAgKGxpbmUgIDI3KQogIC0gZmluZC1m aWxlLWF0LXBvaW50OiAgICAgICAgICAgICAgICAgICAgRkZBUC4gICAgICAgICAgICAgICAgKGxp bmUgICA2KQogIC0gZmluZC1maWxlLWxpdGVyYWxseTogICAgICAgICAgICAgICAgICAgVmlzaXRp bmcuICAgICAgICAgICAgKGxpbmUgMTQ2KQogIC0gZmluZC1maWxlLW90aGVyLWZyYW1lOiAgICAg ICAgICAgICAgICAgVmlzaXRpbmcuICAgICAgICAgICAgKGxpbmUgMTE2KQogIC0gZmluZC1maWxl LW90aGVyLXdpbmRvdzogICAgICAgICAgICAgICAgVmlzaXRpbmcuICAgICAgICAgICAgKGxpbmUg MTA4KQogIC0gZmluZC1maWxlLXJlYWQtb25seTogICAgICAgICAgICAgICAgICAgVmlzaXRpbmcu ICAgICAgICAgICAgKGxpbmUgMTA0KQogIC0gZmluZC1maWxlLXJlYWQtb25seS1vdGhlci1mcmFt ZTogICAgICAgQ3JlYXRpbmcgRnJhbWVzLiAgICAgKGxpbmUgIDM3KQogIC0gZmluZC1ncmVwOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JlcCBTZWFyY2hpbmcuICAgICAgKGxpbmUgIDY0 KQogIC0gZmluZC1ncmVwLWRpcmVkOiAgICAgICAgICAgICAgICAgICAgICAgRGlyZWQgYW5kIEZp bmQuICAgICAgKGxpbmUgIDE3KQogIC0gZmluZC1uYW1lLWRpcmVkOiAgICAgICAgICAgICAgICAg ICAgICAgRGlyZWQgYW5kIEZpbmQuICAgICAgKGxpbmUgICA5KQogIC0gZmluZC10YWctb3RoZXIt d2luZG93OiAgICAgICAgICAgICAgICAgUG9wIFVwIFdpbmRvdy4gICAgICAgKGxpbmUgIDMyKQog IC0gZmluZGVyLWJ5LWtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSBLZXl3b3Jk cy4gICAgKGxpbmUgIDEwKQogIC0gZmx1c2gtbGluZXM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgOTMpCiAgLSBmbHlzcGVsbC1h dXRvLWNvcnJlY3Qtd29yZDogICAgICAgICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAx NjQpCiAgLSBmbHlzcGVsbC1jb3JyZWN0LXdvcmQ6ICAgICAgICAgICAgICAgICBTcGVsbGluZy4g ICAgICAgICAgICAobGluZSAxNjQpCiAgLSBmbHlzcGVsbC1jb3JyZWN0LXdvcmQtYmVmb3JlLXBv aW50OiAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxNjQpCiAgLSBmbHlzcGVsbC1tb2Rl OiAgICAgICAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxNTQp CiAgLSBmbHlzcGVsbC1wcm9nLW1vZGU6ICAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAg ICAgICAgICAobGluZSAxNzMpCiAgLSBmb2xkb3V0LWV4aXQtZm9sZDogICAgICAgICAgICAgICAg ICAgICBGb2xkb3V0LiAgICAgICAgICAgICAobGluZSAgNDIpCiAgLSBmb2xkb3V0LXpvb20tc3Vi dHJlZTogICAgICAgICAgICAgICAgICBGb2xkb3V0LiAgICAgICAgICAgICAobGluZSAgMTUpCiAg LSBmb2xsb3ctbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBGb2xsb3cgTW9kZS4gICAg ICAgICAobGluZSAgIDYpCiAgLSBmb250LWxvY2stYWRkLWtleXdvcmRzOiAgICAgICAgICAgICAg ICBGb250IExvY2suICAgICAgICAgICAobGluZSAgNjMpCiAgLSBmb250LWxvY2stbW9kZTogICAg ICAgICAgICAgICAgICAgICAgICBGb250IExvY2suICAgICAgICAgICAobGluZSAgMTIpCiAgLSBm b250LWxvY2stcmVtb3ZlLWtleXdvcmRzOiAgICAgICAgICAgICBGb250IExvY2suICAgICAgICAg ICAobGluZSAgNzUpCiAgLSBmb3JtYXQtZGVjb2RlLWJ1ZmZlcjogICAgICAgICAgICAgICAgICBF bnJpY2hlZCBNb2RlLiAgICAgICAobGluZSAgMjUpCiAgLSBmb3J0cmFuLWJlZ2lubmluZy1vZi1i bG9jazogICAgICAgICAgICBGb3J0cmFuIE1vdGlvbi4gICAgICAobGluZSAgNDEpCiAgLSBmb3J0 cmFuLWNvbHVtbi1ydWxlcjogICAgICAgICAgICAgICAgICBGb3J0cmFuIENvbHVtbnMuICAgICAo bGluZSAgMzMpCiAgLSBmb3J0cmFuLWNvbW1lbnQtcmVnaW9uOiAgICAgICAgICAgICAgICBGb3J0 cmFuIENvbW1lbnRzLiAgICAobGluZSAgNzgpCiAgLSBmb3J0cmFuLWVuZC1vZi1ibG9jazogICAg ICAgICAgICAgICAgICBGb3J0cmFuIE1vdGlvbi4gICAgICAobGluZSAgMzMpCiAgLSBmb3J0cmFu LWluZGVudC1zdWJwcm9ncmFtOiAgICAgICAgICAgICBGb3JJbmRlbnQgQ29tbWFuZHMuICAobGlu ZSAgMjEpCiAgLSBmb3J0cmFuLWpvaW4tbGluZTogICAgICAgICAgICAgICAgICAgICBGb3JJbmRl bnQgQ29tbWFuZHMuICAobGluZSAgMzApCiAgLSBmb3J0cmFuLW1vZGU6ICAgICAgICAgICAgICAg ICAgICAgICAgICBGb3J0cmFuLiAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBmb3J0cmFuLW5l eHQtc3RhdGVtZW50OiAgICAgICAgICAgICAgICBGb3J0cmFuIE1vdGlvbi4gICAgICAobGluZSAg MTIpCiAgLSBmb3J0cmFuLXByZXZpb3VzLXN0YXRlbWVudDogICAgICAgICAgICBGb3J0cmFuIE1v dGlvbi4gICAgICAobGluZSAgMTYpCiAgLSBmb3J0cmFuLXNwbGl0LWxpbmU6ICAgICAgICAgICAg ICAgICAgICBGb3JJbmRlbnQgQ29tbWFuZHMuICAobGluZSAgMjUpCiAgLSBmb3J0cmFuLXN0cmlw LXNlcXVlbmNlLW5vczogICAgICAgICAgICBGb3J0cmFuIENvbHVtbnMuICAgICAobGluZSAgNjMp CiAgLSBmb3J0cmFuLXdpbmRvdy1jcmVhdGU6ICAgICAgICAgICAgICAgICBGb3J0cmFuIENvbHVt bnMuICAgICAobGluZSAgNTgpCiAgLSBmb3J0cmFuLXdpbmRvdy1jcmVhdGUtbW9tZW50YXJpbHk6 ICAgICBGb3J0cmFuIENvbHVtbnMuICAgICAobGluZSAgNTMpCiAgLSBmb3J0dW5lLXRvLXNpZ25h dHVyZTogICAgICAgICAgICAgICAgICBNYWlsIEFtdXNlbWVudHMuICAgICAobGluZSAgMTkpCiAg LSBmb3J3YXJkLWJ1dHRvbjogICAgICAgICAgICAgICAgICAgICAgICBIZWxwIE1vZGUuICAgICAg ICAgICAobGluZSAgNDMpCiAgLSBmb3J3YXJkLWNoYXI6ICAgICAgICAgICAgICAgICAgICAgICAg ICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgMTkpCiAgLSBmb3J3YXJkLWxpc3Q6ICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkgUGFyZW5zLiAgICAobGluZSAgMjgpCiAgLSBm b3J3YXJkLXBhZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICBQYWdlcy4gICAgICAgICAgICAg ICAobGluZSAgMzEpCiAgLSBmb3J3YXJkLXBhcmFncmFwaDogICAgICAgICAgICAgICAgICAgICBQ YXJhZ3JhcGhzLiAgICAgICAgICAobGluZSAgMTYpCiAgLSBmb3J3YXJkLXNlbnRlbmNlOiAgICAg ICAgICAgICAgICAgICAgICBTZW50ZW5jZXMuICAgICAgICAgICAobGluZSAgMTkpCiAgLSBmb3J3 YXJkLXNleHA6ICAgICAgICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9ucy4gICAgICAgICAo bGluZSAgMjUpCiAgLSBmb3J3YXJkLXdvcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBXb3Jk cy4gICAgICAgICAgICAgICAobGluZSAgMjYpCiAgLSBmcmFtZXNldC10by1yZWdpc3RlcjogICAg ICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIFJlZ2lzdGVycy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAg LSBmcmluZ2UtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBGcmluZ2VzLiAgICAgICAg ICAgICAobGluZSAgIDYpCiAgLSBnZGI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTdGFydGluZyBHVUQuICAgICAgICAobGluZSAgMTApCiAgLSBnZGItZGVsZXRlLWJyZWFrcG9p bnQ6ICAgICAgICAgICAgICAgICBCcmVha3BvaW50cyBCdWZmZXIuICAobGluZSAgMTgpCiAgLSBn ZGItZGlzcGxheS1kaXNhc3NlbWJseS1mb3ItdGhyZWFkOiAgICBUaHJlYWRzIEJ1ZmZlci4gICAg ICAobGluZSAgMzEpCiAgLSBnZGItZGlzcGxheS1sb2NhbHMtZm9yLXRocmVhZDogICAgICAgICBU aHJlYWRzIEJ1ZmZlci4gICAgICAobGluZSAgMzkpCiAgLSBnZGItZGlzcGxheS1yZWdpc3RlcnMt Zm9yLXRocmVhZDogICAgICBUaHJlYWRzIEJ1ZmZlci4gICAgICAobGluZSAgNDMpCiAgLSBnZGIt ZGlzcGxheS1zdGFjay1mb3ItdGhyZWFkOiAgICAgICAgICBUaHJlYWRzIEJ1ZmZlci4gICAgICAo bGluZSAgMzUpCiAgLSBnZGItZWRpdC12YWx1ZTogICAgICAgICAgICAgICAgICAgICAgICBXYXRj aCBFeHByZXNzaW9ucy4gICAobGluZSAgMjgpCiAgLSBnZGItZnJhbWVzLXNlbGVjdDogICAgICAg ICAgICAgICAgICAgICBTdGFjayBCdWZmZXIuICAgICAgICAobGluZSAgMTApCiAgLSBnZGItZ290 by1icmVha3BvaW50OiAgICAgICAgICAgICAgICAgICBCcmVha3BvaW50cyBCdWZmZXIuICAobGlu ZSAgMjEpCiAgLSBnZGItbWFueS13aW5kb3dzOiAgICAgICAgICAgICAgICAgICAgICBHREIgVXNl ciBJbnRlcmZhY2UgTGF5b3V0LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyMykKICAtIGdkYi1yZXN0b3JlLXdpbmRv d3M6ICAgICAgICAgICAgICAgICAgIEdEQiBVc2VyIEludGVyZmFjZSBMYXlvdXQuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDIzKQogIC0gZ2RiLXNlbGVjdC10aHJlYWQ6ICAgICAgICAgICAgICAgICAgICAgVGhyZWFk cyBCdWZmZXIuICAgICAgKGxpbmUgICA2KQogIC0gZ2RiLXRvZ2dsZS1icmVha3BvaW50OiAgICAg ICAgICAgICAgICAgQnJlYWtwb2ludHMgQnVmZmVyLiAgKGxpbmUgIDEyKQogIC0gZ2RiLXZhci1k ZWxldGU6ICAgICAgICAgICAgICAgICAgICAgICAgV2F0Y2ggRXhwcmVzc2lvbnMuICAgKGxpbmUg IDI1KQogIC0gZ2V0ZW52OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1l bnQuICAgICAgICAgKGxpbmUgIDE5KQogIC0gZ2xvYmFsLWF1dG8tcmV2ZXJ0LW1vZGU6ICAgICAg ICAgICAgICAgUmV2ZXJ0aW5nLiAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gZ2xvYmFsLWN3YXJu LW1vZGU6ICAgICAgICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxpbmUgIDcx KQogIC0gZ2xvYmFsLWRpc3BsYXktbGluZS1udW1iZXJzLW1vZGU6ICAgICAgRGlzcGxheSBDdXN0 b20uICAgICAgKGxpbmUgIDM5KQogIC0gZ2xvYmFsLWVsZG9jLW1vZGU6ICAgICAgICAgICAgICAg ICAgICAgTGlzcCBEb2MuICAgICAgICAgICAgKGxpbmUgIDExKQogIC0gZ2xvYmFsLWZvbnQtbG9j ay1tb2RlOiAgICAgICAgICAgICAgICAgRm9udCBMb2NrLiAgICAgICAgICAgKGxpbmUgIDE3KQog IC0gZ2xvYmFsLWhsLWxpbmUtbW9kZTogICAgICAgICAgICAgICAgICAgQ3Vyc29yIERpc3BsYXku ICAgICAgKGxpbmUgIDUzKQogIC0gZ2xvYmFsLXNldC1rZXk6ICAgICAgICAgICAgICAgICAgICAg ICAgUmViaW5kaW5nLiAgICAgICAgICAgKGxpbmUgIDE2KQogIC0gZ2xvYmFsLXVuc2V0LWtleTog ICAgICAgICAgICAgICAgICAgICAgUmViaW5kaW5nLiAgICAgICAgICAgKGxpbmUgIDE2KQogIC0g Z2xvYmFsLXZpc3VhbC1saW5lLW1vZGU6ICAgICAgICAgICAgICAgVmlzdWFsIExpbmUgTW9kZS4g ICAgKGxpbmUgIDE0KQogIC0gZ2xvYmFsLXdoaXRlc3BhY2UtbW9kZTogICAgICAgICAgICAgICAg VXNlbGVzcyBXaGl0ZXNwYWNlLiAgKGxpbmUgIDg4KQogIC0gZ2xvYmFsLXdoaXRlc3BhY2UtdG9n Z2xlLW9wdGlvbnM6ICAgICAgVXNlbGVzcyBXaGl0ZXNwYWNlLiAgKGxpbmUgIDg4KQogIC0gZ251 czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR251cyBTdGFydHVwLiAgICAgICAg KGxpbmUgICA2KQogIC0gZ251cy1ncm91cC1leGl0OiAgICAgICAgICAgICAgICAgICAgICAgR251 cyBHcm91cCBCdWZmZXIuICAgKGxpbmUgIDUzKQogIC0gZ251cy1ncm91cC1raWxsLWdyb3VwOiAg ICAgICAgICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxpbmUgIDM2KQogIC0gZ251cy1n cm91cC1saXN0LWFsbC1ncm91cHM6ICAgICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxp bmUgIDE4KQogIC0gZ251cy1ncm91cC1saXN0LWdyb3VwczogICAgICAgICAgICAgICAgR251cyBH cm91cCBCdWZmZXIuICAgKGxpbmUgIDEyKQogIC0gZ251cy1ncm91cC1saXN0LWtpbGxlZDogICAg ICAgICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxpbmUgIDIzKQogIC0gZ251cy1ncm91 cC1saXN0LXpvbWJpZXM6ICAgICAgICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxpbmUg IDI2KQogIC0gZ251cy1ncm91cC1uZXh0LXVucmVhZC1ncm91cDogICAgICAgICAgR251cyBHcm91 cCBCdWZmZXIuICAgKGxpbmUgIDQ1KQogIC0gZ251cy1ncm91cC1wcmV2LXVucmVhZC1ncm91cDog ICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxpbmUgIDQ5KQogIC0gZ251cy1ncm91cC1y ZWFkLWdyb3VwOiAgICAgICAgICAgICAgICAgR251cyBHcm91cCBCdWZmZXIuICAgKGxpbmUgICA4 KQogIC0gZ251cy1ncm91cC11bnN1YnNjcmliZS1jdXJyZW50LWdyb3VwOiAgR251cyBHcm91cCBC dWZmZXIuICAgKGxpbmUgIDI5KQogIC0gZ251cy1zdW1tYXJ5LWlzZWFyY2gtYXJ0aWNsZTogICAg ICAgICAgR251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgIDI4KQogIC0gZ251cy1zdW1tYXJ5LW5l eHQtcGFnZTogICAgICAgICAgICAgICAgR251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgICA4KQog IC0gZ251cy1zdW1tYXJ5LW5leHQtdW5yZWFkLWFydGljbGU6ICAgICAgR251cyBTdW1tYXJ5IEJ1 ZmZlci4gKGxpbmUgIDIwKQogIC0gZ251cy1zdW1tYXJ5LXByZXYtcGFnZTogICAgICAgICAgICAg ICAgR251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgIDE2KQogIC0gZ251cy1zdW1tYXJ5LXByZXYt dW5yZWFkLWFydGljbGU6ICAgICAgR251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgIDI0KQogIC0g Z251cy1zdW1tYXJ5LXNlYXJjaC1hcnRpY2xlLWJhY2t3YXJkOiAgR251cyBTdW1tYXJ5IEJ1ZmZl ci4gKGxpbmUgIDM3KQogIC0gZ251cy1zdW1tYXJ5LXNlYXJjaC1hcnRpY2xlLWZvcndhcmQ6ICAg R251cyBTdW1tYXJ5IEJ1ZmZlci4gKGxpbmUgIDMzKQogIC0gZ29tb2t1OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAgKGxpbmUgIDM2KQogIC0gZ290 by1hZGRyZXNzLWF0LXBvaW50OiAgICAgICAgICAgICAgICAgR290byBBZGRyZXNzIG1vZGUuICAg KGxpbmUgICA5KQogIC0gZ290by1hZGRyZXNzLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgR290 byBBZGRyZXNzIG1vZGUuICAgKGxpbmUgICA2KQogIC0gZ290by1jaGFyOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgMTA0KQogIC0gZ290by1m b2xsb3d1cC10bzogICAgICAgICAgICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxp bmUgIDMwKQogIC0gZ290by1saW5lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5n IFBvaW50LiAgICAgICAgKGxpbmUgMTA5KQogIC0gZ290by1saW5lLCB3aXRoIGFuIGFyZ3VtZW50 OiAgICAgICAgICAgU2VsZWN0IEJ1ZmZlci4gICAgICAgKGxpbmUgIDcwKQogIC0gZ290by1yZXBs eS10bzogICAgICAgICAgICAgICAgICAgICAgICAgSGVhZGVyIEVkaXRpbmcuICAgICAgKGxpbmUg IDMwKQogIC0gZ3BtLW1vdXNlLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgVGV4dC1Pbmx5 IE1vdXNlLiAgICAgKGxpbmUgIDE3KQogIC0gZ3JlcDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR3JlcCBTZWFyY2hpbmcuICAgICAgKGxpbmUgIDI1KQogIC0gZ3JlcCAoTVMtRE9T KTogICAgICAgICAgICAgICAgICAgICAgICAgTVMtRE9TIFByb2Nlc3Nlcy4gICAgKGxpbmUgICA2 KQogIC0gZ3JlcC1maW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JlcCBTZWFyY2hp bmcuICAgICAgKGxpbmUgIDY0KQogIC0gZ3VkLWNvbnQ6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDUyKQogIC0gZ3VkLWRlZjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR1VEIEN1c3RvbWl6YXRpb24uICAgKGxpbmUgIDE4KQog IC0gZ3VkLWRvd246ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VE LiAgICAgKGxpbmUgIDc1KQogIC0gZ3VkLWZpbmlzaDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDg3KQogIC0gZ3VkLWdkYjogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU3RhcnRpbmcgR1VELiAgICAgICAgKGxpbmUgIDE1KQogIC0g Z3VkLWdkYi1jb21wbGV0ZS1jb21tYW5kOiAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAg ICAgKGxpbmUgMTAyKQogIC0gZ3VkLWp1bXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDkzKQogIC0gZ3VkLW5leHQ6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDM3KQogIC0gZ3Vk LXByaW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAg KGxpbmUgIDQ2KQogIC0gZ3VkLXJlZnJlc2g6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29t bWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDI2KQogIC0gZ3VkLXJlbW92ZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDU4KQogIC0gZ3VkLXN0 ZXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxp bmUgIDMxKQogIC0gZ3VkLXN0ZXBpOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFu ZHMgb2YgR1VELiAgICAgKGxpbmUgIDQyKQogIC0gZ3VkLXRicmVhazogICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDY0KQogIC0gZ3VkLXRvb2x0 aXAtbW9kZTogICAgICAgICAgICAgICAgICAgICAgRGVidWdnZXIgT3BlcmF0aW9uLiAgKGxpbmUg IDMyKQogIC0gZ3VkLXVudGlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZHMg b2YgR1VELiAgICAgKGxpbmUgIDgwKQogIC0gZ3VkLXVwOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29tbWFuZHMgb2YgR1VELiAgICAgKGxpbmUgIDcwKQogIC0gZ3VkLXdhdGNoOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2F0Y2ggRXhwcmVzc2lvbnMuICAgKGxpbmUgICA2 KQogIC0gZ3VpbGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRpbmcgR1VE LiAgICAgICAgKGxpbmUgIDMzKQogIC0gaGFuZHdyaXRlOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDU0KQogIC0gaGFub2k6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAgKGxpbmUgIDM5KQog IC0gaGVscC1jb21tYW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscC4gICAgICAgICAg ICAgICAgKGxpbmUgICA2KQogIC0gaGVscC1mb2xsb3c6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgSGVscCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDI5KQogIC0gaGVscC1mb3ItaGVscDogICAg ICAgICAgICAgICAgICAgICAgICAgSGVscC4gICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0g aGVscC1nby1iYWNrOiAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscCBNb2RlLiAgICAgICAg ICAgKGxpbmUgIDI5KQogIC0gaGVscC1nby1mb3J3YXJkOiAgICAgICAgICAgICAgICAgICAgICAg SGVscCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDI5KQogIC0gaGVscC13aXRoLXR1dG9yaWFsOiAg ICAgICAgICAgICAgICAgICAgQmFzaWMuICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gaGkt bG9jay1maW5kLXBhdHRlcm5zOiAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZl bHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDg4KQogIC0gaGktbG9jay1tb2RlOiAgICAgICAgICAgICAgICAgICAg ICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDExKQogIC0gaGktbG9j ay13cml0ZS1pbnRlcmFjdGl2ZS1wYXR0ZXJuczogICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHku CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDc2KQogIC0gaGlkZS1pZmRlZi1tb2RlOiAgICAgICAgICAgICAgICAgICAg ICAgT3RoZXIgQyBDb21tYW5kcy4gICAgKGxpbmUgIDg2KQogIC0gaGlkZS1zdWJsZXZlbHM6ICAg ICAgICAgICAgICAgICAgICAgICAgT3V0bGluZSBWaXNpYmlsaXR5LiAgKGxpbmUgIDcyKQogIC0g aGlnaGxpZ2h0LWNoYW5nZXMtbW9kZTogICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0 aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gaGlnaGxpZ2h0LWxpbmVzLW1hdGNoaW5nLXJlZ2V4 cDogICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDU5KQogIC0gaGln aGxpZ2h0LXBocmFzZTogICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZl bHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDY0KQogIC0gaGlnaGxpZ2h0LXJlZ2V4cDogICAgICAgICAgICAgICAg ICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gaGlnaGxp Z2h0LXN5bWJvbC1hdC1wb2ludDogICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHku CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDcxKQogIC0gaGwtbGluZS1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3Vyc29yIERpc3BsYXkuICAgICAgKGxpbmUgIDUzKQogIC0gaG9saWRheXM6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSG9saWRheXMuICAgICAgICAgICAgKGxpbmUgIDQ4KQogIC0g aG9yaXpvbnRhbC1zY3JvbGwtYmFyLW1vZGU6ICAgICAgICAgICAgU2Nyb2xsIEJhcnMuICAgICAg ICAgKGxpbmUgIDgwKQogIC0gaG93LW1hbnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgODgpCiAgLSBocy1oaWRlLWFsbDog ICAgICAgICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAgMTkp CiAgLSBocy1oaWRlLWJsb2NrOiAgICAgICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4gICAg ICAgICAgICAobGluZSAgMTkpCiAgLSBocy1oaWRlLWxldmVsOiAgICAgICAgICAgICAgICAgICAg ICAgICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAgMTkpCiAgLSBocy1taW5vci1tb2RlOiAg ICAgICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAgIDYpCiAg LSBocy1zaG93LWFsbDogICAgICAgICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4gICAgICAg ICAgICAobGluZSAgMTkpCiAgLSBocy1zaG93LWJsb2NrOiAgICAgICAgICAgICAgICAgICAgICAg ICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAgMTkpCiAgLSBocy1zaG93LXJlZ2lvbjogICAg ICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAgMTkpCiAgLSBo dG1sLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVE1MIE1vZGUuICAgICAgICAg ICAobGluZSAgIDYpCiAgLSBodG1sZm9udGlmeS1idWZmZXI6ICAgICAgICAgICAgICAgICAgICBQ cmludGluZy4gICAgICAgICAgICAobGluZSAgMTApCiAgLSBpYnVmZmVyOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCdWZmZXIgTWVudXMuICAgICAgICAobGluZSAgMjkpCiAgLSBpY2Fs ZW5kYXItZXhwb3J0LWZpbGU6ICAgICAgICAgICAgICAgICBJbXBvcnRpbmcgRGlhcnkuICAgICAo bGluZSAgMzgpCiAgLSBpY2FsZW5kYXItZXhwb3J0LXJlZ2lvbjogICAgICAgICAgICAgICBJbXBv cnRpbmcgRGlhcnkuICAgICAobGluZSAgMzgpCiAgLSBpY2FsZW5kYXItaW1wb3J0LWJ1ZmZlcjog ICAgICAgICAgICAgICBJbXBvcnRpbmcgRGlhcnkuICAgICAobGluZSAgMjEpCiAgLSBpY2FsZW5k YXItaW1wb3J0LWZpbGU6ICAgICAgICAgICAgICAgICBJbXBvcnRpbmcgRGlhcnkuICAgICAobGlu ZSAgMjgpCiAgLSBpY29tcGxldGUtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICBJY29tcGxl dGUuICAgICAgICAgICAobGluZSAgIDYpCiAgLSBpZWxtOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXNwIEludGVyYWN0aW9uLiAgICAobGluZSAgMjUpCiAgLSBpbWFnZS1kZWNy ZWFzZS1zcGVlZDogICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAg MzQpCiAgLSBpbWFnZS1kaXJlZC1kaXNwbGF5LXRodW1iczogICAgICAgICAgICBJbWFnZS1EaXJl ZC4gICAgICAgICAobGluZSAgMTApCiAgLSBpbWFnZS1nb3RvLWZyYW1lOiAgICAgICAgICAgICAg ICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQpCiAgLSBpbWFnZS1pbmNyZWFz ZS1zcGVlZDogICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQp CiAgLSBpbWFnZS1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmll bmNlcy4gICAobGluZSAgMjApCiAgLSBpbWFnZS1uZXh0LWZpbGU6ICAgICAgICAgICAgICAgICAg ICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMjApCiAgLSBpbWFnZS1uZXh0LWZyYW1l OiAgICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQpCiAg LSBpbWFnZS1wcmV2aW91cy1maWxlOiAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNl cy4gICAobGluZSAgMjApCiAgLSBpbWFnZS1wcmV2aW91cy1mcmFtZTogICAgICAgICAgICAgICAg ICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQpCiAgLSBpbWFnZS1yZXNldC1zcGVlZDog ICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQpCiAgLSBp bWFnZS1yZXZlcnNlLXNwZWVkOiAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4g ICAobGluZSAgMzQpCiAgLSBpbWFnZS10b2dnbGUtYW5pbWF0aW9uOiAgICAgICAgICAgICAgICBG aWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQpCiAgLSBpbWFnZS10b2dnbGUtZGlzcGxheTog ICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMjApCiAgLSBpbWVu dTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbWVudS4gICAgICAgICAgICAgICAo bGluZSAgMTEpCiAgLSBpbWVudS1hZGQtbWVudWJhci1pbmRleDogICAgICAgICAgICAgICBJbWVu dS4gICAgICAgICAgICAgICAobGluZSAgMTYpCiAgLSBpbmNyZWFzZS1sZWZ0LW1hcmdpbjogICAg ICAgICAgICAgICAgICBFbnJpY2hlZCBJbmRlbnRhdGlvbi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTMpCiAgLSBp bmNyZW1lbnQtcmVnaXN0ZXI6ICAgICAgICAgICAgICAgICAgICBOdW1iZXIgUmVnaXN0ZXJzLiAg ICAobGluZSAgMTMpCiAgLSBpbmRlbnQtY29kZS1yaWdpZGx5OiAgICAgICAgICAgICAgICAgICBN dWx0aS1saW5lIEluZGVudC4gICAobGluZSAgNDMpCiAgLSBpbmRlbnQtZm9yLXRhYi1jb21tYW5k OiAgICAgICAgICAgICAgICBJbmRlbnRhdGlvbi4gICAgICAgICAobGluZSAgMTMpCiAgLSBpbmRl bnQtbGluZS1mdW5jdGlvbjogICAgICAgICAgICAgICAgICBCYXNpYyBJbmRlbnQuICAgICAgICAo bGluZSAgMTIpCiAgLSBpbmRlbnQtcHAtc2V4cDogICAgICAgICAgICAgICAgICAgICAgICBNdWx0 aS1saW5lIEluZGVudC4gICAobGluZSAgMjUpCiAgLSBpbmRlbnQtcmVnaW9uOiAgICAgICAgICAg ICAgICAgICAgICAgICBJbmRlbnRhdGlvbiBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDYpCiAgLSBp bmRlbnQtcmVsYXRpdmU6ICAgICAgICAgICAgICAgICAgICAgICBJbmRlbnRhdGlvbiBDb21tYW5k cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgMjUpCiAgLSBpbmRlbnQtcmlnaWRseTogICAgICAgICAgICAgICAgICAg ICAgICBJbmRlbnRhdGlvbiBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTMpCiAgLSBpbmZvOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAgICAgICAgICAobGluZSAg IDYpCiAgLSBJbmZvLWdvdG8tZW1hY3MtY29tbWFuZC1ub2RlOiAgICAgICAgICBOYW1lIEhlbHAu ICAgICAgICAgICAobGluZSAgNDkpCiAgLSBJbmZvLWdvdG8tZW1hY3Mta2V5LWNvbW1hbmQtbm9k ZTogICAgICBLZXkgSGVscC4gICAgICAgICAgICAobGluZSAgMTYpCiAgLSBpbmZvLWxvb2t1cC1m aWxlOiAgICAgICAgICAgICAgICAgICAgICBJbmZvIExvb2t1cC4gICAgICAgICAobGluZSAgIDYp CiAgLSBpbmZvLWxvb2t1cC1zeW1ib2w6ICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAg ICAgICAgICAobGluZSAgMjEpCiAgLSBpbnNlcnQtYWJicmV2czogICAgICAgICAgICAgICAgICAg ICAgICBTYXZpbmcgQWJicmV2cy4gICAgICAobGluZSAgNDcpCiAgLSBpbnNlcnQtY2hhcjogICAg ICAgICAgICAgICAgICAgICAgICAgICBJbnNlcnRpbmcgVGV4dC4gICAgICAobGluZSAgNjApCiAg LSBpbnNlcnQtZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIEZpbGUgT3BzLiAg ICAgICAobGluZSAgMzEpCiAgLSBpbnNlcnQtZmlsZS1saXRlcmFsbHk6ICAgICAgICAgICAgICAg ICBNaXNjIEZpbGUgT3BzLiAgICAgICAobGluZSAgMzcpCiAgLSBpbnNlcnQta2JkLW1hY3JvOiAg ICAgICAgICAgICAgICAgICAgICBTYXZlIEtleWJvYXJkIE1hY3JvLiAobGluZSAgNDQpCiAgLSBp bnNlcnQtcmVnaXN0ZXI6ICAgICAgICAgICAgICAgICAgICAgICBUZXh0IFJlZ2lzdGVycy4gICAg ICAobGluZSAgNTEpCiAgLSBpbnZlcnNlLWFkZC1nbG9iYWwtYWJicmV2OiAgICAgICAgICAgICBE ZWZpbmluZyBBYmJyZXZzLiAgICAobGluZSAgNDcpCiAgLSBpbnZlcnNlLWFkZC1tb2RlLWFiYnJl djogICAgICAgICAgICAgICBEZWZpbmluZyBBYmJyZXZzLiAgICAobGluZSAgNDcpCiAgLSBpc2Vh cmNoLWJhY2t3YXJkOiAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBJc2VhcmNoLiAgICAgICAo bGluZSAgNTcpCiAgLSBpc2VhcmNoLWJhY2t3YXJkLXJlZ2V4cDogICAgICAgICAgICAgICBSZWdl eHAgU2VhcmNoLiAgICAgICAobGluZSAgMTcpCiAgLSBpc2VhcmNoLWRlbC1jaGFyOiAgICAgICAg ICAgICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGluZSAgMjgpCiAgLSBpc2VhcmNo LWZvcndhcmQ6ICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyBJc2VhcmNoLiAgICAgICAobGlu ZSAgMTEpCiAgLSBpc2VhcmNoLWZvcndhcmQtcmVnZXhwOiAgICAgICAgICAgICAgICBSZWdleHAg U2VhcmNoLiAgICAgICAobGluZSAgMTcpCiAgLSBpc2VhcmNoLWZvcndhcmQtc3ltYm9sOiAgICAg ICAgICAgICAgICBTeW1ib2wgU2VhcmNoLiAgICAgICAobGluZSAgMjcpCiAgLSBpc2VhcmNoLWZv cndhcmQtc3ltYm9sLWF0LXBvaW50OiAgICAgICBTeW1ib2wgU2VhcmNoLiAgICAgICAobGluZSAg MjcpCiAgLSBpc2VhcmNoLWZvcndhcmQtd29yZDogICAgICAgICAgICAgICAgICBXb3JkIFNlYXJj aC4gICAgICAgICAobGluZSAgMjcpCiAgLSBpc2VhcmNoLWhlbHAtbWFwOiAgICAgICAgICAgICAg ICAgICAgICBTcGVjaWFsIElzZWFyY2guICAgICAobGluZSAgODcpCiAgLSBpc2VhcmNoLWhpZ2hs aWdodC1yZWdleHA6ICAgICAgICAgICAgICBTcGVjaWFsIElzZWFyY2guICAgICAobGluZSAgODAp CiAgLSBpc2VhcmNoLW9jY3VyOiAgICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWFsIElzZWFy Y2guICAgICAobGluZSAgNjMpCiAgLSBpc2VhcmNoLXRvZ2dsZS1jYXNlLWZvbGQ6ICAgICAgICAg ICAgICBMYXggU2VhcmNoLiAgICAgICAgICAobGluZSAgNjEpCiAgLSBpc2VhcmNoLXRvZ2dsZS1j aGFyLWZvbGQ6ICAgICAgICAgICAgICBMYXggU2VhcmNoLiAgICAgICAgICAobGluZSAgOTEpCiAg LSBpc2VhcmNoLXRvZ2dsZS1pbnB1dC1tZXRob2Q6ICAgICAgICAgICBTcGVjaWFsIElzZWFyY2gu ICAgICAobGluZSAgNDYpCiAgLSBpc2VhcmNoLXRvZ2dsZS1pbnZpc2libGU6ICAgICAgICAgICAg ICBTcGVjaWFsIElzZWFyY2guICAgICAobGluZSAgMjIpCiAgLSBpc2VhcmNoLXRvZ2dsZS1sYXgt d2hpdGVzcGFjZTogICAgICAgICBMYXggU2VhcmNoLiAgICAgICAgICAobGluZSAgMTUpCiAgLSBp c2VhcmNoLXRvZ2dsZS1yZWdleHA6ICAgICAgICAgICAgICAgICBTcGVjaWFsIElzZWFyY2guICAg ICAobGluZSAgMjUpCiAgLSBpc2VhcmNoLXRvZ2dsZS1zcGVjaWZpZWQtaW5wdXQtbWV0aG9kOiBT cGVjaWFsIElzZWFyY2guICAgICAobGluZSAgNDYpCiAgLSBpc2VhcmNoLXRvZ2dsZS1zeW1ib2w6 ICAgICAgICAgICAgICAgICBTeW1ib2wgU2VhcmNoLiAgICAgICAobGluZSAgMTYpCiAgLSBpc2Vh cmNoLXlhbmstY2hhcjogICAgICAgICAgICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAo bGluZSAgMjgpCiAgLSBpc2VhcmNoLXlhbmsta2lsbDogICAgICAgICAgICAgICAgICAgICBJc2Vh cmNoIFlhbmsuICAgICAgICAobGluZSAgMjApCiAgLSBpc2VhcmNoLXlhbmstbGluZTogICAgICAg ICAgICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGluZSAgMTUpCiAgLSBpc2VhcmNo LXlhbmstcG9wOiAgICAgICAgICAgICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGlu ZSAgMjApCiAgLSBpc2VhcmNoLXlhbmstd29yZC1vci1jaGFyOiAgICAgICAgICAgICBJc2VhcmNo IFlhbmsuICAgICAgICAobGluZSAgMTApCiAgLSBpc2VhcmNoLXlhbmsteC1zZWxlY3Rpb246ICAg ICAgICAgICAgICBJc2VhcmNoIFlhbmsuICAgICAgICAobGluZSAgMjApCiAgLSBpc28tZ3RleDJp c286ICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggTWlzYy4gICAgICAgICAgICAobGluZSAg MTIpCiAgLSBpc28taXNvMmd0ZXg6ICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggTWlzYy4g ICAgICAgICAgICAobGluZSAgMTIpCiAgLSBpc28taXNvMnRleDogICAgICAgICAgICAgICAgICAg ICAgICAgICBUZVggTWlzYy4gICAgICAgICAgICAobGluZSAgMTIpCiAgLSBpc28tdGV4Mmlzbzog ICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggTWlzYy4gICAgICAgICAgICAobGluZSAgMTIp CiAgLSBpc3BlbGw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAg ICAgICAgICAobGluZSAgNDcpCiAgLSBpc3BlbGwtYnVmZmVyOiAgICAgICAgICAgICAgICAgICAg ICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAgNDcpCiAgLSBpc3BlbGwtY2hhbmdlLWRp Y3Rpb25hcnk6ICAgICAgICAgICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxMzUpCiAg LSBpc3BlbGwtY29tcGxldGUtd29yZDogICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAgICAg ICAgICAobGluZSAxMjIpCiAgLSBpc3BlbGwta2lsbC1pc3BlbGw6ICAgICAgICAgICAgICAgICAg ICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxMjkpCiAgLSBpc3BlbGwtbWVzc2FnZTogICAg ICAgICAgICAgICAgICAgICAgICBNYWlsIE1pc2MuICAgICAgICAgICAobGluZSAgMzUpCiAgLSBp c3BlbGwtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAgICAgICAg ICAobGluZSAgNDcpCiAgLSBpc3BlbGwtd29yZDogICAgICAgICAgICAgICAgICAgICAgICAgICBT cGVsbGluZy4gICAgICAgICAgICAobGluZSAgNDApCiAgLSBqZGI6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTdGFydGluZyBHVUQuICAgICAgICAobGluZSAgMjcpCiAgLSBqdW1w LXRvLXJlZ2lzdGVyOiAgICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBSZWdpc3RlcnMuICAo bGluZSAgMTgpCiAgLSBqdXN0LW9uZS1zcGFjZTogICAgICAgICAgICAgICAgICAgICAgICBEZWxl dGlvbi4gICAgICAgICAgICAobGluZSAgNDApCiAgLSBrYmQ6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJbml0IFJlYmluZGluZy4gICAgICAobGluZSAgMTApCiAgLSBrYmQtbWFj cm8tcXVlcnk6ICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZCBNYWNybyBRdWVyeS4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgMTQpCiAgLSBrZWVwLWxpbmVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBP dGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lIDEwNikKICAtIGtleWJvYXJkLWVzY2Fw ZS1xdWl0OiAgICAgICAgICAgICAgICAgIFF1aXR0aW5nLiAgICAgICAgICAgIChsaW5lICA3NCkK ICAtIGtleWJvYXJkLXF1aXQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFF1aXR0aW5nLiAgICAg ICAgICAgIChsaW5lICA0NikKICAtIGtpbGwtYWxsLWFiYnJldnM6ICAgICAgICAgICAgICAgICAg ICAgIERlZmluaW5nIEFiYnJldnMuICAgIChsaW5lICA2MikKICAtIGtpbGwtYnVmZmVyOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIEtpbGwgQnVmZmVyLiAgICAgICAgIChsaW5lICAyMikKICAt IGtpbGwtYnVmZmVyLWFuZC13aW5kb3c6ICAgICAgICAgICAgICAgIENoYW5nZSBXaW5kb3cuICAg ICAgIChsaW5lICAzNCkKICAtIGtpbGwtY29tcGlsYXRpb246ICAgICAgICAgICAgICAgICAgICAg IENvbXBpbGF0aW9uLiAgICAgICAgIChsaW5lICA3MSkKICAtIGtpbGwtZW1hY3M6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEV4aXRpbmcuICAgICAgICAgICAgIChsaW5lICA0NCkKICAtIGtp bGwtbGluZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtpbGxpbmcgYnkgTGluZXMuICAg IChsaW5lICAxMSkKICAtIGtpbGwtbG9jYWwtdmFyaWFibGU6ICAgICAgICAgICAgICAgICAgIExv Y2Fscy4gICAgICAgICAgICAgIChsaW5lICA1MSkKICAtIGtpbGwtbWF0Y2hpbmctYnVmZmVyczog ICAgICAgICAgICAgICAgIEtpbGwgQnVmZmVyLiAgICAgICAgIChsaW5lICAzNSkKICAtIGtpbGwt cmVjdGFuZ2xlOiAgICAgICAgICAgICAgICAgICAgICAgIFJlY3RhbmdsZXMuICAgICAgICAgIChs aW5lICA2MykKICAtIGtpbGwtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVy IEtpbGwgQ29tbWFuZHMuIChsaW5lICAyNSkKICAtIGtpbGwtcmluZy1zYXZlOiAgICAgICAgICAg ICAgICAgICAgICAgIE90aGVyIEtpbGwgQ29tbWFuZHMuIChsaW5lICAyNSkKICAtIGtpbGwtc2Vu dGVuY2U6ICAgICAgICAgICAgICAgICAgICAgICAgIFNlbnRlbmNlcy4gICAgICAgICAgIChsaW5l ICAzMCkKICAtIGtpbGwtc2V4cDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cHJlc3Np b25zLiAgICAgICAgIChsaW5lICA0NCkKICAtIGtpbGwtc29tZS1idWZmZXJzOiAgICAgICAgICAg ICAgICAgICAgIEtpbGwgQnVmZmVyLiAgICAgICAgIChsaW5lICAzMCkKICAtIGtpbGwtd2hvbGUt bGluZTogICAgICAgICAgICAgICAgICAgICAgIEtpbGxpbmcgYnkgTGluZXMuICAgIChsaW5lICAz OCkKICAtIGtpbGwtd29yZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmRzLiAgICAg ICAgICAgICAgIChsaW5lICAzNSkKICAtIGttYWNyby1hZGQtY291bnRlcjogICAgICAgICAgICAg ICAgICAgIEtleWJvYXJkIE1hY3JvIENvdW50ZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDYxKQogIC0ga21hY3Jv LWJpbmQtdG8ta2V5OiAgICAgICAgICAgICAgICAgICAgU2F2ZSBLZXlib2FyZCBNYWNyby4gKGxp bmUgIDI2KQogIC0ga21hY3JvLWN5Y2xlLXJpbmctbmV4dDogICAgICAgICAgICAgICAgS2V5Ym9h cmQgTWFjcm8gUmluZy4gKGxpbmUgIDQxKQogIC0ga21hY3JvLWN5Y2xlLXJpbmctcHJldmlvdXM6 ICAgICAgICAgICAgS2V5Ym9hcmQgTWFjcm8gUmluZy4gKGxpbmUgIDQxKQogIC0ga21hY3JvLWVk aXQtbG9zc2FnZTogICAgICAgICAgICAgICAgICAgRWRpdCBLZXlib2FyZCBNYWNyby4gKGxpbmUg IDI1KQogIC0ga21hY3JvLWVkaXQtbWFjcm86ICAgICAgICAgICAgICAgICAgICAgRWRpdCBLZXli b2FyZCBNYWNyby4gKGxpbmUgIDE0KQogIC0ga21hY3JvLWVuZC1hbmQtY2FsbC1tYWNybzogICAg ICAgICAgICAgQmFzaWMgS2V5Ym9hcmQgTWFjcm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI1KQogIC0ga21hY3Jv LWVuZC1tYWNybzogICAgICAgICAgICAgICAgICAgICAgQmFzaWMgS2V5Ym9hcmQgTWFjcm8uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDg3KQogIC0ga21hY3JvLWVuZC1vci1jYWxsLW1hY3JvOiAgICAgICAgICAgICAg QmFzaWMgS2V5Ym9hcmQgTWFjcm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI1KQogIC0ga21hY3JvLWVuZC1vci1j YWxsLW1hY3JvLXJlcGVhdDogICAgICAgS2V5Ym9hcmQgTWFjcm8gUmluZy4gKGxpbmUgIDMxKQog IC0ga21hY3JvLWluc2VydC1jb3VudGVyOiAgICAgICAgICAgICAgICAgS2V5Ym9hcmQgTWFjcm8g Q291bnRlci4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgMjcpCiAgLSBrbWFjcm8tbmFtZS1sYXN0LW1hY3JvOiAgICAg ICAgICAgICAgICBTYXZlIEtleWJvYXJkIE1hY3JvLiAobGluZSAgMTUpCiAgLSBrbWFjcm8tc2V0 LWNvdW50ZXI6ICAgICAgICAgICAgICAgICAgICBLZXlib2FyZCBNYWNybyBDb3VudGVyLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA1MykKICAtIGttYWNyby1zZXQtZm9ybWF0OiAgICAgICAgICAgICAgICAgICAgIEtl eWJvYXJkIE1hY3JvIENvdW50ZXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDY3KQogIC0ga21hY3JvLXN0YXJ0LW1h Y3JvOiAgICAgICAgICAgICAgICAgICAgQmFzaWMgS2V5Ym9hcmQgTWFjcm8uCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDg3KQogIC0ga21hY3JvLXN0YXJ0LW1hY3JvLW9yLWluc2VydC1jb3VudGVyOiAgQmFzaWMgS2V5 Ym9hcmQgTWFjcm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgIDI1KQogIC0ga21hY3JvLXN0ZXAtZWRpdC1tYWNybzog ICAgICAgICAgICAgICAgS2V5Ym9hcmQgTWFjcm8gU3RlcC1FZGl0LgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNikK ICAtIGttYWNyby10by1yZWdpc3RlcjogICAgICAgICAgICAgICAgICAgIEtleWJvYXJkIE1hY3Jv IFJlZ2lzdGVycy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBsYXRleC1lbGVjdHJpYy1lbnYtcGFpci1t b2RlOiAgICAgICAgICBMYVRlWCBFZGl0aW5nLiAgICAgICAobGluZSAgMjcpCiAgLSBsYXRleC1t b2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggTW9kZS4gICAgICAgICAgICAobGlu ZSAgIDYpCiAgLSBsZWZ0LWNoYXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3Zpbmcg UG9pbnQuICAgICAgICAobGluZSAgMjkpCiAgLSBsZWZ0LWNoYXIsIGFuZCBiaWRpcmVjdGlvbmFs IHRleHQ6ICAgICBCaWRpcmVjdGlvbmFsIEVkaXRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc5KQogIC0gbGVm dC13b3JkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAg KGxpbmUgIDY1KQogIC0gbGdyZXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3Jl cCBTZWFyY2hpbmcuICAgICAgKGxpbmUgIDcwKQogIC0gbGlmZTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAgKGxpbmUgIDQzKQogIC0gbGluZS1u dW1iZXItbW9kZTogICAgICAgICAgICAgICAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAgKGxp bmUgIDE4KQogIC0gbGlzcC1ldmFsLWRlZnVuOiAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJu YWwgTGlzcC4gICAgICAgKGxpbmUgIDI1KQogIC0gbGlzcC1pbnRlcmFjdGlvbi1tb2RlOiAgICAg ICAgICAgICAgICAgTGlzcCBJbnRlcmFjdGlvbi4gICAgKGxpbmUgICA2KQogIC0gbGlzdC1hYmJy ZXZzOiAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdGluZyBBYmJyZXZzLiAgICAgKGxpbmUg IDEzKQogIC0gbGlzdC1ib29rbWFya3M6ICAgICAgICAgICAgICAgICAgICAgICAgQm9va21hcmtz LiAgICAgICAgICAgKGxpbmUgIDQwKQogIC0gbGlzdC1idWZmZXJzOiAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBCdWZmZXJzLiAgICAgICAgKGxpbmUgICA5KQogIC0gbGlzdC1jaGFyYWN0 ZXItc2V0czogICAgICAgICAgICAgICAgICAgQ2hhcnNldHMuICAgICAgICAgICAgKGxpbmUgIDMx KQogIC0gbGlzdC1jaGFyc2V0LWNoYXJzOiAgICAgICAgICAgICAgICAgICAgQ2hhcnNldHMuICAg ICAgICAgICAgKGxpbmUgIDI0KQogIC0gbGlzdC1jb2Rpbmctc3lzdGVtczogICAgICAgICAgICAg ICAgICAgQ29kaW5nIFN5c3RlbXMuICAgICAgKGxpbmUgIDUxKQogIC0gbGlzdC1jb2xvcnMtZGlz cGxheTogICAgICAgICAgICAgICAgICAgQ29sb3JzLiAgICAgICAgICAgICAgKGxpbmUgIDExKQog IC0gbGlzdC1jb21tYW5kLWhpc3Rvcnk6ICAgICAgICAgICAgICAgICAgUmVwZXRpdGlvbi4gICAg ICAgICAgKGxpbmUgIDEyKQogIC0gbGlzdC1kaXJlY3Rvcnk6ICAgICAgICAgICAgICAgICAgICAg ICAgRGlyZWN0b3JpZXMuICAgICAgICAgKGxpbmUgIDIzKQogIC0gbGlzdC1mYWNlcy1kaXNwbGF5 OiAgICAgICAgICAgICAgICAgICAgRmFjZXMuICAgICAgICAgICAgICAgKGxpbmUgIDEzKQogIC0g bGlzdC1ob2xpZGF5czogICAgICAgICAgICAgICAgICAgICAgICAgSG9saWRheXMuICAgICAgICAg ICAgKGxpbmUgIDYwKQogIC0gbGlzdC1pbnB1dC1tZXRob2RzOiAgICAgICAgICAgICAgICAgICAg U2VsZWN0IElucHV0IE1ldGhvZC4gKGxpbmUgIDg2KQogIC0gbGlzdC1tYXRjaGluZy1saW5lczog ICAgICAgICAgICAgICAgICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNzUp CiAgLSBsaXN0LXBhY2thZ2VzOiAgICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlIE1lbnUu ICAgICAgICAobGluZSAgIDYpCiAgLSBsaXN0LXRhZ3M6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IElkZW50aWZpZXJzLiAgICAobGluZSAgMjYpCiAgLSBsb2FkOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXNwIExpYnJhcmllcy4gICAgICAobGluZSAgMjEpCiAg LSBsb2FkLWZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXNwIExpYnJhcmllcy4g ICAgICAobGluZSAgMTUpCiAgLSBsb2FkLWxpYnJhcnk6ICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXNwIExpYnJhcmllcy4gICAgICAobGluZSAgMjEpCiAgLSBsb2FkLXRoZW1lOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDdXN0b20gVGhlbWVzLiAgICAgICAobGluZSAgNjkpCiAgLSBs b2NhbC1zZXQta2V5OiAgICAgICAgICAgICAgICAgICAgICAgICBSZWJpbmRpbmcuICAgICAgICAg ICAobGluZSAgMTYpCiAgLSBsb2NhbC11bnNldC1rZXk6ICAgICAgICAgICAgICAgICAgICAgICBS ZWJpbmRpbmcuICAgICAgICAgICAobGluZSAgMTYpCiAgLSBsb2NhdGU6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEaXJlZCBhbmQgRmluZC4gICAgICAobGluZSAgMzcpCiAgLSBsb2Nh dGUtd2l0aC1maWx0ZXI6ICAgICAgICAgICAgICAgICAgICBEaXJlZCBhbmQgRmluZC4gICAgICAo bGluZSAgMzcpCiAgLSBsb2ctZWRpdC1kb25lOiAgICAgICAgICAgICAgICAgICAgICAgICBMb2cg QnVmZmVyLiAgICAgICAgICAobGluZSAgIDYpCiAgLSBsb2ctZWRpdC1pbnNlcnQtY2hhbmdlbG9n OiAgICAgICAgICAgICBMb2cgQnVmZmVyLiAgICAgICAgICAobGluZSAgNDApCiAgLSBsb2ctZWRp dC1zaG93LWRpZmY6ICAgICAgICAgICAgICAgICAgICBMb2cgQnVmZmVyLiAgICAgICAgICAobGlu ZSAgMzIpCiAgLSBsb2ctZWRpdC1zaG93LWZpbGVzOiAgICAgICAgICAgICAgICAgICBMb2cgQnVm ZmVyLiAgICAgICAgICAobGluZSAgMzIpCiAgLSBsb2ctdmlldy10b2dnbGUtZW50cnktZGlzcGxh eTogICAgICAgICBWQyBDaGFuZ2UgTG9nLiAgICAgICAobGluZSAgMzUpCiAgLSBscHItYnVmZmVy OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludGluZy4gICAgICAgICAgICAobGluZSAg MjgpCiAgLSBscHItcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludGluZy4g ICAgICAgICAgICAobGluZSAgMjgpCiAgLSBsdW5hci1waGFzZXM6ICAgICAgICAgICAgICAgICAg ICAgICAgICBMdW5hciBQaGFzZXMuICAgICAgICAobGluZSAgMjEpCiAgLSBtYWlsLWFiYnJldi1p bnNlcnQtYWxpYXM6ICAgICAgICAgICAgICBNYWlsIEFsaWFzZXMuICAgICAgICAobGluZSAgNDIp CiAgLSBtYWlsLWFkZC1hdHRhY2htZW50OiAgICAgICAgICAgICAgICAgICBNYWlsIE1pc2MuICAg ICAgICAgICAobGluZSAgMTkpCiAgLSBtYWlsLWZpbGwteWFua2VkLW1lc3NhZ2U6ICAgICAgICAg ICAgICBDaXRpbmcgTWFpbC4gICAgICAgICAobGluZSAgMjMpCiAgLSBtYWlsLXRleHQ6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXIgRWRpdGluZy4gICAgICAobGluZSAgMzUpCiAg LSBtYWtlLWZyYW1lLWNvbW1hbmQ6ICAgICAgICAgICAgICAgICAgICBDcmVhdGluZyBGcmFtZXMu ICAgICAobGluZSAgMTgpCiAgLSBtYWtlLWZyYW1lLW9uLWRpc3BsYXk6ICAgICAgICAgICAgICAg ICBNdWx0aXBsZSBEaXNwbGF5cy4gICAobGluZSAgMTEpCiAgLSBtYWtlLWluZGlyZWN0LWJ1ZmZl cjogICAgICAgICAgICAgICAgICBJbmRpcmVjdCBCdWZmZXJzLiAgICAobGluZSAgMTApCiAgLSBt YWtlLWxvY2FsLXZhcmlhYmxlOiAgICAgICAgICAgICAgICAgICBMb2NhbHMuICAgICAgICAgICAg ICAobGluZSAgMjIpCiAgLSBtYWtlLXN5bWJvbGljLWxpbms6ICAgICAgICAgICAgICAgICAgICBD b3B5aW5nIGFuZCBOYW1pbmcuICAobGluZSAgNDcpCiAgLSBtYWtlLXZhcmlhYmxlLWJ1ZmZlci1s b2NhbDogICAgICAgICAgICBMb2NhbHMuICAgICAgICAgICAgICAobGluZSAgMjcpCiAgLSBtYW46 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYW4gUGFnZS4gICAgICAgICAgICAo bGluZSAgMTIpCiAgLSBtYXJrLWRlZnVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3Zp bmcgYnkgRGVmdW5zLiAgICAobGluZSAgMTcpCiAgLSBtYXJrLXBhZ2U6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQYWdlcy4gICAgICAgICAgICAgICAobGluZSAgMzcpCiAgLSBtYXJrLXBh cmFncmFwaDogICAgICAgICAgICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAgICAgICAgICAobGlu ZSAgMjMpCiAgLSBtYXJrLXNleHA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJraW5n IE9iamVjdHMuICAgICAobGluZSAgMzgpCiAgLSBtYXJrLXdob2xlLWJ1ZmZlcjogICAgICAgICAg ICAgICAgICAgICBNYXJraW5nIE9iamVjdHMuICAgICAobGluZSAgNTIpCiAgLSBtYXJrLXdvcmQ6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJraW5nIE9iamVjdHMuICAgICAobGluZSAg MjgpCiAgLSBtZW51LWJhci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBNZW51IEJhcnMu ICAgICAgICAgICAobGluZSAgIDYpCiAgLSBtZW51LWJhci1vcGVuOiAgICAgICAgICAgICAgICAg ICAgICAgICBNZW51IEJhci4gICAgICAgICAgICAobGluZSAgMjIpCiAgLSBtZXNzYWdlLWdvdG8t YmNjOiAgICAgICAgICAgICAgICAgICAgICBIZWFkZXIgRWRpdGluZy4gICAgICAobGluZSAgMzAp CiAgLSBtZXNzYWdlLWdvdG8tY2M6ICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXIgRWRpdGlu Zy4gICAgICAobGluZSAgMzApCiAgLSBtZXNzYWdlLWdvdG8tZmNjOiAgICAgICAgICAgICAgICAg ICAgICBIZWFkZXIgRWRpdGluZy4gICAgICAobGluZSAgMzApCiAgLSBtZXNzYWdlLWdvdG8tc3Vi amVjdDogICAgICAgICAgICAgICAgICBIZWFkZXIgRWRpdGluZy4gICAgICAobGluZSAgMzApCiAg LSBtZXNzYWdlLWdvdG8tdG86ICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXIgRWRpdGluZy4g ICAgICAobGluZSAgMzApCiAgLSBtZXNzYWdlLWluc2VydC1zaWduYXR1cmU6ICAgICAgICAgICAg ICBNYWlsIFNpZ25hdHVyZS4gICAgICAobGluZSAgMjApCiAgLSBtZXNzYWdlLXNlbmQ6ICAgICAg ICAgICAgICAgICAgICAgICAgICBNYWlsIFNlbmRpbmcuICAgICAgICAobGluZSAgMTMpCiAgLSBt ZXNzYWdlLXNlbmQtYW5kLWV4aXQ6ICAgICAgICAgICAgICAgICBNYWlsIFNlbmRpbmcuICAgICAg ICAobGluZSAgMTkpCiAgLSBtZXNzYWdlLXRhYjogICAgICAgICAgICAgICAgICAgICAgICAgICBI ZWFkZXIgRWRpdGluZy4gICAgICAobGluZSAgMzgpCiAgLSBtZXNzYWdlLXlhbmstb3JpZ2luYWw6 ICAgICAgICAgICAgICAgICBDaXRpbmcgTWFpbC4gICAgICAgICAobGluZSAgMTMpCiAgLSBtZXNz YWdlLXlhbmstcHJlZml4OiAgICAgICAgICAgICAgICAgICBDaXRpbmcgTWFpbC4gICAgICAgICAo bGluZSAgMTMpCiAgLSBtaW5pYnVmZmVyLWNvbXBsZXRlOiAgICAgICAgICAgICAgICAgICBDb21w bGV0aW9uIENvbW1hbmRzLiAobGluZSAgMjQpCiAgLSBtaW5pYnVmZmVyLWNvbXBsZXRlLWFuZC1l eGl0OiAgICAgICAgICBDb21wbGV0aW9uIEV4aXQuICAgICAobGluZSAgIDYpCiAgLSBtaW5pYnVm ZmVyLWNvbXBsZXRlLXdvcmQ6ICAgICAgICAgICAgICBDb21wbGV0aW9uIENvbW1hbmRzLiAobGlu ZSAgMjkpCiAgLSBtaW5pYnVmZmVyLWVsZWN0cmljLWRlZmF1bHQtbW9kZTogICAgICBCYXNpYyBN aW5pYnVmZmVyLiAgICAobGluZSAgMjMpCiAgLSBtaW5pYnVmZmVyLWluYWN0aXZlLW1vZGU6ICAg ICAgICAgICAgICBNaW5pYnVmZmVyIEVkaXQuICAgICAobGluZSAgNjEpCiAgLSBtbWwtYXR0YWNo LWZpbGU6ICAgICAgICAgICAgICAgICAgICAgICBNYWlsIE1pc2MuICAgICAgICAgICAobGluZSAg IDYpCiAgLSBtb3JzZS1yZWdpb246ICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRz LiAgICAgICAgICAobGluZSAgNDUpCiAgLSBtb3VzZS1hdm9pZGFuY2UtbW9kZTogICAgICAgICAg ICAgICAgICBNb3VzZSBBdm9pZGFuY2UuICAgICAobGluZSAgMzcpCiAgLSBtb3VzZS1idWZmZXIt bWVudTogICAgICAgICAgICAgICAgICAgICBCdWZmZXIgTWVudXMuICAgICAgICAobGluZSAgMjIp CiAgLSBtb3VzZS1zYXZlLXRoZW4ta2lsbDogICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5k cy4gICAgICAobGluZSAgNjgpCiAgLSBtb3VzZS1zZWNvbmRhcnktc2F2ZS10aGVuLWtpbGw6ICAg ICAgICBTZWNvbmRhcnkgU2VsZWN0aW9uLiAobGluZSAgMjYpCiAgLSBtb3VzZS1zZXQtcG9pbnQ6 ICAgICAgICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAgICAobGluZSAgMjMpCiAg LSBtb3VzZS1zZXQtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4g ICAgICAobGluZSAgMzgpCiAgLSBtb3VzZS1zZXQtc2Vjb25kYXJ5OiAgICAgICAgICAgICAgICAg ICBTZWNvbmRhcnkgU2VsZWN0aW9uLiAobGluZSAgMTEpCiAgLSBtb3VzZS1zdGFydC1zZWNvbmRh cnk6ICAgICAgICAgICAgICAgICBTZWNvbmRhcnkgU2VsZWN0aW9uLiAobGluZSAgMjIpCiAgLSBt b3VzZS13aGVlbC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAg ICAobGluZSAxMDUpCiAgLSBtb3VzZS15YW5rLWF0LWNsaWNrOiAgICAgICAgICAgICAgICAgICBN b3VzZSBDb21tYW5kcy4gICAgICAobGluZSAgNTUpCiAgLSBtb3VzZS15YW5rLXByaW1hcnk6ICAg ICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAgICAobGluZSAgNTUpCiAgLSBtb3Vz ZS15YW5rLXNlY29uZGFyeTogICAgICAgICAgICAgICAgICBTZWNvbmRhcnkgU2VsZWN0aW9uLiAo bGluZSAgMzMpCiAgLSBtb3ZlLWJlZ2lubmluZy1vZi1saW5lOiAgICAgICAgICAgICAgICBNb3Zp bmcgUG9pbnQuICAgICAgICAobGluZSAgNDUpCiAgLSBtb3ZlLWVuZC1vZi1saW5lOiAgICAgICAg ICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgNDkpCiAgLSBtb3ZlLXRv LWNvbHVtbjogICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGlu ZSAxMTgpCiAgLSBtb3ZlLXRvLXdpbmRvdy1saW5lLXRvcC1ib3R0b206ICAgICAgICBNb3Zpbmcg UG9pbnQuICAgICAgICAobGluZSAgNzApCiAgLSBtcHV6OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAgICAobGluZSAgIDkpCiAgLSBtc2ItbW9kZTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgTWVudXMuICAgICAgICAobGluZSAg MjIpCiAgLSBtc2Rvcy1zZXQtbW91c2UtYnV0dG9uczogICAgICAgICAgICAgICBNUy1ET1MgTW91 c2UuICAgICAgICAobGluZSAgMTgpCiAgLSBtdWx0aS1pc2VhcmNoLWJ1ZmZlcnM6ICAgICAgICAg ICAgICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAxMykKICAtIG11bHRp LWlzZWFyY2gtYnVmZmVycy1yZWdleHA6ICAgICAgICAgIE90aGVyIFJlcGVhdGluZyBTZWFyY2gu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDIxKQogIC0gbXVsdGktaXNlYXJjaC1maWxlczogICAgICAgICAgICAgICAg ICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjUpCiAgLSBtdWx0aS1pc2Vh cmNoLWZpbGVzLXJlZ2V4cDogICAgICAgICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAzMykKICAtIG11bHRpLW9jY3VyOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE90 aGVyIFJlcGVhdGluZyBTZWFyY2guCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDc3KQogIC0gbXVsdGktb2NjdXItaW4t bWF0Y2hpbmctYnVmZmVyczogICAgICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgODIpCiAgLSBuYXJyb3ctdG8tZGVmdW46ICAgICAgICAgICAgICAgICAgICAgICBOYXJyb3dp bmcuICAgICAgICAgICAobGluZSAgMzgpCiAgLSBuYXJyb3ctdG8tcGFnZTogICAgICAgICAgICAg ICAgICAgICAgICBOYXJyb3dpbmcuICAgICAgICAgICAobGluZSAgMzgpCiAgLSBuYXJyb3ctdG8t cmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICBOYXJyb3dpbmcuICAgICAgICAgICAobGluZSAg MzMpCiAgLSBuYXRvLXJlZ2lvbjogICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRz LiAgICAgICAgICAobGluZSAgNDUpCiAgLSBuZWdhdGl2ZS1hcmd1bWVudDogICAgICAgICAgICAg ICAgICAgICBBcmd1bWVudHMuICAgICAgICAgICAobGluZSAgMTUpCiAgLSBuZXh0LWJ1ZmZlcjog ICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQnVmZmVyLiAgICAgICAobGluZSAgNDYp CiAgLSBuZXh0LWNvbXBsZXRpb246ICAgICAgICAgICAgICAgICAgICAgICBDb21wbGV0aW9uIENv bW1hbmRzLiAobGluZSAgNTQpCiAgLSBuZXh0LWVycm9yOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDb21waWxhdGlvbiBNb2RlLiAgICAobGluZSAgNDgpCiAgLSBuZXh0LWVycm9yLWZvbGxv dy1taW5vci1tb2RlOiAgICAgICAgICBDb21waWxhdGlvbiBNb2RlLiAgICAobGluZSAxMTApCiAg LSBuZXh0LWZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IElkZW50aWZpZXJz LiAgICAobGluZSAgMzMpCiAgLSBuZXh0LWhpc3RvcnktZWxlbWVudDogICAgICAgICAgICAgICAg ICBNaW5pYnVmZmVyIEhpc3RvcnkuICAobGluZSAgMzApCiAgLSBuZXh0LWxpbmU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgMzQpCiAgLSBu ZXh0LWxpbmUtb3ItaGlzdG9yeS1lbGVtZW50OiAgICAgICAgICBNaW5pYnVmZmVyIEhpc3Rvcnku ICAobGluZSAgNTQpCiAgLSBuZXh0LWxvZ2ljYWwtbGluZTogICAgICAgICAgICAgICAgICAgICBW aXN1YWwgTGluZSBNb2RlLiAgICAobGluZSAgMjMpCiAgLSBuZXh0LW1hdGNoaW5nLWhpc3Rvcnkt ZWxlbWVudDogICAgICAgICBNaW5pYnVmZmVyIEhpc3RvcnkuICAobGluZSAgNjQpCiAgLSBub3Jt YWwtZXJhc2UtaXMtYmFja3NwYWNlLW1vZGU6ICAgICAgICBERUwgRG9lcyBOb3QgRGVsZXRlLiAo bGluZSAgMjQpCiAgLSBub3JtYWwtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBDaG9v c2luZyBNb2Rlcy4gICAgICAobGluZSAxMTUpCiAgLSBub3QtbW9kaWZpZWQ6ICAgICAgICAgICAg ICAgICAgICAgICAgICBTYXZlIENvbW1hbmRzLiAgICAgICAobGluZSAgNjgpCiAgLSBucm9mZi1i YWNrd2FyZC10ZXh0LWxpbmU6ICAgICAgICAgICAgICBOcm9mZiBNb2RlLiAgICAgICAgICAobGlu ZSAgMTUpCiAgLSBucm9mZi1jb3VudC10ZXh0LWxpbmVzOiAgICAgICAgICAgICAgICBOcm9mZiBN b2RlLiAgICAgICAgICAobGluZSAgMTUpCiAgLSBucm9mZi1lbGVjdHJpYy1tb2RlOiAgICAgICAg ICAgICAgICAgICBOcm9mZiBNb2RlLiAgICAgICAgICAobGluZSAgMjQpCiAgLSBucm9mZi1mb3J3 YXJkLXRleHQtbGluZTogICAgICAgICAgICAgICBOcm9mZiBNb2RlLiAgICAgICAgICAobGluZSAg MTUpCiAgLSBucm9mZi1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOcm9mZiBNb2Rl LiAgICAgICAgICAobGluZSAgIDYpCiAgLSBucy1wb3B1cC1mb250LXBhbmVsOiAgICAgICAgICAg ICAgICAgICBNYWMgLyBHTlVzdGVwIEN1c3RvbWl6YXRpb24uCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE0KQogIC0g bnVtYmVyLXRvLXJlZ2lzdGVyOiAgICAgICAgICAgICAgICAgICAgTnVtYmVyIFJlZ2lzdGVycy4g ICAgKGxpbmUgIDExKQogIC0gbnhtbC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDc1KQogIC0gb2NjdXI6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDEp CiAgLSBvcGVuLWRyaWJibGUtZmlsZTogICAgICAgICAgICAgICAgICAgICBDaGVja2xpc3QuICAg ICAgICAgICAobGluZSAxMDgpCiAgLSBvcGVuLWxpbmU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCbGFuayBMaW5lcy4gICAgICAgICAobGluZSAgMTUpCiAgLSBvcGVuLXJlY3RhbmdsZTog ICAgICAgICAgICAgICAgICAgICAgICBSZWN0YW5nbGVzLiAgICAgICAgICAobGluZSAgOTMpCiAg LSBvcGVuLXRlcm1zY3JpcHQ6ICAgICAgICAgICAgICAgICAgICAgICBDaGVja2xpc3QuICAgICAg ICAgICAobGluZSAxMTUpCiAgLSBvcmctYWdlbmRhOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPcmcgT3JnYW5pemVyLiAgICAgICAobGluZSAgMjcpCiAgLSBvcmctYWdlbmRhLWZpbGUtdG8t ZnJvbnQ6ICAgICAgICAgICAgICBPcmcgT3JnYW5pemVyLiAgICAgICAobGluZSAgMjApCiAgLSBv cmctY3ljbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAg ICAobGluZSAgMTYpCiAgLSBvcmctZGVhZGxpbmU6ICAgICAgICAgICAgICAgICAgICAgICAgICBP cmcgT3JnYW5pemVyLiAgICAgICAobGluZSAgMTMpCiAgLSBvcmctZXhwb3J0OiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPcmcgQXV0aG9yaW5nLiAgICAgICAobGluZSAgIDYpCiAgLSBvcmct bWV0YWRvd246ICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAgICAo bGluZSAgMjkpCiAgLSBvcmctbWV0YWxlZnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcg TW9kZS4gICAgICAgICAgICAobGluZSAgMjkpCiAgLSBvcmctbWV0YXJpZ2h0OiAgICAgICAgICAg ICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAgICAobGluZSAgMjkpCiAgLSBvcmctbWV0 YXVwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAgICAobGlu ZSAgMjkpCiAgLSBvcmctbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9k ZS4gICAgICAgICAgICAobGluZSAgIDYpCiAgLSBvcmctc2NoZWR1bGU6ICAgICAgICAgICAgICAg ICAgICAgICAgICBPcmcgT3JnYW5pemVyLiAgICAgICAobGluZSAgMTMpCiAgLSBvcmctc2hpZnR0 YWI6ICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAgICAobGluZSAg MjQpCiAgLSBvcmctdG9kbzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgT3JnYW5p emVyLiAgICAgICAobGluZSAgIDYpCiAgLSBvdGhlci1mcmFtZTogICAgICAgICAgICAgICAgICAg ICAgICAgICBGcmFtZSBDb21tYW5kcy4gICAgICAobGluZSAgMTcpCiAgLSBvdGhlci13aW5kb3c6 ICAgICAgICAgICAgICAgICAgICAgICAgICBPdGhlciBXaW5kb3cuICAgICAgICAobGluZSAgMTUp CiAgLSBvdXRsaW5lLWJhY2t3YXJkLXNhbWUtbGV2ZWw6ICAgICAgICAgICBPdXRsaW5lIE1vdGlv bi4gICAgICAobGluZSAgMTkpCiAgLSBvdXRsaW5lLWZvcndhcmQtc2FtZS1sZXZlbDogICAgICAg ICAgICBPdXRsaW5lIE1vdGlvbi4gICAgICAobGluZSAgMTYpCiAgLSBvdXRsaW5lLWhpZGUtYm9k eTogICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGluZSAgNzIpCiAg LSBvdXRsaW5lLWhpZGUtZW50cnk6ICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxp dHkuICAobGluZSAgNDkpCiAgLSBvdXRsaW5lLWhpZGUtbGVhdmVzOiAgICAgICAgICAgICAgICAg ICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGluZSAgNTkpCiAgLSBvdXRsaW5lLWhpZGUtb3RoZXI6 ICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGluZSAgNjcpCiAgLSBv dXRsaW5lLWhpZGUtc3VidHJlZTogICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHku ICAobGluZSAgNTQpCiAgLSBvdXRsaW5lLW1pbm9yLW1vZGU6ICAgICAgICAgICAgICAgICAgICBP dXRsaW5lIE1vZGUuICAgICAgICAobGluZSAgIDYpCiAgLSBvdXRsaW5lLW1vZGU6ICAgICAgICAg ICAgICAgICAgICAgICAgICBPdXRsaW5lIE1vZGUuICAgICAgICAobGluZSAgIDYpCiAgLSBvdXRs aW5lLW5leHQtdmlzaWJsZS1oZWFkaW5nOiAgICAgICAgICBPdXRsaW5lIE1vdGlvbi4gICAgICAo bGluZSAgMTApCiAgLSBvdXRsaW5lLXByZXZpb3VzLXZpc2libGUtaGVhZGluZzogICAgICBPdXRs aW5lIE1vdGlvbi4gICAgICAobGluZSAgMTMpCiAgLSBvdXRsaW5lLXNob3ctYWxsOiAgICAgICAg ICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGluZSAgNzIpCiAgLSBvdXRsaW5l LXNob3ctYnJhbmNoZXM6ICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGlu ZSAgNTkpCiAgLSBvdXRsaW5lLXNob3ctY2hpbGRyZW46ICAgICAgICAgICAgICAgICBPdXRsaW5l IFZpc2liaWxpdHkuICAobGluZSAgNTkpCiAgLSBvdXRsaW5lLXNob3ctZW50cnk6ICAgICAgICAg ICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGluZSAgNDkpCiAgLSBvdXRsaW5lLXNo b3ctc3VidHJlZTogICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHkuICAobGluZSAg NTQpCiAgLSBvdXRsaW5lLXVwLWhlYWRpbmc6ICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIE1v dGlvbi4gICAgICAobGluZSAgMjIpCiAgLSBvdmVyd3JpdGUtbW9kZTogICAgICAgICAgICAgICAg ICAgICAgICBNaW5vciBNb2Rlcy4gICAgICAgICAobGluZSAgODMpCiAgLSBwYWNrYWdlLWluaXRp YWxpemU6ICAgICAgICAgICAgICAgICAgICBQYWNrYWdlIEluc3RhbGxhdGlvbi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgOTEpCiAgLSBwYWNrYWdlLWluc3RhbGw6ICAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdl IEluc3RhbGxhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBwYWNrYWdlLWluc3RhbGwtZmlsZTog ICAgICAgICAgICAgICAgICBQYWNrYWdlIEZpbGVzLiAgICAgICAobGluZSAgIDYpCiAgLSBwYXJh Z3JhcGgtaW5kZW50LW1pbm9yLW1vZGU6ICAgICAgICAgICBUZXh0IE1vZGUuICAgICAgICAgICAo bGluZSAgMjcpCiAgLSBwYXJhZ3JhcGgtaW5kZW50LXRleHQtbW9kZTogICAgICAgICAgICBUZXh0 IE1vZGUuICAgICAgICAgICAobGluZSAgMjcpCiAgLSBwZGI6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTdGFydGluZyBHVUQuICAgICAgICAobGluZSAgMzApCiAgLSBwZXJsZGI6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydGluZyBHVUQuICAgICAgICAobGlu ZSAgMjQpCiAgLSBwaWN0dXJlLWJhY2t3YXJkLWNsZWFyLWNvbHVtbjogICAgICAgICBCYXNpYyBQ aWN0dXJlLiAgICAgICAobGluZSAgMjgpCiAgLSBwaWN0dXJlLWJhY2t3YXJkLWNvbHVtbjogICAg ICAgICAgICAgICBCYXNpYyBQaWN0dXJlLiAgICAgICAobGluZSAgIDYpCiAgLSBwaWN0dXJlLWNs ZWFyLWNvbHVtbjogICAgICAgICAgICAgICAgICBCYXNpYyBQaWN0dXJlLiAgICAgICAobGluZSAg MjgpCiAgLSBwaWN0dXJlLWNsZWFyLWxpbmU6ICAgICAgICAgICAgICAgICAgICBCYXNpYyBQaWN0 dXJlLiAgICAgICAobGluZSAgMjgpCiAgLSBwaWN0dXJlLWNsZWFyLXJlY3RhbmdsZTogICAgICAg ICAgICAgICBSZWN0YW5nbGVzIGluIFBpY3R1cmUuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI2KQogIC0gcGljdHVy ZS1jbGVhci1yZWN0YW5nbGUtdG8tcmVnaXN0ZXI6ICAgUmVjdGFuZ2xlcyBpbiBQaWN0dXJlLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICAyNikKICAtIHBpY3R1cmUtZm9yd2FyZC1jb2x1bW46ICAgICAgICAgICAgICAg IEJhc2ljIFBpY3R1cmUuICAgICAgIChsaW5lICAgNikKICAtIHBpY3R1cmUtbW9kZTogICAgICAg ICAgICAgICAgICAgICAgICAgIFBpY3R1cmUgTW9kZS4gICAgICAgIChsaW5lICAgNikKICAtIHBp Y3R1cmUtbW90aW9uOiAgICAgICAgICAgICAgICAgICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAg IChsaW5lICA0MykKICAtIHBpY3R1cmUtbW90aW9uLXJldmVyc2U6ICAgICAgICAgICAgICAgIElu c2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICA0MykKICAtIHBpY3R1cmUtbW92ZS1kb3duOiAgICAg ICAgICAgICAgICAgICAgIEJhc2ljIFBpY3R1cmUuICAgICAgIChsaW5lICAgNikKICAtIHBpY3R1 cmUtbW92ZS11cDogICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFBpY3R1cmUuICAgICAgIChs aW5lICAgNikKICAtIHBpY3R1cmUtbW92ZW1lbnQtZG93bjogICAgICAgICAgICAgICAgIEluc2Vy dCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIHBpY3R1cmUtbW92ZW1lbnQtbGVmdDogICAg ICAgICAgICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIHBpY3R1cmUt bW92ZW1lbnQtbmU6ICAgICAgICAgICAgICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5l ICAgNikKICAtIHBpY3R1cmUtbW92ZW1lbnQtbnc6ICAgICAgICAgICAgICAgICAgIEluc2VydCBp biBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIHBpY3R1cmUtbW92ZW1lbnQtcmlnaHQ6ICAgICAg ICAgICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIHBpY3R1cmUtbW92 ZW1lbnQtc2U6ICAgICAgICAgICAgICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAg NikKICAtIHBpY3R1cmUtbW92ZW1lbnQtc3c6ICAgICAgICAgICAgICAgICAgIEluc2VydCBpbiBQ aWN0dXJlLiAgIChsaW5lICAgNikKICAtIHBpY3R1cmUtbW92ZW1lbnQtdXA6ICAgICAgICAgICAg ICAgICAgIEluc2VydCBpbiBQaWN0dXJlLiAgIChsaW5lICAgNikKICAtIHBpY3R1cmUtbmV3bGlu ZTogICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFBpY3R1cmUuICAgICAgIChsaW5lICAyMSkK ICAtIHBpY3R1cmUtb3Blbi1saW5lOiAgICAgICAgICAgICAgICAgICAgIEJhc2ljIFBpY3R1cmUu ICAgICAgIChsaW5lICAzOCkKICAtIHBpY3R1cmUtc2V0LXRhYi1zdG9wczogICAgICAgICAgICAg ICAgIFRhYnMgaW4gUGljdHVyZS4gICAgIChsaW5lICAyNSkKICAtIHBpY3R1cmUtdGFiOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRhYnMgaW4gUGljdHVyZS4gICAgIChsaW5lICAyMCkKICAt IHBpY3R1cmUtdGFiLXNlYXJjaDogICAgICAgICAgICAgICAgICAgIFRhYnMgaW4gUGljdHVyZS4g ICAgIChsaW5lICAgNikKICAtIHBpY3R1cmUteWFuay1yZWN0YW5nbGU6ICAgICAgICAgICAgICAg IFJlY3RhbmdsZXMgaW4gUGljdHVyZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzcpCiAgLSBwaWN0dXJlLXlhbmst cmVjdGFuZ2xlLWZyb20tcmVnaXN0ZXI6ICBSZWN0YW5nbGVzIGluIFBpY3R1cmUuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDM3KQogIC0gcGxhaW4tdGV4LW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgVGVYIE1v ZGUuICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gcG9pbnQtdG8tcmVnaXN0ZXI6ICAgICAgICAg ICAgICAgICAgICAgUG9zaXRpb24gUmVnaXN0ZXJzLiAgKGxpbmUgIDEzKQogIC0gcG9uZzogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAgKGxpbmUg IDUwKQogIC0gcG9wLWdsb2JhbC1tYXJrOiAgICAgICAgICAgICAgICAgICAgICAgR2xvYmFsIE1h cmsgUmluZy4gICAgKGxpbmUgIDE1KQogIC0gcHItaW50ZXJmYWNlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgUHJpbnRpbmcgUGFja2FnZS4gICAgKGxpbmUgIDE1KQogIC0gcHJlZmVyLWNvZGlu Zy1zeXN0ZW06ICAgICAgICAgICAgICAgICAgUmVjb2duaXplIENvZGluZy4gICAgKGxpbmUgIDMx KQogIC0gcHJlcGVuZC10by1idWZmZXI6ICAgICAgICAgICAgICAgICAgICAgQWNjdW11bGF0aW5n IFRleHQuICAgKGxpbmUgICA2KQogIC0gcHJlcGVuZC10by1yZWdpc3RlcjogICAgICAgICAgICAg ICAgICAgVGV4dCBSZWdpc3RlcnMuICAgICAgKGxpbmUgIDM0KQogIC0gcHJldHRpZnktc3ltYm9s cy1tb2RlOiAgICAgICAgICAgICAgICAgTWlzYyBmb3IgUHJvZ3JhbXMuICAgKGxpbmUgIDM4KQog IC0gcHJldmlvdXMtYnVmZmVyOiAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IEJ1ZmZlci4g ICAgICAgKGxpbmUgIDQ2KQogIC0gcHJldmlvdXMtY29tcGxldGlvbjogICAgICAgICAgICAgICAg ICAgQ29tcGxldGlvbiBDb21tYW5kcy4gKGxpbmUgIDU4KQogIC0gcHJldmlvdXMtaGlzdG9yeS1l bGVtZW50OiAgICAgICAgICAgICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAgKGxpbmUgIDMwKQogIC0g cHJldmlvdXMtbGluZTogICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIFBvaW50LiAgICAg ICAgKGxpbmUgIDQwKQogIC0gcHJldmlvdXMtbGluZS1vci1oaXN0b3J5LWVsZW1lbnQ6ICAgICAg TWluaWJ1ZmZlciBIaXN0b3J5LiAgKGxpbmUgIDU0KQogIC0gcHJldmlvdXMtbG9naWNhbC1saW5l OiAgICAgICAgICAgICAgICAgVmlzdWFsIExpbmUgTW9kZS4gICAgKGxpbmUgIDIzKQogIC0gcHJl dmlvdXMtbWF0Y2hpbmctaGlzdG9yeS1lbGVtZW50OiAgICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAg KGxpbmUgIDY0KQogIC0gcHJpbnQtYnVmZmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgUHJp bnRpbmcuICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gcHJpbnQtYnVmZmVyIChNUy1ET1MpOiAg ICAgICAgICAgICAgICAgV2luZG93cyBQcmludGluZy4gICAgKGxpbmUgIDY3KQogIC0gcHJpbnQt cmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpbnRpbmcuICAgICAgICAgICAgKGxp bmUgIDI4KQogIC0gcHJpbnQtcmVnaW9uIChNUy1ET1MpOiAgICAgICAgICAgICAgICAgV2luZG93 cyBQcmludGluZy4gICAgKGxpbmUgIDY3KQogIC0gcHMtZGVzcG9vbDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDQ4KQogIC0gcHMtcHJpbnQt YnVmZmVyOiAgICAgICAgICAgICAgICAgICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUg IDM0KQogIC0gcHMtcHJpbnQtYnVmZmVyIChNUy1ET1MpOiAgICAgICAgICAgICAgV2luZG93cyBQ cmludGluZy4gICAgKGxpbmUgIDg3KQogIC0gcHMtcHJpbnQtYnVmZmVyLXdpdGgtZmFjZXM6ICAg ICAgICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDM0KQogIC0gcHMtcHJpbnQtcmVn aW9uOiAgICAgICAgICAgICAgICAgICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDM0 KQogIC0gcHMtcHJpbnQtcmVnaW9uLXdpdGgtZmFjZXM6ICAgICAgICAgICAgUG9zdFNjcmlwdC4g ICAgICAgICAgKGxpbmUgIDM0KQogIC0gcHMtc3Bvb2wtYnVmZmVyOiAgICAgICAgICAgICAgICAg ICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDQ0KQogIC0gcHMtc3Bvb2wtYnVmZmVy IChNUy1ET1MpOiAgICAgICAgICAgICAgV2luZG93cyBQcmludGluZy4gICAgKGxpbmUgIDg3KQog IC0gcHMtc3Bvb2wtYnVmZmVyLXdpdGgtZmFjZXM6ICAgICAgICAgICAgUG9zdFNjcmlwdC4gICAg ICAgICAgKGxpbmUgIDQ0KQogIC0gcHMtc3Bvb2wtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAg ICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDQ0KQogIC0gcHMtc3Bvb2wtcmVnaW9uLXdp dGgtZmFjZXM6ICAgICAgICAgICAgUG9zdFNjcmlwdC4gICAgICAgICAgKGxpbmUgIDQ0KQogIC0g cHdkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBOYW1lcy4gICAgICAg ICAgKGxpbmUgIDMxKQogIC0gcXVhaWwtc2V0LWtleWJvYXJkLWxheW91dDogICAgICAgICAgICAg U2VsZWN0IElucHV0IE1ldGhvZC4gKGxpbmUgIDc1KQogIC0gcXVhaWwtc2hvdy1rZXk6ICAgICAg ICAgICAgICAgICAgICAgICAgU2VsZWN0IElucHV0IE1ldGhvZC4gKGxpbmUgIDgxKQogIC0gcXVh aWwtdHJhbnNsYXRpb24ta2V5bWFwOiAgICAgICAgICAgICAgSW5wdXQgTWV0aG9kcy4gICAgICAg KGxpbmUgIDk2KQogIC0gcXVlcnktcmVwbGFjZTogICAgICAgICAgICAgICAgICAgICAgICAgUXVl cnkgUmVwbGFjZS4gICAgICAgKGxpbmUgIDExKQogIC0gcXVlcnktcmVwbGFjZS1yZWdleHA6ICAg ICAgICAgICAgICAgICAgUXVlcnkgUmVwbGFjZS4gICAgICAgKGxpbmUgIDIxKQogIC0gcXVpZXRs eS1yZWFkLWFiYnJldi1maWxlOiAgICAgICAgICAgICAgU2F2aW5nIEFiYnJldnMuICAgICAgKGxp bmUgIDI3KQogIC0gcXVpdC13aW5kb3c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V2ZXJh bCBCdWZmZXJzLiAgICAgKGxpbmUgIDg3KQogIC0gcXVpdC13aW5kb3csIGluIERpcmVkIGJ1ZmZl cnM6ICAgICAgICAgRGlyZWQgRW50ZXIuICAgICAgICAgKGxpbmUgIDU2KQogIC0gcXVvdGVkLWlu c2VydDogICAgICAgICAgICAgICAgICAgICAgICAgSW5zZXJ0aW5nIFRleHQuICAgICAgKGxpbmUg IDMwKQogIC0gcmUtc2VhcmNoLWJhY2t3YXJkOiAgICAgICAgICAgICAgICAgICAgUmVnZXhwIFNl YXJjaC4gICAgICAgKGxpbmUgIDY1KQogIC0gcmUtc2VhcmNoLWZvcndhcmQ6ICAgICAgICAgICAg ICAgICAgICAgUmVnZXhwIFNlYXJjaC4gICAgICAgKGxpbmUgIDY1KQogIC0gcmVhZC1hYmJyZXYt ZmlsZTogICAgICAgICAgICAgICAgICAgICAgU2F2aW5nIEFiYnJldnMuICAgICAgKGxpbmUgIDI3 KQogIC0gcmVhZC1vbmx5LW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBCdWZmZXIu ICAgICAgICAgKGxpbmUgIDI0KQogIC0gcmVjZW50ZXI6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVjZW50ZXJpbmcuICAgICAgICAgKGxpbmUgIDUzKQogIC0gcmVjZW50ZXItdG9wLWJv dHRvbTogICAgICAgICAgICAgICAgICAgUmVjZW50ZXJpbmcuICAgICAgICAgKGxpbmUgIDIwKQog IC0gcmVjZW50Zi1lZGl0LWxpc3Q6ICAgICAgICAgICAgICAgICAgICAgRmlsZSBDb252ZW5pZW5j ZXMuICAgKGxpbmUgIDEwKQogIC0gcmVjZW50Zi1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAg ICAgRmlsZSBDb252ZW5pZW5jZXMuICAgKGxpbmUgIDEwKQogIC0gcmVjZW50Zi1zYXZlLWxpc3Q6 ICAgICAgICAgICAgICAgICAgICAgRmlsZSBDb252ZW5pZW5jZXMuICAgKGxpbmUgIDEwKQogIC0g cmVjb2RlLWZpbGUtbmFtZTogICAgICAgICAgICAgICAgICAgICAgRmlsZSBOYW1lIENvZGluZy4g ICAgKGxpbmUgIDQ5KQogIC0gcmVjb2RlLXJlZ2lvbjogICAgICAgICAgICAgICAgICAgICAgICAg VGV4dCBDb2RpbmcuICAgICAgICAgKGxpbmUgIDc4KQogIC0gcmVjb21waWxlOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ29tcGlsYXRpb24uICAgICAgICAgKGxpbmUgIDY0KQogIC0gcmVj b3Zlci1maWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjb3Zlci4gICAgICAgICAgICAg KGxpbmUgICA2KQogIC0gcmVjb3Zlci1zZXNzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgUmVj b3Zlci4gICAgICAgICAgICAgKGxpbmUgIDIyKQogIC0gcmVjdGFuZ2xlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxpbmUgMTA0KQogIC0gcmVjdGFu Z2xlLWV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrOiAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAgKGxp bmUgMTMyKQogIC0gcmVjdGFuZ2xlLW1hcmstbW9kZTogICAgICAgICAgICAgICAgICAgUmVjdGFu Z2xlcy4gICAgICAgICAgKGxpbmUgMTIxKQogIC0gcmVtb3ZlLWhvb2s6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgSG9va3MuICAgICAgICAgICAgICAgKGxpbmUgIDgzKQogIC0gcmVtb3ZlLXVu dHJhbnNsYXRlZC1maWxlc3lzdGVtOiAgICAgICAgVGV4dCBhbmQgQmluYXJ5LiAgICAgKGxpbmUg IDcyKQogIC0gcmVuYW1lLWJ1ZmZlcjogICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBCdWZm ZXIuICAgICAgICAgKGxpbmUgIDMyKQogIC0gcmVuYW1lLWZpbGU6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ29weWluZyBhbmQgTmFtaW5nLiAgKGxpbmUgIDI5KQogIC0gcmVuYW1lLXVuaXF1 ZWx5OiAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBCdWZmZXIuICAgICAgICAgKGxpbmUgIDM3 KQogIC0gcmVwZWF0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0aW5nLiAg ICAgICAgICAgKGxpbmUgIDEyKQogIC0gcmVwZWF0LWNvbXBsZXgtY29tbWFuZDogICAgICAgICAg ICAgICAgUmVwZXRpdGlvbi4gICAgICAgICAgKGxpbmUgIDE5KQogIC0gcmVwbGFjZS1yZWdleHA6 ICAgICAgICAgICAgICAgICAgICAgICAgUmVnZXhwIFJlcGxhY2UuICAgICAgKGxpbmUgICA2KQog IC0gcmVwbGFjZS1zdHJpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgVW5jb25kaXRpb25hbCBS ZXBsYWNlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICAgNikKICAtIHJlcG9ydC1lbWFjcy1idWc6ICAgICAgICAgICAg ICAgICAgICAgIENoZWNrbGlzdC4gICAgICAgICAgIChsaW5lICAxNSkKICAtIHJlcG9zaXRpb24t d2luZG93OiAgICAgICAgICAgICAgICAgICAgIFJlY2VudGVyaW5nLiAgICAgICAgIChsaW5lICA1 NikKICAtIHJldmVhbC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dGxpbmUgVmlz aWJpbGl0eS4gIChsaW5lICA4NCkKICAtIHJldmVyc2UtcmVnaW9uOiAgICAgICAgICAgICAgICAg ICAgICAgIFNvcnRpbmcuICAgICAgICAgICAgIChsaW5lICA2NSkKICAtIHJldmVydC1idWZmZXI6 ICAgICAgICAgICAgICAgICAgICAgICAgIFJldmVydGluZy4gICAgICAgICAgIChsaW5lICAgNikK ICAtIHJldmVydC1idWZmZXIgKERpcmVkKTogICAgICAgICAgICAgICAgIERpcmVkIFVwZGF0aW5n LiAgICAgIChsaW5lICAyOSkKICAtIHJldmVydC1idWZmZXItd2l0aC1jb2Rpbmctc3lzdGVtOiAg ICAgIFRleHQgQ29kaW5nLiAgICAgICAgIChsaW5lICA3NCkKICAtIHJncmVwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdyZXAgU2VhcmNoaW5nLiAgICAgIChsaW5lICA3MCkKICAt IHJpZ2h0LWNoYXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAg ICAgIChsaW5lICAyMikKICAtIHJpZ2h0LWNoYXIsIGFuZCBiaWRpcmVjdGlvbmFsIHRleHQ6ICAg IEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNzkpCiAgLSByaWdodC13b3JkOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAgNTYp CiAgLSBybWFpbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbC4gICAgICAg ICAgICAgICAobGluZSAgIDYpCiAgLSBybWFpbC1hYm9ydC1lZGl0OiAgICAgICAgICAgICAgICAg ICAgICBSbWFpbCBFZGl0aW5nLiAgICAgICAobGluZSAgMTkpCiAgLSBybWFpbC1hZGQtbGFiZWw6 ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBMYWJlbHMuICAgICAgICAobGluZSAgMzApCiAg LSBybWFpbC1iZWdpbm5pbmctb2YtbWVzc2FnZTogICAgICAgICAgICBSbWFpbCBTY3JvbGxpbmcu ICAgICAobGluZSAgMjYpCiAgLSBybWFpbC1idXJ5OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSbWFpbCBCYXNpY3MuICAgICAgICAobGluZSAgMzUpCiAgLSBybWFpbC1jZWFzZS1lZGl0OiAg ICAgICAgICAgICAgICAgICAgICBSbWFpbCBFZGl0aW5nLiAgICAgICAobGluZSAgMTkpCiAgLSBy bWFpbC1jb250aW51ZTogICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAgICAg ICAobGluZSAxMDUpCiAgLSBybWFpbC1kZWxldGUtYmFja3dhcmQ6ICAgICAgICAgICAgICAgICBS bWFpbCBEZWxldGlvbi4gICAgICAobGluZSAgMjYpCiAgLSBybWFpbC1kZWxldGUtZm9yd2FyZDog ICAgICAgICAgICAgICAgICBSbWFpbCBEZWxldGlvbi4gICAgICAobGluZSAgMjYpCiAgLSBybWFp bC1lZGl0LWN1cnJlbnQtbWVzc2FnZTogICAgICAgICAgICBSbWFpbCBFZGl0aW5nLiAgICAgICAo bGluZSAgMTUpCiAgLSBybWFpbC1lbmQtb2YtbWVzc2FnZTogICAgICAgICAgICAgICAgICBSbWFp bCBTY3JvbGxpbmcuICAgICAobGluZSAgMjYpCiAgLSBybWFpbC1lcGEtZGVjcnlwdDogICAgICAg ICAgICAgICAgICAgICBSbWFpbCBEaXNwbGF5LiAgICAgICAobGluZSAgODMpCiAgLSBybWFpbC1l eHB1bmdlOiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBEZWxldGlvbi4gICAgICAobGlu ZSAgNDEpCiAgLSBybWFpbC1leHB1bmdlLWFuZC1zYXZlOiAgICAgICAgICAgICAgICBSbWFpbCBC YXNpY3MuICAgICAgICAobGluZSAgMjgpCiAgLSBybWFpbC1maXJzdC1tZXNzYWdlOiAgICAgICAg ICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgODMpCiAgLSBybWFpbC1mb3J3 YXJkOiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAgICAgICAobGluZSAg NjgpCiAgLSBybWFpbC1nZXQtbmV3LW1haWw6ICAgICAgICAgICAgICAgICAgICBSbWFpbCBGaWxl cy4gICAgICAgICAobGluZSAgNDkpCiAgLSBybWFpbC1pbnB1dDogICAgICAgICAgICAgICAgICAg ICAgICAgICBSbWFpbCBGaWxlcy4gICAgICAgICAobGluZSAgMjApCiAgLSBybWFpbC1raWxsLWxh YmVsOiAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBMYWJlbHMuICAgICAgICAobGluZSAgMzAp CiAgLSBybWFpbC1sYXN0LW1lc3NhZ2U6ICAgICAgICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24u ICAgICAgICAobGluZSAgODMpCiAgLSBybWFpbC1tYWlsOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSbWFpbCBSZXBseS4gICAgICAgICAobGluZSAxMDApCiAgLSBybWFpbC1taW1lOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBEaXNwbGF5LiAgICAgICAobGluZSAgNTUpCiAg LSBybWFpbC1taW1lLW5leHQtaXRlbTogICAgICAgICAgICAgICAgICBSbWFpbCBEaXNwbGF5LiAg ICAgICAobGluZSAgNDgpCiAgLSBybWFpbC1taW1lLXByZXZpb3VzLWl0ZW06ICAgICAgICAgICAg ICBSbWFpbCBEaXNwbGF5LiAgICAgICAobGluZSAgNTIpCiAgLSBybWFpbC1taW1lLXRvZ2dsZS1o aWRkZW46ICAgICAgICAgICAgICBSbWFpbCBEaXNwbGF5LiAgICAgICAobGluZSAgNDUpCiAgLSBy bWFpbC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbC4gICAgICAgICAgICAg ICAobGluZSAgIDYpCiAgLSBybWFpbC1uZXh0LWxhYmVsZWQtbWVzc2FnZTogICAgICAgICAgICBS bWFpbCBMYWJlbHMuICAgICAgICAobGluZSAgMzkpCiAgLSBybWFpbC1uZXh0LW1lc3NhZ2U6ICAg ICAgICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgNDYpCiAgLSBybWFp bC1uZXh0LXNhbWUtc3ViamVjdDogICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAo bGluZSAgNzUpCiAgLSBybWFpbC1uZXh0LXVuZGVsZXRlZC1tZXNzYWdlOiAgICAgICAgICBSbWFp bCBNb3Rpb24uICAgICAgICAobGluZSAgNDYpCiAgLSBybWFpbC1vdXRwdXQ6ICAgICAgICAgICAg ICAgICAgICAgICAgICBSbWFpbCBPdXRwdXQuICAgICAgICAobGluZSAgMjApCiAgLSBybWFpbC1v dXRwdXQtYXMtc2VlbjogICAgICAgICAgICAgICAgICBSbWFpbCBPdXRwdXQuICAgICAgICAobGlu ZSAgMjApCiAgLSBybWFpbC1vdXRwdXQtYm9keS10by1maWxlOiAgICAgICAgICAgICBSbWFpbCBP dXRwdXQuICAgICAgICAobGluZSAgMzIpCiAgLSBybWFpbC1wcmV2aW91cy1sYWJlbGVkLW1lc3Nh Z2U6ICAgICAgICBSbWFpbCBMYWJlbHMuICAgICAgICAobGluZSAgMzkpCiAgLSBybWFpbC1wcmV2 aW91cy1tZXNzYWdlOiAgICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAg NDYpCiAgLSBybWFpbC1wcmV2aW91cy1zYW1lLXN1YmplY3Q6ICAgICAgICAgICBSbWFpbCBNb3Rp b24uICAgICAgICAobGluZSAgNzUpCiAgLSBybWFpbC1wcmV2aW91cy11bmRlbGV0ZWQtbWVzc2Fn ZTogICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgNDYpCiAgLSBybWFpbC1xdWl0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBCYXNpY3MuICAgICAgICAobGluZSAgMzUp CiAgLSBybWFpbC1yZWRlY29kZS1ib2R5OiAgICAgICAgICAgICAgICAgICBSbWFpbCBDb2Rpbmcu ICAgICAgICAobGluZSAgMjUpCiAgLSBybWFpbC1yZXBseTogICAgICAgICAgICAgICAgICAgICAg ICAgICBSbWFpbCBSZXBseS4gICAgICAgICAobGluZSAgMjgpCiAgLSBybWFpbC1yZXNlbmQ6ICAg ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAgICAgICAobGluZSAgOTMpCiAg LSBybWFpbC1yZXRyeS1mYWlsdXJlOiAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAg ICAgICAobGluZSAgNTcpCiAgLSBybWFpbC1zZWFyY2g6ICAgICAgICAgICAgICAgICAgICAgICAg ICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgNjApCiAgLSBybWFpbC1zaG93LW1lc3NhZ2U6 ICAgICAgICAgICAgICAgICAgICBSbWFpbCBNb3Rpb24uICAgICAgICAobGluZSAgODMpCiAgLSBy bWFpbC1zb3J0LWJ5LWF1dGhvcjogICAgICAgICAgICAgICAgICBSbWFpbCBTb3J0aW5nLiAgICAg ICAobGluZSAgMTQpCiAgLSBybWFpbC1zb3J0LWJ5LWNvcnJlc3BvbmRlbnQ6ICAgICAgICAgICBS bWFpbCBTb3J0aW5nLiAgICAgICAobGluZSAgMjIpCiAgLSBybWFpbC1zb3J0LWJ5LWRhdGU6ICAg ICAgICAgICAgICAgICAgICBSbWFpbCBTb3J0aW5nLiAgICAgICAobGluZSAgIDYpCiAgLSBybWFp bC1zb3J0LWJ5LWxhYmVsczogICAgICAgICAgICAgICAgICBSbWFpbCBTb3J0aW5nLiAgICAgICAo bGluZSAgMzEpCiAgLSBybWFpbC1zb3J0LWJ5LWxpbmVzOiAgICAgICAgICAgICAgICAgICBSbWFp bCBTb3J0aW5nLiAgICAgICAobGluZSAgMjcpCiAgLSBybWFpbC1zb3J0LWJ5LXJlY2lwaWVudDog ICAgICAgICAgICAgICBSbWFpbCBTb3J0aW5nLiAgICAgICAobGluZSAgMTgpCiAgLSBybWFpbC1z b3J0LWJ5LXN1YmplY3Q6ICAgICAgICAgICAgICAgICBSbWFpbCBTb3J0aW5nLiAgICAgICAobGlu ZSAgMTApCiAgLSBybWFpbC1zdW1tYXJ5OiAgICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBN YWtlIFN1bW1hcnkuICAobGluZSAgMzEpCiAgLSBybWFpbC1zdW1tYXJ5LWJ1cnk6ICAgICAgICAg ICAgICAgICAgICBSbWFpbCBTdW1tYXJ5IEVkaXQuICAobGluZSAgOTMpCiAgLSBybWFpbC1zdW1t YXJ5LWJ5LWxhYmVsczogICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAg MzYpCiAgLSBybWFpbC1zdW1tYXJ5LWJ5LXJlY2lwaWVudHM6ICAgICAgICAgICBSbWFpbCBNYWtl IFN1bW1hcnkuICAobGluZSAgNDApCiAgLSBybWFpbC1zdW1tYXJ5LWJ5LXJlZ2V4cDogICAgICAg ICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAgNTEpCiAgLSBybWFpbC1zdW1tYXJ5 LWJ5LXNlbmRlcnM6ICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1bW1hcnkuICAobGluZSAgNTUp CiAgLSBybWFpbC1zdW1tYXJ5LWJ5LXRvcGljOiAgICAgICAgICAgICAgICBSbWFpbCBNYWtlIFN1 bW1hcnkuICAobGluZSAgNDYpCiAgLSBybWFpbC1zdW1tYXJ5LXF1aXQ6ICAgICAgICAgICAgICAg ICAgICBSbWFpbCBTdW1tYXJ5IEVkaXQuICAobGluZSAgOTMpCiAgLSBybWFpbC1zdW1tYXJ5LXVu ZGVsZXRlLW1hbnk6ICAgICAgICAgICBSbWFpbCBTdW1tYXJ5IEVkaXQuICAobGluZSAgMzApCiAg LSBybWFpbC1zdW1tYXJ5LXdpcGU6ICAgICAgICAgICAgICAgICAgICBSbWFpbCBTdW1tYXJ5IEVk aXQuICAobGluZSAgOTMpCiAgLSBybWFpbC10b2dnbGUtaGVhZGVyOiAgICAgICAgICAgICAgICAg ICBSbWFpbCBEaXNwbGF5LiAgICAgICAobGluZSAgMTIpCiAgLSBybWFpbC11bmRlbGV0ZS1wcmV2 aW91cy1tZXNzYWdlOiAgICAgICBSbWFpbCBEZWxldGlvbi4gICAgICAobGluZSAgNDEpCiAgLSBy b3QxMy1vdGhlci13aW5kb3c6ICAgICAgICAgICAgICAgICAgICBSbWFpbCBSb3QxMy4gICAgICAg ICAobGluZSAgMTMpCiAgLSBydW4tbGlzcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF eHRlcm5hbCBMaXNwLiAgICAgICAobGluZSAgMTEpCiAgLSBydW4tc2NoZW1lOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFeHRlcm5hbCBMaXNwLiAgICAgICAobGluZSAgMzUpCiAgLSBzYXZl LWJ1ZmZlcjogICAgICAgICAgICAgICAgICAgICAgICAgICBTYXZlIENvbW1hbmRzLiAgICAgICAo bGluZSAgMjApCiAgLSBzYXZlLWJ1ZmZlcnMta2lsbC10ZXJtaW5hbDogICAgICAgICAgICBFeGl0 aW5nLiAgICAgICAgICAgICAobGluZSAgMTIpCiAgLSBzYXZlLXNvbWUtYnVmZmVyczogICAgICAg ICAgICAgICAgICAgICBTYXZlIENvbW1hbmRzLiAgICAgICAobGluZSAgMzYpCiAgLSBzY2hlbWUt bW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbCBMaXNwLiAgICAgICAobGlu ZSAgMzUpCiAgLSBzY3JvbGwtYmFyLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICBTY3JvbGwg QmFycy4gICAgICAgICAobGluZSAgMjEpCiAgLSBzY3JvbGwtZG93bi1jb21tYW5kOiAgICAgICAg ICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAgICAobGluZSAgMzUpCiAgLSBzY3JvbGwtZG93 bi1saW5lOiAgICAgICAgICAgICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAgICAobGluZSAg ODQpCiAgLSBzY3JvbGwtbGVmdDogICAgICAgICAgICAgICAgICAgICAgICAgICBIb3Jpem9udGFs IFNjcm9sbGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNDIpCiAgLSBzY3JvbGwtb3RoZXItd2luZG93OiAgICAg ICAgICAgICAgICAgICBPdGhlciBXaW5kb3cuICAgICAgICAobGluZSAgMjgpCiAgLSBzY3JvbGwt cmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBIb3Jpem9udGFsIFNjcm9sbGluZy4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNDIpCiAgLSBzY3JvbGwtdXAtY29tbWFuZDogICAgICAgICAgICAgICAgICAgICBT Y3JvbGxpbmcuICAgICAgICAgICAobGluZSAgMzUpCiAgLSBzY3JvbGwtdXAtbGluZTogICAgICAg ICAgICAgICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAgICAobGluZSAgODQpCiAgLSBzZGI6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFydGluZyBHVUQuICAgICAgICAo bGluZSAgNDIpCiAgLSBzZWFyY2gtYmFja3dhcmQ6ICAgICAgICAgICAgICAgICAgICAgICBOb25p bmNyZW1lbnRhbCBTZWFyY2guCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gc2VhcmNoLWZvcndhcmQ6ICAg ICAgICAgICAgICAgICAgICAgICAgTm9uaW5jcmVtZW50YWwgU2VhcmNoLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAy OCkKICAtIHNlbGVjdC1mcmFtZS1ieS1uYW1lOiAgICAgICAgICAgICAgICAgIE5vbi1XaW5kb3cg VGVybWluYWxzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAxOSkKICAtIHNlbmQtaW52aXNpYmxlOiAgICAgICAgICAg ICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lIDExNCkKICAtIHNlcmlhbC10 ZXJtOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbCBUZXJtaW5hbC4gICAgIChsaW5l ICAgNikKICAtIHNlcnZlci1lZGl0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEludm9raW5n IGVtYWNzY2xpZW50LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAzMikKICAtIHNlcnZlci1ldmFsLWF0OiAgICAgICAg ICAgICAgICAgICAgICAgIEVtYWNzIFNlcnZlci4gICAgICAgIChsaW5lICA3OCkKICAtIHNlcnZl ci1nZW5lcmF0ZS1rZXk6ICAgICAgICAgICAgICAgICAgIFRDUCBFbWFjcyBzZXJ2ZXIuICAgIChs aW5lICAyNikKICAtIHNlcnZlci1zdGFydDogICAgICAgICAgICAgICAgICAgICAgICAgIEVtYWNz IFNlcnZlci4gICAgICAgIChsaW5lICAyMSkKICAtIHNldC1idWZmZXItZmlsZS1jb2Rpbmctc3lz dGVtOiAgICAgICAgIFRleHQgQ29kaW5nLiAgICAgICAgIChsaW5lICAyNSkKICAtIHNldC1idWZm ZXItcHJvY2Vzcy1jb2Rpbmctc3lzdGVtOiAgICAgIENvbW11bmljYXRpb24gQ29kaW5nLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICA0MykKICAtIHNldC1mYWNlLWJhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAgIENv bG9ycy4gICAgICAgICAgICAgIChsaW5lICAzMykKICAtIHNldC1mYWNlLWZvcmVncm91bmQ6ICAg ICAgICAgICAgICAgICAgIENvbG9ycy4gICAgICAgICAgICAgIChsaW5lICAzMykKICAtIHNldC1m aWxlLW1vZGVzOiAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgRmlsZSBPcHMuICAgICAgIChs aW5lICA0OCkKICAtIHNldC1maWxlLW5hbWUtY29kaW5nLXN5c3RlbTogICAgICAgICAgIEZpbGUg TmFtZSBDb2RpbmcuICAgIChsaW5lICAxMCkKICAtIHNldC1maWxsLWNvbHVtbjogICAgICAgICAg ICAgICAgICAgICAgIEZpbGwgQ29tbWFuZHMuICAgICAgIChsaW5lICAzOSkKICAtIHNldC1maWxs LXByZWZpeDogICAgICAgICAgICAgICAgICAgICAgIEZpbGwgUHJlZml4LiAgICAgICAgIChsaW5l ICAyMykKICAtIHNldC1mb250c2V0LWZvbnQ6ICAgICAgICAgICAgICAgICAgICAgIE1vZGlmeWlu ZyBGb250c2V0cy4gIChsaW5lICAgNikKICAtIHNldC1mcmFtZS1uYW1lOiAgICAgICAgICAgICAg ICAgICAgICAgIE5vbi1XaW5kb3cgVGVybWluYWxzLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAxOSkKICAtIHNldC1m cmluZ2Utc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgIEZyaW5nZXMuICAgICAgICAgICAgIChs aW5lICAgNikKICAtIHNldC1nb2FsLWNvbHVtbjogICAgICAgICAgICAgICAgICAgICAgIE1vdmlu ZyBQb2ludC4gICAgICAgIChsaW5lIDEyMykKICAtIHNldC1pbnB1dC1tZXRob2Q6ICAgICAgICAg ICAgICAgICAgICAgIFNlbGVjdCBJbnB1dCBNZXRob2QuIChsaW5lICAyNCkKICAtIHNldC1qdXN0 aWZpY2F0aW9uLWNlbnRlcjogICAgICAgICAgICAgIEVucmljaGVkIEp1c3RpZmljYXRpb24uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDIxKQogIC0gc2V0LWp1c3RpZmljYXRpb24tZnVsbDogICAgICAgICAgICAgICAg RW5yaWNoZWQgSnVzdGlmaWNhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTcpCiAgLSBzZXQtanVzdGlmaWNh dGlvbi1sZWZ0OiAgICAgICAgICAgICAgICBFbnJpY2hlZCBKdXN0aWZpY2F0aW9uLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICAxMSkKICAtIHNldC1qdXN0aWZpY2F0aW9uLW5vbmU6ICAgICAgICAgICAgICAgIEVucmlj aGVkIEp1c3RpZmljYXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI1KQogIC0gc2V0LWp1c3RpZmljYXRpb24t cmlnaHQ6ICAgICAgICAgICAgICAgRW5yaWNoZWQgSnVzdGlmaWNhdGlvbi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg MTQpCiAgLSBzZXQta2V5Ym9hcmQtY29kaW5nLXN5c3RlbTogICAgICAgICAgICBUZXJtaW5hbCBD b2RpbmcuICAgICAobGluZSAgMjkpCiAgLSBzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQ6ICAgICAg ICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE5KQogIC0gc2V0LWxl ZnQtbWFyZ2luOiAgICAgICAgICAgICAgICAgICAgICAgRW5yaWNoZWQgSW5kZW50YXRpb24uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDMzKQogIC0gc2V0LWxvY2FsZS1lbnZpcm9ubWVudDogICAgICAgICAgICAgICAg TGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0NSkKICAtIHNldC1tYXJrLWNvbW1h bmQ6ICAgICAgICAgICAgICAgICAgICAgIFNldHRpbmcgTWFyay4gICAgICAgIChsaW5lICAyNCkK ICAtIHNldC1uZXh0LXNlbGVjdGlvbi1jb2Rpbmctc3lzdGVtOiAgICAgIENvbW11bmljYXRpb24g Q29kaW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICAyMykKICAtIHNldC1yaWdodC1tYXJnaW46ICAgICAgICAgICAg ICAgICAgICAgIEVucmljaGVkIEluZGVudGF0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzMykKICAtIHNldC1z ZWxlY3Rpb24tY29kaW5nLXN5c3RlbTogICAgICAgICAgIENvbW11bmljYXRpb24gQ29kaW5nLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICAyMykKICAtIHNldC1zZWxlY3RpdmUtZGlzcGxheTogICAgICAgICAgICAgICAg IFNlbGVjdGl2ZSBEaXNwbGF5LiAgIChsaW5lICAgNikKICAtIHNldC10ZXJtaW5hbC1jb2Rpbmct c3lzdGVtOiAgICAgICAgICAgIFRlcm1pbmFsIENvZGluZy4gICAgIChsaW5lICAxNCkKICAtIHNl dC12YXJpYWJsZTogICAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1pbmluZy4gICAgICAgICAg IChsaW5lICAzOSkKICAtIHNldC12aXNpdGVkLWZpbGUtbmFtZTogICAgICAgICAgICAgICAgIFNh dmUgQ29tbWFuZHMuICAgICAgIChsaW5lICA4MSkKICAtIHNldGVudjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEVudmlyb25tZW50LiAgICAgICAgIChsaW5lICAxOSkKICAtIHNldHEt ZGVmYXVsdDogICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fscy4gICAgICAgICAgICAgIChs aW5lICA1NykKICAtIHNnbWwtYXR0cmlidXRlczogICAgICAgICAgICAgICAgICAgICAgIEhUTUwg TW9kZS4gICAgICAgICAgIChsaW5lICAzMikKICAtIHNnbWwtY2xvc2UtdGFnOiAgICAgICAgICAg ICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICA1NykKICAtIHNnbWwtZGVs ZXRlLXRhZzogICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5l ICA0NykKICAtIHNnbWwtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9k ZS4gICAgICAgICAgIChsaW5lICAgNikKICAtIHNnbWwtbmFtZS04Yml0LW1vZGU6ICAgICAgICAg ICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICA2MikKICAtIHNnbWwtbmFtZS1j aGFyOiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICAx NikKICAtIHNnbWwtc2tpcC10YWctYmFja3dhcmQ6ICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4g ICAgICAgICAgIChsaW5lICA0MSkKICAtIHNnbWwtc2tpcC10YWctZm9yd2FyZDogICAgICAgICAg ICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICAzNikKICAtIHNnbWwtdGFnOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICAyMCkK ICAtIHNnbWwtdGFnLWhlbHA6ICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAg ICAgICAgIChsaW5lICA1MykKICAtIHNnbWwtdGFncy1pbnZpc2libGU6ICAgICAgICAgICAgICAg ICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICA3MikKICAtIHNnbWwtdmFsaWRhdGU6ICAg ICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgIChsaW5lICA2NykKICAt IHNoYWRvdy1pbml0aWFsaXplOiAgICAgICAgICAgICAgICAgICAgIEZpbGUgU2hhZG93aW5nLiAg ICAgIChsaW5lICAgNikKICAtIHNoZWxsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEludGVyYWN0aXZlIFNoZWxsLiAgIChsaW5lICAgNikKICAtIHNoZWxsLWJhY2t3YXJkLWNvbW1h bmQ6ICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChsaW5lIDEwNikKICAtIHNo ZWxsLWNvbW1hbmQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmdsZSBTaGVsbC4gICAgICAg IChsaW5lICAgNikKICAtIHNoZWxsLWNvbW1hbmQtb24tcmVnaW9uOiAgICAgICAgICAgICAgIFNp bmdsZSBTaGVsbC4gICAgICAgIChsaW5lICA1NSkKICAtIHNoZWxsLWR5bmFtaWMtY29tcGxldGUt Y29tbWFuZDogICAgICAgIFNoZWxsIE9wdGlvbnMuICAgICAgIChsaW5lICA1MykKICAtIHNoZWxs LWZvcndhcmQtY29tbWFuZDogICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUuICAgICAgICAgIChs aW5lIDEwMCkKICAtIHNoZWxsLXB1c2hkLWRleHRyYWN0OiAgICAgICAgICAgICAgICAgIFNoZWxs IE9wdGlvbnMuICAgICAgIChsaW5lICA1NykKICAtIHNoZWxsLXB1c2hkLWR1bmlxdWU6ICAgICAg ICAgICAgICAgICAgIFNoZWxsIE9wdGlvbnMuICAgICAgIChsaW5lICA1NykKICAtIHNoZWxsLXB1 c2hkLXRvaG9tZTogICAgICAgICAgICAgICAgICAgIFNoZWxsIE9wdGlvbnMuICAgICAgIChsaW5l ICA1NykKICAtIHNob3ctcGFyZW4tbW9kZTogICAgICAgICAgICAgICAgICAgICAgIE1hdGNoaW5n LiAgICAgICAgICAgIChsaW5lICAzNCkKICAtIHNocmluay13aW5kb3ctaG9yaXpvbnRhbGx5OiAg ICAgICAgICAgIENoYW5nZSBXaW5kb3cuICAgICAgIChsaW5lICA1MykKICAtIHNocmluay13aW5k b3ctaWYtbGFyZ2VyLXRoYW4tYnVmZmVyOiAgIENoYW5nZSBXaW5kb3cuICAgICAgIChsaW5lICA2 MykKICAtIHNpemUtaW5kaWNhdGlvbi1tb2RlOiAgICAgICAgICAgICAgICAgIE9wdGlvbmFsIE1v ZGUgTGluZS4gIChsaW5lICAgNikKICAtIHNsaXRleC1tb2RlOiAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRlWCBNb2RlLiAgICAgICAgICAgIChsaW5lICAgNikKICAtIHNtZXJnZS1tb2RlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgIChsaW5lICA1MSkK ICAtIHNuYWtlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtdXNlbWVudHMuICAg ICAgICAgIChsaW5lICA1MCkKICAtIHNvbGl0YWlyZTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFtdXNlbWVudHMuICAgICAgICAgIChsaW5lICA1MykKICAtIHNvcnQtY29sdW1uczogICAg ICAgICAgICAgICAgICAgICAgICAgIFNvcnRpbmcuICAgICAgICAgICAgIChsaW5lICA5NykKICAt IHNvcnQtZmllbGRzOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRpbmcuICAgICAgICAg ICAgIChsaW5lICAyMykKICAtIHNvcnQtbGluZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvcnRpbmcuICAgICAgICAgICAgIChsaW5lICAyMykKICAtIHNvcnQtbnVtZXJpYy1maWVsZHM6 ICAgICAgICAgICAgICAgICAgIFNvcnRpbmcuICAgICAgICAgICAgIChsaW5lICAyMykKICAtIHNv cnQtcGFnZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRpbmcuICAgICAgICAgICAg IChsaW5lICAyMykKICAtIHNvcnQtcGFyYWdyYXBoczogICAgICAgICAgICAgICAgICAgICAgIFNv cnRpbmcuICAgICAgICAgICAgIChsaW5lICAyMykKICAtIHNwbGl0LWxpbmU6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGVudGF0aW9uIENvbW1hbmRzLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAxMCkKICAt IHNwbGl0LXdpbmRvdy1iZWxvdzogICAgICAgICAgICAgICAgICAgIFNwbGl0IFdpbmRvdy4gICAg ICAgIChsaW5lICAxNSkKICAtIHNwbGl0LXdpbmRvdy1yaWdodDogICAgICAgICAgICAgICAgICAg IFNwbGl0IFdpbmRvdy4gICAgICAgIChsaW5lICAzMikKICAtIHNwb29rOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1haWwgQW11c2VtZW50cy4gICAgIChsaW5lICAgNikKICAtIHN0 YW5kYXJkLWRpc3BsYXktOGJpdDogICAgICAgICAgICAgICAgIFVuaWJ5dGUgTW9kZS4gICAgICAg IChsaW5lICAzNSkKICAtIHN0cmluZy1pbnNlcnQtcmVjdGFuZ2xlOiAgICAgICAgICAgICAgIFJl Y3RhbmdsZXMuICAgICAgICAgIChsaW5lIDExNykKICAtIHN0cmluZy1yZWN0YW5nbGU6ICAgICAg ICAgICAgICAgICAgICAgIFJlY3RhbmdsZXMuICAgICAgICAgIChsaW5lIDExMSkKICAtIHN1YnN0 aXR1dGUta2V5LWRlZmluaXRpb246ICAgICAgICAgICAgIEluaXQgRXhhbXBsZXMuICAgICAgIChs aW5lIDExNCkKICAtIHN1YndvcmQtbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgIE1peGVk Q2FzZSBXb3Jkcy4gICAgIChsaW5lICAyMykKICAtIHN1bnJpc2Utc3Vuc2V0OiAgICAgICAgICAg ICAgICAgICAgICAgIFN1bnJpc2UvU3Vuc2V0LiAgICAgIChsaW5lICAyMCkKICAtIHN1cGVyd29y ZC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgZm9yIFByb2dyYW1zLiAgIChsaW5l ICAxOSkKICAtIHN1c3BlbmQtZnJhbWU6ICAgICAgICAgICAgICAgICAgICAgICAgIEV4aXRpbmcu ICAgICAgICAgICAgIChsaW5lICA0NykKICAtIHN3aXRjaC10by1idWZmZXI6ICAgICAgICAgICAg ICAgICAgICAgIFNlbGVjdCBCdWZmZXIuICAgICAgIChsaW5lICAyMykKICAtIHN3aXRjaC10by1i dWZmZXItb3RoZXItZnJhbWU6ICAgICAgICAgIFNlbGVjdCBCdWZmZXIuICAgICAgIChsaW5lICA1 NykKICAtIHN3aXRjaC10by1idWZmZXItb3RoZXItd2luZG93OiAgICAgICAgIFNlbGVjdCBCdWZm ZXIuICAgICAgIChsaW5lICA1MikKICAtIHN3aXRjaC10by1jb21wbGV0aW9uczogICAgICAgICAg ICAgICAgIENvbXBsZXRpb24gQ29tbWFuZHMuIChsaW5lICA0MCkKICAtIHRhYi10by10YWItc3Rv cDogICAgICAgICAgICAgICAgICAgICAgIEluZGVudGF0aW9uIENvbW1hbmRzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICAyMikKICAtIHRhYmlmeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEp1c3QgU3Bh Y2VzLiAgICAgICAgIChsaW5lICAyNikKICAtIHRhYmxlLWJhY2t3YXJkLWNlbGw6ICAgICAgICAg ICAgICAgICAgIENlbGwgQ29tbWFuZHMuICAgICAgIChsaW5lICAgNikKICAtIHRhYmxlLWNhcHR1 cmU6ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlIENvbnZlcnNpb24uICAgIChsaW5lICAg NikKICAtIHRhYmxlLWZpeGVkLXdpZHRoLW1vZGU6ICAgICAgICAgICAgICAgIFRleHQgQmFzZWQg VGFibGVzLiAgIChsaW5lICAyNykKICAtIHRhYmxlLWZvcndhcmQtY2VsbDogICAgICAgICAgICAg ICAgICAgIENlbGwgQ29tbWFuZHMuICAgICAgIChsaW5lICAgNikKICAtIHRhYmxlLWdlbmVyYXRl LXNvdXJjZTogICAgICAgICAgICAgICAgIFRhYmxlIE1pc2MuICAgICAgICAgIChsaW5lICAyNCkK ICAtIHRhYmxlLWhlaWdodGVuLWNlbGw6ICAgICAgICAgICAgICAgICAgIENlbGwgQ29tbWFuZHMu ICAgICAgIChsaW5lICAzMSkKICAtIHRhYmxlLWluc2VydDogICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlIENyZWF0aW9uLiAgICAgIChsaW5lICAgNikKICAtIHRhYmxlLWluc2VydC1jb2x1 bW46ICAgICAgICAgICAgICAgICAgIFRhYmxlIFJvd3MgYW5kIENvbHVtbnMuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDEzKQogIC0gdGFibGUtaW5zZXJ0LXJvdzogICAgICAgICAgICAgICAgICAgICAgVGFibGUgUm93 cyBhbmQgQ29sdW1ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSB0YWJsZS1pbnNlcnQtc2VxdWVuY2U6 ICAgICAgICAgICAgICAgICBUYWJsZSBNaXNjLiAgICAgICAgICAobGluZSAgMTUpCiAgLSB0YWJs ZS1qdXN0aWZ5OiAgICAgICAgICAgICAgICAgICAgICAgICBDZWxsIEp1c3RpZmljYXRpb24uICAo bGluZSAgMTEpCiAgLSB0YWJsZS1uYXJyb3ctY2VsbDogICAgICAgICAgICAgICAgICAgICBDZWxs IENvbW1hbmRzLiAgICAgICAobGluZSAgNDApCiAgLSB0YWJsZS1xdWVyeS1kaW1lbnNpb246ICAg ICAgICAgICAgICAgICBUYWJsZSBNaXNjLiAgICAgICAgICAobGluZSAgIDYpCiAgLSB0YWJsZS1y ZWNvZ25pemU6ICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBSZWNvZ25pdGlvbi4gICAobGlu ZSAgIDYpCiAgLSB0YWJsZS1yZWNvZ25pemUtY2VsbDogICAgICAgICAgICAgICAgICBUYWJsZSBS ZWNvZ25pdGlvbi4gICAobGluZSAgMzApCiAgLSB0YWJsZS1yZWNvZ25pemUtcmVnaW9uOiAgICAg ICAgICAgICAgICBUYWJsZSBSZWNvZ25pdGlvbi4gICAobGluZSAgMTgpCiAgLSB0YWJsZS1yZWNv Z25pemUtdGFibGU6ICAgICAgICAgICAgICAgICBUYWJsZSBSZWNvZ25pdGlvbi4gICAobGluZSAg MjQpCiAgLSB0YWJsZS1yZWxlYXNlOiAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBDb252 ZXJzaW9uLiAgICAobGluZSAgMjgpCiAgLSB0YWJsZS1zaG9ydGVuLWNlbGw6ICAgICAgICAgICAg ICAgICAgICBDZWxsIENvbW1hbmRzLiAgICAgICAobGluZSAgMzQpCiAgLSB0YWJsZS1zcGFuLWNl bGw6ICAgICAgICAgICAgICAgICAgICAgICBDZWxsIENvbW1hbmRzLiAgICAgICAobGluZSAgMTIp CiAgLSB0YWJsZS1zcGxpdC1jZWxsOiAgICAgICAgICAgICAgICAgICAgICBDZWxsIENvbW1hbmRz LiAgICAgICAobGluZSAgMTcpCiAgLSB0YWJsZS1zcGxpdC1jZWxsLWhvcml6b250YWxseTogICAg ICAgICBDZWxsIENvbW1hbmRzLiAgICAgICAobGluZSAgMTcpCiAgLSB0YWJsZS1zcGxpdC1jZWxs LXZlcnRpY2FsbHk6ICAgICAgICAgICBDZWxsIENvbW1hbmRzLiAgICAgICAobGluZSAgMTcpCiAg LSB0YWJsZS11bnJlY29nbml6ZTogICAgICAgICAgICAgICAgICAgICBUYWJsZSBSZWNvZ25pdGlv bi4gICAobGluZSAgIDYpCiAgLSB0YWJsZS11bnJlY29nbml6ZS1jZWxsOiAgICAgICAgICAgICAg ICBUYWJsZSBSZWNvZ25pdGlvbi4gICAobGluZSAgMzMpCiAgLSB0YWJsZS11bnJlY29nbml6ZS1y ZWdpb246ICAgICAgICAgICAgICBUYWJsZSBSZWNvZ25pdGlvbi4gICAobGluZSAgMjEpCiAgLSB0 YWJsZS11bnJlY29nbml6ZS10YWJsZTogICAgICAgICAgICAgICBUYWJsZSBSZWNvZ25pdGlvbi4g ICAobGluZSAgMjcpCiAgLSB0YWJsZS13aWRlbi1jZWxsOiAgICAgICAgICAgICAgICAgICAgICBD ZWxsIENvbW1hbmRzLiAgICAgICAobGluZSAgMzcpCiAgLSB0YWJ1bGF0ZWQtbGlzdC1zb3J0OiAg ICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgICAobGluZSAxMzEpCiAgLSB0YWdz LWxvb3AtY29udGludWU6ICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyIFNlYXJjaC4gICAo bGluZSAgNTQpCiAgLSB0YWdzLXF1ZXJ5LXJlcGxhY2U6ICAgICAgICAgICAgICAgICAgICBJZGVu dGlmaWVyIFNlYXJjaC4gICAobGluZSAgNTkpCiAgLSB0YWdzLXNlYXJjaDogICAgICAgICAgICAg ICAgICAgICAgICAgICBJZGVudGlmaWVyIFNlYXJjaC4gICAobGluZSAgNDgpCiAgLSB0ZW1wLWJ1 ZmZlci1yZXNpemUtbW9kZTogICAgICAgICAgICAgICBUZW1wb3JhcnkgRGlzcGxheXMuICAobGlu ZSAgMjkpCiAgLSB0ZXJtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXJtaW5h bCBlbXVsYXRvci4gICAobGluZSAgIDYpCiAgLSB0ZXJtLWNoYXItbW9kZTogICAgICAgICAgICAg ICAgICAgICAgICBUZXJtIE1vZGUuICAgICAgICAgICAobGluZSAgMTIpCiAgLSB0ZXJtLWxpbmUt bW9kZTogICAgICAgICAgICAgICAgICAgICAgICBUZXJtIE1vZGUuICAgICAgICAgICAobGluZSAg IDgpCiAgLSB0ZXJtLXBhZ2VyLXRvZ2dsZTogICAgICAgICAgICAgICAgICAgICBUZXJtIE1vZGUu ICAgICAgICAgICAobGluZSAgMjkpCiAgLSB0ZXRyaXM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAgICAobGluZSAgNTApCiAgLSB0ZXgtYmlidGV4LWZp bGU6ICAgICAgICAgICAgICAgICAgICAgICBUZVggUHJpbnQuICAgICAgICAgICAobGluZSAxMzgp CiAgLSB0ZXgtYnVmZmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggUHJpbnQuICAg ICAgICAgICAobGluZSAgMzkpCiAgLSB0ZXgtY2xvc2UtbGF0ZXgtYmxvY2s6ICAgICAgICAgICAg ICAgICBMYVRlWCBFZGl0aW5nLiAgICAgICAobGluZSAgMjcpCiAgLSB0ZXgtY29tcGlsZTogICAg ICAgICAgICAgICAgICAgICAgICAgICBUZVggUHJpbnQuICAgICAgICAgICAobGluZSAxNDgpCiAg LSB0ZXgtZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggUHJpbnQuICAgICAg ICAgICAobGluZSAxMTApCiAgLSB0ZXgtaW5zZXJ0LWJyYWNlczogICAgICAgICAgICAgICAgICAg ICBUZVggRWRpdGluZy4gICAgICAgICAobGluZSAgNDMpCiAgLSB0ZXgtaW5zZXJ0LXF1b3RlOiAg ICAgICAgICAgICAgICAgICAgICBUZVggRWRpdGluZy4gICAgICAgICAobGluZSAgMjEpCiAgLSB0 ZXgta2lsbC1qb2I6ICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggUHJpbnQuICAgICAgICAg ICAobGluZSAgNzgpCiAgLSB0ZXgtbGF0ZXgtYmxvY2s6ICAgICAgICAgICAgICAgICAgICAgICBM YVRlWCBFZGl0aW5nLiAgICAgICAobGluZSAgMTUpCiAgLSB0ZXgtbW9kZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUZVggTW9kZS4gICAgICAgICAgICAobGluZSAgIDYpCiAgLSB0ZXgt cHJpbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVggUHJpbnQuICAgICAgICAgICAo bGluZSAgMzkpCiAgLSB0ZXgtcmVjZW50ZXItb3V0cHV0LWJ1ZmZlcjogICAgICAgICAgICBUZVgg UHJpbnQuICAgICAgICAgICAobGluZSAgNzgpCiAgLSB0ZXgtcmVnaW9uOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUZVggUHJpbnQuICAgICAgICAgICAobGluZSAgODgpCiAgLSB0ZXgtdGVy bWluYXRlLXBhcmFncmFwaDogICAgICAgICAgICAgICBUZVggRWRpdGluZy4gICAgICAgICAobGlu ZSAgNTEpCiAgLSB0ZXgtdmFsaWRhdGUtcmVnaW9uOiAgICAgICAgICAgICAgICAgICBUZVggRWRp dGluZy4gICAgICAgICAobGluZSAgNTEpCiAgLSB0ZXgtdmlldzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUZVggUHJpbnQuICAgICAgICAgICAobGluZSAgMzkpCiAgLSB0ZXh0LW1vZGU6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0IE1vZGUuICAgICAgICAgICAobGluZSAg IDYpCiAgLSB0ZXh0LXNjYWxlLWFkanVzdDogICAgICAgICAgICAgICAgICAgICBUZXh0IFNjYWxl LiAgICAgICAgICAobGluZSAgIDYpCiAgLSB0ZXh0LXNjYWxlLWRlY3JlYXNlOiAgICAgICAgICAg ICAgICAgICBUZXh0IFNjYWxlLiAgICAgICAgICAobGluZSAgMTkpCiAgLSB0ZXh0LXNjYWxlLWlu Y3JlYXNlOiAgICAgICAgICAgICAgICAgICBUZXh0IFNjYWxlLiAgICAgICAgICAobGluZSAgMTkp CiAgLSB0ZXh0LXNjYWxlLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICBUZXh0IFNjYWxlLiAg ICAgICAgICAobGluZSAgMjgpCiAgLSB0ZXh0LXNjYWxlLXNldDogICAgICAgICAgICAgICAgICAg ICAgICBUZXh0IFNjYWxlLiAgICAgICAgICAobGluZSAgMjQpCiAgLSB0aHVtYnMtbW9kZTogICAg ICAgICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgNjApCiAg LSB0aW1lLXN0YW1wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lIFN0YW1wcy4gICAg ICAgICAobGluZSAgMTcpCiAgLSB0aW1lY2xvY2stY2hhbmdlOiAgICAgICAgICAgICAgICAgICAg ICBUaW1lIEludGVydmFscy4gICAgICAobGluZSAgMTEpCiAgLSB0aW1lY2xvY2staW46ICAgICAg ICAgICAgICAgICAgICAgICAgICBUaW1lIEludGVydmFscy4gICAgICAobGluZSAgMTEpCiAgLSB0 aW1lY2xvY2stbW9kZWxpbmUtZGlzcGxheTogICAgICAgICAgICBUaW1lIEludGVydmFscy4gICAg ICAobGluZSAgMjIpCiAgLSB0aW1lY2xvY2stb3V0OiAgICAgICAgICAgICAgICAgICAgICAgICBU aW1lIEludGVydmFscy4gICAgICAobGluZSAgMTEpCiAgLSB0aW1lY2xvY2stcmVyZWFkLWxvZzog ICAgICAgICAgICAgICAgICBUaW1lIEludGVydmFscy4gICAgICAobGluZSAgMzQpCiAgLSB0aW1l Y2xvY2std2hlbi10by1sZWF2ZTogICAgICAgICAgICAgICBUaW1lIEludGVydmFscy4gICAgICAo bGluZSAgMTEpCiAgLSB0aW1lY2xvY2std29ya2RheS1yZW1haW5pbmc6ICAgICAgICAgICBUaW1l IEludGVydmFscy4gICAgICAobGluZSAgMTEpCiAgLSB0bW0tbWVudWJhcjogICAgICAgICAgICAg ICAgICAgICAgICAgICBNZW51IEJhci4gICAgICAgICAgICAobGluZSAgMzIpCiAgLSB0b2dnbGUt ZGVidWctb24tZXJyb3I6ICAgICAgICAgICAgICAgICBDaGVja2xpc3QuICAgICAgICAgICAobGlu ZSAxODkpCiAgLSB0b2dnbGUtZnJhbWUtZnVsbHNjcmVlbjogICAgICAgICAgICAgICBGcmFtZSBD b21tYW5kcy4gICAgICAobGluZSAgMjgpCiAgLSB0b2dnbGUtZnJhbWUtbWF4aW1pemVkOiAgICAg ICAgICAgICAgICBGcmFtZSBDb21tYW5kcy4gICAgICAobGluZSAgMjQpCiAgLSB0b2dnbGUtZ2Ri LWFsbC1yZWdpc3RlcnM6ICAgICAgICAgICAgICBPdGhlciBHREIgQnVmZmVycy4gICAobGluZSAg MTgpCiAgLSB0b2dnbGUtaW5wdXQtbWV0aG9kOiAgICAgICAgICAgICAgICAgICBTZWxlY3QgSW5w dXQgTWV0aG9kLiAobGluZSAgMzApCiAgLSB0b2dnbGUtc2Nyb2xsLWJhcjogICAgICAgICAgICAg ICAgICAgICBTY3JvbGwgQmFycy4gICAgICAgICAobGluZSAgMjEpCiAgLSB0b2dnbGUtdHJ1bmNh dGUtbGluZXM6ICAgICAgICAgICAgICAgICBMaW5lIFRydW5jYXRpb24uICAgICAobGluZSAgMTQp CiAgLSB0b29sLWJhci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBUb29sIEJhcnMuICAg ICAgICAgICAobGluZSAgMTQpCiAgLSB0b29sdGlwLW1vZGU6ICAgICAgICAgICAgICAgICAgICAg ICAgICBUb29sdGlwcy4gICAgICAgICAgICAobGluZSAgMTIpCiAgLSB0b3AtbGV2ZWw6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRdWl0dGluZy4gICAgICAgICAgICAobGluZSAgODQpCiAg LSB0cmFuc2llbnQtbWFyay1tb2RlOiAgICAgICAgICAgICAgICAgICBEaXNhYmxlZCBUcmFuc2ll bnQgTWFyay4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSB0cmFuc3Bvc2UtY2hhcnM6ICAgICAgICAgICAg ICAgICAgICAgICBUcmFuc3Bvc2UuICAgICAgICAgICAobGluZSAgMTUpCiAgLSB0cmFuc3Bvc2Ut bGluZXM6ICAgICAgICAgICAgICAgICAgICAgICBUcmFuc3Bvc2UuICAgICAgICAgICAobGluZSAg MjkpCiAgLSB0cmFuc3Bvc2Utc2V4cHM6ICAgICAgICAgICAgICAgICAgICAgICBFeHByZXNzaW9u cy4gICAgICAgICAobGluZSAgNDcpCiAgLSB0cmFuc3Bvc2Utd29yZHM6ICAgICAgICAgICAgICAg ICAgICAgICBUcmFuc3Bvc2UuICAgICAgICAgICAobGluZSAgMjkpCiAgLSB0dHktc3VwcHJlc3Mt Ym9sZC1pbnZlcnNlLWRlZmF1bHQtY29sb3JzOiBEaXNwbGF5IEN1c3RvbS4gICAobGluZSAxMTcp CiAgLSB1bmNvbW1lbnQtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICBDb21tZW50IENvbW1h bmRzLiAgICAobGluZSAgODEpCiAgLSB1bmRpZ2VzdGlmeS1ybWFpbC1tZXNzYWdlOiAgICAgICAg ICAgICBSbWFpbCBEaWdlc3QuICAgICAgICAobGluZSAgMTUpCiAgLSB1bmRvOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBVbmRvLiAgICAgICAgICAgICAgICAobGluZSAgMjEpCiAg LSB1bmRvLW9ubHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmRvLiAgICAgICAgICAg ICAgICAobGluZSAgMjgpCiAgLSB1bmV4cGFuZC1hYmJyZXY6ICAgICAgICAgICAgICAgICAgICAg ICBFeHBhbmRpbmcgQWJicmV2cy4gICAobGluZSAgMzApCiAgLSB1bmZvcndhcmQtcm1haWwtbWVz c2FnZTogICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAgICAgICAobGluZSAgNzcpCiAgLSB1 bmhpZ2hsaWdodC1yZWdleHA6ICAgICAgICAgICAgICAgICAgICBIaWdobGlnaHQgSW50ZXJhY3Rp dmVseS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNDcpCiAgLSB1bml2ZXJzYWwtYXJndW1lbnQ6ICAgICAgICAgICAg ICAgICAgICBBcmd1bWVudHMuICAgICAgICAgICAobGluZSAgNDEpCiAgLSB1bml2ZXJzYWwtY29k aW5nLXN5c3RlbS1hcmd1bWVudDogICAgICBUZXh0IENvZGluZy4gICAgICAgICAobGluZSAgNDMp CiAgLSB1bm1vcnNlLXJlZ2lvbjogICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAg ICAgICAgICAobGluZSAgNDUpCiAgLSB1bnRhYmlmeTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBKdXN0IFNwYWNlcy4gICAgICAgICAobGluZSAgMjYpCiAgLSB1cC1saXN0OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUZVggRWRpdGluZy4gICAgICAgICAobGluZSAgNDMpCiAg LSB1cGNhc2UtcmVnaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICBDYXNlLiAgICAgICAgICAg ICAgICAobGluZSAgNDEpCiAgLSB1cGNhc2Utd29yZDogICAgICAgICAgICAgICAgICAgICAgICAg ICBDYXNlLiAgICAgICAgICAgICAgICAobGluZSAgMjApCiAgLSB1c2UtaGFyZC1uZXdsaW5lczog ICAgICAgICAgICAgICAgICAgICBIYXJkIGFuZCBTb2Z0IE5ld2xpbmVzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAg NikKICAtIHZjLWFubm90YXRlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZCBSZXZpc2lv bnMuICAgICAgIChsaW5lICA3OCkKICAtIHZjLWNyZWF0ZS10YWc6ICAgICAgICAgICAgICAgICAg ICAgICAgIFJldmlzaW9uIFRhZ3MuICAgICAgIChsaW5lICAxNykKICAtIHZjLWRlbGV0ZS1maWxl OiAgICAgICAgICAgICAgICAgICAgICAgIFZDIERlbGV0ZS9SZW5hbWUuICAgIChsaW5lICAxNSkK ICAtIHZjLWRpZmY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9sZCBSZXZpc2lvbnMu ICAgICAgIChsaW5lICAyOCkKICAtIHZjLWRpcjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZDIERpcmVjdG9yeSBNb2RlLiAgIChsaW5lICAxMykKICAtIHZjLWRpci1tYXJrOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZDIERpcmVjdG9yeSBDb21tYW5kcy4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg NjUpCiAgLSB2Yy1kaXItbWFyay1hbGwtZmlsZXM6ICAgICAgICAgICAgICAgICBWQyBEaXJlY3Rv cnkgQ29tbWFuZHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgIDY1KQogIC0gdmMtZWRpZmY6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT2xkIFJldmlzaW9ucy4gICAgICAgKGxpbmUgIDUzKQogIC0gdmMtaWdu b3JlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkMgSWdub3JlLiAgICAgICAgICAgKGxp bmUgICA5KQogIC0gdmMtaW5zZXJ0LWhlYWRlcnM6ICAgICAgICAgICAgICAgICAgICAgVmVyc2lv biBIZWFkZXJzLiAgICAgKGxpbmUgIDIwKQogIC0gdmMtbmV4dC1hY3Rpb246ICAgICAgICAgICAg ICAgICAgICAgICAgQmFzaWMgVkMgRWRpdGluZy4gICAgKGxpbmUgIDI1KQogIC0gdmMtcHJpbnQt bG9nOiAgICAgICAgICAgICAgICAgICAgICAgICAgVkMgQ2hhbmdlIExvZy4gICAgICAgKGxpbmUg IDIyKQogIC0gdmMtcHJpbnQtcm9vdC1sb2c6ICAgICAgICAgICAgICAgICAgICAgVkMgQ2hhbmdl IExvZy4gICAgICAgKGxpbmUgIDM1KQogIC0gdmMtcHVsbDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVsbGluZyAvIFB1c2hpbmcuICAgKGxpbmUgIDM4KQogIC0gdmMtcHVzaDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVsbGluZyAvIFB1c2hpbmcuICAgKGxpbmUgIDE4 KQogIC0gdmMtcmVmcmVzaC1zdGF0ZTogICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiBDb250 cm9sLiAgICAgKGxpbmUgIDE5KQogIC0gdmMtcmVnaW9uLWhpc3Rvcnk6ICAgICAgICAgICAgICAg ICAgICAgVkMgQ2hhbmdlIExvZy4gICAgICAgKGxpbmUgMTEzKQogIC0gdmMtcmVnaXN0ZXI6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJpbmcuICAgICAgICAgKGxpbmUgICA5KQog IC0gdmMtcmVuYW1lLWZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgVkMgRGVsZXRlL1JlbmFt ZS4gICAgKGxpbmUgIDIyKQogIC0gdmMtcmV0cmlldmUtdGFnOiAgICAgICAgICAgICAgICAgICAg ICAgUmV2aXNpb24gVGFncy4gICAgICAgKGxpbmUgIDIxKQogIC0gdmMtcmV2ZXJ0OiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVkMgVW5kby4gICAgICAgICAgICAgKGxpbmUgIDEwKQogIC0g dmMtcmV2aXNpb24tb3RoZXItd2luZG93OiAgICAgICAgICAgICAgT2xkIFJldmlzaW9ucy4gICAg ICAgKGxpbmUgIDczKQogIC0gdmMtcm9vdC1kaWZmOiAgICAgICAgICAgICAgICAgICAgICAgICAg T2xkIFJldmlzaW9ucy4gICAgICAgKGxpbmUgIDU2KQogIC0gdmMtc3RhdGUtcmVmcmVzaDogICAg ICAgICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sLiAgICAgKGxpbmUgIDE5KQogIC0gdmMt dXBkYXRlLWNoYW5nZS1sb2c6ICAgICAgICAgICAgICAgICAgQ2hhbmdlIExvZ3MgYW5kIFZDLiAg KGxpbmUgIDE4KQogIC0gdmlldy1idWZmZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgVmll dyBNb2RlLiAgICAgICAgICAgKGxpbmUgIDE4KQogIC0gdmlldy1lY2hvLWFyZWEtbWVzc2FnZXM6 ICAgICAgICAgICAgICAgTWlzYyBIZWxwLiAgICAgICAgICAgKGxpbmUgIDMyKQogIC0gdmlldy1l bWFjcy1kZWJ1Z2dpbmc6ICAgICAgICAgICAgICAgICAgSGVscCBGaWxlcy4gICAgICAgICAgKGxp bmUgIDEyKQogIC0gdmlldy1lbWFjcy1GQVE6ICAgICAgICAgICAgICAgICAgICAgICAgSGVscCBG aWxlcy4gICAgICAgICAgKGxpbmUgIDEyKQogIC0gdmlldy1lbWFjcy1uZXdzOiAgICAgICAgICAg ICAgICAgICAgICAgSGVscCBGaWxlcy4gICAgICAgICAgKGxpbmUgIDEyKQogIC0gdmlldy1lbWFj cy1wcm9ibGVtczogICAgICAgICAgICAgICAgICAgSGVscCBGaWxlcy4gICAgICAgICAgKGxpbmUg IDEyKQogIC0gdmlldy1lbWFjcy10b2RvOiAgICAgICAgICAgICAgICAgICAgICAgSGVscCBGaWxl cy4gICAgICAgICAgKGxpbmUgIDEyKQogIC0gVmlldy1leGl0OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVmlldyBNb2RlLiAgICAgICAgICAgKGxpbmUgIDEzKQogIC0gdmlldy1leHRlcm5h bC1wYWNrYWdlczogICAgICAgICAgICAgICAgSGVscCBGaWxlcy4gICAgICAgICAgKGxpbmUgIDEy KQogIC0gdmlldy1maWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBNb2RlLiAg ICAgICAgICAgKGxpbmUgIDE4KQogIC0gdmlldy1oZWxsby1maWxlOiAgICAgICAgICAgICAgICAg ICAgICAgSW50ZXJuYXRpb25hbCBDaGFycy4gKGxpbmUgIDE4KQogIC0gdmlldy1sb3NzYWdlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBIZWxwLiAgICAgICAgICAgKGxpbmUgIDI2KQog IC0gdmlldy1vcmRlci1tYW51YWxzOiAgICAgICAgICAgICAgICAgICAgSGVscCBGaWxlcy4gICAg ICAgICAgKGxpbmUgIDEyKQogIC0gVmlldy1xdWl0OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVmlldyBNb2RlLiAgICAgICAgICAgKGxpbmUgIDEzKQogIC0gdmlldy1yZWdpc3RlcjogICAg ICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJzLiAgICAgICAgICAgKGxpbmUgIDE5KQogIC0g dmlzaXQtdGFncy10YWJsZTogICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IFRhZ3MgVGFibGUu ICAgKGxpbmUgICA2KQogIC0gdmlzdWFsLWxpbmUtbW9kZTogICAgICAgICAgICAgICAgICAgICAg VmlzdWFsIExpbmUgTW9kZS4gICAgKGxpbmUgIDE0KQogIC0gdzMyLXJlZ2lzdGVyLWhvdC1rZXk6 ICAgICAgICAgICAgICAgICAgV2luZG93cyBLZXlib2FyZC4gICAgKGxpbmUgIDIzKQogIC0gdzMy LXNoZWxsLWV4ZWN1dGU6ICAgICAgICAgICAgICAgICAgICAgV2luZG93cyBQcm9jZXNzZXMuICAg KGxpbmUgIDY1KQogIC0gdzMyLXVucmVnaXN0ZXItaG90LWtleTogICAgICAgICAgICAgICAgV2lu ZG93cyBLZXlib2FyZC4gICAgKGxpbmUgIDIzKQogIC0gd2RpcmVkLWNoYW5nZS10by13ZGlyZWQt bW9kZTogICAgICAgICAgV2RpcmVkLiAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gd2RpcmVk LWZpbmlzaC1lZGl0OiAgICAgICAgICAgICAgICAgICAgV2RpcmVkLiAgICAgICAgICAgICAgKGxp bmUgIDEyKQogIC0gd2hhdC1jdXJzb3ItcG9zaXRpb246ICAgICAgICAgICAgICAgICAgUG9zaXRp b24gSW5mby4gICAgICAgKGxpbmUgIDU0KQogIC0gd2hhdC1jdXJzb3ItcG9zaXRpb24sIGFuZCBp bnRlcm5hdGlvbmFsIGNoYXJhY3RlcnM6IEludGVybmF0aW9uYWwgQ2hhcnMuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDM4KQogIC0gd2hhdC1saW5lOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb24g SW5mby4gICAgICAgKGxpbmUgIDM3KQogIC0gd2hhdC1wYWdlOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGFnZXMuICAgICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gd2hlcmUtaXM6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5IEhlbHAuICAgICAgICAgICAgKGxpbmUgIDI1 KQogIC0gd2hpY2gtZnVuY3Rpb24tbW9kZTogICAgICAgICAgICAgICAgICAgV2hpY2ggRnVuY3Rp b24uICAgICAgKGxpbmUgIDEwKQogIC0gd2hpdGVzcGFjZS1tb2RlOiAgICAgICAgICAgICAgICAg ICAgICAgVXNlbGVzcyBXaGl0ZXNwYWNlLiAgKGxpbmUgIDM3KQogIC0gd2hpdGVzcGFjZS10b2dn bGUtb3B0aW9uczogICAgICAgICAgICAgVXNlbGVzcyBXaGl0ZXNwYWNlLiAgKGxpbmUgIDM3KQog IC0gd2lkZW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFycm93aW5nLiAgICAg ICAgICAgKGxpbmUgIDQzKQogIC0gd2lkZ2V0LWJhY2t3YXJkOiAgICAgICAgICAgICAgICAgICAg ICAgQ3VzdG9taXphdGlvbiBHcm91cHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ3KQogIC0gd2lkZ2V0LWNvbXBs ZXRlOiAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdpbmcgYSBWYXJpYWJsZS4gKGxpbmUgIDUz KQogIC0gd2lkZ2V0LWZvcndhcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9taXphdGlv biBHcm91cHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDQ3KQogIC0gd2luZG1vdmUtZGVmYXVsdC1rZXliaW5kaW5n czogICAgICAgICAgV2luZG93IENvbnZlbmllbmNlLiAgKGxpbmUgIDE4KQogIC0gd2luZG1vdmUt cmlnaHQ6ICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93IENvbnZlbmllbmNlLiAgKGxpbmUg IDE4KQogIC0gd2luZG93LWNvbmZpZ3VyYXRpb24tdG8tcmVnaXN0ZXI6ICAgICAgQ29uZmlndXJh dGlvbiBSZWdpc3RlcnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gd2luZG93LWRpdmlkZXItbW9kZTog ICAgICAgICAgICAgICAgICAgV2luZG93IERpdmlkZXJzLiAgICAgKGxpbmUgIDEwKQogIC0gd2lu bmVyLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93IENvbnZlbmllbmNlLiAg KGxpbmUgICA2KQogIC0gd29tYW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFu IFBhZ2UuICAgICAgICAgICAgKGxpbmUgIDQwKQogIC0gd29yZC1zZWFyY2gtYmFja3dhcmQ6ICAg ICAgICAgICAgICAgICAgV29yZCBTZWFyY2guICAgICAgICAgKGxpbmUgIDM1KQogIC0gd29yZC1z ZWFyY2gtZm9yd2FyZDogICAgICAgICAgICAgICAgICAgV29yZCBTZWFyY2guICAgICAgICAgKGxp bmUgIDM1KQogIC0gd3JpdGUtYWJicmV2LWZpbGU6ICAgICAgICAgICAgICAgICAgICAgU2F2aW5n IEFiYnJldnMuICAgICAgKGxpbmUgIDIxKQogIC0gd3JpdGUtZmlsZTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2F2ZSBDb21tYW5kcy4gICAgICAgKGxpbmUgIDg5KQogIC0gd3JpdGUtcmVn aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBGaWxlIE9wcy4gICAgICAgKGxpbmUg IDQyKQogIC0geGRiOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhcnRpbmcg R1VELiAgICAgICAgKGxpbmUgIDM5KQogIC0geHJlZi1ldGFncy1tb2RlOiAgICAgICAgICAgICAg ICAgICAgICAgTG9va2luZyBVcCBJZGVudGlmaWVycy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjcpCiAgLSB4cmVm LWZpbmQtYXByb3BvczogICAgICAgICAgICAgICAgICAgICBMb29raW5nIFVwIElkZW50aWZpZXJz LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA1MCkKICAtIHhyZWYtZmluZC1kZWZpbml0aW9uczogICAgICAgICAgICAg ICAgIExvb2tpbmcgVXAgSWRlbnRpZmllcnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI2KQogIC0geHJlZi1maW5k LWRlZmluaXRpb25zLW90aGVyLWZyYW1lOiAgICAgTG9va2luZyBVcCBJZGVudGlmaWVycy4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNDQpCiAgLSB4cmVmLWZpbmQtZGVmaW5pdGlvbnMtb3RoZXItd2luZG93OiAgICBM b29raW5nIFVwIElkZW50aWZpZXJzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0NCkKICAtIHhyZWYtZmluZC1yZWZl cmVuY2VzOiAgICAgICAgICAgICAgICAgIElkZW50aWZpZXIgU2VhcmNoLiAgIChsaW5lICAyOCkK ICAtIHhyZWYtbmV4dC1saW5lOiAgICAgICAgICAgICAgICAgICAgICAgIFhyZWYgQ29tbWFuZHMu ICAgICAgIChsaW5lICAxNSkKICAtIHhyZWYtcG9wLW1hcmtlci1zdGFjazogICAgICAgICAgICAg ICAgIExvb2tpbmcgVXAgSWRlbnRpZmllcnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDYwKQogIC0geHJlZi1wcmV2 LWxpbmU6ICAgICAgICAgICAgICAgICAgICAgICAgWHJlZiBDb21tYW5kcy4gICAgICAgKGxpbmUg IDIwKQogIC0geHJlZi1xdWVyeS1yZXBsYWNlLWluLXJlc3VsdHM6ICAgICAgICAgSWRlbnRpZmll ciBTZWFyY2guICAgKGxpbmUgIDQwKQogIC0geHJlZi1xdWl0OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWHJlZiBDb21tYW5kcy4gICAgICAgKGxpbmUgIDM2KQogIC0geHJlZi1xdWl0LWFu ZC1nb3RvLXhyZWY6ICAgICAgICAgICAgICAgWHJlZiBDb21tYW5kcy4gICAgICAgKGxpbmUgIDI4 KQogIC0geHJlZi1zaG93LWxvY2F0aW9uLWF0LXBvaW50OiAgICAgICAgICAgWHJlZiBDb21tYW5k cy4gICAgICAgKGxpbmUgIDI0KQogIC0geHdpZGdldC13ZWJraXQtYnJvd3NlLXVybDogICAgICAg ICAgICAgRW1iZWRkZWQgV2ViS2l0IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0geHdpZGdl dC13ZWJraXQtbW9kZTogICAgICAgICAgICAgICAgICAgRW1iZWRkZWQgV2ViS2l0IFdpZGdldHMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgICA2KQogIC0geWFuazogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWWFua2luZy4gICAgICAgICAgICAgKGxpbmUgIDE4KQogIC0geWFuay1wb3A6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRWFybGllciBLaWxscy4gICAgICAgKGxpbmUgIDExKQogIC0g eWFuay1yZWN0YW5nbGU6ICAgICAgICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAg ICAgKGxpbmUgIDgwKQogIC0gemFwLXRvLWNoYXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAg T3RoZXIgS2lsbCBDb21tYW5kcy4gKGxpbmUgIDM3KQogIC0gem9uZTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAgKGxpbmUgIDU2KQogIC0genJn cmVwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3JlcCBTZWFyY2hpbmcuICAgICAg KGxpbmUgIDcwKQoKClZhcmlhYmxlIEluZGV4CgoACFtpbmRleAAIXQorIE1lbnU6CgogIC0gYWJi cmV2LWFsbC1jYXBzOiAgICAgICAgICAgICAgICAgICAgICAgRXhwYW5kaW5nIEFiYnJldnMuICAg KGxpbmUgIDE0KQogIC0gYWJicmV2LWZpbGUtbmFtZTogICAgICAgICAgICAgICAgICAgICAgU2F2 aW5nIEFiYnJldnMuICAgICAgKGxpbmUgIDI3KQogIC0gYWRhcHRpdmUtZmlsbC1maXJzdC1saW5l LXJlZ2V4cDogICAgICAgQWRhcHRpdmUgRmlsbC4gICAgICAgKGxpbmUgIDMxKQogIC0gYWRhcHRp dmUtZmlsbC1mdW5jdGlvbjogICAgICAgICAgICAgICAgQWRhcHRpdmUgRmlsbC4gICAgICAgKGxp bmUgIDUyKQogIC0gYWRhcHRpdmUtZmlsbC1tb2RlOiAgICAgICAgICAgICAgICAgICAgQWRhcHRp dmUgRmlsbC4gICAgICAgKGxpbmUgIDQ2KQogIC0gYWRhcHRpdmUtZmlsbC1yZWdleHA6ICAgICAg ICAgICAgICAgICAgQWRhcHRpdmUgRmlsbC4gICAgICAgKGxpbmUgIDQ2KQogIC0gYWRkLWxvZy1h bHdheXMtc3RhcnQtbmV3LXJlY29yZDogICAgICAgQ2hhbmdlIExvZyBDb21tYW5kcy4gKGxpbmUg IDMwKQogIC0gYWRkLWxvZy1rZWVwLWNoYW5nZXMtdG9nZXRoZXI6ICAgICAgICAgQ2hhbmdlIExv ZyBDb21tYW5kcy4gKGxpbmUgIDIyKQogIC0gYW5nZS1mdHAtZGVmYXVsdC11c2VyOiAgICAgICAg ICAgICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAgKGxpbmUgIDM1KQogIC0gYW5nZS1mdHAtZ2F0 ZXdheS1ob3N0OiAgICAgICAgICAgICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAgKGxpbmUgIDU3 KQogIC0gYW5nZS1mdHAtZ2VuZXJhdGUtYW5vbnltb3VzLXBhc3N3b3JkOiAgUmVtb3RlIEZpbGVz LiAgICAgICAgKGxpbmUgIDQ5KQogIC0gYW5nZS1mdHAtbWFrZS1iYWNrdXAtZmlsZXM6ICAgICAg ICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAgKGxpbmUgIDQxKQogIC0gYW5nZS1mdHAtc21hcnQt Z2F0ZXdheTogICAgICAgICAgICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAgKGxpbmUgIDU3KQog IC0gYXBwdC1hdWRpYmxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAg ICAgICAgKGxpbmUgICA2KQogIC0gYXBwdC1kZWxldGUtd2luZG93LWZ1bmN0aW9uOiAgICAgICAg ICAgQXBwb2ludG1lbnRzLiAgICAgICAgKGxpbmUgIDE1KQogIC0gYXBwdC1kaXNwLXdpbmRvdy1m dW5jdGlvbjogICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAgICAgICAgKGxpbmUgIDE1KQogIC0g YXBwdC1kaXNwbGF5LWRpYXJ5OiAgICAgICAgICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAgICAg ICAgKGxpbmUgIDQ4KQogIC0gYXBwdC1kaXNwbGF5LWR1cmF0aW9uOiAgICAgICAgICAgICAgICAg QXBwb2ludG1lbnRzLiAgICAgICAgKGxpbmUgIDE1KQogIC0gYXBwdC1kaXNwbGF5LWZvcm1hdDog ICAgICAgICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAgICAgICAgKGxpbmUgICA2KQogIC0gYXBw dC1kaXNwbGF5LW1vZGUtbGluZTogICAgICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAgICAgICAg KGxpbmUgICA2KQogIC0gYXBwdC1tZXNzYWdlLXdhcm5pbmctdGltZTogICAgICAgICAgICAgQXBw b2ludG1lbnRzLiAgICAgICAgKGxpbmUgIDM0KQogIC0gYXBwdC13YXJuaW5nLXRpbWUtcmVnZXhw OiAgICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAgICAgICAgKGxpbmUgIDM0KQogIC0gYXByb3Bv cy1kby1hbGw6ICAgICAgICAgICAgICAgICAgICAgICAgQXByb3Bvcy4gICAgICAgICAgICAgKGxp bmUgIDgyKQogIC0gYXByb3Bvcy1kb2N1bWVudGF0aW9uLXNvcnQtYnktc2NvcmVzOiAgQXByb3Bv cy4gICAgICAgICAgICAgKGxpbmUgIDg4KQogIC0gYXByb3Bvcy1zb3J0LWJ5LXNjb3JlczogICAg ICAgICAgICAgICAgQXByb3Bvcy4gICAgICAgICAgICAgKGxpbmUgIDg4KQogIC0gYXN5bmMtc2hl bGwtY29tbWFuZC1idWZmZXI6ICAgICAgICAgICAgU2luZ2xlIFNoZWxsLiAgICAgICAgKGxpbmUg IDQ0KQogIC0gYXN5bmMtc2hlbGwtY29tbWFuZC1kaXNwbGF5LWJ1ZmZlcjogICAgU2luZ2xlIFNo ZWxsLiAgICAgICAgKGxpbmUgIDUxKQogIC0gYXV0by1jb2RpbmctYWxpc3Q6ICAgICAgICAgICAg ICAgICAgICAgUmVjb2duaXplIENvZGluZy4gICAgKGxpbmUgIDg2KQogIC0gYXV0by1jb2Rpbmct ZnVuY3Rpb25zOiAgICAgICAgICAgICAgICAgUmVjb2duaXplIENvZGluZy4gICAgKGxpbmUgIDk1 KQogIC0gYXV0by1jb2RpbmctcmVnZXhwLWFsaXN0OiAgICAgICAgICAgICAgUmVjb2duaXplIENv ZGluZy4gICAgKGxpbmUgIDg2KQogIC0gYXV0by1jb21wcmVzc2lvbi1tb2RlOiAgICAgICAgICAg ICAgICAgQ29tcHJlc3NlZCBGaWxlcy4gICAgKGxpbmUgIDE3KQogIC0gYXV0by1oc2Nyb2xsLW1v ZGU6ICAgICAgICAgICAgICAgICAgICAgSG9yaXpvbnRhbCBTY3JvbGxpbmcuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICA2KQogIC0gYXV0by1tb2RlLWFsaXN0OiAgICAgICAgICAgICAgICAgICAgICAgQ2hvb3Npbmcg TW9kZXMuICAgICAgKGxpbmUgICA2KQogIC0gYXV0by1tb2RlLWNhc2UtZm9sZDogICAgICAgICAg ICAgICAgICAgQ2hvb3NpbmcgTW9kZXMuICAgICAgKGxpbmUgIDk5KQogIC0gYXV0by1yZXZlcnQt Y2hlY2stdmMtaW5mbzogICAgICAgICAgICAgVkMgTW9kZSBMaW5lLiAgICAgICAgKGxpbmUgIDMw KQogIC0gYXV0by1yZXZlcnQtaW50ZXJ2YWw6ICAgICAgICAgICAgICAgICAgUmV2ZXJ0aW5nLiAg ICAgICAgICAgKGxpbmUgIDM3KQogIC0gYXV0by1yZXZlcnQtcmVtb3RlLWZpbGVzOiAgICAgICAg ICAgICAgUmV2ZXJ0aW5nLiAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gYXV0by1yZXZlcnQtdXNl LW5vdGlmeTogICAgICAgICAgICAgICAgUmV2ZXJ0aW5nLiAgICAgICAgICAgKGxpbmUgIDQ2KQog IC0gYXV0by1yZXZlcnQtdmVyYm9zZTogICAgICAgICAgICAgICAgICAgUmV2ZXJ0aW5nLiAgICAg ICAgICAgKGxpbmUgIDM3KQogIC0gYXV0by1zYXZlLWRlZmF1bHQ6ICAgICAgICAgICAgICAgICAg ICAgQXV0byBTYXZlIENvbnRyb2wuICAgKGxpbmUgICA2KQogIC0gYXV0by1zYXZlLWZpbGUtbmFt ZS10cmFuc2Zvcm1zOiAgICAgICAgQXV0byBTYXZlIEZpbGVzLiAgICAgKGxpbmUgIDI2KQogIC0g YXV0by1zYXZlLWludGVydmFsOiAgICAgICAgICAgICAgICAgICAgQXV0byBTYXZlIENvbnRyb2wu ICAgKGxpbmUgIDEzKQogIC0gYXV0by1zYXZlLWxpc3QtZmlsZS1wcmVmaXg6ICAgICAgICAgICAg UmVjb3Zlci4gICAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gYXV0by1zYXZlLXRpbWVvdXQ6ICAg ICAgICAgICAgICAgICAgICAgQXV0byBTYXZlIENvbnRyb2wuICAgKGxpbmUgIDIwKQogIC0gYXV0 by1zYXZlLXZpc2l0ZWQtaW50ZXJ2YWw6ICAgICAgICAgICAgQXV0byBTYXZlIENvbnRyb2wuICAg KGxpbmUgIDMyKQogIC0gYXV0by1zYXZlLXZpc2l0ZWQtbW9kZTogICAgICAgICAgICAgICAgQXV0 byBTYXZlIEZpbGVzLiAgICAgKGxpbmUgIDQwKQogIC0gYmFja3VwLWJ5LWNvcHlpbmc6ICAgICAg ICAgICAgICAgICAgICAgQmFja3VwIENvcHlpbmcuICAgICAgKGxpbmUgIDIwKQogIC0gYmFja3Vw LWJ5LWNvcHlpbmctd2hlbi1saW5rZWQ6ICAgICAgICAgQmFja3VwIENvcHlpbmcuICAgICAgKGxp bmUgIDIwKQogIC0gYmFja3VwLWJ5LWNvcHlpbmctd2hlbi1taXNtYXRjaDogICAgICAgQmFja3Vw IENvcHlpbmcuICAgICAgKGxpbmUgIDIwKQogIC0gYmFja3VwLWJ5LWNvcHlpbmctd2hlbi1wcml2 aWxlZ2VkLW1pc21hdGNoOiBCYWNrdXAgQ29weWluZy4gKGxpbmUgIDIwKQogIC0gYmFja3VwLWRp cmVjdG9yeS1hbGlzdDogICAgICAgICAgICAgICAgQmFja3VwLiAgICAgICAgICAgICAgKGxpbmUg IDQ1KQogIC0gYmFja3VwLWVuYWJsZS1wcmVkaWNhdGU6ICAgICAgICAgICAgICAgQmFja3VwLiAg ICAgICAgICAgICAgKGxpbmUgIDMxKQogIC0gYmF0dGVyeS1tb2RlLWxpbmUtZm9ybWF0OiAgICAg ICAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAgKGxpbmUgIDc4KQogIC0gYmRmLWRpcmVjdG9y eS1saXN0OiAgICAgICAgICAgICAgICAgICAgUG9zdFNjcmlwdCBWYXJpYWJsZXMuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgIDY2KQogIC0gYmlkaS1kaXNwbGF5LXJlb3JkZXJpbmc6ICAgICAgICAgICAgICAgQmlkaXJl Y3Rpb25hbCBFZGl0aW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzMikKICAtIGJpZGktcGFyYWdyYXBoLWRpcmVj dGlvbjogICAgICAgICAgICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTEp CiAgLSBiaWRpLXBhcmFncmFwaC1zZXBhcmF0ZS1yZTogICAgICAgICAgICBCaWRpcmVjdGlvbmFs IEVkaXRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gYmlkaS1wYXJhZ3JhcGgtc3RhcnQtcmU6ICAg ICAgICAgICAgICAgQmlkaXJlY3Rpb25hbCBFZGl0aW5nLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzNykKICAtIGJs aW5rLWN1cnNvci1hbGlzdDogICAgICAgICAgICAgICAgICAgIEN1cnNvciBEaXNwbGF5LiAgICAg IChsaW5lICAyNCkKICAtIGJsaW5rLWN1cnNvci1ibGlua3M6ICAgICAgICAgICAgICAgICAgIEN1 cnNvciBEaXNwbGF5LiAgICAgIChsaW5lICAyNCkKICAtIGJsaW5rLWN1cnNvci1tb2RlOiAgICAg ICAgICAgICAgICAgICAgIEN1cnNvciBEaXNwbGF5LiAgICAgIChsaW5lICAyNCkKICAtIGJsaW5r LW1hdGNoaW5nLWRlbGF5OiAgICAgICAgICAgICAgICAgIE1hdGNoaW5nLiAgICAgICAgICAgIChs aW5lICAxNykKICAtIGJsaW5rLW1hdGNoaW5nLXBhcmVuOiAgICAgICAgICAgICAgICAgIE1hdGNo aW5nLiAgICAgICAgICAgIChsaW5lICAxNykKICAtIGJsaW5rLW1hdGNoaW5nLXBhcmVuLWRpc3Rh bmNlOiAgICAgICAgIE1hdGNoaW5nLiAgICAgICAgICAgIChsaW5lICAxNykKICAtIGJvb2ttYXJr LWRlZmF1bHQtZmlsZTogICAgICAgICAgICAgICAgIEJvb2ttYXJrcy4gICAgICAgICAgIChsaW5l ICA2MikKICAtIGJvb2ttYXJrLXNhdmUtZmxhZzogICAgICAgICAgICAgICAgICAgIEJvb2ttYXJr cy4gICAgICAgICAgIChsaW5lICA1NSkKICAtIGJvb2ttYXJrLXNlYXJjaC1zaXplOiAgICAgICAg ICAgICAgICAgIEJvb2ttYXJrcy4gICAgICAgICAgIChsaW5lICA2NSkKICAtIGJyb3dzZS11cmwt YnJvd3Nlci1mdW5jdGlvbjogICAgICAgICAgIEJyb3dzZS1VUkwuICAgICAgICAgIChsaW5lICAy MCkKICAtIGJyb3dzZS11cmwtbWFpbHRvLWZ1bmN0aW9uOiAgICAgICAgICAgIEJyb3dzZS1VUkwu ICAgICAgICAgIChsaW5lICAyMCkKICAtIGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW06ICAgICAg ICAgICAgIE91dHB1dCBDb2RpbmcuICAgICAgIChsaW5lICAgNikKICAtIGJ1ZmZlci1yZWFkLW9u bHk6ICAgICAgICAgICAgICAgICAgICAgIE1pc2MgQnVmZmVyLiAgICAgICAgIChsaW5lICAxNSkK ICAtIGMtZGVmYXVsdC1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbSBDIEluZGVu dC4gICAgIChsaW5lICAzMykKICAtIGMtaHVuZ3J5LWRlbGV0ZS1rZXk6ICAgICAgICAgICAgICAg ICAgIEh1bmdyeSBEZWxldGUuICAgICAgIChsaW5lICAzNCkKICAtIGMtbW9kZS1ob29rOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIFByb2dyYW0gTW9kZXMuICAgICAgIChsaW5lICA0MCkKICAt IGMtdGFiLWFsd2F5cy1pbmRlbnQ6ICAgICAgICAgICAgICAgICAgIEMgSW5kZW50LiAgICAgICAg ICAgIChsaW5lICAyMSkKICAtIGNhbC1odG1sLWNzcy1kZWZhdWx0OiAgICAgICAgICAgICAgICAg IFdyaXRpbmcgQ2FsZW5kYXIgRmlsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE2KQogIC0gY2FsZW5kYXItYmFo YWktYWxsLWhvbGlkYXlzLWZsYWc6ICAgICAgSG9saWRheSBDdXN0b21pemluZy4gKGxpbmUgIDI0 KQogIC0gY2FsZW5kYXItY2hyaXN0aWFuLWFsbC1ob2xpZGF5cy1mbGFnOiAgSG9saWRheSBDdXN0 b21pemluZy4gKGxpbmUgIDI0KQogIC0gY2FsZW5kYXItZGF0ZS1kaXNwbGF5LWZvcm06ICAgICAg ICAgICAgRGF0ZSBEaXNwbGF5IEZvcm1hdC4gKGxpbmUgICA2KQogIC0gY2FsZW5kYXItZGF0ZS1z dHlsZTogICAgICAgICAgICAgICAgICAgRGF0ZSBGb3JtYXRzLiAgICAgICAgKGxpbmUgIDQzKQog IC0gY2FsZW5kYXItZGF5LWhlYWRlci1hcnJheTogICAgICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9t aXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDE1KQogIC0gY2FsZW5kYXItZGF5bGlnaHQtc2F2aW5ncy1lbmRz OiAgICAgICAgRGF5bGlnaHQgU2F2aW5nLiAgICAgKGxpbmUgIDEzKQogIC0gY2FsZW5kYXItZGF5 bGlnaHQtc2F2aW5ncy1lbmRzLXRpbWU6ICAgRGF5bGlnaHQgU2F2aW5nLiAgICAgKGxpbmUgIDUx KQogIC0gY2FsZW5kYXItZGF5bGlnaHQtc2F2aW5ncy1zdGFydHM6ICAgICAgRGF5bGlnaHQgU2F2 aW5nLiAgICAgKGxpbmUgIDEzKQogIC0gY2FsZW5kYXItZGF5bGlnaHQtdGltZS1vZmZzZXQ6ICAg ICAgICAgRGF5bGlnaHQgU2F2aW5nLiAgICAgKGxpbmUgIDQ3KQogIC0gY2FsZW5kYXItZGF5bGln aHQtdGltZS16b25lLW5hbWU6ICAgICAgU3VucmlzZS9TdW5zZXQuICAgICAgKGxpbmUgIDUwKQog IC0gY2FsZW5kYXItaGVicmV3LWFsbC1ob2xpZGF5cy1mbGFnOiAgICAgSG9saWRheSBDdXN0b21p emluZy4gKGxpbmUgIDI0KQogIC0gY2FsZW5kYXItaG9saWRheS1tYXJrZXI6ICAgICAgICAgICAg ICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIxKQogIC0gY2FsZW5kYXItaG9s aWRheXM6ICAgICAgICAgICAgICAgICAgICAgSG9saWRheSBDdXN0b21pemluZy4gKGxpbmUgICA2 KQogIC0gY2FsZW5kYXItaW5pdGlhbC13aW5kb3ctaG9vazogICAgICAgICAgQ2FsZW5kYXIgQ3Vz dG9taXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gY2FsZW5kYXItaW50ZXJtb250aC10ZXh0OiAg ICAgICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gY2Fs ZW5kYXItaXNsYW1pYy1hbGwtaG9saWRheXMtZmxhZzogICAgSG9saWRheSBDdXN0b21pemluZy4g KGxpbmUgIDI0KQogIC0gY2FsZW5kYXItbGF0aXR1ZGU6ICAgICAgICAgICAgICAgICAgICAgU3Vu cmlzZS9TdW5zZXQuICAgICAgKGxpbmUgIDM4KQogIC0gY2FsZW5kYXItbG9jYXRpb24tbmFtZTog ICAgICAgICAgICAgICAgU3VucmlzZS9TdW5zZXQuICAgICAgKGxpbmUgIDM4KQogIC0gY2FsZW5k YXItbG9uZ2l0dWRlOiAgICAgICAgICAgICAgICAgICAgU3VucmlzZS9TdW5zZXQuICAgICAgKGxp bmUgIDM4KQogIC0gY2FsZW5kYXItbWFyay1kaWFyeS1lbnRyaWVzLWZsYWc6ICAgICAgRGlzcGxh eWluZyB0aGUgRGlhcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQzKQogIC0gY2FsZW5kYXItbWFyay1ob2xpZGF5 cy1mbGFnOiAgICAgICAgICAgSG9saWRheXMuICAgICAgICAgICAgKGxpbmUgIDMzKQogIC0gY2Fs ZW5kYXItbW9udGgtaGVhZGVyOiAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDE1KQogIC0gY2FsZW5kYXItbW92ZS1ob29rOiAgICAgICAgICAgICAgICAg ICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ2KQogIC0gY2FsZW5kYXItcmVt b3ZlLWZyYW1lLWJ5LWRlbGV0aW5nOiAgICAgR2VuZXJhbCBDYWxlbmRhci4gICAgKGxpbmUgIDMz KQogIC0gY2FsZW5kYXItc3RhbmRhcmQtdGltZS16b25lLW5hbWU6ICAgICAgU3VucmlzZS9TdW5z ZXQuICAgICAgKGxpbmUgIDUwKQogIC0gY2FsZW5kYXItdGltZS1kaXNwbGF5LWZvcm06ICAgICAg ICAgICAgVGltZSBEaXNwbGF5IEZvcm1hdC4gKGxpbmUgICA2KQogIC0gY2FsZW5kYXItdGltZS16 b25lOiAgICAgICAgICAgICAgICAgICAgU3VucmlzZS9TdW5zZXQuICAgICAgKGxpbmUgIDUwKQog IC0gY2FsZW5kYXItdG9kYXktaW52aXNpYmxlLWhvb2s6ICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9t aXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDQzKQogIC0gY2FsZW5kYXItdG9kYXktbWFya2VyOiAgICAgICAg ICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIxKQogIC0gY2FsZW5k YXItdG9kYXktdmlzaWJsZS1ob29rOiAgICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDM1KQogIC0gY2FsZW5kYXItdmlldy1kaWFyeS1pbml0aWFsbHktZmxhZzogICAg RGlzcGxheWluZyB0aGUgRGlhcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gY2FsZW5kYXItdmlldy1o b2xpZGF5cy1pbml0aWFsbHktZmxhZzogSG9saWRheXMuICAgICAgICAgICAgKGxpbmUgIDI2KQog IC0gY2FsZW5kYXItd2Vlay1zdGFydC1kYXk6ICAgICAgICAgICAgICAgTW92ZSB0byBCZWdpbm5p bmcgb3IgRW5kLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAyNykKICAtIGNhbGVuZGFyLXdlZWtlbmQtZGF5czogICAg ICAgICAgICAgICAgIE1vdmUgdG8gQmVnaW5uaW5nIG9yIEVuZC4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjcpCiAg LSBjYXNlLWZvbGQtc2VhcmNoOiAgICAgICAgICAgICAgICAgICAgICBMYXggU2VhcmNoLiAgICAg ICAgICAobGluZSAgNTMpCiAgLSBjYXNlLXJlcGxhY2U6ICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXBsYWNlbWVudCBhbmQgTGF4IE1hdGNoZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI2KQogIC0gQ0RQQVRI LCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxp bmUgIDEyKQogIC0gY2hhbmdlLWxvZy12ZXJzaW9uLWluZm8tZW5hYmxlZDogICAgICAgQ2hhbmdl IExvZyBDb21tYW5kcy4gKGxpbmUgIDM0KQogIC0gY2hhbmdlLWxvZy12ZXJzaW9uLW51bWJlci1y ZWdleHAtbGlzdDogQ2hhbmdlIExvZyBDb21tYW5kcy4gKGxpbmUgIDM0KQogIC0gY2hhbmdlLW1h am9yLW1vZGUtd2l0aC1maWxlLW5hbWU6ICAgICAgQ2hvb3NpbmcgTW9kZXMuICAgICAgKGxpbmUg MTIxKQogIC0gY2xvbmUtaW5kaXJlY3QtYnVmZmVyLWhvb2s6ICAgICAgICAgICAgSW5kaXJlY3Qg QnVmZmVycy4gICAgKGxpbmUgIDM2KQogIC0gY29kaW5nOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU3BlY2lmeSBDb2RpbmcuICAgICAgKGxpbmUgIDE0KQogIC0gY29sb24tZG91Ymxl LXNwYWNlOiAgICAgICAgICAgICAgICAgICAgRmlsbCBDb21tYW5kcy4gICAgICAgKGxpbmUgIDYw KQogIC0gY29sdW1uLW51bWJlci1pbmRpY2F0b3ItemVyby1iYXNlZDogICAgT3B0aW9uYWwgTW9k ZSBMaW5lLiAgKGxpbmUgIDMxKQogIC0gY29taW50LWNvbXBsZXRpb24tYWRkc3VmZml4OiAgICAg ICAgICAgU2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDMzKQogIC0gY29taW50LWNvbXBsZXRp b24tYXV0b2xpc3Q6ICAgICAgICAgICAgU2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDMzKQog IC0gY29taW50LWNvbXBsZXRpb24tZmlnbm9yZTogICAgICAgICAgICAgU2hlbGwgT3B0aW9ucy4g ICAgICAgKGxpbmUgIDQ3KQogIC0gY29taW50LWNvbXBsZXRpb24tcmVjZXhhY3Q6ICAgICAgICAg ICAgU2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDMzKQogIC0gY29taW50LWlucHV0LWF1dG9l eHBhbmQ6ICAgICAgICAgICAgICAgSGlzdG9yeSBSZWZlcmVuY2VzLiAgKGxpbmUgIDE3KQogIC0g Y29taW50LWlucHV0LWlnbm9yZWR1cHM6ICAgICAgICAgICAgICAgU2hlbGwgT3B0aW9ucy4gICAg ICAgKGxpbmUgIDI3KQogIC0gY29taW50LW1vdmUtcG9pbnQtZm9yLW91dHB1dDogICAgICAgICAg U2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDE2KQogIC0gY29taW50LXByb21wdC1yZWFkLW9u bHk6ICAgICAgICAgICAgICAgU2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDI0KQogIC0gY29t aW50LXNjcm9sbC1zaG93LW1heGltdW0tb3V0cHV0OiAgICAgU2hlbGwgT3B0aW9ucy4gICAgICAg KGxpbmUgIDEwKQogIC0gY29taW50LXNjcm9sbC10by1ib3R0b20tb24taW5wdXQ6ICAgICAgU2hl bGwgT3B0aW9ucy4gICAgICAgKGxpbmUgICA2KQogIC0gY29taW50LXRlcm1pbmZvLXRlcm1pbmFs OiAgICAgICAgICAgICAgU2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDY0KQogIC0gY29taW50 LXVzZS1wcm9tcHQtcmVnZXhwOiAgICAgICAgICAgICAgU2hlbGwgUHJvbXB0cy4gICAgICAgKGxp bmUgIDIxKQogIC0gY29tbWFuZC1oaXN0b3J5OiAgICAgICAgICAgICAgICAgICAgICAgUmVwZXRp dGlvbi4gICAgICAgICAgKGxpbmUgIDQ3KQogIC0gY29tbWFuZC1saW5lLWFyZ3M6ICAgICAgICAg ICAgICAgICAgICAgRW1hY3MgSW52b2NhdGlvbi4gICAgKGxpbmUgIDQwKQogIC0gY29tbWVudC1j b2x1bW46ICAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9ucyBmb3IgQ29tbWVudHMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgICA2KQogIC0gY29tbWVudC1lbmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3B0 aW9ucyBmb3IgQ29tbWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gY29tbWVudC1maWxsLWNvbHVt bjogICAgICAgICAgICAgICAgICAgT3B0aW9ucyBmb3IgQ29tbWVudHMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2 KQogIC0gY29tbWVudC1pbmRlbnQtZnVuY3Rpb246ICAgICAgICAgICAgICAgT3B0aW9ucyBmb3Ig Q29tbWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgIDQ3KQogIC0gY29tbWVudC1tdWx0aS1saW5lOiAgICAgICAg ICAgICAgICAgICAgTXVsdGktTGluZSBDb21tZW50cy4gKGxpbmUgICA2KQogIC0gY29tbWVudC1w YWRkaW5nOiAgICAgICAgICAgICAgICAgICAgICAgT3B0aW9ucyBmb3IgQ29tbWVudHMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDM3KQogIC0gY29tbWVudC1zdGFydDogICAgICAgICAgICAgICAgICAgICAgICAgT3B0 aW9ucyBmb3IgQ29tbWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gY29tbWVudC1zdGFydC1za2lw OiAgICAgICAgICAgICAgICAgICAgT3B0aW9ucyBmb3IgQ29tbWVudHMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE5 KQogIC0gY29tcGFyZS1pZ25vcmUtY2FzZTogICAgICAgICAgICAgICAgICAgQ29tcGFyaW5nIEZp bGVzLiAgICAgKGxpbmUgIDQ0KQogIC0gY29tcGFyZS1pZ25vcmUtd2hpdGVzcGFjZTogICAgICAg ICAgICAgQ29tcGFyaW5nIEZpbGVzLiAgICAgKGxpbmUgIDQ0KQogIC0gY29tcGlsYXRpb24tYWx3 YXlzLWtpbGw6ICAgICAgICAgICAgICAgQ29tcGlsYXRpb24uICAgICAgICAgKGxpbmUgIDcxKQog IC0gY29tcGlsYXRpb24tYXV0by1qdW1wLXRvLWZpcnN0LWVycm9yOiAgQ29tcGlsYXRpb24gTW9k ZS4gICAgKGxpbmUgIDEzKQogIC0gY29tcGlsYXRpb24tY29udGV4dC1saW5lczogICAgICAgICAg ICAgQ29tcGlsYXRpb24gTW9kZS4gICAgKGxpbmUgIDg3KQogIC0gY29tcGlsYXRpb24tZW52aXJv bm1lbnQ6ICAgICAgICAgICAgICAgQ29tcGlsYXRpb24uICAgICAgICAgKGxpbmUgIDg0KQogIC0g Y29tcGlsYXRpb24tZXJyb3ItcmVnZXhwLWFsaXN0OiAgICAgICAgQ29tcGlsYXRpb24gTW9kZS4g ICAgKGxpbmUgIDk3KQogIC0gY29tcGlsYXRpb24tc2Nyb2xsLW91dHB1dDogICAgICAgICAgICAg Q29tcGlsYXRpb24uICAgICAgICAgKGxpbmUgIDU4KQogIC0gY29tcGlsYXRpb24tc2tpcC10aHJl c2hvbGQ6ICAgICAgICAgICAgQ29tcGlsYXRpb24gTW9kZS4gICAgKGxpbmUgIDc3KQogIC0gY29t cGlsZS1jb21tYW5kOiAgICAgICAgICAgICAgICAgICAgICAgQ29tcGlsYXRpb24uICAgICAgICAg KGxpbmUgIDMwKQogIC0gY29tcGxldGlvbi1hdXRvLWhlbHA6ICAgICAgICAgICAgICAgICAgQ29t cGxldGlvbiBPcHRpb25zLiAgKGxpbmUgIDM2KQogIC0gY29tcGxldGlvbi1jYXRlZ29yeS1vdmVy cmlkZXM6ICAgICAgICAgQ29tcGxldGlvbiBTdHlsZXMuICAgKGxpbmUgIDY2KQogIC0gY29tcGxl dGlvbi1jeWNsZS10aHJlc2hvbGQ6ICAgICAgICAgICAgQ29tcGxldGlvbiBPcHRpb25zLiAgKGxp bmUgIDQzKQogIC0gY29tcGxldGlvbi1pZ25vcmVkLWV4dGVuc2lvbnM6ICAgICAgICAgQ29tcGxl dGlvbiBPcHRpb25zLiAgKGxpbmUgIDE5KQogIC0gY29tcGxldGlvbi1zdHlsZXM6ICAgICAgICAg ICAgICAgICAgICAgQ29tcGxldGlvbiBTdHlsZXMuICAgKGxpbmUgIDIwKQogIC0gQ09NU1BFQzog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBWYXJpYWJsZXMuICAgICAgKGxpbmUg ICA4KQogIC0gY29uZmlybS1raWxsLWVtYWNzOiAgICAgICAgICAgICAgICAgICAgRXhpdGluZy4g ICAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gY29uZmlybS1raWxsLXByb2Nlc3NlczogICAgICAg ICAgICAgICAgRXhpdGluZy4gICAgICAgICAgICAgKGxpbmUgIDM3KQogIC0gY29uZmlybS1ub25l eGlzdGVudC1maWxlLW9yLWJ1ZmZlcjogICAgQ29tcGxldGlvbiBFeGl0LiAgICAgKGxpbmUgIDQ0 KQogIC0gY3JlYXRlLWxvY2tmaWxlczogICAgICAgICAgICAgICAgICAgICAgSW50ZXJsb2NraW5n LiAgICAgICAgKGxpbmUgIDI2KQogIC0gY3RsLWFycm93OiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGV4dCBEaXNwbGF5LiAgICAgICAgKGxpbmUgIDI2KQogIC0gY3RsLXgtNC1tYXA6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHJlZml4IEtleW1hcHMuICAgICAgKGxpbmUgIDM3KQog IC0gY3RsLXgtbWFwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlZml4IEtleW1hcHMu ICAgICAgKGxpbmUgIDMyKQogIC0gY3VhLWVuYWJsZS1jdWEta2V5czogICAgICAgICAgICAgICAg ICAgQ1VBIEJpbmRpbmdzLiAgICAgICAgKGxpbmUgICA2KQogIC0gY3VhLW1vZGU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ1VBIEJpbmRpbmdzLiAgICAgICAgKGxpbmUgICA2KQogIC0g Y3VycmVudC1pbnB1dC1tZXRob2Q6ICAgICAgICAgICAgICAgICAgU2VsZWN0IElucHV0IE1ldGhv ZC4gKGxpbmUgIDI0KQogIC0gY3VycmVudC1sYW5ndWFnZS1lbnZpcm9ubWVudDogICAgICAgICAg TGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAxOSkKICAtIGN1cnNvci1pbi1ub24t c2VsZWN0ZWQtd2luZG93czogICAgICAgIEN1cnNvciBEaXNwbGF5LiAgICAgIChsaW5lICA0OCkK ICAtIGN1cnNvci10eXBlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1cnNvciBEaXNwbGF5 LiAgICAgIChsaW5lICAxMykKICAtIGN1c3RvbS1idWZmZXItZG9uZS1raWxsOiAgICAgICAgICAg ICAgIENoYW5naW5nIGEgVmFyaWFibGUuIChsaW5lIDEzOSkKICAtIGN1c3RvbS1lbmFibGVkLXRo ZW1lczogICAgICAgICAgICAgICAgIEN1c3RvbSBUaGVtZXMuICAgICAgIChsaW5lICA1MykKICAt IGN1c3RvbS1maWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNhdmluZyBDdXN0b21pemF0 aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgMTYpCiAgLSBjdXN0b20tc2FmZS10aGVtZXM6ICAgICAgICAgICAg ICAgICAgICBDdXN0b20gVGhlbWVzLiAgICAgICAobGluZSAgNDMpCiAgLSBjdXN0b20tc2VhcmNo LWZpZWxkOiAgICAgICAgICAgICAgICAgICBCcm93c2luZyBDdXN0b20uICAgICAobGluZSAgMTgp CiAgLSBjdXN0b20tdGhlbWUtZGlyZWN0b3J5OiAgICAgICAgICAgICAgICBDdXN0b20gVGhlbWVz LiAgICAgICAobGluZSAgMTYpCiAgLSBjdXN0b20tdGhlbWUtZGlyZWN0b3J5LCBzYXZpbmcgdGhl bWUgZmlsZXM6IENyZWF0aW5nIEN1c3RvbSBUaGVtZXMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDI4KQogIC0gY3Vz dG9tLXRoZW1lLWxvYWQtcGF0aDogICAgICAgICAgICAgICAgQ3VzdG9tIFRoZW1lcy4gICAgICAg KGxpbmUgIDI3KQogIC0gZGFiYnJldi1hYmJyZXYtY2hhci1yZWdleHA6ICAgICAgICAgICAgRGFi YnJldiBDdXN0b21pemF0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAzNSkKICAtIGRhYmJyZXYtYWJicmV2LXNr aXAtbGVhZGluZy1yZWdleHA6ICAgIERhYmJyZXYgQ3VzdG9taXphdGlvbi4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg NDgpCiAgLSBkYWJicmV2LWNhc2UtZm9sZC1zZWFyY2g6ICAgICAgICAgICAgICBEYWJicmV2IEN1 c3RvbWl6YXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgIDEwKQogIC0gZGFiYnJldi1jYXNlLXJlcGxhY2U6ICAg ICAgICAgICAgICAgICAgRGFiYnJldiBDdXN0b21pemF0aW9uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAyMSkKICAt IGRhYmJyZXYtY2hlY2stYWxsLWJ1ZmZlcnM6ICAgICAgICAgICAgIER5bmFtaWMgQWJicmV2cy4g ICAgIChsaW5lICAzMSkKICAtIGRhYmJyZXYtY2hlY2stb3RoZXItYnVmZmVyczogICAgICAgICAg IER5bmFtaWMgQWJicmV2cy4gICAgIChsaW5lICAzMSkKICAtIGRhYmJyZXYtaWdub3JlZC1idWZm ZXItbmFtZXM6ICAgICAgICAgIER5bmFtaWMgQWJicmV2cy4gICAgIChsaW5lICAzNikKICAtIGRh YmJyZXYtaWdub3JlZC1idWZmZXItcmVnZXhwczogICAgICAgIER5bmFtaWMgQWJicmV2cy4gICAg IChsaW5lICAzNikKICAtIGRhYmJyZXYtbGltaXQ6ICAgICAgICAgICAgICAgICAgICAgICAgIER5 bmFtaWMgQWJicmV2cy4gICAgIChsaW5lICAyMSkKICAtIERCVVNfU0VTU0lPTl9CVVNfQUREUkVT UywgZW52aXJvbm1lbnQgdmFyaWFibGU6IEdlbmVyYWwgVmFyaWFibGVzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAx NSkKICAtIGRieC1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgICAgIEdVRCBDdXN0b21p emF0aW9uLiAgIChsaW5lICAgNikKICAtIGRlYnVnLW9uLWV2ZW50OiAgICAgICAgICAgICAgICAg ICAgICAgIENoZWNrbGlzdC4gICAgICAgICAgIChsaW5lIDIwNykKICAtIGRlYnVnLW9uLXF1aXQ6 ICAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrbGlzdC4gICAgICAgICAgIChsaW5lIDIwMSkK ICAtIGRlZmF1bHQtZGlyZWN0b3J5OiAgICAgICAgICAgICAgICAgICAgIEZpbGUgTmFtZXMuICAg ICAgICAgIChsaW5lICAyMikKICAtIGRlZmF1bHQtZnJhbWUtYWxpc3Q6ICAgICAgICAgICAgICAg ICAgIEZyYW1lIFBhcmFtZXRlcnMuICAgIChsaW5lICAgNikKICAtIGRlZmF1bHQtaW5wdXQtbWV0 aG9kOiAgICAgICAgICAgICAgICAgIFNlbGVjdCBJbnB1dCBNZXRob2QuIChsaW5lICA0MykKICAt IGRlZmF1bHQtanVzdGlmaWNhdGlvbjogICAgICAgICAgICAgICAgIEVucmljaGVkIEp1c3RpZmlj YXRpb24uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDMwKQogIC0gZGVsZXRlLWFjdGl2ZS1yZWdpb246ICAgICAgICAg ICAgICAgICAgVXNpbmcgUmVnaW9uLiAgICAgICAgKGxpbmUgIDMxKQogIC0gZGVsZXRlLWF1dG8t c2F2ZS1maWxlczogICAgICAgICAgICAgICAgQXV0byBTYXZlIEZpbGVzLiAgICAgKGxpbmUgIDU1 KQogIC0gZGVsZXRlLWJ5LW1vdmluZy10by10cmFzaDogICAgICAgICAgICAgTWlzYyBGaWxlIE9w cy4gICAgICAgKGxpbmUgIDE4KQogIC0gZGVsZXRlLWJ5LW1vdmluZy10by10cmFzaCwgYW5kIERp cmVkOiAgRGlyZWQgRGVsZXRpb24uICAgICAgKGxpbmUgIDY2KQogIC0gZGVsZXRlLW9sZC12ZXJz aW9uczogICAgICAgICAgICAgICAgICAgQmFja3VwIERlbGV0aW9uLiAgICAgKGxpbmUgIDIxKQog IC0gZGVsZXRlLXRyYWlsaW5nLWxpbmVzOiAgICAgICAgICAgICAgICAgVXNlbGVzcyBXaGl0ZXNw YWNlLiAgKGxpbmUgIDIxKQogIC0gZGVza3RvcC1hdXRvLXNhdmUtdGltZW91dDogICAgICAgICAg ICAgU2F2aW5nIEVtYWNzIFNlc3Npb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2OSkKICAtIGRlc2t0b3AtY2xl YXItcHJlc2VydmUtYnVmZmVycy1yZWdleHA6IFNhdmluZyBFbWFjcyBTZXNzaW9ucy4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgNTkpCiAgLSBkZXNrdG9wLWZpbGVzLW5vdC10by1zYXZlOiAgICAgICAgICAgICBTYXZp bmcgRW1hY3MgU2Vzc2lvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE1KQogIC0gZGVza3RvcC1nbG9iYWxzLXRv LWNsZWFyOiAgICAgICAgICAgICAgU2F2aW5nIEVtYWNzIFNlc3Npb25zLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA1 OSkKICAtIGRlc2t0b3AtbG9hZC1sb2NrZWQtZGVza3RvcDogICAgICAgICAgIFNhdmluZyBFbWFj cyBTZXNzaW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgNzQpCiAgLSBkZXNrdG9wLXBhdGg6ICAgICAgICAgICAg ICAgICAgICAgICAgICBTYXZpbmcgRW1hY3MgU2Vzc2lvbnMuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM4KQogIC0g ZGVza3RvcC1yZXN0b3JlLWVhZ2VyOiAgICAgICAgICAgICAgICAgU2F2aW5nIEVtYWNzIFNlc3Np b25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICA1MykKICAtIGRlc2t0b3AtcmVzdG9yZS1mcmFtZXM6ICAgICAgICAg ICAgICAgIFNhdmluZyBFbWFjcyBTZXNzaW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBkZXNrdG9w LXNhdmUtbW9kZTogICAgICAgICAgICAgICAgICAgICBTYXZpbmcgRW1hY3MgU2Vzc2lvbnMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDI5KQogIC0gZGlhcnktYmFoYWktZW50cnktc3ltYm9sOiAgICAgICAgICAgICAg Tm9uLUdyZWdvcmlhbiBEaWFyeS4gKGxpbmUgIDIxKQogIC0gZGlhcnktY2hpbmVzZS1lbnRyeS1z eW1ib2w6ICAgICAgICAgICAgTm9uLUdyZWdvcmlhbiBEaWFyeS4gKGxpbmUgIDIxKQogIC0gZGlh cnktY29tbWVudC1zdGFydDogICAgICAgICAgICAgICAgICAgRmFuY3kgRGlhcnkgRGlzcGxheS4g KGxpbmUgIDE5KQogIC0gZGlhcnktZGF0ZS1mb3JtczogICAgICAgICAgICAgICAgICAgICAgRGlh cnkgQ3VzdG9taXppbmcuICAgKGxpbmUgIDIzKQogIC0gZGlhcnktZGlzcGxheS1mdW5jdGlvbjog ICAgICAgICAgICAgICAgRGlhcnkgRGlzcGxheS4gICAgICAgKGxpbmUgICA2KQogIC0gZGlhcnkt ZW50cnktbWFya2VyOiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDIxKQogIC0gZGlhcnktZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg Rm9ybWF0IG9mIERpYXJ5IEZpbGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gZGlhcnktaGVicmV3LWVu dHJ5LXN5bWJvbDogICAgICAgICAgICAgTm9uLUdyZWdvcmlhbiBEaWFyeS4gKGxpbmUgIDIxKQog IC0gZGlhcnktaW5jbHVkZS1zdHJpbmc6ICAgICAgICAgICAgICAgICAgRmFuY3kgRGlhcnkgRGlz cGxheS4gKGxpbmUgIDI1KQogIC0gZGlhcnktaXNsYW1pYy1lbnRyeS1zeW1ib2w6ICAgICAgICAg ICAgTm9uLUdyZWdvcmlhbiBEaWFyeS4gKGxpbmUgIDIxKQogIC0gZGlhcnktbGlzdC1lbnRyaWVz LWhvb2s6ICAgICAgICAgICAgICAgRmFuY3kgRGlhcnkgRGlzcGxheS4gKGxpbmUgIDM2KQogIC0g ZGlhcnktbGlzdC1pbmNsdWRlLWJsYW5rczogICAgICAgICAgICAgRGlhcnkgRGlzcGxheS4gICAg ICAgKGxpbmUgIDE0KQogIC0gZGlhcnktbWFpbC1kYXlzOiAgICAgICAgICAgICAgICAgICAgICAg RGlzcGxheWluZyB0aGUgRGlhcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDczKQogIC0gZGlhcnktbWFyay1lbnRy aWVzLWhvb2s6ICAgICAgICAgICAgICAgRmFuY3kgRGlhcnkgRGlzcGxheS4gKGxpbmUgIDM2KQog IC0gZGlhcnktbm9uZ3JlZ29yaWFuLWxpc3RpbmctaG9vazogICAgICAgTm9uLUdyZWdvcmlhbiBE aWFyeS4gKGxpbmUgIDEzKQogIC0gZGlhcnktbm9uZ3JlZ29yaWFuLW1hcmtpbmctaG9vazogICAg ICAgTm9uLUdyZWdvcmlhbiBEaWFyeS4gKGxpbmUgIDEzKQogIC0gZGlhcnktbm9ubWFya2luZy1z eW1ib2w6ICAgICAgICAgICAgICAgRGlzcGxheWluZyB0aGUgRGlhcnkuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDU0 KQogIC0gZGlhcnktbnVtYmVyLW9mLWVudHJpZXM6ICAgICAgICAgICAgICAgRGlhcnkgQ3VzdG9t aXppbmcuICAgKGxpbmUgIDEyKQogIC0gZGlhcnktb3V0bG9vay1mb3JtYXRzOiAgICAgICAgICAg ICAgICAgSW1wb3J0aW5nIERpYXJ5LiAgICAgKGxpbmUgICA5KQogIC0gZGlhcnktcHJpbnQtZW50 cmllcy1ob29rOiAgICAgICAgICAgICAgRGlhcnkgRGlzcGxheS4gICAgICAgKGxpbmUgIDMyKQog IC0gZGlhcnktc2V4cC1lbnRyeS1zeW1ib2w6ICAgICAgICAgICAgICAgU2V4cCBEaWFyeSBFbnRy aWVzLiAgKGxpbmUgICA2KQogIC0gZGlhcnktc2hvdy1ob2xpZGF5cy1mbGFnOiAgICAgICAgICAg ICAgRGlhcnkgQ3VzdG9taXppbmcuICAgKGxpbmUgICA2KQogIC0gZGlmZi1zd2l0Y2hlczogICAg ICAgICAgICAgICAgICAgICAgICAgQ29tcGFyaW5nIEZpbGVzLiAgICAgKGxpbmUgICA2KQogIC0g ZGlmZi11cGRhdGUtb24tdGhlLWZseTogICAgICAgICAgICAgICAgRGlmZiBNb2RlLiAgICAgICAg ICAgKGxpbmUgIDE4KQogIC0gZGlyZWN0b3J5LWFiYnJldi1hbGlzdDogICAgICAgICAgICAgICAg RmlsZSBBbGlhc2VzLiAgICAgICAgKGxpbmUgIDMzKQogIC0gZGlyZWN0b3J5LWZyZWUtc3BhY2Ut YXJnczogICAgICAgICAgICAgRGlyZWN0b3JpZXMuICAgICAgICAgKGxpbmUgIDQ3KQogIC0gZGly ZWN0b3J5LWZyZWUtc3BhY2UtcHJvZ3JhbTogICAgICAgICAgRGlyZWN0b3JpZXMuICAgICAgICAg KGxpbmUgIDQ3KQogIC0gZGlyZWQtYXV0by1yZXZlcnQtYnVmZmVyOiAgICAgICAgICAgICAgRGly ZWQgVXBkYXRpbmcuICAgICAgKGxpbmUgIDQzKQogIC0gZGlyZWQtY2hvd24tcHJvZ3JhbTogICAg ICAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxpbmUgIDkwKQogIC0gZGlyZWQt Y29weS1wcmVzZXJ2ZS10aW1lOiAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAgKGxp bmUgIDM5KQogIC0gZGlyZWQtZHdpbS10YXJnZXQ6ICAgICAgICAgICAgICAgICAgICAgT3BlcmF0 aW5nIG9uIEZpbGVzLiAgKGxpbmUgIDI1KQogIC0gZGlyZWQtZ2FyYmFnZS1maWxlcy1yZWdleHA6 ICAgICAgICAgICAgRmxhZ2dpbmcgTWFueSBGaWxlcy4gKGxpbmUgIDUwKQogIC0gZGlyZWQtaGlk ZS1kZXRhaWxzLWhpZGUtaW5mb3JtYXRpb24tbGluZXM6IE1pc2MgRGlyZWQgRmVhdHVyZXMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgIDQwKQogIC0gZGlyZWQtaGlkZS1kZXRhaWxzLWhpZGUtc3ltbGluay10YXJnZXRz OiBNaXNjIERpcmVkIEZlYXR1cmVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0MCkKICAtIGRpcmVkLWlzZWFyY2gt ZmlsZW5hbWVzOiAgICAgICAgICAgICAgIERpcmVkIE5hdmlnYXRpb24uICAgIChsaW5lICAyMCkK ICAtIGRpcmVkLWtlcHQtdmVyc2lvbnM6ICAgICAgICAgICAgICAgICAgIEZsYWdnaW5nIE1hbnkg RmlsZXMuIChsaW5lICAzNykKICAtIGRpcmVkLWxpc3Rpbmctc3dpdGNoZXM6ICAgICAgICAgICAg ICAgIERpcmVkIEVudGVyLiAgICAgICAgIChsaW5lICAgNikKICAtIGRpcmVkLWxpc3Rpbmctc3dp dGNoZXMgKE1TLURPUyk6ICAgICAgIE1TLURPUyBQcm9jZXNzZXMuICAgIChsaW5lICA0NCkKICAt IGRpcmVkLXJlY3Vyc2l2ZS1jb3BpZXM6ICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxl cy4gIChsaW5lICA0MykKICAtIGRpcmVkLXJlY3Vyc2l2ZS1kZWxldGVzOiAgICAgICAgICAgICAg IERpcmVkIERlbGV0aW9uLiAgICAgIChsaW5lICA1MSkKICAtIGRpcmVkLXVzZS1scy1kaXJlZDog ICAgICAgICAgICAgICAgICAgIERpcmVkIEVudGVyLiAgICAgICAgIChsaW5lICAzNikKICAtIGRp cnRyYWNrLWxpc3Q6ICAgICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeSBUcmFja2luZy4g IChsaW5lICAyNSkKICAtIGRpc3BsYXktYmF0dGVyeS1tb2RlOiAgICAgICAgICAgICAgICAgIE9w dGlvbmFsIE1vZGUgTGluZS4gIChsaW5lICA3OCkKICAtIGRpc3BsYXktaG91cmdsYXNzOiAgICAg ICAgICAgICAgICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lICA4NykKICAtIGRpc3Bs YXktbGluZS1udW1iZXJzOiAgICAgICAgICAgICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChs aW5lICAgOSkKICAtIGRpc3BsYXktbGluZS1udW1iZXJzLWN1cnJlbnQtYWJzb2x1dGU6IERpc3Bs YXkgQ3VzdG9tLiAgICAgIChsaW5lICA0OCkKICAtIGRpc3BsYXktbGluZS1udW1iZXJzLWdyb3ct b25seTogICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lICA2MykKICAtIGRpc3BsYXkt bGluZS1udW1iZXJzLXR5cGU6ICAgICAgICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5l ICAzOSkKICAtIGRpc3BsYXktbGluZS1udW1iZXJzLXdpZGVuOiAgICAgICAgICAgIERpc3BsYXkg Q3VzdG9tLiAgICAgIChsaW5lICA1NykKICAtIGRpc3BsYXktbGluZS1udW1iZXJzLXdpZHRoOiAg ICAgICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lICA2MykKICAtIGRpc3BsYXktbGlu ZS1udW1iZXJzLXdpZHRoLXN0YXJ0OiAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lICA2 MykKICAtIGRpc3BsYXktcmF3LWJ5dGVzLWFzLWhleDogICAgICAgICAgICAgIERpc3BsYXkgQ3Vz dG9tLiAgICAgIChsaW5lIDEyMikKICAtIGRpc3BsYXktdGltZS0yNGhyLWZvcm1hdDogICAgICAg ICAgICAgIE9wdGlvbmFsIE1vZGUgTGluZS4gIChsaW5lICA2MCkKICAtIGRpc3BsYXktdGltZS1t YWlsLWRpcmVjdG9yeTogICAgICAgICAgIE9wdGlvbmFsIE1vZGUgTGluZS4gIChsaW5lICA2OCkK ICAtIGRpc3BsYXktdGltZS1tYWlsLWZhY2U6ICAgICAgICAgICAgICAgIE9wdGlvbmFsIE1vZGUg TGluZS4gIChsaW5lICA2OCkKICAtIGRpc3BsYXktdGltZS1tYWlsLWZpbGU6ICAgICAgICAgICAg ICAgIE9wdGlvbmFsIE1vZGUgTGluZS4gIChsaW5lICA2OCkKICAtIGRpc3BsYXktdGltZS11c2Ut bWFpbC1pY29uOiAgICAgICAgICAgIE9wdGlvbmFsIE1vZGUgTGluZS4gIChsaW5lICA2OCkKICAt IGRuZC1vcGVuLWZpbGUtb3RoZXItd2luZG93OiAgICAgICAgICAgIERyYWcgYW5kIERyb3AuICAg ICAgIChsaW5lICAxNCkKICAtIGRvYy12aWV3LWNhY2hlLWRpcmVjdG9yeTogICAgICAgICAgICAg IERvY1ZpZXcgQ29udmVyc2lvbi4gIChsaW5lICAgNikKICAtIGRvYy12aWV3LWNvbnRpbnVvdXM6 ICAgICAgICAgICAgICAgICAgIERvY1ZpZXcgTmF2aWdhdGlvbi4gIChsaW5lICAgOSkKICAtIGRv Yy12aWV3LXJlc29sdXRpb246ICAgICAgICAgICAgICAgICAgIERvY1ZpZXcgTmF2aWdhdGlvbi4g IChsaW5lICAyOSkKICAtIGRvY3RleC1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgIFRl WCBNaXNjLiAgICAgICAgICAgIChsaW5lICAgNikKICAtIGRvcy1jb2RlcGFnZTogICAgICAgICAg ICAgICAgICAgICAgICAgIE1TLURPUyBhbmQgTVVMRS4gICAgIChsaW5lICAzNikKICAtIGRvcy1k aXNwbGF5LXNjYW5jb2RlczogICAgICAgICAgICAgICAgIE1TLURPUyBNb3VzZS4gICAgICAgIChs aW5lICA0OSkKICAtIGRvcy1oeXBlci1rZXk6ICAgICAgICAgICAgICAgICAgICAgICAgIE1TLURP UyBLZXlib2FyZC4gICAgIChsaW5lICAyMCkKICAtIGRvcy1rZXlwYWQtbW9kZTogICAgICAgICAg ICAgICAgICAgICAgIE1TLURPUyBLZXlib2FyZC4gICAgIChsaW5lICAzMSkKICAtIGRvcy1wcmlu dGVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1TLURPUyBQcmludGluZy4gICAgIChsaW5l ICAyNikKICAtIGRvcy1wcy1wcmludGVyOiAgICAgICAgICAgICAgICAgICAgICAgIE1TLURPUyBQ cmludGluZy4gICAgIChsaW5lICAyNikKICAtIGRvcy1zdXBlci1rZXk6ICAgICAgICAgICAgICAg ICAgICAgICAgIE1TLURPUyBLZXlib2FyZC4gICAgIChsaW5lICAyMCkKICAtIGRvdWJsZS1jbGlj ay1mdXp6OiAgICAgICAgICAgICAgICAgICAgIE1vdXNlIEJ1dHRvbnMuICAgICAgIChsaW5lICA3 NCkKICAtIGRvdWJsZS1jbGljay10aW1lOiAgICAgICAgICAgICAgICAgICAgIE1vdXNlIEJ1dHRv bnMuICAgICAgIChsaW5lICA2OCkKICAtIGVjaG8ta2V5c3Ryb2tlczogICAgICAgICAgICAgICAg ICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lICA4MSkKICAtIGVsZWN0cmljLXBhaXIt ZGVsZXRlLWFkamFjZW50LXBhaXJzOiAgIE1hdGNoaW5nLiAgICAgICAgICAgIChsaW5lICA3NykK ICAtIGVsZWN0cmljLXBhaXItb3Blbi1uZXdsaW5lLWJldHdlZW4tcGFpcnM6IE1hdGNoaW5nLiAg ICAgICAgIChsaW5lICA4MSkKICAtIGVsZWN0cmljLXBhaXItcHJlc2VydmUtYmFsYW5jZTogICAg ICAgIE1hdGNoaW5nLiAgICAgICAgICAgIChsaW5lICA3MykKICAtIGVsZWN0cmljLXBhaXItc2tp cC13aGl0ZXNwYWNlOiAgICAgICAgIE1hdGNoaW5nLiAgICAgICAgICAgIChsaW5lICA4NSkKICAt IGVsZWN0cmljLXF1b3RlLWNoYXJzOiAgICAgICAgICAgICAgICAgIFF1b3RhdGlvbiBNYXJrcy4g ICAgIChsaW5lICAxMykKICAtIGVsZWN0cmljLXF1b3RlLWNvbW1lbnQ6ICAgICAgICAgICAgICAg IFF1b3RhdGlvbiBNYXJrcy4gICAgIChsaW5lICAyMSkKICAtIGVsZWN0cmljLXF1b3RlLXBhcmFn cmFwaDogICAgICAgICAgICAgIFF1b3RhdGlvbiBNYXJrcy4gICAgIChsaW5lICAyMSkKICAtIGVs ZWN0cmljLXF1b3RlLXN0cmluZzogICAgICAgICAgICAgICAgIFF1b3RhdGlvbiBNYXJrcy4gICAg IChsaW5lICAyMSkKICAtIGVtYWNzLWxpc3AtbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgIFBy b2dyYW0gTW9kZXMuICAgICAgIChsaW5lICA0MCkKICAtIEVNQUNTQ0xJRU5UX1RSQU1QLCBlbnZp cm9ubWVudCB2YXJpYWJsZTogZW1hY3NjbGllbnQgT3B0aW9ucy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxNDEpCiAg LSBFTUFDU0NPTE9SUzogICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIFZhcmlhYmxlcy4g ICAgICAobGluZSAgMjMpCiAgLSBFTUFDU0RBVEEsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAg ICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgMjEpCiAgLSBFTUFDU0RPQywgZW52aXJvbm1l bnQgdmFyaWFibGU6ICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgMjQpCiAgLSBF TUFDU0xPQURQQVRILCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICBHZW5lcmFsIFZhcmlhYmxlcy4g ICAobGluZSAgMjcpCiAgLSBFTUFDU1BBVEgsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICBH ZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgMzUpCiAgLSBFTUFDU1RFU1Q6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNaXNjIFZhcmlhYmxlcy4gICAgICAobGluZSAgMTgpCiAgLSBlbWFj c19kaXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIFZhcmlhYmxlcy4gICAgICAo bGluZSAgNDYpCiAgLSBFTUFDU19TRVJWRVJfRklMRSwgZW52aXJvbm1lbnQgdmFyaWFibGU6IFRD UCBFbWFjcyBzZXJ2ZXIuICAobGluZSAgNDApCiAgLSBFTUFJTCwgZW52aXJvbm1lbnQgdmFyaWFi bGU6ICAgICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgMzkpCiAgLSBlbWVyZ2Ut Y29tYmluZS12ZXJzaW9ucy10ZW1wbGF0ZTogICAgICBDb21iaW5pbmcgaW4gRW1lcmdlLiAobGlu ZSAgMTYpCiAgLSBlbWVyZ2Utc3RhcnR1cC1ob29rOiAgICAgICAgICAgICAgICAgICBGaW5lIFBv aW50cyBvZiBFbWVyZ2UuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDIwKQogIC0gZW5hYmxlLWxvY2FsLWV2YWw6ICAg ICAgICAgICAgICAgICAgICAgU2FmZSBGaWxlIFZhcmlhYmxlcy4gKGxpbmUgIDQ2KQogIC0gZW5h YmxlLWxvY2FsLXZhcmlhYmxlczogICAgICAgICAgICAgICAgU2FmZSBGaWxlIFZhcmlhYmxlcy4g KGxpbmUgIDM4KQogIC0gZW5hYmxlLXJlY3Vyc2l2ZS1taW5pYnVmZmVyczogICAgICAgICAgTWlu aWJ1ZmZlciBFZGl0LiAgICAgKGxpbmUgIDU3KQogIC0gZW5yaWNoZWQtYWxsb3ctZXZhbC1pbi1k aXNwbGF5LXByb3BzOiAgRW5yaWNoZWQgUHJvcGVydGllcy4gKGxpbmUgIDE1KQogIC0gZW5yaWNo ZWQtdHJhbnNsYXRpb25zOiAgICAgICAgICAgICAgICAgRW5yaWNoZWQgTW9kZS4gICAgICAgKGxp bmUgIDIxKQogIC0gZW9sLW1uZW1vbmljLWRvczogICAgICAgICAgICAgICAgICAgICAgT3B0aW9u YWwgTW9kZSBMaW5lLiAgKGxpbmUgMTAzKQogIC0gZW9sLW1uZW1vbmljLW1hYzogICAgICAgICAg ICAgICAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAgKGxpbmUgMTAzKQogIC0gZW9sLW1uZW1v bmljLXVuZGVjaWRlZDogICAgICAgICAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAgKGxpbmUg MTAzKQogIC0gZW9sLW1uZW1vbmljLXVuaXg6ICAgICAgICAgICAgICAgICAgICAgT3B0aW9uYWwg TW9kZSBMaW5lLiAgKGxpbmUgMTAzKQogIC0gZXNjLW1hcDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHJlZml4IEtleW1hcHMuICAgICAgKGxpbmUgIDM1KQogIC0gRVNIRUxMLCBlbnZp cm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgIDQz KQogIC0gZXZhbC1leHByZXNzaW9uLWRlYnVnLW9uLWVycm9yOiAgICAgICAgTGlzcCBFdmFsLiAg ICAgICAgICAgKGxpbmUgIDczKQogIC0gZXZhbC1leHByZXNzaW9uLXByaW50LWxlbmd0aDogICAg ICAgICAgTGlzcCBFdmFsLiAgICAgICAgICAgKGxpbmUgIDczKQogIC0gZXZhbC1leHByZXNzaW9u LXByaW50LWxldmVsOiAgICAgICAgICAgTGlzcCBFdmFsLiAgICAgICAgICAgKGxpbmUgIDczKQog IC0gZXZhbC1leHByZXNzaW9uLXByaW50LW1heGltdW0tY2hhcmFjdGVyOiBMaXNwIEV2YWwuICAg ICAgICAgKGxpbmUgIDczKQogIC0gZXd3LXNlYXJjaC1wcmVmaXg6ICAgICAgICAgICAgICAgICAg ICAgV29yZCBTZWFyY2guICAgICAgICAgKGxpbmUgIDU1KQogIC0gZXhlYy1wYXRoOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2hlbGwuICAgICAgICAgICAgICAgKGxpbmUgIDI3KQogIC0g ZXhpdC1sYW5ndWFnZS1lbnZpcm9ubWVudC1ob29rOiAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1l bnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICA5NCkKICAtIGV4cGxpY2l0LXNoZWxsLWZpbGUtbmFtZTogICAgICAg ICAgICAgIEludGVyYWN0aXZlIFNoZWxsLiAgIChsaW5lICAzNikKICAtIGV4dGVuZGVkLWNvbW1h bmQtc3VnZ2VzdC1zaG9ydGVyOiAgICAgIE0teC4gICAgICAgICAgICAgICAgIChsaW5lICA2MSkK ICAtIGZhY2UtaWdub3JlZC1mb250czogICAgICAgICAgICAgICAgICAgIE1vZGlmeWluZyBGb250 c2V0cy4gIChsaW5lICAzNSkKICAtIGZhc3QtYnV0LWltcHJlY2lzZS1zY3JvbGxpbmc6ICAgICAg ICAgIFNjcm9sbGluZy4gICAgICAgICAgIChsaW5lICA3MikKICAtIGZmLXJlbGF0ZWQtZmlsZS1h bGlzdDogICAgICAgICAgICAgICAgIE90aGVyIEMgQ29tbWFuZHMuICAgIChsaW5lICA5NCkKICAt IGZpbGUtY29kaW5nLXN5c3RlbS1hbGlzdDogICAgICAgICAgICAgIFJlY29nbml6ZSBDb2Rpbmcu ICAgIChsaW5lICA0MykKICAtIGZpbGUtbmFtZS1hdC1wb2ludC1mdW5jdGlvbnM6ICAgICAgICAg IE1pbmlidWZmZXIgSGlzdG9yeS4gIChsaW5lICA0MykKICAtIGZpbGUtbmFtZS1jb2Rpbmctc3lz dGVtOiAgICAgICAgICAgICAgIEZpbGUgTmFtZSBDb2RpbmcuICAgIChsaW5lICAxNCkKICAtIGZp bGwtY29sdW1uOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGwgQ29tbWFuZHMuICAgICAg IChsaW5lICAzOSkKICAtIGZpbGwtbm9icmVhay1wcmVkaWNhdGU6ICAgICAgICAgICAgICAgIEZp bGwgQ29tbWFuZHMuICAgICAgIChsaW5lICA2MykKICAtIGZpbGwtcHJlZml4OiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZpbGwgUHJlZml4LiAgICAgICAgIChsaW5lICA3NykKICAtIGZpbmQt ZmlsZS1leGlzdGluZy1vdGhlci1uYW1lOiAgICAgICAgIEZpbGUgQWxpYXNlcy4gICAgICAgIChs aW5lICAxNSkKICAtIGZpbmQtZmlsZS1ob29rOiAgICAgICAgICAgICAgICAgICAgICAgIFZpc2l0 aW5nLiAgICAgICAgICAgIChsaW5lIDE1NikKICAtIGZpbmQtZmlsZS1ub3QtZm91bmQtZnVuY3Rp b25zOiAgICAgICAgIFZpc2l0aW5nLiAgICAgICAgICAgIChsaW5lIDE1NikKICAtIGZpbmQtZmls ZS1ydW4tZGlyZWQ6ICAgICAgICAgICAgICAgICAgIFZpc2l0aW5nLiAgICAgICAgICAgIChsaW5l ICA4OCkKICAtIGZpbmQtZmlsZS1zdXBwcmVzcy1zYW1lLWZpbGUtd2FybmluZ3M6IEZpbGUgQWxp YXNlcy4gICAgICAgIChsaW5lICAxNSkKICAtIGZpbmQtZmlsZS12aXNpdC10cnVlbmFtZTogICAg ICAgICAgICAgIEZpbGUgQWxpYXNlcy4gICAgICAgIChsaW5lICAyNykKICAtIGZpbmQtZmlsZS13 aWxkY2FyZHM6ICAgICAgICAgICAgICAgICAgIFZpc2l0aW5nLiAgICAgICAgICAgIChsaW5lICA3 MSkKICAtIGZpbmQtbHMtb3B0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgIERpcmVkIGFuZCBG aW5kLiAgICAgIChsaW5lICAzMikKICAtIGZvY3VzLWZvbGxvd3MtbW91c2U6ICAgICAgICAgICAg ICAgICAgIEZyYW1lIENvbW1hbmRzLiAgICAgIChsaW5lICA1NCkKICAtIGZvbGRvdXQtbW91c2Ut bW9kaWZpZXJzOiAgICAgICAgICAgICAgIEZvbGRvdXQuICAgICAgICAgICAgIChsaW5lICA3MikK ICAtIGZvbnQtbG9jay1tYXhpbXVtLWRlY29yYXRpb246ICAgICAgICAgIEZvbnQgTG9jay4gICAg ICAgICAgIChsaW5lICAzNykKICAtIGZvbnQtc2xhbnQtdGFibGUgKE1TLVdpbmRvd3MpOiAgICAg ICAgIFdpbmRvd3MgRm9udHMuICAgICAgIChsaW5lICAzOSkKICAtIGZvbnQtd2VpZ2h0LXRhYmxl IChNUy1XaW5kb3dzKTogICAgICAgIFdpbmRvd3MgRm9udHMuICAgICAgIChsaW5lICAzMSkKICAt IGZvcnRyYW4tYW5hbHl6ZS1kZXB0aDogICAgICAgICAgICAgICAgIEZvckluZGVudCBDb250LiAg ICAgIChsaW5lICAxOCkKICAtIGZvcnRyYW4tYnJlYWstYmVmb3JlLWRlbGltaXRlcnM6ICAgICAg IEZvcnRyYW4gQXV0b2ZpbGwuICAgIChsaW5lICAxNCkKICAtIGZvcnRyYW4tY2hlY2stYWxsLW51 beKApjogICAgICAgICAgICAgICAgRm9ySW5kZW50IFZhcnMuICAgICAgKGxpbmUgICA2KQogIC0g Zm9ydHJhbi1jb2x1bW4tcnVsZXItZml4ZWQ6ICAgICAgICAgICAgRm9ydHJhbiBDb2x1bW5zLiAg ICAgKGxpbmUgIDQ2KQogIC0gZm9ydHJhbi1jb2x1bW4tcnVsZXItdGFiczogICAgICAgICAgICAg Rm9ydHJhbiBDb2x1bW5zLiAgICAgKGxpbmUgIDQ2KQogIC0gZm9ydHJhbi1jb21tZW50LWluZGVu dC1jaGFyOiAgICAgICAgICAgRm9ydHJhbiBDb21tZW50cy4gICAgKGxpbmUgIDYyKQogIC0gZm9y dHJhbi1jb21tZW50LWluZGVudC1zdHlsZTogICAgICAgICAgRm9ydHJhbiBDb21tZW50cy4gICAg KGxpbmUgIDQ2KQogIC0gZm9ydHJhbi1jb21tZW50LWxpbmUtZXh0cmEtaW5kZW50OiAgICAgRm9y dHJhbiBDb21tZW50cy4gICAgKGxpbmUgIDQ2KQogIC0gZm9ydHJhbi1jb21tZW50LWxpbmUtc3Rh cnQ6ICAgICAgICAgICAgRm9ydHJhbiBDb21tZW50cy4gICAgKGxpbmUgIDExKQogIC0gZm9ydHJh bi1jb21tZW50LXJlZ2lvbjogICAgICAgICAgICAgICAgRm9ydHJhbiBDb21tZW50cy4gICAgKGxp bmUgIDc4KQogIC0gZm9ydHJhbi1jb250aW51YXRpb24taW5kZW50OiAgICAgICAgICAgRm9ySW5k ZW50IFZhcnMuICAgICAgKGxpbmUgICA2KQogIC0gZm9ydHJhbi1jb250aW51YXRpb24tc3RyaW5n OiAgICAgICAgICAgRm9ySW5kZW50IENvbnQuICAgICAgKGxpbmUgICA2KQogIC0gZm9ydHJhbi1k aXJlY3RpdmUtcmU6ICAgICAgICAgICAgICAgICAgRm9ydHJhbiBDb21tZW50cy4gICAgKGxpbmUg IDY3KQogIC0gZm9ydHJhbi1kby1pbmRlbnQ6ICAgICAgICAgICAgICAgICAgICAgRm9ySW5kZW50 IFZhcnMuICAgICAgKGxpbmUgICA2KQogIC0gZm9ydHJhbi1lbGVjdHJpYy1saW5lLW51bWJlcjog ICAgICAgICAgRm9ySW5kZW50IE51bS4gICAgICAgKGxpbmUgIDIwKQogIC0gZm9ydHJhbi1pZi1p bmRlbnQ6ICAgICAgICAgICAgICAgICAgICAgRm9ySW5kZW50IFZhcnMuICAgICAgKGxpbmUgICA2 KQogIC0gZm9ydHJhbi1saW5lLWxlbmd0aDogICAgICAgICAgICAgICAgICAgRm9ydHJhbiBDb2x1 bW5zLiAgICAgKGxpbmUgICA2KQogIC0gZm9ydHJhbi1saW5lLW51bWJlci1pbmRlbnQ6ICAgICAg ICAgICAgRm9ySW5kZW50IE51bS4gICAgICAgKGxpbmUgIDEyKQogIC0gZm9ydHJhbi1taW5pbXVt LXN0YXRlbWVudC1pbmRlbnTigKY6ICAgICBGb3JJbmRlbnQgVmFycy4gICAgICAobGluZSAgIDYp CiAgLSBmb3J0cmFuLXN0cnVjdHVyZS1pbmRlbnQ6ICAgICAgICAgICAgICBGb3JJbmRlbnQgVmFy cy4gICAgICAobGluZSAgIDYpCiAgLSBmb3J0cmFuLXRhYi1tb2RlLWRlZmF1bHQ6ICAgICAgICAg ICAgICBGb3JJbmRlbnQgQ29udC4gICAgICAobGluZSAgMTgpCiAgLSBmcmFtZS1iYWNrZ3JvdW5k LW1vZGU6ICAgICAgICAgICAgICAgICBGYWNlcy4gICAgICAgICAgICAgICAobGluZSAgMTgpCiAg LSBmcmFtZS1yZXNpemUtcGl4ZWx3aXNlOiAgICAgICAgICAgICAgICBGcmFtZSBDb21tYW5kcy4g ICAgICAobGluZSAgMzMpCiAgLSBmcmFtZXNldC1maWx0ZXItYWxpc3Q6ICAgICAgICAgICAgICAg ICBTYXZpbmcgRW1hY3MgU2Vzc2lvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDE5KQogIC0gZnJpbmdlLW1vZGUg KHZhcmlhYmxlKTogICAgICAgICAgICAgICAgRnJpbmdlcy4gICAgICAgICAgICAgKGxpbmUgICA2 KQogIC0gZ2RiLWRlbGV0ZS1vdXQtb2Ytc2NvcGU6ICAgICAgICAgICAgICAgV2F0Y2ggRXhwcmVz c2lvbnMuICAgKGxpbmUgIDM5KQogIC0gZ2RiLWd1ZC1jb250cm9sLWFsbC10aHJlYWRzOiAgICAg ICAgICAgTXVsdGl0aHJlYWRlZCBEZWJ1Z2dpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDM5KQogIC0gZ2RiLW1h bnktd2luZG93czogICAgICAgICAgICAgICAgICAgICAgR0RCIFVzZXIgSW50ZXJmYWNlIExheW91 dC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgIDYpCiAgLSBnZGItbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgICAg ICAgICBHVUQgQ3VzdG9taXphdGlvbi4gICAobGluZSAgIDYpCiAgLSBnZGItbm9uLXN0b3Atc2V0 dGluZzogICAgICAgICAgICAgICAgICBNdWx0aXRocmVhZGVkIERlYnVnZ2luZy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMTUpCiAgLSBnZGItc2hvdy1jaGFuZ2VkLXZhbHVlczogICAgICAgICAgICAgICBXYXRjaCBF eHByZXNzaW9ucy4gICAobGluZSAgMzMpCiAgLSBnZGItc2hvdy10aHJlYWRzLWJ5LWRlZmF1bHQ6 ICAgICAgICAgICBCcmVha3BvaW50cyBCdWZmZXIuICAobGluZSAgMjgpCiAgLSBnZGItc3BlZWRi YXItYXV0by1yYWlzZTogICAgICAgICAgICAgICBXYXRjaCBFeHByZXNzaW9ucy4gICAobGluZSAg NTApCiAgLSBnZGItc3RvcHBlZC1mdW5jdGlvbnM6ICAgICAgICAgICAgICAgICBNdWx0aXRocmVh ZGVkIERlYnVnZ2luZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMzMpCiAgLSBnZGItc3dpdGNoLXJlYXNvbnM6ICAg ICAgICAgICAgICAgICAgICBNdWx0aXRocmVhZGVkIERlYnVnZ2luZy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjgp CiAgLSBnZGItc3dpdGNoLXdoZW4tYW5vdGhlci1zdG9wcGVkOiAgICAgICBNdWx0aXRocmVhZGVk IERlYnVnZ2luZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgMjMpCiAgLSBnZGItdGhyZWFkLWJ1ZmZlci1hZGRyZXNz ZXM6ICAgICAgICAgICBUaHJlYWRzIEJ1ZmZlci4gICAgICAobGluZSAgMjUpCiAgLSBnZGItdGhy ZWFkLWJ1ZmZlci1hcmd1bWVudHM6ICAgICAgICAgICBUaHJlYWRzIEJ1ZmZlci4gICAgICAobGlu ZSAgMTkpCiAgLSBnZGItdGhyZWFkLWJ1ZmZlci1sb2NhdGlvbnM6ICAgICAgICAgICBUaHJlYWRz IEJ1ZmZlci4gICAgICAobGluZSAgMjIpCiAgLSBnZGItdGhyZWFkLWJ1ZmZlci12ZXJib3NlLW5h bWVzOiAgICAgICBUaHJlYWRzIEJ1ZmZlci4gICAgICAobGluZSAgMTYpCiAgLSBnZGItdXNlLWNv bG9uLWNvbG9uLW5vdGF0aW9uOiAgICAgICAgICBXYXRjaCBFeHByZXNzaW9ucy4gICAobGluZSAg NDUpCiAgLSBnbG9iYWwtY3dhcm4tbW9kZTogICAgICAgICAgICAgICAgICAgICBPdGhlciBDIENv bW1hbmRzLiAgICAobGluZSAgNzEpCiAgLSBnbG9iYWwtZm9udC1sb2NrLW1vZGU6ICAgICAgICAg ICAgICAgICBGb250IExvY2suICAgICAgICAgICAobGluZSAgMTcpCiAgLSBnbG9iYWwtbWFyay1y aW5nLW1heDogICAgICAgICAgICAgICAgICBHbG9iYWwgTWFyayBSaW5nLiAgICAobGluZSAgIDYp CiAgLSBncmVwLWZpbmQtaWdub3JlZC1kaXJlY3RvcmllczogICAgICAgICBHcmVwIFNlYXJjaGlu Zy4gICAgICAobGluZSAgODMpCiAgLSBncmVwLWZpbmQtaWdub3JlZC1kaXJlY3RvcmllcyAoRGly ZWQpOiBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxNTIpCiAgLSBncmVwLWZpbmQtaWdub3Jl ZC1maWxlcyAoRGlyZWQpOiAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuICAobGluZSAxNTIpCiAg LSBncmVwLXJlZ2V4cC1hbGlzdDogICAgICAgICAgICAgICAgICAgICBDb21waWxhdGlvbiBNb2Rl LiAgICAobGluZSAgOTcpCiAgLSBndWQtZ2RiLWNvbW1hbmQtbmFtZTogICAgICAgICAgICAgICAg ICBHREIgR3JhcGhpY2FsIEludGVyZmFjZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTIpCiAgLSBndWQtdG9vbHRp cC1lY2hvLWFyZWE6ICAgICAgICAgICAgICAgICBEZWJ1Z2dlciBPcGVyYXRpb24uICAobGluZSAg MzIpCiAgLSBndWQteGRiLWRpcmVjdG9yaWVzOiAgICAgICAgICAgICAgICAgICBTdGFydGluZyBH VUQuICAgICAgICAobGluZSAgMzkpCiAgLSBndWlsZXItbW9kZS1ob29rOiAgICAgICAgICAgICAg ICAgICAgICBHVUQgQ3VzdG9taXphdGlvbi4gICAobGluZSAgIDYpCiAgLSBoZWxwLWF0LXB0LWRp c3BsYXktd2hlbi1pZGxlOiAgICAgICAgICBIZWxwIEVjaG8uICAgICAgICAgICAobGluZSAgMTMp CiAgLSBoZWxwLWVuYWJsZS1hdXRvLWxvYWQ6ICAgICAgICAgICAgICAgICBMaXNwIExpYnJhcmll cy4gICAgICAobGluZSAgNzApCiAgLSBoZWxwLW1hcDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQcmVmaXggS2V5bWFwcy4gICAgICAobGluZSAgMzQpCiAgLSBoaS1sb2NrLWF1dG8tc2Vs ZWN0LWZhY2U6ICAgICAgICAgICAgICBIaWdobGlnaHQgSW50ZXJhY3RpdmVseS4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMzcpCiAgLSBoaS1sb2NrLWV4Y2x1ZGUtbW9kZXM6ICAgICAgICAgICAgICAgICBIaWdobGln aHQgSW50ZXJhY3RpdmVseS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAxMDYpCiAgLSBoaS1sb2NrLWZpbGUtcGF0dGVy bnMtcG9saWN5OiAgICAgICAgICBIaWdobGlnaHQgSW50ZXJhY3RpdmVseS4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg OTYpCiAgLSBoaWRlLWlmZGVmLXNoYWRvdzogICAgICAgICAgICAgICAgICAgICBPdGhlciBDIENv bW1hbmRzLiAgICAobGluZSAgODYpCiAgLSBoaWdobGlnaHQtbm9uc2VsZWN0ZWQtd2luZG93czog ICAgICAgICBNYXJrLiAgICAgICAgICAgICAgICAobGluZSAgMjgpCiAgLSBISVNURklMRSwgZW52 aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgNDYp CiAgLSBoaXN0b3J5LWRlbGV0ZS1kdXBsaWNhdGVzOiAgICAgICAgICAgICBNaW5pYnVmZmVyIEhp c3RvcnkuICAobGluZSAgOTApCiAgLSBoaXN0b3J5LWxlbmd0aDogICAgICAgICAgICAgICAgICAg ICAgICBNaW5pYnVmZmVyIEhpc3RvcnkuICAobGluZSAgODUpCiAgLSBob2xpZGF5LWJhaGFpLWhv bGlkYXlzOiAgICAgICAgICAgICAgICBIb2xpZGF5IEN1c3RvbWl6aW5nLiAobGluZSAgMjQpCiAg LSBob2xpZGF5LWNocmlzdGlhbi1ob2xpZGF5czogICAgICAgICAgICBIb2xpZGF5IEN1c3RvbWl6 aW5nLiAobGluZSAgMjQpCiAgLSBob2xpZGF5LWdlbmVyYWwtaG9saWRheXM6ICAgICAgICAgICAg ICBIb2xpZGF5IEN1c3RvbWl6aW5nLiAobGluZSAgMTkpCiAgLSBob2xpZGF5LWhlYnJldy1ob2xp ZGF5czogICAgICAgICAgICAgICBIb2xpZGF5IEN1c3RvbWl6aW5nLiAobGluZSAgMjQpCiAgLSBo b2xpZGF5LWlzbGFtaWMtaG9saWRheXM6ICAgICAgICAgICAgICBIb2xpZGF5IEN1c3RvbWl6aW5n LiAobGluZSAgMjQpCiAgLSBob2xpZGF5LWxvY2FsLWhvbGlkYXlzOiAgICAgICAgICAgICAgICBI b2xpZGF5IEN1c3RvbWl6aW5nLiAobGluZSAgMTkpCiAgLSBob2xpZGF5LW9yaWVudGFsLWhvbGlk YXlzOiAgICAgICAgICAgICBIb2xpZGF5IEN1c3RvbWl6aW5nLiAobGluZSAgIDYpCiAgLSBob2xp ZGF5LW90aGVyLWhvbGlkYXlzOiAgICAgICAgICAgICAgICBIb2xpZGF5IEN1c3RvbWl6aW5nLiAo bGluZSAgMTkpCiAgLSBob2xpZGF5LXNvbGFyLWhvbGlkYXlzOiAgICAgICAgICAgICAgICBIb2xp ZGF5IEN1c3RvbWl6aW5nLiAobGluZSAgIDYpCiAgLSBIT01FLCBlbnZpcm9ubWVudCB2YXJpYWJs ZTogICAgICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgNTEpCiAgLSBob3Jpem9u dGFsLXNjcm9sbC1iYXItbW9kZTogICAgICAgICAgICBTY3JvbGwgQmFycy4gICAgICAgICAobGlu ZSAgODYpCiAgLSBIT1NUTkFNRSwgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgICBHZW5lcmFs IFZhcmlhYmxlcy4gICAobGluZSAgNjEpCiAgLSBob3VyZ2xhc3MtZGVsYXk6ICAgICAgICAgICAg ICAgICAgICAgICBEaXNwbGF5IEN1c3RvbS4gICAgICAobGluZSAgODcpCiAgLSBocy1oaWRlLWNv bW1lbnRzLXdoZW4taGlkaW5nLWFsbDogICAgICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAg MzkpCiAgLSBocy1pc2VhcmNoLW9wZW46ICAgICAgICAgICAgICAgICAgICAgICBIaWRlc2hvdy4g ICAgICAgICAgICAobGluZSAgMzkpCiAgLSBocy1zcGVjaWFsLW1vZGVzLWFsaXN0OiAgICAgICAg ICAgICAgICBIaWRlc2hvdy4gICAgICAgICAgICAobGluZSAgMzkpCiAgLSBoc2Nyb2xsLW1hcmdp bjogICAgICAgICAgICAgICAgICAgICAgICBIb3Jpem9udGFsIFNjcm9sbGluZy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMjEpCiAgLSBoc2Nyb2xsLXN0ZXA6ICAgICAgICAgICAgICAgICAgICAgICAgICBIb3Jpem9u dGFsIFNjcm9sbGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMjcpCiAgLSBpbWFnZS1hbmltYXRlLWxvb3A6ICAg ICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgMzQpCiAgLSBpbWFn ZS1kaXJlZC1leHRlcm5hbC12aWV3ZXI6ICAgICAgICAgICBJbWFnZS1EaXJlZC4gICAgICAgICAo bGluZSAgMzEpCiAgLSBpbWFnZW1hZ2ljay1lbmFibGVkLXR5cGVzOiAgICAgICAgICAgICBGaWxl IENvbnZlbmllbmNlcy4gICAobGluZSAgNDYpCiAgLSBpbWFnZW1hZ2ljay10eXBlcy1pbmhpYml0 OiAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gICAobGluZSAgNDYpCiAgLSBpbWVudS1h dXRvLXJlc2NhbjogICAgICAgICAgICAgICAgICAgICBJbWVudS4gICAgICAgICAgICAgICAobGlu ZSAgMjUpCiAgLSBpbWVudS1hdXRvLXJlc2Nhbi1tYXhvdXQ6ICAgICAgICAgICAgICBJbWVudS4g ICAgICAgICAgICAgICAobGluZSAgMzEpCiAgLSBpbWVudS1zb3J0LWZ1bmN0aW9uOiAgICAgICAg ICAgICAgICAgICBJbWVudS4gICAgICAgICAgICAgICAobGluZSAgMzQpCiAgLSBpbmRlbnQtdGFi cy1tb2RlOiAgICAgICAgICAgICAgICAgICAgICBKdXN0IFNwYWNlcy4gICAgICAgICAobGluZSAg MTIpCiAgLSBpbmRlbnQtdGFicy1tb2RlIChGb3J0cmFuIG1vZGUpOiAgICAgICBGb3JJbmRlbnQg Q29udC4gICAgICAobGluZSAgMTgpCiAgLSBpbmRpY2F0ZS1idWZmZXItYm91bmRhcmllczogICAg ICAgICAgICBEaXNwbGF5aW5nIEJvdW5kYXJpZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA2KQogIC0gaW5kaWNh dGUtZW1wdHktbGluZXM6ICAgICAgICAgICAgICAgICAgVXNlbGVzcyBXaGl0ZXNwYWNlLiAgKGxp bmUgIDI4KQogIC0gaW5mZXJpb3ItbGlzcC1wcm9ncmFtOiAgICAgICAgICAgICAgICAgRXh0ZXJu YWwgTGlzcC4gICAgICAgKGxpbmUgIDExKQogIC0gSU5GT1BBVEgsIGVudmlyb25tZW50IHZhcmlh YmxlOiAgICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgIDYzKQogIC0gaW5oaWJpdC1l b2wtY29udmVyc2lvbjogICAgICAgICAgICAgICAgUmVjb2duaXplIENvZGluZy4gICAgKGxpbmUg IDU2KQogIC0gaW5oaWJpdC1pc28tZXNjYXBlLWRldGVjdGlvbjogICAgICAgICAgUmVjb2duaXpl IENvZGluZy4gICAgKGxpbmUgIDY3KQogIC0gaW5oaWJpdC1zdGFydHVwLWJ1ZmZlci1tZW51OiAg ICAgICAgICAgQWN0aW9uIEFyZ3VtZW50cy4gICAgKGxpbmUgIDEyKQogIC0gaW5oaWJpdC1zdGFy dHVwLXNjcmVlbjogICAgICAgICAgICAgICAgRW50ZXJpbmcgRW1hY3MuICAgICAgKGxpbmUgIDQ3 KQogIC0gaW5pdGlhbC1lbnZpcm9ubWVudDogICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnQu ICAgICAgICAgKGxpbmUgIDE5KQogIC0gaW5pdGlhbC1mcmFtZS1hbGlzdDogICAgICAgICAgICAg ICAgICAgRnJhbWUgUGFyYW1ldGVycy4gICAgKGxpbmUgIDI1KQogIC0gaW5pdGlhbC1zY3JhdGNo LW1lc3NhZ2U6ICAgICAgICAgICAgICAgTGlzcCBJbnRlcmFjdGlvbi4gICAgKGxpbmUgIDE5KQog IC0gaW5wdXQtbWV0aG9kLWhpZ2hsaWdodC1mbGFnOiAgICAgICAgICAgSW5wdXQgTWV0aG9kcy4g ICAgICAgKGxpbmUgIDg4KQogIC0gaW5wdXQtbWV0aG9kLXZlcmJvc2UtZmxhZzogICAgICAgICAg ICAgSW5wdXQgTWV0aG9kcy4gICAgICAgKGxpbmUgIDg4KQogIC0gaW5zZXJ0LWRlZmF1bHQtZGly ZWN0b3J5OiAgICAgICAgICAgICAgTWluaWJ1ZmZlciBGaWxlLiAgICAgKGxpbmUgIDYwKQogIC0g aW50ZXJwcmV0ZXItbW9kZS1hbGlzdDogICAgICAgICAgICAgICAgQ2hvb3NpbmcgTW9kZXMuICAg ICAgKGxpbmUgIDQxKQogIC0gaXNlYXJjaC1hbGxvdy1wcmVmaXg6ICAgICAgICAgICAgICAgICAg Tm90IEV4aXRpbmcgSXNlYXJjaC4gKGxpbmUgIDIyKQogIC0gaXNlYXJjaC1hbGxvdy1zY3JvbGw6 ICAgICAgICAgICAgICAgICAgTm90IEV4aXRpbmcgSXNlYXJjaC4gKGxpbmUgIDM4KQogIC0gaXNl YXJjaC1oaWRlLWltbWVkaWF0ZWx5OiAgICAgICAgICAgICAgU2VhcmNoIEN1c3RvbWl6YXRpb25z LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICA0OCkKICAtIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQ6ICAgICAgICAgICAg ICAgIFNlYXJjaCBDdXN0b21pemF0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjMpCiAgLSBpc2VhcmNoLW1v ZGUtbWFwOiAgICAgICAgICAgICAgICAgICAgICBTcGVjaWFsIElzZWFyY2guICAgICAobGluZSAg ODcpCiAgLSBpc2VhcmNoLXJlc3VtZS1pbi1jb21tYW5kLWhpc3Rvcnk6ICAgICBSZXBldGl0aW9u LiAgICAgICAgICAobGluZSAgMzkpCiAgLSBpc3BlbGwtY29tcGxldGUtd29yZC1kaWN0OiAgICAg ICAgICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxNDcpCiAgLSBpc3BlbGwtZGljdGlv bmFyeTogICAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxMzUp CiAgLSBpc3BlbGwtbG9jYWwtZGljdGlvbmFyeTogICAgICAgICAgICAgICBTcGVsbGluZy4gICAg ICAgICAgICAobGluZSAxMzUpCiAgLSBpc3BlbGwtcGVyc29uYWwtZGljdGlvbmFyeTogICAgICAg ICAgICBTcGVsbGluZy4gICAgICAgICAgICAobGluZSAxMzUpCiAgLSBqZGItbW9kZS1ob29rOiAg ICAgICAgICAgICAgICAgICAgICAgICBHVUQgQ3VzdG9taXphdGlvbi4gICAobGluZSAgIDYpCiAg LSBrZXB0LW5ldy12ZXJzaW9uczogICAgICAgICAgICAgICAgICAgICBCYWNrdXAgRGVsZXRpb24u ICAgICAobGluZSAgMTEpCiAgLSBrZXB0LW9sZC12ZXJzaW9uczogICAgICAgICAgICAgICAgICAg ICBCYWNrdXAgRGVsZXRpb24uICAgICAobGluZSAgMTEpCiAgLSBrZXlib2FyZC1jb2Rpbmctc3lz dGVtOiAgICAgICAgICAgICAgICBUZXJtaW5hbCBDb2RpbmcuICAgICAobGluZSAgMjkpCiAgLSBr aWxsLWJ1ZmZlci1ob29rOiAgICAgICAgICAgICAgICAgICAgICBLaWxsIEJ1ZmZlci4gICAgICAg ICAobGluZSAgNDYpCiAgLSBraWxsLWRvLW5vdC1zYXZlLWR1cGxpY2F0ZXM6ICAgICAgICAgICBL aWxsIE9wdGlvbnMuICAgICAgICAobGluZSAgMTUpCiAgLSBraWxsLXJlYWQtb25seS1vazogICAg ICAgICAgICAgICAgICAgICBLaWxsIE9wdGlvbnMuICAgICAgICAobGluZSAgIDYpCiAgLSBraWxs LXJpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLaWxsIFJpbmcuICAgICAgICAgICAo bGluZSAgMTkpCiAgLSBraWxsLXJpbmctbWF4OiAgICAgICAgICAgICAgICAgICAgICAgICBLaWxs IFJpbmcuICAgICAgICAgICAobGluZSAgMTQpCiAgLSBraWxsLXdob2xlLWxpbmU6ICAgICAgICAg ICAgICAgICAgICAgICBLaWxsaW5nIGJ5IExpbmVzLiAgICAobGluZSAgMzQpCiAgLSBrbWFjcm8t cmluZy1tYXg6ICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZCBNYWNybyBSaW5nLiAobGlu ZSAgNTMpCiAgLSBMQU5HLCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgICBHZW5lcmFs IFZhcmlhYmxlcy4gICAobGluZSAgNzMpCiAgLSBsYXJnZS1maWxlLXdhcm5pbmctdGhyZXNob2xk OiAgICAgICAgICBWaXNpdGluZy4gICAgICAgICAgICAobGluZSAgNjIpCiAgLSBsYXRleC1ibG9j ay1uYW1lczogICAgICAgICAgICAgICAgICAgICBMYVRlWCBFZGl0aW5nLiAgICAgICAobGluZSAg MjEpCiAgLSBsYXRleC1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgICBUZVggTWlzYy4g ICAgICAgICAgICAobGluZSAgIDYpCiAgLSBsYXRleC1ydW4tY29tbWFuZDogICAgICAgICAgICAg ICAgICAgICBUZVggUHJpbnQuICAgICAgICAgICAobGluZSAgNTQpCiAgLSBsYXRpbjEtZGlzcGxh eTogICAgICAgICAgICAgICAgICAgICAgICBVbmRpc3BsYXlhYmxlIENoYXJhY3RlcnMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgIDIwKQogIC0gTENfQUxMLCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgR2Vu ZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgIDY2KQogIC0gTENfQ09MTEFURSwgZW52aXJvbm1lbnQg dmFyaWFibGU6ICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgIDY3KQogIC0gTENfQ1RZ UEUsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxp bmUgIDY4KQogIC0gTENfTUVTU0FHRVMsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgR2VuZXJh bCBWYXJpYWJsZXMuICAgKGxpbmUgIDY5KQogIC0gTENfTU9ORVRBUlksIGVudmlyb25tZW50IHZh cmlhYmxlOiAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgIDcwKQogIC0gTENfTlVNRVJJ QywgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUg IDcxKQogIC0gTENfVElNRSwgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgICAgR2VuZXJhbCBW YXJpYWJsZXMuICAgKGxpbmUgIDcyKQogIC0gbGluZS1tb3ZlLXZpc3VhbDogICAgICAgICAgICAg ICAgICAgICAgTW92aW5nIFBvaW50LiAgICAgICAgKGxpbmUgMTM0KQogIC0gbGluZS1udW1iZXIt ZGlzcGxheS1saW1pdDogICAgICAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAgKGxpbmUgIDQx KQogIC0gbGluZS1udW1iZXItZGlzcGxheS1saW1pdC13aWR0aDogICAgICAgT3B0aW9uYWwgTW9k ZSBMaW5lLiAgKGxpbmUgIDQ3KQogIC0gbGlzcC1ib2R5LWluZGVudDogICAgICAgICAgICAgICAg ICAgICAgTGlzcCBJbmRlbnQuICAgICAgICAgKGxpbmUgIDIyKQogIC0gbGlzcC1pbmRlbnQtb2Zm c2V0OiAgICAgICAgICAgICAgICAgICAgTGlzcCBJbmRlbnQuICAgICAgICAgKGxpbmUgIDE3KQog IC0gbGlzcC1pbnRlcmFjdGlvbi1tb2RlLWhvb2s6ICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4g ICAgICAgKGxpbmUgIDQwKQogIC0gbGlzcC1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAg ICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAgKGxpbmUgIDQwKQogIC0gbGlzdC1jb2xvcnMtc29ydDog ICAgICAgICAgICAgICAgICAgICAgQ29sb3JzLiAgICAgICAgICAgICAgKGxpbmUgIDExKQogIC0g bGlzdC1kaXJlY3RvcnktYnJpZWYtc3dpdGNoZXM6ICAgICAgICAgRGlyZWN0b3JpZXMuICAgICAg ICAgKGxpbmUgIDQwKQogIC0gbGlzdC1kaXJlY3RvcnktdmVyYm9zZS1zd2l0Y2hlczogICAgICAg RGlyZWN0b3JpZXMuICAgICAgICAgKGxpbmUgIDQwKQogIC0gbGlzdC1tYXRjaGluZy1saW5lcy1k ZWZhdWx0LWNvbnRleHQtbGluZXM6IE90aGVyIFJlcGVhdGluZyBTZWFyY2guCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg IDQxKQogIC0gbGlzdC1tYXRjaGluZy1saW5lcy1qdW1wLXRvLWN1cnJlbnQtbGluZTogT3RoZXIg UmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDEpCiAgLSBsb2FkLWRhbmdlcm91cy1saWJy YXJpZXM6ICAgICAgICAgICAgICBMaXNwIExpYnJhcmllcy4gICAgICAobGluZSAgNzcpCiAgLSBs b2FkLXBhdGg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXNwIExpYnJhcmllcy4gICAg ICAobGluZSAgNDIpCiAgLSBsb2FkLXByZWZlci1uZXdlcjogICAgICAgICAgICAgICAgICAgICBM aXNwIExpYnJhcmllcy4gICAgICAobGluZSAgMjEpCiAgLSBsb2NhbGUtY2hhcnNldC1sYW5ndWFn ZS1uYW1lczogICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQ1KQog IC0gbG9jYWxlLWNvZGluZy1zeXN0ZW06ICAgICAgICAgICAgICAgICAgQ29tbXVuaWNhdGlvbiBD b2RpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgIDU4KQogIC0gbG9jYWxlLWxhbmd1YWdlLW5hbWVzOiAgICAgICAg ICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA0NSkKICAtIGxvY2Fs ZS1wcmVmZXJyZWQtY29kaW5nLXN5c3RlbXM6ICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgNjQpCiAgLSBsb2NhdGUtY29tbWFuZDogICAgICAgICAgICAgICAgICAgICAg ICBEaXJlZCBhbmQgRmluZC4gICAgICAobGluZSAgMzcpCiAgLSBMT0dOQU1FLCBlbnZpcm9ubWVu dCB2YXJpYWJsZTogICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgOTQpCiAgLSBs cHItYWRkLXN3aXRjaGVzOiAgICAgICAgICAgICAgICAgICAgICBQcmludGluZy4gICAgICAgICAg ICAobGluZSAgNDIpCiAgLSBscHItY29tbWFuZCAoTVMtRE9TKTogICAgICAgICAgICAgICAgICBX aW5kb3dzIFByaW50aW5nLiAgICAobGluZSAgNzkpCiAgLSBscHItY29tbWFuZHM6ICAgICAgICAg ICAgICAgICAgICAgICAgICBQcmludGluZy4gICAgICAgICAgICAobGluZSAgMjgpCiAgLSBscHIt aGVhZGVycy1zd2l0Y2hlczogICAgICAgICAgICAgICAgICBQcmludGluZy4gICAgICAgICAgICAo bGluZSAgNDIpCiAgLSBscHItaGVhZGVycy1zd2l0Y2hlcyAoTVMtRE9TKTogICAgICAgICBXaW5k b3dzIFByaW50aW5nLiAgICAobGluZSAgNjcpCiAgLSBscHItcHJpbnRlci1zd2l0Y2g6ICAgICAg ICAgICAgICAgICAgICBQcmludGluZy4gICAgICAgICAgICAobGluZSAgMzYpCiAgLSBscHItc3dp dGNoZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludGluZy4gICAgICAgICAgICAobGlu ZSAgMjgpCiAgLSBscHItc3dpdGNoZXMgKE1TLURPUyk6ICAgICAgICAgICAgICAgICBXaW5kb3dz IFByaW50aW5nLiAgICAobGluZSAgNzkpCiAgLSBscy1saXNwLWRpcnMtZmlyc3Q6ICAgICAgICAg ICAgICAgICAgICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAgNTApCiAgLSBscy1saXNwLWVt dWxhdGlvbjogICAgICAgICAgICAgICAgICAgICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAg NjUpCiAgLSBscy1saXNwLWZvcm1hdC10aW1lLWxpc3Q6ICAgICAgICAgICAgICBscyBpbiBMaXNw LiAgICAgICAgICAobGluZSAxMDApCiAgLSBscy1saXNwLWlnbm9yZS1jYXNlOiAgICAgICAgICAg ICAgICAgICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAgNDQpCiAgLSBscy1saXNwLXN1cHBv cnQtc2hlbGwtd2lsZGNhcmRzOiAgICAgICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAgOTUp CiAgLSBscy1saXNwLVVDQS1saWtlLWNvbGxhdGlvbjogICAgICAgICAgICBscyBpbiBMaXNwLiAg ICAgICAgICAobGluZSAgMzYpCiAgLSBscy1saXNwLXVzZS1pbnNlcnQtZGlyZWN0b3J5LXByb2dy YW06ICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAgMjIpCiAgLSBscy1saXNwLXVzZS1sb2Nh bGl6ZWQtdGltZS1mb3JtYXQ6ICAgICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAxMTgpCiAg LSBscy1saXNwLXVzZS1zdHJpbmctY29sbGF0ZTogICAgICAgICAgICBscyBpbiBMaXNwLiAgICAg ICAgICAobGluZSAgMzIpCiAgLSBscy1saXNwLXZlcmJvc2l0eTogICAgICAgICAgICAgICAgICAg ICBscyBpbiBMaXNwLiAgICAgICAgICAobGluZSAgNTUpCiAgLSBtYWdpYy1mYWxsYmFjay1tb2Rl LWFsaXN0OiAgICAgICAgICAgICBDaG9vc2luZyBNb2Rlcy4gICAgICAobGluZSAxMDcpCiAgLSBt YWdpYy1tb2RlLWFsaXN0OiAgICAgICAgICAgICAgICAgICAgICBDaG9vc2luZyBNb2Rlcy4gICAg ICAobGluZSAgNTgpCiAgLSBNQUlMLCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgICBH ZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgOTYpCiAgLSBtYWlsLWNpdGF0aW9uLWhvb2s6ICAg ICAgICAgICAgICAgICAgICBDaXRpbmcgTWFpbC4gICAgICAgICAobGluZSAgMzEpCiAgLSBtYWls LWRlZmF1bHQtaGVhZGVyczogICAgICAgICAgICAgICAgICBNYWlsIEhlYWRlcnMuICAgICAgICAo bGluZSAxMDQpCiAgLSBtYWlsLWRvbnQtcmVwbHktdG8tbmFtZXM6ICAgICAgICAgICAgICBSbWFp bCBSZXBseS4gICAgICAgICAobGluZSAgMzcpCiAgLSBtYWlsLWZyb20tc3R5bGU6ICAgICAgICAg ICAgICAgICAgICAgICBNYWlsIEhlYWRlcnMuICAgICAgICAobGluZSAgMjQpCiAgLSBtYWlsLXBl cnNvbmFsLWFsaWFzLWZpbGU6ICAgICAgICAgICAgICBNYWlsIEFsaWFzZXMuICAgICAgICAobGlu ZSAgIDYpCiAgLSBtYWlsLXNpZ25hdHVyZTogICAgICAgICAgICAgICAgICAgICAgICBNYWlsIFNp Z25hdHVyZS4gICAgICAobGluZSAgMjUpCiAgLSBtYWlsLXNpZ25hdHVyZS1maWxlOiAgICAgICAg ICAgICAgICAgICBNYWlsIFNpZ25hdHVyZS4gICAgICAobGluZSAgMjUpCiAgLSBtYWlsLXVzZXIt YWdlbnQ6ICAgICAgICAgICAgICAgICAgICAgICBNYWlsIE1ldGhvZHMuICAgICAgICAobGluZSAg MTIpCiAgLSBtYWpvci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWpvciBNb2Rl cy4gICAgICAgICAobGluZSAgMzkpCiAgLSBtYWtlLWJhY2t1cC1maWxlLW5hbWUtZnVuY3Rpb246 ICAgICAgICBCYWNrdXAgTmFtZXMuICAgICAgICAobGluZSAgNDgpCiAgLSBtYWtlLWJhY2t1cC1m aWxlczogICAgICAgICAgICAgICAgICAgICBCYWNrdXAuICAgICAgICAgICAgICAobGluZSAgIDYp CiAgLSBtYWtlLXBvaW50ZXItaW52aXNpYmxlOiAgICAgICAgICAgICAgICBEaXNwbGF5IEN1c3Rv bS4gICAgICAobGluZSAgOTMpCiAgLSBNYW4tc3dpdGNoZXM6ICAgICAgICAgICAgICAgICAgICAg ICAgICBNYW4gUGFnZS4gICAgICAgICAgICAobGluZSAgMzIpCiAgLSBtYXJrLWV2ZW4taWYtaW5h Y3RpdmU6ICAgICAgICAgICAgICAgICBVc2luZyBSZWdpb24uICAgICAgICAobGluZSAgNDEpCiAg LSBtYXJrLXJpbmctbWF4OiAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrIFJpbmcuICAgICAg ICAgICAobGluZSAgNDEpCiAgLSBtYXgtbWluaS13aW5kb3ctaGVpZ2h0OiAgICAgICAgICAgICAg ICBNaW5pYnVmZmVyIEVkaXQuICAgICAobGluZSAgNDUpCiAgLSBtYXhpbXVtLXNjcm9sbC1tYXJn aW46ICAgICAgICAgICAgICAgICBBdXRvIFNjcm9sbGluZy4gICAgICAobGluZSAgNTQpCiAgLSBt ZW51LWJhci1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBNZW51IEJhcnMuICAgICAgICAg ICAobGluZSAgIDYpCiAgLSBtZXNzYWdlLWtpbGwtYnVmZmVyLW9uLWV4aXQ6ICAgICAgICAgICBN YWlsIFNlbmRpbmcuICAgICAgICAobGluZSAgMTMpCiAgLSBtZXNzYWdlLWxvZy1tYXg6ICAgICAg ICAgICAgICAgICAgICAgICBFY2hvIEFyZWEuICAgICAgICAgICAobGluZSAgMzQpCiAgLSBtZXNz YWdlLW1vZGUtaG9vazogICAgICAgICAgICAgICAgICAgICBNYWlsIE1pc2MuICAgICAgICAgICAo bGluZSAgNDIpCiAgLSBtZXNzYWdlLXNlbmQtaG9vazogICAgICAgICAgICAgICAgICAgICBNYWls IFNlbmRpbmcuICAgICAgICAobGluZSAgMjMpCiAgLSBtZXNzYWdlLXNldHVwLWhvb2s6ICAgICAg ICAgICAgICAgICAgICBNYWlsIE1pc2MuICAgICAgICAgICAobGluZSAgNDIpCiAgLSBtZXNzYWdl LXNpZ25hdHVyZTogICAgICAgICAgICAgICAgICAgICBNYWlsIFNpZ25hdHVyZS4gICAgICAobGlu ZSAgIDYpCiAgLSBtZXNzYWdlLXNpZ25hdHVyZS1maWxlOiAgICAgICAgICAgICAgICBNYWlsIFNp Z25hdHVyZS4gICAgICAobGluZSAgIDYpCiAgLSBNSCwgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAg ICAgICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAgOTgpCiAgLSBtaWRuaWdodC1o b29rOiAgICAgICAgICAgICAgICAgICAgICAgICBLaWxsIEJ1ZmZlci4gICAgICAgICAobGluZSAg NjEpCiAgLSBtaWRuaWdodC1tb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBLaWxsIEJ1ZmZl ci4gICAgICAgICAobGluZSAgNjEpCiAgLSBtaW5pYnVmZmVyLWVsZGVmLXNob3J0ZW4tZGVmYXVs dDogICAgICBCYXNpYyBNaW5pYnVmZmVyLiAgICAobGluZSAgMjMpCiAgLSBtaW5pYnVmZmVyLWxv Y2FsLWNvbXBsZXRpb24tbWFwOiAgICAgICBNaW5pYnVmZmVyIE1hcHMuICAgICAobGluZSAgIDYp CiAgLSBtaW5pYnVmZmVyLWxvY2FsLWZpbGVuYW1lLWNvbXBsZXRpb24tbWFwOiBNaW5pYnVmZmVy IE1hcHMuICAobGluZSAgIDYpCiAgLSBtaW5pYnVmZmVyLWxvY2FsLWZpbGVuYW1lLW11c3QtbWF0 Y2gtbWFwOiBNaW5pYnVmZmVyIE1hcHMuICAobGluZSAgIDYpCiAgLSBtaW5pYnVmZmVyLWxvY2Fs LW1hcDogICAgICAgICAgICAgICAgICBNaW5pYnVmZmVyIE1hcHMuICAgICAobGluZSAgIDYpCiAg LSBtaW5pYnVmZmVyLWxvY2FsLW11c3QtbWF0Y2gtbWFwOiAgICAgICBNaW5pYnVmZmVyIE1hcHMu ICAgICAobGluZSAgIDYpCiAgLSBtaW5pYnVmZmVyLWxvY2FsLW5zLW1hcDogICAgICAgICAgICAg ICBNaW5pYnVmZmVyIE1hcHMuICAgICAobGluZSAgIDYpCiAgLSBtaW5pYnVmZmVyLXByb21wdC1w cm9wZXJ0aWVzOiAgICAgICAgICBTdGFuZGFyZCBGYWNlcy4gICAgICAobGluZSAxMTApCiAgLSBt b2RlLWxpbmUtaW4tbm9uLXNlbGVjdGVkLXdpbmRvd3M6ICAgICBPcHRpb25hbCBNb2RlIExpbmUu ICAobGluZSAgOTkpCiAgLSBtb2RlLXJlcXVpcmUtZmluYWwtbmV3bGluZTogICAgICAgICAgICBD dXN0b21pemUgU2F2ZS4gICAgICAobGluZSAgMTYpCiAgLSBtb2RlLXNwZWNpZmljLW1hcDogICAg ICAgICAgICAgICAgICAgICBQcmVmaXggS2V5bWFwcy4gICAgICAobGluZSAgMzgpCiAgLSBtb3Vz ZS0xLWNsaWNrLWluLW5vbi1zZWxlY3RlZC13aW5kb3dzOiBNb3VzZSBSZWZlcmVuY2VzLiAgICAo bGluZSAgMzgpCiAgLSBtb3VzZS1hdXRvc2VsZWN0LXdpbmRvdzogICAgICAgICAgICAgICBPdGhl ciBXaW5kb3cuICAgICAgICAobGluZSAgMzYpCiAgLSBtb3VzZS1hdm9pZGFuY2UtbW9kZTogICAg ICAgICAgICAgICAgICBNb3VzZSBBdm9pZGFuY2UuICAgICAobGluZSAgMTUpCiAgLSBtb3VzZS1k cmFnLWFuZC1kcm9wLXJlZ2lvbjogICAgICAgICAgICBEcmFnIGFuZCBEcm9wLiAgICAgICAobGlu ZSAgMjEpCiAgLSBtb3VzZS1kcmFnLWFuZC1kcm9wLXJlZ2lvbi1jdXQtd2hlbi1idWZmZXJzLWRp ZmZlcjogRHJhZyBhbmQgRHJvcC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzEpCiAgLSBtb3VzZS1kcmFnLWFuZC1k cm9wLXJlZ2lvbi1zaG93LWN1cnNvcjogRHJhZyBhbmQgRHJvcC4gICAgICAobGluZSAgMzEpCiAg LSBtb3VzZS1kcmFnLWFuZC1kcm9wLXJlZ2lvbi1zaG93LXRvb2x0aXA6IERyYWcgYW5kIERyb3Au ICAgICAobGluZSAgMzEpCiAgLSBtb3VzZS1kcmFnLWNvcHktcmVnaW9uOiAgICAgICAgICAgICAg ICBNb3VzZSBDb21tYW5kcy4gICAgICAobGluZSAgNDQpCiAgLSBtb3VzZS1oaWdobGlnaHQ6ICAg ICAgICAgICAgICAgICAgICAgICBNb3VzZSBSZWZlcmVuY2VzLiAgICAobGluZSAgIDYpCiAgLSBt b3VzZS1zY3JvbGwtbWluLWxpbmVzOiAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAg ICAobGluZSAgNDgpCiAgLSBtb3VzZS13aGVlbC1mbGlwLWRpcmVjdGlvbjogICAgICAgICAgICBN b3VzZSBDb21tYW5kcy4gICAgICAobGluZSAxMTMpCiAgLSBtb3VzZS13aGVlbC1mb2xsb3ctbW91 c2U6ICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAgICAobGluZSAxMDUpCiAgLSBtb3Vz ZS13aGVlbC1wcm9ncmVzc2l2ZS1zcGVlZDogICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAgICAo bGluZSAxMDUpCiAgLSBtb3VzZS13aGVlbC1zY3JvbGwtYW1vdW50OiAgICAgICAgICAgICBNb3Vz ZSBDb21tYW5kcy4gICAgICAobGluZSAxMDUpCiAgLSBtb3VzZS13aGVlbC10aWx0LXNjcm9sbDog ICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAgICAobGluZSAxMTMpCiAgLSBtb3VzZS15 YW5rLWF0LXBvaW50OiAgICAgICAgICAgICAgICAgICBNb3VzZSBDb21tYW5kcy4gICAgICAobGlu ZSAgNjIpCiAgLSBOQU1FOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNjIFZh cmlhYmxlcy4gICAgICAobGluZSAgMTQpCiAgLSBOQU1FLCBlbnZpcm9ubWVudCB2YXJpYWJsZTog ICAgICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAxMDApCiAgLSBuZXR3b3JrLXNl Y3VyaXR5LWxldmVsOiAgICAgICAgICAgICAgICBOZXR3b3JrIFNlY3VyaXR5LiAgICAobGluZSAg MTIpCiAgLSBuZXh0LWVycm9yLWhpZ2hsaWdodDogICAgICAgICAgICAgICAgICBDb21waWxhdGlv biBNb2RlLiAgICAobGluZSAgNDgpCiAgLSBuZXh0LWxpbmUtYWRkLW5ld2xpbmVzOiAgICAgICAg ICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgICAobGluZSAxNTYpCiAgLSBuZXh0LXNjcmVlbi1j b250ZXh0LWxpbmVzOiAgICAgICAgICAgICBTY3JvbGxpbmcuICAgICAgICAgICAobGluZSAgNDUp CiAgLSBOTlRQU0VSVkVSLCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICBHZW5lcmFsIFZhcmlh Ymxlcy4gICAobGluZSAxMDMpCiAgLSBub2JyZWFrLWNoYXItZGlzcGxheTogICAgICAgICAgICAg ICAgICBUZXh0IERpc3BsYXkuICAgICAgICAobGluZSAgMzMpCiAgLSBub3JtYWwtZXJhc2UtaXMt YmFja3NwYWNlOiAgICAgICAgICAgICBERUwgRG9lcyBOb3QgRGVsZXRlLiAobGluZSAgNDMpCiAg LSBucm9mZi1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgICBOcm9mZiBNb2RlLiAgICAg ICAgICAobGluZSAgIDYpCiAgLSBucy1hbHRlcm5hdGUtbW9kaWZpZXI6ICAgICAgICAgICAgICAg ICBNYWMgLyBHTlVzdGVwIEJhc2ljcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTIpCiAgLSBucy1wb3AtdXAtZnJh bWVzOiAgICAgICAgICAgICAgICAgICAgICBNYWMgLyBHTlVzdGVwIEV2ZW50cy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgMTMpCiAgLSBucy1yaWdodC1hbHRlcm5hdGUtbW9kaWZpZXI6ICAgICAgICAgICBNYWMgLyBH TlVzdGVwIEJhc2ljcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgMTIpCiAgLSBucy1zdGFuZGFyZC1mb250c2V0LXNw ZWM6ICAgICAgICAgICAgICBEZWZpbmluZyBGb250c2V0cy4gICAobGluZSAgIDYpCiAgLSBuc20t c2F2ZS1ob3N0LW5hbWVzOiAgICAgICAgICAgICAgICAgICBOZXR3b3JrIFNlY3VyaXR5LiAgICAo bGluZSAgOTcpCiAgLSBuc20tc2V0dGluZ3MtZmlsZTogICAgICAgICAgICAgICAgICAgICBOZXR3 b3JrIFNlY3VyaXR5LiAgICAobGluZSAgOTMpCiAgLSBvcGVuLXBhcmVuLWluLWNvbHVtbi0wLWlz LWRlZnVuLXN0YXJ0OiBMZWZ0IE1hcmdpbiBQYXJlbi4gICAobGluZSAgMzgpCiAgLSBvcmctYWdl bmRhLWZpbGVzOiAgICAgICAgICAgICAgICAgICAgICBPcmcgT3JnYW5pemVyLiAgICAgICAobGlu ZSAgMjApCiAgLSBvcmctcHVibGlzaC1wcm9qZWN0LWFsaXN0OiAgICAgICAgICAgICBPcmcgQXV0 aG9yaW5nLiAgICAgICAobGluZSAgMTMpCiAgLSBvcmctdG9kby1rZXl3b3JkczogICAgICAgICAg ICAgICAgICAgICBPcmcgT3JnYW5pemVyLiAgICAgICAobGluZSAgIDYpCiAgLSBPUkdBTklaQVRJ T04sIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAx MDUpCiAgLSBvdXRsaW5lLWxldmVsOiAgICAgICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIEZv cm1hdC4gICAgICAobGluZSAgNTYpCiAgLSBvdXRsaW5lLW1pbm9yLW1vZGUtcHJlZml4OiAgICAg ICAgICAgICBPdXRsaW5lIE1vZGUuICAgICAgICAobGluZSAgIDYpCiAgLSBvdXRsaW5lLW1vZGUt aG9vazogICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIE1vZGUuICAgICAgICAobGluZSAgIDYp CiAgLSBvdXRsaW5lLXJlZ2V4cDogICAgICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIEZvcm1h dC4gICAgICAobGluZSAgMzcpCiAgLSBvdmVyZmxvdy1uZXdsaW5lLWludG8tZnJpbmdlOiAgICAg ICAgICBGcmluZ2VzLiAgICAgICAgICAgICAobGluZSAgMzMpCiAgLSBvdmVybGluZS1tYXJnaW46 ICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IEN1c3RvbS4gICAgICAobGluZSAxMTMpCiAg LSBwYWNrYWdlLWFyY2hpdmUtcHJpb3JpdGllczogICAgICAgICAgICBQYWNrYWdlIEluc3RhbGxh dGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgNjQpCiAgLSBwYWNrYWdlLWFyY2hpdmVzOiAgICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlIEluc3RhbGxhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTkpCiAgLSBwYWNrYWdl LWNoZWNrLXNpZ25hdHVyZTogICAgICAgICAgICAgICBQYWNrYWdlIEluc3RhbGxhdGlvbi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgNDgpCiAgLSBwYWNrYWdlLWRpcmVjdG9yeS1saXN0OiAgICAgICAgICAgICAgICBQ YWNrYWdlIEZpbGVzLiAgICAgICAobGluZSAgMjEpCiAgLSBwYWNrYWdlLWVuYWJsZS1hdC1zdGFy dHVwOiAgICAgICAgICAgICBQYWNrYWdlIEluc3RhbGxhdGlvbi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgODgpCiAg LSBwYWNrYWdlLWxvYWQtbGlzdDogICAgICAgICAgICAgICAgICAgICBQYWNrYWdlIEluc3RhbGxh dGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAxMDUpCiAgLSBwYWNrYWdlLW1lbnUtYXN5bmM6ICAgICAgICAgICAg ICAgICAgICBQYWNrYWdlIE1lbnUuICAgICAgICAobGluZSAgNzYpCiAgLSBwYWNrYWdlLW1lbnUt aGlkZS1sb3ctcHJpb3JpdHk6ICAgICAgICBQYWNrYWdlIEluc3RhbGxhdGlvbi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgNjQpCiAgLSBwYWNrYWdlLXBpbm5lZC1wYWNrYWdlczogICAgICAgICAgICAgICBQYWNrYWdl IEluc3RhbGxhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgNTgpCiAgLSBwYWNrYWdlLXVuc2lnbmVkLWFyY2hp dmVzOiAgICAgICAgICAgICBQYWNrYWdlIEluc3RhbGxhdGlvbi4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDgpCiAg LSBwYWNrYWdlLXVzZXItZGlyOiAgICAgICAgICAgICAgICAgICAgICBQYWNrYWdlIEZpbGVzLiAg ICAgICAobGluZSAgMTUpCiAgLSBwYWdlLWRlbGltaXRlcjogICAgICAgICAgICAgICAgICAgICAg ICBQYWdlcy4gICAgICAgICAgICAgICAobGluZSAgNjEpCiAgLSBwYXJhZ3JhcGgtc2VwYXJhdGU6 ICAgICAgICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAgICAgICAgICAobGluZSAgNDkpCiAgLSBw YXJhZ3JhcGgtc3RhcnQ6ICAgICAgICAgICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAgICAgICAg ICAobGluZSAgNDkpCiAgLSBQQVRILCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgICBH ZW5lcmFsIFZhcmlhYmxlcy4gICAobGluZSAxMDgpCiAgLSBwZGItbW9kZS1ob29rOiAgICAgICAg ICAgICAgICAgICAgICAgICBHVUQgQ3VzdG9taXphdGlvbi4gICAobGluZSAgIDYpCiAgLSBwZXJs ZGItbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgICAgICBHVUQgQ3VzdG9taXphdGlvbi4gICAo bGluZSAgIDYpCiAgLSBwaWN0dXJlLW1vZGUtaG9vazogICAgICAgICAgICAgICAgICAgICBQaWN0 dXJlIE1vZGUuICAgICAgICAobGluZSAgNDApCiAgLSBwaWN0dXJlLXRhYi1jaGFyczogICAgICAg ICAgICAgICAgICAgICBUYWJzIGluIFBpY3R1cmUuICAgICAobGluZSAgIDYpCiAgLSBwbGFpbi10 ZXgtbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgICBUZVggTWlzYy4gICAgICAgICAgICAobGlu ZSAgIDYpCiAgLSBwb3AtdXAtZnJhbWVzOiAgICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3cg Q2hvaWNlLiAgICAgICAobGluZSAgMjMpCiAgLSBQUkVMT0FEX1dJTlNPQ0s6ICAgICAgICAgICAg ICAgICAgICAgICBNaXNjIFZhcmlhYmxlcy4gICAgICAobGluZSAgNDEpCiAgLSBwcmludC1yZWdp b24tZnVuY3Rpb24gKE1TLURPUyk6ICAgICAgICBXaW5kb3dzIFByaW50aW5nLiAgICAobGluZSAg NzkpCiAgLSBwcmludGVyLW5hbWU6ICAgICAgICAgICAgICAgICAgICAgICAgICBQcmludGluZy4g ICAgICAgICAgICAobGluZSAgMzYpCiAgLSBwcmludGVyLW5hbWUsIChNUy1ET1MvTVMtV2luZG93 cyk6ICAgICBXaW5kb3dzIFByaW50aW5nLiAgICAobGluZSAgMTkpCiAgLSBwcm9nLW1vZGUtaG9v azogICAgICAgICAgICAgICAgICAgICAgICBNYWpvciBNb2Rlcy4gICAgICAgICAobGluZSAgNzEp CiAgLSBwcy1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAgICBQb3N0U2NyaXB0IFZh cmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgNDUpCiAgLSBwcy1mb250LWluZm8tZGF0YWJhc2U6ICAgICAg ICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDUpCiAgLSBwcy1m b250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgNDUpCiAgLSBwcy1sYW5kc2NhcGUtbW9kZTogICAgICAgICAgICAgICAgICAg ICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzgpCiAgLSBwcy1scHItY29tbWFu ZDogICAgICAgICAgICAgICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgIDYpCiAgLSBwcy1scHItY29tbWFuZCAoTVMtRE9TKTogICAgICAgICAgICAgICBXaW5kb3dz IFByaW50aW5nLiAgICAobGluZSAgODcpCiAgLSBwcy1scHItc3dpdGNoZXM6ICAgICAgICAgICAg ICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDYpCiAgLSBwcy1s cHItc3dpdGNoZXMgKE1TLURPUyk6ICAgICAgICAgICAgICBXaW5kb3dzIFByaW50aW5nLiAgICAo bGluZSAgODcpCiAgLSBwcy1tdWx0aWJ5dGUtYnVmZmVyOiAgICAgICAgICAgICAgICAgICBQb3N0 U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTIpCiAgLSBwcy1udW1iZXItb2YtY29sdW1u czogICAgICAgICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDIp CiAgLSBwcy1wYWdlLWRpbWVuc2lvbnMtZGF0YWJhc2U6ICAgICAgICAgICBQb3N0U2NyaXB0IFZh cmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgMzIpCiAgLSBwcy1wYXBlci10eXBlOiAgICAgICAgICAgICAg ICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMzIpCiAgLSBwcy1w cmludC1jb2xvci1wOiAgICAgICAgICAgICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgMTcpCiAgLSBwcy1wcmludC1oZWFkZXI6ICAgICAgICAgICAgICAgICAgICAg ICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTQpCiAgLSBwcy1wcmludGVyLW5h bWU6ICAgICAgICAgICAgICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgIDYpCiAgLSBwcy1wcmludGVyLW5hbWUgKE1TLURPUyk6ICAgICAgICAgICAgICBXaW5kb3dz IFByaW50aW5nLiAgICAobGluZSAgODcpCiAgLSBwcy11c2UtZmFjZS1iYWNrZ3JvdW5kOiAgICAg ICAgICAgICAgICBQb3N0U2NyaXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMjcpCiAgLSBQV0Qs IGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgICAgICBHZW5lcmFsIFZhcmlhYmxlcy4gICAo bGluZSAxMTIpCiAgLSBxdWFpbC1hY3RpdmF0ZS1ob29rOiAgICAgICAgICAgICAgICAgICBJbnB1 dCBNZXRob2RzLiAgICAgICAobGluZSAgOTYpCiAgLSBxdWVyeS1yZXBsYWNlLWZyb20tdG8tc2Vw YXJhdG9yOiAgICAgICBRdWVyeSBSZXBsYWNlLiAgICAgICAobGluZSAgMjUpCiAgLSBxdWVyeS1y ZXBsYWNlLWhpZ2hsaWdodDogICAgICAgICAgICAgICBRdWVyeSBSZXBsYWNlLiAgICAgICAobGlu ZSAgMzQpCiAgLSBxdWVyeS1yZXBsYWNlLWxhenktaGlnaGxpZ2h0OiAgICAgICAgICBRdWVyeSBS ZXBsYWNlLiAgICAgICAobGluZSAgMzQpCiAgLSBxdWVyeS1yZXBsYWNlLXNob3ctcmVwbGFjZW1l bnQ6ICAgICAgICBRdWVyeSBSZXBsYWNlLiAgICAgICAobGluZSAgMzQpCiAgLSBxdWVyeS1yZXBs YWNlLXNraXAtcmVhZC1vbmx5OiAgICAgICAgICBRdWVyeSBSZXBsYWNlLiAgICAgICAobGluZSAg NDUpCiAgLSByZWFkLWJ1ZmZlci1jb21wbGV0aW9uLWlnbm9yZS1jYXNlOiAgICBDb21wbGV0aW9u IE9wdGlvbnMuICAobGluZSAgMTEpCiAgLSByZWFkLWZpbGUtbmFtZS1jb21wbGV0aW9uLWlnbm9y ZS1jYXNlOiBDb21wbGV0aW9uIE9wdGlvbnMuICAobGluZSAgMTEpCiAgLSByZWFkLW1haWwtY29t bWFuZDogICAgICAgICAgICAgICAgICAgICBNYWlsIE1ldGhvZHMuICAgICAgICAobGluZSAgMjYp CiAgLSByZWFkLXF1b3RlZC1jaGFyLXJhZGl4OiAgICAgICAgICAgICAgICBJbnNlcnRpbmcgVGV4 dC4gICAgICAobGluZSAgNTUpCiAgLSByZWNlbnRlci1wb3NpdGlvbnM6ICAgICAgICAgICAgICAg ICAgICBSZWNlbnRlcmluZy4gICAgICAgICAobGluZSAgMjkpCiAgLSByZWNlbnRlci1yZWRpc3Bs YXk6ICAgICAgICAgICAgICAgICAgICBSZWNlbnRlcmluZy4gICAgICAgICAobGluZSAgNDcpCiAg LSByZWNlbnRmLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNl cy4gICAobGluZSAgMTApCiAgLSByZWdleHAtc2VhcmNoLXJpbmctbWF4OiAgICAgICAgICAgICAg ICBSZWdleHAgU2VhcmNoLiAgICAgICAobGluZSAgMjgpCiAgLSByZWdpc3Rlci1wcmV2aWV3LWRl bGF5OiAgICAgICAgICAgICAgICBSZWdpc3RlcnMuICAgICAgICAgICAobGluZSAgMjgpCiAgLSBy ZWdpc3Rlci1zZXBhcmF0b3I6ICAgICAgICAgICAgICAgICAgICBUZXh0IFJlZ2lzdGVycy4gICAg ICAobGluZSAgNDEpCiAgLSByZXBsYWNlLWxheC13aGl0ZXNwYWNlOiAgICAgICAgICAgICAgICBS ZXBsYWNlbWVudCBhbmQgTGF4IE1hdGNoZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDExKQogIC0gcmVwbGFjZS1y ZWdleHAtbGF4LXdoaXRlc3BhY2U6ICAgICAgICAgUmVwbGFjZW1lbnQgYW5kIExheCBNYXRjaGVz LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAxNykKICAtIFJFUExZVE8sIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAg ICAgIEdlbmVyYWwgVmFyaWFibGVzLiAgIChsaW5lIDExNSkKICAtIHJlcXVpcmUtZmluYWwtbmV3 bGluZTogICAgICAgICAgICAgICAgIEN1c3RvbWl6ZSBTYXZlLiAgICAgIChsaW5lICAgNikKICAt IHJlc2l6ZS1taW5pLXdpbmRvd3M6ICAgICAgICAgICAgICAgICAgIE1pbmlidWZmZXIgRWRpdC4g ICAgIChsaW5lICAzNCkKICAtIHJldmVydC13aXRob3V0LXF1ZXJ5OiAgICAgICAgICAgICAgICAg IFJldmVydGluZy4gICAgICAgICAgIChsaW5lICAyNykKICAtIHJtYWlsLWF1dG9tYXRpYy1mb2xk ZXItZGlyZWN0aXZlczogICAgIFJtYWlsIE91dHB1dC4gICAgICAgIChsaW5lICA3NCkKICAtIHJt YWlsLWRlbGV0ZS1hZnRlci1vdXRwdXQ6ICAgICAgICAgICAgIFJtYWlsIE91dHB1dC4gICAgICAg IChsaW5lICA1MSkKICAtIHJtYWlsLWRlbGV0ZS1tZXNzYWdlLWhvb2s6ICAgICAgICAgICAgIFJt YWlsIERlbGV0aW9uLiAgICAgIChsaW5lICAzNikKICAtIHJtYWlsLWRpc3BsYXllZC1oZWFkZXJz OiAgICAgICAgICAgICAgIFJtYWlsIERpc3BsYXkuICAgICAgIChsaW5lICAyMSkKICAtIHJtYWls LWVkaXQtbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgIFJtYWlsIEVkaXRpbmcuICAgICAgIChs aW5lICAyNikKICAtIHJtYWlsLWVuYWJsZS1taW1lOiAgICAgICAgICAgICAgICAgICAgIFJtYWls IERpc3BsYXkuICAgICAgIChsaW5lICAzOCkKICAtIHJtYWlsLWVuYWJsZS1taW1lLWNvbXBvc2lu ZzogICAgICAgICAgIFJtYWlsIFJlcGx5LiAgICAgICAgIChsaW5lICA3NykKICAtIHJtYWlsLWZp bGUtY29kaW5nLXN5c3RlbTogICAgICAgICAgICAgIFJtYWlsIENvZGluZy4gICAgICAgIChsaW5l ICAzMikKICAtIHJtYWlsLWZpbGUtbmFtZTogICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIEJh c2ljcy4gICAgICAgIChsaW5lICAgNikKICAtIHJtYWlsLWhpZ2hsaWdodGVkLWhlYWRlcnM6ICAg ICAgICAgICAgIFJtYWlsIERpc3BsYXkuICAgICAgIChsaW5lICAzMCkKICAtIHJtYWlsLWlnbm9y ZWQtaGVhZGVyczogICAgICAgICAgICAgICAgIFJtYWlsIERpc3BsYXkuICAgICAgIChsaW5lICAy MSkKICAtIHJtYWlsLWluYm94LWxpc3Q6ICAgICAgICAgICAgICAgICAgICAgIFJtYWlsIEZpbGVz LiAgICAgICAgIChsaW5lICA0MykKICAtIHJtYWlsLW1haWwtbmV3LWZyYW1lOiAgICAgICAgICAg ICAgICAgIFJtYWlsIFJlcGx5LiAgICAgICAgIChsaW5lIDEwOSkKICAtIHJtYWlsLW1ib3gtZm9y bWF0OiAgICAgICAgICAgICAgICAgICAgIFJtYWlsIEluYm94LiAgICAgICAgIChsaW5lICA0MSkK ICAtIHJtYWlsLW1pbWUtcHJlZmVyLWh0bWw6ICAgICAgICAgICAgICAgIFJtYWlsIERpc3BsYXku ICAgICAgIChsaW5lICA3MykKICAtIHJtYWlsLW1vZGUtaG9vazogICAgICAgICAgICAgICAgICAg ICAgIFJtYWlsLiAgICAgICAgICAgICAgIChsaW5lICAgNikKICAtIHJtYWlsLW1vdmVtYWlsLWZs YWdzOiAgICAgICAgICAgICAgICAgIFJlbW90ZSBNYWlsYm94ZXMuICAgIChsaW5lICA1MCkKICAt IHJtYWlsLW1vdmVtYWlsLXByb2dyYW06ICAgICAgICAgICAgICAgIE1vdmVtYWlsLiAgICAgICAg ICAgIChsaW5lICA5NykKICAtIHJtYWlsLW1vdmVtYWlsLXNlYXJjaC1wYXRoOiAgICAgICAgICAg IE1vdmVtYWlsLiAgICAgICAgICAgIChsaW5lICA5NykKICAtIHJtYWlsLW5vbmlnbm9yZWQtaGVh ZGVyczogICAgICAgICAgICAgIFJtYWlsIERpc3BsYXkuICAgICAgIChsaW5lICAyMSkKICAtIHJt YWlsLW91dHB1dC1maWxlLWFsaXN0OiAgICAgICAgICAgICAgIFJtYWlsIE91dHB1dC4gICAgICAg IChsaW5lICA2MCkKICAtIHJtYWlsLXByZXNlcnZlLWluYm94OiAgICAgICAgICAgICAgICAgIFJt YWlsIEluYm94LiAgICAgICAgIChsaW5lICA0OCkKICAtIHJtYWlsLXByaW1hcnktaW5ib3gtbGlz dDogICAgICAgICAgICAgIFJtYWlsIEluYm94LiAgICAgICAgIChsaW5lICAxNCkKICAtIHJtYWls LXJlZGlzcGxheS1zdW1tYXJ5OiAgICAgICAgICAgICAgIFJtYWlsIFN1bW1hcnkgRWRpdC4gIChs aW5lICA4OCkKICAtIHJtYWlsLXJlbW90ZS1wYXNzd29yZDogICAgICAgICAgICAgICAgIFJlbW90 ZSBNYWlsYm94ZXMuICAgIChsaW5lICAzOSkKICAtIHJtYWlsLXJlbW90ZS1wYXNzd29yZC1yZXF1 aXJlZDogICAgICAgIFJlbW90ZSBNYWlsYm94ZXMuICAgIChsaW5lICAzOSkKICAtIHJtYWlsLXJl dHJ5LWlnbm9yZWQtaGVhZGVyczogICAgICAgICAgIFJtYWlsIFJlcGx5LiAgICAgICAgIChsaW5l ICA1NykKICAtIHJtYWlsLXNlY29uZGFyeS1maWxlLWRpcmVjdG9yeTogICAgICAgIFJtYWlsIEZp bGVzLiAgICAgICAgIChsaW5lICAzMykKICAtIHJtYWlsLXNlY29uZGFyeS1maWxlLXJlZ2V4cDog ICAgICAgICAgIFJtYWlsIEZpbGVzLiAgICAgICAgIChsaW5lICAzMykKICAtIHJtYWlsLXN1bW1h cnktbGluZS1jb3VudC1mbGFnOiAgICAgICAgIFJtYWlsIE1ha2UgU3VtbWFyeS4gIChsaW5lICA2 MikKICAtIHJtYWlsLXN1bW1hcnktc2Nyb2xsLWJldHdlZW4tbWVzc2FnZXM6IFJtYWlsIFN1bW1h cnkgRWRpdC4gIChsaW5lICAxNikKICAtIHJtYWlsLXN1bW1hcnktd2luZG93LXNpemU6ICAgICAg ICAgICAgIFJtYWlsIE1ha2UgU3VtbWFyeS4gIChsaW5lICA2MikKICAtIHNhZmUtbG9jYWwtZXZh bC1mb3JtczogICAgICAgICAgICAgICAgIFNhZmUgRmlsZSBWYXJpYWJsZXMuIChsaW5lICA0NikK ICAtIHNhZmUtbG9jYWwtdmFyaWFibGUtdmFsdWVzOiAgICAgICAgICAgIFNhZmUgRmlsZSBWYXJp YWJsZXMuIChsaW5lICAyNykKICAtIHNhbWUtd2luZG93LWJ1ZmZlci1uYW1lczogICAgICAgICAg ICAgIFdpbmRvdyBDaG9pY2UuICAgICAgIChsaW5lICAxMSkKICAtIHNhbWUtd2luZG93LXJlZ2V4 cHM6ICAgICAgICAgICAgICAgICAgIFdpbmRvdyBDaG9pY2UuICAgICAgIChsaW5lICAxMSkKICAt IHNhdmUtYWJicmV2czogICAgICAgICAgICAgICAgICAgICAgICAgIFNhdmluZyBBYmJyZXZzLiAg ICAgIChsaW5lICA0MCkKICAtIHNhdmUtaW50ZXJwcm9ncmFtLXBhc3RlLWJlZm9yZS1raWxsOiAg IENsaXBib2FyZC4gICAgICAgICAgIChsaW5lICAxNCkKICAtIHNhdmUtc29tZS1idWZmZXJzLWRl ZmF1bHQtcHJlZGljYXRlOiAgIFNhdmUgQ29tbWFuZHMuICAgICAgIChsaW5lICA2MikKICAtIFNB VkVESVIsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgIEdlbmVyYWwgVmFyaWFibGVzLiAg IChsaW5lIDExOCkKICAtIHNjaGVtZS1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgIFBy b2dyYW0gTW9kZXMuICAgICAgIChsaW5lICA0MCkKICAtIHNjcm9sbC1hbGwtbW9kZTogICAgICAg ICAgICAgICAgICAgICAgIFdpbmRvdyBDb252ZW5pZW5jZS4gIChsaW5lICAyOSkKICAtIHNjcm9s bC1iYXItYWRqdXN0LXRodW1iLXBvcnRpb246ICAgICAgIFNjcm9sbCBCYXJzLiAgICAgICAgIChs aW5lICA0MCkKICAtIHNjcm9sbC1iYXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgIFNjcm9s bCBCYXJzLiAgICAgICAgIChsaW5lICA4OSkKICAtIHNjcm9sbC1iYXItbW9kZTogICAgICAgICAg ICAgICAgICAgICAgIFNjcm9sbCBCYXJzLiAgICAgICAgIChsaW5lICAyNikKICAtIHNjcm9sbC1i YXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgIFNjcm9sbCBCYXJzLiAgICAgICAgIChsaW5l ICAzNSkKICAtIHNjcm9sbC1jb25zZXJ2YXRpdmVseTogICAgICAgICAgICAgICAgIEF1dG8gU2Ny b2xsaW5nLiAgICAgIChsaW5lICAxMSkKICAtIHNjcm9sbC1kb3duOiAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNjcm9sbGluZy4gICAgICAgICAgIChsaW5lICA4NCkKICAtIHNjcm9sbC1kb3du LWFnZ3Jlc3NpdmVseTogICAgICAgICAgICAgIEF1dG8gU2Nyb2xsaW5nLiAgICAgIChsaW5lICAy OSkKICAtIHNjcm9sbC1lcnJvci10b3AtYm90dG9tOiAgICAgICAgICAgICAgIFNjcm9sbGluZy4g ICAgICAgICAgIChsaW5lICA1MikKICAtIHNjcm9sbC1tYXJnaW46ICAgICAgICAgICAgICAgICAg ICAgICAgIEF1dG8gU2Nyb2xsaW5nLiAgICAgIChsaW5lICA1NCkKICAtIHNjcm9sbC1wcmVzZXJ2 ZS1zY3JlZW4tcG9zaXRpb246ICAgICAgIFNjcm9sbGluZy4gICAgICAgICAgIChsaW5lICA1OSkK ICAtIHNjcm9sbC1zdGVwOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dG8gU2Nyb2xsaW5n LiAgICAgIChsaW5lICAyMikKICAtIHNjcm9sbC11cDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNjcm9sbGluZy4gICAgICAgICAgIChsaW5lICA4NCkKICAtIHNjcm9sbC11cC1hZ2dyZXNz aXZlbHk6ICAgICAgICAgICAgICAgIEF1dG8gU2Nyb2xsaW5nLiAgICAgIChsaW5lICAyOSkKICAt IHNkYi1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgICAgIEdVRCBDdXN0b21pemF0aW9u LiAgIChsaW5lICAgNikKICAtIHNlYXJjaC1leGl0LW9wdGlvbjogICAgICAgICAgICAgICAgICAg IE5vdCBFeGl0aW5nIElzZWFyY2guIChsaW5lICAxMikKICAtIHNlYXJjaC1oaWdobGlnaHQ6ICAg ICAgICAgICAgICAgICAgICAgIFNlYXJjaCBDdXN0b21pemF0aW9ucy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTkp CiAgLSBzZWFyY2gtaW52aXNpYmxlOiAgICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2li aWxpdHkuICAobGluZSAgODQpCiAgLSBzZWFyY2gtbm9uaW5jcmVtZW50YWwtaW5zdGVhZDogICAg ICAgICBTZWFyY2ggQ3VzdG9taXphdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDQxKQogIC0gc2VhcmNoLXJp bmctbWF4OiAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IElzZWFyY2guICAgICAgKGxpbmUg IDQ0KQogIC0gc2VhcmNoLXNsb3ctc3BlZWQ6ICAgICAgICAgICAgICAgICAgICAgU2VhcmNoIEN1 c3RvbWl6YXRpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICA1NSkKICAtIHNlYXJjaC1zbG93LXdpbmRvdy1saW5l czogICAgICAgICAgICAgIFNlYXJjaCBDdXN0b21pemF0aW9ucy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNTUpCiAg LSBzZWFyY2gtdXBwZXItY2FzZTogICAgICAgICAgICAgICAgICAgICBMYXggU2VhcmNoLiAgICAg ICAgICAobGluZSAgNDQpCiAgLSBzZWFyY2gtd2hpdGVzcGFjZS1yZWdleHA6ICAgICAgICAgICAg ICBMYXggU2VhcmNoLiAgICAgICAgICAobGluZSAgMTUpCiAgLSBzZWxlY3QtYWN0aXZlLXJlZ2lv bnM6ICAgICAgICAgICAgICAgICBQcmltYXJ5IFNlbGVjdGlvbi4gICAobGluZSAgMjApCiAgLSBz ZWxlY3QtZW5hYmxlLWNsaXBib2FyZDogICAgICAgICAgICAgICBDbGlwYm9hcmQuICAgICAgICAg ICAobGluZSAgMzApCiAgLSBzZWxlY3QtZW5hYmxlLXByaW1hcnk6ICAgICAgICAgICAgICAgICBD bGlwYm9hcmQuICAgICAgICAgICAobGluZSAgNDYpCiAgLSBzZWxlY3RpdmUtZGlzcGxheS1lbGxp cHNlczogICAgICAgICAgICBTZWxlY3RpdmUgRGlzcGxheS4gICAobGluZSAgMjcpCiAgLSBzZW5k LW1haWwtZnVuY3Rpb246ICAgICAgICAgICAgICAgICAgICBNYWlsIFNlbmRpbmcuICAgICAgICAo bGluZSAgMjgpCiAgLSBzZW5kbWFpbC1jb2Rpbmctc3lzdGVtOiAgICAgICAgICAgICAgICBPdXRw dXQgQ29kaW5nLiAgICAgICAobGluZSAgNDApCiAgLSBzZW50ZW5jZS1lbmQ6ICAgICAgICAgICAg ICAgICAgICAgICAgICBTZW50ZW5jZXMuICAgICAgICAgICAobGluZSAgNTgpCiAgLSBzZW50ZW5j ZS1lbmQtZG91YmxlLXNwYWNlOiAgICAgICAgICAgICBTZW50ZW5jZXMuICAgICAgICAgICAobGlu ZSAgNDkpCiAgLSBzZW50ZW5jZS1lbmQtd2l0aG91dC1wZXJpb2Q6ICAgICAgICAgICBTZW50ZW5j ZXMuICAgICAgICAgICAobGluZSAgNjUpCiAgLSBzZXJ2ZXItYXV0aC1kaXI6ICAgICAgICAgICAg ICAgICAgICAgICBUQ1AgRW1hY3Mgc2VydmVyLiAgICAobGluZSAgMzIpCiAgLSBzZXJ2ZXItYXV0 aC1rZXk6ICAgICAgICAgICAgICAgICAgICAgICBUQ1AgRW1hY3Mgc2VydmVyLiAgICAobGluZSAg MjApCiAgLSBzZXJ2ZXItaG9zdDogICAgICAgICAgICAgICAgICAgICAgICAgICBUQ1AgRW1hY3Mg c2VydmVyLiAgICAobGluZSAgMTUpCiAgLSBzZXJ2ZXIta2lsbC1uZXctYnVmZmVyczogICAgICAg ICAgICAgICBJbnZva2luZyBlbWFjc2NsaWVudC4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDYpCiAgLSBzZXJ2ZXIt bmFtZTogICAgICAgICAgICAgICAgICAgICAgICAgICBFbWFjcyBTZXJ2ZXIuICAgICAgICAobGlu ZSAgNjcpCiAgLSBzZXJ2ZXItcG9ydDogICAgICAgICAgICAgICAgICAgICAgICAgICBUQ1AgRW1h Y3Mgc2VydmVyLiAgICAobGluZSAgMTUpCiAgLSBzZXJ2ZXItdGVtcC1maWxlLXJlZ2V4cDogICAg ICAgICAgICAgICBJbnZva2luZyBlbWFjc2NsaWVudC4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNDYpCiAgLSBzZXJ2 ZXItdXNlLXRjcDogICAgICAgICAgICAgICAgICAgICAgICBUQ1AgRW1hY3Mgc2VydmVyLiAgICAo bGluZSAgIDYpCiAgLSBzZXJ2ZXItd2luZG93OiAgICAgICAgICAgICAgICAgICAgICAgICBJbnZv a2luZyBlbWFjc2NsaWVudC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgNjApCiAgLSBzZXQtbGFuZ3VhZ2UtZW52aXJv bm1lbnQtaG9vazogICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDg1 KQogIC0gc2V0LW1hcmstY29tbWFuZC1yZXBlYXQtcG9wOiAgICAgICAgICAgTWFyayBSaW5nLiAg ICAgICAgICAgKGxpbmUgIDMyKQogIC0gc2dtbC14bWwtbW9kZTogICAgICAgICAgICAgICAgICAg ICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAgKGxpbmUgIDg2KQogIC0gU0hFTEwsIGVudmlyb25t ZW50IHZhcmlhYmxlOiAgICAgICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgMTIxKQog IC0gc2hlbGwtY2QtcmVnZXhwOiAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5IFRyYWNr aW5nLiAgKGxpbmUgICA2KQogIC0gc2hlbGwtY29tbWFuZC1kZWZhdWx0LWVycm9yLWJ1ZmZlcjog ICAgU2luZ2xlIFNoZWxsLiAgICAgICAgKGxpbmUgIDc0KQogIC0gc2hlbGwtY29tbWFuZC1kb250 LWVyYXNlLWJ1ZmZlcjogICAgICAgU2luZ2xlIFNoZWxsLiAgICAgICAgKGxpbmUgIDc5KQogIC0g c2hlbGwtY29tbWFuZC1yZWdleHA6ICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAg ICAgKGxpbmUgMTAwKQogIC0gc2hlbGwtY29tcGxldGlvbi1leGVjb25seTogICAgICAgICAgICAg U2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDQzKQogIC0gc2hlbGwtY29tcGxldGlvbi1maWdu b3JlOiAgICAgICAgICAgICAgU2hlbGwgT3B0aW9ucy4gICAgICAgKGxpbmUgIDQ3KQogIC0gc2hl bGwtZmlsZS1uYW1lOiAgICAgICAgICAgICAgICAgICAgICAgU2luZ2xlIFNoZWxsLiAgICAgICAg KGxpbmUgIDY1KQogIC0gc2hlbGwtaW5wdXQtcmluZy1maWxlLW5hbWU6ICAgICAgICAgICAgU2hl bGwgUmluZy4gICAgICAgICAgKGxpbmUgIDc2KQogIC0gc2hlbGwtcG9wZC1yZWdleHA6ICAgICAg ICAgICAgICAgICAgICAgRGlyZWN0b3J5IFRyYWNraW5nLiAgKGxpbmUgICA2KQogIC0gc2hlbGwt cHJvbXB0LXBhdHRlcm46ICAgICAgICAgICAgICAgICAgU2hlbGwgUHJvbXB0cy4gICAgICAgKGxp bmUgIDIxKQogIC0gc2hlbGwtcHVzaGQtcmVnZXhwOiAgICAgICAgICAgICAgICAgICAgRGlyZWN0 b3J5IFRyYWNraW5nLiAgKGxpbmUgICA2KQogIC0gc2hvdy1wYXJlbi1oaWdobGlnaHQtb3BlbnBh cmVuOiAgICAgICAgTWF0Y2hpbmcuICAgICAgICAgICAgKGxpbmUgIDQyKQogIC0gc2hvdy1wYXJl bi1zdHlsZTogICAgICAgICAgICAgICAgICAgICAgTWF0Y2hpbmcuICAgICAgICAgICAgKGxpbmUg IDQ2KQogIC0gc2hvdy1wYXJlbi13aGVuLXBvaW50LWluLXBlcmlwaGVyeTogICAgTWF0Y2hpbmcu ICAgICAgICAgICAgKGxpbmUgIDU2KQogIC0gc2hvdy1wYXJlbi13aGVuLXBvaW50LWluc2lkZS1w YXJlbjogICAgTWF0Y2hpbmcuICAgICAgICAgICAgKGxpbmUgIDUzKQogIC0gc2hvdy10cmFpbGlu Zy13aGl0ZXNwYWNlOiAgICAgICAgICAgICAgVXNlbGVzcyBXaGl0ZXNwYWNlLiAgKGxpbmUgICA2 KQogIC0gc2xpdGV4LW1vZGUtaG9vazogICAgICAgICAgICAgICAgICAgICAgVGVYIE1pc2MuICAg ICAgICAgICAgKGxpbmUgICA2KQogIC0gc21hbGwtdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5OiAg ICAgICAgQmFja3VwLiAgICAgICAgICAgICAgKGxpbmUgIDMxKQogIC0gU01UUFNFUlZFUiwgZW52 aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUgMTI0KQog IC0gc29ydC1mb2xkLWNhc2U6ICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZy4gICAgICAg ICAgICAgKGxpbmUgMTE2KQogIC0gc29ydC1udW1lcmljLWJhc2U6ICAgICAgICAgICAgICAgICAg ICAgU29ydGluZy4gICAgICAgICAgICAgKGxpbmUgIDIzKQogIC0gc3BsaXQtaGVpZ2h0LXRocmVz aG9sZDogICAgICAgICAgICAgICAgV2luZG93IENob2ljZS4gICAgICAgKGxpbmUgIDMxKQogIC0g c3BsaXQtd2lkdGgtdGhyZXNob2xkOiAgICAgICAgICAgICAgICAgV2luZG93IENob2ljZS4gICAg ICAgKGxpbmUgIDMxKQogIC0gc3BsaXQtd2luZG93LWtlZXAtcG9pbnQ6ICAgICAgICAgICAgICAg U3BsaXQgV2luZG93LiAgICAgICAgKGxpbmUgIDI1KQogIC0gc3RhbmRhcmQtZm9udHNldC1zcGVj OiAgICAgICAgICAgICAgICAgRGVmaW5pbmcgRm9udHNldHMuICAgKGxpbmUgICA2KQogIC0gc3Rh bmRhcmQtaW5kZW50OiAgICAgICAgICAgICAgICAgICAgICAgRW5yaWNoZWQgSW5kZW50YXRpb24u CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgIDI4KQogIC0gc3VnZ2VzdC1rZXktYmluZGluZ3M6ICAgICAgICAgICAgICAg ICAgTS14LiAgICAgICAgICAgICAgICAgKGxpbmUgIDUyKQogIC0gdGFiLWFsd2F5cy1pbmRlbnQ6 ICAgICAgICAgICAgICAgICAgICAgSW5kZW50IENvbnZlbmllbmNlLiAgKGxpbmUgICA2KQogIC0g dGFiLXN0b3AtbGlzdDogICAgICAgICAgICAgICAgICAgICAgICAgVGFiIFN0b3BzLiAgICAgICAg ICAgKGxpbmUgICA2KQogIC0gdGFiLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VGV4dCBEaXNwbGF5LiAgICAgICAgKGxpbmUgIDExKQogIC0gdGFibGUtY2VsbC1ob3Jpem9udGFs LWNoYXJzOiAgICAgICAgICAgVGFibGUgRGVmaW5pdGlvbi4gICAgKGxpbmUgIDE3KQogIC0gdGFi bGUtY2VsbC1pbnRlcnNlY3Rpb24tY2hhcjogICAgICAgICAgVGFibGUgRGVmaW5pdGlvbi4gICAg KGxpbmUgIDIwKQogIC0gdGFibGUtY2VsbC12ZXJ0aWNhbC1jaGFyOiAgICAgICAgICAgICAgVGFi bGUgRGVmaW5pdGlvbi4gICAgKGxpbmUgIDE0KQogIC0gdGFibGUtZGV0ZWN0LWNlbGwtYWxpZ25t ZW50OiAgICAgICAgICAgQ2VsbCBKdXN0aWZpY2F0aW9uLiAgKGxpbmUgIDI0KQogIC0gdGFncy1j YXNlLWZvbGQtc2VhcmNoOiAgICAgICAgICAgICAgICAgSWRlbnRpZmllciBTZWFyY2guICAgKGxp bmUgIDY2KQogIC0gdGFncy1maWxlLW5hbWU6ICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0 IFRhZ3MgVGFibGUuICAgKGxpbmUgIDEyKQogIC0gdGFncy10YWJsZS1saXN0OiAgICAgICAgICAg ICAgICAgICAgICAgU2VsZWN0IFRhZ3MgVGFibGUuICAgKGxpbmUgIDI1KQogIC0gVEVNUCwgZW52 aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgICAgICAgR2VuZXJhbCBWYXJpYWJsZXMuICAgKGxpbmUg MTM3KQogIC0gdGVtcC1idWZmZXItbWF4LWhlaWdodDogICAgICAgICAgICAgICAgVGVtcG9yYXJ5 IERpc3BsYXlzLiAgKGxpbmUgIDM2KQogIC0gdGVtcC1idWZmZXItbWF4LXdpZHRoOiAgICAgICAg ICAgICAgICAgVGVtcG9yYXJ5IERpc3BsYXlzLiAgKGxpbmUgIDM2KQogIC0gdGVtcG9yYXJ5LWZp bGUtZGlyZWN0b3J5OiAgICAgICAgICAgICAgQmFja3VwLiAgICAgICAgICAgICAgKGxpbmUgIDMx KQogIC0gVEVSTSwgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgICAgICAgR2VuZXJhbCBWYXJp YWJsZXMuICAgKGxpbmUgMTI3KQogIC0gVEVSTSwgZW52aXJvbm1lbnQgdmFyaWFibGUsIGFuZCBk aXNwbGF5IGJ1Z3M6IENoZWNrbGlzdC4gICAgKGxpbmUgMTE1KQogIC0gVEVSTSwgZW52aXJvbm1l bnQgdmFyaWFibGUsIGluIGNvbXBpbGF0aW9uIG1vZGU6IENvbXBpbGF0aW9uIFNoZWxsLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAyOSkKICAtIFRFUk0sIGVudmlyb25tZW50IHZhcmlhYmxlLCBpbiBzdWItc2hlbGw6 IFNoZWxsIE9wdGlvbnMuICAgIChsaW5lICA2NCkKICAtIHRlcm0tZmlsZS1hbGlhc2VzOiAgICAg ICAgICAgICAgICAgICAgIFRlcm1pbmFsIEluaXQuICAgICAgIChsaW5lICAgNikKICAtIHRlcm0t ZmlsZS1wcmVmaXg6ICAgICAgICAgICAgICAgICAgICAgIFRlcm1pbmFsIEluaXQuICAgICAgIChs aW5lICAyOSkKICAtIFRFUk1DQVAsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgIEdlbmVy YWwgVmFyaWFibGVzLiAgIChsaW5lIDEzMikKICAtIHRleC1iaWJ0ZXgtY29tbWFuZDogICAgICAg ICAgICAgICAgICAgIFRlWCBQcmludC4gICAgICAgICAgIChsaW5lIDEzOCkKICAtIHRleC1kZWZh dWx0LW1vZGU6ICAgICAgICAgICAgICAgICAgICAgIFRlWCBNb2RlLiAgICAgICAgICAgIChsaW5l ICAxMikKICAtIHRleC1kaXJlY3Rvcnk6ICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCBQcmlu dC4gICAgICAgICAgIChsaW5lICA0NikKICAtIHRleC1kdmktcHJpbnQtY29tbWFuZDogICAgICAg ICAgICAgICAgIFRlWCBQcmludC4gICAgICAgICAgIChsaW5lICA1NCkKICAtIHRleC1kdmktdmll dy1jb21tYW5kOiAgICAgICAgICAgICAgICAgIFRlWCBQcmludC4gICAgICAgICAgIChsaW5lICA1 NCkKICAtIHRleC1tYWluLWZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCBQcmludC4g ICAgICAgICAgIChsaW5lIDEyOSkKICAtIHRleC1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAg ICAgICAgIFRlWCBNaXNjLiAgICAgICAgICAgIChsaW5lICAgNikKICAtIHRleC1wcmludC1maWxl LWV4dGVuc2lvbjogICAgICAgICAgICAgIFRlWCBQcmludC4gICAgICAgICAgIChsaW5lICA1NCkK ICAtIHRleC1ydW4tY29tbWFuZDogICAgICAgICAgICAgICAgICAgICAgIFRlWCBQcmludC4gICAg ICAgICAgIChsaW5lICA1NCkKICAtIHRleC1zaGVsbC1ob29rOiAgICAgICAgICAgICAgICAgICAg ICAgIFRlWCBNaXNjLiAgICAgICAgICAgIChsaW5lICAgNikKICAtIHRleC1zdGFydC1jb21tYW5k czogICAgICAgICAgICAgICAgICAgIFRlWCBQcmludC4gICAgICAgICAgIChsaW5lIDEyNSkKICAt IHRleC1zdGFydC1vcHRpb25zOiAgICAgICAgICAgICAgICAgICAgIFRlWCBQcmludC4gICAgICAg ICAgIChsaW5lIDEyMikKICAtIHRleHQtbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgICAgICAg IFRleHQgTW9kZS4gICAgICAgICAgIChsaW5lICA0MikKICAtIHRpbWVjbG9jay1hc2stYmVmb3Jl LWV4aXRpbmc6ICAgICAgICAgIFRpbWUgSW50ZXJ2YWxzLiAgICAgIChsaW5lICAyNykKICAtIHRp bWVjbG9jay1maWxlOiAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgSW50ZXJ2YWxzLiAgICAg IChsaW5lICAzNCkKICAtIHRpbWVjbG9jay1tb2RlbGluZS1kaXNwbGF5OiAgICAgICAgICAgIFRp bWUgSW50ZXJ2YWxzLiAgICAgIChsaW5lICAyMikKICAtIFRNUCwgZW52aXJvbm1lbnQgdmFyaWFi bGU6ICAgICAgICAgICAgIEdlbmVyYWwgVmFyaWFibGVzLiAgIChsaW5lIDEzNikKICAtIFRNUERJ UiwgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgICAgIEdlbmVyYWwgVmFyaWFibGVzLiAgIChs aW5lIDEzNSkKICAtIHRvb2wtYmFyLW1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2wg QmFycy4gICAgICAgICAgIChsaW5lICAxNCkKICAtIHRvb2wtYmFyLXN0eWxlOiAgICAgICAgICAg ICAgICAgICAgICAgIFRvb2wgQmFycy4gICAgICAgICAgIChsaW5lICAxOSkKICAtIHRvb2x0aXAt ZGVsYXk6ICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2x0aXBzLiAgICAgICAgICAgIChsaW5l ICAyMCkKICAtIHRvb2x0aXAtZnJhbWUtcGFyYW1ldGVyczogICAgICAgICAgICAgIFRvb2x0aXBz LiAgICAgICAgICAgIChsaW5lICA0MykKICAtIHRvb2x0aXAtaGlkZS1kZWxheTogICAgICAgICAg ICAgICAgICAgIFRvb2x0aXBzLiAgICAgICAgICAgIChsaW5lICAyOSkKICAtIHRvb2x0aXAtc2hv cnQtZGVsYXk6ICAgICAgICAgICAgICAgICAgIFRvb2x0aXBzLiAgICAgICAgICAgIChsaW5lICAy NCkKICAtIHRvb2x0aXAteC1vZmZzZXQ6ICAgICAgICAgICAgICAgICAgICAgIFRvb2x0aXBzLiAg ICAgICAgICAgIChsaW5lICAzMykKICAtIHRvb2x0aXAteS1vZmZzZXQ6ICAgICAgICAgICAgICAg ICAgICAgIFRvb2x0aXBzLiAgICAgICAgICAgIChsaW5lICAzNCkKICAtIHRyYWNrLWVvbDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgIChsaW5lIDE1MSkK ICAtIHRydW5jYXRlLWxpbmVzOiAgICAgICAgICAgICAgICAgICAgICAgIExpbmUgVHJ1bmNhdGlv bi4gICAgIChsaW5lICAxNCkKICAtIHRydW5jYXRlLXBhcnRpYWwtd2lkdGgtd2luZG93czogICAg ICAgIFNwbGl0IFdpbmRvdy4gICAgICAgIChsaW5lICAzOSkKICAtIHR0eS1tZW51LW9wZW4tdXNl LXRtbTogICAgICAgICAgICAgICAgIE1lbnUgQmFyLiAgICAgICAgICAgIChsaW5lICAzMikKICAt IHR0eS1zZXR1cC1ob29rOiAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1pbmFsIEluaXQuICAg ICAgIChsaW5lICAzNCkKICAtIFRaLCBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgICAg IEdlbmVyYWwgVmFyaWFibGVzLiAgIChsaW5lIDE0NCkKICAtIHVuZGVybGluZS1taW5pbXVtLW9m ZnNldDogICAgICAgICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lIDEwMCkKICAtIHVu ZG8tbGltaXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuZG8uICAgICAgICAgICAgICAg IChsaW5lICA2NikKICAtIHVuZG8tb3V0ZXItbGltaXQ6ICAgICAgICAgICAgICAgICAgICAgIFVu ZG8uICAgICAgICAgICAgICAgIChsaW5lICA2NikKICAtIHVuZG8tc3Ryb25nLWxpbWl0OiAgICAg ICAgICAgICAgICAgICAgIFVuZG8uICAgICAgICAgICAgICAgIChsaW5lICA2NikKICAtIHVuaWJ5 dGUtZGlzcGxheS12aWEtbGFuZ3VhZ2UtZW52aXJvbm1lbnQ6IFVuaWJ5dGUgTW9kZS4gICAgIChs aW5lICAxOCkKICAtIHVuaXF1aWZ5LWJ1ZmZlci1uYW1lLXN0eWxlOiAgICAgICAgICAgIFVuaXF1 aWZ5LiAgICAgICAgICAgIChsaW5lICAxNCkKICAtIHVzZS1kaWFsb2ctYm94OiAgICAgICAgICAg ICAgICAgICAgICAgIERpYWxvZyBCb3hlcy4gICAgICAgIChsaW5lICAgNikKICAtIHVzZS1maWxl LWRpYWxvZzogICAgICAgICAgICAgICAgICAgICAgIERpYWxvZyBCb3hlcy4gICAgICAgIChsaW5l ICAxNykKICAtIFVTRVIsIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgICAgIEdlbmVyYWwg VmFyaWFibGVzLiAgIChsaW5lIDE1MCkKICAtIHVzZXItZnVsbC1uYW1lOiAgICAgICAgICAgICAg ICAgICAgICAgIE1haWwgSGVhZGVycy4gICAgICAgIChsaW5lICAxNCkKICAtIHVzZXItbWFpbC1h ZGRyZXNzOiAgICAgICAgICAgICAgICAgICAgIE1haWwgSGVhZGVycy4gICAgICAgIChsaW5lICAx NCkKICAtIHVzZXItbWFpbC1hZGRyZXNzLCBpbiBpbml0IGZpbGU6ICAgICAgIEluaXQgRXhhbXBs ZXMuICAgICAgIChsaW5lICAzNCkKICAtIHVzZXItbWFpbC1hZGRyZXNzLCBpbml0aWFsaXphdGlv bjogICAgIEdlbmVyYWwgVmFyaWFibGVzLiAgIChsaW5lICAzOSkKICAtIHZjLWFubm90YXRlLWJh Y2tncm91bmQtbW9kZTogICAgICAgICAgIE9sZCBSZXZpc2lvbnMuICAgICAgIChsaW5lICA3OCkK ICAtIHZjLUJBQ0tFTkQtaGVhZGVyOiAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gSGVhZGVy cy4gICAgIChsaW5lICAyMCkKICAtIHZjLWNvbW1hbmQtbWVzc2FnZXM6ICAgICAgICAgICAgICAg ICAgIEdlbmVyYWwgVkMgT3B0aW9ucy4gIChsaW5lICAyNCkKICAtIHZjLWNvbnN1bHQtaGVhZGVy czogICAgICAgICAgICAgICAgICAgIFZlcnNpb24gSGVhZGVycy4gICAgIChsaW5lICAxMikKICAt IHZjLWN2cy1nbG9iYWwtc3dpdGNoZXM6ICAgICAgICAgICAgICAgIENWUyBPcHRpb25zLiAgICAg ICAgIChsaW5lICAgNikKICAtIHZjLWN2cy1zdGF5LWxvY2FsOiAgICAgICAgICAgICAgICAgICAg IENWUyBPcHRpb25zLiAgICAgICAgIChsaW5lICAxMSkKICAtIHZjLWRpZmYtc3dpdGNoZXM6ICAg ICAgICAgICAgICAgICAgICAgIE9sZCBSZXZpc2lvbnMuICAgICAgIChsaW5lICA2MSkKICAtIHZj LWRpcmVjdG9yeS1leGNsdXNpb24tbGlzdDogICAgICAgICAgIFZDIERpcmVjdG9yeSBCdWZmZXIu IChsaW5lICA0NykKICAtIHZjLWZvbGxvdy1zeW1saW5rczogICAgICAgICAgICAgICAgICAgIEdl bmVyYWwgVkMgT3B0aW9ucy4gIChsaW5lICAxMSkKICAtIHZjLWhhbmRsZWQtYmFja2VuZHM6ICAg ICAgICAgICAgICAgICAgIEN1c3RvbWl6aW5nIFZDLiAgICAgIChsaW5lICAgNikKICAtIHZjLWxv Zy1tb2RlLWhvb2s6ICAgICAgICAgICAgICAgICAgICAgIExvZyBCdWZmZXIuICAgICAgICAgIChs aW5lICAxMikKICAtIHZjLWxvZy1zaG93LWxpbWl0OiAgICAgICAgICAgICAgICAgICAgIFZDIENo YW5nZSBMb2cuICAgICAgIChsaW5lIDEwNSkKICAtIHZjLW1ha2UtYmFja3VwLWZpbGVzOiAgICAg ICAgICAgICAgICAgIEdlbmVyYWwgVkMgT3B0aW9ucy4gIChsaW5lICAgNikKICAtIHZjLXJldmVy dC1zaG93LWRpZmY6ICAgICAgICAgICAgICAgICAgIFZDIFVuZG8uICAgICAgICAgICAgIChsaW5l ICAxMCkKICAtIHZjLXN0YXRpYy1oZWFkZXItYWxpc3Q6ICAgICAgICAgICAgICAgIFZlcnNpb24g SGVhZGVycy4gICAgIChsaW5lICAzMSkKICAtIHZjLXN1cHByZXNzLWNvbmZpcm06ICAgICAgICAg ICAgICAgICAgIEdlbmVyYWwgVkMgT3B0aW9ucy4gIChsaW5lICAyMCkKICAtIHZlcnNpb24tY29u dHJvbDogICAgICAgICAgICAgICAgICAgICAgIEJhY2t1cCBOYW1lcy4gICAgICAgIChsaW5lICAy MSkKICAtIFZFUlNJT05fQ09OVFJPTCwgZW52aXJvbm1lbnQgdmFyaWFibGU6IEdlbmVyYWwgVmFy aWFibGVzLiAgIChsaW5lIDE1MykKICAtIHZpZXctcmVhZC1vbmx5OiAgICAgICAgICAgICAgICAg ICAgICAgIE1pc2MgQnVmZmVyLiAgICAgICAgIChsaW5lICAyNCkKICAtIHZpc2libGUtYmVsbDog ICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXkgQ3VzdG9tLiAgICAgIChsaW5lICA3NikK ICAtIHZpc2libGUtY3Vyc29yOiAgICAgICAgICAgICAgICAgICAgICAgIEN1cnNvciBEaXNwbGF5 LiAgICAgIChsaW5lICAgNikKICAtIHZpc3VhbC1vcmRlci1jdXJzb3ItbW92ZW1lbnQ6ICAgICAg ICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgOTMpCiAgLSB3MzItYWx0LWlz LW1ldGE6ICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAg MTkpCiAgLSB3MzItYXBwcy1tb2RpZmllcjogICAgICAgICAgICAgICAgICAgICBXaW5kb3dzIEtl eWJvYXJkLiAgICAobGluZSAgODkpCiAgLSB3MzItY2Fwc2xvY2staXMtc2hpZnRsb2NrOiAgICAg ICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAgNzQpCiAgLSB3MzItY2hhcnNldC1p bmZvLWFsaXN0OiAgICAgICAgICAgICAgICBXaW5kb3dzIEZvbnRzLiAgICAgICAobGluZSAgNjEp CiAgLSB3MzItZW5hYmxlLWNhcHMtbG9jazogICAgICAgICAgICAgICAgICBXaW5kb3dzIEtleWJv YXJkLiAgICAobGluZSAgODApCiAgLSB3MzItZW5hYmxlLW51bS1sb2NrOiAgICAgICAgICAgICAg ICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAgODQpCiAgLSB3MzItZ2V0LXRydWUtZmls ZS1hdHRyaWJ1dGVzOiAgICAgICAgICBXaW5kb3dzIEZpbGVzLiAgICAgICAobGluZSAgMTYpCiAg LSB3MzItZ3JhYi1mb2N1cy1vbi1yYWlzZTogICAgICAgICAgICAgICBXaW5kb3dzIE1pc2MuICAg ICAgICAobGluZSAgMTgpCiAgLSB3MzItbHdpbmRvdy1tb2RpZmllcjogICAgICAgICAgICAgICAg ICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAgOTUpCiAgLSB3MzItbW91c2UtYnV0dG9uLXRv bGVyYW5jZTogICAgICAgICAgICBXaW5kb3dzIE1vdXNlLiAgICAgICAobGluZSAgIDkpCiAgLSB3 MzItcGFzcy1hbHQtdG8tc3lzdGVtOiAgICAgICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAg ICAobGluZSAxMDkpCiAgLSB3MzItcGFzcy1leHRyYS1tb3VzZS1idXR0b25zLXRvLXN5c3RlbTog V2luZG93cyBNb3VzZS4gICAgICAobGluZSAgMTUpCiAgLSB3MzItcGFzcy1sd2luZG93LXRvLXN5 c3RlbTogICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAxMjApCiAgLSB3MzIt cGFzcy1yd2luZG93LXRvLXN5c3RlbTogICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAo bGluZSAxMjApCiAgLSB3MzItcGlwZS1idWZmZXItc2l6ZTogICAgICAgICAgICAgICAgICBXaW5k b3dzIFByb2Nlc3Nlcy4gICAobGluZSAgNTcpCiAgLSB3MzItcXVvdGUtcHJvY2Vzcy1hcmdzOiAg ICAgICAgICAgICAgICBXaW5kb3dzIFByb2Nlc3Nlcy4gICAobGluZSAgNTEpCiAgLSB3MzItcmVj b2duaXplLWFsdGdyOiAgICAgICAgICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGlu ZSAxMjgpCiAgLSB3MzItcndpbmRvdy1tb2RpZmllcjogICAgICAgICAgICAgICAgICBXaW5kb3dz IEtleWJvYXJkLiAgICAobGluZSAgOTUpCiAgLSB3MzItc2Nyb2xsLWxvY2stbW9kaWZpZXI6ICAg ICAgICAgICAgICBXaW5kb3dzIEtleWJvYXJkLiAgICAobGluZSAgOTUpCiAgLSB3MzItc3RhbmRh cmQtZm9udHNldC1zcGVjOiAgICAgICAgICAgICBEZWZpbmluZyBGb250c2V0cy4gICAobGluZSAg IDYpCiAgLSB3MzItc3dhcC1tb3VzZS1idXR0b25zOiAgICAgICAgICAgICAgICBXaW5kb3dzIE1v dXNlLiAgICAgICAobGluZSAgMTgpCiAgLSB3MzItdW5pY29kZS1maWxlbmFtZXM6ICAgICAgICAg ICAgICAgICBGaWxlIE5hbWUgQ29kaW5nLiAgICAobGluZSAgMjgpCiAgLSB3MzItdXNlLXZpc2li bGUtc3lzdGVtLWNhcmV0OiAgICAgICAgICBXaW5kb3dzIE1pc2MuICAgICAgICAobGluZSAgIDkp CiAgLSB3aGljaC1mdW5jLW1vZGVzOiAgICAgICAgICAgICAgICAgICAgICBXaGljaCBGdW5jdGlv bi4gICAgICAobGluZSAgMTApCiAgLSB3aGl0ZXNwYWNlLWJpZy1pbmRlbnQtcmVnZXhwOiAgICAg ICAgICBVc2VsZXNzIFdoaXRlc3BhY2UuICAobGluZSAgNzQpCiAgLSB3aGl0ZXNwYWNlLWxpbmUt Y29sdW1uOiAgICAgICAgICAgICAgICBVc2VsZXNzIFdoaXRlc3BhY2UuICAobGluZSAgNjQpCiAg LSB3aGl0ZXNwYWNlLXN0eWxlOiAgICAgICAgICAgICAgICAgICAgICBVc2VsZXNzIFdoaXRlc3Bh Y2UuICAobGluZSAgMzcpCiAgLSB3aW5kb3ctZGl2aWRlci1kZWZhdWx0LWJvdHRvbS13aWR0aDog ICBXaW5kb3cgRGl2aWRlcnMuICAgICAobGluZSAgMTkpCiAgLSB3aW5kb3ctZGl2aWRlci1kZWZh dWx0LXBsYWNlczogICAgICAgICBXaW5kb3cgRGl2aWRlcnMuICAgICAobGluZSAgMTMpCiAgLSB3 aW5kb3ctZGl2aWRlci1kZWZhdWx0LXJpZ2h0LXdpZHRoOiAgICBXaW5kb3cgRGl2aWRlcnMuICAg ICAobGluZSAgMTkpCiAgLSB3aW5kb3ctbWluLWhlaWdodDogICAgICAgICAgICAgICAgICAgICBD aGFuZ2UgV2luZG93LiAgICAgICAobGluZSAgNDIpCiAgLSB3aW5kb3ctbWluLXdpZHRoOiAgICAg ICAgICAgICAgICAgICAgICBDaGFuZ2UgV2luZG93LiAgICAgICAobGluZSAgNTMpCiAgLSB3aW5k b3ctcmVzaXplLXBpeGVsd2lzZTogICAgICAgICAgICAgICBTcGxpdCBXaW5kb3cuICAgICAgICAo bGluZSAgNjUpCiAgLSB3cml0ZS1yZWdpb24taW5oaWJpdC1mc3luYzogICAgICAgICAgICBDdXN0 b21pemUgU2F2ZS4gICAgICAobGluZSAgMjIpCiAgLSB4LWd0ay1maWxlLWRpYWxvZy1oZWxwLXRl eHQ6ICAgICAgICAgICBEaWFsb2cgQm94ZXMuICAgICAgICAobGluZSAgMjMpCiAgLSB4LWd0ay1z aG93LWhpZGRlbi1maWxlczogICAgICAgICAgICAgICBEaWFsb2cgQm94ZXMuICAgICAgICAobGlu ZSAgMjMpCiAgLSB4LWd0ay11c2Utc3lzdGVtLXRvb2x0aXBzOiAgICAgICAgICAgICBUb29sdGlw cy4gICAgICAgICAgICAobGluZSAgNTApCiAgLSB4LW1vdXNlLWNsaWNrLWZvY3VzLWlnbm9yZS1w b3NpdGlvbjogICBNb3VzZSBDb21tYW5kcy4gICAgICAobGluZSAgMzApCiAgLSB4LXNlbGVjdC1l bmFibGUtY2xpcGJvYXJkLW1hbmFnZXI6ICAgICBDbGlwYm9hcmQuICAgICAgICAgICAobGluZSAg MzMpCiAgLSB4LXNlbGVjdC1yZXF1ZXN0LXR5cGU6ICAgICAgICAgICAgICAgICBDb21tdW5pY2F0 aW9uIENvZGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgMzEpCiAgLSB4LXN0cmV0Y2gtY3Vyc29yOiAgICAgICAg ICAgICAgICAgICAgICBDdXJzb3IgRGlzcGxheS4gICAgICAobGluZSAgNDIpCiAgLSB4LXVuZGVy bGluZS1hdC1kZXNjZW50LWxpbmU6ICAgICAgICAgICBEaXNwbGF5IEN1c3RvbS4gICAgICAobGlu ZSAxMDApCiAgLSB4ZGItbW9kZS1ob29rOiAgICAgICAgICAgICAgICAgICAgICAgICBHVUQgQ3Vz dG9taXphdGlvbi4gICAobGluZSAgIDYpCiAgLSB4cmVmLW1hcmtlci1yaW5nLWxlbmd0aDogICAg ICAgICAgICAgICBMb29raW5nIFVwIElkZW50aWZpZXJzLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICA2MCkKICAtIHhy ZWYtcHJvbXB0LWZvci1pZGVudGlmaWVyOiAgICAgICAgICAgIExvb2tpbmcgVXAgSWRlbnRpZmll cnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgIDI2KQogIC0geWFuay1wb3AtY2hhbmdlLXNlbGVjdGlvbjogICAgICAg ICAgICAgQ2xpcGJvYXJkLiAgICAgICAgICAgKGxpbmUgIDI2KQoKCiogQ29uY2VwdCBJbmRleAoK KyBNZW51OgoKICAtIOKAmCTigJkgaW4gZmlsZSBuYW1lczogICAgICAgICAgICAgICAgICAgICBG aWxlIE5hbWVzLiAgICAgICAgIChsaW5lICAgNTMpCiAgLSAoIGluIGxlZnRtb3N0IGNvbHVtbjog ICAgICAgICAgICAgICAgICBMZWZ0IE1hcmdpbiBQYXJlbi4gIChsaW5lICAgIDYpCiAgLSDigJgq TWVzc2FnZXMq4oCZIGJ1ZmZlcjogICAgICAgICAgICAgICAgICAgRWNobyBBcmVhLiAgICAgICAg ICAobGluZSAgIDM0KQogIC0g4oCTL+KAlC8uLS4vLi4uLy46ICAgICAgICAgICAgICAgICAgICAg ICAgIEFtdXNlbWVudHMuICAgICAgICAgKGxpbmUgICA0NSkKICAtIC4jLCBsb2NrIGZpbGUgbmFt ZXM6ICAgICAgICAgICAgICAgICAgIEludGVybG9ja2luZy4gICAgICAgKGxpbmUgICAxOCkKICAt IOKAmC5kaXItbG9jYWxzLmVs4oCZIGZpbGU6ICAgICAgICAgICAgICAgICBEaXJlY3RvcnkgVmFy aWFibGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAxNSkKICAtIC5lbWFjcyBmaWxlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgIEluaXQgRmlsZS4gICAgICAgICAgKGxpbmUgICAgNikKICAtIOKAmC5tYWlscmPi gJkgZmlsZTogICAgICAgICAgICAgICAgICAgICAgICBNYWlsIEFsaWFzZXMuICAgICAgIChsaW5l ICAgIDYpCiAgLSDigJgubmV3c3Jj4oCZIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgR251 cyBTdGFydHVwLiAgICAgICAobGluZSAgICA2KQogIC0gLy8gaW4gZmlsZSBuYW1lOiAgICAgICAg ICAgICAgICAgICAgICAgTWluaWJ1ZmZlciBGaWxlLiAgICAobGluZSAgIDM0KQogIC0gN3o6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBBcmNoaXZlcy4gICAgICAobGlu ZSAgIDQ1KQogIC0gOC1iaXQgZGlzcGxheTogICAgICAgICAgICAgICAgICAgICAgICAgVW5pYnl0 ZSBNb2RlLiAgICAgICAobGluZSAgIDM1KQogIC0gOC1iaXQgaW5wdXQ6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgVW5pYnl0ZSBNb2RlLiAgICAgICAobGluZSAgIDQyKQogIC0g4oCYP+KAmSBp biBkaXNwbGF5OiAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmF0aW9uYWwgQ2hhcnMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgIDE4KQogIC0g4oCYX2VtYWNz4oCZIGluaXQgZmlsZSwgTVMtV2luZG93czogICAg ICAgIFdpbmRvd3MgSE9NRS4gICAgICAgKGxpbmUgICA0MykKICAtIOKAmH7igJksIGluIG5hbWVz IG9mIGJhY2t1cCBmaWxlczogICAgICAgICBCYWNrdXAgTmFtZXMuICAgICAgIChsaW5lICAgIDYp CiAgLSB+Ly5lbWFjcyBmaWxlOiAgICAgICAgICAgICAgICAgICAgICAgICBJbml0IEZpbGUuICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSDigJh+Ly5lbWFjcy5kLyViYWNrdXAlfuKAmTogICAgICAg ICAgICAgICAgQmFja3VwIE5hbWVzLiAgICAgICAobGluZSAgIDEwKQogIC0g4oCYfi8uZW1hY3Mu ZC9ndGtyY+KAmSBmaWxlOiAgICAgICAgICAgICAgIEdUSyByZXNvdXJjZXMuICAgICAgKGxpbmUg ICAgNikKICAtIOKAmH4vLmd0a3JjLTIuMOKAmSBmaWxlOiAgICAgICAgICAgICAgICAgICBHVEsg cmVzb3VyY2VzLiAgICAgIChsaW5lICAgIDYpCiAgLSDigJh+Ly5YZGVmYXVsdHPigJkgZmlsZTog ICAgICAgICAgICAgICAgICAgUmVzb3VyY2VzLiAgICAgICAgICAobGluZSAgICA2KQogIC0g4oCY fi8uWHJlc291cmNlc+KAmSBmaWxlOiAgICAgICAgICAgICAgICAgIFJlc291cmNlcy4gICAgICAg ICAgKGxpbmUgICAgNikKICAtIEEgYW5kIEIgYnVmZmVycyAoRW1lcmdlKTogICAgICAgICAgICAg IE92ZXJ2aWV3IG9mIEVtZXJnZS4gKGxpbmUgICAyMSkKICAtIGFiYnJldiBmaWxlOiAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNhdmluZyBBYmJyZXZzLiAgICAgKGxpbmUgICAyNykKICAtIEFi YnJldiBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFiYnJldiBDb25jZXB0cy4gICAg KGxpbmUgICAxMikKICAtIGFiYnJldnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFi YnJldnMuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGFibm9ybWFsIGhvb2s6ICAgICAgICAg ICAgICAgICAgICAgICAgIEhvb2tzLiAgICAgICAgICAgICAgKGxpbmUgICAxOSkKICAtIGFib3J0 aW5nIHJlY3Vyc2l2ZSBlZGl0OiAgICAgICAgICAgICAgIFF1aXR0aW5nLiAgICAgICAgICAgKGxp bmUgICA2NikKICAtIGFjY2VudGVkIGNoYXJhY3RlcnM6ICAgICAgICAgICAgICAgICAgIFVuaWJ5 dGUgTW9kZS4gICAgICAgKGxpbmUgICAgNikKICAtIGFjY2Vzc2libGUgcG9ydGlvbjogICAgICAg ICAgICAgICAgICAgIE5hcnJvd2luZy4gICAgICAgICAgKGxpbmUgICAgNikKICAtIGFjY3VtdWxh dGluZyBzY2F0dGVyZWQgdGV4dDogICAgICAgICAgIEFjY3VtdWxhdGluZyBUZXh0LiAgKGxpbmUg ICAgNikKICAtIGFjdGlvbiBvcHRpb25zIChjb21tYW5kIGxpbmUpOiAgICAgICAgIEVtYWNzIElu dm9jYXRpb24uICAgKGxpbmUgICA0MCkKICAtIGFjdGl2ZSByZWdpb246ICAgICAgICAgICAgICAg ICAgICAgICAgIE1hcmsuICAgICAgICAgICAgICAgKGxpbmUgICAxMykKICAtIGFjdGl2ZSB0ZXh0 OiAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHAgRWNoby4gICAgICAgICAgKGxpbmUgICAg NikKICAtIGFkYXB0aXZlIGZpbGxpbmc6ICAgICAgICAgICAgICAgICAgICAgIEFkYXB0aXZlIEZp bGwuICAgICAgKGxpbmUgICAgNikKICAtIGFkZGluZyB0byB0aGUga2lsbCByaW5nIGluIERpcmVk OiAgICAgIE1pc2MgRGlyZWQgRmVhdHVyZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDE5KQogIC0gYWRkcG0sIE1T LVdpbmRvd3MgaW5zdGFsbGF0aW9uIHByb2dyYW06IE1TLVdpbmRvd3MgUmVnaXN0cnkuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgICA2KQogIC0gYWRqdXN0IGJ1ZmZlciBmYWNlIGhlaWdodDogICAgICAgICAgICAgVGV4 dCBTY2FsZS4gICAgICAgICAobGluZSAgICA2KQogIC0gYWdncmVzc2l2ZSBzY3JvbGxpbmc6ICAg ICAgICAgICAgICAgICAgQXV0byBTY3JvbGxpbmcuICAgICAobGluZSAgIDI5KQogIC0gYWxhcm0g Y2xvY2s6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwb2ludG1lbnRzLiAgICAgICAobGlu ZSAgIDU5KQogIC0gYWxpZ25tZW50IGZvciBjb21tZW50czogICAgICAgICAgICAgICAgQ29tbWVu dCBDb21tYW5kcy4gICAobGluZSAgICA2KQogIC0g4oCYQWx04oCZIGtleSAoTVMtV2luZG93cyk6 ICAgICAgICAgICAgICAgIFdpbmRvd3MgS2V5Ym9hcmQuICAgKGxpbmUgICAxOSkKICAtIOKAmEFs dOKAmSBrZXkgaW52b2tlcyBtZW51IChXaW5kb3dzKTogICAgICBXaW5kb3dzIEtleWJvYXJkLiAg IChsaW5lICAxMDkpCiAgLSDigJg8QWx0Pi08VEFCPuKAmSB2cyDigJhNLTxUQUI+4oCZIChNUy1X aW5kb3dzKTogV2luZG93cyBLZXlib2FyZC4gKGxpbmUgICA0OCkKICAtIOKAmEFMVEVSTkFURV9F RElUT1LigJkgZW52aXJvbm1lbnQgdmFyaWFibGU6IGVtYWNzY2xpZW50IE9wdGlvbnMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgIDI5KQogIC0gPEFsdEdyPiBrZXkgKE1TLVdpbmRvd3MpOiAgICAgICAgICAgICAgV2lu ZG93cyBLZXlib2FyZC4gICAobGluZSAgMTI4KQogIC0g4oCYYW5nZS1mdHDigJk6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlbW90ZSBGaWxlcy4gICAgICAgKGxpbmUgICAzMCkKICAtIGFu aW1hdGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtdXNlbWVudHMuICAgICAgICAg KGxpbmUgICAgNikKICAtIGFuaW1hdGVkIGltYWdlczogICAgICAgICAgICAgICAgICAgICAgIEZp bGUgQ29udmVuaWVuY2VzLiAgKGxpbmUgICAzNCkKICAtIGFub255bW91cyBGVFA6ICAgICAgICAg ICAgICAgICAgICAgICAgIFJlbW90ZSBGaWxlcy4gICAgICAgKGxpbmUgICA0OSkKICAtIGFwcGVu ZGluZyBraWxscyBpbiB0aGUgcmluZzogICAgICAgICAgIEFwcGVuZGluZyBLaWxscy4gICAgKGxp bmUgICAgNikKICAtIGFwcG9pbnRtZW50IG5vdGlmaWNhdGlvbjogICAgICAgICAgICAgIEFwcG9p bnRtZW50cy4gICAgICAgKGxpbmUgICAgNikKICAtIGFwcm9wb3M6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFwcm9wb3MuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGFwcm9wb3Mg c2VhcmNoIHJlc3VsdHMsIG9yZGVyIGJ5IHNjb3JlOiBBcHJvcG9zLiAgICAgICAgICAgKGxpbmUg ICA4OCkKICAtIEFyYWJpYzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdl IEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAgMjgpCiAgLSBhcmM6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGaWxlIEFyY2hpdmVzLiAgICAgIChsaW5lICAgNDUpCiAgLSBBcmNo aXZlIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIEFyY2hpdmVzLiAgICAgIChs aW5lICAgNDUpCiAgLSBhcmd1bWVudHMgKGNvbW1hbmQgbGluZSk6ICAgICAgICAgICAgICBFbWFj cyBJbnZvY2F0aW9uLiAgIChsaW5lICAgIDYpCiAgLSBhcmd1bWVudHMgdG8gY29tbWFuZHM6ICAg ICAgICAgICAgICAgICBBcmd1bWVudHMuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBhcnJvdyBr ZXlzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgUG9pbnQuICAgICAgIChsaW5l ICAgIDYpCiAgLSBBU0NJSTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIElu cHV0LiAgICAgICAgIChsaW5lICAgIDYpCiAgLSBBU0NJSSAobGFuZ3VhZ2UgZW52aXJvbm1lbnQp OiAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDI4KQogIC0gQVND SUkgYXJ0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dC4gICAgICAgICAgICAgICAo bGluZSAgIDMxKQogIC0gQXNtIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNt IE1vZGUuICAgICAgICAgICAobGluZSAgICA2KQogIC0gYXNzZW1ibGVyIG1vZGU6ICAgICAgICAg ICAgICAgICAgICAgICAgQXNtIE1vZGUuICAgICAgICAgICAobGluZSAgICA2KQogIC0gYXN0cm9u b21pY2FsIGRheSBudW1iZXJzOiAgICAgICAgICAgICAgQ2FsZW5kYXIgU3lzdGVtcy4gICAobGlu ZSAgIDEyKQogIC0gYXR0YWNoZWQgZnJhbWUgKG9mIHNwZWVkYmFyKTogICAgICAgICAgU3BlZWRi YXIuICAgICAgICAgICAobGluZSAgICA2KQogIC0gYXR0cmlidXRlIChSbWFpbCk6ICAgICAgICAg ICAgICAgICAgICAgUm1haWwgTGFiZWxzLiAgICAgICAobGluZSAgICA2KQogIC0gYXR0cmlidXRl cyBvZiBtb2RlIGxpbmUsIGNoYW5naW5nOiAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAobGluZSAg IDg2KQogIC0gQXV0byBDb21wcmVzc2lvbiBtb2RlOiAgICAgICAgICAgICAgICAgQ29tcHJlc3Nl ZCBGaWxlcy4gICAobGluZSAgICA2KQogIC0gQXV0byBGaWxsIG1vZGU6ICAgICAgICAgICAgICAg ICAgICAgICAgQXV0byBGaWxsLiAgICAgICAgICAobGluZSAgICA2KQogIC0gQXV0byBSZXZlcnQg bW9kZTogICAgICAgICAgICAgICAgICAgICAgUmV2ZXJ0aW5nLiAgICAgICAgICAobGluZSAgIDM3 KQogIC0gQXV0byBTYXZlIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgQXV0byBTYXZlLiAg ICAgICAgICAobGluZSAgICA2KQogIC0gYXV0by1zYXZlIGZvciByZW1vdGUgZmlsZXM6ICAgICAg ICAgICAgQXV0byBTYXZlIEZpbGVzLiAgICAobGluZSAgIDI2KQogIC0gYXV0b2xvYWQ6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzcCBMaWJyYXJpZXMuICAgICAobGluZSAgIDYzKQog IC0gYXV0b2xvYWQgTGlzcCBsaWJyYXJpZXM6ICAgICAgICAgICAgICAgSW5pdCBFeGFtcGxlcy4g ICAgICAobGluZSAgIDgxKQogIC0gYXV0b21hdGljIHNjcm9sbGluZzogICAgICAgICAgICAgICAg ICAgQXV0byBTY3JvbGxpbmcuICAgICAobGluZSAgICA2KQogIC0gYXV0b21hdGljIHR5cGluZzog ICAgICAgICAgICAgICAgICAgICAgVGV4dC4gICAgICAgICAgICAgICAobGluZSAgIDM1KQogIC0g YXV0b21hdGljIHZlcnNpb24gYmFja3VwczogICAgICAgICAgICAgQ1ZTIE9wdGlvbnMuICAgICAg ICAobGluZSAgIDI4KQogIC0gYXV0b3R5cGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAg VGV4dC4gICAgICAgICAgICAgICAobGluZSAgIDM1KQogIC0gYXZvaWRpbmcgbW91c2UgaW4gdGhl IHdheSBvZiB5b3VyIHR5cGluZzogTW91c2UgQXZvaWRhbmNlLiAobGluZSAgICA2KQogIC0gQXdr IG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAo bGluZSAgIDE1KQogIC0gQVdLIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQyBN b2Rlcy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gYmFjayBlbmQgKHZlcnNpb24gY29udHJv bCk6ICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQog IC0gYmFjayByZWZlcmVuY2UsIGluIHJlZ2V4cDogICAgICAgICAgICAgUmVnZXhwIEJhY2tzbGFz aC4gICAobGluZSAgIDU0KQogIC0gYmFjayByZWZlcmVuY2UsIGluIHJlZ2V4cCByZXBsYWNlbWVu dDogUmVnZXhwIFJlcGxhY2UuICAgICAobGluZSAgIDEzKQogIC0gYmFja2dyb3VuZCBjb2xvcjog ICAgICAgICAgICAgICAgICAgICAgRmFjZXMuICAgICAgICAgICAgICAobGluZSAgIDMxKQogIC0g YmFja2dyb3VuZCBjb2xvciwgY29tbWFuZC1saW5lIGFyZ3VtZW50OiBDb2xvcnMgWC4gICAgICAg ICAobGluZSAgIDE2KQogIC0gYmFja2dyb3VuZCBmb3IgbWVudXM6ICAgICAgICAgICAgICAgICAg VGFibGUgb2YgUmVzb3VyY2VzLiAobGluZSAgIDgyKQogIC0gYmFja2dyb3VuZCBtb2RlLCBvbiDi gJh4dGVybeKAmTogICAgICAgICAgIEdlbmVyYWwgVmFyaWFibGVzLiAgKGxpbmUgIDEyNSkKICAt IGJhY2tncm91bmQgc3ludGF4IGhpZ2hsaWdodGluZzogICAgICAgIEZvbnQgTG9jay4gICAgICAg ICAgKGxpbmUgICA3OSkKICAtIDxCQUNLU1BBQ0U+IHZzIDxERUw+OiAgICAgICAgICAgICAgICAg IERFTCBEb2VzIE5vdCBEZWxldGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gYmFja3RyYWNlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ3Jhc2hpbmcuICAgICAgICAgICAobGluZSAgICA2KQog IC0gYmFja3RyYWNlIGZvciBidWcgcmVwb3J0czogICAgICAgICAgICAgQ2hlY2tsaXN0LiAgICAg ICAgICAobGluZSAgMjUwKQogIC0gYmFja3VwIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgQmFja3VwLiAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gYmFja3VwIGZpbGUgbmFtZXM6 ICAgICAgICAgICAgICAgICAgICAgQmFja3VwIE5hbWVzLiAgICAgICAobGluZSAgICA2KQogIC0g YmFja3VwIGZpbGUgbmFtZXMgb24gTVMtRE9TOiAgICAgICAgICAgTVMtRE9TIEZpbGUgTmFtZXMu ICAobGluZSAgIDIwKQogIC0gYmFja3VwLCBhbmQgdXNlci1pZDogICAgICAgICAgICAgICAgICAg QmFja3VwIENvcHlpbmcuICAgICAobGluZSAgIDIwKQogIC0gYmFja3VwcyBmb3IgcmVtb3RlIGZp bGVzOiAgICAgICAgICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAobGluZSAgIDQxKQogIC0gQmFo w6HigJnDrSBjYWxlbmRhcjogICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIFN5c3RlbXMu ICAgKGxpbmUgICA2NikKICAtIGJhbGFuY2VkIGV4cHJlc3Npb246ICAgICAgICAgICAgICAgICAg IEV4cHJlc3Npb25zLiAgICAgICAgKGxpbmUgICAgNikKICAtIGJhbGxvb24gaGVscDogICAgICAg ICAgICAgICAgICAgICAgICAgIEhlbHAgRWNoby4gICAgICAgICAgKGxpbmUgICAgNikKICAtIGJh c2UgYnVmZmVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGlyZWN0IEJ1ZmZlcnMuICAg KGxpbmUgICAgNikKICAtIGJhc2UgZGlyZWN0aW9uIG9mIHBhcmFncmFwaHM6ICAgICAgICAgIEJp ZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzcpCiAgLSDigJhiYXNpY+KAmSwgY29t cGxldGlvbiBzdHlsZTogICAgICAgICAgICAgQ29tcGxldGlvbiBTdHlsZXMuICAobGluZSAgIDI1 KQogIC0gYmF0Y2ggbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhbCBPcHRp b25zLiAgICAobGluZSAgIDQyKQogIC0gYmF0dGVyeSBzdGF0dXMgKG9uIG1vZGUgbGluZSk6ICAg ICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAobGluZSAgIDc4KQogIC0gQmF6YWFyOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgIDQ3KQogIC0gQmVsYXJ1c2lhbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3Vh Z2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyOCkKICAtIEJlbmdhbGk6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMjgp CiAgLSBiaWRpcmVjdGlvbmFsIGVkaXRpbmc6ICAgICAgICAgICAgICAgICBCaWRpcmVjdGlvbmFs IEVkaXRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gYmluZGluZzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29tbWFuZHMuICAgICAgICAgICAobGluZSAgICA2KQogIC0gYmluZGluZyBr ZXlib2FyZCBtYWNyb3M6ICAgICAgICAgICAgICAgU2F2ZSBLZXlib2FyZCBNYWNyby4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICAgMjYpCiAgLSBiaW5kaW5nIGtleXM6ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWJp bmRpbmcuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBibGFuayBsaW5lczogICAgICAgICAgICAg ICAgICAgICAgICAgICBCbGFuayBMaW5lcy4gICAgICAgIChsaW5lICAgMTUpCiAgLSBibGFuayBs aW5lcyBpbiBwcm9ncmFtczogICAgICAgICAgICAgICBNdWx0aS1MaW5lIENvbW1lbnRzLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIGJsaW5raW5nIGN1cnNvcjogICAgICAgICAgICAgICAgICAgICAgIEN1 cnNvciBEaXNwbGF5LiAgICAgKGxpbmUgICAyNCkKICAtIGJsaW5raW5nIGN1cnNvciBkaXNhYmxl LCBjb21tYW5kLWxpbmUgYXJndW1lbnQ6IE1pc2MgWC4gICAgKGxpbmUgICAyMSkKICAtIGJvZHkg bGluZXMgKE91dGxpbmUgbW9kZSk6ICAgICAgICAgICAgIE91dGxpbmUgRm9ybWF0LiAgICAgKGxp bmUgICAgNikKICAtIGJvb2ttYXJrczogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJvb2tt YXJrcy4gICAgICAgICAgKGxpbmUgICAgNikKICAtIGJvcmRlciBjb2xvciwgY29tbWFuZC1saW5l IGFyZ3VtZW50OiAgIENvbG9ycyBYLiAgICAgICAgICAgKGxpbmUgICAyMCkKICAtIGJvcmRlcnMg KFggV2luZG93IFN5c3RlbSk6ICAgICAgICAgICAgIEJvcmRlcnMgWC4gICAgICAgICAgKGxpbmUg ICAgNikKICAtIGJvcmVkb206ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFtdXNlbWVu dHMuICAgICAgICAgKGxpbmUgICAgNikKICAtIGJvdW5kIGJyYW5jaCAoQmF6YWFyIFZDUyk6ICAg ICAgICAgICAgIFB1bGxpbmcgLyBQdXNoaW5nLiAgKGxpbmUgICAzMCkKICAtIGJyYWNlIGluIGNv bHVtbiB6ZXJvIGFuZCBmb250aWZpY2F0aW9uOiBGb250IExvY2suICAgICAgICAgKGxpbmUgICA1 NCkKICAtIGJyYWNlcywgbW92aW5nIGFjcm9zczogICAgICAgICAgICAgICAgIE1vdmluZyBieSBQ YXJlbnMuICAgKGxpbmUgICAgNikKICAtIGJyYW5jaCAodmVyc2lvbiBjb250cm9sKTogICAgICAg ICAgICAgIEJyYW5jaGVzLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIEJyYXppbGlhbiBQb3J0 dWd1ZXNlOiAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICAgMjgpCiAgLSBCcm93c2UtVVJMOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcm93c2Ut VVJMLiAgICAgICAgIChsaW5lICAgIDYpCiAgLSBidWJibGVzOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAgIChsaW5lICAgMTYpCiAgLSBidWZmZXIgY29u dGVudHM6ICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJzLiAgICAgICAgICAgIChsaW5lICAg MzApCiAgLSBidWZmZXIgZGVmaW5pdGlvbnMgaW5kZXg6ICAgICAgICAgICAgICBJbWVudS4gICAg ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBidWZmZXIgbGlzdCwgY3VzdG9taXphYmxlOiAgICAg ICAgICAgICBCdWZmZXIgTWVudXMuICAgICAgIChsaW5lICAgIDYpCiAgLSBCdWZmZXIgTWVudTog ICAgICAgICAgICAgICAgICAgICAgICAgICBTZXZlcmFsIEJ1ZmZlcnMuICAgIChsaW5lICAgIDYp CiAgLSBidWZmZXIgc2l6ZSBkaXNwbGF5OiAgICAgICAgICAgICAgICAgICBPcHRpb25hbCBNb2Rl IExpbmUuIChsaW5lICAgIDYpCiAgLSBidWZmZXIgc2l6ZSwgbWF4aW11bTogICAgICAgICAgICAg ICAgICBCdWZmZXJzLiAgICAgICAgICAgIChsaW5lICAgNDEpCiAgLSBidWZmZXIgdGV4dCBnYXJi bGVkOiAgICAgICAgICAgICAgICAgICBUZXh0IEdhcmJsZWQuICAgICAgIChsaW5lICAgIDYpCiAg LSBidWZmZXItbG9jYWwgaG9va3M6ICAgICAgICAgICAgICAgICAgICBIb29rcy4gICAgICAgICAg ICAgIChsaW5lICAgODkpCiAgLSBidWZmZXJzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCdWZmZXJzLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBidWcgY3JpdGVyaWE6ICAgICAg ICAgICAgICAgICAgICAgICAgICBCdWcgQ3JpdGVyaWEuICAgICAgIChsaW5lICAgIDYpCiAgLSBi dWcgcmVwb3J0aW5nOiAgICAgICAgICAgICAgICAgICAgICAgICBVbmRlcnN0YW5kaW5nIEJ1ZyBS ZXBvcnRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gYnVnIHJlcG9ydGluZywgY2hlY2tsaXN0OiAg ICAgICAgICAgICAgQ2hlY2tsaXN0LiAgICAgICAgICAobGluZSAgICA2KQogIC0gYnVnIHRyYWNr ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgS25vd24gUHJvYmxlbXMuICAgICAobGluZSAg IDE2KQogIC0gYnVnczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVncy4gICAg ICAgICAgICAgICAobGluZSAgICA2KQogIC0gYnVpbGQgZGV0YWlsczogICAgICAgICAgICAgICAg ICAgICAgICAgSW5pdGlhbCBPcHRpb25zLiAgICAobGluZSAgIDgyKQogIC0gYnVpbGRpbmcgcHJv Z3JhbXM6ICAgICAgICAgICAgICAgICAgICAgQnVpbGRpbmcuICAgICAgICAgICAobGluZSAgICA2 KQogIC0gYnVpbHQtaW4gcGFja2FnZTogICAgICAgICAgICAgICAgICAgICAgUGFja2FnZSBNZW51 LiAgICAgICAobGluZSAgICA2KQogIC0gQnVsZ2FyaWFuOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyOCkKICAtIEJ1cm1lc2U6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAgMjkpCiAgLSBidXR0ZXJmbHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB bXVzZW1lbnRzLiAgICAgICAgIChsaW5lICAgNTkpCiAgLSBidXR0b24tZG93biBldmVudHM6ICAg ICAgICAgICAgICAgICAgICBNb3VzZSBCdXR0b25zLiAgICAgIChsaW5lICAgIDYpCiAgLSBidXR0 b25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNb3VzZSBSZWZlcmVuY2VzLiAgIChs aW5lICAgIDYpCiAgLSBidXR0b25zIChjdXN0b21pemF0aW9uIGJ1ZmZlcik6ICAgICAgICBDdXN0 b21pemF0aW9uIEdyb3Vwcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzgpCiAgLSBidXR0b25zIGF0IGJ1ZmZlciBw b3NpdGlvbjogICAgICAgICAgICBFZGl0aW5nIEZvcm1hdCBJbmZvLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyMCkK ICAtIGJ5cGFzc2luZyBpbml0IGFuZCDigJhkZWZhdWx0LmVs4oCZIGZpbGU6ICBJbml0aWFsIE9w dGlvbnMuICAgIChsaW5lICAgODcpCiAgLSBieXRlIGNvZGU6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXNwIExpYnJhcmllcy4gICAgIChsaW5lICAgIDkpCiAgLSBieXRlLWNvbXBpbGlu ZyBzZXZlcmFsIGZpbGVzIChpbiBEaXJlZCk6IE9wZXJhdGluZyBvbiBGaWxlcy4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICAxMzgpCiAgLSBienI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9u IENvbnRyb2wgU3lzdGVtcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNDcpCiAgLSBDIGVkaXRpbmc6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQcm9ncmFtcy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBD IG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDIE1vZGVzLiAgICAgICAgICAg IChsaW5lICAgIDYpCiAgLSBDKysgY2xhc3MgYnJvd3NlciwgdGFnczogICAgICAgICAgICAgICBU YWdzIFRhYmxlcy4gICAgICAgIChsaW5lICAgMjYpCiAgLSBDKysgbW9kZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDIE1vZGVzLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBDLTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyIElucHV0LiAgICAgICAgIChs aW5lICAgMTgpCiAgLSBjYWNoZSBvZiBmaWxlIG5hbWVzOiAgICAgICAgICAgICAgICAgICBGaWxl IE5hbWUgQ2FjaGUuICAgIChsaW5lICAgIDYpCiAgLSBjYWxlbmRhcjogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDYWxlbmRhci9EaWFyeS4gICAgIChsaW5lICAgIDYpCiAgLSBjYWxlbmRh ciBhbmQgSFRNTDogICAgICAgICAgICAgICAgICAgICBXcml0aW5nIENhbGVuZGFyIEZpbGVzLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgICAgOCkKICAtIGNhbGVuZGFyIGFuZCBMYVRlWDogICAgICAgICAgICAgICAgICAg IFdyaXRpbmcgQ2FsZW5kYXIgRmlsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM3KQogIC0gY2FsZW5kYXIgbGF5 b3V0OiAgICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgQ3VzdG9taXppbmcuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgICA2KQogIC0gY2FsZW5kYXIgd2VlayBudW1iZXJzOiAgICAgICAgICAgICAgICAgQ2FsZW5k YXIgQ3VzdG9taXppbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gY2FsZW5kYXIsIGZpcnN0IGRheSBv ZiB3ZWVrOiAgICAgICAgICAgTW92ZSB0byBCZWdpbm5pbmcgb3IgRW5kLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAy NykKICAtIGNhbGwgTGlzcCBmdW5jdGlvbnMsIGNvbW1hbmQtbGluZSBhcmd1bWVudDogQWN0aW9u IEFyZ3VtZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAgNTgpCiAgLSBjYW1lbCBjYXNlOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNaXhlZENhc2UgV29yZHMuICAgIChsaW5lICAgIDYpCiAgLSBjYW5kbGUg bGlnaHRpbmcgdGltZXM6ICAgICAgICAgICAgICAgICBTZXhwIERpYXJ5IEVudHJpZXMuIChsaW5l ICAxNjIpCiAgLSBjYXBpdGFsaXppbmcgd29yZHM6ICAgICAgICAgICAgICAgICAgICBDYXNlLiAg ICAgICAgICAgICAgIChsaW5lICAgMjApCiAgLSBjYXNlIGNvbnZlcnNpb246ICAgICAgICAgICAg ICAgICAgICAgICBDYXNlLiAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBjYXNlIGZvbGRp bmcgaW4gcmVwbGFjZSBjb21tYW5kczogICAgICBSZXBsYWNlbWVudCBhbmQgTGF4IE1hdGNoZXMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDIxKQogIC0gY2FzZSBmb2xkaW5nIGluIHNlYXJjaDogICAgICAgICAgICAg ICAgTGF4IFNlYXJjaC4gICAgICAgICAobGluZSAgIDM2KQogIC0gY2FzZSBpbiBjb21wbGV0aW9u OiAgICAgICAgICAgICAgICAgICAgQ29tcGxldGlvbiBPcHRpb25zLiAobGluZSAgICA2KQogIC0g Y2FzZS1zZW5zaXRpdml0eSBhbmQgY29tcGxldGlvbjogICAgICAgQ29tcGxldGlvbiBPcHRpb25z LiAobGluZSAgICA2KQogIC0gY2FzZS1zZW5zaXRpdml0eSBhbmQgc2VhcmNoOiAgICAgICAgICAg TGF4IFNlYXJjaC4gICAgICAgICAobGluZSAgIDM2KQogIC0gY2FzZS1zZW5zaXRpdml0eSBhbmQg dGFncyBzZWFyY2g6ICAgICAgSWRlbnRpZmllciBTZWFyY2guICAobGluZSAgIDY2KQogIC0gY2F0 ZWdvcmllcyBvZiBjaGFyYWN0ZXJzOiAgICAgICAgICAgICAgUmVnZXhwIEJhY2tzbGFzaC4gICAo bGluZSAgMTQyKQogIC0gY2VsbHMsIGZvciB0ZXh0LWJhc2VkIHRhYmxlczogICAgICAgICAgVGFi bGUgRGVmaW5pdGlvbi4gICAobGluZSAgICA2KQogIC0gY2VudGVyaW5nOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmlsbCBDb21tYW5kcy4gICAgICAobGluZSAgIDQ2KQogIC0gY2VudHJh bGl6ZWQgdmVyc2lvbiBjb250cm9sOiAgICAgICAgICAgVkNTIFJlcG9zaXRvcmllcy4gICAobGlu ZSAgICA2KQogIC0gQ2hhbTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3Vh Z2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyOSkKICAtIGNoYW5nZSBidWZmZXJzOiAgICAg ICAgICAgICAgICAgICAgICAgIFNlbGVjdCBCdWZmZXIuICAgICAgKGxpbmUgICAgNikKICAtIGNo YW5nZSBFbWFjcyBkaXJlY3Rvcnk6ICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAg KGxpbmUgICAyMCkKICAtIGNoYW5nZSBsb2c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENo YW5nZSBMb2cuICAgICAgICAgKGxpbmUgICAgNikKICAtIENoYW5nZSBMb2cgbW9kZTogICAgICAg ICAgICAgICAgICAgICAgIENoYW5nZSBMb2cgQ29tbWFuZHMuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDQwKQogIC0g Y2hhbmdlcywgdW5kb2luZzogICAgICAgICAgICAgICAgICAgICAgVW5kby4gICAgICAgICAgICAg ICAobGluZSAgICA2KQogIC0gY2hhbmdlc2V0LWJhc2VkIHZlcnNpb24gY29udHJvbDogICAgICAg VkNTIENoYW5nZXNldHMuICAgICAobGluZSAgIDE0KQogIC0gY2hhbmdpbmcgZmlsZSBncm91cCAo aW4gRGlyZWQpOiAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAobGluZSAgIDgxKQogIC0gY2hh bmdpbmcgZmlsZSBvd25lciAoaW4gRGlyZWQpOiAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAo bGluZSAgIDg1KQogIC0gY2hhbmdpbmcgZmlsZSBwZXJtaXNzaW9ucyAoaW4gRGlyZWQpOiAgT3Bl cmF0aW5nIG9uIEZpbGVzLiAobGluZSAgIDc2KQogIC0gY2hhbmdpbmcgZmlsZSB0aW1lIChpbiBE aXJlZCk6ICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAobGluZSAgIDk0KQogIC0gY2hhciBt b2RlICh0ZXJtaW5hbCBlbXVsYXRvcik6ICAgICAgICAgVGVybWluYWwgZW11bGF0b3IuICAobGlu ZSAgIDEwKQogIC0gY2hhcmFjdGVyIGVxdWl2YWxlbmNlIGluIHNlYXJjaDogICAgICAgTGF4IFNl YXJjaC4gICAgICAgICAobGluZSAgICA2KQogIC0gY2hhcmFjdGVyIGZvbGRpbmcgaW4gcmVwbGFj ZSBjb21tYW5kczogUmVwbGFjZW1lbnQgYW5kIExheCBNYXRjaGVzLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA0NCkK ICAtIGNoYXJhY3RlciBmb2xkaW5nIGluIHNlYXJjaDogICAgICAgICAgIExheCBTZWFyY2guICAg ICAgICAgKGxpbmUgICA3MykKICAtIGNoYXJhY3RlciBzZXQgKGtleWJvYXJkKTogICAgICAgICAg ICAgIFVzZXIgSW5wdXQuICAgICAgICAgKGxpbmUgICAgNikKICAtIGNoYXJhY3RlciBzZXQgb2Yg Y2hhcmFjdGVyIGF0IHBvaW50OiAgIEludGVybmF0aW9uYWwgQ2hhcnMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDY1 KQogIC0gY2hhcmFjdGVyIHN5bnRheDogICAgICAgICAgICAgICAgICAgICAgSW5pdCBTeW50YXgu ICAgICAgICAobGluZSAgIDUyKQogIC0gY2hhcmFjdGVycyAoaW4gdGV4dCk6ICAgICAgICAgICAg ICAgICAgVGV4dCBEaXNwbGF5LiAgICAgICAobGluZSAgICA2KQogIC0gY2hhcmFjdGVycyBpbiBh IGNlcnRhaW4gY2hhcnNldDogICAgICAgQ2hhcnNldHMuICAgICAgICAgICAobGluZSAgIDI0KQog IC0gY2hhcmFjdGVycyB3aGljaCBiZWxvbmcgdG8gYSBzcGVjaWZpYyBsYW5ndWFnZTogUmVnZXhw IEJhY2tzbGFzaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAxNDIpCiAgLSBjaGFyYWN0ZXJzIHdpdGggbm8gZm9udCBn bHlwaHM6ICAgICAgICBUZXh0IERpc3BsYXkuICAgICAgIChsaW5lICAgNTApCiAgLSBjaGFyYWN0 ZXJzLCBpbnNlcnRpbmcgYnkgbmFtZSBvciBjb2RlLXBvaW50OiBJbnNlcnRpbmcgVGV4dC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAgNjApCiAgLSBjaGFyc2V0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD aGFyc2V0cy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBjaGVja2luZyBvdXQgZmlsZXM6ICAg ICAgICAgICAgICAgICAgICBWQ1MgQ29uY2VwdHMuICAgICAgIChsaW5lICAgMTMpCiAgLSBjaGVj a2luZyBzcGVsbGluZzogICAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAgICAgICAgIChs aW5lICAgIDYpCiAgLSBjaGVja2luZyBzeW50YXg6ICAgICAgICAgICAgICAgICAgICAgICBGbHlt YWtlLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBjaGVja2xpc3QgYmVmb3JlIHJlcG9ydGlu ZyBhIGJ1ZzogICAgICBDaGVja2xpc3QuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBDaGluZXNl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgIDI5KQogIC0gQ2hpbmVzZSBjYWxlbmRhcjogICAgICAgICAgICAgICAgICAgICAg Q2FsZW5kYXIgU3lzdGVtcy4gICAobGluZSAgIDU4KQogIC0gY2hvb3NpbmcgYSBtYWpvciBtb2Rl OiAgICAgICAgICAgICAgICAgQ2hvb3NpbmcgTW9kZXMuICAgICAobGluZSAgICA2KQogIC0gY2hv b3NpbmcgYSBtaW5vciBtb2RlOiAgICAgICAgICAgICAgICAgQ2hvb3NpbmcgTW9kZXMuICAgICAo bGluZSAgICA2KQogIC0gY2lwaGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW11 c2VtZW50cy4gICAgICAgICAobGluZSAgIDE5KQogIC0gY2l0aW5nIG1haWw6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ2l0aW5nIE1haWwuICAgICAgICAobGluZSAgICA2KQogIC0gY2xhc3Mg YnJvd3NlciwgQysrOiAgICAgICAgICAgICAgICAgICAgVGFncyBUYWJsZXMuICAgICAgICAobGlu ZSAgIDI2KQogIC0gY2xpY2sgZXZlbnRzOiAgICAgICAgICAgICAgICAgICAgICAgICAgTW91c2Ug QnV0dG9ucy4gICAgICAobGluZSAgICA2KQogIC0gY2xpZW50IGZyYW1lOiAgICAgICAgICAgICAg ICAgICAgICAgICAgZW1hY3NjbGllbnQgT3B0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzIpCiAgLSBjbGll bnQtc2lkZSBmb250czogICAgICAgICAgICAgICAgICAgICBGb250cy4gICAgICAgICAgICAgIChs aW5lICAxODcpCiAgLSBjbGlwYm9hcmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGlw Ym9hcmQuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBjbGlwYm9hcmQgbWFuYWdlcjogICAgICAg ICAgICAgICAgICAgICBDbGlwYm9hcmQuICAgICAgICAgIChsaW5lICAgMzMpCiAgLSBjbG9ja2lu ZyB0aW1lOiAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lIEludGVydmFscy4gICAgIChsaW5l ICAgIDYpCiAgLSBjbG9zZSBidWZmZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBLaWxsIEJ1 ZmZlci4gICAgICAgIChsaW5lICAgIDYpCiAgLSBjbG9zZSBmaWxlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBLaWxsIEJ1ZmZlci4gICAgICAgIChsaW5lICAgIDYpCiAgLSBjb2RlcGFnZSwg TVMtRE9TOiAgICAgICAgICAgICAgICAgICAgICBNUy1ET1MgYW5kIE1VTEUuICAgIChsaW5lICAg MjEpCiAgLSBjb2Rpbmcgc3RhbmRhcmRzOiAgICAgICAgICAgICAgICAgICAgICBDb2RpbmcgU3Rh bmRhcmRzLiAgIChsaW5lICAgIDYpCiAgLSBjb2Rpbmcgc3lzdGVtczogICAgICAgICAgICAgICAg ICAgICAgICBDb2RpbmcgU3lzdGVtcy4gICAgIChsaW5lICAgIDYpCiAgLSBjb2xsaXNpb246ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmxvY2tpbmcuICAgICAgIChsaW5lICAgMzAp CiAgLSBjb2xvciBlbXVsYXRpb24gb24gYmxhY2stYW5kLXdoaXRlIHByaW50ZXJzOiBQb3N0U2Ny aXB0IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTcpCiAgLSBjb2xvciBuYW1lOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBDb2xvcnMuICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBjb2xv ciBvZiB3aW5kb3csIGZyb20gY29tbWFuZCBsaW5lOiAgICBDb2xvcnMgWC4gICAgICAgICAgIChs aW5lICAgIDYpCiAgLSBjb2xvciBzY2hlbWU6ICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0 b20gVGhlbWVzLiAgICAgIChsaW5lICAgMTYpCiAgLSBDb2x1bW4gTnVtYmVyIG1vZGU6ICAgICAg ICAgICAgICAgICAgICBPcHRpb25hbCBNb2RlIExpbmUuIChsaW5lICAgMjMpCiAgLSBjb2x1bW5z IChhbmQgcmVjdGFuZ2xlcyk6ICAgICAgICAgICAgICBSZWN0YW5nbGVzLiAgICAgICAgIChsaW5l ICAgIDYpCiAgLSBjb2x1bW5zIChpbmRlbnRhdGlvbik6ICAgICAgICAgICAgICAgICBJbmRlbnRh dGlvbi4gICAgICAgIChsaW5lICAgIDYpCiAgLSBjb2x1bW5zLCBzcGxpdHRpbmc6ICAgICAgICAg ICAgICAgICAgICBUd28tQ29sdW1uLiAgICAgICAgIChsaW5lICAgIDYpCiAgLSBDb21pbnQgbW9k ZTogICAgICAgICAgICAgICAgICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAgIChsaW5lICAx NDcpCiAgLSDigJhjb21pbnQtaGlnaGxpZ2h0LWlucHV04oCZIGZhY2U6ICAgICAgICAgSW50ZXJh Y3RpdmUgU2hlbGwuICAobGluZSAgIDI0KQogIC0g4oCYY29taW50LWhpZ2hsaWdodC1wcm9tcHTi gJkgZmFjZTogICAgICAgIEludGVyYWN0aXZlIFNoZWxsLiAgKGxpbmUgICAyNCkKICAtIGNvbW1h bmQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRzLiAgICAgICAgICAgKGxp bmUgICAgNikKICAtIGNvbW1hbmQgaGlzdG9yeTogICAgICAgICAgICAgICAgICAgICAgIFJlcGV0 aXRpb24uICAgICAgICAgKGxpbmUgICAgNikKICAtIGNvbW1hbmQgbGluZSBhcmd1bWVudHM6ICAg ICAgICAgICAgICAgIEVtYWNzIEludm9jYXRpb24uICAgKGxpbmUgICAgNikKICAtIGNvbW1hbmRz IGluIOKAmCp4cmVmKuKAmSBidWZmZXJzOiAgICAgICAgICBYcmVmIENvbW1hbmRzLiAgICAgIChs aW5lICAgIDYpCiAgLSBjb21tZW50czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21t ZW50cy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBjb21tZW50cyBvbiBjdXN0b21pemVkIHNl dHRpbmdzOiAgICAgICBDaGFuZ2luZyBhIFZhcmlhYmxlLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDEyMCkKICAtIENv bW1vbiBMaXNwOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsIExpc3AuICAgICAg KGxpbmUgICAgNikKICAtIGNvbXBhcmUgZmlsZXMgKGluIERpcmVkKTogICAgICAgICAgICAgIENv bXBhcmlzb24gaW4gRGlyZWQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gY29tcGFyaW5nIDMgZmlsZXMg KOKAmGRpZmYz4oCZKTogICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgKGxpbmUgICA1MSkK ICAtIGNvbXBhcmluZyBmaWxlczogICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmluZyBGaWxl cy4gICAgKGxpbmUgICAgNikKICAtIGNvbXBpbGF0aW9uIGJ1ZmZlciwga2VlcGluZyBwb2ludCBh dCBlbmQ6IENvbXBpbGF0aW9uLiAgICAgKGxpbmUgICA1OCkKICAtIGNvbXBpbGF0aW9uIGVycm9y czogICAgICAgICAgICAgICAgICAgIENvbXBpbGF0aW9uLiAgICAgICAgKGxpbmUgICAgNikKICAt IENvbXBpbGF0aW9uIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgIENvbXBpbGF0aW9uIE1vZGUu ICAgKGxpbmUgICAgNikKICAtIGNvbXBpbGF0aW9uIHVuZGVyIE1TLURPUzogICAgICAgICAgICAg IE1TLURPUyBQcm9jZXNzZXMuICAgKGxpbmUgICAgNikKICAtIGNvbXBsZXRlIGtleTogICAgICAg ICAgICAgICAgICAgICAgICAgIEtleXMuICAgICAgICAgICAgICAgKGxpbmUgICAxMCkKICAtIGNv bXBsZXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBsZXRpb24uICAgICAgICAg KGxpbmUgICAgNikKICAtIGNvbXBsZXRpb24gKExpc3Agc3ltYm9scyk6ICAgICAgICAgICAgIFN5 bWJvbCBDb21wbGV0aW9uLiAgKGxpbmUgICAxNCkKICAtIGNvbXBsZXRpb24gKHN5bWJvbCBuYW1l cyk6ICAgICAgICAgICAgIFN5bWJvbCBDb21wbGV0aW9uLiAgKGxpbmUgICAgNikKICAtIGNvbXBs ZXRpb24gYWx0ZXJuYXRpdmU6ICAgICAgICAgICAgICAgIENvbXBsZXRpb24uICAgICAgICAgKGxp bmUgICAxMCkKICAtIGNvbXBsZXRpb24gbGlzdDogICAgICAgICAgICAgICAgICAgICAgIENvbXBs ZXRpb24gQ29tbWFuZHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM1KQogIC0gY29tcGxldGlvbiBzdHlsZTogICAg ICAgICAgICAgICAgICAgICAgQ29tcGxldGlvbiBTdHlsZXMuICAobGluZSAgICA2KQogIC0gY29t cG9zZSBjaGFyYWN0ZXI6ICAgICAgICAgICAgICAgICAgICAgVW5pYnl0ZSBNb2RlLiAgICAgICAo bGluZSAgIDYzKQogIC0gY29tcHJlc3NpbmcgZmlsZXMgKGluIERpcmVkKTogICAgICAgICAgT3Bl cmF0aW5nIG9uIEZpbGVzLiAobGluZSAgMTA2KQogIC0gY29tcHJlc3Npb246ICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ29tcHJlc3NlZCBGaWxlcy4gICAobGluZSAgICA2KQogIC0gQ29uZiBt b2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGlu ZSAgIDE1KQogIC0gY29uZmlybWluZyBpbiB0aGUgbWluaWJ1ZmZlcjogICAgICAgICAgQ29tcGxl dGlvbiBFeGl0LiAgICAobGluZSAgIDM0KQogIC0gY29uZmxpY3RzOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWVyZ2luZy4gICAgICAgICAgICAobGluZSAgIDMzKQogIC0gY29ubmVjdGlu ZyB0byByZW1vdGUgaG9zdDogICAgICAgICAgICAgUmVtb3RlIEhvc3QuICAgICAgICAobGluZSAg ICA2KQogIC0gY29udGVudHMgb2YgYSBidWZmZXI6ICAgICAgICAgICAgICAgICAgQnVmZmVycy4g ICAgICAgICAgICAobGluZSAgIDMwKQogIC0gY29udGludWF0aW9uIGxpbmU6ICAgICAgICAgICAg ICAgICAgICAgQ29udGludWF0aW9uIExpbmVzLiAobGluZSAgICA2KQogIC0gY29udHJpYnV0aW5n IHRvIEVtYWNzOiAgICAgICAgICAgICAgICAgQ29udHJpYnV0aW5nLiAgICAgICAobGluZSAgICA2 KQogIC0gQ29udHJvbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBJbnB1dC4g ICAgICAgICAobGluZSAgIDE4KQogIC0gY29udHJvbCBjaGFyYWN0ZXI6ICAgICAgICAgICAgICAg ICAgICAgVXNlciBJbnB1dC4gICAgICAgICAobGluZSAgIDExKQogIC0gY29udHJvbCBjaGFyYWN0 ZXJzIG9uIGRpc3BsYXk6ICAgICAgICAgVGV4dCBEaXNwbGF5LiAgICAgICAobGluZSAgIDExKQog IC0gY29udmVydGluZyB0ZXh0IHRvIHVwcGVyIG9yIGxvd2VyIGNhc2U6IENhc2UuICAgICAgICAg ICAgICAobGluZSAgIDIwKQogIC0gQ29wdGljIGNhbGVuZGFyOiAgICAgICAgICAgICAgICAgICAg ICAgQ2FsZW5kYXIgU3lzdGVtcy4gICAobGluZSAgIDQxKQogIC0gY29weTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3V0IGFuZCBQYXN0ZS4gICAgICAobGluZSAgICA2KQogIC0g Y29weS9wYXN0ZSB0by9mcm9tIHByaW1hcnkgc2VsZWN0aW9uIChtYWNPUyk6IE1hYyAvIEdOVXN0 ZXAgQmFzaWNzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgICAzMikKICAtIGNvcHlpbmcgZmlsZXM6ICAgICAgICAgICAg ICAgICAgICAgICAgIENvcHlpbmcgYW5kIE5hbWluZy4gKGxpbmUgICAyMikKICAtIGNvcHlpbmcg ZmlsZXMgKGluIERpcmVkKTogICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gKGxpbmUg ICAzNCkKICAtIGNvcHlpbmcgdGV4dDogICAgICAgICAgICAgICAgICAgICAgICAgIFlhbmtpbmcu ICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGNvcHlyaWdodCBhc3NpZ25tZW50OiAgICAgICAg ICAgICAgICAgIENvcHlyaWdodCBBc3NpZ25tZW50LgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIENPUkJB IElETCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxp bmUgICAgNikKICAtIGNvcmUgZHVtcDogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyYXNo aW5nLiAgICAgICAgICAgKGxpbmUgICA1MCkKICAtIENvcmUgVGV4dCwgb24gbWFjT1M6ICAgICAg ICAgICAgICAgICAgIE1hYyAvIEdOVXN0ZXAgQ3VzdG9taXphdGlvbi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTgp CiAgLSBjb3JyZWN0aW5nIHNwZWxsaW5nOiAgICAgICAgICAgICAgICAgICBTcGVsbGluZy4gICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBDUGVybCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQcm9ncmFtIE1vZGVzLiAgICAgIChsaW5lICAgMTUpCiAgLSBjcmFzaCByZXBvcnQ6ICAg ICAgICAgICAgICAgICAgICAgICAgICBDcmFzaGluZy4gICAgICAgICAgIChsaW5lICAgIDYpCiAg LSBjcmFzaGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRvIFNhdmUuICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBjcmVhdGUgYSB0ZXh0LWJhc2VkIHRhYmxlOiAgICAgICAgICAg ICBUYWJsZSBDcmVhdGlvbi4gICAgIChsaW5lICAgIDYpCiAgLSBjcmVhdGluZyBmaWxlczogICAg ICAgICAgICAgICAgICAgICAgICBWaXNpdGluZy4gICAgICAgICAgIChsaW5lICAgNDUpCiAgLSBj cmVhdGluZyBmcmFtZXM6ICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGluZyBGcmFtZXMuICAg IChsaW5lICAgIDYpCiAgLSBDcm9hdGlhbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM YW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDMwKQogIC0gY3J5cHRhbmFseXNpczog ICAgICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAobGluZSAgIDE5KQog IC0gQ1NTQzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9s IFN5c3RlbXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgIDE2KQogIC0gQ1VBIGtleSBiaW5kaW5nczogICAgICAgICAg ICAgICAgICAgICAgQ1VBIEJpbmRpbmdzLiAgICAgICAobGluZSAgICA2KQogIC0gY3VybHkgcXVv dGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgUXVvdGF0aW9uIE1hcmtzLiAgICAobGluZSAg ICA2KQogIC0gY3VybHkgcXVvdGVzLCBhbmQgdGVybWluYWwgY2FwYWJpbGl0aWVzOiBUZXh0IERp c3BsYXkuICAgICAobGluZSAgIDYxKQogIC0gY3VybHkgcXVvdGVzLCBpbnNlcnRpbmc6ICAgICAg ICAgICAgICAgSW5zZXJ0aW5nIFRleHQuICAgICAobGluZSAgIDYwKQogIC0gY3VycmVudCBidWZm ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVycy4gICAgICAgICAgICAobGluZSAgIDIz KQogIC0gY3VycmVudCBmdW5jdGlvbiBuYW1lIGluIG1vZGUgbGluZTogICAgV2hpY2ggRnVuY3Rp b24uICAgICAobGluZSAgICA2KQogIC0gY3VycmVudCBtZXNzYWdlIChSbWFpbCk6ICAgICAgICAg ICAgICAgUm1haWwgQmFzaWNzLiAgICAgICAobGluZSAgIDEzKQogIC0gY3Vyc29yOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUG9pbnQuICAgICAgICAgICAgICAobGluZSAgICA2KQog IC0gY3Vyc29yIGNvbG9yLCBjb21tYW5kLWxpbmUgYXJndW1lbnQ6ICAgQ29sb3JzIFguICAgICAg ICAgICAobGluZSAgIDI0KQogIC0g4oCYY3Vyc29y4oCZIGZhY2U6ICAgICAgICAgICAgICAgICAg ICAgICAgIEZhY2VzLiAgICAgICAgICAgICAgKGxpbmUgICAzOSkKICAtIGN1cnNvciBpbiBub24t c2VsZWN0ZWQgd2luZG93czogICAgICAgIEN1cnNvciBEaXNwbGF5LiAgICAgKGxpbmUgICA0OCkK ICAtIGN1cnNvciBsb2NhdGlvbjogICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIEluZm8u ICAgICAgKGxpbmUgICAzNykKICAtIGN1cnNvciBsb2NhdGlvbiwgb24gTVMtRE9TOiAgICAgICAg ICAgIFRleHQgYW5kIEJpbmFyeS4gICAgKGxpbmUgICAyMCkKICAtIGN1cnNvciBtb3Rpb246ICAg ICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgKGxpbmUgICAgNikKICAt IGN1cnNvciBzaGFwZSBvbiBNUy1ET1M6ICAgICAgICAgICAgICAgIE1TLURPUyBEaXNwbGF5LiAg ICAgKGxpbmUgICAxOSkKICAtIGN1cnNvciwgYmxpbmtpbmc6ICAgICAgICAgICAgICAgICAgICAg IEN1cnNvciBEaXNwbGF5LiAgICAgKGxpbmUgICAyNCkKICAtIGN1cnNvciwgdmlzdWFsLW9yZGVy IG1vdGlvbjogICAgICAgICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgOTMp CiAgLSBjdXJ2ZWQgcXVvdGVzOiAgICAgICAgICAgICAgICAgICAgICAgICBRdW90YXRpb24gTWFy a3MuICAgIChsaW5lICAgIDYpCiAgLSBjdXJ2ZWQgcXVvdGVzLCBhbmQgdGVybWluYWwgY2FwYWJp bGl0aWVzOiBUZXh0IERpc3BsYXkuICAgIChsaW5lICAgNjEpCiAgLSBjdXJ2ZWQgcXVvdGVzLCBp bnNlcnRpbmc6ICAgICAgICAgICAgICBJbnNlcnRpbmcgVGV4dC4gICAgIChsaW5lICAgNjApCiAg LSBjdXN0b20gdGhlbWVzOiAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b20gVGhlbWVzLiAg ICAgIChsaW5lICAgIDYpCiAgLSBjdXN0b20gdGhlbWVzLCBjcmVhdGluZzogICAgICAgICAgICAg ICBDcmVhdGluZyBDdXN0b20gVGhlbWVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGN1c3RvbWl6YWJs ZSB2YXJpYWJsZTogICAgICAgICAgICAgICAgIEVhc3kgQ3VzdG9taXphdGlvbi4gKGxpbmUgICAg NikKICAtIGN1c3RvbWl6YXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWl6YXRp b24uICAgICAgKGxpbmUgICAgNikKICAtIGN1c3RvbWl6YXRpb24gYnVmZmVyOiAgICAgICAgICAg ICAgICAgIEVhc3kgQ3VzdG9taXphdGlvbi4gKGxpbmUgICAxNCkKICAtIGN1c3RvbWl6YXRpb24g Z3JvdXBzOiAgICAgICAgICAgICAgICAgIEN1c3RvbWl6YXRpb24gR3JvdXBzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIGN1c3RvbWl6YXRpb24gb2Yg4oCYbWVudeKAmSBmYWNlOiAgICAgICAgICBTdGFu ZGFyZCBGYWNlcy4gICAgIChsaW5lICAxNDMpCiAgLSBjdXN0b21pemluZyBmYWNlczogICAgICAg ICAgICAgICAgICAgICBGYWNlIEN1c3RvbWl6YXRpb24uIChsaW5lICAgIDYpCiAgLSBjdXN0b21p emluZyBMaXNwIGluZGVudGF0aW9uOiAgICAgICAgICBMaXNwIEluZGVudC4gICAgICAgIChsaW5l ICAgIDYpCiAgLSBjdXN0b21pemluZyB2YXJpYWJsZXM6ICAgICAgICAgICAgICAgICBDaGFuZ2lu ZyBhIFZhcmlhYmxlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNSkKICAtIGN1dDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEN1dCBhbmQgUGFzdGUuICAgICAgKGxpbmUgICAgNikKICAtIGN1dCBh bmQgcGFzdGU6ICAgICAgICAgICAgICAgICAgICAgICAgIEdsb3NzYXJ5LiAgICAgICAgICAgKGxp bmUgIDMzOSkKICAtIGN1dHRpbmcgdGV4dDogICAgICAgICAgICAgICAgICAgICAgICAgIERlbGV0 aW9uIGFuZCBLaWxsaW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGN2czogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZDIERpcmVjdG9yeSBNb2RlLiAgKGxpbmUgICAyNCkKICAtIENW UzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gQ29udHJvbCBTeXN0 ZW1zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgICAyNSkKICAtIENWUyBkaXJlY3RvcnkgbW9kZTogICAgICAgICAgICAg ICAgICAgIFZDIERpcmVjdG9yeSBNb2RlLiAgKGxpbmUgICAyNCkKICAtIENXYXJuIG1vZGU6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIEMgQ29tbWFuZHMuICAgKGxpbmUgICA3MSkK ICAtIEN5cmlsbGljOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmly b25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICAgMzApCiAgLSBDemVjaDogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDMxKQogIC0gZGFl bW9uLCBFbWFjczogICAgICAgICAgICAgICAgICAgICAgICAgRW1hY3MgU2VydmVyLiAgICAgICAo bGluZSAgIDI3KQogIC0gZGF5IG9mIHllYXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgR2Vu ZXJhbCBDYWxlbmRhci4gICAobGluZSAgIDE4KQogIC0gZGF5bGlnaHQgc2F2aW5nIHRpbWU6ICAg ICAgICAgICAgICAgICAgRGF5bGlnaHQgU2F2aW5nLiAgICAobGluZSAgICA2KQogIC0gREJYOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWdnZXJzLiAgICAgICAgICAobGlu ZSAgICA2KQogIC0gZGVhZCBjaGFyYWN0ZXI6ICAgICAgICAgICAgICAgICAgICAgICAgVW5pYnl0 ZSBNb2RlLiAgICAgICAobGluZSAgIDYzKQogIC0gZGViYnVncyBwYWNrYWdlOiAgICAgICAgICAg ICAgICAgICAgICAgS25vd24gUHJvYmxlbXMuICAgICAobGluZSAgIDIzKQogIC0gZGVidWdnZXJz OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWdnZXJzLiAgICAgICAgICAobGluZSAg ICA2KQogIC0gZGVidWdnaW5nIEVtYWNzLCB0cmlja3MgYW5kIHRlY2huaXF1ZXM6IENoZWNrbGlz dC4gICAgICAgICAobGluZSAgMjg0KQogIC0gZGVidWdnaW5nIFggcHJvYmxlbXM6ICAgICAgICAg ICAgICAgICAgVGFibGUgb2YgUmVzb3VyY2VzLiAobGluZSAgMTQ2KQogIC0gZGVjZW50cmFsaXpl ZCB2ZXJzaW9uIGNvbnRyb2w6ICAgICAgICAgVkNTIFJlcG9zaXRvcmllcy4gICAobGluZSAgICA2 KQogIC0gZGVjb2RpbmcgbWFpbCBtZXNzYWdlcyAoUm1haWwpOiAgICAgICAgUm1haWwgQ29kaW5n LiAgICAgICAobGluZSAgICA2KQogIC0gZGVjb2Rpbmcgbm9uLUFTQ0lJIGtleWJvYXJkIGlucHV0 IG9uIFg6IENvbW11bmljYXRpb24gQ29kaW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA1OCkKICAtIGRlY3JlYXNl IGJ1ZmZlciBmYWNlIGhlaWdodDogICAgICAgICAgIFRleHQgU2NhbGUuICAgICAgICAgKGxpbmUg ICAxOSkKICAtIGRlY3J5cHRpbmcgZmlsZXMgKGluIERpcmVkKTogICAgICAgICAgIE9wZXJhdGlu ZyBvbiBGaWxlcy4gKGxpbmUgIDExOCkKICAtIGRlZmF1bHQgYXJndW1lbnQ6ICAgICAgICAgICAg ICAgICAgICAgIEJhc2ljIE1pbmlidWZmZXIuICAgKGxpbmUgICAxNykKICAtIGRlZmF1bHQgZGly ZWN0b3J5OiAgICAgICAgICAgICAgICAgICAgIE1pbmlidWZmZXIgRmlsZS4gICAgKGxpbmUgICAg NikKICAtIGRlZmF1bHQgZGlyZWN0b3J5LCBvZiBhIGJ1ZmZlcjogICAgICAgIEZpbGUgTmFtZXMu ICAgICAgICAgKGxpbmUgICAyMikKICAtIOKAmGRlZmF1bHQgZmFjZeKAmTogICAgICAgICAgICAg ICAgICAgICAgICBGYWNlcy4gICAgICAgICAgICAgIChsaW5lICAgMzEpCiAgLSBkZWZhdWx0IGZp bGUgbmFtZTogICAgICAgICAgICAgICAgICAgICBGaWxlIE5hbWVzLiAgICAgICAgIChsaW5lICAg IDYpCiAgLSBkZWZhdWx0IHNlYXJjaCBtb2RlOiAgICAgICAgICAgICAgICAgICBTZWFyY2ggQ3Vz dG9taXphdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgICA5KQogIC0g4oCYZGVmYXVsdC5lbOKAmSBmaWxlLCBu b3QgbG9hZGluZzogICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAgKGxpbmUgICA4NykKICAtIOKA mGRlZmF1bHQuZWzigJksIHRoZSBkZWZhdWx0IGluaXQgZmlsZTogICBJbml0IEZpbGUuICAgICAg ICAgIChsaW5lICAgMTcpCiAgLSBkZWZpbmluZyBrZXlib2FyZCBtYWNyb3M6ICAgICAgICAgICAg ICBLZXlib2FyZCBNYWNyb3MuICAgIChsaW5lICAgIDYpCiAgLSBkZWZ1bnM6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3ZpbmcgYnkgRGVmdW5zLiAgIChsaW5lICAgIDYpCiAgLSA8 REVMPiBkb2VzIG5vdCBkZWxldGU6ICAgICAgICAgICAgICAgICBERUwgRG9lcyBOb3QgRGVsZXRl LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgICAgNikKICAtIDxERUw+IHZzIDxCQUNLU1BBQ0U+OiAgICAgICAgICAgICAg ICAgIERFTCBEb2VzIE5vdCBEZWxldGUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gRGVsZXRlIFNlbGVj dGlvbiBtb2RlOiAgICAgICAgICAgICAgICAgVXNpbmcgUmVnaW9uLiAgICAgICAobGluZSAgIDUw KQogIC0gZGVsZXRlIHdpbmRvdzogICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIFdpbmRv dy4gICAgICAobGluZSAgICA2KQogIC0gZGVsZXRpbmcgYXV0by1zYXZlIGZpbGVzOiAgICAgICAg ICAgICAgRmxhZ2dpbmcgTWFueSBGaWxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzApCiAgLSBkZWxldGluZyBi bGFuayBsaW5lczogICAgICAgICAgICAgICAgICBCbGFuayBMaW5lcy4gICAgICAgIChsaW5lICAg IDYpCiAgLSBkZWxldGluZyBjaGFyYWN0ZXJzIGFuZCBsaW5lczogICAgICAgICBFcmFzaW5nLiAg ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBkZWxldGluZyBmaWxlcyAoaW4gRGlyZWQpOiAgICAg ICAgICAgICBEaXJlZCBEZWxldGlvbi4gICAgIChsaW5lICAgIDYpCiAgLSBkZWxldGluZyByb3dz IGFuZCBjb2x1bW4gaW4gdGV4dC1iYXNlZCB0YWJsZXM6IFRhYmxlIFJvd3MgYW5kIENvbHVtbnMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDE5KQogIC0gZGVsZXRpbmcgc29tZSBiYWNrdXAgZmlsZXM6ICAgICAgICAg ICAgRmxhZ2dpbmcgTWFueSBGaWxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNTApCiAgLSBkZWxldGluZyB3aW5k b3dzOiAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgV2luZG93LiAgICAgIChsaW5lICAgIDYp CiAgLSBkZWxldGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxldGlvbiBhbmQg S2lsbGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBkZWxldGlvbiAob2YgZmlsZXMpOiAgICAgICAg ICAgICAgICAgICBNaXNjIEZpbGUgT3BzLiAgICAgIChsaW5lICAgIDkpCiAgLSBkZWxldGlvbiAo Um1haWwpOiAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBEZWxldGlvbi4gICAgIChsaW5lICAg IDYpCiAgLSBkZXNrdG9wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYXZpbmcgRW1h Y3MgU2Vzc2lvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gZGVza3RvcCByZXN0b3JlIGluIGRhZW1v biBtb2RlOiAgICAgICAgU2F2aW5nIEVtYWNzIFNlc3Npb25zLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA4MykKICAt IGRlc2t0b3Agc2hvcnRjdXQsIE1TLVdpbmRvd3M6ICAgICAgICAgIFdpbmRvd3MgU3RhcnR1cC4g ICAgKGxpbmUgICAgOCkKICAtIGRldGVybWluaXN0aWMgYnVpbGQ6ICAgICAgICAgICAgICAgICAg IEluaXRpYWwgT3B0aW9ucy4gICAgKGxpbmUgICA4MikKICAtIERldmFuYWdhcmk6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzEp CiAgLSBkZXZpY2UgZm9yIEVtYWNzIHRlcm1pbmFsIEkvTzogICAgICAgICBJbml0aWFsIE9wdGlv bnMuICAgIChsaW5lICAgMjcpCiAgLSBkaWFsb2cgYm94ZXM6ICAgICAgICAgICAgICAgICAgICAg ICAgICBEaWFsb2cgQm94ZXMuICAgICAgIChsaW5lICAgIDYpCiAgLSBEaWFsb2cgWCBSZXNvdXJj ZXMgKEx1Y2lkIHdpZGdldHMpOiAgICBMdWNpZCBSZXNvdXJjZXMuICAgIChsaW5lICAgIDYpCiAg LSBkaWFyeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWFyeS4gICAgICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBkaWFyeSBidWZmZXI6ICAgICAgICAgICAgICAgICAgICAgICAg ICBEaWFyeSBEaXNwbGF5LiAgICAgIChsaW5lICAgIDYpCiAgLSBkaWFyeSBmaWxlOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGb3JtYXQgb2YgRGlhcnkgRmlsZS4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYp CiAgLSBEaWZmIEF1dG8tUmVmaW5lIG1vZGU6ICAgICAgICAgICAgICAgICBEaWZmIE1vZGUuICAg ICAgICAgIChsaW5lICAgMzUpCiAgLSBEaWZmIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBEaWZmIE1vZGUuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBkaWdlc3QgbWVzc2FnZTog ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBEaWdlc3QuICAgICAgIChsaW5lICAgIDYpCiAg LSBkaXJlY3Rpb25hbCB3aW5kb3cgc2VsZWN0aW9uOiAgICAgICAgICBXaW5kb3cgQ29udmVuaWVu Y2UuIChsaW5lICAgMTgpCiAgLSBkaXJlY3RvcmllcyBpbiBidWZmZXIgbmFtZXM6ICAgICAgICAg ICBVbmlxdWlmeS4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBkaXJlY3RvcnkgaGVhZGVyIGxp bmVzOiAgICAgICAgICAgICAgICBTdWJkaXJlY3RvcnkgTW90aW9uLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAxMCkK ICAtIGRpcmVjdG9yeSBsaXN0aW5nOiAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yaWVzLiAg ICAgICAgKGxpbmUgICAgNikKICAtIGRpcmVjdG9yeSBsaXN0aW5nIG9uIE1TLURPUzogICAgICAg ICAgIE1TLURPUyBQcm9jZXNzZXMuICAgKGxpbmUgICA0NCkKICAtIGRpcmVjdG9yeSBuYW1lIGFi YnJldmlhdGlvbjogICAgICAgICAgIEZpbGUgQWxpYXNlcy4gICAgICAgKGxpbmUgICAzMykKICAt IGRpcmVjdG9yeSB0cmFja2luZzogICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeSBUcmFja2lu Zy4gKGxpbmUgICAgNikKICAtIGRpcmVjdG9yeSB3aGVyZSBFbWFjcyBzdGFydHMgb24gTVMtV2lu ZG93czogV2luZG93cyBTdGFydHVwLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgOCkKICAtIGRpcmVjdG9yeS1sb2Nh bCB2YXJpYWJsZXM6ICAgICAgICAgICAgIERpcmVjdG9yeSBWYXJpYWJsZXMuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg ICA2KQogIC0gRGlyZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWQuICAg ICAgICAgICAgICAobGluZSAgICA2KQogIC0gRGlyZWQgYW5kIHZlcnNpb24gY29udHJvbDogICAg ICAgICAgICAgTWlzYyBEaXJlZCBGZWF0dXJlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNDgpCiAgLSBEaXJlZCBz b3J0aW5nOiAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlZCBVcGRhdGluZy4gICAgIChsaW5l ICAgNjcpCiAgLSBEaXJlZCBzb3J0aW5nIG9yZGVyLCBvbiBNUy1XaW5kb3dzL01TLURPUzogbHMg aW4gTGlzcC4gICAgIChsaW5lICAgMjkpCiAgLSBEaXJlZCwgYW5kIE1TLVdpbmRvd3MvTVMtRE9T OiAgICAgICAgICBscyBpbiBMaXNwLiAgICAgICAgIChsaW5lICAgIDYpCiAgLSBEaXJ0cmFjayBt b2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RvcnkgVHJhY2tpbmcuIChsaW5lICAg MjUpCiAgLSBkaXNhYmxlIHdpbmRvdyBzeXN0ZW06ICAgICAgICAgICAgICAgICBJbml0aWFsIE9w dGlvbnMuICAgIChsaW5lICAgMzcpCiAgLSBkaXNhYmxlZCBjb21tYW5kOiAgICAgICAgICAgICAg ICAgICAgICBEaXNhYmxpbmcuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBkaXNhYmxpbmcgcmVt b3RlIGZpbGVzOiAgICAgICAgICAgICAgICBSZW1vdGUgRmlsZXMuICAgICAgIChsaW5lICAgMjUp CiAgLSDigJhESVNQTEFZ4oCZIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgRGlzcGxheSBY LiAgICAgICAgICAobGluZSAgICA2KQogIC0gZGlzcGxheSBmb3IgRW1hY3MgZnJhbWU6ICAgICAg ICAgICAgICAgSW5pdGlhbCBPcHRpb25zLiAgICAobGluZSAgIDMyKQogIC0gZGlzcGxheSBsaW5l IG51bWJlcnM6ICAgICAgICAgICAgICAgICAgRGlzcGxheSBDdXN0b20uICAgICAobGluZSAgICA5 KQogIC0gZGlzcGxheSBuYW1lIChYIFdpbmRvdyBTeXN0ZW0pOiAgICAgICAgRGlzcGxheSBYLiAg ICAgICAgICAobGluZSAgICA2KQogIC0gZGlzcGxheSBvZiBidWZmZXIgc2l6ZTogICAgICAgICAg ICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAobGluZSAgICA2KQogIC0gZGlzcGxheSBvZiBjdXJy ZW50IGxpbmUgbnVtYmVyOiAgICAgICAgT3B0aW9uYWwgTW9kZSBMaW5lLiAobGluZSAgIDE4KQog IC0gZGlzcGxheSwgaW5jb3JyZWN0OiAgICAgICAgICAgICAgICAgICAgU2NyZWVuIEdhcmJsZWQu ICAgICAobGluZSAgICA2KQogIC0gZGlzdHJpYnV0ZWQgdmVyc2lvbiBjb250cm9sOiAgICAgICAg ICAgVkNTIFJlcG9zaXRvcmllcy4gICAobGluZSAgICA2KQogIC0gRE5TIG1vZGU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQogIC0g RG9jVGVYIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYIE1vZGUuICAgICAgICAg ICAobGluZSAgICA2KQogIC0gZG9jdW1lbnQgdmlld2VyIChEb2NWaWV3KTogICAgICAgICAgICAg RG9jdW1lbnQgVmlldy4gICAgICAobGluZSAgICA2KQogIC0gZG9jdW1lbnRhdGlvbiBzdHJpbmc6 ICAgICAgICAgICAgICAgICAgS2V5IEhlbHAuICAgICAgICAgICAobGluZSAgIDEyKQogIC0gRG9j VmlldyBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnQgVmlldy4gICAgICAo bGluZSAgICA2KQogIC0gRE9TIGFwcGxpY2F0aW9ucywgcnVubmluZyBmcm9tIEVtYWNzOiAgV2lu ZG93cyBQcm9jZXNzZXMuICAobGluZSAgICA2KQogIC0gRE9TIGNvZGVwYWdlczogICAgICAgICAg ICAgICAgICAgICAgICAgTVMtRE9TIGFuZCBNVUxFLiAgICAobGluZSAgIDIxKQogIC0gRE9TLXN0 eWxlIGVuZC1vZi1saW5lIGRpc3BsYXk6ICAgICAgICAgUmVjb2duaXplIENvZGluZy4gICAobGlu ZSAgIDU2KQogIC0gRE9TLXRvLVVuaXggY29udmVyc2lvbiBvZiBmaWxlczogICAgICAgVGV4dCBh bmQgQmluYXJ5LiAgICAobGluZSAgIDM5KQogIC0gZG91YmxlIGNsaWNrczogICAgICAgICAgICAg ICAgICAgICAgICAgTW91c2UgQnV0dG9ucy4gICAgICAobGluZSAgIDI4KQogIC0gZG91YmxlIHNs YXNoIGluIGZpbGUgbmFtZTogICAgICAgICAgICAgTWluaWJ1ZmZlciBGaWxlLiAgICAobGluZSAg IDM0KQogIC0gZG93biBldmVudHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgTW91c2UgQnV0 dG9ucy4gICAgICAobGluZSAgICA2KQogIC0gZG93bmNhc2UgZmlsZSBuYW1lczogICAgICAgICAg ICAgICAgICAgVHJhbnNmb3JtaW5nIEZpbGUgTmFtZXMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDI3KQogIC0gZHJh ZyBhbmQgZHJvcDogICAgICAgICAgICAgICAgICAgICAgICAgRHJhZyBhbmQgRHJvcC4gICAgICAo bGluZSAgICA2KQogIC0gZHJhZyBhbmQgZHJvcCwgRGlyZWQ6ICAgICAgICAgICAgICAgICAgTWlz YyBEaXJlZCBGZWF0dXJlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNzQpCiAgLSBkcmFnIGV2ZW50czogICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3VzZSBCdXR0b25zLiAgICAgIChsaW5lICAgIDYpCiAgLSBk cmFzdGljIGNoYW5nZXM6ICAgICAgICAgICAgICAgICAgICAgICBSZXZlcnRpbmcuICAgICAgICAg IChsaW5lICAgIDYpCiAgLSBkcmliYmxlIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICBD aGVja2xpc3QuICAgICAgICAgIChsaW5lICAxMDgpCiAgLSBEU1NTTCBtb2RlOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQcm9ncmFtIE1vZGVzLiAgICAgIChsaW5lICAgMTUpCiAgLSBkdW5u ZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAgIChs aW5lICAgMzQpCiAgLSBEdXRjaDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5n dWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDMxKQogIC0gRFZJIGZpbGU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnQgVmlldy4gICAgICAobGluZSAgICA2KQogIC0g RWJyb3dzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFncyBUYWJsZXMuICAgICAg ICAobGluZSAgIDI2KQogIC0gZWNobyBhcmVhOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RWNobyBBcmVhLiAgICAgICAgICAobGluZSAgICA2KQogIC0gZWNobyBhcmVhIG1lc3NhZ2U6ICAg ICAgICAgICAgICAgICAgICAgRWNobyBBcmVhLiAgICAgICAgICAobGluZSAgIDE5KQogIC0gZWNo b2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWNobyBBcmVhLiAgICAgICAgICAo bGluZSAgICA5KQogIC0gRURFIChFbWFjcyBEZXZlbG9wbWVudCBFbnZpcm9ubWVudCk6ICAgRURF LiAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gRWRlYnVnOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ2hlY2tsaXN0LiAgICAgICAgICAobGluZSAgMTg5KQogIC0gZWRpdGFi bGUgZmllbGRzIChjdXN0b21pemF0aW9uIGJ1ZmZlcik6IEN1c3RvbWl6YXRpb24gR3JvdXBzLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgICAzOCkKICAtIGVkaXRpbmcgYmluYXJ5IGZpbGVzOiAgICAgICAgICAgICAgICAg IEVkaXRpbmcgQmluYXJ5IEZpbGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGVkaXRpbmcgaW4gUGlj dHVyZSBtb2RlOiAgICAgICAgICAgICAgIEJhc2ljIFBpY3R1cmUuICAgICAgKGxpbmUgICAgNikK ICAtIGVkaXRpbmcgbGV2ZWwsIHJlY3Vyc2l2ZTogICAgICAgICAgICAgIFJlY3Vyc2l2ZSBFZGl0 LiAgICAgKGxpbmUgICAgNikKICAtIOKAmEVESVRPUuKAmSBlbnZpcm9ubWVudCB2YXJpYWJsZTog ICAgICAgICBFbWFjcyBTZXJ2ZXIuICAgICAgIChsaW5lICAgIDYpCiAgLSBlaWdodC1iaXQgY2hh cmFjdGVyIHNldDogICAgICAgICAgICAgICBJbnRlcm5hdGlvbmFsIENoYXJzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICA1NCkKICAtIEVsZG9jIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3AgRG9j LiAgICAgICAgICAgKGxpbmUgICAxMSkKICAtIEVsZWN0cmljIEluZGVudCBtb2RlOiAgICAgICAg ICAgICAgICAgIEluZGVudCBDb252ZW5pZW5jZS4gKGxpbmUgICAxNSkKICAtIEVsZWN0cmljIFBh aXIgbW9kZTogICAgICAgICAgICAgICAgICAgIE1hdGNoaW5nLiAgICAgICAgICAgKGxpbmUgICA2 MSkKICAtIEVsZWN0cmljIFF1b3RlIG1vZGU6ICAgICAgICAgICAgICAgICAgIFF1b3RhdGlvbiBN YXJrcy4gICAgKGxpbmUgICAgNikKICAtIEVsaXphOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFtdXNlbWVudHMuICAgICAgICAgKGxpbmUgICA2MikKICAtIEVtYWNzIGFzIGEgc2Vy dmVyOiAgICAgICAgICAgICAgICAgICAgIEVtYWNzIFNlcnZlci4gICAgICAgKGxpbmUgICAgNikK ICAtIEVtYWNzIERldmVsb3BtZW50IEVudmlyb25tZW50OiAgICAgICAgIEVERS4gICAgICAgICAg ICAgICAgKGxpbmUgICAgNikKICAtIEVtYWNzIGljb24sIGEgZ251OiAgICAgICAgICAgICAgICAg ICAgIEljb25zIFguICAgICAgICAgICAgKGxpbmUgICAxMikKICAtIEVtYWNzIGluaXRpYWxpemF0 aW9uIGZpbGU6ICAgICAgICAgICAgIEluaXQgRmlsZS4gICAgICAgICAgKGxpbmUgICAgNikKICAt IEVtYWNzIExpc3AgbW9kZTogICAgICAgICAgICAgICAgICAgICAgIExpc3AgRXZhbC4gICAgICAg ICAgKGxpbmUgICAgNikKICAtIEVtYWNzIExpc3AgcGFja2FnZSBhcmNoaXZlOiAgICAgICAgICAg IFBhY2thZ2VzLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIOKAmGVtYWNzLWludGVybmFs4oCZ LCBjb2Rpbmcgc3lzdGVtOiAgICAgICBDb2RpbmcgU3lzdGVtcy4gICAgIChsaW5lICAxMTEpCiAg LSDigJhlbWFjczIy4oCZLCBjb21wbGV0aW9uIHN0eWxlOiAgICAgICAgICAgQ29tcGxldGlvbiBT dHlsZXMuICAobGluZSAgIDQxKQogIC0gZW1hY3NjbGllbnQ6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgRW1hY3MgU2VydmVyLiAgICAgICAobGluZSAgICA2KQogIC0g4oCYZW1hY3NjbGllbnTi gJkgaW52b2NhdGlvbjogICAgICAgICAgICAgIEludm9raW5nIGVtYWNzY2xpZW50LgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgICAgNikKICAtIOKAmGVtYWNzY2xpZW504oCZIG9wdGlvbnM6ICAgICAgICAgICAgICAgICBl bWFjc2NsaWVudCBPcHRpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIOKAmGVtYWNzY2xpZW504oCZ LCBvbiBNUy1XaW5kb3dzOiAgICAgICAgICBXaW5kb3dzIFN0YXJ0dXAuICAgIChsaW5lICAgNzIp CiAgLSBlbWFjc2NsaWVudC5leGU6ICAgICAgICAgICAgICAgICAgICAgICBXaW5kb3dzIFN0YXJ0 dXAuICAgIChsaW5lICAgNDgpCiAgLSBlbWFjc2NsaWVudHcuZXhlOiAgICAgICAgICAgICAgICAg ICAgICBXaW5kb3dzIFN0YXJ0dXAuICAgIChsaW5lICAgNDgpCiAgLSDigJhlbWFjc19iYWNrdHJh Y2UudHh04oCZIGZpbGUsIE1TLVdpbmRvd3M6IENyYXNoaW5nLiAgICAgICAgICAobGluZSAgICA2 KQogIC0gZW1haWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGluZyBNYWls LiAgICAgICAobGluZSAgICA2KQogIC0gZW1iZWRkZWQgd2lkZ2V0czogICAgICAgICAgICAgICAg ICAgICAgRW1iZWRkZWQgV2ViS2l0IFdpZGdldHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gRW1lcmdl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1lcmdlLiAgICAgICAgICAgICAobGlu ZSAgICA2KQogIC0gZW1lcmdlbmN5IGVzY2FwZTogICAgICAgICAgICAgICAgICAgICAgRW1lcmdl bmN5IEVzY2FwZS4gICAobGluZSAgICA2KQogIC0gZW5jb2Rpbmcgb2YgY2hhcmFjdGVyczogICAg ICAgICAgICAgICAgSW50ZXJuYXRpb25hbC4gICAgICAobGluZSAgICA2KQogIC0gZW5jcnlwdGVk IG1haWxzIChyZWFkaW5nIGluIFJtYWlsKTogICAgUm1haWwgRGlzcGxheS4gICAgICAobGluZSAg IDgzKQogIC0gZW5jcnlwdGluZyBmaWxlcyAoaW4gRGlyZWQpOiAgICAgICAgICAgT3BlcmF0aW5n IG9uIEZpbGVzLiAobGluZSAgMTMwKQogIC0gZW5jcnlwdGlvbjogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTmV0d29yayBTZWN1cml0eS4gICAobGluZSAgICA2KQogIC0gZW5kLW9mLWxpbmUg Y29udmVudGlvbiwgbW9kZS1saW5lIGluZGljYXRpb246IE1vZGUgTGluZS4gICAobGluZSAgIDQw KQogIC0gZW5kLW9mLWxpbmUgY29udmVyc2lvbjogICAgICAgICAgICAgICAgQ29kaW5nIFN5c3Rl bXMuICAgICAobGluZSAgIDU2KQogIC0gZW5kLW9mLWxpbmUgY29udmVyc2lvbiBvbiBNUy1ET1Mv TVMtV2luZG93czogVGV4dCBhbmQgQmluYXJ5LgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgOSkKICAtIEVuZ2xpc2g6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAgMzEpCiAgLSBFbnJpY2hlZCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBF bnJpY2hlZCBUZXh0LiAgICAgIChsaW5lICAgIDYpCiAgLSBlbnJpY2hlZCB0ZXh0OiAgICAgICAg ICAgICAgICAgICAgICAgICBFbnJpY2hlZCBUZXh0LiAgICAgIChsaW5lICAgIDYpCiAgLSBlbnRl cmluZyBFbWFjczogICAgICAgICAgICAgICAgICAgICAgICBFbnRlcmluZyBFbWFjcy4gICAgIChs aW5lICAgIDYpCiAgLSBlbnZpcm9ubWVudCB2YXJpYWJsZXM6ICAgICAgICAgICAgICAgICBFbnZp cm9ubWVudC4gICAgICAgIChsaW5lICAgIDYpCiAgLSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKG1h Y09TKTogICAgICAgICBNYWMgLyBHTlVzdGVwIEJhc2ljcy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNDEpCiAgLSBl bnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHN1YnNoZWxsczogICBJbnRlcmFjdGl2ZSBTaGVsbC4g IChsaW5lICAgMzYpCiAgLSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gZmlsZSBuYW1lczogICBG aWxlIE5hbWVzLiAgICAgICAgIChsaW5lICAgNTMpCiAgLSBlcXVpdmFsZW50IGNoYXJhY3RlciBz ZXF1ZW5jZXM6ICAgICAgICBMYXggU2VhcmNoLiAgICAgICAgIChsaW5lICAgNzMpCiAgLSBlcmFz aW5nIGNoYXJhY3RlcnMgYW5kIGxpbmVzOiAgICAgICAgICBFcmFzaW5nLiAgICAgICAgICAgIChs aW5lICAgIDYpCiAgLSBlcnJvciBsb2c6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21w aWxhdGlvbi4gICAgICAgIChsaW5lICAgIDYpCiAgLSBlcnJvciBtZXNzYWdlOiAgICAgICAgICAg ICAgICAgICAgICAgICBFY2hvIEFyZWEuICAgICAgICAgIChsaW5lICAgMTkpCiAgLSBlcnJvcnMg aW4gaW5pdCBmaWxlOiAgICAgICAgICAgICAgICAgICBJbml0aWFsIE9wdGlvbnMuICAgIChsaW5l ICAxMzIpCiAgLSA8RVNDPiByZXBsYWNpbmcgPE1ldGE+IGtleTogICAgICAgICAgICBVc2VyIElu cHV0LiAgICAgICAgIChsaW5lICAgMjcpCiAgLSBlc2NhcGUgc2VxdWVuY2VzIGluIGZpbGVzOiAg ICAgICAgICAgICBSZWNvZ25pemUgQ29kaW5nLiAgIChsaW5lICAgNjcpCiAgLSDigJhlc2NhcGUt Z2x5cGjigJkgZmFjZTogICAgICAgICAgICAgICAgICAgVGV4dCBEaXNwbGF5LiAgICAgICAobGlu ZSAgIDMzKQogIC0g4oCYRVNIRUxM4oCZIGVudmlyb25tZW50IHZhcmlhYmxlOiAgICAgICAgIElu dGVyYWN0aXZlIFNoZWxsLiAgKGxpbmUgICAzNikKICAtIEVzcGVyYW50bzogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzIpCiAg LSBldGFnczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdzIFRhYmxlcy4gICAg ICAgIChsaW5lICAgMTQpCiAgLSDigJhldGFnc+KAmSBwcm9ncmFtOiAgICAgICAgICAgICAgICAg ICAgICAgQ3JlYXRlIFRhZ3MgVGFibGUuICAobGluZSAgICA2KQogIC0gRXRoaW9waWM6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAzMikKICAtIEV0aGlvcGljIGNhbGVuZGFyOiAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFy IFN5c3RlbXMuICAgKGxpbmUgICA0MSkKICAtIEV1cm9wZWFuIGNoYXJhY3RlciBzZXRzOiAgICAg ICAgICAgICAgIFVuaWJ5dGUgTW9kZS4gICAgICAgKGxpbmUgICAgNikKICAtIGV2YWx1YXRlIGV4 cHJlc3Npb24sIGNvbW1hbmQtbGluZSBhcmd1bWVudDogQWN0aW9uIEFyZ3VtZW50cy4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICAgNjUpCiAgLSBldmFsdWF0aW9uLCBFbWFjcyBMaXNwOiAgICAgICAgICAgICAgICBMaXNw IEV2YWwuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBldmVudHMgb24gbWFjT1M6ICAgICAgICAg ICAgICAgICAgICAgICBNYWMgLyBHTlVzdGVwIEV2ZW50cy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBl eGl0IGluY3JlbWVudGFsIHNlYXJjaDogICAgICAgICAgICAgICBCYXNpYyBJc2VhcmNoLiAgICAg IChsaW5lICAgMzEpCiAgLSBleGl0aW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF eGl0aW5nLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBleGl0aW5nIHJlY3Vyc2l2ZSBlZGl0 OiAgICAgICAgICAgICAgICBSZWN1cnNpdmUgRWRpdC4gICAgIChsaW5lICAgMTMpCiAgLSBleHBh bmRpbmcgc3ViZGlyZWN0b3JpZXMgaW4gRGlyZWQ6ICAgICBTdWJkaXJlY3RvcmllcyBpbiBEaXJl ZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBleHBhbnNpb24gKG9mIGFiYnJldnMpOiAgICAgICAgICAg ICAgICBBYmJyZXZzLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBleHBhbnNpb24gb2YgQyBt YWNyb3M6ICAgICAgICAgICAgICAgICBPdGhlciBDIENvbW1hbmRzLiAgIChsaW5lICAgMzQpCiAg LSBleHBhbnNpb24gb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzOiAgICBGaWxlIE5hbWVzLiAgICAg ICAgIChsaW5lICAgNTMpCiAgLSBleHByZXNzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFeHByZXNzaW9ucy4gICAgICAgIChsaW5lICAgIDYpCiAgLSBleHB1bmdpbmcgKFJtYWlsKTog ICAgICAgICAgICAgICAgICAgICBSbWFpbCBEZWxldGlvbi4gICAgIChsaW5lICAgMTEpCiAgLSBm YWNlIGF0IHBvaW50OiAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hdGlvbmFsIENoYXJz LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgICA2NSkKICAtIGZhY2UgY29sb3JzLCBzZXR0aW5nOiAgICAgICAgICAgICAg ICAgIENvbG9ycy4gICAgICAgICAgICAgKGxpbmUgICAzMykKICAtIGZhY2VzOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZhY2VzLiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAt IGZhY2VzIGZvciBoaWdobGlnaHRpbmcgcXVlcnkgcmVwbGFjZTogIFF1ZXJ5IFJlcGxhY2UuICAg ICAgKGxpbmUgICAzNCkKICAtIGZhY2VzIGZvciBoaWdobGlnaHRpbmcgc2VhcmNoIG1hdGNoZXM6 IEJhc2ljIElzZWFyY2guICAgICAgKGxpbmUgICAyMSkKICAtIGZhY2VzIGZvciBtb2RlIGxpbmVz OiAgICAgICAgICAgICAgICAgIFN0YW5kYXJkIEZhY2VzLiAgICAgKGxpbmUgICA4MCkKICAtIGZh Y2VzIGZvciB0ZXh0LW1vZGUgbWVudXM6ICAgICAgICAgICAgIFN0YW5kYXJkIEZhY2VzLiAgICAg KGxpbmUgIDE0NikKICAtIGZhY2VzIHVuZGVyIE1TLURPUzogICAgICAgICAgICAgICAgICAgIE1T LURPUyBEaXNwbGF5LiAgICAgKGxpbmUgICAgNikKICAtIGZhY2VzLCBjdXN0b21pemluZzogICAg ICAgICAgICAgICAgICAgIEZhY2UgQ3VzdG9taXphdGlvbi4gKGxpbmUgICAgNikKICAtIGZhaWxl ZCBtZXJnZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgKGxp bmUgICA1MSkKICAtIEZlZWRtYWlsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haWwg U2VuZGluZy4gICAgICAgKGxpbmUgICAyOCkKICAtIEZGQVAgbWlub3IgbW9kZTogICAgICAgICAg ICAgICAgICAgICAgIEZGQVAuICAgICAgICAgICAgICAgKGxpbmUgICAxOCkKICAtIGZpbGUgYXJj aGl2ZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGUgQXJjaGl2ZXMuICAgICAgKGxpbmUg ICAgNikKICAtIGZpbGUgY29tcGFyaXNvbiAoaW4gRGlyZWQpOiAgICAgICAgICAgIENvbXBhcmlz b24gaW4gRGlyZWQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gZmlsZSBkYXRhYmFzZSAobG9jYXRlKTog ICAgICAgICAgICAgICAgRGlyZWQgYW5kIEZpbmQuICAgICAobGluZSAgIDM3KQogIC0gZmlsZSBk YXRlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJsb2NraW5nLiAgICAgICAobGlu ZSAgICA2KQogIC0gZmlsZSBkaXJlY3Rvcnk6ICAgICAgICAgICAgICAgICAgICAgICAgRGlyZWN0 b3JpZXMuICAgICAgICAobGluZSAgICA2KQogIC0gZmlsZSBsb2NhbCB2YXJpYWJsZXM6ICAgICAg ICAgICAgICAgICAgRmlsZSBWYXJpYWJsZXMuICAgICAobGluZSAgICA2KQogIC0gZmlsZSBsb2Nr aW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJsb2NraW5nLiAgICAgICAobGluZSAg IDE4KQogIC0gZmlsZSBtYW5hZ2VtZW50OiAgICAgICAgICAgICAgICAgICAgICAgRGlyZWQuICAg ICAgICAgICAgICAobGluZSAgICA2KQogIC0gZmlsZSBtb2RlczogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTWlzYyBGaWxlIE9wcy4gICAgICAobGluZSAgIDQ4KQogIC0gZmlsZSBuYW1lIGNh Y2hpbmc6ICAgICAgICAgICAgICAgICAgICAgRmlsZSBOYW1lIENhY2hlLiAgICAobGluZSAgICA2 KQogIC0gZmlsZSBuYW1lczogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBOYW1lcy4g ICAgICAgICAobGluZSAgICA2KQogIC0gZmlsZSBuYW1lcyBvbiBNUy1XaW5kb3dzOiAgICAgICAg ICAgICAgV2luZG93cyBGaWxlcy4gICAgICAobGluZSAgICA2KQogIC0gZmlsZSBuYW1lcyB1bmRl ciBNUy1ET1M6ICAgICAgICAgICAgICAgTVMtRE9TIEZpbGUgTmFtZXMuICAobGluZSAgICA2KQog IC0gZmlsZSBuYW1lcyB1bmRlciBXaW5kb3dzIDk1L05UOiAgICAgICAgTVMtRE9TIEZpbGUgTmFt ZXMuICAobGluZSAgIDI2KQogIC0gZmlsZSBuYW1lcyB3aXRoIG5vbi1BU0NJSSBjaGFyYWN0ZXJz OiAgRmlsZSBOYW1lIENvZGluZy4gICAobGluZSAgIDEwKQogIC0gZmlsZSBuYW1lcywgaW52YWxp ZCBjaGFyYWN0ZXJzIG9uIE1TLVdpbmRvd3M6IFdpbmRvd3MgRmlsZXMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDMz KQogIC0gZmlsZSBuYW1lcywgcXVvdGUgc3BlY2lhbCBjaGFyYWN0ZXJzOiAgUXVvdGVkIEZpbGUg TmFtZXMuICAobGluZSAgICA2KQogIC0gZmlsZSBub3RpZmljYXRpb25zOiAgICAgICAgICAgICAg ICAgICAgUmV2ZXJ0aW5nLiAgICAgICAgICAobGluZSAgIDQ2KQogIC0gZmlsZSBvd25lcnNoaXAs IGFuZCBiYWNrdXA6ICAgICAgICAgICAgQmFja3VwIENvcHlpbmcuICAgICAobGluZSAgIDIwKQog IC0gZmlsZSBwZXJtaXNzaW9uczogICAgICAgICAgICAgICAgICAgICAgTWlzYyBGaWxlIE9wcy4g ICAgICAobGluZSAgIDQ4KQogIC0gZmlsZSBzZWxlY3Rpb24gZGlhbG9nOiAgICAgICAgICAgICAg ICAgVmlzaXRpbmcuICAgICAgICAgICAobGluZSAgMTIwKQogIC0gZmlsZSBzZWxlY3Rpb24gZGlh bG9nLCBob3cgdG8gZGlzYWJsZTogRGlhbG9nIEJveGVzLiAgICAgICAobGluZSAgIDE3KQogIC0g ZmlsZSBzaGFkb3dzOiAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBTaGFkb3dpbmcuICAg ICAobGluZSAgICA2KQogIC0gZmlsZSB0cnVlbmFtZXM6ICAgICAgICAgICAgICAgICAgICAgICAg RmlsZSBBbGlhc2VzLiAgICAgICAobGluZSAgIDI3KQogIC0gZmlsZSB2ZXJzaW9uIGluIGNoYW5n ZSBsb2cgZW50cmllczogICAgQ2hhbmdlIExvZyBDb21tYW5kcy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzQpCiAg LSBmaWxlLCB3YXJuaW5nIHdoZW4gc2l6ZSBpcyBsYXJnZTogICAgICBWaXNpdGluZy4gICAgICAg ICAgIChsaW5lICAgNjIpCiAgLSBmaWxlLWJhc2VkIHZlcnNpb24gY29udHJvbDogICAgICAgICAg ICBWQ1MgQ2hhbmdlc2V0cy4gICAgIChsaW5lICAgIDYpCiAgLSBmaWxlLW5hbWUgY29tcGxldGlv biwgb24gTVMtV2luZG93czogICBXaW5kb3dzIEZpbGVzLiAgICAgIChsaW5lICAgMTEpCiAgLSBm aWxlLW5hbWUgZW5jb2RpbmcsIE1TLVdpbmRvd3M6ICAgICAgICBGaWxlIE5hbWUgQ29kaW5nLiAg IChsaW5lICAgMjgpCiAgLSBmaWxlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG aWxlcy4gICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBmaWxlcywgdmlzaXRpbmcgYW5kIHNh dmluZzogICAgICAgICAgICBWaXNpdGluZy4gICAgICAgICAgIChsaW5lICAgMjMpCiAgLSBmaWxl c2V0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlc2V0cy4gICAgICAgICAgIChs aW5lICAgIDYpCiAgLSBmaWxlc2V0cywgVkM6ICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNp YyBWQyBFZGl0aW5nLiAgIChsaW5lICAgIDYpCiAgLSBmaWxsIHByZWZpeDogICAgICAgICAgICAg ICAgICAgICAgICAgICBGaWxsIFByZWZpeC4gICAgICAgIChsaW5lICAgIDYpCiAgLSBmaWxsaW5n IHRleHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxsaW5nLiAgICAgICAgICAgIChsaW5l ICAgIDYpCiAgLSBmaW5kOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIE5h bWUgQ2FjaGUuICAgIChsaW5lICAgIDYpCiAgLSDigJhmaW5k4oCZIGFuZCBEaXJlZDogICAgICAg ICAgICAgICAgICAgICAgRGlyZWQgYW5kIEZpbmQuICAgICAobGluZSAgICA2KQogIC0gZmluZCBk ZWZpbml0aW9uIG9mIHN5bWJvbHM6ICAgICAgICAgICAgTG9va2luZyBVcCBJZGVudGlmaWVycy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBmaW5kIEluZm8gbWFudWFsIGJ5IGl0cyBmaWxlIG5hbWU6ICAg ICBNaXNjIEhlbHAuICAgICAgICAgIChsaW5lICAgMTEpCiAgLSBmaW5kIHJlZmVyZW5jZXMgdG8g c3ltYm9sczogICAgICAgICAgICBMb29raW5nIFVwIElkZW50aWZpZXJzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAg NikKICAtIGZpbmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgS2V5 d29yZHMuICAgKGxpbmUgICAgNikKICAtIGZpbmRpbmcgZmlsZSBhdCBwb2ludDogICAgICAgICAg ICAgICAgIEZGQVAuICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGZpbmRpbmcgZmlsZXMg Y29udGFpbmluZyByZWdleHAgbWF0Y2hlcyAoaW4gRGlyZWQpOiBNYXJrcyB2cyBGbGFncy4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAxMjQpCiAgLSBmaW5kaW5nIHN0cmluZ3Mgd2l0aGluIHRleHQ6ICAgICAgICAgICBT ZWFyY2guICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBmaXJld2FsbCwgYW5kIGFjY2Vzc2lu ZyByZW1vdGUgZmlsZXM6ICBSZW1vdGUgRmlsZXMuICAgICAgIChsaW5lICAgNTcpCiAgLSBmaXhp bmcgaW5jb3JyZWN0bHkgZGVjb2RlZCBtYWlsIG1lc3NhZ2VzOiBSbWFpbCBDb2RpbmcuICAgIChs aW5lICAgMTYpCiAgLSBmbGFnZ2luZyBmaWxlcyAoaW4gRGlyZWQpOiAgICAgICAgICAgICBEaXJl ZCBEZWxldGlvbi4gICAgIChsaW5lICAgIDYpCiAgLSBmbGFnZ2luZyBtYW55IGZpbGVzIGZvciBk ZWxldGlvbiAoaW4gRGlyZWQpOiBGbGFnZ2luZyBNYW55IEZpbGVzLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikK ICAtIEZseXNwZWxsIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgIFNwZWxsaW5nLiAgICAg ICAgICAgKGxpbmUgIDE1NCkKICAtIGZvbGRpbmcgZWRpdGluZzogICAgICAgICAgICAgICAgICAg ICAgIEZvbGRvdXQuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIEZvbGxvdyBtb2RlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIEZvbGxvdyBNb2RlLiAgICAgICAgKGxpbmUgICAgNikKICAt IGZvbnQgYW50aWFsaWFzaW5nIChNUyBXaW5kb3dzKTogICAgICAgIFdpbmRvd3MgRm9udHMuICAg ICAgKGxpbmUgICA5NCkKICAtIGZvbnQgYmFja2VuZCBzZWxlY3Rpb24gKE1TLVdpbmRvd3MpOiAg IFdpbmRvd3MgRm9udHMuICAgICAgKGxpbmUgICAxNSkKICAtIGZvbnQgYmFja2VuZCwgb24gbWFj T1M6ICAgICAgICAgICAgICAgIE1hYyAvIEdOVXN0ZXAgQ3VzdG9taXphdGlvbi4KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5l ICAgMTgpCiAgLSBmb250IGZvciBtZW51czogICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBv ZiBSZXNvdXJjZXMuIChsaW5lICAgOTUpCiAgLSBGb250IExvY2sgbW9kZTogICAgICAgICAgICAg ICAgICAgICAgICBGb250IExvY2suICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBmb250IG5hbWUg KFggV2luZG93IFN5c3RlbSk6ICAgICAgICAgICBGb250IFguICAgICAgICAgICAgIChsaW5lICAg IDYpCiAgLSBmb250IG9mIGNoYXJhY3RlciBhdCBwb2ludDogICAgICAgICAgICBJbnRlcm5hdGlv bmFsIENoYXJzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgICA2NSkKICAtIGZvbnQgcHJvcGVydGllcyAoTVMgV2luZG93 cyBnZGkgYmFja2VuZCk6IFdpbmRvd3MgRm9udHMuICAgKGxpbmUgICA3OCkKICAtIGZvbnQgcHJv cGVydGllcyAoTVMgV2luZG93cyk6ICAgICAgICAgIFdpbmRvd3MgRm9udHMuICAgICAgKGxpbmUg ICAyOSkKICAtIGZvbnQgc2NyaXB0cyAoTVMgV2luZG93cyk6ICAgICAgICAgICAgIFdpbmRvd3Mg Rm9udHMuICAgICAgKGxpbmUgICA4MCkKICAtIGZvbnQgc3BlY2lmaWNhdGlvbiAoTVMgV2luZG93 cyk6ICAgICAgIFdpbmRvd3MgRm9udHMuICAgICAgKGxpbmUgICAgNikKICAtIGZvbnQgVW5pY29k ZSBzdWJyYW5nZXMgKE1TIFdpbmRvd3MpOiAgIFdpbmRvd3MgRm9udHMuICAgICAgKGxpbmUgICA4 MCkKICAtIGZvbnRjb25maWc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvbnRzLiAgICAg ICAgICAgICAgKGxpbmUgICA0NikKICAtIGZvbnRzOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZvbnRzLiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGZvbnRzIGFuZCBmYWNl czogICAgICAgICAgICAgICAgICAgICAgIEZhY2UgQ3VzdG9taXphdGlvbi4gKGxpbmUgICAgNikK ICAtIGZvbnRzIGZvciBQb3N0U2NyaXB0IHByaW50aW5nOiAgICAgICAgIFBvc3RTY3JpcHQgVmFy aWFibGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICA1MikKICAtIGZvbnRzIGZvciB2YXJpb3VzIHNjcmlwdHM6ICAg ICAgICAgICAgIEZvbnRzZXRzLiAgICAgICAgICAgKGxpbmUgICAxNCkKICAtIGZvbnRzLCBlbXVs YXRpbmcgdW5kZXIgTVMtRE9TOiAgICAgICAgIE1TLURPUyBEaXNwbGF5LiAgICAgKGxpbmUgICAg NikKICAtIGZvbnRzLCBob3cgdG8gaWdub3JlOiAgICAgICAgICAgICAgICAgIE1vZGlmeWluZyBG b250c2V0cy4gKGxpbmUgICAzNSkKICAtIGZvbnRzZXRzOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZvbnRzZXRzLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGZvbnRzZXRzLCBtb2Rp Znlpbmc6ICAgICAgICAgICAgICAgICAgIE1vZGlmeWluZyBGb250c2V0cy4gKGxpbmUgICAgNikK ICAtIGZvcmVncm91bmQgY29sb3IsIGNvbW1hbmQtbGluZSBhcmd1bWVudDogQ29sb3JzIFguICAg ICAgICAgKGxpbmUgICAxMikKICAtIGZvcmVncm91bmQgZm9yIG1lbnVzOiAgICAgICAgICAgICAg ICAgIFRhYmxlIG9mIFJlc291cmNlcy4gKGxpbmUgIDEwMCkKICAtIGZvcm1mZWVkIGNoYXJhY3Rl cjogICAgICAgICAgICAgICAgICAgIFBhZ2VzLiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAt IEZvcnRyYW4gNzcgYW5kIEZvcnRyYW4gOTAsIDk1LCAyMDAzLCAyMDA4OiBGb3J0cmFuLiAgICAg ICAgKGxpbmUgICAgNikKICAtIEZvcnRyYW4gY29udGludWF0aW9uIGxpbmVzOiAgICAgICAgICAg IEZvckluZGVudCBDb250LiAgICAgKGxpbmUgICAgNikKICAtIEZvcnRyYW4gZml4ZWQgZm9ybSBh bmQgZnJlZSBmb3JtOiAgICAgIEZvcnRyYW4uICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIEZv cnRyYW4gbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgIEZvcnRyYW4uICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIGZvcnR1bmUgY29va2llczogICAgICAgICAgICAgICAgICAgICAgIE1h aWwgQW11c2VtZW50cy4gICAgKGxpbmUgICAxOSkKICAtIGZvcndhcmRpbmcgYSBtZXNzYWdlOiAg ICAgICAgICAgICAgICAgIFJtYWlsIFJlcGx5LiAgICAgICAgKGxpbmUgICA2OCkKICAtIGZyYW1l OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmVlbi4gICAgICAgICAgICAgKGxp bmUgICAgNikKICAtIGZyYW1lIGZvY3VzIHBvbGljeSwgTVMtV2luZG93czogICAgICAgIFdpbmRv d3MgTWlzYy4gICAgICAgKGxpbmUgICAxOCkKICAtIGZyYW1lIHNpemUgdW5kZXIgTVMtRE9TOiAg ICAgICAgICAgICAgIE1TLURPUyBEaXNwbGF5LiAgICAgKGxpbmUgICA0MikKICAtIGZyYW1lIHNp emUsIHNwZWNpZnlpbmcgZGVmYXVsdDogICAgICAgIEZyYW1lIFBhcmFtZXRlcnMuICAgKGxpbmUg ICAxMykKICAtIGZyYW1lIHRpdGxlLCBjb21tYW5kLWxpbmUgYXJndW1lbnQ6ICAgIFRpdGxlIFgu ICAgICAgICAgICAgKGxpbmUgICAxNikKICAtIGZyYW1lczogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZyYW1lcy4gICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGZyYW1lcyBvbiBN Uy1ET1M6ICAgICAgICAgICAgICAgICAgICAgIE1TLURPUyBEaXNwbGF5LiAgICAgKGxpbmUgICAz NikKICAtIEZyZW5jaDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVu dmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAgMzIpCiAgLSBGcmVuY2ggUmV2b2x1dGlvbmFyeSBjYWxl bmRhcjogICAgICAgICBDYWxlbmRhciBTeXN0ZW1zLiAgIChsaW5lICAgMjkpCiAgLSDigJhmcmlu Z2XigJkgZmFjZTogICAgICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmQgRmFjZXMuICAgICAo bGluZSAgMTE3KQogIC0gZnJpbmdlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJp bmdlcy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gZnJpbmdlcywgYW5kIGNvbnRpbnVhdGlv biBsaW5lczogICAgICAgQ29udGludWF0aW9uIExpbmVzLiAobGluZSAgICA2KQogIC0gZnJpbmdl cywgYW5kIHVudXNlZCBsaW5lIGluZGljYXRpb246ICAgVXNlbGVzcyBXaGl0ZXNwYWNlLiAobGlu ZSAgIDI4KQogIC0gZnJpbmdlcywgZm9yIGRlYnVnZ2luZzogICAgICAgICAgICAgICAgU291cmNl IEJ1ZmZlcnMuICAgICAobGluZSAgICA2KQogIC0gRlRQOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAobGluZSAgICA2KQogIC0gZnVsbGhlaWdo dCwgY29tbWFuZC1saW5lIGFyZ3VtZW50OiAgICAgV2luZG93IFNpemUgWC4gICAgICAobGluZSAg IDMyKQogIC0gZnVsbHNjcmVlbiwgY29tbWFuZC1saW5lIGFyZ3VtZW50OiAgICAgV2luZG93IFNp emUgWC4gICAgICAobGluZSAgIDE4KQogIC0gZnVsbHdpZHRoLCBjb21tYW5kLWxpbmUgYXJndW1l bnQ6ICAgICAgV2luZG93IFNpemUgWC4gICAgICAobGluZSAgIDM2KQogIC0gZnVuY3Rpb24ga2V5 OiAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5bWFwcy4gICAgICAgICAgICAobGluZSAgIDM0 KQogIC0gZnVuY3Rpb24sIG1vdmUgdG8gYmVnaW5uaW5nIG9yIGVuZDogICAgTW92aW5nIGJ5IERl ZnVucy4gICAobGluZSAgIDE3KQogIC0gZnV0dXJlIGhpc3RvcnkgZm9yIGZpbGUgbmFtZXM6ICAg ICAgICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAobGluZSAgIDQzKQogIC0gZ2FtZXM6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAobGluZSAgICA2KQog IC0gZ2FtbWEgY29ycmVjdGlvbjogICAgICAgICAgICAgICAgICAgICAgVGFibGUgb2YgUmVzb3Vy Y2VzLiAobGluZSAgMTE4KQogIC0gZ2FyYmxlZCBkaXNwbGF5OiAgICAgICAgICAgICAgICAgICAg ICAgU2NyZWVuIEdhcmJsZWQuICAgICAobGluZSAgICA2KQogIC0gZ2FyYmxlZCB0ZXh0OiAgICAg ICAgICAgICAgICAgICAgICAgICAgVGV4dCBHYXJibGVkLiAgICAgICAobGluZSAgICA2KQogIC0g Z2F0ZXdheSwgYW5kIHJlbW90ZSBmaWxlIGFjY2VzcyB3aXRoIOKAmGFuZ2UtZnRw4oCZOiBSZW1v dGUgRmlsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgIDU3KQogIC0gR0RCOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGVidWdnZXJzLiAgICAgICAgICAobGluZSAgICA2KQogIC0gR0RCIFVzZXIg SW50ZXJmYWNlIGxheW91dDogICAgICAgICAgICAgR0RCIFVzZXIgSW50ZXJmYWNlIExheW91dC4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBnZW9tZXRyeSBvZiBFbWFjcyB3aW5kb3c6ICAgICAgICAgICAg ICBXaW5kb3cgU2l6ZSBYLiAgICAgIChsaW5lICAgIDYpCiAgLSBnZW9tZXRyeSwgY29tbWFuZC1s aW5lIGFyZ3VtZW50OiAgICAgICBXaW5kb3cgU2l6ZSBYLiAgICAgIChsaW5lICAgMTEpCiAgLSBH ZW9yZ2lhbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVu dHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgIDMyKQogIC0gR2VybWFuOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzMikKICAtIGdldHRpbmcg aGVscCB3aXRoIGtleXM6ICAgICAgICAgICAgICAgIEJhc2ljIEhlbHAuICAgICAgICAgKGxpbmUg ICAgNikKICAtIEdob3N0c2NyaXB0LCB1c2UgZm9yIFBvc3RTY3JpcHQgcHJpbnRpbmc6IFdpbmRv d3MgUHJpbnRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgIDk3KQogIC0gZ2l0OiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM4KQog IC0gR2xhc3NlcyBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgTWl4ZWRDYXNlIFdvcmRz LiAgICAobGluZSAgIDEyKQogIC0gR2xvYmFsIEF1dG8gUmV2ZXJ0IG1vZGU6ICAgICAgICAgICAg ICAgUmV2ZXJ0aW5nLiAgICAgICAgICAobGluZSAgIDM3KQogIC0gZ2xvYmFsIGtleW1hcDogICAg ICAgICAgICAgICAgICAgICAgICAgS2V5bWFwcy4gICAgICAgICAgICAobGluZSAgIDIxKQogIC0g Z2xvYmFsIG1hcms6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VBIEJpbmRpbmdzLiAgICAg ICAobGluZSAgIDQ3KQogIC0gZ2xvYmFsIG1hcmsgcmluZzogICAgICAgICAgICAgICAgICAgICAg R2xvYmFsIE1hcmsgUmluZy4gICAobGluZSAgICA2KQogIC0gZ2xvYmFsIHN1YnN0aXR1dGlvbjog ICAgICAgICAgICAgICAgICAgUmVwbGFjZS4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gZ2xv c3Nhcnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2xvc3NhcnkuICAgICAgICAgICAo bGluZSAgICA2KQogIC0gZ2x5cGhsZXNzIGNoYXJhY3RlcnM6ICAgICAgICAgICAgICAgICAgVGV4 dCBEaXNwbGF5LiAgICAgICAobGluZSAgIDUwKQogIC0g4oCYZ2x5cGhsZXNzLWNoYXLigJkgZmFj ZTogICAgICAgICAgICAgICAgIFRleHQgRGlzcGxheS4gICAgICAgKGxpbmUgICA1MCkKICAtIOKA mGdudS5lbWFjcy5oZWxw4oCZIG5ld3Nncm91cDogICAgICAgICAgICBTZXJ2aWNlLiAgICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBHbnVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHbnVzLiAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBHTlVzdGVwOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNYWMgT1MgLyBHTlVzdGVwLiAgIChsaW5lICAgIDYpCiAgLSBH byBNb2t1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAg IChsaW5lICAgMzYpCiAgLSBHb3RvIEFkZHJlc3MgbW9kZTogICAgICAgICAgICAgICAgICAgICBH b3RvIEFkZHJlc3MgbW9kZS4gIChsaW5lICAgIDYpCiAgLSBncmFwaGljIGNoYXJhY3RlcnM6ICAg ICAgICAgICAgICAgICAgICBJbnNlcnRpbmcgVGV4dC4gICAgIChsaW5lICAgIDYpCiAgLSBHcmVl azogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDMyKQogIC0gR3JlZ29yaWFuIGNhbGVuZGFyOiAgICAgICAgICAgICAgICAg ICAgT3RoZXIgQ2FsZW5kYXJzLiAgICAobGluZSAgICA2KQogIC0gZ3Jvd2luZyBtaW5pYnVmZmVy OiAgICAgICAgICAgICAgICAgICAgTWluaWJ1ZmZlciBFZGl0LiAgICAobGluZSAgIDI2KQogIC0g R1RLIGZvbnQgcGF0dGVybjogICAgICAgICAgICAgICAgICAgICAgRm9udHMuICAgICAgICAgICAg ICAobGluZSAgIDkyKQogIC0gR1RLKyByZXNvdXJjZXM6ICAgICAgICAgICAgICAgICAgICAgICAg R1RLIHJlc291cmNlcy4gICAgICAobGluZSAgICA2KQogIC0gR1RLKyBzdHlsZXM6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgR1RLIHN0eWxlcy4gICAgICAgICAobGluZSAgICA2KQogIC0gR1RL KyB3aWRnZXQgY2xhc3NlczogICAgICAgICAgICAgICAgICAgR1RLIE5hbWVzIGluIEVtYWNzLiAo bGluZSAgICA2KQogIC0gR1RLKyB3aWRnZXQgbmFtZXM6ICAgICAgICAgICAgICAgICAgICAgR1RL IFdpZGdldCBOYW1lcy4gICAobGluZSAgICA2KQogIC0gR1RLKyB3aWRnZXQgbmFtZXMgaW4gRW1h Y3M6ICAgICAgICAgICAgR1RLIE5hbWVzIGluIEVtYWNzLiAobGluZSAgICA2KQogIC0gR1VEIGlu dGVyYWN0aW9uIGJ1ZmZlcjogICAgICAgICAgICAgICAgRGVidWdnZXIgT3BlcmF0aW9uLiAobGlu ZSAgICA2KQogIC0gR1VEIGxpYnJhcnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVidWdn ZXJzLiAgICAgICAgICAobGluZSAgICA2KQogIC0gR1VEIFRvb2x0aXAgbW9kZTogICAgICAgICAg ICAgICAgICAgICAgRGVidWdnZXIgT3BlcmF0aW9uLiAobGluZSAgIDMyKQogIC0gZ3VpbGxlbWV0 czogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVvdGF0aW9uIE1hcmtzLiAgICAobGluZSAg ICA2KQogIC0gR3VqYXJhdGk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2Ug RW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgICAzMikKICAtIGd6aXA6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENvbXByZXNzZWQgRmlsZXMuICAgKGxpbmUgICAgNikKICAtIEhhbjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmF0aW9uYWwuICAgICAgKGxp bmUgICAgNikKICAtIGhhbmR3cml0aW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc3RT Y3JpcHQuICAgICAgICAgKGxpbmUgICA1NCkKICAtIEhhbmd1bDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEludGVybmF0aW9uYWwuICAgICAgKGxpbmUgICAgNikKICAtIGhhcmQgbGlu a3MgKGNyZWF0aW9uKTogICAgICAgICAgICAgICAgIENvcHlpbmcgYW5kIE5hbWluZy4gKGxpbmUg ICA0MCkKICAtIGhhcmQgbGlua3MgKGluIERpcmVkKTogICAgICAgICAgICAgICAgIE9wZXJhdGlu ZyBvbiBGaWxlcy4gKGxpbmUgICA2NCkKICAtIGhhcmQgbGlua3MgKHZpc2l0aW5nKTogICAgICAg ICAgICAgICAgIEZpbGUgQWxpYXNlcy4gICAgICAgKGxpbmUgICAgNikKICAtIGhhcmQgbmV3bGlu ZTogICAgICAgICAgICAgICAgICAgICAgICAgIEhhcmQgYW5kIFNvZnQgTmV3bGluZXMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgICA2KQogIC0gaGFyZGNvcHk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJp bnRpbmcuICAgICAgICAgICAobGluZSAgICA2KQogIC0gaGVhZGVyIChUZVggbW9kZSk6ICAgICAg ICAgICAgICAgICAgICAgVGVYIFByaW50LiAgICAgICAgICAobGluZSAgIDk3KQogIC0gaGVhZGVy IGxpbmUgKERpcmVkKTogICAgICAgICAgICAgICAgICAgU3ViZGlyZWN0b3J5IE1vdGlvbi4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAgMTApCiAgLSDigJhoZWFkZXItbGluZeKAmSBmYWNlOiAgICAgICAgICAgICAgICAg ICAgU3RhbmRhcmQgRmFjZXMuICAgICAobGluZSAgIDk3KQogIC0g4oCYaGVhZGVyLWxpbmUtaGln aGxpZ2h04oCZIGZhY2U6ICAgICAgICAgIFN0YW5kYXJkIEZhY2VzLiAgICAgKGxpbmUgIDEwMikK ICAtIGhlYWRlcnMgKG9mIG1haWwgbWVzc2FnZSk6ICAgICAgICAgICAgIE1haWwgSGVhZGVycy4g ICAgICAgKGxpbmUgICAgNikKICAtIGhlYWRpbmcgbGluZXMgKE91dGxpbmUgbW9kZSk6ICAgICAg ICAgIE91dGxpbmUgRm9ybWF0LiAgICAgKGxpbmUgICAgNikKICAtIEhlYnJldzogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAg MzMpCiAgLSBIZWJyZXcgY2FsZW5kYXI6ICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBT eXN0ZW1zLiAgIChsaW5lICAgMTYpCiAgLSBoZWlnaHQgb2YgbWluaWJ1ZmZlcjogICAgICAgICAg ICAgICAgICBNaW5pYnVmZmVyIEVkaXQuICAgIChsaW5lICAgMjYpCiAgLSBoZWlnaHQgb2YgdGhl IGhvcml6b250YWwgc2Nyb2xsIGJhcjogICBTY3JvbGwgQmFycy4gICAgICAgIChsaW5lICAgODkp CiAgLSBoZWxwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwLiAgICAgICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBoZWxwIGluIHVzaW5nIEVtYWNzOiAgICAgICAgICAgICAg ICAgICBTZXJ2aWNlLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBoZWxwIHRleHQsIGluIEdU SysgZmlsZSBjaG9vc2VyOiAgICAgICBEaWFsb2cgQm94ZXMuICAgICAgIChsaW5lICAgMjMpCiAg LSBoZWxwLCB2aWV3aW5nIHdlYiBwYWdlczogICAgICAgICAgICAgICBIZWxwIE1vZGUuICAgICAg ICAgIChsaW5lICAgMzgpCiAgLSDigJhoZWxwLWdudS1lbWFjc+KAmSBtYWlsaW5nIGxpc3Q6ICAg ICAgICAgU2VydmljZS4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gaGV4IGVkaXRpbmc6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgRWRpdGluZyBCaW5hcnkgRmlsZXMuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg ICA2KQogIC0gSGV4bCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRpdGluZyBC aW5hcnkgRmlsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gaGc6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDQzKQog IC0gSGkgTG9jayBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVy YWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgIDExKQogIC0gaGlkZGVuIGZpbGVzLCBpbiBHVEsrIGZpbGUg Y2hvb3NlcjogICAgRGlhbG9nIEJveGVzLiAgICAgICAobGluZSAgIDIzKQogIC0gSGlkZS1pZmRl ZiBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAobGluZSAg IDg2KQogIC0gSGlkZXNob3cgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgSGlkZXNob3cu ICAgICAgICAgICAobGluZSAgICA2KQogIC0gaGlkaW5nIGRldGFpbHMgaW4gRGlyZWQ6ICAgICAg ICAgICAgICAgTWlzYyBEaXJlZCBGZWF0dXJlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNDApCiAgLSBoaWRpbmcg c3ViZGlyZWN0b3JpZXMgKERpcmVkKTogICAgICAgICBIaWRpbmcgU3ViZGlyZWN0b3JpZXMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgICA2KQogIC0gSGlnaGxpZ2h0IENoYW5nZXMgbW9kZTogICAgICAgICAgICAgICAg SGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gaGlnaGxpZ2h0IGN1 cnJlbnQgbGluZTogICAgICAgICAgICAgICAgQ3Vyc29yIERpc3BsYXkuICAgICAobGluZSAgIDUz KQogIC0gaGlnaGxpZ2h0aW5nIGJ5IG1hdGNoaW5nOiAgICAgICAgICAgICAgSGlnaGxpZ2h0IElu dGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gaGlnaGxpZ2h0aW5nIGxpbmVzIG9mIHRl eHQ6ICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDU5KQog IC0gaGlnaGxpZ2h0aW5nIG1hdGNoaW5nIHBhcmVudGhlc2VzOiAgICAgTWF0Y2hpbmcuICAgICAg ICAgICAobGluZSAgIDM0KQogIC0gaGlnaGxpZ2h0aW5nIHBocmFzZTogICAgICAgICAgICAgICAg ICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDY0KQogIC0gaGlnaGxpZ2h0 aW5nIHJlZ2lvbjogICAgICAgICAgICAgICAgICAgRGlzYWJsZWQgVHJhbnNpZW50IE1hcmsuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgICA2KQogIC0gaGlnaGxpZ2h0aW5nIHN5bWJvbCBhdCBwb2ludDogICAgICAgICAg SGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDcxKQogIC0gSGluZGk6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYXRpb25hbC4gICAgICAobGluZSAgICA2 KQogIC0gaGlzdG9yeSBvZiBjb21tYW5kczogICAgICAgICAgICAgICAgICAgUmVwZXRpdGlvbi4g ICAgICAgICAobGluZSAgICA2KQogIC0gaGlzdG9yeSBvZiBtaW5pYnVmZmVyIGlucHV0OiAgICAg ICAgICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAobGluZSAgICA2KQogIC0gaGlzdG9yeSByZWZlcmVu Y2U6ICAgICAgICAgICAgICAgICAgICAgSGlzdG9yeSBSZWZlcmVuY2VzLiAobGluZSAgICA2KQog IC0gaG9saWRheSBmb3JtczogICAgICAgICAgICAgICAgICAgICAgICAgSG9saWRheSBDdXN0b21p emluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAgMzIpCiAgLSBob2xpZGF5czogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBIb2xpZGF5cy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBIT01FIGRpcmVjdG9y eSBvbiBNUy1XaW5kb3dzOiAgICAgICAgICBXaW5kb3dzIEhPTUUuICAgICAgIChsaW5lICAgIDYp CiAgLSBob21lIGRpcmVjdG9yeSBzaG9ydGhhbmQ6ICAgICAgICAgICAgICBNaW5pYnVmZmVyIEZp bGUuICAgIChsaW5lICAgNDcpCiAgLSBIT01FIGRpcmVjdG9yeSB1bmRlciBNUy1ET1M6ICAgICAg ICAgICBNUy1ET1MgRmlsZSBOYW1lcy4gIChsaW5lICAgMzUpCiAgLSDigJhob21vZ2x5cGjigJkg ZmFjZTogICAgICAgICAgICAgICAgICAgICAgVGV4dCBEaXNwbGF5LiAgICAgICAobGluZSAgIDYx KQogIC0gaG9vazogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9va3MuICAgICAg ICAgICAgICAobGluZSAgICA2KQogIC0gSG9yaXpvbnRhbCBTY3JvbGwgQmFyOiAgICAgICAgICAg ICAgICAgU2Nyb2xsIEJhcnMuICAgICAgICAobGluZSAgIDY2KQogIC0gSG9yaXpvbnRhbCBTY3Jv bGwgQmFyIG1vZGU6ICAgICAgICAgICAgU2Nyb2xsIEJhcnMuICAgICAgICAobGluZSAgIDY2KQog IC0gaG9yaXpvbnRhbCBzY3JvbGxpbmc6ICAgICAgICAgICAgICAgICAgSG9yaXpvbnRhbCBTY3Jv bGxpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgICA2KQogIC0gaG91cmdsYXNzIHBvaW50ZXIgZGlzcGxheTogICAg ICAgICAgICAgRGlzcGxheSBDdXN0b20uICAgICAobGluZSAgIDg3KQogIC0gSFRNTCBtb2RlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAgICAobGluZSAgICA2 KQogIC0gaHVuZ3J5IGRlbGV0aW9uIChDIE1vZGUpOiAgICAgICAgICAgICAgSHVuZ3J5IERlbGV0 ZS4gICAgICAobGluZSAgICA2KQogIC0gaHVuaywgZGlmZjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgRGlmZiBNb2RlLiAgICAgICAgICAobGluZSAgIDExKQogIC0gSHlwZXIgKHVuZGVyIE1T LURPUyk6ICAgICAgICAgICAgICAgICAgTVMtRE9TIEtleWJvYXJkLiAgICAobGluZSAgIDIwKQog IC0gaHlwZXJsaW5rOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscCBNb2RlLiAgICAg ICAgICAobGluZSAgIDI5KQogIC0gaHlwZXJsaW5rczogICAgICAgICAgICAgICAgICAgICAgICAg ICAgTW91c2UgUmVmZXJlbmNlcy4gICAobGluZSAgICA2KQogIC0gaUNhbGVuZGFyIHN1cHBvcnQ6 ICAgICAgICAgICAgICAgICAgICAgSW1wb3J0aW5nIERpYXJ5LiAgICAobGluZSAgIDE2KQogIC0g SWNvbXBsZXRlIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgSWNvbXBsZXRlLiAgICAgICAg ICAobGluZSAgICA2KQogIC0gSWNvbiBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQogIC0gaWNvbmlmeWluZzogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRXhpdGluZy4gICAgICAgICAgICAobGluZSAgIDQ3KQogIC0gaWNv bnMgKFggV2luZG93IFN5c3RlbSk6ICAgICAgICAgICAgICAgSWNvbnMgWC4gICAgICAgICAgICAo bGluZSAgICA2KQogIC0gaWNvbnMsIHRvb2xiYXI6ICAgICAgICAgICAgICAgICAgICAgICAgVG9v bCBCYXJzLiAgICAgICAgICAobGluZSAgICA2KQogIC0gaWRlbnRpZmllciwgZmluZGluZyBkZWZp bml0aW9uIG9mOiAgICAgTG9va2luZyBVcCBJZGVudGlmaWVycy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAg LSBJREwgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDIE1vZGVzLiAgICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBpZ25vcmUgZm9udDogICAgICAgICAgICAgICAgICAgICAgICAg ICBNb2RpZnlpbmcgRm9udHNldHMuIChsaW5lICAgMzUpCiAgLSBpZ25vcmVkIGZpbGUgbmFtZXMs IGluIGNvbXBsZXRpb246ICAgICBDb21wbGV0aW9uIE9wdGlvbnMuIChsaW5lICAgMTkpCiAgLSBp bWFnZSBhbmltYXRpb246ICAgICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4g IChsaW5lICAgMzQpCiAgLSDigJhpbWFnZS1kaXJlZOKAmTogICAgICAgICAgICAgICAgICAgICAg ICAgSW1hZ2UtRGlyZWQuICAgICAgICAobGluZSAgICA2KQogIC0g4oCYaW1hZ2UtZGlyZWTigJkg bW9kZTogICAgICAgICAgICAgICAgICAgIEltYWdlLURpcmVkLiAgICAgICAgKGxpbmUgICAgNikK ICAtIEltYWdlTWFnaWNrIHN1cHBvcnQ6ICAgICAgICAgICAgICAgICAgIEZpbGUgQ29udmVuaWVu Y2VzLiAgKGxpbmUgICA0NikKICAtIGltYWdlcywgdmlld2luZzogICAgICAgICAgICAgICAgICAg ICAgIEZpbGUgQ29udmVuaWVuY2VzLiAgKGxpbmUgICAyMCkKICAtIElNQVAgbWFpbGJveGVzOiAg ICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBNYWlsYm94ZXMuICAgKGxpbmUgICAzMikKICAt IGluLXNpdHUgc3ViZGlyZWN0b3J5IChEaXJlZCk6ICAgICAgICAgIFN1YmRpcmVjdG9yaWVzIGlu IERpcmVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAxOSkKICAtIGluYm94IGZpbGU6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJtYWlsIEluYm94LiAgICAgICAgKGxpbmUgICAgNikKICAtIGluY29ycmVjdCBm b250aWZpY2F0aW9uOiAgICAgICAgICAgICAgIEZvbnQgTG9jay4gICAgICAgICAgKGxpbmUgICA1 NCkKICAtIGluY3JlYXNlIGJ1ZmZlciBmYWNlIGhlaWdodDogICAgICAgICAgIFRleHQgU2NhbGUu ICAgICAgICAgKGxpbmUgICAxOSkKICAtIGluY3JlbWVudGFsIHNlYXJjaDogICAgICAgICAgICAg ICAgICAgIEluY3JlbWVudGFsIFNlYXJjaC4gKGxpbmUgICAgNikKICAtIGluY3JlbWVudGFsIHNl YXJjaCwgZWRpdCBzZWFyY2ggc3RyaW5nOiBSZXBlYXQgSXNlYXJjaC4gICAgKGxpbmUgICA1MikK ICAtIGluY3JlbWVudGFsIHNlYXJjaCwgZXhpdGluZzogICAgICAgICAgIEJhc2ljIElzZWFyY2gu ICAgICAgKGxpbmUgICAzMSkKICAtIGluY3JlbWVudGFsIHNlYXJjaCwgaGVscCBvbiBzcGVjaWFs IGtleXM6IFNwZWNpYWwgSXNlYXJjaC4gKGxpbmUgICA4NykKICAtIGluY3JlbWVudGFsIHNlYXJj aCwgaW5wdXQgbWV0aG9kIGludGVyZmVyZW5jZTogSW5wdXQgTWV0aG9kcy4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAg ODEpCiAgLSBpbmRlbnRhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRlbnRhdGlv bi4gICAgICAgIChsaW5lICAgIDYpCiAgLSBpbmRlbnRhdGlvbiBmb3IgY29tbWVudHM6ICAgICAg ICAgICAgICBDb21tZW50IENvbW1hbmRzLiAgIChsaW5lICAgIDYpCiAgLSBpbmRlbnRhdGlvbiBm b3IgcHJvZ3JhbXM6ICAgICAgICAgICAgICBQcm9ncmFtIEluZGVudC4gICAgIChsaW5lICAgIDYp CiAgLSBpbmRleCBvZiBidWZmZXIgZGVmaW5pdGlvbnM6ICAgICAgICAgICBJbWVudS4gICAgICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBpbmRpcmVjdCBidWZmZXI6ICAgICAgICAgICAgICAgICAg ICAgICBJbmRpcmVjdCBCdWZmZXJzLiAgIChsaW5lICAgIDYpCiAgLSBpbmRpcmVjdCBidWZmZXJz IGFuZCBvdXRsaW5lczogICAgICAgICBPdXRsaW5lIFZpZXdzLiAgICAgIChsaW5lICAgIDYpCiAg LSBpbmZlcmlvciBwcm9jZXNzOiAgICAgICAgICAgICAgICAgICAgICBDb21waWxhdGlvbi4gICAg ICAgIChsaW5lICAgIDYpCiAgLSBpbmZlcmlvciBwcm9jZXNzZXMgdW5kZXIgTVMtRE9TOiAgICAg ICBNUy1ET1MgUHJvY2Vzc2VzLiAgIChsaW5lICAgIDYpCiAgLSBJbmZvOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBp bml0IGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbml0IEZpbGUuICAgICAgICAg IChsaW5lICAgIDYpCiAgLSBpbml0IGZpbGUg4oCYLmVtYWNz4oCZIG9uIE1TLVdpbmRvd3M6ICAg ICAgV2luZG93cyBIT01FLiAgICAgICAobGluZSAgIDQxKQogIC0gaW5pdCBmaWxlLCBkZWZhdWx0 IG5hbWUgdW5kZXIgTVMtRE9TOiAgTVMtRE9TIEZpbGUgTmFtZXMuICAobGluZSAgICA2KQogIC0g aW5pdCBmaWxlLCBub3QgbG9hZGluZzogICAgICAgICAgICAgICAgSW5pdGlhbCBPcHRpb25zLiAg ICAobGluZSAgIDg3KQogIC0gaW5pdGlhbCBvcHRpb25zIChjb21tYW5kIGxpbmUpOiAgICAgICAg RW1hY3MgSW52b2NhdGlvbi4gICAobGluZSAgIDQwKQogIC0g4oCYaW5pdGlhbHPigJksIGNvbXBs ZXRpb24gc3R5bGU6ICAgICAgICAgIENvbXBsZXRpb24gU3R5bGVzLiAgKGxpbmUgICA1OCkKICAt IGlucHV0IGV2ZW50OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXIgSW5wdXQuICAgICAg ICAgKGxpbmUgICA0MikKICAtIGlucHV0IG1ldGhvZHM6ICAgICAgICAgICAgICAgICAgICAgICAg IElucHV0IE1ldGhvZHMuICAgICAgKGxpbmUgICAgNikKICAtIGlucHV0IG1ldGhvZHMsIFg6ICAg ICAgICAgICAgICAgICAgICAgIFRhYmxlIG9mIFJlc291cmNlcy4gKGxpbmUgIDE1NykKICAtIGlu cHV0IHdpdGggdGhlIGtleWJvYXJkOiAgICAgICAgICAgICAgIFVzZXIgSW5wdXQuICAgICAgICAg KGxpbmUgICAgNikKICAtIGluc2VydCBmaWxlIGNvbnRlbnRzLCBjb21tYW5kLWxpbmUgYXJndW1l bnQ6IEFjdGlvbiBBcmd1bWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDY4KQogIC0gaW5zZXJ0IFVuaWNvZGUg Y2hhcmFjdGVyOiAgICAgICAgICAgICAgSW5zZXJ0aW5nIFRleHQuICAgICAobGluZSAgIDYwKQog IC0gaW5zZXJ0ZWQgc3ViZGlyZWN0b3J5IChEaXJlZCk6ICAgICAgICAgU3ViZGlyZWN0b3JpZXMg aW4gRGlyZWQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgIDE5KQogIC0gaW5zZXJ0aW5nIGJsYW5rIGxpbmVzOiAgICAg ICAgICAgICAgICAgQmxhbmsgTGluZXMuICAgICAgICAobGluZSAgICA2KQogIC0gaW5zZXJ0aW5n IG1hdGNoaW5nIHBhcmVudGhlc2VzOiAgICAgICAgTWF0Y2hpbmcuICAgICAgICAgICAobGluZSAg IDYxKQogIC0gaW5zZXJ0aW5nIHJvd3MgYW5kIGNvbHVtbnMgaW4gdGV4dC1iYXNlZCB0YWJsZXM6 IFRhYmxlIFJvd3MgYW5kIENvbHVtbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gaW5zZXJ0aW9uOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zZXJ0aW5nIFRleHQuICAgICAobGluZSAgICA2 KQogIC0g4oCYSU5TSURFX0VNQUNT4oCZIGVudmlyb25tZW50IHZhcmlhYmxlOiAgIEludGVyYWN0 aXZlIFNoZWxsLiAgKGxpbmUgICA1NSkKICAtIEludGVncmF0ZWQgZGV2ZWxvcG1lbnQgZW52aXJv bm1lbnQ6ICAgIEVERS4gICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIGludGVyYWN0aXZl IGhpZ2hsaWdodGluZzogICAgICAgICAgICAgIEhpZ2hsaWdodCBJbnRlcmFjdGl2ZWx5LgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIGludGVyYWN0aXZlbHkgZWRpdCBzZWFyY2ggc3RyaW5nOiAgICAgIFJl cGVhdCBJc2VhcmNoLiAgICAgKGxpbmUgICA1MikKICAtIGludGVybmFsIGJvcmRlciB3aWR0aCwg Y29tbWFuZC1saW5lIGFyZ3VtZW50OiBCb3JkZXJzIFguICAgKGxpbmUgICAxNSkKICAtIGludGVy bmF0aW9uYWwgY2hhcmFjdGVycyBpbiDigJguZW1hY3PigJk6ICBJbml0IE5vbi1BU0NJSS4gICAg IChsaW5lICAgIDYpCiAgLSBpbnRlcm5hdGlvbmFsIGZpbGVzIGZyb20gRE9TL1dpbmRvd3Mgc3lz dGVtczogQ29kaW5nIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDIwKQogIC0gaW50ZXJuYXRpb25hbCBz Y3JpcHRzOiAgICAgICAgICAgICAgICAgSW50ZXJuYXRpb25hbC4gICAgICAobGluZSAgICA2KQog IC0gaW50ZXJuYXRpb25hbCBzdXBwb3J0IChNUy1ET1MpOiAgICAgICAgTVMtRE9TIGFuZCBNVUxF LiAgICAobGluZSAgICA2KQogIC0gSW50bGZvbnRzIGZvciBQb3N0U2NyaXB0IHByaW50aW5nOiAg ICAgUG9zdFNjcmlwdCBWYXJpYWJsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDUyKQogIC0gSW50bGZvbnRzIHBh Y2thZ2UsIGluc3RhbGxhdGlvbjogICAgICAgRm9udHNldHMuICAgICAgICAgICAobGluZSAgIDE0 KQogIC0gaW52aXNpYmxlIGxpbmVzOiAgICAgICAgICAgICAgICAgICAgICAgT3V0bGluZSBNb2Rl LiAgICAgICAobGluZSAgICA2KQogIC0gaW52aXNpYmxlIHRleHQsIGFuZCBxdWVyeS1yZXBsYWNl OiAgICAgUXVlcnkgUmVwbGFjZS4gICAgICAobGluZSAgMTQ4KQogIC0gaW52aXNpYmxlIHRleHQs IHNlYXJjaGluZyBmb3I6ICAgICAgICAgU3BlY2lhbCBJc2VhcmNoLiAgICAobGluZSAgIDIyKQog IC0gaW52b2NhdGlvbiAoY29tbWFuZCBsaW5lIGFyZ3VtZW50cyk6ICAgRW1hY3MgSW52b2NhdGlv bi4gICAobGluZSAgICA2KQogIC0gaW52b2tpbmcgRW1hY3MgZnJvbSBXaW5kb3dzIEV4cGxvcmVy OiAgV2luZG93cyBTdGFydHVwLiAgICAobGluZSAgIDQ4KQogIC0gSVBBOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAz MykKICAtIGlzZWFyY2g6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudGFs IFNlYXJjaC4gKGxpbmUgICAgNikKICAtIOKAmGlzZWFyY2jigJkgZmFjZTogICAgICAgICAgICAg ICAgICAgICAgICBCYXNpYyBJc2VhcmNoLiAgICAgIChsaW5lICAgMjEpCiAgLSBpc2VhcmNoIG11 bHRpcGxlIGJ1ZmZlcnM6ICAgICAgICAgICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgICAxMykKICAtIGlzZWFyY2ggbXVsdGlwbGUgZmlsZXM6ICAgICAgICAgICAgICAgIE90 aGVyIFJlcGVhdGluZyBTZWFyY2guCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDI1KQogIC0g4oCYaXNlYXJjaC1mYWls 4oCZIGZhY2U6ICAgICAgICAgICAgICAgICAgIEVycm9yIGluIElzZWFyY2guICAgKGxpbmUgICAg NikKICAtIElzbGFtaWMgY2FsZW5kYXI6ICAgICAgICAgICAgICAgICAgICAgIENhbGVuZGFyIFN5 c3RlbXMuICAgKGxpbmUgICAyMCkKICAtIElTTyBjb21tZXJjaWFsIGNhbGVuZGFyOiAgICAgICAg ICAgICAgIENhbGVuZGFyIFN5c3RlbXMuICAgKGxpbmUgICAgNikKICAtIElTTyBMYXRpbiBjaGFy YWN0ZXIgc2V0czogICAgICAgICAgICAgIFVuaWJ5dGUgTW9kZS4gICAgICAgKGxpbmUgICAgNikK ICAtIOKAmGlzby1hc2NpaeKAmSBsaWJyYXJ5OiAgICAgICAgICAgICAgICAgICBVbmlieXRlIE1v ZGUuICAgICAgIChsaW5lICAgMjkpCiAgLSDigJhpc28tdHJhbnNs4oCZIGxpYnJhcnk6ICAgICAg ICAgICAgICAgICAgVW5pYnl0ZSBNb2RlLiAgICAgICAobGluZSAgIDYzKQogIC0g4oCYaXNwZWxs 4oCZIHByb2dyYW06ICAgICAgICAgICAgICAgICAgICAgIFNwZWxsaW5nLiAgICAgICAgICAgKGxp bmUgIDEyOSkKICAtIEl0YWxpYW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1 YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzMpCiAgLSBKYXBhbmVzZTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDMz KQogIC0gamFyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBBcmNoaXZl cy4gICAgICAobGluZSAgIDQ1KQogIC0gSmF2YSBjbGFzcyBhcmNoaXZlczogICAgICAgICAgICAg ICAgICAgRmlsZSBBcmNoaXZlcy4gICAgICAobGluZSAgIDQ1KQogIC0gSmF2YSBtb2RlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQyBNb2Rlcy4gICAgICAgICAgICAobGluZSAgICA2KQog IC0gSmF2YXNjcmlwdCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4g ICAgICAobGluZSAgIDE1KQogIC0gSkRCOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGVidWdnZXJzLiAgICAgICAgICAobGluZSAgICA2KQogIC0gSnVsaWFuIGNhbGVuZGFyOiAg ICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgU3lzdGVtcy4gICAobGluZSAgICA4KQogIC0g SnVsaWFuIGRheSBudW1iZXJzOiAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgU3lzdGVtcy4g ICAobGluZSAgIDEyKQogIC0ganVzdC1pbi10aW1lIChKSVQpIGZvbnQtbG9jazogICAgICAgICAg Rm9udCBMb2NrLiAgICAgICAgICAobGluZSAgIDc5KQogIC0ganVzdGlmaWNhdGlvbjogICAgICAg ICAgICAgICAgICAgICAgICAgRmlsbCBDb21tYW5kcy4gICAgICAobGluZSAgIDM0KQogIC0ganVz dGlmaWNhdGlvbiBpbiB0ZXh0LWJhc2VkIHRhYmxlczogICAgQ2VsbCBKdXN0aWZpY2F0aW9uLiAo bGluZSAgICA2KQogIC0ganVzdGlmaWNhdGlvbiBzdHlsZTogICAgICAgICAgICAgICAgICAgRW5y aWNoZWQgSnVzdGlmaWNhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBLYW5uYWRhOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg IDMzKQogIC0gS2VyYmVyb3MgUE9QMyBhdXRoZW50aWNhdGlvbjogICAgICAgICAgUmVtb3RlIE1h aWxib3hlcy4gICAobGluZSAgIDU1KQogIC0ga2V5OiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgS2V5cy4gICAgICAgICAgICAgICAobGluZSAgIDEwKQogIC0ga2V5IGJpbmRpbmdz OiAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5IEJpbmRpbmdzLiAgICAgICAobGluZSAgICA2 KQogIC0ga2V5IHJlYmluZGluZywgcGVybWFuZW50OiAgICAgICAgICAgICAgSW5pdCBSZWJpbmRp bmcuICAgICAobGluZSAgICA2KQogIC0ga2V5IHJlYmluZGluZywgdGhpcyBzZXNzaW9uOiAgICAg ICAgICAgUmViaW5kaW5nLiAgICAgICAgICAobGluZSAgICA2KQogIC0ga2V5IHNlcXVlbmNlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgS2V5cy4gICAgICAgICAgICAgICAobGluZSAgIDEwKQog IC0ga2V5Ym9hcmQgaW5wdXQ6ICAgICAgICAgICAgICAgICAgICAgICAgVXNlciBJbnB1dC4gICAg ICAgICAobGluZSAgICA2KQogIC0ga2V5Ym9hcmQgbWFjcm86ICAgICAgICAgICAgICAgICAgICAg ICAgS2V5Ym9hcmQgTWFjcm9zLiAgICAobGluZSAgICA2KQogIC0ga2V5Ym9hcmQgbWFjcm9zLCBp biByZWdpc3RlcnM6ICAgICAgICAgS2V5Ym9hcmQgTWFjcm8gUmVnaXN0ZXJzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIGtleWJvYXJkIHNob3J0Y3V0czogICAgICAgICAgICAgICAgICAgIEdsb3NzYXJ5 LiAgICAgICAgICAgKGxpbmUgIDc4MSkKICAtIGtleWJvYXJkLCBNUy1XaW5kb3dzOiAgICAgICAg ICAgICAgICAgIFdpbmRvd3MgS2V5Ym9hcmQuICAgKGxpbmUgICAgNikKICAtIGtleW1hcDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleW1hcHMuICAgICAgICAgICAgKGxpbmUgICAg NikKICAtIGtleXBhZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uIEtl eXMuICAgICAgKGxpbmUgICA0OCkKICAtIGtleXBhZCBrZXlzIChNUy1XaW5kb3dzKTogICAgICAg ICAgICAgIFdpbmRvd3MgS2V5Ym9hcmQuICAgKGxpbmUgICA4NCkKICAtIGtleXMgc3RvbGVuIGJ5 IHdpbmRvdyBtYW5hZ2VyOiAgICAgICAgIFVzZXIgSW5wdXQuICAgICAgICAgKGxpbmUgICAzNikK ICAtIGtleXMsIHJlc2VydmVkOiAgICAgICAgICAgICAgICAgICAgICAgIEtleSBCaW5kaW5ncy4g ICAgICAgKGxpbmUgICAxMSkKICAtIEtobWVyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzMpCiAgLSBraWxsIERPUyBh cHBsaWNhdGlvbjogICAgICAgICAgICAgICAgICBXaW5kb3dzIFByb2Nlc3Nlcy4gIChsaW5lICAg MzcpCiAgLSBraWxsIHJpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZYW5raW5nLiAg ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBraWxsaW5nIGJ1ZmZlcnM6ICAgICAgICAgICAgICAg ICAgICAgICBLaWxsIEJ1ZmZlci4gICAgICAgIChsaW5lICAgIDYpCiAgLSBraWxsaW5nIGNoYXJh Y3RlcnMgYW5kIGxpbmVzOiAgICAgICAgICBFcmFzaW5nLiAgICAgICAgICAgIChsaW5lICAgIDYp CiAgLSBraWxsaW5nIEVtYWNzOiAgICAgICAgICAgICAgICAgICAgICAgICBFeGl0aW5nLiAgICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBraWxsaW5nIGV4cHJlc3Npb25zOiAgICAgICAgICAgICAg ICAgICBFeHByZXNzaW9ucy4gICAgICAgIChsaW5lICAgNDQpCiAgLSBraWxsaW5nIHJlY3Rhbmd1 bGFyIGFyZWFzIG9mIHRleHQ6ICAgICBSZWN0YW5nbGVzLiAgICAgICAgIChsaW5lICAgIDYpCiAg LSBraWxsaW5nIHRleHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWxldGlvbiBhbmQgS2ls bGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBLb3JlYW46ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDMzKQogIC0gbGFiZWwg KFJtYWlsKTogICAgICAgICAgICAgICAgICAgICAgICAgUm1haWwgTGFiZWxzLiAgICAgICAobGlu ZSAgICA2KQogIC0gbGFuZ3VhZ2UgZW52aXJvbm1lbnQsIGF1dG9tYXRpYyBzZWxlY3Rpb24gb24g TVMtRE9TOiBNUy1ET1MgYW5kIE1VTEUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDQ2KQogIC0gbGFuZ3VhZ2UgZW52 aXJvbm1lbnRzOiAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgICAgNikKICAtIExhbzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1 YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzMpCiAgLSBMYVRlWCBtb2RlOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUZVggTW9kZS4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBM YXRpbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVu dHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgIDM0KQogIC0gTGF0aW4tMSBUZVggZW5jb2Rpbmc6ICAgICAgICAgICAg ICAgICAgVGVYIE1pc2MuICAgICAgICAgICAobGluZSAgIDEyKQogIC0gTGF0dmlhbjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAzNSkKICAtIGxheCBzZWFyY2g6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExheCBTZWFy Y2guICAgICAgICAgKGxpbmUgICAgNikKICAtIGxheCBzcGFjZSBtYXRjaGluZyBpbiByZXBsYWNl IGNvbW1hbmRzOiBSZXBsYWNlbWVudCBhbmQgTGF4IE1hdGNoZXMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDExKQog IC0gbGF4IHNwYWNlIG1hdGNoaW5nIGluIHNlYXJjaDogICAgICAgICAgTGF4IFNlYXJjaC4gICAg ICAgICAobGluZSAgIDE1KQogIC0gbGF6eSBoaWdobGlnaHRpbmcgY3VzdG9taXphdGlvbnM6ICAg ICAgU2VhcmNoIEN1c3RvbWl6YXRpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyMykKICAtIGxhenkgc2VhcmNo IGhpZ2hsaWdodGluZzogICAgICAgICAgICAgIFJlcGVhdCBJc2VhcmNoLiAgICAgKGxpbmUgICAx NCkKICAtIOKAmGxhenktaGlnaGxpZ2h04oCZIGZhY2U6ICAgICAgICAgICAgICAgICBTZWFyY2gg Q3VzdG9taXphdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGluZSAgIDIzKQogIC0g4oCYbGF6eS1oaWdobGlnaHTigJkg ZmFjZSwgaW4gcmVwbGFjZTogICAgIFF1ZXJ5IFJlcGxhY2UuICAgICAgKGxpbmUgICAzNCkKICAt IGxlYXZpbmcgRW1hY3M6ICAgICAgICAgICAgICAgICAgICAgICAgIEV4aXRpbmcuICAgICAgICAg ICAgKGxpbmUgICAgNikKICAtIGxpYnJhcmllczogICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3AgTGlicmFyaWVzLiAgICAgKGxpbmUgICAgNikKICAtIExpZmU6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFtdXNlbWVudHMuICAgICAgICAgKGxpbmUgICA0MykKICAtIGxp bmUgZW5kaW5nczogICAgICAgICAgICAgICAgICAgICAgICAgIENvZGluZyBTeXN0ZW1zLiAgICAg KGxpbmUgICA1NikKICAtIGxpbmUgbW9kZSAodGVybWluYWwgZW11bGF0b3IpOiAgICAgICAgIFRl cm1pbmFsIGVtdWxhdG9yLiAgKGxpbmUgICAxMCkKICAtIGxpbmUgbnVtYmVyIGNvbW1hbmRzOiAg ICAgICAgICAgICAgICAgIFBvc2l0aW9uIEluZm8uICAgICAgKGxpbmUgICAzNykKICAtIGxpbmUg bnVtYmVyIGRpc3BsYXk6ICAgICAgICAgICAgICAgICAgIE9wdGlvbmFsIE1vZGUgTGluZS4gKGxp bmUgICAxOCkKICAtIGxpbmUgc3BhY2luZzogICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl IG9mIFJlc291cmNlcy4gKGxpbmUgICA3OSkKICAtIGxpbmUgc3BhY2luZywgY29tbWFuZC1saW5l IGFyZ3VtZW50OiAgIE1pc2MgWC4gICAgICAgICAgICAgKGxpbmUgICAxNykKICAtIGxpbmUgdHJ1 bmNhdGlvbjogICAgICAgICAgICAgICAgICAgICAgIExpbmUgVHJ1bmNhdGlvbi4gICAgKGxpbmUg ICAgNikKICAtIGxpbmUgdHJ1bmNhdGlvbiwgYW5kIGZyaW5nZXM6ICAgICAgICAgIENvbnRpbnVh dGlvbiBMaW5lcy4gKGxpbmUgICAyMCkKICAtIGxpbmUgd3JhcHBpbmc6ICAgICAgICAgICAgICAg ICAgICAgICAgIENvbnRpbnVhdGlvbiBMaW5lcy4gKGxpbmUgICAgNikKICAtIOKAmGxpbmUtbnVt YmVy4oCZIGZhY2U6ICAgICAgICAgICAgICAgICAgICBEaXNwbGF5IEN1c3RvbS4gICAgIChsaW5l ICAgNzApCiAgLSBsaW5lcywgaGlnaGxpZ2h0aW5nOiAgICAgICAgICAgICAgICAgICBIaWdobGln aHQgSW50ZXJhY3RpdmVseS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNTkpCiAgLSBsaW5rczogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNb3VzZSBSZWZlcmVuY2VzLiAgIChsaW5lICAgIDYpCiAgLSBs aW5rcyAoY3VzdG9taXphdGlvbiBidWZmZXIpOiAgICAgICAgICBDdXN0b21pemF0aW9uIEdyb3Vw cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAgMzgpCiAgLSBMaXNwIGNoYXJhY3RlciBzeW50YXg6ICAgICAgICAgICAg ICAgICBJbml0IFN5bnRheC4gICAgICAgIChsaW5lICAgNTIpCiAgLSBMaXNwIGVkaXRpbmc6ICAg ICAgICAgICAgICAgICAgICAgICAgICBQcm9ncmFtcy4gICAgICAgICAgIChsaW5lICAgIDYpCiAg LSBMaXNwIGZpbGVzIGJ5dGUtY29tcGlsZWQgYnkgWEVtYWNzOiAgICBMaXNwIExpYnJhcmllcy4g ICAgIChsaW5lICAgNzcpCiAgLSBMaXNwIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFeHRlcm5hbCBMaXNwLiAgICAgIChsaW5lICAgIDYpCiAgLSBMaXNwIG9iamVjdCBzeW50YXg6 ICAgICAgICAgICAgICAgICAgICBJbml0IFN5bnRheC4gICAgICAgIChsaW5lICAgNjgpCiAgLSBM aXNwIHN0cmluZyBzeW50YXg6ICAgICAgICAgICAgICAgICAgICBJbml0IFN5bnRheC4gICAgICAg IChsaW5lICAgMzApCiAgLSBMaXNwIHN5bWJvbCBjb21wbGV0aW9uOiAgICAgICAgICAgICAgICBT eW1ib2wgQ29tcGxldGlvbi4gIChsaW5lICAgMTQpCiAgLSDigJhsaXNwLWluZGVudC1mdW5jdGlv buKAmSBwcm9wZXJ0eTogICAgICAgTGlzcCBJbmRlbnQuICAgICAgICAobGluZSAgIDI3KQogIC0g bGlzdCBjb21tYW5kczogICAgICAgICAgICAgICAgICAgICAgICAgTW92aW5nIGJ5IFBhcmVucy4g ICAobGluZSAgICA2KQogIC0gbGlzdGluZyBjdXJyZW50IGJ1ZmZlcnM6ICAgICAgICAgICAgICAg TGlzdCBCdWZmZXJzLiAgICAgICAobGluZSAgICA5KQogIC0gbGlzdGluZyBzeXN0ZW0gZm9udHM6 ICAgICAgICAgICAgICAgICAgRm9udHMuICAgICAgICAgICAgICAobGluZSAgMTk0KQogIC0gTGl0 aHVhbmlhbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRz LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgICAzNSkKICAtIGxvYWQgaW5pdCBmaWxlIG9mIGFub3RoZXIgdXNlcjogICAg ICAgIEluaXRpYWwgT3B0aW9ucy4gICAgKGxpbmUgIDEyOSkKICAtIGxvYWQgcGF0aCBmb3IgRW1h Y3MgTGlzcDogICAgICAgICAgICAgIExpc3AgTGlicmFyaWVzLiAgICAgKGxpbmUgICAyMSkKICAt IGxvYWRpbmcgTGlzcCBjb2RlOiAgICAgICAgICAgICAgICAgICAgIExpc3AgTGlicmFyaWVzLiAg ICAgKGxpbmUgICAgNikKICAtIGxvYWRpbmcgTGlzcCBsaWJyYXJpZXMgYXV0b21hdGljYWxseTog IEluaXQgRXhhbXBsZXMuICAgICAgKGxpbmUgICA4MSkKICAtIGxvYWRpbmcgTGlzcCBsaWJyYXJp ZXMsIGNvbW1hbmQtbGluZSBhcmd1bWVudDogQWN0aW9uIEFyZ3VtZW50cy4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAg MzgpCiAgLSBsb2FkaW5nIHNldmVyYWwgZmlsZXMgKGluIERpcmVkKTogICAgICBPcGVyYXRpbmcg b24gRmlsZXMuIChsaW5lICAxMzQpCiAgLSBsb2NhbCBrZXltYXA6ICAgICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbCBLZXltYXBzLiAgICAgIChsaW5lICAgIDYpCiAgLSBsb2NhbCB2YXJpYWJs ZXM6ICAgICAgICAgICAgICAgICAgICAgICBMb2NhbHMuICAgICAgICAgICAgIChsaW5lICAgMTYp CiAgLSBsb2NhbCB2YXJpYWJsZXMgaW4gZmlsZXM6ICAgICAgICAgICAgICBGaWxlIFZhcmlhYmxl cy4gICAgIChsaW5lICAgIDYpCiAgLSBsb2NhbCB2YXJpYWJsZXMsIGZvciBhbGwgZmlsZXMgaW4g YSBkaXJlY3Rvcnk6IERpcmVjdG9yeSBWYXJpYWJsZXMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gbG9j YWxlLCBkYXRlIGZvcm1hdDogICAgICAgICAgICAgICAgICAgVGltZSBTdGFtcHMuICAgICAgICAo bGluZSAgICA2KQogIC0gbG9jYWxlczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFu Z3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA0NSkKICAtIGxvY2F0aW9uIG9mIHBvaW50 OiAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIEluZm8uICAgICAgKGxpbmUgICAzNykKICAt IGxvY2tpbmcgKENWUyk6ICAgICAgICAgICAgICAgICAgICAgICAgIENWUyBPcHRpb25zLiAgICAg ICAgKGxpbmUgICA0NikKICAtIGxvY2tpbmcgZmlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAg IEludGVybG9ja2luZy4gICAgICAgKGxpbmUgICAxOCkKICAtIGxvY2tpbmcsIG5vbi1zdHJpY3Qg KFJDUyk6ICAgICAgICAgICAgIFJDUyBhbmQgU0NDUy4gICAgICAgKGxpbmUgICAgNikKICAtIGxv Y2tpbmctYmFzZWQgdmVyc2lvbjogICAgICAgICAgICAgICAgIFZDUyBNZXJnaW5nLiAgICAgICAg KGxpbmUgICAxNSkKICAtIGxvY3VzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bXBpbGF0aW9uIE1vZGUuICAgKGxpbmUgICAgNikKICAtIExvZyBFZGl0IG1vZGU6ICAgICAgICAg ICAgICAgICAgICAgICAgIExvZyBCdWZmZXIuICAgICAgICAgKGxpbmUgICAxMikKICAtIGxvZyBG aWxlLCB0eXBlcyBvZjogICAgICAgICAgICAgICAgICAgIFR5cGVzIG9mIExvZyBGaWxlLiAgKGxp bmUgICAgNikKICAtIGxvZ2dpbmcga2V5c3Ryb2tlczogICAgICAgICAgICAgICAgICAgIENoZWNr bGlzdC4gICAgICAgICAgKGxpbmUgIDEwOCkKICAtIGxvZ2ljYWwgb3JkZXI6ICAgICAgICAgICAg ICAgICAgICAgICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTkpCiAgLSBs b25nIGZpbGUgbmFtZXMgaW4gRE9TIGJveCB1bmRlciBXaW5kb3dzIDk1L05UOiBNUy1ET1MgRmls ZSBOYW1lcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsaW5lICAgMjYpCiAgLSBsb29raW5nIGZvciBhIHN1YmplY3QgaW4gZG9j dW1lbnRhdGlvbjogSGVscC4gICAgICAgICAgICAgIChsaW5lICAgMTcpCiAgLSBscHIgdXNhZ2Ug dW5kZXIgTVMtRE9TOiAgICAgICAgICAgICAgICBXaW5kb3dzIFByaW50aW5nLiAgIChsaW5lICAg NzkpCiAgLSBMUk06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWRpcmVjdGlv bmFsIEVkaXRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgIDYwKQogIC0g4oCYbHPigJkgZW11bGF0aW9uOiAgICAg ICAgICAgICAgICAgICAgICAgIGxzIGluIExpc3AuICAgICAgICAgKGxpbmUgICAgNikKICAtIEx1 Y2lkIFdpZGdldCBYIFJlc291cmNlczogICAgICAgICAgICAgIEx1Y2lkIFJlc291cmNlcy4gICAg KGxpbmUgICAgNikKICAtIGx6aDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZp bGUgQXJjaGl2ZXMuICAgICAgKGxpbmUgICA0NSkKICAtIE0tOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFVzZXIgSW5wdXQuICAgICAgICAgKGxpbmUgICAxOCkKICAtIOKAmE0t PFRBQj7igJkgdnMg4oCYPEFsdD4tPFRBQj7igJkgKE1TLVdpbmRvd3MpOiBXaW5kb3dzIEtleWJv YXJkLiAobGluZSAgIDQ4KQogIC0gTTQgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQogIC0gTWFjaW50b3NoOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWFjIE9TIC8gR05Vc3RlcC4gICAobGluZSAgICA2KQogIC0g TWFjaW50b3NoIGVuZC1vZi1saW5lIGNvbnZlcnNpb246ICAgICAgQ29kaW5nIFN5c3RlbXMuICAg ICAobGluZSAgIDU2KQogIC0gbWFjT1M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TWFjIE9TIC8gR05Vc3RlcC4gICAobGluZSAgICA2KQogIC0gbWFjcm8gZXhwYW5zaW9uIGluIEM6 ICAgICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAobGluZSAgIDM0KQogIC0gbWFp bDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGluZyBNYWlsLiAgICAgICAo bGluZSAgICA2KQogIC0gbWFpbCAob24gbW9kZSBsaW5lKTogICAgICAgICAgICAgICAgICAgT3B0 aW9uYWwgTW9kZSBMaW5lLiAobGluZSAgIDY4KQogIC0gbWFpbCBhbGlhc2VzOiAgICAgICAgICAg ICAgICAgICAgICAgICAgTWFpbCBBbGlhc2VzLiAgICAgICAobGluZSAgICA2KQogIC0g4oCYTUFJ TOKAmSBlbnZpcm9ubWVudCB2YXJpYWJsZTogICAgICAgICAgIFJtYWlsIEluYm94LiAgICAgICAg KGxpbmUgICAxNCkKICAtIE1haWwgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1h aWwgTWV0aG9kcy4gICAgICAgKGxpbmUgICAgNikKICAtIG1haWwgc2lnbmF0dXJlOiAgICAgICAg ICAgICAgICAgICAgICAgIE1haWwgU2lnbmF0dXJlLiAgICAgKGxpbmUgICAgNikKICAtIG1haWwt Y29tcG9zaXRpb24gbWV0aG9kczogICAgICAgICAgICAgIE1haWwgTWV0aG9kcy4gICAgICAgKGxp bmUgICAgNikKICAtIE1haWxjbGllbnQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haWwg U2VuZGluZy4gICAgICAgKGxpbmUgICAyOCkKICAtIOKAmE1BSUxIT1NU4oCZIGVudmlyb25tZW50 IHZhcmlhYmxlOiAgICAgICBSZW1vdGUgTWFpbGJveGVzLiAgIChsaW5lICAgMTQpCiAgLSBtYWls cmMgZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICBNYWlsIEFsaWFzZXMuICAgICAgIChs aW5lICAgIDYpCiAgLSBtYWluIGJvcmRlciB3aWR0aCwgY29tbWFuZC1saW5lIGFyZ3VtZW50OiBC b3JkZXJzIFguICAgICAgIChsaW5lICAgMjApCiAgLSBtYWpvciBtb2RlczogICAgICAgICAgICAg ICAgICAgICAgICAgICBNYWpvciBNb2Rlcy4gICAgICAgIChsaW5lICAgIDYpCiAgLSBtYWtlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21waWxhdGlvbi4gICAgICAgIChsaW5l ICAgIDYpCiAgLSBNYWtlZmlsZSBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBQcm9ncmFt IE1vZGVzLiAgICAgIChsaW5lICAgMTUpCiAgLSBtYWtpbmcgcGljdHVyZXMgb3V0IG9mIHRleHQg Y2hhcmFjdGVyczogUGljdHVyZSBNb2RlLiAgICAgIChsaW5lICAgIDYpCiAgLSBNYWxheWFsYW06 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGluZSAgIDM1KQogIC0gbWFuIHBhZ2U6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFu IFBhZ2UuICAgICAgICAgICAobGluZSAgICA2KQogIC0gbWFuIHBhZ2VzLCBhbmQgbG9jYWwgZmls ZSB2YXJpYWJsZXM6ICAgU3BlY2lmeWluZyBGaWxlIFZhcmlhYmxlcy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzUp CiAgLSBtYW5pcHVsYXRpbmcgcGFyYWdyYXBoczogICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBtYW5pcHVsYXRpbmcgc2VudGVuY2VzOiAgICAgICAgICAg ICAgICBTZW50ZW5jZXMuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtYW5pcHVsYXRpbmcgdGV4 dDogICAgICAgICAgICAgICAgICAgICBUZXh0LiAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAg LSBtYW51YWwgcGFnZXMsIG9uIE1TLURPUy9NUy1XaW5kb3dzOiAgICBNYW4gUGFnZS4gICAgICAg ICAgIChsaW5lICAgNDApCiAgLSBtYW51YWwgdmVyc2lvbiBiYWNrdXBzOiAgICAgICAgICAgICAg ICBDVlMgT3B0aW9ucy4gICAgICAgIChsaW5lICAgMzkpCiAgLSBtYW51YWxzLCBpbmNsdWRlZDog ICAgICAgICAgICAgICAgICAgICBNaXNjIEhlbHAuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBt YXJrOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrLiAgICAgICAgICAgICAg IChsaW5lICAgIDYpCiAgLSBtYXJrIHJlY3RhbmdsZTogICAgICAgICAgICAgICAgICAgICAgICBS ZWN0YW5nbGVzLiAgICAgICAgIChsaW5lICAgMTMpCiAgLSBtYXJrIHJpbmc6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNYXJrIFJpbmcuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtYXJr aW5nIGV4ZWN1dGFibGUgZmlsZXMgKGluIERpcmVkKTogICBNYXJrcyB2cyBGbGFncy4gICAgIChs aW5lICAgMjYpCiAgLSBtYXJraW5nIG1hbnkgZmlsZXMgKGluIERpcmVkKTogICAgICAgICBNYXJr cyB2cyBGbGFncy4gICAgIChsaW5lICAgIDYpCiAgLSBtYXJraW5nIHNlY3Rpb25zIG9mIHRleHQ6 ICAgICAgICAgICAgICBNYXJraW5nIE9iamVjdHMuICAgIChsaW5lICAgIDYpCiAgLSBtYXJraW5n IHN1YmRpcmVjdG9yaWVzIChpbiBEaXJlZCk6ICAgICBNYXJrcyB2cyBGbGFncy4gICAgIChsaW5l ICAgMzQpCiAgLSBtYXJraW5nIHN5bWJvbGljIGxpbmtzIChpbiBEaXJlZCk6ICAgICBNYXJrcyB2 cyBGbGFncy4gICAgIChsaW5lICAgMzApCiAgLSBtYXRjaCAoZmFjZSBuYW1lKTogICAgICAgICAg ICAgICAgICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA0MSkKICAtIG1h dGNoaW5nIHBhcmVudGhlc2VzOiAgICAgICAgICAgICAgICAgIE1hdGNoaW5nLiAgICAgICAgICAg KGxpbmUgICAgNikKICAtIG1hdGNoaW5nIHBhcmVudGhlc2lzIGFuZCBicmFjZXMsIG1vdmluZyB0 bzogTW92aW5nIGJ5IFBhcmVucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtYXhpbWl6ZWQsIGNvbW1h bmQtbGluZSBhcmd1bWVudDogICAgICBXaW5kb3cgU2l6ZSBYLiAgICAgIChsaW5lICAgMjUpCiAg LSBtYXhpbXVtIGJ1ZmZlciBzaXplIGV4Y2VlZGVkLCBlcnJvciBtZXNzYWdlOiBWaXNpdGluZy4g ICAgIChsaW5lICAgNjIpCiAgLSBNYXlhbiBjYWxlbmRhcjogICAgICAgICAgICAgICAgICAgICAg ICBNYXlhbiBDYWxlbmRhci4gICAgIChsaW5lICAgIDYpCiAgLSBNYXlhbiBjYWxlbmRhciByb3Vu ZDogICAgICAgICAgICAgICAgICBNYXlhbiBDYWxlbmRhci4gICAgIChsaW5lICAgNTgpCiAgLSBN YXlhbiBjYWxlbmRhcnM6ICAgICAgICAgICAgICAgICAgICAgICBDYWxlbmRhciBTeXN0ZW1zLiAg IChsaW5lICAgMzUpCiAgLSBNYXlhbiBoYWFiIGNhbGVuZGFyOiAgICAgICAgICAgICAgICAgICBN YXlhbiBDYWxlbmRhci4gICAgIChsaW5lICAgNTApCiAgLSBNYXlhbiBsb25nIGNvdW50OiAgICAg ICAgICAgICAgICAgICAgICBNYXlhbiBDYWxlbmRhci4gICAgIChsaW5lICAgMzApCiAgLSBNYXlh biB0em9sa2luIGNhbGVuZGFyOiAgICAgICAgICAgICAgICBNYXlhbiBDYWxlbmRhci4gICAgIChs aW5lICAgNDIpCiAgLSBtYm94IGZpbGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFp bCBJbmJveC4gICAgICAgIChsaW5lICAgNDEpCiAgLSBtZW1vcnkgZnVsbDogICAgICAgICAgICAg ICAgICAgICAgICAgICBNZW1vcnkgRnVsbC4gICAgICAgIChsaW5lICAgIDYpCiAgLSBtZW51IGJh cjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW51IEJhci4gICAgICAgICAgIChsaW5l ICAgIDYpCiAgLSBtZW51IGJhciAoWCByZXNvdXJjZSk6ICAgICAgICAgICAgICAgICBUYWJsZSBv ZiBSZXNvdXJjZXMuIChsaW5lICAgODcpCiAgLSBtZW51IGJhciBhY2Nlc3MgdXNpbmcga2V5Ym9h cmQ6ICAgICAgICBNZW51IEJhci4gICAgICAgICAgIChsaW5lICAgMjIpCiAgLSBtZW51IGJhciBh cHBlYXJhbmNlOiAgICAgICAgICAgICAgICAgICBTdGFuZGFyZCBGYWNlcy4gICAgIChsaW5lICAx NDMpCiAgLSBNZW51IEJhciBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBNZW51IEJhcnMu ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSDigJhtZW514oCZIGZhY2UsIG5vIGVmZmVjdCBpZiBj dXN0b21pemVkOiAgU3RhbmRhcmQgRmFjZXMuICAgICAobGluZSAgMTQzKQogIC0gTWVudSBYIFJl c291cmNlcyAoTHVjaWQgd2lkZ2V0cyk6ICAgICAgTHVjaWQgUmVzb3VyY2VzLiAgICAobGluZSAg ICA2KQogIC0gTWVudSBYIFJlc291cmNlcyAoTW90aWYgd2lkZ2V0cyk6ICAgICAgTW90aWYgUmVz b3VyY2VzLiAgICAobGluZSAgICA2KQogIC0gTWVyY3VyaWFsOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDQzKQogIC0gbWVy Z2UgYnVmZmVyIChFbWVyZ2UpOiAgICAgICAgICAgICAgICAgT3ZlcnZpZXcgb2YgRW1lcmdlLiAo bGluZSAgIDIxKQogIC0gbWVyZ2UgbWFpbCBmcm9tIGZpbGUgKFJtYWlsKTogICAgICAgICAgUm1h aWwgRmlsZXMuICAgICAgICAobGluZSAgIDU0KQogIC0gbWVyZ2VzLCBmYWlsZWQ6ICAgICAgICAg ICAgICAgICAgICAgICAgQ29tcGFyaW5nIEZpbGVzLiAgICAobGluZSAgIDUxKQogIC0gbWVyZ2lu ZyBjaGFuZ2VzOiAgICAgICAgICAgICAgICAgICAgICAgTWVyZ2luZy4gICAgICAgICAgICAobGlu ZSAgICA2KQogIC0gbWVyZ2luZyBmaWxlczogICAgICAgICAgICAgICAgICAgICAgICAgRW1lcmdl LiAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gbWVyZ2luZy1iYXNlZCB2ZXJzaW9uOiAgICAg ICAgICAgICAgICAgVkNTIE1lcmdpbmcuICAgICAgICAobGluZSAgIDEwKQogIC0gbWVzc2FnZTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZGluZyBNYWlsLiAgICAgICAobGluZSAg ICA2KQogIC0gTWVzc2FnZSBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbCBDb21t YW5kcy4gICAgICAobGluZSAgICA2KQogIC0gTWVzc2FnZSBtb2RlIGZvciBzZW5kaW5nIG1haWw6 ICAgICAgICAgTWFpbCBNZXRob2RzLiAgICAgICAobGluZSAgICA2KQogIC0gbWVzc2FnZSBudW1i ZXIgKFJtYWlsKTogICAgICAgICAgICAgICAgUm1haWwgQmFzaWNzLiAgICAgICAobGluZSAgIDIw KQogIC0gbWVzc2FnZXMgc2F2ZWQgZnJvbSBlY2hvIGFyZWE6ICAgICAgICAgRWNobyBBcmVhLiAg ICAgICAgICAobGluZSAgIDM0KQogIC0gTUVUQTogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVXNlciBJbnB1dC4gICAgICAgICAobGluZSAgIDE4KQogIC0gTWV0YSAodW5kZXIgTVMt RE9TKTogICAgICAgICAgICAgICAgICAgTVMtRE9TIEtleWJvYXJkLiAgICAobGluZSAgIDIwKQog IC0gTWV0YSBjb21tYW5kcyBhbmQgd29yZHM6ICAgICAgICAgICAgICAgV29yZHMuICAgICAgICAg ICAgICAobGluZSAgICA2KQogIC0gTWV0YWZvbnQgbW9kZTogICAgICAgICAgICAgICAgICAgICAg ICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQogIC0gTUggbWFpbCBpbnRlcmZhY2U6 ICAgICAgICAgICAgICAgICAgICAgTWFpbCBNZXRob2RzLiAgICAgICAobGluZSAgICA2KQogIC0g TWljcm9zb2Z0IE9mZmljZSBmaWxlOiAgICAgICAgICAgICAgICAgRG9jdW1lbnQgVmlldy4gICAg ICAobGluZSAgICA2KQogIC0gTWljcm9zb2Z0IFdpbmRvd3M6ICAgICAgICAgICAgICAgICAgICAg TWljcm9zb2Z0IFdpbmRvd3MuICAobGluZSAgICA2KQogIC0gTWlkbmlnaHQgbW9kZTogICAgICAg ICAgICAgICAgICAgICAgICAgS2lsbCBCdWZmZXIuICAgICAgICAobGluZSAgIDYxKQogIC0gTUlN RTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFpbCBNaXNjLiAgICAgICAgICAo bGluZSAgICA2KQogIC0gTUlNRSBtZXNzYWdlcyAoUm1haWwpOiAgICAgICAgICAgICAgICAgUm1h aWwgRGlzcGxheS4gICAgICAobGluZSAgIDM4KQogIC0gbWluaWJ1ZmZlcjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgTWluaWJ1ZmZlci4gICAgICAgICAobGluZSAgICA2KQogIC0gbWluaWJ1 ZmZlciBjb25maXJtYXRpb246ICAgICAgICAgICAgICAgQ29tcGxldGlvbiBFeGl0LiAgICAobGlu ZSAgIDM0KQogIC0gbWluaWJ1ZmZlciBkZWZhdWx0cyBmb3IgZmlsZSBuYW1lczogICAgTWluaWJ1 ZmZlciBIaXN0b3J5LiAobGluZSAgIDQzKQogIC0gTWluaWJ1ZmZlciBFbGVjdHJpYyBEZWZhdWx0 IG1vZGU6ICAgICAgQmFzaWMgTWluaWJ1ZmZlci4gICAobGluZSAgIDIzKQogIC0gbWluaWJ1ZmZl ciBoaXN0b3J5OiAgICAgICAgICAgICAgICAgICAgTWluaWJ1ZmZlciBIaXN0b3J5LiAobGluZSAg ICA2KQogIC0gbWluaWJ1ZmZlciBoaXN0b3J5LCBzZWFyY2hpbmc6ICAgICAgICAgSXNlYXJjaCBN aW5pYnVmZmVyLiAobGluZSAgICA2KQogIC0gbWluaWJ1ZmZlciBrZXltYXBzOiAgICAgICAgICAg ICAgICAgICAgTWluaWJ1ZmZlciBNYXBzLiAgICAobGluZSAgICA2KQogIC0g4oCYbWluaWJ1ZmZl ci1wcm9tcHTigJkgZmFjZTogICAgICAgICAgICAgIFN0YW5kYXJkIEZhY2VzLiAgICAgKGxpbmUg IDExMCkKICAtIG1pbmltaXppbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4aXRpbmcu ICAgICAgICAgICAgKGxpbmUgICA0NykKICAtIG1pbmltaXppbmcgYSBmcmFtZSBhdCBzdGFydHVw OiAgICAgICAgIEljb25zIFguICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1pbm9yIG1vZGUg a2V5bWFwOiAgICAgICAgICAgICAgICAgICAgIExvY2FsIEtleW1hcHMuICAgICAgKGxpbmUgICAg NikKICAtIG1pbm9yIG1vZGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pbm9yIE1vZGVz LiAgICAgICAgKGxpbmUgICAgNikKICAtIG1pc3Rha2VzLCBjb3JyZWN0aW5nOiAgICAgICAgICAg ICAgICAgIEZpeGl0LiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUgY29tbWFuZHMg Zm9yIG1pbm9yIG1vZGVzOiAgICAgICAgIE1pbm9yIE1vZGVzLiAgICAgICAgKGxpbmUgICAxOSkK ICAtIG1vZGUgaG9vazogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ham9yIE1vZGVzLiAg ICAgICAgKGxpbmUgICA3MSkKICAtIG1vZGUgaG9vaywgYW5kIG1ham9yIG1vZGVzOiAgICAgICAg ICAgIFByb2dyYW0gTW9kZXMuICAgICAgKGxpbmUgICA0MCkKICAtIG1vZGUgbGluZTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1vZGUgTGluZS4gICAgICAgICAgKGxpbmUgICAgNikKICAt IG1vZGUgbGluZSAoTVMtRE9TKTogICAgICAgICAgICAgICAgICAgIE1TLURPUyBhbmQgTVVMRS4g ICAgKGxpbmUgICA2MykKICAtIG1vZGUgbGluZSwgM0QgYXBwZWFyYW5jZTogICAgICAgICAgICAg IE9wdGlvbmFsIE1vZGUgTGluZS4gKGxpbmUgICA4NikKICAtIG1vZGUgbGluZSwgbW91c2U6ICAg ICAgICAgICAgICAgICAgICAgIE1vZGUgTGluZSBNb3VzZS4gICAgKGxpbmUgICAgNikKICAtIG1v ZGUsIEFiYnJldjogICAgICAgICAgICAgICAgICAgICAgICAgIEFiYnJldiBDb25jZXB0cy4gICAg KGxpbmUgICAxMikKICAtIG1vZGUsIGFyY2hpdmU6ICAgICAgICAgICAgICAgICAgICAgICAgIEZp bGUgQXJjaGl2ZXMuICAgICAgKGxpbmUgICA0NSkKICAtIG1vZGUsIEF1dG8gQ29tcHJlc3Npb246 ICAgICAgICAgICAgICAgIENvbXByZXNzZWQgRmlsZXMuICAgKGxpbmUgICAgNikKICAtIG1vZGUs IEF1dG8gRmlsbDogICAgICAgICAgICAgICAgICAgICAgIEF1dG8gRmlsbC4gICAgICAgICAgKGxp bmUgICAgNikKICAtIG1vZGUsIEF1dG8gUmV2ZXJ0OiAgICAgICAgICAgICAgICAgICAgIFJldmVy dGluZy4gICAgICAgICAgKGxpbmUgICAzNykKICAtIG1vZGUsIEF1dG8gU2F2ZTogICAgICAgICAg ICAgICAgICAgICAgIEF1dG8gU2F2ZS4gICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEFX SzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIG1vZGUsIEM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMgTW9kZXMu ICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEMrKzogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIENvbHVt biBOdW1iZXI6ICAgICAgICAgICAgICAgICAgIE9wdGlvbmFsIE1vZGUgTGluZS4gKGxpbmUgICAy MykKICAtIG1vZGUsIENvbWludDogICAgICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIE1vZGUu ICAgICAgICAgKGxpbmUgIDE0NykKICAtIG1vZGUsIENvbXBpbGF0aW9uOiAgICAgICAgICAgICAg ICAgICAgIENvbXBpbGF0aW9uIE1vZGUuICAgKGxpbmUgICAgNikKICAtIG1vZGUsIENPUkJBIElE TDogICAgICAgICAgICAgICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxpbmUgICAgNikK ICAtIG1vZGUsIERlbGV0ZSBTZWxlY3Rpb246ICAgICAgICAgICAgICAgIFVzaW5nIFJlZ2lvbi4g ICAgICAgKGxpbmUgICA1MCkKICAtIG1vZGUsIERpZmYgQXV0by1SZWZpbmU6ICAgICAgICAgICAg ICAgIERpZmYgTW9kZS4gICAgICAgICAgKGxpbmUgICAzNSkKICAtIG1vZGUsIERpcnRyYWNrOiAg ICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeSBUcmFja2luZy4gKGxpbmUgICAyNSkKICAt IG1vZGUsIERvY1RlWDogICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCBNb2RlLiAgICAgICAg ICAgKGxpbmUgICAgNikKICAtIG1vZGUsIERvY1ZpZXc6ICAgICAgICAgICAgICAgICAgICAgICAg IERvY3VtZW50IFZpZXcuICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEVsZWN0cmljIEluZGVu dDogICAgICAgICAgICAgICAgIEluZGVudCBDb252ZW5pZW5jZS4gKGxpbmUgICAxNSkKICAtIG1v ZGUsIEVsZWN0cmljIFF1b3RlOiAgICAgICAgICAgICAgICAgIFF1b3RhdGlvbiBNYXJrcy4gICAg KGxpbmUgICAgNikKICAtIG1vZGUsIEVtYWNzIExpc3A6ICAgICAgICAgICAgICAgICAgICAgIExp c3AgRXZhbC4gICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEVucmljaGVkOiAgICAgICAg ICAgICAgICAgICAgICAgIEVucmljaGVkIFRleHQuICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUs IEZseXNwZWxsOiAgICAgICAgICAgICAgICAgICAgICAgIFNwZWxsaW5nLiAgICAgICAgICAgKGxp bmUgIDE1NCkKICAtIG1vZGUsIEZvbGxvdzogICAgICAgICAgICAgICAgICAgICAgICAgIEZvbGxv dyBNb2RlLiAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEZvbnQgTG9jazogICAgICAgICAg ICAgICAgICAgICAgIEZvbnQgTG9jay4gICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEZv cnRyYW46ICAgICAgICAgICAgICAgICAgICAgICAgIEZvcnRyYW4uICAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIG1vZGUsIEdsYXNzZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIE1peGVkQ2Fz ZSBXb3Jkcy4gICAgKGxpbmUgICAxMikKICAtIG1vZGUsIEdsb2JhbCBBdXRvIFJldmVydDogICAg ICAgICAgICAgIFJldmVydGluZy4gICAgICAgICAgKGxpbmUgICAzNykKICAtIG1vZGUsIEdvdG8g QWRkcmVzczogICAgICAgICAgICAgICAgICAgIEdvdG8gQWRkcmVzcyBtb2RlLiAgKGxpbmUgICAg NikKICAtIG1vZGUsIEdVRCBUb29sdGlwOiAgICAgICAgICAgICAgICAgICAgIERlYnVnZ2VyIE9w ZXJhdGlvbi4gKGxpbmUgICAzMikKICAtIG1vZGUsIEhleGw6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVkaXRpbmcgQmluYXJ5IEZpbGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEhp ZGVzaG93OiAgICAgICAgICAgICAgICAgICAgICAgIEhpZGVzaG93LiAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIG1vZGUsIEhUTUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9k ZS4gICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIEphdmE6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIExhVGVY OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCBNb2RlLiAgICAgICAgICAgKGxpbmUgICAg NikKICAtIG1vZGUsIExpc3A6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsIExp c3AuICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIExvZyBFZGl0OiAgICAgICAgICAgICAgICAg ICAgICAgIExvZyBCdWZmZXIuICAgICAgICAgKGxpbmUgICAxMikKICAtIG1vZGUsIE1haWw6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1haWwgTWV0aG9kcy4gICAgICAgKGxpbmUgICAgNikK ICAtIG1vZGUsIG1ham9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ham9yIE1vZGVzLiAg ICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIE1lbnUgQmFyOiAgICAgICAgICAgICAgICAgICAg ICAgIE1lbnUgQmFycy4gICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIE1lc3NhZ2U6ICAg ICAgICAgICAgICAgICAgICAgICAgIE1haWwgQ29tbWFuZHMuICAgICAgKGxpbmUgICAgNikKICAt IG1vZGUsIE1pbmlidWZmZXIgRWxlY3RyaWMgRGVmYXVsdDogICAgIEJhc2ljIE1pbmlidWZmZXIu ICAgKGxpbmUgICAyMykKICAtIG1vZGUsIG1pbm9yOiAgICAgICAgICAgICAgICAgICAgICAgICAg IE1pbm9yIE1vZGVzLiAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUsIE1vdXNlIFdoZWVsOiAg ICAgICAgICAgICAgICAgICAgIE1vdXNlIENvbW1hbmRzLiAgICAgKGxpbmUgIDEwNSkKICAtIG1v ZGUsIE1TQjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciBNZW51cy4gICAgICAg KGxpbmUgICAyMikKICAtIG1vZGUsIG5YTUw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhU TUwgTW9kZS4gICAgICAgICAgKGxpbmUgICA3NSkKICAtIG1vZGUsIE9iamVjdGl2ZSBDOiAgICAg ICAgICAgICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vZGUs IE9jY3VyOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyIFJlcGVhdGluZyBTZWFyY2gu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDQxKQogIC0gbW9kZSwgT2NjdXIgRWRpdDogICAgICAgICAgICAgICAgICAg ICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNzEpCiAgLSBtb2RlLCBPcmc6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcgTW9kZS4gICAgICAgICAgIChsaW5lICAg IDYpCiAgLSBtb2RlLCBPdXRsaW5lOiAgICAgICAgICAgICAgICAgICAgICAgICBPdXRsaW5lIE1v ZGUuICAgICAgIChsaW5lICAgIDYpCiAgLSBtb2RlLCBPdmVyd3JpdGU6ICAgICAgICAgICAgICAg ICAgICAgICBNaW5vciBNb2Rlcy4gICAgICAgIChsaW5lICAgODMpCiAgLSBtb2RlLCBQYXJhZ3Jh cGgtSW5kZW50IFRleHQ6ICAgICAgICAgICBUZXh0IE1vZGUuICAgICAgICAgIChsaW5lICAgMjcp CiAgLSBtb2RlLCBQaWtlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDIE1vZGVzLiAgICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBtb2RlLCBTY2hlbWU6ICAgICAgICAgICAgICAgICAgICAg ICAgICBFeHRlcm5hbCBMaXNwLiAgICAgIChsaW5lICAgMzUpCiAgLSBtb2RlLCBTY3JvbGwgQmFy OiAgICAgICAgICAgICAgICAgICAgICBTY3JvbGwgQmFycy4gICAgICAgIChsaW5lICAgIDYpCiAg LSBtb2RlLCBTY3JvbGwtYWxsOiAgICAgICAgICAgICAgICAgICAgICBXaW5kb3cgQ29udmVuaWVu Y2UuIChsaW5lICAgMjkpCiAgLSBtb2RlLCBTZW1hbnRpYzogICAgICAgICAgICAgICAgICAgICAg ICBTZW1hbnRpYy4gICAgICAgICAgIChsaW5lICAgMTgpCiAgLSBtb2RlLCBTR01MOiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBIVE1MIE1vZGUuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBt b2RlLCBTaGVsbDogICAgICAgICAgICAgICAgICAgICAgICAgICBTaGVsbCBNb2RlLiAgICAgICAg IChsaW5lICAgIDYpCiAgLSBtb2RlLCBTbGlUZVg6ICAgICAgICAgICAgICAgICAgICAgICAgICBU ZVggTW9kZS4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtb2RlLCB0YXI6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGaWxlIEFyY2hpdmVzLiAgICAgIChsaW5lICAgIDYpCiAgLSBtb2Rl LCBUZXJtOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXJtIE1vZGUuICAgICAgICAgIChs aW5lICAgIDYpCiAgLSBtb2RlLCBUZVg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgg TW9kZS4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtb2RlLCBUZXh0OiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUZXh0IE1vZGUuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtb2RlLCBU aHVtYnM6ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIENvbnZlbmllbmNlcy4gIChsaW5l ICAgNjApCiAgLSBtb2RlLCBUb29sIEJhcjogICAgICAgICAgICAgICAgICAgICAgICBUb29sIEJh cnMuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBtb2RlLCBUcmFuc2llbnQgTWFyazogICAgICAg ICAgICAgICAgICBEaXNhYmxlZCBUcmFuc2llbnQgTWFyay4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBt b2RlLCBWaWV3OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWV3IE1vZGUuICAgICAgICAg IChsaW5lICAgIDYpCiAgLSBtb2RlLCBWaXN1YWwgTGluZTogICAgICAgICAgICAgICAgICAgICBW aXN1YWwgTGluZSBNb2RlLiAgIChsaW5lICAgMTQpCiAgLSBtb2RlLCBXaGl0ZXNwYWNlOiAgICAg ICAgICAgICAgICAgICAgICBVc2VsZXNzIFdoaXRlc3BhY2UuIChsaW5lICAgMzcpCiAgLSBtb2Rl LCBXaW5kb3cgRGl2aWRlcjogICAgICAgICAgICAgICAgICBXaW5kb3cgRGl2aWRlcnMuICAgIChs aW5lICAgIDYpCiAgLSBtb2RlLCBXaW5uZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICBXaW5k b3cgQ29udmVuaWVuY2UuIChsaW5lICAgIDYpCiAgLSBtb2RlLCBYTUw6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBIVE1MIE1vZGUuICAgICAgICAgIChsaW5lICAgNzUpCiAgLSDigJhtb2Rl LWxpbmXigJkgZmFjZTogICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmQgRmFjZXMuICAgICAo bGluZSAgIDgwKQogIC0g4oCYbW9kZS1saW5lLWJ1ZmZlci1pZOKAmSBmYWNlOiAgICAgICAgICAg IFN0YW5kYXJkIEZhY2VzLiAgICAgKGxpbmUgICA5NSkKICAtIOKAmG1vZGUtbGluZS1oaWdobGln aHTigJkgZmFjZTogICAgICAgICAgICBTdGFuZGFyZCBGYWNlcy4gICAgIChsaW5lICAgOTEpCiAg LSDigJhtb2RlLWxpbmUtaW5hY3RpdmXigJkgZmFjZTogICAgICAgICAgICAgU3RhbmRhcmQgRmFj ZXMuICAgICAobGluZSAgIDg2KQogIC0gbW9kZXMgZm9yIGVkaXRpbmcgcHJvZ3JhbXM6ICAgICAg ICAgICAgSG9va3MuICAgICAgICAgICAgICAobGluZSAgIDY4KQogIC0gbW9kZXMgZm9yIHByb2dy YW1taW5nIGxhbmd1YWdlczogICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgICA2KQog IC0gbW9kaWZpY2F0aW9uIGRhdGVzOiAgICAgICAgICAgICAgICAgICAgVGltZSBTdGFtcHMuICAg ICAgICAobGluZSAgICA2KQogIC0gbW9kaWZpZWQgKGJ1ZmZlcik6ICAgICAgICAgICAgICAgICAg ICAgVmlzaXRpbmcuICAgICAgICAgICAobGluZSAgIDQ5KQogIC0gbW9kaWZpZXIga2V5czogICAg ICAgICAgICAgICAgICAgICAgICAgVXNlciBJbnB1dC4gICAgICAgICAobGluZSAgIDE4KQogIC0g bW9kaWZpZXIga2V5cyAobWFjT1MpOiAgICAgICAgICAgICAgICAgTWFjIC8gR05Vc3RlcCBCYXNp Y3MuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGluZSAgICA2KQogIC0gbW9kaWZpZXIga2V5cywgYW5kIGtleSByZWJpbmRpbmc6 ICAgICAgTW9kaWZpZXIgS2V5cy4gICAgICAobGluZSAgICA2KQogIC0gTW9kdWxhMiBtb2RlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQog IC0gbW9kdWxlIHZlcmlmaWNhdGlvbjogICAgICAgICAgICAgICAgICAgSW5pdGlhbCBPcHRpb25z LiAgICAobGluZSAgMTM2KQogIC0gbW9vbiwgcGhhc2VzIG9mOiAgICAgICAgICAgICAgICAgICAg ICAgTHVuYXIgUGhhc2VzLiAgICAgICAobGluZSAgICA2KQogIC0gTW9yc2UgY29kZTogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAobGluZSAgIDQ1KQogIC0g TW90aWYgV2lkZ2V0IFggUmVzb3VyY2VzOiAgICAgICAgICAgICAgTW90aWYgUmVzb3VyY2VzLiAg ICAobGluZSAgICA2KQogIC0gbW91c2UgYXZvaWRhbmNlOiAgICAgICAgICAgICAgICAgICAgICAg TW91c2UgQXZvaWRhbmNlLiAgICAobGluZSAgICA2KQogIC0gbW91c2UgYnV0dG9uIGV2ZW50czog ICAgICAgICAgICAgICAgICAgTW91c2UgQnV0dG9ucy4gICAgICAobGluZSAgICA2KQogIC0gbW91 c2UgYnV0dG9ucyAod2hhdCB0aGV5IGRvKTogICAgICAgICAgTW91c2UgQ29tbWFuZHMuICAgICAo bGluZSAgICA2KQogIC0gbW91c2Ugb24gbW9kZSBsaW5lOiAgICAgICAgICAgICAgICAgICAgTW9k ZSBMaW5lIE1vdXNlLiAgICAobGluZSAgICA2KQogIC0gbW91c2UgcG9pbnRlcjogICAgICAgICAg ICAgICAgICAgICAgICAgRGlzcGxheSBDdXN0b20uICAgICAobGluZSAgIDg3KQogIC0gbW91c2Ug cG9pbnRlciBjb2xvciwgY29tbWFuZC1saW5lIGFyZ3VtZW50OiBDb2xvcnMgWC4gICAgICAobGlu ZSAgIDI4KQogIC0gbW91c2Ugc3VwcG9ydDogICAgICAgICAgICAgICAgICAgICAgICAgVGV4dC1P bmx5IE1vdXNlLiAgICAobGluZSAgICA2KQogIC0gbW91c2Ugc3VwcG9ydCB1bmRlciBNUy1ET1M6 ICAgICAgICAgICAgTVMtRE9TIE1vdXNlLiAgICAgICAobGluZSAgICA2KQogIC0gbW91c2Ugd2hl ZWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgTW91c2UgQ29tbWFuZHMuICAgICAobGluZSAg MTA1KQogIC0gTW91c2UgV2hlZWwgbWlub3IgbW9kZTogICAgICAgICAgICAgICAgTW91c2UgQ29t bWFuZHMuICAgICAobGluZSAgMTA1KQogIC0gbW91c2UsIGFuZCBNUy1XaW5kb3dzOiAgICAgICAg ICAgICAgICAgV2luZG93cyBNb3VzZS4gICAgICAobGluZSAgICA2KQogIC0gbW91c2UsIGRyYWdn aW5nOiAgICAgICAgICAgICAgICAgICAgICAgTW91c2UgQ29tbWFuZHMuICAgICAobGluZSAgIDM4 KQogIC0gbW91c2UsIHNlbGVjdGluZyB0ZXh0IHVzaW5nOiAgICAgICAgICAgTW91c2UgQ29tbWFu ZHMuICAgICAobGluZSAgICA2KQogIC0gbW91c2UsIHNldCBudW1iZXIgb2YgYnV0dG9uczogICAg ICAgICAgTVMtRE9TIE1vdXNlLiAgICAgICAobGluZSAgIDE4KQogIC0gbW92ZSB0byBiZWdpbm5p bmcgb3IgZW5kIG9mIGZ1bmN0aW9uOiAgTW92aW5nIGJ5IERlZnVucy4gICAobGluZSAgIDE3KQog IC0gbW92ZW1haWw6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIE1haWxib3hl cy4gICAobGluZSAgICA2KQogIC0g4oCYbW92ZW1haWzigJkgcHJvZ3JhbTogICAgICAgICAgICAg ICAgICAgIE1vdmVtYWlsLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG1vdmVtZW50OiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgKGxpbmUgICAgNikK ICAtIG1vdmluZyBmaWxlcyAoaW4gRGlyZWQpOiAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBG aWxlcy4gKGxpbmUgICA1NSkKICAtIG1vdmluZyBpbnNpZGUgdGhlIGNhbGVuZGFyOiAgICAgICAg ICAgIENhbGVuZGFyIE1vdGlvbi4gICAgKGxpbmUgICAgNikKICAtIG1vdmluZyBwb2ludDogICAg ICAgICAgICAgICAgICAgICAgICAgIE1vdmluZyBQb2ludC4gICAgICAgKGxpbmUgICAgNikKICAt IG1vdmluZyB0ZXh0OiAgICAgICAgICAgICAgICAgICAgICAgICAgIFlhbmtpbmcuICAgICAgICAg ICAgKGxpbmUgICAgNikKICAtIG1vdmluZyB0aGUgY3Vyc29yOiAgICAgICAgICAgICAgICAgICAg IE1vdmluZyBQb2ludC4gICAgICAgKGxpbmUgICAgNikKICAtIE1TLURPUyBlbmQtb2YtbGluZSBj b252ZXJzaW9uOiAgICAgICAgIENvZGluZyBTeXN0ZW1zLiAgICAgKGxpbmUgICA1NikKICAtIE1T LURPUyBwZWN1bGlhcml0aWVzOiAgICAgICAgICAgICAgICAgIE1TLURPUy4gICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIE1TLVdpbmRvd3MgY29kZXBhZ2VzOiAgICAgICAgICAgICAgICAgIE1T LURPUyBhbmQgTVVMRS4gICAgKGxpbmUgICA4NykKICAtIE1TLVdpbmRvd3Mga2V5Ym9hcmQgc2hv cnRjdXRzOiAgICAgICAgIFdpbmRvd3MgS2V5Ym9hcmQuICAgKGxpbmUgICAgOSkKICAtIE1TLVdp bmRvd3MsIGFuZCBwcmltYXJ5IHNlbGVjdGlvbjogICAgIFByaW1hcnkgU2VsZWN0aW9uLiAgKGxp bmUgICAzMCkKICAtIE1TLVdpbmRvd3MsIEVtYWNzIHBlY3VsaWFyaXRpZXM6ICAgICAgIE1pY3Jv c29mdCBXaW5kb3dzLiAgKGxpbmUgICAgNikKICAtIE1TQiBtb2RlOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJ1ZmZlciBNZW51cy4gICAgICAgKGxpbmUgICAyMikKICAtIE1VTEU6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsb3NzYXJ5LiAgICAgICAgICAgKGxpbmUg IDk3MykKICAtIG11bHRpYnl0ZSBjaGFyYWN0ZXJzOiAgICAgICAgICAgICAgICAgIEludGVybmF0 aW9uYWwuICAgICAgKGxpbmUgICAgNikKICAtIG11bHRpcGxlIGRpc3BsYXlzOiAgICAgICAgICAg ICAgICAgICAgIE11bHRpcGxlIERpc3BsYXlzLiAgKGxpbmUgICAgNikKICAtIG11bHRpcGxlIHNv dXJjZSBmaWxlIHNlYXJjaCBhbmQgcmVwbGFjZTogSWRlbnRpZmllciBTZWFyY2guCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgICA2KQogIC0gbXVsdGlwbGUgdmlld3Mgb2Ygb3V0bGluZTogICAgICAgICAgICAgT3V0bGlu ZSBWaWV3cy4gICAgICAobGluZSAgICA2KQogIC0gbXVsdGlwbGUgd2luZG93cyBpbiBFbWFjczog ICAgICAgICAgICAgV2luZG93cy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gbXVsdGlwbGUt YnVmZmVyIGlzZWFyY2g6ICAgICAgICAgICAgICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJjaC4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsaW5lICAgMTMpCiAgLSBtdWx0aXBsZS1maWxlIGlzZWFyY2g6ICAgICAgICAgICAgICAgICBP dGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyNSkKICAtIE11bHRpcHVycG9zZSBJ bnRlcm5ldCBNYWlsIEV4dGVuc2lvbnM6IE1haWwgTWlzYy4gICAgICAgICAgKGxpbmUgICAgNikK ICAtIE11bHRpdGhyZWFkZWQgZGVidWdnaW5nIGluIEdEQjogICAgICAgIE11bHRpdGhyZWFkZWQg RGVidWdnaW5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG5hbWVzIG9mIGJhY2t1cCBmaWxlczogICAg ICAgICAgICAgICAgIEJhY2t1cCBOYW1lcy4gICAgICAgKGxpbmUgICAgNikKICAtIG5hcnJvd2lu ZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hcnJvd2luZy4gICAgICAgICAgKGxpbmUg ICAgNikKICAtIG5hcnJvd2luZywgYW5kIGxpbmUgbnVtYmVyIGRpc3BsYXk6ICAgIE9wdGlvbmFs IE1vZGUgTGluZS4gKGxpbmUgICAzNikKICAtIOKAmG5ldCB1c2XigJksIGFuZCBwcmludGluZyBv biBNUy1XaW5kb3dzOiBXaW5kb3dzIFByaW50aW5nLiAgIChsaW5lICAgMzgpCiAgLSBuZXR3b3Jr IHNlY3VyaXR5IG1hbmFnZXI6ICAgICAgICAgICAgICBOZXR3b3JrIFNlY3VyaXR5LiAgIChsaW5l ICAgIDYpCiAgLSBuZXR3b3JrZWQgcHJpbnRlcnMgKE1TLVdpbmRvd3MpOiAgICAgICBXaW5kb3dz IFByaW50aW5nLiAgIChsaW5lICAgMzgpCiAgLSBuZXdsaW5lOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbnNlcnRpbmcgVGV4dC4gICAgIChsaW5lICAgMTEpCiAgLSBuZXdsaW5lcywg aGFyZCBhbmQgc29mdDogICAgICAgICAgICAgICBIYXJkIGFuZCBTb2Z0IE5ld2xpbmVzLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIG5ld3NyZWFkZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdu dXMuICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIE5leHQgRXJyb3IgRm9sbG93IG1vZGU6 ICAgICAgICAgICAgICAgIENvbXBpbGF0aW9uIE1vZGUuICAgKGxpbmUgIDExMCkKICAtIE5GUyBh bmQgcXVpdHRpbmc6ICAgICAgICAgICAgICAgICAgICAgIFF1aXR0aW5nLiAgICAgICAgICAgKGxp bmUgICA1NikKICAtIG5pbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsb3Nz YXJ5LiAgICAgICAgICAgKGxpbmUgMTAwNCkKICAtIOKAmG5vLWNvbnZlcnNpb27igJksIGNvZGlu ZyBzeXN0ZW06ICAgICAgICBDb2RpbmcgU3lzdGVtcy4gICAgIChsaW5lICAxMDApCiAgLSDigJhu b2JyZWFrLXNwYWNl4oCZIGZhY2U6ICAgICAgICAgICAgICAgICAgVGV4dCBEaXNwbGF5LiAgICAg ICAobGluZSAgIDMzKQogIC0gbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4g4oCYLmVtYWNz4oCZOiAg ICAgIEluaXQgTm9uLUFTQ0lJLiAgICAgKGxpbmUgICAgNikKICAtIG5vbi1BU0NJSSBrZXlzLCBi aW5kaW5nOiAgICAgICAgICAgICAgIEluaXQgTm9uLUFTQ0lJLiAgICAgKGxpbmUgICAgNikKICAt IG5vbi1icmVha2luZyBoeXBoZW46ICAgICAgICAgICAgICAgICAgIFRleHQgRGlzcGxheS4gICAg ICAgKGxpbmUgICAzMykKICAtIG5vbi1icmVha2luZyBzcGFjZTogICAgICAgICAgICAgICAgICAg IFRleHQgRGlzcGxheS4gICAgICAgKGxpbmUgICAzMykKICAtIG5vbi1ncmVlZHkgcmVnZXhwIG1h dGNoaW5nOiAgICAgICAgICAgIFJlZ2V4cHMuICAgICAgICAgICAgKGxpbmUgICA3MykKICAtIG5v bi1pbnRlZ3JhbCBudW1iZXIgb2YgbGluZXMgaW4gYSB3aW5kb3c6IE9wdGlvbmFsIE1vZGUgTGlu ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAgODYpCiAgLSBub24tc2VsZWN0ZWQgd2luZG93cywgbW9kZSBsaW5lIGFw cGVhcmFuY2U6IE9wdGlvbmFsIE1vZGUgTGluZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgOTEpCiAgLSBOb24tc3Rv cCBkZWJ1Z2dpbmcgaW4gR0RCOiAgICAgICAgICAgICBNdWx0aXRocmVhZGVkIERlYnVnZ2luZy4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBub24tc3RyaWN0IGxvY2tpbmcgKFJDUyk6ICAgICAgICAgICAg ICBSQ1MgYW5kIFNDQ1MuICAgICAgIChsaW5lICAgIDYpCiAgLSBub25pbmNyZW1lbnRhbCBzZWFy Y2g6ICAgICAgICAgICAgICAgICBOb25pbmNyZW1lbnRhbCBTZWFyY2guCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2 KQogIC0gbm9ybWFsIGhvb2s6ICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9va3MuICAgICAg ICAgICAgICAobGluZSAgIDEzKQogIC0gbnJvZmY6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTnJvZmYgTW9kZS4gICAgICAgICAobGluZSAgICA2KQogIC0gTlNBOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTWFpbCBBbXVzZW1lbnRzLiAgICAobGluZSAgICA2KQog IC0gTlNNOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0d29yayBTZWN1cml0 eS4gICAobGluZSAgICA2KQogIC0gbnVtYmVyIGxpbmVzIGluIGEgYnVmZmVyOiAgICAgICAgICAg ICAgRGlzcGxheSBDdXN0b20uICAgICAobGluZSAgICA5KQogIC0gbnVtZXJpYyBhcmd1bWVudHM6 ICAgICAgICAgICAgICAgICAgICAgQXJndW1lbnRzLiAgICAgICAgICAobGluZSAgICA2KQogIC0g blhNTCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFRNTCBNb2RlLiAgICAgICAg ICAobGluZSAgIDc1KQogIC0gT2JqZWN0aXZlIEMgbW9kZTogICAgICAgICAgICAgICAgICAgICAg QyBNb2Rlcy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gb2Jzb2xldGUgY29tbWFuZDogICAg ICAgICAgICAgICAgICAgICAgTS14LiAgICAgICAgICAgICAgICAobGluZSAgIDM3KQogIC0gT2Nj dXIgRWRpdCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgT3RoZXIgUmVwZWF0aW5nIFNlYXJj aC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAgNzEpCiAgLSBPY2N1ciBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPdGhlciBSZXBlYXRpbmcgU2VhcmNoLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA0MSkKICAtIG9jdGFsIGVz Y2FwZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgRGlzcGxheS4gICAgICAgKGxpbmUg ICAyNikKICAtIE9jdGF2ZSBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2dyYW0g TW9kZXMuICAgICAgKGxpbmUgICAxNSkKICAtIG9tZXIgY291bnQ6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gKGxpbmUgIDE2MikKICAtIE9QYXNjYWwgbW9k ZTogICAgICAgICAgICAgICAgICAgICAgICAgIFByb2dyYW0gTW9kZXMuICAgICAgKGxpbmUgICAx NSkKICAtIG9wZW4gZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZpc2l0aW5nLiAg ICAgICAgICAgKGxpbmUgICAgNikKICAtIG9wZW4tcGFyZW50aGVzaXMgaW4gbGVmdG1vc3QgY29s dW1uOiAgIExlZnQgTWFyZ2luIFBhcmVuLiAgKGxpbmUgICAgNikKICAtIE9wZW5Eb2N1bWVudCBm aWxlOiAgICAgICAgICAgICAgICAgICAgIERvY3VtZW50IFZpZXcuICAgICAgKGxpbmUgICAgNikK ICAtIG9wZXJhdGluZyBvbiBmaWxlcyBpbiBEaXJlZDogICAgICAgICAgIE9wZXJhdGluZyBvbiBG aWxlcy4gKGxpbmUgICAgNikKICAtIG9wZXJhdGlvbnMgb24gYSBtYXJrZWQgcmVnaW9uOiAgICAg ICAgIFVzaW5nIFJlZ2lvbi4gICAgICAgKGxpbmUgICAgNikKICAtIG9wdGlvbnMgKGNvbW1hbmQg bGluZSk6ICAgICAgICAgICAgICAgIEVtYWNzIEludm9jYXRpb24uICAgKGxpbmUgICAgNikKICAt IE9yZyBhZ2VuZGE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZyBPcmdhbml6ZXIuICAg ICAgKGxpbmUgICAgNikKICAtIE9yZyBleHBvcnRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAg IE9yZyBBdXRob3JpbmcuICAgICAgKGxpbmUgICAgNikKICAtIE9yZyBtb2RlOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE9yZyBNb2RlLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIG9y Z2FuaXplcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZyBNb2RlLiAgICAgICAgICAg KGxpbmUgICAgNikKICAtIE9yaXlhOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh bmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzUpCiAgLSBvdXQgb2YgbWVtb3J5OiAg ICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkgRnVsbC4gICAgICAgIChsaW5lICAgIDYpCiAg LSBvdXRlciBib3JkZXIgd2lkdGgsIGNvbW1hbmQtbGluZSBhcmd1bWVudDogQm9yZGVycyBYLiAg ICAgIChsaW5lICAgMjApCiAgLSBPdXRsaW5lIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAg ICBPdXRsaW5lIE1vZGUuICAgICAgIChsaW5lICAgIDYpCiAgLSBvdXRsaW5lIHdpdGggbXVsdGlw bGUgdmlld3M6ICAgICAgICAgICBPdXRsaW5lIFZpZXdzLiAgICAgIChsaW5lICAgIDYpCiAgLSBv dmVybGF5cyBhdCBjaGFyYWN0ZXIgcG9zaXRpb246ICAgICAgICBFZGl0aW5nIEZvcm1hdCBJbmZv LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgICAyMCkKICAtIG92ZXJyaWRlIGNoYXJhY3RlciB0ZXJtaW5hbCBjb2xvciBz dXBwb3J0OiBDb2xvcnMgWC4gICAgICAgKGxpbmUgICAzNSkKICAtIG92ZXJzY3JvbGxpbmc6ICAg ICAgICAgICAgICAgICAgICAgICAgIFNjcm9sbCBCYXJzLiAgICAgICAgKGxpbmUgICA0MCkKICAt IG92ZXJ3cmFwcGVkIHNlYXJjaDogICAgICAgICAgICAgICAgICAgIFJlcGVhdCBJc2VhcmNoLiAg ICAgKGxpbmUgICAzNikKICAtIE92ZXJ3cml0ZSBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAg IE1pbm9yIE1vZGVzLiAgICAgICAgKGxpbmUgICA4MykKICAtIFBhY2thZ2U6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2VzLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIFBh Y2thZ2UgYXJjaGl2ZTogICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2VzLiAgICAgICAgICAg KGxpbmUgICAgNikKICAtIHBhY2thZ2UgZGlyZWN0b3J5OiAgICAgICAgICAgICAgICAgICAgIFBh Y2thZ2UgRmlsZXMuICAgICAgKGxpbmUgICAgNikKICAtIHBhY2thZ2UgZmlsZTogICAgICAgICAg ICAgICAgICAgICAgICAgIFBhY2thZ2UgRmlsZXMuICAgICAgKGxpbmUgICAgNikKICAtIHBhY2th Z2UgbWVudTogICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgTWVudS4gICAgICAgKGxp bmUgICAgNikKICAtIHBhY2thZ2UgcmVxdWlyZW1lbnRzOiAgICAgICAgICAgICAgICAgIFBhY2th Z2UgSW5zdGFsbGF0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAxMSkKICAtIHBhY2thZ2Ugc2VjdXJpdHk6ICAg ICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgSW5zdGFsbGF0aW9uLgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyOCkK ICAtIHBhY2thZ2Ugc2lnbmluZzogICAgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgSW5zdGFs bGF0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAyOCkKICAtIHBhZ2VzOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBhZ2VzLiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHBhZ2luZyBpbiBU ZXJtIG1vZGU6ICAgICAgICAgICAgICAgICAgIFRlcm0gTW9kZS4gICAgICAgICAgKGxpbmUgICAy NikKICAtIHBhcmFncmFwaCwgYmFzZSBkaXJlY3Rpb246ICAgICAgICAgICAgIEJpZGlyZWN0aW9u YWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAgMzcpCiAgLSBQYXJhZ3JhcGgtSW5kZW50IFRleHQgbW9k ZTogICAgICAgICAgICBUZXh0IE1vZGUuICAgICAgICAgIChsaW5lICAgMjcpCiAgLSBwYXJhZ3Jh cGhzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJhZ3JhcGhzLiAgICAgICAgIChsaW5l ICAgIDYpCiAgLSBwYXJhc2hhLCB3ZWVrbHk6ICAgICAgICAgICAgICAgICAgICAgICBTZXhwIERp YXJ5IEVudHJpZXMuIChsaW5lICAxNjIpCiAgLSBwYXJlbnRoZXNlcywgZGlzcGxheWluZyBtYXRj aGVzOiAgICAgICBNYXRjaGluZy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBwYXJlbnRoZXNl cywgbW92aW5nIGFjcm9zczogICAgICAgICAgICBNb3ZpbmcgYnkgUGFyZW5zLiAgIChsaW5lICAg IDYpCiAgLSBwYXJlbnRoZXNpcyBpbiBjb2x1bW4gemVybyBhbmQgZm9udGlmaWNhdGlvbjogRm9u dCBMb2NrLiAgIChsaW5lICAgNTQpCiAgLSBwYXJlbnRoZXRpY2FsIGdyb3VwaW5nczogICAgICAg ICAgICAgICBNb3ZpbmcgYnkgUGFyZW5zLiAgIChsaW5lICAgIDYpCiAgLSBwYXJ0aWFsIGNvbXBs ZXRpb246ICAgICAgICAgICAgICAgICAgICBDb21wbGV0aW9uIFN0eWxlcy4gIChsaW5lICAgMzAp CiAgLSDigJhwYXJ0aWFsLWNvbXBsZXRpb27igJksIGNvbXBsZXRpb24gc3R5bGU6IENvbXBsZXRp b24gU3R5bGVzLiAobGluZSAgIDMwKQogIC0gcGFzdGU6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ3V0IGFuZCBQYXN0ZS4gICAgICAobGluZSAgICA2KQogIC0gcGFzdGluZzogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWWFua2luZy4gICAgICAgICAgICAobGluZSAgICA2 KQogIC0gcGF0Y2hlcywgYXBwbHlpbmc6ICAgICAgICAgICAgICAgICAgICAgRGlmZiBNb2RlLiAg ICAgICAgICAobGluZSAgIDY1KQogIC0gcGF0Y2hlcywgZWRpdGluZzogICAgICAgICAgICAgICAg ICAgICAgRGlmZiBNb2RlLiAgICAgICAgICAobGluZSAgICA2KQogIC0gcGF0Y2hlcywgc2VuZGlu ZzogICAgICAgICAgICAgICAgICAgICAgU2VuZGluZyBQYXRjaGVzLiAgICAobGluZSAgICA2KQog IC0gUENMLUNWUzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkMgRGlyZWN0b3J5IE1v ZGUuICAobGluZSAgIDI0KQogIC0gUERCOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGVidWdnZXJzLiAgICAgICAgICAobGluZSAgICA2KQogIC0gUERGIGZpbGU6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnQgVmlldy4gICAgICAobGluZSAgICA2KQogIC0g cGVyLWJ1ZmZlciB2YXJpYWJsZXM6ICAgICAgICAgICAgICAgICAgTG9jYWxzLiAgICAgICAgICAg ICAobGluZSAgIDI3KQogIC0gcGVyLWRpcmVjdG9yeSBsb2NhbCB2YXJpYWJsZXM6ICAgICAgICAg RGlyZWN0b3J5IFZhcmlhYmxlcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBQZXJsIG1vZGU6ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQcm9ncmFtIE1vZGVzLiAgICAgIChsaW5lICAgMTUpCiAg LSBQZXJsZGI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWJ1Z2dlcnMuICAgICAg ICAgIChsaW5lICAgIDYpCiAgLSBQZXJzaWFuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM1KQogIC0gUGVyc2lhbiBjYWxl bmRhcjogICAgICAgICAgICAgICAgICAgICAgQ2FsZW5kYXIgU3lzdGVtcy4gICAobGluZSAgIDQ3 KQogIC0gcGhhc2VzIG9mIHRoZSBtb29uOiAgICAgICAgICAgICAgICAgICAgTHVuYXIgUGhhc2Vz LiAgICAgICAobGluZSAgICA2KQogIC0gcGhyYXNlLCBoaWdobGlnaHRpbmc6ICAgICAgICAgICAg ICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDY0KQogIC0gUGljdHVy ZSBtb2RlIGFuZCByZWN0YW5nbGVzOiAgICAgICAgICAgUmVjdGFuZ2xlcyBpbiBQaWN0dXJlLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgICAgNikKICAtIHBpY3R1cmVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBpY3R1cmUgTW9kZS4gICAgICAgKGxpbmUgICAgNikKICAtIFBpa2UgbW9kZTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEMgTW9kZXMuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHBp bm5pbmcgRW1hY3MgdG8gV2luZG93cyB0YXNrIGJhcjogICAgIFdpbmRvd3MgU3RhcnR1cC4gICAg KGxpbmUgICAyMCkKICAtIHBsYW5uZXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9y ZyBNb2RlLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHBvaW50OiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBvaW50LiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHBvaW50 IGxvY2F0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgIFBvc2l0aW9uIEluZm8uICAgICAgKGxp bmUgICAzNykKICAtIHBvaW50IGxvY2F0aW9uLCBvbiBNUy1ET1M6ICAgICAgICAgICAgIFRleHQg YW5kIEJpbmFyeS4gICAgKGxpbmUgICAyMCkKICAtIFBvbGlzaDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzUpCiAgLSBQ b25nIGdhbWU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAg IChsaW5lICAgNTApCiAgLSBwb3AtdXAgd2luZG93czogICAgICAgICAgICAgICAgICAgICAgICBU ZW1wb3JhcnkgRGlzcGxheXMuIChsaW5lICAgIDYpCiAgLSBQT1AzIG1haWxib3hlczogICAgICAg ICAgICAgICAgICAgICAgICBSZW1vdGUgTWFpbGJveGVzLiAgIChsaW5lICAgMTQpCiAgLSBwb3Np dGlvbiBhbmQgc2l6ZSBvZiBFbWFjcyBmcmFtZTogICAgICBXaW5kb3cgU2l6ZSBYLiAgICAgIChs aW5lICAgIDYpCiAgLSBQb3N0U2NyaXB0IGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICBEb2N1 bWVudCBWaWV3LiAgICAgIChsaW5lICAgIDYpCiAgLSBQb3N0U2NyaXB0IG1vZGU6ICAgICAgICAg ICAgICAgICAgICAgICBQcm9ncmFtIE1vZGVzLiAgICAgIChsaW5lICAgMTUpCiAgLSBwcmVmaXgg YXJndW1lbnQgY29tbWFuZHMsIGR1cmluZyBpbmNyZW1lbnRhbCBzZWFyY2g6IE5vdCBFeGl0aW5n IElzZWFyY2guCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZSAgIDIyKQogIC0gcHJlZml4IGFyZ3VtZW50czogICAgICAgICAg ICAgICAgICAgICAgQXJndW1lbnRzLiAgICAgICAgICAobGluZSAgICA2KQogIC0gcHJlZml4IGtl eTogICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5cy4gICAgICAgICAgICAgICAobGluZSAg IDEwKQogIC0gcHJlcHJvY2Vzc29yIGhpZ2hsaWdodGluZzogICAgICAgICAgICAgT3RoZXIgQyBD b21tYW5kcy4gICAobGluZSAgIDU2KQogIC0gcHJldHR5LXByaW50ZXI6ICAgICAgICAgICAgICAg ICAgICAgICAgUHJvZ3JhbSBJbmRlbnQuICAgICAobGluZSAgIDIzKQogIC0gcHJldmVudCBjb21t YW5kcyBmcm9tIGV4aXRpbmcgaW5jcmVtZW50YWwgc2VhcmNoOiBOb3QgRXhpdGluZyBJc2VhcmNo LgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgICA1NSkKICAtIHByZXZpZXcgb2YgcmVnaXN0ZXJzOiAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVycy4gICAgICAgICAgKGxpbmUgICAyOCkKICAtIHByaW1hcnkgUm1haWwgZmls ZTogICAgICAgICAgICAgICAgICAgIFJtYWlsIEJhc2ljcy4gICAgICAgKGxpbmUgICAgNikKICAt IHByaW1hcnkgc2VsZWN0aW9uOiAgICAgICAgICAgICAgICAgICAgIFByaW1hcnkgU2VsZWN0aW9u LiAgKGxpbmUgICAgNikKICAtIHByaW1hcnkgc2VsZWN0aW9uLCB3aGVuIGFjdGl2ZSByZWdpb24g Y2hhbmdlczogU2V0dGluZyBNYXJrLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICA3NikKICAtIHByaW50aW5nOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFByaW50aW5nLiAgICAgICAgICAgKGxpbmUgICAgNikK ICAtIHByaW50aW5nIGNoYXJhY3RlcjogICAgICAgICAgICAgICAgICAgIFRleHQgRGlzcGxheS4g ICAgICAgKGxpbmUgICAgNikKICAtIHByaW50aW5nIGZpbGVzIChpbiBEaXJlZCk6ICAgICAgICAg ICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gKGxpbmUgICA5OSkKICAtIFByaW50aW5nIHBhY2thZ2U6 ICAgICAgICAgICAgICAgICAgICAgIFByaW50aW5nIFBhY2thZ2UuICAgKGxpbmUgICAgNikKICAt IHByaW50aW5nIHVuZGVyIE1TLURPUzogICAgICAgICAgICAgICAgIE1TLURPUyBQcm9jZXNzZXMu ICAgKGxpbmUgICAyOSkKICAtIFByb2cgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAg IEhvb2tzLiAgICAgICAgICAgICAgKGxpbmUgICA2OCkKICAtIHByb2dyYW0gYnVpbGRpbmc6ICAg ICAgICAgICAgICAgICAgICAgIEJ1aWxkaW5nLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHBy b2dyYW0gZWRpdGluZzogICAgICAgICAgICAgICAgICAgICAgIFByb2dyYW1zLiAgICAgICAgICAg KGxpbmUgICAgNikKICAtIFByb2xvZyBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBy b2dyYW0gTW9kZXMuICAgICAgKGxpbmUgICAxNSkKICAtIHByb21wdDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJhc2ljIE1pbmlidWZmZXIuICAgKGxpbmUgICAgNikKICAtIHByb21w dCwgc2hlbGw6ICAgICAgICAgICAgICAgICAgICAgICAgIFNoZWxsIFByb21wdHMuICAgICAgKGxp bmUgICAgNikKICAtIFBTIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERvY3Vt ZW50IFZpZXcuICAgICAgKGxpbmUgICAgNikKICAtIFB1bmphYmk6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzYpCiAgLSBw dXp6bGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAgICAgICAg IChsaW5lICAgIDkpCiAgLSBQeXRob24gbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBQ cm9ncmFtIE1vZGVzLiAgICAgIChsaW5lICAgMTUpCiAgLSBxdWVyeSByZXBsYWNlOiAgICAgICAg ICAgICAgICAgICAgICAgICBRdWVyeSBSZXBsYWNlLiAgICAgIChsaW5lICAgIDYpCiAgLSDigJhx dWVyeS1yZXBsYWNl4oCZIGZhY2U6ICAgICAgICAgICAgICAgICAgUXVlcnkgUmVwbGFjZS4gICAg ICAobGluZSAgIDM0KQogIC0gcXVpdHRpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UXVpdHRpbmcuICAgICAgICAgICAobGluZSAgIDI4KQogIC0gcXVpdHRpbmcgKGluIHNlYXJjaCk6 ICAgICAgICAgICAgICAgICAgRXJyb3IgaW4gSXNlYXJjaC4gICAobGluZSAgIDIyKQogIC0gcXVp dHRpbmcgRW1hY3M6ICAgICAgICAgICAgICAgICAgICAgICAgRXhpdGluZy4gICAgICAgICAgICAo bGluZSAgICA2KQogIC0gcXVpdHRpbmcgb24gTVMtRE9TOiAgICAgICAgICAgICAgICAgICAgTVMt RE9TIEtleWJvYXJkLiAgICAobGluZSAgIDEyKQogIC0gUXVvdGF0aW9uIG1hcmtzOiAgICAgICAg ICAgICAgICAgICAgICAgUXVvdGF0aW9uIE1hcmtzLiAgICAobGluZSAgICA2KQogIC0gcXVvdGlu ZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zZXJ0aW5nIFRleHQuICAgICAobGlu ZSAgIDMwKQogIC0gcXVvdGluZyBmaWxlIG5hbWVzOiAgICAgICAgICAgICAgICAgICAgUXVvdGVk IEZpbGUgTmFtZXMuICAobGluZSAgICA2KQogIC0gcmFyOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRmlsZSBBcmNoaXZlcy4gICAgICAobGluZSAgIDQ1KQogIC0gcmF3IGJ5dGVz OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYXRpb25hbCBDaGFycy4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lICAgNTQpCiAgLSDigJhyYXctdGV4dOKAmSwgY29kaW5nIHN5c3RlbTogICAgICAgICAgICAg Q29kaW5nIFN5c3RlbXMuICAgICAobGluZSAgIDkxKQogIC0gUkNTOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDIw KQogIC0gcmVhZC1vbmx5IGJ1ZmZlcjogICAgICAgICAgICAgICAgICAgICAgTWlzYyBCdWZmZXIu ICAgICAgICAobGluZSAgIDE1KQogIC0gcmVhZC1vbmx5IHRleHQsIGtpbGxpbmc6ICAgICAgICAg ICAgICAgS2lsbCBPcHRpb25zLiAgICAgICAobGluZSAgICA2KQogIC0gcmVhZGluZyBtYWlsOiAg ICAgICAgICAgICAgICAgICAgICAgICAgUm1haWwuICAgICAgICAgICAgICAobGluZSAgICA2KQog IC0gcmViaW5kaW5nIGtleXMsIHBlcm1hbmVudGx5OiAgICAgICAgICAgSW5pdCBSZWJpbmRpbmcu ICAgICAobGluZSAgICA2KQogIC0gcmViaW5kaW5nIG1ham9yIG1vZGUga2V5czogICAgICAgICAg ICAgSW5pdCBSZWJpbmRpbmcuICAgICAobGluZSAgICA2KQogIC0gcmViaW5kaW5nIG1vdXNlIGJ1 dHRvbnM6ICAgICAgICAgICAgICAgTW91c2UgQnV0dG9ucy4gICAgICAobGluZSAgICA2KQogIC0g cmViaW5kaW5nIG5vbi1BU0NJSSBrZXlzOiAgICAgICAgICAgICAgSW5pdCBOb24tQVNDSUkuICAg ICAobGluZSAgICA2KQogIC0gcmVjb3ZlcmluZyBjcmFzaGVkIHNlc3Npb246ICAgICAgICAgICAg QWZ0ZXIgYSBDcmFzaC4gICAgICAobGluZSAgICA2KQogIC0gcmVjdGFuZ2xlOiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVjdGFuZ2xlcy4gICAgICAgICAobGluZSAgICA2KQogIC0gcmVj dGFuZ2xlIGhpZ2hsaWdodGluZzogICAgICAgICAgICAgICAgQ1VBIEJpbmRpbmdzLiAgICAgICAo bGluZSAgIDMwKQogIC0gcmVjdGFuZ2xlcyBhbmQgUGljdHVyZSBtb2RlOiAgICAgICAgICAgUmVj dGFuZ2xlcyBpbiBQaWN0dXJlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHJlY3Vyc2l2ZSBjb3B5aW5n OiAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGluZyBvbiBGaWxlcy4gKGxpbmUgICA0MykKICAt IHJlY3Vyc2l2ZSBkZWxldGlvbjogICAgICAgICAgICAgICAgICAgIERpcmVkIERlbGV0aW9uLiAg ICAgKGxpbmUgICA1MSkKICAtIHJlY3Vyc2l2ZSBlZGl0aW5nIGxldmVsOiAgICAgICAgICAgICAg IFJlY3Vyc2l2ZSBFZGl0LiAgICAgKGxpbmUgICAgNikKICAtIHJlY3Vyc2l2ZSBlZGl0aW5nLCBj YW5ub3QgZXhpdDogICAgICAgIFN0dWNrIFJlY3Vyc2l2ZS4gICAgKGxpbmUgICAgNikKICAtIHJl Y3ljbGUgYmluOiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc2MgRmlsZSBPcHMuICAgICAg KGxpbmUgICAxMykKICAtIHJlZGVmaW5pbmcga2V5cywgdGhpcyBzZXNzaW9uOiAgICAgICAgIFJl YmluZGluZy4gICAgICAgICAgKGxpbmUgICAgNikKICAtIHJlZG86ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFVuZG8uICAgICAgICAgICAgICAgKGxpbmUgICAyOCkKICAtIHJlZnJl c2hpbmcgZGlzcGxheWVkIGZpbGVzOiAgICAgICAgICAgIERpcmVkIFVwZGF0aW5nLiAgICAgKGxp bmUgICAgNikKICAtIHJlZ2V4cDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2V4 cHMuICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHJlZ2V4cCBzZWFyY2g6ICAgICAgICAgICAg ICAgICAgICAgICAgIFJlZ2V4cCBTZWFyY2guICAgICAgKGxpbmUgICAgNikKICAtIHJlZ2lvbjog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmsuICAgICAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIHJlZ2lvbiBoaWdobGlnaHRpbmc6ICAgICAgICAgICAgICAgICAgIERpc2FibGVk IFRyYW5zaWVudCBNYXJrLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHJlZ2lzdGVyZWQgZmlsZTogICAg ICAgICAgICAgICAgICAgICAgIFZDUyBDb25jZXB0cy4gICAgICAgKGxpbmUgICAgNikKICAtIHJl Z2lzdGVyczogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVycy4gICAgICAgICAg KGxpbmUgICAgNikKICAtIHJlZ2lzdHJ5LCBzZXR0aW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyAo TVMtV2luZG93cyk6IE1TLVdpbmRvd3MgUmVnaXN0cnkuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gcmVn aXN0cnksIHNldHRpbmcgcmVzb3VyY2VzIChNUy1XaW5kb3dzKTogUmVzb3VyY2VzLiAgICAgICAo bGluZSAgIDE0KQogIC0gcmVndWxhciBleHByZXNzaW9uOiAgICAgICAgICAgICAgICAgICAgUmVn ZXhwcy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gcmVsYXRlZCBmaWxlczogICAgICAgICAg ICAgICAgICAgICAgICAgT3RoZXIgQyBDb21tYW5kcy4gICAobGluZSAgIDk0KQogIC0gcmVsb2Fk IGZpbGVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgU2F2aW5nIEVtYWNzIFNlc3Npb25zLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgICAgNikKICAtIHJlbWVtYmVyIGVkaXRpbmcgc2Vzc2lvbjogICAgICAgICAgICAg IFNhdmluZyBFbWFjcyBTZXNzaW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSByZW1vdGUgZmlsZSBh Y2Nlc3M6ICAgICAgICAgICAgICAgICAgICBSZW1vdGUgRmlsZXMuICAgICAgIChsaW5lICAgIDYp CiAgLSByZW1vdGUgaG9zdDogICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgSG9zdC4g ICAgICAgIChsaW5lICAgIDYpCiAgLSByZW1vdGUgaG9zdCwgZGVidWdnaW5nIG9uOiAgICAgICAg ICAgICBTdGFydGluZyBHVUQuICAgICAgIChsaW5lICAgNTIpCiAgLSByZW1vdGUgcmVwb3NpdG9y aWVzIChDVlMpOiAgICAgICAgICAgICBDVlMgT3B0aW9ucy4gICAgICAgIChsaW5lICAgMTEpCiAg LSByZW1vdmUgaW5kZW50YXRpb246ICAgICAgICAgICAgICAgICAgICBJbmRlbnRhdGlvbiBDb21t YW5kcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAgNTMpCiAgLSByZW5hbWluZyBmaWxlczogICAgICAgICAgICAgICAg ICAgICAgICBDb3B5aW5nIGFuZCBOYW1pbmcuIChsaW5lICAgMjkpCiAgLSByZW5hbWluZyBmaWxl cyAoaW4gRGlyZWQpOiAgICAgICAgICAgICBPcGVyYXRpbmcgb24gRmlsZXMuIChsaW5lICAgNTUp CiAgLSByZW5hbWluZyB2ZXJzaW9uLWNvbnRyb2xsZWQgZmlsZXM6ICAgICBWQyBEZWxldGUvUmVu YW1lLiAgIChsaW5lICAgIDYpCiAgLSByZXBlYXRpbmcgYSBjb21tYW5kOiAgICAgICAgICAgICAg ICAgICBSZXBlYXRpbmcuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSByZXBsYWNlbWVudDogICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXBsYWNlLiAgICAgICAgICAgIChsaW5lICAgIDYpCiAg LSByZXBseSB0byBhIG1lc3NhZ2U6ICAgICAgICAgICAgICAgICAgICBSbWFpbCBSZXBseS4gICAg ICAgIChsaW5lICAgMjgpCiAgLSByZXBvcnQgYW4gRW1hY3MgYnVnLCBob3cgdG86ICAgICAgICAg ICBVbmRlcnN0YW5kaW5nIEJ1ZyBSZXBvcnRpbmcuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gcmVwb3Np dG9yeTogICAgICAgICAgICAgICAgICAgICAgICAgICAgVkNTIENvbmNlcHRzLiAgICAgICAobGlu ZSAgICA2KQogIC0gcmVyZWFkIGEgZmlsZTogICAgICAgICAgICAgICAgICAgICAgICAgUmV2ZXJ0 aW5nLiAgICAgICAgICAobGluZSAgICA2KQogIC0gcmVzZXJ2ZWQga2V5IGJpbmRpbmdzOiAgICAg ICAgICAgICAgICAgS2V5IEJpbmRpbmdzLiAgICAgICAobGluZSAgIDExKQogIC0gcmVzaXplIHdp bmRvdzogICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlIFdpbmRvdy4gICAgICAobGluZSAg IDQyKQogIC0gcmVzaXppbmcgbWluaWJ1ZmZlcjogICAgICAgICAgICAgICAgICAgTWluaWJ1ZmZl ciBFZGl0LiAgICAobGluZSAgIDI2KQogIC0gcmVzaXppbmcgd2luZG93czogICAgICAgICAgICAg ICAgICAgICAgQ2hhbmdlIFdpbmRvdy4gICAgICAobGluZSAgIDQyKQogIC0gcmVzb2x2aW5nIGNv bmZsaWN0czogICAgICAgICAgICAgICAgICAgTWVyZ2luZy4gICAgICAgICAgICAobGluZSAgIDMz KQogIC0gcmVzb3VyY2UgZmlsZXMgZm9yIEdUSys6ICAgICAgICAgICAgICAgR1RLIHJlc291cmNl cy4gICAgICAobGluZSAgICA2KQogIC0gcmVzb3VyY2UgbmFtZSwgY29tbWFuZC1saW5lIGFyZ3Vt ZW50OiAgUmVzb3VyY2VzLiAgICAgICAgICAobGluZSAgIDU5KQogIC0gcmVzb3VyY2UgdmFsdWVz LCBjb21tYW5kLWxpbmUgYXJndW1lbnQ6IFJlc291cmNlcy4gICAgICAgICAobGluZSAgIDc2KQog IC0gcmVzb3VyY2VzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VzLiAgICAg ICAgICAobGluZSAgICA2KQogIC0gcmVzdG9yZSBzZXNzaW9uOiAgICAgICAgICAgICAgICAgICAg ICAgU2F2aW5nIEVtYWNzIFNlc3Npb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHJlc3RyaWN0aW9u OiAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hcnJvd2luZy4gICAgICAgICAgKGxpbmUgICAg NikKICAtIHJldHJ5aW5nIGEgZmFpbGVkIG1lc3NhZ2U6ICAgICAgICAgICAgIFJtYWlsIFJlcGx5 LiAgICAgICAgKGxpbmUgICA1NykKICAtIHJldmVyc2Ugb3JkZXIgaW4gUE9QMyBpbmJveGVzOiAg ICAgICAgIFJlbW90ZSBNYWlsYm94ZXMuICAgKGxpbmUgICA2MCkKICAtIHJldmVyc2UgdmlkZW8s IGNvbW1hbmQtbGluZSBhcmd1bWVudDogIENvbG9ycyBYLiAgICAgICAgICAgKGxpbmUgICAzMykK ICAtIHJldmlzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZDUyBDb25jZXB0cy4g ICAgICAgKGxpbmUgICAyMSkKICAtIHJldmlzaW9uIElEOiAgICAgICAgICAgICAgICAgICAgICAg ICAgIFZDUyBDb25jZXB0cy4gICAgICAgKGxpbmUgICAyMSkKICAtIHJldmlzaW9uIElEIGluIHZl cnNpb24gY29udHJvbDogICAgICAgIEFkdmFuY2VkIEMteCB2IHYuICAgKGxpbmUgICAgNikKICAt IHJldmlzaW9uIHRhZzogICAgICAgICAgICAgICAgICAgICAgICAgIFJldmlzaW9uIFRhZ3MuICAg ICAgKGxpbmUgICAgNikKICAtIFJHQiB0cmlwbGV0OiAgICAgICAgICAgICAgICAgICAgICAgICAg IENvbG9ycy4gICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHJpZ2h0LXRvLWxlZnQgdGV4dDog ICAgICAgICAgICAgICAgICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYp CiAgLSByaXNreSB2YXJpYWJsZTogICAgICAgICAgICAgICAgICAgICAgICBTYWZlIEZpbGUgVmFy aWFibGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAyNykKICAtIFJMTTogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNjApCiAgLSBSbG9n aW46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgSG9zdC4gICAgICAgIChs aW5lICAgIDYpCiAgLSBSbWFpbDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSbWFp bC4gICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBSbWFpbCBmaWxlIHNvcnRpbmc6ICAgICAg ICAgICAgICAgICAgICBSbWFpbCBTb3J0aW5nLiAgICAgIChsaW5lICAgIDYpCiAgLSBSb21hbmlh bjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgIDM2KQogIC0gcm9zaCBob2Rlc2g6ICAgICAgICAgICAgICAgICAgICAgICAgICAg U2V4cCBEaWFyeSBFbnRyaWVzLiAobGluZSAgMTYyKQogIC0gcm90MTMgY29kZTogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUm1haWwgUm90MTMuICAgICAgICAobGluZSAgICA2KQogIC0gUnVi eSBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAo bGluZSAgIDE1KQogIC0gcnVuZW1hY3MuZXhlOiAgICAgICAgICAgICAgICAgICAgICAgICAgV2lu ZG93cyBTdGFydHVwLiAgICAobGluZSAgICA4KQogIC0gcnVubmluZyBhIGhvb2s6ICAgICAgICAg ICAgICAgICAgICAgICAgSG9va3MuICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gcnVubmlu ZyBMaXNwIGZ1bmN0aW9uczogICAgICAgICAgICAgICAgQnVpbGRpbmcuICAgICAgICAgICAobGlu ZSAgICA2KQogIC0gUnVzc2lhbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3Vh Z2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNikKICAtIHNhdmVkIGVjaG8gYXJlYSBtZXNz YWdlczogICAgICAgICAgICAgIEVjaG8gQXJlYS4gICAgICAgICAgKGxpbmUgICAzNCkKICAtIHNh dmluZyBhIHNldHRpbmc6ICAgICAgICAgICAgICAgICAgICAgIENoYW5naW5nIGEgVmFyaWFibGUu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDkyKQogIC0gc2F2aW5nIGZpbGUgbmFtZSBpbiBhIHJlZ2lzdGVyOiAgICAg ICAgRmlsZSBSZWdpc3RlcnMuICAgICAobGluZSAgICA2KQogIC0gc2F2aW5nIGZpbGVzOiAgICAg ICAgICAgICAgICAgICAgICAgICAgVmlzaXRpbmcuICAgICAgICAgICAobGluZSAgIDIzKQogIC0g c2F2aW5nIGtleWJvYXJkIG1hY3JvIGluIGEgcmVnaXN0ZXI6ICAgS2V5Ym9hcmQgTWFjcm8gUmVn aXN0ZXJzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHNhdmluZyBrZXlib2FyZCBtYWNyb3M6ICAgICAg ICAgICAgICAgIFNhdmUgS2V5Ym9hcmQgTWFjcm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDE1KQogIC0gc2F2aW5n IG51bWJlciBpbiBhIHJlZ2lzdGVyOiAgICAgICAgICAgTnVtYmVyIFJlZ2lzdGVycy4gICAobGlu ZSAgICA2KQogIC0gc2F2aW5nIHBvc2l0aW9uIGluIGEgcmVnaXN0ZXI6ICAgICAgICAgUG9zaXRp b24gUmVnaXN0ZXJzLiAobGluZSAgICA2KQogIC0gc2F2aW5nIHJlY3RhbmdsZSBpbiBhIHJlZ2lz dGVyOiAgICAgICAgUmVjdGFuZ2xlIFJlZ2lzdGVycy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBzYXZp bmcgc2Vzc2lvbnM6ICAgICAgICAgICAgICAgICAgICAgICBTYXZpbmcgRW1hY3MgU2Vzc2lvbnMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgICA2KQogIC0gc2F2aW5nIHRleHQgaW4gYSByZWdpc3RlcjogICAgICAgICAg ICAgVGV4dCBSZWdpc3RlcnMuICAgICAobGluZSAgICA2KQogIC0gc2F2aW5nIHdpbmRvdyBjb25m aWd1cmF0aW9uIGluIGEgcmVnaXN0ZXI6IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXJzLgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp bmUgICAgNikKICAtIFNDQ1M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNp b24gQ29udHJvbCBTeXN0ZW1zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgOSkKICAtIFNjaGVtZSBtb2RlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsIExpc3AuICAgICAgKGxpbmUgICAzNSkKICAt IHNjcmVlbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjcmVlbi4gICAgICAgICAg ICAgKGxpbmUgICAgNikKICAtIHNjcmVlbiBkaXNwbGF5LCB3cm9uZzogICAgICAgICAgICAgICAg IFNjcmVlbiBHYXJibGVkLiAgICAgKGxpbmUgICAgNikKICAtIHNjcmVlbiByZWFkZXIgc29mdHdh cmUsIE1TLVdpbmRvd3M6ICAgIFdpbmRvd3MgTWlzYy4gICAgICAgKGxpbmUgICAgOSkKICAtIHNj cmlwdCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRpYWwgT3B0aW9ucy4gICAg KGxpbmUgICA2OSkKICAtIHNjcm9sbCBiYXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlIG9mIFJlc291cmNlcy4gKGxpbmUgIDEyMikKICAtIFNjcm9sbCBCYXIgbW9kZTogICAgICAg ICAgICAgICAgICAgICAgIFNjcm9sbCBCYXJzLiAgICAgICAgKGxpbmUgICAgNikKICAtIFNjcm9s bC1hbGwgbW9kZTogICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBDb252ZW5pZW5jZS4gKGxp bmUgICAyOSkKICAtIOKAmHNjcm9sbC1iYXLigJkgZmFjZTogICAgICAgICAgICAgICAgICAgICBT Y3JvbGwgQmFycy4gICAgICAgIChsaW5lICAgNDkpCiAgLSDigJhzY3JvbGwtY29tbWFuZOKAmSBw cm9wZXJ0eTogICAgICAgICAgICAgU2Nyb2xsaW5nLiAgICAgICAgICAobGluZSAgIDU5KQogIC0g c2Nyb2xsYmFyIHdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgb2YgUmVzb3VyY2Vz LiAobGluZSAgMTI2KQogIC0gc2Nyb2xsaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U2Nyb2xsaW5nLiAgICAgICAgICAobGluZSAgICA2KQogIC0gc2Nyb2xsaW5nIGNvbW1hbmRzLCBk dXJpbmcgaW5jcmVtZW50YWwgc2VhcmNoOiBOb3QgRXhpdGluZyBJc2VhcmNoLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAzOCkKICAtIHNjcm9sbGluZyBpbiB0aGUgY2FsZW5kYXI6ICAgICAgICAgICAgIFNjcm9sbCBD YWxlbmRhci4gICAgKGxpbmUgICAgNikKICAtIHNjcm9sbGluZyB3aW5kb3dzIHRvZ2V0aGVyOiAg ICAgICAgICAgIFdpbmRvdyBDb252ZW5pZW5jZS4gKGxpbmUgICAyOSkKICAtIFNEQjogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlYnVnZ2Vycy4gICAgICAgICAgKGxpbmUgICAg NikKICAtIHNlYXJjaCBhbmQgcmVwbGFjZSBpbiBtdWx0aXBsZSBmaWxlcyAoaW4gRGlyZWQpOiBP cGVyYXRpbmcgb24gRmlsZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgMTU4KQogIC0gc2VhcmNoIGFuZCByZXBsYWNl IGluIG11bHRpcGxlIHNvdXJjZSBmaWxlczogSWRlbnRpZmllciBTZWFyY2guCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAg ICA2KQogIC0gc2VhcmNoIGN1c3RvbWl6YXRpb25zOiAgICAgICAgICAgICAgICAgU2VhcmNoIEN1 c3RvbWl6YXRpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHNlYXJjaCBkaXNwbGF5IG9uIHNsb3cg dGVybWluYWxzOiAgICAgIFNlYXJjaCBDdXN0b21pemF0aW9ucy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgNTUpCiAg LSBzZWFyY2ggZm9yIGEgcmVndWxhciBleHByZXNzaW9uOiAgICAgICBSZWdleHAgU2VhcmNoLiAg ICAgIChsaW5lICAgIDYpCiAgLSBzZWFyY2ggbW9kZSwgZGVmYXVsdDogICAgICAgICAgICAgICAg ICBTZWFyY2ggQ3VzdG9taXphdGlvbnMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA5KQogIC0gc2VhcmNoIG11bHRp cGxlIGZpbGVzIChpbiBEaXJlZCk6ICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAobGluZSAgMTQz KQogIC0gc2VhcmNoIHJpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwZWF0IElzZWFy Y2guICAgICAobGluZSAgIDQ0KQogIC0gc2VhcmNoLCBvdmVyd3JhcHBlZDogICAgICAgICAgICAg ICAgICAgUmVwZWF0IElzZWFyY2guICAgICAobGluZSAgIDM2KQogIC0gc2VhcmNoLCB3cmFwcGlu ZyBhcm91bmQ6ICAgICAgICAgICAgICAgUmVwZWF0IElzZWFyY2guICAgICAobGluZSAgIDM2KQog IC0gc2VhcmNoLWFuZC1yZXBsYWNlIGNvbW1hbmRzOiAgICAgICAgICAgUmVwbGFjZS4gICAgICAg ICAgICAobGluZSAgICA2KQogIC0gc2VhcmNoaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU2VhcmNoLiAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gc2VhcmNoaW5nIERpcmVkIGJ1 ZmZlcnM6ICAgICAgICAgICAgICAgRGlyZWQgTmF2aWdhdGlvbi4gICAobGluZSAgIDIwKQogIC0g c2VhcmNoaW5nIGRvY3VtZW50YXRpb24gZWZmaWNpZW50bHk6ICAgSGVscC4gICAgICAgICAgICAg ICAobGluZSAgIDE3KQogIC0gc2VhcmNoaW5nIGluIFJtYWlsOiAgICAgICAgICAgICAgICAgICAg Um1haWwgTW90aW9uLiAgICAgICAobGluZSAgIDYwKQogIC0gc2VhcmNoaW5nIG11bHRpcGxlIGZp bGVzIHZpYSBEaXJlZDogICAgTWlzYyBEaXJlZCBGZWF0dXJlcy4KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTApCiAg LSBzZWNvbmRhcnkgc2VsZWN0aW9uOiAgICAgICAgICAgICAgICAgICBTZWNvbmRhcnkgU2VsZWN0 aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgICAgNikKICAtIOKAmHNlY29uZGFyeS1zZWxlY3Rpb27igJkgZmFjZTog ICAgICAgICAgICBTZWNvbmRhcnkgU2VsZWN0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAxMSkKICAtIHNlY3Rp b25zIG9mIG1hbnVhbCBwYWdlczogICAgICAgICAgICAgIE1hbiBQYWdlLiAgICAgICAgICAgKGxp bmUgICAyMikKICAtIHNlY3VyaXR5OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvc3Qg U2VjdXJpdHkuICAgICAgKGxpbmUgICAgNikKICAtIHNlY3VyaXR5LCB3aGVuIGRpc3BsYXlpbmcg ZW5yaWNoZWQgdGV4dDogRW5yaWNoZWQgUHJvcGVydGllcy4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTUpCiAgLSBz ZWxlY3QgYWxsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJraW5nIE9iamVjdHMuICAg IChsaW5lICAgNTIpCiAgLSBzZWxlY3RlZCBidWZmZXI6ICAgICAgICAgICAgICAgICAgICAgICBC dWZmZXJzLiAgICAgICAgICAgIChsaW5lICAgMjMpCiAgLSBzZWxlY3RlZCB3aW5kb3c6ICAgICAg ICAgICAgICAgICAgICAgICBCYXNpYyBXaW5kb3cuICAgICAgIChsaW5lICAgMTIpCiAgLSBzZWxl Y3RpbmcgYnVmZmVycyBpbiBvdGhlciB3aW5kb3dzOiAgICBQb3AgVXAgV2luZG93LiAgICAgIChs aW5lICAgIDYpCiAgLSBzZWxlY3Rpb24sIHByaW1hcnk6ICAgICAgICAgICAgICAgICAgICBQcmlt YXJ5IFNlbGVjdGlvbi4gIChsaW5lICAgIDYpCiAgLSBzZWxlY3RpdmUgZGlzcGxheTogICAgICAg ICAgICAgICAgICAgICBTZWxlY3RpdmUgRGlzcGxheS4gIChsaW5lICAgIDYpCiAgLSBzZWxlY3Rp dmUgdW5kbzogICAgICAgICAgICAgICAgICAgICAgICBVbmRvLiAgICAgICAgICAgICAgIChsaW5l ICAgNTMpCiAgLSBzZWxmLWRvY3VtZW50YXRpb246ICAgICAgICAgICAgICAgICAgICBIZWxwLiAg ICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBTZW1hbnRpYyBtb2RlOiAgICAgICAgICAgICAg ICAgICAgICAgICBTZW1hbnRpYy4gICAgICAgICAgIChsaW5lICAgMTgpCiAgLSBTZW1hbnRpYyBw YWNrYWdlOiAgICAgICAgICAgICAgICAgICAgICBTZW1hbnRpYy4gICAgICAgICAgIChsaW5lICAg IDYpCiAgLSBzZW5kaW5nIG1haWw6ICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kaW5nIE1h aWwuICAgICAgIChsaW5lICAgIDYpCiAgLSBzZW5kaW5nIHBhdGNoZXMgZm9yIEdOVSBFbWFjczog ICAgICAgICBTZW5kaW5nIFBhdGNoZXMuICAgIChsaW5lICAgIDYpCiAgLSBTZW5kbWFpbDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNYWlsIFNlbmRpbmcuICAgICAgIChsaW5lICAgMjgp CiAgLSBzZW50ZW5jZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW50ZW5jZXMuICAg ICAgICAgIChsaW5lICAgIDYpCiAgLSBzZXJ2ZXIgZmlsZTogICAgICAgICAgICAgICAgICAgICAg ICAgICBUQ1AgRW1hY3Mgc2VydmVyLiAgIChsaW5lICAgMzIpCiAgLSBzZXJ2ZXIsIHVzaW5nIEVt YWNzIGFzOiAgICAgICAgICAgICAgICBFbWFjcyBTZXJ2ZXIuICAgICAgIChsaW5lICAgIDYpCiAg LSBzZXJ2ZXItc2lkZSBmb250czogICAgICAgICAgICAgICAgICAgICBGb250cy4gICAgICAgICAg ICAgIChsaW5lICAxODcpCiAgLSBzZXQgYnVmZmVyIGZhY2UgaGVpZ2h0OiAgICAgICAgICAgICAg ICBUZXh0IFNjYWxlLiAgICAgICAgIChsaW5lICAgMjQpCiAgLSBzZXRzIG9mIGZpbGVzOiAgICAg ICAgICAgICAgICAgICAgICAgICBGaWxlc2V0cy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBz ZXR0aW5nIGEgbWFyazogICAgICAgICAgICAgICAgICAgICAgICBNYXJrLiAgICAgICAgICAgICAg IChsaW5lICAgIDYpCiAgLSBzZXR0aW5nIHZhcmlhYmxlczogICAgICAgICAgICAgICAgICAgICBF eGFtaW5pbmcuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBzZXR0aW5nczogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFYXN5IEN1c3RvbWl6YXRpb24uIChsaW5lICAgIDYpCiAgLSBzZXR0 aW5ncywgaG93IHRvIHNhdmU6ICAgICAgICAgICAgICAgICBDaGFuZ2luZyBhIFZhcmlhYmxlLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgICA5MikKICAtIHNleHA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEV4cHJlc3Npb25zLiAgICAgICAgKGxpbmUgICAgNikKICAtIHNleHAgZGlhcnkgZW50cmllczog ICAgICAgICAgICAgICAgICAgIFNleHAgRGlhcnkgRW50cmllcy4gKGxpbmUgICAgNikKICAtIFNH TUwgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAg KGxpbmUgICAgNikKICAtIHNoYWRvdyBjbHVzdGVyOiAgICAgICAgICAgICAgICAgICAgICAgIEZp bGUgU2hhZG93aW5nLiAgICAgKGxpbmUgICAxNykKICAtIOKAmHNoYWRvd+KAmSBmYWNlOiAgICAg ICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZCBGYWNlcy4gICAgIChsaW5lICAgMjgpCiAgLSBz aGFkb3cgZmlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWxlIFNoYWRvd2luZy4gICAg IChsaW5lICAgIDYpCiAgLSBzaGVsbCBjb21tYW5kczogICAgICAgICAgICAgICAgICAgICAgICBT aGVsbC4gICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBzaGVsbCBjb21tYW5kcywgRGlyZWQ6 ICAgICAgICAgICAgICAgICBTaGVsbCBDb21tYW5kcyBpbiBEaXJlZC4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDYp CiAgLSBzaGVsbCBjb21wbGV0aW9uOiAgICAgICAgICAgICAgICAgICAgICBTaGVsbCBNb2RlLiAg ICAgICAgIChsaW5lICAgMjApCiAgLSDigJhTSEVMTOKAmSBlbnZpcm9ubWVudCB2YXJpYWJsZTog ICAgICAgICAgSW50ZXJhY3RpdmUgU2hlbGwuICAobGluZSAgIDM2KQogIC0gU2hlbGwgbW9kZTog ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hlbGwgTW9kZS4gICAgICAgICAobGluZSAgICA2 KQogIC0gc2hlbGwgc2NyaXB0cywgYW5kIGxvY2FsIGZpbGUgdmFyaWFibGVzOiBTcGVjaWZ5aW5n IEZpbGUgVmFyaWFibGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNSkKICAtIFNoZWxsLXNjcmlwdCBtb2RlOiAg ICAgICAgICAgICAgICAgICAgIFByb2dyYW0gTW9kZXMuICAgICAgKGxpbmUgICAxNSkKICAtIHNo ZWx2ZXMgaW4gdmVyc2lvbiBjb250cm9sOiAgICAgICAgICAgIFZDIERpcmVjdG9yeSBDb21tYW5k cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lICAxMjApCiAgLSBzaGlmdC1zZWxlY3Rpb246ICAgICAgICAgICAgICAgICAg ICAgICBTaGlmdCBTZWxlY3Rpb24uICAgIChsaW5lICAgIDYpCiAgLSBTaG93IFBhcmVuIG1vZGU6 ICAgICAgICAgICAgICAgICAgICAgICBNYXRjaGluZy4gICAgICAgICAgIChsaW5lICAgMzQpCiAg LSBzaG93aW5nIGhpZGRlbiBzdWJkaXJlY3RvcmllcyAoRGlyZWQpOiBIaWRpbmcgU3ViZGlyZWN0 b3JpZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgICA2KQogIC0gc2h5IGdyb3VwLCBpbiByZWdleHA6ICAgICAgICAg ICAgICAgICAgUmVnZXhwIEJhY2tzbGFzaC4gICAobGluZSAgIDQ3KQogIC0gc2lnbmluZyBmaWxl cyAoaW4gRGlyZWQpOiAgICAgICAgICAgICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAobGluZSAgMTI2 KQogIC0gU2ltdWxhIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rl cy4gICAgICAobGluZSAgIDE1KQogIC0gc2ltdWxhdGlvbiBvZiBtaWRkbGUgbW91c2UgYnV0dG9u OiAgICAgV2luZG93cyBNb3VzZS4gICAgICAobGluZSAgICA5KQogIC0gc2ltdWx0YW5lb3VzIGVk aXRpbmc6ICAgICAgICAgICAgICAgICAgSW50ZXJsb2NraW5nLiAgICAgICAobGluZSAgICA2KQog IC0gU2luaGFsYTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJv bm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAzNikKICAtIHNpdGUgaW5pdCBmaWxlOiAgICAgICAgICAgICAg ICAgICAgICAgIEluaXQgRmlsZS4gICAgICAgICAgKGxpbmUgICAyNSkKICAtIOKAmHNpdGUtbGlz cOKAmSBkaXJlY3RvcmllczogICAgICAgICAgICAgICBJbml0IEZpbGUuICAgICAgICAgIChsaW5l ICAgMzQpCiAgLSDigJhzaXRlLWxpc3DigJkgZmlsZXMsIG5vdCBsb2FkaW5nOiAgICAgICAgSW5p dGlhbCBPcHRpb25zLiAgICAobGluZSAgIDk3KQogIC0g4oCYc2l0ZS1zdGFydC5lbOKAmSBmaWxl LCBub3QgbG9hZGluZzogICAgIEluaXRpYWwgT3B0aW9ucy4gICAgKGxpbmUgICA5MykKICAtIOKA mHNpdGUtc3RhcnQuZWzigJksIHRoZSBzaXRlIHN0YXJ0dXAgZmlsZTogSW5pdCBGaWxlLiAgICAg ICAgIChsaW5lICAgMjUpCiAgLSBzaXplIG9mIGZpbGUsIHdhcm5pbmcgd2hlbiB2aXNpdGluZzog ICBWaXNpdGluZy4gICAgICAgICAgIChsaW5lICAgNjIpCiAgLSBzaXplIG9mIG1pbmlidWZmZXI6 ICAgICAgICAgICAgICAgICAgICBNaW5pYnVmZmVyIEVkaXQuICAgIChsaW5lICAgMjYpCiAgLSBz a2VsZXRvbnM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0LiAgICAgICAgICAgICAg IChsaW5lICAgMzUpCiAgLSBzbGFzaGVzIHJlcGVhdGVkIGluIGZpbGUgbmFtZTogICAgICAgICBN aW5pYnVmZmVyIEZpbGUuICAgIChsaW5lICAgMzQpCiAgLSBTbGlUZVggbW9kZTogICAgICAgICAg ICAgICAgICAgICAgICAgICBUZVggTW9kZS4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBTbG92 YWs6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDM2KQogIC0gU2xvdmVuaWFuOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNikKICAtIFNtZXJnZSBtb2Rl OiAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmluZyBGaWxlcy4gICAgKGxpbmUgICA1 MSkKICAtIFNNVFA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1haWwgU2VuZGlu Zy4gICAgICAgKGxpbmUgICAyOCkKICAtIFNuYWtlOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFtdXNlbWVudHMuICAgICAgICAgKGxpbmUgICA1MCkKICAtIHNvY2tldCBhY3RpdmF0 aW9uLCBzeXN0ZW1kLCBFbWFjczogICAgIEVtYWNzIFNlcnZlci4gICAgICAgKGxpbmUgICA0MCkK ICAtIHNvZnQgaHlwaGVuOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgRGlzcGxheS4g ICAgICAgKGxpbmUgICAzMykKICAtIHNvZnQgbmV3bGluZTogICAgICAgICAgICAgICAgICAgICAg ICAgIEhhcmQgYW5kIFNvZnQgTmV3bGluZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gc29saXRhaXJl OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAobGluZSAg IDUzKQogIC0gc29ydGluZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydGluZy4g ICAgICAgICAgICAobGluZSAgICA2KQogIC0gc29ydGluZyBkaWFyeSBlbnRyaWVzOiAgICAgICAg ICAgICAgICAgRmFuY3kgRGlhcnkgRGlzcGxheS4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgIDgpCiAgLSBzb3J0aW5n IERpcmVkIGJ1ZmZlcjogICAgICAgICAgICAgICAgICBEaXJlZCBVcGRhdGluZy4gICAgIChsaW5l ICAgNjcpCiAgLSBzb3J0aW5nIFJtYWlsIGZpbGU6ICAgICAgICAgICAgICAgICAgICBSbWFpbCBT b3J0aW5nLiAgICAgIChsaW5lICAgIDYpCiAgLSBTcGFuaXNoOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM2KQogIC0gc3Bl Y2lmaWMgdmVyc2lvbiBjb250cm9sIHN5c3RlbTogICAgICAgQWR2YW5jZWQgQy14IHYgdi4gICAo bGluZSAgIDEwKQogIC0gc3BlY2lmeSBkZWZhdWx0IGZvbnQgZnJvbSB0aGUgY29tbWFuZCBsaW5l OiBGb250IFguICAgICAgICAobGluZSAgIDExKQogIC0gc3BlY2lmeSBlbmQtb2YtbGluZSBjb252 ZXJzaW9uOiAgICAgICAgVGV4dCBDb2RpbmcuICAgICAgICAobGluZSAgIDM3KQogIC0gc3BlY2lm eWluZyBmdWxsc2NyZWVuIGZvciBFbWFjcyBmcmFtZTogV2luZG93IFNpemUgWC4gICAgICAobGlu ZSAgICA2KQogIC0gc3BlZWRiYXI6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlZWRi YXIuICAgICAgICAgICAobGluZSAgICA2KQogIC0gc3BlbGwtY2hlY2tpbmcgdGhlIGFjdGl2ZSBy ZWdpb246ICAgICAgU3BlbGxpbmcuICAgICAgICAgICAobGluZSAgIDQ3KQogIC0gc3BlbGxpbmcs IGNoZWNraW5nIGFuZCBjb3JyZWN0aW5nOiAgICAgU3BlbGxpbmcuICAgICAgICAgICAobGluZSAg ICA2KQogIC0gc3BsYXNoIHNjcmVlbjogICAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhbCBP cHRpb25zLiAgICAobGluZSAgMTAxKQogIC0gc3BsaXR0aW5nIGNvbHVtbnM6ICAgICAgICAgICAg ICAgICAgICAgVHdvLUNvbHVtbi4gICAgICAgICAobGluZSAgICA2KQogIC0gc3BsaXR0aW5nIHRh YmxlIGNlbGxzOiAgICAgICAgICAgICAgICAgQ2VsbCBDb21tYW5kcy4gICAgICAobGluZSAgIDE3 KQogIC0gU1JDOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiBDb250 cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgIDUxKQogIC0gc3JjOiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVmVyc2lvbiBDb250cm9sIFN5c3RlbXMuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDUxKQog IC0gU1NMOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV0d29yayBTZWN1cml0 eS4gICAobGluZSAgICA2KQogIC0gc3RhbmRhcmQgY29sb3JzIG9uIGEgY2hhcmFjdGVyIHRlcm1p bmFsOiBDb2xvcnMgWC4gICAgICAgICAobGluZSAgIDM1KQogIC0gc3RhbmRhcmQgZmFjZXM6ICAg ICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmQgRmFjZXMuICAgICAobGluZSAgICA2KQogIC0g c3RhbmRhcmQgZm9udHNldDogICAgICAgICAgICAgICAgICAgICAgRGVmaW5pbmcgRm9udHNldHMu ICAobGluZSAgICA2KQogIC0gc3RhcnQgZGlyZWN0b3J5LCBNUy1XaW5kb3dzOiAgICAgICAgICAg V2luZG93cyBTdGFydHVwLiAgICAobGluZSAgICA4KQogIC0gc3RhcnQgaWNvbmlmaWVkLCBjb21t YW5kLWxpbmUgYXJndW1lbnQ6IEljb25zIFguICAgICAgICAgICAobGluZSAgICA4KQogIC0gc3Rh cnRpbmcgRW1hY3M6ICAgICAgICAgICAgICAgICAgICAgICAgRW50ZXJpbmcgRW1hY3MuICAgICAo bGluZSAgICA2KQogIC0gc3RhcnRpbmcgRW1hY3Mgb24gTVMtV2luZG93czogICAgICAgICAgV2lu ZG93cyBTdGFydHVwLiAgICAobGluZSAgICA2KQogIC0gU1RBUlRUTFM6ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTmV0d29yayBTZWN1cml0eS4gICAobGluZSAgICA2KQogIC0gc3RhcnR1 cCAoY29tbWFuZCBsaW5lIGFyZ3VtZW50cyk6ICAgICAgRW1hY3MgSW52b2NhdGlvbi4gICAobGlu ZSAgICA2KQogIC0gc3RhcnR1cCAoaW5pdCBmaWxlKTogICAgICAgICAgICAgICAgICAgSW5pdCBG aWxlLiAgICAgICAgICAobGluZSAgICA2KQogIC0gc3RhcnR1cCBmb250c2V0OiAgICAgICAgICAg ICAgICAgICAgICAgRGVmaW5pbmcgRm9udHNldHMuICAobGluZSAgIDIyKQogIC0gc3RhcnR1cCBt ZXNzYWdlOiAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhbCBPcHRpb25zLiAgICAobGluZSAg MTAxKQogIC0gc3RhcnR1cCBzY3JlZW46ICAgICAgICAgICAgICAgICAgICAgICAgRW50ZXJpbmcg RW1hY3MuICAgICAobGluZSAgIDEzKQogIC0gc3Rhc2hlcyBpbiB2ZXJzaW9uIGNvbnRyb2w6ICAg ICAgICAgICAgVkMgRGlyZWN0b3J5IENvbW1hbmRzLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDEyMCkKICAtIHN0cmlu ZyBzdWJzdGl0dXRpb246ICAgICAgICAgICAgICAgICAgIFJlcGxhY2UuICAgICAgICAgICAgKGxp bmUgICAgNikKICAtIHN0cmluZyBzeW50YXg6ICAgICAgICAgICAgICAgICAgICAgICAgIEluaXQg U3ludGF4LiAgICAgICAgKGxpbmUgICAzMCkKICAtIHN0dWNrIGluIHJlY3Vyc2l2ZSBlZGl0aW5n OiAgICAgICAgICAgIFN0dWNrIFJlY3Vyc2l2ZS4gICAgKGxpbmUgICAgNikKICAtIHN0eWxlIChm b3IgaW5kZW50YXRpb24pOiAgICAgICAgICAgICAgIEN1c3RvbSBDIEluZGVudC4gICAgKGxpbmUg ICAgNikKICAtIHN1YmRpcmVjdG9yaWVzIGluIERpcmVkOiAgICAgICAgICAgICAgIFN1YmRpcmVj dG9yaWVzIGluIERpcmVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHN1YnByb2Nlc3NlcyBvbiBNUy1X aW5kb3dzOiAgICAgICAgICAgIFdpbmRvd3MgUHJvY2Vzc2VzLiAgKGxpbmUgICAgNikKICAtIHN1 YnNjcmliZSBncm91cHM6ICAgICAgICAgICAgICAgICAgICAgIEdudXMgR3JvdXAgQnVmZmVyLiAg KGxpbmUgICAyOSkKICAtIHN1YnNoZWxsOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNo ZWxsLiAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIOKAmHN1YnN0cmluZ+KAmSwgY29tcGxl dGlvbiBzdHlsZTogICAgICAgICBDb21wbGV0aW9uIFN0eWxlcy4gIChsaW5lICAgNDkpCiAgLSBz dWJ0cmVlIChPdXRsaW5lIG1vZGUpOiAgICAgICAgICAgICAgICBPdXRsaW5lIFZpc2liaWxpdHku IChsaW5lICAgNTQpCiAgLSBTdWJ2ZXJzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBW ZXJzaW9uIENvbnRyb2wgU3lzdGVtcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzMpCiAgLSBTdWJ3b3JkIG1vZGU6 ICAgICAgICAgICAgICAgICAgICAgICAgICBNaXhlZENhc2UgV29yZHMuICAgIChsaW5lICAgMjMp CiAgLSBzdW1tYXJ5IChSbWFpbCk6ICAgICAgICAgICAgICAgICAgICAgICBSbWFpbCBTdW1tYXJ5 LiAgICAgIChsaW5lICAgIDYpCiAgLSBzdW1taW5nIHRpbWUgaW50ZXJ2YWxzOiAgICAgICAgICAg ICAgICBUaW1lIEludGVydmFscy4gICAgIChsaW5lICAgIDYpCiAgLSBzdW5yaXNlIGFuZCBzdW5z ZXQ6ICAgICAgICAgICAgICAgICAgICBTdW5yaXNlL1N1bnNldC4gICAgIChsaW5lICAgIDYpCiAg LSBTdXBlciAodW5kZXIgTVMtRE9TKTogICAgICAgICAgICAgICAgICBNUy1ET1MgS2V5Ym9hcmQu ICAgIChsaW5lICAgMjApCiAgLSBzdXNwZW5kaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFeGl0aW5nLiAgICAgICAgICAgIChsaW5lICAgNDcpCiAgLSBzdXNwaWNpb3VzIGNvbnN0cnVj dGlvbnMgaW4gQywgQysrOiAgICBPdGhlciBDIENvbW1hbmRzLiAgIChsaW5lICAgNzEpCiAgLSBT Vk46ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIENvbnRyb2wgU3lz dGVtcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAgMzMpCiAgLSBTd2VkaXNoOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM3KQogIC0gc3dpdGNo IGJ1ZmZlcnM6ICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0IEJ1ZmZlci4gICAgICAobGlu ZSAgICA2KQogIC0gc3dpdGNoZXMgKGNvbW1hbmQgbGluZSk6ICAgICAgICAgICAgICAgRW1hY3Mg SW52b2NhdGlvbi4gICAobGluZSAgICA2KQogIC0gc3ltYm9sIHNlYXJjaDogICAgICAgICAgICAg ICAgICAgICAgICAgU3ltYm9sIFNlYXJjaC4gICAgICAobGluZSAgICA2KQogIC0gc3ltYm9sLCBo aWdobGlnaHRpbmc6ICAgICAgICAgICAgICAgICAgSGlnaGxpZ2h0IEludGVyYWN0aXZlbHkuCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobGluZSAgIDcxKQogIC0gc3ltYm9saWMgbGlua3MgKGFuZCB2ZXJzaW9uIGNvbnRyb2wpOiAg R2VuZXJhbCBWQyBPcHRpb25zLiAobGluZSAgIDExKQogIC0gc3ltYm9saWMgbGlua3MgKGNyZWF0 aW9uIGluIERpcmVkKTogICAgT3BlcmF0aW5nIG9uIEZpbGVzLiAobGluZSAgIDcwKQogIC0gc3lt Ym9saWMgbGlua3MgKGNyZWF0aW9uKTogICAgICAgICAgICAgQ29weWluZyBhbmQgTmFtaW5nLiAo bGluZSAgIDQ3KQogIC0gc3ltYm9saWMgbGlua3MgKHZpc2l0aW5nKTogICAgICAgICAgICAgRmls ZSBBbGlhc2VzLiAgICAgICAobGluZSAgICA2KQogIC0gc3luY2hyb25pemluZyB3aW5kb3dzOiAg ICAgICAgICAgICAgICAgRm9sbG93IE1vZGUuICAgICAgICAobGluZSAgICA2KQogIC0gc3luY2hy b25vdXMgWCBtb2RlOiAgICAgICAgICAgICAgICAgICAgVGFibGUgb2YgUmVzb3VyY2VzLiAobGlu ZSAgMTQ2KQogIC0gc3ludGF4IGhpZ2hsaWdodGluZyBhbmQgY29sb3Jpbmc6ICAgICAgRm9udCBM b2NrLiAgICAgICAgICAobGluZSAgICA2KQogIC0gc3ludGF4IG9mIHJlZ2V4cHM6ICAgICAgICAg ICAgICAgICAgICAgUmVnZXhwcy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gc3lzdGVtLXdp ZGUgcGFja2FnZXM6ICAgICAgICAgICAgICAgICAgUGFja2FnZSBGaWxlcy4gICAgICAobGluZSAg IDIxKQogIC0gc3lzdGVtZCB1bml0IGZpbGU6ICAgICAgICAgICAgICAgICAgICAgRW1hY3MgU2Vy dmVyLiAgICAgICAobGluZSAgIDMyKQogIC0gdDogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR2xvc3NhcnkuICAgICAgICAgICAobGluZSAxMDA0KQogIC0gdGFiIHN0b3BzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFiIFN0b3BzLiAgICAgICAgICAobGluZSAgICA2 KQogIC0gdGFibGUgY3JlYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgQ3JlYXRp b24uICAgICAobGluZSAgICA2KQogIC0gdGFibGUgZGltZW5zaW9uczogICAgICAgICAgICAgICAg ICAgICAgVGFibGUgTWlzYy4gICAgICAgICAobGluZSAgICA2KQogIC0gdGFibGUgZm9yIEhUTUwg YW5kIExhVGVYOiAgICAgICAgICAgICAgVGFibGUgTWlzYy4gICAgICAgICAobGluZSAgIDI0KQog IC0gdGFibGUgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCBCYXNlZCBUYWJs ZXMuICAobGluZSAgICA2KQogIC0gdGFibGUgcmVjb2duaXRpb246ICAgICAgICAgICAgICAgICAg ICAgVGFibGUgUmVjb2duaXRpb24uICAobGluZSAgICA2KQogIC0gdGFibGUgdG8gdGV4dDogICAg ICAgICAgICAgICAgICAgICAgICAgVGFibGUgQ29udmVyc2lvbi4gICAobGluZSAgICA2KQogIC0g dGFiczogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZW50YXRpb24uICAgICAg ICAobGluZSAgICA2KQogIC0gdGFncyBhbmQgdGFnIHRhYmxlczogICAgICAgICAgICAgICAgICAg VGFncyBUYWJsZXMuICAgICAgICAobGluZSAgICA2KQogIC0gdGFncyBmb3IgdmVyc2lvbiBjb250 cm9sOiAgICAgICAgICAgICAgUmV2aXNpb24gVGFncy4gICAgICAobGluZSAgICA2KQogIC0gdGFn cywgQysrOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFncyBUYWJsZXMuICAgICAgICAo bGluZSAgIDI2KQogIC0gdGFncy1iYXNlZCBjb21wbGV0aW9uOiAgICAgICAgICAgICAgICAgU3lt Ym9sIENvbXBsZXRpb24uICAobGluZSAgIDE0KQogIC0gVGFpVmlldDogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNykKICAt IFRhamlrOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25t ZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaW5lICAgMzcpCiAgLSBUYW1pbDogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMYW5ndWFnZSBFbnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM3KQogIC0gVGFyIG1v ZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBBcmNoaXZlcy4gICAgICAobGlu ZSAgICA2KQogIC0gVGNsIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3Jh bSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQogIC0gVENQIEVtYWNzIHNlcnZlcjogICAgICAgICAg ICAgICAgICAgICAgVENQIEVtYWNzIHNlcnZlci4gICAobGluZSAgICA2KQogIC0gVGVsbmV0OiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIEhvc3QuICAgICAgICAobGluZSAg ICA2KQogIC0gVGVsdWd1OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2Ug RW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNykKICAtIHRlbXBsYXRlczogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRleHQuICAgICAgICAgICAgICAgKGxpbmUgICAzNSkKICAtIHRlbXBv cmFyeSB3aW5kb3dzOiAgICAgICAgICAgICAgICAgICAgIFRlbXBvcmFyeSBEaXNwbGF5cy4gKGxp bmUgICAgNikKICAtIFRlcm0gbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm0g TW9kZS4gICAgICAgICAgKGxpbmUgICAgNikKICAtIHRlcm1pbmFsIGVtdWxhdG9ycywgbW91c2Ug c3VwcG9ydDogICAgIFRleHQtT25seSBNb3VzZS4gICAgKGxpbmUgICAgNikKICAtIHRlcm1pbmFs LCBzZXJpYWw6ICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbCBUZXJtaW5hbC4gICAgKGxpbmUg ICAgNikKICAtIHRlcm1zY3JpcHQgZmlsZTogICAgICAgICAgICAgICAgICAgICAgIENoZWNrbGlz dC4gICAgICAgICAgKGxpbmUgIDExNSkKICAtIFRldHJpczogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFtdXNlbWVudHMuICAgICAgICAgKGxpbmUgICA1MCkKICAtIFRlWCBlbmNvZGlu ZzogICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCBNaXNjLiAgICAgICAgICAgKGxpbmUgICAx MikKICAtIFRlWCBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCBNb2RlLiAg ICAgICAgICAgKGxpbmUgICAgNikKICAtIOKAmFRFWEVESVTigJkgZW52aXJvbm1lbnQgdmFyaWFi bGU6ICAgICAgICBFbWFjcyBTZXJ2ZXIuICAgICAgIChsaW5lICAgNjEpCiAgLSDigJhURVhJTlBV VFPigJkgZW52aXJvbm1lbnQgdmFyaWFibGU6ICAgICAgVGVYIFByaW50LiAgICAgICAgICAobGlu ZSAgIDQ2KQogIC0gdGV4dDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dC4g ICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gdGV4dCBhbmQgYmluYXJ5IGZpbGVzIG9uIE1T LURPUy9NUy1XaW5kb3dzOiBUZXh0IGFuZCBCaW5hcnkuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gdGV4 dCBidXR0b25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgTW91c2UgUmVmZXJlbmNlcy4gICAo bGluZSAgICA2KQogIC0gdGV4dCBjb2xvcnMsIGZyb20gY29tbWFuZCBsaW5lOiAgICAgICAgQ29s b3JzIFguICAgICAgICAgICAobGluZSAgICA2KQogIC0gdGV4dCBjdXJzb3I6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ3Vyc29yIERpc3BsYXkuICAgICAobGluZSAgICA2KQogIC0gVGV4dCBt b2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dCBNb2RlLiAgICAgICAgICAobGlu ZSAgICA2KQogIC0gdGV4dCBwcm9wZXJ0aWVzIGF0IHBvaW50OiAgICAgICAgICAgICAgSW50ZXJu YXRpb25hbCBDaGFycy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lICAgNjUpCiAgLSB0ZXh0IHByb3BlcnRpZXMgb2YgY2hh cmFjdGVyczogICAgICAgICBFZGl0aW5nIEZvcm1hdCBJbmZvLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAyMCkKICAt IHRleHQgdGVybWluYWw6ICAgICAgICAgICAgICAgICAgICAgICAgIE5vbi1XaW5kb3cgVGVybWlu YWxzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUgICAgNikKICAtIHRleHQgdG8gdGFibGU6ICAgICAgICAgICAgICAgICAg ICAgICAgIFRhYmxlIENvbnZlcnNpb24uICAgKGxpbmUgICAgNikKICAtIHRleHQtYmFzZWQgdGFi bGVzOiAgICAgICAgICAgICAgICAgICAgIFRleHQgQmFzZWQgVGFibGVzLiAgKGxpbmUgICAgNikK ICAtIHRleHQtYmFzZWQgdGFibGVzLCBzcGxpdHRpbmcgY2VsbHM6ICAgIENlbGwgQ29tbWFuZHMu ICAgICAgKGxpbmUgICAxNykKICAtIHRleHQvZW5yaWNoZWQgTUlNRSBmb3JtYXQ6ICAgICAgICAg ICAgIEVucmljaGVkIFRleHQuICAgICAgKGxpbmUgICAgNikKICAtIFRoYWk6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAg MzcpCiAgLSBUaWJldGFuOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYW5ndWFnZSBF bnZpcm9ubWVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGluZSAgIDM3KQogIC0gdGlsZGUgKOKAmH7igJkpIGF0IGVuZCBv ZiBiYWNrdXAgZmlsZSBuYW1lOiBCYWNrdXAgTmFtZXMuICAgICAgKGxpbmUgICAgNikKICAtIHRp bWUgKG9uIG1vZGUgbGluZSk6ICAgICAgICAgICAgICAgICAgIE9wdGlvbmFsIE1vZGUgTGluZS4g KGxpbmUgICA1MykKICAtIHRpbWUgaW50ZXJ2YWxzLCBzdW1taW5nOiAgICAgICAgICAgICAgIFRp bWUgSW50ZXJ2YWxzLiAgICAgKGxpbmUgICAgNikKICAtIHRpbWUgc3RhbXBzOiAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRpbWUgU3RhbXBzLiAgICAgICAgKGxpbmUgICAgNikKICAtIHRpbWVj bG9jazogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWUgSW50ZXJ2YWxzLiAgICAgKGxp bmUgICAgNikKICAtIOKAmHRpbWVsb2figJkgZmlsZTogICAgICAgICAgICAgICAgICAgICAgICBU aW1lIEludGVydmFscy4gICAgIChsaW5lICAgMzQpCiAgLSBUTFM6ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOZXR3b3JrIFNlY3VyaXR5LiAgIChsaW5lICAgIDYpCiAgLSBUTFMg ZW5jcnlwdGlvbiAoUm1haWwpOiAgICAgICAgICAgICAgICBSZW1vdGUgTWFpbGJveGVzLiAgIChs aW5lICAgNjUpCiAgLSBUT0RPIGl0ZW06ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmcg T3JnYW5pemVyLiAgICAgIChsaW5lICAgIDYpCiAgLSB0b2dnbGluZyBtYXJrcyAoaW4gRGlyZWQp OiAgICAgICAgICAgICBNYXJrcyB2cyBGbGFncy4gICAgIChsaW5lICAgODgpCiAgLSB0b29sIGJh cjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSBvZiBSZXNvdXJjZXMuIChsaW5l ICAxNTMpCiAgLSBUb29sIEJhciBtb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICBUb29sIEJh cnMuICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBUb29sIEJhciBwb3NpdGlvbjogICAgICAgICAg ICAgICAgICAgICBUb29sIEJhcnMuICAgICAgICAgIChsaW5lICAgMjUpCiAgLSBUb29sIEJhciBz dHlsZTogICAgICAgICAgICAgICAgICAgICAgICBUb29sIEJhcnMuICAgICAgICAgIChsaW5lICAg MTkpCiAgLSB0b29sdGlwIGhlbHA6ICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwIEVjaG8u ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSB0b29sdGlwczogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUb29sdGlwcy4gICAgICAgICAgIChsaW5lICAgIDYpCiAgLSB0b3AgbGV2ZWw6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBNb2RlIExpbmUuICAgICAgICAgIChsaW5lICAgIDYp CiAgLSB0b3dlciBvZiBIYW5vaTogICAgICAgICAgICAgICAgICAgICAgICBBbXVzZW1lbnRzLiAg ICAgICAgIChsaW5lICAgMzkpCiAgLSB0cmFpbGluZyB3aGl0ZXNwYWNlOiAgICAgICAgICAgICAg ICAgICBVc2VsZXNzIFdoaXRlc3BhY2UuIChsaW5lICAgIDYpCiAgLSB0cmFpbGluZyB3aGl0ZXNw YWNlLCBpbiBwYXRjaGVzOiAgICAgICBEaWZmIE1vZGUuICAgICAgICAgIChsaW5lICAxMjQpCiAg LSDigJh0cmFpbGluZy13aGl0ZXNwYWNl4oCZIGZhY2U6ICAgICAgICAgICAgVXNlbGVzcyBXaGl0 ZXNwYWNlLiAobGluZSAgIDEwKQogIC0gVHJhbXA6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVtb3RlIEZpbGVzLiAgICAgICAobGluZSAgICA2KQogIC0gVHJhbnNpZW50IE1hcmsg bW9kZTogICAgICAgICAgICAgICAgICAgRGlzYWJsZWQgVHJhbnNpZW50IE1hcmsuCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZSAgICA2KQogIC0gVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5OiAgICAgICAgICAgICAgTmV0d29y ayBTZWN1cml0eS4gICAobGluZSAgICA2KQogIC0gdHJhbnNwb3NpdGlvbiBvZiBleHByZXNzaW9u czogICAgICAgICAgRXhwcmVzc2lvbnMuICAgICAgICAobGluZSAgIDQ3KQogIC0gdHJhc2g6ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWlzYyBGaWxlIE9wcy4gICAgICAobGluZSAg IDEzKQogIC0gdHJpcGxlIGNsaWNrczogICAgICAgICAgICAgICAgICAgICAgICAgTW91c2UgQnV0 dG9ucy4gICAgICAobGluZSAgIDI4KQogIC0gdHJvdWJsZXNob290aW5nIEVtYWNzOiAgICAgICAg ICAgICAgICAgTG9zc2FnZS4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gdHJ1ZW5hbWVzIG9m IGZpbGVzOiAgICAgICAgICAgICAgICAgICAgRmlsZSBBbGlhc2VzLiAgICAgICAobGluZSAgIDI3 KQogIC0gdHJ1bmNhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGluZSBUcnVuY2F0 aW9uLiAgICAobGluZSAgICA2KQogIC0gVFRZIG1lbnUgZmFjZXM6ICAgICAgICAgICAgICAgICAg ICAgICAgU3RhbmRhcmQgRmFjZXMuICAgICAobGluZSAgMTQ2KQogIC0gVHVya2lzaDogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAzNykKICAtIHR3byBkaXJlY3RvcmllcyAoaW4gRGlyZWQpOiAgICAgICAgICAgIE9wZXJhdGlu ZyBvbiBGaWxlcy4gKGxpbmUgICAyNSkKICAtIHR3by1jb2x1bW4gZWRpdGluZzogICAgICAgICAg ICAgICAgICAgIFR3by1Db2x1bW4uICAgICAgICAgKGxpbmUgICAgNikKICAtIHR5cGVzIG9mIGxv ZyBmaWxlOiAgICAgICAgICAgICAgICAgICAgIFR5cGVzIG9mIExvZyBGaWxlLiAgKGxpbmUgICAg NikKICAtIHR5cG9zLCBmaXhpbmc6ICAgICAgICAgICAgICAgICAgICAgICAgIEZpeGl0LiAgICAg ICAgICAgICAgKGxpbmUgICAgNikKICAtIFVrcmFpbmlhbjogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhbmd1YWdlIEVudmlyb25tZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMzgpCiAgLSB1bmJhbGFu Y2VkIHBhcmVudGhlc2VzIGFuZCBxdW90ZXM6ICAgICBQYXJlbnRoZXNlcy4gICAgICAgIChsaW5l ICAgIDYpCiAgLSB1bmNvbXByZXNzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgICBDb21wcmVz c2VkIEZpbGVzLiAgIChsaW5lICAgIDYpCiAgLSDigJh1bmRlY2lkZWTigJksIGNvZGluZyBzeXN0 ZW06ICAgICAgICAgICAgQ29kaW5nIFN5c3RlbXMuICAgICAobGluZSAgIDg2KQogIC0gdW5kZWxl dGlvbiAoUm1haWwpOiAgICAgICAgICAgICAgICAgICAgUm1haWwgRGVsZXRpb24uICAgICAobGlu ZSAgIDQxKQogIC0gdW5kaWdlc3RpZnk6ICAgICAgICAgICAgICAgICAgICAgICAgICAgUm1haWwg RGlnZXN0LiAgICAgICAobGluZSAgICA2KQogIC0gdW5kaXNwbGF5YWJsZSBjaGFyYWN0ZXJzOiAg ICAgICAgICAgICAgSW50ZXJuYXRpb25hbCBDaGFycy4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTgpCiAgLSB1bmRv OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmRvLiAgICAgICAgICAgICAgIChs aW5lICAgIDYpCiAgLSB1bmRvIGxpbWl0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmRv LiAgICAgICAgICAgICAgIChsaW5lICAgNjYpCiAgLSB1bmRvaW5nIHdpbmRvdyBjb25maWd1cmF0 aW9uIGNoYW5nZXM6ICBXaW5kb3cgQ29udmVuaWVuY2UuIChsaW5lICAgIDYpCiAgLSBVbmlieXRl IG9wZXJhdGlvbjogICAgICAgICAgICAgICAgICAgICBVbmlieXRlIE1vZGUuICAgICAgIChsaW5l ICAgIDYpCiAgLSBVbmljb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5h dGlvbmFsIENoYXJzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgICAxMSkKICAtIFVuaWNvZGUgY2hhcmFjdGVycywgaW5z ZXJ0aW5nOiAgICAgICAgIEluc2VydGluZyBUZXh0LiAgICAgKGxpbmUgICA2MCkKICAtIFVuaWNv ZGUgQ29sbGF0aW9uIEFsZ29yaXRobSAoVUNBKSwgYW5kIOKAmGxzLWxpc3AuZWzigJk6IGxzIGlu IExpc3AuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGluZSAgIDM2KQogIC0gdW5pcXVlIGJ1ZmZlciBuYW1lczogICAgICAgICAg ICAgICAgICAgVW5pcXVpZnkuICAgICAgICAgICAobGluZSAgICA2KQogIC0gdW5tYXJraW5nIGZp bGVzIChpbiBEaXJlZCk6ICAgICAgICAgICAgTWFya3MgdnMgRmxhZ3MuICAgICAobGluZSAgIDUy KQogIC0gdW5zYXZlZCBjdXN0b21pemF0aW9ucywgcmVtaW5kZXIgdG8gc2F2ZTogU2F2aW5nIEN1 c3RvbWl6YXRpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxpbmUgICA0NikKICAtIHVuc3Vic2NyaWJlIGdyb3VwczogICAg ICAgICAgICAgICAgICAgIEdudXMgR3JvdXAgQnVmZmVyLiAgKGxpbmUgICAyOSkKICAtIHVudHJh bnNsYXRlZCBmaWxlIHN5c3RlbTogICAgICAgICAgICAgIFRleHQgYW5kIEJpbmFyeS4gICAgKGxp bmUgICA1MSkKICAtIHVudXNlZCBsaW5lczogICAgICAgICAgICAgICAgICAgICAgICAgIFVzZWxl c3MgV2hpdGVzcGFjZS4gKGxpbmUgICAyOCkKICAtIHVuemlwIGFyY2hpdmVzOiAgICAgICAgICAg ICAgICAgICAgICAgIEZpbGUgQXJjaGl2ZXMuICAgICAgKGxpbmUgICA0NSkKICAtIHVwY2FzZSBm aWxlIG5hbWVzOiAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybWluZyBGaWxlIE5hbWVzLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUgICAyMSkKICAtIHVwZGF0aW5nIERpcmVkIGJ1ZmZlcjogICAgICAgICAgICAgICAg IERpcmVkIFVwZGF0aW5nLiAgICAgKGxpbmUgICAgNikKICAtIFVSTCwgdmlld2luZyBpbiBoZWxw OiAgICAgICAgICAgICAgICAgIEhlbHAgTW9kZS4gICAgICAgICAgKGxpbmUgICAzOCkKICAtIFVS THM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyb3dzZS1VUkwuICAgICAgICAg KGxpbmUgICAgNikKICAtIFVSTHMsIGFjdGl2YXRpbmc6ICAgICAgICAgICAgICAgICAgICAgIEdv dG8gQWRkcmVzcyBtb2RlLiAgKGxpbmUgICAgNikKICAtIFVzZW5ldCBuZXdzOiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdudXMuICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHVzZXIg bmFtZSBmb3IgcmVtb3RlIGZpbGUgYWNjZXNzOiAgICAgIFJlbW90ZSBGaWxlcy4gICAgICAgKGxp bmUgICAzNSkKICAtIHVzZXIgb3B0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgIEVhc3kg Q3VzdG9taXphdGlvbi4gKGxpbmUgICAgNikKICAtIHVzZXIgb3B0aW9ucywgY2hhbmdpbmc6ICAg ICAgICAgICAgICAgIENoYW5naW5nIGEgVmFyaWFibGUuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDM1KQogIC0gdXNp bmcgTmV4dHN0ZXAgc2VydmljZXMgKG1hY09TKTogICAgICAgTWFjIC8gR05Vc3RlcCBFdmVudHMu CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAgIDU5KQogIC0gVVRGLTg6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGFuZ3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzOCkKICAtIHZhcmlhYmxlOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlcy4gICAgICAgICAgKGxpbmUgICAg NikKICAtIOKAmHZhcmlhYmxlLXBpdGNo4oCZIGZhY2U6ICAgICAgICAgICAgICAgICBTdGFuZGFy ZCBGYWNlcy4gICAgIChsaW5lICAgMjYpCiAgLSB2YXJpYWJsZXMsIGNoYW5naW5nOiAgICAgICAg ICAgICAgICAgICBDaGFuZ2luZyBhIFZhcmlhYmxlLgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzNSkKICAtIFZDOiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gQ29udHJvbC4gICAgKGxp bmUgICAxMCkKICAtIFZDIERpcmVjdG9yeSBidWZmZXI6ICAgICAgICAgICAgICAgICAgIFZDIERp cmVjdG9yeSBNb2RlLiAgKGxpbmUgICAgNikKICAtIFZDIGZpbGVzZXRzOiAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJhc2ljIFZDIEVkaXRpbmcuICAgKGxpbmUgICAgNikKICAtIFZDIG1vZGUg bGluZSBpbmRpY2F0b3I6ICAgICAgICAgICAgICAgIFZDIE1vZGUgTGluZS4gICAgICAgKGxpbmUg ICAgNikKICAtIHZlcmlmeWluZyBkaWdpdGFsIHNpZ25hdHVyZXMgb24gZmlsZXMgKGluIERpcmVk KTogT3BlcmF0aW5nIG9uIEZpbGVzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgIDEyMikKICAtIFZlcmlsb2cgbW9kZTog ICAgICAgICAgICAgICAgICAgICAgICAgIFByb2dyYW0gTW9kZXMuICAgICAgKGxpbmUgICAxNSkK ICAtIHZlcnNpb24gY29udHJvbDogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gQ29udHJv bC4gICAgKGxpbmUgICAgNikKICAtIHZlcnNpb24gY29udHJvbCBsb2c6ICAgICAgICAgICAgICAg ICAgIFR5cGVzIG9mIExvZyBGaWxlLiAgKGxpbmUgICAgNikKICAtIHZlcnNpb24gY29udHJvbCBz dGF0dXM6ICAgICAgICAgICAgICAgIFZDIE1vZGUgTGluZS4gICAgICAgKGxpbmUgICAxMCkKICAt IOKAmFZFUlNJT05fQ09OVFJPTOKAmSBlbnZpcm9ubWVudCB2YXJpYWJsZTogQmFja3VwIE5hbWVz LiAgICAgIChsaW5lICAgNDApCiAgLSB2ZXJ0aWNhbCBib3JkZXI6ICAgICAgICAgICAgICAgICAg ICAgICBTY3JvbGwgQmFycy4gICAgICAgIChsaW5lICAgNTQpCiAgLSBWZXJ0aWNhbCBTY3JvbGwg QmFyOiAgICAgICAgICAgICAgICAgICBTY3JvbGwgQmFycy4gICAgICAgIChsaW5lICAgIDYpCiAg LSB2ZXJ0aWNhbCBzY3JvbGwgYmFycywgY29tbWFuZC1saW5lIGFyZ3VtZW50OiBNaXNjIFguICAg ICAgIChsaW5lICAgMTMpCiAgLSDigJh2ZXJ0aWNhbC1ib3JkZXLigJkgZmFjZTogICAgICAgICAg ICAgICAgU3RhbmRhcmQgRmFjZXMuICAgICAobGluZSAgMTA3KQogIC0gVkhETCBtb2RlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHJvZ3JhbSBNb2Rlcy4gICAgICAobGluZSAgIDE1KQog IC0gVmlldG5hbWVzZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJv bm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAzOCkKICAtIFZpZXcgbW9kZTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZpZXcgTW9kZS4gICAgICAgICAgKGxpbmUgICAgNikKICAtIHZpZXdpbmcgd2Vi IHBhZ2VzIGluIGhlbHA6ICAgICAgICAgICAgIEhlbHAgTW9kZS4gICAgICAgICAgKGxpbmUgICAz OCkKICAtIHZpZXdzIG9mIGFuIG91dGxpbmU6ICAgICAgICAgICAgICAgICAgIE91dGxpbmUgVmll d3MuICAgICAgKGxpbmUgICAgNikKICAtIHZpc2l0aW5nIGZpbGVzOiAgICAgICAgICAgICAgICAg ICAgICAgIFZpc2l0aW5nLiAgICAgICAgICAgKGxpbmUgICAgNikKICAtIHZpc2l0aW5nIGZpbGVz LCBjb21tYW5kLWxpbmUgYXJndW1lbnQ6IEFjdGlvbiBBcmd1bWVudHMuICAgKGxpbmUgICAxMikK ICAtIFZpc3VhbCBMaW5lIG1vZGU6ICAgICAgICAgICAgICAgICAgICAgIFZpc3VhbCBMaW5lIE1v ZGUuICAgKGxpbmUgICAxNCkKICAtIHZpc3VhbCBvcmRlcjogICAgICAgICAgICAgICAgICAgICAg ICAgIEJpZGlyZWN0aW9uYWwgRWRpdGluZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lICAgMTkpCiAgLSBXYXRjaGluZyBl eHByZXNzaW9ucyBpbiBHREI6ICAgICAgICAgICBXYXRjaCBFeHByZXNzaW9ucy4gIChsaW5lICAg IDYpCiAgLSB3ZGlyZWQgbW9kZTogICAgICAgICAgICAgICAgICAgICAgICAgICBXZGlyZWQuICAg ICAgICAgICAgIChsaW5lICAgIDYpCiAgLSBXZWI6ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCcm93c2UtVVJMLiAgICAgICAgIChsaW5lICAgIDYpCiAgLSB3ZWIgcGFnZXMsIHZp ZXdpbmcgaW4gaGVscDogICAgICAgICAgICBIZWxwIE1vZGUuICAgICAgICAgIChsaW5lICAgMzgp CiAgLSB3ZWJraXQgd2lkZ2V0czogICAgICAgICAgICAgICAgICAgICAgICBFbWJlZGRlZCBXZWJL aXQgV2lkZ2V0cy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsaW5lICAgIDYpCiAgLSB3ZWVrcywgd2hpY2ggZGF5IHRoZXkgc3Rh cnQgb246ICAgICAgICBNb3ZlIHRvIEJlZ2lubmluZyBvciBFbmQuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDI3KQog IC0gV2Vsc2g6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFuZ3VhZ2UgRW52aXJv bm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUgICAzOCkKICAtIHdoYXQgY29uc3RpdHV0ZXMgYW4gRW1hY3MgYnVn OiAgICAgICAgIEJ1ZyBDcml0ZXJpYS4gICAgICAgKGxpbmUgICAgNikKICAtIHdoaXRlc3BhY2Ug Y2hhcmFjdGVyOiAgICAgICAgICAgICAgICAgIEluZGVudGF0aW9uLiAgICAgICAgKGxpbmUgICAg NikKICAtIFdoaXRlc3BhY2UgbW9kZTogICAgICAgICAgICAgICAgICAgICAgIFVzZWxlc3MgV2hp dGVzcGFjZS4gKGxpbmUgICAzNykKICAtIHdoaXRlc3BhY2UsIHRyYWlsaW5nOiAgICAgICAgICAg ICAgICAgIFVzZWxlc3MgV2hpdGVzcGFjZS4gKGxpbmUgICAgNikKICAtIHdpZGUgYmxvY2sgY3Vy c29yOiAgICAgICAgICAgICAgICAgICAgIEN1cnNvciBEaXNwbGF5LiAgICAgKGxpbmUgICA0MikK ICAtIHdpZGVuaW5nOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hcnJvd2luZy4gICAg ICAgICAgKGxpbmUgICAgNikKICAtIHdpZGdldHMgYXQgYnVmZmVyIHBvc2l0aW9uOiAgICAgICAg ICAgIEVkaXRpbmcgRm9ybWF0IEluZm8uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDIwKQogIC0gd2lkdGggYW5kIGhl aWdodCBvZiBFbWFjcyBmcmFtZTogICAgICAgV2luZG93IFNpemUgWC4gICAgICAobGluZSAgICA2 KQogIC0gd2lkdGggb2YgdGhlIHZlcnRpY2FsIHNjcm9sbCBiYXI6ICAgICAgU2Nyb2xsIEJhcnMu ICAgICAgICAobGluZSAgIDM1KQogIC0gd2lsZGNhcmQgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVz OiAgICAgVmlzaXRpbmcuICAgICAgICAgICAobGluZSAgIDcxKQogIC0gV2luZG1vdmUgcGFja2Fn ZTogICAgICAgICAgICAgICAgICAgICAgV2luZG93IENvbnZlbmllbmNlLiAobGluZSAgIDE4KQog IC0gd2luZG93IGNvbmZpZ3VyYXRpb24gY2hhbmdlcywgdW5kb2luZzogV2luZG93IENvbnZlbmll bmNlLiAobGluZSAgICA2KQogIC0gV2luZG93IERpdmlkZXIgbW9kZTogICAgICAgICAgICAgICAg ICAgV2luZG93IERpdmlkZXJzLiAgICAobGluZSAgICA2KQogIC0gd2luZG93IG1hbmFnZXIsIGtl eXMgc3RvbGVuIGJ5OiAgICAgICAgVXNlciBJbnB1dC4gICAgICAgICAobGluZSAgIDM2KQogIC0g V2luZG93cyBjbGlwYm9hcmQgc3VwcG9ydDogICAgICAgICAgICAgTVMtRE9TIE1vdXNlLiAgICAg ICAobGluZSAgIDI5KQogIC0gd2luZG93cyBpbiBFbWFjczogICAgICAgICAgICAgICAgICAgICAg V2luZG93cy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0gV2luZG93cyBzeXN0ZW0gbWVudTog ICAgICAgICAgICAgICAgICAgV2luZG93cyBLZXlib2FyZC4gICAobGluZSAgMTA5KQogIC0gd2lu ZG93cywgc3luY2hyb25pemluZzogICAgICAgICAgICAgICAgRm9sbG93IE1vZGUuICAgICAgICAo bGluZSAgICA2KQogIC0gV2luZG93cy0xMjU1OiAgICAgICAgICAgICAgICAgICAgICAgICAgTGFu Z3VhZ2UgRW52aXJvbm1lbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAzOCkKICAtIFdpbm5lciBtb2RlOiAgICAg ICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdyBDb252ZW5pZW5jZS4gKGxpbmUgICAgNikKICAt IHdvcmQgcHJvY2Vzc2luZzogICAgICAgICAgICAgICAgICAgICAgIEVucmljaGVkIFRleHQuICAg ICAgKGxpbmUgICAgNikKICAtIHdvcmQgc2VhcmNoOiAgICAgICAgICAgICAgICAgICAgICAgICAg IFdvcmQgU2VhcmNoLiAgICAgICAgKGxpbmUgICAgNikKICAtIHdvcmQgd3JhcDogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZpc3VhbCBMaW5lIE1vZGUuICAgKGxpbmUgICAgNikKICAtIHdv cmRzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmRzLiAgICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIHdvcmRzLCBjYXNlIGNvbnZlcnNpb246ICAgICAgICAgICAgICAgIENh c2UuICAgICAgICAgICAgICAgKGxpbmUgICAyMCkKICAtIHdvcmsgZmlsZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFZDUyBDb25jZXB0cy4gICAgICAgKGxpbmUgICAxMykKICAtIHdvcmtp bmcgdHJlZTogICAgICAgICAgICAgICAgICAgICAgICAgIFZDUyBDb25jZXB0cy4gICAgICAgKGxp bmUgICAxOSkKICAtIFdvcmxkIFdpZGUgV2ViOiAgICAgICAgICAgICAgICAgICAgICAgIEJyb3dz ZS1VUkwuICAgICAgICAgKGxpbmUgICAgNikKICAtIHdyYXBwZWQgc2VhcmNoOiAgICAgICAgICAg ICAgICAgICAgICAgIFJlcGVhdCBJc2VhcmNoLiAgICAgKGxpbmUgICAzNikKICAtIHdyYXBwaW5n OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVhdGlvbiBMaW5lcy4gKGxpbmUg ICAgNikKICAtIFdZU0lXWUc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVucmljaGVk IFRleHQuICAgICAgKGxpbmUgICAgNikKICAtIFggY3V0dGluZyBhbmQgcGFzdGluZzogICAgICAg ICAgICAgICAgIFByaW1hcnkgU2VsZWN0aW9uLiAgKGxpbmUgICAgNikKICAtIFggZGVmYXVsdHMg ZmlsZTogICAgICAgICAgICAgICAgICAgICAgIEZvbnRzLiAgICAgICAgICAgICAgKGxpbmUgICAy NSkKICAtIFggaW5wdXQgbWV0aG9kczogICAgICAgICAgICAgICAgICAgICAgIFRhYmxlIG9mIFJl c291cmNlcy4gKGxpbmUgIDE1NykKICAtIFggTG9naWNhbCBGb250IERlc2NyaXB0aW9uOiAgICAg ICAgICAgIEZvbnRzLiAgICAgICAgICAgICAgKGxpbmUgIDExMykKICAtIFggcmVzb3VyY2VzOiAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlcy4gICAgICAgICAgKGxpbmUgICAgNikK ICAtIFggcmVzb3VyY2VzIGZpbGU6ICAgICAgICAgICAgICAgICAgICAgIEZvbnRzLiAgICAgICAg ICAgICAgKGxpbmUgICAyNSkKICAtIFggc2VsZWN0aW9uOiAgICAgICAgICAgICAgICAgICAgICAg ICAgIFByaW1hcnkgU2VsZWN0aW9uLiAgKGxpbmUgICAgNikKICAtIFhEQjogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERlYnVnZ2Vycy4gICAgICAgICAgKGxpbmUgICAgNikKICAt IFhJTTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlIG9mIFJlc291cmNl cy4gKGxpbmUgIDE1NykKICAtIFhMRkQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZvbnRzLiAgICAgICAgICAgICAgKGxpbmUgIDExMykKICAtIFhNTCBzY2hlbWE6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEhUTUwgTW9kZS4gICAgICAgICAgKGxpbmUgICA3NSkKICAtIHhy ZWY6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhyZWYuICAgICAgICAgICAgICAg KGxpbmUgICAgNikKICAtIHhyZWYgYmFja2VuZDogICAgICAgICAgICAgICAgICAgICAgICAgIFhy ZWYuICAgICAgICAgICAgICAgKGxpbmUgICAyNCkKICAtIFhSRUYgbW9kZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFhyZWYgQ29tbWFuZHMuICAgICAgKGxpbmUgICAgNikKICAtIHh0ZXJt OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHQtT25seSBNb3VzZS4gICAgKGxp bmUgICAgOCkKICAtIHh3aWRnZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtYmVk ZGVkIFdlYktpdCBXaWRnZXRzLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUgICAgNikKICAtIFh3aWRnZXQtV2ViS2l0IG1v ZGU6ICAgICAgICAgICAgICAgICAgIEVtYmVkZGVkIFdlYktpdCBXaWRnZXRzLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUg ICAgNikKICAtIHkgb3IgbiBwcm9tcHQ6ICAgICAgICAgICAgICAgICAgICAgICAgIFllcyBvciBO byBQcm9tcHRzLiAgKGxpbmUgICAgOSkKICAtIHlhaHJ6ZWl0czogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZyb20gT3RoZXIgQ2FsZW5kYXIuCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgIDU0KQogIC0geWFocnpl aXRzLCBhbmQgc2V4cCBkaWFyeSBlbnRyaWVzOiAgICAgU2V4cCBEaWFyeSBFbnRyaWVzLiAobGlu ZSAgMTYyKQogIC0geWFua2luZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWWFua2lu Zy4gICAgICAgICAgICAobGluZSAgICA2KQogIC0geWFua2luZyBwcmV2aW91cyBraWxsczogICAg ICAgICAgICAgICAgRWFybGllciBLaWxscy4gICAgICAobGluZSAgICA2KQogIC0geWVzIG9yIG5v IHByb21wdDogICAgICAgICAgICAgICAgICAgICAgWWVzIG9yIE5vIFByb21wdHMuICAobGluZSAg IDI3KQogIC0gemlwOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZSBBcmNo aXZlcy4gICAgICAobGluZSAgIDQ1KQogIC0gWm1hY3MgbW9kZTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgRGlzYWJsZWQgVHJhbnNpZW50IE1hcmsuCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZSAgICA2KQogIC0gem9u ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW11c2VtZW50cy4gICAgICAgICAo bGluZSAgIDU2KQogIC0gem9vOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls ZSBBcmNoaXZlcy4gICAgICAobGluZSAgIDQ1KQoK --_002_SG2PR0601MB14054507023872F6BA159D40A8C90SG2PR0601MB1405_-- From unknown Mon Aug 18 09:02:56 2025 X-Loop: help-debbugs@gnu.org Subject: bug#33268: 26.1.50; Can't decode the utf-8 text file Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Nov 2018 16:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33268 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Zhang Haijun Cc: 33268@debbugs.gnu.org Received: via spool by 33268-submit@debbugs.gnu.org id=B33268.15416071375432 (code B ref 33268); Wed, 07 Nov 2018 16:13:01 +0000 Received: (at 33268) by debbugs.gnu.org; 7 Nov 2018 16:12:17 +0000 Received: from localhost ([127.0.0.1]:39782 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gKQRE-0001PY-L9 for submit@debbugs.gnu.org; Wed, 07 Nov 2018 11:12:16 -0500 Received: from eggs.gnu.org ([208.118.235.92]:39287) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gKQRC-0001PC-Q4 for 33268@debbugs.gnu.org; Wed, 07 Nov 2018 11:12:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gKQR7-0000q2-25 for 33268@debbugs.gnu.org; Wed, 07 Nov 2018 11:12:09 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:55403) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gKQQv-0000h9-FK; Wed, 07 Nov 2018 11:11:57 -0500 Received: from [176.228.60.248] (port=1835 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gKQQv-0004Y8-2a; Wed, 07 Nov 2018 11:11:57 -0500 Date: Wed, 07 Nov 2018 18:11:52 +0200 Message-Id: <837ehodfzr.fsf@gnu.org> From: Eli Zaretskii In-reply-to: (message from Zhang Haijun on Sun, 4 Nov 2018 08:23:15 +0000) References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) tags 33268 notabug close 33268 thanks > From: Zhang Haijun > Date: Sun, 4 Nov 2018 08:23:15 +0000 > Accept-Language: zh-CN, en-US > > Open the attachment text file with "emacs -Q". There are many > unrecognized chars(like \342\200\230). Following is the encoding info of > the buffer. This has been discussed on emacs-devel, see http://lists.gnu.org/archive/html/emacs-devel/2018-11/msg00065.html As explained there, this is not a bug, but intended behavior, when a file includes null bytes.