Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHbbC-0001Bp-G1 for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jan 2023 02:21:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pHbbA-0005xw-9S for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jan 2023 02:21:16 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHbb9-0005xn-Rh for pgsql-hackers@lists.postgresql.org; Tue, 17 Jan 2023 02:21:15 +0000 Received: from esa3.fujitsucc.c3s2.iphmx.com ([68.232.151.212]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHbb4-0006p8-C2 for pgsql-hackers@lists.postgresql.org; Tue, 17 Jan 2023 02:21:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1673922070; x=1705458070; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QJWu4bt/x2eSA7Orkl27lKy8i+awJDvpHlgd3o47RWU=; b=dFAiFwbtWgcrx3h9f142aFntIMB3iFWGWBDl+UdpMLKmmX1NOzHn0MUc g9yV9GUwzYwpxUB6c5IU6Gi0moesoks9K4pDjSsYzGdafKiOXRF3jl7Sx juEjOD1dBkgbuKkZlJ70Y3IjA/CdD9A7otU7MnC63qvJxPImxVA40HhvY G1E33JN+xUsr0HsbzJwGEofw8GK5KCdByvwVKaptKzsPdDuxwKf9V/8ie jmiQFqNID8WohJ3peg6asCLLV8/UNPFDxzeH/jcleoQ83IEo3S9sbNwno ewRxHy7h6Xa2kV52l3qF3z+JHN4QJhbsCTD+sB0YjhYLcLW2/wx0TU34r Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10592"; a="82723198" X-IronPort-AV: E=Sophos;i="5.97,222,1669042800"; d="scan'208";a="82723198" Received: from mail-os0jpn01lp2111.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.111]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2023 11:21:07 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i3ztscRmPN2s+AXvWq8jwYZ81aofkujRIoqtXdeO/RPx/EXNZbgAwxmejBPgav1muce9l6okPbRMxutjwJypq00teXdDdNeAIMerNZn+RIxqHZnvtyU5lmjwmX/Rv7W38SP2Yd0C7psr/RB5v7Jdau7J1/s6Sf3G/yxse/FymfAZtwWPMl9dxmw/ItDMHlGaKVOHCAGmjILXQNkfBCZaWS2+sukYQBvd1scmDfV3ONn+bRUBByigErrb8vEY0lODVPcLp6zvTMvRRE3SaPTWjF7BWDstQlotRp0UPFnPXfVViGGy2Rcgzr9XBQSfPXACNj5ysnOxu+GQbo1EkLKV1w== 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=QJWu4bt/x2eSA7Orkl27lKy8i+awJDvpHlgd3o47RWU=; b=Sh4Ts41oWGtXPatpvvkqWZqma+lL09qYvITDvpYjk/KrxqU5Wjpnq/Y3RxDsQpHkPMH52S1uNi8XmmP5vKdSPccrNEwuTziXxzAGkY5ZgT4T3fv5KOo9z1YKQJl/21/4BjpoumW4/WNw61CLzYgq+WcCBUbVjhjzAKHr6wvo15KqkvyTvJMcOLxAjflxFypW3fvz6oSCHwPkIm0py1nT9X5uXRF6xr6ZXKDXq4T8pvRrSnEPAEcgTBjVWCNSiA/QKP8Njl57Rb+Uhb2N4rEAmuIcS/EUbbu8yWSekopse//RWlZlDMy8RWj65OUyOcTAlhf2toGxIMcXyhNydgdjcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by OS3PR01MB8636.jpnprd01.prod.outlook.com (2603:1096:604:19a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.23; Tue, 17 Jan 2023 02:21:05 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::db62:a054:b1fa:4cb3]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::db62:a054:b1fa:4cb3%3]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:21:05 +0000 From: "houzj.fnst@fujitsu.com" To: Peter Smith CC: Masahiko Sawada , shveta malik , "wangw.fnst@fujitsu.com" , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers , Dilip Kumar , Amit Kapila Subject: RE: Perform streaming logical transactions by background workers and parallel apply Thread-Topic: Perform streaming logical transactions by background workers and parallel apply Thread-Index: AQHZD4gmc8Gf0xrGM0OFaEbpojAcOq5uQq1wgAHYoYCAAB++4IAAIlOAgAGmKgCAABa30IADFsaAgAFWGwCAABBJYIAA+pYAgABJqTCAAgB9AIAA8s2ggABurUCABGXB4IAAfjmAgAEdzwCAAHCvAIABHXEAgAIlRYCAAWA5AIAEvuWAgAE6wQCAAY/VgIAAWFEwgAAJz4CAAB4xgIAABTsAgADsLVCAAFA9gIAAMiLQgAAJBQCAAQ5tgIAAH42AgAALiQCAAA7+AIAAKYCwgAE8UACAAA1nAIAANzCAgAEiKoCAABvkQIAAI2kAgAHB84CAAU8AEIADHVSAgAALYoCAAGDXgIAABJEAgAAWisCAASE6gIAAQWuAgAG2kYCAArE5AIAAHdkAgAD8DICAAElLUA== Date: Tue, 17 Jan 2023 02:21:04 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9Njk5MGQ3ODItMDA5OC00ZjU5LThiNjktNzQwYzAwYzVh?= =?utf-8?B?MDg2O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFRO+/ou++gA==?= =?utf-8?B?776LO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX1NldERhdGU9MjAyMy0wMS0xN1QwMjowNToxNlo7TVNJUF9MYWJl?= =?utf-8?B?bF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfU2l0ZUlk?= =?utf-8?Q?=3Da19f121d-81e1-4858-a9d8-736e267fd4c7;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS0PR01MB5716:EE_|OS3PR01MB8636:EE_ x-ms-office365-filtering-correlation-id: f73598de-ef12-4339-f816-08daf8317c5b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oF21Z2XN4SArERpPWmAa9Gv8idPAev+MGeTU5KBhNtbg4BHcnLLBmvMCe6mfaNOKD02ehuiw3sufWjY+Z89cbAlLMxPjV22bmF9Tg0PDHDklpfeiM0FXFm3tUZLEasYkbpnd7+5NiQAWJ/beSBNkBKn8PIGpI9JExDqovx0Gi6ijHMyjYNfq1VVqwxuqHw+6XhWrq7GXndOdaISI4B/43RFl7dm2JdQW1p1pMomP1naBx65wwi6Emmh2BmLrvSGaSDpdhxz00w8WGuZN8jhyvELiDNa2RvUBilCorUsaIgFVp6YF06wArQAnyx7yfGu01E8gAyDW7yVPK7f6wiE8yDQBD6m2V1jOvG7pFo6AjqEZkuTF8pkMYWEYAjqS1M1LtJiXcuenA3av+Y+tf06PYr46cvWQDOl524s8IxRIdrzwBoLLbz+zk4y/tebB9APakv3aWZ/G+mu/im6b94QR05e+8wHZ7UNIGQRbHMWDoZ8eBCJ1HoSlTwL9Y32qAiVHnE/oKJ41gon44cru0fkq7XqkpsaIBCDH9AUiihQvuHXpEgFMq45uD1fY3mkRQ6VUE9+leO4A7AUmtqks4F+I4pT4WpNroTYujxwzpCXhgBkpiwCdgHC/AurGnNVqtw0YHCaEzBdiM7Z1rYzTS9seYjDdaKRknKheBd0rA7vViQKvRs6wor8Tk1R1ssG6TGCwn9II23defQrB51Xk1b7GEXlfzIXfUZiUQFdrNyu+CiGykgXb1OGhmguL6/4MMINh x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(376002)(136003)(346002)(366004)(396003)(1590799012)(451199015)(1580799009)(83380400001)(33656002)(53546011)(66946007)(66556008)(66446008)(66476007)(76116006)(9686003)(26005)(186003)(64756008)(8676002)(6916009)(41300700001)(4326008)(85182001)(86362001)(5660300002)(82960400001)(52536014)(8936002)(54906003)(478600001)(71200400001)(316002)(55016003)(7696005)(2906002)(6506007)(38070700005)(38100700002)(122000001)(21314003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NzRhc0VkMU82c2JSTHBrU3RQK2tZenlMYmQ2N1BEYWk4QVBTRDNBaHlrYmVx?= =?utf-8?B?em5lb3hzT1NRaEo1WTFlZUhadkZPRDBLZmV2WG5vc1hCeU1ia1RyUGE0Yyts?= =?utf-8?B?M3Z1MzJlNWV4Qk56dkRzTVZFN0Z1Q2ZyYnRheTVUMXYvN1dlaTF2ajlHR3NV?= =?utf-8?B?cDFxQ2VsZ0hGekNCbWQ0T0JMdEdQQjhrOHlJUU12Z0pab1llcjFmOVFwRGoz?= =?utf-8?B?L2tTQnlGY0JCM0JhRitpUnljenFid3Jxc0lRTWxKN3BDSHViMXRnZjQ4aGND?= =?utf-8?B?eHg4MXYzSG01RjJnK3FzcjFlSjFPVHFjRUhlemVmanBSa2l3emdZYURYYTFl?= =?utf-8?B?OUpWemZLcEtkWFBMUkVSSktWMkNQVktWTXhpekRBVmNlY01hR3c5RHd4dXV4?= =?utf-8?B?aGJ5RTY4RFhLK0NJSVZoazVFUTFROUQwc3pZc3hucVlFb0NNaTJLVVIzT1Vy?= =?utf-8?B?Sk1vLzFKa3o3THhpcWhhb1ZzNVBQSWZHT0NEY0JiK2xDYkduRDhKajg0Z2JT?= =?utf-8?B?SVl4T3U2QmRkQW5qd0I4UldESnVnYkpnTUQzNDBscUNGSWkyQmFGYVNDM0dh?= =?utf-8?B?K293NTBOZVJzQVFHOVdYTW1jMEsrRDJJd3pqSVRMYllKWFIzV1NGUzFZbFdx?= =?utf-8?B?OXVmQjJhbi9FZ0ZXa0p3SWtxTld0Y1FZSjV3eGtIQzNJb0V0Wmd6MC85Mkly?= =?utf-8?B?anB1elM4NEF6ODduZXVUVjIxWGpnSWNtWlMwR1JVMWozSVF6K2dudkV6eUIr?= =?utf-8?B?SG9DbUQ3ek1iN09yOFBwL1Nkc3JyelUzZUJyeldvNDRycW5kSlZ3QXZIUEhz?= =?utf-8?B?aldPZVlnc2dxOStDVFFEazZaVnQ3ak9TL08rR05sSFZDNFFGcHdRa2JEVGZz?= =?utf-8?B?Tm5JZElUWGpCMGtMNnlIdUY4S3FhNHhJTUtDbm1RTVRIcy81OWlVVWpTRGZ5?= =?utf-8?B?akN6Z05JOS9tK1ljcW9MMi8zVWJEN01MNG9wc0xSR2tqZ2xJN2JlRUNybGNQ?= =?utf-8?B?M2V3Z1BVV1lCZUgzekp5bktINEl3Tk9tN1p0cFdXbkRPM3Mzc0NSSFlWVUky?= =?utf-8?B?b09vMFg0WTgzTXBhdVkrVE56RXdncklWdHd3ZEtGdC94bys3KzA0NGw1UUtB?= =?utf-8?B?M1NPSTZMd3JpejJhc1lTalRodHJhb0FsTFBaUGF5YThFZ3hwMkY4dm5WYkth?= =?utf-8?B?MjZXQy9tdHA5TVZiU3B0ZFZqUDlWVEJvOUJnSXJkclVqRVN0Szg1N0R3YXNL?= =?utf-8?B?VWtmb3Fwb0YyNXhjZ0JicFFZK2V2bkhLMkNHN0tvREo3YVlVVXd5MHVDOXZF?= =?utf-8?B?bXpvRkhOSnQwTkxmZmJNYTkvcW5Eem13UExxMTRITVVZQUNHNnZuY01EbHM5?= =?utf-8?B?OE9Xc1RYcnVWR2ZRc21CZE1IdElyMDJ2RzlsK3I2alRkeVlIZkhlVENVZkNS?= =?utf-8?B?OTgwdis2eG9RYWRjQlF5ek5kUmJVRG9LS2QvNXM5dlBoTVJRYnNJNUtDM0Vv?= =?utf-8?B?M2xLZ3JZc3gvdG42SFN3VTNoWHh1ME5TNENYMjUwY1BRS3o1ZlYzKzZ4NUtx?= =?utf-8?B?dzVsL0xmejJHelJ2dWlwNTBrWkdzTGFaMUFyNk9WbUw5TzJkVTFQN0lGUjg3?= =?utf-8?B?UTI1UzZ1L3lUb2lmRHZtNUdrWjRSQmZmYUROTkdXdWJDbVhhZmNtRWxuY21a?= =?utf-8?B?N2lhMmZsUE1hNGZ0MlErYVNIVFpJbWVkV05jZ1FhbnFPNTYzYTFRaEN6VmZL?= =?utf-8?B?NTdqY1pDNm1hU2xDRTdDRUpJbDVIQldNQk9oQnNjUlpXTHV2T0FaMDA0azll?= =?utf-8?B?bVhCcXpocWx1QXdlNzB6OGxFL0JiK1dhSm5FVDBzVjZsT1J2bDFwODhrVXFZ?= =?utf-8?B?MTBEalJvUkF3YVBLMkcyUzE5N041NFdYQzRPRmV1SlZGK0h4cThSRjIwYVRU?= =?utf-8?B?b1RzcGRBV3ZkclNKQWtmeU9NVHU5d21wUVBpUTJqMjdiZ3pMRldJOExyMjB0?= =?utf-8?B?WWhpc3RRSlQ5SmpQSTFEeHZIU3ptVVdKM1JncC9VYWVWb2hUY2NPM0Y3bGxC?= =?utf-8?B?VmZqRGxlRmFvZytheWd3QzZIQmVlVXVjYWgrRHlSZHFpOVZNZUFNSnNqTXpw?= =?utf-8?Q?5n3ik8Yo7KShNUQK9IQDlJeIM?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: immVsToG7cMsUbpzMZycTpcoi0nSclAxzNpQlCSGEhbfdrI2mi8orr0+JeijPw3WuxWEB2yUFnkob0/rRUocgUD1OHOnWFZvI3lZnAe74Cv3letimkdVsmC2CHeGoRFKpq1lrBKqVDRgTjFcbLOmc09r5SIv3pyV/n4a8QVH8O7nkBW8y+TQA4S1G+n/G/nlalWoDwNylD+PKjeUrFA/eH4gG3u4kUuPpYZg2aDroitRdgkldXBLXWZrmmZCDWhIeKlbfykjW5i9ScZtIc8rA42kr3uTEY2sgnCuUoS/sAZmNzMEdS+7F6ghcN1b8sn6RBJWnEhXWJizWLJuob8DRexRP31xH9i0P6lkj6px0W3CriHTyS/lWd9e55gS6zQpdYb8xG7QNqY8KtObvklcQvV0KwKj4mMjlFix/vbou+2EFXbZzLcMhcxPu3TJ5/WOSh13QwEVlRlchi8R7xHaqabKW6tuPcZ0jj8070mULA0dQ27pVCs0xL5shZlHZZ6wmuBbR4zp+4a1hixM/jAbyO1dFa58e1Jvl/v6bSRbMRutKzYon+Mgzf32m4eCW/IHqrlb5szzP2O6xEuijSQp8u9ORI8Sy5/dc0GXMLhV2qV7OKTPMnB5HbctYmywBji4ZNcUKOylLAFCsYAPcoxIQml47tEbyIlFh359yLUV4wyCxYnB4MIldUUXHmZmcAd0Bueoi3t7J6jngJsQl5gSSA3ngI9A3AobdUOrvmRmk3nkHF6SVM+ozgfAHnE3OdkZoDQJhJMF3NZlIk6rmAwRDivduB8/Bth9Yiu28LlkvCLw5JHVLogSCUvWBKLs7gYy X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f73598de-ef12-4339-f816-08daf8317c5b X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:21:04.9678 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VCq11OoHg4MX6R3dVVfZVrfLbrbDnbmHrcVaiMJT822HZmKxuzW/BVebDTNsojfBJ/DO0DkX1fJIrPmh+xM1iA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8636 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gVHVlc2RheSwgSmFudWFyeSAxNywgMjAyMyA1OjQzIEFNIFBldGVyIFNtaXRoIDxzbWl0aHBi MjI1MEBnbWFpbC5jb20+IHdyb3RlOg0KPiANCj4gT24gTW9uLCBKYW4gMTYsIDIwMjMgYXQgNTo0 MSBQTSBBbWl0IEthcGlsYSA8YW1pdC5rYXBpbGExNkBnbWFpbC5jb20+DQo+IHdyb3RlOg0KPiA+ DQo+ID4gT24gTW9uLCBKYW4gMTYsIDIwMjMgYXQgMTA6MjQgQU0gUGV0ZXIgU21pdGggPHNtaXRo cGIyMjUwQGdtYWlsLmNvbT4NCj4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gMi4NCj4gPiA+DQo+ID4g PiAgLyoNCj4gPiA+ICsgKiBSZXR1cm4gdGhlIHBpZCBvZiB0aGUgbGVhZGVyIGFwcGx5IHdvcmtl ciBpZiB0aGUgZ2l2ZW4gcGlkIGlzDQo+ID4gPiArdGhlIHBpZCBvZiBhDQo+ID4gPiArICogcGFy YWxsZWwgYXBwbHkgd29ya2VyLCBvdGhlcndpc2UgcmV0dXJuIEludmFsaWRQaWQuDQo+ID4gPiAr ICovDQo+ID4gPiArcGlkX3QNCj4gPiA+ICtHZXRMZWFkZXJBcHBseVdvcmtlclBpZChwaWRfdCBw aWQpDQo+ID4gPiArew0KPiA+ID4gKyBpbnQgbGVhZGVyX3BpZCA9IEludmFsaWRQaWQ7DQo+ID4g PiArIGludCBpOw0KPiA+ID4gKw0KPiA+ID4gKyBMV0xvY2tBY3F1aXJlKExvZ2ljYWxSZXBXb3Jr ZXJMb2NrLCBMV19TSEFSRUQpOw0KPiA+ID4gKw0KPiA+ID4gKyBmb3IgKGkgPSAwOyBpIDwgbWF4 X2xvZ2ljYWxfcmVwbGljYXRpb25fd29ya2VyczsgaSsrKSB7DQo+ID4gPiArIExvZ2ljYWxSZXBX b3JrZXIgKncgPSAmTG9naWNhbFJlcEN0eC0+d29ya2Vyc1tpXTsNCj4gPiA+ICsNCj4gPiA+ICsg aWYgKGlzUGFyYWxsZWxBcHBseVdvcmtlcih3KSAmJiB3LT5wcm9jICYmIHBpZCA9PSB3LT5wcm9j LT5waWQpIHsNCj4gPiA+ICsgbGVhZGVyX3BpZCA9IHctPmxlYWRlcl9waWQ7IGJyZWFrOyB9IH0N Cj4gPiA+ICsNCj4gPiA+ICsgTFdMb2NrUmVsZWFzZShMb2dpY2FsUmVwV29ya2VyTG9jayk7DQo+ ID4gPiArDQo+ID4gPiArIHJldHVybiBsZWFkZXJfcGlkOw0KPiA+ID4gK30NCj4gPiA+DQo+ID4g PiAyYS4NCj4gPiA+IElJVUMgdGhlIElzUGFyYWxsZWxBcHBseVdvcmtlciBtYWNybyBkb2VzIG5v dGhpbmcgZXhjZXB0IGNoZWNrIHRoYXQNCj4gPiA+IHRoZSBsZWFkZXJfcGlkIGlzIG5vdCBJbnZh bGlkUGlkIGFueXdheSwgc28gQUZBSUsgdGhpcyBhbGdvcml0aG0NCj4gPiA+IGRvZXMgbm90IGJl bmVmaXQgZnJvbSB1c2luZyB0aGlzIG1hY3JvIGJlY2F1c2Ugd2Ugd2lsbCB3YW50IHRvDQo+ID4g PiByZXR1cm4gSW52YWxpZFBpZCBhbnl3YXkgaWYgdGhlIGdpdmVuIHBpZCBtYXRjaGVzLg0KPiA+ ID4NCj4gPiA+IFNvIHRoZSBpbm5lciBjb25kaXRpb24gY2FuIGp1c3Qgc2F5Og0KPiA+ID4NCj4g PiA+IGlmICh3LT5wcm9jICYmIHctPnByb2MtPnBpZCA9PSBwaWQpDQo+ID4gPiB7DQo+ID4gPiBs ZWFkZXJfcGlkID0gdy0+bGVhZGVyX3BpZDsNCj4gPiA+IGJyZWFrOw0KPiA+ID4gfQ0KPiA+ID4N Cj4gPg0KPiA+IFllYWgsIHRoaXMgc2hvdWxkIGFsc28gd29yayBidXQgSSBmZWVsIHRoZSBjdXJy ZW50IG9uZSBpcyBleHBsaWNpdCBhbmQNCj4gPiBtb3JlIGNsZWFyLg0KPiANCj4gT0suDQo+IA0K PiBCdXQsIEkgaGF2ZSBvbmUgbGFzdCBjb21tZW50IGFib3V0IHRoaXMgZnVuY3Rpb24gLS0gSSBz YXcgdGhlcmUgYXJlIGFscmVhZHkNCj4gb3RoZXIgZnVuY3Rpb25zIHRoYXQgaXRlcmF0ZSBtYXhf bG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzIGxpa2UgdGhpcyBsb29raW5nDQo+IGZvciB0aGlu Z3M6DQo+IC0gbG9naWNhbHJlcF93b3JrZXJfZmluZA0KPiAtIGxvZ2ljYWxyZXBfd29ya2Vyc19m aW5kDQo+IC0gbG9naWNhbHJlcF93b3JrZXJfbGF1bmNoDQo+IC0gbG9naWNhbHJlcF9zeW5jX3dv cmtlcl9jb3VudA0KPiANCj4gU28gSSBmZWx0IHRoaXMgbmV3IGZ1bmN0aW9uIChjdXJyZW50bHkg Y2FsbGVkIEdldExlYWRlckFwcGx5V29ya2VyUGlkKSBvdWdodA0KPiB0byBiZSBuYW1lZCBzaW1p bGFybHkgdG8gdGhvc2Ugb25lcy4gZS5nLiBjYWxsIGl0IHNvbWV0aGluZyBsaWtlDQo+ICJsb2dp Y2FscmVwX3dvcmtlcl9maW5kX3BhX2xlYWRlcl9waWQiLg0KPiANCg0KSSBhbSBub3Qgc3VyZSB3 ZSBjYW4gdXNlIHRoZSBuYW1lLCBiZWNhdXNlIGN1cnJlbnRseSBhbGwgdGhlIEFQSSBuYW1lIGlu IGxhdW5jaGVyIHRoYXQNCnVzZWQgYnkgb3RoZXIgbW9kdWxlKG5vdCByZWxhdGVkIHRvIHN1YnNj cmlwdGlvbikgYXJlIGxpa2UNCkF4eEJ4eCBzdHlsZShzZWUgdGhlIGZ1bmN0aW9ucyBpbiBsb2dp Y2FsbGF1bmNoZXIuaCkuDQpsb2dpY2FscmVwX3dvcmtlcl94eHggc3R5bGUgZnVuY3Rpb25zIGFy ZSBjdXJyZW50bHkgb25seSBkZWNsYXJlZCBpbg0Kd29ya2VyX2ludGVybmFsLmguDQoNCkJlc3Qg cmVnYXJkcywNCkhvdSB6ag0KDQo=