From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30067.outbound.protection.outlook.com [40.107.3.67]) by sourceware.org (Postfix) with ESMTPS id 45AAF39BA42A for ; Tue, 3 Nov 2020 15:06:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 45AAF39BA42A Received: from AM6PR05CA0020.eurprd05.prod.outlook.com (2603:10a6:20b:2e::33) by HE1PR0802MB2588.eurprd08.prod.outlook.com (2603:10a6:3:e2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.29; Tue, 3 Nov 2020 15:06:39 +0000 Received: from AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:2e:cafe::f0) by AM6PR05CA0020.outlook.office365.com (2603:10a6:20b:2e::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.19 via Frontend Transport; Tue, 3 Nov 2020 15:06:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT043.mail.protection.outlook.com (10.152.17.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3520.15 via Frontend Transport; Tue, 3 Nov 2020 15:06:39 +0000 Received: ("Tessian outbound a64c3afb6fc9:v64"); Tue, 03 Nov 2020 15:06:39 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d425e279fbd12283 X-CR-MTA-TID: 64aa7808 Received: from b3ce2d757d9b.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id FD377F76-FA2F-4974-A93C-8269C5507860.1; Tue, 03 Nov 2020 15:06:33 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b3ce2d757d9b.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 03 Nov 2020 15:06:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=k56U0mIhoErhzfNKGfmAP/G8cCvJ342b3ZlikMtfgT0fvz47qtAdLkbeJzx6o7/SZR6u2qWwp+0SWzeycSQhj87mw5RxpUTVwsz14NkgHYDvP+IFsiKxfQG310X9vCIh9bwbODVYZfb5DksM4msjvTmF/CDO+3uKAaK0cFsCHTHpheulFKEvdxIDVcZ5m11HUs2eiWd2MHgmEWa2Ghe5TERyz2fOIwv55sHhUlFbPPfmnSmcZJp3yV39fRTwWk0apIL4EqJmYPw0BsoeWlnDpGgDDkJc5I1XLchHwogfWiTObtAQNhA8b05ppMT/0g5KbClSqcTMoCyi3xFo2h0N+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fdX/Vfs9noA4EWTKvEGERy096TJ1qP0xKU7BTB6OwKc=; b=C7GmSriAoqxGA6A4FDgysIV6uXorVBhSZooiE/ELsSxu0/gu3oINPBtkErdfQq0kZX8BnAfMKgeuJj8GAIrpHtoRKyWZVGC7gt0TNJnbWq93YhLyGu1YoTiKxL+3RKRwif1GTlyIMbXbTVgHERvQegDXG45OnbdnA9J0culv9G2pN6P4Zle5hp2H5YHr1Q0yiKuS5Qx9HGXywsg2SWq4/BPvlOV7PPVBb3cdUpa9chKPOF45QXI+JKXpUg5XyVRon2HWa6MosAZEcUKozv8uu4YXyK1vEXvKuULESlpQVe6kzAukTlttYREpM2b74bFfozf7wxdANXN9K+gtPWgQaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VE1PR08MB5181.eurprd08.prod.outlook.com (2603:10a6:803:10d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.19; Tue, 3 Nov 2020 15:06:28 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::d0e7:49cd:4dae:a2a2]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::d0e7:49cd:4dae:a2a2%6]) with mapi id 15.20.3499.032; Tue, 3 Nov 2020 15:06:28 +0000 From: Tamar Christina To: Richard Biener , Richard Sandiford CC: nd , "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH v2 3/16]middle-end Add basic SLP pattern matching scaffolding. Thread-Topic: [PATCH v2 3/16]middle-end Add basic SLP pattern matching scaffolding. Thread-Index: AQHWk0gPfg3binthXU6SMGDs22R/u6l+AX0AgAAQ82CAAD71gIAA4CwAgAAs+/GAAAR+AIA3Te0A Date: Tue, 3 Nov 2020 15:06:28 +0000 Message-ID: References: <20200925142753.GA13692@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-imapappendstamp: VI1PR08MB5325.eurprd08.prod.outlook.com (15.20.3499.032) x-ts-tracking-id: CF0DAFDD79E61846A655189EDDCC4B5C.0 x-checkrecipientchecked: true Authentication-Results-Original: suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.248.186] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 30703a5e-178f-4516-a1f1-08d8800a1116 x-ms-traffictypediagnostic: VE1PR08MB5181:|HE1PR0802MB2588: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:6430;OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: OHZXz+2GvKV9YfHDXEbLSQtoEdYw1NfjTkYDIC5yUd8lOTRHoSIsoO/hRef/PvyA+PSF1VZENp44oRscwb0f1oppE53g7VqsSVlVBlSiYI/ORcT9YCfCrwzxIXE9Tm0/7J7jKwoAWG4xIWq5yT145CL3QkvwGihoqQ9hJZw61XGWaf5p2LM8APQWMZWR7Dhbr/4azq+OW4NU/aKPijeNrBUIw2yyQ5yHOdqkSKX5Whd1ljpL1zg0o1i8nGUOIWPrjut+i6fDXeImJRqpLUAHPIDlgvUlHLm7Es88AOHoetAWO1ofi4ffBepbJ+4IwSIwUIcNq3ttRNN0CKMMhH+nzA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(39860400002)(376002)(346002)(136003)(54906003)(52536014)(5660300002)(110136005)(316002)(71200400001)(33656002)(8676002)(186003)(83380400001)(55016002)(76116006)(26005)(53546011)(7696005)(6636002)(66946007)(66476007)(66616009)(4326008)(478600001)(9686003)(66446008)(86362001)(99936003)(8936002)(64756008)(6506007)(66556008)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 233BuHtTFG9lrJw+jjy38WjgKAG+OttmdonKa54PHbuBhZCS1opQ1hAT/OgWxHh4SNO2ZapNgwa56rRUohVlcFkpZXT/E+4NlznjJKT58IUjguvVWoj7ZsHxed//ur/57oawyBNzYEgMRwYY1Fzh5qz8r6Nm6EVFMshKWJSZIAmq5GbZo7sonZIlvRquE0j1e3d3YDEfPxMTQMmgU3l4LS7v8dVaMVYwGfbU6wsLL8RGTrdZJlaJ/30ubWv7/CK5PE6v+xYIP6br2+35ZlBOpu6oA9M//5JpY4kCBZUyxl2oPhBTycFgEZTqzzoKvgfSNZxT8whWN0kQQBB7F2SQRzrKZ1negf7McqVV89XT7INMM3jwplKvFprp7AkDrcVTnXPVHU0tXRl2qAd/0ZxMTi0Rtmy1zOpFF0Lq6bXlBPOEXfRZqm43dhNfpAhjXsTbyYV5LZZoQKsu45hFniW2g/uT1tD2cLtjAz1mmvmavYHGoFSFZwwz/sPskSRdfUrv1kACUKs7WkV33ctH7istGX8SVizo9xkeIjjbYFwsd2Xi6bJwsV6XC5qvj1lWyvPvUtt0f+Oy6mCSDy0TQrW377EXbVEMInzEPdu9q02qPOMh+cvYsY3fjUxTV9WcxDONiPE8WbISFku3e48GFPFpyw== Content-Type: multipart/mixed; boundary="_002_VI1PR08MB53250748BBC032014BB94CF0FF110VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5181 Original-Authentication-Results: suse.de; dkim=none (message not signed) header.d=none;suse.de; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: a7261161-6c9f-420a-8452-08d8800a0a95 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QMlq511fZDtEZx6Eg0ZnAHPuWekmEyPwixVIz5PIxj9HV5BxNEt4bPa5r4kPhuBhsfVoTGWwv2iXiwasWYx7W+53JwlgsZfCr5HlJYoRZTssvO4sCV+NWdxhCpSv2CheVJWj5z9CnRcmxiwjMZyLrsA5l66/7SrE5M0GH3vGwdOu9PJJCUkznu/wRA4bZn2P1clPIO9IzXbZCLctI02dg372Zcz7d8j7rf5nTbzGTDeOAac2m7z1Xq+KIdaJR2qL51oAXoOiyakvMAYnwexJg8ZyQkYRwby0ZAxldG9ZWun+rfyxS7+s8MzlffskPzAZk7DgHkfb7Z8IOBL0KU7w3v+WXB1j8C+JyfrFLSLUIquTWOi83cl8JTJjSNT908duK4R69Phu7BzapoBHjWHdyQ== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(376002)(39850400004)(136003)(346002)(46966005)(7696005)(33964004)(83380400001)(186003)(110136005)(54906003)(478600001)(66616009)(336012)(4326008)(5660300002)(235185007)(2906002)(86362001)(8676002)(55016002)(6636002)(8936002)(9686003)(6506007)(47076004)(99936003)(81166007)(316002)(356005)(36906005)(70206006)(70586007)(33656002)(82310400003)(26005)(52536014)(53546011)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2020 15:06:39.6719 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 30703a5e-178f-4516-a1f1-08d8800a1116 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0802MB2588 X-Spam-Status: No, score=-9.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, INDUSTRIAL_BODY, INDUSTRIAL_SUBJECT, KAM_ASCII_DIVIDERS, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Nov 2020 15:06:47 -0000 --_002_VI1PR08MB53250748BBC032014BB94CF0FF110VI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-ID: <78D1E2A8363A614BA433AD9A9366F635@arm.com> Content-Transfer-Encoding: base64 SGkgUmljaGksDQoNClRoaXMgaXMgYSByZXNwaW4gd2hpY2ggaW5jbHVkZXMgdGhlIGNoYW5nZXMg eW91IHJlcXVlc3RlZC4NCg0KVGhhbmtzLA0KVGFtYXINCg0KZ2NjL0NoYW5nZUxvZzoNCg0KCSog TWFrZWZpbGUuaW4gKHRyZWUtdmVjdC1zbHAtcGF0dGVybnMubyk6IE5ldy4NCgkqIGRvYy9wYXNz ZXMudGV4aTogVXBkYXRlIGRvY3VtZW50YXRpb24uDQoJKiB0cmVlLXZlY3Qtc2xwLmMgKHZlY3Rf cHJpbnRfc2xwX3RyZWUpOiBBZGQgbmV3IHN0YXRlLg0KCSh2ZWN0X21hdGNoX3NscF9wYXR0ZXJu c18yLCB2ZWN0X21hdGNoX3NscF9wYXR0ZXJucyk6IE5ldy4NCgkodmVjdF9hbmFseXplX3NscCk6 IENhbGwgcGF0dGVybiBtYXRjaGVyLg0KCSogdHJlZS12ZWN0b3JpemVyLmggKGVudW0gX2NvbXBs ZXhfb3BlcmF0aW9uKToNCgkoY2xhc3MgdmVjdF9wYXR0ZXJuX21hdGNoLCBjbGFzcyB2ZWN0X3Bh dHRlcm4pOiBOZXcuDQoJKiB0cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmM6IE5ldyBmaWxlLg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IHJndWVudGhlckBjNjUzLmFyY2gu c3VzZS5kZSA8cmd1ZW50aGVyQGM2NTMuYXJjaC5zdXNlLmRlPiBPbg0KPiBCZWhhbGYgT2YgUmlj aGFyZCBCaWVuZXINCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI5LCAyMDIwIDEwOjQyIEFN DQo+IFRvOiBSaWNoYXJkIFNhbmRpZm9yZCA8UmljaGFyZC5TYW5kaWZvcmRAYXJtLmNvbT4NCj4g Q2M6IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+OyBuZCA8bmRAYXJt LmNvbT47IGdjYy0NCj4gcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI IHYyIDMvMTZdbWlkZGxlLWVuZCBBZGQgYmFzaWMgU0xQIHBhdHRlcm4gbWF0Y2hpbmcNCj4gc2Nh ZmZvbGRpbmcuDQo+IA0KPiBPbiBUdWUsIDI5IFNlcCAyMDIwLCBSaWNoYXJkIFNhbmRpZm9yZCB3 cm90ZToNCj4gDQo+ID4gUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPiB3cml0ZXM6 DQo+ID4gPj4gPiA+IEBAIC0yMTkyLDYgKzIzNzgsMTcgQEAgdmVjdF9hbmFseXplX3NscF9pbnN0 YW5jZSAodmVjX2luZm8NCj4gKnZpbmZvLA0KPiA+ID4+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmdHJlZV9zaXplLCBic3RfbWFwKTsNCj4gPiA+PiA+ID4gICAgaWYgKG5vZGUg IT0gTlVMTCkNCj4gPiA+PiA+ID4gICAgICB7DQo+ID4gPj4gPiA+ICsgICAgICAvKiBUZW1wb3Jh cmlseSBhbGxvdyBhZGRfc3RtdCBjYWxscyBhZ2Fpbi4gICovDQo+ID4gPj4gPiA+ICsgICAgICB2 aW5mby0+c3RtdF92ZWNfaW5mb19ybyA9IGZhbHNlOw0KPiA+ID4+ID4gPiArDQo+ID4gPj4gPiA+ ICsgICAgICAvKiBTZWUgaWYgYW55IHBhdHRlcm5zIGNhbiBiZSBmb3VuZCBpbiB0aGUgY29uc3Ry dWN0ZWQgU0xQIHRyZWUNCj4gPiA+PiA+ID4gKyAgICAgICAgYmVmb3JlIHdlIGRvIGFueSBhbmFs eXNpcyBvbiBpdC4gICovDQo+ID4gPj4gPiA+ICsgICAgICB2ZWN0X21hdGNoX3NscF9wYXR0ZXJu cyAobm9kZSwgdmluZm8sIGdyb3VwX3NpemUsDQo+ICZtYXhfbnVuaXRzLA0KPiA+ID4+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcywgJm5wZXJtdXRlcywgJnRyZWVf c2l6ZSwNCj4gPiA+PiA+ID4gKyBic3RfbWFwKTsNCj4gPiA+PiA+ID4gKw0KPiA+ID4+ID4gPiAr ICAgICAgLyogQWZ0ZXIgdGhpcyBubyBtb3JlIGFkZF9zdG10IGNhbGxzIGFyZSBhbGxvd2VkLiAg Ki8NCj4gPiA+PiA+ID4gKyAgICAgIHZpbmZvLT5zdG10X3ZlY19pbmZvX3JvID0gdHJ1ZTsNCj4g PiA+PiA+ID4gKw0KPiA+ID4+ID4gPg0KPiA+ID4+ID4gPiBJIHRoaW5rIHRoaXMgaXMgYSBiaXQg ZWFybHkgdG8gbWF0Y2ggcGF0dGVybnMgLSBJJ2QgZGVmZXIgaXQgdG8NCj4gPiA+PiA+ID4gdGhl IHBvaW50IHdoZXJlIGFsbCBlbnRyaWVzIGludG8gdGhlIHNhbWUgU0xQIHN1YmdyYXBoIGFyZQ0K PiA+ID4+ID4gPiBhbmFseXplZCwgdGh1cyBzb21ld2hlcmUgYXQgdGhlIGVuZCBvZiB2ZWN0X2Fu YWx5emVfc2xwIGxvb3ANCj4gPiA+PiA+ID4gb3ZlciBhbGwgaW5zdGFuY2VzIGFuZCBtYXRjaCBw YXR0ZXJucz8gIFRoYXQgd2F5IHBoYXNlcyBhcmUgbW9yZQ0KPiBjbGVhcmx5IHNlcGFyYXRlZC4N Cj4gPiA+PiA+DQo+ID4gPj4gPiBUaGF0IHdvdWxkIHByb2JhYmx5IHdvcmssIG15IG9ubHkgd29y cnkgaXMgdGhhdCB0aGUgU0xQIGFuYWx5c2lzDQo+ID4gPj4gPiBpdHNlbGYgbWF5IGZhaWwgYW5k IGJhaWwgb3V0IGF0DQo+ID4gPj4gPg0KPiA+ID4+ID4gCSAgLyogSWYgdGhlIGxvYWRzIGFuZCBz dG9yZXMgY2FuIGJlIGhhbmRsZWQgd2l0aCBsb2FkL3N0b3JlLWxhbmUNCj4gPiA+PiA+IAkgICAg IGluc3RydWN0aW9ucyBkbyBub3QgZ2VuZXJhdGUgdGhpcyBTTFAgaW5zdGFuY2UuICAqLw0KPiA+ ID4+ID4gCSAgaWYgKGlzX2EgPGxvb3BfdmVjX2luZm8+ICh2aW5mbykNCj4gPiA+PiA+IAkgICAg ICAmJiBsb2Fkc19wZXJtdXRlZA0KPiA+ID4+ID4gCSAgICAgICYmIGRyICYmIHZlY3Rfc3RvcmVf bGFuZXNfc3VwcG9ydGVkICh2ZWN0eXBlLCBncm91cF9zaXplLA0KPiA+ID4+ID4gZmFsc2UpKQ0K PiA+ID4NCj4gPiA+IEFoLCB0aGF0IHBpZWNlIG9mIGNvZGUuICBZZWFoLCBJJ20gcmVwZWF0ZWRs eSBydW5uaW5nIGludG8gaXQgYXMNCj4gPiA+IHdlbGwgLSBpdCdzIGEgYmFkIGhhY2sgdGhhdCBz dGFuZHMgaW4gdGhlIHdheSBhbGwgdGhlIHRpbWUgOi8NCj4gPg0KPiA+IEF0IG9uZSBwb2ludCBJ IHdhcyB3b25kZXJpbmcgYWJvdXQgdHJ5aW5nIHRvIGRyb3AgdGhlIGFib3ZlLCB2ZWN0b3Jpc2UN Cj4gPiB3aXRoIGFuZCB3aXRob3V0IFNMUCwgYW5kIHRoZW4gY29tcGFyZSB0aGVpciBjb3N0cywg bGlrZSBmb3INCj4gVkVDVF9DT01QQVJFX0NPU1RTLg0KPiA+IEJ1dCB0aGF0IHNlZW1lZCBsaWtl IGEgZGVhZCBlbmQgd2l0aCB0aGUgbW92ZSB0byBkb2luZyBldmVyeXRoaW5nIG9uDQo+ID4gdGhl IFNMUCByZXByZXNlbnRhdGlvbi4NCj4gDQo+IFllYWggLi4uIHRob3VnaCBldmVuIG1vdmluZyBl dmVyeXRoaW5nIHRvIHRoZSBTTFAgcmVwcmVzZW50YXRpb24gd2lsbCByZXRhaW4NCj4gdGhlIGlz c3VlIHNpbmNlIHRoZXJlIGl0IHdpbGwgYmUgTiBncm91cC1zaXplIDEgU0xQIGluc3RhbmNlcyB2 cy4gMSBncm91cC1zaXplIE4NCj4gU0xQIGluc3RhbmNlLg0KPiANCj4gPiA+IEkgZ3Vlc3Mgd2Ug c2hvdWxkIHRyeSBtb3ZpbmcgdGhpcyB1cHdhcmQgbGlrZSB0bw0KPiA+ID4gdmVjdF9hbmFseXpl X2xvb3BfMiByaWdodCBiZWZvcmUNCj4gPiA+DQo+ID4gPiAgIC8qIENoZWNrIHRoZSBTTFAgb3Bw b3J0dW5pdGllcyBpbiB0aGUgbG9vcCwgYW5hbHl6ZSBhbmQgYnVpbGQgU0xQIHRyZWVzLg0KPiA+ ID4gKi8NCj4gPiA+ICAgb2sgPSB2ZWN0X2FuYWx5emVfc2xwIChsb29wX3ZpbmZvLCAqbl9zdG10 cyk7DQo+ID4gPiAgIGlmICghb2spDQo+ID4gPiAgICAgcmV0dXJuIG9rOw0KPiA+ID4NCj4gPiA+ IGFuZCB0aGVyZSBjaGVjayB3aGV0aGVyIGFsbCBncm91cGVkIGxvYWRzIGFuZCBzdG9yZXMgY2Fu IGJlIGhhbmRsZWQNCj4gPiA+IHdpdGggc3RvcmUtL2xvYWQtbGFuZXMgKGFuZCB0aGVyZSBhcmUg bm8gU0xQIHJlZHVjdGlvbiBjaGFpbnM/KSBpbg0KPiA+ID4gd2hpY2ggY2FzZSBkbyBub3QgdHJ5 IHRvIGF0dGVtcHQgU0xQIGF0IGFsbC4gIEJlY2F1c2UgdGhlIHRlc3RjYXNlcw0KPiA+ID4gdGhp cyBjaGVjayB3YXMgc3VwcG9zZWQgdG8gY2hhbmdlIHdlcmUgYWxsLWxvYWQvc3RvcmUtbGFuZSBv ciBhbGwNCj4gPiA+IFNMUCBzbyB0aGUgbWl4ZWQgY2FzZSBpcyBwcm9iYWJseSBub3Qgd29ydGgg c3BlY2lhbCBjYXNpbmcuDQo+ID4gPg0KPiA+ID4gU2luY2UgbG9hZC0vc3RvcmUtbGFuZXMgaXMg YW4gYXJtIHNwZWNpYWxpdHkgSSB0cmllZCB0byBvbmx5IHRvdWNoDQo+ID4gPiB0aGlzIGZyYWdp bGUgcGFydCB3aXRoIGEgdGVuLWZvb3QgcG9sZSA7KSAgQ0NpbmcgUmljaGFyZCwgaWYgaGUgYWNr cw0KPiA+ID4gdGhlIGFib3ZlIEkgY2FuIHByb2R1Y2UgYSBwYXRjaC4NCj4gPg0KPiA+IFllYWgs IHNvdW5kcyBnb29kIHRvIG1lLiAgUHJvYmFibHkgYWxzbyBzb3J0aCBjaGVja2luZyB3aGV0aGVy IHRoZQ0KPiA+IGxpa2VseV9tYXggaXRlcmF0aW9uIGNvdW50IGlzIGhpZ2ggZW5vdWdoIHRvIHN1 cHBvcnQgZ3JvdXBfc2l6ZQ0KPiA+IHZlY3RvcnMsIGlmIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0 aW9uIHRvIGd1ZXNzIHRoYXQuDQo+ID4NCj4gPiBXZSBjb3VsZCBhbHNvIGdldCB0aGUgZ2VuKiBt YWNoaW5lcnkgdG8gZW1pdCBhIG1hY3JvIHRoYXQgaXMgdHJ1ZSBpZg0KPiA+IGF0IGxlYXN0IG9u ZSBsb2FkL3N0b3JlLWxhbmUgcGF0dGVybiBpcyBkZWZpbmVkLCBzbyB0aGF0IHdlIGNhbiBza2lw DQo+ID4gdGhlIGNvZGUgZm9yIG5vbi1Bcm0gdGFyZ2V0cy4gIEkgY2FuIGRvIHRoYXQgYXMgYSBm b2xsb3ctdXAuDQo+IA0KPiBJJ3ZlIGhhZCBhIHNlY29uZCBsb29rIGFuZCBvbmUgY29tcGxpY2F0 aW9uIGlzIHRoYXQgd2Ugb25seSBlbGlkZSB0aGUgU0xQDQo+IG5vZGUgaWYgYW55IG9mIHRoZSBs b2FkcyBhcmUgcGVybXV0ZWQuICBTbyBpZiBhbGwgbG9hZHMvc3RvcmVzIGFyZSB1bnBlcm11dGVk DQo+IGJ1dCBsb2FkL3N0b3JlLWxhbmVzIHdvdWxkIHdvcmsgd2UnZCBrZWVwIHRoZSBTTFAgbm9k ZS4NCj4gDQo+IE9mIGNvdXJzZSB3aXRob3V0IGFjdHVhbGx5IGJ1aWxkaW5nIHRoZSBTTFAgbm9k ZSB3ZSBkb24ndCBrbm93IHdoZXRoZXIgdGhlDQo+IGxvYWRzIHdpbGwgYmUgcGVybXV0ZWQgb3Ig bm90IC4uLg0KPiANCj4gQnV0IHN1cmVseSB0aGUgY3VycmVudCBwbGFjZSBmb3IgdGhlIGNoZWNr IHdpbGwgY2F1c2Ugc29tZSB0ZXN0Y2FzZXMgdG8NCj4gYmVjb21lIGh5YnJpZCB2ZWN0b3JpemF0 aW9ucyB3aGljaCBpcyBsaWtlbHkgdW5kZXNpcmFibGUuDQo+IA0KPiBTbyB3ZSBjb3VsZCBtb3Zl IHRoZSBjaGVjayBhZnRlciBhbGwgU0xQIGRpc2NvdmVyeSBpcyBjb21wbGV0ZWQgYW5kIHRocm93 IGl0DQo+IGFsbCBhd2F5IGlmIHdlIGNhbiBhbmQgc2hvdWxkIHVzZSBsb2FkL3N0b3JlLWxhbmVz Pw0KPiBCdXQgdGhhdCBtaWdodCB0aGVuIG5vdCBzb2x2ZSBUYW1hcnMgaXNzdWUuDQo+IA0KPiBS aWNoYXJkLg0K --_002_VI1PR08MB53250748BBC032014BB94CF0FF110VI1PR08MB5325eurp_ Content-Type: text/x-diff; name="pr13507.patch" Content-Description: pr13507.patch Content-Disposition: attachment; filename="pr13507.patch"; size=21972; creation-date="Tue, 03 Nov 2020 14:50:37 GMT"; modification-date="Tue, 03 Nov 2020 14:50:37 GMT" Content-ID: <17C85EB0DC87664CB5429E80C8F191F1@arm.com> Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9NYWtlZmlsZS5pbiBiL2djYy9NYWtlZmlsZS5pbg0KaW5kZXggOTc4 YTA4ZjdiMDRiZWE3ZTdjNDFmODQxZGMyNGI3NzNjMWFkY2ZlMi4uODg1ZjE1YzBkMzg2NmExZGI3 NDlkNzk5Y2FmZmRkZmU4YTM5MGUwYiAxMDA2NDQNCi0tLSBhL2djYy9NYWtlZmlsZS5pbg0KKysr IGIvZ2NjL01ha2VmaWxlLmluDQpAQCAtMTY0NSw2ICsxNjQ1LDcgQEAgT0JKUyA9IFwNCiAJdHJl ZS12ZWN0LWxvb3AubyBcDQogCXRyZWUtdmVjdC1sb29wLW1hbmlwLm8gXA0KIAl0cmVlLXZlY3Qt c2xwLm8gXA0KKwl0cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLm8gXA0KIAl0cmVlLXZlY3Rvcml6ZXIu byBcDQogCXRyZWUtdmVjdG9yLWJ1aWxkZXIubyBcDQogCXRyZWUtdnJwLm8gXA0KZGlmZiAtLWdp dCBhL2djYy9kb2MvcGFzc2VzLnRleGkgYi9nY2MvZG9jL3Bhc3Nlcy50ZXhpDQppbmRleCBhNWFl NDE0M2E4YzEyOTNlNjc0YjQ5OTEyMDM3MmVlNWZlNWM0MTJiLi5jODZkZjVjZDg0MzA4NGE1Yjc5 MzNlZjk5YTIzMzg2ODkxYTdiMGMxIDEwMDY0NA0KLS0tIGEvZ2NjL2RvYy9wYXNzZXMudGV4aQ0K KysrIGIvZ2NjL2RvYy9wYXNzZXMudGV4aQ0KQEAgLTcwOSw3ICs3MDksOCBAQCBsb29wLg0KIFRo ZSBwYXNzIGlzIGltcGxlbWVudGVkIGluIEBmaWxle3RyZWUtdmVjdG9yaXplci5jfSAodGhlIG1h aW4gZHJpdmVyKSwNCiBAZmlsZXt0cmVlLXZlY3QtbG9vcC5jfSBhbmQgQGZpbGV7dHJlZS12ZWN0 LWxvb3AtbWFuaXAuY30gKGxvb3Agc3BlY2lmaWMgcGFydHMNCiBhbmQgZ2VuZXJhbCBsb29wIHV0 aWxpdGllcyksIEBmaWxle3RyZWUtdmVjdC1zbHB9IChsb29wLWF3YXJlIFNMUA0KLWZ1bmN0aW9u YWxpdHkpLCBAZmlsZXt0cmVlLXZlY3Qtc3RtdHMuY30gYW5kIEBmaWxle3RyZWUtdmVjdC1kYXRh LXJlZnMuY30uDQorZnVuY3Rpb25hbGl0eSksIEBmaWxle3RyZWUtdmVjdC1zdG10cy5jfSwgQGZp bGV7dHJlZS12ZWN0LWRhdGEtcmVmcy5jfSBhbmQNCitAZmlsZXt0cmVlLXZlY3Qtc2xwLXBhdHRl cm5zLmN9IGNvbnRhaW5pbmcgdGhlIFNMUCBwYXR0ZXJuIG1hdGNoZXIuDQogQW5hbHlzaXMgb2Yg ZGF0YSByZWZlcmVuY2VzIGlzIGluIEBmaWxle3RyZWUtZGF0YS1yZWYuY30uDQogDQogU0xQIFZl Y3Rvcml6YXRpb24uICBUaGlzIHBhc3MgcGVyZm9ybXMgdmVjdG9yaXphdGlvbiBvZiBzdHJhaWdo dC1saW5lIGNvZGUuIFRoZQ0KZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3Qtc2xwLXBhdHRlcm5z LmMgYi9nY2MvdHJlZS12ZWN0LXNscC1wYXR0ZXJucy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgxY2Q2ODU2 YWQ0ZGI1YTBjZGE0OGNhMjE0Mzg5ZjAwN2UwNjBkYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3RyZWUtdmVjdC1zbHAtcGF0dGVybnMuYw0KQEAgLTAsMCArMSwyOTMgQEANCisvKiBTTFAgLSBQ YXR0ZXJuIG1hdGNoZXIgb24gU0xQIHRyZWVzDQorICAgQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KKw0KK1RoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4N CisNCitHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdCB1bmRlcg0KK3RoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlDQorU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXINCit2ZXJzaW9uLg0K Kw0KK0dDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LCBidXQgV0lUSE9VVCBBTlkNCitXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcg0KK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KK2ZvciBtb3JlIGRl dGFpbHMuDQorDQorWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UNCithbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQ0KKzxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQor DQorI2luY2x1ZGUgImNvbmZpZy5oIg0KKyNpbmNsdWRlICJzeXN0ZW0uaCINCisjaW5jbHVkZSAi Y29yZXR5cGVzLmgiDQorI2luY2x1ZGUgImJhY2tlbmQuaCINCisjaW5jbHVkZSAidGFyZ2V0Lmgi DQorI2luY2x1ZGUgInJ0bC5oIg0KKyNpbmNsdWRlICJ0cmVlLmgiDQorI2luY2x1ZGUgImdpbXBs ZS5oIg0KKyNpbmNsdWRlICJ0cmVlLXBhc3MuaCINCisjaW5jbHVkZSAic3NhLmgiDQorI2luY2x1 ZGUgIm9wdGFicy10cmVlLmgiDQorI2luY2x1ZGUgImluc24tY29uZmlnLmgiDQorI2luY2x1ZGUg InJlY29nLmgiCQkvKiBGSVhNRTogZm9yIGluc25fZGF0YSAqLw0KKyNpbmNsdWRlICJmb2xkLWNv bnN0LmgiDQorI2luY2x1ZGUgInN0b3ItbGF5b3V0LmgiDQorI2luY2x1ZGUgImdpbXBsZS1pdGVy YXRvci5oIg0KKyNpbmNsdWRlICJjZmdsb29wLmgiDQorI2luY2x1ZGUgInRyZWUtdmVjdG9yaXpl ci5oIg0KKyNpbmNsdWRlICJsYW5naG9va3MuaCINCisjaW5jbHVkZSAiZ2ltcGxlLXdhbGsuaCIN CisjaW5jbHVkZSAiZGJnY250LmgiDQorI2luY2x1ZGUgInRyZWUtdmVjdG9yLWJ1aWxkZXIuaCIN CisjaW5jbHVkZSAidmVjLXBlcm0taW5kaWNlcy5oIg0KKyNpbmNsdWRlICJnaW1wbGUtZm9sZC5o Ig0KKyNpbmNsdWRlICJpbnRlcm5hbC1mbi5oIg0KKw0KKy8qIFNMUCBQYXR0ZXJuIG1hdGNoaW5n IG1lY2hhbmlzbS4NCisNCisgIFRoaXMgZXh0ZW5zaW9uIHRvIHRoZSBTTFAgdmVjdG9yaXplciBh bGxvd3Mgb25lIHRvIHRyYW5zZm9ybSB0aGUgZ2VuZXJhdGVkIFNMUA0KKyAgdHJlZSBiYXNlZCBv biBhbnkgcGF0dGVybi4gIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBhbmQgdGhlIG5vcm1h bCB2ZWN0DQorICBwYXR0ZXJuIG1hdGNoZXIgaXMgdGhhdCB1bmxpa2UgdGhlIGZvcm1lciwgdGhp cyBtYXRjaGVyIGFsbG93cyB5b3UgdG8gbWF0Y2gNCisgIHdpdGggaW5zdHJ1Y3Rpb25zIHRoYXQg ZG8gbm90IGJlbG9uZyB0byB0aGUgc2FtZSBTU0EgZG9taW5hdG9yIGdyYXBoLg0KKw0KKyAgVGhl IG9ubHkgcmVxdWlyZW1lbnQgdGhhdCB0aGlzIHBhdHRlcm4gbWF0Y2hlciBoYXMgaXMgdGhhdCB5 b3UgYXJlIG9ubHkNCisgIG9ubHkgYWxsb3dlZCB0byBlaXRoZXIgbWF0Y2ggYW4gZW50aXJlIGdy b3VwIG9yIG5vbmUuDQorDQorICBBcyBhbiBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHNpbXBsZSBs b29wOg0KKw0KKyAgICBkb3VibGUgYVtyZXN0cmljdCBOXTsgZG91YmxlIGJbcmVzdHJpY3QgTl07 IGRvdWJsZSBjW3Jlc3RyaWN0IE5dOw0KKw0KKyAgICBmb3IgKGludCBpPTA7IGkgPCBOOyBpKz0y KQ0KKyAgICB7DQorICAgICAgY1tpXSA9IGFbaV0gLSBiW2krMV07DQorICAgICAgY1tpKzFdID0g YVtpKzFdICsgYltpXTsNCisgICAgfQ0KKw0KKyAgd2hpY2ggcmVwcmVzZW50cyBhIGNvbXBsZXgg YWRkaXRpb24gb24gd2l0aCBhIHJvdGF0aW9uIG9mIDkwKiBhcm91bmQgdGhlDQorICBhcmdhbmQg cGxhbmUuIGkuZS4gaWYgYGFgIGFuZCBgYmAgd2VyZSBjb21wbGV4IG51bWJlcnMgdGhlbiB0aGlz IHdvdWxkIGJlIHRoZQ0KKyAgc2FtZSBhcyBgYSArIChiICogSSlgLg0KKw0KKyAgSGVyZSB0aGUg ZXhwcmVzc2lvbnMgZm9yIGBjW2ldYCBhbmQgYGNbaSsxXWAgYXJlIGluZGVwZW5kZW50IGJ1dCBo YXZlIHRvIGJlDQorICBib3RoIHJlY29nbml6ZWQgaW4gb3JkZXIgZm9yIHRoZSBwYXR0ZXJuIHRv IHdvcmsuICBBcyBhbiBTTFAgdHJlZSB0aGlzIGlzDQorICByZXByZXNlbnRlZCBhcw0KKw0KKyAg ICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgICAg ICAgICAgICAgIHwgICAgICAgc3RtdCAwICpfOSA9IF8xMDsgICAgICAgIHwNCisgICAgICAgICAg ICAgICAgfCAgICAgICBzdG10IDEgKl8xNSA9IF8xNjsgICAgICAgfA0KKyAgICAgICAgICAgICAg ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2DQorICAgICAgICAgICAgICAgICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICAgICAgICAgICAgICAgfCAgICAgc3RtdCAw IF8xMCA9IF80IC0gXzg7ICAgICAgfA0KKyAgICAgICAgICAgICAgICB8ICAgIHN0bXQgMSBfMTYg PSBfMTIgKyBfMTQ7ICAgICB8DQorICAgICAgICAgICAgICAgIHwgbGFuZSBwZXJtdXRhdGlvbiB7 IDBbMF0gMVsxXSB9IHwNCisgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8DQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIHwNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgfA0KKyAgICAgICAgICAgICAgICstLS0tLSsgICAgICB8ICAgICAg ICB8ICAgICAgKy0tLS0tKw0KKyAgICAgICAgICAgICAgIHwgICAgIHwgICAgICB8ICAgICAgICB8 ICAgICAgfCAgICAgfA0KKyAgICAgICAgICstLS0tLXwgeyB9IHw8LS0tLS0rICAgICAgICArLS0t LS0+fCB7IH0gLS0tLS0tLS0rDQorICAgICAgICAgfCAgICAgfCAgICAgfCAgICstLS0tLS0tLS0t LS0tLS0tLS18ICAgICB8ICAgICAgIHwNCisgICAgICAgICB8ICAgICArLS0tLS0rICAgfCAgICAg ICAgICAgICAgICAgICstLS0tLSsgICAgICAgfA0KKyAgICAgICAgIHwgICAgICAgIHwgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQorICAgICAgICAgfCAgICAgICAgfCAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCisgICAgICAgICB8ICAgICAg ICArLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgfA0KKyAgICAgICAgIHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8DQorICAgICAg ICAgdiAgICAgICAgICAgICAgIHYgICAgICAgICAgICAgICAgICB2ICAgICAgICAgICAgIHYNCisg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsNCisgICAgIHwgICAgIHN0bXQgMCBfOCA9ICpfNzsgICAgIHwgICAgIHwg ICAgICAgIHN0bXQgMCBfNCA9ICpfMzsgICAgICAgIHwNCisgICAgIHwgICAgc3RtdCAxIF8xNCA9 ICpfMTM7ICAgIHwgICAgIHwgICAgICAgc3RtdCAxIF8xMiA9ICpfMTE7ICAgICAgIHwNCisgICAg IHwgbG9hZCBwZXJtdXRhdGlvbiB7IDEgMCB9IHwgICAgIHwgICAgbG9hZCBwZXJtdXRhdGlvbiB7 IDAgMSB9ICAgIHwNCisgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICAgICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisNCisgIFRoZSBwYXR0ZXJuIG1hdGNoZXIg YWxsb3dzIHlvdSB0byByZXBsYWNlIGJvdGggc3RhdGVtZW50cyAwIGFuZCAxIG9yIG5vbmUgYXQN CisgIGFsbC4gIFlvdSBhcmUgYWxzbyBhbGxvd2VkIHRvIHJlcGxhY2UgYW5kIG1hdGNoIG9uIGFu eSBudW1iZXIgb2Ygbm9kZXMuDQorDQorICBUaGUgcGF0dGVybiBtYXRjaGVyIG1hdGNoZXMgb24g dGhlIHJlcHJlc2VudGF0aXZlIHN0YXRlbWVudCBmb3IgdGhlIFNMUCBub2RlLg0KKyAgSW4gdGhl IGNhc2Ugb2YgdHdvX29wZXJhdG9ycyBpdCBhbGxvd3MgeW91IHRvIG1hdGNoIHRoZSBjaGlsZHJl biBvZiB0aGUgbm9kZS4NCisgIFRoaXMgaXMgZG9uZSB1c2luZyB0aGUgbWV0aG9kIGBtYXRjaGVz ICgpYC4NCisNCisgIElmIHRoZSBwYXR0ZXJuIGNhbiBiZSBhcHBsaWVkIGEgVmVjUGF0dGVybk1h dGNoIGlzIHJldHVybmVkIHdoaWNoIGNvbnRhaW5zIGFsbA0KKyAgc3RhdGUgaW5mb3JtYXRpb24g b24gd2hlcmUgdGhlIG1hdGNoIHdhcyBmb3VuZC4gIFRoaXMgaXMgc3RvcmVkIGluIGEgbGlzdCBv Zg0KKyAgb3BlcmF0aW9ucyB0byBwZXJmb3JtLiAgSWYgdGhlIG1hdGNoIGNhbm5vdCBiZSBhcHBs aWVkIHRoZW4gdGhlIGN1cnJlbnQNCisgIHBhdHRlcm4gaXMgYWJvcnRlZCBhbmQgbm8gY2hhbmdl cyBtYWRlIHRvIHRoZSB0cmVlLg0KKw0KKyAgVGhlIHBhdHRlcm4gbWF0Y2hlciBoYXMgdHdvIG1v ZGVzOg0KKw0KKyAgMSkgRmlyc3QgaW4gcG9zdC1vcmRlciB0cmF2ZXJzYWwgaXMgdXNlZCB0byBw ZXJmb3JtIGEgY2hlY2sgdG8gc2VlIGlmIHRoZQ0KKyAgICAgcGF0dGVybiBjYW4gYmUgYXBwbGll ZCBvciBub3QuIElmIHRoZSBwYXR0ZXJuIGNhbiBiZSBhcHBsaWVkIHRoZW4gYSBzZWNvbmQNCisg ICAgIHN0ZXAgaXMgcGVyZm9ybWVkIHRoYXQgYWxsb3dzIHRoZSBwYXR0ZXJuIHRvIHJld3JpdGUg aXQncyBjaGlsZHJlbi4gIFRoaXMNCisgICAgIHN0ZXAgaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUg YXBwbGljYXRpb24gb2YgYSBwYXR0ZXJuIGNhbiBjaGFuZ2UgdGhlIGxheW91dA0KKyAgICAgb2Yg dGhlIHRyZWUgd2hpY2ggYWZmZWN0cyB0aGUgbm9kZXMgdGhhdCBhcmUgc3RpbGwgdG8gYmUgbWF0 Y2hlZC4gIFRoaXMgaXMNCisgICAgIHBlcmZvcm1lZCB1c2luZyBgdmFsaWRhdGVfcCAoKWAuDQor DQorICAyKSBBbHNvIGluIHBvc3Qtb3JkZXIgdHJhdmVyc2FsIGFjdHVhbGx5IHBlcmZvcm0gdGhl IHJld3JpdGluZyBvZiB0aGUNCisgICAgIG1hdGNoZXMgZm91bmQgZWFybGllci4gIFRoaXMgaXMg ZG9uZSBieSBjYWxsaW5nIGBidWlsZCAoKWAgb24gYWxsIG1hdGNoZXMNCisgICAgIHRoYXQgd2Vy ZSBmb3VuZCBlYXJsaWVyLg0KKw0KKyAgVGhlIHBhdHRlcm4gbWF0Y2hlciBjdXJyZW50bHkgb25s eSBhbGxvd3MgeW91IHRvIHBlcmZvcm0gcmVwbGFjZW1lbnRzIHRvDQorICBpbnRlcm5hbCBmdW5j dGlvbnMuDQorDQorICBPbmNlIHRoZSBwYXR0ZXJucyBhcmUgbWF0Y2hlZCBpdCBpcyBvbmUgd2F5 LCB0aGVzZSBjYW5ub3QgYmUgdW5kb25lLiAgSXQgaXMNCisgIGN1cnJlbnRseSBub3Qgc3VwcG9y dGVkIHRvIG1hdGNoIHBhdHRlcm5zIHJlY3Vyc2l2ZWx5Lg0KKw0KKyAgVG8gYWRkIGEgbmV3IHBh dHRlcm4sIGltcGxlbWVudCB0aGUgdmVjdF9wYXR0ZXJuIGNsYXNzIGFuZCBhZGQgdGhlIHR5cGUg dG8NCisgIHNscF9wYXR0ZXJucy4gICovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisg KiBTaW1wbGUgdmVjdG9yIHBhdHRlcm4gbWF0Y2hlcg0KKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov DQorDQorLyogdmVjdF9zaW1wbGVfcGF0dGVybl9tYXRjaCBob2xkcyBjb250ZXh0dWFsIGluZm9y bWF0aW9uIGFib3V0IGEgc2luZ2xlIG1hdGNoDQorICAgZm91bmQgaW4gdGhlIFNMUCB0cmVlLiAg VGhlIHVzZSBvZiB0aGUgY2xhc3MgaXMgdG8gYWxsb3cgeW91IHRvIGRlZmVyDQorICAgcGVyZm9y bWluZyBhbnkgbW9kaWZpY2F0aW9ucyB0byB0aGUgU0xQIHRyZWUgdW50aWwgdGhleSBhcmUgdG8g YmUgZG9uZS4gIEJ5DQorICAgY2FsbGluZyBidWlsZCAoKSB0aGUgbW9kaWZpY2F0aW9ucyBhcmUg ZG9uZSBpbi1wbGFjZSBhcyB0byBhbGxvdyBhbHNvIHJlLQ0KKyAgIHdyaXRpbmcgb2YgdGhlIHJv b3Qgbm9kZS4gICovDQorDQorY2xhc3MgdmVjdF9zaW1wbGVfcGF0dGVybl9tYXRjaCA6IHB1Ymxp YyB2ZWN0X3BhdHRlcm5fbWF0Y2gNCit7DQorICBwcm90ZWN0ZWQ6DQorICAgIHVpbnQ4X3QgbV9h cml0eTsNCisgICAgaW50ZXJuYWxfZm4gbV9pZm47DQorICAgIHZlY19pbmZvICptX3ZpbmZvOw0K KyAgICBpbnQgbV9udW1fYXJnczsNCisgICAgdmVjPHNscF90cmVlPiAqbV9ub2RlczsNCisNCisg IHB1YmxpYzoNCisgICAgdmVjdF9zaW1wbGVfcGF0dGVybl9tYXRjaCAodWludDhfdCwgaW50ZXJu YWxfZm4sIHZlY19pbmZvICosDQorCQkJICAgICAgIHZlYzxzbHBfdHJlZT4gKiwgaW50KTsNCisg ICAgZ2NhbGwgKmJ1aWxkICgpOw0KKw0KKyAgICB1aW50OF90IGdldF9hcml0eSAoKQ0KKyAgICB7 DQorICAgICAgcmV0dXJuIHRoaXMtPm1fYXJpdHk7DQorICAgIH0NCisNCisgICAgaW50ZXJuYWxf Zm4gZ2V0X0lGTiAoKQ0KKyAgICB7DQorICAgICAgcmV0dXJuIHRoaXMtPm1faWZuOw0KKyAgICB9 DQorfTsNCisNCit2ZWN0X3NpbXBsZV9wYXR0ZXJuX21hdGNoOjp2ZWN0X3NpbXBsZV9wYXR0ZXJu X21hdGNoICh1aW50OF90IGFyaXR5LA0KKwkJCQkJCSAgICAgIGludGVybmFsX2ZuIGlmbiwNCisJ CQkJCQkgICAgICB2ZWNfaW5mbyAqdmluZm8sDQorCQkJCQkJICAgICAgdmVjPHNscF90cmVlPiAq bm9kZXMsDQorCQkJCQkJICAgICAgaW50IG51bV9hcmdzKQ0KK3sNCisgIC8qIE51bWJlciBvZiBz dGF0ZW1lbnRzIHRoZSBwYXR0ZXJuIG1hdGNoZXMgYWdhaW5zdC4gICovDQorICB0aGlzLT5tX2Fy aXR5ID0gYXJpdHk7DQorDQorICAvKiBUaGUgSUZOIHRvIGNyZWF0ZSB0aGUgbmV3IHN0YXRlbWVu dHMgd2l0aC4gICovDQorICB0aGlzLT5tX2lmbiA9IGlmbjsNCisNCisgIC8qIFRoZSB2ZWN0b3Jp emF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgY3VycmVudCBsb29wLiAgKi8NCisgIHRoaXMtPm1f dmluZm8gPSB2aW5mbzsNCisNCisgIC8qIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHJlcXVpcmVk IHRvIGNyZWF0ZSB0aGUgbmV3IElGTi4gICovDQorICB0aGlzLT5tX251bV9hcmdzID0gbnVtX2Fy Z3M7DQorDQorICAvKiBUaGUgbm9kZSB0aGF0IGNvbnRhaW5zIHRoZSBzdGF0ZW1lbnQgdGhhdCBp cyBiZWluZyByZXBsYWNlZC4gICovDQorICB0aGlzLT5tX25vZGVzID0gbm9kZXM7DQorfQ0KKw0K Ky8qIENyZWF0ZSBhIHJlcGxhY2VtZW50IHBhdHRlcm4gc3RhdGVtZW50IGZvciBTVE1UX0lORk8g YW5kIGluc2VydHMgdGhlIG5ldw0KKyAgIHN0YXRlbWVudCBpbnRvIE5PREUuICBUaGUgc3RhdGVt ZW50IGlzIGNyZWF0ZWQgYXMgY2FsbCB0byBpbnRlcm5hbA0KKyAgIGZ1bmN0aW9uIElGTiB3aXRo IGFyZ3VtZW50cyBBUkdTLiAgVGhlIGFyaXR5IG9mIElGTiBuZWVkcyB0byBtYXRjaCB0aGUNCisg ICBhbW91bnQgb2YgZWxlbWVudHMgaW4gQVJHUy4gIFRoZSBzY2FsYXIgdHlwZSBvZiB0aGUgc3Rh dGVtZW50IGFzIFRZUEUgYW5kDQorICAgdGhlIGNvcnJlc3BvbmRpbmcgdmVjdG9yIHR5cGUgVkVD VFlQRS4gIFRoZXNlIHR3byB0eXBlcyBhcmUgdXNlZCB0bw0KKyAgIGNvbnN0cnVjdCB0aGUgbmV3 IHZlY3RvciBvbmx5IHJlcGxhY2VtZW50IHBhdHRlcm4gc3RhdGVtZW50Lg0KKw0KKyAgIEZ1dGhl cm1vcmUgdGhlIG5ldyBwYXR0ZXJuIGlzIGFsc28gYWRkZWQgdG8gdGhlIHZlY3Rvcml6YXRpb24g aW5mb3JtYXRpb24NCisgICBzdHJ1Y3R1cmUgVklORk8gYW5kIHRoZSBvbGQgc3RhdGVtZW50IFNU TVRfSU5GTyBpcyBtYXJrZWQgYXMgdW51c2VkIHdoaWxlDQorICAgdGhlIG5ldyBzdGF0ZW1lbnQg aXMgbWFya2VkIGFzIHVzZWQgYW5kIHRoZSBudW1iZXIgb2YgU0xQIHVzZXMgb2YgdGhlIG5ldw0K KyAgIHN0YXRlbWVudCBpcyBpbmNyZW1lbnRlZC4NCisNCisgICBUaGUgbmV3bHkgY3JlYXRlZCBT TFAgbm9kZXMgYXJlIG1hcmtlZCBhcyBTTFAgb25seSBhbmQgd2lsbCBiZSBkaXNzb2x2ZWQNCisg ICBpZiBTTFAgaXMgYWJvcnRlZC4NCisNCisgICBUaGUgbmV3bHkgY3JlYXRlZCBnaW1wbGUgY2Fs bCBpcyByZXR1cm5lZCBhbmQgdGhlIEJCIHJlbWFpbnMgdW5jaGFuZ2VkLg0KKyovDQorDQorZ2Nh bGwgKg0KK3ZlY3Rfc2ltcGxlX3BhdHRlcm5fbWF0Y2g6OmJ1aWxkICgpDQorew0KKyAgc3RtdF92 ZWNfaW5mbyBzdG10X2luZm87DQorDQorICBhdXRvX3ZlYzx0cmVlPiBhcmdzOw0KKyAgYXJncy5j cmVhdGUgKHRoaXMtPm1fbnVtX2FyZ3MpOw0KKyAgYXJncy5xdWlja19ncm93X2NsZWFyZWQgKHRo aXMtPm1fbnVtX2FyZ3MpOw0KKyAgc2xwX3RyZWUgbm9kZTsNCisgIHVuc2lnbmVkIGl4Ow0KKyAg c3RtdF92ZWNfaW5mbyBjYWxsX3N0bXRfaW5mbzsNCisgIGdjYWxsICpjYWxsX3N0bXQgPSBOVUxM Ow0KKw0KKyAgRk9SX0VBQ0hfVkVDX0VMVCAoKnRoaXMtPm1fbm9kZXMsIGl4LCBub2RlKQ0KKyAg ICB7DQorICAgICAgLyogQ2FsY3VsYXRlIHRoZSBsb2NhdGlvbiBvZiB0aGUgc3RhdGVtZW50IGlu IE5PREUgdG8gcmVwbGFjZS4gICovDQorICAgICAgc3RtdF9pbmZvID0gU0xQX1RSRUVfUkVQUkVT RU5UQVRJVkUgKG5vZGUpOw0KKyAgICAgIGdpbXBsZSogb2xkX3N0bXQgPSBTVE1UX1ZJTkZPX1NU TVQgKHN0bXRfaW5mbyk7DQorICAgICAgdHJlZSB0eXBlID0gZ2ltcGxlX2V4cHJfdHlwZSAob2xk X3N0bXQpOw0KKw0KKyAgICAgIC8qIENyZWF0ZSB0aGUgYXJndW1lbnQgc2V0IGZvciB1c2UgYnkg Z2ltcGxlX2J1aWxkX2NhbGxfaW50ZXJuYWxfdmVjLiAgKi8NCisgICAgICBmb3IgKGludCBpID0g MDsgaSA8IHRoaXMtPm1fbnVtX2FyZ3M7IGkrKykNCisJew0KKwkgIHRyZWUgdmFyID0gbWFrZV90 ZW1wX3NzYV9uYW1lICh0eXBlLCBvbGRfc3RtdCwgIl9wYSIpOw0KKwkgIGFyZ3NbaV0gPSB2YXI7 DQorCX0NCisNCisgICAgICAvKiBDcmVhdGUgdGhlIG5ldyBwYXR0ZXJuIHN0YXRlbWVudHMuICAq Lw0KKyAgICAgIGNhbGxfc3RtdCA9IGdpbXBsZV9idWlsZF9jYWxsX2ludGVybmFsX3ZlYyAodGhp cy0+bV9pZm4sIGFyZ3MpOw0KKyAgICAgIHRyZWUgdmFyID0gbWFrZV90ZW1wX3NzYV9uYW1lICh0 eXBlLCBjYWxsX3N0bXQsICJzbHBfcGF0dCIpOw0KKyAgICAgIGdpbXBsZV9jYWxsX3NldF9saHMg KGNhbGxfc3RtdCwgdmFyKTsNCisgICAgICBnaW1wbGVfc2V0X2xvY2F0aW9uIChjYWxsX3N0bXQs IGdpbXBsZV9sb2NhdGlvbiAob2xkX3N0bXQpKTsNCisgICAgICBnaW1wbGVfY2FsbF9zZXRfbm90 aHJvdyAoY2FsbF9zdG10LCB0cnVlKTsNCisNCisgICAgICAvKiBBZGp1c3QgdGhlIGJvb2sta2Vl cGluZyBmb3IgdGhlIG5ldyBhbmQgb2xkIHN0YXRlbWVudHMgZm9yIHVzZSBkdXJpbmcNCisJIFNM UC4gIFRoaXMgaXMgcmVxdWlyZWQgdG8gZ2V0IHRoZSByaWdodCBWRiBhbmQgc3RhdGVtZW50IGR1 cmluZyBTTFANCisJIGFuYWx5c2lzLiAgVGhlc2UgY2hhbmdlcyBhcmUgY3JlYXRlZCBhZnRlciBy ZWxldmFuY3kgaGFzIGJlZW4gc2V0IGZvcg0KKwkgdGhlIG5vZGVzIGFzIHN1Y2ggd2UgbmVlZCB0 byBtYW51YWxseSB1cGRhdGUgdGhlbS4gIEFueSBjaGFuZ2VzIHdpbGwgYmUNCisJIHVuZG9uZSBp ZiBTTFAgaXMgY2FuY2VsbGVkLiAgKi8NCisgICAgICBjYWxsX3N0bXRfaW5mbw0KKwk9IHRoaXMt Pm1fdmluZm8tPmFkZF9wYXR0ZXJuX3N0bXQgKGNhbGxfc3RtdCwgc3RtdF9pbmZvKTsNCisgICAg ICBTVE1UX1NMUF9UWVBFIChjYWxsX3N0bXRfaW5mbykgPSBwdXJlX3NscDsNCisgICAgICB2ZWN0 X21hcmtfcGF0dGVybl9zdG10cyAodGhpcy0+bV92aW5mbywgc3RtdF9pbmZvLCBjYWxsX3N0bXQs DQorCQkJICAgICAgIFNMUF9UUkVFX1ZFQ1RZUEUgKG5vZGUpKTsNCisNCisgICAgICAvKiBXZSBo YXZlIHRvIGV4cGxpY2l0bHkgbWFyayB0aGUgb2xkIHN0YXRlbWVudCBhcyB1bnVzZWQgYmVjYXVz ZSBkdXJpbmcNCisJIHN0YXRlbWVudCBhbmFseXNpcyB0aGUgb3JpZ2luYWwgYW5kIG5ldyBwYXR0 ZXJuIHN0YXRlbWVudCBtYXkgcmVxdWlyZQ0KKwkgZGlmZmVyZW50IGxldmVsIG9mIHVucm9sbGlu Zy4gIEFzIGFuIGV4YW1wbGUgYWRkL3N1YiB3aGVuIHZlY3Rvcml6ZWQNCisJIHdpdGhvdXQgYSBw YXR0ZXJuIHJlcXVpcmVzIDQgY29waWVzLCB3aGVyZWFzIHdpdGggYSBDT01QTEVYX0FERCBwYXR0 ZXJuDQorCSB0aGlzIG9ubHkgcmVxdWlyZXMgMiBjb3BpZXMgYW5kIHRoZSB0d28gc3RhdGVtZW50 IHdpbGwgYmUgdHJlYXRlZCBhcw0KKwkgaGFuZCB1bnJvbGxlZC4gIFRoYXQgbWVhbnMgdGhhdCB0 aGUgYW5hbHlzaXMgd29uJ3QgaGFwcGVuIGFzIGl0J2xsIGZpbmQNCisJIGEgbWlzbWF0Y2guICBT byB3ZSBkb24ndCBhbmFseXplIHRoZSBvbGQgc3RhdGVtZW50IGFuZCBpZiB3ZSBlbmQgdXANCisJ IG5lZWRpbmcgaXQsIGUuZy4gU0xQIGZhaWxzIHRoZW4gd2UgaGF2ZSB0byBxdWlja2x5IHJlLWFu YWx5emUgaXQuICAqLw0KKyAgICAgIFNUTVRfVklORk9fUkVMRVZBTlQgKGNhbGxfc3RtdF9pbmZv KSA9IHZlY3RfdXNlZF9pbl9zY29wZTsNCisgICAgICBTVE1UX1ZJTkZPX1NMUF9WRUNUX09OTFkg KGNhbGxfc3RtdF9pbmZvKSA9IHRydWU7DQorDQorICAgICAgLyogU2luY2Ugd2UgYXJlIHJlcGxh Y2luZyBhbGwgdGhlIHN0YXRlbWVudHMgaW4gdGhlIGdyb3VwIHdpdGggdGhlIHNhbWUNCisJIHRo aW5nIGl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlci4gIFNvIGp1c3Qgc2V0IGl0IGV2ZXJ5IHRpbWUg YSBuZXcgc3RtdA0KKwkgaXMgY3JlYXRlZC4gICovDQorICAgICAgU0xQX1RSRUVfUkVQUkVTRU5U QVRJVkUgKG5vZGUpID0gY2FsbF9zdG10X2luZm87DQorICAgICAgU0xQX1RSRUVfQ09ERSAobm9k ZSkgPSBDQUxMX0VYUFI7DQorICAgIH0NCisgIHJldHVybiBjYWxsX3N0bXQ7DQorfQ0KKw0KKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqDQorICogUGF0dGVybiBtYXRjaGluZyBkZWZpbml0aW9ucw0K KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovDQorDQorI2RlZmluZSBTTFBfUEFUVEVSTih4KSAmeDo6 Y3JlYXRlDQordmVjdF9wYXR0ZXJuX2RlY2xfdCBzbHBfcGF0dGVybnNbXQ0KK3sNCisgIC8qIEZv ciBsZWFzdCBhbW91bnQgb2YgYmFjay10cmFja2luZyBhbmQgbW9yZSBlZmZpY2llbnQgbWF0Y2hp bmcNCisgICAgIG9yZGVyIHBhdHRlcm5zIGZyb20gdGhlIGxhcmdlc3QgdG8gdGhlIHNtYWxsZXN0 LiAgRXNwZWNpYWxseSBpZiB0aGV5DQorICAgICBvdmVybGFwIGluIHdoYXQgdGhleSBjYW4gZGV0 ZWN0LiAgKi8NCisNCit9Ow0KKyN1bmRlZiBTTFBfUEFUVEVSTg0KKw0KK3NpemVfdCBudW1fX3Ns cF9wYXR0ZXJucyA9IHNpemVvZihzbHBfcGF0dGVybnMpL3NpemVvZih2ZWN0X3BhdHRlcm5fZGVj bF90KTsNCmRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LXNscC5jIGIvZ2NjL3RyZWUtdmVjdC1z bHAuYw0KaW5kZXggMzAwMzZlYzg0Yzc0YTBlNDI4Y2M2NjFlYWNmNTY1MjI0MDQ3ZjllMC4uYzAz ZmMyZmJlY2FkMWEyMjE5NTA0YWM5ZGFhZTc1NDk1ZTY5MTc3NSAxMDA2NDQNCi0tLSBhL2djYy90 cmVlLXZlY3Qtc2xwLmMNCisrKyBiL2djYy90cmVlLXZlY3Qtc2xwLmMNCkBAIC0xOTI5LDYgKzE5 MjksMTMgQEAgdmVjdF9wcmludF9zbHBfdHJlZSAoZHVtcF9mbGFnc190IGR1bXBfa2luZCwgZHVt cF9sb2NhdGlvbl90IGxvYywNCiAJZHVtcF9wcmludGYgKGR1bXBfa2luZCwgIiAldSIsIGopOw0K ICAgICAgIGR1bXBfcHJpbnRmIChkdW1wX2tpbmQsICIgfVxuIik7DQogICAgIH0NCisgIGlmIChT TFBfVFJFRV9SRVBSRVNFTlRBVElWRSAobm9kZSkNCisgICAgICAmJiBTVE1UX1ZJTkZPX1NMUF9W RUNUX09OTFkgKFNMUF9UUkVFX1JFUFJFU0VOVEFUSVZFIChub2RlKSkpDQorICAgIHsNCisgICAg ICBkdW1wX3ByaW50Zl9sb2MgKG1ldGFkYXRhLCB1c2VyX2xvYywgIlx0U0xQIE9ubHkgcGF0dGVy bjpcbiIpOw0KKyAgICAgIGR1bXBfcHJpbnRmX2xvYyAoZHVtcF9raW5kLCB1c2VyX2xvYywgIlx0 ICVHIiwNCisJCSAgICAgICBTVE1UX1ZJTkZPX1NUTVQgKFNMUF9UUkVFX1JFUFJFU0VOVEFUSVZF IChub2RlKSkpOw0KKyAgICB9DQogICBpZiAoU0xQX1RSRUVfTEFORV9QRVJNVVRBVElPTiAobm9k ZSkuZXhpc3RzICgpKQ0KICAgICB7DQogICAgICAgZHVtcF9wcmludGZfbG9jIChtZXRhZGF0YSwg dXNlcl9sb2MsICJcdGxhbmUgcGVybXV0YXRpb24geyIpOw0KQEAgLTIxODEsNiArMjE4OCwxNDcg QEAgZW51bSBzbHBfaW5zdGFuY2Vfa2luZCB7DQogICAgIHNscF9pbnN0X2tpbmRfY3Rvcg0KIH07 DQogDQorLyogSGVscGVyIGZ1bmN0aW9uIG9mIHZlY3RfbWF0Y2hfc2xwX3BhdHRlcm5zLg0KKw0K KyAgIEF0dGVtcHRzIHRvIG1hdGNoIHRoZSBnaXZlbiBwYXR0ZXJuIFBBVFRfSU5GTyBhZ2FpbnN0 IHRoZSBzbHAgdHJlZSByb290ZWQgaW4NCisgICBOT0RFIHVzaW5nIFZJTkZPLg0KKw0KKyAgIElm IG1hdGNoaW5nIGlzIHN1Y2Nlc3NmdWwgdGhlIHZhbHVlIGluIE5PREUgaXMgdXBkYXRlZCBhbmQg cmV0dXJuZWQsIGlmIG5vdA0KKyAgIHRoZW4gaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLiAgKi8N CisNCitzdGF0aWMgYm9vbA0KK3ZlY3RfbWF0Y2hfc2xwX3BhdHRlcm5zXzIgKHNscF90cmVlICpy ZWZfbm9kZSwgdmVjX2luZm8gKnZpbmZvLA0KKwkJCSAgIHZlY3RfcGF0dGVybl9kZWNsX3QgcGF0 dF9mbiwgaGFzaF9zZXQ8c2xwX3RyZWU+ICp2aXNpdGVkKQ0KK3sNCisgIHVuc2lnbmVkIGk7DQor ICBzbHBfdHJlZSBub2RlID0gKnJlZl9ub2RlOw0KKyAgYm9vbCBmb3VuZF9wID0gZmFsc2UsIGZv dW5kX3JlY19wID0gZmFsc2U7DQorICBpZiAoIW5vZGUgfHwgdmlzaXRlZC0+Y29udGFpbnMgKG5v ZGUpKQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQorICAvKiBQZXJmb3JtIHJlY3Vyc2l2ZSBtYXRj aGluZywgaXQncyBpbXBvcnRhbnQgdG8gZG8gdGhpcyBhZnRlciBtYXRjaGluZyB0aGluZ3MNCisg ICAgIGluIHRoZSBjdXJyZW50IG5vZGUgYXMgdGhlIG1hdGNoZXMgaGVyZSBtYXkgcmUtb3JkZXIg dGhlIG5vZGVzIGJlbG93IGl0Lg0KKyAgICAgQXMgc3VjaCB0aGUgcGF0dGVybiB0aGF0IG5lZWRz IHRvIGJlIHN1YnNlcXVlbnRseSBtYXRjaCBtYXkgY2hhbmdlLiAgKi8NCisNCisgIGlmIChTTFBf VFJFRV9DSElMRFJFTiAobm9kZSkuZXhpc3RzICgpKSB7DQorICAgIHNscF90cmVlIGNoaWxkOw0K KyAgICBGT1JfRUFDSF9WRUNfRUxUIChTTFBfVFJFRV9DSElMRFJFTiAobm9kZSksIGksIGNoaWxk KQ0KKyAgICAgIGZvdW5kX3JlY19wIHw9IHZlY3RfbWF0Y2hfc2xwX3BhdHRlcm5zXzIgKCZTTFBf VFJFRV9DSElMRFJFTiAobm9kZSlbaV0sDQorCQkJCQkJdmluZm8sIHBhdHRfZm4sIHZpc2l0ZWQp Ow0KKyAgfQ0KKw0KKyAgdmVjdF9wYXR0ZXJuICpwYXR0ZXJuID0gcGF0dF9mbiAocmVmX25vZGUs IHZpbmZvKTsNCisNCisgIGlmIChwYXR0ZXJuLT5tYXRjaGVzICgpKQ0KKyAgICB7DQorICAgICAg dHJlZSB2ZWN0eXBlID0gU0xQX1RSRUVfVkVDVFlQRSAobm9kZSk7DQorICAgICAgaWYgKGR1bXBf ZW5hYmxlZF9wICgpKQ0KKwlkdW1wX3ByaW50Zl9sb2MgKE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9u LA0KKwkJCSAiRm91bmQgJXMgcGF0dGVybiBpbiBTTFAgdHJlZVxuIiwNCisJCQkgcGF0dGVybi0+ Z2V0X25hbWUgKCkpOw0KKw0KKyAgICAgIGlmIChwYXR0ZXJuLT5pc19vcHRhYl9zdXBwb3J0ZWRf cCAodmVjdHlwZSwgT1BUSU1JWkVfRk9SX1NQRUVEKSkNCisJew0KKwkgIGlmIChkdW1wX2VuYWJs ZWRfcCAoKSkNCisJICAgIGR1bXBfcHJpbnRmX2xvYyAoTVNHX05PVEUsIHZlY3RfbG9jYXRpb24s DQorCQkJICAgICAiVGFyZ2V0IHN1cHBvcnRzICVzIHZlY3Rvcml6YXRpb24gd2l0aCBtb2RlICVU XG4iLA0KKwkJCSAgICAgaW50ZXJuYWxfZm5fbmFtZSAocGF0dGVybi0+Z2V0X2lmbiAoKSksIHZl Y3R5cGUpOw0KKw0KKwkgIGZvdW5kX3AgPSB0cnVlOw0KKwl9DQorICAgICAgZWxzZQ0KKwl7DQor CSAgaWYgKGR1bXBfZW5hYmxlZF9wICgpKQ0KKwkgICAgew0KKwkgICAgICBpZiAoIXZlY3R5cGUp DQorCQlkdW1wX3ByaW50Zl9sb2MgKE1TR19NSVNTRURfT1BUSU1JWkFUSU9OLCB2ZWN0X2xvY2F0 aW9uLA0KKwkJCQkgIlRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IHZlY3RvciB0eXBlIGZvciAlVFxu IiwNCisJCQkJIFNMUF9UUkVFX0RFRl9UWVBFIChub2RlKSk7DQorCSAgICAgIGVsc2UNCisJCWR1 bXBfcHJpbnRmX2xvYyAoTVNHX01JU1NFRF9PUFRJTUlaQVRJT04sIHZlY3RfbG9jYXRpb24sDQor CQkJCSAiVGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgJXMgZm9yIHZlY3RvciB0eXBlICINCisJCQkJ ICIlVFxuIiwgaW50ZXJuYWxfZm5fbmFtZSAocGF0dGVybi0+Z2V0X2lmbiAoKSksDQorCQkJCSB2 ZWN0eXBlKTsNCisJICAgIH0NCisgICAgICAgICAgZm91bmRfcCA9IGZhbHNlOw0KKwl9DQorICAg IH0NCisNCisgIGlmIChmb3VuZF9wKQ0KKyAgICB7DQorICAgICAgLyogRmluZCB3aGljaCBub2Rl cyBzaG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHRoZSBuZXcgbm9kZS4gICovDQorICAgICAgaWYg KCFwYXR0ZXJuLT52YWxpZGF0ZV9wICgpKQ0KKwl7DQorCSAgaWYgKGR1bXBfZW5hYmxlZF9wICgp KQ0KKwkgICAgZHVtcF9wcmludGZfbG9jIChNU0dfTUlTU0VEX09QVElNSVpBVElPTiwgdmVjdF9s b2NhdGlvbiwNCisJCQkgICAgICJ0cmFuc2Zvcm1hdGlvbiBmb3IgJXMgbm90IHZhbGlkIGR1ZSB0 byBwb3N0ICINCisJCQkgICAgICJjb25kaXRpb25cbiIsDQorCQkJICAgICBpbnRlcm5hbF9mbl9u YW1lIChwYXR0ZXJuLT5nZXRfaWZuICgpKSk7DQorCSAgZm91bmRfcCA9IGZhbHNlOw0KKwl9DQor ICAgIH0NCisNCisgIGlmIChmb3VuZF9wKQ0KKyAgICB7DQorICAgICAgaWYgKGR1bXBfZW5hYmxl ZF9wICgpKQ0KKwlkdW1wX3ByaW50Zl9sb2MgKE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9uLCAiQ3Jl YXRpbmcgdmVjIHBhdHRlcm5zXG4iKTsNCisNCisgICAgICBnY2FsbCogY2FsbF9zdG10ID0gcGF0 dGVybi0+YnVpbGQgKCk7DQorICAgICAgaWYgKGR1bXBfZW5hYmxlZF9wICgpKQ0KKwlkdW1wX3By aW50Zl9sb2MgKE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9uLCAiXHQgJXAgc3RtdDogJUciLA0KKwkJ CSBub2RlLCBjYWxsX3N0bXQpOw0KKyAgICB9DQorDQorICBkZWxldGUgcGF0dGVybjsNCisgIHJl dHVybiBmb3VuZF9wIHwgZm91bmRfcmVjX3A7DQorfQ0KKw0KKy8qIEFwcGxpZXMgcGF0dGVybiBt YXRjaGluZyB0byB0aGUgZ2l2ZW4gU0xQIHRyZWUgcm9vdGVkIGluIFJFRl9OT0RFIHVzaW5nDQor ICAgdmVjX2luZm8gVklORk8uDQorDQorICAgVGhlIG1vZGlmaWVkIHRyZWUgaXMgcmV0dXJuZWQu ICBQYXR0ZXJucyBhcmUgdHJpZWQgaW4gb3JkZXIgYW5kIG11bHRpcGxlDQorICAgcGF0dGVybnMg bWF5IG1hdGNoLiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK3ZlY3RfbWF0Y2hfc2xwX3BhdHRlcm5z IChzbHBfdHJlZSAqcmVmX25vZGUsIHZlY19pbmZvICp2aW5mbykNCit7DQorICBEVU1QX1ZFQ1Rf U0NPUEUgKCJ2ZWN0X21hdGNoX3NscF9wYXR0ZXJucyIpOw0KKyAgYm9vbCBmb3VuZF9wID0gZmFs c2U7DQorDQorICBpZiAoZHVtcF9lbmFibGVkX3AgKCkpDQorICAgIHsNCisgICAgICBkdW1wX3By aW50Zl9sb2MgKE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9uLCAiLS0gYmVmb3JlIHBhdHQgbWF0Y2gg LS1cbiIpOw0KKyAgICAgIHZlY3RfcHJpbnRfc2xwX2dyYXBoIChNU0dfTk9URSwgdmVjdF9sb2Nh dGlvbiwgKnJlZl9ub2RlKTsNCisgICAgICBkdW1wX3ByaW50Zl9sb2MgKE1TR19OT1RFLCB2ZWN0 X2xvY2F0aW9uLCAiLS0gZW5kIHBhdHQgLS1cbiIpOw0KKyAgICB9DQorDQorICBoYXNoX3NldDxz bHBfdHJlZT4gKnZpc2l0ZWQgPSBuZXcgaGFzaF9zZXQ8c2xwX3RyZWU+ICgpOw0KKyAgZm9yICh1 bnNpZ25lZCB4ID0gMDsgeCA8IG51bV9fc2xwX3BhdHRlcm5zOyB4KyspDQorICAgIHsNCisgICAg ICB2aXNpdGVkLT5lbXB0eSAoKTsNCisgICAgICBmb3VuZF9wIHw9IHZlY3RfbWF0Y2hfc2xwX3Bh dHRlcm5zXzIgKHJlZl9ub2RlLCB2aW5mbywgc2xwX3BhdHRlcm5zW3hdLA0KKwkJCQkJICAgIHZp c2l0ZWQpOw0KKyAgICB9DQorDQorICBkZWxldGUgdmlzaXRlZDsNCisNCisgIC8qIFRPRE86IFJl bW92ZSBpbiBmaW5hbCB2ZXJzaW9uLCBvbmx5IGhlcmUgZm9yIGdlbmVyYXRpbmcgZGVidWcgZG90 IGdyYXBocw0KKwkgICBmcm9tIFNMUCB0cmVlLiAgKi8NCisNCisgIGlmIChkdW1wX2VuYWJsZWRf cCAoKSkNCisgICAgew0KKyAgICAgIGR1bXBfcHJpbnRmX2xvYyAoTVNHX05PVEUsIHZlY3RfbG9j YXRpb24sICItLSBzdGFydCBkb3QgLS1cbiIpOw0KKyAgICAgIHZlY3RfcHJpbnRfc2xwX2dyYXBo IChNU0dfTk9URSwgdmVjdF9sb2NhdGlvbiwgKnJlZl9ub2RlKTsNCisgICAgICBkdW1wX3ByaW50 Zl9sb2MgKE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9uLCAiLS0gZW5kIGRvdCAtLVxuIik7DQorICAg IH0NCisNCisgIHJldHVybiBmb3VuZF9wOw0KK30NCisNCisvKiBBbmFseXplIGFuIFNMUCBpbnN0 YW5jZSBzdGFydGluZyBmcm9tIGEgZ3JvdXAgb2YgZ3JvdXBlZCBzdG9yZXMuICBDYWxsDQorICAg dmVjdF9idWlsZF9zbHBfdHJlZSB0byBidWlsZCBhIHRyZWUgb2YgcGFja2VkIHN0bXRzIGlmIHBv c3NpYmxlLg0KKyAgIFJldHVybiBGQUxTRSBpZiBpdCdzIGltcG9zc2libGUgdG8gU0xQIGFueSBz dG10IGluIHRoZSBsb29wLiAgKi8NCisNCiBzdGF0aWMgYm9vbA0KIHZlY3RfYW5hbHl6ZV9zbHBf aW5zdGFuY2UgKHZlY19pbmZvICp2aW5mbywNCiAJCQkgICBzY2FsYXJfc3RtdHNfdG9fc2xwX3Ry ZWVfbWFwX3QgKmJzdF9tYXAsDQpAQCAtMjY2MSw2ICsyODA5LDEwIEBAIHZlY3RfYW5hbHl6ZV9z bHAgKHZlY19pbmZvICp2aW5mbywgdW5zaWduZWQgbWF4X3RyZWVfc2l6ZSkNCiAJCQkJICAgbWF4 X3RyZWVfc2l6ZSk7DQogICAgIH0NCiANCisgIC8qIFNlZSBpZiBhbnkgcGF0dGVybnMgY2FuIGJl IGZvdW5kIGluIHRoZSBTTFAgdHJlZS4gICovDQorICBGT1JfRUFDSF9WRUNfRUxUIChMT09QX1ZJ TkZPX1NMUF9JTlNUQU5DRVMgKHZpbmZvKSwgaSwgaW5zdGFuY2UpDQorICAgIHZlY3RfbWF0Y2hf c2xwX3BhdHRlcm5zICgmU0xQX0lOU1RBTkNFX1RSRUUgKGluc3RhbmNlKSwgdmluZm8pOw0KKw0K ICAgLyogVGhlIG1hcCBrZWVwcyBhIHJlZmVyZW5jZSBvbiBTTFAgbm9kZXMgYnVpbHQsIHJlbGVh c2UgdGhhdC4gICovDQogICBmb3IgKHNjYWxhcl9zdG10c190b19zbHBfdHJlZV9tYXBfdDo6aXRl cmF0b3IgaXQgPSBic3RfbWFwLT5iZWdpbiAoKTsNCiAgICAgICAgaXQgIT0gYnN0X21hcC0+ZW5k ICgpOyArK2l0KQ0KZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3Rvcml6ZXIuaCBiL2djYy90cmVl LXZlY3Rvcml6ZXIuaA0KaW5kZXggNGJkNDU0Y2ZiMTg1ZDcwMzY4NDNmYzcxNDBiMDczZjUyNWIy ZWM2YS4uYjgxMzUwOGQzY2VhZjRjNTRmNjEyYmMxMGY5YWE0MmZmZTBjZTBkZCAxMDA2NDQNCi0t LSBhL2djYy90cmVlLXZlY3Rvcml6ZXIuaA0KKysrIGIvZ2NjL3RyZWUtdmVjdG9yaXplci5oDQpA QCAtMjcsNiArMjcsNyBAQCB0eXBlZGVmIGNsYXNzIF9zdG10X3ZlY19pbmZvICpzdG10X3ZlY19p bmZvOw0KICNpbmNsdWRlICJ0cmVlLWhhc2gtdHJhaXRzLmgiDQogI2luY2x1ZGUgInRhcmdldC5o Ig0KICNpbmNsdWRlICJhbGxvYy1wb29sLmgiDQorI2luY2x1ZGUgImludGVybmFsLWZuLmgiDQog DQogDQogLyogVXNlZCBmb3IgbmFtaW5nIG9mIG5ldyB0ZW1wb3Jhcmllcy4gICovDQpAQCAtMTk5 NSw0ICsxOTk2LDg2IEBAIHZvaWQgdmVjdF9mcmVlX2xvb3BfaW5mb19hc3N1bXB0aW9ucyAoY2xh c3MgbG9vcCAqKTsNCiBnaW1wbGUgKnZlY3RfbG9vcF92ZWN0b3JpemVkX2NhbGwgKGNsYXNzIGxv b3AgKiwgZ2NvbmQgKipjb25kID0gTlVMTCk7DQogYm9vbCB2ZWN0X3N0bXRfZG9taW5hdGVzX3N0 bXRfcCAoZ2ltcGxlICosIGdpbXBsZSAqKTsNCiANCisvKiBTTFAgUGF0dGVybiBtYXRjaGVyIHR5 cGVzLCB0cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmMuICAqLw0KKw0KK2VudW0gX2NvbXBsZXhfb3Bl cmF0aW9uIDogdW5zaWduZWQ7DQorDQorY2xhc3MgdmVjdF9wYXR0ZXJuX21hdGNoDQorew0KKyAg cHVibGljOg0KKyAgICB2aXJ0dWFsIGdjYWxsICpidWlsZCAoKSA9IDA7DQorICAgIHZpcnR1YWwg aW50ZXJuYWxfZm4gZ2V0X0lGTiAoKSA9IDA7DQorICAgIHZpcnR1YWwgdWludDhfdCBnZXRfYXJp dHkgKCkgPSAwOw0KKyAgICB2aXJ0dWFsIH52ZWN0X3BhdHRlcm5fbWF0Y2ggKCkge307DQorfTsN CisNCitjbGFzcyB2ZWN0X3BhdHRlcm4NCit7DQorICBwcm90ZWN0ZWQ6DQorICAgIHVpbnQ4X3Qg bV9hcml0eTsNCisgICAgdWludDhfdCBtX251bV9hcmdzOw0KKyAgICBpbnRlcm5hbF9mbiBtX2lm bjsNCisgICAgc2xwX3RyZWUgKm1fbm9kZTsNCisgICAgdmVjX2luZm8gKm1fdmluZm87DQorICAg IHZlY3RfcGF0dGVybl9tYXRjaCogbV9tYXRjaDsNCisgICAgdmVjPHNscF90cmVlPiBtX29wczsN CisgICAgdmVjdF9wYXR0ZXJuIChzbHBfdHJlZSAqbm9kZSwgdmVjX2luZm8gKnZpbmZvKQ0KKyAg ICB7DQorICAgICAgdGhpcy0+bV9pZm4gPSBJRk5fTEFTVDsNCisgICAgICB0aGlzLT5tX25vZGUg PSBub2RlOw0KKyAgICAgIHRoaXMtPm1fdmluZm8gPSB2aW5mbzsNCisgICAgICB0aGlzLT5tX21h dGNoID0gTlVMTDsNCisgICAgICB0aGlzLT5tX29wcy5jcmVhdGUgKDApOw0KKyAgICB9DQorDQor ICBwdWJsaWM6DQorICAgIHN0YXRpYyB2ZWN0X3BhdHRlcm4qIGNyZWF0ZSAoc2xwX3RyZWUgKm5v ZGUsIHZlY19pbmZvICp2aW5mbyk7DQorICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzICgpID0gMDsN CisgICAgdmlydHVhbCBib29sIG1hdGNoZXMgKGVudW0gX2NvbXBsZXhfb3BlcmF0aW9uLCB2ZWM8 c2xwX3RyZWU+KQ0KKyAgICB7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorDQorICAg IHZpcnR1YWwgY29uc3QgY2hhciogZ2V0X25hbWUgKCkgPSAwOw0KKyAgICB2aXJ0dWFsIH52ZWN0 X3BhdHRlcm4gKCkNCisgICAgew0KKwl0aGlzLT5tX29wcy5yZWxlYXNlICgpOw0KKyAgICB9DQor DQorICAgIHZpcnR1YWwgZ2NhbGwgKmJ1aWxkICgpDQorICAgIHsNCisgICAgICBpZiAodGhpcy0+ bV9tYXRjaCA9PSBOVUxMKQ0KKyAgICAgICByZXR1cm4gTlVMTDsNCisNCisgICAgICByZXR1cm4g dGhpcy0+bV9tYXRjaC0+YnVpbGQgKCk7DQorICAgIH0NCisNCisgICAgdmlydHVhbCBib29sIHZh bGlkYXRlX3AgKCkNCisgICAgew0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICB9DQorDQorICAg IHZpcnR1YWwgdWludDhfdCBnZXRfYXJpdHkgKCkNCisgICAgew0KKyAgICAgIHJldHVybiB0aGlz LT5tX2FyaXR5Ow0KKyAgICB9DQorDQorICAgIHZpcnR1YWwgYm9vbCBpc19vcHRhYl9zdXBwb3J0 ZWRfcCAodHJlZSB2ZWN0eXBlLCBvcHRpbWl6YXRpb25fdHlwZSBvcHRfdHlwZSkNCisgICAgew0K KyAgICAgIGlmICghdmVjdHlwZSkNCisgICAgICAgIHJldHVybiBmYWxzZTsNCisNCisgICAgICBy ZXR1cm4gZGlyZWN0X2ludGVybmFsX2ZuX3N1cHBvcnRlZF9wICh0aGlzLT5tX2lmbiwgdmVjdHlw ZSwgb3B0X3R5cGUpOw0KKyAgICB9DQorDQorICAgIHZpcnR1YWwgaW50ZXJuYWxfZm4gZ2V0X2lm biAoKQ0KKyAgICB7DQorICAgICAgcmV0dXJuIHRoaXMtPm1faWZuOw0KKyAgICB9DQorfTsNCisN Cit0eXBlZGVmIHZlY3RfcGF0dGVybiogKCp2ZWN0X3BhdHRlcm5fZGVjbF90KSAoc2xwX3RyZWUg KiwgdmVjX2luZm8gKik7DQorZXh0ZXJuIHZlY3RfcGF0dGVybl9kZWNsX3Qgc2xwX3BhdHRlcm5z W107DQorZXh0ZXJuIHNpemVfdCBudW1fX3NscF9wYXR0ZXJuczsNCisNCiAjZW5kaWYgIC8qIEdD Q19UUkVFX1ZFQ1RPUklaRVJfSCAgKi8NCg0K --_002_VI1PR08MB53250748BBC032014BB94CF0FF110VI1PR08MB5325eurp_--