From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94356 invoked by alias); 24 Apr 2015 07:08:32 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 94345 invoked by uid 89); 24 Apr 2015 07:08:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.9 required=5.0 tests=AWL,BAYES_99,BAYES_999,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: na01-bn1-obe.outbound.protection.outlook.com Received: from mail-bn1bn0107.outbound.protection.outlook.com (HELO na01-bn1-obe.outbound.protection.outlook.com) (157.56.110.107) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA256 encrypted) ESMTPS; Fri, 24 Apr 2015 07:08:27 +0000 Received: from BY2PR02CA0016.namprd02.prod.outlook.com (10.242.32.16) by BLUPR02MB535.namprd02.prod.outlook.com (10.141.76.148) with Microsoft SMTP Server (TLS) id 15.1.136.25; Fri, 24 Apr 2015 07:08:23 +0000 Received: from BN1AFFO11FD031.protection.gbl (2a01:111:f400:7c10::121) by BY2PR02CA0016.outlook.office365.com (2a01:111:e400:2c2a::16) with Microsoft SMTP Server (TLS) id 15.1.148.16 via Frontend Transport; Fri, 24 Apr 2015 07:08:23 +0000 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; arm.com; dkim=none (message not signed) header.d=none; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Received: from atltwp02.amd.com (165.204.84.222) by BN1AFFO11FD031.mail.protection.outlook.com (10.58.52.185) with Microsoft SMTP Server id 15.1.154.14 via Frontend Transport; Fri, 24 Apr 2015 07:08:20 +0000 X-M-MSG: Received: from satlvexedge02.amd.com (satlvexedge02.amd.com [10.177.96.29]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by atltwp02.amd.com (Axway MailGate 5.3.1) with ESMTPS id 27A8FBD879A; Fri, 24 Apr 2015 02:08:16 -0500 (CDT) Received: from SATLEXDAG02.amd.com (10.181.40.5) by SATLVEXEDGE02.amd.com (10.177.96.29) with Microsoft SMTP Server (TLS) id 14.3.195.1; Fri, 24 Apr 2015 02:08:32 -0500 Received: from SATLEXDAG06.amd.com ([fe80::1557:d877:7f65:c17]) by SATLEXDAG02.amd.com ([fe80::9be:3efa:c185:761d%23]) with mapi id 14.03.0195.001; Fri, 24 Apr 2015 03:08:19 -0400 From: "Kumar, Venkataramanan" To: Kyrill Tkachov , GCC Patches CC: Marcus Shawcroft , Richard Earnshaw , James Greenhalgh , Evandro Menezes , Andrew Pinski Subject: RE: [PATCH][AArch64] Implement -m{cpu,tune,arch}=native using only /proc/cpuinfo Date: Fri, 24 Apr 2015 07:08:00 -0000 Message-ID: <7794A52CE4D579448B959EED7DD0A4723DCE9412@satlexdag06.amd.com> References: <55351FA9.4020603@arm.com> <55378A03.5040509@arm.com> <5537B95A.9050606@arm.com> In-Reply-To: <5537B95A.9050606@arm.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;BMV:1;SFV:NSPM;SFS:(10019020)(6009001)(428002)(377454003)(164054003)(479174004)(51704005)(199003)(189002)(377424004)(53754006)(13464003)(105586002)(46102003)(19580395003)(86362001)(47776003)(76176999)(19580405001)(575784001)(50466002)(15975445007)(5890100001)(2950100001)(2900100001)(2920100001)(92566002)(33656002)(87936001)(62966003)(77156002)(53416004)(106466001)(106116001)(54356999)(102836002)(23676002)(5001770100001)(101416001)(2656002)(5250100002)(50986999)(142933001);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR02MB535;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;A:1;MX:1;LANG:en; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR02MB535; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(5002010)(3002001);SRVR:BLUPR02MB535;BCL:0;PCL:0;RULEID:;SRVR:BLUPR02MB535; X-Forefront-PRVS: 05568D1FF7 X-OriginatorOrg: amd4.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2015 07:08:20.0129 (UTC) X-MS-Exchange-CrossTenant-Id: fde4dada-be84-483f-92cc-e026cbee8e96 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fde4dada-be84-483f-92cc-e026cbee8e96;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR02MB535 X-IsSubscribed: yes X-SW-Source: 2015-04/txt/msg01490.txt.bz2 SGkgS3lyaWxsLCANCg0KSSBjaGVja2VkIHRoaXMgcGF0Y2ggb24gQU1EIHNl YXR0bGUgYm9hcmQgYW5kIGl0IGJvb3RzdHJhcHBlZCBjbGVhbmx5IHdpdGgg IEJPT1RfQ0ZMQUdTPS1PMiAtbWNwdT1uYXRpdmUgYW5kIENGTEFHU19GT1Jf VEFSR0VUPS1PMiAtbWNwdT1uYXRpdmUuDQoNCldpdGggLW1jcHU9Y29ydGV4 LTU3LCAgSSBnZXQgDQoNCiAuY3B1IGNvcnRleC1hNTcrZnArc2ltZCtjcmMN Cm9wdGlvbnMgcGFzc2VkOiAgdGVzdC5jIC1tY3B1PWNvcnRleC1hNTcgLW1s aXR0bGUtZW5kaWFuIC1tYWJpPWxwNjQgLWF1eGJhc2Utc3RyaXANCg0KV2l0 aCDigJNtY3B1PW5hdGl2ZSwgSSBnZXQgDQoNCi5jcHUgY29ydGV4LWE1Nytm cCtzaW1kK2NyeXB0bytjcmMNCiBvcHRpb25zIHBhc3NlZDogIHRlc3QuYyAt bWxpdHRsZS1lbmRpYW4gLW1hYmk9bHA2NCAtbWNwdT1jb3J0ZXgtYTU3K2Zw K3NpbWQrY3J5cHRvK2NyYyAgLWF1eGJhc2Utc3RyaXANCg0KSXQgbWF0Y2hl cyB0aGUgZmVhdHVyZXMuICAgZXZ0c3RybSBpcyBub3QgcmVsZXZhbnQgIHRv IGNvbXBpbGVyIEkgYmVsaWV2ZS4gDQoNCkFub3RoZXIgdGhpbmcgaXMgZGV0 ZWN0aW5nIGNhY2hlIHNpemVzIGF1dG9tYXRpY2FsbHkuICAgQnV0IEkgdGhp bmsgYXMgb2Ygbm93IHdlIGhhdmUgbm90IHlldCBpbmNsdWRlZCBjYWNoZSBw YXJhbWV0ZXJzIGluIGFhcmNoNjQgdHVuZSB0YWJsZXMuICANCg0KDQpSZWdh cmRzLA0KVmVua2F0Lg0KDQogIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQpGcm9tOiBnY2MtcGF0Y2hlcy1vd25lckBnY2MuZ251Lm9yZyBbbWFpbHRv OmdjYy1wYXRjaGVzLW93bmVyQGdjYy5nbnUub3JnXSBPbiBCZWhhbGYgT2Yg S3lyaWxsIFRrYWNob3YNClNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMjIsIDIw MTUgODozOCBQTQ0KVG86IEdDQyBQYXRjaGVzDQpDYzogTWFyY3VzIFNoYXdj cm9mdDsgUmljaGFyZCBFYXJuc2hhdzsgSmFtZXMgR3JlZW5oYWxnaDsgRXZh bmRybyBNZW5lemVzOyBBbmRyZXcgUGluc2tpDQpTdWJqZWN0OiBSZTogW1BB VENIXVtBQXJjaDY0XSBJbXBsZW1lbnQgLW17Y3B1LHR1bmUsYXJjaH09bmF0 aXZlIHVzaW5nIG9ubHkgL3Byb2MvY3B1aW5mbw0KDQoNCk9uIDIyLzA0LzE1 IDEyOjQ2LCBLeXJpbGwgVGthY2hvdiB3cm90ZToNCj4gW1NvcnJ5IGZvciBy ZXNlbmRpbmcgdHdpY2UuIE15IG1haWwgY2xpZW50IGdsaXRjaGVkXQ0KPg0K PiBPbiAyMC8wNC8xNSAxNjo0NywgS3lyaWxsIFRrYWNob3Ygd3JvdGU6DQo+ PiBIaSBhbGwsDQo+Pg0KPj4gVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGFkZCBu YXRpdmUgQ1BVIGRldGVjdGlvbiB0byBBQXJjaDY0IEdOVS9MaW51eCB0YXJn ZXRzLg0KPj4gU2ltaWxhciB0byBvdGhlciBwb3J0cyB3ZSB1c2UgU1BFQyBy ZXdyaXRpbmcgdG8gcmV3cml0ZSANCj4+IC1te2NwdSx0dW5lLGFyY2h9PW5h dGl2ZSBvcHRpb25zIGludG8gdGhlIGFwcHJvcHJpYXRlIA0KPj4gQ1BVL2Fy Y2hpdGVjdHVyZSBhbmQgdGhlIGFyY2hpdGVjdHVyZSBleHRlbnNpb24gb3B0 aW9ucyB3aGVuIGFwcHJvcHJpYXRlIChpLmUuICtjcnlwdG8vK2NyYyBldGMp Lg0KPj4NCj4+IEZvciBDUFUvYXJjaGl0ZWN0dXJlIGRldGVjdGlvbiBpdCBn ZXRzIGEgYml0IGludm9sdmVkLCBlc3BlY2lhbGx5IA0KPj4gd2hlbiBydW5u aW5nIG9uIGEgYmlnLkxJVFRMRSBzeXN0ZW0uIE15IHByb3Bvc2VkIGFwcHJv YWNoIGlzIHRvIGxvb2sgDQo+PiBhdCAvcHJvYy9jcHVpbmZvLyBhbmQgc2Vh cmNoIGZvciB0aGUgaW1wbGVtZW50ZXIgaWQgYW5kIHBhcnQgbnVtYmVyIA0K Pj4gZmllbGRzIHRoYXQgdW5pcXVlbHkgaWRlbnRpZnkgZWFjaCBjb3JlIChh cHByb3ByaWF0ZSBpZGVudGlmeWluZyANCj4+IGluZm9ybWF0aW9uIGlzIGFk ZGVkIHRvIGFhcmNoNjQtY29yZXMuZGVmKS4gSWYgd2UgZmluZCB0d28gdHlw ZXMgb2YgDQo+PiBjb3JlIHdlIGhhdmUgYSBiaWcuTElUVExFIHN5c3RlbSwg c28gc2VhcmNoIHRocm91Z2ggdGhlIGNvcmUgDQo+PiBkZWZpbml0aW9ucyBl eHRyYWN0ZWQgZnJvbSBhYXJjaDY0LWNvcmVzLmRlZiB0byBmaW5kIGlmIHdl IHN1cHBvcnQgc3VjaCBhIGNvbWJpbmF0aW9uIChjdXJyZW50bHkgb25seSBj b3J0ZXgtYTU3LmNvcnRleC1hNTMgYW5kIGNvcnRleC1hNzIuY29ydGV4LWE1 MykgYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSBpbXBsZW1lbnRlciBpZCBmaWVs ZCBtYXRjaGVzIHVwLg0KPj4NCj4+IEkgdGVzdGVkIHRoaXMgb24gYSA0eENv cnRleC1BNTMgKyAyeENvcnRleC1BNTcgYmlnLkxJVFRMRSBVYnVudHUgR05V L0xpbnV4IHN5c3RlbS4NCj4+IFRoZXJlIGFyZSB0d28gZm9ybWF0cyBmb3Ig L3Byb2MvY3B1aW5mby8gdGhhdCBJJ20gYXdhcmUgb2YuIFRoZSBmaXJzdCAo b2xkKSBvbmUgaGFzIHRoZSBmb3JtYXQ6DQo+PiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gcHJvY2Vzc29yICAgIDogMA0K Pj4gcHJvY2Vzc29yICAgIDogMQ0KPj4gcHJvY2Vzc29yICAgIDogMg0KPj4g cHJvY2Vzc29yICAgIDogMw0KPj4gcHJvY2Vzc29yICAgIDogNA0KPj4gcHJv Y2Vzc29yICAgIDogNQ0KPj4gRmVhdHVyZXMgICAgOiBmcCBhc2ltZCBldnRz dHJtIGFlcyBwbXVsbCBzaGExIHNoYTIgY3JjMzINCj4+IENQVSBpbXBsZW1l bnRlciAgICA6IDB4NDENCj4+IENQVSBhcmNoaXRlY3R1cmU6IEFBcmNoNjQN Cj4+IENQVSB2YXJpYW50ICAgIDogMHgwDQo+PiBDUFUgcGFydCAgICA6IDB4 ZDAzDQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPj4NCj4+IEluIHRoaXMgZm9ybWF0IGl0IGxpc3RzIHRoZSA2IGNvcmVz IGJ1dCB0aGUgQ1BVIHBhcnQgaXQgcmVwb3J0cyBpcyANCj4+IG9ubHkgdGhl IG9uZSBmb3IgdGhlIGNvcmUgZnJvbSB3aGljaCAvcHJvYy9jcHVpbmZvIHdh cyByZWFkIGZyb20gKCEpLCBpbiB0aGlzIGNhc2Ugb25lIG9mIHRoZSBDb3J0 ZXgtQTUzIGNvcmVzLg0KPj4gVGhpcyBtZWFucyB3ZSBkZXRlY3QgYSBkaWZm ZXJlbnQgQ1BVIGRlcGVuZGluZyBvbiB3aGljaCBjb3JlIEdDQyB3YXMgDQo+ PiBpbnZva2VkIG9uLiBOb3QgaWRlYWwgcmVhbGx5LCBidXQgdGhlcmUncyBu byBtb3JlIGluZm9ybWF0aW9uIHRoYXQgd2UgY2FuIGV4dHJhY3QuDQo+PiBH aXZlbiB0aGUgL3Byb2MvY3B1aW5mbyBhYm92ZSwgdGhpcyBwYXRjaCB3aWxs IHJld3JpdGUgLW1jcHU9bmF0aXZlIA0KPj4gaW50byAtbWNwdT1jb3J0ZXgt YTUzK2ZwK3NpbWQrY3J5cHRvK2NyYw0KPj4NCj4+IFRoZSBuZXdlciAvcHJv Yy9jcHVpbmZvIGZvcm1hdCBwcm9wb3NlZCBhdCANCj4+IGh0dHBzOi8vZ2l0 Lmtlcm5lbC5vcmcvY2dpdC9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xp bnV4LmdpdC9jb21taQ0KPj4gdC8/aWQ9NDRiODJiNzcwMGQwNWE1MmNkOTgz Nzk5ZDNlY2RlMWE5NzZiM2JlZA0KPj4gbG9va3MgbGlrZSB0aGlzOg0KPj4N Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiBwcm9jZXNzb3IgICAgICAgOiAw DQo+PiBGZWF0dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBw bXVsbCBzaGExIHNoYTIgY3JjMzINCj4+IENQVSBpbXBsZW1lbnRlciA6IDB4 NDENCj4+IENQVSBhcmNoaXRlY3R1cmU6IDgNCj4+IENQVSB2YXJpYW50ICAg ICA6IDB4MA0KPj4gQ1BVIHBhcnQgICAgICAgIDogMHhkMDMNCj4+IENQVSBy ZXZpc2lvbiAgICA6IDANCj4+DQo+PiBwcm9jZXNzb3IgICAgICAgOiAxDQo+ PiBGZWF0dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVs bCBzaGExIHNoYTIgY3JjMzINCj4+IENQVSBpbXBsZW1lbnRlciA6IDB4NDEN Cj4+IENQVSBhcmNoaXRlY3R1cmU6IDgNCj4+IENQVSB2YXJpYW50ICAgICA6 IDB4MA0KPj4gQ1BVIHBhcnQgICAgICAgIDogMHhkMDMNCj4+IENQVSByZXZp c2lvbiAgICA6IDANCj4+DQo+PiBwcm9jZXNzb3IgICAgICAgOiAyDQo+PiBG ZWF0dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVsbCBz aGExIHNoYTIgY3JjMzINCj4+IENQVSBpbXBsZW1lbnRlciA6IDB4NDENCj4+ IENQVSBhcmNoaXRlY3R1cmU6IDgNCj4+IENQVSB2YXJpYW50ICAgICA6IDB4 MA0KPj4gQ1BVIHBhcnQgICAgICAgIDogMHhkMDMNCj4+IENQVSByZXZpc2lv biAgICA6IDANCj4+DQo+PiBwcm9jZXNzb3IgICAgICAgOiAzDQo+PiBGZWF0 dXJlcyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVsbCBzaGEx IHNoYTIgY3JjMzINCj4+IENQVSBpbXBsZW1lbnRlciA6IDB4NDENCj4+IENQ VSBhcmNoaXRlY3R1cmU6IDgNCj4+IENQVSB2YXJpYW50ICAgICA6IDB4MA0K Pj4gQ1BVIHBhcnQgICAgICAgIDogMHhkMDMNCj4+IENQVSByZXZpc2lvbiAg ICA6IDANCj4+DQo+PiBwcm9jZXNzb3IgICAgICAgOiA0DQo+PiBGZWF0dXJl cyAgICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVsbCBzaGExIHNo YTIgY3JjMzINCj4+IENQVSBpbXBsZW1lbnRlciA6IDB4NDENCj4+IENQVSBh cmNoaXRlY3R1cmU6IDgNCj4+IENQVSB2YXJpYW50ICAgICA6IDB4MA0KPj4g Q1BVIHBhcnQgICAgICAgIDogMHhkMDcNCj4+IENQVSByZXZpc2lvbiAgICA6 IDANCj4+DQo+PiBwcm9jZXNzb3IgICAgICAgOiA1DQo+PiBGZWF0dXJlcyAg ICAgICAgOiBmcCBhc2ltZCBldnRzdHJtIGFlcyBwbXVsbCBzaGExIHNoYTIg Y3JjMzINCj4+IENQVSBpbXBsZW1lbnRlciA6IDB4NDENCj4+IENQVSBhcmNo aXRlY3R1cmU6IDgNCj4+IENQVSB2YXJpYW50ICAgICA6IDB4MA0KPj4gQ1BV IHBhcnQgICAgICAgIDogMHhkMDcNCj4+IENQVSByZXZpc2lvbiAgICA6IDAN Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pg0KPj4gVGhlIEZlYXR1cmVzIGZp ZWxkIGlzIHVzZWQgdG8gZGV0ZWN0IHRoZSBhcmNoaXRlY3R1cmFsIGZlYXR1 cmVzIHRoYXQgDQo+PiB3ZSBtYXAgdG8gR0NDIG9wdGlvbiBleHRlbnNpb25z IGkuZS4gK2ZwLCtjcnlwdG8sK3NpbWQsK2NyYyBldGMuDQo+Pg0KPj4gU2lt aWxhcmx5LCAtbWFyY2g9bmF0aXZlIHdvdWxkIGJlIHJld3JpdHRlbiBpbnRv IA0KPj4gLW1hcmNoPWFybXY4LWErZnArc2ltZCtjcnlwdG8rY3JjIHdoaWxl IC1tdHVuZT1uYXRpdmUgaW50byANCj4+IC1tYXJjaD1jb3J0ZXgtYTU3LmNv cnRleC1hNTMgKHRoZSBhcmNoIGV4dGVuc2lvbiBvcHRpb25zIGFyZSBub3Qg dmFsaWQgZm9yIC1tdHVuZSkuDQo+Pg0KPj4gSWYgaXQgZGV0ZWN0cyBtb3Jl IHRoYW4gb25lIGltcGxlbWVudGVyIElEIG9yIHRoZSBpbXBsZW1lbnRlciBJ RHMgbm90IA0KPj4gbWF0Y2hpbmcgdXAgc29tZXdoZXJlIG9yIHNvbWUgb3Ro ZXIgd2VpcmRuZXNzIC9wcm9jL2NwdWluZm8gb3IgZmFpbHMgDQo+PiB0byBy ZWNvZ25pc2UgdGhlIENQVSBpdCB3aWxsIGJhaWwgb3V0IGFuZCBpZ25vcmUg dGhlIG9wdGlvbiBlbnRpcmVseSAoc2ltaWxhcmx5IHRvIG90aGVyIHBvcnRz KS4NCj4+DQo+PiBUaGUgcGF0Y2ggd29ya3MgZmluZSB3aXRoIGJvdGggL3By b2MvY3B1aW5mbyBmb3JtYXRzIGFsdGhvdWdoLCBhcyANCj4+IG1lbnRpb25l ZCBhYm92ZSwgaXQgd2lsbCBub3QgYmUgYWJsZSB0byBkZXRlY3QgdGhlIGJp Zy5MSVRUTEUgY29tYmluYXRpb24gZnJvbSB0aGUgZmlyc3QgZm9ybWF0Lg0K Pj4NCj4+IEkndmUgZmlsbGVkIGluIHRoZSBpbXBsZW1lbnRlciBJRCBhbmQg cGFydCBudW1iZXJzIGZvciB0aGUgDQo+PiBDb3J0ZXgtQTU3LCBDb3J0ZXgt QTUzLCBDb3J0ZXgtQTcyLCBYLUdlbmUgMSBjb3JlcywgYnV0IEkgZG9uJ3Qg aGF2ZSANCj4+IHRoYXQgaW5mbyBmb3IgdGh1bmRlcnggb3IgZXh5bm9zbTEu IENvdWxkIHNvbWVvbmUgZnJvbSBDYXZpdW0gYW5kIFNhbXN1bmcgaGVscCBt ZSBvdXQgaGVyZT8gQXQgcHJlc2VudCB0aGlzIHBhdGNoIGhhcyBzb21lIGZh bHNlIGR1bW15IHZhbHVlcyB0aGF0IEknZCBsaWtlIHRvIGZpbGwgb3V0IGJl Zm9yZSBjb21taXR0aW5nIHRoaXMuDQo+IFRoYW5rcyBBbmRyZXcgYW5kIEV2 YW5kcm8gZm9yIHRoZSBpbmZvLg0KPiBJJ3ZlIGFkZGVkIHRoZSBudW1iZXJz IHRvIHRoZSBwYXRjaCwgc28gaXQgc2hvdWxkIHdvcmsgb24gdGhvc2Ugc3lz dGVtcy4NCj4gSSdtIGF0dGFjaGluZyB0aGUgZmluYWwgcGF0Y2ggaGVyZSBm b3IgcmV2aWV3Lg0KDQpBbmQgcmVzZW5kaW5nIGhlcmUgd2l0aCBhIG1pbm9y IHdoaXRlc3BhY2UgY2hhbmdlIGluIGFhcmNoNjQtY29yZXMuZGVmIHRvIG1h a2UgdGh1bmRlcnggbGluZSB1cCB3aXRoIHRoZSBvdGhlciBlbnRyaWVzLiBU aGFua3MgRXZhbmRybyBmb3IgcG9pbnRpbmcgaXQgb3V0IQ0KDQpLeXJpbGwN Cg0KPg0KPiBUaGFua3MsDQo+IEt5cmlsbA0KPg0KPg0KPiAyMDE0LTA0LTIy ICBLeXJ5bG8gVGthY2hvdiA8a3lyeWxvLnRrYWNob3ZAYXJtLmNvbT4NCj4N Cj4gICAgICAgICogY29uZmlnLmhvc3QgKGNhc2UgJHtob3N0fSk6IEFkZCBh YXJjaDY0Ki0qLWxpbnV4IGNhc2UuDQo+ICAgICAgICAqIGNvbmZpZy9hYXJj aDY0L2FhcmNoNjQtY29yZXMuZGVmOiBBZGQgSU1QTEVNRU5URVJfSUQgYW5k IFBBUlRfTlVNQkVSDQo+ICAgICAgICBmaWVsZHMgdG8gYWxsIHRoZSBjb3Jl cy4NCj4gICAgICAgICogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1lbGYuaCAo RFJJVkVSX1NFTEZfU1BFQ1MpOiBBZGQNCj4gICAgICAgIE1DUFVfTVRVTkVf TkFUSVZFX1NQRUNTLg0KPiAgICAgICAgKiBjb25maWcvYWFyY2g2NC9hYXJj aDY0LW9wdGlvbi1leHRlbnNpb25zLmRlZjogQWRkIEZFQVRfU1RSSU5HIGZp ZWxkIHRvIGFsbA0KPiAgICAgICAgZXh0ZW5zaW9ucy4NCj4gICAgICAgICog Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC1vcHRzLmg6IEFkanVzdCBkZWZpbml0 aW9uIG9mIEFBUkNINjRfQ09SRS4NCj4gICAgICAgICogY29uZmlnL2FhcmNo NjQvYWFyY2g2NC5jOiBBZGp1c3QgZGVmaW5pdGlvbiBvZiBBQVJDSDY0X0NP UkUuDQo+ICAgICAgICBBZGp1c3QgZGVmaW5pdGlvbiBvZiBBQVJDSDY0X09Q VF9FWFRFTlNJT04uDQo+ICAgICAgICAqIGNvbmZpZy9hYXJjaDY0L2FhcmNo NjQuaDogQWRqdXN0IGRlZmluaXRpb24gb2YgQUFSQ0g2NF9DT1JFLg0KPiAg ICAgICAgKE1DUFVfTVRVTkVfTkFUSVZFX1NQRUNTKTogRGVmaW5lLg0KPiAg ICAgICAgKiBjb25maWcvYWFyY2g2NC9kcml2ZXItYWFyY2g2NC5jOiBOZXcg ZmlsZS4NCj4gICAgICAgICogY29uZmlnL2FhcmNoNjQveC1hcmNoNjQ6IE5l dyBmaWxlLg0KPiAgICAgICAgKiBkb2MvaW52b2tlLnRleGkgKEFBcmNoNjQg T3B0aW9ucyk6IERvY3VtZW50IG5hdGl2ZSB2YWx1ZSBmb3IgLW1jcHUsDQo+ ICAgICAgICAtbXR1bmUgYW5kIC1tYXJjaC4NCj4NCj4+IEkndmUgYm9vdHN0 cmFwcGVkIHRoaXMgb24gdGhlIHN5c3RlbSBtZW50aW9uZWQgYWJvdmUgd2l0 aCAtbWNwdT1uYXRpdmUgaW4gdGhlIEJPT1RfQ0ZMQUdTIGFuZCByZWd0ZXN0 ZWQgYXMgd2VsbC4NCj4+IEZvciB0aGUgYm9vdHN0cmFwIEkndmUgdXNlZCB0 aGUgMm5kIC9wcm9jL2NwdWluZm8gZm9ybWF0Lg0KPj4NCj4+IEkndmUgYWxz byB0ZXN0ZWQgaXQgb24gQUFyY2g2NCBoYXJkd2FyZSBmcm9tIEFSTSBMdGQu IGFuZCB0aGUgZWNvc3lzdGVtLg0KPj4NCj4+IElmIHVzaW5nIHRoZSBmaXJz dCBmb3JtYXQgdGhlIGJvb3RzdHJhcCBmYWlscyB0aGUgY29tcGFyaXNvbiBi ZWNhdXNlLCANCj4+IGRlcGVuZGluZyBvbiB0aGUgT1Mgc2NoZWR1bGluZywg c29tZSBmaWxlcyBhcmUgY29tcGlsZWQgd2l0aCANCj4+IENvcnRleC1BNTcg dHVuaW5nIGFuZCBzb21lIHdpdGggQ29ydGV4LUE1MyB0dW5pbmcgYW5kIHRo aXMgaXMgcHJhY3RpY2FsbHkgbm9uLWRldGVybWluaXN0aWMgYWNyb3NzIHN0 YWdlMiBhbmQgc3RhZ2UzIQ0KPj4NCj4+IFdoYXQgZG8gcGVvcGxlIHRoaW5r IG9mIHRoaXMgYXBwcm9hY2g/DQo+Pg0KPj4gMjAxNC0wNC0yMCAgS3lyeWxv IFRrYWNob3YgPGt5cnlsby50a2FjaG92QGFybS5jb20+DQo+Pg0KPj4gICAg ICAgICogY29uZmlnLmhvc3QgKGNhc2UgJHtob3N0fSk6IEFkZCBhYXJjaDY0 Ki0qLWxpbnV4IGNhc2UuDQo+PiAgICAgICAgKiBjb25maWcvYWFyY2g2NC9h YXJjaDY0LWNvcmVzLmRlZjogQWRkIElNUExFTUVOVEVSX0lEIGFuZCBQQVJU X05VTUJFUg0KPj4gICAgICAgIGZpZWxkcyB0byBhbGwgdGhlIGNvcmVzLg0K Pj4gICAgICAgICogY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1lbGYuaCAoRFJJ VkVSX1NFTEZfU1BFQ1MpOiBBZGQNCj4+ICAgICAgICBNQ1BVX01UVU5FX05B VElWRV9TUEVDUy4NCj4+ICAgICAgICAqIGNvbmZpZy9hYXJjaDY0L2FhcmNo NjQtb3B0aW9uLWV4dGVuc2lvbnMuZGVmOiBBZGQgRkVBVF9TVFJJTkcgZmll bGQgdG8gYWxsDQo+PiAgICAgICAgZXh0ZW5zaW9ucy4NCj4+ICAgICAgICAq IGNvbmZpZy9hYXJjaDY0L2FhcmNoNjQtb3B0cy5oOiBBZGp1c3QgZGVmaW5p dGlvbiBvZiBBQVJDSDY0X0NPUkUuDQo+PiAgICAgICAgKiBjb25maWcvYWFy Y2g2NC9hYXJjaDY0LmM6IEFkanVzdCBkZWZpbml0aW9uIG9mIEFBUkNINjRf Q09SRS4NCj4+ICAgICAgICBBZGp1c3QgZGVmaW5pdGlvbiBvZiBBQVJDSDY0 X09QVF9FWFRFTlNJT04uDQo+PiAgICAgICAgKiBjb25maWcvYWFyY2g2NC9h YXJjaDY0Lmg6IEFkanVzdCBkZWZpbml0aW9uIG9mIEFBUkNINjRfQ09SRS4N Cj4+ICAgICAgICAoTUNQVV9NVFVORV9OQVRJVkVfU1BFQ1MpOiBEZWZpbmUu DQo+PiAgICAgICAgKiBjb25maWcvYWFyY2g2NC9kcml2ZXItYWFyY2g2NC5j OiBOZXcgZmlsZS4NCj4+ICAgICAgICAqIGNvbmZpZy9hYXJjaDY0L3gtYXJj aDY0OiBOZXcgZmlsZS4NCj4+ICAgICAgICAqIGRvYy9pbnZva2UudGV4aSAo QUFyY2g2NCBPcHRpb25zKTogRG9jdW1lbnQgbmF0aXZlIHZhbHVlIGZvciAt bWNwdSwNCj4+ICAgICAgICAtbXR1bmUgYW5kIC1tYXJjaC4NCj4NCj4gYWFy Y2g2NC1uYXRpdmUucGF0Y2gNCj4NCj4NCj4gY29tbWl0IGJmZGYzMWI5ZDcx NjIwYWZhYzQzYjE1ZWJmMzE1MDIwMjJhOWJjNjMNCj4gQXV0aG9yOiBLeXJ5 bG8gVGthY2hvdjxreXJ5bG8udGthY2hvdkBhcm0uY29tPg0KPiBEYXRlOiAg IEZyaSBBcHIgMTAgMTY6Mzk6MjcgMjAxNSArMDEwMA0KPg0KPiAgICAgICBb QUFyY2g2NF0gSW1wbGVtZW50IC1te3R1bmUsY3B1LGFyY2h9PW5hdGl2ZSBv biBBQXJjaDY0IA0KPiBHTlUvTGludXgNCj4NCj4gZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcuaG9zdCBiL2djYy9jb25maWcuaG9zdCBpbmRleCBiMGY1OTQw Li5hODg5NmQxIA0KPiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy5ob3N0 DQo+ICsrKyBiL2djYy9jb25maWcuaG9zdA0KPiBAQCAtOTksNiArOTksMTQg QEAgY2FzZSAke2hvc3R9IGluDQo+ICAgIGVzYWMNCj4NCj4gICAgY2FzZSAk e2hvc3R9IGluDQo+ICsgIGFhcmNoNjQqLSotbGludXgqKQ0KPiArICAgIGNh c2UgJHt0YXJnZXR9IGluDQo+ICsgICAgICBhYXJjaDY0Ki0qLSopDQo+ICsg ICAgICAgaG9zdF9leHRyYV9nY2Nfb2Jqcz0iZHJpdmVyLWFhcmNoNjQubyIN Cj4gKyAgICAgICBob3N0X3htYWtlX2ZpbGU9IiR7aG9zdF94bWFrZV9maWxl fSBhYXJjaDY0L3gtYWFyY2g2NCINCj4gKyAgICAgICA7Ow0KPiArICAgIGVz YWMNCj4gKyAgICA7Ow0KPiAgICAgIGFybSotKi1mcmVlYnNkKiB8IGFybSot Ki1saW51eCopDQo+ICAgICAgICBjYXNlICR7dGFyZ2V0fSBpbg0KPiAgICAg ICAgICBhcm0qLSotKikNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LWNvcmVzLmRlZiANCj4gYi9nY2MvY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1jb3Jlcy5kZWYNCj4gaW5kZXggZTQ2ZDkxYi4uN2U2Y2I3 MyAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt Y29yZXMuZGVmDQo+ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0 LWNvcmVzLmRlZg0KPiBAQCAtMjEsNyArMjEsNyBAQA0KPg0KPiAgICAgICBC ZWZvcmUgdXNpbmcgI2luY2x1ZGUgdG8gcmVhZCB0aGlzIGZpbGUsIGRlZmlu ZSBhIG1hY3JvOg0KPg0KPiAtICAgICAgQUFSQ0g2NF9DT1JFKENPUkVfTkFN RSwgQ09SRV9JREVOVCwgU0NIRURVTEVSX0lERU5ULCBBUkNILCBGTEFHUywg Q09TVFMpDQo+ICsgICAgICBBQVJDSDY0X0NPUkUoQ09SRV9OQU1FLCBDT1JF X0lERU5ULCBTQ0hFRFVMRVJfSURFTlQsIEFSQ0gsIA0KPiArIEZMQUdTLCBD T1NUUywgSU1QLCBQQVJUKQ0KPg0KPiAgICAgICBUaGUgQ09SRV9OQU1FIGlz IHRoZSBuYW1lIG9mIHRoZSBjb3JlLCByZXByZXNlbnRlZCBhcyBhIHN0cmlu ZyBjb25zdGFudC4NCj4gICAgICAgVGhlIENPUkVfSURFTlQgaXMgdGhlIG5h bWUgb2YgdGhlIGNvcmUsIHJlcHJlc2VudGVkIGFzIGFuIGlkZW50aWZpZXIu DQo+IEBAIC0zMCwxOCArMzAsMjMgQEANCj4gICAgICAgQVJDSCBpcyB0aGUg YXJjaGl0ZWN0dXJlIHJldmlzaW9uIGltcGxlbWVudGVkIGJ5IHRoZSBjaGlw Lg0KPiAgICAgICBGTEFHUyBhcmUgdGhlIGJpdHdpc2Utb3Igb2YgdGhlIHRy YWl0cyB0aGF0IGFwcGx5IHRvIHRoYXQgY29yZS4NCj4gICAgICAgVGhpcyBu ZWVkIG5vdCBpbmNsdWRlIGZsYWdzIGltcGxpZWQgYnkgdGhlIGFyY2hpdGVj dHVyZS4NCj4gLSAgIENPU1RTIGlzIHRoZSBuYW1lIG9mIHRoZSBydHhfY29z dHMgcm91dGluZSB0byB1c2UuICAqLw0KPiArICAgQ09TVFMgaXMgdGhlIG5h bWUgb2YgdGhlIHJ0eF9jb3N0cyByb3V0aW5lIHRvIHVzZS4NCj4gKyAgIElN UCBpcyB0aGUgaW1wbGVtZW50ZXIgSUQgb2YgdGhlIENQVSB2ZW5kb3IuICBP biBhIEdOVS9MaW51eCBzeXN0ZW0gaXQgY2FuDQo+ICsgICBiZSBmb3VuZCBp biAvcHJvYy9jcHVpbmZvLg0KPiArICAgUEFSVCBpcyB0aGUgcGFydCBudW1i ZXIgb2YgdGhlIENQVS4gIE9uIGEgR05VL0xpbnV4IHN5c3RlbSBpdCBjYW4g YmUgZm91bmQNCj4gKyAgIGluIC9wcm9jL2NwdWluZm8uICBGb3IgYmlnLkxJ VFRMRSBzeXN0ZW1zIHRoaXMgc2hvdWxkIGhhdmUgdGhlIGZvcm0gYXQgb2YN Cj4gKyAgICI8YmlnIGNvcmUgcGFydCBudW1iZXI+LjxMSVRUTEUgY29yZSBw YXJ0IG51bWJlcj4iLiAgKi8NCj4NCj4gICAgLyogVjggQXJjaGl0ZWN0dXJl IFByb2Nlc3NvcnMuICAqLw0KPg0KPiAtQUFSQ0g2NF9DT1JFKCJjb3J0ZXgt YTUzIiwgIGNvcnRleGE1MywgY29ydGV4YTUzLCA4LCAgDQo+IEFBUkNINjRf RkxfRk9SX0FSQ0g4IHwgQUFSQ0g2NF9GTF9DUkMsIGNvcnRleGE1MykgDQo+ IC1BQVJDSDY0X0NPUkUoImNvcnRleC1hNTciLCAgY29ydGV4YTU3LCBjb3J0 ZXhhNTcsIDgsICBBQVJDSDY0X0ZMX0ZPUl9BUkNIOCB8IEFBUkNINjRfRkxf Q1JDLCBjb3J0ZXhhNTcpIC1BQVJDSDY0X0NPUkUoImNvcnRleC1hNzIiLCAg Y29ydGV4YTcyLCBjb3J0ZXhhNTcsIDgsICBBQVJDSDY0X0ZMX0ZPUl9BUkNI OCB8IEFBUkNINjRfRkxfQ1JDLCBjb3J0ZXhhNTcpDQo+IC1BQVJDSDY0X0NP UkUoImV4eW5vcy1tMSIsICAgZXh5bm9zbTEsICBjb3J0ZXhhNTcsIDgsICBB QVJDSDY0X0ZMX0ZPUl9BUkNIOCB8IEFBUkNINjRfRkxfQ1JDIHwgQUFSQ0g2 NF9GTF9DUllQVE8sIGNvcnRleGE1NykNCj4gLUFBUkNINjRfQ09SRSgidGh1 bmRlcngiLCAgICB0aHVuZGVyeCwgIHRodW5kZXJ4LCA4LCAgQUFSQ0g2NF9G TF9GT1JfQVJDSDggfCBBQVJDSDY0X0ZMX0NSQyB8IEFBUkNINjRfRkxfQ1JZ UFRPLCB0aHVuZGVyeCkNCj4gLUFBUkNINjRfQ09SRSgieGdlbmUxIiwgICAg ICB4Z2VuZTEsICAgIHhnZW5lMSwgICAgOCwgIEFBUkNINjRfRkxfRk9SX0FS Q0g4LCB4Z2VuZTEpDQo+ICtBQVJDSDY0X0NPUkUoImNvcnRleC1hNTMiLCAg Y29ydGV4YTUzLCBjb3J0ZXhhNTMsIDgsICANCj4gK0FBUkNINjRfRkxfRk9S X0FSQ0g4IHwgQUFSQ0g2NF9GTF9DUkMsIGNvcnRleGE1MywgIjB4NDEiLCAi MHhkMDMiKSANCj4gK0FBUkNINjRfQ09SRSgiY29ydGV4LWE1NyIsICBjb3J0 ZXhhNTcsIGNvcnRleGE1NywgOCwgIEFBUkNINjRfRkxfRk9SX0FSQ0g4IHwg QUFSQ0g2NF9GTF9DUkMsIGNvcnRleGE1NywgIjB4NDEiLCAiMHhkMDciKSBB QVJDSDY0X0NPUkUoImNvcnRleC1hNzIiLCAgY29ydGV4YTcyLCBjb3J0ZXhh NTcsIDgsICBBQVJDSDY0X0ZMX0ZPUl9BUkNIOCB8IEFBUkNINjRfRkxfQ1JD LCBjb3J0ZXhhNTcsICIweDQxIiwgIjB4ZDA4IikNCj4gK0FBUkNINjRfQ09S RSgiZXh5bm9zLW0xIiwgICBleHlub3NtMSwgIGNvcnRleGE1NywgOCwgIEFB UkNINjRfRkxfRk9SX0FSQ0g4IHwgQUFSQ0g2NF9GTF9DUkMgfCBBQVJDSDY0 X0ZMX0NSWVBUTywgY29ydGV4YTU3LCAiMHg1MyIsICIweDAwMSIpDQo+ICtB QVJDSDY0X0NPUkUoInRodW5kZXJ4IiwgICAgdGh1bmRlcngsICB0aHVuZGVy eCwgOCwgIEFBUkNINjRfRkxfRk9SX0FSQ0g4IHwgQUFSQ0g2NF9GTF9DUkMg fCBBQVJDSDY0X0ZMX0NSWVBUTywgdGh1bmRlcngsICIweDQzIiwgIjB4MGEx IikNCj4gK0FBUkNINjRfQ09SRSgieGdlbmUxIiwgICAgICB4Z2VuZTEsICAg IHhnZW5lMSwgICAgOCwgIEFBUkNINjRfRkxfRk9SX0FSQ0g4LCB4Z2VuZTEs ICIweDUwIiwgIjB4MDAwIikNCj4NCj4gICAgLyogVjggYmlnLkxJVFRMRSBp bXBsZW1lbnRhdGlvbnMuICAqLw0KPg0KPiAtQUFSQ0g2NF9DT1JFKCJjb3J0 ZXgtYTU3LmNvcnRleC1hNTMiLCAgY29ydGV4YTU3Y29ydGV4YTUzLCBjb3J0 ZXhhNTMsIA0KPiA4LCAgQUFSQ0g2NF9GTF9GT1JfQVJDSDggfCBBQVJDSDY0 X0ZMX0NSQywgY29ydGV4YTU3KSANCj4gLUFBUkNINjRfQ09SRSgiY29ydGV4 LWE3Mi5jb3J0ZXgtYTUzIiwgIGNvcnRleGE3MmNvcnRleGE1MywgY29ydGV4 YTUzLCANCj4gOCwgIEFBUkNINjRfRkxfRk9SX0FSQ0g4IHwgQUFSQ0g2NF9G TF9DUkMsIGNvcnRleGE1NykNCj4gK0FBUkNINjRfQ09SRSgiY29ydGV4LWE1 Ny5jb3J0ZXgtYTUzIiwgIGNvcnRleGE1N2NvcnRleGE1MywgY29ydGV4YTUz LCANCj4gKzgsICBBQVJDSDY0X0ZMX0ZPUl9BUkNIOCB8IEFBUkNINjRfRkxf Q1JDLCBjb3J0ZXhhNTcsICIweDQxIiwgDQo+ICsiMHhkMDcuMHhkMDMiKSBB QVJDSDY0X0NPUkUoImNvcnRleC1hNzIuY29ydGV4LWE1MyIsICANCj4gK2Nv cnRleGE3MmNvcnRleGE1MywgY29ydGV4YTUzLCA4LCAgQUFSQ0g2NF9GTF9G T1JfQVJDSDggfCANCj4gK0FBUkNINjRfRkxfQ1JDLCBjb3J0ZXhhNTcsICIw eDQxIiwgIjB4ZDA4LjB4ZDAzIikNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LWVsZi5oIA0KPiBiL2djYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LWVsZi5oDQo+IGluZGV4IGE1ZWM4Y2IuLjFjZTYzNDMg MTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWVs Zi5oDQo+ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWVsZi5o DQo+IEBAIC0xMzIsNyArMTMyLDggQEANCj4gICAgI3VuZGVmIERSSVZFUl9T RUxGX1NQRUNTDQo+ICAgICNkZWZpbmUgRFJJVkVSX1NFTEZfU1BFQ1MgXA0K PiAgICAgICIgJXshbWJpZy1lbmRpYW46JXshbWxpdHRsZS1lbmRpYW46IiBF TkRJQU5fU1BFQyAifX0iIFwNCj4gLSAgIiAleyFtYWJpPSo6IiBBQklfU1BF QyAifSINCj4gKyAgIiAleyFtYWJpPSo6IiBBQklfU1BFQyAifSIgXA0KPiAr ICBNQ1BVX01UVU5FX05BVElWRV9TUEVDUw0KPg0KPiAgICAjaWZkZWYgSEFW RV9BU19NQUJJX09QVElPTg0KPiAgICAjZGVmaW5lIEFTTV9NQUJJX1NQRUMg IiV7bWFiaT0qOi1tYWJpPSUqfSINCj4gZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LW9wdGlvbi1leHRlbnNpb25zLmRlZiANCj4g Yi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1vcHRpb24tZXh0ZW5zaW9u cy5kZWYNCj4gaW5kZXggNmVjM2VkNi4uZjI5NjI5NiAxMDA2NDQNCj4gLS0t IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtb3B0aW9uLWV4dGVuc2lv bnMuZGVmDQo+ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LW9w dGlvbi1leHRlbnNpb25zLmRlZg0KPiBAQCAtMjEsMTggKzIxLDI1IEBADQo+ DQo+ICAgICAgIEJlZm9yZSB1c2luZyAjaW5jbHVkZSB0byByZWFkIHRoaXMg ZmlsZSwgZGVmaW5lIGEgbWFjcm86DQo+DQo+IC0gICAgICBBQVJDSDY0X09Q VF9FWFRFTlNJT04oRVhUX05BTUUsIEZMQUdTX09OLCBGTEFHU19PRkYpDQo+ ICsgICAgICBBQVJDSDY0X09QVF9FWFRFTlNJT04oRVhUX05BTUUsIEZMQUdT X09OLCBGTEFHU19PRkYsIA0KPiArIEZFQVRVUkVfU1RSSU5HKQ0KPg0KPiAg ICAgICBFWFRfTkFNRSBpcyB0aGUgbmFtZSBvZiB0aGUgZXh0ZW5zaW9uLCBy ZXByZXNlbnRlZCBhcyBhIHN0cmluZyBjb25zdGFudC4NCj4gICAgICAgRkxB R1NfT04gYXJlIHRoZSBiaXR3aXNlLW9yIG9mIHRoZSBmZWF0dXJlcyB0aGF0 IHRoZSBleHRlbnNpb24gYWRkcy4NCj4gLSAgIEZMQUdTX09GRiBhcmUgdGhl IGJpdHdpc2Utb3Igb2YgdGhlIGZlYXR1cmVzIHRoYXQgdGhlIGV4dGVuc2lv biByZW1vdmVzLiAgKi8NCj4gKyAgIEZMQUdTX09GRiBhcmUgdGhlIGJpdHdp c2Utb3Igb2YgdGhlIGZlYXR1cmVzIHRoYXQgdGhlIGV4dGVuc2lvbiByZW1v dmVzLg0KPiArICAgRkVBVF9TVFJJTkcgaXMgYSBzdHJpbmcgY29udGFpbmlu ZyB0aGUgZW50cmllcyBpbiB0aGUgJ0ZlYXR1cmVzJyBmaWVsZCBvZg0KPiAr ICAgL3Byb2MvY3B1aW5mbyBvbiBhIEdOVS9MaW51eCBzeXN0ZW0gdGhhdCBj b3JyZXNwb25kIHRvIHRoaXMgYXJjaGl0ZWN0dXJlDQo+ICsgICBleHRlbnNp b24gYmVpbmcgYXZhaWxhYmxlLiAgU29tZXRpbWVzIG11bHRpcGxlIGVudHJp ZXMgYXJlIG5lZWRlZCB0byBlbmFibGUNCj4gKyAgIHRoZSBleHRlbnNpb24g KGZvciBleGFtcGxlLCB0aGUgJ2NyeXB0bycgZXh0ZW5zaW9uIGRlcGVuZHMg b24gZm91cg0KPiArICAgZW50cmllczogYWVzLCBwbXVsbCwgc2hhMSwgc2hh MiBiZWluZyBwcmVzZW50KS4gIEluIHRoYXQgY2FzZSB0aGlzIGZpZWxkDQo+ ICsgICBzaG91bGQgY29udGFpbiBhIHdoaXRlc3BhY2Utc2VwYXJhdGVkIGxp c3Qgb2YgdGhlIHN0cmluZ3MgaW4gJ0ZlYXR1cmVzJw0KPiArICAgdGhhdCBh cmUgcmVxdWlyZWQuICBUaGVpciBvcmRlciBpcyBub3QgaW1wb3J0YW50LiAg Ki8NCj4NCj4gICAgLyogVjggQXJjaGl0ZWN0dXJlIEV4dGVuc2lvbnMuDQo+ ICAgICAgIFRoaXMgbGlzdCBjdXJyZW50bHkgY29udGFpbnMgZXhhbXBsZSBl eHRlbnNpb25zIGZvciBDUFVzIHRoYXQgaW1wbGVtZW50DQo+ICAgICAgIEFB cmNoNjQsIGFuZCB0aGVyZWZvcmUgc2VydmVzIGFzIGEgdGVtcGxhdGUgZm9y IGFkZGluZyBtb3JlIENQVXMgaW4gdGhlDQo+ICAgICAgIGZ1dHVyZS4gICov DQo+DQo+IC1BQVJDSDY0X09QVF9FWFRFTlNJT04oImZwIiwgICAgQUFSQ0g2 NF9GTF9GUCwgIEFBUkNINjRfRkxfRlBTSU1EIHwgQUFSQ0g2NF9GTF9DUllQ VE8pDQo+IC1BQVJDSDY0X09QVF9FWFRFTlNJT04oInNpbWQiLCAgQUFSQ0g2 NF9GTF9GUFNJTUQsICAgICAgQUFSQ0g2NF9GTF9TSU1EIHwgQUFSQ0g2NF9G TF9DUllQVE8pDQo+IC1BQVJDSDY0X09QVF9FWFRFTlNJT04oImNyeXB0byIs ICAgICAgICBBQVJDSDY0X0ZMX0NSWVBUTyB8IEFBUkNINjRfRkxfRlBTSU1E LCAgQUFSQ0g2NF9GTF9DUllQVE8pDQo+IC1BQVJDSDY0X09QVF9FWFRFTlNJ T04oImNyYyIsICAgQUFSQ0g2NF9GTF9DUkMsIEFBUkNINjRfRkxfQ1JDKQ0K PiArQUFSQ0g2NF9PUFRfRVhURU5TSU9OKCJmcCIsICAgIEFBUkNINjRfRkxf RlAsICAgICAgICAgICAgICAgICAgICAgICAgICBBQVJDSDY0X0ZMX0ZQU0lN RCB8IEFBUkNINjRfRkxfQ1JZUFRPLCAiZnAiKQ0KPiArQUFSQ0g2NF9PUFRf RVhURU5TSU9OKCJzaW1kIiwgIEFBUkNINjRfRkxfRlBTSU1ELCAgICAgICAg ICAgICAgICAgICAgICBBQVJDSDY0X0ZMX1NJTUQgfCBBQVJDSDY0X0ZMX0NS WVBUTywgICAiYXNpbWQiKQ0KPiArQUFSQ0g2NF9PUFRfRVhURU5TSU9OKCJj cnlwdG8iLCAgICAgICAgQUFSQ0g2NF9GTF9DUllQVE8gfCBBQVJDSDY0X0ZM X0ZQU0lNRCwgIEFBUkNINjRfRkxfQ1JZUFRPLCAgICAgICAgICAgICAgICAg ICAgICJhZXMgcG11bGwgc2hhMSBzaGEyIikNCj4gK0FBUkNINjRfT1BUX0VY VEVOU0lPTigiY3JjIiwgICBBQVJDSDY0X0ZMX0NSQywgICAgICAgICAgICAg ICAgICAgICAgICAgQUFSQ0g2NF9GTF9DUkMsICAgICAgICAgICAgICAgICAg ICAgICAgImNyYzMyIikNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LW9wdHMuaCANCj4gYi9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC1vcHRzLmgNCj4gaW5kZXggZjg4YWU1Yi4uZWE2NGNmNCAxMDA2 NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtb3B0cy5o DQo+ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LW9wdHMuaA0K PiBAQCAtMjUsNyArMjUsNyBAQA0KPiAgICAvKiBUaGUgdmFyaW91cyBjb3Jl cyB0aGF0IGltcGxlbWVudCBBQXJjaDY0LiAgKi8NCj4gICAgZW51bSBhYXJj aDY0X3Byb2Nlc3Nvcg0KPiAgICB7DQo+IC0jZGVmaW5lIEFBUkNINjRfQ09S RShOQU1FLCBJTlRFUk5BTF9JREVOVCwgU0NIRUQsIEFSQ0gsIEZMQUdTLCBD T1NUUykgDQo+IFwNCj4gKyNkZWZpbmUgQUFSQ0g2NF9DT1JFKE5BTUUsIElO VEVSTkFMX0lERU5ULCBTQ0hFRCwgQVJDSCwgRkxBR1MsIENPU1RTLCANCj4g K0lNUCwgUEFSVCkgXA0KPiAgICAgIElOVEVSTkFMX0lERU5ULA0KPiAgICAj aW5jbHVkZSAiYWFyY2g2NC1jb3Jlcy5kZWYiDQo+ICAgICN1bmRlZiBBQVJD SDY0X0NPUkUNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9h YXJjaDY0LmMgDQo+IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuYyBp bmRleCA5NTRlMTEwLi5lYTYwMjBmIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5jDQo+ICsrKyBiL2djYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LmMNCj4gQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdHJ1Y3Qg cHJvY2Vzc29yDQo+ICAgIC8qIFByb2Nlc3NvciBjb3JlcyBpbXBsZW1lbnRp bmcgQUFyY2g2NC4gICovDQo+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHJv Y2Vzc29yIGFsbF9jb3Jlc1tdID0NCj4gICAgew0KPiAtI2RlZmluZSBBQVJD SDY0X0NPUkUoTkFNRSwgSURFTlQsIFNDSEVELCBBUkNILCBGTEFHUywgQ09T VFMpIFwNCj4gKyNkZWZpbmUgQUFSQ0g2NF9DT1JFKE5BTUUsIElERU5ULCBT Q0hFRCwgQVJDSCwgRkxBR1MsIENPU1RTLCBJTVAsIA0KPiArUEFSVCkgXA0K PiAgICAgIHtOQU1FLCBTQ0hFRCwgI0FSQ0gsIEFSQ0gsIEZMQUdTLCAmQ09T VFMjI190dW5pbmdzfSwNCj4gICAgI2luY2x1ZGUgImFhcmNoNjQtY29yZXMu ZGVmIg0KPiAgICAjdW5kZWYgQUFSQ0g2NF9DT1JFDQo+IEBAIC00NzgsNyAr NDc4LDcgQEAgc3RydWN0IGFhcmNoNjRfb3B0aW9uX2V4dGVuc2lvbg0KPiAg ICAvKiBJU0EgZXh0ZW5zaW9ucyBpbiBBQXJjaDY0LiAgKi8NCj4gICAgc3Rh dGljIGNvbnN0IHN0cnVjdCBhYXJjaDY0X29wdGlvbl9leHRlbnNpb24gYWxs X2V4dGVuc2lvbnNbXSA9DQo+ICAgIHsNCj4gLSNkZWZpbmUgQUFSQ0g2NF9P UFRfRVhURU5TSU9OKE5BTUUsIEZMQUdTX09OLCBGTEFHU19PRkYpIFwNCj4g KyNkZWZpbmUgQUFSQ0g2NF9PUFRfRVhURU5TSU9OKE5BTUUsIEZMQUdTX09O LCBGTEFHU19PRkYsIA0KPiArRkVBVFVSRV9TVFJJTkcpIFwNCj4gICAgICB7 TkFNRSwgRkxBR1NfT04sIEZMQUdTX09GRn0sDQo+ICAgICNpbmNsdWRlICJh YXJjaDY0LW9wdGlvbi1leHRlbnNpb25zLmRlZiINCj4gICAgI3VuZGVmIEFB UkNINjRfT1BUX0VYVEVOU0lPTg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9hYXJjaDY0L2FhcmNoNjQuaCANCj4gYi9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC5oIGluZGV4IGJmNTllNDAuLjFmNzE4N2IgMTAwNjQ0DQo+IC0t LSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LmgNCj4gKysrIGIvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuaA0KPiBAQCAtNTA2LDcgKzUwNiw3 IEBAIGVudW0gcmVnX2NsYXNzDQo+DQo+ICAgIGVudW0gdGFyZ2V0X2NwdXMN Cj4gICAgew0KPiAtI2RlZmluZSBBQVJDSDY0X0NPUkUoTkFNRSwgSU5URVJO QUxfSURFTlQsIFNDSEVELCBBUkNILCBGTEFHUywgQ09TVFMpIA0KPiBcDQo+ ICsjZGVmaW5lIEFBUkNINjRfQ09SRShOQU1FLCBJTlRFUk5BTF9JREVOVCwg U0NIRUQsIEFSQ0gsIEZMQUdTLCBDT1NUUywgDQo+ICtJTVAsIFBBUlQpIFwN Cj4gICAgICBUQVJHRVRfQ1BVXyMjSU5URVJOQUxfSURFTlQsDQo+ICAgICNp bmNsdWRlICJhYXJjaDY0LWNvcmVzLmRlZiINCj4gICAgI3VuZGVmIEFBUkNI NjRfQ09SRQ0KPiBAQCAtOTI5LDExICs5MjksMjQgQEAgZXh0ZXJuIGNvbnN0 IGNoYXIgKmFhcmNoNjRfcmV3cml0ZV9tY3B1IChpbnQgYXJnYywgY29uc3Qg Y2hhciAqKmFyZ3YpOw0KPiAgICAjZGVmaW5lIEJJR19MSVRUTEVfQ1BVX1NQ RUNfRlVOQ1RJT05TIFwNCj4gICAgICB7ICJyZXdyaXRlX21jcHUiLCBhYXJj aDY0X3Jld3JpdGVfbWNwdSB9LA0KPg0KPiArI2lmIGRlZmluZWQoX19hYXJj aDY0X18pDQo+ICtleHRlcm4gY29uc3QgY2hhciAqaG9zdF9kZXRlY3RfbG9j YWxfY3B1IChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3YpOw0KPiArIyBk ZWZpbmUgRVhUUkFfU1BFQ19GVU5DVElPTlMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgIHsgImxvY2FsX2NwdV9k ZXRlY3QiLCBob3N0X2RldGVjdF9sb2NhbF9jcHUgfSwgICAgICAgICAgICAg ICAgICAgICAgIFwNCj4gKyAgQklHX0xJVFRMRV9DUFVfU1BFQ19GVU5DVElP TlMNCj4gKw0KPiArIyBkZWZpbmUgTUNQVV9NVFVORV9OQVRJVkVfU1BFQ1Mg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsg ICAiICV7bWFyY2g9bmF0aXZlOiU8bWFyY2g9bmF0aXZlICU6bG9jYWxfY3B1 X2RldGVjdChhcmNoKX0iICAgICAgICAgIFwNCj4gKyAgICIgJXttY3B1PW5h dGl2ZTolPG1jcHU9bmF0aXZlICU6bG9jYWxfY3B1X2RldGVjdChjcHUpfSIg ICAgICAgICAgICAgXA0KPiArICAgIiAle210dW5lPW5hdGl2ZTolPG10dW5l PW5hdGl2ZSAlOmxvY2FsX2NwdV9kZXRlY3QodHVuZSl9Ig0KPiArI2Vsc2UN Cj4gKyMgZGVmaW5lIE1DUFVfTVRVTkVfTkFUSVZFX1NQRUNTICIiDQo+ICsj IGRlZmluZSBFWFRSQV9TUEVDX0ZVTkNUSU9OUyBCSUdfTElUVExFX0NQVV9T UEVDX0ZVTkNUSU9OUyAjZW5kaWYNCj4gKw0KPiAgICAjZGVmaW5lIEFTTV9D UFVfU1BFQyBcDQo+ICAgICAgIEJJR19MSVRUTEVfU1BFQw0KPg0KPiAtI2Rl ZmluZSBFWFRSQV9TUEVDX0ZVTkNUSU9OUyBCSUdfTElUVExFX0NQVV9TUEVD X0ZVTkNUSU9OUw0KPiAtDQo+ICAgICNkZWZpbmUgRVhUUkFfU1BFQ1MgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAg ICAgIHsgImFzbV9jcHVfc3BlYyIsICAgICAgICAgICBBU01fQ1BVX1NQRUMg fQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2RyaXZl ci1hYXJjaDY0LmMgDQo+IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2RyaXZlci1h YXJjaDY0LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMC4uZGExMGE0Yw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy9j b25maWcvYWFyY2g2NC9kcml2ZXItYWFyY2g2NC5jDQo+IEBAIC0wLDAgKzEs MzA3IEBADQo+ICsvKiBOYXRpdmUgQ1BVIGRldGVjdGlvbiBmb3IgYWFyY2g2 NC4NCj4gKyAgIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAgVGhpcyBmaWxlIGlzIHBhcnQg b2YgR0NDLg0KPiArDQo+ICsgICBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArICAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkNCj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9w dGlvbikNCj4gKyAgIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArDQo+ICsgICBH Q0MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwNCj4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlDQo+ICsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArDQo+ICsgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQ0KPiArICAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBD T1BZSU5HMy4gIElmIG5vdCBzZWUgDQo+ICs8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLw0KPiArDQo+ICsjaW5jbHVkZSAiY29uZmlnLmgi DQo+ICsjaW5jbHVkZSAic3lzdGVtLmgiDQo+ICsNCj4gK3N0cnVjdCBhcmNo X2V4dGVuc2lvbg0KPiArew0KPiArICBjb25zdCBjaGFyICpleHQ7DQo+ICsg IGNvbnN0IGNoYXIgKmZlYXRfc3RyaW5nOw0KPiArfTsNCj4gKw0KPiArI2Rl ZmluZSBBQVJDSDY0X09QVF9FWFRFTlNJT04oRVhUX05BTUUsIEZMQUdTX09O LCBGTEFHU19PRkYsIA0KPiArRkVBVFVSRV9TVFJJTkcpIFwNCj4gKyAgeyBF WFRfTkFNRSwgRkVBVFVSRV9TVFJJTkcgfSwNCj4gK3N0YXRpYyBzdHJ1Y3Qg YXJjaF9leHRlbnNpb24gZXh0X3RvX2ZlYXRfc3RyaW5nW10gPSB7ICNpbmNs dWRlIA0KPiArImFhcmNoNjQtb3B0aW9uLWV4dGVuc2lvbnMuZGVmIg0KPiAr fTsNCj4gKyN1bmRlZiBBQVJDSDY0X09QVF9FWFRFTlNJT04NCj4gKw0KPiAr DQo+ICtzdHJ1Y3QgYWFyY2g2NF9jb3JlX2RhdGENCj4gK3sNCj4gKyAgY29u c3QgY2hhciogbmFtZTsNCj4gKyAgY29uc3QgY2hhciogYXJjaDsNCj4gKyAg Y29uc3QgY2hhciogaW1wbGVtZW50ZXJfaWQ7DQo+ICsgIGNvbnN0IGNoYXIq IHBhcnRfbm87DQo+ICt9Ow0KPiArDQo+ICsjZGVmaW5lIEFBUkNINjRfQ09S RShDT1JFX05BTUUsIENPUkVfSURFTlQsIFNDSEVELCBBUkNILCBGTEFHUywg DQo+ICtDT1NUUywgSU1QLCBQQVJUKSBcDQo+ICsgIHsgQ09SRV9OQU1FLCAj QVJDSCwgSU1QLCBQQVJUIH0sDQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3QgYWFy Y2g2NF9jb3JlX2RhdGEgY3B1X2RhdGEgW10gPSB7ICNpbmNsdWRlIA0KPiAr ImFhcmNoNjQtY29yZXMuZGVmIg0KPiArICB7IE5VTEwsIE5VTEwsIE5VTEws IE5VTEwgfQ0KPiArfTsNCj4gKw0KPiArI3VuZGVmIEFBUkNINjRfQ09SRQ0K PiArDQo+ICtzdHJ1Y3QgYWFyY2g2NF9hcmNoDQo+ICt7DQo+ICsgIGNvbnN0 IGNoYXIqIGlkOw0KPiArICBjb25zdCBjaGFyKiBuYW1lOw0KPiArfTsNCj4g Kw0KPiArI2RlZmluZSBBQVJDSDY0X0FSQ0goTkFNRSwgQ09SRSwgQVJDSCwg RkxBR1MpIFwNCj4gKyAgeyAjQVJDSCwgTkFNRSAgfSwNCj4gKw0KPiArc3Rh dGljIHN0cnVjdCBhYXJjaDY0X2FyY2ggYWFyY2g2NF9hcmNoZXMgW10gPSB7 ICNpbmNsdWRlIA0KPiArImFhcmNoNjQtYXJjaGVzLmRlZiINCj4gKyAge05V TEwsIE5VTEx9DQo+ICt9Ow0KPiArDQo+ICsjdW5kZWYgQUFSQ0g2NF9BUkNI DQo+ICsNCj4gKy8qIFJldHVybiB0aGUgZnVsbCBhcmNoaXRlY3R1cmUgbmFt ZSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUNCj4gKyAgIGlkZW50aWZp ZXIgSUQuICAqLw0KPiArDQo+ICtzdGF0aWMgY29uc3QgY2hhcioNCj4gK2dl dF9hcmNoX25hbWVfZnJvbV9pZCAoY29uc3QgY2hhciogaWQpIHsNCj4gKyAg dW5zaWduZWQgaW50IGkgPSAwOw0KPiArDQo+ICsgIGZvciAoaSA9IDA7IGFh cmNoNjRfYXJjaGVzW2ldLmlkICE9IE5VTEw7IGkrKykNCj4gKyAgICB7DQo+ ICsgICAgICBpZiAoc3RyY21wIChpZCwgYWFyY2g2NF9hcmNoZXNbaV0uaWQp ID09IDApDQo+ICsgICAgICAgIHJldHVybiBhYXJjaDY0X2FyY2hlc1tpXS5u YW1lOw0KPiArICAgIH0NCj4gKw0KPiArICByZXR1cm4gTlVMTDsNCj4gK30N Cj4gKw0KPiArDQo+ICsvKiBDaGVjayB3ZXRoZXIgdGhlIHN0cmluZyBDT1JF IGNvbnRhaW5zIHRoZSBzYW1lIENQVSBwYXJ0IG51bWJlcnMNCj4gKyAgIGFz IEJMX1NUUklORy4gIEZvciBleGFtcGxlIENPUkU9InsweGQwMywgMHhkMDd9 IiBhbmQgQkxfU1RSSU5HPSIweGQwNy4weGQwMyINCj4gKyAgIHNob3VsZCBy ZXR1cm4gdHJ1ZS4gICovDQo+ICsNCj4gK3N0YXRpYyBib29sDQo+ICt2YWxp ZF9iTF9zdHJpbmdfcCAoY29uc3QgY2hhcioqIGNvcmUsIGNvbnN0IGNoYXIq IGJMX3N0cmluZykgew0KPiArICByZXR1cm4gc3Ryc3RyIChiTF9zdHJpbmcs IGNvcmVbMF0pICE9IE5VTEwNCj4gKyAgICAgICAgICYmIHN0cnN0ciAoYkxf c3RyaW5nLCBjb3JlWzFdKSAhPSBOVUxMOyB9DQo+ICsNCj4gKy8qICBSZXR1 cm4gdHJ1ZSBpZmYgQVJSIGNvbnRhaW5zIFNUUiBpbiBvbmUgb2YgaXRzIHR3 byBlbGVtZW50cy4gICovDQo+ICsNCj4gK3N0YXRpYyBib29sDQo+ICtjb250 YWluc19zdHJpbmdfcCAoY29uc3QgY2hhcioqIGFyciwgY29uc3QgY2hhciog c3RyKSB7DQo+ICsgIGJvb2wgcmVzID0gZmFsc2U7DQo+ICsNCj4gKyAgaWYg KGFyclswXSAhPSBOVUxMKQ0KPiArICAgIHsNCj4gKyAgICAgIHJlcyA9IHN0 cnN0ciAoYXJyWzBdLCBzdHIpICE9IE5VTEw7DQo+ICsgICAgICBpZiAocmVz KQ0KPiArICAgICAgICByZXR1cm4gcmVzOw0KPiArDQo+ICsgICAgICBpZiAo YXJyWzFdICE9IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiBzdHJzdHIgKGFy clsxXSwgc3RyKSAhPSBOVUxMOw0KPiArICAgIH0NCj4gKw0KPiArICByZXR1 cm4gZmFsc2U7DQo+ICt9DQo+ICsNCj4gKy8qIFRoaXMgd2lsbCBiZSBjYWxs ZWQgYnkgdGhlIHNwZWMgcGFyc2VyIGluIGdjYy5jIHdoZW4gaXQgc2Vlcw0K PiArICAgYSAlOmxvY2FsX2NwdV9kZXRlY3QoYXJncykgY29uc3RydWN0LiAg Q3VycmVudGx5IGl0IHdpbGwgYmUgY2FsbGVkDQo+ICsgICB3aXRoIGVpdGhl ciAiYXJjaCIsICJjcHUiIG9yICJ0dW5lIiBhcyBhcmd1bWVudCBkZXBlbmRp bmcgb24gaWYNCj4gKyAgIC1tYXJjaD1uYXRpdmUsIC1tY3B1PW5hdGl2ZSBv ciAtbXR1bmU9bmF0aXZlIGlzIHRvIGJlIHN1YnN0aXR1dGVkLg0KPiArDQo+ ICsgICBJdCByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgbmV3IGNvbW1h bmQgbGluZSBwYXJhbWV0ZXJzIHRvIGJlDQo+ICsgICBwdXQgYXQgdGhlIHBs YWNlIG9mIHRoZSBhYm92ZSB0d28gb3B0aW9ucywgZGVwZW5kaW5nIG9uIHdo YXQgQ1BVDQo+ICsgICB0aGlzIGlzIGV4ZWN1dGVkLiAgRS5nLiAiLW1hcmNo PWFybXY4LWEiIG9uIGEgQ29ydGV4LUE1NyBmb3INCj4gKyAgIC1tYXJjaD1u YXRpdmUuICBJZiB0aGUgcm91dGluZSBjYW4ndCBkZXRlY3QgYSBrbm93biBw cm9jZXNzb3IsDQo+ICsgICB0aGUgLW1hcmNoIG9yIC1tdHVuZSBvcHRpb24g aXMgZGlzY2FyZGVkLg0KPiArDQo+ICsgICBGb3IgLW10dW5lIGFuZCAtbWNw dSBhcmd1bWVudHMgaXQgYXR0ZW1wdHMgdG8gZGV0ZWN0IHRoZSBDUFUgb3IN Cj4gKyAgIGEgYmlnLkxJVFRMRSBzeXN0ZW0uDQo+ICsgICBBUkdDIGFuZCBB UkdWIGFyZSBzZXQgZGVwZW5kaW5nIG9uIHRoZSBhY3R1YWwgYXJndW1lbnRz IGdpdmVuDQo+ICsgICBpbiB0aGUgc3BlYy4gICovDQo+ICsNCj4gK2NvbnN0 IGNoYXIgKg0KPiAraG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYXJnYywg Y29uc3QgY2hhciAqKmFyZ3YpIHsNCj4gKyAgY29uc3QgY2hhciAqYXJjaF9p ZCA9IE5VTEw7DQo+ICsgIGNvbnN0IGNoYXIgKnJlcyA9IE5VTEw7DQo+ICsg IHN0YXRpYyBjb25zdCBpbnQgbnVtX2V4dHMgPSBBUlJBWV9TSVpFIChleHRf dG9fZmVhdF9zdHJpbmcpOw0KPiArICBjaGFyIGJ1ZlsxMjhdOw0KPiArICBG SUxFICpmID0gTlVMTDsNCj4gKyAgYm9vbCBhcmNoID0gZmFsc2U7DQo+ICsg IGJvb2wgdHVuZSA9IGZhbHNlOw0KPiArICBib29sIGNwdSA9IGZhbHNlOw0K PiArICB1bnNpZ25lZCBpbnQgaSA9IDA7DQo+ICsgIHVuc2lnbmVkIGludCBj b3JlX2lkeCA9IDA7DQo+ICsgIGNvbnN0IGNoYXIqIGltcHNbMl0gPSB7IE5V TEwsIE5VTEwgfTsNCj4gKyAgY29uc3QgY2hhciogY29yZXNbMl0gPSB7IE5V TEwsIE5VTEwgfTsNCj4gKyAgdW5zaWduZWQgaW50IG5fY29yZXMgPSAwOw0K PiArICB1bnNpZ25lZCBpbnQgbl9pbXBzID0gMDsNCj4gKyAgYm9vbCBwcm9j ZXNzZWRfZXh0cyA9IGZhbHNlOw0KPiArICBjb25zdCBjaGFyICpleHRfc3Ry aW5nID0gIiI7DQo+ICsNCj4gKyAgZ2NjX2Fzc2VydCAoYXJnYyk7DQo+ICsN Cj4gKyAgaWYgKCFhcmd2WzBdKQ0KPiArICAgIGdvdG8gbm90X2ZvdW5kOw0K PiArDQo+ICsgIC8qIEFyZSB3ZSBwcm9jZXNzaW5nIC1tYXJjaCwgbXR1bmUg b3IgbWNwdT8gICovICBhcmNoID0gc3RyY21wIA0KPiArIChhcmd2WzBdLCAi YXJjaCIpID09IDA7ICBpZiAoIWFyY2gpDQo+ICsgICAgdHVuZSA9IHN0cmNt cCAoYXJndlswXSwgInR1bmUiKSA9PSAwOw0KPiArDQo+ICsgIGlmICghYXJj aCAmJiAhdHVuZSkNCj4gKyAgICBjcHUgPSBzdHJjbXAgKGFyZ3ZbMF0sICJj cHUiKSA9PSAwOw0KPiArDQo+ICsgIGlmICghYXJjaCAmJiAhdHVuZSAmJiAh Y3B1KQ0KPiArICAgIGdvdG8gbm90X2ZvdW5kOw0KPiArDQo+ICsgIGYgPSBm b3BlbiAoIi9wcm9jL2NwdWluZm8iLCAiciIpOw0KPiArDQo+ICsgIGlmIChm ID09IE5VTEwpDQo+ICsgICAgZ290byBub3RfZm91bmQ7DQo+ICsNCj4gKyAg LyogTG9vayB0aHJvdWdoIC9wcm9jL2NwdWluZm8gdG8gZGV0ZXJtaW5lIHRo ZSBpbXBsZW1lbnRlcg0KPiArICAgICBhbmQgdGhlbiB0aGUgcGFydCBudW1i ZXIgdGhhdCBpZGVudGlmaWVzIGEgcGFydGljdWxhciBjb3JlLiAgKi8gIA0K PiArIHdoaWxlIChmZ2V0cyAoYnVmLCBzaXplb2YgKGJ1ZiksIGYpICE9IE5V TEwpDQo+ICsgICAgew0KPiArICAgICAgaWYgKHN0cnN0ciAoYnVmLCAiaW1w bGVtZW50ZXIiKSAhPSBOVUxMKQ0KPiArICAgICAgIHsNCj4gKyAgICAgICAg IGZvciAoaSA9IDA7IGNwdV9kYXRhW2ldLm5hbWUgIT0gTlVMTDsgaSsrKQ0K PiArICAgICAgICAgICBpZiAoc3Ryc3RyIChidWYsIGNwdV9kYXRhW2ldLmlt cGxlbWVudGVyX2lkKSAhPSBOVUxMDQo+ICsgICAgICAgICAgICAgICAgJiYg IWNvbnRhaW5zX3N0cmluZ19wIChpbXBzLCBjcHVfZGF0YVtpXS5pbXBsZW1l bnRlcl9pZCkpDQo+ICsgICAgICAgICAgICAgew0KPiArICAgICAgICAgICAg ICAgIGlmIChuX2ltcHMgPT0gMikNCj4gKyAgICAgICAgICAgICAgICAgIGdv dG8gbm90X2ZvdW5kOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgaW1wc1tu X2ltcHMrK10gPSBjcHVfZGF0YVtpXS5pbXBsZW1lbnRlcl9pZDsNCj4gKw0K PiArICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgIH0N Cj4gKyAgICAgICAgICBjb250aW51ZTsNCj4gKyAgICAgICB9DQo+ICsNCj4g KyAgICAgIGlmIChzdHJzdHIgKGJ1ZiwgInBhcnQiKSAhPSBOVUxMKQ0KPiAr ICAgICAgIHsNCj4gKyAgICAgICAgIGZvciAoaSA9IDA7IGNwdV9kYXRhW2ld Lm5hbWUgIT0gTlVMTDsgaSsrKQ0KPiArICAgICAgICAgICBpZiAoc3Ryc3Ry IChidWYsIGNwdV9kYXRhW2ldLnBhcnRfbm8pICE9IE5VTEwNCj4gKyAgICAg ICAgICAgICAgICAmJiAhY29udGFpbnNfc3RyaW5nX3AgKGNvcmVzLCBjcHVf ZGF0YVtpXS5wYXJ0X25vKSkNCj4gKyAgICAgICAgICAgICB7DQo+ICsgICAg ICAgICAgICAgICAgaWYgKG5fY29yZXMgPT0gMikNCj4gKyAgICAgICAgICAg ICAgICAgIGdvdG8gbm90X2ZvdW5kOw0KPiArDQo+ICsgICAgICAgICAgICAg ICAgY29yZXNbbl9jb3JlcysrXSA9IGNwdV9kYXRhW2ldLnBhcnRfbm87DQo+ ICsgICAgICAgICAgICAgICBjb3JlX2lkeCA9IGk7DQo+ICsgICAgICAgICAg ICAgICBhcmNoX2lkID0gY3B1X2RhdGFbaV0uYXJjaDsNCj4gKyAgICAgICAg ICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgIH0NCj4gKyAgICAgICAg ICBjb250aW51ZTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgaWYgKCF0dW5l ICYmICFwcm9jZXNzZWRfZXh0cyAmJiBzdHJzdHIgKGJ1ZiwgIkZlYXR1cmVz IikgIT0gTlVMTCkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgIGZvciAo aSA9IDA7IGkgPCBudW1fZXh0czsgaSsrKQ0KPiArICAgICAgICAgICAgew0K PiArICAgICAgICAgICAgICBib29sIGVuYWJsZWQgPSB0cnVlOw0KPiArICAg ICAgICAgICAgICBjaGFyICpwID0gTlVMTDsNCj4gKyAgICAgICAgICAgICAg Y2hhciAqZmVhdF9zdHJpbmcgPSBjb25jYXQgDQo+ICsgKGV4dF90b19mZWF0 X3N0cmluZ1tpXS5mZWF0X3N0cmluZywgTlVMTCk7DQo+ICsNCj4gKyAgICAg ICAgICAgICAgcCA9IHN0cnRvayAoZmVhdF9zdHJpbmcsICIgIik7DQo+ICsN Cj4gKyAgICAgICAgICAgICAgd2hpbGUgKHAgIT0gTlVMTCkNCj4gKyAgICAg ICAgICAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAgICBpZiAoc3Ryc3Ry IChidWYsIHApID09IE5VTEwpDQo+ICsgICAgICAgICAgICAgICAgICAgIHsN Cj4gKyAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkID0gZmFsc2U7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAg ICAgICAgICAgIH0NCj4gKyAgICAgICAgICAgICAgICAgIHAgPSBzdHJ0b2sg KE5VTEwsICIgIik7DQo+ICsgICAgICAgICAgICAgICAgfQ0KPiArICAgICAg ICAgICAgICBleHRfc3RyaW5nID0gY29uY2F0IChleHRfc3RyaW5nLCAiKyIs IGVuYWJsZWQgPyAiIiA6ICJubyIsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV4dF90b19mZWF0X3N0cmluZ1tpXS5leHQsIE5V TEwpOw0KPiArICAgICAgICAgICAgfQ0KPiArICAgICAgICAgIHByb2Nlc3Nl ZF9leHRzID0gdHJ1ZTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0K PiArICBmY2xvc2UgKGYpOw0KPiArICBmID0gTlVMTDsNCj4gKw0KPiArICAv KiBXZWlyZCBjcHVpbmZvIGZvcm1hdCB0aGF0IHdlIGRvbid0IGtub3cgaG93 IHRvIGhhbmRsZS4gICovICBpZiANCj4gKyAobl9jb3JlcyA9PSAwIHx8IG5f Y29yZXMgPiAyIHx8IG5faW1wcyAhPSAxKQ0KPiArICAgIGdvdG8gbm90X2Zv dW5kOw0KPiArDQo+ICsgIGlmIChhcmNoICYmICFhcmNoX2lkKQ0KPiArICAg IGdvdG8gbm90X2ZvdW5kOw0KPiArDQo+ICsgIGlmIChhcmNoKQ0KPiArICAg IHsNCj4gKyAgICAgIGNvbnN0IGNoYXIqIGFyY2hfbmFtZSA9IGdldF9hcmNo X25hbWVfZnJvbV9pZCAoYXJjaF9pZCk7DQo+ICsNCj4gKyAgICAgIC8qIFdl IGdvdCBzb21lIGFyY2ggaW5kZW50aWZpZXIgdGhhdCdzIG5vdCBpbiBhYXJj aDY0LWFyY2hlcy5kZWY/ICAqLw0KPiArICAgICAgaWYgKCFhcmNoX25hbWUp DQo+ICsgICAgICAgIGdvdG8gbm90X2ZvdW5kOw0KPiArDQo+ICsgICAgICBy ZXMgPSBjb25jYXQgKCItbWFyY2g9IiwgYXJjaF9uYW1lLCBOVUxMKTsNCj4g KyAgICB9DQo+ICsgIC8qIFdlIGhhdmUgYmlnLkxJVFRMRS4gICovDQo+ICsg IGVsc2UgaWYgKG5fY29yZXMgPT0gMikNCj4gKyAgICB7DQo+ICsgICAgICBm b3IgKGkgPSAwOyBjcHVfZGF0YVtpXS5uYW1lICE9IE5VTEw7IGkrKykNCj4g KyAgICAgICAgew0KPiArICAgICAgICAgIGlmIChzdHJjaHIgKGNwdV9kYXRh W2ldLnBhcnRfbm8sICcuJykgIT0gTlVMTA0KPiArICAgICAgICAgICAgICAm JiBzdHJuY21wIChjcHVfZGF0YVtpXS5pbXBsZW1lbnRlcl9pZCwgaW1wc1sw XSwgc3RybGVuIChpbXBzWzBdKSAtIDEpID09IDANCj4gKyAgICAgICAgICAg ICAgJiYgdmFsaWRfYkxfc3RyaW5nX3AgKGNvcmVzLCBjcHVfZGF0YVtpXS5w YXJ0X25vKSkNCj4gKyAgICAgICAgICAgIHsNCj4gKyAgICAgICAgICAgICAg cmVzID0gY29uY2F0ICgiLW0iLCBjcHUgPyAiY3B1IiA6ICJ0dW5lIiwgIj0i LCBjcHVfZGF0YVtpXS5uYW1lLCBOVUxMKTsNCj4gKyAgICAgICAgICAgICAg YnJlYWs7DQo+ICsgICAgICAgICAgICB9DQo+ICsgICAgICAgIH0NCj4gKyAg ICAgIGlmICghcmVzKQ0KPiArICAgICAgICBnb3RvIG5vdF9mb3VuZDsNCj4g KyAgICB9DQo+ICsgIC8qIFRoZSBzaW1wbGUsIG5vbi1iaWcuTElUVExFIGNh c2UuICAqLyAgZWxzZQ0KPiArICAgIHsNCj4gKyAgICAgIGlmIChzdHJuY21w IChjcHVfZGF0YVtjb3JlX2lkeF0uaW1wbGVtZW50ZXJfaWQsIGltcHNbMF0s DQo+ICsgICAgICAgICAgICAgICAgICAgc3RybGVuIChpbXBzWzBdKSAtIDEp ICE9IDApDQo+ICsgICAgICAgIGdvdG8gbm90X2ZvdW5kOw0KPiArDQo+ICsg ICAgICByZXMgPSBjb25jYXQgKCItbSIsIGNwdSA/ICJjcHUiIDogInR1bmUi LCAiPSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgY3B1X2RhdGFbY29y ZV9pZHhdLm5hbWUsIE5VTEwpOw0KPiArICAgIH0NCj4gKw0KPiArICBpZiAo dHVuZSkNCj4gKyAgICByZXR1cm4gcmVzOw0KPiArDQo+ICsgIHJlcyA9IGNv bmNhdCAocmVzLCBleHRfc3RyaW5nLCBOVUxMKTsNCj4gKw0KPiArICByZXR1 cm4gcmVzOw0KPiArDQo+ICtub3RfZm91bmQ6DQo+ICsgIHsNCj4gKyAgIC8q IElmIGRldGVjdGlvbiBmYWlscyB3ZSBpZ25vcmUgdGhlIG9wdGlvbi4NCj4g KyAgICAgIENsZWFuIHVwIGFuZCByZXR1cm4gZW1wdHkgc3RyaW5nLiAgKi8N Cj4gKw0KPiArICAgIGlmIChmKQ0KPiArICAgICAgZmNsb3NlIChmKTsNCj4g Kw0KPiArICAgIHJldHVybiAiIjsNCj4gKyAgfQ0KPiArfQ0KPiArDQo+IGRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQveC1hYXJjaDY0IA0KPiBi L2djYy9jb25maWcvYWFyY2g2NC94LWFhcmNoNjQgbmV3IGZpbGUgbW9kZSAx MDA2NDQgaW5kZXggDQo+IDAwMDAwMDAuLjhjMDllMDQNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9nY2MvY29uZmlnL2FhcmNoNjQveC1hYXJjaDY0DQo+ IEBAIC0wLDAgKzEsMyBAQA0KPiArZHJpdmVyLWFhcmNoNjQubzogJChzcmNk aXIpL2NvbmZpZy9hYXJjaDY0L2RyaXZlci1hYXJjaDY0LmMgXA0KPiArICAk KENPTkZJR19IKSAkKFNZU1RFTV9IKQ0KPiArICAgICAgICQoQ09NUElMRVIp IC1jICQoQUxMX0NPTVBJTEVSRkxBR1MpICQoQUxMX0NQUEZMQUdTKSANCj4g KyQoSU5DTFVERVMpICQ8DQo+IGRpZmYgLS1naXQgYS9nY2MvZG9jL2ludm9r ZS50ZXhpIGIvZ2NjL2RvYy9pbnZva2UudGV4aSBpbmRleCANCj4gZTI5MThj Yi4uNTc4NzUyNCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4 aQ0KPiArKysgYi9nY2MvZG9jL2ludm9rZS50ZXhpDQo+IEBAIC0xMjMxOCw4 ICsxMjMxOCwxMiBAQCBUaGlzIGludm9sdmVzIGluc2VydGluZyBhIE5PUCBp bnN0cnVjdGlvbiBiZXR3ZWVuIG1lbW9yeSBpbnN0cnVjdGlvbnMgYW5kDQo+ ICAgIFNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCBhcmNoaXRlY3R1 cmUsIG9wdGlvbmFsbHkgc3VmZml4ZWQgYnkgb25lIG9yDQo+ICAgIG1vcmUg ZmVhdHVyZSBtb2RpZmllcnMuICBUaGlzIG9wdGlvbiBoYXMgdGhlIGZvcm0N Cj4gICAgQG9wdGlvbnstbWFyY2g9QHZhcnthcmNofUBye0B7fStAcntbfW5v QHJ7XX1AdmFye2ZlYXR1cmV9QHJ7QH0qfX0sIA0KPiB3aGVyZSB0aGUgLW9u bHkgcGVybWlzc2libGUgdmFsdWUgZm9yIEB2YXJ7YXJjaH0gaXMgQHNhbXB7 YXJtdjgtYX0uICANCj4gVGhlIHBlcm1pc3NpYmxlIC12YWx1ZXMgZm9yIEB2 YXJ7ZmVhdHVyZX0gYXJlIGRvY3VtZW50ZWQgaW4gdGhlIHN1Yi1zZWN0aW9u IGJlbG93Lg0KPiArb25seSBwZXJtaXNzaWJsZSB2YWx1ZSBmb3IgQHZhcnth cmNofSBpcyBAc2FtcHthcm12OC1hfS4NCj4gK1RoZSBwZXJtaXNzaWJsZSB2 YWx1ZXMgZm9yIEB2YXJ7ZmVhdHVyZX0gYXJlIGRvY3VtZW50ZWQgaW4gdGhl IA0KPiArc3ViLXNlY3Rpb24gYmVsb3cuICBBZGRpdGlvbmFsbHkgb24gbmF0 aXZlIEFBcmNoNjQgR05VL0xpbnV4IHN5c3RlbXMgDQo+ICt0aGUgdmFsdWUg QHNhbXB7bmF0aXZlfSBpcyBhdmFpbGFibGUuICBUaGlzIG9wdGlvbiBjYXVz ZXMgdGhlIA0KPiArY29tcGlsZXIgdG8gcGljayB0aGUgYXJjaGl0ZWN0dXJl IG9mIHRoZSBob3N0IHN5c3RlbS4gIElmIHRoZSANCj4gK2NvbXBpbGVyIGlz IHVuYWJsZSB0byByZWNvZ25pemUgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUg aG9zdCBzeXN0ZW0gdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdC4NCj4NCj4g ICAgV2hlcmUgY29uZmxpY3RpbmcgZmVhdHVyZSBtb2RpZmllcnMgYXJlIHNw ZWNpZmllZCwgdGhlIHJpZ2h0LW1vc3QgZmVhdHVyZSBpcw0KPiAgICB1c2Vk Lg0KPiBAQCAtMTIzNDMsNiArMTIzNDcsMTMgQEAgQWRkaXRpb25hbGx5LCB0 aGlzIG9wdGlvbiBjYW4gc3BlY2lmeSB0aGF0IEdDQyBzaG91bGQgdHVuZSB0 aGUgcGVyZm9ybWFuY2UNCj4gICAgb2YgdGhlIGNvZGUgZm9yIGEgYmlnLkxJ VFRMRSBzeXN0ZW0uICBQZXJtaXNzaWJsZSB2YWx1ZXMgZm9yIHRoaXMNCj4g ICAgb3B0aW9uIGFyZTogQHNhbXB7Y29ydGV4LWE1Ny5jb3J0ZXgtYTUzfSwg QHNhbXB7Y29ydGV4LWE3Mi5jb3J0ZXgtYTUzfS4NCj4NCj4gK0FkZGl0aW9u YWxseSBvbiBuYXRpdmUgQUFyY2g2NCBHTlUvTGludXggc3lzdGVtcyB0aGUg dmFsdWUgDQo+ICtAc2FtcHtuYXRpdmV9IGlzIGF2YWlsYWJsZS4NCj4gK1Ro aXMgb3B0aW9uIGNhdXNlcyB0aGUgY29tcGlsZXIgdG8gcGljayB0aGUgYXJj aGl0ZWN0dXJlIG9mIGFuZCB0dW5lIA0KPiArdGhlIHBlcmZvcm1hbmNlIG9m IHRoZSBjb2RlIGZvciB0aGUgcHJvY2Vzc29yIG9mIHRoZSBob3N0IHN5c3Rl bS4NCj4gK0lmIHRoZSBjb21waWxlciBpcyB1bmFibGUgdG8gcmVjb2duaXpl IHRoZSBwcm9jZXNzb3Igb2YgdGhlIGhvc3QgDQo+ICtzeXN0ZW0gdGhpcyBv cHRpb24gaGFzIG5vIGVmZmVjdC4NCj4gKw0KPiAgICBXaGVyZSBub25lIG9m IEBvcHRpb257LW10dW5lPX0sIEBvcHRpb257LW1jcHU9fSBvciBAb3B0aW9u ey1tYXJjaD19DQo+ICAgIGFyZSBzcGVjaWZpZWQsIHRoZSBjb2RlIGlzIHR1 bmVkIHRvIHBlcmZvcm0gd2VsbCBhY3Jvc3MgYSByYW5nZQ0KPiAgICBvZiB0 YXJnZXQgcHJvY2Vzc29ycy4NCj4gQEAgLTEyMzU1LDcgKzEyMzY2LDExIEBA IFNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCBwcm9jZXNzb3IsIG9w dGlvbmFsbHkgc3VmZml4ZWQgYnkgb25lIG9yIG1vcmUNCj4gICAgZmVhdHVy ZSBtb2RpZmllcnMuICBUaGlzIG9wdGlvbiBoYXMgdGhlIGZvcm0NCj4gICAg QG9wdGlvbnstbWNwdT1AdmFye2NwdX1AcntAe30rQHJ7W31ub0Bye119QHZh cntmZWF0dXJlfUBye0B9Kn19LCB3aGVyZSB0aGUNCj4gICAgcGVybWlzc2li bGUgdmFsdWVzIGZvciBAdmFye2NwdX0gYXJlIHRoZSBzYW1lIGFzIHRob3Nl IGF2YWlsYWJsZSANCj4gZm9yIC1Ab3B0aW9uey1tdHVuZX0uDQo+ICtAb3B0 aW9uey1tdHVuZX0uICBBZGRpdGlvbmFsbHkgb24gbmF0aXZlIEFBcmNoNjQg R05VL0xpbnV4IHN5c3RlbXMgDQo+ICt0aGUgdmFsdWUgQHNhbXB7bmF0aXZl fSBpcyBhdmFpbGFibGUuDQo+ICtUaGlzIG9wdGlvbiBjYXVzZXMgdGhlIGNv bXBpbGVyIHRvIHR1bmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBjb2RlIA0K PiArZm9yIHRoZSBwcm9jZXNzb3Igb2YgdGhlIGhvc3Qgc3lzdGVtLiAgSWYg dGhlIGNvbXBpbGVyIGlzIHVuYWJsZSB0byANCj4gK3JlY29nbml6ZSB0aGUg cHJvY2Vzc29yIG9mIHRoZSBob3N0IHN5c3RlbSB0aGlzIG9wdGlvbiBoYXMg bm8gZWZmZWN0Lg0KPg0KPiAgICBUaGUgcGVybWlzc2libGUgdmFsdWVzIGZv ciBAdmFye2ZlYXR1cmV9IGFyZSBkb2N1bWVudGVkIGluIHRoZSBzdWItc2Vj dGlvbg0KPiAgICBiZWxvdy4NCj4NCg0K