From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Permerror (SPF Permanent Error: Void lookup limit of 2 exceeded) identity=mailfrom; client-ip=2a01:111:f400:fe1e::62a; helo=eur01-he1-obe.outbound.protection.outlook.com; envelope-from=udit.kumar@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on062a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1e::62a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E89E6211A7578 for ; Mon, 11 Jun 2018 03:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w6XiQx8G4k8wIpx7CiIXOnwtRzzRJ9XcmsYjSTeJtnU=; b=jC6rtF8XClKMIMMqYLWPB8TyoDG7AZjc4cz+b0hp3MjS5DR2//k3reCOCUMhpXl/kOfO+bYND/GYimhwWwe05Jq1wr2gouY9Bh0YrkPCz9Qii8nk5s3WwKx4Oy+v5TvR+jwDr31f+QcT/4i0T0FGyA/Z4Cf8m0YZXVcR+qPHniI= Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com (52.133.18.151) by AM6PR0402MB3589.eurprd04.prod.outlook.com (52.133.20.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.19; Mon, 11 Jun 2018 10:32:28 +0000 Received: from AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::397b:61de:4465:b93c]) by AM6PR0402MB3334.eurprd04.prod.outlook.com ([fe80::397b:61de:4465:b93c%2]) with mapi id 15.20.0841.019; Mon, 11 Jun 2018 10:32:28 +0000 From: Udit Kumar To: Ard Biesheuvel CC: Leif Lindholm , "edk2-devel@lists.01.org" Thread-Topic: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support Thread-Index: AQHT/VwZAYsqYmJHxEmmSIOMYtf8EaRa3KqAgAAFeNA= Date: Mon, 11 Jun 2018 10:32:28 +0000 Message-ID: References: <1528221595-22145-1-git-send-email-udit.kumar@nxp.com> <1528221595-22145-2-git-send-email-udit.kumar@nxp.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=udit.kumar@nxp.com; x-originating-ip: [14.142.187.166] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR0402MB3589; 7:BgZB0MBLiqDeBSfOZjKkI2zraZ82hNeNytOLMIoqqFculk3STd29/zoJmrn58uIl0H1kvNAkPha44GIPxQP/Awbl9+JGS/VURsuR4LdLyZZ6gz5ZAKCMtJQLY6F5d2HRbObabIpowxth+3TKzg5yc/3rDoCeIdLeCefHcJIvVYXeEIAUAeqWeeYMWkj0aPfYOdGNJKTz5r2OEN5nmOnDAp/ovDx8pftgMItpGcUVw81YUv+dPk4Hs2zN6cE5Z4M+ x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM6PR0402MB3589; x-ms-traffictypediagnostic: AM6PR0402MB3589: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(185117386973197)(162533806227266)(45079756050767); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(93001095)(10201501046)(3002001)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(6072148)(201708071742011)(7699016); SRVR:AM6PR0402MB3589; BCL:0; PCL:0; RULEID:; SRVR:AM6PR0402MB3589; x-forefront-prvs: 070092A9D3 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39380400002)(396003)(39860400002)(199004)(189003)(13464003)(446003)(6436002)(5250100002)(6916009)(14454004)(74316002)(8936002)(53936002)(25786009)(44832011)(66066001)(6306002)(55016002)(81156014)(3846002)(5660300001)(6246003)(305945005)(68736007)(81166006)(8676002)(33656002)(7736002)(6116002)(478600001)(54906003)(316002)(99286004)(2906002)(26005)(186003)(9686003)(3280700002)(7696005)(3660700001)(4326008)(45080400002)(55236004)(105586002)(106356001)(6506007)(102836004)(16799955002)(76176011)(11346002)(476003)(86362001)(2900100001)(97736004)(53546011)(229853002)(486006)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0402MB3589; H:AM6PR0402MB3334.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: Ue7D78psc5qm57YBL2jpbFDghRFFMJmtGiI14EscfD8U1IwnUMKelCAQahPJ1Wzi0mg5exR+PFVADV1LKPvPiS0BN9f0CZ1AppuSyJTpI/1EXX75+wsp2928uqTQDEo3ydVBb4R0pq16BRmCRZaA101GoiZeXN/sOM6FSSR4HVpKVHaC2hk7ADYjIj9EpzKC spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 4c995093-618f-4894-afdc-08d5cf86a171 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c995093-618f-4894-afdc-08d5cf86a171 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jun 2018 10:32:28.2872 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0402MB3589 Subject: Re: [PATCH 1/2] ArmPlatformPkg: PL011 Dynamic clock freq Support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2018 10:32:32 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGZvciByZXZpZXcgQXJkLiANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBBcmQgQmllc2hldXZlbCBbbWFpbHRvOmFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmdd DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAxMSwgMjAxOCAzOjM1IFBNDQo+IFRvOiBVZGl0IEt1bWFy IDx1ZGl0Lmt1bWFyQG54cC5jb20+DQo+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmLmxpbmRob2xt QGxpbmFyby5vcmc+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BB VENIIDEvMl0gQXJtUGxhdGZvcm1Qa2c6IFBMMDExIER5bmFtaWMgY2xvY2sgZnJlcQ0KPiBTdXBw b3J0DQo+IA0KPiBIZWxsbyBVZGl0LA0KPiANCj4gQXBvbG9naWVzIGZvciBub3QgYnJpbmdpbmcg dGhpcyB1cCB0aGUgZmlyc3QgdGltZSwgYnV0IEkgaGF2ZSBzb21lIGFkZGl0aW9uYWwNCj4gY29t bWVudHMuIFRoZSBmaXJzdCB0aW1lIGFyb3VuZCwgSSBvbmx5IGhhZCBhIGN1cnNvcnkgbG9vayBi ZWNhdXNlIGF0IHRoYXQNCj4gcG9pbnQgSSB3YXMgc3RpbGwgc2tlcHRpY2FsIHdoZXRoZXIgd2Ug bmVlZGVkIHRoaXMgbGlicmFyeSBpbiB0aGUgZmlyc3QgcGxhY2UuDQoNCkkgaG9wZSwgbm93IHlv dSBhZ3JlZSB0byBoYXZlIHRoaXMgbGliIPCfmIoNCg0KPiBPbiA1IEp1bmUgMjAxOCBhdCAxOTo1 OSwgVWRpdCBLdW1hciA8dWRpdC5rdW1hckBueHAuY29tPiB3cm90ZToNCj4gPiBTb21lIHBsYXRm b3JtIHN1cHBvcnQgZHluYW1pYyBjbG9ja2luZywgV2hpY2ggaXMgY29udHJvbGxlZCBieSBzb21l DQo+ID4ganVtcGVyIHNldHRpbmcgb3IgaGFyZHdhcmUgcmVnaXN0ZXJzLg0KPiA+IFJlc3VsdCBv ZiB0aGF0IFBDRCBQTDAxMVVhcnRDbGtJbkh6IG5lZWRzIHRvIGJlIHVwZGF0ZWQgZm9yIGZyZXF1 ZW5jeQ0KPiA+IGNoYW5nZS4NCj4gPiBUaGlzIHBhdGNoIGltcGxlbWVudHMgc3VwcG9ydCBmb3Ig ZHluYW1pYyBmcmVxdWVuY3kgZm9yDQo+ID4gUEwwMTEgdWFydC4NCj4gPiBUaGlzIHBhdGNoIGlt cGxlbWVudHMgZGVmYXVsdCBsaWIsIHdoaWNoIGlzIHVzaW5nIFBjZC4NCj4gPiBQbGF0Zm9ybSB3 aGljaCBuZWVkcyBkeW5hbWljIGNsb2NraW5nIG5lZWRzIGltcGxlbWVudA0KPiA+IFBMMDExVWFy dENsb2NrTGliDQo+ID4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1 dGlvbiBBZ3JlZW1lbnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTogVWRpdCBLdW1hciA8dWRpdC5r dW1hckBueHAuY29tPg0KPiA+IC0tLQ0KPiA+ICBBcm1QbGF0Zm9ybVBrZy9Bcm1QbGF0Zm9ybVBr Zy5kZWMgICAgICAgICAgICAgICAgICB8ICAxICsNCj4gPiAgQXJtUGxhdGZvcm1Qa2cvSW5jbHVk ZS9MaWJyYXJ5L1BMMDExVWFydENsb2NrTGliLmggfCAzMg0KPiA+ICsrKysrKysrKysrKysrKysr KysNCj4gLi4uL0xpYnJhcnkvUEwwMTFVYXJ0Q2xvY2tMaWIvUEwwMTFVYXJ0Q2xvY2tMaWIuYyAg fCAyOQ0KPiArKysrKysrKysrKysrKysrKw0KPiA+ICAuLi4vUEwwMTFVYXJ0Q2xvY2tMaWIvUEww MTFVYXJ0Q2xvY2tMaWIuaW5mICAgICAgICB8IDM3DQo+ICsrKysrKysrKysrKysrKysrKysrKysN Cj4gDQo+IFBsZWFzZSBhZGQgYSByZWZlcmVuY2UgdG8gdGhlIG5ldyBsaWJyYXJ5IGluIHRoZSBb Q29tcG9uZW50c10gc2VjdGlvbiBvZg0KPiBBcm1QbGF0Zm9ybVBrZy5kc2MgYXMgd2VsbCwgc28g d2UgY2FuIGJ1aWxkIGl0IHN0YW5kYWxvbmUuDQoNCk9rIA0KIA0KPiA+ICA0IGZpbGVzIGNoYW5n ZWQsIDk5IGluc2VydGlvbnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+IEFybVBsYXRm b3JtUGtnL0luY2x1ZGUvTGlicmFyeS9QTDAxMVVhcnRDbG9ja0xpYi5oDQo+ID4gIGNyZWF0ZSBt b2RlIDEwMDY0NA0KPiA+IEFybVBsYXRmb3JtUGtnL0xpYnJhcnkvUEwwMTFVYXJ0Q2xvY2tMaWIv UEwwMTFVYXJ0Q2xvY2tMaWIuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBBcm1QbGF0 Zm9ybVBrZy9MaWJyYXJ5L1BMMDExVWFydENsb2NrTGliL1BMMDExVWFydENsb2NrTGliLmluZg0K PiA+DQo+ID4gZGlmZiAtLWdpdCBhL0FybVBsYXRmb3JtUGtnL0FybVBsYXRmb3JtUGtnLmRlYw0K PiA+IGIvQXJtUGxhdGZvcm1Qa2cvQXJtUGxhdGZvcm1Qa2cuZGVjDQo+ID4gaW5kZXggZGZmNDU5 OC4uNWY2N2U3NCAxMDA2NDQNCj4gPiAtLS0gYS9Bcm1QbGF0Zm9ybVBrZy9Bcm1QbGF0Zm9ybVBr Zy5kZWMNCj4gPiArKysgYi9Bcm1QbGF0Zm9ybVBrZy9Bcm1QbGF0Zm9ybVBrZy5kZWMNCj4gPiBA QCAtMzYsNiArMzYsNyBAQA0KPiA+ICAgIExjZEh3TGlifEluY2x1ZGUvTGlicmFyeS9MY2RId0xp Yi5oDQo+ID4gICAgTGNkUGxhdGZvcm1MaWJ8SW5jbHVkZS9MaWJyYXJ5L0xjZFBsYXRmb3JtTGli LmgNCj4gPiAgICBOb3JGbGFzaFBsYXRmb3JtTGlifEluY2x1ZGUvTGlicmFyeS9Ob3JGbGFzaFBs YXRmb3JtTGliLmgNCj4gPiArICBQTDAxMVVhcnRDbG9ja0xpYnxJbmNsdWRlL0xpYnJhcnkvUEww MTFVYXJ0Q2xvY2tMaWIuaA0KPiA+ICAgIFBMMDExVWFydExpYnxJbmNsdWRlL0xpYnJhcnkvUEww MTFVYXJ0TGliLmgNCj4gPg0KPiA+ICBbR3VpZHMuY29tbW9uXQ0KPiA+IGRpZmYgLS1naXQgYS9B cm1QbGF0Zm9ybVBrZy9JbmNsdWRlL0xpYnJhcnkvUEwwMTFVYXJ0Q2xvY2tMaWIuaA0KPiA+IGIv QXJtUGxhdGZvcm1Qa2cvSW5jbHVkZS9MaWJyYXJ5L1BMMDExVWFydENsb2NrTGliLmgNCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLjkzODEzYTANCj4gPiAtLS0g L2Rldi9udWxsDQo+ID4gKysrIGIvQXJtUGxhdGZvcm1Qa2cvSW5jbHVkZS9MaWJyYXJ5L1BMMDEx VWFydENsb2NrTGliLmgNCj4gPiBAQCAtMCwwICsxLDMyIEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ ICsqDQo+ID4gKyogIENvcHlyaWdodCAyMDE4IE5YUA0KPiA+ICsqDQo+ID4gKyogIFRoaXMgcHJv Z3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiArKiAgYXJlIGxpY2Vuc2Vk IGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCj4g PiArdGhlIEJTRCBMaWNlbnNlDQo+ID4gKyogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJp YnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZQ0KPiA+ICttYXkgYmUgZm91bmQg YXQNCj4gPiArKg0KPiA+DQo+ICtodHRwczovL2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5v dXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZvDQo+IHBlDQo+ID4gK25zb3VyY2Uub3JnJTJG bGljZW5zZXMlMkZic2QtDQo+IGxpY2Vuc2UucGhwJmRhdGE9MDIlN0MwMSU3Q3VkaXQua3VtYXIl NDANCj4gPg0KPiArbnhwLmNvbSU3QzJhYzI3ZWI2MDA1NTQ3OGFjMzdkMDhkNWNmODJkNTUwJTdD Njg2ZWExZDNiYzJiNGMNCj4gNmZhOTJjZDk5Yw0KPiA+DQo+ICs1YzMwMTYzNSU3QzAlN0MwJTdD NjM2NjQzMDgzMTk1MTM4MTc5JnNkYXRhPUMlMkYyTWhLMlpBNg0KPiBYUG1DNWM4YnlXbEszDQo+ ID4gK3hBQzZyRm1MWW9mUEtsajZNNyUyRkklM0QmcmVzZXJ2ZWQ9MA0KPiA+ICsqDQo+ID4gKyog IFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAi QVMNCj4gSVMiDQo+ID4gK0JBU0lTLA0KPiA+ICsqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQ UkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0K PiA+ICsqDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfX1BMMDExQ0xPQ0tMSUJfSF9f DQo+ID4gKyNkZWZpbmUgX19QTDAxMUNMT0NLTElCX0hfXw0KPiANCj4gTml0OiB1c2UgX19QTDAx MVVBUlRDTE9DS0xJQl9IX18gdG8gbWF0Y2ggdGhlIGZpbGVuYW1lLg0KDQpNeSBtaXNzLCB0aGFu a3MgIHdpbGwgZG8gaW4gdjMNCiANCj4gPiArDQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBSZXR1 cm4gZnJlcXVlbmN5IG9mIFBMMDExLg0KPiA+ICsNCj4gDQo+IE1lbnRpb24gdGhlIGJhdWQgY2xv Y2s/DQoNClN1cmUgDQo+ID4gKyAgQnkgZGVmYXVsdCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgRml4 ZWRQY2RHZXQzMiAoUEwwMTFVYXJ0Q2xrSW5IeikNCj4gPiArDQo+IA0KPiBEcm9wIHRoaXMgbGlu ZSBwbGVhc2UsIGl0IGlzIG5vdCBwYXJ0IG9mIHRoZSBwcm90b3R5cGUNCg0KT2sgDQogDQo+ID4g KyAgQHJldHVybiBSZXR1cm4gZnJlcXVlbmN5IG9mIFBMMDExDQo+ID4gKw0KPiA+ICsqKi8NCj4g PiArVUlOVDMyDQo+ID4gK0FybVBsYXRmb3JtR2V0UEwwMTFDbG9ja0ZyZXEgKA0KPiANCj4gVGhl IEFybVBsYXRmb3JtIHByZWZpeCBpcyB1bm5lY2Vzc2FyeSBoZXJlOiBwbGVhc2UgdXNlDQo+IFBM MDExVWFydENsb2NrR2V0RnJlcSgpIGluc3RlYWQuDQoNCk9rIA0KIA0KPiA+ICsgIFZPSUQNCj4g PiArICApOw0KPiA+ICsNCj4gPiArI2VuZGlmDQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvQXJtUGxh dGZvcm1Qa2cvTGlicmFyeS9QTDAxMVVhcnRDbG9ja0xpYi9QTDAxMVVhcnRDbG9ja0xpYi5jDQo+ ID4gYi9Bcm1QbGF0Zm9ybVBrZy9MaWJyYXJ5L1BMMDExVWFydENsb2NrTGliL1BMMDExVWFydENs b2NrTGliLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLmI1 NmFmMTQNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvQXJtUGxhdGZvcm1Qa2cvTGlicmFy eS9QTDAxMVVhcnRDbG9ja0xpYi9QTDAxMVVhcnRDbG9ja0xpYi5jDQo+ID4gQEAgLTAsMCArMSwy OSBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPiArKg0KPiA+ICsqICBDb3B5cmlnaHQgMjAxOCBOWFAN Cj4gPiArKg0KPiA+ICsqICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJp YWxzDQo+ID4gKyogIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mDQo+ID4gK3RoZSBCU0QgTGljZW5zZQ0KPiA+ICsqICB3aGlj aCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxp Y2Vuc2UNCj4gPiArbWF5IGJlIGZvdW5kIGF0DQo+ID4gKyoNCj4gPg0KPiAraHR0cHM6Ly9lbWVh MDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGbw0K PiBwZQ0KPiA+ICtuc291cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBsaWNlbnNlLnBocCZk YXRhPTAyJTdDMDElN0N1ZGl0Lmt1bWFyJTQwDQo+ID4NCj4gK254cC5jb20lN0MyYWMyN2ViNjAw NTU0NzhhYzM3ZDA4ZDVjZjgyZDU1MCU3QzY4NmVhMWQzYmMyYjRjDQo+IDZmYTkyY2Q5OWMNCj4g Pg0KPiArNWMzMDE2MzUlN0MwJTdDMCU3QzYzNjY0MzA4MzE5NTEzODE3OSZzZGF0YT1DJTJGMk1o SzJaQTYNCj4gWFBtQzVjOGJ5V2xLMw0KPiA+ICt4QUM2ckZtTFlvZlBLbGo2TTclMkZJJTNEJnJl c2VydmVkPTANCj4gPiArKg0KPiA+ICsqICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRF UiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTDQo+IElTIg0KPiA+ICtCQVNJUywNCj4gPiArKiAg V0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVS DQo+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiArKg0KPiA+ICsqKi8NCj4gPiArDQo+ID4gKyNp bmNsdWRlIDxMaWJyYXJ5L1BMMDExVWFydENsb2NrTGliLmg+DQo+ID4gKw0KPiA+ICsvKioNCj4g PiArICBSZXR1cm4gY2xvY2sgaW4gZm9yIFBMMDExIFVhcnQgSVAuDQo+ID4gKyoqLw0KPiA+ICtV SU5UMzINCj4gDQo+IFBsZWFzZSBhZGQgRUZJQVBJIGV2ZW4gaWYgaXQgaXMgZGVmaW5lZCB0byBh biBlbXB0eSBzdHJpbmcgd2hlbiB1c2luZw0KPiBHQ0MvQVJNLg0KDQpPayANCiANCj4gPiArQXJt UGxhdGZvcm1HZXRQTDAxMUNsb2NrRnJlcSAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiAr ew0KPiA+ICsgIC8vIFRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgb24gcGxh dGZvcm1zIHdoaWNoDQo+ID4gK3N1cHBvcnRzDQo+ID4gKyAgLy8gZHluYW1pYyBjbG9ja2luZyB0 byBhdm9pZCByZS1idWlsZGluZyBvZiBVRUZJIGZpcm13YXJlIGZvciBQTDAxMQ0KPiA+ICsgIC8v IGNsb2NrIGNoYW5nZQ0KPiANCj4gUGxlYXNlIGRyb3AgdGhpcyBjb21tZW50LCBpdCBkb2VzIG5v dCBiZWxvbmcgaGVyZS4gWW91IGNhbiBhZGQgc29tZXRoaW5nDQo+IGFsb25nIHRoZXNlIGxpbmVz IGluIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgbGlicmFyeSBjbGFzcyBpZiB5b3Ugd2FudCwgYnV0 IHlvdQ0KPiBjYW4gZHJvcCBpdCBhbHRvZ2V0aGVyIElNTy4NCg0KT2ssIEkgd2lsbCBtb3ZlIHRv IGxpYiBjbGFzcyBkZWNsYXJhdGlvbiANCiANCj4gPiArICByZXR1cm4gRml4ZWRQY2RHZXQzMiAo UEwwMTFVYXJ0Q2xrSW5Ieik7IH0NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9Bcm1QbGF0Zm9ybVBr Zy9MaWJyYXJ5L1BMMDExVWFydENsb2NrTGliL1BMMDExVWFydENsb2NrTGliLmluZg0KPiA+IGIv QXJtUGxhdGZvcm1Qa2cvTGlicmFyeS9QTDAxMVVhcnRDbG9ja0xpYi9QTDAxMVVhcnRDbG9ja0xp Yi5pbmYNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLjVmNmY2 OTkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvQXJtUGxhdGZvcm1Qa2cvTGlicmFyeS9Q TDAxMVVhcnRDbG9ja0xpYi9QTDAxMVVhcnRDbG9ja0xpYi5pbmYNCj4gPiBAQCAtMCwwICsxLDM3 IEBADQo+ID4gKyMvKiBAZmlsZQ0KPiA+ICsjICBDb3B5cmlnaHQgMjAxOCBOWFANCj4gPiArIw0K PiA+ICsjICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICMgIGFy ZSBsaWNlbnNlZCBhbmQNCj4gPiArbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBj b25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAjDQo+ID4gK3doaWNoIGFjY29tcGFuaWVzIHRo aXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZQ0KPiA+ICttYXkg YmUgZm91bmQgYXQgIw0KPiA+DQo+ICtodHRwczovL2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlv bi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZvDQo+IHBlDQo+ID4gK25zb3VyY2Uub3Jn JTJGbGljZW5zZXMlMkZic2QtDQo+IGxpY2Vuc2UucGhwJmRhdGE9MDIlN0MwMSU3Q3VkaXQua3Vt YXIlNDANCj4gPg0KPiArbnhwLmNvbSU3QzJhYzI3ZWI2MDA1NTQ3OGFjMzdkMDhkNWNmODJkNTUw JTdDNjg2ZWExZDNiYzJiNGMNCj4gNmZhOTJjZDk5Yw0KPiA+DQo+ICs1YzMwMTYzNSU3QzAlN0Mw JTdDNjM2NjQzMDgzMTk1MTM4MTc5JnNkYXRhPUMlMkYyTWhLMlpBNg0KPiBYUG1DNWM4YnlXbEsz DQo+ID4gK3hBQzZyRm1MWW9mUEtsajZNNyUyRkklM0QmcmVzZXJ2ZWQ9MA0KPiA+ICsjDQo+ID4g KyMgIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBB TiAiQVMNCj4gSVMiDQo+ID4gK0JBU0lTLCAjICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVT RU5UQVRJT05TIE9GIEFOWSBLSU5ELA0KPiBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ ICsjDQo+ID4gKyMqLw0KPiA+ICsNCj4gPiArW0RlZmluZXNdDQo+ID4gKyAgSU5GX1ZFUlNJT04g ICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAwQQ0KPiANCj4gUGxlYXNlIHVzZSAweDAwMDEw MDFBDQo+IA0KT2sgDQoNCj4gPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBQ TDAxMVVhcnRDbG9ja0xpYg0KPiANCj4gRURLMiB1c3VhbGx5IGhhcyBhIEJhc2VYeHhMaWIgaW1w bGVtZW50YXRpb24gYW5kIGRvZXMgbm90IHJldXNlIHRoZQ0KPiBsaWJyYXJ5IGNsYXNzIG5hbWUg Zm9yIHRoZSBiYXNlIGltcGxlbWVudGF0aW9uLCBzbyBJIGFtIGZpbmUgd2l0aCB0aGlzLiBMZWlm Pw0KPiANCj4gDQo+ID4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gYWY4ZmVm MjQtYWZiYi00NzJhLWI4YjctMTMxMDFhNzk3MDNjDQo+ID4gKyAgTU9EVUxFX1RZUEUgICAgICAg ICAgICAgICAgICAgID0gQkFTRQ0KPiA+ICsgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAg ICA9IDEuMA0KPiA+ICsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAgICAgICA9IFBMMDExVWFy dENsb2NrTGliDQo+ID4gKw0KPiA+ICtbUGFja2FnZXNdDQo+ID4gKyAgTWRlUGtnL01kZVBrZy5k ZWMNCj4gPiArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiANCj4gSXMgdGhpcyBs aW5lIG5lZWRlZD8NCg0KTWF5IGJlIG5vdCAsIA0KY29weS1wYXN0ZSBtaXN0YWtlICANCg0KPiAN Cj4gPiArICBBcm1Qa2cvQXJtUGtnLmRlYw0KPiA+ICsgIEFybVBsYXRmb3JtUGtnL0FybVBsYXRm b3JtUGtnLmRlYw0KPiA+ICsNCj4gDQo+IFNvcnQgYWxwaGFiZXRpY2FsbHkgcGxlYXNlLg0KDQpP ayANCiANCj4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ICsgIEFybUxpYg0KPiA+ICsgIERlYnVn TGliDQo+ID4gKw0KPiA+ICtbU291cmNlcy5jb21tb25dDQo+ID4gKyAgUEwwMTFVYXJ0Q2xvY2tM aWIuYw0KPiA+ICsNCj4gPiArW0ZpeGVkUGNkXQ0KPiA+ICsgIGdBcm1QbGF0Zm9ybVRva2VuU3Bh Y2VHdWlkLlBMMDExVWFydENsa0luSHoNCj4gPiArDQo+ID4gLS0NCj4gPiAxLjkuMQ0KPiA+DQo=