[OpenAFS-devel] Thoughts on a pioctl() document

Jake Thebault-Spieker summatusmentis@gmail.com
Thu, 19 Jun 2008 13:33:34 -0400


------=_Part_7624_30480480.1213896814396
Content-Type: multipart/alternative; 
	boundary="----=_Part_7625_19065011.1213896814396"

------=_Part_7625_19065011.1213896814396
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

As part of my Summer of Code project, I've been preparing an interface
document for the pioctl() calls, as per src/fs/afs_pioctl.c. My
mentor(David Howells) suggested I submit the document to the
openafs-devel list (you guys), for feedback. Attached is said
document, please be kind, it's my first attempt :).

Enjoy
- --
Jacob Thebault-Spieker
Cell: (207) 717-5114

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (Darwin)
Comment: http://getfiregpg.org

iEYEARECAAYFAkhamGsACgkQT1NNAgG+H+yv7QCeKAhbFBIn/Kr5Xvz+V0zJSjd5
d+QAn0ZuqEApYUcicEkeOdLY9T6Pd+vZ
=1K66
-----END PGP SIGNATURE-----

------=_Part_7625_19065011.1213896814396
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-----BEGIN PGP SIGNED MESSAGE-----<br>Hash: SHA1<br><br>As part of my Summer of Code project, I&#39;ve been preparing an interface<br>document for the pioctl() calls, as per src/fs/afs_pioctl.c. My<br>mentor(David Howells) suggested I submit the document to the<br>
openafs-devel list (you guys), for feedback. Attached is said<br>document, please be kind, it&#39;s my first attempt :).<br><br>Enjoy<br>- -- <br>Jacob Thebault-Spieker<br>Cell: (207) 717-5114<br><br>-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.8 (Darwin)<br>Comment: <a href="http://getfiregpg.org">http://getfiregpg.org</a><br><br>iEYEARECAAYFAkhamGsACgkQT1NNAgG+H+yv7QCeKAhbFBIn/Kr5Xvz+V0zJSjd5<br>d+QAn0ZuqEApYUcicEkeOdLY9T6Pd+vZ<br>=1K66<br>
-----END PGP SIGNATURE-----<br><br><br>

------=_Part_7625_19065011.1213896814396--

------=_Part_7624_30480480.1213896814396
Content-Type: text/plain; name=pioctl_doc.txt
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fhnms4mg0
Content-Disposition: attachment; filename=pioctl_doc.txt

