From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.8.58; helo=nam03-dm3-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-oln040092008058.outbound.protection.outlook.com [40.92.8.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A69DD20945BC8 for ; Tue, 31 Oct 2017 19:33:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=UZsxQal0GzZJzwTNnKlqSo4Qetd4X7arX0m6pd7kRvg=; b=r1anqOFgT+7wwhmeoxN3hyJbvW57wr0nEMduYD4naoHLNK9gH3GqZAvhG1S/5j5BnMW5+K4L7s8VI/7+WKPhlA+9FVVRq+hcxuBOe0Ny1Nr+B77AhxKJ8/a9RGj2kMT29lyAq4GsBkbl7R3umdVbNDJesdWhtt8/Ur3/tMfqEhk4NDZYF2V/9U1w1QoHvQBAyWbmPeiwere3d6/IzLE8IFwG8oe4Lus+y+EgF/aVNMbNeycs50OERPeIPYNlfdXdS4KXM++8x72aSuy055+KPboRO1Ds7DHa4DIpZBBKkgYDGUStvVfiYrChOkxSQeGNkmJWkCWzMG+9VABjs84dtA== Received: from DM3NAM03FT059.eop-NAM03.prod.protection.outlook.com (10.152.82.59) by DM3NAM03HT046.eop-NAM03.prod.protection.outlook.com (10.152.83.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.197.9; Wed, 1 Nov 2017 02:37:04 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com (10.152.82.58) by DM3NAM03FT059.mail.protection.outlook.com (10.152.82.207) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.197.9 via Frontend Transport; Wed, 1 Nov 2017 02:37:03 +0000 Received: from CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) by CY1PR19MB0283.namprd19.prod.outlook.com ([10.163.54.13]) with mapi id 15.20.0178.014; Wed, 1 Nov 2017 02:37:03 +0000 From: Fan Jeff To: Jian J Wang , "edk2-devel@lists.01.org" CC: Michael Kinney , Jiewen Yao , Eric Dong , Star Zeng Thread-Topic: [edk2] [PATCH 3/3] UefiCpuPkg/CpuExceptionHandlerLib: Add stack switch support Thread-Index: AQHTUlQxZoE+4gRCf0Oo+PeG+3Z2yqL+zzSb Date: Wed, 1 Nov 2017 02:37:03 +0000 Message-ID: References: <20171031142412.21680-1-jian.j.wang@intel.com>, <20171031142412.21680-4-jian.j.wang@intel.com> In-Reply-To: <20171031142412.21680-4-jian.j.wang@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:FD44E00D6AFA98CD975D4FDA7DCC93FC4E558F1E09630981EE38D4C02D057E14; UpperCasedChecksum:BA570DEB6DFBD40AC25271B440F84D4A0548BA43B64130BD33FFA478AEC9974A; SizeAsReceived:7336; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [OvtjYGSyGl3JeD9XbXB3pRnS27LZiL95] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM3NAM03HT046; 6:yLCPU4j5Xaya/Ntcdt7E6JzBql2cmxaPKJ5kAELcRV/NuWzkECOeBezXB3T7AK/ZYvZ7ISQy6+ASzVtWogu6cxJrNvYMkpcsB4f5Ku8mZoTA2BS427FYVUM1QSoYhMWgOOa0/mwAngDoWl9sJZnAbPi5Sn83mNKCOTM4OZNB4iNfxkrbsh6nNjIM9ALok8lN9y5R67e+JOG6mIXZ55aIn+w8H2I79je37UIFVV/Au6sIR0SCmzDukN4nsZkPoPDH8oqh/ZCsmBnNXjyVUsqD0qgnGiR4BmicFDr1SfzsZb6i6xLqDIcnjMkNe4HVpSF59/8aWRchMuo9vpl3ZaUZpTylXXbQqEilEeW75TM/kmA=; 5:jusFj98N3DWKCOyfgGYxZV0L03JIru3CneaAwK46V1/HZNCJRbNKLv4JOwLSxwYt0ZtUc64w688+iTys+5sKR0/vaLZFidw9VgiowY2n72sv/flofge5JbOfaszOmz80u+MjsFwjuLyTdmmd+bAUuFyY+k53IjnSj8ulOTqDatw=; 24:Qxr3clQpKS+gTFnPHsUZf3X1SXc/6bXnZ/t6qn+vimNE1N/ZrbLkoxv0zBzW0ze3klQLAjItj4lDTmxbv1BDtpyvDEce4eecOswo0s14P/Q=; 7:6UG2t7UVyvtzL+gncvhhViyF/SshDA2kC/PPd+F+lCfZDwrvOsDgCb3aTvee/Tkjfp/d5aQduKdUoVfcK8biLNgRedf5dmKimSVnpKOEo2rWfHWSInWbojKD+TZ739HjbqdMItH3VXWY9SpRCKOob3EhyAyP6vbpCsUKoE1xC1jMbNmUXYpyCDLn9CuUPo9kNPMe1D1hTD5wzprvse9x4NL64a8/7G2S3s4+D7yj16DRKTYpvllVA47JTA2DJtTu x-incomingheadercount: 47 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: 4a33604a-c14a-4b6c-4a55-08d520d16fb8 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:DM3NAM03HT046; x-ms-traffictypediagnostic: DM3NAM03HT046: authentication-results: outbound.protection.outlook.com; spf=skipped (originating message); dkim=none (message not signed) header.d=none; dmarc=none action=none header.from=hotmail.com; x-exchange-antispam-report-test: UriScan:(788757137089)(162533806227266)(21748063052155)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(444000031); SRVR:DM3NAM03HT046; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM3NAM03HT046; x-forefront-prvs: 0478C23FE0 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:DM3NAM03HT046; H:CY1PR19MB0283.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a33604a-c14a-4b6c-4a55-08d520d16fb8 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Nov 2017 02:37:03.6145 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3NAM03HT046 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: =?UTF-8?B?562U5aSNOiBbUEFUQ0ggMy8zXSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFkZCBzdGFjayBzd2l0Y2ggc3VwcG9ydA==?= 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: Wed, 01 Nov 2017 02:33:14 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MS4gICAgIFNob3VsZCBhZGQgRUZJQVBJIGZvciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uLg0KK1ZP SUQNCitBc21Xcml0ZVRyICgNCisgIFVJTlQxNiBTZWxlY3Rvcg0KKyAgKTsNCg0KDQoyLiAgICAg U2hvdWxkIG5vdCBhZGQgRUZJQVBJIGZvciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uLg0KK1ZPSUQN CitFRklBUEkNCitBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQorICBJTiBJQTMyX0lEVF9HQVRF X0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KKyAgKQ0KDQq3orz+yMs6IEppYW4gSiBX YW5nPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQq3osvNyrG85DogMjAxN8TqMTDUwjMx yNUgMjI6MjYNCsrVvP7IyzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2 ZWxAbGlzdHMuMDEub3JnPg0Ks63LzTogTWljaGFlbCBLaW5uZXk8bWFpbHRvOm1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsgSmlld2VuIFlhbzxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+ OyBFcmljIERvbmc8bWFpbHRvOmVyaWMuZG9uZ0BpbnRlbC5jb20+OyBTdGFyIFplbmc8bWFpbHRv OnN0YXIuemVuZ0BpbnRlbC5jb20+DQrW98ziOiBbZWRrMl0gW1BBVENIIDMvM10gVWVmaUNwdVBr Zy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgc3RhY2sgc3dpdGNoIHN1cHBvcnQNCg0KSWYg U3RhY2sgR3VhcmQgaXMgZW5hYmxlZCBhbmQgdGhlcmUncyByZWFsbHkgYSBzdGFjayBvdmVyZmxv dyBoYXBwZW5lZCBkdXJpbmcNCmJvb3QsIGEgUGFnZSBGYXVsdCBleGNlcHRpb24gd2lsbCBiZSB0 cmlnZ2VyZWQuIEJlY2F1c2UgdGhlIHN0YWNrIGlzIG91dCBvZg0KdXNhZ2UsIHRoZSBleGNlcHRp b24gaGFuZGxlciwgd2hpY2ggc2hhcmVzIHRoZSBzdGFjayB3aXRoIG5vcm1hbCBVRUZJIGRyaXZl ciwNCmNhbm5vdCBiZSBleGVjdXRlZCBhbmQgY2Fubm90IGR1bXAgdGhlIHByb2Nlc3NvciBpbmZv cm1hdGlvbi4NCg0KV2l0aG91dCB0aG9zZSBpbmZvcm1hdGlvbiwgaXQncyB2ZXJ5IGRpZmZpY3Vs dCBmb3IgdGhlIEJJT1MgZGV2ZWxvcGVycyBsb2NhdGUNCnRoZSByb290IGNhdXNlIG9mIHN0YWNr IG92ZXJmbG93LiBBbmQgd2l0aG91dCBhIHdvcmthYmxlIHN0YWNrLCB0aGUgZGV2ZWxvcGVyDQpj YW5ub3QgZXZlbnQgdXNlIHNpbmdsZSBzdGVwIHRvIGRlYnVnIHRoZSBVRUZJIGRyaXZlciB3aXRo IEpUQUcgZGVidWdnZXIuDQoNCkluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGUgZXhjZXB0aW9uIGhh bmRsZXIgdG8gZXhlY3V0ZSBub3JtYWxseSBhZnRlciBzdGFjaw0Kb3ZlcmZsb3cuIFdlIG5lZWQg c2VwYXJhdGUgc3RhY2tzIGZvciBleGNlcHRpb24gaGFuZGxlcnMgaW4gY2FzZSBvZiB1bnVzYWJs ZQ0Kc3RhY2suDQoNCklBIHByb2Nlc3NvciBhbGxvd3MgdG8gc3dpdGNoIHRvIGEgbmV3IHN0YWNr IGR1cmluZyBoYW5kbGluZyBpbnRlcnJ1cHQgYW5kDQpleGNlcHRpb24uIEJ1dCBYNjQgYW5kIElB MzIgcHJvdmlkZXMgZGlmZmVyZW50IHdheXMgdG8gbWFrZSBpdC4gWDY0IHByb3ZpZGVzDQppbnRl cnJ1cHQgc3RhY2sgdGFibGUgKElTVCkgdG8gYWxsb3cgbWF4aW11bSA3IGRpZmZlcmVudCBleGNl cHRpb25zIHRvIGhhdmUNCm5ldyBzdGFjayBmb3IgaXRzIGhhbmRsZXIuIElBMzIgZG9lc24ndCBo YXZlIElTVCBtZWNoYW5pc20gYW5kIGNhbiBvbmx5IHVzZQ0KdGFzayBnYXRlIHRvIGRvIGl0IHNp bmNlIHRhc2sgc3dpdGNoIGFsbG93cyB0byBsb2FkIGEgbmV3IHN0YWNrIHRocm91Z2ggaXRzDQp0 YXNrLXN0YXRlIHNlZ21lbnQgKFRTUykuDQoNCk5vdGU6IFN0YWNrIHN3aXRjaCBuZWVkcyB0byBh bGxvY2F0ZSBtZW1vcnkgcGFnZXMgdG8gYmUgbmV3IHN0YWNrcy4gU28gdGhpcw0KICAgICAgZnVu Y3Rpb25hbGl0eSB3b3JrcyBvbmx5IGluIHRoZSBib290IHBoYXNlcyBjYXBhYmxlIG9mIG1lbW9y eQ0KICAgICAgYWxsb2NhdGlvbiAoYmVzaWRlcyB0aGUgcGFnaW5nLCBmb3IgdGhlIHNha2Ugb2Yg U3RhY2sgR3VhcmQpLiBJbg0KICAgICAgb3RoZXIgd29yZHMsIG9ubHkgRFhFIHBoYXNlIGNhbiBz dXBwb3J0cyBTdGFjayBHdWFyZCB3aXRoIHN0YWNrIHN3aXRjaC4NCg0KQ2M6IFN0YXIgWmVuZyA8 c3Rhci56ZW5nQGludGVsLmNvbT4NCkNjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+ DQpDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpDYzogTWljaGFlbCBLaW5u ZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KU3VnZ2VzdGVkLWJ5OiBBeWVsbGV0IFdv bG1hbiA8YXllbGxldC53b2xtYW5AaW50ZWwuY29tPg0KQ29udHJpYnV0ZWQtdW5kZXI6IFRpYW5v Q29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KU2lnbmVkLW9mZi1ieTogSmlhbiBKIFdh bmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCi0tLQ0KIC4uLi9DcHVFeGNlcHRpb25IYW5kbGVy TGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oICAgIHwgIDIyICsrDQogLi4uL0R4ZUNwdUV4Y2VwdGlv bkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDUgKw0KIC4uLi9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMgIHwgIDE5ICsNCiAuLi4vSWEzMi9B cmNoRXhjZXB0aW9uSGFuZGxlci5jICAgICAgICAgICAgICAgICAgICB8IDEzNSArKysrKysrDQog Li4uL0lhMzIvQXJjaEludGVycnVwdERlZnMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAxMzYg KysrKysrKw0KIC4uLi9JYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20gICAgICAgICAgICAg ICAgIHwgMzk4ICsrKysrKysrKysrKysrKysrKysrKw0KIC4uLi9QZWlDcHVFeGNlcHRpb25IYW5k bGVyTGliLmluZiAgICAgICAgICAgICAgICAgIHwgICAxICsNCiAuLi4vU2VjUGVpQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi5pbmYgICAgICAgICAgICAgICB8ICAgMyArDQogLi4uL1NtbUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KIC4uLi9YNjQvQXJj aEV4Y2VwdGlvbkhhbmRsZXIuYyAgICAgICAgICAgICAgICAgICAgIHwgMTA4ICsrKysrKw0KIC4u Li9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVmcy5oIHwgIDQwICsr Kw0KIC4uLi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TICAgICAgICAgICAgICAgICAgICAgIHwg IDEyICsNCiAuLi4vWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uYXNtICAgICAgICAgICAgICAgICAg ICB8ICAxMiArDQogLi4uL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20gICAgICAgICAgICAg ICAgICAgfCAgMTIgKw0KIDE0IGZpbGVzIGNoYW5nZWQsIDkwNCBpbnNlcnRpb25zKCspDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IFVlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGli L0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmggYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21t b24uaA0KaW5kZXggNzQwYTU4ODI4Yi4uZmQ0YTI2YTQ1OCAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQ a2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oDQor KysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRp b25Db21tb24uaA0KQEAgLTI1LDYgKzI1LDcgQEANCiAjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVt b3J5TGliLmg+DQogI2luY2x1ZGUgPExpYnJhcnkvU3luY2hyb25pemF0aW9uTGliLmg+DQogI2lu Y2x1ZGUgPExpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5oPg0KKyNpbmNsdWRlIDxMaWJy YXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCg0KICNkZWZpbmUgIENQVV9FWENFUFRJT05fTlVN ICAgICAgICAgIDMyDQogI2RlZmluZSAgQ1BVX0lOVEVSUlVQVF9OVU0gICAgICAgICAyNTYNCkBA IC0yODgsNSArMjg5LDI2IEBAIENvbW1vbkV4Y2VwdGlvbkhhbmRsZXJXb3JrZXIgKA0KICAgSU4g RVhDRVBUSU9OX0hBTkRMRVJfREFUQSAgICAgICpFeGNlcHRpb25IYW5kbGVyRGF0YQ0KICAgKTsN Cg0KKy8qKg0KKyAgTG9hZCBnaXZlbiBzZWxlY3RvciBpbnRvIFRSIHJlZ2lzdGVyDQorDQorICBA cGFyYW0gU2VsZWN0b3IgICAgICAgICBUYXNrIHNlZ21lbnQgc2VsZWN0b3INCisqKi8NCitWT0lE DQorQXNtV3JpdGVUciAoDQorICBVSU5UMTYgU2VsZWN0b3INCisgICk7DQorDQorLyoqDQorICBT ZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9ucy4NCisNCisgIEBwYXJh bVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0KKyoqLw0KK1ZPSUQNCitFRklB UEkNCitBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQorICBJTiBJQTMyX0lEVF9HQVRFX0RFU0NS SVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KKyAgKTsNCisNCiAjZW5kaWYNCg0KZGlmZiAtLWdp dCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIuaW5mIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCmluZGV4IGY0YThkMDFjODAuLmIw OTllZjRkYWQgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9EeGVDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KKysrIGIvVWVmaUNwdVBrZy9M aWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYNCkBAIC0zMCw2ICszMCw3IEBADQogW1NvdXJjZXMuSWEzMl0NCiAgIElhMzIvRXhjZXB0aW9u SGFuZGxlckFzbS5hc20NCiAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQorICBJYTMy L0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5hc20NCiAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5T DQogICBJYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCiAgIElhMzIvQXJjaEludGVycnVwdERl ZnMuaA0KQEAgLTQ3LDYgKzQ4LDkgQEANCiAgIFBlaUR4ZVNtbUNwdUV4Y2VwdGlvbi5jDQogICBE eGVFeGNlcHRpb24uYw0KDQorW1BjZF0NCisgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RDcHVTdGFja0d1YXJkDQorDQogW1BhY2thZ2VzXQ0KICAgTWRlUGtnL01kZVBrZy5kZWMN CiAgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQpAQCAtNjEsMyArNjUsNCBAQA0KICAg UGVDb2ZmR2V0RW50cnlQb2ludExpYg0KICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KICAgRGVidWdM aWINCisgIEhvYkxpYg0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL0R4ZUV4Y2VwdGlvbi5jIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2Vw dGlvbkhhbmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCmluZGV4IDMxZmViZWM5NzYuLmU5ZGNkMDBl MDIgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9EeGVFeGNlcHRpb24uYw0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhh bmRsZXJMaWIvRHhlRXhjZXB0aW9uLmMNCkBAIC0xNiw2ICsxNiw3IEBADQogI2luY2x1ZGUgIkNw dUV4Y2VwdGlvbkNvbW1vbi5oIg0KICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQogI2lu Y2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPg0KKyNpbmNsdWRlIDxMaWJyYXJ5 L0hvYkxpYi5oPg0KDQogQ09OU1QgVUlOVE4gICAgbURvRmFyUmV0dXJuRmxhZyAgPSAwOw0KDQpA QCAtMTU1LDYgKzE1NiwyNCBAQCBJbml0aWFsaXplQ3B1SW50ZXJydXB0SGFuZGxlcnMgKA0KDQog ICBVcGRhdGVJZHRUYWJsZSAoSWR0VGFibGUsICZUZW1wbGF0ZU1hcCwgJm1FeGNlcHRpb25IYW5k bGVyRGF0YSk7DQoNCisgIGlmIChQY2RHZXRCb29sIChQY2RDcHVTdGFja0d1YXJkKSkgew0KKyAg ICAvLw0KKyAgICAvLyBTdGFjayBHdWFyZCB3b3JrcyB3aXRoIHRoZSBzdXBwb3J0IG9mIHBhZ2Ug dGFibGUgZXN0YWJsaXNoZWQgYW5kDQorICAgIC8vIG1lbW9yeSBtYW5hZ2VtZW50LiBTbyB3ZSBo YXZlIHRvIGV4Y2x1ZGUgdGhvc2UgYm9vdCBtb2RlcyB3aXRob3V0DQorICAgIC8vIHRoZW0uDQor ICAgIC8vDQorICAgIHN3aXRjaCAoR2V0Qm9vdE1vZGVIb2IoKSkgew0KKyAgICBjYXNlIEJPT1Rf T05fRkxBU0hfVVBEQVRFOg0KKyAgICBjYXNlIEJPT1RfSU5fUkVDT1ZFUllfTU9ERToNCisgICAg Y2FzZSBCT09UX09OX1MzX1JFU1VNRToNCisgICAgICBicmVhazsNCisNCisgICAgZGVmYXVsdDoN CisgICAgICBBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoSWR0VGFibGUpOw0KKyAgICAgIGJyZWFr Ow0KKyAgICB9DQorICB9DQorDQogICAvLw0KICAgLy8gTG9hZCBJbnRlcnJ1cHQgRGVzY3JpcHRv ciBUYWJsZQ0KICAgLy8NCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMN CmluZGV4IGYyYzM5ZWIxOTMuLjNkNDFkZjc1YTUgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hFeGNlcHRpb25IYW5kbGVyLmMN CisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvQXJj aEV4Y2VwdGlvbkhhbmRsZXIuYw0KQEAgLTE0LDYgKzE0LDE5IEBADQoNCiAjaW5jbHVkZSAiQ3B1 RXhjZXB0aW9uQ29tbW9uLmgiDQoNCisvLw0KKy8vIExpc3Qgb2YgZXhjZXB0aW9ucyBuZWVkaW5n IHNlcGFyYXRlIHN0YWNrDQorLy8NCitTVEFUSUMgSUEzMl9FWENFUFRJT05fVFNfRU5UUlkgbUV4 Y2VwdGlvbnNXaXRoU3RhY2tbXSA9IHsNCisgIHs2LCAgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5 Nn0sICAvLyNVRDogSW52YWxpZCBPcGNvZGUgRXhjZXB0aW9uDQorICB7OCwgIEV4Y2VwdGlvblRh c2tTd3RpY2hFbnRyeTh9LCAgLy8jREY6IERvdWJsZSBGYXVsdCBFeGNlcHRpb24NCisgIHsxMiwg RXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTJ9LCAvLyNTUzogU3RhY2sgRmF1bHQgRXhjZXB0aW9u DQorICB7MTMsIEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeTEzfSwgLy8jR1A6IEdlbmVyYWwgUHJv dGVjdGlvbiBFeGNlcHRpb24NCisgIHsxNCwgRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5MTR9LCAv LyNQRjogUGFnZS1GYXVsdCBFeGNlcHRpb24NCisgIHsxNywgRXhjZXB0aW9uVGFza1N3dGljaEVu dHJ5MTd9LCAvLyNBQzogQWxpZ25tZW50IENoZWNrIEV4Y2VwdGlvbg0KKyAgezE4LCBFeGNlcHRp b25UYXNrU3d0aWNoRW50cnkxOH0gIC8vI01DOiBNYWNoaW5lLUNoZWNrIEV4Y2VwdGlvbg0KK307 DQorDQogLyoqDQogICBSZXR1cm4gYWRkcmVzcyBtYXAgb2YgZXhjZXB0aW9uIGhhbmRsZXIgdGVt cGxhdGUgc28gdGhhdCBDIGNvZGUgY2FuIGdlbmVyYXRlDQogICBleGNlcHRpb24gdGFibGVzLg0K QEAgLTEwNyw2ICsxMjAsMTI4IEBAIEFyY2hSZXN0b3JlRXhjZXB0aW9uQ29udGV4dCAoDQogICBT eXN0ZW1Db250ZXh0LlN5c3RlbUNvbnRleHRJYTMyLT5FeGNlcHRpb25EYXRhID0gUmVzZXJ2ZWRW ZWN0b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlvbkRhdGE7DQogfQ0KDQorLyoqDQorICBTZXR1 cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0aW9ucy4NCisNCisgICBAcGFyYW1b aW5dIElkdFRhYmxlICAgICAgICBJRFQgdGFibGUgYmFzZS4NCisqKi8NCitWT0lEDQorRUZJQVBJ DQorQXJjaFNldHVwRXhjcGV0aW9uU3RhY2sgKA0KKyAgSU4gSUEzMl9JRFRfR0FURV9ERVNDUklQ VE9SICAgICAgICAgICAqSWR0VGFibGUNCisgICkNCit7DQorICBWT0lEICAgICAgICAgICAgICAg ICAgICAgICpOZXdHZHQ7DQorICBJQTMyX0RFU0NSSVBUT1IgICAgICAgICAgIEdkdERlc2M7DQor ICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIE9sZEdkdFNpemU7DQorICBUU1NfRU5UUklFUyAg ICAgICAgICAgICAgICpUc3NFbnRyeTsNCisgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgKlRz c0Rlc2M7DQorICBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVCAgICpUc3M7DQorICBVSU5UTiAgICAg ICAgICAgICAgICAgICAgIFN0YWNrQmFzZTsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAg U3RhY2tUb3A7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFN0YWNrU2l6ZTsNCisgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgSW5kZXg7DQorICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgIFZlY3RvcjsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgVHNzQmFzZTsNCisNCisg IC8vDQorICAvLyBBbGxvY2F0ZSBSdW50aW1lIERhdGEgZm9yIHRoZSBHRFQNCisgIC8vDQorICBB c21SZWFkR2R0cigmR2R0RGVzYyk7DQorICBPbGRHZHRTaXplID0gR2R0RGVzYy5MaW1pdCArIDE7 DQorICBOZXdHZHQgPSBBbGxvY2F0ZVJ1bnRpbWVaZXJvUG9vbChPbGRHZHRTaXplICsgc2l6ZW9m KFRTU19FTlRSSUVTKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBJQTMy X0dEVF9BTElHTk1FTlQpOw0KKyAgaWYgKE5ld0dkdCA9PSBOVUxMKSB7DQorICAgIHJldHVybjsN CisgIH0NCisgIE5ld0dkdCA9IEFMSUdOX1BPSU5URVIgKE5ld0dkdCwgSUEzMl9HRFRfQUxJR05N RU5UKTsNCisNCisgIC8vDQorICAvLyBJbml0aWFsaXplIG5ldyBHRFQgZW50cmllcw0KKyAgLy8N CisgIENvcHlNZW0oTmV3R2R0LCAoVk9JRCAqKUdkdERlc2MuQmFzZSwgT2xkR2R0U2l6ZSk7DQor ICBHZHREZXNjLkJhc2UgPSAoVUlOVE4pKFZPSUQqKU5ld0dkdDsNCisgIEdkdERlc2MuTGltaXQg PSAoVUlOVDE2KShPbGRHZHRTaXplICsgVFNTX09GRlNFVCAtIDEpOw0KKw0KKyAgLy8NCisgIC8v IFJlc2VydmUgc3RhdGNrIG1lbW9yeSBmb3IgZ2l2ZW4gZXhjZXB0aW9ucw0KKyAgLy8NCisgIFN0 YWNrU2l6ZSA9IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0aFN0YWNrKSAqIEVYQ0VQVElPTl9T VEFDS19TSVpFOw0KKyAgU3RhY2tTaXplID0gRUZJX1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RP X1BBR0VTIChTdGFja1NpemUpKTsNCisgIFN0YWNrQmFzZSA9IChVSU5UNjQpKFVJTlROKUFsbG9j YXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsNCisgIGlmIChTdGFja0Jh c2UgPT0gMCkgew0KKyAgICBGcmVlUG9vbCAoTmV3R2R0KTsNCisgICAgcmV0dXJuOw0KKyAgfQ0K Kw0KKyAgLy8NCisgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9ycyBhbmQgc2VnbWVudHMNCisgIC8v DQorICBUc3NFbnRyeSA9IChWT0lEICopKEdkdERlc2MuQmFzZSArIE9sZEdkdFNpemUpOw0KKw0K KyAgVHNzQmFzZSA9IChVSU5UTikoVk9JRCAqKSZUc3NFbnRyeS0+VHNzOw0KKyAgVHNzRW50cnkt PlRzc1NlZy5MaW1pdDE1XzAgICAgICAgICAgICA9IHNpemVvZihJQTMyX1RBU0tfU1RBVEVfU0VH TUVOVCkgLSAxOw0KKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMTVfMCAgICAgICAgICAgICA9IChV SU5UMTYpVHNzQmFzZTsNCisgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTIzXzE2ICAgICAgICAgICAg PSAoVUlOVDgpKFRzc0Jhc2UgPj4gMTYpOw0KKyAgVHNzRW50cnktPlRzc1NlZy5UeXBlICAgICAg ICAgICAgICAgICA9IElBMzJfR0RUX1RZUEVfVFNTOw0KKyAgVHNzRW50cnktPlRzc1NlZy5MaW1p dDE5XzE2X2FuZF9mbGFncyA9IDA7DQorICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UzMV8yNCAgICAg ICAgICAgID0gKFVJTlQ4KShUc3NCYXNlID4+IDI0KTsNCisNCisgIFN0YWNrVG9wICA9IFN0YWNr QmFzZSArIFN0YWNrU2l6ZSAtIENQVV9TVEFDS19BTElHTk1FTlQ7DQorICBTdGFja1RvcCAgPSAo VUlOVE4pQUxJR05fUE9JTlRFUiAoU3RhY2tUb3AsIENQVV9TVEFDS19BTElHTk1FTlQpOw0KKyAg Zm9yIChJbmRleCA9IDA7IEluZGV4IDwgQVJSQVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3RhY2sp OyArK0luZGV4KSB7DQorICAgIC8vDQorICAgIC8vIEZpeHVwIFRTUyBkZXNjcmlwdG9yDQorICAg IC8vDQorICAgIFRzc0Jhc2UgPSAoVUlOVE4pKFZPSUQgKikmVHNzRW50cnktPkV4Y2VwdGlvblRz c1tJbmRleF07DQorICAgIFRzc0Rlc2MgPSAmVHNzRW50cnktPkV4Y2VwdGlvblRzc1NlZ1tJbmRl eF07DQorDQorICAgIFRzc0Rlc2MtPkxpbWl0MTVfMCAgICAgICAgICAgID0gc2l6ZW9mKElBMzJf VEFTS19TVEFURV9TRUdNRU5UKSAtIDE7DQorICAgIFRzc0Rlc2MtPkJhc2UxNV8wICAgICAgICAg ICAgID0gKFVJTlQxNilUc3NCYXNlOw0KKyAgICBUc3NEZXNjLT5CYXNlMjNfMTYgICAgICAgICAg ICA9IChVSU5UOCkoVHNzQmFzZSA+PiAxNik7DQorICAgIFRzc0Rlc2MtPlR5cGUgICAgICAgICAg ICAgICAgID0gSUEzMl9HRFRfVFlQRV9UU1M7DQorICAgIFRzc0Rlc2MtPkxpbWl0MTlfMTZfYW5k X2ZsYWdzID0gMDsNCisgICAgVHNzRGVzYy0+QmFzZTMxXzI0ICAgICAgICAgICAgPSAoVUlOVDgp KFRzc0Jhc2UgPj4gMjQpOw0KKw0KKyAgICAvLw0KKyAgICAvLyBGaXh1cCBUU1MNCisgICAgLy8N CisgICAgVHNzID0gJlRzc0VudHJ5LT5FeGNlcHRpb25Uc3NbSW5kZXhdOw0KKyAgICBUc3MtPkNS MyAgICA9IEFzbVJlYWRDcjMoKTsNCisgICAgVHNzLT5FSVAgICAgPSAoVUlOVDMyKW1FeGNlcHRp b25zV2l0aFN0YWNrW0luZGV4XS5FbnRyeVBvaW50Ow0KKyAgICBUc3MtPkVGTEFHUyA9IDB4MjsN CisgICAgVHNzLT5FU1AgICAgPSBTdGFja1RvcDsNCisgICAgVHNzLT5FUyAgICAgPSBBc21SZWFk RXMoKTsNCisgICAgVHNzLT5DUyAgICAgPSBBc21SZWFkQ3MoKTsNCisgICAgVHNzLT5TUyAgICAg PSBBc21SZWFkU3MoKTsNCisgICAgVHNzLT5EUyAgICAgPSBBc21SZWFkRHMoKTsNCisgICAgVHNz LT5GUyAgICAgPSBBc21SZWFkRnMoKTsNCisgICAgVHNzLT5HUyAgICAgPSBBc21SZWFkR3MoKTsN CisgICAgU3RhY2tUb3AgICAtPSBFWENFUFRJT05fU1RBQ0tfU0laRTsNCisNCisgICAgLy8NCisg ICAgLy8gQ2hhbmdlIHNwZWNpZmllZCBleGNlcHRpb25zIGluIElEVCB0byB1c2UgVFNTDQorICAg IC8vDQorICAgIFZlY3RvciA9IG1FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4XS5WZWN0b3I7DQor DQorICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRMb3cgID0gMDsNCisgICAgSWR0VGFi bGVbVmVjdG9yXS5CaXRzLlNlbGVjdG9yICAgPSBPbGRHZHRTaXplICsgRVhDRVBUSU9OX1RTU19T RUwoSW5kZXgpOw0KKyAgICBJZHRUYWJsZVtWZWN0b3JdLkJpdHMuUmVzZXJ2ZWRfMCA9IDA7DQor ICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5HYXRlVHlwZSAgID0gSUEzMl9JRFRfR0FURV9UWVBF X1RBU0s7DQorICAgIElkdFRhYmxlW1ZlY3Rvcl0uQml0cy5PZmZzZXRIaWdoID0gMDsNCisgIH0N CisNCisgIC8vDQorICAvLyBQdWJsaXNoIHRoZSBjaGFuZ2VzDQorICAvLw0KKyAgQXNtV3JpdGVH ZHRyKCZHZHREZXNjKTsNCisNCisgIC8vDQorICAvLyBMb2FkIHRhc2sgcmVnaXN0ZXINCisgIC8v DQorICBBc21Xcml0ZVRyICgoVUlOVDE2KShPbGRHZHRTaXplICsgVFNTX1NFTCkpOw0KK30NCisN CiAvKioNCiAgIERpc3BsYXkgcHJvY2Vzc29yIGNvbnRleHQuDQoNCmRpZmYgLS1naXQgYS9VZWZp Q3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJbnRlcnJ1cHRE ZWZzLmggYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0Fy Y2hJbnRlcnJ1cHREZWZzLmgNCmluZGV4IGE4ZDM1NTZhODAuLjc3Y2M2Zjk5MTkgMTAwNjQ0DQot LS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9JYTMyL0FyY2hJ bnRlcnJ1cHREZWZzLmgNCisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL0lhMzIvQXJjaEludGVycnVwdERlZnMuaA0KQEAgLTQxLDQgKzQxLDE0MCBAQCB0eXBl ZGVmIHN0cnVjdCB7DQogICBVSU5UOCAgICAgICBIb29rQWZ0ZXJTdHViSGVhZGVyQ29kZVtIT09L QUZURVJfU1RVQl9TSVpFXTsNCiB9IFJFU0VSVkVEX1ZFQ1RPUlNfREFUQTsNCg0KKyNwcmFnbWEg cGFjayAoMSkNCisNCisjZGVmaW5lIEVYQ0VQVElPTl9MSVNUX01BWCAgICAgICAgICA3DQorI2Rl ZmluZSBFWENFUFRJT05fU1RBQ0tfU0laRSAgICAgICAgRUZJX1BBR0VfU0laRQ0KKyNkZWZpbmUg SUEzMl9HRFRfVFlQRV9UU1MgICAgICAgICAgIDB4ODkNCisjZGVmaW5lIElBMzJfR0RUX0FMSUdO TUVOVCAgICAgICAgICA4DQorDQorLy8NCisvLyBJQTMyIFRTUyBEZWZpbml0aW9uDQorLy8NCit0 eXBlZGVmIHN0cnVjdCB7DQorICBVSU5UMTYgICAgUHJldmlvdXNUYXNrTGluazsgLy8gMDANCisg IFVJTlQxNiAgICBSZXNlcnZlZF8yOw0KKyAgVUlOVDMyICAgIEVTUDA7ICAgICAgICAgICAgIC8v IDA0DQorICBVSU5UMTYgICAgU1MwOyAgICAgICAgICAgICAgLy8gMDgNCisgIFVJTlQxNiAgICBS ZXNlcnZlZF8xMDsNCisgIFVJTlQzMiAgICBFU1AxOyAgICAgICAgICAgICAvLyAwQw0KKyAgVUlO VDE2ICAgIFNTMTsgICAgICAgICAgICAgIC8vIDEwDQorICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTg7 DQorICBVSU5UMzIgICAgRVNQMjsgICAgICAgICAgICAgLy8gMTQNCisgIFVJTlQxNiAgICBTUzI7 ICAgICAgICAgICAgICAvLyAxOA0KKyAgVUlOVDE2ICAgIFJlc2VydmVkXzI2Ow0KKyAgVUlOVDMy ICAgIENSMzsgICAgICAgICAgICAgIC8vIDFDDQorICBVSU5UMzIgICAgRUlQOyAgICAgICAgICAg ICAgLy8gMjANCisgIFVJTlQzMiAgICBFRkxBR1M7ICAgICAgICAgICAvLyAyNA0KKyAgVUlOVDMy ICAgIEVBWDsgICAgICAgICAgICAgIC8vIDI4DQorICBVSU5UMzIgICAgRUNYOyAgICAgICAgICAg ICAgLy8gMkMNCisgIFVJTlQzMiAgICBFRFg7ICAgICAgICAgICAgICAvLyAzMA0KKyAgVUlOVDMy ICAgIEVCWDsgICAgICAgICAgICAgIC8vIDM0DQorICBVSU5UMzIgICAgRVNQOyAgICAgICAgICAg ICAgLy8gMzgNCisgIFVJTlQzMiAgICBFQlA7DQorICBVSU5UMzIgICAgRVNJOw0KKyAgVUlOVDMy ICAgIEVESTsNCisgIFVJTlQxNiAgICBFUzsNCisgIFVJTlQxNiAgICBSZXNlcnZlZF83NDsNCisg IFVJTlQxNiAgICBDUzsNCisgIFVJTlQxNiAgICBSZXNlcnZlZF83ODsNCisgIFVJTlQxNiAgICBT UzsNCisgIFVJTlQxNiAgICBSZXNlcnZlZF84MjsNCisgIFVJTlQxNiAgICBEUzsNCisgIFVJTlQx NiAgICBSZXNlcnZlZF84NjsNCisgIFVJTlQxNiAgICBGUzsNCisgIFVJTlQxNiAgICBSZXNlcnZl ZF85MDsNCisgIFVJTlQxNiAgICBHUzsNCisgIFVJTlQxNiAgICBSZXNlcnZlZF85NDsNCisgIFVJ TlQxNiAgICBMRFRTZWdtZW50U2VsZWN0b3I7DQorICBVSU5UMTYgICAgUmVzZXJ2ZWRfOTg7DQor ICBVSU5UMTYgICAgVDsNCisgIFVJTlQxNiAgICBJT01hcEJhc2VBZGRyZXNzOw0KK30gSUEzMl9U QVNLX1NUQVRFX1NFR01FTlQ7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgVUlOVDE2ICAgIExp bWl0MTVfMDsNCisgIFVJTlQxNiAgICBCYXNlMTVfMDsNCisgIFVJTlQ4ICAgICBCYXNlMjNfMTY7 DQorICBVSU5UOCAgICAgVHlwZTsNCisgIFVJTlQ4ICAgICBMaW1pdDE5XzE2X2FuZF9mbGFnczsN CisgIFVJTlQ4ICAgICBCYXNlMzFfMjQ7DQorfSBJQTMyX1RTU19ERVNDUklQVE9SOw0KKw0KK3R5 cGVkZWYgc3RydWN0IHsNCisgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIFRzc1NlZzsN CisgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAgIEV4Y2VwdGlvblRzc1NlZ1tFWENFUFRJ T05fTElTVF9NQVhdOw0KKyAgSUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAgVHNzOw0KKyAg SUEzMl9UQVNLX1NUQVRFX1NFR01FTlQgICAgICAgRXhjZXB0aW9uVHNzW0VYQ0VQVElPTl9MSVNU X01BWF07DQorfSBUU1NfRU5UUklFUzsNCisNCisjcHJhZ21hIHBhY2sgKCkNCisNCisjZGVmaW5l IFRTU19TRUwgICAgICAgICAgICAgICBPRkZTRVRfT0YgKFRTU19FTlRSSUVTLCBUc3NTZWcpDQor I2RlZmluZSBFWENFUFRJT05fVFNTX1NFTChuKSAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgRXhj ZXB0aW9uVHNzU2VnW25dKQ0KKyNkZWZpbmUgVFNTX09GRlNFVCAgICAgICAgICAgIE9GRlNFVF9P RiAoVFNTX0VOVFJJRVMsIFRzcykNCisNCit0eXBlZGVmIFZPSUQgKCpFWENFUFRJT05fRU5UUlkp IChWT0lEKTsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICBVSU5UTiAgICAgICAgICAgICBWZWN0 b3I7DQorICBFWENFUFRJT05fRU5UUlkgICBFbnRyeVBvaW50Ow0KK30gSUEzMl9FWENFUFRJT05f VFNfRU5UUlk7DQorDQorLyoqDQorIEV4Y2VwdGlvbiBoYW5kbGluZyBlbnRyeSB0aHJvdWdoIHRh c2sgZ2F0ZSBmb3IgZXhjZXB0aW9uICNVRC4NCisgKiovDQorVk9JRA0KK0V4Y2VwdGlvblRhc2tT d3RpY2hFbnRyeTYgKA0KKyAgVk9JRA0KKyAgKTsNCisNCisvKioNCisgRXhjZXB0aW9uIGhhbmRs aW5nIGVudHJ5IHRocm91Z2ggdGFzayBnYXRlIGZvciBleGNlcHRpb24gI0RGLg0KKyAqKi8NCitW T0lEDQorRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5OCAoDQorICBWT0lEDQorICApOw0KKw0KKy8q Kg0KKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2Vw dGlvbiAjU1MuDQorICoqLw0KK1ZPSUQNCitFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxMiAoDQor ICBWT0lEDQorICApOw0KKw0KKy8qKg0KKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3Vn aCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjR1AuDQorICoqLw0KK1ZPSUQNCitFeGNlcHRpb25U YXNrU3d0aWNoRW50cnkxMyAoDQorICBWT0lEDQorICApOw0KKw0KKy8qKg0KKyBFeGNlcHRpb24g aGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjUEYuDQorICoq Lw0KK1ZPSUQNCitFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkxNCAoDQorICBWT0lEDQorICApOw0K Kw0KKy8qKg0KKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkgdGhyb3VnaCB0YXNrIGdhdGUgZm9y IGV4Y2VwdGlvbiAjQUMuDQorICoqLw0KK1ZPSUQNCitFeGNlcHRpb25UYXNrU3d0aWNoRW50cnkx NyAoDQorICBWT0lEDQorICApOw0KKw0KKy8qKg0KKyBFeGNlcHRpb24gaGFuZGxpbmcgZW50cnkg dGhyb3VnaCB0YXNrIGdhdGUgZm9yIGV4Y2VwdGlvbiAjTUMuDQorICoqLw0KK1ZPSUQNCitFeGNl cHRpb25UYXNrU3d0aWNoRW50cnkxOCAoDQorICBWT0lEDQorICApOw0KKw0KICNlbmRpZg0KZGlm ZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIv RXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbSBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL0lhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmRiZmJjZmNmNTENCi0tLSAvZGV2L251bGwNCisr KyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0lhMzIvRXhjZXB0 aW9uVHNzRW50cnlBc20ubmFzbQ0KQEAgLTAsMCArMSwzOTggQEANCis7LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIDsNCis7IENvcHlyaWdodCAoYykgMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KKzsgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5n IG1hdGVyaWFscw0KKzsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlDQorOyB3aGljaCBhY2NvbXBh bmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5 IGJlIGZvdW5kIGF0DQorOyBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vu c2UucGhwLg0KKzsNCis7IFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0Qg TElDRU5TRSBPTiBBTiAiQVMgSVMiIEJBU0lTLA0KKzsgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJF UFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4NCis7 DQorOyBNb2R1bGUgTmFtZToNCis7DQorOyAgIEV4Y2VwdGlvblRzc0VudHJ5QXNtLkFzbQ0KKzsN Cis7IEFic3RyYWN0Og0KKzsNCis7ICAgSUEzMiBDUFUgRXhjZXB0aW9uIEhhbmRsZXIgd2l0aCBT ZXBhcmF0ZSBTdGFjaw0KKzsNCis7IE5vdGVzOg0KKzsNCis7LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQorDQorOw0KKzsgSUEzMiBUU1MgTWVtb3J5IExheW91dCBEZXNjcmlwdGlvbg0KKzsNCitzdHJ1 YyBJQTMyX1RTUw0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAg ICAgICByZXN3IDENCisgIC5FU1AwOiAgICByZXNkIDENCisgIC5TUzA6ICAgICByZXN3IDENCisg ICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLkVTUDE6ICAgIHJlc2QgMQ0KKyAgLlNTMTog ICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAuRVNQMjogICAgcmVz ZCAxDQorICAuU1MyOiAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisg IC5fQ1IzOiAgICByZXNkIDENCisgIC5FSVA6ICAgICByZXNkIDENCisgIC5FRkxBR1M6ICByZXNk IDENCisgIC5fRUFYOiAgICByZXNkIDENCisgIC5fRUNYOiAgICByZXNkIDENCisgIC5fRURYOiAg ICByZXNkIDENCisgIC5fRUJYOiAgICByZXNkIDENCisgIC5fRVNQOiAgICByZXNkIDENCisgIC5f RUJQOiAgICByZXNkIDENCisgIC5fRVNJOiAgICByZXNkIDENCisgIC5fRURJOiAgICByZXNkIDEN CisgIC5fRVM6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLl9D UzogICAgIHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAuX1NTOiAgICAg cmVzdyAxDQorICAgICAgICAgICAgICAgICAgICByZXN3IDENCisgIC5fRFM6ICAgICByZXN3IDEN CisgICAgICAgICAgICAgICAgICAgIHJlc3cgMQ0KKyAgLl9GUzogICAgIHJlc3cgMQ0KKyAgICAg ICAgICAgICAgICAgICAgcmVzdyAxDQorICAuX0dTOiAgICAgcmVzdyAxDQorICAgICAgICAgICAg ICAgICAgICByZXN3IDENCisgIC5MRFQ6ICAgICByZXN3IDENCisgICAgICAgICAgICAgICAgICAg IHJlc3cgMQ0KKyAgICAgICAgICAgICAgICAgICAgcmVzdyAxDQorICAgICAgICAgICAgICAgICAg ICByZXN3IDENCitlbmRzdHJ1Yw0KKw0KKzsNCis7IENvbW1vbkV4Y2VwdGlvbkhhbmRsZXIoKQ0K KzsNCitleHRlcm4gQVNNX1BGWChDb21tb25FeGNlcHRpb25IYW5kbGVyKQ0KKw0KK1NFQ1RJT04g LmRhdGENCisNCitTRUNUSU9OIC50ZXh0DQorDQorQUxJR04gICA4DQorDQorOw0KKzsgZXhjZXB0 aW9uIGhhbmRsZXIgc3R1YiB0YWJsZQ0KKzsNCislbWFjcm8gRGVmRXhjZXB0aW9uVGFza1N3dGlj aEVudHJ5IDENCislJURvSXJldDoNCisgICAgaXJldGQNCisNCitnbG9iYWwgQVNNX1BGWChFeGNl cHRpb25UYXNrU3d0aWNoRW50cnklMSkNCitBU01fUEZYKEV4Y2VwdGlvblRhc2tTd3RpY2hFbnRy eSUxKToNCisgICAgZGIgICAgICAweDZhICAgICAgICA7IHB1c2ggICNWZWN0b3JOdW0NCisgICAg ZGIgICAgICAlMSAgICAgICAgICA7IFZlY3Rvck51bQ0KKyAgICBtb3YgICAgIGVheCwgQVNNX1BG WChDb21tb25UYXNrU3d0aWNoRW50cnlQb2ludCkNCisgICAgY2FsbCAgICBlYXgNCisgICAgbW92 ICAgICBlc3AsIGVheCAgICA7IFJlc3RvcmUgc3RhY2sgdG9wDQorICAgIGptcCAgICAgJSVEb0ly ZXQNCislZW5kbWFjcm8NCisNCitnbG9iYWwgQVNNX1BGWChDb21tb25UYXNrU3d0aWNoRW50cnlQ b2ludCkNCitBU01fUEZYKENvbW1vblRhc2tTd3RpY2hFbnRyeVBvaW50KToNCisgICAgOw0KKyAg ICA7IFN0YWNrOg0KKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDwtLSBFQlAgLSA4DQor ICAgIDsgKyAgICAgICBUU1MgQmFzZSAgICAgICsNCisgICAgOyArLS0tLS0tLS0tLS0tLS0tLS0t LS0tKyA8LS0gRUJQIC0gNA0KKyAgICA7ICsgICAgICBDUFVJRC5FRFggICAgICArDQorICAgIDsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUA0KKyAgICA7ICsgICAgICAgICBFSVAgICAg ICAgICArDQorICAgIDsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tIEVCUCArIDQNCisgICAg OyArICAgIFZlY3RvciBOdW1iZXIgICAgKw0KKyAgICA7ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0r IDwtLSBFQlAgKyA4DQorICAgIDsgKyAgICBFcnJvciBDb2RlICAgICAgICsNCisgICAgOyArLS0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgICA7DQorOw0KKzsgR2V0IFRTUyBvZiBpbnRlcnJ1cHRl ZCB0YXNrDQorOw0KKyAgICBtb3YgICAgIGVicCwgZXNwICAgICAgICAgICAgICAgICAgICA7IFN0 YWNrIGZyYW1lDQorDQorOyBVc2UgQ1BVSUQgdG8gZGV0ZXJtaW5lIGlmIEZYU0FWRS9GWFJFU1RP UiBhbmQgREUgYXJlIHN1cHBvcnRlZA0KKyAgICBtb3YgICAgIGVheCwgMQ0KKyAgICBjcHVpZA0K KyAgICBwdXNoICAgIGVkeA0KKw0KKzsgR2V0IFRTUyBiYXNlIG9mIGludGVycnVwdGVkIHRhc2sg dGhyb3VnaCBQcmV2aW91c1Rhc2tMaW5rIGZpZWxkIGluDQorOyBjdXJyZW50IFRTUyBiYXNlDQor ICAgIHN1YiAgICAgZXNwLCA4DQorICAgIHNnZHQgICAgW2VzcCArIDJdDQorICAgIG1vdiAgICAg ZWF4LCBbZXNwICsgNF0gICAgICAgICAgICAgIDsgR0RUIGJhc2UNCisgICAgYWRkICAgICBlc3As IDgNCisNCisgICAgeG9yICAgICBlYngsIGVieA0KKyAgICBzdHIgICAgIGJ4ICAgICAgICAgICAg ICAgICAgICAgICAgICA7IEN1cnJlbnQgVFINCisNCisgICAgbW92ICAgICBlY3gsIFtlYXggKyBl YnggKyAyXQ0KKyAgICBzaGwgICAgIGVjeCwgOA0KKyAgICBtb3YgICAgIGNsLCBbZWF4ICsgZWJ4 ICsgN10NCisgICAgcm9yICAgICBlY3gsIDggICAgICAgICAgICAgICAgICAgICAgOyBlY3ggPSBD dXJyZW50IFRTUyBiYXNlDQorICAgIHB1c2ggICAgZWN4ICAgICAgICAgICAgICAgICAgICAgICAg IDsga2VlcCBpdCBpbiBzdGFjayBmb3IgbGF0ZXIgdXNlDQorDQorICAgIG1vdnp4ICAgZWJ4LCB3 b3JkIFtlY3hdICAgICAgICAgICAgIDsgUHJldmlvdXMgVGFzayBMaW5rDQorICAgIG1vdiAgICAg ZWN4LCBbZWF4ICsgZWJ4ICsgMl0NCisgICAgc2hsICAgICBlY3gsIDgNCisgICAgbW92ICAgICBj bCwgW2VheCArIGVieCArIDddDQorICAgIHJvciAgICAgZWN4LCA4ICAgICAgICAgICAgICAgICAg ICAgIDsgZWN4ID0gUHJldmlvdXMgVFNTIGJhc2UNCisNCis7DQorOyBBbGlnbiBzdGFjayB0byBt YWtlIHN1cmUgdGhhdCBFRklfRlhfU0FWRV9TVEFURV9JQTMyIG9mIEVGSV9TWVNURU1fQ09OVEVY VF9JQTMyDQorOyBpcyAxNi1ieXRlIGFsaWduZWQNCis7DQorICAgIGFuZCAgICAgZXNwLCAweGZm ZmZmZmYwDQorICAgIHN1YiAgICAgZXNwLCAxMg0KKw0KKzs7IFVJTlQzMiAgRWRpLCBFc2ksIEVi cCwgRXNwLCBFYngsIEVkeCwgRWN4LCBFYXg7DQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElB MzJfVFNTLl9FQVhdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQ1hdDQor ICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FRFhdDQorICAgIHB1c2ggICAgZHdv cmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJf VFNTLl9FU1BdDQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlBdDQorICAg IHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU0ldDQorICAgIHB1c2ggICAgZHdvcmQg W2VjeCArIElBMzJfVFNTLl9FREldDQorDQorOzsgVUlOVDMyICBHcywgRnMsIEVzLCBEcywgQ3Ms IFNzOw0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX1NTXQ0KKyAgICBw dXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1MuX0NTXQ0K KyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEzMl9UU1Mu X0RTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4ICsgSUEz Ml9UU1MuX0VTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29yZCBbZWN4 ICsgSUEzMl9UU1MuX0ZTXQ0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Z6eCAgIGVheCwgd29y ZCBbZWN4ICsgSUEzMl9UU1MuX0dTXQ0KKyAgICBwdXNoICAgIGVheA0KKw0KKzs7IFVJTlQzMiAg RWlwOw0KKyAgICBwdXNoICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdDQorDQorOzsgVUlO VDMyICBHZHRyWzJdLCBJZHRyWzJdOw0KKyAgICBzdWIgICAgIGVzcCwgOA0KKyAgICBzaWR0ICAg IFtlc3BdDQorICAgIG1vdiAgICAgZWF4LCBbZXNwICsgMl0NCisgICAgeGNoZyAgICBlYXgsIFtl c3BdDQorICAgIGFuZCAgICAgZWF4LCAweEZGRkYNCisgICAgbW92ICAgICBbZXNwKzRdLCBlYXgN CisNCisgICAgc3ViICAgICBlc3AsIDgNCisgICAgc2dkdCAgICBbZXNwXQ0KKyAgICBtb3YgICAg IGVheCwgW2VzcCArIDJdDQorICAgIHhjaGcgICAgZWF4LCBbZXNwXQ0KKyAgICBhbmQgICAgIGVh eCwgMHhGRkZGDQorICAgIG1vdiAgICAgW2VzcCs0XSwgZWF4DQorDQorOzsgVUlOVDMyICBMZHRy LCBUcjsNCisgICAgbW92ICAgICBlYXgsIGVieCAgICA7IGVieCBzdGlsbCBrZWVwcyBzZWxlY3Rv ciBvZiBpbnRlcnJ1cHRlZCB0YXNrDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdnp4ICAgZWF4 LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5MRFRdDQorICAgIHB1c2ggICAgZWF4DQorDQorOzsgVUlO VDMyICBFRmxhZ3M7DQorICAgIHB1c2ggICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVGTEFHU10N CisNCis7OyBVSU5UMzIgIENyMCwgQ3IxLCBDcjIsIENyMywgQ3I0Ow0KKyAgICBtb3YgICAgIGVh eCwgY3I0DQorICAgIHB1c2ggICAgZWF4ICAgICAgICAgICAgIDsgcHVzaCBjcjQgZmlyc3RseQ0K Kw0KKyAgICBtb3YgICAgIGVkeCwgW2VicCAtIDRdICA7IGNwdWlkLmVkeA0KKyAgICB0ZXN0ICAg IGVkeCwgQklUMjQgICAgICA7IFRlc3QgZm9yIEZYU0FWRS9GWFJFU1RPUiBzdXBwb3J0DQorICAg IGp6ICAgICAgLjENCisgICAgb3IgICAgICBlYXgsIEJJVDkgICAgICAgOyBTZXQgQ1I0Lk9TRlhT Ug0KKy4xOg0KKyAgICB0ZXN0ICAgIGVkeCwgQklUMiAgICAgICA7IFRlc3QgZm9yIERlYnVnZ2lu ZyBFeHRlbnNpb25zIHN1cHBvcnQNCisgICAganogICAgICAuMg0KKyAgICBvciAgICAgIGVheCwg QklUMyAgICAgICA7IFNldCBDUjQuREUNCisuMjoNCisgICAgbW92ICAgICBjcjQsIGVheA0KKw0K KyAgICBtb3YgICAgIGVheCwgY3IzDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAgICAgZWF4 LCBjcjINCisgICAgcHVzaCAgICBlYXgNCisgICAgeG9yICAgICBlYXgsIGVheA0KKyAgICBwdXNo ICAgIGVheA0KKyAgICBtb3YgICAgIGVheCwgY3IwDQorICAgIHB1c2ggICAgZWF4DQorDQorOzsg VUlOVDMyICBEcjAsIERyMSwgRHIyLCBEcjMsIERyNiwgRHI3Ow0KKyAgICBtb3YgICAgIGVheCwg ZHI3DQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAgICAgZWF4LCBkcjYNCisgICAgcHVzaCAg ICBlYXgNCisgICAgbW92ICAgICBlYXgsIGRyMw0KKyAgICBwdXNoICAgIGVheA0KKyAgICBtb3Yg ICAgIGVheCwgZHIyDQorICAgIHB1c2ggICAgZWF4DQorICAgIG1vdiAgICAgZWF4LCBkcjENCisg ICAgcHVzaCAgICBlYXgNCisgICAgbW92ICAgICBlYXgsIGRyMA0KKyAgICBwdXNoICAgIGVheA0K Kw0KKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNhdmVTdGF0ZTsNCis7OyBDbGVhciBUUyBiaXQg aW4gQ1IwIHRvIGF2b2lkIERldmljZSBOb3QgQXZhaWxhYmxlIEV4Y2VwdGlvbiAoI05NKQ0KKzs7 IHdoZW4gZXhlY3V0aW5nIGZ4c2F2ZS9meHJzdG9yIGluc3RydWN0aW9uDQorICAgIHRlc3QgICAg ZWR4LCBCSVQyNCAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydC4NCisgICAgICAg ICAgICAgICAgICAgICAgICA7IGVkeCBzdGlsbCBjb250YWlucyByZXN1bHQgZnJvbSBDUFVJRCBh Ym92ZQ0KKyAgICBqeiAgICAgIC4zDQorICAgIGNsdHMNCisgICAgc3ViICAgICBlc3AsIDUxMg0K KyAgICBtb3YgICAgIGVkaSwgZXNwDQorICAgIGRiICAgICAgMHhmLCAweGFlLCAweDcgO2Z4c2F2 ZSBbZWRpXQ0KKy4zOg0KKw0KKzs7IFVJTlQzMiAgRXhjZXB0aW9uRGF0YTsNCisgICAgcHVzaCAg ICBkd29yZCBbZWJwICsgOF0NCisNCis7OyBVRUZJIGNhbGxpbmcgY29udmVudGlvbiBmb3IgSUEz MiByZXF1aXJlcyB0aGF0IERpcmVjdGlvbiBmbGFnIGluIEVGTEFHcyBpcyBjbGVhcg0KKyAgICBj bGQNCisNCis7OyBjYWxsIGludG8gZXhjZXB0aW9uIGhhbmRsZXINCisgICAgbW92ICAgICBlc2ks IGVjeCAgICAgICAgICAgIDsgS2VlcCBUU1MgYmFzZSB0byBhdm9pZCBvdmVyd3JpdGUNCisgICAg bW92ICAgICBlYXgsIEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFuZGxlcikNCisNCis7OyBQcmVw YXJlIHBhcmFtZXRlciBhbmQgY2FsbA0KKyAgICBtb3YgICAgIGVkeCwgZXNwDQorICAgIHB1c2gg ICAgZWR4ICAgICAgICAgICAgICAgICA7IEVGSV9TWVNURU1fQ09OVEVYVA0KKyAgICBwdXNoICAg IGR3b3JkIFtlYnAgKyA0XSAgICAgOyBFRklfRVhDRVBUSU9OX1RZUEUgKHZlY3RvciBudW1iZXIp DQorDQorICAgIDsNCisgICAgOyBDYWxsIEV4dGVybmFsIEV4Y2VwdGlvbiBIYW5kbGVyDQorICAg IDsNCisgICAgY2FsbCAgICBlYXgNCisgICAgYWRkICAgICBlc3AsIDggICAgICAgICAgICAgIDsg UmVzdG9yZSBzdGFjayBiZWZvcmUgY2FsbGluZw0KKyAgICBtb3YgICAgIGVjeCwgZXNpICAgICAg ICAgICAgOyBSZXN0b3JlIFRTUyBiYXNlDQorDQorOzsgVUlOVDMyICBFeGNlcHRpb25EYXRhOw0K KyAgICBhZGQgICAgIGVzcCwgNA0KKw0KKzs7IEZYX1NBVkVfU1RBVEVfSUEzMiBGeFNhdmVTdGF0 ZTsNCisgICAgbW92ICAgICBlZHgsIFtlYnAgLSA0XSAgOyBjcHVpZC5lZHgNCisgICAgdGVzdCAg ICBlZHgsIEJJVDI0ICAgICAgOyBUZXN0IGZvciBGWFNBVkUvRlhSRVNUT1Igc3VwcG9ydA0KKyAg ICBqeiAgICAgIC40DQorICAgIG1vdiAgICAgZXNpLCBlc3ANCisgICAgZGIgICAgICAweGYsIDB4 YWUsIDB4ZSAgOyBmeHJzdG9yIFtlc2ldDQorLjQ6DQorICAgIGFkZCAgICAgZXNwLCA1MTINCisN Cis7OyBVSU5UMzIgIERyMCwgRHIxLCBEcjIsIERyMywgRHI2LCBEcjc7DQorOzsgU2tpcCByZXN0 b3JhdGlvbiBvZiBEUnggcmVnaXN0ZXJzIHRvIHN1cHBvcnQgZGVidWdnZXJzDQorOzsgdGhhdCBz ZXQgYnJlYWtwb2ludHMgaW4gaW50ZXJydXB0L2V4Y2VwdGlvbiBjb250ZXh0DQorICAgIGFkZCAg ICAgZXNwLCA0ICogNg0KKw0KKzs7IFVJTlQzMiAgQ3IwLCBDcjEsIENyMiwgQ3IzLCBDcjQ7DQor ICAgIHBvcCAgICAgZWF4DQorICAgIG1vdiAgICAgY3IwLCBlYXgNCisgICAgYWRkICAgICBlc3As IDQgICAgOyBub3QgZm9yIENyMQ0KKyAgICBwb3AgICAgIGVheA0KKyAgICBtb3YgICAgIGNyMiwg ZWF4DQorICAgIHBvcCAgICAgZWF4DQorICAgIG1vdiAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNT Ll9DUjNdLCBlYXgNCisgICAgcG9wICAgICBlYXgNCisgICAgbW92ICAgICBjcjQsIGVheA0KKw0K Kzs7IFVJTlQzMiAgRUZsYWdzOw0KKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5F RkxBR1NdDQorICAgIG1vdiAgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEzMl9UU1MuRUZMQUdTXQ0K KyAgICBidHIgICAgIGVieCwgOSAgICAgIDsgRG8gJ2NsaScNCisgICAgbW92ICAgICBkd29yZCBb ZWN4ICsgSUEzMl9UU1MuRUZMQUdTXSwgZWJ4DQorDQorOzsgVUlOVDMyICBMZHRyLCBUcjsNCis7 OyBVSU5UMzIgIEdkdHJbMl0sIElkdHJbMl07DQorOzsgQmVzdCBub3QgbGV0IGFueW9uZSBtZXNz IHdpdGggdGhlc2UgcGFydGljdWxhciByZWdpc3RlcnMuLi4NCisgICAgYWRkICAgICBlc3AsIDI0 DQorDQorOzsgVUlOVDMyICBFaXA7DQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNT LkVJUF0NCisNCis7OyBVSU5UMzIgIEdzLCBGcywgRXMsIERzLCBDcywgU3M7DQorOzsgTk9URSAt IG1vZGlmaWVkIHNlZ21lbnQgcmVnaXN0ZXJzIGNvdWxkIGhhbmcgdGhlIGRlYnVnZ2VyLi4uICBX ZQ0KKzs7ICAgICAgICBjb3VsZCBhdHRlbXB0IHRvIGluc3VsYXRlIG91cnNlbHZlcyBhZ2FpbnN0 IHRoaXMgcG9zc2liaWxpdHksDQorOzsgICAgICAgIGJ1dCB0aGF0IHBvc2VzIHJpc2tzIGFzIHdl bGwuDQorOzsNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X0dTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X0ZTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X0VTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X0RTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X0NTXSwgYXgNCisgICAgcG9wICAgICBlYXgNCitvMTYgbW92ICAgICBbZWN4ICsgSUEzMl9UU1Mu X1NTXSwgYXgNCisNCis7OyBVSU5UMzIgIEVkaSwgRXNpLCBFYnAsIEVzcCwgRWJ4LCBFZHgsIEVj eCwgRWF4Ow0KKyAgICBwb3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRURJXQ0KKyAgICBw b3AgICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5fRVNJXQ0KKyAgICBhZGQgICAgIGVzcCwgNCAg IDsgbm90IGZvciBlYnANCisgICAgYWRkICAgICBlc3AsIDQgICA7IG5vdCBmb3IgZXNwDQorICAg IHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQlhdDQorICAgIHBvcCAgICAgZHdvcmQg W2VjeCArIElBMzJfVFNTLl9FRFhdDQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNT Ll9FQ1hdDQorICAgIHBvcCAgICAgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FQVhdDQorDQorOyBT ZXQgc2luZ2xlIHN0ZXAgREIjIHRvIGFsbG93IGRlYnVnZ2VyIHRvIGFibGUgdG8gZ28gYmFjayB0 byB0aGUgRUlQDQorOyB3aGVyZSB0aGUgZXhjZXB0aW9uIGlzIHRyaWdnZXJlZC4NCisNCis7OyBD cmVhdGUgcmV0dXJuIGNvbnRleHQgZm9yIGlyZXRkIGluIHN0dWIgZnVuY3Rpb24NCisgICAgbW92 ICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNr IHBvaW50ZXINCisgICAgbW92ICAgIGVieCwgZHdvcmQgW2VjeCArIElBMzJfVFNTLkVJUF0NCisg ICAgbW92ICAgIFtlYXggLSAweGNdLCBlYnggICAgICAgICAgICAgICAgICAgICAgOyBjcmVhdGUg RUlQIGluIG9sZCBzdGFjaw0KKyAgICBtb3Z6eCAgZWJ4LCB3b3JkIFtlY3ggKyBJQTMyX1RTUy5f Q1NdDQorICAgIG1vdiAgICBbZWF4IC0gMHg4XSwgZWJ4ICAgICAgICAgICAgICAgICAgICAgIDsg Y3JlYXRlIENTIGluIG9sZCBzdGFjaw0KKyAgICBtb3YgICAgZWJ4LCBkd29yZCBbZWN4ICsgSUEz Ml9UU1MuRUZMQUdTXQ0KKyAgICBidHMgICAgZWJ4LCA4DQorICAgIG1vdiAgICBbZWF4IC0gMHg0 XSwgZWJ4ICAgICAgICAgICAgICAgICAgICAgIDsgY3JlYXRlIGVmbGFncyBpbiBvbGQgc3RhY2sN CisgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FRkxBR1NdLCBlYnggICAgOyB1cGRh dGUgZWZsYWdzIGluIG9sZCBUU1MNCisgICAgbW92ICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJf VFNTLl9FU1BdICAgICAgOyBHZXQgb2xkIHN0YWNrIHBvaW50ZXINCisgICAgc3ViICAgIGVheCwg MHhjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBtaW51cyAxMiBieXRlDQorICAgIG1v diAgICBkd29yZCBbZWN4ICsgSUEzMl9UU1MuX0VTUF0sIGVheCAgICAgIDsgU2V0IG5ldyBzdGFj ayBwb2ludGVyDQorDQorOzsgUmVwbGFjZSB0aGUgRUlQIG9mIGludGVycnVwdGVkIHRhc2sgd2l0 aCBzdHViIGZ1bmN0aW9uDQorICAgIG1vdiAgICBlYXgsIEFTTV9QRlgoU2luZ2xlU3RlcFN0dWJG dW5jdGlvbikNCisgICAgbW92ICAgIGR3b3JkIFtlY3ggKyBJQTMyX1RTUy5FSVBdLCBlYXgNCisN CisgICAgbW92ICAgICBlY3gsIFtlYnAgLSA4XSAgICAgICAgICAgICAgICAgICAgICAgOyBHZXQg Y3VycmVudCBUU1MgYmFzZQ0KKyAgICBtb3YgICAgIGVheCwgZHdvcmQgW2VjeCArIElBMzJfVFNT Ll9FU1BdICAgICA7IFJldHVybiBjdXJyZW50IHN0YWNrIHRvcA0KKyAgICBtb3YgICAgIGVzcCwg ZWJwDQorDQorICAgIHJldA0KKw0KK2dsb2JhbCBBU01fUEZYKFNpbmdsZVN0ZXBTdHViRnVuY3Rp b24pDQorQVNNX1BGWChTaW5nbGVTdGVwU3R1YkZ1bmN0aW9uKToNCis7DQorOyB3ZSBuZWVkIGNs ZWFuIFRTIGJpdCBpbiBDUjAgdG8gZXhlY3V0ZQ0KKzsgeDg3IEZQVS9NTVgvU1NFL1NTRTIvU1NF My9TU1NFMy9TU0U0IGluc3RydWN0aW9ucy4NCis7DQorICAgIGNsdHMNCisgICAgaXJldGQNCisN Cis7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorOyBWT0lEDQorOyBBc21Xcml0ZVRyICgNCis7ICAg VUlOVDE2IFNlbGVjdG9yDQorOyAgICk7DQorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK2dsb2Jh bCBBU01fUEZYKEFzbVdyaXRlVHIpDQorQVNNX1BGWChBc21Xcml0ZVRyKToNCisgICAgbW92ICAg ICBlYXgsIFtlc3ArNF0NCisgICAgbHRyICAgICBheA0KKyAgICByZXQNCisNCitEZWZFeGNlcHRp b25UYXNrU3d0aWNoRW50cnkgNg0KK0RlZkV4Y2VwdGlvblRhc2tTd3RpY2hFbnRyeSA4DQorRGVm RXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDEyDQorRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5 IDEzDQorRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE0DQorRGVmRXhjZXB0aW9uVGFza1N3 dGljaEVudHJ5IDE3DQorRGVmRXhjZXB0aW9uVGFza1N3dGljaEVudHJ5IDE4DQorDQpkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhj ZXB0aW9uSGFuZGxlckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KaW5kZXggNzU0NDMyODhhOS4u NGMwZDQzNTEzNiAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mDQorKysgYi9VZWZpQ3B1UGtn L0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGli LmluZg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291cmNlcy5JYTMyXQ0KICAgSWEzMi9FeGNlcHRp b25IYW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCisgIElh MzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNt LlMNCiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRsZXIuYw0KICAgSWEzMi9BcmNoSW50ZXJydXB0 RGVmcy5oDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgYi9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmlu Zg0KaW5kZXggZDcwYTk5YzEwMC4uYWRiNDE1YmE1YSAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJM aWIuaW5mDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9T ZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLmluZg0KQEAgLTMwLDYgKzMwLDcgQEANCiBbU291 cmNlcy5JYTMyXQ0KICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLmFzbQ0KICAgSWEzMi9FeGNl cHRpb25IYW5kbGVyQXNtLm5hc20NCisgIElhMzIvRXhjZXB0aW9uVHNzRW50cnlBc20ubmFzbQ0K ICAgSWEzMi9FeGNlcHRpb25IYW5kbGVyQXNtLlMNCiAgIElhMzIvQXJjaEV4Y2VwdGlvbkhhbmRs ZXIuYw0KICAgSWEzMi9BcmNoSW50ZXJydXB0RGVmcy5oDQpAQCAtNTcsMyArNTgsNSBAQA0KICAg UHJpbnRMaWINCiAgIExvY2FsQXBpY0xpYg0KICAgUGVDb2ZmR2V0RW50cnlQb2ludExpYg0KKyAg TWVtb3J5QWxsb2NhdGlvbkxpYg0KKw0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mIGIvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFu ZGxlckxpYi5pbmYNCmluZGV4IDYzNGZmY2IyMWQuLjU2Yjg3NWI3YzggMTAwNjQ0DQotLS0gYS9V ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNlcHRpb25I YW5kbGVyTGliLmluZg0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYNCkBAIC0zMCw2ICszMCw3IEBADQog W1NvdXJjZXMuSWEzMl0NCiAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20NCiAgIElhMzIv RXhjZXB0aW9uSGFuZGxlckFzbS5uYXNtDQorICBJYTMyL0V4Y2VwdGlvblRzc0VudHJ5QXNtLm5h c20NCiAgIElhMzIvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQogICBJYTMyL0FyY2hFeGNlcHRpb25I YW5kbGVyLmMNCiAgIElhMzIvQXJjaEludGVycnVwdERlZnMuaA0KZGlmZiAtLWdpdCBhL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoRXhjZXB0aW9uSGFu ZGxlci5jIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0Fy Y2hFeGNlcHRpb25IYW5kbGVyLmMNCmluZGV4IDY1ZjBjZmY2ODAuLjI0ZjJhODQ4NmEgMTAwNjQ0 DQotLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJj aEV4Y2VwdGlvbkhhbmRsZXIuYw0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlv bkhhbmRsZXJMaWIvWDY0L0FyY2hFeGNlcHRpb25IYW5kbGVyLmMNCkBAIC0xNCw2ICsxNCwxOSBA QA0KDQogI2luY2x1ZGUgIkNwdUV4Y2VwdGlvbkNvbW1vbi5oIg0KDQorLy8NCisvLyBMaXN0IG9m IGV4Y2VwdGlvbnMgbmVlZGluZyBzZXBhcmF0ZSBzdGFjaw0KKy8vDQorU1RBVElDIFVJTlROICBt RXhjZXB0aW9uc1dpdGhTdGFja1tdID0gew0KKyAgNiwgIC8vI1VEOiBJbnZhbGlkIE9wY29kZSBF eGNlcHRpb24NCisgIDgsICAvLyNERjogRG91YmxlIEZhdWx0IEV4Y2VwdGlvbg0KKyAgMTIsIC8v I1NTOiBTdGFjayBGYXVsdCBFeGNlcHRpb24NCisgIDEzLCAvLyNHUDogR2VuZXJhbCBQcm90ZWN0 aW9uIEV4Y2VwdGlvbg0KKyAgMTQsIC8vI1BGOiBQYWdlLUZhdWx0IEV4Y2VwdGlvbg0KKyAgMTcs IC8vI0FDOiBBbGlnbm1lbnQgQ2hlY2sgRXhjZXB0aW9uDQorICAxOCAgLy8jTUM6IE1hY2hpbmUt Q2hlY2sgRXhjZXB0aW9uDQorICB9Ow0KKw0KIC8qKg0KICAgUmV0dXJuIGFkZHJlc3MgbWFwIG9m IGV4Y2VwdGlvbiBoYW5kbGVyIHRlbXBsYXRlIHNvIHRoYXQgQyBjb2RlIGNhbiBnZW5lcmF0ZQ0K ICAgZXhjZXB0aW9uIHRhYmxlcy4NCkBAIC0xMTIsNiArMTI1LDEwMSBAQCBBcmNoUmVzdG9yZUV4 Y2VwdGlvbkNvbnRleHQgKA0KICAgU3lzdGVtQ29udGV4dC5TeXN0ZW1Db250ZXh0WDY0LT5FeGNl cHRpb25EYXRhID0gUmVzZXJ2ZWRWZWN0b3JzW0V4Y2VwdGlvblR5cGVdLkV4Y2VwdGlvbkRhdGE7 DQogfQ0KDQorLyoqDQorICBTZXR1cCBzZXBhcmF0ZSBzdGFjayBmb3Igc3BlY2lmaWMgZXhjZXB0 aW9ucy4NCisNCisgIEBwYXJhbVtpbl0gSWR0VGFibGUgICAgICAgIElEVCB0YWJsZSBiYXNlLg0K KyoqLw0KK1ZPSUQNCitFRklBUEkNCitBcmNoU2V0dXBFeGNwZXRpb25TdGFjayAoDQorICBJTiBJ QTMyX0lEVF9HQVRFX0RFU0NSSVBUT1IgICAgICAgICAgICpJZHRUYWJsZQ0KKyAgKQ0KK3sNCisg IFZPSUQgICAgICAgICAgICAgICAgICAgICAgKk5ld0dkdDsNCisgIElBMzJfREVTQ1JJUFRPUiAg ICAgICAgICAgR2R0RGVzYzsNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICAgT2xkR2R0U2l6 ZTsNCisgIFRTU19FTlRSSUVTICAgICAgICAgICAgICAgKlRzc0VudHJ5Ow0KKyAgVUlOVE4gICAg ICAgICAgICAgICAgICAgICBTdGFja0Jhc2U7DQorICBVSU5UTiAgICAgICAgICAgICAgICAgICAg IFN0YWNrVG9wOw0KKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICBTdGFja1NpemU7DQorICBV SU5UTiAgICAgICAgICAgICAgICAgICAgIFRzc0Jhc2U7DQorICBVSU5UTiAgICAgICAgICAgICAg ICAgICAgIEluZGV4Ow0KKw0KKyAgLy8NCisgIC8vIEFsbG9jYXRlIFJ1bnRpbWUgRGF0YSBmb3Ig dGhlIEdEVA0KKyAgLy8NCisgIEFzbVJlYWRHZHRyKCZHZHREZXNjKTsNCisgIE9sZEdkdFNpemUg PSBHZHREZXNjLkxpbWl0ICsgMTsNCisgIE5ld0dkdCA9IEFsbG9jYXRlUnVudGltZVplcm9Qb29s KE9sZEdkdFNpemUgKyBzaXplb2YoVFNTX0VOVFJJRVMpDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArIElBMzJfR0RUX0FMSUdOTUVOVCk7DQorICBpZiAoTmV3R2R0ID09IE5VTEwp IHsNCisgICAgcmV0dXJuOw0KKyAgfQ0KKyAgTmV3R2R0ID0gQUxJR05fUE9JTlRFUiAoTmV3R2R0 LCBJQTMyX0dEVF9BTElHTk1FTlQpOw0KKw0KKyAgLy8NCisgIC8vIEluaXRpYWxpemUgbmV3IEdE VCBlbnRyaWVzDQorICAvLw0KKyAgQ29weU1lbShOZXdHZHQsIChWT0lEICopR2R0RGVzYy5CYXNl LCBPbGRHZHRTaXplKTsNCisgIEdkdERlc2MuQmFzZSA9IChVSU5UTikoVk9JRCopTmV3R2R0Ow0K KyAgR2R0RGVzYy5MaW1pdCA9IChVSU5UMTYpKE9sZEdkdFNpemUgKyBUU1NfT0ZGU0VUIC0gMSk7 DQorDQorICAvLw0KKyAgLy8gUmVzZXJ2ZSBzdGF0Y2sgbWVtb3J5IGZvciBzdXBwb3J0ZWQgZXhj ZXB0aW9ucw0KKyAgLy8NCisgIFN0YWNrU2l6ZSA9IEFSUkFZX1NJWkUgKG1FeGNlcHRpb25zV2l0 aFN0YWNrKSAqIEVYQ0VQVElPTl9TVEFDS19TSVpFOw0KKyAgU3RhY2tTaXplID0gRUZJX1BBR0VT X1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTIChTdGFja1NpemUpKTsNCisgIFN0YWNrQmFzZSA9 IChVSU5UNjQpQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMgKFN0YWNrU2l6ZSkpOw0K KyAgaWYgKFN0YWNrQmFzZSA9PSAwKSB7DQorICAgIEZyZWVQb29sIChOZXdHZHQpOw0KKyAgICBy ZXR1cm47DQorICB9DQorDQorICAvLw0KKyAgLy8gRml4dXAgVFNTIGRlc2NyaXB0b3JzDQorICAv Lw0KKyAgVHNzRW50cnkgPSAoVk9JRCAqKShHZHREZXNjLkJhc2UgKyBPbGRHZHRTaXplKTsNCisg IFRzc0Jhc2UgPSAoVUlOVE4pKFZPSUQgKikmVHNzRW50cnktPlRzczsNCisNCisgIFRzc0VudHJ5 LT5Uc3NTZWcuTGltaXQxNV8wICAgICAgICAgICAgPSBzaXplb2YoSUEzMl9UQVNLX1NUQVRFX1NF R01FTlQpIC0gMTsNCisgIFRzc0VudHJ5LT5Uc3NTZWcuQmFzZTE1XzAgICAgICAgICAgICAgPSAo VUlOVDE2KVRzc0Jhc2U7DQorICBUc3NFbnRyeS0+VHNzU2VnLkJhc2UyM18xNiAgICAgICAgICAg ID0gKFVJTlQ4KShUc3NCYXNlID4+IDE2KTsNCisgIFRzc0VudHJ5LT5Uc3NTZWcuVHlwZSAgICAg ICAgICAgICAgICAgPSBJQTMyX0dEVF9UWVBFX1RTUzsNCisgIFRzc0VudHJ5LT5Uc3NTZWcuTGlt aXQxOV8xNl9hbmRfZmxhZ3MgPSAwOw0KKyAgVHNzRW50cnktPlRzc1NlZy5CYXNlMzFfMjQgICAg ICAgICAgICA9IChVSU5UOCkoVHNzQmFzZSA+PiAyNCk7DQorICBUc3NFbnRyeS0+VHNzU2VnLkJh c2U2M18zMiAgICAgICAgICAgID0gKFVJTlQzMikoVHNzQmFzZSA+PiAzMik7DQorICBUc3NFbnRy eS0+VHNzU2VnLlJlc2VydmVkICAgICAgICAgICAgID0gMDsNCisNCisgIC8vDQorICAvLyBFbmFi bGUgSW50ZXJydXB0IFN0YWNrIFRhYmxlIChJU1QpIGZvciBlYWNoIHJlcXVpcmVkIGV4Y2VwdGlv bg0KKyAgLy8NCisgIFN0YWNrVG9wICA9IFN0YWNrQmFzZSArIFN0YWNrU2l6ZSAtIENQVV9TVEFD S19BTElHTk1FTlQ7DQorICBTdGFja1RvcCAgPSAoVUlOVE4pQUxJR05fUE9JTlRFUiAoU3RhY2tU b3AsIENQVV9TVEFDS19BTElHTk1FTlQpOw0KKyAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgQVJS QVlfU0laRSAobUV4Y2VwdGlvbnNXaXRoU3RhY2spOyArK0luZGV4KSB7DQorICAgIC8vDQorICAg IC8vIEZpeHVwIFRTUw0KKyAgICAvLw0KKyAgICBUc3NFbnRyeS0+VHNzLklTVFtJbmRleF0gPSBT dGFja1RvcDsNCisgICAgU3RhY2tUb3AgLT0gRVhDRVBUSU9OX1NUQUNLX1NJWkU7DQorDQorICAg IC8vDQorICAgIC8vIFNldCB0aGUgSVNUIGZpZWxkIHRvIDEgdG8gZW5hYmxlIGNvcnJlc3BvbmRp bmcgSVNUDQorICAgIC8vDQorICAgIElkdFRhYmxlW21FeGNlcHRpb25zV2l0aFN0YWNrW0luZGV4 XV0uQml0cy5SZXNlcnZlZF8wID0gKFVJTlQ4KShJbmRleCArIDEpOw0KKyAgfQ0KKw0KKyAgLy8N CisgIC8vIFB1Ymxpc2ggdGhlIGNoYW5nZXMNCisgIC8vDQorICBBc21Xcml0ZUdkdHIoJkdkdERl c2MpOw0KKw0KKyAgLy8NCisgIC8vIExvYWQgdGFzayByZWdpc3Rlcg0KKyAgLy8NCisgIEFzbVdy aXRlVHIgKChVSU5UMTYpKE9sZEdkdFNpemUgKyBUU1NfU0VMKSk7DQorfQ0KKw0KIC8qKg0KICAg RGlzcGxheSBDUFUgaW5mb3JtYXRpb24uDQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvQXJjaEludGVycnVwdERlZnMuaCBiL1VlZmlD cHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNoSW50ZXJydXB0RGVm cy5oDQppbmRleCA5MDY0ODAxMzRhLi41YTkxM2JhZTdiIDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0FyY2hJbnRlcnJ1cHREZWZzLmgN CisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9BcmNo SW50ZXJydXB0RGVmcy5oDQpAQCAtNDMsNCArNDMsNDQgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KICAg VUlOVDggICAgICAgSG9va0FmdGVyU3R1YkhlYWRlckNvZGVbSE9PS0FGVEVSX1NUVUJfU0laRV07 DQogfSBSRVNFUlZFRF9WRUNUT1JTX0RBVEE7DQoNCisjcHJhZ21hIHBhY2sgKDEpDQorDQorI2Rl ZmluZSBFWENFUFRJT05fTElTVF9NQVggICAgICAgIDcNCisjZGVmaW5lIEVYQ0VQVElPTl9TVEFD S19TSVpFICAgICAgRUZJX1BBR0VfU0laRQ0KKyNkZWZpbmUgSUEzMl9HRFRfVFlQRV9UU1MgICAg ICAgICAweDg5DQorI2RlZmluZSBJQTMyX0dEVF9BTElHTk1FTlQgICAgICAgIDgNCisNCit0eXBl ZGVmIHN0cnVjdCB7DQorICBVSU5UMzIgICAgUmVzZXJ2ZWRfMDsNCisgIFVJTlQ2NCAgICBSU1Aw Ow0KKyAgVUlOVDY0ICAgIFJTUDE7DQorICBVSU5UNjQgICAgUlNQMjsNCisgIFVJTlQ2NCAgICBS ZXNlcnZlZF8yODsNCisgIFVJTlQ2NCAgICBJU1RbN107DQorICBVSU5UNjQgICAgUmVzZXJ2ZWRf OTI7DQorICBVSU5UMTYgICAgUmVzZXJ2ZWRfMTAwOw0KKyAgVUlOVDE2ICAgIElPTWFwQmFzZUFk ZHJlc3M7DQorfSBJQTMyX1RBU0tfU1RBVEVfU0VHTUVOVDsNCisNCit0eXBlZGVmIHN0cnVjdCB7 DQorICBVSU5UMTYgICAgTGltaXQxNV8wOw0KKyAgVUlOVDE2ICAgIEJhc2UxNV8wOw0KKyAgVUlO VDggICAgIEJhc2UyM18xNjsNCisgIFVJTlQ4ICAgICBUeXBlOw0KKyAgVUlOVDggICAgIExpbWl0 MTlfMTZfYW5kX2ZsYWdzOw0KKyAgVUlOVDggICAgIEJhc2UzMV8yNDsNCisgIFVJTlQzMiAgICBC YXNlNjNfMzI7DQorICBVSU5UMzIgICAgUmVzZXJ2ZWQ7DQorfSBJQTMyX1RTU19ERVNDUklQVE9S Ow0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIElBMzJfVFNTX0RFU0NSSVBUT1IgICAgICAgICAg IFRzc1NlZzsNCisgIElBMzJfVEFTS19TVEFURV9TRUdNRU5UICAgICAgIFRzczsNCit9IFRTU19F TlRSSUVTOw0KKw0KKyNwcmFnbWEgcGFjayAoKQ0KKw0KKyNkZWZpbmUgVFNTX1NFTCAgICAgICAg ICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzU2VnKQ0KKyNkZWZpbmUgVFNTX09GRlNFVCAg ICAgICAgT0ZGU0VUX09GIChUU1NfRU5UUklFUywgVHNzKQ0KKw0KICNlbmRpZg0KZGlmZiAtLWdp dCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRp b25IYW5kbGVyQXNtLlMgYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5TDQppbmRleCBlZGQzNjNjZGFhLi5iZGFmMTMyY2Y1 IDEwMDY0NA0KLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIv WDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KKysrIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlvbkhhbmRsZXJBc20uUw0KQEAgLTQyOSw2ICs0 MjksMTggQEAgQVNNX1BGWChBc21WZWN0b3JOdW1GaXh1cCk6DQogICAgIHBvcHEgICAgICAlcmJw DQogICAgIHJldA0KDQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyMgVk9JRA0KKyMgQXNtV3Jp dGVUciAoDQorIyAgIFVJTlQxNiBTZWxlY3Rvcg0KKyMgICApOw0KKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCitBU01fR0xPQkFMIEFTTV9QRlgoQXNtV3JpdGVUcikNCitBU01fUEZYKEFzbVdyaXRl VHIpOg0KKyAgICBtb3ZsICAgICVlY3gsICVlYXgNCisgICAgbHRydyAgICAlYXgNCisgICAgcmV0 DQorDQogI0VORA0KDQoNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20gYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20N CmluZGV4IDcyNmM2NGExNDAuLmFlYzU2ZWY0YmYgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5hc20N CisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNl cHRpb25IYW5kbGVyQXNtLmFzbQ0KQEAgLTM4Niw0ICszODYsMTYgQEAgQXNtVmVjdG9yTnVtRml4 dXAgICBQUk9DDQogICAgIHJldA0KIEFzbVZlY3Rvck51bUZpeHVwICAgRU5EUA0KDQorOy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KKzsgVk9JRA0KKzsgQXNtV3JpdGVUciAoDQorOyAgIFVJTlQxNiBT ZWxlY3Rvcg0KKzsgICApOw0KKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitBc21Xcml0ZVRyIFBS T0MgUFVCTElDDQorICAgIG1vdiAgICAgZWF4LCBlY3gNCisgICAgbHRyICAgICBheA0KKyAgICBy ZXQNCitBc21Xcml0ZVRyIEVORFANCisNCiBFTkQNCmRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQvRXhjZXB0aW9uSGFuZGxlckFzbS5uYXNt IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L0V4Y2VwdGlv bkhhbmRsZXJBc20ubmFzbQ0KaW5kZXggYmE4OTkzZDg0Yi4uMWUyYWM0MTFiMCAxMDA2NDQNCi0t LSBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9FeGNlcHRp b25IYW5kbGVyQXNtLm5hc20NCisrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1g2NC9FeGNlcHRpb25IYW5kbGVyQXNtLm5hc20NCkBAIC0zODUsMyArMzg1LDE1 IEBAIEFTTV9QRlgoQXNtVmVjdG9yTnVtRml4dXApOg0KICAgICBtb3YgICAgIFtyY3ggKyAoQFZl Y3Rvck51bSAtIEhvb2tBZnRlclN0dWJIZWFkZXJCZWdpbildLCBhbA0KICAgICByZXQNCg0KKzst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCis7IFZPSUQNCis7IEFzbVdyaXRlVHIgKA0KKzsgICBVSU5U MTYgU2VsZWN0b3INCis7ICAgKTsNCis7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorZ2xvYmFsIEFT TV9QRlgoQXNtV3JpdGVUcikNCitBU01fUEZYKEFzbVdyaXRlVHIpOg0KKyAgICBtb3YgICAgIGVh eCwgZWN4DQorICAgIGx0ciAgICAgYXgNCisgICAgcmV0DQorDQotLQ0KMi4xNC4xLndpbmRvd3Mu MQ0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KZWRr Mi1kZXZlbCBtYWlsaW5nIGxpc3QNCmVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQpodHRwczovL2xp c3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg0K