From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.5171.1630579987202377443 for ; Thu, 02 Sep 2021 03:53:07 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=SQu+NL3R; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10094"; a="218778249" X-IronPort-AV: E=Sophos;i="5.84,372,1620716400"; d="scan'208";a="218778249" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Sep 2021 03:53:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,372,1620716400"; d="scan'208";a="689029078" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga006.fm.intel.com with ESMTP; 02 Sep 2021 03:53:05 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.2242.12; Thu, 2 Sep 2021 03:53:05 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 2 Sep 2021 03:53:05 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) 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.2242.10; Thu, 2 Sep 2021 03:53:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cPiB7l0guz/2HkTgMrfUIQ8croJO5LEn4EuhMIow5rO1BM8e/rHXoCxAR9OJtM0wdtIH8iEA3JQaRTKypRylNaDnco7pgRkNWB4uP1WKr1rwXLiDH2cRXv7eOPOUrxjZBc567D3uzfjb229RJcOqHI5DAO4iv5lmzt00qMDHa6oYgXZAduDYzz3lEQoJ7qQ5HzJsdmAmIlnsn2R7cGZX4Ck0nVKfivVwcnRmRh+L9J+owulC3jApz5Zm+jpRBGRJ+KkhAFhj6Lnc411luBKh+iM9o49XY4oFPdhBVNZibU/FDc81uSi4d0lT0VcLBetAVFgs7aXCDbnZOozYmupohA== 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; bh=LcP/Ff8BKf1Mxai02+CzVP+e6PVLva95K3HrmcEjQwE=; b=M1wyJGFiGuyKqnPPl0uq6THlt719EGAVm6q6Z/IEjQkVIbnNWU2msWBiuz+n8ykZ1q+121PqX8evxFxIEiBrhyFOC9ymz/li8hdWrMcnhA6Mt/LVhDzO5IO+4pOdCeoEAzT8oWAOkGQ8jzRG2SaLsecZsOqNGjqLHeEtz73Bhiqz1HbfjKuRYx7NBQM8vAaE3DRVduGRdMItndgqcfsnv2WzbvW7TXNCqR33rA/AcQ/3FC1b3jTch/Mh9NZoL0Lck56JFof8t3jvU8EzfYuMLYRKEkJhWN9cjiJDWSSefOnTxY2EiAfyE1sK/JwG9BrpPyNXlwxHSFHsWSssveRXsw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LcP/Ff8BKf1Mxai02+CzVP+e6PVLva95K3HrmcEjQwE=; b=SQu+NL3R3jtrZ8SyS27ExqLPFiPrByR7VGVDmVjeE3Z1gVyQlzd5uPNc1vWd5t9OBEgtgUBzePtkB7xZnTxzgaF1gTUNMDRS2iLHtLaYVmQD3VvUgt9Q2YSS9XT/lJtCYrMQ55IralZRhep902G4f1wJyDqGkV/r9X9kE4j00NU= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB4852.namprd11.prod.outlook.com (2603:10b6:303:9f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.19; Thu, 2 Sep 2021 10:53:03 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::80e0:3a42:500c:42bf]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::80e0:3a42:500c:42bf%3]) with mapi id 15.20.4457.025; Thu, 2 Sep 2021 10:53:03 +0000 From: "Ni, Ray" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Wu, Hao A" , "Dong, Eric" , Vitaly Cheptsov Subject: Re: [PATCH 1/1] MdeModulePkg: Move PiSmmCoreMemoryAllocationLib into PiSmmCore Thread-Topic: [PATCH 1/1] MdeModulePkg: Move PiSmmCoreMemoryAllocationLib into PiSmmCore Thread-Index: AQHXlsastcK3JgT2tEK7dKFjxHhEr6uOo3WQgAAx4ACAAcktMA== Date: Thu, 2 Sep 2021 10:53:03 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: posteo.de; dkim=none (message not signed) header.d=none;posteo.de; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1e77b26b-1e3a-4dfe-b9ac-08d96dffd6c7 x-ms-traffictypediagnostic: CO1PR11MB4852: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GdSWMIYecjikp4sb4lfs3jsCM9mSE2KekSkEKW8QuLfbGwhzLF9CT9wgEp2vxwsFLqLSWvDLrLXDVsYo7sVDMkN30yPYCGE+xCCFmAnM1TkBg2i3ZRahLrkgBG61I2vMkVgUQO4TMTOHgtCDz0Mz1BGmUog1lZLXM0RTQD53KDYyZZu9hDhttRBhqAfl1DEnCniXo8BdkRvt1TmzbVd2br389/ViPW1u07lD1R+FpDZx0xVT2h06bBQfVPoJwFLD9Gh/760r6aGAusSg9csMwv5+kcC2uIBW/YA8YeATuUTa4vRBxCYxqHl0u2PXLJoAa8eEd/ymws0DHJ2tnknzJqwYCAQ+7HXuDbJZawfppLkPf/TB6KXIuovuAcraCUWDsdCh3iMVGbp9XNGwuMjF78frNwFl1pcmAhT7nhPP6DW4pbdI8js7rY5X0z/nI7C6jTL5jf27ctfGo85xuBR7zHQ/uajQAJj9rTtgOaZK/WOjJn8UgEmndgX2ga9Vw8dKeIoQs7GcoIWMGDYayGJW5OH0jACtpZQa8hiv7EjaTZZvXT3w/iJks7dPXasqoMFXNmFjYeEHOA57JOwJ+PXMTqOJIPHdTCqlmhclUWArCi5ehKBYHxkb5xjmTiCZjLgTs/teDERRH6C4EYyOxyYYaf5+lzl951fcrVWddnVEolibwZhbtv3AL551TfuevvvYuLs5komBLPdqSKhc4HQUvV6yBHXD94FobujxwqC1hmc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(136003)(376002)(39860400002)(346002)(396003)(366004)(186003)(71200400001)(7696005)(38070700005)(66574015)(83380400001)(478600001)(26005)(53546011)(6506007)(86362001)(30864003)(66446008)(66946007)(64756008)(38100700002)(5660300002)(66556008)(66476007)(52536014)(122000001)(76116006)(4326008)(2906002)(8936002)(33656002)(8676002)(9686003)(55016002)(110136005)(54906003)(316002)(213903007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L0tGV3AyT0NGUHFyWGZ6V3N5MjdiamVaNEtKb1JKVlIvVHBxaFdPdzNUajdD?= =?utf-8?B?ekcrQjJqNHJEb001QTlqd3ZEVTEyQU04VHlEU29vbHhIMUtpWEV4V0hzTEo1?= =?utf-8?B?TEhIOVlaNXFIZDdlWE5DZWRxaTEvUHQ2eHdqZVJpUE9oWCtPVlVHdjBXMzIy?= =?utf-8?B?RWhPaS9PeTVLVUtZZjk2eVdDTSt6MFdkaGNJNHFCRlhuNm8xaEpvV2t4N2dI?= =?utf-8?B?a0cxSVR5UHhwZko4dDlrUmhsZi8zdWJBTlIzcHE3LzJRNW1WbXllSERQc2d5?= =?utf-8?B?ZHJBVlZJUnJKMUpJRW1mTnROUnR2aUlxa2FJY0h3K25NblBVcnpIVHpUTVdB?= =?utf-8?B?SEtxenRWUjdNUVJpeWgxM0dpNWFRMUR4dGw0WnZKTHh6akt4bUEzV2VZS0tY?= =?utf-8?B?R0hUaStNS2VQQzAwUE1wRjZlUUdjTzFEdlc0NS9Ic20zU1NEQWFsdVQvRWpL?= =?utf-8?B?aFRzdllqL2dkY1hOMkRrK285clJleHUzMWNvNTJ1RHV6cndxc1ROK21XVEdP?= =?utf-8?B?QTBaMDlSMXh0S0RJS1hkM1I0SjRPa1RNNVhyYkVZM21QUjU0N2J3ZExYYUdE?= =?utf-8?B?ZUtTWllkZ3F0ellBajVaZTdGZ2tzQkxvYjRtVFBQWW5Id3lMYXJQNG1vOHIw?= =?utf-8?B?N3huYnZ5cVF0dUszTC9JbDd6Z2RLcW13QkdSNnQ0ZlVLN3VKTXE2cTdxWkEv?= =?utf-8?B?UVJyS2ZyUTlqbm53bHRmVEJEdXRuSGlHVUsrcEpBUDBLR0g3UUpvYnVibWRk?= =?utf-8?B?dm9lZktDVFdjUmtOZjFIaG5INUZYVW9zK1hwSituZ0VQMUYrK1VJdHYyM1g0?= =?utf-8?B?ZUdmbndPVXc5cHF3VzRwS0lOYURpcGcwMVZmVzNzWTlCQkVacnRSbDEvV2Nq?= =?utf-8?B?M2F6UlU5elh4b1FjZXJKMFV6ejNzYXhIcnZsOE14Z1Q5cDR6SXZVVTA4RnFh?= =?utf-8?B?Q2o5eWFhLzFObmFiRzg0Q2hZRnJwU2RHMWVCMWxVSEFzUlp6eEdHNmtZbUY2?= =?utf-8?B?V1NKYlJGc0ZLSm4wU0JpTEJpYnpkMHZyV0hVY0RqQVRHVmZwbXJpaTRwMFNJ?= =?utf-8?B?eC9BUHA1K0pod0pzMVVsL1J0RmkwdnFVKzR0Y1dSTmdTL3oxL05DckVZTURP?= =?utf-8?B?MUtXSlNoaStqQXh6YytJUW1CUnl5MzRUQ3BKNGdiMkJHaVFaMmd6dXV5Q2Ra?= =?utf-8?B?MnozNTVOcW1vSHBqTGYxaEp5SHltQ2VqcU4rOUJKQzZ3VXVIdTBENmlFYWta?= =?utf-8?B?MnFNTk5Ybng2MG1QMzVRNzJnL1NmcXNxenZPV0ppUlZ0TVNoQ2MzenF2MnZX?= =?utf-8?B?RlpiMUc3em5mc2MzczZITWM3eUg5dU56SFRMZEpNS3hCN2JzSDQwQW5Cc01p?= =?utf-8?B?U3R6SHR3cXFjaHMwUi9McFYzejBVSzlwOHhHLzc4bkI4MENrQUpFRE4wci8w?= =?utf-8?B?anFyZmNIVVdBaThDL1Nka3FmdHJybkJmWnI5cDFONTFuMkxUNlRKcDA1cWdN?= =?utf-8?B?MWJCY3FvOTNSVEJta3hPcTE5Ny9DaERiRHFER08wWE5XUnl3b01sL0NZZ0xR?= =?utf-8?B?dnpVcTgyNWxxYXZVVnVtbFJ2TU1IblpFb2tSY1ZQdHVUUFd4WFVVSW1Za2ox?= =?utf-8?B?MkY2d1ozOVBWTE5DUVpvUVVrd1BhNHBqUDRrSVZYK0pCMU1EbmJ4M3JVQzFG?= =?utf-8?B?UUdjMzlseEJLYWpYTkJxS0pCTU5mcFhCV2QzZmdWNmlzVG5OVllDLzhrTnpL?= =?utf-8?Q?H/gkZTExfFuv0zFq5tLKOSau1GPO+z6GjOfoF92?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e77b26b-1e3a-4dfe-b9ac-08d96dffd6c7 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Sep 2021 10:53:03.5484 (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: OeFHvoFh+mbr5EkB534VbqL2tiLSgE26LN1AZx2nITz6nKVmVZQUUPqTDspeZ/l94o0cOFiNhkyPLvvvNj0Aiw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4852 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 T3ZlcmFsbCwgdGhlIHBhdGNoIGxvb2tzIGdvb2QgdG8gbWUuDQpDYW4geW91IHJlbW92ZSB0aGUg IkNPTlNUUlVDVE9SICAgICAgICAgICAgICAgICAgICA9IFBpU21tQ29yZU1lbW9yeUFsbG9jYXRp b25MaWJDb25zdHJ1Y3RvciIgZnJvbSBQaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uUHJvZmlsZUxp Yi5pbmY/DQpXaXRoIHRoYXQgY2hhbmdlLCBSZXZpZXdlZC1ieTogUmF5IE5pIDxyYXkubmlAaW50 ZWwuY29tPg0KDQpNb3JlIHJlcGxpZXMgc3RhcnRlZCB3aXRoICJbcmF5XSIuDQoNCi0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBNYXJ2aW4gSMOkdXNlciA8bWhhZXVzZXJAcG9zdGVv LmRlPiANClNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDEsIDIwMjEgMzoxOCBQTQ0KVG86IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRl bC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgVml0YWx5IENoZXB0c292 IDx2aXQ5Njk2QHByb3Rvbm1haWwuY29tPg0KU3ViamVjdDogUmU6IFtQQVRDSCAxLzFdIE1kZU1v ZHVsZVBrZzogTW92ZSBQaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uTGliIGludG8gUGlTbW1Db3Jl DQoNCkhleSBSYXksDQoNClRoYW5rcyBmb3IgeW91ciByZXNwb25zZSENCg0KMSkgSXQgd291bGQg ZGlzcnVwdCBwbGF0Zm9ybSBidWlsZHMgdGhhdCB1c2UgdGhpcyBJTkYuDQpbcmF5XSBJIHNlZTop IEkgYWdyZWUgd2UgY2Fubm90IGJyZWFrIHBsYXRmb3JtcyB0aGF0IGxpc3QgdGhlIElORiBwYXRo IGluIERTQy4NCg0KDQoyKSBXZSdkIG5lZWQgYSBuZXcgbGlicmFyeSB0byBzYXRpc2Z5IE1lbW9y eUFsbG9jYXRpb25MaWIgZGVwZW5kZW5jaWVzLiANCklmIHVzaW5nIHRoZSBnZW5lcmljIFNNTSBv bmUsIGxpYnJhcmllcyBsaW5rZWQgYWdhaW5zdCB0aGUgY29yZSB3b3VsZCBzdGFydCB1c2luZyB0 aGUgaW5kaXJlY3QgdGFibGUgY2FsbHMgb3ZlciB0aGUgZGlyZWN0IGNhbGxzIGZvciBwcmFjdGlj YWxseSBubyByZWFzb24sIGF0IGxlYXN0IEkgc2VlIG5vbmUgYXQgdGhlIG1vbWVudC4NCltyYXld IEkgc2VlOikgRm9yIGV4YW1wbGUuIFVlZmlMaWIgbGlua2VkIGJ5IFBpU21tQ29yZSBkZXBlbmRz IG9uIE1lbW9yeUFsbG9jYXRpb25MaWIuIFdlIG5lZWQgdG8gYXQgbGVhc3QgcHJvdmlkZSBhIGR1 bW15IGxpYiBmb3IgaXQgdG8gcGFzcyB0aGUgZGVwZW5kZW5jeSBjaGVjayBmcm9tIGJhc2UgdG9v bHMuDQoNCltyYXldIEkgdGhvdWdodCB5b3UgY291bGQgbGV0IFBpU21tQ29yZSBkaXJlY3RseSBj YWxsIHRoZSBQaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uTGliQ29uc3RydWN0b3IgKCkgaW4gZW50 cnlwb2ludCB0byBlbGltaW5hdGUgdGhlIG5lZWRzIG9mIHJlZmVycmluZyB0aGUgY29uc3RydWN0 b3IgaW4gUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvbkxpYi5pbmYuDQogICAgICAgIEJ1dCB0aGVu IEkgcmVhbGl6ZWQgdGhhdCBjb25zdHJ1Y3RvcnMgb2Ygb3RoZXIgbGlicmFyaWVzIG1heSBjYWxs IEFsbG9jYXRlUGFnZXMvUG9vbCgpLiBDYWxsaW5nIFBpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25M aWJDb25zdHJ1Y3RvcigpIGluIGVudHJ5cG9pbnQgZm9yYmlkcyB0aG9zZSBtZW1vcnkgbGliIEFQ SSBjYWxscyBmcm9tIGNvbnN0cnVjdG9ycy4NCg0KTW9yZSBvciBsZXNzIEkgc2F3IG5vIHJlYXNv biB0byBkbyBpdCwgYXMgdGhpcyBpcyBhIGNoYW5nZSB0aGF0IG5lZWRzIG5vIHBsYXRmb3JtIG1h aW50YWluZXIgYXR0ZW50aW9uLCBidXQgaWYgeW91IGhhdmUgc3VnZ2VzdGlvbiBvbiBob3cgdG8g aW1wcm92ZSB0aGUgcGF0Y2gsIEknZCBiZSBvcGVuIHRvIGl0IG9mIGNvdXJzZS4NCg0KQmVzdCBy ZWdhcmRzLA0KTWFydmluDQoNCk9uIDAxLzA5LzIwMjEgMDY6MjEsIE5pLCBSYXkgd3JvdGU6DQo+ IE1hcnZpbiwNCj4gWW91ciBwYXRjaCBtb3ZlcyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gbGliIGlt cGxlbWVudGF0aW9uIHRvIFBpU21tQ29yZS4NCj4gQ2FuIHlvdSByZW1vdmUgdGhlIFBpU21tQ29y ZU1lbW9yeUFsbG9jYXRpb25MaWIuaW5mIGNvbXBsZXRlbHk/IChvciANCj4gd2hhdCBmb3JiaWRz IHlvdSByZW1vdmUgdGhpcyBsaWIgaW5zdGFuY2U/KQ0KPg0KPiBUaGFua3MsDQo+IFJheQ0KPg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJ2aW4gSMOkdXNlciA8bWhh ZXVzZXJAcG9zdGVvLmRlPg0KPiBTZW50OiBTdW5kYXksIEF1Z3VzdCAyMiwgMjAyMSAzOjU2IEFN DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmou d2FuZ0BpbnRlbC5jb20+OyBXdSwgSGFvIEEgDQo+IDxoYW8uYS53dUBpbnRlbC5jb20+OyBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheSANCj4gPHJheS5uaUBpbnRlbC5j b20+OyBWaXRhbHkgQ2hlcHRzb3YgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+DQo+IFN1YmplY3Q6 IFtQQVRDSCAxLzFdIE1kZU1vZHVsZVBrZzogTW92ZSBQaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9u TGliIA0KPiBpbnRvIFBpU21tQ29yZQ0KPg0KPiBQaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uTGli IGR1cGxpY2F0ZXMgcHJpdmF0ZSBkZWZpbml0aW9ucyBvZiANCj4gUGlTbW1Db3JlLCBuYW1lbHkg dGhlIFNNTV9DT1JFX1BSSVZBVEVfREFUQSBzdHJ1Y3R1cmUuIE1vdmUgdGhpcyBjb2RlIA0KPiBp bnRvIFBpU21tQ29yZSwgc28gdGhhdCB0aGUgc3RydWN0IGRlZmluaXRpb24gY2FuIGJlIGNvbnN1 bWVkIGRpcmVjdGx5IA0KPiBpbnN0ZWFkLg0KPg0KPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53 YW5nQGludGVsLmNvbT4NCj4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+IENj OiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBp bnRlbC5jb20+DQo+IENjOiBWaXRhbHkgQ2hlcHRzb3YgPHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+ DQo+IFNpZ25lZC1vZmYtYnk6IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+DQo+ IC0tLQ0KPiAgIE1kZU1vZHVsZVBrZy97TGlicmFyeS9QaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9u TGliL01lbW9yeUFsbG9jYXRpb25MaWIuYyA9PiBDb3JlL1BpU21tQ29yZS9NZW1vcnlBbGxvY2F0 aW9uLmN9IHwgICAzICstDQo+ICAgTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29y ZS5pbmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KPiAgIE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1BpU21t Q29yZU1lbW9yeUFsbG9jYXRpb25MaWIvUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvbkxpYi5pbmYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstDQo+ICAgTWRlTW9kdWxlUGtnL0xp YnJhcnkvUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvbkxpYi9QaVNtbUNvcmVNZW1vcnlBbGxvY2F0 aW9uUHJvZmlsZUxpYi5pbmYgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0NCj4gICBNZGVN b2R1bGVQa2cvTGlicmFyeS9QaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uTGliL1BpU21tQ29yZU1l bW9yeUFsbG9jYXRpb25TZXJ2aWNlcy5oICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4NSAt LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygr KSwgMTkwIGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IA0KPiBhL01kZU1vZHVsZVBrZy9M aWJyYXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWIvTWVtb3J5QWxsb2NhdGlvbkxpDQo+ IGIuYyBiL01kZU1vZHVsZVBrZy9Db3JlL1BpU21tQ29yZS9NZW1vcnlBbGxvY2F0aW9uLmMNCj4g c2ltaWxhcml0eSBpbmRleCA5NiUNCj4gcmVuYW1lIGZyb20gDQo+IE1kZU1vZHVsZVBrZy9MaWJy YXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWIvTWVtb3J5QWxsb2NhdGlvbkxpYi4NCj4g YyByZW5hbWUgdG8gTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL01lbW9yeUFsbG9jYXRpb24u Yw0KPiBpbmRleCBmZDIwYTc3OWNkY2MuLmZiOTkxNzRjOWQ4ZCAxMDA2NDQNCj4gLS0tIA0KPiBh L01kZU1vZHVsZVBrZy9MaWJyYXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWIvTWVtb3J5 QWxsb2NhdGlvbkxpDQo+IGIuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUv TWVtb3J5QWxsb2NhdGlvbi5jDQo+IEBAIC0yMiw3ICsyMiw4IEBADQo+ICAgI2luY2x1ZGUgPExp YnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+DQo+DQo+ICAgI2luY2x1ZGUgPExpYnJh cnkvQmFzZU1lbW9yeUxpYi5oPg0KPg0KPiAgICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+ DQo+DQo+IC0jaW5jbHVkZSAiUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvblNlcnZpY2VzLmgiDQo+ DQo+ICsjaW5jbHVkZSAiUGlTbW1Db3JlLmgiDQo+DQo+ICsjaW5jbHVkZSAiUGlTbW1Db3JlUHJp dmF0ZURhdGEuaCINCj4NCj4gICANCj4NCj4gICAjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlQcm9m aWxlTGliLmg+DQo+DQo+ICAgDQo+DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9Q aVNtbUNvcmUvUGlTbW1Db3JlLmluZiANCj4gYi9NZGVNb2R1bGVQa2cvQ29yZS9QaVNtbUNvcmUv UGlTbW1Db3JlLmluZg0KPiBpbmRleCBjOGJmYWUzODYwZmMuLjg1NjI4ZjkyNzEzNCAxMDA2NDQN Cj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29yZS5pbmYNCj4gKysr IGIvTWRlTW9kdWxlUGtnL0NvcmUvUGlTbW1Db3JlL1BpU21tQ29yZS5pbmYNCj4gQEAgLTM3LDYg KzM3LDcgQEAgW1NvdXJjZXNdDQo+ICAgICBTbWlIYW5kbGVyUHJvZmlsZS5jDQo+DQo+ICAgICBI ZWFwR3VhcmQuYw0KPg0KPiAgICAgSGVhcEd1YXJkLmgNCj4NCj4gKyAgTWVtb3J5QWxsb2NhdGlv bi5jDQo+DQo+ICAgDQo+DQo+ICAgW1BhY2thZ2VzXQ0KPg0KPiAgICAgTWRlUGtnL01kZVBrZy5k ZWMNCj4NCj4gZGlmZiAtLWdpdCANCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9QaVNtbUNvcmVN ZW1vcnlBbGxvY2F0aW9uTGliL1BpU21tQ29yZU1lbW9yeUFsbA0KPiBvY2F0aW9uTGliLmluZiAN Cj4gYi9NZGVNb2R1bGVQa2cvTGlicmFyeS9QaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uTGliL1Bp U21tQ29yZU1lbW9yeUFsbA0KPiBvY2F0aW9uTGliLmluZiBpbmRleCA1YzUxYzQ4YjBiMWUuLjg4 MTJjOTYwNDEwMyAxMDA2NDQNCj4gLS0tIA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1BpU21t Q29yZU1lbW9yeUFsbG9jYXRpb25MaWIvUGlTbW1Db3JlTWVtb3J5QWxsDQo+IG9jYXRpb25MaWIu aW5mDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9jYXRp b25MaWIvUGlTbW1Db3JlTWVtb3INCj4gKysrIHlBbGxvY2F0aW9uTGliLmluZg0KPiBAQCAtMTks NiArMTksOSBAQCBbRGVmaW5lc10NCj4gICAgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAg ICA9IDEuMA0KPg0KPiAgICAgUElfU1BFQ0lGSUNBVElPTl9WRVJTSU9OICAgICAgID0gMHgwMDAx MDAwQQ0KPg0KPiAgICAgTElCUkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0gTWVtb3J5QWxs b2NhdGlvbkxpYnxTTU1fQ09SRQ0KPg0KPiArICAjDQo+DQo+ICsgICMgVGhpcyBmdW5jdGlvbiBp cyBkZWZpbmVkIGluIFBpU21tQ29yZS4NCj4NCj4gKyAgIw0KPg0KPiAgICAgQ09OU1RSVUNUT1Ig ICAgICAgICAgICAgICAgICAgID0gUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvbkxpYkNvbnN0cnVj dG9yDQo+DQo+ICAgDQo+DQo+ICAgIw0KPg0KPiBAQCAtMjgsOCArMzEsNiBAQCBbRGVmaW5lc10N Cj4gICAjDQo+DQo+ICAgDQo+DQo+ICAgW1NvdXJjZXNdDQo+DQo+IC0gIE1lbW9yeUFsbG9jYXRp b25MaWIuYw0KPg0KPiAtICBQaVNtbUNvcmVNZW1vcnlBbGxvY2F0aW9uU2VydmljZXMuaA0KPg0K PiAgICAgUGlTbW1Db3JlTWVtb3J5UHJvZmlsZUxpYk51bGwuYw0KPg0KPiAgIA0KPg0KPiAgIFtQ YWNrYWdlc10NCj4NCj4gZGlmZiAtLWdpdCANCj4gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9QaVNt bUNvcmVNZW1vcnlBbGxvY2F0aW9uTGliL1BpU21tQ29yZU1lbW9yeUFsbA0KPiBvY2F0aW9uUHJv ZmlsZUxpYi5pbmYgDQo+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvUGlTbW1Db3JlTWVtb3J5QWxs b2NhdGlvbkxpYi9QaVNtbUNvcmVNZW1vcnlBbGwNCj4gb2NhdGlvblByb2ZpbGVMaWIuaW5mIGlu ZGV4IDg5NjU4YzBmNmNjYi4uYzNiOGE0ZmRjZTdiIDEwMDY0NA0KPiAtLS0gDQo+IGEvTWRlTW9k dWxlUGtnL0xpYnJhcnkvUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvbkxpYi9QaVNtbUNvcmVNZW1v cnlBbGwNCj4gb2NhdGlvblByb2ZpbGVMaWIuaW5mDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJy YXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWIvUGlTbW1Db3JlTWVtb3INCj4gKysrIHlB bGxvY2F0aW9uUHJvZmlsZUxpYi5pbmYNCj4gQEAgLTE5LDYgKzE5LDkgQEAgW0RlZmluZXNdDQo+ ICAgICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4NCj4gICAgIFBJX1NQ RUNJRklDQVRJT05fVkVSU0lPTiAgICAgICA9IDB4MDAwMTAwMEENCj4NCj4gICAgIExJQlJBUllf Q0xBU1MgICAgICAgICAgICAgICAgICA9IE1lbW9yeUFsbG9jYXRpb25MaWJ8U01NX0NPUkUNCj4N Cj4gKyAgIw0KPg0KPiArICAjIFRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lZCBpbiBQaVNtbUNvcmUu DQo+DQo+ICsgICMNCj4NCj4gICAgIENPTlNUUlVDVE9SICAgICAgICAgICAgICAgICAgICA9IFBp U21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWJDb25zdHJ1Y3Rvcg0KPg0KPiAgICAgTElCUkFSWV9D TEFTUyAgICAgICAgICAgICAgICAgID0gTWVtb3J5UHJvZmlsZUxpYnxTTU1fQ09SRQ0KPg0KPiAg ICAgQ09OU1RSVUNUT1IgICAgICAgICAgICAgICAgICAgID0gUGlTbW1Db3JlTWVtb3J5UHJvZmls ZUxpYkNvbnN0cnVjdG9yDQo+DQo+IEBAIC0zMCw4ICszMyw2IEBAIFtEZWZpbmVzXQ0KPiAgICMN Cj4NCj4gICANCj4NCj4gICBbU291cmNlc10NCj4NCj4gLSAgTWVtb3J5QWxsb2NhdGlvbkxpYi5j DQo+DQo+IC0gIFBpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25TZXJ2aWNlcy5oDQo+DQo+ICAgICBQ aVNtbUNvcmVNZW1vcnlQcm9maWxlTGliLmMNCj4NCj4gICAgIFBpU21tQ29yZU1lbW9yeVByb2Zp bGVTZXJ2aWNlcy5oDQo+DQo+ICAgDQo+DQo+IEBAIC00Myw2ICs0NCw3IEBAIFtMaWJyYXJ5Q2xh c3Nlc10NCj4gICAgIERlYnVnTGliDQo+DQo+ICAgICBCYXNlTWVtb3J5TGliDQo+DQo+ICAgICBV ZWZpQm9vdFNlcnZpY2VzVGFibGVMaWINCj4NCj4gKyAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KPg0K PiAgIA0KPg0KPiAgIFtHdWlkc10NCj4NCj4gICAgIGdFZGtpaU1lbW9yeVByb2ZpbGVHdWlkICAg IyMgU09NRVRJTUVTX0NPTlNVTUVTICAgIyMgR1VJRCAjIExvY2F0ZSBwcm90b2NvbA0KPg0KPiBk aWZmIC0tZ2l0IA0KPiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9j YXRpb25MaWIvUGlTbW1Db3JlTWVtb3J5QWxsDQo+IG9jYXRpb25TZXJ2aWNlcy5oIA0KPiBiL01k ZU1vZHVsZVBrZy9MaWJyYXJ5L1BpU21tQ29yZU1lbW9yeUFsbG9jYXRpb25MaWIvUGlTbW1Db3Jl TWVtb3J5QWxsDQo+IG9jYXRpb25TZXJ2aWNlcy5oDQo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCA3ODlmY2YyYzAxZWEuLjAwMDAwMDAwMDAwMA0KPiAtLS0gDQo+IGEvTWRlTW9k dWxlUGtnL0xpYnJhcnkvUGlTbW1Db3JlTWVtb3J5QWxsb2NhdGlvbkxpYi9QaVNtbUNvcmVNZW1v cnlBbGwNCj4gb2NhdGlvblNlcnZpY2VzLmgNCj4gKysrIC9kZXYvbnVsbA0KPiBAQCAtMSwxODUg KzAsMCBAQA0KPiAtLyoqIEBmaWxlDQo+DQo+IC0gIENvbnRhaW5zIGZ1bmN0aW9uIHByb3RvdHlw ZXMgZm9yIE1lbW9yeSBTZXJ2aWNlcyBpbiB0aGUgU01NIENvcmUuDQo+DQo+IC0NCj4NCj4gLSAg VGhpcyBoZWFkZXIgZmlsZSBib3Jyb3dzIHRoZSBQaVNtbUNvcmUgTWVtb3J5IEFsbG9jYXRpb24g c2VydmljZXMgDQo+IGFzIHRoZSBwcmltaXRpdmUNCj4NCj4gLSAgZm9yIG1lbW9yeSBhbGxvY2F0 aW9uLg0KPg0KPiAtDQo+DQo+IC0gIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTgsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiByZXNlcnZlZC48QlI+DQo+DQo+IC0gIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+DQo+IC0NCj4NCj4gLSoqLw0K Pg0KPiAtDQo+DQo+IC0jaWZuZGVmIF9QSV9TTU1fQ09SRV9NRU1PUllfQUxMT0NBVElPTl9TRVJW SUNFU19IXw0KPg0KPiAtI2RlZmluZSBfUElfU01NX0NPUkVfTUVNT1JZX0FMTE9DQVRJT05fU0VS VklDRVNfSF8NCj4NCj4gLQ0KPg0KPiAtLy8NCj4NCj4gLS8vIEl0IHNob3VsZCBiZSBhbGlnbmVk IHdpdGggdGhlIGRlZmluaXRpb24gaW4gUGlTbW1Db3JlLg0KPg0KPiAtLy8NCj4NCj4gLXR5cGVk ZWYgc3RydWN0IHsNCj4NCj4gLSAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICBTaWdu YXR1cmU7DQo+DQo+IC0NCj4NCj4gLSAgLy8vDQo+DQo+IC0gIC8vLyBUaGUgSW1hZ2VIYW5kbGUg cGFzc2VkIGludG8gdGhlIGVudHJ5IHBvaW50IG9mIHRoZSBTTU0gSVBMLiAgDQo+IFRoaXMgSW1h Z2VIYW5kbGUNCj4NCj4gLSAgLy8vIGlzIHVzZWQgYnkgdGhlIFNNTSBDb3JlIHRvIGZpbGwgaW4g dGhlIFBhcmVudEltYWdlSGFuZGxlIGZpZWxkIA0KPiBvZiB0aGUgTG9hZGVkDQo+DQo+IC0gIC8v LyBJbWFnZSBQcm90b2NvbCBmb3IgZWFjaCBTTU0gRHJpdmVyIHRoYXQgaXMgZGlzcGF0Y2hlZCBi eSB0aGUgU01NIENvcmUuDQo+DQo+IC0gIC8vLw0KPg0KPiAtICBFRklfSEFORExFICAgICAgICAg ICAgICAgICAgICAgIFNtbUlwbEltYWdlSGFuZGxlOw0KPg0KPiAtDQo+DQo+IC0gIC8vLw0KPg0K PiAtICAvLy8gVGhlIG51bWJlciBvZiBTTVJBTSByYW5nZXMgcGFzc2VkIGZyb20gdGhlIFNNTSBJ UEwgdG8gdGhlIFNNTSANCj4gQ29yZS4gIFRoZSBTTU0NCj4NCj4gLSAgLy8vIENvcmUgdXNlcyB0 aGVzZSByYW5nZXMgb2YgU01SQU0gdG8gaW5pdGlhbGl6ZSB0aGUgU01NIENvcmUgbWVtb3J5IG1h bmFnZXIuDQo+DQo+IC0gIC8vLw0KPg0KPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNtcmFtUmFuZ2VDb3VudDsNCj4NCj4gLQ0KPg0KPiAtICAvLy8NCj4NCj4gLSAgLy8vIEEg dGFibGUgb2YgU01SQU0gcmFuZ2VzIHBhc3NlZCBmcm9tIHRoZSBTTU0gSVBMIHRvIHRoZSBTTU0g DQo+IENvcmUuICBUaGUgU01NDQo+DQo+IC0gIC8vLyBDb3JlIHVzZXMgdGhlc2UgcmFuZ2VzIG9m IFNNUkFNIHRvIGluaXRpYWxpemUgdGhlIFNNTSBDb3JlIG1lbW9yeSBtYW5hZ2VyLg0KPg0KPiAt ICAvLy8NCj4NCj4gLSAgRUZJX1NNUkFNX0RFU0NSSVBUT1IgICAgICAgICAgICAqU21yYW1SYW5n ZXM7DQo+DQo+IC0NCj4NCj4gLSAgLy8vDQo+DQo+IC0gIC8vLyBUaGUgU01NIEZvdW5kYXRpb24g RW50cnkgUG9pbnQuICBUaGUgU01NIENvcmUgZmlsbHMgaW4gdGhpcyANCj4gZmllbGQgd2hlbiB0 aGUNCj4NCj4gLSAgLy8vIFNNTSBDb3JlIGlzIGluaXRpYWxpemVkLiAgVGhlIFNNTSBJUEwgaXMg cmVzcG9uc2JpbGUgZm9yIA0KPiByZWdpc3RlcmluZyB0aGlzIGVudHJ5DQo+DQo+IC0gIC8vLyBw b2ludCB3aXRoIHRoZSBTTU0gQ29uZmlndXJhdGlvbiBQcm90b2NvbC4gIFRoZSBTTU0gDQo+IENv bmZpZ3VyYXRpb24gUHJvdG9jb2wgbWF5DQo+DQo+IC0gIC8vLyBub3QgYmUgYXZhaWxhYmxlIGF0 IHRoZSB0aW1lIHRoZSBTTU0gSVBMIGFuZCBTTU0gQ29yZSBhcmUgDQo+IHN0YXJ0ZWQsIHNvIHRo ZSBTTU0gSVBMDQo+DQo+IC0gIC8vLyBzZXRzIHVwIGEgcHJvdG9jb2wgbm90aWZpY2F0aW9uIG9u IHRoZSBTTU0gQ29uZmlndXJhdGlvbiANCj4gUHJvdG9jb2wgYW5kIHJlZ2lzdGVycw0KPg0KPiAt ICAvLy8gdGhlIFNNTSBGb3VuZGF0aW9uIEVudHJ5IFBvaW50IGFzIHNvb24gYXMgdGhlIFNNTSBD b25maWd1cmF0aW9uIA0KPiBQcm90b2NvbCBpcw0KPg0KPiAtICAvLy8gYXZhaWxhYmxlLg0KPg0K PiAtICAvLy8NCj4NCj4gLSAgRUZJX1NNTV9FTlRSWV9QT0lOVCAgICAgICAgICAgICBTbW1FbnRy eVBvaW50Ow0KPg0KPiAtDQo+DQo+IC0gIC8vLw0KPg0KPiAtICAvLy8gQm9vbGVhbiBmbGFnIHNl dCB0byBUUlVFIHdoaWxlIGFuIFNNSSBpcyBiZWluZyBwcm9jZXNzZWQgYnkgdGhlIFNNTSBDb3Jl Lg0KPg0KPiAtICAvLy8NCj4NCj4gLSAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBT bW1FbnRyeVBvaW50UmVnaXN0ZXJlZDsNCj4NCj4gLQ0KPg0KPiAtICAvLy8NCj4NCj4gLSAgLy8v IEJvb2xlYW4gZmxhZyBzZXQgdG8gVFJVRSB3aGlsZSBhbiBTTUkgaXMgYmVpbmcgcHJvY2Vzc2Vk IGJ5IHRoZSBTTU0gQ29yZS4NCj4NCj4gLSAgLy8vDQo+DQo+IC0gIEJPT0xFQU4gICAgICAgICAg ICAgICAgICAgICAgICAgSW5TbW07DQo+DQo+IC0NCj4NCj4gLSAgLy8vDQo+DQo+IC0gIC8vLyBU aGlzIGZpZWxkIGlzIHNldCBieSB0aGUgU01NIENvcmUgdGhlbiB0aGUgU01NIENvcmUgaXMgDQo+ IGluaXRpYWxpemVkLiAgVGhpcyBmaWVsZCBpcw0KPg0KPiAtICAvLy8gdXNlZCBieSB0aGUgU01N IEJhc2UgMiBQcm90b2NvbCBhbmQgU01NIENvbW11bmljYXRpb24gUHJvdG9jb2wgDQo+IGltcGxl bWVudGF0aW9ucyBpbg0KPg0KPiAtICAvLy8gdGhlIFNNTSBJUEwuDQo+DQo+IC0gIC8vLw0KPg0K PiAtICBFRklfU01NX1NZU1RFTV9UQUJMRTIgICAgICAgICAgICpTbXN0Ow0KPg0KPiAtDQo+DQo+ IC0gIC8vLw0KPg0KPiAtICAvLy8gVGhpcyBmaWVsZCBpcyB1c2VkIGJ5IHRoZSBTTU0gQ29tbXVu aWNhdGlvb24gUHJvdG9jb2wgdG8gcGFzcyBhIA0KPiBidWZmZXIgaW50bw0KPg0KPiAtICAvLy8g YSBzb2Z0d2FyZSBTTUkgaGFuZGxlciBhbmQgZm9yIHRoZSBzb2Z0d2FyZSBTTUkgaGFuZGxlciB0 byBwYXNzIA0KPiBhIGJ1ZmZlciBiYWNrIHRvDQo+DQo+IC0gIC8vLyB0aGUgY2FsbGVyIG9mIHRo ZSBTTU0gQ29tbXVuaWNhdGlvbiBQcm90b2NvbC4NCj4NCj4gLSAgLy8vDQo+DQo+IC0gIFZPSUQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKkNvbW11bmljYXRpb25CdWZmZXI7DQo+DQo+IC0N Cj4NCj4gLSAgLy8vDQo+DQo+IC0gIC8vLyBUaGlzIGZpZWxkIGlzIHVzZWQgYnkgdGhlIFNNTSBD b21tdW5pY2F0aW9vbiBQcm90b2NvbCB0byBwYXNzIA0KPiB0aGUgc2l6ZSBvZiBhIGJ1ZmZlciwN Cj4NCj4gLSAgLy8vIGluIGJ5dGVzLCBpbnRvIGEgc29mdHdhcmUgU01JIGhhbmRsZXIgYW5kIGZv ciB0aGUgc29mdHdhcmUgU01JIA0KPiBoYW5kbGVyIHRvIHBhc3MgdGhlDQo+DQo+IC0gIC8vLyBz aXplLCBpbiBieXRlcywgb2YgYSBidWZmZXIgYmFjayB0byB0aGUgY2FsbGVyIG9mIHRoZSBTTU0g Q29tbXVuaWNhdGlvbiBQcm90b2NvbC4NCj4NCj4gLSAgLy8vDQo+DQo+IC0gIFVJTlROICAgICAg ICAgICAgICAgICAgICAgICAgICAgQnVmZmVyU2l6ZTsNCj4NCj4gLQ0KPg0KPiAtICAvLy8NCj4N Cj4gLSAgLy8vIFRoaXMgZmllbGQgaXMgdXNlZCBieSB0aGUgU01NIENvbW11bmljYXRpb24gUHJv dG9jb2wgdG8gcGFzcyANCj4gdGhlIHJldHVybiBzdGF0dXMgZnJvbQ0KPg0KPiAtICAvLy8gYSBz b2Z0d2FyZSBTTUkgaGFuZGxlciBiYWNrIHRvIHRoZSBjYWxsZXIgb2YgdGhlIFNNTSBDb21tdW5p Y2F0aW9uIFByb3RvY29sLg0KPg0KPiAtICAvLy8NCj4NCj4gLSAgRUZJX1NUQVRVUyAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm5TdGF0dXM7DQo+DQo+IC0NCj4NCj4gLSAgRUZJX1BIWVNJQ0FM X0FERFJFU1MgICAgICAgICAgICBQaVNtbUNvcmVJbWFnZUJhc2U7DQo+DQo+IC0gIFVJTlQ2NCAg ICAgICAgICAgICAgICAgICAgICAgICAgUGlTbW1Db3JlSW1hZ2VTaXplOw0KPg0KPiAtICBFRklf UEhZU0lDQUxfQUREUkVTUyAgICAgICAgICAgIFBpU21tQ29yZUVudHJ5UG9pbnQ7DQo+DQo+IC19 IFNNTV9DT1JFX1BSSVZBVEVfREFUQTsNCj4NCj4gLQ0KPg0KPiAtLyoqDQo+DQo+IC0gIENhbGxl ZCB0byBpbml0aWFsaXplIHRoZSBtZW1vcnkgc2VydmljZS4NCj4NCj4gLQ0KPg0KPiAtICBAcGFy YW0gICBTbXJhbVJhbmdlQ291bnQgICAgICAgTnVtYmVyIG9mIFNNUkFNIFJlZ2lvbnMNCj4NCj4g LSAgQHBhcmFtICAgU21yYW1SYW5nZXMgICAgICAgICAgIFBvaW50ZXIgdG8gU01SQU0gRGVzY3Jp cHRvcnMNCj4NCj4gLQ0KPg0KPiAtKiovDQo+DQo+IC1WT0lEDQo+DQo+IC1TbW1Jbml0aWFsaXpl TWVtb3J5U2VydmljZXMgKA0KPg0KPiAtICBJTiBVSU5UTiAgICAgICAgICAgICAgICAgU21yYW1S YW5nZUNvdW50LA0KPg0KPiAtICBJTiBFRklfU01SQU1fREVTQ1JJUFRPUiAgKlNtcmFtUmFuZ2Vz DQo+DQo+IC0gICk7DQo+DQo+IC0NCj4NCj4gLS8qKg0KPg0KPiAtICBBbGxvY2F0ZXMgcGFnZXMg ZnJvbSB0aGUgbWVtb3J5IG1hcC4NCj4NCj4gLQ0KPg0KPiAtICBAcGFyYW0gIFR5cGUgICAgICAg ICAgICAgICAgICAgVGhlIHR5cGUgb2YgYWxsb2NhdGlvbiB0byBwZXJmb3JtDQo+DQo+IC0gIEBw YXJhbSAgTWVtb3J5VHlwZSAgICAgICAgICAgICBUaGUgdHlwZSBvZiBtZW1vcnkgdG8gdHVybiB0 aGUgYWxsb2NhdGVkIHBhZ2VzDQo+DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnRvDQo+DQo+IC0gIEBwYXJhbSAgTnVtYmVyT2ZQYWdlcyAgICAgICAgICBUaGUgbnVtYmVy IG9mIHBhZ2VzIHRvIGFsbG9jYXRlDQo+DQo+IC0gIEBwYXJhbSAgTWVtb3J5ICAgICAgICAgICAg ICAgICBBIHBvaW50ZXIgdG8gcmVjZWl2ZSB0aGUgYmFzZSBhbGxvY2F0ZWQgbWVtb3J5DQo+DQo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzDQo+DQo+IC0NCj4NCj4g LSAgQHJldHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgIFBhcmFtZXRlcnMgdmlvbGF0ZSBjaGVj a2luZyBydWxlcyBkZWZpbmVkIGluIHNwZWMuDQo+DQo+IC0gIEByZXR2YWwgRUZJX05PVF9GT1VO RCAgICAgICAgICBDb3VsZCBub3QgYWxsb2NhdGUgcGFnZXMgbWF0Y2ggdGhlIHJlcXVpcmVtZW50 Lg0KPg0KPiAtICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgTm8gZW5vdWdoIHBhZ2Vz IHRvIGFsbG9jYXRlLg0KPg0KPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgUGFn ZXMgc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZC4NCj4NCj4gLQ0KPg0KPiAtKiovDQo+DQo+IC1FRklf U1RBVFVTDQo+DQo+IC1FRklBUEkNCj4NCj4gLVNtbUFsbG9jYXRlUGFnZXMgKA0KPg0KPiAtICBJ TiAgICAgIEVGSV9BTExPQ0FURV9UWVBFICAgICAgICAgVHlwZSwNCj4NCj4gLSAgSU4gICAgICBF RklfTUVNT1JZX1RZUEUgICAgICAgICAgIE1lbW9yeVR5cGUsDQo+DQo+IC0gIElOICAgICAgVUlO VE4gICAgICAgICAgICAgICAgICAgICBOdW1iZXJPZlBhZ2VzLA0KPg0KPiAtICBPVVQgICAgIEVG SV9QSFlTSUNBTF9BRERSRVNTICAgICAgKk1lbW9yeQ0KPg0KPiAtICApOw0KPg0KPiAtDQo+DQo+ IC0vKioNCj4NCj4gLSAgRnJlZXMgcHJldmlvdXMgYWxsb2NhdGVkIHBhZ2VzLg0KPg0KPiAtDQo+ DQo+IC0gIEBwYXJhbSAgTWVtb3J5ICAgICAgICAgICAgICAgICBCYXNlIGFkZHJlc3Mgb2YgbWVt b3J5IGJlaW5nIGZyZWVkDQo+DQo+IC0gIEBwYXJhbSAgTnVtYmVyT2ZQYWdlcyAgICAgICAgICBU aGUgbnVtYmVyIG9mIHBhZ2VzIHRvIGZyZWUNCj4NCj4gLQ0KPg0KPiAtICBAcmV0dmFsIEVGSV9O T1RfRk9VTkQgICAgICAgICAgQ291bGQgbm90IGZpbmQgdGhlIGVudHJ5IHRoYXQgY292ZXJzIHRo ZSByYW5nZQ0KPg0KPiAtICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgQWRkcmVzcyBu b3QgYWxpZ25lZA0KPg0KPiAtICBAcmV0dXJuIEVGSV9TVUNDRVNTICAgICAgICAgICAgUGFnZXMg c3VjY2Vzc2Z1bGx5IGZyZWVkLg0KPg0KPiAtDQo+DQo+IC0qKi8NCj4NCj4gLUVGSV9TVEFUVVMN Cj4NCj4gLUVGSUFQSQ0KPg0KPiAtU21tRnJlZVBhZ2VzICgNCj4NCj4gLSAgSU4gICAgICBFRklf UEhZU0lDQUxfQUREUkVTUyAgICAgIE1lbW9yeSwNCj4NCj4gLSAgSU4gICAgICBVSU5UTiAgICAg ICAgICAgICAgICAgICAgIE51bWJlck9mUGFnZXMNCj4NCj4gLSAgKTsNCj4NCj4gLQ0KPg0KPiAt LyoqDQo+DQo+IC0gIEFsbG9jYXRlIHBvb2wgb2YgYSBwYXJ0aWN1bGFyIHR5cGUuDQo+DQo+IC0N Cj4NCj4gLSAgQHBhcmFtICBQb29sVHlwZSAgICAgICAgICAgICAgIFR5cGUgb2YgcG9vbCB0byBh bGxvY2F0ZQ0KPg0KPiAtICBAcGFyYW0gIFNpemUgICAgICAgICAgICAgICAgICAgVGhlIGFtb3Vu dCBvZiBwb29sIHRvIGFsbG9jYXRlDQo+DQo+IC0gIEBwYXJhbSAgQnVmZmVyICAgICAgICAgICAg ICAgICBUaGUgYWRkcmVzcyB0byByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQNCj4N Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvb2wNCj4NCj4gLQ0KPg0KPiAt ICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgUG9vbFR5cGUgbm90IHZhbGlkDQo+DQo+ IC0gIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBTaXplIGV4Y2VlZHMgbWF4IHBvb2wg c2l6ZSBvciBhbGxvY2F0aW9uIGZhaWxlZC4NCj4NCj4gLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgIFBvb2wgc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZC4NCj4NCj4gLQ0KPg0KPiAtKiov DQo+DQo+IC1FRklfU1RBVFVTDQo+DQo+IC1FRklBUEkNCj4NCj4gLVNtbUFsbG9jYXRlUG9vbCAo DQo+DQo+IC0gIElOICAgICAgRUZJX01FTU9SWV9UWVBFICAgICAgICAgICBQb29sVHlwZSwNCj4N Cj4gLSAgSU4gICAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgIFNpemUsDQo+DQo+IC0gIE9V VCAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqKkJ1ZmZlcg0KPg0KPiAtICApOw0KPg0K PiAtDQo+DQo+IC0vKioNCj4NCj4gLSAgRnJlZXMgcG9vbC4NCj4NCj4gLQ0KPg0KPiAtICBAcGFy YW0gIEJ1ZmZlciAgICAgICAgICAgICAgICAgVGhlIGFsbG9jYXRlZCBwb29sIGVudHJ5IHRvIGZy ZWUNCj4NCj4gLQ0KPg0KPiAtICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgQnVmZmVy IGlzIG5vdCBhIHZhbGlkIHZhbHVlLg0KPg0KPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAg ICAgICAgUG9vbCBzdWNjZXNzZnVsbHkgZnJlZWQuDQo+DQo+IC0NCj4NCj4gLSoqLw0KPg0KPiAt RUZJX1NUQVRVUw0KPg0KPiAtRUZJQVBJDQo+DQo+IC1TbW1GcmVlUG9vbCAoDQo+DQo+IC0gIElO ICAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAqQnVmZmVyDQo+DQo+IC0gICk7DQo+DQo+ IC0NCj4NCj4gLSNlbmRpZg0KPg0KDQo=