Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rOIPb-0031lH-DA for pgsql-hackers@arkaria.postgresql.org; Fri, 12 Jan 2024 14:21:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rOIPa-002Haz-G8 for pgsql-hackers@arkaria.postgresql.org; Fri, 12 Jan 2024 14:21:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rOIPZ-002Haq-Q0 for pgsql-hackers@lists.postgresql.org; Fri, 12 Jan 2024 14:21:30 +0000 Received: from esa16.fujitsucc.c3s2.iphmx.com ([216.71.158.33]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rOIPW-001CE8-7s for pgsql-hackers@postgresql.org; Fri, 12 Jan 2024 14:21:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1705069286; x=1736605286; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=DqmTha6AG6gSaxAcs8vLgH7w681qcKClNk0Z3zaMhO4=; b=YPzXXUdyCulvZ2b0yD7OmCvkXVx9/DPUlhTr4r+aPGqRH9AEj7bOv2M1 o2SSAJNAjUHBlbhn5HGGeSUMI7WHCMVLOfHVv+cdopFyJaEt1gxkcXjad nD5ZsI+Hj3lIKOfk17OkU+NMu9PR/eu3lCPLfkW8oFX2CqP2IKHj+ZyGJ Uhg8CVFW9ztLzQKSpy2RSsNgbvn6RG29fGxXQK/dd4dVbjSj/18v495ZC NqfrJgEPPl+h99OHWeMZRIiRO7mX069xAlnEKT9tz7EXblYUu93cwsWAx /sIckWzvuNLFk6eY5u7mBt77HeIDDlJidALKufKyxTzpGFUMq43G2phwn Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10951"; a="108011424" X-IronPort-AV: E=Sophos;i="6.04,189,1695654000"; d="scan'208,223";a="108011424" Received: from mail-os0jpn01lp2104.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.104]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jan 2024 23:21:19 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ETg4KlcFZgi/sl5uguiaKDdl5PT/hoXWLkSi5A9a9eMjr1r4ix69Xd/65Rvcc6cX73vcRLIHWiFRkUR7fSG0sy6dXHPuPe8/OfMHa36urlr8l3sk8k7i9kwDKJYGemPPWeRZqmQMbgXno2+m0gKjxYpjqHK/hcVCcldQ2hGxJlvIYQFUmUe6pE0stshrLQfu31iW9W6Tjafb6WWWGvJgIgcGuFu8tP/nIL0whmk5yiObDHTYP+IyD5iPsZpoY8crIMxd5r6+KHUT16WiomCZ5tZtgFS34AJLILrnf9fHyxV8H7cD30spup0mxzrOYux5RPMZtxWZpToSyka9VY6fYg== 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=vMtriXtcjpc99L78SH53CYddoSWUgo5Qeybab6w4zPU=; b=IfPU7mowGKcpEiLGmBDrKQ9iYq0xCDME3oYkC9S5GfDTTlWGSQOwB6cCZKVEqg4oShZje6MTdgB1Kx8s5J5gaER7xlHP1SmKm0q2O7wZbBv+1bIpvZ3SRSdTFqbejz3l9HtCPyoLzvDUn0bcrXnyBbxBJGjBppmWFEjWVaiXKyuoi6lX9PVgH6RHXV7s2fAPwcF9bWvnoLmEsrH8RHyN2w1yDi1fnKUK+JoOezTBHUC0md+TXtJmGBdVSuuF1AcPYZojvaILiXDyL5/BnEkYFOgzuw6bxRUX50kYb+eDes7xfdQp1jHNIh6tCtZ4UeUptW2GL+I8OMwSnn40WBp03g== 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 OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by OS3PR01MB10389.jpnprd01.prod.outlook.com (2603:1096:604:1fa::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.14; Fri, 12 Jan 2024 14:21:15 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1%7]) with mapi id 15.20.7202.013; Fri, 12 Jan 2024 14:21:15 +0000 From: "Zhijie Hou (Fujitsu)" To: Masahiko Sawada , Amit Kapila CC: Dilip Kumar , Bertrand Drouvot , shveta malik , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Ajin Cherian , Alvaro Herrera Subject: RE: Synchronizing slots from primary to standby Thread-Topic: Synchronizing slots from primary to standby Thread-Index: AQHaJE9sgJJNJUqALky3mvuBKJq3g7CYl8uAgAC/xgCAANHogIAAa3WAgAArgoCAAQCOgIAADoeAgAA1dgCAABjKgIAABtwAgAL+XYCABKJcAIAAQJWAgAK2zQCAABFoAIAAWssAgADokgCAAKIxAIABM9iAgAUcsHCAAOg8AIAAsL6AgAEHJgCAAGl7gIAAGzGAgAljCKCAABkPgIABJ9qAgABFKACAApdEgIAANHAAgAanVQCAAbfUMIAA/DsAgAATNYCAAJYZAIAA46aAgAB8dwCAABaPAIAEULaAgAHkvsCAACL0gIAC/nIAgAGlGQCAABuicA== Date: Fri, 12 Jan 2024 14:21:14 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9MDdiNjU2NWUtZDM1My00NjE5LWEyYTktNjcxNWEyODE0?= =?utf-8?B?MWQzO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjQtMDEtMTJUMTM6Mzg6NTlaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?Q?d-81e1-4858-a9d8-736e267fd4c7;?= 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: OS0PR01MB5716:EE_|OS3PR01MB10389:EE_ x-ms-office365-filtering-correlation-id: 4ef81020-911b-475c-6759-08dc1379bc31 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wgDPMwmf5jwKvO1mQtWBkqQyOfjCEO1ajmMiwl7NOQm4Q7bMJvCVqxK9JK/GA8LfY1WjDWfPhUDyyNbwb0MJ3iMldptHc1SLEM8sh4LHM1rMhTGgjVmBvrRqiqcsoza8J7AmVzsNXaJkGkPcUAd0shrZSUU+Gi+FQqUfH4Tnj1eS8SuNMbWqsPq7xTNOXMH3f7K2NpY5akpQfOd9+Z+uKkKptJqVaj/bKYKGzrd14n+S11hlFNMHPsJinBORpiFVHklU8bGEOMsMXkO0XFG6Y3qJrXJFZ0TIieKXvpiWkYG0pW5pZDDfODIXexb4uVOmnJc1a9gjRwoxPv1bMRoRzti1NXhyLkP43pZ0tp8BLrtnfflEzs0Nw0iBhdk7mGyhYLJ/F9uukV45Cjv6E3no8YPSXsoLh7pBJj98KO8ijuxhgTEXBC16FfxO60gKKMX/I0PAkQ/ckSSBtzHoHxiTQqB7AKWbfiaCSx9x21ovU7zfYjyyKiJiVDAPCVgAWEDu8UQDG3tE7cTUEl1LMKINNQaRZkK1dde3MJt0VrLi6MGQREbpmkNLLe5IZTHzmcIcAhOiji3ZM9iHiCL0lY/CVzAg56j5nQt0m6cfkDd89tpCa6iUj2kCDfAQRyfzHYKrxYbhWbSbcRrHVj+AdXaTZz1aMPQxrtMrXOKk709vRA35nZ0DMJUr1AUD5VOObB1g x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(136003)(346002)(376002)(39860400002)(230173577357003)(230922051799003)(230273577357003)(1800799012)(186009)(1590799021)(64100799003)(451199024)(1580799018)(6506007)(7696005)(38070700009)(26005)(9686003)(85182001)(83380400001)(71200400001)(86362001)(53546011)(82960400001)(38100700002)(122000001)(99936003)(33656002)(41300700001)(478600001)(8676002)(8936002)(52536014)(4326008)(5660300002)(66946007)(66476007)(76116006)(66556008)(110136005)(55016003)(316002)(2906002)(66446008)(54906003)(64756008)(7416002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZUNpUjdZd2JiV1p4elJhbjM3S3dTazV0M3ZZV01NR212NTRac1U1M2I0a2Nn?= =?utf-8?B?dytBbjVZbHZWZkg4M1dESERCSzNlS3RCYlhFUkErSzl5Vld3UGZLWVF4VGgw?= =?utf-8?B?SFdSeHo1NlM2bnZzVGZXYWwwVUFVRDE4cUlyZlIwM2tneXpVUmdnamxNMU5P?= =?utf-8?B?WUNvdUVGa0VXMVBKWU5vRnk3UXllRFBWc2VRakFKalBxTzQ4aWY5R3J0Mmd6?= =?utf-8?B?V2ZLTnhuaWVEUFRwVUVDbi92T25rVU51ajBmY1JWd3ZmZ3FrMzFYbVc1WHRr?= =?utf-8?B?OVBSSTFzRnpXOVYrWHFJZWE5MDY3VjJ5eFVoVFVxZUJvbzRoUVlsbnQ4eTBu?= =?utf-8?B?TG12YnVzVTRrM3UrbStwMmIzcXhPZEpPb2NzeitHSkZaZjhtT21iLzREQmlH?= =?utf-8?B?dTRGUU91YUJWeEFGbE8vajc1eXoxeEFFbG9BQjZjbzByRFg5Rjc2UzhvLzBh?= =?utf-8?B?QUhCVEFoLytXajlEbGljK2VuWHZQZ2ZCcEdXNHAvdDJrbTZ3TjVoeWNiLzhM?= =?utf-8?B?RUJUK0JGTzNEYVovK2xBYWFVMENCOTR5U1ZrVTZ2SlQ4ci9NRnVPOFFQdC9B?= =?utf-8?B?Wm5aM0tNZndaaVJ5cnhiRnFLbUY1NHBtbVhqUjRtTytrSU5mMjJqZzcrWExa?= =?utf-8?B?V1ZUQkNWSzJLSFlLSFRleWp2YTlzUWZtbXdBRUwvRXVJd3J5Q3EwTS90K2Jt?= =?utf-8?B?aTdoZFlHVzJGY0daaWw1bThhVHVlbGVUSGowV09tSG51NkdHQ2lwRU1HREtG?= =?utf-8?B?ZnBwMFBVVXRwcGJkRTlxY0hwWnkxR3hDdzJIQTQ0eU5qcHhqZng5eENiL1ZR?= =?utf-8?B?d0NLa2hDaFR1UWdyVjhiQkNWbUVGekd6dTluTnBaRHAyRHBsdEpRZHdmNjEx?= =?utf-8?B?NW51T2JWbHpzMkJJdVdUM2k0TFNpUzNNTzl1ZEFhdEp4RjE5Zml5cUEwTnNB?= =?utf-8?B?eHZCcEMzVFM4WlZTbGxFL1FpSEFhREd5UmFTQUZIampid2NVKys0RDRrQks5?= =?utf-8?B?ZDJTTUdtNnRiYTNVWHRybytCK25wTVAzbFRJZkF6cVZtZFJBL0Fxdm50Mmti?= =?utf-8?B?aFhkMTF2d1V0cDJwMHp6S3FmTWZucWdKL2o1SGVYMEdTcm1oUytRN0ZoR1h6?= =?utf-8?B?NSttVm93RVNjaXkyMlp4S1FMMUpEV1R1bHFSc0c3VFlGSjQ5UFJ0RHZaTFB5?= =?utf-8?B?MklQdnV0djZaTytDekE3dnB1d0IxRFE2VmxENkNEb1REenVzVEZSUzRSbVh4?= =?utf-8?B?SmFwNTNSdmFPQUpFaHE1WUd2MmRYSDRVTmFvRXdqT09JaE53eEd0SnpSOW1J?= =?utf-8?B?UUs5d0NDWDJ5SFcvQWlvWDFCZUYyNTJ2aHpRaWxwR0hmVkxoMGE2ZEJ4VGFO?= =?utf-8?B?Y3JJc0s4aksxd0V4RWNzOFVaQ0xOczRIZUxBZGtyOHkzRjBuT1lmMmFvN082?= =?utf-8?B?dmZyRmVKMWxLYVRjeENHOWhrTFVrbzE3OTd6UXNnOFoxSE1yd1ZSeDJleEUy?= =?utf-8?B?d05BTWlmTXBoMjEzUkhRc1RiNmJDK2J1MXI0N2JURDJCV0JLYy9rbGc3dE9F?= =?utf-8?B?TDlYZEl4UVFRekpxbjdSSE9DL2UycGduaXVSU0Z0eGU1QnphRU9sek8wc1Fq?= =?utf-8?B?WE1SN0dBRVhwVGx4TTdWdExIN2RKSHdhQXlYa2ZwSmhiOFQ2aUVlUU9rN0pV?= =?utf-8?B?UVhwUzltT3BmL0RVcDNlVE9PQ2UyQUVJc1k0TlRsYndiR29OY3VjZVZsTURj?= =?utf-8?B?Nis3dWpjQ0EwSjVNa1hlNmhzcGIwZGswUW5YblowdUFtZ0IzcW9RVnZyM0NB?= =?utf-8?B?UlV3MFdPc0cxdnByT2svWlozRnVnNFgwRys2ci9nSzNZMEQ3Q0xXYUxUWU4y?= =?utf-8?B?Nk1aczFtS25tVm0vSDdJWUJ4WVRkaHEyMWtJeHVKeFM5WmF3Z256RWlHVmwr?= =?utf-8?B?dUppMVUxTW5wSmNjNkZwaWpTV2g4VG01Ykpiak5PalV5aDc2L2xUN2RvaTF3?= =?utf-8?B?bHN4SGtySmQvREsvQXNSamIrL2xzWWlnbVBvRkVjZi9ZdVpNRitNQjdFLzJT?= =?utf-8?B?cDYvQ1hvQ1p5VFlIV3JrZmFyWFFJQVdUVEEwUmxPV2NJQmpteWtFREkrS21M?= =?utf-8?Q?rw2p6ZkGJJPSwUTaeYqmCqCml?= Content-Type: multipart/mixed; boundary="_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: I1tBjNwSQCVvThPkZGKXaOkvZAj9DxHdW0v0/FVCBmakRhjHxpcRFZlxV8M5lLE93xdXIdn/cz6H9uI+jeePOnWVDuKUzvs46WJk1vB0VYCUy6ARRUYYUbPkBakxPn41AX24+5HbfYRGWKScydQVS1b1m70Tp15/UwXIa3fTbDOFzWY4Klybubb7S7omolYY5QVqcvTWyIlJwgNHvyQ2fcti/ORnqtj1vOxKAUlBHD2aLbTsld0NFemCz4osJ5gm63gEeU5e0KrWRN2TW9tMTIsZW4cizP9d6g9MzDpP6kp/Mr3QG3pk9gRSgz1FcuUxjnJdY6ipik83srUNhOzB8PmK8daQP69f9HJ3DLvEfpLh+o0MOblj+pp7f1x42LNDhfrOFx9Fd+OscnCrswmShS6wJ57bhZ7+bsV5fny621j/3bpasvhRM7v1uxCWmli5J9Of4/sAO4Ij/K3uPXRXFJBjnWTALeiiH5xI/PJybYaCwykoJkvHOcF/khVvm+I06VB4I+0QLTgna5C1qZikUuDQyIIbcyNdgH2UqQ5qzsdQjwtSOifR8Okm8d03XYPtoC9YfBRb6yXUtLR6dRH1tRvswR+HPvAxUU9dqnqcyorJYOoTTRkkfl4NU/gWy0OB X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ef81020-911b-475c-6759-08dc1379bc31 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2024 14:21:14.8906 (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: QBitCwsNtNcAUJaLoWLEHyfHg+uxlcqL7v/PNawIE5dnAtdIzL0qlr1C1pnFPDpEqFuzjQrOH8gN2xtIoyb41A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB10389 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gRnJpZGF5LCBKYW51YXJ5IDEyLCAyMDI0IDg6MDAgUE0gTWFzYWhpa28gU2F3YWRhIDxzYXdh ZGEubXNoa0BnbWFpbC5jb20+IHdyb3RlOg0KDQpIaSwNCg0KPiANCj4gT24gVGh1LCBKYW4gMTEs IDIwMjQgYXQgNzo1M+KAr1BNIEFtaXQgS2FwaWxhIDxhbWl0LmthcGlsYTE2QGdtYWlsLmNvbT4g d3JvdGU6DQo+ID4NCj4gPiBPbiBUdWUsIEphbiA5LCAyMDI0IGF0IDY6MznigK9QTSBBbWl0IEth cGlsYSA8YW1pdC5rYXBpbGExNkBnbWFpbC5jb20+IHdyb3RlOg0KPiA+ID4NCj4gPiA+ICtzdGF0 aWMgYm9vbA0KPiA+ID4gK3N5bmNocm9uaXplX29uZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqd3Jj b25uLCBSZW1vdGVTbG90DQo+ID4gPiArKnJlbW90ZV9zbG90KQ0KPiA+ID4gew0KPiA+ID4gLi4u DQo+ID4gPiArIC8qIFNsb3QgcmVhZHkgZm9yIHN5bmMsIHNvIHN5bmMgaXQuICovIGVsc2Ugew0K PiA+ID4gKyAvKg0KPiA+ID4gKyAqIFNhbml0eSBjaGVjazogV2l0aCBob3Rfc3RhbmRieV9mZWVk YmFjayBlbmFibGVkIGFuZA0KPiA+ID4gKyAqIGludmFsaWRhdGlvbnMgaGFuZGxlZCBhcHByb3By aWF0ZWx5IGFzIGFib3ZlLCB0aGlzIHNob3VsZCBuZXZlcg0KPiA+ID4gKyAqIGhhcHBlbi4NCj4g PiA+ICsgKi8NCj4gPiA+ICsgaWYgKHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbiA8IHNsb3QtPmRh dGEucmVzdGFydF9sc24pIGVsb2coRVJST1IsDQo+ID4gPiArICJjYW5ub3Qgc3luY2hyb25pemUg bG9jYWwgc2xvdCBcIiVzXCIgTFNOKCVYLyVYKSINCj4gPiA+ICsgIiB0byByZW1vdGUgc2xvdCdz IExTTiglWC8lWCkgYXMgc3luY2hyb25pemF0aW9uIg0KPiA+ID4gKyAiIHdvdWxkIG1vdmUgaXQg YmFja3dhcmRzIiwgcmVtb3RlX3Nsb3QtPm5hbWUsDQo+ID4gPiArIExTTl9GT1JNQVRfQVJHUyhz bG90LT5kYXRhLnJlc3RhcnRfbHNuKSwNCj4gPiA+ICsgTFNOX0ZPUk1BVF9BUkdTKHJlbW90ZV9z bG90LT5yZXN0YXJ0X2xzbikpOw0KPiA+ID4gLi4uDQo+ID4gPiB9DQo+ID4gPg0KPiA+ID4gSSB3 YXMgdGhpbmtpbmcgYWJvdXQgdGhlIGFib3ZlIGNvZGUgaW4gdGhlIHBhdGNoIGFuZCBhcyBmYXIg YXMgSSBjYW4NCj4gPiA+IHRoaW5rIHRoaXMgY2FuIG9ubHkgb2NjdXIgaWYgdGhlIHNhbWUgbmFt ZSBzbG90IGlzIHJlLWNyZWF0ZWQgd2l0aA0KPiA+ID4gcHJpb3IgcmVzdGFydF9sc24gYWZ0ZXIg dGhlIGV4aXN0aW5nIHNsb3QgaXMgZHJvcHBlZC4gTm9ybWFsbHksIHRoZQ0KPiA+ID4gbmV3bHkg Y3JlYXRlZCBzbG90ICh3aXRoIHRoZSBzYW1lIG5hbWUpIHdpbGwgaGF2ZSBoaWdoZXIgcmVzdGFy dF9sc24NCj4gPiA+IGJ1dCBvbmUgY2FuIG1pbWljIGl0IGJ5IGNvcHlpbmcgc29tZSBvbGRlciBz bG90IGJ5IHVzaW5nDQo+ID4gPiBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgpLg0K PiA+ID4NCj4gPiA+IEkgZG9uJ3QgdGhpbmsgYXMgbWVudGlvbmVkIGluIGNvbW1lbnRzIGV2ZW4g aWYgaG90X3N0YW5kYnlfZmVlZGJhY2sNCj4gPiA+IGlzIHRlbXBvcmFyaWx5IHNldCB0byBvZmYs IHRoZSBhYm92ZSBzaG91bGRuJ3QgaGFwcGVuLiBJdCBjYW4gb25seQ0KPiA+ID4gbGVhZCB0byBp bnZhbGlkYXRlZCBzbG90cyBvbiBzdGFuZGJ5Lg0KPiA+ID4NCj4gPiA+IFRvIGNsb3NlIHRoZSBh Ym92ZSByYWNlLCBJIGNvdWxkIHRoaW5rIG9mIHRoZSBmb2xsb3dpbmcgd2F5czoNCj4gPiA+IDEu IERyb3AgYW5kIHJlLWNyZWF0ZSB0aGUgc2xvdC4NCj4gPiA+IDIuIEVtaXQgTE9HL1dBUk5JTkcg aW4gdGhpcyBjYXNlIGFuZCBvbmNlIHJlbW90ZV9zbG90J3MgTFNOIG1vdmVzDQo+ID4gPiBhaGVh ZCBvZiBsb2NhbF9zbG90J3MgTFNOIHRoZW4gd2UgY2FuIHVwZGF0ZSBpdDsgYnV0IGFzIG1lbnRp b25lZCBpbg0KPiA+ID4geW91ciBwcmV2aW91cyBjb21tZW50LCB3ZSBuZWVkIHRvIHVwZGF0ZSBh bGwgb3RoZXIgZmllbGRzIGFzIHdlbGwuDQo+ID4gPiBJZiB3ZSBmb2xsb3cgdGhpcyB0aGVuIHdl IHByb2JhYmx5IG5lZWQgdG8gaGF2ZSBhIGNoZWNrIGZvcg0KPiA+ID4gY2F0YWxvZ194bWluIGFz IHdlbGwuDQo+ID4gPg0KPiA+DQo+ID4gVGhlIHNlY29uZCBwb2ludCBhcyBtZW50aW9uZWQgaXMg c2xpZ2h0bHkgbWlzbGVhZGluZywgc28gbGV0IG1lIHRyeSB0bw0KPiA+IHJlcGhyYXNlIGl0IG9u Y2UgYWdhaW46IEVtaXQgTE9HL1dBUk5JTkcgaW4gdGhpcyBjYXNlIGFuZCBvbmNlDQo+ID4gcmVt b3RlX3Nsb3QncyBMU04gbW92ZXMgYWhlYWQgb2YgbG9jYWxfc2xvdCdzIExTTiB0aGVuIHdlIGNh biB1cGRhdGUNCj4gPiBpdDsgYWRkaXRpb25hbGx5LCB3ZSBuZWVkIHRvIHVwZGF0ZSBhbGwgb3Ro ZXIgZmllbGRzIGxpa2UgdHdvX3BoYXNlIGFzDQo+ID4gd2VsbC4gSWYgd2UgZm9sbG93IHRoaXMg dGhlbiB3ZSBwcm9iYWJseSBuZWVkIHRvIGhhdmUgYSBjaGVjayBmb3INCj4gPiBjYXRhbG9nX3ht aW4gYXMgd2VsbCBhbG9uZyByZW1vdGVfc2xvdCdzIHJlc3RhcnRfbHNuLg0KPiA+DQo+ID4gPiBO b3csIHJlbGF0ZWQgdG8gdGhpcyB0aGUgb3RoZXIgY2FzZSB3aGljaCBuZWVkcyBzb21lIGhhbmRs aW5nIGlzDQo+ID4gPiB3aGF0IGlmIHRoZSByZW1vdGVfc2xvdCdzIHJlc3RhcnRfbHNuIGlzIGdy ZWF0ZXIgdGhhbiBsb2NhbF9zbG90J3MNCj4gPiA+IHJlc3RhcnRfbHNuIGJ1dCBpdCBpcyBhIHJl LWNyZWF0ZWQgc2xvdCB3aXRoIHRoZSBzYW1lIG5hbWUuIEluIHRoYXQNCj4gPiA+IGNhc2UsIEkg dGhpbmsgdGhlIG90aGVyIHByb3BlcnRpZXMgbGlrZSAndHdvX3BoYXNlJywgJ3BsdWdpbicgY291 bGQNCj4gPiA+IGJlIGRpZmZlcmVudC4gU28sIGlzIHNpbXBseSBjb3B5aW5nIHRob3NlIHN1ZmZp Y2llbnQgb3IgZG8gd2UgbmVlZA0KPiA+ID4gdG8gZG8gc29tZXRoaW5nIGVsc2UgYXMgd2VsbD8N Cj4gPiA+DQo+ID4NCj4gPiBCZXJ0cmFuZCwgRGlsaXAsIFNhd2FkYS1TYW4sIGFuZCBvdGhlcnMs IHBsZWFzZSBzaGFyZSB5b3VyIG9waW5pb24gb24NCj4gPiB0aGlzIHByb2JsZW0gYXMgSSB0aGlu ayBpdCBpcyBpbXBvcnRhbnQgdG8gaGFuZGxlIHRoaXMgcmFjZSBjb25kaXRpb24uDQo+IA0KPiBJ cyB0aGVyZSBhbnkgZ29vZCB1c2UgY2FzZSBvZiBjb3B5aW5nIGEgZmFpbG92ZXIgc2xvdCBpbiB0 aGUgZmlyc3QgcGxhY2U/IElmIGl0J3Mgbm90DQo+IGEgbm9ybWFsIHVzZSBjYXNlIGFuZCB3ZSBj YW4gcHJvYmFibHkgbGl2ZSB3aXRob3V0IGl0LCB3aHkgbm90IGFsd2F5cyBkaXNhYmxlDQo+IGZh aWxvdmVyIGR1cmluZyB0aGUgY29weT8gRllJIHdlIGFsd2F5cyBkaXNhYmxlIHR3b19waGFzZSBv biBjb3BpZWQgc2xvdHMuIEl0DQo+IHNlZW1zIHRvIG1lIHRoYXQgY29weWluZyBhIGZhaWxvdmVy IHNsb3QgY291bGQgbGVhZCB0byBwcm9ibGVtcywgYXMgbG9uZyBhcyB3ZQ0KPiBzeW5jaHJvbml6 ZSBzbG90cyBiYXNlZCBvbiB0aGVpciBuYW1lcy4gSUlVQyB3aXRob3V0IHRoZSBjb3B5LCB0aGlz IHBhc3Mgc2hvdWxkDQo+IG5ldmVyIGhhcHBlbi4NCg0KVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlv bi4gSSBhbHNvIGRvbid0IGhhdmUgYSB1c2UgY2FzZSBmb3IgdGhpcy4NCkF0dGFjaCB0aGUgVjYx IHBhdGNoIHNldCB0aGF0IGFkZHJlc3NlcyB0aGlzIHN1Z2dlc3Rpb24uIEFuZCBoZXJlIGlzIHRo ZQ0Kc3VtbWFyeSBvZiB0aGUgY2hhbmdlcyBtYWRlIGluIGVhY2ggcGF0Y2guDQoNClY2MS0wMDAx DQoxLiBSZXZlcnRzIHRoZSBjaGFuZ2VzIGluIGNvcHlfcmVwbGljYXRpb25fc2xvdC4NCg0KVjYx LTAwMDINCg0KMS4gQWRkcyB0aGUgZG9jdW1lbnRzIGZvciB0aGUgc3RlcHMgdGhhdCB1c2VyIG5l ZWRzIHRvIGZvbGxvdyB0byBlbnN1cmUgdGhlDQogICBzdGFuZGJ5IGlzIHJlYWR5IGZvciBmYWls b3Zlcg0KMi4gRGlyZWN0bHkgdXBkYXRlIHRoZSBmaWVsZHMgcmVzdGFydF9sc24vY29uZmlybWVk X2ZsdXNoL2NhdGFsb2dfeG1pbiBpbnN0ZWFkDQogICBvZiB1c2luZyBBUElzIGxpa2UgTG9naWNh bENvbmZpcm1SZWNlaXZlZExvY2F0aW9uDQozLiBVcGRhdGVzIGFsbCB0aGUgZmllbGRzKHR3b19w aGFzZSwgZmFpbG92ZXIsIHBsdWdpbikgd2hlbiBzeW5jaW5nIHRoZSBzbG90cw0KNC4gZml4ZXMg Q0Zib3QgZmFpbHVyZXMuDQo1LiBTb21lIGNvZGUgc3R5bGUgYWRqdXN0bWVudC4gKHBlbmRpbmcg Y29tbWVudHMgaW4gbGFzdCB2ZXJzaW9uKQ0KNi4gUmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgQXNz ZXJ0IGFuZCB2YXJpYWJsZSBhc3NpZ25tZW50IChvZmYtbGlzdCBjb21tZW50cyBmcm9tIFBldGVy KQ0KDQpUaGFua3MgU2h2ZXRhIGZvciB3b3JraW5nIG9uIDQgYW5kIDUuDQoNClY2MS0wMDAzDQox LiBTb21lIGRvY3VtZW50cyB1cGRhdGUgcmVsYXRlZCB0byBzdGFuZGJ5X3Nsb3RfbmFtZXMgYW5k IHRoZSBzdGVwcyBmb3INCiAgIGZhaWxvdmVyLg0KDQpWNjEtMDAwNA0KLSBObyBjaGFuZ2UuDQoN CkJlc3QgUmVnYXJkcywNCkhvdSB6ag0K --_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v61-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Description: v61-0002-Add-logical-slot-sync-capability-to-the-physical.patch Content-Disposition: attachment; filename="v61-0002-Add-logical-slot-sync-capability-to-the-physical.patch"; size=88875; creation-date="Fri, 12 Jan 2024 14:20:11 GMT"; modification-date="Fri, 12 Jan 2024 14:21:11 GMT" Content-Transfer-Encoding: base64 RnJvbSA0MThhOGRmYWM4NTZkNjAxNjliNDRjYWNmZDZmZGQ0OTNkOWE3ZDA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxzaGVybG9ja2NwcEBmb3htYWlsLmNvbT4K RGF0ZTogRnJpLCAxMiBKYW4gMjAyNCAyMDo0MToxOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYx IDIvMl0gQWRkIGxvZ2ljYWwgc2xvdCBzeW5jIGNhcGFiaWxpdHkgdG8gdGhlIHBoeXNpY2FsCiBz dGFuZGJ5CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgc3luY2hyb25pemF0aW9uIG9mIGxvZ2ljYWwg cmVwbGljYXRpb24gc2xvdHMKZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgdG8gdGhlIHBoeXNpY2Fs IHN0YW5kYnkgc28gdGhhdCBsb2dpY2FsCnJlcGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGFmdGVy IGZhaWxvdmVyLgoKR1VDICdlbmFibGVfc3luY3Nsb3QnIGVuYWJsZXMgYSBwaHlzaWNhbCBzdGFu ZGJ5IHRvIHN5bmNocm9uaXplIGZhaWxvdmVyCmxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgZnJv bSB0aGUgcHJpbWFyeSBzZXJ2ZXIuCgpUaGUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBvbiB0 aGUgcHJpbWFyeSBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBob3QKc3RhbmRieSBieSBlbmFi bGluZyB0aGUgZmFpbG92ZXIgb3B0aW9uIGR1cmluZyBzbG90IGNyZWF0aW9uIGFuZCBzZXR0aW5n CidlbmFibGVfc3luY3Nsb3QnIG9uIHRoZSBzdGFuZGJ5LiBGb3IgdGhlIHN5bmNocm9uaXphdGlv biB0byB3b3JrLCBpdCBpcwptYW5kYXRvcnkgdG8gaGF2ZSBhIHBoeXNpY2FsIHJlcGxpY2F0aW9u IHNsb3QgYmV0d2VlbiB0aGUgcHJpbWFyeSBhbmQgdGhlCnN0YW5kYnksIGFuZCBob3Rfc3RhbmRi eV9mZWVkYmFjayBtdXN0IGJlIGVuYWJsZWQgb24gdGhlIHN0YW5kYnkuCgpBbGwgdGhlIGZhaWxv dmVyIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgb24gdGhlIHByaW1hcnkgKGFzc3VtaW5nCmNv bmZpZ3VyYXRpb25zIGFyZSBhcHByb3ByaWF0ZSkgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBv biB0aGUgcGh5c2ljYWwKc3RhbmRieXMgYW5kIGFyZSBzeW5jZWQgcGVyaW9kaWNhbGx5LiBTbG90 LXN5bmMgd29ya2VyIG9uIHRoZSBzdGFuZGJ5IHNlcnZlcgpwaW5nIHRoZSBwcmltYXJ5IHNlcnZl ciBhdCByZWd1bGFyIGludGVydmFscyB0byBnZXQgdGhlIG5lY2Vzc2FyeQpmYWlsb3ZlciBsb2dp Y2FsIHNsb3RzIGluZm9ybWF0aW9uIGFuZCBjcmVhdGUvdXBkYXRlIHRoZSBzbG90cyBsb2NhbGx5 LgoKVGhlIG5hcCB0aW1lIG9mIHRoZSB3b3JrZXIgaXMgdHVuZWQgYWNjb3JkaW5nIHRvIHRoZSBh Y3Rpdml0eSBvbiB0aGUgcHJpbWFyeS4KVGhlIHdvcmtlciB3YWl0cyBmb3IgYSBwZXJpb2Qgb2Yg dGltZSBiZWZvcmUgdGhlIG5leHQgc3luY2hyb25pemF0aW9uLCB3aXRoIHRoZQpkdXJhdGlvbiB2 YXJ5aW5nIGJhc2VkIG9uIHdoZXRoZXIgYW55IHNsb3RzIHdlcmUgdXBkYXRlZCBkdXJpbmcgdGhl IGxhc3QKY3ljbGUuCgpUaGUgbG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IHNsb3Qtc3luYyB3b3Jr ZXIgb24gcGh5c2ljYWwgc3RhbmRieXMgYXJlIG5vdAphbGxvd2VkIHRvIGJlIGRyb3BwZWQgb3Ig Y29uc3VtZWQuIEFueSBhdHRlbXB0IHRvIHBlcmZvcm0gbG9naWNhbCBkZWNvZGluZyBvbgpzdWNo IHNsb3RzIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLgoKSWYgYSBsb2dpY2FsIHNsb3QgaXMgaW52 YWxpZGF0ZWQgb24gdGhlIHByaW1hcnksIHRoZW4gdGhhdCBzbG90IG9uIHRoZSBzdGFuZGJ5Cmlz IGFsc28gaW52YWxpZGF0ZWQuCgpJZiBhIGxvZ2ljYWwgc2xvdCBvbiB0aGUgcHJpbWFyeSBpcyB2 YWxpZCBidXQgaXMgaW52YWxpZGF0ZWQgb24gdGhlIHN0YW5kYnksCnRoZW4gdGhhdCBzbG90IGlz IGRyb3BwZWQgYW5kIHJlY3JlYXRlZCBvbiB0aGUgc3RhbmRieSBpbiBuZXh0IHN5bmMtY3ljbGUK cHJvdmlkZWQgdGhlIHNsb3Qgc3RpbGwgZXhpc3RzIG9uIHRoZSBwcmltYXJ5IHNlcnZlci4gSXQg aXMgb2theSB0byByZWNyZWF0ZQpzdWNoIHNsb3RzIGFzIGxvbmcgYXMgdGhlc2UgYXJlIG5vdCBj b25zdW1hYmxlIG9uIHRoZSBzdGFuZGJ5ICh3aGljaCBpcyB0aGUKY2FzZSBjdXJyZW50bHkpLiBU aGlzIHNpdHVhdGlvbiBtYXkgb2NjdXIgZHVlIHRvIHRoZSBmb2xsb3dpbmcgcmVhc29uczoKLSBU aGUgbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSBvbiB0aGUgc3RhbmRieSBpcyBpbnN1ZmZpY2llbnQg dG8gcmV0YWluIFdBTAogIHJlY29yZHMgZnJvbSB0aGUgcmVzdGFydF9sc24gb2YgdGhlIHNsb3Qu Ci0gcHJpbWFyeV9zbG90X25hbWUgaXMgdGVtcG9yYXJpbHkgcmVzZXQgdG8gbnVsbCBhbmQgdGhl IHBoeXNpY2FsIHNsb3QgaXMKICByZW1vdmVkLgotIFRoZSBwcmltYXJ5IGNoYW5nZXMgd2FsX2xl dmVsIHRvIGEgbGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2FsLgoKVGhlIHNsb3RzIHN5bmNocm9uaXph dGlvbiBzdGF0dXMgb24gdGhlIHN0YW5kYnkgY2FuIGJlIG1vbml0b3JlZCB1c2luZwonc3luY2Vk JyBjb2x1bW4gb2YgcGdfcmVwbGljYXRpb25fc2xvdHMgdmlldy4KLS0tCiBkb2Mvc3JjL3NnbWwv Ymd3b3JrZXIuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDY1ICstCiBkb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgIDI3ICstCiBkb2Mvc3JjL3NnbWwv bG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgMTE0ICsrCiBkb2Mvc3JjL3NnbWwv bG9naWNhbGRlY29kaW5nLnNnbWwgICAgICAgICAgICAgfCAgIDMzICsKIGRvYy9zcmMvc2dtbC9z eXN0ZW0tdmlld3Muc2dtbCAgICAgICAgICAgICAgICB8ICAgMTYgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZy5jICAgICAgICAgICAgIHwgICAgNSArLQogc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgICAgIHwgICAxNSArCiBzcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgICAzICstCiBzcmMvYmFja2VuZC9wb3N0 bWFzdGVyL2Jnd29ya2VyLmMgICAgICAgICAgICAgfCAgICA0ICsKIHNyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5jICAgICAgICAgICB8ICAgMTAgKwogLi4uL2xpYnBxd2FscmVjZWl2 ZXIvbGlicHF3YWxyZWNlaXZlci5jICAgICAgIHwgICA0MSArCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL01ha2VmaWxlICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbC5jICAgICB8ICAgMTIgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9tZXNvbi5idWlsZCAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3Nsb3RzeW5jLmMgICAgfCAxMTYxICsrKysrKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAgfCAgIDI4ICstCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgICAgICAgICAgfCAgIDE0ICstCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMgICAgfCAgIDE2ICsKIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgICAgICB8ICAgIDQgKy0KIHNyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYyAgICAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwgICAxMSArCiAuLi4vdXRpbHMv YWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAgMSArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAgICA2ICstCiBzcmMvaW5jbHVkZS9w b3N0bWFzdGVyL2Jnd29ya2VyLmggICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vc2xvdC5oICAgICAgICAgICAgICAgIHwgICAxNyArLQogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuaCAgICAgICAgIHwgICAxOSArCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDEwICsKIC4uLi90LzA1MF9zdGFuZGJ5 X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgICAgICB8ICAxNjYgKystCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgICAzICstCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICAyICsKIDM0IGZpbGVzIGNoYW5nZWQs IDE3OTEgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbApp bmRleCAyYzM5MzM4NWE5Li5hN2NmZTZjNThjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYmd3 b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbApAQCAtMTE0LDE4ICsx MTQsNTkgQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtlcgogCiAgIDxwYXJhPgogICAg PHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIHNlcnZlciBz dGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQg c3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBvbmUgb2YKLSAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcwotICAgPGNv bW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2VsZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0 aWFsaXphdGlvbjsgcHJvY2Vzc2VzCi0gICByZXF1ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJs ZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAotICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9D b25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBz dGF0ZQotICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9j ZXNzZXMgdG8gY29ubmVjdCB0bwotICAgZGF0YWJhc2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJp ZXMpLCBhbmQKLSAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0 ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5c3RlbSBoYXMKLSAgIGVudGVyZWQgbm9ybWFs IHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUgbGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFs ZW50Ci0gICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQg dGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCi0gICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRv IGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Agd2hlbiBhIGRpZmZlcmVudCBzdGF0ZQotICAg aXMgcmVhY2hlZC4KKyAgIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQg dGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRpbmcKKyAgIG9ubHkgaW5kaWNhdGVzIHdo ZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRlZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVu CisgICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVkLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgor CisgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRl cmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFsPjwvdGVybT4KKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5CZ1dv cmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBT dGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0 aWFsaXphdGlvbjsKKyAgICAgICBwcm9jZXNzZXMgcmVxdWVzdGluZyB0aGlzIGFyZSBub3QgZWxp Z2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg PHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8aW5kZXh0ZXJtPjxw cmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJt PgorICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJl YWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKKyAgICAgICBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29u bmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9ubHkgcXVlcmllcy4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRl X0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAgU2FtZSBtZWFuaW5n IGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9saXRlcmFsPiBidXQK KyAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJtcyBvZiB0aGUgc2VydmVyIGkuZS4gc3Rh cnQgdGhlIHdvcmtlciBvbmx5CisgICAgICAgaWYgaXQgaXMgaG90LXN0YW5kYnkuCisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFy bGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5Rmlu aXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwv cHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBTdGFydCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0g aGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUuIE5vdGUKKyAgICAgICB0aGF0IHRo ZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCisg ICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFy ZSBlcXVpdmFsZW50CisgICAgICAgaW4gYSBzZXJ2ZXIgdGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5 LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8L3ZhcmlhYmxlbGlzdD4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4 IDYxMDM4NDcyYzUuLmJkMmQyZjg3MWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTQ2MTIsOCArNDYxMiwxMyBA QCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJs ZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgICAgIDx2YXJuYW1lPnByaW1hcnlfY29u bmluZm88L3Zhcm5hbWU+IHN0cmluZywgb3IgaW4gYSBzZXBhcmF0ZQogICAgICAgICAgIDxmaWxl bmFtZT5+Ly5wZ3Bhc3M8L2ZpbGVuYW1lPiBmaWxlIG9uIHRoZSBzdGFuZGJ5IHNlcnZlciAodXNl CiAgICAgICAgICAgPGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IGFzIHRoZSBkYXRhYmFz ZSBuYW1lKS4KLSAgICAgICAgICBEbyBub3Qgc3BlY2lmeSBhIGRhdGFiYXNlIG5hbWUgaW4gdGhl Ci0gICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLgor ICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgSWYgc2xvdCBzeW5j aHJvbml6YXRpb24gaXMgZW5hYmxlZCAoc2VlCisgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3Vj LWVuYWJsZS1zeW5jc2xvdCIvPikgdGhlbiBpdCBpcyBhbHNvCisgICAgICAgICAgbmVjZXNzYXJ5 IHRvIHNwZWNpZnkgPGxpdGVyYWw+ZGJuYW1lPC9saXRlcmFsPiBpbiB0aGUKKyAgICAgICAgICA8 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcuIFRoaXMgd2lsbCBvbmx5 IGJlIHVzZWQgZm9yCisgICAgICAgICAgc2xvdCBzeW5jaHJvbml6YXRpb24uIEl0IGlzIGlnbm9y ZWQgZm9yIHN0cmVhbWluZy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDxwYXJhPgogICAg ICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUgPGZpbGVuYW1lPnBv c3RncmVzcWwuY29uZjwvZmlsZW5hbWU+CkBAIC00OTM4LDYgKzQ5NDMsMjQgQEAgQU5ZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVwbGFjZWFibGU+ICggPHJlcGxh Y2VhYmxlIGNsYXNzPSIKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1lbmFibGUtc3luY3Nsb3QiIHhyZWZsYWJlbD0i ZW5hYmxlX3N5bmNzbG90Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmVuYWJsZV9zeW5jc2xvdDwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5lbmFibGVfc3luY3Nsb3Q8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEl0IGVuYWJsZXMgYSBw aHlzaWNhbCBzdGFuZGJ5IHRvIHN5bmNocm9uaXplIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMKKyAg ICAgICAgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgc28gdGhhdCBsb2dpY2FsIHN1YnNjcmliZXJz IGFyZSBub3QgYmxvY2tlZAorICAgICAgICBhZnRlciBmYWlsb3Zlci4KKyAgICAgICA8L3BhcmE+ CisgICAgICAgPHBhcmE+CisgICAgICAgIEl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFRoaXMg cGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUKKyAgICAgICAgPGZpbGVuYW1lPnBvc3Rn cmVzcWwuY29uZjwvZmlsZW5hbWU+IGZpbGUgb3Igb24gdGhlIHNlcnZlciBjb21tYW5kIGxpbmUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvc2VjdDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1y ZXBsaWNhdGlvbi5zZ21sCmluZGV4IGVjMjEzMDY2OWUuLjI2NGI0ODVjNDIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtNjg1LDYgKzY4NSwxMjAgQEAgQUxURVIgU1VC U0NSSVBUSU9OCiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CiAKKyAgPHNlY3QyIGlkPSJsb2dpY2Fs LXJlcGxpY2F0aW9uLWZhaWxvdmVyLWV4YW1wbGVzIj4KKyAgIDx0aXRsZT5FeGFtcGxlczogbG9n aWNhbCByZXBsaWNhdGlvbiBmYWlsb3ZlcjwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIEluIGEg bG9naWNhbCByZXBsaWNhdGlvbiBzZXR1cCwgaWYgdGhlIHB1Ymxpc2hlciBzZXJ2ZXIgaXMgYWxz byB0aGUgcHJpbWFyeQorICAgIHNlcnZlciBvZiB0aGUgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLCB0 aGUgbG9naWNhbCBzbG90cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIKKyAgICBjYW4gYmUgc3luY2hy b25pemVkIHRvIHRoZSBzdGFuZGJ5IHNlcnZlciBieSBzcGVjaWZ5aW5nIDxsaXRlcmFsPmZhaWxv dmVyID0gdHJ1ZTwvbGl0ZXJhbD4KKyAgICB3aGVuIGNyZWF0aW5nIHRoZSBzdWJzY3JpcHRpb24u IEVuYWJsaW5nIGZhaWxvdmVyIGVuc3VyZXMgYSBzZWFtbGVzcworICAgIHRyYW5zaXRpb24gb2Yg dGhlIHN1YnNjcmlwdGlvbiB0byB0aGUgcHJvbW90ZWQgc3RhbmRieSwgYWxsb3dpbmcgaXQgdG8K KyAgICBzdWJzY3JpYmUgdG8gdGhlIG5ldyBwcmltYXJ5IHNlcnZlciB3aXRob3V0IGFueSBkYXRh IGxvc3MuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEhvd2V2ZXIsIHRoZSByZXBsaWNh dGlvbiBzbG90cyBhcmUgY29waWVkIGFzeW5jaHJvbm91c2x5LCB3aGljaCBtZWFucyBpdCdzIG5l Y2Vzc2FyeQorICAgIHRvIGNvbmZpcm0gdGhhdCByZXBsaWNhdGlvbiBzbG90cyBoYXZlIGJlZW4g c3luY2VkIHRvIHRoZSBzdGFuZGJ5IHNlcnZlcgorICAgIGJlZm9yZSB0aGUgZmFpbG92ZXIgaGFw cGVucy4gQWRkaXRpb25hbGx5LCB0byBlbnN1cmUgYSBzdWNjZXNzZnVsIGZhaWxvdmVyLAorICAg IHRoZSBzdGFuZGJ5IHNlcnZlciBtdXN0IG5vdCBsYWcgYmVoaW5kIHRoZSBzdWJzY3JpYmVyLiBU byBjb25maXJtCisgICAgdGhhdCB0aGUgc3RhbmRieSBzZXJ2ZXIgaXMgcmVhZHkgZm9yIGZhaWxv dmVyLCBmb2xsb3cgdGhlc2Ugc3RlcHM6CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIENo ZWNrIGlmIGFsbCB0aGUgbmVjZXNzYXJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaGF2ZSBi ZWVuIHN5bmNlZCB0bworICAgIHRoZSBzdGFuZGJ5IHNlcnZlci4KKyAgIDwvcGFyYT4KKyAgIDxw YXJhPgorICAgIDxpdGVtaXplZGxpc3Q+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIE9uIGxvZ2ljYWwgc3Vic2NyaWJlciwgZmV0Y2ggdGhlIHNsb3QgbmFtZXMgdGhhdCBz aG91bGQgYmUgc3luY2VkIHRvIHRoZQorICAgICAgIHN0YW5kYnkgdGhhdCB3ZSBwbGFuIHRvIHBy b21vdGUuCis8cHJvZ3JhbWxpc3Rpbmc+Cit0ZXN0X3N1Yj0jIFNFTEVDVAorICAgICAgICAgICAg ICAgYXJyYXlfYWdnKHNsb3RuYW1lKSBBUyBzbG90cworICAgICAgICAgICBGUk9NCisgICAgICAg ICAgICgoCisgICAgICAgICAgICAgICBTRUxFQ1Qgci5zcnN1YmlkIEFTIHN1YmlkLCBDT05DQVQo J3BnXycgfHwgc3JzdWJpZCB8fCAnX3N5bmNfJyB8fCBzcnJlbGlkIHx8ICdfJyB8fCBjdGwuc3lz dGVtX2lkZW50aWZpZXIpIEFTIHNsb3RuYW1lCisgICAgICAgICAgICAgICBGUk9NIHBnX2NvbnRy b2xfc3lzdGVtKCkgY3RsLCBwZ19zdWJzY3JpcHRpb25fcmVsIHIsIHBnX3N1YnNjcmlwdGlvbiBz CisgICAgICAgICAgICAgICBXSEVSRSByLnNyc3Vic3RhdGUgPSAnZicgQU5EIHMub2lkID0gci5z cnN1YmlkIEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAgICAg ICAgICAgU0VMRUNUIG9pZCBBUyBzdWJpZCwgc3Vic2xvdG5hbWUgYXMgc2xvdG5hbWUKKyAgICAg ICAgICAgICAgIEZST00gcGdfc3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICBXSEVSRSBzdWJm YWlsb3ZlcgorICAgICAgICAgICApKTsKKyBzbG90cworLS0tLS0tLQorIHtzdWJ9CisoMSByb3cp Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgQ2hlY2sgdGhhdCB0aGUgbG9naWNhbCByZXBsaWNh dGlvbiBzbG90cyBleGlzdCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIuCis8cHJvZ3JhbWxpc3Rpbmc+ Cit0ZXN0X3N0YW5kYnk9IyBTRUxFQ1QgYm9vbF9hbmQoc3luY2VkIEFORCBOT1QgdGVtcG9yYXJ5 IEFORCBjb25mbGljdF9yZWFzb24gSVMgTlVMTCkgQVMgZmFpbG92ZXJfcmVhZHkKKyAgICAgICAg ICAgICAgIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMKKyAgICAgICAgICAgICAgIFdIRVJFIHNs b3RfbmFtZSBpbiAoJ3Nsb3RzJyk7CisgZmFpbG92ZXJfcmVhZHkKKy0tLS0tLS0tLS0tLS0tLS0K KyB0CisoMSByb3cpCis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQ29uZmly bSB0aGF0IHRoZSBzdGFuZGJ5IHNlcnZlciBpcyBub3QgbGFnZ2luZyBiZWhpbmQgdGhlIHN1YnNj cmliZXJzLgorICAgPC9wYXJhPgorICAgPHBhcmE+CisgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUXVlcnkgdGhlIGxhc3QgcmVwbGF5ZWQg V0FMIG9uIHRoZSBsb2dpY2FsIHN1YnNjcmliZXIuCis8cHJvZ3JhbWxpc3Rpbmc+Cit0ZXN0X3N1 Yj0jIFNFTEVDVAorICAgICAgICAgICAgICAgTUFYKHJlbW90ZV9sc24pIEFTIHJlbW90ZV9sc25f b25fc3Vic2NyaWJlcgorICAgICAgICAgICBGUk9NCisgICAgICAgICAgICgoCisgICAgICAgICAg ICAgICBTRUxFQ1QgKENBU0UgV0hFTiByLnNyc3Vic3RhdGUgPSAnZicgVEhFTiBwZ19yZXBsaWNh dGlvbl9vcmlnaW5fcHJvZ3Jlc3MoQ09OQ0FUKCdwZ18nIHx8IHIuc3JzdWJpZCB8fCAnXycgfHwg ci5zcnJlbGlkKSwgZmFsc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVOIHIuc3Jz dWJzdGF0ZSA9ICdzJyBUSEVOIHIuc3JzdWJsc24gRU5EKSBhcyByZW1vdGVfbHNuCisgICAgICAg ICAgICAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgciwgcGdfc3Vic2NyaXB0aW9uIHMKKyAg ICAgICAgICAgICAgIFdIRVJFIHIuc3JzdWJzdGF0ZSBJTiAoJ2YnLCAncycpIEFORCBzLm9pZCA9 IHIuc3JzdWJpZCBBTkQgcy5zdWJmYWlsb3ZlcgorICAgICAgICAgICApIFVOSU9OICgKKyAgICAg ICAgICAgICAgIFNFTEVDVCBwZ19yZXBsaWNhdGlvbl9vcmlnaW5fcHJvZ3Jlc3MoQ09OQ0FUKCdw Z18nIHx8IHMub2lkKSwgZmFsc2UpIEFTIHJlbW90ZV9sc24KKyAgICAgICAgICAgICAgIEZST00g cGdfc3Vic2NyaXB0aW9uIHMKKyAgICAgICAgICAgICAgIFdIRVJFIHN1YmZhaWxvdmVyCisgICAg ICAgICAgICkpOworIHJlbW90ZV9sc25fb25fc3Vic2NyaWJlcgorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAwLzMwMDAzODgKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBPbiB0aGUgc3Rh bmRieSBzZXJ2ZXIsIGNoZWNrIHRoYXQgdGhlIGxhc3QtcmVjZWl2ZWQgV0FMIGxvY2F0aW9uCisg ICAgICAgaXMgYWhlYWQgb2YgdGhlIHJlcGxheWVkIFdBTCBsb2NhdGlvbiBvbiB0aGUgc3Vic2Ny aWJlci4KKzxwcm9ncmFtbGlzdGluZz4KK3Rlc3Rfc3RhbmRieT0jIFNFTEVDVCBwZ19sYXN0X3dh bF9yZWNlaXZlX2xzbigpID49ICdyZW1vdGVfbHNuX29uX3N1YnNjcmliZXInOjpwZ19sc24gQVMg ZmFpbG92ZXJfcmVhZHk7CisgZmFpbG92ZXJfcmVhZHkKKy0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8 L2l0ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSWYgdGhlIHJlc3Vs dCAoZmFpbG92ZXJfcmVhZHkpIG9mIGJvdGggYWJvdmUgc3RlcHMgaXMgdHJ1ZSwgaXQgbWVhbnMg aXQgaXMKKyAgICBva2F5IHRvIHN1YnNjcmliZSB0byB0aGUgc3RhbmRieSBzZXJ2ZXIuCisgICA8 L3BhcmE+CisKKyAgPC9zZWN0Mj4KKwogIDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImxvZ2ljYWwt cmVwbGljYXRpb24tcm93LWZpbHRlciI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNh bGRlY29kaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKaW5kZXgg Y2QxNTJkNGNlZC4uNjcyMWQ4OTUxZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxk ZWNvZGluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbApAQCAt MzQ2LDYgKzM0NiwzOSBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90 X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVQogICAgICA8ZnVuY3Rpb24+ cGdfbG9nX3N0YW5kYnlfc25hcHNob3Q8L2Z1bmN0aW9uPiBmdW5jdGlvbiBvbiB0aGUgcHJpbWFy eS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3Qgb24gdGhlIHByaW1hcnkgY2FuIGJlIHN5bmNocm9uaXplZCB0byB0aGUgaG90CisgICAg IHN0YW5kYnkgYnkgZW5hYmxpbmcgdGhlIGZhaWxvdmVyIG9wdGlvbiBkdXJpbmcgc2xvdCBjcmVh dGlvbiBhbmQgc2V0dGluZworICAgICA8eHJlZiBsaW5rZW5kPSJndWMtZW5hYmxlLXN5bmNzbG90 Ii8+IG9uIHRoZSBzdGFuZGJ5LiBGb3IgdGhlIHN5bmNocm9uaXphdGlvbgorICAgICB0byB3b3Jr LCBpdCBpcyBtYW5kYXRvcnkgdG8gaGF2ZSBhIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgYmV0 d2VlbiB0aGUKKyAgICAgcHJpbWFyeSBhbmQgdGhlIHN0YW5kYnksIGFuZCA8dmFybmFtZT5ob3Rf c3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT4gbXVzdAorICAgICBiZSBlbmFibGVkIG9uIHRoZSBz dGFuZGJ5LiBJdCdzIGFsc28gaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHNhaWQKKyAgICAg cGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBpcyBuYW1lZCBpbiA8dmFybmFtZT5zdGFuZGJ5X3Ns b3RfbmFtZXM8L3Zhcm5hbWU+CisgICAgIGxpc3Qgb24gdGhlIHByaW1hcnksIHRvIHByZXZlbnQg dGhlIHN1YnNjcmliZXIgZnJvbSBjb25zdW1pbmcgY2hhbmdlcworICAgICBmYXN0ZXIgdGhhbiB0 aGUgaG90IHN0YW5kYnkuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIFRoZSBhYmls aXR5IHRvIHJlc3VtZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVyIGRlcGVuZHMg dXBvbiB0aGUKKyAgICAgPGxpbmsgbGlua2VuZD0idmlldy1wZy1yZXBsaWNhdGlvbi1zbG90cyI+ cGdfcmVwbGljYXRpb25fc2xvdHM8L2xpbms+LjxzdHJ1Y3RmaWVsZD5zeW5jZWQ8L3N0cnVjdGZp ZWxkPgorICAgICB2YWx1ZSBmb3IgdGhlIHN5bmNocm9uaXplZCBzbG90cyBvbiB0aGUgc3RhbmRi eSBhdCB0aGUgdGltZSBvZiBmYWlsb3Zlci4KKyAgICAgT25seSBwZXJzaXN0ZW50IHNsb3RzIHRo YXQgaGF2ZSBhdHRhaW5lZCBzeW5jZWQgc3RhdGUgYXMgdHJ1ZSBvbiB0aGUgc3RhbmRieQorICAg ICBiZWZvcmUgZmFpbG92ZXIgY2FuIGJlIHVzZWQgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gYWZ0 ZXIgZmFpbG92ZXIuCisgICAgIFRlbXBvcmFyeSBzbG90cyB3aWxsIGJlIGRyb3BwZWQsIHRoZXJl Zm9yZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGZvciB0aG9zZQorICAgICBzbG90cyBjYW5ub3QgYmUg cmVzdW1lZC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBzeW5jaHJvbml6ZWQgc2xvdCBjb3VsZCBub3QK KyAgICAgYmVjb21lIHBlcnNpc3RlbnQgb24gdGhlIHN0YW5kYnkgZHVlIHRvIGEgZGlzYWJsZWQg c3Vic2NyaXB0aW9uLCB0aGVuIHRoZQorICAgICBzdWJzY3JpcHRpb24gY2Fubm90IGJlIHJlc3Vt ZWQgYWZ0ZXIgZmFpbG92ZXIgZXZlbiB3aGVuIGl0IGlzIGVuYWJsZWQuCisgICAgPC9wYXJhPgor CisgICAgPHBhcmE+CisgICAgIFRvIHJlc3VtZSBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZh aWxvdmVyIGZyb20gdGhlIHN5bmNlZCBsb2dpY2FsCisgICAgIHNsb3RzLCB0aGUgc3Vic2NyaXB0 aW9uJ3MgJ2Nvbm5pbmZvJyBtdXN0IGJlIGFsdGVyZWQgdG8gcG9pbnQgdG8gdGhlCisgICAgIG5l dyBwcmltYXJ5IHNlcnZlci4gVGhpcyBpcyBkb25lIHVzaW5nCisgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1hbHRlcnN1YnNjcmlwdGlvbi1wYXJhbXMtY29ubmVjdGlvbiI+PGNvbW1hbmQ+QUxURVIg U1VCU0NSSVBUSU9OIC4uLiBDT05ORUNUSU9OPC9jb21tYW5kPjwvbGluaz4uCisgICAgIEl0IGlz IHJlY29tbWVuZGVkIHRoYXQgc3Vic2NyaXB0aW9ucyBhcmUgZmlyc3QgZGlzYWJsZWQgYmVmb3Jl IHByb21vdGluZworICAgICB0aGUgc3RhbmRieSBhbmQgYXJlIGVuYWJsZWQgYmFjayBhZnRlciBh bHRlcmluZyB0aGUgY29ubmVjdGlvbiBzdHJpbmcuCisgICAgPC9wYXJhPgorCiAgICAgPGNhdXRp b24+CiAgICAgIDxwYXJhPgogICAgICAgUmVwbGljYXRpb24gc2xvdHMgcGVyc2lzdCBhY3Jvc3Mg Y3Jhc2hlcyBhbmQga25vdyBub3RoaW5nIGFib3V0IHRoZSBzdGF0ZQpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5z Z21sCmluZGV4IDE4NjhiOTU4MzYuLjRmMzZhMmY3MzIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9zeXN0ZW0tdmlld3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwK QEAgLTI1NjYsNiArMjU2NiwyMiBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xvY2tzIHBsIExFRlQgSk9J TiBwZ19wcmVwYXJlZF94YWN0cyBwcHgKICAgICAgICBhZnRlciBmYWlsb3Zlci4gQWx3YXlzIGZh bHNlIGZvciBwaHlzaWNhbCBzbG90cy4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c3lu Y2VkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgVHJ1ZSBpZiB0aGlzIGlzIGEgbG9naWNhbCBzbG90IHRoYXQgd2FzIHN5 bmNlZCBmcm9tIGEgcHJpbWFyeSBzZXJ2ZXIuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBPbiBhIGhvdCBzdGFuZGJ5LCB0aGUgc2xvdHMgd2l0aCB0aGUgc3luY2VkIGNvbHVt biBtYXJrZWQgYXMgdHJ1ZSBjYW4KKyAgICAgICBuZWl0aGVyIGJlIHVzZWQgZm9yIGxvZ2ljYWwg ZGVjb2Rpbmcgbm9yIGRyb3BwZWQgYnkgdGhlIHVzZXIuIFRoZSB2YWx1ZQorICAgICAgIG9mIHRo aXMgY29sdW1uIGhhcyBubyBtZWFuaW5nIG9uIHRoZSBwcmltYXJ5IHNlcnZlcjsgdGhlIGNvbHVt biB2YWx1ZSBvbgorICAgICAgIHRoZSBwcmltYXJ5IGlzIGRlZmF1bHQgZmFsc2UgZm9yIGFsbCBz bG90cyBidXQgbWF5IChpZiBsZWZ0b3ZlciBmcm9tIGEKKyAgICAgICBwcm9tb3RlZCBzdGFuZGJ5 KSBhbHNvIGJlIHRydWUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAg PC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Zy5jCmluZGV4IDQ3ODM3N2M0YTIuLjJkNjZkMGQ4NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKQEAgLTM1OTYsNiArMzU5Niw5IEBAIFhMb2dHZXRMYXN0UmVtb3ZlZFNlZ25vKHZvaWQp CiAvKgogICogUmV0dXJuIHRoZSBvbGRlc3QgV0FMIHNlZ21lbnQgb24gdGhlIGdpdmVuIFRMSSB0 aGF0IHN0aWxsIGV4aXN0cyBpbgogICogWExPR0RJUiwgb3IgMCBpZiBub25lLgorICoKKyAqIElm IHRoZSBnaXZlbiBUTEkgaXMgMCwgcmV0dXJuIHRoZSBvbGRlc3QgV0FMIHNlZ21lbnQgYW1vbmcg YWxsIHRoZSBjdXJyZW50bHkKKyAqIGV4aXN0aW5nIFdBTCBzZWdtZW50cy4KICAqLwogWExvZ1Nl Z05vCiBYTG9nR2V0T2xkZXN0U2Vnbm8oVGltZUxpbmVJRCB0bGkpCkBAIC0zNjE5LDcgKzM2MjIs NyBAQCBYTG9nR2V0T2xkZXN0U2Vnbm8oVGltZUxpbmVJRCB0bGkpCiAJCQkJCQkgd2FsX3NlZ21l bnRfc2l6ZSk7CiAKIAkJLyogSWdub3JlIGFueXRoaW5nIHRoYXQncyBub3QgZnJvbSB0aGUgVExJ IG9mIGludGVyZXN0LiAqLwotCQlpZiAodGxpICE9IGZpbGVfdGxpKQorCQlpZiAodGxpICE9IDAg JiYgdGxpICE9IGZpbGVfdGxpKQogCQkJY29udGludWU7CiAKIAkJLyogSWYgaXQncyB0aGUgb2xk ZXN0IHNvIGZhciwgdXBkYXRlIG9sZGVzdF9zZWduby4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggMWI0OGQ3MTcxYS4uZTM4YTk1ODdlMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAgLTUwLDYgKzUwLDcgQEAK ICNpbmNsdWRlICJwb3N0bWFzdGVyL3N0YXJ0dXAuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9z bG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJy ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAj aW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xhdGNoLmgiCkBAIC0x NDQxLDYgKzE0NDIsMjAgQEAgRmluaXNoV2FsUmVjb3Zlcnkodm9pZCkKIAkgKi8KIAlYTG9nU2h1 dGRvd25XYWxSY3YoKTsKIAorCS8qCisJICogU2h1dGRvd24gdGhlIHNsb3Qgc3luYyB3b3JrZXJz IHRvIHByZXZlbnQgcG90ZW50aWFsIGNvbmZsaWN0cyBiZXR3ZWVuCisJICogdXNlciBwcm9jZXNz ZXMgYW5kIHNsb3RzeW5jIHdvcmtlcnMgYWZ0ZXIgYSBwcm9tb3Rpb24uCisJICoKKwkgKiBXZSBk byBub3QgdXBkYXRlIHRoZSAnc3luY2VkJyBjb2x1bW4gZnJvbSB0cnVlIHRvIGZhbHNlIGhlcmUs IGFzIGFueQorCSAqIGZhaWxlZCB1cGRhdGUgY291bGQgbGVhdmUgJ3N5bmNlZCcgY29sdW1uIGZh bHNlIGZvciBzb21lIHNsb3RzLiBUaGlzCisJICogY291bGQgY2F1c2UgaXNzdWVzIGR1cmluZyBz bG90IHN5bmMgYWZ0ZXIgcmVzdGFydGluZyB0aGUgc2VydmVyIGFzIGEKKwkgKiBzdGFuZGJ5LiBX aGlsZSB1cGRhdGluZyBhZnRlciBzd2l0Y2hpbmcgdG8gdGhlIG5ldyB0aW1lbGluZSBpcyBhbgor CSAqIG9wdGlvbiwgaXQgZG9lcyBub3Qgc2ltcGxpZnkgdGhlIGhhbmRsaW5nIGZvciAnc3luY2Vk JyBjb2x1bW4uCisJICogVGhlcmVmb3JlLCB3ZSByZXRhaW4gdGhlICdzeW5jZWQnIGNvbHVtbiBh cyB0cnVlIGFmdGVyIHByb21vdGlvbiBhcyBpdAorCSAqIG1heSBwcm92aWRlIHVzZWZ1bCBpbmZv cm1hdGlvbiBhYm91dCB0aGUgc2xvdCBvcmlnaW4uCisJICovCisJU2h1dERvd25TbG90U3luYygp OworCiAJLyoKIAkgKiBXZSBhcmUgbm93IGRvbmUgcmVhZGluZyB0aGUgeGxvZyBmcm9tIHN0cmVh bS4gVHVybiBvZmYgc3RyZWFtaW5nCiAJICogcmVjb3ZlcnkgdG8gZm9yY2UgZmV0Y2hpbmcgdGhl IGZpbGVzICh3aGljaCB3b3VsZCBiZSByZXF1aXJlZCBhdCBlbmQgb2YKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbAppbmRleCBlNDNhOTM3MzlkLi5hZDU3YmFkZTA3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDI0LDcgKzEwMjQsOCBAQCBDUkVBVEUgVklF VyBwZ19yZXBsaWNhdGlvbl9zbG90cyBBUwogICAgICAgICAgICAgTC5zYWZlX3dhbF9zaXplLAog ICAgICAgICAgICAgTC50d29fcGhhc2UsCiAgICAgICAgICAgICBMLmNvbmZsaWN0X3JlYXNvbiwK LSAgICAgICAgICAgIEwuZmFpbG92ZXIKKyAgICAgICAgICAgIEwuZmFpbG92ZXIsCisgICAgICAg ICAgICBMLnN5bmNlZAogICAgIEZST00gcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgQVMgTAog ICAgICAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIEQgT04gKEwuZGF0b2lkID0gRC5vaWQp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMgYi9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKaW5kZXggNjdmOTJjMjRkYi4uNDY4MjhiOGE4 OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1 ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2lj YWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKKyNp bmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdl L2RzbS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRj aC5oIgpAQCAtMTI5LDYgKzEzMCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CiAJCSJBcHBs eVdvcmtlck1haW4iLCBBcHBseVdvcmtlck1haW4KIAl9LAorCXsKKwkJIlJlcGxTbG90U3luY1dv cmtlck1haW4iLCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluCisJfSwKIAl7CiAJCSJQYXJhbGxlbEFw cGx5V29ya2VyTWFpbiIsIFBhcmFsbGVsQXBwbHlXb3JrZXJNYWluCiAJfSwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggZmViNDcxZGQxZC4uZDkwZDVkMTU3NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTExNiw2ICsxMTYsNyBAQAogI2luY2x1ZGUgInBv c3RtYXN0ZXIvd2Fsc3VtbWFyaXplci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxs YXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5oIgorI2luY2x1ZGUg InJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIK ICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcGdfc2htZW0uaCIK QEAgLTEwMTAsNiArMTAxMSwxMiBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCSAqLwogCUFwcGx5TGF1bmNoZXJSZWdpc3RlcigpOwogCisJLyoKKwkgKiBSZWdpc3Rl ciB0aGUgc2xvdCBzeW5jIHdvcmtlciBoZXJlIHRvIGtpY2sgc3RhcnQgc2xvdC1zeW5jIG9wZXJh dGlvbgorCSAqIHNvb25lciBvbiB0aGUgcGh5c2ljYWwgc3RhbmRieS4KKwkgKi8KKwlTbG90U3lu Y1dvcmtlclJlZ2lzdGVyKCk7CisKIAkvKgogCSAqIHByb2Nlc3MgYW55IGxpYnJhcmllcyB0aGF0 IHNob3VsZCBiZSBwcmVsb2FkZWQgYXQgcG9zdG1hc3RlciBzdGFydAogCSAqLwpAQCAtNTc5OSw2 ICs1ODA2LDkgQEAgYmd3b3JrZXJfc2hvdWxkX3N0YXJ0X25vdyhCZ1dvcmtlclN0YXJ0VGltZSBz dGFydF90aW1lKQogCQljYXNlIFBNX0hPVF9TVEFOREJZOgogCQkJaWYgKHN0YXJ0X3RpbWUgPT0g QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUpCiAJCQkJcmV0dXJuIHRydWU7CisJCQlpZiAo c3RhcnRfdGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5ICYm CisJCQkJCSBwbVN0YXRlICE9IFBNX1JVTikKKwkJCQlyZXR1cm4gdHJ1ZTsKIAkJCS8qIGZhbGwg dGhyb3VnaCAqLwogCiAJCWNhc2UgUE1fUkVDT1ZFUlk6CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCmlu ZGV4IGYxOGEwNGQ4YTQuLmY5MTBhM2IxMDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBAIC0z NCw2ICszNCw3IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1dGls cy9wZ19sc24uaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXN0b3JlLmgiCisjaW5jbHVkZSAidXRp bHMvdmFybGVuYS5oIgogCiBQR19NT0RVTEVfTUFHSUM7CiAKQEAgLTU4LDYgKzU5LDcgQEAgc3Rh dGljIHZvaWQgbGlicHFyY3ZfZ2V0X3NlbmRlcmluZm8oV2FsUmVjZWl2ZXJDb25uICpjb25uLAog CQkJCQkJCQkJY2hhciAqKnNlbmRlcl9ob3N0LCBpbnQgKnNlbmRlcl9wb3J0KTsKIHN0YXRpYyBj aGFyICpsaWJwcXJjdl9pZGVudGlmeV9zeXN0ZW0oV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJ CQkJCQkJICBUaW1lTGluZUlEICpwcmltYXJ5X3RsaSk7CitzdGF0aWMgY2hhciAqbGlicHFyY3Zf Z2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKGNvbnN0IGNoYXIgKmNvbm5pbmZvKTsKIHN0YXRpYyBp bnQJbGlicHFyY3Zfc2VydmVyX3ZlcnNpb24oV2FsUmVjZWl2ZXJDb25uICpjb25uKTsKIHN0YXRp YyB2b2lkIGxpYnBxcmN2X3JlYWR0aW1lbGluZWhpc3RvcnlmaWxlKFdhbFJlY2VpdmVyQ29ubiAq Y29ubiwKIAkJCQkJCQkJCQkJIFRpbWVMaW5lSUQgdGxpLCBjaGFyICoqZmlsZW5hbWUsCkBAIC0x MDAsNiArMTAyLDcgQEAgc3RhdGljIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSBQUVdhbFJlY2Vp dmVyRnVuY3Rpb25zID0gewogCS53YWxyY3Zfc2VuZCA9IGxpYnBxcmN2X3NlbmQsCiAJLndhbHJj dl9jcmVhdGVfc2xvdCA9IGxpYnBxcmN2X2NyZWF0ZV9zbG90LAogCS53YWxyY3ZfYWx0ZXJfc2xv dCA9IGxpYnBxcmN2X2FsdGVyX3Nsb3QsCisJLndhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmlu Zm8gPSBsaWJwcXJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8sCiAJLndhbHJjdl9nZXRfYmFj a2VuZF9waWQgPSBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQsCiAJLndhbHJjdl9leGVjID0gbGli cHFyY3ZfZXhlYywKIAkud2FscmN2X2Rpc2Nvbm5lY3QgPSBsaWJwcXJjdl9kaXNjb25uZWN0CkBA IC00MTgsNiArNDIxLDQ0IEBAIGxpYnBxcmN2X3NlcnZlcl92ZXJzaW9uKFdhbFJlY2VpdmVyQ29u biAqY29ubikKIAlyZXR1cm4gUFFzZXJ2ZXJWZXJzaW9uKGNvbm4tPnN0cmVhbUNvbm4pOwogfQog CisvKgorICogR2V0IGRhdGFiYXNlIG5hbWUgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIncyBjb25u aW5mby4KKyAqCisgKiBJZiBkYm5hbWUgaXMgbm90IGZvdW5kIGluIGNvbm5JbmZvLCByZXR1cm4g TlVMTCB2YWx1ZS4KKyAqLworc3RhdGljIGNoYXIgKgorbGlicHFyY3ZfZ2V0X2RibmFtZV9mcm9t X2Nvbm5pbmZvKGNvbnN0IGNoYXIgKmNvbm5JbmZvKQoreworCVBRY29ubmluZm9PcHRpb24gKm9w dHM7CisJY2hhcgkgICAqZGJuYW1lID0gTlVMTDsKKwljaGFyCSAgICplcnIgPSBOVUxMOworCisJ b3B0cyA9IFBRY29ubmluZm9QYXJzZShjb25uSW5mbywgJmVycik7CisJaWYgKG9wdHMgPT0gTlVM TCkKKwl7CisJCS8qIFRoZSBlcnJvciBzdHJpbmcgaXMgbWFsbG9jJ2QsIHNvIHdlIG11c3QgZnJl ZSBpdCBleHBsaWNpdGx5ICovCisJCWNoYXIJICAgKmVycmNvcHkgPSBlcnIgPyBwc3RyZHVwKGVy cikgOiAib3V0IG9mIG1lbW9yeSI7CisKKwkJUFFmcmVlbWVtKGVycik7CisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2coImlu dmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiAlcyIsIGVycmNvcHkpKSk7CisJfQorCisJ Zm9yIChQUWNvbm5pbmZvT3B0aW9uICpvcHQgPSBvcHRzOyBvcHQtPmtleXdvcmQgIT0gTlVMTDsg KytvcHQpCisJeworCQkvKgorCQkgKiBJZiBtdWx0aXBsZSBkYm5hbWVzIGFyZSBzcGVjaWZpZWQs IHRoZW4gdGhlIGxhc3Qgb25lIHdpbGwgYmUKKwkJICogcmV0dXJuZWQKKwkJICovCisJCWlmIChz dHJjbXAob3B0LT5rZXl3b3JkLCAiZGJuYW1lIikgPT0gMCAmJiBvcHQtPnZhbCAmJgorCQkJb3B0 LT52YWxbMF0gIT0gJ1wwJykKKwkJCWRibmFtZSA9IHBzdHJkdXAob3B0LT52YWwpOworCX0KKwor CXJldHVybiBkYm5hbWU7Cit9CisKIC8qCiAgKiBTdGFydCBzdHJlYW1pbmcgV0FMIGRhdGEgZnJv bSBnaXZlbiBzdHJlYW1pbmcgb3B0aW9ucy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9NYWtlZmlsZQppbmRleCAyZGMyNWUzN2JiLi5iYTAzZWVmZjFjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUKQEAgLTI1LDYgKzI1LDcgQEAgT0JKUyA9IFwK IAlwcm90by5vIFwKIAlyZWxhdGlvbi5vIFwKIAlyZW9yZGVyYnVmZmVyLm8gXAorCXNsb3RzeW5j Lm8gXAogCXNuYXBidWlsZC5vIFwKIAl0YWJsZXN5bmMubyBcCiAJd29ya2VyLm8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKaW5kZXggY2EwOWM2ODNmMS4uNWFlZmIx MGVjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2Fs LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTUy NCw2ICs1MjQsMTggQEAgQ3JlYXRlRGVjb2RpbmdDb250ZXh0KFhMb2dSZWNQdHIgc3RhcnRfbHNu LAogCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIHdhcyBub3QgY3JlYXRlZCBp biB0aGlzIGRhdGFiYXNlIiwKIAkJCQkJCU5hbWVTdHIoc2xvdC0+ZGF0YS5uYW1lKSkpKTsKIAor CS8qCisJICogRG8gbm90IGFsbG93IGNvbnN1bXB0aW9uIG9mIGEgInN5bmNocm9uaXplZCIgc2xv dCB1bnRpbCB0aGUgc3RhbmRieQorCSAqIGdldHMgcHJvbW90ZWQuCisJICovCisJaWYgKFJlY292 ZXJ5SW5Qcm9ncmVzcygpICYmIHNsb3QtPmRhdGEuc3luY2VkKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJ CQkJZXJybXNnKCJjYW5ub3QgdXNlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGZvciBsb2dpY2Fs IgorCQkJCQkgICAiIGRlY29kaW5nIiwgTmFtZVN0cihzbG90LT5kYXRhLm5hbWUpKSwKKwkJCQll cnJkZXRhaWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2 ZXIuIiksCisJCQkJZXJyaGludCgiU3BlY2lmeSBhbm90aGVyIHJlcGxpY2F0aW9uIHNsb3QuIikp OworCiAJLyoKIAkgKiBDaGVjayBpZiBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIGR1ZSB0byBt YXhfc2xvdF93YWxfa2VlcF9zaXplLiBBdm9pZAogCSAqICJjYW5ub3QgZ2V0IGNoYW5nZXMiIHdv cmRpbmcgaW4gdGhpcyBlcnJtc2cgYmVjYXVzZSB0aGF0J2QgYmUKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkCmluZGV4IDEwNTBlYjJjMDkuLjNkZWMzNmE2ZGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNvbi5idWlsZApAQCAtMTEs NiArMTEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwcm90by5jJywKICAgJ3Jl bGF0aW9uLmMnLAogICAncmVvcmRlcmJ1ZmZlci5jJywKKyAgJ3Nsb3RzeW5jLmMnLAogICAnc25h cGJ1aWxkLmMnLAogICAndGFibGVzeW5jLmMnLAogICAnd29ya2VyLmMnLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLjdhNjdjMzlkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTAsMCArMSwxMTYxIEBACisvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqIHNsb3RzeW5jLmMKKyAqCSAgIFBvc3RncmVTUUwgd29ya2VyIGZvciBz eW5jaHJvbml6aW5nIHNsb3RzIHRvIGEgc3RhbmRieSBzZXJ2ZXIgZnJvbSB0aGUKKyAqICAgICAg ICAgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworICoKKyAqIFRoaXMgZmls ZSBjb250YWlucyB0aGUgY29kZSBmb3Igc2xvdCBzeW5jIHdvcmtlciBvbiBhIHBoeXNpY2FsIHN0 YW5kYnkKKyAqIHRvIGZldGNoIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgaW5mb3JtYXRpb24gZnJv bSB0aGUgcHJpbWFyeSBzZXJ2ZXIsCisgKiBjcmVhdGUgdGhlIHNsb3RzIG9uIHRoZSBzdGFuZGJ5 IGFuZCBzeW5jaHJvbml6ZSB0aGVtIHBlcmlvZGljYWxseS4KKyAqCisgKiBXaGlsZSBjcmVhdGlu ZyB0aGUgc2xvdCBvbiBwaHlzaWNhbCBzdGFuZGJ5LCBpZiB0aGUgbG9jYWwgcmVzdGFydF9sc24g YW5kL29yCisgKiBsb2NhbCBjYXRhbG9nX3htaW4gaXMgYWhlYWQgb2YgdGhvc2Ugb24gdGhlIHJl bW90ZSB0aGVuIHRoZSB3b3JrZXIgY2Fubm90CisgKiBjcmVhdGUgdGhlIGxvY2FsIHNsb3QgaW4g c3luYyB3aXRoIHRoZSBwcmltYXJ5IHNlcnZlciBiZWNhdXNlIHRoYXQgd291bGQKKyAqIG1lYW4g bW92aW5nIHRoZSBsb2NhbCBzbG90IGJhY2t3YXJkcyBhbmQgdGhlIHN0YW5kYnkgbWlnaHQgbm90 IGhhdmUgV0FMcworICogcmV0YWluZWQgZm9yIG9sZCBMU04uIEluIHRoaXMgY2FzZSwgdGhlIHdv cmtlciB3aWxsIG1hcmsgdGhlIHNsb3QgYXMKKyAqIFJTX1RFTVBPUkFSWS4gT25jZSB0aGUgcHJp bWFyeSBzZXJ2ZXIgY2F0Y2hlcyB1cCwgdGhlIHdvcmtlciB3aWxsIG1hcmsgdGhlCisgKiBzbG90 IGFzIFJTX1BFUlNJU1RFTlQgKHdoaWNoIG1lYW5zIHN5bmMtcmVhZHkpIGFuZCB3aWxsIHBlcmZv cm0gdGhlIHN5bmMKKyAqIHBlcmlvZGljYWxseS4KKyAqCisgKiBUaGUgd29ya2VyIGFsc28gdGFr ZXMgY2FyZSBvZiBkcm9wcGluZyB0aGUgc2xvdHMgd2hpY2ggd2VyZSBjcmVhdGVkIGJ5IGl0Cisg KiBhbmQgYXJlIGN1cnJlbnRseSBub3QgbmVlZGVkIHRvIGJlIHN5bmNocm9uaXplZC4KKyAqCisg KiBJdCB3YWl0cyBmb3IgYSBwZXJpb2Qgb2YgdGltZSBiZWZvcmUgdGhlIG5leHQgc3luY2hyb25p emF0aW9uLCB3aXRoIHRoZQorICogZHVyYXRpb24gdmFyeWluZyBiYXNlZCBvbiB3aGV0aGVyIGFu eSBzbG90cyB3ZXJlIHVwZGF0ZWQgZHVyaW5nIHRoZSBsYXN0CisgKiBjeWNsZS4gUmVmZXIgdG8g dGhlIGNvbW1lbnRzIGFib3ZlIHNsZWVwX3F1YW50YSBhbmQgd2FpdF9mb3Jfc2xvdF9hY3Rpdml0 eSgpCisgKiBmb3IgbW9yZSBkZXRhaWxzLgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1 ZGUgImFjY2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9nX2ludGVybmFsLmgiCisj aW5jbHVkZSAiYWNjZXNzL3hsb2dyZWNvdmVyeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0 YWJhc2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCisjaW5jbHVkZSAicGdz dGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9iZ3dvcmtlci5oIgorI2luY2x1ZGUgInBvc3Rt YXN0ZXIvaW50ZXJydXB0LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgorI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgorI2luY2x1ZGUgInJlcGxpY2F0 aW9uL2xvZ2ljYWx3b3JrZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxyZWNlaXZlci5o IgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvaXBjLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKKyNpbmNsdWRlICJ0 Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1 dGlscy9mbWdyb2lkcy5oIgorI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgorI2luY2x1ZGUg InV0aWxzL3BnX2xzbi5oIgorI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKKworLyoKKyAqIFN0 cnVjdHVyZSB0byBob2xkIGluZm9ybWF0aW9uIGZldGNoZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2 ZXIgYWJvdXQgYSBsb2dpY2FsCisgKiByZXBsaWNhdGlvbiBzbG90LgorICovCit0eXBlZGVmIHN0 cnVjdCBSZW1vdGVTbG90Cit7CisJY2hhcgkgICAqbmFtZTsKKwljaGFyCSAgICpwbHVnaW47CisJ Y2hhcgkgICAqZGF0YWJhc2U7CisJYm9vbAkJdHdvX3BoYXNlOworCWJvb2wJCWZhaWxvdmVyOwor CVhMb2dSZWNQdHIJcmVzdGFydF9sc247CisJWExvZ1JlY1B0cgljb25maXJtZWRfbHNuOworCVRy YW5zYWN0aW9uSWQgY2F0YWxvZ194bWluOworCisJLyogUlNfSU5WQUxfTk9ORSBpZiB2YWxpZCwg b3IgdGhlIHJlYXNvbiBvZiBpbnZhbGlkYXRpb24gKi8KKwlSZXBsaWNhdGlvblNsb3RJbnZhbGlk YXRpb25DYXVzZSBpbnZhbGlkYXRlZDsKK30gUmVtb3RlU2xvdDsKKworLyoKKyAqIFN0cnVjdCBm b3Igc2hhcmluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHN0YXJ0dXAgcHJvY2VzcyBhbmQgc2xvdAor ICogc3luYyB3b3JrZXIuCisgKgorICogU2xvdCBzeW5jIHdvcmtlcidzIHBpZCBpcyBuZWVkZWQg Ynkgc3RhcnR1cCBwcm9jZXNzIGluIG9yZGVyIHRvCisgKiBzaHV0IGl0IGRvd24gZHVyaW5nIHBy b21vdGlvbi4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QKK3sK KwlwaWRfdAkJcGlkOworCXNsb2NrX3QJCW11dGV4OworfSBTbG90U3luY1dvcmtlckN0eFN0cnVj dDsKKworU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKlNsb3RTeW5jV29ya2VyID0gTlVMTDsKKwor LyogR1VDIHZhcmlhYmxlICovCitib29sCQllbmFibGVfc3luY3Nsb3QgPSBmYWxzZTsKKworLyoK KyAqIFNsZWVwIHRpbWUgaW4gbXMgYmV0d2VlbiBzbG90LXN5bmMgY3ljbGVzLgorICogU2VlIHdh aXRfZm9yX3Nsb3RfYWN0aXZpdHkoKSBmb3IgaG93IHdlIGFkanVzdCB0aGlzCisgKi8KK3N0YXRp YyBsb25nIHNsZWVwX21zOworCitzdGF0aWMgdm9pZCBQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRz KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKTsKKworLyoKKyAqIFRyeSB0byB1cGRhdGUgbG9jYWwg c2xvdCBtZXRhZGF0YSBiYXNlZCBvbiB0aGUgZGF0YSBmcm9tIHRoZSByZW1vdGUgc2xvdC4KKyAq CisgKiBSZXR1cm4gZmFsc2UgaWYgdGhlIGRhdGEgb2YgdGhlIHJlbW90ZSBzbG90IGlzIHRoZSBz YW1lIGFzIHRoZSBsb2NhbCBzbG90LgorICogT3RoZXJ3aXNlLCByZXR1cm4gdHJ1ZS4KKyAqLwor c3RhdGljIGJvb2wKK2xvY2FsX3Nsb3RfdXBkYXRlKFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90KQor eworCWJvb2wJdXBkYXRlZF94bWluOworCWJvb2wJdXBkYXRlZF9yZXN0YXJ0OworCU9pZAkJZGJp ZDsKKwlSZXBsaWNhdGlvblNsb3QJICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CisKKwlBc3Nl cnQoc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCA9PSBSU19JTlZBTF9OT05FKTsKKworCXVwZGF0ZWRf eG1pbiA9IChyZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluICE9IHNsb3QtPmRhdGEuY2F0YWxvZ194 bWluKTsKKwl1cGRhdGVkX3Jlc3RhcnQgPSAocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuICE9IHNs b3QtPmRhdGEucmVzdGFydF9sc24pOworCWRiaWQgPSBnZXRfZGF0YWJhc2Vfb2lkKHJlbW90ZV9z bG90LT5kYXRhYmFzZSwgZmFsc2UpOworCisJaWYgKG5hbWVzdHJjbXAoJnNsb3QtPmRhdGEucGx1 Z2luLCByZW1vdGVfc2xvdC0+cGx1Z2luKSA9PSAwICYmCisJCXNsb3QtPmRhdGEuZGF0YWJhc2Ug PT0gZGJpZCAmJiAhdXBkYXRlZF9yZXN0YXJ0ICYmICF1cGRhdGVkX3htaW4gJiYKKwkJcmVtb3Rl X3Nsb3QtPnR3b19waGFzZSA9PSBzbG90LT5kYXRhLnR3b19waGFzZSAmJgorCQlyZW1vdGVfc2xv dC0+ZmFpbG92ZXIgPT0gc2xvdC0+ZGF0YS5mYWlsb3ZlciAmJgorCQlyZW1vdGVfc2xvdC0+Y29u ZmlybWVkX2xzbiA9PSBzbG90LT5kYXRhLmNvbmZpcm1lZF9mbHVzaCkKKwkJcmV0dXJuIGZhbHNl OworCisJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJbmFtZXN0cmNweSgmc2xvdC0+ ZGF0YS5wbHVnaW4sIHJlbW90ZV9zbG90LT5wbHVnaW4pOworCXNsb3QtPmRhdGEuZGF0YWJhc2Ug PSBkYmlkOworCXNsb3QtPmRhdGEudHdvX3BoYXNlID0gcmVtb3RlX3Nsb3QtPnR3b19waGFzZTsK KwlzbG90LT5kYXRhLmZhaWxvdmVyID0gcmVtb3RlX3Nsb3QtPmZhaWxvdmVyOworCXNsb3QtPmRh dGEucmVzdGFydF9sc24gPSByZW1vdGVfc2xvdC0+cmVzdGFydF9sc247CisJc2xvdC0+ZGF0YS5j b25maXJtZWRfZmx1c2ggPSByZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbjsKKwlzbG90LT5kYXRh LmNhdGFsb2dfeG1pbiA9IHJlbW90ZV9zbG90LT5jYXRhbG9nX3htaW47CisJU3BpbkxvY2tSZWxl YXNlKCZzbG90LT5tdXRleCk7CisKKwlpZiAodXBkYXRlZF94bWluKQorCQlSZXBsaWNhdGlvblNs b3RzQ29tcHV0ZVJlcXVpcmVkWG1pbihmYWxzZSk7CisKKwlpZiAodXBkYXRlZF9yZXN0YXJ0KQor CQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CisKKwlyZXR1cm4gdHJ1ZTsK K30KKworLyoKKyAqIEdldCBsaXN0IG9mIGxvY2FsIGxvZ2ljYWwgc2xvdHMgd2hpY2ggYXJlIHN5 bmNocm9uaXplZCBmcm9tCisgKiB0aGUgcHJpbWFyeSBzZXJ2ZXIuCisgKi8KK3N0YXRpYyBMaXN0 ICoKK2dldF9sb2NhbF9zeW5jZWRfc2xvdHModm9pZCkKK3sKKwlMaXN0CSAgICpsb2NhbF9zbG90 cyA9IE5JTDsKKworCUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExX X1NIQVJFRCk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG1heF9yZXBsaWNhdGlvbl9zbG90czsg aSsrKQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzID0gJlJlcGxpY2F0aW9uU2xvdEN0bC0+cmVw bGljYXRpb25fc2xvdHNbaV07CisKKwkJLyogQ2hlY2sgaWYgaXQgaXMgYSBzeW5jaHJvbml6ZWQg c2xvdCAqLworCQlpZiAocy0+aW5fdXNlICYmIHMtPmRhdGEuc3luY2VkKQorCQl7CisJCQlBc3Nl cnQoU2xvdElzTG9naWNhbChzKSk7CisJCQlsb2NhbF9zbG90cyA9IGxhcHBlbmQobG9jYWxfc2xv dHMsIHMpOworCQl9CisJfQorCisJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jayk7CisKKwlyZXR1cm4gbG9jYWxfc2xvdHM7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rp b24gdG8gY2hlY2sgaWYgbG9jYWxfc2xvdCBpcyBwcmVzZW50IGluIHJlbW90ZV9zbG90cyBsaXN0 LgorICoKKyAqIEl0IGFsc28gY2hlY2tzIGlmIHRoZSBzbG90IG9uIHRoZSBzdGFuZGJ5IHNlcnZl ciB3YXMgaW52YWxpZGF0ZWQgd2hpbGUgdGhlCisgKiBjb3JyZXNwb25kaW5nIHJlbW90ZSBzbG90 IGluIHRoZSBsaXN0IHJlbWFpbmVkIHZhbGlkLiBJZiBmb3VuZCBzbywgaXQgc2V0cworICogdGhl IGxvY2FsbHlfaW52YWxpZGF0ZWQgZmxhZyB0byB0cnVlLgorICovCitzdGF0aWMgYm9vbAorY2hl Y2tfc3luY19zbG90X29uX3JlbW90ZShSZXBsaWNhdGlvblNsb3QgKmxvY2FsX3Nsb3QsIExpc3Qg KnJlbW90ZV9zbG90cywKKwkJCQkJCSAgYm9vbCAqbG9jYWxseV9pbnZhbGlkYXRlZCkKK3sKKwlm b3JlYWNoX3B0cihSZW1vdGVTbG90LCByZW1vdGVfc2xvdCwgcmVtb3RlX3Nsb3RzKQorCXsKKwkJ aWYgKHN0cmNtcChyZW1vdGVfc2xvdC0+bmFtZSwgTmFtZVN0cihsb2NhbF9zbG90LT5kYXRhLm5h bWUpKSA9PSAwKQorCQl7CisJCQkvKgorCQkJICogSWYgcmVtb3RlIHNsb3QgaXMgbm90IGludmFs aWRhdGVkIGJ1dCBsb2NhbCBzbG90IGlzIG1hcmtlZCBhcworCQkJICogaW52YWxpZGF0ZWQsIHRo ZW4gc2V0IHRoZSBib29sLgorCQkJICovCisJCQlTcGluTG9ja0FjcXVpcmUoJmxvY2FsX3Nsb3Qt Pm11dGV4KTsKKwkJCSpsb2NhbGx5X2ludmFsaWRhdGVkID0KKwkJCQkocmVtb3RlX3Nsb3QtPmlu dmFsaWRhdGVkID09IFJTX0lOVkFMX05PTkUpICYmCisJCQkJKGxvY2FsX3Nsb3QtPmRhdGEuaW52 YWxpZGF0ZWQgIT0gUlNfSU5WQUxfTk9ORSk7CisJCQlTcGluTG9ja1JlbGVhc2UoJmxvY2FsX3Ns b3QtPm11dGV4KTsKKworCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CisKKwlyZXR1cm4gZmFsc2U7 Cit9CisKKy8qCisgKiBEcm9wIG9ic29sZXRlIHNsb3RzCisgKgorICogRHJvcCB0aGUgc2xvdHMg dGhhdCBubyBsb25nZXIgbmVlZCB0byBiZSBzeW5jZWQgaS5lLiB0aGVzZSBlaXRoZXIgZG8gbm90 CisgKiBleGlzdCBvbiB0aGUgcHJpbWFyeSBvciBhcmUgbm8gbG9uZ2VyIGVuYWJsZWQgZm9yIGZh aWxvdmVyLgorICoKKyAqIEFkZGl0aW9uYWxseSwgaXQgZHJvcHMgc2xvdHMgdGhhdCBhcmUgdmFs aWQgb24gdGhlIHByaW1hcnkgYnV0IGdvdAorICogaW52YWxpZGF0ZWQgb24gdGhlIHN0YW5kYnku IFRoaXMgc2l0dWF0aW9uIG1heSBvY2N1ciBkdWUgdG8gdGhlIGZvbGxvd2luZworICogcmVhc29u czoKKyAqIC0gVGhlIG1heF9zbG90X3dhbF9rZWVwX3NpemUgb24gdGhlIHN0YW5kYnkgaXMgaW5z dWZmaWNpZW50IHRvIHJldGFpbiBXQUwKKyAqICAgcmVjb3JkcyBmcm9tIHRoZSByZXN0YXJ0X2xz biBvZiB0aGUgc2xvdC4KKyAqIC0gcHJpbWFyeV9zbG90X25hbWUgaXMgdGVtcG9yYXJpbHkgcmVz ZXQgdG8gbnVsbCBhbmQgdGhlIHBoeXNpY2FsIHNsb3QgaXMKKyAqICAgcmVtb3ZlZC4KKyAqIC0g VGhlIHByaW1hcnkgY2hhbmdlcyB3YWxfbGV2ZWwgdG8gYSBsZXZlbCBsb3dlciB0aGFuIGxvZ2lj YWwuCisgKgorICogVGhlIGFzc3VtcHRpb24gaXMgdGhhdCB0aGVzZSBkcm9wcGVkIHNsb3RzIHdp bGwgZ2V0IHJlY3JlYXRlZCBpbiBuZXh0CisgKiBzeW5jLWN5Y2xlIGFuZCBpdCBpcyBva2F5IHRv IGRyb3AgYW5kIHJlY3JlYXRlIHN1Y2ggc2xvdHMgYXMgbG9uZyBhcyB0aGVzZQorICogYXJlIG5v dCBjb25zdW1hYmxlIG9uIHRoZSBzdGFuZGJ5ICh3aGljaCBpcyB0aGUgY2FzZSBjdXJyZW50bHkp LgorICovCitzdGF0aWMgdm9pZAorZHJvcF9vYnNvbGV0ZV9zbG90cyhMaXN0ICpyZW1vdGVfc2xv dF9saXN0KQoreworCUxpc3QJICAgKmxvY2FsX3Nsb3RzID0gZ2V0X2xvY2FsX3N5bmNlZF9zbG90 cygpOworCisJZm9yZWFjaF9wdHIoUmVwbGljYXRpb25TbG90LCBsb2NhbF9zbG90LCBsb2NhbF9z bG90cykKKwl7CisJCWJvb2wJCXJlbW90ZV9leGlzdHMgPSBmYWxzZTsKKwkJYm9vbAkJbG9jYWxs eV9pbnZhbGlkYXRlZCA9IGZhbHNlOworCisJCXJlbW90ZV9leGlzdHMgPSBjaGVja19zeW5jX3Ns b3Rfb25fcmVtb3RlKGxvY2FsX3Nsb3QsIHJlbW90ZV9zbG90X2xpc3QsCisJCQkJCQkJCQkJCQkg ICZsb2NhbGx5X2ludmFsaWRhdGVkKTsKKworCQkvKgorCQkgKiBEcm9wIHRoZSBsb2NhbCBzbG90 IGVpdGhlciBpZiBpdCBpcyBub3QgaW4gdGhlIHJlbW90ZSBzbG90cyBsaXN0IG9yCisJCSAqIGlz IGludmFsaWRhdGVkIHdoaWxlIHJlbW90ZSBzbG90IGlzIHN0aWxsIHZhbGlkLgorCQkgKi8KKwkJ aWYgKCFyZW1vdGVfZXhpc3RzIHx8IGxvY2FsbHlfaW52YWxpZGF0ZWQpCisJCXsKKwkJCVJlcGxp Y2F0aW9uU2xvdEFjcXVpcmUoTmFtZVN0cihsb2NhbF9zbG90LT5kYXRhLm5hbWUpLCB0cnVlKTsK KwkJCUFzc2VydChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5zeW5jZWQpOworCQkJUmVwbGljYXRp b25TbG90RHJvcEFjcXVpcmVkKCk7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQllcnJtc2coImRy b3BwZWQgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb2YgZGJpZCAlZCIsCisJCQkJCQkgICBOYW1l U3RyKGxvY2FsX3Nsb3QtPmRhdGEubmFtZSksCisJCQkJCQkgICBsb2NhbF9zbG90LT5kYXRhLmRh dGFiYXNlKSk7CisJCX0KKwl9Cit9CisKKy8qCisgKiBSZXNlcnZlIFdBTCBmb3IgdGhlIGN1cnJl bnRseSBhY3RpdmUgc2xvdCB1c2luZyB0aGUgc3BlY2lmaWVkIFdBTCBsb2NhdGlvbgorICogKHJl c3RhcnRfbHNuKS4KKyAqCisgKiBJZiB0aGUgZ2l2ZW4gV0FMIGxvY2F0aW9uIGhhcyBiZWVuIHJl bW92ZWQsIHJlc2VydmUgV0FMIHVzaW5nIHRoZSBvbGRlc3QKKyAqIGV4aXN0aW5nIFdBTCBzZWdt ZW50LgorICovCitzdGF0aWMgdm9pZAorcmVzZXJ2ZV93YWxfZm9yX3Nsb3QoWExvZ1JlY1B0ciBy ZXN0YXJ0X2xzbikKK3sKKwlYTG9nU2VnTm8Jb2xkZXN0X3NlZ25vOworCVhMb2dTZWdObwlzZWdu bzsKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCUFzc2Vy dChzbG90ICE9IE5VTEwpOworCUFzc2VydChYTG9nUmVjUHRySXNJbnZhbGlkKHNsb3QtPmRhdGEu cmVzdGFydF9sc24pKTsKKworCXdoaWxlICh0cnVlKQorCXsKKwkJU3BpbkxvY2tBY3F1aXJlKCZz bG90LT5tdXRleCk7CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJ U3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyogUHJldmVudCBXQUwgcmVtb3Zh bCBhcyBmYXN0IGFzIHBvc3NpYmxlICovCisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWly ZWRMU04oKTsKKworCQlYTEJ5dGVUb1NlZyhzbG90LT5kYXRhLnJlc3RhcnRfbHNuLCBzZWdubywg d2FsX3NlZ21lbnRfc2l6ZSk7CisKKwkJLyoKKwkJICogRmluZCB0aGUgb2xkZXN0IGV4aXN0aW5n IFdBTCBzZWdtZW50IGZpbGUuCisJCSAqCisJCSAqIE5vcm1hbGx5LCB3ZSBjYW4gZGV0ZXJtaW5l IGl0IGJ5IHVzaW5nIHRoZSBsYXN0IHJlbW92ZWQgc2VnbWVudAorCQkgKiBudW1iZXIuIEhvd2V2 ZXIsIGlmIG5vIFdBTCBzZWdtZW50IGZpbGVzIGhhdmUgYmVlbiByZW1vdmVkIGJ5IGEKKwkJICog Y2hlY2twb2ludCBzaW5jZSBzdGFydHVwLCB3ZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIG9sZGVz dCBzZWdtZW50CisJCSAqIGZpbGUgY3VycmVudGx5IGV4aXN0aW5nIGluIFhMT0dESVIuCisJCSAq LworCQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpICsgMTsKKworCQlp ZiAob2xkZXN0X3NlZ25vID09IDEpCisJCQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0T2xkZXN0U2Vn bm8oMCk7CisKKwkJLyoKKwkJICogSWYgYWxsIHJlcXVpcmVkIFdBTCBpcyBzdGlsbCB0aGVyZSwg Z3JlYXQsIG90aGVyd2lzZSByZXRyeS4gVGhlCisJCSAqIHNsb3Qgc2hvdWxkIHByZXZlbnQgZnVy dGhlciByZW1vdmFsIG9mIFdBTCwgdW5sZXNzIHRoZXJlJ3MgYQorCQkgKiBjb25jdXJyZW50IFJl cGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKSBhZnRlciB3ZSd2ZSB3cml0dGVuCisJ CSAqIHRoZSBuZXcgcmVzdGFydF9sc24gYWJvdmUsIHNvIG5vcm1hbGx5IHdlIHNob3VsZCBuZXZl ciBuZWVkIHRvIGxvb3AKKwkJICogbW9yZSB0aGFuIHR3aWNlLgorCQkgKi8KKwkJaWYgKHNlZ25v ID49IG9sZGVzdF9zZWdubykKKwkJCWJyZWFrOworCisJCS8qIFJldHJ5IHVzaW5nIHRoZSBsb2Nh dGlvbiBvZiB0aGUgb2xkZXN0IHdhbCBzZWdtZW50ICovCisJCVhMb2dTZWdOb09mZnNldFRvUmVj UHRyKG9sZGVzdF9zZWdubywgMCwgd2FsX3NlZ21lbnRfc2l6ZSwgcmVzdGFydF9sc24pOworCX0K K30KKworLyoKKyAqIFVwZGF0ZSB0aGUgTFNOcyBhbmQgcGVyc2lzdCB0aGUgc2xvdCBmb3IgZnVy dGhlciBzeW5jcyBpZiB0aGUgcmVtb3RlCisgKiByZXN0YXJ0X2xzbiBhbmQgY2F0YWxvZ194bWlu IGhhdmUgY2F1Z2h0IHVwIHdpdGggdGhlIGxvY2FsIG9uZXMsIG90aGVyd2lzZQorICogZG8gbm90 aGluZy4KKyAqCisgKiBSZXR1cm4gdHJ1ZSBlaXRoZXIgaWYgdGhlIHNsb3QgaXMgbWFya2VkIGFz IFJTX1BFUlNJU1RFTlQgKHN5bmMtcmVhZHkpIG9yCisgKiBpcyBzeW5jZWQgcGVyaW9kaWNhbGx5 IChpZiBpdCB3YXMgYWxyZWFkeSBzeW5jLXJlYWR5KS4gUmV0dXJuIGZhbHNlCisgKiBvdGhlcndp c2UuCisgKi8KK3N0YXRpYyBib29sCit1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChSZW1vdGVTbG90 ICpyZW1vdGVfc2xvdCkKK3sKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9u U2xvdDsKKworCS8qCisJICogQ2hlY2sgaWYgdGhlIHByaW1hcnkgc2VydmVyIGhhcyBjYXVnaHQg dXAuIFJlZmVyIHRvIHRoZSBjb21tZW50IGF0b3AKKwkgKiB0aGUgZmlsZSBmb3IgZGV0YWlscyBv biB0aGlzIGNoZWNrLgorCSAqCisJICogV2UgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIHJlbW90ZV9z bG90J3MgY29uZmlybWVkX2xzbiBiZWNvbWVzIHZhbGlkLiBJdAorCSAqIGlzIHBvc3NpYmxlIHRv IGdldCBudWxsIHZhbHVlcyBmb3IgY29uZmlybWVkX2xzbiBhbmQgY2F0YWxvZ194bWluIGlmIG9u CisJICogdGhlIHByaW1hcnkgc2VydmVyIHRoZSBzbG90IGlzIGp1c3QgY3JlYXRlZCB3aXRoIGEg dmFsaWQgcmVzdGFydF9sc24KKwkgKiBhbmQgc2xvdC1zeW5jIHdvcmtlciBoYXMgZmV0Y2hlZCB0 aGUgc2xvdCBiZWZvcmUgdGhlIHByaW1hcnkgc2VydmVyCisJICogY291bGQgc2V0IHZhbGlkIGNv bmZpcm1lZF9sc24gYW5kIGNhdGFsb2dfeG1pbi4KKwkgKi8KKwlpZiAocmVtb3RlX3Nsb3QtPnJl c3RhcnRfbHNuIDwgc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiB8fAorCQlYTG9nUmVjUHRySXNJbnZh bGlkKHJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNuKSB8fAorCQlUcmFuc2FjdGlvbklkUHJlY2Vk ZXMocmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiwKKwkJCQkJCQkgIHNsb3QtPmRhdGEuY2F0YWxv Z194bWluKSkKKwl7CisJCS8qCisJCSAqIFRoZSByZW1vdGUgc2xvdCBkaWRuJ3QgY2F0Y2ggdXAg dG8gbG9jYWxseSByZXNlcnZlZCBwb3NpdGlvbi4KKwkJICoKKwkJICogV2UgZG8gbm90IGRyb3Ag dGhlIHNsb3QgYmVjYXVzZSB0aGUgcmVzdGFydF9sc24gY2FuIGJlIGFoZWFkIG9mIHRoZQorCQkg KiBjdXJyZW50IGxvY2F0aW9uIHdoZW4gcmVjcmVhdGluZyB0aGUgc2xvdCBpbiB0aGUgbmV4dCBj eWNsZS4gSXQgbWF5CisJCSAqIHRha2UgbW9yZSB0aW1lIHRvIGNyZWF0ZSBzdWNoIGEgc2xvdC4g VGhlcmVmb3JlLCB3ZSBrZWVwIHRoaXMgc2xvdAorCQkgKiBhbmQgYXR0ZW1wdCB0aGUgd2FpdCBh bmQgc3luY2hyb25pemF0aW9uIGluIHRoZSBuZXh0IGN5Y2xlLgorCQkgKi8KKwkJcmV0dXJuIGZh bHNlOworCX0KKworCSh2b2lkKSBsb2NhbF9zbG90X3VwZGF0ZShyZW1vdGVfc2xvdCk7CisJUmVw bGljYXRpb25TbG90UGVyc2lzdCgpOworCisJZXJlcG9ydChMT0csCisJCQllcnJtc2coIm5ld2x5 IGxvY2FsbHkgY3JlYXRlZCBzbG90IFwiJXNcIiBpcyBzeW5jLXJlYWR5IG5vdyIsCisJCQkJICAg cmVtb3RlX3Nsb3QtPm5hbWUpKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogU3luY2hy b25pemUgc2luZ2xlIHNsb3QgdG8gZ2l2ZW4gcG9zaXRpb24uCisgKgorICogVGhpcyBjcmVhdGVz IGEgbmV3IHNsb3QgaWYgdGhlcmUgaXMgbm8gZXhpc3Rpbmcgb25lIGFuZCB1cGRhdGVzIHRoZQor ICogbWV0YWRhdGEgb2YgdGhlIHNsb3QgYXMgcGVyIHRoZSBkYXRhIHJlY2VpdmVkIGZyb20gdGhl IHByaW1hcnkgc2VydmVyLgorICoKKyAqIFRoZSBzbG90IGlzIGNyZWF0ZWQgYXMgYSB0ZW1wb3Jh cnkgc2xvdCBhbmQgc3RheXMgaW4gdGhlIHNhbWUgc3RhdGUgdW50aWwgdGhlCisgKiB0aGUgcmVt b3RlX3Nsb3QgY2F0Y2hlcyB1cCB3aXRoIGxvY2FsbHkgcmVzZXJ2ZWQgcG9zaXRpb24gYW5kIGxv Y2FsIHNsb3QgaXMKKyAqIHVwZGF0ZWQuIFRoZSBzbG90IGlzIHRoZW4gcGVyc2lzdGVkIGFuZCBp cyBjb25zaWRlcmVkIGFzIHN5bmMtcmVhZHkgZm9yCisgKiBwZXJpb2RpYyBzeW5jcy4KKyAqCisg KiBSZXR1cm5zIFRSVUUgaWYgdGhlIGxvY2FsIHNsb3QgaXMgdXBkYXRlZC4KKyAqLworc3RhdGlj IGJvb2wKK3N5bmNocm9uaXplX29uZV9zbG90KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBSZW1v dGVTbG90ICpyZW1vdGVfc2xvdCkKK3sKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3Q7CisJYm9vbAkJ c2xvdF91cGRhdGVkID0gZmFsc2U7CisJWExvZ1JlY1B0cglsYXRlc3RXYWxFbmQ7CisKKwkvKgor CSAqIFNhbml0eSBjaGVjazogTWFrZSBzdXJlIHRoYXQgY29uY2VybmVkIFdBTCBpcyByZWNlaXZl ZCBiZWZvcmUgc3luY2luZworCSAqIHNsb3QgdG8gdGFyZ2V0IGxzbiByZWNlaXZlZCBmcm9tIHRo ZSBwcmltYXJ5IHNlcnZlci4KKwkgKgorCSAqIFRoaXMgY2hlY2sgc2hvdWxkIG5ldmVyIHBhc3Mg YXMgb24gdGhlIHByaW1hcnkgc2VydmVyLCB3ZSBoYXZlIHdhaXRlZAorCSAqIGZvciB0aGUgc3Rh bmRieSdzIGNvbmZpcm1hdGlvbiBiZWZvcmUgdXBkYXRpbmcgdGhlIGxvZ2ljYWwgc2xvdC4KKwkg Ki8KKwlsYXRlc3RXYWxFbmQgPSBHZXRXYWxSY3ZMYXRlc3RXYWxFbmQoKTsKKwlpZiAocmVtb3Rl X3Nsb3QtPmNvbmZpcm1lZF9sc24gPiBsYXRlc3RXYWxFbmQpCisJeworCQllbG9nKEVSUk9SLCAi ZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGFzIHRoZSByZWNlaXZlZCBzbG90IHN5 bmMiCisJCQkgIiBMU04gJVgvJVggZm9yIHNsb3QgXCIlc1wiIGlzIGFoZWFkIG9mIHRoZSBzdGFu ZGJ5IHBvc2l0aW9uICVYLyVYIiwKKwkJCSBMU05fRk9STUFUX0FSR1MocmVtb3RlX3Nsb3QtPmNv bmZpcm1lZF9sc24pLAorCQkJIHJlbW90ZV9zbG90LT5uYW1lLAorCQkJIExTTl9GT1JNQVRfQVJH UyhsYXRlc3RXYWxFbmQpKTsKKwl9CisKKwkvKiBTZWFyY2ggZm9yIHRoZSBuYW1lZCBzbG90ICov CisJaWYgKChzbG90ID0gU2VhcmNoTmFtZWRSZXBsaWNhdGlvblNsb3QocmVtb3RlX3Nsb3QtPm5h bWUsIHRydWUpKSkKKwl7CisJCWJvb2wJCXN5bmNlZDsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNs b3QtPm11dGV4KTsKKwkJc3luY2VkID0gc2xvdC0+ZGF0YS5zeW5jZWQ7CisJCVNwaW5Mb2NrUmVs ZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCS8qIFVzZXIgY3JlYXRlZCBzbG90IHdpdGggdGhlIHNh bWUgbmFtZSBleGlzdHMsIHJhaXNlIEVSUk9SLiAqLworCQlpZiAoIXN5bmNlZCkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCisJCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9u IG9uIHJlY2VpdmluZyIKKwkJCQkJCSAgICIgdGhlIGZhaWxvdmVyIHNsb3QgXCIlc1wiIGZyb20g dGhlIHByaW1hcnkgc2VydmVyIiwKKwkJCQkJCSAgIHJlbW90ZV9zbG90LT5uYW1lKSwKKwkJCQkJ ZXJyZGV0YWlsKCJBIHVzZXItY3JlYXRlZCBzbG90IHdpdGggdGhlIHNhbWUgbmFtZSBhbHJlYWR5 IgorCQkJCQkJCSAgIiBleGlzdHMgb24gdGhlIHN0YW5kYnkuIikpOworCisJCS8qCisJCSAqIFNs b3QgY3JlYXRlZCBieSB0aGUgc2xvdCBzeW5jIHdvcmtlciBleGlzdHMsIHN5bmMgaXQuCisJCSAq CisJCSAqIEl0IGlzIGltcG9ydGFudCB0byBhY3F1aXJlIHRoZSBzbG90IGhlcmUgYmVmb3JlIGNo ZWNraW5nCisJCSAqIGludmFsaWRhdGlvbi4gSWYgd2UgZG9uJ3QgYWNxdWlyZSB0aGUgc2xvdCBm aXJzdCwgdGhlcmUgY291bGQgYmUgYQorCQkgKiByYWNlIGNvbmRpdGlvbiB0aGF0IHRoZSBsb2Nh bCBzbG90IGNvdWxkIGJlIGludmFsaWRhdGVkIGp1c3QgYWZ0ZXIKKwkJICogY2hlY2tpbmcgdGhl ICdpbnZhbGlkYXRlZCcgZmxhZyBoZXJlIGFuZCB3ZSBjb3VsZCBlbmQgdXAgb3ZlcndyaXRpbmcK KwkJICogJ2ludmFsaWRhdGVkJyBmbGFnIHRvIHJlbW90ZV9zbG90J3MgdmFsdWUuIFNlZQorCQkg KiBJbnZhbGlkYXRlUG9zc2libHlPYnNvbGV0ZVNsb3QoKSB3aGVyZSBpdCBpbnZhbGlkYXRlcyBz bG90IGRpcmVjdGx5CisJCSAqIGlmIHRoZSBzbG90IGlzIG5vdCBhY3F1aXJlZCBieSBvdGhlciBw cm9jZXNzZXMuCisJCSAqLworCQlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKHJlbW90ZV9zbG90LT5u YW1lLCB0cnVlKTsKKworCQlBc3NlcnQoc2xvdCA9PSBNeVJlcGxpY2F0aW9uU2xvdCk7CisKKwkJ LyoKKwkJICogQ29weSB0aGUgaW52YWxpZGF0aW9uIGNhdXNlIGZyb20gcmVtb3RlIG9ubHkgaWYg bG9jYWwgc2xvdCBpcyBub3QKKwkJICogaW52YWxpZGF0ZWQgbG9jYWxseSwgd2UgZG9uJ3Qgd2Fu dCB0byBvdmVyd3JpdGUgZXhpc3Rpbmcgb25lLgorCQkgKi8KKwkJaWYgKHNsb3QtPmRhdGEuaW52 YWxpZGF0ZWQgPT0gUlNfSU5WQUxfTk9ORSkKKwkJeworCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90 LT5tdXRleCk7CisJCQlzbG90LT5kYXRhLmludmFsaWRhdGVkID0gcmVtb3RlX3Nsb3QtPmludmFs aWRhdGVkOworCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJCS8qIE1ha2Ug c3VyZSB0aGUgaW52YWxpZGF0ZWQgc3RhdGUgcGVyc2lzdHMgYWNyb3NzIHNlcnZlciByZXN0YXJ0 ICovCisJCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0aW9uU2xvdFNh dmUoKTsKKwkJCXNsb3RfdXBkYXRlZCA9IHRydWU7CisJCX0KKworCQkvKiBTa2lwIHRoZSBzeW5j IG9mIGFuIGludmFsaWRhdGVkIHNsb3QgKi8KKwkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQg IT0gUlNfSU5WQUxfTk9ORSkKKwkJeworCQkJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCQkJ cmV0dXJuIHNsb3RfdXBkYXRlZDsKKwkJfQorCisJCS8qIFNsb3Qgbm90IHJlYWR5IHlldCwgbGV0 J3MgYXR0ZW1wdCB0byBtYWtlIGl0IHN5bmMtcmVhZHkgbm93LiAqLworCQlpZiAoc2xvdC0+ZGF0 YS5wZXJzaXN0ZW5jeSA9PSBSU19URU1QT1JBUlkpCisJCXsKKwkJCXNsb3RfdXBkYXRlZCA9IHVw ZGF0ZV9hbmRfcGVyc2lzdF9zbG90KHJlbW90ZV9zbG90KTsKKwkJfQorCisJCS8qIFNsb3QgcmVh ZHkgZm9yIHN5bmMsIHNvIHN5bmMgaXQuICovCisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFNh bml0eSBjaGVjazogQXMgbG9uZyBhcyB0aGUgaW52YWxpZGF0aW9ucyBhcmUgaGFuZGxlZAorCQkJ ICogYXBwcm9wcmlhdGVseSBhcyBhYm92ZSwgdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLgorCQkJ ICovCisJCQlpZiAocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuIDwgc2xvdC0+ZGF0YS5yZXN0YXJ0 X2xzbikKKwkJCQllbG9nKEVSUk9SLAorCQkJCQkgImNhbm5vdCBzeW5jaHJvbml6ZSBsb2NhbCBz bG90IFwiJXNcIiBMU04oJVgvJVgpIgorCQkJCQkgIiB0byByZW1vdGUgc2xvdCdzIExTTiglWC8l WCkgYXMgc3luY2hyb25pemF0aW9uIgorCQkJCQkgIiB3b3VsZCBtb3ZlIGl0IGJhY2t3YXJkcyIs IHJlbW90ZV9zbG90LT5uYW1lLAorCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHNsb3QtPmRhdGEucmVz dGFydF9sc24pLAorCQkJCQkgTFNOX0ZPUk1BVF9BUkdTKHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xz bikpOworCisJCQlzbG90X3VwZGF0ZWQgPSBsb2NhbF9zbG90X3VwZGF0ZShyZW1vdGVfc2xvdCk7 CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgc2xvdCBjaGFuZ2VzIHBlcnNpc3QgYWNyb3NzIHNlcnZl ciByZXN0YXJ0ICovCisJCQlpZiAoc2xvdF91cGRhdGVkKQorCQkJeworCQkJCVJlcGxpY2F0aW9u U2xvdE1hcmtEaXJ0eSgpOworCQkJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKKwkJCX0KKwkJfQor CX0KKwkvKiBPdGhlcndpc2UgY3JlYXRlIHRoZSBzbG90IGZpcnN0LiAqLworCWVsc2UKKwl7CisJ CVRyYW5zYWN0aW9uSWQgeG1pbl9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKKwkJ LyogU2tpcCBjcmVhdGluZyB0aGUgbG9jYWwgc2xvdCBpZiByZW1vdGVfc2xvdCBpcyBpbnZhbGlk YXRlZCBhbHJlYWR5ICovCisJCWlmIChyZW1vdGVfc2xvdC0+aW52YWxpZGF0ZWQgIT0gUlNfSU5W QUxfTk9ORSkKKwkJCXJldHVybiBmYWxzZTsKKworCQkvKiBFbnN1cmUgdGhhdCB3ZSBoYXZlIHRy YW5zYWN0aW9uIGVudiBuZWVkZWQgYnkgZ2V0X2RhdGFiYXNlX29pZCgpICovCisJCUFzc2VydChJ c1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwkJUmVwbGljYXRpb25TbG90Q3JlYXRlKHJlbW90ZV9z bG90LT5uYW1lLCB0cnVlLCBSU19URU1QT1JBUlksCisJCQkJCQkJICByZW1vdGVfc2xvdC0+dHdv X3BoYXNlLAorCQkJCQkJCSAgcmVtb3RlX3Nsb3QtPmZhaWxvdmVyLAorCQkJCQkJCSAgdHJ1ZSAv KiBzeW5jZWQgKi8gKTsKKworCQkvKiBGb3Igc2hvcnRlciBsaW5lcy4gKi8KKwkJc2xvdCA9IE15 UmVwbGljYXRpb25TbG90OworCisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlz bG90LT5kYXRhLmRhdGFiYXNlID0gZ2V0X2RhdGFiYXNlX29pZChyZW1vdGVfc2xvdC0+ZGF0YWJh c2UsIGZhbHNlKTsKKwkJbmFtZXN0cmNweSgmc2xvdC0+ZGF0YS5wbHVnaW4sIHJlbW90ZV9zbG90 LT5wbHVnaW4pOworCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKworCQlyZXNlcnZl X3dhbF9mb3Jfc2xvdChyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24pOworCisJCUxXTG9ja0FjcXVp cmUoUHJvY0FycmF5TG9jaywgTFdfRVhDTFVTSVZFKTsKKwkJeG1pbl9ob3Jpem9uID0gR2V0T2xk ZXN0U2FmZURlY29kaW5nVHJhbnNhY3Rpb25JZCh0cnVlKTsKKwkJU3BpbkxvY2tBY3F1aXJlKCZz bG90LT5tdXRleCk7CisJCXNsb3QtPmRhdGEuY2F0YWxvZ194bWluID0geG1pbl9ob3Jpem9uOwor CQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKwkJUmVwbGljYXRpb25TbG90c0NvbXB1 dGVSZXF1aXJlZFhtaW4odHJ1ZSk7CisJCUxXTG9ja1JlbGVhc2UoUHJvY0FycmF5TG9jayk7CisK KwkJKHZvaWQpIHVwZGF0ZV9hbmRfcGVyc2lzdF9zbG90KHJlbW90ZV9zbG90KTsKKwkJc2xvdF91 cGRhdGVkID0gdHJ1ZTsKKwl9CisKKwlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisKKwlyZXR1 cm4gc2xvdF91cGRhdGVkOworfQorCisvKgorICogTWFwcyB0aGUgcGdfcmVwbGljYXRpb25fc2xv dHMuY29uZmxpY3RfcmVhc29uIHRleHQgdmFsdWUgdG8KKyAqIFJlcGxpY2F0aW9uU2xvdEludmFs aWRhdGlvbkNhdXNlIGVudW0gdmFsdWUKKyAqLworc3RhdGljIFJlcGxpY2F0aW9uU2xvdEludmFs aWRhdGlvbkNhdXNlCitnZXRfc2xvdF9pbnZhbGlkYXRpb25fY2F1c2UoY2hhciAqY29uZmxpY3Rf cmVhc29uKQoreworCUFzc2VydChjb25mbGljdF9yZWFzb24pOworCisJaWYgKHN0cmNtcChjb25m bGljdF9yZWFzb24sIFNMT1RfSU5WQUxfV0FMX1JFTU9WRURfVEVYVCkgPT0gMCkKKwkJcmV0dXJu IFJTX0lOVkFMX1dBTF9SRU1PVkVEOworCWVsc2UgaWYgKHN0cmNtcChjb25mbGljdF9yZWFzb24s IFNMT1RfSU5WQUxfSE9SSVpPTl9URVhUKSA9PSAwKQorCQlyZXR1cm4gUlNfSU5WQUxfSE9SSVpP TjsKKwllbHNlIGlmIChzdHJjbXAoY29uZmxpY3RfcmVhc29uLCBTTE9UX0lOVkFMX1dBTF9MRVZF TF9URVhUKSA9PSAwKQorCQlyZXR1cm4gUlNfSU5WQUxfV0FMX0xFVkVMOworCWVsc2UKKwkJQXNz ZXJ0KDApOworCisJLyogS2VlcCBjb21waWxlciBxdWlldCAqLworCXJldHVybiBSU19JTlZBTF9O T05FOworfQorCisvKgorICogU3luY2hyb25pemUgc2xvdHMuCisgKgorICogR2V0cyB0aGUgZmFp bG92ZXIgbG9naWNhbCBzbG90cyBpbmZvIGZyb20gdGhlIHByaW1hcnkgc2VydmVyIGFuZCB1cGRh dGVzCisgKiB0aGUgc2xvdHMgbG9jYWxseS4gQ3JlYXRlcyB0aGUgc2xvdHMgaWYgbm90IHByZXNl bnQgb24gdGhlIHN0YW5kYnkuCisgKgorICogUmV0dXJucyBUUlVFIGlmIGFueSBvZiB0aGUgc2xv dHMgZ2V0cyB1cGRhdGVkIGluIHRoaXMgc3luYy1jeWNsZS4KKyAqLworc3RhdGljIGJvb2wKK3N5 bmNocm9uaXplX3Nsb3RzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQoreworI2RlZmluZSBTTE9U U1lOQ19DT0xVTU5fQ09VTlQgOQorCU9pZAkJCXNsb3RSb3dbU0xPVFNZTkNfQ09MVU1OX0NPVU5U XSA9IHtURVhUT0lELCBURVhUT0lELCBMU05PSUQsCisJTFNOT0lELCBYSURPSUQsIEJPT0xPSUQs IEJPT0xPSUQsIFRFWFRPSUQsIFRFWFRPSUR9OworCisJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOwor CVR1cGxlVGFibGVTbG90ICp0dXBzbG90OworCVN0cmluZ0luZm9EYXRhIHM7CisJTGlzdAkgICAq cmVtb3RlX3Nsb3RfbGlzdCA9IE5JTDsKKwlib29sCQlzb21lX3Nsb3RfdXBkYXRlZCA9IGZhbHNl OworCVhMb2dSZWNQdHIJbGF0ZXN0V2FsRW5kOworCisJLyoKKwkgKiBUaGUgcHJpbWFyeV9zbG90 X25hbWUgaXMgbm90IHNldCB5ZXQgb3IgV0FMcyBub3QgcmVjZWl2ZWQgeWV0LgorCSAqIFN5bmNo cm9uaXphdGlvbiBpcyBub3QgcG9zc2libGUgaWYgdGhlIHdhbHJlY2VpdmVyIGlzIG5vdCBzdGFy dGVkLgorCSAqLworCWxhdGVzdFdhbEVuZCA9IEdldFdhbFJjdkxhdGVzdFdhbEVuZCgpOworCVNw aW5Mb2NrQWNxdWlyZSgmV2FsUmN2LT5tdXRleCk7CisJaWYgKChXYWxSY3YtPnNsb3RuYW1lWzBd ID09ICdcMCcpIHx8CisJCVhMb2dSZWNQdHJJc0ludmFsaWQobGF0ZXN0V2FsRW5kKSkKKwl7CisJ CVNwaW5Mb2NrUmVsZWFzZSgmV2FsUmN2LT5tdXRleCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisJ U3BpbkxvY2tSZWxlYXNlKCZXYWxSY3YtPm11dGV4KTsKKworCS8qIFRoZSBzeXNjYWNoZSBhY2Nl c3MgaW4gd2FscmN2X2V4ZWMoKSBuZWVkcyBhIHRyYW5zYWN0aW9uIGVudi4gKi8KKwlTdGFydFRy YW5zYWN0aW9uQ29tbWFuZCgpOworCisJaW5pdFN0cmluZ0luZm8oJnMpOworCisJLyogQ29uc3Ry dWN0IHF1ZXJ5IHRvIGZldGNoIHNsb3RzIHdpdGggZmFpbG92ZXIgZW5hYmxlZC4gKi8KKwlhcHBl bmRTdHJpbmdJbmZvKCZzLAorCQkJCQkgIlNFTEVDVCBzbG90X25hbWUsIHBsdWdpbiwgY29uZmly bWVkX2ZsdXNoX2xzbiwiCisJCQkJCSAiIHJlc3RhcnRfbHNuLCBjYXRhbG9nX3htaW4sIHR3b19w aGFzZSwgZmFpbG92ZXIsIgorCQkJCQkgIiBkYXRhYmFzZSwgY29uZmxpY3RfcmVhc29uIgorCQkJ CQkgIiBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMiCisJCQkJCSAiIFdIRVJF IGZhaWxvdmVyIGFuZCBOT1QgdGVtcG9yYXJ5Iik7CisKKwkvKiBFeGVjdXRlIHRoZSBxdWVyeSAq LworCXJlcyA9IHdhbHJjdl9leGVjKHdyY29ubiwgcy5kYXRhLCBTTE9UU1lOQ19DT0xVTU5fQ09V TlQsIHNsb3RSb3cpOworCXBmcmVlKHMuZGF0YSk7CisKKwlpZiAocmVzLT5zdGF0dXMgIT0gV0FM UkNWX09LX1RVUExFUykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJtc2coImNvdWxkIG5vdCBm ZXRjaCBmYWlsb3ZlciBsb2dpY2FsIHNsb3RzIGluZm8iCisJCQkJCSAgICIgZnJvbSB0aGUgcHJp bWFyeSBzZXJ2ZXI6ICVzIiwgcmVzLT5lcnIpKTsKKworCS8qIENvbnN0cnVjdCB0aGUgcmVtb3Rl X3Nsb3QgdHVwbGUgYW5kIHN5bmNocm9uaXplIGVhY2ggc2xvdCBsb2NhbGx5ICovCisJdHVwc2xv dCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChyZXMtPnR1cGxlZGVzYywgJlRUU09wc01pbmlt YWxUdXBsZSk7CisJd2hpbGUgKHR1cGxlc3RvcmVfZ2V0dHVwbGVzbG90KHJlcy0+dHVwbGVzdG9y ZSwgdHJ1ZSwgZmFsc2UsIHR1cHNsb3QpKQorCXsKKwkJYm9vbAkJaXNudWxsOworCQlSZW1vdGVT bG90ICpyZW1vdGVfc2xvdCA9IHBhbGxvYzAoc2l6ZW9mKFJlbW90ZVNsb3QpKTsKKwkJRGF0dW0J CWQ7CisKKwkJcmVtb3RlX3Nsb3QtPm5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKHNsb3RfZ2V0 YXR0cih0dXBzbG90LCAxLCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlyZW1v dGVfc2xvdC0+cGx1Z2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xv dCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJLyoKKwkJICogSXQgaXMg cG9zc2libGUgdG8gZ2V0IG51bGwgdmFsdWVzIGZvciBMU04gYW5kIFhtaW4gaWYgc2xvdCBpcwor CQkgKiBpbnZhbGlkYXRlZCBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIHNvIGhhbmRsZSBhY2NvcmRp bmdseS4KKwkJICovCisJCWQgPSBzbG90X2dldGF0dHIodHVwc2xvdCwgMywgJmlzbnVsbCk7CisJ CXJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNuID0gaXNudWxsID8gSW52YWxpZFhMb2dSZWNQdHIg OgorCQkJRGF0dW1HZXRMU04oZCk7CisKKwkJZCA9IHNsb3RfZ2V0YXR0cih0dXBzbG90LCA0LCAm aXNudWxsKTsKKwkJcmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuID0gaXNudWxsID8gSW52YWxpZFhM b2dSZWNQdHIgOiBEYXR1bUdldExTTihkKTsKKworCQlkID0gc2xvdF9nZXRhdHRyKHR1cHNsb3Qs IDUsICZpc251bGwpOworCQlyZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluID0gaXNudWxsID8gSW52 YWxpZFRyYW5zYWN0aW9uSWQgOgorCQkJRGF0dW1HZXRMU04oZCk7CisKKwkJcmVtb3RlX3Nsb3Qt PnR3b19waGFzZSA9IERhdHVtR2V0Qm9vbChzbG90X2dldGF0dHIodHVwc2xvdCwgNiwgJmlzbnVs bCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJcmVtb3RlX3Nsb3QtPmZhaWxvdmVyID0gRGF0 dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCA3LCAmaXNudWxsKSk7CisJCUFzc2VydCgh aXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+ZGF0YWJhc2UgPSBUZXh0RGF0dW1HZXRDU3RyaW5n KHNsb3RfZ2V0YXR0cih0dXBzbG90LAorCQkJCQkJCQkJCQkJCQkJCSA4LCAmaXNudWxsKSk7CisJ CUFzc2VydCghaXNudWxsKTsKKworCQlkID0gc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDksICZpc251 bGwpOworCQlyZW1vdGVfc2xvdC0+aW52YWxpZGF0ZWQgPSBpc251bGwgPyBSU19JTlZBTF9OT05F IDoKKwkJCWdldF9zbG90X2ludmFsaWRhdGlvbl9jYXVzZShUZXh0RGF0dW1HZXRDU3RyaW5nKGQp KTsKKworCQkvKiBDcmVhdGUgbGlzdCBvZiByZW1vdGUgc2xvdHMgKi8KKwkJcmVtb3RlX3Nsb3Rf bGlzdCA9IGxhcHBlbmQocmVtb3RlX3Nsb3RfbGlzdCwgcmVtb3RlX3Nsb3QpOworCisJCUV4ZWND bGVhclR1cGxlKHR1cHNsb3QpOworCX0KKworCS8qIERyb3AgbG9jYWwgc2xvdHMgdGhhdCBubyBs b25nZXIgbmVlZCB0byBiZSBzeW5jZWQuICovCisJZHJvcF9vYnNvbGV0ZV9zbG90cyhyZW1vdGVf c2xvdF9saXN0KTsKKworCS8qIE5vdyBzeW5jIHRoZSBzbG90cyBsb2NhbGx5ICovCisJZm9yZWFj aF9wdHIoUmVtb3RlU2xvdCwgcmVtb3RlX3Nsb3QsIHJlbW90ZV9zbG90X2xpc3QpCisJCXNvbWVf c2xvdF91cGRhdGVkIHw9IHN5bmNocm9uaXplX29uZV9zbG90KHdyY29ubiwgcmVtb3RlX3Nsb3Qp OworCisJLyogV2UgYXJlIGRvbmUsIGZyZWUgcmVtb3RlX3Nsb3RfbGlzdCBlbGVtZW50cyAqLwor CWxpc3RfZnJlZV9kZWVwKHJlbW90ZV9zbG90X2xpc3QpOworCisJd2FscmN2X2NsZWFyX3Jlc3Vs dChyZXMpOworCisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwlyZXR1cm4gc29tZV9z bG90X3VwZGF0ZWQ7Cit9CisKKy8qCisgKiBDaGVja3MgdGhlIHByaW1hcnkgc2VydmVyIGluZm8u CisgKgorICogVXNpbmcgdGhlIHNwZWNpZmllZCBwcmltYXJ5IHNlcnZlciBjb25uZWN0aW9uLCBj aGVjayB3aGV0aGVyIHdlIGFyZSBhCisgKiBjYXNjYWRpbmcgc3RhbmRieS4gSXQgYWxzbyB2YWxp ZGF0ZXMgcHJpbWFyeV9zbG90X25hbWUgZm9yIG5vbi1jYXNjYWRpbmcKKyAqIHN0YW5kYnlzLgor ICovCitzdGF0aWMgdm9pZAorY2hlY2tfcHJpbWFyeV9pbmZvKFdhbFJlY2VpdmVyQ29ubiAqd3Jj b25uLCBib29sICphbV9jYXNjYWRpbmdfc3RhbmRieSkKK3sKKyNkZWZpbmUgUFJJTUFSWV9JTkZP X09VVFBVVF9DT0xfQ09VTlQgMgorCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKKwlPaWQJCQlzbG90 Um93W1BSSU1BUllfSU5GT19PVVRQVVRfQ09MX0NPVU5UXSA9IHtCT09MT0lELCBCT09MT0lEfTsK KwlTdHJpbmdJbmZvRGF0YSBjbWQ7CisJYm9vbAkJaXNudWxsOworCVR1cGxlVGFibGVTbG90ICp0 dXBzbG90OworCWJvb2wJCXZhbGlkOworCWJvb2wJCXJlbW90ZV9pbl9yZWNvdmVyeTsKKworCS8q IFRoZSBzeXNjYWNoZSBhY2Nlc3MgaW4gd2FscmN2X2V4ZWMoKSBuZWVkcyBhIHRyYW5zYWN0aW9u IGVudi4gKi8KKwlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCisJQXNzZXJ0KGFtX2Nhc2Nh ZGluZ19zdGFuZGJ5ICE9IE5VTEwpOworCisJKmFtX2Nhc2NhZGluZ19zdGFuZGJ5ID0gZmFsc2U7 CS8qIG92ZXJ3cml0dGVuIGxhdGVyIGlmIGNhc2NhZGluZyAqLworCisJaW5pdFN0cmluZ0luZm8o JmNtZCk7CisJYXBwZW5kU3RyaW5nSW5mbygmY21kLAorCQkJCQkgIlNFTEVDVCBwZ19pc19pbl9y ZWNvdmVyeSgpLCBjb3VudCgqKSA9IDEiCisJCQkJCSAiIEZST00gcGdfcmVwbGljYXRpb25fc2xv dHMiCisJCQkJCSAiIFdIRVJFIHNsb3RfdHlwZT0ncGh5c2ljYWwnIEFORCBzbG90X25hbWU9JXMi LAorCQkJCQkgcXVvdGVfbGl0ZXJhbF9jc3RyKFByaW1hcnlTbG90TmFtZSkpOworCisJcmVzID0g d2FscmN2X2V4ZWMod3Jjb25uLCBjbWQuZGF0YSwgUFJJTUFSWV9JTkZPX09VVFBVVF9DT0xfQ09V TlQsIHNsb3RSb3cpOworCXBmcmVlKGNtZC5kYXRhKTsKKworCWlmIChyZXMtPnN0YXR1cyAhPSBX QUxSQ1ZfT0tfVFVQTEVTKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycm1zZygiY291bGQgbm90 IGZldGNoIHByaW1hcnlfc2xvdF9uYW1lIFwiJXNcIiBpbmZvIGZyb20gdGhlIgorCQkJCQkgICAi IHByaW1hcnkgc2VydmVyOiAlcyIsIFByaW1hcnlTbG90TmFtZSwgcmVzLT5lcnIpKTsKKworCXR1 cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNN aW5pbWFsVHVwbGUpOworCSh2b2lkKSB0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxl c3RvcmUsIHRydWUsIGZhbHNlLCB0dXBzbG90KTsKKworCS8qIEl0IG11c3QgcmV0dXJuIG9uZSB0 dXBsZSAqLworCUFzc2VydCh0dXBsZXN0b3JlX3R1cGxlX2NvdW50KHJlcy0+dHVwbGVzdG9yZSkg PT0gMSk7CisKKwlyZW1vdGVfaW5fcmVjb3ZlcnkgPSBEYXR1bUdldEJvb2woc2xvdF9nZXRhdHRy KHR1cHNsb3QsIDEsICZpc251bGwpKTsKKwlBc3NlcnQoIWlzbnVsbCk7CisKKwlpZiAocmVtb3Rl X2luX3JlY292ZXJ5KQorCXsKKwkJLyogTm8gbmVlZCB0byBjaGVjayBmdXJ0aGVyLCBqdXN0IHNl dCBhbV9jYXNjYWRpbmdfc3RhbmRieSB0byB0cnVlICovCisJCSphbV9jYXNjYWRpbmdfc3RhbmRi eSA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCS8qIFdlIGFyZSBhIG5vcm1hbCBzdGFuZGJ5ICov CisJCXZhbGlkID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAyLCAmaXNudWxs KSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlpZiAoIXZhbGlkKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJ ZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25m aWd1cmF0aW9uIiksCisJCQkvKiB0cmFuc2xhdG9yOiBzZWNvbmQgJXMgaXMgYSBHVUMgdmFyaWFi bGUgbmFtZSAqLworCQkJCQllcnJkZXRhaWwoIlRoZSBwcmltYXJ5IHNlcnZlciBzbG90IFwiJXNc IiBzcGVjaWZpZWQgYnkgJXMgaXMgbm90IHZhbGlkLiIsCisJCQkJCQkJICBQcmltYXJ5U2xvdE5h bWUsICJwcmltYXJ5X3Nsb3RfbmFtZSIpKTsKKwl9CisKKwlFeGVjQ2xlYXJUdXBsZSh0dXBzbG90 KTsKKwl3YWxyY3ZfY2xlYXJfcmVzdWx0KHJlcyk7CisJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5k KCk7Cit9CisKKy8qCisgKiBDaGVjayB0aGF0IGFsbCBuZWNlc3NhcnkgR1VDcyBmb3Igc2xvdCBz eW5jaHJvbml6YXRpb24gYXJlIHNldAorICogYXBwcm9wcmlhdGVseS4gSWYgbm90LCByYWlzZSBh biBFUlJPUi4KKyAqCisgKiBJZiBhbGwgY2hlY2tzIHBhc3MsIGV4dHJhY3RzIHRoZSBkYm5hbWUg ZnJvbSB0aGUgcHJpbWFyeV9jb25uaW5mbyBHVUMgYW5kCisgKiByZXR1cm5zIGl0LgorICovCitz dGF0aWMgY2hhciAqCit2YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9nZXRfZGJuYW1lKHZvaWQpCit7 CisJY2hhcgkgICAqZGJuYW1lOworCisJLyogU2FuaXR5IGNoZWNrLiAqLworCUFzc2VydChlbmFi bGVfc3luY3Nsb3QpOworCisJLyoKKwkgKiBBIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QocHJp bWFyeV9zbG90X25hbWUpIGlzIHJlcXVpcmVkIG9uIHRoZQorCSAqIHByaW1hcnkgdG8gZW5zdXJl IHRoYXQgdGhlIHJvd3MgbmVlZGVkIGJ5IHRoZSBzdGFuZGJ5IGFyZSBub3QgcmVtb3ZlZAorCSAq IGFmdGVyIHJlc3RhcnRpbmcsIHNvIHRoYXQgdGhlIHN5bmNocm9uaXplZCBzbG90IG9uIHRoZSBz dGFuZGJ5IHdpbGwgbm90CisJICogYmUgaW52YWxpZGF0ZWQuCisJICovCisJaWYgKFByaW1hcnlT bG90TmFtZSA9PSBOVUxMIHx8IHN0cmNtcChQcmltYXJ5U2xvdE5hbWUsICIiKSA9PSAwKQorCQll cmVwb3J0KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1l ICovCisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRv IGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiJXMgbXVzdCBiZSBkZWZpbmVkLiIs ICJwcmltYXJ5X3Nsb3RfbmFtZSIpKTsKKworCS8qCisJICogaG90X3N0YW5kYnlfZmVlZGJhY2sg bXVzdCBiZSBlbmFibGVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBwaHlzaWNhbAorCSAqIHJlcGxp Y2F0aW9uIHNsb3QsIHdoaWNoIGFsbG93cyBpbmZvcm1pbmcgdGhlIHByaW1hcnkgYWJvdXQgdGhl IHhtaW4gYW5kCisJICogY2F0YWxvZ194bWluIHZhbHVlcyBvbiB0aGUgc3RhbmRieS4KKwkgKi8K KwlpZiAoIWhvdF9zdGFuZGJ5X2ZlZWRiYWNrKQorCQllcmVwb3J0KEVSUk9SLAorCQkvKiB0cmFu c2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJCQkJZXJybXNnKCJleGl0aW5n IGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJ CQkJZXJyaGludCgiJXMgbXVzdCBiZSBlbmFibGVkLiIsICJob3Rfc3RhbmRieV9mZWVkYmFjayIp KTsKKworCS8qCisJICogTG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyB3YWxfbGV2ZWwgPj0gbG9n aWNhbCBhbmQgd2UgY3VycmVudGx5IG9ubHkKKwkgKiBzeW5jaHJvbml6ZSBsb2dpY2FsIHNsb3Rz LgorCSAqLworCWlmICh3YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJ CWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29u ZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIndhbF9sZXZlbCBtdXN0IGJlID49IGxvZ2ljYWwu IikpOworCisJLyoKKwkgKiBUaGUgcHJpbWFyeV9jb25uaW5mbyBpcyByZXF1aXJlZCB0byBtYWtl IGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKKwkgKiBnZXR0aW5nIHNsb3RzIGluZm9ybWF0aW9u LgorCSAqLworCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8fCBzdHJjbXAoUHJpbWFyeUNv bm5JbmZvLCAiIikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMg aXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qg c3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQo IiVzIG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKworCS8qCisJICog VGhlIHNsb3Qgc3luYyB3b3JrZXIgbmVlZHMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGZvciB3YWxy Y3ZfZXhlYyB0bworCSAqIHdvcmsuCisJICovCisJZGJuYW1lID0gd2FscmN2X2dldF9kYm5hbWVf ZnJvbV9jb25uaW5mbyhQcmltYXJ5Q29ubkluZm8pOworCWlmIChkYm5hbWUgPT0gTlVMTCkKKwkJ ZXJlcG9ydChFUlJPUiwKKworCQkvKgorCQkgKiB0cmFuc2xhdG9yOiAnZGJuYW1lJyBpcyBhIHNw ZWNpZmljIG9wdGlvbjsgJXMgaXMgYSBHVUMgdmFyaWFibGUKKwkJICogbmFtZQorCQkgKi8KKwkJ CQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNv bmZpZ3VyYXRpb24iKSwKKwkJCQllcnJoaW50KCInZGJuYW1lJyBtdXN0IGJlIHNwZWNpZmllZCBp biAlcy4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKworCXJldHVybiBkYm5hbWU7Cit9CisKKy8q CisgKiBSZS1yZWFkIHRoZSBjb25maWcgZmlsZS4KKyAqCisgKiBJZiBhbnkgb2YgdGhlIHNsb3Qg c3luYyBHVUNzIGhhdmUgY2hhbmdlZCwgZXhpdCB0aGUgd29ya2VyIGFuZAorICogbGV0IGl0IGdl dCByZXN0YXJ0ZWQgYnkgdGhlIHBvc3RtYXN0ZXIuCisgKi8KK3N0YXRpYyB2b2lkCitzbG90c3lu Y19yZXJlYWRfY29uZmlnKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQoreworCWNoYXIJICAgKm9s ZF9wcmltYXJ5X2Nvbm5pbmZvID0gcHN0cmR1cChQcmltYXJ5Q29ubkluZm8pOworCWNoYXIJICAg Km9sZF9wcmltYXJ5X3Nsb3RuYW1lID0gcHN0cmR1cChQcmltYXJ5U2xvdE5hbWUpOworCWJvb2wJ CW9sZF9ob3Rfc3RhbmRieV9mZWVkYmFjayA9IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrOworCWJvb2wJ CWNvbm5pbmZvX2NoYW5nZWQ7CisJYm9vbAkJcHJpbWFyeV9zbG90bmFtZV9jaGFuZ2VkOworCisJ Q29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOworCVByb2Nlc3NDb25maWdGaWxlKFBHQ19TSUdI VVApOworCisJY29ubmluZm9fY2hhbmdlZCA9IHN0cmNtcChvbGRfcHJpbWFyeV9jb25uaW5mbywg UHJpbWFyeUNvbm5JbmZvKSAhPSAwOworCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZCA9IHN0cmNt cChvbGRfcHJpbWFyeV9zbG90bmFtZSwgUHJpbWFyeVNsb3ROYW1lKSAhPSAwOworCisJaWYgKGNv bm5pbmZvX2NoYW5nZWQgfHwKKwkJcHJpbWFyeV9zbG90bmFtZV9jaGFuZ2VkIHx8CisJCShvbGRf aG90X3N0YW5kYnlfZmVlZGJhY2sgIT0gaG90X3N0YW5kYnlfZmVlZGJhY2spKQorCXsKKwkJZXJl cG9ydChMT0csCisJCQkJZXJybXNnKCJzbG90IHN5bmMgd29ya2VyIHdpbGwgcmVzdGFydCBiZWNh dXNlIG9mIgorCQkJCQkgICAiIGEgcGFyYW1ldGVyIGNoYW5nZSIpKTsKKwkJLyogVGhlIGV4aXQg Y29kZSAxIHdpbGwgbWFrZSBwb3N0bWFzdGVyIHJlc3RhcnQgdGhpcyB3b3JrZXIgKi8KKwkJcHJv Y19leGl0KDEpOworCX0KKworCXBmcmVlKG9sZF9wcmltYXJ5X2Nvbm5pbmZvKTsKKwlwZnJlZShv bGRfcHJpbWFyeV9zbG90bmFtZSk7Cit9CisKKy8qCisgKiBJbnRlcnJ1cHQgaGFuZGxlciBmb3Ig bWFpbiBsb29wIG9mIHNsb3Qgc3luYyB3b3JrZXIuCisgKi8KK3N0YXRpYyB2b2lkCitQcm9jZXNz U2xvdFN5bmNJbnRlcnJ1cHRzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQoreworCUNIRUNLX0ZP Ul9JTlRFUlJVUFRTKCk7CisKKwlpZiAoU2h1dGRvd25SZXF1ZXN0UGVuZGluZykKKwl7CisJCXdh bHJjdl9kaXNjb25uZWN0KHdyY29ubik7CisJCWVyZXBvcnQoTE9HLAorCQkJCWVycm1zZygicmVw bGljYXRpb24gc2xvdCBzeW5jIHdvcmtlciBpcyBzaHV0dGluZyBkb3duIgorCQkJCQkgICAiIG9u IHJlY2VpdmluZyBTSUdJTlQiKSk7CisJCXByb2NfZXhpdCgwKTsKKwl9CisKKwlpZiAoQ29uZmln UmVsb2FkUGVuZGluZykKKwkJc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh3cmNvbm4pOworfQorCisv KgorICogQ2xlYW51cCBmdW5jdGlvbiBmb3IgbG9naWNhbCByZXBsaWNhdGlvbiBsYXVuY2hlci4K KyAqCisgKiBDYWxsZWQgb24gbG9naWNhbCByZXBsaWNhdGlvbiBsYXVuY2hlciBleGl0LgorICov CitzdGF0aWMgdm9pZAorc2xvdHN5bmNfd29ya2VyX29uZXhpdChpbnQgY29kZSwgRGF0dW0gYXJn KQoreworCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwlTbG90U3lu Y1dvcmtlci0+cGlkID0gSW52YWxpZFBpZDsKKwlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jV29y a2VyLT5tdXRleCk7Cit9CisKKy8qCisgKiBTbGVlcCBmb3IgbG9uZyBlbm91Z2ggdGhhdCB3ZSBi ZWxpZXZlIGl0J3MgbGlrZWx5IHRoYXQgdGhlIHNsb3RzIG9uIHByaW1hcnkKKyAqIGdldCB1cGRh dGVkLgorICoKKyAqIElmIHRoZXJlIGlzIG5vIHNsb3QgYWN0aXZpdHkgdGhlIHdhaXQgdGltZSBi ZXR3ZWVuIHN5bmMtY3ljbGVzIHdpbGwgZG91YmxlCisgKiAodG8gYSBtYXhpbXVtIG9mIDMwcyku IElmIHRoZXJlIGlzIHNvbWUgc2xvdCBhY3Rpdml0eSB0aGUgd2FpdCB0aW1lIGJldHdlZW4KKyAq IHN5bmMtY3ljbGVzIGlzIHJlc2V0IHRvIHRoZSBtaW5pbXVtICgyMDBtcykuCisgKi8KK3N0YXRp YyB2b2lkCit3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJv b2wgYW1fY2FzY2FkaW5nX3N0YW5kYnkpCit7CisjZGVmaW5lIE1JTl9XT1JLRVJfTkFQVElNRV9N UyAgMjAwCisjZGVmaW5lIE1BWF9XT1JLRVJfTkFQVElNRV9NUyAgMzAwMDAJLyogMzBzICovCisK KwlpbnQJCQlyYzsKKworCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwl7CisJCS8qCisJCSAq IFNsb3Qgc3luY2hyb25pemF0aW9uIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIG9uIGNhc2Nh ZGluZworCQkgKiBzdGFuZGJ5LiBTbyBpZiB3ZSBhcmUgb24gdGhlIGNhc2NhZGluZyBzdGFuZGJ5 LCB3ZSB3aWxsIHNraXAgdGhlCisJCSAqIHN5bmMgYW5kIHRha2UgYSBsb25nZXIgbmFwIGJlZm9y ZSB3ZSBjaGVjayBhZ2FpbiB3aGV0aGVyIHdlIGFyZQorCQkgKiBzdGlsbCBjYXNjYWRpbmcgc3Rh bmRieSBvciBub3QuCisJCSAqLworCQlzbGVlcF9tcyA9IE1BWF9XT1JLRVJfTkFQVElNRV9NUzsK Kwl9CisJZWxzZSBpZiAoIXNvbWVfc2xvdF91cGRhdGVkKQorCXsKKwkJLyoKKwkJICogTm8gc2xv dHMgd2VyZSB1cGRhdGVkLCBzbyBkb3VibGUgdGhlIHNsZWVwIHRpbWUsIGJ1dCBub3QgYmV5b25k IHRoZQorCQkgKiBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZS4KKwkJICovCisJCXNsZWVwX21zID0g TWluKHNsZWVwX21zICogMiwgTUFYX1dPUktFUl9OQVBUSU1FX01TKTsKKwl9CisJZWxzZQorCXsK KwkJLyoKKwkJICogU29tZSBzbG90cyB3ZXJlIHVwZGF0ZWQgc2luY2UgdGhlIGxhc3Qgc2xlZXAs IHNvIHJlc2V0IHRoZSBzbGVlcAorCQkgKiB0aW1lLgorCQkgKi8KKwkJc2xlZXBfbXMgPSBNSU5f V09SS0VSX05BUFRJTUVfTVM7CisJfQorCisJcmMgPSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkg ICBXTF9MQVRDSF9TRVQgfCBXTF9USU1FT1VUIHwgV0xfRVhJVF9PTl9QTV9ERUFUSCwKKwkJCQkg ICBzbGVlcF9tcywKKwkJCQkgICBXQUlUX0VWRU5UX1JFUExfU0xPVFNZTkNfTUFJTik7CisKKwlp ZiAocmMgJiBXTF9MQVRDSF9TRVQpCisJCVJlc2V0TGF0Y2goTXlMYXRjaCk7Cit9CisKKy8qCisg KiBUaGUgbWFpbiBsb29wIG9mIG91ciB3b3JrZXIgcHJvY2Vzcy4KKyAqCisgKiBJdCBjb25uZWN0 cyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIsIGZldGNoZXMgbG9naWNhbCBmYWlsb3ZlciBzbG90cwor ICogaW5mb3JtYXRpb24gcGVyaW9kaWNhbGx5IGluIG9yZGVyIHRvIGNyZWF0ZSBhbmQgc3luYyB0 aGUgc2xvdHMuCisgKi8KK3ZvaWQKK1JlcGxTbG90U3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9h cmcpCit7CisJV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4gPSBOVUxMOworCWNoYXIJICAgKmRibmFt ZTsKKwlib29sCQlhbV9jYXNjYWRpbmdfc3RhbmRieTsKKwljaGFyCSAgICplcnI7CisKKwllcmVw b3J0KExPRywgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7 CisKKwlvbl9zaG1lbV9leGl0KHNsb3RzeW5jX3dvcmtlcl9vbmV4aXQsIChEYXR1bSkgMCk7CisK KwlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisKKwlBc3NlcnQoU2xv dFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlkKTsKKworCS8qIEFkdmVydGlzZSBvdXIgUElE IHNvIHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBjYW4ga2lsbCB1cyBvbiBwcm9tb3Rpb24gKi8K KwlTbG90U3luY1dvcmtlci0+cGlkID0gTXlQcm9jUGlkOworCisJU3BpbkxvY2tSZWxlYXNlKCZT bG90U3luY1dvcmtlci0+bXV0ZXgpOworCisJLyogU2V0dXAgc2lnbmFsIGhhbmRsaW5nICovCisJ cHFzaWduYWwoU0lHSFVQLCBTaWduYWxIYW5kbGVyRm9yQ29uZmlnUmVsb2FkKTsKKwlwcXNpZ25h bChTSUdJTlQsIFNpZ25hbEhhbmRsZXJGb3JTaHV0ZG93blJlcXVlc3QpOworCXBxc2lnbmFsKFNJ R1RFUk0sIGRpZSk7CisJQmFja2dyb3VuZFdvcmtlclVuYmxvY2tTaWduYWxzKCk7CisKKwkvKiBM b2FkIHRoZSBsaWJwcS1zcGVjaWZpYyBmdW5jdGlvbnMgKi8KKwlsb2FkX2ZpbGUoImxpYnBxd2Fs cmVjZWl2ZXIiLCBmYWxzZSk7CisKKwlkYm5hbWUgPSB2YWxpZGF0ZV9wYXJhbWV0ZXJzX2FuZF9n ZXRfZGJuYW1lKCk7CisKKwkvKgorCSAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNwZWNpZmll ZCBieSB1c2VyIGluIHByaW1hcnlfY29ubmluZm8uIFdlIG5lZWQKKwkgKiBhIGRhdGFiYXNlIGNv bm5lY3Rpb24gZm9yIHdhbHJjdl9leGVjIHRvIHdvcmsuIFBsZWFzZSBzZWUgY29tbWVudHMgYXRv cAorCSAqIGxpYnBxcmN2X2V4ZWMuCisJICovCisJQmFja2dyb3VuZFdvcmtlckluaXRpYWxpemVD b25uZWN0aW9uKGRibmFtZSwgTlVMTCwgMCk7CisKKwkvKgorCSAqIEVzdGFibGlzaCB0aGUgY29u bmVjdGlvbiB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIgZm9yIHNsb3RzCisJICogc3luY2hyb25pemF0 aW9uLgorCSAqLworCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KFByaW1hcnlDb25uSW5mbywgdHJ1 ZSwgZmFsc2UsCisJCQkJCQkJY2x1c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9uYW1lIDogInNsb3Rz eW5jd29ya2VyIiwKKwkJCQkJCQkmZXJyKTsKKwlpZiAoIXdyY29ubikKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQllcnJjb2RlKEVSUkNPREVfQ09OTkVDVElPTl9GQUlMVVJFKSwKKwkJCQllcnJtc2co ImNvdWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwcmltYXJ5IHNlcnZlcjogJXMiLCBlcnIpKTsKKwor CS8qCisJICogVXNpbmcgdGhlIHNwZWNpZmllZCBwcmltYXJ5IHNlcnZlciBjb25uZWN0aW9uLCBj aGVjayB3aGV0aGVyIHdlIGFyZQorCSAqIGNhc2NhZGluZyBzdGFuZGJ5IGFuZCB2YWxpZGF0ZXMg cHJpbWFyeV9zbG90X25hbWUgZm9yCisJICogbm9uLWNhc2NhZGluZy1zdGFuZGJ5cy4KKwkgKi8K KwljaGVja19wcmltYXJ5X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCisJ LyogTWFpbiB3YWl0IGxvb3AgKi8KKwlmb3IgKDs7KQorCXsKKwkJYm9vbAkJc29tZV9zbG90X3Vw ZGF0ZWQgPSBmYWxzZTsKKworCQlQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHdyY29ubik7CisK KwkJaWYgKCFhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwkJCXNvbWVfc2xvdF91cGRhdGVkID0gc3lu Y2hyb25pemVfc2xvdHMod3Jjb25uKTsKKworCQl3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KHNvbWVf c2xvdF91cGRhdGVkLCBhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisKKwkJLyoKKwkJICogSWYgdGhl IHN0YW5kYnkgd2FzIHByb21vdGVkIHRoZW4gd2hhdCB3YXMgcHJldmlvdXNseSBhIGNhc2NhZGlu ZworCQkgKiBzdGFuZGJ5IG1pZ2h0IG5vIGxvbmdlciBiZSBvbmUsIHNvIHJlY2hlY2sgZWFjaCB0 aW1lLgorCQkgKi8KKwkJaWYgKGFtX2Nhc2NhZGluZ19zdGFuZGJ5KQorCQkJY2hlY2tfcHJpbWFy eV9pbmZvKHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwl9CisKKwkvKgorCSAqIFRo ZSBzbG90IHN5bmMgd29ya2VyIGNhbiBub3QgZ2V0IGhlcmUgYmVjYXVzZSBpdCB3aWxsIG9ubHkg c3RvcCB3aGVuIGl0CisJICogcmVjZWl2ZXMgYSBTSUdJTlQgZnJvbSB0aGUgbG9naWNhbCByZXBs aWNhdGlvbiBsYXVuY2hlciwgb3Igd2hlbiB0aGVyZQorCSAqIGlzIGFuIGVycm9yLgorCSAqLwor CUFzc2VydChmYWxzZSk7Cit9CisKKy8qCisgKiBJcyBjdXJyZW50IHByb2Nlc3MgdGhlIHNsb3Qg c3luYyB3b3JrZXI/CisgKi8KK2Jvb2wKK0lzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZvaWQpCit7 CisJcmV0dXJuIFNsb3RTeW5jV29ya2VyLT5waWQgPT0gTXlQcm9jUGlkOworfQorCisvKgorICog U2h1dCBkb3duIHRoZSBzbG90IHN5bmMgd29ya2VyLgorICovCit2b2lkCitTaHV0RG93blNsb3RT eW5jKHZvaWQpCit7CisJU3BpbkxvY2tBY3F1aXJlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOwor CWlmIChTbG90U3luY1dvcmtlci0+cGlkID09IEludmFsaWRQaWQpCisJeworCQlTcGluTG9ja1Jl bGVhc2UoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJCXJldHVybjsKKwl9CisKKwlraWxsKFNs b3RTeW5jV29ya2VyLT5waWQsIFNJR0lOVCk7CisKKwlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5j V29ya2VyLT5tdXRleCk7CisKKwkvKiBXYWl0IGZvciBpdCB0byBkaWUgKi8KKwlmb3IgKDs7KQor CXsKKwkJaW50CQkJcmM7CisKKwkJLyogV2FpdCBhIGJpdCwgd2UgZG9uJ3QgZXhwZWN0IHRvIGhh dmUgdG8gd2FpdCBsb25nICovCisJCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJCSAgIFdM X0xBVENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAorCQkJCQkgICAx MEwsIFdBSVRfRVZFTlRfQkdXT1JLRVJfU0hVVERPV04pOworCisJCWlmIChyYyAmIFdMX0xBVENI X1NFVCkKKwkJeworCQkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJV UFRTKCk7CisJCX0KKworCQlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7 CisKKwkJLyogSXMgaXQgZ29uZT8gKi8KKwkJaWYgKFNsb3RTeW5jV29ya2VyLT5waWQgPT0gSW52 YWxpZFBpZCkKKwkJCWJyZWFrOworCisJCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXIt Pm11dGV4KTsKKwl9CisKKwlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7 Cit9CisKKy8qCisgKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBzbG90IHN5bmMgd29ya2VyIHNo YXJlZCBtZW1vcnkKKyAqLwordm9pZAorU2xvdFN5bmNXb3JrZXJTaG1lbUluaXQodm9pZCkKK3sK KwlTaXplCQlzaXplOworCWJvb2wJCWZvdW5kOworCisJc2l6ZSA9IHNpemVvZihTbG90U3luY1dv cmtlckN0eFN0cnVjdCk7CisJc2l6ZSA9IE1BWEFMSUdOKHNpemUpOworCisJU2xvdFN5bmNXb3Jr ZXIgPSAoU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKikKKwkJU2htZW1Jbml0U3RydWN0KCJTbG90 IFN5bmMgV29ya2VyIERhdGEiLCBzaXplLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJ CW1lbXNldChTbG90U3luY1dvcmtlciwgMCwgc2l6ZSk7CisJCVNsb3RTeW5jV29ya2VyLT5waWQg PSBJbnZhbGlkUGlkOworCQlTcGluTG9ja0luaXQoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJ fQorfQorCisvKgorICogUmVnaXN0ZXIgdGhlIGJhY2tncm91bmQgd29ya2VyIGZvciBzbG90cyBz eW5jaHJvbml6YXRpb24gcHJvdmlkZWQKKyAqIGVuYWJsZV9zeW5jc2xvdCBpcyBPTi4KKyAqLwor dm9pZAorU2xvdFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKQoreworCUJhY2tncm91bmRXb3JrZXIg Ymd3OworCisJaWYgKCFlbmFibGVfc3luY3Nsb3QpCisJeworCQllcmVwb3J0KExPRywKKwkJCQll cnJtc2coInNraXBwaW5nIHNsb3Qgc3luY2hyb25pemF0aW9uIiksCisJCQkJZXJyZGV0YWlsKCJl bmFibGVfc3luY3Nsb3QgaXMgZGlzYWJsZWQuIikpOworCQlyZXR1cm47CisJfQorCisJbWVtc2V0 KCZiZ3csIDAsIHNpemVvZihiZ3cpKTsKKworCS8qIFdlIG5lZWQgZGF0YWJhc2UgY29ubmVjdGlv biB3aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBhcyB3ZWxsICovCisJYmd3LmJnd19m bGFncyA9IEJHV09SS0VSX1NITUVNX0FDQ0VTUyB8CisJCUJHV09SS0VSX0JBQ0tFTkRfREFUQUJB U0VfQ09OTkVDVElPTjsKKworCS8qIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50IHN0YXRl IGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qgc3RhbmRieSAqLworCWJndy5iZ3dfc3RhcnRfdGlt ZSA9IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk7CisKKwlzbnByaW50 ZihiZ3cuYmd3X2xpYnJhcnlfbmFtZSwgTUFYUEdQQVRILCAicG9zdGdyZXMiKTsKKwlzbnByaW50 ZihiZ3cuYmd3X2Z1bmN0aW9uX25hbWUsIEJHV19NQVhMRU4sICJSZXBsU2xvdFN5bmNXb3JrZXJN YWluIik7CisJc25wcmludGYoYmd3LmJnd19uYW1lLCBCR1dfTUFYTEVOLAorCQkJICJyZXBsaWNh dGlvbiBzbG90IHN5bmMgd29ya2VyIik7CisJc25wcmludGYoYmd3LmJnd190eXBlLCBCR1dfTUFY TEVOLAorCQkJICJzbG90IHN5bmMgd29ya2VyIik7CisKKwliZ3cuYmd3X3Jlc3RhcnRfdGltZSA9 IEJHV19ERUZBVUxUX1JFU1RBUlRfSU5URVJWQUw7CisJYmd3LmJnd19ub3RpZnlfcGlkID0gMDsK KwliZ3cuYmd3X21haW5fYXJnID0gKERhdHVtKSAwOworCisJUmVnaXN0ZXJCYWNrZ3JvdW5kV29y a2VyKCZiZ3cpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDY5NjM3NjQwMGUuLjIwOGNk OTNmNjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9zbG90LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9wcm9jLmgiCkBAIC0xMDMsNyArMTA0LDYgQEAgaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Nsb3Rz ID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBsaWNhdGlvbgogCQkJCQkJCQkJCSAq IHNsb3RzICovCiAKIHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdFNobWVtRXhpdChpbnQgY29k ZSwgRGF0dW0gYXJnKTsKLXN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh2 b2lkKTsKIHN0YXRpYyB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3BQdHIoUmVwbGljYXRpb25TbG90 ICpzbG90KTsKIAogLyogaW50ZXJuYWwgcGVyc2lzdGVuY3kgZnVuY3Rpb25zICovCkBAIC0yNTAs MTEgKzI1MCwxMiBAQCBSZXBsaWNhdGlvblNsb3RWYWxpZGF0ZU5hbWUoY29uc3QgY2hhciAqbmFt ZSwgaW50IGVsZXZlbCkKICAqICAgICB1c2VyIHdpbGwgb25seSBnZXQgY29tbWl0IHByZXBhcmVk LgogICogZmFpbG92ZXI6IElmIGVuYWJsZWQsIGFsbG93cyB0aGUgc2xvdCB0byBiZSBzeW5jZWQg dG8gcGh5c2ljYWwgc3RhbmRieXMgc28KICAqICAgICB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24g Y2FuIGJlIHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIuCisgKiBzeW5jZWQ6IFRydWUgaWYgdGhlIHNs b3QgaXMgY3JlYXRlZCBieSBhIHNsb3RzeW5jIHdvcmtlci4KICAqLwogdm9pZAogUmVwbGljYXRp b25TbG90Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCiAJCQkJCSAg UmVwbGljYXRpb25TbG90UGVyc2lzdGVuY3kgcGVyc2lzdGVuY3ksCi0JCQkJCSAgYm9vbCB0d29f cGhhc2UsIGJvb2wgZmFpbG92ZXIpCisJCQkJCSAgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92 ZXIsIGJvb2wgc3luY2VkKQogewogCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE5VTEw7CiAJaW50 CQkJaTsKQEAgLTMxNSw2ICszMTYsNyBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hh ciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAlzbG90LT5kYXRhLnR3b19waGFzZSA9IHR3b19w aGFzZTsKIAlzbG90LT5kYXRhLnR3b19waGFzZV9hdCA9IEludmFsaWRYTG9nUmVjUHRyOwogCXNs b3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKKwlzbG90LT5kYXRhLnN5bmNlZCA9IHN5bmNl ZDsKIAogCS8qIGFuZCB0aGVuIGRhdGEgb25seSBwcmVzZW50IGluIHNoYXJlZCBtZW1vcnkgKi8K IAlzbG90LT5qdXN0X2RpcnRpZWQgPSBmYWxzZTsKQEAgLTY4MCw2ICs2ODIsMTYgQEAgUmVwbGlj YXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCkKIAogCVJlcGxpY2F0 aW9uU2xvdEFjcXVpcmUobmFtZSwgbm93YWl0KTsKIAorCS8qCisJICogRG8gbm90IGFsbG93IHVz ZXJzIHRvIGRyb3AgdGhlIHNsb3RzIHdoaWNoIGFyZSBjdXJyZW50bHkgYmVpbmcgc3luY2VkCisJ ICogZnJvbSB0aGUgcHJpbWFyeSB0byB0aGUgc3RhbmRieS4KKwkgKi8KKwlpZiAoUmVjb3ZlcnlJ blByb2dyZXNzKCkgJiYgTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuc3luY2VkKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9T VEFURSksCisJCQkJZXJybXNnKCJjYW5ub3QgZHJvcCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIs IG5hbWUpLAorCQkJCWVycmRldGFpbCgiVGhpcyBzbG90IGlzIGJlaW5nIHN5bmNlZCBmcm9tIHRo ZSBwcmltYXJ5IHNlcnZlci4iKSk7CisKIAlSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQoKTsK IH0KIApAQCAtNjk5LDYgKzcxMSwxNiBAQCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBjaGFy ICpuYW1lLCBib29sIGZhaWxvdmVyKQogCQkJCWVycm1zZygiY2Fubm90IHVzZSAlcyB3aXRoIGEg cGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCiAJCQkJCSAgICJBTFRFUl9SRVBMSUNBVElPTl9T TE9UIikpOwogCisJLyoKKwkgKiBEbyBub3QgYWxsb3cgdXNlcnMgdG8gYWx0ZXIgdGhlIHNsb3Rz IHdoaWNoIGFyZSBjdXJyZW50bHkgYmVpbmcgc3luY2VkCisJICogZnJvbSB0aGUgcHJpbWFyeSB0 byB0aGUgc3RhbmRieS4KKwkgKi8KKwlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgTXlSZXBs aWNhdGlvblNsb3QtPmRhdGEuc3luY2VkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUo RVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJZXJybXNnKCJj YW5ub3QgYWx0ZXIgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLCBuYW1lKSwKKwkJCQllcnJkZXRh aWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIuIikp OworCiAJU3BpbkxvY2tBY3F1aXJlKCZNeVJlcGxpY2F0aW9uU2xvdC0+bXV0ZXgpOwogCU15UmVw bGljYXRpb25TbG90LT5kYXRhLmZhaWxvdmVyID0gZmFpbG92ZXI7CiAJU3BpbkxvY2tSZWxlYXNl KCZNeVJlcGxpY2F0aW9uU2xvdC0+bXV0ZXgpOwpAQCAtNzExLDcgKzczMyw3IEBAIFJlcGxpY2F0 aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92ZXIpCiAvKgogICogUGVy bWFuZW50bHkgZHJvcCB0aGUgY3VycmVudGx5IGFjcXVpcmVkIHJlcGxpY2F0aW9uIHNsb3QuCiAg Ki8KLXN0YXRpYyB2b2lkCit2b2lkCiBSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQodm9pZCkK IHsKIAlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdGZ1bmNzLmMKaW5kZXggYzkzZGJhODU1Yi4uODQzYWU4Y2Q2OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKQEAgLTQzLDcgKzQzLDcgQEAgY3JlYXRlX3BoeXNp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgYm9vbCBpbW1lZGlhdGVseV9yZXNlcnZl LAogCS8qIGFjcXVpcmUgcmVwbGljYXRpb24gc2xvdCwgdGhpcyB3aWxsIGNoZWNrIGZvciBjb25m bGljdGluZyBuYW1lcyAqLwogCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShuYW1lLCBmYWxzZSwKIAkJ CQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVSU0lTVEVOVCwgZmFsc2UsCi0J CQkJCQkgIGZhbHNlKTsKKwkJCQkJCSAgZmFsc2UsIGZhbHNlIC8qIHN5bmNlZCAqLyApOwogCiAJ aWYgKGltbWVkaWF0ZWx5X3Jlc2VydmUpCiAJewpAQCAtMTM2LDcgKzEzNiw3IEBAIGNyZWF0ZV9s b2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgY2hhciAqcGx1Z2luLAogCSAqLwog CVJlcGxpY2F0aW9uU2xvdENyZWF0ZShuYW1lLCB0cnVlLAogCQkJCQkJICB0ZW1wb3JhcnkgPyBS U19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsIHR3b19waGFzZSwKLQkJCQkJCSAgZmFpbG92ZXIp OworCQkJCQkJICBmYWlsb3ZlciwgZmFsc2UgLyogc3luY2VkICovICk7CiAKIAkvKgogCSAqIENy ZWF0ZSBsb2dpY2FsIGRlY29kaW5nIGNvbnRleHQgdG8gZmluZCBzdGFydCBwb2ludCBvciwgaWYg d2UgZG9uJ3QKQEAgLTIzNyw3ICsyMzcsNyBAQCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoUEdf RlVOQ1RJT05fQVJHUykKIERhdHVtCiBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJ T05fQVJHUykKIHsKLSNkZWZpbmUgUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTYKKyNk ZWZpbmUgUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTcKIAlSZXR1cm5TZXRJbmZvICpy c2luZm8gPSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CiAJWExvZ1JlY1B0 cgljdXJybHNuOwogCWludAkJCXNsb3RubzsKQEAgLTQxOCwyMSArNDE4LDIzIEBAIHBnX2dldF9y ZXBsaWNhdGlvbl9zbG90cyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQlicmVhazsKIAogCQkJCWNh c2UgUlNfSU5WQUxfV0FMX1JFTU9WRUQ6Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRl eHREYXR1bSgid2FsX3JlbW92ZWQiKTsKKwkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4 dERhdHVtKFNMT1RfSU5WQUxfV0FMX1JFTU9WRURfVEVYVCk7CiAJCQkJCWJyZWFrOwogCiAJCQkJ Y2FzZSBSU19JTlZBTF9IT1JJWk9OOgotCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRUZXh0 RGF0dW0oInJvd3NfcmVtb3ZlZCIpOworCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRUZXh0 RGF0dW0oU0xPVF9JTlZBTF9IT1JJWk9OX1RFWFQpOwogCQkJCQlicmVhazsKIAogCQkJCWNhc2Ug UlNfSU5WQUxfV0FMX0xFVkVMOgotCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oIndhbF9sZXZlbF9pbnN1ZmZpY2llbnQiKTsKKwkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5n R2V0VGV4dERhdHVtKFNMT1RfSU5WQUxfV0FMX0xFVkVMX1RFWFQpOwogCQkJCQlicmVhazsKIAkJ CX0KIAkJfQogCiAJCXZhbHVlc1tpKytdID0gQm9vbEdldERhdHVtKHNsb3RfY29udGVudHMuZGF0 YS5mYWlsb3Zlcik7CiAKKwkJdmFsdWVzW2krK10gPSBCb29sR2V0RGF0dW0oc2xvdF9jb250ZW50 cy5kYXRhLnN5bmNlZCk7CisKIAkJQXNzZXJ0KGkgPT0gUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RT X0NPTFMpOwogCiAJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2lu Zm8tPnNldERlc2MsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNl aXZlcmZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMK aW5kZXggNzNhN2Q4Zjk2Yy4uZDQyMGE4MzNjZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyZnVuY3MuYwpAQCAtMzQ1LDYgKzM0NSwyMiBAQCBHZXRXYWxSY3ZGbHVzaFJl Y1B0cihYTG9nUmVjUHRyICpsYXRlc3RDaHVua1N0YXJ0LCBUaW1lTGluZUlEICpyZWNlaXZlVExJ KQogCXJldHVybiByZWNwdHI7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRoZSBsYXRlc3QgcmVwb3J0 ZWQgZW5kIG9mIFdBTCBvbiB0aGUgc2VuZGVyCisgKi8KK1hMb2dSZWNQdHIKK0dldFdhbFJjdkxh dGVzdFdhbEVuZCgpCit7CisJV2FsUmN2RGF0YSAqd2FscmN2ID0gV2FsUmN2OworCVhMb2dSZWNQ dHIJcmVjcHRyOworCisJU3BpbkxvY2tBY3F1aXJlKCZ3YWxyY3YtPm11dGV4KTsKKwlyZWNwdHIg PSB3YWxyY3YtPmxhdGVzdFdhbEVuZDsKKwlTcGluTG9ja1JlbGVhc2UoJndhbHJjdi0+bXV0ZXgp OworCisJcmV0dXJuIHJlY3B0cjsKK30KKwogLyoKICAqIFJldHVybnMgdGhlIGxhc3QrMSBieXRl IHBvc2l0aW9uIHRoYXQgd2FscmVjZWl2ZXIgaGFzIHdyaXR0ZW4uCiAgKiBUaGlzIHJldHVybnMg YSByZWNlbnRseSB3cml0dGVuIHZhbHVlIHdpdGhvdXQgdGFraW5nIGEgbG9jay4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggNzdjOGJhYTMyYS4uYzgxYTdhODM0NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTEyMjQsNyArMTIyNCw3IEBAIENyZWF0ZVJl cGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAl7CiAJCVJlcGxp Y2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1lLCBmYWxzZSwKIAkJCQkJCQkgIGNtZC0+dGVt cG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVSU0lTVEVOVCwKLQkJCQkJCQkgIGZhbHNlLCBm YWxzZSk7CisJCQkJCQkJICBmYWxzZSwgZmFsc2UsIGZhbHNlIC8qIHN5bmNlZCAqLyApOwogCiAJ CWlmIChyZXNlcnZlX3dhbCkKIAkJewpAQCAtMTI1NSw3ICsxMjU1LDcgQEAgQ3JlYXRlUmVwbGlj YXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCQkgKi8KIAkJUmVwbGlj YXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIHRydWUsCiAJCQkJCQkJICBjbWQtPnRlbXBv cmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwKLQkJCQkJCQkgIHR3b19waGFzZSwg ZmFpbG92ZXIpOworCQkJCQkJCSAgdHdvX3BoYXNlLCBmYWlsb3ZlciwgZmFsc2UgLyogc3luY2Vk ICovICk7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9ucyBjaGVjayBlYXJseSBzbyB0aGF0IHdlIGNh biBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvaXBjaS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCmluZGV4IGU1MTE5 ZWQ1NWQuLjA0ZmVkMTAwN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lw Y2kuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKQEAgLTM4LDYgKzM4LDcg QEAKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24v d2FscmVjZWl2ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKKyNpbmNs dWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1 Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZHNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMu aCIKQEAgLTM0Miw2ICszNDMsNyBAQCBDcmVhdGVPckF0dGFjaFNobWVtU3RydWN0cyh2b2lkKQog CVdhbFN1bW1hcml6ZXJTaG1lbUluaXQoKTsKIAlQZ0FyY2hTaG1lbUluaXQoKTsKIAlBcHBseUxh dW5jaGVyU2htZW1Jbml0KCk7CisJU2xvdFN5bmNXb3JrZXJTaG1lbUluaXQoKTsKIAogCS8qCiAJ ICogU2V0IHVwIG90aGVyIG1vZHVsZXMgdGhhdCBuZWVkIHNvbWUgc2hhcmVkIG1lbW9yeSBzcGFj ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDFlYWFmM2M2YzUuLjE5YjA4YzFiNWYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3Rn cmVzLmMKQEAgLTMyODYsNiArMzI4NiwxNyBAQCBQcm9jZXNzSW50ZXJydXB0cyh2b2lkKQogCQkJ ICovCiAJCQlwcm9jX2V4aXQoMSk7CiAJCX0KKwkJZWxzZSBpZiAoSXNMb2dpY2FsU2xvdFN5bmNX b3JrZXIoKSkKKwkJeworCQkJZWxvZyhERUJVRzEsCisJCQkJICJyZXBsaWNhdGlvbiBzbG90IHN5 bmMgd29ya2VyIGlzIHNodXR0aW5nIGRvd24gZHVlIHRvIGFkbWluaXN0cmF0b3IgY29tbWFuZCIp OworCisJCQkvKgorCQkJICogU2xvdCBzeW5jIHdvcmtlciBjYW4gYmUgc3RvcHBlZCBhdCBhbnkg dGltZS4gVXNlIGV4aXQgc3RhdHVzIDEKKwkJCSAqIHNvIHRoZSBiYWNrZ3JvdW5kIHdvcmtlciBp cyByZXN0YXJ0ZWQuCisJCQkgKi8KKwkJCXByb2NfZXhpdCgxKTsKKwkJfQogCQllbHNlIGlmIChJ c0JhY2tncm91bmRXb3JrZXIpCiAJCQllcmVwb3J0KEZBVEFMLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX0FETUlOX1NIVVRET1dOKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2Fp dF9ldmVudF9uYW1lcy50eHQKaW5kZXggZjYyNTQ3M2FkNC4uMDg3OWJhYjU3ZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKQEAgLTUzLDYg KzUzLDggQEAgTE9HSUNBTF9BUFBMWV9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dp Y2FsIHJlcGxpY2F0aW9uIGFwcGx5IHByb2Nlc3MuIgogTE9HSUNBTF9MQVVOQ0hFUl9NQUlOCSJX YWl0aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIGxhdW5jaGVyIHByb2Nl c3MuIgogTE9HSUNBTF9QQVJBTExFTF9BUFBMWV9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBv ZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5IHByb2Nlc3MuIgogUkVDT1ZFUllf V0FMX1NUUkVBTQkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc3RhcnR1cCBwcm9jZXNzIGZvciBX QUwgdG8gYXJyaXZlLCBkdXJpbmcgc3RyZWFtaW5nIHJlY292ZXJ5LiIKK1JFUExfU0xPVFNZTkNf TUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc2xvdCBzeW5jIHdvcmtlci4iCitSRVBMX1NM T1RTWU5DX1BSSU1BUllfQ0FUQ0hVUAkiV2FpdGluZyBmb3IgdGhlIHByaW1hcnkgdG8gY2F0Y2gt dXAsIGluIHNsb3Qgc3luYyB3b3JrZXIuIgogU1lTTE9HR0VSX01BSU4JIldhaXRpbmcgaW4gbWFp biBsb29wIG9mIHN5c2xvZ2dlciBwcm9jZXNzLiIKIFdBTF9SRUNFSVZFUl9NQUlOCSJXYWl0aW5n IGluIG1haW4gbG9vcCBvZiBXQUwgcmVjZWl2ZXIgcHJvY2Vzcy4iCiBXQUxfU0VOREVSX01BSU4J IldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIFdBTCBzZW5kZXIgcHJvY2Vzcy4iCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGU1M2ViYzZkYzIuLjBmNWVjNjNkZTEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSAicmVw bGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5o IgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3N5bmNyZXAuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlv bi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvbGFyZ2Vfb2JqZWN0LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wZ19zaG1lbS5o IgpAQCAtMjA0NCw2ICsyMDQ1LDE1IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1l c0Jvb2xbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7ImVuYWJsZV9zeW5j c2xvdCIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNBVElPTl9TVEFOREJZLAorCQkJZ2V0dGV4dF9u b29wKCJFbmFibGVzIGEgcGh5c2ljYWwgc3RhbmRieSB0byBzeW5jaHJvbml6ZSBsb2dpY2FsIGZh aWxvdmVyIHNsb3RzIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpLAorCQl9LAorCQkmZW5hYmxl X3N5bmNzbG90LAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKIAkvKiBFbmQt b2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAwLCBOVUxMLCBOVUxMfSwgTlVMTCwg ZmFsc2UsIE5VTEwsIE5VTEwsIE5VTEwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQppbmRleCA4MzViMGU5YmE4Li42ODMwZjdkMTZiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC0zNjEsNiArMzYx LDcgQEAKICN3YWxfcmV0cmlldmVfcmV0cnlfaW50ZXJ2YWwgPSA1cwkjIHRpbWUgdG8gd2FpdCBi ZWZvcmUgcmV0cnlpbmcgdG8KIAkJCQkJIyByZXRyaWV2ZSBXQUwgYWZ0ZXIgYSBmYWlsZWQgYXR0 ZW1wdAogI3JlY292ZXJ5X21pbl9hcHBseV9kZWxheSA9IDAJCSMgbWluaW11bSBkZWxheSBmb3Ig YXBwbHlpbmcgY2hhbmdlcyBkdXJpbmcgcmVjb3ZlcnkKKyNlbmFibGVfc3luY3Nsb3QgPSBvZmYJ CQkjIGVuYWJsZXMgc2xvdCBzeW5jaHJvbml6YXRpb24gb24gdGhlIHBoeXNpY2FsIHN0YW5kYnkg ZnJvbSB0aGUgcHJpbWFyeQogCiAjIC0gU3Vic2NyaWJlcnMgLQogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAppbmRleCBiOWU3NDdkNzJmLi42ZGMyMzRmOWY3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKQEAgLTExMTE1LDkgKzExMTE1LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3JlcGxpY2F0 aW9uX3Nsb3RzJywgcHJvcm93cyA9PiAnMTAnLCBwcm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3Jl dHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywK ICAgcHJvYXJndHlwZXMgPT4gJycsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLHRl eHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0ZXh0LGludDgsYm9v bCx0ZXh0LGJvb2x9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7c2xvdF9uYW1lLHBsdWdpbixzbG90X3R5 cGUsZGF0b2lkLHRlbXBvcmFyeSxhY3RpdmUsYWN0aXZlX3BpZCx4bWluLGNhdGFsb2dfeG1pbixy ZXN0YXJ0X2xzbixjb25maXJtZWRfZmx1c2hfbHNuLHdhbF9zdGF0dXMsc2FmZV93YWxfc2l6ZSx0 d29fcGhhc2UsY29uZmxpY3RfcmVhc29uLGZhaWxvdmVyfScsCisgIHByb2FsbGFyZ3R5cGVzID0+ ICd7bmFtZSxuYW1lLHRleHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xz bix0ZXh0LGludDgsYm9vbCx0ZXh0LGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28s byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3Ns b3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3JhcnksYWN0aXZlLGFjdGl2ZV9w aWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmlybWVkX2ZsdXNoX2xzbix3YWxf c3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0X3JlYXNvbixmYWlsb3Zlcixz eW5jZWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMnIH0sCiB7IG9p ZCA9PiAnMzc4NicsIGRlc2NyID0+ICdzZXQgdXAgYSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qn LAogICBwcm9uYW1lID0+ICdwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90JywgcHJv dm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dv cmtlci5oIGIvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCmluZGV4IDIyZmM0OWVj MjcuLjcwOTJmYzcyYzYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3Jr ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKQEAgLTc5LDYgKzc5 LDcgQEAgdHlwZWRlZiBlbnVtCiAJQmdXb3JrZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQsCiAJQmdX b3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUsCiAJQmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlz aGVkLAorCUJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnksCiB9IEJnV29y a2VyU3RhcnRUaW1lOwogCiAjZGVmaW5lIEJHV19ERUZBVUxUX1JFU1RBUlRfSU5URVJWQUwJNjAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCBiL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaAppbmRleCBhMThkNzlkMWIyLi5i YmUwNDIyNmRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29y a2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCkBAIC0y Miw2ICsyMiw3IEBAIGV4dGVybiB2b2lkIFRhYmxlc3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9h cmcpOwogCiBleHRlcm4gYm9vbCBJc0xvZ2ljYWxXb3JrZXIodm9pZCk7CiBleHRlcm4gYm9vbCBJ c0xvZ2ljYWxQYXJhbGxlbEFwcGx5V29ya2VyKHZvaWQpOworZXh0ZXJuIGJvb2wgSXNMb2dpY2Fs U2xvdFN5bmNXb3JrZXIodm9pZCk7CiAKIGV4dGVybiB2b2lkIEhhbmRsZVBhcmFsbGVsQXBwbHlN ZXNzYWdlSW50ZXJydXB0KHZvaWQpOwogZXh0ZXJuIHZvaWQgSGFuZGxlUGFyYWxsZWxBcHBseU1l c3NhZ2VzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDU4NWNjYmI1MDQuLmY4MWJl ZjllNDIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTUyLDYgKzUyLDE0IEBAIHR5cGVkZWYg ZW51bSBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVzZQogCVJTX0lOVkFMX1dBTF9MRVZF TCwKIH0gUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2U7CiAKKy8qCisgKiBUaGUgcG9z c2libGUgdmFsdWVzIGZvciAnY29uZmxpY3RfcmVhc29uJyByZXR1cm5lZCBpbgorICogcGdfZ2V0 X3JlcGxpY2F0aW9uX3Nsb3RzLgorICovCisjZGVmaW5lIFNMT1RfSU5WQUxfV0FMX1JFTU9WRURf VEVYVCAid2FsX3JlbW92ZWQiCisjZGVmaW5lIFNMT1RfSU5WQUxfSE9SSVpPTl9URVhUICAgICAi cm93c19yZW1vdmVkIgorI2RlZmluZSBTTE9UX0lOVkFMX1dBTF9MRVZFTF9URVhUICAgIndhbF9s ZXZlbF9pbnN1ZmZpY2llbnQiCisKIC8qCiAgKiBPbi1EaXNrIGRhdGEgb2YgYSByZXBsaWNhdGlv biBzbG90LCBwcmVzZXJ2ZWQgYWNyb3NzIHJlc3RhcnRzLgogICovCkBAIC0xMTIsNiArMTIwLDEx IEBAIHR5cGVkZWYgc3RydWN0IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbnREYXRhCiAJLyogcGx1 Z2luIG5hbWUgKi8KIAlOYW1lRGF0YQlwbHVnaW47CiAKKwkvKgorCSAqIFdhcyB0aGlzIHNsb3Qg c3luY2hyb25pemVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyPworCSAqLworCWNoYXIJCXN5bmNl ZDsKKwogCS8qCiAJICogSXMgdGhpcyBhIGZhaWxvdmVyIHNsb3QgKHN5bmMgY2FuZGlkYXRlIGZv ciBwaHlzaWNhbCBzdGFuZGJ5cyk/IE9ubHkKIAkgKiByZWxldmFudCBmb3IgbG9naWNhbCBzbG90 cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIuCkBAIC0yMjQsOSArMjM3LDExIEBAIGV4dGVybiB2b2lk IFJlcGxpY2F0aW9uU2xvdHNTaG1lbUluaXQodm9pZCk7CiAvKiBtYW5hZ2VtZW50IG9mIGluZGl2 aWR1YWwgc2xvdHMgKi8KIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBj aGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkJCQkgIFJlcGxpY2F0aW9uU2xvdFBl cnNpc3RlbmN5IHBlcnNpc3RlbmN5LAotCQkJCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBib29sIGZh aWxvdmVyKTsKKwkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlciwKKwkJCQkJ CQkJICBib29sIHN5bmNlZCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RQZXJzaXN0KHZv aWQpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBi b29sIG5vd2FpdCk7CitleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQodm9p ZCk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBi b29sIGZhaWxvdmVyKTsKIAogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90QWNxdWlyZShjb25z dCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93YWxyZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2 ZXIuaAppbmRleCBmNTY2YTk5YmExLi41ZTk0MmNiNGZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyLmgKQEAgLTI3OSw2ICsyNzksMjEgQEAgdHlwZWRlZiB2b2lkICgqd2FscmN2 X2dldF9zZW5kZXJpbmZvX2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogdHlwZWRlZiBjaGFy ICooKndhbHJjdl9pZGVudGlmeV9zeXN0ZW1fZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJ CQkJCQkJCQkJCVRpbWVMaW5lSUQgKnByaW1hcnlfdGxpKTsKIAorLyoKKyAqIHdhbHJjdl9nZXRf ZGJpbmZvX2Zvcl9mYWlsb3Zlcl9zbG90c19mbgorICoKKyAqIFJ1biBMSVNUX0RCSURfRk9SX0ZB SUxPVkVSX1NMT1RTIG9uIHByaW1hcnkgc2VydmVyIHRvIGdldCB0aGUKKyAqIGxpc3Qgb2YgdW5p cXVlIERCSURzIGZvciBmYWlsb3ZlciBsb2dpY2FsIHNsb3RzCisgKi8KK3R5cGVkZWYgTGlzdCAq KCp3YWxyY3ZfZ2V0X2RiaW5mb19mb3JfZmFpbG92ZXJfc2xvdHNfZm4pIChXYWxSZWNlaXZlckNv bm4gKmNvbm4pOworCisvKgorICogd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mb19mbgor ICoKKyAqIFJldHVybnMgdGhlIGRiaWQgZnJvbSB0aGUgcHJpbWFyeV9jb25uaW5mbworICovCit0 eXBlZGVmIGNoYXIgKigqd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mb19mbikgKGNvbnN0 IGNoYXIgKmNvbm5pbmZvKTsKKwogLyoKICAqIHdhbHJjdl9zZXJ2ZXJfdmVyc2lvbl9mbgogICoK QEAgLTQwMyw2ICs0MTgsNyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5 cGUKIAl3YWxyY3ZfZ2V0X2Nvbm5pbmZvX2ZuIHdhbHJjdl9nZXRfY29ubmluZm87CiAJd2FscmN2 X2dldF9zZW5kZXJpbmZvX2ZuIHdhbHJjdl9nZXRfc2VuZGVyaW5mbzsKIAl3YWxyY3ZfaWRlbnRp Znlfc3lzdGVtX2ZuIHdhbHJjdl9pZGVudGlmeV9zeXN0ZW07CisJd2FscmN2X2dldF9kYm5hbWVf ZnJvbV9jb25uaW5mb19mbiB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvOwogCXdhbHJj dl9zZXJ2ZXJfdmVyc2lvbl9mbiB3YWxyY3Zfc2VydmVyX3ZlcnNpb247CiAJd2FscmN2X3JlYWR0 aW1lbGluZWhpc3RvcnlmaWxlX2ZuIHdhbHJjdl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZTsKIAl3 YWxyY3Zfc3RhcnRzdHJlYW1pbmdfZm4gd2FscmN2X3N0YXJ0c3RyZWFtaW5nOwpAQCAtNDI4LDYg KzQ0NCw4IEBAIGV4dGVybiBQR0RMTElNUE9SVCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgKldh bFJlY2VpdmVyRnVuY3Rpb25zOwogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfZ2V0X3Nl bmRlcmluZm8oY29ubiwgc2VuZGVyX2hvc3QsIHNlbmRlcl9wb3J0KQogI2RlZmluZSB3YWxyY3Zf aWRlbnRpZnlfc3lzdGVtKGNvbm4sIHByaW1hcnlfdGxpKSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlv bnMtPndhbHJjdl9pZGVudGlmeV9zeXN0ZW0oY29ubiwgcHJpbWFyeV90bGkpCisjZGVmaW5lIHdh bHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29ubmluZm8pIFwKKwlXYWxSZWNlaXZlckZ1 bmN0aW9ucy0+d2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbyhjb25uaW5mbykKICNkZWZp bmUgd2FscmN2X3NlcnZlcl92ZXJzaW9uKGNvbm4pIFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+ d2FscmN2X3NlcnZlcl92ZXJzaW9uKGNvbm4pCiAjZGVmaW5lIHdhbHJjdl9yZWFkdGltZWxpbmVo aXN0b3J5ZmlsZShjb25uLCB0bGksIGZpbGVuYW1lLCBjb250ZW50LCBzaXplKSBcCkBAIC00ODUs NiArNTAzLDcgQEAgZXh0ZXJuIHZvaWQgUmVxdWVzdFhMb2dTdHJlYW1pbmcoVGltZUxpbmVJRCB0 bGksIFhMb2dSZWNQdHIgcmVjcHRyLAogCQkJCQkJCQkgYm9vbCBjcmVhdGVfdGVtcF9zbG90KTsK IGV4dGVybiBYTG9nUmVjUHRyIEdldFdhbFJjdkZsdXNoUmVjUHRyKFhMb2dSZWNQdHIgKmxhdGVz dENodW5rU3RhcnQsIFRpbWVMaW5lSUQgKnJlY2VpdmVUTEkpOwogZXh0ZXJuIFhMb2dSZWNQdHIg R2V0V2FsUmN2V3JpdGVSZWNQdHIodm9pZCk7CitleHRlcm4gWExvZ1JlY1B0ciBHZXRXYWxSY3ZM YXRlc3RXYWxFbmQodm9pZCk7CiBleHRlcm4gaW50CUdldFJlcGxpY2F0aW9uQXBwbHlEZWxheSh2 b2lkKTsKIGV4dGVybiBpbnQJR2V0UmVwbGljYXRpb25UcmFuc2ZlckxhdGVuY3kodm9pZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKaW5kZXggNTE1YWVmZDUx OS4uMjE2NzcyMDk3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2Vy X2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFs LmgKQEAgLTIzNyw2ICsyMzcsMTEgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgaW5fcmVtb3Rl X3RyYW5zYWN0aW9uOwogCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBJbml0aWFsaXppbmdBcHBs eVdvcmtlcjsKIAorLyogU2xvdCBzeW5jIHdvcmtlciBvYmplY3RzICovCitleHRlcm4gUEdETExJ TVBPUlQgY2hhciAqUHJpbWFyeUNvbm5JbmZvOworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKlBy aW1hcnlTbG90TmFtZTsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9zeW5jc2xvdDsK KwogZXh0ZXJuIHZvaWQgbG9naWNhbHJlcF93b3JrZXJfYXR0YWNoKGludCBzbG90KTsKIGV4dGVy biBMb2dpY2FsUmVwV29ya2VyICpsb2dpY2FscmVwX3dvcmtlcl9maW5kKE9pZCBzdWJpZCwgT2lk IHJlbGlkLAogCQkJCQkJCQkJCQkJYm9vbCBvbmx5X3J1bm5pbmcpOwpAQCAtMzI1LDYgKzMzMCwx MSBAQCBleHRlcm4gdm9pZCBwYV9kZWNyX2FuZF93YWl0X3N0cmVhbV9ibG9jayh2b2lkKTsKIGV4 dGVybiB2b2lkIHBhX3hhY3RfZmluaXNoKFBhcmFsbGVsQXBwbHlXb3JrZXJJbmZvICp3aW5mbywK IAkJCQkJCSAgIFhMb2dSZWNQdHIgcmVtb3RlX2xzbik7CiAKK2V4dGVybiB2b2lkIFJlcGxTbG90 U3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpOworZXh0ZXJuIHZvaWQgU2xvdFN5bmNXb3Jr ZXJSZWdpc3Rlcih2b2lkKTsKK2V4dGVybiB2b2lkIFNodXREb3duU2xvdFN5bmModm9pZCk7Citl eHRlcm4gdm9pZCBTbG90U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKTsKKwogI2RlZmluZSBpc1Bh cmFsbGVsQXBwbHlXb3JrZXIod29ya2VyKSAoKHdvcmtlciktPmluX3VzZSAmJiBcCiAJCQkJCQkJ CQkgICAod29ya2VyKS0+dHlwZSA9PSBXT1JLRVJUWVBFX1BBUkFMTEVMX0FQUExZKQogI2RlZmlu ZSBpc1RhYmxlc3luY1dvcmtlcih3b3JrZXIpICgod29ya2VyKS0+aW5fdXNlICYmIFwKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3lu Yy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3lu Yy5wbAppbmRleCA2NDYyOTNjMzllLi44NGRlNmViZjM3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKKysrIGIvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCkBAIC04NCw2 ICs4NCwxNzAgQEAgaXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKIAkidCIsCiAJJ2xvZ2ljYWwg c2xvdCBoYXMgZmFpbG92ZXIgdHJ1ZSBvbiB0aGUgcHVibGlzaGVyJyk7CiAKLSRzdWJzY3JpYmVy MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX215c3Vi MSIpOworJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX215c3ViMSBFTkFCTEUiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCBsb2dpY2FsIGZhaWxvdmVyIHNsb3Rz IG9uIHRoZSBzdGFuZGJ5CisjIENvbmZpZ3VyZSBzdGFuZGJ5MSB0byByZXBsaWNhdGUgYW5kIHN5 bmNocm9uaXplIGxvZ2ljYWwgc2xvdHMgY29uZmlndXJlZAorIyBmb3IgZmFpbG92ZXIgb24gdGhl IHByaW1hcnkKKyMKKyMgICAgICAgICAgICAgIGZhaWxvdmVyIHNsb3QgbHN1YjFfc2xvdC0+fCAt LS0tPiBzdWJzY3JpYmVyMSAoY29ubmVjdGVkIHZpYSBsb2dpY2FsIHJlcGxpY2F0aW9uKQorIyBw cmltYXJ5IC0tLT4gICAgICAgICAgICAgICAgICAgICAgICAgICB8CisjICAgICAgICAgICAgICBw aHlzaWNhbCBzbG90IHNiMV9zbG90LS0tPnwgLS0tLT4gc3RhbmRieTEgKGNvbm5lY3RlZCB2aWEg c3RyZWFtaW5nIHJlcGxpY2F0aW9uKQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICBsc3ViMV9zbG90KHN5bmNlZF9zbG90KQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworbXkgJHByaW1h cnkgPSAkcHVibGlzaGVyOworbXkgJGJhY2t1cF9uYW1lID0gJ2JhY2t1cCc7CiskcHJpbWFyeS0+ YmFja3VwKCRiYWNrdXBfbmFtZSk7CisKKyMgQ3JlYXRlIGEgc3RhbmRieQorbXkgJHN0YW5kYnkx ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5MScpOworJHN0YW5kYnkx LT5pbml0X2Zyb21fYmFja3VwKAorCSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVh bWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7CisKK215ICRjb25uc3RyXzEgPSAkcHJp bWFyeS0+Y29ubnN0cjsKKyRzdGFuZGJ5MS0+YXBwZW5kX2NvbmYoCisJJ3Bvc3RncmVzcWwuY29u ZicsIHFxKAorZW5hYmxlX3N5bmNzbG90ID0gdHJ1ZQoraG90X3N0YW5kYnlfZmVlZGJhY2sgPSBv bgorcHJpbWFyeV9zbG90X25hbWUgPSAnc2IxX3Nsb3QnCitwcmltYXJ5X2Nvbm5pbmZvID0gJyRj b25uc3RyXzEgZGJuYW1lPXBvc3RncmVzJworKSk7CisKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3Jl cycsCisJcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9z bG90Jyk7fSk7CisKK215ICRzdGFuZGJ5MV9jb25uaW5mbyA9ICRzdGFuZGJ5MS0+Y29ubnN0ciAu ICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBTdGFydCB0aGUgc3RhbmRieSBzbyB0aGF0IHNsb3Qg c3luY2luZyBjYW4gYmVnaW4KKyRzdGFuZGJ5MS0+c3RhcnQ7CisKKyMgR2VuZXJhdGUgYSBsb2cg dG8gdHJpZ2dlciB0aGUgd2Fsc2VuZGVyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIHdhbHJlY2Vp dmVyCisjIHdoaWNoIHdpbGwgdXBkYXRlIFdhbFJjdi0+bGF0ZXN0V2FsRW5kIHRvIGEgdmFsaWQg bnVtYmVyLgorbXkgJG9mZnNldCA9IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKKyRwcmltYXJ5LT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19sb2dfc3RhbmRieV9zbmFwc2hvdCgpOyIp OworCisjIFdhaXQgZm9yIHRoZSBzdGFuZGJ5IHRvIGZpbmlzaCBzeW5jCiskc3RhbmRieTEtPndh aXRfZm9yX2xvZygKKwlxci9MT0c6ICggW0EtWjAtOV0rOik/IG5ld2x5IGxvY2FsbHkgY3JlYXRl ZCBzbG90IFwibHN1YjFfc2xvdFwiIGlzIHN5bmMtcmVhZHkgbm93LywKKwkkb2Zmc2V0KTsKKwor IyBDb25maXJtIHRoYXQgdGhlIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdCBpcyBjcmVhdGVkIG9uIHRo ZSBzdGFuZGJ5IGFuZCBpcworIyBmbGFnZ2VkIGFzICdzeW5jZWQnCitpcygkc3RhbmRieTEtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIGZhaWxvdmVyLCBzeW5jZWQgRlJPTSBwZ19y ZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fSksCisJInR8 dCIsCisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgYXMgdHJ1ZSBhbmQgc3luY2VkIGFzIHRy dWUgb24gc3RhbmRieScpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIyBUZXN0IHRvIGNvbmZpcm0gdGhhdCByZXN0YXJ0X2xzbiBhbmQgY29u ZmlybWVkX2ZsdXNoX2xzbiBvZiB0aGUgbG9naWNhbCBzbG90CisjIG9uIHRoZSBwcmltYXJ5IGlz IHN5bmNlZCB0byB0aGUgc3RhbmRieQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworIyBJbnNlcnQgZGF0YSBvbiB0aGUgcHJpbWFyeQorJHByaW1h cnktPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAo YSBpbnQgUFJJTUFSWSBLRVkpOworCUlOU0VSVCBJTlRPIHRhYl9pbnQgU0VMRUNUIGdlbmVyYXRl X3NlcmllcygxLCAxMCk7CitdKTsKKworIyBTdWJzY3JpYmUgdG8gdGhlIG5ldyB0YWJsZSBkYXRh IGFuZCB3YWl0IGZvciBpdCB0byBhcnJpdmUKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAorCSdw b3N0Z3JlcycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7 CisJQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFJFRlJFU0ggUFVCTElDQVRJT047 CitdKTsKKworJHN1YnNjcmliZXIxLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYzsKKworIyBE byBub3QgYWxsb3cgYW55IGZ1cnRoZXIgYWR2YW5jZW1lbnQgb2YgdGhlIHJlc3RhcnRfbHNuIGFu ZAorIyBjb25maXJtZWRfZmx1c2hfbHNuIGZvciB0aGUgbHN1YjFfc2xvdC4KKyRzdWJzY3JpYmVy MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1 YjEgRElTQUJMRSIpOworCisjIFdhaXQgZm9yIHRoZSByZXBsaWNhdGlvbiBzbG90IHRvIGJlY29t ZSBpbmFjdGl2ZSBvbiB0aGUgcHVibGlzaGVyCiskcHJpbWFyeS0+cG9sbF9xdWVyeV91bnRpbCgK KwkncG9zdGdyZXMnLAorCSJTRUxFQ1QgQ09VTlQoKikgRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxp Y2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90JyBBTkQgYWN0aXZlPSdm JyIsCisJMSk7CisKKyMgR2V0IHRoZSByZXN0YXJ0X2xzbiBmb3IgdGhlIGxvZ2ljYWwgc2xvdCBs c3ViMV9zbG90IG9uIHRoZSBwcmltYXJ5CitteSAkcHJpbWFyeV9yZXN0YXJ0X2xzbiA9ICRwcmlt YXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHJlc3RhcnRfbHNuIGZyb20gcGdf cmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnOyIpOworCisj IEdldCB0aGUgY29uZmlybWVkX2ZsdXNoX2xzbiBmb3IgdGhlIGxvZ2ljYWwgc2xvdCBsc3ViMV9z bG90IG9uIHRoZSBwcmltYXJ5CitteSAkcHJpbWFyeV9mbHVzaF9sc24gPSAkcHJpbWFyeS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb25maXJtZWRfZmx1c2hfbHNuIGZyb20gcGdf cmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnOyIpOworCisj IENvbmZpcm0gdGhhdCByZXN0YXJ0X2xzbiBhbmQgb2YgY29uZmlybWVkX2ZsdXNoX2xzbiBsc3Vi MV9zbG90IHNsb3QgYXJlIHN5bmNlZAorIyB0byB0aGUgc3RhbmRieQorb2soICRzdGFuZGJ5MS0+ cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywKKwkJIlNFTEVDVCAnJHByaW1hcnlfcmVz dGFydF9sc24nID0gcmVzdGFydF9sc24gQU5EICckcHJpbWFyeV9mbHVzaF9sc24nID0gY29uZmly bWVkX2ZsdXNoX2xzbiBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9 ICdsc3ViMV9zbG90JzsiKSwKKwkncmVzdGFydF9sc24gYW5kIGNvbmZpcm1lZF9mbHVzaF9sc24g b2Ygc2xvdCBsc3ViMV9zbG90IHN5bmNlZCB0byBzdGFuZGJ5Jyk7CisKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgdGhhdCBhIHN5bmNo cm9uaXplZCBzbG90IGNhbiBub3QgYmUgZGVjb2RlZCwgYWx0ZXJlZCBvciBkcm9wcGVkIGJ5IHRo ZSB1c2VyCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCisjIERpc2FibGUgaG90X3N0YW5kYnlfZmVlZGJhY2sgdGVtcG9yYXJpbHkgdG8gc3RvcCBz bG90IHN5bmMgd29ya2VyIG90aGVyd2lzZQorIyB0aGUgY29uY2VybmVkIHRlc3Rpbmcgc2NlbmFy aW9zIGhlcmUgbWF5IGJlIGludGVycnVwdGVkIGJ5IGRpZmZlcmVudCBlcnJvcjoKKyMgJ0VSUk9S OiAgcmVwbGljYXRpb24gc2xvdCBpcyBhY3RpdmUgZm9yIFBJRCAuLicKKyRzdGFuZGJ5MS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhvdF9zdGFuZGJ5X2ZlZWRiYWNr ID0gb2ZmOycpOworJHN0YW5kYnkxLT5yZXN0YXJ0OworCisjIEF0dGVtcHRpbmcgdG8gcGVyZm9y bSBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3VsdCBpbiBhbiBl cnJvcgorbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdw b3N0Z3JlcycsCisJInNlbGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCds c3ViMV9zbG90JyxOVUxMLE5VTEwpOyIpOworb2soJHN0ZGVyciA9fiAvRVJST1I6ICBjYW5ub3Qg dXNlIHJlcGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiIGZvciBsb2dpY2FsIGRlY29kaW5nLywK KwkibG9naWNhbCBkZWNvZGluZyBpcyBub3QgYWxsb3dlZCBvbiBzeW5jZWQgc2xvdCIpOworCisj IEF0dGVtcHRpbmcgdG8gYWx0ZXIgYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVy cm9yCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoCisgICAg J3Bvc3RncmVzJywKKyAgICBxcVtBTFRFUl9SRVBMSUNBVElPTl9TTE9UIGxzdWIxX3Nsb3QgKGZh aWxvdmVyKTtdLAorICAgIHJlcGxpY2F0aW9uID0+ICdkYXRhYmFzZScpOworb2soJHN0ZGVyciA9 fiAvRVJST1I6ICBjYW5ub3QgYWx0ZXIgcmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xvdCIvLAor CSJzeW5jZWQgc2xvdCBvbiBzdGFuZGJ5IGNhbm5vdCBiZSBhbHRlcmVkIik7CisKKyMgQXR0ZW1w dGluZyB0byBkcm9wIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3VsdCBpbiBhbiBlcnJvcgorKCRy ZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xzdWIxX3Nsb3QnKTsiKTsKK29rKCRz dGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IGRyb3AgcmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xv dCIvLAorCSJzeW5jZWQgc2xvdCBvbiBzdGFuZGJ5IGNhbm5vdCBiZSBkcm9wcGVkIik7CisKKyMg RW5hYmxlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGFuZCByZXN0YXJ0IHN0YW5kYnkKKyRzdGFuZGJ5 MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrID0gb247Jyk7Ciskc3RhbmRieTEtPnJlc3RhcnQ7CisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFByb21vdGUgdGhlIHN0YW5kYnkx IHRvIHByaW1hcnkuIENvbmZpcm0gdGhhdDoKKyMgYSkgdGhlIHNsb3QgJ2xzdWIxX3Nsb3QnIGlz IHJldGFpbmVkIG9uIHRoZSBuZXcgcHJpbWFyeQorIyBiKSBsb2dpY2FsIHJlcGxpY2F0aW9uIGZv ciByZWdyZXNzX215c3ViMSBpcyByZXN1bWVkIHN1Y2Nlc3NmdWxseSBhZnRlciBmYWlsb3Zlcgor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyRzdGFu ZGJ5MS0+cHJvbW90ZTsKKworIyBVcGRhdGUgc3Vic2NyaXB0aW9uIHdpdGggdGhlIG5ldyBwcmlt YXJ5J3MgY29ubmVjdGlvbiBpbmZvCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgQ09OTkVDVElPTiAnJHN0YW5k YnkxX2Nvbm5pbmZvJzsKKwkgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIEVOQUJM RTsgIik7CisKKyMgQ29uZmlybSB0aGUgc3luY2VkIHNsb3QgJ2xzdWIxX3Nsb3QnIGlzIHJldGFp bmVkIG9uIHRoZSBuZXcgcHJpbWFyeQoraXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwlxe1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBz bG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fSksCisJJ2xzdWIxX3Nsb3QnLAorCSdzeW5jZWQgc2xv dCByZXRhaW5lZCBvbiB0aGUgbmV3IHByaW1hcnknKTsKKworIyBJbnNlcnQgZGF0YSBvbiB0aGUg bmV3IHByaW1hcnkKKyRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJ TlRPIHRhYl9pbnQgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxMSwgMjApOyIpOworJHN0YW5kYnkx LT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMScpOworCisjIENvbmZpcm0gdGhhdCBk YXRhIGluIHRhYl9pbnQgcmVwbGljYXRlZCBvbiB0aGUgc3Vic2NyaWJlcgoraXMoICRzdWJzY3Jp YmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGNvdW50KCopIEZST00gdGFiX2lu dDt9KSwKKwkiMjAiLAorCSdkYXRhIHJlcGxpY2F0ZWQgZnJvbSB0aGUgbmV3IHByaW1hcnknKTsK IAogZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGFj YzIzMzliNDkuLmFlNjg3NTMxZDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBA IC0xNDc0LDggKzE0NzQsOSBAQCBwZ19yZXBsaWNhdGlvbl9zbG90c3wgU0VMRUNUIGwuc2xvdF9u YW1lLAogICAgIGwuc2FmZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKICAgICBsLmNvbmZs aWN0X3JlYXNvbiwKLSAgICBsLmZhaWxvdmVyCi0gICBGUk9NIChwZ19nZXRfcmVwbGljYXRpb25f c2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5 LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24sIGNv bmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFzZSwg Y29uZmxpY3RfcmVhc29uLCBmYWlsb3ZlcikKKyAgICBsLmZhaWxvdmVyLAorICAgIGwuc3luY2Vk CisgICBGUk9NIChwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2lu LCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4s IGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24sIGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0 dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFzZSwgY29uZmxpY3RfcmVhc29uLCBmYWlsb3Zlciwg c3luY2VkKQogICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKGwuZGF0b2lkID0gZC5v aWQpKSk7CiBwZ19yb2xlc3wgU0VMRUNUIHBnX2F1dGhpZC5yb2xuYW1lLAogICAgIHBnX2F1dGhp ZC5yb2xzdXBlciwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmll d3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKaW5kZXggMjcx MzEzZWJmOC4uYWFjODM3NTVkZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zeXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5v dXQKQEAgLTEzMiw4ICsxMzIsOSBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRp bmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX3NlbGZfam9pbl9yZW1vdmFs ICAgICAgIHwgb24KICBlbmFibGVfc2Vxc2NhbiAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJs ZV9zb3J0ICAgICAgICAgICAgICAgICAgICB8IG9uCisgZW5hYmxlX3N5bmNzbG90ICAgICAgICAg ICAgICAgIHwgb2ZmCiAgZW5hYmxlX3RpZHNjYW4gICAgICAgICAgICAgICAgIHwgb24KLSgyMiBy b3dzKQorKDIzIHJvd3MpCiAKIC0tIFRoZXJlIGFyZSBhbHdheXMgd2FpdCBldmVudCBkZXNjcmlw dGlvbnMgZm9yIHZhcmlvdXMgdHlwZXMuCiBzZWxlY3QgdHlwZSwgY291bnQoKikgPiAwIGFzIG9r IEZST00gcGdfd2FpdF9ldmVudHMKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggM2QyNTU5 ZmVjYS4uOWM4M2MzMjBjOCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIzMjEsNiAr MjMyMSw3IEBAIFJlbG9jYXRpb25CdWZmZXJJbmZvCiBSZWxwdHJGcmVlUGFnZUJ0cmVlCiBSZWxw dHJGcmVlUGFnZU1hbmFnZXIKIFJlbHB0ckZyZWVQYWdlU3BhbkxlYWRlcgorUmVtb3RlU2xvdAog UmVuYW1lU3RtdAogUmVvcGVuUHRyVHlwZQogUmVvcmRlckJ1ZmZlcgpAQCAtMjU4MSw2ICsyNTgy LDcgQEAgU2xhYkJsb2NrCiBTbGFiQ29udGV4dAogU2xhYlNsb3QKIFNsb3ROdW1iZXIKK1Nsb3RT eW5jV29ya2VyQ3R4U3RydWN0CiBTbHJ1Q3RsCiBTbHJ1Q3RsRGF0YQogU2xydUVycm9yQ2F1c2UK LS0gCjIuMzQuMQoK --_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v61-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Description: v61-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch Content-Disposition: attachment; filename="v61-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch"; size=42074; creation-date="Fri, 12 Jan 2024 14:20:11 GMT"; modification-date="Fri, 12 Jan 2024 14:21:12 GMT" Content-Transfer-Encoding: base64 RnJvbSAzNmY5ZmE5NzEwNWFhYjRmMzI1OWZiYzdhMmVmMDg5MzM5YjUzMDJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxzaGVybG9ja2NwcEBmb3htYWlsLmNvbT4K RGF0ZTogRnJpLCAxMiBKYW4gMjAyNCAyMDozNDoyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYx IDMvNF0gQWxsb3cgbG9naWNhbCB3YWxzZW5kZXJzIHRvIHdhaXQgZm9yIHRoZSBwaHlzaWNhbAog c3RhbmRieXMKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhh dCBwaHlzaWNhbCBzdGFuZGJ5IHNlcnZlcnMsCndoaWNoIGFyZSBwb3RlbnRpYWwgZmFpbG92ZXIg Y2FuZGlkYXRlcywgaGF2ZSByZWNlaXZlZCBhbmQgZmx1c2hlZCBjaGFuZ2VzCmJlZm9yZSBtYWtp bmcgdGhlbSB2aXNpYmxlIHRvIHN1YnNjcmliZXJzLiBCeSBkb2luZyBzbywgaXQgZ3VhcmFudGVl cyB0aGF0CnRoZSBwcm9tb3RlZCBzdGFuZGJ5IHNlcnZlciBpcyBub3QgbGFnZ2luZyBiZWhpbmQg dGhlIHN1YnNjcmliZXJzIHdoZW4gYQpmYWlsb3ZlciBpcyBuZWNlc3NhcnkuCgpBIG5ldyBwYXJh bWV0ZXIgbmFtZWQgc3RhbmRieV9zbG90X25hbWVzIGlzIGludHJvZHVjZWQuIFRoZSBsb2dpY2Fs CndhbHNlbmRlciBub3cgZ3VhcmFudGVlcyB0aGF0IGFsbCBsb2NhbCBjaGFuZ2VzIGFyZSBzZW50 IGFuZCBmbHVzaGVkIHRvCnRoZSBzdGFuZGJ5IHNlcnZlcnMgY29ycmVzcG9uZGluZyB0byB0aGUg cmVwbGljYXRpb24gc2xvdHMgc3BlY2lmaWVkIGluCnN0YW5kYnlfc2xvdF9uYW1lcyBiZWZvcmUg c2VuZGluZyB0aG9zZSBjaGFuZ2VzIHRvIHRoZSBzdWJzY3JpYmVyLgoKQWRkaXRpb25hbGx5LCBU aGUgU1FMIGZ1bmN0aW9ucyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgYW5kCnBnX3JlcGxp Y2F0aW9uX3Nsb3RfYWR2YW5jZSBhcmUgbW9kaWZpZWQgdG8gd2FpdCBmb3IgdGhlIHJlcGxpY2F0 aW9uIHNsb3RzCm1lbnRpb25lZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAgYmVm b3JlIHJldHVybmluZyB0aGUgY2hhbmdlcwp0byB0aGUgdXNlci4KLS0tCiBkb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9s b2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgICAgICB8ICAgNiArLQogLi4uL3JlcGxpY2F0aW9u L2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8IDM0MiArKysrKysrKysrKysrKysrKy0KIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAgOSArCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAxMTEgKysrKystCiAu Li4vdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgIDEgKwogc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy9i YWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMiArCiBzcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9zbG90LmggICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggICB8ICAgNyArCiBzcmMvaW5jbHVkZS91 dGlscy9ndWNfaG9va3MuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlY292ZXJ5 L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwgICB8ICAgMyArLQogLi4uL3QvMDUwX3N0YW5kYnlf ZmFpbG92ZXJfc2xvdHNfc3luYy5wbCAgICAgIHwgMjMyICsrKysrKysrKystLQogMTYgZmlsZXMg Y2hhbmdlZCwgNzM1IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRl eCBiZDJkMmY4NzFlLi43NjM0NWU0MzNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NDIwLDYgKzQ0MjAsMzAg QEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAi JXAiJyAgIyBXaW5kb3dzCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIiB4cmVmbGFi ZWw9InN0YW5kYnlfc2xvdF9uYW1lcyI+CisgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X3Ns b3RfbmFtZXM8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVy bT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+ IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+Cisg ICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIExp c3Qgb2YgcGh5c2ljYWwgc2xvdHMgZ3VhcmFudGVlcyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24g c2xvdHMgd2l0aAorICAgICAgICBmYWlsb3ZlciBlbmFibGVkIGRvIG5vdCBjb25zdW1lIGNoYW5n ZXMgdW50aWwgdGhvc2UgY2hhbmdlcyBhcmUgcmVjZWl2ZWQKKyAgICAgICAgYW5kIGZsdXNoZWQg dG8gY29ycmVzcG9uZGluZyBwaHlzaWNhbCBzdGFuZGJ5cy4gSWYgYSBsb2dpY2FsIHJlcGxpY2F0 aW9uCisgICAgICAgIGNvbm5lY3Rpb24gaXMgbWVhbnQgdG8gc3dpdGNoIHRvIGEgcGh5c2ljYWwg c3RhbmRieSBhZnRlciB0aGUgc3RhbmRieSBpcworICAgICAgICBwcm9tb3RlZCwgdGhlIHBoeXNp Y2FsIHJlcGxpY2F0aW9uIHNsb3QgZm9yIHRoZSBzdGFuZGJ5IHNob3VsZCBiZSBsaXN0ZWQKKyAg ICAgICAgaGVyZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBz dGFuZGJ5cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90cyBp bgorICAgICAgICA8dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IG11c3QgY29u ZmlndXJlCisgICAgICAgIDxsaXRlcmFsPmVuYWJsZV9zeW5jc2xvdCA9IHRydWU8L2xpdGVyYWw+ IHNvIHRoZXkgY2FuIHJlY2VpdmUKKyAgICAgICAgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBjaGFu Z2VzIGZyb20gdGhlIHByaW1hcnkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4K KyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0 Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBi L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggMjY0YjQ4NWM0Mi4u M2NjZWQ1NzcxZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC03MDEs NyArNzAxLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OCiAgICAgSG93ZXZlciwgdGhlIHJlcGxpY2F0 aW9uIHNsb3RzIGFyZSBjb3BpZWQgYXN5bmNocm9ub3VzbHksIHdoaWNoIG1lYW5zIGl0J3MgbmVj ZXNzYXJ5CiAgICAgdG8gY29uZmlybSB0aGF0IHJlcGxpY2F0aW9uIHNsb3RzIGhhdmUgYmVlbiBz eW5jZWQgdG8gdGhlIHN0YW5kYnkgc2VydmVyCiAgICAgYmVmb3JlIHRoZSBmYWlsb3ZlciBoYXBw ZW5zLiBBZGRpdGlvbmFsbHksIHRvIGVuc3VyZSBhIHN1Y2Nlc3NmdWwgZmFpbG92ZXIsCi0gICAg dGhlIHN0YW5kYnkgc2VydmVyIG11c3Qgbm90IGxhZyBiZWhpbmQgdGhlIHN1YnNjcmliZXIuIFRv IGNvbmZpcm0KKyAgICB0aGUgc3RhbmRieSBzZXJ2ZXIgbXVzdCBub3QgbGFnIGJlaGluZCB0aGUg c3Vic2NyaWJlci4gSXQgaXMgaGlnaGx5CisgICAgcmVjb21tZW5kZWQgdG8gdXNlIDx2YXJuYW1l PnN0YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT4gdG8gcHJldmVudCB0aGUKKyAgICBzdWJzY3Jp YmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFuZGJ5LiBU byBjb25maXJtCiAgICAgdGhhdCB0aGUgc3RhbmRieSBzZXJ2ZXIgaXMgcmVhZHkgZm9yIGZhaWxv dmVyLCBmb2xsb3cgdGhlc2Ugc3RlcHM6CiAgICA8L3BhcmE+CiAKQEAgLTczNyw2ICs3MzksOCBA QCB0ZXN0X3N1Yj0jIFNFTEVDVAogICAgICA8bGlzdGl0ZW0+CiAgICAgICA8cGFyYT4KICAgICAg ICBDaGVjayB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGV4aXN0IG9uIHRoZSBz dGFuZGJ5IHNlcnZlci4KKyAgICAgICBUaGlzIHN0ZXAgY2FuIGJlIHNraXBwZWQgaWYgPHZhcm5h bWU+c3RhbmRieV9zbG90X25hbWVzPC92YXJuYW1lPgorICAgICAgIGhhcyBiZWVuIGNvcnJlY3Rs eSBjb25maWd1cmVkLgogPHByb2dyYW1saXN0aW5nPgogdGVzdF9zdGFuZGJ5PSMgU0VMRUNUIGJv b2xfYW5kKHN5bmNlZCBBTkQgTk9UIHRlbXBvcmFyeSBBTkQgY29uZmxpY3RfcmVhc29uIElTIE5V TEwpIEFTIGZhaWxvdmVyX3JlYWR5CiAgICAgICAgICAgICAgICBGUk9NIHBnX3JlcGxpY2F0aW9u X3Nsb3RzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2lj YWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3Mu YwppbmRleCBiMDA4MWQzY2U1Li41ZmY3NjFkZDY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl ICJyZXBsaWNhdGlvbi9kZWNvZGUuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsLmgi CiAjaW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9u L3dhbHNlbmRlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC0xMDksNiArMTEwLDcgQEAg cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8s IGJvb2wgY29uZmlybSwgYm9vbCBiaW4KIAlNZW1vcnlDb250ZXh0IHBlcl9xdWVyeV9jdHg7CiAJ TWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwogCVhMb2dSZWNQdHIJZW5kX29mX3dhbDsKKwlYTG9n UmVjUHRyCXdhaXRfZm9yX3dhbF9sc247CiAJTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4Owog CVJlc291cmNlT3duZXIgb2xkX3Jlc293bmVyID0gQ3VycmVudFJlc291cmNlT3duZXI7CiAJQXJy YXlUeXBlICAqYXJyOwpAQCAtMjI4LDYgKzIzMCwxNyBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2No YW5nZXNfZ3V0cyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJp bgogCQkJCQkJCU5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucGx1Z2luKSwKIAkJCQkJ CQlmb3JtYXRfcHJvY2VkdXJlKGZjaW5mby0+ZmxpbmZvLT5mbl9vaWQpKSkpOwogCisJCWlmIChY TG9nUmVjUHRySXNJbnZhbGlkKHVwdG9fbHNuKSkKKwkJCXdhaXRfZm9yX3dhbF9sc24gPSBlbmRf b2Zfd2FsOworCQllbHNlCisJCQl3YWl0X2Zvcl93YWxfbHNuID0gTWluKHVwdG9fbHNuLCBlbmRf b2Zfd2FsKTsKKworCQkvKgorCQkgKiBXYWl0IGZvciBzcGVjaWZpZWQgc3RyZWFtaW5nIHJlcGxp Y2F0aW9uIHN0YW5kYnkgc2VydmVycyAoaWYgYW55KQorCQkgKiB0byBjb25maXJtIHJlY2VpcHQg b2YgV0FMIHVwIHRvIHdhaXRfZm9yX3dhbF9sc24uCisJCSAqLworCQlXYWl0Rm9yU3RhbmRieUNv bmZpcm1hdGlvbih3YWl0X2Zvcl93YWxfbHNuKTsKKwogCQljdHgtPm91dHB1dF93cml0ZXJfcHJp dmF0ZSA9IHA7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCAyMDhjZDkzZjYxLi4w MDkyMTZlZGU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00NiwxMyArNDYsMTggQEAKICNp bmNsdWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKICNpbmNsdWRl ICJyZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgi CisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaCIKICNpbmNsdWRlICJz dG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdl L3Byb2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxz L2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCisjaW5jbHVkZSAidXRp bHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIC8qCiAgKiBSZXBs aWNhdGlvbiBzbG90IG9uLWRpc2sgZGF0YSBzdHJ1Y3R1cmUuCkBAIC05OSwxMCArMTA0LDE5IEBA IFJlcGxpY2F0aW9uU2xvdEN0bERhdGEgKlJlcGxpY2F0aW9uU2xvdEN0bCA9IE5VTEw7CiAvKiBN eSBiYWNrZW5kJ3MgcmVwbGljYXRpb24gc2xvdCBpbiB0aGUgc2hhcmVkIG1lbW9yeSBhcnJheSAq LwogUmVwbGljYXRpb25TbG90ICpNeVJlcGxpY2F0aW9uU2xvdCA9IE5VTEw7CiAKLS8qIEdVQyB2 YXJpYWJsZSAqLworLyogR1VDIHZhcmlhYmxlcyAqLwogaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Ns b3RzID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBsaWNhdGlvbgogCQkJCQkJCQkJ CSAqIHNsb3RzICovCiAKKy8qCisgKiBUaGlzIEdVQyBsaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRp b24gc3RhbmRieSBzZXJ2ZXIgc2xvdCBuYW1lcyB0aGF0CisgKiBsb2dpY2FsIFdBTCBzZW5kZXIg cHJvY2Vzc2VzIHdpbGwgd2FpdCBmb3IuCisgKi8KK2NoYXIJICAgKnN0YW5kYnlfc2xvdF9uYW1l czsKKworLyogVGhpcyBpcyBwYXJzZWQgYW5kIGNhY2hlZCBsaXN0IGZvciByYXcgc3RhbmRieV9z bG90X25hbWVzLiAqLworc3RhdGljIExpc3QgKnN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0gTklM OworCiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3RTaG1lbUV4aXQoaW50IGNvZGUsIERhdHVt IGFyZyk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xv dCAqc2xvdCk7CiAKQEAgLTIyMTAsMyArMjIyNCwzMjkgQEAgUmVzdG9yZVNsb3RGcm9tRGlzayhj b25zdCBjaGFyICpuYW1lKQogCQkJCShlcnJtc2coInRvbyBtYW55IHJlcGxpY2F0aW9uIHNsb3Rz IGFjdGl2ZSBiZWZvcmUgc2h1dGRvd24iKSwKIAkJCQkgZXJyaGludCgiSW5jcmVhc2UgbWF4X3Jl cGxpY2F0aW9uX3Nsb3RzIGFuZCB0cnkgYWdhaW4uIikpKTsKIH0KKworLyoKKyAqIEEgaGVscGVy IGZ1bmN0aW9uIHRvIHZhbGlkYXRlIHNsb3RzIHNwZWNpZmllZCBpbiBHVUMgc3RhbmRieV9zbG90 X25hbWVzLgorICovCitzdGF0aWMgYm9vbAordmFsaWRhdGVfc3RhbmRieV9zbG90cyhjaGFyICoq bmV3dmFsKQoreworCWNoYXIJICAgKnJhd25hbWU7CisJTGlzdAkgICAqZWxlbWxpc3Q7CisJTGlz dENlbGwgICAqbGM7CisJYm9vbAkJb2s7CisKKwkvKiBOZWVkIGEgbW9kaWZpYWJsZSBjb3B5IG9m IHN0cmluZyAqLworCXJhd25hbWUgPSBwc3RyZHVwKCpuZXd2YWwpOworCisJLyogVmVyaWZ5IHN5 bnRheCBhbmQgcGFyc2Ugc3RyaW5nIGludG8gYSBsaXN0IG9mIGlkZW50aWZpZXJzICovCisJb2sg PSBTcGxpdElkZW50aWZpZXJTdHJpbmcocmF3bmFtZSwgJywnLCAmZWxlbWxpc3QpOworCisJaWYg KCFvaykKKwkJR1VDX2NoZWNrX2VycmRldGFpbCgiTGlzdCBzeW50YXggaXMgaW52YWxpZC4iKTsK KworCS8qCisJICogSWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlIG5hbWUgb3IgaWYg dGhlIHJlcGxpY2F0aW9uIHNsb3RzJworCSAqIGRhdGEgaXMgbm90IGluaXRpYWxpemVkIHlldCAo aS5lLiwgd2UgYXJlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MpLCBza2lwCisJICogdGhlIHNsb3Qg dmVyaWZpY2F0aW9uLgorCSAqLworCWlmICghb2sgfHwgIVJlcGxpY2F0aW9uU2xvdEN0bCkKKwl7 CisJCXBmcmVlKHJhd25hbWUpOworCQlsaXN0X2ZyZWUoZWxlbWxpc3QpOworCQlyZXR1cm4gb2s7 CisJfQorCisJZm9yZWFjaChsYywgZWxlbWxpc3QpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZp cnN0KGxjKTsKKwkJUmVwbGljYXRpb25TbG90ICpzbG90OworCisJCXNsb3QgPSBTZWFyY2hOYW1l ZFJlcGxpY2F0aW9uU2xvdChuYW1lLCB0cnVlKTsKKworCQlpZiAoIXNsb3QpCisJCXsKKwkJCUdV Q19jaGVja19lcnJkZXRhaWwoInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGRvZXMgbm90IGV4aXN0 IiwKKwkJCQkJCQkJbmFtZSk7CisJCQlvayA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKworCQlp ZiAoIVNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQl7CisJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJc IiVzXCIgaXMgbm90IGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCisJCQkJCQkJCW5hbWUp OworCQkJb2sgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcGZyZWUocmF3bmFtZSk7 CisJbGlzdF9mcmVlKGVsZW1saXN0KTsKKwlyZXR1cm4gb2s7Cit9CisKKy8qCisgKiBHVUMgY2hl Y2tfaG9vayBmb3Igc3RhbmRieV9zbG90X25hbWVzCisgKi8KK2Jvb2wKK2NoZWNrX3N0YW5kYnlf c2xvdF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2Up Cit7CisJaWYgKHN0cmNtcCgqbmV3dmFsLCAiIikgPT0gMCkKKwkJcmV0dXJuIHRydWU7CisKKwkv KgorCSAqICIqIiBpcyBub3QgYWNjZXB0ZWQgYXMgaW4gdGhhdCBjYXNlIHByaW1hcnkgd2lsbCBu b3QgYmUgYWJsZSB0byBrbm93CisJICogZm9yIHdoaWNoIGFsbCBzdGFuZGJ5cyB0byB3YWl0IGZv ci4gRXZlbiBpZiB3ZSBoYXZlIHBoeXNpY2FsLXNsb3RzCisJICogaW5mbywgdGhlcmUgaXMgbm8g d2F5IHRvIGNvbmZpcm0gd2hldGhlciB0aGVyZSBpcyBhbnkgc3RhbmRieQorCSAqIGNvbmZpZ3Vy ZWQgZm9yIHRoZSBrbm93biBwaHlzaWNhbCBzbG90cy4KKwkgKi8KKwlpZiAoc3RyY21wKCpuZXd2 YWwsICIqIikgPT0gMCkKKwl7CisJCUdVQ19jaGVja19lcnJkZXRhaWwoIlwiJXNcIiBpcyBub3Qg YWNjZXB0ZWQgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcyIsCisJCQkJCQkJKm5ld3ZhbCk7CisJCXJl dHVybiBmYWxzZTsKKwl9CisKKwkvKiBOb3cgdmVyaWZ5IGlmIHRoZSBzcGVjaWZpZWQgc2xvdHMg cmVhbGx5IGV4aXN0IGFuZCBoYXZlIGNvcnJlY3QgdHlwZSAqLworCWlmICghdmFsaWRhdGVfc3Rh bmRieV9zbG90cyhuZXd2YWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkqZXh0cmEgPSBndWNfc3Ry ZHVwKEVSUk9SLCAqbmV3dmFsKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogR1VDIGFz c2lnbl9ob29rIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMKKyAqLwordm9pZAorYXNzaWduX3N0YW5k Ynlfc2xvdF9uYW1lcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQoreworCUxpc3QJ ICAgKnN0YW5kYnlfc2xvdHM7CisJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisJY2hhcgkgICAqc3Rh bmRieV9zbG90X25hbWVzX2NweSA9IGV4dHJhOworCisJbGlzdF9mcmVlKHN0YW5kYnlfc2xvdF9u YW1lc19saXN0KTsKKwlzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9IE5JTDsKKworCS8qIE5vIHZh bHVlIGlzIHNwZWNpZmllZCBmb3Igc3RhbmRieV9zbG90X25hbWVzLiAqLworCWlmIChzdGFuZGJ5 X3Nsb3RfbmFtZXNfY3B5ID09IE5VTEwpCisJCXJldHVybjsKKworCWlmICghU3BsaXRJZGVudGlm aWVyU3RyaW5nKHN0YW5kYnlfc2xvdF9uYW1lc19jcHksICcsJywgJnN0YW5kYnlfc2xvdHMpKQor CXsKKwkJLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiBpZiBHVUMgY2hlY2tlZCBjaGVja19zdGFu ZGJ5X3Nsb3RfbmFtZXMuICovCisJCWVsb2coRVJST1IsICJpbnZhbGlkIGxpc3Qgc3ludGF4Iik7 CisJfQorCisJLyoKKwkgKiBTd2l0Y2ggdG8gdGhlIHNhbWUgbWVtb3J5IGNvbnRleHQgdW5kZXIg d2hpY2ggR1VDIHZhcmlhYmxlcyBhcmUKKwkgKiBhbGxvY2F0ZWQgKEdVQ01lbW9yeUNvbnRleHQp LgorCSAqLworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhHZXRNZW1vcnlDaHVua0Nv bnRleHQoc3RhbmRieV9zbG90X25hbWVzX2NweSkpOworCXN0YW5kYnlfc2xvdF9uYW1lc19saXN0 ID0gbGlzdF9jb3B5KHN0YW5kYnlfc2xvdHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj eHQpOworfQorCisvKgorICogUmV0dXJuIGEgY29weSBvZiBzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlz dCBpZiB0aGUgY29weSBmbGFnIGlzIHNldCB0byB0cnVlLAorICogb3RoZXJ3aXNlIHJldHVybiB0 aGUgb3JpZ2luYWwgbGlzdC4KKyAqLworTGlzdCAqCitHZXRTdGFuZGJ5U2xvdExpc3QoYm9vbCBj b3B5KQoreworCS8qCisJICogU2luY2Ugd2UgZG8gbm90IHN1cHBvcnQgc3luY2luZyBzbG90cyB0 byBjYXNjYWRpbmcgc3RhbmRieXMsIHdlIHJldHVybgorCSAqIE5JTCBoZXJlIGlmIHdlIGFyZSBy dW5uaW5nIGluIGEgc3RhbmRieSB0byBpbmRpY2F0ZSB0aGF0IG5vIHN0YW5kYnkKKwkgKiBzbG90 cyBuZWVkIHRvIGJlIHdhaXRlZCBmb3IuCisJICovCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygp KQorCQlyZXR1cm4gTklMOworCisJaWYgKGNvcHkpCisJCXJldHVybiBsaXN0X2NvcHkoc3RhbmRi eV9zbG90X25hbWVzX2xpc3QpOworCWVsc2UKKwkJcmV0dXJuIHN0YW5kYnlfc2xvdF9uYW1lc19s aXN0OworfQorCisvKgorICogUmVsb2FkIHRoZSBjb25maWcgZmlsZSBhbmQgcmVpbml0aWFsaXpl IHRoZSBzdGFuZGJ5IHNsb3QgbGlzdCBpZiB0aGUgR1VDCisgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMg aGFzIGNoYW5nZWQuCisgKi8KK3ZvaWQKK1JlcmVhZENvbmZpZ0FuZFJlSW5pdFNsb3RMaXN0KExp c3QgKipzdGFuZGJ5X3Nsb3RzKQoreworCWNoYXIJICAgKnByZV9zdGFuZGJ5X3Nsb3RfbmFtZXM7 CisKKwkvKgorCSAqIElmIHdlIGFyZSBydW5uaW5nIG9uIGEgc3RhbmRieSwgdGhlcmUgaXMgbm8g bmVlZCB0byByZWxvYWQKKwkgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgc2luY2Ugd2UgZG8gbm90IHN1 cHBvcnQgc3luY2luZyBzbG90cyB0byBjYXNjYWRpbmcKKwkgKiBzdGFuZGJ5cy4KKwkgKi8KKwlp ZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJeworCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lH SFVQKTsKKwkJcmV0dXJuOworCX0KKworCXByZV9zdGFuZGJ5X3Nsb3RfbmFtZXMgPSBwc3RyZHVw KHN0YW5kYnlfc2xvdF9uYW1lcyk7CisKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsK KworCWlmIChzdHJjbXAocHJlX3N0YW5kYnlfc2xvdF9uYW1lcywgc3RhbmRieV9zbG90X25hbWVz KSAhPSAwKQorCXsKKwkJbGlzdF9mcmVlKCpzdGFuZGJ5X3Nsb3RzKTsKKwkJKnN0YW5kYnlfc2xv dHMgPSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisJfQorCisJcGZyZWUocHJlX3N0YW5kYnlf c2xvdF9uYW1lcyk7Cit9CisKKy8qCisgKiBGaWx0ZXIgdGhlIHN0YW5kYnkgc2xvdHMgYmFzZWQg b24gdGhlIHNwZWNpZmllZCBsb2cgc2VxdWVuY2UgbnVtYmVyCisgKiAod2FpdF9mb3JfbHNuKS4K KyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIHBhc3NlZCBzdGFuZGJ5X3Nsb3RzIGxp c3QsIHJlbW92aW5nIGFueSBzbG90cyB0aGF0CisgKiBoYXZlIGFscmVhZHkgY2F1Z2h0IHVwIHRv IG9yIHN1cnBhc3NlZCB0aGUgZ2l2ZW4gd2FpdF9mb3JfbHNuLiBBZGRpdGlvbmFsbHksCisgKiBp dCByZW1vdmVzIHNsb3RzIHRoYXQgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCBkcm9wcGVkLCBvciBj b252ZXJ0ZWQgdG8KKyAqIGxvZ2ljYWwgc2xvdHMuCisgKi8KK3ZvaWQKK0ZpbHRlclN0YW5kYnlT bG90cyhYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwgTGlzdCAqKnN0YW5kYnlfc2xvdHMpCit7CisJ TGlzdENlbGwgICAqbGM7CisJTGlzdAkgICAqc3RhbmRieV9zbG90c19jcHkgPSAqc3RhbmRieV9z bG90czsKKworCWZvcmVhY2gobGMsIHN0YW5kYnlfc2xvdHNfY3B5KQorCXsKKwkJY2hhcgkgICAq bmFtZSA9IGxmaXJzdChsYyk7CisJCWNoYXIJICAgKndhcm5pbmdmbXQgPSBOVUxMOworCQlSZXBs aWNhdGlvblNsb3QgKnNsb3Q7CisKKwkJc2xvdCA9IFNlYXJjaE5hbWVkUmVwbGljYXRpb25TbG90 KG5hbWUsIHRydWUpOworCisJCWlmICghc2xvdCkKKwkJeworCQkJLyoKKwkJCSAqIEl0IG1heSBo YXBwZW4gdGhhdCB0aGUgc2xvdCBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIEdVQwor CQkJICogdmFsdWUgaXMgZHJvcHBlZCwgc28gbGV0J3Mgc2tpcCBvdmVyIGl0LgorCQkJICovCisJ CQl3YXJuaW5nZm10ID0gXygicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGluIHBh cmFtZXRlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZSBp ZiAoU2xvdElzTG9naWNhbChzbG90KSkKKwkJeworCQkJLyoKKwkJCSAqIElmIGEgbG9naWNhbCBz bG90IG5hbWUgaXMgcHJvdmlkZWQgaW4gc3RhbmRieV9zbG90X25hbWVzLCBpc3N1ZQorCQkJICog YSBXQVJOSU5HIGFuZCBza2lwIGl0LiBBbHRob3VnaCBsb2dpY2FsIHNsb3RzIGFyZSBkaXNhbGxv d2VkIGluCisJCQkgKiB0aGUgR1VDIGNoZWNrX2hvb2sodmFsaWRhdGVfc3RhbmRieV9zbG90cyks IGl0IGlzIHN0aWxsCisJCQkgKiBwb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGRyb3AgYW4gZXhpc3Rp bmcgcGh5c2ljYWwgc2xvdCBhbmQKKwkJCSAqIHJlY3JlYXRlIGEgbG9naWNhbCBzbG90IHdpdGgg dGhlIHNhbWUgbmFtZS4gU2luY2UgaXQgaXMKKwkJCSAqIGhhcm1sZXNzLCBhIFdBUk5JTkcgc2hv dWxkIGJlIGVub3VnaCwgbm8gbmVlZCB0byBlcnJvci1vdXQuCisJCQkgKi8KKwkJCXdhcm5pbmdm bXQgPSBfKCJjYW5ub3QgaGF2ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIHBh cmFtZXRlciBcIiVzXCIsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZQorCQl7CisJCQlTcGluTG9j a0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKworCQkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQg IT0gUlNfSU5WQUxfTk9ORSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFNwZWNpZmllZCBwaHlzaWNh bCBzbG90IGhhdmUgYmVlbiBpbnZhbGlkYXRlZCwgc28gbm8gcG9pbnQKKwkJCQkgKiBpbiB3YWl0 aW5nIGZvciBpdC4KKwkJCQkgKi8KKwkJCQl3YXJuaW5nZm10ID0gXygicGh5c2ljYWwgc2xvdCBc IiVzXCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcIiVzXCIgaGFzIGJlZW4gaW52YWxpZGF0ZWQs IGlnbm9yaW5nIik7CisJCQl9CisJCQllbHNlIGlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHNsb3Qt PmRhdGEucmVzdGFydF9sc24pIHx8CisJCQkJCSBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIDwgd2Fp dF9mb3JfbHNuKQorCQkJeworCQkJCWJvb2wJaW5hY3RpdmUgPSAoc2xvdC0+YWN0aXZlX3BpZCA9 PSAwKTsKKworCQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCQkJLyogTG9n IHdhcm5pbmcgaWYgbm8gYWN0aXZlX3BpZCBmb3IgdGhpcyBwaHlzaWNhbCBzbG90ICovCisJCQkJ aWYgKGluYWN0aXZlKQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJZXJybXNnKCJyZXBs aWNhdGlvbiBzbG90IFwiJXNcIiBzcGVjaWZpZWQgaW4gcGFyYW1ldGVyIFwiJXNcIiBkb2VzIG5v dCBoYXZlIGFjdGl2ZV9waWQiLAorCQkJCQkJCQkgICBuYW1lLCAic3RhbmRieV9zbG90X25hbWVz IiksCisJCQkJCQkJZXJyZGV0YWlsKCJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHdhaXRpbmcgb24g dGhlICIKKwkJCQkJCQkJCSAgInN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIFwiJXNcIi4iLCBuYW1l KSwKKwkJCQkJCQllcnJoaW50KCJDb25zaWRlciBzdGFydGluZyBzdGFuZGJ5IGFzc29jaWF0ZWQg d2l0aCAiCisJCQkJCQkJCQkiXCIlc1wiIG9yIGFtZW5kIHN0YW5kYnlfc2xvdF9uYW1lcy4iLCBu YW1lKSk7CisKKwkJCQkvKiBDb250aW51ZSBpZiB0aGUgY3VycmVudCBzbG90IGhhc24ndCBjYXVn aHQgdXAuICovCisJCQkJY29udGludWU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJQXNzZXJ0 KHNsb3QtPmRhdGEucmVzdGFydF9sc24gPj0gd2FpdF9mb3JfbHNuKTsKKwkJCX0KKworCQkJU3Bp bkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCX0KKworCQkvKgorCQkgKiBSZWFjaGluZyBo ZXJlIGluZGljYXRlcyB0aGF0IGVpdGhlciB0aGUgc2xvdCBoYXMgcGFzc2VkIHRoZQorCQkgKiB3 YWl0X2Zvcl9sc24gb3IgdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCB0aGUgc2xvdCB0aGF0IHJlcXVp cmVzIGEKKwkJICogd2FybmluZyB0byBiZSByZXBvcnRlZC4KKwkJICovCisJCWlmICh3YXJuaW5n Zm10KQorCQkJZXJlcG9ydChXQVJOSU5HLCBlcnJtc2cod2FybmluZ2ZtdCwgbmFtZSwgInN0YW5k Ynlfc2xvdF9uYW1lcyIpKTsKKworCQlzdGFuZGJ5X3Nsb3RzX2NweSA9IGZvcmVhY2hfZGVsZXRl X2N1cnJlbnQoc3RhbmRieV9zbG90c19jcHksIGxjKTsKKwl9CisKKwkqc3RhbmRieV9zbG90cyA9 IHN0YW5kYnlfc2xvdHNfY3B5OworfQorCisvKgorICogV2FpdCBmb3IgcGh5c2ljYWwgc3RhbmRi eSB0byBjb25maXJtIHJlY2VpdmluZyB0aGUgZ2l2ZW4gbHNuLgorICoKKyAqIFVzZWQgYnkgbG9n aWNhbCBkZWNvZGluZyBTUUwgZnVuY3Rpb25zIHRoYXQgYWNxdWlyZWQgc2xvdCB3aXRoIGZhaWxv dmVyCisgKiBlbmFibGVkLiBJdCB3YWl0cyBmb3IgcGh5c2ljYWwgc3RhbmRieXMgY29ycmVzcG9u ZGluZyB0byB0aGUgcGh5c2ljYWwgc2xvdHMKKyAqIHNwZWNpZmllZCBpbiB0aGUgc3RhbmRieV9z bG90X25hbWVzIEdVQy4KKyAqLwordm9pZAorV2FpdEZvclN0YW5kYnlDb25maXJtYXRpb24oWExv Z1JlY1B0ciB3YWl0X2Zvcl9sc24pCit7CisJTGlzdAkgICAqc3RhbmRieV9zbG90czsKKworCWlm ICghTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIpCisJCXJldHVybjsKKworCXN0YW5k Ynlfc2xvdHMgPSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisKKwlpZiAoc3RhbmRieV9zbG90 cyA9PSBOSUwpCisJCXJldHVybjsKKworCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAo JldhbFNuZEN0bC0+d2FsX2NvbmZpcm1fcmN2X2N2KTsKKworCWZvciAoOzspCisJeworCQlDSEVD S19GT1JfSU5URVJSVVBUUygpOworCisJCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQorCQl7CisJ CQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJCQlSZXJlYWRDb25maWdBbmRSZUluaXRT bG90TGlzdCgmc3RhbmRieV9zbG90cyk7CisJCX0KKworCQlGaWx0ZXJTdGFuZGJ5U2xvdHMod2Fp dF9mb3JfbHNuLCAmc3RhbmRieV9zbG90cyk7CisKKwkJLyogRXhpdCBpZiBkb25lIHdhaXRpbmcg Zm9yIGV2ZXJ5IHNsb3QuICovCisJCWlmIChzdGFuZGJ5X3Nsb3RzID09IE5JTCkKKwkJCWJyZWFr OworCisJCS8qCisJCSAqIFdlIHdhaXQgZm9yIHRoZSBzbG90cyBpbiB0aGUgc3RhbmRieV9zbG90 X25hbWVzIHRvIGNhdGNoIHVwLCBidXQgd2UKKwkJICogdXNlIGEgdGltZW91dCBzbyB3ZSBjYW4g YWxzbyBjaGVjayB0aGUgaWYgdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBoYXMKKwkJICogYmVlbiBj aGFuZ2VkLgorCQkgKi8KKwkJQ29uZGl0aW9uVmFyaWFibGVUaW1lZFNsZWVwKCZXYWxTbmRDdGwt PndhbF9jb25maXJtX3Jjdl9jdiwgMTAwMCwKKwkJCQkJCQkJCVdBSVRfRVZFTlRfV0FJVF9GT1Jf U1RBTkRCWV9DT05GSVJNQVRJT04pOworCX0KKworCUNvbmRpdGlvblZhcmlhYmxlQ2FuY2VsU2xl ZXAoKTsKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3RmdW5jcy5jCmluZGV4IDFlY2RiNjAwZGQuLmRiYWU3MDIwMzIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3RmdW5jcy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24v ZGVjb2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgogI2luY2x1ZGUgInJl cGxpY2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5j bHVkZSAidXRpbHMvcGdfbHNuLmgiCkBAIC00NzQsNiArNDc1LDggQEAgcGdfcGh5c2ljYWxfcmVw bGljYXRpb25fc2xvdF9hZHZhbmNlKFhMb2dSZWNQdHIgbW92ZXRvKQogCQkgKiBjcmFzaCwgYnV0 IHRoaXMgbWFrZXMgdGhlIGRhdGEgY29uc2lzdGVudCBhZnRlciBhIGNsZWFuIHNodXRkb3duLgog CQkgKi8KIAkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisKKwkJUGh5c2ljYWxXYWtldXBM b2dpY2FsV2FsU25kKCk7CiAJfQogCiAJcmV0dXJuIHJldGxzbjsKQEAgLTUxNCw2ICs1MTcsMTIg QEAgcGdfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoWExvZ1JlY1B0ciBtb3ZldG8p CiAJCQkJCQkJCQkJCSAgIC5zZWdtZW50X2Nsb3NlID0gd2FsX3NlZ21lbnRfY2xvc2UpLAogCQkJ CQkJCQkJTlVMTCwgTlVMTCwgTlVMTCk7CiAKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVk IHN0cmVhbWluZyByZXBsaWNhdGlvbiBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8g Y29uZmlybSByZWNlaXB0IG9mIFdBTCB1cCB0byBtb3ZldG8gbHNuLgorCQkgKi8KKwkJV2FpdEZv clN0YW5kYnlDb25maXJtYXRpb24obW92ZXRvKTsKKwogCQkvKgogCQkgKiBTdGFydCByZWFkaW5n IGF0IHRoZSBzbG90J3MgcmVzdGFydF9sc24sIHdoaWNoIHdlIGtub3cgdG8gcG9pbnQgdG8KIAkJ ICogYSB2YWxpZCByZWNvcmQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGM4 MWE3YTgzNDQuLmFjZjU2MmZlOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBA IC0xMjE5LDcgKzEyMTksNiBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRp b25TbG90Q21kICpjbWQpCiAKIAlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhjbWQsICZyZXNl cnZlX3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSwKIAkJCQkJCQkgICAmZmFpbG92 ZXIpOwotCiAJaWYgKGNtZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQogCXsK IAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLApAQCAtMTcyOCwy NyArMTcyNyw3OCBAQCBXYWxTbmRVcGRhdGVQcm9ncmVzcyhMb2dpY2FsRGVjb2RpbmdDb250ZXh0 ICpjdHgsIFhMb2dSZWNQdHIgbHNuLCBUcmFuc2FjdGlvbklkCiAJCVByb2Nlc3NQZW5kaW5nV3Jp dGVzKCk7CiB9CiAKKy8qCisgKiBXYWtlIHVwIHRoZSBsb2dpY2FsIHdhbHNlbmRlciBwcm9jZXNz ZXMgd2l0aCBmYWlsb3Zlci1lbmFibGVkIHNsb3RzIGlmIHRoZQorICogY3VycmVudGx5IGFjcXVp cmVkIHBoeXNpY2FsIHNsb3QgaXMgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcworICog R1VDLgorICovCit2b2lkCitQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQodm9pZCkKK3sKKwlM aXN0Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzOworCisJQXNzZXJ0KE15UmVw bGljYXRpb25TbG90ICYmIFNsb3RJc1BoeXNpY2FsKE15UmVwbGljYXRpb25TbG90KSk7CisKKwlz dGFuZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KGZhbHNlKTsKKworCWZvcmVhY2gobGMs IHN0YW5kYnlfc2xvdHMpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0KGxjKTsKKworCQlp ZiAoc3RyY21wKG5hbWUsIE5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEubmFtZSkpID09 IDApCisJCXsKKwkJCUNvbmRpdGlvblZhcmlhYmxlQnJvYWRjYXN0KCZXYWxTbmRDdGwtPndhbF9j b25maXJtX3Jjdl9jdik7CisJCQlyZXR1cm47CisJCX0KKwl9Cit9CisKIC8qCiAgKiBXYWl0IHRp bGwgV0FMIDwgbG9jIGlzIGZsdXNoZWQgdG8gZGlzayBzbyBpdCBjYW4gYmUgc2FmZWx5IHNlbnQg dG8gY2xpZW50LgogICoKLSAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1h bGx5IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dAotICogaWYgd2UgZGV0ZWN0IGEgc2h1dGRvd24g cmVxdWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpCi0gKiB3ZSB3aWxsIHJl dHVybiBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgorICogSWYgdGhlIHdhbHNl bmRlciBob2xkcyBhIGxvZ2ljYWwgc2xvdCB0aGF0IGhhcyBlbmFibGVkIGZhaWxvdmVyLCB3ZSBh bHNvCisgKiB3YWl0IGZvciBhbGwgdGhlIHNwZWNpZmllZCBzdHJlYW1pbmcgcmVwbGljYXRpb24g c3RhbmRieSBzZXJ2ZXJzIHRvCisgKiBjb25maXJtIHJlY2VpcHQgb2YgV0FMIHVwIHRvIFJlY2Vu dEZsdXNoUHRyLgorICoKKyAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1h bGx5IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dCBpZiB3ZQorICogZGV0ZWN0IGEgc2h1dGRvd24g cmVxdWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpIHdlIHdpbGwgcmV0dXJu CisgKiBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgogICovCiBzdGF0aWMgWExv Z1JlY1B0cgogV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIHsKIAlpbnQJCQl3YWtl RXZlbnRzOworCWJvb2wJCXdhaXRfZm9yX3N0YW5kYnkgPSBmYWxzZTsKKwl1aW50MzIJCXdhaXRf ZXZlbnQ7CisJTGlzdAkgICAqc3RhbmRieV9zbG90cyA9IE5JTDsKIAlzdGF0aWMgWExvZ1JlY1B0 ciBSZWNlbnRGbHVzaFB0ciA9IEludmFsaWRYTG9nUmVjUHRyOwogCisJaWYgKE15UmVwbGljYXRp b25TbG90LT5kYXRhLmZhaWxvdmVyKQorCQlzdGFuZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RM aXN0KHRydWUpOworCiAJLyoKLQkgKiBGYXN0IHBhdGggdG8gYXZvaWQgYWNxdWlyaW5nIHRoZSBz cGlubG9jayBpbiBjYXNlIHdlIGFscmVhZHkga25vdyB3ZQotCSAqIGhhdmUgZW5vdWdoIFdBTCBh dmFpbGFibGUuIFRoaXMgaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nIGlmIHdlJ3JlCi0JICog ZmFyIGJlaGluZC4KKwkgKiBDaGVjayBpZiBhbGwgdGhlIHN0YW5kYnkgc2VydmVycyBoYXZlIGNv bmZpcm1lZCByZWNlaXB0IG9mIFdBTCB1cCB0bworCSAqIFJlY2VudEZsdXNoUHRyIGV2ZW4gd2hl biB3ZSBhbHJlYWR5IGtub3cgd2UgaGF2ZSBlbm91Z2ggV0FMIGF2YWlsYWJsZS4KKwkgKgorCSAq IE5vdGUgdGhhdCB3ZSBjYW5ub3QgZGlyZWN0bHkgcmV0dXJuIHdpdGhvdXQgY2hlY2tpbmcgdGhl IHN0YXR1cyBvZgorCSAqIHN0YW5kYnkgc2VydmVycyBiZWNhdXNlIHRoZSBzdGFuZGJ5X3Nsb3Rf bmFtZXMgbWF5IGhhdmUgY2hhbmdlZCwgd2hpY2gKKwkgKiBtZWFucyB0aGVyZSBjb3VsZCBiZSBu ZXcgc3RhbmRieSBzbG90cyBpbiB0aGUgbGlzdCB0aGF0IGhhdmUgbm90IHlldAorCSAqIGNhdWdo dCB1cCB0byB0aGUgUmVjZW50Rmx1c2hQdHIuCiAJICovCi0JaWYgKFJlY2VudEZsdXNoUHRyICE9 IEludmFsaWRYTG9nUmVjUHRyICYmCi0JCWxvYyA8PSBSZWNlbnRGbHVzaFB0cikKLQkJcmV0dXJu IFJlY2VudEZsdXNoUHRyOworCWlmICghWExvZ1JlY1B0cklzSW52YWxpZChSZWNlbnRGbHVzaFB0 cikgJiYgbG9jIDw9IFJlY2VudEZsdXNoUHRyKQorCXsKKwkJRmlsdGVyU3RhbmRieVNsb3RzKFJl Y2VudEZsdXNoUHRyLCAmc3RhbmRieV9zbG90cyk7CisKKwkJLyoKKwkJICogRmFzdCBwYXRoIHRv IGF2b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cKKwkJ ICogd2UgaGF2ZSBlbm91Z2ggV0FMIGF2YWlsYWJsZSBhbmQgYWxsIHRoZSBzdGFuZGJ5IHNlcnZl cnMgaGF2ZQorCQkgKiBjb25maXJtZWQgcmVjZWlwdCBvZiBXQUwgdXAgdG8gUmVjZW50Rmx1c2hQ dHIuIFRoaXMgaXMgcGFydGljdWxhcmx5CisJCSAqIGludGVyZXN0aW5nIGlmIHdlJ3JlIGZhciBi ZWhpbmQuCisJCSAqLworCQlpZiAoc3RhbmRieV9zbG90cyA9PSBOSUwpCisJCQlyZXR1cm4gUmVj ZW50Rmx1c2hQdHI7CisJfQogCiAJLyogR2V0IGEgbW9yZSByZWNlbnQgZmx1c2ggcG9pbnRlci4g Ki8KIAlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQpAQCAtMTc2OSw3ICsxODE5LDcgQEAgV2Fs U25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcp CiAJCXsKIAkJCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKLQkJCVByb2Nlc3NDb25maWdG aWxlKFBHQ19TSUdIVVApOworCQkJUmVyZWFkQ29uZmlnQW5kUmVJbml0U2xvdExpc3QoJnN0YW5k Ynlfc2xvdHMpOwogCQkJU3luY1JlcEluaXRDb25maWcoKTsKIAkJfQogCkBAIC0xNzg0LDggKzE4 MzQsMTggQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKGdvdF9TVE9Q UElORykKIAkJCVhMb2dCYWNrZ3JvdW5kRmx1c2goKTsKIAorCQkvKgorCQkgKiBVcGRhdGUgdGhl IHN0YW5kYnkgc2xvdHMgdGhhdCBoYXZlIG5vdCB5ZXQgY2F1Z2h0IHVwIHRvIHRoZSBmbHVzaGVk CisJCSAqIHBvc2l0aW9uLiBJdCBpcyBnb29kIHRvIHdhaXQgdXAgdG8gUmVjZW50Rmx1c2hQdHIg YW5kIHRoZW4gbGV0IGl0CisJCSAqIHNlbmQgdGhlIGNoYW5nZXMgdG8gbG9naWNhbCBzdWJzY3Jp YmVycyBvbmUgYnkgb25lIHdoaWNoIGFyZQorCQkgKiBhbHJlYWR5IGNvdmVyZWQgaW4gUmVjZW50 Rmx1c2hQdHIgd2l0aG91dCBuZWVkaW5nIHRvIHdhaXQgb24gZXZlcnkKKwkJICogY2hhbmdlIGZv ciBzdGFuZGJ5IGNvbmZpcm1hdGlvbi4KKwkJICovCisJCWlmICh3YWl0X2Zvcl9zdGFuZGJ5KQor CQkJRmlsdGVyU3RhbmRieVNsb3RzKFJlY2VudEZsdXNoUHRyLCAmc3RhbmRieV9zbG90cyk7CisK IAkJLyogVXBkYXRlIG91ciBpZGVhIG9mIHRoZSBjdXJyZW50bHkgZmx1c2hlZCBwb3NpdGlvbi4g Ki8KLQkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJZWxzZSBpZiAoIVJlY292ZXJ5SW5Q cm9ncmVzcygpKQogCQkJUmVjZW50Rmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKIAkJ ZWxzZQogCQkJUmVjZW50Rmx1c2hQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOwpAQCAt MTgxMyw5ICsxODczLDE4IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCQkh d2FpdGluZ19mb3JfcGluZ19yZXNwb25zZSkKIAkJCVdhbFNuZEtlZXBhbGl2ZShmYWxzZSwgSW52 YWxpZFhMb2dSZWNQdHIpOwogCi0JCS8qIGNoZWNrIHdoZXRoZXIgd2UncmUgZG9uZSAqLwotCQlp ZiAobG9jIDw9IFJlY2VudEZsdXNoUHRyKQorCQlpZiAobG9jID4gUmVjZW50Rmx1c2hQdHIpCisJ CQl3YWl0X2V2ZW50ID0gV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dBSVRfRk9SX1dBTDsKKwkJZWxz ZSBpZiAoc3RhbmRieV9zbG90cykKKwkJeworCQkJd2FpdF9ldmVudCA9IFdBSVRfRVZFTlRfV0FJ VF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT047CisJCQl3YWl0X2Zvcl9zdGFuZGJ5ID0gdHJ1ZTsK KwkJfQorCQllbHNlCisJCXsKKwkJCS8qIEFscmVhZHkgY2F1Z2h0IHVwIGFuZCBkb2Vzbid0IG5l ZWQgdG8gd2FpdCBmb3Igc3RhbmRieV9zbG90cy4gKi8KIAkJCWJyZWFrOworCQl9CiAKIAkJLyog V2FpdGluZyBmb3IgbmV3IFdBTC4gU2luY2Ugd2UgbmVlZCB0byB3YWl0LCB3ZSdyZSBub3cgY2F1 Z2h0IHVwLiAqLwogCQlXYWxTbmRDYXVnaHRVcCA9IHRydWU7CkBAIC0xODU1LDkgKzE5MjQsMTEg QEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKHBxX2lzX3NlbmRfcGVu ZGluZygpKQogCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJVEVBQkxFOwogCi0JCVdhbFNu ZFdhaXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCBXQUlUX0VWRU5UX1dBTF9TRU5ERVJfV0FJVF9G T1JfV0FMKTsKKwkJV2FsU25kV2FpdCh3YWtlRXZlbnRzLCBzbGVlcHRpbWUsIHdhaXRfZXZlbnQp OwogCX0KIAorCWxpc3RfZnJlZShzdGFuZGJ5X3Nsb3RzKTsKKwogCS8qIHJlYWN0aXZhdGUgbGF0 Y2ggc28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51ZSAqLwogCVNldExhdGNoKE15TGF0Y2gp OwogCXJldHVybiBSZWNlbnRGbHVzaFB0cjsKQEAgLTIyNjUsNiArMjMzNiw3IEBAIFBoeXNpY2Fs Q29uZmlybVJlY2VpdmVkTG9jYXRpb24oWExvZ1JlY1B0ciBsc24pCiAJewogCQlSZXBsaWNhdGlv blNsb3RNYXJrRGlydHkoKTsKIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigp OworCQlQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQoKTsKIAl9CiAKIAkvKgpAQCAtMzUyNyw2 ICszNTk5LDcgQEAgV2FsU25kU2htZW1Jbml0KHZvaWQpCiAKIAkJQ29uZGl0aW9uVmFyaWFibGVJ bml0KCZXYWxTbmRDdGwtPndhbF9mbHVzaF9jdik7CiAJCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgm V2FsU25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKKwkJQ29uZGl0aW9uVmFyaWFibGVJbml0KCZXYWxT bmRDdGwtPndhbF9jb25maXJtX3Jjdl9jdik7CiAJfQogfQogCkBAIC0zNTk2LDggKzM2NjksMTQg QEAgV2FsU25kV2FpdCh1aW50MzIgc29ja2V0X2V2ZW50cywgbG9uZyB0aW1lb3V0LCB1aW50MzIg d2FpdF9ldmVudCkKIAkgKgogCSAqIEFuZCwgd2UgdXNlIHNlcGFyYXRlIHNoYXJlZCBtZW1vcnkg Q1ZzIGZvciBwaHlzaWNhbCBhbmQgbG9naWNhbAogCSAqIHdhbHNlbmRlcnMgZm9yIHNlbGVjdGl2 ZSB3YWtlIHVwcywgc2VlIFdhbFNuZFdha2V1cCgpIGZvciBtb3JlIGRldGFpbHMuCisJICoKKwkg KiBJZiB0aGUgd2FpdCBldmVudCBpcyBXQUlUX0ZPUl9TVEFOREJZX0NPTkZJUk1BVElPTiwgd2Fp dCBvbiBhbm90aGVyIENWCisJICogdW50aWwgYXdha2VuZWQgYnkgcGh5c2ljYWwgd2Fsc2VuZGVy cyBhZnRlciB0aGUgd2FscmVjZWl2ZXIgY29uZmlybXMgdGhlCisJICogcmVjZWlwdCBvZiB0aGUg TFNOLgogCSAqLwotCWlmIChNeVdhbFNuZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJ Q0FMKQorCWlmICh3YWl0X2V2ZW50ID09IFdBSVRfRVZFTlRfV0FJVF9GT1JfU1RBTkRCWV9DT05G SVJNQVRJT04pCisJCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJldhbFNuZEN0bC0+ d2FsX2NvbmZpcm1fcmN2X2N2KTsKKwllbHNlIGlmIChNeVdhbFNuZC0+a2luZCA9PSBSRVBMSUNB VElPTl9LSU5EX1BIWVNJQ0FMKQogCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZX YWxTbmRDdGwtPndhbF9mbHVzaF9jdik7CiAJZWxzZSBpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQ TElDQVRJT05fS0lORF9MT0dJQ0FMKQogCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVw KCZXYWxTbmRDdGwtPndhbF9yZXBsYXlfY3YpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS93YWl0X2V2ZW50X25hbWVzLnR4dAppbmRleCAwODc5YmFiNTdlLi5mZWFkMzE3NDhlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4 dAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dApA QCAtNzgsNiArNzgsNyBAQCBHU1NfT1BFTl9TRVJWRVIJIldhaXRpbmcgdG8gcmVhZCBkYXRhIGZy b20gdGhlIGNsaWVudCB3aGlsZSBlc3RhYmxpc2hpbmcgYSBHU1NBUAogTElCUFFXQUxSRUNFSVZF Ul9DT05ORUNUCSJXYWl0aW5nIGluIFdBTCByZWNlaXZlciB0byBlc3RhYmxpc2ggY29ubmVjdGlv biB0byByZW1vdGUgc2VydmVyLiIKIExJQlBRV0FMUkVDRUlWRVJfUkVDRUlWRQkiV2FpdGluZyBp biBXQUwgcmVjZWl2ZXIgdG8gcmVjZWl2ZSBkYXRhIGZyb20gcmVtb3RlIHNlcnZlci4iCiBTU0xf T1BFTl9TRVJWRVIJIldhaXRpbmcgZm9yIFNTTCB3aGlsZSBhdHRlbXB0aW5nIGNvbm5lY3Rpb24u IgorV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT04JIldhaXRpbmcgZm9yIHRoZSBXQUwgdG8g YmUgcmVjZWl2ZWQgYnkgcGh5c2ljYWwgc3RhbmRieS4iCiBXQUxfU0VOREVSX1dBSVRfRk9SX1dB TAkiV2FpdGluZyBmb3IgV0FMIHRvIGJlIGZsdXNoZWQgaW4gV0FMIHNlbmRlciBwcm9jZXNzLiIK IFdBTF9TRU5ERVJfV1JJVEVfREFUQQkiV2FpdGluZyBmb3IgYW55IGFjdGl2aXR5IHdoZW4gcHJv Y2Vzc2luZyByZXBsaWVzIGZyb20gV0FMIHJlY2VpdmVyIGluIFdBTCBzZW5kZXIgcHJvY2Vzcy4i CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggMGY1ZWM2M2RlMS4uMmZmMDM4 NzllZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTQ2MTgsNiArNDYxOCwy MCBAQCBzdHJ1Y3QgY29uZmlnX3N0cmluZyBDb25maWd1cmVOYW1lc1N0cmluZ1tdID0KIAkJY2hl Y2tfZGVidWdfaW9fZGlyZWN0LCBhc3NpZ25fZGVidWdfaW9fZGlyZWN0LCBOVUxMCiAJfSwKIAor CXsKKwkJeyJzdGFuZGJ5X3Nsb3RfbmFtZXMiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9QUklN QVJZLAorCQkJZ2V0dGV4dF9ub29wKCJMaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRi eSBzZXJ2ZXIgc2xvdCAiCisJCQkJCQkgIm5hbWVzIHRoYXQgbG9naWNhbCBXQUwgc2VuZGVyIHBy b2Nlc3NlcyB3aWxsIHdhaXQgZm9yLiIpLAorCQkJZ2V0dGV4dF9ub29wKCJEZWNvZGVkIGNoYW5n ZXMgYXJlIHNlbnQgb3V0IHRvIHBsdWdpbnMgYnkgbG9naWNhbCAiCisJCQkJCQkgIldBTCBzZW5k ZXIgcHJvY2Vzc2VzIG9ubHkgYWZ0ZXIgc3BlY2lmaWVkICIKKwkJCQkJCSAicmVwbGljYXRpb24g c2xvdHMgY29uZmlybSByZWNlaXZpbmcgV0FMLiIpLAorCQkJR1VDX0xJU1RfSU5QVVQgfCBHVUNf TElTVF9RVU9URQorCQl9LAorCQkmc3RhbmRieV9zbG90X25hbWVzLAorCQkiIiwKKwkJY2hlY2tf c3RhbmRieV9zbG90X25hbWVzLCBhc3NpZ25fc3RhbmRieV9zbG90X25hbWVzLCBOVUxMCisJfSwK KwogCS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5V TEx9LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggNjgzMGY3ZDE2Yi4uMGM3YjYxMTdlMCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxl CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAt MzM0LDYgKzMzNCw4IEBACiAJCQkJIyBtZXRob2QgdG8gY2hvb3NlIHN5bmMgc3RhbmRieXMsIG51 bWJlciBvZiBzeW5jIHN0YW5kYnlzLAogCQkJCSMgYW5kIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9m IGFwcGxpY2F0aW9uX25hbWUKIAkJCQkjIGZyb20gc3RhbmRieShzKTsgJyonID0gYWxsCisjc3Rh bmRieV9zbG90X25hbWVzID0gJycgIyBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBzZXJ2 ZXIgc2xvdCBuYW1lcyB0aGF0CisJCQkJIyBsb2dpY2FsIHdhbHNlbmRlciBwcm9jZXNzZXMgd2ls bCB3YWl0IGZvcgogCiAjIC0gU3RhbmRieSBTZXJ2ZXJzIC0KIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o CmluZGV4IGY4MWJlZjllNDIuLmVlZjlmMjVjNDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAg LTIyOSw2ICsyMjksNyBAQCBleHRlcm4gUEdETExJTVBPUlQgUmVwbGljYXRpb25TbG90ICpNeVJl cGxpY2F0aW9uU2xvdDsKIAogLyogR1VDcyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhf cmVwbGljYXRpb25fc2xvdHM7CitleHRlcm4gUEdETExJTVBPUlQgY2hhciAqc3RhbmRieV9zbG90 X25hbWVzOwogCiAvKiBzaG1lbSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgKi8KIGV4dGVybiBT aXplIFJlcGxpY2F0aW9uU2xvdHNTaG1lbVNpemUodm9pZCk7CkBAIC0yNzUsNCArMjc2LDEwIEBA IGV4dGVybiB2b2lkIENoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKGJvb2wgaXNfc2h1dGRvd24p OwogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UmVxdWlyZW1lbnRzKHZvaWQpOwogZXh0ZXJuIHZvaWQg Q2hlY2tTbG90UGVybWlzc2lvbnModm9pZCk7CiAKK2V4dGVybiBMaXN0ICpHZXRTdGFuZGJ5U2xv dExpc3QoYm9vbCBjb3B5KTsKK2V4dGVybiB2b2lkIFdhaXRGb3JTdGFuZGJ5Q29uZmlybWF0aW9u KFhMb2dSZWNQdHIgd2FpdF9mb3JfbHNuKTsKK2V4dGVybiB2b2lkIEZpbHRlclN0YW5kYnlTbG90 cyhYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwKKwkJCQkJCQkJCSBMaXN0ICoqc3RhbmRieV9zbG90 cyk7CitleHRlcm4gdm9pZCBSZXJlYWRDb25maWdBbmRSZUluaXRTbG90TGlzdChMaXN0ICoqc3Rh bmRieV9zbG90cyk7CisKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmgKaW5kZXggMWI1OGQ1MGIzYi4uOWE0MmIwMWY5YSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgZXh0ZXJuIHZvaWQgV2FsU25k SW5pdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQgV2FsU25kV2FpdFN0b3BwaW5nKHZvaWQp OwogZXh0ZXJuIHZvaWQgSGFuZGxlV2FsU25kSW5pdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZv aWQgV2FsU25kUnFzdEZpbGVSZWxvYWQodm9pZCk7CitleHRlcm4gdm9pZCBQaHlzaWNhbFdha2V1 cExvZ2ljYWxXYWxTbmQodm9pZCk7CiAKIC8qCiAgKiBSZW1lbWJlciB0aGF0IHdlIHdhbnQgdG8g d2FrZXVwIHdhbHNlbmRlcnMgbGF0ZXIKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5k ZXJfcHJpdmF0ZS5oCmluZGV4IDMxMTNlOWVhNDcuLjBmOTYyYjBjNzIgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgKKysrIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaApAQCAtMTEzLDYgKzExMywxMyBAQCB0 eXBlZGVmIHN0cnVjdAogCUNvbmRpdGlvblZhcmlhYmxlIHdhbF9mbHVzaF9jdjsKIAlDb25kaXRp b25WYXJpYWJsZSB3YWxfcmVwbGF5X2N2OwogCisJLyoKKwkgKiBVc2VkIGJ5IHBoeXNpY2FsIHdh bHNlbmRlcnMgaG9sZGluZyBzbG90cyBzcGVjaWZpZWQgaW4KKwkgKiBzdGFuZGJ5X3Nsb3RfbmFt ZXMgdG8gd2FrZSB1cCBsb2dpY2FsIHdhbHNlbmRlcnMgaG9sZGluZworCSAqIGZhaWxvdmVyLWVu YWJsZWQgc2xvdHMgd2hlbiBhIHdhbHJlY2VpdmVyIGNvbmZpcm1zIHRoZSByZWNlaXB0IG9mIExT Ti4KKwkgKi8KKwlDb25kaXRpb25WYXJpYWJsZSB3YWxfY29uZmlybV9yY3ZfY3Y7CisKIAlXYWxT bmQJCXdhbHNuZHNbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gV2FsU25kQ3RsRGF0YTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmggYi9zcmMvaW5jbHVkZS91 dGlscy9ndWNfaG9va3MuaAppbmRleCA1MzAwYzQ0ZjNiLi40NjQ5OTZiNGYwIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy9ndWNfaG9va3MuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9n dWNfaG9va3MuaApAQCAtMTYyLDUgKzE2Miw4IEBAIGV4dGVybiBib29sIGNoZWNrX3dhbF9jb25z aXN0ZW5jeV9jaGVja2luZyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsCiBleHRlcm4gdm9p ZCBhc3NpZ25fd2FsX2NvbnNpc3RlbmN5X2NoZWNraW5nKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9p ZCAqZXh0cmEpOwogZXh0ZXJuIGJvb2wgY2hlY2tfd2FsX3NlZ21lbnRfc2l6ZShpbnQgKm5ld3Zh bCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKIGV4dGVybiB2b2lkIGFzc2lnbl93 YWxfc3luY19tZXRob2QoaW50IG5ld193YWxfc3luY19tZXRob2QsIHZvaWQgKmV4dHJhKTsKK2V4 dGVybiBib29sIGNoZWNrX3N0YW5kYnlfc2xvdF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoq ZXh0cmEsCisJCQkJCQkJCQkgR3VjU291cmNlIHNvdXJjZSk7CitleHRlcm4gdm9pZCBhc3NpZ25f c3RhbmRieV9zbG90X25hbWVzKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpOwogCiAj ZW5kaWYJCQkJCQkJLyogR1VDX0hPT0tTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292 ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKaW5kZXggODhm YjAzMDZmNS4uNDE1MmMwNzMxOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24u YnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKQEAgLTQ1LDYgKzQ1LDcg QEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDM3X2ludmFsaWRfZGF0YWJhc2UucGwnLAogICAgICAg J3QvMDM4X3NhdmVfbG9naWNhbF9zbG90c19zaHV0ZG93bi5wbCcsCiAgICAgICAndC8wMzlfZW5k X29mX3dhbC5wbCcsCisgICAgICAndC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBs JywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMDZf bG9naWNhbF9kZWNvZGluZy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVj b2RpbmcucGwKaW5kZXggNWM3YjRjYTVlMy4uODVmMDE5Nzc0YyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbAorKysgYi9zcmMvdGVzdC9yZWNv dmVyeS90LzAwNl9sb2dpY2FsX2RlY29kaW5nLnBsCkBAIC0xNzIsOSArMTcyLDEwIEBAIGlzKCRu b2RlX3ByaW1hcnktPnNsb3QoJ290aGVyZGJfc2xvdCcpLT57J3Nsb3RfbmFtZSd9LAogCXVuZGVm LCAnbG9naWNhbCBzbG90IHdhcyBhY3R1YWxseSBkcm9wcGVkIHdpdGggREInKTsKIAogIyBUZXN0 IGxvZ2ljYWwgc2xvdCBhZHZhbmNpbmcgYW5kIGl0cyBkdXJhYmlsaXR5LgorIyBQYXNzIGZhaWxv dmVyPXRydWUgKGxhc3QtYXJnKSwgaXQgc2hvdWxkIG5vdCBoYXZlIGFueSBpbXBhY3Qgb24gYWR2 YW5jaW5nLgogbXkgJGxvZ2ljYWxfc2xvdCA9ICdsb2dpY2FsX3Nsb3QnOwogJG5vZGVfcHJpbWFy eS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBs aWNhdGlvbl9zbG90KCckbG9naWNhbF9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSk7Igor CSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJGxvZ2ljYWxfc2xv dCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlLCB0cnVlKTsiCiApOwogJG5vZGVfcHJp bWFyeS0+cHNxbCgKIAkncG9zdGdyZXMnLCAiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVy eS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgYi9zcmMvdGVzdC9yZWNvdmVy eS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKaW5kZXggODRkZTZlYmYzNy4u MTdhMjBiODQ2YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9m YWlsb3Zlcl9zbG90c19zeW5jLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5k YnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApAQCAtODcsMTcgKzg3LDMwIEBAIGlzKCAkcHVibGlz aGVyLT5zYWZlX3BzcWwoCiAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIEVOQUJMRSIpOwogCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUZXN0IGxvZ2ljYWwgZmFp bG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkKLSMgQ29uZmlndXJlIHN0YW5kYnkxIHRvIHJlcGxp Y2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNhbCBzbG90cyBjb25maWd1cmVkCi0jIGZvciBmYWls b3ZlciBvbiB0aGUgcHJpbWFyeQorIyBUZXN0IHByaW1hcnkgZGlzYWxsb3dpbmcgc3BlY2lmaWVk IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgZ2V0dGluZyBhaGVhZCBvZgorIyBzcGVjaWZpZWQg cGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdHMuIEl0IHVzZXMgdGhlIGZvbGxvd2luZyBzZXQgdXA6 CiAjCi0jICAgICAgICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4gc3Vi c2NyaWJlcjEgKGNvbm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKLSMgcHJpbWFyeSAt LS0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotIyAgICAgICAgICAgICAgcGh5c2ljYWwg c2xvdCBzYjFfc2xvdC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVhbWlu ZyByZXBsaWNhdGlvbikKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMJCQkJfCAtLS0tPiBz dGFuZGJ5MSAocHJpbWFyeV9zbG90X25hbWUgPSBzYjFfc2xvdCkKKyMJCQkJfCAtLS0tPiBzdGFu ZGJ5MiAocHJpbWFyeV9zbG90X25hbWUgPSBzYjJfc2xvdCkKKyMgcHJpbWFyeSAtLS0tLQl8Cisj CQkJCXwgLS0tLT4gc3Vic2NyaWJlcjEgKGZhaWxvdmVyID0gdHJ1ZSkKKyMJCQkJfCAtLS0tPiBz dWJzY3JpYmVyMiAoZmFpbG92ZXIgPSBmYWxzZSkKKyMKKyMgc3RhbmRieV9zbG90X25hbWVzID0g J3NiMV9zbG90JworIworIyBTZXQgdXAgaXMgY29uZmlndXJlZCBpbiBzdWNoIGEgd2F5IHRoYXQg dGhlIGxvZ2ljYWwgc2xvdCBvZiBzdWJzY3JpYmVyMSBpcworIyBlbmFibGVkIGZhaWxvdmVyLCB0 aHVzIGl0IHdpbGwgd2FpdCBmb3IgdGhlIHBoeXNpY2FsIHNsb3Qgb2YKKyMgc3RhbmRieTEoc2Ix X3Nsb3QpIHRvIGNhdGNoIHVwIGJlZm9yZSBzZW5kaW5nIGRlY29kZWQgY2hhbmdlcyB0byBzdWJz Y3JpYmVyMS4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCiAKKyMgQ3JlYXRlIHByaW1hcnkKIG15ICRwcmltYXJ5ID0gJHB1Ymxpc2hlcjsKKworJHBy aW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVw bGljYXRpb25fc2xvdCgnc2IxX3Nsb3QnKTt9KTsKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3Jlcycs CisJcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMl9zbG90 Jyk7fSk7CisKIG15ICRiYWNrdXBfbmFtZSA9ICdiYWNrdXAnOwogJHByaW1hcnktPmJhY2t1cCgk YmFja3VwX25hbWUpOwogCkBAIC0xMDcsMTkgKzEyMCwxOTkgQEAgJHN0YW5kYnkxLT5pbml0X2Zy b21fYmFja3VwKAogCSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCiAJaGFzX3N0cmVhbWluZyA9PiAx LAogCWhhc19yZXN0b3JpbmcgPT4gMSk7Ciskc3RhbmRieTEtPmFwcGVuZF9jb25mKAorCSdwb3N0 Z3Jlc3FsLmNvbmYnLCBxcSgKK3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMV9zbG90JworKSk7Cisk c3RhbmRieTEtPnN0YXJ0OworJHByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRzdGFu ZGJ5MSk7CisKKyMgQ3JlYXRlIGFub3RoZXIgc3RhbmRieQorbXkgJHN0YW5kYnkyID0gUG9zdGdy ZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5MicpOworJHN0YW5kYnkyLT5pbml0X2Zy b21fYmFja3VwKAorCSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAx LAorCWhhc19yZXN0b3JpbmcgPT4gMSk7Ciskc3RhbmRieTItPmFwcGVuZF9jb25mKAorCSdwb3N0 Z3Jlc3FsLmNvbmYnLCBxcSgKK3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMl9zbG90JworKSk7Cisk c3RhbmRieTItPnN0YXJ0OworJHByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRzdGFu ZGJ5Mik7CisKKyMgQ29uZmlndXJlIHByaW1hcnkgdG8gZGlzYWxsb3cgYW55IGxvZ2ljYWwgc2xv dHMgdGhhdCBlbmFibGVkIGZhaWxvdmVyIGZyb20KKyMgZ2V0dGluZyBhaGVhZCBvZiBzcGVjaWZp ZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCAoc2IxX3Nsb3QpLgorJHByaW1hcnktPmFwcGVu ZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3N0YW5kYnlfc2xvdF9uYW1lcyA9ICdz YjFfc2xvdCcKKykpOworJHByaW1hcnktPnJlbG9hZDsKKworJHByaW1hcnktPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsiKTsK KworIyBDcmVhdGUgYSB0YWJsZSBhbmQgcmVmcmVzaCB0aGUgcHVibGljYXRpb24KKyRzdWJzY3Jp YmVyMS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJfaW50 IChhIGludCBQUklNQVJZIEtFWSk7CisJQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIx IFJFRlJFU0ggUFVCTElDQVRJT04gV0lUSCAoY29weV9kYXRhID0gZmFsc2UpOworXSk7CisKKyMg Q3JlYXRlIGFub3RoZXIgc3Vic2NyaWJlciBub2RlIHdpdGhvdXQgZW5hYmxpbmcgZmFpbG92ZXIs IHdhaXQgZm9yIHN5bmMgdG8KKyMgY29tcGxldGUKK215ICRzdWJzY3JpYmVyMiA9IFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjInKTsKKyRzdWJzY3JpYmVyMi0+aW5p dDsKKyRzdWJzY3JpYmVyMi0+c3RhcnQ7Ciskc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgKKwkncG9z dGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkpOwor CUNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjIgQ09OTkVDVElPTiAnJHB1Ymxpc2hl cl9jb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9IGxz dWIyX3Nsb3QsIGNvcHlfZGF0YSA9IGZhbHNlKTsKK10pOwogCisjIFN0b3AgdGhlIHN0YW5kYnkg YXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBz bworIyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFu Z2VzIHVudGlsIHRoZSBzdGFuZGJ5CisjIGNvbWVzIHVwLgorJHN0YW5kYnkxLT5zdG9wOworCisj IENyZWF0ZSBzb21lIGRhdGEgb24gdGhlIHByaW1hcnkKK215ICRwcmltYXJ5X3Jvd19jb3VudCA9 IDEwOworJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWJf aW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgJHByaW1hcnlfcm93X2NvdW50KTsiKTsKKwor IyBXYWl0IGZvciB0aGUgc3RhbmRieSB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcgZ2V0cyB0aGUgZGF0 YSBmcm9tIHByaW1hcnkKKyRwcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRi eTIpOworbXkgJHJlc3VsdCA9ICRzdGFuZGJ5Mi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7Citpcygk cmVzdWx0LCAndCcsICJzdGFuZGJ5MiBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgV2Fp dCBmb3IgdGhlIHN1YnNjcmlwdGlvbiB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcgYW5kIGlzIG5vdCBl bmFibGVkIGZvciBmYWlsb3Zlci4KKyMgSXQgZ2V0cyB0aGUgZGF0YSBmcm9tIHByaW1hcnkgd2l0 aG91dCB3YWl0aW5nIGZvciBhbnkgc3RhbmRieXMuCiskcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdyZWdyZXNzX215c3ViMicpOworJHJlc3VsdCA9ICRzdWJzY3JpYmVyMi0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9N IHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsICJzdWJzY3JpYmVyMiBnZXRzIGRhdGEgZnJv bSBwcmltYXJ5Iik7CisKKyMgVGhlIHN1YnNjcmlwdGlvbiB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcg YW5kIGlzIGVuYWJsZWQgZm9yIGZhaWxvdmVyCisjIGRvZXNuJ3QgZ2V0IHRoZSBkYXRhIGZyb20g cHJpbWFyeSBhbmQga2VlcHMgd2FpdGluZyBmb3IgdGhlCisjIHN0YW5kYnkgc3BlY2lmaWVkIGlu IHN0YW5kYnlfc2xvdF9uYW1lcy4KKyRyZXN1bHQgPQorICAkc3Vic2NyaWJlcjEtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHRhYl9pbnQ7Iik7Citpcygk cmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIxIGRvZXNuJ3QgZ2V0IGRhdGEgZnJvbSBwcmltYXJ5 IHVudGlsIHN0YW5kYnkxIGFja25vd2xlZGdlcyBjaGFuZ2VzIgorKTsKKworIyBTdGFydCB0aGUg c3RhbmRieSBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIGFuZCB3YWl0IGZvciBpdCB0 byBjYXRjaAorIyB1cCB3aXRoIHRoZSBwcmltYXJ5LgorJHN0YW5kYnkxLT5zdGFydDsKKyRwcmlt YXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTEpOworJHJlc3VsdCA9ICRzdGFu ZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5 X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsICJzdGFuZGJ5MSBn ZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgTm93IHRoYXQgdGhlIHN0YW5kYnkgc3BlY2lm aWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBpcyB1cCBhbmQgcnVubmluZywKKyMgcHJpbWFyeSBt dXN0IHNlbmQgdGhlIGRlY29kZWQgY2hhbmdlcyB0byBzdWJzY3JpcHRpb24gZW5hYmxlZCBmb3Ig ZmFpbG92ZXIKKyMgV2hpbGUgdGhlIHN0YW5kYnkgd2FzIGRvd24sIHRoaXMgc3Vic2NyaWJlciBk aWRuJ3QgcmVjZWl2ZSBhbnkgZGF0YSBmcm9tCisjIHByaW1hcnkgaS5lLiB0aGUgcHJpbWFyeSBk aWRuJ3QgYWxsb3cgaXQgdG8gZ28gYWhlYWQgb2Ygc3RhbmRieS4KKyRwdWJsaXNoZXItPndhaXRf Zm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CiskcmVzdWx0ID0gJHN1YnNjcmliZXIxLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopID0gJHByaW1hcnlfcm93X2Nv dW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0JywKKwkic3Vic2NyaWJlcjEgZ2V0 cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBzdGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hhbmdlcyIp OworCisjIFN0b3AgdGhlIHN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcGh5 c2ljYWwgcmVwbGljYXRpb24gc2xvdCBzbworIyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFuZ2VzIHVudGlsIHRoZSBzdGFuZGJ5CisjIHNsb3QncyBy ZXN0YXJ0X2xzbiBpcyBhZHZhbmNlZCBvciB0aGUgc2xvdCBpcyByZW1vdmVkIGZyb20gdGhlCisj IHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0LgorJHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJUUlVOQ0FURSB0YWJfaW50OyIpOworJHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn cmVncmVzc19teXN1YjEnKTsKKyRzdGFuZGJ5MS0+c3RvcDsKKworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVyaWZ5IHRoYXQgd2hlbiB1c2lu ZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgdG8gY29uc3VtZSBjaGFuZ2VzIGZyb20gYQor IyBsb2dpY2FsIHNsb3Qgd2l0aCBmYWlsb3ZlciBlbmFibGVkLCBpdCB3aWxsIGFsc28gd2FpdCBm b3IgdGhlIHNsb3RzIHNwZWNpZmllZAorIyBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2gg dXAuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisjIENyZWF0ZSBhIGxvZ2ljYWwgJ3Rlc3RfZGVjb2RpbmcnIHJlcGxpY2F0aW9uIHNsb3Qgd2l0 aCBmYWlsb3ZlciBlbmFibGVkCiskcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki U0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3Rlc3Rfc2xvdCcsICd0 ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlLCB0cnVlKTsiCispOworCitteSAkYmFja19xID0g JHByaW1hcnktPmJhY2tncm91bmRfcHNxbCgncG9zdGdyZXMnLCBvbl9lcnJvcl9zdG9wID0+IDAp OworbXkgJHBpZCA9ICRiYWNrX3EtPnF1ZXJ5KCdTRUxFQ1QgcGdfYmFja2VuZF9waWQoKScpOwor CisjIFRyeSBhbmQgZ2V0IGNoYW5nZXMgZnJvbSB0aGUgbG9naWNhbCBzbG90IHdpdGggZmFpbG92 ZXIgZW5hYmxlZC4KK215ICRvZmZzZXQgPSAtcyAkcHJpbWFyeS0+bG9nZmlsZTsKKyRiYWNrX3Et PnF1ZXJ5X3VudGlsKHFyLy8sCisJIlNFTEVDVCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMo J3Rlc3Rfc2xvdCcsIE5VTEwsIE5VTEwpO1xuIik7CisKKyMgV2FpdCB1bnRpbCB0aGUgcHJpbWFy eSBzZXJ2ZXIgbG9ncyBhIHdhcm5pbmcgaW5kaWNhdGluZyB0aGF0IGl0IGlzIHdhaXRpbmcKKyMg Zm9yIHRoZSBzYjFfc2xvdCB0byBjYXRjaCB1cC4KKyRwcmltYXJ5LT53YWl0X2Zvcl9sb2coCisJ cXIvV0FSTklORzogKCBbQS1aMC05XSs6KT8gcmVwbGljYXRpb24gc2xvdCBcInNiMV9zbG90XCIg c3BlY2lmaWVkIGluIHBhcmFtZXRlciBcInN0YW5kYnlfc2xvdF9uYW1lc1wiIGRvZXMgbm90IGhh dmUgYWN0aXZlX3BpZC8sCisJJG9mZnNldCk7CisKK29rKCRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCBwZ19jYW5jZWxfYmFja2VuZCgkcGlkKSIpLAorCSJjYW5jZWxsaW5n IHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcyBjb21tYW5kIik7CisKKyRiYWNrX3EtPnF1aXQ7 CisKKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90KCd0ZXN0X3Nsb3QnKTsiCispOworCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgbG9naWNhbCByZXBs aWNhdGlvbiB3aWxsIHdhaXQgZm9yIHRoZSB1c2VyLWNyZWF0ZWQgaW5hY3RpdmUKKyMgcGh5c2lj YWwgc2xvdCB0byBjYXRjaCB1cCB1bnRpbCB3ZSByZW1vdmUgdGhlIHNsb3QgZnJvbSBzdGFuZGJ5 X3Nsb3RfbmFtZXMuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCisjIENyZWF0ZSBzb21lIGRhdGEgb24gdGhlIHByaW1hcnkKKyRwcmltYXJ5X3Jv d19jb3VudCA9IDEwOworJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQg SU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgJHByaW1hcnlfcm93X2NvdW50 KTsiKTsKKworJHJlc3VsdCA9CisgICRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgY291bnQoKikgPSAwIEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0JywK Kwkic3Vic2NyaWJlcjEgZG9lc24ndCBnZXQgZGF0YSBhcyB0aGUgc2IxX3Nsb3QgZG9lc24ndCBj YXRjaCB1cCIpOworCisjIFJlbW92ZSB0aGUgc3RhbmRieSBmcm9tIHRoZSBzdGFuZGJ5X3Nsb3Rf bmFtZXMgbGlzdCBhbmQgcmVsb2FkIHRoZQorIyBjb25maWd1cmF0aW9uLgorJHByaW1hcnktPmFk anVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnc3RhbmRieV9zbG90X25hbWVzJywgIicnIik7 CiskcHJpbWFyeS0+cmVsb2FkOworCisjIFNpbmNlIHRoZXJlIGFyZSBubyBzbG90cyBpbiBzdGFu ZGJ5X3Nsb3RfbmFtZXMsIHRoZSBwcmltYXJ5IHNlcnZlciBzaG91bGQgbm93CisjIHNlbmQgdGhl IGRlY29kZWQgY2hhbmdlcyB0byB0aGUgc3Vic2NyaXB0aW9uLgorJHB1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKyRyZXN1bHQgPSAkc3Vic2NyaWJlcjEtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291 bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLAorCSJzdWJzY3JpYmVyMSBnZXRz IGRhdGEgZnJvbSBwcmltYXJ5IGFmdGVyIHN0YW5kYnkxIGlzIHJlbW92ZWQgZnJvbSB0aGUgc3Rh bmRieV9zbG90X25hbWVzIGxpc3QiCispOworCisjIFB1dCB0aGUgc3RhbmRieSBiYWNrIG9uIHRo ZSBwcmltYXJ5X3Nsb3RfbmFtZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIHRlc3RzCiskcHJpbWFyeS0+ YWRqdXN0X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICdzdGFuZGJ5X3Nsb3RfbmFtZXMnLCAnc2Ix X3Nsb3QnKTsKKyRwcmltYXJ5LT5yZWxvYWQ7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBv biB0aGUgc3RhbmRieQorIyBDb25maWd1cmUgc3RhbmRieTEgdG8gcmVwbGljYXRlIGFuZCBzeW5j aHJvbml6ZSBsb2dpY2FsIHNsb3RzIGNvbmZpZ3VyZWQKKyMgZm9yIGZhaWxvdmVyIG9uIHRoZSBw cmltYXJ5CisjCisjICAgICAgICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0t LT4gc3Vic2NyaWJlcjEgKGNvbm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKKyMgcHJp bWFyeSAtLS0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorIyAgICAgICAgICAgICAgcGh5 c2ljYWwgc2xvdCBzYjFfc2xvdC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0 cmVhbWluZyByZXBsaWNhdGlvbikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRlIGEg c3RhbmRieQogbXkgJGNvbm5zdHJfMSA9ICRwcmltYXJ5LT5jb25uc3RyOwogJHN0YW5kYnkxLT5h cHBlbmRfY29uZigKIAkncG9zdGdyZXNxbC5jb25mJywgcXEoCiBlbmFibGVfc3luY3Nsb3QgPSB0 cnVlCiBob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCi1wcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjFf c2xvdCcKIHByaW1hcnlfY29ubmluZm8gPSAnJGNvbm5zdHJfMSBkYm5hbWU9cG9zdGdyZXMnCiAp KTsKIAotJHByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKLQlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5 c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnc2IxX3Nsb3QnKTt9KTsKLQogbXkgJHN0YW5kYnkxX2Nv bm5pbmZvID0gJHN0YW5kYnkxLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwogCiAjIFN0 YXJ0IHRoZSBzdGFuZGJ5IHNvIHRoYXQgc2xvdCBzeW5jaW5nIGNhbiBiZWdpbgpAQCAtMTI3LDcg KzMyMCw3IEBAICRzdGFuZGJ5MS0+c3RhcnQ7CiAKICMgR2VuZXJhdGUgYSBsb2cgdG8gdHJpZ2dl ciB0aGUgd2Fsc2VuZGVyIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIHdhbHJlY2VpdmVyCiAjIHdo aWNoIHdpbGwgdXBkYXRlIFdhbFJjdi0+bGF0ZXN0V2FsRW5kIHRvIGEgdmFsaWQgbnVtYmVyLgot bXkgJG9mZnNldCA9IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKKyRvZmZzZXQgPSAtcyAkc3RhbmRi eTEtPmxvZ2ZpbGU7CiAkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcGdf bG9nX3N0YW5kYnlfc25hcHNob3QoKTsiKTsKIAogIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0byBm aW5pc2ggc3luYwpAQCAtMTUwLDE4ICszNDMsMTEgQEAgaXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKICMgSW5zZXJ0IGRhdGEgb24gdGhlIHByaW1hcnkKICRwcmltYXJ5LT5zYWZl X3BzcWwoCiAJJ3Bvc3RncmVzJywgcXFbCi0JQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBS SU1BUlkgS0VZKTsKKwlUUlVOQ0FURSBUQUJMRSB0YWJfaW50OwogCUlOU0VSVCBJTlRPIHRhYl9p bnQgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCAxMCk7CiBdKTsKIAotIyBTdWJzY3JpYmUgdG8g dGhlIG5ldyB0YWJsZSBkYXRhIGFuZCB3YWl0IGZvciBpdCB0byBhcnJpdmUKLSRzdWJzY3JpYmVy MS0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxWwotCUNSRUFURSBUQUJMRSB0YWJfaW50IChh IGludCBQUklNQVJZIEtFWSk7Ci0JQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFJF RlJFU0ggUFVCTElDQVRJT047Ci1dKTsKLQotJHN1YnNjcmliZXIxLT53YWl0X2Zvcl9zdWJzY3Jp cHRpb25fc3luYzsKKyRwcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMScp OwogCiAjIERvIG5vdCBhbGxvdyBhbnkgZnVydGhlciBhZHZhbmNlbWVudCBvZiB0aGUgcmVzdGFy dF9sc24gYW5kCiAjIGNvbmZpcm1lZF9mbHVzaF9sc24gZm9yIHRoZSBsc3ViMV9zbG90LgpAQCAt MTk5LDcgKzM4NSw5IEBAICRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBT WVNURU0gU0VUIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmOycpCiAkc3RhbmRieTEtPnJlc3Rh cnQ7CiAKICMgQXR0ZW1wdGluZyB0byBwZXJmb3JtIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzeW5j ZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCi1teSAoJHJlc3VsdCwgJHN0ZG91dCwg JHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKK215ICgkc3Rkb3V0LCAkc3Rk ZXJyKTsKKworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdw b3N0Z3JlcycsCiAJInNlbGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCds c3ViMV9zbG90JyxOVUxMLE5VTEwpOyIpOwogb2soJHN0ZGVyciA9fiAvRVJST1I6ICBjYW5ub3Qg dXNlIHJlcGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiIGZvciBsb2dpY2FsIGRlY29kaW5nLywK IAkibG9naWNhbCBkZWNvZGluZyBpcyBub3QgYWxsb3dlZCBvbiBzeW5jZWQgc2xvdCIpOwotLSAK Mi4zNC4xCgo= --_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v61-0004-Non-replication-connection-and-app_name-change.patch" Content-Description: v61-0004-Non-replication-connection-and-app_name-change.patch Content-Disposition: attachment; filename="v61-0004-Non-replication-connection-and-app_name-change.patch"; size=9931; creation-date="Fri, 12 Jan 2024 14:20:11 GMT"; modification-date="Fri, 12 Jan 2024 14:21:12 GMT" Content-Transfer-Encoding: base64 RnJvbSA1ODg2ODdlYWQ3ZWUwNjQ0NzkxNTU5MTQ4NzhmZTIwZjUyYTgzMmIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTEgSmFuIDIwMjQgMTQ6MTc6MjkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 MSA0LzRdIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpD aGFuZ2VzIGluIHRoaXMgcGF0Y2g6CjEpIENvbnZlcnQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0 byBub24tcmVwbGljYXRpb24gb25lIGluIHNsb3RzeW5jIHdvcmtlci4KMikgVXNlIGFwcF9uYW1l IGFzIHtjbHVzdGVyX25hbWV9X3Nsb3RzeW5jd29ya2VyIGluIHRoZSBzbG90c3luYyB3b3JrZXIK Y29ubmVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg ICAgICAgfCAxMiArKystLQogLi4uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j ICAgICAgIHwgNDQgKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9zbG90c3luYy5jICAgIHwgMTQgKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3RhYmxlc3luYy5jICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC93b3JrZXIuYyAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHJlY2VpdmVyLmMgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxy ZWNlaXZlci5oICAgICAgICAgfCAgNSArKy0KIDcgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9u cygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jCmluZGV4IGY1MGJlMjlkOTkuLjEzZGE2YjE0NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKQEAgLTc1Myw3ICs3NTMsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJCS8q IFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCW11c3RfdXNlX3Bhc3N3b3Jk ID0gIXN1cGVydXNlcl9hcmcob3duZXIpICYmIG9wdHMucGFzc3dvcmRyZXF1aXJlZDsKLQkJd3Jj b25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAor CQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAq LyAsCisJCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQlzdG10LT5zdWJu YW1lLCAmZXJyKTsKIAkJaWYgKCF3cmNvbm4pCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtOTA0LDcg KzkwNSw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uX3JlZnJlc2goU3Vic2NyaXB0aW9uICpzdWIsIGJv b2wgY29weV9kYXRhLAogCiAJLyogVHJ5IHRvIGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8K IAltdXN0X3VzZV9wYXNzd29yZCA9IHN1Yi0+cGFzc3dvcmRyZXF1aXJlZCAmJiAhc3ViLT5vd25l cnN1cGVydXNlcjsKLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVl LCBtdXN0X3VzZV9wYXNzd29yZCwKKwl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5p bmZvLCB0cnVlIC8qIHJlcGxpY2F0aW9uICovICwKKwkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNz d29yZCwKIAkJCQkJCQlzdWItPm5hbWUsICZlcnIpOwogCWlmICghd3Jjb25uKQogCQllcmVwb3J0 KEVSUk9SLApAQCAtMTUzMCw3ICsxNTMyLDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAkJLyogVHJ5IHRvIGNv bm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8KIAkJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBh c3N3b3JkcmVxdWlyZWQgJiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0JCXdyY29ubiA9IHdhbHJj dl9jb25uZWN0KHN1Yi0+Y29ubmluZm8sIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAorCQl3cmNv bm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlIC8qIHJlcGxpY2F0aW9uICov ICwKKwkJCQkJCQkJdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJCXN1Yi0+bmFtZSwg JmVycik7CiAJCWlmICghd3Jjb25uKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTE3ODEsNyArMTc4 NCw4IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wg aXNUb3BMZXZlbCkKIAkgKi8KIAlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7 CiAKLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFz c3dvcmQsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUgLyogcmVwbGlj YXRpb24gKi8gLAorCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCXN1Ym5h bWUsICZlcnIpOwogCWlmICh3cmNvbm4gPT0gTlVMTCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j CmluZGV4IGY5MTBhM2IxMDMuLjhhYTAxMDNkOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBA IC02LDYgKzYsOSBAQAogICogbG9hZGVkIGFzIGEgZHluYW1pYyBtb2R1bGUgdG8gYXZvaWQgbGlu a2luZyB0aGUgbWFpbiBzZXJ2ZXIgYmluYXJ5IHdpdGgKICAqIGxpYnBxLgogICoKKyAqIEFwYXJ0 IGZyb20gd2FscmVjZWl2ZXIsIHRoZSBsaWJwcS1zcGVjaWZpYyByb3V0aW5lcyBoZXJlIGFyZSBu b3cgYmVpbmcgdXNlZAorICogYnkgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXJzIGFuZCBzbG90 c3luYyB3b3JrZXIgYXMgd2VsbC4KKwogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwLTIw MjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICoKQEAgLTUwLDcg KzUzLDggQEAgc3RydWN0IFdhbFJlY2VpdmVyQ29ubgogCiAvKiBQcm90b3R5cGVzIGZvciBpbnRl cmZhY2UgZnVuY3Rpb25zICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJDb25uICpsaWJwcXJjdl9jb25u ZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLAotCQkJCQkJCQkJCSBib29sIGxvZ2ljYWwsIGJvb2wg bXVzdF91c2VfcGFzc3dvcmQsCisJCQkJCQkJCQkJIGJvb2wgcmVwbGljYXRpb24sIGJvb2wgbG9n aWNhbCwKKwkJCQkJCQkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJCQkJCQkgY29u c3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycik7CiBzdGF0aWMgdm9pZCBsaWJwcXJjdl9jaGVj a19jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbywKIAkJCQkJCQkJCWJvb2wgbXVzdF91c2Vf cGFzc3dvcmQpOwpAQCAtMTI1LDcgKzEyOSwxMiBAQCBfUEdfaW5pdCh2b2lkKQogfQogCiAvKgot ICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBmb3IgWExP RyBzdHJlYW1pbmcKKyAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBz ZXJ2ZXIuCisgKgorICogVGhlIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgY291bGQgYmUgZWl0aGVy IGEgcmVwbGljYXRpb24gb25lIG9yCisgKiBhIG5vbi1yZXBsaWNhdGlvbiBvbmUgYmFzZWQgb24g aW5wdXQgYXJndW1lbnQgJ3JlcGxpY2F0aW9uJy4gQW5kIGZ1cnRoZXIKKyAqIGlmIGl0IGlzIGEg cmVwbGljYXRpb24gY29ubmVjdGlvbiwgaXQgY291bGQgYmUgZWl0aGVyIGxvZ2ljYWwgb3IgcGh5 c2ljYWwKKyAqIGJhc2VkIG9uIGlucHV0IGFyZ3VtZW50ICdsb2dpY2FsJy4KICAqCiAgKiBJZiBh biBlcnJvciBvY2N1cnMsIHRoaXMgZnVuY3Rpb24gd2lsbCBub3JtYWxseSByZXR1cm4gTlVMTCBh bmQgc2V0ICplcnIKICAqIHRvIGEgcGFsbG9jJ2VkIGVycm9yIG1lc3NhZ2UuIEhvd2V2ZXIsIGlm IG11c3RfdXNlX3Bhc3N3b3JkIGlzIHRydWUgYW5kCkBAIC0xMzYsOCArMTQ1LDggQEAgX1BHX2lu aXQodm9pZCkKICAqIGNhc2UuCiAgKi8KIHN0YXRpYyBXYWxSZWNlaXZlckNvbm4gKgotbGlicHFy Y3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywgYm9vbCBsb2dpY2FsLCBib29sIG11c3Rf dXNlX3Bhc3N3b3JkLAotCQkJCSBjb25zdCBjaGFyICphcHBuYW1lLCBjaGFyICoqZXJyKQorbGli cHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywgYm9vbCByZXBsaWNhdGlvbiwgYm9v bCBsb2dpY2FsLAorCQkJCSBib29sIG11c3RfdXNlX3Bhc3N3b3JkLCBjb25zdCBjaGFyICphcHBu YW1lLCBjaGFyICoqZXJyKQogewogCVdhbFJlY2VpdmVyQ29ubiAqY29ubjsKIAljb25zdCBjaGFy ICprZXlzWzZdOwpAQCAtMTUwLDE3ICsxNTksMjYgQEAgbGlicHFyY3ZfY29ubmVjdChjb25zdCBj aGFyICpjb25uaW5mbywgYm9vbCBsb2dpY2FsLCBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAogCSAq LwogCWtleXNbaV0gPSAiZGJuYW1lIjsKIAl2YWxzW2ldID0gY29ubmluZm87Ci0Ja2V5c1srK2ld ID0gInJlcGxpY2F0aW9uIjsKLQl2YWxzW2ldID0gbG9naWNhbCA/ICJkYXRhYmFzZSIgOiAidHJ1 ZSI7Ci0JaWYgKCFsb2dpY2FsKQorCisJLyogV2UgY2FuIG5vdCBoYXZlIGxvZ2ljYWwgd2l0aG91 dCByZXBsaWNhdGlvbiAqLworCWlmICghcmVwbGljYXRpb24pCisJCUFzc2VydCghbG9naWNhbCk7 CisJZWxzZQogCXsKLQkJLyoKLQkJICogVGhlIGRhdGFiYXNlIG5hbWUgaXMgaWdub3JlZCBieSB0 aGUgc2VydmVyIGluIHJlcGxpY2F0aW9uIG1vZGUsIGJ1dAotCQkgKiBzcGVjaWZ5ICJyZXBsaWNh dGlvbiIgZm9yIC5wZ3Bhc3MgbG9va3VwLgotCQkgKi8KLQkJa2V5c1srK2ldID0gImRibmFtZSI7 Ci0JCXZhbHNbaV0gPSAicmVwbGljYXRpb24iOworCQlrZXlzWysraV0gPSAicmVwbGljYXRpb24i OworCQl2YWxzW2ldID0gbG9naWNhbCA/ICJkYXRhYmFzZSIgOiAidHJ1ZSI7CisKKwkJaWYgKCFs b2dpY2FsKQorCQl7CisJCQkvKgorCQkJICogVGhlIGRhdGFiYXNlIG5hbWUgaXMgaWdub3JlZCBi eSB0aGUgc2VydmVyIGluIHJlcGxpY2F0aW9uIG1vZGUsCisJCQkgKiBidXQgc3BlY2lmeSAicmVw bGljYXRpb24iIGZvciAucGdwYXNzIGxvb2t1cC4KKwkJCSAqLworCQkJa2V5c1srK2ldID0gImRi bmFtZSI7CisJCQl2YWxzW2ldID0gInJlcGxpY2F0aW9uIjsKKwkJfQogCX0KKwogCWtleXNbKytp XSA9ICJmYWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKIAl2YWxzW2ldID0gYXBwbmFtZTsKIAlp ZiAobG9naWNhbCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv c2xvdHN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpp bmRleCBkZjEzZjE2ZDhkLi45YmU5YzE2Yzg0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9zbG90c3luYy5jCkBAIC05MzQsNiArOTM0LDcgQEAgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbihEYXR1bSBtYWluX2FyZykKIAljaGFyCSAgICpkYm5hbWU7CiAJYm9vbAkJYW1fY2FzY2Fk aW5nX3N0YW5kYnk7CiAJY2hhcgkgICAqZXJyOworCVN0cmluZ0luZm9EYXRhIGFwcF9uYW1lOwog CiAJZXJlcG9ydChMT0csIGVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtlciBzdGFy dGVkIikpOwogCkBAIC05NjYsMTMgKzk2NywyMiBAQCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERh dHVtIG1haW5fYXJnKQogCSAqLwogCUJhY2tncm91bmRXb3JrZXJJbml0aWFsaXplQ29ubmVjdGlv bihkYm5hbWUsIE5VTEwsIDApOwogCisJaW5pdFN0cmluZ0luZm8oJmFwcF9uYW1lKTsKKwlpZiAo Y2x1c3Rlcl9uYW1lWzBdKQorCQlhcHBlbmRTdHJpbmdJbmZvKCZhcHBfbmFtZSwgIiVzXyVzIiwg Y2x1c3Rlcl9uYW1lLCAic2xvdHN5bmN3b3JrZXIiKTsKKwllbHNlCisJCWFwcGVuZFN0cmluZ0lu Zm8oJmFwcF9uYW1lLCAiJXMiLCAic2xvdHN5bmN3b3JrZXIiKTsKKwogCS8qCiAJICogRXN0YWJs aXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBmb3Igc2xvdHMKIAkgKiBz eW5jaHJvbml6YXRpb24uCiAJICovCi0Jd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoUHJpbWFyeUNv bm5JbmZvLCB0cnVlLCBmYWxzZSwKLQkJCQkJCQljbHVzdGVyX25hbWVbMF0gPyBjbHVzdGVyX25h bWUgOiAic2xvdHN5bmN3b3JrZXIiLAorCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KFByaW1hcnlD b25uSW5mbywgZmFsc2UgLyogcmVwbGljYXRpb24gKi8sCisJCQkJCQkJZmFsc2UsIGZhbHNlLAor CQkJCQkJCWFwcF9uYW1lLmRhdGEsCiAJCQkJCQkJJmVycik7CisJcGZyZWUoYXBwX25hbWUuZGF0 YSk7CisKIAlpZiAoIXdyY29ubikKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQllcnJjb2RlKEVSUkNP REVfQ09OTkVDVElPTl9GQUlMVVJFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3RhYmxlc3luYy5jCmluZGV4IDVhY2FiM2YzZTIuLmM1YzZhYzRiYWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpAQCAtMTMyOSw3ICsxMzI5LDcgQEAg TG9naWNhbFJlcFN5bmNUYWJsZVN0YXJ0KFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcykKIAkg KiBzbyB0aGF0IHN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIGNhbiBkaXN0aW5ndWlzaCB0aGVtLgog CSAqLwogCUxvZ1JlcFdvcmtlcldhbFJjdkNvbm4gPQotCQl3YWxyY3ZfY29ubmVjdChNeVN1YnNj cmlwdGlvbi0+Y29ubmluZm8sIHRydWUsCisJCXdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0aW9u LT5jb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAqLyAsIHRydWUsCiAJCQkJCSAgIG11c3Rf dXNlX3Bhc3N3b3JkLAogCQkJCQkgICBzbG90bmFtZSwgJmVycik7CiAJaWYgKExvZ1JlcFdvcmtl cldhbFJjdkNvbm4gPT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtl ci5jCmluZGV4IDNkZWExMGY5YjMuLjk1ZTczMjRjOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC93b3JrZXIuYwpAQCAtNDUxOCw3ICs0NTE4LDkgQEAgcnVuX2FwcGx5X3dvcmtl cigpCiAJbXVzdF91c2VfcGFzc3dvcmQgPSBNeVN1YnNjcmlwdGlvbi0+cGFzc3dvcmRyZXF1aXJl ZCAmJgogCQkhTXlTdWJzY3JpcHRpb24tPm93bmVyc3VwZXJ1c2VyOwogCi0JTG9nUmVwV29ya2Vy V2FsUmN2Q29ubiA9IHdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0aW9uLT5jb25uaW5mbywgdHJ1 ZSwKKwlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0gd2FscmN2X2Nvbm5lY3QoTXlTdWJzY3JpcHRp b24tPmNvbm5pbmZvLAorCQkJCQkJCQkJCQl0cnVlIC8qIHJlcGxpY2F0aW9uICovICwKKwkJCQkJ CQkJCQkJdHJ1ZSwKIAkJCQkJCQkJCQkJbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJCQkJCU15 U3Vic2NyaXB0aW9uLT5uYW1lLCAmZXJyKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyLmMKaW5kZXggZmZhY2Q1NWU1Yy4uY2ZlNjQ3ZWM1OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi93YWxyZWNlaXZlci5jCkBAIC0yOTYsNyArMjk2LDggQEAgV2FsUmVjZWl2ZXJNYWluKHZvaWQp CiAJc2lncHJvY21hc2soU0lHX1NFVE1BU0ssICZVbkJsb2NrU2lnLCBOVUxMKTsKIAogCS8qIEVz dGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBmb3IgWExPRyBzdHJlYW1pbmcg Ki8KLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgZmFsc2UsIGZhbHNlLAorCXdy Y29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0cnVlIC8qIHJlcGxpY2F0aW9uICovICwK KwkJCQkJCQlmYWxzZSwgZmFsc2UsCiAJCQkJCQkJY2x1c3Rlcl9uYW1lWzBdID8gY2x1c3Rlcl9u YW1lIDogIndhbHJlY2VpdmVyIiwKIAkJCQkJCQkmZXJyKTsKIAlpZiAoIXdyY29ubikKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmggYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCmluZGV4IDVlOTQyY2I0ZmMuLjY4YWMwNzQyNzQg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaApAQCAtMjM3LDYgKzIzNyw3IEBA IHR5cGVkZWYgc3RydWN0IFdhbFJjdkV4ZWNSZXN1bHQKICAqIHJldHVybmVkIHdpdGggJ2Vycicg aW5jbHVkaW5nIHRoZSBlcnJvciBnZW5lcmF0ZWQuCiAgKi8KIHR5cGVkZWYgV2FsUmVjZWl2ZXJD b25uICooKndhbHJjdl9jb25uZWN0X2ZuKSAoY29uc3QgY2hhciAqY29ubmluZm8sCisJCQkJCQkJ CQkJCSAgIGJvb2wgcmVwbGljYXRpb24sCiAJCQkJCQkJCQkJCSAgIGJvb2wgbG9naWNhbCwKIAkJ CQkJCQkJCQkJICAgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJCQkJCQkJICAgY29uc3Qg Y2hhciAqYXBwbmFtZSwKQEAgLTQzNCw4ICs0MzUsOCBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNl aXZlckZ1bmN0aW9uc1R5cGUKIAogZXh0ZXJuIFBHRExMSU1QT1JUIFdhbFJlY2VpdmVyRnVuY3Rp b25zVHlwZSAqV2FsUmVjZWl2ZXJGdW5jdGlvbnM7CiAKLSNkZWZpbmUgd2FscmN2X2Nvbm5lY3Qo Y29ubmluZm8sIGxvZ2ljYWwsIG11c3RfdXNlX3Bhc3N3b3JkLCBhcHBuYW1lLCBlcnIpIFwKLQlX YWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIGxvZ2ljYWwsIG11 c3RfdXNlX3Bhc3N3b3JkLCBhcHBuYW1lLCBlcnIpCisjZGVmaW5lIHdhbHJjdl9jb25uZWN0KGNv bm5pbmZvLCByZXBsaWNhdGlvbiwgbG9naWNhbCwgbXVzdF91c2VfcGFzc3dvcmQsIGFwcG5hbWUs IGVycikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY29ubmVjdChjb25uaW5mbywg cmVwbGljYXRpb24sIGxvZ2ljYWwsIG11c3RfdXNlX3Bhc3N3b3JkLCBhcHBuYW1lLCBlcnIpCiAj ZGVmaW5lIHdhbHJjdl9jaGVja19jb25uaW5mbyhjb25uaW5mbywgbXVzdF91c2VfcGFzc3dvcmQp IFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2NoZWNrX2Nvbm5pbmZvKGNvbm5pbmZv LCBtdXN0X3VzZV9wYXNzd29yZCkKICNkZWZpbmUgd2FscmN2X2dldF9jb25uaW5mbyhjb25uKSBc Ci0tIAoyLjM0LjEKCg== --_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v61-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Description: v61-0001-Enable-setting-failover-property-for-a-slot-thro.patch Content-Disposition: attachment; filename="v61-0001-Enable-setting-failover-property-for-a-slot-thro.patch"; size=102664; creation-date="Fri, 12 Jan 2024 14:20:11 GMT"; modification-date="Fri, 12 Jan 2024 14:21:13 GMT" Content-Transfer-Encoding: base64 RnJvbSBiZWMxNzA3Yzc3OTFlYjg1OGIzYTliY2YwZDY0ZTQzZGU2YWNhZmQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBKYW4gMjAyNCAwOToxNToyNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYx IDEvMl0gRW5hYmxlIHNldHRpbmcgZmFpbG92ZXIgcHJvcGVydHkgZm9yIGEgc2xvdCB0aHJvdWdo CiBTUUwgQVBJIGFuZCBzdWJzY3JpcHRpb24gY29tbWFuZHMKClRoaXMgY29tbWl0IGFkZHMgdGhl IGZhaWxvdmVyIHByb3BlcnR5IHRvIHRoZSByZXBsaWNhdGlvbiBzbG90LiBUaGUKZmFpbG92ZXIg cHJvcGVydHkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNsb3Qgd2lsbCBiZSBzeW5jZWQgdG8gdGhl IHN0YW5kYnkKc2VydmVycywgZW5hYmxpbmcgdGhlIHJlc3VtcHRpb24gb2YgY29ycmVzcG9uZGlu ZyBsb2dpY2FsIHJlcGxpY2F0aW9uCmFmdGVyIGZhaWxvdmVyLiBCdXQgbm90ZSB0aGF0IHRoaXMg Y29tbWl0IGRvZXMgbm90IHlldCBpbmNsdWRlIHRoZQpjYXBhYmlsaXR5IHRvIGFjdHVhbGx5IHN5 bmMgdGhlIHJlcGxpY2F0aW9uIHNsb3Q7IHRoZSBuZXh0IHBhdGNoIHdpbGwKYWRkcmVzcyB0aGF0 LgoKSW4gYWRkaXRpb24sIGEgbmV3IHJlcGxpY2F0aW9uIGNvbW1hbmQgbmFtZWQgQUxURVJfUkVQ TElDQVRJT05fU0xPVCBhbmQgYQpjb3JyZXNwb25kaW5nIHdhbHJlY2VpdmVyIEFQSSBmdW5jdGlv biBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdCBoYXZlIGJlZW4KaW1wbGVtZW50ZWQuIFRoZXNlIGFk ZGl0aW9ucyBwcm92aWRlIHN1YnNjcmliZXJzIG9yIHVzZXJzIHRoZSBhYmlsaXR5IHRvCm1vZGlm eSB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgYSByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwdWJs aXNoZXIuCgpNb3Jlb3ZlciwgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBjYWxsZWQgJ2ZhaWxv dmVyJyBoYXMgYmVlbiBhZGRlZCwKYWxsb3dpbmcgdXNlcnMgdG8gc2V0IGl0IHdoZW4gY3JlYXRp bmcgb3IgYWx0ZXJpbmcgYSBzdWJzY3JpcHRpb24uIEFsc28sCmEgbmV3IHBhcmFtZXRlciAnZmFp bG92ZXInIGlzIGFkZGVkIHRvIHRoZQpwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 IGZ1bmN0aW9uLgoKVGhlIHZhbHVlIG9mIHRoZSAnZmFpbG92ZXInIGZsYWcgaXMgZGlzcGxheWVk IGFzIHBhcnQgb2YKcGdfcmVwbGljYXRpb25fc2xvdHMgdmlldy4KLS0tCiBjb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQgICAgICAgfCAgNTggKysrKysrCiBjb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsICAgICAgICAgICAgfCAgMTMgKysKIGRvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBkb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgMTYgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sICAgICB8ICAxMiArKwogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgIDExICsrCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgMTA1ICsrKysrKysrKystCiAuLi4vbGlicHF3 YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAgICAgfCAgMzggKysrLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgICAxICsKIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX2dyYW0ueSAgICAgICAgICAgfCAgMjAgKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubCAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgIDMzICsrKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAyMiArKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgIDY0ICsrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBn cmFkZS9pbmZvLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2Jpbi9wZ191cGdy YWRlL3BnX3VwZ3JhZGUuYyAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ191cGdyYWRl L3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5oICAgICAgICAgfCAgMTEgKysKIHNyYy9pbmNsdWRlL25vZGVzL3JlcGxu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxMiArKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5oICAgICAgICAgfCAgMTggKy0KIC4uLi90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVy X3Nsb3RzX3N5bmMucGwgICAgICB8ICA4OSArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCAgICB8IDE2NSArKysrKysrKysrLS0tLS0tLS0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICAgICB8ICAgOCArCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogMzkgZmlsZXMg Y2hhbmdlZCwgNzQ1IGluc2VydGlvbnMoKyksIDEyNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5 bmMucGwKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5v dXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQKaW5kZXggNjNhOTk0 MGY3My4uMjYxZDg4ODZkMyAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVj dGVkL3Nsb3Qub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91 dApAQCAtNDA2LDMgKzQwNiw2MSBAQCBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdj b3BpZWRfc2xvdDJfbm90ZW1wJyk7CiAgCiAoMSByb3cpCiAKKy0tIFRlc3QgZmFpbG92ZXIgb3B0 aW9uIG9mIHNsb3RzLgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2Us IGZhbHNlLCB0cnVlKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisK K1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdm YWlsb3Zlcl9mYWxzZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UsIGZhbHNl KTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVDVCAnaW5p dCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZh dWx0X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSk7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRl X3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKyA/Y29sdW1uPyAK Ky0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVDVCBzbG90X25hbWUsIHNsb3RfdHlw ZSwgZmFpbG92ZXIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsKKyAgICAgICBzbG90X25hbWUg ICAgICAgfCBzbG90X3R5cGUgfCBmYWlsb3ZlciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBmYWlsb3Zlcl90cnVlX3Nsb3QgICAgfCBsb2dpY2FsICAg fCB0CisgZmFpbG92ZXJfZmFsc2Vfc2xvdCAgIHwgbG9naWNhbCAgIHwgZgorIGZhaWxvdmVyX2Rl ZmF1bHRfc2xvdCB8IGxvZ2ljYWwgICB8IGYKKyBwaHlzaWNhbF9zbG90ICAgICAgICAgfCBwaHlz aWNhbCAgfCBmCisoNCByb3dzKQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdm YWlsb3Zlcl90cnVlX3Nsb3QnKTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZGVmYXVsdF9zbG90Jyk7CisgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOwor IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5z cWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCmluZGV4IDFhYTI3YzU2Njcu LjQ1YWVhZTdmZDUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5z cWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbApAQCAtMTc2LDMgKzE3 NiwxNiBAQCBPUkRFUiBCWSBvLnNsb3RfbmFtZSwgYy5zbG90X25hbWU7CiBTRUxFQ1QgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90KCdvcmlnX3Nsb3QyJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdjb3BpZWRfc2xvdDJfbm9fY2hhbmdlJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBs aWNhdGlvbl9zbG90KCdjb3BpZWRfc2xvdDJfbm90ZW1wJyk7CisKKy0tIFRlc3QgZmFpbG92ZXIg b3B0aW9uIG9mIHNsb3RzLgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFs c2UsIGZhbHNlLCB0cnVlKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBm YWxzZSwgZmFsc2UsIGZhbHNlKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNh bF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnLCAndGVzdF9kZWNvZGlu ZycsIGZhbHNlLCBmYWxzZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX3BoeXNpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKworU0VMRUNUIHNsb3RfbmFtZSwg c2xvdF90eXBlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzOworCitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnKTsKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2ZhbHNlX3Nsb3QnKTsKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcpOworU0VMRUNU IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOwpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCAzZWM3MzkxZWM1Li4xZjIyZTQ0NzFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNzk5MCw2ICs3 OTkwLDE3IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQm Z3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN1YmZhaWxvdmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRydWUsIHRoZSBhc3NvY2lhdGVkIHJl cGxpY2F0aW9uIHNsb3RzIChpLmUuIHRoZSBtYWluIHNsb3QgYW5kIHRoZQorICAgICAgIHRhYmxl IHN5bmMgc2xvdHMpIGluIHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5hYmxlZCB0byBiZQor ICAgICAgIHN5bmNocm9uaXplZCB0byB0aGUgcGh5c2ljYWwgc3RhbmRieXMKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAg ICAgICA8c3RydWN0ZmllbGQ+c3ViY29ubmluZm88L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90 eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9m dW5jLnNnbWwKaW5kZXggMGY3ZDQwOWU2MC4uYzNlNzI1ZDZlZiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNzY1NSw3 ICsyNzY1NSw3IEBAIHBvc3RncmVzPSMgU0VMRUNUICcwLzAnOjpwZ19sc24gKyBwZC5zZWdtZW50 X251bWJlciAqIHBzLnNldHRpbmc6OmludCArIDpvZmZzZXQKICAgICAgICAgPGluZGV4dGVybT4K ICAgICAgICAgIDxwcmltYXJ5PnBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q8L3By aW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8ZnVuY3Rpb24+cGdfY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zbG90X25h bWU8L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4sIDxwYXJhbWV0ZXI+cGx1Z2luPC9wYXJh bWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+IDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+dGVtcG9yYXJ5 PC9wYXJhbWV0ZXI+IDx0eXBlPmJvb2xlYW48L3R5cGU+LCA8cGFyYW1ldGVyPnR3b3BoYXNlPC9w YXJhbWV0ZXI+IDx0eXBlPmJvb2xlYW48L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPGZ1 bmN0aW9uPnBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+c2xvdF9uYW1lPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LCA8cGFyYW1l dGVyPnBsdWdpbjwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFy YW1ldGVyPnRlbXBvcmFyeTwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFt ZXRlcj50d29waGFzZTwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFtZXRl cj5mYWlsb3ZlcjwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiA8L29wdGlvbmFsPiAp CiAgICAgICAgIDxyZXR1cm52YWx1ZT5yZWNvcmQ8L3JldHVybnZhbHVlPgogICAgICAgICAoIDxw YXJhbWV0ZXI+c2xvdF9uYW1lPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LAogICAgICAg ICA8cGFyYW1ldGVyPmxzbjwvcGFyYW1ldGVyPiA8dHlwZT5wZ19sc248L3R5cGU+ICkKQEAgLTI3 NjcwLDggKzI3NjcwLDEzIEBAIHBvc3RncmVzPSMgU0VMRUNUICcwLzAnOjpwZ19sc24gKyBwZC5z ZWdtZW50X251bWJlciAqIHBzLnNldHRpbmc6OmludCArIDpvZmZzZXQKICAgICAgICAgcmVsZWFz ZWQgdXBvbiBhbnkgZXJyb3IuIFRoZSBvcHRpb25hbCBmb3VydGggcGFyYW1ldGVyLAogICAgICAg ICA8cGFyYW1ldGVyPnR3b3BoYXNlPC9wYXJhbWV0ZXI+LCB3aGVuIHNldCB0byB0cnVlLCBzcGVj aWZpZXMKICAgICAgICAgdGhhdCB0aGUgZGVjb2Rpbmcgb2YgcHJlcGFyZWQgdHJhbnNhY3Rpb25z IGlzIGVuYWJsZWQgZm9yIHRoaXMKLSAgICAgICAgc2xvdC4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rp b24gaGFzIHRoZSBzYW1lIGVmZmVjdCBhcyB0aGUgcmVwbGljYXRpb24KLSAgICAgICAgcHJvdG9j b2wgY29tbWFuZCA8bGl0ZXJhbD5DUkVBVEVfUkVQTElDQVRJT05fU0xPVCAuLi4gTE9HSUNBTDwv bGl0ZXJhbD4uCisgICAgICAgIHNsb3QuIFRoZSBvcHRpb25hbCBmaWZ0aCBwYXJhbWV0ZXIsCisg ICAgICAgIDxwYXJhbWV0ZXI+ZmFpbG92ZXI8L3BhcmFtZXRlcj4sIHdoZW4gc2V0IHRvIHRydWUs CisgICAgICAgIHNwZWNpZmllcyB0aGF0IHRoaXMgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNl ZCB0byB0aGUKKyAgICAgICAgcGh5c2ljYWwgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxp Y2F0aW9uIGNhbiBiZSByZXN1bWVkCisgICAgICAgIGFmdGVyIGZhaWxvdmVyLiBBIGNhbGwgdG8g dGhpcyBmdW5jdGlvbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzCisgICAgICAgIHRoZSByZXBsaWNh dGlvbiBwcm90b2NvbCBjb21tYW5kCisgICAgICAgIDxsaXRlcmFsPkNSRUFURV9SRVBMSUNBVElP Tl9TTE9UIC4uLiBMT0dJQ0FMPC9saXRlcmFsPi4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IDZjM2U4YTYzMWQuLmFmOTk3ZWZkMmIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w cm90b2NvbC5zZ21sCkBAIC0yMDYwLDYgKzIwNjAsMTcgQEAgcHNxbCAiZGJuYW1lPXBvc3RncmVz IHJlcGxpY2F0aW9uPWRhdGFiYXNlIiAtYyAiSURFTlRJRllfU1lTVEVNOyIKICAgICAgICAgIDwv cGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPkZBSUxPVkVSIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdPC9saXRl cmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhlIHBoeXNp Y2FsCisgICAgICAgICAgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBi ZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIGZhbHNl LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlz dGVudHJ5PgogICAgICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgICAgIDxwYXJhPgpAQCAtMjEyNCw2 ICsyMTM1LDQ3IEBAIHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRhYmFzZSIg LWMgIklERU5USUZZX1NZU1RFTTsiCiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1yZXBsaWNhdGlvbi1hbHRlci1y ZXBsaWNhdGlvbi1zbG90IiB4cmVmbGFiZWw9IkFMVEVSX1JFUExJQ0FUSU9OX1NMT1QiPgorICAg ICA8dGVybT48bGl0ZXJhbD5BTFRFUl9SRVBMSUNBVElPTl9TTE9UPC9saXRlcmFsPiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApCisg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkFMVEVSX1JFUExJQ0FUSU9OX1NMT1Q8L3ByaW1hcnk+ PC9pbmRleHRlcm0+CisgICAgIDwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+ CisgICAgICAgQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4KKyAg ICAgICBTZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uLXNsb3RzIi8+IGZv ciBtb3JlIGFib3V0CisgICAgICAgcmVwbGljYXRpb24gc2xvdHMuIFRoaXMgY29tbWFuZCBpcyBj dXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIGxvZ2ljYWwKKyAgICAgICByZXBsaWNhdGlvbiBz bG90cy4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBzbG90IHRvIGFsdGVyLiBNdXN0 IGJlIGEgdmFsaWQgcmVwbGljYXRpb24gc2xvdAorICAgICAgICAgIG5hbWUgKHNlZSA8eHJlZiBs aW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24tc2xvdHMtbWFuaXB1bGF0aW9uIi8+KS4KKyAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgICA8cGFyYT5UaGUgZm9sbG93aW5nIG9w dGlvbnMgYXJlIHN1cHBvcnRlZDo8L3BhcmE+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9WRVIgWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF08L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICBJZiB0cnVlLCB0aGUgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0aGUgcGh5c2lj YWwKKyAgICAgICAgICBzdGFuZGJ5cyBzbyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gY2FuIGJl IHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKwor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRy eSBpZD0icHJvdG9jb2wtcmVwbGljYXRpb24tcmVhZC1yZXBsaWNhdGlvbi1zbG90Ij4KICAgICAg PHRlcm0+PGxpdGVyYWw+UkVBRF9SRVBMSUNBVElPTl9TTE9UPC9saXRlcmFsPiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICAgIDxpbmRl eHRlcm0+PHByaW1hcnk+UkVBRF9SRVBMSUNBVElPTl9TTE9UPC9wcmltYXJ5PjwvaW5kZXh0ZXJt PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggNmQzNmZmMGRj OS4uYjNlNzc5ZGY3MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21s CkBAIC0yMjYsMTAgKzIyNiwyMiBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAgPGxp bmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJlYW1pbmci PjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+LAogICAgICAgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9yIj48 bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBs aW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXBhc3N3b3JkLXJlcXVp cmVkIj48bGl0ZXJhbD5wYXNzd29yZF9yZXF1aXJlZDwvbGl0ZXJhbD48L2xpbms+LAotICAgICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1ydW4tYXMt b3duZXIiPjxsaXRlcmFsPnJ1bl9hc19vd25lcjwvbGl0ZXJhbD48L2xpbms+LCBhbmQKLSAgICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2lu Ij48bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+PC9saW5rPi4KKyAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcnVuLWFzLW93bmVyIj48bGl0ZXJh bD5ydW5fYXNfb3duZXI8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2luIj48bGl0ZXJhbD5vcmlnaW48 L2xpdGVyYWw+PC9saW5rPiwgYW5kCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJh bD48L2xpbms+LgogICAgICAgT25seSBhIHN1cGVydXNlciBjYW4gc2V0IDxsaXRlcmFsPnBhc3N3 b3JkX3JlcXVpcmVkID0gZmFsc2U8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CisKKyAgICAgPHBh cmE+CisgICAgICBXaGVuIGFsdGVyaW5nIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zbG90LW5hbWUiPjxsaXRlcmFsPnNsb3RfbmFt ZTwvbGl0ZXJhbD48L2xpbms+LAorICAgICAgdGhlIDxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFs PiBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgbmFtZWQgc2xvdCBtYXkgZGlmZmVyIGZyb20gdGhlCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWZh aWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xpbms+CisgICAgICBwYXJhbWV0 ZXIgc3BlY2lmaWVkIGluIHRoZSBzdWJzY3JpcHRpb24uIFdoZW4gY3JlYXRpbmcgdGhlIHNsb3Qs CisgICAgICBlbnN1cmUgdGhlIHNsb3QgPGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+IHByb3Bl cnR5IG1hdGNoZXMgdGhlCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xp bms+CisgICAgICBwYXJhbWV0ZXIgdmFsdWUgb2YgdGhlIHN1YnNjcmlwdGlvbi4KKyAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBmMWMyMGIzYTQ2Li44Y2Q4MzQyMDM0 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbApAQCAtMzk5LDYg KzM5OSwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgICAgICAgPC9wYXJhPgogICAg ICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+ CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPiAoPHR5cGU+Ym9vbGVh bjwvdHlwZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICBTcGVjaWZpZXMgd2hldGhlciB0aGUgcmVwbGljYXRpb24gc2xvdHMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgICAgICBhcmUgZW5hYmxlZCB0byBiZSBzeW5j ZWQgdG8gdGhlIHBoeXNpY2FsIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbAorICAgICAgICAgIHJl cGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5IGFmdGVyIGZhaWxv dmVyLgorICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4K KyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3Rl bnRyeT4KICAgICAgIDwvdmFyaWFibGVsaXN0PjwvcGFyYT4KIAogICAgIDwvbGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv c3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNzJkMDFmYzYyNC4uMTg2OGI5NTgzNiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0 ZW0tdmlld3Muc2dtbApAQCAtMjU1NSw2ICsyNTU1LDE3IEBAIFNFTEVDVCAqIEZST00gcGdfbG9j a3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgIDwvaXRlbWl6ZWRs aXN0PgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5mYWlsb3Zlcjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBU cnVlIGlmIHRoaXMgaXMgYSBsb2dpY2FsIHNsb3QgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhl IHBoeXNpY2FsCisgICAgICAgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNh biBiZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5CisgICAgICAgYWZ0ZXIgZmFpbG92ZXIu IEFsd2F5cyBmYWxzZSBmb3IgcGh5c2ljYWwgc2xvdHMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggYzUxNmMyNWFjNy4uNDA2YTNjMmRk MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC03Myw2ICs3Myw3IEBA IEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlzdWItPmRpc2Fi bGVvbmVyciA9IHN1YmZvcm0tPnN1YmRpc2FibGVvbmVycjsKIAlzdWItPnBhc3N3b3JkcmVxdWly ZWQgPSBzdWJmb3JtLT5zdWJwYXNzd29yZHJlcXVpcmVkOwogCXN1Yi0+cnVuYXNvd25lciA9IHN1 YmZvcm0tPnN1YnJ1bmFzb3duZXI7CisJc3ViLT5mYWlsb3ZlciA9IHN1YmZvcm0tPnN1YmZhaWxv dmVyOwogCiAJLyogR2V0IGNvbm5pbmZvICovCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3RO dWxsKFNVQlNDUklQVElPTk9JRCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX2Z1bmN0aW9ucy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMu c3FsCmluZGV4IGYzMTVmZWNmMTguLjM0NmNmYjk4YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fZnVuY3Rpb25zLnNxbApAQCAtNDc5LDYgKzQ3OSw3IEBAIENSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoCiAgICAgSU4gc2xv dF9uYW1lIG5hbWUsIElOIHBsdWdpbiBuYW1lLAogICAgIElOIHRlbXBvcmFyeSBib29sZWFuIERF RkFVTFQgZmFsc2UsCiAgICAgSU4gdHdvcGhhc2UgYm9vbGVhbiBERUZBVUxUIGZhbHNlLAorICAg IElOIGZhaWxvdmVyIGJvb2xlYW4gREVGQVVMVCBmYWxzZSwKICAgICBPVVQgc2xvdF9uYW1lIG5h bWUsIE9VVCBsc24gcGdfbHNuKQogUkVUVVJOUyBSRUNPUkQKIExBTkdVQUdFIElOVEVSTkFMCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggZTQzZTM2ZjVhYy4uZTQzYTkzNzM5 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTAyMyw3ICsxMDIzLDgg QEAgQ1JFQVRFIFZJRVcgcGdfcmVwbGljYXRpb25fc2xvdHMgQVMKICAgICAgICAgICAgIEwud2Fs X3N0YXR1cywKICAgICAgICAgICAgIEwuc2FmZV93YWxfc2l6ZSwKICAgICAgICAgICAgIEwudHdv X3BoYXNlLAotICAgICAgICAgICAgTC5jb25mbGljdF9yZWFzb24KKyAgICAgICAgICAgIEwuY29u ZmxpY3RfcmVhc29uLAorICAgICAgICAgICAgTC5mYWlsb3ZlcgogICAgIEZST00gcGdfZ2V0X3Jl cGxpY2F0aW9uX3Nsb3RzKCkgQVMgTAogICAgICAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNl IEQgT04gKEwuZGF0b2lkID0gRC5vaWQpOwogCkBAIC0xMzU3LDcgKzEzNTgsOCBAQCBSRVZPS0Ug QUxMIE9OIHBnX3N1YnNjcmlwdGlvbiBGUk9NIHB1YmxpYzsKIEdSQU5UIFNFTEVDVCAob2lkLCBz dWJkYmlkLCBzdWJza2lwbHNuLCBzdWJuYW1lLCBzdWJvd25lciwgc3ViZW5hYmxlZCwKICAgICAg ICAgICAgICAgc3ViYmluYXJ5LCBzdWJzdHJlYW0sIHN1YnR3b3BoYXNlc3RhdGUsIHN1YmRpc2Fi bGVvbmVyciwKIAkJCSAgc3VicGFzc3dvcmRyZXF1aXJlZCwgc3VicnVuYXNvd25lciwKLSAgICAg ICAgICAgICAgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vi b3JpZ2luKQorICAgICAgICAgICAgICBzdWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwgc3VicHVi bGljYXRpb25zLCBzdWJvcmlnaW4sCisgICAgICAgICAgICAgIHN1YmZhaWxvdmVyKQogICAgIE9O IHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2Ny aXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5k ZXggNzVlNmNkOGFlMy4uZjUwYmUyOWQ5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlw dGlvbmNtZHMuYwpAQCAtNzEsNiArNzEsNyBAQAogI2RlZmluZSBTVUJPUFRfUlVOX0FTX09XTkVS CQkJMHgwMDAwMTAwMAogI2RlZmluZSBTVUJPUFRfTFNOCQkJCQkweDAwMDAyMDAwCiAjZGVmaW5l IFNVQk9QVF9PUklHSU4JCQkJMHgwMDAwNDAwMAorI2RlZmluZSBTVUJPUFRfRkFJTE9WRVIJCQkJ MHgwMDAwODAwMAogCiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNk ZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQpAQCAt OTYsNiArOTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJPcHRzCiAJYm9vbAkJcGFzc3dvcmRyZXF1 aXJlZDsKIAlib29sCQlydW5hc293bmVyOwogCWNoYXIJICAgKm9yaWdpbjsKKwlib29sCQlmYWls b3ZlcjsKIAlYTG9nUmVjUHRyCWxzbjsKIH0gU3ViT3B0czsKIApAQCAtMTU3LDYgKzE1OSw4IEBA IHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3Rt dF9vcHRpb25zLAogCQlvcHRzLT5ydW5hc293bmVyID0gZmFsc2U7CiAJaWYgKElzU2V0KHN1cHBv cnRlZF9vcHRzLCBTVUJPUFRfT1JJR0lOKSkKIAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1cChMT0dJ Q0FMUkVQX09SSUdJTl9BTlkpOworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0ZB SUxPVkVSKSkKKwkJb3B0cy0+ZmFpbG92ZXIgPSBmYWxzZTsKIAogCS8qIFBhcnNlIG9wdGlvbnMg Ki8KIAlmb3JlYWNoKGxjLCBzdG10X29wdGlvbnMpCkBAIC0zMjYsNiArMzMwLDE1IEBAIHBhcnNl X3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRp b25zLAogCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJ CQkJCWVycm1zZygidW5yZWNvZ25pemVkIG9yaWdpbiB2YWx1ZTogXCIlc1wiIiwgb3B0cy0+b3Jp Z2luKSk7CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9GQUlM T1ZFUikgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiZmFpbG92ZXIiKSA9PSAwKQor CQl7CisJCQlpZiAoSXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikp CisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisKKwkJCW9wdHMt PnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9GQUlMT1ZFUjsKKwkJCW9wdHMtPmZhaWxvdmVyID0g ZGVmR2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KIAkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29w dHMsIFNVQk9QVF9MU04pICYmCiAJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImxzbiIpID09 IDApCiAJCXsKQEAgLTU5MSw3ICs2MDQsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9QVF9T WU5DSFJPTk9VU19DT01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJICBTVUJPUFRfU1RSRUFN SU5HIHwgU1VCT1BUX1RXT1BIQVNFX0NPTU1JVCB8CiAJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05f RVJSIHwgU1VCT1BUX1BBU1NXT1JEX1JFUVVJUkVEIHwKLQkJCQkJICBTVUJPUFRfUlVOX0FTX09X TkVSIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9Q VF9PUklHSU4gfAorCQkJCQkgIFNVQk9QVF9GQUlMT1ZFUik7CiAJcGFyc2Vfc3Vic2NyaXB0aW9u X29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwog CiAJLyoKQEAgLTcxMCw2ICs3MjQsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlwdWJsaWNhdGlvbkxpc3RU b0FycmF5KHB1YmxpY2F0aW9ucyk7CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9y aWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CisJdmFsdWVz W0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQorCQlCb29sR2V0RGF0dW0o b3B0cy5mYWlsb3Zlcik7CiAKIAl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNj cihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKIApAQCAtODA3LDcgKzgyMyw3IEBAIENyZWF0ZVN1YnNj cmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQs CiAJCQkJCXR3b3BoYXNlX2VuYWJsZWQgPSB0cnVlOwogCiAJCQkJd2FscmN2X2NyZWF0ZV9zbG90 KHdyY29ubiwgb3B0cy5zbG90X25hbWUsIGZhbHNlLCB0d29waGFzZV9lbmFibGVkLAotCQkJCQkJ CQkgICBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5VTEwpOworCQkJCQkJCQkgICBvcHRzLmZhaWxv dmVyLCBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5VTEwpOwogCiAJCQkJaWYgKHR3b3BoYXNlX2Vu YWJsZWQpCiAJCQkJCVVwZGF0ZVR3b1BoYXNlU3RhdGUoc3ViaWQsIExPR0lDQUxSRVBfVFdPUEhB U0VfU1RBVEVfRU5BQkxFRCk7CkBAIC04MTYsNiArODMyLDI0IEBAIENyZWF0ZVN1YnNjcmlwdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJ CQkoZXJybXNnKCJjcmVhdGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9uIHB1Ymxpc2hlciIs CiAJCQkJCQkJCW9wdHMuc2xvdF9uYW1lKSkpOwogCQkJfQorCisJCQkvKgorCQkJICogSWYgdGhl IHNsb3RfbmFtZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB0aGUgY3JlYXRlX3Nsb3Qgb3B0aW9uLAor CQkJICogaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgdXNlciBpbnRlbmRzIHRvIHVzZSBhbiBleGlz dGluZyBzbG90IG9uCisJCQkgKiB0aGUgcHVibGlzaGVyLCBzbyBoZXJlIHdlIGFsdGVyIHRoZSBm YWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUKKwkJCSAqIHNsb3QgdG8gbWF0Y2ggdGhlIGZhaWxvdmVy IHZhbHVlIGluIHN1YnNjcmlwdGlvbi4KKwkJCSAqCisJCQkgKiBXZSBkbyBub3QgbmVlZCB0byBj aGFuZ2UgdGhlIGZhaWxvdmVyIHRvIGZhbHNlIGlmIHRoZSBzZXJ2ZXIKKwkJCSAqIGRvZXMgbm90 IHN1cHBvcnQgZmFpbG92ZXIgKGUuZy4gcHJlLVBHMTcpLgorCQkJICovCisJCQllbHNlIGlmIChv cHRzLnNsb3RfbmFtZSAmJgorCQkJCQkgKG9wdHMuZmFpbG92ZXIgfHwgd2FscmN2X3NlcnZlcl92 ZXJzaW9uKHdyY29ubikgPj0gMTcwMDAwKSkKKwkJCXsKKwkJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3 cmNvbm4sIG9wdHMuc2xvdF9uYW1lLCBvcHRzLmZhaWxvdmVyKTsKKwkJCQllcmVwb3J0KE5PVElD RSwKKwkJCQkJCShlcnJtc2coImNoYW5nZWQgdGhlIGZhaWxvdmVyIHN0YXRlIG9mIHJlcGxpY2F0 aW9uIHNsb3QgXCIlc1wiIG9uIHB1Ymxpc2hlciB0byAlcyIsCisJCQkJCQkJCW9wdHMuc2xvdF9u YW1lLCBvcHRzLmZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIikpKTsKKwkJCX0KIAkJfQogCQlQ R19GSU5BTExZKCk7CiAJCXsKQEAgLTExMzIsNyArMTE2Niw4IEBAIEFsdGVyU3Vic2NyaXB0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJ CQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJCQkJ ICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwKIAkJCQkJCQkJICBT VUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQgfAotCQkJCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIg fCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BU X09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0ZBSUxPVkVSKTsKIAogCQkJCXBhcnNlX3N1YnNj cmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBw b3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTIxOCw2ICsxMjUzLDMwIEBAIEFsdGVyU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJ CQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmlnaW4gLSAxXSA9IHRydWU7CiAJ CQkJfQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZF UikpCisJCQkJeworCQkJCQlpZiAoIXN1Yi0+c2xvdG5hbWUpCisJCQkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IHNldCBmYWlsb3ZlciBmb3IgYSBzdWJzY3Jp cHRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGEgc2xvdCBuYW1lIikpKTsKKworCQkJCQkvKgorCQkJ CQkgKiBEbyBub3QgYWxsb3cgY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHN0YXRlIGlmIHRoZQorCQkJ CQkgKiBzdWJzY3JpcHRpb24gaXMgZW5hYmxlZC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBmYWlsb3Zl cgorCQkJCQkgKiBzdGF0ZSBvZiB0aGUgc2xvdCBvbiB0aGUgcHVibGlzaGVyIGNhbm5vdCBiZSBt b2RpZmllZCBpZgorCQkJCQkgKiB0aGUgc2xvdCBpcyBjdXJyZW50bHkgYWNxdWlyZWQgYnkgdGhl IGFwcGx5IHdvcmtlci4KKwkJCQkJICovCisJCQkJCWlmIChzdWItPmVuYWJsZWQpCisJCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IHNldCAlcyBmb3IgZW5h YmxlZCBzdWJzY3JpcHRpb24iLAorCQkJCQkJCQkJCSJmYWlsb3ZlciIpKSk7CisKKwkJCQkJdmFs dWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQorCQkJCQkJQm9vbEdl dERhdHVtKG9wdHMuZmFpbG92ZXIpOworCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJmYWlsb3ZlciAtIDFdID0gdHJ1ZTsKKwkJCQl9CisKIAkJCQl1cGRhdGVfdHVwbGUgPSB0 cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMTQ1Myw2ICsxNTEyLDQ2IEBAIEFsdGVyU3Vic2Ny aXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAog CQloZWFwX2ZyZWV0dXBsZSh0dXApOwogCX0KIAorCS8qCisJICogVHJ5IHRvIGFjcXVpcmUgdGhl IGNvbm5lY3Rpb24gbmVjZXNzYXJ5IGZvciBhbHRlcmluZyBzbG90LgorCSAqCisJICogVGhpcyBo YXMgdG8gYmUgYXQgdGhlIGVuZCBiZWNhdXNlIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBhbiBlcnJv cgorCSAqIHdoaWxlIGRvaW5nIHRoZSBkYXRhYmFzZSBvcGVyYXRpb25zIHdlIHdvbid0IGJlIGFi bGUgdG8gcm9sbGJhY2sKKwkgKiBhbHRlcmVkIHNsb3QuCisJICovCisJaWYgKHJlcGxhY2VzW0Fu dW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0pCisJeworCQlib29sCQltdXN0X3Vz ZV9wYXNzd29yZDsKKwkJY2hhcgkgICAqZXJyOworCQlXYWxSZWNlaXZlckNvbm4gKndyY29ubjsK KworCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KKwkJ bG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJCS8qIFRyeSB0byBjb25u ZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCisJCW11c3RfdXNlX3Bhc3N3b3JkID0gc3ViLT5wYXNz d29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOworCQl3cmNvbm4gPSB3YWxyY3Zf Y29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKKwkJCQkJCQkJ c3ViLT5uYW1lLCAmZXJyKTsKKwkJaWYgKCF3cmNvbm4pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJCQkJCSBlcnJtc2coImNv dWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwgZXJyKSkpOworCisJCVBHX1RS WSgpOworCQl7CisJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNvbm4sIHN1Yi0+c2xvdG5hbWUsIG9w dHMuZmFpbG92ZXIpOworCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygiY2hhbmdl ZCB0aGUgZmFpbG92ZXIgc3RhdGUgb2YgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHVibGlz aGVyIHRvICVzIiwKKwkJCQkJCQlzdWItPnNsb3RuYW1lLCAiZmFsc2UiKSkpOworCQl9CisJCVBH X0ZJTkFMTFkoKTsKKwkJeworCQkJd2FscmN2X2Rpc2Nvbm5lY3Qod3Jjb25uKTsKKwkJfQorCQlQ R19FTkRfVFJZKCk7CisJfQorCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsK IAogCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJp ZCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVy L2xpYnBxd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVj ZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCmluZGV4IDc4MzQ0YTAzNjEuLmYxOGEwNGQ4YTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3 YWxyZWNlaXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2 ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBAIC03NCw4ICs3NCwxMSBAQCBzdGF0aWMgY2hhciAqbGli cHFyY3ZfY3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkgIGNvbnN0 IGNoYXIgKnNsb3RuYW1lLAogCQkJCQkJCQkgIGJvb2wgdGVtcG9yYXJ5LAogCQkJCQkJCQkgIGJv b2wgdHdvX3BoYXNlLAorCQkJCQkJCQkgIGJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJCSAgQ1JTU25h cHNob3RBY3Rpb24gc25hcHNob3RfYWN0aW9uLAogCQkJCQkJCQkgIFhMb2dSZWNQdHIgKmxzbik7 CitzdGF0aWMgdm9pZCBsaWJwcXJjdl9hbHRlcl9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwg Y29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCQkJCWJvb2wgZmFpbG92ZXIpOwogc3RhdGljIHBp ZF90IGxpYnBxcmN2X2dldF9iYWNrZW5kX3BpZChXYWxSZWNlaXZlckNvbm4gKmNvbm4pOwogc3Rh dGljIFdhbFJjdkV4ZWNSZXN1bHQgKmxpYnBxcmN2X2V4ZWMoV2FsUmVjZWl2ZXJDb25uICpjb25u LAogCQkJCQkJCQkJICAgY29uc3QgY2hhciAqcXVlcnksCkBAIC05Niw2ICs5OSw3IEBAIHN0YXRp YyBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgUFFXYWxSZWNlaXZlckZ1bmN0aW9ucyA9IHsKIAku d2FscmN2X3JlY2VpdmUgPSBsaWJwcXJjdl9yZWNlaXZlLAogCS53YWxyY3Zfc2VuZCA9IGxpYnBx cmN2X3NlbmQsCiAJLndhbHJjdl9jcmVhdGVfc2xvdCA9IGxpYnBxcmN2X2NyZWF0ZV9zbG90LAor CS53YWxyY3ZfYWx0ZXJfc2xvdCA9IGxpYnBxcmN2X2FsdGVyX3Nsb3QsCiAJLndhbHJjdl9nZXRf YmFja2VuZF9waWQgPSBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQsCiAJLndhbHJjdl9leGVjID0g bGlicHFyY3ZfZXhlYywKIAkud2FscmN2X2Rpc2Nvbm5lY3QgPSBsaWJwcXJjdl9kaXNjb25uZWN0 CkBAIC04ODUsOCArODg5LDggQEAgbGlicHFyY3Zfc2VuZChXYWxSZWNlaXZlckNvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKmJ1ZmZlciwgaW50IG5ieXRlcykKICAqLwogc3RhdGljIGNoYXIgKgogbGli cHFyY3ZfY3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90 bmFtZSwKLQkJCQkJIGJvb2wgdGVtcG9yYXJ5LCBib29sIHR3b19waGFzZSwgQ1JTU25hcHNob3RB Y3Rpb24gc25hcHNob3RfYWN0aW9uLAotCQkJCQkgWExvZ1JlY1B0ciAqbHNuKQorCQkJCQkgYm9v bCB0ZW1wb3JhcnksIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyLAorCQkJCQkgQ1JTU25h cHNob3RBY3Rpb24gc25hcHNob3RfYWN0aW9uLCBYTG9nUmVjUHRyICpsc24pCiB7CiAJUEdyZXN1 bHQgICAqcmVzOwogCVN0cmluZ0luZm9EYXRhIGNtZDsKQEAgLTkxNSw3ICs5MTksOCBAQCBsaWJw cXJjdl9jcmVhdGVfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3Ru YW1lLAogCQkJZWxzZQogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZjbWQsICcgJyk7CiAJCX0K LQorCQlpZiAoZmFpbG92ZXIpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQsICJGQUlM T1ZFUiwgIik7CiAJCWlmICh1c2VfbmV3X29wdGlvbnNfc3ludGF4KQogCQl7CiAJCQlzd2l0Y2gg KHNuYXBzaG90X2FjdGlvbikKQEAgLTk4NCw2ICs5ODksMzMgQEAgbGlicHFyY3ZfY3JlYXRlX3Ns b3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90bmFtZSwKIAlyZXR1cm4g c25hcHNob3Q7CiB9CiAKKy8qCisgKiBDaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgdGhlIHJlcGxp Y2F0aW9uIHNsb3QuCisgKi8KK3N0YXRpYyB2b2lkCitsaWJwcXJjdl9hbHRlcl9zbG90KFdhbFJl Y2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCWJvb2wgZmFpbG92 ZXIpCit7CisJU3RyaW5nSW5mb0RhdGEgY21kOworCVBHcmVzdWx0ICAgKnJlczsKKworCWluaXRT dHJpbmdJbmZvKCZjbWQpOworCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwgIkFMVEVSX1JFUExJQ0FU SU9OX1NMT1QgJXMgKCBGQUlMT1ZFUiAlcyApIiwKKwkJCQkJIHF1b3RlX2lkZW50aWZpZXIoc2xv dG5hbWUpLAorCQkJCQkgZmFpbG92ZXIgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworCXJlcyA9IGxp YnBxcmN2X1BRZXhlYyhjb25uLT5zdHJlYW1Db25uLCBjbWQuZGF0YSk7CisJcGZyZWUoY21kLmRh dGEpOworCisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09MX1ZJT0xBVElPTiks CisJCQkJIGVycm1zZygiY291bGQgbm90IGFsdGVyIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiOiAl cyIsCisJCQkJCQlzbG90bmFtZSwgcGNob21wKFBRZXJyb3JNZXNzYWdlKGNvbm4tPnN0cmVhbUNv bm4pKSkpKTsKKworCVBRY2xlYXIocmVzKTsKK30KKwogLyoKICAqIFJldHVybiBQSUQgb2YgcmVt b3RlIGJhY2tlbmQgcHJvY2Vzcy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvdGFibGVzeW5jLmMKaW5kZXggMDZkNWIzZGYzMy4uNWFjYWIzZjNlMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBAIC0xNDMwLDYgKzE0MzAsNyBA QCBMb2dpY2FsUmVwU3luY1RhYmxlU3RhcnQoWExvZ1JlY1B0ciAqb3JpZ2luX3N0YXJ0cG9zKQog CSAqLwogCXdhbHJjdl9jcmVhdGVfc2xvdChMb2dSZXBXb3JrZXJXYWxSY3ZDb25uLAogCQkJCQkg ICBzbG90bmFtZSwgZmFsc2UgLyogcGVybWFuZW50ICovICwgZmFsc2UgLyogdHdvX3BoYXNlICov ICwKKwkJCQkJICAgTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyLAogCQkJCQkgICBDUlNfVVNFX1NO QVBTSE9ULCBvcmlnaW5fc3RhcnRwb3MpOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jCmluZGV4IDkxMTgzNWM1Y2IuLjNkZWExMGY5YjMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtMTMyLDYgKzEzMiwxMyBAQAogICog YXZvaWQgc3VjaCBkZWFkbG9ja3MsIHdlIGdlbmVyYXRlIGEgdW5pcXVlIEdJRCAoY29uc2lzdGlu ZyBvZiB0aGUKICAqIHN1YnNjcmlwdGlvbiBvaWQgYW5kIHRoZSB4aWQgb2YgdGhlIHByZXBhcmVk IHRyYW5zYWN0aW9uKSBmb3IgZWFjaCBwcmVwYXJlCiAgKiB0cmFuc2FjdGlvbiBvbiB0aGUgc3Vi c2NyaWJlci4KKyAqCisgKiBGQUlMT1ZFUgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICog VGhlIGxvZ2ljYWwgc2xvdCBvbiB0aGUgcHJpbWFyeSBjYW4gYmUgc3luY2VkIHRvIHRoZSBzdGFu ZGJ5IGJ5IHNwZWNpZnlpbmcKKyAqIGZhaWxvdmVyID0gdHJ1ZSB3aGVuIGNyZWF0aW5nIHRoZSBz dWJzY3JpcHRpb24uIEVuYWJsaW5nIGZhaWxvdmVyIGFsbG93cyB1cworICogdG8gc21vb3RobHkg dHJhbnNpdGlvbiB0byB0aGUgcHJvbW90ZWQgc3RhbmRieSwgZW5zdXJpbmcgdGhhdCB3ZSBjYW4K KyAqIHN1YnNjcmliZSB0byB0aGUgbmV3IHByaW1hcnkgd2l0aG91dCBsb3NpbmcgYW55IGRhdGEu CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9yZXBsX2dyYW0ueSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfZ3JhbS55 CmluZGV4IDk1ZTEyNmViNGQuLmZmMzgwOWUwMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3JlcGxfZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxf Z3JhbS55CkBAIC02NCw2ICs2NCw3IEBAIE5vZGUgKnJlcGxpY2F0aW9uX3BhcnNlX3Jlc3VsdDsK ICV0b2tlbiBLX1NUQVJUX1JFUExJQ0FUSU9OCiAldG9rZW4gS19DUkVBVEVfUkVQTElDQVRJT05f U0xPVAogJXRva2VuIEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UCisldG9rZW4gS19BTFRFUl9SRVBM SUNBVElPTl9TTE9UCiAldG9rZW4gS19USU1FTElORV9ISVNUT1JZCiAldG9rZW4gS19XQUlUCiAl dG9rZW4gS19USU1FTElORQpAQCAtODAsOCArODEsOSBAQCBOb2RlICpyZXBsaWNhdGlvbl9wYXJz ZV9yZXN1bHQ7CiAKICV0eXBlIDxub2RlPgljb21tYW5kCiAldHlwZSA8bm9kZT4JYmFzZV9iYWNr dXAgc3RhcnRfcmVwbGljYXRpb24gc3RhcnRfbG9naWNhbF9yZXBsaWNhdGlvbgotCQkJCWNyZWF0 ZV9yZXBsaWNhdGlvbl9zbG90IGRyb3BfcmVwbGljYXRpb25fc2xvdCBpZGVudGlmeV9zeXN0ZW0K LQkJCQlyZWFkX3JlcGxpY2F0aW9uX3Nsb3QgdGltZWxpbmVfaGlzdG9yeSBzaG93IHVwbG9hZF9t YW5pZmVzdAorCQkJCWNyZWF0ZV9yZXBsaWNhdGlvbl9zbG90IGRyb3BfcmVwbGljYXRpb25fc2xv dAorCQkJCWFsdGVyX3JlcGxpY2F0aW9uX3Nsb3QgaWRlbnRpZnlfc3lzdGVtIHJlYWRfcmVwbGlj YXRpb25fc2xvdAorCQkJCXRpbWVsaW5lX2hpc3Rvcnkgc2hvdyB1cGxvYWRfbWFuaWZlc3QKICV0 eXBlIDxsaXN0PglnZW5lcmljX29wdGlvbl9saXN0CiAldHlwZSA8ZGVmZWx0PglnZW5lcmljX29w dGlvbgogJXR5cGUgPHVpbnR2YWw+CW9wdF90aW1lbGluZQpAQCAtMTEyLDYgKzExNCw3IEBAIGNv bW1hbmQ6CiAJCQl8IHN0YXJ0X2xvZ2ljYWxfcmVwbGljYXRpb24KIAkJCXwgY3JlYXRlX3JlcGxp Y2F0aW9uX3Nsb3QKIAkJCXwgZHJvcF9yZXBsaWNhdGlvbl9zbG90CisJCQl8IGFsdGVyX3JlcGxp Y2F0aW9uX3Nsb3QKIAkJCXwgcmVhZF9yZXBsaWNhdGlvbl9zbG90CiAJCQl8IHRpbWVsaW5lX2hp c3RvcnkKIAkJCXwgc2hvdwpAQCAtMjU5LDYgKzI2MiwxOCBAQCBkcm9wX3JlcGxpY2F0aW9uX3Ns b3Q6CiAJCQkJfQogCQkJOwogCisvKiBBTFRFUl9SRVBMSUNBVElPTl9TTE9UIHNsb3QgKi8KK2Fs dGVyX3JlcGxpY2F0aW9uX3Nsb3Q6CisJCQlLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QgSURFTlQg JygnIGdlbmVyaWNfb3B0aW9uX2xpc3QgJyknCisJCQkJeworCQkJCQlBbHRlclJlcGxpY2F0aW9u U2xvdENtZCAqY21kOworCQkJCQljbWQgPSBtYWtlTm9kZShBbHRlclJlcGxpY2F0aW9uU2xvdENt ZCk7CisJCQkJCWNtZC0+c2xvdG5hbWUgPSAkMjsKKwkJCQkJY21kLT5vcHRpb25zID0gJDQ7CisJ CQkJCSQkID0gKE5vZGUgKikgY21kOworCQkJCX0KKwkJCTsKKwogLyoKICAqIFNUQVJUX1JFUExJ Q0FUSU9OIFtTTE9UIHNsb3RdIFtQSFlTSUNBTF0gJVgvJVggW1RJTUVMSU5FICVkXQogICovCkBA IC00MTAsNiArNDI1LDcgQEAgaWRlbnRfb3Jfa2V5d29yZDoKIAkJCXwgS19TVEFSVF9SRVBMSUNB VElPTgkJCXsgJCQgPSAic3RhcnRfcmVwbGljYXRpb24iOyB9CiAJCQl8IEtfQ1JFQVRFX1JFUExJ Q0FUSU9OX1NMT1QJeyAkJCA9ICJjcmVhdGVfcmVwbGljYXRpb25fc2xvdCI7IH0KIAkJCXwgS19E Uk9QX1JFUExJQ0FUSU9OX1NMT1QJCXsgJCQgPSAiZHJvcF9yZXBsaWNhdGlvbl9zbG90IjsgfQor CQkJfCBLX0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QJCXsgJCQgPSAiYWx0ZXJfcmVwbGljYXRpb25f c2xvdCI7IH0KIAkJCXwgS19USU1FTElORV9ISVNUT1JZCQkJeyAkJCA9ICJ0aW1lbGluZV9oaXN0 b3J5IjsgfQogCQkJfCBLX1dBSVQJCQkJCQl7ICQkID0gIndhaXQiOyB9CiAJCQl8IEtfVElNRUxJ TkUJCQkJCXsgJCQgPSAidGltZWxpbmUiOyB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9yZXBsX3NjYW5uZXIubCBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3JlcGxfc2Nh bm5lci5sCmluZGV4IDZmYTYyNTYxN2IuLmU3ZGVmODAwNjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3JlcGxfc2Nhbm5lci5sCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3JlcGxfc2Nhbm5lci5sCkBAIC0xMjUsNiArMTI1LDcgQEAgVElNRUxJTkUJCQl7IHJldHVy biBLX1RJTUVMSU5FOyB9CiBTVEFSVF9SRVBMSUNBVElPTgl7IHJldHVybiBLX1NUQVJUX1JFUExJ Q0FUSU9OOyB9CiBDUkVBVEVfUkVQTElDQVRJT05fU0xPVAkJeyByZXR1cm4gS19DUkVBVEVfUkVQ TElDQVRJT05fU0xPVDsgfQogRFJPUF9SRVBMSUNBVElPTl9TTE9UCQl7IHJldHVybiBLX0RST1Bf UkVQTElDQVRJT05fU0xPVDsgfQorQUxURVJfUkVQTElDQVRJT05fU0xPVAkJeyByZXR1cm4gS19B TFRFUl9SRVBMSUNBVElPTl9TTE9UOyB9CiBUSU1FTElORV9ISVNUT1JZCXsgcmV0dXJuIEtfVElN RUxJTkVfSElTVE9SWTsgfQogUEhZU0lDQUwJCQl7IHJldHVybiBLX1BIWVNJQ0FMOyB9CiBSRVNF UlZFX1dBTAkJCXsgcmV0dXJuIEtfUkVTRVJWRV9XQUw7IH0KQEAgLTMwMiw2ICszMDMsNyBAQCBy ZXBsaWNhdGlvbl9zY2FubmVyX2lzX3JlcGxpY2F0aW9uX2NvbW1hbmQodm9pZCkKIAkJY2FzZSBL X1NUQVJUX1JFUExJQ0FUSU9OOgogCQljYXNlIEtfQ1JFQVRFX1JFUExJQ0FUSU9OX1NMT1Q6CiAJ CWNhc2UgS19EUk9QX1JFUExJQ0FUSU9OX1NMT1Q6CisJCWNhc2UgS19BTFRFUl9SRVBMSUNBVElP Tl9TTE9UOgogCQljYXNlIEtfUkVBRF9SRVBMSUNBVElPTl9TTE9UOgogCQljYXNlIEtfVElNRUxJ TkVfSElTVE9SWToKIAkJY2FzZSBLX1VQTE9BRF9NQU5JRkVTVDoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Qu YwppbmRleCA1MmRhNjk0Yzc5Li42OTYzNzY0MDBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBA IC05MCw3ICs5MCw3IEBAIHR5cGVkZWYgc3RydWN0IFJlcGxpY2F0aW9uU2xvdE9uRGlzawogCXNp emVvZihSZXBsaWNhdGlvblNsb3RPbkRpc2spIC0gUmVwbGljYXRpb25TbG90T25EaXNrQ29uc3Rh bnRTaXplCiAKICNkZWZpbmUgU0xPVF9NQUdJQwkJMHgxMDUxQ0ExCS8qIGZvcm1hdCBpZGVudGlm aWVyICovCi0jZGVmaW5lIFNMT1RfVkVSU0lPTgkzCQkvKiB2ZXJzaW9uIGZvciBuZXcgZmlsZXMg Ki8KKyNkZWZpbmUgU0xPVF9WRVJTSU9OCTQJCS8qIHZlcnNpb24gZm9yIG5ldyBmaWxlcyAqLwog CiAvKiBDb250cm9sIGFycmF5IGZvciByZXBsaWNhdGlvbiBzbG90IG1hbmFnZW1lbnQgKi8KIFJl cGxpY2F0aW9uU2xvdEN0bERhdGEgKlJlcGxpY2F0aW9uU2xvdEN0bCA9IE5VTEw7CkBAIC0yNDgs MTAgKzI0OCwxMyBAQCBSZXBsaWNhdGlvblNsb3RWYWxpZGF0ZU5hbWUoY29uc3QgY2hhciAqbmFt ZSwgaW50IGVsZXZlbCkKICAqICAgICBkdXJpbmcgZ2V0dGluZyBjaGFuZ2VzLCBpZiB0aGUgdHdv X3BoYXNlIG9wdGlvbiBpcyBlbmFibGVkIGl0IGNhbiBza2lwCiAgKiAgICAgcHJlcGFyZSBiZWNh dXNlIGJ5IHRoYXQgdGltZSBzdGFydCBkZWNvZGluZyBwb2ludCBoYXMgYmVlbiBtb3ZlZC4gU28g dGhlCiAgKiAgICAgdXNlciB3aWxsIG9ubHkgZ2V0IGNvbW1pdCBwcmVwYXJlZC4KKyAqIGZhaWxv dmVyOiBJZiBlbmFibGVkLCBhbGxvd3MgdGhlIHNsb3QgdG8gYmUgc3luY2VkIHRvIHBoeXNpY2Fs IHN0YW5kYnlzIHNvCisgKiAgICAgdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBiZSByZXN1 bWVkIGFmdGVyIGZhaWxvdmVyLgogICovCiB2b2lkCiBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29u c3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKLQkJCQkJICBSZXBsaWNhdGlvblNsb3RQ ZXJzaXN0ZW5jeSBwZXJzaXN0ZW5jeSwgYm9vbCB0d29fcGhhc2UpCisJCQkJCSAgUmVwbGljYXRp b25TbG90UGVyc2lzdGVuY3kgcGVyc2lzdGVuY3ksCisJCQkJCSAgYm9vbCB0d29fcGhhc2UsIGJv b2wgZmFpbG92ZXIpCiB7CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTlVMTDsKIAlpbnQJCQlp OwpAQCAtMzExLDYgKzMxNCw3IEBAIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpu YW1lLCBib29sIGRiX3NwZWNpZmljLAogCXNsb3QtPmRhdGEucGVyc2lzdGVuY3kgPSBwZXJzaXN0 ZW5jeTsKIAlzbG90LT5kYXRhLnR3b19waGFzZSA9IHR3b19waGFzZTsKIAlzbG90LT5kYXRhLnR3 b19waGFzZV9hdCA9IEludmFsaWRYTG9nUmVjUHRyOworCXNsb3QtPmRhdGEuZmFpbG92ZXIgPSBm YWlsb3ZlcjsKIAogCS8qIGFuZCB0aGVuIGRhdGEgb25seSBwcmVzZW50IGluIHNoYXJlZCBtZW1v cnkgKi8KIAlzbG90LT5qdXN0X2RpcnRpZWQgPSBmYWxzZTsKQEAgLTY3OSw2ICs2ODMsMzEgQEAg UmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCkKIAlSZXBs aWNhdGlvblNsb3REcm9wQWNxdWlyZWQoKTsKIH0KIAorLyoKKyAqIENoYW5nZSB0aGUgZGVmaW5p dGlvbiBvZiB0aGUgc2xvdCBpZGVudGlmaWVkIGJ5IHRoZSBzcGVjaWZpZWQgbmFtZS4KKyAqLwor dm9pZAorUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3Zl cikKK3sKKwlBc3NlcnQoTXlSZXBsaWNhdGlvblNsb3QgPT0gTlVMTCk7CisKKwlSZXBsaWNhdGlv blNsb3RBY3F1aXJlKG5hbWUsIHRydWUpOworCisJaWYgKFNsb3RJc1BoeXNpY2FsKE15UmVwbGlj YXRpb25TbG90KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQllcnJtc2coImNhbm5vdCB1c2UgJXMgd2l0aCBhIHBoeXNp Y2FsIHJlcGxpY2F0aW9uIHNsb3QiLAorCQkJCQkgICAiQUxURVJfUkVQTElDQVRJT05fU0xPVCIp KTsKKworCVNwaW5Mb2NrQWNxdWlyZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKKwlNeVJl cGxpY2F0aW9uU2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOworCVNwaW5Mb2NrUmVsZWFz ZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKKworCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0 eSgpOworCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKKwlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7 Cit9CisKIC8qCiAgKiBQZXJtYW5lbnRseSBkcm9wIHRoZSBjdXJyZW50bHkgYWNxdWlyZWQgcmVw bGljYXRpb24gc2xvdC4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCBj YWQzNWRjZTdmLi5jOTNkYmE4NTViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9zbG90ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwpA QCAtNDIsNyArNDIsOCBAQCBjcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFyICpu YW1lLCBib29sIGltbWVkaWF0ZWx5X3Jlc2VydmUsCiAKIAkvKiBhY3F1aXJlIHJlcGxpY2F0aW9u IHNsb3QsIHRoaXMgd2lsbCBjaGVjayBmb3IgY29uZmxpY3RpbmcgbmFtZXMgKi8KIAlSZXBsaWNh dGlvblNsb3RDcmVhdGUobmFtZSwgZmFsc2UsCi0JCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBP UkFSWSA6IFJTX1BFUlNJU1RFTlQsIGZhbHNlKTsKKwkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVN UE9SQVJZIDogUlNfUEVSU0lTVEVOVCwgZmFsc2UsCisJCQkJCQkgIGZhbHNlKTsKIAogCWlmIChp bW1lZGlhdGVseV9yZXNlcnZlKQogCXsKQEAgLTExNyw2ICsxMTgsNyBAQCBwZ19jcmVhdGVfcGh5 c2ljYWxfcmVwbGljYXRpb25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIHZvaWQKIGNy ZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgY2hhciAqcGx1Z2luLAog CQkJCQkJCQlib29sIHRlbXBvcmFyeSwgYm9vbCB0d29fcGhhc2UsCisJCQkJCQkJCWJvb2wgZmFp bG92ZXIsCiAJCQkJCQkJCVhMb2dSZWNQdHIgcmVzdGFydF9sc24sCiAJCQkJCQkJCWJvb2wgZmlu ZF9zdGFydHBvaW50KQogewpAQCAtMTMzLDcgKzEzNSw4IEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoY2hhciAqbmFtZSwgY2hhciAqcGx1Z2luLAogCSAqIGVycm9yIGFzIHdlbGwu CiAJICovCiAJUmVwbGljYXRpb25TbG90Q3JlYXRlKG5hbWUsIHRydWUsCi0JCQkJCQkgIHRlbXBv cmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlKTsKKwkJCQkJCSAg dGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29fcGhhc2UsCisJCQkJ CQkgIGZhaWxvdmVyKTsKIAogCS8qCiAJICogQ3JlYXRlIGxvZ2ljYWwgZGVjb2RpbmcgY29udGV4 dCB0byBmaW5kIHN0YXJ0IHBvaW50IG9yLCBpZiB3ZSBkb24ndApAQCAtMTcxLDYgKzE3NCw3IEBA IHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAlO YW1lCQlwbHVnaW4gPSBQR19HRVRBUkdfTkFNRSgxKTsKIAlib29sCQl0ZW1wb3JhcnkgPSBQR19H RVRBUkdfQk9PTCgyKTsKIAlib29sCQl0d29fcGhhc2UgPSBQR19HRVRBUkdfQk9PTCgzKTsKKwli b29sCQlmYWlsb3ZlciA9IFBHX0dFVEFSR19CT09MKDQpOwogCURhdHVtCQlyZXN1bHQ7CiAJVHVw bGVEZXNjCXR1cGRlc2M7CiAJSGVhcFR1cGxlCXR1cGxlOwpAQCAtMTg4LDYgKzE5Miw3IEBAIHBn X2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJ CQkJCU5hbWVTdHIoKnBsdWdpbiksCiAJCQkJCQkJCQl0ZW1wb3JhcnksCiAJCQkJCQkJCQl0d29f cGhhc2UsCisJCQkJCQkJCQlmYWlsb3ZlciwKIAkJCQkJCQkJCUludmFsaWRYTG9nUmVjUHRyLAog CQkJCQkJCQkJdHJ1ZSk7CiAKQEAgLTIzMiw3ICsyMzcsNyBAQCBwZ19kcm9wX3JlcGxpY2F0aW9u X3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIERhdHVtCiBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMo UEdfRlVOQ1RJT05fQVJHUykKIHsKLSNkZWZpbmUgUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NP TFMgMTUKKyNkZWZpbmUgUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMgMTYKIAlSZXR1cm5T ZXRJbmZvICpyc2luZm8gPSAoUmV0dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CiAJ WExvZ1JlY1B0cgljdXJybHNuOwogCWludAkJCXNsb3RubzsKQEAgLTQyNiw2ICs0MzEsOCBAQCBw Z19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCX0KIAkJfQogCisJ CXZhbHVlc1tpKytdID0gQm9vbEdldERhdHVtKHNsb3RfY29udGVudHMuZGF0YS5mYWlsb3Zlcik7 CisKIAkJQXNzZXJ0KGkgPT0gUEdfR0VUX1JFUExJQ0FUSU9OX1NMT1RTX0NPTFMpOwogCiAJCXR1 cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2luZm8tPnNldERlc2MsCkBA IC03ODIsMTEgKzc4OSwyMCBAQCBjb3B5X3JlcGxpY2F0aW9uX3Nsb3QoRnVuY3Rpb25DYWxsSW5m byBmY2luZm8sIGJvb2wgbG9naWNhbF9zbG90KQogCQkgKiBXZSBtdXN0IG5vdCB0cnkgdG8gcmVh ZCBXQUwsIHNpbmNlIHdlIGhhdmVuJ3QgcmVzZXJ2ZWQgaXQgeWV0IC0tCiAJCSAqIGhlbmNlIHBh c3MgZmluZF9zdGFydHBvaW50IGZhbHNlLiAgY29uZmlybWVkX2ZsdXNoIHdpbGwgYmUgc2V0CiAJ CSAqIGJlbG93LCBieSBjb3B5aW5nIGZyb20gdGhlIHNvdXJjZSBzbG90LgorCQkgKgorCQkgKiBU byBhdm9pZCBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhlIHNsb3RzeW5jIHdvcmtlciB3aGVuIHRo ZQorCQkgKiByZXN0YXJ0X2xzbiBvZiBhIHJlcGxpY2F0aW9uIHNsb3QgZ29lcyBiYWNrd2FyZHMs IHdlIHNldCB0aGUKKwkJICogZmFpbG92ZXIgb3B0aW9uIHRvIGZhbHNlIGhlcmUuIFRoaXMgc2l0 dWF0aW9uIG9jY3VycyB3aGVuIGEgc2xvdCBvbgorCQkgKiB0aGUgcHJpbWFyeSBzZXJ2ZXIgaXMg ZHJvcHBlZCBhbmQgaW1tZWRpYXRlbHkgcmVwbGFjZWQgd2l0aCBhIG5ldworCQkgKiBzbG90IG9m IHRoZSBzYW1lIG5hbWUsIGNyZWF0ZWQgYnkgY29weWluZyBmcm9tIGFub3RoZXIgZXhpc3RpbmcK KwkJICogc2xvdC4gSG93ZXZlciwgdGhlIHNsb3RzeW5jIHdvcmtlciB3aWxsIG9ubHkgb2JzZXJ2 ZSB0aGUgcmVzdGFydF9sc24KKwkJICogb2YgdGhlIHNhbWUgc2xvdCBnb2luZyBiYWNrd2FyZHMu CiAJCSAqLwogCQljcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KE5hbWVTdHIoKmRzdF9u YW1lKSwKIAkJCQkJCQkJCQlwbHVnaW4sCiAJCQkJCQkJCQkJdGVtcG9yYXJ5LAogCQkJCQkJCQkJ CWZhbHNlLAorCQkJCQkJCQkJCWZhbHNlLAogCQkJCQkJCQkJCXNyY19yZXN0YXJ0X2xzbiwKIAkJ CQkJCQkJCQlmYWxzZSk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKaW5k ZXggZTAwMzk1ZmYyYi4uZmZhY2Q1NWU1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vd2FscmVjZWl2ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNl aXZlci5jCkBAIC0zODcsNyArMzg3LDcgQEAgV2FsUmVjZWl2ZXJNYWluKHZvaWQpCiAJCQkJCSAi cGdfd2FscmVjZWl2ZXJfJWxsZCIsCiAJCQkJCSAobG9uZyBsb25nIGludCkgd2FscmN2X2dldF9i YWNrZW5kX3BpZCh3cmNvbm4pKTsKIAotCQkJd2FscmN2X2NyZWF0ZV9zbG90KHdyY29ubiwgc2xv dG5hbWUsIHRydWUsIGZhbHNlLCAwLCBOVUxMKTsKKwkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNv bm4sIHNsb3RuYW1lLCB0cnVlLCBmYWxzZSwgZmFsc2UsIDAsIE5VTEwpOwogCiAJCQlTcGluTG9j a0FjcXVpcmUoJndhbHJjdi0+bXV0ZXgpOwogCQkJc3RybGNweSh3YWxyY3YtPnNsb3RuYW1lLCBz bG90bmFtZSwgTkFNRURBVEFMRU4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRl eCAwODcwMzFlOWRjLi43N2M4YmFhMzJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIu YwpAQCAtMTEyNiwxMiArMTEyNiwxMyBAQCBzdGF0aWMgdm9pZAogcGFyc2VDcmVhdGVSZXBsU2xv dE9wdGlvbnMoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQsCiAJCQkJCQkgICBib29sICpy ZXNlcnZlX3dhbCwKIAkJCQkJCSAgIENSU1NuYXBzaG90QWN0aW9uICpzbmFwc2hvdF9hY3Rpb24s Ci0JCQkJCQkgICBib29sICp0d29fcGhhc2UpCisJCQkJCQkgICBib29sICp0d29fcGhhc2UsIGJv b2wgKmZhaWxvdmVyKQogewogCUxpc3RDZWxsICAgKmxjOwogCWJvb2wJCXNuYXBzaG90X2FjdGlv bl9naXZlbiA9IGZhbHNlOwogCWJvb2wJCXJlc2VydmVfd2FsX2dpdmVuID0gZmFsc2U7CiAJYm9v bAkJdHdvX3BoYXNlX2dpdmVuID0gZmFsc2U7CisJYm9vbAkJZmFpbG92ZXJfZ2l2ZW4gPSBmYWxz ZTsKIAogCS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBjbWQtPm9wdGlvbnMpCkBA IC0xMTgxLDYgKzExODIsMTUgQEAgcGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoQ3JlYXRlUmVw bGljYXRpb25TbG90Q21kICpjbWQsCiAJCQl0d29fcGhhc2VfZ2l2ZW4gPSB0cnVlOwogCQkJKnR3 b19waGFzZSA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOwogCQl9CisJCWVsc2UgaWYgKHN0cmNtcChk ZWZlbC0+ZGVmbmFtZSwgImZhaWxvdmVyIikgPT0gMCkKKwkJeworCQkJaWYgKGZhaWxvdmVyX2dp dmVuIHx8IGNtZC0+a2luZCAhPSBSRVBMSUNBVElPTl9LSU5EX0xPR0lDQUwpCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBl cnJtc2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWZhaWxvdmVy X2dpdmVuID0gdHJ1ZTsKKwkJCSpmYWlsb3ZlciA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9 CiAJCWVsc2UKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlcyIsIGRlZmVs LT5kZWZuYW1lKTsKIAl9CkBAIC0xMTk3LDYgKzEyMDcsNyBAQCBDcmVhdGVSZXBsaWNhdGlvblNs b3QoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAJY2hhcgkgICAqc2xvdF9uYW1lOwog CWJvb2wJCXJlc2VydmVfd2FsID0gZmFsc2U7CiAJYm9vbAkJdHdvX3BoYXNlID0gZmFsc2U7CisJ Ym9vbAkJZmFpbG92ZXIgPSBmYWxzZTsKIAlDUlNTbmFwc2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rp b24gPSBDUlNfRVhQT1JUX1NOQVBTSE9UOwogCURlc3RSZWNlaXZlciAqZGVzdDsKIAlUdXBPdXRw dXRTdGF0ZSAqdHN0YXRlOwpAQCAtMTIwNiwxMyArMTIxNywxNCBAQCBDcmVhdGVSZXBsaWNhdGlv blNsb3QoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAKIAlBc3NlcnQoIU15UmVwbGlj YXRpb25TbG90KTsKIAotCXBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKGNtZCwgJnJlc2VydmVf d2FsLCAmc25hcHNob3RfYWN0aW9uLCAmdHdvX3BoYXNlKTsKKwlwYXJzZUNyZWF0ZVJlcGxTbG90 T3B0aW9ucyhjbWQsICZyZXNlcnZlX3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSwK KwkJCQkJCQkgICAmZmFpbG92ZXIpOwogCiAJaWYgKGNtZC0+a2luZCA9PSBSRVBMSUNBVElPTl9L SU5EX1BIWVNJQ0FMKQogCXsKIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUs IGZhbHNlLAogCQkJCQkJCSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJT SVNURU5ULAotCQkJCQkJCSAgZmFsc2UpOworCQkJCQkJCSAgZmFsc2UsIGZhbHNlKTsKIAogCQlp ZiAocmVzZXJ2ZV93YWwpCiAJCXsKQEAgLTEyNDMsNyArMTI1NSw3IEBAIENyZWF0ZVJlcGxpY2F0 aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAkJICovCiAJCVJlcGxpY2F0 aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1lLCB0cnVlLAogCQkJCQkJCSAgY21kLT50ZW1wb3Jh cnkgPyBSU19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsCi0JCQkJCQkJICB0d29fcGhhc2UpOwor CQkJCQkJCSAgdHdvX3BoYXNlLCBmYWlsb3Zlcik7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9ucyBj aGVjayBlYXJseSBzbyB0aGF0IHdlIGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpAQCAtMTM5 OCw2ICsxNDEwLDQzIEBAIERyb3BSZXBsaWNhdGlvblNsb3QoRHJvcFJlcGxpY2F0aW9uU2xvdENt ZCAqY21kKQogCVJlcGxpY2F0aW9uU2xvdERyb3AoY21kLT5zbG90bmFtZSwgIWNtZC0+d2FpdCk7 CiB9CiAKKy8qCisgKiBQcm9jZXNzIGV4dHJhIG9wdGlvbnMgZ2l2ZW4gdG8gQUxURVJfUkVQTElD QVRJT05fU0xPVC4KKyAqLworc3RhdGljIHZvaWQKK1BhcnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMo QWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQgKmNtZCwgYm9vbCAqZmFpbG92ZXIpCit7CisJYm9vbAkJ ZmFpbG92ZXJfZ2l2ZW4gPSBmYWxzZTsKKworCS8qIFBhcnNlIG9wdGlvbnMgKi8KKwlmb3JlYWNo X3B0cihEZWZFbGVtLCBkZWZlbCwgY21kLT5vcHRpb25zKQorCXsKKwkJaWYgKHN0cmNtcChkZWZl bC0+ZGVmbmFtZSwgImZhaWxvdmVyIikgPT0gMCkKKwkJeworCQkJaWYgKGZhaWxvdmVyX2dpdmVu KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7 CisJCQlmYWlsb3Zlcl9naXZlbiA9IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZHZXRCb29sZWFu KGRlZmVsKTsKKwkJfQorCQllbHNlCisJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9wdGlv bjogJXMiLCBkZWZlbC0+ZGVmbmFtZSk7CisJfQorfQorCisvKgorICogQ2hhbmdlIHRoZSBkZWZp bml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUmVw bGljYXRpb25TbG90KEFsdGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQpCit7CisJYm9vbAkJZmFp bG92ZXIgPSBmYWxzZTsKKworCVBhcnNlQWx0ZXJSZXBsU2xvdE9wdGlvbnMoY21kLCAmZmFpbG92 ZXIpOworCVJlcGxpY2F0aW9uU2xvdEFsdGVyKGNtZC0+c2xvdG5hbWUsIGZhaWxvdmVyKTsKK30K KwogLyoKICAqIExvYWQgcHJldmlvdXNseSBpbml0aWF0ZWQgbG9naWNhbCBzbG90IGFuZCBwcmVw YXJlIGZvciBzZW5kaW5nIGRhdGEgKHZpYQogICogV2FsU25kTG9vcCkuCkBAIC0xOTcxLDYgKzIw MjAsMTMgQEAgZXhlY19yZXBsaWNhdGlvbl9jb21tYW5kKGNvbnN0IGNoYXIgKmNtZF9zdHJpbmcp CiAJCQlFbmRSZXBsaWNhdGlvbkNvbW1hbmQoY21kdGFnKTsKIAkJCWJyZWFrOwogCisJCWNhc2Ug VF9BbHRlclJlcGxpY2F0aW9uU2xvdENtZDoKKwkJCWNtZHRhZyA9ICJBTFRFUl9SRVBMSUNBVElP Tl9TTE9UIjsKKwkJCXNldF9wc19kaXNwbGF5KGNtZHRhZyk7CisJCQlBbHRlclJlcGxpY2F0aW9u U2xvdCgoQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQgKikgY21kX25vZGUpOworCQkJRW5kUmVwbGlj YXRpb25Db21tYW5kKGNtZHRhZyk7CisJCQlicmVhazsKKwogCQljYXNlIFRfU3RhcnRSZXBsaWNh dGlvbkNtZDoKIAkJCXsKIAkJCQlTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQgPSAoU3RhcnRSZXBs aWNhdGlvbkNtZCAqKSBjbWRfbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDIyZDFlNmNmOTIuLmJlOTA4 N2VkZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDY0MSw2ICs0NjQxLDcgQEAgZ2V0U3Vic2NyaXB0aW9u cyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3Vib3JpZ2luOwogCWludAkJCWlfc3Vib3JpZ2lu cmVtb3RlbHNuOwogCWludAkJCWlfc3ViZW5hYmxlZDsKKwlpbnQJCQlpX3N1YmZhaWxvdmVyOwog CWludAkJCWksCiAJCQkJbnR1cHM7CiAKQEAgLTQ3MDYsMTAgKzQ3MDcsMTcgQEAgZ2V0U3Vic2Ny aXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCiAJaWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlICYmIGZv dXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwgIiBvLnJlbW90ZV9sc24gQVMgc3Vib3JpZ2lucmVtb3RlbHNuLFxuIgotCQkJCQkJCSAiIHMu c3ViZW5hYmxlZFxuIik7CisJCQkJCQkJICIgcy5zdWJlbmFibGVkLFxuIik7CiAJZWxzZQogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBOVUxMIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixc biIKLQkJCQkJCQkgIiBmYWxzZSBBUyBzdWJlbmFibGVkXG4iKTsKKwkJCQkJCQkgIiBmYWxzZSBB UyBzdWJlbmFibGVkLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDAp CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiIHMuc3ViZmFpbG92ZXJc biIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICIgZmFsc2Ug QVMgc3ViZmFpbG92ZXJcbiIpOwogCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJ CQkgIkZST00gcGdfc3Vic2NyaXB0aW9uIHNcbiIpOwpAQCAtNDc0OCw2ICs0NzU2LDcgQEAgZ2V0 U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWlfc3Vib3JpZ2luID0gUFFmbnVtYmVyKHJl cywgInN1Ym9yaWdpbiIpOwogCWlfc3Vib3JpZ2lucmVtb3RlbHNuID0gUFFmbnVtYmVyKHJlcywg InN1Ym9yaWdpbnJlbW90ZWxzbiIpOwogCWlfc3ViZW5hYmxlZCA9IFBRZm51bWJlcihyZXMsICJz dWJlbmFibGVkIik7CisJaV9zdWJmYWlsb3ZlciA9IFBRZm51bWJlcihyZXMsICJzdWJmYWlsb3Zl ciIpOwogCiAJc3ViaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihTdWJzY3JpcHRpb25J bmZvKSk7CiAKQEAgLTQ3OTIsNiArNDgwMSw4IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAq Zm91dCkKIAkJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vib3JpZ2lucmVtb3Rl bHNuKSk7CiAJCXN1YmluZm9baV0uc3ViZW5hYmxlZCA9CiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1 ZShyZXMsIGksIGlfc3ViZW5hYmxlZCkpOworCQlzdWJpbmZvW2ldLnN1YmZhaWxvdmVyID0KKwkJ CXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9zdWJmYWlsb3ZlcikpOwogCiAJCS8qIERl Y2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZU9iamVj dCgmKHN1YmluZm9baV0uZG9iaiksIGZvdXQpOwpAQCAtNTAyMCw2ICs1MDMxLDkgQEAgZHVtcFN1 YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZv KQogCWlmIChzdHJjbXAoc3ViaW5mby0+c3VidHdvcGhhc2VzdGF0ZSwgdHdvX3BoYXNlX2Rpc2Fi bGVkKSAhPSAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgdHdvX3BoYXNlID0g b24iKTsKIAorCWlmIChzdHJjbXAoc3ViaW5mby0+c3ViZmFpbG92ZXIsICJ0IikgPT0gMCkKKwkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIGZhaWxvdmVyID0gdHJ1ZSIpOworCiAJaWYg KHN0cmNtcChzdWJpbmZvLT5zdWJkaXNhYmxlb25lcnIsICJ0IikgPT0gMCkKIAkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIsIGRpc2FibGVfb25fZXJyb3IgPSB0cnVlIik7CiAKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oCmluZGV4IDlhMzQzNDdjZmMuLjYyMzgyMTM4MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNjc1LDYg KzY3NSw3IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3Vi cHVibGljYXRpb25zOwogCWNoYXIJICAgKnN1Ym9yaWdpbjsKIAljaGFyCSAgICpzdWJvcmlnaW5y ZW1vdGVsc247CisJY2hhcgkgICAqc3ViZmFpbG92ZXI7CiB9IFN1YnNjcmlwdGlvbkluZm87CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jIGIvc3JjL2Jpbi9wZ191 cGdyYWRlL2luZm8uYwppbmRleCA3NGUwMmIzZjgyLi4xODNjMmY4NGViIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMK QEAgLTY2Niw3ICs2NjYsNyBAQCBnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKERi SW5mbyAqZGJpbmZvLCBib29sIGxpdmVfY2hlY2spCiAJICogc3RhcnRlZCBhbmQgc3RvcHBlZCBz ZXZlcmFsIHRpbWVzIGNhdXNpbmcgYW55IHRlbXBvcmFyeSBzbG90cyB0byBiZQogCSAqIHJlbW92 ZWQuCiAJICovCi0JcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIlNFTEVDVCBzbG90X25h bWUsIHBsdWdpbiwgdHdvX3BoYXNlLCAiCisJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwg IlNFTEVDVCBzbG90X25hbWUsIHBsdWdpbiwgdHdvX3BoYXNlLCBmYWlsb3ZlciwgIgogCQkJCQkJ CSIlcyBhcyBjYXVnaHRfdXAsIGNvbmZsaWN0X3JlYXNvbiBJUyBOT1QgTlVMTCBhcyBpbnZhbGlk ICIKIAkJCQkJCQkiRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzICIKIAkJCQkJ CQkiV0hFUkUgc2xvdF90eXBlID0gJ2xvZ2ljYWwnIEFORCAiCkBAIC02ODQsNiArNjg0LDcgQEAg Z2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBs aXZlX2NoZWNrKQogCQlpbnQJCQlpX3Nsb3RuYW1lOwogCQlpbnQJCQlpX3BsdWdpbjsKIAkJaW50 CQkJaV90d29waGFzZTsKKwkJaW50CQkJaV9mYWlsb3ZlcjsKIAkJaW50CQkJaV9jYXVnaHRfdXA7 CiAJCWludAkJCWlfaW52YWxpZDsKIApAQCAtNjkyLDYgKzY5Myw3IEBAIGdldF9vbGRfY2x1c3Rl cl9sb2dpY2FsX3Nsb3RfaW5mb3MoRGJJbmZvICpkYmluZm8sIGJvb2wgbGl2ZV9jaGVjaykKIAkJ aV9zbG90bmFtZSA9IFBRZm51bWJlcihyZXMsICJzbG90X25hbWUiKTsKIAkJaV9wbHVnaW4gPSBQ UWZudW1iZXIocmVzLCAicGx1Z2luIik7CiAJCWlfdHdvcGhhc2UgPSBQUWZudW1iZXIocmVzLCAi dHdvX3BoYXNlIik7CisJCWlfZmFpbG92ZXIgPSBQUWZudW1iZXIocmVzLCAiZmFpbG92ZXIiKTsK IAkJaV9jYXVnaHRfdXAgPSBQUWZudW1iZXIocmVzLCAiY2F1Z2h0X3VwIik7CiAJCWlfaW52YWxp ZCA9IFBRZm51bWJlcihyZXMsICJpbnZhbGlkIik7CiAKQEAgLTcwMiw2ICs3MDQsNyBAQCBnZXRf b2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKERiSW5mbyAqZGJpbmZvLCBib29sIGxpdmVf Y2hlY2spCiAJCQljdXJyLT5zbG90bmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgc2xv dG51bSwgaV9zbG90bmFtZSkpOwogCQkJY3Vyci0+cGx1Z2luID0gcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBzbG90bnVtLCBpX3BsdWdpbikpOwogCQkJY3Vyci0+dHdvX3BoYXNlID0gKHN0cmNt cChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV90d29waGFzZSksICJ0IikgPT0gMCk7CisJCQlj dXJyLT5mYWlsb3ZlciA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfZmFpbG92 ZXIpLCAidCIpID09IDApOwogCQkJY3Vyci0+Y2F1Z2h0X3VwID0gKHN0cmNtcChQUWdldHZhbHVl KHJlcywgc2xvdG51bSwgaV9jYXVnaHRfdXApLCAidCIpID09IDApOwogCQkJY3Vyci0+aW52YWxp ZCA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfaW52YWxpZCksICJ0IikgPT0g MCk7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4IDE0YTM2ZjA1MDMuLjEwYzk0YTZj MWYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIvc3Jj L2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtOTE2LDggKzkxNiwxMCBAQCBjcmVhdGVf bG9naWNhbF9yZXBsaWNhdGlvbl9zbG90cyh2b2lkKQogCQkJYXBwZW5kU3RyaW5nTGl0ZXJhbENv bm4ocXVlcnksIHNsb3RfaW5mby0+c2xvdG5hbWUsIGNvbm4pOwogCQkJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksICIsICIpOwogCQkJYXBwZW5kU3RyaW5nTGl0ZXJhbENvbm4ocXVlcnksIHNsb3Rf aW5mby0+cGx1Z2luLCBjb25uKTsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCBmYWxz ZSwgJXMpOyIsCi0JCQkJCQkJICBzbG90X2luZm8tPnR3b19waGFzZSA/ICJ0cnVlIiA6ICJmYWxz ZSIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgZmFsc2UsICVzLCAlcyk7IiwK KwkJCQkJCQkgIHNsb3RfaW5mby0+dHdvX3BoYXNlID8gInRydWUiIDogImZhbHNlIiwKKwkJCQkJ CQkgIHNsb3RfaW5mby0+ZmFpbG92ZXIgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAogCQkJUFFjbGVh cihleGVjdXRlUXVlcnlPckRpZShjb25uLCAiJXMiLCBxdWVyeS0+ZGF0YSkpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3BnX3VwZ3JhZGUuaAppbmRleCBhMWQwOGMzZGFiLi5kOWE4NDhjYmZkIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmgKQEAgLTE2MCw2ICsxNjAsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCXR3 b19waGFzZTsJCS8qIGNhbiB0aGUgc2xvdCBkZWNvZGUgMlBDPyAqLwogCWJvb2wJCWNhdWdodF91 cDsJCS8qIGhhcyB0aGUgc2xvdCBjYXVnaHQgdXAgdG8gbGF0ZXN0IGNoYW5nZXM/ICovCiAJYm9v bAkJaW52YWxpZDsJCS8qIGlmIHRydWUsIHRoZSBzbG90IGlzIHVudXNhYmxlICovCisJYm9vbAkJ ZmFpbG92ZXI7CQkvKiBpcyB0aGUgc2xvdCBkZXNpZ25hdGVkIHRvIGJlIHN5bmNlZCB0byB0aGUK KwkJCQkJCQkJICogcGh5c2ljYWwgc3RhbmRieT8gKi8KIH0gTG9naWNhbFNsb3RJbmZvOwogCiB0 eXBlZGVmIHN0cnVjdApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2lj YWxfc2xvdHMucGwgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbApp bmRleCAwYWIzNjgyNDdiLi44M2Q3MWMzMDg0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3Jh ZGUvdC8wMDNfbG9naWNhbF9zbG90cy5wbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDNf bG9naWNhbF9zbG90cy5wbApAQCAtMTcyLDcgKzE3Miw3IEBAICRzdWItPnN0YXJ0OwogJHN1Yi0+ c2FmZV9wc3FsKAogCSdwb3N0Z3JlcycsIHFxWwogCUNSRUFURSBUQUJMRSB0YmwgKGEgaW50KTsK LQlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViIENPTk5FQ1RJT04gJyRvbGRfY29ubnN0 cicgUFVCTElDQVRJT04gcmVncmVzc19wdWIgV0lUSCAodHdvX3BoYXNlID0gJ3RydWUnKQorCUNS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19zdWIgQ09OTkVDVElPTiAnJG9sZF9jb25uc3RyJyBQ VUJMSUNBVElPTiByZWdyZXNzX3B1YiBXSVRIICh0d29fcGhhc2UgPSAndHJ1ZScsIGZhaWxvdmVy ID0gJ3RydWUnKQogXSk7CiAkc3ViLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkb2xkcHVi LCAncmVncmVzc19zdWInKTsKIApAQCAtMTkyLDggKzE5Miw4IEBAIGNvbW1hbmRfb2soW0BwZ191 cGdyYWRlX2NtZF0sICdydW4gb2YgcGdfdXBncmFkZSBvZiBvbGQgY2x1c3RlcicpOwogIyBDaGVj ayB0aGF0IHRoZSBzbG90ICdyZWdyZXNzX3N1YicgaGFzIG1pZ3JhdGVkIHRvIHRoZSBuZXcgY2x1 c3RlcgogJG5ld3B1Yi0+c3RhcnQ7CiBteSAkcmVzdWx0ID0gJG5ld3B1Yi0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCi0JIlNFTEVDVCBzbG90X25hbWUsIHR3b19waGFzZSBGUk9NIHBnX3JlcGxpY2F0 aW9uX3Nsb3RzIik7Ci1pcygkcmVzdWx0LCBxcShyZWdyZXNzX3N1Ynx0KSwgJ2NoZWNrIHRoZSBz bG90IGV4aXN0cyBvbiBuZXcgY2x1c3RlcicpOworCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhh c2UsIGZhaWxvdmVyIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMiKTsKK2lzKCRyZXN1bHQsIHFx KHJlZ3Jlc3Nfc3VifHR8dCksICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXIn KTsKIAogIyBVcGRhdGUgdGhlIGNvbm5lY3Rpb24KIG15ICRuZXdfY29ubnN0ciA9ICRuZXdwdWIt PmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM3Zjk1MTYzMjAuLjZk OWFkNWQ3NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC02NTYzLDcgKzY1NjMsOCBAQCBkZXNjcmliZVN1YnNjcmlw dGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBHcmVzdWx0ICAgKnJl czsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29s IHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OworCQlmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwlmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lv biA8IDEwMDAwMCkKIAl7CkBAIC02NjI3LDYgKzY2MjgsMTEgQEAgZGVzY3JpYmVTdWJzY3JpcHRp b25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJCQkgIGdldHRleHRf bm9vcCgiUGFzc3dvcmQgcmVxdWlyZWQiKSwKIAkJCQkJCQkgIGdldHRleHRfbm9vcCgiUnVuIGFz IG93bmVyPyIpKTsKIAorCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIiwgc3ViZmFpbG92ZXIgQVMgXCIlc1wiXG4iLAor CQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJGYWlsb3ZlciIpKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAogCQkJCQkJICAiLCAgc3Vic3luY2NvbW1pdCBBUyBcIiVzXCJcbiIKIAkJCQkJCSAg IiwgIHN1YmNvbm5pbmZvIEFTIFwiJXNcIlxuIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCAwOTkxNDE2 NWU0Li42YjlhYTIwOGMwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xOTQzLDcgKzE5NDMsNyBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlD T01QTEVURV9XSVRIKCIoIiwgIlBVQkxJQ0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9O IDxuYW1lPiBTRVQgKCAqLwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJ UFRJT04iLCBNYXRjaEFueSkgJiYgVGFpbE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRF X1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgIm9yaWdpbiIsCisJCUNPTVBMRVRF X1dJVEgoImJpbmFyeSIsICJkaXNhYmxlX29uX2Vycm9yIiwgImZhaWxvdmVyIiwgIm9yaWdpbiIs CiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUi LAogCQkJCQkgICJzdHJlYW1pbmciLCAic3luY2hyb25vdXNfY29tbWl0Iik7CiAJLyogQUxURVIg U1VCU0NSSVBUSU9OIDxuYW1lPiBTS0lQICggKi8KQEAgLTMzMzUsNyArMzMzNSw3IEBAIHBzcWxf Y29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJLyogQ29t cGxldGUgIkNSRUFURSBTVUJTQ1JJUFRJT04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwog CWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJDUkVBVEUiLCAiU1VCU0NSSVBUSU9OIikgJiYgVGFpbE1h dGNoZXMoIldJVEgiLCAiKCIpKQogCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiY29ubmVjdCIs ICJjb3B5X2RhdGEiLCAiY3JlYXRlX3Nsb3QiLAotCQkJCQkgICJkaXNhYmxlX29uX2Vycm9yIiwg ImVuYWJsZWQiLCAib3JpZ2luIiwKKwkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVk IiwgImZhaWxvdmVyIiwgIm9yaWdpbiIsCiAJCQkJCSAgInBhc3N3b3JkX3JlcXVpcmVkIiwgInJ1 bl9hc19vd25lciIsICJzbG90X25hbWUiLAogCQkJCQkgICJzdHJlYW1pbmciLCAic3luY2hyb25v dXNfY29tbWl0IiwgInR3b19waGFzZSIpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA1 ODgxMWE2NTMwLi5iOWU3NDdkNzJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTExMTE1 LDE3ICsxMTExNSwxNyBAQAogICBwcm9uYW1lID0+ICdwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMn LCBwcm9yb3dzID0+ICcxMCcsIHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLAogICBwcm9hcmd0 eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9v bCxib29sLGludDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29sLHRleHR9JywK LSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBw cm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3Jh cnksYWN0aXZlLGFjdGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmly bWVkX2ZsdXNoX2xzbix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0 X3JlYXNvbn0nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0LG9pZCxib29s LGJvb2wsaW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2wsdGV4dCxib29s fScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0 ZW1wb3JhcnksYWN0aXZlLGFjdGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24s Y29uZmlybWVkX2ZsdXNoX2xzbix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNv bmZsaWN0X3JlYXNvbixmYWlsb3Zlcn0nLAogICBwcm9zcmMgPT4gJ3BnX2dldF9yZXBsaWNhdGlv bl9zbG90cycgfSwKIHsgb2lkID0+ICczNzg2JywgZGVzY3IgPT4gJ3NldCB1cCBhIGxvZ2ljYWwg cmVwbGljYXRpb24gc2xvdCcsCiAgIHByb25hbWUgPT4gJ3BnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QnLCBwcm92b2xhdGlsZSA9PiAndicsCiAgIHByb3BhcmFsbGVsID0+ICd1Jywg cHJvcmV0dHlwZSA9PiAncmVjb3JkJywKLSAgcHJvYXJndHlwZXMgPT4gJ25hbWUgbmFtZSBib29s IGJvb2wnLAotICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSxib29sLGJvb2wsbmFtZSxw Z19sc259JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tpLGksaSxpLG8sb30nLAotICBwcm9hcmduYW1l cyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sdGVtcG9yYXJ5LHR3b3BoYXNlLHNsb3RfbmFtZSxsc259 JywKKyAgcHJvYXJndHlwZXMgPT4gJ25hbWUgbmFtZSBib29sIGJvb2wgYm9vbCcsCisgIHByb2Fs bGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLGJvb2wsYm9vbCxib29sLG5hbWUscGdfbHNufScsCisg IHByb2FyZ21vZGVzID0+ICd7aSxpLGksaSxpLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3Ns b3RfbmFtZSxwbHVnaW4sdGVtcG9yYXJ5LHR3b3BoYXNlLGZhaWxvdmVyLHNsb3RfbmFtZSxsc259 JywKICAgcHJvc3JjID0+ICdwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90JyB9LAog eyBvaWQgPT4gJzQyMjInLAogICBkZXNjciA9PiAnY29weSBhIGxvZ2ljYWwgcmVwbGljYXRpb24g c2xvdCwgY2hhbmdpbmcgdGVtcG9yYWxpdHkgYW5kIHBsdWdpbicsCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19zdWJzY3JpcHRpb24uaAppbmRleCBjYTMyNjI1NTg1Li5jOTJhODFlNmI3IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKQEAgLTkzLDYgKzkzLDEyIEBAIENBVEFMT0cocGdf c3Vic2NyaXB0aW9uLDYxMDAsU3Vic2NyaXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxB VElPTiBCS0lfUk9XCiAJYm9vbAkJc3VicnVuYXNvd25lcjsJLyogVHJ1ZSBpZiByZXBsaWNhdGlv biBzaG91bGQgZXhlY3V0ZSBhcyB0aGUKIAkJCQkJCQkJICogc3Vic2NyaXB0aW9uIG93bmVyICov CiAKKwlib29sCQlzdWJmYWlsb3ZlcjsJLyogVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCByZXBsaWNh dGlvbiBzbG90cworCQkJCQkJCQkgKiAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUgdGFibGUg c3luYworCQkJCQkJCQkgKiBzbG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFyZSBlbmFi bGVkCisJCQkJCQkJCSAqIHRvIGJlIHN5bmNocm9uaXplZCB0byB0aGUgcGh5c2ljYWwKKwkJCQkJ CQkJICogc3RhbmRieXMuICovCisKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxl LWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRo ZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbyBCS0lfRk9SQ0VfTk9UX05VTEw7CkBA IC0xNDUsNiArMTUxLDExIEBAIHR5cGVkZWYgc3RydWN0IFN1YnNjcmlwdGlvbgogCUxpc3QJICAg KnB1YmxpY2F0aW9uczsJLyogTGlzdCBvZiBwdWJsaWNhdGlvbiBuYW1lcyB0byBzdWJzY3JpYmUg dG8gKi8KIAljaGFyCSAgICpvcmlnaW47CQkJLyogT25seSBwdWJsaXNoIGRhdGEgb3JpZ2luYXRp bmcgZnJvbSB0aGUKIAkJCQkJCQkJICogc3BlY2lmaWVkIG9yaWdpbiAqLworCWJvb2wJCWZhaWxv dmVyOwkJLyogVHJ1ZSBpZiB0aGUgYXNzb2NpYXRlZCByZXBsaWNhdGlvbiBzbG90cworCQkJCQkJ CQkgKiAoaS5lLiB0aGUgbWFpbiBzbG90IGFuZCB0aGUgdGFibGUgc3luYworCQkJCQkJCQkgKiBz bG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFyZSBlbmFibGVkCisJCQkJCQkJCSAqIHRv IGJlIHN5bmNocm9uaXplZCB0byB0aGUgcGh5c2ljYWwKKwkJCQkJCQkJICogc3RhbmRieXMuICov CiB9IFN1YnNjcmlwdGlvbjsKIAogLyogRGlzYWxsb3cgc3RyZWFtaW5nIGluLXByb2dyZXNzIHRy YW5zYWN0aW9ucy4gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKaW5kZXggYWYwYTMzM2YxYS4uZWQyMzMz M2U5MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcmVwbG5vZGVzLmgKQEAgLTcyLDYgKzcyLDE4IEBAIHR5cGVkZWYgc3Ry dWN0IERyb3BSZXBsaWNhdGlvblNsb3RDbWQKIH0gRHJvcFJlcGxpY2F0aW9uU2xvdENtZDsKIAog CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJQUxURVJfUkVQTElDQVRJT05fU0xPVCBj b21tYW5kCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IEFs dGVyUmVwbGljYXRpb25TbG90Q21kCit7CisJTm9kZVRhZwkJdHlwZTsKKwljaGFyCSAgICpzbG90 bmFtZTsKKwlMaXN0CSAgICpvcHRpb25zOworfSBBbHRlclJlcGxpY2F0aW9uU2xvdENtZDsKKwor CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU1RBUlRfUkVQTElDQVRJT04gY29tbWFu ZAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmluZGV4IDll MzlhYWYzMDMuLjU4NWNjYmI1MDQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTExMSw2ICsx MTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90UGVyc2lzdGVudERhdGEKIAog CS8qIHBsdWdpbiBuYW1lICovCiAJTmFtZURhdGEJcGx1Z2luOworCisJLyoKKwkgKiBJcyB0aGlz IGEgZmFpbG92ZXIgc2xvdCAoc3luYyBjYW5kaWRhdGUgZm9yIHBoeXNpY2FsIHN0YW5kYnlzKT8g T25seQorCSAqIHJlbGV2YW50IGZvciBsb2dpY2FsIHNsb3RzIG9uIHRoZSBwcmltYXJ5IHNlcnZl ci4KKwkgKi8KKwlib29sCQlmYWlsb3ZlcjsKIH0gUmVwbGljYXRpb25TbG90UGVyc2lzdGVudERh dGE7CiAKIC8qCkBAIC0yMTgsOSArMjI0LDEwIEBAIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xv dHNTaG1lbUluaXQodm9pZCk7CiAvKiBtYW5hZ2VtZW50IG9mIGluZGl2aWR1YWwgc2xvdHMgKi8K IGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29s IGRiX3NwZWNpZmljLAogCQkJCQkJCQkgIFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNp c3RlbmN5LAotCQkJCQkJCQkgIGJvb2wgdHdvX3BoYXNlKTsKKwkJCQkJCQkJICBib29sIHR3b19w aGFzZSwgYm9vbCBmYWlsb3Zlcik7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RQZXJzaXN0 KHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcChjb25zdCBjaGFyICpuYW1l LCBib29sIG5vd2FpdCk7CitleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RBbHRlcihjb25zdCBj aGFyICpuYW1lLCBib29sIGZhaWxvdmVyKTsKIAogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90 QWNxdWlyZShjb25zdCBjaGFyICpuYW1lLCBib29sIG5vd2FpdCk7CiBleHRlcm4gdm9pZCBSZXBs aWNhdGlvblNsb3RSZWxlYXNlKHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd2FscmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVy LmgKaW5kZXggMDg5OTg5MWNkYi4uZjU2NmE5OWJhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5oCkBAIC0zNTUsOSArMzU1LDIwIEBAIHR5cGVkZWYgY2hhciAqKCp3YWxyY3Zf Y3JlYXRlX3Nsb3RfZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJY29uc3Qg Y2hhciAqc2xvdG5hbWUsCiAJCQkJCQkJCQkJYm9vbCB0ZW1wb3JhcnksCiAJCQkJCQkJCQkJYm9v bCB0d29fcGhhc2UsCisJCQkJCQkJCQkJYm9vbCBmYWlsb3ZlciwKIAkJCQkJCQkJCQlDUlNTbmFw c2hvdEFjdGlvbiBzbmFwc2hvdF9hY3Rpb24sCiAJCQkJCQkJCQkJWExvZ1JlY1B0ciAqbHNuKTsK IAorLyoKKyAqIHdhbHJjdl9hbHRlcl9zbG90X2ZuCisgKgorICogQ2hhbmdlIHRoZSBkZWZpbml0 aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4gQ3VycmVudGx5LCBpdCBvbmx5IHN1cHBvcnRzCisg KiBjaGFuZ2luZyB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIHNsb3QuCisgKi8KK3R5cGVk ZWYgdm9pZCAoKndhbHJjdl9hbHRlcl9zbG90X2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAor CQkJCQkJCQkJICBjb25zdCBjaGFyICpzbG90bmFtZSwKKwkJCQkJCQkJCSAgYm9vbCBmYWlsb3Zl cik7CisKIC8qCiAgKiB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkX2ZuCiAgKgpAQCAtMzk5LDYgKzQx MCw3IEBAIHR5cGVkZWYgc3RydWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQogCXdhbHJjdl9y ZWNlaXZlX2ZuIHdhbHJjdl9yZWNlaXZlOwogCXdhbHJjdl9zZW5kX2ZuIHdhbHJjdl9zZW5kOwog CXdhbHJjdl9jcmVhdGVfc2xvdF9mbiB3YWxyY3ZfY3JlYXRlX3Nsb3Q7CisJd2FscmN2X2FsdGVy X3Nsb3RfZm4gd2FscmN2X2FsdGVyX3Nsb3Q7CiAJd2FscmN2X2dldF9iYWNrZW5kX3BpZF9mbiB3 YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkOwogCXdhbHJjdl9leGVjX2ZuIHdhbHJjdl9leGVjOwogCXdh bHJjdl9kaXNjb25uZWN0X2ZuIHdhbHJjdl9kaXNjb25uZWN0OwpAQCAtNDI4LDggKzQ0MCwxMCBA QCBleHRlcm4gUEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZl ckZ1bmN0aW9uczsKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3JlY2VpdmUoY29ubiwg YnVmZmVyLCB3YWl0X2ZkKQogI2RlZmluZSB3YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5ieXRl cykgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3Zfc2VuZChjb25uLCBidWZmZXIsIG5i eXRlcykKLSNkZWZpbmUgd2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3Jh cnksIHR3b19waGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24pIFwKLQlXYWxSZWNlaXZlckZ1bmN0 aW9ucy0+d2FscmN2X2NyZWF0ZV9zbG90KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19w aGFzZSwgc25hcHNob3RfYWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9jcmVhdGVfc2xvdChj b25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5LCB0d29fcGhhc2UsIGZhaWxvdmVyLCBzbmFwc2hvdF9h Y3Rpb24sIGxzbikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfY3JlYXRlX3Nsb3Qo Y29ubiwgc2xvdG5hbWUsIHRlbXBvcmFyeSwgdHdvX3BoYXNlLCBmYWlsb3Zlciwgc25hcHNob3Rf YWN0aW9uLCBsc24pCisjZGVmaW5lIHdhbHJjdl9hbHRlcl9zbG90KGNvbm4sIHNsb3RuYW1lLCBm YWlsb3ZlcikgXAorCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfYWx0ZXJfc2xvdChjb25u LCBzbG90bmFtZSwgZmFpbG92ZXIpCiAjZGVmaW5lIHdhbHJjdl9nZXRfYmFja2VuZF9waWQoY29u bikgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKGNvbm4p CiAjZGVmaW5lIHdhbHJjdl9leGVjKGNvbm4sIGV4ZWMsIG5SZXRUeXBlcywgcmV0VHlwZXMpIFwK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xv dHNfc3luYy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xv dHNfc3luYy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42NDYyOTNj MzllCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRieV9m YWlsb3Zlcl9zbG90c19zeW5jLnBsCkBAIC0wLDAgKzEsODkgQEAKKworIyBDb3B5cmlnaHQgKGMp IDIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBzdHJpY3Q7 Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0 Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgd2hlbiBhIHN1 YnNjcmlwdGlvbiB3aXRoIGZhaWxvdmVyIGVuYWJsZWQgaXMgY3JlYXRlZCwgaXQgd2lsbCBhbHRl cgorIyB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc2xvdCBvbiB0 aGUgcHVibGlzaGVyLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworIyBDcmVhdGUgcHVibGlzaGVyCitteSAkcHVibGlzaGVyID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRwdWJsaXNoZXItPmluaXQoYWxs b3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJHB1Ymxpc2hlci0+c3RhcnQ7CisKKyRwdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gcmVncmVz c19teXB1YiBGT1IgQUxMIFRBQkxFUzsiCispOworCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAk cHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworCisjIENyZWF0ZSBhIHN1 YnNjcmliZXIgbm9kZSwgd2FpdCBmb3Igc3luYyB0byBjb21wbGV0ZQorbXkgJHN1YnNjcmliZXIx ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyMScpOworJHN1YnNj cmliZXIxLT5pbml0OworJHN1YnNjcmliZXIxLT5zdGFydDsKKworIyBDcmVhdGUgYSBzbG90IG9u IHRoZSBwdWJsaXNoZXIgd2l0aCBmYWlsb3ZlciBkaXNhYmxlZAorJHB1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdsc3ViMV9zbG90JywgJ3Bnb3V0cHV0JywgZmFsc2UsIGZhbHNlLCBm YWxzZSk7IgorKTsKKworIyBDb25maXJtIHRoYXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNs b3QgaXMgdHVybmVkIG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVz JywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBz bG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJImYiLAorCSdsb2dpY2FsIHNsb3QgaGFz IGZhaWxvdmVyIGZhbHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyBDcmVhdGUgYSBzdWJzY3Jp cHRpb24gKHVzaW5nIHRoZSBzYW1lIHNsb3QgY3JlYXRlZCBhYm92ZSkgdGhhdCBlbmFibGVzCisj IGZhaWxvdmVyLgorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5z dHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfbXlwdWIgV0lUSCAoc2xvdF9uYW1lID0gbHN1YjFfc2xv dCwgY29weV9kYXRhPWZhbHNlLCBmYWlsb3ZlciA9IHRydWUsIGNyZWF0ZV9zbG90ID0gZmFsc2Us IGVuYWJsZWQgPSBmYWxzZSk7IgorKTsKKworIyBDb25maXJtIHRoYXQgdGhlIGZhaWxvdmVyIGZs YWcgb24gdGhlIHNsb3QgaGFzIG5vdyBiZWVuIHR1cm5lZCBvbgoraXMoICRwdWJsaXNoZXItPnNh ZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBs aWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJInQi LAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIHRydWUgb24gdGhlIHB1Ymxpc2hlcicpOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IHRoYXQgY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIGEgc3Vic2NyaXB0aW9u IHVwZGF0ZXMgdGhlCisjIGNvcnJlc3BvbmRpbmcgZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlIHNs b3QuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CisjIERpc2FibGUgZmFpbG92ZXIKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBTRVQgKGZhaWxvdmVyID0gZmFs c2UpIik7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90IGhh cyBub3cgYmVlbiB0dXJuZWQgb2ZmCitpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAorCQkncG9z dGdyZXMnLAorCQlxe1NFTEVDVCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdI RVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9CisJKSwKKwkiZiIsCisJJ2xvZ2ljYWwgc2xv dCBoYXMgZmFpbG92ZXIgZmFsc2Ugb24gdGhlIHB1Ymxpc2hlcicpOworCisjIEVuYWJsZSBmYWls b3ZlcgorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIFNFVCAoZmFpbG92ZXIgPSB0cnVlKSIpOworCisjIENvbmZp cm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBoYXMgbm93IGJlZW4gdHVybmVk IG9uCitpcyggJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAorCQkncG9zdGdyZXMnLAorCQlxe1NFTEVD VCBmYWlsb3ZlciBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICds c3ViMV9zbG90Jzt9CisJKSwKKwkidCIsCisJJ2xvZ2ljYWwgc2xvdCBoYXMgZmFpbG92ZXIgdHJ1 ZSBvbiB0aGUgcHVibGlzaGVyJyk7CisKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSIpOworCitkb25lX3Rlc3Rpbmco KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggZDg3OGE5NzFkZi4uYWNjMjMz OWI0OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0NzMsOCArMTQ3Myw5 IEBAIHBnX3JlcGxpY2F0aW9uX3Nsb3RzfCBTRUxFQ1QgbC5zbG90X25hbWUsCiAgICAgbC53YWxf c3RhdHVzLAogICAgIGwuc2FmZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKLSAgICBsLmNv bmZsaWN0X3JlYXNvbgotICAgRlJPTSAocGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90 X25hbWUsIHBsdWdpbiwgc2xvdF90eXBlLCBkYXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3Rp dmVfcGlkLCB4bWluLCBjYXRhbG9nX3htaW4sIHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hf bHNuLCB3YWxfc3RhdHVzLCBzYWZlX3dhbF9zaXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNv bikKKyAgICBsLmNvbmZsaWN0X3JlYXNvbiwKKyAgICBsLmZhaWxvdmVyCisgICBGUk9NIChwZ19n ZXRfcmVwbGljYXRpb25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRh dG9pZCwgdGVtcG9yYXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwg cmVzdGFydF9sc24sIGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3Np emUsIHR3b19waGFzZSwgY29uZmxpY3RfcmVhc29uLCBmYWlsb3ZlcikKICAgICAgTEVGVCBKT0lO IHBnX2RhdGFiYXNlIGQgT04gKChsLmRhdG9pZCA9IGQub2lkKSkpOwogcGdfcm9sZXN8IFNFTEVD VCBwZ19hdXRoaWQucm9sbmFtZSwKICAgICBwZ19hdXRoaWQucm9sc3VwZXIsCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYjE1ZWRkYmZmMy4uNWZhMjMw YTg5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24u b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dApAQCAt MTE2LDE4ICsxMTYsMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IENP Tk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFUKIFdBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3Jp cHRpb24uCiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgbm9uZSAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgU0VUIChvcmlnaW4gPSBhbnkpOwogXGRScysgcmVn cmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YjM7CkBAIC0xNDUsMTAgKzE0NSwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIENPTk5FQ1RJT04gJ2Zvb2Jhcic7CiBFUlJPUjogIGludmFsaWQgY29ubmVjdGlv biBzdHJpbmcgc3ludGF4OiBtaXNzaW5nICI9IiBhZnRlciAiZm9vYmFyIiBpbiBjb25uZWN0aW9u IGluZm8gc3RyaW5nCiAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcg fCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3Jk IHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0 IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCBQVUJMSUNBVElPTiB0ZXN0cHViMiwgdGVzdHB1YjMgV0lUSCAocmVmcmVz aCA9IGZhbHNlKTsKQEAgLTE1NywxMCArMTU3LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSAnbmV3bmFtZScpOwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHBhc3N3b3JkX3JlcXVpcmVkID0gZmFsc2UpOwogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHJ1bl9hc19vd25lciA9IHRydWUp OwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAg ICAgfCB0ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0MiB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGlj YXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAg ICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIy LHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgZiAgICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAg IHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3Rz dWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IHRydWUpOwpAQCAtMTc2LDEwICsxNzYsMTAgQEAg RVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0ZV9zbG90 IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0g JzAvMTIzNDUnKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAg ICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzEyMzQ1CiAoMSByb3cpCiAKIC0tIG9rIC0gd2l0aCBs c24gPSBOT05FCkBAIC0xODgsMTAgKzE4OCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBFUlJPUjogIGludmFsaWQgV0FMIGxvY2F0aW9u IChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAg ICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IDAvMAogKDEgcm93KQogCiBCRUdJTjsKQEAgLTIyMywxMCArMjIz LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWJfZm9vIFNFVCAoc3luY2hy b25vdXNfY29tbWl0ID0gZm9vYmFyKTsKIEVSUk9SOiAgaW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1l dGVyICJzeW5jaHJvbm91c19jb21taXQiOiAiZm9vYmFyIgogSElOVDogIEF2YWlsYWJsZSB2YWx1 ZXM6IGxvY2FsLCByZW1vdGVfd3JpdGUsIHJlbW90ZV9hcHBseSwgb24sIG9mZi4KIFxkUnMrCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgICBOYW1lICAgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0MiB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAg ICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAg ICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogLS0gcmVuYW1lIGJhY2sg dG8ga2VlcCB0aGUgcmVzdCBzaW1wbGUKQEAgLTI1NSwxOSArMjU1LDE5IEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IHQgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7CiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBc ZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCBy ZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMjc5 LDI3ICsyNzksMjcgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVD VElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3Jp cHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlh dGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24g c2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRp b24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHN0cmVhbWluZyA9IHBhcmFsbGVsKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNO IAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCist LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gZmFsc2UpOwogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRScysK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAo MSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzE0LDEw ICszMTQsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElD QVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChy ZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFscmVh ZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgICAgICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAg ICAgIFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHViMn0gfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tIGZh aWwgLSBwdWJsaWNhdGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMzIsMTAgKzMzMiwxMCBA QCBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAi cmVncmVzc190ZXN0c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3Rw dWIyIFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAtMzcxLDEwICszNzEsMTAgQEAgQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBu b3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1h bnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRp b24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgcCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogLS1mYWls IC0gYWx0ZXIgb2YgdHdvX3BoYXNlIG9wdGlvbiBub3Qgc3VwcG9ydGVkLgpAQCAtMzgzLDEwICsz ODMsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vic2NyaXB0aW9uIHBhcmFtZXRlcjogInR3 b19waGFzZSIKIC0tIGJ1dCBjYW4gYWx0ZXIgc3RyZWFtaW5nIHdoZW4gdHdvX3BoYXNlIGVuYWJs ZWQKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSB0 cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBAIC0zOTYsMTAgKzM5NiwxMCBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBw ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAg ICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBA IC00MTIsMTggKzQxMiwzMSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNj cmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisoMSByb3cpCisKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RS T1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKKy0tIHRlc3QgZmFpbG92ZXIgb3B0aW9u CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBmYWlsb3ZlciA9IHRydWUpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3Jl YXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUg dGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KK1xkUnMrCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IHQgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRp b24uc3FsCmluZGV4IDQ0NGU1NjNmZjMuLmU0NjAxMTU4YjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c3Vic2NyaXB0aW9uLnNxbApAQCAtMjkwLDYgKzI5MCwxNCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNFVCAoZGlzYWJsZV9vbl9lcnJvciA9IHRydWUpOwogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogRFJPUCBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwogCistLSB0ZXN0IGZhaWxvdmVyIG9wdGlvbgor Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgZmFpbG92ZXIgPSB0cnVlKTsKKworXGRScysKKworQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViOworCiAtLSBsZXQncyBkbyBzb21lIHRlc3RzIHdpdGggcGdfY3JlYXRl X3N1YnNjcmlwdGlvbiByYXRoZXIgdGhhbiBzdXBlcnVzZXIKIFNFVCBTRVNTSU9OIEFVVEhPUkla QVRJT04gcmVncmVzc19zdWJzY3JpcHRpb25fdXNlcjM7CiAKZGlmZiAtLWdpdCBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKaW5kZXggZjU4MmViNTllNy4uM2QyNTU5ZmVjYSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKQEAgLTg1LDYgKzg1LDcgQEAgQWx0ZXJPd25lclN0bXQKIEFsdGVyUG9saWN5U3RtdAogQWx0 ZXJQdWJsaWNhdGlvbkFjdGlvbgogQWx0ZXJQdWJsaWNhdGlvblN0bXQKK0FsdGVyUmVwbGljYXRp b25TbG90Q21kCiBBbHRlclJvbGVTZXRTdG10CiBBbHRlclJvbGVTdG10CiBBbHRlclNlcVN0bXQK QEAgLTM4NzQsNiArMzg3NSw3IEBAIHZhcmF0dHJpYl8xYl9lCiB2YXJhdHRyaWJfNGIKIHZiaXRz CiB2ZXJpZmllcl9jb250ZXh0Cit3YWxyY3ZfYWx0ZXJfc2xvdF9mbgogd2FscmN2X2NoZWNrX2Nv bm5pbmZvX2ZuCiB3YWxyY3ZfY29ubmVjdF9mbgogd2FscmN2X2NyZWF0ZV9zbG90X2ZuCi0tIAoy LjM0LjEKCg== --_005_OS0PR01MB571641EF50C4B99A5DB3C601946F2OS0PR01MB5716jpnp_--