Re: fence_ec2 agent

Dejan Muhamedagic <[email protected]> Wed, 11 Mar 2015 13:27:58 +0100
Newsgroups gmane.linux.highavailability.user
Message-ID <[email protected]>
SGkgS2F6dWhpa28tc2FuLAoKT24gV2VkLCBNYXIgMTEsIDIwMTUgYXQgMDI6MzY6NDNQTSArMDkw
MCwg5p2x5LiA5b2mIHdyb3RlOgo+IEhpLCBEZWphbgo+IAo+IFRoYW5rIHlvdSBmb3IgdGhlIGNv
bW1lbnQuCj4gCj4gSSdkIGxpa2UgdG8gY29udHJpYnV0ZSBpdCBhcyBnbHVlIHN0b25pdGggYWdl
bnRzLgo+IAo+IFNvLCBJIHJlbmFtZSBpdCB0byBqdXN0ICJlYzIiLgo+IAo+IFdvdWxkIHlvdSBw
bGVhc2UgYWRkIGl0IHRvIGdsdWUgcmVwb3NpdG9yeSAoaHR0cDovL2hnLmxpbnV4LWhhLm9yZy9n
bHVlLykgPwoKSSBqdXN0IGFkZGVkIHlvdXIgc3Rvbml0aCBhZ2VudC4gVGhlcmUgd2VyZSB0aGlz
IGNoYW5nZSBpbiB0aGUKaW5pdGlhbCBjaGFuZ2VzZXQ6CgotIHJlcGxhY2VkICctJyB3aGljaCBp
cyBub3QgYWxsb3dlZCBpbiBpZGVudGlmaWVycyB3aXRoICdfJyBpbgogIGZ1bmN0aW9uIGdldGlu
Zm9feG1sKCkuCgpUaGVyZSB3ZXJlIG90aGVyIHNtYWxsZXIgY2hhbmdlcy4gWW91IGNhbiBmaW5k
IHRoZW0gaW4gdGhlCnJlcG9zaXRvcnkuCgpJIHdhcyBub3QgYWJsZSB0byB0ZXN0IGl0LCBob3Bl
IGl0IHdvcmtzIDopCgpNYW55IHRoYW5rcyBmb3IgdGhlIGNvbnRyaWJ1dGlvbi4KCkNoZWVycywK
CkRlamFuCgo+IFJlZ2FyZHMsCj4gS2F6dWhpa28gSGlnYXNoaQo+IAo+IE9uIDIwMTUvMDMvMDYg
MjozOCwgRGVqYW4gTXVoYW1lZGFnaWMgd3JvdGU6Cj4gPkhpLAo+ID4KPiA+T24gVHVlLCBNYXIg
MDMsIDIwMTUgYXQgMDU6MTM6NDlQTSArMDkwMCwg5p2x5LiA5b2mIHdyb3RlOgo+ID4+RGVhciBN
YXJrdXMsCj4gPj4KPiA+Pkkgd2FzIGFsc28gdGhpbmtpbmcgdGhlIHNhbWUgdGhpbmcuCj4gPj5T
bywgQWxyZWFkeSBJJ3ZlIGNyZWF0ZWQgYSBuZXcgb25lLgo+ID4KPiA+UGVyaGFwcyB5b3UnZCBs
aWtlIHRvIHRoZW4gY29udHJpYnV0ZSBpdCB1cHN0cmVhbT8gRWl0aGVyIHRvCj4gPmdsdWUgc3Rv
bml0aCBhZ2VudHMgb3IgUkhUIGZlbmNpbmcgYWdlbnRzLiBJdCBhcHBlYXJzIHRoYXQgdGhlCj4g
PmFnZW50IGlzIHVzaW5nIHRoZSBzdG9uaXRoIGludGVyZmFjZSwgYnV0IHRoZSBuYW1lIHJlZmxl
Y3RzIHRoZQo+ID5mZW5jaW5nIGFnZW50cyBuYW1pbmcgc2NoZW1lLgo+ID4KPiA+Q2hlZXJzLAo+
ID4KPiA+RGVqYW4KPiA+Cj4gPj5bQ2hhbmdlU2V0XQo+ID4+LSBBbiBBUEkgdG8gYmUgdXNlZCB3
YXMgY2hhbmdlZCBmcm9tICJBbWF6b24gRUMyIENMSSIgdG8gIkFXUyBDTEkiLgo+ID4+ICAgLS0g
IkFXUyBDTEkiIGlzIGJhc2VkIFB5dGhvbi4gU28sIENQVSBsb2FkIG1pZ2h0IGJlIHJlZHVjZWQu
Cj4gPj4KPiA+Pi0gVGhlICItLXByaXZhdGUta2V5IiBhbmQgIi0tY2VydCIgb3B0aW9ucyBhcmUg
ZGVwcmVjYXRlZCBpbiBBV1MgQ0xJLgo+ID4+ICAgU28sIEkgYWRkIGEgbmV3IG9wdGlvbiAiLS1w
cm9maWxlIi4gVXNlIGEgc3BlY2lmaWMgcHJvZmlsZSBmcm9tIHRoYXQgY3JlZGVudGlhbCBmaWxl
Lgo+ID4+ICAgZGVmYXVsdCBpcyAiIgo+ID4+Cj4gPj4KPiA+PltIb3cgdG8gdXNlXQo+ID4+LSBQ
bGFlc2UgaW5zdGFsbCB0aGUgIkFXUyBDTEkiLgo+ID4+ICAgaHR0cDovL2RvY3MuYXdzLmFtYXpv
bi5jb20vY2xpL2xhdGVzdC91c2VyZ3VpZGUvY2xpLWNoYXAtZ2V0dGluZy1zdGFydGVkLmh0bWwK
PiA+Pgo+ID4+LSBQbGVhc2UgY29weSB0aGUgZmVuY2VfZWMyIGluIC91c3IvbGliNjQvc3Rvbml0
aC9wbHVnaW5zL2V4dGVybmFsLy4KPiA+PiAgIEFuZCAsIFBsZWFzZSBzZXQgdGhlIHBlcm1pc3Np
b25zIHRvIDc1NS4KPiA+Pgo+ID4+LSBQbGVhc2Ugc2V0IGNybSBzZXR0aW5ncyBhcyBpbiB0aGlz
IGV4YW1wbGUuCj4gPj4gICAtIFRoZSBpbnN0YW5jZSB0aGF0IGhhdmUgYmVlbiBzZXQgYXMgIm5v
ZGUwMSIgaW4gdGhlICJOYW1lIiB0YWcgYXJlIGZlbmNlLgo+ID4+ICAgLS0tLS0tCj4gPj4gICBw
cmltaXRpdmUgcHJtU3Rvbml0aDEtMiBzdG9uaXRoOmV4dGVybmFsL2ZlbmNlX2VjMiBcCQkKPiA+
PglwYXJhbXMgXAkKPiA+PgkJcGNta19vZmZfdGltZW91dD0iMzAwcyIgXAo+ID4+CQlwb3J0PSJu
b2RlMDEiIFwKPiA+PgkJdGFnPSJOYW1lIiBcCj4gPj4Jb3Agc3RhcnQgaW50ZXJ2YWw9IjBzIiB0
aW1lb3V0PSI2MHMiIFwJCj4gPj4Jb3AgbW9uaXRvciBpbnRlcnZhbD0iMzYwMHMiIHRpbWVvdXQ9
IjYwcyIgXAkKPiA+PglvcCBzdG9wIGludGVydmFsPSIwcyIgdGltZW91dD0iNjBzIgkKPiA+PiAg
IC0tLS0tLQo+ID4+Cj4gPj4KPiA+PlJlZ2FyZHMsCj4gPj5LYXp1aGlrbyBIaWdhc2hpCj4gPj4K
PiA+Pk9uIDIwMTUvMDIvMjUgNzoyMiwgTWFya3VzIEd1ZXJ0bGVyIHdyb3RlOgo+ID4+PkRlYXIg
bGlzdCwKPiA+Pj5JIHdhcyBqdXN0IHRyeWluZyB0byBjb25maWd1cmUgdGhlIGZlbmNlX2VjMiBz
dG9uaXRoIGFnZW50IGZyb20gMjAxMiwgd3JpdHRlbiBieSBBbmRyZXcgQmVla2hvZi4gSXQgbG9v
a3MgbGlrZSwgdGhhdCB0aGlzIG9uZSBub3Qgd29ya2luZyBhbnltb3JlIHdpdGggbmV3ZXIgc3Rv
bml0aCAvIGNsdXN0ZXIgdmVyc2lvbnMuIElzIHRoZXJlIGFueSBvdGhlciBFQzIgYWdlbnQsIHRo
YXQgaXMgc3RpbGwgbWFpbnRhaW5lZD8KPiA+Pj4KPiA+Pj5JZiBub3QsIEknbGwgd3JpdGUgb25l
IG15c2VsZi4gSG93ZXZlciwgSSdkIGxpa2UgdG8gY2hlY2sgYWxsIG9wdGlvbnMgZmlyc3QuCj4g
Pj4+Cj4gPj4+Q2hlZXJzLAo+ID4+Pk1hcmt1cwo+ID4+Pgo+ID4+Pl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+TGludXgtSEEgbWFpbGluZyBsaXN0
Cj4gPj4+TGludXgtSEFAbGlzdHMubGludXgtaGEub3JnCj4gPj4+aHR0cDovL2xpc3RzLmxpbnV4
LWhhLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWhhCj4gPj4+U2VlIGFsc286IGh0dHA6Ly9s
aW51eC1oYS5vcmcvUmVwb3J0aW5nUHJvYmxlbXMKPiA+Pj4KPiA+Pgo+ID4+Cgo+ICMhL2Jpbi9i
YXNoCj4gCj4gZGVzY3JpcHRpb249Igo+IGZlbmNlX2VjMiBpcyBhbiBJL08gRmVuY2luZyBhZ2Vu
dCB3aGljaCBjYW4gYmUgdXNlZCB3aXRoIEFtYXpvbiBFQzIgaW5zdGFuY2VzLgo+IAo+IEFQSSBm
dW5jdGlvbnMgdXNlZCBieSB0aGlzIGFnZW50Ogo+IC0gYXdzIGVjMiBkZXNjcmliZS10YWdzCj4g
LSBhd3MgZWMyIGRlc2NyaWJlLWluc3RhbmNlcwo+IC0gYXdzIGVjMiBzdG9wLWluc3RhbmNlcwo+
IC0gYXdzIGVjMiBzdGFydC1pbnN0YW5jZXMKPiAtIGF3cyBlYzIgcmVib290LWluc3RhbmNlcwo+
IAo+IElmIHRoZSB1bmFtZSB1c2VkIGJ5IHRoZSBjbHVzdGVyIG5vZGUgaXMgYW55IG9mOgo+ICAt
IFB1YmxpYyBETlMgbmFtZSAob3IgcGFydCB0aGVyZSBvZiksCj4gIC0gUHJpdmF0ZSBETlMgbmFt
ZSAob3IgcGFydCB0aGVyZSBvZiksCj4gIC0gSW5zdGFuY2UgSUQgKGVnLiBpLTRmMTVhODM5KQo+
ICAtIENvbnRlbnRzIG9mIHRhZyBhc3NvY2lhdGVkIHdpdGggdGhlIGluc3RhbmNlCj4gdGhlbiB0
aGUgYWdlbnQgc2hvdWxkIGJlIGFibGUgdG8gYXV0b21hdGljYWxseSBkaXNjb3ZlciB0aGUgaW5z
dGFuY2VzIGl0IGNhbiBjb250cm9sLgo+IAo+IElmIHRoZSB0YWcgY29udGFpbmluZyB0aGUgdW5h
bWUgaXMgbm90IFtOYW1lXSwgdGhlbiBpdCB3aWxsIG5lZWQgdG8gYmUgc3BlY2lmaWVkIHVzaW5n
IHRoZSBbdGFnXSBvcHRpb24uCj4gIgo+IAo+ICMKPiAjIENvcHlyaWdodCAoYykgMjAxMS0yMDEz
IEFuZHJldyBCZWVraG9mCj4gIyBDb3B5cmlnaHQgKGMpIDIwMTQgTklQUE9OIFRFTEVHUkFQSCBB
TkQgVEVMRVBIT05FIENPUlBPUkFUSU9OCj4gIyAgICAgICAgICAgICAgICAgICAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KPiAjCj4gIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHZlcnNpb24gMiBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKPiAjIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICMKPiAjIFRoaXMgcHJvZ3Jh
bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdvdWxkIGJlIHVzZWZ1bCwgYnV0
Cj4gIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCj4gIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuCj4gIwo+ICMgRnVydGhlciwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCB3aXRo
b3V0IGFueSB3YXJyYW50eSB0aGF0IGl0IGlzCj4gIyBmcmVlIG9mIHRoZSByaWdodGZ1bCBjbGFp
bSBvZiBhbnkgdGhpcmQgcGVyc29uIHJlZ2FyZGluZyBpbmZyaW5nZW1lbnQKPiAjIG9yIHRoZSBs
aWtlLiAgQW55IGxpY2Vuc2UgcHJvdmlkZWQgaGVyZWluLCB3aGV0aGVyIGltcGxpZWQgb3IKPiAj
IG90aGVyd2lzZSwgYXBwbGllcyBvbmx5IHRvIHRoaXMgc29mdHdhcmUgZmlsZS4gIFBhdGVudCBs
aWNlbnNlcywgaWYKPiAjIGFueSwgcHJvdmlkZWQgaGVyZWluIGRvIG5vdCBhcHBseSB0byBjb21i
aW5hdGlvbnMgb2YgdGhpcyBwcm9ncmFtIHdpdGgKPiAjIG90aGVyIHNvZnR3YXJlLCBvciBhbnkg
b3RoZXIgcHJvZHVjdCB3aGF0c29ldmVyLgo+ICMKPiAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCj4gIyBhbG9uZyB3aXRo
IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LAo+ICMgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24gTUEgMDIxMTEt
MTMwNywgVVNBLgo+ICMKPiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo+IAo+IHF1aWV0PTAKPiBwb3J0X2RlZmF1
bHQ9IiIKPiAKPiBpbnN0YW5jZV9ub3RfZm91bmQ9MAo+IHVua25vd25fYXJlX3N0b3BwZWQ9MAo+
IAo+IGFjdGlvbl9kZWZhdWx0PSJyZXNldCIgICAgICAgICAjIERlZmF1bHQgZmVuY2UgYWN0aW9u
Cj4gZWMyX3RhZ19kZWZhdWx0PSJOYW1lIgkgICAgICAgIyBFQzIgVGFnIGNvbnRhaW5pbmcgdGhl
IGluc3RhbmNlJ3MgdW5hbWUKPiAKPiBzbGVlcF90aW1lPSIxIgo+IAo+IGVjMl90YWc9JHt0YWd9
Cj4gCj4gOiAke2VjMl90YWc9JHtlYzJfdGFnX2RlZmF1bHR9fQo+IDogJHtwb3J0PSR7cG9ydF9k
ZWZhdWx0fX0KPiAKPiBmdW5jdGlvbiB1c2FnZSgpCj4gewo+IGNhdCA8PEVPRgo+IGBiYXNlbmFt
ZSAkMGAgLSBBIGZlbmNpbmcgYWdlbnQgZm9yIEFtYXpvbiBFQzIgaW5zdGFuY2VzCj4gIAo+ICRk
ZXNjcmlwdGlvbgo+ICAKPiBVc2FnZTogYGJhc2VuYW1lICQwYCAtb3wtLWFjdGlvbiBbLW58LS1w
b3J0XSBbb3B0aW9uc10KPiBPcHRpb25zOgo+ICAtaCwgLS1oZWxwIAkJVGhpcyB0ZXh0Cj4gIC1W
LCAtLXZlcnNpb24JCVZlcnNpb24gaW5mb3JtYXRpb24KPiAgLXEsIC0tcXVpZXQgCQlSZWR1Y2Vk
IG91dHB1dCBtb2RlCj4gIAo+IENvbW1hbmRzOgo+ICAtbywgLS1hY3Rpb24JCUFjdGlvbiB0byBw
ZXJmb3JtOiBvbnxvZmZ8cmVib290fHN0YXR1c3xtb25pdG9yCj4gIC1uLCAtLXBvcnQgCQlUaGUg
bmFtZSBvZiBhIG1hY2hpbmUvaW5zdGFuY2UgdG8gY29udHJvbC9jaGVjawo+IAo+IEFkZGl0aW9u
YWwgT3B0aW9uczoKPiAgLXAsIC0tcHJvZmlsZQkJVXNlIGEgc3BlY2lmaWMgcHJvZmlsZSBmcm9t
IHlvdXIgY3JlZGVudGlhbCBmaWxlLgo+ICAtdCwgLS10YWcgCQlOYW1lIG9mIHRoZSB0YWcgY29u
dGFpbmluZyB0aGUgaW5zdGFuY2UncyB1bmFtZQo+IAo+IERhbmdlcm91cyBvcHRpb25zOgo+ICAt
VSwgLS11bmtub3duLWFyZS1zdG9wcGVkIAlBc3N1bWUgYW55IHVua25vd24gaW5zdGFuY2UgaXMg
c2FmZWx5IHN0b3BwZWQKPiAKPiBFT0YKPiAgICAgZXhpdCAwOwo+IH0KPiAKPiBmdW5jdGlvbiBn
ZXRpbmZvLXhtbCgpCj4gewo+IAljYXQgPDxFT0YKPiA8cGFyYW1ldGVycz4KPiAJPHBhcmFtZXRl
ciBuYW1lPSJwb3J0IiB1bmlxdWU9IjEiIHJlcXVpcmVkPSIxIj4KPiAJCTxjb250ZW50IHR5cGU9
InN0cmluZyIgLz4KPiAJCTxzaG9ydGRlc2MgbGFuZz0iZW4iPlRoZSBuYW1lL2lkL3RhZyBvZiBh
IGluc3RhbmNlIHRvIGNvbnRyb2wvY2hlY2s8L3Nob3J0ZGVzYz4KPiAJPC9wYXJhbWV0ZXI+Cj4g
CTxwYXJhbWV0ZXIgbmFtZT0icHJvZmlsZSIgdW5pcXVlPSIwIiByZXF1aXJlZD0iMCI+Cj4gCQk8
Y29udGVudCB0eXBlPSJzdHJpbmciIGRlZmF1bHQ9ImRlZmF1bHQiIC8+Cj4gCQk8c2hvcnRkZXNj
IGxhbmc9ImVuIj5Vc2UgYSBzcGVjaWZpYyBwcm9maWxlIGZyb20geW91ciBjcmVkZW50aWFsIGZp
bGUuPC9zaG9ydGRlc2M+Cj4gCTwvcGFyYW1ldGVyPgo+IAk8cGFyYW1ldGVyIG5hbWU9InRhZyIg
dW5pcXVlPSIwIiByZXF1aXJlZD0iMSI+Cj4gCQk8Y29udGVudCB0eXBlPSJzdHJpbmciIGRlZmF1
bHQ9Ik5hbWUiIC8+Cj4gCQk8c2hvcnRkZXNjIGxhbmc9ImVuIj5OYW1lIG9mIHRoZSB0YWcgY29u
dGFpbmluZyB0aGUgaW5zdGFuY2VzIHVuYW1lPC9zaG9ydGRlc2M+Cj4gCTwvcGFyYW1ldGVyPgo+
IAk8cGFyYW1ldGVyIG5hbWU9InVua25vd25fYXJlX3N0b3BwZWQiIHVuaXF1ZT0iMCIgcmVxdWly
ZWQ9IjAiPgo+IAkJPGNvbnRlbnQgdHlwZT0ic3RyaW5nIiBkZWZhdWx0PSJmYWxzZSIgLz4KPiAJ
CTxzaG9ydGRlc2MgbGFuZz0iZW4iPkRBTkdFUjogQXNzdW1lIGFueSB1bmtub3duIGluc3RhbmNl
IGlzIHNhZmVseSBzdG9wcGVkPC9zaG9ydGRlc2M+Cj4gCTwvcGFyYW1ldGVyPgo+IDwvcGFyYW1l
dGVycz4KPiBFT0YKPiAJZXhpdCAwOwo+IH0KPiAKPiBmdW5jdGlvbiBtZXRhZGF0YSgpCj4gewo+
IAljYXQgPDxFT0YKPiA8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cj4gPHJlc291cmNlLWFnZW50IG5h
bWU9ImZlbmNlX2VjMiIgc2hvcnRkZXNjPSJGZW5jaW5nIGFnZW50IGZvciBBbWF6b24gRUMyIGlu
c3RhbmNlcyIgPgo+IAk8bG9uZ2Rlc2M+Cj4gJGRlc2NyaXB0aW9uCj4gCTwvbG9uZ2Rlc2M+Cj4g
CTxwYXJhbWV0ZXJzPgo+IAk8cGFyYW1ldGVyIG5hbWU9ImFjdGlvbiIgdW5pcXVlPSIwIiByZXF1
aXJlZD0iMSI+Cj4gCQk8Z2V0b3B0IG1peGVkPSItbywgLS1hY3Rpb249W2FjdGlvbl0iIC8+Cj4g
CQk8Y29udGVudCB0eXBlPSJzdHJpbmciIGRlZmF1bHQ9InJlYm9vdCIgLz4KPiAJCTxzaG9ydGRl
c2MgbGFuZz0iZW4iPkZlbmNpbmcgQWN0aW9uPC9zaG9ydGRlc2M+Cj4gCTwvcGFyYW1ldGVyPgo+
IAk8cGFyYW1ldGVyIG5hbWU9InBvcnQiIHVuaXF1ZT0iMSIgcmVxdWlyZWQ9IjEiPgo+IAkJPGdl
dG9wdCBtaXhlZD0iLW4sIC0tcG9ydD1bcG9ydF0iIC8+Cj4gCQk8Y29udGVudCB0eXBlPSJzdHJp
bmciIC8+Cj4gCQk8c2hvcnRkZXNjIGxhbmc9ImVuIj5UaGUgbmFtZS9pZC90YWcgb2YgYSBpbnN0
YW5jZSB0byBjb250cm9sL2NoZWNrPC9zaG9ydGRlc2M+Cj4gCTwvcGFyYW1ldGVyPgo+IAk8cGFy
YW1ldGVyIG5hbWU9InByb2ZpbGUiIHVuaXF1ZT0iMCIgcmVxdWlyZWQ9IjAiPgo+IAkJPGdldG9w
dCBtaXhlZD0iLXAsIC0tcHJvZmlsZT1bcHJvZmlsZV0iIC8+Cj4gCQk8Y29udGVudCB0eXBlPSJz
dHJpbmciIGRlZmF1bHQ9ImRlZmF1bHQiIC8+Cj4gCQk8c2hvcnRkZXNjIGxhbmc9ImVuIj5Vc2Ug
YSBzcGVjaWZpYyBwcm9maWxlIGZyb20geW91ciBjcmVkZW50aWFsIGZpbGUuPC9zaG9ydGRlc2M+
Cj4gCTwvcGFyYW1ldGVyPgo+IAk8cGFyYW1ldGVyIG5hbWU9InRhZyIgdW5pcXVlPSIwIiByZXF1
aXJlZD0iMSI+Cj4gCQk8Z2V0b3B0IG1peGVkPSItdCwgLS10YWc9W3RhZ10iIC8+Cj4gCQk8Y29u
dGVudCB0eXBlPSJzdHJpbmciIGRlZmF1bHQ9Ik5hbWUiIC8+Cj4gCQk8c2hvcnRkZXNjIGxhbmc9
ImVuIj5OYW1lIG9mIHRoZSB0YWcgY29udGFpbmluZyB0aGUgaW5zdGFuY2VzIHVuYW1lPC9zaG9y
dGRlc2M+Cj4gCTwvcGFyYW1ldGVyPgo+IAk8cGFyYW1ldGVyIG5hbWU9InVua25vd24tYXJlLXN0
b3BwZWQiIHVuaXF1ZT0iMCIgcmVxdWlyZWQ9IjAiPgo+IAkJPGdldG9wdCBtaXhlZD0iLVUsIC0t
dW5rbm93bi1hcmUtc3RvcHBlZCIgLz4KPiAJCTxjb250ZW50IHR5cGU9InN0cmluZyIgZGVmYXVs
dD0iZmFsc2UiIC8+Cj4gCQk8c2hvcnRkZXNjIGxhbmc9ImVuIj5EQU5HRVI6IEFzc3VtZSBhbnkg
dW5rbm93biBpbnN0YW5jZSBpcyBzYWZlbHkgc3RvcHBlZDwvc2hvcnRkZXNjPgo+IAk8L3BhcmFt
ZXRlcj4KPiAJPC9wYXJhbWV0ZXJzPgo+IAk8YWN0aW9ucz4KPiAJPGFjdGlvbiBuYW1lPSJvbiIg
Lz4KPiAJPGFjdGlvbiBuYW1lPSJvZmYiIC8+Cj4gCTxhY3Rpb24gbmFtZT0icmVib290IiAvPgo+
IAk8YWN0aW9uIG5hbWU9InN0YXR1cyIgLz4KPiAJPGFjdGlvbiBuYW1lPSJsaXN0IiAvPgo+IAk8
YWN0aW9uIG5hbWU9Im1vbml0b3IiIC8+Cj4gCTxhY3Rpb24gbmFtZT0ibWV0YWRhdGEiIC8+Cj4g
CTwvYWN0aW9ucz4KPiA8L3Jlc291cmNlLWFnZW50Pgo+IEVPRgo+IAlleGl0IDA7Cj4gfQo+IAo+
IGZ1bmN0aW9uIGluc3RhbmNlX2Zvcl9wb3J0KCkKPiB7Cj4gCWxvY2FsIHBvcnQ9JDEKPiAJbG9j
YWwgaW5zdGFuY2U9IiIKPiAKPiAJIyBMb29rIGZvciBwb3J0IG5hbWUgLW4gaW4gdGhlIElOU1RB
TkNFIGRhdGEKPiAJaW5zdGFuY2U9YGF3cyBlYzIgZGVzY3JpYmUtaW5zdGFuY2VzICRvcHRpb25z
IHwgZ3JlcCAiXklOU1RBTkNFU1tbOnNwYWNlOl1dLipbWzpzcGFjZTpdXSRwb3J0W1s6c3BhY2U6
XV0iIHwgYXdrICd7cHJpbnQgJDh9J2AKPiAJaWYgWyAteiAkaW5zdGFuY2UgXTsgdGhlbgo+IAkJ
IyBMb29rIGZvciBwb3J0IG5hbWUgLW4gaW4gdGhlIE5hbWUgVEFHCj4gCQlpbnN0YW5jZT1gYXdz
IGVjMiBkZXNjcmliZS10YWdzICRvcHRpb25zIHwgZ3JlcCAiXlRBR1NbWzpzcGFjZTpdXSRlYzJf
dGFnW1s6c3BhY2U6XV0uKltbOnNwYWNlOl1daW5zdGFuY2VbWzpzcGFjZTpdXSRwb3J0JCIgfCBh
d2sgJ3twcmludCAkM30nYAo+IAlmaQo+IAo+IAlpZiBbIC16ICRpbnN0YW5jZSBdOyB0aGVuCj4g
CQlpbnN0YW5jZV9ub3RfZm91bmQ9MQo+IAkJaW5zdGFuY2U9JHBvcnQKPiAJZmkKPiAKPiAJZWNo
byAkaW5zdGFuY2UKPiB9Cj4gCj4gZnVuY3Rpb24gaW5zdGFuY2Vfb24oKQo+IHsKPiAJYXdzIGVj
MiBzdGFydC1pbnN0YW5jZXMgJG9wdGlvbnMgLS1pbnN0YW5jZS1pZHMgJGluc3RhbmNlCj4gfQo+
IAo+IGZ1bmN0aW9uIGluc3RhbmNlX29mZigpCj4gewo+IAlpZiBbICR1bmtub3duX2FyZV9zdG9w
cGVkID0gMSAtYSAkaW5zdGFuY2Vfbm90X2ZvdW5kIF07IHRoZW4KPiAJCTogbm90aGluZyB0byBk
bwo+IAkJaGFfbG9nLnNoIGluZm8gIkFzc3VtaW5nIHVua25vd24gaW5zdGFuY2UgJGluc3RhbmNl
IGlzIGFscmVhZHkgb2ZmIgo+IAllbHNlCj4gCQlhd3MgZWMyIHN0b3AtaW5zdGFuY2VzICRvcHRp
b25zIC0taW5zdGFuY2UtaWRzICRpbnN0YW5jZSAtLWZvcmNlCj4gCWZpCj4gfQo+IAo+IGZ1bmN0
aW9uIGluc3RhbmNlX3N0YXR1cygpCj4gewo+IAlsb2NhbCBpbnN0YW5jZT0kMQo+IAlsb2NhbCBz
dGF0dXM9InVua25vd24iCj4gCWxvY2FsIHJjPTEKPiAKPiAJIyBMaXN0IG9mIGluc3RhbmNlcyBh
bmQgdGhlaXIgY3VycmVudCBzdGF0dXMKPiAJaWYgWyAkdW5rbm93bl9hcmVfc3RvcHBlZCA9IDEg
LWEgJGluc3RhbmNlX25vdF9mb3VuZCBdOyB0aGVuCj4gCQloYV9sb2cuc2ggaW5mbyAiJGluc3Rh
bmNlIHN0b3BwZWQgKHVua25vd24pIgo+IAllbHNlCj4gCQlzdGF0dXM9YGF3cyBlYzIgZGVzY3Jp
YmUtaW5zdGFuY2VzICRvcHRpb25zIC0taW5zdGFuY2UtaWRzICRpbnN0YW5jZSB8IGF3ayAneyAK
PiAJCQlpZiAoL15TVEFURcKldC8pIHsgcHJpbnRmICIlcyIsICQzIH0KPiAJCQl9J2AKPiAJCXJj
PSQ/Cj4gCWZpCj4gCWhhX2xvZy5zaCBpbmZvICJzdGF0dXMgY2hlY2sgZm9yICRpbnN0YW5jZSBp
cyAkc3RhdHVzIgo+IAllY2hvICRzdGF0dXMKPiAJcmV0dXJuICRyYwo+IH0KPiAKPiAKPiBURU1Q
PWBnZXRvcHQgLW8gcVZobzplOnA6bjp0OlUgLS1sb25nIHZlcnNpb24saGVscCxhY3Rpb246LHBv
cnQ6LG9wdGlvbjoscHJvZmlsZTosdGFnOixxdWlldCx1bmtub3duLWFyZS1zdG9wcGVkIMKlCj4g
ICAgICAtbiAnZmVuY2VfZWMyJyAtLSAiJEAiYAo+IAo+IGlmIFsgJD8gIT0gMCBdO3RoZW4gCj4g
ICAgIHVzYWdlCj4gICAgIGV4aXQgMQo+IGZpCj4gCj4gIyBOb3RlIHRoZSBxdW90ZXMgYXJvdW5k
IGAkVEVNUCc6IHRoZXkgYXJlIGVzc2VudGlhbCEKPiBldmFsIHNldCAtLSAiJFRFTVAiCj4gCj4g
aWYgWyAteiAkMSBdOyB0aGVuCj4gCSMgSWYgdGhlcmUgYXJlIG5vIGNvbW1hbmQgbGluZSBhcmdz
LCBsb29rIGZvciBvcHRpb25zIGZyb20gc3RkaW4KPiAJd2hpbGUgcmVhZCBsaW5lOyBkbwo+IAkJ
Y2FzZSAkbGluZSBpbiAKPiAJCQlvcHRpb249KnxhY3Rpb249KikgYWN0aW9uPWBlY2hvICRsaW5l
IHwgc2VkIHMvLio9Ly9gOzsKPiAJCQlwb3J0PSopICAgICAgICBwb3J0PWBlY2hvICRsaW5lIHwg
c2VkIHMvLio9Ly9gOzsKPiAJCQlwcm9maWxlPSopICAgICBlYzJfcHJvZmlsZT1gZWNobyAkbGlu
ZSB8IHNlZCBzLy4qPS8vYDs7Cj4gCQkJdGFnPSopICAgICAgICAgZWMyX3RhZz1gZWNobyAkbGlu
ZSB8IHNlZCBzLy4qPS8vYDs7Cj4gCQkJcXVpZXQqKSAgICAgICAgcXVpZXQ9MTs7Cj4gCQkJdW5r
bm93bi1hcmUtc3RvcHBlZCopIHVua25vd25fYXJlX3N0b3BwZWQ9MTs7Cj4gCQkJLS0pOzsKPiAJ
CQkqKSBoYV9sb2cuc2ggZXJyICJJbnZhbGlkIGNvbW1hbmQ6ICRsaW5lIjs7Cj4gCQllc2FjCj4g
CWRvbmUKPiBmaQo+IAo+IHdoaWxlIHRydWUgOyBkbwo+IAljYXNlICIkMSIgaW4KPiAJCS1vfC0t
YWN0aW9ufC0tb3B0aW9uKSBhY3Rpb249JDI7ICAgc2hpZnQ7IHNoaWZ0OzsKPiAJCS1ufC0tcG9y
dCkgICAgICAgICAgICBwb3J0PSQyOyAgICAgc2hpZnQ7IHNoaWZ0OzsKPiAJCS1wfC0tcHJvZmls
ZSkgICAgICAgICBlYzJfcHJvZmlsZT0kMjsgc2hpZnQ7IHNoaWZ0OzsKPiAJCS10fC0tdGFnKQkg
ICAgICBlYzJfdGFnPSQyOyBzaGlmdDsgc2hpZnQ7Owo+IAkJLVV8LS11bmtub3duLWFyZS1zdG9w
cGVkKSB1bmtub3duX2FyZV9zdG9wcGVkPTE7IHNoaWZ0OzsKPiAJCS1xfC0tcXVpZXQpIHF1aWV0
PTE7IHNoaWZ0OzsKPiAJCS1WfC0tdmVyc2lvbikgZWNobyAiMS4wLjAiOyBleGl0IDA7Owo+IAkJ
LS1oZWxwfC1oKSAKPiAJCQl1c2FnZTsKPiAJCQlleGl0IDA7Owo+IAkJLS0pIHNoaWZ0IDsgYnJl
YWsgOzsKPiAJCSopIGhhX2xvZy5zaCBlcnIgIlVua25vd24gb3B0aW9uOiAkMS4gU2VlIC0taGVs
cCBmb3IgZGV0YWlscy4iOyBleGl0IDE7Owo+IAllc2FjCj4gZG9uZQo+IAo+IFsgLW4gIiQxIiBd
ICYmIGFjdGlvbj0kMQo+IAo+IGlmIFsgLXogIiRlYzJfcHJvZmlsZSJdOyB0aGVuCj4gCW9wdGlv
bnM9Ii0tb3V0cHV0IHRleHQgLS1wcm9maWxlIGRlZmF1bHQiCj4gZWxzZQo+IAlvcHRpb25zPSIt
LW91dHB1dCB0ZXh0IC0tcHJvZmlsZSAkZWMyX3Byb2ZpbGUgIgo+IGZpCj4gCj4gYWN0aW9uPWBl
Y2hvICRhY3Rpb24gfCB0ciAnQS1aJyAnYS16J2AKPiAKPiBjYXNlICRhY3Rpb24gaW4gCj4gCW1l
dGFkYXRhKQo+IAkJbWV0YWRhdGEKPiAJOzsKPiAJZ2V0aW5mby14bWwpCj4gCQlnZXRpbmZvLXht
bAo+IAk7Owo+IAlnZXRjb25maWduYW1lcykKPiAJCWZvciBpIGluIHByb2ZpbGUgcG9ydCB0YWcK
PiAJCWRvCj4gCQkJZWNobyAkaQo+IAkJZG9uZQo+IAkJZXhpdCAwCj4gCTs7Cj4gCWdldGluZm8t
ZGV2aWQpCj4gCQllY2hvICJFQzIgU1RPTklUSCBkZXZpY2UiCj4gCQlleGl0IDAKPiAJOzsKPiAJ
Z2V0aW5mby1kZXZuYW1lKQo+IAkJZWNobyAiRUMyIFNUT05JVEggZXh0ZXJuYWwgZGV2aWNlIgo+
IAkJZXhpdCAwCj4gCTs7Cj4gCWdldGluZm8tZGV2ZGVzY3IpCj4gCQllY2hvICJmZW5jZV9lYzIg
aXMgYW4gSS9PIEZlbmNpbmcgYWdlbnQgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCBBbWF6b24gRUMy
IGluc3RhbmNlcy4iCj4gCQlleGl0IDAKPiAJOzsKPiAJZ2V0aW5mby1kZXZ1cmwpCj4gCQllY2hv
ICIiCj4gCQlleGl0IDAKPiAJOzsKPiBlc2FjCj4gCj4gIyBnZXQgbXkgaW5zdGFuY2UgaWQKPiBt
eWluc3RhbmNlPWBjdXJsIGh0dHA6Ly8xNjkuMjU0LjE2OS4yNTQvbGF0ZXN0L21ldGEtZGF0YS9p
bnN0YW5jZS1pZGAKPiAKPiAjIGNoZWNrIG15IHN0YXR1cy4KPiAjIFdoZW4gdGhlIEVDMiBpbnN0
YW5jZSBiZSBzdG9wcGVkIGJ5IHRoZSAiYXdzIGVjMiBzdG9wLWluc3RhbmNlcyIgLCB0aGUgc3Rv
cCBwcm9jZXNzaW5nIG9mIHRoZSBPUyBpcyBleGVjdXRlZC4KPiAjIFdoaWxlIHRoZSBPUyBzdG9w
IHByb2Nlc3NpbmcsIFBhY2VtYWtlciBjYW4gZXhlY3V0ZSB0aGUgU1RPTklUSCBwcm9jZXNzaW5n
Lgo+ICMgU28sIElmIG15IHN0YXR1cyBpcyBub3QgInJ1bm5pbmciLCBpdCBkZXRlcm1pbmVkIHRo
YXQgSSB3YXMgYWxyZWFkeSBmZW5jZWQuIEFuZCB0byBwcmV2ZW50IGZlbmNpbmcgZWFjaCBvdGhl
cgo+ICMgaW4gc3BsaXQtYnJhaW4sIEkgZG9uJ3QgZmVuY2Ugb3RoZXIgbm9kZS4KPiBpZiBbIC16
ICIkbXlpbnN0YW5jZSIgXTsgdGhlbgo+IAloYV9sb2cuc2ggZXJyICJGYWlsZWQgdG8gZ2V0IE15
IEluc3RhbmNlIElELiBzbyBjYW4gbm90IGNoZWNrIG15IHN0YXR1cy4iCj4gCWV4aXQgMQo+IGZp
Cj4gbXlzdGF0dXM9YGluc3RhbmNlX3N0YXR1cyAkbXlpbnN0YW5jZWAKPiBpZiBbICIkbXlzdGF0
dXMiICE9ICJydW5uaW5nIiBdOyB0aGVuICNkbyBub3QgZmVuY2UKPiAJaGFfbG9nLnNoIHdhcm4g
Ikkgd2FzIGFscmVhZHkgZmVuY2VkIChNeSBpbnN0YW5jZSBzdGF0dXM9JG15c3RhdHVzKS4gSSBk
b24ndCBmZW5jZSBvdGhlciBub2RlLiIKPiAJZXhpdCAxCj4gZmkKPiAKPiAjIGdldCB0YXJnZXQn
cyBpbnN0YW5jZSBpZAo+IGluc3RhbmNlPSIiCj4gaWYgWyAhIC16ICIkcG9ydCIgXTsgdGhlbgo+
IAlpbnN0YW5jZT1gaW5zdGFuY2VfZm9yX3BvcnQgJHBvcnQgJG9wdGlvbnNgCj4gZmkKPiAKPiBj
YXNlICRhY3Rpb24gaW4gCj4gCXJlYm9vdHxyZXNldCkKPiAJCXN0YXR1cz1gaW5zdGFuY2Vfc3Rh
dHVzICRpbnN0YW5jZWAKPiAJCWlmIFsgIiRzdGF0dXMiICE9ICJzdG9wcGVkIiBdOyB0aGVuCj4g
CQkJaW5zdGFuY2Vfb2ZmCj4gCQlmaQo+IAkJd2hpbGUgdHJ1ZTsKPiAJCWRvCj4gCQkJc3RhdHVz
PWBpbnN0YW5jZV9zdGF0dXMgJGluc3RhbmNlYAo+IAkJCWlmIFsgIiRzdGF0dXMiID0gInN0b3Bw
ZWQiIF07IHRoZW4KPiAJCQkJYnJlYWsKPiAJCQlmaQo+IAkJCXNsZWVwICRzbGVlcF90aW1lCj4g
CQlkb25lCj4gCQlpbnN0YW5jZV9vbgo+IAkJd2hpbGUgdHJ1ZTsKPiAJCWRvCj4gCQkJc3RhdHVz
PWBpbnN0YW5jZV9zdGF0dXMgJGluc3RhbmNlYAo+IAkJCWlmIFsgIiRzdGF0dXMiID0gInJ1bm5p
bmciIF07IHRoZW4KPiAJCQkJYnJlYWsKPiAJCQlmaQo+IAkJCXNsZWVwICRzbGVlcF90aW1lCj4g
CQlkb25lCj4gCTs7Cj4gCXBvd2Vyb258b24pCj4gCQlpbnN0YW5jZV9vbgo+IAkJd2hpbGUgdHJ1
ZTsKPiAJCWRvCj4gCQkJc3RhdHVzPWBpbnN0YW5jZV9zdGF0dXMgJGluc3RhbmNlYAo+IAkJCWlm
IFsgIiRzdGF0dXMiID0gInJ1bm5pbmciIF07IHRoZW4KPiAJCQkJYnJlYWsKPiAJCQlmaQo+IAkJ
ZG9uZQo+IAk7Owo+IAlwb3dlcm9mZnxvZmYpCj4gCQlpbnN0YW5jZV9vZmYKPiAJCXdoaWxlIHRy
dWU7Cj4gCQlkbwo+IAkJCXN0YXR1cz1gaW5zdGFuY2Vfc3RhdHVzICRpbnN0YW5jZWAKPiAJCQlp
ZiBbICIkc3RhdHVzIiA9ICJzdG9wcGVkIiBdOyB0aGVuCj4gCQkJCWJyZWFrCj4gCQkJZmkKPiAJ
CQlzbGVlcCAkc2xlZXBfdGltZQo+IAkJZG9uZQo+IAk7Owo+IAltb25pdG9yKQo+IAkJIyBJcyB0
aGUgZGV2aWNlIG9rPwo+IAkJYXdzIGVjMiBkZXNjcmliZS1pbnN0YW5jZXMgJG9wdGlvbnMgfCBn
cmVwIElOU1RBTkNFUyAmPiAvZGV2L251bGwKPiAJOzsKPiAJZ2V0aG9zdHN8aG9zdGxpc3R8bGlz
dCkKPiAJCSMgTGlzdCBvZiBuYW1lcyB3ZSBrbm93IGFib3V0Cj4gCQlhPWBhd3MgZWMyIGRlc2Ny
aWJlLWluc3RhbmNlcyAkb3B0aW9ucyB8IGF3ayAtdiB0YWdfcGF0PSJeVEFHU8KldCRlYzJfdGFn
wqV0IiAtRiAnwqV0JyAneyAKPiAJCQlpZiAoL15JTlNUQU5DRVMvKSB7IHByaW50ZiAiJXPCpW4i
LCAkOCB9Cj4gCQkJZWxzZSBpZiAoICQxIsKldCIkMiLCpXQiIOKAviB0YWdfcGF0ICkgeyBwcmlu
dGYgIiVzwqVuIiwgJDMgfQo+IAkJCX0nIHwgc29ydCAtdWAKPiAJCWVjaG8gJGEKPiAJOzsKPiAJ
c3RhdHxzdGF0dXMpCj4gCQlpbnN0YW5jZV9zdGF0dXMgJGluc3RhbmNlID4gL2Rldi9udWxsCj4g
CTs7Cj4gCSopIGhhX2xvZy5zaCBlcnIgIlVua25vd24gYWN0aW9uOiAkYWN0aW9uIjsgZXhpdCAx
OzsKPiBlc2FjCj4gCj4gc3RhdHVzPSQ/Cj4gCj4gaWYgWyAkcXVpZXQgLWVxIDEgXTsgdGhlbgo+
IAk6IG5vdGhpbmcKPiBlbGlmIFsgJHN0YXR1cyAtZXEgMCBdOyB0aGVuCj4gCWhhX2xvZy5zaCBp
bmZvICJPcGVyYXRpb24gJGFjdGlvbiBwYXNzZWQiCj4gZWxzZQo+IAloYV9sb2cuc2ggZXJyICJP
cGVyYXRpb24gJGFjdGlvbiBmYWlsZWQ6ICRzdGF0dXMiCj4gZmkKPiBleGl0ICRzdGF0dXMKCj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBMaW51eC1I
QSBtYWlsaW5nIGxpc3QKPiBMaW51eC1IQUBsaXN0cy5saW51eC1oYS5vcmcKPiBodHRwOi8vbGlz
dHMubGludXgtaGEub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtaGEKPiBTZWUgYWxzbzogaHR0
cDovL2xpbnV4LWhhLm9yZy9SZXBvcnRpbmdQcm9ibGVtcwoKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtSEEgbWFpbGluZyBsaXN0CkxpbnV4LUhB
QGxpc3RzLmxpbnV4LWhhLm9yZwpodHRwOi8vbGlzdHMubGludXgtaGEub3JnL21haWxtYW4vbGlz
dGluZm8vbGludXgtaGEKU2VlIGFsc286IGh0dHA6Ly9saW51eC1oYS5vcmcvUmVwb3J0aW5nUHJv
YmxlbXM=