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.94.2) (envelope-from ) id 1sLjMD-00GGmF-Tv for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Jun 2024 13:03:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sLjMC-009R9o-AB for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Jun 2024 13:03:40 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLjMB-009R9S-ME for pgsql-hackers@lists.postgresql.org; Mon, 24 Jun 2024 13:03:40 +0000 Received: from mx05.melco.co.jp ([192.218.140.145]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLjM8-002tHJ-B6 for pgsql-hackers@postgresql.org; Mon, 24 Jun 2024 13:03:38 +0000 Received: from mr05.melco.co.jp (mr05 [133.141.98.165]) by mx05.melco.co.jp (Postfix) with ESMTP id 4W77SP6BKkzMsw3p; Mon, 24 Jun 2024 22:03:33 +0900 (JST) Received: from mr05.melco.co.jp (unknown [127.0.0.1]) by mr05.imss (Postfix) with ESMTP id 4W77SP5mYczMswGY; Mon, 24 Jun 2024 22:03:33 +0900 (JST) Received: from mf04_second.melco.co.jp (unknown [192.168.20.184]) by mr05.melco.co.jp (Postfix) with ESMTP id 4W77SP5RwvzMrVVX; Mon, 24 Jun 2024 22:03:33 +0900 (JST) Received: from mf04.melco.co.jp (unknown [133.141.98.184]) by mf04_second.melco.co.jp (Postfix) with ESMTP id 4W77SP5P63zMrvtk; Mon, 24 Jun 2024 22:03:33 +0900 (JST) Received: from JPN01-OS0-obe.outbound.protection.outlook.com (unknown [104.47.23.109]) by mf04.melco.co.jp (Postfix) with ESMTP id 4W77SP5410zMrvtL; Mon, 24 Jun 2024 22:03:33 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bv+1avEvMUJCbAa0OMLd2bNfrXZw2MmW3U7zWLjaAUWr/IWAYwwAWusZ9ix5Lja/FoE+Y+LVmvA/LfNuitG7yU14TUj4yiGIH406QKONLtt/SJnBQHiYj9tR9v4N1JsVNHB0R8qPZAJsTg1v/jlmjHwrCen8KIke2VoxQnHlfTi4RcgWFFHx8EFgPinl2R2rLsTyeIysuAw+wlnJHGf7OB2OJF3m+4CrnPHPLie8WJy1ZHC34CVzQUTAwKhFw7P860XWqOI7Pa8c4AKRJZhBd2hbmasaKg5W9u9CkVWv/UaR99nUK3LEJMTggiq3QYC3mOKxfh9B4fXvD0ZT/ec+qQ== 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=iUKRJlrhnDDCw5Zu1awy6SJ0sUKTLSc9yQFa/qqaj+Y=; b=eEAVSVeMeM5bJDxu82uweeBHmbRF8nff8QzWozTrHeoOixmYl2F0Pqf+7bedNGeFgxRGDIfQSCeJtbT852Hf7bSvj8KoPg+EmFfVpO4h/BXlh7IBNgAHyUJRiKsfVugUG1VDIAES+yJVPjsIN0ddSYn6I8xAOWjQoOiEk+lkGXRWn6Ssd9tkq1feDq1Q5pX5O3a7HVuHs1C+inDU8tdYT4eH8lwyKrwg9r/8vGyJwxRAtCGbZBEU6kZj4olVygzKGk41bhkxFPCJGCD1dMmSIKN18qQa8oVMg7+Y9dfDkxHfE+pB9vuD7TW0iM4W6v4pBTvBxMVp0HU0vyOMIfGo5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iUKRJlrhnDDCw5Zu1awy6SJ0sUKTLSc9yQFa/qqaj+Y=; b=f4YT1qh1i/QIQQMKMYwF/I6P4eblNGeIjYQ1y0CL6lG5vHkeuQxELGXm4yxoSLSPCTZcY4ZOykjiFxvduoYPhMfzoTDrLHas4juBLMLJUSmNQueMup6h2zzfjaa1QXMdXyl3yKDCkmaJj44c/GW+y7IEJAltPUTnwVLhZ8cEbWk= Received: from TY2PR01MB3835.jpnprd01.prod.outlook.com (2603:1096:404:dd::10) by TY1PR01MB10801.jpnprd01.prod.outlook.com (2603:1096:400:327::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.24; Mon, 24 Jun 2024 13:03:32 +0000 Received: from TY2PR01MB3835.jpnprd01.prod.outlook.com ([fe80::3415:fa3:49b8:5e7e]) by TY2PR01MB3835.jpnprd01.prod.outlook.com ([fe80::3415:fa3:49b8:5e7e%4]) with mapi id 15.20.7698.025; Mon, 24 Jun 2024 13:03:31 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Jelte Fennema-Nio CC: PostgreSQL-development , Bruce Momjian , Robert Haas , Tom Lane , Stephen Frost , Andres Freund , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , vignesh C , Alexander Pyhalov , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaZV+FhOOC+4jqD0O6QaSNENpP/LEfzV+AgBnxJJCADnsVgIAB3niAgATs94CAXSjd0IAMTAEAgADLHwCAAJLNgIAJQrjwgAAp5wCAAQFMEIAALTSAgBFC0CCAAavCAIAAGn1Q Date: Mon, 24 Jun 2024 13:03:04 +0000 Deferred-Delivery: Mon, 24 Jun 2024 13:03:02 +0000 Message-ID: References: <31ab8f7b91cef6e837b3e31ea1e35a9a@postgrespro.ru> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TY2PR01MB3835:EE_|TY1PR01MB10801:EE_ x-ms-office365-filtering-correlation-id: bbfe1c69-5e10-46d3-9ecc-08dc944e0b88 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|7416011|376011|366013|1800799021|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?S2JqdE9TbDcvNE5qcGVac2hvWEsrWXhpZzdvTHZQYk9tM0tFYU9TZnBKdTE4?= =?utf-8?B?UTMzdlh0c1VDVGN6aGNsUWJJZTl1ajY1anZGU2hzUi9xUlVuV01SQ1QvVkRn?= =?utf-8?B?bjkyZDJVZ3cvbVVaZnlEQ1RBWTdYc0JVZlBRa29GTjFXaHFGTXlJaXV5VjJS?= =?utf-8?B?MWZxdk9yTjBJc1h6ZFlPeUR4WWg0VEQwVzMrd0dZTW4xcTB1QkZtSXV6TXY1?= =?utf-8?B?OEs3RXpIWTFNY2xYTHo2Lzc3U2YySFJzRU50dVNncjhFU1IrcWxtVGxkeVAv?= =?utf-8?B?N1RBNWF6ZldMSmRhMkZHRFpLL0grT3pTSVJXR2pHWVNHZXF2SHJwYXArVEFF?= =?utf-8?B?dnVlNFJMTE1OZ3dlZVFSR1gyWVVTb1NQSDNlMFRSNXlYb2twdXg1NHk5MVNO?= =?utf-8?B?UkxNTk94a3NWV3lyczlraWVkNlNtM0RRSHJqZ0ZpUHFSdk94aTQrNGFWZFlG?= =?utf-8?B?bDJVU3lHaEYrMExLajJhRXJBY3R3ckJ6ck9WcEZndEIxUDBPU2pVY1dPeCtM?= =?utf-8?B?TUVGOVJNVlI1UjVlY3g3SEdiSDROZzRzN2pYdXdxTEFBYnpLUWFveCtmdFJN?= =?utf-8?B?NTMwSkhnbWdsWDM5NWlHTXVXZEQyZzVzN0JHWjdiVmFpZmQ4MmQ4TnoyNDdj?= =?utf-8?B?RkhTZ1N4bTJmaWtuN3pXd0VjQlVLZ3Iyb1BiQXE3SHdURXVLVGZuVXZVVEds?= =?utf-8?B?NThGck0wdGVGWko4M09KTU50dE9rbkpqVk55aHlVUmlyaXhFNFhscDRsZExO?= =?utf-8?B?THJyQWtRSjBaNFdudnlVT0ZuNXVIOVlmU2pCYmZqV004aGRiTWlFSG5Xa2o2?= =?utf-8?B?WkZ6R3JQOUtHZTRyaHQ4bHN0bXRYUUNhdkhQZFJOM1g2dmxyand5bnJ3RUNu?= =?utf-8?B?UFdSd2tyTmtoV21RWHlHc1dQYjhoYU1nNmltKzg5ZGU4a1lGRHlUNnI4MjA5?= =?utf-8?B?Unh1VTRPVElyWTY1WmQ1VzJhWk1zOG1xa0RkSHljRG8yY0dkbGVKYlJJVG5s?= =?utf-8?B?N0VaVUloVGhqeFJ2QzRKR2hmTW4wOFVNdmIrUFJPMTRsdWN4LzJBTEgrYUx2?= =?utf-8?B?UE10bHFhdk5qaHYyUllOL0xVVzF2S3FPY1FUVHY4STVJOVVTT2wxMkNVenVq?= =?utf-8?B?ZVQ0TE5ZS1dKQVM3em9XbTJIaE53bjlwdkd4K1hSQ1daMnFkTmpVL0NhUk5J?= =?utf-8?B?bHlXQi9yUUVDT2F5SXpXRDBlY0dzMVJITXNld09CTW5TZldCM2hYL0l2aHhr?= =?utf-8?B?ZGY5T1IyTjhKSUxnL0NDVytKTkV0TE9JR1BENG1xSjJlTEtXZGxxVEllazQ0?= =?utf-8?B?RVZXODlBMEhzdjBsd2I0TmppQTlHRjJ3T0FmNEVJZkxMcmpFNzI4VU1Ha3B3?= =?utf-8?B?K2kybWdmbGJaaDFEOU02UzJBd1ZZRldoV295dXlDOUJiaDF3NXBqUERzcGtL?= =?utf-8?B?bG1tMElOMmNmTHBqTlZyZC9ocFYvU2dYenhvb1VzdHFuTTFrcmVRZDRYSjll?= =?utf-8?B?Nm1QZWdnT21WYjRlT2UxTG5FVERDU29NZUYwa3V1OE9uSWNLYjVmc3VNVFA3?= =?utf-8?B?ZW9aR1QvQnVFMmMxb0xaS3VidlB0WGNWUk9xa0xtaENlZnViUmhGb3llYzVh?= =?utf-8?B?RENDd29ySzdVcVFHaHlMTlJoVU9yajY3TmJ1M25FcFEybGxzbkZzNVBJeGJo?= =?utf-8?B?WjBWUHJpSGJqdW5NWHhMSWUvOTlIL1ZMWXRKQlhHeVUva1pUZFIrNitOaTdI?= =?utf-8?B?TWJMNUNOc0hicTBwOERaWXVEUUxvOEtyN2podjFuZzYyVy9YKzVoS2ExVGVD?= =?utf-8?Q?q4eNUKOj8Ong4oYtC5kQy3s/vi1sKAeiWS1fI=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR01MB3835.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(7416011)(376011)(366013)(1800799021)(38070700015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dWtOZSsyMndHNDRWOW5IT2pJRVBRY0xXdnJNZnUzbjRpWFA0QlBiazNRRktq?= =?utf-8?B?b2FRQTFUOFNzMmxwVFZTOHdpWVBXUS82RkpnLzB4TWZOTkEvV3VZNmROM0pO?= =?utf-8?B?elBMdGMrbklzMUQwQWJVcE1oNlYzdm9iWllJUjlkTk5YblloLzZMWWJhOWla?= =?utf-8?B?eUdJYlc5OWc0d2FIOEtWOVB4Z2xQUWcyMmZzMlByQ2FETzN3ck9lU2hRZGtj?= =?utf-8?B?bm5lK0MveGdpc0V3M0wwbmYrWG45Ti9STzRLRStMQXJadjM3em9qZXo4Q2VJ?= =?utf-8?B?UVJtaTQ1TWcvL0V6N1AzWDYxeDRFRG9GRzJteHJyQ29tYlRLcy8wQVhGaXlz?= =?utf-8?B?Rnk3aXlqdUJnM3ZWdW1oQjBWSU5wVXBpQVArMXdFcTBtT2dsbFZ3cUQ4RFpq?= =?utf-8?B?cTZmb3BLUHo0dHFObVZxUzJiMWFacTNWd3FiRmpUUm5sb3NpUmJWdU5DWDgv?= =?utf-8?B?a2VvdytSbWd5L3l3V25yYUoyenNKdXExZ3Exc1liTExDcDNxQnVPV3FJSmZO?= =?utf-8?B?bS8vb283M29FMERKd3d3ajREQjRJbGRzLzN0bkt0S21IVzBBb1dRUEtMVkdm?= =?utf-8?B?MWp0S2ZHMm82c3dXWTVZZGNScE9tQ3MyTFoyRU4xblhlNjROZ3dFdmtNSDk4?= =?utf-8?B?OGdXRnNzQS9nQ3piVWJIZVlRUDBXWUVWeklMa2d1Ym9UNkxDcDJWcHRSai94?= =?utf-8?B?M3ZDaVZxcWltQTBVNUZFOXFxbkFMUUFhdkUzSnpzQ2RlMDVlQWMyM1A3L2Uy?= =?utf-8?B?WkluV2RFMnljeHZiZTdNeGNBUmVSY1NJT2JCRXhZcXc2WEtJQTV6cm9rU25P?= =?utf-8?B?LytrNFdWRWtIQnExUDNtMDdWTVAvUldPZjVvdmlaMGsvdHI1MXFYdStHMGpO?= =?utf-8?B?QU9Cdmh1MmVrOG9kNHM1aHl3cnkyS0ZacXBnU013cVkwamQ5US9QeXYyZTdT?= =?utf-8?B?a1Jjb0FrcXdXRHJBNTl4b0ZZeW5jeU40UTdvcmt3aUlqbTRmOGZSaHV1R3J1?= =?utf-8?B?THozVnh1bjJKeWtDSkM2UTFWMUdiS0NSVDZxd3BUQTY0bnh5NThnQ0pBb1My?= =?utf-8?B?TDNUanp5MXFlTEZtcUphVFNucUhVdlN0cVZBemQzREc0UDhJQ3N2L0owMjRE?= =?utf-8?B?ZGRxdlh1L1J1Y3V6MkE1amQ1Snpyc2IwWG84dll0ODFGSFl2OWUvSS9aRm43?= =?utf-8?B?UEc3QVNEanFUdjYraTM2aHVSSklJWmJCbzNlZjhTWDZ0K1EyWlk0VFJXQXFO?= =?utf-8?B?VlBvTjc2R0l3cE5XV0pUVU92cU8zZU1qK3FuQUxXMjlqd25zVHMyL3BqbHJH?= =?utf-8?B?V09Pdk9ZNUlqRzhFeE5Kd0pkUUEwUjM2eG4zVVh5ODg2MTZxaEJUdnJEVmtV?= =?utf-8?B?Wi83QmdDUEZxK2pKQzVyTjM0MXNQU25pR2JLT3B2K0dsZUtMTnNUbmQxZ2kx?= =?utf-8?B?cmhjeUVpZzVHZ3ErUWlKcE1UM1YwODN2UEU1SWZ3NHE0NHArRENaMVdqL1BM?= =?utf-8?B?elNDdDFZb09MUTdzbDFEMlZiMW5uQWx0aEpDRVkwQk83SDlWdUFGdUYvZXhO?= =?utf-8?B?dndFa0lnWVM4RU1oRGNBVE9LU3FkN2R6MkFVaEFPdVZxTTBZUTdNZG13bVRM?= =?utf-8?B?ekhsNWhISmVoM2sraU4ycU9xZ092c2RLZHpNNnVGZ2NBZDJxZ3hhMXRPeFpn?= =?utf-8?B?STNWZDQvSk96RnhQZm5ub3RBNjBUVlZQMi9zbWRuYmlPMWtSOE5ZMGVmaU1m?= =?utf-8?B?Z0dXU0ZDOFhQYS8reExoUS85MHJPVUpjODVDRU14ZVJjNGNkLzAwblFPL3Qz?= =?utf-8?B?QVRLdFFpVVUzQmtxeGVwK0p0L05nQko1ZkJBbDRvK2grZ3RBRXhWUW5Tb2hH?= =?utf-8?B?UUJEZUVwK055aDFHdmxDTWluT0lWcjZCQjFUTnJFZzNlZEZJUkZOMmxkYWpi?= =?utf-8?B?K2NCUWttajhETUp0TkdTMmNIOTdWOSs3UkdYN3Vra2Z4MHkxYVR0V3Q0MXli?= =?utf-8?B?d3JsWFZNcEpuNzNpamd6S0daK2UrT1lIb2tMbG8yRTJsaStPNzYxc1hZQ1VS?= =?utf-8?B?M2VkMGs5SnFadU9BUmtHY2hrcCt6ZGYvL3FEaWtsYjlxQ2ZGTjJHL1AvY3Y3?= =?utf-8?Q?vnU/Q8JpHnyrqAr0wUNlLRTHt?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB3835.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbfe1c69-5e10-46d3-9ecc-08dc944e0b88 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2024 13:03:30.1216 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bA88afvNXSfaJGnP3YtDPLV9PqX7OXM7N3RxpXeC5N8Hp7FmBE/ngxB/IRfotqth9v/ob6ThJBM+GMoe21pPpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY1PR01MB10801 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk SGkuIEplbHRlLCBoYWNrZXJzLg0KDQpUaGFuayB5b3UgZm9yIHlvdXIgcHJvcG9zYWwgYW5kIGNv bW1lbnRzLg0KDQo+IEZyb206IEplbHRlIEZlbm5lbWEtTmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+ DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAyNCwgMjAyNCA2OjA5IFBNDQo+ID4gMS4gR2VuZXJhbGl0 eQ0KPiA+IEkgYmVsaWV2ZSB3ZSBzaG91bGQgZGV2ZWxvcCBhIG1ldGhvZCB0aGF0IGNhbiB0aGVv cmV0aWNhbGx5IGFwcGx5IHRvIGFueQ0KPiBhZ2dyZWdhdGUgZnVuY3Rpb24sIGV2ZW4gaWYgd2Ug Y2Fubm90IGltcGxlbWVudCBpdCBpbW1lZGlhdGVseS4gSG93ZXZlciwgSSBmaW5kDQo+IGl0IGV4 Y2VwdGlvbmFsbHkgY2hhbGxlbmdpbmcgdG8gZGVtb25zdHJhdGUgdGhhdCBhbnkgaW50ZXJuYWwg dHJhbnN0eXBlIGNhbiBiZQ0KPiB1bml2ZXJzYWxseSBjb252ZXJ0ZWQgdG8gYSBuYXRpdmUgZGF0 YSB0eXBlIGZvciBhZ2dyZWdhdGUgZnVuY3Rpb25zIHRoYXQgYXJlDQo+IHBhcmFsbGVsLXNhZmUg dW5kZXIgdGhlIGN1cnJlbnQgcGFyYWxsZWwgcXVlcnkgZmVhdHVyZS4gU3BlY2lmaWNhbGx5LCBw cm92aW5nIHRoaXMNCj4gZm9yIHVzZXItZGVmaW5lZCBhZ2dyZWdhdGUgZnVuY3Rpb25zIHByZXNl bnRzIGEgc2lnbmlmaWNhbnQgZGlmZmljdWx0eSBpbiBteQ0KPiB2aWV3Lg0KPiA+IE9uIHRoZSBv dGhlciBoYW5kLCBJIHRoaW5rIHRoYXQgdGhlIHVzYWdlIG9mIGV4cG9ydCBhbmQgaW1wb3J0IGZ1 bmN0aW9ucyBjYW4NCj4gdGhlb3JldGljYWxseSBhcHBseSB0byBhbnkgYWdncmVnYXRlIGZ1bmN0 aW9ucy4NCj4gDQo+IFRoZSBvbmx5IHRoaW5nIHJlcXVpcmVkIHdoZW4gZG9pbmcgQ1JFQVRFIFRZ UEUgaXMgaGF2aW5nIGFuIElOUFVUIGFuZA0KPiBPVVRQVVQgZnVuY3Rpb24gZm9yIHRoZSB0eXBl LCB3aGljaCAoZGUpc2VyaWFsaXplIHRoZSB0eXBlIHRvIHRleHQgZm9ybWF0LiBBcw0KPiBmYXIg YXMgSSBjYW4gdGVsbCBieSBkZWZpbml0aW9uIHRoYXQgcmVxdWlyZW1lbnQgc2hvdWxkIGJlIGZp bmUgZm9yIGFueSBhZ2dyZWdhdGVzDQo+IHRoYXQgd2UgY2FuIGRvIHBhcnRpYWwgYWdncmVnYXRp b24gcHVzaGRvd24gZm9yLiBUbyBjbGFyaWZ5IEknbSBub3Qgc3VnZ2VzdGluZw0KPiB3ZSBzaG91 bGQgY2hhbmdlIGFueSBvZiB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGUg Zm9yIHRoZSBjdXJyZW50DQo+IGludGVybmFsIGFnZ3JlZ2F0ZXMuIEknbSBzdWdnZXN0aW5nIHdl IGNyZWF0ZSBuZXcgbmF0aXZlIHR5cGVzIChpLmUuIGRvIENSRUFURQ0KPiBUWVBFKSBmb3IgdGhv c2UgaW50ZXJuYWwgcmVwcmVzZW50YXRpb25zIGFuZCB0aGVuIHVzZSB0aGUgbmFtZSBvZiB0aGF0 IHR5cGUNCj4gaW5zdGVhZCBvZiBpbnRlcm5hbC4NCkkgc2VlLiBJIG1heWJlIGdvdCB5b3VyIHBy b3Bvc2FsLg0KUmVmZXIgdG8geW91ciBwcm9wb3NhbCwgZm9yIGF2ZyhpbnQ4KSwgDQpJIGNyZWF0 ZSBhIG5ldyBuYXRpdmUgdHlwZSBsaWtlIHN0YXRlX2ludDhfYXZnDQp3aXRoIHRoZSBuZXcgdHlw c2VuZC90eXByZWNlaXZlIGZ1bmN0aW9ucw0KYW5kIHVzZSB0aGVtIHRvIHRyYW5zbWl0IHRoZSBz dGF0ZSB2YWx1ZSwgcmlnaHQ/DQoNClRoYXQgbWlnaHQgc2VlbSB0byBiZSBhIG1vcmUgZnVuZGFt ZW50YWwgc29sdXRpb24NCmJlY2F1c2UgSSBjYW4gYXZvaWQgYWRkaW5nIGV4cG9ydC9pbXBvcnQg ZnVuY3Rpb25zIG9mIG15IHByb3Bvc2FsLA0Kd2hpY2ggYXJlIHRoZSBuZXcgY29tcG9uZW50cyBv ZiBhZ2dyZWdhdGUgZnVuY3Rpb24uDQpJIGhhdmUgbmV2ZXIgY29uc2lkZXJlZCB0aGUgc29sdXRp b24uDQpJIGFwcHJlY2lhdGUgeW91ciBwcm9wb3NhbC4NCg0KSG93ZXZlciwgSSBzdGlsbCBoYXZl IHRoZSBmb2xsb3dpbmcgdHdvIHF1ZXN0aW9ucy4NCg0KMS4gTm90IG5lY2Vzc2FyeSBjb21wb25l bnRzIG9mIG5ldyBuYXRpdmUgdHlwZXMNClJlZmVyIHRvIHBnX3R5cGUuZGF0LCB0eXBpbnB1dCBh bmQgdHlwb3V0cHV0IGFyZSByZXF1aXJlZC4NCkkgdGhpbmsgdGhhdCBpbiB5b3VyIHByb3Bvc2Fs IHRoZXkgYXJlIG5vdCBuZWNlc3NhcnksDQpzbyB3YXN0ZS4gSSB0aGluayB0aGF0IGl0IGlzIG5v dCBhY2NlcHRhYmxlLg0KSG93IGNhbiBJIHJlc29sdmUgdGhlIHByb2JsZW0/IA0KDQoyLiBNYW55 IG5ldyBuYXRpdmUgdHlwZXMNCkkgdGhpbmsgdGhhdCwgYmFzaWNhbGx5LCBlYWNoIGFnZ3JlZ2F0 ZSBmdW5jdGlvbiBkb2VzIG5lZWQgYSBuZXcgbmF0aXZlIHR5cGUuDQpGb3IgZXhhbXBsZSwNCmF2 ZyhpbnQ4KSwgYXZnKG51bWVyaWMpLCBhbmQgdmFyX3BvcChpbnQ0KSBoYXMgdGhlIHNhbWUgdHJh bnN0eXBlLCBQb2x5TnVtQWdnU3RhdGUuDQpZb3Ugc2FpZCB0aGF0IGl0IGlzIGVub3VnaCB0byBh ZGQgb25seSBvbmUgbmF0aXZlIHR5cGUgbGlrZSBzdGF0ZV9wb2x5X251bV9hZ2cNCmZvciBzdXBw b3J0aW5nIHRoZW0sIHJpZ2h0Pw0KDQpCdXQgdGhlIGNvbWJpbmUgZnVuY3Rpb25zIG9mIHRoZW0g bWlnaHQgaGF2ZSBxdWl0ZSBkaWZmZXJlbnQgZXhwZWN0YXRpb24NCm9uIHRoZSBkYXRhIGl0ZW1z IG9mIFBvbHlOdW1BZ2dTdGF0ZSBsaWtlDQp0aGUgcmFuZ2Ugb2YgTihtZWFucyBjb3VudCkgYW5k IHRoZSB0cnVlL2ZhbHNlIG9mIGNhbGNTdW1YMg0KKHRoZSBmbGFnIG9mIGNhbGN1bGF0aW5nIHN1 bSBvZiBzcXVhcmVzKS4NClRoZSBmaW5hbCBmdW5jdGlvbnMgb2YgdGhlbSBoYXZlIHRoZSBzaW1p bGFyIGV4cGVjdGF0aW9uLg0KU28sIEkgdGhpbmsgdGhhdCwgcmVzcG9uZGVkIHRvIHlvdXIgcHJv cG9zYWwsDQplYWNoIG9mIHRoZW0gbmVlZCBhIG5hdGl2ZSBkYXRhIHR5cGUNCmxpa2Ugc3RhdGVf aW50OF9hdmcsIHN0YXRlX251bWVyaWNfYXZnLCBmb3Igc2FmZXR5Lg0KDQpBbmQsIHdlIGRvIG5l ZWQgYSBuYXRpdmUgdHlwZSBmb3IgYW4gYWdncmVnYXRlIGZ1bmN0aW9uDQp3aG9zZSB0cmFuc3R5 cGUgaXMgbm90IGludGVybmFsIGFuZCBub3QgcHNldWRvLg0KRm9yIGF2ZyhpbnQ0KSwgdGhlIGN1 cnJlbnQgdHJhbnN0eXBlIGlzIF9pbnQ4Lg0KSG93ZXZlciwgSSBkbyBuZWVkIGEgdmFsaWRhdGlv biBjaGVjayBvbiB0aGUgbnVtYmVyIG9mIHRoZSBhcnJheQ0KQW5kIHRoZSBwb3NpdGl2ZW5lc3Mg b2YgY291bnQodGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGFycmF5KS4NClJlc3BvbmRlZCB0byB5 b3VyIHByb3Bvc2FsLA0KSSBkbyBuZWVkIGEgbmV3IG5hdGl2ZSB0eXBlIGxpa2Ugc3RhdGVfaW50 NF9hdmcuDQoNCkNvbnNlcXVlbnRseSwgSSB0aGluayB0aGF0LCByZXNwb25kZWQgdG8geW91ciBw cm9wb3NhbCwgZmluYWxseQ0KZWFjaCBvZiBhZ2dyZWdhdGUgZnVuY3Rpb25zIG5lZWQgYSBuZXcg bmF0aXZlIHR5cGUNCndpdGggdHlwaW5wdXQgYW5kIHR5cG91dHB1dC4NClRoYXQgc2VlbXMgbmVl ZCB0aGUgc2FtZSBhbW91bnQgb2YgY29kZXMgYW5kIG1vcmUgY2F0YWxvZyBkYXRhLA0KcmlnaHQ/ DQoNCj4gPiAyLiBBbW91bnQgb2YgY29kZXMuDQo+ID4gSXQgY291bGQgbmVlZCBtb3JlIGNvZGVz Lg0KPiANCj4gSSB0aGluayBpdCB3b3VsZCBiZSBhYm91dCB0aGUgc2FtZSBhcyB5b3VyIHByb3Bv c2FsLiBJbnN0ZWFkIG9mIHNlcmlhbGl6aW5nIHRvIGFuDQo+IGludGVybWVkaWFyeSBleGlzdGlu ZyB0eXBlIHlvdSBzZXJpYWxpemUgdG8gc3RyaW5nIHN0cmFpZ2h0IGF3YXkuIEkgdGhpbmsgaXQg d291bGQNCj4gcHJvYmFibHkgYmUgc2xpZ2h0bHkgbGVzcyBjb2RlIGFjdHVhbGx5LCBzaW5jZSB5 b3UgZG9uJ3QgaGF2ZSB0byBhZGQgY29kZSB0bw0KPiBoYW5kbGUgdGhlIG5ldyBhZ2dwYXJ0aWFs ZXhwb3J0Zm4gYW5kIGFnZ3BhcnRpYWxpbXBvcnRmbiBjb2x1bW5zLg0KPiANCj4gPiAzLiBDb25j ZXJuIGFib3V0IHBlcmZvcm1hbmNlDQo+ID4gSSdtIGNvbmNlcm5lZCB0aGF0IGFsdGVyaW5nIHRo ZSBjdXJyZW50IGludGVybmFsIGRhdGEgdHlwZXMgY291bGQgaW1wYWN0DQo+IHBlcmZvcm1hbmNl Lg0KPiANCj4gQXMgZXhwbGFpbmVkIGFib3ZlIGluIG15IHByb3Bvc2FsIGFsbCB0aGUgYWdncmVn YXRpb24gY29kZSB3b3VsZCByZW1haW4NCj4gdW5jaGFuZ2VkLCBvbmx5IG5ldyBuYXRpdmUgdHlw ZXMgd2lsbCBiZSBhZGRlZC4gVGh1cyBwZXJmb3JtYW5jZSB3b24ndCBiZQ0KPiBhZmZlY3RlZCwg YmVjYXVzZSBhbGwgYWdncmVnYXRpb24gY29kZSB3aWxsIGJlIHRoZSBzYW1lLiBUaGUgb25seSB0 aGluZyB0aGF0J3MNCj4gY2hhbmdlZCBpcyB0aGF0IHRoZSBpbnRlcm5hbCB0eXBlIG5vdyBoYXMg YSBuYW1lIGFuZCBhbiBJTlBVVCBhbmQgT1VUUFVUDQo+IGZ1bmN0aW9uLg0KSSBnb3QgaXQuIFRo YW5rIHlvdS4NCg0KPiBOb3QgYSBmdWxsIHJldmlldyBidXQgc29tZSBpbml0aWFsIG5vdGVzOg0K VGhhbmsgeW91LiBJIGRvbid0IGhhdmUgdGltZSB0b2RheSwgc28gSSdsbCBhbnN3ZXIgYWZ0ZXIg dG9tb3Jyb3cuDQoNCkJlc3QgcmVnYXJkcywgWXVraSBGdWppaQ0KLS0NCll1a2kgRnVqaWkNCklu Zm9ybWF0aW9uIFRlY2hub2xvZ3kgUiZEIENlbnRlciwgTWl0c3ViaXNoaSBFbGVjdHJpYyBDb3Jw b3JhdGlvbg0K