From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2D25C4321E for ; Mon, 5 Dec 2022 13:54:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231800AbiLENy3 (ORCPT ); Mon, 5 Dec 2022 08:54:29 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231205AbiLENy2 (ORCPT ); Mon, 5 Dec 2022 08:54:28 -0500 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2041.outbound.protection.outlook.com [40.107.20.41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC0B9E6 for ; Mon, 5 Dec 2022 05:54:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TPwiql01nOxN4b+buE+VJROvlsDNKEC4kW+qxfLIyJlds1TbP51u/mtvu3OUVz6BP9FN7suF2/gU2vLBXwy/CYwDWmQJdV0UiLMfp/9gQ4shK1WbzwHF7wI3a5eVJHbj35ZMijZ0CuYkXxTiZeGTGmD/iUJZbBvCarIWq7lhpF2mntxoHDQx/rZ899750JoroqncurMgdpQOlLKROKs/tYyysmdxTuPa90jKT5ZH+pUPzn/1LglRaTzC1WwF2FoCoZ5QM3TeMMDLgqO4gxtzwJrupBo1AE3/roBmEqUVm7T+GFyei8nF8pMH9DcHXsCfTbKtqp8nCVpUHStnbWa19w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KDSA6Mce/SNuquIS+637jM0M1BscNkrMUregwc0RFUI=; b=dM1lRjgiuosr9nMe9RGfV9nCaRfT8FoTtCgXR+e5YAm6D5uIgclF1iXgYnU7NLGr98YUayREL1qTA2yToFa8htL/6p3gKzXCZ4CY7DGEUjR3w3+sHp7KNYXV13sVWFkDOlrOFezFCO8ej8z2gX7Bju7IXzjDin1AGmDyvHgiIQ/FRK7vCeQl3xcKNVgE4x4FoEkBnHhTs0dWuxS+17vERrt1WOEKf1+JtWy0/kx9noJ+/y3m1yLA/SFP6CL7n1QBZNwTc9lWNX3RGHIkDamtsPo91MNUDVlTOgB3aG3+YAXNHzJZUof0EiE1KA+56xB2ey0UO72eRpTcHOdn7JKYJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KDSA6Mce/SNuquIS+637jM0M1BscNkrMUregwc0RFUI=; b=nYcsamVE2/TrMaTUVNA2ynOU5vHBWYzR8t09p+oVI/7Ry8tZm2f2xbgJHp5OfIiRYR1a3QDdnzTo9mgm2K/DPfL9f3cA5S/375LWApdsE9KUSQpRk/aRt0sFJRIwX2a2hacwjHX8+sgg7sqbRg0LFq/DVJLOh9J7nRlVEd4PAr8= Received: from HE1PR07MB3321.eurprd07.prod.outlook.com (2603:10a6:7:2e::16) by DU2PR07MB9487.eurprd07.prod.outlook.com (2603:10a6:10:490::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.11; Mon, 5 Dec 2022 13:54:23 +0000 Received: from HE1PR07MB3321.eurprd07.prod.outlook.com ([fe80::22cd:6278:c974:5e27]) by HE1PR07MB3321.eurprd07.prod.outlook.com ([fe80::22cd:6278:c974:5e27%7]) with mapi id 15.20.5880.013; Mon, 5 Dec 2022 13:54:23 +0000 From: =?utf-8?B?UGVyIFN1bmRzdHLDtm0gWFA=?= To: "eddyz87@gmail.com" , "andrii.nakryiko@gmail.com" CC: "olsajiri@gmail.com" , "bpf@vger.kernel.org" Subject: Re: Sv: Bad padding with bpftool btf dump .. format c Thread-Topic: Sv: Bad padding with bpftool btf dump .. format c Thread-Index: AQHY+zjUZPX3IHWbF0SkGbqCbLQ5N65En92AgAAkm4aAACrWgIAIdcWAgAjXJYCAAHJFAIABdwyQgAAGXKmABz/PgA== Date: Mon, 5 Dec 2022 13:54:23 +0000 Message-ID: <85f83c333f5355c8ac026f835b18d15060725fcb.camel@ericsson.com> References: <9cfc736f2b45422a50a21b90b94de04b19836682.camel@ericsson.com> <02cbc397cf2ed051bf3f79bbe8e1be07fadb3f10.camel@gmail.com> In-Reply-To: Accept-Language: sv-SE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: HE1PR07MB3321:EE_|DU2PR07MB9487:EE_ x-ms-office365-filtering-correlation-id: d1e84018-0655-4dbf-7482-08dad6c8371e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pb0IM8JPV0aM5d8fbbIKqlC4CIjSZViReoGX0a2oyghA0FxbiPYnADWvgpCi2C99JUCyHpqW4sYHcE6qtfAHaivqlCiyMZUbHspgNIEA9yfVwh4prBJVjPlAe/8Nx2vywJ8NPMjNO5+V+CHDKdj1WcSVhazkCl6ouSFWYKOrFbeAqAxuahvn/Sovv+Fb+12CIGOD2OGVhevfw940bIgyRbNCrmvQs5Lvl/ejWlnWO9/d4iMkbZo/0YvZICxBKbY25zTE4Uwps0GPVB5kgDvvMQWgkhHnmRtlCy6VGBAS361ZX5sjdy9XW1dm8KUH20JDxSqUGBt7q8vRXPFEPiQOpGL01PJQZ2iJPiOXDXWz2L9tJ4W8n0QAzZqh9cVl11HyGQvgQHvznZE4WDh+kpa/IaROwqtJmnX1a5DmxXKiELQPOTPFpFszdH1N2M10A3td++KuGabuvzM3Ir8PEM7YJ7OxG1XqfYk0L25ulEFVClOpT7caA8vOrt96OJ34Kl4rGMTwFShb+OZl5R2lPhchiEoigsgI3VwpF3dFNudKvINZX2Pr4HlY6dRTzYxwAiz0G0mBni7tMl3ZKgq/pwPCwnKlATvtaTkcXOjPONr/x9MQOKHyPOPnMZisncPPX5EnQu+iiREcnk/BjXB/VKh2mi2wzhBEyUiwzwcCEdVrfAtA6PvM68lN1xJd+j2ZipwL/42phvQBWm/wknUNTnA/PczNWlXb0eqOxS33iSyirqfDZbWQ976rfzdhKAafbblp55CmGzSTTjDkfbvR0ZulCw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR07MB3321.eurprd07.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(396003)(366004)(376002)(39860400002)(346002)(451199015)(38070700005)(30864003)(66899015)(4001150100001)(2906002)(5660300002)(82960400001)(66574015)(83380400001)(122000001)(38100700002)(86362001)(26005)(2616005)(8936002)(6506007)(6512007)(966005)(53546011)(110136005)(186003)(54906003)(71200400001)(478600001)(6486002)(91956017)(64756008)(316002)(76116006)(66946007)(66446008)(8676002)(41300700001)(4326008)(66476007)(66556008)(85182001)(36756003)(85202003)(129723003)(21314003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MHI0aW5lWWc5cjZrQXJXRnAyV3Z3TjJINDk4bUVJVlZZUmhnY0VRK2EvVUlG?= =?utf-8?B?NnVwL3pKS0M4cGZZWE0wWUV0bHp2OWloWHhrRmpxbUgraVpHOU9za2w0N1N1?= =?utf-8?B?VkMwVmdUVE03SzJQM2duUXhXZUw5YVBZS2NsRm1WMGJmbVdjenF2V0IrVUdX?= =?utf-8?B?c210RmQ3YWZXQUFQNEh4QmM2emFyMU90dlVjNVVPTHV6MTRKZEdlYkQ5dGUy?= =?utf-8?B?MHljbDhqd0hzQ09VYjUyR21VQVd4SDlWanQ2RG5pbXl3ODV1Z05Ob3g2K0pS?= =?utf-8?B?cEg2d2RoOVY0WGVwL21jT3c4UlB5ZHZ5WlRyem1JTGpjTERZMWYvL0daMVdr?= =?utf-8?B?UTdQV2hxNzBCcDh1TUhUUGpnOGZVK3g3dldnK2gvTjl1MkJyWHdnUS9lOWhi?= =?utf-8?B?Ymp4R1BPa04rcDAxNTVKU3IySHRvU1BGbmRqbkpVaEdNV3Z4akkyVzZoQXdW?= =?utf-8?B?ZDhBZmI4R3J1MjY3QVVRTWR6UU8yT3R1NWJnZlluM2pncHpzQmVyTGZPMmVz?= =?utf-8?B?KzM2ZFdaeFJhKzVTa1prQW43aEJ2RUpkMFRxM2FXaUNxUUdKUWkrWmV4VXd2?= =?utf-8?B?b1hxZXc0bnFKS051Ulk0Rng2NE9ISGQ1WjNWK2Q5VGtRYjZQc2VWLzJYTkRG?= =?utf-8?B?Mmg3b0c4QUxhMCtFT1ZWaXN3ZTNKOEprKzNJZG5TYXpzVDJ5VVdQTTJzck9o?= =?utf-8?B?NEJuRXBBdFFwWWViV3g4aFRLVndFMUpydzF0d3J6RWlDZTgxa0RjVU1UVFJv?= =?utf-8?B?K2V2STVnRDVYVGVXaTZ1bkhsSm1Td2MrVnFTcUQzU1RKaEFLT1RlNXJ3eXZ4?= =?utf-8?B?UHIxTEErMVlubCtISnFmdWNwYWUzRFFoWFhFa1JydTFpVFgxSW0zaFFaOHox?= =?utf-8?B?ZlhrbVN5SDdadzM4NDJXVWthM3hUYitvTWlWR3NpRlJZT0x6bjRJTm8vT0hH?= =?utf-8?B?enZkdnMrdFhDTXhwdi9UeVRiU1pwSDVYUDEzK3dTTVR1TFVLZ2QrZTlySmNW?= =?utf-8?B?V2IxeldscjlNQ2ZEMnNTQURpSEMvak5jejViYWhzTTdOM1hiRGxzRkY3TTlO?= =?utf-8?B?eHJIaTgxQmdKV3piZFFNMmoySnU0T09lYm1YTEJBM3g3UUNLc2FuSDNiQkxm?= =?utf-8?B?UWFteGFmSjhTRG9DbnBPQml1aGpmeFFMejdXQ3ZwVVBCbGpZejk5WXlHaUgr?= =?utf-8?B?NStTWjNrdkE5V2JJSWQzYkJXQmd2NllkVXo3ZXA3TkRCeFNTQXZudTFSVTkz?= =?utf-8?B?OHl5eVNQdEE0RDNEaXhGOGU5Z2tyL3FNakNBZnpaYnZuOEM4SHdTR3hSS1JQ?= =?utf-8?B?dTJiUmhzZTFoaHkzQUZCUndBKzZ5Ym9RQTNlN1ZaNmY0MUxhY0luUHd0YWdB?= =?utf-8?B?WHplOHFMZGUwU0R6MUpYTUhscExEbkUzNk5La2s5ZWc0b3FQWjNVTFBXNmg2?= =?utf-8?B?d1B4cXVyT1pGUk1ON055Q015UjFqSXY4S04zTXo3WHJsL3lSb1lJWS9VUU1o?= =?utf-8?B?V2xYN01tQ1NTU2psRjU4aTVnRVVoSnhIc3ovUkJFYzQwVXM5MjgwcmZpTGxh?= =?utf-8?B?YXhNSnpibGtHMFlzNThHT01UU2tkZmQwZE0vK0Z3R3I0RDIyblM2aTA0bjJ0?= =?utf-8?B?eDhQQmRKOHZWUlpoTUJsdlFxZVUzZUdza25yL1dZTGdNK2NTQTh3cTZnVVla?= =?utf-8?B?V1EzZGRUbVlTRzhTMVBnVjJQTUxQOFVyY0pMdGljM0VMSTFjdzAzU1hYbHdH?= =?utf-8?B?TzlDdS8rL1pvNEwrZWRDcUVmSDgrY0dyMGpuVmZYT0toemsyWkZNOHM0YVBk?= =?utf-8?B?dE5Zd2tYR3BWWWxiVkYybngyY1ZjZktaa2NiSU9SOVZhTWlGRlh5T25Td1Z6?= =?utf-8?B?MVhWZ0hEcjgzaXhEbmx3bW5NdFg4SjFlQ2xXb1drRHljY01MM0Yyc3V5R3hn?= =?utf-8?B?ZTl2MFcvdVc2YmhySGRrSkx4UHVaNGdMLzRoQ1MwRVhML2p0YkhjQ3lxK0tu?= =?utf-8?B?dlE5SkNOeXpTOHVEdjY0eDhQLzlGQTNKWDRWb1VmNkFFZWhIbDIzUlJDUmcy?= =?utf-8?B?K2l1OTVuaG9vOWRmZFhuNnR3MURJRzZ1QkFoZHpVU2FBVzY5L2MzRklNTCt4?= =?utf-8?B?QWJDUFBkREhPZlpnLytDNlJWcWx4TG5OeWRZejNOQVJGRVdJVTdlQVZMY2pk?= =?utf-8?B?a1E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB3321.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1e84018-0655-4dbf-7482-08dad6c8371e X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2022 13:54:23.2580 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: clqU21hOj6PSDieMTOdOTBc+k0G80C2UmRvkIs9CH6zBbpE+bdz4m7xUJKStz7/LRMLnPVGZ/d4D773YjJCmvE5rVu6iVR5swUB1MUHbNO0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR07MB9487 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org T24gV2VkLCAyMDIyLTExLTMwIGF0IDE1OjExIC0wODAwLCBBbmRyaWkgTmFrcnlpa28gd3JvdGU6 DQo+IE9uIFdlZCwgTm92IDMwLCAyMDIyIGF0IDM6MDYgUE0gRWR1YXJkIFppbmdlcm1hbiA8ZWRk eXo4N0BnbWFpbC5jb20+IHdyb3RlOg0KPiA+IE9uIFdlZCwgMjAyMi0xMS0zMCBhdCAxNDo0OSAt MDgwMCwgQW5kcmlpIE5ha3J5aWtvIHdyb3RlOg0KPiA+ID4gT24gVHVlLCBOb3YgMjksIDIwMjIg YXQgNjoyOSBQTSBFZHVhcmQgWmluZ2VybWFuIDxlZGR5ejg3QGdtYWlsLmNvbT4gd3JvdGU6DQo+ ID4gPiA+IE9uIFR1ZSwgMjAyMi0xMS0yOSBhdCAxNjoyNyAtMDgwMCwgQW5kcmlpIE5ha3J5aWtv IHdyb3RlOg0KPiA+ID4gPiA+IE9uIFR1ZSwgTm92IDI5LCAyMDIyIGF0IDk6MzggQU0gRWR1YXJk IFppbmdlcm1hbiA8ZWRkeXo4N0BnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gT24gV2Vk LCAyMDIyLTExLTIzIGF0IDE4OjM3IC0wODAwLCBBbmRyaWkgTmFrcnlpa28gd3JvdGU6DQo+ID4g PiA+ID4gPiA+IE9uIEZyaSwgTm92IDE4LCAyMDIyIGF0IDk6MjYgQU0gUGVyIFN1bmRzdHLDtm0g WFANCj4gPiA+ID4gPiA+ID4gPHBlci54cC5zdW5kc3Ryb21AZXJpY3Nzb24uY29tPiB3cm90ZToN Cj4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPT09PT09PT09PT09IFZhbmls bGEgPT09PT09PT09PQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdHJ1Y3QgZm9vIHsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gICAgIHN0cnVjdCB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgaW50 ICBhYTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICBjaGFyIGFiOw0KPiA+ID4gPiA+ID4g PiA+ID4gPiAgICAgfSBhOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgbG9uZyAgIDo2NDsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gICAgIGludCAgICA6NDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAg IGNoYXIgICBiOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgc2hvcnQgIGM7DQo+ID4gPiA+ID4g PiA+ID4gPiA+IH07DQo+ID4gPiA+ID4gPiA+ID4gPiA+IG9mZnNldG9mKHN0cnVjdCBmb28sIGMp PTE4DQo+ID4gPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA9PT09PT09PT09 PT0gQ3VzdG9tID09PT09PT09PT0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gc3RydWN0IGZvbyB7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgbG9uZzogODsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g ICAgICAgICBsb25nOiA2NDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICBsb25nOiA2NDsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgICBjaGFyIGI7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICAgICAgICAgc2hvcnQgYzsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPiA+ID4g PiA+IA0KPiA+ID4gPiA+ID4gPiA+ID4gc28gSSBndWVzcyB0aGUgaXNzdWUgaXMgdGhhdCB0aGUg Zmlyc3QgJ2xvbmc6IDgnIGlzIHBhZGRlZCB0byBmdWxsDQo+ID4gPiA+ID4gPiA+ID4gPiBsb25n OiA2NCA/DQo+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IGxvb2tzIGxpa2Ug YnRmX2R1bXBfZW1pdF9iaXRfcGFkZGluZyBkaWQgbm90IHRha2UgaW50byBhY2NvdXQgdGhlIGdh cA0KPiA+ID4gPiA+ID4gPiA+ID4gb24gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBiZWdpbmluZyBv ZiB0aGUgc3RydWN0DQo+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IG9uIHRo ZSBvdGhlciBoYW5kIHlvdSBnZW5lcmF0ZWQgdGhhdCBoZWFkZXIgZmlsZSBmcm9tICdtaW5fY29y ZV9idGYnDQo+ID4gPiA+ID4gPiA+ID4gPiBidGYgZGF0YSwNCj4gPiA+ID4gPiA+ID4gPiA+IHdo aWNoIHRha2VzIGF3YXkgYWxsIHRoZSB1bnVzZWQgZmllbGRzLi4gaXQgbWlnaHQgbm90IGJlZWVu DQo+ID4gPiA+ID4gPiA+ID4gPiBjb25zaWRlcmVkIGFzIGENCj4gPiA+ID4gPiA+ID4gPiA+IHVz ZSBjYXNlIGJlZm9yZQ0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBqaXJr YQ0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBUaGF0IGNvdWxkIGJlIHRo ZSBjYXNlLCBidXQgSSB0aGluayB0aGUgJ2VtaXRfYml0X3BhZGRpbmcoKScgd2lsbCBub3QNCj4g PiA+ID4gPiA+ID4gPiA+IHJlYWxseSBoYXZlIGENCj4gPiA+ID4gPiA+ID4gPiA+IGxvdCB0byBk byBmb3IgdGhlIG5vbiBzcGFyc2UgaGVhZGVycyAuLg0KPiA+ID4gPiA+ID4gPiA+ID4gICAvUGVy DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gTG9va3MgbGlrZSBzb21ldGhpbmcg bGlrZSB0aGlzIG1ha2VzIHRpbmdzIGEgbG90IGJldHRlcjoNCj4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+IHllcCwgdGhpcyBoZWxwcywgdGhvdWdoIGNoYW5nZXMgb3V0cHV0IHdpdGggcGFk ZGluZyB0byBtb3JlIHZlcmJvc2UNCj4gPiA+ID4gPiA+ID4gdmVyc2lvbiwgcXVpdGUgb2Z0ZW4g dW5uZWNlc3NhcmlseS4gSSBuZWVkIHRvIHRoaW5nIGEgYml0IG1vcmUgb24NCj4gPiA+ID4gPiA+ ID4gdGhpcywgYnV0IHRoZSB3YXkgd2UgY3VycmVudGx5IGNhbGN1bGF0ZSBhbGlnbm1lbnQgb2Yg YSB0eXBlIGlzIG5vdA0KPiA+ID4gPiA+ID4gPiBhbHdheXMgZ29pbmcgdG8gYmUgY29ycmVjdC4g RS5nLiwganVzdCBiZWNhdXNlIHRoZXJlIGlzIGFuIGludCBmaWVsZCwNCj4gPiA+ID4gPiA+ID4g ZG9lc24ndCBtZWFuIHRoYXQgc3RydWN0IGFjdHVhbGx5IGhhcyA0LWJ5dGUgYWxpZ25tZW50Lg0K PiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gV2UgbXVzdCB0YWtlIGludG8gYWNjb3VudCBu YXR1cmFsIGFsaWdubWVudCwgYnV0IGFsc28gYWN0dWFsDQo+ID4gPiA+ID4gPiA+IGFsaWdubWVu dCwgd2hpY2ggbWlnaHQgYmUgZGlmZmVyZW50IGR1ZSB0byBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp KS4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IEVpdGhlciB3YXksIHRoYW5rcyBmb3Ig cmVwb3J0aW5nIQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBIaSBldmVyeW9uZSwNCj4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gSSB0aGluayB0aGUgZml4IGlzIHNpbXBsZXI6DQo+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS90b29scy9saWIvYnBmL2J0Zl9kdW1wLmMg Yi90b29scy9saWIvYnBmL2J0Zl9kdW1wLmMNCj4gPiA+ID4gPiA+IGluZGV4IGRlYjJiYzlhMGE3 Yi4uMjNhMDA4MTg4NTRiIDEwMDY0NA0KPiA+ID4gPiA+ID4gLS0tIGEvdG9vbHMvbGliL2JwZi9i dGZfZHVtcC5jDQo+ID4gPiA+ID4gPiArKysgYi90b29scy9saWIvYnBmL2J0Zl9kdW1wLmMNCj4g PiA+ID4gPiA+IEBAIC04NjAsNyArODYwLDcgQEAgc3RhdGljIGJvb2wgYnRmX2lzX3N0cnVjdF9w YWNrZWQoY29uc3Qgc3RydWN0IGJ0ZiAqYnRmLCBfX3UzMiBpZCwNCj4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gIHN0YXRpYyBpbnQgY2hpcF9hd2F5X2JpdHMoaW50IHRvdGFsLCBpbnQgYXRfbW9z dCkNCj4gPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gPiAtICAgICAgIHJldHVybiB0b3RhbCAlIGF0 X21vc3QgPyA6IGF0X21vc3Q7DQo+ID4gPiA+ID4gPiArICAgICAgIHJldHVybiB0b3RhbCA+IGF0 X21vc3QgPyBhdF9tb3N0IDogdG90YWw7DQo+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiBJdCBjaGFuZ2VzIHRoZSBvcmRlciBpbiB3aGljaCBidGZfZHVtcF9lbWl0X2Jp dF9wYWRkaW5nKCkgcHJpbnRzIGZpZWxkDQo+ID4gPiA+ID4gPiBzaXplcy4gUmlnaHQgbm93IGl0 IHJldHVybnMgdGhlIGRpdmlzaW9uIHJlbWFpbmRlciBvbiBhIGZpcnN0IGNhbGwgYW5kDQo+ID4g PiA+ID4gPiBmdWxsICdhdF9tb3N0JyB2YWx1ZXMgYXQgc3Vic2VxdWVudCBjYWxscy4gRm9yIHRo aXMgcGFydGljdWxhciBleGFtcGxlDQo+ID4gPiA+ID4gPiB0aGUgYml0IG9mZnNldCBvZiAnYicg aXMgMTM2LCBzbyB0aGUgb3V0cHV0IGxvb2tzIGFzIGZvbGxvd3M6DQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IHN0cnVjdCBmb28gew0KPiA+ID4gPiA+ID4gICAgICAgICBsb25nOiA4OyAgICAv LyBmaXJzdCBjYWxsIHBhZF9iaXRzID0gMTM2ICUgNjQgPyA6IDY0OyBvZmZfZGlmZiAtPSA4Ow0K PiA+ID4gPiA+ID4gICAgICAgICBsb25nOiA2NDsgICAvLyBzZWNvbmQgY2FsbCBwYWRfYml0cyA9 IDEyOCAlIDY0ID8gOiA2NDsgb2ZmX2RpZmYgLT0gNjQ7IC4uLg0KPiA+ID4gPiA+ID4gICAgICAg ICBsb25nOiA2NDsNCj4gPiA+ID4gPiA+ICAgICAgICAgY2hhciBiOw0KPiA+ID4gPiA+ID4gICAg ICAgICBzaG9ydCBjOw0KPiA+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g VGhpcyBpcyBpbmNvcnJlY3QsIGJlY2F1c2UgY29tcGlsZXIgd291bGQgYWx3YXlzIGFkZCBwYWRk aW5nIGJldHdlZW4NCj4gPiA+ID4gPiA+IHRoZSBmaXJzdCBhbmQgc2Vjb25kIG1lbWJlcnMgdG8g YWNjb3VudCBmb3IgdGhlIHNlY29uZCBtZW1iZXIgYWxpZ25tZW50Lg0KPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiBIb3dldmVyLCBteSBjaGFuZ2UgaW52ZXJ0cyB0aGUgb3JkZXIsIHdoaWNoIGF2 b2lkcyB0aGUgYWNjaWRlbnRhbA0KPiA+ID4gPiA+ID4gcGFkZGluZyBhbmQgZ2V0cyB0aGUgZGVz aXJlZCBvdXRwdXQ6DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID09PT09PT09PT09PSBDdXN0 b20gPT09PT09PT09PQ0KPiA+ID4gPiA+ID4gc3RydWN0IGZvbyB7DQo+ID4gPiA+ID4gPiAgICAg ICAgIGxvbmc6IDY0Ow0KPiA+ID4gPiA+ID4gICAgICAgICBsb25nOiA2NDsNCj4gPiA+ID4gPiA+ ICAgICAgICAgY2hhcjogODsNCj4gPiA+ID4gPiA+ICAgICAgICAgY2hhciBiOw0KPiA+ID4gPiA+ ID4gICAgICAgICBzaG9ydCBjOw0KPiA+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPiA+IG9mZnNldG9m KHN0cnVjdCBmb28sIGMpPTE4DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID09PSBCVEYgb2Zm c2V0cyA9PT0NCj4gPiA+ID4gPiA+IGZ1bGwgICA6ICAgICAgICAnYycgdHlwZV9pZD02IGJpdHNf b2Zmc2V0PTE0NA0KPiA+ID4gPiA+ID4gY3VzdG9tIDogICAgICAgICdjJyB0eXBlX2lkPTMgYml0 c19vZmZzZXQ9MTQ0DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IHdkeXQ/DQo+ID4gPiA+ID4g DQo+ID4gPiA+ID4gVGhlcmUgd2VyZSBhdCBsZWFzdCB0d28gaXNzdWVzIEkgcmVhbGl6ZWQgd2hl biBJIHdhcyB0aGlua2luZyBhYm91dA0KPiA+ID4gPiA+IGZpeGluZyB0aGlzLCBhbmQgSSB0aGlu ayB5b3UgYXJlIG1pc3NpbmcgYXQgbGVhc3Qgb25lIG9mIHRoZW0uDQo+ID4gPiA+ID4gDQo+ID4g PiA+ID4gMS4gQWRkaW5nIGBsb25nIDp4eHhgIGFzIHBhZGRpbmcgbWFrZXMgc3RydWN0IGF0IGxl YXN0IDgtYnl0ZSBhbGlnbmVkLg0KPiA+ID4gPiA+IElmIHRoZSBzdHJ1Y3Qgb3JpZ2luYWxseSBo YWQgYSBzbWFsbGVyIGFsaWdubWVudCByZXF1aXJlbWVudCwgeW91IGFyZQ0KPiA+ID4gPiA+IG5v dyBwb3RlbnRpYWxseSBicmVha2luZyB0aGUgc3RydWN0IGxheW91dCBieSBjaGFuZ2luZyBpdHMg bGF5b3V0Lg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IDIuIFRoZSB3YXkgYnRmX19hbGlnbl9vZigp IGlzIGNhbGN1bGF0aW5nIGFsaWdubWVudCBkb2Vzbid0IHdvcmsNCj4gPiA+ID4gPiBjb3JyZWN0 bHkgZm9yIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIHN0cnVjdHMuDQo+ID4gPiA+IA0KPiA+ID4g PiBNaXNzZWQgdGhlc2UgcG9pbnQsIHNvcnJ5Lg0KPiA+ID4gPiBPbiB0aGUgb3RoZXIgaGFuZCBp c24ndCB0aGlzIGluZm9ybWF0aW9uIGxvc3QgaW4gdGhlIGN1c3RvbS5idGY/DQo+ID4gPiA+IA0K PiA+ID4gPiAkIGJwZnRvb2wgYnRmIGR1bXAgZmlsZSBjdXN0b20uYnRmDQo+ID4gPiA+IFsxXSBT VFJVQ1QgJ2Zvbycgc2l6ZT0yMCB2bGVuPTINCj4gPiA+ID4gICAgICAgICAnYicgdHlwZV9pZD0y IGJpdHNfb2Zmc2V0PTEzNg0KPiA+ID4gPiAgICAgICAgICdjJyB0eXBlX2lkPTMgYml0c19vZmZz ZXQ9MTQ0DQo+ID4gPiA+IFsyXSBJTlQgJ2NoYXInIHNpemU9MSBiaXRzX29mZnNldD0wIG5yX2Jp dHM9OCBlbmNvZGluZz1TSUdORUQNCj4gPiA+ID4gWzNdIElOVCAnc2hvcnQnIHNpemU9MiBiaXRz X29mZnNldD0wIG5yX2JpdHM9MTYgZW5jb2Rpbmc9U0lHTkVEDQo+ID4gPiA+IA0KPiA+ID4gPiBU aGlzIGhhcyBubyBpbmZvIHRoYXQgJ2ZvbycgaGFkIGZpZWxkcyBvZiBzaXplICdsb25nJy4gSXQg ZG9lcyBub3QNCj4gPiA+ID4gbWF0dGVyIGZvciBzdHJ1Y3RzIHVzZWQgaW5zaWRlIEJURiBiZWNh dXNlICdiaXRzX29mZnNldCcgaXMgc3BlY2lmaWVkDQo+ID4gPiA+IGV2ZXJ5d2hlcmUsIGJ1dCB3 b3VsZCBtYXR0ZXIgaWYgU1RSVUNUICdmb28nIGlzIHVzZWQgYXMgYSBtZW1iZXIgb2YgYQ0KPiA+ ID4gPiBub24tQlRGIHN0cnVjdC4NCj4gPiA+IA0KPiA+ID4gWWVzLCB0aGUgbGF0dGVyIGlzIGlt cG9ydGFudCwgdGhvdWdoLCByaWdodD8NCj4gPiANCj4gPiBEbyB5b3Ugd2FudCB0byBkbyBhbnl0 aGluZyBhYm91dCB0aGlzIGF0IHRoZSBjdXN0b20gQlRGIGNyZWF0aW9uIHN0YWdlPw0KPiANCj4g Tm8sIGFic29sdXRlbHkgbm90LiBXZSBqdXN0IG5lZWQgdG8gdGVhY2ggYnRmX2R1bXAuYyB0byBu b3QgaW50cm9kdWNlDQo+IGFueSBuZXcgYWxpZ25tZW50IHJlcXVpcmVtZW50cyB3aGlsZSB0YWtp bmcgYWR2YW50YWdlIG9mIGV4aXN0aW5nDQo+IG9uZXMuIFdlIGNhbiBkZXJpdmUgZW5vdWdoIGlu Zm9ybWF0aW9uIGZyb20gQlRGIHRvIGFjaGlldmUgdGhpcy4NCj4gDQo+ID4gRS5nLiBsZWF2ZSBv bmUgcmVhbCBtZW1iZXIgLyBjcmVhdGUgYSBzeW50aGV0aWMgbWVtYmVyIHRvIGZvcmNlIGEgc3Bl Y2lmaWMNCj4gPiBzdHJ1Y3QgYWxpZ25tZW50IGluIHRoZSBtaW5pbWl6ZWQgdmVyc2lvbi4NCj4g PiANCj4gPiA+IFNvIEkgdGhpbmsgaWRlYWxseSB3ZSBkZXRlcm1pbmUgIm1heGltdW0gYWxsb3dh YmxlIGFsaWdubWVudCIgYW5kIHVzZQ0KPiA+ID4gdGhhdCB0byBkZXRlcm1pbmUgd2hhdCdzIHRo ZSBhbGxvd2FibGUgc2V0IG9mIHBhZGRpbmcgdHlwZXMgaXMuIFdEWVQ/DQo+ID4gDQo+ID4gWWVz LCBJIGFncmVlLg0KPiA+IEkgdGhpbmsgdGhhdCBhIGNoYW5nZSBpbiB0aGUgYnRmX19hbGlnbl9v ZigpIHNob3VsZCBiZSBtaW5pbWFsLCBqdXN0IGNoZWNrDQo+ID4gaWYgc3RydWN0dXJlIGlzIHBh Y2tlZCBhbmQgaWYgc28gcmV0dXJuIDEsIG90aGVyd2lzZSBsb2dpYyBzaG91bGQgcmVtYWluDQo+ ID4gdW5jaGFuZ2VkLCB0aGlzIHdvdWxkIG1hdGNoIHdoYXQgTExWTSBkb2VzIChbMV0pLg0KPiA+ IEFsc28gdGhlIGZsaXAgb2YgdGhlIG9yZGVyIG9mIGNoaXBfYXdheV9iaXRzKCkgc2hvdWxkIHJl bWFpbi4NCj4gDQo+IExldCdzIGNvbWUgdXAgd2l0aCBhIGZldyB0cmlja3kgZXhhbXBsZXMgdHJ5 aW5nIHRvIGJyZWFrIGV4aXN0aW5nDQo+IGxvZ2ljIGFuZCB0aGVuIGZpeCBpdC4gSSBzdXNwZWN0 IGp1c3QgY2hpcF9hd2F5X2JpdHMoKSBjaGFuZ2VzIGFyZSBub3QNCj4gc3VmZmljaWVudC4NCg0K SSBoYXZlIGJlZW4gdXNpbmcgdGhpcyBweXRob24gc2NyaXB0IHRvIHByb2R1Y2UgY29kZSB0aGF0 IHZlcmlmaWVzDQpvZmZzZXRzIGZvciBzdHJ1Y3QgbWVtYmVycyBmb3Igc29tZSB2YXJpb3VzIGtl cm5lbCAnYnRmJ3MuDQpJdCBjb21wYXJlcyB0aGUgb2Zmc2V0cyBmcm9tICdiaXRzX29mZnNldCcg Z2VuZXJhdGVkIHdpdGggJ2JwZnRvb2wNCmJ0ZiBkdW1wIDxmaWxlPicgKHdpdGhvdXQgJ2Zvcm1h dCBjJykgYW5kIHRoZSBvZmZzZXRzIGNvbXB1dGVkIGJ5DQonZ2NjJyBmcm9tIGhlYWRlciBmaWxl cyBnZW5lcmF0ZWQgd2l0aCAnZm9ybWF0IGMnLg0KDQpVc2UgYXM6ICcuL3ZlcmlmeV9oZWFkZXJf b2Zmc2V0cy5weSA8cGF0aCB0byBidGY+Jw0KDQpJdCB3aWxsIGJ5IGRlZmF1bHQgc2tpcCA1MCUg b2YgdGhlIG1lbWJlcnMgdG8gbWFrZSBpdCBoYXJkZXIgZm9yDQpicGZ0b29sIHRvIHByb2R1Y2Ug Y29ycmVjdCBvZmZzZXRzIChjYW4gYmUgY2hhbmdlZCB3aXRoIGVudmlyb25tZW50DQp2YXJpYWJs ZSAiUkFORE9NX1NLSVBfTUVNQkVSUz08dmFsdWUgYmV0d2VlbiAwLjAgYW5kIDEuMD4iDQoNCidj bGFuZycgZG9lcyBub3QgcGxheSB3ZWxsIHdpdGggdGhlc2UgYmlnIGZpbGVzLCBzbyBJIG5lZWQg dG8gZGl2aWRlDQp0aGUgZ2VuZXJhdGVkIGZpbGVzIGludG8gYmF0Y2hlcy4gRGVmYXVsdCBpcyAx MDAwIHN0cnVjdHMuDQooY2FuIGJlIGNvbnRyb2xsZWQgd2l0aCBlbnZpcm9ubWVudCB2YXJpYWJs ZSAnTUFYX1NUUlVDVFMnKQ0KDQogIC9QZXINCg0KDQotLS0tLS0tLS0tIHZlcmlmeV9oZWFkZXJf b2Zmc2V0cy5weSAtLS0tLS0tLS0tLS0NCiMhL3Vzci9iaW4vZW52IHB5dGhvbjMNCg0KaW1wb3J0 IG9zDQppbXBvcnQgc3lzDQppbXBvcnQgdGltZQ0KaW1wb3J0IHJhbmRvbQ0KaW1wb3J0IHRlbXBm aWxlDQppbXBvcnQgc3VicHJvY2VzcyBhcyBzcA0KDQpzdHJ1Y3RzX2NvdW50ID0ge30NCm5fZmls ZXMgPSAwDQpkb25lID0gRmFsc2UNCg0KY2xhc3MgQXBwRXJyb3IoRXhjZXB0aW9uKToNCiAgICAi IiINCiAgICBDbGFzcyB1c2VkIGZvciBhcHBsaWNhdGlvbiBnZW5lcmF0ZWQgZXhjZXB0aW9ucw0K ICAgICIiIg0KICAgIHBhc3MNCg0KDQpkZWYgc2hlbGxfY21kKGNvbW1hbmQsICoqa3dhcmdzKToN CiAgICBwcmludChmIkNPTU1BTkQ6IHtjb21tYW5kfSIpDQogICAgcmVzID0gc3AucnVuKFsiYmFz aCIsICItYyIsIGNvbW1hbmRdLCAqKmt3YXJncykNCiAgICBpZiByZXMucmV0dXJuY29kZSAhPSAw Og0KICAgICAgICByYWlzZSBBcHBFcnJvcihmJ3NoZWxsIGNvbW1hbmQgIntjb21tYW5kfSBmYWls ZWQnKQ0KICAgIHJldHVybiByZXMNCg0KDQpkZWYgZmluZF9zdHJ1Y3RfbWVtYmVycyhidGZfZmls ZSk6DQogICAgc3RydWN0X2xpc3QgPSBbXQ0KICAgIG1lbWJlcnMgPSBbXQ0KICAgIGZvdW5kID0g RmFsc2UNCiAgICBuYW1lID0gIiINCg0KICAgIHJlcyA9IHNoZWxsX2NtZChmImJwZnRvb2wgYnRm IGR1bXAgZmlsZSB7YnRmX2ZpbGV9IiwgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsIHN0ZG91dD1z cC5QSVBFKQ0KDQogICAgZm9yIGxpbmUgaW4gcmVzLnN0ZG91dC5zcGxpdGxpbmVzKCk6DQogICAg ICAgICNwcmludChsaW5lLCBmbHVzaD1UcnVlKQ0KICAgICAgICBpZiBmb3VuZCBhbmQgbGluZS5z dGFydHN3aXRoKCJcdCIpOg0KICAgICAgICAgICAgbWVtYmVyID0gbGluZS5zcGxpdCgpWzBdLnJl cGxhY2UoIiciLCAiIikNCiAgICAgICAgICAgICMgR2V0ICJFcnJvcjogZXJyb3IgcmVjb3JkaW5n IHJlbG9jYXRpb25zIGZvciA8ZmlsZT4ubzogSW52YWxpZCBhcmd1bWVudCIgaW4gJ2JwZnRvb2wn DQogICAgICAgICAgICAjIGZvciBzb21lIHN0cnVjdHMuIFNraXAgZm9yIG5vdw0KICAgICAgICAg ICAgaWYgbWVtYmVyIGluIFsnKGFub24pJywgJ2NvbnRleHQnLCAnaW5mbGF0ZV9zdGF0ZScsICdk bWFfZmVuY2VfYXJyYXknLCAnbmV0X2dlbmVyaWMnXToNCiAgICAgICAgICAgICAgICBjb250aW51 ZQ0KICAgICAgICAgICAgYml0X29mZnNldCA9IGludChsaW5lLnNwbGl0KClbMl0ucmVwbGFjZSgi Yml0c19vZmZzZXQ9IiwgIiIpKQ0KICAgICAgICAgICAgYml0ZmllbGRfc2l6ZSA9IGludChsaW5l LnNwbGl0KClbLTFdLnJlcGxhY2UoImJpdGZpZWxkX3NpemU9IiwgIiIpKSBpZiBsaW5lLmZpbmQo ImJpdGZpZWxkX3NpemUiKSA+IDAgZWxzZSAwDQogICAgICAgICAgICBpZiByYW5kb20ucmFuZG9t KCkgPiBmbG9hdChvcy5lbnZpcm9uLmdldCgnUkFORE9NX1NLSVBfTUVNQkVSUycsICcwLjUnKSk6 DQogICAgICAgICAgICAgICAgbWVtYmVycy5hcHBlbmQoKG1lbWJlciwgYml0ZmllbGRfc2l6ZSwg Yml0X29mZnNldCkpDQogICAgICAgICAgICBlbHNlOg0KICAgICAgICAgICAgICAgICMgZmxhZyBz a2lwcGVkIG1lbWJlcnMgd2l0aCAoMCwwKSBzbyB3ZSBjYW4gbG9nIHRoZW0gbGF0ZXINCiAgICAg ICAgICAgICAgICBtZW1iZXJzLmFwcGVuZCgobWVtYmVyLCAwLCAwKSkNCiAgICAgICAgZWxpZiBm b3VuZDoNCiAgICAgICAgICAgIGZvdW5kID0gRmFsc2UNCiAgICAgICAgICAgIHN0cnVjdF9saXN0 LmFwcGVuZCgobmFtZSwgbWVtYmVycykpDQogICAgICAgICAgICBuYW1lID0gIiINCiAgICAgICAg ICAgIG1lbWJlcnMgPSBbXQ0KICAgICAgICBpZiBsaW5lLmZpbmQoIiBTVFJVQ1QgIikgPiAwOg0K ICAgICAgICAgICAgbmFtZSA9IGxpbmUuc3BsaXQoKVsyXS5yZXBsYWNlKCInIiwgIiIpDQogICAg ICAgICAgICBpZiBuYW1lIGluIFsiKGFub24pIl06DQogICAgICAgICAgICAgICAgY29udGludWUN CiAgICAgICAgICAgIHN0cnVjdHNfY291bnRbbmFtZV0gPSBzdHJ1Y3RzX2NvdW50LmdldChuYW1l LCAwKSArIDENCiAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQ0KDQogICAgIyBEdWUgdG8gbGltaXRh dGlvbnMgaW4gImNsYW5nIiB3ZSBuZWVkIHRvIHNwbGl0IHRoZQ0KICAgICMgdmVyaWZpY2F0aW9u IGludG8gYmF0Y2hlcw0KICAgIHNwbGl0X25fc3RydWN0cyA9IGludChvcy5lbnZpcm9uLmdldCgn TUFYX1NUUlVDVFMnLCAxMDAwKSkNCiAgICBzdHJ1Y3RzID0gW10NCiAgICBiYXRjaGVzID0gW10N CiAgICBmb3Igbiwgc3RydWN0IGluIGVudW1lcmF0ZShzdHJ1Y3RfbGlzdCk6DQogICAgICAgIGlm IG4gYW5kIG4gJSBzcGxpdF9uX3N0cnVjdHMgPT0gMDoNCiAgICAgICAgICAgIGJhdGNoZXMuYXBw ZW5kKHN0cnVjdHMpDQogICAgICAgICAgICBzdHJ1Y3RzID0gW10NCiAgICAgICAgc3RydWN0cy5h cHBlbmQoc3RydWN0KQ0KDQogICAgYmF0Y2hlcy5hcHBlbmQoc3RydWN0cykNCiAgICByZXR1cm4g YmF0Y2hlcw0KDQpkZWYgZ2VuZXJhdGVfaGVhZGVyKGRpciwgYnRmX2ZpbGUpOiANCiAgICBzaGVs bF9jbWQoZiJicGZ0b29sIGJ0ZiBkdW1wIGZpbGUge2J0Zl9maWxlfSBmb3JtYXQgYyA+IHtkaXJ9 L3Rlc3QuaCIpDQoNCmRlZiBnZW5lcmF0ZV92ZXJpZmljYXRpb25fY29kZShkaXIsIGJ0Zl9maWxl LCBzdHJ1Y3RfYmF0Y2gpOg0KICAgIGNvZGUgPSAiIg0KICAgIG1haW5fYm9keSA9ICIiDQoNCiAg ICBjb2RlICs9IGYnI2luY2x1ZGUgInRlc3Rfe25fZmlsZXN9LmgiXG4nDQogICAgY29kZSArPSAn aW50IHByaW50Zihjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7XG4nDQogICAgY29kZSArPSAnaW50 IHNwcmludGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7XG4nDQogICAgY29k ZSArPSAnI2RlZmluZSBvZmZzZXRvZihUWVBFLCBNRU1CRVIpICgobG9uZykgJigoVFlQRSopMCkt Pk1FTUJFUilcbicNCiAgICBmb3IgbmFtZSwgbWVtYmVycyBpbiBzdHJ1Y3RfYmF0Y2g6DQogICAg ICAgIGlmICBzdHJ1Y3RzX2NvdW50W25hbWVdID4gMToNCiAgICAgICAgICAgICMgc3RydWN0cyBz ZWVuIG1vcmUgdGhhbiBvbmUgdGltZSB3aWxsIGJlIGNhbGxlZCAnc3RydWN0IGZvb19fXzxuPicg aW4NCiAgICAgICAgICAgICMgdGhlIGdlbmVyYXRlZCBoZWFkZXIgZmlsZS4gT25seSB0aGF0IHRo ZSAnPG4+JyBzZWVtcyBhcmJpdHJhcnksIHNvIHNraXANCiAgICAgICAgICAgICMgdGhlbSBmb3Ig bm93DQogICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICBpZiBuYW1lIGluIFsnY29udGV4dCdd Og0KICAgICAgICAgICAgIyBmb3Igc29tZSByZWFzb24sIHRoZXJlIGFyZSBtaXNzaW5nIHN0cnVj dHMgaW4gdGhlIGdlbmVyYXRlZCBoZWFkZXIgZmlsZQ0KICAgICAgICAgICAgIyBza2lwIHRoZW0N CiAgICAgICAgICAgIGNvbnRpbnVlDQoNCiAgICAgICAgY29kZSArPSBmImludCBfX3JlZl9mdW5j X3N0cnVjdF97bmFtZX0oKSB7e1xuIg0KICAgICAgICBjb2RlICs9IGYiICAgIGludCByZXQgPSAw O1xuIg0KICAgICAgICBjb2RlICs9IGYiICAgIGNoYXIgZGF0YVsxMDBdO1xuIg0KICAgICAgICBm b3IgbWVtYmVyLCBiaXRmaWVsZF9zaXplLCBiaXRfb2Zmc2V0IGluIG1lbWJlcnM6DQogICAgICAg ICAgICBpZiBiaXRmaWVsZF9zaXplOg0KICAgICAgICAgICAgICAgIGNvZGUgKz0gZicgICAgcmV0 ICs9ICgoc3RydWN0IHtuYW1lfSopJmRhdGEpLT57bWVtYmVyfTsgLyogYml0X29mZnNldD17Yml0 X29mZnNldH0sIGJpdGZpZWxkX3NpemU9e2JpdGZpZWxkX3NpemV9ICovXG4nDQogICAgICAgICAg ICBlbHNlOg0KICAgICAgICAgICAgICAgIGlmIGJpdGZpZWxkX3NpemUgPT0gMCBhbmQgYml0X29m ZnNldCA9PSAwOg0KICAgICAgICAgICAgICAgICAgICAjIFNraXAgdmVyaWZ5aW5nIG5vbiBiaXRm aWVsZCBtZW1iZXIgYXQgb2Zmc2V0IDAsIHdpbGwgYWx3YXlzIGJlIGNvcnJlY3QNCiAgICAgICAg ICAgICAgICAgICAgY29kZSArPSBmJyAgICAvKiByZXQgKz0gb2Zmc2V0b2Yoc3RydWN0IHtuYW1l fSwge21lbWJlcn0pOyBTa2lwcGVkICovXG4nDQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl DQogICAgICAgICAgICAgICAgY29kZSArPSBmJyAgICByZXQgKz0gb2Zmc2V0b2Yoc3RydWN0IHtu YW1lfSwge21lbWJlcn0pO1xuJw0KICAgICAgICAgICAgICAgIG1haW5fYm9keSArPSBmJyAgICBv ZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3Qge25hbWV9LCB7bWVtYmVyfSk7XG4nDQogICAgICAgICAg ICAgICAgbWFpbl9ib2R5ICs9IGYnICAgIHNwcmludGYobGluZSwgIm9mZnNldG9mKHN0cnVjdCB7 bmFtZX0sIHttZW1iZXJ9KSA9ICVkIiwgb2Zmc2V0KTtcbicNCiAgICAgICAgICAgICAgICBtYWlu X2JvZHkgKz0gZicgICAgcHJpbnRmKCIlLTgwLjgwcyAlc1xcbiIsIGxpbmUsIG9mZnNldCA9PSB7 aW50KGJpdF9vZmZzZXQvOCl9ID8gIk9LIiA6ICJOb3QgT0sgKHNob3VsZCBiZSB7aW50KGJpdF9v ZmZzZXQvOCl9KSIpO1xuJw0KICAgICAgICBjb2RlICs9ICIgICAgcmV0dXJuIHJldDtcbiINCiAg ICAgICAgY29kZSArPSAifVxuIg0KICAgIGNvZGUgKz0gJ2ludCBtYWluKCkge1xuJw0KICAgIGNv ZGUgKz0gJyNpZmRlZiBWRVJJRllcbicNCiAgICBjb2RlICs9ICcgICAgY2hhciBsaW5lWzIwMF07 XG4nDQogICAgY29kZSArPSAnICAgIGludCBvZmZzZXQgPSAwO1xuJw0KICAgIGNvZGUgKz0gJyAg ICBpbnQgZHVtbXkgPSAwO1xuJw0KICAgIGNvZGUgKz0gICAgICBtYWluX2JvZHkNCiAgICBjb2Rl ICs9ICcjZW5kaWZcbicNCiAgICBjb2RlICs9ICcgICAgcmV0dXJuIDA7XG4nDQogICAgY29kZSAr PSAnfVxuJw0KICAgIHdpdGggb3BlbihmIntkaXJ9L3Rlc3Rfe25fZmlsZXN9LmMiLCAidyIpIGFz IGY6DQogICAgICAgIGYud3JpdGUoY29kZSkNCg0KZGVmIGNvbXBpbGVfYnRmX29iamVjdChkaXIs IGJ0Zl9maWxlKToNCiAgICBzaGVsbF9jbWQoZiJjcCB7ZGlyfS90ZXN0Lmgge2Rpcn0vdGVzdF97 bl9maWxlc30uaCIpDQogICAgc2hlbGxfY21kKGYiY2xhbmcgLWMgLUl7ZGlyfSAtZ2dkYiAtZ2R3 YXJmIC1mcGllIC10YXJnZXQgYnBmIC1EX19UQVJHRVRfQVJDSF94ODYgLW8ge2Rpcn0vdGVzdF97 bl9maWxlc30ubyB7ZGlyfS90ZXN0X3tuX2ZpbGVzfS5jIikNCiAgICBzaGVsbF9jbWQoZiJicGZ0 b29sIGdlbiBtaW5fY29yZV9idGYge2J0Zl9maWxlfSB7ZGlyfS90ZXN0LmJ0ZiB7ZGlyfS90ZXN0 X3tuX2ZpbGVzfS5vIikNCiAgICBzaGVsbF9jbWQoZiJicGZ0b29sIGJ0ZiBkdW1wIGZpbGUge2Rp cn0vdGVzdC5idGYgZm9ybWF0IGMgPiB7ZGlyfS90ZXN0X3tuX2ZpbGVzfS5oIikNCg0KZGVmIGNv bXBpbGVfYW5kX3J1bl92ZXJpZmljYXRpb24oZGlyKToNCiAgICBzaGVsbF9jbWQoZiJnY2MgLURW RVJJRlkgLUl7ZGlyfSAtbyB7ZGlyfS90ZXN0X3tuX2ZpbGVzfSB7ZGlyfS90ZXN0X3tuX2ZpbGVz fS5jIikNCiAgICBzaGVsbF9jbWQoZiJ7ZGlyfS90ZXN0X3tuX2ZpbGVzfSIpDQogICAgDQpkZWYg bWFpbigpOg0KICAgIGdsb2JhbCBuX2ZpbGVzDQogICAgZ2xvYmFsIGRvbmUNCiAgICBpZiBsZW4o c3lzLmFyZ3YpID4gMSBhbmQgb3MucGF0aC5leGlzdHMoc3lzLmFyZ3ZbMV0pOg0KICAgICAgICBi dGZfZmlsZSA9IHN5cy5hcmd2WzFdDQogICAgICAgIHByaW50KGYiVmVyaWZ5aW5nIGJ0ZiBmaWxl IHtidGZfZmlsZX0iLCBmbHVzaD1UcnVlKQ0KICAgICAgICAjd2l0aCB0ZW1wZmlsZS5UZW1wb3Jh cnlEaXJlY3RvcnkoKSBhcyBkaXI6DQogICAgICAgIGRpcj0iL3RtcCINCiAgICAgICAgdHJ5Og0K ICAgICAgICAgICAgZ2VuZXJhdGVfaGVhZGVyKGRpciwgYnRmX2ZpbGUpDQogICAgICAgICAgICBm b3IgYmF0Y2ggaW4gZmluZF9zdHJ1Y3RfbWVtYmVycyhidGZfZmlsZSk6DQogICAgICAgICAgICAg ICAgZ2VuZXJhdGVfdmVyaWZpY2F0aW9uX2NvZGUoZGlyLCBidGZfZmlsZSwgYmF0Y2gpDQogICAg ICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICAgIGNvbXBpbGVfYnRmX29iamVjdChk aXIsIGJ0Zl9maWxlKQ0KICAgICAgICAgICAgICAgIGV4Y2VwdCBBcHBFcnJvciBhcyBmYXVsdDoN CiAgICAgICAgICAgICAgICAgICAgcHJpbnQoZiJFcnJvcjoge2ZhdWx0fSIsIGZpbGU9c3lzLnN0 ZGVycikNCiAgICAgICAgICAgICAgICAgICAgcHJpbnQoZiIuLiBpZ25vcmUgLi4iLCBmaWxlPXN5 cy5zdGRlcnIpDQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAg Y29tcGlsZV9hbmRfcnVuX3ZlcmlmaWNhdGlvbihkaXIpDQogICAgICAgICAgICAgICAgaWYgZG9u ZToNCiAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAgIG5fZmlsZXMgKz0g MQ0KICAgICAgICBleGNlcHQgQXBwRXJyb3IgYXMgZmF1bHQ6DQogICAgICAgICAgICBwcmludChm IkVycm9yOiB7ZmF1bHR9IiwgZmlsZT1zeXMuc3RkZXJyKQ0KICAgICAgICAgICAgc3lzLmV4aXQo MSkNCiAgICANCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6DQogICAgbWFpbigpDQoNCj4gDQo+ ID4gWzFdIA0KPiA+IGh0dHBzOi8vcHJvdGVjdDIuZmlyZWV5ZS5jb20vdjEvdXJsP2s9MzEzMjMz MzQtNTAxY2ZhZjMtMzEzMjczYWYtNDU0NDQ1NTU0MzMxLWU2MzgxYTZhMzlkMjRlOGQmcT0xJmU9 NTBmNjQwMmUtZmRiNy00NTEyLThjMTYtOGNlNDUwZTk0M2Y3JnU9aHR0cHMlM0ElMkYlMkZnaXRo dWIuY29tJTJGZWRkeXo4NyUyRmxsdm0tcHJvamVjdCUyRmJsb2IlMkZtYWluJTJGbGx2bSUyRmxp YiUyRklSJTJGRGF0YUxheW91dC5jcHAlMjNMNzY0DQo+ID4gPiA+ID4gU28gd2UgbmVlZCB0byBm aXggYnRmX19hbGlnbl9vZigpIGZpcnN0LiBXaGF0IGJ0Zl9fYWxpZ25fb2YoKSBpcw0KPiA+ID4g PiA+IGNhbGN1bGF0aW5nIHJpZ2h0IG5vdyBpcyBhIG5hdHVyYWwgYWxpZ25tZW50IHJlcXVpcmVt ZW50IGlmIHdlIGlnbm9yZQ0KPiA+ID4gPiA+IGFjdHVhbCBmaWVsZCBvZmZzZXRzLiBUaGlzIG1p Z2h0IGJlIHVzZWZ1bCAoYXQgdGhlIHZlcnkgbGVhc3QgdG8NCj4gPiA+ID4gPiBkZXRlcm1pbmUg aWYgdGhlIHN0cnVjdCBpcyBwYWNrZWQgb3Igbm90KSwgc28gbWF5YmUgd2Ugc2hvdWxkIGhhdmUg YQ0KPiA+ID4gPiA+IHNlcGFyYXRlIGJ0Zl9fbmF0dXJhbF9hbGlnbl9vZigpIG9yIHNvbWV0aGlu ZyBhbG9uZyB0aG9zZSBsaW5lcz8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBBbmQgdGhlbiB3ZSBu ZWVkIHRvIGZpeCBidGZfZHVtcF9lbWl0X2JpdF9wYWRkaW5nKCkgdG8gYmV0dGVyIGhhbmRsZQ0K PiA+ID4gPiA+IGFsaWdubWVudCBhbmQgcGFkZGluZyBydWxlcy4gVGhpcyBpcyB3aGF0IFBlciBT dW5kc3Ryw7ZtIGlzIHRyeWluZyB0bw0KPiA+ID4gPiA+IGRvLCBJIGJlbGlldmUsIGJ1dCBJIGhh dmVuJ3QgY2FyZWZ1bGx5IHRob3VnaHQgYWJvdXQgaGlzIGxhdGVzdCBjb2RlDQo+ID4gPiA+ID4g c3VnZ2VzdGlvbi4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBJbiBnZW5lcmFsLCB0aGUgbW9zdCBv YnZpb3VzIHNvbHV0aW9uIHdvdWxkIGJlIHRvIHBhZCB3aXRoIGBjaGFyIDo4O2ANCj4gPiA+ID4g PiBldmVyeXdoZXJlLCBidXQgdGhhdCdzIHZlcnkgdWdseSBhbmQgSSdkIHByZWZlciB1cyB0byBo YXZlIGFzDQo+ID4gPiA+ID4gIm5hdHVyYWwiIG91dHB1dCBhcyBwb3NzaWJsZS4gVGhhdCBpcywg b25seSBlbWl0IHN0cmljdGx5IG5lY2Vzc2FyeQ0KPiA+ID4gPiA+IHBhZGRpbmcgZmllbGRzIGFu ZCByZWx5IG9uIG5hdHVyYWwgYWxpZ25tZW50IG90aGVyd2lzZS4NCj4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9zcmMvYnRmX2R1bXAuYyBiL3Ny Yy9idGZfZHVtcC5jDQo+ID4gPiA+ID4gPiA+ID4gaW5kZXggMTJmNzAzOS4uYThiZDUyYSAxMDA2 NDQNCj4gPiA+ID4gPiA+ID4gPiAtLS0gYS9zcmMvYnRmX2R1bXAuYw0KPiA+ID4gPiA+ID4gPiA+ ICsrKyBiL3NyYy9idGZfZHVtcC5jDQo+ID4gPiA+ID4gPiA+ID4gQEAgLTg4MSwxMyArODgxLDEz IEBAIHN0YXRpYyB2b2lkIGJ0Zl9kdW1wX2VtaXRfYml0X3BhZGRpbmcoY29uc3QNCj4gPiA+ID4g PiA+ID4gPiBzdHJ1Y3QgYnRmX2R1bXAgKmQsDQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKnBhZF90eXBlOw0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAg ICBpbnQgcGFkX2JpdHM7DQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gLSAgICAg ICAgICAgICAgIGlmIChwdHJfYml0cyA+IDMyICYmIG9mZl9kaWZmID4gMzIpIHsNCj4gPiA+ID4g PiA+ID4gPiArICAgICAgICAgICAgICAgaWYgKGFsaWduID4gNCAmJiBwdHJfYml0cyA+IDMyICYm IG9mZl9kaWZmID4gMzIpIHsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRfdHlwZSA9ICJsb25nIjsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgICBwYWRfYml0cyA9IGNoaXBfYXdheV9iaXRzKG9mZl9kaWZmLCBwdHJfYml0cyk7DQo+ID4g PiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2ZmX2RpZmYgPiAxNikgew0K PiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFsaWduID4gMiAmJiBv ZmZfZGlmZiA+IDE2KSB7DQo+ID4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg cGFkX3R5cGUgPSAiaW50IjsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRfYml0cyA9IGNoaXBfYXdheV9iaXRzKG9mZl9kaWZmLCAzMik7DQo+ID4gPiA+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob2ZmX2RpZmYgPiA4KSB7DQo+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWxpZ24gPiAxICYmIG9mZl9kaWZmID4g OCkgew0KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZF90eXBlID0g InNob3J0IjsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwYWRfYml0 cyA9IGNoaXBfYXdheV9iaXRzKG9mZl9kaWZmLCAxNik7DQo+ID4gPiA+ID4gPiA+ID4gICAgICAg ICAgICAgICAgIH0gZWxzZSB7DQo+ID4gPiA+ID4gPiA+ID4gICAvUGVyDQo=