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 1pIOX0-00054N-Er for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Jan 2023 06:36:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pIOWy-00020y-J5 for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Jan 2023 06:36:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pIOWy-00020p-10 for pgsql-hackers@lists.postgresql.org; Thu, 19 Jan 2023 06:36:12 +0000 Received: from esa3.fujitsucc.c3s2.iphmx.com ([68.232.151.212]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pIOWs-000506-Jd for pgsql-hackers@postgresql.org; Thu, 19 Jan 2023 06:36:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1674110166; x=1705646166; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=YO9XCnHL41hPvdAZI2lvuyogewI0ui9kcuHuheJ9SSw=; b=CJcOUOFzCKj8wSsEhxYiajKwB7UnKmUpuqTrfFJxe9gHE9jomkQcUnkR w/2IIXb4rumbewCFVphpf4b96XlswulBiU1SMhUGHHUNFO50yMet9J+BR 4upp9ep9i6epCKpDtLNVRdD1eRyJD45Deq6JhT0GtABrJPVdCF+IQ5nwU +bcmVpBpou9M/24qKsjx2x9/3cVwsPo5o6z02EqkwoIFV+pMudwId5nP4 5Wje3PFrqo5x5Kklt7C2JUrEcbMOfez8Y4yv/03hjjnE0S/Fp2SJ8PhBX 8rSyg2ZAVSpLq69SpUs+RZWV4+VJ6RRKHn6Cxlx0hj2/J9L7Sr/JqTczJ g==; X-IronPort-AV: E=McAfee;i="6500,9779,10594"; a="82949361" X-IronPort-AV: E=Sophos;i="5.97,228,1669042800"; d="scan'208,223";a="82949361" 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; 19 Jan 2023 15:36:01 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dq3zfww69H8l3cULFbfl4lzsyYcEMY3AAMebcfyktboIJXmoka2QURViHQqPw9hiX6HFWCznXQCjDvp1wz6tjJURIats2kIYfkGss3sGkl/5LQhkGgNpAh1WOOUsMVIZMk6Y6BImJZKK7y8N1J/d2VYGB+8eG6MWYMSicKD54GnoXBLWfRMAP7tQn0kUNkcadfZlvZThGbpaCwfR391jF1XCvWlY9Q4HFYyMzKH+PKH8OKFZiR6y16cZxzPVpUzJABcm96I1DIo4cmSxS0qvPO3Z7s6MLR2IAgHaRg6BSqW48MibnwlFt61K9lJ7Ksl57q1KlEGl0FEw8KGZnbn7wQ== 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=vCIVpj46TGnUAaMwy2UlehD5apQdYTwxUdJrhjZMWiI=; b=ocVzjY6gwxoU9cKTZLpUppxcNHXZSZftT76Ut53cDvkdSLWQUv5RoUz7TLsJ88SfhnqE/mmYj5FKZxZAzQ2JzEtFsUZ+NmVN8DHR4248KcgZoJefBpqBgxJkrQzoelGcYnfGSuNN/ZYx63o2N2/Q5S0wngMZzQE+DNL/97JDtjhGF/xx1aR2Cy3a6j/TrpodxOkL9Y5G+y6DwYxybkipYfhC3dA48TMtlGv6OumPe23g2eHojSbL7c30Un7wqyM9ZGUXdXTsBzIXVHY7gNsMZ2b84Bp+8qC8XicCfg0unKb5czNYkvLBpYsw+HZ1iduAct8LnETqGJ4dy2uUFzs5Fg== 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 TYCPR01MB8373.jpnprd01.prod.outlook.com (2603:1096:400:15f::9) by TY3PR01MB10484.jpnprd01.prod.outlook.com (2603:1096:400:310::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.25; Thu, 19 Jan 2023 06:35:58 +0000 Received: from TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::941f:893d:69b8:e21a]) by TYCPR01MB8373.jpnprd01.prod.outlook.com ([fe80::941f:893d:69b8:e21a%9]) with mapi id 15.20.6002.012; Thu, 19 Jan 2023 06:35:58 +0000 From: "Takamichi Osumi (Fujitsu)" To: 'Peter Smith' CC: vignesh C , Kyotaro Horiguchi , "Hayato Kuroda (Fujitsu)" , "shveta.malik@gmail.com" , "dilipbalaut@gmail.com" , "amit.kapila16@gmail.com" , "euler@eulerto.com" , "m.melihmutlu@gmail.com" , "andres@anarazel.de" , "marcos@f10.com.br" , "pgsql-hackers@postgresql.org" Subject: RE: Time delayed LR (WAS Re: logical replication restrictions) Thread-Topic: Time delayed LR (WAS Re: logical replication restrictions) Thread-Index: AQHY9/SeVGNfJ+eMH0OkVO9Bch6SIa49/p8AgAAf6ACAABrAgIAALyYAgAEoiICAGrgLgIAGnftQgAEcg4CACAUGgIAAVUUAgADhA4CAAJ9SgIAA6ooAgACaBYCAAPtugIAAI30AgAsiVvCAAjbLEIAEQWWAgAGfSACACtcCAIALd3wAgAFMWoCAAC9FAIAA74IAgADRMqCAAoxsgIAFAcUwgAFSZoCAATnAAIAAT5jQ Date: Thu, 19 Jan 2023 06:35:58 +0000 Message-ID: References: <20230112.120338.534662300633460797.horikyota.ntt@gmail.com> 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-01-19T06:35:56Z; 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=74b95faf-e7fe-474e-b1c1-4d9ffdeef671; 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: TYCPR01MB8373:EE_|TY3PR01MB10484:EE_ x-ms-office365-filtering-correlation-id: c7d781c5-6c12-448c-6bc5-08daf9e76ca2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ig2i1MlNBVyHqBR6+E0BoyKs7OSEGtwzWQvBILKkX3e2hAzXlT8/ldzsHGzG0WMSlizgRUx3tCHr3ypcI5wHF1dVSl17h4YvIk0LFpZRoP0cqvsRTAqiY3MwYNzbALoLhi34pIlqpuLDd45NaGJoQZgOTA7n58pjS0S0tQkpMBTDduK2Mg/iu+8uGoG4hYmo7GHgUeId1MJUbcARm3T+RlZs5En7xShumaBQ/nzIcxHLEFziOGZAjFWD1xy5O+xrbPcH8Fe20C6blPjKzdkdp6q63REbBMSr7TtsCMaumpFf0Y3dPLcct69x0uVasoXXNNF1+xaGQwGRe/nd7cx2SF8NLRfDPWUzaV+EhZpp2hnzJWOAtUfUCr0htiqJA5fximfg+99WahefJzfOJ7OhaBGKX6ZhjcQ4b3ujqTTfBuXyDwu3ctqCqNgVtWNTBMjDPqeLcGXcV1np7EbBcC7aURvLczMDfrRcERmsCtAwi8ZeBLv/5vYQLxa1cNKzttIkgHPXVreMsGb/z0zfbfyvxqtQtoGq26p/04Towtyy1mLr5EKp46waDPiVclvPRKSUF5JHMOHe8acuTuvl5XuG+gK1Bq6fCUtaXa/x19kZA4wLY0wqcdfKpRryb7/36w6jARiYj1ZSWW1cvHSRqCPyp9z7ZCtLepXJ4n8Q14U4cnjqfpsJvMRQrJNYwNFwzSnmYgQRdaloq+l+YGeExDYN3z/huFaxIPr7ldroNkTRQY0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB8373.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(366004)(136003)(39860400002)(346002)(1590799012)(451199015)(82960400001)(99936003)(122000001)(38100700002)(33656002)(85182001)(38070700005)(86362001)(8936002)(52536014)(7416002)(5660300002)(41300700001)(53546011)(64756008)(316002)(4326008)(76116006)(66946007)(66446008)(66476007)(66556008)(6916009)(8676002)(2906002)(55016003)(83380400001)(478600001)(7696005)(71200400001)(54906003)(6506007)(186003)(26005)(9686003)(1580799009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?emp0cUtXMVljemw3NVhCbnFpWjI4OWtya3JJVE9zTzY3LzZVU1J2aGQ1?= =?iso-2022-jp?B?RjhVQktVMUxHcWpwNWtGM0FzVzl5REpGWXZEZ2JvTk40SUhYNnplZzNQ?= =?iso-2022-jp?B?U2hodzBRNU1oNFZOaytQcW9zRVRMSXRvOTFDMDFBMWNLZHRaTFNZT2I5?= =?iso-2022-jp?B?THR0T2VyRS9KQUV2Q2QzUVRNb3E5Z0w1OU56TzloM2MvTlBJRHV0QjNo?= =?iso-2022-jp?B?NWovTHQwSjRvdlZuRWtkbVZnS3lieWJ2M1J5d1ZTT0pTdm12YVg5NVhx?= =?iso-2022-jp?B?VHg0TEIyN0pUZ24yQVVxWFJaakl1eFk3WjUveDB2eFFYc0RVNWNaLzdL?= =?iso-2022-jp?B?THJZOWdQTEkwNU5EbElQNDE2UU1DemNwMWxyQ3Ftc29JQjNGME00M0pP?= =?iso-2022-jp?B?L08vYlYvb3Z0WjBwbm4vWGsyMGJDQWZlVVdtRmROYzFNQlNuMU9TWVlj?= =?iso-2022-jp?B?YU9WQy9qMitZRDNKUndDMXFnWkxiSjRDZWxEWGk5NWY0QXdJenpBY1V2?= =?iso-2022-jp?B?dXg5NWNUeFY1ZzFOUVlQZFZjU1U3bGxwOThRdmFpU0p1WXp2RXBQbkZD?= =?iso-2022-jp?B?cTFGc1U3NUpaOFJqU3pnbWxhL3RUbnJvYkVkZFdxU3hnRzRkNC9zMGN6?= =?iso-2022-jp?B?cUZabDJRTVkyS0xOWnZnenkza0QrcUFVUXB1SUVRRWtKa1BKTnNNSjhX?= =?iso-2022-jp?B?QThBdlZmV3VJU0tTSlFEL3FpVHBMZXg4WXUrY3FhN1ljNEFHalRrMjYr?= =?iso-2022-jp?B?elFLd1F3R2dVRWRMbjVVckdGMUh5S1lyVmMvUzJpbmNyZlVLeGNWUkN5?= =?iso-2022-jp?B?LzBPd3RsbVQ1VFE3a0pEb2pybU9SUVZId2RSZ2sreUxjQWZkbENKenRE?= =?iso-2022-jp?B?Rmo5QWlwTmR4eWVhelhJR1VlSzl2TVBkRnJJQ2Z6WEUwVEcxb2o2eW5P?= =?iso-2022-jp?B?dDI5QVF6YTVoOFNlQXhWb0RRWVZzYWNVaGFOS1JZK2ZxM2R3TUZ1dW1p?= =?iso-2022-jp?B?dmtaMko3T1ozK3RmL1R6cEE0YmpaalQxa2RBdWordXRneXNEOWhJMllq?= =?iso-2022-jp?B?aVdIQkp6enJlVE1MSFR6b1JQVnF4TCtGL05lSXE2RFBKNnNLakRnbzVL?= =?iso-2022-jp?B?eFZpQ3NsWnZnMjQ0TjVCZWNnSEJZdTJpZjhFajV3WTJERmY3clU1TFRL?= =?iso-2022-jp?B?RU82UmVzc1VIeWh1VkwxcmU5Y3B6NFVNM1VJclYzY0VzcHBIUWtNTzRT?= =?iso-2022-jp?B?TmJldldVRlpIVU0yalRaekg4anFDTkh0WUgwSDhrQU9zNVdsdkRqL2V4?= =?iso-2022-jp?B?bFQ4U0IvL2RiQXpFTFJySzZaRndpRG1iVmJiamtSSFZrOXVoTThiOXh1?= =?iso-2022-jp?B?LzZqSDZoeVYvTWNhRERpdWw0cnk4eVJkSjM4NWRPNVR6NWtrbWJTekRC?= =?iso-2022-jp?B?cG9EY1g2YkpxeitRUkdkeHdWYm1aQ21yVDBNbHM4SFN4alpoUG1hMnpE?= =?iso-2022-jp?B?YlU5bWUrUnY1TDgrRithUkdJRWJxNjMycGdvV0ZDMSt4Snl1aWFaRllT?= =?iso-2022-jp?B?TDA3K2hPYzk5VUVDeVh0MGtCWlFvaFRLVjA2SVZUUnVaakRCMDBoakVH?= =?iso-2022-jp?B?REcvUndKQ2c4NVlIQjl2b1VmNWpXWkszNDNYdDNSdU5BdmlneVFhWHBB?= =?iso-2022-jp?B?RXhhdVFkeHliSEVYaFlweDNVK1VKb05MSXBZemJIUHlnL2ZaWHVtWVFn?= =?iso-2022-jp?B?YWhmMGp5ZnNvQVhzTXJRZ3V4QXV4eDBPbWJEQm9TTlg2dDRZWTZ2Yzc4?= =?iso-2022-jp?B?L3VTckI2UThDcHIzZXZWaUpjY2NwUVgwNHBSL0JpUkFuek8wYzZsdlgw?= =?iso-2022-jp?B?L3U2MVJJVGkxTTNtVTh3WGJKMi9OY0IzUmVWb1J6MGI1MTVzUFZicHdh?= =?iso-2022-jp?B?bS8yMUZlUDZTcDJnNnQzL3BscGlEWWhoQ2ZxNFh1V3NZemZUWDRxd3FN?= =?iso-2022-jp?B?R3IrbHFzN3puUVpFMG1LVUJCWkgxemdOc1J4WmhYTThwdmNVMTVEREkr?= =?iso-2022-jp?B?Y0JlcjhGYVpsbnprRXpQRG5kUkpIVUdERHNjdENpc3JDQlBlZ1FqRnhZ?= =?iso-2022-jp?B?ZkIwN3ByUkhOM1ZYQkpJZ2RiR3RMRE40UHlWa1d1Z0lycnNTdW5wREJ3?= =?iso-2022-jp?B?MnpGTlJzdkNBNzh5NDRWUENWSjVpa0RDSm1HRlJZVklKSGhEN0hhcmVL?= =?iso-2022-jp?B?amlMeHh3cENsb0dMOUlaakNDMThGZUZCdzJMcnkzZUQxYTJUNmVjZlZu?= =?iso-2022-jp?B?SldBdEZQa08wN0YzKzMvbytNWktTb3BxYVE9PQ==?= Content-Type: multipart/mixed; boundary="_002_TYCPR01MB8373F5162C7A0E6224670CF0EDC49TYCPR01MB8373jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: IrXPjXI0gGf7k6nyiicws+QbNe1IdQZKEfEqLbuOefrNTIq10M1AtJzjdaI4dI2ifbYUCDzX8G+zOUWsT09SrO8trv0dFp8wZZzSAMJnzsKOapmMIWiHW/drTXJJn2Qp1WWexYMXFFXSFvAVxemMlDNd3U4wprI4y0+f8zt/gzA9OE8GaoRro36MH/ooHdX0XICISqJrZfCHJlzxCwjo485wUtY69VFQ5SOR+yK9TG061jQTJmaLGLymmd9L2z2dUPJLTbSa1WhxtBAfmB/UYdoCrGLUK+rDZxmO/hBXl3X80flOw24lcicghAYnFwAH74R2EsPhiHhXaGgbGa2mAUl7zsjFH/jjbGnZNaLzDxChiQOOrTTWzta66bOcLg4ibXOrWN7xvK1yuBTYy8fZrzyGsMVAzHMmDz+avYL5TAaFNAMJd0kumUhfSEflGuRH8fPfRCWhikQKK6c59mxfeSFNKoK2lpxBY7IhA7oo4Nv46jzfMWDWHnKsiA/GvXNmRJxBMiOcTJbSyjcHfUaKUf+EAptcclT3pPUh6MYLiolLSAzahhD7cJS+mWnLkqFQi8Aq1Z59TcdkWlfPDBk9wDYMqbfmc8BosBAruEtC7we7KKELqiRX/sfrf1L1l1KRFQ2ShwrI/9+GKu3kk+OZ8aGRJ5DioL1YKvFmjagWM9I8Z/IxG8lmQDaGdutKqhcFfO59M8c7+eZANUZ9azd157dxVM896iGoyZuaGaV8bCEg0Kg6eFl4uBRCRVyh2Oo6Z7t8EYlLJ7I1q75YNwHn/zl/SYJ9ldWaYdUkZDZ6Lr7hfHKTPpwX7+uw2McV9oBe95P+1AThK5YrQzoKLWQvED+EIrr14QviVuoJFxcBu0K0VNYgiLxoyC6r/Jkh4/NrYGorv127zBxgoyvLqr5W/A== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB8373.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7d781c5-6c12-448c-6bc5-08daf9e76ca2 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jan 2023 06:35:58.1223 (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: wP70zEJENQvu6IQor6mOmNSQLPndIo0J+RSfSIoCpzvoVMCsZguiOUZKaCXbjTsOJYY5OvTFCgdmvP4kVfbDXGAm0R6ZCtnb+FgknPSI4Io= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY3PR01MB10484 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYCPR01MB8373F5162C7A0E6224670CF0EDC49TYCPR01MB8373jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable On Thursday, January 19, 2023 10:49 AM Peter Smith = wrote: > On Wed, Jan 18, 2023 at 6:06 PM Peter Smith > wrote: > > > > Here are my review comments for the latest patch v16-0001. (excluding > > the test code) > > >=20 > And here are some review comments for the v16-0001 test code. Hi, thanks for your review ! > =3D=3D=3D=3D=3D=3D >=20 > src/test/regress/sql/subscription.sql >=20 > 1. General > For all comments >=20 > "time delayed replication" -> "time-delayed replication" maybe is better? Fixed. > ~~~ >=20 > 2. > -- fail - utilizing streaming =3D parallel with time delayed replication = is not > supported. >=20 > For readability please put a blank line before this test. Fixed. > ~~~ >=20 > 3. > -- success -- value without unit is taken as milliseconds >=20 > "value" -> "min_apply_delay value" Fixed. > ~~~ >=20 > 4. > -- success -- interval is converted into ms and stored as integer >=20 > "interval" -> "min_apply_delay interval" >=20 > "integer" -> "an integer" Both are fixed. > ~~~ >=20 > 5. > You could also add another test where min_apply_delay is 0 >=20 > Then the following combination can be confirmed OK -- success create > subscription with (streaming=3Dparallel, min_apply_delay=3D0) This combination is added with the modification for #6. > ~~ >=20 > 6. > -- fail - alter subscription with min_apply_delay should fail when stream= ing =3D > parallel is set. > CREATE SUBSCRIPTION regress_testsub CONNECTION > 'dbname=3Dregress_doesnotexist' PUBLICATION testpub WITH (connect =3D fal= se, > streaming =3D parallel); >=20 > There is another way to do this test without creating a brand-new subscri= ption. > You could just alter the existing subscription like: > ALTER ... SET (min_apply_delay =3D 0) > then ALTER ... SET (parallel =3D streaming) then ALTER ... SET (min_apply= _delay > =3D 123) Fixed. > =3D=3D=3D=3D=3D=3D >=20 > src/test/subscription/t/032_apply_delay.pl >=20 > 7. sub check_apply_delay_log >=20 > my ($node_subscriber, $message, $expected) =3D @_; >=20 > Why pass in the message text? I is always the same so can be hardwired in= this > function, right? Fixed. > ~~~ >=20 > 8. > # Get the delay time in the server log >=20 > "int the server log" -> "from the server log" (?) Fixed. > ~~~ >=20 > 9. > qr/$message: (\d+) ms/ > or die "could not get delayed time"; > my $logged_delay =3D $1; >=20 > # Is it larger than expected? > cmp_ok($logged_delay, '>', $expected, > "The wait time of the apply worker is long enough expectedly" > ); >=20 > 9a. > "could not get delayed time" -> "could not get the apply worker wait time= " >=20 > 9b. > "The wait time of the apply worker is long enough expectedly" -> "The app= ly > worker wait time has expected duration" Both are fixed. > ~~~ >=20 > 10. > sub check_apply_delay_time >=20 >=20 > Maybe a brief explanatory comment for this function is needed to explain = the > unreplicated column c. Added. > ~~~ >=20 > 11. > $node_subscriber->safe_psql('postgres', > "CREATE SUBSCRIPTION tap_sub CONNECTION '$publisher_connstr > application_name=3D$appname' PUBLICATION tap_pub WITH (streaming =3D on, > min_apply_delay =3D '3s')" >=20 >=20 > I think there should be a comment here highlighting that you are setting = up a > subscriber time delay of 3 seconds, and then later you can better describ= e the > parameters for the checking functions... Added a comment for CREATE SUBSCRIPTION command. > e.g. (add this comment) > # verifies that the subscriber lags the publisher by at least 3 seconds > check_apply_delay_time($node_publisher, $node_subscriber, '5', '3'); >=20 > e.g. > # verifies that the subscriber lags the publisher by at least 3 seconds > check_apply_delay_time($node_publisher, $node_subscriber, '8', '3'); Added. > ~~~ >=20 > 12. > # Test whether ALTER SUBSCRIPTION changes the delayed time of the apply > worker # (1 day 1 minute). > $node_subscriber->safe_psql('postgres', > "ALTER SUBSCRIPTION tap_sub SET (min_apply_delay =3D 86460000)" > ); >=20 > Update the comment with another note. > # Note - The extra 1 min is to account for any decoding/network overhead. Okay, added the comment. In general, TAP tests fail if we wait for more than 3 minutes. Then, we should think setting the maximum consumed time more than 3 minutes is safe. For example, if (which should not happen usually, but) we consumed more than 1 minutes between this ALTER SUBSCRIPTION SET and below check_apply_delay_log() then, the test will fail. So made the extra time bigger. > ~~~ >=20 > 13. > # Make sure we have long enough min_apply_delay after the ALTER command > check_apply_delay_log($node_subscriber, "logical replication apply delay"= , > "80000000"); >=20 > IMO the expectation of 1 day (86460000 ms) wait time might be a better nu= mber > for your "expected" value. >=20 > So update the comment/call like this: >=20 > # Make sure the apply worker knows to wait for more than 1 day (86400000 = ms) > check_apply_delay_log($node_subscriber, "logical replication apply delay"= , > "86400000"); Updated the comment and the function call. Kindly have a look at the updated patch v17. Best Regards, Takamichi Osumi --_002_TYCPR01MB8373F5162C7A0E6224670CF0EDC49TYCPR01MB8373jpnp_ Content-Type: application/octet-stream; name="v17-0001-Time-delayed-logical-replication-subscriber.patch" Content-Description: v17-0001-Time-delayed-logical-replication-subscriber.patch Content-Disposition: attachment; filename="v17-0001-Time-delayed-logical-replication-subscriber.patch"; size=82521; creation-date="Thu, 19 Jan 2023 06:34:30 GMT"; modification-date="Thu, 19 Jan 2023 06:34:30 GMT" Content-Transfer-Encoding: base64 RnJvbSA3MWMxMTQzNTUzOGU1Y2Y2ZmFiN2U1MDdmODVkOTFkZTYwMjkwN2ExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthbWljaGkgT3N1bWkgPG9zdW1pLnRha2FtaWNoaUBmdWpp dHN1LmNvbT4KRGF0ZTogVGh1LCAxOSBKYW4gMjAyMyAwNjowOTo1MCArMDAwMApTdWJqZWN0OiBb UEFUQ0ggdjE3XSBUaW1lLWRlbGF5ZWQgbG9naWNhbCByZXBsaWNhdGlvbiBzdWJzY3JpYmVyCgpT aW1pbGFyIHRvIHBoeXNpY2FsIHJlcGxpY2F0aW9uLCBhIHRpbWUtZGVsYXllZCBjb3B5IG9mIHRo ZSBkYXRhIGZvcgpsb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHVzZWZ1bCBmb3Igc29tZSBzY2VuYXJp b3MgKHBhcnRpY3VsYXJseSB0byBmaXgKZXJyb3JzIHRoYXQgbWlnaHQgY2F1c2UgZGF0YSBsb3Nz KS4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhIG5ldyBzdWJzY3JpcHRpb24gcGFyYW1ldGVyIGNh bGxlZCAnbWluX2FwcGx5X2RlbGF5Jy4KCklmIHRoZSBzdWJzY3JpcHRpb24gc2V0cyBtaW5fYXBw bHlfZGVsYXkgcGFyYW1ldGVyLCB0aGUgbG9naWNhbApyZXBsaWNhdGlvbiB3b3JrZXIgd2lsbCBk ZWxheSB0aGUgdHJhbnNhY3Rpb24gY29tbWl0IGZvciBtaW5fYXBwbHlfZGVsYXkKbWlsbGlzZWNv bmRzLgoKVGhlIGRlbGF5IGlzIGNhbGN1bGF0ZWQgYmV0d2VlbiB0aGUgV0FMIHRpbWUgc3RhbXAg YW5kIHRoZSBjdXJyZW50IHRpbWUKb24gdGhlIHN1YnNjcmliZXIuCgpUaGUgZGVsYXkgb2NjdXJz IG9ubHkgb24gV0FMIHJlY29yZHMgZm9yIHRyYW5zYWN0aW9uIGJlZ2lucy4gVGhlIG1haW4KcmVh c29uIGlzIHRvIGF2b2lkIGtlZXBpbmcgYSB0cmFuc2FjdGlvbiBvcGVuIGZvciBhIGxvbmcgdGlt ZS4gUmVndWxhcgphbmQgcHJlcGFyZWQgdHJhbnNhY3Rpb25zIGFyZSBjb3ZlcmVkLiBTdHJlYW1l ZCB0cmFuc2FjdGlvbnMgYXJlIGFsc28KY292ZXJlZC4KClByb2hpYml0IHRoZSBjb21iaW5hdGlv biBvZiB0aGlzIGZlYXR1cmUgYW5kIHBhcmFsbGVsIHN0cmVhbWluZyBtb2RlLgoKQXV0aG9yOiBF dWxlciBUYXZlaXJhCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FCLUpMd1lPWXdM PVhUeUFYS2lINUN0TV9WbThLaktoN2FhaXRDS3ZtQ2g0cnpyNXBRQG1haWwuZ21haWwuY29tCi0t LQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA5ICsK IGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAxMyArKwog ZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgICA3ICsKIGRv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwgICAgICB8ICAgNSArLQogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgICAgIHwgIDU2ICsrKystCiBz cmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgICAgfCAgIDEgKwogc3Jj L2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICA3ICstCiBzcmMv YmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMgICAgICAgfCAgOTIgKysrKysrKyst CiAuLi4vcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFsbGVsd29ya2VyLmMgfCAgIDMgKy0K IHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8IDE2MSArKysr KysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyAgICAgICAgICAg ICB8ICAyOSArKysKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAg ICB8ICAxNSArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8 ICAgOSArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwg ICA0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgICAgfCAg IDMgKwogc3JjL2luY2x1ZGUvZGF0YXR5cGUvdGltZXN0YW1wLmggICAgICAgICAgICAgIHwgICAy ICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oICAgICB8ICAgMiAr LQogc3JjL2luY2x1ZGUvdXRpbHMvdGltZXN0YW1wLmggICAgICAgICAgICAgICAgIHwgICAyICsK IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCAgICB8IDE4MSArKysr KysrKystLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsICAgICAg ICAgfCAgMjQgKysrCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMyX2FwcGx5X2RlbGF5LnBsICAg IHwgMTk1ICsrKysrKysrKysrKysrKysrKwogMjMgZmlsZXMgY2hhbmdlZCwgNzIwIGluc2VydGlv bnMoKyksIDEwMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzJfYXBwbHlfZGVsYXkucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGMxZTQwNDgw NTQuLmJmM2MwNTI0MWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC03ODczLDYgKzc4NzMsMTUgQEAgU0NS QU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2Vh YmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4K IAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3VibWlu YXBwbHlkZWxheTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbGVuZ3RoIG9mIHRpbWUgKG1zKSB0byBkZWxheSB0 aGUgYXBwbGljYXRpb24gb2YgY2hhbmdlcy4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+ c3VibmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggODlk NTNmMmE2NC4uMTNkZDQyMmMyNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNDc1Myw2ICs0NzUzLDE5IEBAIEFO WSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAo IDxyZXBsYWNlYWJsZSBjbGFzcz0iCiAgICAgICAgdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNv bmY8L2ZpbGVuYW1lPiBmaWxlIG9yIG9uIHRoZSBzZXJ2ZXIKICAgICAgICBjb21tYW5kIGxpbmUu CiAgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBGb3IgdGltZS1kZWxheWVkIGxv Z2ljYWwgcmVwbGljYXRpb24gKGkuZS4gd2hlbiB0aGUgc3Vic2NyaXB0aW9uIGlzCisgICAgICAg Y3JlYXRlZCB3aXRoIHBhcmFtZXRlciBtaW5fYXBwbHlfZGVsYXkgPiAwKSwgdGhlIGFwcGx5IHdv cmtlciBzZW5kcyBhCisgICAgICAgU3RhbmRieSBTdGF0dXMgVXBkYXRlIG1lc3NhZ2UgdG8gdGhl IHB1Ymxpc2hlciB3aXRoIGEgcGVyaW9kIG9mCisgICAgICAgPGxpdGVyYWw+d2FsX3JlY2VpdmVy X3N0YXR1c19pbnRlcnZhbDwvbGl0ZXJhbD4uIE1ha2Ugc3VyZSB0byBzZXQKKyAgICAgICA8bGl0 ZXJhbD53YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsPC9saXRlcmFsPiBsZXNzIHRoYW4gdGhl CisgICAgICAgPGxpdGVyYWw+d2FsX3NlbmRlcl90aW1lb3V0PC9saXRlcmFsPiBvbiB0aGUgcHVi bGlzaGVyLCBvdGhlcndpc2UsIHRoZQorICAgICAgIHdhbHNlbmRlciB3aWxsIHJlcGVhdGVkbHkg dGVybWluYXRlIGR1ZSB0byB0aGUgdGltZW91dCBlcnJvcnMuIElmCisgICAgICAgPGxpdGVyYWw+ d2FsX3JlY2VpdmVyX3N0YXR1c19pbnRlcnZhbDwvbGl0ZXJhbD4gaXMgc2V0IHRvIHplcm8sIHRo ZSBhcHBseQorICAgICAgIHdvcmtlciBkb2Vzbid0IHNlbmQgYW55IGZlZWRiYWNrIG1lc3NhZ2Vz IGR1cmluZyB0aGUgc3Vic2NyaWJlcidzCisgICAgICAgPGxpdGVyYWw+bWluX2FwcGx5X2RlbGF5 PC9saXRlcmFsPiBwZXJpb2QuIFNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVz dWJzY3JpcHRpb24iLz4gZm9yIGRldGFpbHMuCisgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3Rp dGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xv Z2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9u LnNnbWwKaW5kZXggZjRiNGU2NDFiZS4uOWJmYmIzYjYxZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1y ZXBsaWNhdGlvbi5zZ21sCkBAIC0yNDcsNiArMjQ3LDEzIEBACiAgICB0YXJnZXQgdGFibGUuCiAg IDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFRoZSBzdWJzY3JpYmVyIHJlcGxpY2F0aW9uIGNhbiBi ZSBpbnN0cnVjdGVkIHRvIGxhZyBiZWhpbmQgdGhlIHB1Ymxpc2hlcgorICAgc2lkZSBjaGFuZ2Vz IGJ5IHNwZWNpZnlpbmcgdGhlIDxsaXRlcmFsPm1pbl9hcHBseV9kZWxheTwvbGl0ZXJhbD4KKyAg IHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXIuIFNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uIi8+IGZvcgorICAgZGV0YWlscy4KKyAgPC9wYXJhPgorCiAgIDxzZWN0MiBpZD0i bG9naWNhbC1yZXBsaWNhdGlvbi1zdWJzY3JpcHRpb24tc2xvdCI+CiAgICA8dGl0bGU+UmVwbGlj YXRpb24gU2xvdCBNYW5hZ2VtZW50PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vi c2NyaXB0aW9uLnNnbWwKaW5kZXggYWQ5MzU1M2ExZC4uMWM2ZTlkZDJkMSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yMTMsOCArMjEzLDkgQEAgQUxURVIg U1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIGFyZSA8bGl0ZXJhbD5zbG90X25hbWU8L2xpdGVyYWw+ LAogICAgICAgPGxpdGVyYWw+c3luY2hyb25vdXNfY29tbWl0PC9saXRlcmFsPiwKICAgICAgIDxs aXRlcmFsPmJpbmFyeTwvbGl0ZXJhbD4sIDxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD4sCi0g ICAgICA8bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPiwgYW5kCi0gICAgICA8bGl0 ZXJhbD5vcmlnaW48L2xpdGVyYWw+LgorICAgICAgPGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwv bGl0ZXJhbD4sCisgICAgICA8bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+LCBhbmQKKyAgICAgIDxs aXRlcmFsPm1pbl9hcHBseV9kZWxheTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNj cmlwdGlvbi5zZ21sCmluZGV4IGViYTcyYzZhZjYuLmFjMGQ0Nzc5NzQgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0zNDksNyArMzQ5LDQ0IEBAIENSRUFU RSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1YnNjcmlwdGlv bl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgICAgPC92YXJsaXN0ZW50cnk+Ci0gICAgICA8L3ZhcmlhYmxlbGlzdD48L3BhcmE+CisK KyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5taW5fYXBwbHlf ZGVsYXk8L2xpdGVyYWw+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPik8L3Rlcm0+CisgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBzdWJz Y3JpYmVyIGFwcGxpZXMgY2hhbmdlcyBhcyBzb29uIGFzIHBvc3NpYmxlLiBUaGlzCisgICAgICAg ICAgcGFyYW1ldGVyIGFsbG93cyB0aGUgdXNlciB0byBkZWxheSB0aGUgYXBwbGljYXRpb24gb2Yg Y2hhbmdlcyBieSBhCisgICAgICAgICAgc3BlY2lmaWVkIGFtb3VudCBvZiB0aW1lLiBJZiB0aGUg dmFsdWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdW5pdHMsIGl0CisgICAgICAgICAgaXMgdGFrZW4g YXMgbWlsbGlzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyB6ZXJvIChubyBkZWxheSkuCisgICAgICAg ICA8L3BhcmE+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBBbnkgZGVsYXkgb2NjdXJzIG9u bHkgb24gV0FMIHJlY29yZHMgZm9yIHRyYW5zYWN0aW9uIGJlZ2lucyBhZnRlciBhbGwKKyAgICAg ICAgICBpbml0aWFsIHRhYmxlIHN5bmNocm9uaXphdGlvbiBoYXMgZmluaXNoZWQuIFRoZSBkZWxh eSBpcyBjYWxjdWxhdGVkCisgICAgICAgICAgYmV0d2VlbiB0aGUgV0FMIHRpbWVzdGFtcCBhcyB3 cml0dGVuIG9uIHRoZSBwdWJsaXNoZXIgYW5kIHRoZSBjdXJyZW50CisgICAgICAgICAgdGltZSBv biB0aGUgc3Vic2NyaWJlci4gQW55IG92ZXJoZWFkIG9mIHRpbWUgc3BlbnQgaW4gbG9naWNhbCBk ZWNvZGluZworICAgICAgICAgIGFuZCBpbiB0cmFuc2ZlcnJpbmcgdGhlIHRyYW5zYWN0aW9uIG1h eSByZWR1Y2UgdGhlIGFjdHVhbCB3YWl0IHRpbWUuCisgICAgICAgICAgSXQgaXMgYWxzbyBwb3Nz aWJsZSB0aGF0IHRoZSBvdmVyaGVhZCBhbHJlYWR5IGV4ZWNlZWRzIHRoZSByZXF1ZXN0ZWQKKyAg ICAgICAgICA8bGl0ZXJhbD5taW5fYXBwbHlfZGVsYXk8L2xpdGVyYWw+IHZhbHVlLCBpbiB3aGlj aCBjYXNlIG5vIGFkZGl0aW9uYWwKKyAgICAgICAgICB3YWl0IGlzIG5lY2Vzc2FyeS4gSWYgdGhl IHN5c3RlbSBjbG9ja3Mgb24gcHVibGlzaGVyIGFuZCBzdWJzY3JpYmVyCisgICAgICAgICAgYXJl IG5vdCBzeW5jaHJvbml6ZWQsIHRoaXMgbWF5IGxlYWQgdG8gYXBwbHkgY2hhbmdlcyBlYXJsaWVy IHRoYW4KKyAgICAgICAgICBleHBlY3RlZCwgYnV0IHRoaXMgaXMgbm90IGEgbWFqb3IgaXNzdWUg YmVjYXVzZSB0aGlzIHBhcmFtZXRlciBpcworICAgICAgICAgIHR5cGljYWxseSBtdWNoIGxhcmdl ciB0aGFuIHRoZSB0aW1lIGRldmlhdGlvbnMgYmV0d2VlbiBzZXJ2ZXJzLiBOb3RlCisgICAgICAg ICAgdGhhdCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBsb25nIGRlbGF5LCB0aGUgcmVw bGljYXRpb24gd2lsbAorICAgICAgICAgIHN0b3AgaWYgdGhlIHJlcGxpY2F0aW9uIHNsb3QgZmFs bHMgYmVoaW5kIHRoZSBjdXJyZW50IExTTiBieSBtb3JlIHRoYW4KKyAgICAgICAgICA8bGluayBs aW5rZW5kPSJndWMtbWF4LXNsb3Qtd2FsLWtlZXAtc2l6ZSI+PGxpdGVyYWw+bWF4X3Nsb3Rfd2Fs X2tlZXBfc2l6ZTwvbGl0ZXJhbD48L2xpbms+LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAg PHdhcm5pbmc+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgRGVsYXlpbmcgdGhlIHJl cGxpY2F0aW9uIGNhbiBtZWFuIHRoZXJlIGlzIGEgbXVjaCBsb25nZXIgdGltZSBiZXR3ZWVuIG1h a2luZworICAgICAgICAgICAgYSBjaGFuZ2Ugb24gdGhlIHB1Ymxpc2hlciwgYW5kIHRoYXQgY2hh bmdlIGJlaW5nIGNvbW1pdHRlZCBvbiB0aGUgc3Vic2NyaWJlci4KKyAgICAgICAgICAgIFRoaXMg Y2FuIGhhdmUgYSBiaWcgaW1wYWN0IG9uIHN5bmNocm9ub3VzIHJlcGxpY2F0aW9uLgorICAgICAg ICAgICAgU2VlIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zeW5jaHJvbm91cy1jb21taXQiLz4uCisgICAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgIDwvd2FybmluZz4KKyAgICAgICAgPC9saXN0aXRlbT4K KyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICA8L3Bh cmE+CiAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CkBAIC00MTMsNiArNDUw LDExIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICBwdWJsaXNoZWQgd2l0aCBkaWZmZXJl bnQgY29sdW1uIGxpc3RzIGFyZSBub3Qgc3VwcG9ydGVkLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+ CisgICBBIG5vbi16ZXJvIDxsaXRlcmFsPm1pbl9hcHBseV9kZWxheTwvbGl0ZXJhbD4gcGFyYW1l dGVyIGlzIG5vdCBhbGxvd2VkIHdoZW4gc3RyZWFtaW5nCisgICBpbiBwYXJhbGxlbCBtb2RlLgor ICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBXZSBhbGxvdyBub24tZXhpc3RlbnQgcHVibGljYXRp b25zIHRvIGJlIHNwZWNpZmllZCBzbyB0aGF0IHVzZXJzIGNhbiBhZGQKICAgIHRob3NlIGxhdGVy LiBUaGlzIG1lYW5zCkBAIC00NzIsNiArNTE0LDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gbXlz dWIKICAgICAgICAgUFVCTElDQVRJT04gaW5zZXJ0X29ubHkKICAgICAgICAgICAgICAgIFdJVEgg KGVuYWJsZWQgPSBmYWxzZSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4K KyAgIENyZWF0ZSBhIHN1YnNjcmlwdGlvbiB0byBhIHJlbW90ZSBzZXJ2ZXIgdGhhdCByZXBsaWNh dGVzIHRhYmxlcyBpbgorICAgdGhlIDxsaXRlcmFsPm15cHViPC9saXRlcmFsPiBwdWJsaWNhdGlv biBhbmQgc3RhcnRzIHJlcGxpY2F0aW5nIGltbWVkaWF0ZWx5CisgICBvbiBjb21taXQuIFByZS1l eGlzdGluZyBkYXRhIGlzIG5vdCBjb3BpZWQuIFRoZSBhcHBsaWNhdGlvbiBvZiBjaGFuZ2VzIGlz CisgICBkZWxheWVkIGJ5IDQgaG91cnMuCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgU1VCU0NS SVBUSU9OIG15c3ViCisgICAgICAgICBDT05ORUNUSU9OICdob3N0PTE5Mi4wLjIuNCBwb3J0PTU0 MzIgdXNlcj1mb28gZGJuYW1lPWZvb2RiJworICAgICAgICBQVUJMSUNBVElPTiBteXB1YgorICAg ICAgICAgICAgICAgV0lUSCAoY29weV9kYXRhID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9ICc0 aCcpOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0 MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IGE1NmFlMzExYzMuLmM3 NjdjYzFjM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9u LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtNjQsNiAr NjQsNyBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3Vi LT5vaWQgPSBzdWJpZDsKIAlzdWItPmRiaWQgPSBzdWJmb3JtLT5zdWJkYmlkOwogCXN1Yi0+c2tp cGxzbiA9IHN1YmZvcm0tPnN1YnNraXBsc247CisJc3ViLT5taW5hcHBseWRlbGF5ID0gc3ViZm9y bS0+c3VibWluYXBwbHlkZWxheTsKIAlzdWItPm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoc3ViZm9y bS0+c3VibmFtZSkpOwogCXN1Yi0+b3duZXIgPSBzdWJmb3JtLT5zdWJvd25lcjsKIAlzdWItPmVu YWJsZWQgPSBzdWJmb3JtLT5zdWJlbmFibGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCmluZGV4IDg2MDhlM2ZhNWIuLjMxN2MyMDEwY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwKQEAgLTEyOTksOSArMTI5OSwxMCBAQCBSRVZPS0UgQUxMIE9OIHBnX3JlcGxp Y2F0aW9uX29yaWdpbl9zdGF0dXMgRlJPTSBwdWJsaWM7CiAKIC0tIEFsbCBjb2x1bW5zIG9mIHBn X3N1YnNjcmlwdGlvbiBleGNlcHQgc3ViY29ubmluZm8gYXJlIHB1YmxpY2x5IHJlYWRhYmxlLgog UkVWT0tFIEFMTCBPTiBwZ19zdWJzY3JpcHRpb24gRlJPTSBwdWJsaWM7Ci1HUkFOVCBTRUxFQ1Qg KG9pZCwgc3ViZGJpZCwgc3Vic2tpcGxzbiwgc3VibmFtZSwgc3Vib3duZXIsIHN1YmVuYWJsZWQs Ci0gICAgICAgICAgICAgIHN1YmJpbmFyeSwgc3Vic3RyZWFtLCBzdWJ0d29waGFzZXN0YXRlLCBz dWJkaXNhYmxlb25lcnIsCi0gICAgICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJzeW5jY29tbWl0 LCBzdWJwdWJsaWNhdGlvbnMsIHN1Ym9yaWdpbikKK0dSQU5UIFNFTEVDVCAob2lkLCBzdWJkYmlk LCBzdWJza2lwbHNuLCBzdWJtaW5hcHBseWRlbGF5LCBzdWJuYW1lLCBzdWJvd25lciwKKyAgICAg ICAgICAgICAgc3ViZW5hYmxlZCwgc3ViYmluYXJ5LCBzdWJzdHJlYW0sIHN1YnR3b3BoYXNlc3Rh dGUsCisgICAgICAgICAgICAgIHN1YmRpc2FibGVvbmVyciwgc3Vic2xvdG5hbWUsIHN1YnN5bmNj b21taXQsIHN1YnB1YmxpY2F0aW9ucywKKyAgICAgICAgICAgICAgc3Vib3JpZ2luKQogICAgIE9O IHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2Ny aXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5k ZXggYmFmZjAwZGQ3NC4uMTE4ODQyZjlmZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlw dGlvbmNtZHMuYwpAQCAtNjYsNiArNjYsNyBAQAogI2RlZmluZSBTVUJPUFRfRElTQUJMRV9PTl9F UlIJCTB4MDAwMDA0MDAKICNkZWZpbmUgU1VCT1BUX0xTTgkJCQkJMHgwMDAwMDgwMAogI2RlZmlu ZSBTVUJPUFRfT1JJR0lOCQkJCTB4MDAwMDEwMDAKKyNkZWZpbmUgU1VCT1BUX01JTl9BUFBMWV9E RUxBWQkJMHgwMDAwMjAwMAogCiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQg Ki8KICNkZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMp KQpAQCAtOTAsNiArOTEsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJPcHRzCiAJYm9vbAkJZGlzYWJs ZW9uZXJyOwogCWNoYXIJICAgKm9yaWdpbjsKIAlYTG9nUmVjUHRyCWxzbjsKKwlpbnQJCQltaW5f YXBwbHlfZGVsYXk7CiB9IFN1Yk9wdHM7CiAKIHN0YXRpYyBMaXN0ICpmZXRjaF90YWJsZV9saXN0 KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBMaXN0ICpwdWJsaWNhdGlvbnMpOwpAQCAtMTQ2LDYg KzE0OCw4IEBAIHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGlzdCAqc3RtdF9vcHRpb25zLAogCQlvcHRzLT5kaXNhYmxlb25lcnIgPSBmYWxzZTsKIAlpZiAo SXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBw c3RyZHVwKExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRz LCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKSkKKwkJb3B0cy0+bWluX2FwcGx5X2RlbGF5ID0gMDsK IAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBzdG10X29wdGlvbnMpCkBAIC0z MjQsNiArMzI4LDQzIEBAIHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTGlzdCAqc3RtdF9vcHRpb25zLAogCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VC T1BUX0xTTjsKIAkJCW9wdHMtPmxzbiA9IGxzbjsKIAkJfQorCQllbHNlIGlmIChJc1NldChzdXBw b3J0ZWRfb3B0cywgU1VCT1BUX01JTl9BUFBMWV9ERUxBWSkgJiYKKwkJCQkgc3RyY21wKGRlZmVs LT5kZWZuYW1lLCAibWluX2FwcGx5X2RlbGF5IikgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqdmFs LAorCQkJCQkgICAqdG1wOworCQkJSW50ZXJ2YWwgICAqaW50ZXJ2YWw7CisJCQlpbnQ2NAkJbXM7 CisKKwkJCWlmIChJc1NldChvcHRzLT5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX01JTl9BUFBMWV9E RUxBWSkpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisKKwkJ CW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9NSU5fQVBQTFlfREVMQVk7CisJCQl0bXAg PSBkZWZHZXRTdHJpbmcoZGVmZWwpOworCisJCQkvKgorCQkJICogSWYgbm8gdW5pdCB3YXMgc3Bl Y2lmaWVkLCB0aGVuIGV4cGxpY2l0bHkgYWRkICdtcycgb3RoZXJ3aXNlCisJCQkgKiB0aGUgaW50 ZXJ2YWxfaW4gZnVuY3Rpb24gd291bGQgYXNzdW1lICdzZWNvbmRzJy4KKwkJCSAqLworCQkJaWYg KHN0cnNwbih0bXAsICItMDEyMzQ1Njc4OSAiKSA9PSBzdHJsZW4odG1wKSkKKwkJCQl2YWwgPSBw c3ByaW50ZigiJXNtcyIsIHRtcCk7CisJCQllbHNlCisJCQkJdmFsID0gdG1wOworCisJCQlpbnRl cnZhbCA9IERhdHVtR2V0SW50ZXJ2YWxQKERpcmVjdEZ1bmN0aW9uQ2FsbDMoaW50ZXJ2YWxfaW4s CisJCQkJCQkJCQkJCQkJCQkgQ1N0cmluZ0dldERhdHVtKHZhbCksCisJCQkJCQkJCQkJCQkJCQkg T2JqZWN0SWRHZXREYXR1bShJbnZhbGlkT2lkKSwKKwkJCQkJCQkJCQkJCQkJCSBJbnQzMkdldERh dHVtKC0xKSkpOworCisJCQltcyA9IGludGVydmFsMm1zKGludGVydmFsKTsKKwkJCWlmIChtcyA8 IDAgfHwgbXMgPiBJTlRfTUFYKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVS UkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCQkJZXJybXNnKCIlbGxkIG1z IGlzIG91dHNpZGUgdGhlIHZhbGlkIHJhbmdlIGZvciBwYXJhbWV0ZXIgXCIlc1wiICgwIC4uICVk KSIsCisJCQkJCQkJICAgKGxvbmcgbG9uZykgbXMsICJtaW5fYXBwbHlfZGVsYXkiLCBJTlRfTUFY KSk7CisKKwkJCW9wdHMtPm1pbl9hcHBseV9kZWxheSA9IG1zOworCQl9CiAJCWVsc2UKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTQw NCw2ICs0NDUsMjAgQEAgcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBMaXN0ICpzdG10X29wdGlvbnMsCiAJCQkJCQkJCSJzbG90X25hbWUgPSBOT05FIiwgImNy ZWF0ZV9zbG90ID0gZmFsc2UiKSkpOwogCQl9CiAJfQorCisJLyoKKwkgKiBUaGUgY29tYmluYXRp b24gb2YgcGFyYWxsZWwgc3RyZWFtaW5nIG1vZGUgYW5kIG1pbl9hcHBseV9kZWxheSBpcyBub3QK KwkgKiBhbGxvd2VkLgorCSAqLworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX01J Tl9BUFBMWV9ERUxBWSkgJiYKKwkJb3B0cy0+bWluX2FwcGx5X2RlbGF5ID4gMCkKKwl7CisJCWlm IChvcHRzLT5zdHJlYW1pbmcgPT0gTE9HSUNBTFJFUF9TVFJFQU1fUEFSQUxMRUwpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJZXJy bXNnKCIlcyBhbmQgJXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBvcHRpb25zIiwKKwkJCQkJCSAg ICJtaW5fYXBwbHlfZGVsYXkgPiAwIiwgInN0cmVhbWluZyA9IHBhcmFsbGVsIikpOworCX0KIH0K IAogLyoKQEAgLTU2MCw3ICs2MTUsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9QVF9TTE9U X05BTUUgfCBTVUJPUFRfQ09QWV9EQVRBIHwKIAkJCQkJICBTVUJPUFRfU1lOQ0hST05PVVNfQ09N TUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCSAgU1VCT1BUX1NUUkVBTUlORyB8IFNVQk9QVF9U V09QSEFTRV9DT01NSVQgfAotCQkJCQkgIFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8IFNVQk9QVF9P UklHSU4pOworCQkJCQkgIFNVQk9QVF9ESVNBQkxFX09OX0VSUiB8IFNVQk9QVF9PUklHSU4gfAor CQkJCQkgIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRp b25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8q CkBAIC02MjUsNiArNjgxLDcgQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3Jp cHRpb25fb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHN1YmlkKTsKIAl2YWx1ZXNbQW51bV9w Z19zdWJzY3JpcHRpb25fc3ViZGJpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShNeURhdGFiYXNl SWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJza2lwbHNuIC0gMV0gPSBMU05H ZXREYXR1bShJbnZhbGlkWExvZ1JlY1B0cik7CisJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9u X3N1Ym1pbmFwcGx5ZGVsYXkgLSAxXSA9IEludDY0R2V0RGF0dW0ob3B0cy5taW5fYXBwbHlfZGVs YXkpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJuYW1lIC0gMV0gPQogCQlEaXJl Y3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKHN0bXQtPnN1Ym5hbWUpKTsK IAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3duZXIgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0ob3duZXIpOwpAQCAtMTA1NCw3ICsxMTExLDcgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJc3VwcG9y dGVkX29wdHMgPSAoU1VCT1BUX1NMT1RfTkFNRSB8CiAJCQkJCQkJCSAgU1VCT1BUX1NZTkNIUk9O T1VTX0NPTU1JVCB8IFNVQk9QVF9CSU5BUlkgfAogCQkJCQkJCQkgIFNVQk9QVF9TVFJFQU1JTkcg fCBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfAotCQkJCQkJCQkgIFNVQk9QVF9PUklHSU4pOworCQkJ CQkJCQkgIFNVQk9QVF9PUklHSU4gfCBTVUJPUFRfTUlOX0FQUExZX0RFTEFZKTsKIAogCQkJCXBh cnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywKIAkJCQkJCQkJ CQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTA5OCw2ICsxMTU1LDE4IEBAIEFsdGVy U3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpz dG10LAogCiAJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9TVFJFQU1J TkcpKQogCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogVGhlIGNvbWJpbmF0aW9uIG9mIHBhcmFsbGVs IHN0cmVhbWluZyBtb2RlIGFuZAorCQkJCQkgKiBtaW5fYXBwbHlfZGVsYXkgaXMgbm90IGFsbG93 ZWQuCisJCQkJCSAqLworCQkJCQlpZiAob3B0cy5zdHJlYW1pbmcgPT0gTE9HSUNBTFJFUF9TVFJF QU1fUEFSQUxMRUwpCisJCQkJCQlpZiAoKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9Q VF9NSU5fQVBQTFlfREVMQVkpICYmIG9wdHMubWluX2FwcGx5X2RlbGF5ID4gMCkgfHwKKwkJCQkJ CQkoIUlzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpICYm IHN1Yi0+bWluYXBwbHlkZWxheSA+IDApKQorCQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJ CQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJ CQkJCQkJZXJybXNnKCJjYW5ub3QgZW5hYmxlICVzIG1vZGUgZm9yIHN1YnNjcmlwdGlvbiB3aXRo ICVzIiwKKwkJCQkJCQkJCQkgICAic3RyZWFtaW5nID0gcGFyYWxsZWwiLCAibWluX2FwcGx5X2Rl bGF5IikpOworCiAJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzdHJlYW0gLSAx XSA9CiAJCQkJCQlDaGFyR2V0RGF0dW0ob3B0cy5zdHJlYW1pbmcpOwogCQkJCQlyZXBsYWNlc1tB bnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJzdHJlYW0gLSAxXSA9IHRydWU7CkBAIC0xMTExLDYgKzEx ODAsMjUgQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJCQk9IHRydWU7CiAJCQkJfQogCisJCQkJaWYgKElzU2V0 KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9NSU5fQVBQTFlfREVMQVkpKQorCQkJCXsKKwkJ CQkJLyoKKwkJCQkJICogVGhlIGNvbWJpbmF0aW9uIG9mIHBhcmFsbGVsIHN0cmVhbWluZyBtb2Rl IGFuZAorCQkJCQkgKiBtaW5fYXBwbHlfZGVsYXkgaXMgbm90IGFsbG93ZWQuCisJCQkJCSAqLwor CQkJCQlpZiAob3B0cy5taW5fYXBwbHlfZGVsYXkgPiAwKQorCQkJCQkJaWYgKChJc1NldChvcHRz LnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfU1RSRUFNSU5HKSAmJiBvcHRzLnN0cmVhbWluZyA9PSBM T0dJQ0FMUkVQX1NUUkVBTV9QQVJBTExFTCkgfHwKKwkJCQkJCQkoIUlzU2V0KG9wdHMuc3BlY2lm aWVkX29wdHMsIFNVQk9QVF9TVFJFQU1JTkcpICYmIHN1Yi0+c3RyZWFtID09IExPR0lDQUxSRVBf U1RSRUFNX1BBUkFMTEVMKSkKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJZXJyY29k ZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJCWVy cm1zZygiY2Fubm90IGVuYWJsZSAlcyBmb3Igc3Vic2NyaXB0aW9uIGluICVzIG1vZGUiLAorCQkJ CQkJCQkJCSAgICJtaW5fYXBwbHlfZGVsYXkiLCAic3RyZWFtaW5nID0gcGFyYWxsZWwiKSk7CisK KwkJCQkJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym1pbmFwcGx5ZGVsYXkgLSAxXSA9 CisJCQkJCQlJbnQ2NEdldERhdHVtKG9wdHMubWluX2FwcGx5X2RlbGF5KTsKKwkJCQkJcmVwbGFj ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3VibWluYXBwbHlkZWxheSAtIDFdID0gdHJ1ZTsKKwkJ CQl9CisKIAkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX09SSUdJTikp CiAJCQkJewogCQkJCQl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3Vib3JpZ2luIC0gMV0g PQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9hcHBseXBhcmFs bGVsd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxs ZWx3b3JrZXIuYwppbmRleCAzNTc5ZTcwNGZlLi43MzAyYmNlN2EwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2FwcGx5cGFyYWxsZWx3b3JrZXIuYwpAQCAt NzA0LDcgKzcwNCw4IEBAIHBhX3Byb2Nlc3Nfc3Bvb2xlZF9tZXNzYWdlc19pZl9yZXF1aXJlZCh2 b2lkKQogCXsKIAkJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcygmTXlQYXJhbGxlbFNoYXJlZC0+Zmls ZXNldCwKIAkJCQkJCQkgICBNeVBhcmFsbGVsU2hhcmVkLT54aWQsCi0JCQkJCQkJICAgSW52YWxp ZFhMb2dSZWNQdHIpOworCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAorCQkJCQkJCSAgIDAp OwogCQlwYV9zZXRfZmlsZXNldF9zdGF0ZShNeVBhcmFsbGVsU2hhcmVkLCBGU19FTVBUWSk7CiAJ fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCBhMDA4NGM3 ZWY2Li43NTEyYWU1YjdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2Vy LmMKQEAgLTMxOCw2ICszMTgsMTcgQEAgc3RhdGljIExpc3QgKm9uX2NvbW1pdF93YWtldXBfd29y a2Vyc19zdWJpZHMgPSBOSUw7CiBib29sCQlpbl9yZW1vdGVfdHJhbnNhY3Rpb24gPSBmYWxzZTsK IHN0YXRpYyBYTG9nUmVjUHRyIHJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsK IAorLyoKKyAqIEluIG9yZGVyIHRvIGF2b2lkIHdhbHNlbmRlciB0aW1lb3V0IGZvciB0aW1lLWRl bGF5ZWQgcmVwbGljYXRpb24gdGhlIHdvcmtlcgorICogcHJvY2VzcyBrZWVwcyBzZW5kaW5nIGZl ZWRiYWNrIG1lc3NhZ2VzIGR1cmluZyB0aGUgZGVsYXkgcGVyaW9kLgorICogTWVhbndoaWxlLCB0 aGUgZmVhdHVyZSBkZWxheXMgdGhlIGFwcGx5IGJlZm9yZSBzdGFydGluZyB0aGUKKyAqIHRyYW5z YWN0aW9uIGFuZCB0aHVzIHdlIGRvbid0IHdyaXRlIFdBTHMgZm9yIHRoZSBzdXNwZW5kZWQgY2hh bmdlcyBkdXJpbmcKKyAqIHRoZSB3YWl0LiBXaGVuIHRoZSB3b3JrZXIgcHJvY2VzcyBzZW5kcyBh IGZlZWRiYWNrIG1lc3NhZ2UKKyAqIGR1cmluZyB0aGUgZGVsYXksIHdlIHNob3VsZCBub3QgbWFr ZSBwb3NpdGlvbnMgb2YgdGhlIGZsdXNoZWQgYW5kIGFwcGx5IExTTgorICogb3ZlcndyaXR0ZW4g YnkgdGhlIGxhc3QgcmVjZWl2ZWQgbGF0ZXN0IExTTi4gU2VlIHNlbmRfZmVlZGJhY2soKSBmb3Ig ZGV0YWlscy4KKyAqLworc3RhdGljIFhMb2dSZWNQdHIgbGFzdF9yZWNlaXZlZCA9IEludmFsaWRY TG9nUmVjUHRyOworCiAvKiBmaWVsZHMgdmFsaWQgb25seSB3aGVuIHByb2Nlc3Npbmcgc3RyZWFt ZWQgdHJhbnNhY3Rpb24gKi8KIHN0YXRpYyBib29sIGluX3N0cmVhbWVkX3RyYW5zYWN0aW9uID0g ZmFsc2U7CiAKQEAgLTM4OCwxMCArMzk5LDEzIEBAIHN0YXRpYyB2b2lkIHN0cmVhbV93cml0ZV9j aGFuZ2UoY2hhciBhY3Rpb24sIFN0cmluZ0luZm8gcyk7CiBzdGF0aWMgdm9pZCBzdHJlYW1fb3Bl bl9hbmRfd3JpdGVfY2hhbmdlKFRyYW5zYWN0aW9uSWQgeGlkLCBjaGFyIGFjdGlvbiwgU3RyaW5n SW5mbyBzKTsKIHN0YXRpYyB2b2lkIHN0cmVhbV9jbG9zZV9maWxlKHZvaWQpOwogCi1zdGF0aWMg dm9pZCBzZW5kX2ZlZWRiYWNrKFhMb2dSZWNQdHIgcmVjdnBvcywgYm9vbCBmb3JjZSwgYm9vbCBy ZXF1ZXN0UmVwbHkpOworc3RhdGljIHZvaWQgc2VuZF9mZWVkYmFjayhYTG9nUmVjUHRyIHJlY3Zw b3MsIGJvb2wgZm9yY2UsIGJvb2wgcmVxdWVzdFJlcGx5LAorCQkJCQkJICBib29sIGluX2RlbGF5 ZWRfYXBwbHkpOwogCiBzdGF0aWMgdm9pZCBEaXNhYmxlU3Vic2NyaXB0aW9uQW5kRXhpdCh2b2lk KTsKIAorc3RhdGljIHZvaWQgbWF5YmVfZGVsYXlfYXBwbHkoVGltZXN0YW1wVHogZmluaXNoX3Rz KTsKKwogc3RhdGljIHZvaWQgYXBwbHlfaGFuZGxlX2NvbW1pdF9pbnRlcm5hbChMb2dpY2FsUmVw Q29tbWl0RGF0YSAqY29tbWl0X2RhdGEpOwogc3RhdGljIHZvaWQgYXBwbHlfaGFuZGxlX2luc2Vy dF9pbnRlcm5hbChBcHBseUV4ZWN1dGlvbkRhdGEgKmVkYXRhLAogCQkJCQkJCQkJCSBSZXN1bHRS ZWxJbmZvICpyZWxpbmZvLApAQCAtOTk4LDYgKzEwMTIsMTA1IEBAIHNsb3RfbW9kaWZ5X2RhdGEo VHVwbGVUYWJsZVNsb3QgKnNsb3QsIFR1cGxlVGFibGVTbG90ICpzcmNzbG90LAogCUV4ZWNTdG9y ZVZpcnR1YWxUdXBsZShzbG90KTsKIH0KIAorLyoKKyAqIFdoZW4gbWluX2FwcGx5X2RlbGF5IHBh cmFtZXRlciBpcyBzZXQgb24gdGhlIHN1YnNjcmliZXIsIHdlIHdhaXQgbG9uZyBlbm91Z2gKKyAq IHRvIG1ha2Ugc3VyZSBhIHRyYW5zYWN0aW9uIGlzIGFwcGxpZWQgYXQgbGVhc3QgdGhhdCBpbnRl cnZhbCBiZWhpbmQgdGhlCisgKiBwdWJsaXNoZXIuCisgKgorICogV2hpbGUgdGhlIHBoeXNpY2Fs IHJlcGxpY2F0aW9uIGFwcGxpZXMgdGhlIGRlbGF5IGF0IGNvbW1pdCB0aW1lLCB0aGlzCisgKiBm ZWF0dXJlIGFwcGxpZXMgdGhlIGRlbGF5IGZvciB0aGUgbmV4dCB0cmFuc2FjdGlvbiBidXQgYmVm b3JlIHN0YXJ0aW5nIHRoZQorICogdHJhbnNhY3Rpb24uIFRoaXMgaXMgbWFpbmx5IGJlY2F1c2Ug a2VlcGluZyBhIHRyYW5zYWN0aW9uIHRoYXQgY29uZHVjdGVkCisgKiB3cml0ZSBvcGVyYXRpb25z IG9wZW4gZm9yIGEgbG9uZyB0aW1lIHJlc3VsdHMgaW4gc29tZSBpc3N1ZXMgc3VjaCBhcyBibG9h dAorICogYW5kIGxvY2tzLgorICoKKyAqIFRoZSBtaW5fYXBwbHlfZGVsYXkgcGFyYW1ldGVyIHdp bGwgdGFrZSBlZmZlY3Qgb25seSBhZnRlciBhbGwgdGFibGVzIGFyZSBpbgorICogUkVBRFkgc3Rh dGUuCisgKgorICogZmluaXNoX3RzIGlzIHRoZSBjb21taXQvcHJlcGFyZSB0aW1lIG9mIGJvdGgg cmVndWxhciAobm9uLXN0cmVhbWVkKSBhbmQKKyAqIHN0cmVhbWVkIHRyYW5zYWN0aW9ucy4gVW5s aWtlIHRoZSByZWd1bGFyIChub24tc3RyZWFtZWQpIGNhc2VzLCB0aGUgZGVsYXkKKyAqIGlzIGFw cGxpZWQgaW4gYSBTVFJFQU0gQ09NTUlUL1NUUkVBTSBQUkVQQVJFIG1lc3NhZ2UgZm9yIHN0cmVh bWVkCisgKiB0cmFuc2FjdGlvbnMuIFRoZSBTVFJFQU0gU1RBUlQgbWVzc2FnZSBkb2VzIG5vdCBj b250YWluIGEgY29tbWl0L3ByZXBhcmUKKyAqIHRpbWUgKGl0IHdpbGwgYmUgYXZhaWxhYmxlIHdo ZW4gdGhlIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIGZpbmlzaGVzKS4KKyAqIEhlbmNlLCBpdCdz IG5vdCBhcHByb3ByaWF0ZSB0byBhcHBseSBhIGRlbGF5IGF0IHRoZSB0aW1lLgorICovCitzdGF0 aWMgdm9pZAorbWF5YmVfZGVsYXlfYXBwbHkoVGltZXN0YW1wVHogZmluaXNoX3RzKQoreworCUFz c2VydChmaW5pc2hfdHMgPiAwKTsKKworCS8qIE5vdGhpbmcgdG8gZG8gaWYgbm8gZGVsYXkgc2V0 ICovCisJaWYgKCFNeVN1YnNjcmlwdGlvbi0+bWluYXBwbHlkZWxheSkKKwkJcmV0dXJuOworCisJ LyoKKwkgKiBUaGUgbWluX2FwcGx5X2RlbGF5IHBhcmFtZXRlciBpcyBpZ25vcmVkIHVudGlsIGFs bCB0YWJsZXN5bmMgd29ya2VycworCSAqIGhhdmUgcmVhY2hlZCBSRUFEWSBzdGF0ZS4gVGhpcyBp cyBiZWNhdXNlIGlmIHdlIGFsbG93ZWQgdGhlIGRlbGF5CisJICogZHVyaW5nIHRoZSBjYXRjaHVw IHBoYXNlLCB0aGVuIG9uY2Ugd2UgcmVhY2hlZCB0aGUgbGltaXQgb2YgdGFibGVzeW5jCisJICog d29ya2VycyBpdCB3b3VsZCBpbXBvc2UgYSBkZWxheSBmb3IgZWFjaCBzdWJzZXF1ZW50IHdvcmtl ci4gVGhhdCB3b3VsZAorCSAqIGNhdXNlIGluaXRpYWwgdGFibGUgc3luY2hyb25pemF0aW9uIGNv bXBsZXRpb24gdG8gdGFrZSBhIGxvbmcgdGltZS4KKwkgKi8KKwlpZiAoIUFsbFRhYmxlc3luY3NS ZWFkeSgpKQorCQlyZXR1cm47CisKKwkvKiBBcHBseSB0aGUgZGVsYXkgYnkgdGhlIGxhdGNoIG1l Y2hhbmlzbSAqLworCXdoaWxlICh0cnVlKQorCXsKKwkJbG9uZwkJZGlmZm1zOworCisJCVJlc2V0 TGF0Y2goTXlMYXRjaCk7CisKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKworCQkvKiBUaGlz IG1pZ2h0IGNoYW5nZSB3YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsICovCisJCWlmIChDb25m aWdSZWxvYWRQZW5kaW5nKQorCQl7CisJCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJ CQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKwkJfQorCisJCS8qCisJCSAqIEJlZm9y ZSBjYWxjdWxhdGluZyB0aGUgdGltZSBkdXJhdGlvbiwgcmVsb2FkIHRoZSBjYXRhbG9nIGlmIG5l ZWRlZC4KKwkJICovCisJCWlmICghaW5fcmVtb3RlX3RyYW5zYWN0aW9uICYmICFpbl9zdHJlYW1l ZF90cmFuc2FjdGlvbikKKwkJeworCQkJQWNjZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKwkJ CW1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24oKTsKKwkJfQorCisJCWRpZmZtcyA9IFRpbWVzdGFt cERpZmZlcmVuY2VNaWxsaXNlY29uZHMoR2V0Q3VycmVudFRpbWVzdGFtcCgpLAorCQkJCQkJCQkJ CQkJIFRpbWVzdGFtcFR6UGx1c01pbGxpc2Vjb25kcyhmaW5pc2hfdHMsIE15U3Vic2NyaXB0aW9u LT5taW5hcHBseWRlbGF5KSk7CisKKwkJLyoKKwkJICogRXhpdCB3aXRob3V0IGFybWluZyB0aGUg bGF0Y2ggaWYgaXQncyBhbHJlYWR5IHBhc3QgdGltZSB0byBhcHBseQorCQkgKiB0aGlzIHRyYW5z YWN0aW9uLgorCQkgKi8KKwkJaWYgKGRpZmZtcyA8PSAwKQorCQkJYnJlYWs7CisKKwkJZWxvZyhE RUJVRzIsICJsb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5OiAlbGQgbXMiLCBkaWZmbXMp OworCisJCS8qCisJCSAqIENhbGwgc2VuZF9mZWVkYmFjaygpIHRvIHByZXZlbnQgdGhlIHB1Ymxp c2hlciBmcm9tIGV4aXRpbmcgYnkKKwkJICogdGltZW91dCBkdXJpbmcgdGhlIGRlbGF5LCB3aGVu IHdhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgaXMKKwkJICogYXZhaWxhYmxlLgorCQkgKi8K KwkJaWYgKHdhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPiAwCisJCQkmJiBkaWZmbXMgPiB3 YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsICogMTAwMCkKKwkJeworCQkJV2FpdExhdGNoKE15 TGF0Y2gsCisJCQkJCSAgV0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1f REVBVEgsCisJCQkJCSAgKGxvbmcpIHdhbF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgKiAxMDAw LAorCQkJCQkgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQVBQTFlfREVMQVkpOworCQkJc2VuZF9mZWVk YmFjayhsYXN0X3JlY2VpdmVkLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7CisJCX0KKwkJZWxzZQorCQkJ V2FpdExhdGNoKE15TGF0Y2gsCisJCQkJCSAgV0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdM X0VYSVRfT05fUE1fREVBVEgsCisJCQkJCSAgZGlmZm1zLAorCQkJCQkgIFdBSVRfRVZFTlRfUkVD T1ZFUllfQVBQTFlfREVMQVkpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSBCRUdJTiBtZXNzYWdl LgogICovCkBAIC0xMDEyLDYgKzExMjUsOSBAQCBhcHBseV9oYW5kbGVfYmVnaW4oU3RyaW5nSW5m byBzKQogCWxvZ2ljYWxyZXBfcmVhZF9iZWdpbihzLCAmYmVnaW5fZGF0YSk7CiAJc2V0X2FwcGx5 X2Vycm9yX2NvbnRleHRfeGFjdChiZWdpbl9kYXRhLnhpZCwgYmVnaW5fZGF0YS5maW5hbF9sc24p OwogCisJLyogU2hvdWxkIHdlIGRlbGF5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uPyAqLworCW1h eWJlX2RlbGF5X2FwcGx5KGJlZ2luX2RhdGEuY29tbWl0dGltZSk7CisKIAlyZW1vdGVfZmluYWxf bHNuID0gYmVnaW5fZGF0YS5maW5hbF9sc247CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFu Z2VzKGJlZ2luX2RhdGEuZmluYWxfbHNuKTsKQEAgLTEwNjksNiArMTE4NSw5IEBAIGFwcGx5X2hh bmRsZV9iZWdpbl9wcmVwYXJlKFN0cmluZ0luZm8gcykKIAlsb2dpY2FscmVwX3JlYWRfYmVnaW5f cHJlcGFyZShzLCAmYmVnaW5fZGF0YSk7CiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChi ZWdpbl9kYXRhLnhpZCwgYmVnaW5fZGF0YS5wcmVwYXJlX2xzbik7CiAKKwkvKiBTaG91bGQgd2Ug ZGVsYXkgdGhlIGN1cnJlbnQgcHJlcGFyZWQgdHJhbnNhY3Rpb24/ICovCisJbWF5YmVfZGVsYXlf YXBwbHkoYmVnaW5fZGF0YS5wcmVwYXJlX3RpbWUpOworCiAJcmVtb3RlX2ZpbmFsX2xzbiA9IGJl Z2luX2RhdGEucHJlcGFyZV9sc247CiAKIAltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGJl Z2luX2RhdGEucHJlcGFyZV9sc24pOwpAQCAtMTMxNiw3ICsxNDM1LDggQEAgYXBwbHlfaGFuZGxl X3N0cmVhbV9wcmVwYXJlKFN0cmluZ0luZm8gcykKIAkJCSAqIHNwb29sZWQgb3BlcmF0aW9ucy4K IAkJCSAqLwogCQkJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhNeUxvZ2ljYWxSZXBXb3JrZXItPnN0 cmVhbV9maWxlc2V0LAotCQkJCQkJCQkgICBwcmVwYXJlX2RhdGEueGlkLCBwcmVwYXJlX2RhdGEu cHJlcGFyZV9sc24pOworCQkJCQkJCQkgICBwcmVwYXJlX2RhdGEueGlkLCBwcmVwYXJlX2RhdGEu cHJlcGFyZV9sc24sCisJCQkJCQkJCSAgIHByZXBhcmVfZGF0YS5wcmVwYXJlX3RpbWUpOwogCiAJ CQkvKiBNYXJrIHRoZSB0cmFuc2FjdGlvbiBhcyBwcmVwYXJlZC4gKi8KIAkJCWFwcGx5X2hhbmRs ZV9wcmVwYXJlX2ludGVybmFsKCZwcmVwYXJlX2RhdGEpOwpAQCAtMjAxMCwxMCArMjEzMCwxMyBA QCBlbnN1cmVfbGFzdF9tZXNzYWdlKEZpbGVTZXQgKnN0cmVhbV9maWxlc2V0LCBUcmFuc2FjdGlv bklkIHhpZCwgaW50IGZpbGVubywKIAogLyoKICAqIENvbW1vbiBzcG9vbGZpbGUgcHJvY2Vzc2lu Zy4KKyAqCisgKiBUaGUgY29tbWl0L3ByZXBhcmUgdGltZSBmb3Igc3RyZWFtaW5nIHRyYW5zYWN0 aW9uIGlzIHJlcXVpcmVkIHRvIGFjaGlldmUKKyAqIHRpbWUtZGVsYXllZCByZXBsaWNhdGlvbi4K ICAqLwogdm9pZAogYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhGaWxlU2V0ICpzdHJlYW1fZmlsZXNl dCwgVHJhbnNhY3Rpb25JZCB4aWQsCi0JCQkJCSAgIFhMb2dSZWNQdHIgbHNuKQorCQkJCQkgICBY TG9nUmVjUHRyIGxzbiwgVGltZXN0YW1wVHogZmluaXNoX3RzKQogewogCVN0cmluZ0luZm9EYXRh IHMyOwogCWludAkJCW5jaGFuZ2VzOwpAQCAtMjAyNCw2ICsyMTQ3LDEwIEBAIGFwcGx5X3Nwb29s ZWRfbWVzc2FnZXMoRmlsZVNldCAqc3RyZWFtX2ZpbGVzZXQsIFRyYW5zYWN0aW9uSWQgeGlkLAog CWludAkJCWZpbGVubzsKIAlvZmZfdAkJb2Zmc2V0OwogCisJLyogU2hvdWxkIHdlIGRlbGF5IHRo ZSBjdXJyZW50IHRyYW5zYWN0aW9uPyAqLworCWlmIChmaW5pc2hfdHMpCisJCW1heWJlX2RlbGF5 X2FwcGx5KGZpbmlzaF90cyk7CisKIAlpZiAoIWFtX3BhcmFsbGVsX2FwcGx5X3dvcmtlcigpKQog CQltYXliZV9zdGFydF9za2lwcGluZ19jaGFuZ2VzKGxzbik7CiAKQEAgLTIxNzMsNyArMjMwMCw3 IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fY29tbWl0KFN0cmluZ0luZm8gcykKIAkJCSAqIHNwb29s ZWQgb3BlcmF0aW9ucy4KIAkJCSAqLwogCQkJYXBwbHlfc3Bvb2xlZF9tZXNzYWdlcyhNeUxvZ2lj YWxSZXBXb3JrZXItPnN0cmVhbV9maWxlc2V0LCB4aWQsCi0JCQkJCQkJCSAgIGNvbW1pdF9kYXRh LmNvbW1pdF9sc24pOworCQkJCQkJCQkgICBjb21taXRfZGF0YS5jb21taXRfbHNuLCBjb21taXRf ZGF0YS5jb21taXR0aW1lKTsKIAogCQkJYXBwbHlfaGFuZGxlX2NvbW1pdF9pbnRlcm5hbCgmY29t bWl0X2RhdGEpOwogCkBAIC0zNDQ2LDcgKzM1NzMsNyBAQCBVcGRhdGVXb3JrZXJTdGF0cyhYTG9n UmVjUHRyIGxhc3RfbHNuLCBUaW1lc3RhbXBUeiBzZW5kX3RpbWUsIGJvb2wgcmVwbHkpCiAgKiBB cHBseSBtYWluIGxvb3AuCiAgKi8KIHN0YXRpYyB2b2lkCi1Mb2dpY2FsUmVwQXBwbHlMb29wKFhM b2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKK0xvZ2ljYWxSZXBBcHBseUxvb3Aodm9pZCkKIHsKIAlU aW1lc3RhbXBUeiBsYXN0X3JlY3ZfdGltZXN0YW1wID0gR2V0Q3VycmVudFRpbWVzdGFtcCgpOwog CWJvb2wJCXBpbmdfc2VudCA9IGZhbHNlOwpAQCAtMzU2Nyw3ICszNjk0LDcgQEAgTG9naWNhbFJl cEFwcGx5TG9vcChYTG9nUmVjUHRyIGxhc3RfcmVjZWl2ZWQpCiAJCQkJCQlpZiAobGFzdF9yZWNl aXZlZCA8IGVuZF9sc24pCiAJCQkJCQkJbGFzdF9yZWNlaXZlZCA9IGVuZF9sc247CiAKLQkJCQkJ CXNlbmRfZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgcmVwbHlfcmVxdWVzdGVkLCBmYWxzZSk7CisJ CQkJCQlzZW5kX2ZlZWRiYWNrKGxhc3RfcmVjZWl2ZWQsIHJlcGx5X3JlcXVlc3RlZCwgZmFsc2Us IGZhbHNlKTsKIAkJCQkJCVVwZGF0ZVdvcmtlclN0YXRzKGxhc3RfcmVjZWl2ZWQsIHRpbWVzdGFt cCwgdHJ1ZSk7CiAJCQkJCX0KIAkJCQkJLyogb3RoZXIgbWVzc2FnZSB0eXBlcyBhcmUgcHVycG9z ZWZ1bGx5IGlnbm9yZWQgKi8KQEAgLTM1ODAsNyArMzcwNyw3IEBAIExvZ2ljYWxSZXBBcHBseUxv b3AoWExvZ1JlY1B0ciBsYXN0X3JlY2VpdmVkKQogCQl9CiAKIAkJLyogY29uZmlybSBhbGwgd3Jp dGVzIHNvIGZhciAqLwotCQlzZW5kX2ZlZWRiYWNrKGxhc3RfcmVjZWl2ZWQsIGZhbHNlLCBmYWxz ZSk7CisJCXNlbmRfZmVlZGJhY2sobGFzdF9yZWNlaXZlZCwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7 CiAKIAkJaWYgKCFpbl9yZW1vdGVfdHJhbnNhY3Rpb24gJiYgIWluX3N0cmVhbWVkX3RyYW5zYWN0 aW9uKQogCQl7CkBAIC0zNjc3LDcgKzM4MDQsNyBAQCBMb2dpY2FsUmVwQXBwbHlMb29wKFhMb2dS ZWNQdHIgbGFzdF9yZWNlaXZlZCkKIAkJCQl9CiAJCQl9CiAKLQkJCXNlbmRfZmVlZGJhY2sobGFz dF9yZWNlaXZlZCwgcmVxdWVzdFJlcGx5LCByZXF1ZXN0UmVwbHkpOworCQkJc2VuZF9mZWVkYmFj ayhsYXN0X3JlY2VpdmVkLCByZXF1ZXN0UmVwbHksIHJlcXVlc3RSZXBseSwgZmFsc2UpOwogCiAJ CQkvKgogCQkJICogRm9yY2UgcmVwb3J0aW5nIHRvIGVuc3VyZSBsb25nIGlkbGUgcGVyaW9kcyBk b24ndCBsZWFkIHRvCkBAIC0zNzA3LDcgKzM4MzQsNyBAQCBMb2dpY2FsUmVwQXBwbHlMb29wKFhM b2dSZWNQdHIgbGFzdF9yZWNlaXZlZCkKICAqIHRvIHNlbmQgYSByZXNwb25zZSB0byBhdm9pZCB0 aW1lb3V0cy4KICAqLwogc3RhdGljIHZvaWQKLXNlbmRfZmVlZGJhY2soWExvZ1JlY1B0ciByZWN2 cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSkKK3NlbmRfZmVlZGJhY2soWExvZ1Jl Y1B0ciByZWN2cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVlc3RSZXBseSwgYm9vbCBpbl9kZWxh eWVkX2FwcGx5KQogewogCXN0YXRpYyBTdHJpbmdJbmZvIHJlcGx5X21lc3NhZ2UgPSBOVUxMOwog CXN0YXRpYyBUaW1lc3RhbXBUeiBzZW5kX3RpbWUgPSAwOwpAQCAtMzczNyw4ICszODY0LDE1IEBA IHNlbmRfZmVlZGJhY2soWExvZ1JlY1B0ciByZWN2cG9zLCBib29sIGZvcmNlLCBib29sIHJlcXVl c3RSZXBseSkKIAkvKgogCSAqIE5vIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9ucyB0byBmbHVzaCwg d2UgY2FuIHJlcG9ydCB0aGUgbGF0ZXN0IHJlY2VpdmVkCiAJICogcG9zaXRpb24uIFRoaXMgaXMg aW1wb3J0YW50IGZvciBzeW5jaHJvbm91cyByZXBsaWNhdGlvbi4KKwkgKgorCSAqIElmIHRoZSBz dWJzY3JpYmVyIHNpZGUgYXBwbHkgaXMgZGVsYXllZCAoYmVjYXVzZSBvZiB0aW1lLWRlbGF5ZWQK KwkgKiByZXBsaWNhdGlvbikgdGhlbiBkbyBub3QgdGVsbCB0aGUgcHVibGlzaGVyIHRoYXQgdGhl IHJlY2VpdmVkIGxhdGVzdAorCSAqIExTTiBpcyBhbHJlYWR5IGFwcGxpZWQgYW5kIGZsdXNoZWQs IG90aGVyd2lzZSwgaXQgbGVhZHMgdG8gdGhlCisJICogcHVibGlzaGVyIHNpZGUgbWFraW5nIGEg d3JvbmcgYXNzdW1wdGlvbiBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uCisJICogcHJvZ3Jlc3MuIElu c3RlYWQsIHdlIGp1c3Qgc2VuZCBhIGZlZWRiYWNrIG1lc3NhZ2UgdG8gYXZvaWQgYSBwdWJsaXNo ZXIKKwkgKiB0aW1lb3V0IGR1cmluZyB0aGUgZGVsYXkuCiAJICovCi0JaWYgKCFoYXZlX3BlbmRp bmdfdHhlcykKKwlpZiAoIWhhdmVfcGVuZGluZ190eGVzICYmICFpbl9kZWxheWVkX2FwcGx5KQog CQlmbHVzaHBvcyA9IHdyaXRlcG9zID0gcmVjdnBvczsKIAogCWlmICh3cml0ZXBvcyA8IGxhc3Rf d3JpdGVwb3MpCkBAIC00MzU0LDExICs0NDg4LDExIEBAIHN0YXJ0X3RhYmxlX3N5bmMoWExvZ1Jl Y1B0ciAqb3JpZ2luX3N0YXJ0cG9zLCBjaGFyICoqbXlzbG90bmFtZSkKICAqIG9mIHN5c3RlbSBy ZXNvdXJjZSBlcnJvciBhbmQgYXJlIG5vdCByZXBlYXRhYmxlLgogICovCiBzdGF0aWMgdm9pZAot c3RhcnRfYXBwbHkoWExvZ1JlY1B0ciBvcmlnaW5fc3RhcnRwb3MpCitzdGFydF9hcHBseSh2b2lk KQogewogCVBHX1RSWSgpOwogCXsKLQkJTG9naWNhbFJlcEFwcGx5TG9vcChvcmlnaW5fc3RhcnRw b3MpOworCQlMb2dpY2FsUmVwQXBwbHlMb29wKCk7CiAJfQogCVBHX0NBVENIKCk7CiAJewpAQCAt NDY0NSw3ICs0Nzc5LDggQEAgQXBwbHlXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCX0KIAog CS8qIFJ1biB0aGUgbWFpbiBsb29wLiAqLwotCXN0YXJ0X2FwcGx5KG9yaWdpbl9zdGFydHBvcyk7 CisJbGFzdF9yZWNlaXZlZCA9IG9yaWdpbl9zdGFydHBvczsKKwlzdGFydF9hcHBseSgpOwogCiAJ cHJvY19leGl0KDApOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVz dGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDkyOGMzMzA4 OTcuLjQyMmU2YWQwZmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3Rh bXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTI0MzEsNiAr MjQzMSwzNSBAQCBpbnRlcnZhbF9jbXBfaW50ZXJuYWwoY29uc3QgSW50ZXJ2YWwgKmludGVydmFs MSwgY29uc3QgSW50ZXJ2YWwgKmludGVydmFsMikKIAlyZXR1cm4gaW50MTI4X2NvbXBhcmUoc3Bh bjEsIHNwYW4yKTsKIH0KIAorLyoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29u ZHMgaW4gdGhlIHNwZWNpZmllZCBJbnRlcnZhbC4KKyAqLworaW50NjQKK2ludGVydmFsMm1zKGNv bnN0IEludGVydmFsICppbnRlcnZhbCkKK3sKKwlpbnQ2NAkJZGF5czsKKwlpbnQ2NAkJbXM7CisJ aW50NjQJCXJlc3VsdDsKKworCWRheXMgPSBpbnRlcnZhbC0+bW9udGggKiBJTlQ2NENPTlNUKDMw KTsKKwlkYXlzICs9IGludGVydmFsLT5kYXk7CisKKwkvKiBEZXRlY3Qgd2hldGhlciB0aGUgdmFs dWUgb2YgaW50ZXJ2YWwgY2FuIGNhdXNlIGFuIG92ZXJmbG93ICovCisJaWYgKHBnX211bF9zNjRf b3ZlcmZsb3coZGF5cywgTVNFQ1NfUEVSX0RBWSwgJnJlc3VsdCkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQll cnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSk7CisKKwkvKiBBZGRzIHBvcnRpb24gdGltZSAo aW4gbXMpIHRvIHRoZSBwcmV2aW91cyByZXN1bHQgKi8KKwltcyA9IGludGVydmFsLT50aW1lIC8g SU5UNjRDT05TVCgxMDAwKTsKKwlpZiAocGdfYWRkX3M2NF9vdmVyZmxvdyhyZXN1bHQsIG1zLCAm cmVzdWx0KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19W QUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsK KworCXJldHVybiByZXN1bHQ7Cit9CisKIERhdHVtCiBpbnRlcnZhbF9lcShQR19GVU5DVElPTl9B UkdTKQogewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNTI3Yzc2NTFhYi4uYzBmNjljYjQzYiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCkBAIC00NDk0LDYgKzQ0OTQsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQp CiAJaW50CQkJaV9zdWJzeW5jY29tbWl0OwogCWludAkJCWlfc3VicHVibGljYXRpb25zOwogCWlu dAkJCWlfc3ViYmluYXJ5OworCWludAkJCWlfc3VibWluYXBwbHlkZWxheTsKIAlpbnQJCQlpLAog CQkJCW50dXBzOwogCkBAIC00NTQ2LDkgKzQ1NDcsMTMgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNo aXZlICpmb3V0KQogCQkJCQkJICBMT0dJQ0FMUkVQX1RXT1BIQVNFX1NUQVRFX0RJU0FCTEVEKTsK IAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE2MDAwMCkKLQkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksICIgcy5zdWJvcmlnaW5cbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwKKwkJCQkJCQkgIiBzLnN1Ym9yaWdpbixcbiIKKwkJCQkJCQkgIiBzLnN1Ym1pbmFwcGx5 ZGVsYXlcbiIpOwogCWVsc2UKLQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgJyVzJyBBUyBz dWJvcmlnaW5cbiIsIExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7CisJCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiICclcycgQVMgc3Vib3JpZ2luLFxuIgorCQkJCQkJICAiIDAgQVMgc3VibWluYXBw bHlkZWxheVxuIiwKKwkJCQkJCSAgTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKIAogCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iCkBA IC00NTc2LDYgKzQ1ODEsNyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9z dWJ0d29waGFzZXN0YXRlID0gUFFmbnVtYmVyKHJlcywgInN1YnR3b3BoYXNlc3RhdGUiKTsKIAlp X3N1YmRpc2FibGVvbmVyciA9IFBRZm51bWJlcihyZXMsICJzdWJkaXNhYmxlb25lcnIiKTsKIAlp X3N1Ym9yaWdpbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKKwlpX3N1Ym1pbmFwcGx5 ZGVsYXkgPSBQUWZudW1iZXIocmVzLCAic3VibWluYXBwbHlkZWxheSIpOwogCiAJc3ViaW5mbyA9 IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihTdWJzY3JpcHRpb25JbmZvKSk7CiAKQEAgLTQ2MDYs NiArNDYxMiw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJc3ViaW5mb1tp XS5zdWJkaXNhYmxlb25lcnIgPQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1 YmRpc2FibGVvbmVycikpOwogCQlzdWJpbmZvW2ldLnN1Ym9yaWdpbiA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV9zdWJvcmlnaW4pKTsKKwkJc3ViaW5mb1tpXS5zdWJtaW5hcHBseWRl bGF5ID0KKwkJCXN0cnRvaTY0KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1Ym1pbmFwcGx5ZGVsYXkp LCBOVUxMLCAxMCk7CiAKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICov CiAJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoc3ViaW5mb1tpXS5kb2JqKSwgZm91dCk7CkBAIC00 Njg3LDYgKzQ2OTUsOSBAQCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1 YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pCiAJaWYgKHN0cmNtcChzdWJpbmZvLT5zdWJzeW5jY29t bWl0LCAib2ZmIikgIT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsIHN5bmNocm9u b3VzX2NvbW1pdCA9ICVzIiwgZm10SWQoc3ViaW5mby0+c3Vic3luY2NvbW1pdCkpOwogCisJaWYg KHN1YmluZm8tPnN1Ym1pbmFwcGx5ZGVsYXkgPiAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVy eSwgIiwgbWluX2FwcGx5X2RlbGF5ID0gJyIgSU5UNjRfRk9STUFUICIgbXMnIiwgc3ViaW5mby0+ c3VibWluYXBwbHlkZWxheSk7CisKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4i KTsKIAogCWlmIChzdWJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9O KQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKaW5kZXggZTdjYmQ4ZDdlZC4uZTI1MjVmNzBhYiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBA IC02NjEsNiArNjYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YnNjcmlwdGlvbkluZm8KIAljaGFy CSAgICpzdWJkaXNhYmxlb25lcnI7CiAJY2hhcgkgICAqc3Vib3JpZ2luOwogCWNoYXIJICAgKnN1 YnN5bmNjb21taXQ7CisJaW50NjQJCXN1Ym1pbmFwcGx5ZGVsYXk7CiAJY2hhcgkgICAqc3VicHVi bGljYXRpb25zOwogfSBTdWJzY3JpcHRpb25JbmZvOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGM4YTBiYjdiM2Eu LjhhMjcwNjNiZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC02NDcyLDcgKzY0NzIsNyBAQCBkZXNjcmliZVN1YnNj cmlwdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAg KnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBi b29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0J ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsK KwlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTAwMDAwKQogCXsKQEAgLTY1MjcsMTAg KzY1MjcsMTMgQEAgZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiVHdvLXBoYXNlIGNvbW1pdCIpLAog CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIG9uIGVycm9yIikpOwogCisJCS8qIE9yaWdp biBhbmQgbWluX2FwcGx5X2RlbGF5IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2MTYgYW5kIGhpZ2hl ciAqLwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNjAwMDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAotCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxuIiwKLQkJCQkJCQkgIGdl dHRleHRfbm9vcCgiT3JpZ2luIikpOworCQkJCQkJCSAgIiwgc3Vib3JpZ2luIEFTIFwiJXNcIlxu IgorCQkJCQkJCSAgIiwgc3VibWluYXBwbHlkZWxheSBBUyBcIiVzXCJcbiIsCisJCQkJCQkJICBn ZXR0ZXh0X25vb3AoIk9yaWdpbiIpLAorCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNaW4gYXBwbHkg ZGVsYXkgKG1zKSIpKTsKIAogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJICAiLCAg c3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCA1ZTE4ODJlYWVh Li5lOGI5YTQzYTQ3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysr IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBwc3Fs X2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01Q TEVURV9XSVRIKCIoIiwgIlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxu YW1lPiBTRVQgKCAqLwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJ T04iLCBNYXRjaEFueSkgJiYgVGFpbE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJ VEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgIm9yaWdpbiIsICJzbG90X25hbWUiLAor CQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJtaW5fYXBwbHlf ZGVsYXkiLCAib3JpZ2luIiwgInNsb3RfbmFtZSIsCiAJCQkJCSAgInN0cmVhbWluZyIsICJzeW5j aHJvbm91c19jb21taXQiKTsKIAkvKiBBTFRFUiBTVUJTQ1JJUFRJT04gPG5hbWU+IFNLSVAgKCAq LwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFu eSkgJiYgVGFpbE1hdGNoZXMoIlNLSVAiLCAiKCIpKQpAQCAtMzI2OCw3ICszMjY4LDcgQEAgcHNx bF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkvKiBD b21wbGV0ZSAiQ1JFQVRFIFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICov CiAJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iKSAmJiBUYWls TWF0Y2hlcygiV0lUSCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25uZWN0 IiwgImNvcHlfZGF0YSIsICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25fZXJyb3Ii LCAiZW5hYmxlZCIsICJvcmlnaW4iLCAic2xvdF9uYW1lIiwKKwkJCQkJICAiZGlzYWJsZV9vbl9l cnJvciIsICJlbmFibGVkIiwgIm1pbl9hcHBseV9kZWxheSIsICJvcmlnaW4iLCAic2xvdF9uYW1l IiwKIAkJCQkJICAic3RyZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2Ui KTsKIAogLyogQ1JFQVRFIFRSSUdHRVIgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hF TUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9u LmgKaW5kZXggYjBmMmExNzA1ZC4uZTA2ZjM1YzAzNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5oCkBAIC03MCw2ICs3MCw4IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYx MDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJ WExvZ1JlY1B0cglzdWJza2lwbHNuOwkJLyogQWxsIGNoYW5nZXMgZmluaXNoZWQgYXQgdGhpcyBM U04gYXJlCiAJCQkJCQkJCSAqIHNraXBwZWQgKi8KIAorCWludDY0CQlzdWJtaW5hcHBseWRlbGF5 OwkvKiBSZXBsaWNhdGlvbiBhcHBseSBkZWxheSAobXMpICovCisKIAlOYW1lRGF0YQlzdWJuYW1l OwkJLyogTmFtZSBvZiB0aGUgc3Vic2NyaXB0aW9uICovCiAKIAlPaWQJCQlzdWJvd25lciBCS0lf TE9PS1VQKHBnX2F1dGhpZCk7IC8qIE93bmVyIG9mIHRoZSBzdWJzY3JpcHRpb24gKi8KQEAgLTEy MCw2ICsxMjIsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAkJCQkJCQkJICogaW4g Ki8KIAlYTG9nUmVjUHRyCXNraXBsc247CQkvKiBBbGwgY2hhbmdlcyBmaW5pc2hlZCBhdCB0aGlz IExTTiBhcmUKIAkJCQkJCQkJICogc2tpcHBlZCAqLworCWludDY0CQltaW5hcHBseWRlbGF5Owkv KiBSZXBsaWNhdGlvbiBhcHBseSBkZWxheSAobXMpICovCiAJY2hhcgkgICAqbmFtZTsJCQkvKiBO YW1lIG9mIHRoZSBzdWJzY3JpcHRpb24gKi8KIAlPaWQJCQlvd25lcjsJCQkvKiBPaWQgb2YgdGhl IHN1YnNjcmlwdGlvbiBvd25lciAqLwogCWJvb2wJCWVuYWJsZWQ7CQkvKiBJbmRpY2F0ZXMgaWYg dGhlIHN1YnNjcmlwdGlvbiBpcyBlbmFibGVkICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9k YXRhdHlwZS90aW1lc3RhbXAuaCBiL3NyYy9pbmNsdWRlL2RhdGF0eXBlL3RpbWVzdGFtcC5oCmlu ZGV4IDIxYTM3ZTIxZTkuLjhiMzY4YWYyOTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2RhdGF0 eXBlL3RpbWVzdGFtcC5oCisrKyBiL3NyYy9pbmNsdWRlL2RhdGF0eXBlL3RpbWVzdGFtcC5oCkBA IC0xMjcsNiArMTI3LDggQEAgc3RydWN0IHBnX2l0bV9pbgogI2RlZmluZSBTRUNTX1BFUl9NSU5V VEUgNjAKICNkZWZpbmUgTUlOU19QRVJfSE9VUgk2MAogCisjZGVmaW5lIE1TRUNTX1BFUl9EQVkJ SU5UNjRDT05TVCg4NjQwMDAwMCkKKwogI2RlZmluZSBVU0VDU19QRVJfREFZCUlOVDY0Q09OU1Qo ODY0MDAwMDAwMDApCiAjZGVmaW5lIFVTRUNTX1BFUl9IT1VSCUlOVDY0Q09OU1QoMzYwMDAwMDAw MCkKICNkZWZpbmUgVVNFQ1NfUEVSX01JTlVURSBJTlQ2NENPTlNUKDYwMDAwMDAwKQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmggYi9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAppbmRleCBkYzg3YTRlZGQxLi4zZGMw OWQxYTRjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJu YWwuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAt MjU1LDcgKzI1NSw3IEBAIGV4dGVybiB2b2lkIHN0cmVhbV9zdG9wX2ludGVybmFsKFRyYW5zYWN0 aW9uSWQgeGlkKTsKIAogLyogQ29tbW9uIHN0cmVhbWluZyBmdW5jdGlvbiB0byBhcHBseSBhbGwg dGhlIHNwb29sZWQgbWVzc2FnZXMgKi8KIGV4dGVybiB2b2lkIGFwcGx5X3Nwb29sZWRfbWVzc2Fn ZXMoRmlsZVNldCAqc3RyZWFtX2ZpbGVzZXQsIFRyYW5zYWN0aW9uSWQgeGlkLAotCQkJCQkJCQkg ICBYTG9nUmVjUHRyIGxzbik7CisJCQkJCQkJCSAgIFhMb2dSZWNQdHIgbHNuLCBUaW1lc3RhbXBU eiBmaW5pc2hfdHMpOwogCiBleHRlcm4gdm9pZCBhcHBseV9kaXNwYXRjaChTdHJpbmdJbmZvIHMp OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy90aW1lc3RhbXAuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3RpbWVzdGFtcC5oCmluZGV4IDQyZjgwMmJiOWQuLjUzNDA1MWZlMTMgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3RpbWVzdGFtcC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0 aWxzL3RpbWVzdGFtcC5oCkBAIC0xMDIsNiArMTAyLDggQEAgZXh0ZXJuIGJvb2wgVGltZXN0YW1w RGlmZmVyZW5jZUV4Y2VlZHMoVGltZXN0YW1wVHogc3RhcnRfdGltZSwKIAkJCQkJCQkJCSAgIFRp bWVzdGFtcFR6IHN0b3BfdGltZSwKIAkJCQkJCQkJCSAgIGludCBtc2VjKTsKIAorZXh0ZXJuIGlu dDY0IGludGVydmFsMm1zKGNvbnN0IEludGVydmFsICppbnRlcnZhbCk7CisKIGV4dGVybiBUaW1l c3RhbXBUeiB0aW1lX3RfdG9fdGltZXN0YW1wdHoocGdfdGltZV90IHRtKTsKIGV4dGVybiBwZ190 aW1lX3QgdGltZXN0YW1wdHpfdG9fdGltZV90KFRpbWVzdGFtcFR6IHQpOwogCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggNGU1Y2IwZDNhOS4uZWIyNWMy ODZhMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAt MTE0LDE4ICsxMTQsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3Jp cHRpb24uCiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5ICht cykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgx IHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4g PSBhbnkpOwogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAo bXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAo MSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjM7CkBAIC0xMzUsMTAg KzEzNSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04g J2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiBtaXNz aW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25uZWN0aW9uIGluZm8gc3RyaW5nCiAKIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAg ICAgICAgICAgICAgICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCBQVUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVzaCA9 IGZhbHNlKTsKQEAgLTE1NSwxMCArMTU1LDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNj cmlwdGlvbiBwYXJhbWV0ZXI6ICJjcmVhdGVfc2xvdCIKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzEyMzQ1Jyk7CiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAg UHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVs YXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAg ICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAg ICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9O RQpAQCAtMTY3LDEwICsxNjcsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTS0lQIChsc24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0tJUCAobHNuID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTog MC8wCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91 cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QyIHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogQkVHSU47CkBAIC0y MDIsMTAgKzIwMiwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2ZvbyBT RVQgKHN5bmNocm9ub3VzX2NvbW1pdCA9IGZvb2Jhcik7CiBFUlJPUjogIGludmFsaWQgdmFsdWUg Zm9yIHBhcmFtZXRlciAic3luY2hyb25vdXNfY29tbWl0IjogImZvb2JhciIKIEhJTlQ6ICBBdmFp bGFibGUgdmFsdWVzOiBsb2NhbCwgcmVtb3RlX3dyaXRlLCByZW1vdGVfYXBwbHksIG9uLCBvZmYu CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0 ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgIE5hbWUgICAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9u ICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAg fCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8w CiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0y MzksMTkgKzIzOSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNj cmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0 aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlv biBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlw dGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRp b24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoYmluYXJ5ID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWlu IGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAg ICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsK QEAgLTI2MywyNyArMjYzLDI3IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAg c3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRv IGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxp Y2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vi c2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFs bGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAg ICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBk ZWxheSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAg MCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAogKDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMKQEAgLTI5 OCwxMCArMjk4LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBV QkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyCiBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lU SCAocmVmcmVzaCA9IGZhbHNlKTsKIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIxIiBpcyBh bHJlYWR5IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1 YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAg ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAg ICAgMCB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAogKDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4gb25j ZQpAQCAtMzE2LDEwICszMTYsMTAgQEAgRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMiIGlz IG5vdCBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRlIHB1 YmxpY2F0aW9ucwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRScysK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0g ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8ICAgICAg ICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YjsKQEAgLTM1NSwxMCArMzU1LDEwIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJO SU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElO VDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhl IHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0 aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgTWluIGFwcGx5IGRlbGF5IChtcykgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8ICAgICAgICAgICAgICAgICAgICAwIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tZmFp bCAtIGFsdGVyIG9mIHR3b19waGFzZSBvcHRpb24gbm90IHN1cHBvcnRlZC4KQEAgLTM2NywxMCAr MzY3LDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJ0 d29fcGhhc2UiCiAtLSBidXQgY2FuIGFsdGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFi bGVkCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0g dHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzgwLDEwICsz ODAsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAn ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24g d2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVw bGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwg ZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBNaW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9u ICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg ICAgICAgICAgICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzk2LDIwICszOTYsNTcgQEAg Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0 ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24s IHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRo ZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBN aW4gYXBwbHkgZGVsYXkgKG1zKSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgICAgICAgICAg ICAgICAgICAgIDAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8 IGFueSAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxh eSAobXMpIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgICAgMCB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAog KDEgcm93KQogCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLSBmYWls IC0tIG1pbl9hcHBseV9kZWxheSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIKK0NSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2Us IG1pbl9hcHBseV9kZWxheSA9IGZvbyk7CitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZv ciB0eXBlIGludGVydmFsOiAiZm9vIgorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0 ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWluX2FwcGx5X2RlbGF5ID0gLTEpOworRVJS T1I6ICAtMSBtcyBpcyBvdXRzaWRlIHRoZSB2YWxpZCByYW5nZSBmb3IgcGFyYW1ldGVyICJtaW5f YXBwbHlfZGVsYXkiICgwIC4uIDIxNDc0ODM2NDcpCistLSBmYWlsIC0gdXRpbGl6aW5nIHN0cmVh bWluZyA9IHBhcmFsbGVsIHdpdGggdGltZS1kZWxheWVkIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBw b3J0ZWQuCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29u bmVjdCA9IGZhbHNlLCBzdHJlYW1pbmcgPSBwYXJhbGxlbCwgbWluX2FwcGx5X2RlbGF5ID0gJzEg ZGF5Jyk7CitFUlJPUjogIG1pbl9hcHBseV9kZWxheSA+IDAgYW5kIHN0cmVhbWluZyA9IHBhcmFs bGVsIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgb3B0aW9ucworLS0gc3VjY2VzcyAtLSBtaW5fYXBw bHlfZGVsYXkgdmFsdWUgd2l0aG91dCB1bml0IGlzIHRha2VuIGFzIG1pbGxpc2Vjb25kcworQ1JF QVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxz ZSwgbWluX2FwcGx5X2RlbGF5ID0gMTIzKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCitcZFJzKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAgICAgIDEyMyB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorKDEgcm93KQor CistLSBzdWNjZXNzIC0tIG1pbl9hcHBseV9kZWxheSBpbnRlcnZhbCBpcyBjb252ZXJ0ZWQgaW50 byBtcyBhbmQgc3RvcmVkIGFzIGFuIGludGVnZXIKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSAnNGggMjdtaW4gMzVzJyk7CitcZFJzKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IE1pbiBhcHBseSBkZWxheSAobXMpIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCAgICAgICAgICAgICAxNjA1NTAwMCB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorKDEgcm93KQor CistLSBmYWlsIC0gYWx0ZXIgc3Vic2NyaXB0aW9uIHdpdGggc3RyZWFtaW5nID0gcGFyYWxsZWwg c2hvdWxkIGZhaWwgd2hlbiB0aW1lLWRlbGF5ZWQgcmVwbGljYXRpb24gaXMgc2V0LgorQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsK K0VSUk9SOiAgY2Fubm90IGVuYWJsZSBzdHJlYW1pbmcgPSBwYXJhbGxlbCBtb2RlIGZvciBzdWJz Y3JpcHRpb24gd2l0aCBtaW5fYXBwbHlfZGVsYXkKKy0tIGZhaWwgLSBhbHRlciBzdWJzY3JpcHRp b24gd2l0aCBtaW5fYXBwbHlfZGVsYXkgc2hvdWxkIGZhaWwgd2hlbiBzdHJlYW1pbmcgPSBwYXJh bGxlbCBpcyBzZXQuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAobWlu X2FwcGx5X2RlbGF5ID0gMCwgc3RyZWFtaW5nID0gcGFyYWxsZWwpOworQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKG1pbl9hcHBseV9kZWxheSA9IDEyMyk7CitFUlJPUjog IGNhbm5vdCBlbmFibGUgbWluX2FwcGx5X2RlbGF5IGZvciBzdWJzY3JpcHRpb24gaW4gc3RyZWFt aW5nID0gcGFyYWxsZWwgbW9kZQogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi OwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlw dGlvbi5zcWwKaW5kZXggNWYyN2I3ZDc3Ni4uZDRjMmExOTg3ZSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zdWJzY3JpcHRpb24uc3FsCkBAIC0yNzksNiArMjc5LDMwIEBAIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CiAKKy0tIGZhaWwgLS0gbWluX2FwcGx5X2Rl bGF5IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcgorQ1JFQVRFIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgbWluX2FwcGx5X2RlbGF5 ID0gZm9vKTsKK0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIG1pbl9hcHBseV9kZWxheSA9IC0xKTsKKworLS0gZmFpbCAtIHV0aWxp emluZyBzdHJlYW1pbmcgPSBwYXJhbGxlbCB3aXRoIHRpbWUtZGVsYXllZCByZXBsaWNhdGlvbiBp cyBub3Qgc3VwcG9ydGVkLgorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09O TkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHVi IFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgc3RyZWFtaW5nID0gcGFyYWxsZWwsIG1pbl9hcHBseV9k ZWxheSA9ICcxIGRheScpOworCistLSBzdWNjZXNzIC0tIG1pbl9hcHBseV9kZWxheSB2YWx1ZSB3 aXRob3V0IHVuaXQgaXMgdGFrZW4gYXMgbWlsbGlzZWNvbmRzCitDUkVBVEUgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qn IFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBtaW5fYXBwbHlfZGVs YXkgPSAxMjMpOworXGRScysKKworLS0gc3VjY2VzcyAtLSBtaW5fYXBwbHlfZGVsYXkgaW50ZXJ2 YWwgaXMgY29udmVydGVkIGludG8gbXMgYW5kIHN0b3JlZCBhcyBhbiBpbnRlZ2VyCitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAobWluX2FwcGx5X2RlbGF5ID0gJzRoIDI3 bWluIDM1cycpOworXGRScysKKworLS0gZmFpbCAtIGFsdGVyIHN1YnNjcmlwdGlvbiB3aXRoIHN0 cmVhbWluZyA9IHBhcmFsbGVsIHNob3VsZCBmYWlsIHdoZW4gdGltZS1kZWxheWVkIHJlcGxpY2F0 aW9uIGlzIHNldC4KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJl YW1pbmcgPSBwYXJhbGxlbCk7CisKKy0tIGZhaWwgLSBhbHRlciBzdWJzY3JpcHRpb24gd2l0aCBt aW5fYXBwbHlfZGVsYXkgc2hvdWxkIGZhaWwgd2hlbiBzdHJlYW1pbmcgPSBwYXJhbGxlbCBpcyBz ZXQuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAobWluX2FwcGx5X2Rl bGF5ID0gMCwgc3RyZWFtaW5nID0gcGFyYWxsZWwpOworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgKG1pbl9hcHBseV9kZWxheSA9IDEyMyk7CitBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWI7CisKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERS T1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29u LmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IDNkYjBmZGZk OTYuLmExODY4NzZlYjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5i dWlsZAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKQEAgLTM4LDYgKzM4 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDI5X29uX2Vycm9yLnBsJywKICAgICAgICd0LzAz MF9vcmlnaW4ucGwnLAogICAgICAgJ3QvMDMxX2NvbHVtbl9saXN0LnBsJywKKyAgICAgICd0LzAz Ml9hcHBseV9kZWxheS5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAgICAgXSwKICAgfSwK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9hcHBseV9kZWxheS5wbCBi L3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9hcHBseV9kZWxheS5wbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43YTg0YTNmMGUyCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMyX2FwcGx5X2RlbGF5LnBsCkBAIC0wLDAgKzEsMTk1 IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIzLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorCisjIFRlc3QgcmVwbGljYXRpb24gYXBwbHkgZGVsYXkKK3VzZSBzdHJpY3Q7Cit1 c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitteSAkbG9nX2xvY2F0aW9uID0g MDsKKworIyBDb25maXJtIHRoZSB0aW1lLWRlbGF5ZWQgcmVwbGljYXRpb24gaGFzIGJlZW4gZWZm ZWN0aXZlIGZyb20gdGhlIHNlcnZlciBsb2cKKyMgbWVzc2FnZSB3aGVyZSB0aGUgYXBwbHkgd29y a2VyIGVtaXRzIGZvciBhcHBseWluZyBkZWxheS4gV2hlbiBuZWNlc3NhcnksCisjIHZlcmlmaWVz IHRoYXQgdGhlIGN1cnJlbnQgd29ya2VyJ3MgZGVsYXllZCB0aW1lIGlzIHN1ZmZpY2llbnRseSBi aWdnZXIgdGhhbgorIyB0aGUgZXhwZWN0ZWQgdmFsdWUsIGluIG9yZGVyIHRvIGNoZWNrIGFueSB1 cGRhdGUgb2YgdGhlIG1pbl9hcHBseV9kZWxheS4KK3N1YiBjaGVja19hcHBseV9kZWxheV9sb2cK K3sKKwlteSAoJG5vZGVfc3Vic2NyaWJlciwgJGV4cGVjdGVkKSA9IEBfOworCSRleHBlY3RlZCA9 IDAgdW5sZXNzIGRlZmluZWQgJGV4cGVjdGVkOworCisJbXkgJG9sZF9sb2dfbG9jYXRpb24gPSAk bG9nX2xvY2F0aW9uOworCisJJGxvZ19sb2NhdGlvbiA9ICRub2RlX3N1YnNjcmliZXItPndhaXRf Zm9yX2xvZyhxci9sb2dpY2FsIHJlcGxpY2F0aW9uIGFwcGx5IGRlbGF5LywgJGxvZ19sb2NhdGlv bik7CisKKwljbXBfb2soJGxvZ19sb2NhdGlvbiwgJz4nLCAkb2xkX2xvZ19sb2NhdGlvbiwKKwkJ ImxvZ2ZpbGUgY29udGFpbnMgdHJpZ2dlcmVkIGxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkgZGVs YXkiCisJKTsKKworCWlmICgkZXhwZWN0ZWQgPiAwKQorCXsKKwkJIyBHZXQgdGhlIGRlbGF5IHRp bWUgZnJvbSB0aGUgc2VydmVyIGxvZworCQlteSAkY29udGVudHMgPSBzbHVycF9maWxlKCRub2Rl X3N1YnNjcmliZXItPmxvZ2ZpbGUsICRvbGRfbG9nX2xvY2F0aW9uKTsKKwkJJGNvbnRlbnRzID1+ CisJCXFyL2xvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkgZGVsYXk6IChcZCspIG1zLworCQlvciBk aWUgImNvdWxkIG5vdCBnZXQgdGhlIGFwcGx5IHdvcmtlciB3YWl0IHRpbWUiOworCQlteSAkbG9n Z2VkX2RlbGF5ID0gJDE7CisKKwkJIyBJcyBpdCBsYXJnZXIgdGhhbiBleHBlY3RlZD8KKwkJY21w X29rKCRsb2dnZWRfZGVsYXksICc+JywgJGV4cGVjdGVkLAorCQkJIlRoZSBhcHBseSB3b3JrZXIg d2FpdCB0aW1lIGhhcyBleHBlY3RlZCBkdXJhdGlvbiIKKwkJKTsKKwl9Cit9CisKKyMgQ29tcGFy ZSBpbnNlcnRlZCB0aW1lIG9uIHRoZSBwdWJsaXNoZXIgd2l0aCBhcHBsaWVkIHRpbWUgb24gdGhl IHN1YnNjcmliZXIgdG8KKyMgY29uZmlybSB0aGUgbGF0dGVyIGlzIGFwcGxpZWQgYWZ0ZXIgZXhw ZWN0ZWQgdGltZS4KK3N1YiBjaGVja19hcHBseV9kZWxheV90aW1lCit7CisJbXkgKCRub2RlX3B1 Ymxpc2hlciwgJG5vZGVfc3Vic2NyaWJlciwgJHByaW1hcnlfa2V5LCAkZXhwZWN0ZWRfZGlmZnMp ID0gQF87CisKKwlteSAkaW5zZXJ0ZWRfdGltZV9vbl9wdWIgPSAkbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIGV4dHJhY3QoZXBvY2ggZnJvbSBjKSBG Uk9NIHRlc3RfdGFiIFdIRVJFIGEgPSAkcHJpbWFyeV9rZXk7CisJXSk7CisKKwlteSAkaW5zZXJ0 ZWRfdGltZV9vbl9zdWIgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXFbCisJCVNFTEVDVCBleHRyYWN0KGVwb2NoIGZyb20gYykgRlJPTSB0ZXN0X3RhYiBXSEVSRSBh ID0gJHByaW1hcnlfa2V5OworCV0pOworCisJY21wX29rKCRpbnNlcnRlZF90aW1lX29uX3N1YiAt ICRpbnNlcnRlZF90aW1lX29uX3B1YiwgJz4nLCAkZXhwZWN0ZWRfZGlmZnMsCisJCSJUaGUgdHVw bGUgb24gdGhlIHN1YnNjcmliZXIgd2FzIG1vZGlmaWVkIGxhdGVyIHRoYW4gdGhlIHB1Ymxpc2hl ciIpOworfQorCisjIENyZWF0ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5vZGVfcHVibGlzaGVyID0g UG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxp c2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNo ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCSdsb2dpY2FsX2RlY29kaW5nX3dv cmtfbWVtID0gNjRrQicpOworJG5vZGVfcHVibGlzaGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vi c2NyaWJlciBub2RlCitteSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0OworJG5vZGVf c3Vic2NyaWJlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJImxvZ19taW5fbWVz c2FnZXMgPSBkZWJ1ZzIiKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIENyZWF0ZSBz b21lIHByZWV4aXN0aW5nIGNvbnRlbnQgb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVzdF90YWIgKGEgaW50IHByaW1h cnkga2V5LCBiIHZhcmNoYXIsIGMgdGltZXN0YW1wdHogREVGQVVMVCBub3coKSkiKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlc3RfdGFi IFZBTFVFUyAoMSwgJ2ZvbycpLCAoMiwgJ2JhcicpIik7CisKKyMgU2V0dXAgc3RydWN0dXJlIG9u IHN1YnNjcmliZXIKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgVEFCTEUgdGVzdF90YWIgKGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQsIGMgdGltZXN0 YW1wdHogREVGQVVMVCBub3coKSwgZCBiaWdpbnQgREVGQVVMVCA5OTkpIgorKTsKKworIyBTZXR1 cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJs aXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7CisKKyMgVGhlIGNvbHVtbiBjIG11 c3Qgbm90IGJlIHB1Ymxpc2hlZCBiZWNhdXNlIHdlIHdhbnQgdG8gY29tcGFyZSB0aGUgdGltZQor IyBkaWZmZXJlbmNlLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki Q1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIgRk9SIFRBQkxFIHRlc3RfdGFiIChhLCBiKSIpOwor CitteSAkYXBwbmFtZSA9ICd0YXBfc3ViJzsKKworIyBDcmVhdGUgYSBzdWJzY3JpcHRpb24gdGhh dCBhcHBsaWVzIHRoZSB0cmFzYWN0aW9uIGFmdGVyIDMgc2Vjb25kcyBkZWxheQorJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFw X3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHIgYXBwbGljYXRpb25fbmFtZT0kYXBw bmFtZScgUFVCTElDQVRJT04gdGFwX3B1YiBXSVRIIChzdHJlYW1pbmcgPSBvbiwgbWluX2FwcGx5 X2RlbGF5ID0gJzNzJykiCispOworCisjIFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBm aW5pc2gKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2Rl X3B1Ymxpc2hlciwgJGFwcG5hbWUpOworCisjIENoZWNrIGxvZyBzdGFydGluZyBub3cgZm9yIGxv Z2ljYWwgcmVwbGljYXRpb24gYXBwbHkgZGVsYXkKKyRsb2dfbG9jYXRpb24gPSAtcyAkbm9kZV9z dWJzY3JpYmVyLT5sb2dmaWxlOworCitteSAkcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkg RlJPTSB0ZXN0X3RhYiIpOworaXMoJHJlc3VsdCwgcXEoMnwxfDIpLCAnY2hlY2sgaW5pdGlhbCBk YXRhIHdhcyBjb3BpZWQgdG8gc3Vic2NyaWJlcicpOworCisjIE5ldyByb3cgdG8gdHJpZ2dlciBh cHBseSBkZWxheQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5T RVJUIElOVE8gdGVzdF90YWIgVkFMVUVTICgzLCAnYmF6JykiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlc3RfdGFiIFZBTFVFUyAoNCwg J2FiYycpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNF UlQgSU5UTyB0ZXN0X3RhYiBWQUxVRVMgKDUsICdkZWYnKSIpOworCiskbm9kZV9wdWJsaXNoZXIt PndhaXRfZm9yX2NhdGNodXAoJGFwcG5hbWUpOworCiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBt YXgoYSkgRlJPTSB0ZXN0X3RhYiIpOworaXMoJHJlc3VsdCwgcXEoNXwxfDUpLCAnY2hlY2sgaWYg dGhlIG5ldyByb3dzIHdlcmUgYXBwbGllZCB0byBzdWJzY3JpYmVyJyk7CisKKyMgVmVyaWZ5IHRo YXQgdGhlIGFwcGx5IHdvcmtlciBlbWl0cyB0aGUgYXBwbHkgZGVsYXkgbG9nCitjaGVja19hcHBs eV9kZWxheV9sb2coJG5vZGVfc3Vic2NyaWJlcik7CisKKyMgVmVyaWZ5IHRoYXQgdGhlIHN1YnNj cmliZXIgbGFncyB0aGUgcHVibGlzaGVyIGJ5IGF0IGxlYXN0IDMgc2Vjb25kcworY2hlY2tfYXBw bHlfZGVsYXlfdGltZSgkbm9kZV9wdWJsaXNoZXIsICRub2RlX3N1YnNjcmliZXIsICc1JywgJzMn KTsKKworIyBSZWR1Y2UgdGhlIGFtb3VudHMgb2Ygd3JpdGVzIGZvciBzcG9vbGluZyBmaWxlCisk bm9kZV9wdWJsaXNoZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlcy5jb25mJywKKwknbG9naWNhbF9k ZWNvZGluZ19tb2RlID0gaW1tZWRpYXRlJyk7Ciskbm9kZV9wdWJsaXNoZXItPnJlbG9hZDsKKwor IyBSdW4gYSBxdWVyeSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcmVsb2FkIGhhcyB0YWtlbiBlZmZl Y3QuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCAxfSk7 CisKKyMgVGVzdCBzdHJlYW1lZCB0cmFuc2FjdGlvbiBieSBpbnNlcnQsIHVwZGF0ZSBhbmQgZGVs ZXRlCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5U TyB0ZXN0X3RhYiBTRUxFQ1QgaSwgbWQ1KGk6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDYs IDgpIHMoaSk7Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgkYXBwbmFt ZSk7CisKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHRlc3RfdGFiIik7Citp cygkcmVzdWx0LCBxcSg4fDF8OCksICdjaGVjayBpZiB0aGUgbmV3IHJvd3Mgd2VyZSBhcHBsaWVk IHRvIHN1YnNjcmliZXInKTsKKworIyBWZXJpZnkgdGhhdCB0aGUgYXBwbHkgd29ya2VyIGVtaXRz IHRoZSBhcHBseSBkZWxheSBsb2cKK2NoZWNrX2FwcGx5X2RlbGF5X2xvZygkbm9kZV9zdWJzY3Jp YmVyKTsKKworIyBWZXJpZnkgdGhhdCB0aGUgc3Vic2NyaWJlciBsYWdzIHRoZSBwdWJsaXNoZXIg YnkgYXQgbGVhc3QgMyBzZWNvbmRzCitjaGVja19hcHBseV9kZWxheV90aW1lKCRub2RlX3B1Ymxp c2hlciwgJG5vZGVfc3Vic2NyaWJlciwgJzgnLCAnMycpOworCisjIFRlc3Qgd2hldGhlciBBTFRF UiBTVUJTQ1JJUFRJT04gY2hhbmdlcyB0aGUgZGVsYXllZCB0aW1lIG9mIHRoZSBhcHBseSB3b3Jr ZXIKKyMgKDEgZGF5IDUgbWludXRlcykuIE5vdGUgdGhhdCB0aGUgZXh0cmEgNSBtaW51dGUgaXMg dG8gYWNjb3VudCBmb3IgYW55CisjIGRlY29kaW5nL25ldHdvcmsgb3ZlcmhlYWQuCiskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRh cF9zdWIgU0VUIChtaW5fYXBwbHlfZGVsYXkgPSA4NjcwMDAwMCkiCispOworCisjIE5ldyByb3cg dG8gdHJpZ2dlciBhcHBseSBkZWxheQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGVzdF90YWIgVkFMVUVTICgwLCAnZm9vYmFyJykiKTsKKwor IyBNYWtlIHN1cmUgdGhlIGFwcGx5IHdvcmtlciBrbm93cyB0byB3YWl0IGZvciBtb3JlIHRoYW4g MSBkYXkKK2NoZWNrX2FwcGx5X2RlbGF5X2xvZygkbm9kZV9zdWJzY3JpYmVyLCAiODY0MDAwMDAi KTsKKworIyBEaXNhYmxlIHN1YnNjcmlwdGlvbiBhbmQgdGhlIHdvcmtlciBzaG91bGQgZGllIGlt bWVkaWF0ZWx5Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxU RVIgU1VCU0NSSVBUSU9OIHRhcF9zdWIgRElTQUJMRTsiCispOworCisjIFdhaXQgdW50aWwgd29y a2VyIGRpZXMKK215ICRzdWJfcXVlcnkgPQorICAiU0VMRUNUIGNvdW50KDEpID0gMCBGUk9NIHBn X3N0YXRfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAndGFwX3N1YicgQU5EIHBpZCBJUyBO T1QgTlVMTDsiOworJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMn LCAkc3ViX3F1ZXJ5KQorICBvciBkaWUgIlRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJz Y3JpYmVyIHRvIGRpZSI7CisKKyMgQ29uZmlybSB0aGUgc3VzcGVuZGVkIHJlY29yZCBkb2Vzbid0 IGdldCBhcHBsaWVkIGV4cGVjdGVkbHkgYnkgdGhlIEFMVEVSCisjIERJU0FCTEUgY29tbWFuZC4K KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUIGNvdW50KGEpIEZST00gdGVzdF90YWIgV0hFUkUgYSA9IDA7Iik7CitpcygkcmVzdWx0LCBx cSgwKSwgImNoZWNrIGlmIHRoZSBkZWxheWVkIHRyYW5zYWN0aW9uIGRvZXNuJ3QgZ2V0IGFwcGxp ZWQgZXhwZWN0ZWRseSIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wOworJG5vZGVfcHVibGlz aGVyLT5zdG9wOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzAuMAoK --_002_TYCPR01MB8373F5162C7A0E6224670CF0EDC49TYCPR01MB8373jpnp_--