From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by sourceware.org (Postfix) with ESMTPS id 39A2C3858D39 for ; Tue, 21 Nov 2023 08:30:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 39A2C3858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 39A2C3858D39 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=192.55.52.88 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700555430; cv=fail; b=C0YUbzGVeGew4qyB0DEJ9Omyljefu6xcLigy5gKmRLUE9FvS4C7130K1pOFcMyC/IVjk7Qt1j3WpUKw/Fi7Gu3lbtXwTcpuBZYoAIR3P0QOF7dThw+uUJ0Xf7/FJQ//ak7HhM/6+Ebj6P6RPNp8nb29cZbTlEH3VmtnR1PtMb2g= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700555430; c=relaxed/simple; bh=UJHMMRTpFbSrkTF8xO3+D/pbdaDdD/sEQuy9sLgBiYM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=OzZiE53JCx/BzylnSlbcNP/OX8+loNPIlOIRvMYbvSYKUEzSODd/vykOXqfb6cgCrgG0kEJD5/woUy9yLHQ3sg4543oSyPCCWxBThXSqN1QwuxQG/lBpnx/c6h+ISNDsQaMwEmBOqO/YjGgWSFXWEcV3WXXlQSsr87DDSnTOGiE= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700555425; x=1732091425; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=UJHMMRTpFbSrkTF8xO3+D/pbdaDdD/sEQuy9sLgBiYM=; b=E3+29YRZ3v4riGWgqBAywsre0A33BY/UkUpRyAXYmLAJHoAtawKy938I TLPsIQ4TePnVnqdxyCFrh88SNOuEHywksGcvnssSr0Tmhrx+li7FP7kRD d0FVZknrUebWKues1fFZyG49jhkhfFtryQl6hy7Kc4rVZLQKuq07+lDvL PLkYI5huBFyM6mW4Rt38RMmfihd0MfZ4rKa4iAILh7/0lXzumQamlMQVE +HymjGOI27uOuzTTfNxZ7CWZxrZ9OrqvZpNObr+ncerhQdWeGeDYf2L2L 2KAWDBV3Zbz0nqjo5JfeHVPnFHyL+Ir074TfajKs3+kDNhXln2EdZAt20 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10900"; a="422892279" X-IronPort-AV: E=Sophos;i="6.04,215,1695711600"; d="scan'208";a="422892279" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2023 00:30:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10900"; a="832566984" X-IronPort-AV: E=Sophos;i="6.04,215,1695711600"; d="scan'208";a="832566984" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 21 Nov 2023 00:30:23 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 21 Nov 2023 00:30:22 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Tue, 21 Nov 2023 00:30:21 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Tue, 21 Nov 2023 00:30:21 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.41) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Tue, 21 Nov 2023 00:30:21 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kB7i3ljpyEs8IcnWeYgrln8GIE8FChLnE7Ti0Whs1eD++0BENNCMbqsJ5PHMvUHP9Tg9aCUMVSJIj8DliUdLTzSeQEqx7OTsJg5+/JbE80fCNeAJA2EWPaSPsJFTHRYzNvPxv7K4WgbCn6cZhD2UGWZdVLcfyWg09cLFYnUWl5l96ALxX8JGjlf7AZHABojOnE7L/9zin8mxX5IHKUwvxRXcWj5hQ13mE8Yg0v/CI/sSFhqB/Sol8obHE3gX7N+QTM92slEjE+WNgWBKIJ9xX5RKR9sFTojj49j4wpjKhDELLTHN3N8/vPNr9OwAlYj2eSTDDmgdW4bRmuWls6fLDg== 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=imST8GtjyTUJxEIJ+1+cmZclPxuywu/8n9P7fDmJaUU=; b=iD8WIerWT1qMnH05nV6KGAUKartCts1oPHds9OvuBtPu8Yh0FJAmsh4MvN6aCCmXcBsLtlK3qIm35vghBHHiU3f8KwwAEzsX9zIjnpCQ/YfD/KwyRjfD9wBPm3KxHz7Yr6lxKpm/9XhGBq1KiOetzhjYNtjUZr1WltgBoj6KlgNcr2DlpxBHWirMuPzwniKp5fIJfg5wvEEJioG57a41ZNYyLhe6gIkNO4fa8StqovgfVqVRj0KCJFW20A2lnhRgEDbWiwvIYkM1NMItFyG/cmIm5v5RXTf/6U4iREMo79RTKNDALrG0RuxZLHPEA1tMqa70ub/yc0ow+jssOjA4vQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA1PR11MB6846.namprd11.prod.outlook.com (2603:10b6:806:2b0::6) by SA1PR11MB5875.namprd11.prod.outlook.com (2603:10b6:806:238::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.27; Tue, 21 Nov 2023 08:30:19 +0000 Received: from SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::e1b8:c6f6:9c25:75d]) by SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::e1b8:c6f6:9c25:75d%3]) with mapi id 15.20.7002.028; Tue, 21 Nov 2023 08:30:19 +0000 From: "Ijaz, Abdul B" To: Guinevere Larsen , "gdb-patches@sourceware.org" CC: "lsix@lancelotsix.com" , "pedro@palves.net" Subject: RE: [PATCH v4 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Topic: [PATCH v4 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Index: AQHZ6xj9NA/yB9F240WTIYeQvXNMn7BGCecAgD0zkXCAACAhQIAAeBKAgADxQxA= Date: Tue, 21 Nov 2023 08:30:19 +0000 Message-ID: References: <20230919164700.19891-1-abdul.b.ijaz@intel.com> <20230919164700.19891-2-abdul.b.ijaz@intel.com> <4f25e938-4729-4b1a-50fd-ce5ae7623d3f@redhat.com> <0fb11671-9703-cb4d-934a-205ecbe16a61@redhat.com> In-Reply-To: <0fb11671-9703-cb4d-934a-205ecbe16a61@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR11MB6846:EE_|SA1PR11MB5875:EE_ x-ms-office365-filtering-correlation-id: 6acfc2af-70c3-4aba-3dbc-08dbea6c1881 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HCHL4fUTpzJvF2PinEC3hX+m3+2kgmdd2WhM2oNQp9BJEejGLcTdmPDEDitiTsQw/ZCc0gEDOYWxQZEVM7371id6Dt+XZALuNU7dom1/Mj8yhAYHGtryLUjXgIz09185JNI8MHIwy5CUXPrRoVsKuOBScDWmFwcz1NofHeGMRpbvfjlvMpmzBJCZQsLIPsYWMVEhra0X929Ll2SEsXZsPuHRmTTx+Umj0meCIsQUzkThBxhoPR5SzrFDdIJWfaNtvYtt20dfBm5Vx8gufTe2LK5ms2eakW6yrSe9cJA13T2uGYJGasuXySXJ8dx+GSNc3XOcVV3v12BZVhkmOCAdoUpMbe3yL9t4fo/VUVTP7BzQiG89sgVBKpVNid9UU8nMS6Rvt1qNL5kqBlRXPeCIDV9JliABEy6lQfKp8VXfur+080Zc1AJi/59LQkrj+Hr6NaPka5+1VwBFAsDbJIOtfWuOY7JEnAeODhJkIjKFl7yeuSqYK5C8XKbhOcGXPad4ac7GeryeS39A7CnpV6EbXiTrApcV0+oGe7u8eedzblymRvcWLcYqrjxLFG028zAuwGCxL7gnZbNfg1RGk1XO4LjyOYQhtYvIiUHraAlWE6ZUghYGe67uGUteE+B+vRNIRzUretNxeZtHhQIS9fw/xg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6846.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(396003)(376002)(346002)(136003)(39860400002)(366004)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(30864003)(5660300002)(2906002)(4326008)(8676002)(52536014)(316002)(8936002)(41300700001)(66476007)(66556008)(54906003)(64756008)(66446008)(110136005)(76116006)(66946007)(55016003)(84970400001)(71200400001)(26005)(478600001)(966005)(6506007)(7696005)(9686003)(53546011)(66899024)(33656002)(86362001)(15974865002)(83380400001)(82960400001)(122000001)(38070700009)(38100700002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N09ETXpoOG54VzRLeVFCYTh1bjhiWDM3dUE1SUl6Mzd5WjNjK3Z4dGlqQ3dS?= =?utf-8?B?M3ZKYVdjNm9PTUV1UEZIRWJCbUZ3UmdiOTZDVExwVFYzSkw5RlN5NDVmMTJw?= =?utf-8?B?WGtPUTlIaG5uTzB5cEFqOTRZM0ZyWloxUC9oeDBMdWZISkx6SUZjSTZJR0Vi?= =?utf-8?B?czRJZVVOdE5oMEZZc2lnT050bTBZVVBlcDZWV21zKzVjY2dmTXBTWXVaYThH?= =?utf-8?B?YkZrRjAwODlsN0JLbzNObWpOTmFUWWZNQWNvaHN5WlNoaU51MVd1ck5PaFhk?= =?utf-8?B?Uys2U0drc21BNVlrL0pRVXJkR0llYjhwUHl5am9uYmlYYWZtcFlUZlNUblA0?= =?utf-8?B?Z2pKbmVQa2ZaUzlHUUxoYWdsdlFudHFVR0VyODNVQ1pyRGtPRTFJemk4ekg1?= =?utf-8?B?UUNwMTNPdkRDSzJ1Z2luWE5YMWFEczY3dHpMaERvUHUwbGVOYzJvU0JCMVlR?= =?utf-8?B?YWk2bU5nZUZMQjR0RlhkSnBPL3BoNTNOU0Y2cjk4NGFwa2cra2tWN0FNRVpq?= =?utf-8?B?RUFIWEIzTzU3enljWHhMeHlJVmQ2Y1FEZ2swS01UcGkvcFJWU1E0MDkxc2pp?= =?utf-8?B?RGJXZWRNWTZuZjdyMUxXc05zelg2NWdicVQ2alYxVGlGdjhzTkYzRkZkNWl1?= =?utf-8?B?dTJubEYzRmhkekpsdkxFaUhzdjFicHRUUG9EYmMreE1HWWZNY2tweStzOXdY?= =?utf-8?B?NEFJeTVOM1NDZUVUMU0rYWRxR1VqeFg5bEY0UncyWnpaUTM2ZUhic1pOVmto?= =?utf-8?B?Qm9IbmUzY2pueHBGZG9wNjNjWVZXbnYrMWpIRkdHRGFFL1c3eWxRTjM0Rjk1?= =?utf-8?B?eG5qUzRCYmpzY3VDdGVWRHFtV2dRaHZsQzJRdytROWFMT0k0R3pUVGRHQzgx?= =?utf-8?B?OHdVVndKY0NRdVZtR2F5M3l0QWJpaERhcTdoN2diZ1NsNnlQZ2RVbUpWdmNy?= =?utf-8?B?ZjZtdTBqS3h3Z3VaU0FYN3I1QjlCNlI1ZTl3WmUweFRQbUFjU2QrSHpmQjRT?= =?utf-8?B?bTdRekw3UzVJb1hKdmJiRk82ZE9zTU5kMVVjNll0Ti9IVUNlcDJjaDNiQ28r?= =?utf-8?B?TlBUTUQ5bmdzYnppem5HUnNhU1hGNFNFMkM5L3FsSysrTTh6aitSYVNta01D?= =?utf-8?B?alQ4WGFDb1B3SkczcFAzTXlHN1JmNjR2VEJTbk5XVUdMeTJLT21rd1lQTXA3?= =?utf-8?B?NENtTHlLUUhJSmFYYk5RZTFuNkRwQzd4RHE1d0dvd05pTGxvTnUwTHUrUXp2?= =?utf-8?B?VE1UaGlhbGUxcXJRbG1TaExXK0hFTlhIVlhxUnJYcEZOSFZIdUJ6RURxK21V?= =?utf-8?B?UWFkMjBQYk5VR1lCTHk1M05pVGNodk5TQnVoUUNKb3BhOCtBaGoyOHN4eVJu?= =?utf-8?B?RXM4dUVXaElIUlBmUldNaEJZQmEzYVlQTTRqVEJkWFZIbEZYR2VqbGFjc0k0?= =?utf-8?B?Y2dWTzg0c2hWSDk1M044TVZab1ZMa1RPYVYyeDFpUm1JalFiVStKT2dnUnVK?= =?utf-8?B?bkFuaWY3UjBYcVpZQlRiRW1veXFrWTFESHd1Rno5a09aU0twMzBBWUo3MVRK?= =?utf-8?B?YUxpQ1VyTXBKZi85OGZNWFUwUmxORXVoNy9ESnhQVXVXaXEvdjdWSUc0L2xC?= =?utf-8?B?azBza3h0T3h0WE8zM1hiUk9tcUlVVzNLQVJBM0xRRVdGb1RISGlqU0RoRWtx?= =?utf-8?B?djlJdkoxYU1qQUZuVTRUZ29XNTNuUkhLblRxOFZWQUN2VXFUdHNnM1JHVXFI?= =?utf-8?B?djdtK0hybmlSS0lEc3hNNzczMTZRTkg0cEJzZlZ2TVp6Z3B1MFhnSWl5M05h?= =?utf-8?B?UjgwdERGVVFLQ1dndlhVdThBZ3ptMW9TaDZSVEFZUU92N29hUjUyWXd5eDc0?= =?utf-8?B?WkI2Y0dSeXhKWGFlVFUwem9MQTEvRXppc3BReGplamdiNzI3VXVnUzZtUzZT?= =?utf-8?B?R1FzcThGTEZKSDNFTnBrdnM4ZW9KcU05cU1KZWFTWVF6aHNmeGZJU3BwZGdx?= =?utf-8?B?cDBBOVpjR2xpbmFid0ZjNlBCY25jOVlvMm8wUEo1cHVsbUtrZmg5SzVWQjh5?= =?utf-8?B?SFp6ckdYSDB1R2k5YVhISUhyMGZ6bjBRdVNjNmtKZkpJVitaVU9ldndLbUR2?= =?utf-8?Q?IjNxWwukqpuzc7Yx5azcfbmrl?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6846.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6acfc2af-70c3-4aba-3dbc-08dbea6c1881 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2023 08:30:19.1128 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uAFwZ/ns15ZOHdF+cqgv+/de0MrOr7U1QspzReLx+mU4T4+SHFkqzFp8KET0sF1Zc38uccsKUHGuObCl2kM0zQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB5875 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGkgTGFyc2VuLA0KDQo+IEl0IG11c3QgYmUgYSBjaGFuZ2Ugb2YgYmVoYXZpb3IgaW4gdGhlIGNv bXBpbGVyLi4uIEZlZG9yYSAzNydzIHZlcnNpb24gaXMgMS43MywgcmF3aGlkZSBpcyAxLjc2IGFu ZCBVYnVudHUncyBzZWVtcyB0byBiZSAxLjY2IChzb3VyY2U6IA0KaHR0cHM6Ly9wYWNrYWdlcy51 YnVudHUuY29tL2phbW15L3J1c3RjKS4gVXNpbmcgYGRpc2FzIC9tYCBvbiB0aGUgdGVzdCBjYXNl LCBJIHNlZSB0aGUgcmVvcmRlcmVkIGluc3RydWN0aW9ucywgc28gdGhlcmUgaXMgc29tZSBvcHRp bWl6YXRpb24gc25lYWtpbmcgaW50byB0aGUgdGVzdGNhc2UsIGlmIHlvdSBoYXZlIHRoZSB0aW1l LCBpdCB3b3VsZCBiZSBuaWNlIHRvIGNoZWNrIHRoZSBwcm9jIHVzZWQgdG8gY29tcGlsZSB0byBz ZWUgaWYgd2UgbmVlZCB0byBhZGQgYSBuZXcgZGVmYXVsdCBmbGFnIHRvIHJ1c3RjLCBidXQgaWYg eW91IGNhbid0IGZpeCBpdCAodGltZSwgaW50ZXJlc3QsIGNvbXBpbGVyIGJ1ZywNCi4uLikgSSB0 aGluayB0aGUgd2F5IHRvIGdvIGFib3V0IHRoaXMgaXMgdG8gc2V0dXAgYW4gWEZBSUwgd2hlbiBy dXN0YyBpcyB0b28gbmV3Lg0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4gSSBmb3VuZCB0aGVz ZSB0d28gcmVsYXRlZCBvcHRpb25zIGZvciBydXN0YyBjb21waWxlciAiIC1DIGRlYnVnaW5mbz1m dWxsIC1DIG9wdC1sZXZlbD0wIiB3aGVyZSBvcHQtbGV2ZWwgYnkgZGVmYXVsdCBpcyBhbHJlYWR5 IDAgKG1pbmltdW0gb3B0aW1pemF0aW9uKSBhbmQgZGVidWdpbmZvIGlzIGFsc28gYnkgZGVmYXVs dCAwIChhbGwgZGVidWcgaW5mbyBidXQganVzdCB0byBiZSBzdXJlIGFsc28gdHJ5IHRvIHVzZSBr ZXl3b3JrIGZ1bGwpIGluIHJ1c3RjLiAgIFNvIHdlIGFyZSBub3QgbmVlZGVkIHRvIHVwZGF0ZSB0 aGVzZSBkZWZhdWx0IHZhbHVlcyBhcyB0aGVzZSBhcmUgYWxyZWFkeSAgd2hhdCB3ZSBuZWVkIGZv ciBkZWJ1Z2dpbmcgd2l0aCBnZGIuIElmIHRoaXMgd291bGQgaGF2ZSB3b3JrZWQgdGhlbiBJIGNv dWxkIHVwZGF0ZSB0aGUgZGVmYXVsdCBjb21waWxlciBvcHRpb25zIGluIGdkYi5leHAgbGlicmFy eSBmaWxlIGJ1dCBhcyB0aGVyZSBpcyBubyBhZmZlY3Qgc28gSSBoYXZlIHJhaXNlZCBmb2xsb3dp bmcgYnVnIChodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0z MTA3OSkgIGZvciBnZGIgYW5kIGFkZGVkIHRoZSBYRkFJTCBhcyBpdCBjb3VsZCBiZSBydXN0YyBp c3N1ZS4gSSB3aWxsIG5vdyBzZW5kIG91dCB2NSBzZXJpZXMgZm9yIHJldmlldyBzbyBwbGVhc2Ug aGF2ZSBhIGxvb2sgb24gaXQuDQoNClRoYW5rcyAmIEJlc3QgUmVnYXJkcw0KQWJkdWwgQmFzaXQN Cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEd1aW5ldmVyZSBMYXJzZW4gPGJs YXJzZW5AcmVkaGF0LmNvbT4gDQpTZW50OiBNb25kYXksIE5vdmVtYmVyIDIwLCAyMDIzIDY6MjEg UE0NClRvOiBJamF6LCBBYmR1bCBCIDxhYmR1bC5iLmlqYXpAaW50ZWwuY29tPjsgZ2RiLXBhdGNo ZXNAc291cmNld2FyZS5vcmcNCkNjOiBsc2l4QGxhbmNlbG90c2l4LmNvbTsgcGVkcm9AcGFsdmVz Lm5ldA0KU3ViamVjdDogUmU6IFtQQVRDSCB2NCAxLzJdIGdkYjogYWRkIGFubm90YXRpb24gaW4g J2luZm8gbG9jYWxzJyBjb21tYW5kIGZvciB2YXJpYWJsZXMgc2hhZG93aW5nIGNhc2UNCg0KT24g MjAvMTEvMjAyMyAxMToyNiwgSWpheiwgQWJkdWwgQiB3cm90ZToNCj4gSGkgTGFyc2VuLA0KPg0K Pj4+IEJyZWFrcG9pbnQgMSwgdmFyX3JldXNlOjptYWluICgpIGF0DQo+Pj4gLi4vLi4vLi4vZG93 bnN0cmVhbS1nZGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnM6MTkNCj4+PiAx OSAgICAgICAgICBsZXQgX3kgPSA4OyAgICAgICAvLyBzZXQgYnJlYWtwb2ludCBoZXJlDQo+Pj4g KGdkYikgaW5mbyBsb2NhbCBfeA0KPj4+IF94ID0gMA0KPj4+IChnZGIpIEZBSUw6IGdkYi5ydXN0 L3Zhcl9yZXVzZS5leHA6IHByaW50IGxvY2FsIF94IHZhcmlhYmxlIEkgZG9uJ3QgDQo+Pj4gdGhp bmsgdGhpcyBpcyByZWxhdGVkIHRvIHRoZSBjb25mbGljdCwgYnV0IEkgZG9uJ3QgcmVhbGx5IGhh dmUgdGhlIA0KPj4+IHRpbWUgdG8gZGlhZ25vc2Ugd2hhdCBpcyBnb2luZyBvbg0KPiAgID5JIGhh dmUgcmViYXNlZCBsb2NhbGx5IHdoZXJlIGFsc28gc2F3IHRoaXMgaW5mZXJpb3IuaCBtaW5vciAN Cj4gY29uZmxpY3QgYW5kIGZpeGVkIGl0LiBTbyBmYXIgcmFuIG9uIHVidW50dTIyIHdoZXJlIHRl c3QgcmFuIGZpbmUuIA0KPiBOZWVkIHRvIHRlc3Qgb25jZSBvbiBGZWRvcmEgMzcgYW5kIHRoZW4g d2lsbCBwdXNoIHRoZSBwYXRjaCBidXQgZnJvbSANCj4gdGhlIGZhaWx1cmUgaW4geW91ciBsb2dz DQo+DQo+IEkgY2FuIGNvbmZpcm0gdGhhdCBGZWRvcmEgaXNzdWUgaXMgbm90IHJlbGF0ZWQgdG8g dGhpcyBwYXRjaCBhcyBmb3IgdGhlIFJVU1QgbGFuZ3VhZ2UgY2FzZSBpbiBGZWRvcmEgaWYgd2Ug c2V0IGJyZWFrcG9pbnRzIGF0IGxpbmUgMTggYW5kIDE5IG9mIHRoaXMgdGVzdCB0aGVuIHdlIGNh biBzZWUgbGluZSAxOSBpcyBhbHdheXMgZXhlY3V0ZWQgZmlyc3Qgc28gZXZlbiB3aXRoIHZhbmls bGEgZ2RiIG9uIEZlZG9yYSAzNyB3ZSBzZWUgdGhlIHNhbWUgYmVoYXZpb3IuICBJIGFtIG5vdCBz dXJlIGlmIHRoaXMgaXMga25vd24gaXNzdWUgaW4gR0RCIGZvciBSVVNUIGxhbmd1YWdlIG90aGVy d2lzZSAgcGxlYXNlIGxldCBtZSBrbm93IGlmIGl0IHdpbGwgYmUgZmluZSB3aXRoIHlvdSB0byBy YWlzZSBhIEdEQiBCdWd6aWxsYSBhbmQgYWRkIGEga2ZhaWwgaW4gdGhpcyBwYXRjaCBhcyBpc3N1 ZSBpcyBjb21wbGV0ZWx5IHVucmVsYXRlZCB0byB0aGlzIHBhdGNoLiAoTm90ZTogaXNzdWUgaXMg c28gZmFyIG9ubHkgdmFsaWQgZm9yIEZlZG9yYSBhcyBpdCBpcyBub3Qgc2VlbiBvbiBVYnVudHUp Lg0KDQpUaGFua3MgZm9yIGRvdWJsZSBjaGVja2luZyB0aGlzIcKgIEkgYWxzbyB0ZXN0ZWQgb24g ZmVkb3JhIFJhd2hpZGUgYW5kIGl0IGFsc28gZmFpbHMgdGhlcmUuDQoNCkl0IG11c3QgYmUgYSBj aGFuZ2Ugb2YgYmVoYXZpb3IgaW4gdGhlIGNvbXBpbGVyLi4uIEZlZG9yYSAzNydzIHZlcnNpb24g aXMgMS43MywgcmF3aGlkZSBpcyAxLjc2IGFuZCBVYnVudHUncyBzZWVtcyB0byBiZSAxLjY2IChz b3VyY2U6IA0KaHR0cHM6Ly9wYWNrYWdlcy51YnVudHUuY29tL2phbW15L3J1c3RjKS4gVXNpbmcg YGRpc2FzIC9tYCBvbiB0aGUgdGVzdCBjYXNlLCBJIHNlZSB0aGUgcmVvcmRlcmVkIGluc3RydWN0 aW9ucywgc28gdGhlcmUgaXMgc29tZSBvcHRpbWl6YXRpb24gc25lYWtpbmcgaW50byB0aGUgdGVz dGNhc2UsIGlmIHlvdSBoYXZlIHRoZSB0aW1lLCBpdCB3b3VsZCBiZSBuaWNlIHRvIGNoZWNrIHRo ZSBwcm9jIHVzZWQgdG8gY29tcGlsZSB0byBzZWUgaWYgd2UgbmVlZCB0byBhZGQgYSBuZXcgZGVm YXVsdCBmbGFnIHRvIHJ1c3RjLCBidXQgaWYgeW91IGNhbid0IGZpeCBpdCAodGltZSwgaW50ZXJl c3QsIGNvbXBpbGVyIGJ1ZywNCi4uLikgSSB0aGluayB0aGUgd2F5IHRvIGdvIGFib3V0IHRoaXMg aXMgdG8gc2V0dXAgYW4gWEZBSUwgd2hlbiBydXN0YyBpcyB0b28gbmV3Lg0KDQotLQ0KQ2hlZXJz LA0KR3VpbmV2ZXJlIExhcnNlbg0KU2hlL0hlci9IZXJzDQoNCj4NCj4gRmVkb3JhIDM3IExvZ3M6 DQo+IH5+fg0KPiBSZWFkaW5nIHN5bWJvbHMgZnJvbSBnZGIvdGVzdHN1aXRlL291dHB1dHMvZ2Ri LnJ1c3QvdmFyX3JldXNlL3Zhcl9yZXVzZS4uLg0KPiAoZ2RiKSBiIDE4DQo+IEJyZWFrcG9pbnQg MSBhdCAweDg2NTQ6IGZpbGUgZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnMsIGxp bmUgMTguDQo+IChnZGIpIGIgMTkNCj4gQnJlYWtwb2ludCAyIGF0IDB4ODY0YzogZmlsZSBnZGIv dGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5ycywgbGluZSAxOS4NCj4gKGdkYikgcg0KPiBT dGFydGluZyBwcm9ncmFtOiBnZGIvdGVzdHN1aXRlL291dHB1dHMvZ2RiLnJ1c3QvdmFyX3JldXNl L3Zhcl9yZXVzZQ0KPiBbVGhyZWFkIGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxl ZF0gVXNpbmcgaG9zdCBsaWJ0aHJlYWRfZGIgDQo+IGxpYnJhcnkgIi9saWI2NC9saWJ0aHJlYWRf ZGIuc28uMSIuDQo+DQo+IEJyZWFrcG9pbnQgMiwgdmFyX3JldXNlOjptYWluICgpIGF0IGdkYi90 ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLnJzOjE5DQo+IDE5ICAgICAgICAgIGxldCBfeSA9 IDg7ICAgICAgIC8vIHNldCBicmVha3BvaW50IGhlcmUNCj4gKGdkYikgaW5mbyBsb2NhbHMNCj4g X3kgPSAwDQo+IF94ID0gMA0KPiBfeCA9IDUNCj4gKGdkYikgYw0KPiBDb250aW51aW5nLg0KPg0K PiBCcmVha3BvaW50IDEsIHZhcl9yZXVzZTo6bWFpbiAoKSBhdCBnZGIvdGVzdHN1aXRlL2dkYi5y dXN0L3Zhcl9yZXVzZS5yczoxOA0KPiAxOCAgICAgICAgICBsZXQgX3ggPSBfeCArIDc7DQo+IChn ZGIpIGluZm8gbG9jYWxzDQo+IF94ID0gNQ0KPiB+fn4NCj4NCj4gVGhhbmtzICYgQmVzdCBSZWdh cmRzDQo+IEFiZHVsIEJhc2l0DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IElqYXosIEFiZHVsIEINCj4gU2VudDogTW9uZGF5LCBOb3ZlbWJlciAyMCwgMjAyMyA5OjI2 IEFNDQo+IFRvOiBHdWluZXZlcmUgTGFyc2VuIDxibGFyc2VuQHJlZGhhdC5jb20+OyBnZGItcGF0 Y2hlc0Bzb3VyY2V3YXJlLm9yZw0KPiBDYzogbHNpeEBsYW5jZWxvdHNpeC5jb207IHBlZHJvQHBh bHZlcy5uZXQNCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2NCAxLzJdIGdkYjogYWRkIGFubm90YXRp b24gaW4gJ2luZm8gbG9jYWxzJyANCj4gY29tbWFuZCBmb3IgdmFyaWFibGVzIHNoYWRvd2luZyBj YXNlDQo+DQo+IEhpIExhcnNlbiwNCj4NCj4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2suDQo+DQo+ Pj4gVGhlIGxvY2F0aW9uIGFubm90YXRpb25zIGFyZSBwcmludGVkIGZvciBzaGFkb3dlZCB2YXJp YWJsZXMgaW4gY2FzZSANCj4+PiBvZiBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5ndWFnZXMuICBJbiBS dXN0LCBpdCBpcyBwb3NzaWJsZSB0byBkZWNsYXJlIA0KPj4+IGEgdmFyaWFibGUgd2l0aCB0aGUg c2FtZSBuYW1lIG1hbnkgdGltZXMuICBTbyBpbiB0aGlzIGNhc2UsIGp1c3QgdGhlIA0KPj4+IGZp cnN0IGluc3RhbmNlIG9mIHRoZSB2YXJpYWJsZSBpcyBwcmludGVkLg0KPj4gVGhhbmtzIGZvciB3 b3JraW5nIG9uIHRoaXMhDQo+PiBUaGlzIHBhdGNoIHNlZW1zIHRvIGhhdmUgc2xpcHBlZCB0aHJv dWdoIHRoZSBjcmFja3MgYW5kIG5lZWRzIGEgc21hbGwgDQo+PiByZWJhc2UsIGJ1dCB0aGUgY29u ZmxpY3Qgd2FzIHByZXR0eSB0cml2aWFsIHRvIHJlc29sdmUgbG9jYWxseSANCj4+IChpbmZlcmlv ci5oIGlzIGFsc28gYmVpbmcgYWRkZWQgdG8gcHJpbnRjbWQuYykgSSBzZWUgYSBmYWlsdXJlIG9u IHRoZSANCj4+IG5ld2x5IGFkZGVkIHRlc3Qgb24gbXkgZmVkb3JhMzcgbWFjaGluZToNCj4+IEJy ZWFrcG9pbnQgMSwgdmFyX3JldXNlOjptYWluICgpIGF0DQo+PiAuLi8uLi8uLi9kb3duc3RyZWFt LWdkYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5yczoxOQ0KPj4gMTkgICAgICAg ICAgbGV0IF95ID0gODsgICAgICAgLy8gc2V0IGJyZWFrcG9pbnQgaGVyZQ0KPj4gKGdkYikgaW5m byBsb2NhbCBfeA0KPj4gX3ggPSAwDQo+PiAoZ2RiKSBGQUlMOiBnZGIucnVzdC92YXJfcmV1c2Uu ZXhwOiBwcmludCBsb2NhbCBfeCB2YXJpYWJsZSBJIGRvbid0IA0KPj4gdGhpbmsgdGhpcyBpcyBy ZWxhdGVkIHRvIHRoZSBjb25mbGljdCwgYnV0IEkgZG9uJ3QgcmVhbGx5IGhhdmUgdGhlIA0KPj4g dGltZSB0byBkaWFnbm9zZSB3aGF0IGlzIGdvaW5nIG9uDQo+ICAgSSBoYXZlIHJlYmFzZWQgbG9j YWxseSB3aGVyZSBhbHNvIHNhdyB0aGlzIGluZmVyaW9yLmggbWlub3IgY29uZmxpY3QgYW5kIGZp eGVkIGl0LiBTbyBmYXIgcmFuIG9uIHVidW50dTIyIHdoZXJlIHRlc3QgcmFuIGZpbmUuIE5lZWQg dG8gdGVzdCBvbmNlIG9uIEZlZG9yYSAzNyBhbmQgdGhlbiB3aWxsIHB1c2ggdGhlIHBhdGNoIGJ1 dCBmcm9tIHRoZSBmYWlsdXJlIGluIHlvdXIgbG9ncywgIGlzc3VlIGRvZXMgbm90IGxvb2sgcmVs YXRlZCB0byB0aGlzIHBhdGNoIGFzIHRoZSB2YWx1ZSBvZiB2YXJpYWJsZSBpbiBydXN0IGxhbmd1 YWdlIGlzIHNob3duIHdyb25nIGluIEZlZG9yYSAzNyBsb2dzLiBGb3IgcnVzdCB3ZSBvbmx5IGRv buKAmXQgcHJpbnQgdGhlIHNoYWRvd2VkIHZhcmlhYmxlcyBidXQgaGFkIHRvIHJldHJ5IG9uY2Ug b24gRmVkb3JhIDM3IHRoZW4gd2lsbCBjb25maXJtIGFuZCBwdXNoIHRoZSB2NSBzZXJpZXMgZm9y IHJldmlldy4NCj4gVWJ1bnR1MjIgbG9nczoNCj4gfn5+DQo+IEJyZWFrcG9pbnQgMSwgdmFyX3Jl dXNlOjptYWluICgpIGF0IHNvdXJjZXMvZ2RiL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3Jl dXNlLnJzOjE5DQo+IDE5ICAgICAgICAgIGxldCBfeSA9IDg7ICAgICAgIC8vIHNldCBicmVha3Bv aW50IGhlcmUNCj4gKGdkYikgaW5mbyBsb2NhbCBfeA0KPiBfeCA9IDEyDQo+IChnZGIpIFBBU1M6 IGdkYi5ydXN0L3Zhcl9yZXVzZS5leHA6IHByaW50IGxvY2FsIF94IHZhcmlhYmxlIHRlc3RjYXNl IA0KPiBzb3VyY2VzL2dkYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5leHAgY29t cGxldGVkIGluIDcgDQo+IHNlY29uZHMgfn5+DQo+DQo+IFRoYW5rcyAmIEJlc3QgUmVnYXJkcw0K PiBBYmR1bCBCYXNpdA0KPg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBH dWluZXZlcmUgTGFyc2VuIDxibGFyc2VuQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBP Y3RvYmVyIDEyLCAyMDIzIDExOjQwIEFNDQo+IFRvOiBJamF6LCBBYmR1bCBCIDxhYmR1bC5iLmlq YXpAaW50ZWwuY29tPjsgZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcNCj4gQ2M6IGxzaXhAbGFu Y2Vsb3RzaXguY29tOyBwZWRyb0BwYWx2ZXMubmV0DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQg MS8yXSBnZGI6IGFkZCBhbm5vdGF0aW9uIGluICdpbmZvIGxvY2FscycgDQo+IGNvbW1hbmQgZm9y IHZhcmlhYmxlcyBzaGFkb3dpbmcgY2FzZQ0KPg0KPiBPbiAxOS8wOS8yMDIzIDE4OjQ2LCBBYmR1 bCBCYXNpdCBJamF6IHZpYSBHZGItcGF0Y2hlcyB3cm90ZToNCj4+IEZyb206ICJJamF6LCBBYmR1 bCBCIiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT4NCj4+DQo+PiBGb3IgQy9DKysvRm9ydHJhbi9B ZGEgbGFuZ3VhZ2VzIEdEQiBwcmludHMgc2FtZSBuYW1lIHZhcmlhYmxlIA0KPj4gbXVsdGlwbGUg dGltZXMgaW4gY2FzZSBvZiB2YXJpYWJsZSBzaGFkb3dpbmcgYW5kIGl0IGlzIGNvbmZ1c2luZyBm b3IgDQo+PiB1c2VyIHRvIGlkZW50aWZ5IHdoaWNoIHZhcmlhYmxlIGJlbG9uZ3MgdG8gdGhlIGN1 cnJlbnQgc2NvcGUuICBTbyBmb3IgDQo+PiBzdWNoIGNhc2VzIGFkZCBsb2NhdGlvbiBpbmZvIHRv IHRoZSBpbm5lcm1vc3QgbGlzdGVkIHZhcmlhYmxlcyBhbmQgDQo+PiBmb3Igc3VwZXIgYmxvY2sg dmFyaWFibGVzIGFkZCAic2hhZG93ZWQiIGFubm90YXRpb24gaW4gdGhlIGZvcm0gb2YgIjxmaWxl LmM6bGluZSwgc2hhZG93ZWQ+Ii4NCj4+DQo+PiBTdXBwb3NlIHdlIGhhdmUNCj4+DQo+PiAxOmlu dCB4ID0gNDI7DQo+PiAyOiAgew0KPj4gMzogICAgaW50IHggPSA5OTsNCj4+IDQ6ICAgIGludCB5 ID0gNTI7DQo+PiA1OiAgICB4ID0gOTk7IC8qIGJyZWFrIGhlcmUgKi8NCj4+IDY6ICB9DQo+Pg0K Pj4gQ3VycmVudGx5Og0KPj4NCj4+IChnZGIpIGluZm8gbG9jYWxzDQo+PiB4ID0gOTkNCj4+IHgg PSA0Mg0KPj4geSA9IDUyDQo+Pg0KPj4gQWZ0ZXIgYXBwbHlpbmcgdGhpcyBwYXRjaCwgd2Ugb2J0 YWluOg0KPj4NCj4+IChnZGIpIGluZm8gbG9jYWxzDQo+PiB4ID0gOTkgIDxmaWxlLmM6Mz4NCj4+ IHkgPSA1Mg0KPj4geCA9IDQyICA8ZmlsZS5jOjEsIHNoYWRvd2VkPg0KPj4NCj4+IFRoZSBwYXRj aCBhZGRzIHRoZSBsb2NhdGlvbiBhbm5vdGF0aW9ucyBieSBrZWVwaW5nIHRyYWNrIG9mIGlubmVy IA0KPj4gYmxvY2sgYW5kIGFscmVhZHkgcHJpbnRlZCB2YXJpYWJsZXMgdG8gaWRlbnRpZnkgc2hh ZG93aW5nLiAgU28sIEdEQiANCj4+IG5vdyBwcmludHMgIjxmaWxlLmM6bGluZSwgc2hhZG93ZWQ+ IiBmb3Igc2hhZG93ZWQgc3VwZXItYmxvY2sgDQo+PiB2YXJpYWJsZXMgYW5kICI8ZmlsZS5jOmxp bmU+IiBmb3IgaW5uZXJtb3N0IGRlY2xhcmF0aW9ucyBvZiBzdWNoIHZhcmlhYmxlcyBvbmx5Lg0K Pj4NCj4+IFRoZSBsb2NhdGlvbiBhbm5vdGF0aW9ucyBhcmUgcHJpbnRlZCBmb3Igc2hhZG93ZWQg dmFyaWFibGVzIGluIGNhc2UgDQo+PiBvZiBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5ndWFnZXMuICBJ biBSdXN0LCBpdCBpcyBwb3NzaWJsZSB0byBkZWNsYXJlIGEgDQo+PiB2YXJpYWJsZSB3aXRoIHRo ZSBzYW1lIG5hbWUgbWFueSB0aW1lcy4gIFNvIGluIHRoaXMgY2FzZSwganVzdCB0aGUgDQo+PiBm aXJzdCBpbnN0YW5jZSBvZiB0aGUgdmFyaWFibGUgaXMgcHJpbnRlZC4NCj4gVGhhbmtzIGZvciB3 b3JraW5nIG9uIHRoaXMhDQo+DQo+IFRoaXMgcGF0Y2ggc2VlbXMgdG8gaGF2ZSBzbGlwcGVkIHRo cm91Z2ggdGhlIGNyYWNrcyBhbmQgbmVlZHMgYSBzbWFsbCANCj4gcmViYXNlLCBidXQgdGhlIGNv bmZsaWN0IHdhcyBwcmV0dHkgdHJpdmlhbCB0byByZXNvbHZlIGxvY2FsbHkgDQo+IChpbmZlcmlv ci5oIGlzIGFsc28gYmVpbmcgYWRkZWQgdG8gcHJpbnRjbWQuYykNCj4NCj4gSSBzZWUgYSBmYWls dXJlIG9uIHRoZSBuZXdseSBhZGRlZCB0ZXN0IG9uIG15IGZlZG9yYTM3IG1hY2hpbmU6DQo+DQo+ IEJyZWFrcG9pbnQgMSwgdmFyX3JldXNlOjptYWluICgpIGF0DQo+IC4uLy4uLy4uL2Rvd25zdHJl YW0tZ2RiL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLnJzOjE5DQo+IDE5wqDCoMKg wqDCoMKgwqDCoMKgIGxldCBfeSA9IDg7wqDCoMKgwqDCoMKgIC8vIHNldCBicmVha3BvaW50IGhl cmUNCj4gKGdkYikgaW5mbyBsb2NhbCBfeA0KPiBfeCA9IDANCj4gKGdkYikgRkFJTDogZ2RiLnJ1 c3QvdmFyX3JldXNlLmV4cDogcHJpbnQgbG9jYWwgX3ggdmFyaWFibGUNCj4NCj4gSSBkb24ndCB0 aGluayB0aGlzIGlzIHJlbGF0ZWQgdG8gdGhlIGNvbmZsaWN0LCBidXQgSSBkb24ndCByZWFsbHkg aGF2ZSB0aGUgdGltZSB0byBkaWFnbm9zZSB3aGF0IGlzIGdvaW5nIG9uLg0KPg0KPj4gLS0tDQo+ PiAgICBnZGIvZG9jL2dkYi50ZXhpbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMyAr KysNCj4+ICAgIGdkYi9wcmludGNtZC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDExICsrLQ0KPj4gICAgZ2RiL3N0YWNrLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNjQgKysrKysrKysrKystLQ0KPj4gICAgZ2RiL3N0YWNrLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0NCj4+ICAgIGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS92 YXJfc2hhZG93aW5nLmV4cCAgICAgICB8IDM4ICsrKysrKysrDQo+PiAgICAuLi4vZ2RiLmFkYS92 YXJfc2hhZG93aW5nL3Zhcl9zaGFkb3dpbmcuYWRiICAgfCAzMCArKysrKysrDQo+PiAgICBnZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcuYyAgICAgICAgfCA0OSArKysrKysrKysr DQo+PiAgICBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcuZXhwICAgICAgfCA5 MCArKysrKysrKysrKysrKysrKysrDQo+PiAgICBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1z aGFkb3dpbmcyLmMgICAgICAgfCAxNiArKysrDQo+PiAgICBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0 L3Zhcl9yZXVzZS5leHAgICAgICAgICAgfCAzMiArKysrKysrDQo+PiAgICBnZGIvdGVzdHN1aXRl L2dkYi5ydXN0L3Zhcl9yZXVzZS5ycyAgICAgICAgICAgfCAyMCArKysrKw0KPj4gICAgZ2RiL3Ry YWNlcG9pbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0NCj4+ICAgIGdk Yi92YWx1ZS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstDQo+PiAg ICAxMyBmaWxlcyBjaGFuZ2VkLCAzNjIgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQo+ PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9zaGFkb3dp bmcuZXhwDQo+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zh cl9zaGFkb3dpbmcvdmFyX3NoYWRvd2luZy5hZGINCj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDc1NSBn ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcuYw0KPj4gICAgY3JlYXRlIG1vZGUg MTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5leHANCj4+ICAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcyLmMN Cj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVz ZS5leHANCj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zh cl9yZXVzZS5ycw0KPj4NCj4+IGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2Ri L2RvYy9nZGIudGV4aW5mbyBpbmRleA0KPj4gOWI3ZTA2ZjMxNTYuLjZhMjJiYmYyNTMxIDEwMDY0 NA0KPj4gLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbw0KPj4gKysrIGIvZ2RiL2RvYy9nZGIudGV4 aW5mbw0KPj4gQEAgLTg4MzEsNiArODgzMSwxOSBAQCBUaGUgb3B0aW9uYWwgZmxhZyBAc2FtcHst cX0sIHdoaWNoIHN0YW5kcyBmb3IgQHNhbXB7cXVpZXR9LCBkaXNhYmxlcw0KPj4gICAgcHJpbnRp bmcgaGVhZGVyIGluZm9ybWF0aW9uIGFuZCBtZXNzYWdlcyBleHBsYWluaW5nIHdoeSBubyBsb2Nh bCB2YXJpYWJsZXMNCj4+ICAgIGhhdmUgYmVlbiBwcmludGVkLg0KPj4gICAgDQo+PiArQHNtYWxs ZXhhbXBsZQ0KPj4gKzE6IGludCB4ID0gMzsNCj4+ICsyOiBAew0KPj4gKzM6ICAgICAgIGludCB4 ID0gNDsgLy8gYnJlYWtwdA0KPj4gKzQ6IEB9DQo+PiArKGdkYikgaW5mbyBsb2NhbHMNCj4+ICt4 ID0gNAk8ZmlsZS5jOjM+DQo+PiAreCA9IDMJPGZpbGUuYzoxLCBzaGFkb3dlZD4NCj4+ICtAZW5k IHNtYWxsZXhhbXBsZQ0KPj4gKw0KPj4gK0lmIGEgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHRoZW4g bG9jYXRpb24gaW5mb3JtYXRpb24gaXMgcHJpbnRlZCBhbmQgDQo+PiArZm9yIHRoZSBvdXRlcm1v c3Qgc2NvcGUgdmFyaWFibGVzICJzaGFkb3dlZCIgc3RyaW5nIGlzIHByaW50ZWQgYXMgd2VsbC4N Cj4+ICsNCj4+ICAgIEBpdGVtIGluZm8gbG9jYWxzIFstcV0gWy10IEB2YXJ7dHlwZV9yZWdleHB9 XSBbQHZhcntyZWdleHB9XQ0KPj4gICAgTGlrZSBAa2Jke2luZm8gbG9jYWxzfSwgYnV0IG9ubHkg cHJpbnQgdGhlIGxvY2FsIHZhcmlhYmxlcyBzZWxlY3RlZA0KPj4gICAgd2l0aCB0aGUgcHJvdmlk ZWQgcmVnZXhwKHMpLg0KPj4gZGlmZiAtLWdpdCBhL2dkYi9wcmludGNtZC5jIGIvZ2RiL3ByaW50 Y21kLmMgaW5kZXgNCj4+IDhkN2QwNDIzMWZlLi44MzAwOGU1YzNmMyAxMDA2NDQNCj4+IC0tLSBh L2dkYi9wcmludGNtZC5jDQo+PiArKysgYi9nZGIvcHJpbnRjbWQuYw0KPj4gQEAgLTU1LDYgKzU1 LDcgQEANCj4+ICAgICNpbmNsdWRlICJnZGJzdXBwb3J0L2dkYl9vcHRpb25hbC5oIg0KPj4gICAg I2luY2x1ZGUgImdkYnN1cHBvcnQvZ2RiLXNhZmUtY3R5cGUuaCINCj4+ICAgICNpbmNsdWRlICJn ZGJzdXBwb3J0L3JzcC1sb3cuaCINCj4+ICsjaW5jbHVkZSAiaW5jbHVkZS9saWJpYmVydHkuaCIN Cj4+ICAgIA0KPj4gICAgLyogQ2hhaW4gY29udGFpbmluZyBhbGwgZGVmaW5lZCBtZW1vcnktdGFn IHN1YmNvbW1hbmRzLiAgKi8NCj4+ICAgIA0KPj4gQEAgLTI0MDEsNyArMjQwMiw4IEBAIGNsZWFy X2RhbmdsaW5nX2Rpc3BsYXlfZXhwcmVzc2lvbnMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQ0K Pj4gICAgdm9pZA0KPj4gICAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpu YW1lLCBzdHJ1Y3Qgc3ltYm9sICp2YXIsDQo+PiAgICAJCQkgIGZyYW1lX2luZm9fcHRyIGZyYW1l LA0KPj4gLQkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IGluZGVudCkNCj4+ICsJCQkg IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBpbmRlbnQsDQo+PiArCQkJICBib29sIHNoYWRv d2VkLCBib29sIHByaW50ZWQpDQo+PiAgICB7DQo+PiAgICANCj4+ICAgICAgaWYgKCFuYW1lKQ0K Pj4gQEAgLTI0MTQsNiArMjQxNiw3IEBAIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IHN5bWJvbCAqdmFyLA0KPj4gICAgICAgIHsNCj4+ICAgICAgICAg IHN0cnVjdCB2YWx1ZSAqdmFsOw0KPj4gICAgICAgICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgb3B0czsNCj4+ICsgICAgICBjb25zdCBjaGFyICpmaWxlX25hbWUgPSBsYmFzZW5hbWUgDQo+ PiArICh2YXItPm93bmVyLnN5bXRhYi0+ZmlsZW5hbWUpOw0KPj4gICAgDQo+PiAgICAgICAgICAv KiBSRUFEX1ZBUl9WQUxVRSBuZWVkcyBhIGJsb2NrIGluIG9yZGVyIHRvIGRlYWwgd2l0aCBub24t bG9jYWwNCj4+ICAgIAkgcmVmZXJlbmNlcyAoaS5lLiB0byBoYW5kbGUgbmVzdGVkIGZ1bmN0aW9u cykuICBJbiB0aGlzIGNvbnRleHQsIA0KPj4gd2UgQEAgLTI0MjQsNiArMjQyNywxMiBAQCBwcmlu dF92YXJpYWJsZV9hbmRfdmFsdWUgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzeW1ib2wgKnZh ciwNCj4+ICAgICAgICAgIG9wdHMuZGVyZWZfcmVmID0gdHJ1ZTsNCj4+ICAgICAgICAgIGNvbW1v bl92YWxfcHJpbnRfY2hlY2tlZCAodmFsLCBzdHJlYW0sIGluZGVudCwgJm9wdHMsIA0KPj4gY3Vy cmVudF9sYW5ndWFnZSk7DQo+PiAgICANCj4+ICsgICAgICBpZiAoc2hhZG93ZWQpDQo+PiArCS8q IFByaW50IGxvY2F0aW9uIGFuZCBzaGFkb3dlZCB2YXJpYWJsZSBpbmZvcm1hdGlvbi4gICovDQo+ PiArCWZwcmludGZfc3R5bGVkIChzdHJlYW0sIG1ldGFkYXRhX3N0eWxlLnN0eWxlICgpLA0KPj4g KwkJCV8oIlx0PCVzOiVkJXM+IiksIGZpbGVfbmFtZSwNCj4+ICsJCQl2YXItPmxpbmUgKCksIHBy aW50ZWQgPyAiLCBzaGFkb3dlZCIgOiAiIik7DQo+PiArDQo+PiAgICAgICAgICAvKiBjb21tb25f dmFsX3ByaW50IGludmFsaWRhdGVzIEZSQU1FIHdoZW4gYSBwcmV0dHkgcHJpbnRlciBjYWxscyBp bmZlcmlvcg0KPj4gICAgCSBmdW5jdGlvbi4gICovDQo+PiAgICAgICAgICBmcmFtZSA9IE5VTEw7 DQo+PiBkaWZmIC0tZ2l0IGEvZ2RiL3N0YWNrLmMgYi9nZGIvc3RhY2suYyBpbmRleCAwYjM1ZDYy ZjgyZi4uMDE3M2U3MzQxZTkNCj4+IDEwMDY0NA0KPj4gLS0tIGEvZ2RiL3N0YWNrLmMNCj4+ICsr KyBiL2dkYi9zdGFjay5jDQo+PiBAQCAtNTYsNiArNTYsNyBAQA0KPj4gICAgI2luY2x1ZGUgImNs aS9jbGktb3B0aW9uLmgiDQo+PiAgICAjaW5jbHVkZSAiY2xpL2NsaS1zdHlsZS5oIg0KPj4gICAg I2luY2x1ZGUgImdkYnN1cHBvcnQvYnVpbGRhcmd2LmgiDQo+PiArI2luY2x1ZGUgPHVub3JkZXJl ZF9zZXQ+DQo+PiAgICANCj4+ICAgIC8qIFRoZSBwb3NzaWJsZSBjaG9pY2VzIG9mICJzZXQgcHJp bnQgZnJhbWUtYXJndW1lbnRzIiwgYW5kIHRoZSB2YWx1ZQ0KPj4gICAgICAgb2YgdGhpcyBzZXR0 aW5nLiAgKi8NCj4+IEBAIC0yMjExLDEwICsyMjEyLDE2IEBAIGJhY2t0cmFjZV9jb21tYW5kX2Nv bXBsZXRlciAoc3RydWN0IA0KPj4gY21kX2xpc3RfZWxlbWVudCAqaWdub3JlLA0KPj4gICAgDQo+ PiAgICBzdGF0aWMgdm9pZA0KPj4gICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FscyAoY29uc3Qg c3RydWN0IGJsb2NrICpiLA0KPj4gLQkJCSAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfbG9jYWxf dmFyc19jYiBjYikNCj4+ICsJCQkgICBpdGVyYXRlX292ZXJfYmxvY2tfYXJnX2xvY2FsX3ZhcnNf Y2IgY2IsDQo+PiArCQkJICAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfc2V0PHN0ZDo6c3RyaW5nPiAq c2hhZG93ZWRfdmFycywNCj4+ICsJCQkgICBzdGQ6OnVub3JkZXJlZF9zZXQ8c3RkOjpzdHJpbmc+ ICZwcmludGVkX3ZhcnMpDQo+PiAgICB7DQo+PiAgICAgIGZvciAoc3RydWN0IHN5bWJvbCAqc3lt IDogYmxvY2tfaXRlcmF0b3JfcmFuZ2UgKGIpKQ0KPj4gICAgICAgIHsNCj4+ICsgICAgICBjb25z dCBjaGFyICpuYW1lID0gc3ltLT5wcmludF9uYW1lICgpOw0KPj4gKyAgICAgIGJvb2wgYWxyZWFk eV9wcmludGVkID0gIXByaW50ZWRfdmFycy5pbnNlcnQgKG5hbWUpLnNlY29uZDsNCj4+ICsgICAg ICBib29sIHNoYWRvd2VkID0gc2hhZG93ZWRfdmFycy0+ZmluZCAobmFtZSkgIT0gDQo+PiArIHNo YWRvd2VkX3ZhcnMtPmVuZCAoKTsNCj4+ICsNCj4+ICAgICAgICAgIHN3aXRjaCAoc3ltLT5hY2xh c3MgKCkpDQo+PiAgICAJew0KPj4gICAgCWNhc2UgTE9DX0NPTlNUOg0KPj4gQEAgLTIyMjcsNyAr MjIzNCwyNSBAQCBpdGVyYXRlX292ZXJfYmxvY2tfbG9jYWxzIChjb25zdCBzdHJ1Y3QgYmxvY2sg KmIsDQo+PiAgICAJICAgIGJyZWFrOw0KPj4gICAgCSAgaWYgKHN5bS0+ZG9tYWluICgpID09IENP TU1PTl9CTE9DS19ET01BSU4pDQo+PiAgICAJICAgIGJyZWFrOw0KPj4gLQkgIGNiIChzeW0tPnBy aW50X25hbWUgKCksIHN5bSk7DQo+PiArCSAgLyogT25seSBmb3IgQy9DKysvRm9ydHJhbi9BZGEg bGFuZ3VhZ2VzLCBpbiBjYXNlIG9mIHZhcmlhYmxlcw0KPj4gKwkgICAgIHNoYWRvd2luZyBwcmlu dCA8ZmlsZTpsaW5lLCBzaGFkb3dlZD4gYW5ub3RhdGlvbiBhZnRlcg0KPj4gKwkgICAgIHRoZSBz dXBlcmJsb2NrIHZhcmlhYmxlLiAgSXRlcmF0aW9uIG9mIGJsb2NrIHN0YXJ0cyBmcm9tIGlubmVy DQo+PiArCSAgICAgYmxvY2sgd2hpY2ggaXMgcHJpbnRlZCBvbmx5IHdpdGggbG9jYXRpb24gaW5m b3JtYXRpb24uICAqLw0KPj4gKwkgIGlmICgoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2Ug PT0gbGFuZ3VhZ2VfYw0KPj4gKwkgICAgICAgfHwgY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfY3BsdXMNCj4+ICsJICAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxh X2xhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4NCj4+ICsJICAgICAgIHx8IGN1cnJlbnRfbGFu Z3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX2FkYSkNCj4+ICsJICAgICAgJiYgc2hhZG93 ZWQpDQo+PiArCSAgICBjYiAobmFtZSwgc3ltLCB0cnVlLCBhbHJlYWR5X3ByaW50ZWQpOw0KPj4g KwkgIC8qIEluIGNhc2Ugb2YgUnVzdCBsYW5ndWFnZSBpdCBpcyBwb3NzaWJsZSB0byBkZWNsYXJl IHZhcmlhYmxlIHdpdGgNCj4+ICsJICAgICBzYW1lIG5hbWUgbXVsdGlwbGUgdGltZXMgYW5kIG9u bHkgbGF0ZXN0IGRlY2xhcmF0aW9uIG9mIHZhcmlhYmxlDQo+PiArCSAgICAgaXMgYWNjZXNzaWJs ZS4gIFNvIHByaW50IG9ubHkgdGhlIGZpcnN0IGluc3RhbmNlIGFuZCB0aGVyZSBpcyBubw0KPj4g KwkgICAgIG5lZWQgb2YgcHJpbnRpbmcgZHVwbGljYXRlcy4gICovDQo+PiArCSAgZWxzZSBpZiAo Y3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfcnVzdA0KPj4gKwkJICAg JiYgc2hhZG93ZWQgJiYgYWxyZWFkeV9wcmludGVkKQ0KPj4gKwkgICAgYnJlYWs7DQo+PiArCSAg ZWxzZQ0KPj4gKwkgICAgY2IgKG5hbWUsIHN5bSwgZmFsc2UsIGZhbHNlKTsNCj4+ICAgIAkgIGJy ZWFrOw0KPj4gICAgDQo+PiAgICAJZGVmYXVsdDoNCj4+IEBAIC0yMjQ0LDkgKzIyNjksMzEgQEAg dm9pZA0KPj4gICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FsX3ZhcnMgKGNvbnN0IHN0cnVjdCBi bG9jayAqYmxvY2ssDQo+PiAgICAJCQkgICAgICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2Nh bF92YXJzX2NiIGNiKQ0KPj4gICAgew0KPj4gKyAgc3RkOjp1bm9yZGVyZWRfc2V0PHN0ZDo6c3Ry aW5nPiBjb2xsZWN0ZWRfdmFycywgc2hhZG93ZWRfdmFycywgDQo+PiArIHByaW50ZWRfdmFyczsg IGNvbnN0IHN0cnVjdCBibG9jayAqb3JpZ19ibG9jayA9IGJsb2NrOw0KPj4gKw0KPj4gKyAgLyog SXRlcmF0ZSBvdmVyIGFsbCB0aGUgbG9jYWwgdmFyaWFibGVzIGluIGEgYmxvY2sgYW5kIHN0b3Jl IHRoZSBsaXN0IG9mDQo+PiArICAgICBzaGFkb3dlZCB2YXJpYWJsZXMgdG8gbGF0ZXIgZGlzdGlu Z3Vpc2ggdGhlbSBmcm9tIG90aGVyIA0KPj4gK3ZhcmlhYmxlcy4gICovDQo+PiArICB3aGlsZSAo YmxvY2sgIT0gbnVsbHB0cikNCj4+ICsgICAgew0KPj4gKyAgICAgIGZvciAoc3RydWN0IHN5bWJv bCAqc3ltIDogYmxvY2tfaXRlcmF0b3JfcmFuZ2UgKGJsb2NrKSkNCj4+ICsJew0KPj4gKwkgIGlm ICghc3ltLT5pc19hcmd1bWVudCAoKSkNCj4+ICsJICAgIHsNCj4+ICsJICAgICAgY29uc3QgY2hh ciAqbmFtZSA9IHN5bS0+cHJpbnRfbmFtZSAoKTsNCj4+ICsJICAgICAgaWYgKCFjb2xsZWN0ZWRf dmFycy5pbnNlcnQgKG5hbWUpLnNlY29uZCkNCj4+ICsJCXNoYWRvd2VkX3ZhcnMuaW5zZXJ0IChu YW1lKTsNCj4+ICsJICAgIH0NCj4+ICsJfQ0KPj4gKyAgICAgIGlmIChibG9jay0+ZnVuY3Rpb24g KCkpDQo+PiArCWJyZWFrOw0KPj4gKyAgICAgIGJsb2NrID0gYmxvY2stPnN1cGVyYmxvY2sgKCk7 DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgIGJsb2NrID0gb3JpZ19ibG9jazsNCj4+ICAgICAgd2hp bGUgKGJsb2NrKQ0KPj4gICAgICAgIHsNCj4+IC0gICAgICBpdGVyYXRlX292ZXJfYmxvY2tfbG9j YWxzIChibG9jaywgY2IpOw0KPj4gKyAgICAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKGJs b2NrLCBjYiwgJnNoYWRvd2VkX3ZhcnMsIA0KPj4gKyBwcmludGVkX3ZhcnMpOw0KPj4gICAgICAg ICAgLyogQWZ0ZXIgaGFuZGxpbmcgdGhlIGZ1bmN0aW9uJ3MgdG9wLWxldmVsIGJsb2NrLCBzdG9w LiAgRG9uJ3QNCj4+ICAgIAkgY29udGludWUgdG8gaXRzIHN1cGVyYmxvY2ssIHRoZSBibG9jayBv ZiBwZXItZmlsZQ0KPj4gICAgCSBzeW1ib2xzLiAgKi8NCj4+IEBAIC0yMjY4LDE0ICsyMzE1LDE2 IEBAIHN0cnVjdCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YQ0KPj4gICAgICBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtOw0KPj4gICAgICBpbnQgdmFsdWVzX3ByaW50ZWQ7DQo+PiAgICANCj4+ IC0gIHZvaWQgb3BlcmF0b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwgc3RydWN0IHN5bWJv bCAqc3ltKTsNCj4+ICsgIHZvaWQgb3BlcmF0b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwg c3RydWN0IHN5bWJvbCAqc3ltLCBib29sIHNoYWRvd2VkLA0KPj4gKwkJICAgYm9vbCBwcmludGVk KTsNCj4+ICAgIH07DQo+PiAgICANCj4+ICAgIC8qIFRoZSBjYWxsYmFjayBmb3IgdGhlIGxvY2Fs cyBhbmQgYXJncyBpdGVyYXRvcnMuICAqLw0KPj4gICAgDQo+PiAgICB2b2lkDQo+PiAgICBwcmlu dF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YTo6b3BlcmF0b3IoKSAoY29uc3QgY2hhciAqcHJpbnRf bmFtZSwNCj4+IC0JCQkJCSAgIHN0cnVjdCBzeW1ib2wgKnN5bSkNCj4+ICsJCQkJCSAgIHN0cnVj dCBzeW1ib2wgKnN5bSwNCj4+ICsJCQkJCSAgIGJvb2wgc2hhZG93ZWQsIGJvb2wgcHJpbnRlZCkN Cj4+ICAgIHsNCj4+ICAgICAgZnJhbWVfaW5mb19wdHIgZnJhbWU7DQo+PiAgICANCj4+IEBAIC0y Mjk1LDcgKzIzNDQsOCBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YTo6b3BlcmF0b3Io KSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwNCj4+ICAgICAgICAgIHJldHVybjsNCj4+ICAgICAg ICB9DQo+PiAgICANCj4+IC0gIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAocHJpbnRfbmFtZSwg c3ltLCBmcmFtZSwgc3RyZWFtLCANCj4+IG51bV90YWJzKTsNCj4+ICsgIHByaW50X3ZhcmlhYmxl X2FuZF92YWx1ZSAocHJpbnRfbmFtZSwgc3ltLCBmcmFtZSwgc3RyZWFtLCBudW1fdGFicywgc2hh ZG93ZWQsDQo+PiArCQkJICAgIHByaW50ZWQpOw0KPj4gICAgDQo+PiAgICAgIC8qIHByaW50X3Zh cmlhYmxlX2FuZF92YWx1ZSBpbnZhbGlkYXRlcyBGUkFNRS4gICovDQo+PiAgICAgIGZyYW1lID0g TlVMTDsNCj4+IEBAIC0yNDc4LDcgKzI1MjgsNyBAQCBpdGVyYXRlX292ZXJfYmxvY2tfYXJnX3Zh cnMgKGNvbnN0IHN0cnVjdCBibG9jayAqYiwNCj4+ICAgIAkgIHN0cnVjdCBzeW1ib2wgKnN5bTIN Cj4+ICAgIAkgICAgPSBsb29rdXBfc3ltYm9sX3NlYXJjaF9uYW1lIChzeW0tPnNlYXJjaF9uYW1l ICgpLA0KPj4gICAgCQkJCQkgYiwgVkFSX0RPTUFJTikuc3ltYm9sOw0KPj4gLQkgIGNiIChzeW0t PnByaW50X25hbWUgKCksIHN5bTIpOw0KPj4gKwkgIGNiIChzeW0tPnByaW50X25hbWUgKCksIHN5 bTIsIGZhbHNlLCBmYWxzZSk7DQo+PiAgICAJfQ0KPj4gICAgICAgIH0NCj4+ICAgIH0NCj4+IGRp ZmYgLS1naXQgYS9nZGIvc3RhY2suaCBiL2dkYi9zdGFjay5oIGluZGV4IDFiMGMyYjM0MmE0Li43 MmQ4NDNiNjZmYg0KPj4gMTAwNjQ0DQo+PiAtLS0gYS9nZGIvc3RhY2suaA0KPj4gKysrIGIvZ2Ri L3N0YWNrLmgNCj4+IEBAIC0yNCw3ICsyNCw4IEBAIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNo YXI+IGZpbmRfZnJhbWVfZnVubmFtZSAoZnJhbWVfaW5mb19wdHIgZnJhbWUsDQo+PiAgICAJCQkJ CQkgIGVudW0gbGFuZ3VhZ2UgKmZ1bmxhbmcsDQo+PiAgICAJCQkJCQkgIHN0cnVjdCBzeW1ib2wg KipmdW5jcCk7DQo+PiAgICANCj4+IC10eXBlZGVmIGdkYjo6ZnVuY3Rpb25fdmlldzx2b2lkIChj b25zdCBjaGFyICpwcmludF9uYW1lLCBzdHJ1Y3QgDQo+PiBzeW1ib2wgKnN5bSk+DQo+PiArdHlw ZWRlZiBnZGI6OmZ1bmN0aW9uX3ZpZXc8dm9pZCAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwgc3Ry dWN0IHN5bWJvbCAqc3ltLA0KPj4gKwkJCQkgYm9vbCBzaGFkb3dlZCwgYm9vbCBwcmludGVkKT4N Cj4+ICAgICAgICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiOw0KPj4gICAg DQo+PiAgICB2b2lkIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfdmFycyAoY29uc3Qgc3RydWN0IGJs b2NrICpibG9jaywgZGlmZiANCj4+IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9z aGFkb3dpbmcuZXhwDQo+PiBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS92YXJfc2hhZG93aW5nLmV4 cA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAwLi5kYTI3OWRh MjU4ZA0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zh cl9zaGFkb3dpbmcuZXhwDQo+PiBAQCAtMCwwICsxLDM4IEBADQo+PiArIyBDb3B5cmlnaHQgMjAy MyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4+ICsNCj4+ICsjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+PiAr bW9kaWZ5ICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyANCj4+ICtwdWJsaXNoZWQgYnkgIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSANCj4+ICtMaWNlbnNlLCBvciAjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+PiArIw0KPj4gKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsICMgDQo+PiArYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YgIyANCj4+ICtNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlICMgR05VIA0KPj4gK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4NCj4+ICsjDQo+PiArIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSANCj4+ICsjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0K Pj4gKw0KPj4gK2xvYWRfbGliICJhZGEuZXhwIg0KPj4gKw0KPj4gK3JlcXVpcmUgYWxsb3dfYWRh X3Rlc3RzDQo+PiArDQo+PiArc3RhbmRhcmRfYWRhX3Rlc3RmaWxlIHZhcl9zaGFkb3dpbmcNCj4+ ICsNCj4+ICtpZiB7W2dkYl9jb21waWxlX2FkYSAiJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4 ZWN1dGFibGUgW2xpc3QgDQo+PiArZGVidWddXSAhPSAiIiB9IHsNCj4+ICsgIHJldHVybiAtMQ0K Pj4gK30NCj4+ICsNCj4+ICtjbGVhbl9yZXN0YXJ0ICR7dGVzdGZpbGV9DQo+PiArDQo+PiArc2V0 IGlfbGV2ZWwxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJJLUxldmVsMSINCj4+ICske3Rlc3RkaXJ9 L3Zhcl9zaGFkb3dpbmcuYWRiXSBzZXQgaV9sZXZlbDIgW2dkYl9nZXRfbGluZV9udW1iZXIgDQo+ PiArIkktTGV2ZWwyIiAke3Rlc3RkaXJ9L3Zhcl9zaGFkb3dpbmcuYWRiXSBzZXQgaV9sZXZlbDMg DQo+PiArW2dkYl9nZXRfbGluZV9udW1iZXIgIkktTGV2ZWwzIiAke3Rlc3RkaXJ9L3Zhcl9zaGFk b3dpbmcuYWRiXSBzZXQgDQo+PiArYnBfbG9jYXRpb24gW2dkYl9nZXRfbGluZV9udW1iZXIgIkJS RUFLIiAke3Rlc3RkaXJ9L3Zhcl9zaGFkb3dpbmcuYWRiXSBydW50byAidmFyX3NoYWRvd2luZy5h ZGI6JGJwX2xvY2F0aW9uIg0KPj4gKw0KPj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRp X2xpbmUgXA0KPj4gKyAgICAiaSA9IDExMVx0PCR0ZXN0ZmlsZS5hZGI6JGlfbGV2ZWwzPiIgIFwN Cj4+ICsgICAgImkgPSAxMVx0PCR0ZXN0ZmlsZS5hZGI6JGlfbGV2ZWwyLCBzaGFkb3dlZD4iICBc DQo+PiArICAgICJpID0gMVx0PCR0ZXN0ZmlsZS5hZGI6JGlfbGV2ZWwxLCBzaGFkb3dlZD4iICBc IF0gImluZm8gbG9jYWxzIA0KPj4gK2F0IGlubmVybW9zdCBsZXZlbCINCj4+IGRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy92YXJfc2hhZG93aW5nLmFkYg0K Pj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy92YXJfc2hhZG93aW5nLmFk Yg0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAwLi45M2NlZjVm MGQ2Yw0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zh cl9zaGFkb3dpbmcvdmFyX3NoYWRvd2luZy5hZGINCj4+IEBAIC0wLDAgKzEsMzAgQEANCj4+ICst LSAgQ29weXJpZ2h0IDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+PiArLS0N Cj4+ICstLSAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciANCj4+ICttb2RpZnkNCj4+ICstLSAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyANCj4+ICtwdWJsaXNoZWQgYnkNCj4+ ICstLSAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgDQo+PiArb3INCj4+ICstLSAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4NCj4+ICstLQ0KPj4gKy0tICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4+ICstLSAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCj4+ICstLSAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KPj4gKy0tICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KPj4gKy0tDQo+PiArLS0gIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyANCj4+ICtMaWNlbnNlDQo+PiArLS0gIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0K Pj4gKw0KPj4gK3dpdGggQWRhLlRleHRfSU87IHVzZSBBZGEuVGV4dF9JTzsNCj4+ICsNCj4+ICtw cm9jZWR1cmUgVmFyc2hhZG93IGlzDQo+PiArICBJIDogSW50ZWdlciA6PSAxOyAgLS0gSS1MZXZl bDENCj4+ICtiZWdpbg0KPj4gKyAgZGVjbGFyZQ0KPj4gKyAgICBJIDogSW50ZWdlciA6PSAxMTsg LS0gSS1MZXZlbDINCj4+ICsgIGJlZ2luDQo+PiArICAgIGRlY2xhcmUNCj4+ICsgICAgICBJIDog SW50ZWdlciA6PSAxMTE7IC0tIEktTGV2ZWwzDQo+PiArICAgIGJlZ2luDQo+PiArICAgICAgUHV0 X0xpbmUgKCJoZWxsbyIpOyAgLS0gIEJSRUFLDQo+PiArICAgIGVuZDsNCj4+ICsgIGVuZDsNCj4+ ICtlbmQ7DQo+PiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93 aW5nLmMNCj4+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmMNCj4+IG5l dyBmaWxlIG1vZGUgMTAwNzU1DQo+PiBpbmRleCAwMDAwMDAwMDAwMC4uMTg5NjM1MTRiYmYNCj4+ IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRv d2luZy5jDQo+PiBAQCAtMCwwICsxLDQ5IEBADQo+PiArLyogQ29weXJpZ2h0IChDKSAyMDIzIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPj4gKw0KPj4gKyAgIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ PiArICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkNCj4+ICsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KPj4gKyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uDQo+PiArDQo+PiArICAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+PiArICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YN Cj4+ICsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlDQo+PiArICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4NCj4+ICsNCj4+ICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPj4gKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgDQo+PiArIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovDQo+PiArDQo+PiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPj4gKw0KPj4gK3ZvaWQNCj4+ ICtzaGFkb3dpbmcgKHZvaWQpDQo+PiArew0KPj4gKyAgaW50IGE7ICAvKiBicCBmb3IgZW50cnkg Ki8NCj4+ICsgIHVuc2lnbmVkIGludCB2YWwxID0gMTsJCS8qIHZhbDEtZDEgKi8NCj4+ICsgIHVu c2lnbmVkIGludCB2YWwyID0gMjsJCS8qIHZhbDItZDEgKi8NCj4+ICsgIGEgPSAxMDE7ICAvKiBi cCBmb3IgbG9jYWxzIDEgKi8NCj4+ICsgIHsNCj4+ICsgICAgdW5zaWduZWQgaW50IHZhbDIgPSAz OwkJLyogdmFsMi1kMiAqLw0KPj4gKyAgICB1bnNpZ25lZCBpbnQgdmFsMyA9IDQ7CQkvKiB2YWwz LWQxICovDQo+PiArICAgIGEgPSAxMDI7ICAvKiBicCBmb3IgbG9jYWxzIDIgKi8NCj4+ICsgICAg ew0KPj4gKyAgICAgIHVuc2lnbmVkIGludCB2YWwxID0gNTsJCS8qIHZhbDEtZDIgKi8NCj4+ICsg ICAgICBhID0gMTAzOyAgLyogYnAgZm9yIGxvY2FscyAzICovDQo+PiArICAgICAgew0KPj4gKwkj aW5jbHVkZSAidmFyLXNoYWRvd2luZzIuYyINCj4+ICsJdW5zaWduZWQgaW50IHZhbDEgPSA2Owkv KiB2YWwxLWQzICovDQo+PiArCXVuc2lnbmVkIGludCB2YWwyID0gNzsJLyogdmFsMi1kMyAqLw0K Pj4gKwl1bnNpZ25lZCBpbnQgdmFsMyA9IDg7CS8qIHZhbDMtZDIgKi8NCj4+ICsJYSA9IDEwNDsg IC8qIGJwIGZvciBsb2NhbHMgNCAqLw0KPj4gKyAgICAgIH0NCj4+ICsgICAgfQ0KPj4gKyAgfQ0K Pj4gKyAgYSA9IDA7IC8qIGJwIGZvciBsb2NhbHMgNSAqLw0KPj4gK30NCj4+ICsNCj4+ICtpbnQN Cj4+ICttYWluICh2b2lkKQ0KPj4gK3sNCj4+ICsgIHNoYWRvd2luZyAoKTsNCj4+ICsgIHJldHVy biAwOw0KPj4gK30NCj4+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1z aGFkb3dpbmcuZXhwDQo+PiBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5l eHANCj4+IG5ldyBmaWxlIG1vZGUgMTAwNzU1DQo+PiBpbmRleCAwMDAwMDAwMDAwMC4uYzdlMWU5 ZWFlMmUNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmFyLXNoYWRvd2luZy5leHANCj4+IEBAIC0wLDAgKzEsOTAgQEANCj4+ICsjIENvcHlyaWdodCAy MDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPj4gKw0KPj4gKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciANCj4+ ICttb2RpZnkgIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIA0KPj4gK3B1Ymxpc2hlZCBieSAjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIA0KPj4gK0xpY2Vuc2UsIG9yICMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4+ICsjDQo+PiArIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgIyANCj4+ICti dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZiAjIA0KPj4gK01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgIyBHTlUgDQo+PiArR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLg0KPj4gKyMNCj4+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIA0KPj4gKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u DQo+PiArDQo+PiArc3RhbmRhcmRfdGVzdGZpbGUNCj4+ICtpZiBbcHJlcGFyZV9mb3JfdGVzdGlu ZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZV0gew0KPj4gKyAgICByZXR1 cm4gLTENCj4+ICt9DQo+PiArDQo+PiAraWYgIVtydW50b19tYWluXSB7DQo+PiArICAgIHVudGVz dGVkICJmYWlsZWQgdG8gcnVuIHRvIG1haW4iDQo+PiArICAgIHJldHVybiAtMQ0KPj4gK30NCj4+ ICsNCj4+ICtzZXQgYnBfbGluZTEgW2dkYl9nZXRfbGluZV9udW1iZXIgImJwIGZvciBsb2NhbHMg MSIgJHtzcmNmaWxlfV0gc2V0DQo+PiArYnBfbGluZTIgW2dkYl9nZXRfbGluZV9udW1iZXIgImJw IGZvciBsb2NhbHMgMiIgJHtzcmNmaWxlfV0gc2V0DQo+PiArYnBfbGluZTMgW2dkYl9nZXRfbGlu ZV9udW1iZXIgImJwIGZvciBsb2NhbHMgMyIgJHtzcmNmaWxlfV0gc2V0DQo+PiArYnBfbGluZTQg W2dkYl9nZXRfbGluZV9udW1iZXIgImJwIGZvciBsb2NhbHMgNCIgJHtzcmNmaWxlfV0gc2V0DQo+ PiArYnBfbGluZTUgW2dkYl9nZXRfbGluZV9udW1iZXIgImJwIGZvciBsb2NhbHMgNSIgJHtzcmNm aWxlfV0NCj4+ICsNCj4+ICtzZXQgdmFsMV9kMSBbZ2RiX2dldF9saW5lX251bWJlciAidmFsMS1k MSIgJHtzcmNmaWxlfV0gc2V0IHZhbDFfZDIgDQo+PiArW2dkYl9nZXRfbGluZV9udW1iZXIgInZh bDEtZDIiICR7c3JjZmlsZX1dIHNldCB2YWwxX2QzIA0KPj4gK1tnZGJfZ2V0X2xpbmVfbnVtYmVy ICJ2YWwxLWQzIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMSANCj4+ICtbZ2RiX2dldF9saW5lX251 bWJlciAidmFsMi1kMSIgJHtzcmNmaWxlfV0gc2V0IHZhbDJfZDIgDQo+PiArW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZhbDItZDIiICR7c3JjZmlsZX1dIHNldCB2YWwyX2QzIA0KPj4gK1tnZGJfZ2V0 X2xpbmVfbnVtYmVyICJ2YWwyLWQzIiAke3NyY2ZpbGV9XSBzZXQgdmFsM19kMSANCj4+ICtbZ2Ri X2dldF9saW5lX251bWJlciAidmFsMy1kMSIgJHtzcmNmaWxlfV0gc2V0IHZhbDNfZDIgDQo+PiAr W2dkYl9nZXRfbGluZV9udW1iZXIgInZhbDMtZDIiICR7c3JjZmlsZX1dIHNldCBhX2xpbmUgDQo+ PiArW2dkYl9nZXRfbGluZV9udW1iZXIgImJwIGZvciBlbnRyeSIgJHtzcmNmaWxlfV0NCj4+ICsN Cj4+ICtnZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnBfbGluZTENCj4+ICtnZGJfdGVzdCAiY29u dGludWUiICIuKmJwIGZvciBsb2NhbHMgMS4qIiAiY29udGludWUgdG8gb3V0ZXJtb3N0IGxldmVs Ig0KPj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgIFttdWx0aV9saW5lIFwNCj4+ICsgICAgInZh bDEgPSAxIiAgXA0KPj4gKyAgICAidmFsMiA9IDIiICBcDQo+PiArICAgIF0gImluZm8gbG9jYWxz IGF0IG91dGVybW9zdCBsZXZlbCINCj4+ICsNCj4+ICtnZGJfYnJlYWtwb2ludCAkc3JjZmlsZTok YnBfbGluZTINCj4+ICtnZGJfdGVzdCAiY29udGludWUiICIuKmJwIGZvciBsb2NhbHMgMi4qIiAi Y29udGludWUgdG8gZmlyc3QgbGV2ZWwiDQo+PiArZ2RiX3Rlc3QgImluZm8gbG9jYWxzIiAgW211 bHRpX2xpbmUgXA0KPj4gKyAgICAidmFsMiA9IDNcdDwkc3JjZmlsZTokdmFsMl9kMj4iICBcDQo+ PiArICAgICJ2YWwzID0gNCIgIFwNCj4+ICsgICAgImEgPSAxMDEiICAgXA0KPj4gKyAgICAidmFs MSA9IDEiICBcDQo+PiArICAgICJ2YWwyID0gMlx0PCRzcmNmaWxlOiR2YWwyX2QxLCBzaGFkb3dl ZD4iICBcDQo+PiArICAgIF0gImluZm8gbG9jYWxzIGZpcnN0IGxldmVsIg0KPj4gKw0KPj4gK2dk Yl9icmVha3BvaW50ICRzcmNmaWxlOiRicF9saW5lMw0KPj4gK2dkYl90ZXN0ICJjb250aW51ZSIg Ii4qYnAgZm9yIGxvY2FscyAzLioiICJjb250aW51ZSB0byBzZWNvbmQgbGV2ZWwiDQo+PiArZ2Ri X3Rlc3QgImluZm8gbG9jYWxzIiBbbXVsdGlfbGluZSBcDQo+PiArICAgICJ2YWwxID0gNVx0PCRz cmNmaWxlOiR2YWwxX2QyPiIgIFwNCj4+ICsgICAgInZhbDIgPSAzXHQ8JHNyY2ZpbGU6JHZhbDJf ZDI+IiAgXA0KPj4gKyAgICAidmFsMyA9IDQiICBcDQo+PiArICAgICJhID0gMTAyIiAgIFwNCj4+ ICsgICAgInZhbDEgPSAxXHQ8JHNyY2ZpbGU6JHZhbDFfZDEsIHNoYWRvd2VkPiIgIFwNCj4+ICsg ICAgInZhbDIgPSAyXHQ8JHNyY2ZpbGU6JHZhbDJfZDEsIHNoYWRvd2VkPiIgIFwNCj4+ICsgICAg XSAiaW5mbyBsb2NhbHMgc2Vjb25kIGxldmVsIg0KPj4gKw0KPj4gK2dkYl9icmVha3BvaW50ICRz cmNmaWxlOiRicF9saW5lNA0KPj4gK2dkYl90ZXN0ICJjb250aW51ZSIgIi4qYnAgZm9yIGxvY2Fs cyA0LioiICJjb250aW51ZSB0byBpbm5lcm1vc3QgbGV2ZWwiDQo+PiArZ2RiX3Rlc3QgImluZm8g bG9jYWxzIiBbbXVsdGlfbGluZSBcDQo+PiArICAgICJhID0gOTk5XHQ8JHt0ZXN0ZmlsZX0yLmM6 MTY+IiBcDQo+PiArICAgICJ2YWwxID0gNlx0PCRzcmNmaWxlOiR2YWwxX2QzPiIgIFwNCj4+ICsg ICAgInZhbDIgPSA3XHQ8JHNyY2ZpbGU6JHZhbDJfZDM+IiAgXA0KPj4gKyAgICAidmFsMyA9IDhc dDwkc3JjZmlsZTokdmFsM19kMj4iICBcDQo+PiArICAgICJ2YWwxID0gNVx0PCRzcmNmaWxlOiR2 YWwxX2QyLCBzaGFkb3dlZD4iIFwNCj4+ICsgICAgInZhbDIgPSAzXHQ8JHNyY2ZpbGU6JHZhbDJf ZDIsIHNoYWRvd2VkPiIgXA0KPj4gKyAgICAidmFsMyA9IDRcdDwkc3JjZmlsZTokdmFsM19kMSwg c2hhZG93ZWQ+IiBcDQo+PiArICAgICJhID0gMTAzXHQ8JHNyY2ZpbGU6JGFfbGluZSwgc2hhZG93 ZWQ+IiAgIFwNCj4+ICsgICAgInZhbDEgPSAxXHQ8JHNyY2ZpbGU6JHZhbDFfZDEsIHNoYWRvd2Vk PiIgXA0KPj4gKyAgICAidmFsMiA9IDJcdDwkc3JjZmlsZTokdmFsMl9kMSwgc2hhZG93ZWQ+IiBc DQo+PiArICAgIF0gImluZm8gbG9jYWxzIGF0IGlubmVybW9zdCBsZXZlbCINCj4+ICsNCj4+ICtn ZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnBfbGluZTUNCj4+ICtnZGJfdGVzdCAiY29udGludWUi ICIuKmJwIGZvciBsb2NhbHMgNS4qIiAiY29udGludWUgdG8gb3V0ZXJtb3N0IGxldmVsIGxhc3Qi DQo+PiArZ2RiX3Rlc3QgImluZm8gbG9jYWxzIiBbbXVsdGlfbGluZSBcDQo+PiArICAgICJ2YWwx ID0gMSIgIFwNCj4+ICsgICAgInZhbDIgPSAyIiAgXA0KPj4gKyAgICBdICJpbmZvIGxvY2FscyBh dCBvdXRlcm1vc3QgbGV2ZWwgbGFzdCINCj4+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3Zhci1zaGFkb3dpbmcyLmMNCj4+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXIt c2hhZG93aW5nMi5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAw MDAuLjliYzU1Zjk1YTg0DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3Zhci1zaGFkb3dpbmcyLmMNCj4+IEBAIC0wLDAgKzEsMTYgQEANCj4+ICsvKiBD b3B5cmlnaHQgKEMpIDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+PiArDQo+ PiArICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkNCj4+ICsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPj4gKyAgIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ PiArICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4+ICsNCj4+ICsgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwNCj4+ICsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZg0KPj4gKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCj4+ICsgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPj4gKw0KPj4gKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+PiAr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSANCj4+ICsgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8NCj4+ICsNCj4+ICtpbnQgYSA9IDk5OTsNCj4+IGRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5leHANCj4+IGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UuZXhwDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDc1 NQ0KPj4gaW5kZXggMDAwMDAwMDAwMDAuLjU4Yjg1NTE4ZjU1DQo+PiAtLS0gL2Rldi9udWxsDQo+ PiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5leHANCj4+IEBAIC0wLDAg KzEsMzIgQEANCj4+ICsjIENvcHlyaWdodCAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLg0KPj4gKyMNCj4+ICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+PiArbW9kaWZ5ICMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyANCj4+ICtwdWJsaXNoZWQgYnkg IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSAN Cj4+ICtMaWNlbnNlLCBvciAjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ PiArIw0KPj4gKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsICMgDQo+PiArYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgIyANCj4+ICtNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlICMgR05VIA0KPj4g K0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4+ICsjDQo+PiArIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSANCj4+ICsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPj4gKw0KPj4gK2xvYWRfbGliIHJ1c3Qtc3Vw cG9ydC5leHANCj4+ICtyZXF1aXJlIGFsbG93X3J1c3RfdGVzdHMNCj4+ICtyZXF1aXJlIHtjYW5f Y29tcGlsZSBydXN0fQ0KPj4gKw0KPj4gK3N0YW5kYXJkX3Rlc3RmaWxlIC5ycw0KPj4gK2lmIHtb cHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiIFwNCj4+ICsJJHRlc3RmaWxl ICRzcmNmaWxlIHtkZWJ1ZyBydXN0fV19IHsNCj4+ICsgICAgcmV0dXJuIC0xDQo+PiArfQ0KPj4g Kw0KPj4gK3NldCBsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWtwb2ludCBoZXJl Il0gaWYgeyFbcnVudG8gDQo+PiArJHtzcmNmaWxlfTokbGluZV19IHsNCj4+ICsgICAgdW50ZXN0 ZWQgImNvdWxkIG5vdCBydW4gdG8gYnJlYWtwb2ludCINCj4+ICsgICAgcmV0dXJuIC0xDQo+PiAr fQ0KPj4gKw0KPj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FsIF94IiAiX3ggPSAxMiIgInByaW50IGxv Y2FsIF94IHZhcmlhYmxlIg0KPj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3Qv dmFyX3JldXNlLnJzDQo+PiBiL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLnJzDQo+ PiBuZXcgZmlsZSBtb2RlIDEwMDc1NQ0KPj4gaW5kZXggMDAwMDAwMDAwMDAuLjAzYmU3OTgxZmYx DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9y ZXVzZS5ycw0KPj4gQEAgLTAsMCArMSwyMCBAQA0KPj4gKy8vIENvcHlyaWdodCAoQykgMjAyMyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4+ICsNCj4+ICsvLyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIA0KPj4gK21v ZGlmeSAvLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIA0KPj4gK3B1Ymxpc2hlZCBieSAvLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIA0KPj4gK3RoZSBMaWNlbnNlLCBvciAvLyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPj4gKy8vDQo+PiArLy8gVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIA0KPj4gKy8v IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mIC8vIA0KPj4gK01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgLy8gR05VIA0KPj4gK0dlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4NCj4+ICsvLw0KPj4gKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIA0KPj4gKy8vIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+Lg0KPj4gKw0KPj4gK2ZuIG1haW4oKSB7DQo+PiArICAgIGxldCBfeCA9IDU7DQo+PiAr ICAgIGxldCBfeCA9IF94ICsgNzsNCj4+ICsgICAgbGV0IF95ID0gODsgICAgICAgLy8gc2V0IGJy ZWFrcG9pbnQgaGVyZQ0KPj4gK30NCj4+IGRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIv Z2RiL3RyYWNlcG9pbnQuYyBpbmRleA0KPj4gMjA1MzgwNDc2YjMuLjAyNjY5YjNkOTA5IDEwMDY0 NA0KPj4gLS0tIGEvZ2RiL3RyYWNlcG9pbnQuYw0KPj4gKysrIGIvZ2RiL3RyYWNlcG9pbnQuYw0K Pj4gQEAgLTEwNDgsNyArMTA0OCw4IEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX2xvY2FsX3N5bWJv bHMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMsDQo+PiAgICAgIGludCBj b3VudCA9IDA7DQo+PiAgICANCj4+ICAgICAgYXV0byBkb19jb2xsZWN0X3N5bWJvbCA9IFsmXSAo Y29uc3QgY2hhciAqcHJpbnRfbmFtZSwNCj4+IC0JCQkJc3RydWN0IHN5bWJvbCAqc3ltKQ0KPj4g KwkJCQlzdHJ1Y3Qgc3ltYm9sICpzeW0sDQo+PiArCQkJCWJvb2wgc2hhZG93ZWQsIGJvb2wgcHJp bnRlZCkNCj4+ICAgICAgICB7DQo+PiAgICAgICAgICBjb2xsZWN0X3N5bWJvbCAoc3ltLCBnZGJh cmNoLCBmcmFtZV9yZWdubywNCj4+ICAgIAkJICAgICAgZnJhbWVfb2Zmc2V0LCBwYywgdHJhY2Vf c3RyaW5nKTsgZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5oIA0KPj4gYi9nZGIvdmFsdWUuaCBpbmRl eCAxZDVhMDAxOGY5Mi4uODc5ZmNlNTQ0YzMgMTAwNjQ0DQo+PiAtLS0gYS9nZGIvdmFsdWUuaA0K Pj4gKysrIGIvZ2RiL3ZhbHVlLmgNCj4+IEBAIC0xNTM3LDcgKzE1MzcsOSBAQCBleHRlcm4gdm9p ZCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKGNvbnN0IGNoYXIgKm5hbWUsDQo+PiAgICAJCQkJ ICAgICAgc3RydWN0IHN5bWJvbCAqdmFyLA0KPj4gICAgCQkJCSAgICAgIGZyYW1lX2luZm9fcHRy IGZyYW1lLA0KPj4gICAgCQkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sDQo+PiAtCQkJ CSAgICAgIGludCBpbmRlbnQpOw0KPj4gKwkJCQkgICAgICBpbnQgaW5kZW50LA0KPj4gKwkJCQkg ICAgICBib29sIHNoYWRvd2VkLA0KPj4gKwkJCQkgICAgICBib29sIHByaW50ZWQpOw0KPj4gICAg DQo+PiAgICBleHRlcm4gdm9pZCB0eXBlZGVmX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHN5bWJvbCAqbmV3cywNCj4+ICAgIAkJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOw0K Pg0KPiAtLQ0KPiBDaGVlcnMsDQo+IEd1aW5ldmVyZSBMYXJzZW4NCj4gU2hlL0hlci9IZXJzDQo+ DQo+IEludGVsIERldXRzY2hsYW5kIEdtYkgNCj4gUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1w ZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkNCj4gVGVsOiArNDkgODkgOTkgODg1My0w LCB3d3cuaW50ZWwuZGUgPGh0dHA6Ly93d3cuaW50ZWwuZGU+IE1hbmFnaW5nIA0KPiBEaXJlY3Rv cnM6IENocmlzdGluIEVpc2Vuc2NobWlkLCBTaGFyb24gSGVjaywgVGlmZmFueSBEb29uIFNpbHZh IA0KPiBDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUgUmVn aXN0ZXJlZCBPZmZpY2U6IA0KPiBNdW5pY2ggQ29tbWVyY2lhbCBSZWdpc3RlcjogQW10c2dlcmlj aHQgTXVlbmNoZW4gSFJCIDE4NjkyOA0KDQoNCkludGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0 ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkKVGVs OiArNDkgODkgOTkgODg1My0wLCB3d3cuaW50ZWwuZGUgPGh0dHA6Ly93d3cuaW50ZWwuZGU+Ck1h bmFnaW5nIERpcmVjdG9yczogQ2hyaXN0aW4gRWlzZW5zY2htaWQsIFNoYXJvbiBIZWNrLCBUaWZm YW55IERvb24gU2lsdmEgIApDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5p Y29sZSBMYXUKUmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaApDb21tZXJjaWFsIFJlZ2lzdGVyOiBB bXRzZ2VyaWNodCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==