<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>49403</bug_id>
          
          <creation_ts>2010-11-11 13:50:10 -0800</creation_ts>
          <short_desc>Split out Bug, Attachment and CommitterValidator from bugzilla.py</short_desc>
          <delta_ts>2010-11-11 15:27:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>308118</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-11 13:50:10 -0800</bug_when>
    <thetext>Split out Bug, Attachment and CommitterValidator from bugzilla.py</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308123</commentid>
    <comment_count>1</comment_count>
      <attachid>73655</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-11 13:53:47 -0800</bug_when>
    <thetext>Created attachment 73655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308125</commentid>
    <comment_count>2</comment_count>
      <attachid>73655</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-11 13:56:18 -0800</bug_when>
    <thetext>Comment on attachment 73655
Patch

OMG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308208</commentid>
    <comment_count>3</comment_count>
      <attachid>73655</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-11 15:26:59 -0800</bug_when>
    <thetext>Comment on attachment 73655
Patch

Clearing flags on attachment: 73655

Committed r71856: &lt;http://trac.webkit.org/changeset/71856&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308209</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-11 15:27:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73655</attachid>
            <date>2010-11-11 13:53:47 -0800</date>
            <delta_ts>2010-11-11 15:26:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49403-20101111135346.patch</filename>
            <type>text/plain</type>
            <size>39406</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxOTE2OGQ5YjhmZTE4NWU1N2FmNmYxNTgxYjdiMjM1YzQ5YjNjY2I4Li4wYjFjOWJh