KioqKioqKgpQU2V0QUNMCioqKioqKioKR3JvdXA6IFYgCkZ1bmN0aW9uOiBWSU9DU0VUQUwgKDEp
IC0gU2V0IGFjY2VzcyBjb250cm9sIGxpc3QKQXJndW1lbnRzOiAKCXRoZSBBQ0wgYmVpbmcgc2V0
Ck91dGNvbWU6IAoJQ2hhbmdlZCBBQ0wsIHZpYSBkaXJlY3Qgd3JpdGluZyB0byB0aGUgd2lyZQpF
cnJvcnM6CglFSU5WQUwgLSBpZiBzb21lIG9mIHRoZSBzdGFuZGFyZCBhcmd1bWVudHMgYXJlbid0
IHNldApTaWRlIEVmZmVjdHM6IAoJbm9uZSBsaXN0ZWQKCQoqKioqKioqClBHZXRBQ0wKKioqKioq
KgpHcm91cDogViAKRnVuY3Rpb246IFZJT0NHRVRBTCAoMikgLSBHZXQgYWNjZXNzIGNvbnRyb2wg
bGlzdApBcmd1bWVudHM6IG5vbmUKT3V0Y29tZTogCglPYnRhaW4gdGhlIEFDTCwgYmFzZWQgb24g
ZmlsZSBJRApFcnJvcnM6CglFSU5WQUwgLSBpZiBzb21lIG9mIHRoZSBzdGFuZGFyZCBhcmd1bWVu
dHMgYXJlbid0IHNldAoJRVJBTkdFIC0gaWYgdGhlIHZub2RlIG9mIHRoZSBmaWxlIGlkIGlzIHRv
byBsYXJnZQoJcmV0dXJuIC0xIC0gaWYgZ2V0dGluZyB0aGUgQUNMIGZhaWxlZApTaWRlIEVmZmVj
dHM6IAoJbm9uZSBsaXN0ZWQsIGFsdGhvdWdoIHRoZXJlIGlzIGEgaGFjayB0byB0ZWxsIHdoaWNo
IHR5cGUgb2YgQUNMIGlzIGJlaW5nIAlyZXR1cm5lZCwgY2hlY2tzIHRoZSB0b3AgMi1ieXRlcyB0
byBqdWRnZSB3aGF0IHR5cGUgb2YgQUNMIGlzIGl0LCBvbmx5IGZvciAJZGZzIHhsYXRvciBBQ0xz
CgkKKioqKioqKioqKgpQU2V0VG9rZW5zCioqKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJ
T0NTRVRUT0sgKDMpIC0gU2V0IGF1dGhlbnRpY2F0aW9uIHRva2VucwpBcmd1bWVudHM6IAoJdGhl
IGtyYiB0aWNrZXRzIGZyb20gd2hpY2ggdG8gc2V0IHRoZSBhZnMgdG9rZW5zCk91dGNvbWU6IAoJ
U2V0IHRoZSBUb2tlbnMgZm9yIGEgc3BlY2lmaWMgY2VsbCBuYW1lLCB1bmxlc3MgdGhlcmUgaXMg
bm9uZSBzZXQsIHRoZW4gCWRlZmF1bHQgdG8gcHJpbWFyeQpFcnJvcnM6CglFSU5WQUwgLSBpZiB0
aGUgdGlja2V0IGlzIGVpdGhlciB0b28gbG9uZyBvciB0b28gc2hvcnQKCUVJTyAtIGlmIHRoZSBB
RlMgaW5pdFN0YXRlIGlzIGJlbG93IDEwMQoJRVNSQ0ggLSBpZiB0aGUgY2VsbCBmb3Igd2hpY2gg
dGhlIFRva2VuIGlzIGJlaW5nIHNldCBjYW4ndCBiZSBmb3VuZApTaWRlIEVmZmVjdHM6Cglub25l
IGxpc3RlZAoJCioqKioqKioqKioqKioqKioKUEdldFZvbHVtZVN0YXR1cwoqKioqKioqKioqKioq
KioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DR0VUVk9MU1RBVCAoNCkgLSBHZXQgdm9sdW1lIHN0
YXR1cwpBcmd1bWVudHM6IG5vbmUKT3V0Y29tZToKCVRoZSBzdGF1cyBvZiBhIHZvbHVtZShiYXNl
ZCBvbiB0aGUgRklEIG9mIHRoZSB2b2x1bWUpLCBvciBhbiBvZmZsaW5lIAkJbWVzc2FnZS9tb3Rk
CkVycm9yczoKCUVJTlZBTDogaWYgc29tZSBvZiB0aGUgZGVmYXVsdCBhcmd1bWVudHMgZG9uJ3Qg
ZXhpc3QKU2lkZSBFZmZlY3RzOgoJbm9uZSBsaXN0ZWQKCioqKioqKioqKioqKioqKioKUFNldFZv
bHVtZVN0YXR1cwoqKioqKioqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DU0VUVk9M
U1RBVCAoNSkgLSBTZXQgdm9sdW1lIHN0YXR1cwpBcmd1bWVudHM6Cgl2YWx1ZXMgdG8gc2V0IHRo
ZSBzdGF0dXMgYXQsIG9mZmxpbmUgbWVzc2FnZSwgbWVzc2FnZSBvZiB0aGUgZGF5LCB2b2x1bWUg
bmFtZSwgbWluaW11bSBxdW90YSwgbWF4aW11bSBxdW90YQpPdXRjb21lOgoJU2V0IHRoZSBzdGF0
dXMgb2YgYSB2b2x1bWUsIGluY2x1ZGluZyBhbnkgb2ZmbGluZSBtZXNzYWdlcywgYSBtaW5pbXVt
IHF1b3RhLCBhbmQgYSBtYXhpbXVtIHF1b3RhCkVycm9yczoKCUVJTlZBTCAtIGlmIHNvbWUgb2Yg
dGhlIGRlZmF1bHQgYXJndW1lbnRzIGRvbid0IGV4aXN0CglFUk9GUyAtIGlmIHRoZSB2b2x1bWUg
aXMgcmVhZCBvbmx5LCBvciBhIGJhY2t1cCB2b2x1bWUKCUVOT0RFViAtIGlmIHRoZSB2b2x1bWUg
Y2FuJ3QgYmUgYWNjZXNzZWQKCUUyQklHIC0gaWYgdGhlIHZvbHVtZSBuYW1lLCBvZmZsaW5lIG1l
c3NhZ2UsIGFuZCBtb3RkIGFyZSB0b28gYmlnClNpZGUgRWZmZWN0czogCglub25lIGxpc3RlZAoJ
CioqKioqKgpQRmx1c2gKKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DRkxVU0ggKDYpIC0g
SW52YWxpZGF0ZSBjYWNoZSBlbnRyeQpBcmd1bWVudHM6IG5vbmUKT3V0Y29tZToKCUZsdXNoIGFu
eSBpbmZvcm1hdGlvbiB0aGUgY2FjaGUgbWFuYWdlciBoYXMgb24gYW4gZW50cnkKRXJyb3JzOgoJ
RUlOVkFMIC0gaWYgc29tZSBvZiB0aGUgaW5pdGlhbCBhcmd1bWVudHMgZG9uJ3QgZXhpc3QKU2lk
ZSBFZmZlY3RzOgoJbm9uZSBsaXN0ZWQKCioqKioqKioqKioqKioqClBCb2d1cyAmIFBOb29wCioq
KioqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DU1RBVCAoNykgLSBHZXQgZmlsZSBz
dGF0dXMKCkdyb3VwOiBWIApGdW5jdGlvbjogVklPQ0dFVFRJTUUgKDEzKSAtIE1ha2UgZ2V0dGlt
ZSBjYWxsIChoaXN0b3JpYykKCkdyb3VwOiBWIApGdW5jdGlvbjogVklPQ1BSRUZFVENIICgxNSkg
LSBQcmUtZmV0Y2ggYSBmaWxlCgpHcm91cDogViAKRnVuY3Rpb246IFZJT0NOT1AgKDE2KSAtIE5v
LW9wIChoaXN0b3JpYykKCkdyb3VwOiBWIApGdW5jdGlvbjogVklPQ0VOR1JPVVAgKDE3KSAtIEVu
YWJsZSBncm91cCBhY2Nlc3MgKGhpc3RvcmljKQoKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NESVNH
Uk9VUCAoMTgpIC0gRGlzYWJsZSBncm91cCBhY2Nlc3MgKGhpc3RvcmljKQoKR3JvdXA6IFYgCkZ1
bmN0aW9uOiBWSU9DTElTVEdST1VQUyAoMTkpIC0gTGlzdCBlbmFibGVkIGFuZCBkaXNhYmxlZCBn
cm91cHMgKGhpc3RvcmljKQoKR3JvdXA6IFYgCkZ1bmN0aW9uOiBWSU9DX0ZQUklPU1RBVFVTICg1
NykgLSBhcmxhOiBzZXQgZmlsZSAncHJpbycKCkdyb3VwOiBWIApGdW5jdGlvbjogVklPQ19GSEdF
VCAoNTgpIC0gYXJsYTogZmFsbGJhY2sgZ2V0ZmgKCkdyb3VwOiBWIApGdW5jdGlvbjogVklPQ19G
SE9QRU4gKDU5KSAtIGFybGE6IGZhbGxiYWNrIGZob3BlbgoKR3JvdXA6IFYgCkZ1bmN0aW9uOiBW
SU9DX1hGU0RFQlVHICg2MCkgLSBhcmxhOiBjb250cm9scyB4ZnNkZWJ1ZwoKR3JvdXA6IFYgCkZ1
bmN0aW9uOiBWSU9DX0FSTEFERUJVRyAoNjEpIC0gYXJsYTogY29udHJvbHMgYXJsYSBkZWJ1ZwoK
R3JvdXA6IFYgCkZ1bmN0aW9uOiBWSU9DX0FWSUFUT1IgKDYyKSAtIGFybGE6IGRlYnVnIGludGVy
ZmFjCgpHcm91cDogViAKRnVuY3Rpb246IFZJT0NfWEZTREVCVUdfUFJJTlQgKDYzKSAtIGFybGE6
IHByaW50IHhmcyBzdGF0dXMKCkdyb3VwOiBWIApGdW5jdGlvbjogVklPQ19DQUxDVUxBVEVfQ0FD
SEUgKDY0KSAtIGFybGE6IGZvcmNlIGNhY2hlIGNoZWNrCgpHcm91cDogViAKRnVuY3Rpb246IFZJ
T0NfQlJFQUtDRUxMQkFDSyAoNjUpIC0gYXJsYTogYnJlYWsgY2FsbGJhY2sKCkdyb3VwOiBWIApG
dW5jdGlvbjogVklPQ1dBSVRGT1JFVkVSICgyMykgLSBXYWl0IGZvciBkZWFkIHNlcnZlcnMgZm9y
ZXZlciAoaGlzdG9yaWMpCgoqKioqKioqKioqClBHZXRUb2tlbnMKKioqKioqKioqKgpHcm91cDog
VgpGdW5jdGlvbjogVklPQ0dFVFRPSyAoOCkgLSBHZXQgYXV0aGVudGljYXRpb24gdG9rZW5zCkFy
Z3VtZW50czogCglBbiBpbnRlZ2VyIHRoYXQgY29ycmVzcG9uZHMgdG8gYSB1c2VyIGlkLCB3aGlj
aCBpbiB0dXJuIGNvcnJlc3BvbmRzIHRvIGEgdG9rZW4KT3V0Y29tZToKCUlmIHRoZSB0aGUgaW5w
dXQgcGFyYW1ldGVyIGV4aXN0cywgZ2V0IHRoZSB0b2tlbiB0aGF0IGNvcnJlc3BvbmRzIHRvIHRo
ZSAJcGFyYW1ldGVyIHZhbHVlLCBpZiB0aGVyZSBpcyBubyB0b2tlbiBhdCB0aGlzIHZhbHVlLCBn
ZXQgdGhlIHRva2VuIGZvciB0aGUgCWZpcnN0IGNlbGwKRXJyb3JzOgoJRUlPIC0gaWYgdGhlIGFm
cyBkYWVtb24gaGFzbid0IHN0YXJ0ZWQgeWV0CglFRE9NIC0gaWYgdGhlIGlucHV0IHBhcmFtZXRl
ciBpcyBvdXQgb2YgdGhlIGJvdW5kcyBvZiB0aGUgYXZhaWxhYmxlIHRva2VucwoJRU5PVENPTk4g
LSBpZiB0aGVyZSBhcmVuJ3QgdG9rZW5zIGZvciB0aGlzIGNlbGwKU2lkZSBFZmZlY3Q6Cglub25l
IGxpc3RlZCwgYWx0aG91Z2ggaXQncyBhIHdlaXJkIGludGVyZmFjZSAoZnJvbSBjb21tZW50cyBp
biBjb2RlKQoKKioqKioqClBVbmxvZwoqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NVTkxP
RyAoOSkgLSBJbnZhbGlkYXRlIHRva2VucwpBcmd1bWVudHM6IG5vbmUKT3V0Y29tZTogCglyZW1v
dmUgdG9rZW5zIGZyb20gYSB1c2VyLCBzcGVjaWZpZWQgYnkgYSB1c2VyIGlkCkVycm9yczogCglF
SU8gLSBpZiB0aGUgYWZzIGRhZW1vbiBoYXNuJ3Qgc3RhcnRlZCB5ZXQKU2lkZSBFZmZlY3Q6Cglz
ZXQncyB0aGUgdG9rZW4ncyB0aW1lIHRvIDAsIHdoaWNoIHRoZW4gY2F1c2VzIGl0IHRvIGJlIHJl
bW92ZWQKCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoJR3JvdXA6
IFYgCglGdW5jdGlvbjogVklPQ1VOUEFHICgyMSkgLSBJbnZhbGlkYXRlIFBBRwoJLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCVVubG9nIGlzIHRoZSBzYW1lIGFzIHVu
LXBhZyBpbiBPcGVuQUZTCgoqKioqKioqKioqKioqClBDaGVja1NlcnZlcnMKKioqKioqKioqKioq
KgpHcm91cDogVgpGdW5jdGlvbjogVklPQ0NLU0VSViAoMTApIC0gQ2hlY2sgdGhhdCBzZXJ2ZXJz
IGFyZSB1cApBcmd1bWVudHM6CglUaGUgbmFtZSBvZiB0aGUgY2VsbCB0aGF0IHRoZSBzZXJ2ZXJz
IHdpbGwgYmUgYSBwYXJ0IG9mLgpPdXRjb21lOgoJRWl0aGVyIGEgZmFzdCBjaGVjayAod2hlcmUg
aXQgZG9lc24ndCBjb250YWN0IHNlcnZlcnMpCglPciBhIGxvY2FsIGNoZWNrIChjaGVja3MgbG9j
YWwgY2VsbCBvbmx5KQpFcnJvcnM6CglFSU8gLSBpZiB0aGUgYWZzIGRhZW1vbiBoYXNuJ3Qgc3Rh
cnRlZCB5ZXQKCUVBQ0NFUyAtIGlmIHRoZSB1c2VyIGRvZXNuJ3QgaGF2ZSBzdXBlci11c2VyIGNy
ZWRlbnRpYWxzCglFTk9FTlQgLSBpZiB3ZSBhcmUgdW5hYmxlIHRvIG9idGFpbiB0aGUgY2VsbApT
aWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoKKioqKioqKioqKioqKioKUENoZWNrVm9sTmFtZXMK
KioqKioqKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NDS0JBQ0sgKDExKSAtIENoZWNr
IGJhY2t1cCB2b2x1bWUgbWFwcGluZ3MKQXJndW1lbnRzOiBub25lCk91dGNvbWU6CglDaGVjayB0
aGUgcm9vdCB2b2x1bWUsIGFuZCB0aGVuIGNoZWNrIHRoZSBuYW1lcyBpZiB0aGUgdm9sdW1lIGNo
ZWNrIAkJdmFyaWFibGUgaXMgc2V0IHRvIGZvcmNlLCBoYXMgZXhwaXJlZCwgaXMgYnVzeSwgb3Ig
aWYgdGhlIG1vdW50IHBvaW50cyAJCXZhcmlhYmxlIGlzIHNldApFcnJvcnM6CglFSU8gLSBpZiB0
aGUgYWZzIGRhZW1vbiBoYXNuJ3Qgc3RhcnRlZCB5ZXQKU2lkZSBFZmZlY3RzOgoJbm9uZSBsaXN0
ZWQKCioqKioqKioqKioKUENoZWNrQXV0aAoqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBW
SU9DQ0tDT05OICgxMikgLSBDaGVjayBjb25uZWN0aW9ucyBmb3IgYSB1c2VyCkFyZ3VtZW50czog
bm9uZQpPdXRjb21lOgoJY2hlY2sgdG8gc2VlIGlmIGEgdXNlciBoYXMgdGhlIGNvcnJlY3QgYXV0
aGVudGljYXRpb24uIElmIHNvLCBhbGxvdyBhY2Nlc3MKRXJyb3JzOgoJRUFDQ0VTIC0gaWYgbm8g
dXNlciBpcyBzcGVjaWZpZWQKCUVBQ0NFUyAtIGlmIHRoZSB1c2VyIGhhcyBubyB0b2tlbnMgc2V0
CglFQUNDRVMgLSBpZiB0aGUgdXNlcnMgdG9rZW5zIGFyZSBiYWQKU2lkZSBlZmZlY3RzOgoJY2hl
Y2sgdGhlIGNvbm5lY3Rpb25zIHRvIGFsbCB0aGUgc2VydmVycyBzcGVjaWZpZWQKCioqKioqKioq
KioqClBGaW5kVm9sdW1lCioqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DV0hFUkVJ
UyAoMTQpIC0gRmluZCBvdXQgd2hlcmUgYSB2b2x1bWUgaXMgbG9jYXRlZApBcmd1bWVudHM6IG5v
bmUKT3V0Y29tZToKCWZpbmQgYSB2b2x1bWUsIGJhc2VkIG9uIGEgdm9sdW1lIGZpbGUgaWQKRXJy
b3JzOgoJRUlOVkFMIC0gaWYgc29tZSBvZiB0aGUgZGVmYXVsdCBhcmd1bWVudHMgZG9uJ3QgZXhp
c3QKCUVOT0RFViAtIGlmIHRoZXJlIGlzIG5vIHN1Y2ggdm9sdW1lClNpZGUgRWZmZWN0czoKCWNo
ZWNrIGVhY2ggb2YgdGhlIHNlcnZlcnMgc3BlY2lmaWVkCgkKKioqKioqKioqKioKUFZpY2VBY2Nl
c3MKKioqKioqKioqKioKR3JvdXA6IFYgCkZ1bmN0aW9uOiBWSU9DQUNDRVNTICgyMCkgLSBBY2Nl
c3MgdXNpbmcgUFJTX0ZTIGJpdHMKQXJndW1lbnRzOiBub25lCk91dGNvbWU6IAoJY2hlY2sgdG8g
bWFrZSBzdXJlIGFjY2VzcyBpcyBhbGxvd2VkCkVycm9yczoKCUVJTlZBTCAtIGlmIHNvbWUgb2Yg
dGhlIGluaXRpYWwgYXJndW1lbnRzIGFyZW4ndCBzZXQKCUVBQ0NFUyAtIGlmIGFjY2VzcyBpcyBk
ZW5pZWQKU2lkZSBFZmZlY3RzOgoJbm9uZSBsaXN0ZWQKCQoqKioqKioqClBHZXRGSUQKKioqKioq
KgpHcm91cDogVgpGdW5jdGlvbjogVklPQ0VURklEICgyMikgLSBHZXQgZmlsZSBJRCBxdWlja2x5
CkFyZ3VtZW50czogbm9uZQpPdXRjb21lOgoJZ2V0IHRoZSBmaWxlIGlkIG9mIHNvbWUgZmlsZQpF
cnJvcnM6CglFSU5WQUwgLSBpZiBzb21lIGZvIHRoZSBpbml0aWFsIGFyZ3VtZW50cyBhcmVuJ3Qg
c2V0ClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVkCgoqKioqKioqKioqKioqClBTZXRDYWNoZVNp
emUKKioqKioqKioqKioqKgpHcm91cDogViAKRnVuY3Rpb246IFZJT0NTRVRDQUNIRVNJWkUgKDI0
KSAtIFNldCB2ZW51cyBjYWNoZSBzaXplIGluIDEwMDAgdW5pdHMKQXJndW1lbnRzOiAKCVRoZSBz
aXplIHRoZSB2ZW51cyBjYWNoZSBzaG91bGQgYmUgc2V0IHRvCk91dGNvbWU6CglTZXQgdGhlIGNh
Y2hlIHNpemUgYmFzZWQgb24gdXNlciBpbnRwdXQuIElmIG5vIHNpemUgaXMgZ2l2ZW4sIHNldCBp
dCB0byB0aGUgCWRlZmF1bHQgT3BlbkFGUyBjYWNoZSBzaXplCkVycm9yczoKCUVBQ0NFUyAtIGlm
IHRoZSB1c2VyIGRvZW4ndCBoYXZlIHN1cGVyLXVzZXIgY3JlZGVudGlhbHMKCUVST0ZTIC0gaWYg
dGhlIGNhY2hlIGlzIHNldCB0byBiZSBpbiBtZW1vcnkKU2lkZSBFZmZlY3RzOgoJcmVjb21wdXRl
IHRoZSBnZW5lcmFsIGNhY2hlIHBhcmFtZXRlcnMgZm9yIGV2ZXJ5IHNpbmdsZSBibG9jayBhbGxv
Y2F0ZWQKCQoqKioqKioqKioqKioqKioKUFJlbW92ZUNhbGxiYWNrCioqKioqKioqKioqKioqKgpH
cm91cDogViAKRnVuY3Rpb246IFZJT0NGTFVTSENCICgyNSkgLSBGbHVzaCBjYWxsYmFjayBvbmx5
CkFyZ3VtZW50czogbm9uZQpPdXRjb21lOgoJRmx1c2hlcyBjYWxsYmFja3MsIGJ5IHNldHRpbmcg
dGhlIGxlbmd0aCBvZiBjYWxsYmFja3MgdG8gb25lLCBzZXR0aW5nIHRoZSAJbmV4dCBjYWxsYmFj
ayB0byBiZSBzZW50IHRvIHRoZSBDQl9EUk9QUEVEIHZhbHVlLCBhbmQgdGhlbiBkZXF1ZXVlJ3Mg
CQlldmVyeXRoaW5nIGVsc2UKRXJyb3JzOgoJRUlOVkFMIC0gaWYgc29tZSBvZiB0aGUgaW5pdGlh
bCBkZWZhdWx0IGFyZ3VtZW50cyBhcmVuJ3Qgc2V0CglyZXR1cm4ncyAwIC0gaWYgdGhlIHZvbHVt
ZSBpcyBzZXQgdG8gcmVhZC1vbmx5ClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVkCgoqKioqKioq
KgpQTmV3Q2VsbAoqKioqKioqKgpHcm91cDogVgpGdW5jdGlvbjogVklPQ05FV0NFTEwgKDI2KSAt
IENvbmZpZ3VyZSBuZXcgY2VsbApBcmd1bWVudHM6Cgl0aGUgbmFtZSBvZiB0aGUgY2VsbCwgdGhl
IGhvc3RzIHRoYXQgd2lsbCBiZSBhIHBhcnQgb2YgdGhlIGNlbGwsIHdoZXRoZXIgb3Igbm90IGl0
J3MgbGlua2VkIHdpdGggYW5vdGhlciBjZWxsLCB0aGUgb3RoZXIgY2VsIGl0J3MgbGlua2VkIHdp
dGgsIHRoZSBmaWxlIHNlcnZlciBwb3J0LCBhbmQgdGhlIHZvbHVtZSBzZXJ2ZXIgcG9ydApPdXRj
b21lOgoJY3JlYXRlcyBhIG5ldyBjZWxsCkVycm9yczoKCUVJTyAtIGlmIHRoZSBhZnMgZGFlbW9u
IGhhc24ndCBzdGFydGVkIHlldAoJRUFDQ0VTIC0gaWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIHN1
cGVyLXVzZXIgY3JlZGVudGlhbHMKCUVJTlZBTCAtIGlmIHNvbWUgJ21hZ2ljJyB2YXIgZG9lc24n
dCBoYXZlIGEgY2VydGFpbiBiaXQgc2V0ClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVkCgkKKioq
KioqKioqKgpQTGlzdENlbGxzCioqKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NHRVRD
RUxMICgyNykgLSBHZXQgY2VsbCBpbmZvCkFyZ3VtZW50czoKCVRoZSBjZWxsIGluZGV4IG9mIGEg
c3BlY2lmaWMgY2VsbApPdXRjb21lOiAKCUxpc3RzIHRoZSBjZWxscyBzZXJ2ZXIgbmFtZXMgYW5k
IGFkZHJlc3NlcwpFcnJvczoKCUVJTyAtIGlmIHRoZSBhZnMgZGFlbW9uIGhhc24ndCBzdGFydGVk
IHlldAoJRURPTSAtIGlmIHRoZXJlIGlzIG5vIGNlbGwgYXNrZWQgYWJvdXQKU2lkZSBFZmZlY3Rz
OgoJbm9uZSBsaXN0ZWQKCQoqKioqKioqKioqKioKUFJlbW92ZU1vdW50CioqKioqKioqKioqKgpH
cm91cDogVgpGdW5jdGlvbjogVklPQ19BRlNfREVMRVRFX01UX1BUICgyOCkgLSBEZWxldGUgbW91
bnQgcG9pbnQKQXJndW1lbnRzOiBub25lIC8vIEkgRE9OJ1QgVEhJTksKT3V0Y29tZTogCglFbnN1
cmUgdGhhdCBldmVyeXRoaW5nIGlzIG9rLCBiZWZvcmUgZGVsZXRpbmcgdGhlIG1vdW50cG9pbnQu
IElmIG5vdCwgZG9uJ3QgCWRlbGV0ZS4gRGVsZXRlIGEgbW91bnQgcG9pbnQgYmFzZWQgb24gYSBm
aWxlIGlkCkVycm9yczoKCUVJTlZBTCAtIGlmIHNvbWUgb2YgZGVmYXVsdCBhcmd1bWVudHMgZG9u
J3QgZXhpc3QKCUVOT1RESVIgLSBpZiB0aGUgYXJndW1lbnQgdG8gcmVtb3ZlIGlzIG5vdCBhIGRp
cmVjdG9yeQoJRU5PRU5UIC0gaWYgdGhlcmUgaXMgbm8gY2FjaGUgdG8gcmVtb3ZlIHRoZSBtb3Vu
dCBwb2ludCBmcm9tCglFTk9FTlQgLSBpZiBhIHZjYWNoZSBkb2Vzbid0IGV4aXN0ClNpZGUgRWZm
ZWN0czoKCW5vbmUgbGlzdGVkCgkKKioqKioqKioqKioqKgpQTmV3U3RhdE1vdW50CioqKioqKioq
KioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfQUZTX1NUQVRfTVRfUFQgKDI5KSAtIFN0YXQg
bW91bnQgcG9pbnQKQXJndW1lbnRzOiAKCXRoZSBsYXN0IGNvbXBvbmVudCBpbiBhIHBhdGgsIHJl
bGF0ZWQgdG8gbW91bnRwb2ludCB0aGF0IHdlJ3JlIGxvb2tpbmcgZm9yIAkJaW5mb3JtYXRpb24g
YWJvdXQKT3V0Y29tZToKCWdldCB0aGUgdm9sdW1lLCBhbmQgY2VsbCwgYXMgd2VsbCBhcyB0aGUg
bGluayBkYXRhIGZvciBhIG1vdW50IHBvaW50CkVycm9yczoKCUVJTlZBTCAtIGlmIHNvbWUgb2Yg
dGhlIGRlZmF1bHQgaW5pdGlhbCBhcmd1bWVudHMgYXJlbid0IHNldAoJRU5PVERJUiAtIGlmIHRo
ZSAnbW91bnQgcG9pbnQnIGFyZ3VtZW50IGlzbid0IGEgZGlyZWN0b3J5CglFSU8gLSBpZiB0aGUg
bGluayBkYXRhIGNhbid0IGJlIGFjY2Vzc2VkClNpZGUgRWZmZWN0czogCglub25lIGxpc3RlZAoJ
CioqKioqKioqKioqKgpQR2V0RmlsZUNlbGwKKioqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9u
OiBWSU9DX0ZJTEVfQ0VMTF9OQU1FICgzMCkgLSBHZXQgY2VsbCBpbiB3aGljaCBmaWxlIGxpdmVz
CkFyZ3VtZW50czogbm9uZQpPdXRjb21lOgoJR2V0IGEgY2VsbCBiYXNlZCBvbiBhIHBhc3NlZCBp
biBvbiBhIHBhc3NlZCBpbiBmaWxlIGlkCkVycm9yczoKCUVJTlZBTCAtIGlmIHNvbWVvIGYgdGhl
IGRlZmF1bHQgaW5pdGlhbCBhcmd1bWVudHMgYXJlbid0IHNldAoJRVNSQ0ggLSBpZiB0aGUgZmls
ZSBpc24ndCBwYXJ0IG9mIGEgY2VsbApTaWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoKKioqKioq
KioqKgpQR2V0V1NDZWxsCioqKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfR0VUX1dT
X0NFTEwgKDMxKSAtIEdldCBjZWxsIGluIHdoaWNoIHdvcmtzdGF0aW9uIGxpdmVzCkFyZ3VtZW50
czogbm9uZQpPdXRjb21lOgoJR2V0IHRoZSBwcmltYXJ5IGNlbGwgdGhhdCB0aGUgbWFjaGluZSBp
cyBhIHBhcnQgb2YKRXJyb3JzOgoJRUlPIC0gaWYgdGhlIGFmcyBkYWVtb24gaGFzbid0IHN0YXJ0
ZWQgeWV0CglFU1JDSCAtIGlmIHRoZSBtYWNoaW5lIGlzbid0IHBhcnQgb2YgYSBjZWxsLCBmb3Ig
d2hhdGV2ZXIgcmVhc29uClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVkCgkKKioqKioqKioKUE1h
cmluZXIKKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfQUZTX01BUklORVJfSE9TVCAo
MzIpIC0gR2V0L3NldCBtYXJpbmVyIChjYWNoZSBtYW5hZ2VyIG1vbml0b3IpIAkJCQkJCQkJCQkJ
aG9zdApBcmd1bWVudHM6IG5vbmUKT3V0Y29tZToKCWRlcGVuZGluZyBvbiB3aGF0IHdoZXRoZXIg
b3Igbm90IGEgdmFyaWFibGUgaXMgc2V0LCBlaXRoZXIgZ2V0IHRoZSBob3N0IGZvciAJdGhlIGNh
Y2hlIG1hbmFnZXIgbW9uaXRvciwgb3Igc2V0IHRoZSBvbGQgYWRkcmVzcywgYW5kIGdpdmUgaXQg
YSBuZXcgYWRkcmVzcwpFcnJvcnM6Cgl0dXJuIG9mZiBtYXJpbmVyClNpZGUgRWZmZWN0czogCglu
b25lIGxpc3RlZAoJCioqKioqKioqKioqKgpQR2V0VXNlckNlbGwKKioqKioqKioqKioqCkdyb3Vw
OiBWCkZ1bmN0aW9uOiBWSU9DX0dFVF9QUklNQVJZX0NFTEwgKDMzKSAtIEdldCBwcmltYXJ5IGNl
bGwgZm9yIGNhbGxlcgpBcmd1bWVudHM6IG5vbmUKT3V0Y29tZTogCglnZXQgdGhlIHByaW1hcnkg
Y2VsbCBmb3IgYSBjZXJ0YWluIHVzZXIsIGJhc2VkIG9uIHRoZSB1c2VyJ3MgdWlkCkVycm9yczoK
CUVTUkNIIC0gaWYgdGhlIHVzZXIgY29ycmVzcG9uZGluZyB0byB0aGUgdWlkIGRvZXNuJ3QgaGF2
ZSBhIHByaW1hcnkgY2VsbCAJCQkJc3BlY2lmaWVkClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVk
CgkKKioqKioqKioqKioqKgpQVmVudXNMb2dnaW5nCioqKioqKioqKioqKioKR3JvdXA6IFYKRnVu
Y3Rpb246IFZJT0NfVkVOVVNMT0cgKDM0KSAtIEVuYWJsZS9EaXNhYmxlIHZlbnVzIGxvZ2dpbmcK
QXJndW1lbnRzOiBub25lCk91dGNvbWU6IAoJb2Jzb2xldGVkLCBwZXJoYXBzIHNob3VsZCBiZSBQ
Qm9ndXMKRXJyb3JzOgoJRUlOVkFMIC0gdGhpcyBpcyBhbGwgdGhlIGZ1bmN0aW9uIGRvZXMsIHBl
cmhhcHMgdGhpcyBwaW9jdGwgc2hvdWxkIGJlIFBCb2d1cwpTaWRlIEVmZmVjdHM6CglhbHdheXMg
dGhyb3dzIGFuIGVycm9yCgoqKioqKioqKioqKioqKgpQR2V0Q2VsbFN0YXR1cwoqKioqKioqKioq
KioqKgpHcm91cDogVgpGdW5jdGlvbjogVklPQ19HRVRDRUxMU1RBVFVTICgzNSkgLSBHZXQgY2Vs
bCBzdGF0dXMgaW5mbwpBcmd1bWVudHM6IAoJdGhlIGNlbGwgeW91IHdhbnQgc3RhdHVzIGluZm9y
bWF0aW9uIG9uCk91dGNvbWU6CglyZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgY2VsbCBhcyBkZWZp
bmVkIGluIGEgc3RydWN0IGNlbGwKRXJyb3JzOgoJRUlPIC0gdGhlIGFmcyBkYWVtb24gaGFzbid0
IHN0YXJ0ZWQgeWV0CglFTk9FTlQgLSB0aGUgY2VsbCBkb2Vzbid0IGV4aXN0ClNpZGUgRWZmZWN0
czoKCW5vbmUgbGlzdGVkCgkKKioqKioqKioqKioqKioKUFNldENlbGxTdGF0dXMKKioqKioqKioq
KioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfU0VUQ0VMTFNUQVRVUyAoMzYpIC0gU2V0IGNv
cnJlc3BvbmRpbmcgaW5mbwpBcmd1bWVudHM6CglUaGUgY2VsbCB5b3Ugd2FudCB0byBzZXQgaW5m
b3JtYXRpb24gYWJvdXQsIGFuZCB0aGUgdmFsdWVzIHlvdSB3YW50IHRvIHNldApPdXRjb21lOgoJ
U2V0IHRoZSBzdGF0ZSBvZiB0aGUgY2VsbCBpbiBhIGRlZmluZWQgc3RydWN0IGNlbGwsIGJhc2Vk
IG9uIHdoZXRoZXIgb3Igbm90IAlTZXRVSUQgaXMgYWxsb3dlZApFcnJvcnM6CglFSU8gLSB0aGUg
YWZzIGRhZW1vbiBoYXNuJ3Qgc3RhcnRlZCB5ZXQKCUVBQ0NFUyAtIHRoZSB1c2VyIGRvZXMgbm90
IGhhdmUgc3VwZXItdXNlciBjcmVkZW50aWFscwoKKioqKioqKioqKioqKioqKgpQRmx1c2hWb2x1
bWVEYXRhCioqKioqKioqKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfRkxVU0hWT0xV
TUUgKDM3KSAtIEZsdXNoIHdob2xlIHZvbHVtZSdzIGRhdGEKQXJndW1lbnRzOiBub25lIC8vQUxU
SE9VR0ggTUFZQkUgQSBWQ0FDSEUgQ09OVEFJTklORyBXSElDSCBWT0xVTUUKT3V0Y29tZToKCVdp
cGUgZXZlcnl0aGluZyBvbiB0aGUgdm9sdW1lLiBEZXBlbmRlbnQgb24gd2hpY2ggcGxhdGZvcm0g
dGhpcyBpcyBpcyBmb3IsIGFzIAl0byBob3cgaXQncyBkb25lCkVycm9yczoKCUVJTlZBTCAtIHNv
bWUgb2YgdGhlIGluaXRpYWwgZGVmYXVsdCBhcmd1bWVudHMgYXJlbid0IHNldAoJRUlPIC0gdGhl
IGFmcyBkYWVtb24gaGFzbid0IHN0YXJ0ZWQgeWV0ClNpZGUgRWZmZWN0czoKCURvZXMgbm90IGZs
dXNoIGEgZmlsZSB0aGF0IGEgdXNlciBoYXMgb3BlbiBhbmQgaXMgdXNpbmcsIGJlY2F1c2UgaXQg
d2lsbCBiZSAJcmUtY3JlYXRlZCBvbiBuZXh0IHdyaXRlLiBBbHNvIHB1cmdlcyB0aGUgZG5sYywg
YmVjYXVzZSB0aGluZ3MgYXJlIHNjcmV3ZWQgdXAKCioqKioqKioqKioqClBTZXRTeXNOYW1lCioq
KioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DX0FGU19TWVNOQU1FICgzOCkgLSBDaGFu
Z2UgQHN5cyB2YWx1ZQpBcmd1bWVudHM6IGEgbmV3IHZhbHVlIGZvciBAc3lzCk91dGNvbWU6CglT
ZXQgdGhlIHZhbHVlIG9mIEBzeXMgaWYgdGhlc2UgdGhpbmdzIHdvcms6CgkJaWYgdGhlIGlucHV0
IGlzbid0IHRvbyBsb25nCgkJb3IgaWYgaW5wdXQgZG9lc24ndCBzdGFydCB3aXRoIC4wIG9yIC4u
MApFcnJvcnM6CglFSU5WQUwgLSBpZiBhZnNkIGlzbid0IHJ1bmluZwoJRUlOVkFMIC0gaWYgdGhl
IG5ldyBzeXNuYW1lIGlzIHRvbyBsYXJnZQoJRUlOVkFMIC0gaWYgdGhlIG5ldyBzeXNuYW1lIGNh
dXNlcyBpc3N1ZXMoc3RhcnRzIHdpdGggYSAuMCBvciBhIC4uMAkKCUVJTlZBTCAtIGlmIHRoZXJl
IGlzIG5vIFBBRyBzZXQgaW4gdGhlIGNyZWRlbnRpYWxzCglFSU5WQUwgLSBpZiB0aGUgdXNlciBv
ZiBhIFBBRyBjYW4ndCBiZSBmb3VuZAoJRUlOVkFMIC0gaWYgKCEoZXhwb3J0ZXIgPSBhdS0+ZXhw
b3J0ZXIpKSAvLyBOT1QgU1VSRSBPTiBUSElTCglFTk9ERVYgLSBpZiB0aGVyZSBpc24ndCBhbHJl
YWR5IGEgc3lzdGVtIG5hbWVkIHRoYXQgLy9JIFRISU5LCglFQUNDRVMgLSBpZiB0aGUgdXNlciBk
b2Vzbid0IGhhdmUgc3VwZXItdXNlciBjcmVkZW50aWFscwpTaWRlIEVmZmVjdHM6Cglsb2NhbCB1
c2VyIG5lZWRzIHJvb3QsIHJlbW90ZSB1c2VyIGRvZXMgbm90IChiZWNhdXNlIHJlbW90ZSB1c2Vy
IGlkcyBhcmVuJ3QgCQl0cnVzdGVkKQoqKioqKioqKioqClBFeHBvcnRBZnMKKioqKioqKioqKgpH
cm91cDogVgpGdW5jdGlvbjogVklPQ19FWFBPUlRBRlMgKDM5KSAtIEV4cG9ydCBhZnMgdG8gbmZz
IGNsaWVudHMKQXJndW1lbnRzOgoJQSBzdHJ1Y3QgVmljZUlvY3RsIGNvbnRhaW5pbmcgZXhwb3J0
IHZhbHVlcyBuZWVkZWQgdG8gY2hhbmdlIGJldHdlZW4gbmZzIGFuZCAJYWZzCk91dGNvbWU6IAoJ
Ly9SRUFMTFkgTk9UIFNVUkUgT04gVEhJUy4uLiBJTlBVVCBXT1VMRCBCRSBOSUNFCkVycm9yczoK
CUVOT0RFViAtIGlmIHRoZSBleHBvcnRlciBkb2Vzbid0IGV4aXN0CglFQUNDRVMgLSBpZiB0aGUg
dXNlciBkb2Vzbid0IGhhdmUgc3VwZXItdXNlciBjcmVkZW50aWFscwoJClNpZGUgRWZmZWN0czoK
CW5vbmUgbGlzdGVkCgkKKioqKioqKioqKioqKgpQR2V0Q2FjaGVTaXplCioqKioqKioqKioqKioK
R3JvdXA6IFYKRnVuY3Rpb246IFZJT0NHRVRDQUNIRVBBUk1TICg0MCkgIC0gR2V0IGNhY2hlIHN0
YXRzCkFyZ3VtZW50czogbm9uZQpPdXRjb21lOgoJR2V0IHRoZSBjYWNoZSBibG9ja3MsIGFuZCBo
b3cgbWFueSBvZiB0aGUgY2FjaGUgYmxvY2tzIHRoZXJlIGFyZQpFcnJvcnM6Cglub25lLCBzZWVt
aW5nbHkKU2lkZSBFZmZlY3RzOgoJbm9uZSBsaXN0ZWQKCQoqKioqKioqKioqKioqKioqClBHZXRW
bm9kZVhTdGF0dXMKKioqKioqKioqKioqKioqKgpHcm91cDogVgpGdW5jdGlvbjogVklPQ0dFVFZD
WFNUQVRVUyAoNDEpIC0gPz8/CkFyZ3VtZW50czogbm9uZQpPdXRjb21lOgoJZ2V0J3MgdGhlIGZp
ZCwgdGhlIGRhdGEgdmVyc2lvbiwgYW55IGxvY2ssIHRoZSBwYXJlbnQgdm5vZGUsIHRoZSBwYXJl
bnQgCQl1bmlxdWUgaWRlbnRpZmllciwgdGhlIHRydW5jYXRpb24gcG9zaXRpb24sIHRoZSBjYWxs
YmFjaywgY2JFeHBpcmVzKHByb2JhYmx5IAl3aGVuIHRoZSBjYWxsYmFjayBleHBpcmVzKSwgaWYg
YW55IGFjY2VzcyBpcyBiZWluZyBtYWRlLCBpZiBhbnkgZmlsZXMgYXJlIAkJb3BlbiwgYW55IHVz
ZXJzIGV4ZWN1dGluZyBvciB3cml0aW5nLCB0aGUgJ2Zsb2NrJyBjb3VudCwgdGhlIHN0YXRlcywg
YW5kIHRoZSAJbW92ZSBzdGF0aXN0aWMKRXJyb3JzOgoJRUlOVkFMIC0gaWYgc29tZSBvZiB0aGUg
aW5pdGlhbCBkZWZhdWx0IGFyZ3VtZW50cyBhcmVuJ3Qgc2V0CglFQUNDRVMgLSBpZiBhY2Nlc3Mg
dG8gY2hlY2sgdGhlIG1vZGUgYml0cyBpcyBkZW5pZWQKU2lkZSBFZmZlY3RzOgoJbm9uZSBsaXN0
ZWQKCQoqKioqKioqKioqKioKUFNldFNQcmVmczMzCioqKioqKioqKioqKgpHcm91cDogVgpGdW5j
dGlvbjogVklPQ19TRVRQUkVGUzMzICg0MikgLSBTZXQgc2VydmVyIHJhbmtzIChkZXByZWNhdGVk
KQpBcmd1bWVudHM6IAoJdGhlIHNlcnZlciBwcmVmZXJlbmNlcyB0byBiZSBzZXQKT3V0Y29tZTog
CglzZXQgdGhlIHNlcnZlciBwcmVmZXJlbmNlcywgY2FsbGluZyBhIGZ1bmN0aW9uCkVycm9yczoK
CW5vbmUKU2lkZSBFZmZlY3RzOgoJbm9uZSBsaXN0ZWQKCQoqKioqKioqKioqClBHZXRTUHJlZnMK
KioqKioqKioqKgpHcm91cDogVgpGdW5jdGlvbjogVklPQ19HRVRTUFJFRlMgKDQzKSAtIEdldCBz
ZXJ2ZXIgcmFua3MKQXJndW1lbnRzOiBub25lCk91dGNvbWU6CglHZXQgdGhlIHNwcmVmcwpFcnJv
cnM6CglFSU8gLSBpZiB0aGUgYWZzIGRhZW1vbiBoYXNuJ3Qgc3RhcnRlZCB5ZXQKCUVOT0VOVCAt
IGlzIHRoZSBzcHJlZnJlcXVlc3QgaXMgdG9vIGxhcmdlClNpZGUgZWZmZWN0czoKCW5vbmUgbGlz
dGVkCgkKKioqKgpQR2FnCioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfR0FHICg0NCkgLSBT
aWxlbmNlIENhY2hlIE1hbmFnZXIKQXJndW1lbnRzOiBUaGUgZmxhZ3MgdG8gZWl0aGVyIGdhZyBv
ciBkZS1nYWcgdGhlIGNhY2hlIG1hbmFnZXIKT3V0Y29tZTogCglzZXQgdGhlIGdhZyBmbGFncywg
dGhlbiBzaG93IHRoZXNlIGZsYWdzCkVycm9yczoKCUVBQ0NFUyAtIGlmIHRoZSB1c2VyIGRvZXNu
J3QgaGF2ZSBzdXBlci11c2VyIGNyZWRlbnRpYWxzClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVk
CgkKKioqKioqKioqKgpQVHdpZGRsZVJ4CioqKioqKioqKioKR3JvdXA6IFYgCkZ1bmN0aW9uOiBW
SU9DX1RXSURETEUgKDQ1KSAtIEFkanVzdCBSWCBrbm9icwpBcmd1bWVudHM6IAoJdGhlIHByZXZp
b3VzIHNldHRpbmdzIG9mIHRoZSAna25vYnMnCk91dGNvbWU6CglidWlsZCBvdXQgdGhlIHN0cnVj
dCByeHAsIGZyb20gYSBzdHJ1Y3QgcngKRXJyb3JzOgoJRUFDQ0VTIC0gaWYgdGhlIHVzZXIgZG9l
c24ndCBoYXZlIHN1cGVyLXVzZXIgY3JlZGVudGlhbHMKU2lkZSBFZmZlY3RzOiAKCW5vbmUgbGlz
dGVkCgoqKioqKioqKioqClBTZXRTUHJlZnMKKioqKioqKioqKgpHcm91cDogViAKRnVuY3Rpb246
IFZJT0NfU0VUUFJFRlMgKDQ2KSAtIFNldCBzZXJ2ZXIgcmFua3MKQXJndW1lbnRzOgoJdGhlIHNw
cmVmcyB2YWx1ZSB0byB3YW50IHRoZSBzcHJlZnMgc2V0IHRvCk91dGNvbWU6CglzZXQgdGhlIHNw
cmVmcyB1c2luZyB0aGUgYWZzX3NldHNwcmVmcygpIGZ1bmN0aW9uCkVycm9yczoKCUVJTyAtIGlm
IHRoZSBhZnMgZGFlbW9uIGhhc24ndCBzdGFydGVkIHlldAoJRUFDQ0VTIC0gaWYgdGhlIHVzZXIg
ZG9lc24ndCBoYXZlIHN1cGVyLXVzZXIgY3JlZGVudGlhbHMKCUVJTlZBTCAtIGlmIHRoZSBzdHJ1
Y3Qgc2V0c3ByZWZzIGlzIHRvbyBsYXJnZQoJRUlOVkFMIC0gaWYgdGhlIHN0cnVjdCBzZXRzcHJl
ZnMgbXVsdGlwbGllZCBieSB0aGUgbnVtYmVyIG9mIHNlcnZlcnMgaXMgdG9vIAkJCQlsYXJnZQpT
aWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoKKioqKioqKioqKioqClBTdG9yZUJlaGluZAoqKioq
KioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfU1RPUkJFSElORCAoNDcpIEFkanVzdCBz
dG9yZSBhc3luY2hyb255CkFyZ3VtZW50czogCglzZXQncyB0aGUgc2JzdHJ1Y3QKT3V0Y29tZToK
CXNldCBhc3luY2hyb255IGJhc2VkIG9uIGEgZmlsZSwgZnJvbSBhIHN0cnVjdCBzYnN0cnVjdCAv
L0kgVEhJTksKRXJyb3JzOgoJRVBFUk0gLSBpZiB0aGUgdXNlciBkb2Vzbid0IGhhdmUgc3VwZXIt
dXNlciBjcmVkZW50aWFscwoJRUFDQ0VTIC0gaWYgdGhlcmUgaXNuJ3QgZW5vdWdoIGFjY2VzcyB0
byBub3QgY2hlY2sgdGhlIG1vZGUgYml0cwpTaWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoJCioq
KioqKioKUEdDUEFHcwoqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DX0dDUEFHUyAoNDgp
IC0gRGlzYWJsZSBhdXRvbWF0aWMgUEFHIGdjJ2luZwpBcmd1bWVudHM6IG5vbmUKT3V0Y29tZToK
CXNldCB0aGUgZ2NwYWdzIHRvIEdDUEFHU19VU0VSRElTQUJMRUQKRXJyb3JzOgoJRUFDQ0VTIC0g
aWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIHN1cGVyLXVzZXIgY3JlZGVudGlhbHMKU2lkZSBFZmZl
Y3RzOgoJbm9uZSBsaXN0ZWQKCQoqKioqKioqKioqKioqKgpQR2V0SW5pdFBhcmFtcwoqKioqKioq
KioqKioqKgpHcm91cDogViAKRnVuY3Rpb246IFZJT0NfR0VUSU5JVFBBUkFNUyAoNDkpIC0gR2V0
IGluaXRpYWwgY2FjaGUgbWFuYWdlciBwYXJhbWV0ZXJzCkFyZ3VtZW50czogbm9uZQpPdXRjb21l
OiAKCXJldHVybiB0aGUgaW5pdGlhbCBjYWNoZSBtYW5hZ2VyIHBhcmFtZXRlcnMKRXJyb3JzOgoJ
RTJCSUcgLSBpZiB0aGUgaW5pdGlhbCBwYXJhbWV0ZXJzIGFyZSBiaWdnZXIgdGhhbiBzb21lIFBJ
R0dZU0laRQpTaWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoJCioqKioqKioqKioKUEdldENQcmVm
cwoqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DX0dFVENQUkVGUyAoNTApIC0gR2V0
IGNsaWVudCBpbnRlcmZhY2UKQXJndW1lbnRzOiBub25lCk91dGNvbWU6CglnZXQgdGhlIGluZm9y
bWF0aW9uIGFib3V0IHRoZSBjbGllbnQgaW50ZXJmYWNlCkVycm9yczoKCUVJTyAtIHRoZSBhZnMg
ZGFlbW9uIGhhc24ndCBzdGFydGVkIHlldAoJRUlOVkFMIC0gaWYgdGhlIHJlcXVlc3QgaXMgdG9v
IGxhcmdlIGZvciB0aGUgc3RydWN0IHRoYXQgd2lsbCBiZSBob2xkaW5nIGl0ClNpZGUgRWZmZWN0
czoKCW5vbmUgbGlzdGVkCgkKKioqKioqKioqKgpQU2V0Q1ByZWZzCioqKioqKioqKioKR3JvdXA6
IFYgCkZ1bmN0aW9uOiBWSU9DX1NFVENQUkVGUyAoNTEpIC0gU2V0IGNsaWVudCBpbnRlcmZhY2UK
QXJndW1lbnRzOgoJVGhlIGludGVyZmFjZXMgeW91IHdhbnQgc2V0Ck91dGNvbWU6CglzZXQgdGhl
IGNhbGxiYWNrIGludGVyZmFjZXMgYWRkcmVzc2VzIHRvIHRob3NlIG9mIHRoZSBob3N0cwpFcnJv
cnM6CglFSU8gLSB0aGUgYWZzIGRhZW1vbiBoYXNuJ3Qgc3RhcnRlZCB5ZXQKCUVJTlZBTCAtIHRo
ZSBpbnB1dCBpcyB0b28gbGFyZ2UgZm9yIHRoZSBzdHJ1Y3QKCUVOT01FTSAtIGlmIHRoZXJlIGFy
ZSB0b28gbWFueSBzZXJ2ZXJzClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVkCgkKKioqKioqKioq
KioKUEZsdXNoTW91bnQKKioqKioqKioqKioKR3JvdXA6IFYKRnVuY3Rpb246IFZJT0NfQUZTX0ZM
VVNITU9VTlQgKDUyKSAtIEZsdXNoIG1vdW50IHN5bWxpbmsgZGF0YQpBcmd1bWVudHM6IAoJVGhl
IGxhc3QgcGFydCBvZiBhIHBhdGggdG8gYSBtb3VudCBwb2ludCwgd2hpY2ggdGVsbHMgdXMgd2hh
dCB0byBmbHVzaApPdXRjb21lOgoJcmVtb3ZlIGFsbCBvZiB0aGUgbW91bnQgZGF0YSBmcm9tIHRo
ZSBkY2FjaGUgcmVnYXJkaW5nIGEgY2VydGFpbiBtb3VudCBwb2ludApFcnJvcnM6CglFSU5WQUwg
LSBpZiBzb21lIG9mIHRoZSBpbml0aWFsIGFyZ3VtZW50cyBhcmVuJ3Qgc2V0CglFTk9URElSIC0g
aWYgdGhlIGluaXRpYWwgYXJndW1lbnQgZm9yIHRoZSBtb3VudCBwb2ludCBpc24ndCBhIGRpcmVj
dG9yeQoJRU5PRU5UIC0gaWYgdGhlIGRjYWNoZSBlbnRyeSBpc24ndCAgc2V0CgoKKioqKioqKioq
KioKUFJ4U3RhdFByb2MKKioqKioqKioqKioKR3JvdXA6IFYgCkZ1bmN0aW9uOiBWSU9DX1JYU1RB
VF9QUk9DICg1MykgLSBDb250cm9sIHByb2Nlc3MgUlggc3RhdGlzdGljcwpBcmd1bWVudHM6CglU
aGUgZmxhZ3MgdGhhdCBjb250cm9sIHdoaWNoIHN0YXRpc3RpY3MgdG8gdXNlCk91dGNvbWU6Cgll
aXRoZXIgZW5hYmxlIHByb2Nlc3MgUlBDU3RhdHMsIGRpc2FibGUgcHJvY2VzcyBSUENTdGF0cywg
b3IgY2xlYXIgdGhlIAkJCXByb2Nlc3MgUlBDU3RhdHMKRXJyb3JzOgoJRUFDQ0VTIC0gaWYgdGhl
IHVzZXIgZG9lc24ndCBoYXZlIHN1cGVyLXVzZXIgY3JlZGVudGlhbHMKCUVJTlZBTCAtIGlmIHRo
ZSBmbGFnIGlucHV0IGlzIHRvbyBsb25nClNpZGUgRWZmZWN0czoKCW5vbmUgbGlzdGVkCgkKKioq
KioqKioqKioKUFJ4U3RhdFBlZXIKKioqKioqKioqKioKR3JvdXA6IFYgCkZ1bmN0aW9uOiBWSU9D
X1JYU1RBVF9QRUVSICg1NCkgLSBDb250cm9sIHBlZXIgUlggc3RhdGlzdGljcwpBcmd1bWVudHM6
IAoJVGhlIGZsYWdzIHRoYXQgY29udHJvbCB3aGljaCBzdGF0aXN0aWNzIHRvIHVzZQpPdXRjb21l
OgoJZWl0aGVyIGVuYWJsZSBwZWVyIFJQQ1N0YXRzLCBkaXNhYmxlIHBlZXIgUlBDU3RhdHMsIG9y
IGNsZWFyIHRoZSBwZWVyIAkJCVJQQ1N0YXRzCkVycm9yczoKCUVBQ0NFUyAtIGlmIHRoZSB1c2Vy
IGRvZXNuJ3QgaGF2ZSBzdXBlci11c2VyIGNyZWRlbnRpYWxzCglFSU5WQUwgLSBpZiB0aGUgZmxh
ZyBpbnB1dCBpcyB0b28gbG9uZwpTaWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoJCioqKioqKioq
KioqKgpQR2V0UnhrY3J5cHQKKioqKioqKioqKioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DX0dF
VFJYS0NSWVBUICg1NSkgLSBHZXQgcnhrYWQgZW5jcnlwdGlvbiBmbGFnCkFyZ3VtZW50czogbm9u
ZQpPdXRjb21lOgoJZ2V0IHRoZSB2YWx1ZSBvZiBjcnlwdGFsbChwcmVzdW1hYmx5IHdoZXRoZXIg
b3Igbm90IHRoaW5ncyBzaG91bGQgYmUgCQkJZW5jcnlwdGVkCkVycm9yczoKCW5vbmUKU2lkZSBF
ZmZlY3RzOgoJbm9uZSBsaXN0ZWQKCioqKioqKioqKioqKgpQU2V0UnhrY3J5cHQKKioqKioqKioq
KioqCkdyb3VwOiBWCkZ1bmN0aW9uOiBWSU9DX1NFVFJYS0NSWVBUICg1NikgLSBTZXQgcnhrYWQg
ZW5jcnlwdGlvbiBmbGFnCkFyZ3VtZW50czogdGhlIGFyZ3VtZW50IHdoZXRoZXIgb3Igbm90IHRo
aW5ncyBzaG91bGQgYmUgZW5jcnlwdGVkCk91dGNvbWU6CglzZXQgd2hldGhlciBvciBub3QgdGhp
bmdzIHNob3VsZCBiZSBlbmNyeXB0ZWQKRXJyb3JzOgoJRVBFUk0gLSBpZiB0aGUgdXNlciBkb2Vz
bid0IGhhdmUgc3VwZXItdXNlciBjcmVkZW50aWFscwoJRUlOVkFMIC0gaWYgdGhlIGlucHV0IGlz
IHRvbyBiaWcsIG9yIGlmIHRoZSBpbnB1dCBpcyBvdXRzaWRlIHRoZSBib3VuZHMgb2YgCQkJCQl3
aGF0IGl0IGNhbiBiZSBzZXQgdG8KU2lkZSBFZmZlY3RzOgoJbm9uZSByZWFsbHksIGJ1dCBtYXkg
bmVlZCB0byBiZSBtb2RpZmllZCBhdCBhIGxhdGVyIGRhdGUgdG8gdGFrZSBpbnRvIGFjY291bnQg
CW90aGVyIHZhbHVlcyBmb3IgY3J5cHRhbGwoYmV5b25kIHRydWUgYW5kIGZhbHNlKQoKKioqKioq
KioqKioqKioqKioKUFNldENsaWVudENvbnRleHQKKioqKioqKioqKioqKioqKioKR3JvdXA6IFYK
RnVuY3Rpb246IFBzZXRDbGllbnRDb250ZXh0ICg5OSkgLSBORlMtUEFHIHBpb2N0bCAoZm9yIGtu
ZnMvcm10c3lzZCkKQXJndW1lbnRzOiBub25lCk91dGNvbWU6IAoJU2V0dXAgY2FsbGVyJ3MgY3Jl
ZGVudGlhbHMsIGRlcGVuZGVudCBvbiBhbiBBSVggNjQtYml0IGtlcm5lbCwgSFBVWCwgU1VONTcg
NjQtYml0IGtlcm5lbCwgU0dJIDY0LW1pcHMsIG9yIGEgbmVlZCBmb3IgYSAzMi1iaXQgaW9jdGwK
RXJyb3JzOgoJbm9uZQpTaWRlIEVmZmVjdHM6Cglub25lIGxpc3RlZAoKLy9XQVNOJ1QgU1VSRSBX
SEFUIFRPIERPIEFCT1VUIFRIRVNFLCBBTFNPIE5PVEUgVEhBVCBUSEUgQUJPVkUgQVJFIEpVU1Qg
VEhFIFYgR1JPVVAgUElPQ1RMKClzLCBJIENBTiBET0NVTUVOVCBUSEUgQyBHUk9VUCwgTU9TVCBP
RiBXSElDSCBBUkUgUEJvZ3VzCgpHcm91cDogViBGdW5jdGlvbjogKipyZXNlcnZlZCoqICgyMzkp
ICAtIFJlc2VydmVkIGZvciBjb2RlIGV4cGFuc2lvbgpHcm91cDogViBGdW5jdGlvbjogVklPQ19T
SVRFMSAoMjQwKSAtIFJlc2VydmVkIGZvciBzaXRlLXNwZWNpZmljIGV4dGVuc2lvbnMKR3JvdXA6
IFYgRnVuY3Rpb246IFZJT0NfU1RJRTIgKDI0MSkgLSBSZXNlcnZlZCBmb3Igc2l0ZS1zcGVjaWZp
YyBleHRlbnNpb25zCkdyb3VwOiBWIEZ1bmN0aW9uOiBWSU9DX1NJVEUzICgyNDIpIC0gUmVzZXJ2
ZWQgZm9yIHNpdGUtc3BlY2lmaWMgZXh0ZW5zaW9ucwpHcm91cDogViBGdW5jdGlvbjogVklPQ19T
SVRFNCAoMjQzKSAtIFJlc2VydmVkIGZvciBzaXRlLXNwZWNpZmljIGV4dGVuc2lvbnMKR3JvdXA6
IFYgRnVuY3Rpb246IFZJT0NfU0lURTUgKDI0NCkgLSBSZXNlcnZlZCBmb3Igc2l0ZS1zcGVjaWZp
YyBleHRlbnNpb25zCkdyb3VwOiBWIEZ1bmN0aW9uOiBWSU9DX1NJVEU2ICgyNDUpIC0gUmVzZXJ2
ZWQgZm9yIHNpdGUtc3BlY2lmaWMgZXh0ZW5zaW9ucwpHcm91cDogViBGdW5jdGlvbjogVklPQ19T
SVRFNyAoMjQ2KSAtIFJlc2VydmVkIGZvciBzaXRlLXNwZWNpZmljIGV4dGVuc2lvbnMKR3JvdXA6
IFYgRnVuY3Rpb246IFZJT0NfU0lURTggKDI0NykgLSBSZXNlcnZlZCBmb3Igc2l0ZS1zcGVjaWZp
YyBleHRlbnNpb25zCkdyb3VwOiBWIEZ1bmN0aW9uOiBWSU9DX1BSSVZBVEUxICgyNDgpIC0gUmVz
ZXJ2ZWQgZm9yIGltcGxlbWVudGF0aW9uIHVzZQpHcm91cDogViBGdW5jdGlvbjogVklPQ19QUklW
QVRFMiAoMjQ5KSAtIFJlc2VydmVkIGZvciBpbXBsZW1lbnRhdGlvbiB1c2UKR3JvdXA6IFYgRnVu
Y3Rpb246IFZJT0NfUFJJVkFURTMgKDI1MCkgLSBSZXNlcnZlZCBmb3IgaW1wbGVtZW50YXRpb24g
dXNlCkdyb3VwOiBWIEZ1bmN0aW9uOiBWSU9DX1BSSVZBVEU0ICgyNTEpIC0gUmVzZXJ2ZWQgZm9y
IGltcGxlbWVudGF0aW9uIHVzZQpHcm91cDogViBGdW5jdGlvbjogVklPQ19QUklWQVRFNSAoMjUy
KSAtIFJlc2VydmVkIGZvciBpbXBsZW1lbnRhdGlvbiB1c2UKR3JvdXA6IFYgRnVuY3Rpb246IFZJ
T0NfUFJJVkFURTYgKDI1MykgLSBSZXNlcnZlZCBmb3IgaW1wbGVtZW50YXRpb24gdXNlCkdyb3Vw
OiBWIEZ1bmN0aW9uOiBWSU9DX1BSSVZBVEU3ICgyNTQpIC0gUmVzZXJ2ZWQgZm9yIGltcGxlbWVu
dGF0aW9uIHVzZQpHcm91cDogViBGdW5jdGlvbjogVklPQ19QUklWQVRFOCAoMjU1KSAtIFJlc2Vy
dmVkIGZvciBpbXBsZW1lbnRhdGlvbiB1c2U=
------=_Part_7624_30480480.1213896814396--