From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.107.6.55; helo=eur01-db5-obe.outbound.protection.outlook.com; envelope-from=pankaj.bansal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr60055.outbound.protection.outlook.com [40.107.6.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6F80F222CF1B8 for ; Wed, 10 Jan 2018 22:23:33 -0800 (PST) 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; bh=S+/9F3OEMuARLyUE2lKyCVkeXz5k7bK/CbhxKXJ4AIk=; b=rPXvONSzJANt8c2ngHE2/HayjvNoH94cYqHcLKpRQjc2yg/+LDK6pBA0h1B/DwrmcbExqbCyxzNtECLAuFVOO5KlkoUkNaIlP5+Jdr8OqlGo0oP8xz9vX7EAONJftpuBYAUSlxnYy/UtMBzwl1gVK3HrJYZ7fSPsJGpvIMqN/d0= Received: from AM0PR0402MB3940.eurprd04.prod.outlook.com (52.133.40.140) by AM0PR0402MB3940.eurprd04.prod.outlook.com (52.133.40.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Thu, 11 Jan 2018 06:28:44 +0000 Received: from AM0PR0402MB3940.eurprd04.prod.outlook.com ([fe80::dcdc:33ca:f0e4:4b16]) by AM0PR0402MB3940.eurprd04.prod.outlook.com ([fe80::dcdc:33ca:f0e4:4b16%13]) with mapi id 15.20.0386.009; Thu, 11 Jan 2018 06:28:44 +0000 From: Pankaj Bansal To: Laszlo Ersek , "edk2-devel@lists.01.org" CC: Leif Lindholm , Ard Biesheuvel , Michael Kinney Thread-Topic: [edk2] [PATCH 2/2] ArmPkg/ArmArchTimerLib: Implement GetElapsedTime function of TimerLib Thread-Index: AQHTifXnBj7aj5I8m0OOaxprOA/zBKNtJ0cAgAAV45CAABkGAIAA3tdg Date: Thu, 11 Jan 2018 06:28:44 +0000 Message-ID: References: <1515576669-14171-1-git-send-email-pankaj.bansal@nxp.com> <1515576669-14171-2-git-send-email-pankaj.bansal@nxp.com> <3abe87d7-e50f-a454-6855-5eeb13428fce@redhat.com> In-Reply-To: <3abe87d7-e50f-a454-6855-5eeb13428fce@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pankaj.bansal@nxp.com; x-originating-ip: [192.88.169.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR0402MB3940; 7:Zj6ys/b+jzxtQzJndgBe+dY2rms/4tP0FGOIOfiRRw4HBk9HveM3CqARijA7EzUcMUUpYDAdFDDWfNKex26dwmhXmIXwvaLuzsMLfsDO7Ji7C7IlJWNljZn54iVNCVjxHRAq/ExZ8x5rSZGGN95APxviCee7SLSDfJ5wR9oXggXtimIe87wPti3O05WvKFPCF0y1zQQIJsaL8OBonkoAAhaOpXgLH0Xt82NosA6UlnlXEcAx4i+g/vyPMKs9AZne x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 847b0c6d-cb92-4016-e724-08d558bc9096 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020061)(4652020)(5600026)(4604075)(3008032)(48565401081)(2017052603307)(7153060)(7193020); SRVR:AM0PR0402MB3940; x-ms-traffictypediagnostic: AM0PR0402MB3940: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(185117386973197)(162533806227266)(45079756050767)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501134)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041268)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:AM0PR0402MB3940; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM0PR0402MB3940; x-forefront-prvs: 0549E6FD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(366004)(346002)(396003)(376002)(13464003)(189003)(199004)(24454002)(5660300001)(2906002)(229853002)(81156014)(8676002)(14454004)(8936002)(7696005)(4326008)(93886005)(53936002)(81166006)(33656002)(2950100002)(99286004)(6246003)(3280700002)(5250100002)(2501003)(97736004)(478600001)(25786009)(3660700001)(54906003)(6506007)(2900100001)(105586002)(76176011)(106356001)(110136005)(966005)(102836004)(316002)(7736002)(45080400002)(59450400001)(6116002)(74316002)(9686003)(6306002)(3846002)(55016002)(68736007)(86362001)(6436002)(66066001)(305945005)(53546011); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0402MB3940; H:AM0PR0402MB3940.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: jn1ZttbhF+PGmEntX8MlM0mAQzorPwI0g4MrPxu8Zu5jo1iKSClUyKlJ/P7T2NSHo/oVE/ufHZi1OomCJxI1iA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 847b0c6d-cb92-4016-e724-08d558bc9096 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jan 2018 06:28:44.4760 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3940 Subject: Re: [PATCH 2/2] ArmPkg/ArmArchTimerLib: Implement GetElapsedTime function of TimerLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jan 2018 06:23:35 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3ps byBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIEph bnVhcnkgMTAsIDIwMTggMTA6MzQgUE0NCj4gVG86IFBhbmthaiBCYW5zYWwgPHBhbmthai5iYW5z YWxAbnhwLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiBMZWlmIExpbmRob2xt IDxsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc+OyBBcmQgQmllc2hldXZlbA0KPiA8YXJkLmJpZXNo ZXV2ZWxAbGluYXJvLm9yZz47IE1pY2hhZWwgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMi8yXSBBcm1Qa2cvQXJtQXJjaFRp bWVyTGliOiBJbXBsZW1lbnQNCj4gR2V0RWxhcHNlZFRpbWUgZnVuY3Rpb24gb2YgVGltZXJMaWIN Cj4gDQo+IEhpIFBhbmthaiwNCj4gDQo+IE9uIDAxLzEwLzE4IDE3OjA1LCBQYW5rYWogQmFuc2Fs IHdyb3RlOg0KPiA+IEhpIExhc3psbywNCj4gPg0KPiA+IFRoYW5rcyBmb3IgcmV2aWV3aW5nIG15 IGNoYW5nZXMgYW5kIHRoYW5rcyBmb3IgcG9pbnRpbmcgbWUgdG8gdGhlIHRocmVhZA0KPiB0aGF0 IHlvdSB3b3JrZWQgb24uDQo+ID4gSXQgd2FzIHJlYWxseSBoZWxwZnVsLiBwbGVhc2Ugc2VlIG15 IHJlc3BvbnNlIGlubGluZSAuLg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4+IEZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+ PiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMTAsIDIwMTggNzo0NiBQTQ0KPiA+PiBUbzogUGFu a2FqIEJhbnNhbCA8cGFua2FqLmJhbnNhbEBueHAuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmcNCj4gPj4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEFy ZCBCaWVzaGV1dmVsDQo+ID4+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgTWljaGFlbCBL aW5uZXkNCj4gPj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBS ZTogW2VkazJdIFtQQVRDSCAyLzJdIEFybVBrZy9Bcm1BcmNoVGltZXJMaWI6IEltcGxlbWVudA0K PiA+PiBHZXRFbGFwc2VkVGltZSBmdW5jdGlvbiBvZiBUaW1lckxpYg0KPiA+Pg0KPiA+PiBIZWxs byBQYW5rYWosDQo+ID4+DQo+ID4+IE9uIDAxLzEwLzE4IDEwOjMxLCBQYW5rYWogQmFuc2FsIHdy b3RlOg0KPiA+Pj4gVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIHRoZSB0aW1lIGVsYXBlZCBpbiBO YW9zZWNvbmRzIGJldHdlZW4gY2FsbA0KPiA+Pj4gdG8gdGhpcyBmdW5jdGlvbiBhbmQgQmFzZVRp bWUsIHdoaWNoIGlzIHBhc3NlZCBhcyBhcmd1bWVudC4NCj4gPj4+DQo+ID4+PiBUaGlzIGlzIHBh cnRpY3VsYXJseSB1c2VmdWwgaW4gZGV0ZWN0aW5nIHRpbWVvdXQgY29uZGl0aW9ucy4NCj4gPj4+ DQo+ID4+PiBDYzogTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiA+ Pj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+Pj4g Q29udHJpYnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0K PiA+Pj4gU2lnbmVkLW9mZi1ieTogUGFua2FqIEJhbnNhbCA8cGFua2FqLmJhbnNhbEBueHAuY29t Pg0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9Bcm1Qa2cvTGlicmFyeS9Bcm1BcmNoVGltZXJM aWIvQXJtQXJjaFRpbWVyTGliLmMNCj4gPj4+IGIvQXJtUGtnL0xpYnJhcnkvQXJtQXJjaFRpbWVy TGliL0FybUFyY2hUaW1lckxpYi5jDQo+ID4+PiBpbmRleCBiODEyOTNjLi4wODk4MzM5IDEwMDY0 NA0KPiA+Pj4gLS0tIGEvQXJtUGtnL0xpYnJhcnkvQXJtQXJjaFRpbWVyTGliL0FybUFyY2hUaW1l ckxpYi5jDQo+ID4+PiArKysgYi9Bcm1Qa2cvTGlicmFyeS9Bcm1BcmNoVGltZXJMaWIvQXJtQXJj aFRpbWVyTGliLmMNCj4gPj4+IEBAIC0yOTAsMyArMjkwLDM5IEBAIEdldFRpbWVJbk5hbm9TZWNv bmQgKA0KPiA+Pj4NCj4gPj4+ICAgIHJldHVybiBOYW5vU2Vjb25kczsNCj4gPj4+ICB9DQo+ID4+ PiArDQo+ID4+PiArLyoqDQo+ID4+PiArICBHZXQgRWxhcHNlZCB0aW1lIGluIE5hbm9zZW9uZHMg dy5yLnQgQmFzZVRpbWUNCj4gPj4+ICsNCj4gPj4+ICsgIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRl cyB0aGUgdGltZSBlbGFwZWQgaW4gTmFvc2Vjb25kcyBiZXR3ZWVuDQo+ID4+PiArIGNhbGwgdG8g dGhpcyAgZnVuY3Rpb24gYW5kIEJhc2VUaW1lLCB3aGljaCBpcyBwYXNzZWQgYXMgYXJndW1lbnQu DQo+ID4+PiArDQo+ID4+PiArICBAcGFyYW0gIEJhc2VUaW1lICAgICBCYXNlVGltZSBpbiBOYW5v U2Vjb25kcy4NCj4gPj4+ICsNCj4gPj4+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGltZSBpbiBu YW5vc2Vjb25kcy4NCj4gPj4+ICsNCj4gPj4+ICsqKi8NCj4gPj4+ICtVSU5UNjQNCj4gPj4+ICtF RklBUEkNCj4gPj4+ICtHZXRFbGFwc2VkVGltZSAoDQo+ID4+PiArICBJTiAgICAgIFVJTlQ2NCAg ICAgICAgICAgICAgICAgICAgIEJhc2VUaW1lDQo+ID4+PiArICApDQo+ID4+PiArew0KPiA+Pj4g KyAgVUlOVDY0ICBOYW5vU2Vjb25kczsNCj4gPj4+ICsgIFVJTlQ2NCAgVGlja3M7DQo+ID4+PiAr DQo+ID4+PiArICAvLw0KPiA+Pj4gKyAgLy8gR2V0IGN1cnJlbnQgVGlja3MuDQo+ID4+PiArICAv Lw0KPiA+Pj4gKyAgVGlja3MgPSBHZXRQZXJmb3JtYW5jZUNvdW50ZXIoKTsNCj4gPj4+ICsNCj4g Pj4+ICsgIC8vDQo+ID4+PiArICAvLyBDb252ZXJ0IFRpY2tzIHRvIE5hbm9zZWNvbmRzDQo+ID4+ PiArICAvLw0KPiA+Pj4gKyAgTmFub1NlY29uZHMgPSBHZXRUaW1lSW5OYW5vU2Vjb25kIChUaWNr cyk7DQo+ID4+PiArDQo+ID4+PiArICAvLw0KPiA+Pj4gKyAgLy8gcmV0dXJuIHRoZSBkaWZmZXJl bmNlDQo+ID4+PiArICAvLw0KPiA+Pj4gKyAgcmV0dXJuIChOYW5vU2Vjb25kcyAtIEJhc2VUaW1l KTsNCj4gPj4+ICt9DQo+ID4+Pg0KPiA+Pg0KPiA+PiBUaGVyZSBhcmUgdHdvIHByb2JsZW1zIHdp dGggdGhpcyBwYXRjaCBzZXQ6DQo+ID4+DQo+ID4+ICgxKSBUaGUgVGltZXJMaWIuaCBmaWxlIChp biB0aGUgZmlyc3QgcGF0Y2gpIGlzIGEgcHVibGljIGxpYnJhcnkNCj4gPj4gY2xhc3MgaGVhZGVy LCBmb3Igd2hpY2ggc2V2ZXJhbCBsaWJyYXJ5IGluc3RhbmNlcyAoaW1wbGVtZW50YXRpb25zKQ0K PiA+PiBleGlzdC4gU28sIGludHJvZHVjaW5nIGEgbmV3IEFQSSByZXF1aXJlcyBhZGRpbmcgYW4g aW1wbGVtZW50YXRpb24NCj4gPj4gKHRoZSBzYW1lIGltcGxlbWVudGF0aW9uLCBvciBkaWZmZXJl bnQgb25lcywgYXMgbmVjZXNzYXJ5KSB0byAqYWxsKg0KPiBpbnN0YW5jZXMgaW4gdGhlIGVkazIg dHJlZS4NCj4gPg0KPiA+IEkgYWdyZWUgd2l0aCB5b3VyIGludGVudCB0byBwcmV2ZW50IGNvZGUg ZHVwbGljYXRpb24uIEJ1dCBJIHN0aWxsIGZlZWwgdGhhdCB3ZQ0KPiBzaG91bGQgZW5oYW5jZSBU aW1lckxpYi4NCj4gPiBCZWNhdXNlLCBhIHVzZXIgaW50ZW5kaW5nIHRvIHVzZSB2YXJpb3VzIHRp bWVyIGZ1bmN0aW9uYWxpdGllcywgc2hvdWxkDQo+IGluY2x1ZGUgb25seSBvbmUgaGVhZGVyIGZp bGUgKFRpbWVyTGliLmgpIGFuZCBvbmUgTGlicmFyeS4NCj4gPiBMaWtlIE1pa2UgcG9pbnRlZCBv dXQgaW4geW91ciB0aHJlYWQgdG8gZW5oYW5jZSB0aGUgVGltZXJUaWNrRGlmZkxpYiwNCj4gPiBp biBmdXR1cmUgaWYgc29tZW9uZSB3aXNoZXMgdG8gYWRkIHNvbWUgbmV3IGZ1bmN0aW9uYWxpdHkg cmVsYXRlZCB0bw0KPiA+IHRpbWVyIGFuZCBpZiBoZSB3cml0ZXMgYSBuZXcgbGlicmFyeSBmb3Ig aXQsIHRoZW4gaXRzIGFkZGVkIGN1bWJlcnNvbWUNCj4gPiBmb3IgdXNlcnMgKHVzZXIgaGFzIHRv IGluY2x1ZGUgMyBoZWFkZXIgZmlsZXMgYW5kIGxpYnJhcmllcyAzLikNCj4gPg0KPiA+IFRvIHBy ZXZlbnQgY29kZSBkdXBsaWNhdGlvbiwgY2FuIHdlIGxvb2sgYXQgb3RoZXIgd2F5cyBsaWtlIHVz aW5nIHdlYWsNCj4gc3ltYm9scyBmb3Igc3VjaCBmdW5jdGlvbnMgdGhhdCBhcmUgcGxhdGZvcm0g YWdub3N0aWMuDQo+ID4gT3IgcHV0dGluZyB0aGVzZSBnZW5lcmljIGZ1bmN0aW9ucyBpbiBvbmUg LmMgZmlsZSBpbiBNZGVQa2cgYW5kIGluY2x1ZGUgdGhhdA0KPiBmaWxlIGluIGluZiBmaWxlIG9m IFRpbWVyTGliIGltcGxlbWVudGF0aW9uPw0KPiA+DQo+ID4+DQo+ID4+ICgyKSBUaGUgY2FsY3Vs YXRpb24gaW4geW91ciBHZXRFbGFwc2VkVGltZSgpIGZ1bmN0aW9uIGlzIHdyb25nLg0KPiA+PiBH ZXRUaW1lSW5OYW5vU2Vjb25kKCkgY29udmVydHMgYSBzbWFsbCAqZGlmZmVyZW5jZSogb2YgdGlj a3MgdG8gdGltZS4NCj4gPj4gSXQgZG9lcyBub3QgY29udmVydCBhbiBhYnNvbHV0ZSB0aWNrIHZh bHVlIHRvIGFuIGFic29sdXRlIHRpbWUuDQo+ID4NCj4gPiBUaGUgR2V0VGltZUluTmFub1NlY29u ZCgpIGlzIG9ubHkgY29uY2VybmVkIHdpdGggdGhlIHRpY2tzLiBUaG9zZSB0aWNrcw0KPiBjYW4g YmUgYSBkaWZmZXJlbmNlIG9mIHRpY2tzIG9yIGFic29sdXRlIHRpY2tzIGZyb20gY291bnRlciBz dGFydC4NCj4gPiBUaGUgKmRpZmZlcmVuY2UqIHBhcnQgb2YgR2V0RWxhcHNlZFRpbWUgd291bGQg ZGVwZW5kIG9uIGl0cyB1c2FnZS4gTGlrZQ0KPiB0aGlzIDoNCj4gPiBTdGFydCA9IEdldEVsYXBz ZWRUaW1lICgwKTsNCj4gPiAvLyBkbyBzb21ldGhpbmcNCj4gPiBFbmQgPSBHZXRFbGFwc2VkVGlt ZSAoU3RhcnQpOw0KPiA+DQo+ID4+DQo+ID4+IEZ1cnRoZXJtb3JlLCB0aWNrIGRpZmZlcmVuY2Vz IGFyZSBsZXNzIHRyaXZpYWwgdG8gY2FsY3VsYXRlIHRoYW4gb25lDQo+ID4+IG1pZ2h0IGltYWdp bmUsIGJlY2F1c2UgKGEpIGEgcGVyZm9ybWFuY2UgY291bnRlciBtYXkgY291bnQgZG93biwgYW5k DQo+ID4+ICppbmRlcGVuZGVudGx5KiwgKGIpIHRoZSBudW1lcmljIGxvdyBib3VuZCBvZiB0aGUg Y291bnRlciByYW5nZSBtYXkNCj4gPj4gbm90IGJlIHplcm8uDQo+ID4+DQo+ID4NCj4gPiBUaGlz IGlzIG5pY2Ugb2JzZXJ2YXRpb24uIEl0IHdhcyBhbiBvdmVyc2lnaHQgb24gbXkgcGFydC4NCj4g Pg0KPiA+PiBFYXJsaWVyIEkgcHJvcG9zZWQgYSBuZXcgVGltZXJUaWNrRGlmZkxpYiBjbGFzcyAo YW5kIGltcGxlbWVudGF0aW9uKQ0KPiA+PiBmb3IgY2VudHJhbGl6aW5nIGV4YWN0bHkgdGhpcyBr aW5kIG9mIGNhbGN1bGF0aW9uLiBQbGVhc2Ugc2VlIHRoZSB0aHJlYWQgYXQ6DQo+ID4+DQo+ID4+ ICAgW2VkazJdIFRpbWVyVGlja0RpZmZMaWIgZm9yIE1kZVBrZz8NCj4gPj4NCj4gPj4NCj4gaHR0 cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNB JTJGJTJGbWlkLg0KPiA+PiBtYWlsLWFyY2hpdmUuY29tJTJGOGNiYTJhNTgtMTMzMy03NzMzLTAz MWQtDQo+ID4+DQo+IDA4ODNkYmQ4NDRjNiU0MHJlZGhhdC5jb20mZGF0YT0wMiU3QzAxJTdDcGFu a2FqLmJhbnNhbCU0MG54cC5jbw0KPiA+Pg0KPiBtJTdDMTdlZmI5NmYzNWYwNDU2YmU0MzEwOGQ1 NTgzNGM3MjElN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1DQo+ID4+DQo+IGMzMDE2MzUlN0Mw JTdDMCU3QzYzNjUxMTkwNjA2MzA5MjA5OCZzZGF0YT1BSXFJSTlWY0pFUVhySm1NNzlHDQo+ID4+ IERTJTJCekJ1MyUyQkNVdmElMkZaRVNhd01SbmR6QSUzRCZyZXNlcnZlZD0wDQo+ID4+DQo+ID4N Cj4gPiBZb3VyIGxpYnJhcnkgaGFzIGV2ZXJ5dGhpbmcgdGhhdCBJIG5lZWQuIENhbiB3ZSB3b3Jr IG9uIHRvIGluY2x1ZGUgdGhpcyBpbg0KPiBNZGVQa2cgPw0KPiA+IFRoZW4gSSB3b24ndCBuZWVk IG15IGNoYW5nZXMuDQo+IA0KPiAoMSkgUGxlYXNlIGZlZWwgZnJlZSB0byBwaWNrIHVwIG15IGNv ZGUgYW5kIHdvcmsgb24gdXBzdHJlYW1pbmcgaXQgLS0ganVzdA0KPiBwbGVhc2UgcHJlc2VydmUg bXkgUy1vLWIgb24gdGhlIHBhdGNoKGVzKSAoaW4gYWRkaXRpb24gdG8geW91cnMpLCBhbmQgdGhl IFJlZA0KPiBIYXQgY29weXJpZ2h0IG5vdGljZSAoaW4gYWRkaXRpb24gdG8geW91ciBjb21wYW55 J3MpIGluIHRoZSBuZXcgZmlsZXMuDQo+IA0KPiAoMikgTGFzdCB0aW1lIEkgY291bnRlZCAocmVh ZGluZyB1cCBvbiB0aGUgb3JpZ2luYWwgdGhyZWFkKSwgdGhlcmUgd2VyZQ0KPiAyMSBUaW1lckxp YiBpbnN0YW5jZXMgaW4gZWRrMi4gQWRkaW5nIHRoZSBzYW1lIGZ1bmN0aW9uIHRvIGV2ZXJ5IG9u ZSBvZg0KPiB0aGVtIGxvb2tzIHRlcnJpYmxlLiBJbiBlZGsyLCBJIGtub3cgb2Ygb25seSB0d28g d2F5cyB0byBhdm9pZCB0aGlzOg0KPiANCj4gLSBpbnRyb2R1Y2UgYSBuZXcgbGlicmFyeSBjbGFz cyAod2l0aCBjbGFzcyBoZWFkZXIgZmlsZSksIGFuZCBhIHNpbXBsZSBsaWJyYXJ5DQo+IGluc3Rh bmNlIChpbXBsZW1lbnRhdGlvbikNCj4gDQo+IC0gY29sbGVjdCAoPW1vdmUpIGFzIG1hbnkgYXMg cG9zc2libGUgb2YgdGhlIGV4aXN0aW5nIGxpYnJhcnkgaW5zdGFuY2VzIHVuZGVyDQo+IGNvbW1v biBzdWJkaXJlY3Rvcmllcywgc28gdGhhdCB0aGVpciBJTkYgZmlsZXMgYXJlIGJhc2ljYWxseSBp biB0aGUgc2FtZQ0KPiBzdWJkaXJlY3RvcnkuIFRoZW4gdGhlIG5ldyBjb2RlIGNhbiBiZSBpbXBs ZW1lbnRlZCBpbiBhIG5ldyBDIGZpbGUsIHVuZGVyDQo+IHRoZSBzYW1lIHN1YmRpcmVjdG9yeSwg YW5kIHRoZW4gYWxsIElORiBmaWxlcyBjYW4gcmVmZXIgdG8gdGhlIG5ldyBDIGZpbGUNCj4gZGly ZWN0bHkuIFRoaXMga2luZCBvZiBjb2RlIHNoYXJpbmcgd29ya3MgdmVyeSB3ZWxsIGlmIHRoZSBs aWJyYXJ5IGluc3RhbmNlcyBhcmUNCj4gb3RoZXJ3aXNlIGNsb3NlbHkgcmVsYXRlZC4gSXQgZG9l cyBub3Qgd29yayBhdCBhbGwgaWYgdGhlIGxpYnJhcnkgaW5zdGFuY2VzIGxpdmUgaW4NCj4gc2Vw YXJhdGUgdG9wLWxldmVsIHBhY2thZ2VzICh3aGljaCBpcyBCVFcgdGhlIGNhc2UgaGVyZSkuDQo+ IA0KPiANCj4gSXQgc2VlbXMgdGhhdCBNaWtlIHdhc24ndCBvcHBvc2VkIHRvIGludHJvZHVjaW5n IGEgVGltZXJUaWNrRGlmZkxpYiBjbGFzcyAob3INCj4gc29tZXRoaW5nIHNpbWlsYXIpIHRvIE1k ZVBrZy4gSG93ZXZlciwgbW9yZSB3b3JrIGxvb2tlZCBuZWNlc3NhcnkgdGhhbiBJDQo+IGhhZCBl eHBlY3RlZCwgZXNwLiB3aXRoIHJlZ2FyZCB0byB0aGUgY2FjaGluZyBvZiB0aW1lciBoYXJkd2Fy ZQ0KPiBjaGFyYWN0ZXJpc3RpY3MgKHBsZWFzZSBzZWUgdGhlIGxhc3QgZmV3IG1lc3NhZ2VzIGlu IHRoZSB0aHJlYWQNCj4gLS0gZWl0aGVyIHRoZSBjb2RlIGhhcyB0byBhZGQgaXRzIG93biBjYWNo aW5nLCBvciBhbGwgZXhpc3RpbmcsIHN1aXRhYmxlIFRpbWVyTGliDQo+IGluc3RhbmNlcyBoYXZl IHRvIGJlIHZlcmlmaWVkIGFib3V0IGNhY2hpbmcpLiBBZ2FpbiwgcGxlYXNlIGZlZWwgZnJlZSB0 byBwaWNrDQo+IHVwIHRoZSBjb2RlIGFuZCByZXdvcmsgaXQgYXMgTWlrZSBzdWdnZXN0cyAtLSBp dCdzIGJhc2ljYWxseSB0aGUNCj4gR2V0VGlja0RpZmZlcmVuY2UoKSBmdW5jdGlvbiBvbmx5IHRo YXQgYWRkcyB2YWx1ZS4gRmVlbCBmcmVlIHRvIGhhbW1lciBpdCBpbnRvDQo+IGFueSBzaGFwZSBv ciBmb3JtIG5lY2Vzc2FyeS4NCg0KVGhhbmsgeW91LiBJIHdpbGwgdHJ5IHRvIHdvcmsgb24gdGhp cyBwcm9ibGVtIG9mIGludGVncmF0aW5nIHRoZXNlIGNoYW5nZXMgaW4gbXVsdGlwbGUNClRpbWVy TGliIGluc3RhbmNlcywgd2hlbiBJIGhhdmUgc29tZSByb29tIG9uIG15IHBsYXRlLg0KRm9yIG5v dywgSSBndWVzcyBJIHdpbGwganVzdCBhZGQgd3JhcHBlciBmdW5jdGlvbnMgb24gdG9wIG9mIFRp bWVyTGliIEFQSXMgZm9yIG15IFBsYXRmb3JtIG9ubHkuDQoNCj4gDQo+IFRoYW5rcw0KPiBMYXN6 bG8NCg0KUmVnYXJkcywNClBhbmthaiBCYW5zYWwNCg==