From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3426C41C8B; Mon, 13 Feb 2023 18:49:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 108CF41151; Mon, 13 Feb 2023 18:49:47 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 9433340EE4; Mon, 13 Feb 2023 18:49:45 +0100 (CET) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01D93FD3.8DBE02D6" Subject: RE: [PATCH] eal: introduce atomics abstraction Date: Mon, 13 Feb 2023 18:49:42 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87739@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] eal: introduce atomics abstraction Thread-Index: Adk/ytOnO6wJ5rs6R3SPfhiuIFZhvwACDDDw References: <20230208012040.GA22219@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <98CBD80474FA8B44BF855DF32C47DC35D8770D@smartserver.smartshare.dk> <20230208163521.GB5117@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <20230209173017.GA21854@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <20230210203013.GB25500@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Ben Magistro" Cc: "Honnappa Nagarahalli" , "Tyler Retzlaff" , , , , , , , "nd" , , "Bruce Richardson" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This is a multi-part message in MIME format. ------_=_NextPart_001_01D93FD3.8DBE02D6 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQmVuLA0KDQogDQoNCk9ubHkgYnVnIGZpeGVzIGFyZSBiYWNrcG9ydGVkIHRvIExUUy4gTm90 IGV2ZW4gbmV3IE5JQyBkcml2ZXJzIGFyZSBiYWNrcG9ydGVkLg0KDQogDQoNClJlZmVyZW5jZTog aHR0cHM6Ly9kb2MuZHBkay5vcmcvZ3VpZGVzL2NvbnRyaWJ1dGluZy9zdGFibGUuaHRtbCN3aGF0 LWNoYW5nZXMtc2hvdWxkLWJlLWJhY2twb3J0ZWQgPGh0dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRl cy9jb250cmlidXRpbmcvc3RhYmxlLmh0bWwjd2hhdC1jaGFuZ2VzLXNob3VsZC1iZS1iYWNrcG9y dGVkPiANCg0KIA0KDQotTW9ydGVuDQoNCiANCg0KRnJvbTogQmVuIE1hZ2lzdHJvIFttYWlsdG86 a29uY2VwdDFAZ21haWwuY29tXSANClNlbnQ6IE1vbmRheSwgMTMgRmVicnVhcnkgMjAyMyAxNy40 Nw0KDQoNCg0KIA0KDQpPbiBNb24sIEZlYiAxMywgMjAyMyBhdCAxMDo1NSBBTSBCcnVjZSBSaWNo YXJkc29uIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4gd3JvdGU6DQoNCglPbiBNb24sIEZl YiAxMywgMjAyMyBhdCAxMDoyODo0MEFNIC0wNTAwLCBCZW4gTWFnaXN0cm8gd3JvdGU6DQoJPiAg ICBUaGVyZSBpcyBhIHRocmVhZCBkaXNjdXNzaW5nIGEgY2hhbmdlIHRvIHRoZSBzdGFuZGFyZCBb MV0gYnV0IEkgaGF2ZQ0KCT4gICAgbm90IHNlZW4gYW55dGhpbmcgZXhwbGljaXQgeWV0IGFib3V0 IG1vdmluZyB0byBDMTEuICBJIGFtIHBlcnNvbmFsbHkgaW4NCgk+ICAgIGZhdm9yIG9mIG1ha2lu ZyB0aGUganVtcCB0byBDMTEgbm93IGFzIHBhcnQgb2YgdGhlIDIzLnggYnJhbmNoIGFuZA0KCT4g ICAgcHJvdmlkZWQgbXkgdGhvdWdodHMgaW4gdGhlIGxpbmtlZCB0aHJlYWQgKHdoYXQgb3RoZXIg cHJvamVjdHMgdXNpbmcNCgk+ICAgIERQREsgaGF2ZSBhcyBtaW5pbXVtIGNvbXBpbGVyIHJlcXVp cmVtZW50cywgQ2VudE9TIDcgRU9MIGRhdGVzKS4NCgk+ICAgIElzIHRoZSBsb25nIHRlcm0gcGxh biB0byBiYWNrcG9ydCB0aGlzIGNoYW5nZSBzZXQgdG8gdGhlIGV4aXN0aW5nIExUUw0KCT4gICAg cmVsZWFzZSBvciBpcyB0aGlzIG1lYW50IHRvIGJlIHNvbWV0aGluZyBpbnRyb2R1Y2VkIGZvciB1 c2UgaW4gMjMueCBhbmQNCgk+ICAgIGdvaW5nIGZvcndhcmQ/ICBJIHRoaW5rIEkgd2FzIChwcm9i YWJseSBuYWl2ZWx5KSBhc3N1bWluZyB0aGlzIHdvdWxkIGJlDQoJPiAgICBhIG5ldyBmZWF0dXJl IGluIHRoZSAyMy54IGdvaW5nIGZvcndhcmQgb25seS4NCgk+ICAgIFsxXSBbMV1odHRwOi8vbWFp bHMuZHBkay5vcmcvYXJjaGl2ZXMvZGV2LzIwMjMtRmVicnVhcnkvMjYyMTg4Lmh0bWwNCgk+IA0K CVdlIGRvbid0IGJ1bXAgcmVxdWlyZW1lbnRzIGZvciBvbGRlciBMVFMgcmVsZWFzZXMsIHNvIGFu eSBjaGFuZ2UgdG8gbWluaW11bQ0KCXJlcXVpcmVkIHZlcnNpb25zIHdvdWxkIG9ubHkgYmUgZm9y IHRoZSAyMy54IHNlcmllcyByZWxlYXNlcw0KDQogDQoNCkkgbWVhbnQgdGhlIGF0b21pY3MgY2hh bmdlIHNldCwgSSBzaG91bGQgaGF2ZSBiZWVuIGNsZWFyZXIgaW4gdGhhdCBxdWVzdGlvbiwgbXkg YXBvbG9naWVzLiAgSWYgdGhlIGF0b21pYyB3b3JrIGlzIHBsYW5uZWQgdG8gYmUgYmFja3BvcnRl ZCwgdGhlIHF1ZXN0aW9uIG9mIGlmL3doZW4gdGhlIEMxMSBzdGFuZGFyZCB3b3VsZCBiZSBhZG9w dGVkIHNlZW1zIGxlc3MgcmVsZXZhbnQgc2luY2UgaXQgd291bGQgbmVlZCB0byBiZSBzdXBwb3J0 ZWQgZm9yIERQREsgdmVyc2lvbnMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgQzExIHN0YW5kYXJkIHJl cXVpcmVtZW50IHRvby4NCg0K ------_=_NextPart_001_01D93FD3.8DBE02D6 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50 PSJNaWNyb3NvZnQgV29yZCAxMiAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0NCi8qIEZv bnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0 aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQt ZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQt ZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAy IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYi O30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K CWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQsIHNw YW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9y OnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnNwYW4uRW1haWxTdHlsZTE3 DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp Iiwic2Fucy1zZXJpZiI7DQoJY29sb3I6IzFGNDk3RDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28t c3R5bGUtdHlwZTpleHBvcnQtb25seTt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIu MHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4wcHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYu V29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBn dGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIx MDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpz aGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIg Lz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT48L2hlYWQ+PGJvZHkgbGFuZz1F Ti1VUyBsaW5rPWJsdWUgdmxpbms9cHVycGxlPjxkaXYgY2xhc3M9V29yZFNlY3Rpb24xPjxwIGNs YXNzPU1zb05vcm1hbD48YSBuYW1lPSJfTWFpbEVuZENvbXBvc2UiPjxzcGFuIHN0eWxlPSdmb250 LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7Y29sb3I6IzFG NDk3RCc+SGkgQmVuLDxvOnA+PC9vOnA+PC9zcGFuPjwvYT48L3A+PHAgY2xhc3M9TXNvTm9ybWFs PjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fu cy1zZXJpZiI7Y29sb3I6IzFGNDk3RCc+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPjxwIGNs YXNzPU1zb05vcm1hbD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseToi Q2FsaWJyaSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPk9ubHkgYnVnIGZpeGVzIGFyZSBi YWNrcG9ydGVkIHRvIExUUy4gTm90IGV2ZW4gbmV3IE5JQyBkcml2ZXJzIGFyZSBiYWNrcG9ydGVk LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2Zv bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtjb2xvcjoj MUY0OTdEJz48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxz cGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1z ZXJpZiI7Y29sb3I6IzFGNDk3RCc+UmVmZXJlbmNlOiA8L3NwYW4+PGEgaHJlZj0iaHR0cHM6Ly9k b2MuZHBkay5vcmcvZ3VpZGVzL2NvbnRyaWJ1dGluZy9zdGFibGUuaHRtbCN3aGF0LWNoYW5nZXMt c2hvdWxkLWJlLWJhY2twb3J0ZWQiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2ZvbnQt ZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiInPmh0dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRl cy9jb250cmlidXRpbmcvc3RhYmxlLmh0bWwjd2hhdC1jaGFuZ2VzLXNob3VsZC1iZS1iYWNrcG9y dGVkPC9zcGFuPjwvYT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseToi Q2FsaWJyaSIsInNhbnMtc2VyaWYiO2NvbG9yOiMxRjQ5N0QnPjxvOnA+PC9vOnA+PC9zcGFuPjwv cD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m YW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtjb2xvcjojMUY0OTdEJz48bzpwPiZuYnNwOzwv bzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNpemU6 MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7Y29sb3I6IzFGNDk3RCc+ LU1vcnRlbjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5 bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjtj b2xvcjojMUY0OTdEJz48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PGRpdiBzdHlsZT0nYm9y ZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNt IDQuMHB0Jz48ZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPjxzcGFuIHN0eWxlPSdmb250 LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlmIic+RnJvbTo8L3Nw YW4+PC9iPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJUYWhvbWEi LCJzYW5zLXNlcmlmIic+IEJlbiBNYWdpc3RybyBbbWFpbHRvOmtvbmNlcHQxQGdtYWlsLmNvbV0g PGJyPjxiPlNlbnQ6PC9iPiBNb25kYXksIDEzIEZlYnJ1YXJ5IDIwMjMgMTcuNDc8YnI+PGJyPjwv c3Bhbj48bzpwPjwvbzpwPjwvcD48L2Rpdj48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8 L286cD48L3A+PGRpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD5PbiBNb24sIEZlYiAxMywgMjAy MyBhdCAxMDo1NSBBTSBCcnVjZSBSaWNoYXJkc29uICZsdDs8YSBocmVmPSJtYWlsdG86YnJ1Y2Uu cmljaGFyZHNvbkBpbnRlbC5jb20iPmJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPC9hPiZndDsg d3JvdGU6PG86cD48L286cD48L3A+PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9J2JvcmRlcjpub25l O2JvcmRlci1sZWZ0OnNvbGlkICNDQ0NDQ0MgMS4wcHQ7cGFkZGluZzowY20gMGNtIDBjbSA2LjBw dDttYXJnaW4tbGVmdDo0LjhwdDttYXJnaW4tcmlnaHQ6MGNtJz48cCBjbGFzcz1Nc29Ob3JtYWw+ T24gTW9uLCBGZWIgMTMsIDIwMjMgYXQgMTA6Mjg6NDBBTSAtMDUwMCwgQmVuIE1hZ2lzdHJvIHdy b3RlOjxicj4mZ3Q7Jm5ic3A7ICZuYnNwOyBUaGVyZSBpcyBhIHRocmVhZCBkaXNjdXNzaW5nIGEg Y2hhbmdlIHRvIHRoZSBzdGFuZGFyZCBbMV0gYnV0IEkgaGF2ZTxicj4mZ3Q7Jm5ic3A7ICZuYnNw OyBub3Qgc2VlbiBhbnl0aGluZyBleHBsaWNpdCB5ZXQgYWJvdXQgbW92aW5nIHRvIEMxMS4mbmJz cDsgSSBhbSBwZXJzb25hbGx5IGluPGJyPiZndDsmbmJzcDsgJm5ic3A7IGZhdm9yIG9mIG1ha2lu ZyB0aGUganVtcCB0byBDMTEgbm93IGFzIHBhcnQgb2YgdGhlIDIzLnggYnJhbmNoIGFuZDxicj4m Z3Q7Jm5ic3A7ICZuYnNwOyBwcm92aWRlZCBteSB0aG91Z2h0cyBpbiB0aGUgbGlua2VkIHRocmVh ZCAod2hhdCBvdGhlciBwcm9qZWN0cyB1c2luZzxicj4mZ3Q7Jm5ic3A7ICZuYnNwOyBEUERLIGhh dmUgYXMgbWluaW11bSBjb21waWxlciByZXF1aXJlbWVudHMsIENlbnRPUyA3IEVPTCBkYXRlcyku PGJyPiZndDsmbmJzcDsgJm5ic3A7IElzIHRoZSBsb25nIHRlcm0gcGxhbiB0byBiYWNrcG9ydCB0 aGlzIGNoYW5nZSBzZXQgdG8gdGhlIGV4aXN0aW5nIExUUzxicj4mZ3Q7Jm5ic3A7ICZuYnNwOyBy ZWxlYXNlIG9yIGlzIHRoaXMgbWVhbnQgdG8gYmUgc29tZXRoaW5nIGludHJvZHVjZWQgZm9yIHVz ZSBpbiAyMy54IGFuZDxicj4mZ3Q7Jm5ic3A7ICZuYnNwOyBnb2luZyBmb3J3YXJkPyZuYnNwOyBJ IHRoaW5rIEkgd2FzIChwcm9iYWJseSBuYWl2ZWx5KSBhc3N1bWluZyB0aGlzIHdvdWxkIGJlPGJy PiZndDsmbmJzcDsgJm5ic3A7IGEgbmV3IGZlYXR1cmUgaW4gdGhlIDIzLnggZ29pbmcgZm9yd2Fy ZCBvbmx5Ljxicj4mZ3Q7Jm5ic3A7ICZuYnNwOyBbMV0gWzFdPGEgaHJlZj0iaHR0cDovL21haWxz LmRwZGsub3JnL2FyY2hpdmVzL2Rldi8yMDIzLUZlYnJ1YXJ5LzI2MjE4OC5odG1sIiB0YXJnZXQ9 Il9ibGFuayI+aHR0cDovL21haWxzLmRwZGsub3JnL2FyY2hpdmVzL2Rldi8yMDIzLUZlYnJ1YXJ5 LzI2MjE4OC5odG1sPC9hPjxicj4mZ3Q7IDxicj5XZSBkb24ndCBidW1wIHJlcXVpcmVtZW50cyBm b3Igb2xkZXIgTFRTIHJlbGVhc2VzLCBzbyBhbnkgY2hhbmdlIHRvIG1pbmltdW08YnI+cmVxdWly ZWQgdmVyc2lvbnMgd291bGQgb25seSBiZSBmb3IgdGhlIDIzLnggc2VyaWVzIHJlbGVhc2VzPG86 cD48L286cD48L3A+PC9ibG9ja3F1b3RlPjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxvOnA+Jm5i c3A7PC9vOnA+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPkkgbWVhbnQgdGhlIGF0 b21pY3MgY2hhbmdlIHNldCwgSSBzaG91bGQgaGF2ZSBiZWVuIGNsZWFyZXIgaW4gdGhhdCBxdWVz dGlvbiwgbXkgYXBvbG9naWVzLiZuYnNwOyBJZiB0aGUgYXRvbWljIHdvcmsgaXMgcGxhbm5lZCB0 byBiZSBiYWNrcG9ydGVkLCB0aGUgcXVlc3Rpb24gb2YgaWYvd2hlbiB0aGUgQzExIHN0YW5kYXJk IHdvdWxkIGJlIGFkb3B0ZWQmbmJzcDtzZWVtcyBsZXNzIHJlbGV2YW50IHNpbmNlIGl0IHdvdWxk IG5lZWQgdG8gYmUgc3VwcG9ydGVkIGZvciBEUERLIHZlcnNpb25zIHRoYXQgZG8gbm90IGhhdmUg dGhlIEMxMSBzdGFuZGFyZCByZXF1aXJlbWVudCB0b28uPG86cD48L286cD48L3A+PC9kaXY+PC9k aXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4= ------_=_NextPart_001_01D93FD3.8DBE02D6--