From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 4E2743857408 for ; Thu, 14 Jul 2022 07:33:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4E2743857408 X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="268471429" X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="268471429" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2022 00:33:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="685479069" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by FMSMGA003.fm.intel.com with ESMTP; 14 Jul 2022 00:33:15 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 14 Jul 2022 00:33:14 -0700 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 14 Jul 2022 00:33:14 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 14 Jul 2022 00:33:14 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.102) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 14 Jul 2022 00:33:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FAeR3BDJtoavMyttA8nJDADnr53CAG6TQIANj8aBLN7rwK54VuLjaBCC9MdoM4OOmx+7Uu2GIf+yisuhB4794v52NviHX3bigDsri02ww/XfvyxRZ7NZqxoO5THcDeafBIO5CEHbnI59xhlJmigAndItE9y8uhJjCu4HMaF5Re/3sJ/zf3ZXtjfMEjw3KXG18xDsLcwgsSkmnk7OBdjuVGDJxbcLqmqSB9T9cTxeGV0GOHsmMDzd+r4Ua8OK0JOn26lwuWUDppiZklnH3eLcadGxiIZNsLSTiEG3gaPJLfBlpOJcd7OGaxlwTEczBkyhWhO1aL1BWKjYEwMYKXs2xw== 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=18ws8E3dZUfmDc1Qr0WtzDTWwYaupRK2h6MOsO8oHow=; b=ZWVpF2Wnz/igNG02MT2KLzTsVSz7omUXtb01q/PL10PcgoER+VRfPvL75zaKw7uYdVn++fJUXa464QJnEUdTNuIFT0jiZSpsXB036Fbv6Mvqrrr+VSh4bkyxWqteBRDNTpVQXdDLL6+MTcQs2Z2yQk2l85iRa/7B+uKt3G/DpyV+2m+z7NdfZYSL19nwQFa36iNEigSX8CaQYdhPo1sXBuM7sdzngFVzxEI43yGbrBChNpxyS/DUGlMgsxbTOA6XD737Vs+ICrhpWC4y4ByFyLlzAQfCMDqatDjqcDa2ODISIEWRtthnQ2KrAU8Vc7QbSCB1qz6cWzZ/KjocUI+lVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CY4PR1101MB2071.namprd11.prod.outlook.com (2603:10b6:910:1a::10) by BL0PR11MB3522.namprd11.prod.outlook.com (2603:10b6:208:7f::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.16; Thu, 14 Jul 2022 07:33:12 +0000 Received: from CY4PR1101MB2071.namprd11.prod.outlook.com ([fe80::b5b1:e930:177e:adc4]) by CY4PR1101MB2071.namprd11.prod.outlook.com ([fe80::b5b1:e930:177e:adc4%5]) with mapi id 15.20.5417.021; Thu, 14 Jul 2022 07:33:12 +0000 From: "Kempke, Nils-Christian" To: Bruno Larsen , "gdb-patches@sourceware.org" Subject: RE: [PATCH 1/1] gdb, dwarf: create symbols for template tags without names Thread-Topic: [PATCH 1/1] gdb, dwarf: create symbols for template tags without names Thread-Index: AQHYkgxUzz1qSNhZY0Ksp/5fYaz4U618s6eAgADOq4A= Date: Thu, 14 Jul 2022 07:33:12 +0000 Message-ID: References: <20220707141722.1114229-1-nils-christian.kempke@intel.com> <20220707141722.1114229-2-nils-christian.kempke@intel.com> <5121dfc8-cc8e-54f6-2d54-f6fe7b09bb70@redhat.com> In-Reply-To: <5121dfc8-cc8e-54f6-2d54-f6fe7b09bb70@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d7ff8dca-8bf7-48a1-bda2-08da656b1b72 x-ms-traffictypediagnostic: BL0PR11MB3522:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QEul/Z1dSjJmgpeN9akwsdA0Dx4w0KUixXd4/ZLJozcFqIz4MsfYhjJ9rWpWNjUvRMN1/ubqeuIlkBKgKJZpgJZF/8YSapWj7Oqd8X9s+h+6XTJUks+GCpoDAYVL9Ghi6DcQ+dPTvx4pNoDbr2tq8SU23g35HLUwDDV2SB1hOlxzcFDI45d7LvkhzA2BuGkcwzPgb88xK83FdzZMO8h1OIHoiYlVdC/1Ritq8lmI/gbS0AXxa3aJLjK3BaQxxdMdEntslNdT1+ivvguoR5v3N5Vhs/hulIhu7hVL6PXqleeyeyhOde+YMV++dNvF2mDMNUKUqZ+AAral7fditvxzvcCeQhNFfS54kc7cugjwn0JtogjS63vhvSkdr9Lt8qUecnT0UCsrSYcMeWQ5PCsX3D861Yel8bAEKFGhkplX20OD9Q8Q2m+Q73H+BX8dfCOwVGf2LWeoW/9IXtE8WOLD7o0CbPWDxoeJPVV0xJB8klROV1gmmcLXYhflmqm8YCA1xztU3XiP9Uf0CpgWLR234vvMPGPnoRxrZOQwMhUrU2Xw5nXYjs+QKk50d/uocaECKHDRF5YHIf94Rc3eEm2iiHNhCIsxVCCvzqmKc4z600QJqYljYv3dIWXcAjmoNDKXCm0mu/nSSxBGtDT8Jql4G0aKf6NUpbdZW6IDXcmveOGI+X4ErbOo+6nJr9s4eqSsOc2h09DXIfbXV643CYlMCybNLlyBTxUSsex7fsstBIa+DxlX5ZISiIR57d9wZnTviYs0WwigXWy7jEznTXzf0Edk1B/j+lKvRfXTG4lZreLZ0ETbbSsOW6yfgh/GBgR5eIOc8QgsQJzT89UFZXQqx4WvCUX2wW1sytXm3C6lWCIciFm3BxtvtbHZoJMej4PJ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY4PR1101MB2071.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(376002)(39860400002)(346002)(136003)(366004)(396003)(966005)(2906002)(478600001)(71200400001)(82960400001)(38100700002)(110136005)(76116006)(8676002)(9686003)(41300700001)(33656002)(26005)(66476007)(122000001)(66556008)(66446008)(66946007)(186003)(53546011)(64756008)(316002)(30864003)(55016003)(6506007)(52536014)(5660300002)(8936002)(38070700005)(83380400001)(7696005)(86362001)(2004002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SU9pZFhLMll2dHRTeis0M2NKa3VpdHJUa0xPVmZYOWpFd0EzN3lJZm00VzVk?= =?utf-8?B?ZWpSQ3RUamFBT0JldzhGcXEzRnVBT2xZak5iVVpDYWk2aUhxYUVLSTdjY3NN?= =?utf-8?B?eDJiZkFQUytobklYTG5MaXJ6dGxtYlVoZjU3VkZ0NGF1QzJSMXlUZUw0dUcw?= =?utf-8?B?cUQxK0hYWndKbEVObzR1dVR1dkV4cHltYlh2aWZLeS9Qb21ZQUttY3ZBZmw1?= =?utf-8?B?ZzQwVkFScWREYk90eHk5L3g2bXdza0xWdFNEdVl3NUhUaHFMOGlxMjdCVXNU?= =?utf-8?B?M0JUWlpEa3VSOEl1eTRQSElEL0pQSFFvK3BZNkVBNTRsYnVHakUwZFBYQWFJ?= =?utf-8?B?VFIzQXFOeklrN0h2UE9BYytBN1JaZkw4S0NhTFJYYU9nTk9nSDB6N3J0SHk4?= =?utf-8?B?TS9NdkhKSkdHN0ZRb3J4K1FjYUY4U0o4dHVqcE9TTGFySVUzYkl4Z0VoQ1h5?= =?utf-8?B?MDl4eHJJdy9jV2FPbCtJMzVudXhjekFJZzA5ZHhHbDhDdzBaMXN6bzF4R2hp?= =?utf-8?B?M010RjZaTzdKRFhxQUJWTXhoQTBvTjJwc21Db215RE52b1Q1S1djaDN5bFVk?= =?utf-8?B?RkpTZVo4MG5nTitzN1Z3MDFCNUZ4a2xpbExJOE1JZlUzRE02UzZoZzdwVDU5?= =?utf-8?B?M1hTaHh5dTZxc0l5TGhEa1dGcGhtUng4Sk9NTFJhV2tLVzR0V3Z5U0RlKytR?= =?utf-8?B?cWtGSytqMlJIMmNOWkYzMEduT0F2WjBKTytUdm1MenZXTVBMeXRjN0tMVzhZ?= =?utf-8?B?eW1jMjkwTHVpVDdtVFBMTkVzQmtiZDRBUjJsNVMyeThnd082NEdTcE5heDN0?= =?utf-8?B?SFhYbmhVS0laaTlKdnhCY0tWWDNMNXBka3l1VHNzWHR4ZTVYRElLL2NlT1RU?= =?utf-8?B?a3EzRjhIK3gxNFRJV2RNQjNqT0R0QUttTUtqOTVEZitJRkpqNlB6aXdNWnQx?= =?utf-8?B?T3lIV240RTl0aHM4NFU3bnRicm5HN1RBM2VqTEFYekRnK0gxazgzaG4ycE5Q?= =?utf-8?B?SHNCQWFWRmsvZVN6RFhXSTdZOGR1QVhlazNlRi9MWHlKNWx6d3gvVTZzUUR3?= =?utf-8?B?SUpjMHRjNGR2Qkw1MnlRQXZOVG0xeTB2dUNpVldRTXoxblFyTzlMN0l0N21R?= =?utf-8?B?aFFkaEhMekMzRllWcGc3djRpUG5OeU8ydDU0NENMK2FMazFlN29mMmI5UWRE?= =?utf-8?B?WjBDQjFrQjRlaWRPVlUzMFo4dmk5bzB3eWFxZ1oxVXpWOGlxUFc1WXZtNDRL?= =?utf-8?B?VVY5aHBIRnJzdW9mNEpIQW1FMXNiUXhNL3FKVy9ka3ZHZVpuZ01wK1VLaXA3?= =?utf-8?B?UUpiU1lHSGFPQUZqUlFQWW1Lbmt6TUh3SzI4Z1Z4a1IyNyt6SFdFS3NCYkR2?= =?utf-8?B?VDEzeE5BOTQ0MCtsaytKMlYrVWtyTTN3ZzRJYUN1T0tlVGlSV0RPYnZmT0RM?= =?utf-8?B?VFFpT0ZKT2E5alFzSUszcnFjRmtRL2N3UkE1a05wNThhRks3d054SmIrSTVI?= =?utf-8?B?Q2VpTUdKR0hma0IvRml5RElsc2N0SStiYjRRVXczUk9sUTEwRDh6TFVEVWtU?= =?utf-8?B?L29HcjZLQ1Q3eHArZU5XTzNSMEo4dWlJSnp5dk9kRWRRVGxvYW1zS2x4RXgw?= =?utf-8?B?aDRkdVA0N0dqTThPWUlhZmxrYkMwSUFhQ2NCbXpPcEdmbElyM3VmMU9NZXQ2?= =?utf-8?B?a09BZ09LaDNYYm4xZ1dsWjNJbmxiZ21nZk90M3E5eklJSkphQk5LK001dXhI?= =?utf-8?B?Qzh6S1VsSnFxei9rN2hDTHZlOWw2eDR5bnZCWmptS2hBVDBmMjhaRXlVc0JH?= =?utf-8?B?YUt4cnFOMHQ2QmwwbEdpQURDK2lDTXc5akUrT0taMVU0NkZBRm1EQXpQSk5l?= =?utf-8?B?QTBoY3QzRHczemtkN1Y4MjJaNGw1OU02NWIrMVBadFBBWkJ5WTdQZnA1SDll?= =?utf-8?B?K2RDT3NUbjZvYnVoRThzV2x3cTlKakFuK2tZZXNEQ0VKN1hhYkVyU29HMXQw?= =?utf-8?B?SzJuUWo0cCtiVkVuT3BhMlBkRVA5eUpJdmNSSHk0dkF0VXRSRGQxSDdMVEUz?= =?utf-8?B?aHFxeXZXQjBXQ2JXZHBwUXV3VVBxMHJHdVFpWWJGOHZ2L09kOVJXK1ZHUWlk?= =?utf-8?B?Q2RNNUJLRmYxSGsyZG1zYW9PMXBsSFFJeG1heDI1bldLM1dJMG5lN2ZETUps?= =?utf-8?B?QVE9PQ==?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1101MB2071.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7ff8dca-8bf7-48a1-bda2-08da656b1b72 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2022 07:33:12.2444 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: C+4zRrBnGCb7koGDoijM+wJWq/+rUxaXYLNZQpkzTAwWA2PXJ0Sp39hMnqsAP9pv/zL8VzOjK/NDz3q++Cv8zlT/Py0dn+2Sb9fvkHWQgcE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3522 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Jul 2022 07:33:29 -0000 SGkgQnJ1bm8sDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldyENCg0KPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiBGcm9tOiBCcnVubyBMYXJzZW4gPGJsYXJzZW5AcmVkaGF0LmNvbT4NCj4g U2VudDogV2VkbmVzZGF5LCBKdWx5IDEzLCAyMDIyIDk6MDggUE0NCj4gVG86IEtlbXBrZSwgTmls cy1DaHJpc3RpYW4gPG5pbHMtY2hyaXN0aWFuLmtlbXBrZUBpbnRlbC5jb20+OyBnZGItDQo+IHBh dGNoZXNAc291cmNld2FyZS5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzFdIGdkYiwgZHdh cmY6IGNyZWF0ZSBzeW1ib2xzIGZvciB0ZW1wbGF0ZSB0YWdzDQo+IHdpdGhvdXQgbmFtZXMNCj4g DQo+IA0KPiBPbiA3LzcvMjIgMTE6MTcsIE5pbHMtQ2hyaXN0aWFuIEtlbXBrZSB2aWEgR2RiLXBh dGNoZXMgd3JvdGU6DQo+ID4gVGhlIGZvbGxvd2luZyBHREIgYmVoYXZpb3Igd2FzIGFsc28gcmVw b3J0ZWQgYXMgYSBHREIgYnVnIGluDQo+ID4NCj4gPiAgICBodHRwczovL3NvdXJjZXdhcmUub3Jn L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yODM5Ng0KPiA+DQo+ID4gSSB3aWxsIHJlaXRlcmF0 ZSB0aGUgcHJvYmxlbSBhIGJpdCBhbmQgZ2l2ZSBzb21lIG1vcmUgaW5mb3JtYXRpb24gaGVyZS4N Cj4gPiBUaGlzIHBhdGNoIGNsb3NlcyB0aGUgYWJvdmUgbWVudGlvbmVkIGJ1Zy4NCj4gPg0KPiA+ IFRoZSBEV0FSRiA1IHN0YW5kYXJkIDIuMjMgJ1RlbXBsYXRlIFBhcmFtZXRlcnMnIHJlYWRzOg0K PiA+DQo+ID4gICAgIEEgdGVtcGxhdGUgdHlwZSBwYXJhbWV0ZXIgaXMgcmVwcmVzZW50ZWQgYnkg YSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24NCj4gPiAgICAgZW50cnkgd2l0aCB0aGUgdGFnIERXX1RB R190ZW1wbGF0ZV90eXBlX3BhcmFtZXRlci4gIEEgdGVtcGxhdGUNCj4gdmFsdWUNCj4gPiAgICAg cGFyYW1ldGVyIGlzIHJlcHJlc2VudGVkIGJ5IGEgZGVidWdnaW5nIGluZm9ybWF0aW9uIGVudHJ5 IHdpdGggdGhlIHRhZw0KPiA+ICAgICBEV19UQUdfdGVtcGxhdGVfdmFsdWVfcGFyYW1ldGVyLiAg VGhlIGFjdHVhbCB0ZW1wbGF0ZSBwYXJhbWV0ZXINCj4gZW50cmllcw0KPiA+ICAgICBhcHBlYXIg aW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIGNvcnJlc3BvbmRpbmcgdGVtcGxhdGUgZm9ybWFsDQo+ ID4gICAgIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgaW4gdGhlIHNvdXJjZSBwcm9nYW0uDQo+ID4N Cj4gPiAgICAgQSB0eXBlIG9yIHZhbHVlIHBhcmFtZXRlciBlbnRyeSBtYXkgaGF2ZSBhIERXX0FU X25hbWUgYXR0cmlidXRlLA0KPiB3aG9zZQ0KPiA+ICAgICB2YWx1ZSBpcyBhIG51bGwtdGVybWlu YXRlZCBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUNCj4gPiAgICAgY29ycmVzcG9u ZGluZyBmb3JtYWwgcGFyYW1ldGVyLg0KPiA+DQo+ID4gU28gdGhlIERXX0FUX25hbWUgYXR0cmli dXRlIGZvciBEV19UQUdfdGVtcGxhdGVfdHlwZV9wYXJhbWV0ZXINCj4gYW5kDQo+ID4gRFdfVEFH X3RlbXBsYXRlX3ZhbHVlX3BhcmFtZXRlciBpcyBvcHRpb25hbC4NCj4gPg0KPiA+IFdpdGhpbiBH REIsIGNyZWF0aW5nIGEgbmV3IHN5bWJvbCBmcm9tIHNvbWUgcmVhZCBESUUgdXN1YWxseSByZXF1 aXJlcw0KPiB0aGUNCj4gPiBwcmVzZW5jZSBvZiBhIERXX0FUX25hbWUgZm9yIHRoZSBESUUgKGFu IGV4Y2VwdGlvbiBoZXJlIGlzIHRoZSBjYXNlIG9mDQo+ID4gdW5uYW1lZCBuYW1lc3BhY2VzIG9y IHRoZSBleGlzdGVuY2Ugb2YgYSBsaW5rYWdlIG5hbWUpLg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBt YWtlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIERXX0FUX25hbWUgZm9yIHRlbXBsYXRlDQo+IHZhbHVl L3R5cGUNCj4gPiB0YWdzIG9wdGlvbmFsLCBzaW1pbGFyIHRvIHRoZSB1bm5hbWVkIG5hbWVzcGFj ZXMuDQo+ID4NCj4gPiBGb3IgdW5uYW1lZCBuYW1lc3BhY2VzIGR3YXJmMl9uYW1lIHNpbXBseSBy ZXR1cm5zIHRoZSBjb25zdGFudCBzdHJpbmcNCj4gPiBDUF9BTk9OWU1PVVNfTkFNRVNQQUNFX1NU UiAnKGFub255bW91cyBuYW1lc3BhY2UpJy4gIEZvcg0KPiB0ZW1wbGF0ZSB0YWdzIGENCj4gPiBj YXNlIHdhcyBhZGRlZCB0byB0aGUgc3dpdGNoIHN0YXRlbWVudCBjYWxsaW5nIHRoZQ0KPiA+IHVu bmFtZWRfdGVtcGxhdGVfdGFnX25hbWUgaGVscGVyLiAgV2l0aGluIHRoZSBzY29wZSBvZiBwYXJl bnQgd2hpY2gNCj4gPiB0aGUgdGVtcGxhdGUgcGFyYW1ldGVyIGlzIGEgY2hpbGQgb2YsIHRoZSBo ZWxwZXIgY291bnRzIHRoZSBwb3NpdGlvbg0KPiA+IG9mIHRoZSB0ZW1wbGF0ZSB0YWcgd2l0aGlu IHRoZSB1bm5hbWVkIHRlbXBsYXRlIHRhZ3MgYW5kIHJldHVybnMNCj4gPiAnPHVubmFtZWROVU1C RVI+JyB3aGVyZSBOVU1CRVIgaXMgaXRzIHBvc2l0aW9uLiAgVGhpcyB3YXkgd2UgZW5kIHVwDQo+ IHdpdGgNCj4gPiB1bmlxdWUgbmFtZXMgd2l0aGluIHRoZSByZXNwZWN0aXZlIHNjb3BlIG9mIHRo ZSBmdW5jdGlvbi9jbGFzcy9zdHJ1Y3QNCj4gPiAodGhlc2UgYXJlIHRoZSBvbmx5IGN1cnJlbmx0 bHkgc3VwcG9ydGVkIHRlbXBsYXRlIGtpbmRzIHdpdGhpbiBHREIgYW5kDQo+ID4gdXN1YWxseSB0 aGUgY29tcGlsZXJzKSB3aGVyZSB3ZSBkaXNjb3ZlcmVkIHRoZSB0ZW1wbGF0ZSB0YWdzIGluLg0K PiA+DQo+ID4gV2hpbGUgSSBkbyBub3Qga25vdyBvZiBhIHdheSB0byBicmluZyBHQ0MgdG8gZW1p dCB0ZW1wbGF0ZSB0YWdzIHdpdGhvdXQNCj4gPiBuYW1lcyB0aGVyZSBpcyBvbmUgZm9yIGNsYW5n L2ljcHguICBDb25zaWRlciB0aGUgZm9sbG93aW5nIGV4YW1wbGUNCj4gPg0KPiA+ICAgIHRlbXBs YXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEM+DQo+ID4gICAgY2xhc3MgRm9v IHt9Ow0KPiA+DQo+ID4gICAgdGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lIEIsIHR5cGVuYW1l IEM+DQo+ID4gICAgY2xhc3MgRm9vOw0KPiA+DQo+ID4gICAgaW50IG1haW4gKCkgew0KPiA+ICAg ICAgRm9vPGRvdWJsZSwgaW50LCBmbG9hdD4gZjsNCj4gPiAgICAgIHJldHVybiAwOw0KPiA+ICAg IH0NCj4gPg0KPiA+IFRoZSBmb3J3YXJkIGRlY2xhcmF0aW9uIGZvciAnRm9vJyB3aXRoIHRoZSBt aXNzaW5nIHRlbXBsYXRlIHR5cGUgbmFtZXMNCj4gPiAnQScgYW5kICdDJyBtYWtlcyBjbGFuZyBl bWl0IGEgYnVuY2ggb2YgdGVtcGxhdGUgdGFncyB3aXRob3V0IG5hbWVzOg0KPiA+DQo+ID4gICAu Li4NCj4gPiAgICA8Mj48NDM+OiBBYmJyZXYgTnVtYmVyOiAzIChEV19UQUdfdmFyaWFibGUpDQo+ ID4gICAgICA8NDQ+ICAgRFdfQVRfbG9jYXRpb24gICAgOiAyIGJ5dGUgYmxvY2s6IDkxIDc4ICAg ICAgKERXX09QX2ZicmVnOiAtOCkNCj4gPiAgICAgIDw0Nz4gICBEV19BVF9uYW1lICAgICAgICA6 IChpbmRpcmVjdCBzdHJpbmcsIG9mZnNldDogMHg2Myk6IGYNCj4gPiAgICAgIDw0Yj4gICBEV19B VF9kZWNsX2ZpbGUgICA6IDENCj4gPiAgICAgIDw0Yz4gICBEV19BVF9kZWNsX2xpbmUgICA6IDgN Cj4gPiAgICAgIDw0ZD4gICBEV19BVF90eXBlICAgICAgICA6IDwweDU5Pg0KPiA+ICAgLi4uDQo+ ID4gICA8MT48NTk+OiBBYmJyZXYgTnVtYmVyOiA1IChEV19UQUdfY2xhc3NfdHlwZSkNCj4gPiAg ICAgIDw1YT4gICBEV19BVF9jYWxsaW5nX2NvbnZlbnRpb246IDUgIChwYXNzIGJ5IHZhbHVlKQ0K PiA+ICAgICAgPDViPiAgIERXX0FUX25hbWUgICAgICAgIDogKGluZGlyZWN0IHN0cmluZywgb2Zm c2V0OiAweDc0KTogRm9vPGRvdWJsZSwgaW50LA0KPiBmbG9hdD4NCj4gPiAgICAgIDw1Zj4gICBE V19BVF9ieXRlX3NpemUgICA6IDENCj4gPiAgICAgIDw2MD4gICBEV19BVF9kZWNsX2ZpbGUgICA6 IDENCj4gPiAgICAgIDw2MT4gICBEV19BVF9kZWNsX2xpbmUgICA6IDINCj4gPiAgIDwyPjw2Mj46 IEFiYnJldiBOdW1iZXI6IDYgKERXX1RBR190ZW1wbGF0ZV90eXBlX3BhcmFtKQ0KPiA+ICAgICAg PDYzPiAgIERXX0FUX3R5cGUgICAgICAgIDogPDB4NzY+DQo+ID4gICA8Mj48Njc+OiBBYmJyZXYg TnVtYmVyOiA3IChEV19UQUdfdGVtcGxhdGVfdHlwZV9wYXJhbSkNCj4gPiAgICAgIDw2OD4gICBE V19BVF90eXBlICAgICAgICA6IDwweDUyPg0KPiA+ICAgICAgPDZjPiAgIERXX0FUX25hbWUgICAg ICAgIDogKGluZGlyZWN0IHN0cmluZywgb2Zmc2V0OiAweDZjKTogQg0KPiA+ICAgPDI+PDcwPjog QWJicmV2IE51bWJlcjogNiAoRFdfVEFHX3RlbXBsYXRlX3R5cGVfcGFyYW0pDQo+ID4gICAgICA8 NzE+ICAgRFdfQVRfdHlwZSAgICAgICAgOiA8MHg3ZD4NCj4gPiAgIC4uLg0KPiA+DQo+IA0KPiBI ZWxsbyBOaWxzLA0KPiANCj4gVGhhbmtzIGZvciB3b3JraW5nIG9uIHRoaXMuDQo+IA0KPiBJJ20g YSBiaXQgY29uZnVzZWQgd2l0aCB5b3VyIGV4YW1wbGUgaGVyZS4gWW91IG1lbnRpb24gdGhhdCAn QScgYW5kICdDJw0KPiBhcmUgbWlzc2luZyBpbiB0aGUgZm9yd2FyZCBkZWNsYXJhdGlvbiwgYnV0 IGluIHRoZSBleGFtcGxlIEMrKyBjb2RlIHlvdQ0KPiBhZGRlZCAnQycuIElzIHRoYXQgYSB0eXBv IG9yDQo+IGRpZCBJIG5vdCB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtPw0KPiANCg0KTm8sIHRoaXMg aXMgYSB0eXBvLiBJIGludGVuZGVkIHRvIGFsc28gZHJvcCAnQycgZnJvbSB0aGUgc2Vjb25kIGRl Y2xhcmF0aW9uIC4uDQpUaGVuIGl0IGFsc28gc2hvdWxkIG1ha2UgbW9yZSBzZW5zZSB3aXRoIHRo ZSBEV0FSRiBiZWxvdyB3aGVyZSBvbmx5DQpCIGlzIHN0aWxsIGJlaW5nIGVtaXR0ZWQgYnV0IEMg aXMgbWlzc2luZy4NCg0KPiANCj4gPiBCZWZvciB0aGlzIHBhdGNoLCBHREIgd291bGQgbm90IGNy ZWF0ZSBhbnkgc3ltYm9scyBmb3IgdGhlIHJlYWQgdGVtcGxhdGUNCj4gPiB0YWcgRElFcyBhbmQg dGh1cyBsb3NlIGtub3dsZWRnZSBhYm91dCB0aGVtLiAgQnJlYWtpbmcgYXQgdGhlIHJldHVybg0K PiA+IHN0YXRlbWVudCBhbmQgcHJpbnRpbmcgZidzIHR5cGUgd291bGQgcmVhZA0KPiA+DQo+ID4g ICAgKGdkYikgcHR5cGUgZg0KPiA+ICAgIHR5cGUgPSBjbGFzcyBGb288ZG91YmxlLCBpbnQsIGZs b2F0PiBbd2l0aCBCID0gaW50XSB7DQo+ID4gICAgICAgIDxubyBkYXRhIGZpZWxkcz4NCj4gPiAg ICB9DQo+ID4NCj4gPiBBZnRlciB0aGlzIHBhdGNoIEdEQiBkb2VzIGdlbmVyYXRlIHN5bWJvbHMg ZnJvbSB0aGUgRFdBUkYgKHdpdGggdGhlaXINCj4gPiBhcnRpZmljaWFsIG5hbWVzOg0KPiA+DQo+ ID4gICAgKGdkYikgcHR5cGUgZg0KPiA+ICAgIHR5cGUgPSBjbGFzcyBGb288ZG91YmxlLCBpbnQs IGZsb2F0PiBbd2l0aCA8dW5uYW1lZDA+ID0gZG91YmxlLCBCID0gaW50LA0KPiA+ICAgIDx1bm5h bWVkMT4gPSBmbG9hdF0gew0KPiA+ICAgICAgICA8bm8gZGF0YSBmaWVsZHM+DQo+ID4gICAgfQ0K PiA+DQo+ID4gVGhlIHNhbWUgcHJpbmNpcGxlIHRoZW9yZXRpY2FsbHkgYXBwbGllcyB0byB0ZW1w bGF0ZSBmdW5jdGlvbnMuICBBbHNvDQo+ID4gaGVyZSwgR0RCIHdvdWxkIG5vdCByZWNvcmQgdW5u YW1lZCB0ZW1wbGF0ZSBUQUdzIGJ1dCBJIGtub3cgb2Ygbm8NCj4gdmlzdWFsDQo+ID4gd2F5IHRv IHRyaWdnZXIgYW5kIHRlc3QgdGhpcyBjaGFuZ2VkIGJlaGF2aW9yLiAgVGVtcGxhdGUgZnVuY3Rp b25zIGRvDQo+ID4gbm90IGVtaXQgYSAnW3dpdGguLi5dJyBsaXN0IGFuZCB0aGVpciBuYW1lIGdl bmVyYXRpb24gYWxzbyBkb2VzIG5vdA0KPiA+IHN1ZmZlciBmcm9tIHRlbXBsYXRlIHRhZ3Mgd2l0 aG91dCBuYW1lcy4gIEdEQiBkb2VzIG5vdCBjaGVjayB3aGV0aGVyIG9yDQo+ID4gbm90IGEgdGVt cGxhdGUgdGFnIGhhcyBhIG5hbWUgaW4gJ2R3YXJmMl9jb21wdXRlX25hbWUnIGFuZCB0aHVzLCB0 aGUNCj4gPiBuYW1lcyBvZiB0aGUgdGVtcGxhdGUgZnVuY3Rpb25zIGFyZSBjcmVhdGVkIGluZGVw ZW5kZW50bHkgb2Ygd2hldGhlciBvcg0KPiA+IG5vdCB0aGUgdGVtcGxhdGUgVEFHcyBoYXZlIGEg RFdfVEFUX25hbWUgYXR0cmlidXRlLiAgQSB0ZXN0Y2FzZSBoYXMNCj4gPiBiZWVuIGFkZGVkIGlu IHRoZSBnZGIuZHdhcmYyIGZvciB0ZW1wbGF0ZSBjbGFzc2VzIGFuZCBzdHJ1Y3RzLg0KPiA+DQo+ ID4gQnVnOiAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9 MjgzOTYNCj4gPiAtLS0NCj4gPiAgIGdkYi9kd2FyZjIvcmVhZC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICA0NiArKysrLQ0KPiA+ICAgLi4uL21pc3NpbmctdHlwZS1uYW1lLWZvci10 ZW1wbGF0ZXMuZXhwICAgICAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKw0KPiA+ICAgMiBmaWxl cyBjaGFuZ2VkLCAyMTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9taXNzaW5nLXR5cGUtbmFtZS1m b3ItDQo+IHRlbXBsYXRlcy5leHANCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9nZGIvZHdhcmYyL3Jl YWQuYyBiL2dkYi9kd2FyZjIvcmVhZC5jDQo+ID4gaW5kZXggMjNmZTU2NzljYmQuLjQ0Y2NhNGIx NmIwIDEwMDY0NA0KPiA+IC0tLSBhL2dkYi9kd2FyZjIvcmVhZC5jDQo+ID4gKysrIGIvZ2RiL2R3 YXJmMi9yZWFkLmMNCj4gPiBAQCAtMjE4NzAsNiArMjE4NzAsNDIgQEAgdHlwZW5hbWVfY29uY2F0 IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBjb25zdA0KPiBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIg KnN1ZmZpeCwNCj4gPiAgICAgICB9DQo+ID4gICB9DQo+ID4NCj4gPiArLyogUmV0dXJuIGEgZ2Vu ZXJpYyBuYW1lIGZvciBhIERXX1RBR190ZW1wbGF0ZV90eXBlX3BhcmFtIG9yDQo+ID4gKyAgIERX X1RBR190ZW1wbGF0ZV92YWx1ZV9wYXJhbSB0YWcsIG1pc3NpbmcgYSBEV19BVF9uYW1lDQo+IGF0 dHJpYnV0ZS4gIFdlIGRvIHRoaXMNCj4gPiArICAgcGVyIHBhcmVudCwgc28gZWFjaCBmdW5jdGlv bi9jbGFzcy9zdHJ1Y3QgdGVtcGxhdGUgd2lsbCBoYXZlIHRoZWlyIG93bg0KPiBzZXQNCj4gPiAr ICAgb2YgdGVtcGxhdGUgcGFyYW1ldGVycyBuYW1lZCA8dW5ubmFtZWQwPiwgPHVubmFtZWQxPiwg Li4uIHdoZXJlDQo+IHRoZQ0KPiA+ICsgICBlbnVtZXJhdGlvbiBzdGFydHMgYXQgMCBhbmQgcmVw cmVzZW50cyB0aGUgcG9zaXRpb24gb2YgdGhlIHRlbXBsYXRlIHRhZw0KPiBpbg0KPiA+ICsgICB0 aGUgbGlzdCBvZiB1bm5hbWVkIHRlbXBsYXRlIHRhZ3MgZm9yIHRoaXMgcGFyZW50LCBjb3VudGlu ZyBib3RoLCB0eXBlDQo+IGFuZA0KPiA+ICsgICB2YWx1ZSB0YWdzLiAgKi8NCj4gPiArDQo+ID4g K3N0YXRpYyBjb25zdCBjaGFyICoNCj4gPiArdW5uYW1lZF90ZW1wbGF0ZV90YWdfbmFtZSAoZGll X2luZm8gKmRpZSwgZHdhcmYyX2N1ICpjdSkNCj4gPiArew0KPiA+ICsgIGlmIChkaWUtPnBhcmVu dCA9PSBudWxscHRyKQ0KPiA+ICsgICAgcmV0dXJuIG51bGxwdHI7DQo+ID4gKw0KPiA+ICsgIC8q IENvdW50IHRoZSBwYXJlbnQgdHlwZXMgdW5uYW1lZCB0ZW1wbGF0ZSB0eXBlIGFuZCB2YWx1ZSBj aGlsZHJlbg0KPiB1bnRpbCwgd2UNCj4gPiArICAgICBhcnJpdmUgYXQgb3VyIGVudHJ5LiAgKi8N Cj4gPiArICBzaXplX3QgbnRoX3VubmFtZWQgPSAwOw0KPiA+ICsNCj4gPiArICBkaWVfaW5mbyog Y2hpbGQgPSBkaWUtPnBhcmVudC0+Y2hpbGQ7DQo+ID4gKyAgd2hpbGUgKGNoaWxkICE9IGRpZSAm JiBjaGlsZCAhPSBudWxscHRyKQ0KPiA+ICsgIHsNCj4gPiArICAgIGlmIChjaGlsZC0+dGFnID09 IERXX1RBR190ZW1wbGF0ZV90eXBlX3BhcmFtDQo+ID4gKwl8fCBjaGlsZC0+dGFnID09IERXX1RB R190ZW1wbGF0ZV92YWx1ZV9wYXJhbSkNCj4gPiArICAgICAgew0KPiA+ICsJaWYgKGR3YXJmMl9h dHRyIChjaGlsZCwgRFdfQVRfbmFtZSwgY3UpID09IG51bGxwdHIpDQo+ID4gKwkgICsrbnRoX3Vu bmFtZWQ7DQo+ID4gKyAgICAgIH0NCj4gPiArICAgIGNoaWxkID0gY2hpbGQtPnNpYmxpbmc7DQo+ ID4gKyAgfQ0KPiA+ICsgIGdkYl9hc3NlcnQgKGNoaWxkID09IGRpZSk7DQo+ID4gKw0KPiA+ICsg IGNvbnN0IHN0ZDo6c3RyaW5nIG5hbWVfc3RyID0gIjx1bm5hbWVkIiArIHN0ZDo6dG9fc3RyaW5n DQo+IChudGhfdW5uYW1lZCkgKyAiPiI7DQo+ID4gKyAgcmV0dXJuIG9ic3RhY2tfc3RybmR1cCAo JmN1LT5wZXJfb2JqZmlsZS0+b2JqZmlsZS0+cGVyX2JmZC0NCj4gPnN0b3JhZ2Vfb2JzdGFjaywN Cj4gPiArCQkJICBuYW1lX3N0ci5jX3N0ciAoKSwgbmFtZV9zdHIuc2l6ZSAoKSk7DQo+ID4gK30N Cj4gPiArDQo+ID4gICAvKiBHZXQgbmFtZSBvZiBhIGRpZSwgcmV0dXJuIE5VTEwgaWYgbm90IGZv dW5kLiAgKi8NCj4gPg0KPiA+ICAgc3RhdGljIGNvbnN0IGNoYXIgKg0KPiA+IEBAIC0yMTkwNSw3 ICsyMTk0MSw5IEBAIGR3YXJmMl9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0DQo+ IGR3YXJmMl9jdSAqY3UpDQo+ID4gICAgICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfaW50ZXJm YWNlX3R5cGUNCj4gPiAgICAgICAgICYmIGRpZS0+dGFnICE9IERXX1RBR19zdHJ1Y3R1cmVfdHlw ZQ0KPiA+ICAgICAgICAgJiYgZGllLT50YWcgIT0gRFdfVEFHX25hbWVsaXN0DQo+ID4gLSAgICAg ICYmIGRpZS0+dGFnICE9IERXX1RBR191bmlvbl90eXBlKQ0KPiA+ICsgICAgICAmJiBkaWUtPnRh ZyAhPSBEV19UQUdfdW5pb25fdHlwZQ0KPiA+ICsgICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdf dGVtcGxhdGVfdHlwZV9wYXJhbQ0KPiA+ICsgICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdGVt cGxhdGVfdmFsdWVfcGFyYW0pDQo+ID4gICAgICAgcmV0dXJuIE5VTEw7DQo+ID4NCj4gPiAgICAg c3dpdGNoIChkaWUtPnRhZykNCj4gPiBAQCAtMjE5MjUsNiArMjE5NjMsMTIgQEAgZHdhcmYyX25h bWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QNCj4gZHdhcmYyX2N1ICpjdSkNCj4gPiAg IAlyZXR1cm4gYXR0cl9uYW1lOw0KPiA+ICAgICAgICAgcmV0dXJuIENQX0FOT05ZTU9VU19OQU1F U1BBQ0VfU1RSOw0KPiA+DQo+ID4gKyAgICAvKiBEV0FSRiBkb2VzIG5vdCBhY3R1YWxseSByZXF1 aXJlIHRlbXBsYXRlIHRhZ3MgdG8gaGF2ZSBhIG5hbWUuICAqLw0KPiA+ICsgICAgY2FzZSBEV19U QUdfdGVtcGxhdGVfdHlwZV9wYXJhbToNCj4gPiArICAgIGNhc2UgRFdfVEFHX3RlbXBsYXRlX3Zh bHVlX3BhcmFtOg0KPiA+ICsgICAgICBpZiAoYXR0cl9uYW1lID09IG51bGxwdHIpDQo+ID4gKwly ZXR1cm4gdW5uYW1lZF90ZW1wbGF0ZV90YWdfbmFtZSAoZGllLCBjdSk7DQo+ID4gKyAgICAgIC8q IEZBTExUSFJPVUdILiAgKi8NCj4gPiAgICAgICBjYXNlIERXX1RBR19jbGFzc190eXBlOg0KPiA+ ICAgICAgIGNhc2UgRFdfVEFHX2ludGVyZmFjZV90eXBlOg0KPiA+ICAgICAgIGNhc2UgRFdfVEFH X3N0cnVjdHVyZV90eXBlOg0KPiA+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvbWlzc2luZy10eXBlLW5hbWUtZm9yLQ0KPiB0ZW1wbGF0ZXMuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL21pc3NpbmctdHlwZS1uYW1lLWZvci0NCj4gdGVtcGxhdGVzLmV4cA0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAuLjE0YmYzZGM3MTc1 DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9t aXNzaW5nLXR5cGUtbmFtZS1mb3ItdGVtcGxhdGVzLmV4cA0KPiA+IEBAIC0wLDAgKzEsMTY2IEBA DQo+ID4gKyMgQ29weXJpZ2h0IDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ ID4gKw0KPiA+ICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ID4gKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCj4gPiArIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcg0KPiA+ICsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ID4gKyMN Cj4gPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwNCj4gPiArIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KPiA+ICsjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCj4gPiArIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiA+ICsjDQo+ID4gKyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UNCj4gPiArIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gPiArDQo+ID4gKyMgVGhpcyB0ZXN0cyBHREIn cyBoYW5kbGluZyBvZiBEV19UQUdfdGVtcGxhdGVfdHlwZV9wYXJhbWV0ZXIgYW5kDQo+ID4gKyMg RFdfVEFHX3RlbXBsYXRlX3ZhbHVlX3BhcmFtZXRlciB0YWdzIHRoYXQgZG8gbm90IGhhdmUgYQ0K PiBEV19BVF9uYW1lIGF0dHJpYnV0ZS4NCj4gPiArIyBUaGUgYXR0cmlidXRlIGlzIG9wdGlvbmFs IGZvciB0aGUgdGFncyBhbmQgYSBidWcgYWJvdXQgR0RCIG5vdCByZWNvcmRpbmcNCj4gPiArIyB0 aGUgcmVzcGVjdGl2ZSBzeW1ib2xzIChiZWNhdXNlIG9mIHRoZSBtaXNzaW5nIG5hbWUpIHdhcyBy ZXBvcnRlZCBpbg0KPiBQUg0KPiA+ICsjIGdkYi8yODM5Ni4NCj4gPiArDQo+ID4gK2xvYWRfbGli IGR3YXJmLmV4cA0KPiA+ICsNCj4gPiAraWYgeyFbZHdhcmYyX3N1cHBvcnRdfSB7DQo+ID4gKyAg ICByZXR1cm4gMA0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGFuZGFyZF90ZXN0ZmlsZSBtYWluLmMg LlMNCj4gPiArDQo+ID4gK3NldCBhc21fZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHNyY2Zp bGUyXQ0KPiA+ICtEd2FyZjo6YXNzZW1ibGUgJGFzbV9maWxlIHsNCj4gPiArICAgIGN1IHt9IHsN Cj4gPiArCURXX1RBR19jb21waWxlX3VuaXQgew0KPiA+ICsJICAgIHtEV19BVF9sYW5ndWFnZSBA RFdfTEFOR19DX3BsdXNfcGx1c30NCj4gPiArCX0gew0KPiA+ICsJICAgIGRlY2xhcmVfbGFiZWxz IGludCBmbG9hdCB0ZW1wbGF0ZV92YXIxIHRlbXBsYXRlX3ZhcjINCj4gdGVtcGxhdGVfdmFyMw0K PiA+ICsNCj4gPiArCSAgICBpbnQ6IERXX1RBR19iYXNlX3R5cGUgew0KPiA+ICsJCXtEV19BVF9u YW1lICJpbnQifQ0KPiA+ICsJCXtEV19BVF9ieXRlX3NpemUgNCBEV19GT1JNX2RhdGExfQ0KPiA+ ICsJCXtEV19BVF9lbmNvZGluZyBARFdfQVRFX3NpZ25lZH0NCj4gPiArCSAgICB9DQo+ID4gKw0K PiA+ICsJICAgIGZsb2F0OiBiYXNlX3R5cGUgew0KPiA+ICsJCXtEV19BVF9uYW1lIGZsb2F0fQ0K PiA+ICsJCXtEV19BVF9ieXRlX3NpemUgNCBEV19GT1JNX3NkYXRhfQ0KPiA+ICsJCXtEV19BVF9l bmNvZGluZyBARFdfQVRFX2Zsb2F0fQ0KPiA+ICsJICAgIH0NCj4gPiArDQo+ID4gKwkgICAgRFdf VEFHX3N1YnByb2dyYW0gew0KPiA+ICsJCXtNQUNST19BVF9mdW5jICJtYWluIn0NCj4gPiArCSAg ICB9DQo+ID4gKw0KPiA+ICsJICAgICMgQSB2YXJpYWJsZSB3aG9zZSB0eXBlIGlzIGEgdGVtcGxh dGUgaW5zdGFudGlhdGlvbiB3aXRoIHR3bw0KPiA+ICsJICAgICMgdGVtcGxhdGUgcGFyYW1ldGVy cywgb25lIHVubmFtZWQuDQo+ID4gKwkgICAgdGVtcGxhdGVfdmFyMTogRFdfVEFHX3N0cnVjdHVy ZV90eXBlIHsNCj4gPiArCQl7RFdfQVRfbmFtZSAidGVtcGxhdGVfdmFyMTxpbnQsIGZsb2F0PiJ9 DQo+ID4gKwkgICAgfSB7DQo+ID4gKwkJRFdfVEFHX3RlbXBsYXRlX3R5cGVfcGFyYW0gew0KPiA+ ICsJCSAgIHtEV19BVF90eXBlIDokaW50fQ0KPiA+ICsJCX0NCj4gPiArCQlEV19UQUdfdGVtcGxh dGVfdHlwZV9wYXJhbSB7DQo+ID4gKwkJICAgIHtEV19BVF9uYW1lICJzZWNvbmQifQ0KPiA+ICsJ CSAgICB7RFdfQVRfdHlwZSA6JGZsb2F0fQ0KPiA+ICsJCX0NCj4gPiArCQlEV19UQUdfbWVtYmVy IHsNCj4gPiArCQkgICAge0RXX0FUX25hbWUgIm1lIn0NCj4gPiArCQkgICAge0RXX0FUX3R5cGUg OiRpbnR9DQo+ID4gKwkJfQ0KPiA+ICsJCURXX1RBR19tZW1iZXIgew0KPiA+ICsJCSAgICB7RFdf QVRfbmFtZSAibWUyIn0NCj4gPiArCQkgICAge0RXX0FUX3R5cGUgOiRmbG9hdH0NCj4gPiArCQl9 DQo+ID4gKwkgICAgfQ0KPiA+ICsJICAgIERXX1RBR192YXJpYWJsZSB7DQo+ID4gKwkJe0RXX0FU X25hbWUgInZhcjEifQ0KPiA+ICsJCXtEV19BVF90eXBlIDokdGVtcGxhdGVfdmFyMX0NCj4gPiAr CSAgICB9DQo+ID4gKw0KPiA+ICsJICAgICMgQSB2YXJpYWJsZSB3aG9zZSB0eXBlIGlzIGEgdGVt cGxhdGUgaW5zdGFudGlhdGlvbiB3aXRoIHR3bw0KPiA+ICsJICAgICMgdGVtcGxhdGUgcGFyYW1l dGVycywgYm90aCB1bm5hbWVkLg0KPiA+ICsJICAgIHRlbXBsYXRlX3ZhcjI6IERXX1RBR19jbGFz c190eXBlIHsNCj4gPiArCQl7RFdfQVRfbmFtZSAidGVtcGxhdGVfdmFyMjxpbnQsIGZsb2F0PiJ9 DQo+ID4gKwkgICAgfSB7DQo+ID4gKwkJRFdfVEFHX3RlbXBsYXRlX3R5cGVfcGFyYW0gew0KPiA+ ICsJCSAgIHtEV19BVF90eXBlIDokaW50fQ0KPiA+ICsJCX0NCj4gPiArCQlEV19UQUdfbWVtYmVy IHsNCj4gPiArCQkgICAge0RXX0FUX25hbWUgIm1lIn0NCj4gPiArCQkgICAge0RXX0FUX3R5cGUg OiRpbnR9DQo+ID4gKwkJfQ0KPiA+ICsJCURXX1RBR190ZW1wbGF0ZV90eXBlX3BhcmFtIHsNCj4g PiArCQkgICAge0RXX0FUX3R5cGUgOiRmbG9hdH0NCj4gPiArCQl9DQo+ID4gKwkJRFdfVEFHX21l bWJlciB7DQo+ID4gKwkJICAgIHtEV19BVF9uYW1lICJtZTIifQ0KPiA+ICsJCSAgICB7RFdfQVRf dHlwZSA6JGZsb2F0fQ0KPiA+ICsJCX0NCj4gPiArCSAgICB9DQo+ID4gKwkgICAgRFdfVEFHX3Zh cmlhYmxlIHsNCj4gPiArCQl7RFdfQVRfbmFtZSAidmFyMiJ9DQo+ID4gKwkJe0RXX0FUX3R5cGUg OiR0ZW1wbGF0ZV92YXIyfQ0KPiA+ICsJICAgIH0NCj4gPiArDQo+ID4gKwkgICAgIyBBIHZhcmlh YmxlIHdob3NlIHR5cGUgaXMgYSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIHdpdGggZm91cg0KPiA+ ICsJICAgICMgdGVtcGxhdGUgYXJndW1lbnRzLCB0d28gdHlwZXMsIHR3byB2YWx1ZXMsIGFsbCB1 bm5hbWVkLg0KPiA+ICsJICAgIHRlbXBsYXRlX3ZhcjM6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSB7 DQo+ID4gKwkJe0RXX0FUX25hbWUgInRlbXBsYXRlX3ZhcjMifQ0KPiA+ICsJICAgIH0gew0KPiA+ ICsJCURXX1RBR19tZW1iZXIgew0KPiA+ICsJCSAgICB7RFdfQVRfbmFtZSAibWUifQ0KPiA+ICsJ CSAgICB7RFdfQVRfdHlwZSA6JGludH0NCj4gPiArCQl9DQo+ID4gKwkJRFdfVEFHX3RlbXBsYXRl X3ZhbHVlX3BhcmFtIHsNCj4gPiArCQkgICB7RFdfQVRfdHlwZSA6JGludH0NCj4gPiArCQkgICB7 RFdfQVRfY29uc3RfdmFsdWUgMCBEV19GT1JNX3NkYXRhfQ0KPiA+ICsJCX0NCj4gPiArCQlEV19U QUdfdGVtcGxhdGVfdHlwZV9wYXJhbSB7DQo+ID4gKwkJICAgIHtEV19BVF90eXBlIDokaW50fQ0K PiA+ICsJCX0NCj4gPiArCQlEV19UQUdfdGVtcGxhdGVfdmFsdWVfcGFyYW0gew0KPiA+ICsJCSAg ICB7RFdfQVRfdHlwZSA6JGZsb2F0fQ0KPiA+ICsJCSAgICB7RFdfQVRfY29uc3RfdmFsdWUgMTEg RFdfRk9STV9zZGF0YX0NCj4gPiArCQl9DQo+ID4gKwkJRFdfVEFHX3RlbXBsYXRlX3R5cGVfcGFy YW0gew0KPiA+ICsJCSAgICB7RFdfQVRfdHlwZSA6JGZsb2F0fQ0KPiA+ICsJCX0NCj4gPiArCQlE V19UQUdfbWVtYmVyIHsNCj4gPiArCQkgICAge0RXX0FUX25hbWUgIm1lMiJ9DQo+ID4gKwkJICAg IHtEV19BVF90eXBlIDokZmxvYXR9DQo+ID4gKwkJfQ0KPiA+ICsJICAgIH0NCj4gPiArCSAgICBE V19UQUdfdmFyaWFibGUgew0KPiA+ICsJCXtEV19BVF9uYW1lICJ2YXIzIn0NCj4gPiArCQl7RFdf QVRfdHlwZSA6JHRlbXBsYXRlX3ZhcjN9DQo+ID4gKwkgICAgfQ0KPiA+ICsJfQ0KPiA+ICsgICAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQg dG8gcHJlcGFyZSIgJHt0ZXN0ZmlsZX0gXA0KPiA+ICsJIFtsaXN0ICRzcmNmaWxlICRhc21fZmls ZV0ge25vZGVidWd9XSB9IHsNCj4gPiArICAgIHJldHVybiAtMQ0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtpZiAhW3J1bnRvX21haW5dIHsNCj4gPiArICAgIHJldHVybiAtMQ0KPiA+ICt9DQo+ID4gKw0K PiA+ICtnZGJfdGVzdCAicHR5cGUgdmFyMSIgW211bHRpX2xpbmUgXA0KPiA+ICsgICAgInR5cGUg PSBzdHJ1Y3QgdGVtcGxhdGVfdmFyMTxpbnQsIGZsb2F0PiBcXFxbd2l0aCA8dW5uYW1lZDA+ID0g aW50LA0KPiBzZWNvbmQgPSBmbG9hdFxcXF0geyIgXA0KPiA+ICsgICAgIiAgICA8dW5uYW1lZDA+ IG1lOyIgXA0KPiA+ICsgICAgIiAgICBzZWNvbmQgbWUyOyIgXA0KPiA+ICsgICAgIn0iXQ0KPiA+ ICsNCj4gPiArZ2RiX3Rlc3QgInB0eXBlIHZhcjIiIFttdWx0aV9saW5lIFwNCj4gPiArICAgICJ0 eXBlID0gY2xhc3MgdGVtcGxhdGVfdmFyMjxpbnQsIGZsb2F0PiBcXFxbd2l0aCA8dW5uYW1lZDA+ ID0gaW50LA0KPiA8dW5uYW1lZDE+ID0gZmxvYXRcXFxdIHsiIFwNCj4gPiArICAgICIgICAgPHVu bmFtZWQwPiBtZTsiIFwNCj4gPiArICAgICIgICAgPHVubmFtZWQxPiBtZTI7IiBcDQo+ID4gKyAg ICAifSJdDQo+ID4gKw0KPiA+ICtnZGJfdGVzdCAicHR5cGUgdmFyMyIgW211bHRpX2xpbmUgXA0K PiA+ICsgICAgInR5cGUgPSBzdHJ1Y3QgdGVtcGxhdGVfdmFyMzwwLCBpbnQsIDExLCBmbG9hdD4g XFxcW3dpdGggPHVubmFtZWQxPiA9DQo+IGludCwgPHVubmFtZWQzPiA9IGZsb2F0XFxcXSB7IiBc DQo+ID4gKyAgICAiICAgIDx1bm5hbWVkMT4gbWU7IiBcDQo+ID4gKyAgICAiICAgIDx1bm5hbWVk Mz4gbWUyOyIgXA0KPiA+ICsgICAgIn0iXQ0KPiANCj4gVGhpcyBsYXN0IHRlc3QgaXMgZmFpbGlu ZyBvbiBteSBzeXN0ZW0sIGEgUkhFTCA4LjcsIHVzaW5nIGJvdGggZ2NjIDguNS4wIGFuZCBnY2MN Cj4gMTIuMS4xOw0KPiB0aGUgZmFpbHVyZSBsb29rcyBsaWtlIHRoaXM6DQo+IA0KPiBgYGANCj4g cHR5cGUgdmFyMw0KPiB0eXBlID0gc3RydWN0IHRlbXBsYXRlX3ZhcjM8MCwgaW50LCAxMDkzNjY0 NzY4LCBmbG9hdD4gW3dpdGggPHVubmFtZWQxPiA9DQo+IGludCwgPHVubmFtZWQzPiA9IGZsb2F0 XSB7DQo+ICAgICAgPHVubmFtZWQxPiBtZTsNCj4gICAgICA8dW5uYW1lZDM+IG1lMjsNCj4gfQ0K PiAoZ2RiKSBGQUlMOiBnZGIuZHdhcmYyL21pc3NpbmctdHlwZS1uYW1lLWZvci10ZW1wbGF0ZXMu ZXhwOiBwdHlwZSB2YXIzDQo+IGBgYA0KPiANCj4gTm90aWNlIHRoZSBpbmNvcnJlY3QgdGhpcmQg cGFyYW1ldGVyLg0KPiANCj4gRmluYWxseSwgaXQgd291bGQgYmUgbmljZSBpZiB5b3UgY291bGQg cHJvdmlkZSBhIC5jYyBmaWxlIHRoYXQgY291bGQgYmUgc29tZXdoYXQNCj4gc2ltaWxhciB0byB0 aGUNCj4gRFdBUkYgeW91IGhhdmUgZGVzY3JpYmVkIGluIHRoZSAuZXhwIGZpbGU/IEl0IHdvdWxk IGhlbHAgY29uZmlybWluZyB0aGF0IHdlDQo+IChvciBhdCBsZWFzdCBtZSkNCj4gdW5kZXJzdGFu ZCB3aGF0IHlvdSB3YW50IHRvIHRlc3QsIGFuZCBtYWtlcyBpdCBlYXNpZXIgZm9yIGZ1dHVyZSBk ZXZlbG9wZXJzDQo+IHRvIHVuZGVyc3RhbmQgeW91ciB0ZXN0Lg0KPiANCg0KU3VyZSwgSSdsbCBj aGFuZ2UgdGhlIC5jYyBmaWxlIHVzZWQhIEFzIGl0IGFueXdheSBzZWVtcyB0byBoYXZlIGEgcHJv YmxlbSB3aXRoDQp3aXRoIG15IHdheSBvZiB1c2luZyB0aGUgM3JkIHBhcmFtZXRlciAoSSB3b25k ZXIgd2h5IEkgY291bGQgbm90IHNlZSBpdCAtDQpJJ2xsIGRvdWJsZSBjaGVjayBhZ2FpbiB3aXRo IG90aGVyIGdjYydzIGFzIHdlbGwpLg0KDQpJJ2xsIHNlbmQgYSB2MiB0aGVuIQ0KDQpDaGVlcnMs DQoNCk5pbHMNCkludGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBD YW1wZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkKVGVsOiArNDkgODkgOTkgODg1My0w LCB3d3cuaW50ZWwuZGUgPGh0dHA6Ly93d3cuaW50ZWwuZGU+Ck1hbmFnaW5nIERpcmVjdG9yczog Q2hyaXN0aW4gRWlzZW5zY2htaWQsIFNoYXJvbiBIZWNrLCBUaWZmYW55IERvb24gU2lsdmEgIApD aGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUKUmVnaXN0ZXJl ZCBPZmZpY2U6IE11bmljaApDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hl biBIUkIgMTg2OTI4Cg==