[Logwatch-Devel] postfix and samba

Paweł Gołaszewski blues@ds.pg.gda.pl
Wed, 26 Nov 2003 09:01:55 +0100 (CET)


  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.

---1059782324-2135595585-1069680714=:29545
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-2
Content-Transfer-Encoding: 8BIT
Content-ID: <Pine.LNX.4.58L.0311241512022.29545@piorun.ds.pg.gda.pl>

On Mon, 24 Nov 2003, [ISO-8859-2] Paweł Gołaszewski wrote:
> This patch replaces previous postfix4 patch. It is made against cvs
> state and includes some name registration entries which were unmatched
> since quite long time on my machines.

Next patch - this patch replaces previous one (postfix_samba) too. Now
there is a lot of things included. These work fine on my systems - next
entries on the way (I'm still catching many unmatched).

One notice - every filter is written in other way. Kirk, you have to 
decide which one is The_Right_Way(TM)...

-- 
pozdr.  Paweł Gołaszewski 
---------------------------------
worth to see: http://www.againsttcpa.com/
CPU not found - software emulation...
---1059782324-2135595585-1069680714=:29545
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="logwatch-misc.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.58L.0311260901550.25846@piorun.ds.pg.gda.pl>
Content-Description: 
Content-Disposition: attachment; filename="logwatch-misc.patch"

SW5kZXg6IHNjcmlwdHMvc2VydmljZXMvcG9zdGZpeA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KUkNTIGZpbGU6IC92YXIvY3ZzL2xvZ3dhdGNoL3Njcmlw
dHMvc2VydmljZXMvcG9zdGZpeCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
Mw0KZGlmZiAtdSAtcjEuMyBwb3N0Zml4DQotLS0gc2NyaXB0cy9zZXJ2aWNl
cy9wb3N0Zml4CTE4IE5vdiAyMDAzIDE0OjA0OjA1IC0wMDAwCTEuMw0KKysr
IHNjcmlwdHMvc2VydmljZXMvcG9zdGZpeAkyNiBOb3YgMjAwMyAwNzo0OTo0
MCAtMDAwMA0KQEAgLTUxLDUyICs0NSw3MCBAQA0KICRNc2dzU2VudCA9IDA7
DQogJEJ5dGVzVHJhbnNmZXJyZWQgPSAwOw0KICRGb3VySG91clJldHVybnMg
PSAwOw0KKyRSZXR1cm5lZFRvU2VuZGVyID0gMDsNCiANCiB3aGlsZSAoZGVm
aW5lZCgkVGhpc0xpbmUgPSA8U1RESU4+KSkgew0KLSAgICBpZiAoICggJFRo
aXNMaW5lID1+IG0vXmNvbm5lY3QvICkgb3IgDQotCSAoICRUaGlzTGluZSA9
fiBtL15kaXNjb25uZWN0LyApIG9yIA0KLQkgKCAkVGhpc0xpbmUgPX4gbS9e
cmVsb2FkIGNvbmZpZ3VyYXRpb24vICkgb3IgDQotCSAoICRUaGlzTGluZSA9
fiBtL15bYS16QS1aMC05XSs6IGNsaWVudC8gKSBvciANCi0JICggJFRoaXNM
aW5lID1+IG0vXlthLXpBLVowLTldKzogbWVzc2FnZS1pZC8gKSBvcg0KLQkg
KCAkVGhpc0xpbmUgPX4gbS9eW2EtekEtWjAtOV0rOiBza2lwcGVkLCBzdGls
bCBiZWluZyBkZWxpdmVyZWQvICkgb3INCi0JICggJFRoaXNMaW5lID1+IG0v
Xndhcm5pbmc6IFtcLjAtOV0rOiBhZGRyZXNzIG5vdCBsaXN0ZWQgZm9yIGhv
c3RuYW1lLyApIG9yDQotCSAoICRUaGlzTGluZSA9fiBtL15bYS16QS1aMC05
XSs6IHRvXD1cPC4qPiwgcmVsYXlcPS4qLCBkZWxheVw9WzAtOV0rLCBzdGF0
dXNcPVtzZW50fGRlZmVycmVkXS8gKSBvcg0KLQkgKCAkVGhpc0xpbmUgPX4g
bS9ed2FybmluZzogW1wuMC05XSs6IGhvc3RuYW1lIC4qIHZlcmlmaWNhdGlv
biBmYWlsZWQ6IEhvc3Qgbm90IGZvdW5kLyApIG9yDQotCSAoICRUaGlzTGlu
ZSA9fiBtL153YXJuaW5nOiBubyBNWCBob3N0IGZvciAuKiBoYXMgYSB2YWxp
ZCBBIHJlY29yZCQvICkgb3INCi0JICggJFRoaXNMaW5lID1+IG0vXndhcm5p
bmc6IG51bWVyaWMgZG9tYWluIG5hbWUgaW4gcmVzb3VyY2UgZGF0YSBvZiBN
WCByZWNvcmQgZm9yIC4qJC8gKSkgew0KLQkjIFdlIGRvbid0IGNhcmUgYWJv
dXQgdGhlc2UNCi0gICAgfQ0KLSAgICBlbHNpZiAoICgkQnl0ZXMpID0gKCRU
aGlzTGluZSA9fiAvXlthLXpBLVowLTldKzogZnJvbT0uKnNpemU9KFswLTld
KykuKiQvKSApIHsNCi0JJE1zZ3NTZW50Kys7DQotCSRCeXRlc1RyYW5zZmVy
cmVkICs9ICRCeXRlczsNCisJaWYgKCAoICRUaGlzTGluZSA9fiBtL15jb25u
ZWN0LyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4gbS9eZGlzY29ubmVjdC8g
KSBvciANCisJCSggJFRoaXNMaW5lID1+IG0vXnJlbG9hZCBjb25maWd1cmF0
aW9uLyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4gbS9eW2EtekEtWjAtOV0r
OiBjbGllbnQvICkgb3IgDQorCQkoICRUaGlzTGluZSA9fiBtL15bYS16QS1a
MC05XSs6IG1lc3NhZ2UtaWQvICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0v
XlthLXpBLVowLTldKzogc2tpcHBlZCwgc3RpbGwgYmVpbmcgZGVsaXZlcmVk
LyApIG9yDQorCQkoICRUaGlzTGluZSA9fiBtL153YXJuaW5nOiBbXC4wLTld
KzogYWRkcmVzcyBub3QgbGlzdGVkIGZvciBob3N0bmFtZS8gKSBvcg0KKwkJ
KCAkVGhpc0xpbmUgPX4gbS9eW2EtekEtWjAtOV0rOiB0b1w9XDwuKj4sIHJl
bGF5XD0uKiwgZGVsYXlcPVswLTldKywgc3RhdHVzXD1bc2VudHxkZWZlcnJl
ZF0vICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vXndhcm5pbmc6IFtcLjAt
OV0rOiBob3N0bmFtZSAuKiB2ZXJpZmljYXRpb24gZmFpbGVkOiBIb3N0IG5v
dCBmb3VuZC8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9ed2FybmluZzog
bm8gTVggaG9zdCBmb3IgLiogaGFzIGEgdmFsaWQgQSByZWNvcmQkLyApIG9y
DQorCQkoICRUaGlzTGluZSA9fiBtL153YXJuaW5nOiBudW1lcmljIGRvbWFp
biBuYW1lIGluIHJlc291cmNlIGRhdGEgb2YgTVggcmVjb3JkIGZvciAuKiQv
ICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vXmRhZW1vbiBzdGFydGVkJC8g
KSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9edGVybWluYXRpbmcgb24gc2ln
bmFsIDE1JC8gKQ0KKwkpIHsNCisJCSMgV2UgZG9uJ3QgY2FyZSBhYm91dCB0
aGVzZQ0KKwl9DQorCWVsc2lmICggKCRCeXRlcykgPSAoJFRoaXNMaW5lID1+
IC9eW2EtekEtWjAtOV0rOiBmcm9tPS4qc2l6ZT0oWzAtOV0rKS4qJC8pICkg
ew0KKwkJJE1zZ3NTZW50Kys7DQorCQkkQnl0ZXNUcmFuc2ZlcnJlZCArPSAk
Qnl0ZXM7DQogICAgIH0NCiAgICAgZWxzaWYgKCgkVXNlcikgPSAoJFRoaXNM
aW5lID1+IC9eW2EtekEtWjAtOV0rOiB0b1w9XDwoW14gXSopPiwgcmVsYXlc
PWxvY2FsLCBkZWxheVw9WzAtOV0rLCBzdGF0dXNcPWJvdW5jZWQgXCh1bmtu
b3duIHVzZXIvKSkgew0KLQkjIHVua25vd24gdXNlcg0KLSAgICAgICAgJFVu
a25vd25Vc2Vyc3skVXNlcn0rKzsNCisJCSMgdW5rbm93biB1c2VyDQorCQkk
VW5rbm93blVzZXJzeyRVc2VyfSsrOw0KICAgICB9DQogICAgIGVsc2lmICgo
JERlc3QsICRSZWxheSwgJE1zZykgPSAoJFRoaXNMaW5lID1+IC9eW2EtekEt
WjAtOV0rOiB0b1w9XDwoW14gXSopPiwgcmVsYXk9KFteIF0qKS4qLCBkZWxh
eVw9WzAtOV0rLCBzdGF0dXNcPWJvdW5jZWQgXCgoW14pXSopLyApKSB7DQot
CSMgdW5rbm93biB1c2VyDQotCSMkTXNnID0gIiBoZWxsbyAiDQotCSNwcmlu
dCAiYm91bmNlIG1lc3NhZ2UgZnJvbSAiIC4gJERlc3QgLiAiIG1zZyA6ICIg
LiAkUmVsYXkgLiAiXG4iOw0KLQlpZiAoJFJlbGF5ID1+IG0vXltub25lfGxv
Y2FsfGF2Y2hlY2tdLykgew0KLQkgICAgICAgICRUZW1wID0gIlRvICIgLiAk
RGVzdCAuICIgTXNnPVwiIiAuICRNc2cgLiAiXCIiOw0KLSAgICAgICAgCSRM
b2NhbEJvdW5jZXskVGVtcH0rKzsJCQkJDQotCX0gZWxzZSB7DQotCSAgICAg
ICAgJFRlbXAgPSAiVG8gIiAuICREZXN0IC4gIiBNc2c9XCIiIC4gJE1zZyAu
ICJcIiI7DQotICAgICAgICAJJEZvcmVpZ25Cb3VuY2V7JFRlbXB9Kys7DQot
CX0NCi0gICAgfQ0KLSAgICBlbHNpZiAoICgkUmVsYXksJERlc3QpID0gKCRU
aGlzTGluZSA9fiBtL15yZWplY3Q6IFJDUFQgZnJvbSAoW14gXSopOiA1NTQg
PChbXiBdKik+LiogUmVsYXkgYWNjZXNzIGRlbmllZC4qIHRvPShbXiBdKikv
KSApIHsNCi0gICAgCSMgcHJpbnQgInJlamVjdDogIiAuICRUaGlzTGluZSAu
ICJcbiI7DQotCSMgcHJpbnQgIlJlbGF5IDoiIC4gJFJlbGF5IC4gIiB0byAi
IC4gJERlc3QgLiAiXG4iOyAgDQotICAgICAgICAkVGVtcCA9ICJGcm9tICIg
LiAkUmVsYXkgLiAiIHRvICIgLiAkRGVzdDsNCi0gICAgICAgICRSZWxheURl
bmllZHskVGVtcH0rKzsNCisJCSMgdW5rbm93biB1c2VyDQorCQkjICRNc2cg
PSAiIGhlbGxvICINCisJCSMgcHJpbnQgImJvdW5jZSBtZXNzYWdlIGZyb20g
IiAuICREZXN0IC4gIiBtc2cgOiAiIC4gJFJlbGF5IC4gIlxuIjsNCisJCWlm
ICgkUmVsYXkgPX4gbS9eW25vbmV8bG9jYWx8YXZjaGVja10vKSB7DQorCQkJ
JFRlbXAgPSAiVG8gIiAuICREZXN0IC4gIiBNc2c9XCIiIC4gJE1zZyAuICJc
IiI7DQorCQkJJExvY2FsQm91bmNleyRUZW1wfSsrOwkJCQkNCisJCX0gZWxz
ZSB7DQorCQkJJFRlbXAgPSAiVG8gIiAuICREZXN0IC4gIiBNc2c9XCIiIC4g
JE1zZyAuICJcIiI7DQorCQkJJEZvcmVpZ25Cb3VuY2V7JFRlbXB9Kys7DQor
CQl9DQorCX0NCisJZWxzaWYgKCAoJFJlbGF5LCREZXN0KSA9ICgkVGhpc0xp
bmUgPX4gbS9ecmVqZWN0OiBSQ1BUIGZyb20gKFteIF0qKTogNTU0IDwoW14g
XSopPi4qIFJlbGF5IGFjY2VzcyBkZW5pZWQuKiB0bz0oW14gXSopLykgKSB7
DQorCQkjIHByaW50ICJyZWplY3Q6ICIgLiAkVGhpc0xpbmUgLiAiXG4iOw0K
KwkJIyBwcmludCAiUmVsYXkgOiIgLiAkUmVsYXkgLiAiIHRvICIgLiAkRGVz
dCAuICJcbiI7DQorCQkkVGVtcCA9ICJGcm9tICIgLiAkUmVsYXkgLiAiIHRv
ICIgLiAkRGVzdDsNCisJCSRSZWxheURlbmllZHskVGVtcH0rKzsNCiAgICAg
fQ0KICAgICBlbHNpZiAoICgkVXNlciwkRnJvbSkgPSAoJFRoaXNMaW5lID1+
IC9eW2EtekEtWjAtOV0rOiB1aWQ9KFteIF0qKSBmcm9tPVw8KFteIF0qKT4v
KSkgew0KIAkJI01lc3NhZ2VzIHNlbnQgYnkgdXNlcg0KIAkJJFRlbXAgPSAk
RnJvbSAuICIgKHVpZD0iIC4gJFVzZXIgLiAiKTogIjsNCiAJCSRTZW50Qnl7
JFRlbXB9Kys7DQogCX0NCisJZWxzaWYgKCAoJEZyb20pID0gKCRUaGlzTGlu
ZSA9fiAvXlthLXpBLVowLTldKzogZnJvbT08KFteIF0qKT4sIHN0YXR1cz1l
eHBpcmVkLCByZXR1cm5lZCB0byBzZW5kZXIkLykpIHsNCisJCSRSZXR1cm5l
ZFRvU2VuZGVyKys7DQorCX0NCisJZWxzaWYgKCAoJENvbW1hbmQsJEhvc3Qp
ID0gKCRUaGlzTGluZSA9fiAvXmxvc3QgY29ubmVjdGlvbiBhZnRlciAoW14g
XSopIGZyb20gKFteIF0qKSQvKSkgew0KKwkJIyBNYWtlIHNvbWUgYmV0dGVy
IHN1bW1hcnkgd2l0aCBob3N0cw0KKwkJJENvbm5lY3Rpb25Mb3N0eyRDb21t
YW5kfSsrOw0KKwl9DQorCWVsc2lmICggKCRDb21tYW5kLCRIb3N0KSA9ICgk
VGhpc0xpbmUgPX4gL150aW1lb3V0IGFmdGVyIChbXiBdKikgZnJvbSAoW14g
XSopJC8pKSB7DQorCQkjIE1ha2Ugc29tZSBiZXR0ZXIgc3VtbWFyeSB3aXRo
IGhvc3RzDQorCQkkQ29ubmVjdGlvbkxvc3R7JENvbW1hbmR9Kys7DQorCX0N
CisJZWxzaWYgKCAoJFJlamVjdGVkLHVuZGVmLHVuZGVmKSA9ICgkVGhpc0xp
bmUgPX4gL15eW2EtekEtWjAtOV0rOiByZWplY3Q6IGhlYWRlciAoLiopOyBm
cm9tPTwoW14gXSopPiB0bz08KFteIF0qKT46IE1lc3NhZ2UgY29udGVudCBy
ZWplY3RlZCQvKSkgew0KKwkJJEhlYWRlclJlamVjdHskUmVqZWN0ZWR9Kys7
DQorCX0NCiAjICAgIGVsc2lmICggKCRXYXJuaW5nKSAgPSAoJFRoaXNMaW5l
ID1+IC9eW2EtekEtWjAtOV0rOiBBdXRoZW50aWNhdGlvbi1XYXJuaW5nOiBb
XiBdKzogKFteIF0rIHNldCBzZW5kZXIgdG8gW14gXSsgdXNpbmcgLWYpLykg
KSB7DQogIyAgICAgICAgJEF1dGhXYXJuc3skV2FybmluZ30rKzsNCiAjICAg
IH0NCkBAIC0xMTYsMTcgKzEyOCwyMSBAQA0KIH0NCiANCiBpZiAoKEBPdGhl
ckxpc3QpIG9yDQotICAgICgkTXNnc1NlbnQgPiAwKSBvcg0KLSAgICAoJEZv
dXJIb3VyUmV0dXJucyA+IDApIG9yDQotICAgIChrZXlzICVVbmtub3duVXNl
cnMpIG9yDQotICAgIChrZXlzICVSZWxheURlbmllZCkgb3INCi0gICAgKGtl
eXMgJUZvcmVpZ25Cb3VuY2UpIG9yDQotICAgIChrZXlzICVMb2NhbEJvdW5j
ZSkgb3INCi0gICAgKGtleXMgJUF1dGhXYXJucykgb3INCi0gICAgKGtleXMg
JUZvcndhcmRFcnJvcnMpIG9yDQotCShrZXlzICVTZW50QnkpKSB7DQotICAg
IHByaW50ICJcblxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwb3N0Zml4IEJl
Z2luIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAiOw0KLQ0KKwkoJE1zZ3NT
ZW50ID4gMCkgb3INCisJKCRGb3VySG91clJldHVybnMgPiAwKSBvcg0KKwko
JFJldHVybmVkVG9TZW5kZXIgPjApIG9yDQorCShrZXlzICVVbmtub3duVXNl
cnMpIG9yDQorCShrZXlzICVSZWxheURlbmllZCkgb3INCisJKGtleXMgJSRI
ZWFkZXJSZWplY3QpIG9yDQorCShrZXlzICVGb3JlaWduQm91bmNlKSBvcg0K
Kwkoa2V5cyAlTG9jYWxCb3VuY2UpIG9yDQorCShrZXlzICVBdXRoV2FybnMp
IG9yDQorCShrZXlzICVGb3J3YXJkRXJyb3JzKSBvcg0KKwkoa2V5cyAlU2Vu
dEJ5KSBvcg0KKwkoa2V5cyAlQ29ubmVjdGlvbkxvc3QpDQorKSB7DQorCXBy
aW50ICJcblxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwb3N0Zml4IEJlZ2lu
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAiOw0KKwkNCiAgICAgaWYoJE1z
Z3NTZW50ID4gMCkgew0KICAgICAgICAgcHJpbnQgIlxuXG4iIC4gJEJ5dGVz
VHJhbnNmZXJyZWQgLiAiIGJ5dGVzIHRyYW5zZmVycmVkIjsNCiAgICAgICAg
IHByaW50ICJcbiIgLiAkTXNnc1NlbnQgLiAiIG1lc3NhZ2VzIHNlbnQiOw0K
QEAgLTEzNiw2ICsxNTIsMTAgQEANCiAgICAgICAgIHByaW50ICJcblxuIiAu
ICRGb3VySG91clJldHVybnMgLiAiIG1lc3NhZ2VzIHJldHVybmVkIGFmdGVy
IDQgaG91cnMiOw0KICAgICB9DQogDQorCWlmICgkUmV0dXJuZWRUb1NlbmRl
ciA+MCkgew0KKwkJcHJpbnQgIlxuXG4iIC4gJFJldHVybmVkVG9TZW5kZXIg
LiAiIG1lc3NhZ2VzIGV4cGlyZWQgYW5kIHJldHVybmVkIHRvIHNlbmRlciI7
DQorCX0NCisNCiAJaWYgKGtleXMgJVNlbnRCeSkgew0KIAkJcHJpbnQgIlxu
XG5NZXNzYWdlcyBzZW50IGJ5OlxuIjsNCiAJCWZvcmVhY2ggJFRoaXNPbmUg
KGtleXMgJVNlbnRCeSkgew0KQEAgLTE1MSw0NSArMTcxLDU5IEBADQogCX0N
CiANCiAgICAgaWYgKGtleXMgJVJlbGF5RGVuaWVkKSB7DQotCXByaW50ICJc
blxuUmVsYXlpbmcgZGVuaWVkOlxuIjsNCi0JZm9yZWFjaCAkVGhpc09uZSAo
a2V5cyAlUmVsYXlEZW5pZWQpIHsNCi0JICAgIHByaW50ICIgICAgIiAuICRU
aGlzT25lIC4gIjogIiAuICRSZWxheURlbmllZHskVGhpc09uZX0gLiAiIFRp
bWVzKHMpXG4iOw0KLQl9DQorCQlwcmludCAiXG5cblJlbGF5aW5nIGRlbmll
ZDpcbiI7DQorCQlmb3JlYWNoICRUaGlzT25lIChrZXlzICVSZWxheURlbmll
ZCkgew0KKwkJCXByaW50ICIgICAgIiAuICRUaGlzT25lIC4gIjogIiAuICRS
ZWxheURlbmllZHskVGhpc09uZX0gLiAiIFRpbWVzKHMpXG4iOw0KKwkJfQ0K
ICAgICB9DQogDQogICAgIGlmIChrZXlzICVMb2NhbEJvdW5jZSkgew0KLQlw
cmludCAiXG5cbkxvY2FsIEJvdW5jZTpcbiI7DQotCWZvcmVhY2ggJFRoaXNP
bmUgKGtleXMgJUxvY2FsQm91bmNlKSB7DQotCSAgICBwcmludCAiICAgICIg
LiAkVGhpc09uZSAuICI6ICIgLiAkTG9jYWxCb3VuY2V7JFRoaXNPbmV9IC4g
IiBUaW1lcyhzKVxuIjsNCi0JfQ0KKwkJcHJpbnQgIlxuXG5Mb2NhbCBCb3Vu
Y2U6XG4iOw0KKwkJZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAlTG9jYWxCb3Vu
Y2UpIHsNCisJCQlwcmludCAiICAgICIgLiAkVGhpc09uZSAuICI6ICIgLiAk
TG9jYWxCb3VuY2V7JFRoaXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsNCisJCX0N
CiAgICAgfQ0KIA0KICAgICBpZiAoa2V5cyAlRm9yZWlnbkJvdW5jZSkgew0K
LQlwcmludCAiXG5cbkZvcmVpZ24gQm91bmNlOlxuIjsNCi0JZm9yZWFjaCAk
VGhpc09uZSAoa2V5cyAlRm9yZWlnbkJvdW5jZSkgew0KLQkgICAgcHJpbnQg
IiAgICAiIC4gJFRoaXNPbmUgLiAiOiAiIC4gJEZvcmVpZ25Cb3VuY2V7JFRo
aXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsNCi0JfQ0KKwkJcHJpbnQgIlxuXG5G
b3JlaWduIEJvdW5jZTpcbiI7DQorCQlmb3JlYWNoICRUaGlzT25lIChrZXlz
ICVGb3JlaWduQm91bmNlKSB7DQorCQkJcHJpbnQgIiAgICAiIC4gJFRoaXNP
bmUgLiAiOiAiIC4gJEZvcmVpZ25Cb3VuY2V7JFRoaXNPbmV9IC4gIiBUaW1l
cyhzKVxuIjsNCisJCX0NCiAgICAgfQ0KIA0KLSAgICBpZiAoa2V5cyAlQXV0
aFdhcm5zKSB7DQotCXByaW50ICJcblxuQXV0aGVudGljYXRpb24gd2Fybmlu
Z3M6XG4iOw0KLQlmb3JlYWNoICRUaGlzT25lIChrZXlzICVBdXRoV2FybnMp
IHsNCi0JICAgIHByaW50ICIgICAgIiAuICRUaGlzT25lIC4gIjogIiAuICRB
dXRoV2FybnN7JFRoaXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsNCisJaWYgKGtl
eXMgJUhlYWRlclJlamVjdCkgew0KKwkJcHJpbnQgIlxuXG5IZWFkZXIgY29u
dGVudCByZWplY3Q6XG4iOw0KKwkJZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAl
SGVhZGVyUmVqZWN0KSB7DQorCQkJcHJpbnQgIiAgICAiIC4gJFRoaXNPbmUg
LiAiOiAiIC4gJEhlYWRlclJlamVjdHskVGhpc09uZX0gLiAiIFRpbWVzKHMp
XG4iOw0KKwkJfQ0KIAl9DQorDQorICAgIGlmIChrZXlzICVBdXRoV2FybnMp
IHsNCisJCXByaW50ICJcblxuQXV0aGVudGljYXRpb24gd2FybmluZ3M6XG4i
Ow0KKwkJZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAlQXV0aFdhcm5zKSB7DQor
CQkJcHJpbnQgIiAgICAiIC4gJFRoaXNPbmUgLiAiOiAiIC4gJEF1dGhXYXJu
c3skVGhpc09uZX0gLiAiIFRpbWVzKHMpXG4iOw0KKwkJfQ0KICAgICB9DQog
DQogICAgIGlmIChrZXlzICVGb3J3YXJkRXJyb3JzKSB7DQotCXByaW50ICJc
blxuRm9yd2FyZGluZyBlcnJvcnM6XG4iOw0KLQlmb3JlYWNoICRUaGlzT25l
IChrZXlzICVGb3J3YXJkRXJyb3JzKSB7DQotCSAgICBwcmludCAiICAgICIg
LiAkVGhpc09uZSAuICI6ICIgLiAkRm9yd2FyZEVycm9yc3skVGhpc09uZX0g
LiAiIFRpbWVzKHMpXG4iOw0KKwkJcHJpbnQgIlxuXG5Gb3J3YXJkaW5nIGVy
cm9yczpcbiI7DQorCQlmb3JlYWNoICRUaGlzT25lIChrZXlzICVGb3J3YXJk
RXJyb3JzKSB7DQorCQkJcHJpbnQgIiAgICAiIC4gJFRoaXNPbmUgLiAiOiAi
IC4gJEZvcndhcmRFcnJvcnN7JFRoaXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsN
CisJCX0NCiAJfQ0KLSAgICB9DQogDQorCWlmIChrZXlzICVDb25uZWN0aW9u
TG9zdCkgew0KKwkJcHJpbnQgIlxuXG5Db25uZWN0aW9ucyBsb3N0OlxuIjsN
CisJCWZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJUNvbm5lY3Rpb25Mb3N0KSB7
DQorCQkJcHJpbnQgIiAgICBDb25uZWN0aW9uIGxvc3QgYWZ0ZXIgY29tbWFu
ZCAiIC4gJFRoaXNPbmUgLiAiOiAiIC4gJENvbm5lY3Rpb25Mb3N0eyRUaGlz
T25lfSAuICIgVGltZXMocylcbiI7DQorCQl9DQorCX0NCisJDQogICAgIGlm
ICgkI090aGVyTGlzdCA+PSAwKSB7DQotCXByaW50ICJcblxuKipVbm1hdGNo
ZWQgRW50cmllcyoqXG5cbiI7DQotCXByaW50IEBPdGhlckxpc3Q7DQotICAg
IH0NCi0NCisJCXByaW50ICJcblxuKipVbm1hdGNoZWQgRW50cmllcyoqXG5c
biI7DQorCQlwcmludCBAT3RoZXJMaXN0Ow0KKwl9DQorCQ0KICAgICBwcmlu
dCAiXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwb3N0Zml4IEVuZCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxuIjsNCiANCiB9DQpJbmRleDogc2Ny
aXB0cy9zZXJ2aWNlcy9zYW1iYQ0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
UkNTIGZpbGU6IC92YXIvY3ZzL2xvZ3dhdGNoL3NjcmlwdHMvc2VydmljZXMv
c2FtYmEsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjExDQpkaWZmIC11IC1y
MS4xMSBzYW1iYQ0KLS0tIHNjcmlwdHMvc2VydmljZXMvc2FtYmEJMyBOb3Yg
MjAwMyAwNTowNzoyNSAtMDAwMAkxLjExDQorKysgc2NyaXB0cy9zZXJ2aWNl
cy9zYW1iYQkyNiBOb3YgMjAwMyAwNzo0OTo0MCAtMDAwMA0KQEAgLTEzLDU5
ICsxMyw5NiBAQA0KIA0KICREZWJ1ZyA9ICRFTlZ7J0xPR1dBVENIX0RFQlVH
J307DQogJERldGFpbCA9ICRFTlZ7J0xPR1dBVENIX0RFVEFJTF9MRVZFTCd9
IHx8IDA7DQorJFNvY2tldFJlYWRFcnJvcj0wOw0KKyREYk9wZW5GYWlsPTA7
DQorJEdldERvbWFpbk1hc3RlclN0YXR1c0ZhaWw9MDsNCiANCiBpZiAoICRE
ZWJ1ZyA+PSA1ICkgew0KLSAgICBwcmludCBTVERFUlIgIlxuXG5ERUJVRzog
SW5zaWRlIFNhbWJhIEZpbHRlciBcblxuIjsNCisJcHJpbnQgU1RERVJSICJc
blxuREVCVUc6IEluc2lkZSBTYW1iYSBGaWx0ZXIgXG5cbiI7DQogfQ0KIA0K
IHdoaWxlIChkZWZpbmVkKCRUaGlzTGluZSA9IDxTVERJTj4pKSB7DQotICAg
Y2hvbXAoJFRoaXNMaW5lKTsNCi0gICBpZiAoIA0KLSAgICAgICAgICgkVGhp
c0xpbmUgPX4gL0N1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQvKSBvcg0KLSAg
ICAgICAgICgkVGhpc0xpbmUgPX4gL3ZlcnNpb24gLisgc3RhcnRlZC8pIG9y
DQotICAgICAgICAgKCRUaGlzTGluZSA9fiAvb3Bsb2NrW18gXWJyZWFrLykg
b3INCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9ObyByb3V0ZSB0byBob3N0
Lykgb3INCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9TSUdURVJNOiBnb2lu
ZyBkb3duLykgb3INCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9yZXNwb25z
ZSBwYWNrZXQgaWQgXGQrIHJlY2VpdmVkIHdpdGggbm8gbWF0Y2hpbmcgcmVj
b3JkLykgb3INCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9tYXRjaG5hbWUv
aSkgb3INCi0gICAgICAgICAjIElnbm9yZSBlbnRyaWVzIGluIHNtYm1vdW50
IGxvZ2ZpbGUNCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9zbWJtb3VudC8p
IG9yICAgDQotICAgICAgICAgKCRUaGlzTGluZSA9fiAvYmVjb21lX2xvY2Fs
X21hc3Rlci8pIG9yICAgDQotICAgICAgICAgKCRUaGlzTGluZSA9fiAvYmVj
b21lX2RvbWFpbl9tYXN0ZXIvKSBvciAgIA0KLSAgICAgICAgICgkVGhpc0xp
bmUgPX4gL2FkZF9kb21haW5fbG9nb25fbmFtZXMvKSBvciAgIA0KLSAgICAg
ICAgICgkVGhpc0xpbmUgPX4gL2JlY29tZV9sb2dvbl9zZXJ2ZXIvKSBvciAg
IA0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL3N0YXJ0X2FzeW5jX2Rucy8p
IG9yICAgDQotICAgICAgICAgKCRUaGlzTGluZSA9fiAvdGltZW91dCBjb25u
ZWN0aW5nIHRvLykgb3IgICANCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9P
cGVyYXRpb24gbm90IHBlcm1pdHRlZC8pIG9yDQotICAgICAgICAgKCRUaGlz
TGluZSA9fiAvUmVjb3JkIGRvZXMgbm90IGV4aXN0Lykgb3INCi0gICAgICAg
ICAoJFRoaXNMaW5lID1+IC9Db25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIvKSBv
cg0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL011bHRpcGxlIC4rIHJlc3Bv
bnNlcyByZWNlaXZlZCBmb3IgYSBxdWVyeS8pIG9yDQotICAgICAgICAgKCRU
aGlzTGluZSA9fiAvQ29ubmVjdGlvbiB0aW1lZCBvdXQvKSBvcg0KLSAgICAg
ICAgICgkVGhpc0xpbmUgPX4gL2Nsb3NlZCBjb25uZWN0aW9uIHRvLykgb3IN
Ci0gICAgICAgICAoJFRoaXNMaW5lID1+IC9Hb3QgU0lHSFVQLykgb3INCi0g
ICAgICAgICAoJFRoaXNMaW5lID1+IC9jdXJyZW50IG1hc3RlciBicm93c2Vy
Lykgb3INCi0JICgkVGhpc0xpbmUgPX4gL2RlYnVnX21lc3NhZ2UvKQ0KLSAg
ICAgICkgew0KLSAgICAgICMgRG9uJ3QgY2FyZSBhYm91dCB0aGVzZS4uLg0K
LSAgIH0gZWxzaWYgKCAoJEhvc3QsICRTZXJ2aWNlLCAkVXNlcikgPSAoICRU
aGlzTGluZSA9fiAvKFteIF0rIFwoW14gXStcKSkgY29ubmVjdCB0byBzZXJ2
aWNlIChbXiBdKykgYXMgdXNlciAoW14gXSspLyApICkgew0KLSAgICAgICRD
b25uZWN0eyRTZXJ2aWNlfXskVXNlcn17JEhvc3R9Kys7DQotICAgfSBlbHNp
ZiAoICgkTm9TZXJ2aWNlKSA9ICggJFRoaXNMaW5lID1+IC9jb3VsZG4ndCBm
aW5kIHNlcnZpY2UgKFxTKykkLyApICkgew0KLSAgICAgICROb1NlcnZ7JE5v
U2VydmljZX0rKzsNCi0gICB9IGVsc2lmICgkVGhpc0xpbmUgPX4gcy9EZW5p
ZWQgY29ubmVjdGlvbiBmcm9tXHMrKFxTKykkLyQxLykgew0KLSAgICAgICRE
ZW5pZWR7JFRoaXNMaW5lfSsrOw0KLSAgIH0gZWxzaWYgKCgkVXNlcikgPSAk
VGhpc0xpbmUgPX4gL3JlamVjdGVkIGludmFsaWQgdXNlciAoW14gXSspLyAp
IHsNCi0gICAgICAkSW52YWxpZFVzZXJ7JFVzZXJ9Kys7DQotICAgfSBlbHNp
ZiAoKCRVc2VyKSA9ICRUaGlzTGluZSA9fiAvQ291bGRuJ3QgZmluZCB1c2Vy
ICcoW14gXSspJy8pIHsNCi0gICAgICAkTm90Rm91bmRVc2VyeyRVc2VyfSsr
Ow0KLSAgIH0gZWxzaWYgKCgkVXNlcikgPSAkVGhpc0xpbmUgPX4gL1JlamVj
dGluZyB1c2VyICcoW14gXSspJy8pIHsNCi0gICAgICAkUmVqZWN0ZWRVc2Vy
eyRVc2VyfSsrOw0KLSAgIH0gZWxzaWYgKCAoICRUaGlzTGluZSA9fiAvXlxb
W15cXV0rXF0gbGliXC91dGlsX3NvY2suYzpyZWFkX2RhdGFcKDQzNlwpLyAp
ICkgew0KLSAgICAgICMgVGhpcyBpcyBkdWUgdG8gYSBuYXN0eSBidWcgaW4g
c2FtYmEgd2hpY2ggY2F1c2VzIGl0IHRvIGRyb3AgY29ubmVjdGlvbnMgOi0o
DQotICAgICAgJFNvY2tldFJlYWRFcnJvcisrOw0KLSAgIH0gZWxzZSB7DQot
ICAgICAgIyBSZXBvcnQgYW55IHVubWF0Y2hlZCBlbnRyaWVzLi4uDQotICAg
ICAgJE90aGVyTGlzdHskVGhpc0xpbmV9Kys7DQotICAgfQ0KKwljaG9tcCgk
VGhpc0xpbmUpOw0KKwlpZiAoIA0KKwkJKCRUaGlzTGluZSA9fiAvQ3VycmVu
dGx5IG5vdCBpbXBsZW1lbnRlZC8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC92
ZXJzaW9uIC4rIHN0YXJ0ZWQvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvb3Bs
b2NrW18gXWJyZWFrLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL05vIHJvdXRl
IHRvIGhvc3QvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvU0lHVEVSTTogZ29p
bmcgZG93bi8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9yZXNwb25zZSBwYWNr
ZXQgaWQgXGQrIHJlY2VpdmVkIHdpdGggbm8gbWF0Y2hpbmcgcmVjb3JkLykg
b3INCisJCSgkVGhpc0xpbmUgPX4gL21hdGNobmFtZS9pKSBvcg0KKwkJIyBJ
Z25vcmUgZW50cmllcyBpbiBzbWJtb3VudCBsb2dmaWxlDQorCQkoJFRoaXNM
aW5lID1+IC9zbWJtb3VudC8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9iZWNv
bWVfbG9jYWxfbWFzdGVyLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL2JlY29t
ZV9kb21haW5fbWFzdGVyLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL2FkZF9k
b21haW5fbG9nb25fbmFtZXMvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvYmVj
b21lX2xvZ29uX3NlcnZlci8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9zdGFy
dF9hc3luY19kbnMvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvdGltZW91dCBj
b25uZWN0aW5nIHRvLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL09wZXJhdGlv
biBub3QgcGVybWl0dGVkLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL1JlY29y
ZCBkb2VzIG5vdCBleGlzdC8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9Db25u
ZWN0aW9uIHJlc2V0IGJ5IHBlZXIvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAv
TXVsdGlwbGUgLisgcmVzcG9uc2VzIHJlY2VpdmVkIGZvciBhIHF1ZXJ5Lykg
b3INCisJCSgkVGhpc0xpbmUgPX4gL0Nvbm5lY3Rpb24gdGltZWQgb3V0Lykg
b3INCisJCSgkVGhpc0xpbmUgPX4gL2Nsb3NlZCBjb25uZWN0aW9uIHRvLykg
b3INCisJCSgkVGhpc0xpbmUgPX4gL0dvdCBTSUdIVVAvKSBvcg0KKwkJKCRU
aGlzTGluZSA9fiAvY3VycmVudCBtYXN0ZXIgYnJvd3Nlci8pIG9yDQorCQko
JFRoaXNMaW5lID1+IC9kZWJ1Z19tZXNzYWdlLykgb3INCisJCSgkVGhpc0xp
bmUgPX4gLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PS8pDQorCSkgew0KKwkJI0Rvbid0
IGNhcmUgYWJvdXQgdGhlc2UuLi4NCisJfSBlbHNpZiAoICgkSG9zdCwgJFNl
cnZpY2UsICRVc2VyKSA9ICggJFRoaXNMaW5lID1+IC8oW14gXSsgXChbXiBd
K1wpKSBjb25uZWN0IHRvIHNlcnZpY2UgKFteIF0rKSBhcyB1c2VyIChbXiBd
KykvICkgKSB7DQorCQkkQ29ubmVjdHskU2VydmljZX17JFVzZXJ9eyRIb3N0
fSsrOw0KKwl9IGVsc2lmICggKCROb1NlcnZpY2UpID0gKCAkVGhpc0xpbmUg
PX4gL2NvdWxkbid0IGZpbmQgc2VydmljZSAoXFMrKS8gKSApIHsNCisJCSRO
b1NlcnZ7JE5vU2VydmljZX0rKzsNCisJfSBlbHNpZiAoJFRoaXNMaW5lID1+
IHMvRGVuaWVkIGNvbm5lY3Rpb24gZnJvbVxzKyhcUyspJC8kMS8pIHsNCisJ
CSREZW5pZWR7JFRoaXNMaW5lfSsrOw0KKwl9IGVsc2lmICggKCRJcCwkTmFt
ZSwkR3JvdXAsJFN1Ym5ldCkgPSAoJFRoaXNMaW5lID1+IC9EZW5pZWQgY29u
bmVjdGlvbiBmcm9tICBcKChbXiBdKylcKSAgU2FtYmEgbmFtZSBzZXJ2ZXIg
KFteIF0rKSBpcyBub3cgYSBsb2NhbCBtYXN0ZXIgYnJvd3NlciBmb3Igd29y
a2dyb3VwIChbXiBdKykgb24gc3VibmV0IChbXiBdKykvICkgKSB7DQorCQkk
RGVuaWVkeyRJcH0rKzsNCisJCSRCZUxvY2FsTWFzdGVyeyRTdWJuZXR9eyRH
cm91cH17JE5hbWV9Kys7DQorCX0gZWxzaWYgKCgkVXNlcikgPSAkVGhpc0xp
bmUgPX4gL3JlamVjdGVkIGludmFsaWQgdXNlciAoW14gXSspLyApIHsNCisJ
CSRJbnZhbGlkVXNlcnskVXNlcn0rKzsNCisJfSBlbHNpZiAoKCRVc2VyKSA9
ICRUaGlzTGluZSA9fiAvQ291bGRuJ3QgZmluZCB1c2VyICcoW14gXSspJy8p
IHsNCisJCSROb3RGb3VuZFVzZXJ7JFVzZXJ9Kys7DQorCX0gZWxzaWYgKCgk
VXNlcikgPSAkVGhpc0xpbmUgPX4gL1JlamVjdGluZyB1c2VyICcoW14gXSsp
Jy8pIHsNCisJCSRSZWplY3RlZFVzZXJ7JFVzZXJ9Kys7DQorCX0gZWxzaWYg
KCAoICRUaGlzTGluZSA9fiAvXlxbW15cXV0rXF0gbGliXC91dGlsX3NvY2su
YzpyZWFkX2RhdGFcKDQzNlwpLyApICkgew0KKwkJIyBUaGlzIGlzIGR1ZSB0
byBhIG5hc3R5IGJ1ZyBpbiBzYW1iYSB3aGljaCBjYXVzZXMgaXQgdG8gZHJv
cCBjb25uZWN0aW9ucyA6LSgNCisJCSRTb2NrZXRSZWFkRXJyb3IrKzsNCisJ
fSBlbHNpZiAoICggJFRoaXNMaW5lID1+IC91bmFibGUgdG8gb3BlbiBwYXNz
ZGIgZGF0YWJhc2UuJC8gKSApIHsNCisJCSREYk9wZW5GYWlsKys7DQorCX0g
ZWxzaWYgKCAoJFNlcnZlciwkSXAsJEdyb3VwKSA9ICgkVGhpc0xpbmUgPX4g
L1NlcnZlciAoW14gXSspIGF0IElQIChbXiBdKykgaXMgYW5ub3VuY2luZyBp
dHNlbGYgYXMgYSBsb2NhbCBtYXN0ZXIgYnJvd3NlciBmb3Igd29ya2dyb3Vw
IChbXiBdKykgYW5kIHdlIHRoaW5rIHdlIGFyZSBtYXN0ZXIuIEZvcmNpbmcg
ZWxlY3Rpb24uJC8gKSApIHsNCisJCSRUZW1wID0gJFNlcnZlciAuICIoIiAu
ICRJcCAuICIpIjsNCisJCSRGb3JjZUVsZWN0aW9ueyRHcm91cH17JFRlbXB9
Kys7DQorCX0gZWxzaWYgKCAoJFNlcnZlciwkSXAsdW5kZWYpID0gKCRUaGlz
TGluZSA9fiAvcHJvY2Vzc19uYW1lX3JlZnJlc2hfcmVxdWVzdDogdW5pY2Fz
dCBuYW1lIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IHJlY2VpdmVkIGZvciBuYW1l
IChbXiBdKykgZnJvbSBJUCAoW14gXSspIG9uIHN1Ym5ldCAoW14gXSspLiQv
ICkgKSB7DQorCQkkVGVtcCA9ICIkU2VydmVyICgkSXApIjsNCisJCSRVbmlj
YXN0UmVnaXN0ZXJ7JFRlbXB9Kys7DQorCX0gZWxzaWYgKCAoJEdyb3VwLCRT
dWJuZXQpID0gKCRUaGlzTGluZSA9fiAvc3RhbmRhcmRfZmFpbF9yZWdpc3Rl
cjogRmFpbGVkIHRvIHJlZ2lzdGVyXC9yZWZyZXNoIG5hbWUgKFteIF0rKSBv
biBzdWJuZXQgKFteIF0rKSQvICkgKSB7DQorCQkkRmFpbGVkUmVnaXN0ZXJ7
JFN1Ym5ldH17JEdyb3VwfSsrOw0KKwl9IGVsc2lmICggKCRJcCwkR3JvdXAs
dW5kZWYpID0gKCRUaGlzTGluZSA9fiAvcmVnaXN0ZXJfbmFtZV9yZXNwb25z
ZTogc2VydmVyIGF0IElQIChbXiBdKykgcmVqZWN0ZWQgb3VyIG5hbWUgcmVn
aXN0cmF0aW9uIG9mIChbXiBdKykgd2l0aCBlcnJvciBjb2RlIChbXiBdKylc
LiQvICkgKSB7DQorCQkkUmVqZWN0UmVnaXN0ZXJ7JEdyb3VwfXskSXB9Kys7
DQorCX0gZWxzaWYgKCAoJElwKSA9ICgkVGhpc0xpbmUgPX4gL2dldF9kb21h
aW5fbWFzdGVyX25hbWVfbm9kZV9zdGF0dXNfZmFpbDogIERvaW5nIGEgbm9k
ZSBzdGF0dXMgcmVxdWVzdCB0byB0aGUgZG9tYWluIG1hc3RlciBicm93c2Vy
IGF0IElQIChbXiBdKykgZmFpbGVkXC4gIENhbm5vdCBnZXQgd29ya2dyb3Vw
IG5hbWVcLiQvICkgKSB7DQorCQkkQ2FudEdldEdyb3VweyRJcH0rKzsNCisJ
fSBlbHNpZiAoICgkU2lnbmFsLHVuZGVmLCRWZXJzaW9uKSA9ICgkVGhpc0xp
bmUgPX4gL0lOVEVSTkFMIEVSUk9SOiBTaWduYWwgKFteIF0rKSBpbiBwaWQg
KFteIF0rKSBcKChbXiBdKylcKSAgUGxlYXNlIHJlYWQgdGhlIGZpbGUgQlVH
Uy50eHQgaW4gdGhlIGRpc3RyaWJ1dGlvbiQvICkgKSB7DQorCQkkVGVtcCA9
ICJWZXJzaW9uICRWZXJzaW9uIHdpdGggc2lnbmFsICRTaWduYWwiOw0KKwkJ
JENyYXNoeyRUZW1wfSsrOw0KKwl9IGVsc2lmICggKCAkVGhpc0xpbmUgPX4g
L2dldF9kb21haW5fbWFzdGVyX25hbWVfbm9kZV9zdGF0dXNfZmFpbFwoKFte
IF0rKVwpLyApICkgew0KKwkJJEdldERvbWFpbk1hc3RlclN0YXR1c0ZhaWwr
KzsNCisJfSBlbHNlIHsNCisJCSMgUmVwb3J0IGFueSB1bm1hdGNoZWQgZW50
cmllcy4uLg0KKwkJJE90aGVyTGlzdHskVGhpc0xpbmV9Kys7DQorCX0NCit9
DQorDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMNCisjDQorDQoraWYgKCVDcmFzaCkgew0KKwlwcmludCAiXG5XQVJOSU5H
ISEhISEhXG4iOw0KKwlwcmludCAiU2VydmVyIGNyYXNoZWQ6XG4iOw0KKwlm
b3JlYWNoICREZWFkIChzb3J0IHskYSBjbXAgJGJ9IGtleXMgJUNyYXNoKSB7
DQorCQlwcmludCAiICAgJERlYWQgOiAkQ3Jhc2h7JERlYWR9IFRpbWUocylc
biI7DQorCX0NCiB9DQogDQogaWYgKCgkRGV0YWlsID49IDUpIGFuZCAoa2V5
cyAlQ29ubmVjdCkpIHsNCkBAIC04OCw2ICsxMjUsNDAgQEANCiAgICB9DQog
fQ0KIA0KK2lmIChrZXlzICVGb3JjZUVsZWN0aW9uKSB7DQorCXByaW50ICJc
bkZvcmNlZCBFbGVjdGlvbjpcbiI7DQorCWZvcmVhY2ggJEdyb3VwIChzb3J0
IHskYSBjbXAgJGJ9IGtleXMgJUZvcmNlRWxlY3Rpb24pIHsNCisJCXByaW50
ICIgICBJbiB3b3JrZ3JvdXAgJEdyb3VwIHdoZW4gYW5ub3VuY2VkIHNlcnZl
ciB3YXM6XG4iOw0KKwkJZm9yZWFjaCAkSG9zdCAoc29ydCB7JGEgY21wICRi
fSBrZXlzICV7JEZvcmNlRWxlY3Rpb257JEdyb3VwfX0pIHsNCisJCQlwcmlu
dCAiICAgICAgJEhvc3QgOiAkRm9yY2VFbGVjdGlvbnskR3JvdXB9eyRIb3N0
fSBUaW1lKHMpXG4iOw0KKwkJfQ0KKwl9DQorfQ0KKw0KK2lmIChrZXlzICVC
ZUxvY2FsTWFzdGVyKSB7DQorCXByaW50ICJcbkNoYW5nZWQgTG9jYWwgTWFz
dGVyIEJyb3dzZXI6XG4iOw0KKwlmb3JlYWNoICRTdWJuZXQgKHNvcnQgeyRh
IGNtcCAkYn0ga2V5cyAlQmVMb2NhbE1hc3Rlcikgew0KKwkJcHJpbnQgIiAg
IE9uIHN1Ym5ldCAkU3VibmV0OlxuIjsNCisJCWZvcmVhY2ggJEdyb3VwIChz
b3J0IHskYSBjbXAgJGJ9IGtleXMgJXskQmVMb2NhbE1hc3RlcnskU3VibmV0
fX0pIHsNCisJCQlwcmludCAiICAgICAgRm9yIHdvcmtncm91cCAkR3JvdXA6
XG4iOw0KKwkJCWZvcmVhY2ggJE5hbWUgKHNvcnQgeyRhIGNtcCAkYn0ga2V5
cyAleyRCZUxvY2FsTWFzdGVyeyRTdWJuZXR9eyRHcm91cH19KSB7DQorCQkJ
CXByaW50ICIgICAgICAgICAkTmFtZSA6ICRCZUxvY2FsTWFzdGVyeyRTdWJu
ZXR9eyRHcm91cH17JE5hbWV9IFRpbWUocylcbiI7DQorCQkJfQ0KKwkJfQ0K
Kwl9DQorfQ0KKw0KK2lmIChrZXlzICVDYW50R2V0R3JvdXApIHsNCisJcHJp
bnQgIlxuQ2Fubm90IGdldCB3b3JrZ3JvdXAgbmFtZSBmcm9tIGRvbWFpbiBu
YW1lIGJyb3dzZXI6XG4iOw0KKwlmb3JlYWNoICRJcCAoc29ydCB7JGEgY21w
ICRifSBrZXlzICVDYW50R2V0R3JvdXApIHsNCisJCXByaW50ICIgICAkSXAg
OiAkQ2FudEdldEdyb3VweyRJcH0gVGltZShzKVxuIjsNCisJfQ0KK30NCisN
CitpZiAoJEdldERvbWFpbk1hc3RlclN0YXR1c0ZhaWwgPiAwKSB7DQorCXBy
aW50ICJcbkZhaWxlZCB0byBnZXQgRG9tYWluIE1hc3RlciBub2RlIG5hbWU6
ICRHZXREb21haW5NYXN0ZXJTdGF0dXNGYWlsIFRpbWUocylcbiI7DQorfQ0K
Kw0KIGlmICgoJERldGFpbCA+PSA1KSBhbmQgKGtleXMgJU5vU2VydikpIHsN
CiAgICBwcmludCAiXG5Db3VsZG4ndCBmaW5kIHNlcnZpY2VzOlxuIjsNCiAg
ICBmb3JlYWNoICRUaGlzT25lIChzb3J0IHskYSBjbXAgJGJ9IGtleXMgJU5v
U2Vydikgew0KQEAgLTk1LDExICsxNjYsMzUgQEANCiAgICB9DQogfQ0KIA0K
LWlmIChrZXlzICVPdGhlckxpc3QpIHsNCi0gICBwcmludCAiXG4qKlVubWF0
Y2hlZCBFbnRyaWVzKipcbiI7DQotICAgZm9yZWFjaCAkTGluZSAoc29ydCB7
JGEgY21wICRifSBrZXlzICVPdGhlckxpc3QpIHsNCi0gICAgICBwcmludCAi
JExpbmUgOiAkT3RoZXJMaXN0eyRMaW5lfSBUaW1lKHMpXG4iOw0KLSAgIH0N
CitpZiAoKCREZXRhaWwgPj0gNSkgYW5kIChrZXlzICVVbmljYXN0UmVnaXN0
ZXIpKSB7DQorCXByaW50ICJcblVuaWNhc3QgbmFtZSByZWdpc3RyYXRpb24g
cmVxdWVzdHM6XG4iOw0KKwlmb3JlYWNoICRUaGlzT25lIChzb3J0IHskYSBj
bXAgJGJ9IGtleXMgJVVuaWNhc3RSZWdpc3Rlcikgew0KKwkJcHJpbnQgIiAg
ICRUaGlzT25lIDogJFVuaWNhc3RSZWdpc3RlcnskVGhpc09uZX0gVGltZShz
KVxuIjsNCisJfQ0KK30NCisNCitpZiAoa2V5cyAlRmFpbGVkUmVnaXN0ZXIp
IHsNCisJcHJpbnQgIlxuRmFpbGVkIHRvIHJlZ2lzdGVyL3JlZnJlc2g6XG4i
Ow0KKwlmb3JlYWNoICRTdWJuZXQgKHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAl
RmFpbGVkUmVnaXN0ZXIpIHsNCisJCXByaW50ICIgICBPbiBzdWJuZXQgJFN1
Ym5ldDpcbiI7DQorCQlmb3JlYWNoICRHcm91cCAoc29ydCB7JGEgY21wICRi
fSBrZXlzICV7JEZhaWxlZFJlZ2lzdGVyeyRTdWJuZXR9fSkgew0KKwkJCXBy
aW50ICIgICAgICAkR3JvdXAgOiAkRmFpbGVkUmVnaXN0ZXJ7JFN1Ym5ldH17
JEdyb3VwfSBUaW1lKHMpXG4iOw0KKwkJfQ0KKwl9DQorfQ0KKw0KK2lmIChr
ZXlzICVSZWplY3RSZWdpc3Rlcikgew0KKwlwcmludCAiXG5SZWplY3RlZCBv
dXIgbmFtZSByZWdpc3RyYXRpb246XG4iOw0KKwlmb3JlYWNoICRHcm91cCAo
c29ydCB7JGEgY21wICRifSBrZXlzICVSZWplY3RSZWdpc3Rlcikgew0KKwkJ
cHJpbnQgIiAgIE5hbWUgJEdyb3VwIGF0IElQOlxuIjsNCisJCWZvcmVhY2gg
JElwIChzb3J0IHskYSBjbXAgJGJ9IGtleXMgJXskUmVqZWN0UmVnaXN0ZXJ7
JEdyb3VwfX0pIHsNCisJCQlwcmludCAiICAgICAgJElwIDogJFJlamVjdFJl
Z2lzdGVyeyRHcm91cH17JElwfSBUaW1lKHMpXG4iOw0KKwkJfQ0KKwl9DQor
fQ0KKw0KK2lmICgkRGJPcGVuRmFpbCA+IDApIHsNCisJcHJpbnQgIlxuRmFp
bGVkIHRvIG9wZW4gcGFzc3dkIGRhdGFiYXNlOiAkRGJPcGVuRmFpbCBUaW1l
KHMpXG4iOw0KIH0NCiANCiBpZiAoa2V5cyAlSW52YWxpZFVzZXIpIHsNCkBA
IC0xMjQsOCArMjE5LDE2IEBADQogfQ0KIA0KIGlmICgkU29ja2V0UmVhZEVy
cm9yID4gMCkgew0KLSAgIHByaW50ICJcblNvY2tldCBSZWFkIEVycm9yIChT
YW1iYSBidWcpOiAkU29ja2V0UmVhZEVycm9yIFRpbWUocylcbiI7DQorCXBy
aW50ICJcblNvY2tldCBSZWFkIEVycm9yIChTYW1iYSBidWcpOiAkU29ja2V0
UmVhZEVycm9yIFRpbWUocylcbiI7DQorfQ0KKw0KK2lmIChrZXlzICVPdGhl
ckxpc3QpIHsNCisJcHJpbnQgIlxuKipVbm1hdGNoZWQgRW50cmllcyoqXG4i
Ow0KKwlmb3JlYWNoICRMaW5lIChzb3J0IHskYSBjbXAgJGJ9IGtleXMgJU90
aGVyTGlzdCkgew0KKwkJcHJpbnQgIiRMaW5lIDogJE90aGVyTGlzdHskTGlu
ZX0gVGltZShzKVxuIjsNCisJfQ0KIH0NCiANCiBleGl0KDApOw0KIA0KKyMg
dmk6IHNoaWZ0d2lkdGg9NCB0YWJzdG9wPTQNCkluZGV4OiBzY3JpcHRzL3Nl
cnZpY2VzL3NlY3VyZQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZp
bGU6IC92YXIvY3ZzL2xvZ3dhdGNoL3NjcmlwdHMvc2VydmljZXMvc2VjdXJl
LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4zNw0KZGlmZiAtdSAtcjEuMzcg
c2VjdXJlDQotLS0gc2NyaXB0cy9zZXJ2aWNlcy9zZWN1cmUJMTggTm92IDIw
MDMgMTQ6MDQ6MDYgLTAwMDAJMS4zNw0KKysrIHNjcmlwdHMvc2VydmljZXMv
c2VjdXJlCTI2IE5vdiAyMDAzIDA3OjQ5OjQwIC0wMDAwDQpAQCAtMTksMTQg
KzE5LDI1IEBADQogdXNlIExvZ3dhdGNoICc6aXAnOw0KIA0KIHdoaWxlIChk
ZWZpbmVkKCRUaGlzTGluZSA9IDxTVERJTj4pKSB7DQotICAgY2hvbXAoJFRo
aXNMaW5lKTsNCi0gICAkVGhpc0xpbmUgPX4gcy9eLi4uIC4uIC4uOi4uOi4u
IFteIF0rIC8vOw0KLSAgIG15ICR0ZW1wID0gJFRoaXNMaW5lOw0KLSAgICR0
ZW1wID1+IHMvXihbXltdKykuKi8kMS87DQotICAgaWYgKCRJZ25vcmUgPX4g
L1xiXFEkdGVtcFxFXGIvaSkgeyBuZXh0OyB9DQotICAgaWYgKCAoJEhvc3Qs
JFVzZXIpID0gKCRUaGlzTGluZSA9fiAvXmxvZ2luOiBGQUlMRUQgTE9HSU4g
XGQrIEZST00gKFteIF0rKSBGT1IgKFteLF0rKSwvICkgKSB7DQotICAgICAg
JEZhaWxlZExvZ2lucy0+eyRVc2VyfS0+eyRIb3N0fSsrOw0KLSAgIH0gZWxz
aWYgKCAoJFNlcnZpY2UsJElQKSA9ICgkVGhpc0xpbmUgPX4gL14oW14gXSsp
XFtcZCtcXTogY29ubmVjdChpb24pPyBmcm9tICI/KFxkK1wuXGQrXC5cZCtc
LlxkKykuKi8pICkgew0KKwljaG9tcCgkVGhpc0xpbmUpOw0KKwkkVGhpc0xp
bmUgPX4gcy9eLi4uIC4uIC4uOi4uOi4uIFteIF0rIC8vOw0KKwlteSAkdGVt
cCA9ICRUaGlzTGluZTsNCisJJHRlbXAgPX4gcy9eKFteW10rKS4qLyQxLzsN
CisJaWYgKCRJZ25vcmUgPX4gL1xiXFEkdGVtcFxFXGIvaSkgeyBuZXh0OyB9
DQorCWlmICgNCisJCSggJFRoaXNMaW5lID1+IG0vXlteIF0rXFtcZCtcXTog
Y29ubmVjdCBmcm9tIGxvY2FsaG9zdCQvICkgb3INCisJCSggJFRoaXNMaW5l
ID1+IC9eXC91c3JcL2Jpblwvc3VkbzovKSBvcg0KKwkJKCAkVGhpc0xpbmUg
PX4gL15zdWRvOi8pIG9yDQorCQkoICRUaGlzTGluZSA9fiAvXnBhc3N3ZFxb
XGQrXF06Lykgb3INCisJCSggJFRoaXNMaW5lID1+IC93YXJuaW5nOiBjYW4u
dCBnZXQgY2xpZW50IGFkZHJlc3M6IENvbm5lY3Rpb24gcmVmdXNlZC8pIG9y
DQorCQkoICRUaGlzTGluZSA9fiAvXnhpbmV0ZFxbXGQrXF06IFVTRVJJRDog
KFteIF0rKSAoLispJC8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gL14oeGlu
ZXRkfHhpbmV0ZC1pcHY2KVxbXGQrXF06IEVYSVQ6IChbXiBdKykgcGlkPVxk
Ky8pDQorCSkNCisJew0KKwkJIyBJZ25vcmUgdGhlc2UgZW50cmllcw0KKwl9
IGVsc2lmICggKCRIb3N0LCRVc2VyKSA9ICgkVGhpc0xpbmUgPX4gL15sb2dp
bjogRkFJTEVEIExPR0lOIFxkKyBGUk9NIChbXiBdKykgRk9SIChbXixdKyks
LyApICkgew0KKwkJJEZhaWxlZExvZ2lucy0+eyRVc2VyfS0+eyRIb3N0fSsr
Ow0KKwl9IGVsc2lmICggKCRTZXJ2aWNlLCRJUCkgPSAoJFRoaXNMaW5lID1+
IC9eKFteIF0rKVxbXGQrXF06IGNvbm5lY3QoaW9uKT8gZnJvbSAiPyhcZCtc
LlxkK1wuXGQrXC5cZCspLiovKSApIHsNCiAgICAgICAkTmFtZSA9IExvb2t1
cElQKCRJUCk7DQogICAgICAgaWYgKCRTdW1tYXJpemUgPX4gL1xRJFNlcnZp
Y2VcRS8pIHsgDQogICAgICAgICAgJENvbm5lY3Rpb25zLT57JFNlcnZpY2V9
Kys7DQpAQCAtNTMsMTIgKzY0LDggQEANCiAJCSAgfQ0KIAkgIH0gZWxzaWYg
KCAoJERpc3BsYXksICRVc2VyKSA9ICgkVGhpc0xpbmUgPX4gL154c2NyZWVu
c2F2ZXJcW1xkK1xdOiBGQUlMRUQgTE9HSU4gXGQgT04gRElTUExBWSBcIihb
XiBdKylcIiwgRk9SIFwiKFteIF0rKVwiJC8pICkgew0KIAkgICAgICAkRmFp
bGVkU2F2ZXItPnskVXNlcn0tPnskRGlzcGxheX0rKzsNCi0gICB9IGVsc2lm
ICggKHVuZGVmLCAkU2VydmljZSkgPSAoJFRoaXNMaW5lID1+IC9eKHhpbmV0
ZHx4aW5ldGQtaXB2NilcW1xkK1xdOiBFWElUOiAoW14gXSspIHBpZD1cZCsv
KSApIHsNCi0gICAgICAjaWdub3JlLi4uDQogICAgfSBlbHNpZiAoICRUaGlz
TGluZSA9fiBzL14oW14gXSspXFtcZCtcXTogd2FybmluZzogY2FuXCd0IGdl
dCBjbGllbnQgYWRkcmVzczogTm8gcm91dGUgdG8gaG9zdCQvJDEvICkgew0K
ICAgICAgICROb0lQLT57JFRoaXNMaW5lfSsrOw0KLSAgIH0gZWxzaWYgKCAk
VGhpc0xpbmUgPX4gbS9eW14gXStcW1xkK1xdOiBjb25uZWN0IGZyb20gbG9j
YWxob3N0JC8gKSB7DQotICAgICAgI2lnbm9yZS4uLg0KICAgIH0gZWxzaWYg
KCAkVGhpc0xpbmUgPX4gcy9eKFteIF0rKVxbXGQrXF06IHdhcm5pbmc6IGNh
blwndCBnZXQgY2xpZW50IGFkZHJlc3M6IE5ldHdvcmsgaXMgdW5yZWFjaGFi
bGUkLyQxLyApIHsNCiAgICAgICAkTm9JUC0+eyRUaGlzTGluZX0rKzsNCiAg
ICB9IGVsc2lmICggJFRoaXNMaW5lID1+IHMvXihbXiBdKylcW1xkK1xdOiB3
YXJuaW5nOiBjYW5cJ3QgZ2V0IGNsaWVudCBhZGRyZXNzOiBDb25uZWN0aW9u
IHJlc2V0IGJ5IHBlZXIkLyQxLyApIHsNCkBAIC03MSw4ICs3OCw2IEBADQog
ICAgICAgJEVycm9yeyRTZXJ2aWNlfXskRXJyfSsrOw0KICAgIH0gZWxzaWYg
KCAoJFNlcnZpY2UsJEVycikgPSAoJFRoaXNMaW5lID1+IC9eKFteIF0rKTog
KEZBSUxFRCBMT0dJTiBTRVNTSU9OIEZST00gW14gXSsgRk9SICwgLiopJC8g
KSApIHsNCiAgICAgICAkRXJyb3J7JFNlcnZpY2V9eyRFcnJ9Kys7DQotICAg
fSBlbHNpZiAoICRUaGlzTGluZSA9fiAvd2FybmluZzogY2FuLnQgZ2V0IGNs
aWVudCBhZGRyZXNzOiBDb25uZWN0aW9uIHJlZnVzZWQvKSB7DQotICAgICAg
IyBOb3RoaW5nDQogICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXmxvZ2lu
OiBST09UIExPR0lOIE9OIHR0eVswLTldKy8pIHsNCiAgICAgICAkUm9vdExv
Z2luVFRZKysNCiAgICB9IGVsc2lmICggJFRoaXNMaW5lID1+IHMvXnVzZXJk
ZWxcW1xkK1xdOiBkZWxldGUgdXNlciBgKC4rKScvJDEvICkgew0KQEAgLTg1
LDMzICs5MCwzMCBAQA0KICAgICAgIHB1c2ggQERlbGV0ZWRHcm91cHMsICIg
ICAkVGhpc0xpbmVcbiI7DQogICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiBz
L14odXNlcmFkZHxhZGR1c2VyKVxbXGQrXF06IG5ldyBncm91cDogbmFtZT0o
LispLCBnaWQ9KFxkKykuKiQvJDEgKCQyKS8gKSB7DQogICAgICAgcHVzaCBA
TmV3R3JvdXBzLCAiICAgJFRoaXNMaW5lXG4iOw0KLSAgIH0gZWxzaWYgKCAk
VGhpc0xpbmUgPX4gcy9eZ3JvdXBhZGRcW1xkK1xdOiBuZXcgZ3JvdXA6IG5h
bWU9KC4rKSwgZ2lkPShcZCspLiokLyQxICgkMikvICkgew0KLSAgICAgIHB1
c2ggQE5ld0dyb3VwcywgIiAgICRUaGlzTGluZVxuIjsNCi0gICB9IGVsc2lm
ICggJFRoaXNMaW5lID1+IC9edXNlcmRlbFxbXGQrXF06IGRlbGV0ZSBgKC4q
KScgZnJvbSAoc2hhZG93fGdyb3VwKSBgKC4qKSdccyokLyApIHsNCi0gICAg
IHB1c2ggQFJlbW92ZUZyb21Hcm91cCwgIiAgICB1c2VyICQxIGZyb20gZ3Jv
dXAgJDNcbiI7DQotICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXnhpbmV0
ZFxbXGQrXF06IFVTRVJJRDogKFteIF0rKSAoLispJC8gKSB7DQotICAgICAg
IyBUaGlzIGlzIGFuIGluZXRkIGxvb2t1cC4uLiAkMSBpcyB0aGUgc2Vydmlj
ZSAoaS5lLiBmdHApLCAkMiBpcyB0aGUgcmVzcG9uc2UNCi0gICAgICAjIEkg
ZG9uJ3QgdGhpbmsgdGhlc2UgYXJlIGltcG9ydGFudCB0byBsb2cgYXQgdGhp
cyB0aW1lDQotICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXnN1ZG86IChb
XlxzXSspIDogKGNvbW1hbmQgbm90IGFsbG93ZWQpPy4rIDsgQ09NTUFORD0o
LiopJC8gKSB7DQotICAgICAgIyBzdWRvIHVuYXV0aG9yaXplZCBjb21tYW5k
cw0KLSAgICAgICAgcHVzaCBAU3Vkb0xpc3QsICIkMTogJDNcbiIgdW5sZXNz
ICgkMiBlcSAiIik7DQotICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXnN1
ZG86Lykgew0KLSAgICAgICMgSWdub3JlIG90aGVyIHN1ZG8gZW50cmllcyBh
cyB0aGV5IGFyZSBoYW5kbGVkIGJ5IHRoZSBzdWRvIGZpbHRlcg0KLSAgIH0g
ZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15cL3VzclwvYmluXC9zdWRvOiAoW15c
c10rKSA6IChjb21tYW5kIG5vdCBhbGxvd2VkKT8uKyA7IENPTU1BTkQ9KC4q
KSQvICkgew0KLSAgICAgICMgc3VkbyB1bmF1dGhvcml6ZWQgY29tbWFuZHMN
Ci0gICAgICAgIHB1c2ggQFN1ZG9MaXN0LCAiJDE6ICQzXG4iIHVubGVzcyAo
JDIgZXEgIiIpOw0KLSAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15cL3Vz
clwvYmluXC9zdWRvOi8pIHsNCi0gICAgICAjIElnbm9yZSBvdGhlciBzdWRv
IGVudHJpZXMgYXMgdGhleSBhcmUgaGFuZGxlZCBieSB0aGUgc3VkbyBmaWx0
ZXINCi0gICB9IGVsc2lmICggKCRzZXJ2aWNlLCAkZnJvbSkgPSAoJFRoaXNM
aW5lID1+IC9eeGluZXRkXFtcZCtcXTogRkFJTDogKC4rKSAoPzphZGRyZXNz
fGxpYndyYXApIGZyb209KFtcZC5dKykvKSkgew0KLSAgICAgICRSZWZ1c2Vk
LT57JHNlcnZpY2V9LT57JGZyb219Kys7DQotICAgfSBlbHNlIHsNCi0gICAg
ICAjIFVubWF0Y2hlZCBlbnRyaWVzLi4uDQotICAgICAgcHVzaCBAT3RoZXJM
aXN0LCAiJFRoaXNMaW5lXG4iOw0KLSAgIH0NCisgIH0gZWxzaWYgKCAoJFVz
ZXIsJEdyb3VwKSA9fiAvdXNlcmFkZFs0MDk0XTogYWRkIGAoW14gXSspJyB0
byBncm91cCBgKFteIF0rKSckLyApIHsNCisJICAkQWRkVG9Hcm91cHskR3Jv
dXB9eyRVc2VyfSsrOw0KKyAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiBzL15n
cm91cGFkZFxbXGQrXF06IG5ldyBncm91cDogbmFtZT0oLispLCBnaWQ9KFxk
KykuKiQvJDEgKCQyKS8gKSB7DQorCSAgcHVzaCBATmV3R3JvdXBzLCAiICAg
JFRoaXNMaW5lXG4iOw0KKyAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXnVz
ZXJkZWxcW1xkK1xdOiBkZWxldGUgYCguKiknIGZyb20gKHNoYWRvd3xncm91
cCkgYCguKiknXHMqJC8gKSB7DQorCSAgcHVzaCBAUmVtb3ZlRnJvbUdyb3Vw
LCAiICAgIHVzZXIgJDEgZnJvbSBncm91cCAkM1xuIjsNCisJICAjIFRoaXMg
aXMgYW4gaW5ldGQgbG9va3VwLi4uICQxIGlzIHRoZSBzZXJ2aWNlIChpLmUu
IGZ0cCksICQyIGlzIHRoZSByZXNwb25zZQ0KKwkgICMgSSBkb24ndCB0aGlu
ayB0aGVzZSBhcmUgaW1wb3J0YW50IHRvIGxvZyBhdCB0aGlzIHRpbWUNCisg
IH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15zdWRvOiAoW15cc10rKSA6IChj
b21tYW5kIG5vdCBhbGxvd2VkKT8uKyA7IENPTU1BTkQ9KC4qKSQvICkgew0K
KwkgICMgc3VkbyB1bmF1dGhvcml6ZWQgY29tbWFuZHMNCisJICBwdXNoIEBT
dWRvTGlzdCwgIiQxOiAkM1xuIiB1bmxlc3MgKCQyIGVxICIiKTsNCisgIH0g
ZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15cL3VzclwvYmluXC9zdWRvOiAoW15c
c10rKSA6IChjb21tYW5kIG5vdCBhbGxvd2VkKT8uKyA7IENPTU1BTkQ9KC4q
KSQvICkgew0KKwkgICMgc3VkbyB1bmF1dGhvcml6ZWQgY29tbWFuZHMNCisJ
ICBwdXNoIEBTdWRvTGlzdCwgIiQxOiAkM1xuIiB1bmxlc3MgKCQyIGVxICIi
KTsNCisgIH0gZWxzaWYgKCAoJHNlcnZpY2UsICRmcm9tKSA9ICgkVGhpc0xp
bmUgPX4gL154aW5ldGRcW1xkK1xdOiBGQUlMOiAoLispICg/OmFkZHJlc3N8
bGlid3JhcCkgZnJvbT0oW1xkLl0rKS8pKSB7DQorCSAgJFJlZnVzZWQtPnsk
c2VydmljZX0tPnskZnJvbX0rKzsNCisgIH0gZWxzZSB7DQorCSAgIyBVbm1h
dGNoZWQgZW50cmllcy4uLg0KKwkgIHB1c2ggQE90aGVyTGlzdCwgIiRUaGlz
TGluZVxuIjsNCisgIH0NCiB9DQogDQogaWYgKEBOZXdVc2Vycykgew0KLSAg
IHByaW50ICJcbk5ldyBVc2VyczpcbkBOZXdVc2Vyc1xuIjsNCisJcHJpbnQg
IlxuTmV3IFVzZXJzOlxuQE5ld1VzZXJzXG4iOw0KIH0NCiANCiBpZiAoQERl
bGV0ZWRVc2Vycykgew0KQEAgLTEyNCw2ICsxMjYsMTYgQEANCiANCiBpZiAo
QERlbGV0ZWRHcm91cHMpIHsNCiAgICBwcmludCAiXG5EZWxldGVkIEdyb3Vw
czpcbkBEZWxldGVkVXNlcnNcbiI7DQorfQ0KKw0KK2lmIChrZXlzICVBZGRU
b0dyb3VwKSB7DQorCXByaW50ICJcbkFkZGVkIFVzZXIgdG8gZ3JvdXA6XG4i
Ow0KKwlmb3JlYWNoICRHcm91cCAoc29ydCB7JGEgY21wICRifSBrZXlzICVB
ZGRUb0dyb3VwKSB7DQorCQlwcmludCAiICAgR3JvdXAgJEdyb3VwOlxuIjsN
CisJCWZvcmVhY2ggJFVzZXIgKHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAleyRB
ZGRUb0dyb3VweyRVc2VyfX0pIHsNCisJCQlwcmludCAiICAgICAgJFVzZXJc
biI7DQorCQl9DQorCX0NCiB9DQogDQogaWYgKEBSZW1vdmVGcm9tR3JvdXAp
IHsNCkluZGV4OiBzY3JpcHRzL3NlcnZpY2VzL3NlbmRtYWlsDQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3Zhci9jdnMvbG9nd2F0Y2gv
c2NyaXB0cy9zZXJ2aWNlcy9zZW5kbWFpbCx2DQpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMjkNCmRpZmYgLXUgLXIxLjI5IHNlbmRtYWlsDQotLS0gc2NyaXB0
cy9zZXJ2aWNlcy9zZW5kbWFpbAk3IE5vdiAyMDAzIDE0OjI2OjQyIC0wMDAw
CTEuMjkNCisrKyBzY3JpcHRzL3NlcnZpY2VzL3NlbmRtYWlsCTI2IE5vdiAy
MDAzIDA3OjQ5OjQwIC0wMDAwDQpAQCAtMTA5LDY5ICsxMDksNjkgQEANCiBt
eSAkVW5rbm93blVzZXJzVGhyZXNob2xkID0gMDsNCiANCiB3aGlsZSAoZGVm
aW5lZCgkVGhpc0xpbmUgPSA8U1RESU4+KSkgew0KLSAgICgkUXVldWVJRCkg
PSAoJFRoaXNMaW5lID1+IG0vXihbYS16QS1aMC05XSspOiAvICk7DQotICAg
JFRoaXNMaW5lID1+IHMvXlthLXpBLVowLTldKzogLy87DQotICAgaWYgKCAg
KCAkVGhpc0xpbmUgPX4gbS9eYWxpYXMgZGF0YWJhc2UgW14gXSogKGF1dG8p
P3JlYnVpbHQgYnkvICkgb3INCi0gICAgICAgICAoICRUaGlzTGluZSA9fiBt
L1swLTldKiBhbGlhc2VzLCBsb25nZXN0IFswLTldKiBieXRlcywgWzAtOV0q
IGJ5dGVzIHRvdGFsLyApIG9yIA0KLSAgICAgICAgICggJFRoaXNMaW5lID1+
IG0vXnN0YXJ0aW5nIGRhZW1vbiAoLiopOi8gKSBvciANCi0gICAgICAgICAo
ICRUaGlzTGluZSA9fiBtL3ByZW1hdHVyZSBFT00vICkgb3IgDQotICAgICAg
ICAgKCAkVGhpc0xpbmUgPX4gbS91bmV4cGVjdGVkIGNsb3NlIG9uIGNvbm5l
Y3Rpb24gZnJvbS8gKSBvciANCi0gICAgICAgICAoICRUaGlzTGluZSA9fiBt
L3RpbWVvdXQgd2FpdGluZyBmb3IgaW5wdXQgZnJvbS8gKSBvciANCi0gICAg
ICAgICAoICRUaGlzTGluZSA9fiBtL2xvc3QgaW5wdXQgY2hhbm5lbCBmcm9t
LyApIG9yIA0KLSAgICAgICAgICggJFRoaXNMaW5lID1+IG0vRFNOOiBDYW5u
b3Qgc2VuZCBtZXNzYWdlIGZvciBcZCsgZGF5LyApIG9yIA0KLSAgICAgICAg
ICggJFRoaXNMaW5lID1+IG0vOiBTZXJ2aWNlIHVuYXZhaWxhYmxlJC8pIG9y
IA0KLSAgICAgICAgICggJFRoaXNMaW5lID1+IG0vQnJva2VuIHBpcGV8Q29u
bmVjdGlvbiAocmVzZXR8dGltZWQgb3V0KS8gKSBvcg0KLSAgICAgICAgICgg
JFRoaXNMaW5lID1+IG0vWC1TcGFtLyApIG9yDQotICAgICAgICAgKCAkVGhp
c0xpbmUgPX4gbS9NaWx0ZXIgbWVzc2FnZTogYm9keSByZXBsYWNlZC8gKSBv
cg0KLSAgICAgICAgICggJFRoaXNMaW5lID1+IG0vTWlsdGVyOiBkYXRhLyAp
IG9yDQotICAgICAgICAgKCAkVGhpc0xpbmUgPX4gbS9NaWx0ZXIgY2hhbmdl
OiBoZWFkZXIvICkgb3INCi0gICAgICAgICAoICRUaGlzTGluZSA9fiBtL01p
bHRlciBkZWxldGU6IGhlYWRlci8gKSBvcg0KLSAgICAgICAgICggJFRoaXNM
aW5lID1+IG0vTWlsdGVyIGFkZDogaGVhZGVyOiBYLVZpcnVzLVNjYW5uZWQ6
IGJ5IGFtYXZpcy8gKSBvcg0KLSAgICAgICAgICggJFRoaXNMaW5lID1+IG0v
QVVUSD1zZXJ2ZXIsIHJlbGF5PS8gKSBvcg0KLSAgICAgICAgICggJFRoaXNM
aW5lID1+IG0vZGlzY2FyZGVkLyApIG9yDQotICAgICAgICAgKCAkVGhpc0xp
bmUgPX4gbS9oZWFkZXJzIHRvbyBsYXJnZS8gKSBvcg0KLSAgICAgICAgICgg
JFRoaXNMaW5lID1+IG0vXmNsb25lIFthLXpBLVowLTldKywgb3duZXI9LyAp
ICkgew0KLSAgICAgICMgV2UgZG9uJ3QgY2FyZSBhYm91dCB0aGVzZQ0KLSAg
IH0gZWxzaWYgKCAoJEZyb21Vc2VyLCAkRnJvbURvbWFpbiwgJEJ5dGVzLCAk
TnVtUmNwdHMsICRSZWxheUhvc3QpID0gKCRUaGlzTGluZSA9fiAvXmZyb209
W1w8XT8oW15AXSspW0BdPyhbXlw+IF0rKS4qc2l6ZT0oWzAtOV0rKS4qbnJj
cHRzPShbMC05XSspLipyZWxheT0oXFtbMC05XC5dK1xdfFteIF0qIFxbWzAt
OVwuXStcXXxbXiBdKykuKiQvKSApIHsNCi0gICAgICBpZiAoJE51bVJjcHRz
ID4gMCkgew0KLSAgICAgICAgICRNc2dzU2VudCsrOw0KLSAgICAgICAgICRU
b3RhbFJjcHRzICs9ICROdW1SY3B0czsNCi0gICAgICAgICAkQnl0ZXNUcmFu
c2ZlcnJlZCArPSAkQnl0ZXM7DQotICAgICAgICAgJE1haWxCb21iZXJ7JFJl
bGF5SG9zdH0gKz0gJE51bVJjcHRzOw0KLSAgICAgICAgICRNYWlsQm9tYmVy
Q29ubnskUmVsYXlIb3N0fSsrOw0KLQ0KLSAgICAgICAgIGlmICgkQnl0ZXMg
PD0gMTAyNDApIHsNCi0gICAgICAgICAgICAkU2l6ZURpc3RbMF17J051bSd9
Kys7DQotICAgICAgICAgICAgJFNpemVEaXN0WzBdeydCeXRlcyd9ICs9ICRC
eXRlczsNCi0gICAgICAgICB9IGVsc2lmICgkQnl0ZXMgPD0gMjA0ODApIHsN
Ci0gICAgICAgICAgICAkU2l6ZURpc3RbMV17J051bSd9Kys7DQotICAgICAg
ICAgICAgJFNpemVEaXN0WzFdeydCeXRlcyd9ICs9ICRCeXRlczsNCi0gICAg
ICAgICB9IGVsc2lmICgkQnl0ZXMgPD0gNTEyMDApIHsNCi0gICAgICAgICAg
ICAkU2l6ZURpc3RbMl17J051bSd9Kys7DQotICAgICAgICAgICAgJFNpemVE
aXN0WzJdeydCeXRlcyd9ICs9ICRCeXRlczsNCi0gICAgICAgICB9IGVsc2lm
ICgkQnl0ZXMgPD0gMTAyNDAwKSB7DQotICAgICAgICAgICAgJFNpemVEaXN0
WzNdeydOdW0nfSsrOw0KLSAgICAgICAgICAgICRTaXplRGlzdFszXXsnQnl0
ZXMnfSArPSAkQnl0ZXM7DQotICAgICAgICAgfSBlbHNpZiAoJEJ5dGVzIDw9
IDUxMjAwMCkgew0KLSAgICAgICAgICAgICRTaXplRGlzdFs0XXsnTnVtJ30r
KzsNCi0gICAgICAgICAgICAkU2l6ZURpc3RbNF17J0J5dGVzJ30gKz0gJEJ5
dGVzOw0KLSAgICAgICAgIH0gZWxzaWYgKCRCeXRlcyA8PSAxMDQ4NTc2KSB7
DQotICAgICAgICAgICAgJFNpemVEaXN0WzVdeydOdW0nfSsrOw0KLSAgICAg
ICAgICAgICRTaXplRGlzdFs1XXsnQnl0ZXMnfSArPSAkQnl0ZXM7DQotICAg
ICAgICAgfSBlbHNpZiAoJEJ5dGVzIDw9IDIwOTcxNTIpIHsNCi0gICAgICAg
ICAgICAkU2l6ZURpc3RbNl17J051bSd9Kys7DQotICAgICAgICAgICAgJFNp
emVEaXN0WzZdeydCeXRlcyd9ICs9ICRCeXRlczsNCi0gICAgICAgICB9IGVs
c2lmICgkQnl0ZXMgPD0gNTI0Mjg4MCkgew0KLSAgICAgICAgICAgICRTaXpl
RGlzdFs3XXsnTnVtJ30rKzsNCi0gICAgICAgICAgICAkU2l6ZURpc3RbN117
J0J5dGVzJ30gKz0gJEJ5dGVzOw0KLSAgICAgICAgIH0gZWxzaWYgKCRCeXRl
cyA8PSAxMDQ4NTc2MCkgew0KLSAgICAgICAgICAgICRTaXplRGlzdFs4XXsn
TnVtJ30rKzsNCi0gICAgICAgICAgICAkU2l6ZURpc3RbOF17J0J5dGVzJ30g
Kz0gJEJ5dGVzOw0KLSAgICAgICAgIH0gZWxzZSB7DQotICAgICAgICAgICAg
JFNpemVEaXN0WzldeydOdW0nfSsrOw0KLSAgICAgICAgICAgICRTaXplRGlz
dFs5XXsnQnl0ZXMnfSArPSAkQnl0ZXM7DQotICAgICAgICAgfQ0KLSAgICAg
IH0NCisJKCRRdWV1ZUlEKSA9ICgkVGhpc0xpbmUgPX4gbS9eKFthLXpBLVow
LTldKyk6IC8gKTsNCisJJFRoaXNMaW5lID1+IHMvXlthLXpBLVowLTldKzog
Ly87DQorCWlmICggICggJFRoaXNMaW5lID1+IG0vXmFsaWFzIGRhdGFiYXNl
IFteIF0qIChhdXRvKT9yZWJ1aWx0IGJ5LyApIG9yDQorCQkoICRUaGlzTGlu
ZSA9fiBtL1swLTldKiBhbGlhc2VzLCBsb25nZXN0IFswLTldKiBieXRlcywg
WzAtOV0qIGJ5dGVzIHRvdGFsLyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4g
bS9ec3RhcnRpbmcgZGFlbW9uICguKik6LyApIG9yIA0KKwkJKCAkVGhpc0xp
bmUgPX4gbS9wcmVtYXR1cmUgRU9NLyApIG9yIA0KKwkJKCAkVGhpc0xpbmUg
PX4gbS91bmV4cGVjdGVkIGNsb3NlIG9uIGNvbm5lY3Rpb24gZnJvbS8gKSBv
ciANCisJCSggJFRoaXNMaW5lID1+IG0vdGltZW91dCB3YWl0aW5nIGZvciBp
bnB1dCBmcm9tLyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4gbS9sb3N0IGlu
cHV0IGNoYW5uZWwgZnJvbS8gKSBvciANCisJCSggJFRoaXNMaW5lID1+IG0v
RFNOOiBDYW5ub3Qgc2VuZCBtZXNzYWdlIGZvciBcZCsgZGF5LyApIG9yIA0K
KwkJKCAkVGhpc0xpbmUgPX4gbS86IFNlcnZpY2UgdW5hdmFpbGFibGUkLykg
b3IgDQorCQkoICRUaGlzTGluZSA9fiBtL0Jyb2tlbiBwaXBlfENvbm5lY3Rp
b24gKHJlc2V0fHRpbWVkIG91dCkvICkgb3INCisJCSggJFRoaXNMaW5lID1+
IG0vWC1TcGFtLyApIG9yDQorCQkoICRUaGlzTGluZSA9fiBtL01pbHRlciBt
ZXNzYWdlOiBib2R5IHJlcGxhY2VkLyApIG9yDQorCQkoICRUaGlzTGluZSA9
fiBtL01pbHRlcjogZGF0YS8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9N
aWx0ZXIgY2hhbmdlOiBoZWFkZXIvICkgb3INCisJCSggJFRoaXNMaW5lID1+
IG0vTWlsdGVyIGRlbGV0ZTogaGVhZGVyLyApIG9yDQorCQkoICRUaGlzTGlu
ZSA9fiBtL01pbHRlciBhZGQ6IGhlYWRlcjogWC1WaXJ1cy1TY2FubmVkOiBi
eSBhbWF2aXMvICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vQVVUSD1zZXJ2
ZXIsIHJlbGF5PS8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9kaXNjYXJk
ZWQvICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vaGVhZGVycyB0b28gbGFy
Z2UvICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vXmNsb25lIFthLXpBLVow
LTldKywgb3duZXI9LyApICkgew0KKwkJIyBXZSBkb24ndCBjYXJlIGFib3V0
IHRoZXNlDQorCX0gZWxzaWYgKCAoJEZyb21Vc2VyLCAkRnJvbURvbWFpbiwg
JEJ5dGVzLCAkTnVtUmNwdHMsICRSZWxheUhvc3QpID0gKCRUaGlzTGluZSA9
fiAvXmZyb209W1w8XT8oW15AXSspW0BdPyhbXlw+IF0rKS4qc2l6ZT0oWzAt
OV0rKS4qbnJjcHRzPShbMC05XSspLipyZWxheT0oXFtbMC05XC5dK1xdfFte
IF0qIFxbWzAtOVwuXStcXXxbXiBdKykuKiQvKSApIHsNCisJCWlmICgkTnVt
UmNwdHMgPiAwKSB7DQorCQkJJE1zZ3NTZW50Kys7DQorCQkJJFRvdGFsUmNw
dHMgKz0gJE51bVJjcHRzOw0KKwkJCSRCeXRlc1RyYW5zZmVycmVkICs9ICRC
eXRlczsNCisJCQkkTWFpbEJvbWJlcnskUmVsYXlIb3N0fSArPSAkTnVtUmNw
dHM7DQorCQkJJE1haWxCb21iZXJDb25ueyRSZWxheUhvc3R9Kys7DQorCQkJ
DQorCQkJaWYgKCRCeXRlcyA8PSAxMDI0MCkgew0KKwkJCQkkU2l6ZURpc3Rb
MF17J051bSd9Kys7DQorCQkJCSRTaXplRGlzdFswXXsnQnl0ZXMnfSArPSAk
Qnl0ZXM7DQorCQkJfSBlbHNpZiAoJEJ5dGVzIDw9IDIwNDgwKSB7DQorCQkJ
CSRTaXplRGlzdFsxXXsnTnVtJ30rKzsNCisJCQkJJFNpemVEaXN0WzFdeydC
eXRlcyd9ICs9ICRCeXRlczsNCisJCQl9IGVsc2lmICgkQnl0ZXMgPD0gNTEy
MDApIHsNCisJCQkJJFNpemVEaXN0WzJdeydOdW0nfSsrOw0KKwkJCQkkU2l6
ZURpc3RbMl17J0J5dGVzJ30gKz0gJEJ5dGVzOw0KKwkJCX0gZWxzaWYgKCRC
eXRlcyA8PSAxMDI0MDApIHsNCisJCQkJJFNpemVEaXN0WzNdeydOdW0nfSsr
Ow0KKwkJCQkkU2l6ZURpc3RbM117J0J5dGVzJ30gKz0gJEJ5dGVzOw0KKwkJ
CX0gZWxzaWYgKCRCeXRlcyA8PSA1MTIwMDApIHsNCisJCQkJJFNpemVEaXN0
WzRdeydOdW0nfSsrOw0KKwkJCQkkU2l6ZURpc3RbNF17J0J5dGVzJ30gKz0g
JEJ5dGVzOw0KKwkJCX0gZWxzaWYgKCRCeXRlcyA8PSAxMDQ4NTc2KSB7DQor
CQkJCSRTaXplRGlzdFs1XXsnTnVtJ30rKzsNCisJCQkJJFNpemVEaXN0WzVd
eydCeXRlcyd9ICs9ICRCeXRlczsNCisJCQl9IGVsc2lmICgkQnl0ZXMgPD0g
MjA5NzE1Mikgew0KKwkJCQkkU2l6ZURpc3RbNl17J051bSd9Kys7DQorCQkJ
CSRTaXplRGlzdFs2XXsnQnl0ZXMnfSArPSAkQnl0ZXM7DQorCQkJfSBlbHNp
ZiAoJEJ5dGVzIDw9IDUyNDI4ODApIHsNCisJCQkJJFNpemVEaXN0WzddeydO
dW0nfSsrOw0KKwkJCQkkU2l6ZURpc3RbN117J0J5dGVzJ30gKz0gJEJ5dGVz
Ow0KKwkJCX0gZWxzaWYgKCRCeXRlcyA8PSAxMDQ4NTc2MCkgew0KKwkJCQkk
U2l6ZURpc3RbOF17J051bSd9Kys7DQorCQkJCSRTaXplRGlzdFs4XXsnQnl0
ZXMnfSArPSAkQnl0ZXM7DQorCQkJfSBlbHNlIHsNCisJCQkJJFNpemVEaXN0
WzldeydOdW0nfSsrOw0KKwkJCQkkU2l6ZURpc3RbOV17J0J5dGVzJ30gKz0g
JEJ5dGVzOw0KKwkJCX0NCisJCX0NCiANCiAgICAgICAjIEFkZCBUaGUgbWVz
c2FnZSB0byBhIGhhc2ggZm9yIGxhdGVyIHBlci1kb21haW4gYW5hbHlzaXMu
DQogICAgICAgJE1zZ3N7JFF1ZXVlSUR9eyJSZWxheSJ9ID0gJFJlbGF5SG9z
dDsNCkBAIC0zMDUsNyArMzA1LDcgQEANCiAgICAjaDJHSHRTeDMwOTI2OiBT
WVNFUlIocm9vdCk6IFRvbyBtYW55IGhvcHMgMjYgKDI1IG1heCk6IGZyb20g
PE1BSUxFUi1EQUVNT05AYXRidXNpbmVzcy5jb20+IHZpYSBsb2NhbGhvc3Qs
IHRvIDxzdXBlcnN0b3JlQGJwc21haWxlci5jb20+DQogICAgfSBlbHNpZiAo
ICgkVGVtcCkgID0gKCRUaGlzTGluZSA9fiAvXi4qP1RvbyBtYW55IGhvcHMg
KC4qKS8pICkgew0KICAgICAgICAkVG9vTWFueUhvcHN7JFRlbXB9Kys7DQot
ICAgfSBlbHNpZiAoICgkV2FybmluZykgID0gKCRUaGlzTGluZSA9fiAvQXV0
aGVudGljYXRpb24tV2FybmluZzogW14gXSs6IChbXiBdKyBzZXQgc2VuZGVy
IHRvICBbXiBdKyB1c2luZyAtZnwuKyBkaWRuXCd0IHVzZSBIRUxPIHByb3Rv
Y29sfFteIF0rIG93bmVkIHByb2Nlc3MgZG9pbmcgLWJzKS8pICkgew0KKyAg
IH0gZWxzaWYgKCAoJFdhcm5pbmcpICA9ICgkVGhpc0xpbmUgPX4gL0F1dGhl
bnRpY2F0aW9uLVdhcm5pbmc6IFteIF0rOiAoW14gXSsgc2V0IHNlbmRlciB0
byAoIHwpW14gXSsgdXNpbmcgLWZ8LisgZGlkblwndCB1c2UgSEVMTyBwcm90
b2NvbHxbXiBdKyBvd25lZCBwcm9jZXNzIGRvaW5nIC1icykvKSApIHsNCiAg
ICAgICAkQXV0aFdhcm5zeyRXYXJuaW5nfSsrOw0KICAgIH0gZWxzaWYgKCAo
JEZvcndhcmQsJEVycm9yKSA9ICgkVGhpc0xpbmUgPX4gL15mb3J3YXJkIChb
XiBdKik6IHRyYW5zaWVudCBlcnJvcjogKC4qKSQvKSApIHsNCiAgICAgICAk
VGVtcCA9ICRGb3J3YXJkIC4gIjogIiAuICRFcnJvcjsNCkBAIC0zMTksNyAr
MzE5LDcgQEANCiAgICB9IGVsc2lmICggJFRoaXNMaW5lID1+IG0vKHJldHVy
biB0byBzZW5kZXJ8c2VuZGVyIG5vdGlmeSk6IENhbm5vdCBzZW5kIG1lc3Nh
Z2UgZm9yIChcZCkgZGF5cy8gKSB7DQogICAgICAgJE51bURheXMgPSAkMjsN
CiAgICAgICAkRGF5c1JldHVybnMrKzsNCi0gICB9IGVsc2lmICggKCAkTk9R
VUVVRSApID0gKCRUaGlzTGluZSA9fiAvXFsoWzAtOV0rXC5bMC05XStcLlsw
LTldK1wuWzAtOV0rKVxdIChcKG1heSBiZSBmb3JnZWRcKSB8KWRpZCBub3Qg
aXNzdWUgTUFJTFwvRVhQTlwvVlJGWVwvRVRSTiBkdXJpbmcgY29ubmVjdGlv
biB0byBNVEEvKSApIHsNCisgICB9IGVsc2lmICggKCAkTk9RVUVVRSApID0g
KCRUaGlzTGluZSA9fiAvXFsoWzAtOV0rXC5bMC05XStcLlswLTldK1wuWzAt
OV0rKVxdIChcKG1heSBiZSBmb3JnZWRcKSB8KWRpZCBub3QgaXNzdWUgTUFJ
TFwvRVhQTlwvVlJGWVwvRVRSTiBkdXJpbmcgY29ubmVjdGlvbiB0byAoTVRB
fERhZW1vbjApLykgKSB7DQogICAgICAgJE5vcXVldWVyc3skTk9RVUVVRX0r
KzsNCiAgICB9IGVsc2lmICgkVGhpc0xpbmU9fiAvcmVsYXk9KFxTKykqLipc
WyhcZCsuXGQrLlxkKy5cZCspXF0sIHJlamVjdD00NDQgNC40LjQgXDwoW15c
Pl0rKVw+Li4uIFNvcnJ5IChcUyopLykgew0KICAgICAgIGNob21wKCRob3N0
PSQyLiIgIi4gKGRlZmluZWQoJDEpID8gIigiLiQxLiIpIiA6ICIodW5yZXNv
bHZlZCkiKSApOw0KQEAgLTM2OCwxMyArMzY4LDE1IEBADQogICAgICAgJFJl
dHVyblJlY2VpcHQrKzsNCiAgICB9IGVsc2lmICgkVGhpc0xpbmU9fiAvUmVt
b3RlIHByb3RvY29sIGVycm9yLykgew0KICAgICAgICRSZW1vdGVQcm90b2Nv
bEVycm9yKys7DQotICAgfSBlbHNlIHsNCi0gICAgICAkVGhpc0xpbmUgPX4g
cy8uKlw6IChEU05cOiAuKikvJDEvOyAgIA0KLSAgICAgICRUaGlzTGluZSA9
fiBzLy4qXDogKHBvc3RtYXN0ZXIgbm90aWZ5XDogLiopLyQxLzsNCi0gICAg
ICBjaG9tcCgkVGhpc0xpbmUpOw0KLSAgICAgICMgUmVwb3J0IGFueSB1bm1h
dGNoZWQgZW50cmllcy4uLg0KLSAgICAgICRPdGhlckxpc3R7JFRoaXNMaW5l
fSsrOyANCi0gICB9DQorICB9IGVsc2lmICggKCRIb3N0LCRBdHRhY2spID0g
KCRUaGlzTGluZSA9fiAvUE9TU0lCTEUgQVRUQUNLIGZyb20gKFteIF0rKTog
KFteIF0rKSQvKSApIHsNCisJICAkQXR0YWNrQXR0ZW1wdHskSG9zdH17JEF0
dGFja30rKzsNCisgIH0gZWxzZSB7DQorCSAgJFRoaXNMaW5lID1+IHMvLipc
OiAoRFNOXDogLiopLyQxLzsNCisJICAkVGhpc0xpbmUgPX4gcy8uKlw6IChw
b3N0bWFzdGVyIG5vdGlmeVw6IC4qKS8kMS87DQorCSAgY2hvbXAoJFRoaXNM
aW5lKTsNCisJICAjIFJlcG9ydCBhbnkgdW5tYXRjaGVkIGVudHJpZXMuLi4N
CisJICAkT3RoZXJMaXN0eyRUaGlzTGluZX0rKzsgDQorICB9DQogfQ0KIA0K
IGlmICgkTXNnc1NlbnQgPiAwKSB7DQpAQCAtNDIwLDcgKzQyMiwxOCBAQA0K
IH0NCiANCiBpZigkUmV0dXJuUmVjZWlwdCA+IDApIHsNCi0gICBwcmludCAi
XG5cbiIgLiAkUmV0dXJuUmVjZWlwdCAuICIgUmV0dXJuIFJlY2VpcHQncyI7
DQorCXByaW50ICJcblxuIiAuICRSZXR1cm5SZWNlaXB0IC4gIiBSZXR1cm4g
UmVjZWlwdCdzIjsNCit9DQorDQoraWYgKGtleXMgJUF0dGFja0F0dGVtcHQp
IHsNCisJcHJpbnQgIlxuV0FSTklORyEhISFcbiI7DQorCXByaW50ICJQb3Nz
aWJsZSBBdHRhY2s6XG4iOw0KKwlmb3JlYWNoICRIb3N0IChzb3J0IHskYSBj
bXAgJGJ9IGtleXMgJUF0dGFja0F0dGVtcHQpIHsNCisJCXByaW50ICIgICBB
dHRlbXB0IGZyb20gJEhvc3Qgd2l0aDpcbiI7DQorCQlmb3JlYWNoICRBdHRh
Y2sgKHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAleyRBdHRhY2tBdHRlbXB0eyRI
b3N0fX0pIHsNCisJCQlwcmludCAiICAgICAgJEF0dGFjayA6ICRBdHRhY2tB
dHRlbXB0eyRIb3N0fXskQXR0YWNrfSBUaW1lKHMpXG4iOw0KKwkJfQ0KKwl9
DQogfQ0KIA0KIGlmICgoJERldGFpbCA+PSAxMCkgYW5kIChrZXlzICVMb2Nh
bERvbWFpbnMpKSB7DQpAQCAtNzI5LDMgKzc0Miw0IEBADQogDQogZXhpdCgw
KTsNCiANCisjIHZpOiBzaGlmdHdpZHRoPTQgdGFic3RvcD00DQpJbmRleDog
c2NyaXB0cy9zZXJ2aWNlcy9zc2hkDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQpSQ1MgZmlsZTogL3Zhci9jdnMvbG9nd2F0Y2gvc2NyaXB0cy9zZXJ2aWNl
cy9zc2hkLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMA0KZGlmZiAtdSAt
cjEuMzAgc3NoZA0KLS0tIHNjcmlwdHMvc2VydmljZXMvc3NoZAkzIE5vdiAy
MDAzIDE0OjMwOjQwIC0wMDAwCTEuMzANCisrKyBzY3JpcHRzL3NlcnZpY2Vz
L3NzaGQJMjYgTm92IDIwMDMgMDc6NDk6NDAgLTAwMDANCkBAIC0xOCwzMCAr
MTgsMzAgQEANCiANCiAjIEF2b2lkICJVc2Ugb2YgdW5pbml0aWFsaXplZCB2
YWx1ZSIgd2FybmluZyBtZXNzYWdlcy4NCiBzdWIgVmFsdWVPckRlZmF1bHQg
ew0KLSAgIG15ICgkdmFsdWUsICRkZWZhdWx0KSA9IEBfOw0KLSAgIHJldHVy
biAoJHZhbHVlID8gJHZhbHVlIDogJGRlZmF1bHQpOw0KKwlteSAoJHZhbHVl
LCAkZGVmYXVsdCkgPSBAXzsNCisJcmV0dXJuICgkdmFsdWUgPyAkdmFsdWUg
OiAkZGVmYXVsdCk7DQogfQ0KIA0KICMgTm8gc2Vuc2UgaW4gcnVubmluZyBp
ZiAnc3NoZCcgZG9lc24ndCBldmVuIGV4aXN0IG9uIHRoaXMgc3lzdGVtLi4u
DQogdW5sZXNzICgoIC1mICIvdXNyL3NiaW4vc3NoZCIgKSBvciAoIC1mICIv
dXNyL2xvY2FsL3NiaW4vc3NoZCIpKSB7DQotICAgZXhpdCAoMCk7DQorCWV4
aXQgKDApOw0KIH0NCiANCiBteSAkc2Z0cFJlcXVlc3RzID0gMDsNCiANCiBp
ZiAoICREZWJ1ZyA+PSA1ICkgew0KLSAgIHByaW50IFNUREVSUiAiXG5cbkRF
QlVHOiBJbnNpZGUgU1NIRCBGaWx0ZXIgXG5cbiI7DQotICAgJERlYnVnQ291
bnRlciA9IDE7DQorCXByaW50IFNUREVSUiAiXG5cbkRFQlVHOiBJbnNpZGUg
U1NIRCBGaWx0ZXIgXG5cbiI7DQorCSREZWJ1Z0NvdW50ZXIgPSAxOw0KIH0N
CiANCiB3aGlsZSAoZGVmaW5lZCgkVGhpc0xpbmUgPSA8U1RESU4+KSkgew0K
LSAgIGlmICggJERlYnVnID49IDUgKSB7DQotICAgICAgcHJpbnQgU1RERVJS
ICJERUJVRygkRGVidWdDb3VudGVyKTogJFRoaXNMaW5lIjsNCi0gICAgICAk
RGVidWdDb3VudGVyKys7DQotICAgfQ0KLSAgIGNob21wKCRUaGlzTGluZSk7
DQotICAgaWYgKCANCi0gICAgICAgICgkVGhpc0xpbmUgPX4gbS9eY29ubmVj
dCBmcm9tIFxkK1wuXGQrXC5cZCtcLlxkKy8pIG9yIA0KKwlpZiAoICREZWJ1
ZyA+PSA1ICkgew0KKwkJcHJpbnQgU1RERVJSICJERUJVRygkRGVidWdDb3Vu
dGVyKTogJFRoaXNMaW5lIjsNCisJCSREZWJ1Z0NvdW50ZXIrKzsNCisJfQ0K
KwljaG9tcCgkVGhpc0xpbmUpOw0KKwlpZiAoIA0KKwkJKCRUaGlzTGluZSA9
fiBtL15jb25uZWN0IGZyb20gXGQrXC5cZCtcLlxkK1wuXGQrLykgb3IgDQog
ICAgICAgICAoJFRoaXNMaW5lID1+IG0vUmVhZCBmcm9tIHNvY2tldCBmYWls
ZWQvKQ0KICAgICAgICkgew0KICAgICAgICMgSWdub3JlIHRoZXNlDQpAQCAt
NTAsMTYgKzUwLDE2IEBADQogICAgICAgICAgcHJpbnQgU1RERVJSICJERUJV
RzogRm91bmQgLSQyIGxvZ2dlZCBpbiBmcm9tICQzIHVzaW5nICQxXG4iOw0K
ICAgICAgIH0NCiAgICAgICBpZiAoJERldGFpbCA+PSAyMCkgew0KLQkgICRV
c2Vyc3skMn17JDN9eyQxfSsrOw0KLSAgICAgIH0gZWxzZSB7DQotCSAgJFVz
ZXJzeyQyfXskM317IihhbGwpIn0rKzsNCi0gICAgICB9DQotICAgfSBlbHNp
ZiAoICRUaGlzTGluZSA9fiBtL15GYWlsZWQgKFxTKykgZm9yIChcUyspIGZy
b20gKFtcZC5dKykgcG9ydCAoXGQrKS8gKSB7ICNvcGVuc3NoDQorCQkgICRV
c2Vyc3skMn17JDN9eyQxfSsrOw0KKwkgIH0gZWxzZSB7DQorCQkgICRVc2Vy
c3skMn17JDN9eyIoYWxsKSJ9Kys7DQorCSAgfQ0KKyAgIH0gZWxzaWYgKCAk
VGhpc0xpbmUgPX4gbS9eRmFpbGVkIChcUyspIGZvciAoXFMrKSBmcm9tIChb
XiBdKykgcG9ydCAoXGQrKS8gKSB7ICNvcGVuc3NoDQogICAgICAgaWYgKCAk
RGVidWcgPj0gNSApIHsNCiAgICAgICAgICBwcmludCBTVERFUlIgIkRFQlVH
OiBGb3VuZCAtRmFpbGVkIGxvZ2luLSBsaW5lXG4iOw0KICAgICAgIH0NCiAg
ICAgICAkQmFkTG9naW5zeyIkMi8kMSBmcm9tICQzIn0rKzsNCi0gICB9IGVs
c2lmICggJFRoaXNMaW5lID1+IG0vXkZhaWxlZCAoXFMrKSBmb3IgaWxsZWdh
bCB1c2VyIChcUyspIGZyb20gKFtcZC5dKykgcG9ydCAoXGQrKS8gKSB7ICNv
cGVuc3NoDQorICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiBtL15GYWlsZWQg
KFxTKykgZm9yIGlsbGVnYWwgdXNlciAoXFMrKSBmcm9tIChbXiBdKykgcG9y
dCAoXGQrKS8gKSB7ICNvcGVuc3NoDQogICAgICAgJEJhZExvZ2luc3siJDIv
JDEgZnJvbSAkMyJ9Kys7DQogICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiBt
L15JbGxlZ2FsIHVzZXIgKFxTKykgZnJvbSAoW1xkLl0rKS8gKSB7ICNyZWRo
YXQgdGhpbmcNCiAgICAgICAkSWxsZWdhbFVzZXJzeyIkMS9ub25lIGZyb20g
JDIifSsrOw0KQEAgLTkxLDcgKzkxLDcgQEANCiAgICB9IGVsc2lmICgkVGhp
c0xpbmUgPX4gbS9eRGlzY29ubmVjdGluZzogQ29tbWFuZCB0ZXJtaW5hdGVk
IG9uIHNpZ25hbCBcZCsvKSB7DQogICAgICAgIyBvcGVuc3NoIGVtaXRzIHRo
c2UsIGJ1dCB0aGV5J3JlIG5vdCBraWxscywgb2RkbHkuDQogICAgfQ0KLSAg
IGVsc2lmICggJFRoaXNMaW5lID1+IG0vXihsb2c6ICk/U2VydmVyIGxpc3Rl
bmluZyBvbiggW1xkXC5dKyk/IHBvcnQgXGQrLyApIHsgI3NzaC9vcGVuc3No
DQorICAgZWxzaWYgKCAkVGhpc0xpbmUgPX4gbS9eKGxvZzogKT9TZXJ2ZXIg
bGlzdGVuaW5nIG9uKCBbXiBdKyk/IHBvcnQgXGQrLyApIHsgI3NzaC9vcGVu
c3NoDQogICAgICAgJFN0YXJ0cysrOw0KICAgICAgIGlmICggJERlYnVnID49
IDUgKSB7DQogICAgICAgICAgcHJpbnQgU1RERVJSICJERUJVRzogRm91bmQg
LUxpc3RlbmluZyBvbiBwb3J0IDIyLSBsaW5lXG4iOw0KQEAgLTI0MiwzICsy
NDIsNCBAQA0KIA0KIGV4aXQoMCk7DQogDQorIyB2aTogc2hpZnR3aWR0aD00
IHRhYnN0b3A9NA0K

---1059782324-2135595585-1069680714=:29545--