From owner-sc22wg5@open-std.org  Wed Dec  3 18:52:09 2008
Return-Path: <owner-sc22wg5@open-std.org>
X-Original-To: sc22wg5-dom7
Delivered-To: sc22wg5-dom7@www2.open-std.org
Received: by www2.open-std.org (Postfix, from userid 521)
	id 15AA5C56CF8; Wed,  3 Dec 2008 18:52:09 +0100 (CET)
X-Original-To: sc22wg5@open-std.org
Delivered-To: sc22wg5@open-std.org
Received: from ppsw-0.csi.cam.ac.uk (ppsw-0.csi.cam.ac.uk [131.111.8.130])
	by www2.open-std.org (Postfix) with ESMTP id 8293BC4596D
	for <sc22wg5@open-std.org>; Wed,  3 Dec 2008 18:52:07 +0100 (CET)
X-Cam-AntiVirus: no malware found
X-Cam-SpamDetails: not scanned
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from hermes-1.csi.cam.ac.uk ([131.111.8.51]:33562)
	by ppsw-0.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.150]:25)
	with esmtpa (EXTERNAL:nmm1) id 1L7vtP-0003R1-0B (Exim 4.70) for sc22wg5@open-std.org
	(return-path <nmm1@hermes.cam.ac.uk>); Wed, 03 Dec 2008 17:52:07 +0000
Received: from prayer by hermes-1.csi.cam.ac.uk (hermes.cam.ac.uk)
	with local (PRAYER:nmm1) id 1L7vtP-0006kp-1L (Exim 4.67) for sc22wg5@open-std.org
	(return-path <nmm1@hermes.cam.ac.uk>); Wed, 03 Dec 2008 17:52:07 +0000
Received: from [83.67.89.123] by webmail.hermes.cam.ac.uk
	with HTTP (Prayer-1.3.1); 03 Dec 2008 17:52:07 +0000
Date: 03 Dec 2008 17:52:07 +0000
From: "N.M. Maclaren" <nmm1@cam.ac.uk>
To: sc22wg5@open-std.org
Subject: MPI non-blocking transfers and ASYNCHRONOUS
Message-ID: <Prayer.1.3.1.0812031752070.6705@hermes-1.csi.cam.ac.uk>
X-Mailer: Prayer v1.3.1
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="-1870869256-1804289383-1228326727=:6705"
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1870869256-1804289383-1228326727=:6705
Content-Type: text/plain; format=flowed; charset=ISO-8859-1

I attach a proposal for how to add this to the Technical Report. Unless I 
have missed something fundamental, it addresses the problem of the 
semantics of MPI buffers. Note that it does NOT address the type matching 
rules - it is orthogonal to those.


Regards,
Nick Maclaren,
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Email:  nmm1@cam.ac.uk
Tel.:  +44 1223 334761    Fax:  +44 1223 334679


---1870869256-1804289383-1228326727=:6705
Content-Type: application/unknown; name=MPI_asynch.txt
Content-Disposition: attachment; filename=MPI_asynch.txt
Content-Description: MPI_asynch.txt
Content-Transfer-Encoding: BASE64

