From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id gZm8LpV3KWqFyT8AWB0awg (envelope-from ) for ; Wed, 10 Jun 2026 10:41:25 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=TougADgI; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id B8CFA1E0A3; Wed, 10 Jun 2026 10:41:25 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id DEB171E070 for ; Wed, 10 Jun 2026 10:41:24 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7AFD64BA2E29 for ; Wed, 10 Jun 2026 14:41:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7AFD64BA2E29 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=TougADgI Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.18]) by sourceware.org (Postfix) with ESMTPS id 0BC894BA5436 for ; Wed, 10 Jun 2026 14:40:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0BC894BA5436 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0BC894BA5436 Authentication-Results: sourceware.org; arc=fail smtp.remote-ip=192.198.163.18 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1781102456; cv=fail; b=US+9H7MtGts4LVooXoMs/bW0V6u8OK+ctHNtlZntf+YcNaSV59l9JWOmFVVDD6WDSdWybYJbdpWF7zgKjQZf53MPvktZt75Hffn968El3G1yRaRpS+z6IqAssGz0trycKNurIP5Ygq4nqFqXhW/x3oUvvI/gMRNruqsZAOhw9+c= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1781102456; c=relaxed/simple; bh=1tvhVTIpNaxO/gbRZjDqdzdNldx8/QpVJbIfq/2GrPY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=iEbh9Lx0wcOE4faNZ3JavxLnw3equUCtGvzVT/RtqhSFTUhvR9N/suQB3g5syBMSc3Kvtd4j18Fys5++2lToNlDysMBwoWRv/wp7vXp6dLXtvSOqLSJTWgBHt9IHgEYnRJU0dRWnPmgqgTIJ1sBPkxCQm2yuY8hGprqlyF4ANr4= ARC-Authentication-Results: i=2; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=TougADgI DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0BC894BA5436 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1781102456; x=1812638456; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=1tvhVTIpNaxO/gbRZjDqdzdNldx8/QpVJbIfq/2GrPY=; b=TougADgIzsEMWcJeY+Z5XyPvcK+eEN/QWBaauLhQYN8LEP3O1SJ/clN1 MdSQPyswedJ5Kuhtvvu/JQOXaVvreunA2TW5wFLBdb4nvKG3QgJ5eKMeN IxDkcdHdAwCRQM3FLpz1PdwRzYz9xHhpcrqdi5poQnUBEhp+FB/Aqipxf tCvKtocz1nWI9NU5neclGIGgbRtNUbjyQB2cMiMV63B3QQonI9M4U+CgN xJsBf8UEJy6QVsoyWU9LNzxe9SdKNXuxuXQ5maHxgb6COHry4RKhRfL4Q R9DDDvXMYQzrEZ9iUlFMlg+KJQukJzzSc6j8Ud5/M9ap2G0Bhs/Xa6CYY w==; X-CSE-ConnectionGUID: 9MRkwY4GQRaL/6gsZvZ8Gw== X-CSE-MsgGUID: OEoYYIPPSUuVyaGVqw+DgQ== X-IronPort-AV: E=McAfee;i="6800,10657,11813"; a="81027202" X-IronPort-AV: E=Sophos;i="6.24,197,1774335600"; d="scan'208";a="81027202" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by fmvoesa112.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2026 07:40:20 -0700 X-CSE-ConnectionGUID: OQ6/WHSjRh2/0Bc5SHtx2g== X-CSE-MsgGUID: CcsrBRPSTlmXupfpnS68Pg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.24,197,1774335600"; d="scan'208";a="250472050" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by orviesa004.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2026 07:40:20 -0700 Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Wed, 10 Jun 2026 07:40:19 -0700 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Wed, 10 Jun 2026 07:40:19 -0700 Received: from CO1PR03CU002.outbound.protection.outlook.com (52.101.46.62) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Wed, 10 Jun 2026 07:40:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kQRMrF0g2BxxL+2FN1yu4dhBVj45vtGZwYxlvn1CXxY8L5qVTEdC9iU8aScgGRHhiQGpdSnCAtLcxqklXqzgDUGGtQgl8k/OxlPaeQ7T8ohQG9HGgatEcpkr6DK0XC5nJz6IYBmE9a6g1hthaH8vLXhmv6iN8JQ4kYy9OTNuBAZBqf2vvMwLKa3pQnv9OxwEisFmWyeKDxguWrPkGfC7AZ9yFXPGWfhnjga6Wn63P8Iz4Liy0RiGX21k0bPHM/NYtyANSG6fPqjxLmSfIkmNFA1q1QK6bFczg6IagCrlI1rGa3mEw6eX3lmTYabIwG86v8iIL+wUVl9hnzgjrrlM1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=/V33IOV9HyeKoH5pGg/7bI0Acr4x/PbHquc3B8VC3ME=; b=l2naOQQbYElkIt6Ui2q8I/1TpFpe9l7s3bgLqz2RlH+K9yskRNG/jVucBOhveQmtLWu4ltKUHAYl1Izeewkm9jTrQF4q3ic4W61cPHDQcdgK4Dsgzg0fuF2yLvIb6vshbiEYovnj8yp9jCzM6bMlEW09GJV7zQHWtGaY9Ivkuw7Vx+AcD4FPPDT92pea9QJar35g7MhVgd7L3Su5du0RA3WhUmEXATJF0e18l8XOYRHf9kbppF2Ziq6wdeivTs2/wI5rMToVGWjmex4X+jcQRyP3iVq+xL3xi8+STYzn5GrKrHkxLj8hvQMbvXOKb8O4zbQo1co5sWvHvBC1AqmtBw== 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 SN7PR11MB7638.namprd11.prod.outlook.com (2603:10b6:806:34b::22) by SA1PR11MB5921.namprd11.prod.outlook.com (2603:10b6:806:22a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.13; Wed, 10 Jun 2026 14:40:14 +0000 Received: from SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011]) by SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::7a35:98d:f02c:b011%3]) with mapi id 15.21.0092.006; Wed, 10 Jun 2026 14:40:14 +0000 From: "Schimpe, Christina" To: Guinevere Larsen , "gdb-patches@sourceware.org" Subject: RE: [PATCH v4 2/8] gdb/record: factor out reading and writing the execution log to corefile Thread-Topic: [PATCH v4 2/8] gdb/record: factor out reading and writing the execution log to corefile Thread-Index: AQHc8p0yJs/qPw/uRkCEzqtf+Gh+drY33uVw Date: Wed, 10 Jun 2026 14:40:14 +0000 Message-ID: References: <20260602143342.12245-1-guinevere@redhat.com> <20260602143342.12245-3-guinevere@redhat.com> In-Reply-To: <20260602143342.12245-3-guinevere@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN7PR11MB7638:EE_|SA1PR11MB5921:EE_ x-ms-office365-filtering-correlation-id: c4e812d3-fe19-4b12-8dfc-08dec6fe2ec3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|23010399003|376014|38070700021|18002099003|6133799003|3023799007|22082099003|56012099006|4143699003|11063799006; x-microsoft-antispam-message-info: 1pvuYZBSXbinre7PdQEDh8DW6qrhp+TDRWWZVEHagL5ZU3g0bB969PiKefG1i9bIj84C46e1r3+5eQFFD1StKTHQZdwmXfgDzcvBW5ZDrtzN9F8DajtwzHEF5ucOhFzGINVihI9NsJ1S2s0y7nbUFkMYFhfbp5oysE2qhAXboVkMVgk1BEV8HhGklHvM0b5o4JMSY25HvTip/Y5I/weKSiBUQvLW2WQed8evTTDuZNMtuikmlsiFigrVJZLSXEGTJ3UomW0JYiYcnmZOz4cyKx/VcIlerYdo+LNsOb+aUK97IP+Zzey4hhY7Ja5CJlRfAl8AJuzXtyG3rIYjmpJhpUSXeUHFNjYXWOAh3llygSGL+8KeYy9H6LDSpEs0g4KiKmYSEuRKsnePZpw37G6RRT/PmaFW6hXHBAOWOCGoDtniQ+oWLyxRZEHPXrb4xaWgtv70P8aR4S8eckoy0t3qxtZ2FTN4Zo/aDmGot5lidHngjC4+FviDvnFp/+R35ZUHLYnFFgDV4q8QRBH5IGyyqxGXPmGzaIeSpUXWxDvvkZSWuuarr8/LOMN9ExkEkkZVBc4VEwqwzS09XoU8Sr68dL7Yf5bxu+6pT71KSM/vCaUmIPxkdDgESdYAIhOlZJpaNoQZ1itw5z3QLYZLvUoCOroPIwN+TPtR4hJYDP7x7sMgbsn7Pcr4VAIYUKNJuFBfGzniS8soqZ0V9J7L1Hoq+3CjjEYZeHBZrLqR3O6eQqPS8lSTUe9tmAciknyKXfgw x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB7638.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(38070700021)(18002099003)(6133799003)(3023799007)(22082099003)(56012099006)(4143699003)(11063799006); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c1hJR0hFbHNtT3J5TC9lSVRkSlFDU3gvaVJUcFVMa0NIMkRReU9TQXBjbExj?= =?utf-8?B?Q0NuTzdySXM2MGdBeTFHdTZEQmMxTGl3U1dLUWxmME1iOGtFaG5mMDRkd0Uy?= =?utf-8?B?QVFNU1NwWGlaUTVJT2FYdThYM2F5a2FUNUR6cFk2RkJ4ek9mSUw1NlpuR2R4?= =?utf-8?B?a290eEl2bERTR094d2YyYWgrdDhIZ3Rxb1NqZ1FRak8vR0Nzem1sc3R3YVdi?= =?utf-8?B?OHFnRU4xcHRyOHlScUlpdFZGQlVnMzUxdjVRYmJObDJXYlVXbFdhQ0lZQUxh?= =?utf-8?B?NDhKbWUyczBlZ3F4cXQ5NkZqeHZxaVM4MTJrVlVZT3gxUmdFNnQ4V0Y3elRH?= =?utf-8?B?eDJmMUszSGIzR1lSUlV3anNLcVdoUDIxbXNBSVF3bGc0VjRvYWZRRGFYMkhI?= =?utf-8?B?aVJYWTdDUGRmd1JLeU0wYTdIYzErN01MM2NucEpMUlBkSUlaMnJWSmt2Wk9E?= =?utf-8?B?SW42VEpQbHIxUVhyOHl1TG0raFBkRytBZE9mcXFqc3gxbURYSmpsTjZNMTNY?= =?utf-8?B?YlIvV1N3Q2dyZlNkRVNONHUvcGJmV280a2RpdnkwOXAvUi9tWnNsVCtoTTUx?= =?utf-8?B?VnBwNVVPSjNTWXJpZFdkMXRhVkJaMy9pV2RhQWFEMmluSU1Gdlh6aU85TkU2?= =?utf-8?B?YzdNM24wYWdQdTVqeVBJaDhCdFhjT01tb2hDelJKeEQyTDhRS3g3REpCeWlE?= =?utf-8?B?RnF4U0FOT2d2NVhkdDBLN2luVEprR2tEbkd4ZWtSMFFvRjhNcFNGOXBQWE1W?= =?utf-8?B?d0pmdGkxeTVIWjdRVk1iVllaOGNXdEpsZGhycVh4bUVZRkxwTjlJSzZFNFpF?= =?utf-8?B?Y0tIeE9xa0wzaGFKU0FZWmppd0dlTGc0Zk9LWVN3Zzg5TDlScFFjYjZWcDBw?= =?utf-8?B?Tmg5enlvaTlDa0huRmZvWWpjYTM3cmxVNTZWakkvb3U5RStHanhac2FMRy9J?= =?utf-8?B?VkJyZ2x0UmxGckkrcWMwU2Q2T2xZYlBYSEhjVmZBSk00L1N5V0RnekZvTjRZ?= =?utf-8?B?RDVTaGI1QlI0R2U3VHQ5clo2SWRZOGhXWkVZalJhNVQyOWxRdVp3TFQzUk9a?= =?utf-8?B?UmhZQUVWOGtETWlOT1pveUhITTlvakhxVUM2T2NyK3lKU0VBWXlXZytGTHRq?= =?utf-8?B?dmNobzNKWkwvcEFiVDdBVFFaNFZJeWV6cWhON3QxRURzQzV3MUhhbnZwT3FW?= =?utf-8?B?aEkxN0dSUkk1dEdiSTlUUjFHYlc0VkhqakhVL1NRSTBBNWErbzFPYWpRLy9O?= =?utf-8?B?K0h0RmFDOEg2TFo4N0x6M0M3OStEL0hqMlVKdkxNZHkzclpCTHBJbVNJWnRW?= =?utf-8?B?ZEsxcElzaXUvZ1BOSU1SQVFWQS9BTGozNkd6NHdoTjkyeDY0cElVY2JJK3Z6?= =?utf-8?B?NjV4dzUrc2x5WXBBVitPU1FMcTYyNVZnUUxrNWZTUy9aR01wdmZvL1liaE1G?= =?utf-8?B?VFd5Ujd3b0E3MHBhMVZIMVUrUWlaZTZmM25SUlA3cXVsNEtPT21YRFduS1lV?= =?utf-8?B?MnJOOUIxK0VBbVd1b09FMStTSUU1ZWovaG9yN0lYdzZoZ0p5Q3hsTS94Vy9l?= =?utf-8?B?SmpsUzBNSjVZVDNxcC94RUt4d1hCdXVRT2pVVWdUM3VaTXZ2TGpuVDJhY0lO?= =?utf-8?B?SlV3MTZkSC9OSE5UaHFoSXdTTGJYVFMwdmlqNFZYUnFWT2kxVHRyamgvQ1lo?= =?utf-8?B?MnNMdlBQd3pKL3ZqVzVGM00xS3E0MUZVditvWHo2VlduN2hpMDB5cStGbkty?= =?utf-8?B?Z21seWFWT1pCeUZ6ajdneGs5bFdiTkpGRnNJY2ZOSDF5cUhaUEt4Z0FNNDBq?= =?utf-8?B?bmkrUTkwR0VGOHc4bzhMQmhvd3hGRFQwRkZoWkhoTTZKTzZBNyszN0o4K2ll?= =?utf-8?B?Zjc1Q3NBaGlLQVlqQ0F0Z1ZvMTBlQ2dKdFN4cXNCbVkxUWdZYjFyOFNmQ1kv?= =?utf-8?B?N0tyNUJIckozdFR2YjhVd3FKbVFwTnkveG1uOGJsZXJTQnJxZ2E1Y3A2ckxw?= =?utf-8?B?YllVYldMa3l1cm8vUVFVc0dBS1VYeHZoQ1VvL0dJWk01Y00xcmNIQXJ3L3JB?= =?utf-8?B?NVRCNXN0YXdWc2M5S0F3dzl5Ui9NSlpNNVp1NDlBeXhxWUFDRUZLaS9pZ25O?= =?utf-8?B?NkxKYk1TU0x0VWF6VjRLQk1CNkxaVTZCOUNXd2JSdVJpSFloWmxkMElYdjND?= =?utf-8?B?elpmaHdoLytSdUVkUzRPZ3piN25JOFBwMjlSdlZab2FDZ0I1VTJTY0pVeEFG?= =?utf-8?B?cFB5b3JmaUk0U0ZPNThCS01KcVRwT3FuaDZibVA0VldqVUxPcmhwMUxSUkhy?= =?utf-8?B?UDAvU1JBd0VXa2lRSkhyb1J3a01ZdGJJcWJlYzNsdEdrZDc3eG0vZz09?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: Hk+X3lNpPX0Xn84fYi6rzfrTGh+zJ1osa4R77dscKhGC2JJeDIYHNH7aDHw6PZR13MRB4oXjLCrVAD9JmiXv+By6sZKTnsGJ3EZCX9HbWKJ8zuG2Y7BrK3QPIR3TAn4zvGuh49n9ZAHJCMIYLSwDG5RDd2v4oOVkO9eY2TXjpocgC2iNElL3TWAANwvE0JbCfm+IhR2YUnPQxH5tfXWyBzMDwUDHBZXJU7i6IRSp7q7GS+dlxW505rIDcBUgGlbm/1Ymq/lNV5QTZeVfCrbk7wVQdcthJVaUGoUdVlpCZTRqN/QIEBvqGNoQniN0BP/YFsxQgQy3UmxTr8LmohKc9g== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4e812d3-fe19-4b12-8dfc-08dec6fe2ec3 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2026 14:40:14.1410 (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: WPbyokTodxpr5PkQnf4/exs/n9Kj7HneyTaViaoffEWJ915TAZ4pb4MsOThg6UKr+hHISxogbWDqUF58iRs3ptZpr3EE85+CIiztU/2ezTA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB5921 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBHdWluZXZlcmUgTGFyc2VuIDxn dWluZXZlcmVAcmVkaGF0LmNvbT4NCj4gU2VudDogRGllbnN0YWcsIDIuIEp1bmkgMjAyNiAxNjoz NA0KPiBUbzogZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcNCj4gQ2M6IEd1aW5ldmVyZSBMYXJz ZW4gPGd1aW5ldmVyZUByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjQgMi84XSBnZGIv cmVjb3JkOiBmYWN0b3Igb3V0IHJlYWRpbmcgYW5kIHdyaXRpbmcgdGhlDQo+IGV4ZWN1dGlvbiBs b2cgdG8gY29yZWZpbGUNCj4gDQo+IEJlZm9yZSB0aGlzIGNvbW1pdCwgdGhlIGZ1bmN0aW9ucyB0 byByZWFkIGFuZCB3cml0ZSB0aGUgZXhlY3V0aW9uIGxvZyB0byBhDQo+IGNvcmVmaWxlIHdvdWxk IHdvdWxkIGhhdmUgYSBsYXJnZSBzZWN0aW9uIGRlZGljYXRlZCB0byBoYW5kbGluZyBhIHNpbmds ZSBlbnRyeQ0KPiBmcm9tIHRoZSBsb2cuICBUaGlzIGNvbW1pdCBmYWN0b3JzIG91dCB0aG9zZSBs YXJnZSBzZWN0aW9ucyBpbnRvIHRoZWlyIG93bg0KPiBmdW5jdGlvbnMsIHJlY29yZF9mdWxsX3Jl YWRfZW50cnlfZnJvbV9iZmQgYW5kDQo+IHJlY29yZF9mdWxsX3dyaXRlX2VudHJ5X3RvX2JmZCwg cmVzcGVjdGl2ZWx5Lg0KPiANCj4gVGhlcmUgc2hvdWxkIGJlIG5vIGZ1bmN0aW9uYWwgY2hhbmdl cyBhZnRlciB0aGlzIGNvbW1pdC4NCj4gLS0tDQo+ICBnZGIvcmVjb3JkLWZ1bGwuYyB8IDI3OSAr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICAxIGZpbGUg Y2hhbmdlZCwgMTQ3IGluc2VydGlvbnMoKyksIDEzMiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg LS1naXQgYS9nZGIvcmVjb3JkLWZ1bGwuYyBiL2dkYi9yZWNvcmQtZnVsbC5jIGluZGV4DQo+IGE2 ZGZlY2Q3ZDFmLi43Y2ZhYWI0OGFlZiAxMDA2NDQNCj4gLS0tIGEvZ2RiL3JlY29yZC1mdWxsLmMN Cj4gKysrIGIvZ2RiL3JlY29yZC1mdWxsLmMNCj4gQEAgLTIxODYsNiArMjE4Niw4MyBAQCBuZXRv cmRlcjMyICh1aW50MzJfdCBpbnB1dCkNCj4gICAgcmV0dXJuIHJldDsNCj4gIH0NCj4gDQo+ICtz dGF0aWMgdm9pZA0KPiArcmVjb3JkX2Z1bGxfcmVhZF9lbnRyeV9mcm9tX2JmZCAoYmZkICpjYmZk LCBhc2VjdGlvbiAqb3NlYywgaW50DQo+ICsqYmZkX29mZnNldCkgew0KPiArICB1aW50OF90IHJl Y3R5cGU7DQo+ICsgIHVpbnQzMl90IHJlZ251bSwgbGVuOw0KPiArICB1aW50NjRfdCBhZGRyOw0K PiArICByZWdjYWNoZSAqY2FjaGUgPSBnZXRfdGhyZWFkX3JlZ2NhY2hlIChpbmZlcmlvcl90aHJl YWQgKCkpOw0KPiArDQo+ICsgIGJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJnJlY3R5cGUsIHNp emVvZiAocmVjdHlwZSksIGJmZF9vZmZzZXQpOw0KPiArDQo+ICsgIHN3aXRjaCAocmVjdHlwZSkN Cj4gKyAgICB7DQo+ICsgICAgY2FzZSByZWNvcmRfZnVsbF9yZWc6IC8qIHJlZyAqLw0KPiArICAg ICAgew0KPiArCS8qIEdldCByZWdpc3RlciBudW1iZXIgdG8gcmVnbnVtLiAgKi8NCj4gKwliZmRj b3JlX3JlYWQgKGNiZmQsIG9zZWMsICZyZWdudW0sIHNpemVvZiAocmVnbnVtKSwgYmZkX29mZnNl dCk7DQo+ICsJcmVnbnVtID0gbmV0b3JkZXIzMiAocmVnbnVtKTsNCj4gKw0KPiArCXJlY29yZF9m dWxsX2VudHJ5IHJlYzsNCj4gKw0KPiArCXJlYyA9IHJlY29yZF9mdWxsX3JlZ19pbml0IChjYWNo ZSwgcmVnbnVtKTsNCj4gKw0KPiArCS8qIEdldCB2YWwuICAqLw0KPiArCWJmZGNvcmVfcmVhZCAo Y2JmZCwgb3NlYywgcmVjb3JkX2Z1bGxfZ2V0X2xvYyAoJnJlYyksDQo+ICsJCSAgICAgIHJlYy51 LnJlZy5sZW4sIGJmZF9vZmZzZXQpOw0KPiArDQo+ICsJaWYgKHJlY29yZF9kZWJ1ZykNCj4gKwkg IGdkYl9wcmludGYgKGdkYl9zdGRsb2csDQo+ICsJCSAgICAgICIgIFJlYWRpbmcgcmVnaXN0ZXIg JWQgKDEgIg0KPiArCQkgICAgICAicGx1cyAlbHUgcGx1cyAlZCBieXRlcylcbiIsDQo+ICsJCSAg ICAgIHJlYy51LnJlZy5udW0sDQo+ICsJCSAgICAgICh1bnNpZ25lZCBsb25nKSBzaXplb2YgKHJl Z251bSksDQo+ICsJCSAgICAgIHJlYy51LnJlZy5sZW4pOw0KPiArDQo+ICsJcmVjb3JkX2Z1bGxf YXJjaF9saXN0X2FkZCAocmVjKTsNCj4gKwlicmVhazsNCj4gKyAgICAgIH0NCj4gKw0KPiArICAg IGNhc2UgcmVjb3JkX2Z1bGxfbWVtOiAvKiBtZW0gKi8NCj4gKyAgICAgIHsNCj4gKyAgICAgIC8q IEdldCBsZW4uICAqLw0KPiArCWJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJmxlbiwgc2l6ZW9m IChsZW4pLCBiZmRfb2Zmc2V0KTsNCj4gKwlsZW4gPSBuZXRvcmRlcjMyIChsZW4pOw0KPiArDQo+ ICsJLyogR2V0IGFkZHIuICAqLw0KPiArCWJmZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgJmFkZHIs IHNpemVvZiAoYWRkciksIGJmZF9vZmZzZXQpOw0KPiArCWFkZHIgPSBuZXRvcmRlcjY0IChhZGRy KTsNCj4gKw0KPiArCXJlY29yZF9mdWxsX2VudHJ5IHJlYzsNCj4gKwlyZWMgPSByZWNvcmRfZnVs bF9tZW1faW5pdCAoYWRkciwgbGVuKTsNCj4gKw0KPiArCS8qIEdldCB2YWwuICAqLw0KPiArCWJm ZGNvcmVfcmVhZCAoY2JmZCwgb3NlYywgcmVjb3JkX2Z1bGxfZ2V0X2xvYyAoJnJlYyksDQo+ICsJ CSAgICAgIGxlbiwgYmZkX29mZnNldCk7DQo+ICsNCj4gKwlpZiAocmVjb3JkX2RlYnVnKQ0KPiAr CSAgZ2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywNCj4gKwkJICAgICAgIiAgUmVhZGluZyBtZW1vcnkg JXMgKDEgcGx1cyAiDQo+ICsJCSAgICAgICIlbHUgcGx1cyAlbHUgcGx1cyAlZCBieXRlcylcbiIs DQo+ICsJCSAgICAgIHBhZGRyZXNzIChnZXRfY3VycmVudF9hcmNoICgpLA0KPiArCQkJCXJlYy51 Lm1lbS5hZGRyKSwNCj4gKwkJICAgICAgKHVuc2lnbmVkIGxvbmcpIHNpemVvZiAoYWRkciksDQo+ ICsJCSAgICAgICh1bnNpZ25lZCBsb25nKSBzaXplb2YgKGxlbiksDQo+ICsJCSAgICAgIHJlYy51 Lm1lbS5sZW4pOw0KPiArDQo+ICsJcmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZCAocmVjKTsNCj4g KwlicmVhazsNCj4gKyAgICAgIH0NCj4gKw0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICBlcnJv ciAoXygiQmFkIGVudHJ5IHR5cGUgaW4gY29yZSBmaWxlICVwcy4iKSwNCj4gKwkgICAgIHN0eWxl ZF9zdHJpbmcgKGZpbGVfbmFtZV9zdHlsZS5zdHlsZSAoKSwNCj4gKwkJCSAgICBiZmRfZ2V0X2Zp bGVuYW1lIChjYmZkKSkpOw0KPiArICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ ICAvKiBSZXN0b3JlIHRoZSBleGVjdXRpb24gbG9nIGZyb20gY29yZSBmaWxlIENCRkQuICAqLw0K PiANCj4gIHN0YXRpYyB2b2lkDQo+IEBAIC0yMjI5LDEzICsyMzA2LDEwIEBAIHJlY29yZF9mdWxs X3Jlc3RvcmUgKHN0cnVjdCBiZmQgJmNiZmQpDQo+IA0KPiAgICB0cnkNCj4gICAgICB7DQo+IC0g ICAgICByZWdjYWNoZSAqcmVnY2FjaGUgPSBnZXRfdGhyZWFkX3JlZ2NhY2hlIChpbmZlcmlvcl90 aHJlYWQgKCkpOw0KPiAtDQo+ICAgICAgICB3aGlsZSAoYmZkX29mZnNldCA8IG9zZWNfc2l6ZSkN Cj4gIAl7DQo+IC0JICB1aW50OF90IHJlY3R5cGUsIHNpZ3ZhbDsNCj4gLQkgIHVpbnQzMl90IHJl Z251bSwgbGVuLCBlZmZfY291bnQsIGluc25fbnVtOw0KPiAtCSAgdWludDY0X3QgYWRkcjsNCj4g KwkgIHVpbnQ4X3Qgc2lndmFsOw0KPiArCSAgdWludDMyX3QgZWZmX2NvdW50LCBpbnNuX251bTsN Cj4gDQo+ICAJICByZWNvcmRfZnVsbF9yZXNldF9pbmNvbXBsZXRlICgpOw0KPiANCj4gQEAgLTIy NTYsNzYgKzIzMzAsNyBAQCByZWNvcmRfZnVsbF9yZXN0b3JlIChzdHJ1Y3QgYmZkICZjYmZkKQ0K PiAgCSAgICB7DQo+ICAJICAgICAgZWZmX2NvdW50LS07DQo+IA0KPiAtCSAgICAgIGJmZGNvcmVf cmVhZCAoJmNiZmQsIG9zZWMsICZyZWN0eXBlLCBzaXplb2YgKHJlY3R5cGUpLA0KPiAmYmZkX29m ZnNldCk7DQo+IC0NCj4gLQkgICAgICBzd2l0Y2ggKHJlY3R5cGUpDQo+IC0JCXsNCj4gLQkJY2Fz ZSByZWNvcmRfZnVsbF9yZWc6IC8qIHJlZyAqLw0KPiAtCQkgIHsNCj4gLQkJICAgIC8qIEdldCBy ZWdpc3RlciBudW1iZXIgdG8gcmVnbnVtLiAgKi8NCj4gLQkJICAgIGJmZGNvcmVfcmVhZCAoJmNi ZmQsIG9zZWMsICZyZWdudW0sIHNpemVvZiAocmVnbnVtKSwNCj4gLQkJCQkgICZiZmRfb2Zmc2V0 KTsNCj4gLQkJICAgIHJlZ251bSA9IG5ldG9yZGVyMzIgKHJlZ251bSk7DQo+IC0NCj4gLQkJICAg IHJlY29yZF9mdWxsX2VudHJ5IHJlYzsNCj4gLQ0KPiAtCQkgICAgcmVjID0gcmVjb3JkX2Z1bGxf cmVnX2luaXQgKHJlZ2NhY2hlLCByZWdudW0pOw0KPiAtDQo+IC0JCSAgICAvKiBHZXQgdmFsLiAg Ki8NCj4gLQkJICAgIGJmZGNvcmVfcmVhZCAoJmNiZmQsIG9zZWMsIHJlY29yZF9mdWxsX2dldF9s b2MgKCZyZWMpLA0KPiAtCQkJCSAgcmVjLnUucmVnLmxlbiwgJmJmZF9vZmZzZXQpOw0KPiAtDQo+ IC0JCSAgICBpZiAocmVjb3JkX2RlYnVnKQ0KPiAtCQkgICAgICBnZGJfcHJpbnRmIChnZGJfc3Rk bG9nLA0KPiAtCQkJCSAgIiAgUmVhZGluZyByZWdpc3RlciAlZCAoMSAiDQo+IC0JCQkJICAicGx1 cyAlbHUgcGx1cyAlZCBieXRlcylcbiIsDQo+IC0JCQkJICByZWMudS5yZWcubnVtLA0KPiAtCQkJ CSAgKHVuc2lnbmVkIGxvbmcpIHNpemVvZiAocmVnbnVtKSwNCj4gLQkJCQkgIHJlYy51LnJlZy5s ZW4pOw0KPiAtDQo+IC0JCSAgICByZWNvcmRfZnVsbF9hcmNoX2xpc3RfYWRkIChyZWMpOw0KPiAt CQkgICAgYnJlYWs7DQo+IC0JCSAgfQ0KPiAtDQo+IC0JCWNhc2UgcmVjb3JkX2Z1bGxfbWVtOiAv KiBtZW0gKi8NCj4gLQkJICB7DQo+IC0JCSAgLyogR2V0IGxlbi4gICovDQo+IC0JCSAgICBiZmRj b3JlX3JlYWQgKCZjYmZkLCBvc2VjLCAmbGVuLCBzaXplb2YgKGxlbiksDQo+IC0JCQkJICAmYmZk X29mZnNldCk7DQo+IC0JCSAgICBsZW4gPSBuZXRvcmRlcjMyIChsZW4pOw0KPiAtDQo+IC0JCSAg ICAvKiBHZXQgYWRkci4gICovDQo+IC0JCSAgICBiZmRjb3JlX3JlYWQgKCZjYmZkLCBvc2VjLCAm YWRkciwgc2l6ZW9mIChhZGRyKSwNCj4gLQkJCQkgICZiZmRfb2Zmc2V0KTsNCj4gLQkJICAgIGFk ZHIgPSBuZXRvcmRlcjY0IChhZGRyKTsNCj4gLQ0KPiAtCQkgICAgcmVjb3JkX2Z1bGxfZW50cnkg cmVjOw0KPiAtCQkgICAgcmVjID0gcmVjb3JkX2Z1bGxfbWVtX2luaXQgKGFkZHIsIGxlbik7DQo+ IC0NCj4gLQkJICAgIC8qIEdldCB2YWwuICAqLw0KPiAtCQkgICAgYmZkY29yZV9yZWFkICgmY2Jm ZCwgb3NlYywgcmVjb3JkX2Z1bGxfZ2V0X2xvYyAoJnJlYyksDQo+IC0JCQkJICBsZW4sICZiZmRf b2Zmc2V0KTsNCj4gLQ0KPiAtCQkgICAgaWYgKHJlY29yZF9kZWJ1ZykNCj4gLQkJICAgICAgZ2Ri X3ByaW50ZiAoZ2RiX3N0ZGxvZywNCj4gLQkJCQkgICIgIFJlYWRpbmcgbWVtb3J5ICVzICgxIHBs dXMgIg0KPiAtCQkJCSAgIiVsdSBwbHVzICVsdSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gLQkJCQkg IHBhZGRyZXNzIChnZXRfY3VycmVudF9hcmNoICgpLA0KPiAtCQkJCQkgICAgcmVjLnUubWVtLmFk ZHIpLA0KPiAtCQkJCSAgKHVuc2lnbmVkIGxvbmcpIHNpemVvZiAoYWRkciksDQo+IC0JCQkJICAo dW5zaWduZWQgbG9uZykgc2l6ZW9mIChsZW4pLA0KPiAtCQkJCSAgcmVjLnUubWVtLmxlbik7DQo+ IC0NCj4gLQkJICAgIHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGQgKHJlYyk7DQo+IC0JCSAgICBi cmVhazsNCj4gLQkJICB9DQo+IC0NCj4gLQkJZGVmYXVsdDoNCj4gLQkJICBlcnJvciAoXygiQmFk IGVudHJ5IHR5cGUgaW4gY29yZSBmaWxlICVwcy4iKSwNCj4gLQkJCSBzdHlsZWRfc3RyaW5nIChm aWxlX25hbWVfc3R5bGUuc3R5bGUgKCksDQo+IC0JCQkJCWJmZF9nZXRfZmlsZW5hbWUgKCZjYmZk KSkpOw0KPiAtCQkgIGJyZWFrOw0KPiAtCQl9DQo+ICsJICAgICAgcmVjb3JkX2Z1bGxfcmVhZF9l bnRyeV9mcm9tX2JmZCAoJmNiZmQsIG9zZWMsICZiZmRfb2Zmc2V0KTsNCj4gIAkgICAgfQ0KPiAN Cj4gIAkgIHJlY29yZF9mdWxsX3NhdmVfaW5zdHJ1Y3Rpb24gKCk7DQo+IEBAIC0yMzgyLDYgKzIz ODcsNzEgQEAgY21kX3JlY29yZF9mdWxsX3Jlc3RvcmUgKGNvbnN0IGNoYXIgKmFyZ3MsIGludA0K PiBmcm9tX3R0eSkNCj4gICAgcmVjb3JkX2Z1bGxfb3BlbiAobnVsbHB0ciwgZnJvbV90dHkpOyAg fQ0KPiANCj4gK3N0YXRpYyB2b2lkDQo+ICtyZWNvcmRfZnVsbF93cml0ZV9lbnRyeV90b19iZmQg KHJlY29yZF9mdWxsX2VudHJ5ICZlbnRyeSwNCj4gKwkJCQlnZGJfYmZkX3JlZl9wdHIgb2JmZCwN Cj4gKwkJCQlhc2VjdGlvbiAqb3NlYywgaW50ICpiZmRfb2Zmc2V0LA0KPiArCQkJCWdkYmFyY2gg KmdkYmFyY2gpDQo+ICt7DQoNCkNvdWxkIHlvdSB1c2UgY29uc3QgZ2RiX2JmZF9yZWZfcHRyICZi ZmQgaGVyZSA/DQoNCkFuZCB1c3VhbGx5LCBnZGJhcmNoIGlzIHRoZSBmaXJzdCBmdW5jdGlvbiBw YXJhbWV0ZXIsIGJ1dCB0aGlzIHByb2JhYmx5IGRvZXNuJ3QgcmVhbGx5IG1hdHRlci4NCkknbSBq dXN0IHNvIHVzZWQgdG8gaXQuDQoNCj4gKyAgLyogU2F2ZSBlbnRyeS4gICovDQo+ICsgIHVpbnQ4 X3QgdHlwZTsNCj4gKyAgdWludDMyX3QgcmVnbnVtLCBsZW47DQo+ICsgIHVpbnQ2NF90IGFkZHI7 DQo+ICsNCj4gKyAgdHlwZSA9IGVudHJ5LnR5cGU7DQo+ICsgIGJmZGNvcmVfd3JpdGUgKG9iZmQu Z2V0ICgpLCBvc2VjLCAmdHlwZSwgc2l6ZW9mICh0eXBlKSwgYmZkX29mZnNldCk7DQo+ICsNCj4g KyAgc3dpdGNoIChlbnRyeS50eXBlKQ0KPiArICAgIHsNCj4gKyAgICBjYXNlIHJlY29yZF9mdWxs X3JlZzogLyogcmVnICovDQo+ICsgICAgICBpZiAocmVjb3JkX2RlYnVnKQ0KPiArCWdkYl9wcmlu dGYgKGdkYl9zdGRsb2csDQo+ICsJCSAgICAiICBXcml0aW5nIHJlZ2lzdGVyICVkICgxICINCj4g KwkJICAgICJwbHVzICVsdSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gKwkJICAgIGVudHJ5LnUucmVn Lm51bSwNCj4gKwkJICAgICh1bnNpZ25lZCBsb25nKSBzaXplb2YgKHJlZ251bSksDQo+ICsJCSAg ICBlbnRyeS51LnJlZy5sZW4pOw0KPiArDQo+ICsgICAgICAvKiBXcml0ZSByZWdudW0uICAqLw0K PiArICAgICAgcmVnbnVtID0gbmV0b3JkZXIzMiAoZW50cnkudS5yZWcubnVtKTsNCj4gKyAgICAg IGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAmcmVnbnVtLA0KPiArCQkgICAgIHNp emVvZiAocmVnbnVtKSwgYmZkX29mZnNldCk7DQo+ICsNCj4gKyAgICAgIC8qIFdyaXRlIHJlZ3Zh bC4gICovDQo+ICsgICAgICBiZmRjb3JlX3dyaXRlIChvYmZkLmdldCAoKSwgb3NlYywNCj4gKwkJ ICAgICByZWNvcmRfZnVsbF9nZXRfbG9jICgmZW50cnkpLA0KPiArCQkgICAgIGVudHJ5LnUucmVn LmxlbiwgYmZkX29mZnNldCk7DQo+ICsgICAgICBicmVhazsNCj4gKw0KPiArICAgIGNhc2UgcmVj b3JkX2Z1bGxfbWVtOiAvKiBtZW0gKi8NCj4gKyAgICAgIGlmIChyZWNvcmRfZGVidWcpDQo+ICsJ Z2RiX3ByaW50ZiAoZ2RiX3N0ZGxvZywNCj4gKwkJICAgICIgIFdyaXRpbmcgbWVtb3J5ICVzICgx IHBsdXMgIg0KPiArCQkgICAgIiVsdSBwbHVzICVsdSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gKwkJ ICAgIHBhZGRyZXNzIChnZGJhcmNoLA0KPiArCQkJICAgICAgZW50cnkudS5tZW0uYWRkciksDQo+ ICsJCSAgICAodW5zaWduZWQgbG9uZykgc2l6ZW9mIChhZGRyKSwNCj4gKwkJICAgICh1bnNpZ25l ZCBsb25nKSBzaXplb2YgKGxlbiksDQo+ICsJCSAgICBlbnRyeS51Lm1lbS5sZW4pOw0KPiArDQo+ ICsgICAgICAvKiBXcml0ZSBtZW1sZW4uICAqLw0KPiArICAgICAgbGVuID0gbmV0b3JkZXIzMiAo ZW50cnkudS5tZW0ubGVuKTsNCj4gKyAgICAgIGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBv c2VjLCAmbGVuLCBzaXplb2YgKGxlbiksDQo+ICsJCSAgICAgYmZkX29mZnNldCk7DQo+ICsNCj4g KyAgICAgIC8qIFdyaXRlIG1lbWFkZHIuICAqLw0KPiArICAgICAgYWRkciA9IG5ldG9yZGVyNjQg KGVudHJ5LnUubWVtLmFkZHIpOw0KPiArICAgICAgYmZkY29yZV93cml0ZSAob2JmZC5nZXQgKCks IG9zZWMsICZhZGRyLA0KPiArCQkgICAgIHNpemVvZiAoYWRkciksIGJmZF9vZmZzZXQpOw0KPiAr DQo+ICsgICAgICAvKiBXcml0ZSBtZW12YWwuICAqLw0KPiArICAgICAgYmZkY29yZV93cml0ZSAo b2JmZC5nZXQgKCksIG9zZWMsDQo+ICsJCSAgICAgcmVjb3JkX2Z1bGxfZ2V0X2xvYyAoJmVudHJ5 KSwNCj4gKwkJICAgICBlbnRyeS51Lm1lbS5sZW4sIGJmZF9vZmZzZXQpOw0KPiArICAgICAgYnJl YWs7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICAvKiBTYXZlIHRoZSBleGVjdXRpb24gbG9nIHRv IGEgZmlsZS4gIFdlIHVzZSBhIG1vZGlmaWVkIGVsZiBjb3JlZmlsZQ0KPiAgICAgZm9ybWF0LCB3 aXRoIGFuIGV4dHJhIHNlY3Rpb24gZm9yIG91ciBkYXRhLiAgKi8NCj4gDQo+IEBAIC0yNDgzLDYz ICsyNTUzLDggQEAgcmVjb3JkX2Z1bGxfYmFzZV90YXJnZXQ6OnNhdmVfcmVjb3JkIChjb25zdCBj aGFyDQo+ICpyZWNmaWxlbmFtZSkNCj4gDQo+ICAgICAgICBmb3IgKGF1dG8gJmVudHJ5IDogcmVj b3JkX2Z1bGxfbGlzdFtpXS5lZmZlY3RzKQ0KPiAgCXsNCj4gLQkgIC8qIFNhdmUgZW50cnkuICAq Lw0KPiAtCSAgdWludDhfdCB0eXBlOw0KPiAtCSAgdWludDMyX3QgcmVnbnVtLCBsZW47DQo+IC0J ICB1aW50NjRfdCBhZGRyOw0KPiAtDQo+IC0JICB0eXBlID0gZW50cnkudHlwZTsNCj4gLQkgIGJm ZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgpLCBvc2VjLCAmdHlwZSwgc2l6ZW9mICh0eXBlKSwgJmJm ZF9vZmZzZXQpOw0KPiAtDQo+IC0JICBzd2l0Y2ggKGVudHJ5LnR5cGUpDQo+IC0JICAgIHsNCj4g LQkgICAgY2FzZSByZWNvcmRfZnVsbF9yZWc6IC8qIHJlZyAqLw0KPiAtCSAgICAgIGlmIChyZWNv cmRfZGVidWcpDQo+IC0JCWdkYl9wcmludGYgKGdkYl9zdGRsb2csDQo+IC0JCQkgICAgIiAgV3Jp dGluZyByZWdpc3RlciAlZCAoMSAiDQo+IC0JCQkgICAgInBsdXMgJWx1IHBsdXMgJWQgYnl0ZXMp XG4iLA0KPiAtCQkJICAgIGVudHJ5LnUucmVnLm51bSwNCj4gLQkJCSAgICAodW5zaWduZWQgbG9u Zykgc2l6ZW9mIChyZWdudW0pLA0KPiAtCQkJICAgIGVudHJ5LnUucmVnLmxlbik7DQo+IC0NCj4g LQkgICAgICAvKiBXcml0ZSByZWdudW0uICAqLw0KPiAtCSAgICAgIHJlZ251bSA9IG5ldG9yZGVy MzIgKGVudHJ5LnUucmVnLm51bSk7DQo+IC0JICAgICAgYmZkY29yZV93cml0ZSAob2JmZC5nZXQg KCksIG9zZWMsICZyZWdudW0sDQo+IC0JCQkgICAgIHNpemVvZiAocmVnbnVtKSwgJmJmZF9vZmZz ZXQpOw0KPiAtDQo+IC0JICAgICAgLyogV3JpdGUgcmVndmFsLiAgKi8NCj4gLQkgICAgICBiZmRj b3JlX3dyaXRlIChvYmZkLmdldCAoKSwgb3NlYywNCj4gLQkJCSAgICAgcmVjb3JkX2Z1bGxfZ2V0 X2xvYyAoJmVudHJ5KSwNCj4gLQkJCSAgICAgZW50cnkudS5yZWcubGVuLCAmYmZkX29mZnNldCk7 DQo+IC0JICAgICAgYnJlYWs7DQo+IC0NCj4gLQkgICAgY2FzZSByZWNvcmRfZnVsbF9tZW06IC8q IG1lbSAqLw0KPiAtCSAgICAgIGlmIChyZWNvcmRfZGVidWcpDQo+IC0JCWdkYl9wcmludGYgKGdk Yl9zdGRsb2csDQo+IC0JCQkgICAgIiAgV3JpdGluZyBtZW1vcnkgJXMgKDEgcGx1cyAiDQo+IC0J CQkgICAgIiVsdSBwbHVzICVsdSBwbHVzICVkIGJ5dGVzKVxuIiwNCj4gLQkJCSAgICBwYWRkcmVz cyAoZ2RiYXJjaCwNCj4gLQkJCQkgICAgICBlbnRyeS51Lm1lbS5hZGRyKSwNCj4gLQkJCSAgICAo dW5zaWduZWQgbG9uZykgc2l6ZW9mIChhZGRyKSwNCj4gLQkJCSAgICAodW5zaWduZWQgbG9uZykg c2l6ZW9mIChsZW4pLA0KPiAtCQkJICAgIGVudHJ5LnUubWVtLmxlbik7DQo+IC0NCj4gLQkgICAg ICAvKiBXcml0ZSBtZW1sZW4uICAqLw0KPiAtCSAgICAgIGxlbiA9IG5ldG9yZGVyMzIgKGVudHJ5 LnUubWVtLmxlbik7DQo+IC0JICAgICAgYmZkY29yZV93cml0ZSAob2JmZC5nZXQgKCksIG9zZWMs ICZsZW4sIHNpemVvZiAobGVuKSwNCj4gLQkJCSAgICAgJmJmZF9vZmZzZXQpOw0KPiAtDQo+IC0J ICAgICAgLyogV3JpdGUgbWVtYWRkci4gICovDQo+IC0JICAgICAgYWRkciA9IG5ldG9yZGVyNjQg KGVudHJ5LnUubWVtLmFkZHIpOw0KPiAtCSAgICAgIGJmZGNvcmVfd3JpdGUgKG9iZmQuZ2V0ICgp LCBvc2VjLCAmYWRkciwNCj4gLQkJCSAgICAgc2l6ZW9mIChhZGRyKSwgJmJmZF9vZmZzZXQpOw0K PiAtDQo+IC0JICAgICAgLyogV3JpdGUgbWVtdmFsLiAgKi8NCj4gLQkgICAgICBiZmRjb3JlX3dy aXRlIChvYmZkLmdldCAoKSwgb3NlYywNCj4gLQkJCSAgICAgcmVjb3JkX2Z1bGxfZ2V0X2xvYyAo JmVudHJ5KSwNCj4gLQkJCSAgICAgZW50cnkudS5tZW0ubGVuLCAmYmZkX29mZnNldCk7DQo+IC0J ICAgICAgYnJlYWs7DQo+IC0JICAgIH0NCj4gKwkgIHJlY29yZF9mdWxsX3dyaXRlX2VudHJ5X3Rv X2JmZCAoZW50cnksIG9iZmQsIG9zZWMsICZiZmRfb2Zmc2V0LA0KPiArCQkJCQkgIGdkYmFyY2gp Ow0KPiAgCX0NCj4gDQo+ICAgICAgICBpZiAoaSA8IHJlY29yZF9mdWxsX25leHRfaW5zbikNCj4g LS0NCj4gMi41NC4wDQo+IA0KDQpCZXNpZGVzIHRoZSAyIG1pbm9yIG9wdGlvbmFsIGNvbW1lbnRz LCBMR1RNOg0KDQpSZXZpZXdlZC1CeTogQ2hyaXN0aW5hIFNjaGltcGUgPGNocmlzdGluYS5zY2hp bXBlQGludGVsLmNvbT4NCg0KQ2hyaXN0aW5hDQoNCkludGVsIERldXRzY2hsYW5kIEdtYkgKClJl Z2lzdGVyZWQgQWRkcmVzczogRG9ybmFjaGVyIFN0cmFzc2UgMSwgODU2MjIgRmVsZGtpcmNoZW4s IEdlcm1hbnkKVGVsOiArNDkgODkgOTkxIDQzMCwgd3d3LmludGVsLmRlCk1hbmFnaW5nIERpcmVj dG9yczogSGFycnkgRGVtYXMsIEplZmZyZXkgU2NobmVpZGVybWFuLCBZaW4gQ2hvbmcgU29ycmVs bApDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUKUmVnaXN0 ZXJlZCBTZWF0OiBNdW5pY2gKQ29tbWVyY2lhbCBSZWdpc3RlcjogQW10c2dlcmljaHQgTXVlbmNo ZW4gSFJCIDE4NjkyOAo=