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 1qabsb-009rpl-Vg for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Aug 2023 13:02:06 +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 1qabsa-00Bxkh-ET for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Aug 2023 13:02:04 +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 1qabsZ-00Bxjt-IQ for pgsql-hackers@lists.postgresql.org; Mon, 28 Aug 2023 13:02:03 +0000 Received: from esa20.fujitsucc.c3s2.iphmx.com ([216.71.158.65]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qabsS-001PtG-7v for pgsql-hackers@lists.postgresql.org; Mon, 28 Aug 2023 13:02:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1693227716; x=1724763716; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=T+ZglQ7tqH0feo3yF39MHxs1KUE0n9AnhsNL/hEffDI=; b=kjoCDR/9jJol6PJ4w+Lawuqwctkd989Fcx1zwsBGVw99AcBbJIrlxNMs KTNin86cnPuHOEkOORU2EmtIFW5nxA73En1qd3l3aHpdRIDr1yR4XYvQd Sa3ZdvP1AdVhDrez7yWGuYt7GO9KXd51ubNohaGx5mNHY/JmC/WSgL0lE JmH92wHoYU2vVFJ+IF8iSffiMO6lopvp6NlXx7sDYQg+FCjPMjKB9cvOn Ot89KbFyNq8gh/mSpzvED6gMEas6QVKUtPGjNAjAqm67P7q1fDQF/ep+B ngbWK9I09vkbASpfD8yCjtbaqNYRQWWXe5p1slfQaecC4BOMbc88BXnzj Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10816"; a="93209096" X-IronPort-AV: E=Sophos;i="6.02,207,1688396400"; d="scan'208,223";a="93209096" Received: from mail-os0jpn01lp2105.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.105]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Aug 2023 22:01:51 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=elCQO+mnXhUw4SrK8/pGGU19L+qxvectdunZmWthORHY95CGuSM078kRTKP5GzgXMxJuXNnTLF9roUNC4elMEx7d2dxYewNoczKVqKZy66RmmF2HQDi1kPID2HXLzb+W4Nd34o4TMV9n2ItPh7i+757jS8LpNcTkvBXnhsmwt4ld/QG31qfCTqpDDnmAIFJvIcgT8bGgy/+cko+NMY1Dbpb+GPYLtUQXpsEO/JiUXe7kKFWIvQ2qKBjBcVNHpfsTzEcRHyAMs8BCNOJho5HaQ8CetrWHsdVhXCbHLOW4cleP8yPT8CYNYClFnfbP/sodOjASuL/FwPYV2Wudsqum4w== 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=FkDkmg5Q/wBe2+HyPlA9wm3J2gRwGy/g59AgI2ve9Ic=; b=c2NIswGTVOppL1PZ7fU6lIBuLlCbaUsqcVvGRuEtuiw+NpzgK0Y4yWrUG1BrNPbCy0djuyaD8blF/ONAfa1a5VP/srPGUxs+Fu9UeYEJ+7UXY56nEC9IWOqHBGqvo6jelCakuiNtPpLJ5RepxcmnbMVgrRnFaQercgtgfloYPDBwcLGCSHgWn2uIgmKkocgEtPHjQZlOOZHSztiBVoDaP3GunWXrD2/Q0+2dTF1EropYH5qmQTZOG5ZjfBjmxfd4R6R7W/JemU49nTsJpqpV2wCn3s+RGCwMPSScKgPvsE7FUUVA0JWPw8aaEjafAK785eaewpa0GulPGz5k4/Lb9g== 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 TYAPR01MB5866.jpnprd01.prod.outlook.com (2603:1096:404:8056::13) by TYWPR01MB8283.jpnprd01.prod.outlook.com (2603:1096:400:164::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 13:01:47 +0000 Received: from TYAPR01MB5866.jpnprd01.prod.outlook.com ([fe80::9437:7145:f0cb:d683]) by TYAPR01MB5866.jpnprd01.prod.outlook.com ([fe80::9437:7145:f0cb:d683%4]) with mapi id 15.20.6699.034; Mon, 28 Aug 2023 13:01:47 +0000 From: "Hayato Kuroda (Fujitsu)" To: 'Peter Smith' CC: Amit Kapila , PostgreSQL Hackers , Bruce Momjian , Julien Rouhaud , vignesh C , Masahiko Sawada , "Zhijie Hou (Fujitsu)" Subject: RE: [PoC] pg_upgrade: allow to upgrade publisher node Thread-Topic: [PoC] pg_upgrade: allow to upgrade publisher node Thread-Index: AdlmwuGiP9XRDc0JTMm/GHGdqSB/sACOImmAAA1lEkAADTHtAACF00rwAMbDkAAAAqI04A7DB+QAAGfMu+ADV8q/AAAqgd+AADThp6AAXJ2NgAFrbt0AAMRF+IAAJk7EYADbLUUAACA3MgAACbO6AAABEnoAAFbmZIAAA6ZOgAAsBLQAAAV7/QAAFGjyAAAgz1aAABr3aYAAGZAlAABcb6MAAAWUR4AALH/wgAABkbyAAAIHtrAAL4+zwAAPiB2QAFdWpQAAEO+MsAAui/UAAGqef0AAI5smgAAOPTmwAE7E5QAAE8m7oAArvUCAAAbTQAAAjWIWgAAKACag Date: Mon, 28 Aug 2023 13:01:47 +0000 Message-ID: References: In-Reply-To: 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=2023-08-28T12:13:49Z; 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=5ce0f790-0cc4-4af1-8b34-f7b831231e6e; 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-traffictypediagnostic: TYAPR01MB5866:EE_|TYWPR01MB8283:EE_ x-ms-office365-filtering-correlation-id: 34543703-f03a-4089-e0c4-08dba7c6f013 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6gzCSI1V7P0uq0dNV9g48SfViKHjwiZTng52dVsOxFEGkqHLPd7xteY9I3LzK7ZQkK9rdKIitQtfi0/s2KSbC83bqs1KKvKCY/ug8z3j/15oz75hcqJovjHJNFEYirE0c5qdNaCFIc/8lcK/OY5E1G9HVRW5+0ab11drN2sDHQhnbT4oYxmtKGsJPKunymzaXmul2jwOgyPBzWrGg5rM06FJLvqJnKeM+V2tqnH4DZ6Bslu4xtcoh5Jtil7tkYXEFHgpIeCfaP9JtPjdyiK4xkIFpz5KeGAZ57eAZTkvRV+uA7zphi7TW3LXh1VyZ4xMzhc6QTrhGgIDBdsXq7nlgt5EDO3K0zeViSzd/ad+sHzDo8A6Xe9Da61X11dCHtjhmIJuCKiPq3numXAw2lMjJqcQXPSWrNWqXShlcwd4ospr13o/ksMr8ZYtSblND9C6A0Ob4W7cqATgGPlvA/PYVO1Ry4nqnsBizNQUBaFlhZJZ0CZDDvkNqyoKJB84M5uozFQYkzkMY8tfPK6altM02WhwVWVmuNesWuZdHE0v0/2EFdHXyuWAonmk9FRYCinJiDaHF+zz6YWXi1vgldm2qonUM+47ePEdBxTk9p46XX8N/BHzHUNtEaC79HCYG/UKuxFR98wkE7Vg7AiouBC69g== 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:(13230031)(366004)(346002)(376002)(136003)(39860400002)(396003)(186009)(1800799009)(1590799021)(451199024)(2906002)(5660300002)(52536014)(38070700005)(38100700002)(4326008)(122000001)(8936002)(8676002)(82960400001)(85182001)(33656002)(99936003)(86362001)(55016003)(1580799018)(26005)(478600001)(6506007)(7696005)(9686003)(71200400001)(83380400001)(41300700001)(66556008)(76116006)(66476007)(66946007)(66446008)(107886003)(64756008)(54906003)(316002)(6916009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?RzJhUnBVMzgyVzlqdkl4ck5iUE1XeVkvcUMvWTlYRGtzQXhVS0h3SW90?= =?iso-2022-jp?B?c3cveENNems4d1htOCtQMHZ1VWNPbHlxWW9PeUpSd2J4RlVIRituRm1F?= =?iso-2022-jp?B?ZjBYRDFpekg4SDd4MVBKYUpQWGJHZWFqZFc1OXhWc2tIUVpmTDJFS2Qv?= =?iso-2022-jp?B?a1pwNzBFQzljRm1HRlh6cEFOempKLzFEUlhXbGFWMWNxUW9iNnoxdVFj?= =?iso-2022-jp?B?T2hjQjIreklVQ2JXME85NVI5ciswT25xK0UzQVVaeHA3bEs0VmtxZmlo?= =?iso-2022-jp?B?OGF4TjVab0M5aG5EdzUrYlgxeGxWVW9HbTVrcTl5SVk1NkphK3dzYm5M?= =?iso-2022-jp?B?SGphUEw5NzJCSnkzb20xR05Hb0Fvc2ZuaWIwNVRobDZoVDYyemNYSzBL?= =?iso-2022-jp?B?WWlmd3NuaFVwblZ3aEdOSFl3N3FxVDR1T3ZuNjRhbXlaSFl5OG43bFoz?= =?iso-2022-jp?B?eHFnaDZxTkN4RGtuZU9iZEhJQ3N1VDBYS1prQXBqN1RMRmdEazBESG5N?= =?iso-2022-jp?B?ZVU5dnk0TmZybnlrcUFXeFk1Z0xpeHFnQ214SkExVFVmU29hckdnYkFW?= =?iso-2022-jp?B?ZTNqNXBabndVN1I5bzVHVU1vUEpSQStNRi9xZWFSVzJ2T2wxSFBlVU1I?= =?iso-2022-jp?B?S2V6NEN1UFVNTEF2SzhxMEUyd3Vod0pSRXFXV2pjS1pqRWNiczRVdjFD?= =?iso-2022-jp?B?ZElvbjkzZ2lySlVIYTRxOHdnVWJwWE8rRTB6dXo5MUdONlNOeXVFVEY1?= =?iso-2022-jp?B?blQ5RnB3NEJJWW9TY3RlNEZRSTl0bTRYZHA2OXpDdit5d00wYjRNRE0y?= =?iso-2022-jp?B?U1I1dkdtKzRZcklsSk1vS09DZWtpaUFLSXpDUFJpMjZCKzNCU1Eyck5B?= =?iso-2022-jp?B?dVZEYXNlZnR1YzlkNTRVZTBaa2Y3VXdpRVVFd0U2MFBkYkVNSzVyT3Br?= =?iso-2022-jp?B?Rlk4cTd5MlVCRCtERVluZW5CTHlYbTY5TXduaTlxN2ZnSVQ3bDllbE5q?= =?iso-2022-jp?B?THJzRlBKVUdsdG5OT2oyNFFQbGtiT3I4MEFTanY1SWo4MVhzVWpLK1FF?= =?iso-2022-jp?B?QWl6aWc2QzdFYTBPdlZ0T3B5dk5nbkdzTFl3N0JjdUFMbmp1cGEva2NF?= =?iso-2022-jp?B?eWJ6TFpDaVVqV1BXYndiSERZSHAxSnJKK0lTSEVrU1g3aS9SZlI3cjNo?= =?iso-2022-jp?B?R2F6VENmcFNpMVFmckptR3BjK0JzbnZmVm5PUzQ0TWpmQlU5bnExcksv?= =?iso-2022-jp?B?a2kvNHNEMGJpV2hxUU0xY0p2czJ1MmtmeU1KUUdvRFpTRWsrR2p2UTBh?= =?iso-2022-jp?B?UXdWdFJtTHVzQlFZQ2hpUW01MVhQRGFrUHJMZkdmSEtTd20xVUpLb1JX?= =?iso-2022-jp?B?aEphV0RIZGdhODV2LzZEZVNjMDN3Z2hERTdrNDdRTkw5MFVncmEvdEVp?= =?iso-2022-jp?B?VG92aC9KOUg4Q0RjbnJZa0hJN1I2S01KSmpjSkQ5Y2d0V3dMNU5rRUdU?= =?iso-2022-jp?B?UUdHeEpOd0dCcHg0OFZ6aC8zV3dIaDcyOWwvUDlnN3VYMmIreDNuMCtv?= =?iso-2022-jp?B?cnF0WHNsLzVBODFRaEVlS3Fzb3VDWmEzZjJmMHZwc0d5RVZlZi9kdzZ2?= =?iso-2022-jp?B?Q0hBMW8yeUkyYUdsNUNnUkxOanpBUUI5RExjbmJWbng4dXdiT2h4cXRk?= =?iso-2022-jp?B?RkF3RlpPUlZSWE9kc0FDRUF0UFJTY1c0MkpLRisvZDFuOXNHbklTNXpa?= =?iso-2022-jp?B?SWh2OVc0aHdYUHVDb0ZHRENCbGdpeDRuVGpzVTRxeDJKc1BEMDhJUFNa?= =?iso-2022-jp?B?TUsrdjdyc3NTdHZWWStUSHRpaG91Qm90RXRMMHdxLzk0VkVPL05lUmht?= =?iso-2022-jp?B?NGVxR1N1dU9UK044UkNtUDU4a2k1T1l1Q2x4VGhCSURPYUlwRnhrb0NU?= =?iso-2022-jp?B?MnlVVEdjTXdaL0hndU1hd2FRV2xyaWZWYzNUOUJDV1Nic1dBYkwwdmZR?= =?iso-2022-jp?B?RUV6QUd6WjJiaFlzTUFJTmJOaUJOVWVmWSthdUdVdGRVRnI5MWZVYStE?= =?iso-2022-jp?B?YTlQM09JTEgvc0piUysxcjNReTZ3dXJiUUwzTUZXMjNETEhCcUxSczdn?= =?iso-2022-jp?B?aEhkMG9SNDcwVUNOK1E5K3ZSYkJraFNiWHpOS01yS3hXU3VDMHA4R3V0?= =?iso-2022-jp?B?RVBjbDRuQVRIVVNESm44N2RFOU9xczdBTldtV1hHTEZTWlducndCenlV?= =?iso-2022-jp?B?YTFFWk1EZzdWNTZvMG1lamlOOC96L3o0RncwSlRmaWVNTk4rSUxzNWd6?= =?iso-2022-jp?B?VGlBbw==?= Content-Type: multipart/mixed; boundary="_004_TYAPR01MB586667E5DEB15F66BB0E880AF5E0ATYAPR01MB5866jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: gL0Xbzr6yt4p6iMxrB+0gJKd4YK5hyfNdZlMzCDKykEF6IlL7PcQ4CUxa4/H5usxfCi8FiU8yAWxUO35pbWmZslrNmo2sPFh+GkXiOoB9cDKsi+vlSlFo5ByGedQPtP+OdVFA71YUb2E+4b+xeGrA9xd99UnQ308tFTd9xoukqOCa+ZTnENekAhgUcyTzd+LUXaK8xYntcVoUMpkkseyThhZW95+1vjnqo6tXYe1LUYNQaeUFcijxLal6HllPoJ/A/yBf1+XM1JhkijGbh0Yydzj5rJGuThncSHgJ0jDK7edS8ScTandQP9LreQF3Ey5Bl42NNL2xj31Z4aU+e7Je8L8LGRiAvmzRKQmzZkdKSTCEHx9peWM6tyV2288yR8lWd4ExihXPjKLi/mVP3LYZuEoa1h2ip3dA197LLaRuG5fZJWtPZcTFIppwX8TKCRaylDLXFSbY+7iPCCISqP0VLyot9D5DlzTiBTSFsaRMShxRMkCTpgHxotfqFMoggE5VCG2sibqSJMRofDznQ1c9/EKpokzYVe0DCOls4HBnKi7Z6xdK+eCoZ/vN+GzV1vplZjHIbN5vbM0cmqiRgf3GGYa1mI0lfxHSMu+ItmaCyd5NaUj6nxtF0MhweX60lOhdCniI+Iug072i6bEci8faK8izG9xy8wmtna+/l0K4TUpR/G01bExZ/Ifns7BrJ82Uj2W66T/5imEzKoYmv7HsSuXtCVtiNGn5FSi6uvIcGfMc5mB1yWgo8Rw2ByOa5+AfckBeUwFTRm9OhRcsZeLexEHJ264S2VgBSSVBNwxV0vaGTSavwXyMlAqvCNCYuCaEJnhuVoAqnaOvVHM5HiJow== 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: 34543703-f03a-4089-e0c4-08dba7c6f013 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2023 13:01:47.6173 (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: 233ip057o/F1yHgSGGYp7h+rlKY+oZSBpMBYA1TuxAYfz1D5ClK+zN8PB74ur55XKgDZte1+aGwWu4HCi7iBH5isyHxdnhBSj6zbyJ7H1C4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB8283 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_TYAPR01MB586667E5DEB15F66BB0E880AF5E0ATYAPR01MB5866jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Dear Peter, Thank you for reviewing! PSA new version patch set. > =3D=3D=3D=3D=3D=3D > 1. About the PG17 limitation >=20 > In my previous review of v25-0002, I suggested that the PG17 > limitation should be documented atop one of the source files. See > [1]#3, [1]#7, [1]#10 >=20 > I just wanted to explain the reason for that suggestion. >=20 > Currently, all the new version checks have a comment like "/* Logical > slots can be migrated since PG17. */". I felt that it would be better > if those comments said something more like "/* Logical slots can be > migrated since PG17. See XYZ for details. */". I don't really care > *where* the main explanation lives, but I thought since it is > referenced from multiple places it might be easier to find if it was > atop some file instead of just in a function comment. YMMV. >=20 > =3D=3D=3D=3D=3D=3D > 2. Do version checking in check_and_dump_old_cluster instead of inside > get_old_cluster_logical_slot_infos >=20 > check_and_dump_old_cluster - Should check version before calling > get_old_cluster_logical_slot_infos > get_old_cluster_logical_slot_infos - Keep a sanity check Assert if you > wish (or do nothing -- e.g. see #3 below) >=20 > Refer to [1]#4, [1]#8 >=20 > Isn't it self-evident from the file/function names what kind of logic > they are intended to have in them? Sure, there may be some exceptions > but unless it is difficult to implement I think most people would > reasonably assume: >=20 > - checking code should be in file "check.c" > -- e.g. a function called 'check_and_dump_old_cluster' ought to be > *checking* stuff >=20 > - info fetching code should be in file "info.c" >=20 > ~~ >=20 > Another motivation for this suggestion becomes more obvious later with > patch 0003. By checking at the "higher" level (in check.c) it means > multiple related functions can all be called under one version check. > Less checking means less code and/or simpler code. For example, > multiple redundant calls to get_old_cluster_count_slots() can be > avoided in patch 0003 by writing *less* code, than v26* currently has. IIUC these points were disagreed by Amit, so I would keep my code until he = posts opinions. > 3. count_old_cluster_logical_slots >=20 > I think there is nothing special in this logic that will crash if PG > version <=3D 1600. Keep the Assert for sanity checking if you wish, but > this is already guarded by the call in pg_upgrade.c so perhaps it is > overkill. Your point is right. I have checked some version-specific functions like check_for_aclitem_data_= type_usage() and check_for_user_defined_encoding_conversions(), they do not have assert(= ). So removed from it. As for free_db_and_rel_infos(), the Assert() ensures that = new cluster does not have logical slots, so I kept it. Also, I found that get_loadable_libraries() always read pg_replication_slot= s, even if the old cluster is older than PG17. This let additional checks for = logical decoding output plugins. Moreover, prior than PG12 could not be upgrade bec= ause they do not have an attribute wal_status. I think the checking should be done only when old_cluster is >=3D PG17, so = fixed. Best Regards, Hayato Kuroda FUJITSU LIMITED --_004_TYAPR01MB586667E5DEB15F66BB0E880AF5E0ATYAPR01MB5866jpnp_ Content-Type: application/octet-stream; name="v27-0001-Persist-to-disk-logical-slots-during-a-shutdown-.patch" Content-Description: v27-0001-Persist-to-disk-logical-slots-during-a-shutdown-.patch Content-Disposition: attachment; filename="v27-0001-Persist-to-disk-logical-slots-during-a-shutdown-.patch"; size=10799; creation-date="Mon, 28 Aug 2023 12:40:44 GMT"; modification-date="Mon, 28 Aug 2023 13:01:46 GMT" Content-Transfer-Encoding: base64 RnJvbSBmYzVmZmNiOWQ1ZWM1MDM0ZjBhMmIwYWQ0YmJmMGExZTBmYjFkN2U1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpZW4gUm91aGF1ZCA8anVsaWVuLnJvdWhhdWRAZnJlZS5m cj4KRGF0ZTogRnJpLCAxNCBBcHIgMjAyMyAxMzo0OTowOSArMDgwMApTdWJqZWN0OiBbUEFUQ0gg djI3IDEvM10gUGVyc2lzdCB0byBkaXNrIGxvZ2ljYWwgc2xvdHMgZHVyaW5nIGEgc2h1dGRvd24K IGNoZWNrcG9pbnQgaWYgdGhlIHVwZGF0ZWQgY29uZmlybWVkX2ZsdXNoX2xzbiBoYXMgbm90IHll dCBiZWVuIHBlcnNpc3RlZC4KCkl0J3MgZW50aXJlbHkgcG9zc2libGUgZm9yIGEgbG9naWNhbCBz bG90IHRvIGhhdmUgYSBjb25maXJtZWRfZmx1c2hfbHNuIGhpZ2hlcgp0aGFuIHRoZSBsYXN0IHZh bHVlIHNhdmVkIG9uIGRpc2sgd2hpbGUgbm90IGJlaW5nIG1hcmtlZCBhcyBkaXJ0eS4gIEl0J3MK Y3VycmVudGx5IG5vdCBhIHByb2JsZW0gdG8gbG9zZSB0aGF0IHZhbHVlIGR1cmluZyBhIGNsZWFu IHNodXRkb3duIC8gcmVzdGFydApjeWNsZSwgYnV0IGEgbGF0ZXIgcGF0Y2ggYWRkaW5nIHN1cHBv cnQgZm9yIHBnX3VwZ3JhZGUgb2YgcHVibGljYXRpb25zIGFuZApsb2dpY2FsIHNsb3RzIHdpbGwg cmVseSBvbiB0aGF0IHZhbHVlIGJlaW5nIHByb3Blcmx5IHBlcnNpc3RlZCB0byBkaXNrLgoKQXV0 aG9yOiBKdWxpZW4gUm91aGF1ZApSZXZpZXdlZC1ieTogV2FuZyBXZWksIFBldGVyIFNtaXRoLCBN YXNhaGlrbyBTYXdhZGEKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgICAg ICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAg ICAgICAgICB8ICAzMyArKysrLS0KIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAgICAg ICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF9hbHdheXNfcGVy c2lzdC5wbCB8IDEwNiArKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTM1IGlu c2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzNF9hbHdheXNfcGVyc2lzdC5wbAoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYwppbmRleCA2MGMwYjdlYzNhLi42ZGNlZDYxY2Y0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCkBAIC03MDI2LDcgKzcwMjYsNyBAQCBzdGF0aWMgdm9pZAogQ2hlY2tQb2ludEd1 dHMoWExvZ1JlY1B0ciBjaGVja1BvaW50UmVkbywgaW50IGZsYWdzKQogewogCUNoZWNrUG9pbnRS ZWxhdGlvbk1hcCgpOwotCUNoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKCk7CisJQ2hlY2tQb2lu dFJlcGxpY2F0aW9uU2xvdHMoZmxhZ3MgJiBDSEVDS1BPSU5UX0lTX1NIVVRET1dOKTsKIAlDaGVj a1BvaW50U25hcEJ1aWxkKCk7CiAJQ2hlY2tQb2ludExvZ2ljYWxSZXdyaXRlSGVhcCgpOwogCUNo ZWNrUG9pbnRSZXBsaWNhdGlvbk9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IGJi MDljNDAxMGYuLjFjNmRiMmE5OWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTEwOSw3ICsx MDksOCBAQCBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xv dCAqc2xvdCk7CiAvKiBpbnRlcm5hbCBwZXJzaXN0ZW5jeSBmdW5jdGlvbnMgKi8KIHN0YXRpYyB2 b2lkIFJlc3RvcmVTbG90RnJvbURpc2soY29uc3QgY2hhciAqbmFtZSk7CiBzdGF0aWMgdm9pZCBD cmVhdGVTbG90T25EaXNrKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7Ci1zdGF0aWMgdm9pZCBTYXZl U2xvdFRvUGF0aChSZXBsaWNhdGlvblNsb3QgKnNsb3QsIGNvbnN0IGNoYXIgKmRpciwgaW50IGVs ZXZlbCk7CitzdGF0aWMgdm9pZCBTYXZlU2xvdFRvUGF0aChSZXBsaWNhdGlvblNsb3QgKnNsb3Qs IGNvbnN0IGNoYXIgKmRpciwgaW50IGVsZXZlbCwKKwkJCQkJCSAgIGJvb2wgaXNfc2h1dGRvd24p OwogCiAvKgogICogUmVwb3J0IHNoYXJlZC1tZW1vcnkgc3BhY2UgbmVlZGVkIGJ5IFJlcGxpY2F0 aW9uU2xvdHNTaG1lbUluaXQuCkBAIC0zMjEsNiArMzIyLDcgQEAgUmVwbGljYXRpb25TbG90Q3Jl YXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCiAJc2xvdC0+Y2FuZGlkYXRl X3htaW5fbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CiAJc2xvdC0+Y2FuZGlkYXRlX3Jlc3RhcnRf dmFsaWQgPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAlzbG90LT5jYW5kaWRhdGVfcmVzdGFydF9sc24g PSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlzbG90LT5sYXN0X3BlcnNpc3RlZF9jb25maXJtZWRfZmx1 c2ggPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAogCS8qCiAJICogQ3JlYXRlIHRoZSBzbG90IG9uIGRp c2suICBXZSBoYXZlbid0IGFjdHVhbGx5IG1hcmtlZCB0aGUgc2xvdCBhbGxvY2F0ZWQKQEAgLTc4 Myw3ICs3ODUsNyBAQCBSZXBsaWNhdGlvblNsb3RTYXZlKHZvaWQpCiAJQXNzZXJ0KE15UmVwbGlj YXRpb25TbG90ICE9IE5VTEwpOwogCiAJc3ByaW50ZihwYXRoLCAicGdfcmVwbHNsb3QvJXMiLCBO YW1lU3RyKE15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUpKTsKLQlTYXZlU2xvdFRvUGF0aChN eVJlcGxpY2F0aW9uU2xvdCwgcGF0aCwgRVJST1IpOworCVNhdmVTbG90VG9QYXRoKE15UmVwbGlj YXRpb25TbG90LCBwYXRoLCBFUlJPUiwgZmFsc2UpOwogfQogCiAvKgpAQCAtMTU3MiwxMSArMTU3 NCwxMCBAQCByZXN0YXJ0OgogLyoKICAqIEZsdXNoIGFsbCByZXBsaWNhdGlvbiBzbG90cyB0byBk aXNrLgogICoKLSAqIFRoaXMgbmVlZG4ndCBhY3R1YWxseSBiZSBwYXJ0IG9mIGEgY2hlY2twb2lu dCwgYnV0IGl0J3MgYSBjb252ZW5pZW50Ci0gKiBsb2NhdGlvbi4KKyAqIGlzX3NodXRkb3duIGlz IHRydWUgaW4gY2FzZSBvZiBhIHNodXRkb3duIGNoZWNrcG9pbnQuCiAgKi8KIHZvaWQKLUNoZWNr UG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpCitDaGVja1BvaW50UmVwbGljYXRpb25TbG90cyhi b29sIGlzX3NodXRkb3duKQogewogCWludAkJCWk7CiAKQEAgLTE2MDEsNyArMTYwMiw3IEBAIENo ZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpCiAKIAkJLyogc2F2ZSB0aGUgc2xvdCB0byBk aXNrLCBsb2NraW5nIGlzIGhhbmRsZWQgaW4gU2F2ZVNsb3RUb1BhdGgoKSAqLwogCQlzcHJpbnRm KHBhdGgsICJwZ19yZXBsc2xvdC8lcyIsIE5hbWVTdHIocy0+ZGF0YS5uYW1lKSk7Ci0JCVNhdmVT bG90VG9QYXRoKHMsIHBhdGgsIExPRyk7CisJCVNhdmVTbG90VG9QYXRoKHMsIHBhdGgsIExPRywg aXNfc2h1dGRvd24pOwogCX0KIAlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdEFsbG9jYXRp b25Mb2NrKTsKIH0KQEAgLTE3MDcsNyArMTcwOCw3IEBAIENyZWF0ZVNsb3RPbkRpc2soUmVwbGlj YXRpb25TbG90ICpzbG90KQogCiAJLyogV3JpdGUgdGhlIGFjdHVhbCBzdGF0ZSBmaWxlLiAqLwog CXNsb3QtPmRpcnR5ID0gdHJ1ZTsJCQkvKiBzaWduYWwgdGhhdCB3ZSByZWFsbHkgbmVlZCB0byB3 cml0ZSAqLwotCVNhdmVTbG90VG9QYXRoKHNsb3QsIHRtcHBhdGgsIEVSUk9SKTsKKwlTYXZlU2xv dFRvUGF0aChzbG90LCB0bXBwYXRoLCBFUlJPUiwgZmFsc2UpOwogCiAJLyogUmVuYW1lIHRoZSBk aXJlY3RvcnkgaW50byBwbGFjZS4gKi8KIAlpZiAocmVuYW1lKHRtcHBhdGgsIHBhdGgpICE9IDAp CkBAIC0xNzMzLDcgKzE3MzQsOCBAQCBDcmVhdGVTbG90T25EaXNrKFJlcGxpY2F0aW9uU2xvdCAq c2xvdCkKICAqIFNoYXJlZCBmdW5jdGlvbmFsaXR5IGJldHdlZW4gc2F2aW5nIGFuZCBjcmVhdGlu ZyBhIHJlcGxpY2F0aW9uIHNsb3QuCiAgKi8KIHN0YXRpYyB2b2lkCi1TYXZlU2xvdFRvUGF0aChS ZXBsaWNhdGlvblNsb3QgKnNsb3QsIGNvbnN0IGNoYXIgKmRpciwgaW50IGVsZXZlbCkKK1NhdmVT bG90VG9QYXRoKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCwgY29uc3QgY2hhciAqZGlyLCBpbnQgZWxl dmVsLAorCQkJICAgYm9vbCBpc19zaHV0ZG93bikKIHsKIAljaGFyCQl0bXBwYXRoW01BWFBHUEFU SF07CiAJY2hhcgkJcGF0aFtNQVhQR1BBVEhdOwpAQCAtMTc0Nyw4ICsxNzQ5LDE2IEBAIFNhdmVT bG90VG9QYXRoKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCwgY29uc3QgY2hhciAqZGlyLCBpbnQgZWxl dmVsKQogCXNsb3QtPmp1c3RfZGlydGllZCA9IGZhbHNlOwogCVNwaW5Mb2NrUmVsZWFzZSgmc2xv dC0+bXV0ZXgpOwogCi0JLyogYW5kIGRvbid0IGRvIGFueXRoaW5nIGlmIHRoZXJlJ3Mgbm90aGlu ZyB0byB3cml0ZSAqLwotCWlmICghd2FzX2RpcnR5KQorCS8qCisJICogRG9uJ3QgZG8gYW55dGhp bmcgaWYgdGhlcmUncyBub3RoaW5nIHRvIHdyaXRlLCB1bmxlc3MgdGhpcyBpcyBjYWxsZWQgZm9y CisJICogYSBsb2dpY2FsIHNsb3QgZHVyaW5nIGEgc2h1dGRvd24gY2hlY2twb2ludCBhbmQgaWYg dGhlIHVwZGF0ZWQKKwkgKiBjb25maXJtZWRfZmx1c2ggTFNOIGhhcyBub3QgeWV0IGJlZW4gcGVy c2lzdGVkLCBhcyB3ZSB3YW50IHRvIHBlcnNpc3QKKwkgKiB0aGUgdXBkYXRlZCBjb25maXJtZWRf Zmx1c2ggTFNOIGluIHRoYXQgY2FzZSwgZXZlbiBpZiB0aGF0J3MgdGhlIG9ubHkKKwkgKiBtb2Rp ZmljYXRpb24uCisJICovCisJaWYgKCF3YXNfZGlydHkgJiYKKwkJIShTbG90SXNMb2dpY2FsKHNs b3QpICYmIGlzX3NodXRkb3duICYmCisJCSAgKHNsb3QtPmRhdGEuY29uZmlybWVkX2ZsdXNoICE9 IHNsb3QtPmxhc3RfcGVyc2lzdGVkX2NvbmZpcm1lZF9mbHVzaCkpKQogCQlyZXR1cm47CiAKIAlM V0xvY2tBY3F1aXJlKCZzbG90LT5pb19pbl9wcm9ncmVzc19sb2NrLCBMV19FWENMVVNJVkUpOwpA QCAtMTg3OCw2ICsxODg4LDggQEAgU2F2ZVNsb3RUb1BhdGgoUmVwbGljYXRpb25TbG90ICpzbG90 LCBjb25zdCBjaGFyICpkaXIsIGludCBlbGV2ZWwpCiAJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5t dXRleCk7CiAJaWYgKCFzbG90LT5qdXN0X2RpcnRpZWQpCiAJCXNsb3QtPmRpcnR5ID0gZmFsc2U7 CisKKwlzbG90LT5sYXN0X3BlcnNpc3RlZF9jb25maXJtZWRfZmx1c2ggPSBzbG90LT5kYXRhLmNv bmZpcm1lZF9mbHVzaDsKIAlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKIAogCUxXTG9j a1JlbGVhc2UoJnNsb3QtPmlvX2luX3Byb2dyZXNzX2xvY2spOwpAQCAtMjA3NCw2ICsyMDg2LDcg QEAgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25zdCBjaGFyICpuYW1lKQogCQkvKiBpbml0aWFsaXpl IGluIG1lbW9yeSBzdGF0ZSAqLwogCQlzbG90LT5lZmZlY3RpdmVfeG1pbiA9IGNwLnNsb3RkYXRh LnhtaW47CiAJCXNsb3QtPmVmZmVjdGl2ZV9jYXRhbG9nX3htaW4gPSBjcC5zbG90ZGF0YS5jYXRh bG9nX3htaW47CisJCXNsb3QtPmxhc3RfcGVyc2lzdGVkX2NvbmZpcm1lZF9mbHVzaCA9ICBjcC5z bG90ZGF0YS5jb25maXJtZWRfZmx1c2g7CiAKIAkJc2xvdC0+Y2FuZGlkYXRlX2NhdGFsb2dfeG1p biA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCQlzbG90LT5jYW5kaWRhdGVfeG1pbl9sc24gPSBJ bnZhbGlkWExvZ1JlY1B0cjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCBhOGE4OWRjNzg0Li5i NTE5ZjdhZjVmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0xNzgsNiArMTc4LDkgQEAgdHlw ZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90CiAJWExvZ1JlY1B0cgljYW5kaWRhdGVfeG1pbl9s c247CiAJWExvZ1JlY1B0cgljYW5kaWRhdGVfcmVzdGFydF92YWxpZDsKIAlYTG9nUmVjUHRyCWNh bmRpZGF0ZV9yZXN0YXJ0X2xzbjsKKworCS8qIFRoZSBsYXN0IHBlcnNpc3RlZCBjb25maXJtZWQg Zmx1c2ggbHNuICovCisJWExvZ1JlY1B0cglsYXN0X3BlcnNpc3RlZF9jb25maXJtZWRfZmx1c2g7 CiB9IFJlcGxpY2F0aW9uU2xvdDsKIAogI2RlZmluZSBTbG90SXNQaHlzaWNhbChzbG90KSAoKHNs b3QpLT5kYXRhLmRhdGFiYXNlID09IEludmFsaWRPaWQpCkBAIC0yNDEsNyArMjQ0LDcgQEAgZXh0 ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90TmFtZUZvclRhYmxlc3luYyhPaWQgc3Vib2lkLCBPaWQg cmVsaWQsIGNoYXIgKnN5bmNzbG8KIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BBdFB1 Yk5vZGUoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGNoYXIgKnNsb3RuYW1lLCBib29sIG1pc3Np bmdfb2spOwogCiBleHRlcm4gdm9pZCBTdGFydHVwUmVwbGljYXRpb25TbG90cyh2b2lkKTsKLWV4 dGVybiB2b2lkIENoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpOworZXh0ZXJuIHZvaWQg Q2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHMoYm9vbCBpc19zaHV0ZG93bik7CiAKIGV4dGVybiB2 b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFBl cm1pc3Npb25zKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29u LmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IGJkNjczYTlk NjguLmNkZDJmOGJhNDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5i dWlsZAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKQEAgLTQwLDYgKzQw LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDMxX2NvbHVtbl9saXN0LnBsJywKICAgICAgICd0 LzAzMl9zdWJzY3JpYmVfdXNlX2luZGV4LnBsJywKICAgICAgICd0LzAzM19ydW5fYXNfdGFibGVf b3duZXIucGwnLAorICAgICAgJ3QvMDM0X2Fsd2F5c19wZXJzaXN0LnBsJywKICAgICAgICd0LzEw MF9idWdzLnBsJywKICAgICBdLAogICB9LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM0X2Fsd2F5c19wZXJzaXN0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM0 X2Fsd2F5c19wZXJzaXN0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu Ljk5NzM0NzZmZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MzRfYWx3YXlzX3BlcnNpc3QucGwKQEAgLTAsMCArMSwxMDYgQEAKKworIyBDb3B5cmlnaHQgKGMp IDIwMjMsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCBsb2dp Y2FsIHJlcGxpY2F0aW9uIHNsb3RzIGFyZSBhbHdheXMgcGVyc2lzdGVkIHRvIGRpc2sgZHVyaW5n IGEgc2h1dGRvd24KKyMgY2hlY2twb2ludC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsK KwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworc3ViIGNvbXBhcmVfY29uZmlybWVkX2ZsdXNoCit7 CisJbXkgKCRub2RlLCAkY29uZmlybWVkX2ZsdXNoX2Zyb21fbG9nKSA9IEBfOworCisJIyBGZXRj aCBMYXRlc3QgY2hlY2twb2ludCBsb2NhdGlvbiBmcm9tIHRoZSBjb250cm9sIGZpbGUgaXRzZWxm CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpID0gcnVuX2NvbW1hbmQoWyAncGdfY29udHJvbGRhdGEn LCAkbm9kZS0+ZGF0YV9kaXIgXSk7CisJbXkgQGNvbnRyb2xfZGF0YSA9IHNwbGl0KCJcbiIsICRz dGRvdXQpOworCW15ICRsYXRlc3RfY2hlY2twb2ludCA9IHVuZGVmOworCWZvcmVhY2ggKEBjb250 cm9sX2RhdGEpCisJeworCQlpZiAoJF8gPX4gL15MYXRlc3QgY2hlY2twb2ludCBsb2NhdGlvbjpc cyooLiopJC9tZykKKwkJeworCQkJJGxhdGVzdF9jaGVja3BvaW50ID0gJDE7CisJCQlsYXN0Owor CQl9CisJfQorCWRpZSAiTGF0ZXN0IGNoZWNrcG9pbnQgbG9jYXRpb24gbm90IGZvdW5kIGluIGNv bnRyb2wgZmlsZSBmb3VuZFxuIgorCSAgdW5sZXNzIGRlZmluZWQoJGxhdGVzdF9jaGVja3BvaW50 KTsKKworCSMgSXMgaXQgc2FtZSBhcyB0aGUgdmFsdWUgcmVhZCBmcm9tIGxvZz8KKwlvaygkbGF0 ZXN0X2NoZWNrcG9pbnQgZXEgJGNvbmZpcm1lZF9mbHVzaF9mcm9tX2xvZywKKwkJIkNoZWNrIHRo ZSBkZWNvZGluZyBzdGFydHMgZnJvbSB0aGUgY29uZmlybWVkX2ZsdXNoIHdoaWNoIGlzIHRoZSBz YW1lIGFzIHRoZSBsYXRlc3RfY2hlY2twb2ludCIpOworCisJcmV0dXJuOworfQorCisjIEluaXRp YWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXItPm5ldygncHViJyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0 cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5hcHBlbmRfY29uZigncG9z dGdyZXNxbC5jb25mJywgcXsKK2F1dG92YWN1dW0gPSBvZmYKK2NoZWNrcG9pbnRfdGltZW91dCA9 IDFoCit9KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIg bm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygnc3ViJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xv Z2ljYWwnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIENyZWF0ZSB0YWJsZQorJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSB0ZXN0X3Ri bCAoaWQgaW50KSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJD UkVBVEUgVEFCTEUgdGVzdF90YmwgKGlkIGludCkiKTsKKworIyBJbnNlcnQgc29tZSBkYXRhCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZXN0 X3RibCBWQUxVRVMgKGdlbmVyYXRlX3NlcmllcygxLCA1KSk7IgorKTsKKworIyBTZXR1cCBsb2dp Y2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNoZXIt PmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgQUxMIFRBQkxFUyIpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJ UFRJT04gc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gcHVi IgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5v ZGVfcHVibGlzaGVyLCAnc3ViJyk7CisKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopIEZST00gdGVzdF90YmwiCisp OworCitpcygkcmVzdWx0LCBxcSg1KSwgImNoZWNrIGluaXRpYWwgY29weSB3YXMgZG9uZSIpOwor CisjIFNldCB3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsIHRvIHplcm8gdG8gc3VwcHJlc3Mg a2VlcGFsaXZlIG1lc3NhZ2VzCisjIGJldHdlZW4gbm9kZXMuCiskbm9kZV9zdWJzY3JpYmVyLT5h cHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9yZWNlaXZlcl9zdGF0dXNfaW50 ZXJ2YWwgPSAwCit9KTsKKyRub2RlX3N1YnNjcmliZXItPnJlbG9hZCgpOworCitteSAkb2Zmc2V0 ID0gLXMgJG5vZGVfcHVibGlzaGVyLT5sb2dmaWxlOworCisjIFJlc3RhcnQgcHVibGlzaGVyIG9u Y2UuIElmIHRoZSBzbG90IGhhcyBwZXJzaXN0ZWQsIHRoZSBjb25maXJtZWRfZmx1c2hfbHNuCisj IGJlY29tZXMgdGhlIHNhbWUgYXMgdGhlIGxhdGVzdCBjaGVja3BvaW50IGxvY2F0aW9uLCB3aGlj aCBtZWFucyB0aGUKKyMgU0hVVERPV05fQ0hFQ0tQT0lOVCByZWNvcmQuCiskbm9kZV9wdWJsaXNo ZXItPnJlc3RhcnQoKTsKKworIyBXYWl0IHVudGlsIHRoZSB3YWxzZW5kZXIgY3JlYXRlcyBkZWNv ZGluZyBjb250ZXh0Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2xvZygKKwlxci9TdHJlYW1p bmcgdHJhbnNhY3Rpb25zIGNvbW1pdHRpbmcgYWZ0ZXIgKFtBLUYwLTldK1wvW0EtRjAtOV0rKSwg cmVhZGluZyBXQUwgZnJvbSAoW0EtRjAtOV0rXC9bQS1GMC05XSspLi8sCisJJG9mZnNldAorKTsK KworIyBFeHRyYWN0IGNvbmZpcm1lZF9mbHVzaCBmcm9tIHRoZSBsb2dmaWxlCitteSAkbG9nX2Nv bnRlbnRzID0gc2x1cnBfZmlsZSgkbm9kZV9wdWJsaXNoZXItPmxvZ2ZpbGUsICRvZmZzZXQpOwor JGxvZ19jb250ZW50cyA9fgorCXFyL1N0cmVhbWluZyB0cmFuc2FjdGlvbnMgY29tbWl0dGluZyBh ZnRlciAoW0EtRjAtOV0rXC9bQS1GMC05XSspLCByZWFkaW5nIFdBTCBmcm9tIChbQS1GMC05XStc L1tBLUYwLTldKykuLworCW9yIGRpZSAiY291bGQgbm90IGdldCBjb25maXJtZWRfZmx1c2hfbHNu IjsKKworY29tcGFyZV9jb25maXJtZWRfZmx1c2goJG5vZGVfcHVibGlzaGVyLCAkMSk7CisKK2Rv bmVfdGVzdGluZygpOwotLSAKMi4yNy4wCgo= --_004_TYAPR01MB586667E5DEB15F66BB0E880AF5E0ATYAPR01MB5866jpnp_ Content-Type: application/octet-stream; name="v27-0002-pg_upgrade-Allow-to-replicate-logical-replicatio.patch" Content-Description: v27-0002-pg_upgrade-Allow-to-replicate-logical-replicatio.patch Content-Disposition: attachment; filename="v27-0002-pg_upgrade-Allow-to-replicate-logical-replicatio.patch"; size=25512; creation-date="Mon, 28 Aug 2023 12:40:44 GMT"; modification-date="Mon, 28 Aug 2023 13:01:46 GMT" Content-Transfer-Encoding: base64 RnJvbSAzZDUxMWNjYjc1ZDU5NzY4NDhjMDQ3NDk1N2RkMzY3NjkwMjY1MDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBUdWUsIDQgQXByIDIwMjMgMDU6NDk6MzQgKzAwMDAKU3ViamVjdDogW1BBVENI IHYyNyAyLzNdIHBnX3VwZ3JhZGU6IEFsbG93IHRvIHJlcGxpY2F0ZSBsb2dpY2FsIHJlcGxpY2F0 aW9uCiBzbG90cyB0byBuZXcgbm9kZQoKVGhpcyBjb21taXQgYWxsb3dzIG5vZGVzIHdpdGggbG9n aWNhbCByZXBsaWNhdGlvbiBzbG90cyB0byBiZSB1cGdyYWRlZC4gV2hpbGUKcmVhZGluZyBpbmZv cm1hdGlvbiBmcm9tIHRoZSBvbGQgY2x1c3RlciwgYSBsaXN0IG9mIGxvZ2ljYWwgcmVwbGljYXRp b24gc2xvdHMgaXMKZmV0Y2hlZC4gQXQgdGhlIGxhdGVyIHBhcnQgb2YgdXBncmFkaW5nLCBwZ191 cGdyYWRlIHJldmlzaXRzIHRoZSBsaXN0IGFuZApyZXN0b3JlcyBzbG90cyBieSBleGVjdXRpbmcg cGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMoKSBvbiB0aGUgbmV3CmNsdXN0ZXIu IE1pZ3JhdGlvbiBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGlzIG9ubHkgc3VwcG9ydGVk IHdoZW4gdGhlIG9sZApjbHVzdGVyIGlzIHZlcnNpb24gMTcuMCBvciBsYXRlci4KCk5vdGUgdGhh dCBzbG90IHJlc3RvcmF0aW9uIG11c3QgYmUgZG9uZSBhZnRlciB0aGUgZmluYWwgcGdfcmVzZXR3 YWwgY29tbWFuZApkdXJpbmcgdGhlIHVwZ3JhZGUgYmVjYXVzZSBwZ19yZXNldHdhbCB3aWxsIHJl bW92ZSBXQUxzIHRoYXQgYXJlIHJlcXVpcmVkIGJ5CnRoZSBzbG90cy4gRHVlIHRvIHRoaXMgcmVz dHJpY3Rpb24sIHRoZSB0aW1pbmcgb2YgcmVzdG9yaW5nIHJlcGxpY2F0aW9uIHNsb3RzIGlzCmRp ZmZlcmVudCBmcm9tIG90aGVyIG9iamVjdHMuCgpUaGUgc2lnbmlmaWNhbnQgYWR2YW50YWdlIG9m IHRoaXMgY29tbWl0IGlzIHRoYXQgaXQgbWFrZXMgaXQgZWFzeSB0byBjb250aW51ZQpsb2dpY2Fs IHJlcGxpY2F0aW9uIGV2ZW4gYWZ0ZXIgdXBncmFkaW5nIHRoZSBwdWJsaXNoZXIgbm9kZS4gUHJl dmlvdXNseSwKcGdfdXBncmFkZSBhbGxvd2VkIGNvcHlpbmcgcHVibGljYXRpb25zIHRvIGEgbmV3 IG5vZGUuIFdpdGggdGhpcyBuZXcgY29tbWl0LAphZGp1c3RpbmcgdGhlIGNvbm5lY3Rpb24gc3Ry aW5nIHRvIHRoZSBuZXcgcHVibGlzaGVyIHdpbGwgY2F1c2UgdGhlIGFwcGx5CndvcmtlciBvbiB0 aGUgc3Vic2NyaWJlciB0byBjb25uZWN0IHRvIHRoZSBuZXcgcHVibGlzaGVyIGF1dG9tYXRpY2Fs bHkuIFRoaXMKZW5hYmxlcyBzZWFtbGVzcyBjb250aW51YXRpb24gb2YgbG9naWNhbCByZXBsaWNh dGlvbiwgZXZlbiBhZnRlciBhbiB1cGdyYWRlLgoKQXV0aG9yOiBIYXlhdG8gS3Vyb2RhCkNvLWF1 dGhvcmVkLWJ5OiBIb3UgWmhpamllClJldmlld2VkLWJ5OiBQZXRlciBTbWl0aCwgSnVsaWVuIFJv dWhhdWQsIFZpZ25lc2ggQywgV2FuZyBXZWksIE1hc2FoaWtvIFNhd2FkYQotLS0KIGRvYy9zcmMv c2dtbC9yZWYvcGd1cGdyYWRlLnNnbWwgICAgICAgICAgICAgICB8ICA2NSArKysrKysrKwogc3Jj L2Jpbi9wZ191cGdyYWRlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9i aW4vcGdfdXBncmFkZS9jaGVjay5jICAgICAgICAgICAgICAgICAgICB8ICA2NyArKysrKysrKysK IHNyYy9iaW4vcGdfdXBncmFkZS9mdW5jdGlvbi5jICAgICAgICAgICAgICAgICB8ICA0NCArKysr LS0KIHNyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMgICAgICAgICAgICAgICAgICAgICB8IDEzMSAr KysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgICAgICAgICAg ICAgICB8ICA3NiArKysrKysrKysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oICAg ICAgICAgICAgICAgfCAgMTkgKysrCiAuLi4vdC8wMDNfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 cy5wbCAgICAgICAgfCAxMzkgKysrKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDMgKwogMTAgZmlsZXMgY2hhbmdlZCwgNTM3 IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i aW4vcGdfdXBncmFkZS90LzAwM19sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzLnBsCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv cGd1cGdyYWRlLnNnbWwKaW5kZXggNzgxNmI0YzY4NS4uMjk2OTVjMzc4NCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9wZ3VwZ3JhZGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Bn dXBncmFkZS5zZ21sCkBAIC0zNjAsNiArMzYwLDcxIEBAIG1ha2UgcHJlZml4PS91c3IvbG9jYWwv cGdzcWwubmV3IGluc3RhbGwKICAgICA8L3BhcmE+CiAgICA8L3N0ZXA+CiAKKyAgIDxzdGVwPgor ICAgIDx0aXRsZT5QcmVwYXJlIGZvciBwdWJsaXNoZXIgdXBncmFkZXM8L3RpdGxlPgorCisgICAg PHBhcmE+CisgICAgIDxhcHBsaWNhdGlvbj5wZ191cGdyYWRlPC9hcHBsaWNhdGlvbj4gYXR0ZW1w dHMgdG8gbWlncmF0ZSBsb2dpY2FsCisgICAgIHJlcGxpY2F0aW9uIHNsb3RzLiBUaGlzIGhlbHBz IGF2b2lkIHRoZSBuZWVkIGZvciBtYW51YWxseSBkZWZpbmluZyB0aGUKKyAgICAgc2FtZSByZXBs aWNhdGlvbiBzbG90cyBvbiB0aGUgbmV3IHB1Ymxpc2hlci4gTWlncmF0aW9uIG9mIGxvZ2ljYWwK KyAgICAgcmVwbGljYXRpb24gc2xvdHMgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB0aGUgb2xkIGNs dXN0ZXIgaXMgdmVyc2lvbiAxNy4wCisgICAgIG9yIGxhdGVyLgorICAgIDwvcGFyYT4KKworICAg IDxwYXJhPgorICAgICBCZWZvcmUgeW91IHN0YXJ0IHVwZ3JhZGluZyB0aGUgcHVibGlzaGVyIGNs dXN0ZXIsIGVuc3VyZSB0aGF0IHRoZQorICAgICBzdWJzY3JpcHRpb24gaXMgdGVtcG9yYXJpbHkg ZGlzYWJsZWQsIGJ5IGV4ZWN1dGluZworICAgICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJz Y3JpcHRpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gRElTQUJMRTwvY29tbWFu ZD48L2xpbms+LgorICAgICBSZS1lbmFibGUgdGhlIHN1YnNjcmlwdGlvbiBhZnRlciB0aGUgdXBn cmFkZS4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlcmUgYXJlIHNvbWUgcHJl cmVxdWlzaXRlcyBmb3IgPGFwcGxpY2F0aW9uPnBnX3VwZ3JhZGU8L2FwcGxpY2F0aW9uPiB0bwor ICAgICBiZSBhYmxlIHRvIHVwZ3JhZGUgdGhlIHJlcGxpY2F0aW9uIHNsb3RzLiBJZiB0aGVzZSBh cmUgbm90IG1ldCBhbiBlcnJvcgorICAgICB3aWxsIGJlIHJlcG9ydGVkLgorICAgIDwvcGFyYT4K KworICAgIDxpdGVtaXplZGxpc3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIEFsbCBzbG90cyBvbiB0aGUgb2xkIGNsdXN0ZXIgbXVzdCBiZSB1c2FibGUsIGkuZS4sIHRo ZXJlIGFyZSBubyBzbG90cworICAgICAgIHdob3NlCisgICAgICAgPGxpbmsgbGlua2VuZD0idmll dy1wZy1yZXBsaWNhdGlvbi1zbG90cyI+cGdfcmVwbGljYXRpb25fc2xvdHM8L2xpbms+LjxzdHJ1 Y3RmaWVsZD53YWxfc3RhdHVzPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICBpcyA8bGl0ZXJhbD5sb3N0 PC9saXRlcmFsPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGxpbmsgbGlua2VuZD0idmlldy1wZy1yZXBsaWNh dGlvbi1zbG90cyI+cGdfcmVwbGljYXRpb25fc2xvdHM8L2xpbms+LjxzdHJ1Y3RmaWVsZD5jb25m aXJtZWRfZmx1c2hfbHNuPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICBvZiBhbGwgc2xvdHMgb24gdGhl IG9sZCBjbHVzdGVyIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIGxhdGVzdAorICAgICAgIGNoZWNr cG9pbnQgbG9jYXRpb24uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxs aXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBvdXRwdXQgcGx1Z2lucyByZWZlcmVu Y2VkIGJ5IHRoZSBzbG90cyBvbiB0aGUgb2xkIGNsdXN0ZXIgbXVzdCBiZQorICAgICAgIGluc3Rh bGxlZCBpbiB0aGUgbmV3IFBvc3RncmVTUUwgZXhlY3V0YWJsZSBkaXJlY3RvcnkuCisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoZSBuZXcgY2x1c3RlciBtdXN0IGhhdmUKKyAgICAgICA8bGluayBsaW5rZW5kPSJn dWMtbWF4LXJlcGxpY2F0aW9uLXNsb3RzIj48dmFybmFtZT5tYXhfcmVwbGljYXRpb25fc2xvdHM8 L3Zhcm5hbWU+PC9saW5rPgorICAgICAgIGNvbmZpZ3VyZWQgdG8gYSB2YWx1ZSBncmVhdGVyIHRo YW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBzbG90cworICAgICAgIHByZXNlbnQgaW4gdGhl IG9sZCBjbHVzdGVyLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbmV3IGNsdXN0ZXIgbXVzdCBoYXZlCisg ICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXdhbC1sZXZlbCI+PHZhcm5hbWU+d2FsX2xldmVsPC92 YXJuYW1lPjwvbGluaz4gYXMKKyAgICAgICA8bGl0ZXJhbD5sb2dpY2FsPC9saXRlcmFsPi4KKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKworICAg PC9zdGVwPgorCiAgICA8c3RlcD4KICAgICA8dGl0bGU+U3RvcCBib3RoIHNlcnZlcnM8L3RpdGxl PgogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvTWFrZWZpbGUgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvTWFrZWZpbGUKaW5kZXggNTgzNDUxM2FkZC4uODE1ZDFhN2NhMSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ191cGdyYWRlL01ha2VmaWxlCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9N YWtlZmlsZQpAQCAtMyw2ICszLDkgQEAKIFBHRklMRURFU0MgPSAicGdfdXBncmFkZSAtIGFuIGlu LXBsYWNlIGJpbmFyeSB1cGdyYWRlIHV0aWxpdHkiCiBQR0FQUElDT04gPSB3aW4zMgogCisjIHJl cXVpcmVkIGZvciAwMDNfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cy5wbAorRVhUUkFfSU5TVEFM TD1jb250cmliL3Rlc3RfZGVjb2RpbmcKKwogc3ViZGlyID0gc3JjL2Jpbi9wZ191cGdyYWRlCiB0 b3BfYnVpbGRkaXIgPSAuLi8uLi8uLgogaW5jbHVkZSAkKHRvcF9idWlsZGRpcikvc3JjL01ha2Vm aWxlLmdsb2JhbApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMgYi9zcmMv YmluL3BnX3VwZ3JhZGUvY2hlY2suYwppbmRleCA1NmUzMTNmNTYyLi5lN2M4MmYxOWIwIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYworKysgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvY2hlY2suYwpAQCAtMzAsNiArMzAsNyBAQCBzdGF0aWMgdm9pZCBjaGVja19mb3JfanNvbmJf OV80X3VzYWdlKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl9w Z19yb2xlX3ByZWZpeChDbHVzdGVySW5mbyAqY2x1c3Rlcik7CiBzdGF0aWMgdm9pZCBjaGVja19m b3JfbmV3X3RhYmxlc3BhY2VfZGlyKHZvaWQpOwogc3RhdGljIHZvaWQgY2hlY2tfZm9yX3VzZXJf ZGVmaW5lZF9lbmNvZGluZ19jb252ZXJzaW9ucyhDbHVzdGVySW5mbyAqY2x1c3Rlcik7CitzdGF0 aWMgdm9pZCBjaGVja19uZXdfY2x1c3Rlcl9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzKHZvaWQp OwogCiAKIC8qCkBAIC04OSw2ICs5MCw5IEBAIGNoZWNrX2FuZF9kdW1wX29sZF9jbHVzdGVyKGJv b2wgbGl2ZV9jaGVjaykKIAkvKiBFeHRyYWN0IGEgbGlzdCBvZiBkYXRhYmFzZXMgYW5kIHRhYmxl cyBmcm9tIHRoZSBvbGQgY2x1c3RlciAqLwogCWdldF9kYl9hbmRfcmVsX2luZm9zKCZvbGRfY2x1 c3Rlcik7CiAKKwkvKiBFeHRyYWN0IGEgbGlzdCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Rz ICovCisJZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcygpOworCiAJaW5pdF90YWJs ZXNwYWNlcygpOwogCiAJZ2V0X2xvYWRhYmxlX2xpYnJhcmllcygpOwpAQCAtMTg5LDYgKzE5Myw4 IEBAIGNoZWNrX25ld19jbHVzdGVyKHZvaWQpCiB7CiAJZ2V0X2RiX2FuZF9yZWxfaW5mb3MoJm5l d19jbHVzdGVyKTsKIAorCWNoZWNrX25ld19jbHVzdGVyX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dHMoKTsKKwogCWNoZWNrX25ld19jbHVzdGVyX2lzX2VtcHR5KCk7CiAKIAljaGVja19sb2FkYWJs ZV9saWJyYXJpZXMoKTsKQEAgLTE0MDIsMyArMTQwOCw2NCBAQCBjaGVja19mb3JfdXNlcl9kZWZp bmVkX2VuY29kaW5nX2NvbnZlcnNpb25zKENsdXN0ZXJJbmZvICpjbHVzdGVyKQogCWVsc2UKIAkJ Y2hlY2tfb2soKTsKIH0KKworLyoKKyAqIGNoZWNrX25ld19jbHVzdGVyX2xvZ2ljYWxfcmVwbGlj YXRpb25fc2xvdHMoKQorICoKKyAqIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gbG9naWNhbCByZXBs aWNhdGlvbiBzbG90cyBvbiB0aGUgbmV3IGNsdXN0ZXIgYW5kIHRoYXQKKyAqIHRoZSBwYXJhbWV0 ZXIgc2V0dGluZ3MgbmVjZXNzYXJ5IGZvciBjcmVhdGluZyBzbG90cyBhcmUgc3VmZmljaWVudC4K KyAqLworc3RhdGljIHZvaWQKK2NoZWNrX25ld19jbHVzdGVyX2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdHModm9pZCkKK3sKKwlQR3Jlc3VsdCAgICpyZXM7CisJUEdjb25uCSAgICpjb25uOworCWlu dAkJCW5zbG90cyA9IDA7CisJaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOworCWNoYXIJICAg KndhbF9sZXZlbDsKKworCS8qIExvZ2ljYWwgc2xvdHMgY2FuIGJlIG1pZ3JhdGVkIHNpbmNlIFBH MTcuICovCisJaWYgKEdFVF9NQUpPUl9WRVJTSU9OKG9sZF9jbHVzdGVyLm1ham9yX3ZlcnNpb24p ID49IDE3MDApCisJCW5zbG90cyA9IGNvdW50X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdHMoKTsK KworCS8qIFF1aWNrIHJldHVybiBpZiB0aGVyZSBhcmUgbm8gbG9naWNhbCBzbG90cyB0byBiZSBt aWdyYXRlZC4gKi8KKwlpZiAobnNsb3RzID09IDApCisJCXJldHVybjsKKworCWNvbm4gPSBjb25u ZWN0VG9TZXJ2ZXIoJm5ld19jbHVzdGVyLCAidGVtcGxhdGUxIik7CisKKwlwcmVwX3N0YXR1cygi Q2hlY2tpbmcgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMiKTsKKworCXJlcyA9IGV4ZWN1 dGVRdWVyeU9yRGllKGNvbm4sICJTRUxFQ1Qgc2xvdF9uYW1lICIKKwkJCQkJCQkJICAiRlJPTSBw Z19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzICIKKwkJCQkJCQkJICAiV0hFUkUgc2xvdF90 eXBlID0gJ2xvZ2ljYWwnIEFORCAiCisJCQkJCQkJCSAgInRlbXBvcmFyeSBJUyBGQUxTRTsiKTsK KworCWlmIChQUW50dXBsZXMocmVzKSkKKwkJcGdfZmF0YWwoIk5ldyBjbHVzdGVyIG11c3Qgbm90 IGhhdmUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBidXQgZm91bmQgXCIlc1wiIiwKKwkJCQkg UFFnZXR2YWx1ZShyZXMsIDAsIDApKTsKKworCVBRY2xlYXIocmVzKTsKKworCXJlcyA9IGV4ZWN1 dGVRdWVyeU9yRGllKGNvbm4sICJTSE9XIG1heF9yZXBsaWNhdGlvbl9zbG90czsiKTsKKwltYXhf cmVwbGljYXRpb25fc2xvdHMgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCAwLCAwKSk7CisKKwlpZiAo bnNsb3RzID4gbWF4X3JlcGxpY2F0aW9uX3Nsb3RzKQorCQlwZ19mYXRhbCgibWF4X3JlcGxpY2F0 aW9uX3Nsb3RzICglZCkgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJl ciBvZiAiCisJCQkJICJsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzICglZCkgb24gdGhlIG9sZCBj bHVzdGVyLiIsCisJCQkJIG1heF9yZXBsaWNhdGlvbl9zbG90cywgbnNsb3RzKTsKKworCVBRY2xl YXIocmVzKTsKKworCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4sICJTSE9XIHdhbF9sZXZl bDsiKTsKKwl3YWxfbGV2ZWwgPSBQUWdldHZhbHVlKHJlcywgMCwgMCk7CisKKwlpZiAoc3RyY21w KHdhbF9sZXZlbCwgImxvZ2ljYWwiKSAhPSAwKQorCQlwZ19mYXRhbCgid2FsX2xldmVsIG11c3Qg YmUgXCJsb2dpY2FsXCIsIGJ1dCBpcyBzZXQgdG8gXCIlc1wiIiwKKwkJCQl3YWxfbGV2ZWwpOwor CisJUFFjbGVhcihyZXMpOworCVBRZmluaXNoKGNvbm4pOworCisJY2hlY2tfb2soKTsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9mdW5jdGlvbi5jIGIvc3JjL2Jpbi9wZ191cGdy YWRlL2Z1bmN0aW9uLmMKaW5kZXggZGM4ODAwYzdjZC4uMmRhOGNhNDA0YSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL2Z1bmN0aW9uLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2Z1 bmN0aW9uLmMKQEAgLTExLDYgKzExLDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYW5ndWFnZV9kLmgiCisjaW5jbHVkZSAiZmVfdXRpbHMv c3RyaW5nX3V0aWxzLmgiCiAjaW5jbHVkZSAicGdfdXBncmFkZS5oIgogCiAvKgpAQCAtNDYsNyAr NDcsMTIgQEAgbGlicmFyeV9uYW1lX2NvbXBhcmUoY29uc3Qgdm9pZCAqcDEsIGNvbnN0IHZvaWQg KnAyKQogLyoKICAqIGdldF9sb2FkYWJsZV9saWJyYXJpZXMoKQogICoKLSAqCUZldGNoIHRoZSBu YW1lcyBvZiBhbGwgb2xkIGxpYnJhcmllcyBjb250YWluaW5nIEMtbGFuZ3VhZ2UgZnVuY3Rpb25z LgorICoJRmV0Y2ggdGhlIG5hbWVzIG9mIGFsbCBvbGQgbGlicmFyaWVzOgorICoJMS4gTmFtZSBv ZiBsaWJyYXJ5IGZpbGVzIGNvbnRhaW5pbmcgQy1sYW5ndWFnZSBmdW5jdGlvbnMgKGZvciBub24t YnVpbHQtaW4KKyAqCSAgIGZ1bmN0aW9ucyksIGFuZAorICoJMi4gU2hhcmVkIG9iamVjdCAobGli cmFyeSkgbmFtZXMgY29udGFpbmluZyB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBvdXRwdXQKKyAq CSAgIHBsdWdpbnMKKyAqCiAgKglXZSB3aWxsIGxhdGVyIGNoZWNrIHRoYXQgdGhleSBhbGwgZXhp c3QgaW4gdGhlIG5ldyBpbnN0YWxsYXRpb24uCiAgKi8KIHZvaWQKQEAgLTU1LDEwICs2MSwzMiBA QCBnZXRfbG9hZGFibGVfbGlicmFyaWVzKHZvaWQpCiAJUEdyZXN1bHQgICoqcmVzczsKIAlpbnQJ CQl0b3RhbHR1cHM7CiAJaW50CQkJZGJudW07CisJUFFFeHBCdWZmZXIJcXVlcnkgPSBjcmVhdGVQ UUV4cEJ1ZmZlcigpOwogCiAJcmVzcyA9IChQR3Jlc3VsdCAqKikgcGdfbWFsbG9jKG9sZF9jbHVz dGVyLmRiYXJyLm5kYnMgKiBzaXplb2YoUEdyZXN1bHQgKikpOwogCXRvdGFsdHVwcyA9IDA7CiAK KwkvKiBDb25zdHJ1Y3QgYSBxdWVyeSBzdHJpbmcgKi8KKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwgIlNFTEVDVCBESVNUSU5DVCBwcm9iaW4gIgorCQkJCQkJCQkiRlJPTSBwZ19jYXRhbG9nLnBn X3Byb2MgIgorCQkJCQkJCQkiV0hFUkUgcHJvbGFuZyA9ICV1IEFORCAiCisJCQkJCQkJCSJwcm9i aW4gSVMgTk9UIE5VTEwgQU5EICIKKwkJCQkJCQkJIm9pZCA+PSAldSIsCisJCQkJCQkJCUNsYW5n dWFnZUlkLAorCQkJCQkJCQlGaXJzdE5vcm1hbE9iamVjdElkKTsKKworCS8qCisJICogSWYgb2xk X2NsdXN0ZXIgaXMgUEcgMTcgb3IgbGF0ZXIsIGxvZ2ljYWwgZGVjb2Rpbmcgb3V0cHV0IHBsdWdp bnMgbXVzdAorCSAqIGFsc28gYmUgaW5jbHVkZWQuCisJICovCisJaWYgKEdFVF9NQUpPUl9WRVJT SU9OKG9sZF9jbHVzdGVyLm1ham9yX3ZlcnNpb24pID49IDE3MDApCisJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiIFVOSU9OICIKKwkJCQkJCQkJCSJTRUxFQ1QgRElTVElOQ1QgcGx1Z2lu ICIKKwkJCQkJCQkJCSJGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMgIgorCQkJ CQkJCQkJIldIRVJFIHdhbF9zdGF0dXMgPD4gJ2xvc3QnIEFORCAiCisJCQkJCQkJCQkiZGF0YWJh c2UgPSBjdXJyZW50X2RhdGFiYXNlKCkgQU5EICIKKwkJCQkJCQkJCSJ0ZW1wb3JhcnkgSVMgRkFM U0U7Iik7CisKIAkvKiBGZXRjaCBhbGwgbGlicmFyeSBuYW1lcywgcmVtb3ZpbmcgZHVwbGljYXRl cyB3aXRoaW4gZWFjaCBEQiAqLwogCWZvciAoZGJudW0gPSAwOyBkYm51bSA8IG9sZF9jbHVzdGVy LmRiYXJyLm5kYnM7IGRibnVtKyspCiAJewpAQCAtNjYsMjEgKzk0LDE3IEBAIGdldF9sb2FkYWJs ZV9saWJyYXJpZXModm9pZCkKIAkJUEdjb25uCSAgICpjb25uID0gY29ubmVjdFRvU2VydmVyKCZv bGRfY2x1c3RlciwgYWN0aXZlX2RiLT5kYl9uYW1lKTsKIAogCQkvKgotCQkgKiBGZXRjaCBhbGwg bGlicmFyaWVzIGNvbnRhaW5pbmcgbm9uLWJ1aWx0LWluIEMgZnVuY3Rpb25zIGluIHRoaXMgREIu CisJCSAqIEZldGNoIGFsbCBsaWJyYXJpZXMgY29udGFpbmluZyBub24tYnVpbHQtaW4gQyBmdW5j dGlvbnMsIG9yIHJlZmVycmVkCisJCSAqIHRvIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMg aW4gdGhpcyBEQi4KIAkJICovCi0JCXJlc3NbZGJudW1dID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29u biwKLQkJCQkJCQkJCQkiU0VMRUNUIERJU1RJTkNUIHByb2JpbiAiCi0JCQkJCQkJCQkJIkZST00g cGdfY2F0YWxvZy5wZ19wcm9jICIKLQkJCQkJCQkJCQkiV0hFUkUgcHJvbGFuZyA9ICV1IEFORCAi Ci0JCQkJCQkJCQkJInByb2JpbiBJUyBOT1QgTlVMTCBBTkQgIgotCQkJCQkJCQkJCSJvaWQgPj0g JXU7IiwKLQkJCQkJCQkJCQlDbGFuZ3VhZ2VJZCwKLQkJCQkJCQkJCQlGaXJzdE5vcm1hbE9iamVj dElkKTsKKwkJcmVzc1tkYm51bV0gPSBleGVjdXRlUXVlcnlPckRpZShjb25uLCAiJXMiLCBxdWVy eS0+ZGF0YSk7CiAJCXRvdGFsdHVwcyArPSBQUW50dXBsZXMocmVzc1tkYm51bV0pOwogCiAJCVBR ZmluaXNoKGNvbm4pOwogCX0KIAorCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisKIAlvc19p bmZvLmxpYnJhcmllcyA9IChMaWJyYXJ5SW5mbyAqKSBwZ19tYWxsb2ModG90YWx0dXBzICogc2l6 ZW9mKExpYnJhcnlJbmZvKSk7CiAJdG90YWx0dXBzID0gMDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ191cGdyYWRlL2luZm8uYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKaW5kZXggYWE1 ZmFjYTRkNi4uYTc5YzgzNGZiNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8u YworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCkBAIC0yNiw2ICsyNiw3IEBAIHN0YXRp YyB2b2lkIGdldF9yZWxfaW5mb3MoQ2x1c3RlckluZm8gKmNsdXN0ZXIsIERiSW5mbyAqZGJpbmZv KTsKIHN0YXRpYyB2b2lkIGZyZWVfcmVsX2luZm9zKFJlbEluZm9BcnIgKnJlbF9hcnIpOwogc3Rh dGljIHZvaWQgcHJpbnRfZGJfaW5mb3MoRGJJbmZvQXJyICpkYl9hcnIpOwogc3RhdGljIHZvaWQg cHJpbnRfcmVsX2luZm9zKFJlbEluZm9BcnIgKnJlbF9hcnIpOworc3RhdGljIHZvaWQgcHJpbnRf c2xvdF9pbmZvcyhMb2dpY2FsU2xvdEluZm9BcnIgKnNsb3RfYXJyKTsKIAogCiAvKgpAQCAtMzk0 LDcgKzM5NSw3IEBAIGdldF9kYl9pbmZvcyhDbHVzdGVySW5mbyAqY2x1c3RlcikKIAlpX3NwY2xv Y2F0aW9uID0gUFFmbnVtYmVyKHJlcywgInNwY2xvY2F0aW9uIik7CiAKIAludHVwcyA9IFBRbnR1 cGxlcyhyZXMpOwotCWRiaW5mb3MgPSAoRGJJbmZvICopIHBnX21hbGxvYyhzaXplb2YoRGJJbmZv KSAqIG50dXBzKTsKKwlkYmluZm9zID0gKERiSW5mbyAqKSBwZ19tYWxsb2MwKHNpemVvZihEYklu Zm8pICogbnR1cHMpOwogCiAJZm9yICh0dXBudW0gPSAwOyB0dXBudW0gPCBudHVwczsgdHVwbnVt KyspCiAJewpAQCAtNjAwLDYgKzYwMSwxMTIgQEAgZ2V0X3JlbF9pbmZvcyhDbHVzdGVySW5mbyAq Y2x1c3RlciwgRGJJbmZvICpkYmluZm8pCiAJZGJpbmZvLT5yZWxfYXJyLm5yZWxzID0gbnVtX3Jl bHM7CiB9CiAKKy8qCisgKiBnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zX3Blcl9k YigpCisgKgorICogZ2V0cyB0aGUgTG9naWNhbFNsb3RJbmZvcyBmb3IgYWxsIHRoZSBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3RzIG9mIHRoZSBkYXRhYmFzZQorICogcmVmZXJyZWQgdG8gYnkgImRi aW5mbyIuCisgKi8KK3N0YXRpYyB2b2lkCitnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2lu Zm9zX3Blcl9kYihEYkluZm8gKmRiaW5mbykKK3sKKwlQR2Nvbm4JICAgKmNvbm4gPSBjb25uZWN0 VG9TZXJ2ZXIoJm9sZF9jbHVzdGVyLAorCQkJCQkJCQkJICAgZGJpbmZvLT5kYl9uYW1lKTsKKwlQ R3Jlc3VsdCAgICpyZXM7CisJTG9naWNhbFNsb3RJbmZvICpzbG90aW5mb3MgPSBOVUxMOworCisJ aW50CQkJbnVtX3Nsb3RzOworCisJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIlNFTEVD VCBzbG90X25hbWUsIHBsdWdpbiwgdHdvX3BoYXNlICIKKwkJCQkJCQkiRlJPTSBwZ19jYXRhbG9n LnBnX3JlcGxpY2F0aW9uX3Nsb3RzICIKKwkJCQkJCQkiV0hFUkUgd2FsX3N0YXR1cyA8PiAnbG9z dCcgQU5EICIKKwkJCQkJCQkiZGF0YWJhc2UgPSBjdXJyZW50X2RhdGFiYXNlKCkgQU5EICIKKwkJ CQkJCQkidGVtcG9yYXJ5IElTIEZBTFNFOyIpOworCisJbnVtX3Nsb3RzID0gUFFudHVwbGVzKHJl cyk7CisKKwlpZiAobnVtX3Nsb3RzKQorCXsKKwkJaW50CQkJc2xvdG51bTsKKwkJaW50CQkJaV9z bG90bmFtZTsKKwkJaW50CQkJaV9wbHVnaW47CisJCWludAkJCWlfdHdvcGhhc2U7CisKKwkJc2xv dGluZm9zID0gKExvZ2ljYWxTbG90SW5mbyAqKSBwZ19tYWxsb2Moc2l6ZW9mKExvZ2ljYWxTbG90 SW5mbykgKiBudW1fc2xvdHMpOworCisJCWlfc2xvdG5hbWUgPSBQUWZudW1iZXIocmVzLCAic2xv dF9uYW1lIik7CisJCWlfcGx1Z2luID0gUFFmbnVtYmVyKHJlcywgInBsdWdpbiIpOworCQlpX3R3 b3BoYXNlID0gUFFmbnVtYmVyKHJlcywgInR3b19waGFzZSIpOworCisJCWZvciAoc2xvdG51bSA9 IDA7IHNsb3RudW0gPCBudW1fc2xvdHM7IHNsb3RudW0rKykKKwkJeworCQkJTG9naWNhbFNsb3RJ bmZvICpjdXJyID0gJnNsb3RpbmZvc1tzbG90bnVtXTsKKworCQkJY3Vyci0+c2xvdG5hbWUgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfc2xvdG5hbWUpKTsKKwkJCWN1cnIt PnBsdWdpbiA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV9wbHVnaW4pKTsK KwkJCWN1cnItPnR3b19waGFzZSA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlf dHdvcGhhc2UpLCAidCIpID09IDApOworCQl9CisJfQorCisJUFFjbGVhcihyZXMpOworCVBRZmlu aXNoKGNvbm4pOworCisJZGJpbmZvLT5zbG90X2Fyci5zbG90cyA9IHNsb3RpbmZvczsKKwlkYmlu Zm8tPnNsb3RfYXJyLm5zbG90cyA9IG51bV9zbG90czsKK30KKworLyoKKyAqIGdldF9vbGRfY2x1 c3Rlcl9sb2dpY2FsX3Nsb3RfaW5mb3MoKQorICoKKyAqIEhpZ2hlciBsZXZlbCByb3V0aW5lIHRv IGdlbmVyYXRlIExvZ2ljYWxTbG90SW5mb0FyciBmb3IgYWxsIGRhdGFiYXNlcy4KKyAqCisgKiBO b3RlOiBUaGlzIGZ1bmN0aW9uIHdpbGwgbm90IGRvIGFueXRoaW5nIGlmIHRoZSBvbGQgY2x1c3Rl ciBpcyBwcmUtUEcgMTcuCisgKiBUaGUgbG9naWNhbCBzbG90cyBhcmUgbm90IHNhdmVkIGF0IHNo dXRkb3duLCBhbmQgdGhlIGNvbmZpcm1lZF9mbHVzaF9sc24gaXMKKyAqIGFsd2F5cyBiZWhpbmQg dGhlIFNIVVRET1dOX0NIRUNLUE9JTlQgcmVjb3JkLiBTdWJzZXF1ZW50IGNoZWNrcyBkb25lIGlu CisgKiBjaGVja19mb3JfY29uZmlybWVkX2ZsdXNoX2xzbigpIHdvdWxkIHJhaXNlIGEgRkFUQUwg ZXJyb3IgaWYgc3VjaCBzbG90cyBhcmUKKyAqIGluY2x1ZGVkLgorICovCit2b2lkCitnZXRfb2xk X2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKHZvaWQpCit7CisJaW50CQkJZGJudW07CisKKwkv KiBMb2dpY2FsIHNsb3RzIGNhbiBiZSBtaWdyYXRlZCBzaW5jZSBQRzE3LiAqLworCWlmIChHRVRf TUFKT1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpvcl92ZXJzaW9uKSA8PSAxNjAwKQorCQlyZXR1 cm47CisKKwlwZ19sb2coUEdfVkVSQk9TRSwgIlxuc291cmNlIGRhdGFiYXNlczoiKTsKKworCWZv ciAoZGJudW0gPSAwOyBkYm51bSA8IG9sZF9jbHVzdGVyLmRiYXJyLm5kYnM7IGRibnVtKyspCisJ eworCQlEYkluZm8JICAgKnBEYkluZm8gPSAmb2xkX2NsdXN0ZXIuZGJhcnIuZGJzW2RibnVtXTsK KworCQlnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zX3Blcl9kYihwRGJJbmZvKTsK KworCQlpZiAobG9nX29wdHMudmVyYm9zZSkKKwkJeworCQkJcGdfbG9nKFBHX1ZFUkJPU0UsICJE YXRhYmFzZTogXCIlc1wiIiwgcERiSW5mby0+ZGJfbmFtZSk7CisJCQlwcmludF9zbG90X2luZm9z KCZwRGJJbmZvLT5zbG90X2Fycik7CisJCX0KKwl9Cit9CisKKy8qCisgKiBjb3VudF9vbGRfY2x1 c3Rlcl9sb2dpY2FsX3Nsb3RzKCkKKyAqCisgKiBTdW0gdXAgYW5kIHJldHVybiB0aGUgbnVtYmVy IG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgZm9yIGFsbCBkYXRhYmFzZXMuCisgKi8KK2lu dAorY291bnRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90cyh2b2lkKQoreworCWludAkJCWRibnVt OworCWludAkJCXNsb3RfY291bnQgPSAwOworCisJZm9yIChkYm51bSA9IDA7IGRibnVtIDwgb2xk X2NsdXN0ZXIuZGJhcnIubmRiczsgZGJudW0rKykKKwkJc2xvdF9jb3VudCArPSBvbGRfY2x1c3Rl ci5kYmFyci5kYnNbZGJudW1dLnNsb3RfYXJyLm5zbG90czsKKworCXJldHVybiBzbG90X2NvdW50 OworfQogCiBzdGF0aWMgdm9pZAogZnJlZV9kYl9hbmRfcmVsX2luZm9zKERiSW5mb0FyciAqZGJf YXJyKQpAQCAtNjEwLDYgKzcxNywxMiBAQCBmcmVlX2RiX2FuZF9yZWxfaW5mb3MoRGJJbmZvQXJy ICpkYl9hcnIpCiAJewogCQlmcmVlX3JlbF9pbmZvcygmZGJfYXJyLT5kYnNbZGJudW1dLnJlbF9h cnIpOwogCQlwZ19mcmVlKGRiX2Fyci0+ZGJzW2RibnVtXS5kYl9uYW1lKTsKKworCQkvKgorCQkg KiBMb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIG11c3Qgbm90IGV4aXN0IG9uIHRoZSBuZXcgY2x1 c3RlciBiZWZvcmUKKwkJICogY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMoKS4KKwkJ ICovCisJCUFzc2VydChkYl9hcnItPmRic1tkYm51bV0uc2xvdF9hcnIubnNsb3RzID09IDApOwog CX0KIAlwZ19mcmVlKGRiX2Fyci0+ZGJzKTsKIAlkYl9hcnItPmRicyA9IE5VTEw7CkBAIC02NjAs MyArNzczLDE5IEBAIHByaW50X3JlbF9pbmZvcyhSZWxJbmZvQXJyICpyZWxfYXJyKQogCQkJICAg cmVsX2Fyci0+cmVsc1tyZWxudW1dLnJlbG9pZCwKIAkJCSAgIHJlbF9hcnItPnJlbHNbcmVsbnVt XS50YWJsZXNwYWNlKTsKIH0KKworc3RhdGljIHZvaWQKK3ByaW50X3Nsb3RfaW5mb3MoTG9naWNh bFNsb3RJbmZvQXJyICpzbG90X2FycikKK3sKKwlpbnQJCQlzbG90bnVtOworCisJZm9yIChzbG90 bnVtID0gMDsgc2xvdG51bSA8IHNsb3RfYXJyLT5uc2xvdHM7IHNsb3RudW0rKykKKwl7CisJCUxv Z2ljYWxTbG90SW5mbyAqc2xvdF9pbmZvID0gJnNsb3RfYXJyLT5zbG90c1tzbG90bnVtXTsKKwor CQlwZ19sb2coUEdfVkVSQk9TRSwgInNsb3RuYW1lOiBcIiVzXCIsIHBsdWdpbjogXCIlc1wiLCB0 d29fcGhhc2U6ICVkIiwKKwkJCSAgIHNsb3RfaW5mby0+c2xvdG5hbWUsCisJCQkgICBzbG90X2lu Zm8tPnBsdWdpbiwKKwkJCSAgIHNsb3RfaW5mby0+dHdvX3BoYXNlKTsKKwl9Cit9CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvbWVzb24uYnVpbGQgYi9zcmMvYmluL3BnX3VwZ3JhZGUv bWVzb24uYnVpbGQKaW5kZXggMTJhOTdmODRlMi4uMjI4ZjI5YjY4OCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ191cGdyYWRlL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9tZXNv bi5idWlsZApAQCAtNDIsNiArNDIsNyBAQCB0ZXN0cyArPSB7CiAgICAgJ3Rlc3RzJzogWwogICAg ICAgJ3QvMDAxX2Jhc2ljLnBsJywKICAgICAgICd0LzAwMl9wZ191cGdyYWRlLnBsJywKKyAgICAg ICd0LzAwM19sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzLnBsJywKICAgICBdLAogICAgICd0ZXN0 X2t3YXJncyc6IHsncHJpb3JpdHknOiA0MH0sICMgcGdfdXBncmFkZSB0ZXN0cyBhcmUgc2xvdwog ICB9LApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9i aW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKaW5kZXggNDU2MmRhZmNmZi4uNTM0NDJlZDY3YyAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCkBAIC01OSw2ICs1OSw3IEBAIHN0YXRpYyB2b2lkIGNv cHlfeGFjdF94bG9nX3hpZCh2b2lkKTsKIHN0YXRpYyB2b2lkIHNldF9mcm96ZW54aWRzKGJvb2wg bWlubXhpZF9vbmx5KTsKIHN0YXRpYyB2b2lkIG1ha2Vfb3V0cHV0ZGlycyhjaGFyICpwZ2RhdGEp Owogc3RhdGljIHZvaWQgc2V0dXAoY2hhciAqYXJndjAsIGJvb2wgKmxpdmVfY2hlY2spOworc3Rh dGljIHZvaWQgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHModm9pZCk7CiAKIENsdXN0 ZXJJbmZvIG9sZF9jbHVzdGVyLAogCQkJbmV3X2NsdXN0ZXI7CkBAIC0xODgsNiArMTg5LDIyIEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJICBuZXdfY2x1c3Rlci5wZ2RhdGEpOwog CWNoZWNrX29rKCk7CiAKKwkvKgorCSAqIExvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCB1cGdyYWRl IG9ubHkgc3VwcG9ydGVkIGZvciBvbGRfY2x1c3RlciA+PSBQRzE3LgorCSAqCisJICogTm90ZTog VGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgZG9pbmcgdGhlIHBnX3Jlc2V0d2FsIGNvbW1hbmQgYmVj YXVzZQorCSAqIHBnX3Jlc2V0d2FsIHdvdWxkIHJlbW92ZSByZXF1aXJlZCBXQUxzLgorCSAqLwor CWlmIChHRVRfTUFKT1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpvcl92ZXJzaW9uKSA+PSAxNzAw KQorCXsKKwkJaWYgKGNvdW50X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdHMoKSkKKwkJeworCQkJ c3RhcnRfcG9zdG1hc3RlcigmbmV3X2NsdXN0ZXIsIHRydWUpOworCQkJY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdHMoKTsKKwkJCXN0b3BfcG9zdG1hc3RlcihmYWxzZSk7CisJCX0KKwl9 CisKIAlpZiAodXNlcl9vcHRzLmRvX3N5bmMpCiAJewogCQlwcmVwX3N0YXR1cygiU3luYyBkYXRh IGRpcmVjdG9yeSB0byBkaXNrIik7CkBAIC04NjAsMyArODc3LDYyIEBAIHNldF9mcm96ZW54aWRz KGJvb2wgbWlubXhpZF9vbmx5KQogCiAJY2hlY2tfb2soKTsKIH0KKworLyoKKyAqIGNyZWF0ZV9s b2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzKCkKKyAqCisgKiBTaW1pbGFyIHRvIGNyZWF0ZV9uZXdf b2JqZWN0cygpIGJ1dCBvbmx5IHJlc3RvcmVzIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMuCisg Ki8KK3N0YXRpYyB2b2lkCitjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cyh2b2lkKQor eworCWludAkJCWRibnVtOworCisJcHJlcF9zdGF0dXNfcHJvZ3Jlc3MoIlJlc3RvcmluZyBsb2dp Y2FsIHJlcGxpY2F0aW9uIHNsb3RzIGluIHRoZSBuZXcgY2x1c3RlciIpOworCisJZm9yIChkYm51 bSA9IDA7IGRibnVtIDwgb2xkX2NsdXN0ZXIuZGJhcnIubmRiczsgZGJudW0rKykKKwl7CisJCURi SW5mbwkgICAqb2xkX2RiID0gJm9sZF9jbHVzdGVyLmRiYXJyLmRic1tkYm51bV07CisJCUxvZ2lj YWxTbG90SW5mb0FyciAqc2xvdF9hcnIgPSAmb2xkX2RiLT5zbG90X2FycjsKKwkJUEdjb25uICAg ICAqY29ubjsKKwkJUFFFeHBCdWZmZXIgcXVlcnk7CisJCWludAkJCXNsb3RudW07CisJCWNoYXIJ CWxvZ19maWxlX25hbWVbTUFYUEdQQVRIXTsKKworCQkvKiBTa2lwIHRoaXMgZGF0YWJhc2UgaWYg dGhlcmUgYXJlIG5vIHNsb3RzICovCisJCWlmIChzbG90X2Fyci0+bnNsb3RzID09IDApCisJCQlj b250aW51ZTsKKworCQljb25uID0gY29ubmVjdFRvU2VydmVyKCZuZXdfY2x1c3Rlciwgb2xkX2Ri LT5kYl9uYW1lKTsKKwkJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJCXNucHJpbnRm KGxvZ19maWxlX25hbWUsIHNpemVvZihsb2dfZmlsZV9uYW1lKSwKKwkJCQkgREJfRFVNUF9MT0df RklMRV9NQVNLLCBvbGRfZGItPmRiX29pZCk7CisKKwkJcGdfbG9nKFBHX1NUQVRVUywgIiVzIiwg b2xkX2RiLT5kYl9uYW1lKTsKKworCQlmb3IgKHNsb3RudW0gPSAwOyBzbG90bnVtIDwgc2xvdF9h cnItPm5zbG90czsgc2xvdG51bSsrKQorCQl7CisJCQlMb2dpY2FsU2xvdEluZm8gKnNsb3RfaW5m byA9ICZzbG90X2Fyci0+c2xvdHNbc2xvdG51bV07CisKKwkJCS8qIENvbnN0cnVjdHMgYSBxdWVy eSBmb3IgY3JlYXRpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cy4gKi8KKwkJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiU0VMRUNUIHBnX2NhdGFsb2cucGdfY3JlYXRlX2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdCgiKTsKKwkJCWFwcGVuZFN0cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90 X2luZm8tPnNsb3RuYW1lLCBjb25uKTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAi KTsKKwkJCWFwcGVuZFN0cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90X2luZm8tPnBsdWdpbiwg Y29ubik7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgZmFsc2UsICVzKTsiLAorCQkJ CQkJCSAgc2xvdF9pbmZvLT50d29fcGhhc2UgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworCQkJUFFj bGVhcihleGVjdXRlUXVlcnlPckRpZShjb25uLCAiJXMiLCBxdWVyeS0+ZGF0YSkpOworCisJCQly ZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwkJfQorCisJCVBRZmluaXNoKGNvbm4pOworCisJCWRl c3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisJfQorCisJZW5kX3Byb2dyZXNzX291dHB1dCgpOwor CWNoZWNrX29rKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFk ZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRleCA3YWZhOTY3MTZlLi5k YWU5MmVmNmMwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisr KyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKQEAgLTE1MCw2ICsxNTAsMjIgQEAg dHlwZWRlZiBzdHJ1Y3QKIAlpbnQJCQlucmVsczsKIH0gUmVsSW5mb0FycjsKIAorLyoKKyAqIFN0 cnVjdHVyZSB0byBzdG9yZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgaW5mb3JtYXRpb24KKyAq LwordHlwZWRlZiBzdHJ1Y3QKK3sKKwljaGFyCSAgICpzbG90bmFtZTsJCS8qIHNsb3QgbmFtZSAq LworCWNoYXIJICAgKnBsdWdpbjsJCQkvKiBwbHVnaW4gKi8KKwlib29sCQl0d29fcGhhc2U7CQkv KiBjYW4gdGhlIHNsb3QgZGVjb2RlIDJQQz8gKi8KK30gTG9naWNhbFNsb3RJbmZvOworCit0eXBl ZGVmIHN0cnVjdAoreworCWludAkJCW5zbG90czsJCQkvKiBudW1iZXIgb2YgbG9naWNhbCBzbG90 IGluZm9zICovCisJTG9naWNhbFNsb3RJbmZvICpzbG90czsJCS8qIGFycmF5IG9mIGxvZ2ljYWwg c2xvdCBpbmZvcyAqLworfSBMb2dpY2FsU2xvdEluZm9BcnI7CisKIC8qCiAgKiBUaGUgZm9sbG93 aW5nIHN0cnVjdHVyZSByZXByZXNlbnRzIGEgcmVsYXRpb24gbWFwcGluZy4KICAqLwpAQCAtMTc2 LDYgKzE5Miw3IEBAIHR5cGVkZWYgc3RydWN0CiAJY2hhcgkJZGJfdGFibGVzcGFjZVtNQVhQR1BB VEhdOwkvKiBkYXRhYmFzZSBkZWZhdWx0IHRhYmxlc3BhY2UKIAkJCQkJCQkJCQkJICogcGF0aCAq LwogCVJlbEluZm9BcnIJcmVsX2FycjsJCS8qIGFycmF5IG9mIGFsbCB1c2VyIHJlbGluZm9zICov CisJTG9naWNhbFNsb3RJbmZvQXJyIHNsb3RfYXJyOwkvKiBhcnJheSBvZiBhbGwgTG9naWNhbFNs b3RJbmZvICovCiB9IERiSW5mbzsKIAogLyoKQEAgLTQwMCw2ICs0MTcsOCBAQCBGaWxlTmFtZU1h cCAqZ2VuX2RiX2ZpbGVfbWFwcyhEYkluZm8gKm9sZF9kYiwKIAkJCQkJCQkgIERiSW5mbyAqbmV3 X2RiLCBpbnQgKm5tYXBzLCBjb25zdCBjaGFyICpvbGRfcGdkYXRhLAogCQkJCQkJCSAgY29uc3Qg Y2hhciAqbmV3X3BnZGF0YSk7CiB2b2lkCQlnZXRfZGJfYW5kX3JlbF9pbmZvcyhDbHVzdGVySW5m byAqY2x1c3Rlcik7Cit2b2lkCQlnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKHZv aWQpOworaW50CQkJY291bnRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90cyh2b2lkKTsKIAogLyog b3B0aW9uLmMgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdHMucGwgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNh bF9yZXBsaWNhdGlvbl9zbG90cy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi5hZTg3YzMzNzA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3Qv MDAzX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMucGwKQEAgLTAsMCArMSwxMzkgQEAKKyMgQ29w eXJpZ2h0IChjKSAyMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisj IFRlc3RzIGZvciB1cGdyYWRpbmcgcmVwbGljYXRpb24gc2xvdHMKKwordXNlIHN0cmljdDsKK3Vz ZSB3YXJuaW5nczsKKwordXNlIEZpbGU6OlBhdGggcXcocm10cmVlKTsKKwordXNlIFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVz dDo6TW9yZTsKKworIyBDYW4gYmUgY2hhbmdlZCB0byB0ZXN0IHRoZSBvdGhlciBtb2RlcworbXkg JG1vZGUgPSAkRU5We1BHX1RFU1RfUEdfVVBHUkFERV9NT0RFfSB8fCAnLS1jb3B5JzsKKworIyBJ bml0aWFsaXplIG9sZCBjbHVzdGVyCitteSAkb2xkX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXItPm5ldygnb2xkX3B1Ymxpc2hlcicpOworJG9sZF9wdWJsaXNoZXItPmluaXQo YWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworCisjIEluaXRpYWxpemUgbmV3IGNsdXN0 ZXIKK215ICRuZXdfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdu ZXdfcHVibGlzaGVyJyk7CiskbmV3X3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ ICdyZXBsaWNhJyk7CisKK215ICRiaW5kaXIgPSAkbmV3X3B1Ymxpc2hlci0+Y29uZmlnX2RhdGEo Jy0tYmluZGlyJyk7CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRFU1Q6 IENvbmZpcm0gcGdfdXBncmFkZSBmYWlscyB3aGVuIG5ldyBjbHVzdGVyIHdhbF9sZXZlbCBpcyBu b3QgJ2xvZ2ljYWwnCisKKyMgUHJlcGFyYXRpb25zIGZvciB0aGUgc3Vic2VxdWVudCB0ZXN0Ogor IyAxLiBDcmVhdGUgYSBzbG90IG9uIHRoZSBvbGQgY2x1c3RlcgorJG9sZF9wdWJsaXNoZXItPnN0 YXJ0OworJG9sZF9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdf Y3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgndGVzdF9zbG90MScsICd0ZXN0X2RlY29k aW5nJywgZmFsc2UsIHRydWUpOyIKKyk7Ciskb2xkX3B1Ymxpc2hlci0+c3RvcDsKKworIyBwZ191 cGdyYWRlIHdpbGwgZmFpbCBiZWNhdXNlIHRoZSBuZXcgY2x1c3RlciB3YWxfbGV2ZWwgaXMgJ3Jl cGxpY2EnCitjb21tYW5kX2ZhaWxzKAorCVsKKwkJJ3BnX3VwZ3JhZGUnLCAnLS1uby1zeW5jJywK KwkJJy1kJywgICAgICAgICAkb2xkX3B1Ymxpc2hlci0+ZGF0YV9kaXIsCisJCSctRCcsICAgICAg ICAgJG5ld19wdWJsaXNoZXItPmRhdGFfZGlyLAorCQknLWInLCAgICAgICAgICRiaW5kaXIsCisJ CSctQicsICAgICAgICAgJGJpbmRpciwKKwkJJy1zJywgICAgICAgICAkbmV3X3B1Ymxpc2hlci0+ aG9zdCwKKwkJJy1wJywgICAgICAgICAkb2xkX3B1Ymxpc2hlci0+cG9ydCwKKwkJJy1QJywgICAg ICAgICAkbmV3X3B1Ymxpc2hlci0+cG9ydCwKKwkJJG1vZGUsCisJXSwKKwkncnVuIG9mIHBnX3Vw Z3JhZGUgd2hlcmUgdGhlIG5ldyBjbHVzdGVyIGhhcyB0aGUgd3Jvbmcgd2FsX2xldmVsJyk7Citv ayggLWQgJG5ld19wdWJsaXNoZXItPmRhdGFfZGlyIC4gIi9wZ191cGdyYWRlX291dHB1dC5kIiwK KwkicGdfdXBncmFkZV9vdXRwdXQuZC8gbm90IHJlbW92ZWQgYWZ0ZXIgcGdfdXBncmFkZSBmYWls dXJlIik7CisKKyMgQ2xlYW4gdXAKK3JtdHJlZSgkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIgLiAi L3BnX3VwZ3JhZGVfb3V0cHV0LmQiKTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyMgVEVTVDogQ29uZmlybSBwZ191cGdyYWRlIGZhaWxzIHdoZW4gbWF4X3JlcGxpY2F0aW9u X3Nsb3RzIG9uIGEgbmV3IGNsdXN0ZXIgaXMKKyMJCXRvbyBsb3cKKworIyBQcmVwYXJhdGlvbnMg Zm9yIHRoZSBzdWJzZXF1ZW50IHRlc3Q6CisjIDEuIENyZWF0ZSBhIHNlY29uZCBzbG90IG9uIHRo ZSBvbGQgY2x1c3RlcgorJG9sZF9wdWJsaXNoZXItPnN0YXJ0OworJG9sZF9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRp b25fc2xvdCgndGVzdF9zbG90MicsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIHRydWUpOyIKKyk7 Ciskb2xkX3B1Ymxpc2hlci0+c3RvcDsKKworIyAyLiBtYXhfcmVwbGljYXRpb25fc2xvdHMgaXMg c2V0IHRvIHNtYWxsZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHNsb3RzICgyKQorIwkgcHJlc2VudCBv biB0aGUgb2xkIGNsdXN0ZXIKKyRuZXdfcHVibGlzaGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNx bC5jb25mJywgIm1heF9yZXBsaWNhdGlvbl9zbG90cyA9IDEiKTsKKworIyAzLiB3YWxfbGV2ZWwg aXMgc2V0IGNvcnJlY3RseSBvbiB0aGUgbmV3IGNsdXN0ZXIKKyRuZXdfcHVibGlzaGVyLT5hcHBl bmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgIndhbF9sZXZlbCA9ICdsb2dpY2FsJyIpOworCisj IHBnX3VwZ3JhZGUgd2lsbCBmYWlsIGJlY2F1c2UgdGhlIG5ldyBjbHVzdGVyIGhhcyBpbnN1ZmZp Y2llbnQgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzCitjb21tYW5kX2ZhaWxzKAorCVsKKwkJJ3BnX3Vw Z3JhZGUnLCAnLS1uby1zeW5jJywKKwkJJy1kJywgICAgICAgICAkb2xkX3B1Ymxpc2hlci0+ZGF0 YV9kaXIsCisJCSctRCcsICAgICAgICAgJG5ld19wdWJsaXNoZXItPmRhdGFfZGlyLAorCQknLWIn LCAgICAgICAgICRiaW5kaXIsCisJCSctQicsICAgICAgICAgJGJpbmRpciwKKwkJJy1zJywgICAg ICAgICAkbmV3X3B1Ymxpc2hlci0+aG9zdCwKKwkJJy1wJywgICAgICAgICAkb2xkX3B1Ymxpc2hl ci0+cG9ydCwKKwkJJy1QJywgICAgICAgICAkbmV3X3B1Ymxpc2hlci0+cG9ydCwKKwkJJG1vZGUs CisJXSwKKwkncnVuIG9mIHBnX3VwZ3JhZGUgd2hlcmUgdGhlIG5ldyBjbHVzdGVyIGhhcyBpbnN1 ZmZpY2llbnQgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzJyk7CitvayggLWQgJG5ld19wdWJsaXNoZXIt PmRhdGFfZGlyIC4gIi9wZ191cGdyYWRlX291dHB1dC5kIiwKKwkicGdfdXBncmFkZV9vdXRwdXQu ZC8gbm90IHJlbW92ZWQgYWZ0ZXIgcGdfdXBncmFkZSBmYWlsdXJlIik7CisKKyMgQ2xlYW4gdXAK K3JtdHJlZSgkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIgLiAiL3BnX3VwZ3JhZGVfb3V0cHV0LmQi KTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVEVTVDogU3VjY2Vzc2Z1 bCB1cGdyYWRlCisKKyMgUHJlcGFyYXRpb25zIGZvciB0aGUgc3Vic2VxdWVudCB0ZXN0OgorIyAx LiBSZW1vdmUgdGhlIHNsb3QgJ3Rlc3Rfc2xvdDInLCBsZWF2aW5nIG9ubHkgMSBzbG90IHJlbWFp bmluZyBvbiB0aGUgb2xkCisjCSBjbHVzdGVyLCBzbyB0aGUgbmV3IGNsdXN0ZXIgY29uZmlnICBt YXhfcmVwbGljYXRpb25fc2xvdHM9MSB3aWxsIG5vdyBiZQorIwkgZW5vdWdoLgorJG9sZF9wdWJs aXNoZXItPnN0YXJ0OworJG9sZF9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJT RUxFQ1QgKiBGUk9NIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgndGVzdF9zbG90MicpOyIKKyk7 CisKKyMgMi4gQ29uc3VtZSBXQUwgcmVjb3JkcworJG9sZF9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2No YW5nZXMoJ3Rlc3Rfc2xvdDEnLCBOVUxMLCBOVUxMKSIKKyk7Ciskb2xkX3B1Ymxpc2hlci0+c3Rv cDsKKworIyBBY3R1YWwgcnVuLCBzdWNjZXNzZnVsIHVwZ3JhZGUgaXMgZXhwZWN0ZWQKK2NvbW1h bmRfb2soCisJWworCQkncGdfdXBncmFkZScsICctLW5vLXN5bmMnLAorCQknLWQnLCAgICAgICAg ICRvbGRfcHVibGlzaGVyLT5kYXRhX2RpciwKKwkJJy1EJywgICAgICAgICAkbmV3X3B1Ymxpc2hl ci0+ZGF0YV9kaXIsCisJCSctYicsICAgICAgICAgJGJpbmRpciwKKwkJJy1CJywgICAgICAgICAk YmluZGlyLAorCQknLXMnLCAgICAgICAgICRuZXdfcHVibGlzaGVyLT5ob3N0LAorCQknLXAnLCAg ICAgICAgICRvbGRfcHVibGlzaGVyLT5wb3J0LAorCQknLVAnLCAgICAgICAgICRuZXdfcHVibGlz aGVyLT5wb3J0LAorCQkkbW9kZSwKKwldLAorCSdydW4gb2YgcGdfdXBncmFkZSBvZiBvbGQgY2x1 c3RlcicpOworb2soICEtZCAkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIgLiAiL3BnX3VwZ3JhZGVf b3V0cHV0LmQiLAorCSJwZ191cGdyYWRlX291dHB1dC5kLyByZW1vdmVkIGFmdGVyIHBnX3VwZ3Jh ZGUgc3VjY2VzcyIpOworCisjIENoZWNrIHRoYXQgdGhlIHNsb3QgJ3Rlc3Rfc2xvdDEnIGhhcyBt aWdyYXRlZCB0byB0aGUgbmV3IGNsdXN0ZXIKKyRuZXdfcHVibGlzaGVyLT5zdGFydDsKK215ICRy ZXN1bHQgPSAkbmV3X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBz bG90X25hbWUsIHR3b19waGFzZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIik7CitpcygkcmVz dWx0LCBxcSh0ZXN0X3Nsb3QxfHQpLCAnY2hlY2sgdGhlIHNsb3QgZXhpc3RzIG9uIG5ldyBjbHVz dGVyJyk7CiskbmV3X3B1Ymxpc2hlci0+c3RvcDsKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDQ5YTMzYzAzODcuLjMxMDQ1NmUwMzIgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CkBAIC0xNTAxLDcgKzE1MDEsMTAgQEAgTG9naWNhbFJlcFR1cGxlRGF0 YQogTG9naWNhbFJlcFR5cAogTG9naWNhbFJlcFdvcmtlcgogTG9naWNhbFJlcFdvcmtlclR5cGUK K0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RJbmZvCiBMb2dpY2FsUmV3cml0ZU1hcHBpbmdEYXRhCitM b2dpY2FsU2xvdEluZm8KK0xvZ2ljYWxTbG90SW5mb0FycgogTG9naWNhbFRhcGUKIExvZ2ljYWxU YXBlU2V0CiBMc25SZWFkUXVldWUKLS0gCjIuMjcuMAoK --_004_TYAPR01MB586667E5DEB15F66BB0E880AF5E0ATYAPR01MB5866jpnp_ Content-Type: application/octet-stream; name="v27-0003-pg_upgrade-Add-check-function-for-logical-replic.patch" Content-Description: v27-0003-pg_upgrade-Add-check-function-for-logical-replic.patch Content-Disposition: attachment; filename="v27-0003-pg_upgrade-Add-check-function-for-logical-replic.patch"; size=13047; creation-date="Mon, 28 Aug 2023 12:40:44 GMT"; modification-date="Mon, 28 Aug 2023 13:01:46 GMT" Content-Transfer-Encoding: base64 RnJvbSAwZmM3ZjFkYjI4ZDQ3ZWJmMDI1OTgwZDhlZGZkMGY2ZWIwMGVlYWZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBGcmksIDE4IEF1ZyAyMDIzIDExOjU3OjM3ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjcgMy8zXSBwZ191cGdyYWRlOiBBZGQgY2hlY2sgZnVuY3Rpb24gZm9yIGxvZ2ljYWwKIHJl cGxpY2F0aW9uIHNsb3RzCgpUbyBwcmV2ZW50IGRhdGEgbG9zcywgcGdfdXBncmFkZSB3aWxsIGZh aWwgaWYgdGhlIG9sZCBub2RlIGhhcyBzbG90cyB3aXRoIHRoZQpzdGF0dXMgJ2xvc3QnLCBvciB3 aXRoIHVuY29uc3VtZWQgV0FMIHJlY29yZHMuCgpBdXRob3I6IEhheWF0byBLdXJvZGEKUmV2aWV3 ZWQtYnk6IFdhbmcgV2VpLCBWaWduZXNoIEMsIFBldGVyIFNtaXRoLCBIb3UgWmhpamllCi0tLQog c3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMgICAgICAgICAgICAgICAgICAgIHwgMTEzICsrKysr KysrKysrKysrKysrKwogc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRyb2xkYXRhLmMgICAgICAgICAg ICAgIHwgIDM3ICsrKysrKwogc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oICAgICAgICAg ICAgICAgfCAgIDIgKwogLi4uL3QvMDAzX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMucGwgICAg ICAgIHwgIDkxICsrKysrKysrKysrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDIzNyBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvY2hl Y2suYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCmluZGV4IGU3YzgyZjE5YjAuLjRjNmE4 OWE4NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCisrKyBiL3NyYy9i aW4vcGdfdXBncmFkZS9jaGVjay5jCkBAIC05LDYgKzksNyBAQAogCiAjaW5jbHVkZSAicG9zdGdy ZXNfZmUuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfYXV0aGlkX2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2lu Y2x1ZGUgImZlX3V0aWxzL3N0cmluZ191dGlscy5oIgpAQCAtMzEsNiArMzIsOCBAQCBzdGF0aWMg dm9pZCBjaGVja19mb3JfcGdfcm9sZV9wcmVmaXgoQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwogc3Rh dGljIHZvaWQgY2hlY2tfZm9yX25ld190YWJsZXNwYWNlX2Rpcih2b2lkKTsKIHN0YXRpYyB2b2lk IGNoZWNrX2Zvcl91c2VyX2RlZmluZWRfZW5jb2RpbmdfY29udmVyc2lvbnMoQ2x1c3RlckluZm8g KmNsdXN0ZXIpOwogc3RhdGljIHZvaWQgY2hlY2tfbmV3X2NsdXN0ZXJfbG9naWNhbF9yZXBsaWNh dGlvbl9zbG90cyh2b2lkKTsKK3N0YXRpYyB2b2lkIGNoZWNrX29sZF9jbHVzdGVyX2Zvcl9jb25m aXJtZWRfZmx1c2hfbHNuKHZvaWQpOworc3RhdGljIHZvaWQgY2hlY2tfb2xkX2NsdXN0ZXJfZm9y X2xvc3Rfc2xvdHModm9pZCk7CiAKIAogLyoKQEAgLTEwOCw2ICsxMTEsMjQgQEAgY2hlY2tfYW5k X2R1bXBfb2xkX2NsdXN0ZXIoYm9vbCBsaXZlX2NoZWNrKQogCWNoZWNrX2Zvcl9yZWdfZGF0YV90 eXBlX3VzYWdlKCZvbGRfY2x1c3Rlcik7CiAJY2hlY2tfZm9yX2lzbl9hbmRfaW50OF9wYXNzaW5n X21pc21hdGNoKCZvbGRfY2x1c3Rlcik7CiAKKwkvKgorCSAqIExvZ2ljYWwgcmVwbGljYXRpb24g c2xvdHMgY2FuIGJlIG1pZ3JhdGVkIHNpbmNlIFBHMTcuIFNlZSBjb21tZW50cyBhdG9wCisJICog Z2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcygpLgorCSAqLworCWlmIChHRVRfTUFK T1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpvcl92ZXJzaW9uKSA+PSAxNzAwKQorCXsKKwkJY2hl Y2tfb2xkX2NsdXN0ZXJfZm9yX2xvc3Rfc2xvdHMoKTsKKworCQkvKgorCQkgKiBEbyBhZGRpdGlv bmFsIGNoZWNrcyBpZiBhIGxpdmUgY2hlY2sgaXMgbm90IHJlcXVpcmVkLiBUaGlzIHJlcXVpcmVz CisJCSAqIHRoYXQgY29uZmlybWVkX2ZsdXNoX2xzbiBvZiBhbGwgdGhlIHNsb3RzIGlzIHRoZSBz YW1lIGFzIHRoZSBsYXRlc3QKKwkJICogY2hlY2twb2ludCBsb2NhdGlvbiwgYnV0IGl0IHdvdWxk IGJlIHNhdGlzZmllZCBvbmx5IHdoZW4gdGhlIHNlcnZlcgorCQkgKiBoYXMgYmVlbiBzaHV0IGRv d24uCisJCSAqLworCQlpZiAoIWxpdmVfY2hlY2spCisJCQljaGVja19vbGRfY2x1c3Rlcl9mb3Jf Y29uZmlybWVkX2ZsdXNoX2xzbigpOworCX0KKwogCS8qCiAJICogUEcgMTYgaW5jcmVhc2VkIHRo ZSBzaXplIG9mIHRoZSAnYWNsaXRlbScgdHlwZSwgd2hpY2ggYnJlYWtzIHRoZQogCSAqIG9uLWRp c2sgZm9ybWF0IGZvciBleGlzdGluZyBkYXRhLgpAQCAtMTQ2OSwzICsxNDkwLDk1IEBAIGNoZWNr X25ld19jbHVzdGVyX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHModm9pZCkKIAogCWNoZWNrX29r KCk7CiB9CisKKy8qCisgKiBWZXJpZnkgdGhhdCBhbGwgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90 cyBhcmUgdXNhYmxlLgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfb2xkX2NsdXN0ZXJfZm9yX2xv c3Rfc2xvdHModm9pZCkKK3sKKwlpbnQJCQlpLAorCQkJCW50dXBzLAorCQkJCWlfc2xvdG5hbWU7 CisJUEdyZXN1bHQgICAqcmVzOworCURiSW5mbwkgICAqYWN0aXZlX2RiID0gJm9sZF9jbHVzdGVy LmRiYXJyLmRic1swXTsKKwlQR2Nvbm4JICAgKmNvbm47CisKKwkvKiBRdWljayBleGl0IGlmIHRo ZSBjbHVzdGVyIGRvZXMgbm90IGhhdmUgbG9naWNhbCBzbG90cy4gKi8KKwlpZiAoY291bnRfb2xk X2NsdXN0ZXJfbG9naWNhbF9zbG90cygpID09IDApCisJCXJldHVybjsKKworCWNvbm4gPSBjb25u ZWN0VG9TZXJ2ZXIoJm9sZF9jbHVzdGVyLCBhY3RpdmVfZGItPmRiX25hbWUpOworCisJcHJlcF9z dGF0dXMoIkNoZWNraW5nIHdhbF9zdGF0dXMgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMi KTsKKworCS8qIENoZWNrIHRoZXJlIGFyZSBubyBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIHdp dGggYSAnbG9zdCcgc3RhdGUuICovCisJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwKKwkJ CQkJCQkiU0VMRUNUIHNsb3RfbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xv dHMgIgorCQkJCQkJCSJXSEVSRSB3YWxfc3RhdHVzID0gJ2xvc3QnIEFORCAiCisJCQkJCQkJInRl bXBvcmFyeSBJUyBGQUxTRTsiKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisJaV9zbG90 bmFtZSA9IFBRZm51bWJlcihyZXMsICJzbG90X25hbWUiKTsKKworCWZvciAoaSA9IDA7IGkgPCBu dHVwczsgaSsrKQorCQlwZ19sb2coUEdfV0FSTklORywKKwkJCSAgICJcbldBUk5JTkc6IGxvZ2lj YWwgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaXMgaW4gJ2xvc3QnIHN0YXRlLiIsCisJCQkgICBQ UWdldHZhbHVlKHJlcywgaSwgaV9zbG90bmFtZSkpOworCisJUFFjbGVhcihyZXMpOworCVBRZmlu aXNoKGNvbm4pOworCisJaWYgKG50dXBzKQorCQlwZ19mYXRhbCgiT25lIG9yIG1vcmUgbG9naWNh bCByZXBsaWNhdGlvbiBzbG90cyB3aXRoIGEgc3RhdGUgb2YgJ2xvc3QnIHdlcmUgZGV0ZWN0ZWQu Iik7CisKKwljaGVja19vaygpOworfQorCisvKgorICogVmVyaWZ5IHRoYXQgYWxsIGxvZ2ljYWwg cmVwbGljYXRpb24gc2xvdHMgY29uc3VtZWQgYWxsIFdBTHMsIGV4Y2VwdCBhCisgKiBDSEVDS1BP SU5UX1NIVVRET1dOIHJlY29yZC4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX29sZF9jbHVzdGVy X2Zvcl9jb25maXJtZWRfZmx1c2hfbHNuKHZvaWQpCit7CisJaW50CQkJaSwKKwkJCQludHVwcywK KwkJCQlpX3Nsb3RuYW1lOworCVBHcmVzdWx0ICAgKnJlczsKKwlEYkluZm8JICAgKmFjdGl2ZV9k YiA9ICZvbGRfY2x1c3Rlci5kYmFyci5kYnNbMF07CisJUEdjb25uCSAgICpjb25uOworCisJLyog UXVpY2sgZXhpdCBpZiB0aGUgY2x1c3RlciBkb2VzIG5vdCBoYXZlIGxvZ2ljYWwgc2xvdHMuICov CisJaWYgKGNvdW50X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdHMoKSA9PSAwKQorCQlyZXR1cm47 CisKKwljb25uID0gY29ubmVjdFRvU2VydmVyKCZvbGRfY2x1c3RlciwgYWN0aXZlX2RiLT5kYl9u YW1lKTsKKworCXByZXBfc3RhdHVzKCJDaGVja2luZyBjb25maXJtZWRfZmx1c2hfbHNuIGZvciBs b2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIik7CisKKwkvKgorCSAqIENoZWNrIHRoYXQgYWxsIGxv Z2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaGF2ZSByZWFjaGVkIHRoZSBsYXRlc3QKKwkgKiBjaGVj a3BvaW50IHBvc2l0aW9uIChTSFVURE9XTl9DSEVDS1BPSU5UIHJlY29yZCkuCisJICovCisJcmVz ID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwKKwkJCQkJCQkiU0VMRUNUIHNsb3RfbmFtZSBGUk9N IHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMgIgorCQkJCQkJCSJXSEVSRSBjb25maXJt ZWRfZmx1c2hfbHNuICE9ICclWC8lWCcgQU5EIHRlbXBvcmFyeSBJUyBGQUxTRTsiLAorCQkJCQkJ CUxTTl9GT1JNQVRfQVJHUyhvbGRfY2x1c3Rlci5jb250cm9sZGF0YS5jaGtwbnRfbGF0ZXN0KSk7 CisKKwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCWlfc2xvdG5hbWUgPSBQUWZudW1iZXIocmVz LCAic2xvdF9uYW1lIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwkJcGdfbG9n KFBHX1dBUk5JTkcsCisJCQkJIlxuV0FSTklORzogbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwi JXNcIiBoYXMgbm90IGNvbnN1bWVkIFdBTHMgeWV0IiwKKwkJCQlQUWdldHZhbHVlKHJlcywgaSwg aV9zbG90bmFtZSkpOworCisJUFFjbGVhcihyZXMpOworCVBRZmluaXNoKGNvbm4pOworCisJaWYg KG50dXBzKQorCQlwZ19mYXRhbCgiT25lIG9yIG1vcmUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90 cyBzdGlsbCBoYXZlIHVuY29uc3VtZWQgV0FMIHJlY29yZHMuIik7CisKKwljaGVja19vaygpOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2NvbnRyb2xkYXRhLmMgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYwppbmRleCA0YmViNjVhYjIyLi5hZDlkMGMyNzAyIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYworKysgYi9zcmMvYmlu L3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYwpAQCAtMTY5LDYgKzE2OSw0MyBAQCBnZXRfY29udHJv bF9kYXRhKENsdXN0ZXJJbmZvICpjbHVzdGVyLCBib29sIGxpdmVfY2hlY2spCiAJCQkJfQogCQkJ CWdvdF9jbHVzdGVyX3N0YXRlID0gdHJ1ZTsKIAkJCX0KKworCQkJZWxzZSBpZiAoKHAgPSBzdHJz dHIoYnVmaW4sICJMYXRlc3QgY2hlY2twb2ludCBsb2NhdGlvbjoiKSkgIT0gTlVMTCkKKwkJCXsK KwkJCQkvKgorCQkJCSAqIFJlYWQgdGhlIGxhdGVzdCBjaGVja3BvaW50IGxvY2F0aW9uIGlmIHRo ZSBjbHVzdGVyIGlzIFBHMTcKKwkJCQkgKiBvciBsYXRlci4gVGhpcyBpcyB1c2VkIGZvciB1cGdy YWRpbmcgbG9naWNhbCByZXBsaWNhdGlvbgorCQkJCSAqIHNsb3RzLgorCQkJCSAqLworCQkJCWlm IChHRVRfTUFKT1JfVkVSU0lPTihjbHVzdGVyLT5tYWpvcl92ZXJzaW9uKSA+PSAxNzAwKQorCQkJ CXsKKwkJCQkJY2hhciAqc2xhc2ggPSBOVUxMOworCQkJCQl1aW50MzIgdXBwZXJfbHNuLCBsb3dl cl9sc247CisKKwkJCQkJcCA9IHN0cmNocihwLCAnOicpOworCisJCQkJCWlmIChwID09IE5VTEwg fHwgc3RybGVuKHApIDw9IDEpCisJCQkJCQlwZ19mYXRhbCgiJWQ6IGNvbnRyb2xkYXRhIHJldHJp ZXZhbCBwcm9ibGVtIiwgX19MSU5FX18pOworCisJCQkJCXArKzsJCQkvKiByZW1vdmUgJzonIGNo YXIgKi8KKworCQkJCQlwID0gc3RycGJyayhwLCAiMDEyMzQ1Njc4OTBBQkNERUYiKTsKKworCQkJ CQlpZiAocCA9PSBOVUxMIHx8IHN0cmxlbihwKSA8PSAxKQorCQkJCQkJcGdfZmF0YWwoIiVkOiBj b250cm9sZGF0YSByZXRyaWV2YWwgcHJvYmxlbSIsIF9fTElORV9fKTsKKworCQkJCQkvKgorCQkJ CQkgKiBUaGUgdXBwZXIgYW5kIGxvd2VyIHBhcnQgb2YgTFNOIG11c3QgYmUgcmVhZCBzZXBhcmF0 ZWx5CisJCQkJCSAqIGJlY2F1c2UgaXQgaXMgc3RvcmVkIGFzIGluICVYLyVYIGZvcm1hdC4KKwkJ CQkJICovCisJCQkJCXVwcGVyX2xzbiA9IHN0cnRvdWwocCwgJnNsYXNoLCAxNik7CisJCQkJCWxv d2VyX2xzbiA9IHN0cnRvdWwoKytzbGFzaCwgTlVMTCwgMTYpOworCisJCQkJCS8qIEFuZCBjb21i aW5lIHRoZW0gKi8KKwkJCQkJY2x1c3Rlci0+Y29udHJvbGRhdGEuY2hrcG50X2xhdGVzdCA9CisJ CQkJCQkJCQkJKCh1aW50NjQpIHVwcGVyX2xzbiA8PCAzMikgfCBsb3dlcl9sc247CisJCQkJfQor CQkJfQogCQl9CiAKIAkJcmMgPSBwY2xvc2Uob3V0cHV0KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfdXBncmFkZS9pbmZvLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCmluZGV4IGE3OWM4 MzRmYjUuLjY1ZmNiMzk2YzMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMK KysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYwpAQCAtNjYzLDggKzY2Myw4IEBAIGdldF9v bGRfY2x1c3Rlcl9sb2dpY2FsX3Nsb3RfaW5mb3NfcGVyX2RiKERiSW5mbyAqZGJpbmZvKQogICog Tm90ZTogVGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBkbyBhbnl0aGluZyBpZiB0aGUgb2xkIGNsdXN0 ZXIgaXMgcHJlLVBHIDE3LgogICogVGhlIGxvZ2ljYWwgc2xvdHMgYXJlIG5vdCBzYXZlZCBhdCBz aHV0ZG93biwgYW5kIHRoZSBjb25maXJtZWRfZmx1c2hfbHNuIGlzCiAgKiBhbHdheXMgYmVoaW5k IHRoZSBTSFVURE9XTl9DSEVDS1BPSU5UIHJlY29yZC4gU3Vic2VxdWVudCBjaGVja3MgZG9uZSBp bgotICogY2hlY2tfZm9yX2NvbmZpcm1lZF9mbHVzaF9sc24oKSB3b3VsZCByYWlzZSBhIEZBVEFM IGVycm9yIGlmIHN1Y2ggc2xvdHMgYXJlCi0gKiBpbmNsdWRlZC4KKyAqIGNoZWNrX29sZF9jbHVz dGVyX2Zvcl9jb25maXJtZWRfZmx1c2hfbHNuKCkgd291bGQgcmFpc2UgYSBGQVRBTCBlcnJvciBp ZgorICogc3VjaCBzbG90cyBhcmUgaW5jbHVkZWQuCiAgKi8KIHZvaWQKIGdldF9vbGRfY2x1c3Rl cl9sb2dpY2FsX3Nsb3RfaW5mb3Modm9pZCkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCmluZGV4IGRh ZTkyZWY2YzAuLmU3MjMxOGY1MDAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191 cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaApAQCAtMTAsNiAr MTAsNyBAQAogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KIAor I2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgImNvbW1vbi9yZWxwYXRoLmgi CiAjaW5jbHVkZSAibGlicHEtZmUuaCIKIApAQCAtMjQyLDYgKzI0Myw3IEBAIHR5cGVkZWYgc3Ry dWN0CiAJYm9vbAkJZGF0ZV9pc19pbnQ7CiAJYm9vbAkJZmxvYXQ4X3Bhc3NfYnlfdmFsdWU7CiAJ dWludDMyCQlkYXRhX2NoZWNrc3VtX3ZlcnNpb247CisJWExvZ1JlY1B0cgljaGtwbnRfbGF0ZXN0 OwogfSBDb250cm9sRGF0YTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS90 LzAwM19sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RzLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3Qv MDAzX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHMucGwKaW5kZXggYWU4N2MzMzcwOC4uNjQwOTY0 YzRlMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfcmVwbGlj YXRpb25fc2xvdHMucGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdHMucGwKQEAgLTIyLDYgKzIyLDEwIEBAICRvbGRfcHVibGlzaGVyLT5pbml0 KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKIG15ICRuZXdfcHVibGlzaGVyID0gUG9z dGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCduZXdfcHVibGlzaGVyJyk7CiAkbmV3X3B1Ymxp c2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdyZXBsaWNhJyk7CiAKKyMgSW5pdGlhbGl6 ZSBzdWJzY3JpYmVyIGNsdXN0ZXIKK215ICRzdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3Ry ZWFtaW5nID0+ICdsb2dpY2FsJyk7CisKIG15ICRiaW5kaXIgPSAkbmV3X3B1Ymxpc2hlci0+Y29u ZmlnX2RhdGEoJy0tYmluZGlyJyk7CiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CkBAIC02NSwxMyArNjksMTkgQEAgJG9sZF9wdWJsaXNoZXItPnN0YXJ0OwogJG9sZF9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdCgndGVzdF9zbG90MicsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIHRydWUp OyIKICk7CisKKyMgMi4gQ29uc3VtZSBXQUwgcmVjb3JkcyB0byBhdm9pZCBhbm90aGVyIHR5cGUg b2YgdXBncmFkZSBmYWlsdXJlLiBJdCB3aWxsIGJlCisjCSB0ZXN0ZWQgaW4gc3Vic2VxdWVudCBj YXNlcy4KKyRvbGRfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNv dW50KCopIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCd0ZXN0X3Nsb3QxJywgTlVM TCwgTlVMTCk7IgorKTsKICRvbGRfcHVibGlzaGVyLT5zdG9wOwogCi0jIDIuIG1heF9yZXBsaWNh dGlvbl9zbG90cyBpcyBzZXQgdG8gc21hbGxlciB0aGFuIHRoZSBudW1iZXIgb2Ygc2xvdHMgKDIp CisjIDMuIG1heF9yZXBsaWNhdGlvbl9zbG90cyBpcyBzZXQgdG8gc21hbGxlciB0aGFuIHRoZSBu dW1iZXIgb2Ygc2xvdHMgKDIpCiAjCSBwcmVzZW50IG9uIHRoZSBvbGQgY2x1c3RlcgogJG5ld19w dWJsaXNoZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAibWF4X3JlcGxpY2F0aW9u X3Nsb3RzID0gMSIpOwogCi0jIDMuIHdhbF9sZXZlbCBpcyBzZXQgY29ycmVjdGx5IG9uIHRoZSBu ZXcgY2x1c3RlcgorIyA0LiB3YWxfbGV2ZWwgaXMgc2V0IGNvcnJlY3RseSBvbiB0aGUgbmV3IGNs dXN0ZXIKICRuZXdfcHVibGlzaGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgIndh bF9sZXZlbCA9ICdsb2dpY2FsJyIpOwogCiAjIHBnX3VwZ3JhZGUgd2lsbCBmYWlsIGJlY2F1c2Ug dGhlIG5ldyBjbHVzdGVyIGhhcyBpbnN1ZmZpY2llbnQgbWF4X3JlcGxpY2F0aW9uX3Nsb3RzCkBA IC05NSw3ICsxMDUsNyBAQCBvayggLWQgJG5ld19wdWJsaXNoZXItPmRhdGFfZGlyIC4gIi9wZ191 cGdyYWRlX291dHB1dC5kIiwKIHJtdHJlZSgkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIgLiAiL3Bn X3VwZ3JhZGVfb3V0cHV0LmQiKTsKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSMgVEVTVDogU3VjY2Vzc2Z1bCB1cGdyYWRlCisjIFRFU1Q6IENvbmZpcm0gcGdfdXBncmFkZSBm YWlscyB3aGVuIHRoZSBzbG90IHN0aWxsIGhhcyB1bmNvbnN1bWVkIFdBTCByZWNvcmRzCiAKICMg UHJlcGFyYXRpb25zIGZvciB0aGUgc3Vic2VxdWVudCB0ZXN0OgogIyAxLiBSZW1vdmUgdGhlIHNs b3QgJ3Rlc3Rfc2xvdDInLCBsZWF2aW5nIG9ubHkgMSBzbG90IHJlbWFpbmluZyBvbiB0aGUgb2xk CkBAIC0xMDYsMTAgKzExNiw1NyBAQCAkb2xkX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCiAJIlNFTEVDVCAqIEZST00gcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCd0ZXN0X3Nsb3Qy Jyk7IgogKTsKIAotIyAyLiBDb25zdW1lIFdBTCByZWNvcmRzCisjIDIuIEdlbmVyYXRlIGV4dHJh IFdBTCByZWNvcmRzLiBCZWNhdXNlIHRoZXNlIFdBTCByZWNvcmRzIGRvIG5vdCBnZXQgY29uc3Vt ZWQKKyMJIGl0IHdpbGwgY2F1c2UgdGhlIHVwY29taW5nIHBnX3VwZ3JhZGUgdGVzdCB0byBmYWls LgorJG9sZF9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUg dGJsIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIGE7IgorKTsKKyRvbGRfcHVi bGlzaGVyLT5zdG9wOworCisjIHBnX3VwZ3JhZGUgd2lsbCBmYWlsIGJlY2F1c2UgdGhlIHNsb3Qg c3RpbGwgaGFzIHVuY29uc3VtZWQgV0FMIHJlY29yZHMKK2NvbW1hbmRfZmFpbHMoCisJWworCQkn cGdfdXBncmFkZScsICctLW5vLXN5bmMnLAorCQknLWQnLCAgICAgICAgICRvbGRfcHVibGlzaGVy LT5kYXRhX2RpciwKKwkJJy1EJywgICAgICAgICAkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIsCisJ CSctYicsICAgICAgICAgJGJpbmRpciwKKwkJJy1CJywgICAgICAgICAkYmluZGlyLAorCQknLXMn LCAgICAgICAgICRuZXdfcHVibGlzaGVyLT5ob3N0LAorCQknLXAnLCAgICAgICAgICRvbGRfcHVi bGlzaGVyLT5wb3J0LAorCQknLVAnLCAgICAgICAgICRuZXdfcHVibGlzaGVyLT5wb3J0LAorCQkk bW9kZSwKKwldLAorCSdydW4gb2YgcGdfdXBncmFkZSBvZiBvbGQgY2x1c3RlciB3aXRoIGlkbGUg cmVwbGljYXRpb24gc2xvdHMnKTsKK29rKCAtZCAkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIgLiAi L3BnX3VwZ3JhZGVfb3V0cHV0LmQiLAorCSJwZ191cGdyYWRlX291dHB1dC5kLyBub3QgcmVtb3Zl ZCBhZnRlciBwZ191cGdyYWRlIGZhaWx1cmUiKTsKKworIyBDbGVhbiB1cAorcm10cmVlKCRuZXdf cHVibGlzaGVyLT5kYXRhX2RpciAuICIvcGdfdXBncmFkZV9vdXRwdXQuZCIpOworIyBSZW1vdmUg dGhlIHJlbWFpbmVkIHNsb3QKKyRvbGRfcHVibGlzaGVyLT5zdGFydDsKKyRvbGRfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSBwZ19kcm9wX3JlcGxpY2F0 aW9uX3Nsb3QoJ3Rlc3Rfc2xvdDEnKTsiCispOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIyBURVNUOiBTdWNjZXNzZnVsIHVwZ3JhZGUKKworIyBQcmVwYXJhdGlvbnMgZm9y IHRoZSBzdWJzZXF1ZW50IHRlc3Q6CisjIDEuIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215 ICRvbGRfY29ubnN0ciA9ICRvbGRfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdy ZXMnOwogJG9sZF9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3Rlc3Rfc2xvdDEnLCBOVUxM LCBOVUxMKSIKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgQUxMIFRBQkxFUzsiCiApOwor JHN1YnNjcmliZXItPnN0YXJ0OworJHN1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMn LCBxcVsKKwlDUkVBVEUgVEFCTEUgdGJsIChhIGludCk7CisJQ1JFQVRFIFNVQlNDUklQVElPTiBz dWIgQ09OTkVDVElPTiAnJG9sZF9jb25uc3RyJyBQVUJMSUNBVElPTiBwdWIgV0lUSCAodHdvX3Bo YXNlID0gJ3RydWUnKQorXSk7Ciskc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5 bmMoJG9sZF9wdWJsaXNoZXIsICdzdWInKTsKKworIyAyLiBUZW1wb3JhcmlseSBkaXNhYmxlIHRo ZSBzdWJzY3JpcHRpb24KKyRzdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVS IFNVQlNDUklQVElPTiBzdWIgRElTQUJMRSIpOwogJG9sZF9wdWJsaXNoZXItPnN0b3A7CiAKICMg QWN0dWFsIHJ1biwgc3VjY2Vzc2Z1bCB1cGdyYWRlIGlzIGV4cGVjdGVkCkBAIC0xMjksMTEgKzE4 NiwyOSBAQCBjb21tYW5kX29rKAogb2soICEtZCAkbmV3X3B1Ymxpc2hlci0+ZGF0YV9kaXIgLiAi L3BnX3VwZ3JhZGVfb3V0cHV0LmQiLAogCSJwZ191cGdyYWRlX291dHB1dC5kLyByZW1vdmVkIGFm dGVyIHBnX3VwZ3JhZGUgc3VjY2VzcyIpOwogCi0jIENoZWNrIHRoYXQgdGhlIHNsb3QgJ3Rlc3Rf c2xvdDEnIGhhcyBtaWdyYXRlZCB0byB0aGUgbmV3IGNsdXN0ZXIKKyMgQ2hlY2sgdGhhdCB0aGUg c2xvdCAnc3ViJyBoYXMgbWlncmF0ZWQgdG8gdGhlIG5ldyBjbHVzdGVyCiAkbmV3X3B1Ymxpc2hl ci0+c3RhcnQ7CiBteSAkcmVzdWx0ID0gJG5ld19wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAogCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhhc2UgRlJPTSBwZ19yZXBsaWNhdGlvbl9z bG90cyIpOwotaXMoJHJlc3VsdCwgcXEodGVzdF9zbG90MXx0KSwgJ2NoZWNrIHRoZSBzbG90IGV4 aXN0cyBvbiBuZXcgY2x1c3RlcicpOwotJG5ld19wdWJsaXNoZXItPnN0b3A7CitpcygkcmVzdWx0 LCBxcShzdWJ8dCksICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXInKTsKKwor IyBVcGRhdGUgdGhlIGNvbm5lY3Rpb24KK215ICRuZXdfY29ubnN0ciA9ICRuZXdfcHVibGlzaGVy LT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJHN1YnNjcmliZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcVsKKwlBTFRFUiBTVUJTQ1JJUFRJT04gc3ViIENPTk5FQ1RJT04gJyRu ZXdfY29ubnN0cic7CisJQUxURVIgU1VCU0NSSVBUSU9OIHN1YiBFTkFCTEU7CitdKTsKKworIyBD aGVjayB3aGV0aGVyIGNoYW5nZXMgb24gdGhlIG5ldyBwdWJsaXNoZXIgZ2V0IHJlcGxpY2F0ZWQg dG8gdGhlIHN1YnNjcmliZXIKKyRuZXdfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiSU5TRVJUIElOVE8gdGJsIFZBTFVFUyAoZ2VuZXJhdGVfc2VyaWVzKDExLCAyMCkpIik7Cisk bmV3X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViJyk7CiskcmVzdWx0ID0gJHN1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gdGJsIik7 CitpcygkcmVzdWx0LCBxcSgyMCksICdjaGVjayBjaGFuZ2VzIGFyZSByZXBsaWNhdGVkIHRvIHRo ZSBzdWJzY3JpYmVyJyk7CisKKyMgQ2xlYW4gdXAKKyRzdWJzY3JpYmVyLT5zdG9wKCk7CiskbmV3 X3B1Ymxpc2hlci0+c3RvcCgpOwogCiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMjcuMAoK --_004_TYAPR01MB586667E5DEB15F66BB0E880AF5E0ATYAPR01MB5866jpnp_--