From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.7.91; helo=nam03-co1-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-oln040092007091.outbound.protection.outlook.com [40.92.7.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 76DD521A10969 for ; Sat, 25 Nov 2017 05:23:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=eUaAy2VaJAYtFigjjUeQ2a8BF8KYnRnm3pO/OJX3JaU=; b=aqpp1vKvkk/mLGAY+KNmVCC90mOxoQMdNMg+GZbRLGje+8HFBPf25P9JQP8b74wY0qZ+q3slyibjIWjVvDgIjivcTYx6CQpEtu15NBeEIm2kiiYc6q37/+Kuk0goSx0cp02bJvvflmQgFCHRvhTFa8NZNK52WhoG2uhvqZA8T5TtmSa/VHhm5TkP0xbxLpCqVReC7tZCot3R9a9Zm0JxZXRmlhUGT9ZRTZFqnB6mrEEfX+rhh7rMSJadGBtQ5r14s/pg+HltVh2/kU66IVTv6+9kvUutGNlfOBxUeq60a2PBm99QkKDoeMl4x46hCL48uYThomZX++Ux7bqgss6etQ== Received: from DM3NAM03FT010.eop-NAM03.prod.protection.outlook.com (10.152.82.55) by DM3NAM03HT218.eop-NAM03.prod.protection.outlook.com (10.152.82.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.239.4; Sat, 25 Nov 2017 13:27:51 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com (10.152.82.51) by DM3NAM03FT010.mail.protection.outlook.com (10.152.82.65) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.239.4 via Frontend Transport; Sat, 25 Nov 2017 13:27:51 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com ([10.161.82.25]) by CO2PR19MB0137.namprd19.prod.outlook.com ([10.161.82.25]) with mapi id 15.20.0260.006; Sat, 25 Nov 2017 13:27:51 +0000 From: Fan Jeff To: "Wang, Jian J" , "Yao, Jiewen" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH v2 7/8] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTZB7w98op0SSpjE2y8NBEt/M9n6MheeeAgAAC9ACAAAe3AIADk20P Date: Sat, 25 Nov 2017 13:27:51 +0000 Message-ID: References: <20171122084548.6564-1-jian.j.wang@intel.com> <20171122084548.6564-8-jian.j.wang@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA292EF@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA29365@shsmsx102.ccr.corp.intel.com>, In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:A98289CB9DC7C91D2430584B56F6CB5BD7234F1C0F3C825B15F56177199397A9; UpperCasedChecksum:27D32853B6992F3D728CEFE1448B23D42BE9D2C84A0488E58E358B4882675DB2; SizeAsReceived:7694; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [jBP0P7mowZu0ucQhYyMhfbDS6lA5de0q] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM3NAM03HT218; 6:AbmLHAIDmfFlfYfM4YjFAiuHxISTeHf61gvQKrcJ94ffUFBFKY9P/Tf1uDxwTDpd/bGUbjsKoEC3TCRIgC7mXev/XbCq2lQZNwLNDCal+w4xz/VKd9SkEwxr4nXmwc3aC8IWLaB3AhPkfyc4y+nOaM7LOI2ACWc0xlwCmsJ8dCdueDTu1bXJKwYJWs6Ri9bpFOwkeNDqTrfoWAqMkyfncgVwjtuIpPOIEcifM4LPRyz7BSb1xOfeO/GYofz2wQByC6+ccKdL9qI+zDK0qUTj5a4E/mXZBYDlAq4zF6tjERr9FeJFT9DZGo3nyoeTdmr7ONlcXO7DkmT11NJ6tTOW013RYQfzpca3Hwo3IO4DmAw=; 5:eyEheA/GgUFYGuf70QFdij34h/ics+TwFKAjTXsABCzZMvZuPHU0Hq8DghGYVBnR7N+e5LOt0gJNpDZ7Q6mEJZkeH8Z/VLSV2NvfGryIPllAxSuEzfY/pXsLgUM+Zm032yRoEYWcKvze2WHdGBnj2QuCToPv4G5lZ/hIqZX0rk8=; 24:A6m9gN004qAgdcXSpXoeXw7YaoPOyZAfJED3gRK37yAJBr3nJ8HPimOfL99Vh+ePlDLq6l5PJpWZybTfDpFcFkhDYEbK+MbWOz5U7dGI4nI=; 7:Lx0DdSZehKW2Lvld7xNOPe8w271Lchz0qecj9Zw62tselNWm1j1hxF+MXAr/rBKxmeLq3tadcG8sZYeiIRMZrpFICugucb4Gi1aXq/v4RdAzE2VJP9ma+oQEcf8NA9Jpor9ZbB27bpFlsirj+9qdx2oac8AYBZkB+xPP+OwZ1mEPtEjGETGfAzIS+QSzm5+9hUZ6YUH/4viQQ0RApM0ZqQm6At4cYt2aPTTMBz6h638eaiiSzVernvjZwdkf5T0h x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1601125374)(1603101448)(1701031045); SRVR:DM3NAM03HT218; x-ms-traffictypediagnostic: DM3NAM03HT218: x-ms-office365-filtering-correlation-id: b6b8c042-5696-44c6-21d1-08d5340853d5 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:DM3NAM03HT218; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:DM3NAM03HT218; x-forefront-prvs: 0502983C0E x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:DM3NAM03HT218; H:CO2PR19MB0137.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6b8c042-5696-44c6-21d1-08d5340853d5 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2017 13:27:51.1621 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3NAM03HT218 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUEFUQ0ggdjIgNy84XSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA==?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Nov 2017 13:23:37 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="big5" Content-Transfer-Encoding: base64 SGksDQoNCg0KDQpBYm91dCAxLjEpLCBJIGFncmVlIHdpdGggSmlld2VuoaZzIHN1Z2dlc3Rpb24u IEJlc2lkZXMgaXQsIHdlIGFsc28gbmVlZCB0byBwcm92aWRlIGR1bW15IGZ1bmN0aW9uIG9mIElu aXRpYWxpemVDcHVFeGNlcHRpb25TdGFja1N3aXRjaEhhbmRsZXJzKCkgaW4gTlVMTCBpbnN0YW5j ZSBpbiBNZGVNb2R1bGVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliTnVsbC4NCg0K QnV0IHdlIG5lZWQgdG8gdGhpbmsgYWJvdXQgdGhlIHJldHVybiBzdGF0dXMgY2FyZWZ1bGx5LiBG b3IgZXhhbXBsZSwgaWYgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRCBpbiBQZWkvU01NIGluc3RyYW5j ZSwgd2UgbmVlZCB0byB1cGRhdGUgcHVibGljIGhlYWRlciBmaWxlIHRvIGFkZCB0aGlzIHJldHVy biB0eXBlLg0KDQoNCg0KSmVmZg0KDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCkZyb206IGVkazItZGV2ZWwgPGVkazItZGV2ZWwtYm91bmNlc0BsaXN0cy4wMS5vcmc+IG9u IGJlaGFsZiBvZiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NClNlbnQ6IFRo dXJzZGF5LCBOb3ZlbWJlciAyMywgMjAxNyAyOjQzOjQ0IFBNDQpUbzogWWFvLCBKaWV3ZW47IGVk azItZGV2ZWxAbGlzdHMuMDEub3JnDQpDYzogS2lubmV5LCBNaWNoYWVsIEQ7IERvbmcsIEVyaWM7 IFplbmcsIFN0YXINClN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIHYyIDcvOF0gVWVmaUNwdVBr Zy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KMS4x KSBHb3QgeW91ciBwb2ludC4gSSdsbCBhZGQgZHVtbXkgZnVuY3Rpb24gaW4gdGhpcyBwYXRjaC4N CjEuMikgWWVwLCB3ZSdyZSBvbiB0aGUgc2FtZSBwYWdlLg0KMS4zKSBIZXJlJ3MgbXkgb3Bpbmlv bjoNCg0KQWN0dWFsbHkgYWxtb3N0IGFsbCBNUCBjb2RlIGhhcyBzdWNoIGFzc3VtcHRpb246IGFu eSBBUCBjb25maWd1cmF0aW9uIHdpbGwgY29weQ0KIGZyb20gQlNQLiBJZiB3ZSBhbGxvdyBBUCB0 byBjYWxsIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygpLCB3ZSBoYXZlIHRvIGRvIGEg bG90DQpvZiBvdGhlciBjaGFuZ2VzIHRoYW4ganVzdCB1cGRhdGluZyBJbml0aWFsaXplQ3B1RXhj ZXB0aW9uSGFuZGxlcnMoKS4gSWYgc28sIGl0IG1heQ0KYmUgcHJlbWF0dXJlIHRvIGZpZ3VyZSBv dXQgYSBzb2x1dGlvbiBhdCB0aGlzIHBhdGNoLg0KDQpJbiBhZGRpdGlvbiwgQ3B1RHhlIGFjdHVh bGx5IGNhbGxzIEluaXRpYWxpemVDcHVJbnRlcnJ1cHRIYW5kbGVycygpIHdoaWNoIGNvdmVycyB0 aGUNCmZ1bmN0aW9uYWxpdGllcyBvZiBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSAo aXRzIHNldHRpbmdzIHdpbGwgYmUgb3ZlcndyaXR0ZW4pLg0KSWYgd2Ugd2FudCBBUCB0byBpbml0 aWFsaXplIGludGVycnVwdCBhbmQgZXhjZXB0aW9uIGluZGl2aWR1YWxseSwgbWF5YmUgd2Ugc2hv dWxkDQpsZXQgQVAgY2FsbCBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMoKSBpbnN0ZWFk Lg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbywgSmlld2VuDQo+ IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAyMywgMjAxNyAyOjE2IFBNDQo+IFRvOiBXYW5nLCBK aWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ IENjOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5k b25nQGludGVsLmNvbT47DQo+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2MiA3LzhdIFVlZmlDcHVQa2cvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrDQo+IHN3aXRjaCBzdXBwb3J0DQo+DQo+IEhlcmUg aXMgbXkgdGhvdWdodCBmb3IgMSkNCj4NCj4gMS4xKSBXZSBtdXN0IHByb3ZpZGUgdGhlIEluaXRp YWxpemVDcHVFeGNlcHRpb25TdGFja1N3aXRjaEhhbmRsZXJzKCkNCj4gaW1wbGVtZW50YXRpb24g aW4gUGVpIGluc3RhbmNlIGFuZCBTbW0gaW5zdGFuY2UuDQo+DQo+IFRoZSBiYXNpYyByZXF1aXJl bWVudCBpcyBhIGxpYnJhcnkgaW5zdGFuY2UgbXVzdCBwcm92aWRlIHN5bWJvbCBmb3IgZnVuY3Rp b25zDQo+IGRlY2xhcmVkIGluIGhlYWRlciBmaWxlLg0KPiBJdCBpcyBvayB0byByZXR1cm4gdW5z dXBwb3J0ZWQuIEJ1dCB3ZSBNVVNUIHByb3ZpZGUgdGhlIHN5bWJvbC4NCj4NCj4gMS4yKSBGb3Ig U01NLCBJIHRoaW5rIG91ciB1bHRpbWF0ZSBnb2FsIGlzIHRvIHJlbW92ZSBTTU0gc3BlY2lmaWMg c3RhY2sgZ3VhcmQsDQo+IGFuZCB1c2UgdGhlIGNvbW1vbiBvbmUuIER1cGxpY2F0aW5nIGNvZGUg aXMgY29tcGxldGVseSB1bm5lY2Vzc2FyeSwgYW5kIGl0IGlzDQo+IGVhc3kgdG8gaW50cm9kdWNl IGJ1Zy4gQW5kIHVuZm9ydHVuYXRlbHksIHdlIGFscmVhZHkgaGF2ZSBidWcgaW4gZXhpc3Rpbmcg U01NDQo+IGV4Y2VwdGlvbiBoYW5kbGVyLiAtLSBUaGF0IGlzIGEgZ29vZCByZWFzb24gdG8gcmVt b3ZlIGR1cGxpY2F0aW9uLg0KPg0KPiBBZ2FpbiwgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBkbyBp dCBpbiB0aGlzIHBhdGNoLiBJIGFtIHRvdGFsbHkgT0sgdG8gZG8gaXQgaW4gYW5vdGhlcg0KPiBw YXRjaC4NCj4NCj4gMS4zKSBGb3IgUEVJLCBJIGRvIG5vdCB0aGluayB3ZSBjYW4gdXNlIGN1cnJl bnQgd2F5IHRvIGFsbG9jYXRlIHN0YWNrIGluIGRhdGENCj4gc2VjdGlvbiwgYmVjYXVzZSBpdCBt aWdodCBiZSByZWFkb25seSBpbiBwcmUtbWVtIHBoYXNlLiBXZSBtdXN0IHVzZSBzb21lDQo+IG90 aGVyIHdheS4NCj4NCj4gMS40KSBJIGJlbGlldmUgdGhpcyBwYXRjaCBoYXMgYSBoaWRkZW4gYXNz dW1wdGlvbiBpcyB0aGF0Og0KPiBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSB3b24n dCBiZSBjYWxsZWQgYnkgbXVsdGlwbGUgQVBzLg0KPiBJZiAyIG9yIG1vcmUgQVBzIGNhbGwgdGhl IGl0IGF0IHNhbWUgdGltZSwgaXQgbWlnaHQgYmUgYnJva2VuIGJlY2F1c2UgeW91IHVzZQ0KPiBt TmV3U3RhY2sgZm9yIGFsbCB0aGUgY2FsbGVycy4uLi4NCj4gSXMgdGhhdCByaWdodD8NCj4NCj4N Cj4gVGhhbmsgeW91DQo+IFlhbyBKaWV3ZW4NCj4NCj4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+IEZyb206IFdhbmcsIEppYW4gSg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBOb3Zl bWJlciAyMywgMjAxNyAyOjA2IFBNDQo+ID4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGlu dGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gQ2M6IFplbmcsIFN0YXIgPHN0 YXIuemVuZ0BpbnRlbC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsNCj4g S2lubmV5LA0KPiA+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4g U3ViamVjdDogUkU6IFtQQVRDSCB2MiA3LzhdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYjogQWRkIHN0YWNrDQo+ID4gc3dpdGNoIHN1cHBvcnQNCj4gPg0KPiA+DQo+ID4NCj4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBZYW8sIEppZXdlbg0KPiA+ ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDIzLCAyMDE3IDE6NTAgUE0NCj4gPiA+IFRvOiBX YW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEu b3JnDQo+ID4gPiBDYzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IERvbmcsIEVy aWMgPGVyaWMuZG9uZ0BpbnRlbC5jb20+Ow0KPiA+ID4gS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2MiA3Lzhd IFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrDQo+ID4gPiBzd2l0 Y2ggc3VwcG9ydA0KPiA+ID4NCj4gPiA+IFNvbWUgdGhvdWdodDoNCj4gPiA+DQo+ID4gPiAxKSBJ IGZvdW5kIEluaXRpYWxpemVDcHVFeGNlcHRpb25TdGFja1N3aXRjaEhhbmRsZXJzKCkgaXMgb25s eSBpbXBsZW1lbnRlZA0KPiBpbg0KPiA+ID4gRHhlRXhjZXB0aW9uLmMuDQo+ID4gPiBXaGF0IGFi b3V0IFBlaS9TbW0gaW5zdGFuY2U/DQo+ID4gPg0KPiA+ID4gSSB0aGluayBpdCBpcyBPSyB0byBu b3QgaW1wbGVtZW50IGl0IGF0IHRoaXMgbW9tZW50LiBCdXQgd2UgbmVlZCBtYWtlIHN1cmUgbm8N Cj4gPiA+IGFyY2hpdGVjdHVyZSBpc3N1ZSBpZiB3ZSB3YW50IHRvIGVuYWJsZSBpdCBzb21lIHRp bWUgbGF0ZXIuDQo+ID4gPg0KPiA+IExpa2Ugd2hhdCB3ZSBkaXNjdXNzZWQgYmVmb3JlLCB0aGlz IHNlcmllcyBvZiBwYXRjaCBpcyBmb3IgU3RhY2sgR3VhcmQgZmVhdHVyZQ0KPiA+IHdoaWNoDQo+ ID4gaXMgb25seSBhdmFpbGFibGUgZm9yIERYRSAoYmVjYXVzZSBTdGFjayBHdWFyZCBuZWVkcyBw YWdpbmcgdG8gd29yaykuIFN0YWNrDQo+ID4gc3dpdGNoDQo+ID4gaXMgZW5hYmxlZCBmb3IgdGhl IHNha2Ugb2YgU3RhY2sgR3VhcmQgZmVhdHVyZS4gU28gSSB0aGluayBpdCdzIGVub3VnaCB0bw0K PiA+IGltcGxlbWVudA0KPiA+IGl0IGluIER4ZUV4Y2VwdGlvbi5jLiBJbiBhZGRpdGlvbiwgU01N IGhhcyBpdHMgb3duIGltcGxlbWVudGF0aW9uIG9mIHN0YWNrDQo+IGd1YXJkDQo+ID4gYW5kIHN0 YWNrIHN3aXRjaC4gSXQncyBub3QgbmVjZXNzYXJ5IHRvIGRvIGl0IGFnYWluLg0KPiA+DQo+ID4g SSBhZ3JlZSB3aXRoIHlvdSB0aGF0IHdlIHNob3VsZCBtZXJnZSB0aG9zZSBjb21tb24gY29kZSBi dXQgSSB0aGluayB3ZQ0KPiBzaG91bGQNCj4gPiBkbw0KPiA+IGl0IGluIGEgc2VwYXJhdGUgcGF0 Y2ggc2VyaWVzIHNpbmNlIGl0J3Mgbm90IFN0YWNrIEd1YXJkIHJlbGV2YW50LiBBbmQgSSd2ZQ0K PiByZW1vdmVkDQo+ID4gYWxsIGFyY2hpdGVjdHVyZSBpc3N1ZXMgSSBjYW4gdGhpbmsgb2YuIEN1 cnJlbnQgc3RhY2sgc3dpdGNoIGluaXRpYWxpemF0aW9uIHNob3VsZA0KPiB3b3JrDQo+ID4gZm9y IGJvdGggUEVJIGFuZCBTTU0gYXMgd2VsbC4NCj4gPg0KPiA+ID4gMikgI2RlZmluZSBJQTMyX0dE VF9UWVBFX1RTUyAgICAgICAgICAgMHg5DQo+ID4gPiBUaGlzIGlzIGdlbmVyaWMsIGNhbiB3ZSBt b3ZlIHRvIEJhc2VMaWIuaD8NCj4gPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmsgeW91DQo+ID4gPiBZ YW8gSmlld2VuDQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+ID4gRnJvbTogV2FuZywgSmlhbiBKDQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwg Tm92ZW1iZXIgMjIsIDIwMTcgNDo0NiBQTQ0KPiA+ID4gPiBUbzogZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmcNCj4gPiA+ID4gQ2M6IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsNCj4gWWFvLA0KPiA+ID4gPiBKaWV3ZW4gPGpp ZXdlbi55YW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA+ID4gPG1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggdjIgNy84XSBVZWZp Q3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjaw0KPiA+ID4gc3dpdGNoDQo+ ID4gPiA+IHN1cHBvcnQNCj4gPiA+ID4NCj4gPiA+ID4gPiB2MjoNCj4gPiA+ID4gPiAgICBhLiBN b3ZlIGNvbW1vbiBUU1Mgc3RydWN0dXJlIGFuZCBBUEkgZGVmaW5pdGlvbnMgdG8gQmFzZUxpYi5o DQo+ID4gPiA+ID4gICAgYi4gQWRkIEVYQ0VQVElPTl9TVEFDS19TV0lUQ0hfREFUQSB0byBjb252 ZXJ5IGRhdGEgdXNlZCB0bw0KPiA+IHNldHVwDQo+ID4gPiA+IHN0YWNrDQo+ID4gPiA+ID4gICAg ICAgc3dpdGNoLiBUaGlzIGNhbiBhdm9pZCBhbGxvY2F0aW5nIG1lbW9yeSBmb3IgaXQgaW4gdGhp cyBsaWJyYXJ5Lg0KPiA+ID4gPiA+ICAgIGMuIEFkZCBnbG9iYWxzIHRvIHJlc2VydmUgbWVtb3J5 IGZvciBzdGFjayBzd2l0Y2ggaW5pdGlhbGl6ZWQgaW4gZWFybHkNCj4gPiA+ID4gPiAgICAgICBw aGFzZSBvZiBEWEUgY29yZS4NCj4gPiA+ID4gPiAgICBkLiBSZW1vdmUgdGhlIGZpbHRlciBjb2Rl IHVzZWQgdG8gZXhjbHVkZSBib290IG1vZGVzIHdoaWNoIGRvZXNuJ3QNCj4gPiA+ID4gc3VwcG9y dA0KPiA+ID4gPiA+ICAgICAgIG1lbW9yeSBhbGxvY2F0aW9uIGJlY2F1c2UgdGhvc2UgbWVtb3J5 IGNhbiBwYXNzZWQgaW4gYnkNCj4gPiBwYXJhbWV0ZXINCj4gPiA+ID4gbm93Lg0KPiA+ID4gPiA+ ICAgIGUuIFJlbW92ZSB0aGUgbmFzbSBtYWNybyB0byBkZWZpbmUgZXhjZXB0aW9uIGhhbmRsZXIg b25lIGJ5IG9uZQ0KPiA+IGFuZA0KPiA+ID4gPiBhZGQgYQ0KPiA+ID4gPiA+ICAgICAgIGZ1bmN0 aW9uIHRvIHJldHVybiB0aGUgc3RhcnQgYWRkcmVzcyBvZiBlYWNoIGhhbmRsZXIuDQo+ID4gPiA+ DQo+ID4gPiA+IElmIFN0YWNrIEd1YXJkIGlzIGVuYWJsZWQgYW5kIHRoZXJlJ3MgcmVhbGx5IGEg c3RhY2sgb3ZlcmZsb3cgaGFwcGVuZWQNCj4gZHVyaW5nDQo+ID4gPiA+IGJvb3QsIGEgUGFnZSBG YXVsdCBleGNlcHRpb24gd2lsbCBiZSB0cmlnZ2VyZWQuIEJlY2F1c2UgdGhlIHN0YWNrIGlzIG91 dCBvZg0KPiA+ID4gPiB1c2FnZSwgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyLCB3aGljaCBzaGFyZXMg dGhlIHN0YWNrIHdpdGggbm9ybWFsIFVFRkkNCj4gZHJpdmVyLA0KPiA+ID4gPiBjYW5ub3QgYmUg ZXhlY3V0ZWQgYW5kIGNhbm5vdCBkdW1wIHRoZSBwcm9jZXNzb3IgaW5mb3JtYXRpb24uDQo+ID4g PiA+DQo+ID4gPiA+IFdpdGhvdXQgdGhvc2UgaW5mb3JtYXRpb24sIGl0J3MgdmVyeSBkaWZmaWN1 bHQgZm9yIHRoZSBCSU9TIGRldmVsb3BlcnMgbG9jYXRlDQo+ID4gPiA+IHRoZSByb290IGNhdXNl IG9mIHN0YWNrIG92ZXJmbG93LiBBbmQgd2l0aG91dCBhIHdvcmthYmxlIHN0YWNrLCB0aGUNCj4g PiBkZXZlbG9wZXINCj4gPiA+ID4gY2Fubm90IGV2ZW50IHVzZSBzaW5nbGUgc3RlcCB0byBkZWJ1 ZyB0aGUgVUVGSSBkcml2ZXIgd2l0aCBKVEFHIGRlYnVnZ2VyLg0KPiA+ID4gPg0KPiA+ID4gPiBJ biBvcmRlciB0byBtYWtlIHN1cmUgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGV4ZWN1dGUgbm9y bWFsbHkgYWZ0ZXINCj4gc3RhY2sNCj4gPiA+ID4gb3ZlcmZsb3cuIFdlIG5lZWQgc2VwYXJhdGUg c3RhY2tzIGZvciBleGNlcHRpb24gaGFuZGxlcnMgaW4gY2FzZSBvZg0KPiB1bnVzYWJsZQ0KPiA+ ID4gPiBzdGFjay4NCj4gPiA+ID4NCj4gPiA+ID4gSUEgcHJvY2Vzc29yIGFsbG93cyB0byBzd2l0 Y2ggdG8gYSBuZXcgc3RhY2sgZHVyaW5nIGhhbmRsaW5nIGludGVycnVwdCBhbmQNCj4gPiA+ID4g ZXhjZXB0aW9uLiBCdXQgWDY0IGFuZCBJQTMyIHByb3ZpZGVzIGRpZmZlcmVudCB3YXlzIHRvIG1h a2UgaXQuIFg2NA0KPiBwcm92aWRlcw0KPiA+ID4gPiBpbnRlcnJ1cHQgc3RhY2sgdGFibGUgKElT VCkgdG8gYWxsb3cgbWF4aW11bSA3IGRpZmZlcmVudCBleGNlcHRpb25zIHRvIGhhdmUNCj4gPiA+ ID4gbmV3IHN0YWNrIGZvciBpdHMgaGFuZGxlci4gSUEzMiBkb2Vzbid0IGhhdmUgSVNUIG1lY2hh bmlzbSBhbmQgY2FuIG9ubHkNCj4gdXNlDQo+ID4gPiA+IHRhc2sgZ2F0ZSB0byBkbyBpdCBzaW5j ZSB0YXNrIHN3aXRjaCBhbGxvd3MgdG8gbG9hZCBhIG5ldyBzdGFjayB0aHJvdWdoIGl0cw0KPiA+ ID4gPiB0YXNrLXN0YXRlIHNlZ21lbnQgKFRTUykuDQo+ID4gPiA+DQo+ID4gPiA+IENjOiBTdGFy IFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IENjOiBFcmljIERvbmcgPGVyaWMu ZG9uZ0BpbnRlbC5jb20+DQo+ID4gPiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVs LmNvbT4NCj4gPiA+ID4gQ2M6IE1pY2hhZWwgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPiA+ID4gU3VnZ2VzdGVkLWJ5OiBBeWVsbGV0IFdvbG1hbiA8YXllbGxldC53b2xt YW5AaW50ZWwuY29tPg0KPiA+ID4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRy aWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEppYW4gSiBXYW5n IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPiAgLi4uL0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmggICAgfCAgNTAgKysrDQo+ID4g PiA+ICAuLi4vRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8 ICAgNiArDQo+ID4gPiA+ICAuLi4vTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4 Y2VwdGlvbi5jICB8ICA1MyArKy0NCj4gPiA+ID4gIC4uLi9JYTMyL0FyY2hFeGNlcHRpb25IYW5k bGVyLmMgICAgICAgICAgICAgICAgICAgIHwgMTY3ICsrKysrKysrKw0KPiA+ID4gPiAgLi4uL0lh MzIvQXJjaEludGVycnVwdERlZnMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKw0KPiA+ ID4gPiAgLi4uL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbSAgICAgICAgICAgICAgICAg fCAzOTgNCj4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ICAuLi4vUGVpQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gPiA+ ICAuLi4vU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICB8ICAg MSArDQo+ID4gPiA+ICAuLi4vU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAg ICAgICAgICB8ICAgMSArDQo+ID4gPiA+ICAuLi4vWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMg ICAgICAgICAgICAgICAgICAgICB8IDEzMyArKysrKysrDQo+ID4gPiA+ICAuLi4vQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaCB8ICAgMyArDQo+ID4gPiA+ICAx MSBmaWxlcyBjaGFuZ2VkLCA4MjAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+ID4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IFVlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20u bmFzbQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiA+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRp b25Db21tb24uaA0KPiA+ID4gPiBpbmRleCA3NDBhNTg4MjhiLi4zMDMzNDEwNWQyIDEwMDY0NA0K PiA+ID4gPiAtLS0NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+ID4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4gPiA+ IEBAIC00OCw2ICs0OCwzMiBAQA0KPiA+ID4gPiAgICAgIDB4YjIxZDkxNDgsIDB4OTIxMSwgMHg0 ZDhmLCB7IDB4YWQsIDB4ZDMsIDB4NjYsIDB4YjEsIDB4ODksIDB4YzksIDB4MmMsDQo+ID4gPiAw eDgzIH0NCj4gPiA+ID4gXA0KPiA+ID4gPiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ICsjZGVmaW5l IENQVV9TVEFDS19TV0lUQ0hfRVhDRVBUSU9OX05VTUJFUiBcDQo+ID4gPiA+ICsgIEZpeGVkUGNk R2V0U2l6ZSAoUGNkQ3B1U3RhY2tTd2l0Y2hFeGNlcHRpb25MaXN0KQ0KPiA+ID4gPiArDQo+ID4g PiA+ICsjZGVmaW5lIENQVV9TVEFDS19TV0lUQ0hfRVhDRVBUSU9OX0xJU1QgXA0KPiA+ID4gPiAr ICBGaXhlZFBjZEdldFB0ciAoUGNkQ3B1U3RhY2tTd2l0Y2hFeGNlcHRpb25MaXN0KQ0KPiA+ID4g PiArDQo+ID4gPiA+ICsjZGVmaW5lIENQVV9LTk9XTl9HT09EX1NUQUNLX1NJWkUgXA0KPiA+ID4g PiArICBGaXhlZFBjZEdldDMyIChQY2RDcHVLbm93bkdvb2RTdGFja1NpemUpDQo+ID4gPiA+ICsN Cj4gPiA+ID4gKyNkZWZpbmUgQ1BVX1RTU19HRFRfU0laRSAoU0laRV8yS0IgKyBDUFVfVFNTX0RF U0NfU0laRSArDQo+ID4gPiBDUFVfVFNTX1NJWkUpDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyNkZWZp bmUgSUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAgIDB4OQ0KPiA+ID4gPiArI2RlZmluZSBJQTMy X0dEVF9BTElHTk1FTlQgICAgICAgICAgOA0KPiA+ID4gPiArDQo+ID4gPiA+ICt0eXBlZGVmIHN0 cnVjdCB7DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tUb3A7DQo+ ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXplOw0KPiA+ID4gPiAr ICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICpFeGNlcHRpb25zOw0KPiA+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgIEV4Y2VwdGlvbk51bWJlcjsNCj4gPiA+ID4gKyAgSUEzMl9J RFRfR0FURV9ERVNDUklQVE9SICAqSWR0VGFibGU7DQo+ID4gPiA+ICsgIElBMzJfU0VHTUVOVF9E RVNDUklQVE9SICAgKkdkdFRhYmxlOw0KPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgIEdkdFNpemU7DQo+ID4gPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgKlRzc0Rl c2M7DQo+ID4gPiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgKlRzczsNCj4gPiA+ID4g K30gRVhDRVBUSU9OX1NUQUNLX1NXSVRDSF9EQVRBOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAvLw0K PiA+ID4gPiAgLy8gUmVjb3JkIGV4Y2VwdGlvbiBoYW5kbGVyIGluZm9ybWF0aW9uDQo+ID4gPiA+ ICAvLw0KPiA+ID4gPiBAQCAtMjg4LDUgKzMxNCwyOSBAQCBDb21tb25FeGNlcHRpb25IYW5kbGVy V29ya2VyICgNCj4gPiA+ID4gICAgSU4gRVhDRVBUSU9OX0hBTkRMRVJfREFUQSAgICAgICpFeGNl cHRpb25IYW5kbGVyRGF0YQ0KPiA+ID4gPiAgICApOw0KPiA+ID4gPg0KPiA+ID4gPiArLyoqDQo+ ID4gPiA+ICsgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBzcGVjaWZpYyBleGNlcHRpb25zLg0K PiA+ID4gPiArDQo+ID4gPiA+ICsgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJs ZSBiYXNlLg0KPiA+ID4gPiArKiovDQo+ID4gPiA+ICtFRklfU1RBVFVTDQo+ID4gPiA+ICtFRklB UEkNCj4gPiA+ID4gK0FyY2hTZXR1cEV4Y3BldGlvblN0YWNrICgNCj4gPiA+ID4gKyAgSU4gRVhD RVBUSU9OX1NUQUNLX1NXSVRDSF9EQVRBICAgICAgKlN0YWNrU3dpdGNoRGF0YQ0KPiA+ID4gPiAr ICApOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyAgUmV0dXJuIGFkZHJlc3Mg bWFwIG9mIGV4Y2VwdGlvbiBoYW5kbGVyIHRlbXBsYXRlIHNvIHRoYXQgQyBjb2RlIGNhbg0KPiA+ ID4gPiBnZW5lcmF0ZQ0KPiA+ID4gPiArICBleGNlcHRpb24gdGFibGVzLiBUaGUgdGVtcGxhdGUg aXMgb25seSBmb3IgZXhjZXB0aW9ucyB1c2luZyB0YXNrIGdhdGUNCj4gPiBpbnN0ZWFkDQo+ID4g PiA+ICsgIG9mIGludGVycnVwdCBnYXRlLg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEBwYXJhbSBB ZGRyZXNzTWFwICBQb2ludGVyIHRvIGEgYnVmZmVyIHdoZXJlIHRoZSBhZGRyZXNzIG1hcCBpcw0K PiA+ID4gPiByZXR1cm5lZC4NCj4gPiA+ID4gKyoqLw0KPiA+ID4gPiArVk9JRA0KPiA+ID4gPiAr RUZJQVBJDQo+ID4gPiA+ICtBc21HZXRUc3NUZW1wbGF0ZU1hcCAoDQo+ID4gPiA+ICsgIE9VVCBF WENFUFRJT05fSEFORExFUl9URU1QTEFURV9NQVAgICpBZGRyZXNzTWFwDQo+ID4gPiA+ICsgICk7 DQo+ID4gPiA+ICsNCj4gPiA+ID4gICNlbmRpZg0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0 DQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCj4gPiA+ID4NCj4gPiA+ DQo+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVD cHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KPiA+ID4gPiBpbmRleCBmNGE4ZDAxYzgwLi41OGU1 NWE4YTJlIDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5k bGVyTGliLmluZg0KPiA+ID4gPiArKysNCj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVy TGliLmluZg0KPiA+ID4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ID4gPiAgW1NvdXJjZXMuSWEz Ml0NCj4gPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+ID4gPiAgICBJ YTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ID4gPiArICBJYTMyL0V4Y2VwdGlvblRz c0VudHJ5QXNtLm5hc20NCj4gPiA+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4g PiA+ID4gICAgSWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gPiA+ICAgIElhMzIvQXJj aEludGVycnVwdERlZnMuaA0KPiA+ID4gPiBAQCAtNDcsNiArNDgsMTEgQEANCj4gPiA+ID4gICAg UGVpRHhlU21tQ3B1RXhjZXB0aW9uLmMNCj4gPiA+ID4gICAgRHhlRXhjZXB0aW9uLmMNCj4gPiA+ ID4NCj4gPiA+ID4gK1tQY2RdDQo+ID4gPiA+ICsgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RDcHVTdGFja0d1YXJkDQo+ID4gPiA+ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1 aWQuUGNkQ3B1U3RhY2tTd2l0Y2hFeGNlcHRpb25MaXN0DQo+ID4gPiA+ICsgIGdVZWZpQ3B1UGtn VG9rZW5TcGFjZUd1aWQuUGNkQ3B1S25vd25Hb29kU3RhY2tTaXplDQo+ID4gPiA+ICsNCj4gPiA+ ID4gIFtQYWNrYWdlc10NCj4gPiA+ID4gICAgTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+ID4gICAg TWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4g PiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0 aW9uLmMNCj4gPiA+ID4gaW5kZXggMzFmZWJlYzk3Ni4uYzBiMmM2MTVhYSAxMDA2NDQNCj4gPiA+ ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhj ZXB0aW9uLmMNCj4gPiA+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiA+ID4gQEAgLTI1LDYgKzI1LDEwIEBAIFVJTlRO DQo+ID4gbUVuYWJsZWRJbnRlcnJ1cHROdW0gPQ0KPiA+ID4gPiAwOw0KPiA+ID4gPg0KPiA+ID4g PiAgRVhDRVBUSU9OX0hBTkRMRVJfREFUQSAgICAgIG1FeGNlcHRpb25IYW5kbGVyRGF0YTsNCj4g PiA+ID4NCj4gPiA+ID4gK1VJTlQ4DQo+ID4gPiA+IG1OZXdTdGFja1tDUFVfU1RBQ0tfU1dJVENI X0VYQ0VQVElPTl9OVU1CRVIgKg0KPiA+ID4gPiArDQo+ID4gQ1BVX0tOT1dOX0dPT0RfU1RBQ0tf U0laRV0NCj4gPiA+ID4gPSB7MH07DQo+ID4gPiA+ICtVSU5UOCAgICAgICAgICAgICAgICAgICAg ICAgbU5ld0dkdFtDUFVfVFNTX0dEVF9TSVpFXSA9IHswfTsNCj4gPiA+ID4gKw0KPiA+ID4gPiAg LyoqDQo+ID4gPiA+ICAgIENvbW1vbiBleGNlcHRpb24gaGFuZGxlci4NCj4gPiA+ID4NCj4gPiA+ ID4gQEAgLTYzLDEwICs2NywzNCBAQCBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMgKA0K PiA+ID4gPiAgICBJTiBFRklfVkVDVE9SX0hBTkRPRkZfSU5GTyAgICAgICAqVmVjdG9ySW5mbyBP UFRJT05BTA0KPiA+ID4gPiAgICApDQo+ID4gPiA+ICB7DQo+ID4gPiA+ICsgIEVGSV9TVEFUVVMg ICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4gPiA+ICsgIEVYQ0VQVElPTl9TVEFD S19TV0lUQ0hfREFUQSAgICAgICBTdGFja1N3aXRjaERhdGE7DQo+ID4gPiA+ICsgIElBMzJfREVT Q1JJUFRPUiAgICAgICAgICAgICAgICAgICBJZHRyOw0KPiA+ID4gPiArICBJQTMyX0RFU0NSSVBU T1IgICAgICAgICAgICAgICAgICAgR2R0cjsNCj4gPiA+ID4gKw0KPiA+ID4gPiAgICBtRXhjZXB0 aW9uSGFuZGxlckRhdGEuUmVzZXJ2ZWRWZWN0b3JzICAgICAgICAgID0NCj4gPiA+ID4gbVJlc2Vy dmVkVmVjdG9yc0RhdGE7DQo+ID4gPiA+ICAgIG1FeGNlcHRpb25IYW5kbGVyRGF0YS5FeHRlcm5h bEludGVycnVwdEhhbmRsZXIgPQ0KPiA+ID4gPiBtRXh0ZXJuYWxJbnRlcnJ1cHRIYW5kbGVyVGFi bGU7DQo+ID4gPiA+ICAgIEluaXRpYWxpemVTcGluTG9jayAoJm1FeGNlcHRpb25IYW5kbGVyRGF0 YS5EaXNwbGF5TWVzc2FnZVNwaW5Mb2NrKTsNCj4gPiA+ID4gLSAgcmV0dXJuIEluaXRpYWxpemVD cHVFeGNlcHRpb25IYW5kbGVyc1dvcmtlciAoVmVjdG9ySW5mbywNCj4gPiA+ID4gJm1FeGNlcHRp b25IYW5kbGVyRGF0YSk7DQo+ID4gPiA+ICsgIFN0YXR1cyA9IEluaXRpYWxpemVDcHVFeGNlcHRp b25IYW5kbGVyc1dvcmtlciAoVmVjdG9ySW5mbywNCj4gPiA+ID4gJm1FeGNlcHRpb25IYW5kbGVy RGF0YSk7DQo+ID4gPiA+ICsgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpICYmIFBjZEdldEJvb2wg KFBjZENwdVN0YWNrR3VhcmQpKSB7DQo+ID4gPiA+ICsgICAgQXNtUmVhZElkdHIgKCZJZHRyKTsN Cj4gPiA+ID4gKyAgICBBc21SZWFkR2R0ciAoJkdkdHIpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsg ICAgU3RhY2tTd2l0Y2hEYXRhLlN0YWNrVG9wID0gKFVJTlROKW1OZXdTdGFjazsNCj4gPiA+ID4g KyAgICBTdGFja1N3aXRjaERhdGEuU3RhY2tTaXplID0gQ1BVX0tOT1dOX0dPT0RfU1RBQ0tfU0la RTsNCj4gPiA+ID4gKyAgICBTdGFja1N3aXRjaERhdGEuRXhjZXB0aW9ucyA9IENQVV9TVEFDS19T V0lUQ0hfRVhDRVBUSU9OX0xJU1Q7DQo+ID4gPiA+ICsgICAgU3RhY2tTd2l0Y2hEYXRhLkV4Y2Vw dGlvbk51bWJlciA9DQo+ID4gPiA+IENQVV9TVEFDS19TV0lUQ0hfRVhDRVBUSU9OX05VTUJFUjsN Cj4gPiA+ID4gKyAgICBTdGFja1N3aXRjaERhdGEuSWR0VGFibGUgPSAoSUEzMl9JRFRfR0FURV9E RVNDUklQVE9SICopSWR0ci5CYXNlOw0KPiA+ID4gPiArICAgIFN0YWNrU3dpdGNoRGF0YS5HZHRU YWJsZSA9IChJQTMyX1NFR01FTlRfREVTQ1JJUFRPUg0KPiA+ICopbU5ld0dkdDsNCj4gPiA+ID4g KyAgICBTdGFja1N3aXRjaERhdGEuR2R0U2l6ZSA9IHNpemVvZiAobU5ld0dkdCk7DQo+ID4gPiA+ ICsgICAgU3RhY2tTd2l0Y2hEYXRhLlRzc0Rlc2MgPSAoSUEzMl9UU1NfREVTQ1JJUFRPUiAqKSht TmV3R2R0ICsNCj4gPiA+ID4gR2R0ci5MaW1pdCArIDEpOw0KPiA+ID4gPiArICAgIFN0YWNrU3dp dGNoRGF0YS5Uc3MgPSAoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgKikobU5ld0dkdCArDQo+ID4g PiA+IEdkdHIuTGltaXQgKyAxICsNCj4gPiA+ID4gKw0KPiA+ID4gPiBDUFVfVFNTX0RFU0NfU0la RSk7DQo+ID4gPiA+ICsgICAgU3RhdHVzID0gSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvblN0YWNrU3dp dGNoSGFuZGxlcnMgKA0KPiA+ID4gPiArICAgICAgICAgICAgICAgJlN0YWNrU3dpdGNoRGF0YQ0K PiA+ID4gPiArICAgICAgICAgICAgICAgKTsNCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArICByZXR1 cm4gU3RhdHVzOw0KPiA+ID4gPiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+IEBA IC0xOTcsMyArMjI1LDI2IEBAIFJlZ2lzdGVyQ3B1SW50ZXJydXB0SGFuZGxlciAoDQo+ID4gPiA+ ICB7DQo+ID4gPiA+ICAgIHJldHVybiBSZWdpc3RlckNwdUludGVycnVwdEhhbmRsZXJXb3JrZXIg KEludGVycnVwdFR5cGUsDQo+ID4gSW50ZXJydXB0SGFuZGxlciwNCj4gPiA+ID4gJm1FeGNlcHRp b25IYW5kbGVyRGF0YSk7DQo+ID4gPiA+ICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKy8qKg0KPiA+ ID4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3IgZ2l2ZW4gZXhjZXB0aW9ucy4gVGhpcyBp cyByZXF1aXJlZCBieQ0KPiA+ID4gPiArICBQY2RDcHVTdGFja0d1YXJkIGZlYXR1cmUuDQo+ID4g PiA+ICsNCj4gPiA+ID4gKyAgTm90ZTogRm9yIElBMzIgcHJvY2Vzc29yLCBTdGFja1N3aXRjaERh dGEgaXMgYSByZXF1aXJlZCBwYXJhbWV0ZXIuDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgQHBhcmFt W2luXSBTdGFja1N3aXRjaERhdGEgICAgICBQb2ludGVyIHRvIGRhdGEgcmVxdWlyZWQgZm9yIHNl dHVwaW5nDQo+ID4gdXANCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGFjayBzd2l0Y2guDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VT UyAgICAgICAgICAgICBUaGUgZXhjZXB0aW9ucyBoYXZlIGJlZW4NCj4gPiBzdWNjZXNzZnVsbHkN Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplZC4N Cj4gPiA+ID4gKyAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgICBTdGFja1N3aXRjaERh dGEgY29udGFpbnMgaW52YWxpZA0KPiA+ID4gPiBjb250ZW50Lg0KPiA+ID4gPiArDQo+ID4gPiA+ ICsqKi8NCj4gPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+ID4gK0VGSUFQSQ0KPiA+ID4gPiArSW5p dGlhbGl6ZUNwdUV4Y2VwdGlvblN0YWNrU3dpdGNoSGFuZGxlcnMgKA0KPiA+ID4gPiArICBJTiBW T0lEICAgICAgICpTdGFja1N3aXRjaERhdGEgT1BUSU9OQUwNCj4gPiA+ID4gKyAgKQ0KPiA+ID4g PiArew0KPiA+ID4gPiArICByZXR1cm4gQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKFN0YWNrU3dp dGNoRGF0YSk7DQo+ID4gPiA+ICt9DQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gYS9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRp b25IYW5kbGVyLmMNCj4gPiA+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+ID4gaW5kZXggZjJj MzllYjE5My4uMGFhZjc5NDc5NSAxMDA2NDQNCj4gPiA+ID4gLS0tDQo+ID4gPg0KPiBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhh bmRsZXIuYw0KPiA+ID4gPiArKysNCj4gPiA+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1 RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+ID4g QEAgLTEwNyw2ICsxMDcsMTczIEBAIEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4dCAoDQo+ID4g PiA+ICAgIFN5c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dElhMzItPkV4Y2VwdGlvbkRhdGEgPQ0K PiA+ID4gPiBSZXNlcnZlZFZlY3RvcnNbRXhjZXB0aW9uVHlwZV0uRXhjZXB0aW9uRGF0YTsNCj4g PiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiArICBTZXR1cCBzZXBhcmF0 ZSBzdGFjayBmb3IgZ2l2ZW4gZXhjZXB0aW9ucy4NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBAcGFy YW1baW5dIFN0YWNrU3dpdGNoRGF0YSAgICAgICAgUG9pbnRlciB0byBkYXRhIHJlcXVpcmVkIGZv cg0KPiA+IHNldHVwaW5nDQo+ID4gPiA+IHVwDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdGFjayBzd2l0Y2guDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgICAgVGhlIGV4Y2VwdGlvbnMgaGF2ZSBiZWVuDQo+ID4gc3VjY2Vzc2Z1 bGx5DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6 ZWQuDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgU3RhY2tTd2l0 Y2hEYXRhIGNvbnRhaW5zIGludmFsaWQNCj4gPiA+ID4gY29udGVudC4NCj4gPiA+ID4gKw0KPiA+ ID4gPiArKiovDQo+ID4gPiA+ICtFRklfU1RBVFVTDQo+ID4gPiA+ICtFRklBUEkNCj4gPiA+ID4g K0FyY2hTZXR1cEV4Y3BldGlvblN0YWNrICgNCj4gPiA+ID4gKyAgSU4gRVhDRVBUSU9OX1NUQUNL X1NXSVRDSF9EQVRBICAgKlN0YWNrU3dpdGNoRGF0YQ0KPiA+ID4gPiArICApDQo+ID4gPiA+ICt7 DQo+ID4gPiA+ICsgIElBMzJfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICBHZHRyOw0KPiA+ ID4gPiArICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgICAgICAgICAgSWR0cjsNCj4gPiA+ID4g KyAgSUEzMl9JRFRfR0FURV9ERVNDUklQVE9SICAgICAgICAgICpJZHRUYWJsZTsNCj4gPiA+ID4g KyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAgICAgICAgICpUc3NEZXNjOw0KPiA+ID4gPiAr ICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICAgICAgICAgKlRzczsNCj4gPiA+ID4gKyAgVUlO VE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YWNrVG9wOw0KPiA+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQo+ID4gPiA+ICsgIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I7DQo+ID4gPiA+ICsgIFVJTlROICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUc3NCYXNlOw0KPiA+ID4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR2R0U2l6ZTsNCj4gPiA+ID4gKyAgRVhDRVBUSU9OX0hBTkRM RVJfVEVNUExBVEVfTUFQICAgIFRlbXBsYXRlTWFwOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIGlm IChTdGFja1N3aXRjaERhdGEgPT0gTlVMTCB8fA0KPiA+ID4gPiArICAgICAgU3RhY2tTd2l0Y2hE YXRhLT5TdGFja1RvcCA9PSAwIHx8DQo+ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPlN0 YWNrU2l6ZSA9PSAwIHx8DQo+ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPkV4Y2VwdGlv bnMgPT0gTlVMTCB8fA0KPiA+ID4gPiArICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5FeGNlcHRpb25O dW1iZXIgPT0gMCB8fA0KPiA+ID4gPiArICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSA9 PSBOVUxMIHx8DQo+ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPklkdFRhYmxlID09IE5V TEwgfHwNCj4gPiA+ID4gKyAgICAgIFN0YWNrU3dpdGNoRGF0YS0+VHNzRGVzYyA9PSBOVUxMIHx8 DQo+ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPlRzcyA9PSBOVUxMKSB7DQo+ID4gPiA+ ICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ID4gKyAgfQ0KPiA+ID4g PiArDQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2li bGUgZm9yIHRoYXQgdGhlIEdEVCB0YWJsZSwgbm8gbWF0dGVyIHRoZSBleGlzdGluZw0KPiA+ID4g PiArICAvLyBvbmUgb3IgbmV3bHkgYWxsb2NhdGVkLCBoYXMgZW5vdWdoIHNwYWNlIHRvIGhvbGQg ZGVzY3JpcHRvcnMgZm9yDQo+ID4gPiBleGNlcHRpb24NCj4gPiA+ID4gKyAgLy8gdGFzay1zdGF0 ZSBzZWdtZW50cy4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgaWYgKCgoVUlOVE4pU3RhY2tT d2l0Y2hEYXRhLT5HZHRUYWJsZSAmIChJQTMyX0dEVF9BTElHTk1FTlQgLQ0KPiAxKSkgIT0NCj4g PiAwKQ0KPiA+ID4gew0KPiA+ID4gPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7 DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBpZiAoKFVJTlROKVN0YWNrU3dp dGNoRGF0YS0+VHNzRGVzYyA8IChVSU5UTikoU3RhY2tTd2l0Y2hEYXRhLQ0KPiA+ID4gPkdkdFRh YmxlKSkNCj4gPiA+ID4gew0KPiA+ID4gPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVU RVI7DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBpZiAoKFVJTlROKVN0YWNr U3dpdGNoRGF0YS0+VHNzRGVzYyA+PQ0KPiA+ID4gPiArICAgICAgICAgICgoVUlOVE4pKFN0YWNr U3dpdGNoRGF0YS0+R2R0VGFibGUpICsNCj4gPiBTdGFja1N3aXRjaERhdGEtPkdkdFNpemUpKQ0K PiA+ID4gPiB7DQo+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4g PiA+ID4gKyAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEdkdFNpemUgPSAoVUlOVE4pU3RhY2tT d2l0Y2hEYXRhLT5Uc3NEZXNjIC0NCj4gPiA+ID4gKyAgICAgICAgICAgIChVSU5UTikoU3RhY2tT d2l0Y2hEYXRhLT5HZHRUYWJsZSkgKw0KPiA+ID4gPiArICAgICAgICAgICAgc2l6ZW9mIChJQTMy X1RTU19ERVNDUklQVE9SKSAqDQo+ID4gPiA+ICsgICAgICAgICAgICAoU3RhY2tTd2l0Y2hEYXRh LT5FeGNlcHRpb25OdW1iZXIgKyAxKTsNCj4gPiA+ID4gKyAgaWYgKEdkdFNpemUgPiBTdGFja1N3 aXRjaERhdGEtPkdkdFNpemUpIHsNCj4gPiA+ID4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFS QU1FVEVSOw0KPiA+ID4gPiArICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4g KyAgLy8gSW5pdGlhbGl6ZSBuZXcgR0RUIHRhYmxlIGFuZC9vciBJRFQgdGFibGUsIGlmIGFueQ0K PiA+ID4gPiArICAvLw0KPiA+ID4gPiArICBBc21SZWFkSWR0ciAoJklkdHIpOw0KPiA+ID4gPiAr ICBBc21SZWFkR2R0ciAoJkdkdHIpOw0KPiA+ID4gPiArICBpZiAoKFVJTlROKVN0YWNrU3dpdGNo RGF0YS0+R2R0VGFibGUgIT0gR2R0ci5CYXNlKSB7DQo+ID4gPiA+ICsgICAgQ29weU1lbSAoU3Rh Y2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSwgKFZPSUQgKilHZHRyLkJhc2UsIEdkdHIuTGltaXQgKw0K PiA+IDEpOw0KPiA+ID4gPiArICAgIEdkdHIuQmFzZSA9IChVSU5UTilTdGFja1N3aXRjaERhdGEt PkdkdFRhYmxlOw0KPiA+ID4gPiArICAgIEdkdHIuTGltaXQgPSAoVUlOVDE2KVN0YWNrU3dpdGNo RGF0YS0+R2R0U2l6ZSAtIDE7DQo+ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBp ZiAoKFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+SWR0VGFibGUgIT0gSWR0ci5CYXNlKSB7DQo+ID4g PiA+ICsgICAgSWR0ci5CYXNlID0gKFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+SWR0VGFibGU7DQo+ ID4gPiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBGaXh1 cCBjdXJyZW50IHRhc2sgZGVzY3JpcHRvci4gVGFzay1zdGF0ZSBzZWdtZW50IGZvciBjdXJyZW50 IHRhc2sgd2lsbA0KPiA+ID4gPiArICAvLyBiZSBmaWxsZWQgYnkgcHJvY2Vzc29yIGR1cmluZyB0 YXNrIHN3aXRjaGluZy4NCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgVHNzRGVzYyA9IFN0YWNr U3dpdGNoRGF0YS0+VHNzRGVzYzsNCj4gPiA+ID4gKyAgVHNzICAgICA9IFN0YWNrU3dpdGNoRGF0 YS0+VHNzOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIFRzc0Jhc2UgPSAoVUlOVE4pVHNzOw0KPiA+ ID4gPiArICBUc3NEZXNjLT5CaXRzLkxpbWl0TG93ICAgPSBzaXplb2YoSUEzMl9UQVNLX1NUQVRF X1NFR01FTlQpIC0gMTsNCj4gPiA+ID4gKyAgVHNzRGVzYy0+Qml0cy5CYXNlTG93ICAgID0gKFVJ TlQxNilUc3NCYXNlOw0KPiA+ID4gPiArICBUc3NEZXNjLT5CaXRzLkJhc2VNaWQgICAgPSAoVUlO VDgpKFRzc0Jhc2UgPj4gMTYpOw0KPiA+ID4gPiArICBUc3NEZXNjLT5CaXRzLlR5cGUgICAgICAg PSBJQTMyX0dEVF9UWVBFX1RTUzsNCj4gPiA+ID4gKyAgVHNzRGVzYy0+Qml0cy5QICAgICAgICAg ID0gMTsNCj4gPiA+ID4gKyAgVHNzRGVzYy0+Qml0cy5MaW1pdEhpZ2ggID0gMDsNCj4gPiA+ID4g KyAgVHNzRGVzYy0+Qml0cy5CYXNlSGlnaCAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4g PiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBGaXh1cCBleGNlcHRpb24gdGFz ayBkZXNjcmlwdG9yIGFuZCB0YXNrLXN0YXRlIHNlZ21lbnQNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ ID4gKyAgQXNtR2V0VHNzVGVtcGxhdGVNYXAgKCZUZW1wbGF0ZU1hcCk7DQo+ID4gPiA+ICsgIFN0 YWNrVG9wID0gU3RhY2tTd2l0Y2hEYXRhLT5TdGFja1RvcCAtIENQVV9TVEFDS19BTElHTk1FTlQ7 DQo+ID4gPiA+ICsgIFN0YWNrVG9wID0gKFVJTlROKUFMSUdOX1BPSU5URVIgKFN0YWNrVG9wLA0K PiA+IENQVV9TVEFDS19BTElHTk1FTlQpOw0KPiA+ID4gPiArICBJZHRUYWJsZSA9IFN0YWNrU3dp dGNoRGF0YS0+SWR0VGFibGU7DQo+ID4gPiA+ICsgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IFN0 YWNrU3dpdGNoRGF0YS0+RXhjZXB0aW9uTnVtYmVyOyArK0luZGV4KSB7DQo+ID4gPiA+ICsgICAg VHNzRGVzYyArPSAxOw0KPiA+ID4gPiArICAgIFRzcyAgICAgKz0gMTsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3INCj4gPiA+ ID4gKyAgICAvLw0KPiA+ID4gPiArICAgIFRzc0Jhc2UgPSAoVUlOVE4pVHNzOw0KPiA+ID4gPiAr DQo+ID4gPiA+ICsgICAgVHNzRGVzYy0+Qml0cy5MaW1pdExvdyAgPSBzaXplb2YoSUEzMl9UQVNL X1NUQVRFX1NFR01FTlQpIC0gMTsNCj4gPiA+ID4gKyAgICBUc3NEZXNjLT5CaXRzLkJhc2VMb3cg ICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiA+ID4gKyAgICBUc3NEZXNjLT5CaXRzLkJhc2VNaWQg ICA9IChVSU5UOCkoVHNzQmFzZSA+PiAxNik7DQo+ID4gPiA+ICsgICAgVHNzRGVzYy0+Qml0cy5U eXBlICAgICAgPSBJQTMyX0dEVF9UWVBFX1RTUzsNCj4gPiA+ID4gKyAgICBUc3NEZXNjLT5CaXRz LlAgICAgICAgICA9IDE7DQo+ID4gPiA+ICsgICAgVHNzRGVzYy0+Qml0cy5MaW1pdEhpZ2ggPSAw Ow0KPiA+ID4gPiArICAgIFRzc0Rlc2MtPkJpdHMuQmFzZUhpZ2ggID0gKFVJTlQ4KShUc3NCYXNl ID4+IDI0KTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gRml4 dXAgVFNTDQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICBWZWN0b3IgPSBTdGFja1N3aXRj aERhdGEtPkV4Y2VwdGlvbnNbSW5kZXhdOw0KPiA+ID4gPiArICAgIFRzcy0+RUlQICAgID0gKFVJ TlQzMikoVGVtcGxhdGVNYXAuRXhjZXB0aW9uU3RhcnQNCj4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICsgVmVjdG9yICoNCj4gPiA+ID4gVGVtcGxhdGVNYXAuRXhjZXB0aW9uU3R1 YkhlYWRlclNpemUpOw0KPiA+ID4gPiArICAgIFRzcy0+RUZMQUdTID0gMHgyOw0KPiA+ID4gPiAr ICAgIFRzcy0+RVNQICAgID0gU3RhY2tUb3A7DQo+ID4gPiA+ICsgICAgVHNzLT5DUjMgICAgPSBB c21SZWFkQ3IzICgpOw0KPiA+ID4gPiArICAgIFRzcy0+RVMgICAgID0gQXNtUmVhZEVzICgpOw0K PiA+ID4gPiArICAgIFRzcy0+Q1MgICAgID0gQXNtUmVhZENzICgpOw0KPiA+ID4gPiArICAgIFRz cy0+U1MgICAgID0gQXNtUmVhZFNzICgpOw0KPiA+ID4gPiArICAgIFRzcy0+RFMgICAgID0gQXNt UmVhZERzICgpOw0KPiA+ID4gPiArICAgIFRzcy0+RlMgICAgID0gQXNtUmVhZEZzICgpOw0KPiA+ ID4gPiArICAgIFRzcy0+R1MgICAgID0gQXNtUmVhZEdzICgpOw0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICAgU3RhY2tUb3AgICAtPSBTdGFja1N3aXRjaERhdGEtPlN0YWNrU2l6ZTsNCj4gPiA+ID4g Kw0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gVXBkYXRlIElEVCB0byB1c2UgVGFz ayBHYXRlIGZvciBnaXZlbiBleGNlcHRpb24NCj4gPiA+ID4gKyAgICAvLw0KPiA+ID4gPiArICAg IElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRMb3cgID0gMDsNCj4gPiA+ID4gKyAgICBJZHRU YWJsZVtWZWN0b3JdLkJpdHMuU2VsZWN0b3IgICA9IChVSU5UMTYpKChVSU5UTilUc3NEZXNjIC0N Cj4gPiBHZHRyLkJhc2UpOw0KPiA+ID4gPiArICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5SZXNl cnZlZF8wID0gMDsNCj4gPiA+ID4gKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuR2F0ZVR5cGUg ICA9IElBMzJfSURUX0dBVEVfVFlQRV9UQVNLOw0KPiA+ID4gPiArICAgIElkdFRhYmxlW1ZlY3Rv cl0uQml0cy5PZmZzZXRIaWdoID0gMDsNCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgIC8vDQo+ID4gPiA+ICsgIC8vIFB1Ymxpc2ggR0RUDQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ ICsgIEFzbVdyaXRlR2R0ciAoJkdkdHIpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIC8vDQo+ID4g PiA+ICsgIC8vIExvYWQgY3VycmVudCB0YXNrDQo+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ICsgIEFz bVdyaXRlVHIgKChVSU5UMTYpKChVSU5UTilTdGFja1N3aXRjaERhdGEtPlRzc0Rlc2MgLSBHZHRy LkJhc2UpKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBQdWJsaXNo IElEVA0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICBBc21Xcml0ZUlkdHIgKCZJZHRyKTsNCj4g PiA+ID4gKw0KPiA+ID4gPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPiA+ICt9DQo+ID4g PiA+ICsNCj4gPiA+ID4gIC8qKg0KPiA+ID4gPiAgICBEaXNwbGF5IHByb2Nlc3NvciBjb250ZXh0 Lg0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4g PiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNo SW50ZXJydXB0RGVmcy5oDQo+ID4gPiA+IGluZGV4IGE4ZDM1NTZhODAuLmQ5ZGVkNTk3N2YgMTAw NjQ0DQo+ID4gPiA+IC0tLQ0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4gPiArKysNCj4gPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEludGVycnVwdERl ZnMuaA0KPiA+ID4gPiBAQCAtNDEsNCArNDEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4g PiAgICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09LQUZURVJfU1RVQl9T SVpFXTsNCj4gPiA+ID4gIH0gUkVTRVJWRURfVkVDVE9SU19EQVRBOw0KPiA+ID4gPg0KPiA+ID4g PiArI2RlZmluZSBDUFVfVFNTX0RFU0NfU0laRSBcDQo+ID4gPiA+ICsgIChzaXplb2YgKElBMzJf VFNTX0RFU0NSSVBUT1IpICogXA0KPiA+ID4gPiArICAgKFBjZEdldFNpemUgKFBjZENwdVN0YWNr U3dpdGNoRXhjZXB0aW9uTGlzdCkgKyAxKSkNCj4gPiA+ID4gKw0KPiA+ID4gPiArI2RlZmluZSBD UFVfVFNTX1NJWkUgXA0KPiA+ID4gPiArICAoc2l6ZW9mIChJQTMyX1RBU0tfU1RBVEVfU0VHTUVO VCkgKiBcDQo+ID4gPiA+ICsgICAoUGNkR2V0U2l6ZSAoUGNkQ3B1U3RhY2tTd2l0Y2hFeGNlcHRp b25MaXN0KSArIDEpKQ0KPiA+ID4gPiArDQo+ID4gPiA+ICAjZW5kaWYNCj4gPiA+ID4gZGlmZiAt LWdpdA0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzDQo+ID4gPiA+IG0N Cj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hcw0KPiA+ID4gPiBtDQo+ID4g PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+IGluZGV4IDAwMDAwMDAwMDAuLjYyYmNl ZGVhMWENCj4gPiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiArKysNCj4gPiA+ID4NCj4gPiA+ DQo+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMy L0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hcw0KPiA+ID4gPiBtDQo+ID4gPiA+IEBAIC0wLDAgKzEs Mzk4IEBADQo+ID4gPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIDsNCj4gPiA+ID4gKzsgQ29w eXJpZ2h0IChjKSAyMDE3LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ID4gPiA+ICs7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlh bHMNCj4gPiA+ID4gKzsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRA0KPiA+ID4gPiBMaWNlbnNlDQo+ID4g PiA+ICs7IHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4 dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gPiA+IGZvdW5kDQo+ID4gPiA+IGF0DQo+ID4gPiA+ ICs7IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+ID4g PiA+ICs7DQo+ID4gPiA+ICs7IFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBC U0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+ID4gPiBCQVNJUywNCj4gPiA+ID4gKzsgV0lUSE9V VCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+ID4g PiBFWFBSRVNTDQo+ID4gPiA+IE9SIElNUExJRUQuDQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7IE1v ZHVsZSBOYW1lOg0KPiA+ID4gPiArOw0KPiA+ID4gPiArOyAgIEV4Y2VwdGlvblRzc0VudHJ5QXNt LkFzbQ0KPiA+ID4gPiArOw0KPiA+ID4gPiArOyBBYnN0cmFjdDoNCj4gPiA+ID4gKzsNCj4gPiA+ ID4gKzsgICBJQTMyIENQVSBFeGNlcHRpb24gSGFuZGxlciB3aXRoIFNlcGFyYXRlIFN0YWNrDQo+ ID4gPiA+ICs7DQo+ID4gPiA+ICs7IE5vdGVzOg0KPiA+ID4gPiArOw0KPiA+ID4gPiArOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiArDQo+ID4gPiA+ICs7DQo+ID4gPiA+ICs7IElBMzIg VFNTIE1lbW9yeSBMYXlvdXQgRGVzY3JpcHRpb24NCj4gPiA+ID4gKzsNCj4gPiA+ID4gK3N0cnVj IElBMzJfVFNTDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ID4gKyAgLkVTUDA6ICAgIHJlc2QgMQ0K PiA+ID4gPiArICAuU1MwOiAgICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KPiA+ID4gPiArICAuRVNQMTogICAgcmVzZCAxDQo+ID4gPiA+ICsgIC5TUzE6ICAg ICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiA+ICsg IC5FU1AyOiAgICByZXNkIDENCj4gPiA+ID4gKyAgLlNTMjogICAgIHJlc3cgMQ0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ID4gKyAgLl9DUjM6ICAgIHJlc2QgMQ0K PiA+ID4gPiArICAuRUlQOiAgICAgcmVzZCAxDQo+ID4gPiA+ICsgIC5FRkxBR1M6ICByZXNkIDEN Cj4gPiA+ID4gKyAgLl9FQVg6ICAgIHJlc2QgMQ0KPiA+ID4gPiArICAuX0VDWDogICAgcmVzZCAx DQo+ID4gPiA+ICsgIC5fRURYOiAgICByZXNkIDENCj4gPiA+ID4gKyAgLl9FQlg6ICAgIHJlc2Qg MQ0KPiA+ID4gPiArICAuX0VTUDogICAgcmVzZCAxDQo+ID4gPiA+ICsgIC5fRUJQOiAgICByZXNk IDENCj4gPiA+ID4gKyAgLl9FU0k6ICAgIHJlc2QgMQ0KPiA+ID4gPiArICAuX0VESTogICAgcmVz ZCAxDQo+ID4gPiA+ICsgIC5fRVM6ICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgcmVzdyAxDQo+ID4gPiA+ICsgIC5fQ1M6ICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiA+ICsgIC5fU1M6ICAgICByZXN3IDENCj4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiA+ICsgIC5fRFM6ICAgICByZXN3 IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiA+ICsgIC5fRlM6 ICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gPiA+ ICsgIC5fR1M6ICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAx DQo+ID4gPiA+ICsgIC5MRFQ6ICAgICByZXN3IDENCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgcmVzdyAxDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiA+ID4gK2VuZHN0cnVjDQo+ID4gPiA+ICsN Cj4gPiA+ID4gKzsNCj4gPiA+ID4gKzsgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcigpDQo+ID4gPiA+ ICs7DQo+ID4gPiA+ICtleHRlcm4gQVNNX1BGWChDb21tb25FeGNlcHRpb25IYW5kbGVyKQ0KPiA+ ID4gPiArDQo+ID4gPiA+ICtTRUNUSU9OIC5kYXRhDQo+ID4gPiA+ICsNCj4gPiA+ID4gK1NFQ1RJ T04gLnRleHQNCj4gPiA+ID4gKw0KPiA+ID4gPiArQUxJR04gICA4DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKzsNCj4gPiA+ID4gKzsgRXhjZXB0aW9uIGhhbmRsZXIgc3R1YiB0YWJsZQ0KPiA+ID4gPiAr Ow0KPiA+ID4gPiArQXNtRXhjZXB0aW9uRW50cnlCZWdpbjoNCj4gPiA+ID4gKyVhc3NpZ24gVmVj dG9yIDANCj4gPiA+ID4gKyVyZXAgIDMyDQo+ID4gPiA+ICsNCj4gPiA+ID4gK0RvSXJldCVbVmVj dG9yXToNCj4gPiA+ID4gKyAgICBpcmV0ZA0KPiA+ID4gPiArQVNNX1BGWChFeGNlcHRpb25UYXNr U3d0aWNoRW50cnklW1ZlY3Rvcl0pOg0KPiA+ID4gPiArICAgIGRiICAgICAgMHg2YSAgICAgICAg OyBwdXNoICAjVmVjdG9yTnVtDQo+ID4gPiA+ICsgICAgZGIgICAgICAlW1ZlY3Rvcl0NCj4gPiA+ ID4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50cnlQb2ludCkN Cj4gPiA+ID4gKyAgICBjYWxsICAgIGVheA0KPiA+ID4gPiArICAgIG1vdiAgICAgZXNwLCBlYXgg ICAgOyBSZXN0b3JlIHN0YWNrIHRvcA0KPiA+ID4gPiArICAgIGptcCAgICAgRG9JcmV0JVtWZWN0 b3JdDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyVhc3NpZ24gVmVjdG9yIFZlY3RvcisxDQo+ID4gPiA+ ICslZW5kcmVwDQo+ID4gPiA+ICtBc21FeGNlcHRpb25FbnRyeUVuZDoNCj4gPiA+ID4gKw0KPiA+ ID4gPiArOw0KPiA+ID4gPiArOyBDb21tb24gcGFydCBvZiBleGNlcHRpb24gaGFuZGxlcg0KPiA+ ID4gPiArOw0KPiA+ID4gPiArZ2xvYmFsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9p bnQpDQo+ID4gPiA+ICtBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KToNCj4gPiA+ ID4gKyAgICA7DQo+ID4gPiA+ICsgICAgOyBTdGFjazoNCj4gPiA+ID4gKyAgICA7ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgLSA4DQo+ID4gPiA+ICsgICAgOyArICAgICAgIFRTUyBC YXNlICAgICAgKw0KPiA+ID4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVC UCAtIDQNCj4gPiA+ID4gKyAgICA7ICsgICAgICBDUFVJRC5FRFggICAgICArDQo+ID4gPiA+ICsg ICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQDQo+ID4gPiA+ICsgICAgOyArICAg ICAgICAgRUlQICAgICAgICAgKw0KPiA+ID4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSsgPC0tIEVCUCArIDQNCj4gPiA+ID4gKyAgICA7ICsgICAgVmVjdG9yIE51bWJlciAgICArDQo+ ID4gPiA+ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQICsgOA0KPiA+ID4g PiArICAgIDsgKyAgICBFcnJvciBDb2RlICAgICAgICsNCj4gPiA+ID4gKyAgICA7ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ID4gPiA+ICsgICAgOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAg bW92ICAgICBlYnAsIGVzcCAgICAgICAgICAgICAgICAgICAgOyBTdGFjayBmcmFtZQ0KPiA+ID4g PiArDQo+ID4gPiA+ICs7IFVzZSBDUFVJRCB0byBkZXRlcm1pbmUgaWYgRlhTQVZFL0ZYUkVTVE9S IGFuZCBERSBhcmUgc3VwcG9ydGVkDQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIDENCj4gPiA+ ID4gKyAgICBjcHVpZA0KPiA+ID4gPiArICAgIHB1c2ggICAgZWR4DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKzsgR2V0IFRTUyBiYXNlIG9mIGludGVycnVwdGVkIHRhc2sgdGhyb3VnaCBQcmV2aW91c1Rh c2tMaW5rIGZpZWxkIGluDQo+ID4gPiA+ICs7IGN1cnJlbnQgVFNTIGJhc2UNCj4gPiA+ID4gKyAg ICBzdWIgICAgIGVzcCwgOA0KPiA+ID4gPiArICAgIHNnZHQgICAgW2VzcCArIDJdDQo+ID4gPiA+ ICsgICAgbW92ICAgICBlYXgsIFtlc3AgKyA0XSAgICAgICAgICAgICAgOyBHRFQgYmFzZQ0KPiA+ ID4gPiArICAgIGFkZCAgICAgZXNwLCA4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICB4b3IgICAg IGVieCwgZWJ4DQo+ID4gPiA+ICsgICAgc3RyICAgICBieCAgICAgICAgICAgICAgICAgICAgICAg ICAgOyBDdXJyZW50IFRSDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVjeCwgW2Vh eCArIGVieCArIDJdDQo+ID4gPiA+ICsgICAgc2hsICAgICBlY3gsIDgNCj4gPiA+ID4gKyAgICBt b3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsgN10NCj4gPiA+ID4gKyAgICByb3IgICAgIGVjeCwgOCAg ICAgICAgICAgICAgICAgICAgICA7IGVjeCA9IEN1cnJlbnQgVFNTIGJhc2UNCj4gPiA+ID4gKyAg ICBwdXNoICAgIGVjeCAgICAgICAgICAgICAgICAgICAgICAgICA7IGtlZXAgaXQgaW4gc3RhY2sg Zm9yIGxhdGVyIHVzZQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgbW92enggICBlYngsIHdvcmQg W2VjeF0gICAgICAgICAgICAgOyBQcmV2aW91cyBUYXNrIExpbmsNCj4gPiA+ID4gKyAgICBtb3Yg ICAgIGVjeCwgW2VheCArIGVieCArIDJdDQo+ID4gPiA+ICsgICAgc2hsICAgICBlY3gsIDgNCj4g PiA+ID4gKyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsgN10NCj4gPiA+ID4gKyAgICByb3Ig ICAgIGVjeCwgOCAgICAgICAgICAgICAgICAgICAgICA7IGVjeCA9IFByZXZpb3VzIFRTUyBiYXNl DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzsNCj4gPiA+ID4gKzsgQWxpZ24gc3RhY2sgdG8gbWFrZSBz dXJlIHRoYXQgRUZJX0ZYX1NBVkVfU1RBVEVfSUEzMiBvZg0KPiA+ID4gPiBFRklfU1lTVEVNX0NP TlRFWFRfSUEzMg0KPiA+ID4gPiArOyBpcyAxNi1ieXRlIGFsaWduZWQNCj4gPiA+ID4gKzsNCj4g PiA+ID4gKyAgICBhbmQgICAgIGVzcCwgMHhmZmZmZmZmMA0KPiA+ID4gPiArICAgIHN1YiAgICAg ZXNwLCAxMg0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVz cCwgRWJ4LCBFZHgsIEVjeCwgRWF4Ow0KPiA+ID4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCAr IElBMzJfVFNTLl9FQVhdDQo+ID4gPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuX0VDWF0NCj4gPiA+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURY XQ0KPiA+ID4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQo+ID4g PiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0NCj4gPiA+ID4gKyAg ICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUJQXQ0KPiA+ID4gPiArICAgIHB1c2gg ICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQo+ID4gPiA+ICsgICAgcHVzaCAgICBkd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0VESV0NCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgVUlOVDMyICBH cywgRnMsIEVzLCBEcywgQ3MsIFNzOw0KPiA+ID4gPiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtl Y3ggKyBJQTMyX1RTUy5fU1NdDQo+ID4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ID4gKyAg ICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NTXQ0KPiA+ID4gPiArICAgIHB1 c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNT Ll9EU10NCj4gPiA+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ID4gPiArICAgIG1vdnp4ICAgZWF4 LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNdDQo+ID4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4g PiA+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0ZTXQ0KPiA+ID4g PiArICAgIHB1c2ggICAgZWF4DQo+ID4gPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCAr IElBMzJfVFNTLl9HU10NCj4gPiA+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ID4gPiArDQo+ID4g PiA+ICs7OyBVSU5UMzIgIEVpcDsNCj4gPiA+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5FSVBdDQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgR2R0clsyXSwgSWR0 clsyXTsNCj4gPiA+ID4gKyAgICBzdWIgICAgIGVzcCwgOA0KPiA+ID4gPiArICAgIHNpZHQgICAg W2VzcF0NCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgW2VzcCArIDJdDQo+ID4gPiA+ICsgICAg eGNoZyAgICBlYXgsIFtlc3BdDQo+ID4gPiA+ICsgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KPiA+ ID4gPiArICAgIG1vdiAgICAgW2VzcCs0XSwgZWF4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBz dWIgICAgIGVzcCwgOA0KPiA+ID4gPiArICAgIHNnZHQgICAgW2VzcF0NCj4gPiA+ID4gKyAgICBt b3YgICAgIGVheCwgW2VzcCArIDJdDQo+ID4gPiA+ICsgICAgeGNoZyAgICBlYXgsIFtlc3BdDQo+ ID4gPiA+ICsgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KPiA+ID4gPiArICAgIG1vdiAgICAgW2Vz cCs0XSwgZWF4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgTGR0ciwgVHI7DQo+ID4g PiA+ICsgICAgbW92ICAgICBlYXgsIGVieCAgICA7IGVieCBzdGlsbCBrZWVwcyBzZWxlY3RvciBv ZiBpbnRlcnJ1cHRlZCB0YXNrDQo+ID4gPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiA+ID4gKyAg ICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuTERUXQ0KPiA+ID4gPiArICAgIHB1 c2ggICAgZWF4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiA+ID4g PiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiA+ID4gKw0K PiA+ID4gPiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3IyLCBDcjMsIENyNDsNCj4gPiA+ID4gKyAg ICBtb3YgICAgIGVheCwgY3I0DQo+ID4gPiA+ICsgICAgcHVzaCAgICBlYXggICAgICAgICAgICAg OyBwdXNoIGNyNCBmaXJzdGx5DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVkeCwg W2VicCAtIDRdICA7IGNwdWlkLmVkeA0KPiA+ID4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQyNCAg ICAgIDsgVGVzdCBmb3IgRlhTQVZFL0ZYUkVTVE9SIHN1cHBvcnQNCj4gPiA+ID4gKyAgICBqeiAg ICAgIC4xDQo+ID4gPiA+ICsgICAgb3IgICAgICBlYXgsIEJJVDkgICAgICAgOyBTZXQgQ1I0Lk9T RlhTUg0KPiA+ID4gPiArLjE6DQo+ID4gPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDIgICAgICAg OyBUZXN0IGZvciBEZWJ1Z2dpbmcgRXh0ZW5zaW9ucyBzdXBwb3J0DQo+ID4gPiA+ICsgICAganog ICAgICAuMg0KPiA+ID4gPiArICAgIG9yICAgICAgZWF4LCBCSVQzICAgICAgIDsgU2V0IENSNC5E RQ0KPiA+ID4gPiArLjI6DQo+ID4gPiA+ICsgICAgbW92ICAgICBjcjQsIGVheA0KPiA+ID4gPiAr DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMw0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMg0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gPiA+ICsgICAgeG9yICAgICBlYXgsIGVheA0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMA0KPiA+ID4gPiArICAgIHB1c2ggICAgZWF4 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYs IERyNzsNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHI3DQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHI2DQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHIzDQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHIyDQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHIxDQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVheCwgZHIwDQo+ID4gPiA+ICsgICAgcHVzaCAg ICBlYXgNCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgRlhfU0FWRV9TVEFURV9JQTMyIEZ4U2F2ZVN0 YXRlOw0KPiA+ID4gPiArOzsgQ2xlYXIgVFMgYml0IGluIENSMCB0byBhdm9pZCBEZXZpY2UgTm90 IEF2YWlsYWJsZSBFeGNlcHRpb24gKCNOTSkNCj4gPiA+ID4gKzs7IHdoZW4gZXhlY3V0aW5nIGZ4 c2F2ZS9meHJzdG9yIGluc3RydWN0aW9uDQo+ID4gPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDI0 ICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0Lg0KPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgOyBlZHggc3RpbGwgY29udGFpbnMgcmVzdWx0IGZyb20gQ1BVSUQgYWJv dmUNCj4gPiA+ID4gKyAgICBqeiAgICAgIC4zDQo+ID4gPiA+ICsgICAgY2x0cw0KPiA+ID4gPiAr ICAgIHN1YiAgICAgZXNwLCA1MTINCj4gPiA+ID4gKyAgICBtb3YgICAgIGVkaSwgZXNwDQo+ID4g PiA+ICsgICAgZGIgICAgICAweGYsIDB4YWUsIDB4NyA7ZnhzYXZlIFtlZGldDQo+ID4gPiA+ICsu MzoNCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgVUlOVDMyICBFeGNlcHRpb25EYXRhOw0KPiA+ID4g PiArICAgIHB1c2ggICAgZHdvcmQgW2VicCArIDhdDQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVF RkkgY2FsbGluZyBjb252ZW50aW9uIGZvciBJQTMyIHJlcXVpcmVzIHRoYXQgRGlyZWN0aW9uIGZs YWcgaW4gRUZMQUdzIGlzDQo+ID4gPiBjbGVhcg0KPiA+ID4gPiArICAgIGNsZA0KPiA+ID4gPiAr DQo+ID4gPiA+ICs7OyBjYWxsIGludG8gZXhjZXB0aW9uIGhhbmRsZXINCj4gPiA+ID4gKyAgICBt b3YgICAgIGVzaSwgZWN4ICAgICAgICAgICAgOyBLZWVwIFRTUyBiYXNlIHRvIGF2b2lkIG92ZXJ3 cml0ZQ0KPiA+ID4gPiArICAgIG1vdiAgICAgZWF4LCBBU01fUEZYKENvbW1vbkV4Y2VwdGlvbkhh bmRsZXIpDQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFByZXBhcmUgcGFyYW1ldGVyIGFuZCBjYWxs DQo+ID4gPiA+ICsgICAgbW92ICAgICBlZHgsIGVzcA0KPiA+ID4gPiArICAgIHB1c2ggICAgZWR4 ICAgICAgICAgICAgICAgICA7IEVGSV9TWVNURU1fQ09OVEVYVA0KPiA+ID4gPiArICAgIHB1c2gg ICAgZHdvcmQgW2VicCArIDRdICAgICA7IEVGSV9FWENFUFRJT05fVFlQRSAodmVjdG9yIG51bWJl cikNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIDsNCj4gPiA+ID4gKyAgICA7IENhbGwgRXh0ZXJu YWwgRXhjZXB0aW9uIEhhbmRsZXINCj4gPiA+ID4gKyAgICA7DQo+ID4gPiA+ICsgICAgY2FsbCAg ICBlYXgNCj4gPiA+ID4gKyAgICBhZGQgICAgIGVzcCwgOCAgICAgICAgICAgICAgOyBSZXN0b3Jl IHN0YWNrIGJlZm9yZSBjYWxsaW5nDQo+ID4gPiA+ICsgICAgbW92ICAgICBlY3gsIGVzaSAgICAg ICAgICAgIDsgUmVzdG9yZSBUU1MgYmFzZQ0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5UMzIg IEV4Y2VwdGlvbkRhdGE7DQo+ID4gPiA+ICsgICAgYWRkICAgICBlc3AsIDQNCj4gPiA+ID4gKw0K PiA+ID4gPiArOzsgRlhfU0FWRV9TVEFURV9JQTMyIEZ4U2F2ZVN0YXRlOw0KPiA+ID4gPiArICAg IG1vdiAgICAgZWR4LCBbZWJwIC0gNF0gIDsgY3B1aWQuZWR4DQo+ID4gPiA+ICsgICAgdGVzdCAg ICBlZHgsIEJJVDI0ICAgICAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydA0KPiA+ ID4gPiArICAgIGp6ICAgICAgLjQNCj4gPiA+ID4gKyAgICBtb3YgICAgIGVzaSwgZXNwDQo+ID4g PiA+ICsgICAgZGIgICAgICAweGYsIDB4YWUsIDB4ZSAgOyBmeHJzdG9yIFtlc2ldDQo+ID4gPiA+ ICsuNDoNCj4gPiA+ID4gKyAgICBhZGQgICAgIGVzcCwgNTEyDQo+ID4gPiA+ICsNCj4gPiA+ID4g Kzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsNCj4gPiA+ID4gKzs7IFNr aXAgcmVzdG9yYXRpb24gb2YgRFJ4IHJlZ2lzdGVycyB0byBzdXBwb3J0IGRlYnVnZ2Vycw0KPiA+ ID4gPiArOzsgdGhhdCBzZXQgYnJlYWtwb2ludHMgaW4gaW50ZXJydXB0L2V4Y2VwdGlvbiBjb250 ZXh0DQo+ID4gPiA+ICsgICAgYWRkICAgICBlc3AsIDQgKiA2DQo+ID4gPiA+ICsNCj4gPiA+ID4g Kzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQo+ID4gPiA+ICsgICAgcG9wICAg ICBlYXgNCj4gPiA+ID4gKyAgICBtb3YgICAgIGNyMCwgZWF4DQo+ID4gPiA+ICsgICAgYWRkICAg ICBlc3AsIDQgICAgOyBub3QgZm9yIENyMQ0KPiA+ID4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4g PiA+ICsgICAgbW92ICAgICBjcjIsIGVheA0KPiA+ID4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4g PiA+ICsgICAgbW92ICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NSM10sIGVheA0KPiA+ID4g PiArICAgIHBvcCAgICAgZWF4DQo+ID4gPiA+ICsgICAgbW92ICAgICBjcjQsIGVheA0KPiA+ID4g PiArDQo+ID4gPiA+ICs7OyBVSU5UMzIgIEVGbGFnczsNCj4gPiA+ID4gKyAgICBwb3AgICAgIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gPiA+ICsgICAgbW92ICAgICBlYngsIGR3 b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gPiA+ICsgICAgYnRyICAgICBlYngsIDkg ICAgICA7IERvICdjbGknDQo+ID4gPiA+ICsgICAgbW92ICAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuRUZMQUdTXSwgZWJ4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgTGR0ciwgVHI7 DQo+ID4gPiA+ICs7OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQo+ID4gPiA+ICs7OyBCZXN0 IG5vdCBsZXQgYW55b25lIG1lc3Mgd2l0aCB0aGVzZSBwYXJ0aWN1bGFyIHJlZ2lzdGVycy4uLg0K PiA+ID4gPiArICAgIGFkZCAgICAgZXNwLCAyNA0KPiA+ID4gPiArDQo+ID4gPiA+ICs7OyBVSU5U MzIgIEVpcDsNCj4gPiA+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBd DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7IFVJTlQzMiAgR3MsIEZzLCBFcywgRHMsIENzLCBTczsN Cj4gPiA+ID4gKzs7IE5PVEUgLSBtb2RpZmllZCBzZWdtZW50IHJlZ2lzdGVycyBjb3VsZCBoYW5n IHRoZSBkZWJ1Z2dlci4uLiAgV2UNCj4gPiA+ID4gKzs7ICAgICAgICBjb3VsZCBhdHRlbXB0IHRv IGluc3VsYXRlIG91cnNlbHZlcyBhZ2FpbnN0IHRoaXMgcG9zc2liaWxpdHksDQo+ID4gPiA+ICs7 OyAgICAgICAgYnV0IHRoYXQgcG9zZXMgcmlza3MgYXMgd2VsbC4NCj4gPiA+ID4gKzs7DQo+ID4g PiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiA+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RT Uy5fR1NdLCBheA0KPiA+ID4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gPiA+ICtvMTYgbW92ICAg ICBbZWN4ICsgSUEzMl9UU1MuX0ZTXSwgYXgNCj4gPiA+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ ID4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9FU10sIGF4DQo+ID4gPiA+ICsgICAg cG9wICAgICBlYXgNCj4gPiA+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fRFNdLCBh eA0KPiA+ID4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gPiA+ICtvMTYgbW92ICAgICBbZWN4ICsg SUEzMl9UU1MuX0NTXSwgYXgNCj4gPiA+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ID4gPiArbzE2 IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9TU10sIGF4DQo+ID4gPiA+ICsNCj4gPiA+ID4gKzs7 IFVJTlQzMiAgRWRpLCBFc2ksIEVicCwgRXNwLCBFYngsIEVkeCwgRWN4LCBFYXg7DQo+ID4gPiA+ ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VESV0NCj4gPiA+ID4gKyAgICBw b3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNJXQ0KPiA+ID4gPiArICAgIGFkZCAgICAg ZXNwLCA0ICAgOyBub3QgZm9yIGVicA0KPiA+ID4gPiArICAgIGFkZCAgICAgZXNwLCA0ICAgOyBu b3QgZm9yIGVzcA0KPiA+ID4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9F QlhdDQo+ID4gPiA+ICsgICAgcG9wICAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VEWF0NCj4g PiA+ID4gKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRUNYXQ0KPiA+ID4gPiAr ICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQVhdDQo+ID4gPiA+ICsNCj4gPiA+ ID4gKzsgU2V0IHNpbmdsZSBzdGVwIERCIyB0byBhbGxvdyBkZWJ1Z2dlciB0byBhYmxlIHRvIGdv IGJhY2sgdG8gdGhlIEVJUA0KPiA+ID4gPiArOyB3aGVyZSB0aGUgZXhjZXB0aW9uIGlzIHRyaWdn ZXJlZC4NCj4gPiA+ID4gKw0KPiA+ID4gPiArOzsgQ3JlYXRlIHJldHVybiBjb250ZXh0IGZvciBp cmV0ZCBpbiBzdHViIGZ1bmN0aW9uDQo+ID4gPiA+ICsgICAgbW92ICAgIGVheCwgZHdvcmQgW2Vj eCArIElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNrDQo+ID4gcG9pbnRlcg0KPiA+ ID4gPiArICAgIG1vdiAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQo+ID4gPiA+ ICsgICAgbW92ICAgIFtlYXggLSAweGNdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVh dGUgRUlQIGluIG9sZA0KPiA+IHN0YWNrDQo+ID4gPiA+ICsgICAgbW92enggIGVieCwgd29yZCBb ZWN4ICsgSUEzMl9UU1MuX0NTXQ0KPiA+ID4gPiArICAgIG1vdiAgICBbZWF4IC0gMHg4XSwgZWJ4 ICAgICAgICAgICAgICAgICAgICAgIDsgY3JlYXRlIENTIGluIG9sZCBzdGFjaw0KPiA+ID4gPiAr ICAgIG1vdiAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gPiA+ICsg ICAgYnRzICAgIGVieCwgOA0KPiA+ID4gPiArICAgIG1vdiAgICBbZWF4IC0gMHg0XSwgZWJ4ICAg ICAgICAgICAgICAgICAgICAgIDsgY3JlYXRlIGVmbGFncyBpbiBvbGQNCj4gPiBzdGFjaw0KPiA+ ID4gPiArICAgIG1vdiAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXSwgZWJ4ICAgIDsg dXBkYXRlIGVmbGFncyBpbiBvbGQNCj4gPiBUU1MNCj4gPiA+ID4gKyAgICBtb3YgICAgZWF4LCBk d29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0gICAgICA7IEdldCBvbGQgc3RhY2sNCj4gPiBwb2lu dGVyDQo+ID4gPiA+ICsgICAgc3ViICAgIGVheCwgMHhjICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOyBtaW51cyAxMiBieXRlDQo+ID4gPiA+ICsgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fRVNQXSwgZWF4ICAgICAgOyBTZXQgbmV3IHN0YWNrDQo+ID4gcG9pbnRlcg0KPiA+ ID4gPiArDQo+ID4gPiA+ICs7OyBSZXBsYWNlIHRoZSBFSVAgb2YgaW50ZXJydXB0ZWQgdGFzayB3 aXRoIHN0dWIgZnVuY3Rpb24NCj4gPiA+ID4gKyAgICBtb3YgICAgZWF4LCBBU01fUEZYKFNpbmds ZVN0ZXBTdHViRnVuY3Rpb24pDQo+ID4gPiA+ICsgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5FSVBdLCBlYXgNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIG1vdiAgICAgZWN4LCBbZWJw IC0gOF0gICAgICAgICAgICAgICAgICAgICAgIDsgR2V0IGN1cnJlbnQgVFNTIGJhc2UNCj4gPiA+ ID4gKyAgICBtb3YgICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdICAgICA7IFJl dHVybiBjdXJyZW50IHN0YWNrDQo+ID4gdG9wDQo+ID4gPiA+ICsgICAgbW92ICAgICBlc3AsIGVi cA0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgcmV0DQo+ID4gPiA+ICsNCj4gPiA+ID4gK2dsb2Jh bCBBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rpb24pDQo+ID4gPiA+ICtBU01fUEZYKFNpbmds ZVN0ZXBTdHViRnVuY3Rpb24pOg0KPiA+ID4gPiArOw0KPiA+ID4gPiArOyB3ZSBuZWVkIGNsZWFu IFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZQ0KPiA+ID4gPiArOyB4ODcgRlBVL01NWC9TU0UvU1NF Mi9TU0UzL1NTU0UzL1NTRTQgaW5zdHJ1Y3Rpb25zLg0KPiA+ID4gPiArOw0KPiA+ID4gPiArICAg IGNsdHMNCj4gPiA+ID4gKyAgICBpcmV0ZA0KPiA+ID4gPiArDQo+ID4gPiA+ICtnbG9iYWwgQVNN X1BGWChBc21HZXRUc3NUZW1wbGF0ZU1hcCkNCj4gPiA+ID4gK0FTTV9QRlgoQXNtR2V0VHNzVGVt cGxhdGVNYXApOg0KPiA+ID4gPiArICAgIHB1c2ggICAgZWJwICAgICAgICAgICAgICAgICA7IEMg cHJvbG9nDQo+ID4gPiA+ICsgICAgbW92ICAgICBlYnAsIGVzcA0KPiA+ID4gPiArICAgIHB1c2hh ZA0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgbW92IGVieCwgZHdvcmQgW2VicCArIDB4OF0NCj4g PiA+ID4gKyAgICBtb3YgZHdvcmQgW2VieF0sICAgICAgIEFTTV9QRlgoRXhjZXB0aW9uVGFza1N3 dGljaEVudHJ5MCkNCj4gPiA+ID4gKyAgICBtb3YgZHdvcmQgW2VieCArIDB4NF0sIChBc21FeGNl cHRpb25FbnRyeUVuZCAtDQo+ID4gQXNtRXhjZXB0aW9uRW50cnlCZWdpbikNCj4gPiA+ID4gLyAz Mg0KPiA+ID4gPiArICAgIG1vdiBkd29yZCBbZWJ4ICsgMHg4XSwgMA0KPiA+ID4gPiArDQo+ID4g PiA+ICsgICAgcG9wYWQNCj4gPiA+ID4gKyAgICBwb3AgICAgIGVicA0KPiA+ID4gPiArICAgIHJl dA0KPiA+ID4gPiArDQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gPiBhL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJM aWIuaW5mDQo+ID4gPiA+DQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KPiA+ID4gPiBpbmRleCA3NTQ0 MzI4OGE5Li40YzBkNDM1MTM2IDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gPiBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhh bmRsZXJMaWIuaW5mDQo+ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiA+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYN Cj4gPiA+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiA+ID4gIFtTb3VyY2VzLklhMzJdDQo+ID4g PiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiA+ID4gICAgSWEzMi9FeGNl cHRpb25IYW5kbGVyQXNtLm5hc20NCj4gPiA+ID4gKyAgSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFz bS5uYXNtDQo+ID4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gPiA+ICAg IElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ID4gPiAgICBJYTMyL0FyY2hJbnRlcnJ1 cHREZWZzLmgNCj4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlv bkhhbmRsZXJMaWIuaQ0KPiA+ID4gPiBuZg0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhh bmRsZXJMaWIuaQ0KPiA+ID4gPiBuZg0KPiA+ID4gPiBpbmRleCBkNzBhOTljMTAwLi5lNWMwM2Mx NmM5IDEwMDY0NA0KPiA+ID4gPiAtLS0NCj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYS9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5k bGVyTGliLmkNCj4gPiA+ID4gbmYNCj4gPiA+ID4gKysrDQo+ID4gPiA+DQo+ID4gPg0KPiA+DQo+ IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi5pDQo+ID4gPiA+IG5mDQo+ID4gPiA+IEBAIC0zMCw2ICszMCw3IEBA DQo+ID4gPiA+ICBbU291cmNlcy5JYTMyXQ0KPiA+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRs ZXJBc20uYXNtDQo+ID4gPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4g PiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KPiA+ID4gPiAgICBJYTMyL0V4 Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ID4gPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVy LmMNCj4gPiA+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gPiA+IGRpZmYgLS1n aXQNCj4gPiA+ID4NCj4gPiA+DQo+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KPiA+ID4gPg0KPiA+ ID4NCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1Nt bUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQo+ID4gPiA+IGluZGV4IDYzNGZmY2IyMWQuLjU2 Yjg3NWI3YzggMTAwNjQ0DQo+ID4gPiA+IC0tLQ0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBhL1Vl ZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhh bmRsZXJMaWIuaW5mDQo+ID4gPiA+ICsrKw0KPiA+ID4gPg0KPiA+ID4NCj4gPg0KPiBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuaW5mDQo+ID4gPiA+IEBAIC0zMCw2ICszMCw3IEBADQo+ID4gPiA+ICBbU291cmNlcy5J YTMyXQ0KPiA+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gPiA+ICAg IElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQo+ID4gPiA+ICsgIElhMzIvRXhjZXB0aW9u VHNzRW50cnlBc20ubmFzbQ0KPiA+ID4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0K PiA+ID4gPiAgICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+ID4gICAgSWEzMi9B cmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4NCj4gYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhh bmRsZXIuYw0KPiA+ID4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gPiA+IGluZGV4IDY1ZjBjZmY2 ODAuLjIxNGFhZmNjMTMgMTAwNjQ0DQo+ID4gPiA+IC0tLQ0KPiA+ID4gYS9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0K PiA+ID4gPiArKysNCj4gPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiA+ID4gQEAgLTExMiw2ICsxMTIs MTM5IEBAIEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4dCAoDQo+ID4gPiA+ICAgIFN5c3RlbUNv bnRleHQuU3lzdGVtQ29udGV4dFg2NC0+RXhjZXB0aW9uRGF0YSA9DQo+ID4gPiA+IFJlc2VydmVk VmVjdG9yc1tFeGNlcHRpb25UeXBlXS5FeGNlcHRpb25EYXRhOw0KPiA+ID4gPiAgfQ0KPiA+ID4g Pg0KPiA+ID4gPiArLyoqDQo+ID4gPiA+ICsgIFNldHVwIHNlcGFyYXRlIHN0YWNrIGZvciBnaXZl biBleGNlcHRpb25zLg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEBwYXJhbVtpbl0gU3RhY2tTd2l0 Y2hEYXRhICAgICAgUG9pbnRlciB0byBkYXRhIHJlcXVpcmVkIGZvciBzZXR1cGluZw0KPiA+IHVw DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2sgc3dpdGNo Lg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg VGhlIGV4Y2VwdGlvbnMgaGF2ZSBiZWVuDQo+ID4gc3VjY2Vzc2Z1bGx5DQo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQuDQo+ID4gPiA+ICsgIEBy ZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICAgU3RhY2tTd2l0Y2hEYXRhIGNvbnRhaW5zIGlu dmFsaWQNCj4gPiA+ID4gY29udGVudC4NCj4gPiA+ID4gKw0KPiA+ID4gPiArKiovDQo+ID4gPiA+ ICtFRklfU1RBVFVTDQo+ID4gPiA+ICtFRklBUEkNCj4gPiA+ID4gK0FyY2hTZXR1cEV4Y3BldGlv blN0YWNrICgNCj4gPiA+ID4gKyAgSU4gRVhDRVBUSU9OX1NUQUNLX1NXSVRDSF9EQVRBICAgICAg ICAqU3RhY2tTd2l0Y2hEYXRhDQo+ID4gPiA+ICsgICkNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAg SUEzMl9ERVNDUklQVE9SICAgICAgICAgICAgICAgICAgIEdkdHI7DQo+ID4gPiA+ICsgIElBMzJf REVTQ1JJUFRPUiAgICAgICAgICAgICAgICAgICBJZHRyOw0KPiA+ID4gPiArICBJQTMyX0lEVF9H QVRFX0RFU0NSSVBUT1IgICAgICAgICAgKklkdFRhYmxlOw0KPiA+ID4gPiArICBJQTMyX1RTU19E RVNDUklQVE9SICAgICAgICAgICAgICAgKlRzc0Rlc2M7DQo+ID4gPiA+ICsgIElBMzJfVEFTS19T VEFURV9TRUdNRU5UICAgICAgICAgICAqVHNzOw0KPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RhY2tUb3A7DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRzc0Jhc2U7DQo+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHZHRTaXplOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIGlmIChTdGFja1N3aXRj aERhdGEgPT0gTlVMTCB8fA0KPiA+ID4gPiArICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5TdGFja1Rv cCA9PSAwIHx8DQo+ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPlN0YWNrU2l6ZSA9PSAw IHx8DQo+ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPkV4Y2VwdGlvbnMgPT0gTlVMTCB8 fA0KPiA+ID4gPiArICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5FeGNlcHRpb25OdW1iZXIgPT0gMCB8 fA0KPiA+ID4gPiArICAgICAgU3RhY2tTd2l0Y2hEYXRhLT5HZHRUYWJsZSA9PSBOVUxMIHx8DQo+ ID4gPiA+ICsgICAgICBTdGFja1N3aXRjaERhdGEtPklkdFRhYmxlID09IE5VTEwgfHwNCj4gPiA+ ID4gKyAgICAgIFN0YWNrU3dpdGNoRGF0YS0+VHNzRGVzYyA9PSBOVUxMIHx8DQo+ID4gPiA+ICsg ICAgICBTdGFja1N3aXRjaERhdGEtPlRzcyA9PSBOVUxMKSB7DQo+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ID4gKyAgfQ0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgIC8vDQo+ID4gPiA+ICsgIC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHRoYXQg dGhlIEdEVCB0YWJsZSwgbm8gbWF0dGVyIHRoZSBleGlzdGluZw0KPiA+ID4gPiArICAvLyBvbmUg b3IgbmV3bHkgYWxsb2NhdGVkLCBoYXMgZW5vdWdoIHNwYWNlIHRvIGhvbGQgZGVzY3JpcHRvcnMg Zm9yDQo+ID4gPiBleGNlcHRpb24NCj4gPiA+ID4gKyAgLy8gdGFzay1zdGF0ZSBzZWdtZW50cy4N Cj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgaWYgKCgoVUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5H ZHRUYWJsZSAmIChJQTMyX0dEVF9BTElHTk1FTlQgLQ0KPiAxKSkgIT0NCj4gPiAwKQ0KPiA+ID4g ew0KPiA+ID4gPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4gPiA+ICsg IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBpZiAoKFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+VHNz RGVzYyA8IChVSU5UTikoU3RhY2tTd2l0Y2hEYXRhLQ0KPiA+ID4gPkdkdFRhYmxlKSkNCj4gPiA+ ID4gew0KPiA+ID4gPiArICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4gPiA+ ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICBpZiAoKFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+ VHNzRGVzYyA+PQ0KPiA+ID4gPiArICAgICAgICAgICgoVUlOVE4pKFN0YWNrU3dpdGNoRGF0YS0+ R2R0VGFibGUpICsNCj4gPiBTdGFja1N3aXRjaERhdGEtPkdkdFNpemUpKQ0KPiA+ID4gPiB7DQo+ ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ID4gKyAgfQ0K PiA+ID4gPiArDQo+ID4gPiA+ICsgIEdkdFNpemUgPSAoVUlOVE4pU3RhY2tTd2l0Y2hEYXRhLT5U c3NEZXNjIC0NCj4gPiA+ID4gKyAgICAgICAgICAgIChVSU5UTikoU3RhY2tTd2l0Y2hEYXRhLT5H ZHRUYWJsZSkgKw0KPiA+ID4gPiArICAgICAgICAgICAgc2l6ZW9mIChJQTMyX1RTU19ERVNDUklQ VE9SKTsNCj4gPiA+ID4gKyAgaWYgKEdkdFNpemUgPiBTdGFja1N3aXRjaERhdGEtPkdkdFNpemUp IHsNCj4gPiA+ID4gKyAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ID4gPiAr ICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gKyAgLy8gSW5pdGlhbGl6ZSBu ZXcgR0RUIHRhYmxlIGFuZC9vciBJRFQgdGFibGUsIGlmIGFueQ0KPiA+ID4gPiArICAvLw0KPiA+ ID4gPiArICBBc21SZWFkSWR0ciAoJklkdHIpOw0KPiA+ID4gPiArICBBc21SZWFkR2R0ciAoJkdk dHIpOw0KPiA+ID4gPiArICBpZiAoKFVJTlROKVN0YWNrU3dpdGNoRGF0YS0+R2R0VGFibGUgIT0g R2R0ci5CYXNlKSB7DQo+ID4gPiA+ICsgICAgQ29weU1lbSAoU3RhY2tTd2l0Y2hEYXRhLT5HZHRU YWJsZSwgKFZPSUQgKilHZHRyLkJhc2UsIEdkdHIuTGltaXQgKw0KPiA+IDEpOw0KPiA+ID4gPiAr ICAgIEdkdHIuQmFzZSA9IChVSU5UTilTdGFja1N3aXRjaERhdGEtPkdkdFRhYmxlOw0KPiA+ID4g PiArICAgIEdkdHIuTGltaXQgPSAoVUlOVDE2KUdkdFNpemUgLSAxOw0KPiA+ID4gPiArICB9DQo+ ID4gPiA+ICsNCj4gPiA+ID4gKyAgaWYgKChVSU5UTilTdGFja1N3aXRjaERhdGEtPklkdFRhYmxl ICE9IElkdHIuQmFzZSkgew0KPiA+ID4gPiArICAgIElkdHIuQmFzZSA9IChVSU5UTilTdGFja1N3 aXRjaERhdGEtPklkdFRhYmxlOw0KPiA+ID4gPiArICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAg Ly8NCj4gPiA+ID4gKyAgLy8gRml4dXAgY3VycmVudCB0YXNrIGRlc2NyaXB0b3IuIFRhc2stc3Rh dGUgc2VnbWVudCBmb3IgY3VycmVudCB0YXNrIHdpbGwNCj4gPiA+ID4gKyAgLy8gYmUgZmlsbGVk IGJ5IHByb2Nlc3NvciBkdXJpbmcgdGFzayBzd2l0Y2hpbmcuDQo+ID4gPiA+ICsgIC8vDQo+ID4g PiA+ICsgIFRzc0Rlc2MgPSBTdGFja1N3aXRjaERhdGEtPlRzc0Rlc2M7DQo+ID4gPiA+ICsgIFRz cyAgICAgPSBTdGFja1N3aXRjaERhdGEtPlRzczsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBUc3NC YXNlID0gKFVJTlROKVRzczsNCj4gPiA+ID4gKyAgVHNzRGVzYy0+Qml0cy5MaW1pdExvdyAgID0g c2l6ZW9mKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQo+ID4gPiA+ICsgIFRzc0Rlc2Mt PkJpdHMuQmFzZUxvdyAgICA9IChVSU5UMTYpVHNzQmFzZTsNCj4gPiA+ID4gKyAgVHNzRGVzYy0+ Qml0cy5CYXNlTWlkbCAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsNCj4gPiA+ID4gKyAgVHNz RGVzYy0+Qml0cy5UeXBlICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQo+ID4gPiA+ICsgIFRz c0Rlc2MtPkJpdHMuUCAgICAgICAgICA9IDE7DQo+ID4gPiA+ICsgIFRzc0Rlc2MtPkJpdHMuTGlt aXRIaWdoICA9IDA7DQo+ID4gPiA+ICsgIFRzc0Rlc2MtPkJpdHMuQmFzZU1pZGggICA9IChVSU5U OCkoVHNzQmFzZSA+PiAyNCk7DQo+ID4gPiA+ICsgIFRzc0Rlc2MtPkJpdHMuQmFzZUhpZ2ggICA9 IChVSU5UMzIpKFRzc0Jhc2UgPj4gMzIpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIC8vDQo+ID4g PiA+ICsgIC8vIEZpeHVwIGV4Y2VwdGlvbiB0YXNrIGRlc2NyaXB0b3IgYW5kIHRhc2stc3RhdGUg c2VnbWVudA0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICBTdGFja1RvcCA9IFN0YWNrU3dpdGNo RGF0YS0+U3RhY2tUb3AgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0KPiA+ID4gPiArICBTdGFja1Rv cCA9IChVSU5UTilBTElHTl9QT0lOVEVSIChTdGFja1RvcCwNCj4gPiBDUFVfU1RBQ0tfQUxJR05N RU5UKTsNCj4gPiA+ID4gKyAgSWR0VGFibGUgPSBTdGFja1N3aXRjaERhdGEtPklkdFRhYmxlOw0K PiA+ID4gPiArICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBTdGFja1N3aXRjaERhdGEtPkV4Y2Vw dGlvbk51bWJlcjsgKytJbmRleCkgew0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8g Rml4dXAgSVNUDQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICBUc3MtPklTVFtJbmRleF0g PSBTdGFja1RvcDsNCj4gPiA+ID4gKyAgICBTdGFja1RvcCAtPSBTdGFja1N3aXRjaERhdGEtPlN0 YWNrU2l6ZTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gU2V0 IHRoZSBJU1QgZmllbGQgdG8gZW5hYmxlIGNvcnJlc3BvbmRpbmcgSVNUDQo+ID4gPiA+ICsgICAg Ly8NCj4gPiA+ID4gKyAgICBJZHRUYWJsZVtTdGFja1N3aXRjaERhdGEtPkV4Y2VwdGlvbnNbSW5k ZXhdXS5CaXRzLlJlc2VydmVkXzAgPQ0KPiA+ID4gPiAoVUlOVDgpKEluZGV4ICsgMSk7DQo+ID4g PiA+ICsgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBQdWJsaXNo IEdEVA0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICBBc21Xcml0ZUdkdHIgKCZHZHRyKTsNCj4g PiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAvLyBMb2FkIGN1cnJlbnQgdGFzaw0K PiA+ID4gPiArICAvLw0KPiA+ID4gPiArICBBc21Xcml0ZVRyICgoVUlOVDE2KSgoVUlOVE4pU3Rh Y2tTd2l0Y2hEYXRhLT5Uc3NEZXNjIC0gR2R0ci5CYXNlKSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4g KyAgLy8NCj4gPiA+ID4gKyAgLy8gUHVibGlzaCBJRFQNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4g KyAgQXNtV3JpdGVJZHRyICgmSWR0cik7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgcmV0dXJuIEVG SV9TVUNDRVNTOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICAvKioNCj4gPiA+ID4g ICAgRGlzcGxheSBDUFUgaW5mb3JtYXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQN Cj4gPiA+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv QXJjaEludGVycnVwdERlZnMuaA0KPiA+ID4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gPiA+IGluZGV4IDkw NjQ4MDEzNGEuLmM4OGJlNDYyODYgMTAwNjQ0DQo+ID4gPiA+IC0tLQ0KPiBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ ID4gPiA+ICsrKw0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gPiA+IEBAIC00Myw0ICs0Myw3IEBAIHR5cGVk ZWYgc3RydWN0IHsNCj4gPiA+ID4gICAgVUlOVDggICAgICAgSG9va0FmdGVyU3R1YkhlYWRlckNv ZGVbSE9PS0FGVEVSX1NUVUJfU0laRV07DQo+ID4gPiA+ICB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFU QTsNCj4gPiA+ID4NCj4gPiA+ID4gKyNkZWZpbmUgQ1BVX1RTU19ERVNDX1NJWkUgc2l6ZW9mIChJ QTMyX1RTU19ERVNDUklQVE9SKQ0KPiA+ID4gPiArI2RlZmluZSBDUFVfVFNTX1NJWkUgICAgICBz aXplb2YgKElBMzJfVEFTS19TVEFURV9TRUdNRU5UKQ0KPiA+ID4gPiArDQo+ID4gPiA+ICAjZW5k aWYNCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi4xNC4xLndpbmRvd3MuMQ0KDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KZWRrMi1kZXZlbCBtYWlsaW5nIGxp c3QNCmVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQpodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2VkazItZGV2ZWwNCg==