From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.49236.1679504364614145176 for ; Wed, 22 Mar 2023 09:59:33 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=k9p61uSv; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679504372; x=1711040372; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gmyKOw/VRFHbChFgwKFBFY1k68YH333r7OzBfNGvhsE=; b=k9p61uSvpA5o+rOZ15yh5bfafx9VyptqKCHJmPL2L9Dv0fxRYC/CmLR4 Q2Ft0KlNWVHIp2rKxb+ozXQMXFPG2TY+IY/wR6DqIWMYRZB/znfaBFGb7 8G3DoXnWv2GWg0aiYpmQ5iuBOQp0/4ELLIZkbRyKACIdVXWZNUtvFLqFX /uS0lXaJqt+8pGPsWWjJwqpVqYYhsoFXqDitFuygO5dEsjwgJs9zR2jId 7tB/hY5YS6L92Jpa4V/YYEs7S7z6nH9fnaZUkqzS3G5tymNwtVOwJBi3/ 4NvCq7QZ1Kg28HhJQv91pD2hox+Wq3TY/MWSQafjTDddqdn/g/awj1ZNo g==; X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="327650830" X-IronPort-AV: E=Sophos;i="5.98,282,1673942400"; d="scan'208";a="327650830" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Mar 2023 09:58:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10657"; a="771115393" X-IronPort-AV: E=Sophos;i="5.98,282,1673942400"; d="scan'208";a="771115393" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by FMSMGA003.fm.intel.com with ESMTP; 22 Mar 2023 09:58:33 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 22 Mar 2023 09:58:33 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 22 Mar 2023 09:58:32 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.21 via Frontend Transport; Wed, 22 Mar 2023 09:58:32 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Wed, 22 Mar 2023 09:58:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KJC3cJqMfoOVT9l6T/cpI5y758g5TVDbh2vw91EZEGAge0Zp2G4hfUVs7l7b1BDFg8vSZbAv+b0BtLM/LmAiKu+m5vs0nHm+m9Bv9ncXNx7d+6E5R4O5LhmtDdqWgx/I9TD6nGuoYmdwDz46biM/h4eEVpe55d+biFn1RvcQ+z8pyTfVV5Ugkf+y8ZlqW/OWvXuTPMI6PO8ZwBVcX9AUpkvjuudrAGDO2fYs6J1MeVNIq+kNIiP3UcuPkgoyskPIjp6TIe2WT5LI+hgItStaPlw4xNwqizM4Hgwk95V85Aiy0+ouefaG0do9XEIOxaS0ACTLIfEnoncih1HVblpNVw== 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=gmyKOw/VRFHbChFgwKFBFY1k68YH333r7OzBfNGvhsE=; b=W3MkugkgM7L7FKvkpccazE1+q7d3KARVfWqOAxokHCbbXD7Qb94bxkWqnLhHwUfJRkB68UtpQCKWCu4rBRxS5ti3YXsXLowXGP0brItZVQZqAhXMBKT6ebXs0+sGIRjyXyOgLWLqChbS14ykOa3hNHGSByXFaQIvcnPj3rXKFcJh699gWhLuKMl8BTZqLkDTTnTqNSJcESMAmVm1TfU3dC1GvVOSudoHbiAyYVqdgj7toTLWWPy/LKdGgjKvhTMSZCJ6TtNj2XnFdKARPT4HaHdhyzSdeHPSCVVb9HqnuS60xMU11wkatpng57p5rcmpG0PBuEx3WgKcw7AU3+4qjw== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by SA3PR11MB8117.namprd11.prod.outlook.com (2603:10b6:806:2f0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 16:58:29 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%8]) with mapi id 15.20.6178.037; Wed, 22 Mar 2023 16:58:29 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rebecca@bsdio.com" , "Gao, Liming" , "Liu, Zhiguang" , Michael Kubacki , Sean Brogan CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Topic: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Index: AQHZPJ2VNe8UI+BAikOp0dPp3MMgFq7HWhmAgDJjlgCAATNkQIAEP1cAgAAchKCAB/ihAA== Date: Wed, 22 Mar 2023 16:58:29 +0000 Message-ID: References: <20230209154507.81877-1-rebecca@quicinc.com> <20230209154507.81877-2-rebecca@quicinc.com> In-Reply-To: Accept-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: CO1PR11MB4929:EE_|SA3PR11MB8117:EE_ x-ms-office365-filtering-correlation-id: d5260962-9de0-4c43-512c-08db2af6a920 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rDh6DXa/W4c7EhZUtNPwxPj+IRRZk80U95y7eewTzfPIJ43bJhsy70F6xM7wlZpSF16eLMq0PTwl8wSjNTfyNid8dk3cHRhLAmUbd+/m2BLOz7ofPAAQz6NGck2StZNLJIsQteoVh5bR5fap46IWggwxcZiUdwRSzW3T8ayPNZMSF84lFd9sPGpPDC/zMn7yGsxKZ0wyxJLBM6Ecvr6AtV1FmEdBU7A8cMKXyAXJXsKae61yJibzzAaAsLAYgCjwFHO03WlVvs3EfUU85rhtsvqYBakTuScENqTjG6YfKJHTU4rZP5/Bd7Ex2aHpPP77/a21AgMRoZdGGVimnZtyM+gzpTrg6Ekim8x9839vH2OOZ1uv7kER+obmaWcdSavHCRoATOdPaP5Vo8wKnJsJPsc0RHop8K1imscL7FzHo2n1xtv84BTPYQlleUNlpCoGF+08+KviJL4WFfGe1k54yO5lRtfB3iQqQn6q/QQnXtjkYUKUtBR3HxKhQ6zTizNru8QLM6F1/y5Lo8mYMken/LsMlVeEGRZkzoT6HrojrtY53TxQCXwgHsuikHxe39pEORfqKM0JEUiBUncA/YbYCZcQ68BWArOqjvM/hLVhupSIqDof8bubUyzrF4FH2AVeTmq4TKd+RsEDGduJPKCc0R/1q2LvGK8KHDpV+3SHYcYBiviGSSiOj0i7k7+gcWpdPCRNA5+oSJZ50ICGxBz7H2HhhBe1BUinaMlyXhzxPr0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(346002)(366004)(39860400002)(376002)(136003)(396003)(451199018)(316002)(15650500001)(110136005)(7696005)(83380400001)(38070700005)(38100700002)(55016003)(122000001)(86362001)(107886003)(82960400001)(66476007)(8676002)(66446008)(66556008)(41300700001)(2906002)(76116006)(30864003)(4326008)(52536014)(66946007)(64756008)(19627235002)(33656002)(5660300002)(9686003)(26005)(478600001)(966005)(186003)(8936002)(71200400001)(6506007)(53546011)(66899018)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QnRucDlqQTVRQ2MxU2xBTUU3cURVbFFjRitkYzF0blJpMEwrcmhseUZuV3Bx?= =?utf-8?B?MUZEaSs3QXVNZ1E1MHJwQXRGL1RUYXFYbGZjMlI2YlBjb3lMd1BDRk55NU90?= =?utf-8?B?NjE0Qi83bytJYTRWcDZXTndJdGVMY1pvRlI5Z3FGUnR5c25oZUdSQVFwUy9F?= =?utf-8?B?aVlSekNYZnpXWllZNEVDMit5VDR4aXlzOG9rWno1WTZjNVNMOHJIazVmTGxx?= =?utf-8?B?eDJWVUNuR25zRW9WckpwOHdSWFpzNzJFNDBPRkR3M3BGOENVM1lob1gyZXRM?= =?utf-8?B?MWF5TlNCNGxqMmhSSjIrcmY0UWw5K0o3ZUwrMGs1N3d2N21pWUxsOFpjTkk3?= =?utf-8?B?WTdOSk4xbjJoOXE1SEh4Y1VWcnFweGd3NnB3SXRPWVh6bTR5WmxjL1pPZ3Js?= =?utf-8?B?dzJxalh4VUdzQXZ6WFI2ZjNiemh5Smdrb21tNjE4ZWNBNGFHZXZ5QVhxWDNs?= =?utf-8?B?QjVWNlVrSnNmaXVzWWppdTA1d1h0aXZhSXdaQkVRSUFQOVdONlVXamhSc2ha?= =?utf-8?B?V3JQZzRoS0tyV2JOUmhmdUc5SjZhUUd3b3pzeDB6U2tITFVLaVBNeDRhRlFN?= =?utf-8?B?TE5zT1MveVg4UkIrYnZDNlJlTEJrN0RYNHBFOEViNTZxUWRXeUFBT1FtRjVJ?= =?utf-8?B?Q05pV1ZmN3ZaYit0WUtyajBReExoUmZkcHV0SWtQYkM0OFd1WlNFNlRqVmFU?= =?utf-8?B?Q2tFelUwbjhSNTNUdnMwK0c2VlhLajZuL2l0RDhpTUNjUGhCZUYvbVB1SFJu?= =?utf-8?B?NmhENk9pTTRKc21iT0V4KzdnUzhBRW43dWlaeXlxQ0ZGK2EyODMySUV2YXE5?= =?utf-8?B?b3NJT0pwcjFQcGlnWjZVUXl2eStVTmJUTFhSRnBTdlV6NWJaeFdUZ09QRitm?= =?utf-8?B?dkhMNFFVdWdGeDdLWU13c0Y4L1RobElwTXJRS3Y0WlVQOEltemgvaDJXK0lC?= =?utf-8?B?aDZoU3Zoc0xyMVJJTStWd0RldGMwUDAvMzNCOXVHTWM2Q2Y3OCt3TU1KUkVx?= =?utf-8?B?UEFrcGtvTk1qVzVwSDFMNkU3aFZGUC80aVVoUzUvdHUzWko5bzVCekpPMS9Q?= =?utf-8?B?ejVTM2U3RTNoM2QwdDgxcTgrOUpKdGZqd1QwOHkrMGFGZEtmaXBQK3RMQkl5?= =?utf-8?B?NXdBVHpXRldaMHBKR203ZExPSVI5STRndXBFVElocTFMU0RNOGh3bUExNG9O?= =?utf-8?B?VnduL25tUmxSSEV4empLYnZLNUpSTko1Yk44K0FLWm41RnZOMFo1cVVRN0Rw?= =?utf-8?B?ZlZBS2x6NFA4amZBM2pwTDUrRUM2QzVhVjBranQ2MldXWS9VY2d2NjVMOUxU?= =?utf-8?B?Rk1nb0dicDYxMm1Oc0p2R1pvdjRvOFdXQ2xWV0lEdFJhUzkvcW1mMC94MElS?= =?utf-8?B?MG5iMVJqRGNUOEJkQkl4VVRPQzJ5YkJYWVp4S2p1WVBpZHdSWWlkQ3NYcTdJ?= =?utf-8?B?UmtQYlZJK1lzTEI0NEtJMXpXc2I4WDlaa0tLWXhOV05oSVhkZTdXdjlmQ0tk?= =?utf-8?B?SFVEVmdSNThsZkhqSTBObXdQODB4ZzJEbysyamZBcjhReTlJTzJTeExlYzVp?= =?utf-8?B?Q2M5dWpaam95L214NjFOZEZESmd3WkVLWWJ4QUNvVEhSKzc3QjVRZi95YlFj?= =?utf-8?B?OW1EcFFoa01wcUhSZ0VsRkU3SFM1WEZ2Z3VvZUJvamwyb3ZEckhHTi8zZlli?= =?utf-8?B?Yi9DWno3SWxGeVgwT3Npd0hqd2RKQWZ1QTh3SDVsMnJTRFU1WTdEOWMyYWhD?= =?utf-8?B?UUZhNWRLa2EwVVhaWjBmNUluRUtaQXExZmFrL1drMjJTVkY0aWNKTVF4dFNu?= =?utf-8?B?WDRRVG1SVkRlMU1oSGtaQ1B6ZUo0bjJiYWZOeHpCOU1SME1VRDRVQjloMWJy?= =?utf-8?B?MEZjZmJJYnpMcjk2QitLeGtmV3g0MUwxOXFlcVRHNGhXRnFiUFlNYU9mR3Bu?= =?utf-8?B?VU9DTWhTTEk2U3d1NG1wUmgwOEVqUDBrNHkyZTRFWFYxWWtWZmUvM2lHMTAy?= =?utf-8?B?cURQTDVVeGZ2Ky9DckFaRmZoN1cydDJDVTk1djhYdElKU3hqUGZjWnFXQVZw?= =?utf-8?B?V0RyRmV0L2xpS09SaURCc3gvSTlSU1JsSFVyazE4Y3k2c2hmeC9ZcVhsMnlM?= =?utf-8?B?WmZES3JDdjYzR2FPemVaNDgyT3ZzVVlpZUxSUitOWC9IcHRvWm5hYlVOU3Rn?= =?utf-8?B?N2c9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5260962-9de0-4c43-512c-08db2af6a920 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Mar 2023 16:58:29.0377 (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: RkabMSSuXtrYuq6GiF0LLf5UtvZwkCYZbSEq3Ui9vUBsyn9AhmoH/6OSPgRn6cM2c0blGiu52fJiWLTXJXY/1DFA5pnCnsUBBujG3m8h+sc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB8117 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmViZWNjYSwNCg0KSXQgYXBwZWFycyB0aGF0IHNvbWUgb2YgdGhlIG9sZGVyIHJlbGVhc2Ug b2YgVlMyMDE1IGRvIG5vdCBzdXBwb3J0DQpfX2Z1bmNfXy4NCg0KQ2FuIHlvdSBwbGVhc2Ugd29y ayBvbiBhIHBhdGNoIHRoYXQgaW1wbGVtZW50cyB0aGUgd29ya2Fyb3VuZD8NCg0KVGhhbmtzLA0K DQpNaWtlDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBTZW50OiBGcmlkYXksIE1h cmNoIDE3LCAyMDIzIDg6MTYgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyByZWJlY2Nh QGJzZGlvLmNvbTsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwg WmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+Ow0KPiBNaWNoYWVsIEt1YmFja2kgPG1p a3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb20+OyBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWlj cm9zb2Z0LmNvbT4NCj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6 IFVwZGF0ZSBjb2RlIHRvIGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0K PiANCj4gSGkgUmViZWNjYSwNCj4gDQo+IEZvciBvbGRlciBjb21waWxlcnMgdGhhdCBkbyBub3Qg c3VwcG9ydCBfX2Z1bmNfXywgSSBiZWxpZXZlIGEgd29ya2Fyb3VuZA0KPiBjb3VsZCBiZSBhZGRl ZCB0byBkZWZpbmUgX19mdW5jX18gdG8gX19GVU5DVElPTl9fLiAgV2UgZG8gbm90IG5lZWQgdG8g ZG8NCj4gdGhpcyBmb3IgYW55IG9mIHRoZXNlIHBhdGNoZXMuICBJdCBjYW4gYmUgc29tZXRoaW5n IGNvbnN1bWVycyBjYW4gZG8gaWYNCj4gdGhleSByZWFsbHkgd2FudCB0byB1c2UgYW4gb2xkZXIg Y29tcGlsZXIuDQo+IA0KPiBZb3UgY2FuIHRyeSBpdCBvdXQgb24gVlMyMDEyIGxvY2FsbHkuICBJ ZiBpdCB3b3JrcywgdGhlbiB5b3UgY2FuIG1lbnRpb24NCj4gdGhhdCB3b3JrYXJvdW5kIGluIHRo ZSBjb21taXQgbWVzc2FnZS4NCj4gDQo+IERvIHdlIGhhdmUgYW55IGluZm9ybWF0aW9uIG9uIEdD Qy9DTEFORyBjb21wYXRpYmlsaXR5IGZvciB0aGlzIGZlYXR1cmU/DQo+IA0KPiBNaWtlDQo+IA0K PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgUmViZWNjYSBDcmFuDQo+ ID4gU2VudDogRnJpZGF5LCBNYXJjaCAxNywgMjAyMyA2OjMyIEFNDQo+ID4gVG86IEtpbm5leSwg TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFu Zw0KPiA+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgTWljaGFlbCBLdWJhY2tpIDxtaWt1YmFj a0BsaW51eC5taWNyb3NvZnQuY29tPjsgU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29m dC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6 IFVwZGF0ZSBjb2RlIHRvIGJlIG1vcmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0K PiA+DQo+ID4gKCtNaWNoYWVsIEt1YmFja2ksIFNlYW4gQnJvZ2FuKQ0KPiA+DQo+ID4gTWlrZSwg TWljaGFlbCwgU2VhbjoNCj4gPg0KPiA+DQo+ID4gVGhpcyBjaGFuZ2UgaXMgZ29pbmcgdG8gYnJl YWsgYnVpbGRpbmcgZWRrMiB3aXRoIGFueXRoaW5nIG9sZGVyIHRoYW4NCj4gPiBWaXN1YWwgU3R1 ZGlvIDIwMTUsIHdoaWNoIGlzIHdoZXJlIHN1cHBvcnQgZm9yIF9fZnVuY19fIHdhcyBhZGRlZC4N Cj4gPg0KPiA+IEkgY2hlY2tlZCBhbmQgY3VycmVudGx5IGl0IGFwcGVhcnMgdGhhdCBWUzIwMTMg YnVpbGRzIGVkazIgYnV0IFZTMjAxMg0KPiA+IGhhcyBlcnJvcnMuIEdpdmVuIHRoYXQgdGhlIHN0 dWFydCB0b29scyBkb24ndCBzdXBwb3J0IGFueXRoaW5nIG9sZGVyDQo+ID4gdGhhbiBWUzIwMTcg SSdtIHRoaW5raW5nIHRoaXMgaXMgb2theSwgYnV0IEkgd2FudCB0byBkb3VibGUgY2hlY2sgYmVm b3JlDQo+ID4gcHVzaGluZyB0aGlzIGNoYW5nZS4NCj4gPg0KPiA+DQo+ID4gLS0NCj4gPg0KPiA+ IFJlYmVjY2EgQ3Jhbg0KPiA+DQo+ID4NCj4gPiBPbiAzLzE0LzIzIDI6NDAgUE0sIEtpbm5leSwg TWljaGFlbCBEIHdyb3RlOg0KPiA+ID4gUmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4NCj4gPiA+DQo+ID4gPj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBSZWJlY2NhIENyYW4NCj4gPiA+PiBTZW50 OiBNb25kYXksIE1hcmNoIDEzLCAyMDIzIDc6MjAgUE0NCj4gPiA+PiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47 IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiA+ID4+IExpdSwgWmhp Z3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4gPj4gU3ViamVjdDogUmU6IFtlZGsy LWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6IFVwZGF0ZSBjb2RlIHRvIGJlIG1vcmUgQzExIGNv bXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+ID4+DQo+ID4gPj4gTWlrZSwNCj4gPiA+Pg0K PiA+ID4+DQo+ID4gPj4gSSB0aGluayB5b3VyIGNvbmNlcm5zIHdpdGggdGhpcyBwYXRjaCB3ZXJl IGFkZHJlc3NlZD8NCj4gPiA+Pg0KPiA+ID4+IENvdWxkIHlvdSBhZGQgYSBSZXZpZXdlZC1ieSBw bGVhc2U/DQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+IFRoYW5rcy4NCj4gPiA+PiBSZWJlY2NhDQo+ ID4gPj4NCj4gPiA+Pg0KPiA+ID4+IE9uIDIvOS8yMyA2OjAxIFBNLCBNaWNoYWVsIEQgS2lubmV5 IHdyb3RlOg0KPiA+ID4+PiBIaSBSZWJlY2NhLA0KPiA+ID4+Pg0KPiA+ID4+PiBEaWQgdGhpcyBw YXNzIEVESyBJSSBDST8NCj4gPiA+Pj4NCj4gPiA+Pj4gVGhpcyBjaGFuZ2UgZG9lcyBicmVhayBF QkMgY29tcGlsZXIgYnVpbGRzLiAgVGhlIGZvbGxvd2luZyBoYXMgdG8gYmUgYWRkZWQgdG8NCj4g PiA+Pj4gTWRlUGtnL0luY2x1ZGUvRWJjL1Byb2Nlc3NvckJpbmQuaCBpbiBvcmRlciB0byB1c2Ug X19mdW5jX18gZXZlcnl3aGVyZS4NCj4gPiA+Pj4NCj4gPiA+Pj4gICAgICAgI2RlZmluZSBfX2Z1 bmNfXyBfX0ZVTkNUSU9OX18NCj4gPiA+Pj4NCj4gPiA+Pj4gSSBhbHNvIHNlZSBfX0ZVTkNUSU9O X18gdXNlZCBpbiBtYW55IHBhY2thZ2VzLiAgSSBhbSB3b25kZXJpbmcgaWYgd2Ugd2FudA0KPiA+ ID4+PiB0byBkbyB0aGlzIGNsZWFuIHVwIGlmIGl0IHNob3VsZCBiZSBpdHMgb3duIHBhdGNoIHNl cmllcyBhbmQgdXBkYXRlIGFsbA0KPiA+ID4+PiBwYWNrYWdlcyBpbiBvbmNlIHNlcmllcy4NCj4g PiA+Pj4NCj4gPiA+Pj4gTWlrZQ0KPiA+ID4+Pg0KPiA+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFJlYmVjY2EgQ3Jhbg0KPiA+ID4+Pj4gU2VudDogVGh1 cnNkYXksIEZlYnJ1YXJ5IDksIDIwMjMgNzo0NSBBTQ0KPiA+ID4+Pj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsNCj4gPiA+PiBMaXUsIFpo aWd1YW5nDQo+ID4gPj4+PiA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPiA+Pj4+IENjOiBS ZWJlY2NhIENyYW4gPHJlYmVjY2FAcXVpY2luYy5jb20+DQo+ID4gPj4+PiBTdWJqZWN0OiBbZWRr Mi1kZXZlbF0gW1BBVENIIDIvMl0gTWRlUGtnOiBVcGRhdGUgY29kZSB0byBiZSBtb3JlIEMxMSBj b21wbGlhbnQgYnkgdXNpbmcgX19mdW5jX18NCj4gPiA+Pj4+DQo+ID4gPj4+PiBfX0ZVTkNUSU9O X18gaXMgYSBwcmUtc3RhbmRhcmQgZXh0ZW5zaW9uIHRoYXQgZ2NjIGFuZCBWaXN1YWwgQysrIGFt b25nDQo+ID4gPj4+PiBvdGhlcnMgc3VwcG9ydCwgd2hpbGUgX19mdW5jX18gd2FzIHN0YW5kYXJk aXplZCBpbiBDOTkuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gU2luY2UgaXQncyBtb3JlIHN0YW5kYXJk LCByZXBsYWNlIF9fRlVOQ1RJT05fXyB3aXRoIF9fZnVuY19fIHRocm91Z2hvdXQNCj4gPiA+Pj4+ IE1kZVBrZy4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBSZWJlY2NhIENyYW4g PHJlYmVjY2FAcXVpY2luYy5jb20+DQo+ID4gPj4+PiAtLS0NCj4gPiA+Pj4+ICAgIE1kZVBrZy9J bmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQ0KPiA+ID4+Pj4gICAg TWRlUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdExpYi5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tDQo+ ID4gPj4gLS0tDQo+ID4gPj4+PiAgICBNZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5j ZUxpYi9Mb29uZ0FyY2hDYWNoZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNiArKystLS0NCj4gPiA+Pj4+ICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5h bmNlTGliL1Jpc2NWQ2FjaGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDEyICsrKysrKy0tLS0tLQ0KPiA+ID4+Pj4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9T YWZlU3RyaW5nLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0NCj4gPiA+Pj4+ICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVk Q29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1Ry ZWVMaWIuYyB8ICA0ICsrLS0NCj4gPiA+Pj4+ICAgIE1kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9E eGVSbmdMaWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tDQo+ID4gPj4+PiAgICA3IGZpbGVzIGNoYW5nZWQs IDM0IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+IGRp ZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGliLmggYi9NZGVQ a2cvSW5jbHVkZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGliLmgNCj4gPiA+Pj4+IGluZGV4IDM0ZWM5 NTZiOWMwZS4uZDBmMmRmYjA3MGQ1IDEwMDY0NA0KPiA+ID4+Pj4gLS0tIGEvTWRlUGtnL0luY2x1 ZGUvTGlicmFyeS9QZXJmb3JtYW5jZUxpYi5oDQo+ID4gPj4+PiArKysgYi9NZGVQa2cvSW5jbHVk ZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGliLmgNCj4gPiA+Pj4+IEBAIC01MjYsNyArNTI2LDcgQEAg TG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4gPj4+PiAgICAjZGVmaW5lIFBFUkZfRVZF TlRfU0lHTkFMX0JFR0lOKEV2ZW50R3VpZCkgXA0KPiA+ID4+Pj4gICAgICBkbyB7IFwNCj4gPiA+ Pj4+ICAgICAgICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VO RVJBTF9UWVBFKSkgeyBcDQo+ID4gPj4+PiAtICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVu dCAoJmdFZmlDYWxsZXJJZEd1aWQsIEV2ZW50R3VpZCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9F VkVOVFNJR05BTF9TVEFSVF9JRCk7IFwNCj4gPiA+Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1l YXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX2Z1bmNfXyAsIDAsIFBF UkZfRVZFTlRTSUdOQUxfU1RBUlRfSUQpOyBcDQo+ID4gPj4+PiAgICAgICAgfSBcDQo+ID4gPj4+ PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+IEBAIC01NDIsNyArNTQy LDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4gPj4+PiAgICAjZGVmaW5lIFBF UkZfRVZFTlRfU0lHTkFMX0VORChFdmVudEd1aWQpIFwNCj4gPiA+Pj4+ICAgICAgZG8geyBcDQo+ ID4gPj4+PiAgICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJG X0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+ID4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3Vy ZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBFdmVudEd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBF UkZfRVZFTlRTSUdOQUxfRU5EX0lEKTsgXA0KPiA+ID4+Pj4gKyAgICAgIExvZ1BlcmZvcm1hbmNl TWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBFdmVudEd1aWQsIF9fZnVuY19fICwgMCwg UEVSRl9FVkVOVFNJR05BTF9FTkRfSUQpOyBcDQo+ID4gPj4+PiAgICAgICAgfSBcDQo+ID4gPj4+ PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+IEBAIC01NTgsNyArNTU4 LDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4gPj4+PiAgICAjZGVmaW5lIFBF UkZfQ0FMTEJBQ0tfQkVHSU4oVHJpZ2dlckd1aWQpIFwNCj4gPiA+Pj4+ICAgICAgZG8geyBcDQo+ ID4gPj4+PiAgICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJG X0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+ID4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3Vy ZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBUcmlnZ2VyR3VpZCwgX19GVU5DVElPTl9fICwgMCwg UEVSRl9DQUxMQkFDS19TVEFSVF9JRCk7IFwNCj4gPiA+Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5j ZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgVHJpZ2dlckd1aWQsIF9fZnVuY19fICwg MCwgUEVSRl9DQUxMQkFDS19TVEFSVF9JRCk7IFwNCj4gPiA+Pj4+ICAgICAgICB9IFwNCj4gPiA+ Pj4+ICAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTU3NCw3ICs1 NzQsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4gPiA+Pj4+ICAgICNkZWZpbmUg UEVSRl9DQUxMQkFDS19FTkQoVHJpZ2dlckd1aWQpIFwNCj4gPiA+Pj4+ICAgICAgZG8geyBcDQo+ ID4gPj4+PiAgICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJG X0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+ID4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3Vy ZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBUcmlnZ2VyR3VpZCwgX19GVU5DVElPTl9fICwgMCwg UEVSRl9DQUxMQkFDS19FTkRfSUQpOyBcDQo+ID4gPj4+PiArICAgICAgTG9nUGVyZm9ybWFuY2VN ZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1aWQsIFRyaWdnZXJHdWlkLCBfX2Z1bmNfXyAsIDAs IFBFUkZfQ0FMTEJBQ0tfRU5EX0lEKTsgXA0KPiA+ID4+Pj4gICAgICAgIH0gXA0KPiA+ID4+Pj4g ICAgICB9IHdoaWxlIChGQUxTRSkNCj4gPiA+Pj4+DQo+ID4gPj4+PiBAQCAtNTg5LDcgKzU4OSw3 IEBAIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+ID4+Pj4gICAgI2RlZmluZSBQRVJG X0ZVTkNUSU9OX0JFR0lOKCkgXA0KPiA+ID4+Pj4gICAgICBkbyB7IFwNCj4gPiA+Pj4+ICAgICAg ICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VORVJBTF9UWVBF KSkgeyBcDQo+ID4gPj4+PiAtICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlD YWxsZXJJZEd1aWQsIE5VTEwsIF9fRlVOQ1RJT05fXyAsIDAsIFBFUkZfRlVOQ1RJT05fU1RBUlRf SUQpOyBcDQo+ID4gPj4+PiArICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlD YWxsZXJJZEd1aWQsIE5VTEwsIF9fZnVuY19fICwgMCwgUEVSRl9GVU5DVElPTl9TVEFSVF9JRCk7 IFwNCj4gPiA+Pj4+ICAgICAgICB9IFwNCj4gPiA+Pj4+ICAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTYwNCw3ICs2MDQsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1 cmVtZW50ICgNCj4gPiA+Pj4+ICAgICNkZWZpbmUgUEVSRl9GVU5DVElPTl9FTkQoKSBcDQo+ID4g Pj4+PiAgICAgIGRvIHsgXA0KPiA+ID4+Pj4gICAgICAgIGlmIChMb2dQZXJmb3JtYW5jZU1lYXN1 cmVtZW50RW5hYmxlZCAoUEVSRl9HRU5FUkFMX1RZUEUpKSB7IFwNCj4gPiA+Pj4+IC0gICAgICBM b2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgTlVMTCwgX19GVU5D VElPTl9fICwgMCwgUEVSRl9GVU5DVElPTl9FTkRfSUQpOyBcDQo+ID4gPj4+PiArICAgICAgTG9n UGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1aWQsIE5VTEwsIF9fZnVuY19f ICwgMCwgUEVSRl9GVU5DVElPTl9FTkRfSUQpOyBcDQo+ID4gPj4+PiAgICAgICAgfSBcDQo+ID4g Pj4+PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+IGRpZmYgLS1naXQg YS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0TGliLmggYi9NZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L1VuaXRUZXN0TGliLmgNCj4gPiA+Pj4+IGluZGV4IDcxYzIwNWIxYjE0My4uMzIxYTMx MDYwMmQ3IDEwMDY0NA0KPiA+ID4+Pj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0 VGVzdExpYi5oDQo+ID4gPj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0 TGliLmgNCj4gPiA+Pj4+IEBAIC0zNDgsNyArMzQ4LDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgN Cj4gPiA+Pj4+ICAgICAgQHBhcmFtW2luXSAgRXhwcmVzc2lvbiAgRXhwcmVzc2lvbiB0byBiZSBl dmFsdWF0ZWQgZm9yIFRSVUUuDQo+ID4gPj4+PiAgICAqKi8NCj4gPiA+Pj4+ICAgICNkZWZpbmUg VVRfQVNTRVJUX1RSVUUoRXhwcmVzc2lvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+Pj4+IC0gIGlmKCFVbml0 VGVzdEFzc2VydFRydWUgKChFeHByZXNzaW9uKSwgX19GVU5DVElPTl9fLCBERUJVR19MSU5FX05V TUJFUiwgX19GSUxFX18sICNFeHByZXNzaW9uKSkgeyBcDQo+ID4gPj4+PiArICBpZighVW5pdFRl c3RBc3NlcnRUcnVlICgoRXhwcmVzc2lvbiksIF9fZnVuY19fLCBERUJVR19MSU5FX05VTUJFUiwg X19GSUxFX18sICNFeHByZXNzaW9uKSkgeyBcDQo+ID4gPj4+PiAgICAgICAgcmV0dXJuIFVOSVRf VEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPj4+PiAgICAgIH0NCj4gPiA+Pj4+DQo+ ID4gPj4+PiBAQCAtMzYwLDcgKzM2MCw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4gPj4+ PiAgICAgIEBwYXJhbVtpbl0gIEV4cHJlc3Npb24gIEV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVk IGZvciBGQUxTRS4NCj4gPiA+Pj4+ICAgICoqLw0KPiA+ID4+Pj4gICAgI2RlZmluZSBVVF9BU1NF UlRfRkFMU0UoRXhwcmVzc2lvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+Pj4+IC0gIGlmKCFVbml0VGVzdEFz c2VydEZhbHNlICgoRXhwcmVzc2lvbiksIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIs IF9fRklMRV9fLCAjRXhwcmVzc2lvbikpIHsgXA0KPiA+ID4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNz ZXJ0RmFsc2UgKChFeHByZXNzaW9uKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJ TEVfXywgI0V4cHJlc3Npb24pKSB7IFwNCj4gPiA+Pj4+ICAgICAgICByZXR1cm4gVU5JVF9URVNU X0VSUk9SX1RFU1RfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPj4+PiAgICAgIH0NCj4gPiA+Pj4+DQo+ID4g Pj4+PiBAQCAtMzczLDcgKzM3Myw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4gPj4+PiAg ICAgIEBwYXJhbVtpbl0gIFZhbHVlQiAgVmFsdWUgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5 ICg2NC1iaXQgY29tcGFyaXNvbikuDQo+ID4gPj4+PiAgICAqKi8NCj4gPiA+Pj4+ICAgICNkZWZp bmUgVVRfQVNTRVJUX0VRVUFMKFZhbHVlQSwgVmFsdWVCKQ0KPiA+ID4+IFwNCj4gPiA+Pj4+IC0g IGlmKCFVbml0VGVzdEFzc2VydEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1 ZUIpLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywNCj4gPiA+PiAj VmFsdWVBLCAjVmFsdWVCKSkgeyBcDQo+ID4gPj4+PiArICBpZighVW5pdFRlc3RBc3NlcnRFcXVh bCAoKFVJTlQ2NCkoVmFsdWVBKSwgKFVJTlQ2NCkoVmFsdWVCKSwgX19mdW5jX18sIERFQlVHX0xJ TkVfTlVNQkVSLCBfX0ZJTEVfXywgI1ZhbHVlQSwNCj4gPiA+PiAjVmFsdWVCKSkgeyBcDQo+ID4g Pj4+PiAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsNCj4gPiA+PiBc DQo+ID4gPj4+PiAgICAgIH0NCj4gPiA+Pj4+DQo+ID4gPj4+PiBAQCAtMzg3LDcgKzM4Nyw3IEBA IFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4gPj4+PiAgICAgIEBwYXJhbVtpbl0gIExlbmd0aCAg IE51bWJlciBvZiBieXRlcyB0byBjb21wYXJlIGluIEJ1ZmZlckEgYW5kIEJ1ZmZlckIuDQo+ID4g Pj4+PiAgICAqKi8NCj4gPiA+Pj4+ICAgICNkZWZpbmUgVVRfQVNTRVJUX01FTV9FUVVBTChCdWZm ZXJBLCBCdWZmZXJCLCBMZW5ndGgpDQo+ID4gPj4+PiBcDQo+ID4gPj4+PiAtICBpZighVW5pdFRl c3RBc3NlcnRNZW1FcXVhbCAoKFZPSUQgKikoVUlOVE4pKEJ1ZmZlckEpLCAoVk9JRCAqKShVSU5U TikoQnVmZmVyQiksIChVSU5UTilMZW5ndGgsIF9fRlVOQ1RJT05fXywNCj4gPiA+PiBERUJVR19M SU5FX05VTUJFUiwNCj4gPiA+Pj4+IF9fRklMRV9fLCAjQnVmZmVyQSwgI0J1ZmZlckIpKSB7IFwN Cj4gPiA+Pj4+ICsgIGlmKCFVbml0VGVzdEFzc2VydE1lbUVxdWFsICgoVk9JRCAqKShVSU5UTiko QnVmZmVyQSksIChWT0lEICopKFVJTlROKShCdWZmZXJCKSwgKFVJTlROKUxlbmd0aCwgX19mdW5j X18sDQo+ID4gPj4gREVCVUdfTElORV9OVU1CRVIsDQo+ID4gPj4+PiBfX0ZJTEVfXywgI0J1ZmZl ckEsICNCdWZmZXJCKSkgeyBcDQo+ID4gPj4+PiAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJP Ul9URVNUX0ZBSUxFRDsNCj4gPiA+Pj4+IFwNCj4gPiA+Pj4+ICAgICAgfQ0KPiA+ID4+Pj4NCj4g PiA+Pj4+IEBAIC00MDAsNyArNDAwLDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPiA+Pj4+ ICAgICAgQHBhcmFtW2luXSAgVmFsdWVCICBWYWx1ZSB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVh bGl0eSAoNjQtYml0IGNvbXBhcmlzb24pLg0KPiA+ID4+Pj4gICAgKiovDQo+ID4gPj4+PiAgICAj ZGVmaW5lIFVUX0FTU0VSVF9OT1RfRVFVQUwoVmFsdWVBLCBWYWx1ZUIpDQo+ID4gPj4gXA0KPiA+ ID4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90RXF1YWwgKChVSU5UNjQpKFZhbHVlQSksIChV SU5UNjQpKFZhbHVlQiksIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9f LA0KPiA+ID4+ICNWYWx1ZUEsICNWYWx1ZUIpKSB7IFwNCj4gPiA+Pj4+ICsgIGlmKCFVbml0VGVz dEFzc2VydE5vdEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBfX2Z1 bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLA0KPiA+ID4+ICNWYWx1ZUEsICNWYWx1 ZUIpKSB7IFwNCj4gPiA+Pj4+ICAgICAgICByZXR1cm4gVU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJ TEVEOw0KPiA+ID4+IFwNCj4gPiA+Pj4+ICAgICAgfQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+IEBAIC00 MTIsNyArNDEyLDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPiA+Pj4+ICAgICAgQHBhcmFt W2luXSAgU3RhdHVzICBFRklfU1RBVFVTIHZhbHVlIHRvIGNoZWNrLg0KPiA+ID4+Pj4gICAgKiov DQo+ID4gPj4+PiAgICAjZGVmaW5lIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SKFN0YXR1cykgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Cj4gPiA+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydE5vdEVmaUVycm9yICgoU3RhdHVzKSwgX19G VU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNTdGF0dXMpKSB7IFwNCj4g PiA+Pj4+ICsgIGlmKCFVbml0VGVzdEFzc2VydE5vdEVmaUVycm9yICgoU3RhdHVzKSwgX19mdW5j X18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI1N0YXR1cykpIHsgXA0KPiA+ID4+Pj4g ICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPj4+PiAg ICAgIH0NCj4gPiA+Pj4+DQo+ID4gPj4+PiBAQCAtNDI1LDcgKzQyNSw3IEBAIFNhdmVGcmFtZXdv cmtTdGF0ZSAoDQo+ID4gPj4+PiAgICAgIEBwYXJhbVtpbl0gIEV4cGVjdGVkICBFRklfU1RBVFVT IHZhbHVlcyB0byBjb21wYXJlIGZvciBlcXVhbGl0eS4NCj4gPiA+Pj4+ICAgICoqLw0KPiA+ID4+ Pj4gICAgI2RlZmluZSBVVF9BU1NFUlRfU1RBVFVTX0VRVUFMKFN0YXR1cywgRXhwZWN0ZWQpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQo+ID4gPj4+PiAtICBpZighVW5pdFRlc3RBc3NlcnRTdGF0dXNFcXVhbCAoKFN0YXR1cyks IChFeHBlY3RlZCksIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAj U3RhdHVzKSkgeyBcDQo+ID4gPj4+PiArICBpZighVW5pdFRlc3RBc3NlcnRTdGF0dXNFcXVhbCAo KFN0YXR1cyksIChFeHBlY3RlZCksIF9fZnVuY19fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxF X18sICNTdGF0dXMpKSB7IFwNCj4gPiA+Pj4+ICAgICAgICByZXR1cm4gVU5JVF9URVNUX0VSUk9S X1RFU1RfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4+Pj4gICAgICB9DQo+ID4gPj4+Pg0K PiA+ID4+Pj4gQEAgLTQzNyw3ICs0MzcsNyBAQCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+ID4+ Pj4gICAgICBAcGFyYW1baW5dICBQb2ludGVyICBQb2ludGVyIHRvIGJlIGNoZWNrZWQgYWdhaW5z dCBOVUxMLg0KPiA+ID4+Pj4gICAgKiovDQo+ID4gPj4+PiAgICAjZGVmaW5lIFVUX0FTU0VSVF9O T1RfTlVMTChQb2ludGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPj4+PiAtICBpZighVW5pdFRlc3RBc3NlcnROb3RO dWxsICgoUG9pbnRlciksIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9f LCAjUG9pbnRlcikpIHsgXA0KPiA+ID4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90TnVsbCAo KFBvaW50ZXIpLCBfX2Z1bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjUG9pbnRl cikpIHsgXA0KPiA+ID4+Pj4gICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlM RUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+ID4+Pj4gICAgICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTQ4Miw3ICs0ODIs NyBAQCBleHRlcm4gQkFTRV9MSUJSQVJZX0pVTVBfQlVGRkVSICAqZ1VuaXRUZXN0RXhwZWN0QXNz ZXJ0RmFpbHVyZUp1bXBCdWZmZXI7DQo+ID4gPj4+PiAgICAgICAgICB9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ Pj4+ICAgICAgICAgIGlmICghVW5pdFRlc3RFeHBlY3RBc3NlcnRGYWlsdXJlICggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4+Pj4gICAgICAgICAgICAgICAgIFVuaXRUZXN0 SnVtcFN0YXR1cywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g Pj4+PiAtICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklM RV9fLCAgICAgICAgICAgICAgICBcDQo+ID4gPj4+PiArICAgICAgICAgICAgIF9fZnVuY19fLCBE RUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICAgICAgICAgICAgICAgIFwNCj4gPiA+Pj4+ICAg ICAgICAgICAgICAgICAjRnVuY3Rpb25DYWxsLCBTdGF0dXMpKSB7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KPiA+ID4+Pj4gICAgICAgICAgICByZXR1cm4gVU5JVF9URVNUX0VS Uk9SX1RFU1RfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPj4+PiAg ICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCj4gPiA+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9C YXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+ID4gPj4gYi9NZGVQa2cv TGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+ID4gPj4+ PiBpbmRleCA0Yzg3NzMyNzhjM2MuLjYxN2IwZjQyMThiOCAxMDA2NDQNCj4gPiA+Pj4+IC0tLSBh L01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL0xvb25nQXJjaENhY2hlLmMN Cj4gPiA+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL0xv b25nQXJjaENhY2hlLmMNCj4gPiA+Pj4+IEBAIC0xMDAsNyArMTAwLDcgQEAgV3JpdGVCYWNrSW52 YWxpZGF0ZURhdGFDYWNoZSAoDQo+ID4gPj4+PiAgICAgIFZPSUQNCj4gPiA+Pj4+ICAgICAgKQ0K PiA+ID4+Pj4gICAgew0KPiA+ID4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3Qg Y3VycmVudGx5IGltcGxlbWVudGVkIG9uIExvb25nQXJjaC5cbiIsIF9fRlVOQ1RJT05fXykpOw0K PiA+ID4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGltcGxl bWVudGVkIG9uIExvb25nQXJjaC5cbiIsIF9fZnVuY19fKSk7DQo+ID4gPj4+PiAgICB9DQo+ID4g Pj4+Pg0KPiA+ID4+Pj4gICAgLyoqDQo+ID4gPj4+PiBAQCAtMTM2LDcgKzEzNiw3IEBAIFdyaXRl QmFja0ludmFsaWRhdGVEYXRhQ2FjaGVSYW5nZSAoDQo+ID4gPj4+PiAgICAgIElOICAgICAgVUlO VE4gIExlbmd0aA0KPiA+ID4+Pj4gICAgICApDQo+ID4gPj4+PiAgICB7DQo+ID4gPj4+PiAtICBE RUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9v bmdBcmNoLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4gPj4+PiArICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiJWE6IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19m dW5jX18pKTsNCj4gPiA+Pj4+ICAgICAgcmV0dXJuIEFkZHJlc3M7DQo+ID4gPj4+PiAgICB9DQo+ ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTE5MSw3ICsxOTEsNyBAQCBXcml0ZUJhY2tEYXRhQ2FjaGVS YW5nZSAoDQo+ID4gPj4+PiAgICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+ID4+Pj4gICAg ICApDQo+ID4gPj4+PiAgICB7DQo+ID4gPj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6 IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19GVU5DVElPTl9f KSk7DQo+ID4gPj4+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5vdCBjdXJyZW50bHkg aW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19mdW5jX18pKTsNCj4gPiA+Pj4+ICAgICAg cmV0dXJuIEFkZHJlc3M7DQo+ID4gPj4+PiAgICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gZGlmZiAt LWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL1Jpc2NWQ2FjaGUu Yw0KPiA+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZD YWNoZS5jDQo+ID4gPj4+PiBpbmRleCA2N2EzMzg3ZmYzYzYuLmJiMjZmZTAxM2Q4YiAxMDA2NDQN Cj4gPiA+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL1Jp c2NWQ2FjaGUuYw0KPiA+ID4+Pj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRl bmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4gPj4+PiBAQCAtNzYsNyArNzYsNyBAQCBJbnZhbGlk YXRlSW5zdHJ1Y3Rpb25DYWNoZVJhbmdlICgNCj4gPiA+Pj4+ICAgICAgSU4gVUlOVE4gIExlbmd0 aA0KPiA+ID4+Pj4gICAgICApDQo+ID4gPj4+PiAgICB7DQo+ID4gPj4+PiAtICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElP Tl9fKSk7DQo+ID4gPj4+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3Vw cG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsNCj4gPiA+Pj4+ICAgICAgcmV0dXJuIEFk ZHJlc3M7DQo+ID4gPj4+PiAgICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTk2LDcgKzk2LDcg QEAgV3JpdGVCYWNrSW52YWxpZGF0ZURhdGFDYWNoZSAoDQo+ID4gPj4+PiAgICAgIFZPSUQNCj4g PiA+Pj4+ICAgICAgKQ0KPiA+ID4+Pj4gICAgew0KPiA+ID4+Pj4gLSAgREVCVUcgKChERUJVR19F UlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fRlVOQ1RJT05fXykp Ow0KPiA+ID4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRl ZCBmdW5jdGlvbi5cbiIsIF9fZnVuY19fKSk7DQo+ID4gPj4+PiAgICB9DQo+ID4gPj4+Pg0KPiA+ ID4+Pj4gICAgLyoqDQo+ID4gPj4+PiBAQCAtMTMyLDcgKzEzMiw3IEBAIFdyaXRlQmFja0ludmFs aWRhdGVEYXRhQ2FjaGVSYW5nZSAoDQo+ID4gPj4+PiAgICAgIElOICAgICAgVUlOVE4gIExlbmd0 aA0KPiA+ID4+Pj4gICAgICApDQo+ID4gPj4+PiAgICB7DQo+ID4gPj4+PiAtICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElP Tl9fKSk7DQo+ID4gPj4+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3Vw cG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsNCj4gPiA+Pj4+ICAgICAgcmV0dXJuIEFk ZHJlc3M7DQo+ID4gPj4+PiAgICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTE1Miw3ICsxNTIs NyBAQCBXcml0ZUJhY2tEYXRhQ2FjaGUgKA0KPiA+ID4+Pj4gICAgICBWT0lEDQo+ID4gPj4+PiAg ICAgICkNCj4gPiA+Pj4+ICAgIHsNCj4gPiA+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIl YTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4gPiA+ Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rp b24uXG4iLCBfX2Z1bmNfXykpOw0KPiA+ID4+Pj4gICAgfQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+ICAg IC8qKg0KPiA+ID4+Pj4gQEAgLTE4Nyw3ICsxODcsNyBAQCBXcml0ZUJhY2tEYXRhQ2FjaGVSYW5n ZSAoDQo+ID4gPj4+PiAgICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+ID4+Pj4gICAgICAp DQo+ID4gPj4+PiAgICB7DQo+ID4gPj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklT Qy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4gPj4+PiAr ICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxu IiwgX19mdW5jX18pKTsNCj4gPiA+Pj4+ICAgICAgcmV0dXJuIEFkZHJlc3M7DQo+ID4gPj4+PiAg ICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQEAgLTI0NSw2ICsyNDUsNiBAQCBJbnZhbGlkYXRlRGF0 YUNhY2hlUmFuZ2UgKA0KPiA+ID4+Pj4gICAgICBJTiAgICAgIFVJTlROICBMZW5ndGgNCj4gPiA+ Pj4+ICAgICAgKQ0KPiA+ID4+Pj4gICAgew0KPiA+ID4+Pj4gLSAgREVCVUcgKChERUJVR19FUlJP UiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fRlVOQ1RJT05fXykpOw0K PiA+ID4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBm dW5jdGlvbi5cbiIsIF9fZnVuY19fKSk7DQo+ID4gPj4+PiAgICAgIHJldHVybiBBZGRyZXNzOw0K PiA+ID4+Pj4gICAgfQ0KPiA+ID4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VM aWIvU2FmZVN0cmluZy5jIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMNCj4g PiA+Pj4+IGluZGV4IGI3NWIzMzM4MTczMi4uOTU0ZDNmOGM4OTg4IDEwMDY0NA0KPiA+ID4+Pj4g LS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMNCj4gPiA+Pj4+ICsrKyBi L01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jDQo+ID4gPj4+PiBAQCAtMTcsNyAr MTcsNyBAQA0KPiA+ID4+Pj4gICAgICAgIGlmICghKEV4cHJlc3Npb24pKSB7IFwNCj4gPiA+Pj4+ ICAgICAgICAgIERFQlVHICgoREVCVUdfVkVSQk9TRSwgXA0KPiA+ID4+Pj4gICAgICAgICAgICAi JWEoJWQpICVhOiBTQUZFX1NUUklOR19DT05TVFJBSU5UX0NIRUNLKCVhKSBmYWlsZWQuICBSZXR1 cm4gJXJcbiIsIFwNCj4gPiA+Pj4+IC0gICAgICAgIF9fRklMRV9fLCBERUJVR19MSU5FX05VTUJF UiwgX19GVU5DVElPTl9fLCBERUJVR19FWFBSRVNTSU9OX1NUUklORyAoRXhwcmVzc2lvbiksIFN0 YXR1cykpOyBcDQo+ID4gPj4+PiArICAgICAgICBfX0ZJTEVfXywgREVCVUdfTElORV9OVU1CRVIs IF9fZnVuY19fLCBERUJVR19FWFBSRVNTSU9OX1NUUklORyAoRXhwcmVzc2lvbiksIFN0YXR1cykp OyBcDQo+ID4gPj4+PiAgICAgICAgICByZXR1cm4gU3RhdHVzOyBcDQo+ID4gPj4+PiAgICAgICAg fSBcDQo+ID4gPj4+PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+ID4+Pj4gZGlmZiAtLWdpdCBh L01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNl T3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYw0KPiA+ID4+Pj4gYi9NZGVQa2cvTGli cmFyeS9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIvQmFzZU9yZGVyZWRDb2xs ZWN0aW9uUmVkQmxhY2tUcmVlTGliLmMNCj4gPiA+Pj4+IGluZGV4IGY0NzMwMWRlODk4Mi4uYTIz MTEzZjljOTFkIDEwMDY0NA0KPiA+ID4+Pj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZU9yZGVy ZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGliL0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNr VHJlZUxpYi5jDQo+ID4gPj4+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlT3JkZXJlZENvbGxl Y3Rpb25SZWRCbGFja1RyZWVMaWIvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGli LmMNCj4gPiA+Pj4+IEBAIC0xNDE2LDcgKzE0MTYsNyBAQCBSZWRCbGFja1RyZWVWYWxpZGF0ZSAo DQo+ID4gPj4+PiAgICAgIENPTlNUIFJFRF9CTEFDS19UUkVFX05PREUgICpMYXN0Ow0KPiA+ID4+ Pj4gICAgICBDT05TVCBSRURfQkxBQ0tfVFJFRV9OT0RFICAqTm9kZTsNCj4gPiA+Pj4+DQo+ID4g Pj4+PiAtICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIlYTogVHJlZT0lcFxuIiwgX19GVU5DVElP Tl9fLCBUcmVlKSk7DQo+ID4gPj4+PiArICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIlYTogVHJl ZT0lcFxuIiwgX19mdW5jX18sIFRyZWUpKTsNCj4gPiA+Pj4+DQo+ID4gPj4+PiAgICAgIC8vDQo+ ID4gPj4+PiAgICAgIC8vIHByb3BlcnR5ICM1DQo+ID4gPj4+PiBAQCAtMTQ1OSw3ICsxNDU5LDcg QEAgUmVkQmxhY2tUcmVlVmFsaWRhdGUgKA0KPiA+ID4+Pj4gICAgICBERUJVRyAoKA0KPiA+ID4+ Pj4gICAgICAgIERFQlVHX1ZFUkJPU0UsDQo+ID4gPj4+PiAgICAgICAgIiVhOiBUcmVlPSVwIEJs YWNrSGVpZ2h0PSVMZCBDb3VudD0lTGRcbiIsDQo+ID4gPj4+PiAtICAgIF9fRlVOQ1RJT05fXywN Cj4gPiA+Pj4+ICsgICAgX19mdW5jX18sDQo+ID4gPj4+PiAgICAgICAgVHJlZSwNCj4gPiA+Pj4+ ICAgICAgICAoSU5UNjQpQmxhY2tIZWlnaHQsDQo+ID4gPj4+PiAgICAgICAgKElOVDY0KUZvcndh cmRDb3VudA0KPiA+ID4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9E eGVSbmdMaWIuYyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+ID4+ Pj4gaW5kZXggODIxMjlhYTQ0NTk4Li40NmFlYTUxNTkyNGYgMTAwNjQ0DQo+ID4gPj4+PiAtLS0g YS9NZGVQa2cvTGlicmFyeS9EeGVSbmdMaWIvRHhlUm5nTGliLmMNCj4gPiA+Pj4+ICsrKyBiL01k ZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+ID4+Pj4gQEAgLTM3LDQzICsz Nyw0MyBAQCBHZW5lcmF0ZVJhbmRvbU51bWJlclZpYU5pc3Q4MDBBbGdvcml0aG0gKA0KPiA+ID4+ Pj4gICAgICBSbmdQcm90b2NvbCA9IE5VTEw7DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gICAgICBpZiAo QnVmZmVyID09IE5VTEwpIHsNCj4gPiA+Pj4+IC0gICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVh OiBCdWZmZXIgPT0gTlVMTC5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+ID4+Pj4gKyAgICBERUJV RyAoKERFQlVHX0VSUk9SLCAiJWE6IEJ1ZmZlciA9PSBOVUxMLlxuIiwgX19mdW5jX18pKTsNCj4g PiA+Pj4+ICAgICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ID4+Pj4gICAg ICB9DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gICAgICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29s ICgmZ0VmaVJuZ1Byb3RvY29sR3VpZCwgTlVMTCwgKFZPSUQgKiopJlJuZ1Byb3RvY29sKTsNCj4g PiA+Pj4+ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSB8fCAoUm5nUHJvdG9jb2wgPT0gTlVM TCkpIHsNCj4gPiA+Pj4+IC0gICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBDb3VsZCBub3Qg bG9jYXRlIFJORyBwcm90b3RvY29sLCBTdGF0dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0 dXMpKTsNCj4gPiA+Pj4+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBDb3VsZCBub3Qg bG9jYXRlIFJORyBwcm90b3RvY29sLCBTdGF0dXMgPSAlclxuIiwgX19mdW5jX18sIFN0YXR1cykp Ow0KPiA+ID4+Pj4gICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4gPj4+PiAgICAgIH0NCj4gPiA+ Pj4+DQo+ID4gPj4+PiAgICAgIFN0YXR1cyA9IFJuZ1Byb3RvY29sLT5HZXRSTkcgKFJuZ1Byb3Rv Y29sLCAmZ0VmaVJuZ0FsZ29yaXRobVNwODAwOTBDdHIyNTZHdWlkLCBCdWZmZXJTaXplLCBCdWZm ZXIpOw0KPiA+ID4+Pj4gLSAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0 aG0gQ1RSLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+ ID4+Pj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gQ1RSLTI1 NiAtIFN0YXR1cyA9ICVyXG4iLCBfX2Z1bmNfXywgU3RhdHVzKSk7DQo+ID4gPj4+PiAgICAgIGlm ICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPj4+PiAgICAgICAgcmV0dXJuIFN0YXR1czsN Cj4gPiA+Pj4+ICAgICAgfQ0KPiA+ID4+Pj4NCj4gPiA+Pj4+ICAgICAgU3RhdHVzID0gUm5nUHJv dG9jb2wtPkdldFJORyAoUm5nUHJvdG9jb2wsICZnRWZpUm5nQWxnb3JpdGhtU3A4MDA5MEhtYWMy NTZHdWlkLCBCdWZmZXJTaXplLCBCdWZmZXIpOw0KPiA+ID4+Pj4gLSAgREVCVUcgKChERUJVR19J TkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSE1BQy0yNTYgLSBTdGF0dXMgPSAlclxuIiwgX19G VU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPiA+Pj4+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIiVh OiBHZXRSTkcgYWxnb3JpdGhtIEhNQUMtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBT dGF0dXMpKTsNCj4gPiA+Pj4+ICAgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ Pj4+ICAgICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4+Pj4gICAgICB9DQo+ID4gPj4+Pg0KPiA+ ID4+Pj4gICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90b2NvbCwgJmdF ZmlSbmdBbGdvcml0aG1TcDgwMDkwSGFzaDI1Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ ID4gPj4+PiAtICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNo LTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+ID4+Pj4g KyAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSGFzaC0yNTYgLSBT dGF0dXMgPSAlclxuIiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+ID4+Pj4gICAgICBpZiAoIUVG SV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4+Pj4gICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4g Pj4+PiAgICAgIH0NCj4gPiA+Pj4+DQo+ID4gPj4+PiAgICAgIC8vIElmIGFsbCB0aGUgb3RoZXIg bWV0aG9kcyBoYXZlIGZhaWxlZCwgdXNlIHRoZSBkZWZhdWx0IG1ldGhvZCBmcm9tIHRoZSBSbmdQ cm90b2NvbA0KPiA+ID4+Pj4gICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQ cm90b2NvbCwgTlVMTCwgQnVmZmVyU2l6ZSwgQnVmZmVyKTsNCj4gPiA+Pj4+IC0gIERFQlVHICgo REVCVUdfSU5GTywgIiVhOiBHZXRSTkcgYWxnb3JpdGhtIEhhc2gtMjU2IC0gU3RhdHVzID0gJXJc biIsIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQo+ID4gPj4+PiArICBERUJVRyAoKERFQlVHX0lO Rk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNoLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBfX2Z1 bmNfXywgU3RhdHVzKSk7DQo+ID4gPj4+PiAgICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQo+ID4gPj4+PiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+Pj4+ICAgICAgfQ0KPiA+ID4+ Pj4NCj4gPiA+Pj4+ICAgICAgLy8gSWYgd2UgZ2V0IHRvIHRoaXMgcG9pbnQsIHdlIGhhdmUgZmFp bGVkDQo+ID4gPj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEdldFJORygpIGZhaWxl ZCwgc3RhdXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsNCj4gPiA+Pj4+ICsgIERF QlVHICgoREVCVUdfRVJST1IsICIlYTogR2V0Uk5HKCkgZmFpbGVkLCBzdGF1cyA9ICVyXG4iLCBf X2Z1bmNfXywgU3RhdHVzKSk7DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gICAgICByZXR1cm4gU3RhdHVz Ow0KPiA+ID4+Pj4gICAgfS8vIEdlbmVyYXRlUmFuZG9tTnVtYmVyVmlhTmlzdDgwMEFsZ29yaXRo bSgpDQo+ID4gPj4+PiAtLQ0KPiA+ID4+Pj4gMi4zMC4yDQo+ID4gPj4+Pg0KPiA+ID4+Pj4NCj4g PiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4NCj4gPiA+Pj4NCj4gPiA+Pj4NCj4g PiA+Pj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4gPg0KPiA+DQo+ID4gDQo+ID4NCg0K