NTQ1MTZjZTlhNjU3Mzc0YTg2OTExYjA5YWUyODRjYjA5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAK
IDIwMTAtMTEtMTEgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwbGl0IG91dCBCdWcsIEF0dGFj
aG1lbnQgYW5kIENvbW1pdHRlclZhbGlkYXRvciBmcm9tIGJ1Z3ppbGxhLnB5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTQwMworCisgICAgICAgIENv
bW1pdHRlclZhbGlkYXRvciByZWFsbHkgaGFkIG5vdGhpbmcgdG8gZG8gd2l0aCBidWd6aWxsYS5w
eS4KKyAgICAgICAgSSd2ZSBwdXQgaXQgbmV4dCB0byBjb21taXR0ZXJzLnB5IGZvciBub3cgc2lu
Y2UgaXRzIHJhdGhlciB0aWVkIHRvIHRoYXQgZmlsZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3IucHk6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3JfdW5p
dHRlc3QucHk6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYS9fX2luaXRfXy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYnVnemlsbGEvYXR0YWNobWVudC5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Zy5weTogQWRkZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z191bml0dGVzdC5weTogQWRkZWQuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxs
YV91bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZlZWRl
cnMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5w
eToKKworMjAxMC0xMS0xMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQWRhbSBCYXJ0aC4KIAogICAgICAgICBNb3ZlIGJ1Z3ppbGxh
LnB5IGludG8gaXRzIG93biBtb2R1bGUgaW4gcHJlcGFyYXRpb24gZm9yIHNwbGl0dGluZyBvbmUt
ZmlsZS1wZXItY2xhc3MKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3IucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVydmFsaWRhdG9yLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI3YjI5OTA2ODQ5NDhkYjZhZDRmNDY0NWUxZDIyYTQxYjg1MWFhMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVy
dmFsaWRhdG9yLnB5CkBAIC0wLDAgKzEsMTIwIEBACisjIENvcHlyaWdodCAoYykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTAgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisj
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm9zcGF0aCBpbXBv
cnQgcmVscGF0aAorZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCBjb21taXR0ZXJz
CisKKworY2xhc3MgQ29tbWl0dGVyVmFsaWRhdG9yKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgYnVnemlsbGEpOgorICAgICAgICBzZWxmLl9idWd6aWxsYSA9IGJ1Z3ppbGxhCisK
KyAgICAjIF92aWV3X3NvdXJjZV91cmwgYmVsb25ncyBpbiBzb21lIHNvcnQgb2Ygd2Via2l0X2Nv
bmZpZy5weSBtb2R1bGUuCisgICAgZGVmIF92aWV3X3NvdXJjZV91cmwoc2VsZiwgbG9jYWxfcGF0
aCk6CisgICAgICAgIHJldHVybiAiaHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5r
LyVzIiAlIGxvY2FsX3BhdGgKKworICAgIGRlZiBfY2hlY2tvdXRfcm9vdChzZWxmKToKKyAgICAg
ICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIHdlIHdvdWxkIGhhdmUgdGhpcyBmcm9tIHNjbS5j
aGVja291dF9yb290CisgICAgICAgICMgaWYgd2UgaGFkIGFueSB3YXkgdG8gZ2V0IHRvIGFuIHNj
bSBvYmplY3QgaGVyZS4KKyAgICAgICAgY29tcG9uZW50cyA9IF9fZmlsZV9fLnNwbGl0KG9zLnNl
cCkKKyAgICAgICAgdG9vbHNfaW5kZXggPSBjb21wb25lbnRzLmluZGV4KCJXZWJLaXRUb29scyIp
CisgICAgICAgIHJldHVybiBvcy5zZXAuam9pbihjb21wb25lbnRzWzp0b29sc19pbmRleF0pCisK
KyAgICBkZWYgX2NvbW1pdHRlcnNfcHlfcGF0aChzZWxmKToKKyAgICAgICAgIyBleHRlbnNpb24g
Y2FuIHNvbWV0aW1lcyBiZSAucHljLCB3ZSBhbHdheXMgd2FudCAucHkKKyAgICAgICAgKHBhdGgs
IGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGNvbW1pdHRlcnMuX19maWxlX18pCisgICAg
ICAgICMgRklYTUU6IFdoZW4gd2UncmUgYWxsb3dlZCB0byB1c2UgcHl0aG9uIDIuNiB3ZSBjYW4g
dXNlIHRoZSByZWFsCisgICAgICAgICMgb3MucGF0aC5yZWxwYXRoCisgICAgICAgIHBhdGggPSBy
ZWxwYXRoKHBhdGgsIHNlbGYuX2NoZWNrb3V0X3Jvb3QoKSkKKyAgICAgICAgcmV0dXJuICIuIi5q
b2luKFtwYXRoLCAicHkiXSkKKworICAgIGRlZiBfZmxhZ19wZXJtaXNzaW9uX3JlamVjdGlvbl9t
ZXNzYWdlKHNlbGYsIHNldHRlcl9lbWFpbCwgZmxhZ19uYW1lKToKKyAgICAgICAgIyBTaG91bGQg
Y29tZSBmcm9tIHNvbWUgd2Via2l0X2NvbmZpZy5weQorICAgICAgICBjb250cmlidXRpb25fZ3Vp
ZGxpbmVzID0gImh0dHA6Ly93ZWJraXQub3JnL2NvZGluZy9jb250cmlidXRpbmcuaHRtbCIKKyAg
ICAgICAgIyBUaGlzIGNvdWxkIGJlIHF1ZXJpZWQgZnJvbSB0aGUgc3RhdHVzX3NlcnZlci4KKyAg
ICAgICAgcXVldWVfYWRtaW5pc3RyYXRvciA9ICJlc2VpZGVsQGNocm9taXVtLm9yZyIKKyAgICAg
ICAgIyBUaGlzIGNvdWxkIGJlIHF1ZXJpZWQgZnJvbSB0aGUgdG9vbC4KKyAgICAgICAgcXVldWVf
bmFtZSA9ICJjb21taXQtcXVldWUiCisgICAgICAgIGNvbW1pdHRlcnNfbGlzdCA9IHNlbGYuX2Nv
bW1pdHRlcnNfcHlfcGF0aCgpCisgICAgICAgIG1lc3NhZ2UgPSAiJXMgZG9lcyBub3QgaGF2ZSAl
cyBwZXJtaXNzaW9ucyBhY2NvcmRpbmcgdG8gJXMuIiAlICgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldHRlcl9lbWFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfbmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ZpZXdfc291cmNlX3VybChjb21taXR0ZXJzX2xp
c3QpKQorICAgICAgICBtZXNzYWdlICs9ICJcblxuLSBJZiB5b3UgZG8gbm90IGhhdmUgJXMgcmln
aHRzIHBsZWFzZSByZWFkICVzIGZvciBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVzZSBidWd6aWxs
YSBmbGFncy4iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ19uYW1lLCBjb250cmli
dXRpb25fZ3VpZGxpbmVzKQorICAgICAgICBtZXNzYWdlICs9ICJcblxuLSBJZiB5b3UgaGF2ZSAl
cyByaWdodHMgcGxlYXNlIGNvcnJlY3QgdGhlIGVycm9yIGluICVzIGJ5IGFkZGluZyB5b3Vyc2Vs
ZiB0byB0aGUgZmlsZSAobm8gcmV2aWV3IG5lZWRlZCkuICAiICUgKAorICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhZ19uYW1lLCBjb21taXR0ZXJzX2xpc3QpCisgICAgICAgIG1lc3NhZ2UgKz0g
IlRoZSAlcyByZXN0YXJ0cyBpdHNlbGYgZXZlcnkgMiBob3Vycy4gIEFmdGVyIHJlc3RhcnQgdGhl
ICVzIHdpbGwgY29ycmVjdGx5IHJlc3BlY3QgeW91ciAlcyByaWdodHMuIiAlICgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHF1ZXVlX25hbWUsIHF1ZXVlX25hbWUsIGZsYWdfbmFtZSkKKyAgICAg
ICAgcmV0dXJuIG1lc3NhZ2UKKworICAgIGRlZiBfdmFsaWRhdGVfc2V0dGVyX2VtYWlsKHNlbGYs
IHBhdGNoLCByZXN1bHRfa2V5LCByZWplY3Rpb25fZnVuY3Rpb24pOgorICAgICAgICBjb21taXR0
ZXIgPSBnZXRhdHRyKHBhdGNoLCByZXN1bHRfa2V5KSgpCisgICAgICAgICMgSWYgdGhlIGZsYWcg
aXMgc2V0LCBhbmQgd2UgZG9uJ3QgcmVjb2duaXplIHRoZSBzZXR0ZXIsIHJlamVjdCB0aGUKKyAg
ICAgICAgIyBmbGFnIQorICAgICAgICBzZXR0ZXJfZW1haWwgPSBwYXRjaC5fYXR0YWNobWVudF9k
aWN0aW9uYXJ5LmdldCgiJXNfZW1haWwiICUgcmVzdWx0X2tleSkKKyAgICAgICAgaWYgc2V0dGVy
X2VtYWlsIGFuZCBub3QgY29tbWl0dGVyOgorICAgICAgICAgICAgcmVqZWN0aW9uX2Z1bmN0aW9u
KHBhdGNoLmlkKCksCisgICAgICAgICAgICAgICAgc2VsZi5fZmxhZ19wZXJtaXNzaW9uX3JlamVj
dGlvbl9tZXNzYWdlKHNldHRlcl9lbWFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X2tleSkpCisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfcmVqZWN0X3BhdGNoX2lm
X2ZsYWdzX2FyZV9pbnZhbGlkKHNlbGYsIHBhdGNoKToKKyAgICAgICAgcmV0dXJuIChzZWxmLl92
YWxpZGF0ZV9zZXR0ZXJfZW1haWwoCisgICAgICAgICAgICAgICAgcGF0Y2gsICJyZXZpZXdlciIs
IHNlbGYucmVqZWN0X3BhdGNoX2Zyb21fcmV2aWV3X3F1ZXVlKQorICAgICAgICAgICAgYW5kIHNl
bGYuX3ZhbGlkYXRlX3NldHRlcl9lbWFpbCgKKyAgICAgICAgICAgICAgICBwYXRjaCwgImNvbW1p
dHRlciIsIHNlbGYucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKSkKKworICAgIGRlZiBw
YXRjaGVzX2FmdGVyX3JlamVjdGluZ19pbnZhbGlkX2NvbW1pdGVyc19hbmRfcmV2aWV3ZXJzKHNl
bGYsIHBhdGNoZXMpOgorICAgICAgICByZXR1cm4gW3BhdGNoIGZvciBwYXRjaCBpbiBwYXRjaGVz
IGlmIHNlbGYuX3JlamVjdF9wYXRjaF9pZl9mbGFnc19hcmVfaW52YWxpZChwYXRjaCldCisKKyAg
ICBkZWYgcmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKHNlbGYsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9jb21tZW50X3RleHQ9Tm9uZSk6Cisg
ICAgICAgIGNvbW1lbnRfdGV4dCA9ICJSZWplY3RpbmcgcGF0Y2ggJXMgZnJvbSBjb21taXQtcXVl
dWUuIiAlIGF0dGFjaG1lbnRfaWQKKyAgICAgICAgc2VsZi5fYnVnemlsbGEuc2V0X2ZsYWdfb25f
YXR0YWNobWVudChhdHRhY2htZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjb21taXQtcXVldWUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9jb21tZW50X3RleHQpCisKKyAgICBkZWYg
cmVqZWN0X3BhdGNoX2Zyb21fcmV2aWV3X3F1ZXVlKHNlbGYsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9jb21tZW50X3RleHQ9Tm9uZSk6CisgICAgICAg
IGNvbW1lbnRfdGV4dCA9ICJSZWplY3RpbmcgcGF0Y2ggJXMgZnJvbSByZXZpZXcgcXVldWUuIiAl
IGF0dGFjaG1lbnRfaWQKKyAgICAgICAgc2VsZi5fYnVnemlsbGEuc2V0X2ZsYWdfb25fYXR0YWNo
bWVudChhdHRhY2htZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdyZXZpZXcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICctJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tZW50X3RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWRkaXRpb25hbF9jb21tZW50X3RleHQpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVydmFsaWRhdG9yX3VuaXR0
ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1p
dHRlcnZhbGlkYXRvcl91bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWZhM2JmMTM1YWMyODVmZWM1
YWVhODNkYTRmMmFjOTg5YTFlZjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvcl91bml0dGVzdC5w
eQpAQCAtMCwwICsxLDQzIEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zy
b20gLmNvbW1pdHRlcnZhbGlkYXRvciBpbXBvcnQgQ29tbWl0dGVyVmFsaWRhdG9yCisKKworY2xh
c3MgQ29tbWl0dGVyVmFsaWRhdG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRl
c3RfZmxhZ19wZXJtaXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKHNlbGYpOgorICAgICAgICB2YWxp
ZGF0b3IgPSBDb21taXR0ZXJWYWxpZGF0b3IoYnVnemlsbGE9Tm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh2YWxpZGF0b3IuX2NvbW1pdHRlcnNfcHlfcGF0aCgpLCAiV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkiKQorICAgICAgICBl
eHBlY3RlZF9tZXNzc2FnZSA9ICIiImZvb0Bmb28uY29tIGRvZXMgbm90IGhhdmUgcmV2aWV3IHBl
cm1pc3Npb25zIGFjY29yZGluZyB0byBodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1
bmsvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMu
cHkuCisKKy0gSWYgeW91IGRvIG5vdCBoYXZlIHJldmlldyByaWdodHMgcGxlYXNlIHJlYWQgaHR0
cDovL3dlYmtpdC5vcmcvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sIGZvciBpbnN0cnVjdGlvbnMg
b24gaG93IHRvIHVzZSBidWd6aWxsYSBmbGFncy4KKworLSBJZiB5b3UgaGF2ZSByZXZpZXcgcmln
aHRzIHBsZWFzZSBjb3JyZWN0IHRoZSBlcnJvciBpbiBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5weSBieSBhZGRpbmcgeW91cnNlbGYgdG8gdGhl
IGZpbGUgKG5vIHJldmlldyBuZWVkZWQpLiAgVGhlIGNvbW1pdC1xdWV1ZSByZXN0YXJ0cyBpdHNl
bGYgZXZlcnkgMiBob3Vycy4gIEFmdGVyIHJlc3RhcnQgdGhlIGNvbW1pdC1xdWV1ZSB3aWxsIGNv
cnJlY3RseSByZXNwZWN0IHlvdXIgcmV2aWV3IHJpZ2h0cy4iIiIKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh2YWxpZGF0b3IuX2ZsYWdfcGVybWlzc2lvbl9yZWplY3Rpb25fbWVzc2FnZSgiZm9v
QGZvby5jb20iLCAicmV2aWV3IiksIGV4cGVjdGVkX21lc3NzYWdlKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL19faW5pdF9fLnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL19faW5p
dF9fLnB5CmluZGV4IDJiNzA1OGZjMjZhYWViMWJmNzU0MDk5YTQ2NWQyZjFmMWU3YTQ3OTcuLmNm
YWYzYjEwNjI0YTUzNDEyNmVlNTAyOTM5YWQ2NzYyZmQ4MGNjNTYgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9fX2luaXRfXy5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvX19p
bml0X18ucHkKQEAgLTEsNCArMSw4IEBACiAjIFJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNo
IHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUgZmlsZXMKIAotIyBFdmVudHVhbGx5IGJ1Z3ppbGxh
IHdpbGwgaGF2ZSBvbmUtZmlsZS1wZXItY2xhc3MgYW5kIHdlJ2xsIG9ubHkgZXhwb3J0IHB1Ymxp
YyBjbGFzc2VzLgotZnJvbSAuYnVnemlsbGEgaW1wb3J0ICoKKyMgV2Ugb25seSBleHBvcnQgcHVi
bGljIEFQSSBoZXJlLgorIyBGSVhNRTogcGFyc2VfYnVnX2lkIHNob3VsZCBub3QgYmUgYSBmcmVl
IGZ1bmN0aW9uLgorZnJvbSAuYnVnemlsbGEgaW1wb3J0IEJ1Z3ppbGxhLCBwYXJzZV9idWdfaWQK
KyMgVW5jbGVhciBpZiBCdWcgYW5kIEF0dGFjaG1lbnQgbmVlZCB0byBiZSBwdWJsaWMgY2xhc3Nl
cy4KK2Zyb20gLmJ1ZyBpbXBvcnQgQnVnCitmcm9tIC5hdHRhY2htZW50IGltcG9ydCBBdHRhY2ht
ZW50CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQv
YnVnemlsbGEvYXR0YWNobWVudC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9idWd6aWxsYS9hdHRhY2htZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1NzYxZmVhODkzNGM0
Y2FlNGFjNGM5MGMyZWM0NzVlYTEwNmQ2NzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYXR0YWNobWVudC5weQpAQCAt
MCwwICsxLDExNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDEwIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
IyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCisKKworY2xhc3Mg
QXR0YWNobWVudChvYmplY3QpOgorCisgICAgcm9sbG91dF9wcmVhbWJsZSA9ICJST0xMT1VUIG9m
IHIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXR0YWNobWVudF9kaWN0aW9uYXJ5LCBidWcp
OgorICAgICAgICBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkgPSBhdHRhY2htZW50X2RpY3Rp
b25hcnkKKyAgICAgICAgc2VsZi5fYnVnID0gYnVnCisgICAgICAgIHNlbGYuX3Jldmlld2VyID0g
Tm9uZQorICAgICAgICBzZWxmLl9jb21taXR0ZXIgPSBOb25lCisKKyAgICBkZWYgX2J1Z3ppbGxh
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVnLl9idWd6aWxsYQorCisgICAgZGVmIGlk
KHNlbGYpOgorICAgICAgICByZXR1cm4gaW50KHNlbGYuX2F0dGFjaG1lbnRfZGljdGlvbmFyeS5n
ZXQoImlkIikpCisKKyAgICBkZWYgYXR0YWNoZXJfaXNfY29tbWl0dGVyKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5fYnVnemlsbGEuY29tbWl0dGVycy5jb21taXR0ZXJfYnlfZW1haWwoCisg
ICAgICAgICAgICBwYXRjaC5hdHRhY2hlcl9lbWFpbCgpKQorCisgICAgZGVmIGF0dGFjaGVyX2Vt
YWlsKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYXR0YWNobWVudF9kaWN0aW9uYXJ5Lmdl
dCgiYXR0YWNoZXJfZW1haWwiKQorCisgICAgZGVmIGJ1ZyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2J1ZworCisgICAgZGVmIGJ1Z19pZChzZWxmKToKKyAgICAgICAgcmV0dXJuIGludChz
ZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJidWdfaWQiKSkKKworICAgIGRlZiBpc19w
YXRjaChzZWxmKToKKyAgICAgICAgcmV0dXJuIG5vdCBub3Qgc2VsZi5fYXR0YWNobWVudF9kaWN0
aW9uYXJ5LmdldCgiaXNfcGF0Y2giKQorCisgICAgZGVmIGlzX29ic29sZXRlKHNlbGYpOgorICAg
ICAgICByZXR1cm4gbm90IG5vdCBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJpc19v
YnNvbGV0ZSIpCisKKyAgICBkZWYgaXNfcm9sbG91dChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYubmFtZSgpLnN0YXJ0c3dpdGgoc2VsZi5yb2xsb3V0X3ByZWFtYmxlKQorCisgICAgZGVmIG5h
bWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0
KCJuYW1lIikKKworICAgIGRlZiBhdHRhY2hfZGF0ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2F0dGFjaG1lbnRfZGljdGlvbmFyeS5nZXQoImF0dGFjaF9kYXRlIikKKworICAgIGRlZiBy
ZXZpZXcoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnku
Z2V0KCJyZXZpZXciKQorCisgICAgZGVmIGNvbW1pdF9xdWV1ZShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2F0dGFjaG1lbnRfZGljdGlvbmFyeS5nZXQoImNvbW1pdC1xdWV1ZSIpCisKKyAg
ICBkZWYgdXJsKHNlbGYpOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IHJldHVy
bgorICAgICAgICAjIHNlbGYuX2J1Z3ppbGxhKCkuYXR0YWNobWVudF91cmxfZm9yX2lkKHNlbGYu
aWQoKSkuIHNjbV91bml0dGVzdC5weQorICAgICAgICAjIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQg
YmVoYXZpb3IuCisgICAgICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0
KCJ1cmwiKQorCisgICAgZGVmIGNvbnRlbnRzKHNlbGYpOgorICAgICAgICAjIEZJWE1FOiBXZSBz
aG91bGRuJ3QgYmUgZ3JhYmJpbmcgYXQgX2J1Z3ppbGxhLgorICAgICAgICByZXR1cm4gc2VsZi5f
YnVnLl9idWd6aWxsYS5mZXRjaF9hdHRhY2htZW50X2NvbnRlbnRzKHNlbGYuaWQoKSkKKworICAg
IGRlZiBfdmFsaWRhdGVfZmxhZ192YWx1ZShzZWxmLCBmbGFnKToKKyAgICAgICAgZW1haWwgPSBz
ZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCIlc19lbWFpbCIgJSBmbGFnKQorICAgICAg
ICBpZiBub3QgZW1haWw6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBjb21taXR0
ZXIgPSBnZXRhdHRyKHNlbGYuX2J1Z3ppbGxhKCkuY29tbWl0dGVycywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiJXNfYnlfZW1haWwiICUgZmxhZykoZW1haWwpCisgICAgICAgIGlmIGNv
bW1pdHRlcjoKKyAgICAgICAgICAgIHJldHVybiBjb21taXR0ZXIKKyAgICAgICAgbG9nKCJXYXJu
aW5nLCBhdHRhY2htZW50ICVzIG9uIGJ1ZyAlcyBoYXMgaW52YWxpZCAlcyAoJXMpIiAlICgKKyAg
ICAgICAgICAgICAgICAgc2VsZi5fYXR0YWNobWVudF9kaWN0aW9uYXJ5WydpZCddLAorICAgICAg
ICAgICAgICAgICBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnlbJ2J1Z19pZCddLCBmbGFnLCBl
bWFpbCkpCisKKyAgICBkZWYgcmV2aWV3ZXIoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9y
ZXZpZXdlcjoKKyAgICAgICAgICAgIHNlbGYuX3Jldmlld2VyID0gc2VsZi5fdmFsaWRhdGVfZmxh
Z192YWx1ZSgicmV2aWV3ZXIiKQorICAgICAgICByZXR1cm4gc2VsZi5fcmV2aWV3ZXIKKworICAg
IGRlZiBjb21taXR0ZXIoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9jb21taXR0ZXI6Cisg
ICAgICAgICAgICBzZWxmLl9jb21taXR0ZXIgPSBzZWxmLl92YWxpZGF0ZV9mbGFnX3ZhbHVlKCJj
b21taXR0ZXIiKQorICAgICAgICByZXR1cm4gc2VsZi5fY29tbWl0dGVyCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Zy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yY2I0YmM4NTBhZGZjYTZlYTFjMTliNzkzODhiZDhlNDRiMTA5YTA1Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1
Z3ppbGxhL2J1Zy5weQpAQCAtMCwwICsxLDEwNSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDEwIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworZnJvbSAuYXR0YWNobWVudCBpbXBvcnQgQXR0YWNobWVudAorCisKK2NsYXNzIEJ1Zyhv
YmplY3QpOgorICAgICMgRklYTUU6IFRoaXMgY2xhc3MgaXMga2luZGEgYSBoYWNrIGZvciBub3cu
ICBJdCBleGlzdHMgc28gd2UgaGF2ZSBvbmUKKyAgICAjIHBsYWNlIHRvIGhvbGQgYnVnIGxvZ2lj
LCBldmVuIGlmIG11Y2ggb2YgdGhlIGNvZGUgZGVhbHMgd2l0aAorICAgICMgZGljdGlvbmFyaWVz
IHN0aWxsLgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJ1Z19kaWN0aW9uYXJ5LCBidWd6aWxs
YSk6CisgICAgICAgIHNlbGYuYnVnX2RpY3Rpb25hcnkgPSBidWdfZGljdGlvbmFyeQorICAgICAg
ICBzZWxmLl9idWd6aWxsYSA9IGJ1Z3ppbGxhCisKKyAgICBkZWYgaWQoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLmJ1Z19kaWN0aW9uYXJ5WyJpZCJdCisKKyAgICBkZWYgdGl0bGUoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLmJ1Z19kaWN0aW9uYXJ5WyJ0aXRsZSJdCisKKyAgICBkZWYg
YXNzaWduZWRfdG9fZW1haWwoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmJ1Z19kaWN0aW9u
YXJ5WyJhc3NpZ25lZF90b19lbWFpbCJdCisKKyAgICAjIEZJWE1FOiBUaGlzIGluZm9ybWF0aW9u
IHNob3VsZCBiZSBzdG9yZWQgaW4gc29tZSBzb3J0IG9mIHdlYmtpdF9jb25maWcucHkgaW5zdGVh
ZCBvZiBoZXJlLgorICAgIHVuYXNzaWduZWRfZW1haWxzID0gZnJvemVuc2V0KFsKKyAgICAgICAg
IndlYmtpdC11bmFzc2lnbmVkQGxpc3RzLndlYmtpdC5vcmciLAorICAgICAgICAid2Via2l0LXF0
LXVuYXNzaWduZWRAdHJvbGx0ZWNoLmNvbSIsCisgICAgXSkKKworICAgIGRlZiBpc191bmFzc2ln
bmVkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5hc3NpZ25lZF90b19lbWFpbCgpIGluIHNl
bGYudW5hc3NpZ25lZF9lbWFpbHMKKworICAgIGRlZiBzdGF0dXMoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLmJ1Z19kaWN0aW9uYXJ5WyJidWdfc3RhdHVzIl0KKworICAgICMgQnVnemlsbGEg
aGFzIG1hbnkgc3RhdHVzIHN0YXRlcyB3ZSBkb24ndCByZWFsbHkgdXNlIGluIFdlYktpdDoKKyAg
ICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3BhZ2UuY2dpP2lkPWZpZWxkcy5odG1sI3N0YXR1
cworICAgIF9vcGVuX3N0YXRlcyA9IFsiVU5DT05GSVJNRUQiLCAiTkVXIiwgIkFTU0lHTkVEIiwg
IlJFT1BFTkVEIl0KKyAgICBfY2xvc2VkX3N0YXRlcyA9IFsiUkVTT0xWRUQiLCAiVkVSSUZJRUQi
LCAiQ0xPU0VEIl0KKworICAgIGRlZiBpc19vcGVuKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5zdGF0dXMoKSBpbiBzZWxmLl9vcGVuX3N0YXRlcworCisgICAgZGVmIGlzX2Nsb3NlZChzZWxm
KToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmlzX29wZW4oKQorCisgICAgIyBSYXJlbHkgZG8g
d2UgYWN0dWFsbHkgd2FudCBvYnNvbGV0ZSBhdHRhY2htZW50cworICAgIGRlZiBhdHRhY2htZW50
cyhzZWxmLCBpbmNsdWRlX29ic29sZXRlPUZhbHNlKToKKyAgICAgICAgYXR0YWNobWVudHMgPSBz
ZWxmLmJ1Z19kaWN0aW9uYXJ5WyJhdHRhY2htZW50cyJdCisgICAgICAgIGlmIG5vdCBpbmNsdWRl
X29ic29sZXRlOgorICAgICAgICAgICAgYXR0YWNobWVudHMgPSBmaWx0ZXIobGFtYmRhIGF0dGFj
aG1lbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QgYXR0YWNobWVudFsi
aXNfb2Jzb2xldGUiXSwgYXR0YWNobWVudHMpCisgICAgICAgIHJldHVybiBbQXR0YWNobWVudChh
dHRhY2htZW50LCBzZWxmKSBmb3IgYXR0YWNobWVudCBpbiBhdHRhY2htZW50c10KKworICAgIGRl
ZiBwYXRjaGVzKHNlbGYsIGluY2x1ZGVfb2Jzb2xldGU9RmFsc2UpOgorICAgICAgICByZXR1cm4g
W3BhdGNoIGZvciBwYXRjaCBpbiBzZWxmLmF0dGFjaG1lbnRzKGluY2x1ZGVfb2Jzb2xldGUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhdGNoLmlzX3BhdGNoKCldCisK
KyAgICBkZWYgdW5yZXZpZXdlZF9wYXRjaGVzKHNlbGYpOgorICAgICAgICByZXR1cm4gW3BhdGNo
IGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXMoKSBpZiBwYXRjaC5yZXZpZXcoKSA9PSAiPyJdCisK
KyAgICBkZWYgcmV2aWV3ZWRfcGF0Y2hlcyhzZWxmLCBpbmNsdWRlX2ludmFsaWQ9RmFsc2UpOgor
ICAgICAgICBwYXRjaGVzID0gW3BhdGNoIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXMoKSBpZiBw
YXRjaC5yZXZpZXcoKSA9PSAiKyJdCisgICAgICAgIGlmIGluY2x1ZGVfaW52YWxpZDoKKyAgICAg
ICAgICAgIHJldHVybiBwYXRjaGVzCisgICAgICAgICMgQ2hlY2tpbmcgcmV2aWV3ZXIoKSBlbnN1
cmVzIHRoYXQgaXQgd2FzIGJvdGggcmV2aWV3ZWQgYW5kIGhhcyBhIHZhbGlkCisgICAgICAgICMg
cmV2aWV3ZXIuCisgICAgICAgIHJldHVybiBmaWx0ZXIobGFtYmRhIHBhdGNoOiBwYXRjaC5yZXZp
ZXdlcigpLCBwYXRjaGVzKQorCisgICAgZGVmIGNvbW1pdF9xdWV1ZWRfcGF0Y2hlcyhzZWxmLCBp
bmNsdWRlX2ludmFsaWQ9RmFsc2UpOgorICAgICAgICBwYXRjaGVzID0gW3BhdGNoIGZvciBwYXRj
aCBpbiBzZWxmLnBhdGNoZXMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiBwYXRjaC5jb21taXRfcXVldWUoKSA9PSAiKyJdCisgICAgICAgIGlmIGluY2x1ZGVfaW52
YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBwYXRjaGVzCisgICAgICAgICMgQ2hlY2tpbmcgY29t
bWl0dGVyKCkgZW5zdXJlcyB0aGF0IGl0IHdhcyBib3RoIGNvbW1pdC1xdWV1ZSsnZCBhbmQgaGFz
CisgICAgICAgICMgYSB2YWxpZCBjb21taXR0ZXIuCisgICAgICAgIHJldHVybiBmaWx0ZXIobGFt
YmRhIHBhdGNoOiBwYXRjaC5jb21taXR0ZXIoKSwgcGF0Y2hlcykKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWdfdW5pdHRlc3Qu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVn
X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0M2Q2NGZjNjg0YjVmYmY5ZDNjOGZhOWRlZTY0ZjZl
YTg0ZGFkNWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNDAgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSAuYnVnIGltcG9ydCBCdWcKKwor
CitjbGFzcyBCdWdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9pc191bmFz
c2lnbmVkKHNlbGYpOgorICAgICAgICBmb3IgZW1haWwgaW4gQnVnLnVuYXNzaWduZWRfZW1haWxz
OgorICAgICAgICAgICAgYnVnID0gQnVnKHsiYXNzaWduZWRfdG9fZW1haWwiOiBlbWFpbH0sIGJ1
Z3ppbGxhPU5vbmUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYnVnLmlzX3VuYXNzaWdu
ZWQoKSkKKyAgICAgICAgYnVnID0gQnVnKHsiYXNzaWduZWRfdG9fZW1haWwiOiAidGVzdEB0ZXN0
LmNvbSJ9LCBidWd6aWxsYT1Ob25lKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ1Zy5pc191
bmFzc2lnbmVkKCkpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHkKaW5kZXggYTdkYzFiNzRhMTVjMTU0
NTkxZjg4ZTZjMjczNWM1OWEyMjAyOWU3OC4uOTFhY2RmN2Q0MGIzNjBjZTBhYTg1N2E5NTc0MDFh
ZjFjNDczMTM2MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYS5weQpAQCAtMzYsMTUgKzM2LDE4IEBA
IGltcG9ydCBTdHJpbmdJTwogCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSAjIHVzZWQg
aW4gdGltZXN0YW1wKCkKIAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRf
bG9nZ2luZyBpbXBvcnQgZXJyb3IsIGxvZworZnJvbSAuYXR0YWNobWVudCBpbXBvcnQgQXR0YWNo
bWVudAorZnJvbSAuYnVnIGltcG9ydCBCdWcKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25m
aWcgaW1wb3J0IGNvbW1pdHRlcnMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5jcmVkZW50aWFs
cyBpbXBvcnQgQ3JlZGVudGlhbHMKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5vc3BhdGgg
aW1wb3J0IHJlbHBhdGgKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyIGltcG9ydCBV
c2VyCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5tZWNoYW5pemUgaW1w
b3J0IEJyb3dzZXIKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9y
dCBCZWF1dGlmdWxTb3VwLCBTb3VwU3RyYWluZXIKIAogCisjIEZJWE1FOiBwYXJzZV9idWdfaWQg
c2hvdWxkIG5vdCBiZSBhIGZyZWUgZnVuY3Rpb24uCiBkZWYgcGFyc2VfYnVnX2lkKG1lc3NhZ2Up
OgogICAgIGlmIG5vdCBtZXNzYWdlOgogICAgICAgICByZXR1cm4gTm9uZQpAQCAtNjMsMTYyICs2
Niw2IEBAIGRlZiB0aW1lc3RhbXAoKToKICAgICByZXR1cm4gZGF0ZXRpbWUubm93KCkuc3RyZnRp
bWUoIiVZJW0lZCVIJU0lUyIpCiAKIAotY2xhc3MgQXR0YWNobWVudChvYmplY3QpOgotCi0gICAg
cm9sbG91dF9wcmVhbWJsZSA9ICJST0xMT1VUIG9mIHIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYXR0YWNobWVudF9kaWN0aW9uYXJ5LCBidWcpOgotICAgICAgICBzZWxmLl9hdHRhY2htZW50
X2RpY3Rpb25hcnkgPSBhdHRhY2htZW50X2RpY3Rpb25hcnkKLSAgICAgICAgc2VsZi5fYnVnID0g
YnVnCi0gICAgICAgIHNlbGYuX3Jldmlld2VyID0gTm9uZQotICAgICAgICBzZWxmLl9jb21taXR0
ZXIgPSBOb25lCi0KLSAgICBkZWYgX2J1Z3ppbGxhKHNlbGYpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fYnVnLl9idWd6aWxsYQotCi0gICAgZGVmIGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gaW50
KHNlbGYuX2F0dGFjaG1lbnRfZGljdGlvbmFyeS5nZXQoImlkIikpCi0KLSAgICBkZWYgYXR0YWNo
ZXJfaXNfY29tbWl0dGVyKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fYnVnemlsbGEuY29t
bWl0dGVycy5jb21taXR0ZXJfYnlfZW1haWwoCi0gICAgICAgICAgICBwYXRjaC5hdHRhY2hlcl9l
bWFpbCgpKQotCi0gICAgZGVmIGF0dGFjaGVyX2VtYWlsKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5fYXR0YWNobWVudF9kaWN0aW9uYXJ5LmdldCgiYXR0YWNoZXJfZW1haWwiKQotCi0gICAg
ZGVmIGJ1ZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2J1ZwotCi0gICAgZGVmIGJ1Z19p
ZChzZWxmKToKLSAgICAgICAgcmV0dXJuIGludChzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnku
Z2V0KCJidWdfaWQiKSkKLQotICAgIGRlZiBpc19wYXRjaChzZWxmKToKLSAgICAgICAgcmV0dXJu
IG5vdCBub3Qgc2VsZi5fYXR0YWNobWVudF9kaWN0aW9uYXJ5LmdldCgiaXNfcGF0Y2giKQotCi0g
ICAgZGVmIGlzX29ic29sZXRlKHNlbGYpOgotICAgICAgICByZXR1cm4gbm90IG5vdCBzZWxmLl9h
dHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJpc19vYnNvbGV0ZSIpCi0KLSAgICBkZWYgaXNfcm9s
bG91dChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubmFtZSgpLnN0YXJ0c3dpdGgoc2VsZi5y
b2xsb3V0X3ByZWFtYmxlKQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJuYW1lIikKLQotICAgIGRlZiBhdHRhY2hf
ZGF0ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2F0dGFjaG1lbnRfZGljdGlvbmFyeS5n
ZXQoImF0dGFjaF9kYXRlIikKLQotICAgIGRlZiByZXZpZXcoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJyZXZpZXciKQotCi0gICAgZGVmIGNv
bW1pdF9xdWV1ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2F0dGFjaG1lbnRfZGljdGlv
bmFyeS5nZXQoImNvbW1pdC1xdWV1ZSIpCi0KLSAgICBkZWYgdXJsKHNlbGYpOgotICAgICAgICAj
IEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IHJldHVybgotICAgICAgICAjIHNlbGYuX2J1Z3ppbGxh
KCkuYXR0YWNobWVudF91cmxfZm9yX2lkKHNlbGYuaWQoKSkuIHNjbV91bml0dGVzdC5weQotICAg
ICAgICAjIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgYmVoYXZpb3IuCi0gICAgICAgIHJldHVybiBz
ZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJ1cmwiKQotCi0gICAgZGVmIGNvbnRlbnRz
KHNlbGYpOgotICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGRuJ3QgYmUgZ3JhYmJpbmcgYXQgX2J1
Z3ppbGxhLgotICAgICAgICByZXR1cm4gc2VsZi5fYnVnLl9idWd6aWxsYS5mZXRjaF9hdHRhY2ht
ZW50X2NvbnRlbnRzKHNlbGYuaWQoKSkKLQotICAgIGRlZiBfdmFsaWRhdGVfZmxhZ192YWx1ZShz
ZWxmLCBmbGFnKToKLSAgICAgICAgZW1haWwgPSBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnku
Z2V0KCIlc19lbWFpbCIgJSBmbGFnKQotICAgICAgICBpZiBub3QgZW1haWw6Ci0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICBjb21taXR0ZXIgPSBnZXRhdHRyKHNlbGYuX2J1Z3ppbGxh
KCkuY29tbWl0dGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXNfYnlfZW1haWwi
ICUgZmxhZykoZW1haWwpCi0gICAgICAgIGlmIGNvbW1pdHRlcjoKLSAgICAgICAgICAgIHJldHVy
biBjb21taXR0ZXIKLSAgICAgICAgbG9nKCJXYXJuaW5nLCBhdHRhY2htZW50ICVzIG9uIGJ1ZyAl
cyBoYXMgaW52YWxpZCAlcyAoJXMpIiAlICgKLSAgICAgICAgICAgICAgICAgc2VsZi5fYXR0YWNo
bWVudF9kaWN0aW9uYXJ5WydpZCddLAotICAgICAgICAgICAgICAgICBzZWxmLl9hdHRhY2htZW50
X2RpY3Rpb25hcnlbJ2J1Z19pZCddLCBmbGFnLCBlbWFpbCkpCi0KLSAgICBkZWYgcmV2aWV3ZXIo
c2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9yZXZpZXdlcjoKLSAgICAgICAgICAgIHNlbGYu
X3Jldmlld2VyID0gc2VsZi5fdmFsaWRhdGVfZmxhZ192YWx1ZSgicmV2aWV3ZXIiKQotICAgICAg
ICByZXR1cm4gc2VsZi5fcmV2aWV3ZXIKLQotICAgIGRlZiBjb21taXR0ZXIoc2VsZik6Ci0gICAg
ICAgIGlmIG5vdCBzZWxmLl9jb21taXR0ZXI6Ci0gICAgICAgICAgICBzZWxmLl9jb21taXR0ZXIg
PSBzZWxmLl92YWxpZGF0ZV9mbGFnX3ZhbHVlKCJjb21taXR0ZXIiKQotICAgICAgICByZXR1cm4g
c2VsZi5fY29tbWl0dGVyCi0KLQotY2xhc3MgQnVnKG9iamVjdCk6Ci0gICAgIyBGSVhNRTogVGhp
cyBjbGFzcyBpcyBraW5kYSBhIGhhY2sgZm9yIG5vdy4gIEl0IGV4aXN0cyBzbyB3ZSBoYXZlIG9u
ZQotICAgICMgcGxhY2UgdG8gaG9sZCBidWcgbG9naWMsIGV2ZW4gaWYgbXVjaCBvZiB0aGUgY29k
ZSBkZWFscyB3aXRoCi0gICAgIyBkaWN0aW9uYXJpZXMgc3RpbGwuCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgYnVnX2RpY3Rpb25hcnksIGJ1Z3ppbGxhKToKLSAgICAgICAgc2VsZi5idWdfZGlj
dGlvbmFyeSA9IGJ1Z19kaWN0aW9uYXJ5Ci0gICAgICAgIHNlbGYuX2J1Z3ppbGxhID0gYnVnemls
bGEKLQotICAgIGRlZiBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuYnVnX2RpY3Rpb25h
cnlbImlkIl0KLQotICAgIGRlZiB0aXRsZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuYnVn
X2RpY3Rpb25hcnlbInRpdGxlIl0KLQotICAgIGRlZiBhc3NpZ25lZF90b19lbWFpbChzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuYnVnX2RpY3Rpb25hcnlbImFzc2lnbmVkX3RvX2VtYWlsIl0K
LQotICAgICMgRklYTUU6IFRoaXMgaW5mb3JtYXRpb24gc2hvdWxkIGJlIHN0b3JlZCBpbiBzb21l
IHNvcnQgb2Ygd2Via2l0X2NvbmZpZy5weSBpbnN0ZWFkIG9mIGhlcmUuCi0gICAgdW5hc3NpZ25l
ZF9lbWFpbHMgPSBmcm96ZW5zZXQoWwotICAgICAgICAid2Via2l0LXVuYXNzaWduZWRAbGlzdHMu
d2Via2l0Lm9yZyIsCi0gICAgICAgICJ3ZWJraXQtcXQtdW5hc3NpZ25lZEB0cm9sbHRlY2guY29t
IiwKLSAgICBdKQotICAgIGRlZiBpc191bmFzc2lnbmVkKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5hc3NpZ25lZF90b19lbWFpbCgpIGluIHNlbGYudW5hc3NpZ25lZF9lbWFpbHMKLQotICAg
IGRlZiBzdGF0dXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmJ1Z19kaWN0aW9uYXJ5WyJi
dWdfc3RhdHVzIl0KLQotICAgICMgQnVnemlsbGEgaGFzIG1hbnkgc3RhdHVzIHN0YXRlcyB3ZSBk
b24ndCByZWFsbHkgdXNlIGluIFdlYktpdDoKLSAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3BhZ2UuY2dpP2lkPWZpZWxkcy5odG1sI3N0YXR1cwotICAgIF9vcGVuX3N0YXRlcyA9IFsiVU5D
T05GSVJNRUQiLCAiTkVXIiwgIkFTU0lHTkVEIiwgIlJFT1BFTkVEIl0KLSAgICBfY2xvc2VkX3N0
YXRlcyA9IFsiUkVTT0xWRUQiLCAiVkVSSUZJRUQiLCAiQ0xPU0VEIl0KLQotICAgIGRlZiBpc19v
cGVuKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zdGF0dXMoKSBpbiBzZWxmLl9vcGVuX3N0
YXRlcwotCi0gICAgZGVmIGlzX2Nsb3NlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxm
LmlzX29wZW4oKQotCi0gICAgIyBSYXJlbHkgZG8gd2UgYWN0dWFsbHkgd2FudCBvYnNvbGV0ZSBh
dHRhY2htZW50cwotICAgIGRlZiBhdHRhY2htZW50cyhzZWxmLCBpbmNsdWRlX29ic29sZXRlPUZh
bHNlKToKLSAgICAgICAgYXR0YWNobWVudHMgPSBzZWxmLmJ1Z19kaWN0aW9uYXJ5WyJhdHRhY2ht
ZW50cyJdCi0gICAgICAgIGlmIG5vdCBpbmNsdWRlX29ic29sZXRlOgotICAgICAgICAgICAgYXR0
YWNobWVudHMgPSBmaWx0ZXIobGFtYmRhIGF0dGFjaG1lbnQ6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub3QgYXR0YWNobWVudFsiaXNfb2Jzb2xldGUiXSwgYXR0YWNobWVudHMp
Ci0gICAgICAgIHJldHVybiBbQXR0YWNobWVudChhdHRhY2htZW50LCBzZWxmKSBmb3IgYXR0YWNo
bWVudCBpbiBhdHRhY2htZW50c10KLQotICAgIGRlZiBwYXRjaGVzKHNlbGYsIGluY2x1ZGVfb2Jz
b2xldGU9RmFsc2UpOgotICAgICAgICByZXR1cm4gW3BhdGNoIGZvciBwYXRjaCBpbiBzZWxmLmF0
dGFjaG1lbnRzKGluY2x1ZGVfb2Jzb2xldGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIHBhdGNoLmlzX3BhdGNoKCldCi0KLSAgICBkZWYgdW5yZXZpZXdlZF9wYXRjaGVz
KHNlbGYpOgotICAgICAgICByZXR1cm4gW3BhdGNoIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXMo
KSBpZiBwYXRjaC5yZXZpZXcoKSA9PSAiPyJdCi0KLSAgICBkZWYgcmV2aWV3ZWRfcGF0Y2hlcyhz
ZWxmLCBpbmNsdWRlX2ludmFsaWQ9RmFsc2UpOgotICAgICAgICBwYXRjaGVzID0gW3BhdGNoIGZv
ciBwYXRjaCBpbiBzZWxmLnBhdGNoZXMoKSBpZiBwYXRjaC5yZXZpZXcoKSA9PSAiKyJdCi0gICAg
ICAgIGlmIGluY2x1ZGVfaW52YWxpZDoKLSAgICAgICAgICAgIHJldHVybiBwYXRjaGVzCi0gICAg
ICAgICMgQ2hlY2tpbmcgcmV2aWV3ZXIoKSBlbnN1cmVzIHRoYXQgaXQgd2FzIGJvdGggcmV2aWV3
ZWQgYW5kIGhhcyBhIHZhbGlkCi0gICAgICAgICMgcmV2aWV3ZXIuCi0gICAgICAgIHJldHVybiBm
aWx0ZXIobGFtYmRhIHBhdGNoOiBwYXRjaC5yZXZpZXdlcigpLCBwYXRjaGVzKQotCi0gICAgZGVm
IGNvbW1pdF9xdWV1ZWRfcGF0Y2hlcyhzZWxmLCBpbmNsdWRlX2ludmFsaWQ9RmFsc2UpOgotICAg
ICAgICBwYXRjaGVzID0gW3BhdGNoIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXMoKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwYXRjaC5jb21taXRfcXVldWUoKSA9
PSAiKyJdCi0gICAgICAgIGlmIGluY2x1ZGVfaW52YWxpZDoKLSAgICAgICAgICAgIHJldHVybiBw
YXRjaGVzCi0gICAgICAgICMgQ2hlY2tpbmcgY29tbWl0dGVyKCkgZW5zdXJlcyB0aGF0IGl0IHdh
cyBib3RoIGNvbW1pdC1xdWV1ZSsnZCBhbmQgaGFzCi0gICAgICAgICMgYSB2YWxpZCBjb21taXR0
ZXIuCi0gICAgICAgIHJldHVybiBmaWx0ZXIobGFtYmRhIHBhdGNoOiBwYXRjaC5jb21taXR0ZXIo
KSwgcGF0Y2hlcykKLQotCiAjIEEgY29udGFpbmVyIGZvciBhbGwgb2YgdGhlIGxvZ2ljIGZvciBt
YWtpbmcgYW5kIHBhcnNpbmcgYnV6aWxsYSBxdWVyaWVzLgogY2xhc3MgQnVnemlsbGFRdWVyaWVz
KG9iamVjdCk6CiAKQEAgLTI5OCw5MiArMTQ1LDYgQEAgY2xhc3MgQnVnemlsbGFRdWVyaWVzKG9i
amVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLl9mZXRjaF9hdHRhY2htZW50X2lkc19yZXF1ZXN0
X3F1ZXJ5KHJldmlld19xdWV1ZV91cmwpCiAKIAotY2xhc3MgQ29tbWl0dGVyVmFsaWRhdG9yKG9i
amVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgYnVnemlsbGEpOgotICAgICAgICBzZWxm
Ll9idWd6aWxsYSA9IGJ1Z3ppbGxhCi0KLSAgICAjIF92aWV3X3NvdXJjZV91cmwgYmVsb25ncyBp
biBzb21lIHNvcnQgb2Ygd2Via2l0X2NvbmZpZy5weSBtb2R1bGUuCi0gICAgZGVmIF92aWV3X3Nv
dXJjZV91cmwoc2VsZiwgbG9jYWxfcGF0aCk6Ci0gICAgICAgIHJldHVybiAiaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9icm93c2VyL3RydW5rLyVzIiAlIGxvY2FsX3BhdGgKLQotICAgIGRlZiBfY2hl
Y2tvdXRfcm9vdChzZWxmKToKLSAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIHdlIHdv
dWxkIGhhdmUgdGhpcyBmcm9tIHNjbS5jaGVja291dF9yb290Ci0gICAgICAgICMgaWYgd2UgaGFk
IGFueSB3YXkgdG8gZ2V0IHRvIGFuIHNjbSBvYmplY3QgaGVyZS4KLSAgICAgICAgY29tcG9uZW50
cyA9IF9fZmlsZV9fLnNwbGl0KG9zLnNlcCkKLSAgICAgICAgdG9vbHNfaW5kZXggPSBjb21wb25l
bnRzLmluZGV4KCJXZWJLaXRUb29scyIpCi0gICAgICAgIHJldHVybiBvcy5zZXAuam9pbihjb21w
b25lbnRzWzp0b29sc19pbmRleF0pCi0KLSAgICBkZWYgX2NvbW1pdHRlcnNfcHlfcGF0aChzZWxm
KToKLSAgICAgICAgIyBleHRlbnNpb24gY2FuIHNvbWV0aW1lcyBiZSAucHljLCB3ZSBhbHdheXMg
d2FudCAucHkKLSAgICAgICAgKHBhdGgsIGV4dGVuc2lvbikgPSBvcy5wYXRoLnNwbGl0ZXh0KGNv
bW1pdHRlcnMuX19maWxlX18pCi0gICAgICAgICMgRklYTUU6IFdoZW4gd2UncmUgYWxsb3dlZCB0
byB1c2UgcHl0aG9uIDIuNiB3ZSBjYW4gdXNlIHRoZSByZWFsCi0gICAgICAgICMgb3MucGF0aC5y
ZWxwYXRoCi0gICAgICAgIHBhdGggPSByZWxwYXRoKHBhdGgsIHNlbGYuX2NoZWNrb3V0X3Jvb3Qo
KSkKLSAgICAgICAgcmV0dXJuICIuIi5qb2luKFtwYXRoLCAicHkiXSkKLQotICAgIGRlZiBfZmxh
Z19wZXJtaXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKHNlbGYsIHNldHRlcl9lbWFpbCwgZmxhZ19u
YW1lKToKLSAgICAgICAgIyBTaG91bGQgY29tZSBmcm9tIHNvbWUgd2Via2l0X2NvbmZpZy5weQot
ICAgICAgICBjb250cmlidXRpb25fZ3VpZGxpbmVzID0gImh0dHA6Ly93ZWJraXQub3JnL2NvZGlu
Zy9jb250cmlidXRpbmcuaHRtbCIKLSAgICAgICAgIyBUaGlzIGNvdWxkIGJlIHF1ZXJpZWQgZnJv
bSB0aGUgc3RhdHVzX3NlcnZlci4KLSAgICAgICAgcXVldWVfYWRtaW5pc3RyYXRvciA9ICJlc2Vp
ZGVsQGNocm9taXVtLm9yZyIKLSAgICAgICAgIyBUaGlzIGNvdWxkIGJlIHF1ZXJpZWQgZnJvbSB0
aGUgdG9vbC4KLSAgICAgICAgcXVldWVfbmFtZSA9ICJjb21taXQtcXVldWUiCi0gICAgICAgIGNv
bW1pdHRlcnNfbGlzdCA9IHNlbGYuX2NvbW1pdHRlcnNfcHlfcGF0aCgpCi0gICAgICAgIG1lc3Nh
Z2UgPSAiJXMgZG9lcyBub3QgaGF2ZSAlcyBwZXJtaXNzaW9ucyBhY2NvcmRpbmcgdG8gJXMuIiAl
ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldHRlcl9lbWFpbCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZsYWdfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ZpZXdf
c291cmNlX3VybChjb21taXR0ZXJzX2xpc3QpKQotICAgICAgICBtZXNzYWdlICs9ICJcblxuLSBJ
ZiB5b3UgZG8gbm90IGhhdmUgJXMgcmlnaHRzIHBsZWFzZSByZWFkICVzIGZvciBpbnN0cnVjdGlv
bnMgb24gaG93IHRvIHVzZSBidWd6aWxsYSBmbGFncy4iICUgKAotICAgICAgICAgICAgICAgICAg
ICAgICAgZmxhZ19uYW1lLCBjb250cmlidXRpb25fZ3VpZGxpbmVzKQotICAgICAgICBtZXNzYWdl
ICs9ICJcblxuLSBJZiB5b3UgaGF2ZSAlcyByaWdodHMgcGxlYXNlIGNvcnJlY3QgdGhlIGVycm9y
IGluICVzIGJ5IGFkZGluZyB5b3Vyc2VsZiB0byB0aGUgZmlsZSAobm8gcmV2aWV3IG5lZWRlZCku
ICAiICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ19uYW1lLCBjb21taXR0ZXJzX2xp
c3QpCi0gICAgICAgIG1lc3NhZ2UgKz0gIlRoZSAlcyByZXN0YXJ0cyBpdHNlbGYgZXZlcnkgMiBo
b3Vycy4gIEFmdGVyIHJlc3RhcnQgdGhlICVzIHdpbGwgY29ycmVjdGx5IHJlc3BlY3QgeW91ciAl
cyByaWdodHMuIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXVlX25hbWUsIHF1ZXVl
X25hbWUsIGZsYWdfbmFtZSkKLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBfdmFs
aWRhdGVfc2V0dGVyX2VtYWlsKHNlbGYsIHBhdGNoLCByZXN1bHRfa2V5LCByZWplY3Rpb25fZnVu
Y3Rpb24pOgotICAgICAgICBjb21taXR0ZXIgPSBnZXRhdHRyKHBhdGNoLCByZXN1bHRfa2V5KSgp
Ci0gICAgICAgICMgSWYgdGhlIGZsYWcgaXMgc2V0LCBhbmQgd2UgZG9uJ3QgcmVjb2duaXplIHRo
ZSBzZXR0ZXIsIHJlamVjdCB0aGUKLSAgICAgICAgIyBmbGFnIQotICAgICAgICBzZXR0ZXJfZW1h
aWwgPSBwYXRjaC5fYXR0YWNobWVudF9kaWN0aW9uYXJ5LmdldCgiJXNfZW1haWwiICUgcmVzdWx0
X2tleSkKLSAgICAgICAgaWYgc2V0dGVyX2VtYWlsIGFuZCBub3QgY29tbWl0dGVyOgotICAgICAg
ICAgICAgcmVqZWN0aW9uX2Z1bmN0aW9uKHBhdGNoLmlkKCksCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fZmxhZ19wZXJtaXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKHNldHRlcl9lbWFpbCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
X2tleSkpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcmV0dXJuIFRydWUKLQot
ICAgIGRlZiBfcmVqZWN0X3BhdGNoX2lmX2ZsYWdzX2FyZV9pbnZhbGlkKHNlbGYsIHBhdGNoKToK
LSAgICAgICAgcmV0dXJuIChzZWxmLl92YWxpZGF0ZV9zZXR0ZXJfZW1haWwoCi0gICAgICAgICAg
ICAgICAgcGF0Y2gsICJyZXZpZXdlciIsIHNlbGYucmVqZWN0X3BhdGNoX2Zyb21fcmV2aWV3X3F1
ZXVlKQotICAgICAgICAgICAgYW5kIHNlbGYuX3ZhbGlkYXRlX3NldHRlcl9lbWFpbCgKLSAgICAg
ICAgICAgICAgICBwYXRjaCwgImNvbW1pdHRlciIsIHNlbGYucmVqZWN0X3BhdGNoX2Zyb21fY29t
bWl0X3F1ZXVlKSkKLQotICAgIGRlZiBwYXRjaGVzX2FmdGVyX3JlamVjdGluZ19pbnZhbGlkX2Nv
bW1pdGVyc19hbmRfcmV2aWV3ZXJzKHNlbGYsIHBhdGNoZXMpOgotICAgICAgICByZXR1cm4gW3Bh
dGNoIGZvciBwYXRjaCBpbiBwYXRjaGVzIGlmIHNlbGYuX3JlamVjdF9wYXRjaF9pZl9mbGFnc19h
cmVfaW52YWxpZChwYXRjaCldCi0KLSAgICBkZWYgcmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1
ZXVlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2ht
ZW50X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25h
bF9jb21tZW50X3RleHQ9Tm9uZSk6Ci0gICAgICAgIGNvbW1lbnRfdGV4dCA9ICJSZWplY3Rpbmcg
cGF0Y2ggJXMgZnJvbSBjb21taXQtcXVldWUuIiAlIGF0dGFjaG1lbnRfaWQKLSAgICAgICAgc2Vs
Zi5fYnVnemlsbGEuc2V0X2ZsYWdfb25fYXR0YWNobWVudChhdHRhY2htZW50X2lkLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21taXQtcXVldWUiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9j
b21tZW50X3RleHQpCi0KLSAgICBkZWYgcmVqZWN0X3BhdGNoX2Zyb21fcmV2aWV3X3F1ZXVlKHNl
bGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50X2lk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9jb21t
ZW50X3RleHQ9Tm9uZSk6Ci0gICAgICAgIGNvbW1lbnRfdGV4dCA9ICJSZWplY3RpbmcgcGF0Y2gg
JXMgZnJvbSByZXZpZXcgcXVldWUuIiAlIGF0dGFjaG1lbnRfaWQKLSAgICAgICAgc2VsZi5fYnVn
emlsbGEuc2V0X2ZsYWdfb25fYXR0YWNobWVudChhdHRhY2htZW50X2lkLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXZpZXcnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9jb21tZW50X3RleHQp
Ci0KLQogY2xhc3MgQnVnemlsbGEob2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBk
cnlydW49RmFsc2UsIGNvbW1pdHRlcnM9Y29tbWl0dGVycy5Db21taXR0ZXJMaXN0KCkpOgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxh
L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CmluZGV4IGRmMWZjZjZiNzlhYmQ5
MWEwMWE4NTljMGFlN2JiODEyZGNkNmU4YTUuLmM0NzZjODE3OGUyNTBmZGViNDY5NzEwNDY1ODg4
NGJlMDg3MzljYzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9idWd6aWxsYS9idWd6aWxsYV91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkK
QEAgLTI3LDM4ICsyNywxNiBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgdW5pdHRlc3QKLQog
aW1wb3J0IGRhdGV0aW1lCiAKLWZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJz
IGltcG9ydCBDb21taXR0ZXJMaXN0LCBSZXZpZXdlciwgQ29tbWl0dGVyCi1mcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IEJ1Z3ppbGxhLCBCdWd6aWxsYVF1ZXJpZXMsIHBh
cnNlX2J1Z19pZCwgQ29tbWl0dGVyVmFsaWRhdG9yLCBCdWcKK2Zyb20gLmJ1Z3ppbGxhIGltcG9y
dCBCdWd6aWxsYSwgQnVnemlsbGFRdWVyaWVzLCBwYXJzZV9idWdfaWQKKwogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20g
d2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja0Jyb3dzZXIKIGZyb20gd2Via2l0cHku
dGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkuQmVh
dXRpZnVsU291cCBpbXBvcnQgQmVhdXRpZnVsU291cAogCiAKLWNsYXNzIEJ1Z1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgotICAgIGRlZiB0ZXN0X2lzX3VuYXNzaWduZWQoc2VsZik6Ci0gICAgICAg
IGZvciBlbWFpbCBpbiBCdWcudW5hc3NpZ25lZF9lbWFpbHM6Ci0gICAgICAgICAgICBidWcgPSBC
dWcoeyJhc3NpZ25lZF90b19lbWFpbCIgOiBlbWFpbH0sIGJ1Z3ppbGxhPU5vbmUpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydFRydWUoYnVnLmlzX3VuYXNzaWduZWQoKSkKLSAgICAgICAgYnVnID0g
QnVnKHsiYXNzaWduZWRfdG9fZW1haWwiIDogInRlc3RAdGVzdC5jb20ifSwgYnVnemlsbGE9Tm9u
ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShidWcuaXNfdW5hc3NpZ25lZCgpKQotCi0KLWNs
YXNzIENvbW1pdHRlclZhbGlkYXRvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiB0
ZXN0X2ZsYWdfcGVybWlzc2lvbl9yZWplY3Rpb25fbWVzc2FnZShzZWxmKToKLSAgICAgICAgdmFs
aWRhdG9yID0gQ29tbWl0dGVyVmFsaWRhdG9yKGJ1Z3ppbGxhPU5vbmUpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodmFsaWRhdG9yLl9jb21taXR0ZXJzX3B5X3BhdGgoKSwgIldlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5IikKLSAgICAgICAg
ZXhwZWN0ZWRfbWVzc3NhZ2U9IiIiZm9vQGZvby5jb20gZG9lcyBub3QgaGF2ZSByZXZpZXcgcGVy
bWlzc2lvbnMgYWNjb3JkaW5nIHRvIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVu
ay9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVycy5w
eS4KLQotLSBJZiB5b3UgZG8gbm90IGhhdmUgcmV2aWV3IHJpZ2h0cyBwbGVhc2UgcmVhZCBodHRw
Oi8vd2Via2l0Lm9yZy9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWwgZm9yIGluc3RydWN0aW9ucyBv
biBob3cgdG8gdXNlIGJ1Z3ppbGxhIGZsYWdzLgotCi0tIElmIHlvdSBoYXZlIHJldmlldyByaWdo
dHMgcGxlYXNlIGNvcnJlY3QgdGhlIGVycm9yIGluIFdlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5IGJ5IGFkZGluZyB5b3Vyc2VsZiB0byB0aGUg
ZmlsZSAobm8gcmV2aWV3IG5lZWRlZCkuICBUaGUgY29tbWl0LXF1ZXVlIHJlc3RhcnRzIGl0c2Vs
ZiBldmVyeSAyIGhvdXJzLiAgQWZ0ZXIgcmVzdGFydCB0aGUgY29tbWl0LXF1ZXVlIHdpbGwgY29y
cmVjdGx5IHJlc3BlY3QgeW91ciByZXZpZXcgcmlnaHRzLiIiIgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHZhbGlkYXRvci5fZmxhZ19wZXJtaXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKCJmb29A
Zm9vLmNvbSIsICJyZXZpZXciKSwgZXhwZWN0ZWRfbWVzc3NhZ2UpCi0KLQogY2xhc3MgQnVnemls
bGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBfZXhhbXBsZV9hdHRhY2htZW50ID0gJycn
CiAgICAgICAgIDxhdHRhY2htZW50CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2ZlZWRlcnMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2ZlZWRlcnMucHkKaW5kZXggZGM4OTJhNDlmNWE3NzVjYTk3NWZmMTExNWRkNWJh
ZGJhYjhkNDQyNC4uMDQ2YzRjMWQ2YmQzY2QwM2ZhMjg3MmRjYjk0ZjgyMmUxOTU4NWEyNiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzLnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmVlZGVycy5weQpA
QCAtMjYsOCArMjYsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorZnJvbSB3
ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnZhbGlkYXRvciBpbXBvcnQgQ29tbWl0dGVy
VmFsaWRhdG9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5n
IGltcG9ydCBsb2cKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQ29t
bWl0dGVyVmFsaWRhdG9yCiBmcm9tIHdlYmtpdHB5LnRvb2wuZ3JhbW1hciBpbXBvcnQgcGx1cmFs
aXplCiAKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9xdWV1ZXMucHkKaW5kZXggOWQwMTQ3N2NlYjI1Mjk5MDAzMGM2Y2MxYTUwNzFmMGZmMGQ4
M2U5ZC4uYmZhZWIwODA4ZWZjMWUzYjE4OWVjNzllMmQyZjhjOTVlOWUxODAzNSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5
CkBAIC0zOCw3ICszOCw4IEBAIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBmcm9tIG9w
dHBhcnNlIGltcG9ydCBtYWtlX29wdGlvbgogZnJvbSBTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8K
IAotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBDb21taXR0ZXJWYWxp
ZGF0b3IsIEF0dGFjaG1lbnQKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJ2
YWxpZGF0b3IgaW1wb3J0IENvbW1pdHRlclZhbGlkYXRvcgorZnJvbSB3ZWJraXRweS5jb21tb24u
bmV0LmJ1Z3ppbGxhIGltcG9ydCBBdHRhY2htZW50CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
bGF5b3V0dGVzdHJlc3VsdHMgaW1wb3J0IHBhdGhfZm9yX2xheW91dF90ZXN0LCBMYXlvdXRUZXN0
UmVzdWx0cwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnN0YXR1c3NlcnZlciBpbXBvcnQgU3Rh
dHVzU2VydmVyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5n
IGltcG9ydCBlcnJvciwgbG9nCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>