From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 74BB22034AB1B for ; Sun, 5 Nov 2017 18:23:07 -0800 (PST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Nov 2017 18:27:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,350,1505804400"; d="scan'208,217";a="917904612" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by FMSMGA003.fm.intel.com with ESMTP; 05 Nov 2017 18:27:04 -0800 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 5 Nov 2017 18:27:04 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 5 Nov 2017 18:27:03 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Mon, 6 Nov 2017 10:27:00 +0800 From: "Wang, Jian J" To: "Yao, Jiewen" CC: Fan Jeff , "Kinney, Michael D" , "edk2-devel@lists.01.org" , "Dong, Eric" , "Zeng, Star" Thread-Topic: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUrSw7kMmlPjLfkaS9nSj0Ju2aqL+y3RDgADfOwCAAjUBgIAAcILq//+IQACABK4k8P//kjqAgACMNgA= Date: Mon, 6 Nov 2017 02:27:00 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com> <20171031142412.21680-4-jian.j.wang@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AA0AED6@shsmsx102.ccr.corp.intel.com> , <74D8A39837DF1E4DA445A8C0B3885C503AA0DA30@shsmsx102.ccr.corp.intel.com>, , <1B8B2A1E-869E-4B29-91E7-6A423F89FCDA@intel.com> In-Reply-To: <1B8B2A1E-869E-4B29-91E7-6A423F89FCDA@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2QzYjZlZjMtY2ZiYi00YWRiLTgxYzYtN2M5ZWRiNjgyYzA3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJPSG1QWUpmM1lTcW1nTVV6NEt3elhpU0tvbW9NVEhCVWVwcE5JZVwvVUIwbzZkVWh5NEtCczd1RVVwSElRVHZhSCJ9 x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support 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: Mon, 06 Nov 2017 02:23:07 -0000 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Sml3ZW4sDQoNCkZvciAxKSwgdGhlIHN0YWNrIGlzIHVzZWQgZm9yIGV4Y2VwdGlvbiBvbmx5LiBJ cyB0aGVyZSBhbnkgY2hhbmNlIHRoYXQgdGhlIHNhbWUgZXhjZXB0aW9uIGlzIHRyaWdnZXJlZCBi eSBib3RoIEJTUCBhbmQgQVAgYXQgdGhlIHNhbWUgdGltZT8NCkZvciAyKSwgc2VwYXJhdGUgc3Rh Y2sgaXMgdXNlZCBtYWlubHkgZm9yIFN0YWNrIEd1YXJkIGZlYXR1cmUgd2hpY2ggaXMgc3VwcG9y dGVkIG9ubHkgYnkgRFhFIChiZWNhdXNlIGl0IG5lZWRzIHBhZ2luZyB0byB3b3JrKS4gSSB0aGlu ayB3ZSBkb26hr3QgbmVlZCB0byB0YWtlIGNhcmUgb2YgUEVJIGNvZGUuIFRoZSBnbG9iYWwgY2Fu IGJlIGp1c3QgZGVmaW5lZCBpbiBEeGVFeGNlcHRpb24uYyBmaWxlLg0KDQpUaGFua3MsDQpKaWFu DQoNCkZyb206IFlhbywgSmlld2VuDQpTZW50OiBNb25kYXksIE5vdmVtYmVyIDA2LCAyMDE3IDk6 NTQgQU0NClRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCkNjOiBGYW4g SmVmZiA8dmFuamVmZl85MTlAaG90bWFpbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgRG9uZywgRXJp YyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+ DQpTdWJqZWN0OiBSZTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVy TGliOiBBZGQgc3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KSSB0aGluayB3ZSBuZWVkIGNvbnNpZGVy IDIgYWRkaXRpb25hbCB0aGluZ3M6DQoxKSBob3cgdG8gc3VwcG9ydCBkaWZmZXJlbnQgc3RhY2sg Zm9yIGFwPw0KMikgaG93IHRvIHN1cHBvcnQgcGVpIHBoYXNlLCB3aGVuIHRoZSBnbG9iYWwgdmFy aWFibGUgaXMgcmVhZCBvbmx5Pw0KDQp0aGFuayB5b3UhDQpZYW8sIEppZXdlbg0KDQoNCtTaIDIw MTfE6jEx1MI2yNWjrMnPzuc4OjMwo6xXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNv bTxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj4g0LS1wKO6DQpKZWZmLA0KDQpUaGF0oa9z IGEgZ29vZCBzdWdnZXN0aW9uLiBEbyB5b3Uga25vdyBpZiB0aGVyZaGvcyBhbnkgcGl0ZmFsbCBp biB1c2luZyBkYXRhIHNlZ21lbnQgbWVtb3J5IGFzIHN0YWNrPw0KDQpUaGFua3MsDQpKaWFuDQoN CkZyb206IEZhbiBKZWZmIFttYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb21dDQpTZW50OiBG cmlkYXksIE5vdmVtYmVyIDAzLCAyMDE3IDQ6NTkgUE0NClRvOiBZYW8sIEppZXdlbiA8amlld2Vu Lnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj47IEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+PjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRv OmppYW4uai53YW5nQGludGVsLmNvbT4+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86 ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVs LmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdA aW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NClN1YmplY3Q6ILTwuLQ6IFtQ QVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrIHN3 aXRjaCBzdXBwb3J0DQoNCg0KSmlhbiwNCg0KDQoNCkZvciBleGFtcGxlLCB5b3UgY291bGQgdXNl IHRoZSBnbG9iYWwgdmFyaWFibGUgVUlOVDggTmV3U3RhY2tbMjU2XSBpbnN0ZWFkIG9mIGFsbG9j YXRlIG1lbW9yeSBmb3Igc3RhY2sgYW5kIHRyeSB0byB1c2UgdGhlIG90aGVyIGdsb2JhbCB2YXJp YWJsZXMgZm9yIG90aGVyIGFsbG9jYXRlZCBkYXRhLg0KDQoNCg0KRG9lcyBpdCB3b3JrIGZvciB5 b3VyIGNhc2U/DQoNCg0KDQpUaGFua3MhDQoNCkplZmYNCg0KDQoNCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQpGcm9tOiBlZGsyLWRldmVsIDxlZGsyLWRldmVsLWJvdW5jZXNAbGlz dHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnPj4gb24gYmVo YWxmIG9mIEZhbiBKZWZmIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNvbTxtYWlsdG86dmFuamVmZl85 MTlAaG90bWFpbC5jb20+Pg0KU2VudDogRnJpZGF5LCBOb3ZlbWJlciAzLCAyMDE3IDQ6MjE6MjIg UE0NClRvOiBZYW8sIEppZXdlbjsgS2lubmV5LCBNaWNoYWVsIEQ7IFdhbmcsIEppYW4gSjsgZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPg0KQ2M6 IERvbmcsIEVyaWM7IFplbmcsIFN0YXINClN1YmplY3Q6IFtlZGsyXSC08Li0OiBbUEFUQ0ggMy8z XSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3Vw cG9ydA0KDQpKaWFuLA0KDQpDb3VsZCB5b3UgdXNlIHNvbWUgZ2xvYmFsIHZhcmlhYmxlcyBpbiBo dHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvYmxvYi9tYXN0ZXIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMgdG8gYXZvaWQgYWRk aW5nIG5ldyBBUEk/DQoNCkplZmYNCreivP7IyzogWWFvLCBKaWV3ZW48bWFpbHRvOmppZXdlbi55 YW9AaW50ZWwuY29tPg0Kt6LLzcqxvOQ6IDIwMTfE6jEx1MIzyNUgOToyNA0KytW8/sjLOiBLaW5u ZXksIE1pY2hhZWwgRDxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBGYW4gSmVm ZjxtYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb20+OyBXYW5nLCBKaWFuIEo8bWFpbHRvOmpp YW4uai53YW5nQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsy LWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmclM2NtYWls dG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+Pg0Ks63LzTogRG9uZywgRXJpYzxtYWlsdG86ZXJp Yy5kb25nQGludGVsLmNvbT47IFplbmcsIFN0YXI8bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+ DQrW98ziOiBSRTogW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGli OiBBZGQgc3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KSEkgSmlhbg0KVGhlcmUgaXMgYW5vdGhlciBw b3RlbnRpYWwgcHJvYmxlbS4NCg0KVGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgaW4gSW5pdGlhbGl6 ZUNwdUludGVycnVwdEhhbmRsZXJzKCkuIEhvd2V2ZXIsIHdlIGV4cGVjdCB0aGlzIGlzIGVuYWJs ZWQgaW4gSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRsZXJzKCkuDQoNCkluIG9yZGVyIHRvIGdl dCB0aGUgZXhjZXB0aW9uIHN0YWNrIGluIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygp LiBXZSBjYW4gaGF2ZSAyIHdheXM6DQpBKSBMZXQgSW5pdGlhbGl6ZUNwdUV4Y2VwdGlvbkhhbmRs ZXJzKCkgYWxsb2NhdGUgdGhlIGV4Y2VwdGlvbiBzdGFjay4NCkIpIExldCBjYWxsZXIgdG8gcGFz cyB0aGUgZXhjZXB0aW9uIHN0YWNrIHRvIEluaXRpYWxpemVDcHVFeGNlcHRpb25IYW5kbGVycygp Lg0KDQpGb3IgQSksIGl0IGlzIGhhcmQsIGJlY2F1c2UgRHhlQ29yZSBjYWxscyBJbml0aWFsaXpl Q3B1RXhjZXB0aW9uSGFuZGxlcnMoKSBlYXJsaWVyIHRoYW4gQ29yZUluaXRpYWxpemVNZW1vcnlT ZXJ2aWNlcygpLg0KRm9yIEIpLCBJbml0aWFsaXplQ3B1RXhjZXB0aW9uSGFuZGxlcnMoKSBpbnRl cmZhY2UgZG9lcyBub3QgY29udGFpbiBzdWNoIGluZm9ybWF0aW9uLiBXZSBtaWdodCBuZWVkIGFk ZCBhIG5ldyBBUEkgdG8gYWRkIHRoZSBleGNlcHRpb24gc3RhY2sgaW5mb3JtYXRpb24sIHN1Y2gg YXMgSW5pdGlhbGl6ZUNwdVN3aXRjaFN0YWNrRXhjZXB0aW9uSGFuZGxlcnMgKCkuDQoNCk9uY2Ug dGhpcyBmZWF0dXJlIGlzIGRvbmUsIGNhbiB3ZSBjbGVhbiB1cCB0aGUgU01NIGNvZGUgdG8gdXNl IHRoZSBuZXcgQVBJLCBpbnN0ZWFkIG9mIGR1cGxpY2F0ZSB0aGUgU01NIGNvcHkgb2YgZXhjZXB0 aW9uIGhhbmRsZXIgPyBUaGUgZXhpc3RpbmcgU01NIGNvcHkgaGFzIHNvbWUgYXNzdW1wdGlvbiBv biBDUjQgYW5kIEZYU0FWRS9SRVNUT1JFLCBhbmQgaXQgYnJva2UgUXVhcmsgcGxhdGZvcm0uDQoN ClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRA0KPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVy IDEsIDIwMTcgMTE6NDMgUE0NCj4gVG86IEZhbiBKZWZmIDx2YW5qZWZmXzkxOUBob3RtYWlsLmNv bTxtYWlsdG86dmFuamVmZl85MTlAaG90bWFpbC5jb20+PjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55 YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+Ow0KPiBXYW5nLCBKaWFu IEogPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47 IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz47 IEtpbm5leSwgTWljaGFlbA0KPiBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Pg0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25n QGludGVsLmNvbTxtYWlsdG86ZXJpYy5kb25nQGludGVsLmNvbT4+OyBaZW5nLCBTdGFyIDxzdGFy LnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj4NCj4gU3ViamVjdDog UkU6IFtQQVRDSCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0 YWNrIHN3aXRjaA0KPiBzdXBwb3J0DQo+DQo+IEkgYWdyZWUgdGhhdCBhZGRpbmcgQXNtV3JpdGVU ciwgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQsDQo+IElBMzJfVFNTX0RFU0NSSVBUT1IgdG8gTWRl UGtnIEJhc2VMaWIgaXMgYSBnb29kIGlkZWEuDQo+DQo+IE1pa2UNCj4NCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwtYm91 bmNlc0BsaXN0cy4wMS5vcmddIE9uIEJlaGFsZiBPZiBGYW4NCj4gSmVmZg0KPiBTZW50OiBUdWVz ZGF5LCBPY3RvYmVyIDMxLCAyMDE3IDc6MzMgUE0NCj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4u eWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgV2FuZywgSmlhbiBK IDxqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+Ow0K PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+ DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFp bHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47IERvbmcsIEVyaWMNCj4gPGVyaWMuZG9u Z0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+PjsgWmVuZywgU3RhciA8c3Rh ci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+DQo+IFN1YmplY3Q6 IFtlZGsyXSC08Li0OiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWI6IEFkZA0KPiBzdGFjayBzd2l0Y2ggc3VwcG9ydA0KPg0KPiBQZXIgaHR0cHM6Ly9idWd6aWxs YS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDksIFRSIHNob3VsZCBiZSBzZXR1cA0K PiAoU3VjaCBhcyBpbiBEeGVJcGxQZWltKSBldmVuIHRob3VnaCBOVUxMIENwdSBFeGNlcHRpb24g SGFuZGxlciBpbnN0YW5jZSBpcw0KPiBjaG9zZW4uDQo+DQo+IEZvciBsb25nIHRlcm0sIEkgYWdy ZWUgd2UgbmVlZCB0byBtb3ZlIEFzbVdyaXRlVHIsDQo+IElBMzJfVEFTS19TVEFURV9TRUdNRU5U LCBJQTMyX1RTU19ERVNDUklQVE9SIHRvIE1kZVBrZyhTdWNoIGFzIEJhc2VMaWIpDQo+IEZvciB0 aGlzIHBhdGNoLCBJIGhhdmUgbm8gc3Ryb25nIG9waW5pb24uDQo+DQo+DQo+ILeivP7IyzogWWFv LCBKaWV3ZW48bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPg0KPiC3osvNyrG85DogMjAxN8Tq MTHUwjHI1SA5OjU2DQo+IMrVvP7IyzogV2FuZywgSmlhbiBKPG1haWx0bzpqaWFuLmoud2FuZ0Bp bnRlbC5jb20+Ow0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnJTNjbWFpbHRvOmVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnPj4NCj4gs63LzTogS2lubmV5LCBNaWNoYWVsIEQ8bWFpbHRvOm1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgRG9uZywNCj4gRXJpYzxtYWlsdG86ZXJpYy5kb25n QGludGVsLmNvbT47IFplbmcsIFN0YXI8bWFpbHRvOnN0YXIuemVuZ0BpbnRlbC5jb20+DQo+INb3 zOI6IFJlOiBbZWRrMl0gW1BBVENIIDMvM10gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVy TGliOiBBZGQgc3RhY2sNCj4gc3dpdGNoIHN1cHBvcnQNCj4NCj4gSGkgSmlhbg0KPiBUaGFua3Mg Zm9yIHRoZSBwYXRjaC4NCj4NCj4gQ2FuIHdlIG1vdmUgYWxsIElBMzIgZGVmaW5lZCBkYXRhIHN0 cnVjdHVyZSBvciBmdW5jdGlvbiB0byBNZGVQa2c/DQo+IFN1Y2ggYXM6IEFzbVdyaXRlVHIsIElB MzJfVEFTS19TVEFURV9TRUdNRU5ULCBJQTMyX1RTU19ERVNDUklQVE9SDQo+DQo+IEkgYW0gYWxz byBjdXJpb3VzIHdoeSB3ZSB1c2UgZGlmZmVyZW50IHBvbGljeSBmb3Igb3RoZXIgYm9vdCBtb2Rl Lg0KPiBDYW4gd2UgdXNlIGNvbnNpc3RlbnQgcG9saWN5Pw0KPiA+ICsgIGlmIChQY2RHZXRCb29s IChQY2RDcHVTdGFja0d1YXJkKSkgew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIFN0YWNrIEd1 YXJkIHdvcmtzIHdpdGggdGhlIHN1cHBvcnQgb2YgcGFnZSB0YWJsZSBlc3RhYmxpc2hlZCBhbmQN Cj4gPiArICAgIC8vIG1lbW9yeSBtYW5hZ2VtZW50LiBTbyB3ZSBoYXZlIHRvIGV4Y2x1ZGUgdGhv c2UgYm9vdCBtb2Rlcw0KPiA+IHdpdGhvdXQNCj4gPiArICAgIC8vIHRoZW0uDQo+ID4gKyAgICAv Lw0KPiA+ICsgICAgc3dpdGNoIChHZXRCb290TW9kZUhvYigpKSB7DQo+ID4gKyAgICBjYXNlIEJP T1RfT05fRkxBU0hfVVBEQVRFOg0KPiA+ICsgICAgY2FzZSBCT09UX0lOX1JFQ09WRVJZX01PREU6 DQo+ID4gKyAgICBjYXNlIEJPT1RfT05fUzNfUkVTVU1FOg0KPiA+ICsgICAgICBicmVhazsNCj4g PiArDQo+ID4gKyAgICBkZWZhdWx0Og0KPiA+ICsgICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFj ayAoSWR0VGFibGUpOw0KPiA+ICsgICAgICBicmVhazsNCj4gPiArICAgIH0NCj4gPiArICB9DQo+ DQo+DQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+DQo+DQo+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBXYW5nLCBKaWFuIEoNCj4gPiBTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDMxLCAyMDE3IDEwOjI0IFBNDQo+ID4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3Jn PG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4gPiBDYzogWmVuZywgU3RhciA8c3Rh ci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbT4+OyBEb25nLCBFcmlj DQo+ID4gPGVyaWMuZG9uZ0BpbnRlbC5jb208bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+Pjsg WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVs LmNvbT4+OyBLaW5uZXksDQo+ID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Pg0KPiA+IFN1YmplY3Q6IFtQQVRD SCAzLzNdIFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQWRkIHN0YWNrDQo+ID4g c3dpdGNoIHN1cHBvcnQNCj4gPg0KPiA+IElmIFN0YWNrIEd1YXJkIGlzIGVuYWJsZWQgYW5kIHRo ZXJlJ3MgcmVhbGx5IGEgc3RhY2sgb3ZlcmZsb3cgaGFwcGVuZWQNCj4gPiBkdXJpbmcgYm9vdCwg YSBQYWdlIEZhdWx0IGV4Y2VwdGlvbiB3aWxsIGJlIHRyaWdnZXJlZC4gQmVjYXVzZSB0aGUNCj4g PiBzdGFjayBpcyBvdXQgb2YgdXNhZ2UsIHRoZSBleGNlcHRpb24gaGFuZGxlciwgd2hpY2ggc2hh cmVzIHRoZSBzdGFjaw0KPiA+IHdpdGggbm9ybWFsIFVFRkkgZHJpdmVyLCBjYW5ub3QgYmUgZXhl Y3V0ZWQgYW5kIGNhbm5vdCBkdW1wIHRoZSBwcm9jZXNzb3INCj4gaW5mb3JtYXRpb24uDQo+ID4N Cj4gPiBXaXRob3V0IHRob3NlIGluZm9ybWF0aW9uLCBpdCdzIHZlcnkgZGlmZmljdWx0IGZvciB0 aGUgQklPUyBkZXZlbG9wZXJzDQo+ID4gbG9jYXRlIHRoZSByb290IGNhdXNlIG9mIHN0YWNrIG92 ZXJmbG93LiBBbmQgd2l0aG91dCBhIHdvcmthYmxlIHN0YWNrLA0KPiA+IHRoZSBkZXZlbG9wZXIg Y2Fubm90IGV2ZW50IHVzZSBzaW5nbGUgc3RlcCB0byBkZWJ1ZyB0aGUgVUVGSSBkcml2ZXIgd2l0 aCBKVEFHDQo+IGRlYnVnZ2VyLg0KPiA+DQo+ID4gSW4gb3JkZXIgdG8gbWFrZSBzdXJlIHRoZSBl eGNlcHRpb24gaGFuZGxlciB0byBleGVjdXRlIG5vcm1hbGx5IGFmdGVyDQo+ID4gc3RhY2sgb3Zl cmZsb3cuIFdlIG5lZWQgc2VwYXJhdGUgc3RhY2tzIGZvciBleGNlcHRpb24gaGFuZGxlcnMgaW4g Y2FzZQ0KPiA+IG9mIHVudXNhYmxlIHN0YWNrLg0KPiA+DQo+ID4gSUEgcHJvY2Vzc29yIGFsbG93 cyB0byBzd2l0Y2ggdG8gYSBuZXcgc3RhY2sgZHVyaW5nIGhhbmRsaW5nIGludGVycnVwdA0KPiA+ IGFuZCBleGNlcHRpb24uIEJ1dCBYNjQgYW5kIElBMzIgcHJvdmlkZXMgZGlmZmVyZW50IHdheXMg dG8gbWFrZSBpdC4NCj4gPiBYNjQgcHJvdmlkZXMgaW50ZXJydXB0IHN0YWNrIHRhYmxlIChJU1Qp IHRvIGFsbG93IG1heGltdW0gNyBkaWZmZXJlbnQNCj4gPiBleGNlcHRpb25zIHRvIGhhdmUgbmV3 IHN0YWNrIGZvciBpdHMgaGFuZGxlci4gSUEzMiBkb2Vzbid0IGhhdmUgSVNUDQo+ID4gbWVjaGFu aXNtIGFuZCBjYW4gb25seSB1c2UgdGFzayBnYXRlIHRvIGRvIGl0IHNpbmNlIHRhc2sgc3dpdGNo IGFsbG93cw0KPiA+IHRvIGxvYWQgYSBuZXcgc3RhY2sgdGhyb3VnaCBpdHMgdGFzay1zdGF0ZSBz ZWdtZW50IChUU1MpLg0KPiA+DQo+ID4gTm90ZTogU3RhY2sgc3dpdGNoIG5lZWRzIHRvIGFsbG9j YXRlIG1lbW9yeSBwYWdlcyB0byBiZSBuZXcgc3RhY2tzLiBTbyB0aGlzDQo+ID4gICAgICAgZnVu Y3Rpb25hbGl0eSB3b3JrcyBvbmx5IGluIHRoZSBib290IHBoYXNlcyBjYXBhYmxlIG9mIG1lbW9y eQ0KPiA+ICAgICAgIGFsbG9jYXRpb24gKGJlc2lkZXMgdGhlIHBhZ2luZywgZm9yIHRoZSBzYWtl IG9mIFN0YWNrIEd1YXJkKS4gSW4NCj4gPiAgICAgICBvdGhlciB3b3Jkcywgb25seSBEWEUgcGhh c2UgY2FuIHN1cHBvcnRzIFN0YWNrIEd1YXJkIHdpdGggc3RhY2sNCj4gc3dpdGNoLg0KPiA+DQo+ ID4gQ2M6IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNvbTxtYWlsdG86c3Rhci56ZW5nQGlu dGVsLmNvbT4+DQo+ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbTxtYWlsdG86 ZXJpYy5kb25nQGludGVsLmNvbT4+DQo+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50 ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+DQo+ID4gQ2M6IE1pY2hhZWwgS2lu bmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+Pg0KPiA+IFN1Z2dlc3RlZC1ieTogQXllbGxldCBXb2xtYW4gPGF5ZWxsZXQud29s bWFuQGludGVsLmNvbTxtYWlsdG86YXllbGxldC53b2xtYW5AaW50ZWwuY29tPj4NCj4gPiBDb250 cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4g U2lnbmVkLW9mZi1ieTogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86 amlhbi5qLndhbmdAaW50ZWwuY29tPj4NCj4gPiAtLS0NCj4gPiAgLi4uL0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmggICAgfCAgMjIgKysNCj4gPiAgLi4uL0R4ZUNw dUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KPiA+ICAu Li4vTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jICB8ICAxOSAr DQo+ID4gIC4uLi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgICAgICAgICAgICAgICAgICAg IHwgMTM1ICsrKysrKysNCj4gPiAgLi4uL0lhMzIvQXJjaEludGVycnVwdERlZnMuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAxMzYgKysrKysrKw0KPiA+ICAuLi4vSWEzMi9FeGNlcHRpb25Uc3NF bnRyeUFzbS5uYXNtICAgICAgICAgICAgICAgICB8IDM5OA0KPiA+ICsrKysrKysrKysrKysrKysr KysrKw0KPiA+ICAuLi4vUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAg ICAgICB8ICAgMSArDQo+ID4gIC4uLi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZiAg ICAgICAgICAgICAgIHwgICAzICsNCj4gPiAgLi4uL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIu aW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAuLi4vWDY0L0FyY2hFeGNlcHRpb25I YW5kbGVyLmMgICAgICAgICAgICAgICAgICAgICB8IDEwOCArKysrKysNCj4gPiAgLi4uL0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmggfCAgNDAgKysrDQo+ID4g IC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TICAgICAgICAgICAgICAgICAgICAgIHwgIDEy ICsNCj4gPiAgLi4uL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbSAgICAgICAgICAgICAgICAg ICAgfCAgMTIgKw0KPiA+ICAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbSAgICAgICAg ICAgICAgICAgICB8ICAxMiArDQo+ID4gIDE0IGZpbGVzIGNoYW5nZWQsIDkwNCBpbnNlcnRpb25z KCspDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IFVlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmENCj4gPiBzbQ0K PiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQo+ID4gaW5kZXgg NzQwYTU4ODI4Yi4uZmQ0YTI2YTQ1OCAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KPiA+ICsrKyBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNv bW1vbi5oDQo+ID4gQEAgLTI1LDYgKzI1LDcgQEANCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvQmFz ZU1lbW9yeUxpYi5oPg0KPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9TeW5jaHJvbml6YXRpb25MaWIu aD4gICNpbmNsdWRlDQo+ID4gPExpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5oPg0KPiA+ ICsjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+DQo+ID4NCj4gPiAgI2Rl ZmluZSAgQ1BVX0VYQ0VQVElPTl9OVU0gICAgICAgICAgMzINCj4gPiAgI2RlZmluZSAgQ1BVX0lO VEVSUlVQVF9OVU0gICAgICAgICAyNTYNCj4gPiBAQCAtMjg4LDUgKzI4OSwyNiBAQCBDb21tb25F eGNlcHRpb25IYW5kbGVyV29ya2VyICgNCj4gPiAgICBJTiBFWENFUFRJT05fSEFORExFUl9EQVRB ICAgICAgKkV4Y2VwdGlvbkhhbmRsZXJEYXRhDQo+ID4gICAgKTsNCj4gPg0KPiA+ICsvKioNCj4g PiArICBMb2FkIGdpdmVuIHNlbGVjdG9yIGludG8gVFIgcmVnaXN0ZXINCj4gPiArDQo+ID4gKyAg QHBhcmFtIFNlbGVjdG9yICAgICAgICAgVGFzayBzZWdtZW50IHNlbGVjdG9yDQo+ID4gKyoqLw0K PiA+ICtWT0lEDQo+ID4gK0FzbVdyaXRlVHIgKA0KPiA+ICsgIFVJTlQxNiBTZWxlY3Rvcg0KPiA+ ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Ig c3BlY2lmaWMgZXhjZXB0aW9ucy4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAg ICAgICAgSURUIHRhYmxlIGJhc2UuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0K PiA+ICtBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQo+ID4gKyAgSU4gSUEzMl9JRFRfR0FURV9E RVNDUklQVE9SICAgICAgICAgICAqSWR0VGFibGUNCj4gPiArICApOw0KPiA+ICsNCj4gPiAgI2Vu ZGlmDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+ IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBpbmRleCBmNGE4ZDAxYzgwLi5iMDk5ZWY0ZGFk IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiArKysNCj4g PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gQEAgLTMwLDYgKzMwLDcgQEANCj4gPiAgW1Nv dXJjZXMuSWEzMl0NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtDQo+ID4gICAg SWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4gPiArICBJYTMyL0V4Y2VwdGlvblRzc0Vu dHJ5QXNtLm5hc20NCj4gPiAgICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+ICAgIElh MzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ICAgIElhMzIvQXJjaEludGVycnVwdERlZnMu aA0KPiA+IEBAIC00Nyw2ICs0OCw5IEBADQo+ID4gICAgUGVpRHhlU21tQ3B1RXhjZXB0aW9uLmMN Cj4gPiAgICBEeGVFeGNlcHRpb24uYw0KPiA+DQo+ID4gK1tQY2RdDQo+ID4gKyAgZ0VmaU1kZU1v ZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmQNCj4gPiArDQo+ID4gIFtQYWNr YWdlc10NCj4gPiAgICBNZGVQa2cvTWRlUGtnLmRlYw0KPiA+ICAgIE1kZU1vZHVsZVBrZy9NZGVN b2R1bGVQa2cuZGVjDQo+ID4gQEAgLTYxLDMgKzY1LDQgQEANCj4gPiAgICBQZUNvZmZHZXRFbnRy eVBvaW50TGliDQo+ID4gICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPiA+ICAgIERlYnVnTGliDQo+ ID4gKyAgSG9iTGliDQo+ID4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiA+IGluZGV4IDMxZmViZWM5 NzYuLmU5ZGNkMDBlMDIgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCj4gPiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVFeGNlcHRpb24uYw0KPiA+IEBAIC0xNiw2 ICsxNiw3IEBADQo+ID4gICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCj4gPiAgI2lu Y2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gPiAgI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5 QWxsb2NhdGlvbkxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9Ib2JMaWIuaD4NCj4gPg0K PiA+ICBDT05TVCBVSU5UTiAgICBtRG9GYXJSZXR1cm5GbGFnICA9IDA7DQo+ID4NCj4gPiBAQCAt MTU1LDYgKzE1NiwyNCBAQCBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMgKA0KPiA+DQo+ ID4gICAgVXBkYXRlSWR0VGFibGUgKElkdFRhYmxlLCAmVGVtcGxhdGVNYXAsICZtRXhjZXB0aW9u SGFuZGxlckRhdGEpOw0KPiA+DQo+ID4gKyAgaWYgKFBjZEdldEJvb2wgKFBjZENwdVN0YWNrR3Vh cmQpKSB7DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gU3RhY2sgR3VhcmQgd29ya3Mgd2l0aCB0 aGUgc3VwcG9ydCBvZiBwYWdlIHRhYmxlIGVzdGFibGlzaGVkIGFuZA0KPiA+ICsgICAgLy8gbWVt b3J5IG1hbmFnZW1lbnQuIFNvIHdlIGhhdmUgdG8gZXhjbHVkZSB0aG9zZSBib290IG1vZGVzDQo+ ID4gd2l0aG91dA0KPiA+ICsgICAgLy8gdGhlbS4NCj4gPiArICAgIC8vDQo+ID4gKyAgICBzd2l0 Y2ggKEdldEJvb3RNb2RlSG9iKCkpIHsNCj4gPiArICAgIGNhc2UgQk9PVF9PTl9GTEFTSF9VUERB VEU6DQo+ID4gKyAgICBjYXNlIEJPT1RfSU5fUkVDT1ZFUllfTU9ERToNCj4gPiArICAgIGNhc2Ug Qk9PVF9PTl9TM19SRVNVTUU6DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsNCj4gPiArICAgIGRl ZmF1bHQ6DQo+ID4gKyAgICAgIEFyY2hTZXR1cEV4Y3BldGlvblN0YWNrIChJZHRUYWJsZSk7DQo+ ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4gICAgLy8N Cj4gPiAgICAvLyBMb2FkIEludGVycnVwdCBEZXNjcmlwdG9yIFRhYmxlDQo+ID4gICAgLy8NCj4g PiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiBiL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIu DQo+ID4gYw0KPiA+IGluZGV4IGYyYzM5ZWIxOTMuLjNkNDFkZjc1YTUgMTAwNjQ0DQo+ID4gLS0t DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0Fy Y2hFeGNlcHRpb25IYW5kbGVyLg0KPiA+IGMNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuDQo+ ID4gYw0KPiA+IEBAIC0xNCw2ICsxNCwxOSBAQA0KPiA+DQo+ID4gICNpbmNsdWRlICJDcHVFeGNl cHRpb25Db21tb24uaCINCj4gPg0KPiA+ICsvLw0KPiA+ICsvLyBMaXN0IG9mIGV4Y2VwdGlvbnMg bmVlZGluZyBzZXBhcmF0ZSBzdGFjayAvLyBTVEFUSUMNCj4gPiArSUEzMl9FWENFUFRJT05fVFNf RU5UUlkgbUV4Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCj4gPiArICB7NiwgIEV4Y2VwdGlvblRh c2tTd3RpY2hFbnRyeTZ9LCAgLy8jVUQ6IEludmFsaWQgT3Bjb2RlIEV4Y2VwdGlvbg0KPiA+ICsg IHs4LCAgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OH0sICAvLyNERjogRG91YmxlIEZhdWx0IEV4 Y2VwdGlvbg0KPiA+ICsgIHsxMiwgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTJ9LCAvLyNTUzog U3RhY2sgRmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgezEzLCBFeGNlcHRpb25UYXNrU3d0aWNoRW50 cnkxM30sIC8vI0dQOiBHZW5lcmFsIFByb3RlY3Rpb24NCj4gPiArRXhjZXB0aW9uDQo+ID4gKyAg ezE0LCBFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNH0sIC8vI1BGOiBQYWdlLUZhdWx0IEV4Y2Vw dGlvbg0KPiA+ICsgIHsxNywgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTd9LCAvLyNBQzogQWxp Z25tZW50IENoZWNrIEV4Y2VwdGlvbg0KPiA+ICsgIHsxOCwgRXhjZXB0aW9uVGFza1N3dGljaEVu dHJ5MTh9ICAvLyNNQzogTWFjaGluZS1DaGVjayBFeGNlcHRpb24gfTsNCj4gPiArDQo+ID4gIC8q Kg0KPiA+ICAgIFJldHVybiBhZGRyZXNzIG1hcCBvZiBleGNlcHRpb24gaGFuZGxlciB0ZW1wbGF0 ZSBzbyB0aGF0IEMgY29kZSBjYW4NCj4gPiBnZW5lcmF0ZQ0KPiA+ICAgIGV4Y2VwdGlvbiB0YWJs ZXMuDQo+ID4gQEAgLTEwNyw2ICsxMjAsMTI4IEBAIEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4 dCAoDQo+ID4gICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0SWEzMi0+RXhjZXB0aW9uRGF0 YSA9DQo+ID4gUmVzZXJ2ZWRWZWN0b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlvbkRhdGE7DQo+ ID4gIH0NCj4gPg0KPiA+ICsvKioNCj4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3Bl Y2lmaWMgZXhjZXB0aW9ucy4NCj4gPiArDQo+ID4gKyAgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAg ICAgIElEVCB0YWJsZSBiYXNlLg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4g PiArQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKA0KPiA+ICsgIElOIElBMzJfSURUX0dBVEVfREVT Q1JJUFRPUiAgICAgICAgICAgKklkdFRhYmxlDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgVk9J RCAgICAgICAgICAgICAgICAgICAgICAqTmV3R2R0Ow0KPiA+ICsgIElBMzJfREVTQ1JJUFRPUiAg ICAgICAgICAgR2R0RGVzYzsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIE9sZEdk dFNpemU7DQo+ID4gKyAgVFNTX0VOVFJJRVMgICAgICAgICAgICAgICAqVHNzRW50cnk7DQo+ID4g KyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAqVHNzRGVzYzsNCj4gPiArICBJQTMyX1RBU0tf U1RBVEVfU0VHTUVOVCAgICpUc3M7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBT dGFja0Jhc2U7DQo+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1RvcDsNCj4g PiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZTsNCj4gPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAg ICAgVmVjdG9yOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVHNzQmFzZTsNCj4g PiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBBbGxvY2F0ZSBSdW50aW1lIERhdGEgZm9yIHRoZSBH RFQgIC8vICBBc21SZWFkR2R0cigmR2R0RGVzYyk7DQo+ID4gKyBPbGRHZHRTaXplID0gR2R0RGVz Yy5MaW1pdCArIDE7ICBOZXdHZHQgPQ0KPiA+ICsgQWxsb2NhdGVSdW50aW1lWmVyb1Bvb2woT2xk R2R0U2l6ZSArIHNpemVvZihUU1NfRU5UUklFUykNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArIElBMzJfR0RUX0FMSUdOTUVOVCk7ICBpZg0KPiAoTmV3R2R0DQo+ID4g KyA9PSBOVUxMKSB7DQo+ID4gKyAgICByZXR1cm47DQo+ID4gKyAgfQ0KPiA+ICsgIE5ld0dkdCA9 IEFMSUdOX1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRfQUxJR05NRU5UKTsNCj4gPiArDQo+ID4g KyAgLy8NCj4gPiArICAvLyBJbml0aWFsaXplIG5ldyBHRFQgZW50cmllcw0KPiA+ICsgIC8vDQo+ ID4gKyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNlLCBPbGRHZHRTaXplKTsg IEdkdERlc2MuQmFzZSA9DQo+ID4gKyAoVUlOVE4pKFZPSUQqKU5ld0dkdDsgIEdkdERlc2MuTGlt aXQgPSAoVUlOVDE2KShPbGRHZHRTaXplICsNCj4gPiArIFRTU19PRkZTRVQgLSAxKTsNCj4gPiAr DQo+ID4gKyAgLy8NCj4gPiArICAvLyBSZXNlcnZlIHN0YXRjayBtZW1vcnkgZm9yIGdpdmVuIGV4 Y2VwdGlvbnMgIC8vICBTdGFja1NpemUgPQ0KPiA+ICsgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNX aXRoU3RhY2spICogRVhDRVBUSU9OX1NUQUNLX1NJWkU7ICBTdGFja1NpemUNCj4gPiArID0gRUZJ X1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsgIFN0YWNrQmFz ZSA9DQo+ID4gKyAoVUlOVDY0KShVSU5UTilBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdF Uw0KPiA+IChTdGFja1NpemUpKTsNCj4gPiArICBpZiAoU3RhY2tCYXNlID09IDApIHsNCj4gPiAr ICAgIEZyZWVQb29sIChOZXdHZHQpOw0KPiA+ICsgICAgcmV0dXJuOw0KPiA+ICsgIH0NCj4gPiAr DQo+ID4gKyAgLy8NCj4gPiArICAvLyBGaXh1cCBUU1MgZGVzY3JpcHRvcnMgYW5kIHNlZ21lbnRz ICAvLyAgVHNzRW50cnkgPSAoVk9JRA0KPiA+ICsgKikoR2R0RGVzYy5CYXNlICsgT2xkR2R0U2l6 ZSk7DQo+ID4gKw0KPiA+ICsgIFRzc0Jhc2UgPSAoVUlOVE4pKFZPSUQgKikmVHNzRW50cnktPlRz czsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTVfMCAgICAgICAgICAgID0NCj4gPiBz aXplb2YoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0gMTsNCj4gPiArICBUc3NFbnRyeS0+VHNz U2VnLkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0KPiA+ICsgIFRzc0Vu dHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYp Ow0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuVHlwZSAgICAgICAgICAgICAgICAgPSBJQTMyX0dE VF9UWVBFX1RTUzsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTlfMTZfYW5kX2ZsYWdz ID0gMDsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAgICAgICAgID0gKFVJ TlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gPiArDQo+ID4gKyAgU3RhY2tUb3AgID0gU3RhY2tCYXNl ICsgU3RhY2tTaXplIC0gQ1BVX1NUQUNLX0FMSUdOTUVOVDsgIFN0YWNrVG9wDQo+ID4gKyA9IChV SU5UTilBTElHTl9QT0lOVEVSIChTdGFja1RvcCwgQ1BVX1NUQUNLX0FMSUdOTUVOVCk7ICBmb3Ig KEluZGV4DQo+ID4gKyA9IDA7IEluZGV4IDwgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3Rh Y2spOyArK0luZGV4KSB7DQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gRml4dXAgVFNTIGRlc2Ny aXB0b3INCj4gPiArICAgIC8vDQo+ID4gKyAgICBUc3NCYXNlID0gKFVJTlROKShWT0lEICopJlRz c0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KPiA+ICsgICAgVHNzRGVzYyA9ICZUc3NFbnRy eS0+RXhjZXB0aW9uVHNzU2VnW0luZGV4XTsNCj4gPiArDQo+ID4gKyAgICBUc3NEZXNjLT5MaW1p dDE1XzAgICAgICAgICAgICA9IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCkgLQ0KPiAx Ow0KPiA+ICsgICAgVHNzRGVzYy0+QmFzZTE1XzAgICAgICAgICAgICAgPSAoVUlOVDE2KVRzc0Jh c2U7DQo+ID4gKyAgICBUc3NEZXNjLT5CYXNlMjNfMTYgICAgICAgICAgICA9IChVSU5UOCkoVHNz QmFzZSA+PiAxNik7DQo+ID4gKyAgICBUc3NEZXNjLT5UeXBlICAgICAgICAgICAgICAgICA9IElB MzJfR0RUX1RZUEVfVFNTOw0KPiA+ICsgICAgVHNzRGVzYy0+TGltaXQxOV8xNl9hbmRfZmxhZ3Mg PSAwOw0KPiA+ICsgICAgVHNzRGVzYy0+QmFzZTMxXzI0ICAgICAgICAgICAgPSAoVUlOVDgpKFRz c0Jhc2UgPj4gMjQpOw0KPiA+ICsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBGaXh1cCBUU1MN Cj4gPiArICAgIC8vDQo+ID4gKyAgICBUc3MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRzc1tJbmRl eF07DQo+ID4gKyAgICBUc3MtPkNSMyAgICA9IEFzbVJlYWRDcjMoKTsNCj4gPiArICAgIFRzcy0+ RUlQICAgID0gKFVJTlQzMiltRXhjZXB0aW9uc1dpdGhTdGFja1tJbmRleF0uRW50cnlQb2ludDsN Cj4gPiArICAgIFRzcy0+RUZMQUdTID0gMHgyOw0KPiA+ICsgICAgVHNzLT5FU1AgICAgPSBTdGFj a1RvcDsNCj4gPiArICAgIFRzcy0+RVMgICAgID0gQXNtUmVhZEVzKCk7DQo+ID4gKyAgICBUc3Mt PkNTICAgICA9IEFzbVJlYWRDcygpOw0KPiA+ICsgICAgVHNzLT5TUyAgICAgPSBBc21SZWFkU3Mo KTsNCj4gPiArICAgIFRzcy0+RFMgICAgID0gQXNtUmVhZERzKCk7DQo+ID4gKyAgICBUc3MtPkZT ICAgICA9IEFzbVJlYWRGcygpOw0KPiA+ICsgICAgVHNzLT5HUyAgICAgPSBBc21SZWFkR3MoKTsN Cj4gPiArICAgIFN0YWNrVG9wICAgLT0gRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQo+ID4gKw0KPiA+ ICsgICAgLy8NCj4gPiArICAgIC8vIENoYW5nZSBzcGVjaWZpZWQgZXhjZXB0aW9ucyBpbiBJRFQg dG8gdXNlIFRTUw0KPiA+ICsgICAgLy8NCj4gPiArICAgIFZlY3RvciA9IG1FeGNlcHRpb25zV2l0 aFN0YWNrW0luZGV4XS5WZWN0b3I7DQo+ID4gKw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5C aXRzLk9mZnNldExvdyAgPSAwOw0KPiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLlNlbGVj dG9yICAgPSBPbGRHZHRTaXplICsNCj4gPiBFWENFUFRJT05fVFNTX1NFTChJbmRleCk7DQo+ID4g KyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuUmVzZXJ2ZWRfMCA9IDA7DQo+ID4gKyAgICBJZHRU YWJsZVtWZWN0b3JdLkJpdHMuR2F0ZVR5cGUgICA9IElBMzJfSURUX0dBVEVfVFlQRV9UQVNLOw0K PiA+ICsgICAgSWR0VGFibGVbVmVjdG9yXS5CaXRzLk9mZnNldEhpZ2ggPSAwOyAgfQ0KPiA+ICsN Cj4gPiArICAvLw0KPiA+ICsgIC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMNCj4gPiArICAvLw0KPiA+ ICsgIEFzbVdyaXRlR2R0cigmR2R0RGVzYyk7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8g TG9hZCB0YXNrIHJlZ2lzdGVyDQo+ID4gKyAgLy8NCj4gPiArICBBc21Xcml0ZVRyICgoVUlOVDE2 KShPbGRHZHRTaXplICsgVFNTX1NFTCkpOyB9DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICBEaXNw bGF5IHByb2Nlc3NvciBjb250ZXh0Lg0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVm cy5oDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMy L0FyY2hJbnRlcnJ1cHREZWZzLmgNCj4gPiBpbmRleCBhOGQzNTU2YTgwLi43N2NjNmY5OTE5IDEw MDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvSWEzMi9BcmNoSW50ZXJydXB0RGVmcw0KPiA+ICsr KyAuaA0KPiA+IEBAIC00MSw0ICs0MSwxNDAgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICAgIFVJ TlQ4ICAgICAgIEhvb2tBZnRlclN0dWJIZWFkZXJDb2RlW0hPT0tBRlRFUl9TVFVCX1NJWkVdOw0K PiA+ICB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFUQTsNCj4gPg0KPiA+ICsjcHJhZ21hIHBhY2sgKDEp DQo+ID4gKw0KPiA+ICsjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgICA3DQo+ID4g KyNkZWZpbmUgRVhDRVBUSU9OX1NUQUNLX1NJWkUgICAgICAgIEVGSV9QQUdFX1NJWkUNCj4gPiAr I2RlZmluZSBJQTMyX0dEVF9UWVBFX1RTUyAgICAgICAgICAgMHg4OQ0KPiA+ICsjZGVmaW5lIElB MzJfR0RUX0FMSUdOTUVOVCAgICAgICAgICA4DQo+ID4gKw0KPiA+ICsvLw0KPiA+ICsvLyBJQTMy IFRTUyBEZWZpbml0aW9uDQo+ID4gKy8vDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBV SU5UMTYgICAgUHJldmlvdXNUYXNrTGluazsgLy8gMDANCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2 ZWRfMjsNCj4gPiArICBVSU5UMzIgICAgRVNQMDsgICAgICAgICAgICAgLy8gMDQNCj4gPiArICBV SU5UMTYgICAgU1MwOyAgICAgICAgICAgICAgLy8gMDgNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2 ZWRfMTA7DQo+ID4gKyAgVUlOVDMyICAgIEVTUDE7ICAgICAgICAgICAgIC8vIDBDDQo+ID4gKyAg VUlOVDE2ICAgIFNTMTsgICAgICAgICAgICAgIC8vIDEwDQo+ID4gKyAgVUlOVDE2ICAgIFJlc2Vy dmVkXzE4Ow0KPiA+ICsgIFVJTlQzMiAgICBFU1AyOyAgICAgICAgICAgICAvLyAxNA0KPiA+ICsg IFVJTlQxNiAgICBTUzI7ICAgICAgICAgICAgICAvLyAxOA0KPiA+ICsgIFVJTlQxNiAgICBSZXNl cnZlZF8yNjsNCj4gPiArICBVSU5UMzIgICAgQ1IzOyAgICAgICAgICAgICAgLy8gMUMNCj4gPiAr ICBVSU5UMzIgICAgRUlQOyAgICAgICAgICAgICAgLy8gMjANCj4gPiArICBVSU5UMzIgICAgRUZM QUdTOyAgICAgICAgICAgLy8gMjQNCj4gPiArICBVSU5UMzIgICAgRUFYOyAgICAgICAgICAgICAg Ly8gMjgNCj4gPiArICBVSU5UMzIgICAgRUNYOyAgICAgICAgICAgICAgLy8gMkMNCj4gPiArICBV SU5UMzIgICAgRURYOyAgICAgICAgICAgICAgLy8gMzANCj4gPiArICBVSU5UMzIgICAgRUJYOyAg ICAgICAgICAgICAgLy8gMzQNCj4gPiArICBVSU5UMzIgICAgRVNQOyAgICAgICAgICAgICAgLy8g MzgNCj4gPiArICBVSU5UMzIgICAgRUJQOw0KPiA+ICsgIFVJTlQzMiAgICBFU0k7DQo+ID4gKyAg VUlOVDMyICAgIEVESTsNCj4gPiArICBVSU5UMTYgICAgRVM7DQo+ID4gKyAgVUlOVDE2ICAgIFJl c2VydmVkXzc0Ow0KPiA+ICsgIFVJTlQxNiAgICBDUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2 ZWRfNzg7DQo+ID4gKyAgVUlOVDE2ICAgIFNTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF84 MjsNCj4gPiArICBVSU5UMTYgICAgRFM7DQo+ID4gKyAgVUlOVDE2ICAgIFJlc2VydmVkXzg2Ow0K PiA+ICsgIFVJTlQxNiAgICBGUzsNCj4gPiArICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTA7DQo+ID4g KyAgVUlOVDE2ICAgIEdTOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85NDsNCj4gPiArICBV SU5UMTYgICAgTERUU2VnbWVudFNlbGVjdG9yOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF85 ODsNCj4gPiArICBVSU5UMTYgICAgVDsNCj4gPiArICBVSU5UMTYgICAgSU9NYXBCYXNlQWRkcmVz czsNCj4gPiArfSBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVDsNCj4gPiArDQo+ID4gK3R5cGVkZWYg c3RydWN0IHsNCj4gPiArICBVSU5UMTYgICAgTGltaXQxNV8wOw0KPiA+ICsgIFVJTlQxNiAgICBC YXNlMTVfMDsNCj4gPiArICBVSU5UOCAgICAgQmFzZTIzXzE2Ow0KPiA+ICsgIFVJTlQ4ICAgICBU eXBlOw0KPiA+ICsgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsNCj4gPiArICBVSU5U OCAgICAgQmFzZTMxXzI0Ow0KPiA+ICt9IElBMzJfVFNTX0RFU0NSSVBUT1I7DQo+ID4gKw0KPiA+ ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgSUEzMl9UU1NfREVTQ1JJUFRPUiAgICAgICAgICAg VHNzU2VnOw0KPiA+ICsgIElBMzJfVFNTX0RFU0NSSVBUT1INCj4gRXhjZXB0aW9uVHNzU2VnW0VY Q0VQVElPTl9MSVNUX01BWF07DQo+ID4gKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAg VHNzOw0KPiA+ICsgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIEV4Y2VwdGlvblRzc1tF WENFUFRJT05fTElTVF9NQVhdOw0KPiA+ICt9IFRTU19FTlRSSUVTOw0KPiA+ICsNCj4gPiArI3By YWdtYSBwYWNrICgpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFRTU19TRUwgICAgICAgICAgICAgICBP RkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX1RT U19TRUwobikgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsDQo+ID4gRXhjZXB0aW9uVHNzU2VnW25d KQ0KPiA+ICsjZGVmaW5lIFRTU19PRkZTRVQgICAgICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRS SUVTLCBUc3MpDQo+ID4gKw0KPiA+ICt0eXBlZGVmIFZPSUQgKCpFWENFUFRJT05fRU5UUlkpIChW T0lEKTsNCj4gPiArDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiArICBVSU5UTiAgICAgICAg ICAgICBWZWN0b3I7DQo+ID4gKyAgRVhDRVBUSU9OX0VOVFJZICAgRW50cnlQb2ludDsNCj4gPiAr fSBJQTMyX0VYQ0VQVElPTl9UU19FTlRSWTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0 aW9uIGhhbmRsaW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1VELg0K PiA+ICsgKiovDQo+ID4gK1ZPSUQNCj4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5NiAoDQo+ ID4gKyAgVk9JRA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBo YW5kbGluZyBlbnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNERi4NCj4gPiAr ICoqLw0KPiA+ICtWT0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTggKA0KPiA+ICsg IFZPSUQNCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxp bmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjU1MuDQo+ID4gKyAqKi8N Cj4gPiArVk9JRA0KPiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMiAoDQo+ID4gKyAgVk9J RA0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBl bnRyeSB0aHJvdWdoIHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNHUC4NCj4gPiArICoqLw0KPiA+ ICtWT0lEDQo+ID4gK0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzICgNCj4gPiArICBWT0lEDQo+ ID4gKyAgKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgRXhjZXB0aW9uIGhhbmRsaW5nIGVudHJ5 IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI1BGLg0KPiA+ICsgKiovDQo+ID4gK1ZP SUQNCj4gPiArRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTQgKA0KPiA+ICsgIFZPSUQNCj4gPiAr ICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhy b3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjQUMuDQo+ID4gKyAqKi8NCj4gPiArVk9JRA0K PiA+ICtFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNyAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICk7 DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdo IHRhc2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNNQy4NCj4gPiArICoqLw0KPiA+ICtWT0lEDQo+ID4g K0V4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTE4ICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKTsNCj4g PiArDQo+ID4gICNlbmRpZg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20uDQo+ID4g bmFzDQo+ID4gbQ0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJM aWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4NCj4gPiBuYXMNCj4gPiBtDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5kYmZiY2ZjZjUxDQo+ID4gLS0t IC9kZXYvbnVsbA0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvSWEzMi9FeGNlcHRpb25Uc3NFbnRyeUFzbS4NCj4gPiBuYXMNCj4gPiBtDQo+ ID4gQEAgLTAsMCArMSwzOTggQEANCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0g OyA7IENvcHlyaWdodCAoYykgMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4g PiArcmVzZXJ2ZWQuPEJSPiA7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRl cmlhbHMgOyBhcmUNCj4gPiArbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEDQo+ID4gTGljZW5zZQ0KPiA+ICs7IHdoaWNo IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGlj ZW5zZQ0KPiA+ICttYXkgYmUgZm91bmQNCj4gPiBhdA0KPiA+ICs7IGh0dHA6Ly9vcGVuc291cmNl Lm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+ID4gKzsNCj4gPiArOyBUSEUgUFJPR1JB TSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiA+ ICtCQVNJUywgOyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBL SU5ELCBFSVRIRVINCj4gPiArRVhQUkVTUw0KPiA+IE9SIElNUExJRUQuDQo+ID4gKzsNCj4gPiAr OyBNb2R1bGUgTmFtZToNCj4gPiArOw0KPiA+ICs7ICAgRXhjZXB0aW9uVHNzRW50cnlBc20uQXNt DQo+ID4gKzsNCj4gPiArOyBBYnN0cmFjdDoNCj4gPiArOw0KPiA+ICs7ICAgSUEzMiBDUFUgRXhj ZXB0aW9uIEhhbmRsZXIgd2l0aCBTZXBhcmF0ZSBTdGFjaw0KPiA+ICs7DQo+ID4gKzsgTm90ZXM6 DQo+ID4gKzsNCj4gPiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArDQo+ID4g KzsNCj4gPiArOyBJQTMyIFRTUyBNZW1vcnkgTGF5b3V0IERlc2NyaXB0aW9uDQo+ID4gKzsNCj4g PiArc3RydWMgSUEzMl9UU1MNCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiAr ICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuRVNQMDogICAgcmVzZCAxDQo+ID4g KyAgLlNTMDogICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ ICsgIC5FU1AxOiAgICByZXNkIDENCj4gPiArICAuU1MxOiAgICAgcmVzdyAxDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLkVTUDI6ICAgIHJlc2QgMQ0KPiA+ICsgIC5T UzI6ICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAu X0NSMzogICAgcmVzZCAxDQo+ID4gKyAgLkVJUDogICAgIHJlc2QgMQ0KPiA+ICsgIC5FRkxBR1M6 ICByZXNkIDENCj4gPiArICAuX0VBWDogICAgcmVzZCAxDQo+ID4gKyAgLl9FQ1g6ICAgIHJlc2Qg MQ0KPiA+ICsgIC5fRURYOiAgICByZXNkIDENCj4gPiArICAuX0VCWDogICAgcmVzZCAxDQo+ID4g KyAgLl9FU1A6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRUJQOiAgICByZXNkIDENCj4gPiArICAuX0VT STogICAgcmVzZCAxDQo+ID4gKyAgLl9FREk6ICAgIHJlc2QgMQ0KPiA+ICsgIC5fRVM6ICAgICBy ZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0NTOiAgICAg cmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9TUzogICAg IHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5fRFM6ICAg ICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAuX0ZTOiAg ICAgcmVzdyAxDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQo+ID4gKyAgLl9HUzog ICAgIHJlc3cgMQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KPiA+ICsgIC5MRFQ6 ICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAgICAg ICAgICAgICAgICAgICByZXN3IDENCj4gPiArICAgICAgICAgICAgICAgICAgICByZXN3IDENCj4g PiArZW5kc3RydWMNCj4gPiArDQo+ID4gKzsNCj4gPiArOyBDb21tb25FeGNlcHRpb25IYW5kbGVy KCkNCj4gPiArOw0KPiA+ICtleHRlcm4gQVNNX1BGWChDb21tb25FeGNlcHRpb25IYW5kbGVyKQ0K PiA+ICsNCj4gPiArU0VDVElPTiAuZGF0YQ0KPiA+ICsNCj4gPiArU0VDVElPTiAudGV4dA0KPiA+ ICsNCj4gPiArQUxJR04gICA4DQo+ID4gKw0KPiA+ICs7DQo+ID4gKzsgZXhjZXB0aW9uIGhhbmRs ZXIgc3R1YiB0YWJsZQ0KPiA+ICs7DQo+ID4gKyVtYWNybyBEZWZFeGNlcHRpb25UYXNrU3d0aWNo RW50cnkgMQ0KPiA+ICslJURvSXJldDoNCj4gPiArICAgIGlyZXRkDQo+ID4gKw0KPiA+ICtnbG9i YWwgQVNNX1BGWChFeGNlcHRpb25UYXNrU3d0aWNoRW50cnklMSkNCj4gPiArQVNNX1BGWChFeGNl cHRpb25UYXNrU3d0aWNoRW50cnklMSk6DQo+ID4gKyAgICBkYiAgICAgIDB4NmEgICAgICAgIDsg cHVzaCAgI1ZlY3Rvck51bQ0KPiA+ICsgICAgZGIgICAgICAlMSAgICAgICAgICA7IFZlY3Rvck51 bQ0KPiA+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9p bnQpDQo+ID4gKyAgICBjYWxsICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlc3AsIGVheCAgICA7 IFJlc3RvcmUgc3RhY2sgdG9wDQo+ID4gKyAgICBqbXAgICAgICUlRG9JcmV0DQo+ID4gKyVlbmRt YWNybw0KPiA+ICsNCj4gPiArZ2xvYmFsIEFTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9p bnQpDQo+ID4gK0FTTV9QRlgoQ29tbW9uVGFza1N3dGljaEVudHJ5UG9pbnQpOg0KPiA+ICsgICAg Ow0KPiA+ICsgICAgOyBTdGFjazoNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsg PC0tIEVCUCAtIDgNCj4gPiArICAgIDsgKyAgICAgICBUU1MgQmFzZSAgICAgICsNCj4gPiArICAg IDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCAtIDQNCj4gPiArICAgIDsgKyAgICAg IENQVUlELkVEWCAgICAgICsNCj4gPiArICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0t IEVCUA0KPiA+ICsgICAgOyArICAgICAgICAgRUlQICAgICAgICAgKw0KPiA+ICsgICAgOyArLS0t LS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQICsgNA0KPiA+ICsgICAgOyArICAgIFZlY3RvciBO dW1iZXIgICAgKw0KPiA+ICsgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA8LS0gRUJQICsg OA0KPiA+ICsgICAgOyArICAgIEVycm9yIENvZGUgICAgICAgKw0KPiA+ICsgICAgOyArLS0tLS0t LS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICAgOw0KPiA+ICs7DQo+ID4gKzsgR2V0IFRTUyBvZiBp bnRlcnJ1cHRlZCB0YXNrDQo+ID4gKzsNCj4gPiArICAgIG1vdiAgICAgZWJwLCBlc3AgICAgICAg ICAgICAgICAgICAgIDsgU3RhY2sgZnJhbWUNCj4gPiArDQo+ID4gKzsgVXNlIENQVUlEIHRvIGRl dGVybWluZSBpZiBGWFNBVkUvRlhSRVNUT1IgYW5kIERFIGFyZSBzdXBwb3J0ZWQNCj4gPiArICAg IG1vdiAgICAgZWF4LCAxDQo+ID4gKyAgICBjcHVpZA0KPiA+ICsgICAgcHVzaCAgICBlZHgNCj4g PiArDQo+ID4gKzsgR2V0IFRTUyBiYXNlIG9mIGludGVycnVwdGVkIHRhc2sgdGhyb3VnaCBQcmV2 aW91c1Rhc2tMaW5rIGZpZWxkIGluDQo+ID4gKzsgY3VycmVudCBUU1MgYmFzZQ0KPiA+ICsgICAg c3ViICAgICBlc3AsIDgNCj4gPiArICAgIHNnZHQgICAgW2VzcCArIDJdDQo+ID4gKyAgICBtb3Yg ICAgIGVheCwgW2VzcCArIDRdICAgICAgICAgICAgICA7IEdEVCBiYXNlDQo+ID4gKyAgICBhZGQg ICAgIGVzcCwgOA0KPiA+ICsNCj4gPiArICAgIHhvciAgICAgZWJ4LCBlYngNCj4gPiArICAgIHN0 ciAgICAgYnggICAgICAgICAgICAgICAgICAgICAgICAgIDsgQ3VycmVudCBUUg0KPiA+ICsNCj4g PiArICAgIG1vdiAgICAgZWN4LCBbZWF4ICsgZWJ4ICsgMl0NCj4gPiArICAgIHNobCAgICAgZWN4 LCA4DQo+ID4gKyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4ICsgN10NCj4gPiArICAgIHJvciAg ICAgZWN4LCA4ICAgICAgICAgICAgICAgICAgICAgIDsgZWN4ID0gQ3VycmVudCBUU1MgYmFzZQ0K PiA+ICsgICAgcHVzaCAgICBlY3ggICAgICAgICAgICAgICAgICAgICAgICAgOyBrZWVwIGl0IGlu IHN0YWNrIGZvciBsYXRlciB1c2UNCj4gPiArDQo+ID4gKyAgICBtb3Z6eCAgIGVieCwgd29yZCBb ZWN4XSAgICAgICAgICAgICA7IFByZXZpb3VzIFRhc2sgTGluaw0KPiA+ICsgICAgbW92ICAgICBl Y3gsIFtlYXggKyBlYnggKyAyXQ0KPiA+ICsgICAgc2hsICAgICBlY3gsIDgNCj4gPiArICAgIG1v diAgICAgY2wsIFtlYXggKyBlYnggKyA3XQ0KPiA+ICsgICAgcm9yICAgICBlY3gsIDggICAgICAg ICAgICAgICAgICAgICAgOyBlY3ggPSBQcmV2aW91cyBUU1MgYmFzZQ0KPiA+ICsNCj4gPiArOw0K PiA+ICs7IEFsaWduIHN0YWNrIHRvIG1ha2Ugc3VyZSB0aGF0IEVGSV9GWF9TQVZFX1NUQVRFX0lB MzIgb2YNCj4gPiBFRklfU1lTVEVNX0NPTlRFWFRfSUEzMg0KPiA+ICs7IGlzIDE2LWJ5dGUgYWxp Z25lZA0KPiA+ICs7DQo+ID4gKyAgICBhbmQgICAgIGVzcCwgMHhmZmZmZmZmMA0KPiA+ICsgICAg c3ViICAgICBlc3AsIDEyDQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVz cCwgRWJ4LCBFZHgsIEVjeCwgRWF4Ow0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuX0VBWF0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQ1hd DQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURYXQ0KPiA+ICsgICAg cHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VCWF0NCj4gPiArICAgIHB1c2ggICAgZHdv cmQgW2VjeCArIElBMzJfVFNTLl9FU1BdDQo+ID4gKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJ QTMyX1RTUy5fRUJQXQ0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VT SV0NCj4gPiArICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FREldDQo+ID4gKw0K PiA+ICs7OyBVSU5UMzIgIEdzLCBGcywgRXMsIERzLCBDcywgU3M7DQo+ID4gKyAgICBtb3Z6eCAg IGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX1NTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4g PiArICAgIG1vdnp4ICAgZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fQ1NdDQo+ID4gKyAgICBw dXNoICAgIGVheA0KPiA+ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9E U10NCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0VTXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdnp4ICAg ZWF4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRlNdDQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ ICsgICAgbW92enggICBlYXgsIHdvcmQgW2VjeCArIElBMzJfVFNTLl9HU10NCj4gPiArICAgIHB1 c2ggICAgZWF4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIEVpcDsNCj4gPiArICAgIHB1c2ggICAg ZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJUF0NCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgR2R0clsy XSwgSWR0clsyXTsNCj4gPiArICAgIHN1YiAgICAgZXNwLCA4DQo+ID4gKyAgICBzaWR0ICAgIFtl c3BdDQo+ID4gKyAgICBtb3YgICAgIGVheCwgW2VzcCArIDJdDQo+ID4gKyAgICB4Y2hnICAgIGVh eCwgW2VzcF0NCj4gPiArICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCj4gPiArICAgIG1vdiAgICAg W2VzcCs0XSwgZWF4DQo+ID4gKw0KPiA+ICsgICAgc3ViICAgICBlc3AsIDgNCj4gPiArICAgIHNn ZHQgICAgW2VzcF0NCj4gPiArICAgIG1vdiAgICAgZWF4LCBbZXNwICsgMl0NCj4gPiArICAgIHhj aGcgICAgZWF4LCBbZXNwXQ0KPiA+ICsgICAgYW5kICAgICBlYXgsIDB4RkZGRg0KPiA+ICsgICAg bW92ICAgICBbZXNwKzRdLCBlYXgNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgTGR0ciwgVHI7DQo+ ID4gKyAgICBtb3YgICAgIGVheCwgZWJ4ICAgIDsgZWJ4IHN0aWxsIGtlZXBzIHNlbGVjdG9yIG9m IGludGVycnVwdGVkIHRhc2sNCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3Z6eCAg IGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuTERUXQ0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4g PiArDQo+ID4gKzs7IFVJTlQzMiAgRUZsYWdzOw0KPiA+ICsgICAgcHVzaCAgICBkd29yZCBbZWN4 ICsgSUEzMl9UU1MuRUZMQUdTXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBDcjAsIENyMSwgQ3Iy LCBDcjMsIENyNDsNCj4gPiArICAgIG1vdiAgICAgZWF4LCBjcjQNCj4gPiArICAgIHB1c2ggICAg ZWF4ICAgICAgICAgICAgIDsgcHVzaCBjcjQgZmlyc3RseQ0KPiA+ICsNCj4gPiArICAgIG1vdiAg ICAgZWR4LCBbZWJwIC0gNF0gIDsgY3B1aWQuZWR4DQo+ID4gKyAgICB0ZXN0ICAgIGVkeCwgQklU MjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0DQo+ID4gKyAgICBqeiAg ICAgIC4xDQo+ID4gKyAgICBvciAgICAgIGVheCwgQklUOSAgICAgICA7IFNldCBDUjQuT1NGWFNS DQo+ID4gKy4xOg0KPiA+ICsgICAgdGVzdCAgICBlZHgsIEJJVDIgICAgICAgOyBUZXN0IGZvciBE ZWJ1Z2dpbmcgRXh0ZW5zaW9ucyBzdXBwb3J0DQo+ID4gKyAgICBqeiAgICAgIC4yDQo+ID4gKyAg ICBvciAgICAgIGVheCwgQklUMyAgICAgICA7IFNldCBDUjQuREUNCj4gPiArLjI6DQo+ID4gKyAg ICBtb3YgICAgIGNyNCwgZWF4DQo+ID4gKw0KPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMw0KPiA+ ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBjcjINCj4gPiArICAgIHB1 c2ggICAgZWF4DQo+ID4gKyAgICB4b3IgICAgIGVheCwgZWF4DQo+ID4gKyAgICBwdXNoICAgIGVh eA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGNyMA0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiAr DQo+ID4gKzs7IFVJTlQzMiAgRHIwLCBEcjEsIERyMiwgRHIzLCBEcjYsIERyNzsNCj4gPiArICAg IG1vdiAgICAgZWF4LCBkcjcNCj4gPiArICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAg IGVheCwgZHI2DQo+ID4gKyAgICBwdXNoICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRy Mw0KPiA+ICsgICAgcHVzaCAgICBlYXgNCj4gPiArICAgIG1vdiAgICAgZWF4LCBkcjINCj4gPiAr ICAgIHB1c2ggICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHIxDQo+ID4gKyAgICBwdXNo ICAgIGVheA0KPiA+ICsgICAgbW92ICAgICBlYXgsIGRyMA0KPiA+ICsgICAgcHVzaCAgICBlYXgN Cj4gPiArDQo+ID4gKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNhdmVTdGF0ZTsNCj4gPiArOzsg Q2xlYXIgVFMgYml0IGluIENSMCB0byBhdm9pZCBEZXZpY2UgTm90IEF2YWlsYWJsZSBFeGNlcHRp b24gKCNOTSkNCj4gPiArOzsgd2hlbiBleGVjdXRpbmcgZnhzYXZlL2Z4cnN0b3IgaW5zdHJ1Y3Rp b24NCj4gPiArICAgIHRlc3QgICAgZWR4LCBCSVQyNCAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNU T1Igc3VwcG9ydC4NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgOyBlZHggc3RpbGwgY29u dGFpbnMgcmVzdWx0IGZyb20gQ1BVSUQgYWJvdmUNCj4gPiArICAgIGp6ICAgICAgLjMNCj4gPiAr ICAgIGNsdHMNCj4gPiArICAgIHN1YiAgICAgZXNwLCA1MTINCj4gPiArICAgIG1vdiAgICAgZWRp LCBlc3ANCj4gPiArICAgIGRiICAgICAgMHhmLCAweGFlLCAweDcgO2Z4c2F2ZSBbZWRpXQ0KPiA+ ICsuMzoNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCj4gPiArICAgIHB1 c2ggICAgZHdvcmQgW2VicCArIDhdDQo+ID4gKw0KPiA+ICs7OyBVRUZJIGNhbGxpbmcgY29udmVu dGlvbiBmb3IgSUEzMiByZXF1aXJlcyB0aGF0IERpcmVjdGlvbiBmbGFnIGluIEVGTEFHcyBpcyBj bGVhcg0KPiA+ICsgICAgY2xkDQo+ID4gKw0KPiA+ICs7OyBjYWxsIGludG8gZXhjZXB0aW9uIGhh bmRsZXINCj4gPiArICAgIG1vdiAgICAgZXNpLCBlY3ggICAgICAgICAgICA7IEtlZXAgVFNTIGJh c2UgdG8gYXZvaWQgb3ZlcndyaXRlDQo+ID4gKyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChDb21t b25FeGNlcHRpb25IYW5kbGVyKQ0KPiA+ICsNCj4gPiArOzsgUHJlcGFyZSBwYXJhbWV0ZXIgYW5k IGNhbGwNCj4gPiArICAgIG1vdiAgICAgZWR4LCBlc3ANCj4gPiArICAgIHB1c2ggICAgZWR4ICAg ICAgICAgICAgICAgICA7IEVGSV9TWVNURU1fQ09OVEVYVA0KPiA+ICsgICAgcHVzaCAgICBkd29y ZCBbZWJwICsgNF0gICAgIDsgRUZJX0VYQ0VQVElPTl9UWVBFICh2ZWN0b3IgbnVtYmVyKQ0KPiA+ ICsNCj4gPiArICAgIDsNCj4gPiArICAgIDsgQ2FsbCBFeHRlcm5hbCBFeGNlcHRpb24gSGFuZGxl cg0KPiA+ICsgICAgOw0KPiA+ICsgICAgY2FsbCAgICBlYXgNCj4gPiArICAgIGFkZCAgICAgZXNw LCA4ICAgICAgICAgICAgICA7IFJlc3RvcmUgc3RhY2sgYmVmb3JlIGNhbGxpbmcNCj4gPiArICAg IG1vdiAgICAgZWN4LCBlc2kgICAgICAgICAgICA7IFJlc3RvcmUgVFNTIGJhc2UNCj4gPiArDQo+ ID4gKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCj4gPiArICAgIGFkZCAgICAgZXNwLCA0DQo+ ID4gKw0KPiA+ICs7OyBGWF9TQVZFX1NUQVRFX0lBMzIgRnhTYXZlU3RhdGU7DQo+ID4gKyAgICBt b3YgICAgIGVkeCwgW2VicCAtIDRdICA7IGNwdWlkLmVkeA0KPiA+ICsgICAgdGVzdCAgICBlZHgs IEJJVDI0ICAgICAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydA0KPiA+ICsgICAg anogICAgICAuNA0KPiA+ICsgICAgbW92ICAgICBlc2ksIGVzcA0KPiA+ICsgICAgZGIgICAgICAw eGYsIDB4YWUsIDB4ZSAgOyBmeHJzdG9yIFtlc2ldDQo+ID4gKy40Og0KPiA+ICsgICAgYWRkICAg ICBlc3AsIDUxMg0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERy NiwgRHI3OyA7OyBTa2lwIHJlc3RvcmF0aW9uIG9mIERSeA0KPiA+ICtyZWdpc3RlcnMgdG8gc3Vw cG9ydCBkZWJ1Z2dlcnMgOzsgdGhhdCBzZXQgYnJlYWtwb2ludHMgaW4NCj4gPiAraW50ZXJydXB0 L2V4Y2VwdGlvbiBjb250ZXh0DQo+ID4gKyAgICBhZGQgICAgIGVzcCwgNCAqIDYNCj4gPiArDQo+ ID4gKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQo+ID4gKyAgICBwb3AgICAg IGVheA0KPiA+ICsgICAgbW92ICAgICBjcjAsIGVheA0KPiA+ICsgICAgYWRkICAgICBlc3AsIDQg ICAgOyBub3QgZm9yIENyMQ0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArICAgIG1vdiAgICAg Y3IyLCBlYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gKyAgICBtb3YgICAgIGR3b3JkIFtl Y3ggKyBJQTMyX1RTUy5fQ1IzXSwgZWF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICsgICAg bW92ICAgICBjcjQsIGVheA0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBFRmxhZ3M7DQo+ID4gKyAg ICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gKyAgICBtb3YgICAg IGVieCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10NCj4gPiArICAgIGJ0ciAgICAgZWJ4 LCA5ICAgICAgOyBEbyAnY2xpJw0KPiA+ICsgICAgbW92ICAgICBkd29yZCBbZWN4ICsgSUEzMl9U U1MuRUZMQUdTXSwgZWJ4DQo+ID4gKw0KPiA+ICs7OyBVSU5UMzIgIExkdHIsIFRyOw0KPiA+ICs7 OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQo+ID4gKzs7IEJlc3Qgbm90IGxldCBhbnlvbmUg bWVzcyB3aXRoIHRoZXNlIHBhcnRpY3VsYXIgcmVnaXN0ZXJzLi4uDQo+ID4gKyAgICBhZGQgICAg IGVzcCwgMjQNCj4gPiArDQo+ID4gKzs7IFVJTlQzMiAgRWlwOw0KPiA+ICsgICAgcG9wICAgICBk d29yZCBbZWN4ICsgSUEzMl9UU1MuRUlQXQ0KPiA+ICsNCj4gPiArOzsgVUlOVDMyICBHcywgRnMs IEVzLCBEcywgQ3MsIFNzOw0KPiA+ICs7OyBOT1RFIC0gbW9kaWZpZWQgc2VnbWVudCByZWdpc3Rl cnMgY291bGQgaGFuZyB0aGUgZGVidWdnZXIuLi4gIFdlDQo+ID4gKzs7ICAgICAgICBjb3VsZCBh dHRlbXB0IHRvIGluc3VsYXRlIG91cnNlbHZlcyBhZ2FpbnN0IHRoaXMgcG9zc2liaWxpdHksDQo+ ID4gKzs7ICAgICAgICBidXQgdGhhdCBwb3NlcyByaXNrcyBhcyB3ZWxsLg0KPiA+ICs7Ow0KPiA+ ICsgICAgcG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAgICAgW2VjeCArIElBMzJfVFNTLl9HU10s IGF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9U U1MuX0ZTXSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4DQo+ID4gK28xNiBtb3YgICAgIFtlY3gg KyBJQTMyX1RTUy5fRVNdLCBheA0KPiA+ICsgICAgcG9wICAgICBlYXgNCj4gPiArbzE2IG1vdiAg ICAgW2VjeCArIElBMzJfVFNTLl9EU10sIGF4DQo+ID4gKyAgICBwb3AgICAgIGVheA0KPiA+ICtv MTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1MuX0NTXSwgYXgNCj4gPiArICAgIHBvcCAgICAgZWF4 DQo+ID4gK28xNiBtb3YgICAgIFtlY3ggKyBJQTMyX1RTUy5fU1NdLCBheA0KPiA+ICsNCj4gPiAr OzsgVUlOVDMyICBFZGksIEVzaSwgRWJwLCBFc3AsIEVieCwgRWR4LCBFY3gsIEVheDsNCj4gPiAr ICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FREldDQo+ID4gKyAgICBwb3AgICAg IGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNJXQ0KPiA+ICsgICAgYWRkICAgICBlc3AsIDQgICA7 IG5vdCBmb3IgZWJwDQo+ID4gKyAgICBhZGQgICAgIGVzcCwgNCAgIDsgbm90IGZvciBlc3ANCj4g PiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQo+ID4gKyAgICBwb3Ag ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURYXQ0KPiA+ICsgICAgcG9wICAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuX0VDWF0NCj4gPiArICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJf VFNTLl9FQVhdDQo+ID4gKw0KPiA+ICs7IFNldCBzaW5nbGUgc3RlcCBEQiMgdG8gYWxsb3cgZGVi dWdnZXIgdG8gYWJsZSB0byBnbyBiYWNrIHRvIHRoZSBFSVANCj4gPiArOyB3aGVyZSB0aGUgZXhj ZXB0aW9uIGlzIHRyaWdnZXJlZC4NCj4gPiArDQo+ID4gKzs7IENyZWF0ZSByZXR1cm4gY29udGV4 dCBmb3IgaXJldGQgaW4gc3R1YiBmdW5jdGlvbg0KPiA+ICsgICAgbW92ICAgIGVheCwgZHdvcmQg W2VjeCArIElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNrIHBvaW50ZXINCj4gPiAr ICAgIG1vdiAgICBlYngsIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQo+ID4gKyAgICBtb3Yg ICAgW2VheCAtIDB4Y10sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBFSVAgaW4g b2xkIHN0YWNrDQo+ID4gKyAgICBtb3Z6eCAgZWJ4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5fQ1Nd DQo+ID4gKyAgICBtb3YgICAgW2VheCAtIDB4OF0sIGVieCAgICAgICAgICAgICAgICAgICAgICA7 IGNyZWF0ZSBDUyBpbiBvbGQgc3RhY2sNCj4gPiArICAgIG1vdiAgICBlYngsIGR3b3JkIFtlY3gg KyBJQTMyX1RTUy5FRkxBR1NdDQo+ID4gKyAgICBidHMgICAgZWJ4LCA4DQo+ID4gKyAgICBtb3Yg ICAgW2VheCAtIDB4NF0sIGVieCAgICAgICAgICAgICAgICAgICAgICA7IGNyZWF0ZSBlZmxhZ3Mg aW4gb2xkDQo+IHN0YWNrDQo+ID4gKyAgICBtb3YgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVG TEFHU10sIGVieCAgICA7IHVwZGF0ZSBlZmxhZ3MgaW4gb2xkDQo+IFRTUw0KPiA+ICsgICAgbW92 ICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNr IHBvaW50ZXINCj4gPiArICAgIHN1YiAgICBlYXgsIDB4YyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgbWludXMgMTIgYnl0ZQ0KPiA+ICsgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMy X1RTUy5fRVNQXSwgZWF4ICAgICAgOyBTZXQgbmV3IHN0YWNrIHBvaW50ZXINCj4gPiArDQo+ID4g Kzs7IFJlcGxhY2UgdGhlIEVJUCBvZiBpbnRlcnJ1cHRlZCB0YXNrIHdpdGggc3R1YiBmdW5jdGlv bg0KPiA+ICsgICAgbW92ICAgIGVheCwgQVNNX1BGWChTaW5nbGVTdGVwU3R1YkZ1bmN0aW9uKQ0K PiA+ICsgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdLCBlYXgNCj4gPiArDQo+ ID4gKyAgICBtb3YgICAgIGVjeCwgW2VicCAtIDhdICAgICAgICAgICAgICAgICAgICAgICA7IEdl dCBjdXJyZW50IFRTUyBiYXNlDQo+ID4gKyAgICBtb3YgICAgIGVheCwgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9FU1BdICAgICA7IFJldHVybiBjdXJyZW50IHN0YWNrDQo+IHRvcA0KPiA+ICsgICAg bW92ICAgICBlc3AsIGVicA0KPiA+ICsNCj4gPiArICAgIHJldA0KPiA+ICsNCj4gPiArZ2xvYmFs IEFTTV9QRlgoU2luZ2xlU3RlcFN0dWJGdW5jdGlvbikNCj4gPiArQVNNX1BGWChTaW5nbGVTdGVw U3R1YkZ1bmN0aW9uKToNCj4gPiArOw0KPiA+ICs7IHdlIG5lZWQgY2xlYW4gVFMgYml0IGluIENS MCB0byBleGVjdXRlIDsgeDg3DQo+ID4gK0ZQVS9NTVgvU1NFL1NTRTIvU1NFMy9TU1NFMy9TU0U0 IGluc3RydWN0aW9ucy4NCj4gPiArOw0KPiA+ICsgICAgY2x0cw0KPiA+ICsgICAgaXJldGQNCj4g PiArDQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gKzsgVk9JRA0KPiA+ ICs7IEFzbVdyaXRlVHIgKA0KPiA+ICs7ICAgVUlOVDE2IFNlbGVjdG9yDQo+ID4gKzsgICApOw0K PiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICtnbG9iYWwgQVNNX1BGWChB c21Xcml0ZVRyKQ0KPiA+ICtBU01fUEZYKEFzbVdyaXRlVHIpOg0KPiA+ICsgICAgbW92ICAgICBl YXgsIFtlc3ArNF0NCj4gPiArICAgIGx0ciAgICAgYXgNCj4gPiArICAgIHJldA0KPiA+ICsNCj4g PiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDYNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3 dGljaEVudHJ5IDgNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDEyDQo+ID4gK0Rl ZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxMw0KPiA+ICtEZWZFeGNlcHRpb25UYXNrU3d0aWNo RW50cnkgMTQNCj4gPiArRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE3DQo+ID4gK0RlZkV4 Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSAxOA0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25I YW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBpbmRl eCA3NTQ0MzI4OGE5Li40YzBkNDM1MTM2IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi4NCj4gPiBpbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ID4gQEAg LTMwLDYgKzMwLDcgQEANCj4gPiAgW1NvdXJjZXMuSWEzMl0NCj4gPiAgICBJYTMyL0V4Y2VwdGlv bkhhbmRsZXJBc20uYXNtDQo+ID4gICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCj4g PiArICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCj4gPiAgICBJYTMyL0V4Y2VwdGlv bkhhbmRsZXJBc20uUw0KPiA+ICAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KPiA+ICAg IElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRs ZXJMDQo+ID4gaWIuaQ0KPiA+IG5mDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTA0KPiA+IGliLmkNCj4gPiBu Zg0KPiA+IGluZGV4IGQ3MGE5OWMxMDAuLmFkYjQxNWJhNWEgMTAwNjQ0DQo+ID4gLS0tDQo+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNl cHRpb25IYW5kbGVyTA0KPiA+IGliLmkNCj4gPiBuZg0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxl ckwNCj4gPiBpYi5pDQo+ID4gbmYNCj4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ICBbU291cmNl cy5JYTMyXQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiAgICBJYTMy L0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlB c20ubmFzbQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gICAgSWEzMi9B cmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ ID4gQEAgLTU3LDMgKzU4LDUgQEANCj4gPiAgICBQcmludExpYg0KPiA+ICAgIExvY2FsQXBpY0xp Yg0KPiA+ICAgIFBlQ29mZkdldEVudHJ5UG9pbnRMaWINCj4gPiArICBNZW1vcnlBbGxvY2F0aW9u TGliDQo+ID4gKw0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuDQo+ID4gaW5mDQo+ ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNl cHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+IGluZGV4IDYzNGZmY2IyMWQuLjU2Yjg3NWI3 YzggMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+ICsrKw0K PiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiBAQCAtMzAsNiArMzAsNyBAQA0KPiA+ICBb U291cmNlcy5JYTMyXQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCj4gPiAg ICBJYTMyL0V4Y2VwdGlvbkhhbmRsZXJBc20ubmFzbQ0KPiA+ICsgIElhMzIvRXhjZXB0aW9uVHNz RW50cnlBc20ubmFzbQ0KPiA+ICAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQo+ID4gICAg SWEzMi9BcmNoRXhjZXB0aW9uSGFuZGxlci5jDQo+ID4gICAgSWEzMi9BcmNoSW50ZXJydXB0RGVm cy5oDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCj4gPiBiL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFuZGxlci5j DQo+ID4gaW5kZXggNjVmMGNmZjY4MC4uMjRmMmE4NDg2YSAxMDA2NDQNCj4gPiAtLS0NCj4gPiBh L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0 aW9uSGFuZGxlci5jDQo+ID4gKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbA0KPiA+ICsrKyBlci5jDQo+ID4gQEAgLTE0 LDYgKzE0LDE5IEBADQo+ID4NCj4gPiAgI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0K PiA+DQo+ID4gKy8vDQo+ID4gKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5nIHNlcGFyYXRl IHN0YWNrIC8vIFNUQVRJQyBVSU5UTg0KPiA+ICttRXhjZXB0aW9uc1dpdGhTdGFja1tdID0gew0K PiA+ICsgIDYsICAvLyNVRDogSW52YWxpZCBPcGNvZGUgRXhjZXB0aW9uDQo+ID4gKyAgOCwgIC8v I0RGOiBEb3VibGUgRmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgMTIsIC8vI1NTOiBTdGFjayBGYXVs dCBFeGNlcHRpb24NCj4gPiArICAxMywgLy8jR1A6IEdlbmVyYWwgUHJvdGVjdGlvbiBFeGNlcHRp b24NCj4gPiArICAxNCwgLy8jUEY6IFBhZ2UtRmF1bHQgRXhjZXB0aW9uDQo+ID4gKyAgMTcsIC8v I0FDOiBBbGlnbm1lbnQgQ2hlY2sgRXhjZXB0aW9uDQo+ID4gKyAgMTggIC8vI01DOiBNYWNoaW5l LUNoZWNrIEV4Y2VwdGlvbg0KPiA+ICsgIH07DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICBSZXR1 cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVtcGxhdGUgc28gdGhhdCBDIGNv ZGUgY2FuDQo+ID4gZ2VuZXJhdGUNCj4gPiAgICBleGNlcHRpb24gdGFibGVzLg0KPiA+IEBAIC0x MTIsNiArMTI1LDEwMSBAQCBBcmNoUmVzdG9yZUV4Y2VwdGlvbkNvbnRleHQgKA0KPiA+ICAgIFN5 c3RlbUNvbnRleHQuU3lzdGVtQ29udGV4dFg2NC0+RXhjZXB0aW9uRGF0YSA9DQo+ID4gUmVzZXJ2 ZWRWZWN0b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlvbkRhdGE7DQo+ID4gIH0NCj4gPg0KPiA+ ICsvKioNCj4gPiArICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9u cy4NCj4gPiArDQo+ID4gKyAgQHBhcmFtW2luXSBJZHRUYWJsZSAgICAgICAgSURUIHRhYmxlIGJh c2UuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtBcmNoU2V0dXBFeGNw ZXRpb25TdGFjayAoDQo+ID4gKyAgSU4gSUEzMl9JRFRfR0FURV9ERVNDUklQVE9SICAgICAgICAg ICAqSWR0VGFibGUNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBWT0lEICAgICAgICAgICAgICAg ICAgICAgICpOZXdHZHQ7DQo+ID4gKyAgSUEzMl9ERVNDUklQVE9SICAgICAgICAgICBHZHREZXNj Ow0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgT2xkR2R0U2l6ZTsNCj4gPiArICBU U1NfRU5UUklFUyAgICAgICAgICAgICAgICpUc3NFbnRyeTsNCj4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgIFN0YWNrQmFzZTsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAg IFN0YWNrVG9wOw0KPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgU3RhY2tTaXplOw0K PiA+ICsgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVHNzQmFzZTsNCj4gPiArICBVSU5UTiAg ICAgICAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEFs bG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3IgdGhlIEdEVCAgLy8gIEFzbVJlYWRHZHRyKCZHZHREZXNj KTsNCj4gPiArIE9sZEdkdFNpemUgPSBHZHREZXNjLkxpbWl0ICsgMTsgIE5ld0dkdCA9DQo+ID4g KyBBbGxvY2F0ZVJ1bnRpbWVaZXJvUG9vbChPbGRHZHRTaXplICsgc2l6ZW9mKFRTU19FTlRSSUVT KQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgSUEzMl9HRFRfQUxJR05N RU5UKTsgIGlmIChOZXdHZHQNCj4gPT0NCj4gPiArIE5VTEwpIHsNCj4gPiArICAgIHJldHVybjsN Cj4gPiArICB9DQo+ID4gKyAgTmV3R2R0ID0gQUxJR05fUE9JTlRFUiAoTmV3R2R0LCBJQTMyX0dE VF9BTElHTk1FTlQpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEluaXRpYWxpemUgbmV3 IEdEVCBlbnRyaWVzDQo+ID4gKyAgLy8NCj4gPiArICBDb3B5TWVtKE5ld0dkdCwgKFZPSUQgKilH ZHREZXNjLkJhc2UsIE9sZEdkdFNpemUpOyAgR2R0RGVzYy5CYXNlID0NCj4gPiArIChVSU5UTiko Vk9JRCopTmV3R2R0OyAgR2R0RGVzYy5MaW1pdCA9IChVSU5UMTYpKE9sZEdkdFNpemUgKw0KPiA+ ICsgVFNTX09GRlNFVCAtIDEpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFJlc2VydmUg c3RhdGNrIG1lbW9yeSBmb3Igc3VwcG9ydGVkIGV4Y2VwdGlvbnMgIC8vICBTdGFja1NpemUgPQ0K PiA+ICsgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3RhY2spICogRVhDRVBUSU9OX1NUQUNL X1NJWkU7ICBTdGFja1NpemUNCj4gPiArID0gRUZJX1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RP X1BBR0VTIChTdGFja1NpemUpKTsgIFN0YWNrQmFzZSA9DQo+ID4gKyAoVUlOVDY0KUFsbG9jYXRl UGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsgIGlmDQo+ID4gKyAoU3RhY2tC YXNlID09IDApIHsNCj4gPiArICAgIEZyZWVQb29sIChOZXdHZHQpOw0KPiA+ICsgICAgcmV0dXJu Ow0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBGaXh1cCBUU1MgZGVzY3Jp cHRvcnMNCj4gPiArICAvLw0KPiA+ICsgIFRzc0VudHJ5ID0gKFZPSUQgKikoR2R0RGVzYy5CYXNl ICsgT2xkR2R0U2l6ZSk7ICBUc3NCYXNlID0NCj4gPiArIChVSU5UTikoVk9JRCAqKSZUc3NFbnRy eS0+VHNzOw0KPiA+ICsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTVfMCAgICAgICAg ICAgID0NCj4gPiBzaXplb2YoSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQpIC0gMTsNCj4gPiArICBU c3NFbnRyeS0+VHNzU2VnLkJhc2UxNV8wICAgICAgICAgICAgID0gKFVJTlQxNilUc3NCYXNlOw0K PiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAgPSAoVUlOVDgpKFRz c0Jhc2UgPj4gMTYpOw0KPiA+ICsgIFRzc0VudHJ5LT5Uc3NTZWcuVHlwZSAgICAgICAgICAgICAg ICAgPSBJQTMyX0dEVF9UWVBFX1RTUzsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkxpbWl0MTlf MTZfYW5kX2ZsYWdzID0gMDsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAg ICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCj4gPiArICBUc3NFbnRyeS0+VHNzU2Vn LkJhc2U2M18zMiAgICAgICAgICAgID0gKFVJTlQzMikoVHNzQmFzZSA+PiAzMik7DQo+ID4gKyAg VHNzRW50cnktPlRzc1NlZy5SZXNlcnZlZCAgICAgICAgICAgICA9IDA7DQo+ID4gKw0KPiA+ICsg IC8vDQo+ID4gKyAgLy8gRW5hYmxlIEludGVycnVwdCBTdGFjayBUYWJsZSAoSVNUKSBmb3IgZWFj aCByZXF1aXJlZCBleGNlcHRpb24NCj4gPiArIC8vICBTdGFja1RvcCAgPSBTdGFja0Jhc2UgKyBT dGFja1NpemUgLSBDUFVfU1RBQ0tfQUxJR05NRU5UOw0KPiA+ICsgU3RhY2tUb3AgID0gKFVJTlRO KUFMSUdOX1BPSU5URVIgKFN0YWNrVG9wLCBDUFVfU1RBQ0tfQUxJR05NRU5UKTsNCj4gPiArIGZv ciAoSW5kZXggPSAwOyBJbmRleCA8IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKTsg KytJbmRleCkgew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEZpeHVwIFRTUw0KPiA+ICsgICAg Ly8NCj4gPiArICAgIFRzc0VudHJ5LT5Uc3MuSVNUW0luZGV4XSA9IFN0YWNrVG9wOw0KPiA+ICsg ICAgU3RhY2tUb3AgLT0gRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQo+ID4gKw0KPiA+ICsgICAgLy8N Cj4gPiArICAgIC8vIFNldCB0aGUgSVNUIGZpZWxkIHRvIDEgdG8gZW5hYmxlIGNvcnJlc3BvbmRp bmcgSVNUDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgSWR0VGFibGVbbUV4Y2VwdGlvbnNXaXRoU3Rh Y2tbSW5kZXhdXS5CaXRzLlJlc2VydmVkXzAgPQ0KPiA+ICsgKFVJTlQ4KShJbmRleCArDQo+ID4g MSk7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFB1Ymxpc2ggdGhlIGNo YW5nZXMNCj4gPiArICAvLw0KPiA+ICsgIEFzbVdyaXRlR2R0cigmR2R0RGVzYyk7DQo+ID4gKw0K PiA+ICsgIC8vDQo+ID4gKyAgLy8gTG9hZCB0YXNrIHJlZ2lzdGVyDQo+ID4gKyAgLy8NCj4gPiAr ICBBc21Xcml0ZVRyICgoVUlOVDE2KShPbGRHZHRTaXplICsgVFNTX1NFTCkpOyB9DQo+ID4gKw0K PiA+ICAvKioNCj4gPiAgICBEaXNwbGF5IENQVSBpbmZvcm1hdGlvbi4NCj4gPg0KPiA+IGRpZmYg LS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2 NC9BcmNoSW50ZXJydXB0RGVmcy5oDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiA+IGluZGV4IDkwNjQ4MDEz NGEuLjVhOTEzYmFlN2IgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkv Q3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaA0KPiA+ICsrKyBi L1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJy dXB0RGVmcy4NCj4gPiArKysgaA0KPiA+IEBAIC00Myw0ICs0Myw0NCBAQCB0eXBlZGVmIHN0cnVj dCB7DQo+ID4gICAgVUlOVDggICAgICAgSG9va0FmdGVyU3R1YkhlYWRlckNvZGVbSE9PS0FGVEVS X1NUVUJfU0laRV07DQo+ID4gIH0gUkVTRVJWRURfVkVDVE9SU19EQVRBOw0KPiA+DQo+ID4gKyNw cmFnbWEgcGFjayAoMSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX0xJU1RfTUFYICAg ICAgICA3DQo+ID4gKyNkZWZpbmUgRVhDRVBUSU9OX1NUQUNLX1NJWkUgICAgICBFRklfUEFHRV9T SVpFDQo+ID4gKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAweDg5DQo+ID4gKyNk ZWZpbmUgSUEzMl9HRFRfQUxJR05NRU5UICAgICAgICA4DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0 cnVjdCB7DQo+ID4gKyAgVUlOVDMyICAgIFJlc2VydmVkXzA7DQo+ID4gKyAgVUlOVDY0ICAgIFJT UDA7DQo+ID4gKyAgVUlOVDY0ICAgIFJTUDE7DQo+ID4gKyAgVUlOVDY0ICAgIFJTUDI7DQo+ID4g KyAgVUlOVDY0ICAgIFJlc2VydmVkXzI4Ow0KPiA+ICsgIFVJTlQ2NCAgICBJU1RbN107DQo+ID4g KyAgVUlOVDY0ICAgIFJlc2VydmVkXzkyOw0KPiA+ICsgIFVJTlQxNiAgICBSZXNlcnZlZF8xMDA7 DQo+ID4gKyAgVUlOVDE2ICAgIElPTWFwQmFzZUFkZHJlc3M7DQo+ID4gK30gSUEzMl9UQVNLX1NU QVRFX1NFR01FTlQ7DQo+ID4gKw0KPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVDE2 ICAgIExpbWl0MTVfMDsNCj4gPiArICBVSU5UMTYgICAgQmFzZTE1XzA7DQo+ID4gKyAgVUlOVDgg ICAgIEJhc2UyM18xNjsNCj4gPiArICBVSU5UOCAgICAgVHlwZTsNCj4gPiArICBVSU5UOCAgICAg TGltaXQxOV8xNl9hbmRfZmxhZ3M7DQo+ID4gKyAgVUlOVDggICAgIEJhc2UzMV8yNDsNCj4gPiAr ICBVSU5UMzIgICAgQmFzZTYzXzMyOw0KPiA+ICsgIFVJTlQzMiAgICBSZXNlcnZlZDsNCj4gPiAr fSBJQTMyX1RTU19ERVNDUklQVE9SOw0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ ICsgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIFRzc1NlZzsNCj4gPiArICBJQTMyX1RB U0tfU1RBVEVfU0VHTUVOVCAgICAgICBUc3M7DQo+ID4gK30gVFNTX0VOVFJJRVM7DQo+ID4gKw0K PiA+ICsjcHJhZ21hIHBhY2sgKCkNCj4gPiArDQo+ID4gKyNkZWZpbmUgVFNTX1NFTCAgICAgICAg ICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzU2VnKQ0KPiA+ICsjZGVmaW5lIFRTU19PRkZT RVQgICAgICAgIE9GRlNFVF9PRiAoVFNTX0VOVFJJRVMsIFRzcykNCj4gPiArDQo+ID4gICNlbmRp Zg0KPiA+IGRpZmYgLS1naXQNCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4gPiBiL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCj4g PiBpbmRleCBlZGQzNjNjZGFhLi5iZGFmMTMyY2Y1IDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRs ZXJBc20uUw0KPiA+ICsrKw0KPiA+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KPiA+IEBAIC00MjksNiArNDI5LDE4 IEBAIEFTTV9QRlgoQXNtVmVjdG9yTnVtRml4dXApOg0KPiA+ICAgICAgcG9wcSAgICAgICVyYnAN Cj4gPiAgICAgIHJldA0KPiA+DQo+ID4gKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ ID4gKyMgVk9JRA0KPiA+ICsjIEFzbVdyaXRlVHIgKA0KPiA+ICsjICAgVUlOVDE2IFNlbGVjdG9y DQo+ID4gKyMgICApOw0KPiA+ICsjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICtB U01fR0xPQkFMIEFTTV9QRlgoQXNtV3JpdGVUcikNCj4gPiArQVNNX1BGWChBc21Xcml0ZVRyKToN Cj4gPiArICAgIG1vdmwgICAgJWVjeCwgJWVheA0KPiA+ICsgICAgbHRydyAgICAlYXgNCj4gPiAr ICAgIHJldA0KPiA+ICsNCj4gPiAgI0VORA0KPiA+DQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9u SGFuZGxlckFzbS5hcw0KPiA+IG0NCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzDQo+ID4gbQ0KPiA+IGluZGV4 IDcyNmM2NGExNDAuLmFlYzU2ZWY0YmYgMTAwNjQ0DQo+ID4gLS0tDQo+ID4gYS9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5h cw0KPiA+IG0NCj4gPiArKysNCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KPiA+IEBAIC0zODYsNCAr Mzg2LDE2IEBAIEFzbVZlY3Rvck51bUZpeHVwICAgUFJPQw0KPiA+ICAgICAgcmV0DQo+ID4gIEFz bVZlY3Rvck51bUZpeHVwICAgRU5EUA0KPiA+DQo+ID4gKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICstLS0t LS0tLS0tDQo+ID4gKzsgVk9JRA0KPiA+ICs7IEFzbVdyaXRlVHIgKA0KPiA+ICs7ICAgVUlOVDE2 IFNlbGVjdG9yDQo+ID4gKzsgICApOw0KPiA+ICs7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiArLS0tLS0tLS0t LQ0KPiA+ICtBc21Xcml0ZVRyIFBST0MgUFVCTElDDQo+ID4gKyAgICBtb3YgICAgIGVheCwgZWN4 DQo+ID4gKyAgICBsdHIgICAgIGF4DQo+ID4gKyAgICByZXQNCj4gPiArQXNtV3JpdGVUciBFTkRQ DQo+ID4gKw0KPiA+ICBFTkQNCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYQ0KPiA+ IHNtDQo+ID4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQv RXhjZXB0aW9uSGFuZGxlckFzbS5uYQ0KPiA+IHNtDQo+ID4gaW5kZXggYmE4OTkzZDg0Yi4uMWUy YWM0MTFiMCAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNl cHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gc20NCj4gPiAr KysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9F eGNlcHRpb25IYW5kbGVyQXNtLm5hDQo+ID4gc20gQEAgLTM4NSwzICszODUsMTUgQEAgQVNNX1BG WChBc21WZWN0b3JOdW1GaXh1cCk6DQo+ID4gICAgICBtb3YgICAgIFtyY3ggKyAoQFZlY3Rvck51 bSAtIEhvb2tBZnRlclN0dWJIZWFkZXJCZWdpbildLCBhbA0KPiA+ICAgICAgcmV0DQo+ID4NCj4g PiArOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+ID4gKy0tLS0tLS0tLS0NCj4gPiArOyBWT0lEDQo+ID4gKzsgQXNt V3JpdGVUciAoDQo+ID4gKzsgICBVSU5UMTYgU2VsZWN0b3INCj4gPiArOyAgICk7DQo+ID4gKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiA+ICstLS0tLS0tLS0tDQo+ID4gK2dsb2JhbCBBU01fUEZYKEFzbVdyaXRl VHIpDQo+ID4gK0FTTV9QRlgoQXNtV3JpdGVUcik6DQo+ID4gKyAgICBtb3YgICAgIGVheCwgZWN4 DQo+ID4gKyAgICBsdHIgICAgIGF4DQo+ID4gKyAgICByZXQNCj4gPiArDQo+ID4gLS0NCj4gPiAy LjE0LjEud2luZG93cy4xDQo+DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0DQo+IGVkazItZGV2ZWxAbGlz dHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCj4gaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+DQo+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGVkazItZGV2ZWwgbWFpbGluZyBs aXN0DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAx Lm9yZz4NCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVs DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsy LWRldmVsIG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnPg0KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5m by9lZGsyLWRldmVsDQo=