From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web08.5945.1661819358838352863 for ; Mon, 29 Aug 2022 17:29:18 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=kIY5Sv0w; spf=permerror, err=too many SPF records (domain: intel.com, ip: 192.55.52.93, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661819358; x=1693355358; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=LSB9Dgb0wAh+ZEmslRjXO+/iODugHkPeBuaccTSVtKM=; b=kIY5Sv0w11aO4jBjb+vKoMCESxlJ+Z2atS8Q94UxdB4tnZuxwnIhtb/p ixI8KyaAl5Os6UaAE63rYwqVW01I1xpS1uRorpdzcrSCSy6esTOdpc0C5 NhA/DDd+LFfSkWPnDaaiyvoPoN1DKum5zVAzdTTjgEk3y6fJz2t2QnzXJ K5LqWHxSKCeaI45AyTuZmJJE6OVqettGJkQ2vmS1bJ+Xd6jMHVKMGi05r cFZCnisUh8MeQuTyJprrrc9pgOzRr33LlpIRkx3o0ZtyLOx6gOj8TfBbh QWenxBN2aKlwW0QozKWJvZEYW6CDzunwOGD31j2ZCBcDEG0t7ZKrJb7el g==; X-IronPort-AV: E=McAfee;i="6500,9779,10454"; a="292618392" X-IronPort-AV: E=Sophos;i="5.93,273,1654585200"; d="scan'208";a="292618392" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Aug 2022 17:29:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,273,1654585200"; d="scan'208";a="715085944" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga002.fm.intel.com with ESMTP; 29 Aug 2022 17:29:18 -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.2375.31; Mon, 29 Aug 2022 17:29:17 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) 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.2375.31; Mon, 29 Aug 2022 17:29:17 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.2375.31 via Frontend Transport; Mon, 29 Aug 2022 17:29:17 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) 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.2375.31; Mon, 29 Aug 2022 17:29:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=klgIe24n7+QdA5m53wqtVRG8H5tw7pW8k2wq/TxjoSJ8lE5Nlw5ulKUuDNBDRtxB1OAECaUin4NzWC8+5ECZLyD9bli6athnyJ66IUpk78fjm0sbD8LvTLEtY3rVATGazCKEQK4kf+jgxMptP4OcYIWUA9FZz3Uy+lIno3mDj7Zx1cVTqDIaBpTFnGrRwKIwnqJaDwVsNGEtEJ1fLbXKz1Y58aVtHTngGhaV6tFQ2o6+voeAXrkSq/HfPrceRgtallAJuzzKWuKrBd9dulO7gVGsJnqXtRxpNlXpdsiPmCCttCV/rirj24JRJqs+mgpo1YV0aWUKqt6uO2HAb0uk2A== 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=LSB9Dgb0wAh+ZEmslRjXO+/iODugHkPeBuaccTSVtKM=; b=RMTIVsRM94Ra7jYTbDlKIEE3QMj6q5s9uxrg2ip0zWxoMXyTZbJsHqN2O0AmrLDOukLOh006ckgIzjl41JamXLb281Um5IZ/JbB7kl9RMaw2ZY+9jb7SbmomZZdcmmWbK7R8S7axmdSceIGZ75eWvLaPwmR509C3ZU89vkBFy7INgygFJnzNdLCmn7K2SeyqdZQFxa8x4C0bBVP5YFZT9lvQXYiC+D50s2OF7voolyy3i2gqMkNznSFd7j/UwAX6yQ2Zqsj6QRoblgmeo72fbWX9k4uuGRnX1ZR/eEiUtCsDAy+NNpyR4I9l7xBA4hdMFxhibnDASQMcBO3U+BoPZQ== 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 MWHPR11MB1631.namprd11.prod.outlook.com (2603:10b6:301:10::10) by SA0PR11MB4720.namprd11.prod.outlook.com (2603:10b6:806:72::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Tue, 30 Aug 2022 00:29:14 +0000 Received: from MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::958b:cc9d:ac3:288a]) by MWHPR11MB1631.namprd11.prod.outlook.com ([fe80::958b:cc9d:ac3:288a%10]) with mapi id 15.20.5566.021; Tue, 30 Aug 2022 00:29:14 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "thomas.lendacky@amd.com" , "Xu, Min M" CC: "Gao, Jiaqi" , "Wang, Jian J" , "Gao, Liming" , "Bi, Dandan" , "Aktas, Erdem" , "James Bottomley" , "Yao, Jiewen" , "Gerd Hoffmann" Subject: Re: [edk2-devel] [PATCH V2 14/14] MdeModulePkg: Pool and page functions accept memory when OOM occurs Thread-Topic: [edk2-devel] [PATCH V2 14/14] MdeModulePkg: Pool and page functions accept memory when OOM occurs Thread-Index: AQHYud2FqcgPOaqqpUizN4vooJ0CU63GXU2AgAA9uMA= Date: Tue, 30 Aug 2022 00:29:14 +0000 Message-ID: References: <0df27647-88c0-2b21-cfea-3f5536451567@amd.com> In-Reply-To: <0df27647-88c0-2b21-cfea-3f5536451567@amd.com> 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-office365-filtering-correlation-id: 7c7c9b97-fc8a-41c4-cc8c-08da8a1eaadb x-ms-traffictypediagnostic: SA0PR11MB4720:EE_ 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: qPCW0kzVpnR/rPD1XC117sJ+hXLDGLwHn6Q2kMwiSRwa6EY3pVjyQ+/PB75Q1VX3zGPzOsC7OQycLwGbBc3qtnqth6w99CwZ+IP2forbmWbaiBXC69MbWbt1wrWZVOzU2e+/IH8hTBe4Gt+0WBjkNazmfrOyMm/7Byj0D+JzLV8apt7g942AiosLrYzHBNK5CPNcpyVXRdBrdC7/zYwSUSno/tt1QVR316C10fR2EE4WqOnWROGV9cjAbPheWM0UKp4H5hdUyFvlYSFkr3P4W68a2f2wahZzxPHNF/vJCWye6gQnZolbCmSK+bwkMBfy9p5FMmjIlxAdTpjiwMbwzUgQrItoHHWO5QAsqmX0USL/w5rt4bjPnTJkkgNb3w6p/pmysDdD9uheQojvCbPvrZe+ENzdrUxpBWmMqHncZ7g1YAQYjOUT7AfuXbZYp4QMa07Q/Ulep/fMsyL8SrWHQNTpA6unUc8VBOz2suX808yRgL9qJYqdByruIkJ7HH8fgJ7MKvADfUTXDJDyXt8IhkQqP/CuavJmSX02XeD5FSqlhuvIuk/V9lnLhRMAL418n+C7bH2cXsCv+nlVLISJ/J1PZeW5FjJzoHep91hy3PYVtpxu/ZWsQUBR+Nz8xY+hl4fsl03r/KNPMTmwgQdgyiY48Qp6SIlbwKKWPRQ3VkH1xe3pfR1i83+CHSgUIC6ZKdrCmwvZuQbwOg/EevDmJnM4b6bWr4zGqqk4VGr7sdShyS5ZZ7pjfjz/CfheZrSf41Uh8jEegC7h69uVswINaf1ul21j30UxhreN7L8NhfnJcpbJIcekE0Ojl//CesA4ph5ZtBOYuyPu4JKnqd+4Ew== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1631.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(366004)(346002)(396003)(376002)(39860400002)(136003)(55016003)(966005)(66476007)(66446008)(76116006)(66556008)(8676002)(66946007)(4326008)(64756008)(53546011)(83380400001)(2906002)(6506007)(8936002)(7696005)(5660300002)(26005)(478600001)(52536014)(9686003)(41300700001)(33656002)(30864003)(316002)(110136005)(71200400001)(6636002)(38070700005)(86362001)(54906003)(82960400001)(122000001)(186003)(38100700002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MFlrdlY3blFhR1JIRDlVb0VMQ0MvUUNzSWkxaHhHWmFXUU5lcCtseGt1YzRm?= =?utf-8?B?NWw0S1NnRWd1WG1PQjdyR0NnbnR4bFhTRytCc01FMEJBVkMvUDJjT0hxN3dK?= =?utf-8?B?eVB2ekxYL0xpbjU2OWRLUy96QnpaZ09rK2dMU1VSZHhPZmZQTTBTTXBWd2dQ?= =?utf-8?B?bjRNOXhLTHBzaFRaMzUwZUJWeVl0c3VHSlFhMWwvR1BnWnMxd2pjRzBiYmZP?= =?utf-8?B?bExpdjVCcFRIejlTOUdleGhYcE53enpPd2tRRHlSNjdmTzYxcTR0M0pmTVMz?= =?utf-8?B?Z2tFdnlvdTVqSjVDS3VPSk1MM0hBNGdzWmM3d0hLK0IzbXdSTmxrOWMra1JL?= =?utf-8?B?OHdPcWZMNXRQVkxCcVlRVDJudlVJc1VJTnBxZGZnbXUwczBQd3VMdlJUMnRG?= =?utf-8?B?M2Z4M3JFSTQvRHFWK2R5U1RreitRRDlNTFlHNDV3N1BJQW5HbW03ZHZPRTM2?= =?utf-8?B?eWMwSVhxbXlNUDBCWElBMjNIbzdldDAvc2NZTEd5Q2ZFeDduTWptNnk1M091?= =?utf-8?B?ZkFhWXpzM3F6bjB2WTlJdWYvSGM1TVkvK0hLeGpTdVRjR1F5WitGalcrT0ll?= =?utf-8?B?bjVsR0RhMmRGYzR3OHRRVjhiRGJHMDRsV2xDOC9XWUdyS28rd0UxTm9EckFx?= =?utf-8?B?N2wwdUoyTTY1MGE3WTV3U21ZUkNhbVpSUURLd3FpbGdRZWJyM0VnRm1hbzNG?= =?utf-8?B?SnRsb3NIVDRNVEtmc2xVSWpFYnJkQll3Q0YxNk9KejgySFFTbDJkZGNhcGhX?= =?utf-8?B?cFBES0RlTDMwY1BuRitPVHBObFpTZVd6Yk5xZW1uTTAzOWNjS1lGN1RDdHYy?= =?utf-8?B?U1Q5R01GR0RnVjFqcGI3VXZtZUpHL1VoczZ6Z1N2R0lQc0plQk9IYkJUYURr?= =?utf-8?B?MzNJOXo3OEhJNm9PQVlmMzBXdHpqNDRPWW15R1U4eW9FTEFlK1FSTm1zSFdJ?= =?utf-8?B?Snp2RXdaOFZTL0EvbVhoQlcvOHVGci94djlMN014b0l1UXNicXU5MkJJOWVt?= =?utf-8?B?RkM1S1h1SjdvbTk0a0VOZTJlYjlKZ2RhMkwyQmplUWRqQ2VpNDdzYXFSQVZk?= =?utf-8?B?MFJvdjZOZUZldFlETkZBNmpMK0dneG4xdzNVNXA3NEZRd3N1dUdGVzk3REFR?= =?utf-8?B?eTRkTUpDY2xGVmZiM2JiYWtnNE96eFpwaE1NbVZCYWErNTdyTUNLSnpJYUdB?= =?utf-8?B?anFvUStWenpFTWxtdGNGdDBpRXdCUVhxU2hxWmlOVU1CVkhyZVpVM2hHUldy?= =?utf-8?B?bjZuWUZBdFNxVEkwbXZscElDaEZNekJNVHBFL3pSdW9vWDZsbmFoeHE1V3VG?= =?utf-8?B?N1N6YmZBc01OaE5aeGlJUXkvU2hxWGswR2J4aFM3M1d0cDdzY3VORUQ4RDZn?= =?utf-8?B?aXVoTW15bkdHOVFwL1ZJaE9XNHBFU0NvTUk4N3hNZHpXN2Yva1pHcmI1OGxQ?= =?utf-8?B?ampnR2tJTXJlQm1NMDVYY0JZUjFEZ0pvRjNNSHBXNEpVWkxYM2ptVEhzM1NT?= =?utf-8?B?NHZEaXV6aUg1bEgrVjJzUEFQZDVWc1VIbitUSHlhUVp2dGkzYTNjVHVzNVVT?= =?utf-8?B?VElrYjFkcHpQT1dDMFdaQnZXOU5xTFdTZy8ybFBlQThDVU83bFYxRVpxOHFZ?= =?utf-8?B?cXYreVRrU1BFZGlHbkxJYmtTWFZ4RVNCb1RjM0NiS0NQWG5hb09LV0ZSbGJ1?= =?utf-8?B?N2dzY0g3RXRBcisxRHdpbFlaaXVhcDEwc2M4Nm54WFB5STRaU1p6eEdPV3BU?= =?utf-8?B?bDFkRk11MzNSMXZSM0w5WExBeHlJUzBWbWlUa2ZJc2tMRkxpNUlqdGFFbC9O?= =?utf-8?B?RlRhVEtIbERXcDYwQkZvWUFvdkE4YW51b3FZYm52OWRNbGNVbEtNTkh3SGNj?= =?utf-8?B?dWNXYnkzYVZGd1pNNGdVSVZnc1A2dG9qcnNjM1lDUjRQOXd2YjFWZk5jN1FY?= =?utf-8?B?MzUyT3MwaXMrTjdlQ0tjNm5Ed0pKOERqQlpHTWo4MUtGSkhudTV4ejRzWjl3?= =?utf-8?B?SExrbStheTltRnI3cTBIZ0pBVTBWdThQcDNkSnJGTndRemJzQUFqMFg0VGo2?= =?utf-8?B?dlVENWRlTFpEZS90b01MTnVtNDd1ald1c3IrQzZkcW1qWFRudENQcU96SGxV?= =?utf-8?Q?7Qlc=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1631.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7c7c9b97-fc8a-41c4-cc8c-08da8a1eaadb X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Aug 2022 00:29:14.6373 (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: AOWfBallVH2pY/gxScPZ+AX8oPGPZ5Iakr6M0jIGRxjbf8uV/N+vx1ruXD3qIAF9OAmYGSOTDSc6kOv9n6w01g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4720 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Q2FuIHlvdSBwbGVhc2UgZXhwbGFpbiBtb3JlIGFib3V0IHRoaXMgcGF0Y2g/DQpJIGFtIGEgbGl0 dGxlIG5lcnZvdXMgd2hlbiBzZWVpbmcgcGF0Y2hlcyB0aGF0IGNoYW5nZSB0aGUgZnVuZGFtZW50 YWwgbWVtb3J5IHNlcnZpY2VzLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxm IE9mIExlbmRhY2t5LCBUaG9tYXMgdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBUdWVzZGF5LCBBdWd1 c3QgMzAsIDIwMjIgNDo0NyBBTQ0KPiBUbzogWHUsIE1pbiBNIDxtaW4ubS54dUBpbnRlbC5jb20+ OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogR2FvLCBKaWFxaSA8amlhcWkuZ2FvQGludGVs LmNvbT47IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcg PGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IEJpLA0KPiBEYW5kYW4gPGRhbmRhbi5iaUBpbnRl bC5jb20+OyBBa3RhcywgRXJkZW0gPGVyZGVtYWt0YXNAZ29vZ2xlLmNvbT47IEphbWVzIEJvdHRv bWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgWWFvLA0KPiBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW1BBVENIIFYyIDE0LzE0XSBNZGVNb2R1bGVQa2c6IFBvb2wgYW5kIHBh Z2UgZnVuY3Rpb25zIGFjY2VwdCBtZW1vcnkgd2hlbiBPT00gb2NjdXJzDQo+IA0KPiBPbiA4LzI3 LzIyIDAxOjIxLCBNaW4gWHUgd3JvdGU6DQo+ID4gRnJvbTogSmlhcWkgR2FvIDxqaWFxaS5nYW9A aW50ZWwuY29tPg0KPiA+DQo+ID4gUkZDOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTM5MzcNCj4gPg0KPiA+IFdoZW4gQ29yZUFsbG9jYXRlUGFnZXMoKSAv IENvcmVBbGxvY2F0ZVBvb2woKSBtZWV0cyBlcnJvciBvZg0KPiA+IEVGSV9PVVRfT0ZfUkVTT1VS Q0VTLCBsb2NhdGUgdGhlIEVka2lpTWVtb3J5QWNjZXB0UHJvdG9jb2wgYW5kIGFjY2VwdCBleHRy YQ0KPiA+IG1lbW9yeSBkeW5hbWljYWxseS4NCj4gPg0KPiA+IEZpcnN0bHksIGZpbmQgdGhlIHVu YWNjcGV0ZWQgbWVtb3J5IHJlZ2lvbiB3aXRoIGVub3VnaCBzaXplIGluIEdDRA0KPiANCj4gcy91 bmFjY3BldGVkL3VuYWNjZXB0ZWQvDQo+IA0KPiA+IGVudHJpZXMuIFRoZW4gbG9jYXRlIHRoZSBF ZGtpaU1lbW9yeUFjY2VwdFByb3RvY29sIGFuZCBhY2NlcHQgdGhlIG1lbW9yeS4NCj4gPiBGaW5h bGx5LCB1cGRhdGUgdGhlIEdDRCBtZW1vcnkgYW5kIGdNZW1vcnlNYXAgZW50cmllcy4NCj4gPg0K PiA+IEFmdGVyIHVwZGF0aW5nIHRoZSBtZW1vcnkgaW5mb21hdGlvbiwgQ29yZUludGVybmFsQWxs b2NhdGVQYWdlcygpIC8NCj4gPiBDb3JlSW50ZXJuYWxBbGxvY2F0ZVBvb2woKSB3aWxsIGJlIHJl Y2FsbGVkIHRvIGFsbG9jYXRlIHBhZ2VzIC8gcG9vbC4NCj4gDQo+IFdoYXQgcGF0aCBkb2VzIGFs bG9jYXRpb24gdGFrZSB3aGVuIGNhbGxlZCB0aHJvdWdoIGJvb3Qgc2VydmljZXM/IElmIEkgc2V0 DQo+IGEgMjU2TUIgYWNjZXB0ZWQgbWVtb3J5IHNpemUsIEkgY2FuIGdldCB0byB0aGUgYm9vdGxv YWRlciBhbmQgc2VsZWN0IG15DQo+IGtlcm5lbC4gQnV0IHRoZW4gdGhlIGtlcm5lbCBkaWVzIGlu IGVmaV9yZWxvY2F0ZV9rZXJuZWwoKSB3aXRoOg0KPiANCj4gRUZJIHN0dWI6IEVSUk9SOiBGYWls ZWQgdG8gYWxsb2NhdGUgdXNhYmxlIG1lbW9yeSBmb3Iga2VybmVsLg0KPiBFRkkgc3R1YjogRVJS T1I6IGVmaV9yZWxvY2F0ZV9rZXJuZWwoKSBmYWlsZWQhDQo+IEVGSSBzdHViOiBFUlJPUjogZWZp X21haW4oKSBmYWlsZWQhDQo+IA0KPiBiZWNhdXNlIGJvdGggZWZpX2JzX2NhbGwoYWxsb2NhdGVf cGFnZXMsIC4uLikgYW5kIGVmaV9sb3dfYWxsb2NfYWJvdmUoKSBmYWlsLg0KPiANCj4gU2ltaWxh ciB0byBEWEUsIHNob3VsZCBPVk1GIGFjY2VwdCBtb3JlIG1lbW9yeSB0aHJvdWdoIHRoaXMgcGF0 aCB0byBsZXQNCj4gdGhlIGtlcm5lbCBib290Pw0KPiANCj4gVGhhbmtzLA0KPiBUb20NCj4gDQo+ ID4NCj4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiBDYzog TGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+IENjOiBEYW5kYW4gQmkg PGRhbmRhbi5iaUBpbnRlbC5jb20+DQo+ID4gQ2M6IEVyZGVtIEFrdGFzIDxlcmRlbWFrdGFzQGdv b2dsZS5jb20+DQo+ID4gQ2M6IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPg0K PiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPiBDYzogVG9tIExl bmRhY2t5IDx0aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4gPiBDYzogR2VyZCBIb2ZmbWFubiA8 a3JheGVsQHJlZGhhdC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogSmlhcWkgR2FvIDxqaWFxaS5n YW9AaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IE1pbiBYdSA8bWluLm0ueHVAaW50ZWwu Y29tPg0KPiA+IC0tLQ0KPiA+ICAgTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0R4ZU1haW4uaW5mIHwg ICAxICsNCj4gPiAgIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vSW1lbS5oICB8ICAxNiArKysN Cj4gPiAgIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUGFnZS5jICB8IDE5MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysNCj4gPiAgIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUG9v bC5jICB8ICAxNCArKysNCj4gPiAgIDQgZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKykN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5pbmYg Yi9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5pbmYNCj4gPiBpbmRleCBlNGJjYTg5NTc3 M2QuLjM3MWJhNDUzNTdiZSAxMDA2NDQNCj4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUv RHhlTWFpbi5pbmYNCj4gPiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5pbmYN Cj4gPiBAQCAtMTY5LDYgKzE2OSw3IEBADQo+ID4gICAgIGdFZmlWYXJpYWJsZUFyY2hQcm90b2Nv bEd1aWQgICAgICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPiA+ICAgICBnRWZpQ2Fwc3VsZUFy Y2hQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gPiAgICAgZ0Vm aVdhdGNoZG9nVGltZXJBcmNoUHJvdG9jb2xHdWlkICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ ID4gKyAgZ0Vka2lpTWVtb3J5QWNjZXB0UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICMjIENP TlNVTUVTDQo+ID4NCj4gPiAgIFtQY2RdDQo+ID4gICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNw YWNlR3VpZC5QY2RMb2FkRml4QWRkcmVzc0Jvb3RUaW1lQ29kZVBhZ2VOdW1iZXIgICAgIyMgU09N RVRJTUVTX0NPTlNVTUVTDQo+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9N ZW0vSW1lbS5oIGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL01lbS9JbWVtLmgNCj4gPiBpbmRleCAy ZjBiZjJiZjYzMWYuLjIyZTBkMGU0NDAzMCAxMDA2NDQNCj4gPiAtLS0gYS9NZGVNb2R1bGVQa2cv Q29yZS9EeGUvTWVtL0ltZW0uaA0KPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0v SW1lbS5oDQo+ID4gQEAgLTQ3LDYgKzQ3LDIyIEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gPiAgIC8v IEludGVybmFsIHByb3RvdHlwZXMNCj4gPiAgIC8vDQo+ID4NCj4gPiArLyoqDQo+ID4gKyAgSW50 ZXJuYWwgZnVuY3Rpb24uICBVc2VkIGJ5IHRoZSBwb29sIGFuZCBwYWdlIGZ1bmN0aW9ucyB0byBh Y2NlcHQgbWVtb3J5DQo+ID4gKyAgd2hlbiBPT00gb2NjdXJzLg0KPiA+ICsNCj4gPiArICBAcGFy YW0gIFR5cGUgICAgICAgICAgICAgICAgICAgVGhlIHR5cGUgb2YgYWxsb2NhdGlvbiB0byBwZXJm b3JtLg0KPiA+ICsgIEBwYXJhbSAgQWNjZXB0U2l6ZSAgICAgICAgICAgICBTaXplIG9mIG1lbW9y eSB0byBiZSBhY2NlcHRlZC4NCj4gPiArICBAcGFyYW0gIE1lbW9yeSAgICAgICAgICAgICAgICAg QWNjZXB0IG1lbW9yeSBhZGRyZXNzDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArRUZJX1NUQVRVUw0K PiA+ICtBY2NlcHRNZW1vcnlSZXNvdXJjZSAoDQo+ID4gKyAgSU4gRUZJX0FMTE9DQVRFX1RZUEUg ICAgICAgICBUeXBlLA0KPiA+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgQWNjZXB0 U2l6ZSwNCj4gPiArICBJTiBPVVQgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICpNZW1vcnkNCj4gPiAr ICApOw0KPiA+ICsNCj4gPiAgIC8qKg0KPiA+ICAgICBJbnRlcm5hbCBmdW5jdGlvbi4gIFVzZWQg YnkgdGhlIHBvb2wgZnVuY3Rpb25zIHRvIGFsbG9jYXRlIHBhZ2VzDQo+ID4gICAgIHRvIGJhY2sg cG9vbCBhbGxvY2F0aW9uIHJlcXVlc3RzLg0KPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cv Q29yZS9EeGUvTWVtL1BhZ2UuYyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUGFnZS5jDQo+ ID4gaW5kZXggMTYwMjg5YzFmOWVjLi41MTM3OTJhN2ZlMDQgMTAwNjQ0DQo+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL0NvcmUvRHhlL01lbS9QYWdlLmMNCj4gPiArKysgYi9NZGVNb2R1bGVQa2cvQ29y ZS9EeGUvTWVtL1BhZ2UuYw0KPiA+IEBAIC0xMCw2ICsxMCw3IEBAIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gICAjaW5jbHVkZSAiSW1lbS5oIg0KPiA+ ICAgI2luY2x1ZGUgIkhlYXBHdWFyZC5oIg0KPiA+ICAgI2luY2x1ZGUgPFBpL1ByZVBpRHhlQ2lz Lmg+DQo+ID4gKyNpbmNsdWRlIDxQcm90b2NvbC9NZW1vcnlBY2NlcHQuaD4NCj4gPg0KPiA+ICAg Ly8NCj4gPiAgIC8vIEVudHJ5IGZvciB0cmFja2luZyB0aGUgbWVtb3J5IHJlZ2lvbnMgZm9yIGVh Y2ggbWVtb3J5IHR5cGUgdG8gY29hbGVzY2Ugc2ltaWxhciBtZW1vcnkgdHlwZXMNCj4gPiBAQCAt Mzc5LDYgKzM4MCwxNzYgQEAgQ29yZUZyZWVNZW1vcnlNYXBTdGFjayAoDQo+ID4gICAgIG1GcmVl TWFwU3RhY2sgLT0gMTsNCj4gPiAgIH0NCj4gPg0KPiA+ICsvKioNCj4gPiArICBVc2VkIHRvIGFj Y2VwdCBtZW1vcnkgd2hlbiBPT00gb2NjdXJzLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gIFR5cGUg ICAgICAgICAgICAgICAgICAgVGhlIHR5cGUgb2YgYWxsb2NhdGlvbiB0byBwZXJmb3JtLg0KPiA+ ICsgIEBwYXJhbSAgQWNjZXB0U2l6ZSAgICAgICAgICAgICBTaXplIG9mIG1lbW9yeSB0byBiZSBh Y2NlcHRlZC4NCj4gPiArICBAcGFyYW0gIE1lbW9yeSAgICAgICAgICAgICAgICAgQWNjZXB0IG1l bW9yeSBhZGRyZXNzDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArRUZJX1NUQVRVUw0KPiA+ICtBY2Nl cHRNZW1vcnlSZXNvdXJjZSAoDQo+ID4gKyAgSU4gRUZJX0FMTE9DQVRFX1RZUEUgICAgICAgICBU eXBlLA0KPiA+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgQWNjZXB0U2l6ZSwNCj4g PiArICBJTiBPVVQgRUZJX1BIWVNJQ0FMX0FERFJFU1MgICpNZW1vcnkNCj4gPiArICApDQo+ID4g K3sNCj4gPiArICNpZmRlZiBNREVfQ1BVX1g2NA0KPiA+ICsNCj4gPiArICBMSVNUX0VOVFJZICAg ICAgICAgICAgICAgICAgICAqTGluazsNCj4gPiArICBFRklfR0NEX01BUF9FTlRSWSAgICAgICAg ICAgICAqR2NkRW50cnk7DQo+ID4gKyAgRUZJX0dDRF9NQVBfRU5UUlkgICAgICAgICAgICAgVW5h Y2NlcHRlZEVudHJ5Ow0KPiA+ICsgIEVES0lJX01FTU9SWV9BQ0NFUFRfUFJPVE9DT0wgICpNZW1v cnlBY2NlcHRQcm90b2NvbDsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICBT dGFydDsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICBFbmQ7DQo+ID4gKyAg RUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICsNCj4gPiArICAvLw0K PiA+ICsgIC8vIFdlIGFjY2VwdCBuKjMyTUIgYXQgb25lIHRpbWUgdG8gaW1wcm92ZSB0aGUgZWZm aWNpZW5jeS4NCj4gPiArICAvLw0KPiA+ICsgIEFjY2VwdFNpemUgPSAoQWNjZXB0U2l6ZSArIFNJ WkVfMzJNQiAtIDEpICYgfihTSVpFXzMyTUIgLSAxKTsNCj4gPiArDQo+ID4gKyAgaWYgKEFjY2Vw dFNpemUgPT0gMCkgew0KPiA+ICsgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4g PiArICB9DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWRr aWlNZW1vcnlBY2NlcHRQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEICoqKSZNZW1vcnlBY2NlcHRQ cm90b2NvbCk7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgcmV0 dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIGlmIChUeXBlID09 IEFsbG9jYXRlQWRkcmVzcykgew0KPiA+ICsgICAgU3RhcnQgPSAqTWVtb3J5Ow0KPiA+ICsgICAg RW5kICAgPSAqTWVtb3J5ICsgQWNjZXB0U2l6ZTsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIGlm IChUeXBlID09IEFsbG9jYXRlTWF4QWRkcmVzcykgew0KPiA+ICsgICAgaWYgKCpNZW1vcnkgPCBF RklfUEFHRV9NQVNLKSB7DQo+ID4gKyAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7 DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgaWYgKCgqTWVtb3J5ICYgRUZJX1BBR0VfTUFT SykgIT0gRUZJX1BBR0VfTUFTSykgew0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICAvLyBDaGFu Z2UgTWF4QWRkcmVzcyB0byBiZSAxIHBhZ2UgbG93ZXINCj4gPiArICAgICAgLy8NCj4gPiArICAg ICAgKk1lbW9yeSAtPSBFRklfUEFHRV9TSVpFOw0KPiA+ICsNCj4gPiArICAgICAgLy8NCj4gPiAr ICAgICAgLy8gU2V0IE1heEFkZHJlc3MgdG8gYSBwYWdlIGJvdW5kYXJ5DQo+ID4gKyAgICAgIC8v DQo+ID4gKyAgICAgICpNZW1vcnkgJj0gfihVSU5UNjQpRUZJX1BBR0VfTUFTSzsNCj4gPiArDQo+ ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8vIFNldCBNYXhBZGRyZXNzIHRvIGVuZCBvZiB0aGUg cGFnZQ0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICAqTWVtb3J5IHw9IEVGSV9QQUdFX01BU0s7 DQo+ID4gKyAgICB9DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIFRyYXZl cnNlIHRoZSBtR2NkTWVtb3J5U3BhY2VNYXAgdG8gZmluZCBvdXQgdGhlIHVuYWNjZXB0ZWQNCj4g PiArICAvLyBtZW1vcnkgZW50cnkgd2l0aCBiaWcgZW5vdWdoIHNpemUuDQo+ID4gKyAgLy8NCj4g PiArICBMaW5rID0gbUdjZE1lbW9yeVNwYWNlTWFwLkZvcndhcmRMaW5rOw0KPiA+ICsgIHdoaWxl IChMaW5rICE9ICZtR2NkTWVtb3J5U3BhY2VNYXApIHsNCj4gPiArICAgIEdjZEVudHJ5ID0gQ1Ig KExpbmssIEVGSV9HQ0RfTUFQX0VOVFJZLCBMaW5rLCBFRklfR0NEX01BUF9TSUdOQVRVUkUpOw0K PiA+ICsgICAgaWYgKEdjZEVudHJ5LT5HY2RNZW1vcnlUeXBlID09IEVGSV9HQ0RfTUVNT1JZX1RZ UEVfVU5BQ0NFUFRFRCkgew0KPiA+ICsgICAgICBpZiAoVHlwZSA9PSBBbGxvY2F0ZU1heEFkZHJl c3MpIHsNCj4gPiArICAgICAgICBpZiAoR2NkRW50cnktPkJhc2VBZGRyZXNzICsgQWNjZXB0U2l6 ZSAtIDEgPiAqTWVtb3J5KSB7DQo+ID4gKyAgICAgICAgICBMaW5rID0gTGluay0+Rm9yd2FyZExp bms7DQo+ID4gKyAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAgICAg IH0gZWxzZSBpZiAoVHlwZSA9PSBBbGxvY2F0ZUFkZHJlc3MpIHsNCj4gPiArICAgICAgICBpZiAo KEdjZEVudHJ5LT5CYXNlQWRkcmVzcyA+ICpNZW1vcnkpIHx8IChHY2RFbnRyeS0+RW5kQWRkcmVz cyA8ICpNZW1vcnkgKyBBY2NlcHRTaXplIC0gMSkpIHsNCj4gPiArICAgICAgICAgIExpbmsgPSBM aW5rLT5Gb3J3YXJkTGluazsNCj4gPiArICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAg IH0NCj4gPiArICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgLy8gSXMg dGhlIGVudHJ5IGJpZyBlbm91Z2g/DQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIGlmIChBY2Nl cHRTaXplIDw9IEdjZEVudHJ5LT5FbmRBZGRyZXNzIC0gR2NkRW50cnktPkJhc2VBZGRyZXNzICsg MSkgew0KPiA+ICsgICAgICAgIFVuYWNjZXB0ZWRFbnRyeSA9ICpHY2RFbnRyeTsNCj4gPiArICAg ICAgICBpZiAoVHlwZSAhPSBBbGxvY2F0ZUFkZHJlc3MpIHsNCj4gPiArICAgICAgICAgIFN0YXJ0 ID0gVW5hY2NlcHRlZEVudHJ5LkJhc2VBZGRyZXNzOw0KPiA+ICsgICAgICAgICAgRW5kICAgPSBV bmFjY2VwdGVkRW50cnkuQmFzZUFkZHJlc3MgKyBBY2NlcHRTaXplIC0gMTsNCj4gPiArICAgICAg ICB9DQo+ID4gKw0KPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICB9DQo+ID4gKyAgICB9 DQo+ID4gKw0KPiA+ICsgICAgTGluayA9IExpbmstPkZvcndhcmRMaW5rOw0KPiA+ICsgIH0NCj4g PiArDQo+ID4gKyAgaWYgKExpbmsgPT0gJm1HY2RNZW1vcnlTcGFjZU1hcCkgew0KPiA+ICsgICAg cmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8N Cj4gPiArICAvLyBBY2NlcHQgbWVtb3J5IHVzaW5nIHRoZSBpbnRlcmZhY2UgcHJvdmlkZSBieSB0 aGUgcHJvdG9jb2wuDQo+ID4gKyAgLy8NCj4gPiArICBTdGF0dXMgPSBNZW1vcnlBY2NlcHRQcm90 b2NvbC0+QWNjZXB0TWVtb3J5IChNZW1vcnlBY2NlcHRQcm90b2NvbCwgU3RhcnQsIEFjY2VwdFNp emUpOw0KPiA+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgIHJldHVybiBF RklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAg Ly8gSWYgbWVtb3J5IGlzIGFjY2VwdGVkIHN1Y2Nlc3NmdWxseSwgcmVtb3ZlIHRoZSB0YXJnZXQg bWVtb3J5IHNwYWNlIGZyb20gR0NELg0KPiA+ICsgIC8vDQo+ID4gKyAgQ29yZVJlbW92ZU1lbW9y eVNwYWNlIChVbmFjY2VwdGVkRW50cnkuQmFzZUFkZHJlc3MsIFVuYWNjZXB0ZWRFbnRyeS5FbmRB ZGRyZXNzIC0NCj4gVW5hY2NlcHRlZEVudHJ5LkJhc2VBZGRyZXNzICsgMSk7DQo+ID4gKw0KPiA+ ICsgIC8vDQo+ID4gKyAgLy8gQWRkIHRoZSByZW1haW4gbG93ZXIgcGFydCBvZiB1bmFjY2VwdGVk IG1lbW9yeSB0byB0aGUNCj4gPiArICAvLyBHY2QgbWVtb3J5IHNwYWNlIGFuZCBtZW1vcnkgbWFw Lg0KPiA+ICsgIC8vDQo+ID4gKyAgaWYgKFN0YXJ0ID4gVW5hY2NlcHRlZEVudHJ5LkJhc2VBZGRy ZXNzKSB7DQo+ID4gKyAgICBDb3JlQWRkTWVtb3J5U3BhY2UgKA0KPiA+ICsgICAgICBFRklfR0NE X01FTU9SWV9UWVBFX1VOQUNDRVBURUQsDQo+ID4gKyAgICAgIFVuYWNjZXB0ZWRFbnRyeS5CYXNl QWRkcmVzcywNCj4gPiArICAgICAgU3RhcnQgLSBVbmFjY2VwdGVkRW50cnkuQmFzZUFkZHJlc3Ms DQo+ID4gKyAgICAgIFVuYWNjZXB0ZWRFbnRyeS5DYXBhYmlsaXRpZXMNCj4gPiArICAgICAgKTsN Cj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gVXBkYXRlIGFjY2VwdGVkIHBh cnQgb2YgdGhlIG1lbW9yeSBlbnRyeSB0byB0eXBlIG9mIEVmaUdjZE1lbW9yeVR5cGVTeXN0ZW1N ZW1vcnkNCj4gPiArICAvLyBhbmQgYWRkIHRoZSByYW5nZSB0byB0aGUgbWVtb3J5IG1hcC4NCj4g PiArICAvLw0KPiA+ICsgIENvcmVBZGRNZW1vcnlTcGFjZSAoDQo+ID4gKyAgICBFZmlHY2RNZW1v cnlUeXBlU3lzdGVtTWVtb3J5LA0KPiA+ICsgICAgU3RhcnQsDQo+ID4gKyAgICBBY2NlcHRTaXpl LA0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8vIEhhcmRjb2RlIG1lbW9yeSBzcGFjZSBhdHRyaWJ1 dGVzLg0KPiA+ICsgICAgLy8NCj4gPiArICAgIEVGSV9NRU1PUllfQ1BVX0NSWVBUTyB8IEVGSV9N RU1PUllfWFAgfCBFRklfTUVNT1JZX1JPIHwgRUZJX01FTU9SWV9SUA0KPiA+ICsgICAgKTsNCj4g PiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBBZGQgdGhlIHJlbWFpbiBoaWdoZXIgcGFydCBvZiB1 bmFjY2VwdGVkIG1lbW9yeSB0byB0aGUNCj4gPiArICAvLyBHY2QgbWVtb3J5IHNwYWNlIGFuZCBt ZW1vcnkgbWFwLg0KPiA+ICsgIC8vDQo+ID4gKyAgaWYgKFVuYWNjZXB0ZWRFbnRyeS5FbmRBZGRy ZXNzID4gRW5kKSB7DQo+ID4gKyAgICBDb3JlQWRkTWVtb3J5U3BhY2UgKA0KPiA+ICsgICAgICBF RklfR0NEX01FTU9SWV9UWVBFX1VOQUNDRVBURUQsDQo+ID4gKyAgICAgIEVuZCArIDEsDQo+ID4g KyAgICAgIFVuYWNjZXB0ZWRFbnRyeS5FbmRBZGRyZXNzIC0gRW5kLA0KPiA+ICsgICAgICBVbmFj Y2VwdGVkRW50cnkuQ2FwYWJpbGl0aWVzDQo+ID4gKyAgICAgICk7DQo+ID4gKyAgfQ0KPiA+ICsN Cj4gPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gKw0KPiA+ICsgI2Vsc2UNCj4gPiArDQo+ ID4gKyAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPiArDQo+ID4gKyAjZW5kaWYNCj4gPiAr fQ0KPiA+ICsNCj4gPiAgIC8qKg0KPiA+ICAgICBGaW5kIHVudGVzdGVkIGJ1dCBpbml0aWFsaXpl ZCBtZW1vcnkgcmVnaW9ucyBpbiBHQ0QgbWFwIGFuZCBjb252ZXJ0IHRoZW0gdG8gYmUgRFhFIGFs bG9jYXRhYmxlLg0KPiA+DQo+ID4gQEAgLTE0ODYsNiArMTY1NywyNSBAQCBDb3JlQWxsb2NhdGVQ YWdlcyAoDQo+ID4gICAgICAgICAgICAgICAgICAgTWVtb3J5LA0KPiA+ICAgICAgICAgICAgICAg ICAgIE5lZWRHdWFyZA0KPiA+ICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAjaWZkZWYgTURF X0NQVV9YNjQNCj4gPiArDQo+ID4gKyAgaWYgKFN0YXR1cyA9PSBFRklfT1VUX09GX1JFU09VUkNF Uykgew0KPiA+ICsgICAgU3RhdHVzID0gQWNjZXB0TWVtb3J5UmVzb3VyY2UgKFR5cGUsIE51bWJl ck9mUGFnZXMgPDwgRUZJX1BBR0VfU0hJRlQsIE1lbW9yeSk7DQo+ID4gKyAgICBpZiAoIUVGSV9F UlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgICBTdGF0dXMgPSBDb3JlSW50ZXJuYWxBbGxvY2F0 ZVBhZ2VzICgNCj4gPiArICAgICAgICAgICAgICAgICBUeXBlLA0KPiA+ICsgICAgICAgICAgICAg ICAgIE1lbW9yeVR5cGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgTnVtYmVyT2ZQYWdlcywNCj4g PiArICAgICAgICAgICAgICAgICBNZW1vcnksDQo+ID4gKyAgICAgICAgICAgICAgICAgTmVlZEd1 YXJkDQo+ID4gKyAgICAgICAgICAgICAgICAgKTsNCj4gPiArICAgIH0gZWxzZSB7DQo+ID4gKyAg ICAgIFN0YXR1cyA9IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KPiA+ICsgICAgfQ0KPiA+ICsgIH0N Cj4gPiArDQo+ID4gKyAjZW5kaWYNCj4gPiArDQo+ID4gICAgIGlmICghRUZJX0VSUk9SIChTdGF0 dXMpKSB7DQo+ID4gICAgICAgQ29yZVVwZGF0ZVByb2ZpbGUgKA0KPiA+ICAgICAgICAgKEVGSV9Q SFlTSUNBTF9BRERSRVNTKShVSU5UTilSRVRVUk5fQUREUkVTUyAoMCksDQo+ID4gZGlmZiAtLWdp dCBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUG9vbC5jIGIvTWRlTW9kdWxlUGtnL0NvcmUv RHhlL01lbS9Qb29sLmMNCj4gPiBpbmRleCA3YWFmNTAxNjAwY2YuLjllOGM4NjExYzFlZiAxMDA2 NDQNCj4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvTWVtL1Bvb2wuYw0KPiA+ICsrKyBi L01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NZW0vUG9vbC5jDQo+ID4gQEAgLTI3Myw2ICsyNzMsMjAg QEAgQ29yZUFsbG9jYXRlUG9vbCAoDQo+ID4gICAgIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4gPg0K PiA+ICAgICBTdGF0dXMgPSBDb3JlSW50ZXJuYWxBbGxvY2F0ZVBvb2wgKFBvb2xUeXBlLCBTaXpl LCBCdWZmZXIpOw0KPiA+ICsNCj4gPiArICNpZmRlZiBNREVfQ1BVX1g2NA0KPiA+ICsNCj4gPiAr ICBpZiAoU3RhdHVzID09IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTKSB7DQo+ID4gKyAgICBTdGF0dXMg PSBBY2NlcHRNZW1vcnlSZXNvdXJjZSAoQWxsb2NhdGVBbnlQYWdlcywgU2l6ZSwgTlVMTCk7DQo+ ID4gKyAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgICBTdGF0dXMgPSBD b3JlSW50ZXJuYWxBbGxvY2F0ZVBvb2wgKFBvb2xUeXBlLCBTaXplLCBCdWZmZXIpOw0KPiA+ICsg ICAgfSBlbHNlIHsNCj4gPiArICAgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+ ID4gKyAgICB9DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICNlbmRpZg0KPiA+ICsNCj4gPiAgICAg aWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiAgICAgICBDb3JlVXBkYXRlUHJvZmlsZSAo DQo+ID4gICAgICAgICAoRUZJX1BIWVNJQ0FMX0FERFJFU1MpKFVJTlROKVJFVFVSTl9BRERSRVNT ICgwKSwNCj4gDQo+IA0KPiANCj4gDQoNCg==