VGhlIGdvb2QgbmV3cyBpcyB0aGF0IG5vIGNoYW5nZXMgdG8gdGhlIG1haW4g
Ym9keSBvZiB0aGUgc3RhbmRhcmQgYXJlCm5lZWRlZCwgYW5kIGFsbCBvZiB0
aGUgZXh0ZW5zaW9ucyBhcmUgcmVzdHJpY3RlZCB0byB3aXRoaW4gdGhlIG1v
ZHVsZQpJU09fQ19CSU5ESU5HLiAgVGhpcyBkb2N1bWVudCBwcm9wb3NlcyBo
b3cuCgoKTVBJJ3MgVHJhbnNmZXIgU2VtYW50aWNzCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQoKVGhpcyBpcyBub3QgcmVmZXJyaW5nIHRvIHRoZSBwcm9i
bGVtIG9mIG1hdGNoaW5nIE1QSSdzICdjaG9pY2UnIChpLmUuCmFyYml0cmFy
eSB0eXBlKSBhcmd1bWVudHMgdG8gRm9ydHJhbiwgYnV0IHRvIHRoZSBhY3R1
YWwgc2VtYW50aWNzIG9mCnRoZSB0cmFuc2ZlciAoaS5lLiBzeW5jaHJvbm91
cywgYXN5bmNocm9ub3VzIGFuZCBleHRlcm5hbCkuCgpNUEkgaGFzIHRocmVl
IGZvcm1zIG9mIHRyYW5zZmVyOgoKICAgIDEpIEJsb2NraW5nIHBvaW50LXRv
LXBvaW50IHRyYW5zZmVycyBhbmQgY29sbGVjdGl2ZSB0cmFuc2ZlcnMuClRo
ZXNlIGhhdmUgZXhhY3RseSB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgbm9ybWFs
IEkvTywgYW5kIGNhbiBlYXNpbHkgYmUKZGVzY3JpYmVkIGluIEZvcnRyYW4g
dGVybXMgd2l0aG91dCB1c2luZyBhbnkgc3BlY2lhbCBhdHRyaWJ1dGUuICBU
aGUgTVBJCkZvcnVtIGlzIGFsbW9zdCBjZXJ0YWlubHkgYXdhcmUgb2YgdGhh
dC4KCiAgICAyKSBOb24tYmxvY2tpbmcgcG9pbnQtdG8tcG9pbnQgdHJhbnNm
ZXJzLiAgVGhlc2UgaGF2ZSBleGFjdGx5IHRoZQpzYW1lIHNlbWFudGljcyBh
cyBGb3J0cmFuIGFzeW5jaHJvbm91cyBJL08sIGFuZCBjb3VsZCBldmVuIGJl
CmltcGxlbWVudGVkIHVzaW5nIGl0IChpZiB3ZSBpZ25vcmUgdGhlIGFib3Zl
bWVudGlvbmVkIHR5cGUgbWF0Y2gKcHJvYmxlbXMpLiAgVGhpcyBkb2N1bWVu
dCBwcm9wb3NlcyB0aGF0IHdlIGFkZCBzb21lIGV4dGVuc2lvbnMgdG8gdGhl
Cm1vZHVsZSBJU09fQ19CSU5ESU5HIGFuZCB0aGUgcHJvcG9zZWQgQyBoZWFk
ZXIsIGFuZCByZWNvbW1lbmQgdGhlIE1QSQpGb3J1bSB0byByZXF1aXJlIHRo
ZSBBU1lOQ0hST05PVVMgYXR0cmlidXRlIGZvciBub24tYmxvY2tpbmcgSS9P
LgoKICAgIDMpIE1QSS0yIG9uZS1zaWRlZCB0cmFuc2ZlcnMgLSBzcGVjaWZp
Y2FsbHksIHRoZSB0YXJnZXRzLiAgVGhlCnNlbWFudGljcyBvZiB0aGVzZSBh
cmUgbm90IGFzIGFyYml0cmFyeSBhcyBGb3J0cmFuJ3Mgc3BlY2lmaWNhdGlv
biBvZgpWT0xBVElMRSwgYnV0IGFyZSBzdWZmaWNpZW50bHkgY2xvc2UgdGhh
dCB0aGVyZSBpcyBsaXR0bGUgcG9pbnQgaW4Kc3BlY2lmeWluZyBhbnl0aGlu
ZyBvdGhlciB0aGFuIHRoZSBWT0xBVElMRSBhdHRyaWJ1dGUuICBUaGUgTVBJ
IEZvcnVtCnNob3VsZCBiZSByZWNvbW1lbmRlZCB0byByZXF1aXJlIHRoZSBW
T0xBVElMRSBhdHRyaWJ1dGUgZm9yIHRhcmdldAp3aW5kb3dzLgoKVGhlcmUg
aXMgYSBzdHJvbmcgc2Vuc2UgaW4gd2hpY2ggdGhlIGFib3ZlIHRocmVlIGNh
dGVnb3JpZXMgY291bGQgYmUKcmVwbGFjZWQgYnkgJ25vcm1hbCBQT1NJWCBJ
L08nLCAnUE9TSVggYXN5bmNocm9ub3VzIEkvTycgYW5kICdDcmF5IFNITUVN
CihSRE1BKScuICBJIGFtIHRoZXJlZm9yZSBub3QgcHJvcG9zaW5nIGFueXRo
aW5nIE1QSS1zcGVjaWZpYywgYnV0IHNvbWUKZnVuY3Rpb25hbGl0eSB0aGF0
IHdvdWxkIGhhbmRsZSB0aGUgdGhyZWUgY2xhc3NlcyBvZiBJL08sIHdoYXRl
dmVyCm1lY2hhbmlzbSBleHRlcm5hbCB0byBGb3J0cmFuIHByb3ZpZGVzIGl0
LgoKCkZvcnRyYW4gQVNZTkNIUk9OT1VTCi0tLS0tLS0tLS0tLS0tLS0tLS0t
CgpUaGUgcG9pbnQgb2YgdXNpbmcgdGhpcyBmb3IgTVBJIG5vbi1ibG9ja2lu
ZyB0cmFuc2ZlcnMgaXMgdGhhdCB0aGV5IGFyZQp3aWRlc3ByZWFkICh3aGVy
ZWFzIG9uZS1zaWRlZCBvbmVzIGFyZSBub3QpLCBpZGVhbCBmb3IgdXNlIG9u
IGNvbW1vZGl0eQpjbHVzdGVycyAod2hlcmVhcyBvbmUtc2lkZWQgb25lcyBh
cmUgbm90KSwgYW5kIE1QSSBwcm9ncmFtbWVycyBhcmUgdmVyeQpjb25jZXJu
ZWQgYWJvdXQgZWZmaWNpZW5jeS4gIEFTWU5DSFJPTk9VUyBpcyBib3RoIHZh
c3RseSBjbGVhbmVyIGFuZApwb3RlbnRpYWxseSBtdWNoIG1vcmUgZWZmaWNp
ZW50IHRoYW4gVk9MQVRJTEU7IGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0bwp1
c2UgdGhlIHNpbXBsZXIsIGNsZWFuZXIgTVBJIGZhY2lsaXR5IHRvZ2V0aGVy
IHdpdGggdGhlIHNpbXBsZXIsIGNsZWFuZXIKRm9ydHJhbiBhdHRyaWJ1dGUu
CgpJIGNhbiBmaW5kIG5vIHJlYXNvbiB0byBjaGFuZ2UgYW55IG9mIHRoZSB3
b3JkaW5nIGluIHRoZSBzdGFuZGFyZCB0aGF0CnJlbGF0ZXMgdG8gdGhlIEFT
WU5DSFJPTk9VUyBhdHRyaWJ1dGUsIGFzeW5jaHJvbm91cyBJL08gb3IgdGhl
IHRlcm0KInBlbmRpbmcgSS9PIHN0b3JhZ2Ugc2VxdWVuY2UgYWZmZWN0b3Ii
LiAgVGhlIG9ubHkgY2hhbmdlcyBuZWVkZWQgYXJlCmV4dGVuc2lvbnMgdG8g
YWxsb3cgdGhhdCB0ZXJtIHRvIGluY2x1ZGUgSS9PIHRoYXQgaXMgcGVyZm9y
bWVkIGJ5IGEKbWVjaGFuaXNtIGV4dGVybmFsIHRvIEZvcnRyYW4uCgpUaGUg
RXh0ZW5kZWQgTm90ZXMgc2F5LCBpbiBDNi42LCB0aGF0IGEgRm9ydHJhbiBw
cm9jZXNzb3IgaXMgYWxsb3dlZCB0bwppbXBsZW1lbnQgYXN5bmNocm9ub3Vz
IEkvTyBzeW5jaHJvbm91c2x5LCB3aGljaCBpbiB0dXJuIG1lYW5zIHRoYXQg
aXQgaXMKYWxsb3dlZCAoYnV0IG5vdCByZXF1aXJlZCkgdG8gdXNlIGNvcHkt
aW4vY29weS1vdXQgZXZlbiBmb3IgYXJndW1lbnRzCndpdGggdGhlIEFTWU5D
SFJPTk9VUyBhdHRyaWJ1dGUuICBXaGlsZSB0aGF0IGNvdWxkIGJlIGNoYW5n
ZWQsIHRoaXMKZG9jdW1lbnQgZG9lcyBub3QgcHJvcG9zZSB0byBkbyBzby4K
CgpFeHRlbnNpb25zCi0tLS0tLS0tLS0KCltbWyBBc2lkZXMsIHRvIHRoZSBy
ZWFkZXIgb2YgdGhpcyBkb2N1bWVudCwgYXJlIGluIHRyaXBsZSBzcXVhcmUK
YnJhY2tldHMuCgpBbGwgb2YgdGhlIGZvbGxvd2luZyBmYWNpbGl0aWVzIG5l
ZWQgdG8gYmUgY2FsbGFibGUgZnJvbSBib3RoIEZvcnRyYW4KYW5kIEMuICBU
aGUgc3BlY2lmaWNhdGlvbiBjYW4gYmUgaWRlbnRpY2FsLCBleGNlcHQgYXMg
Y29tbWVudGVkCmJlbG93LiBdXV0KCgpUaGUgdmFsdWUgb2YgQVNZTkNIUk9O
T1VTX1NVUFBPUlQgc2hhbGwgYmUgYSBkZWZhdWx0IExPR0lDQUwgY29uc3Rh
bnQKdGhhdCBoYXMgdGhlIHZhbHVlIC5UUlVFLiBpZiBhIGNvbXBhbmlvbiBw
cm9jZXNzb3IgbWF5IHVzZSBhIEZvcnRyYW4KdmFyaWFibGUgd2l0aCB0aGUg
QVNZTkNIUk9OT1VTIGF0dHJpYnV0ZSBmb3IgYW4gYXN5bmNocm9ub3VzIEkv
TyBidWZmZXIsCmV2ZW4gaWYgdGhhdCB2YXJpYWJsZSBpcyBwYXNzZWQgYXMg
YW4gYXJndW1lbnQgdG8gdGhlIGNvbXBhbmlvbgpwcm9jZXNzb3IgYW5kIHRo
ZSBsYXR0ZXIgcmV0dXJucyBmcm9tIHRoYXQgZnVuY3Rpb24gY2FsbCBiZXR3
ZWVuCmluaXRpYXRpbmcgdGhlIEkvTyBhbmQgd2FpdGluZyBmb3IgaXRzIGNv
bXBsZXRpb247IG90aGVyd2lzZSBpdCBoYXMgdGhlCnZhbHVlIC5GQUxTRS4K
CiAgICBOT1RFCiAgICBUaGUgbW9zdCB1c3VhbCByZWFzb24gZm9yIGEgRm9y
dHJhbiBwcm9jZXNzb3IgdG8gc2V0IHRoZSB2YWx1ZQogICAgLkZBTFNFLiBp
cyB0aGF0IGl0IGltcGxlbWVudHMgYXN5bmNocm9ub3VzIEkvTyBzeW5jaHJv
bm91c2x5LCBhbmQKICAgIHVzZXMgY29weS1pbi9jb3B5LW91dCBmb3Igc29t
ZSBhcmd1bWVudHMgd2l0aCB0aGUgQVNZTkNIUk9OT1VTCiAgICBhdHRyaWJ1
dGUuICBUaGUgY29tcGFuaW9uIHByb2Nlc3NvciBtYXkgc3RpbGwgcGVyZm9y
bSB0aGUgSS9PCiAgICBhc3luY2hyb25vdXNseSwgb2YgY291cnNlLCBidXQg
bXVzdCBjb3B5IHRoZSB2YWx1ZSB0byBvciBmcm9tCiAgICB0aGUgRm9ydHJh
biBsb2NhdGlvbiBzeW5jaHJvbm91c2x5IGlmIGl0IHJldHVybnMgdG8gRm9y
dHJhbgogICAgYmV0d2VlbiBpbml0aWF0aW5nIHRoZSBJL08gYW5kIHdhaXRp
bmcgZm9yIGl0cyBjb21wbGV0aW9uLiAgSXQKICAgIG1pZ2h0IGFsc28gYmUg
c2V0IGJlY2F1c2UgdGhlIHZhcmlhYmxlIGNvdWxkIGJlIG1vdmVkIGJ5IGEg
Z2FyYmFnZQogICAgY29sbGVjdG9yLgoKW1tbIE5vdGUgdGhhdCB0aGlzIGFs
c28gbmVlZHMgdG8gYmUgYSBwcmVwcm9jZXNzb3IgY29uc3RhbnQgaW4gdGhl
IEMKYmluZGluZyBoZWFkZXIuIF1dXQoKClNFVF9QRU5ESU5HIChJRCwgSU5Q
VVQsIEExLCBbQTIsIC4uLl0pCgpEZXNjcmlwdGlvbi4gIFNldCB0aGUgcGVu
ZGluZyBhc3luY2hyb25vdXMgSS9PIHN0YXRlLgoKQ2xhc3MuICBTdWJyb3V0
aW5lLgoKQXJndW1lbnRzLgpJRCAgICAgICAgc2hhbGwgYmUgb2YgdHlwZSBp
bnRlZ2VyIGFuZCBzaGFsbCBoYXZlIGEgZGVjaW1hbCByYW5nZSBubwogCSAg
c21hbGxlciB0aGFuIHRoYXQgb2YgZGVmYXVsdCBpbnRlZ2VyLiAgSXQgaXMg
YW4gSU5URU5UKE9VVCkKICAgICAgICAgIGFyZ3VtZW50LgpJTlBVVCAgICAg
c2hhbGwgYmUgb2YgdHlwZSBMT0dJQ0FMLiAgSXQgaXMgYW4gSU5URU5UKElO
KSwgVkFMVUUKICAgICAgICAgIGFyZ3VtZW50LgpBMSwgLi4uICAgbWF5IGJl
IG9mIGFueSB0eXBlIGFuZCByYW5rLCBub3QgbmVjZXNzYXJpbHkgdGhlIHNh
bWUuCgpJRCBiZWNvbWVzIGRlZmluZWQgd2l0aCBhIHByb2Nlc3NvciBkZXRl
cm1pbmVkIHZhbHVlLiAgVGhpcyB2YWx1ZSBpcwpyZWZlcnJlZCB0byBhcyB0
aGUgaWRlbnRpZmllciBvZiBhbiBkYXRhIHRyYW5zZmVyIG9wZXJhdGlvbi4K
ClRoZSBpZGVudGlmaWVyIG9mIGEgZGF0YSB0cmFuc2ZlciBvcGVyYXRpb24g
c2V0IGJ5IFNFVF9QRU5ESU5HIHNoYWxsIG5vdApiZSB1c2VkIGFzIHRoZSBp
ZGVudGlmaWVyIG9mIGEgZGF0YSB0cmFuc2ZlciBvcGVyYXRpb24gaW4gdGhl
IFdBSVQgb3IKSU5RVUlSRSBzdGF0ZW1lbnRzICg5LjcuMikuCgpTRVRfUEVO
RElORyBzaGFsbCBiZSBjYWxsZWQgb24gYW4gYWZmZWN0b3IgYmVmb3JlIHRo
ZSBtZWNoYW5pc20gZXh0ZXJuYWwKdG8gRm9ydHJhbiBpbml0aWF0ZXMgdGhl
IGFzeW5jaHJvbm91cyBJL08uCgpBMSwgLi4uIHNoYWxsIG5vdCBiZSB1c2Vk
IGFzIGtleXdvcmRzIGZvciB0aGUgYWN0dWFsIGFyZ3VtZW50cy4KCltbWyBU
aGlzIGNvdWxkIGJlIHJlbW92ZWQgb3IgY2hhbmdlZCwgZGVwZW5kaW5nIG9u
IHRoZSByZXN1bHQgb2YgYW4KaW50ZXJwcmV0YXRpb24gb2YgdGhlIGV4aXN0
aW5nIE1BWCBpbnRyaW5zaWMuIF1dXQoKT24gZW50cnksIGlmIElOUFVUIGlz
IC5UUlVFLiwgbm8gcGFydCBvZiBBMSwgLi4uIHNoYWxsIGJlIGFzc29jaWF0
ZWQKd2l0aCBhIHBlbmRpbmcgSS9PIHN0b3JhZ2Ugc2VxdWVuY2UgYWZmZWN0
b3IgYW5kLCBpZiBJTlBVVCBpcyAuRkFMU0UsIG5vCnBhcnQgb2YgQTEsIC4u
LiBzaGFsbCBiZSBhc3NvY2lhdGVkIHdpdGggYSBwZW5kaW5nIEkvTyBzdG9y
YWdlIHNlcXVlbmNlCmFmZmVjdG9yIGZvciBpbnB1dC4KCk9uIHJldHVybiwg
QTEsIC4uLiBiZWNvbWUgYSBwZW5kaW5nIEkvTyBzdG9yYWdlIHNlcXVlbmNl
IGFmZmVjdG9yOyBpZgpJTlBVVCBpcyAuVFJVRS4sIHRoZSBhZmZlY3RvciBp
cyBmb3IgaW5wdXQsIG90aGVyd2lzZSBmb3Igb3V0cHV0LgoKW1tbIE5vdGUg
dGhhdCB0aGlzIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBDOTksIHRob3VnaCBp
dCBsZWFkcyB0byBhCnJlcGVsbGVudCBpbXBsZW1lbnRhdGlvbiwgd2hlcmUg
dGhlIGZ1bmN0aW9uIGhhcyB0byBwYXJzZSBpdHMgYXJndW1lbnRzOgoKICAg
ICNkZWZpbmUgU0VUX1BFTkRJTkcoaWQsaW5wdXQsLi4uKSBcCiAgICAgICAg
c2V0X3BlbmRpbmcoKGlkKSwoaW5wdXQpLCMgX19WQV9BUkdTX18sX19WQV9B
UkdTX18pCgpJZiB0aGF0IGlzIHRvbyBob3JyaWJsZSwgYW5kIEkgdGhpbmsg
dGhhdCBpdCBpcywgdGhlbiB0aGUgQyBpbnRlcmZhY2UKd291bGQgbmVlZCB0
byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRoYXQgbWFrZSB1
cCB0aGUgYWZmZWN0b3IuClRoYXQgaXMgbm90IGEgcHJvYmxlbSBmb3IgTVBJ
LiAgRm9yIGV4YW1wbGUsIHdpdGggdGhlIHByb3RvdHlwZToKCiAgICB2b2lk
IHNldF9wZW5kaW5nIChpbnQgKmlkLCBpbnQgaW5wdXQsIGludCBjb3VudCwg
Li4uKQpdXV0KCgpVTlNFVF9QRU5ESU5HIChJRCkKCkRlc2NyaXB0aW9uLiAg
VW5zZXQgdGhlIHBlbmRpbmcgYXN5bmNocm9ub3VzIEkvTyBzdGF0ZS4KCkNs
YXNzLiAgU3Vicm91dGluZS4KCkFyZ3VtZW50cy4KSUQgICAgICAgIHNoYWxs
IGJlIGFuIGlkZW50aWZpZXIgb2YgYSBwZW5kaW5nIGRhdGEgdHJhbnNmZXIg
b3BlcmF0aW9uCiAgICAgICAgICBkZWZpbmVkIGJ5IFNFVF9QRU5ESU5HLiAg
SXQgaXMgYW4gSU5URU5UKElOKSwgVkFMVUUgYXJndW1lbnQuCgpUaGUgb2Jq
ZWN0IGlkZW50aWZpZWQgYnkgSUQgY2Vhc2VzIHRvIGJlIHBlbmRpbmcgSS9P
IHN0b3JhZ2Ugc2VxdWVuY2UKYWZmZWN0b3IuICBJZiB0aGUgSS9PIHdhcyBm
b3IgaW5wdXQsIHRoZSBhZmZlY3RvciBiZWNvbWVzIGRlZmluZWQgd2l0aAp0
aGUgdmFsdWUgcmVhZCBpbnRvIGl0LgoKVU5TRVRfUEVORElORyBzaGFsbCBu
b3QgYmUgY2FsbGVkIHVudGlsIHRoZSBleHRlcm5hbCBJL08gb24gdGhlIGFm
ZmVjdG9yCmhhcyBjb21wbGV0ZWQuCgoKICAgIE5PVEUKICAgIFRoZXNlIHN1
YnJvdXRpbmVzIHNldCB0aGUgcGVuZGluZyBzdGF0ZSBhcm91bmQgdGhlIGV4
dGVybmFsIEkvTywKICAgIHdoaWNoIG11c3QgYmUgaW5pdGlhdGVkIGFuZCBj
b21wbGV0ZWQgYnkgc29tZSBtZWNoYW5pc20gdGhhdCBpcwogICAgdW5hZmZl
Y3RlZCBieSB0aGUgcGVuZGluZyBzdGF0ZS4gIFRoZWlyIHB1cnBvc2UgaXMg
dG8gaW5mb3JtIHRoZQogICAgRm9ydHJhbiBwcm9jZXNzb3IgdGhhdCB0aGVy
ZSBpcyBhY3RpdmUsIGV4dGVybmFsLCBhc3luY2hyb25vdXMKICAgIEkvTyBp
biBwcm9ncmVzcy4gIEEgRm9ydHJhbiBwcm9jZXNzb3IgbmVlZCBub3QgZG8g
YW55dGhpbmcgb3RoZXIKICAgIHRoYW4gZGVmaW5lIElEIHRvIGJlIGEgc3Vp
dGFibGUgdmFsdWUgaW4gU0VUX1BFTkRJTkcgaWYgaXQgZG9lcyBub3QKICAg
IG5lZWQgdGhhdCBpbmZvcm1hdGlvbi4KCgpbW1sgTm90ZSB0aGF0IHRoZXJl
IGlzIG5vIFRFU1RfUEVORElORywgYXMgdGhlIHBlbmRpbmcgc3RhdGUgaXMg
bm90Cm1haW50YWluZWQgYnkgRm9ydHJhbiwgYnV0IGJ5IHRoZSBleHRlcm5h
bCBhc3luY2hyb25vdXMgSS9PIG1lY2hhbmlzbS4KSXQgaXMgdGhlIHByb2dy
YW1tZXIncyB0YXNrIHRvIHN1cHBseSBhIHZlcnNpb24gb2YgVEVTVF9QRU5E
SU5HIGZvciBlYWNoCm1lY2hhbmlzbSwgaWYgaGUgd2FudHMgb25lLiBdXV0K

---1870869256-1804289383-1228326727=:6705--
