[PATCH 1/2] maint: Switch bootstrap to use a submodule

Eric Blake via M4-patches <[email protected]> Fri, 4 Apr 2025 11:47:19 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
VXBzdHJlYW0gZGV2ZWxvcG1lbnQgb24gYm9vdHN0cmFwIG5vdyBmYXZvcnMgdXNlIG9mIGEgZ2l0
IHN1Ym1vZHVsZSwKcmF0aGVyIHRoYW4gbWFudWFsbHkgY29weWluZyBpbiBmaWxlcyB0byB0aGUg
ZXhpc3RpbmcgZ2wvIG92ZXJyaWRlCihhbHRob3VnaCBnbC8gcmVtYWlucyBhdmFpbGFibGUgZm9y
IG90aGVyIGdudWxpYiBvdmVycmlkZXMpLiAgVXBkYXRlCnRvIHRoZSBuZXdlc3QgZ251bGliLCB0
byBwdWxsIGluIHNldmVyYWwgZml4ZXMuCgoqIC5naXRtb2R1bGVzOiBBZGQgZ2wtbW9kL2Jvb3Rz
dHJhcCBhcyBhIHN1Ym1vZHVsZS4KKiBnbC1tb2QvYm9vdHN0cmFwOiBOZXcgZ2l0IHN1Ym1vZHVs
ZS4KKiBib290c3RyYXA6IFJlZ2VuZXJhdGUuCiogbTQvZ251bGliLWNhY2hlLm00OiBMaWtld2lz
ZS4KKiBib290c3RyYXAuY29uZiAoZ251bGliX25vbl9tb2R1bGVfZmlsZXMpOiBEcm9wLgoobG9j
YWxfZ2xfcGF0aCwgZ251bGliX2dpdF9zdWJtb2R1bGVzKTogVXBkYXRlIHRvIHVzZSBzdWJtb2R1
bGUgaW5zdGVhZC4KKiBnbC8qOiBSZW1vdmUgZmlsZXMgdGhhdCB1c2VkIHRvIGJlIGhhbmQtY29w
aWVkIGZyb20gYm9vdHN0cmFwIHByb2plY3QuCi0tLQogLmdpdG1vZHVsZXMgICAgICAgICAgICAg
ICAgIHwgICAgMyArCiBib290c3RyYXAgICAgICAgICAgICAgICAgICAgfCAgIDM4ICstCiBib290
c3RyYXAuY29uZiAgICAgICAgICAgICAgfCAgIDEzICstCiBnbC1tb2QvYm9vdHN0cmFwICAgICAg
ICAgICAgfCAgICAxICsKIGdsL2J1aWxkLWF1eC9ib290c3RyYXAuaW4gICB8IDI4MzUgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGdsL2J1aWxkLWF1eC9leHRyYWN0LXRyYWNl
ICB8ICA0ODYgLS0tLS0tCiBnbC9idWlsZC1hdXgvZnVuY2xpYi5zaCAgICAgfCAxNDY1IC0tLS0t
LS0tLS0tLS0tLS0tLQogZ2wvYnVpbGQtYXV4L2lubGluZS1zb3VyY2UgIHwgIDE1OSAtLQogZ2wv
YnVpbGQtYXV4L29wdGlvbnMtcGFyc2VyIHwgIDY4NSAtLS0tLS0tLS0KIGdsL2RvYy9ib290c3Ry
YXAudGV4aSAgICAgICB8ICA0ODIgLS0tLS0tCiBnbC9tb2R1bGVzL2Jvb3RzdHJhcCAgICAgICAg
fCAgIDIzIC0KIGdsL21vZHVsZXMvZXh0cmFjdC10cmFjZSAgICB8ICAgMjEgLQogZ2wvbW9kdWxl
cy9mdW5jbGliLnNoICAgICAgIHwgICAxOSAtCiBnbC9tb2R1bGVzL2lubGluZS1zb3VyY2UgICAg
fCAgIDIxIC0KIGdsL21vZHVsZXMvb3B0aW9ucy1wYXJzZXIgICB8ICAgMjAgLQogbTQvZ251bGli
LWNhY2hlLm00ICAgICAgICAgIHwgICAgNSArLQogMTYgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0
aW9ucygrKSwgNjI0NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDE2MDAwMCBnbC1tb2QvYm9v
dHN0cmFwCiBkZWxldGUgbW9kZSAxMDA3NTUgZ2wvYnVpbGQtYXV4L2Jvb3RzdHJhcC5pbgogZGVs
ZXRlIG1vZGUgMTAwNzU1IGdsL2J1aWxkLWF1eC9leHRyYWN0LXRyYWNlCiBkZWxldGUgbW9kZSAx
MDA2NDQgZ2wvYnVpbGQtYXV4L2Z1bmNsaWIuc2gKIGRlbGV0ZSBtb2RlIDEwMDc1NSBnbC9idWls
ZC1hdXgvaW5saW5lLXNvdXJjZQogZGVsZXRlIG1vZGUgMTAwNjQ0IGdsL2J1aWxkLWF1eC9vcHRp
b25zLXBhcnNlcgogZGVsZXRlIG1vZGUgMTAwNzU1IGdsL2RvYy9ib290c3RyYXAudGV4aQogZGVs
ZXRlIG1vZGUgMTAwNjQ0IGdsL21vZHVsZXMvYm9vdHN0cmFwCiBkZWxldGUgbW9kZSAxMDA2NDQg
Z2wvbW9kdWxlcy9leHRyYWN0LXRyYWNlCiBkZWxldGUgbW9kZSAxMDA2NDQgZ2wvbW9kdWxlcy9m
dW5jbGliLnNoCiBkZWxldGUgbW9kZSAxMDA2NDQgZ2wvbW9kdWxlcy9pbmxpbmUtc291cmNlCiBk
ZWxldGUgbW9kZSAxMDA2NDQgZ2wvbW9kdWxlcy9vcHRpb25zLXBhcnNlcgoKZGlmZiAtLWdpdCBh
Ly5naXRtb2R1bGVzIGIvLmdpdG1vZHVsZXMKaW5kZXggOTk5M2Y1NTIuLjUzOGIwNjc4IDEwMDY0
NAotLS0gYS8uZ2l0bW9kdWxlcworKysgYi8uZ2l0bW9kdWxlcwpAQCAtMSwzICsxLDYgQEAKIFtz
dWJtb2R1bGUgImdudWxpYiJdCiAgICAgICAgIHBhdGggPSBnbnVsaWIKICAgICAgICAgdXJsID0g
aHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXQvZ251bGliLmdpdAorW3N1Ym1vZHVsZSAi
Z2wtbW9kL2Jvb3RzdHJhcCJdCisJcGF0aCA9IGdsLW1vZC9ib290c3RyYXAKKwl1cmwgPSBodHRw
czovL2dpdGh1Yi5jb20vZ251bGliLW1vZHVsZXMvYm9vdHN0cmFwLmdpdApkaWZmIC0tZ2l0IGEv
Ym9vdHN0cmFwIGIvYm9vdHN0cmFwCmluZGV4IGNlMTIzNWM4Li5jMjE0NDU3NiAxMDA3NTUKLS0t
IGEvYm9vdHN0cmFwCisrKyBiL2Jvb3RzdHJhcApAQCAtOSwxMSArOSwxMSBAQAogIyBUaGlzIGlz
IGZyZWUgc29mdHdhcmUuICBUaGVyZSBpcyBOTyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yCiAjIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KICMKLSMg
Q29weXJpZ2h0IChDKSAyMDEwLTIwMTksIDIwMjEsIDIwMjMgQm9vdHN0cmFwIEF1dGhvcnMKKyMg
Q29weXJpZ2h0IChDKSAyMDEwLTIwMTksIDIwMjEsIDIwMjMtMjAyNCBCb290c3RyYXAgQXV0aG9y
cwogIwogIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IE1JVCBsaWNlbnNlCiAjIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGFu
ZCBHUEwgdmVyc2lvbiAyIG9yIGxhdGVyCi0jIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv
Z3BsLTIuMC5odG1sPi4gIFlvdSBtdXN0IGFwcGx5IG9uZSBvZgorIyA8aHR0cHM6Ly93d3cuZ251
Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWw+LiAgWW91IG11c3QgYXBwbHkgb25lIG9mCiAjIHRo
ZXNlIGxpY2Vuc2VzIHdoZW4gdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhpcyBzb2Z0d2FyZSBv
ciBhbnkgb2YKICMgdGhlIGZpbGVzIHdpdGhpbiBpdC4gIFNlZSB0aGUgVVJMcyBhYm92ZSwgb3Ig
dGhlIGZpbGUgYExJQ0VOU0VgCiAjIGluY2x1ZGVkIGluIHRoZSBCb290c3RyYXAgZGlzdHJpYnV0
aW9uIGZvciB0aGUgZnVsbCBsaWNlbnNlIHRleHRzLgpAQCAtNDgsMTIgKzQ4LDEyIEBACiAjICAg
Z2wvYnVpbGQtYXV4L2lubGluZS1zb3VyY2UgZ2wvYnVpbGQtYXV4L2Jvb3RzdHJhcC5pbiA+IGJv
b3RzdHJhcAogIwogIyBZb3Ugc2hvdWxkIHRoZW4gc3RvcmUgdGhhbiBzY3JpcHQgaW4gdmVyc2lv
biBjb250cm9sIGZvciBvdGhlcgotIyBkZXZlbG9wZXJzIGluIHlvdSBwcm9qZWN0LiAgSXQgd2ls
bCBnaXZlIHlvdSBpbnN0cnVjdGlvbnMgYWJvdXQKKyMgZGV2ZWxvcGVycyBpbiB5b3VyIHByb2pl
Y3QuICBJdCB3aWxsIGdpdmUgeW91IGluc3RydWN0aW9ucyBhYm91dAogIyBob3cgdG8ga2VlcCBp
dCB1cCB0byBkYXRlIGlmIHRoZSBzb3VyY2VzIGNoYW5nZS4KICMKICMgU2VlIGdsL2RvYy9ib290
c3RyYXAudGV4aSBmb3IgZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gd3JpdGUKICMgYSBib290c3Ry
YXAuY29uZiB0byBjdXN0b21pemUgaXQgZm9yIHlvdXIgcHJvamVjdCdzCi0jIGlkaW9zeW5jcmFj
aWVzLgorIyBpZGlvc3luY3Jhc2llcy4KCgogIyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMjCkBAIC0xOTIsNyArMTky
LDcgQEAgZXh0cmFfbG9jYWxlX2NhdGVnb3JpZXM9CgogIyBBZGRpdGlvbmFsIHhnZXR0ZXh0IG9w
dGlvbnMgdG8gdXNlLiAgR251bGliIG1pZ2h0IHByb3ZpZGUgeW91IHdpdGggYW4KICMgZXh0ZW5z
aXZlIGxpc3Qgb2YgYWRkaXRpb25hbCBvcHRpb25zIHRvIGFwcGVuZCB0byB0aGlzLCBidXQgZ2V0
dGV4dAotIyAwLjE2LjEgYW5kIG5ld2VyIGFwcGVuZHMgdGhlbSBhdXRvbWF0aWNhbHksIHNvIHlv
dSBjYW4gc2FmZWx5IGlnbm9yZQorIyAwLjE2LjEgYW5kIG5ld2VyIGFwcGVuZHMgdGhlbSBhdXRv
bWF0aWNhbGx5LCBzbyB5b3UgY2FuIHNhZmVseSBpZ25vcmUKICMgdGhlIGNvbXBsYWludHMgZnJv
bSAnZ251bGliLXRvb2wnIGlmIHlvdXIgJGNvbmZpZ3VyZV9hYyBzdGF0ZXM6CiAjCiAjICAgIEFN
X0dOVV9HRVRURVhUX1ZFUlNJT04oWzAuMTYuMV0pCkBAIC0yMzUsMTEgKzIzNSwxMSBAQCBzY3Jp
cHR2ZXJzaW9uPTIwMTktMDItMTkuMTU7ICMgVVRDCiAjIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZS4g
IFRoZXJlIGlzIE5PIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IKICMgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgogIwotIyBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxOSwgMjAyMSwgMjAyMyBCb290c3RyYXAgQXV0aG9ycworIyBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxOSwgMjAyMSwgMjAyMy0yMDI0IEJvb3RzdHJhcCBBdXRob3JzCiAjCiAjIFRoaXMgZmls
ZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2UKICMg
PGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYW5kIEdQTCB2ZXJzaW9uIDIg
b3IgbGF0ZXIKLSMgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWw+LiAg
WW91IG11c3QgYXBwbHkgb25lIG9mCisjIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dw
bC0yLjAuaHRtbD4uICBZb3UgbXVzdCBhcHBseSBvbmUgb2YKICMgdGhlc2UgbGljZW5zZXMgd2hl
biB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGlzIHNvZnR3YXJlIG9yIGFueSBvZgogIyB0aGUg
ZmlsZXMgd2l0aGluIGl0LiAgU2VlIHRoZSBVUkxzIGFib3ZlLCBvciB0aGUgZmlsZSBgTElDRU5T
RWAKICMgaW5jbHVkZWQgaW4gdGhlIEJvb3RzdHJhcCBkaXN0cmlidXRpb24gZm9yIHRoZSBmdWxs
IGxpY2Vuc2UgdGV4dHMuCkBAIC03NTIsNyArNzUyLDcgQEAgZnVuY19yZXF1aXJlX3Rlcm1fY29s
b3JzICgpCgogICAjIF9HX0hBVkVfUExVU0VRX09QCiAgICMgQ2FuIGJlIGVtcHR5LCBpbiB3aGlj
aCBjYXNlIHRoZSBzaGVsbCBpcyBwcm9iZWQsICJ5ZXMiIGlmICs9IGlzCi0gICMgdXNlYWJsZSBv
ciBhbnl0aGluZyBlbHNlIGlmIGl0IGRvZXMgbm90IHdvcmsuCisgICMgdXNhYmxlIG9yIGFueXRo
aW5nIGVsc2UgaWYgaXQgZG9lcyBub3Qgd29yay4KICAgdGVzdCAteiAiJF9HX0hBVkVfUExVU0VR
X09QIiBcCiAgICAgJiYgKGV2YWwgJ3g9YTsgeCs9IiBiIjsgdGVzdCAiYSBiIiA9ICIkeCInKSAy
Pi9kZXYvbnVsbCBcCiAgICAgJiYgX0dfSEFWRV9QTFVTRVFfT1A9eWVzCkBAIC05MDIsNyArOTAy
LDcgQEAgZXZhbCAnZnVuY19kaXJuYW1lICgpCiAjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBM
QUNFTUVOVC4KICMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVf
cmVzdWx0IgogIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCi0jICAgICAg
ICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKyMgICAgICAg
ICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKICMgRm9yIGVm
ZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0byB0aGUgZnVuY3Rpb25zIGFib3ZlIGJ1dCBp
bnN0ZWFkCiAjIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgogZXZhbCAnZnVuY19k
aXJuYW1lX2FuZF9iYXNlbmFtZSAoKQpAQCAtMTA2MCw3ICsxMDYwLDcgQEAgZnVuY19ta2Rpcl9w
ICgpCiAgICAgICAjIFdoaWxlIHNvbWUgcG9ydGlvbiBvZiBESVIgZG9lcyBub3QgeWV0IGV4aXN0
Li4uCiAgICAgICB3aGlsZSB0ZXN0ICEgLWQgIiRfR19kaXJlY3RvcnlfcGF0aCI7IGRvCiAgICAg
ICAgICMgLi4ubWFrZSBhIGxpc3QgaW4gdG9wbW9zdCBmaXJzdCBvcmRlci4gIFVzZSBhIGNvbG9u
IGRlbGltaXRlZAotCSMgbGlzdCBpbmNhc2Ugc29tZSBwb3J0aW9uIG9mIHBhdGggY29udGFpbnMg
d2hpdGVzcGFjZS4KKwkjIGxpc3QgaW4gY2FzZSBzb21lIHBvcnRpb24gb2YgcGF0aCBjb250YWlu
cyB3aGl0ZXNwYWNlLgogICAgICAgICBfR19kaXJfbGlzdD0kX0dfZGlyZWN0b3J5X3BhdGg6JF9H
X2Rpcl9saXN0CgogICAgICAgICAjIElmIHRoZSBsYXN0IHBvcnRpb24gYWRkZWQgaGFzIG5vIHNs
YXNoIGluIGl0LCB0aGUgbGlzdCBpcyBkb25lCkBAIC0xNjk5LDExICsxNjk5LDExIEBAIGZ1bmNf
bHRfdmVyICgpCiAjIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZS4gIFRoZXJlIGlzIE5PIHdhcnJhbnR5
OyBub3QgZXZlbiBmb3IKICMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLgogIwotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSwgMjAyMSwgMjAyMyBC
b290c3RyYXAgQXV0aG9ycworIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSwgMjAyMSwgMjAyMy0y
MDI0IEJvb3RzdHJhcCBBdXRob3JzCiAjCiAjIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2UKICMgPGh0dHBzOi8vb3BlbnNvdXJjZS5v
cmcvbGljZW5zZXMvTUlUPiwgYW5kIEdQTCB2ZXJzaW9uIDIgb3IgbGF0ZXIKLSMgPGh0dHA6Ly93
d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWw+LiAgWW91IG11c3QgYXBwbHkgb25lIG9m
CisjIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbD4uICBZb3UgbXVz
dCBhcHBseSBvbmUgb2YKICMgdGhlc2UgbGljZW5zZXMgd2hlbiB1c2luZyBvciByZWRpc3RyaWJ1
dGluZyB0aGlzIHNvZnR3YXJlIG9yIGFueSBvZgogIyB0aGUgZmlsZXMgd2l0aGluIGl0LiAgU2Vl
IHRoZSBVUkxzIGFib3ZlLCBvciB0aGUgZmlsZSBgTElDRU5TRWAKICMgaW5jbHVkZWQgaW4gdGhl
IEJvb3RzdHJhcCBkaXN0cmlidXRpb24gZm9yIHRoZSBmdWxsIGxpY2Vuc2UgdGV4dHMuCkBAIC0y
Mzg0LDExICsyMzg0LDExIEBAIGZ1bmNfdmVyc2lvbiAoKQogIyBUaGlzIGlzIGZyZWUgc29mdHdh
cmUuICBUaGVyZSBpcyBOTyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yCiAjIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KICMKLSMgQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTksIDIwMjEsIDIwMjMgQm9vdHN0cmFwIEF1dGhvcnMKKyMgQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTksIDIwMjEsIDIwMjMtMjAyNCBCb290c3RyYXAgQXV0aG9ycwogIwogIyBUaGlz
IGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNl
CiAjIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGFuZCBHUEwgdmVyc2lv
biAyIG9yIGxhdGVyCi0jIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5odG1s
Pi4gIFlvdSBtdXN0IGFwcGx5IG9uZSBvZgorIyA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNl
cy9ncGwtMi4wLmh0bWw+LiAgWW91IG11c3QgYXBwbHkgb25lIG9mCiAjIHRoZXNlIGxpY2Vuc2Vz
IHdoZW4gdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhpcyBzb2Z0d2FyZSBvciBhbnkgb2YKICMg
dGhlIGZpbGVzIHdpdGhpbiBpdC4gIFNlZSB0aGUgVVJMcyBhYm92ZSwgb3IgdGhlIGZpbGUgYExJ
Q0VOU0VgCiAjIGluY2x1ZGVkIGluIHRoZSBCb290c3RyYXAgZGlzdHJpYnV0aW9uIGZvciB0aGUg
ZnVsbCBsaWNlbnNlIHRleHRzLgpAQCAtMzgzMiw3ICszODMyLDcgQEAgZm9yIHRvb2wgaW4gYXV0
b2NvbmYgbGlidG9vbGl6ZSBhdXRvcG9pbnQ7IGRvCiAgICAgICBfR192ZXJzaW9uPSRmdW5jX2V4
dHJhY3RfdHJhY2VfcmVzdWx0CiAgICAgICB0ZXN0IC1uICIkX0dfdmVyc2lvbiIgJiYgewogICAg
ICAgICBmdW5jX2FwcGVuZCBidWlsZHJlcSAiXAotICAgICAgICAgICAgJyR0b29sJyAkX0dfdmVy
c2lvbiBodHRwOi8vd3d3LmdudS5vcmcvcy8nJGInCisgICAgICAgICAgICAnJHRvb2wnICRfR192
ZXJzaW9uIGh0dHBzOi8vd3d3LmdudS5vcmcvcy8nJGInCiAiCiAgICAgICAgIGZ1bmNfdmVyYm9z
ZSBcCiAgICAgICAgICAgICAiYXV0by1hZGRpbmcgJ1wnJHRvb2wnLSRfR192ZXJzaW9uJ1wnJyB0
byBidWlsZCByZXF1aXJlbWVudHMiCkBAIC0zODY1LDcgKzM4NjUsNyBAQCBmdW5jX3JlcXVpcmVf
YnVpbGRyZXFfYXV0b21ha2UgKCkKICAgICAgICAgdGVzdCAtbiAiJGF1dG9tYWtlX3ZlcnNpb24i
IHx8IGF1dG9tYWtlX3ZlcnNpb249LQoKICAgICAgICAgZnVuY19hcHBlbmQgYnVpbGRyZXEgIlwK
LSAgICAgICAgICAgIGF1dG9tYWtlICRhdXRvbWFrZV92ZXJzaW9uIGh0dHA6Ly93d3cuZ251Lm9y
Zy9zL2F1dG9tYWtlCisgICAgICAgICAgICBhdXRvbWFrZSAkYXV0b21ha2VfdmVyc2lvbiBodHRw
czovL3d3dy5nbnUub3JnL3MvYXV0b21ha2UKICIKICAgICAgICAgZnVuY192ZXJib3NlIFwKICAg
ICAgICAgICAgICJhdXRvLWFkZGluZyAnYXV0b21ha2UtJGF1dG9tYWtlX3ZlcnNpb24nIHRvIGJ1
aWxkIHJlcXVpcmVtZW50cyIKQEAgLTM5MDIsNyArMzkwMiw3IEBAIGZ1bmNfcmVxdWlyZV9idWls
ZHJlcV9wYXRjaCAoKQogICAgICAgICBpZiB0ZXN0ICEgLWQgIiRfR19kaXIiIFwKICAgICAgICAg
ICAgIHx8IGZpbmQgIiRfR19kaXIiIC1uYW1lICIqLmRpZmYiIC1leGVjIGZhbHNlIHt9IFw7IDsg
dGhlbiA6CiAgICAgICAgIGVsc2UKLSAgICAgICAgICBmdW5jX2FwcGVuZCBidWlsZHJlcSAicGF0
Y2ggLSBodHRwOi8vd3d3LmdudS5vcmcvcy9wYXRjaCRubCIKKyAgICAgICAgICBmdW5jX2FwcGVu
ZCBidWlsZHJlcSAicGF0Y2ggLSBodHRwczovL3d3dy5nbnUub3JnL3MvcGF0Y2gkbmwiCiAgICAg
ICAgICAgYnJlYWsKICAgICAgICAgZmkKICAgICAgIGRvbmUKQEAgLTUwODIsNyArNTA4Miw3IEBA
IGZ1bmNfZ2V0X3ZlcnNpb24gKCkKICAgICBfR19hcHA9JDEKCiAgICAgIyBSYXRoZXIgdGhhbiB1
bmNvbW1lbnQgdGhlIHNlZCBzY3JpcHQgaW4tc2l0dSwgc3RyaXAgdGhlIGNvbW1lbnRzCi0gICAg
IyBwcm9ncmFtYXRpY2FsbHkgYmVmb3JlIHBhc3NpbmcgdGhlIHJlc3VsdCB0byAkU0VEIGZvciBl
dmFsdWF0aW9uLgorICAgICMgcHJvZ3JhbW1hdGljYWxseSBiZWZvcmUgcGFzc2luZyB0aGUgcmVz
dWx0IHRvICRTRUQgZm9yIGV2YWx1YXRpb24uCiAgICAgc2VkX2dldF92ZXJzaW9uPWAkRUNITyAn
IyBleHRyYWN0IHZlcnNpb24gd2l0aGluIGxpbmUKICAgICAgICAgICBzfC4qW3YgXVx7MSxcfVwo
WzAtOV1cezEsXH1cLlsuYS16MC05LV0qXCkuKnxcMXwKICAgICAgICAgICB0IGRvbmUKQEAgLTUx
NjQsNyArNTE2NCw3IEBAIGRlbGltaXRlZCBsaXN0IG9mIHRyaXBsZXM7ICdwcm9ncmFtIG1pbi12
ZXJzaW9uIHVybCcuIgogICAgICAgZXNhYwoKICAgICAgICMgSG9ub3IgJEFQUCB2YXJpYWJsZXMg
KCRUQVIsICRBVVRPQ09ORiwgZXRjLikKLSAgICAgIF9HX2FwcHZhcj1gZWNobyAkX0dfYXBwIHx0
ciAnW2Etel0nICdbQS1aXSdgCisgICAgICBfR19hcHB2YXI9YGVjaG8gJF9HX2FwcCB8dHIgJ1th
LXotXScgJ1tBLVpfXSdgCiAgICAgICB0ZXN0IFRBUiA9ICIkX0dfYXBwdmFyIiAmJiBfR19hcHB2
YXI9QU1UQVIKICAgICAgIGV2YWwgIl9HX2FwcD1cJHskX0dfYXBwdmFyLSRfR19hcHB9IgoKZGlm
ZiAtLWdpdCBhL2Jvb3RzdHJhcC5jb25mIGIvYm9vdHN0cmFwLmNvbmYKaW5kZXggYmRhOWNhZDYu
LjExZjA2YzBiIDEwMDY0NAotLS0gYS9ib290c3RyYXAuY29uZgorKysgYi9ib290c3RyYXAuY29u
ZgpAQCAtMSw0ICsxLDQgQEAKLSMgYm9vdHN0cmFwLmNvbmYgKEdOVSBNNCkgdmVyc2lvbiAyMDI1
LTA0LTAyCisjIGJvb3RzdHJhcC5jb25mIChHTlUgTTQpIHZlcnNpb24gMjAyNS0wNC0wNAogIyBX
cml0dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAxMAoKICMgQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE0LCAyMDE2LTIwMTcsIDIwMjAtMjAyNSBGcmVlIFNvZnR3YXJlCkBAIC00NiwxNCArNDYsOSBA
QCBnbnVsaWJfdG9vbF9vcHRpb25zPSRnbnVsaWJfdG9vbF9vcHRpb25zJwogCS0tbm8tbGlidG9v
bAogJwoKLSMgZ251bGliX21vZHVsZXMgbXVzdCByZW1haW4gZW1wdHkgaW4gb3JkZXIgdG8gZ2V0
IC0tdXBkYXRlIHN0eWxlCi0jIGdudWxpYi10b29sIGludm9jYXRpb25zLCBzbyB3ZSBhZGQgdGhl
IGJvb3RzdHJhcCBjb21wb25lbnRzIGhlcmUuCi1nbnVsaWJfbm9uX21vZHVsZV9maWxlcz0kZ251
bGliX25vbl9tb2R1bGVfZmlsZXMiCi0JYnVpbGQtYXV4L2Jvb3RzdHJhcC5pbgotCWJ1aWxkLWF1
eC9leHRyYWN0LXRyYWNlCi0JYnVpbGQtYXV4L2Z1bmNsaWIuc2gKLQlidWlsZC1hdXgvaW5saW5l
LXNvdXJjZQotCWJ1aWxkLWF1eC9vcHRpb25zLXBhcnNlciIKKyMgRmF2b3IgdGhlIGJvb3RzdHJh
cCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9nbnVsaWItbW9kdWxlcy9ib290c3RyYXAKK2xvY2Fs
X2dsX3BhdGg9Z2wtbW9kL2Jvb3RzdHJhcDpnbAorZ251bGliX2dpdF9zdWJtb2R1bGVzPWdsLW1v
ZC9ib290c3RyYXAKCiAjIFdoYXQgaWdub3JlIGZpbGVzIHRvIG1haW50YWluLgogdmNfaWdub3Jl
PSIuY3ZzaWdub3JlIC5naXRpZ25vcmUiCmRpZmYgLS1naXQgYS9nbC1tb2QvYm9vdHN0cmFwIGIv
Z2wtbW9kL2Jvb3RzdHJhcApuZXcgZmlsZSBtb2RlIDE2MDAwMAppbmRleCAwMDAwMDAwMC4uYmZk
Y2MyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9nbC1tb2QvYm9vdHN0cmFwCkBAIC0wLDAgKzEgQEAK
K1N1YnByb2plY3QgY29tbWl0IGJmZGNjMjc3Y2QyMzdmZGUxMTVkM2FhOTcyYWRkNzYwOGQzNDhi
OTAKZGlmZiAtLWdpdCBhL2dsL2J1aWxkLWF1eC9ib290c3RyYXAuaW4gYi9nbC9idWlsZC1hdXgv
Ym9vdHN0cmFwLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA3ODI3YzZhNS4uMDAw
MDAwMDAKLS0tIGEvZ2wvYnVpbGQtYXV4L2Jvb3RzdHJhcC5pbgorKysgL2Rldi9udWxsCkBAIC0x
LDI4MzUgKzAsMCBAQAotIyEgL2Jpbi9zaAotCi0jIEJvb3RzdHJhcCBhbiBBdXRvdG9vbGVkIHBh
Y2thZ2UgZnJvbSBjaGVja2VkLW91dCBzb3VyY2VzLgotIyBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1
Z2hhbiwgMjAxMAotIyBJbnNwaXJlZCBieSBhIHNjcmlwdCB3cml0dGVuIGJ5IFBhdWwgRWdnZXJ0
LgotCi0jIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZS4gIFRoZXJlIGlzIE5PIHdhcnJhbnR5OyBub3Qg
ZXZlbiBmb3IKLSMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOSwgMjAyMSwgMjAyMyBCb290c3Ry
YXAgQXV0aG9ycwotIwotIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIE1JVCBsaWNlbnNlCi0jIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2Vz
L01JVD4sIGFuZCBHUEwgdmVyc2lvbiAyIG9yIGxhdGVyCi0jIDxodHRwOi8vd3d3LmdudS5vcmcv
bGljZW5zZXMvZ3BsLTIuMC5odG1sPi4gIFlvdSBtdXN0IGFwcGx5IG9uZSBvZgotIyB0aGVzZSBs
aWNlbnNlcyB3aGVuIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoaXMgc29mdHdhcmUgb3IgYW55
IG9mCi0jIHRoZSBmaWxlcyB3aXRoaW4gaXQuICBTZWUgdGhlIFVSTHMgYWJvdmUsIG9yIHRoZSBm
aWxlIGBMSUNFTlNFYAotIyBpbmNsdWRlZCBpbiB0aGUgQm9vdHN0cmFwIGRpc3RyaWJ1dGlvbiBm
b3IgdGhlIGZ1bGwgbGljZW5zZSB0ZXh0cy4KLQotIyBZb3Ugc2hvdWxkIHBsYWNlIGEgY29weSBv
ZiB0aGlzIHNjcmlwdCB1bmRlciB2ZXJzaW9uIGNvbnRyb2wgaW4gdGhlCi0jIHRvcC1sZXZlbCBk
aXJlY3Rvcnkgb2YgeW91ciBwcm9qZWN0LiAgVGhlIGludGVudCBpcyB0aGF0IGFsbAotIyBjdXN0
b21pemF0aW9uIGNhbiBiZSBkb25lIHdpdGggYSBgYm9vdHN0cmFwLmNvbmZgIGZpbGUgYWxzbyBt
YWludGFpbmVkCi0jIGluIHlvdXIgdmVyc2lvbiBjb250cm9sLgotCi0jIFBsZWFzZSByZXBvcnQg
YnVncyBvciBwcm9wb3NlIHBhdGNoZXMgdG86Ci0jIDxodHRwczovL2dpdGh1Yi5jb20vZ251bGli
LW1vZHVsZXMvYm9vdHN0cmFwL2lzc3Vlcz4KLQotCi0jIyAtLS0tLS0gIyMKLSMjIFVzYWdlLiAj
IwotIyMgLS0tLS0tICMjCi0KLSMgTW9zdCBHTlVpc2ggcHJvamVjdHMgZG8gbm90IGtlZXAgYWxs
IG9mIHRoZSBnZW5lcmF0ZWQgQXV0b3Rvb2wKLSMgZmlsZXMgdW5kZXIgdmVyc2lvbiBjb250cm9s
LCBidXQgcnVubmluZyBhbGwgb2YgdGhlIHJpZ2h0IHRvb2xzCi0jIHdpdGggdGhlIHJpZ2h0IGFy
Z3VtZW50cywgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgdG8gcmVnZW5lcmF0ZQotIyBhbGwgb2YgdGhv
c2UgZmlsZXMgaW4gcmVhZGluZXNzIGZvciBjb25maWd1cmF0aW9uIGFuZCBidWlsZGluZwotIyBj
YW4gYmUgc3VycHJpc2luZ2x5IGludm9sdmVkISAgTWFueSBwcm9qZWN0cyBoYXZlIGEgJ2Jvb3Rz
dHJhcCcKLSMgc2NyaXB0IHVuZGVyIHZlcnNpb24gY29udHJvbCB0byBpbnZva2UgQXV0b3Rvb2xz
IGFuZCBwZXJmb3JtCi0jIG90aGVyIGFzc29ydGVkIGJvb2sta2VlcGluZyB3aXRoIHZlcnNpb24g
bnVtYmVycyBhbmQgdGhlIGxpa2UuCi0jCi0jIFRoaXMgYm9vdHN0cmFwIHNjcmlwdCBhaW1zIHRv
IHByb2JlIHRoZSBjb25maWd1cmUuYWMgYW5kIHRvcAotIyBNYWtlZmlsZS5hbSBvZiB5b3VyIHBy
b2plY3QgdG8gYXV0b21hdGljYWxseSBkZXRlcm1pbmUgd2hhdAotIyB0aGUgY29ycmVjdCBvcmRl
cmluZyBhbmQgYXJndW1lbnRzIGFyZSBhbmQgdGhlbiBydW4gdGhlIHRvb2xzIGZvcgotIyB5b3Uu
ICBJbiBvcmRlciB0byB1c2UgaXQsIHlvdSBjYW4gZ2VuZXJhdGUgYW4gaW5pdGlhbCBzdGFuZGFs
b25lCi0jIHNjcmlwdCB3aXRoOgotIwotIyAgIGdsL2J1aWxkLWF1eC9pbmxpbmUtc291cmNlIGds
L2J1aWxkLWF1eC9ib290c3RyYXAuaW4gPiBib290c3RyYXAKLSMKLSMgWW91IHNob3VsZCB0aGVu
IHN0b3JlIHRoYW4gc2NyaXB0IGluIHZlcnNpb24gY29udHJvbCBmb3Igb3RoZXIKLSMgZGV2ZWxv
cGVycyBpbiB5b3UgcHJvamVjdC4gIEl0IHdpbGwgZ2l2ZSB5b3UgaW5zdHJ1Y3Rpb25zIGFib3V0
Ci0jIGhvdyB0byBrZWVwIGl0IHVwIHRvIGRhdGUgaWYgdGhlIHNvdXJjZXMgY2hhbmdlLgotIwot
IyBTZWUgZ2wvZG9jL2Jvb3RzdHJhcC50ZXhpIGZvciBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byB3
cml0ZQotIyBhIGJvb3RzdHJhcC5jb25mIHRvIGN1c3RvbWl6ZSBpdCBmb3IgeW91ciBwcm9qZWN0
J3MKLSMgaWRpb3N5bmNyYWNpZXMuCi0KLQotIyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMjCi0jIyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyMKLSMjICAgICBETyBOT1QgRURJVCBUSElTIEZJTEUsIENVU1RPTUlaRSBJVCBVU0lORyBBIEJP
T1RTVFJBUC5DT05GICAgICAjIwotIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjCi0jIyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIyMKLQot
IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgVXNlciBvdmVycmlkYWJs
ZSBjb21tYW5kIHBhdGhzLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj
IwotCi0jIEFsbCB1cHBlcmNhc2UgZGVub3RlcyB2YWx1ZXMgc3RvcmVkIGluIHRoZSBlbnZpcm9u
bWVudC4gIFRoZXNlCi0jIHZhcmlhYmxlcyBzaG91bGQgZ2VuZXJhbGx5IGJlIG92ZXJyaWRkZW4g
YnkgdGhlIHVzZXIgLSBob3dldmVyLCB3ZSBkbwotIyBzZXQgdGhlbSB0byAndHJ1ZScgaW4gc29t
ZSBwYXJ0cyBvZiB0aGlzIHNjcmlwdCB0byBwcmV2ZW50IHRoZW0gYmVpbmcKLSMgY2FsbGVkIGF0
IHRoZSB3cm9uZyB0aW1lIGJ5IG90aGVyIHRvb2xzIHRoYXQgd2UgY2FsbCAoJ2F1dG9yZWNvbmYn
LAotIyBmb3IgZXhhbXBsZSkuCi0jCi0jIFdlIGFsc28gYWxsb3cgJ0xJQlRPT0xJWkUnLCAnTTQn
LCAnU0hBMVNVTScgYW5kIHNvbWUgb3RoZXJzIHRvIGJlCi0jIG92ZXJyaWRkZW4sIGFuZCBleHBv
cnQgdGhlIHJlc3VsdCBmb3IgY2hpbGQgcHJvY2Vzc2VzLCBidXQgdGhleSBhcmUKLSMgaGFuZGxl
ZCBieSB0aGUgZnVuY3Rpb24gJ2Z1bmNfZmluZF90b29sJyBhbmQgbm90IGRlZmF1bHRlZCBpbiB0
aGlzCi0jIHNlY3Rpb24uCi0KLTogJHtBQ0xPQ0FMPSJhY2xvY2FsIn0KLTogJHtBVVRPQ09ORj0i
YXV0b2NvbmYifQotOiAke0FVVE9IRUFERVI9ImF1dG9oZWFkZXIifQotOiAke0FVVE9NNFRFPSJh
dXRvbTR0ZSJ9Ci06ICR7QVVUT0hFQURFUj0iYXV0b2hlYWRlciJ9Ci06ICR7QVVUT01BS0U9ImF1
dG9tYWtlIn0KLTogJHtBVVRPUE9JTlQ9ImF1dG9wb2ludCJ9Ci06ICR7QVVUT1JFQ09ORj0iYXV0
b3JlY29uZiJ9Ci06ICR7Q01QPSJjbXAifQotOiAke0NPTkZJR19TSEVMTD0iL2Jpbi9zaCJ9Ci06
ICR7RElGRj0iZGlmZiJ9Ci06ICR7R0lUPSJnaXQifQotOiAke0xOX1M9ImxuIC1zIn0KLTogJHtS
TT0icm0ifQotCi1leHBvcnQgQUNMT0NBTAotZXhwb3J0IEFVVE9DT05GCi1leHBvcnQgQVVUT0hF
QURFUgotZXhwb3J0IEFVVE9NNFRFCi1leHBvcnQgQVVUT0hFQURFUgotZXhwb3J0IEFVVE9NQUtF
Ci1leHBvcnQgQVVUT1BPSU5UCi1leHBvcnQgQVVUT1JFQ09ORgotZXhwb3J0IENPTkZJR19TSEVM
TAotCi0KLSMjIC0tLS0tLS0tLS0tLS0tICMjCi0jIyBDb25maWd1cmF0aW9uLiAjIwotIyMgLS0t
LS0tLS0tLS0tLS0gIyMKLQotIyBBIG5ld2xpbmUgZGVsaW1pdGVkIGxpc3Qgb2YgdHJpcGxlcyBv
ZiBwcm9ncmFtcyAodGhhdCByZXNwb25kIHRvCi0jIC0tdmVyc2lvbiksIHRoZSBtaW5pbXVtIHZl
cnNpb24gbnVtYmVycyByZXF1aXJlZCAob3IganVzdCAnLScgaW4gdGhlCi0jIHZlcnNpb24gZmll
bGQgaWYgYW55IHZlcnNpb24gd2lsbCBiZSBzdWZmaWNpZW50KSBhbmQgaG9tZXBhZ2UgVVJMcwot
IyB0byBoZWxwIGxvY2F0ZSBtaXNzaW5nIHBhY2thZ2VzLgotYnVpbGRyZXE9Ci0KLSMgTmFtZSBv
ZiBhIGZpbGUgY29udGFpbmluZyBpbnN0cnVjdGlvbnMgb24gaW5zdGFsbGluZyBtaXNzaW5nIHBh
Y2thZ2VzCi0jIHJlcXVpcmVkIGluICdidWlsZHJlcScuCi1idWlsZHJlcV9yZWFkbWU9UkVBRE1F
LWhhY2tpbmcKLQotIyBUaGVzZSBhcmUgZXh0cmFjdGVkIGZyb20gQUNfSU5JVCBpbiBjb25maWd1
cmUuYWMsIHRob3VnaCB5b3UgY2FuCi0jIG92ZXJyaWRlIHRob3NlIHZhbHVlcyBpbiAnYm9vdHN0
cmFwLmNvbmYnIGlmIHlvdSBwcmVmZXIuCi1idWlsZF9hdXg9Ci1tYWNyb19kaXI9Ci1wYWNrYWdl
PQotcGFja2FnZV9uYW1lPQotcGFja2FnZV92ZXJzaW9uPQotcGFja2FnZV9idWdyZXBvcnQ9Ci0K
LSMgVGhlc2UgYXJlIGV4dHJhY3RlZCBmcm9tICdnbnVsaWItY2FjaGUubTQnLCBvciBlbHNlIGZh
bGwtYmFjawotIyBhdXRvbWF0aWNhbGx5IG9uIHRoZSBnbnVsaWIgZGVmYXVsdHM7IHVubGVzcyB5
b3Ugc2V0IHRoZSB2YWx1ZXMKLSMgbWFudWFsbHkgaW4gJ2Jvb3RzdHJhcC5jb25mJy4KLWRvY19i
YXNlPQotZ251bGliX21rPQotZ251bGliX25hbWU9Ci1sb2NhbF9nbF9wYXRoPQotc291cmNlX2Jh
c2U9Ci10ZXN0c19iYXNlPQotCi0jIFRoZSBsaXN0IG9mIGdudWxpYiBtb2R1bGVzIHJlcXVpcmVk
IGF0ICdnbnVsaWItdG9vbCcgdGltZS4gIElmIHlvdQotIyBjaGVjayAnZ251bGliLWNhY2hlLm00
JyBpbnRvIHlvdXIgcmVwb3NpdG9yeSwgdGhlbiB0aGlzIGxpc3Qgd2lsbCBiZQotIyBleHRyYWN0
ZWQgYXV0b21hdGljYWxseS4KLWdudWxpYl9tb2R1bGVzPQotCi0jIEV4dHJhIGdudWxpYiBmaWxl
cyB0aGF0IGFyZSBub3QgaW4gbW9kdWxlcywgd2hpY2ggb3ZlcnJpZGUgZmlsZXMgb2YKLSMgdGhl
IHNhbWUgbmFtZSBpbnN0YWxsZWQgYnkgb3RoZXIgYm9vdHN0cmFwIHRvb2xzLgotZ251bGliX25v
bl9tb2R1bGVfZmlsZXM9IgotICAgICAgICBidWlsZC1hdXgvY29tcGlsZQotICAgICAgICBidWls
ZC1hdXgvaW5zdGFsbC1zaAotICAgICAgICBidWlsZC1hdXgvbWRhdGUtc2gKLSAgICAgICAgYnVp
bGQtYXV4L3RleGluZm8udGV4Ci0gICAgICAgIGJ1aWxkLWF1eC9kZXBjb21wCi0gICAgICAgIGJ1
aWxkLWF1eC9jb25maWcuZ3Vlc3MKLSAgICAgICAgYnVpbGQtYXV4L2NvbmZpZy5zdWIKLSAgICAg
ICAgZG9jL0lOU1RBTEwKLSIKLQotIyBSZWxhdGl2ZSBwYXRoIHRvIHRoZSBsb2NhbCBnbnVsaWIg
c3VibW9kdWxlLCBhbmQgdXJsIHRvIHRoZSB1cHN0cmVhbQotIyBnaXQgcmVwb3NpdG9yeS4gSWYg
eW91IGhhdmUgYSBnbnVsaWIgZW50cnkgaW4geW91ciAuZ2l0bW9kdWxlcyBmaWxlLAotIyB0aGVz
ZSB2YWx1ZXMgYXJlIGlnbm9yZWQuCi1nbnVsaWJfcGF0aD0KLWdudWxpYl91cmw9Ci0KLSMgRGF0
ZSBmcm9tIHdoaWNoIHRvIGNsb25lIGdpdGh1YiwgdG8gYXZvaWQgYSBmdWxsIGNsb25lLgotZ251
bGliX2Nsb25lX3NpbmNlPQotCi0jIEFkZGl0aW9uYWwgZ251bGliLXRvb2wgb3B0aW9ucyB0byB1
c2UuCi1nbnVsaWJfdG9vbF9vcHRpb25zPSIKLSAgICAgICAgLS1uby1jaGFuZ2Vsb2cKLSIKLQot
IyBib290c3RyYXAgcmVtb3ZlcyBhbnkgbWFjcm8tZmlsZXMgdGhhdCBhcmUgbm90IGluY2x1ZGVk
IGJ5IGFjbG9jYWwubTQsCi0jIGV4Y2VwdCBmb3IgZmlsZXMgbGlzdGVkIGluIHRoaXMgdmFyaWFi
bGUgdGhhdCBhcmUgYWx3YXlzIGtlcHQuCi1nbnVsaWJfcHJlY2lvdXM9IgotICAgICAgICBnbnVs
aWItdG9vbC5tNAotIgotCi0jIFdoZW4gdHJ1bmNhdGluZyBsb25nIGNvbW1hbmRzIGZvciBkaXNw
bGF5LCBhbHdheXMgYWxsb3cgYXQgbGVhc3QgdGhpcwotIyBtYW55IGNoYXJhY3RlcnMgYmVmb3Jl
IHRydW5jYXRpbmcuCi1taW5fY21kX2xlbj0xNjAKLQotIyBUaGUgY29tbWFuZCB0byBkb3dubG9h
ZCBhbGwgLnBvIGZpbGVzIGZvciBhIHNwZWNpZmllZCBkb21haW4gaW50bwotIyBhIHNwZWNpZmll
ZCBkaXJlY3RvcnkuICBGaWxsIGluIHRoZSBmaXJzdCAlcyBpcyB0aGUgZG9tYWluIG5hbWUsIGFu
ZAotIyB0aGUgc2Vjb25kIHdpdGggdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeS4gIFVzZSByc3lu
YydzIC1MIGFuZCAtcgotIyBvcHRpb25zIGJlY2F1c2UgdGhlIGxhdGVzdC8lcyBkaXJlY3Rvcnkg
YW5kIHRoZSAucG8gZmlsZXMgd2l0aGluIGFyZQotIyBhbGwgc3ltbGlua3MuCi1wb19kb3dubG9h
ZF9jb21tYW5kX2Zvcm1hdD1cCi0icnN5bmMgLS1kZWxldGUgLS1leGNsdWRlICcqLnMxJyAtTHJ0
dnogXAotJ3RyYW5zbGF0aW9ucHJvamVjdC5vcmc6OnRwL2xhdGVzdC8lcy8nICclcyciCi0KLSMg
T3RoZXIgbG9jYWxlIGNhdGVnb3JpZXMgdGhhdCBuZWVkIG1lc3NhZ2UgY2F0YWxvZ3MuCi1leHRy
YV9sb2NhbGVfY2F0ZWdvcmllcz0KLQotIyBBZGRpdGlvbmFsIHhnZXR0ZXh0IG9wdGlvbnMgdG8g
dXNlLiAgR251bGliIG1pZ2h0IHByb3ZpZGUgeW91IHdpdGggYW4KLSMgZXh0ZW5zaXZlIGxpc3Qg
b2YgYWRkaXRpb25hbCBvcHRpb25zIHRvIGFwcGVuZCB0byB0aGlzLCBidXQgZ2V0dGV4dAotIyAw
LjE2LjEgYW5kIG5ld2VyIGFwcGVuZHMgdGhlbSBhdXRvbWF0aWNhbHksIHNvIHlvdSBjYW4gc2Fm
ZWx5IGlnbm9yZQotIyB0aGUgY29tcGxhaW50cyBmcm9tICdnbnVsaWItdG9vbCcgaWYgeW91ciAk
Y29uZmlndXJlX2FjIHN0YXRlczoKLSMKLSMgICAgQU1fR05VX0dFVFRFWFRfVkVSU0lPTihbMC4x
Ni4xXSkKLXhnZXR0ZXh0X29wdGlvbnM9IgotICAgICAgICAtLWZsYWc9XzoxOnBhc3MtYy1mb3Jt
YXQKLSAgICAgICAgLS1mbGFnPU5fOjE6cGFzcy1jLWZvcm1hdAotIgotCi0jIFBhY2thZ2UgY29w
eXJpZ2h0IGhvbGRlciBmb3IgZ2V0dGV4dCBmaWxlcy4gIERlZmF1bHRzIHRvIEZTRiBpZiB1bnNl
dC4KLWNvcHlyaWdodF9ob2xkZXI9Ci0KLSMgRmlsZSB0aGF0IHNob3VsZCBleGlzdCBpbiB0aGUg
dG9wIGRpcmVjdG9yeSBvZiBhIGNoZWNrZWQgb3V0IGhpZXJhcmNoeSwKLSMgYnV0IG5vdCBpbiBh
IGRpc3RyaWJ1dGlvbiB0YXJiYWxsLgotY2hlY2tvdXRfb25seV9maWxlPQotCi0jIFdoZXRoZXIg
dG8gdXNlIGNvcGllcyBpbnN0ZWFkIG9mIHN5bWxpbmtzIGJ5IGRlZmF1bHQgKGlmIHNldCB0byB0
cnVlLAotIyB0aGUgLS1jb3B5IG9wdGlvbiBoYXMgbm8gZWZmZWN0KS4KLWNvcHk9ZmFsc2UKLQot
IyBTZXQgdGhpcyB0byAiLmN2c2lnbm9yZSAuZ2l0aWdub3JlIiBpbiAnYm9vdHN0cmFwLmNvbmYn
IGlmIHlvdSB3YW50Ci0jIHRob3NlIGZpbGVzIHRvIGJlIGdlbmVyYXRlZCBpbiBkaXJlY3Rvcmll
cyBsaWtlICdsaWIvJywgJ200LycsIGFuZCAncG8vJywKLSMgb3Igc2V0IGl0IHRvICJhdXRvIiB0
byBtYWtlIHRoaXMgc2NyaXB0IHNlbGVjdCB3aGF0IHRvIHVzZSBiYXNlZAotIyBvbiB3aGF0IHZl
cnNpb24gY29udHJvbCBzeXN0ZW0gKGlmIGFueSkgaXMgdXNlZCBpbiB0aGUgc291cmNlIGRpcmVj
dG9yeS4KLSMgT3Igc2V0IGl0IHRvICJub25lIiB0byBpZ25vcmUgVkNTIGlnbm9yZSBmaWxlcyBl
bnRpcmVseS4gIERlZmF1bHQgaXMKLSMgImF1dG8iLgotdmNfaWdub3JlPQotCi0KLSMjIC0tLS0t
LS0tLS0tLS0tLS0tLS0gIyMKLSMjIEV4dGVybmFsIExpYnJhcmllcy4gIyMKLSMjIC0tLS0tLS0t
LS0tLS0tLS0tLS0gIyMKLQotIyBTb3VyY2UgcmVxdWlyZWQgZXh0ZXJuYWwgbGlicmFyaWVzOgot
LiBgZWNobyAiJDAiIHwke1NFRC1zZWR9ICdzfFteL10qJHx8J2AiZnVuY2xpYi5zaCIKLS4gYGVj
aG8gIiQwIiB8JHtTRUQtc2VkfSAnc3xbXi9dKiR8fCdgIm9wdGlvbnMtcGFyc2VyIgotLiBgZWNo
byAiJDAiIHwke1NFRC1zZWR9ICdzfFteL10qJHx8J2AiZXh0cmFjdC10cmFjZSIKLQotIyBTZXQg
YSB2ZXJzaW9uIHN0cmluZyBmb3IgKnRoaXMqIHNjcmlwdC4KLXNjcmlwdHZlcnNpb249MjAxOS0w
My0yMi4xMTsgIyBVVEMKLQotCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBIb29rYWJs
ZSBmdW5jdGlvbnMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0KLSMgQWZ0ZXIgJ2Jv
b3RzdHJhcC5jb25mJyBoYXMgYmVlbiBzb3VyY2VkLCBleGVjdXRpb24gcHJvY2VlZHMgYnkgY2Fs
bGluZwotIyAnZnVuY19ib290c3RyYXAnLiAgV2hlcmV2ZXIgYSBmdW5jdGlvbiBpcyBkZWNvcmF0
ZWQgd2l0aAotIyAnZnVuY19ob29rYWJsZSBmdW5jX25hbWUnLCB5b3Ugd2lsbCBmaW5kIGEgbWF0
Y2hpbmcgJ2Z1bmNfcnVuX2hvb2tzCi0jIGZ1bmNfbmFtZScsIHdoaWNoIGV4ZWN1dGVzIGFsbCBm
dW5jdGlvbnMgYWRkZWQgd2l0aCAnZnVuY19hZGRfaG9vawotIyBmdW5jX25hbWUgbXlfZnVuYycu
Ci0jCi0jIFlvdSBtaWdodCBub3RpY2UgdGhhdCBtYW55IG9mIHRoZXNlIGZ1bmN0aW9ucyBiZWdp
biB3aXRoIGEgc2VyaWVzIG9mCi0jICckcmVxdWlyZV9mb28nIGxpbmVzLiAgU2VlIHRoZSBkb2N1
LWNvbW1lbnRzIGF0IHRoZSBzdGFydCBvZiB0aGUKLSMgJ1Jlc291cmNlIG1hbmFnZW1lbnQnIHNl
Y3Rpb24gZm9yIGEgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGVzZSBhcmUuCi0KLQotIyBmdW5jX2Jv
b3RzdHJhcCBbQVJHXS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBbGwgdGhlIGZ1
bmN0aW9ucyBjYWxsZWQgaW5zaWRlIGZ1bmNfYm9vdHN0cmFwIGFyZSBob29rYWJsZS4gU2VlIHRo
ZQotIyB0aGUgaW5kaXZpZHVhbCBpbXBsZW1lbnRhdGlvbnMgZm9yIGRldGFpbHMuCi1mdW5jX2Jv
b3RzdHJhcCAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICMgU2F2ZSB0aGUgY3VycmVudCBw
b3NpdGlvbmFsIHBhcmFtZXRlcnMgdG8gcHJldmVudCB0aGVtIGJlaW5nCi0gICAgIyBjb3JydXB0
ZWQgYnkgY2FsbHMgdG8gJ3NldCcgaW4gJ2Z1bmNfaW5pdCcuCi0gICAgZnVuY19xdW90ZSBldmFs
ICR7MSsiJEAifQotICAgIF9HX3NhdmVkX3Bvc2l0aW9uYWxfcGFyYW1ldGVycz0kZnVuY19xdW90
ZV9yZXN1bHQKLQotICAgICMgSW5pdGlhbGlzYXRpb24uCi0gICAgZnVuY19pbml0Ci0KLSAgICAj
IE9wdGlvbiBwcm9jZXNzaW5nLgotICAgIGV2YWwgZnVuY19vcHRpb25zICIkX0dfc2F2ZWRfcG9z
aXRpb25hbF9wYXJhbWV0ZXJzIgotCi0gICAgIyBQb3N0LW9wdGlvbiBwcmVwYXJhdGlvbi4KLSAg
ICBmdW5jX3ByZXAKLQotICAgICMgUmVjb25maWd1cmUgdGhlIHBhY2thZ2UuCi0gICAgZnVuY19y
ZWNvbmZpZ3VyZQotCi0gICAgIyBFbnN1cmUgLnZlcnNpb24gaXMgdXAtdG8tZGF0ZS4KLSAgICBm
dW5jX3VwZGF0ZV9kb3R2ZXJzaW9uCi0KLSAgICAjIEZpbmFsaXNhdGlvbi4KLSAgICBmdW5jX2Zp
bmkKLX0KLQotCi0jIGZ1bmNfaW5pdAotIyAtLS0tLS0tLS0KLSMgQW55IGVhcmx5IGluaXRpYWxp
c2F0aW9ucyBjYW4gYmUgaG9va2VkIHRvIHRoaXMgZnVuY3Rpb24uICBDb25zaWRlcgotIyB3aGV0
aGVyIHlvdSBjYW4gaG9vayBvbnRvICdmdW5jX3ByZXAnIGluc3RlYWQsIGJlY2F1c2UgaWYgeW91
IGhvb2sKLSMgYW55IHNsb3cgdG8gZXhlY3V0ZSBjb2RlIGluIGhlcmUsIGl0IHdpbGwgYWxzbyBh
ZGQgdG8gdGhlIHRpbWUgYmVmb3JlCi0jICcuL2Jvb3RzdHJhcCAtLXZlcnNpb24nIGNhbiByZXNw
b25kLgotZnVuY19ob29rYWJsZSBmdW5jX2luaXQKLWZ1bmNfaW5pdCAoKQotewotICAgICRkZWJ1
Z19jbWQKLQotICAgIGZ1bmNfcnVuX2hvb2tzIGZ1bmNfaW5pdAotfQotCi0KLSMgZnVuY19wcmVw
Ci0jIC0tLS0tLS0tLQotIyBGdW5jdGlvbiB0byBwZXJmb3JtIHByZXBhcmF0aW9uIGZvciByZW1h
aW5pbmcgYm9vdHN0cmFwIHByb2Nlc3MuIElmCi0jIHlvdXIgaG9va2VkIGNvZGUgcmVsaWVzIG9u
IHRoZSBvdXRjb21lIG9mICdmdW5jX29wdGlvbnMnIGhvb2sgaXQgaGVyZQotIyByYXRoZXIgdGhh
biB0byAnZnVuY19pbml0Jy4KLSMKLSMgQWxsIHRoZSBmdW5jdGlvbnMgY2FsbGVkIGluc2lkZSBm
dW5jX3ByZXAgYXJlIGhvb2thYmxlLiBTZWUgdGhlCi0jIGluZGl2aWR1YWwgaW1wbGVtZW50YXRp
b25zIGZvciBkZXRhaWxzLgotZnVuY19ob29rYWJsZSBmdW5jX3ByZXAKLWZ1bmNfcHJlcCAoKQot
ewotICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2J1aWxkdG9vbHNfdXB0b2RhdGUKLSAg
ICAkcmVxdWlyZV9jaGVja291dF9vbmx5X2ZpbGUKLQotICAgICRyZXF1aXJlX2dudWxpYl9tZXJn
ZV9jaGFuZ2Vsb2cKLQotICAgICMgUmVwb3J0IHRoZSByZXN1bHRzIG9mIFNFRCBhbmQgR1JFUCBz
ZWFyY2hlcyBmcm9tIGZ1bmNsaWIuc2guCi0gICAgZnVuY192ZXJib3NlICJHUkVQPSckR1JFUCci
Ci0gICAgZnVuY192ZXJib3NlICJTRUQ9JyRTRUQnIgotCi0gICAgIyBmZXRjaCB1cGRhdGUgZmls
ZXMgZnJvbSB0aGUgdHJhbnNsYXRpb24gcHJvamVjdAotICAgIGZ1bmNfdXBkYXRlX3RyYW5zbGF0
aW9ucwotCi0gICAgZnVuY19ydW5faG9va3MgZnVuY19wcmVwCi19Ci0KLQotIyBmdW5jX3VwZGF0
ZV90cmFuc2xhdGlvbnMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFVwZGF0ZSBwYWNr
YWdlIHBvIGZpbGVzIGFuZCB0cmFuc2xhdGlvbnMuCi1mdW5jX2hvb2thYmxlIGZ1bmNfdXBkYXRl
X3RyYW5zbGF0aW9ucwotZnVuY191cGRhdGVfdHJhbnNsYXRpb25zICgpCi17Ci0gICAgJGRlYnVn
X2NtZAotCi0gICAgJG9wdF9za2lwX3BvIHx8IHsKLSAgICAgIHRlc3QgLWQgcG8gJiYgewotICAg
ICAgICAkcmVxdWlyZV9wYWNrYWdlCi0KLSAgICAgICAgZnVuY191cGRhdGVfcG9fZmlsZXMgcG8g
JHBhY2thZ2UgfHwgZXhpdCAkPwotICAgICAgfQotCi0gICAgICBmdW5jX3J1bl9ob29rcyBmdW5j
X3VwZGF0ZV90cmFuc2xhdGlvbnMKLSAgICB9Ci19Ci0KLQotIyBmdW5jX3JlY29uZmlndXJlCi0j
IC0tLS0tLS0tLS0tLS0tLS0KLSMgUmVjb25maWd1cmUgdGhlIGN1cnJlbnQgcGFja2FnZSBieSBy
dW5uaW5nIHRoZSBhcHByb3ByaWF0ZSBhdXRvdG9vbHMgaW4gYQotIyBzdWl0YWJsZSBvcmRlci4K
LWZ1bmNfaG9va2FibGUgZnVuY19yZWNvbmZpZ3VyZQotZnVuY19yZWNvbmZpZ3VyZSAoKQotewot
ICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2F1dG9tYWtlX29wdGlvbnMKLQotICAgICMg
QXV0b21ha2UgKHdpdGhvdXQgJ2ZvcmVpZ24nIG9wdGlvbikgcmVxdWlyZXMgdGhhdCBORVdTICYg
UkVBRE1FIGV4aXN0LgotICAgIGNhc2UgIiAkYXV0b21ha2Vfb3B0aW9ucyAiIGluCi0gICAgICAi
IGZvcmVpZ24gIikgOzsKLSAgICAgICopCi0gICAgICAgIGZ1bmNfZW5zdXJlX05FV1MKLSAgICAg
ICAgZnVuY19lbnN1cmVfUkVBRE1FCi0gICAgICAgIDs7Ci0gICAgZXNhYwotCi0gICAgIyBFbnN1
cmUgQ2hhbmdlTG9nIHByZXNlbmNlLgotICAgIGlmIHRlc3QgLW4gIiRnbnVsaWJfbW9kdWxlcyI7
IHRoZW4KLSAgICAgIGZ1bmNfaWZjb250YWlucyAiJGdudWxpYl9tb2R1bGVzIiBnaXRsb2ctdG8t
Y2hhbmdlbG9nIFwKLSAgICAgICAgZnVuY19lbnN1cmVfY2hhbmdlbG9nCi0gICAgZWxzZQotICAg
ICAgJHJlcXVpcmVfZ251bGliX2NhY2hlCi0gICAgICBpZiAkU0VEIC1uICcvXmdsX01PRFVMRVMo
XFsvLC9eXSkkL3AnICRnbnVsaWJfY2FjaGUgMj4vZGV2L251bGwgfAotICAgICAgICAgZnVuY19n
cmVwX3EgZ2l0bG9nLXRvLWNoYW5nZWxvZwotICAgICAgdGhlbgotICAgICAgICBmdW5jX2Vuc3Vy
ZV9jaGFuZ2Vsb2cKLSAgICAgIGZpCi0gICAgZmkKLQotICAgICMgUmVsZWFzZWQgJ2F1dG9wb2lu
dCcgaGFzIHRoZSB0ZW5kZW5jeSB0byBpbnN0YWxsIG1hY3JvcyB0aGF0IGhhdmUKLSAgICAjIGJl
ZW4gb2Jzb2xldGVkIGluIGN1cnJlbnQgJ2dudWxpYicsIHNvIHJ1biB0aGlzIGJlZm9yZSAnZ251
bGliLXRvb2wnLgotICAgIGZ1bmNfYXV0b3BvaW50Ci0KLSAgICAjIEF1dG9yZWNvbmYgcnVucyAn
YWNsb2NhbCcgYmVmb3JlICdsaWJ0b29saXplJywgd2hpY2ggY2F1c2VzIHNwdXJpb3VzCi0gICAg
IyB3YXJuaW5ncyBpZiB0aGUgaW5pdGlhbCAnYWNsb2NhbCcgaXMgY29uZnVzZWQgYnkgdGhlIGxp
YnRvb2xpemVkCi0gICAgIyAob3Igd29yc2U6IG91dC1vZi1kYXRlKSBtYWNybyBkaXJlY3Rvcnku
Ci0gICAgZnVuY19saWJ0b29saXplCi0KLSAgICAjIElmIHlvdSBuZWVkIHRvIGRvIGFueXRoaW5n
IGFmdGVyICdnbnVsaWItdG9vbCcgaXMgZG9uZSwgYnV0IGJlZm9yZQotICAgICMgJ2F1dG9yZWNv
bmYnIHJ1bnMsIHlvdSBkb24ndCBuZWVkIHRvIG92ZXJyaWRlIHRoaXMgd2hvbGUgZnVuY3Rpb24s
Ci0gICAgIyBiZWNhdXNlICdmdW5jX2dudWxpYl90b29sJyBpcyBob29rYWJsZS4KLSAgICBmdW5j
X2dudWxpYl90b29sCi0KLSAgICBmdW5jX2F1dG9yZWNvbmYKLQotICAgIGZ1bmNfcnVuX2hvb2tz
IGZ1bmNfcmVjb25maWd1cmUKLX0KLQotCi0jIGZ1bmNfZ251bGliX3Rvb2wKLSMgLS0tLS0tLS0t
LS0tLS0tLQotIyBSdW4gJ2dudWxpYi10b29sJyB0byBmZXRjaCBnbnVsaWIgbW9kdWxlcyBpbnRv
IHRoZSBjdXJyZW50IHBhY2thZ2UuCi0jCi0jIEl0J3MgYXNzdW1lZCB0aGF0IHNpbmNlIHlvdSBh
cmUgdXNpbmcgZ251bGliJ3MgJ2Jvb3RzdHJhcCcgc2NyaXB0LAotIyB5b3UncmUgYWxzbyB1c2lu
ZyBnbnVsaWIgZWxzZXdoZXJlIGluIHlvdXIgcGFja2FnZS4gIElmIG5vdCwgdGhlbgotIyB5b3Ug
Y2FuIHJlcGxhY2UgdGhpcyBmdW5jdGlvbiBpbiAnYm9vdHN0cmFwLmNvbmYnIHdpdGg6Ci0jCi0j
ICAgZnVuY19nbnVsaWJfdG9vbCAoKSB7IDo7IH0KLSMKLSMgKGFsdGhvdWdoIHRoZSBmdW5jdGlv
biByZXR1cm5zIGltbWVkaWF0ZWx5IGlmICRnbnVsaWJfdG9vbCBpcyBzZXQgdG8KLSMgdHJ1ZSBp
biBhbnkgY2FzZSkuCi1mdW5jX2hvb2thYmxlIGZ1bmNfZ251bGliX3Rvb2wKLWZ1bmNfZ251bGli
X3Rvb2wgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkcmVxdWlyZV9nbnVsaWJfdG9vbAot
ICAgICRyZXF1aXJlX2xpYnRvb2xpemUKLQotICAgIHRlc3QgdHJ1ZSA9ICIkZ251bGliX3Rvb2wi
IHx8IHsKLSAgICAgICRyZXF1aXJlX2dudWxpYl9naXRfc3VibW9kdWxlcwotCi0gICAgICAjIGJv
b3RzdHJhcC5jb25mIHdyaXR0ZW4gZm9yIGdudWxpYiBib290c3RyYXAgZXhwZWN0cwotICAgICAg
IyBnbnVsaWJfdG9vbF9vcHRpb25fZXh0cmFzIHRvIHdoaWNoIC0tbm8tY2hhbmdlbG9nIGlzIGFw
cGVuZGVkLAotICAgICAgIyBidXQgbGlidG9vbCBib290c3RyYXAgZXhwZWN0cyB5b3UgdG8gYXBw
ZW5kIHRvIGdudWxpYl90b29sX29wdGlvbnMKLSAgICAgICMgc28gdGhhdCB5b3UgY2FuIG92ZXJy
aWRlIHRoZSAtLW5vLWNoYW5nZWxvZyBkZWZhdWx0OiBtYWtlIHN1cmUgd2UKLSAgICAgICMgc3Vw
cG9ydCBib3RoIHN0eWxlcyBzbyB1c2VycyBjYW4gbWlncmF0ZSBiZXR3ZWVuIHRoZW0gZWFzaWx5
LgotICAgICAgZ251bGliX3Rvb2xfYWxsX29wdGlvbnM9IiRnbnVsaWJfdG9vbF9vcHRpb25zICRn
bnVsaWJfdG9vbF9vcHRpb25fZXh0cmFzIgotCi0gICAgICBpZiB0ZXN0IC1uICIkZ251bGliX21v
ZHVsZXMiOyB0aGVuCi0gICAgICAgICRyZXF1aXJlX2dudWxpYl9jYWNoZQotICAgICAgICAkcmVx
dWlyZV9nbnVsaWJfdG9vbF9iYXNlX29wdGlvbnMKLQotICAgICAgICBnbnVsaWJfbW9kZT0tLWlt
cG9ydAotCi0gICAgICAgICMgVHJ5IG5vdCB0byBwaWNrIHVwIGFueSBzdGFsZSB2YWx1ZXMgZnJv
bSAnZ251bGliLWNhY2hlLm00Jy4KLSAgICAgICAgcm0gLWYgIiRnbnVsaWJfY2FjaGUiCi0KLSAg
ICAgICAgdGVzdCAtbiAiJGdudWxpYl90b29sX2Jhc2Vfb3B0aW9ucyIgXAotICAgICAgICAgICAg
JiYgZnVuY19hcHBlbmRfdW5pcSBnbnVsaWJfdG9vbF9hbGxfb3B0aW9ucyAiICRnbnVsaWJfdG9v
bF9iYXNlX29wdGlvbnMiCi0gICAgICAgIHRlc3QgLW4gIiRnbnVsaWJfbWsiIFwKLSAgICAgICAg
ICAgICYmIGZ1bmNfYXBwZW5kX3VuaXEgZ251bGliX3Rvb2xfYWxsX29wdGlvbnMgIiAtLW1ha2Vm
aWxlLW5hbWU9JGdudWxpYl9tayIKLSAgICAgICAgdGVzdCAtbiAiJHRlc3RzX2Jhc2UiICYmIHsK
LSAgICAgICAgICBmdW5jX2FwcGVuZF91bmlxIGdudWxpYl90b29sX2FsbF9vcHRpb25zICIgLS10
ZXN0cy1iYXNlPSR0ZXN0c19iYXNlIgotICAgICAgICAgIGZ1bmNfYXBwZW5kX3VuaXEgZ251bGli
X3Rvb2xfYWxsX29wdGlvbnMgIiAtLXdpdGgtdGVzdHMiCi0gICAgICAgIH0KLSAgICAgIGVsc2UK
LQotICAgICAgICAjICdnbnVsaWJfbW9kdWxlcycgYW5kIG90aGVycyBhcmUgY2FjaGVkIGluICdn
bnVsaWItY2FjaGUubTQnOgotICAgICAgICAjIFVzZSAnZ251bGliIC0tdXBkYXRlJyB0byBmZXRj
aCBnbnVsaWIgbW9kdWxlcy4KLSAgICAgICAgZ251bGliX21vZGU9LS11cGRhdGUKLSAgICAgIGZp
Ci0KLSAgICAgICMgQWRkIGEgc2Vuc2libGUgZGVmYXVsdCBsaWJ0b29sIG9wdGlvbiB0byBnbnVs
aWJfdG9vbF9vcHRpb25zLgotICAgICAgIyBUaGUgZW1iZWRkZWQgZWNobyBpcyB0byBzcXVhc2gg
d2hpdGVzcGFjZSBiZWZvcmUgZ2xvYmJpbmcuCi0gICAgICBjYXNlIGBlY2hvICIgIiRnbnVsaWJf
dG9vbF9hbGxfb3B0aW9ucyIgImAgaW4KLSAgICAgICAgKiIgLS1uby1saWJ0b29sICIqfCoiIC0t
bGlidG9vbCAiKikgOzsKLSAgICAgICAgKikgIGlmIHRlc3QgdHJ1ZSA9ICIkTElCVE9PTElaRSI7
IHRoZW4KLSAgICAgICAgICAgICAgZnVuY19hcHBlbmRfdW5pcSBnbnVsaWJfdG9vbF9hbGxfb3B0
aW9ucyAiIC0tbm8tbGlidG9vbCIKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgZnVu
Y19hcHBlbmRfdW5pcSBnbnVsaWJfdG9vbF9hbGxfb3B0aW9ucyAiIC0tbGlidG9vbCIKLSAgICAg
ICAgICAgIGZpCi0gICAgICAgICAgICA7OwotICAgICAgZXNhYwotCi0gICAgICAkb3B0X2NvcHkg
fHwgZnVuY19hcHBlbmRfdW5pcSBnbnVsaWJfdG9vbF9hbGxfb3B0aW9ucyAiIC0tc3ltbGluayIK
LQotICAgICAgZnVuY19hcHBlbmRfdW5pcSBnbnVsaWJfdG9vbF9hbGxfb3B0aW9ucyAiICRnbnVs
aWJfbW9kZSIKLSAgICAgIGZ1bmNfYXBwZW5kIGdudWxpYl90b29sX2FsbF9vcHRpb25zICIgJGdu
dWxpYl9tb2R1bGVzIgotCi0gICAgICAjIFRoZSBlbWJlZGRlZCBlY2hvIGlzIHRvIHNxdWFzaCB3
aGl0ZXNwYWNlIGJlZm9yZSBkaXNwbGF5LgotICAgICAgZ251bGliX2NtZD1gZWNobyAkZ251bGli
X3Rvb2wgJGdudWxpYl90b29sX2FsbF9vcHRpb25zYAotCi0gICAgICBmdW5jX3Nob3dfZXZhbCAi
JGdudWxpYl9jbWQiICdleGl0ICQ/JwotCi0gICAgICAjIFVzZSAnZ251bGliLXRvb2wgLS1jb3B5
LWZpbGUnIHRvIGluc3RhbGwgbm9uLW1vZHVsZSBmaWxlcy4KLSAgICAgIGZ1bmNfaW5zdGFsbF9n
bnVsaWJfbm9uX21vZHVsZV9maWxlcwotICAgIH0KLQotICAgIGZ1bmNfcnVuX2hvb2tzIGZ1bmNf
Z251bGliX3Rvb2wKLX0KLQotCi0jIGZ1bmNfZmluaQotIyAtLS0tLS0tLS0KLSMgRnVuY3Rpb24g
dG8gcGVyZm9ybSBhbGwgZmluYWxpc2F0aW9uIGZvciB0aGUgYm9vdHN0cmFwIHByb2Nlc3MuCi1m
dW5jX2hvb2thYmxlIGZ1bmNfZmluaQotZnVuY19maW5pICgpCi17Ci0gICAgJGRlYnVnX2NtZAot
Ci0gICAgZnVuY19nZXR0ZXh0X2NvbmZpZ3VyYXRpb24KLSAgICBmdW5jX2NsZWFuX2RhbmdsaW5n
X3N5bWxpbmtzCi0gICAgZnVuY19jbGVhbl91bnVzZWRfbWFjcm9zCi0gICAgZnVuY19za2lwX3Bv
X3JlY29tbWVuZGF0aW9uCi0KLSAgICBmdW5jX3J1bl9ob29rcyBmdW5jX2ZpbmkKLQotICAgICRy
ZXF1aXJlX2Jvb3RzdHJhcF91cHRvZGF0ZQotCi0gICAgZnVuY19lY2hvICJEb25lLiAgTm93IHlv
dSBjYW4gcnVuICcuL2NvbmZpZ3VyZScuIgotfQotCi0KLSMgZnVuY19nZXR0ZXh0X2NvbmZpZ3Vy
YXRpb24KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRWRpdCBjb25maWd1cmF0aW9u
IHZhbHVlcyBpbnRvIHBvL01ha2V2YXJzLgotZnVuY19ob29rYWJsZSBmdW5jX2dldHRleHRfY29u
ZmlndXJhdGlvbgotZnVuY19nZXR0ZXh0X2NvbmZpZ3VyYXRpb24gKCkKLXsKLSAgICAkZGVidWdf
Y21kCi0KLSAgICAkcmVxdWlyZV9hdXRvcG9pbnQKLQotICAgIHRlc3QgdHJ1ZSA9ICIkQVVUT1BP
SU5UIiB8fCB7Ci0gICAgICAkcmVxdWlyZV9jb3B5cmlnaHRfaG9sZGVyCi0gICAgICAkcmVxdWly
ZV9leHRyYV9sb2NhbGVfY2F0ZWdvcmllcwotICAgICAgJHJlcXVpcmVfcGFja2FnZV9idWdyZXBv
cnQKLQotICAgICAgIyBFc2NhcGUgeGdldHRleHQgb3B0aW9ucyBmb3Igc2VkIE1ha2V2YXJzIGdl
bmVyYXRpb24gYmVsb3cuCi0gICAgICAjIFdlIGhhdmUgdG8gZGVsZXRlIGJsYW5rIGxpbmVzIGlu
IGEgc2VwYXJhdGUgc2NyaXB0IHNvIHRoYXQgd2UgZG9uJ3QKLSAgICAgICMgYXBwZW5kIFxcXCB0
byB0aGUgcGVudWx0aW1hdGUgbGluZSwgYW5kIHRoZW4gZGVsZXRlIHRoZSBsYXN0IGVtcHR5Ci0g
ICAgICAjIGxpbmUsIHdoaWNoIG1lc3NlcyB1cCB0aGUgdmFyaWFibGUgc3Vic3RpdHV0aW9uIGxh
dGVyIGluIHRoaXMKLSAgICAgICMgZnVuY3Rpb24uICBOb3RlIHRoYXQgYWRkaW5nIGEgbGl0ZXJh
bCBcXFwgcmVxdWlyZXMgZG91YmxlIGVzY2FwaW5nCi0gICAgICAjIGhlcmUsIG9uY2UgZm9yIHRo
ZSBleGVjdXRpb24gc3Vic2hlbGwsIGFuZCBhZ2FpbiBmb3IgdGhlIGFzc2lnbm1lbnQsCi0gICAg
ICAjIHdoaWNoIGlzIHdoeSB0aGVyZSBhcmUgYWN0dWFsbHkgMTIgKCEhKSBiYWNrc2xhc2hlcyBp
biB0aGUgc2NyaXB0LgotICAgICAgX0dfeGdldHRleHRfb3B0aW9ucz1gZWNobyAiJHhnZXR0ZXh0
X29wdGlvbnMkbmwiIHwkU0VEICcvXiQvZCcgfCRTRUQgJwotICAgICAgICAgICRiCi0gICAgICAg
ICAgc3wkfCBcXFxcXFxcXFxcXFx8J2AKLQotICAgICAgIyBDcmVhdGUgZ2V0dGV4dCBjb25maWd1
cmF0aW9uLgotICAgICAgZnVuY19lY2hvICJDcmVhdGluZyBwby9NYWtldmFycyBmcm9tIHBvL01h
a2V2YXJzLnRlbXBsYXRlIC4uLiIKLSAgICAgICRSTSAtZiBwby9NYWtldmFycwotICAgICAgJFNF
RCAnCi0gICAgICAgIC9eRVhUUkFfTE9DQUxFX0NBVEVHT1JJRVMgKj0vc3w9Lip8PSAnIiRleHRy
YV9sb2NhbGVfY2F0ZWdvcmllcyInfAotICAgICAgICAvXkNPUFlSSUdIVF9IT0xERVIgKj0vc3w9
Lip8PSAnIiRjb3B5cmlnaHRfaG9sZGVyIid8Ci0gICAgICAgIC9eTVNHSURfQlVHU19BRERSRVNT
ICo9L3N8PS4qfD0gJyIkcGFja2FnZV9idWdyZXBvcnQiJ3wKLSAgICAgICAgL15YR0VUVEVYVF9P
UFRJT05TICo9L3sKLSAgICAgICAgICBzfCR8IFxcfAotICAgICAgICAgIGFcCi0gICAgICAgICAg
ICAgJyIkX0dfeGdldHRleHRfb3B0aW9ucyInIFxcXAotICAgICAgICAgICAgICQke2VuZF9vZl94
Z2V0dGV4dF9vcHRpb25zK30KLSAgICAgICAgfQotICAgICAgICBzLyAqJC8vCi0gICAgICAnIHBv
L01ha2V2YXJzLnRlbXBsYXRlID5wby9NYWtldmFycyB8fCBleGl0IDEKLSAgICB9Ci0KLSAgICBm
dW5jX3J1bl9ob29rcyBmdW5jX2dldHRleHRfY29uZmlndXJhdGlvbgotfQotCi0KLQotIyMgLS0t
LS0tLS0tLS0tLS0tICMjCi0jIyBDb3JlIGZ1bmN0aW9ucy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0t
LSAjIwotCi0jIFRoaXMgc2VjdGlvbiBjb250YWlucyB0aGUgbWFpbiBmdW5jdGlvbnMgY2FsbGVk
IGZyb20gdGhlICdIb29rYWJsZQotIyBmdW5jdGlvbnMnIChzaG93biBhYm92ZSksIGFuZCBhcmUg
dGhlIG9uZXMgeW91J3JlICBtb3N0IGxpa2VseQotIyB0byB3YW50IHRvIHJlcGxhY2Ugd2l0aCB5
b3VyIG93biBpbXBsZW1lbnRhdGlvbnMgaW4gJ2Jvb3RzdHJhcC5jb25mJy4KLQotCi0jIGZ1bmNf
YXV0b3BvaW50Ci0jIC0tLS0tLS0tLS0tLS0tCi0jIElmIHRoaXMgcGFja2FnZSB1c2VzIGdldHRl
eHQsIHRoZW4gcnVuICdhdXRvcG9pbnQnLgotZnVuY19hdXRvcG9pbnQgKCkKLXsKLSAgICAkZGVi
dWdfY21kCi0KLSAgICAkcmVxdWlyZV9hdXRvcG9pbnQKLQotICAgIHRlc3QgdHJ1ZSA9ICIkQVVU
T1BPSU5UIiBcCi0gICAgICAgIHx8IGZ1bmNfc2hvd19ldmFsICIkQVVUT1BPSU5UIC0tZm9yY2Ui
ICdleGl0ICQ/JwotfQotCi0KLSMgZnVuY19saWJ0b29saXplCi0jIC0tLS0tLS0tLS0tLS0tLQot
IyBJZiB0aGlzIHBhY2thZ2UgdXNlcyBsaWJ0b29sLCB0aGVuIHJ1biAnbGlidG9vbGl6ZScuCi1m
dW5jX2xpYnRvb2xpemUgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkcmVxdWlyZV9saWJ0
b29saXplCi0KLSAgICB0ZXN0IHRydWUgPSAiJExJQlRPT0xJWkUiIHx8IHsKLSAgICAgIF9HX2xp
YnRvb2xpemVfb3B0aW9ucz0KLSAgICAgICRvcHRfY29weSAmJiBmdW5jX2FwcGVuZCBfR19saWJ0
b29saXplX29wdGlvbnMgIiAtLWNvcHkiCi0gICAgICAkb3B0X2ZvcmNlICYmIGZ1bmNfYXBwZW5k
IF9HX2xpYnRvb2xpemVfb3B0aW9ucyAiIC0tZm9yY2UiCi0gICAgICAkb3B0X3ZlcmJvc2UgfHwg
ZnVuY19hcHBlbmQgX0dfbGlidG9vbGl6ZV9vcHRpb25zICIgLS1xdWlldCIKLSAgICAgIGZ1bmNf
c2hvd19ldmFsICIkTElCVE9PTElaRSRfR19saWJ0b29saXplX29wdGlvbnMiICdleGl0ICQ/Jwot
ICAgIH0KLX0KLQotCi0jIGZ1bmNfZ251bGliX3Rvb2xfY29weV9maWxlIFNSQyBERVNUCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIENvcHkgU1JDLCBhIHBhdGggcmVs
YXRpdmUgdG8gdGhlIGdudWxpYiBzdWItdHJlZSwgdG8gREVTVCwgYSBwYXRoCi0jIHJlbGF0aXZl
IHRvIHRoZSB0b3AtbGV2ZWwgc291cmNlIGRpcmVjdG9yeSB1c2luZyBnbnVsaWItdG9vbCBzbyB0
aGF0Ci0jIGFueSBwYXRjaGVzIG9yIHJlcGxhY2VtZW50cyBpbiAkbG9jYWxfZ2xfcGF0aCBhcmUg
YXBwbGllZC4KLWZ1bmNfZ251bGliX3Rvb2xfY29weV9maWxlICgpCi17Ci0gICAgJGRlYnVnX2Nt
ZAotCi0gICAgJHJlcXVpcmVfZ251bGliX3Rvb2wKLSAgICAkcmVxdWlyZV9wYXRjaAotCi0gICAg
aWYgdGVzdCB0cnVlID0gIiRnbnVsaWJfdG9vbCI7IHRoZW4KLSAgICAgICMgSWYgZ251bGliLXRv
b2wgaXMgbm90IGF2YWlsYWJsZSAoZS5nLiBib290c3RyYXBwaW5nIGluIGEKLSAgICAgICMgZGlz
dHJpYnV0aW9uIHRhcmJhbGwpLCBtYWtlIHN1cmUgdGhhdCBhdCBsZWFzdCB3ZSBoYXZlIHNvbWUK
LSAgICAgICMgdmVyc2lvbiBvZiB0aGUgcmVxdWlyZWQgZmlsZSBhbHJlYWR5IGluIHBsYWNlLgot
ICAgICAgdGVzdCAtZiAiJDIiIHx8IGZ1bmNfZmF0YWxfZXJyb3IgIlwKLUNhbid0IGZpbmQsIGNv
cHkgb3IgZG93bmxvYWQgJyQyJywgYSByZXF1aXJlZAotZ251bGliIHN1cHBsaWVkIGZpbGUsIHBs
ZWFzZSBwcm92aWRlIHRoZSBsb2NhdGlvbiBvZiBhCi1jb21wbGV0ZSAnZ251bGliJyB0cmVlIGJ5
IHNldHRpbmcgJ2dudWxpYl9wYXRoJyBpbiB5b3VyCi0nYm9vdHN0cmFwLmNvbmYnIG9yIHdpdGgg
dGhlICctLWdudWxpYi1zcmNkaXInIG9wdGlvbiAtCi1vciBlbHNlIHNwZWNpZnkgdGhlIGxvY2F0
aW9uIG9mIHlvdXIgJ2dpdCcgYmluYXJ5IGJ5Ci1zZXR0aW5nICdHSVQnIGluIHRoZSBlbnZpcm9u
bWVudCBzbyB0aGF0IGEgZnJlc2gKLSdnbnVsaWInIHN1Ym1vZHVsZSBjYW4gYmUgY2xvbmVkLiIK
LSAgICBlbHNlCi0gICAgICAkcmVxdWlyZV9nbnVsaWJfY29weV9jbWQKLQotICAgICAgJGdudWxp
Yl9jb3B5X2NtZCAkMSAkMiAyPi9kZXYvbnVsbCB8fCB7Ci0gICAgICAgICRyZXF1aXJlX2dudWxp
Yl9wYXRoCi0KLSAgICAgICAgZnVuY19lcnJvciAiJyRnbnVsaWJfcGF0aC8kMScgZG9lcyBub3Qg
ZXhpc3QiCi0gICAgICAgIHJldHVybiAxCi0gICAgICB9Ci0gICAgZmkKLX0KLQotCi0jIGZ1bmNf
aW5zdGFsbF9nbnVsaWJfbm9uX21vZHVsZV9maWxlcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSMgR2V0IGFkZGl0aW9uYWwgbm9uLW1vZHVsZSBmaWxlcyBmcm9tIGdu
dWxpYiwgb3ZlcnJpZGluZyBleGlzdGluZyBmaWxlcy4KLWZ1bmNfaW5zdGFsbF9nbnVsaWJfbm9u
X21vZHVsZV9maWxlcyAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2J1aWxk
X2F1eAotICAgICRyZXF1aXJlX2dudWxpYl90b29sCi0KLSAgICB0ZXN0IC1uICIkZ251bGliX25v
bl9tb2R1bGVfZmlsZXMiICYmIHsKLSAgICAgIG1heWJlX2V4aXRfY21kPToKLQotICAgICAgZm9y
IGZpbGUgaW4gJGdudWxpYl9ub25fbW9kdWxlX2ZpbGVzOyBkbwotICAgICAgICBjYXNlICRmaWxl
IGluCi0gICAgICAgICAgKi9DT1BZSU5HKikgZGVzdD1DT1BZSU5HOzsKLSAgICAgICAgICAqL0lO
U1RBTEwpIGRlc3Q9SU5TVEFMTDs7Ci0JICBidWlsZC1hdXgvbWlzc2luZykgZGVzdD0KLSAgICAg
ICAgICAgIGZ1bmNfd2FybmluZyBzZXR0aW5ncyAiXAotUGxlYXNlIHJlbW92ZSBidWlsZC1hdXgv
bWlzc2luZyBmcm9tIGdudWxpYl9tb2R1bGVfZmlsZXMgaW4KLSdib290c3RyYXAuY29uZicsIGFz
IGl0IG1heSBjbGFzaCB3aXRoIEF1dG9tYWtlJ3MgdmVyc2lvbi4iCi0gICAgICAgICAgICA7Owot
ICAgICAgICAgIGJ1aWxkLWF1eC8qKSBkZXN0PSRidWlsZF9hdXgvYGV4cHIgIiRmaWxlIiA6ICdi
dWlsZC1hdXgvXCguKlwpJ2A7OwotICAgICAgICAgICopIGRlc3Q9JGZpbGU7OwotICAgICAgICBl
c2FjCi0KLSAgICAgICAgIyBCZSBzdXJlIHRvIHNob3cgYWxsIGNvcHlpbmcgZXJyb3JzIGJlZm9y
ZSBiYWlsaW5nIG91dAotCXRlc3QgLXogIiRkZXN0IiBcCi0JICAgIHx8IGZ1bmNfZ251bGliX3Rv
b2xfY29weV9maWxlICIkZmlsZSIgIiRkZXN0IiBcCi0JICAgIHx8IG1heWJlX2V4aXRfY21kPSJl
eGl0ICRFWElUX0ZBSUxVUkUiCi0gICAgICBkb25lCi0KLSAgICAgICRtYXliZV9leGl0X2NtZAot
ICAgIH0KLX0KLQotCi0jIGZ1bmNfZW5zdXJlX2NoYW5nZWxvZwotIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLSMgRXZlbiB3aXRoICdnaXRsb2ctdG8tY2hhbmdlbG9nJyBnZW5lcmF0ZWQgQ2hhbmdl
TG9ncywgYXV0b21ha2UKLSMgd2lsbCBub3QgcnVuIHRvIGNvbXBsZXRpb24gd2l0aCBubyBDaGFu
Z2VMb2cgZmlsZS4KLWZ1bmNfZW5zdXJlX2NoYW5nZWxvZyAoKQotewotICAgICRkZWJ1Z19jbWQK
LQotICAgIHRlc3QgLWYgQ2hhbmdlTG9nICYmIG12IC1mIENoYW5nZUxvZyBDaGFuZ2VMb2d+Ci0K
LSAgICBjYXQgPkNoYW5nZUxvZyA8PCdFT1QnCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMj
Ci0jIyBETyBOT1QgRURJVCBUSElTIEZJTEUhICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ICMjCi0KLUNoYW5nZUxvZyBpcyBnZW5lcmF0ZWQgYnkgZ2l0bG9nLXRvLWNoYW5nZWxvZy4KLUVP
VAotCi0gICAgX0dfbWVzc2FnZT0iY3JlYXRpbmcgZHVtbXkgJ0NoYW5nZUxvZyciCi0gICAgdGVz
dCAtZiBDaGFuZ2VMb2d+IFwKLSAgICAgICYmIGZ1bmNfYXBwZW5kIF9HX21lc3NhZ2UgJyAoYmFj
a3VwIGluIENoYW5nZUxvZ34pJwotICAgIGZ1bmNfdmVyYm9zZSAiJF9HX21lc3NhZ2UiCi0KLSAg
ICByZXR1cm4gMAotfQotCi0KLSMgZnVuY19lbnN1cmVfTkVXUwotIyAtLS0tLS0tLS0tLS0tLS0t
Ci0jIFdpdGhvdXQgQU1fSU5JVF9BVVRPTUFLRShbZm9yZWlnbl0pLCBhdXRvbWFrZSB3aWxsIG5v
dCBydW4gdG8KLSMgY29tcGxldGlvbiB3aXRoIG5vIE5FV1MgZmlsZSwgZXZlbiB0aG91Z2ggTkVX
Uy5tZCBvciBORVdTLnR4dAotIyBpcyBvZnRlbiBwcmVmZXJhYmxlLgotZnVuY19lbnN1cmVfTkVX
UyAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIHRlc3QgLWYgTkVXUyB8fCB7Ci0gICAgICBf
R19ORVdTPQotICAgICAgZm9yIF9HX25ld3MgaW4gTkVXUy50eHQgTkVXUy5tZCBORVdTLnJzdDsg
ZG8KLSAgICAgICAgdGVzdCAtZiAiJF9HX25ld3MiICYmIGJyZWFrCi0gICAgICBkb25lCi0KLSAg
ICAgIHRlc3QgLWYgIiRfR19uZXdzIiAmJiAkTE5fUyAkX0dfbmV3cyBORVdTCi0gICAgICBmdW5j
X3ZlcmJvc2UgIiRMTl9TICRfR19uZXdzIE5FV1MiCi0gICAgfQotCi0gICAgcmV0dXJuIDAKLX0K
LQotCi0jIGZ1bmNfZW5zdXJlX1JFQURNRQotIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSMgV2l0aG91
dCBBTV9JTklUX0FVVE9NQUtFKFtmb3JlaWduXSksIGF1dG9tYWtlIHdpbGwgbm90IHJ1biB0bwot
IyBjb21wbGV0aW9uIHdpdGggbm8gUkVBRE1FIGZpbGUsIGV2ZW4gdGhvdWdoIFJFQURNRS5tZCBv
ciBSRUFETUUudHh0Ci0jIGlzIG9mdGVuIHByZWZlcmFibGUuCi1mdW5jX2Vuc3VyZV9SRUFETUUg
KCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICB0ZXN0IC1mIFJFQURNRSB8fCB7Ci0gICAgICBf
R19SRUFETUU9Ci0gICAgICBmb3IgX0dfcmVhZG1lIGluIFJFQURNRS50eHQgUkVBRE1FLm1kIFJF
QURNRS5yc3Q7IGRvCi0gICAgICAgIHRlc3QgLWYgIiRfR19yZWFkbWUiICYmIGJyZWFrCi0gICAg
ICBkb25lCi0KLSAgICAgIHRlc3QgLWYgIiRfR19yZWFkbWUiICYmICRMTl9TICRfR19yZWFkbWUg
UkVBRE1FCi0gICAgICBmdW5jX3ZlcmJvc2UgIiRMTl9TICRfR19yZWFkbWUgUkVBRE1FIgotICAg
IH0KLQotICAgIHJldHVybiAwCi19Ci0KLQotIyBmdW5jX2F1dG9yZWNvbmYgW1NVQkRJUl0KLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEJlaW5nIGNhcmVmdWwgbm90IHRvIHJlLXJ1biAn
YXV0b3BvaW50JyBvciAnbGlidG9vbGl6ZScsIGFuZCBub3QgdG8KLSMgdHJ5IHRvIHJ1biAnYXV0
b3BvaW50JywgJ2xpYnRvb2xpemUnIG9yICdhdXRvaGVhZGVyJyBvbiBwYWNrYWdlcyB0aGF0Ci0j
IGRvbid0IHVzZSB0aGVtLCBkZWZlciB0byAnYXV0b3JlY29uZicgZm9yIGV4ZWN1dGlvbiBvZiB0
aGUgcmVtYWluaW5nCi0jIGF1dG90b29scyB0byBib290c3RyYXAgdGhpcyBwYWNrYWdlLgotIwot
IyBQcm9qZWN0cyB3aXRoIG11bHRpcGxlIHRyZWVzIHRvIHJlY29uZmlndXJlIGNhbiBob29rIGFu
b3RoZXIgY2FsbCB0bwotIyB0aGlzIGZ1bmN0aW9uIG9udG8gZnVuY19yZWNvbmZpZ3VyZToKLSMK
LSMgICAgbXlfYXV0b3JlY29uZl9mb28gKCkKLSMgICAgewotIyAgICAgICAgZnVuY19hdXRvcmVj
b25mIGZvbwotIyAgICB9Ci0jICAgIGZ1bmNfYWRkX2hvb2sgZnVuY19yZWNvbmZpZ3VyZSBteV9h
dXRvcmVjb25mX2ZvbwotZnVuY19hdXRvcmVjb25mICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0g
ICAgJHJlcXVpcmVfYXV0b2hlYWRlcgotICAgICRyZXF1aXJlX2J1aWxkX2F1eCAgIyBhdXRvbWFr
ZSBhbmQgb3RoZXJzIHB1dCBmaWxlcyBpbiBoZXJlCi0gICAgJHJlcXVpcmVfbWFjcm9fZGlyICAj
IGFjbG9jYWwgYW5kIG90aGVycyBwdXQgZmlsZXMgaW4gaGVyZQotCi0gICAgIyBXZSByYW4gdGhl
c2UgbWFudWFsbHkgYWxyZWFkeSwgYW5kIGF1dG9yZWNvbmYgd29uJ3QgZXhlYyAnOicKLSAgICBz
YXZlX0FVVE9QT0lOVD0kQVVUT1BPSU5UOyBBVVRPUE9JTlQ9dHJ1ZQotICAgIHNhdmVfTElCVE9P
TElaRT0kTElCVE9PTElaRTsgTElCVE9PTElaRT10cnVlCi0KLSAgICBfR19hdXRvcmVjb25mX29w
dGlvbnM9Ci0gICAgJG9wdF9jb3B5IHx8IGZ1bmNfYXBwZW5kIF9HX2F1dG9yZWNvbmZfb3B0aW9u
cyAiIC0tc3ltbGluayIKLSAgICAkb3B0X2ZvcmNlICYmIGZ1bmNfYXBwZW5kIF9HX2F1dG9yZWNv
bmZfb3B0aW9ucyAiIC0tZm9yY2UiCi0gICAgJG9wdF92ZXJib3NlICYmIGZ1bmNfYXBwZW5kIF9H
X2F1dG9yZWNvbmZfb3B0aW9ucyAiIC0tdmVyYm9zZSIKLSAgICBmdW5jX3Nob3dfZXZhbCAiJEFV
VE9SRUNPTkYkX0dfYXV0b3JlY29uZl9vcHRpb25zIC0taW5zdGFsbCR7MSsgJDF9IiAnZXhpdCAk
PycKLQotICAgIEFVVE9QT0lOVD0kc2F2ZV9BVVRPUE9JTlQKLSAgICBMSUJUT09MSVpFPSRzYXZl
X0xJQlRPT0xJWkUKLX0KLQotCi0jIGZ1bmNfY2hlY2tfY29uZmlndXJhdGlvbiBWQVJOQU1FIFtD
T05GSUdVUkVfTUFDUk9dCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0jIEV4aXQgd2l0aCBhIHN1aXRhYmxlIGRpYWdub3N0aWMgZm9yIGFuIGlt
cG9ydGFudCBjb25maWd1cmF0aW9uIGNoYW5nZQotIyB0aGF0IG5lZWRzIHRvIGJlIG1hZGUgYmVm
b3JlIGJvb3RzdHJhcCBjYW4gcnVuIGNvcnJlY3RseS4KLWZ1bmNfY2hlY2tfY29uZmlndXJhdGlv
biAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2NvbmZpZ3VyZV9hYwotCi0g
ICAgZXZhbCAndGVzdCAtbiAiJCckMSciJyB8fCB7Ci0gICAgICBfR19lcnJvcl9tc2c9InBsZWFz
ZSBzZXQgJyQxJyBpbiAnYm9vdHN0cmFwLmNvbmYnIgotICAgICAgaWYgdGVzdCAtbiAiJGNvbmZp
Z3VyZV9hYyIgJiYgdGVzdCAtbiAiJDIiOyB0aGVuCi0gICAgICAgIGZ1bmNfYXBwZW5kIF9HX2Vy
cm9yX21zZyAiCi1vciBhZGQgdGhlIGZvbGxvd2luZyAob3Igc2ltaWxhcikgdG8geW91ciAnJGNv
bmZpZ3VyZV9hYyc6Ci0kMiIKLSAgICAgIGZpCi0KLSAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIiRf
R19lcnJvcl9tc2ciCi0gICAgfQotfQotCi0KLSMgZnVuY19jbGVhbl9kYW5nbGluZ19zeW1saW5r
cwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFJlbW92ZSBhbnkgZGFuZ2xpbmcg
c3ltbGluayBtYXRjaGluZyAiKi5tNCIgb3IgIiouW2NoXSIgaW4gc29tZQotIyBnbnVsaWItcG9w
dWxhdGVkIGRpcmVjdG9yaWVzLiBTdWNoIC5tNCBmaWxlcyB3b3VsZCBjYXVzZSBhY2xvY2FsIHRv
Ci0jIGZhaWwuICBUaGUgZm9sbG93aW5nIHJlcXVpcmVzIEdOVSBmaW5kIDQuMi4zIG9yIG5ld2Vy
LiBDb25zaWRlcmluZwotIyB0aGUgdXN1YWwgcG9ydGFiaWxpdHkgY29uc3RyYWludHMgb2YgdGhp
cyBzY3JpcHQsIHRoYXQgbWF5IHNlZW0gYSB2ZXJ5Ci0jIGRlbWFuZGluZyByZXF1aXJlbWVudCwg
YnV0IGl0IHNob3VsZCBiZSBvay4gIElnbm9yZSBhbnkgZmFpbHVyZSwKLSMgd2hpY2ggaXMgZmlu
ZSwgc2luY2UgdGhpcyBpcyBvbmx5IGEgY29udmVuaWVuY2UgdG8gaGVscCBkZXZlbG9wZXJzCi0j
IGF2b2lkIHRoZSByZWxhdGl2ZWx5IHVudXN1YWwgY2FzZSB3aGVyZSBhIHN5bWxpbmtlZC10byAu
bTQgZmlsZSBpcwotIyBnaXQtcmVtb3ZlZCBmcm9tIGdudWxpYiBiZXR3ZWVuIHN1Y2Nlc3NpdmUg
cnVucyBvZiB0aGlzIHNjcmlwdC4KLWZ1bmNfY2xlYW5fZGFuZ2xpbmdfc3ltbGlua3MgKCkKLXsK
LSAgICAkZGVidWdfY21kCi0KLSAgICAkcmVxdWlyZV9tYWNyb19kaXIKLSAgICAkcmVxdWlyZV9z
b3VyY2VfYmFzZQotCi0gICAgZnVuY192ZXJib3NlICJjbGVhbmluZyBkYW5nbGluZyBzeW1saW5r
cyIKLQotICAgIGZpbmQgIiRtYWNyb19kaXIiICIkc291cmNlX2Jhc2UiIFwKLSAgICAgICAgLWRl
cHRoIFwoIC1uYW1lICcqLm00JyAtbyAtbmFtZSAnKi5bY2hdJyBcKSBcCi0gICAgICAgIC10eXBl
IGwgLXh0eXBlIGwgLWRlbGV0ZSA+IC9kZXYvbnVsbCAyPiYxCi19Ci0KLQotIyBmdW5jX2NsZWFu
X3VudXNlZF9tYWNyb3MKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEF1dG9wb2ludCBj
YW4gcmVzdWx0IGluIG92ZXItemVhbG91c2x5IGFkZGluZyBtYWNyb3MgaW50byAkbWFjcm9fZGly
Ci0jIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdCBhY3R1YWxseSB1c2VkLCBmb3IgZXhhbXBsZSB0
ZXN0cyB0byBoZWxwCi0jIGJ1aWxkIHRoZSAnaW50bCcgZGlyZWN0b3J5IGV2ZW4gdGhvdWdoIHlv
dSBoYXZlIHNwZWNpZmllZAotIyAnQU1fR05VX0dFVFRFWFQoW2V4dGVybmFsXSknIGluIHlvdXIg
Y29uZmlndXJlLmFjLiAgVGhpcyBmdW5jdGlvbgotIyBsb29rcyByZW1vdmVzIGFueSBtYWNybyBm
aWxlcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiBnbnVsaWIsICBidXQKLSMgYXJlIG5vdCAnbTRfaW5j
bHVkZSdkIGJ5ICdhY2xvY2FsLm00Jy4KLWZ1bmNfY2xlYW5fdW51c2VkX21hY3JvcyAoKQotewot
ICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2dudWxpYl9wYXRoCi0gICAgJHJlcXVpcmVf
bWFjcm9fZGlyCi0KLSAgICB0ZXN0IC1uICIkZ251bGliX3BhdGgiICYmIHRlc3QgLWYgYWNsb2Nh
bC5tNCAmJiB7Ci0gICAgICBhY2xvY2FsX200cz1gZmluZCAuIC1uYW1lIGFjbG9jYWwubTQgLXBy
aW50YAotCi0gICAgICAjIFdlIHVzZSAnbHN8Z3JlcCcgaW5zdGVhZCBvZiAnbHMgKi5tNCcgdG8g
YXZvaWQgZXhjZWVkaW5nCi0gICAgICAjIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRzIGluIHNv
bWUgc2hlbGxzLgotICAgICAgZm9yIGZpbGUgaW4gYGNkICIkbWFjcm9fZGlyIiAmJiBscyAtMSB8
JEdSRVAgJ1wubTQkJ2A7IGRvCi0KLQkjIFJlbW92ZSBhIG1hY3JvIGZpbGUgd2hlbiBhY2xvY2Fs
Lm00IGRvZXMgbm90IG00X2luY2x1ZGUgaXQuLi4KLSAgICAgICAgZnVuY19ncmVwX3EgJ200X2lu
Y2x1ZGUoW1tdJyRtYWNyb19kaXIvJGZpbGUnXSknICRhY2xvY2FsX200cyBcCi0gICAgICAgICAg
ICB8fCB0ZXN0ICEgLWYgIiRnbnVsaWJfcGF0aC9tNC8kZmlsZSIgfHwgewotCi0gICAgICAgICAg
ICAgICMgLi4uYW5kIHRoZXJlIGlzIGFuIGlkZW50aWNhbCBmaWxlIGluIGdudWxpYi4uLgotICAg
ICAgICAgICAgICBpZiBmdW5jX2NtcF9zICIkZ251bGliX3BhdGgvbTQvJGZpbGUiICIkbWFjcm9f
ZGlyLyRmaWxlIjsgdGhlbgotCi0gICAgICAgICAgICAgICAgIyAuLi5hbmQgaXQncyBub3QgaW4g
dGhlIHByZWNpb3VzIGxpc3QgKCdlY2hvJyBpcyBuZWVkZWQKLSAgICAgICAgICAgICAgICAjIGhl
cmUgdG8gc3F1YXNoIHdoaXRlc3BhY2UgZm9yIHRoZSBtYXRjaCBleHByZXNzaW9uKS4KLSAgICAg
ICAgICAgICAgICBjYXNlICIgImBlY2hvICRnbnVsaWJfcHJlY2lvdXNgIiAiIGluCi0gICAgICAg
ICAgICAgICAgICAqIiAkZmlsZSAiKikgOzsKLSAgICAgICAgICAgICAgICAgICopIHJtIC1mICIk
bWFjcm9fZGlyLyRmaWxlIgotICAgICAgICAgICAgICAgICAgICAgZnVuY192ZXJib3NlIFwKLSAg
ICAgICAgICAgICAgICAgICAgICAgInJlbW92aW5nIHVudXNlZCBnbnVsaWIgZmlsZSAnJG1hY3Jv
X2Rpci8kZmlsZSciCi0gICAgICAgICAgICAgICAgZXNhYwotICAgICAgICAgICAgICBmaQotICAg
ICAgICB9Ci0gICAgICBkb25lCi0gICAgfQotfQotCi0KLSMgZnVuY19za2lwX3BvX3JlY29tbWVu
ZGF0aW9uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBJZiB0aGVyZSBpcyBhIHBv
IGRpcmVjdG9yeSwgYW5kICctLXNraXAtcG8nIHdhc24ndCBwYXNzZWQsIGxldCB0aGUKLSMgdXNl
ciBrbm93IHRoYXQgdGhleSBjYW4gdXNlICctLXNraXAtcG8nIG9uIHN1YnNlcXVlbnQgaW52b2Nh
dGlvbnMuCi1mdW5jX3NraXBfcG9fcmVjb21tZW5kYXRpb24gKCkKLXsKLSAgICAkZGVidWdfY21k
Ci0KLSAgICB0ZXN0ICEgLWQgcG8gXAotICAgICAgICB8fCAkb3B0X3NraXBfcG8gXAotICAgICAg
ICB8fCBmdW5jX3dhcm5pbmcgcmVjb21tZW5kICJcCi1JZiB5b3VyIHBvZmlsZXMgYXJlIHVwLXRv
LWRhdGUsIHlvdSBjYW4gcmVydW4gYm9vdHN0cmFwCi1hcyAnJHByb2duYW1lIC0tc2tpcC1wbycg
dG8gYXZvaWQgcmVkb3dubG9hZGluZy4iCi19Ci0KLQotIyBmdW5jX3VwZGF0ZV9kb3R2ZXJzaW9u
Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRXZlbiB3aXRoICdnaXRsb2ctdG8tY2hhbmdl
bG9nJyBnZW5lcmF0ZWQgQ2hhbmdlTG9ncywgYXV0b21ha2UKLSMgd2lsbCBub3QgcnVuIHRvIGNv
bXBsZXRpb24gd2l0aCBubyBDaGFuZ2VMb2cgZmlsZS4KLWZ1bmNfdXBkYXRlX2RvdHZlcnNpb24g
KCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICB0ZXN0IC1mICIkYnVpbGRfYXV4L2dpdC12ZXJz
aW9uLWdlbiIgJiYgewotICAgICAgX0dfbWVzc2FnZT0idXBkYXRpbmcgLnZlcnNpb24iCi0gICAg
ICB0ZXN0IC1mIC52ZXJzaW9uICYmIHsKLSAgICAgICAgbXYgLnZlcnNpb24gLnZlcnNpb25+Ci0J
ZnVuY19hcHBlbmQgX0dfbWVzc2FnZSAiIChiYWNrdXAgaW4gLnZlcnNpb25+KSIKLSAgICAgIH0K
LSAgICAgIGZ1bmNfdmVyYm9zZSAidXBkYXRpbmcgLnZlcnNpb24iCi0KLSAgICAgICRidWlsZF9h
dXgvZ2l0LXZlcnNpb24tZ2VuIGR1bW15LWFyZyA+IC52ZXJzaW9uCi0gICAgfQotfQotCi0KLQot
IyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFJlc291cmNlIG1hbmFnZW1lbnQuICMjCi0j
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotCi0jIFRoaXMgc2VjdGlvbiBjb250YWlucyBkZWZp
bml0aW9ucyBmb3IgZnVuY3Rpb25zIHRoYXQgZWFjaCBlbnN1cmUgYQotIyBwYXJ0aWN1bGFyIHJl
c291cmNlIChhIGZpbGUsIG9yIGEgbm9uLWVtcHR5IGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgZm9y
Ci0jIGV4YW1wbGUpIGlzIGF2YWlsYWJsZSwgYW5kIGlmIGFwcHJvcHJpYXRlIHRvIGV4dHJhY3Qg
ZGVmYXVsdCB2YWx1ZXMKLSMgZnJvbSBwZXJ0aW5lbnQgcGFja2FnZSBmaWxlcy4gIFdoZXJlIGEg
dmFyaWFibGUgYWxyZWFkeSBoYXMgYSBub24tCi0jIGVtcHR5IHZhbHVlIChhcyBzZXQgYnkgdGhl
IHBhY2thZ2UncyAnYm9vdHN0cmFwLmNvbmYnKSwgdGhhdCB2YWx1ZSBpcwotIyB1c2VkIGluIHBy
ZWZlcmVuY2UgdG8gZGVyaXZpbmcgdGhlIGRlZmF1bHQuIENhbGwgdGhlbSB1c2luZyB0aGVpcgot
IyBhc3NvY2lhdGVkICdyZXF1aXJlXyonIHZhcmlhYmxlIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJl
IGV4ZWN1dGVkLCBhdAotIyBtb3N0LCBvbmNlLgotCi0KLSMgcmVxdWlyZV9nbnVsaWJfZ2l0X3N1
Ym1vZHVsZXMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgSW5pdGlhbGl6ZSBh
bGwgZ2l0IG1vZHVsZXMgZnJvbSAkZ251bGliX2dpdF9zdWJtb2R1bGVzIGJlZm9yZSB3ZQotIyBy
dW4gJ2dudWxpYi10b29sJy4KLXJlcXVpcmVfZ251bGliX2dpdF9zdWJtb2R1bGVzPWZ1bmNfcmVx
dWlyZV9nbnVsaWJfZ2l0X3N1Ym1vZHVsZXMKLWZ1bmNfcmVxdWlyZV9nbnVsaWJfZ2l0X3N1Ym1v
ZHVsZXMgKCkKLXsKLSAgICB0ZXN0IC1uICIkZ251bGliX2dpdF9zdWJtb2R1bGVzIiAmJiB7Ci0g
ICAgICBmb3IgX0dfc3VibW9kdWxlIGluICRnbnVsaWJfZ2l0X3N1Ym1vZHVsZXMKLSAgICAgIGRv
Ci0gICAgICAgIGZ1bmNfc2hvd19ldmFsICJnaXQgc3VibW9kdWxlIGluaXQgLS0gJF9HX3N1Ym1v
ZHVsZSIgXAotICAgICAgICAgICAgJiYgZnVuY19zaG93X2V2YWwgImdpdCBzdWJtb2R1bGUgdXBk
YXRlIC0tICRfR19zdWJtb2R1bGUiIFwKLSAgICAgICAgICAgIHx8IGZ1bmNfZmF0YWxfZXJyb3Ig
IlVuYWJsZSB0byBpbml0IGdpdCBtb2R1bGUgJyRfR19zdWJtb2R1bGUnLiIKLSAgICAgIGRvbmUK
LSAgICB9Ci0KLSAgICByZXF1aXJlX2dudWxpYl9naXRfc3VibW9kdWxlcz06Ci19Ci0KLQotIyBy
ZXF1aXJlX2NoZWNrb3V0X29ubHlfZmlsZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
IyBCYWlsIG91dCAgaWYgdGhpcyBwYWNrYWdlIG9ubHkgYm9vdHN0cmFwcyBwcm9wZXJseSBmcm9t
IGEgcmVwb3NpdG9yeQotIyBjaGVja291dC4KLXJlcXVpcmVfY2hlY2tvdXRfb25seV9maWxlPWZ1
bmNfcmVxdWlyZV9jaGVja291dF9vbmx5X2ZpbGUKLWZ1bmNfcmVxdWlyZV9jaGVja291dF9vbmx5
X2ZpbGUgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkb3B0X2ZvcmNlIHx8IHsKLSAgICAg
IHRlc3QgLW4gIiRjaGVja291dF9vbmx5X2ZpbGUiICYmIHRlc3QgISAtZiAiJGNoZWNrb3V0X29u
bHlfZmlsZSIgXAotICAgICAgICAgICYmIGZ1bmNfZmF0YWxfZXJyb3IgIlwKLUJvb3RzdHJhcHBp
bmcgZnJvbSBhIG5vbi1jaGVja2VkLW91dCBkaXN0cmlidXRpb24gaXMgcmlza3kuCi1JZiB5b3Ug
d2lzaCB0byBib290c3RyYXAgYW55d2F5LCB1c2UgdGhlICctLWZvcmNlJyBvcHRpb24uIgotICAg
IH0KLQotICAgIHJlcXVpcmVfY2hlY2tvdXRfb25seV9maWxlPToKLX0KLQotCi0jIHJlcXVpcmVf
YWNsb2NhbF9hbWZsYWdzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSAnJGFj
bG9jYWxfYW1mbGFncycgaGFzIGEgc2Vuc2libGUgZGVmYXVsdCwgZXh0cmFjdGVkIGZyb20KLSMg
J01ha2VmaWxlLmFtJyBpZiBuZWNlc3NhcnkuCi1yZXF1aXJlX2FjbG9jYWxfYW1mbGFncz1mdW5j
X3JlcXVpcmVfYWNsb2NhbF9hbWZsYWdzCi1mdW5jX3JlcXVpcmVfYWNsb2NhbF9hbWZsYWdzICgp
Ci17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfbWFrZWZpbGVfYW0KLQotICAgIF9H
X3NlZF9leHRyYWN0X2FjbG9jYWxfYW1mbGFncz0nc3wjLiokfHwKLSAgICAgICAgL15bCSBdKkFD
TE9DQUxfQU1GTEFHU1sJIF0qPS8gewotICAgICAgICAgICAgc3xeLio9WwkgXSpcKC4qXCl8YWNs
b2NhbF9hbWZsYWdzPSJcMSJ8Ci0gICAgICAgICAgICBwCi0gICAgICAgIH0nCi0KLSAgICBfR19h
Y2xvY2FsX2ZsYWdzX2NtZD1gJFNFRCAtbiAiJF9HX3NlZF9leHRyYWN0X2FjbG9jYWxfYW1mbGFn
cyIgXAotICAgICAgICAiJG1ha2VmaWxlX2FtImAKLSAgICBldmFsICIkX0dfYWNsb2NhbF9mbGFn
c19jbWQiCi0KLSAgICBmdW5jX3ZlcmJvc2UgIkFDTE9DQUxfQU1GTEFHUz0nJGFjbG9jYWxfYW1m
bGFncyciCi0KLSAgICByZXF1aXJlX2FjbG9jYWxfYW1mbGFncz06Ci19Ci0KLQotIyByZXF1aXJl
X2F1dG9oZWFkZXIKLSMgLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNraXAgYXV0b2hlYWRlciBpZiBp
dCdzIG5vdCBuZWVkZWQuCi1yZXF1aXJlX2F1dG9oZWFkZXI9ZnVuY19yZXF1aXJlX2F1dG9oZWFk
ZXIKLWZ1bmNfcmVxdWlyZV9hdXRvaGVhZGVyICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAg
dGVzdCB0cnVlID0gIiRBVVRPSEVBREVSIiB8fCB7Ci0gICAgICBmdW5jX2V4dHJhY3RfdHJhY2Ug
QUNfQ09ORklHX0hFQURFUlMKLSAgICAgIHRlc3QgLW4gIiRmdW5jX2V4dHJhY3RfdHJhY2VfcmVz
dWx0IiBcCi0JICB8fCBmdW5jX2V4dHJhY3RfdHJhY2UgQUNfQ09ORklHX0hFQURFUgotCi0gICAg
ICB0ZXN0IC1uICIkZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdCIgfHwgewotICAgICAgICBBVVRP
SEVBREVSPXRydWUKLQotICAgICAgICBmdW5jX3ZlcmJvc2UgImV4cG9ydCBBVVRPSEVBREVSPSck
QVVUT0hFQURFUiciCi0KLSAgICAgICAgIyBNYWtlIHN1cmUgdGhlIHNlYXJjaCByZXN1bHQgaXMg
dmlzaWJsZSB0byBzdWJzaGVsbHMKLSAgICAgICAgZXhwb3J0IEFVVE9IRUFERVIKLSAgICAgIH0K
LSAgICB9Ci0KLSAgICByZXF1aXJlX2F1dG9oZWFkZXI9OgotfQotCi0KLSMgcmVxdWlyZV9hdXRv
bWFrZV9vcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFeHRyYWN0IG9wdGlv
bnMgZnJvbSBBTV9BVVRPTUFLRV9JTklULgotcmVxdWlyZV9hdXRvbWFrZV9vcHRpb25zPWZ1bmNf
cmVxdWlyZV9hdXRvbWFrZV9vcHRpb25zCi1mdW5jX3JlcXVpcmVfYXV0b21ha2Vfb3B0aW9ucyAo
KQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1bmNfZXh0cmFjdF90cmFjZSBBTV9JTklUX0FV
VE9NQUtFCi0gICAgYXV0b21ha2Vfb3B0aW9ucz0kZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdAot
Ci0gICAgcmVxdWlyZV9hdXRvbWFrZV9vcHRpb25zPToKLX0KLQotCi0jIHJlcXVpcmVfYXV0b3Bv
aW50Ci0jIC0tLS0tLS0tLS0tLS0tLS0tCi0jIFNraXAgYXV0b3BvaW50IGlmIGl0J3Mgbm90IG5l
ZWRlZC4KLXJlcXVpcmVfYXV0b3BvaW50PWZ1bmNfcmVxdWlyZV9hdXRvcG9pbnQKLWZ1bmNfcmVx
dWlyZV9hdXRvcG9pbnQgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICB0ZXN0IHRydWUgPSAi
JEFVVE9QT0lOVCIgfHwgewotICAgICAgZnVuY19leHRyYWN0X3RyYWNlIEFNX0dOVV9HRVRURVhU
X1ZFUlNJT04KLQotICAgICAgdGVzdCAtbiAiJGZ1bmNfZXh0cmFjdF90cmFjZV9yZXN1bHQiIHx8
IHsKLSAgICAgICAgQVVUT1BPSU5UPXRydWUKLQotICAgICAgICBmdW5jX3ZlcmJvc2UgImV4cG9y
dCBBVVRPUE9JTlQ9JyRBVVRPUE9JTlQnIgotCi0gICAgICAgICMgTWFrZSBzdXJlIHRoZSBzZWFy
Y2ggcmVzdWx0IGlzIHZpc2libGUgdG8gc3Vic2hlbGxzCi0gICAgICAgIGV4cG9ydCBBVVRPUE9J
TlQKLSAgICAgIH0KLSAgICB9Ci0KLSAgICByZXF1aXJlX2F1dG9wb2ludD06Ci19Ci0KLQotIyBy
ZXF1aXJlX2Jvb3RzdHJhcF91cHRvZGF0ZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
IyBDb21wbGFpbiBpZiB0aGUgdmVyc2lvbiBvZiBib290c3RyYXAgaW4gdGhlIGdudWxpYiBkaXJl
Y3RvcnkgZGlmZmVycwotIyBmcm9tIHRoZSBvbmUgd2UgYXJlIHJ1bm5pbmcuCi1yZXF1aXJlX2Jv
b3RzdHJhcF91cHRvZGF0ZT1mdW5jX3JlcXVpcmVfYm9vdHN0cmFwX3VwdG9kYXRlCi1mdW5jX3Jl
cXVpcmVfYm9vdHN0cmFwX3VwdG9kYXRlICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJl
cXVpcmVfYnVpbGRfYXV4Ci0KLSAgICBfR19ib290c3RyYXBfc291cmNlcz0iCi0gICAgICAkYnVp
bGRfYXV4L2Jvb3RzdHJhcC5pbgotICAgICAgJGJ1aWxkX2F1eC9leHRyYWN0LXRyYWNlCi0gICAg
ICAkYnVpbGRfYXV4L2Z1bmNsaWIuc2gKLSAgICAgICRidWlsZF9hdXgvb3B0aW9ucy1wYXJzZXIK
LSAgICAiCi0KLSAgICBfR19taXNzaW5nX2Jvb3RzdHJhcF9zb3VyY2VzPWZhbHNlCi0gICAgZm9y
IF9HX3NyYyBpbiAkX0dfYm9vdHN0cmFwX3NvdXJjZXM7IGRvCi0gICAgICB0ZXN0IC1mICIkX0df
c3JjIiB8fCBfR19taXNzaW5nX2Jvb3RzdHJhcF9zb3VyY2VzPToKLSAgICBkb25lCi0KLSAgICBp
ZiAkX0dfbWlzc2luZ19ib290c3RyYXBfc291cmNlczsgdGhlbgotICAgICAgZnVuY193YXJuaW5n
IHVwZ3JhZGUgIlwKLVBsZWFzZSBhZGQgYm9vdHN0cmFwIHRvIHlvdXIgZ251bGliX21vZHVsZXMg
bGlzdCBpbgotJ2Jvb3RzdHJhcC5jb25mJywgc28gdGhhdCBJIGNhbiB0ZWxsIHlvdSB3aGVuIHRo
ZXJlIGFyZQotdXBkYXRlcyBhdmFpbGFibGUuIgotICAgIGVsc2UKLSAgICAgIHJtIC1mIGJvb3Rz
dHJhcC5uZXcKLSAgICAgICRidWlsZF9hdXgvaW5saW5lLXNvdXJjZSAkYnVpbGRfYXV4L2Jvb3Rz
dHJhcC5pbiA+IGJvb3RzdHJhcC5uZXcKLQotICAgICAgaWYgZnVuY19jbXBfcyAiJHByb2dwYXRo
IiBib290c3RyYXAubmV3OyB0aGVuCi0gICAgICAgIHJtIC1mIGJvb3RzdHJhcC5uZXcKLQlmdW5j
X3ZlcmJvc2UgImJvb3RzdHJhcCBzY3JpcHQgdXAgdG8gZGF0ZSIKLSAgICAgIGVsc2UKLSAgICAg
ICAgY2htb2QgNTU1IGJvb3RzdHJhcC5uZXcKLSAgICAgICAgZnVuY193YXJuaW5nIHVwZ3JhZGUg
IlwKLUFuIHVwZGF0ZWQgYm9vdHN0cmFwIHNjcmlwdCBoYXMgYmVlbiBnZW5lcmF0ZWQgZm9yIHlv
dSBpbgotJ2Jvb3RzdHJhcC5uZXcnLiAgQWZ0ZXIgeW91J3ZlIHZlcmlmaWVkIHRoYXQgeW91IHdh
bnQKLXRoZSBjaGFuZ2VzLCB5b3UgY2FuIHVwZGF0ZSB3aXRoOgotICAgIG12IC1mIGJvb3RzdHJh
cC5uZXcgJHByb2duYW1lCi0gICAgLi8kcHJvZ25hbWUKLQotT3IgeW91IGNhbiBkaXNhYmxlIHRo
aXMgY2hlY2sgcGVybWFuZW50bHkgYnkgYWRkaW5nIHRoZQotZm9sbG93aW5nIHRvICdib290c3Ry
YXAuY29uZic6Ci0gICAgcmVxdWlyZV9ib290c3RyYXBfdXB0b2RhdGU9OiIKLSAgICAgIGZpCi0g
ICAgZmkKLQotICAgIHJlcXVpcmVfYm9vdHN0cmFwX3VwdG9kYXRlPToKLX0KLQotCi0jIHJlcXVp
cmVfYnVpbGRfYXV4Ci0jIC0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGF0ICckYnVpbGRf
YXV4JyBpcyBzZXQsIGFuZCBpZiBpdCBkb2Vzbid0IGFscmVhZHkgcG9pbnQgdG8gYW4KLSMgZXhp
c3RpbmcgZGlyZWN0b3J5LCBjcmVhdGUgb25lLgotcmVxdWlyZV9idWlsZF9hdXg9ZnVuY19yZXF1
aXJlX2J1aWxkX2F1eAotZnVuY19yZXF1aXJlX2J1aWxkX2F1eCAoKQotewotICAgICRkZWJ1Z19j
bWQKLQotICAgIHRlc3QgLW4gIiRidWlsZF9hdXgiIHx8IHsKLSAgICAgIGZ1bmNfZXh0cmFjdF90
cmFjZV9maXJzdCBBQ19DT05GSUdfQVVYX0RJUgotICAgICAgYnVpbGRfYXV4PSRmdW5jX2V4dHJh
Y3RfdHJhY2VfZmlyc3RfcmVzdWx0Ci0gICAgICBmdW5jX2NoZWNrX2NvbmZpZ3VyYXRpb24gYnVp
bGRfYXV4IFwKLSAgICAgICAgICAiQUNfQ09ORklHX0FVWF9ESVIoW25hbWUgb2YgYSBkaXJlY3Rv
cnkgZm9yIGJ1aWxkIHNjcmlwdHNdKSIKLQotICAgICAgZnVuY192ZXJib3NlICJidWlsZF9hdXg9
JyRidWlsZF9hdXgnIgotICAgIH0KLQotICAgICRyZXF1aXJlX3ZjX2lnbm9yZV9maWxlcwotCi0g
ICAgIyBJZiB0aGUgYnVpbGRfYXV4IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQg
bm93LCBhbmQgbWFyayBpdAotICAgICMgYXMgaWdub3JlZCBmb3IgdGhlIFZDUy4KLSAgICBpZiB0
ZXN0ICEgLWQgIiRidWlsZF9hdXgiOyB0aGVuCi0gICAgICBmdW5jX3Nob3dfZXZhbCAibWtkaXIg
JyRidWlsZF9hdXgnIgotCi0gICAgICB0ZXN0IC1uICIkdmNfaWdub3JlX2ZpbGVzIiBcCi0gICAg
ICAgICAgfHwgZnVuY19pbnNlcnRfaWZfYWJzZW50ICIkYnVpbGRfYXV4IiAkdmNfaWdub3JlX2Zp
bGVzCi0gICAgZmkKLQotICAgIHJlcXVpcmVfYnVpbGRfYXV4PToKLX0KLQotCi0jIHJlcXVpcmVf
YnVpbGRyZXFfYXV0b2J1aWxkCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRyeSB0
byBmaW5kIHdoZXRoZXIgdGhlIGJvb3RzdHJhcCByZXF1aXJlcyBhdXRvYnVpbGQuCi1yZXF1aXJl
X2J1aWxkcmVxX2F1dG9idWlsZD1mdW5jX3JlcXVpcmVfYnVpbGRyZXFfYXV0b2J1aWxkCi1mdW5j
X3JlcXVpcmVfYnVpbGRyZXFfYXV0b2J1aWxkICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAg
JHJlcXVpcmVfbWFjcm9fZGlyCi0KLSAgICB0ZXN0IC1mICIkbWFjcm9fZGlyL2F1dG9idWlsZC5t
NCIgXAotICAgICAgICB8fCBwcmludGYgJyVzXG4nICIkYnVpbGRyZXEiIHxmdW5jX2dyZXBfcSAn
XlsJIF0qYXV0b2J1aWxkJyBcCi0gICAgICAgIHx8IHsKLSAgICAgIGZ1bmNfZXh0cmFjdF90cmFj
ZSBBQl9JTklUCi0gICAgICB0ZXN0IC1uICIkZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdCIgJiYg
ewotICAgICAgICBmdW5jX2FwcGVuZCBidWlsZHJlcSAnYXV0b2J1aWxkIC0gaHR0cDovL2pvc2Vm
c3Nvbi5vcmcvYXV0b2J1aWxkLwotJwotICAgICAgICBmdW5jX3ZlcmJvc2UgImF1dG8tYWRkaW5n
ICdhdXRvYnVpbGQnIHRvIGJ1aWxkIHJlcXVpcmVtZW50cyIKLSAgICAgIH0KLSAgICB9Ci0KLSAg
ICByZXF1aXJlX2J1aWxkcmVxX2F1dG9idWlsZD06Ci19Ci0KLQotIyByZXF1aXJlX2J1aWxkcmVx
X2F1dG9jb25mCi0jIHJlcXVpcmVfYnVpbGRyZXFfYXV0b3BvaW50Ci0jIHJlcXVpcmVfYnVpbGRy
ZXFfbGlidG9vbGl6ZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVHJ5IHRvIGZp
bmQgdGhlIG1pbmltdW0gY29tcGF0aWJsZSB2ZXJzaW9uIG9mIGF1dG9jb25mL2xpYnRvb2wKLSMg
cmVxdWlyZWQgdG8gYm9vdHN0cmFwIHN1Y2Nlc3NmdWxseSwgYW5kIGFkZCBpdCB0byAnJGJ1aWxk
cmVxJy4KLWZvciB0b29sIGluIGF1dG9jb25mIGxpYnRvb2xpemUgYXV0b3BvaW50OyBkbwotICBi
PSR0b29sCi0gIHY9cmVxdWlyZV9idWlsZHJlcV8ke3Rvb2x9Ci0gIGY9ZnVuY18kdgotICBjYXNl
ICR0b29sIGluCi0gICAgYXV0b2NvbmYpIG09QUNfUFJFUkVRIDs7Ci0gICAgbGlidG9vbGl6ZSkg
bT1MVF9QUkVSRVE7IGI9bGlidG9vbCA7OwotICAgIGF1dG9wb2ludCkgbT1BTV9HTlVfR0VUVEVY
VF9WRVJTSU9OIGI9Z2V0dGV4dCA7OwotICBlc2FjCi0KLSAgZXZhbCAkdic9JyRmJwotICAnJGYn
ICgpCi0gIHsKLSAgICAkZGVidWdfY21kCi0KLSAgICAjIFRoZSBmb2xsb3dpbmcgaXMgaWdub3Jl
ZCBpZiB1bmRlZmluZWQsIGJ1dCBtaWdodCBiZSBuZWNlc3NhcnkKLSAgICAjIGluIG9yZGVyIGZv
ciBgZnVuY19maW5kX3Rvb2xgIHRvIHJ1bi4KLSAgICAke3JlcXVpcmVfJyR0b29sJy06fQotCi0g
ICAgcHJpbnRmICdcJyclc1xuJ1wnJyAiJGJ1aWxkcmVxIiB8ZnVuY19ncmVwX3EgJ1wnJ15bCSBd
KickdG9vbFwnJyB8fCB7Ci0gICAgICBmdW5jX2V4dHJhY3RfdHJhY2UgJyRtJwotICAgICAgX0df
dmVyc2lvbj0kZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdAotICAgICAgdGVzdCAtbiAiJF9HX3Zl
cnNpb24iICYmIHsKLSAgICAgICAgZnVuY19hcHBlbmQgYnVpbGRyZXEgIlwKLSAgICAgICAgICAg
ICckdG9vbCcgJF9HX3ZlcnNpb24gaHR0cDovL3d3dy5nbnUub3JnL3MvJyRiJwotIgotICAgICAg
ICBmdW5jX3ZlcmJvc2UgXAotICAgICAgICAgICAgImF1dG8tYWRkaW5nICdcJyR0b29sJy0kX0df
dmVyc2lvbidcJycgdG8gYnVpbGQgcmVxdWlyZW1lbnRzIgotICAgICAgfQotICAgIH0KLQotICAg
ICckdic9OgotICB9Ci0nCi1kb25lCi0KLQotIyByZXF1aXJlX2J1aWxkcmVxX2F1dG9tYWtlCi0j
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgVHJ5IHRvIGZpbmQgdGhlIG1pbmltdW0gY29t
cGF0aWJsZSB2ZXJzaW9uIG9mIGF1dG9tYWtlIHJlcXVpcmVkIHRvCi0jIGJvb3RzdHJhcCBzdWNj
ZXNzZnVsbHksIGFuZCBhZGQgaXQgdG8gJyRidWlsZHJlcScuCi1yZXF1aXJlX2J1aWxkcmVxX2F1
dG9tYWtlPWZ1bmNfcmVxdWlyZV9idWlsZHJlcV9hdXRvbWFrZQotZnVuY19yZXF1aXJlX2J1aWxk
cmVxX2F1dG9tYWtlICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgIyBpZiBhdXRvbWFrZSBp
cyBub3QgYWxyZWFkeSBsaXN0ZWQgaW4gJGJ1aWxkcmVxLi4uCi0gICAgcHJpbnRmICclc1xuJyAi
JGJ1aWxkcmVxIiB8ZnVuY19ncmVwX3EgYXV0b21ha2UgfHwgewotICAgICAgZnVuY19leHRyYWN0
X3RyYWNlIEFNX0lOSVRfQVVUT01BS0UKLQotICAgICAgIyAuLi5hbmQgQU1fSU5JVF9BVVRPTUFL
RSBpcyBkZWNsYXJlZC4uLgotICAgICAgdGVzdCAtbiAiJGZ1bmNfZXh0cmFjdF90cmFjZV9yZXN1
bHQiICYmIHsKLSAgICAgICAgYXV0b21ha2VfdmVyc2lvbj1gJEVDSE8gIiRmdW5jX2V4dHJhY3Rf
dHJhY2VfcmVzdWx0IiBcCi0gICAgICAgICAgIHwkU0VEIC1lICdzfFteMC05XSp8fCcgLWUgJ3N8
IC4qJHx8J2AKLSAgICAgICAgdGVzdCAtbiAiJGF1dG9tYWtlX3ZlcnNpb24iIHx8IGF1dG9tYWtl
X3ZlcnNpb249LQotCi0gICAgICAgIGZ1bmNfYXBwZW5kIGJ1aWxkcmVxICJcCi0gICAgICAgICAg
ICBhdXRvbWFrZSAkYXV0b21ha2VfdmVyc2lvbiBodHRwOi8vd3d3LmdudS5vcmcvcy9hdXRvbWFr
ZQotIgotICAgICAgICBmdW5jX3ZlcmJvc2UgXAotICAgICAgICAgICAgImF1dG8tYWRkaW5nICdh
dXRvbWFrZS0kYXV0b21ha2VfdmVyc2lvbicgdG8gYnVpbGQgcmVxdWlyZW1lbnRzIgotICAgICAg
fQotICAgIH0KLQotICAgIHJlcXVpcmVfYnVpbGRyZXFfYXV0b21ha2U9OgotfQotCi0KLSMgcmVx
dWlyZV9idWlsZHJlcV9wYXRjaAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEF1dG9tYXRp
Y2FsbHkgYWRkIGEgcGF0Y2ggYnVpbGQtcmVxdWlyZW1lbnQgaWYgdGhlcmUgYXJlIGRpZmYgZmls
ZXMKLSMgaW4gJGxvY2FsX2dsX3BhdGguCi1yZXF1aXJlX2J1aWxkcmVxX3BhdGNoPWZ1bmNfcmVx
dWlyZV9idWlsZHJlcV9wYXRjaAotZnVuY19yZXF1aXJlX2J1aWxkcmVxX3BhdGNoICgpCi17Ci0g
ICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfbG9jYWxfZ2xfcGF0aAotCi0gICAgIyBUaGlz
IGVuc3VyZXMgUEFUQ0ggaXMgc2V0IGFwcHJvcHJpYXRlbHkgYnkgdGhlIHRpbWUKLSAgICAjIGZ1
bmNfY2hlY2tfdmVyc2lvbnMgZW5mb3JjZXMgJGJ1aWxkcmVxLgotICAgICRyZXF1aXJlX3BhdGNo
Ci0KLSAgICAjIElmIHBhdGNoIGlzIG5vdCBhbHJlYWR5IGxpc3RlZCBpbiAkYnVpbGRyZXEuLi4K
LSAgICBwcmludGYgJyVzXG4nICIkYnVpbGRyZXEiIHxmdW5jX2dyZXBfcSAnXlsJIF0qcGF0Y2gn
IHx8IHsKLSAgICAgIGV2YWwgInNldCBkdW1teSAkbG9jYWxfZ2xfcGF0aF9xdW90ZWQiIDsgc2hp
ZnQKLQotICAgICAgZm9yIF9HX2RpcgotICAgICAgZG8KLSAgICAgICAgIyBUaGUgdWdseSBmaW5k
IGludm9jYXRpb24gaXMgbmVjZXNzYXJ5IHRvIGV4aXQgd2l0aCBub24temVybwotICAgICAgICAj
IHN0YXR1cyBmb3Igb2xkIGZpbmQgYmluYXJpZXMgdGhhdCBkb24ndCBzdXBwb3J0IC1leGVjIGZ1
bGx5LgotICAgICAgICBpZiB0ZXN0ICEgLWQgIiRfR19kaXIiIFwKLSAgICAgICAgICAgIHx8IGZp
bmQgIiRfR19kaXIiIC1uYW1lICIqLmRpZmYiIC1leGVjIGZhbHNlIHt9IFw7IDsgdGhlbiA6Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICBmdW5jX2FwcGVuZCBidWlsZHJlcSAicGF0Y2ggLSBodHRw
Oi8vd3d3LmdudS5vcmcvcy9wYXRjaCRubCIKLSAgICAgICAgICBicmVhawotICAgICAgICBmaQot
ICAgICAgZG9uZQotICAgIH0KLQotICAgIHJlcXVpcmVfYnVpbGRyZXFfcGF0Y2g9OgotfQotCi0K
LSMgcmVxdWlyZV9idWlsZHRvb2xzX3VwdG9kYXRlCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBFbnN1cmUgYWxsIHRoZSBwYWNrYWdlcyBsaXN0ZWQgaW4gQlVJTERSRVFTIGFyZSBh
dmFpbGFibGUgb24gdGhlIGJ1aWxkCi0jIG1hY2hpbmUgYXQgdGhlIG1pbmltdW0gdmVyc2lvbnMg
b3IgYmV0dGVyLgotcmVxdWlyZV9idWlsZHRvb2xzX3VwdG9kYXRlPWZ1bmNfcmVxdWlyZV9idWls
ZHRvb2xzX3VwdG9kYXRlCi1mdW5jX3JlcXVpcmVfYnVpbGR0b29sc191cHRvZGF0ZSAoKQotewot
ICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2J1aWxkcmVxX2F1dG9idWlsZAotICAgICRy
ZXF1aXJlX2J1aWxkcmVxX2F1dG9jb25mCi0gICAgJHJlcXVpcmVfYnVpbGRyZXFfYXV0b21ha2UK
LSAgICAkcmVxdWlyZV9idWlsZHJlcV9saWJ0b29saXplCi0gICAgJHJlcXVpcmVfYnVpbGRyZXFf
YXV0b3BvaW50Ci0gICAgJHJlcXVpcmVfYnVpbGRyZXFfcGF0Y2gKLQotICAgIHRlc3QgLW4gIiRi
dWlsZHJlcSIgJiYgewotICAgICAgX0dfZXJyb3JfaGRyPQotCi0gICAgICBmdW5jX2NoZWNrX3Zl
cnNpb25zICRidWlsZHJlcQotICAgICAgJGZ1bmNfY2hlY2tfdmVyc2lvbnNfcmVzdWx0IHx8IHsK
LSAgICAgICAgdGVzdCAtbiAiJGJ1aWxkcmVxX3JlYWRtZSIgXAotICAgICAgICAgICAgJiYgdGVz
dCAtZiAiJGJ1aWxkcmVxX3JlYWRtZSIgXAotICAgICAgICAgICAgJiYgX0dfZXJyb3JfaGRyPSJc
Ci0kYnVpbGRyZXFfcmVhZG1lIGV4cGxhaW5zIGhvdyB0byBvYnRhaW4gdGhlc2UgcHJlcmVxdWlz
aXRlIHByb2dyYW1zOgotIgotICAgICAgICBmdW5jX3N0cnRhYmxlIDAgMTEgMTIgMzYgXAotICAg
ICAgICAgICAgIlByb2dyYW0iICJNaW5fdmVyc2lvbiIgIkhvbWVwYWdlIiAkYnVpbGRyZXEKLSAg
ICAgICAgZnVuY19mYXRhbF9lcnJvciAiJF9HX2Vycm9yX2hkciRmdW5jX3N0cnRhYmxlX3Jlc3Vs
dCIKLSAgICAgIH0KLSAgICB9Ci0KLSAgICByZXF1aXJlX2J1aWxkdG9vbHNfdXB0b2RhdGU9Ogot
fQotCi0KLSMgcmVxdWlyZV9jb3B5cmlnaHRfaG9sZGVyCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBFbnN1cmUgdGhlcmUgaXMgYSBzZW5zaWJsZSBub24tZW1wdHkgZGVmYXVsdCB2YWx1
ZSBpbiAnJGNvcHlyaWdodF9ob2xkZXInLgotcmVxdWlyZV9jb3B5cmlnaHRfaG9sZGVyPWZ1bmNf
cmVxdWlyZV9jb3B5cmlnaHRfaG9sZGVyCi1mdW5jX3JlcXVpcmVfY29weXJpZ2h0X2hvbGRlciAo
KQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIHRlc3QgLW4gIiRjb3B5cmlnaHRfaG9sZGVyIiB8
fCB7Ci0gICAgICBjb3B5cmlnaHRfaG9sZGVyPSdGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4nCi0gICAgICBmdW5jX3dhcm5pbmcgc2V0dGluZ3MgIlwKLVBsZWFzZSBzZXQgY29weXJpZ2h0
X2hvbGRlciBleHBsaWNpdGx5IGluICdib290c3RyYXAuY29uZic7Ci1kZWZhdWx0aW5nIHRvICck
Y29weXJpZ2h0X2hvbGRlcicuIgotICAgIH0KLQotICAgIHJlcXVpcmVfY29weXJpZ2h0X2hvbGRl
cj06Ci19Ci0KLQotIyByZXF1aXJlX2RvY19iYXNlCi0jIC0tLS0tLS0tLS0tLS0tLS0KLSMgRW5z
dXJlIGRvY19iYXNlIGhhcyBhIHNlbnNpYmxlIHZhbHVlLCBleHRyYWN0ZWQgZnJvbSAnZ251bGli
LWNhY2hlLm00JwotIyBpZiBwb3NzaWJsZSwgb3RoZXJ3aXNlIGxldHRpbmcgJ2dudWxpYi10b29s
JyBwaWNrIGEgZGVmYXVsdC4KLXJlcXVpcmVfZG9jX2Jhc2U9ZnVuY19yZXF1aXJlX2RvY19iYXNl
Ci1mdW5jX3JlcXVpcmVfZG9jX2Jhc2UgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkcmVx
dWlyZV9nbnVsaWJfY2FjaGUKLQotICAgIHRlc3QgLWYgIiRnbnVsaWJfY2FjaGUiICYmIHRlc3Qg
LXogIiRkb2NfYmFzZSIgJiYgewotICAgICAgZnVuY19leHRyYWN0X3RyYWNlX2ZpcnN0ICJnbF9E
T0NfQkFTRSIgIiRnbnVsaWJfY2FjaGUiCi0gICAgICBkb2NfYmFzZT0kZnVuY19leHRyYWN0X3Ry
YWNlX2ZpcnN0X3Jlc3VsdAotCi0gICAgICB0ZXN0IC1uICIkZG9jX2Jhc2UiICYmIGZ1bmNfdmVy
Ym9zZSAiZG9jX2Jhc2U9JyRkb2NfYmFzZSciCi0gICAgfQotCi0gICAgcmVxdWlyZV9kb2NfYmFz
ZT06Ci19Ci0KLQotIyByZXF1aXJlX2RvdGdpdG1vZHVsZXMKLSMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0jIEVuc3VyZSB3ZSBoYXZlIGEgJy5naXRtb2R1bGVzJyBmaWxlLCB3aXRoIGFwcHJvcHJp
YXRlICdnbnVsaWInIHNldHRpbmdzLgotcmVxdWlyZV9kb3RnaXRtb2R1bGVzPWZ1bmNfcmVxdWly
ZV9kb3RnaXRtb2R1bGVzCi1mdW5jX3JlcXVpcmVfZG90Z2l0bW9kdWxlcyAoKQotewotICAgICRk
ZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2dpdAotCi0gICAgdGVzdCB0cnVlID0gIiRHSVQiIHx8
IHsKLSAgICAgICMgQSBnbnVsaWIgZW50cnkgaW4gLmdpdG1vZHVsZXMgYWx3YXlzIHRha2VzIHBy
ZWNlZGVuY2UuCi0gICAgICBfR19wYXRoPWAkR0lUIGNvbmZpZyAtLWZpbGUgLmdpdG1vZHVsZXMg
c3VibW9kdWxlLmdudWxpYi5wYXRoIDI+L2Rldi9udWxsYAotCi0gICAgICB0ZXN0IC1uICIkX0df
cGF0aCIgfHwgewotICAgICAgICAkcmVxdWlyZV92Y19pZ25vcmVfZmlsZXMKLQotICAgICAgICBm
dW5jX3ZlcmJvc2UgImNyZWF0aW5nICcuZ2l0bW9kdWxlcyciCi0KLSAgICAgICAgIyBJZiB0aGUg
LmdpdG1vZHVsZXMgZmlsZSBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQgbm93LCBhbmQgbWFyawot
ICAgICAgICAjIGl0IGFzIGlnbm9yZWQgZm9yIHRoZSBWQ1MuCi0gICAgICAgIHRlc3QgLW4gIiRn
bnVsaWJfcGF0aCIgfHwgZ251bGliX3BhdGg9Z251bGliCi0gICAgICAgIHRlc3QgLW4gIiRnbnVs
aWJfdXJsIiAgfHwgZ251bGliX3VybD1naXQ6Ly9naXQuc3YuZ251Lm9yZy9nbnVsaWIKLQotICAg
ICAgICB7Ci0gICAgICAgICAgZWNobyAnW3N1Ym1vZHVsZSAiZ251bGliIl0nCi0gICAgICAgICAg
ZWNobyAiCXBhdGggPSAkZ251bGliX3BhdGgiCi0gICAgICAgICAgZWNobyAiCXVybCA9ICRnbnVs
aWJfdXJsIgotICAgICAgICB9ID4+IC5naXRtb2R1bGVzCi0KLSAgICAgICAgdGVzdCAtbiAiJHZj
X2lnbm9yZV9maWxlcyIgXAotICAgICAgICAgIHx8IGZ1bmNfaW5zZXJ0X2lmX2Fic2VudCAiLmdp
dG1vZHVsZXMiICR2Y19pZ25vcmVfZmlsZXMKLSAgICAgIH0KLSAgICB9Ci0KLSAgICByZXF1aXJl
X2RvdGdpdG1vZHVsZXM9OgotfQotCi0KLSMgcmVxdWlyZV9leHRyYV9sb2NhbGVfY2F0ZWdvcmll
cwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGVyZSBpcyBh
IGRlZmF1bHQgdmFsdWUgaW4gJyRleHRyYV9sb2NhbGVfY2F0ZWdvcmllcycKLXJlcXVpcmVfZXh0
cmFfbG9jYWxlX2NhdGVnb3JpZXM9ZnVuY19yZXF1aXJlX2V4dHJhX2xvY2FsZV9jYXRlZ29yaWVz
Ci1mdW5jX3JlcXVpcmVfZXh0cmFfbG9jYWxlX2NhdGVnb3JpZXMgKCkKLXsKLSAgICAkZGVidWdf
Y21kCi0KLSAgICAjIERlZmF1bHRzIHRvIGVtcHR5LCBzbyBydW4gd2l0aCB3aGF0ZXZlciB2YWx1
ZSBtYXkgaGF2ZSBiZWVuIHNldCBpbgotICAgICMgJ2Jvb3RzdHJhcC5jb25mJy4KLSAgICByZXF1
aXJlX2V4dHJhX2xvY2FsZV9jYXRlZ29yaWVzPToKLX0KLQotCi0jIHJlcXVpcmVfZ2l0Ci0jIC0t
LS0tLS0tLS0tCi0jIElnbm9yZSBnaXQgaWYgaXQncyBub3QgYXZhaWxhYmxlLCBvciB3ZSdyZSBu
b3QgaW4gYSBnaXQgY2hlY2tvdXQgdHJlZS4KLXJlcXVpcmVfZ2l0PWZ1bmNfcmVxdWlyZV9naXQK
LWZ1bmNfcmVxdWlyZV9naXQgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkb3B0X3NraXBf
Z2l0ICYmIEdJVD10cnVlCi0KLSAgICB0ZXN0IHRydWUgPSAiJEdJVCIgfHwgewotICAgICAgaWYg
dGVzdCAtZCAuZ2l0Ly47IHRoZW4KLSAgICAgICAgKCRHSVQgLS12ZXJzaW9uKSA+L2Rldi9udWxs
IDI+JjEgfHwgR0lUPXRydWUKLSAgICAgIGZpCi0gICAgfQotCi0gICAgZnVuY192ZXJib3NlICJH
SVQ9JyRHSVQnIgotCi0gICAgcmVxdWlyZV9naXQ9OgotfQotCi0KLSMgcmVxdWlyZV9nbnVsaWJf
Y2FjaGUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRW5zdXJlIHRoZXJlIGlzIGEgbm9uLWVt
cHR5IGRlZmF1bHQgZm9yICckZ251bGliX2NhY2hlJywgYW5kIHRoYXQgaXQKLSMgbmFtZXMgYW4g
ZXhpc3RpbmcgZmlsZS4KLXJlcXVpcmVfZ251bGliX2NhY2hlPWZ1bmNfcmVxdWlyZV9nbnVsaWJf
Y2FjaGUKLWZ1bmNfcmVxdWlyZV9nbnVsaWJfY2FjaGUgKCkKLXsKLSAgICAkZGVidWdfY21kCi0K
LSAgICAkcmVxdWlyZV9tYWNyb19kaXIKLQotICAgIHRlc3QgLW4gIiRnbnVsaWJfY2FjaGUiIFwK
LSAgICAgIHx8IGdudWxpYl9jYWNoZT0kbWFjcm9fZGlyL2dudWxpYi1jYWNoZS5tNAotCi0gICAg
ZnVuY192ZXJib3NlICJmb3VuZCAnJGdudWxpYl9jYWNoZSciCi0KLSAgICByZXF1aXJlX2dudWxp
Yl9jYWNoZT06Ci19Ci0KLQotIyByZXF1aXJlX2dudWxpYl9jb3B5X2NtZAotIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotIyBPbmx5IGNhbGN1bGF0ZSB0aGUgb3B0aW9ucyBmb3IgY29weWluZyBm
aWxlcyB3aXRoIGdudWxpYiBvbmNlLgotcmVxdWlyZV9nbnVsaWJfY29weV9jbWQ9ZnVuY19yZXF1
aXJlX2dudWxpYl9jb3B5X2NtZAotZnVuY19yZXF1aXJlX2dudWxpYl9jb3B5X2NtZCAoKQotewot
ICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJlX2dudWxpYl90b29sCi0gICAgJHJlcXVpcmVf
Z251bGliX3Rvb2xfYmFzZV9vcHRpb25zCi0KLSAgICBnbnVsaWJfY29weV9jbWQ9IiRnbnVsaWJf
dG9vbCAkZ251bGliX3Rvb2xfYmFzZV9vcHRpb25zIC0tY29weS1maWxlIgotICAgICRvcHRfY29w
eSB8fCBmdW5jX2FwcGVuZCBnbnVsaWJfY29weV9jbWQgIiAtLXN5bWxpbmsiCi0gICAgJG9wdF9x
dWlldCB8fCBmdW5jX2FwcGVuZCBnbnVsaWJfY29weV9jbWQgIiAtLXZlcmJvc2UiCi0KLSAgICBy
ZXF1aXJlX2dudWxpYl9jb3B5X2NtZD06Ci19Ci0KLQotIyByZXF1aXJlX2dudWxpYl9tZXJnZV9j
aGFuZ2Vsb2cKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNlZSBpZiB3ZSBj
YW4gdXNlIGdudWxpYidzIGdpdC1tZXJnZS1jaGFuZ2Vsb2cgbWVyZ2UgZHJpdmVyLgotcmVxdWly
ZV9nbnVsaWJfbWVyZ2VfY2hhbmdlbG9nPWZ1bmNfcmVxdWlyZV9nbnVsaWJfbWVyZ2VfY2hhbmdl
bG9nCi1mdW5jX3JlcXVpcmVfZ251bGliX21lcmdlX2NoYW5nZWxvZyAoKQotewotICAgICRkZWJ1
Z19jbWQKLQotICAgIHRlc3QgLWYgQ2hhbmdlTG9nICYmIHsKLSAgICAgICRyZXF1aXJlX2dpdAot
Ci0gICAgICBmdW5jX2dyZXBfcSAnXlwoL1x8XClDaGFuZ2VMb2ckJyAuZ2l0aWdub3JlIHx8IHRl
c3QgdHJ1ZSA9ICIkR0lUIiB8fCB7Ci0gICAgICAgIGlmICRHSVQgY29uZmlnIG1lcmdlLm1lcmdl
LWNoYW5nZWxvZy5kcml2ZXIgPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgIDoKLSAgICAgICAg
ZWxpZiAoZ2l0LW1lcmdlLWNoYW5nZWxvZyAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhl
bgotICAgICAgICAgIGZ1bmNfZWNobyAiaW5pdGlhbGl6aW5nIGdpdC1tZXJnZS1jaGFuZ2Vsb2cg
ZHJpdmVyIgotICAgICAgICAgICRHSVQgY29uZmlnIG1lcmdlLm1lcmdlLWNoYW5nZWxvZy5uYW1l
ICdHTlUtc3R5bGUgQ2hhbmdlTG9nIG1lcmdlIGRyaXZlcicKLSAgICAgICAgICAkR0lUIGNvbmZp
ZyBtZXJnZS5tZXJnZS1jaGFuZ2Vsb2cuZHJpdmVyICdnaXQtbWVyZ2UtY2hhbmdlbG9nICVPICVB
ICVCJwotICAgICAgICBlbHNlCi0gICAgICAgICAgZnVuY193YXJuaW5nIHJlY29tbWVuZCBcCi0g
ICAgICAgICAgICAgICJDb25zaWRlciBpbnN0YWxsaW5nIGdpdC1tZXJnZS1jaGFuZ2Vsb2cgZnJv
bSBnbnVsaWIuIgotICAgICAgICBmaQotICAgICAgfQotICAgIH0KLQotICAgIHJlcXVpcmVfZ251
bGliX21lcmdlX2NoYW5nZWxvZz06Ci19Ci0KLQotIyByZXF1aXJlX2dudWxpYl9tawotIyAtLS0t
LS0tLS0tLS0tLS0tLQotIyBFbnN1cmUgZ251bGliX21rIGhhcyBhIHNlbnNpYmxlIHZhbHVlLCBl
eHRyYWN0ZWQgZnJvbSAnZ251bGliLWNhY2hlLm00JwotIyBpZiBwb3NzaWJsZSwgb3RoZXJ3aXNl
IGxldHRpbmcgJ2dudWxpYi10b29sJyBwaWNrIGEgZGVmYXVsdC4KLXJlcXVpcmVfZ251bGliX21r
PWZ1bmNfcmVxdWlyZV9nbnVsaWJfbWsKLWZ1bmNfcmVxdWlyZV9nbnVsaWJfbWsgKCkKLXsKLSAg
ICAkZGVidWdfY21kCi0KLSAgICAkcmVxdWlyZV9nbnVsaWJfY2FjaGUKLQotICAgIHRlc3QgLWYg
IiRnbnVsaWJfY2FjaGUiICYmIHRlc3QgLXogIiRnbnVsaWJfbWsiICYmIHsKLSAgICAgIGZ1bmNf
ZXh0cmFjdF90cmFjZV9maXJzdCAiZ2xfTUFLRUZJTEVfTkFNRSIgIiRnbnVsaWJfY2FjaGUiCi0g
ICAgICBnbnVsaWJfbWs9JGZ1bmNfZXh0cmFjdF90cmFjZV9maXJzdF9yZXN1bHQKLQotICAgICAg
dGVzdCAtbiAiJGdudWxpYl9tayIgJiYgZnVuY192ZXJib3NlICJnbnVsaWJfbWs9JyRnbnVsaWJf
bWsnIgotICAgIH0KLQotICAgIHJlcXVpcmVfZ251bGliX21rPToKLX0KLQotCi0jIHJlcXVpcmVf
Z251bGliX25hbWUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFbnN1cmUgZ251bGliX25hbWUg
aGFzIGEgc2Vuc2libGUgdmFsdWUsIGV4dHJhY3RlZCBmcm9tICdnbnVsaWItY2FjaGUubTQnCi0j
IGlmIHBvc3NpYmxlLCBvdGhlcndpc2UgbGV0dGluZyAnZ251bGliLXRvb2wnIHBpY2sgYSBkZWZh
dWx0LgotcmVxdWlyZV9nbnVsaWJfbmFtZT1mdW5jX3JlcXVpcmVfZ251bGliX25hbWUKLWZ1bmNf
cmVxdWlyZV9nbnVsaWJfbmFtZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICRyZXF1aXJl
X2dudWxpYl9jYWNoZQotCi0gICAgdGVzdCAtZiAiJGdudWxpYl9jYWNoZSIgJiYgdGVzdCAteiAi
JGdudWxpYl9uYW1lIiAmJiB7Ci0gICAgICBmdW5jX2V4dHJhY3RfdHJhY2VfZmlyc3QgImdsX0xJ
QiIgIiRnbnVsaWJfY2FjaGUiCi0gICAgICBnbnVsaWJfbmFtZT0kZnVuY19leHRyYWN0X3RyYWNl
X2ZpcnN0X3Jlc3VsdAotCi0gICAgICB0ZXN0IC1uICIkZ251bGliX25hbWUiICYmIGZ1bmNfdmVy
Ym9zZSAiZ251bGliX25hbWU9JyRnbnVsaWJfbmFtZSciCi0gICAgfQotCi0gICAgcmVxdWlyZV9n
bnVsaWJfbmFtZT06Ci19Ci0KLQotIyByZXF1aXJlX2dudWxpYl9wYXRoCi0jIHJlcXVpcmVfZ251
bGliX3VybAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSAnZ251bGliX3BhdGgnIGFu
ZCAnZ251bGliX3VybCcgYXJlIHNldC4KLXJlcXVpcmVfZ251bGliX3BhdGg9ZnVuY19yZXF1aXJl
X2RvdGdpdG1vZHVsZXNfcGFyYW1ldGVycwotcmVxdWlyZV9nbnVsaWJfdXJsPWZ1bmNfcmVxdWly
ZV9kb3RnaXRtb2R1bGVzX3BhcmFtZXRlcnMKLWZ1bmNfcmVxdWlyZV9kb3RnaXRtb2R1bGVzX3Bh
cmFtZXRlcnMgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkcmVxdWlyZV9naXQKLQotICAg
IHRlc3QgdHJ1ZSA9ICIkR0lUIiAmJiB7Ci0gICAgICAjIElmIHdlIGNhbid0IGZpbmQgZ2l0IChv
ciBpZiB0aGUgdXNlciBzcGVjaWZpZWQgJy0tc2tpcC1naXQnKSwKLSAgICAgICMgdGhlbiB1c2Ug
YW4gZXhpc3RpbmcgZ251bGliIGRpcmVjdG9yeSBzcGVjaWZpZWQgd2l0aAotICAgICAgIyAnLS1n
bnVsaWItc3JjZGlyJyBpZiBwb3NzaWJsZS4KLSAgICAgIHRlc3QgLW4gIiRnbnVsaWJfcGF0aCIg
XAotICAgICAgICAgIHx8IHRlc3QgISAteCAiJG9wdF9nbnVsaWJfc3JjZGlyL2dudWxpYi10b29s
IiBcCi0gICAgICAgICAgfHwgZ251bGliX3BhdGg9JG9wdF9nbnVsaWJfc3JjZGlyCi0gICAgfQot
Ci0KLSAgICAkcmVxdWlyZV9kb3RnaXRtb2R1bGVzCi0KLSAgICB0ZXN0IC1mIC5naXRtb2R1bGVz
ICYmIHsKLSAgICAgICMgRXh0cmFjdCB0aGUgcGFyYW1ldGVycyB3aXRoIHNlZCwgc2luY2UgZ2l0
IG1heSBiZSBtaXNzaW5nCi0gICAgICB0ZXN0IC1uICIkZ251bGliX3BhdGgiIFwKLSAgICAgICAg
fHwgZ251bGliX3BhdGg9YCRTRUQgLWUgJy9eLnN1Ym1vZHVsZSAiZ251bGliIi4kLywkewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvWwkgXSpwYXRoICo9ICovewotCQkJICAg
ICAgICAgICAgIHN8WyAgIF0qfHxnO3N8XltePV0qPXx8O3AKLQkJCSAgICAgICAgICAgfQotCQkg
ICAgICAgICAgICAgICAgIH0KLQkJCQkgZCcgLmdpdG1vZHVsZXMgfCRTRUQgMXFgCi0gICAgICB0
ZXN0IC1uICIkZ251bGliX3VybCIgXAotICAgICAgICB8fCBnbnVsaWJfdXJsPWAkU0VEIC1lICcv
Xi5zdWJtb2R1bGUgImdudWxpYiIuJC8sJHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvWwkgXSp1cmwgKj0gKi97Ci0JCQkgICAgICAgICAgICBzfFsgICBdKnx8ZztzfF5bXj1d
Kj18fDtwCi0JCQkgICAgICAgICAgfQotCQkgICAgICAgICAgICAgICAgfQotCQkJCWQnIC5naXRt
b2R1bGVzIHwkU0VEIDFxYAotCi0gICAgICBmdW5jX3ZlcmJvc2UgImdudWxpYl9wYXRoPSckZ251
bGliX3BhdGgnIgotICAgICAgZnVuY192ZXJib3NlICJnbnVsaWJfdXJsPSckZ251bGliX3VybCci
Ci0gICAgfQotCi0gICAgcmVxdWlyZV9nbnVsaWJfcGF0aD06Ci0gICAgcmVxdWlyZV9nbnVsaWJf
dXJsPToKLX0KLQotCi0jIHJlcXVpcmVfZ251bGliX3N1Ym1vZHVsZQotIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSMgRW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBjdXJyZW50IGdudWxpYiBzdWJt
b2R1bGUgYXQgJyRnbnVsaWJfcGF0aCcuCi1yZXF1aXJlX2dudWxpYl9zdWJtb2R1bGU9ZnVuY19y
ZXF1aXJlX2dudWxpYl9zdWJtb2R1bGUKLWZ1bmNfcmVxdWlyZV9nbnVsaWJfc3VibW9kdWxlICgp
Ci17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfZ2l0Ci0KLSAgICBpZiB0ZXN0IHRy
dWUgPSAiJEdJVCI7IHRoZW4KLSAgICAgIGZ1bmNfd2FybmluZyByZWNvbW1lbmQgXAotICAgICAg
ICAgICJObyAnZ2l0JyBmb3VuZDsgaW1wb3J0ZWQgZ251bGliIG1vZHVsZXMgbWF5IGJlIG91dGRh
dGVkLiIKLSAgICBlbHNlCi0gICAgICAkcmVxdWlyZV9nbnVsaWJfcGF0aAotICAgICAgJHJlcXVp
cmVfZ251bGliX3VybAotCi0gICAgICBpZiB0ZXN0IC1mIC5naXRtb2R1bGVzICYmIHRlc3QgLWYg
IiRnbnVsaWJfcGF0aC9nbnVsaWItdG9vbCI7IHRoZW4KLSAgICAgICAgOiBBbGwgcHJlc2VudCBh
bmQgY29ycmVjdC4KLQotICAgICAgZWxpZiB0ZXN0IC1uICIkb3B0X2dudWxpYl9zcmNkaXIiOyB0
aGVuCi0gICAgICAgICMgT2xkZXIgZ2l0IGNhbid0IGNsb25lIGludG8gYW4gZW1wdHkgZGlyZWN0
b3J5LgotICAgICAgICBybWRpciAiJGdudWxpYl9wYXRoIiAyPi9kZXYvbnVsbAotICAgICAgICBm
dW5jX3Nob3dfZXZhbCAiJEdJVCBjbG9uZSAtLXJlZmVyZW5jZSAnJG9wdF9nbnVsaWJfc3JjZGly
JyBcCi0gICAgICAgICAgICAgICAgJyRnbnVsaWJfdXJsJyAnJGdudWxpYl9wYXRoJyIgXAotICAg
ICAgICAgICAgfHwgZnVuY19mYXRhbF9lcnJvciAiVW5hYmxlIHRvIGZldGNoIGdudWxpYiBzdWJt
b2R1bGUuIgotCi0gICAgICAjIFdpdGhvdXQgLS1nbnVsaWItc3JjZGlyLCBhbmQgbm8gZXhpc3Rp
bmcgY2hlY2tlZCBvdXQgc3VibW9kdWxlLCB3ZQotICAgICAgIyBjcmVhdGUgYSBuZXcgc2hhbGxv
dyBjbG9uZSBvZiB0aGUgcmVtb3RlIGdudWxpYiByZXBvc2l0b3J5LgotICAgICAgZWxzZQotICAg
ICAgICB0cmFwIGZ1bmNfY2xlYW51cF9nbnVsaWIgMSAyIDEzIDE1Ci0KLSAgICAgICAgc2hhbGxv
dz0KLSAgICAgICAgdGVzdCAtbiAiJGdudWxpYl9jbG9uZV9zaW5jZSIgJiYgXAotICAgICAgICAg
ICAgJEdJVCBjbG9uZSAtaCAyPiYxIHxmdW5jX2dyZXBfcSAtLSAtLXNoYWxsb3ctc2luY2UgXAot
ICAgICAgICAgICAgJiYgc2hhbGxvdz0iLS1zaGFsbG93LXNpbmNlPSRnbnVsaWJfY2xvbmVfc2lu
Y2UiCi0KLSAgICAgICAgZnVuY19zaG93X2V2YWwgIiRHSVQgY2xvbmUgJHNoYWxsb3cgJyRnbnVs
aWJfdXJsJyAnJGdudWxpYl9wYXRoJyIgXAotICAgICAgICAgIGZ1bmNfY2xlYW51cF9nbnVsaWIK
LQotCSMgRklYTUU6IFNvbGFyaXMgL2Jpbi9zaCB3aWxsIHRyeSB0byBleGVjdXRlICctJyBpZiBh
bnkgb2YKLQkjICAgICAgICB0aGVzZSBzaWduYWxzIGFyZSBjYXVnaHQgYWZ0ZXIgdGhpcy4KLSAg
ICAgICAgdHJhcCAtIDEgMiAxMyAxNQotICAgICAgZmkKLQotICAgICAgIyBNYWtlIHN1cmUgd2Un
dmUgY2hlY2tlZCBvdXQgdGhlIGNvcnJlY3QgcmV2aXNpb24gb2YgZ251bGliLgotICAgICAgZnVu
Y19zaG93X2V2YWwgIiRHSVQgc3VibW9kdWxlIGluaXQgLS0gJGdudWxpYl9wYXRoIiBcCi0gICAg
ICAgICAgJiYgZnVuY19zaG93X2V2YWwgIiRHSVQgc3VibW9kdWxlIHVwZGF0ZSAtLSAkZ251bGli
X3BhdGgiIFwKLSAgICAgICAgICB8fCAgZnVuY19mYXRhbF9lcnJvciAiVW5hYmxlIHRvIHVwZGF0
ZSBnbnVsaWIgc3VibW9kdWxlLiIKLSAgICBmaQotCi0gICAgcmVxdWlyZV9nbnVsaWJfc3VibW9k
dWxlPToKLX0KLQotCi0jIHJlcXVpcmVfZ251bGliX3Rvb2wKLSMgLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyBFbnN1cmUgdGhhdCAnJGdudWxpYl90b29sJyBpcyBzZXQsIGFuZCBwb2ludHMgdG8gYW4g
ZXhlY3V0YWJsZSBmaWxlLAotIyBvciBlbHNlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgYmluYXJ5
ICd0cnVlJyBpZiB0aGUgbWFpbiBnbnVsaWIKLSMgZmlsZXMgYXBwZWFyIHRvIGhhdmUgYmVlbiBp
bXBvcnRlZCBhbHJlYWR5LgotcmVxdWlyZV9nbnVsaWJfdG9vbD1mdW5jX3JlcXVpcmVfZ251bGli
X3Rvb2wKLWZ1bmNfcmVxdWlyZV9nbnVsaWJfdG9vbCAoKQotewotICAgICRkZWJ1Z19jbWQKLQot
ICAgIHRlc3QgdHJ1ZSA9ICIkZ251bGliX3Rvb2wiIHx8IHsKLSAgICAgICRyZXF1aXJlX2dudWxp
Yl9zdWJtb2R1bGUKLSAgICAgICRyZXF1aXJlX2dudWxpYl9wYXRoCi0KLSAgICAgIHRlc3QgLW4g
IiRnbnVsaWJfdG9vbCIgXAotICAgICAgICB8fCBnbnVsaWJfdG9vbD0kZ251bGliX3BhdGgvZ251
bGliLXRvb2wKLQotICAgICAgdGVzdCAteCAiJGdudWxpYl90b29sIiB8fCB7Ci0gICAgICAgIGdu
dWxpYl90b29sPXRydWUKLSAgICAgICAgZnVuY193YXJuaW5nIHJlY29tbWVuZCBcCi0gICAgICAg
ICAgICAiTm8gJ2dudWxpYi10b29sJyBmb3VuZDsgZ251bGliIG1vZHVsZXMgbWF5IGJlIG1pc3Np
bmcuIgotICAgICAgfQotCi0gICAgICB0ZXN0IHRydWUgPSAiJGdudWxpYl90b29sIiBcCi0gICAg
ICAgICAgfHwgZnVuY192ZXJib3NlICJmb3VuZCAnJGdudWxpYl90b29sJyIKLSAgICB9Ci0KLSAg
ICByZXF1aXJlX2dudWxpYl90b29sPToKLX0KLQotCi0jIHJlcXVpcmVfZ251bGliX3Rvb2xfYmFz
ZV9vcHRpb25zCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0
aGF0ICckZ251bGliX3Rvb2xfYmFzZV9vcHRpb25zJyBjb250YWlucyBhbGwgdGhlIGJhc2Ugb3B0
aW9ucwotIyByZXF1aXJlZCBhY2NvcmRpbmcgdG8gdXNlciBjb25maWd1cmF0aW9uIGZyb20gYm9v
dHN0cmFwLmNvbmYuCi1yZXF1aXJlX2dudWxpYl90b29sX2Jhc2Vfb3B0aW9ucz1mdW5jX3JlcXVp
cmVfZ251bGliX3Rvb2xfYmFzZV9vcHRpb25zCi1mdW5jX3JlcXVpcmVfZ251bGliX3Rvb2xfYmFz
ZV9vcHRpb25zICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfZ251bGliX3Rv
b2wKLQotICAgIGdudWxpYl90b29sX2Jhc2Vfb3B0aW9ucz0KLQotICAgIHRlc3QgdHJ1ZSA9ICIk
Z251bGliX3Rvb2wiIHx8IHsKLSAgICAgICMgJ2dudWxpYl9tb2R1bGVzJyBhbmQgb3RoZXJzIGFy
ZSBtYWludGFpbmVkIGluICdib290c3RyYXAuY29uZic6Ci0gICAgICAjIFVzZSAnZ251bGliIC0t
aW1wb3J0JyB0byBmZXRjaCBnbnVsaWIgbW9kdWxlcy4KLSAgICAgICRyZXF1aXJlX2J1aWxkX2F1
eAotICAgICAgdGVzdCAtbiAiJGJ1aWxkX2F1eCIgXAotICAgICAgICAgICYmIGZ1bmNfYXBwZW5k
X3VuaXEgZ251bGliX3Rvb2xfYmFzZV9vcHRpb25zICIgLS1hdXgtZGlyPSRidWlsZF9hdXgiCi0g
ICAgICAkcmVxdWlyZV9tYWNyb19kaXIKLSAgICAgIHRlc3QgLW4gIiRtYWNyb19kaXIiIFwKLSAg
ICAgICAgICAmJiBmdW5jX2FwcGVuZF91bmlxIGdudWxpYl90b29sX2Jhc2Vfb3B0aW9ucyAiIC0t
bTQtYmFzZT0kbWFjcm9fZGlyIgotICAgICAgJHJlcXVpcmVfZG9jX2Jhc2UKLSAgICAgIHRlc3Qg
LW4gIiRkb2NfYmFzZSIgXAotICAgICAgICAgICYmIGZ1bmNfYXBwZW5kX3VuaXEgZ251bGliX3Rv
b2xfYmFzZV9vcHRpb25zICIgLS1kb2MtYmFzZT0kZG9jX2Jhc2UiCi0gICAgICAkcmVxdWlyZV9n
bnVsaWJfbmFtZQotICAgICAgdGVzdCAtbiAiJGdudWxpYl9uYW1lIiBcCi0gICAgICAgICAgJiYg
ZnVuY19hcHBlbmRfdW5pcSBnbnVsaWJfdG9vbF9iYXNlX29wdGlvbnMgIiAtLWxpYj0kZ251bGli
X25hbWUiCi0gICAgICAkcmVxdWlyZV9sb2NhbF9nbF9wYXRoCi0gICAgICB0ZXN0IC1uICIkbG9j
YWxfZ2xfcGF0aCIgJiYgewotICAgICAgICBldmFsICJzZXQgZHVtbXkgJGxvY2FsX2dsX3BhdGhf
cXVvdGVkIiA7IHNoaWZ0Ci0gICAgICAgIGZvciBfR19kaXIKLSAgICAgICAgZG8KLSAgICAgICAg
ICBmdW5jX2FwcGVuZF91bmlxIGdudWxpYl90b29sX2Jhc2Vfb3B0aW9ucyAiIC0tbG9jYWwtZGly
PSRfR19kaXIiCi0gICAgICAgIGRvbmUKLSAgICAgIH0KLSAgICAgICRyZXF1aXJlX3NvdXJjZV9i
YXNlCi0gICAgICB0ZXN0IC1uICIkc291cmNlX2Jhc2UiIFwKLSAgICAgICAgICAmJiBmdW5jX2Fw
cGVuZF91bmlxIGdudWxpYl90b29sX2Jhc2Vfb3B0aW9ucyAiIC0tc291cmNlLWJhc2U9JHNvdXJj
ZV9iYXNlIgotICAgIH0KLQotICAgIHJlcXVpcmVfZ251bGliX3Rvb2xfYmFzZV9vcHRpb25zPToK
LX0KLQotCi0jIHJlcXVpcmVfbGlidG9vbGl6ZQotIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2tp
cCBsaWJ0b29saXplIGlmIGl0J3Mgbm90IG5lZWRlZC4KLXJlcXVpcmVfbGlidG9vbGl6ZT1mdW5j
X3JlcXVpcmVfbGlidG9vbGl6ZQotZnVuY19yZXF1aXJlX2xpYnRvb2xpemUgKCkKLXsKLSAgICAk
ZGVidWdfY21kCi0KLSAgICAjIFVubGVzcyB3ZSdyZSBub3Qgc2VhcmNoaW5nIGZvciBsaWJ0b29s
IHVzZSBieSB0aGlzIHBhY2thZ2UsIHNldAotICAgICMgTElCVE9PTElaRSB0byB0cnVlIGlmIG5v
bmUgb2YgJ0xUX0lOSVQnLCAnQUNfUFJPR19MSUJUT09MJyBhbmQKLSAgICAjICdBTV9QUk9HX0xJ
QlRPT0wnIGFyZSB1c2VkIGluIGNvbmZpZ3VyZS4KLSAgICB0ZXN0IHRydWUgPSAiJExJQlRPT0xJ
WkUiIHx8IHsKLSAgICAgIGZ1bmNfZXh0cmFjdF90cmFjZSBMVF9JTklUCi0gICAgICB0ZXN0IC1u
ICIkZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdCIgfHwgZnVuY19leHRyYWN0X3RyYWNlIEFDX1BS
T0dfTElCVE9PTAotICAgICAgdGVzdCAtbiAiJGZ1bmNfZXh0cmFjdF90cmFjZV9yZXN1bHQiIHx8
IGZ1bmNfZXh0cmFjdF90cmFjZSBBTV9QUk9HX0xJQlRPT0wKLSAgICAgIHRlc3QgLW4gIiRmdW5j
X2V4dHJhY3RfdHJhY2VfcmVzdWx0IiB8fCBMSUJUT09MSVpFPXRydWUKLSAgICB9Ci0KLSAgICB0
ZXN0IC1uICIkTElCVE9PTElaRSIgfHwgewotICAgICAgIyBGaW5kIGxpYnRvb2xpemUsIG5hbWVk
IGdsaWJ0b29saXplIGluIE1hYyBQb3J0cywgYnV0IHByZWZlcgotICAgICAgIyB1c2VyLWluc3Rh
bGxlZCBsaWJ0b29saXplIHRvIGFuY2llbnQgZ2xpYnRvb2xpemUgc2hpcHBlZCBieQotICAgICAg
IyBBcHBsZSB3aXRoIE1hYyBPUyBYIHdoZW4gTWFjIFBvcnRzIGlzIG5vdCBpbnN0YWxsZWQuCi0g
ICAgICBmdW5jX2ZpbmRfdG9vbCBMSUJUT09MSVpFIGxpYnRvb2xpemUgZ2xpYnRvb2xpemUKLSAg
ICB9Ci0KLSAgICB0ZXN0IC1uICIkTElCVE9PTElaRSIgfHwgZnVuY19mYXRhbF9lcnJvciAiXAot
UGxlYXNlIGluc3RhbGwgR05VIExpYnRvb2wsIG9yICdleHBvcnQgTElCVE9PTElaRT0vcGF0aC90
by9saWJ0b29saXplJy4iCi0KLSAgICBmdW5jX3ZlcmJvc2UgImV4cG9ydCBMSUJUT09MSVpFPSck
TElCVE9PTElaRSciCi0KLSAgICAjIE1ha2Ugc3VyZSB0aGUgc2VhcmNoIHJlc3VsdCBpcyB2aXNp
YmxlIHRvIHN1YnNoZWxscwotICAgIGV4cG9ydCBMSUJUT09MSVpFCi0KLSAgICByZXF1aXJlX2xp
YnRvb2xpemU9OgotfQotCi0KLSMgcmVxdWlyZV9sb2NhbF9nbF9wYXRoCi0jIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBFbnN1cmUgbG9jYWxfZ2xfcGF0aCBoYXMgYSBzZW5zaWJsZSB2YWx1ZSwg
ZXh0cmFjdGVkIGZyb20gJ2dudWxpYi1jYWNoZS5tNCcgaWYKLSMgcG9zc2libGUsIG90aGVyd2lz
ZSBsZXR0aW5nICdnbnVsaWItdG9vbCcgcGljayBhIGRlZmF1bHQuCi1yZXF1aXJlX2xvY2FsX2ds
X3BhdGg9ZnVuY19yZXF1aXJlX2xvY2FsX2dsX3BhdGgKLWZ1bmNfcmVxdWlyZV9sb2NhbF9nbF9w
YXRoICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfZ251bGliX2NhY2hlCi0K
LSAgICAjIENvbXBhdCB3aXRoIG9sZGVyIGJvb3RzdHJhcCB2ZXJzaW9ucy4KLSAgICB0ZXN0IC1u
ICIkbG9jYWxfZ2xfZGlyIiAmJiB7Ci0gICAgICBmdW5jX3dhcm5pbmcgc2V0dGluZ3MgIlwKLVBs
ZWFzZSB1c2UgJ2xvY2FsX2dsX3BhdGgnIGluc3RlYWQgb2YgJ2xvY2FsX2dsX2RpcicgaW4geW91
cgotJ2Jvb3RzdHJhcC5jb25mJyBmaWxlLiIKLSAgICAgIGxvY2FsX2dsX3BhdGg9JGxvY2FsX2ds
X2RpcgotICAgICAgbG9jYWxfZ2xfZGlyPQotICAgIH0KLQotICAgIHRlc3QgLWYgIiRnbnVsaWJf
Y2FjaGUiICYmIHRlc3QgLXogIiRsb2NhbF9nbF9wYXRoIiAmJiB7Ci0gICAgICBmdW5jX2V4dHJh
Y3RfdHJhY2VfZmlyc3QgImdsX0xPQ0FMX0RJUiIgIiRnbnVsaWJfY2FjaGUiCi0gICAgICBsb2Nh
bF9nbF9wYXRoPSRmdW5jX2V4dHJhY3RfdHJhY2VfZmlyc3RfcmVzdWx0Ci0gICAgICB0ZXN0IC1u
ICIkbG9jYWxfZ2xfcGF0aCIgJiYgZnVuY192ZXJib3NlICJsb2NhbF9nbF9wYXRoPSckbG9jYWxf
Z2xfcGF0aCciCi0gICAgfQotCi0gICAgdGVzdCAteiAiJGxvY2FsX2dsX3BhdGhfcXVvdGVkIiAm
JiB0ZXN0IC1uICIkbG9jYWxfZ2xfcGF0aCIgJiYgewotICAgICAgc2F2ZV9JRlM9JElGUwotICAg
ICAgc2V0IGR1bW15Ci0gICAgICAjIERvbid0IHVzZSBQQVRIX1NFUEFSQVRPUiBoZXJlLCBnbnVs
aWIgbXVzdCBiZSBmaXhlZCB0byBzdG9yZSBvbmx5ICc6JyBhcwotICAgICAgIyBwYXRoIHNlcGFy
YXRvciBpbnRvIGdudWxpYi1jYWNoZS5tNCAoY29uc2lzdGVuY3kgcmVhc29ucyBhbW9uZyBzeXN0
ZW1zKS4KLSAgICAgIElGUz06Ci0gICAgICBmb3IgX0dfZGlyIGluICRsb2NhbF9nbF9wYXRoCi0g
ICAgICBkbwotICAgICAgICBzZXQgIiRAIiAiJF9HX2RpciIKLSAgICAgIGRvbmUKLSAgICAgIHNo
aWZ0Ci0gICAgICBJRlM9JHNhdmVfSUZTCi0gICAgICBmdW5jX3F1b3RlIGV2YWwgIiRAIgotICAg
ICAgbG9jYWxfZ2xfcGF0aF9xdW90ZWQ9JGZ1bmNfcXVvdGVfcmVzdWx0Ci0gICAgfQotCi0gICAg
cmVxdWlyZV9sb2NhbF9nbF9wYXRoPToKLX0KLQotCi0jIHJlcXVpcmVfbWFjcm9fZGlyCi0jIC0t
LS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGF0ICckbWFjcm9fZGlyJyBpcyBzZXQsIGFuZCBp
ZiBpdCBkb2Vzbid0IGFscmVhZHkgcG9pbnQgdG8gYW4KLSMgZXhpc3RpbmcgZGlyZWN0b3J5LCBj
cmVhdGUgb25lLgotcmVxdWlyZV9tYWNyb19kaXI9ZnVuY19yZXF1aXJlX21hY3JvX2RpcgotZnVu
Y19yZXF1aXJlX21hY3JvX2RpciAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICMgU29tZXRp
bWVzIHRoaXMgaXMgc3RvcmVkIGluICdjb25maWd1cmUuYWMnLgotICAgIHRlc3QgLW4gIiRtYWNy
b19kaXIiIHx8IHsKLSAgICAgICMgQUNfQ09ORklHX01BQ1JPX0RJUlMgdGFrZXMgYSBzcGFjZSBk
ZWxpbWl0ZWQgbGlzdCBvZiBkaXJlY3RvcmllcywKLSAgICAgICMgYnV0IHdlIG9ubHkgY2FyZSBh
Ym91dCB0aGUgZmlyc3Qgb25lIGluIGJvb3RzdHJhcC4KLSAgICAgIGZ1bmNfZXh0cmFjdF90cmFj
ZV9maXJzdCBBQ19DT05GSUdfTUFDUk9fRElSUwotICAgICAgbWFjcm9fZGlyPWBleHByICJ4JGZ1
bmNfZXh0cmFjdF90cmFjZV9maXJzdF9yZXN1bHQiIDogJ3hcKFteCSBdKlwpJ2AKLSAgICB9Ci0g
ICAgdGVzdCAtbiAiJG1hY3JvX2RpciIgfHwgewotICAgICAgZnVuY19leHRyYWN0X3RyYWNlX2Zp
cnN0IEFDX0NPTkZJR19NQUNST19ESVIKLSAgICAgIG1hY3JvX2Rpcj0kZnVuY19leHRyYWN0X3Ry
YWNlX2ZpcnN0X3Jlc3VsdAotICAgIH0KLQotICAgICMgT3RoZXJ3aXNlIHdlIG1pZ2h0IGZpbmQg
aXQgaW4gJ01ha2VmaWxlLmFtJy4KLSAgICB0ZXN0IC1uICIkbWFjcm9fZGlyIiB8fCB7Ci0gICAg
ICAkcmVxdWlyZV9hY2xvY2FsX2FtZmxhZ3MKLQotICAgICAgIyBUYWtlIHRoZSBhcmd1bWVudCBm
b2xsb3dpbmcgdGhlIGZpcnN0ICctSScsIGlmIGFueS4KLSAgICAgIF9HX21pbnVzX0lfc2Vlbj1m
YWxzZQotICAgICAgZm9yIF9HX2FyZyBpbiAkYWNsb2NhbF9hbWZsYWdzOyBkbwotICAgICAgICBj
YXNlICRfR19taW51c19JX3NlZW4sJF9HX2FyZyBpbgotICAgICAgICAgIDosKikgICBtYWNyb19k
aXI9JF9HX2FyZzsgYnJlYWsgOzsKLSAgICAgICAgICAqLC1JKSAgX0dfbWludXNfSV9zZWVuPTog
OzsKLSAgICAgICAgICAqLC1JKikgbWFjcm9fZGlyPWBleHByIHgkX0dfYXJnIDogJ3gtSVwoLipc
KSQnYDsgYnJlYWsgOzsKLSAgICAgICAgZXNhYwotICAgICAgZG9uZQotICAgIH0KLQotICAgIGZ1
bmNfdmVyYm9zZSAibWFjcm9fZGlyPSckbWFjcm9fZGlyJyIKLQotICAgIGZ1bmNfY2hlY2tfY29u
ZmlndXJhdGlvbiBtYWNyb19kaXIgXAotICAgICAgICAiQUNfQ09ORklHX01BQ1JPX0RJUlMoW25h
bWUgb2YgYSBkaXJlY3RvcnkgZm9yIGNvbmZpZ3VyZSBtNCBmaWxlc10pIgotCi0gICAgJHJlcXVp
cmVfdmNfaWdub3JlX2ZpbGVzCi0KLSAgICAjIElmIHRoZSBtYWNyb19kaXIgZGlyZWN0b3J5IGRv
ZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdCBub3csIGFuZCBtYXJrIGl0Ci0gICAgIyBhcyBpZ25vcmVk
IGZvciB0aGUgVkNTLgotICAgIGlmIHRlc3QgISAtZCAiJG1hY3JvX2RpciI7IHRoZW4KLSAgICAg
IG1rZGlyICIkbWFjcm9fZGlyIiB8fCBmdW5jX3Blcm1pc3Npb25zX2Vycm9yICIkbWFjcm9fZGly
IgotCi0gICAgICB0ZXN0IC1uICIkdmNfaWdub3JlX2ZpbGVzIiBcCi0gICAgICAgIHx8IGZ1bmNf
aW5zZXJ0X2lmX2Fic2VudCAiJG1hY3JvX2RpciIgJHZjX2lnbm9yZV9maWxlcwotICAgIGZpCi0K
LSAgICByZXF1aXJlX21hY3JvX2Rpcj06Ci19Ci0KLQotIyByZXF1aXJlX21ha2VmaWxlX2FtCi0j
IC0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRW5zdXJlIHRoZXJlIGlzIGEgJ01ha2VmaWxlLmFtJyBp
biB0aGUgY3VycmVudCBkaXJlY3RvcnkuCi1yZXF1aXJlX21ha2VmaWxlX2FtPWZ1bmNfcmVxdWly
ZV9tYWtlZmlsZV9hbQotZnVuY19yZXF1aXJlX21ha2VmaWxlX2FtICgpCi17Ci0gICAgJGRlYnVn
X2NtZAotCi0gICAgdGVzdCAtbiAiJG1ha2VmaWxlX2FtIiBcCi0gICAgICB8fCBtYWtlZmlsZV9h
bT1NYWtlZmlsZS5hbQotCi0gICAgPCIkbWFrZWZpbGVfYW0iCi0KLSAgICBmdW5jX3ZlcmJvc2Ug
ImZvdW5kICckbWFrZWZpbGVfYW0nIgotCi0gICAgcmVxdWlyZV9tYWtlZmlsZV9hbT06Ci19Ci0K
LQotIyByZXF1aXJlX3BhY2thZ2UKLSMgLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGF0ICck
cGFja2FnZScgY29udGFpbnMgYSBzZW5zaWJsZSBkZWZhdWx0IHZhbHVlLgotcmVxdWlyZV9wYWNr
YWdlPWZ1bmNfcmVxdWlyZV9wYWNrYWdlCi1mdW5jX3JlcXVpcmVfcGFja2FnZSAoKQotewotICAg
ICRkZWJ1Z19jbWQKLQotICAgIHRlc3QgLW4gIiRwYWNrYWdlIiB8fCB7Ci0gICAgICAkcmVxdWly
ZV9wYWNrYWdlX25hbWUKLQotICAgICAgcGFja2FnZT1gZWNobyAiJHBhY2thZ2VfbmFtZSIgXAot
ICAgICAgICB8JFNFRCAtZSAncy9HTlUgLy8nIFwKLQkgICAgICAtZSAneS9BQkNERUZHSElKS0xN
Tk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8nYAotICAgIH0KLQotICAg
IGZ1bmNfdmVyYm9zZSAicGFja2FnZT0nJHBhY2thZ2UnIgotCi0gICAgcmVxdWlyZV9wYWNrYWdl
PToKLX0KLQotCi0jIHJlcXVpcmVfcGFja2FnZV9idWdyZXBvcnQKLSMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBFbnN1cmUgdGhhdCB0aGlzIGhhcyBhIHNlbnNpYmxlIHZhbHVlLCBleHRy
YWN0ZWQgZnJvbSAnY29uZmlndXJlLmFjJwotIyBpZiBhcHByb3ByaWF0ZSAoYW5kIHBvc3NpYmxl
ISkuCi1yZXF1aXJlX3BhY2thZ2VfYnVncmVwb3J0PWZ1bmNfcmVxdWlyZV9wYWNrYWdlX2J1Z3Jl
cG9ydAotZnVuY19yZXF1aXJlX3BhY2thZ2VfYnVncmVwb3J0ICgpCi17Ci0gICAgJGRlYnVnX2Nt
ZAotCi0gICAgZnVuY19leHRyYWN0X3RyYWNlIEFDX0lOSVQKLQotICAgIHNhdmVfaWZzPSRJRlMK
LSAgICBJRlM9OgotICAgIHNldCBkdW1teSAkZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdAotICAg
IElGUz0kc2F2ZV9pZnMKLSAgICBzaGlmdAotCi0gICAgdGVzdCAtbiAiJHBhY2thZ2VfYnVncmVw
b3J0IiB8fCBwYWNrYWdlX2J1Z3JlcG9ydD0kMwotICAgIGZ1bmNfY2hlY2tfY29uZmlndXJhdGlv
biBwYWNrYWdlX2J1Z3JlcG9ydCBcCi0gICAgICAiQUNfSU5JVChbJHBhY2thZ2VfbmFtZV0sIFsk
cGFja2FnZV92ZXJzaW9uXSwgW2J1Zy0kcGFja2FnZUBnbnUub3JnXSkiCi0gICAgZnVuY192ZXJi
b3NlICJwYWNrYWdlX2J1Z3JlcG9ydD0nJHBhY2thZ2VfYnVncmVwb3J0JyIKLQotICAgIHJlcXVp
cmVfcGFja2FnZV9idWdyZXBvcnQ9OgotfQotCi0KLSMgcmVxdWlyZV9wYWNrYWdlX25hbWUKLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRW5zdXJlIHRoYXQgdGhpcyBoYXMgYSBzZW5zaWJsZSB2
YWx1ZSwgZXh0cmFjdGVkIGZyb20gJ2NvbmZpZ3VyZS5hYycKLSMgaWYgYXBwcm9wcmlhdGUgKGFu
ZCBwb3NzaWJsZSEpLgotcmVxdWlyZV9wYWNrYWdlX25hbWU9ZnVuY19yZXF1aXJlX3BhY2thZ2Vf
bmFtZQotZnVuY19yZXF1aXJlX3BhY2thZ2VfbmFtZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQot
ICAgIGZ1bmNfZXh0cmFjdF90cmFjZSBBQ19JTklUCi0KLSAgICBzYXZlX2lmcz0kSUZTCi0gICAg
SUZTPToKLSAgICBzZXQgZHVtbXkgJGZ1bmNfZXh0cmFjdF90cmFjZV9yZXN1bHQKLSAgICBJRlM9
JHNhdmVfaWZzCi0gICAgc2hpZnQKLQotICAgIHRlc3QgLW4gIiRwYWNrYWdlX25hbWUiIHx8IHBh
Y2thZ2VfbmFtZT0kMQotICAgIGZ1bmNfY2hlY2tfY29uZmlndXJhdGlvbiBwYWNrYWdlX25hbWUg
XAotICAgICAgIkFDX0lOSVQoW25hbWUgb2YgeW91ciBwYWNrYWdlXSwgW3BhY2thZ2UgdmVyc2lv
biBudW1iZXJdKSIKLSAgICBmdW5jX3ZlcmJvc2UgInBhY2thZ2VfbmFtZT0nJHBhY2thZ2VfbmFt
ZSciCi0KLSAgICByZXF1aXJlX3BhY2thZ2VfbmFtZT06Ci19Ci0KLQotIyByZXF1aXJlX3BhY2th
Z2VfdmVyc2lvbgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFbnN1cmUgdGhhdCB0aGlz
IGhhcyBhIHNlbnNpYmxlIHZhbHVlLCBleHRyYWN0ZWQgZnJvbSAnY29uZmlndXJlLmFjJwotIyBp
ZiBhcHByb3ByaWF0ZSAoYW5kIHBvc3NpYmxlISkuICBXaGlsZSB3ZSBtaWdodCBoYXZlIHNldCBh
bGwgdGhlCi0jIHBhcmFtZXRlcnMgZXh0cmFjdGVkIGZyb20gQUNfSU5JVCBhdCBvbmNlLCAncGFj
a2FnZV92ZXJzaW9uJyBpbgotIyBwYXJ0aWN1bGFyIGlzIG5vdCBuZWNlc3NhcmlseSBhdmFpbGFi
bGUgYXMgZWFybHkgYXMgdGhlIG90aGVycywgc2luY2UKLSMgJ2dpdC12ZXJzaW9uLWdlbicgaXMg
b2Z0ZW4gaW52b2x2ZWQsIGFuZCB1bnRpbCB0aGVuIHdlIGNhbid0IHJlbHkgb24KLSMgZ2V0dGlu
ZyBhIGNvcnJlY3QgdmVyc2lvbiBudW1iZXIgZnJvbSBhbiBBQ19JTklUIGV4dHJhY3Rpb24uCi1y
ZXF1aXJlX3BhY2thZ2VfdmVyc2lvbj1mdW5jX3JlcXVpcmVfcGFja2FnZV92ZXJzaW9uCi1mdW5j
X3JlcXVpcmVfcGFja2FnZV92ZXJzaW9uICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgZnVu
Y19leHRyYWN0X3RyYWNlIEFDX0lOSVQKLQotICAgIHNhdmVfaWZzPSRJRlMKLSAgICBJRlM9Ogot
ICAgIHNldCBkdW1teSAkZnVuY19leHRyYWN0X3RyYWNlX3Jlc3VsdAotICAgIElGUz0kc2F2ZV9p
ZnMKLSAgICBzaGlmdAotCi0gICAgdGVzdCAtbiAiJHBhY2thZ2VfdmVyc2lvbiIgfHwgcGFja2Fn
ZV92ZXJzaW9uPSQyCi0gICAgdGVzdCAtbiAiJHBhY2thZ2VfdmVyc2lvbiIgfHwgewotICAgICAg
IyBUaGUgZW1iZWRkZWQgZWNobyBpcyB0byBzcXVhc2ggd2hpdGVzcGFjZSBiZWZvcmUgZ2xvYmJp
bmcuCi0gICAgICBjYXNlICIgImBlY2hvICRnbnVsaWJfbW9kdWxlc2AiICIgaW4KLQkqIiBnaXQt
dmVyc2lvbi1nZW4gIiopCi0JICBmdW5jX2ZhdGFsX2Vycm9yICJcCi1jYW5ub3QgXCRyZXF1aXJl
X3BhY2thZ2VfdmVyc2lvbiBpbiBib290c3RyYXAuY29uZiBiZWZvcmUKLWZ1bmNfZ251bGliX3Rv
b2wgaGFzIGluc3RhbGxlZCB0aGUgJ2dpdC12ZXJzaW9uLWdlbicgc2NyaXB0LiIKLQkgIDs7Ci0J
KikKLSAgICAgICAgICBmdW5jX2NoZWNrX2NvbmZpZ3VyYXRpb24gcGFja2FnZV92ZXJzaW9uIFwK
LSAgICAgICAgICAgICJBQ19JTklUKFtuYW1lIG9mIHlvdXIgcGFja2FnZV0sIFtwYWNrYWdlIHZl
cnNpb24gbnVtYmVyXSkiCi0JICA7OwotICAgICAgZXNhYwotICAgIH0KLSAgICBmdW5jX3ZlcmJv
c2UgInBhY2thZ2VfdmVyc2lvbj0nJHBhY2thZ2VfdmVyc2lvbiciCi0KLSAgICByZXF1aXJlX3Bh
Y2thZ2VfdmVyc2lvbj06Ci19Ci0KLQotIyByZXF1aXJlX3BhdGNoCi0jIC0tLS0tLS0tLS0tLS0K
LSMgRmluZCBwYXRjaCwgYWNjb3JkaW5nIHRvIHRoZSBQQVRDSCBlbnZpcm9ubWVudCB2YXJpYWJs
ZSwgb3IgZWxzZQotIyBzZWFyY2hpbmcgdGhlIHVzZXIncyBQQVRILgotcmVxdWlyZV9wYXRjaD1m
dW5jX3JlcXVpcmVfcGF0Y2gKLWZ1bmNfcmVxdWlyZV9wYXRjaCAoKQotewotICAgICRkZWJ1Z19j
bWQKLQotICAgIHRlc3QgLW4gIiRQQVRDSCIgfHwgewotICAgICAgIyBGaW5kIGEgcGF0Y2ggcHJv
Z3JhbSwgcHJlZmVycmluZyBncGF0Y2gsIHdoaWNoIGlzIHVzdWFsbHkgYmV0dGVyCi0gICAgICAj
IHRoYW4gdGhlIHZlbmRvciBwYXRjaC4KLSAgICAgIGZ1bmNfZmluZF90b29sIFBBVENIIGdwYXRj
aCBwYXRjaAotICAgIH0KLQotICAgIHRlc3QgLW4gIiRQQVRDSCIgfHwgZnVuY19mYXRhbF9lcnJv
ciAiXAotUGxlYXNlIGluc3RhbGwgR05VIFBhdGNoLCBvciAnZXhwb3J0IFBBVENIPS9wYXRoL3Rv
L2dudS9wYXRjaCcuIgotCi0gICAgZnVuY192ZXJib3NlICJleHBvcnQgUEFUQ0g9JyRQQVRDSCci
Ci0KLSAgICAjIE1ha2Ugc3VyZSB0aGUgc2VhcmNoIHJlc3VsdCBpcyB2aXNpYmxlIHRvIHN1YnNo
ZWxscwotICAgIGV4cG9ydCBQQVRDSAotCi0gICAgcmVxdWlyZV9wYXRjaD06Ci19Ci0KLQotIyBy
ZXF1aXJlX3NvdXJjZV9iYXNlCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRW5zdXJlIHRoYXQg
c291cmNlX2Jhc2UgaGFzIGEgc2Vuc2libGUgdmFsdWUsIGV4dHJhY3RlZCBmcm9tCi0jICdnbnVs
aWItY2FjaGUubTQnIGlmIHBvc3NpYmxlLgotcmVxdWlyZV9zb3VyY2VfYmFzZT1mdW5jX3JlcXVp
cmVfc291cmNlX2Jhc2UKLWZ1bmNfcmVxdWlyZV9zb3VyY2VfYmFzZSAoKQotewotICAgICRkZWJ1
Z19jbWQKLQotICAgICRyZXF1aXJlX2dudWxpYl9jYWNoZQotCi0gICAgdGVzdCAtZiAiJGdudWxp
Yl9jYWNoZSIgJiYgdGVzdCAteiAiJHNvdXJjZV9iYXNlIiAmJiB7Ci0gICAgICBmdW5jX2V4dHJh
Y3RfdHJhY2VfZmlyc3QgImdsX1NPVVJDRV9CQVNFIiAiJGdudWxpYl9jYWNoZSIKLQotICAgICAg
c291cmNlX2Jhc2U9JGZ1bmNfZXh0cmFjdF90cmFjZV9maXJzdF9yZXN1bHQKLQotICAgICAgZnVu
Y192ZXJib3NlICJzb3VyY2VfYmFzZT0nJHNvdXJjZV9iYXNlJyIKLSAgICB9Ci0KLSAgICByZXF1
aXJlX3NvdXJjZV9iYXNlPToKLX0KLQotCi0jIHJlcXVpcmVfdmNfaWdub3JlX2ZpbGVzCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGF0ICckdmNfaWdub3JlJyBoYXMgYmVl
biBwcm9jZXNzZWQgdG8gbGlzdCBWQ1MgaWdub3JlIGZpbGVzCi0jIGluICckdmNfaWdub3JlX2Zp
bGVzJwotcmVxdWlyZV92Y19pZ25vcmVfZmlsZXM9ZnVuY19yZXF1aXJlX3ZjX2lnbm9yZV9maWxl
cwotZnVuY19yZXF1aXJlX3ZjX2lnbm9yZV9maWxlcyAoKQotewotICAgICRkZWJ1Z19jbWQKLQot
ICAgIHRlc3QgLW4gIiR2Y19pZ25vcmUiIHx8IHZjX2lnbm9yZT1hdXRvCi0KLSAgICBpZiB0ZXN0
IGF1dG8gPSAiJHZjX2lnbm9yZSIgJiYgdGVzdCAteiAiJHZjX2lnbm9yZV9maWxlcyI7IHRoZW4K
LSAgICAgIHZjX2lnbm9yZV9maWxlcz0KLSAgICAgIHRlc3QgLWQgLmdpdCAmJiB2Y19pZ25vcmVf
ZmlsZXM9LmdpdGlnbm9yZQotICAgICAgdGVzdCAtZCBDVlMgJiYgdmNfaWdub3JlX2ZpbGVzPSIk
dmNfaWdub3JlX2ZpbGVzIC5jdnNpZ25vcmUiCi0gICAgZWxzZQotICAgICAgdmNfaWdub3JlX2Zp
bGVzPSR2Y19pZ25vcmUKLSAgICBmaQotCi0gICAgZnVuY192ZXJib3NlICJ2Y19pZ25vcmVfZmls
ZXM9JyR2Y19pZ25vcmVfZmlsZXMnIgotCi0gICAgcmVxdWlyZV92Y19pZ25vcmVfZmlsZXM9Ogot
fQotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBIZWxwZXIgZnVuY3Rpb25zLiAjIwot
IyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBUaGlzIHNlY3Rpb24gY29udGFpbnMgdGhlIGhl
bHBlciBmdW5jdGlvbnMgdXNlZCBieSB0aGUgcmVzdCBvZiAnYm9vdHN0cmFwJy4KLQotIyBmdW5j
X2xlbiBTVFJJTkcKLSMgLS0tLS0tLS0tLS0tLS0tCi0jIFNUUklORyBtYXkgbm90IHN0YXJ0IHdp
dGggYSBoeXBoZW4uCi1pZiAoZXZhbCAneD0xMjM7IHRlc3QgeCR7I3h9ID0gIngzIicpIDI+L2Rl
di9udWxsCi10aGVuCi0gICMgVGhpcyBpcyBhbiBYU0kgY29tcGF0aWJsZSBzaGVsbCwgYWxsb3dp
bmcgYSBmYXN0ZXIgaW1wbGVtZW50YXRpb24uLi4KLSAgZXZhbCAnZnVuY19sZW4gKCkKLSAgewot
ICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfQotICB9JwotZWxzZQot
ICAjIC4uLm90aGVyd2lzZSBmYWxsIGJhY2sgdG8gdXNpbmcgZXhwciwgd2hpY2ggaXMgb2Z0ZW4g
YSBzaGVsbCBidWlsdGluLgotICBmdW5jX2xlbiAoKQotICB7Ci0gICAgJGRlYnVnX2NtZAotCi0g
ICAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkMSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8g
MGAKLSAgfQotZmkKLQotCi0jIGZ1bmNfY21wX3MgRklMRTEgRklMRTIKLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBSZXR1cm4gbm9uLXplcm8gZXhpdCBzdGF0dXMgdW5sZXNzIEZJTEUxIGFu
ZCBGSUxFMiBhcmUgaWRlbnRpY2FsLCB3aXRob3V0Ci0jIGFueSBvdXRwdXQgYXQgYWxsLCBldmVu
IGVycm9yIG1lc3NhZ2VzLgotZnVuY19jbXBfcyAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAg
ICMgVGhpcyBmdW5jdGlvbiByZWxpZXMgb24gbm9uLXplcm8gZXhpdCBzdGF0dXMsIHdoaWNoIHdp
bGwgY2F1c2UgdGhlCi0gICAgIyBwcm9ncmFtIHRvIGV4aXQgd2hlbiBydW5uaW5nIGluICdzZXQg
LWUnIG1vZGUuCi0gICAgJENNUCAiJEAiID4vZGV2L251bGwgMj4mMQotfQotCi0KLSMgZnVuY19n
cmVwX3EgRVhQUkVTU0lPTiBbRklMRU5BTUUuLl0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSMgQ2hlY2sgd2hldGhlciBFWFBSRVNTSU9OIG1hdGNoZXMgYW55IGxpbmUg
b2YgYW55IGxpc3RlZCBGSUxFTkFNRSwKLSMgd2l0aG91dCBhbnkgb3V0cHV0IGF0IGFsbCwgZXZl
biBlcnJvciBtZXNzYWdlcy4KLWZ1bmNfZ3JlcF9xICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0g
ICAgIyBUaGlzIGZ1bmN0aW9uIHJlbGllcyBvbiBub24temVybyBleGl0IHN0YXR1cywgd2hpY2gg
d2lsbCBjYXVzZSB0aGUKLSAgICAjIHByb2dyYW0gdG8gZXhpdCB3aGVuIHJ1bm5pbmcgaW4gJ3Nl
dCAtZScgbW9kZS4KLSAgICAkR1JFUCAiJEAiID4vZGV2L251bGwgMj4mMQotfQotCi0KLSMgZnVu
Y19pZmNvbnRhaW5zIExJU1QgTUVNQkVSIFlFUy1DTUQgW05PLUNNRF0KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgSWYgd2hpdGVzcGFjZS1zZXBhcmF0
ZWQgTElTVCBjb250YWlucyBNRU1CRVIgdGhlbiBleGVjdXRlIFlFUy1DTUQsCi0jIG90aGVyd2lz
ZSBpZiBOTy1DTUQgd2FzIGdpdmVuLCBleGVjdXRlIHRoYXQuCi1mdW5jX2lmY29udGFpbnMgKCkK
LXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBfR193c2xpc3Q9JDEKLSAgICBfR19tZW1iZXI9JDIK
LSAgICBfR195ZXNfY21kPSQzCi0gICAgX0dfbm9fY21kPSR7NC0iOiJ9Ci0KLSAgICBfR19mb3Vu
ZD1mYWxzZQotICAgIGZvciBfR19pdGVtIGluICRfR193c2xpc3Q7IGRvCi0gICAgICB0ZXN0ICJ4
JF9HX2l0ZW0iID0gIngkX0dfbWVtYmVyIiAmJiB7Ci0gICAgICAgIF9HX2ZvdW5kPToKLQlicmVh
awotICAgICAgfQotICAgIGRvbmUKLSAgICBpZiAkX0dfZm91bmQ7IHRoZW4KLSAgICAgIGV2YWwg
IiRfR195ZXNfY21kIgotICAgICAgX0dfc3RhdHVzPSQ/Ci0gICAgZWxzZQotICAgICAgZXZhbCAi
JF9HX25vX2NtZCIKLSAgICAgIF9HX3N0YXR1cz0kPwotICAgIGZpCi0KLSAgICB0ZXN0IDAgLWVx
ICIkX0dfc3RhdHVzIiB8fCBleGl0ICRfR19zdGF0dXMKLX0KLQotCi0jIGZ1bmNfc3RycGFkIFNU
UiBXSURUSCBDSEFSCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRyaW0gU1RSLCBv
ciBwYWQgd2l0aCBDSEFSIHRvIGZvcmNlIGEgdG90YWwgbGVuZ3RoIG9mIFdJRFRILgotZnVuY19z
dHJwYWQgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBfR193aWR0aD1gZXhwciAiJDIiIC0g
MWAKLSAgICBmdW5jX3N0cnBhZF9yZXN1bHQ9YCRFQ0hPICIkMSIgfCRTRUQgJwotICAgICAgICA6
YQotICAgICAgICBzfF4uXHswLCciJF9HX3dpZHRoIidcfSR8JiciJDMiJ3wKLSAgICAgICAgdGEK
LSAgICAnYAotfQotCi0KLSMgZnVuY19zdHJycGFkIFNUUiBXSURUSCBDSEFSCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotIyBUcmltIFNUUiwgb3IgcmlnaHQtanVzdGlmeS1wYWQgd2l0
aCBDSEFSIHRvIGZvcmNlIGEgdG90YWwgbGVuZ3RoIG9mCi0jIFdJRFRILgotZnVuY19zdHJycGFk
ICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgX0dfd2lkdGg9YGV4cHIgIiQyIiAtIDFgCi0g
ICAgZnVuY19zdHJycGFkX3Jlc3VsdD1gJEVDSE8gIiQxIiB8JFNFRCAnCi0gICAgICAgIDphCi0g
ICAgICAgIHN8Xi5cezAsJyIkX0dfd2lkdGgiJ1x9JHwnIiQzIicmfAotICAgICAgICB0YQotICAg
ICdgCi19Ci0KLQotIyBmdW5jX3N0cnJvdyBJTkRFTlQgRklFTEQgV0lEVEggW0ZJRUxEbiBXSURU
SG5dLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSMgUmV0dXJuIGEgc3RyaW5nIGNvbnRhaW5pbmcgZWFjaCBGSUVMRCBsZWZ0IGp1c3RpZmll
ZCB0byBXSURUSCwgd2l0aAotIyB0aGUgd2hvbGUgdGhpbmcgaW5kZW50ZWQgYnkgSU5ERU5UIHNw
YWNlcy4gIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0bwotIyByZW5kZXIgb25lIHJvdyBvZiBhbGln
bmVkIGNvbHVtbnMgZm9yIGEgdGFibGUgYnkgZnVuY19zdHJ0YWJsZSgpLgotZnVuY19zdHJyb3cg
KCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBmdW5jX3N0cnJvd19saW5lbGVuPSQxOyBzaGlm
dAotCi0gICAgX0dfcm93PQotICAgIHdoaWxlIHRlc3QgJCMgLWd0IDA7IGRvCi0gICAgICBmdW5j
X3N0cnJvd19saW5lbGVuPWBleHByICRmdW5jX3N0cnJvd19saW5lbGVuICsgJDJgCi0gICAgICBm
dW5jX3N0cnBhZCAiJDEiICQyICIgIgotICAgICAgZnVuY19hcHBlbmQgX0dfcm93ICIkZnVuY19z
dHJwYWRfcmVzdWx0IgotICAgICAgc2hpZnQ7IHNoaWZ0Ci0gICAgZG9uZQotCi0gICAgZnVuY19z
dHJycGFkICIkX0dfcm93IiAkZnVuY19zdHJyb3dfbGluZWxlbiAiICIKLSAgICBmdW5jX3N0cnJv
d19yZXN1bHQ9JGZ1bmNfc3RycnBhZF9yZXN1bHQKLX0KLQotCi0jIGZ1bmNfc3RydGFibGUgSU5E
RU5UIFdJRFRIMS4uLldJRFRIbiBIRUFERVIxLi4uSEVBREVSbiBGSUVMRDEuLi5GSUVMRG4KLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotIyBHZW5lcmF0ZSBhIHN0cmluZyBvZiBuZXdsaW5lLXNlcGFyYXRlZCBy
b3dzIGFycmFuZ2VkIGluIGxpbmVkLXVwCi0jIGNvbHVtbnMgb2YgdGhlIGdpdmVuIFdJRFRIcywg
d2l0aCB0aGUgZW50aXJlIHRhYmxlIGluZGVudGVkIGJ5IElOREVOVAotIyBzcGFjZXMuICBUaGUg
bnVtYmVyIG9mIGNvbHVtbnMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbnVtYmVyIG9mIGludGVnZXIK
LSMgdmFsdWVkIFdJRFRIIGFyZ3VtZW50cyBmb2xsb3dpbmcgSU5ERU5ULiAgVGhlIG5leHQgc2V0
IChpLmUuIGEgbnVtYmVyCi0jIG9mIGFyZ3VtZW50cyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIFdJ
RFRIIGFyZ3VtZW50cykgb2YgZmllbGRzIGFyZQotIyB0cmVhdGVkIGFzIHRoZSB0YWJsZSdzIGNv
bHVtbiBIRUFERVJzLCBhbmQgYXJlIHNlcGFyYXRlZCBmcm9tIHRoZQotIyByZW1haW5kZXIgb2Yg
dGhlIHRhYmxlIGJ5IGFuIGluZGVudGVkIHJvdyBvZiAnLScgY2hhcmFjdGVycy4gUmVtYWluaW5n
Ci0jIGFyZ3VtZW50cyBhcmUgZWFjaCBhbGlnbmVkIGJlbG93IHRoZSBuZXh0IGF2YWlsYWJsZSBo
ZWFkZXIsIHdyYXBwaW5nCi0jIHRvIGEgbmV3IHJvdyBhcyBuZWNlc3NhcnkuICBGaW5hbGx5IGFu
b3RoZXIgcm93IG9mICctJyBjaGFyYWN0ZXJzIGlzCi0jIGFkZGVkIHRvIG1hcmsgdGhlIGVuZCBv
ZiB0aGUgdGFibGUuCi0jCi0jIEZvciBleGFtcGxlIGFuIHVuaW5kZW50ZWQgMyBjb2x1bW4gdGFi
bGUgd2l0aCAyIHJvd3Mgb2YgZGF0YSB3b3VsZCBiZQotIyBnZW5lcmF0ZWQgYnkgdGhpcyBjYWxs
OgotIwotIyAgICBmdW5jX3N0cnRhYmxlIDMgMjAgMTAgMjUgXAotIyAgICAgICAgSGVhZGVyMSBI
ZWFkZXIyIEhlYWRlcjMgXAotIyAgICAgICAgUm93MUNvbDEgUm93MUNvbDIgUm93MUNvbDMgXAot
IyAgICAgICAgUm93MkNvbDEgUm93MkNvbDIgUm93MkNvbDMKLSMKLSMgcmV0dXJuaW5nIHRoZSBm
b2xsb3dpbmcgc3RyaW5nOgotIwotIyAiICAgSGVhZGVyMSAgICAgICAgICAgICBIZWFkZXIyICAg
SGVhZGVyMwotIyAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotIyAgICAgUm93MUNvbDEgICAgICAgICAgICBSb3cxQ29sMiAgUm93MUNv
bDMKLSMgICAgIFJvdzJDb2wxICAgICAgICAgICAgUm93MkNvbDIgIFJvdzJDb2wzCi0jICAgICAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgot
ZnVuY19zdHJ0YWJsZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICMgU2F2ZSB0aGUgaW5k
ZW50IHZhbHVlLCB3ZSdsbCBuZWVkIGl0IGZvciBlYWNoIHJvdyB3ZSByZW5kZXIuCi0gICAgX0df
aW5kZW50PSQxOyBzaGlmdAotCi0gICAgIyBDb2xsZWN0IHJlbWFpbmluZyBudW1lcmljIGFyZ3Mg
aW50byBhIGxpc3QgZm9yIHJldXNlIGJldHdlZW4KLSAgICAjIG1lbWJlcnMgb2YgZWFjaCByb3cg
d2hlbiB3ZSBjYWxsIGZ1bmNfc3Rycm93IGxhdGVyLgotICAgIF9HX3dpZHRocz0kMTsgc2hpZnQK
LSAgICB3aGlsZSB0ZXN0IDAgLWx0IGBleHByICIkMSIgOiAnWzEtOV1bMC05XSokJ2A7IGRvCi0g
ICAgICBmdW5jX2FwcGVuZCBfR193aWR0aHMgIiAkMSI7IHNoaWZ0Ci0gICAgZG9uZQotCi0gICAg
IyBFeHRyYWN0IHRoZSBzYW1lIG51bWJlciBvZiBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgYXMgdGhl
cmUgYXJlCi0gICAgIyB3aWR0aCBlbGVtZW50cyAtIHdlJ2xsIGRvIHRoZSBoZWFkZXIgcm93cyBz
ZXBhcmF0ZWx5IHNvIHRoYXQKLSAgICAjIHdlIGNhbiBpbnNlcnQgYSBkaXZpZGVyIGxpbmUuCi0g
ICAgX0dfaGVhZGVyPSRfR19pbmRlbnQKLSAgICBmb3IgX0dfd2lkdGggaW4gJF9HX3dpZHRoczsg
ZG8KLSAgICAgIGZ1bmNfYXBwZW5kIF9HX2hlYWRlciAiICQxICRfR193aWR0aCI7IHNoaWZ0Ci0g
ICAgZG9uZQotICAgIGZ1bmNfc3Rycm93ICRfR19oZWFkZXIKLQotICAgICMgU3RyaXAgb2ZmIHRo
ZSBpbmRlbnQsIGFuZCBtYWtlIGEgZGl2aWRlciB3aXRoICctJyBjaGFycywgdGhlbgotICAgICMg
cmVpbmRlbnQuCi0gICAgX0dfZGl2aWRlcj1gJEVDSE8gIiRmdW5jX3N0cnJvd19yZXN1bHQiIFwK
LSAgICAgICAgfCRTRUQgJ3N8W14gXXwtfGcKLSAgICAgICAgICAgIDphCi0gICAgICAgICAgICBz
fC0gfC0tfGcKLSAgICAgICAgICAgIHRhCi0gICAgICAgICdgCi0KLSAgICAjIEFwcGVuZCB0aGUg
aGVhZGVyIGFuZCBkaXZpZGVyIHRvIHRoZSBydW5uaW5nIHJlc3VsdC4KLSAgICBmdW5jX2FwcGVu
ZCBmdW5jX3N0cnRhYmxlX3Jlc3VsdCAiXAotJGZ1bmNfc3Rycm93X3Jlc3VsdAotJF9HX2Rpdmlk
ZXIKLSIKLQotICAgICMgVGhlIHJlbWFpbmluZyByb3dzIGFyZSB6aXBwZWQgYmV0d2VlbiB0aGUg
d2lkdGggdmFsdWVzIHdlCi0gICAgIyB1bndvdW5kIGVhcmxpZXIganVzdCBsaWtlIHRoZSBoZWFk
ZXIgcm93IGFib3ZlLgotICAgIHdoaWxlIHRlc3QgJCMgLWd0IDA7IGRvCi0gICAgICBfR19yb3c9
JF9HX2luZGVudAotICAgICAgZm9yIF9HX3dpZHRoIGluICRfR193aWR0aHM7IGRvCi0gICAgICAg
IGZ1bmNfYXBwZW5kIF9HX3JvdyAiICQxICRfR193aWR0aCI7IHNoaWZ0Ci0gICAgICBkb25lCi0g
ICAgICBmdW5jX3N0cnJvdyAkX0dfcm93Ci0gICAgICBmdW5jX2FwcGVuZCBmdW5jX3N0cnRhYmxl
X3Jlc3VsdCAiXAotJGZ1bmNfc3Rycm93X3Jlc3VsdAotIgotICAgIGRvbmUKLQotICAgICMgTWFy
ayB0aGUgZW5kIG9mIHRoZSB0YWJsZSB3aXRoIGEgZmluYWwgZGl2aWRlciBsaW5lLgotICAgIGZ1
bmNfYXBwZW5kIGZ1bmNfc3RydGFibGVfcmVzdWx0ICIkX0dfZGl2aWRlciIKLX0KLQotCi0jIGZ1
bmNfaW50ZXJuYWxfZXJyb3IgQVJHLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0j
IEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGFu
ZCBleGl0LgotZnVuY19pbnRlcm5hbF9lcnJvciAoKQotewotICAgIGZ1bmNfZmF0YWxfZXJyb3Ig
IlwKLUlOVEVSTkFMOiAiICR7MSsiJEAifSAiCi0gICAgICAgICAgUGxlYXNlIHJlcG9ydCB0aGlz
IGJ1ZyB0byAnYnVnLWdudWxpYkBnbnUub3JnJwotICAgICAgICAgIGluIGFzIG11Y2ggZGV0YWls
IGFzIHBvc3NpYmxlLiIKLX0KLQotCi0jIGZ1bmNfcGVybWlzc2lvbnNfZXJyb3IgRklMRS1PUi1E
SVJFQ1RPUlkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBF
Y2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBwZXJtaXNzaW9ucyBlcnJvciBtZXNzYWdlIHRvIHN0
YW5kYXJkCi0jIGVycm9yLCBhbmQgZXhpdC4KLWZ1bmNfcGVybWlzc2lvbnNfZXJyb3IgKCkKLXsK
LSAgICAkZGVidWdfY21kCi0KLSAgICBmdW5jX2ZhdGFsX2Vycm9yICJGYWlsZWQgdG8gY3JlYXRl
ICckMScsIGNoZWNrIHBlcm1pc3Npb25zLiIKLX0KLQotCi0jIGZ1bmNfc2hvd19ldmFsIENNRCBb
RkFJTF9FWFBdCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFVubGVzcyBvcHRf
c2lsZW50IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4sIGlmIG9wdF9kcnlydW4gaXMK
LSMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFsdWF0aW9uIG9mIENNRCBmYWls
cywgYW5kIEZBSUxfRVhQCi0jIGlzIGdpdmVuLCB0aGVuIGV2YWx1YXRlIGl0LgotZnVuY19zaG93
X2V2YWwgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkcmVxdWlyZV90ZXJtX2NvbG9ycwot
Ci0gICAgX0dfY21kPSQxCi0gICAgX0dfZmFpbF9leHA9JHsyLSc6J30KLQotICAgICR7b3B0X3Np
bGVudC0nZmFsc2UnfSB8fCB7Ci0gICAgICBmdW5jX3F1b3RlIGV2YWwgJF9HX2NtZAotICAgICAg
ZXZhbCBmdW5jX3RydW5jYXRlX2NtZCAkZnVuY19xdW90ZV9yZXN1bHQKLSAgICAgIGZ1bmNfZWNo
byAicnVubmluZzogJHRjX2JvbGQkZnVuY190cnVuY2F0ZV9jbWRfcmVzdWx0JHRjX3Jlc2V0Igot
ICAgIH0KLQotICAgICR7b3B0X2RyeV9ydW4tJ2ZhbHNlJ30gfHwgewotICAgICAgZXZhbCAiJF9H
X2NtZCIKLSAgICAgIF9HX3N0YXR1cz0kPwotICAgICAgdGVzdCAwIC1lcSAiJF9HX3N0YXR1cyIg
fHwgZXZhbCAiKGV4aXQgJF9HX3N0YXR1cyk7ICRfR19mYWlsX2V4cCIKLSAgICB9Ci19Ci0KLQot
IyBmdW5jX3RydW5jYXRlX2NtZCBDTUQgW0FSR10uLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0jIEZvciB1bnJlYXNvbmFibHkgbG9uZyBjb21tYW5kcyAoc3VjaCBhcyBhIGdu
dWxpYi10b29sIGludm9jYXRpb24gd2l0aAotIyB0aGUgZnVsbCBtb2R1bGUgbGlzdCBmb3IgaW1w
b3J0KSwgdHJ1bmNhdGUgQ01EIGFmdGVyIHRoZSBzZWNvbmQgbm9uLQotIyBvcHRpb24gQVJHLgot
ZnVuY190cnVuY2F0ZV9jbWQgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBfR19sYXN0X2Fy
Z19vcHRfcD1mYWxzZQotICAgIGZ1bmNfdHJ1bmNhdGVfY21kX3Jlc3VsdD0KLQotICAgIHNldCBk
dW1teSAiJEAiOyBzaGlmdAotCi0gICAgd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KLSAgICAgIF9H
X29wdD0kMTsgc2hpZnQKLQotICAgICAgdGVzdCAtbiAiJGZ1bmNfdHJ1bmNhdGVfY21kX3Jlc3Vs
dCIgXAotICAgICAgICAgICYmIGZ1bmNfYXBwZW5kIGZ1bmNfdHJ1bmNhdGVfY21kX3Jlc3VsdCAn
ICcKLSAgICAgIGZ1bmNfYXBwZW5kIGZ1bmNfdHJ1bmNhdGVfY21kX3Jlc3VsdCAiJF9HX29wdCIK
LQotICAgICAgZnVuY19sZW4gIngkZnVuY190cnVuY2F0ZV9jbWRfcmVzdWx0IgotCi0gICAgICBj
YXNlICRfR19vcHQgaW4KLSAgICAgICAgLSopIF9HX2xhc3RfYXJnX29wdF9wPTogOzsKLSAgICAg
ICAgKikgICRfR19sYXN0X2FyZ19vcHRfcCBcCi0gICAgICAgICAgICAgICAgfHwgdGVzdCAiJG1p
bl9jbWRfbGVuIiAtZ3QgIiRmdW5jX2xlbl9yZXN1bHQiIFwKLSAgICAgICAgICAgICAgICB8fCBi
cmVhawotICAgICAgICAgICAgX0dfbGFzdF9hcmdfb3B0X3A9ZmFsc2UKLSAgICAgICAgICAgIDs7
Ci0gICAgICBlc2FjCi0gICAgZG9uZQotCi0gICAgdGVzdCAkIyAtZ3QgMCAmJiBmdW5jX2FwcGVu
ZCBmdW5jX3RydW5jYXRlX2NtZF9yZXN1bHQgIi4uLiIKLX0KLQotCi0jIGZ1bmNfZ2l0aWdub3Jl
X2VudHJpZXMgRklMRS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgU3Ry
aXAgYmxhbmsgYW5kIGNvbW1lbnQgbGluZXMgdG8gbGVhdmUgc2lnbmlmaWNhbnQgZW50cmllcy4K
LWZ1bmNfZ2l0aWdub3JlX2VudHJpZXMgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAkU0VE
IC1lICcvXiMvZCcgLWUgJy9eJC9kJyAiJEAiCi19Ci0KLQotIyBmdW5jX2luc2VydF9pZl9hYnNl
bnQgU1RSIEZJTEUuLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIElm
ICRTVFIgaXMgbm90IGFscmVhZHkgb24gYSBsaW5lIGJ5IGl0c2VsZiBpbiAkRklMRSwgaW5zZXJ0
IGl0LCBhdCB0aGUKLSMgc3RhcnQuICBFbnRyaWVzIGFyZSBpbnNlcnRlZCBhdCB0aGUgc3RhcnQg
b2YgdGhlIGlnbm9yZSBsaXN0IHRvIGVuc3VyZQotIyBleGlzdGluZyBlbnRyaWVzIHN0YXJ0aW5n
IHdpdGggISBhcmUgbm90IG92ZXJyaWRkZW4uICBTdWNoIGVudHJpZXMKLSMgc3VwcG9ydCB3aGls
ZWxpc3RpbmcgZXhjZXB0aW9ucyBhZnRlciBhIG1vcmUgZ2VuZXJpYyBibGFja2xpc3QgcGF0dGVy
bi4KLSMgc29ydGluZyB0aGUgbmV3IGNvbnRlbnRzIG9mIHRoZSBmaWxlIGFuZCByZXBsYWNpbmcg
JEZJTEUgd2l0aCB0aGUgcmVzdWx0LgotZnVuY19pbnNlcnRfaWZfYWJzZW50ICgpCi17Ci0gICAg
JGRlYnVnX2NtZAotCi0gICAgc3RyPSQxCi0gICAgc2hpZnQKLQotICAgIGZvciBmaWxlCi0gICAg
ZG8KLSAgICAgIHRlc3QgLWYgIiRmaWxlIiB8fCB0b3VjaCAiJGZpbGUiCi0KLSAgICAgIGR1cGxp
Y2F0ZV9lbnRyaWVzPWBmdW5jX2dpdGlnbm9yZV9lbnRyaWVzICIkZmlsZSIgfHNvcnQgfHVuaXEg
LWRgCi0gICAgICB0ZXN0IC1uICIkZHVwbGljYXRlX2VudHJpZXMiIFwKLSAgICAgICAgICAmJiBm
dW5jX2Vycm9yICJkdXBsaWNhdGUgZW50cmllcyBpbiAkZmlsZTogIiAkZHVwbGljYXRlX2VudHJp
ZXMKLQotICAgICAgZnVuY19ncmVwX3EgIl4kc3RyXCQiICIkZmlsZSIgXAotICAgICAgICAgIHx8
IGZ1bmNfdmVyYm9zZSAiaW5zZXJ0aW5nICckc3RyJyBpbnRvICckZmlsZSciCi0KLSAgICAgIGxp
bmVzb2xkPWBmdW5jX2dpdGlnbm9yZV9lbnRyaWVzICIkZmlsZSIgfHdjIC1sYAotICAgICAgbGlu
ZXNuZXc9YHsgJEVDSE8gIiRzdHIiOyBjYXQgIiRmaWxlIjsgfSBcCi0gICAgICAgICAgICAgICAg
fGZ1bmNfZ2l0aWdub3JlX2VudHJpZXMgfHNvcnQgLXUgfHdjIC1sYAotICAgICAgdGVzdCAiJGxp
bmVzb2xkIiAtZXEgIiRsaW5lc25ldyIgXAotICAgICAgICB8fCB7ICRTRUQgIjFpXFwkbmwkc3Ry
JG5sIiAiJGZpbGUiID4iJGZpbGUiVCAmJiBtdiAiJGZpbGUiVCAiJGZpbGUiOyB9IFwKLSAgICAg
ICAgfHwgZnVuY19wZXJtaXNzaW9uc19lcnJvciAiJGZpbGUiCi0gICAgZG9uZQotfQotCi0KLSMg
ZnVuY19nZXRfdmVyc2lvbiBBUFAKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgZWNobyB0aGUg
dmVyc2lvbiBudW1iZXIgKGlmIGFueSkgb2YgQVBQLCB3aGljaCBpcyBsb29rZWQgdXAgYWxvbmcg
eW91cgotIyBQQVRILgotZnVuY19nZXRfdmVyc2lvbiAoKQotewotICAgICRkZWJ1Z19jbWQKLQot
ICAgIF9HX2FwcD0kMQotCi0gICAgIyBSYXRoZXIgdGhhbiB1bmNvbW1lbnQgdGhlIHNlZCBzY3Jp
cHQgaW4tc2l0dSwgc3RyaXAgdGhlIGNvbW1lbnRzCi0gICAgIyBwcm9ncmFtYXRpY2FsbHkgYmVm
b3JlIHBhc3NpbmcgdGhlIHJlc3VsdCB0byAkU0VEIGZvciBldmFsdWF0aW9uLgotICAgIHNlZF9n
ZXRfdmVyc2lvbj1gJEVDSE8gJyMgZXh0cmFjdCB2ZXJzaW9uIHdpdGhpbiBsaW5lCi0gICAgICAg
ICAgc3wuKlt2IF1cezEsXH1cKFswLTldXHsxLFx9XC5bLmEtejAtOS1dKlwpLip8XDF8Ci0gICAg
ICAgICAgdCBkb25lCi0KLSAgICAgICAgICAjIGV4dHJhY3QgdmVyc2lvbiBhdCBzdGFydCBvZiBs
aW5lCi0gICAgICAgICAgc3xeXChbMC05XVx7MSxcfVwuWy5hLXowLTktXSpcKS4qfFwxfAotICAg
ICAgICAgIHQgZG9uZQotCi0gICAgICAgICAgZAotCi0gICAgICAgICAgOmRvbmUKLSAgICAgICAg
ICAjIHRoZSBmb2xsb3dpbmcgZXNzZW50aWFsbHkgZG9lcyBzfDUuMDA1fDUuNXwKLSAgICAgICAg
ICBzfFwuMCpcKFsxLTldXCl8LlwxfGcKLSAgICAgICAgICBwCi0gICAgICAgICAgcScgXAotICAg
IHwkU0VEICcvXlsJIF0qIy4qJC9kJ2AKLQotICAgIGZ1bmNfdG9vbF92ZXJzaW9uX291dHB1dCAk
X0dfYXBwID4vZGV2L251bGwKLSAgICBfR19zdGF0dXM9JD8KLQotICAgIHRlc3QgMCAtbmUgIiRf
R19zdGF0dXMiIFwKLSAgICAgIHx8ICRfR19hcHAgLS12ZXJzaW9uIDI+JjEgfCRTRUQgLW4gIiRz
ZWRfZ2V0X3ZlcnNpb24iCi0KLSAgICAoZXhpdCAkX0dfc3RhdHVzKQotfQotCi0KLSMgZnVuY19j
aGVja190b29sIEFQUAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNlYXJjaCBQQVRIIGZvciBh
biBleGVjdXRhYmxlIGF0IEFQUC4KLWZ1bmNfY2hlY2tfdG9vbCAoKQotewotICAgICRkZWJ1Z19j
bWQKLQotICAgIGZ1bmNfY2hlY2tfdG9vbF9yZXN1bHQ9Ci0KLSAgICBjYXNlICQxIGluCi0gICAg
KltcXC9dKikKLSAgICAgIHRlc3QgLXggIiQxIiAmJiBmdW5jX2NoZWNrX3Rvb2xfcmVzdWx0PSQx
Ci0gICAgICA7OwotICAgICopCi0gICAgICBzYXZlX0lGUz0kSUZTCi0gICAgICBJRlM9JHtQQVRI
X1NFUEFSQVRPUi06fQotICAgICAgZm9yIF9HX2NoZWNrX3Rvb2xfcGF0aCBpbiAkUEFUSDsgZG8K
LSAgICAgICAgSUZTPSRzYXZlX0lGUwotCWlmIHRlc3QgLXggIiRfR19jaGVja190b29sX3BhdGgv
JDEiOyB0aGVuCi0JICBmdW5jX2NoZWNrX3Rvb2xfcmVzdWx0PSRfR19jaGVja190b29sX3BhdGgv
JDEKLQkgIGJyZWFrCi0JZmkKLSAgICAgIGRvbmUKLSAgICAgIElGUz0kc2F2ZV9JRlMKLSAgICAg
IDs7Ci0gICAgZXNhYwotfQotCi0KLSMgZnVuY19jaGVja192ZXJzaW9ucyBBUFAxIFZFUjEgVVJM
MSAuLi5bQVBQTiBWRVJOIFVSTE5dCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotZnVuY19jaGVja192ZXJzaW9ucyAoKQotewotICAgICRk
ZWJ1Z19jbWQKLQotICAgIGZ1bmNfY2hlY2tfdmVyc2lvbnNfcmVzdWx0PToKLQotICAgIHdoaWxl
IHRlc3QgJCMgLWd0IDA7IGRvCi0gICAgICBfR19hcHA9JDE7IHNoaWZ0Ci0gICAgICBfR19yZXF2
ZXI9JDE7IHNoaWZ0Ci0gICAgICBfR191cmw9JDE7IHNoaWZ0Ci0KLSAgICAgICMgRGlhZ25vc2Ug
YmFkIGJ1aWxkcmVxIGZvcm1hdHRpbmcuCi0gICAgICBjYXNlICRfR191cmwgaW4KLSAgICAgIFth
LXpdKjovLyopIDs7ICMgbG9va3MgbGlrZSBhIHVybAotICAgICAgKikgZnVuY19mYXRhbF9lcnJv
ciAiXAotJyRfR191cmwnIGZyb20gdGhlIGJ1aWxkcmVxIHRhYmxlIGluCi0nYm9vdHN0cmFwLmNv
bmYnIGRvZXMgbm90IGxvb2sgbGlrZSB0aGUgVVJMIGZvciBkb3dubG9hZGluZwotJF9HX2FwcC4g
UGxlYXNlIGVuc3VyZSB0aGF0IGJ1aWxkcmVxIGlzIGEgc3RyaWN0IG5ld2xpbmUKLWRlbGltaXRl
ZCBsaXN0IG9mIHRyaXBsZXM7ICdwcm9ncmFtIG1pbi12ZXJzaW9uIHVybCcuIgotICAgICAgICA7
OwotICAgICAgZXNhYwotCi0gICAgICAjIEhvbm9yICRBUFAgdmFyaWFibGVzICgkVEFSLCAkQVVU
T0NPTkYsIGV0Yy4pCi0gICAgICBfR19hcHB2YXI9YGVjaG8gJF9HX2FwcCB8dHIgJ1thLXpdJyAn
W0EtWl0nYAotICAgICAgdGVzdCBUQVIgPSAiJF9HX2FwcHZhciIgJiYgX0dfYXBwdmFyPUFNVEFS
Ci0gICAgICBldmFsICJfR19hcHA9XCR7JF9HX2FwcHZhci0kX0dfYXBwfSIKLQotICAgICAgIyBG
YWlsIGlmIG5vIHZlcnNpb24gc3BlY2lmaWVkLCBidXQgdGhlIHByb2dyYW0gY2FuJ3QgYmUgZm91
bmQuCi0gICAgICBpZiB0ZXN0IHgtID0gIngkX0dfcmVxdmVyIjsgdGhlbgotICAgICAgICBmdW5j
X2NoZWNrX3Rvb2wgJF9HX2FwcAotCWlmIHRlc3QgLXogIiRmdW5jX2NoZWNrX3Rvb2xfcmVzdWx0
IjsgdGhlbgotCSAgZnVuY19lcnJvciAiUHJlcmVxdWlzaXRlICckX0dfYXBwJyBub3Qgbm90IGZv
dW5kLiBQbGVhc2UgaW5zdGFsbCBpdCwgb3IKLSdleHBvcnQgJF9HX2FwcHZhcj0vcGF0aC90by8k
X0dfYXBwJy4iCi0gICAgICAgICAgZnVuY19jaGVja192ZXJzaW9uc19yZXN1bHQ9ZmFsc2UKLQll
bHNlCi0JICBmdW5jX3ZlcmJvc2UgImZvdW5kICckZnVuY19jaGVja190b29sX3Jlc3VsdCcgZm9y
ICRfR19hcHB2YXIuIgotCWZpCi0gICAgICBlbHNlCi0gICAgICAgIF9HX2luc3R2ZXI9YGZ1bmNf
Z2V0X3ZlcnNpb24gJF9HX2FwcGAKLQotICAgICAgICAjIEZhaWwgaWYgLS12ZXJzaW9uIGRpZG4n
dCB3b3JrLgotICAgICAgICBpZiB0ZXN0IC16ICIkX0dfaW5zdHZlciI7IHRoZW4KLSAgICAgICAg
ICBmdW5jX2Vycm9yICJQcmVyZXF1aXNpdGUgJyRfR19hcHAnIG5vdCBmb3VuZC4gUGxlYXNlIGlu
c3RhbGwgaXQsIG9yCi0nZXhwb3J0ICRfR19hcHB2YXI9L3BhdGgvdG8vJF9HX2FwcCcuIgotICAg
ICAgICAgIGZ1bmNfY2hlY2tfdmVyc2lvbnNfcmVzdWx0PWZhbHNlCi0KLSAgICAgICAgIyBGYWls
IGlmIGEgbmV3ZXIgdmVyc2lvbiB0aGFuIHdoYXQgd2UgaGF2ZSBpcyByZXF1aXJlZC4KLSAgICAg
ICAgZWxzZQotICAgICAgICAgIGZ1bmNfdmVyYm9zZSAiZm91bmQgJyRfR19hcHAnIHZlcnNpb24g
JF9HX2luc3R2ZXIuIgotCi0JICBjYXNlICRfR19yZXF2ZXIgaW4KLSAgICAgICAgICAgID0qKQot
ICAgICAgICAgICAgICAjIElmICRidWlsZHJlcSB2ZXJzaW9uIHN0YXJ0cyB3aXRoICc9JywgdmVy
c2lvbiBtdXN0Ci0JICAgICAgIyBtYXRjaCB0aGUgaW5zdGFsbGVkIHByb2dyYW0gZXhhY3RseS4K
LQkgICAgICB0ZXN0ICJ4JF9HX3JlcXZlciIgPSAieD0kX0dfaW5zdHZlciIgfHwgewotCSAgICAg
ICAgZnVuY19lcnJvciAiXAotICAnJF9HX2FwcCcgdmVyc2lvbiA9PSAkX0dfaW5zdHZlciBpcyB0
b28gb2xkCi0gICdleGFjdGx5ICRfR19hcHAtJF9HX3JlcXZlciBpcyByZXF1aXJlZCIKLSAgICAg
ICAgICAgICAgICBmdW5jX2NoZWNrX3ZlcnNpb25zX3Jlc3VsdD1mYWxzZQotICAgICAgICAgICAg
ICB9Ci0JICAgICAgOzsKLQkgICAgKikKLSAgICAgICAgICAgICAgIyBPdGhlcndpc2UsIGFueXRo
aW5nIHRoYXQgaXMgbm90IG9sZGVyIGlzIGEgbWF0Y2guCi0gICAgICAgICAgICAgIGZ1bmNfbHRf
dmVyICIkX0dfcmVxdmVyIiAiJF9HX2luc3R2ZXIiIHx8IHsKLSAgICAgICAgICAgICAgICBmdW5j
X2Vycm9yICJcCi0gICckX0dfYXBwJyB2ZXJzaW9uID09ICRfR19pbnN0dmVyIGlzIHRvbyBvbGQK
LSAgJyRfR19hcHAnIHZlcnNpb24gPj0gJF9HX3JlcXZlciBpcyByZXF1aXJlZCIKLSAgICAgICAg
ICAgIGZ1bmNfY2hlY2tfdmVyc2lvbnNfcmVzdWx0PWZhbHNlCi0gICAgICAgICAgICAgIH0KLQkg
ICAgICA7OwotCSAgZXNhYwotICAgICAgICBmaQotICAgICAgZmkKLSAgICBkb25lCi19Ci0KLQot
IyBmdW5jX2NsZWFudXBfZ251bGliCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUmVjdXJzaXZl
bHkgZGVsZXRlIGV2ZXJ5dGhpbmcgYmVsb3cgdGhlIHBhdGggaW4gdGhlIGdsb2JhbCB2YXJpYWJs
ZQotIyBHTlVMSUJfUEFUSC4KLWZ1bmNfY2xlYW51cF9nbnVsaWIgKCkKLXsKLSAgICAkZGVidWdf
Y21kCi0KLSAgICBfR19zdGF0dXM9JD8KLSAgICAkUk0gLWZyICIkZ251bGliX3BhdGgiCi0gICAg
ZXhpdCAkX0dfc3RhdHVzCi19Ci0KLQotIyBmdW5jX2Rvd25sb2FkX3BvX2ZpbGVzIFNVQkRJUiBE
T01BSU4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1mdW5jX2Rvd25s
b2FkX3BvX2ZpbGVzICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgZnVuY19lY2hvICJnZXR0
aW5nIHRyYW5zbGF0aW9ucyBpbnRvICQxIGZvciAkMi4uLiIKLSAgICBfR19jbWQ9YHByaW50ZiAi
JHBvX2Rvd25sb2FkX2NvbW1hbmRfZm9ybWF0IiAiJDIiICIkMSJgCi0gICAgZXZhbCAiJF9HX2Nt
ZCIKLX0KLQotCi0jIGZ1bmNfdXBkYXRlX3BvX2ZpbGVzIFBPX0RJUiBET01BSU4KLSMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBNaXJyb3IgLnBvIGZpbGVzIHRvICRwb19k
aXIvLnJlZmVyZW5jZSBhbmQgY29weSBvbmx5IHRoZSBuZXcKLSMgb3IgbW9kaWZpZWQgb25lcyBp
bnRvICRwb19kaXIuICBBbHNvIHVwZGF0ZSAkcG9fZGlyL0xJTkdVQVMuCi0jIE5vdGUgcG8gZmls
ZXMgdGhhdCBleGlzdCBsb2NhbGx5IG9ubHkgYXJlIGxlZnQgaW4gJHBvX2RpciBidXQgd2lsbAot
IyBub3QgYmUgaW5jbHVkZWQgaW4gTElOR1VBUyBhbmQgaGVuY2Ugd2lsbCBub3QgYmUgZGlzdHJp
YnV0ZWQuCi1mdW5jX3VwZGF0ZV9wb19maWxlcyAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAg
ICMgRGlyZWN0b3J5IGNvbnRhaW5pbmcgcHJpbWFyeSAucG8gZmlsZXMuCi0gICAgIyBPdmVyd3Jp
dGUgdGhlbSBvbmx5IHdoZW4gd2UncmUgc3VyZSBhIC5wbyBmaWxlIGlzIG5ldy4KLSAgICBfR19w
b19kaXI9JDEKLSAgICBfR19kb21haW49JDIKLQotICAgICMgTWlycm9yICoucG8gZmlsZXMgaW50
byB0aGlzIGRpci4KLSAgICAjIFVzdWFsbHkgY29udGFpbnMgKi5zMSBjaGVja3N1bSBmaWxlcy4K
LSAgICBfR19yZWZfcG9fZGlyPSRfR19wb19kaXIvLnJlZmVyZW5jZQotCi0gICAgdGVzdCAtZCAi
JF9HX3JlZl9wb19kaXIiIHx8IG1rZGlyICRfR19yZWZfcG9fZGlyIHx8IHJldHVybgotICAgIGZ1
bmNfZG93bmxvYWRfcG9fZmlsZXMgJF9HX3JlZl9wb19kaXIgJF9HX2RvbWFpbiBcCi0gICAgICAm
JiBscyAiJF9HX3JlZl9wb19kaXIiLyoucG8gMj4vZGV2L251bGwgXAotICAgICAgICAgfCRTRUQg
LWUgJ3N8LiovfHwnIC1lICdzfFwucG8kfHwnID4gIiRfR19wb19kaXIvTElOR1VBUyIgfHwgcmV0
dXJuCi0KLSAgICAjIEZpbmQgc2hhMXN1bSwgbmFtZWQgZ3NoYTFzdW0gb24gTWFjUG9ydHMsIGFu
ZCBzaGFzdW0gb24gTWFjT1MgMTAuNisuCi0gICAgZnVuY19maW5kX3Rvb2wgU0hBMVNVTSBzaGEx
c3VtIGdzaGExc3VtIHNoYXN1bSBzaGExCi0KLSAgICB0ZXN0IC1uICIkU0hBMVNVTSIgfHwgZnVu
Y19mYXRhbF9lcnJvciAiXAotUGxlYXNlIGluc3RhbGwgR05VIENvcmV1dGlscywgb3IgJ2V4cG9y
dCBTSEExU1VNPS9wYXRoL3RvL3NoYTFzdW0nLiIKLQotICAgIF9HX2xhbmdzPWBjZCAkX0dfcmVm
X3BvX2RpciAmJiBlY2hvICoucG98JFNFRCAnc3xcLnBvfHxnJ2AKLSAgICB0ZXN0ICcqJyA9ICIk
X0dfbGFuZ3MiICYmIF9HX2xhbmdzPXgKLSAgICBmb3IgX0dfcG8gaW4gJF9HX2xhbmdzOyBkbwot
ICAgICAgY2FzZSAkX0dfcG8gaW4geCkgY29udGludWU7OyBlc2FjCi0gICAgICBfR19uZXdfcG89
JF9HX3JlZl9wb19kaXIvJF9HX3BvLnBvCi0gICAgICBfR19ja3N1bV9maWxlPSRfR19yZWZfcG9f
ZGlyLyRfR19wby5zMQotICAgICAgaWYgISB0ZXN0IC1mICIkX0dfY2tzdW1fZmlsZSIgfHwKLSAg
ICAgICAgICAhIHRlc3QgLWYgIiRfR19wb19kaXIvJF9HX3BvLnBvIiB8fAotICAgICAgICAgICEg
JFNIQTFTVU0gLWMgIiRfR19ja3N1bV9maWxlIiBcCi0gICAgICAgICAgICAgIDwgIiRfR19uZXdf
cG8iID4gL2Rldi9udWxsOyB0aGVuCi0gICAgICAgIGVjaG8gInVwZGF0ZWQgJF9HX3BvX2Rpci8k
X0dfcG8ucG8uLi4iCi0gICAgICAgIGNwICIkX0dfbmV3X3BvIiAiJF9HX3BvX2Rpci8kX0dfcG8u
cG8iIFwKLSAgICAgICAgICAmJiAkU0hBMVNVTSA8ICIkX0dfbmV3X3BvIiA+ICIkX0dfY2tzdW1f
ZmlsZSIgfHwgcmV0dXJuCi0gICAgICBmaQotICAgIGRvbmUKLX0KLQotCi0KLSMjIC0tLS0tLS0t
LS0tLS0tLSAjIwotIyMgT3B0aW9uIHBhcnNpbmcuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0gIyMK
LQotIyBIb29rIGluIHRoZSBmdW5jdGlvbnMgdG8gbWFrZSBzdXJlIG91ciBvd24gb3B0aW9ucyBh
cmUgcGFyc2VkIGR1cmluZwotIyB0aGUgb3B0aW9uIHBhcnNpbmcgbG9vcC4KLQotdXNhZ2U9JyRw
cm9ncGF0aCBbT1BUSU9OXS4uLicKLQotIyBTaG9ydCBoZWxwIG1lc3NhZ2UgaW4gcmVzcG9uc2Ug
dG8gJy1oJy4gIEFkZCB0byB0aGlzIGluICdib290c3RyYXAuY29uZicKLSMgaWYgeW91IGFjY2Vw
dCBhbnkgYWRkaXRpb25hbCBvcHRpb25zLgotdXNhZ2VfbWVzc2FnZT0iQ29tbW9uIEJvb3RzdHJh
cCBPcHRpb25zOgotICAgLWMsIC0tY29weSAgICAgICAgIGNvcHkgZmlsZXMgaW5zdGVhZCBvZiBj
cmVhdGluZyBzeW1ib2xpYyBsaW5rcy4KLSAgICAgICAtLWRlYnVnICAgICAgICBlbmFibGUgdmVy
Ym9zZSBzaGVsbCB0cmFjaW5nCi0gICAtbiwgLS1kcnktcnVuICAgICAgcHJpbnQgY29tbWFuZHMg
cmF0aGVyIHRoYW4gcnVubmluZyB0aGVtCi0gICAtZiwgLS1mb3JjZSAgICAgICAgYXR0ZW1wdCB0
byBib290c3RyYXAgZXZlbiBpZiB0aGUgc291cmNlcyBzZWVtIG5vdAotICAgICAgICAgICAgICAg
ICAgICAgIHRvIGhhdmUgYmVlbiBjaGVja2VkIG91dC4KLSAgICAgICAtLWdudWxpYi1zcmNkaXI9
RElSTkFNRQotICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgYSBsb2NhbCBkaXJlY3Rvcnkg
d2hlcmUgZ251bGliIHNvdXJjZXMKLSAgICAgICAgICAgICAgICAgICAgICByZXNpZGUuIFVzZSB0
aGlzIGlmIHlvdSBhbHJlYWR5IGhhdmUgdGhlIGdudWxpYgotICAgICAgICAgICAgICAgICAgICAg
IHNvdXJjZXMgb24geW91ciBtYWNoaW5lLCBhbmQgZG9uJ3Qgd2FudCB0byB3YXN0ZQotICAgICAg
ICAgICAgICAgICAgICAgIHlvdXIgYmFuZHdpZHRoIGRvd25sb2FkaW5nIHRoZW0gYWdhaW4uICBE
ZWZhdWx0cyB0bwotICAgICAgICAgICAgICAgICAgICAgIFwkR05VTElCX1NSQ0RJUi4KLSAgICAg
ICAtLW5vLXdhcm5pbmdzICBlcXVpdmFsZW50IHRvICctV25vbmUnCi0gICAgICAgLS1za2lwLWdp
dCAgICAgZG8gbm90IGZldGNoIGZpbGVzIGZyb20gcmVtb3RlIHJlcG9zaXRvcmllcwotICAgICAg
IC0tc2tpcC1wbyAgICAgIGRvIG5vdCBkb3dubG9hZCBwbyBmaWxlcy4KLSAgIC12LCAtLXZlcmJv
c2UgICAgICB2ZXJib3NlbHkgcmVwb3J0IHByb2Nlc3NpbmcKLSAgICAgICAtLXZlcnNpb24gICAg
ICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gICAtVywgLS13YXJuaW5ncz1D
QVRFR09SWQotICAgICAgICAgICAgICAgICAgICAgIHJlcG9ydCB0aGUgd2FybmluZ3MgZmFsbGlu
ZyBpbiBDQVRFR09SWSBbYWxsXQotICAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHNob3J0IG9y
IGxvbmcgaGVscCBtZXNzYWdlIGFuZCBleGl0Ci0iCi0KLSMgQWRkaXRpb25hbCB0ZXh0IGFwcGVu
ZGVkIHRvICd1c2FnZV9tZXNzYWdlJyBpbiByZXNwb25zZSB0byAnLS1oZWxwJy4KLWxvbmdfaGVs
cF9tZXNzYWdlPSRsb25nX2hlbHBfbWVzc2FnZSIKLSAgICAgICAncmVjb21tZW5kJyAgICBzaG93
IHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgcmVjb21tZW5kZWQgcGFja2FnZXMKLSAgICAgICAnc2V0
dGluZ3MnICAgICBzaG93IHdhcm5pbmdzIGFib3V0IG1pc3NpbmcgJyRwcm9nbmFtZS5jb25mJyBz
ZXR0aW5ncwotICAgICAgICd1cGdyYWRlJyAgICAgIHNob3cgd2FybmluZ3MgYWJvdXQgb3V0LWRh
dGVkIGZpbGVzCi0KLUlmIHRoZSBmaWxlICckcHJvZ25hbWUuY29uZicgZXhpc3RzIGluIHRoZSBz
YW1lIGRpcmVjdG9yeSBhcyB0aGlzCi1zY3JpcHQsIGl0cyBjb250ZW50cyBhcmUgcmVhZCBhcyBz
aGVsbCB2YXJpYWJsZXMgdG8gY29uZmlndXJlIHRoZQotYm9vdHN0cmFwLgotCi1Gb3IgYnVpbGQg
cHJlcmVxdWlzaXRlcywgZW52aXJvbm1lbnQgdmFyaWFibGVzIGxpa2UgXCRBVVRPQ09ORiBhbmQK
LVwkQU1UQVIgYXJlIGhvbm9yZWQuCi0KLVJ1bm5pbmcgd2l0aG91dCBhcmd1bWVudHMgd2lsbCBz
dWZmaWNlIGluIG1vc3QgY2FzZXMuCi0iCi0KLSMgV2FybmluZyBjYXRlZ29yaWVzIHVzZWQgYnkg
J2Jvb3RzdHJhcCcsIGFwcGVuZCBvdGhlcnMgaWYgeW91IHVzZSB0aGVtCi0jIGluIHlvdXIgJ2Jv
b3RzdHJhcC5jb25mJy4KLXdhcm5pbmdfY2F0ZWdvcmllcz0ncmVjb21tZW5kIHNldHRpbmdzIHVw
Z3JhZGUnCi0KLQotIyBib290c3RyYXBfb3B0aW9uc19wcmVwIFtBUkddLi4uCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUHJlcGFyYXRpb24gZm9yIG9wdGlvbnMgcGFyc2Vk
IGJ5IEJvb3RzdHJhcC4KLWJvb3RzdHJhcF9vcHRpb25zX3ByZXAgKCkKLXsKLSAgICAkZGVidWdf
Y21kCi0KLSAgICAjIE9wdGlvbiBkZWZhdWx0czoKLSAgICBvcHRfY29weT0ke2NvcHktJ2ZhbHNl
J30KLSAgICBvcHRfZHJ5X3J1bj1mYWxzZQotICAgIG9wdF9mb3JjZT1mYWxzZQotICAgIG9wdF9n
bnVsaWJfc3JjZGlyPSRHTlVMSUJfU1JDRElSCi0gICAgb3B0X3NraXBfZ2l0PWZhbHNlCi0gICAg
b3B0X3NraXBfcG89ZmFsc2UKLQotICAgICMgUGFzcyBiYWNrIHRoZSBsaXN0IG9mIG9wdGlvbnMg
d2UgY29uc3VtZWQuCi0gICAgZnVuY19xdW90ZSBldmFsICR7MSsiJEAifQotICAgIGJvb3RzdHJh
cF9vcHRpb25zX3ByZXBfcmVzdWx0PSRmdW5jX3F1b3RlX3Jlc3VsdAotfQotZnVuY19hZGRfaG9v
ayBmdW5jX29wdGlvbnNfcHJlcCBib290c3RyYXBfb3B0aW9uc19wcmVwCi0KLQotIyBib290c3Ry
YXBfcGFyc2Vfb3B0aW9ucyBbQVJHXS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBQcm92aWRlIGhhbmRsaW5nIGZvciBCb290c3RyYXAgc3BlY2lmaWMgb3B0aW9ucy4K
LWJvb3RzdHJhcF9wYXJzZV9vcHRpb25zICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgIyBQ
ZXJmb3JtIG91ciBvd24gbG9vcCB0byBjb25zdW1lIGFzIG1hbnkgb3B0aW9ucyBhcyBwb3NzaWJs
ZSBpbgotICAgICMgZWFjaCBpdGVyYXRpb24uCi0gICAgd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8K
LSAgICAgIF9HX29wdD0kMQotICAgICAgc2hpZnQKLSAgICAgIGNhc2UgJF9HX29wdCBpbgotICAg
ICAgICAtLWRyeS1ydW58LS1kcnlydW58LW4pCi0gICAgICAgICAgICAgICAgICAgICAgb3B0X2Ry
eV9ydW49OiA7OwotICAgICAgICAtLWNvcHl8LWMpICAgIG9wdF9jb3B5PTogOzsKLSAgICAgICAg
LS1mb3JjZXwtZikgICBvcHRfZm9yY2U9OiA7OwotCi0gICAgICAgIC0tZ251bGliLXNyY2RpcikK
LSAgICAgICAgICAgICAgICAgICAgICB0ZXN0ICQjID0gMCAmJiBmdW5jX21pc3NpbmdfYXJnICRf
R19vcHQgJiYgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgICBvcHRfZ251bGliX3NyY2Rpcj0k
MQotICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0Ci0gICAgICAgICAgICAgICAgICAgICAgOzsK
LQotICAgICAgICAtLXNraXAtZ2l0fC0tbm8tZ2l0KQotICAgICAgICAgICAgICAgICAgICAgIG9w
dF9za2lwX2dpdD06Ci0gICAgICAgICAgICAgICAgICAgICAgOzsKLQotICAgICAgICAtLXNraXAt
cG98LS1uby1wbykKLSAgICAgICAgICAgICAgICAgICAgICBvcHRfc2tpcF9wbz06Ci0gICAgICAg
ICAgICAgICAgICAgICAgOzsKLQotICAgICAgICAjIFNlcGFyYXRlIG5vbi1hcmd1bWVudCBzaG9y
dCBvcHRpb25zOgotICAgICAgICAtYyp8LWYqfC1uKikKLSAgICAgICAgICAgICAgICAgICAgICBm
dW5jX3NwbGl0X3Nob3J0X29wdCAiJF9HX29wdCIKLSAgICAgICAgICAgICAgICAgICAgICBzZXQg
ZHVtbXkgIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lIiBcCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICItJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyIgJHsxKyIkQCJ9Ci0gICAgICAgICAg
ICAgICAgICAgICAgc2hpZnQKLSAgICAgICAgICAgICAgICAgICAgICA7OwotCi0gICAgICAgICop
ICAgICAgICAgICAgc2V0IGR1bW15ICIkX0dfb3B0IiAkezErIiRAIn07IHNoaWZ0OyBicmVhayA7
OwotICAgICAgZXNhYwotICAgIGRvbmUKLQotICAgICMgc2F2ZSBtb2RpZmllZCBwb3NpdGlvbmFs
IHBhcmFtZXRlcnMgZm9yIGNhbGxlcgotICAgIGZ1bmNfcXVvdGUgZXZhbCAkezErIiRAIn0KLSAg
ICBib290c3RyYXBfcGFyc2Vfb3B0aW9uc19yZXN1bHQ9JGZ1bmNfcXVvdGVfcmVzdWx0Ci19Ci1m
dW5jX2FkZF9ob29rIGZ1bmNfcGFyc2Vfb3B0aW9ucyBib290c3RyYXBfcGFyc2Vfb3B0aW9ucwot
Ci0KLSMgYm9vdHN0cmFwX3ZhbGlkYXRlX29wdGlvbnMgW0FSR10uLi4KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUGVyZm9ybSBhbnkgc2FuaXR5IGNoZWNrcyBvbiBv
cHRpb24gc2V0dGluZ3MgYW5kL29yIHVuY29uc3VtZWQKLSMgYXJndW1lbnRzLgotYm9vdHN0cmFw
X3ZhbGlkYXRlX29wdGlvbnMgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAjIFZhbGlkYXRl
IG9wdGlvbnMuCi0gICAgdGVzdCAkIyAtZ3QgMCBcCi0gICAgICAgICYmIGZ1bmNfZmF0YWxfaGVs
cCAidG9vIG1hbnkgYXJndW1lbnRzIgotCi0gICAgIyBQYXNzIGJhY2sgdGhlIChlbXB0eSkgbGlz
dCBvZiB1bmNvbnN1bWVkIG9wdGlvbnMuCi0gICAgZnVuY19xdW90ZSBldmFsICR7MSsiJEAifQot
ICAgIGJvb3RzdHJhcF92YWxpZGF0ZV9vcHRpb25zX3Jlc3VsdD0kZnVuY19xdW90ZV9yZXN1bHQK
LX0KLWZ1bmNfYWRkX2hvb2sgZnVuY192YWxpZGF0ZV9vcHRpb25zIGJvb3RzdHJhcF92YWxpZGF0
ZV9vcHRpb25zCi0KLQotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gIyMKLSMjIFNvdXJjZSBwYWNrYWdlIGN1c3RvbWlzYXRpb25zIGluICdib290
c3RyYXAuY29uZicuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAjIwotCi0jIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24s
IGlmIG5lY2Vzc2FyeS4KLSMgTWFrZSBzdXJlIHRoYXQgYm9vdHN0cmFwLmNvbmYgaXMgc291cmNl
ZCBmcm9tIHRoZSBjdXJyZW50IGRpcmVjdG9yeQotIyBpZiB3ZSB3ZXJlIGludm9rZWQgYXMgInNo
IGJvb3RzdHJhcCIuCi1jYXNlICQwIGluCi0gICovKikgdGVzdCAtciAiJDAuY29uZiIgJiYgLiAi
JDAuY29uZiIgOzsKLSAgKikgdGVzdCAtciAiJDAuY29uZiIgJiYgLiAuLyIkMC5jb25mIiA7Owot
ZXNhYwotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIEFjdHVh
bGx5IHBlcmZvcm0gdGhlIGJvb3RzdHJhcC4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gIyMKLQotZnVuY19ib290c3RyYXAgJHsxKyIkQCJ9Ci0KLSMgVGhlIEVuZC4KLWV4
aXQgJHtleGl0X3N0YXR1cy0kRVhJVF9TVUNDRVNTfQotCi0jIExvY2FsIHZhcmlhYmxlczoKLSMg
bW9kZTogc2hlbGwtc2NyaXB0Ci0jIHNoLWluZGVudGF0aW9uOiAyCi0jIGV2YWw6IChhZGQtaG9v
ayAnYmVmb3JlLXNhdmUtaG9vayAndGltZS1zdGFtcCkKLSMgdGltZS1zdGFtcC1wYXR0ZXJuOiAi
NTAwL3NjcmlwdHZlcnNpb249JTp5LSUwMm0tJTAyZC4lMDJIOyAjIFVUQyIKLSMgdGltZS1zdGFt
cC10aW1lLXpvbmU6ICJVVEMiCi0jIEVuZDoKZGlmZiAtLWdpdCBhL2dsL2J1aWxkLWF1eC9leHRy
YWN0LXRyYWNlIGIvZ2wvYnVpbGQtYXV4L2V4dHJhY3QtdHJhY2UKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDkwN2VmMDk5Li4wMDAwMDAwMAotLS0gYS9nbC9idWlsZC1hdXgvZXh0cmFj
dC10cmFjZQorKysgL2Rldi9udWxsCkBAIC0xLDQ4NiArMCwwIEBACi0jISAvYmluL3NoCi0KLSMg
RXh0cmFjdCBtYWNybyBhcmd1bWVudHMgZnJvbSBhdXRvdG9vbHMgaW5wdXQgd2l0aCBHTlUgTTQu
Ci0jIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVnaGFuLCAyMDEwCi0jCi0jIFRoaXMgaXMgZnJlZSBz
b2Z0d2FyZS4gIFRoZXJlIGlzIE5PIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IKLSMgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgotIwotIyBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxOSwgMjAyMSwgMjAyMyBCb290c3RyYXAgQXV0aG9ycwotIwotIyBUaGlz
IGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNl
Ci0jIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGFuZCBHUEwgdmVyc2lv
biAyIG9yIGxhdGVyCi0jIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5odG1s
Pi4gIFlvdSBtdXN0IGFwcGx5IG9uZSBvZgotIyB0aGVzZSBsaWNlbnNlcyB3aGVuIHVzaW5nIG9y
IHJlZGlzdHJpYnV0aW5nIHRoaXMgc29mdHdhcmUgb3IgYW55IG9mCi0jIHRoZSBmaWxlcyB3aXRo
aW4gaXQuICBTZWUgdGhlIFVSTHMgYWJvdmUsIG9yIHRoZSBmaWxlIGBMSUNFTlNFYAotIyBpbmNs
dWRlZCBpbiB0aGUgQm9vdHN0cmFwIGRpc3RyaWJ1dGlvbiBmb3IgdGhlIGZ1bGwgbGljZW5zZSB0
ZXh0cy4KLQotIyBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb3IgcHJvcG9zZSBwYXRjaGVzIHRvOgotIyA8
aHR0cHM6Ly9naXRodWIuY29tL2dudWxpYi1tb2R1bGVzL2Jvb3RzdHJhcC9pc3N1ZXM+Ci0KLSMg
TWFrZSBzdXJlIHdlJ3ZlIGV2YWx1YXRlZCBzY3JpcHRzIHdlIGRlcGVuZCBvbi4KLXRlc3QgLXog
IiRwcm9ncGF0aCIgJiYgLiBgZWNobyAiJDAiIHwke1NFRC1zZWR9ICdzfFteL10qJHx8J2AvZnVu
Y2xpYi5zaAotdGVzdCBleHRyYWN0LXRyYWNlID0gIiRwcm9nbmFtZSIgJiYgLiBgZWNobyAiJDAi
IHwke1NFRC1zZWR9ICdzfFteL10qJHx8J2Avb3B0aW9ucy1wYXJzZXIKLQotIyBTZXQgYSB2ZXJz
aW9uIHN0cmluZy4KLXNjcmlwdHZlcnNpb249MjAxOS0wMi0xOS4xNTsgIyBVVEMKLQotCi0jIyAt
LS0tLS0gIyMKLSMjIFVzYWdlLiAjIwotIyMgLS0tLS0tICMjCi0KLSMgUnVuICcuL2V4dHJhY3Qt
dHJhY2UgLS1oZWxwJyBmb3IgaGVscCB3aXRoIHVzaW5nIHRoaXMgc2NyaXB0IGZyb20gdGhlCi0j
IGNvbW1hbmQgbGluZS4KLSMKLSMgT3Igc291cmNlIGZpcnN0ICdvcHRpb25zLXBhcnNlcicgYW5k
IHRoZW4gdGhpcyBmaWxlIGludG8geW91ciBvd24KLSMgc2NyaXB0cyBpbiBvcmRlciB0byBtYWtl
IHVzZSBvZiB0aGUgZnVuY3Rpb24gYW5kIHZhcmlhYmxlIGZyYW1ld29yawotIyB0aGV5IGRlZmlu
ZSwgYW5kIGFsc28gdG8gYXZvaWQgdGhlIG92ZXJoZWFkIG9mIGZvcmtpbmcgdG8gcnVuIHRoaXMK
LSMgc2NyaXB0IGluIGl0cyBvd24gcHJvY2VzcyBvbiBldmVyeSBjYWxsLgotCi0KLQotIyMgLS0t
LS0tLS0tLS0tLS0tLS0gIyMKLSMjIEhlbHBlciBmdW5jdGlvbnMuICMjCi0jIyAtLS0tLS0tLS0t
LS0tLS0tLSAjIwotCi0jIFRoaXMgc2VjdGlvbiBjb250YWlucyB0aGUgaGVscGVyIGZ1bmN0aW9u
cyB1c2VkIGJ5IHRoZSByZXN0IG9mCi0jICdleHRyYWN0LXRyYWNlJy4KLQotCi0jIGZ1bmNfYXV0
b2NvbmZfY29uZmlndXJlIE1BWUJFLUNPTkZJR1VSRS1GSUxFCi0jIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGF0IE1BWUJFLUNPTkZJR1VS
RS1GSUxFIGlzIHRoZSBuYW1lIG9mIGEgZmlsZSBpbiB0aGUgY3VycmVudAotIyBkaXJlY3Rvcnkg
dGhhdCBjb250YWlucyBhbiB1bmNvbW1lbnRlZCBjYWxsIHRvIEFDX0lOSVQuCi1mdW5jX2F1dG9j
b25mX2NvbmZpZ3VyZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIF9HX3NlZF9ub19jb21t
ZW50PScKLSAgICAgIHN8Iy4qJHx8Ci0gICAgICBzfF5kbmwgLiokfHwKLSAgICAgIHN8IGRubCAu
KiR8fCcKLSAgICBfR19hY19pbml0PQotCi0gICAgIyBJZiB3ZSB3ZXJlIHBhc3NlZCBhIGdlbnVp
bmUgZmlsZSwgbWFrZSBzdXJlIGl0IGNhbGxzIEFDX0lOSVQuCi0gICAgdGVzdCAtZiAiJDEiIFwK
LSAgICAgICYmIF9HX2FjX2luaXQ9YCRTRUQgIiRfR19zZWRfbm9fY29tbWVudCIgIiQxIiB8JEdS
RVAgQUNfSU5JVGAKLQotICAgICMgT3RoZXJ3aXNlIGl0IGlzIG5vdCBhIGdlbnVpbmUgQXV0b2Nv
bmYgaW5wdXQgZmlsZS4KLSAgICB0ZXN0IC1uICIkX0dfYWNfaW5pdCIKLSAgICBfR19zdGF0dXM9
JD8KLQotICAgIHRlc3QgMCAtbmUgIiRfR19zdGF0dXMiIFwKLSAgICAgICYmIGZ1bmNfdmVyYm9z
ZSAiJyQxJyBub3QgdXNpbmcgQXV0b2NvbmYiCi0KLSAgICAoZXhpdCAkX0dfc3RhdHVzKQotfQot
Ci0KLSMgZnVuY190b29sX3ZlcnNpb25fb3V0cHV0IENNRCBbRkFUQUwtRVJST1ItTVNHXQotIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEF0dGVtcHQg
dG8gcnVuICdDTUQgLS12ZXJzaW9uJywgZGlzY2FyZGluZyBlcnJvcnMuICBUaGUgb3V0cHV0IGNh
biBiZQotIyBpZ25vcmVkIGJ5IHJlZGlyZWN0aW5nIHN0ZG91dCwgYW5kIHRoaXMgZnVuY3Rpb24g
dXNlZCBzaW1wbHkgdG8gdGVzdAotIyB3aGV0aGVyIHRoZSBjb21tYW5kIGV4aXN0cyBhbmQgZXhp
dHMgbm9ybWFsbHkgd2hlbiBwYXNzZWQgYQotIyAnLS12ZXJzaW9uJyBhcmd1bWVudC4KLSMgV2hl
biBGQVRBTC1FUlJPUi1NU0cgaXMgZ2l2ZW4sIHRoZW4gdGhpcyBmdW5jdGlvbiB3aWxsIGRpc3Bs
YXkgdGhlCi0jIG1lc3NhZ2UgYW5kIGV4aXQgaWYgcnVubmluZyAnQ01EIC0tdmVyc2lvbicgcmV0
dXJucyBhIG5vbi16ZXJvIGV4aXQKLSMgc3RhdHVzLgotZnVuY190b29sX3ZlcnNpb25fb3V0cHV0
ICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgX0dfY21kPSQxCi0gICAgX0dfZmF0YWxfZXJy
b3JfbXNnPSQyCi0KLSAgICAjIFNvbWUgdG9vbHMsIGxpa2UgJ2dpdDJjbCcgcHJvZHVjZSB0aG91
c2FuZHMgb2YgbGluZXMgb2Ygb3V0cHV0Ci0gICAgIyB1bmxlc3Mgc3RkaW4gaXMgL2Rldi9udWxs
IC0gaW4gdGhhdCBjYXNlIHdlIHdhbnQgdG8gcmV0dXJuCi0gICAgIyBzdWNjZXNzZnVsbHkgd2l0
aG91dCBzYXZpbmcgYWxsIG9mIHRoYXQgb3V0cHV0LiAgT3RoZXIgdG9vbHMsCi0gICAgIyBzdWNo
IGFzICdoZWxwMm1hbicgZXhpdCB3aXRoIGEgbm9uLXplcm8gc3RhdHVzIHdoZW4gc3RkaW4gY29t
ZXMKLSAgICAjIGZyb20gL2Rldi9udWxsLCBzbyB3ZSByZS1leGVjdXRlIHdpdGhvdXQgL2Rldi9u
dWxsIGlmIHRoYXQKLSAgICAjIGhhcHBlbnMuICBUaGlzIG1lYW5zIHRoYXQgb2NjYXNpb25hbGx5
LCB0aGUgb3V0cHV0IGZyb20gYm90aCBjYWxscwotICAgICMgZW5kcyB1cCBpbiB0aGUgcmVzdWx0
LCBidXQgdGhlIGFsdGVybmF0aXZlIHdvdWxkIGJlIHRvIGRpc2NhcmQgdGhlCi0gICAgIyBvdXRw
dXQgZnJvbSBvbmUgY2FsbCwgYW5kIGhvcGUgdGhlIG90aGVyIHByb2R1Y2VzIHNvbWV0aGluZyB1
c2VmdWwuCi0gICAgeyAkX0dfY21kIC0tdmVyc2lvbiA8L2Rldi9udWxsIHx8ICRfR19jbWQgLS12
ZXJzaW9uOyB9IDI+L2Rldi9udWxsCi0gICAgX0dfc3RhdHVzPSQ/Ci0KLSAgICB0ZXN0IDAgLW5l
ICIkX0dfc3RhdHVzIiAmJiB0ZXN0IC1uICIkX0dfZmF0YWxfZXJyb3JfbXNnIiBcCi0gICAgICAg
ICYmIGZ1bmNfZmF0YWxfZXJyb3IgIiRfR19mYXRhbF9lcnJvcl9tc2ciCi0KLSAgICAoZXhpdCAk
X0dfc3RhdHVzKQotfQotCi0KLSMgZnVuY190b29sX3ZlcnNpb25fbnVtYmVyIENNRCBbRkFUQUwt
RVJST1ItTVNHXQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0jIFBhc3MgYXJndW1lbnRzIHRvIGZ1bmNfdG9vbF92ZXJzaW9uX291dHB1dCwgYnV0IHNl
dAotIyAkZnVuY190b29sX3ZlcnNpb25fbnVtYmVyX3Jlc3VsdCB0byB0aGUgbGFzdCBkb3QgZGVs
aW1pdGVkIGRpZ2l0IHN0cmluZwotIyBvbiB0aGUgZmlyc3QgbGluZSBvZiBvdXRwdXQuCi1mdW5j
X3Rvb2xfdmVyc2lvbl9udW1iZXIgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBfR192ZXJv
dXQ9YGZ1bmNfdG9vbF92ZXJzaW9uX291dHB1dCAiJEAiYAotICAgIF9HX3N0YXR1cz0kPwotCi0g
ICAgIyBBIHZlcnNpb24gbnVtYmVyIHN0YXJ0cyB3aXRoIGEgZGlnaXQgZm9sbG93aW5nIGEgc3Bh
Y2Ugb24gdGhlIGZpcnN0Ci0gICAgIyBsaW5lIG9mIG91dHB1dCBmcm9tIGAtLXZlcnNpb25gLgot
ICAgIF9HX3Zlcm91dD1gZWNobyAiJF9HX3Zlcm91dCIgfHNlZCAxcWAKLSAgICBpZiB0ZXN0IC1u
ICIkX0dfdmVyb3V0IjsgdGhlbgotICAgICAgX0dfdmVybnVtPWBleHByICIkX0dfdmVyb3V0IiA6
ICcuKiBcKFswLTldW14gXSpcKSdgCi0gICAgZmkKLQotICAgIGlmIHRlc3QgLW4gIiRfR192ZXJu
dW0iOyB0aGVuCi0gICAgICBwcmludGYgJyVzXG4nICIkX0dfdmVybnVtIgotICAgIGVsc2UKLSAg
ICAgIHByaW50ZiAnJXNcbicgIiRfR192ZXJvdXQiCi0gICAgZmkKLQotICAgIChleGl0ICRfR19z
dGF0dXMpCi19Ci0KLQotIyBmdW5jX2ZpbmRfdG9vbCBFTlZWQVIgTkFNRVMuLi4KLSMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNlYXJjaCBmb3IgYSByZXF1aXJlZCBwcm9ncmFt
LiAgVXNlIHRoZSB2YWx1ZSBvZiBFTlZWQVIsIGlmIHNldCwKLSMgb3RoZXJ3aXNlIGZpbmQgdGhl
IGZpcnN0IG9mIHRoZSBOQU1FUyB0aGF0IGNhbiBiZSBydW4gKGkuZS4sCi0jIHN1cHBvcnRzIC0t
dmVyc2lvbikuICBJZiBmb3VuZCwgc2V0IEVOVlZBUiB0byB0aGUgcHJvZ3JhbSBuYW1lLAotIyBk
aWUgb3RoZXJ3aXNlLgotZnVuY19maW5kX3Rvb2wgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAg
ICBfR19maW5kX3Rvb2xfZW52dmFyPSQxCi0gICAgc2hpZnQKLSAgICBfR19maW5kX3Rvb2xfbmFt
ZXM9JEAKLSAgICBldmFsICJfR19maW5kX3Rvb2xfcmVzPVwkJF9HX2ZpbmRfdG9vbF9lbnZ2YXIi
Ci0gICAgaWYgdGVzdCAtbiAiJF9HX2ZpbmRfdG9vbF9yZXMiOyB0aGVuCi0gICAgICBfR19maW5k
X3Rvb2xfZXJyb3JfcHJlZml4PSJcJCRmaW5kX3Rvb2xfZW52dmFyOiAiCi0gICAgZWxzZQotICAg
ICAgX0dfZmluZF90b29sX3Jlcz0KLSAgICAgIF9HX2Jlc3R2ZXI9Ci0gICAgICBmb3IgX0dfcHJv
ZwotICAgICAgZG8KLSAgICAgICAgX0dfZmluZF90b29sX3NhdmVfSUZTPSRJRlMKLSAgICAgICAg
SUZTPSR7UEFUSF9TRVBBUkFUT1ItOn0KLQlmb3IgX0dfZGlyIGluICRQQVRIOyBkbwotCSAgSUZT
PSRfR19maW5kX3Rvb2xfc2F2ZV9JRlMKLQkgIF9HX3Byb2dwYXRoPSRfR19kaXIvJF9HX3Byb2cK
LSAgICAgICAgICB0ZXN0IC1yICIkX0dfcHJvZ3BhdGgiICYmIHsKLSAgICAgICAgICAgIF9HX2N1
cnZlcj1gZnVuY190b29sX3ZlcnNpb25fbnVtYmVyICRfR19wcm9ncGF0aGAKLQkgICAgY2FzZSAk
X0dfYmVzdHZlciwkX0dfY3VydmVyIGluCi0JICAgICwpCi0JICAgICAgIyBmaXJzdCBub24tLXZl
cnNpb24gcmVzcG9uc2l2ZSBwcm9nIHN0aWNrcyEKLSAgICAgICAgICAgICAgdGVzdCAtbiAiJF9H
X3Byb2dwYXRoIiB8fCBfR19maW5kX3Rvb2xfcmVzPSRfR19wcm9ncGF0aAotICAgICAgICAgICAg
ICA7OwotICAgICAgICAgICAgLCopCi0JICAgICAgIyBmaXJzdCAtLXZlcnNpb24gcmVzcG9uc2l2
ZSBwcm9nIGJlYXRzIG5vbi0tdmVyc2lvbiByZXNwb25zaXZlIQotCSAgICAgIF9HX2ZpbmRfdG9v
bF9yZXM9JF9HX3Byb2dwYXRoCi0JICAgICAgX0dfYmVzdHZlcj0kX0dfY3VydmVyCi0JICAgICAg
OzsKLQkgICAgKiwqKQotCSAgICAgICMgYW5vdGhlciAtLXZlcnNpb24gcmVzcG9uc2l2ZSBwcm9n
IG11c3QgYmUgbmV3ZXIgdG8gYmVhdCBwcmV2aW91cyBvbmUhCi0JICAgICAgdGVzdCAieCRfR19j
dXJ2ZXIiID0gIngkX0dfYmVzdHZlciIgXAotCQl8fCBmdW5jX2x0X3ZlciAiJF9HX2N1cnZlciIg
IiRfR19iZXN0dmVyIiBcCi0JCXx8IHsKLQkJICAgICBfR19maW5kX3Rvb2xfcmVzPSRfR19wcm9n
cGF0aAotCQkgICAgIF9HX2Jlc3R2ZXI9JF9HX2N1cnZlcgotCSAgICAgICAgICAgfQotCSAgICAg
IDs7Ci0JICAgIGVzYWMKLSAgICAgICAgICB9Ci0JZG9uZQotCUlGUz0kX0dfZmluZF90b29sX3Nh
dmVfSUZTCi0gICAgICBkb25lCi0gICAgZmkKLSAgICBpZiB0ZXN0IC1uICIkX0dfZmluZF90b29s
X3JlcyI7IHRoZW4KLSAgICAgIGZ1bmNfdG9vbF92ZXJzaW9uX251bWJlciA+L2Rldi9udWxsICRf
R19maW5kX3Rvb2xfcmVzICJcCi0ke19HX2ZpbmRfdG9vbF9lcnJvcl9wcmVmaXh9Q2Fubm90IHJ1
biAnJF9HX2ZpbmRfdG9vbF9yZXMgLS12ZXJzaW9uJyIKLQotICAgICAgIyBNYWtlIHN1cmUgdGhl
IHJlc3VsdCBpcyBleHBvcnRlZCB0byB0aGUgZW52aXJvbm1lbnQgZm9yIGNoaWxkcmVuCi0gICAg
ICAjIHRvIHVzZS4KLSAgICAgIGV2YWwgIiRfR19maW5kX3Rvb2xfZW52dmFyPVwkX0dfZmluZF90
b29sX3JlcyIKLSAgICAgIGV2YWwgImV4cG9ydCAkX0dfZmluZF90b29sX2VudnZhciIKLSAgICBl
bHNlCi0gICAgICBmdW5jX2Vycm9yICJcCi1PbmUgb2YgdGhlc2UgaXMgcmVxdWlyZWQ6Ci0gICAg
ICAgJF9HX2ZpbmRfdG9vbF9uYW1lcyIKLSAgICBmaQotfQotCi0KLQotIyMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0gIyMKLSMjIFJlc291cmNlIG1hbmFnZW1lbnQuICMjCi0jIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLSAjIwotCi0jIFRoaXMgc2VjdGlvbiBjb250YWlucyBkZWZpbml0aW9ucyBmb3IgZnVu
Y3Rpb25zIHRoYXQgZWFjaCBlbnN1cmUgYQotIyBwYXJ0aWN1bGFyIHJlc291cmNlIChhIGZpbGUs
IG9yIGEgbm9uLWVtcHR5IGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgZm9yCi0jIGV4YW1wbGUpIGlz
IGF2YWlsYWJsZSwgYW5kIGlmIGFwcHJvcHJpYXRlIHRvIGV4dHJhY3QgZGVmYXVsdCB2YWx1ZXMK
LSMgZnJvbSBwZXJ0aW5lbnQgcGFja2FnZSBmaWxlcy4gIFdoZXJlIGEgdmFyaWFibGUgYWxyZWFk
eSBoYXMgYSBub24tCi0jIGVtcHR5IHZhbHVlIChhcyBzZXQgYnkgdGhlIHBhY2thZ2UncyAnYm9v
dHN0cmFwLmNvbmYnKSwgdGhhdCB2YWx1ZSBpcwotIyB1c2VkIGluIHByZWZlcmVuY2UgdG8gZGVy
aXZpbmcgdGhlIGRlZmF1bHQuIENhbGwgdGhlbSB1c2luZyB0aGVpcgotIyBhc3NvY2lhdGVkICdy
ZXF1aXJlXyonIHZhcmlhYmxlIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJlIGV4ZWN1dGVkLCBhdAot
IyBtb3N0LCBvbmNlLgotIwotIyBJdCdzIGVudGlyZWx5IGRlbGliZXJhdGUgdGhhdCBjYWxsaW5n
IHRoZXNlIGZ1bmN0aW9ucyBjYW4gc2V0Ci0jIHZhcmlhYmxlcyB0aGF0IGRvbid0IG9iZXkgdGhl
IG5hbWVzcGFjZSBsaW1pdGF0aW9ucyBvYmV5ZWQgYnkgdGhlIHJlc3QKLSMgb2YgdGhpcyBmaWxl
LCBpbiBvcmRlciB0aGF0IHRoYXQgdGhleSBiZSBhcyB1c2VmdWwgYXMgcG9zc2libGUgdG8KLSMg
Y2FsbGVycy4KLQotCi0jIHJlcXVpcmVfY29uZmlndXJlX2FjCi0jIC0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0jIEVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgJ2NvbmZpZ3VyZS5hYycgb3IgJ2NvbmZpZ3Vy
ZS5pbicgZmlsZSBpbiB0aGUKLSMgY3VycmVudCBkaXJlY3RvcnkgdGhhdCBjb250YWlucyBhbiB1
bmNvbW1lbnRlZCBjYWxsIHRvIEFDX0lOSVQsIGFuZAotIyB0aGF0ICckY29uZmlndXJlX2FjJyBj
b250YWlucyBpdHMgbmFtZS4KLXJlcXVpcmVfY29uZmlndXJlX2FjPWZ1bmNfcmVxdWlyZV9jb25m
aWd1cmVfYWMKLWZ1bmNfcmVxdWlyZV9jb25maWd1cmVfYWMgKCkKLXsKLSAgICAkZGVidWdfY21k
Ci0KLSAgICB0ZXN0IC16ICIkY29uZmlndXJlX2FjIiBcCi0gICAgICAmJiBmdW5jX2F1dG9jb25m
X2NvbmZpZ3VyZSBjb25maWd1cmUuYWMgJiYgY29uZmlndXJlX2FjPWNvbmZpZ3VyZS5hYwotICAg
IHRlc3QgLXogIiRjb25maWd1cmVfYWMiIFwKLSAgICAgICYmIGZ1bmNfYXV0b2NvbmZfY29uZmln
dXJlIGNvbmZpZ3VyZS5pbiAmJiBjb25maWd1cmVfYWM9Y29uZmlndXJlLmluCi0gICAgdGVzdCAt
eiAiJGNvbmZpZ3VyZV9hYyIgXAotICAgICAgfHwgZnVuY192ZXJib3NlICJmb3VuZCAnJGNvbmZp
Z3VyZV9hYyciCi0KLSAgICByZXF1aXJlX2NvbmZpZ3VyZV9hYz06Ci19Ci0KLQotIyByZXF1aXJl
X2dudV9tNAotIyAtLS0tLS0tLS0tLS0tLQotIyBTZWFyY2ggZm9yIEdOVSBNNCwgYW5kIGV4cG9y
dCBpdCBpbiAkTTQuCi1yZXF1aXJlX2dudV9tND1mdW5jX3JlcXVpcmVfZ251X200Ci1mdW5jX3Jl
cXVpcmVfZ251X200ICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgdGVzdCAtbiAiJE00IiB8
fCB7Ci0gICAgICAjIEZpbmQgdGhlIGZpcnN0IG00IGJpbmFyeSB0aGF0IHJlc3BvbmRzIHRvIC0t
dmVyc2lvbi4KLSAgICAgIGZ1bmNfZmluZF90b29sIE00IGdtNCBnbnVtNCBtNAotICAgIH0KLQot
ICAgIHRlc3QgLW4gIiRNNCIgfHwgZnVuY19mYXRhbF9lcnJvciAiXAotUGxlYXNlIGluc3RhbGwg
R05VIE00LCBvciAnZXhwb3J0IE00PS9wYXRoL3RvL2dudS9tNCcuIgotCi0gICAgZnVuY192ZXJi
b3NlICJleHBvcnQgTTQ9JyRNNCciCi0KLSAgICAjIE1ha2Ugc3VyZSB0aGUgc2VhcmNoIHJlc3Vs
dCBpcyB2aXNpYmxlIHRvIHN1YnNoZWxscwotICAgIGV4cG9ydCBNNAotCi0gICAgcmVxdWlyZV9n
bnVfbTQ9OgotfQotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLSAjIwotIyMgQ29yZSBmdW5jdGlvbnMu
ICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBUaGlzIHNlY3Rpb24gY29udGFpbnMgdGhl
IGhpZ2ggbGV2ZWwgZnVuY3Rpb25zIHVzZWQgd2hlbiBjYWxsaW5nIHRoaXMKLSMgZmlsZSBhcyBh
IHNjcmlwdC4gJ2Z1bmNfZXh0cmFjdF90cmFjZScgaXMgcHJvYmFibHkgdGhlIG9ubHkgb25lIHRo
YXQgeW91Ci0jIHdvbid0IHdhbnQgdG8gcmVwbGFjZSBpZiB5b3Ugc291cmNlIHRoaXMgZmlsZSBp
bnRvIHlvdXIgb3duIHNjcmlwdC4KLQotCi0jIGZ1bmNfZXh0cmFjdF90cmFjZSBNQUNST19OQU1F
UyBbRklMRU5BTUVdLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0jIHNldCAnJGZ1bmNfZXh0cmFjdF90cmFjZV9yZXN1bHQnIHRvIGEgY29sb24gZGVs
aW1pdGVkIGxpc3Qgb2YgYXJndW1lbnRzCi0jIHRvIGFueSBvZiB0aGUgY29tbWEgc2VwYXJhdGVk
IGxpc3Qgb2YgTUFDUk9fTkFNRVMgaW4gRklMRU5BTUUuIElmIG5vCi0jIEZJTEVOQU1FIGlzIGdp
dmVuLCB0aGVuICckY29uZmlndXJlX2FjJyBpcyBhc3N1bWVkLgotZnVuY19leHRyYWN0X3RyYWNl
ICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfY29uZmlndXJlX2FjCi0gICAg
JHJlcXVpcmVfZ251X200Ci0KLSAgICBfR19tNF90cmFjZXM9YCRFQ0hPICItLXRyYWNlPSQxIiB8
JFNFRCAncyUsJSAtLXRyYWNlPSVnJ2AKLSAgICBfR19yZV9tYWNyb3M9YCRFQ0hPICIoJDEpIiB8
JFNFRCAncyUsJXwlZydgCi0gICAgX0dfbWFjcm9zPSIkMSI7IHNoaWZ0Ci0gICAgdGVzdCAkIyAt
Z3QgMCB8fCB7Ci0gICAgICBzZXQgZHVtbXkgJGNvbmZpZ3VyZV9hYwotICAgICAgc2hpZnQKLSAg
ICB9Ci0KLSAgICAjIEdlbmVyYXRlIGFuIGVycm9yIGlmIHRoZSBmaXJzdCBmaWxlIGlzIG1pc3Np
bmcKLSAgICA8IiQxIgotCi0gICAgIyBTYWRseSwgd2UgY2FuJ3QgdXNlICdhdXRvbTR0ZScgdHJh
Y2luZyB0byBleHRyYWN0IG1hY3JvIGFyZ3VtZW50cywKLSAgICAjIGJlY2F1c2UgaXQgY29tcGxh
aW5zIGFib3V0IHRoaW5ncyB3ZSB3YW50IHRvIGlnbm9yZSBhdCBib290c3RyYXAKLSAgICAjIHRp
bWUgLSBsaWtlIG1pc3NpbmcgbTRfaW5jbHVkZSBmaWxlczsgQUNfUFJFUkVRIGJlaW5nIG5ld2Vy
IHRoYW4KLSAgICAjIHRoZSBpbnN0YWxsZWQgYXV0b2NvbmY7IGFuZCByZXR1cm5zIG5vdGhpbmcg
d2hlbiB0cmFjaW5nCi0gICAgIyAnQU1fSU5JVF9BVVRPTUFLRScgd2hlbiBhY2xvY2FsIGhhc24n
dCBiZWVuIGdlbmVyYXRlZCB5ZXQuCi0gICAgIwotICAgICMgVGhlIGZvbGxvd2luZyB0cmllcyB0
byBlbXVsYXRlIGEgbGVzcyBwZXJzbmlja2V0eSB2ZXJzaW9uIG9mIChhbmQKLSAgICAjIGR1ZSB0
byBub3QgaGF2aW5nIHRvIHdhaXQgZm9yIFBlcmwgc3RhcnR1cCBvbiBldmVyeSBpbnZvY2F0aW9u
LAotICAgICMgaXQncyBwcm9iYWJseSBmYXN0ZXIgdG9vKToKLSAgICAjCi0gICAgIyAgICBhdXRv
bTR0ZSAtLWxhbmd1YWdlPUF1dG9jb25mIC0tdHJhY2U9JG15X21hY3JvOlwkJSAiJEAiCi0gICAg
IwotICAgICMgRmlyc3Qgd2UgZ2l2ZSBhIG1pbmltYWwgc2V0IG9mIG1hY3JvIGRlY2xhcmF0aW9u
cyB0byBNNCB0byBwcmltZQotICAgICMgaXQgZm9yIHJlYWRpbmcgQXV0b2NvbmYgbWFjcm9zLCB3
aGlsZSBzdGlsbCBwcm92aWRpbmcgc29tZSBvZiB0aGUKLSAgICAjIGZ1bmN0aW9uYWxpdHkgZ2Vu
ZXJhbGx5IHVzZWQgYXQgbTQtdGltZSB0byBzdXBwbHkgZHluYW1pYwotICAgICMgYXJndW1lbnRz
IHRvIEF1dG9jb2YgZnVuY3Rpb25zLCBidXQgd2l0aG91dCBmb2xsb3dpbmcKLSAgICAjICdtNF9z
P2luY2x1ZGUnIGZpbGVzLgotICAgIF9HX21pbmk9JwotICAgICAgICBkbmwgIEluaXRpYWxpc2F0
aW9uLgotICAgICAgICBtNF9jaGFuZ2VxdW90ZShbLF0pCi0gICAgICAgIG00X2RlZmluZShbbTRf
Y29weV0sICAgW200X2RlZmluZShbJDJdLCBtNF9kZWZuKFskMV0pKV0pCi0gICAgICAgIG00X2Rl
ZmluZShbbTRfcmVuYW1lXSwgW200X2NvcHkoWyQxXSwgWyQyXSltNF91bmRlZmluZShbJDFdKV0p
Ci0KLSAgICAgICAgZG5sICBSZXBsYWNlIG1hY3JvcyB3aGljaCBtYXkgYWJvcnQgbTQgd2l0aCBh
IG5vLW9wIHZhcmlhbnQuCi0gICAgICAgIG00X3B1c2hkZWYoW200X2Fzc2VydF0pCi0gICAgICAg
IG00X3B1c2hkZWYoW200X2V4aXRdKQotICAgICAgICBtNF9wdXNoZGVmKFttNF9mYXRhbF0pCi0g
ICAgICAgIG00X3B1c2hkZWYoW200X200ZXhpdF0pCi0KLSAgICAgICAgZG5sICBSZXBsYWNlIG1h
Y3JvcyB0aGF0IG1pZ2h0IGJyZWFrIHN0ZGVyciBvZiBtNC4KLSAgICAgICAgbTRfcHVzaGRlZihb
bTRfZXJycHJpbnRdKQotICAgICAgICBtNF9wdXNoZGVmKFttNF9lcnJwcmludG5dKQotICAgICAg
ICBtNF9wdXNoZGVmKFttNF9pbmNsdWRlXSkKLSAgICAgICAgbTRfcHVzaGRlZihbbTRfd2Fybl0p
Ci0KLSAgICAgICAgZG5sICBBdm9pZCBzaWRlLWVmZmVjdHMgb2YgdHJhY2luZyBieSBleHRyYWN0
LXRyYWNlLgotICAgICAgICBtNF9wdXNoZGVmKFttNF9tYWtldGVtcF0pCi0gICAgICAgIG00X3B1
c2hkZWYoW200X21rc3RlbXBdKQotCi0gICAgICAgIGRubCAgVE9ETzogcmVhc29ucyBmb3IgdGhp
cwotICAgICAgICBtNF9wdXNoZGVmKFttNF9kbmxdKQotICAgICAgICBtNF9wdXNoZGVmKFttNF9t
NHdyYXBdKQotCi0gICAgICAgIGRubCAgQ29weSBhbmQgcmVuYW1lIG1hY3JvcyBub3QgaGFuZGxl
ZCBieSAibTQgLS1wcmVmaXgiLgotICAgICAgICBtNF9kZWZpbmUoW2RubF0sICAgICAgICAgW200
X2J1aWx0aW4oW2RubF0pXSkKLSAgICAgICAgbTRfY29weShbbTRfZGVmaW5lXSwgICAgIFttNF9k
ZWZ1bl0pCi0gICAgICAgIG00X3JlbmFtZShbbTRfaWZlbHNlXSwgICBbbTRfaWZdKQotICAgICAg
ICBtNF9yZW5hbWUoW200X3BhdHN1YnN0XSwgW200X2JwYXRzdWJzdF0pCi0gICAgICAgIG00X3Jl
bmFtZShbbTRfcmVnZXhwXSwgICBbbTRfYnJlZ2V4cF0pCi0KLSAgICAgICAgZG5sICAibTRzdWdh
ci5taW5pIiAtIHVzZWZ1bCBtNC10aW1lIG1hY3JvcyBmb3IgZHluYW1pYyBhcmd1bWVudHMuCi0g
ICAgICAgIGRubCAgSWYgd2UgZGlzY292ZXIgcGFja2FnZXMgdGhhdCBuZWVkIG1vcmUgbTQgbWFj
cm9zIGRlZmluZWQgaW4KLSAgICAgICAgZG5sICBvcmRlciB0byBib290c3RyYXAgY29ycmVjdGx5
LCBhZGQgdGhlbSBoZXJlOgotICAgICAgICBtNF9kZWZpbmUoW200X2JtYXRjaF0sCi0gICAgICAg
ICAgICBbbTRfaWYoWyQjXSwgMCwgW10sIFskI10sIDEsIFtdLCBbJCNdLCAyLCBbJDJdLAotICAg
ICAgICAgICAgICAgICAgIFttNF9pZihtNF9icmVnZXhwKFskMV0sIFskMl0pLCAtMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyQwKFskMV0sIG00X3NoaWZ0MygkQCkpXSwgWyQzXSldKV0p
Ci0gICAgICAgIG00X2RlZmluZShbbTRfaWZuZGVmXSwgW200X2lmZGVmKFskMV0sIFskM10sIFsk
Ml0pXSkKLSAgICAgICAgbTRfZGVmaW5lKFttNF9pZnNldF0sCi0gICAgICAgICAgICBbbTRfaWZk
ZWYoWyQxXSwgW200X2lmdmFsKG00X2RlZm4oWyQxXSksIFskMl0sIFskM10pXSwgWyQzXSldKQot
ICAgICAgICBtNF9kZWZpbmUoW200X3JlcXVpcmVdLCBbJDFdKQotICAgICAgICBtNF9kZWZpbmUo
W200X3NoaWZ0M10sIFttNF9zaGlmdChtNHNoaWZ0KG00c2hpZnQoJEApKSldKQotCi0gICAgICAg
IGRubCAgImF1dG9jb25mLm1pbmkiIC0gdGhpbmdzIGZyb20gYXV0b2NvbmYgbWFjcm9zIHdlIGNh
cmUgYWJvdXQuCi0gICAgICAgIG00X2NvcHkoW200X2RlZnVuXSwgW0FDX0RFRlVOXSkKLQotICAg
ICAgICBkbmwgIER1bW15IGRlZmluaXRpb25zIGZvciB0aGUgbWFjcm9zIHdlIHdhbnQgdG8gdHJh
Y2UuCi0gICAgICAgIGRubCAgQU1fSU5JVF9BVVRPTUFLRSBhdCBsZWFzdCBwcm9kdWNlcyBubyB0
cmFjZSB3aXRob3V0IHRoaXMuCi0gICAgJwotCi0gICAgX0dfc2F2ZT0kSUZTCi0gICAgSUZTPSwK
LSAgICBmb3IgX0dfbWFjcm8gaW4gJF9HX21hY3JvczsgZG8KLSAgICAgIElGUz0kX0dfc2F2ZQot
ICAgICAgZnVuY19hcHBlbmQgX0dfbWluaSAiQUNfREVGVU4oWyRfR19tYWNyb10pJG5sIgotICAg
IGRvbmUKLSAgICBJRlM9JF9HX3NhdmUKLQotICAgICMgV2UgZGlzY2FyZCBNNCdzIHN0ZG91dCwg
YnV0IHRoZSBNNCB0cmFjZSBvdXRwdXQgZnJvbSByZWFkaW5nIG91cgotICAgICMgImF1dG9jb25m
Lm1pbmkiIGZvbGxvd2VkIGJ5IGFueSBvdGhlciBmaWxlcyBwYXNzZWQgdG8gdGhpcwotICAgICMg
ZnVuY3Rpb24gaXMgdGhlbiBzY2FubmVkIGJ5IHNlZCB0byB0cmFuc2Zvcm0gaXQgaW50byBhIGNv
bG9uCi0gICAgIyBkZWxpbWl0ZWQgYXJndW1lbnQgbGlzdCBhc3NpZ25lZCB0byBhIHNoZWxsIHZh
cmlhYmxlLgotICAgIF9HX3RyYW5zZm9ybT0nc3wjLiokfHw7IHN8XmRubCAuKiR8fDsgc3wgZG5s
IC4qJHx8OycKLQotICAgICMgVW5mb3J0dW5hdGVseSwgYWx0ZXJuYXRpb24gaW4gcmVnZXhwIGFk
ZHJlc3NlcyBkb2Vzbid0IHdvcmsgaW4gYXQKLSAgICAjIGxlYXN0IEJTRCAoYW5kIGhlbmNlIE1h
YyBPUyBYKSBzZWQsIHNvIHdlIGhhdmUgdG8gYXBwZW5kIGEgY2FwdHVyZQotICAgICMgYW5kIHBy
aW50IGJsb2NrIGZvciBlYWNoIHRyYWNlZCBtYWNybyB0byB0aGUgc2VkIHRyYW5zZm9ybSBzY3Jp
cHQuCi0gICAgX0dfc2F2ZT0kSUZTCi0gICAgSUZTPSwKLSAgICBmb3IgX0dfbWFjcm8gaW4gJF9H
X21hY3JvczsgZG8KLSAgICAgIElGUz0kX0dfc2F2ZQotICAgICAgZnVuY19hcHBlbmQgX0dfdHJh
bnNmb3JtICcKLSAgICAgICAgL15tNHRyYWNlOiAtMS0gJyIkX0dfbWFjcm8iJy8gewotICAgICAg
ICAgIHN8Xm00dHJhY2U6IC0xLSAnIiRfR19tYWNybyInWyhbXSp8fAotICAgICAgICAgIHN8XSwg
W1tdfDp8ZwotICAgICAgICAgIHN8W10pXSokfDp8Ci0gICAgICAgICAgc3xcKC5cKTokfFwxfAot
ICAgICAgICAgIHAKLSAgICAgICAgfScKLSAgICBkb25lCi0gICAgSUZTPSRfR19zYXZlCi0KLSAg
ICAjIFNhdmUgdGhlIGNvbW1hbmQgcGlwZWxpbmUgcmVzdWx0cyBmb3IgZnVydGhlciB1c2UgYnkg
Y2FsbGVycyBvZgotICAgICMgdGhpcyBmdW5jdGlvbi4KLSAgICBmdW5jX2V4dHJhY3RfdHJhY2Vf
cmVzdWx0PWAkRUNITyAiJF9HX21pbmkiIFwKLSAgICAgIHwkTTQgLWRhcSAtLXByZWZpeCAkX0df
bTRfdHJhY2VzIC0gIiRAIiAyPiYxIDE+L2Rldi9udWxsIFwKLSAgICAgIHwkU0VEIC1uIC1lICIk
X0dfdHJhbnNmb3JtImAKLX0KLQotCi0jIGZ1bmNfZXh0cmFjdF90cmFjZV9maXJzdCBNQUNST19O
QU1FUyBbRklMRU5BTUVdLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0jIEV4YWN0bHkgbGlrZSBmdW5jX2V4dHJhY3RfdHJhY2UsIGV4Y2Vw
dCB0aGF0IG9ubHkgdGhlIGZpcnN0IGFyZ3VtZW50Ci0jIHRvIHRoZSBmaXJzdCBpbnZvY2F0aW9u
IG9mIG9uZSBvZiB0aGUgY29tbWEgc2VwYXJhdGVkIE1BQ1JPX05BTUVTIGlzCi0jIHJldHVybmVk
IGluICckZnVuY19leHRyYWN0X3RyYWNlX2ZpcnN0X3Jlc3VsdCcuCi1mdW5jX2V4dHJhY3RfdHJh
Y2VfZmlyc3QgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBmdW5jX2V4dHJhY3RfdHJhY2Ug
JHsxKyIkQCJ9Ci0gICAgZnVuY19leHRyYWN0X3RyYWNlX2ZpcnN0X3Jlc3VsdD1gJEVDSE8gIiRm
dW5jX2V4dHJhY3RfdHJhY2VfcmVzdWx0IiBcCi0gICAgICB8JFNFRCAtZSAnc3w6LiokfHxnJyAt
ZSAxcWAKLX0KLQotCi0jIGZ1bmNfbWFpbiBbQVJHXS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0K
LWZ1bmNfbWFpbiAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICMgQ29uZmlndXJhdGlvbi4K
LSAgICB1c2FnZT0nJHByb2duYW1lIE1BQ1JPX05BTUUgRklMRSBbLi4uXScKLQotICAgIGxvbmdf
aGVscF9tZXNzYWdlPScKLVRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGlzIHByb2dyYW0gaXMgdGhl
IG5hbWUgb2YgYW4gYXV0b3Rvb2xzIG1hY3JvCi13aG9zZSBhcmd1bWVudHMgeW91IHdhbnQgdG8g
ZXh0cmFjdCBieSBleGFtaW5pbmcgdGhlIGZpbGVzIGxpc3RlZCBpbiB0aGUKLXJlbWFpbmluZyBh
cmd1bWVudHMgdXNpbmcgdGhlIHNhbWUgdG9vbCB0aGF0IEF1dG9jb25mIGFuZCBBdXRvbWFrZSB1
c2UsCi1HTlUgTTQuCi0KLVRoZSBhcmd1bWVudHMgYXJlIHJldHVybmVkIHNlcGFyYXRlZCBieSBj
b2xvbnMsIHdpdGggZWFjaCB0cmFjZWQgY2FsbAotb24gYSBzZXBhcmF0ZSBsaW5lLicKLQotICAg
ICMgT3B0aW9uIHByb2Nlc3NpbmcuCi0gICAgZnVuY19vcHRpb25zICIkQCIKLSAgICBldmFsIHNl
dCBkdW1teSAiJGZ1bmNfb3B0aW9uc19yZXN1bHQiOyBzaGlmdAotCi0gICAgIyBWYWxpZGF0ZSBy
ZW1haW5pbmcgbm9uLW9wdGlvbiBhcmd1bWVudHMuCi0gICAgdGVzdCAkIyAtZ3QgMSBcCi0gICAg
ICAgIHx8IGZ1bmNfZmF0YWxfaGVscCAibm90IGVub3VnaCBhcmd1bWVudHMiCi0KLSAgICAjIFBh
c3Mgbm9uLW9wdGlvbiBhcmd1bWVudHMgdG8gZXh0cmFjdGlvbiBmdW5jdGlvbi4KLSAgICBmdW5j
X2V4dHJhY3RfdHJhY2UgIiRAIgotCi0gICAgIyBEaXNwbGF5IHJlc3VsdHMuCi0gICAgdGVzdCAt
biAiJGZ1bmNfZXh0cmFjdF90cmFjZV9yZXN1bHQiIFwKLSAgICAgICAgJiYgJEVDSE8gIiRmdW5j
X2V4dHJhY3RfdHJhY2VfcmVzdWx0IgotCi0gICAgIyBUaGUgRW5kLgotICAgIGV4aXQgJEVYSVRf
U1VDQ0VTUwotfQotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgQWN0
dWFsbHkgcGVyZm9ybSB0aGUgdHJhY2UuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gIyMKLQotIyBPbmx5IGNhbGwgJ2Z1bmNfbWFpbicgaWYgdGhpcyBzY3JpcHQgd2FzIGNhbGxl
ZCBkaXJlY3RseS4KLXRlc3QgZXh0cmFjdC10cmFjZSA9ICIkcHJvZ25hbWUiICYmIGZ1bmNfbWFp
biAiJEAiCi0KLSMgTG9jYWwgdmFyaWFibGVzOgotIyBtb2RlOiBzaGVsbC1zY3JpcHQKLSMgc2gt
aW5kZW50YXRpb246IDIKLSMgZXZhbDogKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICd0aW1l
LXN0YW1wKQotIyB0aW1lLXN0YW1wLXBhdHRlcm46ICI1MC9zY3JpcHR2ZXJzaW9uPSU6eS0lMDJt
LSUwMmQuJTAySDsgIyBVVEMiCi0jIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgotIyBFbmQ6
CmRpZmYgLS1naXQgYS9nbC9idWlsZC1hdXgvZnVuY2xpYi5zaCBiL2dsL2J1aWxkLWF1eC9mdW5j
bGliLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODg0ZWMxYS4uMDAwMDAwMDAK
LS0tIGEvZ2wvYnVpbGQtYXV4L2Z1bmNsaWIuc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDY1ICsw
LDAgQEAKLSMgU2V0IGEgdmVyc2lvbiBzdHJpbmcgZm9yIHRoaXMgc2NyaXB0Lgotc2NyaXB0dmVy
c2lvbj0yMDE5LTAyLTE5LjE1OyAjIFVUQwotCi0jIEdlbmVyYWwgc2hlbGwgc2NyaXB0IGJvaWxl
ciBwbGF0ZSwgYW5kIGhlbHBlciBmdW5jdGlvbnMuCi0jIFdyaXR0ZW4gYnkgR2FyeSBWLiBWYXVn
aGFuLCAyMDA0Ci0KLSMgVGhpcyBpcyBmcmVlIHNvZnR3YXJlLiAgVGhlcmUgaXMgTk8gd2FycmFu
dHk7IG5vdCBldmVuIGZvcgotIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuCi0jCi0jIENvcHlyaWdodCAoQykgMjAwNC0yMDE5LCAyMDIxLCAyMDIz
IEJvb3RzdHJhcCBBdXRob3JzCi0jCi0jIFRoaXMgZmlsZSBpcyBkdWFsIGxpY2Vuc2VkIHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2UKLSMgPGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcv
bGljZW5zZXMvTUlUPiwgYW5kIEdQTCB2ZXJzaW9uIDIgb3IgbGF0ZXIKLSMgPGh0dHA6Ly93d3cu
Z251Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWw+LiAgWW91IG11c3QgYXBwbHkgb25lIG9mCi0j
IHRoZXNlIGxpY2Vuc2VzIHdoZW4gdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhpcyBzb2Z0d2Fy
ZSBvciBhbnkgb2YKLSMgdGhlIGZpbGVzIHdpdGhpbiBpdC4gIFNlZSB0aGUgVVJMcyBhYm92ZSwg
b3IgdGhlIGZpbGUgYExJQ0VOU0VgCi0jIGluY2x1ZGVkIGluIHRoZSBCb290c3RyYXAgZGlzdHJp
YnV0aW9uIGZvciB0aGUgZnVsbCBsaWNlbnNlIHRleHRzLgotCi0jIFBsZWFzZSByZXBvcnQgYnVn
cyBvciBwcm9wb3NlIHBhdGNoZXMgdG86Ci0jIDxodHRwczovL2dpdGh1Yi5jb20vZ251bGliLW1v
ZHVsZXMvYm9vdHN0cmFwL2lzc3Vlcz4KLQotCi0jIyAtLS0tLS0gIyMKLSMjIFVzYWdlLiAjIwot
IyMgLS0tLS0tICMjCi0KLSMgRXZhbHVhdGUgdGhpcyBmaWxlIG5lYXIgdGhlIHRvcCBvZiB5b3Vy
IHNjcmlwdCB0byBnYWluIGFjY2VzcyB0bwotIyB0aGUgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMg
ZGVmaW5lZCBoZXJlOgotIwotIyAgIC4gYGVjaG8gIiQwIiB8ICR7U0VELXNlZH0gJ3N8W14vXSok
fHwnYC9idWlsZC1hdXgvZnVuY2xpYi5zaAotIwotIyBJZiB5b3UgbmVlZCB0byBvdmVycmlkZSBh
bnkgb2YgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGUKLSMgc2V0dGluZ3MsIGRvIHRo
YXQgYmVmb3JlIGV2YWx1YXRpbmcgdGhpcyBmaWxlLgotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0t
LS0tICMjCi0jIyBTaGVsbCBub3JtYWxpc2F0aW9uLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0gIyMKLQotIyBTb21lIHNoZWxscyBuZWVkIGEgbGl0dGxlIGhlbHAgdG8gYmUgYXMgQm91cm5l
IGNvbXBhdGlibGUgYXMgcG9zc2libGUuCi0jIEJlZm9yZSBkb2luZyBhbnl0aGluZyBlbHNlLCBt
YWtlIHN1cmUgYWxsIHRoYXQgaGVscCBoYXMgYmVlbiBwcm92aWRlZCEKLQotRFVBTENBU0U9MTsg
ZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitz
ZXR9IiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKLSAgZW11bGF0ZSBz
aAotICBOVUxMQ01EPToKLSAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0
dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCi0gICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAg
RGlzYWJsZSB0aGlzIGZlYXR1cmUuCi0gIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotICBz
ZXRvcHQgTk9fR0xPQl9TVUJTVAotZWxzZQotICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAg
aW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4IDs7IGVzYWMKLWZpCi0KLSMgTkxTIG51aXNhbmNlczog
V2Ugc2F2ZSB0aGUgb2xkIHZhbHVlcyBpbiBjYXNlIHRoZXkgYXJlIHJlcXVpcmVkIGxhdGVyLgot
X0dfdXNlcl9sb2NhbGU9Ci1fR19zYWZlX2xvY2FsZT0KLWZvciBfR192YXIgaW4gTEFORyBMQU5H
VUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwotZG8KLSAgZXZhbCAi
aWYgdGVzdCBzZXQgPSBcIlwkeyRfR192YXIrc2V0fVwiOyB0aGVuCi0gICAgICAgICAgc2F2ZV8k
X0dfdmFyPVwkJF9HX3ZhcgotICAgICAgICAgICRfR192YXI9QwotCSAgZXhwb3J0ICRfR192YXIK
LQkgIF9HX3VzZXJfbG9jYWxlPVwiJF9HX3Zhcj1cXFwkc2F2ZV9cJF9HX3ZhcjsgXCRfR191c2Vy
X2xvY2FsZVwiCi0JICBfR19zYWZlX2xvY2FsZT1cIiRfR192YXI9QzsgXCRfR19zYWZlX2xvY2Fs
ZVwiCi0JZmkiCi1kb25lCi0jIFRoZXNlIE5MUyB2YXJzIGFyZSBzZXQgdW5jb25kaXRpb25hbGx5
IChib290c3RyYXAgaXNzdWUgIzI0KS4gIFVuc2V0IHRob3NlCi0jIGluIGNhc2UgdGhlIGVudmly
b25tZW50IHJlc2V0IGlzIG5lZWRlZCBsYXRlciBhbmQgdGhlICRzYXZlXyogdmFyaWFudCBpcyBu
b3QKLSMgZGVmaW5lZCAoc2VlIHRoZSBjb2RlIGFib3ZlKS4KLUxDX0FMTD1DCi1MQU5HVUFHRT1D
Ci1leHBvcnQgTEFOR1VBR0UgTENfQUxMCi0KLSMgTWFrZSBzdXJlIElGUyBoYXMgYSBzZW5zaWJs
ZSBkZWZhdWx0Ci1zcD0nICcKLW5sPScKLScKLUlGUz0iJHNwCSRubCIKLQotIyBUaGVyZSBhcmUg
YXBwYXJlbnRseSBzb21lIHN5c3RlbXMgdGhhdCB1c2UgJzsnIGFzIGEgUEFUSCBzZXBhcmF0b3Ih
Ci1pZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotICBQQVRIX1NF
UEFSQVRPUj06Ci0gIChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9k
ZXYvbnVsbCAyPiYxICYmIHsKLSAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNo
IC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotICAgICAgUEFUSF9TRVBBUkFUT1I9JzsnCi0gIH0K
LWZpCi0KLQotIyBmdW5jX3Vuc2V0IFZBUgotIyAtLS0tLS0tLS0tLS0tLQotIyBQb3J0YWJseSB1
bnNldCBWQVIuCi0jIEluIHNvbWUgc2hlbGxzLCBhbiAndW5zZXQgVkFSJyBzdGF0ZW1lbnQgbGVh
dmVzIGEgbm9uLXplcm8gcmV0dXJuCi0jIHN0YXR1cyBpZiBWQVIgaXMgYWxyZWFkeSB1bnNldCwg
d2hpY2ggbWlnaHQgYmUgcHJvYmxlbWF0aWMgaWYgdGhlCi0jIHN0YXRlbWVudCBpcyB1c2VkIGF0
IHRoZSBlbmQgb2YgYSBmdW5jdGlvbiAodGh1cyBwb2lzb25pbmcgaXRzIHJldHVybgotIyB2YWx1
ZSkgb3Igd2hlbiAnc2V0IC1lJyBpcyBhY3RpdmUgKGNhdXNpbmcgZXZlbiBhIHNwdXJpb3VzIGFi
b3J0IG9mCi0jIHRoZSBzY3JpcHQgaW4gdGhpcyBjYXNlKS4KLWZ1bmNfdW5zZXQgKCkKLXsKLSAg
ICB7IGV2YWwgJDE9OyAoZXZhbCB1bnNldCAkMSkgPi9kZXYvbnVsbCAyPiYxICYmIGV2YWwgdW5z
ZXQgJDEgfHwgOiA7IH0KLX0KLQotCi0jIE1ha2Ugc3VyZSBDRFBBVEggZG9lc24ndCBjYXVzZSBg
Y2RgIGNvbW1hbmRzIHRvIG91dHB1dCB0aGUgdGFyZ2V0IGRpci4KLWZ1bmNfdW5zZXQgQ0RQQVRI
Ci0KLSMgTWFrZSBzdXJlICR7LEUsRn1HUkVQIGJlaGF2ZSBzYW5lbHkuCi1mdW5jX3Vuc2V0IEdS
RVBfT1BUSU9OUwotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIExvY2F0
ZSBjb21tYW5kIHV0aWxpdGllcy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK
LQotCi0jIGZ1bmNfZXhlY3V0YWJsZV9wIEZJTEUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
IyBDaGVjayB0aGF0IEZJTEUgaXMgYW4gZXhlY3V0YWJsZSByZWd1bGFyIGZpbGUuCi1mdW5jX2V4
ZWN1dGFibGVfcCAoKQotewotICAgIHRlc3QgLWYgIiQxIiAmJiB0ZXN0IC14ICIkMSIKLX0KLQot
Ci0jIGZ1bmNfcGF0aF9wcm9ncyBQUk9HU19MSVNUIENIRUNLX0ZVTkMgW1BBVEhdCi0jIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNlYXJjaCBmb3IgZWl0
aGVyIGEgcHJvZ3JhbSB0aGF0IHJlc3BvbmRzIHRvIC0tdmVyc2lvbiB3aXRoIG91dHB1dAotIyBj
b250YWluaW5nICJHTlUiLCBvciBlbHNlIHJldHVybmVkIGJ5IENIRUNLX0ZVTkMgb3RoZXJ3aXNl
LCBieQotIyB0cnlpbmcgYWxsIHRoZSBkaXJlY3RvcmllcyBpbiBQQVRIIHdpdGggZWFjaCBvZiB0
aGUgZWxlbWVudHMgb2YKLSMgUFJPR1NfTElTVC4KLSMKLSMgQ0hFQ0tfRlVOQyBzaG91bGQgYWNj
ZXB0IHRoZSBwYXRoIHRvIGEgY2FuZGlkYXRlIHByb2dyYW0sIGFuZAotIyBzZXQgJGZ1bmNfY2hl
Y2tfcHJvZ19yZXN1bHQgaWYgaXQgdHJ1bmNhdGVzIGl0cyBvdXRwdXQgbGVzcyB0aGFuCi0jICRf
R19wYXRoX3Byb2dfbWF4IGNoYXJhY3RlcnMuCi1mdW5jX3BhdGhfcHJvZ3MgKCkKLXsKLSAgICBf
R19wcm9nc19saXN0PSQxCi0gICAgX0dfY2hlY2tfZnVuYz0kMgotICAgIF9HX1BBVEg9JHszLSIk
UEFUSCJ9Ci0KLSAgICBfR19wYXRoX3Byb2dfbWF4PTAKLSAgICBfR19wYXRoX3Byb2dfZm91bmQ9
ZmFsc2UKLSAgICBfR19zYXZlX0lGUz0kSUZTOyBJRlM9JHtQQVRIX1NFUEFSQVRPUi06fQotICAg
IGZvciBfR19kaXIgaW4gJF9HX1BBVEg7IGRvCi0gICAgICBJRlM9JF9HX3NhdmVfSUZTCi0gICAg
ICB0ZXN0IC16ICIkX0dfZGlyIiAmJiBfR19kaXI9LgotICAgICAgZm9yIF9HX3Byb2dfbmFtZSBp
biAkX0dfcHJvZ3NfbGlzdDsgZG8KLSAgICAgICAgZm9yIF9leGVleHQgaW4gJycgLkVYRTsgZG8K
LSAgICAgICAgICBfR19wYXRoX3Byb2c9JF9HX2Rpci8kX0dfcHJvZ19uYW1lJF9leGVleHQKLSAg
ICAgICAgICBmdW5jX2V4ZWN1dGFibGVfcCAiJF9HX3BhdGhfcHJvZyIgfHwgY29udGludWUKLSAg
ICAgICAgICBjYXNlIGAiJF9HX3BhdGhfcHJvZyIgLS12ZXJzaW9uIDI+JjFgIGluCi0gICAgICAg
ICAgICAqR05VKikgZnVuY19wYXRoX3Byb2dzX3Jlc3VsdD0kX0dfcGF0aF9wcm9nIF9HX3BhdGhf
cHJvZ19mb3VuZD06IDs7Ci0gICAgICAgICAgICAqKSAgICAgJF9HX2NoZWNrX2Z1bmMgJF9HX3Bh
dGhfcHJvZwotCQkgICBmdW5jX3BhdGhfcHJvZ3NfcmVzdWx0PSRmdW5jX2NoZWNrX3Byb2dfcmVz
dWx0Ci0JCSAgIDs7Ci0gICAgICAgICAgZXNhYwotICAgICAgICAgICRfR19wYXRoX3Byb2dfZm91
bmQgJiYgYnJlYWsgMwotICAgICAgICBkb25lCi0gICAgICBkb25lCi0gICAgZG9uZQotICAgIElG
Uz0kX0dfc2F2ZV9JRlMKLSAgICB0ZXN0IC16ICIkZnVuY19wYXRoX3Byb2dzX3Jlc3VsdCIgJiYg
ewotICAgICAgZWNobyAibm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRI
IiA+JjIKLSAgICAgIGV4aXQgMQotICAgIH0KLX0KLQotCi0jIFdlIHdhbnQgdG8gYmUgYWJsZSB0
byB1c2UgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYmVmb3JlIGNvbmZpZ3VyZQotIyBoYXMg
ZmlndXJlZCBvdXQgd2hlcmUgdGhlIGJlc3QgYmluYXJpZXMgYXJlIGtlcHQsIHdoaWNoIG1lYW5z
IHdlIGhhdmUKLSMgdG8gc2VhcmNoIGZvciB0aGVtIG91cnNlbHZlcyAtIGV4Y2VwdCB3aGVuIHRo
ZSByZXN1bHRzIGFyZSBhbHJlYWR5IHNldAotIyB3aGVyZSB3ZSBza2lwIHRoZSBzZWFyY2hlcy4K
LQotIyBVbmxlc3MgdGhlIHVzZXIgb3ZlcnJpZGVzIGJ5IHNldHRpbmcgU0VELCBzZWFyY2ggdGhl
IHBhdGggZm9yIGVpdGhlciBHTlUKLSMgc2VkLCBvciB0aGUgc2VkIHRoYXQgdHJ1bmNhdGVzIGl0
cyBvdXRwdXQgdGhlIGxlYXN0LgotdGVzdCAteiAiJFNFRCIgJiYgewotICBfR19zZWRfc2NyaXB0
PXMvYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEvYmJiYmJiYmJiYmJiYmJiYmJi
YmJiYmJiYmJiYmJiYmJiLwotICBmb3IgX0dfaSBpbiAxIDIgMyA0IDUgNiA3OyBkbwotICAgIF9H
X3NlZF9zY3JpcHQ9JF9HX3NlZF9zY3JpcHQkbmwkX0dfc2VkX3NjcmlwdAotICBkb25lCi0gIGVj
aG8gIiRfR19zZWRfc2NyaXB0IiAyPi9kZXYvbnVsbCB8IHNlZCA5OXEgPmNvbmZ0ZXN0LnNlZAot
ICBfR19zZWRfc2NyaXB0PQotCi0gIGZ1bmNfY2hlY2tfcHJvZ19zZWQgKCkKLSAgewotICAgIF9H
X3BhdGhfcHJvZz0kMQotCi0gICAgX0dfY291bnQ9MAotICAgIHByaW50ZiAwMTIzNDU2Nzg5ID5j
b25mdGVzdC5pbgotICAgIHdoaWxlIDoKLSAgICBkbwotICAgICAgY2F0IGNvbmZ0ZXN0LmluIGNv
bmZ0ZXN0LmluID5jb25mdGVzdC50bXAKLSAgICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5p
bgotICAgICAgY3AgY29uZnRlc3QuaW4gY29uZnRlc3QubmwKLSAgICAgIGVjaG8gJycgPj4gY29u
ZnRlc3QubmwKLSAgICAgICIkX0dfcGF0aF9wcm9nIiAtZiBjb25mdGVzdC5zZWQgPGNvbmZ0ZXN0
Lm5sID5jb25mdGVzdC5vdXQgMj4vZGV2L251bGwgfHwgYnJlYWsKLSAgICAgIGRpZmYgY29uZnRl
c3Qub3V0IGNvbmZ0ZXN0Lm5sID4vZGV2L251bGwgMj4mMSB8fCBicmVhawotICAgICAgX0dfY291
bnQ9YGV4cHIgJF9HX2NvdW50ICsgMWAKLSAgICAgIGlmIHRlc3QgIiRfR19jb3VudCIgLWd0ICIk
X0dfcGF0aF9wcm9nX21heCI7IHRoZW4KLSAgICAgICAgIyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUg
aXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIgb25lCi0gICAgICAgIGZ1bmNfY2hlY2tf
cHJvZ19yZXN1bHQ9JF9HX3BhdGhfcHJvZwotICAgICAgICBfR19wYXRoX3Byb2dfbWF4PSRfR19j
b3VudAotICAgICAgZmkKLSAgICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1v
cmUgdGhhbiBlbm91Z2gKLSAgICAgIHRlc3QgMTAgLWx0ICIkX0dfY291bnQiICYmIGJyZWFrCi0g
ICAgZG9uZQotICAgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBj
b25mdGVzdC5vdXQKLSAgfQotCi0gIGZ1bmNfcGF0aF9wcm9ncyAic2VkIGdzZWQiIGZ1bmNfY2hl
Y2tfcHJvZ19zZWQgIiRQQVRIOi91c3IveHBnNC9iaW4iCi0gIHJtIC1mIGNvbmZ0ZXN0LnNlZAot
ICBTRUQ9JGZ1bmNfcGF0aF9wcm9nc19yZXN1bHQKLX0KLQotCi0jIFVubGVzcyB0aGUgdXNlciBv
dmVycmlkZXMgYnkgc2V0dGluZyBHUkVQLCBzZWFyY2ggdGhlIHBhdGggZm9yIGVpdGhlciBHTlUK
LSMgZ3JlcCwgb3IgdGhlIGdyZXAgdGhhdCB0cnVuY2F0ZXMgaXRzIG91dHB1dCB0aGUgbGVhc3Qu
Ci10ZXN0IC16ICIkR1JFUCIgJiYgewotICBmdW5jX2NoZWNrX3Byb2dfZ3JlcCAoKQotICB7Ci0g
ICAgX0dfcGF0aF9wcm9nPSQxCi0KLSAgICBfR19jb3VudD0wCi0gICAgX0dfcGF0aF9wcm9nX21h
eD0wCi0gICAgcHJpbnRmIDAxMjM0NTY3ODkgPmNvbmZ0ZXN0LmluCi0gICAgd2hpbGUgOgotICAg
IGRvCi0gICAgICBjYXQgY29uZnRlc3QuaW4gY29uZnRlc3QuaW4gPmNvbmZ0ZXN0LnRtcAotICAg
ICAgbXYgY29uZnRlc3QudG1wIGNvbmZ0ZXN0LmluCi0gICAgICBjcCBjb25mdGVzdC5pbiBjb25m
dGVzdC5ubAotICAgICAgZWNobyAnR1JFUCcgPj4gY29uZnRlc3QubmwKLSAgICAgICIkX0dfcGF0
aF9wcm9nIiAtZSAnR1JFUCQnIC1lICctKGNhbm5vdCBtYXRjaCktJyA8Y29uZnRlc3QubmwgPmNv
bmZ0ZXN0Lm91dCAyPi9kZXYvbnVsbCB8fCBicmVhawotICAgICAgZGlmZiBjb25mdGVzdC5vdXQg
Y29uZnRlc3QubmwgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCi0gICAgICBfR19jb3VudD1gZXhw
ciAkX0dfY291bnQgKyAxYAotICAgICAgaWYgdGVzdCAiJF9HX2NvdW50IiAtZ3QgIiRfR19wYXRo
X3Byb2dfbWF4IjsgdGhlbgotICAgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQg
a2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSAgICAgICAgZnVuY19jaGVja19wcm9nX3Jl
c3VsdD0kX0dfcGF0aF9wcm9nCi0gICAgICAgIF9HX3BhdGhfcHJvZ19tYXg9JF9HX2NvdW50Ci0g
ICAgICBmaQotICAgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFu
IGVub3VnaAotICAgICAgdGVzdCAxMCAtbHQgIiRfR19jb3VudCIgJiYgYnJlYWsKLSAgICBkb25l
Ci0gICAgcm0gLWYgY29uZnRlc3QuaW4gY29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0
Lm91dAotICB9Ci0KLSAgZnVuY19wYXRoX3Byb2dzICJncmVwIGdncmVwIiBmdW5jX2NoZWNrX3By
b2dfZ3JlcCAiJFBBVEg6L3Vzci94cGc0L2JpbiIKLSAgR1JFUD0kZnVuY19wYXRoX3Byb2dzX3Jl
c3VsdAotfQotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFVz
ZXIgb3ZlcnJpZGFibGUgY29tbWFuZCBwYXRocy4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gIyMKLQotIyBBbGwgdXBwZXJjYXNlIHZhcmlhYmxlIG5hbWVzIGFyZSB1c2Vk
IGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICBUaGVzZQotIyB2YXJpYWJsZXMgY2FuIGJlIG92
ZXJyaWRkZW4gYnkgdGhlIHVzZXIgYmVmb3JlIGNhbGxpbmcgYSBzY3JpcHQgdGhhdAotIyB1c2Vz
IHRoZW0gaWYgYSBzdWl0YWJsZSBjb21tYW5kIG9mIHRoYXQgbmFtZSBpcyBub3QgYWxyZWFkeSBh
dmFpbGFibGUKLSMgaW4gdGhlIGNvbW1hbmQgc2VhcmNoIFBBVEguCi0KLTogJHtDUD0iY3AgLWYi
fQotOiAke0VDSE89InByaW50ZiAlc1xuIn0KLTogJHtFR1JFUD0iJEdSRVAgLUUifQotOiAke0ZH
UkVQPSIkR1JFUCAtRiJ9Ci06ICR7TE5fUz0ibG4gLXMifQotOiAke01BS0U9Im1ha2UifQotOiAk
e01LRElSPSJta2RpciJ9Ci06ICR7TVY9Im12IC1mIn0KLTogJHtSTT0icm0gLWYifQotOiAke1NI
RUxMPSIke0NPTkZJR19TSEVMTC0vYmluL3NofSJ9Ci0KLQotIyMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0gIyMKLSMjIFVzZWZ1bCBzZWQgc25pcHBldHMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LSAjIwotCi1zZWRfZGlybmFtZT0nc3wvW14vXSokfHwnCi1zZWRfYmFzZW5hbWU9J3N8Xi4qL3x8
JwotCi0jIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4g
IEl0IGJhY2tzbGFzaGlmaWVzCi0jIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2
ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotc2VkX3F1b3RlX3N1YnN0PSdzfFwoW2Ai
JFxcXVwpfFxcXDF8ZycKLQotIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlh
YmxlIHJlZmVyZW5jZXMuCi1zZWRfZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxc
MS9nJwotCi0jIFNlZCBzdWJzdGl0dXRpb24gdGhhdCB0dXJucyBhIHN0cmluZyBpbnRvIGEgcmVn
ZXggbWF0Y2hpbmcgZm9yIHRoZQotIyBzdHJpbmcgbGl0ZXJhbGx5Lgotc2VkX21ha2VfbGl0ZXJh
bF9yZWdleD0nc3xbXS5bXiRcXCpcL118XFwmfGcnCi0KLSMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0
IGNvbnZlcnRzIGEgdzMyIGZpbGUgbmFtZSBvciBwYXRoCi0jIHRoYXQgY29udGFpbnMgZm9yd2Fy
ZCBzbGFzaGVzLCBpbnRvIG9uZSB0aGF0IGNvbnRhaW5zCi0jIChlc2NhcGVkKSBiYWNrc2xhc2hl
cy4gIEEgdmVyeSBuYWl2ZSBpbXBsZW1lbnRhdGlvbi4KLXNlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9
J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKLQotIyBSZS0nXCcgcGFyYW1ldGVy
IGV4cGFuc2lvbnMgaW4gb3V0cHV0IG9mIHNlZF9kb3VibGVfcXVvdGVfc3Vic3QgdGhhdAotIyB3
ZXJlICdcJy1lZCBpbiBpbnB1dCB0byB0aGUgc2FtZS4gIElmIGFuIG9kZCBudW1iZXIgb2YgJ1wn
IHByZWNlZGVkIGEKLSMgJyQnIGluIGlucHV0IHRvIHNlZF9kb3VibGVfcXVvdGVfc3Vic3QsIHRo
YXQgJyQnIHdhcyBwcm90ZWN0ZWQgZnJvbQotIyBleHBhbnNpb24uICBTaW5jZSBlYWNoIGlucHV0
ICdcJyBpcyBub3cgdHdvICdcJ3MsIGxvb2sgZm9yIGFueSBudW1iZXIKLSMgb2YgcnVucyBvZiBm
b3VyICdcJ3MgZm9sbG93ZWQgYnkgdHdvICdcJ3MgYW5kIHRoZW4gYSAnJCcuICAnXCcgdGhhdCAn
JCcuCi1fR19icz0nXFwnCi1fR19iczI9J1xcXFwnCi1fR19iczQ9J1xcXFxcXFxcJwotX0dfZG9s
bGFyPSdcJCcKLXNlZF9kb3VibGVfYmFja3NsYXNoPSJcCi0gIHMvJF9HX2JzNC8mXFwKLS9nCi0g
IHMvXiRfR19iczIkX0dfZG9sbGFyLyRfR19icyYvCi0gIHMvXFwoW14kX0dfYnNdXFwpJF9HX2Jz
MiRfR19kb2xsYXIvXFwxJF9HX2JzMiRfR19icyRfR19kb2xsYXIvZwotICBzL1xuLy9nIgotCi0j
IHJlcXVpcmVfY2hlY2tfaWZzX2JhY2tzbGFzaAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLSMgQ2hlY2sgaWYgd2UgY2FuIHVzZSBiYWNrc2xhc2ggYXMgSUZTPSdcJyBzZXBhcmF0b3Is
IGFuZCBzZXQKLSMgJGNoZWNrX2lmc19iYWNrc2hsYXNoX2Jyb2tlbiB0byAnOicgb3IgJ2ZhbHNl
Jy4KLXJlcXVpcmVfY2hlY2tfaWZzX2JhY2tzbGFzaD1mdW5jX3JlcXVpcmVfY2hlY2tfaWZzX2Jh
Y2tzbGFzaAotZnVuY19yZXF1aXJlX2NoZWNrX2lmc19iYWNrc2xhc2ggKCkKLXsKLSAgX0dfc2F2
ZV9JRlM9JElGUwotICBJRlM9J1wnCi0gIF9HX2NoZWNrX2lmc19iYWNrc2hsYXNoPSdhXFxiJwot
ICBmb3IgX0dfaSBpbiAkX0dfY2hlY2tfaWZzX2JhY2tzaGxhc2gKLSAgZG8KLSAgY2FzZSAkX0df
aSBpbgotICBhKQotICAgIGNoZWNrX2lmc19iYWNrc2hsYXNoX2Jyb2tlbj1mYWxzZQotICAgIDs7
Ci0gICcnKQotICAgIGJyZWFrCi0gICAgOzsKLSAgKikKLSAgICBjaGVja19pZnNfYmFja3NobGFz
aF9icm9rZW49OgotICAgIGJyZWFrCi0gICAgOzsKLSAgZXNhYwotICBkb25lCi0gIElGUz0kX0df
c2F2ZV9JRlMKLSAgcmVxdWlyZV9jaGVja19pZnNfYmFja3NsYXNoPToKLX0KLQotCi0jIyAtLS0t
LS0tLS0tLS0tLS0tLSAjIwotIyMgR2xvYmFsIHZhcmlhYmxlcy4gIyMKLSMjIC0tLS0tLS0tLS0t
LS0tLS0tICMjCi0KLSMgRXhjZXB0IGZvciB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBleHBsaWNpdGx5
IGxpc3RlZCBiZWxvdywgdGhlIGZvbGxvd2luZwotIyBmdW5jdGlvbnMgaW4gdGhlICdeZnVuY18n
IG5hbWVzcGFjZSwgYW5kIHRoZSAnXnJlcXVpcmVfJyBuYW1lc3BhY2UKLSMgdmFyaWFibGVzIGlu
aXRpYWxpc2VkIGluIHRoZSAnUmVzb3VyY2UgbWFuYWdlbWVudCcgc2VjdGlvbiwgc291cmNpbmcK
LSMgdGhpcyBmaWxlIHdpbGwgbm90IHBvbGx1dGUgeW91ciBnbG9iYWwgbmFtZXNwYWNlIHdpdGgg
YW55dGhpbmcKLSMgZWxzZS4gVGhlcmUncyBubyBwb3J0YWJsZSB3YXkgdG8gc2NvcGUgdmFyaWFi
bGVzIGluIEJvdXJuZSBzaGVsbAotIyB0aG91Z2gsIHNvIGFjdHVhbGx5IHJ1bm5pbmcgdGhlc2Ug
ZnVuY3Rpb25zIHdpbGwgc29tZXRpbWVzIHBsYWNlCi0jIHJlc3VsdHMgaW50byBhIHZhcmlhYmxl
IG5hbWVkIGFmdGVyIHRoZSBmdW5jdGlvbiwgYW5kIG9mdGVuIHVzZQotIyB0ZW1wb3JhcnkgdmFy
aWFibGVzIGluIHRoZSAnXl9HXycgbmFtZXNwYWNlLiBJZiB5b3UgYXJlIGNhcmVmdWwgdG8KLSMg
YXZvaWQgdXNpbmcgdGhvc2UgbmFtZXNwYWNlcyBjYXN1YWxseSBpbiB5b3VyIHNvdXJjaW5nIHNj
cmlwdCwgdGhpbmdzCi0jIHNob3VsZCBjb250aW51ZSB0byB3b3JrIGFzIHlvdSBleHBlY3QuIEFu
ZCwgb2YgY291cnNlLCB5b3UgY2FuIGZyZWVseQotIyBvdmVyd3JpdGUgYW55IG9mIHRoZSBmdW5j
dGlvbnMgb3IgdmFyaWFibGVzIGRlZmluZWQgaGVyZSBiZWZvcmUKLSMgY2FsbGluZyBhbnl0aGlu
ZyB0byBjdXN0b21pemUgdGhlbS4KLQotRVhJVF9TVUNDRVNTPTAKLUVYSVRfRkFJTFVSRT0xCi1F
WElUX01JU01BVENIPTYzICAjICQ/ID0gNjMgaXMgdXNlZCB0byBpbmRpY2F0ZSB2ZXJzaW9uIG1p
c21hdGNoIHRvIG1pc3NpbmcuCi1FWElUX1NLSVA9NzcJICAjICQ/ID0gNzcgaXMgdXNlZCB0byBp
bmRpY2F0ZSBhIHNraXBwZWQgdGVzdCB0byBhdXRvbWFrZS4KLQotIyBBbGxvdyBvdmVycmlkaW5n
LCBlZyBhc3N1bWluZyB0aGF0IHlvdSBmb2xsb3cgdGhlIGNvbnZlbnRpb24gb2YKLSMgcHV0dGlu
ZyAnJGRlYnVnX2NtZCcgYXQgdGhlIHN0YXJ0IG9mIGFsbCB5b3VyIGZ1bmN0aW9ucywgeW91IGNh
biBnZXQKLSMgYmFzaCB0byBzaG93IGZ1bmN0aW9uIGNhbGwgdHJhY2Ugd2l0aDoKLSMKLSMgICAg
ZGVidWdfY21kPSdldmFsIGVjaG8gIiR7RlVOQ05BTUVbMF19ICQqIiA+JjInIGJhc2ggeW91ci1z
Y3JpcHQtbmFtZQotZGVidWdfY21kPSR7ZGVidWdfY21kLSI6In0KLWV4aXRfY21kPToKLQotIyBC
eSBjb252ZW50aW9uLCBmaW5pc2ggeW91ciBzY3JpcHQgd2l0aDoKLSMKLSMgICAgZXhpdCAkZXhp
dF9zdGF0dXMKLSMKLSMgc28gdGhhdCB5b3UgY2FuIHNldCBleGl0X3N0YXR1cyB0byBub24temVy
byBpZiB5b3Ugd2FudCB0byBpbmRpY2F0ZQotIyBzb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcg
ZXhlY3V0aW9uIHdpdGhvdXQgYWN0dWFsbHkgYmFpbGluZyBvdXQgYXQKLSMgdGhlIHBvaW50IG9m
IGZhaWx1cmUuCi1leGl0X3N0YXR1cz0kRVhJVF9TVUNDRVNTCi0KLSMgV29yayBhcm91bmQgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAot
IyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1
cnJlbnQgdmFsdWUgb2YKLSMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVx
dWFsIHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCi0jIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3
aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKLSMgZnVuY3Rpb24uCi1w
cm9ncGF0aD0kMAotCi0jIFRoZSBuYW1lIG9mIHRoaXMgcHJvZ3JhbS4KLXByb2duYW1lPWAkRUNI
TyAiJHByb2dwYXRoIiB8JFNFRCAiJHNlZF9iYXNlbmFtZSJgCi0KLSMgTWFrZSBzdXJlIHdlIGhh
dmUgYW4gYWJzb2x1dGUgcHJvZ3BhdGggZm9yIHJlZXhlY3V0aW9uOgotY2FzZSAkcHJvZ3BhdGgg
aW4KLSAgW1xcL10qfFtBLVphLXpdOlxcKikgOzsKLSAgKltcXC9dKikKLSAgICAgcHJvZ2Rpcj1g
JEVDSE8gIiRwcm9ncGF0aCIgfCRTRUQgIiRzZWRfZGlybmFtZSJgCi0gICAgIHByb2dkaXI9YGNk
ICIkcHJvZ2RpciIgJiYgcHdkYAotICAgICBwcm9ncGF0aD0kcHJvZ2Rpci8kcHJvZ25hbWUKLSAg
ICAgOzsKLSAgKikKLSAgICAgX0dfSUZTPSRJRlMKLSAgICAgSUZTPSR7UEFUSF9TRVBBUkFUT1It
On0KLSAgICAgZm9yIHByb2dkaXIgaW4gJFBBVEg7IGRvCi0gICAgICAgSUZTPSRfR19JRlMKLSAg
ICAgICB0ZXN0IC14ICIkcHJvZ2Rpci8kcHJvZ25hbWUiICYmIGJyZWFrCi0gICAgIGRvbmUKLSAg
ICAgSUZTPSRfR19JRlMKLSAgICAgdGVzdCAtbiAiJHByb2dkaXIiIHx8IHByb2dkaXI9YHB3ZGAK
LSAgICAgcHJvZ3BhdGg9JHByb2dkaXIvJHByb2duYW1lCi0gICAgIDs7Ci1lc2FjCi0KLQotIyMg
LS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFN0YW5kYXJkIG9wdGlvbnMuICMjCi0jIyAtLS0tLS0t
LS0tLS0tLS0tLSAjIwotCi0jIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhZmZlY3QgdGhlIG9wZXJh
dGlvbiBvZiB0aGUgZnVuY3Rpb25zIGRlZmluZWQKLSMgYmVsb3csIGFuZCBzaG91bGQgYmUgc2V0
IGFwcHJvcHJpYXRlbHkgZGVwZW5kaW5nIG9uIHJ1bi10aW1lIHBhcmEtCi0jIG1ldGVycyBwYXNz
ZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KLQotb3B0X2RyeV9ydW49ZmFsc2UKLW9wdF9xdWlldD1m
YWxzZQotb3B0X3ZlcmJvc2U9ZmFsc2UKLQotIyBDYXRlZ29yaWVzICdhbGwnIGFuZCAnbm9uZScg
YXJlIGFsd2F5cyBhdmFpbGFibGUuICBBcHBlbmQgYW55IG90aGVycwotIyB5b3Ugd2lsbCBwYXNz
IGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBmdW5jX3dhcm5pbmcgZnJvbSB5b3VyIG93bgotIyBj
b2RlLgotd2FybmluZ19jYXRlZ29yaWVzPQotCi0jIEJ5IGRlZmF1bHQsIGRpc3BsYXkgd2Fybmlu
Z3MgYWNjb3JkaW5nIHRvICdvcHRfd2FybmluZ190eXBlcycuICBTZXQKLSMgJ3dhcm5pbmdfZnVu
YycgIHRvICc6JyB0byBlbGlkZSBhbGwgd2FybmluZ3MsIG9yIGZ1bmNfZmF0YWxfZXJyb3IgdG8K
LSMgdHJlYXQgdGhlIG5leHQgZGlzcGxheWVkIHdhcm5pbmcgYXMgYSBmYXRhbCBlcnJvci4KLXdh
cm5pbmdfZnVuYz1mdW5jX3dhcm5fYW5kX2NvbnRpbnVlCi0KLSMgU2V0IHRvICdhbGwnIHRvIGRp
c3BsYXkgYWxsIHdhcm5pbmdzLCAnbm9uZScgdG8gc3VwcHJlc3MgYWxsCi0jIHdhcm5pbmdzLCBv
ciBhIHNwYWNlIGRlbGltaXRlZCBsaXN0IG9mIHNvbWUgc3Vic2V0IG9mCi0jICd3YXJuaW5nX2Nh
dGVnb3JpZXMnIHRvIGRpc3BsYXkgb25seSB0aGUgbGlzdGVkIHdhcm5pbmdzLgotb3B0X3dhcm5p
bmdfdHlwZXM9YWxsCi0KLQotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSMjIFJlc291cmNl
IG1hbmFnZW1lbnQuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotCi0jIFRoaXMgc2Vj
dGlvbiBjb250YWlucyBkZWZpbml0aW9ucyBmb3IgZnVuY3Rpb25zIHRoYXQgZWFjaCBlbnN1cmUg
YQotIyBwYXJ0aWN1bGFyIHJlc291cmNlIChhIGZpbGUsIG9yIGEgbm9uLWVtcHR5IGNvbmZpZ3Vy
YXRpb24gdmFyaWFibGUgZm9yCi0jIGV4YW1wbGUpIGlzIGF2YWlsYWJsZSwgYW5kIGlmIGFwcHJv
cHJpYXRlIHRvIGV4dHJhY3QgZGVmYXVsdCB2YWx1ZXMKLSMgZnJvbSBwZXJ0aW5lbnQgcGFja2Fn
ZSBmaWxlcy4gQ2FsbCB0aGVtIHVzaW5nIHRoZWlyIGFzc29jaWF0ZWQKLSMgJ3JlcXVpcmVfKicg
dmFyaWFibGUgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgZXhlY3V0ZWQsIGF0IG1vc3QsIG9uY2Uu
Ci0jCi0jIEl0J3MgZW50aXJlbHkgZGVsaWJlcmF0ZSB0aGF0IGNhbGxpbmcgdGhlc2UgZnVuY3Rp
b25zIGNhbiBzZXQKLSMgdmFyaWFibGVzIHRoYXQgZG9uJ3Qgb2JleSB0aGUgbmFtZXNwYWNlIGxp
bWl0YXRpb25zIG9iZXllZCBieSB0aGUgcmVzdAotIyBvZiB0aGlzIGZpbGUsIGluIG9yZGVyIHRo
YXQgdGhhdCB0aGV5IGJlIGFzIHVzZWZ1bCBhcyBwb3NzaWJsZSB0bwotIyBjYWxsZXJzLgotCi0K
LSMgcmVxdWlyZV90ZXJtX2NvbG9ycwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEFsbG93IGRp
c3BsYXkgb2YgYm9sZCB0ZXh0IG9uIHRlcm1pbmFscyB0aGF0IHN1cHBvcnQgaXQuCi1yZXF1aXJl
X3Rlcm1fY29sb3JzPWZ1bmNfcmVxdWlyZV90ZXJtX2NvbG9ycwotZnVuY19yZXF1aXJlX3Rlcm1f
Y29sb3JzICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgdGVzdCAtdCAxICYmIHsKLSAgICAg
ICMgQ09MT1JURVJNIGFuZCBVU0VfQU5TSV9DT0xPUlMgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRh
a2UKLSAgICAgICMgcHJlY2VkZW5jZSwgYmVjYXVzZSBtb3N0IHRlcm1pbmZvIGRhdGFiYXNlcyBu
ZWdsZWN0IHRvIGRlc2NyaWJlCi0gICAgICAjIHdoZXRoZXIgY29sb3Igc2VxdWVuY2VzIGFyZSBz
dXBwb3J0ZWQuCi0gICAgICB0ZXN0IC1uICIke0NPTE9SVEVSTStzZXR9IiAmJiA6ICR7VVNFX0FO
U0lfQ09MT1JTPSIxIn0KLQotICAgICAgaWYgdGVzdCAxID0gIiRVU0VfQU5TSV9DT0xPUlMiOyB0
aGVuCi0gICAgICAgICMgU3RhbmRhcmQgQU5TSSBlc2NhcGUgc2VxdWVuY2VzCi0gICAgICAgIHRj
X3Jlc2V0PScbWzBtJwotICAgICAgICB0Y19ib2xkPScbWzFtJzsgICB0Y19zdGFuZG91dD0nG1s3
bScKLSAgICAgICAgdGNfcmVkPScbWzMxbSc7ICAgdGNfZ3JlZW49JxtbMzJtJwotICAgICAgICB0
Y19ibHVlPScbWzM0bSc7ICB0Y19jeWFuPScbWzM2bScKLSAgICAgIGVsc2UKLSAgICAgICAgIyBP
dGhlcndpc2UgdHJ1c3QgdGhlIHRlcm1pbmZvIGRhdGFiYXNlIGFmdGVyIGFsbC4KLSAgICAgICAg
dGVzdCAtbiAiYHRwdXQgc2dyMCAyPi9kZXYvbnVsbGAiICYmIHsKLSAgICAgICAgICB0Y19yZXNl
dD1gdHB1dCBzZ3IwYAotICAgICAgICAgIHRlc3QgLW4gImB0cHV0IGJvbGQgMj4vZGV2L251bGxg
IiAmJiB0Y19ib2xkPWB0cHV0IGJvbGRgCi0gICAgICAgICAgdGNfc3RhbmRvdXQ9JHRjX2JvbGQK
LSAgICAgICAgICB0ZXN0IC1uICJgdHB1dCBzbXNvIDI+L2Rldi9udWxsYCIgJiYgdGNfc3RhbmRv
dXQ9YHRwdXQgc21zb2AKLSAgICAgICAgICB0ZXN0IC1uICJgdHB1dCBzZXRhZiAxIDI+L2Rldi9u
dWxsYCIgJiYgdGNfcmVkPWB0cHV0IHNldGFmIDFgCi0gICAgICAgICAgdGVzdCAtbiAiYHRwdXQg
c2V0YWYgMiAyPi9kZXYvbnVsbGAiICYmIHRjX2dyZWVuPWB0cHV0IHNldGFmIDJgCi0gICAgICAg
ICAgdGVzdCAtbiAiYHRwdXQgc2V0YWYgNCAyPi9kZXYvbnVsbGAiICYmIHRjX2JsdWU9YHRwdXQg
c2V0YWYgNGAKLSAgICAgICAgICB0ZXN0IC1uICJgdHB1dCBzZXRhZiA1IDI+L2Rldi9udWxsYCIg
JiYgdGNfY3lhbj1gdHB1dCBzZXRhZiA1YAotICAgICAgICB9Ci0gICAgICBmaQotICAgIH0KLQot
ICAgIHJlcXVpcmVfdGVybV9jb2xvcnM9OgotfQotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tICMj
Ci0jIyBGdW5jdGlvbiBsaWJyYXJ5LiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBU
aGlzIHNlY3Rpb24gY29udGFpbnMgYSB2YXJpZXR5IG9mIHVzZWZ1bCBmdW5jdGlvbnMgdG8gY2Fs
bCBpbiB5b3VyCi0jIHNjcmlwdHMuIFRha2Ugbm90ZSBvZiB0aGUgcG9ydGFibGUgd3JhcHBlcnMg
Zm9yIGZlYXR1cmVzIHByb3ZpZGVkIGJ5Ci0jIHNvbWUgbW9kZXJuIHNoZWxscywgd2hpY2ggd2ls
bCBmYWxsIGJhY2sgdG8gc2xvd2VyIGVxdWl2YWxlbnRzIG9uCi0jIGxlc3MgZmVhdHVyZWZ1bCBz
aGVsbHMuCi0KLQotIyBmdW5jX2FwcGVuZCBWQVIgVkFMVUUKLSMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0jIEFwcGVuZCBWQUxVRSBvbnRvIHRoZSBleGlzdGluZyBjb250ZW50cyBvZiBWQVIuCi0K
LSAgIyBXZSBzaG91bGQgdHJ5IHRvIG1pbmltaXNlIGZvcmtzLCBlc3BlY2lhbGx5IG9uIFdpbmRv
d3Mgd2hlcmUgdGhleSBhcmUKLSAgIyB1bnJlYXNvbmFibHkgc2xvdywgc28gc2tpcCB0aGUgZmVh
dHVyZSBwcm9iZXMgd2hlbiBiYXNoIG9yIHpzaCBhcmUKLSAgIyBiZWluZyB1c2VkOgotICBpZiB0
ZXN0IHNldCA9ICIke0JBU0hfVkVSU0lPTitzZXR9JHtaU0hfVkVSU0lPTitzZXR9IjsgdGhlbgot
ICAgIDogJHtfR19IQVZFX0FSSVRIX09QPSJ5ZXMifQotICAgIDogJHtfR19IQVZFX1hTSV9PUFM9
InllcyJ9Ci0gICAgIyBUaGUgKz0gb3BlcmF0b3Igd2FzIGludHJvZHVjZWQgaW4gYmFzaCAzLjEK
LSAgICBjYXNlICRCQVNIX1ZFUlNJT04gaW4KLSAgICAgIFsxMl0uKiB8IDMuMCB8IDMuMCopIDs7
Ci0gICAgICAqKQotICAgICAgICA6ICR7X0dfSEFWRV9QTFVTRVFfT1A9InllcyJ9Ci0gICAgICAg
IDs7Ci0gICAgZXNhYwotICBmaQotCi0gICMgX0dfSEFWRV9QTFVTRVFfT1AKLSAgIyBDYW4gYmUg
ZW1wdHksIGluIHdoaWNoIGNhc2UgdGhlIHNoZWxsIGlzIHByb2JlZCwgInllcyIgaWYgKz0gaXMK
LSAgIyB1c2VhYmxlIG9yIGFueXRoaW5nIGVsc2UgaWYgaXQgZG9lcyBub3Qgd29yay4KLSAgdGVz
dCAteiAiJF9HX0hBVkVfUExVU0VRX09QIiBcCi0gICAgJiYgKGV2YWwgJ3g9YTsgeCs9IiBiIjsg
dGVzdCAiYSBiIiA9ICIkeCInKSAyPi9kZXYvbnVsbCBcCi0gICAgJiYgX0dfSEFWRV9QTFVTRVFf
T1A9eWVzCi0KLWlmIHRlc3QgeWVzID0gIiRfR19IQVZFX1BMVVNFUV9PUCIKLXRoZW4KLSAgIyBU
aGlzIGlzIGFuIFhTSSBjb21wYXRpYmxlIHNoZWxsLCBhbGxvd2luZyBhIGZhc3RlciBpbXBsZW1l
bnRhdGlvbi4uLgotICBldmFsICdmdW5jX2FwcGVuZCAoKQotICB7Ci0gICAgJGRlYnVnX2NtZAot
Ci0gICAgZXZhbCAiJDErPVwkMiIKLSAgfScKLWVsc2UKLSAgIyAuLi5vdGhlcndpc2UgZmFsbCBi
YWNrIHRvIHVzaW5nIGV4cHIsIHdoaWNoIGlzIG9mdGVuIGEgc2hlbGwgYnVpbHRpbi4KLSAgZnVu
Y19hcHBlbmQgKCkKLSAgewotICAgICRkZWJ1Z19jbWQKLQotICAgIGV2YWwgIiQxPVwkJDFcJDIi
Ci0gIH0KLWZpCi0KLQotIyBmdW5jX2FwcGVuZF9xdW90ZWQgVkFSIFZBTFVFCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUXVvdGUgVkFMVUUgYW5kIGFwcGVuZCB0byB0aGUgZW5k
IG9mIHNoZWxsIHZhcmlhYmxlIFZBUiwgc2VwYXJhdGVkCi0jIGJ5IGEgc3BhY2UuCi1pZiB0ZXN0
IHllcyA9ICIkX0dfSEFWRV9QTFVTRVFfT1AiOyB0aGVuCi0gIGV2YWwgJ2Z1bmNfYXBwZW5kX3F1
b3RlZCAoKQotICB7Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgZnVuY19xdW90ZV9hcmcgcHJldHR5
ICIkMiIKLSAgICBldmFsICIkMSs9XFwgXCRmdW5jX3F1b3RlX2FyZ19yZXN1bHQiCi0gIH0nCi1l
bHNlCi0gIGZ1bmNfYXBwZW5kX3F1b3RlZCAoKQotICB7Ci0gICAgJGRlYnVnX2NtZAotCi0gICAg
ZnVuY19xdW90ZV9hcmcgcHJldHR5ICIkMiIKLSAgICBldmFsICIkMT1cJCQxXFwgXCRmdW5jX3F1
b3RlX2FyZ19yZXN1bHQiCi0gIH0KLWZpCi0KLQotIyBmdW5jX2FwcGVuZF91bmlxIFZBUiBWQUxV
RQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBBcHBlbmQgdW5pcXVlIFZBTFVFIG9u
dG8gdGhlIGV4aXN0aW5nIGNvbnRlbnRzIG9mIFZBUiwgYXNzdW1pbmcKLSMgZW50cmllcyBhcmUg
ZGVsaW1pdGVkIGJ5IHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgVkFMVUUuICBGb3IgZXhhbXBsZToK
LSMKLSMgICBmdW5jX2FwcGVuZF91bmlxIG9wdGlvbnMgIiAtLWFub3RoZXItb3B0aW9uIG9wdGlv
bi1hcmd1bWVudCIKLSMKLSMgd2lsbCBvbmx5IGFwcGVuZCB0byAkb3B0aW9ucyBpZiAiIC0tYW5v
dGhlci1vcHRpb24gb3B0aW9uLWFyZ3VtZW50ICIKLSMgaXMgbm90IGFscmVhZHkgcHJlc2VudCBz
b21ld2hlcmUgaW4gJG9wdGlvbnMgYWxyZWFkeSAobm90ZSBzcGFjZXMgYXQKLSMgZWFjaCBlbmQg
aW1wbGllZCBieSBsZWFkaW5nIHNwYWNlIGluIHNlY29uZCBhcmd1bWVudCkuCi1mdW5jX2FwcGVu
ZF91bmlxICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgZXZhbCBfR19jdXJyZW50X3ZhbHVl
PSdgJEVDSE8gJCckMSdgJwotICAgIF9HX2RlbGltPWBleHByICIkMiIgOiAnXCguXCknYAotCi0g
ICAgY2FzZSAkX0dfZGVsaW0kX0dfY3VycmVudF92YWx1ZSRfR19kZWxpbSBpbgotICAgICAgKiIk
MiRfR19kZWxpbSIqKSA7OwotICAgICAgKikgZnVuY19hcHBlbmQgIiRAIiA7OwotICAgIGVzYWMK
LX0KLQotCi0jIGZ1bmNfYXJpdGggVEVSTS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2V0
IGZ1bmNfYXJpdGhfcmVzdWx0IHRvIHRoZSByZXN1bHQgb2YgZXZhbHVhdGluZyBURVJNcy4KLSAg
dGVzdCAteiAiJF9HX0hBVkVfQVJJVEhfT1AiIFwKLSAgICAmJiAoZXZhbCAndGVzdCAyID0gJCgo
IDEgKyAxICkpJykgMj4vZGV2L251bGwgXAotICAgICYmIF9HX0hBVkVfQVJJVEhfT1A9eWVzCi0K
LWlmIHRlc3QgeWVzID0gIiRfR19IQVZFX0FSSVRIX09QIjsgdGhlbgotICBldmFsICdmdW5jX2Fy
aXRoICgpCi0gIHsKLSAgICAkZGVidWdfY21kCi0KLSAgICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCgg
JCogKSkKLSAgfScKLWVsc2UKLSAgZnVuY19hcml0aCAoKQotICB7Ci0gICAgJGRlYnVnX2NtZAot
Ci0gICAgZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRAImAKLSAgfQotZmkKLQotCi0jIGZ1bmNf
YmFzZW5hbWUgRklMRQotIyAtLS0tLS0tLS0tLS0tLS0tLS0KLSMgU2V0IGZ1bmNfYmFzZW5hbWVf
cmVzdWx0IHRvIEZJTEUgd2l0aCBldmVyeXRoaW5nIHVwIHRvIGFuZCBpbmNsdWRpbmcKLSMgdGhl
IGxhc3QgLyBzdHJpcHBlZC4KLWlmIHRlc3QgeWVzID0gIiRfR19IQVZFX1hTSV9PUFMiOyB0aGVu
Ci0gICMgSWYgdGhpcyBzaGVsbCBzdXBwb3J0cyBzdWZmaXggcGF0dGVybiByZW1vdmFsLCB0aGVu
IHVzZSBpdCB0byBhdm9pZAotICAjIGZvcmtpbmcuIEhpZGUgdGhlIGRlZmluaXRpb25zIHNpbmds
ZSBxdW90ZXMgaW4gY2FzZSB0aGUgc2hlbGwgY2hva2VzCi0gICMgb24gdW5zdXBwb3J0ZWQgc3lu
dGF4Li4uCi0gIF9iPSdmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0kezEjIyovfScKLSAgX2Q9J2Nhc2Ug
JDEgaW4KLSAgICAgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSR7MSUvKn0kMiA7OwotICAg
ICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9JDMgICAgICAgIDs7Ci0gICAgICBlc2FjJwot
Ci1lbHNlCi0gICMgLi4ub3RoZXJ3aXNlIGZhbGwgYmFjayB0byB1c2luZyBzZWQuCi0gIF9iPSdm
dW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIiQxIiB8JFNFRCAiJHNlZF9iYXNlbmFtZSJgJwot
ICBfZD0nZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIiQxIiAgfCRTRUQgIiRzZWRfZGlybmFt
ZSJgCi0gICAgICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkMSI7IHRoZW4K
LSAgICAgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0kMwotICAgICAgZWxzZQotICAgICAgICBmdW5j
X2FwcGVuZCBmdW5jX2Rpcm5hbWVfcmVzdWx0ICIkMiIKLSAgICAgIGZpJwotZmkKLQotZXZhbCAn
ZnVuY19iYXNlbmFtZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICciJF9iIicKLX0nCi0K
LQotIyBmdW5jX2Rpcm5hbWUgRklMRSBBUFBFTkQgTk9ORElSX1JFUExBQ0VNRU5UCi0jIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQ29tcHV0ZSB0aGUgZGly
bmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKLSMg
b3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotZXZhbCAnZnVuY19k
aXJuYW1lICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJyIkX2QiJwotfScKLQotCi0jIGZ1
bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgRklMRSBBUFBFTkQgTk9ORElSX1JFUExBQ0VNRU5UCi0j
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0jIFBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1
bmN0aW9uCi0jIGNhbGw6Ci0jICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklM
RS4gIElmIG5vbmVtcHR5LAotIyAgICAgICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQs
IG90aGVyd2lzZSBzZXQgcmVzdWx0Ci0jICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVO
VC4KLSMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0
IgotIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCi0jICAgICAgICAgICAg
IHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSMgRm9yIGVmZmljaWVu
Y3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0byB0aGUgZnVuY3Rpb25zIGFib3ZlIGJ1dCBpbnN0ZWFk
Ci0jIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgotZXZhbCAnZnVuY19kaXJuYW1l
X2FuZF9iYXNlbmFtZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgICciJF9iIicKLSAgICAn
IiRfZCInCi19JwotCi0KLSMgZnVuY19lY2hvIEFSRy4uLgotIyAtLS0tLS0tLS0tLS0tLS0tCi0j
IEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UuCi1mdW5jX2VjaG8gKCkKLXsKLSAg
ICAkZGVidWdfY21kCi0KLSAgICBfR19tZXNzYWdlPSQqCi0KLSAgICBmdW5jX2VjaG9fSUZTPSRJ
RlMKLSAgICBJRlM9JG5sCi0gICAgZm9yIF9HX2xpbmUgaW4gJF9HX21lc3NhZ2U7IGRvCi0gICAg
ICBJRlM9JGZ1bmNfZWNob19JRlMKLSAgICAgICRFQ0hPICIkcHJvZ25hbWU6ICRfR19saW5lIgot
ICAgIGRvbmUKLSAgICBJRlM9JGZ1bmNfZWNob19JRlMKLX0KLQotCi0jIGZ1bmNfZWNob19hbGwg
QVJHLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEludm9rZSAkRUNITyB3aXRoIGFsbCBh
cmdzLCBzcGFjZS1zZXBhcmF0ZWQuCi1mdW5jX2VjaG9fYWxsICgpCi17Ci0gICAgJEVDSE8gIiQq
IgotfQotCi0KLSMgZnVuY19lY2hvX2luZml4XzEgSU5GSVggQVJHLi4uCi0jIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFY2hvIHByb2dyYW0gbmFtZSwgZm9sbG93ZWQgYnkgSU5G
SVggb24gdGhlIGZpcnN0IGxpbmUsIHdpdGggYW55Ci0jIGFkZGl0aW9uYWwgbGluZXMgbm90IHNo
b3dpbmcgSU5GSVguCi1mdW5jX2VjaG9faW5maXhfMSAoKQotewotICAgICRkZWJ1Z19jbWQKLQot
ICAgICRyZXF1aXJlX3Rlcm1fY29sb3JzCi0KLSAgICBfR19pbmZpeD0kMTsgc2hpZnQKLSAgICBf
R19pbmRlbnQ9JF9HX2luZml4Ci0gICAgX0dfcHJlZml4PSIkcHJvZ25hbWU6ICRfR19pbmZpeDog
IgotICAgIF9HX21lc3NhZ2U9JCoKLQotICAgICMgU3RyaXAgY29sb3IgZXNjYXBlIHNlcXVlbmNl
cyBiZWZvcmUgY291bnRpbmcgcHJpbnRhYmxlIGxlbmd0aAotICAgIGZvciBfR190YyBpbiAiJHRj
X3Jlc2V0IiAiJHRjX2JvbGQiICIkdGNfc3RhbmRvdXQiICIkdGNfcmVkIiAiJHRjX2dyZWVuIiAi
JHRjX2JsdWUiICIkdGNfY3lhbiIKLSAgICBkbwotICAgICAgdGVzdCAtbiAiJF9HX3RjIiAmJiB7
Ci0gICAgICAgIF9HX2VzY190Yz1gJEVDSE8gIiRfR190YyIgfCAkU0VEICIkc2VkX21ha2VfbGl0
ZXJhbF9yZWdleCJgCi0gICAgICAgIF9HX2luZGVudD1gJEVDSE8gIiRfR19pbmRlbnQiIHwgJFNF
RCAic3wkX0dfZXNjX3RjfHxnImAKLSAgICAgIH0KLSAgICBkb25lCi0gICAgX0dfaW5kZW50PSIk
cHJvZ25hbWU6ICJgZWNobyAiJF9HX2luZGVudCIgfCAkU0VEICdzfC58IHxnJ2AiICAiICMjIGV4
Y2x1ZGUgZnJvbSBzY19wcm9oaWJpdF9uZXN0ZWRfcXVvdGVzCi0KLSAgICBmdW5jX2VjaG9faW5m
aXhfMV9JRlM9JElGUwotICAgIElGUz0kbmwKLSAgICBmb3IgX0dfbGluZSBpbiAkX0dfbWVzc2Fn
ZTsgZG8KLSAgICAgIElGUz0kZnVuY19lY2hvX2luZml4XzFfSUZTCi0gICAgICAkRUNITyAiJF9H
X3ByZWZpeCR0Y19ib2xkJF9HX2xpbmUkdGNfcmVzZXQiID4mMgotICAgICAgX0dfcHJlZml4PSRf
R19pbmRlbnQKLSAgICBkb25lCi0gICAgSUZTPSRmdW5jX2VjaG9faW5maXhfMV9JRlMKLX0KLQot
Ci0jIGZ1bmNfZXJyb3IgQVJHLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tCi0jIEVjaG8gcHJvZ3Jh
bSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCi1mdW5jX2Vycm9yICgp
Ci17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfdGVybV9jb2xvcnMKLQotICAgIGZ1
bmNfZWNob19pbmZpeF8xICIgICR0Y19zdGFuZG91dCR7dGNfcmVkfWVycm9yJHRjX3Jlc2V0IiAi
JCoiID4mMgotfQotCi0KLSMgZnVuY19mYXRhbF9lcnJvciBBUkcuLi4KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSMgRWNobyBwcm9ncmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSB0byBzdGFu
ZGFyZCBlcnJvciwgYW5kIGV4aXQuCi1mdW5jX2ZhdGFsX2Vycm9yICgpCi17Ci0gICAgJGRlYnVn
X2NtZAotCi0gICAgZnVuY19lcnJvciAiJCoiCi0gICAgZXhpdCAkRVhJVF9GQUlMVVJFCi19Ci0K
LQotIyBmdW5jX2dyZXAgRVhQUkVTU0lPTiBGSUxFTkFNRQotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotIyBDaGVjayB3aGV0aGVyIEVYUFJFU1NJT04gbWF0Y2hlcyBhbnkgbGluZSBv
ZiBGSUxFTkFNRSwgd2l0aG91dCBvdXRwdXQuCi1mdW5jX2dyZXAgKCkKLXsKLSAgICAkZGVidWdf
Y21kCi0KLSAgICAkR1JFUCAiJDEiICIkMiIgPi9kZXYvbnVsbCAyPiYxCi19Ci0KLQotIyBmdW5j
X2xlbiBTVFJJTkcKLSMgLS0tLS0tLS0tLS0tLS0tCi0jIFNldCBmdW5jX2xlbl9yZXN1bHQgdG8g
dGhlIGxlbmd0aCBvZiBTVFJJTkcuIFNUUklORyBtYXkgbm90Ci0jIHN0YXJ0IHdpdGggYSBoeXBo
ZW4uCi0gIHRlc3QgLXogIiRfR19IQVZFX1hTSV9PUFMiIFwKLSAgICAmJiAoZXZhbCAneD1hL2Iv
YzsKLSAgICAgIHRlc3QgNWFhL2JiL2NjID0gIiR7I3h9JHt4JSUvKn0ke3glLyp9JHt4IyovfSR7
eCMjKi99IicpIDI+L2Rldi9udWxsIFwKLSAgICAmJiBfR19IQVZFX1hTSV9PUFM9eWVzCi0KLWlm
IHRlc3QgeWVzID0gIiRfR19IQVZFX1hTSV9PUFMiOyB0aGVuCi0gIGV2YWwgJ2Z1bmNfbGVuICgp
Ci0gIHsKLSAgICAkZGVidWdfY21kCi0KLSAgICBmdW5jX2xlbl9yZXN1bHQ9JHsjMX0KLSAgfScK
LWVsc2UKLSAgZnVuY19sZW4gKCkKLSAgewotICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1bmNfbGVu
X3Jlc3VsdD1gZXhwciAiJDEiIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xl
bmAKLSAgfQotZmkKLQotCi0jIGZ1bmNfbWtkaXJfcCBESVJFQ1RPUlktUEFUSAotIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgTWFrZSBzdXJlIHRoZSBlbnRpcmUgcGF0aCB0byBESVJF
Q1RPUlktUEFUSCBpcyBhdmFpbGFibGUuCi1mdW5jX21rZGlyX3AgKCkKLXsKLSAgICAkZGVidWdf
Y21kCi0KLSAgICBfR19kaXJlY3RvcnlfcGF0aD0kMQotICAgIF9HX2Rpcl9saXN0PQotCi0gICAg
aWYgdGVzdCAtbiAiJF9HX2RpcmVjdG9yeV9wYXRoIiAmJiB0ZXN0IDogIT0gIiRvcHRfZHJ5X3J1
biI7IHRoZW4KLQotICAgICAgIyBQcm90ZWN0IGRpcmVjdG9yeSBuYW1lcyBzdGFydGluZyB3aXRo
ICctJwotICAgICAgY2FzZSAkX0dfZGlyZWN0b3J5X3BhdGggaW4KLSAgICAgICAgLSopIF9HX2Rp
cmVjdG9yeV9wYXRoPS4vJF9HX2RpcmVjdG9yeV9wYXRoIDs7Ci0gICAgICBlc2FjCi0KLSAgICAg
ICMgV2hpbGUgc29tZSBwb3J0aW9uIG9mIERJUiBkb2VzIG5vdCB5ZXQgZXhpc3QuLi4KLSAgICAg
IHdoaWxlIHRlc3QgISAtZCAiJF9HX2RpcmVjdG9yeV9wYXRoIjsgZG8KLSAgICAgICAgIyAuLi5t
YWtlIGEgbGlzdCBpbiB0b3Btb3N0IGZpcnN0IG9yZGVyLiAgVXNlIGEgY29sb24gZGVsaW1pdGVk
Ci0JIyBsaXN0IGluY2FzZSBzb21lIHBvcnRpb24gb2YgcGF0aCBjb250YWlucyB3aGl0ZXNwYWNl
LgotICAgICAgICBfR19kaXJfbGlzdD0kX0dfZGlyZWN0b3J5X3BhdGg6JF9HX2Rpcl9saXN0Ci0K
LSAgICAgICAgIyBJZiB0aGUgbGFzdCBwb3J0aW9uIGFkZGVkIGhhcyBubyBzbGFzaCBpbiBpdCwg
dGhlIGxpc3QgaXMgZG9uZQotICAgICAgICBjYXNlICRfR19kaXJlY3RvcnlfcGF0aCBpbiAqLyop
IDs7ICopIGJyZWFrIDs7IGVzYWMKLQotICAgICAgICAjIC4uLm90aGVyd2lzZSB0aHJvdyBhd2F5
IHRoZSBjaGlsZCBkaXJlY3RvcnkgYW5kIGxvb3AKLSAgICAgICAgX0dfZGlyZWN0b3J5X3BhdGg9
YCRFQ0hPICIkX0dfZGlyZWN0b3J5X3BhdGgiIHwgJFNFRCAtZSAiJHNlZF9kaXJuYW1lImAKLSAg
ICAgIGRvbmUKLSAgICAgIF9HX2Rpcl9saXN0PWAkRUNITyAiJF9HX2Rpcl9saXN0IiB8ICRTRUQg
J3N8OiokfHwnYAotCi0gICAgICBmdW5jX21rZGlyX3BfSUZTPSRJRlM7IElGUz06Ci0gICAgICBm
b3IgX0dfZGlyIGluICRfR19kaXJfbGlzdDsgZG8KLQlJRlM9JGZ1bmNfbWtkaXJfcF9JRlMKLSAg
ICAgICAgIyBta2RpciBjYW4gZmFpbCB3aXRoIGEgJ0ZpbGUgZXhpc3QnIGVycm9yIGlmIHR3byBw
cm9jZXNzZXMKLSAgICAgICAgIyB0cnkgdG8gY3JlYXRlIG9uZSBvZiB0aGUgZGlyZWN0b3JpZXMg
Y29uY3VycmVudGx5LiAgRG9uJ3QKLSAgICAgICAgIyBzdG9wIGluIHRoYXQgY2FzZSEKLSAgICAg
ICAgJE1LRElSICIkX0dfZGlyIiAyPi9kZXYvbnVsbCB8fCA6Ci0gICAgICBkb25lCi0gICAgICBJ
RlM9JGZ1bmNfbWtkaXJfcF9JRlMKLQotICAgICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBv
dGhlciBwcm9jZXNzKSBmYWlsZWQgdG8gY3JlYXRlIGEgZGlyZWN0b3J5LgotICAgICAgdGVzdCAt
ZCAiJF9HX2RpcmVjdG9yeV9wYXRoIiB8fCBcCi0gICAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIkZh
aWxlZCB0byBjcmVhdGUgJyQxJyIKLSAgICBmaQotfQotCi0KLSMgZnVuY19ta3RlbXBkaXIgW0JB
U0VOQU1FXQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIE1ha2UgYSB0ZW1wb3Jhcnkg
ZGlyZWN0b3J5IHRoYXQgd29uJ3QgY2xhc2ggd2l0aCBvdGhlciBydW5uaW5nCi0jIGxpYnRvb2wg
cHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBpZiBwb3NzaWJsZS4gIElmCi0j
IGdpdmVuLCBCQVNFTkFNRSBpcyB0aGUgYmFzZW5hbWUgZm9yIHRoYXQgZGlyZWN0b3J5LgotZnVu
Y19ta3RlbXBkaXIgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBfR190ZW1wbGF0ZT0ke1RN
UERJUi0vdG1wfS8kezEtJHByb2duYW1lfQotCi0gICAgaWYgdGVzdCA6ID0gIiRvcHRfZHJ5X3J1
biI7IHRoZW4KLSAgICAgICMgUmV0dXJuIGEgZGlyZWN0b3J5IG5hbWUsIGJ1dCBkb24ndCBjcmVh
dGUgaXQgaW4gZHJ5LXJ1biBtb2RlCi0gICAgICBfR190bXBkaXI9JF9HX3RlbXBsYXRlLSQkCi0g
ICAgZWxzZQotCi0gICAgICAjIElmIG1rdGVtcCB3b3JrcywgdXNlIHRoYXQgZmlyc3QgYW5kIGZv
cmVtb3N0Ci0gICAgICBfR190bXBkaXI9YG1rdGVtcCAtZCAiJF9HX3RlbXBsYXRlLVhYWFhYWFhY
IiAyPi9kZXYvbnVsbGAKLQotICAgICAgaWYgdGVzdCAhIC1kICIkX0dfdG1wZGlyIjsgdGhlbgot
ICAgICAgICAjIEZhaWxpbmcgdGhhdCwgYXQgbGVhc3QgdHJ5IGFuZCB1c2UgJFJBTkRPTSB0byBh
dm9pZCBhIHJhY2UKLSAgICAgICAgX0dfdG1wZGlyPSRfR190ZW1wbGF0ZS0ke1JBTkRPTS0wfSQk
Ci0KLSAgICAgICAgZnVuY19ta3RlbXBkaXJfdW1hc2s9YHVtYXNrYAotICAgICAgICB1bWFzayAw
MDc3Ci0gICAgICAgICRNS0RJUiAiJF9HX3RtcGRpciIKLSAgICAgICAgdW1hc2sgJGZ1bmNfbWt0
ZW1wZGlyX3VtYXNrCi0gICAgICBmaQotCi0gICAgICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVu
IG1vZGUsIGJvbWIgb3V0IG9uIGZhaWx1cmUKLSAgICAgIHRlc3QgLWQgIiRfR190bXBkaXIiIHx8
IFwKLSAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZGly
ZWN0b3J5ICckX0dfdG1wZGlyJyIKLSAgICBmaQotCi0gICAgJEVDSE8gIiRfR190bXBkaXIiCi19
Ci0KLQotIyBmdW5jX25vcm1hbF9hYnNwYXRoIFBBVEgKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0jIFJlbW92ZSBkb3VibGVkLXVwIGFuZCB0cmFpbGluZyBzbGFzaGVzLCAiLiIgcGF0aCBj
b21wb25lbnRzLAotIyBhbmQgY2FuY2VsIG91dCBhbnkgIi4uIiBwYXRoIGNvbXBvbmVudHMgaW4g
UEFUSCBhZnRlciBtYWtpbmcKLSMgaXQgYW4gYWJzb2x1dGUgcGF0aC4KLWZ1bmNfbm9ybWFsX2Fi
c3BhdGggKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICAjIFRoZXNlIFNFRCBzY3JpcHRzIHBy
ZXN1cHBvc2UgYW4gYWJzb2x1dGUgcGF0aCB3aXRoIGEgdHJhaWxpbmcgc2xhc2guCi0gICAgX0df
cGF0aGNhcj0nc3xeL1woW14vXSpcKS4qJHxcMXwnCi0gICAgX0dfcGF0aGNkcj0nc3xeL1teL10q
fHwnCi0gICAgX0dfcmVtb3ZlZG90cGFydHM9Jzpkb3RzbAotCQlzfC9cLi98L3xnCi0JCXQgZG90
c2wKLQkJc3wvXC4kfC98JwotICAgIF9HX2NvbGxhcHNlc2xhc2hlcz0nc3wvXHsxLFx9fC98ZycK
LSAgICBfR19maW5hbHNsYXNoPSdzfC8qJHwvfCcKLQotICAgICMgU3RhcnQgZnJvbSByb290IGRp
ciBhbmQgcmVhc3NlbWJsZSB0aGUgcGF0aC4KLSAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3Vs
dD0KLSAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoPSQxCi0gICAgZnVuY19ub3JtYWxfYWJz
cGF0aF9hbHRuYW1lc3BhY2U9Ci0gICAgY2FzZSAkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCBp
bgotICAgICAgIiIpCi0gICAgICAgICMgRW1wdHkgcGF0aCwgdGhhdCBqdXN0IG1lYW5zICRjd2Qu
Ci0gICAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcvJyAiYHB3ZGAiCi0gICAgICAgIGZ1bmNfbm9y
bWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSAgICAgICAgcmV0dXJu
Ci0gICAgICAgIDs7Ci0gICAgICAjIFRoZSBuZXh0IHRocmVlIGVudHJpZXMgYXJlIHVzZWQgdG8g
c3BvdCBhIHJ1biBvZiBwcmVjaXNlbHkKLSAgICAgICMgdHdvIGxlYWRpbmcgc2xhc2hlcyB3aXRo
b3V0IHVzaW5nIG5lZ2F0ZWQgY2hhcmFjdGVyIGNsYXNzZXM7Ci0gICAgICAjIHdlIHRha2UgYWR2
YW50YWdlIG9mIGNhc2UncyBmaXJzdC1tYXRjaCBiZWhhdmlvdXIuCi0gICAgICAvLy8qKQotICAg
ICAgICAjIFVudXN1YWwgZm9ybSBvZiBhYnNvbHV0ZSBwYXRoLCBkbyBub3RoaW5nLgotICAgICAg
ICA7OwotICAgICAgLy8qKQotICAgICAgICAjIE5vdCBuZWNlc3NhcmlseSBhbiBvcmRpbmFyeSBw
YXRoOyBQT1NJWCByZXNlcnZlcyBsZWFkaW5nICcvLycKLSAgICAgICAgIyBhbmQgZm9yIGV4YW1w
bGUgQ3lnd2luIHVzZXMgaXQgdG8gYWNjZXNzIHJlbW90ZSBmaWxlIHNoYXJlcwotICAgICAgICAj
IG92ZXIgQ0lGUy9TTUIsIHNvIHdlIGNvbnNlcnZlIGEgbGVhZGluZyBkb3VibGUgc2xhc2ggaWYg
Zm91bmQuCi0gICAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNlPS8KLSAgICAg
ICAgOzsKLSAgICAgIC8qKQotICAgICAgICAjIEFic29sdXRlIHBhdGgsIGRvIG5vdGhpbmcuCi0g
ICAgICAgIDs7Ci0gICAgICAqKQotICAgICAgICAjIFJlbGF0aXZlIHBhdGgsIHByZXBlbmQgJGN3
ZC4KLSAgICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD1gcHdkYC8kZnVuY19ub3JtYWxf
YWJzcGF0aF90cGF0aAotICAgICAgICA7OwotICAgIGVzYWMKLQotICAgICMgQ2FuY2VsIG91dCBh
bGwgdGhlIHNpbXBsZSBzdHVmZiB0byBzYXZlIGl0ZXJhdGlvbnMuICBXZSBhbHNvIHdhbnQKLSAg
ICAjIHRoZSBwYXRoIHRvIGVuZCB3aXRoIGEgc2xhc2ggZm9yIGVhc2Ugb2YgcGFyc2luZywgc28g
bWFrZSBzdXJlCi0gICAgIyB0aGVyZSBpcyBvbmUgKGFuZCBvbmx5IG9uZSkgaGVyZS4KLSAgICBm
dW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoPWAkRUNITyAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBh
dGgiIHwgJFNFRCBcCi0gICAgICAgICAgLWUgIiRfR19yZW1vdmVkb3RwYXJ0cyIgLWUgIiRfR19j
b2xsYXBzZXNsYXNoZXMiIC1lICIkX0dfZmluYWxzbGFzaCJgCi0gICAgd2hpbGUgOjsgZG8KLSAg
ICAgICMgUHJvY2Vzc2VkIGl0IGFsbCB5ZXQ/Ci0gICAgICBpZiB0ZXN0IC8gPSAiJGZ1bmNfbm9y
bWFsX2Fic3BhdGhfdHBhdGgiOyB0aGVuCi0gICAgICAgICMgSWYgd2UgYXNjZW5kZWQgdG8gdGhl
IHJvb3QgdXNpbmcgIi4uIiB0aGUgcmVzdWx0IG1heSBiZSBlbXB0eSBub3cuCi0gICAgICAgIGlm
IHRlc3QgLXogIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCI7IHRoZW4KLSAgICAgICAgICBm
dW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0vCi0gICAgICAgIGZpCi0gICAgICAgIGJyZWFrCi0g
ICAgICBmaQotICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90Y29tcG9uZW50PWAkRUNITyAiJGZ1
bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiIHwgJFNFRCBcCi0gICAgICAgICAgLWUgIiRfR19wYXRo
Y2FyImAKLSAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3Jt
YWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKLSAgICAgICAgICAtZSAiJF9HX3BhdGhjZHIiYAot
ICAgICAgIyBGaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBpdAotICAgICAgY2FzZSAkZnVuY19u
b3JtYWxfYWJzcGF0aF90Y29tcG9uZW50IGluCi0gICAgICAgICIiKQotICAgICAgICAgICMgVHJh
aWxpbmcgZW1wdHkgcGF0aCBjb21wb25lbnQsIGlnbm9yZSBpdC4KLSAgICAgICAgICA7OwotICAg
ICAgICAuLikKLSAgICAgICAgICAjIFBhcmVudCBkaXI7IHN0cmlwIGxhc3QgYXNzZW1ibGVkIGNv
bXBvbmVudCBmcm9tIHJlc3VsdC4KLSAgICAgICAgICBmdW5jX2Rpcm5hbWUgIiRmdW5jX25vcm1h
bF9hYnNwYXRoX3Jlc3VsdCIKLSAgICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0k
ZnVuY19kaXJuYW1lX3Jlc3VsdAotICAgICAgICAgIDs7Ci0gICAgICAgICopCi0gICAgICAgICAg
IyBBY3R1YWwgcGF0aCBjb21wb25lbnQsIGFwcGVuZCBpdC4KLSAgICAgICAgICBmdW5jX2FwcGVu
ZCBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCAiLyRmdW5jX25vcm1hbF9hYnNwYXRoX3Rjb21w
b25lbnQiCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAgICBkb25lCi0gICAgIyBSZXN0b3Jl
IGxlYWRpbmcgZG91YmxlLXNsYXNoIGlmIG9uZSB3YXMgZm91bmQgb24gZW50cnkuCi0gICAgZnVu
Y19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNl
JGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0Ci19Ci0KLQotIyBmdW5jX25vdHF1aWV0IEFSRy4u
LgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBt
ZXNzYWdlIG9ubHkgd2hlbiBub3QgaW4gcXVpZXQgbW9kZS4KLWZ1bmNfbm90cXVpZXQgKCkKLXsK
LSAgICAkZGVidWdfY21kCi0KLSAgICAkb3B0X3F1aWV0IHx8IGZ1bmNfZWNobyAkezErIiRAIn0K
LQotICAgICMgQSBidWcgaW4gYmFzaCBoYWx0cyB0aGUgc2NyaXB0IGlmIHRoZSBsYXN0IGxpbmUg
b2YgYSBmdW5jdGlvbgotICAgICMgZmFpbHMgd2hlbiBzZXQgLWUgaXMgaW4gZm9yY2UsIHNvIHdl
IG5lZWQgYW5vdGhlciBjb21tYW5kIHRvCi0gICAgIyB3b3JrIGFyb3VuZCB0aGF0OgotICAgIDoK
LX0KLQotCi0jIGZ1bmNfcmVsYXRpdmVfcGF0aCBTUkNESVIgRFNURElSCi0jIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFNldCBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IHRv
IHRoZSByZWxhdGl2ZSBwYXRoIGZyb20gU1JDRElSIHRvIERTVERJUi4KLWZ1bmNfcmVsYXRpdmVf
cGF0aCAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1
bHQ9Ci0gICAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDEiCi0gICAgZnVuY19yZWxhdGl2ZV9wYXRo
X3RsaWJkaXI9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0Ci0gICAgZnVuY19ub3JtYWxfYWJz
cGF0aCAiJDIiCi0gICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXI9JGZ1bmNfbm9ybWFsX2Fi
c3BhdGhfcmVzdWx0Ci0KLSAgICAjIEFzY2VuZCB0aGUgdHJlZSBzdGFydGluZyBmcm9tIGxpYmRp
cgotICAgIHdoaWxlIDo7IGRvCi0gICAgICAjIGNoZWNrIGlmIHdlIGhhdmUgZm91bmQgYSBwcmVm
aXggb2YgYmluZGlyCi0gICAgICBjYXNlICRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpciBpbgot
ICAgICAgICAkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIpCi0gICAgICAgICAgIyBmb3VuZCBh
biBleGFjdCBtYXRjaAotICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVkPQot
ICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgOzsKLSAgICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0
aF90bGliZGlyKikKLSAgICAgICAgICAjIGZvdW5kIGEgbWF0Y2hpbmcgcHJlZml4Ci0gICAgICAg
ICAgZnVuY19zdHJpcG5hbWUgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciIgJycgIiRmdW5j
X3JlbGF0aXZlX3BhdGhfdGJpbmRpciIKLSAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNh
bmNlbGxlZD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0gICAgICAgICAgaWYgdGVzdCAteiAiJGZ1
bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiOyB0aGVuCi0gICAgICAgICAgICBmdW5jX3JlbGF0aXZl
X3BhdGhfcmVzdWx0PS4KLSAgICAgICAgICBmaQotICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
OzsKLSAgICAgICAgKikKLSAgICAgICAgICBmdW5jX2Rpcm5hbWUgJGZ1bmNfcmVsYXRpdmVfcGF0
aF90bGliZGlyCi0gICAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXI9JGZ1bmNfZGly
bmFtZV9yZXN1bHQKLSAgICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Rs
aWJkaXIiOyB0aGVuCi0gICAgICAgICAgICAjIEhhdmUgdG8gZGVzY2VuZCBhbGwgdGhlIHdheSB0
byB0aGUgcm9vdCEKLSAgICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9Li4vJGZ1
bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQKLSAgICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90
Y2FuY2VsbGVkPSRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpcgotICAgICAgICAgICAgYnJlYWsK
LSAgICAgICAgICBmaQotICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9Li4vJGZ1
bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQKLSAgICAgICAgICA7OwotICAgICAgZXNhYwotICAgIGRv
bmUKLQotICAgICMgTm93IGNhbGN1bGF0ZSBwYXRoOyB0YWtlIGNhcmUgdG8gYXZvaWQgZG91Ymxp
bmctdXAgc2xhc2hlcy4KLSAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRmdW5jX3JlbGF0aXZl
X3BhdGhfcmVzdWx0IgotICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9JGZ1bmNfc3RyaXBu
YW1lX3Jlc3VsdAotICAgIGZ1bmNfc3RyaXBuYW1lICcvJyAnLycgIiRmdW5jX3JlbGF0aXZlX3Bh
dGhfdGNhbmNlbGxlZCIKLSAgICBpZiB0ZXN0IC1uICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0Ijsg
dGhlbgotICAgICAgZnVuY19hcHBlbmQgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCAiLyRmdW5j
X3N0cmlwbmFtZV9yZXN1bHQiCi0gICAgZmkKLQotICAgICMgTm9ybWFsaXNhdGlvbi4gSWYgYmlu
ZGlyIGlzIGxpYmRpciwgcmV0dXJuICcuJyBlbHNlIHJlbGF0aXZlIHBhdGguCi0gICAgaWYgdGVz
dCAtbiAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiOyB0aGVuCi0gICAgICBmdW5jX3N0cmlw
bmFtZSAnLi8nICcnICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCIKLSAgICAgIGZ1bmNfcmVs
YXRpdmVfcGF0aF9yZXN1bHQ9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotICAgIGZpCi0KLSAgICB0
ZXN0IC1uICIkZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCIgfHwgZnVuY19yZWxhdGl2ZV9wYXRo
X3Jlc3VsdD0uCi0KLSAgICA6Ci19Ci0KLQotIyBmdW5jX3F1b3RlX3BvcnRhYmxlIEVWQUwgQVJH
Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgSW50ZXJuYWwgZnVuY3Rpb24gdG8g
cG9ydGFibHkgaW1wbGVtZW50IGZ1bmNfcXVvdGVfYXJnLiAgTm90ZSB0aGF0IHdlIHN0aWxsCi0j
IGtlZXAgYXR0ZW50aW9uIHRvIHBlcmZvcm1hbmNlIGhlcmUgc28gd2UgYXMgbXVjaCBhcyBwb3Nz
aWJsZSB0cnkgdG8gYXZvaWQKLSMgY2FsbGluZyBzZWQgYmluYXJ5IChzbyBmYXIgTyhOKSBjb21w
bGV4aXR5IGFzIGxvbmcgYXMgZnVuY19hcHBlbmQgaXMgTygxKSkuCi1mdW5jX3F1b3RlX3BvcnRh
YmxlICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfY2hlY2tfaWZzX2JhY2tz
bGFzaAotCi0gICAgZnVuY19xdW90ZV9wb3J0YWJsZV9yZXN1bHQ9JDIKLQotICAgICMgb25lLXRp
bWUtbG9vcCAoZWFzeSBicmVhaykKLSAgICB3aGlsZSB0cnVlCi0gICAgZG8KLSAgICAgIGlmICQx
OyB0aGVuCi0gICAgICAgIGZ1bmNfcXVvdGVfcG9ydGFibGVfcmVzdWx0PWAkRUNITyAiJDIiIHwg
JFNFRCBcCi0gICAgICAgICAgLWUgIiRzZWRfZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9k
b3VibGVfYmFja3NsYXNoImAKLSAgICAgICAgYnJlYWsKLSAgICAgIGZpCi0KLSAgICAgICMgUXVv
dGUgZm9yIGV2YWwuCi0gICAgICBjYXNlICRmdW5jX3F1b3RlX3BvcnRhYmxlX3Jlc3VsdCBpbgot
ICAgICAgICAqW1xcXGBcIlwkXSopCi0gICAgICAgICAgIyBGYWxsYmFjayB0byBzZWQgZm9yICRm
dW5jX2NoZWNrX2JzX2lmc19icm9rZW49Oiwgb3Igd2hlbiB0aGUgc3RyaW5nCi0gICAgICAgICAg
IyBjb250YWlucyB0aGUgc2hlbGwgd2lsZGNhcmQgY2hhcmFjdGVycy4KLSAgICAgICAgICBjYXNl
ICRjaGVja19pZnNfYmFja3NobGFzaF9icm9rZW4kZnVuY19xdW90ZV9wb3J0YWJsZV9yZXN1bHQg
aW4KLSAgICAgICAgICAgIDoqfCpbXFtcKlw/XSopCi0gICAgICAgICAgICAgIGZ1bmNfcXVvdGVf
cG9ydGFibGVfcmVzdWx0PWAkRUNITyAiJGZ1bmNfcXVvdGVfcG9ydGFibGVfcmVzdWx0IiBcCi0g
ICAgICAgICAgICAgICAgICB8ICRTRUQgIiRzZWRfcXVvdGVfc3Vic3QiYAotICAgICAgICAgICAg
ICBicmVhawotICAgICAgICAgICAgICA7OwotICAgICAgICAgIGVzYWMKLQotICAgICAgICAgIGZ1
bmNfcXVvdGVfcG9ydGFibGVfb2xkX0lGUz0kSUZTCi0gICAgICAgICAgZm9yIF9HX2NoYXIgaW4g
J1wnICdgJyAnIicgJyQnCi0gICAgICAgICAgZG8KLSAgICAgICAgICAgICMgU1RBVEUoJDEpIFBS
RVYoJDIpIFNFUEFSQVRPUigkMykKLSAgICAgICAgICAgIHNldCBzdGFydCAiIiAiIgotICAgICAg
ICAgICAgZnVuY19xdW90ZV9wb3J0YWJsZV9yZXN1bHQ9ZHVtbXkiJF9HX2NoYXIkZnVuY19xdW90
ZV9wb3J0YWJsZV9yZXN1bHQkX0dfY2hhciJkdW1teQotICAgICAgICAgICAgSUZTPSRfR19jaGFy
Ci0gICAgICAgICAgICBmb3IgX0dfcGFydCBpbiAkZnVuY19xdW90ZV9wb3J0YWJsZV9yZXN1bHQK
LSAgICAgICAgICAgIGRvCi0gICAgICAgICAgICAgIGNhc2UgJDEgaW4KLSAgICAgICAgICAgICAg
cXVvdGUpCi0gICAgICAgICAgICAgICAgZnVuY19hcHBlbmQgZnVuY19xdW90ZV9wb3J0YWJsZV9y
ZXN1bHQgIiQzJDIiCi0gICAgICAgICAgICAgICAgc2V0IHF1b3RlICIkX0dfcGFydCIgIlxcJF9H
X2NoYXIiCi0gICAgICAgICAgICAgICAgOzsKLSAgICAgICAgICAgICAgc3RhcnQpCi0gICAgICAg
ICAgICAgICAgc2V0IGZpcnN0ICIiICIiCi0gICAgICAgICAgICAgICAgZnVuY19xdW90ZV9wb3J0
YWJsZV9yZXN1bHQ9Ci0gICAgICAgICAgICAgICAgOzsKLSAgICAgICAgICAgICAgZmlyc3QpCi0g
ICAgICAgICAgICAgICAgc2V0IHF1b3RlICIkX0dfcGFydCIgIiIKLSAgICAgICAgICAgICAgICA7
OwotICAgICAgICAgICAgICBlc2FjCi0gICAgICAgICAgICBkb25lCi0gICAgICAgICAgZG9uZQot
ICAgICAgICAgIElGUz0kZnVuY19xdW90ZV9wb3J0YWJsZV9vbGRfSUZTCi0gICAgICAgICAgOzsK
LSAgICAgICAgKikgOzsKLSAgICAgIGVzYWMKLSAgICAgIGJyZWFrCi0gICAgZG9uZQotCi0gICAg
ZnVuY19xdW90ZV9wb3J0YWJsZV91bnF1b3RlZF9yZXN1bHQ9JGZ1bmNfcXVvdGVfcG9ydGFibGVf
cmVzdWx0Ci0gICAgY2FzZSAkZnVuY19xdW90ZV9wb3J0YWJsZV9yZXN1bHQgaW4KLSAgICAgICMg
ZG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxh
eQotICAgICAgIyB3b3JkIHNwbGl0dGluZywgY29tbWFuZCBzdWJzdGl0dXRpb24gYW5kIHZhcmlh
YmxlIGV4cGFuc2lvbgotICAgICAgIyBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCi0gICAgICAjIG1h
bnkgYm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3NlIGJyYWNrZXRzIGNvcnJlY3RseQot
ICAgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJhdGVseS4KLSAgICAg
ICpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotICAgICAg
ICBmdW5jX3F1b3RlX3BvcnRhYmxlX3Jlc3VsdD1cIiRmdW5jX3F1b3RlX3BvcnRhYmxlX3Jlc3Vs
dFwiCi0gICAgICAgIDs7Ci0gICAgZXNhYwotfQotCi0KLSMgZnVuY19xdW90ZWZhc3RfZXZhbCBB
UkcKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUXVvdGUgb25lIEFSRyAoaW50ZXJuYWwp
LiAgVGhpcyBpcyBlcXVpdmFsZW50IHRvICdmdW5jX3F1b3RlX2FyZyBldmFsIEFSRycsCi0jIGJ1
dCBvcHRpbWl6ZWQgZm9yIHNwZWVkLiAgUmVzdWx0IGlzIHN0b3JlZCBpbiAkZnVuY19xdW90ZWZh
c3RfZXZhbC4KLWlmIHRlc3QgeHllcyA9IGAoeD07IHByaW50ZiAtdiB4ICVxIHllczsgZWNobyB4
IiR4IikgMj4vZGV2L251bGxgOyB0aGVuCi0gIHByaW50ZiAtdiBfR0xfdGVzdF9wcmludGZfdGls
ZGUgJXEgJ34nCi0gIGlmIHRlc3QgJ1x+JyA9ICIkX0dMX3Rlc3RfcHJpbnRmX3RpbGRlIjsgdGhl
bgotICAgIGZ1bmNfcXVvdGVmYXN0X2V2YWwgKCkKLSAgICB7Ci0gICAgICBwcmludGYgLXYgZnVu
Y19xdW90ZWZhc3RfZXZhbF9yZXN1bHQgJXEgIiQxIgotICAgIH0KLSAgZWxzZQotICAgICMgQnJv
a2VuIG9sZGVyIEJhc2ggaW1wbGVtZW50YXRpb25zLiAgTWFrZSB0aG9zZSBmYXN0ZXIgdG9vIGlm
IHBvc3NpYmxlLgotICAgIGZ1bmNfcXVvdGVmYXN0X2V2YWwgKCkKLSAgICB7Ci0gICAgICBjYXNl
ICQxIGluCi0gICAgICAgICd+JyopCi0gICAgICAgICAgZnVuY19xdW90ZV9wb3J0YWJsZSBmYWxz
ZSAiJDEiCi0gICAgICAgICAgZnVuY19xdW90ZWZhc3RfZXZhbF9yZXN1bHQ9JGZ1bmNfcXVvdGVf
cG9ydGFibGVfcmVzdWx0Ci0gICAgICAgICAgOzsKLSAgICAgICAgKikKLSAgICAgICAgICBwcmlu
dGYgLXYgZnVuY19xdW90ZWZhc3RfZXZhbF9yZXN1bHQgJXEgIiQxIgotICAgICAgICAgIDs7Ci0g
ICAgICBlc2FjCi0gICAgfQotICBmaQotZWxzZQotICBmdW5jX3F1b3RlZmFzdF9ldmFsICgpCi0g
IHsKLSAgICBmdW5jX3F1b3RlX3BvcnRhYmxlIGZhbHNlICIkMSIKLSAgICBmdW5jX3F1b3RlZmFz
dF9ldmFsX3Jlc3VsdD0kZnVuY19xdW90ZV9wb3J0YWJsZV9yZXN1bHQKLSAgfQotZmkKLQotCi0j
IGZ1bmNfcXVvdGVfYXJnIE1PREVzIEFSRwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMg
UXVvdGUgb25lIEFSRyB0byBiZSBldmFsZWQgbGF0ZXIuICBNT0RFcyBhcmd1bWVudCBtYXkgY29u
dGFpbiB6ZXJvIG9yIG1vcmUKLSMgc3BlY2lmaWVycyBsaXN0ZWQgYmVsb3cgc2VwYXJhdGVkIGJ5
ICcsJyBjaGFyYWN0ZXIuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHdvCi0jIHZhbHVlczoKLSMg
ICBpKSBmdW5jX3F1b3RlX2FyZ19yZXN1bHQKLSMgICAgICBkb3VibGUtcXVvdGVkICh3aGVuIG5l
ZWRlZCksIHN1aXRhYmxlIGZvciBhIHN1YnNlcXVlbnQgZXZhbAotIyAgaWkpIGZ1bmNfcXVvdGVf
YXJnX3VucXVvdGVkX3Jlc3VsdAotIyAgICAgIGhhcyBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBz
dGlsbCBhY3RpdmUgd2l0aGluIGRvdWJsZQotIyAgICAgIHF1b3RlcyBiYWNrc2xhc2hpZmllZC4g
IEF2YWlsYWJsZSBvbmx5IGlmICd1bnF1b3RlZCcgaXMgc3BlY2lmaWVkLgotIwotIyBBdmFpbGFi
bGUgbW9kZXM6Ci0jIC0tLS0tLS0tLS0tLS0tLS0KLSMgJ2V2YWwnIChkZWZhdWx0KQotIyAgICAg
ICAtIGVzY2FwZSBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMKLSMgJ2V4cGFuZCcKLSMgICAgICAg
LSB0aGUgc2FtZSBhcyAnZXZhbCc7ICBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5j
ZXMKLSMgJ3ByZXR0eScKLSMgICAgICAgLSByZXF1ZXN0IGFlc3RoZXRpYyBvdXRwdXQsIGkuZS4g
JyJhIGIiJyBpbnN0ZWFkIG9mICdhXCBiJy4gIFRoaXMgbWlnaHQKLSMgICAgICAgICBiZSB1c2Vk
IGxhdGVyIGluIGZ1bmNfcXVvdGUgdG8gZ2V0IG91dHB1dCBsaWtlOiAnZWNobyAiYSBiIicgaW5z
dGVhZAotIyAgICAgICAgIG9mICdlY2hvIGFcIGInLiAgVGhpcyBpcyBzbG93ZXIgdGhhbiBkZWZh
dWx0IG9uIHNvbWUgc2hlbGxzLgotIyAndW5xdW90ZWQnCi0jICAgICAgIC0gcHJvZHVjZSBhbHNv
ICRmdW5jX3F1b3RlX2FyZ191bnF1b3RlZF9yZXN1bHQgd2hpY2ggZG9lcyBub3QgY29udGFpbgot
IyAgICAgICAgIHdyYXBwaW5nIGRvdWJsZS1xdW90ZXMuCi0jCi0jIEV4YW1wbGVzIGZvciAnZnVu
Y19xdW90ZV9hcmcgcHJldHR5LHVucXVvdGVkIHN0cmluZyc6Ci0jCi0jICAgc3RyaW5nICAgICAg
fCAqX3Jlc3VsdCAgICAgICAgICAgICAgfCAqX3VucXVvdGVkX3Jlc3VsdAotIyAgIC0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCi0jICAgIiAg
ICAgICAgICAgfCBcIiAgICAgICAgICAgICAgICAgICAgfCBcIgotIyAgIGEgYiAgICAgICAgIHwg
ImEgYiIgICAgICAgICAgICAgICAgIHwgYSBiCi0jICAgImEgYiIgICAgICAgfCAiXCJhIGJcIiIg
ICAgICAgICAgICAgfCBcImEgYlwiCi0jICAgKiAgICAgICAgICAgfCAiKiIgICAgICAgICAgICAg
ICAgICAgfCAqCi0jICAgej0iJHt4LSR5fSIgfCAiej1cIlwke3gtXCR5fVwiIiAgICAgfCB6PVwi
XCR7eC1cJHl9XCIKLSMKLSMgRXhhbXBsZXMgZm9yICdmdW5jX3F1b3RlX2FyZyBwcmV0dHksdW5x
dW90ZWQsZXhwYW5kIHN0cmluZyc6Ci0jCi0jICAgc3RyaW5nICAgICAgICB8ICAgKl9yZXN1bHQg
ICAgICAgICAgfCAgKl91bnF1b3RlZF9yZXN1bHQKLSMgICAtLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgICB6PSIke3gtJHl9IiAgIHwg
Ino9XCIke3gtJHl9XCIiICAgICB8IHo9XCIke3gtJHl9XCIKLWZ1bmNfcXVvdGVfYXJnICgpCi17
Ci0gICAgX0dfcXVvdGVfZXhwYW5kPWZhbHNlCi0gICAgY2FzZSAsJDEsIGluCi0gICAgICAqLGV4
cGFuZCwqKQotICAgICAgICBfR19xdW90ZV9leHBhbmQ9OgotICAgICAgICA7OwotICAgIGVzYWMK
LQotICAgIGNhc2UgLCQxLCBpbgotICAgICAgKixwcmV0dHksKnwqLGV4cGFuZCwqfCosdW5xdW90
ZWQsKikKLSAgICAgICAgZnVuY19xdW90ZV9wb3J0YWJsZSAkX0dfcXVvdGVfZXhwYW5kICIkMiIK
LSAgICAgICAgZnVuY19xdW90ZV9hcmdfcmVzdWx0PSRmdW5jX3F1b3RlX3BvcnRhYmxlX3Jlc3Vs
dAotICAgICAgICBmdW5jX3F1b3RlX2FyZ191bnF1b3RlZF9yZXN1bHQ9JGZ1bmNfcXVvdGVfcG9y
dGFibGVfdW5xdW90ZWRfcmVzdWx0Ci0gICAgICAgIDs7Ci0gICAgICAqKQotICAgICAgICAjIEZh
c3RlciBxdW90ZS1mb3ItZXZhbCBmb3Igc29tZSBzaGVsbHMuCi0gICAgICAgIGZ1bmNfcXVvdGVm
YXN0X2V2YWwgIiQyIgotICAgICAgICBmdW5jX3F1b3RlX2FyZ19yZXN1bHQ9JGZ1bmNfcXVvdGVm
YXN0X2V2YWxfcmVzdWx0Ci0gICAgICAgIDs7Ci0gICAgZXNhYwotfQotCi0KLSMgZnVuY19xdW90
ZSBNT0RFcyBBUkdzLi4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBRdW90ZSBhbGwg
QVJHcyB0byBiZSBldmFsZWQgbGF0ZXIgYW5kIGpvaW4gdGhlbSBpbnRvIHNpbmdsZSBjb21tYW5k
LiAgU2VlCi0jIGZ1bmNfcXVvdGVfYXJnJ3MgZGVzY3JpcHRpb24gZm9yIG1vcmUgaW5mby4KLWZ1
bmNfcXVvdGUgKCkKLXsKLSAgICAkZGVidWdfY21kCi0gICAgX0dfZnVuY19xdW90ZV9tb2RlPSQx
IDsgc2hpZnQKLSAgICBmdW5jX3F1b3RlX3Jlc3VsdD0KLSAgICB3aGlsZSB0ZXN0IDAgLWx0ICQj
OyBkbwotICAgICAgZnVuY19xdW90ZV9hcmcgIiRfR19mdW5jX3F1b3RlX21vZGUiICIkMSIKLSAg
ICAgIGlmIHRlc3QgLW4gIiRmdW5jX3F1b3RlX3Jlc3VsdCI7IHRoZW4KLSAgICAgICAgZnVuY19h
cHBlbmQgZnVuY19xdW90ZV9yZXN1bHQgIiAkZnVuY19xdW90ZV9hcmdfcmVzdWx0IgotICAgICAg
ZWxzZQotICAgICAgICBmdW5jX2FwcGVuZCBmdW5jX3F1b3RlX3Jlc3VsdCAiJGZ1bmNfcXVvdGVf
YXJnX3Jlc3VsdCIKLSAgICAgIGZpCi0gICAgICBzaGlmdAotICAgIGRvbmUKLX0KLQotCi0jIGZ1
bmNfc3RyaXBuYW1lIFBSRUZJWCBTVUZGSVggTkFNRQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLSMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggZnJvbSBOQU1FLCBhbmQgc3Rv
cmUgaW4gZnVuY19zdHJpcG5hbWVfcmVzdWx0LgotIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5v
dCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSMgY2hhcmFjdGVycywgaGFzaGVz
LCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotIyBkb3Qg
KGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgotaWYgdGVzdCB5ZXMgPSAi
JF9HX0hBVkVfWFNJX09QUyI7IHRoZW4KLSAgZXZhbCAnZnVuY19zdHJpcG5hbWUgKCkKLSAgewot
ICAgICRkZWJ1Z19jbWQKLQotICAgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0g
Y29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmUKLSAgICAjIHBvc2l0aW9uYWwgcGFyYW1ldGVy
cywgc28gYXNzaWduIG9uZSB0byBvcmRpbmFyeSB2YXJpYWJsZSBmaXJzdC4KLSAgICBmdW5jX3N0
cmlwbmFtZV9yZXN1bHQ9JDMKLSAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlw
bmFtZV9yZXN1bHQjIiQxIn0KLSAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlw
bmFtZV9yZXN1bHQlIiQyIn0KLSAgfScKLWVsc2UKLSAgZnVuY19zdHJpcG5hbWUgKCkKLSAgewot
ICAgICRkZWJ1Z19jbWQKLQotICAgIGNhc2UgJDIgaW4KLSAgICAgIC4qKSBmdW5jX3N0cmlwbmFt
ZV9yZXN1bHQ9YCRFQ0hPICIkMyIgfCAkU0VEIC1lICJzJV4kMSUlIiAtZSAicyVcXFxcJDJcJCUl
ImA7OwotICAgICAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiQzIiB8ICRTRUQg
LWUgInMlXiQxJSUiIC1lICJzJSQyXCQlJSJgOzsKLSAgICBlc2FjCi0gIH0KLWZpCi0KLQotIyBm
dW5jX3Nob3dfZXZhbCBDTUQgW0ZBSUxfRVhQXQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBVbmxlc3Mgb3B0X3F1aWV0IGlzIHRydWUsIHRoZW4gb3V0cHV0IENNRC4gIFRoZW4s
IGlmIG9wdF9kcnlydW4gaXMKLSMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFs
dWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCi0jIGlzIGdpdmVuLCB0aGVuIGV2YWx1
YXRlIGl0LgotZnVuY19zaG93X2V2YWwgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBfR19j
bWQ9JDEKLSAgICBfR19mYWlsX2V4cD0kezItJzonfQotCi0gICAgZnVuY19xdW90ZV9hcmcgcHJl
dHR5LGV4cGFuZCAiJF9HX2NtZCIKLSAgICBldmFsICJmdW5jX25vdHF1aWV0ICRmdW5jX3F1b3Rl
X2FyZ19yZXN1bHQiCi0KLSAgICAkb3B0X2RyeV9ydW4gfHwgewotICAgICAgZXZhbCAiJF9HX2Nt
ZCIKLSAgICAgIF9HX3N0YXR1cz0kPwotICAgICAgaWYgdGVzdCAwIC1uZSAiJF9HX3N0YXR1cyI7
IHRoZW4KLQlldmFsICIoZXhpdCAkX0dfc3RhdHVzKTsgJF9HX2ZhaWxfZXhwIgotICAgICAgZmkK
LSAgICB9Ci19Ci0KLQotIyBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgQ01EIFtGQUlMX0VYUF0KLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFVubGVzcyBvcHRfcXVpZXQg
aXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwgaWYgb3B0X2RyeXJ1biBpcwotIyBub3Qg
dHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2YWx1YXRpb24gb2YgQ01EIGZhaWxzLCBhbmQg
RkFJTF9FWFAKLSMgaXMgZ2l2ZW4sIHRoZW4gZXZhbHVhdGUgaXQuICBVc2UgdGhlIHNhdmVkIGxv
Y2FsZSBmb3IgZXZhbHVhdGlvbi4KLWZ1bmNfc2hvd19ldmFsX2xvY2FsZSAoKQotewotICAgICRk
ZWJ1Z19jbWQKLQotICAgIF9HX2NtZD0kMQotICAgIF9HX2ZhaWxfZXhwPSR7Mi0nOid9Ci0KLSAg
ICAkb3B0X3F1aWV0IHx8IHsKLSAgICAgIGZ1bmNfcXVvdGVfYXJnIGV4cGFuZCxwcmV0dHkgIiRf
R19jbWQiCi0gICAgICBldmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfYXJnX3Jlc3VsdCIKLSAg
ICB9Ci0KLSAgICAkb3B0X2RyeV9ydW4gfHwgewotICAgICAgZXZhbCAiJF9HX3VzZXJfbG9jYWxl
Ci0JICAgICRfR19jbWQiCi0gICAgICBfR19zdGF0dXM9JD8KLSAgICAgIGV2YWwgIiRfR19zYWZl
X2xvY2FsZSIKLSAgICAgIGlmIHRlc3QgMCAtbmUgIiRfR19zdGF0dXMiOyB0aGVuCi0JZXZhbCAi
KGV4aXQgJF9HX3N0YXR1cyk7ICRfR19mYWlsX2V4cCIKLSAgICAgIGZpCi0gICAgfQotfQotCi0K
LSMgZnVuY190cl9zaAotIyAtLS0tLS0tLS0tCi0jIFR1cm4gJDEgaW50byBhIHN0cmluZyBzdWl0
YWJsZSBmb3IgYSBzaGVsbCB2YXJpYWJsZSBuYW1lLgotIyBSZXN1bHQgaXMgc3RvcmVkIGluICRm
dW5jX3RyX3NoX3Jlc3VsdC4gIEFsbCBjaGFyYWN0ZXJzCi0jIG5vdCBpbiB0aGUgc2V0IGEtekEt
WjAtOV8gYXJlIHJlcGxhY2VkIHdpdGggJ18nLiBGdXJ0aGVyLAotIyBpZiAkMSBiZWdpbnMgd2l0
aCBhIGRpZ2l0LCBhICdfJyBpcyBwcmVwZW5kZWQgYXMgd2VsbC4KLWZ1bmNfdHJfc2ggKCkKLXsK
LSAgICAkZGVidWdfY21kCi0KLSAgICBjYXNlICQxIGluCi0gICAgWzAtOV0qIHwgKlshYS16QS1a
MC05X10qKQotICAgICAgZnVuY190cl9zaF9yZXN1bHQ9YCRFQ0hPICIkMSIgfCAkU0VEIC1lICdz
L15cKFswLTldXCkvX1wxLycgLWUgJ3MvW15hLXpBLVowLTlfXS9fL2cnYAotICAgICAgOzsKLSAg
ICAqICkKLSAgICAgIGZ1bmNfdHJfc2hfcmVzdWx0PSQxCi0gICAgICA7OwotICAgIGVzYWMKLX0K
LQotCi0jIGZ1bmNfdmVyYm9zZSBBUkcuLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFY2hv
IHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIGluIHZlcmJvc2UgbW9kZSBvbmx5LgotZnVu
Y192ZXJib3NlICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJG9wdF92ZXJib3NlICYmIGZ1
bmNfZWNobyAiJCoiCi0KLSAgICA6Ci19Ci0KLQotIyBmdW5jX3dhcm5fYW5kX2NvbnRpbnVlIEFS
Ry4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFY2hvIHByb2dyYW0gbmFt
ZSBwcmVmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCi1mdW5jX3dhcm5f
YW5kX2NvbnRpbnVlICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgJHJlcXVpcmVfdGVybV9j
b2xvcnMKLQotICAgIGZ1bmNfZWNob19pbmZpeF8xICIke3RjX3JlZH13YXJuaW5nJHRjX3Jlc2V0
IiAiJCoiID4mMgotfQotCi0KLSMgZnVuY193YXJuaW5nIENBVEVHT1JZIEFSRy4uLgotIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIHdh
cm5pbmcgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4gV2FybmluZwotIyBtZXNzYWdlcyBjYW4g
YmUgZmlsdGVyZWQgYWNjb3JkaW5nIHRvIENBVEVHT1JZLCB3aGVyZSB0aGlzIGZ1bmN0aW9uCi0j
IGVsaWRlcyBtZXNzYWdlcyB3aGVyZSBDQVRFR09SWSBpcyBub3QgbGlzdGVkIGluIHRoZSBnbG9i
YWwgdmFyaWFibGUKLSMgJ29wdF93YXJuaW5nX3R5cGVzJy4KLWZ1bmNfd2FybmluZyAoKQotewot
ICAgICRkZWJ1Z19jbWQKLQotICAgICMgQ0FURUdPUlkgbXVzdCBiZSBpbiB0aGUgd2FybmluZ19j
YXRlZ29yaWVzIGxpc3QhCi0gICAgY2FzZSAiICR3YXJuaW5nX2NhdGVnb3JpZXMgIiBpbgotICAg
ICAgKiIgJDEgIiopIDs7Ci0gICAgICAqKSBmdW5jX2ludGVybmFsX2Vycm9yICJpbnZhbGlkIHdh
cm5pbmcgY2F0ZWdvcnkgJyQxJyIgOzsKLSAgICBlc2FjCi0KLSAgICBfR19jYXRlZ29yeT0kMQot
ICAgIHNoaWZ0Ci0KLSAgICBjYXNlICIgJG9wdF93YXJuaW5nX3R5cGVzICIgaW4KLSAgICAgICoi
ICRfR19jYXRlZ29yeSAiKikgJHdhcm5pbmdfZnVuYyAkezErIiRAIn0gOzsKLSAgICBlc2FjCi19
Ci0KLQotIyBmdW5jX3NvcnRfdmVyIFZFUjEgVkVSMgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotIyAnc29ydCAtVicgaXMgbm90IGdlbmVyYWxseSBhdmFpbGFibGUuCi0jIE5vdGUgdGhpcyBk
ZXZpYXRlcyBmcm9tIHRoZSB2ZXJzaW9uIGNvbXBhcmlzb24gaW4gYXV0b21ha2UKLSMgaW4gdGhh
dCBpdCB0cmVhdHMgMS41IDwgMS41LjAsIGFuZCB0cmVhdHMgMS40LjRhIDwgMS40LXAzYQotIyBi
dXQgdGhpcyBzaG91bGQgc3VmZmljZSBhcyB3ZSB3b24ndCBiZSBzcGVjaWZ5aW5nIG9sZAotIyB2
ZXJzaW9uIGZvcm1hdHMgb3IgcmVkdW5kYW50IHRyYWlsaW5nIC4wIGluIGJvb3RzdHJhcC5jb25m
LgotIyBJZiB3ZSBkaWQgd2FudCBmdWxsIGNvbXBhdGliaWxpdHkgdGhlbiB3ZSBzaG91bGQgcHJv
YmFibHkKLSMgdXNlIG00X3ZlcnNpb25fY29tcGFyZSBmcm9tIGF1dG9jb25mLgotZnVuY19zb3J0
X3ZlciAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIHByaW50ZiAnJXNcbiVzXG4nICIkMSIg
IiQyIiBcCi0gICAgICB8IHNvcnQgLXQuIC1rIDEsMW4gLWsgMiwybiAtayAzLDNuIC1rIDQsNG4g
LWsgNSw1biAtayA2LDZuIC1rIDcsN24gLWsgOCw4biAtayA5LDluCi19Ci0KLSMgZnVuY19sdF92
ZXIgUFJFViBDVVJSCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBSZXR1cm4gdHJ1ZSBpZiBQ
UkVWIGFuZCBDVVJSIGFyZSBpbiB0aGUgY29ycmVjdCBvcmRlciBhY2NvcmRpbmcgdG8KLSMgZnVu
Y19zb3J0X3Zlciwgb3RoZXJ3aXNlIGZhbHNlLiAgVXNlIGl0IGxpa2UgdGhpczoKLSMKLSMgIGZ1
bmNfbHRfdmVyICIkcHJldl92ZXIiICIkcHJvcG9zZWRfdmVyIiB8fCBmdW5jX2ZhdGFsX2Vycm9y
ICIuLi4iCi1mdW5jX2x0X3ZlciAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIHRlc3QgIngk
MSIgPSB4YGZ1bmNfc29ydF92ZXIgIiQxIiAiJDIiIHwgJFNFRCAxcWAKLX0KLQotCi0jIExvY2Fs
IHZhcmlhYmxlczoKLSMgbW9kZTogc2hlbGwtc2NyaXB0Ci0jIHNoLWluZGVudGF0aW9uOiAyCi0j
IGV2YWw6IChhZGQtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAndGltZS1zdGFtcCkKLSMgdGltZS1z
dGFtcC1wYXR0ZXJuOiAiMTAvc2NyaXB0dmVyc2lvbj0lOnktJTAybS0lMDJkLiUwMkg7ICMgVVRD
IgotIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKLSMgRW5kOgpkaWZmIC0tZ2l0IGEvZ2wv
YnVpbGQtYXV4L2lubGluZS1zb3VyY2UgYi9nbC9idWlsZC1hdXgvaW5saW5lLXNvdXJjZQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTY0NmNjNDkuLjAwMDAwMDAwCi0tLSBhL2dsL2J1
aWxkLWF1eC9pbmxpbmUtc291cmNlCisrKyAvZGV2L251bGwKQEAgLTEsMTU5ICswLDAgQEAKLSMh
IC9iaW4vc2gKLQotIyBPdXRwdXQgdGhlIGNvbnRlbnRzIG9mIGEgc2hlbGwgc2NyaXB0IHdpdGgg
c291cmNlZCBmaWxlcyBpbmxpbmVkLgotIyBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAx
MgotCi0jIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZS4gIFRoZXJlIGlzIE5PIHdhcnJhbnR5OyBub3Qg
ZXZlbiBmb3IKLSMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLgotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTItMjAxOSwgMjAyMSwgMjAyMyBCb290c3Ry
YXAgQXV0aG9ycwotIwotIyBUaGlzIGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIE1JVCBsaWNlbnNlCi0jIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2Vz
L01JVD4sIGFuZCBHUEwgdmVyc2lvbiAyIG9yIGxhdGVyCi0jIDxodHRwOi8vd3d3LmdudS5vcmcv
bGljZW5zZXMvZ3BsLTIuMC5odG1sPi4gIFlvdSBtdXN0IGFwcGx5IG9uZSBvZgotIyB0aGVzZSBs
aWNlbnNlcyB3aGVuIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoaXMgc29mdHdhcmUgb3IgYW55
IG9mCi0jIHRoZSBmaWxlcyB3aXRoaW4gaXQuICBTZWUgdGhlIFVSTHMgYWJvdmUsIG9yIHRoZSBm
aWxlIGBMSUNFTlNFYAotIyBpbmNsdWRlZCBpbiB0aGUgQm9vdHN0cmFwIGRpc3RyaWJ1dGlvbiBm
b3IgdGhlIGZ1bGwgbGljZW5zZSB0ZXh0cy4KLQotIyBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb3IgcHJv
cG9zZSBwYXRjaGVzIHRvOgotIyA8aHR0cHM6Ly9naXRodWIuY29tL2dudWxpYi1tb2R1bGVzL2Jv
b3RzdHJhcC9pc3N1ZXM+Ci0KLSMgU291cmNlIHJlcXVpcmVkIGV4dGVybmFsIGxpYnJhcmllczoK
LS4gYGVjaG8gIiQwIiB8JHtTRUQtc2VkfSAnc3xbXi9dKiR8fCdgImZ1bmNsaWIuc2giCi0uIGBl
Y2hvICIkMCIgfCR7U0VELXNlZH0gJ3N8W14vXSokfHwnYCJvcHRpb25zLXBhcnNlciIKLQotIyBT
ZXQgYSB2ZXJzaW9uIHN0cmluZyBmb3IgKnRoaXMqIHNjcmlwdC4KLXNjcmlwdHZlcnNpb249MjAx
OS0wMi0xOS4xNTsgIyBVVEMKLQotCi0jIyAtLS0tLS0gIyMKLSMjIFVzYWdlLiAjIwotIyMgLS0t
LS0tICMjCi0KLSMgUnVuICdidWlsZC1hdXgvaW5saW5lLXNvdXJjZSAtLWhlbHAnIGZvciBoZWxw
IHdpdGggdXNpbmcgdGhpcyBzY3JpcHQKLSMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgotCi0jIFJl
Y3Vyc2l2ZWx5IHNjYW4gdGhyb3VnaCBhIEZJTEUgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUs
IHJlcGxhY2luZwotIyBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZzoKLSMgICAuICJyZWxhdGl2ZS9m
aWxlIgotIyAgIC4gYGVjaG8gIiQwIiB8ZWRpdGAicmVsYXRpdmUvZmlsZSIKLSMgd2l0aCB0aGUg
Y29udGVudHMgb2YgdGhlIHJlZmVyZW5jZWQgZmlsZXMuCi0KLQotIyMgLS0tLS0tLS0tLS0tLS0t
LSAjIwotIyMgT3B0aW9ucyBwYXJzaW5nLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotCi11
c2FnZT0nJHByb2dwYXRoIFtPUFRJT05dLi4uIEZJTEUnCi0KLSMgU2hvcnQgaGVscCBtZXNzYWdl
IGluIHJlc3BvbnNlIHRvICctaCcuCi11c2FnZV9tZXNzYWdlPSdPcHRpb25zOgotICAgICAgIC0t
ZGVidWcgICAgICAgIGVuYWJsZSB2ZXJib3NlIHNoZWxsIHRyYWNpbmcKLSAgICAgICAtLXZlcnNp
b24gICAgICBwcmludCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gICAtaCwgLS1oZWxw
ICAgICAgICAgcHJpbnQgaGVscCBtZXNzYWdlIGFuZCBleGl0Ci0nCi0KLWxvbmdfaGVscF9tZXNz
YWdlPSJcCi1SZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4KLUdlbmVyYWwgaGVs
cCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LiIKLQot
ZnVuY19vcHRpb25zICR7MSsiJEAifQotZXZhbCBzZXQgZHVtbXkgIiRmdW5jX29wdGlvbnNfcmVz
dWx0Ijsgc2hpZnQKLQotCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgUmVzb3VyY2Ug
bWFuYWdlbWVudC4gIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0KLSMgcmVxdWlyZV9B
V0sKLSMgLS0tLS0tLS0tLS0KLSMgU2VhcmNoIGZvciBhICJub3QgaG9wZWxlc3MiIGF3ay4KLXJl
cXVpcmVfQVdLPWZ1bmNfcmVxdWlyZV9BV0sKLWZ1bmNfcmVxdWlyZV9BV0sgKCkKLXsKLSAgICAk
ZGVidWdfY21kCi0KLSAgICB0ZXN0IC1uICIkQVdLIiB8fCB7Ci0gICAgICAjIEZpbmQgdGhlIGZp
cnN0IGV4ZWN1dGFibGUgaW4gdGhlIGxpc3QuCi0gICAgICBmb3IgX0dfcHJvZyBpbiBnYXdrIG1h
d2sgbmF3ayBhd2sKLSAgICAgIGRvCi0gICAgICAgIHJlcXVpcmVfQVdLX0lGUz0kSUZTCi0JSUZT
PSR7UEFUSF9TRVBBUkFUT1ItOn0KLQlmb3IgX0dfZGlyIGluICRQQVRICi0gICAgICAgIGRvCi0J
ICBJRlM9JHJlcXVpcmVfQVdLX0lGUwotICAgICAgICAgIGlmIHRlc3QgLWYgIiRfR19kaXIvJF9H
X3Byb2ciICYmIHRlc3QgLXggIiRfR19kaXIvJF9HX3Byb2ciCi0JICB0aGVuCi0JICAgIEFXSz0k
X0dfZGlyLyRfR19wcm9nCi0gICAgICAgICAgICBicmVhayAyCi0gICAgICAgICAgZmkKLSAgICAg
ICAgZG9uZQotCUlGUz0kcmVxdWlyZV9BV0tfSUZTCi0gICAgICBkb25lCi0gICAgfQotCi0gICAg
dGVzdCAtbiAiJEFXSyIgfHwgZnVuY19mYXRhbF9lcnJvciAiXAotUGxlYXNlIGluc3RhbGwgR05V
IEF3aywgb3IgJ2V4cG9ydCBBV0s9L3BhdGgvdG8vZ251L2F3aycuIgotCi0gICAgZnVuY192ZXJi
b3NlICJmb3VuZCAnJEFXSycuIgotCi0gICAgcmVxdWlyZV9BV0s9OgotfQotCi0KLSMjIC0tLS0t
LS0tLS0tLS0tLSAjIwotIyMgQ29yZSBmdW5jdGlvbnMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0g
IyMKLQotIyBmdW5jX2luY2x1ZGUgTElORQotIyAtLS0tLS0tLS0tLS0tLS0tLQotIyBPdXRwdXQg
dGhlIGNvbnRlbnRzIG9mIGZpbGUgaW5jbHVkZWQgYnkgTElORS4KLWZ1bmNfaW5jbHVkZSAoKQot
ewotICAgICRyZXF1aXJlX0FXSwotCi0gICAgdGVzdCAtZiAiJDEiIFwKLSAgICAgICAgfHwgZnVu
Y19mYXRhbF9lcnJvciAiZmlsZSAnJDEnIG5vdCBmb3VuZCIKLQotICAgIF9HX3NjcmlwdGRpcj1g
ZWNobyAiJDEiIHwkU0VEICdzfFteL10qJHx8J2AKLSAgICB0ZXN0IC1uICIkX0dfc2NyaXB0ZGly
IiB8fCBfR19zY3JpcHRkaXI9Ii4vIgotCi0gICAgJEFXSyAnCi0gICAgICAgIEJFR0lOIHsgbWFn
aWMgPSAnJHtfUkVDVVJTRV9NQUdJQy0wfSc7IH0KLQotICAgICAgICAvXiMhLyAmJiBtYWdpYyA9
PSAwIHsKLSAgICAgICAgICAgIHByaW50ICQwOwotICAgICAgICAgICAgcHJpbnQgIiMjIERPIE5P
VCBFRElUIC0gVGhpcyBmaWxlIGdlbmVyYXRlZCBmcm9tICckMSciOwotICAgICAgICAgICAgcHJp
bnQgIiMjICAgICAgICAgICAgICAgYnkgJyRwcm9nbmFtZScgdickc2NyaXB0dmVyc2lvbiciOwot
ICAgICAgICAgICAgbWFnaWMrKzsKLSAgICAgICAgICAgIG5leHQ7Ci0gICAgICAgIH0KLQotICAg
ICAgICAvXlwuIFsnXCcnIl0uKlsnXCcnIl0kLyB7Ci0gICAgICAgICAgICBmaWxlID0gc3Vic3Ry
ICgkMiwgMiwgbGVuZ3RoICgkMikgLTIpOwotCSAgICBzeXN0ZW0gKHNwcmludGYgKCJlbnYgX1JF
Q1VSU0VfTUFHSUM9JWQgJyRwcm9ncGF0aCcgJXMiLCBtYWdpYywgZmlsZSkpOwotICAgICAgICAg
ICAgbmV4dDsKLSAgICAgICAgfQotCi0gICAgICAgIC9eXC4gYGVjaG8gW15gXSpgWydcJyciXVte
J1wnJyJdKlsnXCcnIl0kLyB7Ci0gICAgICAgICAgICB0YWlsID0gc3Vic3RyICgkMCwgbWF0Y2gg
KCQwLCAvYFsnXCcnIl0vKSk7Ci0JICAgIGZpbGUgPSBzdWJzdHIgKHRhaWwsIDMsIGxlbmd0aCAo
dGFpbCkgLTMpOwotCSAgICBzeXN0ZW0gKHNwcmludGYgKCJlbnYgX1JFQ1VSU0VfTUFHSUM9JWQg
JyRwcm9ncGF0aCcgJyIkX0dfc2NyaXB0ZGlyIiclcyIsIG1hZ2ljLCBmaWxlKSk7Ci0gICAgICAg
ICAgICBuZXh0OwotICAgICAgICB9Ci0KLSAgICAgICAgeyBwcmludDsgfQotICAgICcgPCAiJDEi
Ci19Ci0KLWZ1bmNfaW5jbHVkZSAiJDEiCi0KLWV4aXQgMAotCi0jIExvY2FsIHZhcmlhYmxlczoK
LSMgbW9kZTogc2hlbGwtc2NyaXB0Ci0jIHNoLWluZGVudGF0aW9uOiAyCi0jIGV2YWw6IChhZGQt
aG9vayAnYmVmb3JlLXNhdmUtaG9vayAndGltZS1zdGFtcCkKLSMgdGltZS1zdGFtcC1wYXR0ZXJu
OiAiMzAvc2NyaXB0dmVyc2lvbj0lOnktJTAybS0lMDJkLiUwMkg7ICMgVVRDIgotIyB0aW1lLXN0
YW1wLXRpbWUtem9uZTogIlVUQyIKLSMgRW5kOgpkaWZmIC0tZ2l0IGEvZ2wvYnVpbGQtYXV4L29w
dGlvbnMtcGFyc2VyIGIvZ2wvYnVpbGQtYXV4L29wdGlvbnMtcGFyc2VyCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyMGRiZjU3NS4uMDAwMDAwMDAKLS0tIGEvZ2wvYnVpbGQtYXV4L29w
dGlvbnMtcGFyc2VyCisrKyAvZGV2L251bGwKQEAgLTEsNjg1ICswLDAgQEAKLSMhIC9iaW4vc2gK
LQotIyBBIHBvcnRhYmxlLCBwbHVnZ2FibGUgb3B0aW9uIHBhcnNlciBmb3IgQm91cm5lIHNoZWxs
LgotIyBXcml0dGVuIGJ5IEdhcnkgVi4gVmF1Z2hhbiwgMjAxMAotCi0jIFRoaXMgaXMgZnJlZSBz
b2Z0d2FyZS4gIFRoZXJlIGlzIE5PIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IKLSMgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgotIwotIyBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxOSwgMjAyMSwgMjAyMyBCb290c3RyYXAgQXV0aG9ycwotIwotIyBUaGlz
IGZpbGUgaXMgZHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNl
Ci0jIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGFuZCBHUEwgdmVyc2lv
biAyIG9yIGxhdGVyCi0jIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5odG1s
Pi4gIFlvdSBtdXN0IGFwcGx5IG9uZSBvZgotIyB0aGVzZSBsaWNlbnNlcyB3aGVuIHVzaW5nIG9y
IHJlZGlzdHJpYnV0aW5nIHRoaXMgc29mdHdhcmUgb3IgYW55IG9mCi0jIHRoZSBmaWxlcyB3aXRo
aW4gaXQuICBTZWUgdGhlIFVSTHMgYWJvdmUsIG9yIHRoZSBmaWxlIGBMSUNFTlNFYAotIyBpbmNs
dWRlZCBpbiB0aGUgQm9vdHN0cmFwIGRpc3RyaWJ1dGlvbiBmb3IgdGhlIGZ1bGwgbGljZW5zZSB0
ZXh0cy4KLQotIyBQbGVhc2UgcmVwb3J0IGJ1Z3Mgb3IgcHJvcG9zZSBwYXRjaGVzIHRvOgotIyA8
aHR0cHM6Ly9naXRodWIuY29tL2dudWxpYi1tb2R1bGVzL2Jvb3RzdHJhcC9pc3N1ZXM+Ci0KLSMg
U2V0IGEgdmVyc2lvbiBzdHJpbmcgZm9yIHRoaXMgc2NyaXB0Lgotc2NyaXB0dmVyc2lvbj0yMDE5
LTAyLTE5LjE1OyAjIFVUQwotCi0KLSMjIC0tLS0tLSAjIwotIyMgVXNhZ2UuICMjCi0jIyAtLS0t
LS0gIyMKLQotIyBUaGlzIGZpbGUgaXMgYSBsaWJyYXJ5IGZvciBwYXJzaW5nIG9wdGlvbnMgaW4g
eW91ciBzaGVsbCBzY3JpcHRzIGFsb25nCi0jIHdpdGggYXNzb3J0ZWQgb3RoZXIgdXNlZnVsIHN1
cHBvcnRpbmcgZmVhdHVyZXMgdGhhdCB5b3UgY2FuIG1ha2UgdXNlCi0jIG9mIHRvby4KLSMKLSMg
Rm9yIHRoZSBzaW1wbGVzdCBzY3JpcHRzIHlvdSBtaWdodCBuZWVkIG9ubHk6Ci0jCi0jICAgIyEv
YmluL3NoCi0jICAgLiByZWxhdGl2ZS9wYXRoL3RvL2Z1bmNsaWIuc2gKLSMgICAuIHJlbGF0aXZl
L3BhdGgvdG8vb3B0aW9ucy1wYXJzZXIKLSMgICBzY3JpcHR2ZXJzaW9uPTEuMAotIyAgIGZ1bmNf
b3B0aW9ucyAkezErIiRAIn0KLSMgICBldmFsIHNldCBkdW1teSAiJGZ1bmNfb3B0aW9uc19yZXN1
bHQiOyBzaGlmdAotIyAgIC4uLnJlc3Qgb2YgeW91ciBzY3JpcHQuLi4KLSMKLSMgSW4gb3JkZXIg
Zm9yIHRoZSAnLS12ZXJzaW9uJyBvcHRpb24gdG8gd29yaywgeW91IHdpbGwgbmVlZCB0byBoYXZl
IGEKLSMgc3VpdGFibHkgZm9ybWF0dGVkIGNvbW1lbnQgbGlrZSB0aGUgb25lIGF0IHRoZSB0b3Ag
b2YgdGhpcyBmaWxlCi0jIHN0YXJ0aW5nIHdpdGggJyMgV3JpdHRlbiBieSAnIGFuZCBlbmRpbmcg
d2l0aCAnIyBDb3B5cmlnaHQnLgotIwotIyBGb3IgJy1oJyBhbmQgJy0taGVscCcgdG8gd29yaywg
eW91IHdpbGwgYWxzbyBuZWVkIGEgb25lIGxpbmUKLSMgZGVzY3JpcHRpb24gb2YgeW91ciBzY3Jp
cHQncyBwdXJwb3NlIGluIGEgY29tbWVudCBkaXJlY3RseSBhYm92ZSB0aGUKLSMgJyMgV3JpdHRl
biBieSAnIGxpbmUsIGxpa2UgdGhlIG9uZSBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KLSMKLSMg
VGhlIGRlZmF1bHQgb3B0aW9ucyBhbHNvIHN1cHBvcnQgJy0tZGVidWcnLCB3aGljaCB3aWxsIHR1
cm4gb24gc2hlbGwKLSMgZXhlY3V0aW9uIHRyYWNpbmcgKHNlZSB0aGUgY29tbWVudCBhYm92ZSBk
ZWJ1Z19jbWQgYmVsb3cgZm9yIGFub3RoZXIKLSMgdXNlKSwgYW5kICctLXZlcmJvc2UnIGFuZCB0
aGUgZnVuY192ZXJib3NlIGZ1bmN0aW9uIHRvIGFsbG93IHlvdXIgc2NyaXB0Ci0jIHRvIGRpc3Bs
YXkgdmVyYm9zZSBtZXNzYWdlcyBvbmx5IHdoZW4geW91ciB1c2VyIGhhcyBzcGVjaWZpZWQKLSMg
Jy0tdmVyYm9zZScuCi0jCi0jIEFmdGVyIHNvdXJjaW5nIHRoaXMgZmlsZSwgeW91IGNhbiBwbHVn
IGluIHByb2Nlc3NpbmcgZm9yIGFkZGl0aW9uYWwKLSMgb3B0aW9ucyBieSBhbWVuZGluZyB0aGUg
dmFyaWFibGVzIGZyb20gdGhlICdDb25maWd1cmF0aW9uJyBzZWN0aW9uCi0jIGJlbG93LCBhbmQg
Zm9sbG93aW5nIHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhlICdPcHRpb24gcGFyc2luZycKLSMgc2Vj
dGlvbiBmdXJ0aGVyIGRvd24uCi0KLSMjIC0tLS0tLS0tLS0tLS0tICMjCi0jIyBDb25maWd1cmF0
aW9uLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBZb3Ugc2hvdWxkIG92ZXJyaWRlIHRo
ZXNlIHZhcmlhYmxlcyBpbiB5b3VyIHNjcmlwdCBhZnRlciBzb3VyY2luZyB0aGlzCi0jIGZpbGUg
c28gdGhhdCB0aGV5IHJlZmxlY3QgdGhlIGN1c3RvbWlzYXRpb25zIHlvdSBoYXZlIGFkZGVkIHRv
IHRoZQotIyBvcHRpb24gcGFyc2VyLgotCi0jIFRoZSB1c2FnZSBsaW5lIGZvciBvcHRpb24gcGFy
c2luZyBlcnJvcnMgYW5kIHRoZSBzdGFydCBvZiAnLWgnIGFuZAotIyAnLS1oZWxwJyBvdXRwdXQg
bWVzc2FnZXMuIFlvdSBjYW4gZW1iZWQgc2hlbGwgdmFyaWFibGVzIGZvciBkZWxheWVkCi0jIGV4
cGFuc2lvbiBhdCB0aGUgdGltZSB0aGUgbWVzc2FnZSBpcyBkaXNwbGF5ZWQsIGJ1dCB5b3Ugd2ls
bCBuZWVkIHRvCi0jIHF1b3RlIG90aGVyIHNoZWxsIG1ldGEtY2hhcmFjdGVycyBjYXJlZnVsbHkg
dG8gcHJldmVudCB0aGVtIGJlaW5nCi0jIGV4cGFuZGVkIHdoZW4gdGhlIGNvbnRlbnRzIGFyZSBl
dmFsZWQuCi11c2FnZT0nJHByb2dwYXRoIFtPUFRJT05dLi4uJwotCi0jIFNob3J0IGhlbHAgbWVz
c2FnZSBpbiByZXNwb25zZSB0byAnLWgnIGFuZCAnLS1oZWxwJy4gIEFkZCB0byB0aGlzIG9yCi0j
IG92ZXJyaWRlIGl0IGFmdGVyIHNvdXJjaW5nIHRoaXMgbGlicmFyeSB0byByZWZsZWN0IHRoZSBm
dWxsIHNldCBvZgotIyBvcHRpb25zIHlvdXIgc2NyaXB0IGFjY2VwdHMuCi11c2FnZV9tZXNzYWdl
PSJcCi0gICAgICAgLS1kZWJ1ZyAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZwot
ICAgLVcsIC0td2FybmluZ3M9Q0FURUdPUlkKLSAgICAgICAgICAgICAgICAgICAgICByZXBvcnQg
dGhlIHdhcm5pbmdzIGZhbGxpbmcgaW4gQ0FURUdPUlkgW2FsbF0KLSAgIC12LCAtLXZlcmJvc2Ug
ICAgICB2ZXJib3NlbHkgcmVwb3J0IHByb2Nlc3NpbmcKLSAgICAgICAtLXZlcnNpb24gICAgICBw
cmludCB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0gICAtaCwgLS1oZWxwICAgICAgICAg
cHJpbnQgc2hvcnQgb3IgbG9uZyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKLSIKLQotIyBBZGRpdGlv
bmFsIHRleHQgYXBwZW5kZWQgdG8gJ3VzYWdlX21lc3NhZ2UnIGluIHJlc3BvbnNlIHRvICctLWhl
bHAnLgotbG9uZ19oZWxwX21lc3NhZ2U9IgotV2FybmluZyBjYXRlZ29yaWVzIGluY2x1ZGU6Ci0g
ICAgICAgJ2FsbCcgICAgICAgICAgc2hvdyBhbGwgd2FybmluZ3MKLSAgICAgICAnbm9uZScgICAg
ICAgICB0dXJuIG9mZiBhbGwgdGhlIHdhcm5pbmdzCi0gICAgICAgJ2Vycm9yJyAgICAgICAgd2Fy
bmluZ3MgYXJlIHRyZWF0ZWQgYXMgZmF0YWwgZXJyb3JzIgotCi0jIEhlbHAgbWVzc2FnZSBwcmlu
dGVkIGJlZm9yZSBmYXRhbCBvcHRpb24gcGFyc2luZyBlcnJvcnMuCi1mYXRhbF9oZWxwPSJUcnkg
J1wkcHJvZ25hbWUgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCi0KLQotCi0jIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBIb29rIGZ1bmN0aW9uIG1hbmFnZW1lbnQuICMj
Ci0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0KLSMgVGhpcyBzZWN0aW9uIGNvbnRh
aW5zIGZ1bmN0aW9ucyBmb3IgYWRkaW5nLCByZW1vdmluZywgYW5kIHJ1bm5pbmcgaG9va3MKLSMg
aW4gdGhlIG1haW4gY29kZS4gIEEgaG9vayBpcyBqdXN0IGEgbGlzdCBvZiBmdW5jdGlvbiBuYW1l
cyB0aGF0IGNhbiBiZQotIyBydW4gaW4gb3JkZXIgbGF0ZXIgb24uCi0KLSMgZnVuY19ob29rYWJs
ZSBGVU5DX05BTUUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgRGVjbGFyZSB0aGF0IEZV
TkNfTkFNRSB3aWxsIHJ1biBob29rcyBhZGRlZCB3aXRoCi0jICdmdW5jX2FkZF9ob29rIEZVTkNf
TkFNRSAuLi4nLgotZnVuY19ob29rYWJsZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1
bmNfYXBwZW5kIGhvb2thYmxlX2ZucyAiICQxIgotfQotCi0KLSMgZnVuY19hZGRfaG9vayBGVU5D
X05BTUUgSE9PS19GVU5DCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBS
ZXF1ZXN0IHRoYXQgRlVOQ19OQU1FIGNhbGwgSE9PS19GVU5DIGJlZm9yZSBpdCByZXR1cm5zLiAg
RlVOQ19OQU1FIG11c3QKLSMgZmlyc3QgaGF2ZSBiZWVuIGRlY2xhcmVkICJob29rYWJsZSIgYnkg
YSBjYWxsIHRvICdmdW5jX2hvb2thYmxlJy4KLWZ1bmNfYWRkX2hvb2sgKCkKLXsKLSAgICAkZGVi
dWdfY21kCi0KLSAgICBjYXNlICIgJGhvb2thYmxlX2ZucyAiIGluCi0gICAgICAqIiAkMSAiKikg
OzsKLSAgICAgICopIGZ1bmNfZmF0YWxfZXJyb3IgIickMScgZG9lcyBub3QgYWNjZXB0IGhvb2sg
ZnVuY3Rpb25zLiIgOzsKLSAgICBlc2FjCi0KLSAgICBldmFsIGZ1bmNfYXBwZW5kICR7MX1faG9v
a3MgJyIgJDIiJwotfQotCi0KLSMgZnVuY19yZW1vdmVfaG9vayBGVU5DX05BTUUgSE9PS19GVU5D
Ci0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBSZW1vdmUgSE9PS19G
VU5DIGZyb20gdGhlIGxpc3Qgb2YgaG9vayBmdW5jdGlvbnMgdG8gYmUgY2FsbGVkIGJ5Ci0jIEZV
TkNfTkFNRS4KLWZ1bmNfcmVtb3ZlX2hvb2sgKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBl
dmFsICR7MX1faG9va3M9J2AkRUNITyAiXCQnJDEnX2hvb2tzIiB8JFNFRCAic3wgJyQyJ3x8ImAn
Ci19Ci0KLQotIyBmdW5jX3Byb3BhZ2F0ZV9yZXN1bHQgRlVOQ19OQU1FX0EgRlVOQ19OQU1FX0IK
LSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIElmIHRo
ZSAqX3Jlc3VsdCB2YXJpYWJsZSBvZiBGVU5DX05BTUVfQSBfaXMgc2V0XywgYXNzaWduIGl0cyB2
YWx1ZSB0bwotIyAqX3Jlc3VsdCB2YXJpYWJsZSBvZiBGVU5DX05BTUVfQi4KLWZ1bmNfcHJvcGFn
YXRlX3Jlc3VsdCAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1bmNfcHJvcGFnYXRlX3Jl
c3VsdF9yZXN1bHQ9OgotICAgIGlmIGV2YWwgInRlc3QgXCJcJHskezF9X3Jlc3VsdCtzZXR9XCIg
PSBzZXQiCi0gICAgdGhlbgotICAgICAgZXZhbCAiJHsyfV9yZXN1bHQ9XCQkezF9X3Jlc3VsdCIK
LSAgICBlbHNlCi0gICAgICBmdW5jX3Byb3BhZ2F0ZV9yZXN1bHRfcmVzdWx0PWZhbHNlCi0gICAg
ZmkKLX0KLQotCi0jIGZ1bmNfcnVuX2hvb2tzIEZVTkNfTkFNRSBbQVJHXS4uLgotIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUnVuIGFsbCBob29rIGZ1bmN0aW9ucyByZWdp
c3RlcmVkIHRvIEZVTkNfTkFNRS4KLSMgSXQncyBhc3N1bWVkIHRoYXQgdGhlIGxpc3Qgb2YgaG9v
ayBmdW5jdGlvbnMgY29udGFpbnMgbm90aGluZyBtb3JlCi0jIHRoYW4gYSB3aGl0ZXNwYWNlLWRl
bGltaXRlZCBsaXN0IG9mIGxlZ2FsIHNoZWxsIGZ1bmN0aW9uIG5hbWVzLCBhbmQKLSMgbm8gZWZm
b3J0IGlzIHdhc3RlZCB0cnlpbmcgdG8gY2F0Y2ggc2hlbGwgbWV0YS1jaGFyYWN0ZXJzIG9yIHBy
ZXNlcnZlCi0jIHdoaXRlc3BhY2UuCi1mdW5jX3J1bl9ob29rcyAoKQotewotICAgICRkZWJ1Z19j
bWQKLQotICAgIGNhc2UgIiAkaG9va2FibGVfZm5zICIgaW4KLSAgICAgICoiICQxICIqKSA7Owot
ICAgICAgKikgZnVuY19mYXRhbF9lcnJvciAiJyQxJyBkb2VzIG5vdCBzdXBwb3J0IGhvb2sgZnVu
Y3Rpb25zLiIgOzsKLSAgICBlc2FjCi0KLSAgICBldmFsIF9HX2hvb2tfZm5zPVwkJDFfaG9va3M7
IHNoaWZ0Ci0KLSAgICBmb3IgX0dfaG9vayBpbiAkX0dfaG9va19mbnM7IGRvCi0gICAgICBmdW5j
X3Vuc2V0ICIke19HX2hvb2t9X3Jlc3VsdCIKLSAgICAgIGV2YWwgJF9HX2hvb2sgJyR7MSsiJEAi
fScKLSAgICAgIGZ1bmNfcHJvcGFnYXRlX3Jlc3VsdCAkX0dfaG9vayBmdW5jX3J1bl9ob29rcwot
ICAgICAgaWYgJGZ1bmNfcHJvcGFnYXRlX3Jlc3VsdF9yZXN1bHQ7IHRoZW4KLSAgICAgICAgZXZh
bCBzZXQgZHVtbXkgIiRmdW5jX3J1bl9ob29rc19yZXN1bHQiOyBzaGlmdAotICAgICAgZmkKLSAg
ICBkb25lCi19Ci0KLQotCi0jIyAtLS0tLS0tLS0tLS0tLS0gIyMKLSMjIE9wdGlvbiBwYXJzaW5n
LiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tICMjCi0KLSMgSW4gb3JkZXIgdG8gYWRkIHlvdXIgb3du
IG9wdGlvbiBwYXJzaW5nIGhvb2tzLCB5b3UgbXVzdCBhY2NlcHQgdGhlCi0jIGZ1bGwgcG9zaXRp
b25hbCBwYXJhbWV0ZXIgbGlzdCBmcm9tIHlvdXIgaG9vayBmdW5jdGlvbi4gIFlvdSBtYXkgcmVt
b3ZlCi0jIG9yIGVkaXQgYW55IG9wdGlvbnMgdGhhdCB5b3UgYWN0aW9uLCBhbmQgdGhlbiBwYXNz
IGJhY2sgdGhlIHJlbWFpbmluZwotIyB1bnByb2Nlc3NlZCBvcHRpb25zIGluICc8aG9va2VkX2Z1
bmN0aW9uX25hbWU+X3Jlc3VsdCcsIGVzY2FwZWQKLSMgc3VpdGFibHkgZm9yICdldmFsJy4KLSMK
LSMgVGhlICc8aG9va2VkX2Z1bmN0aW9uX25hbWU+X3Jlc3VsdCcgdmFyaWFibGUgaXMgYXV0b21h
dGljYWxseSB1bnNldAotIyBiZWZvcmUgeW91ciBob29rIGdldHMgY2FsbGVkOyBmb3IgYmVzdCBw
ZXJmb3JtYW5jZSwgb25seSBzZXQgdGhlCi0jICpfcmVzdWx0IHZhcmlhYmxlIHdoZW4gbmVjZXNz
YXJ5IChpLmUuIGRvbid0IGNhbGwgdGhlICdmdW5jX3F1b3RlJwotIyBmdW5jdGlvbiB1bm5lY2Vz
c2FyaWx5IGJlY2F1c2UgaXQgY2FuIGJlIGFuIGV4cGVuc2l2ZSBvcGVyYXRpb24gb24gc29tZQot
IyBtYWNoaW5lcykuCi0jCi0jIExpa2UgdGhpczoKLSMKLSMgICAgbXlfb3B0aW9uc19wcmVwICgp
Ci0jICAgIHsKLSMgICAgICAgICRkZWJ1Z19jbWQKLSMKLSMgICAgICAgICMgRXh0ZW5kIHRoZSBl
eGlzdGluZyB1c2FnZSBtZXNzYWdlLgotIyAgICAgICAgdXNhZ2VfbWVzc2FnZT0kdXNhZ2VfbWVz
c2FnZScKLSMgICAgICAtcywgLS1zaWxlbnQgICAgICAgZG9uJ1wnJ3QgcHJpbnQgaW5mb3JtYXRp
b25hbCBtZXNzYWdlcwotIyAgICAnCi0jICAgICAgICAjIE5vIGNoYW5nZSBpbiAnJEAnIChpZ25v
cmVkIGNvbXBsZXRlbHkgYnkgdGhpcyBob29rKS4gIExlYXZlCi0jICAgICAgICAjIG15X29wdGlv
bnNfcHJlcF9yZXN1bHQgdmFyaWFibGUgaW50YWN0LgotIyAgICB9Ci0jICAgIGZ1bmNfYWRkX2hv
b2sgZnVuY19vcHRpb25zX3ByZXAgbXlfb3B0aW9uc19wcmVwCi0jCi0jCi0jICAgIG15X3NpbGVu
dF9vcHRpb24gKCkKLSMgICAgewotIyAgICAgICAgJGRlYnVnX2NtZAotIwotIyAgICAgICAgYXJn
c19jaGFuZ2VkPWZhbHNlCi0jCi0jICAgICAgICAjIE5vdGUgdGhhdCwgZm9yIGVmZmljaWVuY3ks
IHdlIHBhcnNlIGFzIG1hbnkgb3B0aW9ucyBhcyB3ZSBjYW4KLSMgICAgICAgICMgcmVjb2duaXNl
IGluIGEgbG9vcCBiZWZvcmUgcGFzc2luZyB0aGUgcmVtYWluZGVyIGJhY2sgdG8gdGhlCi0jICAg
ICAgICAjIGNhbGxlciBvbiB0aGUgZmlyc3QgdW5yZWNvZ25pc2VkIGFyZ3VtZW50IHdlIGVuY291
bnRlci4KLSMgICAgICAgIHdoaWxlIHRlc3QgJCMgLWd0IDA7IGRvCi0jICAgICAgICAgIG9wdD0k
MTsgc2hpZnQKLSMgICAgICAgICAgY2FzZSAkb3B0IGluCi0jICAgICAgICAgICAgLS1zaWxlbnR8
LXMpIG9wdF9zaWxlbnQ9OgotIyAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzX2NoYW5nZWQ9
OgotIyAgICAgICAgICAgICAgICAgICAgICAgICA7OwotIyAgICAgICAgICAgICMgU2VwYXJhdGUg
bm9uLWFyZ3VtZW50IHNob3J0IG9wdGlvbnM6Ci0jICAgICAgICAgICAgLXMqKSAgICAgICAgIGZ1
bmNfc3BsaXRfc2hvcnRfb3B0ICIkX0dfb3B0IgotIyAgICAgICAgICAgICAgICAgICAgICAgICBz
ZXQgZHVtbXkgIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lIiBcCi0jICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLSRmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmciICR7MSsiJEAifQotIyAg
ICAgICAgICAgICAgICAgICAgICAgICBzaGlmdAotIyAgICAgICAgICAgICAgICAgICAgICAgICBh
cmdzX2NoYW5nZWQ9OgotIyAgICAgICAgICAgICAgICAgICAgICAgICA7OwotIyAgICAgICAgICAg
ICopICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgZmlyc3QgdW5yZWNvZ25pc2VkIG9wdGlvbiAi
JF9HX29wdCIKLSMgICAgICAgICAgICAgICAgICAgICAgICAgIyBpcyBhZGRlZCBiYWNrIHRvICIk
QCIgaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVyLAotIyAgICAgICAgICAgICAgICAgICAgICAgICAj
IGlmICRhcmdzX2NoYW5nZWQgd2FzIHNldCB0byAndHJ1ZScuCi0jICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldCBkdW1teSAiJF9HX29wdCIgJHsxKyIkQCJ9OyBzaGlmdDsgYnJlYWsgOzsKLSMg
ICAgICAgICAgZXNhYwotIyAgICAgICAgZG9uZQotIwotIyAgICAgICAgIyBPbmx5IGNhbGwgJ2Z1
bmNfcXVvdGUnIGhlcmUgaWYgd2UgcHJvY2Vzc2VkIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4KLSMg
ICAgICAgIGlmICRhcmdzX2NoYW5nZWQ7IHRoZW4KLSMgICAgICAgICAgZnVuY19xdW90ZSBldmFs
ICR7MSsiJEAifQotIyAgICAgICAgICBteV9zaWxlbnRfb3B0aW9uX3Jlc3VsdD0kZnVuY19xdW90
ZV9yZXN1bHQKLSMgICAgICAgIGZpCi0jICAgIH0KLSMgICAgZnVuY19hZGRfaG9vayBmdW5jX3Bh
cnNlX29wdGlvbnMgbXlfc2lsZW50X29wdGlvbgotIwotIwotIyAgICBteV9vcHRpb25fdmFsaWRh
dGlvbiAoKQotIyAgICB7Ci0jICAgICAgICAkZGVidWdfY21kCi0jCi0jICAgICAgICAkb3B0X3Np
bGVudCAmJiAkb3B0X3ZlcmJvc2UgJiYgZnVuY19mYXRhbF9oZWxwICJcCi0jICAgICctLXNpbGVu
dCcgYW5kICctLXZlcmJvc2UnIG9wdGlvbnMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iCi0jICAg
IH0KLSMgICAgZnVuY19hZGRfaG9vayBmdW5jX3ZhbGlkYXRlX29wdGlvbnMgbXlfb3B0aW9uX3Zh
bGlkYXRpb24KLSMKLSMgWW91J2xsIGFsc28gbmVlZCB0byBtYW51YWxseSBhbWVuZCAkdXNhZ2Vf
bWVzc2FnZSB0byByZWZsZWN0IHRoZSBleHRyYQotIyBvcHRpb25zIHlvdSBwYXJzZS4gIEl0J3Mg
cHJlZmVyYWJsZSB0byBhcHBlbmQgaWYgeW91IGNhbiwgc28gdGhhdAotIyBtdWx0aXBsZSBvcHRp
b24gcGFyc2luZyBob29rcyBjYW4gYmUgYWRkZWQgc2FmZWx5LgotCi0KLSMgZnVuY19vcHRpb25z
X2ZpbmlzaCBbQVJHXS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEZpbmlz
aGluZyB0aGUgb3B0aW9uIHBhcnNlIGxvb3AgKGNhbGwgJ2Z1bmNfb3B0aW9ucycgaG9va3MgQVRN
KS4KLWZ1bmNfb3B0aW9uc19maW5pc2ggKCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBmdW5j
X3J1bl9ob29rcyBmdW5jX29wdGlvbnMgJHsxKyIkQCJ9Ci0gICAgZnVuY19wcm9wYWdhdGVfcmVz
dWx0IGZ1bmNfcnVuX2hvb2tzIGZ1bmNfb3B0aW9uc19maW5pc2gKLX0KLQotCi0jIGZ1bmNfb3B0
aW9ucyBbQVJHXS4uLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQWxsIHRoZSBmdW5jdGlv
bnMgY2FsbGVkIGluc2lkZSBmdW5jX29wdGlvbnMgYXJlIGhvb2thYmxlLiBTZWUgdGhlCi0jIGlu
ZGl2aWR1YWwgaW1wbGVtZW50YXRpb25zIGZvciBkZXRhaWxzLgotZnVuY19ob29rYWJsZSBmdW5j
X29wdGlvbnMKLWZ1bmNfb3B0aW9ucyAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIF9HX29w
dGlvbnNfcXVvdGVkPWZhbHNlCi0KLSAgICBmb3IgbXlfZnVuYyBpbiBvcHRpb25zX3ByZXAgcGFy
c2Vfb3B0aW9ucyB2YWxpZGF0ZV9vcHRpb25zIG9wdGlvbnNfZmluaXNoCi0gICAgZG8KLSAgICAg
IGZ1bmNfdW5zZXQgZnVuY18ke215X2Z1bmN9X3Jlc3VsdAotICAgICAgZnVuY191bnNldCBmdW5j
X3J1bl9ob29rc19yZXN1bHQKLSAgICAgIGV2YWwgZnVuY18kbXlfZnVuYyAnJHsxKyIkQCJ9Jwot
ICAgICAgZnVuY19wcm9wYWdhdGVfcmVzdWx0IGZ1bmNfJG15X2Z1bmMgZnVuY19vcHRpb25zCi0g
ICAgICBpZiAkZnVuY19wcm9wYWdhdGVfcmVzdWx0X3Jlc3VsdDsgdGhlbgotICAgICAgICBldmFs
IHNldCBkdW1teSAiJGZ1bmNfb3B0aW9uc19yZXN1bHQiOyBzaGlmdAotICAgICAgICBfR19vcHRp
b25zX3F1b3RlZD06Ci0gICAgICBmaQotICAgIGRvbmUKLQotICAgICRfR19vcHRpb25zX3F1b3Rl
ZCB8fCB7Ci0gICAgICAjIEFzIHdlIChmdW5jX29wdGlvbnMpIGFyZSB0b3AtbGV2ZWwgb3B0aW9u
cy1wYXJzZXIgZnVuY3Rpb24gYW5kCi0gICAgICAjIG5vYm9keSBxdW90ZWQgIiRAIiBmb3IgdXMg
eWV0LCB3ZSBuZWVkIHRvIGRvIGl0IGV4cGxpY2l0bHkgZm9yCi0gICAgICAjIGNhbGxlci4KLSAg
ICAgIGZ1bmNfcXVvdGUgZXZhbCAkezErIiRAIn0KLSAgICAgIGZ1bmNfb3B0aW9uc19yZXN1bHQ9
JGZ1bmNfcXVvdGVfcmVzdWx0Ci0gICAgfQotfQotCi0KLSMgZnVuY19vcHRpb25zX3ByZXAgW0FS
R10uLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQWxsIGluaXRpYWxpc2F0aW9u
cyByZXF1aXJlZCBiZWZvcmUgc3RhcnRpbmcgdGhlIG9wdGlvbiBwYXJzZSBsb29wLgotIyBOb3Rl
IHRoYXQgd2hlbiBjYWxsaW5nIGhvb2sgZnVuY3Rpb25zLCB3ZSBwYXNzIHRocm91Z2ggdGhlIGxp
c3Qgb2YKLSMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLiAgSWYgYSBob29rIGZ1bmN0aW9uIG1vZGlm
aWVzIHRoYXQgbGlzdCwgYW5kCi0jIG5lZWRzIHRvIHByb3BhZ2F0ZSB0aGF0IGJhY2sgdG8gcmVz
dCBvZiB0aGlzIHNjcmlwdCwgdGhlbiB0aGUgY29tcGxldGUKLSMgbW9kaWZpZWQgbGlzdCBtdXN0
IGJlIHB1dCBpbiAnZnVuY19ydW5faG9va3NfcmVzdWx0JyBiZWZvcmUgcmV0dXJuaW5nLgotZnVu
Y19ob29rYWJsZSBmdW5jX29wdGlvbnNfcHJlcAotZnVuY19vcHRpb25zX3ByZXAgKCkKLXsKLSAg
ICAkZGVidWdfY21kCi0KLSAgICAjIE9wdGlvbiBkZWZhdWx0czoKLSAgICBvcHRfdmVyYm9zZT1m
YWxzZQotICAgIG9wdF93YXJuaW5nX3R5cGVzPQotCi0gICAgZnVuY19ydW5faG9va3MgZnVuY19v
cHRpb25zX3ByZXAgJHsxKyIkQCJ9Ci0gICAgZnVuY19wcm9wYWdhdGVfcmVzdWx0IGZ1bmNfcnVu
X2hvb2tzIGZ1bmNfb3B0aW9uc19wcmVwCi19Ci0KLQotIyBmdW5jX3BhcnNlX29wdGlvbnMgW0FS
R10uLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRoZSBtYWluIG9wdGlvbiBw
YXJzaW5nIGxvb3AuCi1mdW5jX2hvb2thYmxlIGZ1bmNfcGFyc2Vfb3B0aW9ucwotZnVuY19wYXJz
ZV9vcHRpb25zICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgX0dfcGFyc2Vfb3B0aW9uc19y
ZXF1b3RlPWZhbHNlCi0gICAgIyB0aGlzIGp1c3QgZWFzZXMgZXhpdCBoYW5kbGluZwotICAgIHdo
aWxlIHRlc3QgJCMgLWd0IDA7IGRvCi0gICAgICAjIERlZmVyIHRvIGhvb2sgZnVuY3Rpb25zIGZv
ciBpbml0aWFsIG9wdGlvbiBwYXJzaW5nLCBzbyB0aGV5Ci0gICAgICAjIGdldCBwcmlvcml0eSBp
biB0aGUgZXZlbnQgb2YgcmV1c2luZyBhbiBvcHRpb24gbmFtZS4KLSAgICAgIGZ1bmNfcnVuX2hv
b2tzIGZ1bmNfcGFyc2Vfb3B0aW9ucyAkezErIiRAIn0KLSAgICAgIGZ1bmNfcHJvcGFnYXRlX3Jl
c3VsdCBmdW5jX3J1bl9ob29rcyBmdW5jX3BhcnNlX29wdGlvbnMKLSAgICAgIGlmICRmdW5jX3By
b3BhZ2F0ZV9yZXN1bHRfcmVzdWx0OyB0aGVuCi0gICAgICAgIGV2YWwgc2V0IGR1bW15ICIkZnVu
Y19wYXJzZV9vcHRpb25zX3Jlc3VsdCI7IHNoaWZ0Ci0gICAgICAgICMgRXZlbiB0aG91Z2ggd2Ug
bWF5IGhhdmUgY2hhbmdlZCAiJEAiLCB3ZSBwYXNzZWQgdGhlICIkQCIgYXJyYXkKLSAgICAgICAg
IyBkb3duIGludG8gdGhlIGhvb2sgYW5kIGl0IHF1b3RlZCBpdCBmb3IgdXMgKGJlY2F1c2Ugd2Ug
YXJlIGluCi0gICAgICAgICMgdGhpcyBpZi1icmFuY2gpLiAgTm8gbmVlZCB0byBxdW90ZSBpdCBh
Z2Fpbi4KLSAgICAgICAgX0dfcGFyc2Vfb3B0aW9uc19yZXF1b3RlPWZhbHNlCi0gICAgICBmaQot
Ci0gICAgICAjIEJyZWFrIG91dCBvZiB0aGUgbG9vcCBpZiB3ZSBhbHJlYWR5IHBhcnNlZCBldmVy
eSBvcHRpb24uCi0gICAgICB0ZXN0ICQjIC1ndCAwIHx8IGJyZWFrCi0KLSAgICAgICMgV2UgZXhw
ZWN0IHRoYXQgb25lIG9mIHRoZSBvcHRpb25zIHBhcnNlZCBpbiB0aGlzIGZ1bmN0aW9uIG1hdGNo
ZXMKLSAgICAgICMgYW5kIHRodXMgd2UgcmVtb3ZlIF9HX29wdCBmcm9tICIkQCIgYW5kIG5lZWQg
dG8gcmUtcXVvdGUuCi0gICAgICBfR19tYXRjaF9wYXJzZV9vcHRpb25zPToKLSAgICAgIF9HX29w
dD0kMQotICAgICAgc2hpZnQKLSAgICAgIGNhc2UgJF9HX29wdCBpbgotICAgICAgICAtLWRlYnVn
fC14KSAgIGRlYnVnX2NtZD0nc2V0IC14JwotICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfZWNo
byAiZW5hYmxpbmcgc2hlbGwgdHJhY2UgbW9kZSIgPiYyCi0gICAgICAgICAgICAgICAgICAgICAg
JGRlYnVnX2NtZAotICAgICAgICAgICAgICAgICAgICAgIDs7Ci0KLSAgICAgICAgLS1uby13YXJu
aW5nc3wtLW5vLXdhcm5pbmd8LS1uby13YXJuKQotICAgICAgICAgICAgICAgICAgICAgIHNldCBk
dW1teSAtLXdhcm5pbmdzIG5vbmUgJHsxKyIkQCJ9Ci0gICAgICAgICAgICAgICAgICAgICAgc2hp
ZnQKLQkJICAgICAgOzsKLQotICAgICAgICAtLXdhcm5pbmdzfC0td2FybmluZ3wtVykKLSAgICAg
ICAgICAgICAgICAgICAgICBpZiB0ZXN0ICQjID0gMCAmJiBmdW5jX21pc3NpbmdfYXJnICRfR19v
cHQ7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgICAgIF9HX3BhcnNlX29wdGlvbnNfcmVxdW90
ZT06Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAg
IGZpCi0gICAgICAgICAgICAgICAgICAgICAgY2FzZSAiICR3YXJuaW5nX2NhdGVnb3JpZXMgJDEi
IGluCi0gICAgICAgICAgICAgICAgICAgICAgICAqIiAkMSAiKikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIyB0cmFpbGluZyBzcGFjZSBwcmV2ZW50cyBtYXRjaGluZyBsYXN0ICQxIGFib3Zl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfYXBwZW5kX3VuaXEgb3B0X3dhcm5pbmdf
dHlwZXMgIiAkMSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICphbGwpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF93YXJuaW5nX3R5
cGVzPSR3YXJuaW5nX2NhdGVnb3JpZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICpub25lKQotICAgICAgICAgICAgICAgICAgICAgICAgICBv
cHRfd2FybmluZ190eXBlcz1ub25lCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdf
ZnVuYz06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIDs7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAqZXJyb3IpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdF93YXJuaW5nX3R5cGVz
PSR3YXJuaW5nX2NhdGVnb3JpZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZ19m
dW5jPWZ1bmNfZmF0YWxfZXJyb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICopCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfZmF0
YWxfZXJyb3IgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5zdXBwb3J0ZWQgd2Fy
bmluZyBjYXRlZ29yeTogJyQxJyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOzsKLSAgICAg
ICAgICAgICAgICAgICAgICBlc2FjCi0gICAgICAgICAgICAgICAgICAgICAgc2hpZnQKLSAgICAg
ICAgICAgICAgICAgICAgICA7OwotCi0gICAgICAgIC0tdmVyYm9zZXwtdikgb3B0X3ZlcmJvc2U9
OiA7OwotICAgICAgICAtLXZlcnNpb24pICAgIGZ1bmNfdmVyc2lvbiA7OwotICAgICAgICAtXD98
LWgpICAgICAgIGZ1bmNfdXNhZ2UgOzsKLSAgICAgICAgLS1oZWxwKSAgICAgICBmdW5jX2hlbHAg
OzsKLQotCSMgU2VwYXJhdGUgb3B0YXJncyB0byBsb25nIG9wdGlvbnMgKHBsdWdpbnMgbWF5IG5l
ZWQgdGhpcyk6Ci0JLS0qPSopICAgICAgICBmdW5jX3NwbGl0X2VxdWFscyAiJF9HX29wdCIKLQkg
ICAgICAgICAgICAgIHNldCBkdW1teSAiJGZ1bmNfc3BsaXRfZXF1YWxzX2xocyIgXAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAiJGZ1bmNfc3BsaXRfZXF1YWxzX3JocyIgJHsxKyIkQCJ9Ci0g
ICAgICAgICAgICAgICAgICAgICAgc2hpZnQKLSAgICAgICAgICAgICAgICAgICAgICA7OwotCi0g
ICAgICAgIyBTZXBhcmF0ZSBvcHRhcmdzIHRvIHNob3J0IG9wdGlvbnM6Ci0gICAgICAgIC1XKikK
LSAgICAgICAgICAgICAgICAgICAgICBmdW5jX3NwbGl0X3Nob3J0X29wdCAiJF9HX29wdCIKLSAg
ICAgICAgICAgICAgICAgICAgICBzZXQgZHVtbXkgIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1l
IiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIkZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJn
IiAkezErIiRAIn0KLSAgICAgICAgICAgICAgICAgICAgICBzaGlmdAotICAgICAgICAgICAgICAg
ICAgICAgIDs7Ci0KLSAgICAgICAgIyBTZXBhcmF0ZSBub24tYXJndW1lbnQgc2hvcnQgb3B0aW9u
czoKLSAgICAgICAgLVw/KnwtaCp8LXYqfC14KikKLSAgICAgICAgICAgICAgICAgICAgICBmdW5j
X3NwbGl0X3Nob3J0X29wdCAiJF9HX29wdCIKLSAgICAgICAgICAgICAgICAgICAgICBzZXQgZHVt
bXkgIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lIiBcCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICItJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyIgJHsxKyIkQCJ9Ci0gICAgICAgICAgICAg
ICAgICAgICAgc2hpZnQKLSAgICAgICAgICAgICAgICAgICAgICA7OwotCi0gICAgICAgIC0tKSAg
ICAgICAgICAgX0dfcGFyc2Vfb3B0aW9uc19yZXF1b3RlPTogOyBicmVhayA7OwotICAgICAgICAt
KikgICAgICAgICAgIGZ1bmNfZmF0YWxfaGVscCAidW5yZWNvZ25pc2VkIG9wdGlvbjogJyRfR19v
cHQnIiA7OwotICAgICAgICAqKSAgICAgICAgICAgIHNldCBkdW1teSAiJF9HX29wdCIgJHsxKyIk
QCJ9OyBzaGlmdAotICAgICAgICAgICAgICAgICAgICAgIF9HX21hdGNoX3BhcnNlX29wdGlvbnM9
ZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAg
IDs7Ci0gICAgICBlc2FjCi0KLSAgICAgIGlmICRfR19tYXRjaF9wYXJzZV9vcHRpb25zOyB0aGVu
Ci0gICAgICAgIF9HX3BhcnNlX29wdGlvbnNfcmVxdW90ZT06Ci0gICAgICBmaQotICAgIGRvbmUK
LQotICAgIGlmICRfR19wYXJzZV9vcHRpb25zX3JlcXVvdGU7IHRoZW4KLSAgICAgICMgc2F2ZSBt
b2RpZmllZCBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIGNhbGxlcgotICAgICAgZnVuY19xdW90
ZSBldmFsICR7MSsiJEAifQotICAgICAgZnVuY19wYXJzZV9vcHRpb25zX3Jlc3VsdD0kZnVuY19x
dW90ZV9yZXN1bHQKLSAgICBmaQotfQotCi0KLSMgZnVuY192YWxpZGF0ZV9vcHRpb25zIFtBUkdd
Li4uCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBQZXJmb3JtIGFueSBzYW5p
dHkgY2hlY2tzIG9uIG9wdGlvbiBzZXR0aW5ncyBhbmQvb3IgdW5jb25zdW1lZAotIyBhcmd1bWVu
dHMuCi1mdW5jX2hvb2thYmxlIGZ1bmNfdmFsaWRhdGVfb3B0aW9ucwotZnVuY192YWxpZGF0ZV9v
cHRpb25zICgpCi17Ci0gICAgJGRlYnVnX2NtZAotCi0gICAgIyBEaXNwbGF5IGFsbCB3YXJuaW5n
cyBpZiAtVyB3YXMgbm90IGdpdmVuLgotICAgIHRlc3QgLW4gIiRvcHRfd2FybmluZ190eXBlcyIg
fHwgb3B0X3dhcm5pbmdfdHlwZXM9IiAkd2FybmluZ19jYXRlZ29yaWVzIgotCi0gICAgZnVuY19y
dW5faG9va3MgZnVuY192YWxpZGF0ZV9vcHRpb25zICR7MSsiJEAifQotICAgIGZ1bmNfcHJvcGFn
YXRlX3Jlc3VsdCBmdW5jX3J1bl9ob29rcyBmdW5jX3ZhbGlkYXRlX29wdGlvbnMKLQotICAgICMg
QmFpbCBpZiB0aGUgb3B0aW9ucyB3ZXJlIHNjcmV3ZWQhCi0gICAgJGV4aXRfY21kICRFWElUX0ZB
SUxVUkUKLX0KLQotCi0KLSMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0jIyBIZWxwZXIgZnVuY3Rp
b25zLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKLQotIyBUaGlzIHNlY3Rpb24gY29udGFp
bnMgdGhlIGhlbHBlciBmdW5jdGlvbnMgdXNlZCBieSB0aGUgcmVzdCBvZiB0aGUKLSMgaG9va2Fi
bGUgb3B0aW9uIHBhcnNlciBmcmFtZXdvcmsgaW4gYXNjaWktYmV0aWNhbCBvcmRlci4KLQotCi0j
IGZ1bmNfZmF0YWxfaGVscCBBUkcuLi4KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBFY2hv
IHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBmb2xsb3dl
ZCBieQotIyBhIGhlbHAgaGludCwgYW5kIGV4aXQuCi1mdW5jX2ZhdGFsX2hlbHAgKCkKLXsKLSAg
ICAkZGVidWdfY21kCi0KLSAgICBldmFsIFwkRUNITyBcIiJVc2FnZTogJHVzYWdlIlwiCi0gICAg
ZXZhbCBcJEVDSE8gXCIiJGZhdGFsX2hlbHAiXCIKLSAgICBmdW5jX2Vycm9yICR7MSsiJEAifQot
ICAgIGV4aXQgJEVYSVRfRkFJTFVSRQotfQotCi0KLSMgZnVuY19oZWxwCi0jIC0tLS0tLS0tLQot
IyBFY2hvIGxvbmcgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLWZ1
bmNfaGVscCAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIGZ1bmNfdXNhZ2VfbWVzc2FnZQot
ICAgICRFQ0hPICIkbG9uZ19oZWxwX21lc3NhZ2UiCi0gICAgZXhpdCAwCi19Ci0KLQotIyBmdW5j
X21pc3NpbmdfYXJnIEFSR05BTUUKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVjaG8g
cHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IgYW5kIHNldCBn
bG9iYWwKLSMgZXhpdF9jbWQuCi1mdW5jX21pc3NpbmdfYXJnICgpCi17Ci0gICAgJGRlYnVnX2Nt
ZAotCi0gICAgZnVuY19lcnJvciAiTWlzc2luZyBhcmd1bWVudCBmb3IgJyQxJy4iCi0gICAgZXhp
dF9jbWQ9ZXhpdAotfQotCi0KLSMgZnVuY19zcGxpdF9lcXVhbHMgU1RSSU5HCi0jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotIyBTZXQgZnVuY19zcGxpdF9lcXVhbHNfbGhzIGFuZCBmdW5jX3Nw
bGl0X2VxdWFsc19yaHMgc2hlbGwgdmFyaWFibGVzCi0jIGFmdGVyIHNwbGl0dGluZyBTVFJJTkcg
YXQgdGhlICc9JyBzaWduLgotdGVzdCAteiAiJF9HX0hBVkVfWFNJX09QUyIgXAotICAgICYmIChl
dmFsICd4PWEvYi9jOwotICAgICAgdGVzdCA1YWEvYmIvY2MgPSAiJHsjeH0ke3glJS8qfSR7eCUv
Kn0ke3gjKi99JHt4IyMqL30iJykgMj4vZGV2L251bGwgXAotICAgICYmIF9HX0hBVkVfWFNJX09Q
Uz15ZXMKLQotaWYgdGVzdCB5ZXMgPSAiJF9HX0hBVkVfWFNJX09QUyIKLXRoZW4KLSAgIyBUaGlz
IGlzIGFuIFhTSSBjb21wYXRpYmxlIHNoZWxsLCBhbGxvd2luZyBhIGZhc3RlciBpbXBsZW1lbnRh
dGlvbi4uLgotICBldmFsICdmdW5jX3NwbGl0X2VxdWFscyAoKQotICB7Ci0gICAgICAkZGVidWdf
Y21kCi0KLSAgICAgIGZ1bmNfc3BsaXRfZXF1YWxzX2xocz0kezElJT0qfQotICAgICAgZnVuY19z
cGxpdF9lcXVhbHNfcmhzPSR7MSMqPX0KLSAgICAgIGlmIHRlc3QgIngkZnVuY19zcGxpdF9lcXVh
bHNfbGhzIiA9ICJ4JDEiOyB0aGVuCi0gICAgICAgIGZ1bmNfc3BsaXRfZXF1YWxzX3Jocz0KLSAg
ICAgIGZpCi0gIH0nCi1lbHNlCi0gICMgLi4ub3RoZXJ3aXNlIGZhbGwgYmFjayB0byB1c2luZyBl
eHByLCB3aGljaCBpcyBvZnRlbiBhIHNoZWxsIGJ1aWx0aW4uCi0gIGZ1bmNfc3BsaXRfZXF1YWxz
ICgpCi0gIHsKLSAgICAgICRkZWJ1Z19jbWQKLQotICAgICAgZnVuY19zcGxpdF9lcXVhbHNfbGhz
PWBleHByICJ4JDEiIDogJ3hcKFtePV0qXCknYAotICAgICAgZnVuY19zcGxpdF9lcXVhbHNfcmhz
PQotICAgICAgdGVzdCAieCRmdW5jX3NwbGl0X2VxdWFsc19saHM9IiA9ICJ4JDEiIFwKLSAgICAg
ICAgfHwgZnVuY19zcGxpdF9lcXVhbHNfcmhzPWBleHByICJ4JDEiIDogJ3hbXj1dKj1cKC4qXCkk
J2AKLSAgfQotZmkgI2Z1bmNfc3BsaXRfZXF1YWxzCi0KLQotIyBmdW5jX3NwbGl0X3Nob3J0X29w
dCBTSE9SVE9QVAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBTZXQgZnVuY19z
cGxpdF9zaG9ydF9vcHRfbmFtZSBhbmQgZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnIHNoZWxsCi0j
IHZhcmlhYmxlcyBhZnRlciBzcGxpdHRpbmcgU0hPUlRPUFQgYWZ0ZXIgdGhlIDJuZCBjaGFyYWN0
ZXIuCi1pZiB0ZXN0IHllcyA9ICIkX0dfSEFWRV9YU0lfT1BTIgotdGhlbgotICAjIFRoaXMgaXMg
YW4gWFNJIGNvbXBhdGlibGUgc2hlbGwsIGFsbG93aW5nIGEgZmFzdGVyIGltcGxlbWVudGF0aW9u
Li4uCi0gIGV2YWwgJ2Z1bmNfc3BsaXRfc2hvcnRfb3B0ICgpCi0gIHsKLSAgICAgICRkZWJ1Z19j
bWQKLQotICAgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnPSR7MSM/P30KLSAgICAgIGZ1bmNf
c3BsaXRfc2hvcnRfb3B0X25hbWU9JHsxJSIkZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnIn0KLSAg
fScKLWVsc2UKLSAgIyAuLi5vdGhlcndpc2UgZmFsbCBiYWNrIHRvIHVzaW5nIGV4cHIsIHdoaWNo
IGlzIG9mdGVuIGEgc2hlbGwgYnVpbHRpbi4KLSAgZnVuY19zcGxpdF9zaG9ydF9vcHQgKCkKLSAg
ewotICAgICAgJGRlYnVnX2NtZAotCi0gICAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPWBl
eHByICJ4JDEiIDogJ3hcKC0uXCknYAotICAgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnPWBl
eHByICJ4JDEiIDogJ3gtLlwoLipcKSQnYAotICB9Ci1maSAjZnVuY19zcGxpdF9zaG9ydF9vcHQK
LQotCi0jIGZ1bmNfdXNhZ2UKLSMgLS0tLS0tLS0tLQotIyBFY2hvIHNob3J0IGhlbHAgbWVzc2Fn
ZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCi1mdW5jX3VzYWdlICgpCi17Ci0gICAgJGRl
YnVnX2NtZAotCi0gICAgZnVuY191c2FnZV9tZXNzYWdlCi0gICAgJEVDSE8gIlJ1biAnJHByb2du
YW1lIC0taGVscCB8JHtQQUdFUi1tb3JlfScgZm9yIGZ1bGwgdXNhZ2UiCi0gICAgZXhpdCAwCi19
Ci0KLQotIyBmdW5jX3VzYWdlX21lc3NhZ2UKLSMgLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVjaG8g
c2hvcnQgaGVscCBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dC4KLWZ1bmNfdXNhZ2VfbWVzc2Fn
ZSAoKQotewotICAgICRkZWJ1Z19jbWQKLQotICAgIGV2YWwgXCRFQ0hPIFwiIlVzYWdlOiAkdXNh
Z2UiXCIKLSAgICBlY2hvCi0gICAgJFNFRCAtbiAnc3xeIyB8fAotICAgICAgICAvXldyaXR0ZW4g
YnkvewotICAgICAgICAgIHg7cDt4Ci0gICAgICAgIH0KLQloCi0JL15Xcml0dGVuIGJ5L3EnIDwg
IiRwcm9ncGF0aCIKLSAgICBlY2hvCi0gICAgZXZhbCBcJEVDSE8gXCIiJHVzYWdlX21lc3NhZ2Ui
XCIKLX0KLQotCi0jIGZ1bmNfdmVyc2lvbgotIyAtLS0tLS0tLS0tLS0KLSMgRWNobyB2ZXJzaW9u
IG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgotIyBUaGUgdmVyc2lvbiBtZXNz
YWdlIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSBjYWxsaW5nIGZpbGUncyBoZWFkZXIKLSMgY29tbWVu
dHMsIHdpdGggbGVhZGluZyAnIyAnIHN0cmlwcGVkOgotIyAgIDEuIEZpcnN0IGRpc3BsYXkgdGhl
IHByb2duYW1lIGFuZCB2ZXJzaW9uCi0jICAgMi4gRm9sbG93ZWQgYnkgdGhlIGhlYWRlciBjb21t
ZW50IGxpbmUgbWF0Y2hpbmcgIC9eIyBXcml0dGVuIGJ5IC8KLSMgICAzLiBUaGVuIGEgYmxhbmsg
bGluZSBmb2xsb3dlZCBieSB0aGUgZmlyc3QgZm9sbG93aW5nIGxpbmUgbWF0Y2hpbmcKLSMgICAg
ICAvXiMgQ29weXJpZ2h0IC8KLSMgICA0LiBJbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbnkgbGlu
ZXMgYmV0d2VlbiB0aGUgcHJldmlvdXMgbWF0Y2hlcywKLSMgICAgICBleGNlcHQgbGluZXMgcHJl
Y2VkaW5nIHRoZSBpbnRlcnZlbmluZyBjb21wbGV0ZWx5IGJsYW5rIGxpbmUuCi0jIEZvciBleGFt
cGxlLCBzZWUgdGhlIGhlYWRlciBjb21tZW50cyBvZiB0aGlzIGZpbGUuCi1mdW5jX3ZlcnNpb24g
KCkKLXsKLSAgICAkZGVidWdfY21kCi0KLSAgICBwcmludGYgJyVzXG4nICIkcHJvZ25hbWUgJHNj
cmlwdHZlcnNpb24iCi0gICAgJFNFRCAtbiAnCi0gICAgICAgIC9eIyBXcml0dGVuIGJ5IC8hYgot
ICAgICAgICBzfF4jIHx8OyBwOyBuCi0KLSAgICAgICAgOmZ3ZDJibG5rCi0gICAgICAgIC8uLyB7
Ci0gICAgICAgICAgbgotICAgICAgICAgIGIgZndkMmJsbmsKLSAgICAgICAgfQotICAgICAgICBw
OyBuCi0KLSAgICAgICAgOmhvbGR3cm50Ci0gICAgICAgIHN8XiMgfHwKLSAgICAgICAgc3xeIyAq
JHx8Ci0gICAgICAgIC9eQ29weXJpZ2h0IC8hewotICAgICAgICAgIC8uL0gKLSAgICAgICAgICBu
Ci0gICAgICAgICAgYiBob2xkd3JudAotICAgICAgICB9Ci0KLSAgICAgICAgc3xcKChDKVwpWyAw
LTksLV0qWyAsLV1cKFsxLTldWzAtOV0qIFwpfFwxIFwyfAotICAgICAgICBHCi0gICAgICAgIHN8
XChcblwpXG4qfFwxfGcKLSAgICAgICAgcDsgcScgPCAiJHByb2dwYXRoIgotCi0gICAgZXhpdCAk
PwotfQotCi0KLSMgTG9jYWwgdmFyaWFibGVzOgotIyBtb2RlOiBzaGVsbC1zY3JpcHQKLSMgc2gt
aW5kZW50YXRpb246IDIKLSMgZXZhbDogKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICd0aW1l
LXN0YW1wKQotIyB0aW1lLXN0YW1wLXBhdHRlcm46ICIzMC9zY3JpcHR2ZXJzaW9uPSU6eS0lMDJt
LSUwMmQuJTAySDsgIyBVVEMiCi0jIHRpbWUtc3RhbXAtdGltZS16b25lOiAiVVRDIgotIyBFbmQ6
CmRpZmYgLS1naXQgYS9nbC9kb2MvYm9vdHN0cmFwLnRleGkgYi9nbC9kb2MvYm9vdHN0cmFwLnRl
eGkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGRjODI0ZmExLi4wMDAwMDAwMAotLS0g
YS9nbC9kb2MvYm9vdHN0cmFwLnRleGkKKysrIC9kZXYvbnVsbApAQCAtMSw0ODIgKzAsMCBAQAot
QG5vZGUgQm9vdHN0cmFwCi1AY2hhcHRlciBCb290c3RyYXAKLQotVGhlIHByb2Nlc3Mgb2YgZXhl
Y3V0aW5nIHRoZSB2YXJpb3VzIHRvb2xzIHJlcXVpcmVkIHRvIGJyaW5nIGFsbCB0aGUKLWdlbmVy
YXRlZCBmaWxlcyB1cCB0byBkYXRlIGluIGEgZGlyZWN0b3J5IGZyZXNobHkgY2hlY2tlZCBvdXQg
ZnJvbQotc291cmNlIGNvbnRyb2wgY2FuIGJlIHF1aXRlIGludm9sdmVkLiAgTWFueSBHTlUgcHJv
amVjdHMgdXNlCi1AY29tbWFuZHtib290c3RyYXB9IHNjcmlwdCB0byBleGVjdXRlIHNvbWUgb3Ig
YWxsIG9mIHRoZSBmb2xsb3dpbmcgaW4gdGhlCi1jb3JyZWN0IG9yZGVyOiBAY29tbWFuZHtnbnVs
aWItdG9vbH0sIEBjb21tYW5ke2F1dG9wb2ludH0sCi1AY29tbWFuZHtsaWJ0b29saXplfSwgQGNv
bW1hbmR7YXV0b3JlY29uZn0uIE9mdGVuIHRoZXJlJ3MgYWxzbwotYWRkaXRpb25hbCBmaWxlLXBy
b2Nlc3NpbmcgYW5kIGFzc29ydGVkIGJvb2sta2VlcGluZyB0aGF0IGFsc28gZmFsbHMKLXVuZGVy
IHRoZSBjb250cm9sIG9mIEBjb21tYW5ke2Jvb3RzdHJhcH0sIGJ1dCBpdCdzIHdhc3RlZnVsIGZv
ciB0aGUKLW1haW50YWluZXJzIG9mIGFsbCB0aGVzZSBwcm9qZWN0cyB0byBtYW51YWxseSByZWlu
dmVudCBhIGN1c3RvbSBzY3JpcHQKLW9uIGEgY2FzZS1ieS1jYXNlIGJhc2lzLgotCi1HbnVsaWIg
aXMgZGVzaWduZWQgdG8gcHJvdmlkZSBhIGNlbnRyYWwgbGlicmFyeSBvZiBleGVtcGxhcgotaW1w
bGVtZW50YXRpb25zIHRvIHByb21vdGUgdGhlIHNoYXJpbmcgb2YgdXNlZnVsIGNvbW1vbiBjb2Rl
IGFtb25nCi1HTlUgcHJvamVjdCBtYWludGFpbmVycy4gSG93ZXZlciwgdGhlIGJvb3RzdHJhcHBp
bmcgbmVlZHMgb2YgdGhlc2UKLXByb2plY3RzIHZhcnkgZW5vcm1vdXNseSwgc28gR251bGliJ3Mg
QGNvbW1hbmR7Ym9vdHN0cmFwfSBuZWVkcyB0byBiZQotZXh0cmVtZWx5IEBzdHJvbmd7Y3VzdG9t
aXNhYmxlfSBhbmQgZXh0ZW5zaWJsZSwgd2l0aCBsZXNzIGVmZm9ydCB0aGFuCi13b3VsZCBiZSBv
dGhlcndpc2UgcmVxdWlyZWQgdG8gaW52ZW50IGFuIGFkLWhvYyBzb2x1dGlvbi4KLQotQG1lbnUK
LSogQ3VzdG9taXNhdGlvbjo6Ci0qIFVzYWdlIFBhdHRlcm5zOjoKLSogS25vd24gQnVnczo6Ci1A
ZW5kIG1lbnUKLQotCi1Abm9kZSBDdXN0b21pc2F0aW9uCi1Ac2VjdGlvbiBDdXN0b21pc2F0aW9u
Ci0KLVRoZXJlIGFyZSBmb3VyIGRpc3RpbmN0IHdheXMgdG8gY3VzdG9taXplIHRoZSBmdW5jdGlv
bmFsaXR5IG9mCi1AY29tbWFuZHtib290c3RyYXB9LCBhbGwgcmVxdWlyaW5nIGNyZWF0aW9uIG9m
IGEgQGZpbGV7Ym9vdHN0cmFwLmNvbmZ9Ci1maWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0
aGUgaW1wb3J0ZWQgQGNvbW1hbmR7Ym9vdHN0cmFwfSBzY3JpcHQKLWl0c2VsZi4KLQotQG1lbnUK
LSogQ29uZmlndXJhdGlvbiBWYXJpYWJsZXM6OgotKiBSZXF1aXJlIFZhcmlhYmxlczo6Ci0qIEhv
b2sgRnVuY3Rpb25zOjoKLSogRnVuY3Rpb24gUmVwbGFjZW1lbnQ6OgotQGVuZCBtZW51Ci0KLQot
QG5vZGUgQ29uZmlndXJhdGlvbiBWYXJpYWJsZXMKLUBzdWJzZWN0aW9uIENvbmZpZ3VyYXRpb24g
VmFyaWFibGVzCi0KLUZvciBhbGwgYnV0IHRoZSBtb3JlIGNvbXBsZXggY3VzdG9taXNhdGlvbnMs
IHlvdSBuZWVkIG9ubHkgY2hhbmdlCi10aGUgdmFsdWUgb2YgYSBzZWxlY3Rpb24gb2YgdGhlIGZv
bGxvd2luZyBzaGVsbCB2YXJpYWJsZXMgaW4KLUBmaWxle2Jvb3RzdHJhcC5jb25mfSwgdG8gcmVm
bGVjdCB3aGF0ZXZlciBpcyBhcHByb3ByaWF0ZSB0byB5b3VyCi1wYWNrYWdlLgotCi1AZXhhbXBs
ZQotICAgIHZjX2lnbm9yZT0uZ2l0aWdub3JlCi1AZW5kIGV4YW1wbGUKLQotQHRhYmxlIEBjb2Rl
Ci0KLUBjbmluZGV4IGJ1aWxkcmVxCi1AaXRlbSBidWlsZHJlcQotQSBuZXdsaW5lLWRlbGltaXRl
ZCBsaXN0IG9mIHRyaXBsZXMgb2YgQHN0cm9uZ3twcm9ncmFtc30gKHdoaWNoIG11c3QKLWFjY2Vw
dCB0aGUgb3B0aW9uIEBvcHRpb257LS12ZXJzaW9ufSB3aXRob3V0IGhhbmdpbmcgb3IgZmFpbGlu
ZyksIHRoZQotQHN0cm9uZ3ttaW5pbXVtIHZlcnNpb24gcmVxdWlyZWR9IChvciBqdXN0IGAtJyBp
biB0aGUgdmVyc2lvbiBmaWVsZCBpZgotYW55IHZlcnNpb24gd2lsbCBiZSBzdWZmaWNpZW50KSBh
bmQgQHN0cm9uZ3tob21lcGFnZSBVUkwgKHRvCi1oZWxwIHVzZXJzIGxvY2F0ZSBtaXNzaW5nIHBh
Y2thZ2VzKQotCi1Ac21hbGxleGFtcGxlCi1idWlsZHJlcT0nCi0gICAgICAgIGdpdCAgICAgICAg
MS41LjUgICBodHRwOi8vZ2l0LXNjbS5jb20KLSAgICAgICAgaGVscDJtYW4gICAxLjI5ICAgIGh0
dHA6Ly93d3cuZ251Lm9yZy9zL2hlbHAybWFuCi0nCi1AZW5kIHNtYWxsZXhhbXBsZQotCi1JZiB5
b3Ugc3BlY2lmeSBhIG1pbmltdW0gdmVyc2lvbiBvZiBBdXRvY29uZiB3aXRoIEBjb2Rle0FDX1BS
RVJFUX0sCi10aGF0IHZlcnNpb24gd2lsbCBiZSBjaGVja2VkIGF1dG9tYXRpY2FsbHkgd2l0aG91
dCBuZWVkaW5nIHRvIGJlCi1saXN0ZWQgaW4gQGNvZGV7YnVpbGRyZXF9LiAgU2ltaWxhcmx5IGZv
ciBhIG1pbmltdW0gQXV0b21ha2UgdmVyc2lvbgotZGVjbGFyZWQgd2l0aCBAY29kZXtBTV9JTklU
X0FVVE9NQUtFfSwgTGlidG9vbCB2ZXJzaW9uIHdpdGgKLUBjb2Rle0xUX1BSRVJFUX0sIG9yIEF1
dG9wb2ludCB2ZXJzaW9uIHdpdGggQGNvZGV7QU1fR05VX0dFVFRFWFRfVkVSU0lPTn0uCi0KLUlm
IEBjb2Rle0FCX0lOSVR9IGlzIGRlY2xhcmVkIGluIEBmaWxle2NvbmZpZ3VyZS5hY30sIHRoZW4g
YSB2ZXJzaW9ubGVzcwotcmVxdWlyZW1lbnQgZm9yIEF1dG9idWlsZCBpcyBhZGRlZCBhdXRvbWF0
aWNhbGx5LCBhbmQgZmluYWxseSBpZiB0aGVyZQotYXJlIGFueSBkaWZmIGZpbGVzIHVuZGVyIEBj
b2Rle2xvY2FsX2dsX2Rpcn0sIHRoZW4gYSB2ZXJzaW9ubGVzcwotcmVxdWlyZW1lbnQgZm9yIHBh
dGNoIGlzIGFsc28gYWRkZWQuCi0KLVdoZW4gQGNvbW1hbmR7Ym9vdHN0cmFwfSBpcyBpbnZva2Vk
LCBpdCB3aWxsIGNoZWNrIHRoYXQgYWxsIHRoZSBsaXN0ZWQKLWFuZCBhdXRvbWF0aWNhbGx5IGFk
ZGVkIHRvb2xzIGFyZSBhdmFpbGFibGUgYXQgdGhlIGdpdmVuIG1pbmltdW0gdmVyc2lvbiwKLW9y
IGVsc2UgYmFpbCBvdXQgd2l0aCBhIGRpYWdub3N0aWMuCi0KLQotQGNuaW5kZXggYnVpbGRyZXFf
cmVhZG1lCi1AaXRlbSBidWlsZHJlcV9yZWFkbWUKLU5hbWUgb2YgYSBmaWxlIGNvbnRhaW5pbmcg
aW5zdHJ1Y3Rpb25zIG9uIGluc3RhbGxpbmcgbWlzc2luZyBwYWNrYWdlcwotcmVxdWlyZWQgaW4g
QGNvZGV7YnVpbGRyZXF9LiBVc3VhbGx5LCB0aGUgaW5zdHJ1Y3Rpb25zIGF0IHRoZSBnaXZlbgot
VVJMIHNob3VsZCBiZSBzdWZmaWNpZW50LCB0aG91Z2ggc29tZSBwcm9qZWN0cyBhZGQgYWRkaXRp
b25hbCBub3RlcwotaW4gQGZpbGV7SEFDS0lOR30uCi0KLUBzbWFsbGV4YW1wbGUKLWJ1aWxkcmVx
X3JlYWRtZT1SRUFETUUtaGFja2luZwotQGVuZCBzbWFsbGV4YW1wbGUKLQotCi1AY25pbmRleCBi
dWlsZF9hdXgKLUBpdGVtIGJ1aWxkX2F1eAotVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGV4dHJhY3Rl
ZCBmcm9tIHRoZSBAY29kZXtBQ19DT05GSUdfQVVYX0RJUn0KLWRlY2xhcmF0aW9uIGluIEBmaWxl
e2NvbmZpZ3VyZS5hY30sIHRob3VnaCB5b3UgY2FuIHNwZWNpZnkgaXQgaW4KLUBmaWxle2Jvb3Rz
dHJhcC5jb25mfSBpZiB5b3UgZG9uJ3Qgb3RoZXJ3aXNlIHdhbnQgdG8gZGVjbGFyZQotQGNvZGV7
QUNfQ09ORklHX0FVWF9ESVJ9IGluIEBmaWxle2NvbmZpZ3VyZS5hY30uCi0KLUBjbmluZGV4IG1h
Y3JvX2RpcgotQGl0ZW0gbWFjcm9fZGlyCi1UaGlzIGlzIGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVk
IGZyb20gQGZpbGV7Y29uZmlndXJlLmFjfSwgb3IgaWYKLW5laXRoZXIgQGNvZGV7QUNfQ09ORklH
X01BQ1JPX0RJUlN9IG5vciBAY29kZXtBQ19DT05GSUdfTUFDUk9fRElSfSBpcwotZGVjbGFyZWQg
dGhlcmUsIHRoZSBvcHRpb24gaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBmaXJzdCBAc2FtcHst
SX0KLWZyb20gQGNvZGV7QUNMT0NBTF9BTUZMQUdTfSBpbiBAZmlsZXtNYWtlZmlsZS5hbX0gaXMg
dXNlZCBhcyBhIGxhc3QKLXJlc29ydC4gSWYgeW91IGRvbid0IHdhbnQgdG8gZGVjbGFyZSB0aGUg
bWFjcm8gZGlyZWN0b3J5IGluIGFueSBvZgotdGhvc2UgcGxhY2VzLCB0aGVuIHlvdSBjYW4gc3Bl
Y2lmeSBpdCBpbiBAZmlsZXtib290c3RyYXAuY29uZn0gYnkKLXVzaW5nIHRoZSBAY29kZXttYWNy
b19kaXJ9IHZhcmlhYmxlLgotCi1Ac21hbGxleGFtcGxlCi1tYWNyb19kaXI9YWNtNAotQGVuZCBz
bWFsbGV4YW1wbGUKLQotCi1AY25pbmRleCBwYWNrYWdlCi1AaXRlbSBwYWNrYWdlCi1UaGlzIGlz
IGF1dG9tYXRpY2FsbHkgZXh0cmFjdGVkIGJ5IGRvd25jYXNpbmcgdGhlIGZpcnN0IGFyZ3VtZW50
IHRvCi1AY29kZXtBQ19JTklUfSBpbiBAZmlsZXtjb25maWd1cmUuYWN9LCB0aG91Z2ggeW91IGNh
biBvdmVycmlkZSBpdCBoZXJlCi1pZiB5b3UgcHJlZmVyLgotCi1AY25pbmRleCBwYWNrYWdlX25h
bWUKLUBpdGVtIHBhY2thZ2VfbmFtZQotVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGV4dHJhY3RlZCBm
cm9tIHRoZSBmaXJzdCBhcmd1bWVudCB0bwotQGNvZGV7QUNfSU5JVH0gaW4gQGZpbGV7Y29uZmln
dXJlLmFjfSwgdGhvdWdoIHlvdSBjYW4gb3ZlcnJpZGUgaXQgaGVyZQotaWYgeW91IHByZWZlci4K
LQotQGNuaW5kZXggcGFja2FnZV92ZXJzaW9uCi1AaXRlbSBwYWNrYWdlX3ZlcnNpb24KLVRoaXMg
aXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQgZnJvbSB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvCi1A
Y29kZXtBQ19JTklUfSBpbiBAZmlsZXtjb25maWd1cmUuYWN9LCB0aG91Z2ggeW91IGNhbiBvdmVy
cmlkZSBpdCBoZXJlCi1pZiB5b3UgcHJlZmVyLgotCi1AY25pbmRleCBwYWNrYWdlX2J1Z3JlcG9y
dAotQGl0ZW0gcGFja2FnZV9idWdyZXBvcnQKLVRoaXMgaXMgYXV0b21hdGljYWxseSBleHRyYWN0
ZWQgZnJvbSB0aGUgdGhpcmQgYXJndW1lbnQgdG8KLUBjb2Rle0FDX0lOSVR9IGluIEBmaWxle2Nv
bmZpZ3VyZS5hY30gaWYgZ2l2ZW4sIHRob3VnaCB5b3UgY2FuIG92ZXJyaWRlCi1pdCBoZXJlIGlm
IHlvdSBwcmVmZXIuCi0KLQotQGNuaW5kZXggZG9jX2Jhc2UKLUBjbmluZGV4IGdudWxpYl9tawot
QGNuaW5kZXggZ251bGliX25hbWUKLUBjbmluZGV4IGxvY2FsX2dsX2RpcgotQGNuaW5kZXggc291
cmNlX2Jhc2UKLUBjbmluZGV4IHRlc3RzX2Jhc2UKLUBpdGVtIGRvY19iYXNlCi1AaXRlbXggZ251
bGliX21rCi1AaXRlbXggZ251bGliX25hbWUKLUBpdGVteCBsb2NhbF9nbF9kaXIKLUBpdGVteCBz
b3VyY2VfYmFzZQotQGl0ZW14IHRlc3RzX2Jhc2UKLVRoZXNlIGFyZSBub3JtYWxseSBleHRyYWN0
ZWQgZnJvbSBAZmlsZXtnbnVsaWItY2FjaGUubTR9LCByZWdhcmRsZXNzIG9mCi10aGVpciB2YWx1
ZXMgaW4gQGZpbGV7Ym9vdHN0cmFwLmNvbmZ9LgotCi1XaGVuIHRoYXQgZmlsZSBpcyBub3QgeWV0
IGNyZWF0ZWQsIHRoZW4gQGNvbW1hbmR7Ym9vdHN0cmFwfSB3aWxsCi1mYWxsLWJhY2sgYXV0b21h
dGljYWxseSB0byB0aGUgZ251bGliIGRlZmF1bHRzOyB1bmxlc3MgeW91IHNldAotYWx0ZXJuYXRp
dmUgdmFsdWVzIGhlcmUgaW4gQGZpbGV7Ym9vdHN0cmFwLmNvbmZ9LgotCi1JZiB5b3UgY2hlY2sg
QGZpbGV7Z251bGliLWNhY2hlLm00fSBpbnRvIHlvdXIgcmVwb3NpdG9yeSwgdGhlbiB0aGVzZQot
dmFsdWVzIHdpbGwgYmUgZXh0cmFjdGVkIGF1dG9tYXRpY2FsbHkuIEB4cmVme1VzYWdlIFBhdHRl
cm5zfSwgZm9yIG1vcmUKLWRldGFpbHMuCi0KLQotQGNuaW5kZXggZ251bGliX21vZHVsZXMKLUBp
dGVtIGdudWxpYl9tb2R1bGVzCi1UaGUgbGlzdCBvZiBnbnVsaWIgbW9kdWxlcyByZXF1aXJlZCBh
dCBAY29tbWFuZHtnbnVsaWItdG9vbH0gdGltZS4KLQotSWYgeW91IGNoZWNrIEBmaWxle2dudWxp
Yi1jYWNoZS5tNH0gaW50byB5b3VyIHJlcG9zaXRvcnksIHRoZW4gdGhpcyBsaXN0Ci13aWxsIGJl
IGV4dHJhY3RlZCBhdXRvbWF0aWNhbGx5LiBAeHJlZntVc2FnZSBQYXR0ZXJuc30sIGZvciBtb3Jl
Ci1kZXRhaWxzLgotCi0KLUBjbmluZGV4IGdudWxpYl9ub25fbW9kdWxlX2ZpbGVzCi1AaXRlbSBn
bnVsaWJfbm9uX21vZHVsZV9maWxlcwotRXh0cmEgZ251bGliIGZpbGVzIHRoYXQgYXJlIG5vdCBw
YXJ0IG9mIGEgZ251bGliIG1vZHVsZSwgYnV0IHdoaWNoCi1vdmVycmlkZSBmaWxlcyBvZiB0aGUg
c2FtZSBuYW1lIGluc3RhbGxlZCBieSBvdGhlciBib290c3RyYXAgdG9vbHMsIHN1Y2gKLWFzIEBj
b21tYW5ke2F1dG9tYWtlfS4KLQotQHNtYWxsZXhhbXBsZQotZ251bGliX25vbl9tb2R1bGVfZmls
ZXM9IiRnbnVsaWJfbm9uX21vZHVsZV9maWxlcyInCi0gICAgICAgIGRvYy9DT1BZSU5HdjMKLScK
LUBlbmQgc21hbGxleGFtcGxlCi0KLQotQGNuaW5kZXggZ251bGliX3BhdGgKLUBjbmluZGV4IGdu
dWxpYl91cmwKLUBpdGVtIGdudWxpYl9wYXRoCi1AaXRlbXggZ251bGliX3VybAotUmVsYXRpdmUg
cGF0aCB0byB0aGUgbG9jYWwgZ251bGliIHN1Ym1vZHVsZSwgYW5kIHVybCB0byB0aGUgdXBzdHJl
YW0KLWdpdCByZXBvc2l0b3J5IGZvciBnbnVsaWIuIFRoZXNlIGFyZSBvbmx5IHVzZWQgaWYgYSBu
ZXcgZ251bGliIHN1Ym1vZHVsZQotbmVlZHMgdG8gYmUgY3JlYXRlZCwgb3RoZXJ3aXNlIHRoZXkg
YXJlIGlnbm9yZWQgYW5kIHRoZSB2YWx1ZXMgc3RvcmVkIGluCi1AZmlsZXsuZ2l0bW9kdWxlc30g
YXJlIHVzZWQgaW5zdGVhZC4KLQotTm9ybWFsbHksIHlvdSBjYW4gbGVhdmUgdGhlc2UgdW50b3Vj
aGVkLCBhbmQgQGNvbW1hbmR7Ym9vdHN0cmFwfSB3aWxsCi1jb3JyZWN0bHkgY2hlY2sgb3V0IGEg
Z251bGliIHN1Ym1vZHVsZSBmcm9tIHRoZSBkaXJlY3RvcnkgcGFzc2VkIHdpdGgKLUBvcHRpb257
LS1nbnVsaWItc3JjZGlyfSwgb3IgZWxzZSBmcm9tIHRoZSB1cHN0cmVhbSByZXBvc2l0b3J5IGF0
IEdOVQotc2F2YW5uYWguCi0KLQotQGNuaW5kZXggZ251bGliX3Rvb2xfb3B0aW9ucwotQGl0ZW0g
Z251bGliX3Rvb2xfb3B0aW9ucwotQWRkaXRpb25hbCBvcHRpb25zIHRvIHBhc3MgdG8gQGNvbW1h
bmR7Z251bGliLXRvb2x9IHdoZW4gaXQgaXMgY2FsbGVkLgotCi1Ac21hbGxleGFtcGxlCi1nbnVs
aWJfdG9vbF9vcHRpb25zPScKLSAgICAgICAgLS1uby1jaGFuZ2Vsb2cKLSAgICAgICAgLS1saWJ0
b29sCi0nCi1AZW5kIHNtYWxsZXhhbXBsZQotCi0KLUBjbmluZGV4IGdudWxpYl9wcmVjaW91cwot
QGl0ZW0gZ251bGliX3ByZWNpb3VzCi1Ob3JtYWxseSwgQGNvbW1hbmR7Ym9vdHN0cmFwfSByZW1v
dmVzIGFueSBtYWNyby1maWxlcyB0aGF0IGFyZSBub3QKLWluY2x1ZGVkIGJ5IEBmaWxle2FjbG9j
YWwubTR9IGJlZm9yZSBpdCByZXR1cm5zLCBleGNlcHQgZm9yIGZpbGVzIGxpc3RlZAotaW4gdGhp
cyB2YXJpYWJsZSB3aGljaCBhcmUgYWx3YXlzIGtlcHQuCi0KLUBzbWFsbGV4YW1wbGUKLWdudWxp
Yl9wcmVjaW91cz0nCi0gICAgICAgIGdudWxpYi1jYWNoZS5tNAotJwotQGVuZCBzbWFsbGV4YW1w
bGUKLQotCi1AY25pbmRleCBtaW5fY21kX2xlbgotQGl0ZW0gbWluX2NtZF9sZW4KLVdoZW4gdHJ1
bmNhdGluZyBsb25nIGNvbW1hbmRzIGZvciBkaXNwbGF5IGF0IHJ1bnRpbWUsIGFsd2F5cyBhbGxv
dyBhdAotbGVhc3QgdGhpcyBtYW55IGNoYXJhY3RlcnMgYmVmb3JlIHRydW5jYXRpbmcuCi0KLQot
QGNuaW5kZXggcG9fZG93bmxvYWRfY29tbWFuZF9mb3JtYXQKLUBpdGVtIHBvX2Rvd25sb2FkX2Nv
bW1hbmRfZm9ybWF0Ci1UaGUgY29tbWFuZCB0byBkb3dubG9hZCBhbGwgQHNhbXB7LnBvfSBmaWxl
cyBmb3IgYSBzcGVjaWZpZWQgZG9tYWluIGludG8KLWEgc3BlY2lmaWVkIGRpcmVjdG9yeSwgd2hl
cmUgdGhlIGZpcnN0ICVzIGlzIGZpbGxlZCBpbiB3aXRoIHRoZQotQGVtcGh7ZG9tYWluIG5hbWV9
LCBhbmQgdGhlIHNlY29uZCB3aXRoIHRoZSBAZW1waHtkZXN0aW5hdGlvbgotZGlyZWN0b3J5fS4g
IFVzZSBAY29tbWFuZHtyc3luY30ncyBAb3B0aW9uey1MfSBhbmQgQG9wdGlvbnstcn0gb3B0aW9u
cwotYmVjYXVzZSB0aGUgbGF0ZXN0IEBzYW1wey8lc30gZGlyZWN0b3J5IGFuZCB0aGUgQHNhbXB7
LnBvfSBmaWxlcyB3aXRoaW4KLWFyZSBhbGwgc3ltbGlua3MuCi0KLUBzbWFsbGV4YW1wbGUKLXBv
X2Rvd25sb2FkX2NvbW1hbmRfZm9ybWF0PVwKLSJyc3luYyAtLWRlbGV0ZSAtLWV4Y2x1ZGUgJyou
czEnIC1McnR2eiBcCi0ndHJhbnNsYXRpb25wcm9qZWN0Lm9yZzo6dHAvbGF0ZXN0LyVzLycgJyVz
JyIKLUBlbmQgc21hbGxleGFtcGxlCi0KLVRoaXMgdmFyaWFibGUgaXMgb25seSBpbnRlcmVzdGlu
ZyB0byBwcm9qZWN0cyB3aXRoIE5MUyBzdXBwb3J0LCBhbmQgZXZlbgotdGhlbiwgVXN1YWxseSwg
dGhlIGRlZmF1bHQgc2V0dGluZyB3aWxsIGJlIHN1ZmZpY2llbnQuCi0KLQotQGNuaW5kZXggZXh0
cmFfbG9jYWxlX2NhdGVnb3JpZXMKLUBpdGVtIGV4dHJhX2xvY2FsZV9jYXRlZ29yaWVzCi1PdGhl
ciBsb2NhbGUgY2F0ZWdvcmllcyB0aGF0IG5lZWQgbWVzc2FnZSBjYXRhbG9ncy4gIFRoaXMgdmFy
aWFibGUgaXMKLW9ubHkgaW50ZXJlc3RpbmcgdG8gcHJvamVjdHMgd2l0aCBOTFMgc3VwcG9ydC4K
LQotCi1AY25pbmRleCB4Z2V0dGV4dF9vcHRpb25zCi1AaXRlbSB4Z2V0dGV4dF9vcHRpb25zCi1B
ZGRpdGlvbmFsIEBjb21tYW5ke3hnZXR0ZXh0fSBvcHRpb25zIHRvIHVzZS4gIEdudWxpYiBtaWdo
dCBwcm92aWRlIHlvdQotd2l0aCBhbiBleHRlbnNpdmUgbGlzdCBvZiBhZGRpdGlvbmFsIG9wdGlv
bnMgdG8gYXBwZW5kIHRvIHRoaXMsIGJ1dAotZ2V0dGV4dCAwLjE2LjEgYW5kIG5ld2VyIGFscmVh
ZHkgYXBwZW5kcyB0aG9zZSBhdXRvbWF0aWNhbHksIHNvIHlvdSBjYW4KLXNhZmVseSBpZ25vcmUg
dGhlIGNvbXBsYWludHMgZnJvbSBAY29tbWFuZHtnbnVsaWItdG9vbH0gYXMgbG9uZyBhcyB5b3Vy
Ci1AZmlsZXtjb25maWd1cmUuYWN9IGRlY2xhcmVzIEBjb2Rle0FNX0dOVV9HRVRURVhUX1ZFUlNJ
T04oWzAuMTYuMV0pfS4KLQotQHNtYWxsZXhhbXBsZQoteGdldHRleHRfb3B0aW9ucz0nCi0gICAg
ICAgIC0tZmxhZz1fOjE6cGFzcy1jLWZvcm1hdAotICAgICAgICAtLWZsYWc9Tl86MTpwYXNzLWMt
Zm9ybWF0Ci0nCi1AZW5kIHNtYWxsZXhhbXBsZQotCi1BcyB3aXRoIHRoZSBwcmV2aW91cyB0d28g
dmFyaWFibGVzLCB5b3UgY2FuIHNhZmVseSBpZ25vcmUgdGhpcyBvbmUgaWYKLXlvdXIgcHJvamVj
dCBkb2VzIG5vdCBoYXZlIE5MUyBzdXBwb3J0LgotCi0KLUBjbmluZGV4IGNvcHlyaWdodF9ob2xk
ZXIKLUBpdGVtIGNvcHlyaWdodF9ob2xkZXIKLVBhY2thZ2UgY29weXJpZ2h0IGhvbGRlciBmb3Ig
Z2V0dGV4dCBmaWxlcy4gIERlZmF1bHRzIHRvIEBzYW1we0ZTRn0gaWYKLXVuc2V0LgotCi1AY25p
bmRleCBjaGVja291dF9vbmx5X2ZpbGUKLUBpdGVtIGNoZWNrb3V0X29ubHlfZmlsZQotSWYgeW91
IHdhbnQgQGNvbW1hbmR7Ym9vdHN0cmFwfSB0byBhYm9ydCBpZiBpdCBpcyBleGVjdXRlZCBvdXRz
aWRlIG9mCi1hIHZlcnNpb24gY29udHJvbGxlZCB0cmVlLCB0aGlzIHZhcmlhYmxlIG11c3QgaG9s
ZCB0aGUgbmFtZSBvZiBzb21lIGZpbGUKLXRoYXQgaXMgcHJlc2VudCBvbmx5IGluIGEgY2hlY2tl
ZCBvdXQgdHJlZSwgYW5kIGlzIG5vdCBpbiBhIGRpc3RyaWJ1dGlvbgotdGFyYmFsbC4KLQotQHNt
YWxsZXhhbXBsZQotY2hlY2tvdXRfb25seV9maWxlPUhBQ0tJTkcKLUBlbmQgc21hbGxleGFtcGxl
Ci0KLUBjbmluZGV4IGNvcHkKLUBpdGVtIGNvcHkKLUlmIHNldCB0byBAc2FtcHt0cnVlfSwgdGhl
biBtYWtlIGNvcGllcyB3aGVuIGFkZGluZyBmaWxlcyB0byB0aGlzCi1wYWNrYWdlLCBvdGhlcndp
c2UgbWFrZSBzeW1saW5rcyBieSBkZWZhdWx0LiBJZiBzZXQgdG8gQHNhbXB7dHJ1ZX0sCi10aGVu
IHRoZSBAb3B0aW9uey0tY29weX0gb3B0aW9uIHRvIEBjb21tYW5ke2Jvb3RzdHJhcH0gd2lsbCBo
YXZlIG5vCi1mdXJ0aGVyIGVmZmVjdC4KLQotCi1AY25pbmRleCB2Y19pZ25vcmUKLUBpdGVtIHZj
X2lnbm9yZQotU2V0IHRoaXMgdG8gQHNhbXB7LmN2c2lnbm9yZSAuZ2l0aWdub3JlfSBpZiB5b3Ug
d2FudCBib3RoIG9mIHRob3NlIGZpbGVzCi10byBiZSBnZW5lcmF0ZWQgaW4gZGlyZWN0b3JpZXMg
c3VjaCBhcyBAZmlsZXtsaWIvfSwgQGZpbGV7bTQvfSwgYW5kCi1AZmlsZXtwby99LCBvciBzZXQg
aXQgdG8gQHNhbXB7YXV0b30gdG8gbWFrZSBAY29tbWFuZHtib290c3RyYXB9IHNlbGVjdAotd2hp
Y2ggdG8gdXNlIGJhc2VkIG9uIHdoaWNoIHZlcnNpb24gY29udHJvbCBzeXN0ZW0gKGlmIGFueSkg
aXMgdXNlZCBpbgotdGhlIHNvdXJjZSBkaXJlY3RvcnkuICBPciBzZXQgaXQgdG8gQHNhbXB7bm9u
ZX0gdG8gZGlzcmVnYXJkIFZDUyBpZ25vcmUKLWZpbGVzIGVudGlyZWx5LiAgRGVmYXVsdCBpcyBA
c2FtcHthdXRvfS4KLQotQHNtYWxsZXhhbXBsZQotdmNfaWdub3JlPScuY3ZzaWdub3JlIC5naXRp
Z25vcmUnCi1AZW5kIHNtYWxsZXhhbXBsZQotCi1AZW5kIGl0ZW1pemUKLQotCi1Abm9kZSBSZXF1
aXJlIFZhcmlhYmxlcwotQHN1YnNlY3Rpb24gUmVxdWlyZSBWYXJpYWJsZXMKLQotTWFueSBvZiB0
aGUgZnVuY3Rpb25zIGluIEBjb21tYW5ke2Jvb3RzdHJhcH0gc2hvdWxkIG5vdCBiZSBleGVjdXRl
ZCBtb3JlCi10aGFuIG9uY2UsIHdoaWNoIGlzIGFjaGlldmVkIGJ5IHN0b3JpbmcgdGhlIG5hbWUg
b2YgdGhhdCBmdW5jdGlvbiBpbiBhCi12YXJpYWJsZSBhbmQgdGhlbiBjYWxsaW5nIGl0IHdpdGg6
Ci0KLUBzbWFsbGV4YW1wbGUKLSRyZXF1aXJlX2dudWxpYl90b29sCi1AZW5kIHNtYWxsZXhhbXBs
ZQotCi1BdCB0aGlzIHN0YWdlLCB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGlzIGludGVycHJl
dGVkIGFzIGEgZnVuY3Rpb24KLWNhbGwgYnkgdGhlIHNoZWxsLCBhbmQgdGhlIG5hbWVkIGZ1bmN0
aW9uIHRoZW4gcnVucy4gIFVuZGVyIG5vcm1hbAotY2lyY3Vtc3RhbmNlcywgZnVuY3Rpb25zIHRo
YXQgYXJlIGNhbGxlZCBpbiB0aGlzIHdheSBhbHdheXMgc2V0IHRoZWlyCi1hc3NvY2lhdGVkIHZh
cmlhYmxlIG5hbWUgdG8gc2ltcGx5IEBzYW1wezp9IHNvIHRoYXQgc3Vic2VxdWVudAotb2NjdXJy
ZW5jZXMgb2YsIGluIHRoaXMgaW5zdGFuY2UsIEBjb2RleyRyZXF1aXJlX2dudWxpYl90b29sfSBo
YXZlIG5vCi1mdXJ0aGVyIGVmZmVjdC4KLQotVGhhdCBtZWFucyB5b3UgY2FuIGVhc2lseSBza2lw
IGFueSBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkIGxpa2UgdGhpcwotYnkgdW5jb25kaXRpb25h
bGx5IHNldHRpbmcgdGhlIHJlcXVpcmUgdmFyaWFibGUgdG8gQHNhbXB7On0gaW4geW91cgotQGZp
bGV7Ym9vdHN0cmFwLmNvbmZ9LiBTbywgZm9yIGV4YW1wbGUsIGlmIHlvdXIgcGFja2FnZSBtYWtl
cyBubyB1c2Ugb2YKLUBjb21tYW5ke2dudWxpYi10b29sfSwgeW91IGNhbiBhZGQgdGhlIGZvbGxv
d2luZyB0byB5b3VyCi1AZmlsZXtib290c3RyYXAuY29uZn06Ci0KLUBzbWFsbGV4YW1wbGUKLXJl
cXVpcmVfZ251bGliX3Rvb2w9OgotQGVuZCBzbWFsbGV4YW1wbGUKLQotWW91IHNob3VsZCBiZSBh
d2FyZSwgaG93ZXZlciwgdGhhdCB0aGUgZnVuY3Rpb24gY2FsbHMgbWFuYWdlZCBieSB0aGlzCi1t
ZWNoYW5pc20gYXJlIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBvbmUgdGltZSB0byBlbnN1cmUgdGhh
dCBzb21lCi1yZXNvdXJjZSBpcyBhdmFpbGFibGUgZm9yIHVzZSBieSB0aGUgcmVzdCBvZiBhbnkg
ZnVuY3Rpb24gdGhhdCB1c2VzIGEKLUBjb2RleyRyZXF1aXJlX3NvbWVfcmVzb3VyY2V9IGNhbGwu
ICBCZSBjYXJlZnVsIHRvIGVuc3VyZSB0aGF0IHlvdQotcmVtb3ZlIGFueSBjb2RlIHBhdGhzIHRo
YXQgdHJ5IHRvIHVzZSB0aGF0IHJlc291cmNlIGlmIHlvdSBoYXZlCi1lZmZlY3RpdmVseSBkaXNh
YmxlZCBpdCBieSBzZXR0aW5nIGl0cyB2YXJpYWJsZSB0byBAc2FtcHs6fSBlYXJseSBvbi4KLQot
Ci1Abm9kZSBIb29rIEZ1bmN0aW9ucwotQHN1YnNlY3Rpb24gSG9vayBGdW5jdGlvbnMKLQotTWFu
eSBvZiB0aGUga2V5IGZ1bmN0aW9ucyBpbiBAY29tbWFuZHtib290c3RyYXB9IHdpbGwgcnVuIG9u
ZSBvciBtb3JlIGhvb2sKLWZ1bmN0aW9ucyBiZWZvcmUgdGhleSByZXR1cm4uICBFc3NlbnRpYWxs
eSwgYWxsIHRoYXQgdGhlIGVudGlyZSBzY3JpcHQKLWRvZXMgaXMgdG8gZGVmaW5lIGEgbG90IG9m
IGZ1bmN0aW9ucyAoc29tZSBvZiB3aGljaCB3aWxsIHJ1biBob29rcyksCi10aGVuIHNvdXJjZSB0
aGUgY29udGVudHMgb2YgeW91ciBAZmlsZXtib290c3RyYXAuY29uZn0gY3VzdG9taXNhdGlvbnMs
Ci1hbmQgdGhlbiBmaW5hbGx5IHJ1biB0aGUgQGNvZGV7ZnVuY19ib290c3RyYXB9IGZ1bmN0aW9u
LiAgUmVhZCB0aGUKLWRvYy1jb21tZW50cyBhYm92ZSBAY29kZXtmdW5jX2Jvb3RzdHJhcH0gaW4g
dGhlIEBjb21tYW5ke2Jvb3RzdHJhcH0gZmlsZSwKLWFzIHdlbGwgYXMgdGhlIGZ1bmN0aW9ucyB0
aGF0IGl0IGNhbGxzIHRvIGZpbmQgd2hlcmUgeW91IGNhbiBob29rIHlvdXIKLW93biBmdW5jdGlv
bnMsIGluIG9yZGVyIHRvIGJlIGNhbGxlZCBkdXJpbmcgeW91ciBjdXN0b21pc2VkIGV4ZWN1dGlv
biBvZgotQGNvbW1hbmR7Ym9vdHN0cmFwfS4KLQotT25lIG9mIHRoZSB0cmlja2llciBob29rIGZ1
bmN0aW9ucyBpcyBzZXQgdXAgdG8gYWxsb3cgeW91IHRvIGFkZAotYWRkaXRpb25hbCBhcmd1bWVu
dHMgdG8gdGhlIG9wdGlvbiBwYXJzZXIgZm9yIEBjb21tYW5ke2Jvb3RzdHJhcH0gd2l0aG91dAot
aGF2aW5nIHRvIHJlcGxhY2UgQGNvZGV7ZnVuY19wYXJzZV9vcHRpb25zfSBpbiBpdHMgZW50aXJl
dHk6Ci0KLUBzbWFsbGV4YW1wbGUKLW15X3NpbGVudF9vcHRpb24gKCkKLUB7Ci0gICAgJGRlYnVn
X2NtZAotCi0gICAgY2FzZSAkMSBpbgotICAgICAgLS1zaWxlbnR8LXMpIG9wdF9zaWxlbnQ9Ojsg
c2hpZnQgOzsKLSAgICBlc2FjCi0KLSAgICAjIHJldHVybiBtb2RpZmllZCBvcHRpb24gbGlzdAot
ICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgJEB7MSsiJEBAIkB9Ci0gICAgZnVuY19ydW5faG9va3Nf
cmVzdWx0PSRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdAotQH0KLWZ1bmNfYWRkX2hvb2sgZnVu
Y19wYXJzZV9vcHRpb25zIG15X3NpbGVudF9vcHRpb24KLUBlbmQgc21hbGxleGFtcGxlCi0KLQot
QG5vZGUgRnVuY3Rpb24gUmVwbGFjZW1lbnQKLUBzdWJzZWN0aW9uIEZ1bmN0aW9uIFJlcGxhY2Vt
ZW50Ci0KLUluIGEgZmV3IGNvbXBsZXggcGFja2FnZXMsIHlvdSBtaWdodCBmaW5kIHRoYXQgc29t
ZSBzZWxlY3Rpb24gb2YKLWZ1bmN0aW9ucyBjYWxsZWQgZHVyaW5nIHRoZSBub3JtYWwgZXhlY3V0
aW9uIG9mIEBjb21tYW5ke2Jvb3RzdHJhcH0gYXJlCi13aG9sbHkgaW5hcHByb3ByaWF0ZSBmb3Ig
eW91ciBwcm9qZWN0LCB3aGVyZSBzaW1wbHkgZGlzYWJsaW5nCi1AY29kZXskcmVxdWlyZV9zb21l
X3Jlc291cmNlfSBmdW5jdGlvbnMgYW5kIGhvb2tpbmcgaW4gYWRkaXRpb25hbCBjb2RlCi1pcyBu
b3QgcG93ZXJmdWwgZW5vdWdoIHRvIGF2b2lkIG9yIHJhZGljYWxseSBhbHRlciB0aGUgcGFydHMg
b2YKLUBjb21tYW5ke2Jvb3RzdHJhcH0geW91IGRvIG5vdCB3YW50LgotCi1JbiB0aGF0IGNhc2Ug
eW91IGNhbiBzaW1wbHkgd3JpdGUgYW4gZW50aXJlbHkgY3VzdG9tIGltcGxlbWVudGF0aW9uIG9m
Ci13aGF0ZXZlciBmdW5jdGlvbihzKSB5b3Ugd2FudCB0byByZXBsYWNlIGluc2lkZSB5b3VyCi1A
ZmlsZXtib290c3RyYXAuY29uZn0sIHNvIHRoYXQgYnkgdGhlIHRpbWUgQGNvZGV7ZnVuY19ib290
c3RyYXB9IGlzCi1jYWxsZWQgYXQgdGhlIGVuZCBvZiBAY29tbWFuZHtib290c3RyYXB9LCB5b3Vy
IG5ldyBpbXBsZW1lbnRhdGlvbiBpcwotYWxyZWFkeSBpbiBwbGFjZS4KLQotQGV4YW1wbGUKLWZ1
bmNfZWNobyAoKQotQHsKLSAgICAjIHJlc3BlY3QgbmV3IC0tc2lsZW50IG9wdGlvbgotICAgICRv
cHRfc2lsZW50IHx8IGVjaG8gIiRwcm9nbmFtZTogJCoiCi1AfQotQGVuZCBleGFtcGxlCi0KLQot
QG5vZGUgVXNhZ2UgUGF0dGVybnMKLUBzZWN0aW9uIFVzYWdlIFBhdHRlcm5zCi0KLVRoZXJlIGFy
ZSB0d28gd2F5cyB0byBpbmNvcnBvcmF0ZSBnbnVsaWIgaW50byB5b3VyIHBhY2thZ2UsIHdoaWNo
IGFyZQotYm90aCBzdXBwb3J0ZWQgYnkgdGhlIEBjb21tYW5ke2Jvb3RzdHJhcH0gc2NyaXB0LiAg
QmUgc3VyZSB0aGF0IGV2ZXJ5b25lCi13b3JraW5nIG9uIHlvdXIgcGFja2FnZSBpcyBlbXBsb3lp
bmcgdGhlIHNhbWUgdXNhZ2UgcGF0dGVybiwgb3IgdGhpbmdzCi13aWxsIHR1cm4gYmFkIQotCi1A
bWVudQotKiBDb25maWd1cmF0aW9uIGFsbCBrZXB0IGluIEBmaWxle2Jvb3RzdHJhcC5jb25mfQot
KiBHbnVsaWIgY29uZmlndXJhdGlvbiBzdG9yZWQgaW4gQGZpbGV7Z251bGliLWNhY2hlLm00fQot
QGVuZCBtZW51Ci0KLQotQG5vZGUgQ29uZmlndXJhdGlvbiBhbGwga2VwdCBpbiBAZmlsZXtib290
c3RyYXAuY29uZn0KLUBzdWJzZWN0aW9uIENvbmZpZ3VyYXRpb24gYWxsIGtlcHQgaW4gQGZpbGV7
Ym9vdHN0cmFwLmNvbmZ9Ci0KLUFsbCB0aGUgcGFyYW1ldGVycyBmb3IgcnVubmluZyBAY29tbWFu
ZHtnbnVsaWItdG9vbH0gYW5kIG90aGVyIGJvb3RzdHJhcC0KLXRpbWUgY29tbWFuZHMgYXJlIG1h
aW50YWluZWQgaW4gQGZpbGV7Ym9vdHN0cmFwLmNvbmZ9LiBUaGlzIGlzIHRoZQotZGVmYXVsdCB1
c2FnZSBwYXR0ZXJuLgotCi1JbiBvcmRlciBmb3IgdGhpcyB0byB3b3JrLCB3aGVuIHlvdSB3aXNo
IHRvIGFkZCBvciByZW1vdmUgYSBnbnVsaWIKLW1vZHVsZSBmcm9tIHlvdXIgcGFja2FnZSwgYW1l
bmQgdGhlIHZhbHVlIG9mIEB2YXJ7Z251bGliX21vZHVsZXN9IGluCi1AZmlsZXtib290c3RyYXAu
Y29uZn0gKGFuZCBzaW1pbGFybHkgZm9yIGFueSBvdGhlciBwYXJhbWV0ZXJzKSBhbmQgcmVydW4K
LUBjb21tYW5ke2Jvb3RzdHJhcH0gdG8gaW1wb3J0IGV2ZXJ5dGhpbmcgYW5ldy4KLQotVG8gYXZv
aWQgdGhpbmdzIGdldHRpbmcgb3V0IG9mIHN5bmMsIHlvdSBzaG91bGQgbmV2ZXIgcnVuCi1AY29t
bWFuZHtnbnVsaWItdG9vbH0gZGlyZWN0bHkuCi0KLQotQG5vZGUgR251bGliIGNvbmZpZ3VyYXRp
b24gc3RvcmVkIGluIEBmaWxle2dudWxpYi1jYWNoZS5tNH0KLUBzdWJzZWN0aW9uIEdudWxpYiBj
b25maWd1cmF0aW9uIHN0b3JlZCBpbiBAZmlsZXtnbnVsaWItY2FjaGUubTR9Ci0KLVRvIGltcGxl
bWVudCB0aGlzIHVzYWdlIHBhdHRlcm4sIGxlYXZlIHRoZSB2YWx1ZSBvZiBAdmFye2dudWxpYl9t
b2R1bGVzfQotYW5kIHRoZSB2YXJpb3VzIEB2YXJ7Z2xfeHh4fSB2YXJpYWJsZXMgZW1wdHkgaW4g
QGZpbGV7Ym9vdHN0cmFwLmNvbmZ9Ci1hbmQgY2FsbCBAY29tbWFuZHtnbnVsaWItdG9vbCAtLWlt
cG9ydCAuLi59IGZyb20geW91ciBzaGVsbCwgY2hlY2tpbmcKLXRoYXQgQGZpbGV7Z251bGliLWNh
Y2hlLm00fSByZWZsZWN0cyB0aGUgdmFsdWVzIHlvdSB3YW50ZWQuICBGcm9tIG5vdyBvbgoteW91
IGNhbiBlaXRoZXIgY2FsbCBAY29tbWFuZHtnbnVsaWItdG9vbCAtLXVwZGF0ZX0gb3IgcmVydW4K
LUBjb21tYW5ke2Jvb3RzdHJhcH0gd2hlbmV2ZXIgeW91IHdhbnQgdG8gcmVzeW5jIHRoZSBwYWNr
YWdlIG1vZHVsZXMgd2l0aAoteW91ciBsb2NhbCBnbnVsaWIgY2hlY2tvdXQuCi0KLUlmIHlvdSB3
aXNoIHRvIGFkZCBvciByZW1vdmUgYSBnbnVsaWIgbW9kdWxlIGZyb20geW91ciBwYWNrYWdlLCBj
YWxsCi1AY29tbWFuZHtnbnVsaWItdG9vbCAtLWltcG9ydC1hZGQgLi4ufSBvciBAY29tbWFuZHtn
bnVsaWItdG9vbCAtLWltcG9ydC0KLXJlbW92ZX0gcmVzcGVjdGl2ZWx5LgotCi1Abm9kZSBLbm93
biBCdWdzCi1Ac2VjdGlvbiBLbm93biBCdWdzCi0KLUBpdGVtaXplIEBidWxsZXQKLUBpdGVtCi1n
bnVsaWItdG9vbCBoYXMgbm8gQG9wdGlvbnstLWZvcmNlfSBvcHRpb24sIHNvIHNvbWV0aW1lcyBz
eW1saW5rcyBhcmUKLWxlZnQgcG9pbnRpbmcgdG8gYW4gb2xkIGdudWxpYiB0cmVlIChldmVuIHdp
dGggQGNvbW1hbmR7Li9ib290c3RyYXAKLS0tZm9yY2V9KToKLQotQHNtYWxsZXhhbXBsZQotJCAu
L2Jvb3RzdHJhcCAtLXNraXAtZ2l0IC0tZ251bGliLXNyY2Rpcj0uLi9nbnVsaWIKLSQgLi9ib290
c3RyYXAgLS1nbnVsaWItc3JjZGlyPS4uL2dudWxpYiAtLWZvcmNlCi1AZW5kIHNtYWxsZXhhbXBs
ZQotCi1Ob3RlIHRoYXQgbm93LCBwbGVudHkgb2Ygc3ltbGlua3Mgc3RpbGwgcG9pbnQgdG8gQGZp
bGV7Li4vZ251bGlifQotaW5zdGVhZCBvZiBoYXZpbmcgYmVpbmcgcmV0YXJnZXRlZCB0byB0aGUg
c3VibW9kdWxlIGluIEBmaWxley4vZ251bGlifS4KLUBlbmQgaXRlbQotQGVuZCBpdGVtaXplCmRp
ZmYgLS1naXQgYS9nbC9tb2R1bGVzL2Jvb3RzdHJhcCBiL2dsL21vZHVsZXMvYm9vdHN0cmFwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzRjMDE4Zi4uMDAwMDAwMDAKLS0tIGEvZ2wv
bW9kdWxlcy9ib290c3RyYXAKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1EZXNjcmlw
dGlvbjoKLUJvb3RzdHJhcCBhbiBBdXRvdG9vbGVkIHBhY2thZ2UgZnJvbSBjaGVja2VkLW91dCBz
b3VyY2VzLgotCi1GaWxlczoKLWJ1aWxkLWF1eC9ib290c3RyYXAuaW4KLQotRGVwZW5kcy1vbjoK
LWV4dHJhY3QtdHJhY2UKLWZ1bmNsaWIuc2gKLWlubGluZS1zb3VyY2UKLW9wdGlvbnMtcGFyc2Vy
Ci0KLWNvbmZpZ3VyZS5hYzoKLQotTWFrZWZpbGUuYW06Ci0KLUluY2x1ZGU6Ci0KLUxpY2Vuc2U6
Ci1HUExlZCBidWlsZCB0b29sCi0KLU1haW50YWluZXI6Ci1HYXJ5IFYuIFZhdWdoYW4gPGdhcnlA
Z251Lm9yZz4KZGlmZiAtLWdpdCBhL2dsL21vZHVsZXMvZXh0cmFjdC10cmFjZSBiL2dsL21vZHVs
ZXMvZXh0cmFjdC10cmFjZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTY5Nzk1OWYu
LjAwMDAwMDAwCi0tLSBhL2dsL21vZHVsZXMvZXh0cmFjdC10cmFjZQorKysgL2Rldi9udWxsCkBA
IC0xLDIxICswLDAgQEAKLURlc2NyaXB0aW9uOgotRXh0cmFjdCBtYWNybyBhcmd1bWVudHMgZnJv
bSBhdXRvdG9vbHMgaW5wdXQgd2l0aCBHTlUgTTQuCi0KLUZpbGVzOgotYnVpbGQtYXV4L2V4dHJh
Y3QtdHJhY2UKLQotRGVwZW5kcy1vbjoKLW9wdGlvbnMtcGFyc2VyCi1mdW5jbGliLnNoCi0KLWNv
bmZpZ3VyZS5hYzoKLQotTWFrZWZpbGUuYW06Ci0KLUluY2x1ZGU6Ci0KLUxpY2Vuc2U6Ci1HUExl
ZCBidWlsZCB0b29sCi0KLU1haW50YWluZXI6Ci1HYXJ5IFYuIFZhdWdoYW4gPGdhcnlAZ251Lm9y
Zz4KZGlmZiAtLWdpdCBhL2dsL21vZHVsZXMvZnVuY2xpYi5zaCBiL2dsL21vZHVsZXMvZnVuY2xp
Yi5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmUyM2UyNzUuLjAwMDAwMDAwCi0t
LSBhL2dsL21vZHVsZXMvZnVuY2xpYi5zaAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAK
LURlc2NyaXB0aW9uOgotR2VuZXJhbCBzaGVsbCBzY3JpcHQgYm9pbGVyIHBsYXRlLCBhbmQgaGVs
cGVyIGZ1bmN0aW9ucy4KLQotRmlsZXM6Ci1idWlsZC1hdXgvZnVuY2xpYi5zaAotCi1EZXBlbmRz
LW9uOgotCi1jb25maWd1cmUuYWM6Ci0KLU1ha2VmaWxlLmFtOgotCi1JbmNsdWRlOgotCi1MaWNl
bnNlOgotR1BMdjIrCi0KLU1haW50YWluZXI6Ci1HYXJ5IFYuIFZhdWdoYW4gPGdhcnlAZ251Lm9y
Zz4KZGlmZiAtLWdpdCBhL2dsL21vZHVsZXMvaW5saW5lLXNvdXJjZSBiL2dsL21vZHVsZXMvaW5s
aW5lLXNvdXJjZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY4ZGJiZDcuLjAwMDAw
MDAwCi0tLSBhL2dsL21vZHVsZXMvaW5saW5lLXNvdXJjZQorKysgL2Rldi9udWxsCkBAIC0xLDIx
ICswLDAgQEAKLURlc2NyaXB0aW9uOgotT3V0cHV0IHRoZSBjb250ZW50cyBvZiBhIHNoZWxsIHNj
cmlwdCB3aXRoIHNvdXJjZWQgZmlsZXMgaW5saW5lZC4KLQotRmlsZXM6Ci1idWlsZC1hdXgvaW5s
aW5lLXNvdXJjZQotCi1EZXBlbmRzLW9uOgotb3B0aW9ucy1wYXJzZXIKLWZ1bmNsaWIuc2gKLQot
Y29uZmlndXJlLmFjOgotCi1NYWtlZmlsZS5hbToKLQotSW5jbHVkZToKLQotTGljZW5zZToKLUdQ
TGVkIGJ1aWxkIHRvb2wKLQotTWFpbnRhaW5lcjoKLUdhcnkgVi4gVmF1Z2hhbiA8Z2FyeUBnbnUu
b3JnPgpkaWZmIC0tZ2l0IGEvZ2wvbW9kdWxlcy9vcHRpb25zLXBhcnNlciBiL2dsL21vZHVsZXMv
b3B0aW9ucy1wYXJzZXIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MTEzNDc2Li4w
MDAwMDAwMAotLS0gYS9nbC9tb2R1bGVzL29wdGlvbnMtcGFyc2VyCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotRGVzY3JpcHRpb246Ci1BIHBvcnRhYmxlLCBwbHVnZ2FibGUgb3B0aW9u
IHBhcnNlciBmb3IgQm91cm5lIHNoZWxsLgotCi1GaWxlczoKLWJ1aWxkLWF1eC9vcHRpb25zLXBh
cnNlcgotCi1EZXBlbmRzLW9uOgotZnVuY2xpYi5zaAotCi1jb25maWd1cmUuYWM6Ci0KLU1ha2Vm
aWxlLmFtOgotCi1JbmNsdWRlOgotCi1MaWNlbnNlOgotR1BMZWQgYnVpbGQgdG9vbAotCi1NYWlu
dGFpbmVyOgotR2FyeSBWLiBWYXVnaGFuIDxnYXJ5QGdudS5vcmc+CmRpZmYgLS1naXQgYS9tNC9n
bnVsaWItY2FjaGUubTQgYi9tNC9nbnVsaWItY2FjaGUubTQKaW5kZXggYWNlYmM4M2YuLmZhMGM0
ZGEzIDEwMDY0NAotLS0gYS9tNC9nbnVsaWItY2FjaGUubTQKKysrIGIvbTQvZ251bGliLWNhY2hl
Lm00CkBAIC0yOCw2ICsyOCw3IEBACgogIyBTcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtIG9mIGEg
Y29tbWFuZC1saW5lIGludm9jYXRpb246CiAjIGdudWxpYi10b29sIC0taW1wb3J0IFwKKyMgIC0t
bG9jYWwtZGlyPWdsLW1vZC9ib290c3RyYXAgXAogIyAgLS1sb2NhbC1kaXI9Z2wgXAogIyAgLS1s
aWI9bGlibTQgXAogIyAgLS1zb3VyY2UtYmFzZT1saWIgXApAQCAtNTEsNiArNTIsNyBAQAogIyAg
YXZsdHJlZS1vc2V0IFwKICMgIGJpbmFyeS1pbyBcCiAjICBib29sIFwKKyMgIGJvb3RzdHJhcCBc
CiAjICBjLWN0eXBlIFwKICMgIGMtc3RhY2sgXAogIyAgY2xlYW4tdGVtcCBcCkBAIC0xMTEsNyAr
MTEzLDcgQEAKICMgIHh2YXNwcmludGYtcG9zaXgKCiAjIFNwZWNpZmljYXRpb24gaW4gdGhlIGZv
cm0gb2YgYSBmZXcgZ251bGliLXRvb2wubTQgbWFjcm8gaW52b2NhdGlvbnM6Ci1nbF9MT0NBTF9E
SVIoW2dsXSkKK2dsX0xPQ0FMX0RJUihbZ2wtbW9kL2Jvb3RzdHJhcDpnbF0pCiBnbF9NT0RVTEVT
KFsKICAgYW5ub3VuY2UtZ2VuCiAgIGFzc2VydApAQCAtMTIwLDYgKzEyMiw3IEBAIGdsX01PRFVM
RVMoWwogICBhdmx0cmVlLW9zZXQKICAgYmluYXJ5LWlvCiAgIGJvb2wKKyAgYm9vdHN0cmFwCiAg
IGMtY3R5cGUKICAgYy1zdGFjawogICBjbGVhbi10ZW1wCi0tIAoyLjQ5LjAKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNNC1wYXRjaGVzIG1haWxpbmcg
bGlzdApNNC1wYXRjaGVzQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlz
dGluZm8vbTQtcGF0Y2hlcwo=