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 1nMLJ6-00073A-MG for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Feb 2022 02:53:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nMLJ5-0000FF-It for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Feb 2022 02:53:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nMLJ5-0000F6-1P for pgsql-hackers@lists.postgresql.org; Tue, 22 Feb 2022 02:53:39 +0000 Received: from esa5.fujitsucc.c3s2.iphmx.com ([68.232.159.76]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nMLIz-0001mI-LV for pgsql-hackers@lists.postgresql.org; Tue, 22 Feb 2022 02:53:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1645498414; x=1677034414; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=V48Z3G0GXIxwDytd3G6sqYCfuSpPjys14hHTB1GXPu0=; b=UpjzMEpHRKfM2jatzyBITVvY7jmPT/g0Jz9BPlQ/+UV1IWM4Xqf2XMuQ NeqOW/oSrtyc75Qfzbie1iMnNFgGrfasNYvOKaFbsDRe6WHvTbJhq6A5g 9NLF2yzz5y8T9rTDdpCuSm54NYo9wHx++bxSX4Biy1BnVX1/bMn4d+Hhi 3kYPCl4MCseyoYFC/C1CtWjdfU9sBGV4vwjrDPTdXRPE+Gq0ASQC6QFyj 47bujbuIsB86oJ+d6b2eBcy/FDyHeyPIhMh/ccqlUqIE6HaWbVdrVwuKG qg56ee5uxf5LBWdVz4Jho9/CZl0laLOnXEeYkwIjOMPGagvpYRd5sKJe5 g==; X-IronPort-AV: E=McAfee;i="6200,9189,10265"; a="50285545" X-IronPort-AV: E=Sophos;i="5.88,387,1635174000"; d="zip'48?scan'48,208,48";a="50285545" Received: from mail-os0jpn01lp2106.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.106]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2022 11:53:30 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lSzOM1kjBBxkbuG/yNp75Kv/H2omHZBLsqT4L0m5ENY1oam560e5bhIafYXcf8+XQ65giKRugslGWLUeUZ5U3Icx/zF92Mz/+uQaY7ZrkIXi/f4D8VVWweRg7lxm8vlz3hMd7+TChzFLX8d8DYrHlmTInV7hJzXoV/CP2e/cf+t6i4gQBMx3PDESm2hjoeuv/V/wdfOYxLOBduYLwcGX4t1ndYpbsp5BGL1Zp+3i0mrEDo6bidpAnsWncTqrM9Ft8mtxa2p0Um6qA5mFZ46pKKBJ8rI5B6WZ37o/qcWO/42Sg7/di+LjwgacZvyiaqv5I2WtpWKTfoo6YU+KWqCpJQ== 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=JHFIsy0p7to0wKfx8sAZRxjfcZaznY2vmBDln6u7/NY=; b=odGlHXKvr1s2c0HxquwWKPl3GkTGoRZJQq6FwRHcArKNF4c1TCDZB8tr+aAFHEPSd3s3De5oI8vuIHUzWC0baoJpubClDm2woMU4ZkfAS7OZNcEUcNVEK6IMW27dcCjU55p5jXxbTTDbvt1dOmNwVi9GN2DxtZJVdNamA0kXNe+Oi/tl2WGLpoR7h0DX43wTiBWI2Z7DqyGZ4O/XjLcURIHFnJy8ArVcHPolMDVfOiNGnbw08IcJRjeeXlGV85ZrUYncwxVSUP/4vtOROkPQsr0RWLZ3wrIII1eeNynaM/PDA+6zt14ka2FPxyuPqxXTaBWfXtALIfFuTUlqlqg9Fw== 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.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JHFIsy0p7to0wKfx8sAZRxjfcZaznY2vmBDln6u7/NY=; b=XV4KDgPgj8LzQ6dpzY1ahRooEE7ZHlEiNCwMnH+uHqGBGx0lfR7i5z9xBpS8JDC8r6tvORnmQBFqPxFTc7gMKh2qUu2zhakSg0WjqPBVqMl0Sv+QCj+NEpH6G6N1CZ/OxjRbAO4zAMMPbFk2RIqT7ZTMXOZgT0VOs2M6OPwBOMY= Received: from TYAPR01MB5866.jpnprd01.prod.outlook.com (2603:1096:404:8056::13) by TYBPR01MB5502.jpnprd01.prod.outlook.com (2603:1096:404:801e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.17; Tue, 22 Feb 2022 02:53:27 +0000 Received: from TYAPR01MB5866.jpnprd01.prod.outlook.com ([fe80::4c8d:d829:e2ac:10fe]) by TYAPR01MB5866.jpnprd01.prod.outlook.com ([fe80::4c8d:d829:e2ac:10fe%4]) with mapi id 15.20.4995.027; Tue, 22 Feb 2022 02:53:26 +0000 From: "kuroda.hayato@fujitsu.com" To: 'Kyotaro Horiguchi' CC: "pgsql-hackers@lists.postgresql.org" , "Shinya11.Kato@oss.nttdata.com" , "zyu@yugabyte.com" , "masao.fujii@oss.nttdata.com" Subject: RE: [Proposal] Add foreign-server health checks infrastructure Thread-Topic: [Proposal] Add foreign-server health checks infrastructure Thread-Index: AdfNNjec7xk22WznTt+52qg+YpAmvANdE8aAAG+tXeAALaEGgADyvFSgAOXdLoAAHbFoIAAJMQQAAVzrX4ABVSpkgAcm+qGAAFKrs2AALpHaMABlDPQAAZXPwNAAQjmEAALZMWcAADGlIkAAC7y9AADsTM0A Date: Tue, 22 Feb 2022 02:53:26 +0000 Message-ID: References: <20220216.115058.1615761004338301624.horikyota.ntt@gmail.com> <20220217.170832.627054018291482509.horikyota.ntt@gmail.com> In-Reply-To: <20220217.170832.627054018291482509.horikyota.ntt@gmail.com> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2022-02-22T01:00:38Z; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=8f5842e3-4619-4d8b-bf33-5f338930bdb3; MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ee035ac9-fb5f-43e6-44ce-08d9f5ae7ff5 x-ms-traffictypediagnostic: TYBPR01MB5502:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OyIZGBuTbeyPOZortoO/MlI+OurLJlONGBdZxXQwQpvT3iwwSLGWZM3N3yDNRdr7k2AXr5nE6OJCEqiMZPKSGA7/WdcsmeFeuZ4ay7Ecf3/vfaP/tdjVPq2XOntxhs5S8HWBOWAxab6coO4cMAKd1jf0t1wEVLPRwiu6/cSG2qm2gDBHwNWwRNcxmX2O4s6MPGh4A7zvot2eITinV/0JeZtn7rkHSA5Jw98JKxT7kLZ8qWc77VICo1a3UHUw6ra8QAPZQYd0XUKhVaHSm5+UI1bCOHm4l1oS2ZEYzdUSQzcpOwpMRZt0v4rUpo3t236jULxrV/954GF2WdXBgK+cy3yAqzYT5zqVcD8FdRtCcQsteYHwXY5DL00VaWPiUllngcUQMJREhmf+WxBmtdU9m9SjnIhuaWdtybYkqDC+XYD0QCtJILXJ5Hg9aehbof6R3wUnSGpMnKnYhQl2zLLW8qZbvTT4ZgrcBMPJcmzctvLc/9siAsuUZyIW6K9B8I99BJrYQfDwl7mBsrdMaMqMH9SlH+Lt7dP/nxdW8O9bAN6bQE3MHrhrPqysJgzNJ8hT7Lzi6DIRvrAboieLH+9EnEJcfd3mGLApJaZaH/mBwPci6OgQ5CgV8t4A1tmNQnClqcV8Ewd7VEo/M3K0GFyNfMps0KPDbUiXS8Xam6j9D2A= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB5866.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(85182001)(83380400001)(38100700002)(71200400001)(186003)(26005)(82960400001)(99936003)(2906002)(6916009)(54906003)(52536014)(8936002)(86362001)(122000001)(38070700005)(316002)(33656002)(5660300002)(9686003)(7696005)(6506007)(4326008)(8676002)(66446008)(66476007)(66556008)(66946007)(76116006)(64756008)(508600001)(55016003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?bktVZzUxdzR0cGhmT09uUEpTYUpxc0xGSlUzd0Y4OHVkWVJOKzFhdytJ?= =?iso-2022-jp?B?YlhxQzhPZ1JRZmtBMkQxanhWOXNJM0R6NE5OcDZNNUhRTjFjUmM4aU1y?= =?iso-2022-jp?B?RzQzN3JVS1FaOVhaa1dwUUxSTVZORzRKejNFamVqNnNQeGoyLzZoWmpG?= =?iso-2022-jp?B?ZTVIYWtwbUNCMExnOWh1aTQweUR2T2xLZG5WU2Y3MVBvSkJVN2YvUFg2?= =?iso-2022-jp?B?cG4vWXpzd2ZRTXJSWk40TVRMenQ2UDNNQTRsQmpLNnVXTW9YWVNCTEs4?= =?iso-2022-jp?B?RTVVdTVLSzF6NG80amVWLzRKQ2hJUDR6MVg0aXdUNWRkQit1RXdqZHZ1?= =?iso-2022-jp?B?TFZzUG8yeXRzWlVDU2dadk1CQWZjd2krbWhON2xVc1JDY2NXVGpMV1ht?= =?iso-2022-jp?B?djZFNVVDNWR2M1VWeGFCU2YrdnVLZExQb3pXR1hxT0NlMEM0d1JDNE11?= =?iso-2022-jp?B?cjRtNktCaVlOc25NWWllQmhNR0Z2V3J0QXVTb2JNWkI0RkJPbHhsQ01y?= =?iso-2022-jp?B?bjJlNTNjbTZDeXRKdUFmRHc4WFlybHB3UlhiN3FBRWdDOXIzS0JneFFK?= =?iso-2022-jp?B?c1o4aTJ1RGMrT2t6Tm0zVXJFVHhTaC8rSXhoSzNXV2RxQUMvR2V3VEtM?= =?iso-2022-jp?B?b0xCRXBHS0FFSDdVOHFCVnBodlQ4bHoxWWZkM051OXNOajAxMEhoM3Jp?= =?iso-2022-jp?B?Sjdjdk1pWlVPQVpEcnZwblFtQXRmUE5LY3RkQVN0SG5Lc09TK0I3WUZJ?= =?iso-2022-jp?B?VVM3MVBPN2lqbDBnMTg2NG9DeVBzNm45cXdINC9tQ1B1NmxWeFk0WEpR?= =?iso-2022-jp?B?K2RhZlFZTTR3d3huNjMxaUVLeUxPVjhxL0JhZURrNDNIYlhyOXljYk96?= =?iso-2022-jp?B?VXNYcDFOY3c5ZlRMem5VYWQxVXlsSUJpVTJrSHFEVUN1em5rVVN4ZXNm?= =?iso-2022-jp?B?akxicU0zbnBLOVcvdnZqeEQ2KzZPZDl4UUcyK0VtaFZ0d2cwMEJweTN0?= =?iso-2022-jp?B?RGNoTWVPbjVxZnpLS3Y5SmN2WWYwSlJzT0t2U0dKcGxTMkFQRWxCeTM3?= =?iso-2022-jp?B?VnVZdWVsams5RDJPRUs2SEJRSFVuMmNFd3Y4eHE4UEY0S2o5dHJFOEFS?= =?iso-2022-jp?B?N0g4czZWeElCR0w5ZWw5am1uOUJ1aVpCSnlPNVFyMXd1TWZSdkM4V2Y1?= =?iso-2022-jp?B?SXRlWEtsdGxoVVdFM0QrK3NWdDVKcnFVbTdNVkxiakpRK1ZFTUprK21C?= =?iso-2022-jp?B?WjlWT01rSVQ4NllqdVo1NFRaaWNScnBFaUtRNDBsVW5Vakk4T1BEN09w?= =?iso-2022-jp?B?dktOQ2NLc0VKanZPSGpMMFRwa1Z1bjJSWlVmd2hXbU5xSDRERjVvQnJV?= =?iso-2022-jp?B?NDJxSUg3N1dmTzFWOEJ5VUVleXlkUWQwN3FkUC9IdnNKOFYxVkphV01W?= =?iso-2022-jp?B?bXFrOFpaNUt5bjhMVU1xcGZqSHpaakFhbkRYemlaVzZYUExVdVloQVU1?= =?iso-2022-jp?B?bExYNExpNURkMG9SbGJ2K21RdTNlMENkOFMrZ1I4UkI0NkgxaFZlSXJU?= =?iso-2022-jp?B?eSsxWEZZdjNKMGRRUjlXM3U3RFdYSlk2TDdnZ3RjdXF6VXdZS2xXczhD?= =?iso-2022-jp?B?NG9SRUVuc2JOOUd5aDVtdTR0b0J4M3FDdmNDY0c1dm5KazJXUWRQdUR4?= =?iso-2022-jp?B?ME15TWxyNHlrbk81UFR2T3pLL3lkempnSGtEK1JpZU41eW55RHNQemJ3?= =?iso-2022-jp?B?YXYzWEJpVXIzM1k1S09YYVErY0JJM2I2clkvRlFLcE5XamtmUDlXZHlV?= =?iso-2022-jp?B?VEpCTEtVQXlIQWNWaXJIcTVHUkwvcEg5TzFicWZpOVhHVGh2V2tTaVYr?= =?iso-2022-jp?B?MXRFcGVaWUxuVzRvUk1uWkxyRFFzbVNaUDlROW90aThzS25CWWJNNUQ2?= =?iso-2022-jp?B?U1hTZERTOU5uYjJleFNnNEhlaWJGam5EcHArNElacDdzL240OWZrUmNv?= =?iso-2022-jp?B?ZTByRDN1Tm50SDROeEN3NXVrd3dzbHV2NFJLdGpyNG14SXVWQWhLTjdC?= =?iso-2022-jp?B?Nk9ETlUybkdYTWk5VENjWHRySzdUNmZzS0Z2a3ZsRE9NZXN1TjRldUw5?= =?iso-2022-jp?B?VjBzTGtWdk1zYzJyZUlnTVVmajQ0SGp6RU5WNGVRU1FhNFRqOFRqM0tw?= =?iso-2022-jp?B?ZFFCcmJtMjZSQTJFT0VVKzg2c1VlNXRieE90Q3V4RnpIbEY4OHJVWkgy?= =?iso-2022-jp?B?WXAwMkZYTnBCczl2M1ZCQkxld3dJRkVxYzVmZDhHTGFVT3VMclNSS1hB?= =?iso-2022-jp?B?VW94ejBPK090MGo1N2RuUnNhTkdKcTI1VnE2NHlOZExQM3lkUGJQQ2pu?= =?iso-2022-jp?B?VmpsZE9tQUVzbUQxZW1SNmpPTXZwVTVmV1hkR3lUSUpCZGc0cG9hU2Ix?= =?iso-2022-jp?B?c1p2dndRPT0=?= Content-Type: multipart/mixed; boundary="_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_" MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB5866.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee035ac9-fb5f-43e6-44ce-08d9f5ae7ff5 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Feb 2022 02:53:26.8281 (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: IzbMNF6x+ooWcjPefMaGYP5cmAcbPPDRtIP2RkhVH3uIaC1sz6/wYjtQyP6HUrk//3U0QEd5/qthIYPkdInwJm7zYl1sK5o6QAnUhnPcIwY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYBPR01MB5502 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Dear Horiguchi-san, Fujii-san, > > I understood here as removing following mechanism from core: > > > > * disable timeout at end of tx. > > * skip if held off or read commands >=20 > I think we're on the same page. Anyway query cancel interrupt is > ignored while rading input. >=20 > > > - If an existing connection is found to be dead, just try canceling > > > the query (or sending query cancel). > > > One issue with it is how to show the decent message for the query > > > cancel, but maybe we can have a global variable that suggests the > > > reason for the cancel. > > > > Currently I have no good idea for that but I'll try. >=20 > However, I would like to hear others' opnions about the direction, of > course. > Based on the idea, I re-implemented the feature. Almost all feature is moved to postgres_fdw. The abstract of my patch is as follows: # core * Exposes QueryCancelMessage for error reporting * Uses above if it was not NULL # postgres_fdw * Defines new GUC postgres_fdw.health_check_interval. It is renamed simpler. * Registers a timeout when initializing connection hash. * Raises SIGINT and sets QueryCancelMessage to message. if detects a connection lost. I also attached a test as zipped file for keep cfbot quiet. When connection lost is detected, the following message will show: ``` ERROR: Foreign Server (servername) might be down. ``` How do you think? Best Regards, Hayato Kuroda FUJITSU LIMITED --_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_ Content-Type: application/octet-stream; name="v10_0001_expose_cancel_message.patch" Content-Description: v10_0001_expose_cancel_message.patch Content-Disposition: attachment; filename="v10_0001_expose_cancel_message.patch"; size=1473; creation-date="Tue, 22 Feb 2022 02:27:06 GMT"; modification-date="Tue, 22 Feb 2022 02:53:26 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYwppbmRleCAzOGQ4Yjk3ODk0Li44OTFkNmFjMjA0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jl cy5jCkBAIC0xMDYsNiArMTA2LDggQEAgaW50CQkJUG9zdEF1dGhEZWxheSA9IDA7CiAvKiBUaW1l IGJldHdlZW4gY2hlY2tzIHRoYXQgdGhlIGNsaWVudCBpcyBzdGlsbCBjb25uZWN0ZWQuICovCiBp bnQJCQljbGllbnRfY29ubmVjdGlvbl9jaGVja19pbnRlcnZhbCA9IDA7CiAKK2NoYXIgCQkqUWV1 cnlDYW5jZWxNZXNzYWdlID0gTlVMTDsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJCXByaXZh dGUgdHlwZWRlZnMgZXRjCiAgKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0zMzI5LDYgKzMzMzEsOCBA QCBQcm9jZXNzSW50ZXJydXB0cyh2b2lkKQogCQkJTG9ja0Vycm9yQ2xlYW51cCgpOwogCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9RVUVSWV9DQU5DRUxFRCksCisJCQkJ CSBRZXVyeUNhbmNlbE1lc3NhZ2UgPworCQkJCQkgZXJybXNnKCIlcyIsIFFldXJ5Q2FuY2VsTWVz c2FnZSkgOgogCQkJCQkgZXJybXNnKCJjYW5jZWxpbmcgc3RhdGVtZW50IGR1ZSB0byB1c2VyIHJl cXVlc3QiKSkpOwogCQl9CiAJfQpAQCAtNDI0MCw2ICs0MjQ0LDkgQEAgUG9zdGdyZXNNYWluKGNv bnN0IGNoYXIgKmRibmFtZSwgY29uc3QgY2hhciAqdXNlcm5hbWUpCiAJCS8qIFJlcG9ydCB0aGUg ZXJyb3IgdG8gdGhlIGNsaWVudCBhbmQvb3Igc2VydmVyIGxvZyAqLwogCQlFbWl0RXJyb3JSZXBv cnQoKTsKIAorCQkvKiBNYWtlIHN1cmUgUWV1cnlDYW5jZWxNZXNzYWdlIGlzIHJlc2V0LiAqLwor CQlRZXVyeUNhbmNlbE1lc3NhZ2UgPSBOVUxMOworCiAJCS8qCiAJCSAqIE1ha2Ugc3VyZSBkZWJ1 Z19xdWVyeV9zdHJpbmcgZ2V0cyByZXNldCBiZWZvcmUgd2UgcG9zc2libHkgY2xvYmJlcgogCQkg KiB0aGUgc3RvcmFnZSBpdCBwb2ludHMgYXQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29w L3Rjb3Bwcm90LmggYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKaW5kZXggMTVhMTFiYzNm Zi4uNTRlYTFkZTlkZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5oCisr KyBiL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3QuaApAQCAtMzAsNiArMzAsNyBAQCBleHRlcm4g UEdETExJTVBPUlQgY29uc3QgY2hhciAqZGVidWdfcXVlcnlfc3RyaW5nOwogZXh0ZXJuIGludAlt YXhfc3RhY2tfZGVwdGg7CiBleHRlcm4gaW50CVBvc3RBdXRoRGVsYXk7CiBleHRlcm4gaW50CWNs aWVudF9jb25uZWN0aW9uX2NoZWNrX2ludGVydmFsOworZXh0ZXJuIGNoYXIqIFFldXJ5Q2FuY2Vs TWVzc2FnZTsKIAogLyogR1VDLWNvbmZpZ3VyYWJsZSBwYXJhbWV0ZXJzICovCiAK --_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_ Content-Type: application/octet-stream; name="v10_0002_add_health_check.patch" Content-Description: v10_0002_add_health_check.patch Content-Disposition: attachment; filename="v10_0002_add_health_check.patch"; size=6839; creation-date="Tue, 22 Feb 2022 02:27:06 GMT"; modification-date="Tue, 22 Feb 2022 02:53:26 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYwppbmRleCBmNzUzYzZlMjMyLi5kNTUyNDNmYjdlIDEw MDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMKKysrIGIvY29udHJp Yi9wb3N0Z3Jlc19mZHcvY29ubmVjdGlvbi5jCkBAIC0yMywxMiArMjMsMTQgQEAKICNpbmNsdWRl ICJwb3N0Z3Jlc19mZHcuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9sYXRjaC5oIgorI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKICNpbmNsdWRlICJ1dGls cy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGV0aW1lLmgiCiAjaW5jbHVkZSAidXRp bHMvaHNlYXJjaC5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxz L3RpbWVvdXQuaCIKIAogLyoKICAqIENvbm5lY3Rpb24gY2FjaGUgaGFzaCB0YWJsZSBlbnRyeQpA QCAtMTA5LDYgKzExMSwxMCBAQCBzdGF0aWMgdm9pZCBwZ2Zkd19hYm9ydF9jbGVhbnVwKENvbm5D YWNoZUVudHJ5ICplbnRyeSwgY29uc3QgY2hhciAqc3FsLAogCQkJCQkJCQlib29sIHRvcGxldmVs KTsKIHN0YXRpYyBib29sIFVzZXJNYXBwaW5nUGFzc3dvcmRSZXF1aXJlZChVc2VyTWFwcGluZyAq dXNlcik7CiBzdGF0aWMgYm9vbCBkaXNjb25uZWN0X2NhY2hlZF9jb25uZWN0aW9ucyhPaWQgc2Vy dmVyaWQpOworc3RhdGljIHZvaWQgcGdmZHdfY29ubmVjdGlvbl9jaGVjayh2b2lkKTsKK3N0YXRp YyBib29sIHBnZmR3X2Nvbm5lY3Rpb25fY2hlY2tfaW50ZXJuYWwoUEdjb25uICpjb25uKTsKK3N0 YXRpYyBUaW1lb3V0SWQgcGdmZHdfaGVhbHRoX2NoZWNrX3RpbWVvdXQgPSBNQVhfVElNRU9VVFM7 CitpbnQgcGdmZHdfaGVhbHRoX2NoZWNrX2ludGVydmFsOwogCiAvKgogICogR2V0IGEgUEdjb25u IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGV4ZWN1dGUgcXVlcmllcyBvbiB0aGUgcmVtb3RlIFBvc3Rn cmVTUUwKQEAgLTE1Myw2ICsxNTksOSBAQCBHZXRDb25uZWN0aW9uKFVzZXJNYXBwaW5nICp1c2Vy LCBib29sIHdpbGxfcHJlcF9zdG10LCBQZ0Zkd0Nvbm5TdGF0ZSAqKnN0YXRlKQogCQkJCQkJCQkJ ICBwZ2Zkd19pbnZhbF9jYWxsYmFjaywgKERhdHVtKSAwKTsKIAkJQ2FjaGVSZWdpc3RlclN5c2Nh Y2hlQ2FsbGJhY2soVVNFUk1BUFBJTkdPSUQsCiAJCQkJCQkJCQkgIHBnZmR3X2ludmFsX2NhbGxi YWNrLCAoRGF0dW0pIDApOworCisJCS8qIFJlZ2lzdGVyIGEgdGltZW91dCBmb3IgY2hlY2tpbmcg cmVtb3RlIHNlcnZlcnMgKi8KKwkJcGdmZHdfaGVhbHRoX2NoZWNrX3RpbWVvdXQgPSBSZWdpc3Rl clRpbWVvdXQoVVNFUl9USU1FT1VULCBwZ2Zkd19jb25uZWN0aW9uX2NoZWNrKTsKIAl9CiAKIAkv KiBTZXQgZmxhZyB0aGF0IHdlIGRpZCBHZXRDb25uZWN0aW9uIGR1cmluZyB0aGUgY3VycmVudCB0 cmFuc2FjdGlvbiAqLwpAQCAtMjc2LDYgKzI4NSwxMiBAQCBHZXRDb25uZWN0aW9uKFVzZXJNYXBw aW5nICp1c2VyLCBib29sIHdpbGxfcHJlcF9zdG10LCBQZ0Zkd0Nvbm5TdGF0ZSAqKnN0YXRlKQog CWlmIChzdGF0ZSkKIAkJKnN0YXRlID0gJmVudHJ5LT5zdGF0ZTsKIAorCS8qIEZpcmUgdGltZW91 dCBpZiBuZWVkZWQgKi8KKwlpZiAocGdmZHdfaGVhbHRoX2NoZWNrX2ludGVydmFsID4gMCAmJgor CQkhZ2V0X3RpbWVvdXRfYWN0aXZlKHBnZmR3X2hlYWx0aF9jaGVja190aW1lb3V0KSkKKwkJZW5h YmxlX3RpbWVvdXRfYWZ0ZXIocGdmZHdfaGVhbHRoX2NoZWNrX3RpbWVvdXQsCisJCQkJCQkJIHBn ZmR3X2hlYWx0aF9jaGVja19pbnRlcnZhbCk7CisKIAlyZXR1cm4gZW50cnktPmNvbm47CiB9CiAK QEAgLTE3MDIsMyArMTcxNywxMzMgQEAgZGlzY29ubmVjdF9jYWNoZWRfY29ubmVjdGlvbnMoT2lk IHNlcnZlcmlkKQogCiAJcmV0dXJuIHJlc3VsdDsKIH0KKworLyoKKyAqIFNpZ25hbCBoYW5kbGVy IGZvciBjaGVja2luZyByZW1vdGUgc2VydmVycy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNlYXJj aGVzIHRoZSBoYXNoIHRhYmxlIGZyb20gdGhlIGJlZ2lubmluZworICogYW5kIHBlcmZvcm1zIGEg aGVhbHRoLWNoZWNrIG9uIGVhY2ggZW50cnkuCisgKgorICogUmFpc2UgU0lHSU5UIGlmIHNvbWVv bmUgbWlnaHQgYmUgZG93biwgb3RoZXJ3aXNlIGRvIG5vdGhpbmcuCisgKi8KK3ZvaWQKK3BnZmR3 X2Nvbm5lY3Rpb25fY2hlY2sodm9pZCkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc2NhbjsKKwlDb25u Q2FjaGVFbnRyeSAqZW50cnk7CisJYm9vbCByYWlzZWQgPSBmYWxzZTsKKworCUFzc2VydChDb25u ZWN0aW9uSGFzaCk7CisKKwkvKgorCSAqIGNoZWNraW5nIHdpbGwgYmUgZG9uZSBieSB3YWl0aW5n IFdMX1NPQ0tFVF9DTE9TRUQgZXZlbnQsCisJICogc28gZXhpdCBpbW1lZGlhdGVseSBpZiBpdCBj YW5ub3QgYmUgdXNlZCBpbiB0aGlzIHN5c3RlbS4KKwkgKi8KKwlpZiAoIVdhaXRFdmVudFNldENh blJlcG9ydENsb3NlZCgpKQorCQlyZXR1cm47CisKKwkvKiBJcyB0aGVyZSBhbnkgY2FuY2VsIG1l c3NhZ2VzPyAqLworCWlmIChRZXVyeUNhbmNlbE1lc3NhZ2UgIT0gTlVMTCkKKwkJcmV0dXJuOwor CisJaGFzaF9zZXFfaW5pdCgmc2NhbiwgQ29ubmVjdGlvbkhhc2gpOworCXdoaWxlICgoZW50cnkg PSAoQ29ubkNhY2hlRW50cnkgKikgaGFzaF9zZXFfc2VhcmNoKCZzY2FuKSkgJiYgIXJhaXNlZCkK Kwl7CisJCWlmIChlbnRyeS0+Y29ubiA9PSBOVUxMIHx8IGVudHJ5LT54YWN0X2RlcHRoID09IDAp CisJCQljb250aW51ZTsKKwkJaWYgKCFwZ2Zkd19jb25uZWN0aW9uX2NoZWNrX2ludGVybmFsKGVu dHJ5LT5jb25uKSkKKwkJeworCQkJLyoKKwkJCSAqIEZvcmVpZ24gc2VydmVyIG1pZ2h0IGJlIGRv d24sIHNvIHJhaXNlIFNJR0lOVC4KKwkJCSAqIE5vdGUgdGhhdCBlcnJvciBtZXNzYWdlIGlzIHBh c3NlZCB0byBRZXVyeUNhbmNlbE1lc3NhZ2UKKwkJCSAqIGZvciByZXBvcnRpbmcgZXJyb3IgaW4g UHJvY2Vzc0ludGVycnVwdHMoKS4KKwkJCSAqLworCQkJY2hhciBtc2dbMzEgKyBNQVhEQVRFTEVO XTsKKwkJCU1lbW9yeUNvbnRleHQgb2xkOworCQkJRm9yZWlnblNlcnZlciAqc2VydmVyOworCisJ CQkvKgorCQkJICogU3dpdGNoIHRvIEN1clRyYW5zYWN0aW9uQ29udGV4dCBpbiBvcmRlciB0bwor CQkJICogbWFrZSBzdXJlIHRoYXQgdGhlIGxpZmV0aW1lIG9mIHBhbGxvYydkIGlzIHRyYW5zYWN0 aW9uLgorCQkJICovCisJCQlvbGQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQ3VyVHJhbnNhY3Rp b25Db250ZXh0KTsKKwkJCXNlcnZlciA9IEdldEZvcmVpZ25TZXJ2ZXIoZW50cnktPnNlcnZlcmlk KTsKKwkJCXNucHJpbnRmKG1zZywgc2l6ZW9mKG1zZyksICJGb3JlaWduIFNlcnZlciAlcyBtaWdo dCBiZSBkb3duLiIsIHNlcnZlci0+c2VydmVybmFtZSk7CisJCQlRZXVyeUNhbmNlbE1lc3NhZ2Ug PSBwc3RyZHVwKG1zZyk7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkKTsKKworCQkJZGlz Y29ubmVjdF9wZ19zZXJ2ZXIoZW50cnkpOworCQkJcmFpc2UoU0lHSU5UKTsKKwkJCXJhaXNlZCA9 IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCS8qIHJlLXNjaGVkdWxlIHRpbWVyIGlmIG5l ZWRlZC4gKi8KKwlpZiAoIXJhaXNlZCAmJiBwZ2Zkd19oZWFsdGhfY2hlY2tfaW50ZXJ2YWwgPiAw KQorCQllbmFibGVfdGltZW91dF9hZnRlcihwZ2Zkd19oZWFsdGhfY2hlY2tfdGltZW91dCwKKwkJ CQkJCQkgcGdmZHdfaGVhbHRoX2NoZWNrX2ludGVydmFsKTsKKworCXJldHVybjsKK30KKworLyoK KyAqIGhlbHBlciBmdW5jdGlvbiBmb3IgcGdmZHdfY29ubmVjdGlvbl9jaGVjaworICovCitzdGF0 aWMgYm9vbAorcGdmZHdfY29ubmVjdGlvbl9jaGVja19pbnRlcm5hbChQR2Nvbm4gKmNvbm4pCit7 CisJV2FpdEV2ZW50U2V0ICpldmVudHNldDsKKwlXYWl0RXZlbnQgZXZlbnRzOworCisJQXNzZXJ0 KFdhaXRFdmVudFNldENhblJlcG9ydENsb3NlZCgpKTsKKworCWV2ZW50c2V0ID0gQ3JlYXRlV2Fp dEV2ZW50U2V0KEN1cnJlbnRNZW1vcnlDb250ZXh0LCAxKTsKKwlBZGRXYWl0RXZlbnRUb1NldChl dmVudHNldCwgV0xfU09DS0VUX0NMT1NFRCwgUFFzb2NrZXQoY29ubiksIE5VTEwsIE5VTEwpOwor CisJV2FpdEV2ZW50U2V0V2FpdChldmVudHNldCwgMCwgJmV2ZW50cywgMSwgMCk7CisKKwlpZiAo ZXZlbnRzLmV2ZW50cyAmIFdMX1NPQ0tFVF9DTE9TRUQpCisJeworCQlGcmVlV2FpdEV2ZW50U2V0 KGV2ZW50c2V0KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwlGcmVlV2FpdEV2ZW50U2V0KGV2ZW50 c2V0KTsKKworCXJldHVybiB0cnVlOworfQorCitib29sCitjaGVja19wZ2Zkd19oZWFsdGhfY2hl Y2tfaW50ZXJ2YWwoaW50ICpuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkK K3sKKwlpZiAoIVdhaXRFdmVudFNldENhblJlcG9ydENsb3NlZCgpICYmICpuZXd2YWwgIT0gMCkK Kwl7CisJCUdVQ19jaGVja19lcnJkZXRhaWwoInBnZmR3X2hlYWx0aF9jaGVja19pbnRlcnZhbCBt dXN0IGJlIHNldCB0byAwIG9uIHRoaXMgcGxhdGZvcm0iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0K KwlyZXR1cm4gdHJ1ZTsKK30KKwordm9pZAorYXNzaWduX3BnZmR3X2hlYWx0aF9jaGVja19pbnRl cnZhbChpbnQgbmV3dmFsLCB2b2lkICpleHRyYSkKK3sKKwkvKiBRdWljayByZXR1cm4gaWYgdGlt ZW91dCBpcyBub3QgcmVnaXN0ZXJlZCB5ZXQuICovCisJaWYgKHBnZmR3X2hlYWx0aF9jaGVja190 aW1lb3V0ID09IE1BWF9USU1FT1VUUykKKwkJcmV0dXJuOworCisJaWYgKGdldF90aW1lb3V0X2Fj dGl2ZShwZ2Zkd19oZWFsdGhfY2hlY2tfdGltZW91dCkpCisJeworCQlpZiAobmV3dmFsID09IDAp CisJCQlkaXNhYmxlX3RpbWVvdXQocGdmZHdfaGVhbHRoX2NoZWNrX3RpbWVvdXQsIGZhbHNlKTsK KworCQkvKgorCQkgKiB3ZSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nIGJlY2F1c2UKKwkJICog bmV3IHZhbHVlIHdpbGwgYmUgdXNlZCBpbiBwZ2Zkd19jb25uZWN0aW9uX2NoZWNrKCkuCisJCSAq LworCQlyZXR1cm47CisJfQorCisJLyogU3RhcnQgdGltZW91dCBpZiB3YW50cyB0byAqLworCWlm IChuZXd2YWwgPiAwKQorCQllbmFibGVfdGltZW91dF9hZnRlcihwZ2Zkd19oZWFsdGhfY2hlY2tf dGltZW91dCwgbmV3dmFsKTsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29w dGlvbi5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKaW5kZXggZmMzY2U2YTUzYS4u NGRkMThiNTY1YSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKKysr IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKQEAgLTUzMiw1ICs1MzIsMTggQEAgX1BH X2luaXQodm9pZCkKIAkJCQkJCQkgICBOVUxMLAogCQkJCQkJCSAgIE5VTEwpOwogCisJRGVmaW5l Q3VzdG9tSW50VmFyaWFibGUoInBvc3RncmVzX2Zkdy5oZWFsdGhfY2hlY2tfaW50ZXJ2YWwiLAor CQkJCQkJCSJTZXRzIHRoZSB0aW1lIGludGVydmFsIGJldHdlZW4gY2hlY2tzIG9mIHJlbW90ZSBz ZXJ2ZXJzLiIsCisJCQkJCQkJTlVMTCwKKwkJCQkJCQkmcGdmZHdfaGVhbHRoX2NoZWNrX2ludGVy dmFsLAorCQkJCQkJCTAsCisJCQkJCQkJMCwKKwkJCQkJCQlJTlRfTUFYLAorCQkJCQkJCVBHQ19V U0VSU0VULAorCQkJCQkJCUdVQ19VTklUX01TLAorCQkJCQkJCWNoZWNrX3BnZmR3X2hlYWx0aF9j aGVja19pbnRlcnZhbCwKKwkJCQkJCQlhc3NpZ25fcGdmZHdfaGVhbHRoX2NoZWNrX2ludGVydmFs LAorCQkJCQkJCU5VTEwpOworCiAJRW1pdFdhcm5pbmdzT25QbGFjZWhvbGRlcnMoInBvc3RncmVz X2ZkdyIpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3 LmggYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaAppbmRleCA4YWU3OWU5N2U0 Li5jMTI5YWY1MDgyIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19m ZHcuaAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaApAQCAtMTgsNiAr MTgsNyBAQAogI2luY2x1ZGUgImxpYnBxLWZlLmgiCiAjaW5jbHVkZSAibm9kZXMvZXhlY25vZGVz LmgiCiAjaW5jbHVkZSAibm9kZXMvcGF0aG5vZGVzLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKIAogLyoKQEAgLTE1MSw2ICsxNTIsMTAgQEAg ZXh0ZXJuIFBHcmVzdWx0ICpwZ2Zkd19leGVjX3F1ZXJ5KFBHY29ubiAqY29ubiwgY29uc3QgY2hh ciAqcXVlcnksCiAJCQkJCQkJCSAgUGdGZHdDb25uU3RhdGUgKnN0YXRlKTsKIGV4dGVybiB2b2lk IHBnZmR3X3JlcG9ydF9lcnJvcihpbnQgZWxldmVsLCBQR3Jlc3VsdCAqcmVzLCBQR2Nvbm4gKmNv bm4sCiAJCQkJCQkJICAgYm9vbCBjbGVhciwgY29uc3QgY2hhciAqc3FsKTsKK2V4dGVybiBib29s IGNoZWNrX3BnZmR3X2hlYWx0aF9jaGVja19pbnRlcnZhbChpbnQgKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLAorCQkJCQkJCQkJCQkgIEd1Y1NvdXJjZSBzb3VyY2UpOworZXh0ZXJuIHZvaWQgYXNzaWdu X3BnZmR3X2hlYWx0aF9jaGVja19pbnRlcnZhbChpbnQgbmV3dmFsLCB2b2lkICpleHRyYSk7Citl eHRlcm4gaW50IHBnZmR3X2hlYWx0aF9jaGVja19pbnRlcnZhbDsKIAogLyogaW4gb3B0aW9uLmMg Ki8KIGV4dGVybiBpbnQJRXh0cmFjdENvbm5lY3Rpb25PcHRpb25zKExpc3QgKmRlZmVsZW1zLAo= --_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_ Content-Type: application/octet-stream; name="v10_0003_add_doc.patch" Content-Description: v10_0003_add_doc.patch Content-Disposition: attachment; filename="v10_0003_add_doc.patch"; size=1407; creation-date="Tue, 22 Feb 2022 02:27:06 GMT"; modification-date="Tue, 22 Feb 2022 02:53:26 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbCBiL2RvYy9zcmMvc2dt bC9wb3N0Z3Jlcy1mZHcuc2dtbAppbmRleCA3YmI2ZTUyNWE0Li5kY2M4MjFkZjE3IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Bv c3RncmVzLWZkdy5zZ21sCkBAIC0xMDE0LDYgKzEwMTQsMzIgQEAgcG9zdGdyZXM9IyBTRUxFQ1Qg cG9zdGdyZXNfZmR3X2Rpc2Nvbm5lY3RfYWxsKCk7CiAKICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CisgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtcGdmZHctaGVhbHRoLWNoZWNr LWludGVydmFsIiB4cmVmbGFiZWw9InBvc3RncmVzX2Zkdy5oZWFsdGhfY2hlY2tfaW50ZXJ2YWwi PgorICAgIDx0ZXJtPgorICAgICA8dmFybmFtZT5wb3N0Z3Jlc19mZHcuaGVhbHRoX2NoZWNrX2lu dGVydmFsPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgIDxpbmRleHRlcm0+ CisgICAgICA8cHJpbWFyeT48dmFybmFtZT5wb3N0Z3Jlc19mZHcuaGVhbHRoX2NoZWNrX2ludGVy dmFsPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgPC9p bmRleHRlcm0+CisgICAgPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBTZXRzIHRoZSB0aW1lIGludGVydmFsIGJldHdlZW4gb3B0aW9uYWwgY2hlY2tzIHRoYXQgcmVt b3RlIHNlcnZlcnMKKyAgICAgIGFyZSBzdGlsbCBhbGl2ZS4gV2hlbiBsb3NpbmcgYSByZW1vdGUg Y29ubmVjdGlvbiBpcyBkZXRlY3RlZCwKKyAgICAgIHRoZSBydW5uaW5nIHRyYW5zYWN0aW9uIGlz IGFib3J0ZWQuIFRoaXMgZmVhdHVyZSBpcyBwZXJmb3JtZWQKKyAgICAgIGJ5IHBvbGxpbmcgdGhl IHNvY2tldC4KKyAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIHRoaXMgb3B0aW9uIHJl bGllcyBvbiBrZXJuZWwgZXZlbnRzIGV4cG9zZWQgYnkgTGludXgsIG1hY09TLAorICAgICAgaWxs dW1vcyBhbmQgdGhlIEJTRCBmYW1pbHkgb2Ygb3BlcmF0aW5nIHN5c3RlbXMsIGFuZCBpcyBub3Qg Y3VycmVudGx5IGF2YWlsYWJsZSAKKyAgICAgIG9uIG90aGVyIHN5c3RlbXMuCisgICAgIDwvcGFy YT4KKyAgICAgPHBhcmE+CisgICAgICBJZiB0aGUgdmFsdWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQg dW5pdHMsIGl0IGlzIHRha2VuIGFzIG1pbGxpc2Vjb25kcy4KKyAgICAgIFRoZSBkZWZhdWx0IHZh bHVlIGlzIDxsaXRlcmFsPjA8L2xpdGVyYWw+LCB3aGljaCBkaXNhYmxlcyBjb25uZWN0aW9uCisg ICAgICBjaGVja3MuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CiAgIDwvdmFyaWFibGVsaXN0PgogIDwvc2VjdDI+CiAK --_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_ Content-Type: application/x-zip-compressed; name="v10_0004_add_test.zip" Content-Description: v10_0004_add_test.zip Content-Disposition: attachment; filename="v10_0004_add_test.zip"; size=854; creation-date="Tue, 22 Feb 2022 02:27:57 GMT"; modification-date="Tue, 22 Feb 2022 02:53:26 GMT" Content-Transfer-Encoding: base64 UEsDBBQAAAAIAA9bVlRbBUZ2xgIAAAcLAAAXAAAAdjEwXzAwMDRfYWRkX3Rlc3QucGF0Y2jNlF1v 2jAUhu/zK84doAya8LUyVLUbSzuktkyBrTeTIic5CVaDnTmmtP9+JyF00NKubKirb4KMfT7e9/gJ eRRBvR5zDewgkEIr7h+kMtOxwsyLwsUB3qYYaAw3dhtyrsHf8YLBRYi34DfRagYMI2w0mj2/HXSb 2D4E27K67bZRr9d3rsQwTXP3ak5OoG5bPbv1rgVm+aMHtDt2zp3BBNLY06hmXDCNns+CaxRhNeXh O7APLVo1OHVHF/mxTDPtsUDzG67vDJJzkCATME8NcJ2xQ6HWc7M0TXjANJfCE2yG/dWpEP157IU8 C5gKvYAFU8z6hkmCHP37KuJozDREUsEUWaKndcoQXEOETM8V7jXTZ54xP8GtPQEXIFWICrSEGRMs RlA4kxqBLBRkF0mTGeZTmsBkBBWr0l8lKi+BFAECEyFkSNP8QOU8F3nClM+1YuoOblgyxzxJYbZd mrlmVJF1GdpjSVKtUUI4DmQyn4ljyJOvFu2XyzbMqg1KLmqGaZgfzyeOS+PkfqdPImWaTxGMvk6G o8sxVPP+HpVZWVpTOFOpLXscUz9n3waFc8UfXMSgp1jaCDJa6ZehukFVarcxdcujXnHd44ImmwQo lLSzXMpPztnwsv9Qj0jbcD68GNLGzt1T4ZPV+ymqLWssnxKkSgaYZfcp//a9rdJffXFc57GgR5uS 5m1sy7TR0vqi8/phX1dTTrOdJYjpyoqyGwjlQsCCJwn4+fTrAj6N9SaLa9VW7q3juiP3A8CpVMhj QUbn9v0elRmPp7oIRFEpyGB0QV4sh+KeMeZz9Aj/yPfsZ7LJRtp4CqbbzpZUR6tjdVs9v/OeqN6K Ona312viC6i+NeYzQN96Pmd5q2O1c5QX3+ZbJPleCftKLH9Fmv8Hnu+F0K/G6JdR+s1yd4/gvAfh Dij8AZcSBC4SLmisNORakCsRVWT8AlBLAQIUABQAAAAIAA9bVlRbBUZ2xgIAAAcLAAAXAAAAAAAA AAEAIAAAAAAAAAB2MTBfMDAwNF9hZGRfdGVzdC5wYXRjaFBLBQYAAAAAAQABAEUAAAD7AgAAAAA= --_005_TYAPR01MB58664E79C4728A6FFEA46F94F53B9TYAPR01MB5866jpnp_--