Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVnQx-002CDJ-1R for pgsql-hackers@arkaria.postgresql.org; Sat, 06 Jun 2026 09:35:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wVnQv-00FoDT-2I for pgsql-hackers@arkaria.postgresql.org; Sat, 06 Jun 2026 09:35:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wVnQv-00FoDJ-0V for pgsql-hackers@lists.postgresql.org; Sat, 06 Jun 2026 09:35:13 +0000 Received: from mail-japaneastazon11010067.outbound.protection.outlook.com ([52.101.229.67] helo=TY3P286CU002.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wVnQs-00000001ZOs-0CzJ for pgsql-hackers@lists.postgresql.org; Sat, 06 Jun 2026 09:35:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TFvylB5kJNJMhhSbQZareeSmzJaQskAK1J48OCy8O+9lONly7etWQA4x1MTF5uxEatHqweRVMKFEuaJC1CGjQu2p488e+QMBSAQ55dFdHbrhjKX+sIvHVZfJ1btWpmTytjKF461sWxV7FHpEfC/mqaSUNUXwRhHKwCdcRm3OcMakA5WW2YoZshvxi8NVJL0jaowhOcl8AJtQhBYOoYduIDFcHHfxL4UDGZwToe/tuZ5R8s9t5aLB89YE4DzSaamCTlh35JzcFFriEBL0Kth355pkULwLEJI9JAEnX+oxN2WdtU+HTlT/PXWEQE3+Vo4560yGR+WeCH6NlNOPREJSQg== 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=iwhU7prcAo2TifvmqWyV5E0MGbdBn8Mwooiklj4dnDk=; b=r+ybxeSc0H6302gQKAOXY2vjUx1AK32qZhyUFTNsFbrD991Tv2ZMTWJWJvuB1iAhD58wPp8hJC2LHLB806EfVQGR3a3UkCDFFDTSWcGsQxeWFLZfLJsjguDvtoqDUSapF//Xx9/DLuo2G16GQujeBDlDDMFCA4KKtLK3xyDT2s/emdADve4AGFyf1OAsQe0rSSTFU/3mQGbHpRkq6UmuS1sie2ysq0/qYfcZ6L9mTgufDapYu1l4VW/VwjWSZ0rfUP7bLhbNEEtCE/wvnzLP+t4LlbLq5hUfmsYhNM55ZjBYGewKyAU/RS0FgqMe4LouO/0I9ARkuLUP8NgKwS2jpg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iwhU7prcAo2TifvmqWyV5E0MGbdBn8Mwooiklj4dnDk=; b=ExyZvQM8uks27+TmPsFJFbpJPYdtRJZFFiytF740eKvSkIQ6gV5SL8gDJ2D+3qwBWI2f9eMSam0PZNPPGO6AHkIAntSsmLcxkYH+7vVqY2soKFdmrfasrwWGSf7UWg4fTndTrC+ZIt5g8zqHEW2bpQ6OsrgqLmBCMnAlYkgtQk9iszC8lN9FKPb00/uV/vQwxzcKdr2OD06qB0o9L82uKepKhzuHMrkhexq/DB3AqJo9YsiVrOrh0ZJITGYiQVBnP1W46v1ioWCMpP/4nMIVGKLRymqbr0RAsBrS8O8GKrpn3P7/OL5lPwbGk9RtuEjVuRLWJFDbcIH1PXJy8U0D7Q== Received: from TY4PR01MB17718.jpnprd01.prod.outlook.com (2603:1096:405:38a::22) by TYCPR01MB7750.jpnprd01.prod.outlook.com (2603:1096:400:17b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.11; Sat, 6 Jun 2026 09:35:01 +0000 Received: from TY4PR01MB17718.jpnprd01.prod.outlook.com ([fe80::7430:f96b:750d:8a04]) by TY4PR01MB17718.jpnprd01.prod.outlook.com ([fe80::7430:f96b:750d:8a04%5]) with mapi id 15.21.0092.007; Sat, 6 Jun 2026 09:35:01 +0000 From: "Zhijie Hou (Fujitsu)" To: Xuneng Zhou , Fujii Masao CC: Srinath Reddy Sadipiralla , PostgreSQL Hackers Subject: RE: Fix race in ReplicationSlotRelease for ephemeral slots Thread-Topic: Fix race in ReplicationSlotRelease for ephemeral slots Thread-Index: Adztxq7jT1CuwZjqTjO1S2+BFTl8LgBw7CMAACBC04AAkmycgAA++ZGAAGPxcgAALbPEMA== Date: Sat, 6 Jun 2026 09:35:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-AS, ja-JP, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9NjZhNmE2NGMtNDFkMS00ZTdlLWFhODEtNjQxNTM5NDQz?= =?utf-8?B?MTRlO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjYtMDYtMDZUMDk6MzM6NTVaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?B?ZC04MWUxLTQ4NTgtYTlkOC03MzZlMjY3ZmQ0Yzc7TVNJUF9MYWJlbF9hNzI5?= =?utf-8?B?NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfVGFnPTEwLCAzLCAw?= =?utf-8?Q?,_1;?= 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: TY4PR01MB17718:EE_|TYCPR01MB7750:EE_ x-ms-office365-filtering-correlation-id: 570dddd3-7e16-4cc1-2af1-08dec3aee200 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|4143699003|11063799006|56012099006|22082099003|18002099003|1580799027|38070700021; x-microsoft-antispam-message-info: XBgqG6kXypb9AvsOwClXUqIXOkuCmAORrfxsiRGORXHh+5ijItKamzNzs/BHhSs7TQ1unIZ9lk8cMqx5aweCjVLKOja0I93IxGRpuSq19Um0jw4leepAADe3VJCUsTueNZgnvz92nlXCNAAAAypTtBWe0/01ztno/T+Ue1iswt0Ntd/60bzM7Mh3C/cBlIHALiJFVV2NnFy3UH4MiuyLia+6Sfxd1KbbhT7cQjCmr0HSokMM1ho+wKohdOz9x4MfjSOw8mCmNr96i4qtQkS4AZ3RMEMfp93JgVmhmrwZhDWICtZ2/WhEp+UD9w7L4dLqi4SRttGPCmFiCWnhE+Kgnszqmc1sbG4uwF/BJ4ttXV6xC6imsxRYmfPYN+P+YOpztI1DiYj2DwSYNVZrmRZW7KaVn/uGFkbCZTZHoxm8YvCeFf9dWvdeaQUz04dhCwLRUTWKc3e0ipcYZJyjOeLH5TZyWQcZFI+0ZuQeosaCrKhqbCFxlDGxz3EPyuo5jwyi9H0sjFMVcFgdieHWRq8Ea/pjFNtNPFh6+ckEtPJtusGKc5Vx74pKaE+Js3K9nfUTa27vpJS0vX3qd/Kt0HjMPdhUg4MNGXoB89QIvckx41DX3dbYno7RqmEZRPsvvaP2bW96ylPfK5L7rnIp+lo+8+v5aOcWHtBEbB0eyqNaK+WHCiabkUOnrXzM9W/4p2/ebg8W990xxOLr6DqR93vGP/Hcozy3MJmW12aqsQd3ziUX7PLnBr052C/D9rOm31V3IVPvBO310J4AGVy/3tRxhm7Biw8m4Tqn2EtS5D901pI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:zh-cn;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY4PR01MB17718.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(4143699003)(11063799006)(56012099006)(22082099003)(18002099003)(1580799027)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VTVhekIzaE93UkgwL0NmWGRVS0tkdzNpZWQ2TW5GQVRYcGc5dXdWb215UmEv?= =?utf-8?B?ak04MTlKZUs5c2lrVWhwVFhVc3NQRzR5QkdjRnRiOXZvU2Fna0d0Nk9ZNmwz?= =?utf-8?B?VmRZQVk0QWxoaW9RbVNTVjlBei9rVFB5VEpTV2tVaitVL0ZBNVhHMzFUcklI?= =?utf-8?B?SXlEbUNlUzkzcnQ4eXRXOXFPa01UMnVZVEU1SWRKcmVkL2xHOXhJaGhTYlQ3?= =?utf-8?B?SytZQVcxZE5kajB1RGJEakdpUitJdXd0Vmx1LzlGYkZuZGlNN3kydEhEbVg2?= =?utf-8?B?Z2U3OUlEM0Z6Zk1nV3NFRHUybTdjdzhBVy9qWklEU2F2ZEY5QzkzQWpqRXdY?= =?utf-8?B?emw0RDFmOSt0WENDa0NMWVk2eE5PU080cEtRUnNKWExabVFNVnhNRzNCOWdT?= =?utf-8?B?K1VrckQ4YSs4TU1HTGV4TFF0SFhUemtsdVppazlURlVTRW1oOEI5RXBHY2Fv?= =?utf-8?B?L09razg5dndZekZzNUxvR1l4WUh4ekJvVEkzdGFqRVh0R2VUbk9YMXQ1MWor?= =?utf-8?B?UFJGR0dtUmNOUENRdFBGYUg4L3JHc00vdWsxalROWmpQRnliSHppV1g5TWpX?= =?utf-8?B?akJnT1F1MEUrdVVOY3RLZnJHVDNtV1pQRklQRDl2amxQbGlJMTBXMmRoWHRC?= =?utf-8?B?RDRuOVozU1dEb3NNT1JpaFI1ZThEOVhFNGtTQ1JoS0dtblcvLzhtWE1HeVdS?= =?utf-8?B?Vm0rWUxpNlFsQUVGK1FiY2RZV0cxeTR0Tjl6eEpKVjF6bDZFQmtSR0dFOWxM?= =?utf-8?B?MisvdW04b0lDWmp2TDZtcGlrL2dwdGdDNktRbS9rdDRvMDB1RXE1bVVkRnhr?= =?utf-8?B?TVdlMlZ2bUVDdUgybnF6SS9IdmtLMWs3MTlNSEpWcUpmekhtcWpnNHUvc3hP?= =?utf-8?B?Q0dQOFREb0VjeXp5Ri95bk5NZTd5WnFGK2pIY2NyazZMNlB1cWQ4VmZUb0p6?= =?utf-8?B?eE9BQVN6Ym9nTnRveEpQSnZ1NUtod2ZmbDlHMFVPVVpVMUN6WllibGhHUkNV?= =?utf-8?B?RVhYTlpOZzBrYVVaMERaUUJ6NFIwT2FBWGZnbW9HOHlVZG5tdlQ1SEdJdlRu?= =?utf-8?B?QmY0OVZObmlkQmxMdERQZElkRzZEQ0F1RllqbndpQk05TW9KbVE0Uzc4d0Zj?= =?utf-8?B?RC9ETkpRVXlZa0NORnZHRDZ1MXVIT3hENTkzVm9Qb1dvWi81L2RyVS9uRVor?= =?utf-8?B?dTJPZ01jT3BTK1V3cWg4RWNrSkdoQ3Z0OW5Ddk9SZitxR3ZIL2oyeXpyNXJi?= =?utf-8?B?a0pZRkVvUFZOVzkvTXZBY0tnNFE2MnZEVk54MzduZlFHZXFTbVd5TW9URk1B?= =?utf-8?B?OWZtYTg3K2pFaHduaWppS2JKNlU0dFJ1OTFKc25hK0VUZk9aeXcxdFpXdElP?= =?utf-8?B?Qyt2VG9EVDh4djVlb05FOHJRN3ZZY0J6NjAyQ0JWbVprYVh4TlJyY3l6YjdW?= =?utf-8?B?eThYM243TDBBMzB2bDVadTI4OXFXU0JKaHF1cC9ubW9HTmZnWk1HMnI3UU4r?= =?utf-8?B?MXYraVdwY0U4bVF2TytKL2hqalZBNTZZSk1vcERxdDltU2ZCMmdidmlST3Z6?= =?utf-8?B?bzhFVHo2RlVST0l4M0NmNjRPdVBCaW5OSkk3R0xDRHZRSC9uaGhwVlcybnh3?= =?utf-8?B?S3ZWdEVjaHY2YnNCSElRa1pPYjkyeHF5bllkQ0tXSEdJNWhEZERwYnpuRXZ0?= =?utf-8?B?ZUYvZUYvVGRiQ1d4Ty9xeHk5SWVaK1FHbzhUbmtreHBPSlRwc0MrRCtGWjlV?= =?utf-8?B?dmpUUGt4b0J3OVFXMW5hMzNDWWFDWHlTWXNNblJjd3VlaUtuRDBNcGNQMUVJ?= =?utf-8?B?d2JMNkkwSmNhNHFxVWtvZjJPNGlkTlhnZ3B1RlhXZVZqNWdBbnZEVUlHdHh4?= =?utf-8?B?Z3hQU3ZKdzdoN0tjTndJdEhnSEx2ZElWeERnYm8rRDhJekZGRWJrZlpLd29D?= =?utf-8?B?a0FHN0ozdUtUYWJlcm5vR3dHdUczNktHbVpzL0NGVkZSZTZLZFVVZ21MbnpY?= =?utf-8?B?VWx2TmpWMDdtVmFQU1NSYUltQXI2RThTRzkwM0s5emZzUzRiTnhQeG82Z21a?= =?utf-8?B?NCtyN0l2SE1BeGRWNEdNS3JrZUFkU0d0YnNJL2lLRUlwNk12TEZ1RWZ3VkhP?= =?utf-8?B?dmtBZWZ3cHczdFBuYThLN0dtWW9qYkYwUFJyd2Y1VEVoMXBEZEJUVURRTjRG?= =?utf-8?B?aEZQdkFaZlFOOEROZnlhTDhPc0Z5VmttWENOZVM5STlPd1NoL2ZuemlMVE04?= =?utf-8?B?eC9uQzFxOW5WQnRaa05KNmlCTTBJVkhSd3pHeGtWNlBSQWZsaHdQUmRMVlg1?= =?utf-8?B?cE02TU9lZm5WM3JuMHRLWEQrWXFUT0ttVnNUYm5xc3BCQXk5NklJdz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: ibsbBaWc6jTWqtbmML7Zx9bovNeaZm1YwUlUQovF1qymsTdfpTXF8Pd7H63fCczaIZxOtMk1EE9mt3rcNRjBVoPjCLOKigU4xt//TglcYHySARi4KfWJG8PYs4v/7Oh9H4fwIqkxVI9TBL+4OZ5tzShM04Sd6w5sSeH4w0eTQRdifwXWEr6IQKzTzp9oRb4t9vCbGFj2GeBG0EY3482rTtvgK/z+NeCyBt3txzSXWxprMML82K5/n69YTQbIA93/c4Lo9Ur7p3y9DDOBOElKuI2KREuQN0vkB8eiX3dXt04+127Xe7c6FNOKtUd78vX1HkPlTSGY7dFNTKze6kiGUQ== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY4PR01MB17718.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 570dddd3-7e16-4cc1-2af1-08dec3aee200 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jun 2026 09:35:01.6356 (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: ipD3787FPFmQeqQawaNdyWe142bVpjFXHej9P9yMn8wU8jLeDK4SExuEeWONiyLOTgedCZydKkwYKq/zTFd6ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB7750 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gRnJpZGF5LCBKdW5lIDUsIDIwMjYgODo0NSBQTSBYdW5lbmcgWmhvdSA8eHVuZW5nemhvdUBn bWFpbC5jb20+IHdyb3RlOg0KPiBPbiBXZWQsIEp1biAzLCAyMDI2IGF0IDg6MDPigK9QTSBGdWpp aSBNYXNhbyA8bWFzYW8uZnVqaWlAZ21haWwuY29tPiB3cm90ZToNCj4gPg0KPiA+IE9uIFR1ZSwg SnVuIDIsIDIwMjYgYXQgMzowMOKAr1BNIFh1bmVuZyBaaG91IDx4dW5lbmd6aG91QGdtYWlsLmNv bT4NCj4gd3JvdGU6DQo+ID4NCj4gPiAgIC8qIERyb3AgdGhlIGxvY2FsIHNsb3QgaWYgaXQgaXMg bm90IHJlcXVpcmVkIHRvIGJlIHJldGFpbmVkLiAqLw0KPiA+ICAgaWYgKCFsb2NhbF9zeW5jX3Ns b3RfcmVxdWlyZWQobG9jYWxfc2xvdCwgcmVtb3RlX3Nsb3RfbGlzdCkpDQo+ID4gICB7DQo+ID4g KyBib29sIGRyb3BwZWQgPSBmYWxzZTsNCj4gPiArIE5hbWVEYXRhIHNsb3RfbmFtZSA9IHswfTsN Cj4gPiArIE9pZCBzbG90X2RhdGFiYXNlID0gbG9jYWxfc2xvdC0+ZGF0YS5kYXRhYmFzZTsNCj4g PiAgIGJvb2wgc3luY2VkX3Nsb3Q7DQo+ID4NCj4gPiBJcyBpdCByZWFsbHkgc2FmZSB0byByZWFk IHNsb3RfZGF0YWJhc2UgYmVmb3JlIGFjcXVpcmluZyB0aGUgZGF0YWJhc2UgbG9jaz8NCj4gDQo+ IFJlYWRpbmcgc2xvdF9kYXRhYmFzZSBiZWZvcmUgdGFraW5nIHRoZSBkYXRhYmFzZSBsb2NrIHNl ZW1zIG5vdA0KPiBpbmhlcmVudGx5IHVuc2FmZSBieSBpdHNlbGYuIFRoZSBjb21tZW50IHN1Z2dl c3RzIHRoYXQgdGhlIGxvY2sgaXMNCj4gcHJpbWFyaWx5IHVzZWQgdG8gcHJldmVudCBjb25mbGlj dHMgd2l0aCB0aGUgc3RhcnR1cCBwcm9jZXNzIHJ1bm5pbmcNCj4gUmVwbGljYXRpb25TbG90c0Ry b3BEQlNsb3RzKCkgZHVyaW5nIGRiLWRyb3AgcmVwbGF5OyBpdCBkb2VzIG5vdA0KPiBwcm90ZWN0 IHJlcGxpY2F0aW9uIHNsb3QgYXJyYXkgcmV1c2UuDQo+IA0KPiBUaGUgdW5zYWZlIHBhcnQgY291 bGQgYmUgcmVhZGluZyBzbG90X2RhdGFiYXNlIGZyb20gbG9jYWxfc2xvdCBhZnRlcg0KPiBSZXBs aWNhdGlvblNsb3RDb250cm9sTG9jayBoYXMgYmVlbiByZWxlYXNlZC4gQXQgdGhpcyBwb2ludCwg dGhlIHNsb3QNCj4gYXJyYXkgY2VsbCBtYXkgYWxyZWFkeSBoYXZlIGJlZW4gZnJlZWQgYW5kIHJl dXNlZCwgc28gdGhlIHZhbHVlIHJlYWQNCj4gbWF5IG5vIGxvbmdlciBiZWxvbmcgdG8gdGhlIHNs b3QgdGhhdCBnZXRfbG9jYWxfc3luY2VkX3Nsb3RzKCkNCj4gb3JpZ2luYWxseSBjb2xsZWN0ZWQu IEFzIGEgcmVzdWx0LCB3ZSBjb3VsZCBlbmQgdXAgbG9ja2luZyB0aGUgd3JvbmcNCj4gZGF0YWJh c2UuDQo+IA0KPiBUaGVyZSBzZWVtcyB0byBiZSB0d28gcmVsYXRlZCBpc3N1ZXM6DQo+IA0KPiAx KSBCZWZvcmUgZHJvcDogcmVhZGluZyBsb2NhbF9zbG90LT5kYXRhLmRhdGFiYXNlIC8NCj4gbG9j YWxfc2xvdC0+ZGF0YS5uYW1lIGFmdGVyIHRoZSBzbG90LWFycmF5IGxvY2sgd2FzIHJlbGVhc2Vk LCBiZWZvcmUNCj4gdmVyaWZ5aW5nIHRoZSBjZWxsIHN0aWxsIHJlcHJlc2VudHMgdGhlIHNhbWUg c3luY2VkIHNsb3QuDQoNCkkgcmVjYWxsIGNvbmRpdGlvbiAoMSkgaXMgY29uc2lkZXJlZCBhY2Nl cHRhYmxlLCBzaW5jZSB0aGUgZGF0YWJhc2UgbG9jayBpcw0KcmVsZWFzZWQgaW1tZWRpYXRlbHkg YWZ0ZXIgcmUtdmVyaWZ5aW5nIHRoYXQgdGhlIHNsb3QgaXMgbm8gbG9uZ2VyIHRoZSBvcmlnaW5h bA0KJ3N5bmNlZCcgb25lIGFueXdheS4gQWRkaXRpb25hbGx5LCB0aGlzIHJhY2UgY2FuIG9ubHkg b2NjdXIgd2hlbiByZXBsYXlpbmcgYQ0KRFJPUCBEQVRBQkFTRSwgd2hpY2ggaXMgcmFyZSBpbiBw cmFjdGljZS4gU2luY2Ugd2Ugb25seSB0YWtlIGEgc2hhcmVkIGxvY2ssIGl0DQpkb2VzIG5vdCBz ZWVtIHRvIGNhdXNlIHJlYWwgaXNzdWVzLg0KDQo+IA0KPiAyKSBBZnRlciBkcm9wOiBjYWxsaW5n IFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZChmYWxzZSkgYW5kIHRoZW4NCj4gcmVhZGluZyBs b2NhbF9zbG90LT5kYXRhLmRhdGFiYXNlIC8gbG9jYWxfc2xvdC0+ZGF0YS5uYW1lIGZvcg0KPiB1 bmxvY2tpbmcvbG9nZ2luZyBhZnRlciB0aGUgY2VsbCBtYXkgaGF2ZSBiZWVuIHJldXNlZCBieSBh bm90aGVyDQo+IGJhY2tlbmQuDQoNClJpZ2h0LiBJIG1pc3NlZCB0aGlzIHJhY2UgY29uZGl0aW9u IGR1cmluZyBpbXBsZW1lbnRhdGlvbiBhbmQgYWdyZWUgaXQncyBhIHJlYWwNCmlzc3VlLiBBbiBl dmVuIGJpZ2dlciBwcm9ibGVtIGlzIHRoYXQgd2UgY291bGQgcmVsZWFzZSBhIGxvY2sgb24gdGhl IHdyb25nDQpkYXRhYmFzZSBpZiB0aGUgc2xvdCBlbnRyeSBpcyByZXVzZWQgYWZ0ZXIgYmVpbmcg ZHJvcHBlZC4gSSB0aGluayB3ZSBzaG91bGQgZml4DQp0aGlzIGJ5IHNhdmluZyB0aGUgZGF0YWJh c2UgT0lEIGF0IHRoZSBiZWdpbm5pbmcsIGFzIHlvdXIgcGF0Y2ggZG9lcy4NCg0KPiANCj4gVGhl IHByaW9yIHBhdGNoIHRhcmdldHMgdG8gZml4IDIpLCBidXQgbGVhdmVzIDEpIHVuZml4ZWQuDQo+ IA0KPiA+IEJUVywgSSdtIGFsc28gd29uZGVyaW5nIHdoZXRoZXIgaXQncyBzYWZlIGZvcg0KPiA+ IGxvY2FsX3N5bmNfc2xvdF9yZXF1aXJlZCgpIHRvIGFjY2VzcyBsb2NhbF9zbG90IHdpdGhvdXQg aG9sZGluZyBhIGxvY2suDQo+IA0KPiBJIHNoYXJlIHRoZSBzYW1lIGNvbmNlcm4gaGVyZS4gVGhl IGlzc3VlIHNtZWxscyBzaW1pbGFyIHRvIHRoZSBvbmUNCj4gZGlzY3Vzc2VkIGFib3ZlIC0tIHJl YWRpbmcgdmFsdWVzIGZyb20gdGhlIGFycmF5IGNlbGwgZGlyZWN0bHkgd2l0aG91dA0KPiB0aGUg cHJvdGVjdGlvbiBvZiBhcnJheSBsb2NrLg0KPg0KPiBUbyBzb2x2ZSB0aGVtIGFsdG9nZXRoZXIs IGl0IG1pZ2h0IGJlDQo+IGJldHRlciB0byBzdG9wIGNhcnJ5aW5nIHJhdyBSZXBsaWNhdGlvblNs b3QgKiB2YWx1ZXMgYWNyb3NzDQo+IHVucHJvdGVjdGVkIHdpbmRvd3MuIFdlIGNhbiBnZXQgdGhl IHNuYXBzaG90IHZhbHVlcyBzdWNoIGFzIHNsb3QgbmFtZQ0KPiAmIGRhdGFiYXNlIG9pZCBmcm9t IGdldF9sb2NhbF9zeW5jZWRfc2xvdHMoKSBpbnN0ZWFkLiBUaGVuDQo+IGxvY2FsX3N5bmNfc2xv dF9yZXF1aXJlZCgpIHdvcmtzIGZyb20gdGhlIHNuYXBzaG90LCBhbmQNCj4gZHJvcF9sb2NhbF9v YnNvbGV0ZV9zbG90cygpIHVzZXMgdGhlIGNvcGllZCBkYXRhYmFzZSBPSUQgdG8gdGFrZSB0aGUN Cj4gZGF0YWJhc2UgbG9jay4gQmVmb3JlIGRyb3BwaW5nLCBpdCBzaG91bGQgcmV2YWxpZGF0ZSBi eSBjb3BpZWQNCj4gbmFtZS9kYXRhYmFzZSB0aGF0IHRoZSBzbG90IGlzIHN0aWxsIGEgc3luY2Vk IGxvZ2ljYWwgc2xvdCwgdGhlbg0KPiBhY3F1aXJlL2Ryb3AgYnkgY29waWVkIG5hbWUsIGFuZCB1 c2Ugb25seSBjb3BpZWQgdmFsdWVzIGZvcg0KPiB1bmxvY2svbG9nZ2luZy4gSSBwbGFuIHRvIHBy ZXBhcmUgYSByZWZhY3RvcmluZyBwYXRjaCBmb3IgdGhpcy4gRG9lcw0KPiB0aGF0IHNlZW0gbGlr ZSB0aGUgcmlnaHQgZGlyZWN0aW9uIHRvIHlvdT8NCg0KU2F2aW5nIG9ubHkgdGhlIG5hbWUgYW5k IGRhdGFiYXNlIE9JRCB3b3VsZCBmb3JjZSB1cyB0byBzZWFyY2ggZm9yIHRoZSBzbG90DQphZ2Fp biBpbiB0aGUgbG9vcCwgd2hpY2ggd2FzIG9uZSByZWFzb24gd2UgZGlkbid0IGltcGxlbWVudCBp dCB0aGF0IHdheS4NCg0KQmVzdCBSZWdhcmRzLA0KSG91IHpqDQo=