<?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>160663</bug_id>
          
          <creation_ts>2016-08-08 10:49:00 -0700</creation_ts>
          <short_desc>Align Selection API with the specification</short_desc>
          <delta_ts>2016-08-08 13:32:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://www.w3.org/TR/selection-api/#idl-def-Selection</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160667</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mario</cc>
    
    <cc>rniwa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218525</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 10:49:00 -0700</bug_when>
    <thetext>Align Selection API with the specification:
- https://www.w3.org/TR/selection-api/#idl-def-Selection

In particular, the following changes need to be made:
- Mark parameters as non-nullable when they should be.
- Mark parameters as mandatory when they should be.
- Use &quot;unsigned long&quot; type for offsets instead of &quot;long&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218526</commentid>
    <comment_count>1</comment_count>
      <attachid>285572</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 10:55:17 -0700</bug_when>
    <thetext>Created attachment 285572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218529</commentid>
    <comment_count>2</comment_count>
      <attachid>285573</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 11:05:20 -0700</bug_when>
    <thetext>Created attachment 285573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218556</commentid>
    <comment_count>3</comment_count>
      <attachid>285573</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-08 13:00:52 -0700</bug_when>
    <thetext>Comment on attachment 285573
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=285573&amp;action=review

&gt; Source/WebCore/page/DOMSelection.idl:63
&gt; +    void setBaseAndExtent(Node baseNode, unsigned long baseOffset, Node extentNode, unsigned long extentOffset);

I think we should preserve the old behavior of clearing selection when baseNode/extentNode is null.
Filed https://github.com/w3c/selection-api/issues/72.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218557</commentid>
    <comment_count>4</comment_count>
      <attachid>285579</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 13:02:45 -0700</bug_when>
    <thetext>Created attachment 285579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218566</commentid>
    <comment_count>5</comment_count>
      <attachid>285579</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 13:31:56 -0700</bug_when>
    <thetext>Comment on attachment 285579
Patch

Clearing flags on attachment: 285579

Committed r204263: &lt;http://trac.webkit.org/changeset/204263&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218567</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 13:32:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285572</attachid>
            <date>2016-08-08 10:55:17 -0700</date>
            <delta_ts>2016-08-08 11:05:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160663-20160808105344.patch</filename>
            <type>text/plain</type>
            <size>48444</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBmYjE0NjVmNGE3OTMy
MTUwNDFmZjU3NTkyMmRiODUwOWZhZmZiYi4uNTBiMjc4OTAwNzgzOGI2ZmM2ZGVjM2YxNjQ1MGFi
Yzk2ODBkOWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gU2VsZWN0aW9uIEFQ
SSB3aXRoIHRoZSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbGlnbiBTZWxlY3Rpb24gQVBJIHdpdGggdGhlIHNwZWNpZmljYXRp
b246CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3NlbGVjdGlvbi1hcGkvI2lkbC1k
ZWYtU2VsZWN0aW9uCisKKyAgICAgICAgSW4gcGFydGljdWxhciwgdGhlIGZvbGxvd2luZyBjaGFu
Z2VzIHdlcmUgbWFkZToKKyAgICAgICAgLSBNYXJrIHBhcmFtZXRlcnMgYXMgbm9uLW51bGxhYmxl
IHdoZW4gdGhleSBzaG91bGQgYmUuCisgICAgICAgIC0gTWFyayBwYXJhbWV0ZXJzIGFzIG1hbmRh
dG9yeSB3aGVuIHRoZXkgc2hvdWxkIGJlLgorICAgICAgICAtIFVzZSAidW5zaWduZWQgbG9uZyIg
dHlwZSBmb3Igb2Zmc2V0cyBpbnN0ZWFkIG9mICJsb25nIi4KKworICAgICAgICBUaGlzIGFsaWdu
cyBvdXIgYmVoYXZpb3Igd2l0aCBGaXJlZm94IGFzIHdlbGwuIE91ciBuZXcKKyAgICAgICAgYmVo
YXZpb3IgaXMgYWxzbyBtb3N0bHkgYWxpZ25lZCB3aXRoIENocm9tZSBhcyB3ZWxsCisgICAgICAg
IGV4Y2VwdCB0aGF0IHRoZSBOb2RlIHBhcmFtZXRlcnMgdG8gc2V0QmFzZUFuZEV4dGVudCgpCisg
ICAgICAgIGFyZSBudWxsYWJsZSBpbiBDaHJvbWUgYW5kIHNob3VsZCBub3QgYmUuCisKKyAgICAg
ICAgVGVzdDogZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlucHV0Lmh0bWwKKworICAgICAgICAqIGRv
bS9Qb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OkxlZ2FjeUVkaXRpbmdP
ZmZzZXQ6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpMZWdhY3lFZGl0aW5n
T2Zmc2V0OjpMZWdhY3lFZGl0aW5nT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjphbmNob3JPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpmb2N1c09mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OmJhc2VPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
OjpleHRlbnRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpyYW5nZUNv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6Y29sbGFwc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVNlbGVjdGlvbjo6c2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2VsZWN0aW9uOjpleHRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpnZXRS
YW5nZUF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YWRkUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpkZWxldGVGcm9tRG9jdW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpjb250YWluc05vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NU2VsZWN0aW9uOjpzZWxlY3RBbGxDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnNoYWRvd0FkanVzdGVkT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6bW9kaWZ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVj
dGlvbjo6c2hhZG93QWRqdXN0ZWROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6aXNWYWxpZEZvclBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdl
L0RPTVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmlkbDoKKwogMjAx
Ni0wOC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gRml4IEdPYmplY3QgRE9NIGJpbmRpbmdzIEFQSSBicmVhayBhZnRl
ciByMjA0MjM2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA1OGFkMDRkNTQ1YTdkYWExMzgwMmEz
NTk1NjcyMjVjMmJmMWY4MDYyLi4yZTExODllZjUxZDc5ZDRjNjBkOTM5N2YwMTQ2OTAxOTQ4YWMz
NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAtNzIsMTQgKzcyLDE2IEBAIHB1YmxpYzoKICAg
ICAvLyBGb3IgY3JlYXRpbmcgbGVnYWN5IGVkaXRpbmcgcG9zaXRpb25zOiAoQW5jaG9yIHR5cGUg
d2lsbCBiZSBkZXRlcm1pbmVkIGZyb20gZWRpdGluZ0lnbm9yZXNDb250ZW50KG5vZGUpKQogICAg
IGNsYXNzIExlZ2FjeUVkaXRpbmdPZmZzZXQgewogICAgIHB1YmxpYzoKLSAgICAgICAgaW50IHZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KKyAgICAgICAgdW5zaWduZWQgdmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgZXhw
bGljaXQgTGVnYWN5RWRpdGluZ09mZnNldChpbnQgb2Zmc2V0KSA6IG1fb2Zmc2V0KG9mZnNldCkg
eyB9CisgICAgICAgIGV4cGxpY2l0IExlZ2FjeUVkaXRpbmdPZmZzZXQodW5zaWduZWQgb2Zmc2V0
KQorICAgICAgICAgICAgOiBtX29mZnNldChvZmZzZXQpCisgICAgICAgIHsgfQogCi0gICAgICAg
IGZyaWVuZCBQb3NpdGlvbiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oUGFzc1JlZlB0cjxO
b2RlPiwgaW50IG9mZnNldCk7CisgICAgICAgIGZyaWVuZCBQb3NpdGlvbiBjcmVhdGVMZWdhY3lF
ZGl0aW5nUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgb2Zmc2V0KTsKIAotICAg
ICAgICBpbnQgbV9vZmZzZXQ7CisgICAgICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIH07CiAg
ICAgV0VCQ09SRV9FWFBPUlQgUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBM
ZWdhY3lFZGl0aW5nT2Zmc2V0KTsKIApAQCAtMjI4LDcgKzIzMCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uIDogMTsKIH07CiAKLWlubGluZSBQb3NpdGlv
biBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBpbnQg
b2Zmc2V0KQoraW5saW5lIFBvc2l0aW9uIGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihQYXNz
UmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICByZXR1cm4gUG9zaXRp
b24obm9kZSwgUG9zaXRpb246OkxlZ2FjeUVkaXRpbmdPZmZzZXQob2Zmc2V0KSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAKaW5kZXggOTE3ZDVlNWFhZGRjZTI1MDMxZmZmZWRi
MDJhNjBlN2Y1ODdhY2YyNS4uZTc3M2FkYzU2ZDY2ZTJjNTA5NTY4OTk4NThkMTRkZWRmY2EyYWY3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBA
IE5vZGUqIERPTVNlbGVjdGlvbjo6YW5jaG9yTm9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNoYWRv
d0FkanVzdGVkTm9kZShhbmNob3JQb3NpdGlvbih2aXNpYmxlU2VsZWN0aW9uKCkpKTsKIH0KIAot
aW50IERPTVNlbGVjdGlvbjo6YW5jaG9yT2Zmc2V0KCkgY29uc3QKK3Vuc2lnbmVkIERPTVNlbGVj
dGlvbjo6YW5jaG9yT2Zmc2V0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAg
IHJldHVybiAwOwpAQCAtMTE2LDcgKzExNiw3IEBAIE5vZGUqIERPTVNlbGVjdGlvbjo6Zm9jdXNO
b2RlKCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93QWRqdXN0ZWROb2RlKGZvY3VzUG9zaXRpb24o
dmlzaWJsZVNlbGVjdGlvbigpKSk7CiB9CiAKLWludCBET01TZWxlY3Rpb246OmZvY3VzT2Zmc2V0
KCkgY29uc3QKK3Vuc2lnbmVkIERPTVNlbGVjdGlvbjo6Zm9jdXNPZmZzZXQoKSBjb25zdAogewog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMzIsNyArMTMyLDcgQEAg
Tm9kZSogRE9NU2VsZWN0aW9uOjpiYXNlTm9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNoYWRvd0Fk
anVzdGVkTm9kZShiYXNlUG9zaXRpb24odmlzaWJsZVNlbGVjdGlvbigpKSk7CiB9CiAKLWludCBE
T01TZWxlY3Rpb246OmJhc2VPZmZzZXQoKSBjb25zdAordW5zaWduZWQgRE9NU2VsZWN0aW9uOjpi
YXNlT2Zmc2V0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwpAQCAtMTQ4LDcgKzE0OCw3IEBAIE5vZGUqIERPTVNlbGVjdGlvbjo6ZXh0ZW50Tm9kZSgpIGNv
bnN0CiAgICAgcmV0dXJuIHNoYWRvd0FkanVzdGVkTm9kZShleHRlbnRQb3NpdGlvbih2aXNpYmxl
U2VsZWN0aW9uKCkpKTsKIH0KIAotaW50IERPTVNlbGVjdGlvbjo6ZXh0ZW50T2Zmc2V0KCkgY29u
c3QKK3Vuc2lnbmVkIERPTVNlbGVjdGlvbjo6ZXh0ZW50T2Zmc2V0KCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTgwLDIzICsxODAsMTggQEAgU3Ry
aW5nIERPTVNlbGVjdGlvbjo6dHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuICJSYW5nZSI7CiB9CiAK
LWludCBET01TZWxlY3Rpb246OnJhbmdlQ291bnQoKSBjb25zdAordW5zaWduZWQgRE9NU2VsZWN0
aW9uOjpyYW5nZUNvdW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJl
dHVybiAwOwogICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5pc05vbmUoKSA/IDAgOiAx
OwogfQogCi12b2lkIERPTVNlbGVjdGlvbjo6Y29sbGFwc2UoTm9kZSogbm9kZSwgaW50IG9mZnNl
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIERPTVNlbGVjdGlvbjo6Y29sbGFwc2UoTm9kZSog
bm9kZSwgdW5zaWduZWQgb2Zmc2V0KQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKG9mZnNldCA8IDApIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmICghaXNWYWxpZEZvclBvc2l0aW9u
KG5vZGUpKQogICAgICAgICByZXR1cm47CiAKQEAgLTI0MSwzMSArMjM2LDIyIEBAIHZvaWQgRE9N
U2VsZWN0aW9uOjplbXB0eSgpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0K
IAotdm9pZCBET01TZWxlY3Rpb246OnNldEJhc2VBbmRFeHRlbnQoTm9kZSogYmFzZU5vZGUsIGlu
dCBiYXNlT2Zmc2V0LCBOb2RlKiBleHRlbnROb2RlLCBpbnQgZXh0ZW50T2Zmc2V0LCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgRE9NU2VsZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KE5vZGUmIGJh
c2VOb2RlLCB1bnNpZ25lZCBiYXNlT2Zmc2V0LCBOb2RlJiBleHRlbnROb2RlLCB1bnNpZ25lZCBl
eHRlbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoYmFzZU9mZnNldCA8IDAgfHwgZXh0ZW50T2Zmc2V0IDwgMCkgewotICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFpc1Zh
bGlkRm9yUG9zaXRpb24oYmFzZU5vZGUpIHx8ICFpc1ZhbGlkRm9yUG9zaXRpb24oZXh0ZW50Tm9k
ZSkpCisgICAgaWYgKCFpc1ZhbGlkRm9yUG9zaXRpb24oJmJhc2VOb2RlKSB8fCAhaXNWYWxpZEZv
clBvc2l0aW9uKCZleHRlbnROb2RlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6
IEVsaW1pbmF0ZSBsZWdhY3kgZWRpdGluZyBwb3NpdGlvbnMKLSAgICBtX2ZyYW1lLT5zZWxlY3Rp
b24oKS5tb3ZlVG8oY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGJhc2VOb2RlLCBiYXNlT2Zm
c2V0KSwgY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGV4dGVudE5vZGUsIGV4dGVudE9mZnNl
dCksIERPV05TVFJFQU0pOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLm1vdmVUbyhjcmVhdGVM
ZWdhY3lFZGl0aW5nUG9zaXRpb24oJmJhc2VOb2RlLCBiYXNlT2Zmc2V0KSwgY3JlYXRlTGVnYWN5
RWRpdGluZ1Bvc2l0aW9uKCZleHRlbnROb2RlLCBleHRlbnRPZmZzZXQpLCBET1dOU1RSRUFNKTsK
IH0KIAotdm9pZCBET01TZWxlY3Rpb246OnNldFBvc2l0aW9uKE5vZGUqIG5vZGUsIGludCBvZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBET01TZWxlY3Rpb246OnNldFBvc2l0aW9uKE5v
ZGUqIG5vZGUsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAg
IHJldHVybjsKLSAgICBpZiAob2Zmc2V0IDwgMCkgewotICAgICAgICBlYyA9IElOREVYX1NJWkVf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkRm9yUG9zaXRp
b24obm9kZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTMyNCwxMiArMzEwLDEyIEBAIHZvaWQgRE9N
U2VsZWN0aW9uOjptb2RpZnkoY29uc3QgU3RyaW5nJiBhbHRlclN0cmluZywgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb25TdHJpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkubW9kaWZ5KGFsdGVyLCBk
aXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKIH0KIAotdm9pZCBET01TZWxlY3Rpb246OmV4dGVuZChO
b2RlJiBub2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgRE9NU2VsZWN0
aW9uOjpleHRlbmQoTm9kZSYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChvZmZz
ZXQgPCAwIHx8IG9mZnNldCA+IChub2RlLm9mZnNldEluQ2hhcmFjdGVycygpID8gY2FyZXRNYXhP
ZmZzZXQobm9kZSkgOiBzdGF0aWNfY2FzdDxpbnQ+KG5vZGUuY291bnRDaGlsZE5vZGVzKCkpKSkg
eworICAgIGlmIChvZmZzZXQgPiAobm9kZS5vZmZzZXRJbkNoYXJhY3RlcnMoKSA/IGNhcmV0TWF4
T2Zmc2V0KG5vZGUpIDogbm9kZS5jb3VudENoaWxkTm9kZXMoKSkpIHsKICAgICAgICAgZWMgPSBJ
TkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0MSwxMiArMzI3LDEy
IEBAIHZvaWQgRE9NU2VsZWN0aW9uOjpleHRlbmQoTm9kZSYgbm9kZSwgaW50IG9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkuc2V0RXh0ZW50KGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbigmbm9kZSwgb2Zmc2V0KSwgRE9XTlNUUkVBTSk7CiB9CiAK
LVJlZlB0cjxSYW5nZT4gRE9NU2VsZWN0aW9uOjpnZXRSYW5nZUF0KGludCBpbmRleCwgRXhjZXB0
aW9uQ29kZSYgZWMpCitSZWZQdHI8UmFuZ2U+IERPTVNlbGVjdGlvbjo6Z2V0UmFuZ2VBdCh1bnNp
Z25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gcmFu
Z2VDb3VudCgpKSB7CisgICAgaWYgKGluZGV4ID49IHJhbmdlQ291bnQoKSkgewogICAgICAgICBl
YyA9IElOREVYX1NJWkVfRVJSOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC0z
NzAsNDUgKzM1Niw0MiBAQCB2b2lkIERPTVNlbGVjdGlvbjo6cmVtb3ZlQWxsUmFuZ2VzKCkKICAg
ICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5jbGVhcigpOwogfQogCi12b2lkIERPTVNlbGVjdGlvbjo6
YWRkUmFuZ2UoUmFuZ2UqIHIpCit2b2lkIERPTVNlbGVjdGlvbjo6YWRkUmFuZ2UoUmFuZ2UmIHJh
bmdlKQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghcikK
LSAgICAgICAgcmV0dXJuOwogCiAgICAgRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiA9IG1fZnJh
bWUtPnNlbGVjdGlvbigpOwotCiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSkgewotICAgICAg
ICBzZWxlY3Rpb24ubW92ZVRvKHIpOworICAgICAgICBzZWxlY3Rpb24ubW92ZVRvKCZyYW5nZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgaWYgKCFyYW5nZSkK
KyAgICBSZWZQdHI8UmFuZ2U+IG5vcm1hbGl6ZWRSYW5nZSA9IHNlbGVjdGlvbi5zZWxlY3Rpb24o
KS50b05vcm1hbGl6ZWRSYW5nZSgpOworICAgIGlmICghbm9ybWFsaXplZFJhbmdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpTVEFS
VF9UT19TVEFSVCwgKnJhbmdlLCBJR05PUkVfRVhDRVBUSU9OKSA9PSAtMSkgeworICAgIGlmIChy
YW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX1NUQVJULCAqbm9ybWFs
aXplZFJhbmdlLCBJR05PUkVfRVhDRVBUSU9OKSA9PSAtMSkgewogICAgICAgICAvLyBXZSBkb24n
dCBzdXBwb3J0IGRpc2NvbnRpZ3VvdXMgc2VsZWN0aW9uLiBXZSBkb24ndCBkbyBhbnl0aGluZyBp
ZiByIGFuZCByYW5nZSBkb24ndCBpbnRlcnNlY3QuCi0gICAgICAgIGlmIChyLT5jb21wYXJlQm91
bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX0VORCwgKnJhbmdlLCBJR05PUkVfRVhDRVBUSU9O
KSA+IC0xKSB7Ci0gICAgICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdl
OjpFTkRfVE9fRU5ELCAqcmFuZ2UsIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7CisgICAgICAg
IGlmIChyYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX0VORCwgKm5v
cm1hbGl6ZWRSYW5nZSwgSUdOT1JFX0VYQ0VQVElPTikgPiAtMSkgeworICAgICAgICAgICAgaWYg
KHJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX0VORCwgKm5vcm1hbGl6
ZWRSYW5nZSwgSUdOT1JFX0VYQ0VQVElPTikgPT0gLTEpIHsKICAgICAgICAgICAgICAgICAvLyBU
aGUgb3JpZ2luYWwgcmFuZ2UgYW5kIHIgaW50ZXJzZWN0LgotICAgICAgICAgICAgICAgIHNlbGVj
dGlvbi5tb3ZlVG8oci0+c3RhcnRQb3NpdGlvbigpLCByYW5nZS0+ZW5kUG9zaXRpb24oKSwgRE9X
TlNUUkVBTSk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhyYW5nZS5zdGFydFBv
c2l0aW9uKCksIG5vcm1hbGl6ZWRSYW5nZS0+ZW5kUG9zaXRpb24oKSwgRE9XTlNUUkVBTSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIHIgY29udGFpbnMgdGhlIG9y
aWdpbmFsIHJhbmdlLgotICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8ocik7CisgICAg
ICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbygmcmFuZ2UpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBkaXNjb250
aWd1b3VzIHNlbGVjdGlvbi4gV2UgZG9uJ3QgZG8gYW55dGhpbmcgaWYgciBhbmQgcmFuZ2UgZG9u
J3QgaW50ZXJzZWN0LgogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgaWYg
KHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX1NUQVJULCAqcmFuZ2UsIGVj
KSA8IDEgJiYgIWVjKSB7Ci0gICAgICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRz
KFJhbmdlOjpFTkRfVE9fRU5ELCAqcmFuZ2UsIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7Cisg
ICAgICAgIGlmIChyYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OkVORF9UT19TVEFS
VCwgKm5vcm1hbGl6ZWRSYW5nZSwgZWMpIDwgMSAmJiAhZWMpIHsKKyAgICAgICAgICAgIGlmIChy
YW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OkVORF9UT19FTkQsICpub3JtYWxpemVk
UmFuZ2UsIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhl
IG9yaWdpbmFsIHJhbmdlIGNvbnRhaW5zIHIuCi0gICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1v
dmVUbyhyYW5nZS5nZXQoKSk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhub3Jt
YWxpemVkUmFuZ2UuZ2V0KCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICAvLyBUaGUgb3JpZ2luYWwgcmFuZ2UgYW5kIHIgaW50ZXJzZWN0LgotICAgICAgICAgICAgICAg
IHNlbGVjdGlvbi5tb3ZlVG8ocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgci0+ZW5kUG9zaXRpb24o
KSwgRE9XTlNUUkVBTSk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhub3JtYWxp
emVkUmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgcmFuZ2UuZW5kUG9zaXRpb24oKSwgRE9XTlNUUkVB
TSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC00MzAsMjYgKzQxMywyNiBA
QCB2b2lkIERPTVNlbGVjdGlvbjo6ZGVsZXRlRnJvbURvY3VtZW50KCkKIAogICAgIHNlbGVjdGVk
UmFuZ2UtPmRlbGV0ZUNvbnRlbnRzKEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgc2V0QmFz
ZUFuZEV4dGVudCgmc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0ZWRSYW5n
ZS0+c3RhcnRPZmZzZXQoKSwgJnNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIHNlbGVj
dGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNldEJh
c2VBbmRFeHRlbnQoc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0ZWRSYW5n
ZS0+c3RhcnRPZmZzZXQoKSwgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0
ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSk7CiB9CiAKLWJvb2wgRE9NU2VsZWN0aW9uOjpjb250YWlu
c05vZGUoTm9kZSogbiwgYm9vbCBhbGxvd1BhcnRpYWwpIGNvbnN0Citib29sIERPTVNlbGVjdGlv
bjo6Y29udGFpbnNOb2RlKE5vZGUmIG5vZGUsIGJvb2wgYWxsb3dQYXJ0aWFsKSBjb25zdAogewog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRnJhbWVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiA9IG1fZnJhbWUtPnNlbGVjdGlvbigpOwogCi0gICAgaWYgKCFuIHx8
IG1fZnJhbWUtPmRvY3VtZW50KCkgIT0gJm4tPmRvY3VtZW50KCkgfHwgc2VsZWN0aW9uLmlzTm9u
ZSgpKQorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICE9ICZub2RlLmRvY3VtZW50KCkgfHwg
c2VsZWN0aW9uLmlzTm9uZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQdHI8
Tm9kZT4gbm9kZSA9IG47CisgICAgUmVmPE5vZGU+IHByb3RlY3RlZE5vZGUobm9kZSk7CiAgICAg
UmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gc2VsZWN0aW9uLnNlbGVjdGlvbigpLnRvTm9y
bWFsaXplZFJhbmdlKCk7CiAKLSAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlID0gbm9kZS0+
cGFyZW50Tm9kZSgpOworICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBub2RlLnBhcmVu
dE5vZGUoKTsKICAgICBpZiAoIXBhcmVudE5vZGUgfHwgIXBhcmVudE5vZGUtPmluRG9jdW1lbnQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHVuc2lnbmVkIG5vZGVJbmRleCA9IG5vZGUt
PmNvbXB1dGVOb2RlSW5kZXgoKTsKKyAgICB1bnNpZ25lZCBub2RlSW5kZXggPSBub2RlLmNvbXB1
dGVOb2RlSW5kZXgoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGJvb2wgbm9k
ZUZ1bGx5U2VsZWN0ZWQgPSBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHBhcmVudE5vZGUs
IG5vZGVJbmRleCwgJnNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIHNlbGVjdGVkUmFu
Z2UtPnN0YXJ0T2Zmc2V0KCksIGVjKSA+PSAwICYmICFlYwpAQCAtNDY0LDE2ICs0NDcsMTMgQEAg
Ym9vbCBET01TZWxlY3Rpb246OmNvbnRhaW5zTm9kZShOb2RlKiBuLCBib29sIGFsbG93UGFydGlh
bCkgY29uc3QKICAgICBpZiAobm9kZUZ1bGx5VW5zZWxlY3RlZCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgcmV0dXJuIGFsbG93UGFydGlhbCB8fCBub2RlLT5pc1RleHROb2RlKCk7Cisg
ICAgcmV0dXJuIGFsbG93UGFydGlhbCB8fCBub2RlLmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCBE
T01TZWxlY3Rpb246OnNlbGVjdEFsbENoaWxkcmVuKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBET01TZWxlY3Rpb246OnNlbGVjdEFsbENoaWxkcmVuKE5vZGUmIG5vZGUpCiB7Ci0g
ICAgaWYgKCFuKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBUaGlzIGRvZXNuJ3QgKGFuZCBz
aG91bGRuJ3QpIHNlbGVjdCB0ZXh0IG5vZGUgY2hhcmFjdGVycy4KLSAgICBzZXRCYXNlQW5kRXh0
ZW50KG4sIDAsIG4sIG4tPmNvdW50Q2hpbGROb2RlcygpLCBlYyk7CisgICAgc2V0QmFzZUFuZEV4
dGVudChub2RlLCAwLCBub2RlLCBub2RlLmNvdW50Q2hpbGROb2RlcygpKTsKIH0KIAogU3RyaW5n
IERPTVNlbGVjdGlvbjo6dG9TdHJpbmcoKQpAQCAtNTAxLDcgKzQ4MSw3IEBAIE5vZGUqIERPTVNl
bGVjdGlvbjo6c2hhZG93QWRqdXN0ZWROb2RlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikgY29u
c3QKICAgICByZXR1cm4gYWRqdXN0ZWROb2RlLT5wYXJlbnROb2RlR3VhcmFudGVlZEhvc3RGcmVl
KCk7CiB9CiAKLWludCBET01TZWxlY3Rpb246OnNoYWRvd0FkanVzdGVkT2Zmc2V0KGNvbnN0IFBv
c2l0aW9uJiBwb3NpdGlvbikgY29uc3QKK3Vuc2lnbmVkIERPTVNlbGVjdGlvbjo6c2hhZG93QWRq
dXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKSBjb25zdAogewogICAgIGlmIChw
b3NpdGlvbi5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxl
Y3Rpb24uaAppbmRleCAxMDk1MDViMDU4ZjA4NzI4NjA5MWNjMGNlZGJjZmUxNGE1YWZlMjQ2Li44
ZWFiYTZmYTdhMDU4MTEwM2UzNmViZGFiZjg5Y2M4YTRlYzZkY2E1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VsZWN0aW9uLmgKQEAgLTU3LDExICs1NywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgcmV0dXJuIHRoZSB2YWxpZCBlcXVpdmFsZW50cyBvZiBp
bnRlcm5hbCBlZGl0aW5nIHBvc2l0aW9ucy4KICAgICAgICAgTm9kZSogYmFzZU5vZGUoKSBjb25z
dDsKICAgICAgICAgTm9kZSogZXh0ZW50Tm9kZSgpIGNvbnN0OwotICAgICAgICBpbnQgYmFzZU9m
ZnNldCgpIGNvbnN0OwotICAgICAgICBpbnQgZXh0ZW50T2Zmc2V0KCkgY29uc3Q7CisgICAgICAg
IHVuc2lnbmVkIGJhc2VPZmZzZXQoKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgZXh0ZW50T2Zm
c2V0KCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQg
c2V0QmFzZUFuZEV4dGVudChOb2RlKiBiYXNlTm9kZSwgaW50IGJhc2VPZmZzZXQsIE5vZGUqIGV4
dGVudE5vZGUsIGludCBleHRlbnRPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9p
ZCBzZXRQb3NpdGlvbihOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAg
ICB2b2lkIHNldEJhc2VBbmRFeHRlbnQoTm9kZSYgYmFzZU5vZGUsIHVuc2lnbmVkIGJhc2VPZmZz
ZXQsIE5vZGUmIGV4dGVudE5vZGUsIHVuc2lnbmVkIGV4dGVudE9mZnNldCk7CisgICAgICAgIHZv
aWQgc2V0UG9zaXRpb24oTm9kZSosIHVuc2lnbmVkIG9mZnNldCk7CiAgICAgICAgIHZvaWQgbW9k
aWZ5KGNvbnN0IFN0cmluZyYgYWx0ZXIsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBjb25zdCBT
dHJpbmcmIGdyYW51bGFyaXR5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIFNlbGVjdGlvbiBPYmpl
Y3QgQVBJCkBAIC03MSwyMSArNzEsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAv
LyBleHBhbnNpb24uCiAgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgcmV0dXJuIHRoZSB2YWxpZCBl
cXVpdmFsZW50cyBvZiBpbnRlcm5hbCBlZGl0aW5nIHBvc2l0aW9ucy4KICAgICAgICAgTm9kZSog
YW5jaG9yTm9kZSgpIGNvbnN0OwotICAgICAgICBpbnQgYW5jaG9yT2Zmc2V0KCkgY29uc3Q7Cisg
ICAgICAgIHVuc2lnbmVkIGFuY2hvck9mZnNldCgpIGNvbnN0OwogICAgICAgICBOb2RlKiBmb2N1
c05vZGUoKSBjb25zdDsKLSAgICAgICAgaW50IGZvY3VzT2Zmc2V0KCkgY29uc3Q7CisgICAgICAg
IHVuc2lnbmVkIGZvY3VzT2Zmc2V0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNDb2xsYXBzZWQo
KSBjb25zdDsKLSAgICAgICAgaW50IHJhbmdlQ291bnQoKSBjb25zdDsKLSAgICAgICAgdm9pZCBj
b2xsYXBzZShOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB1bnNp
Z25lZCByYW5nZUNvdW50KCkgY29uc3Q7CisgICAgICAgIHZvaWQgY29sbGFwc2UoTm9kZSosIHVu
c2lnbmVkIG9mZnNldCk7CiAgICAgICAgIHZvaWQgY29sbGFwc2VUb0VuZChFeGNlcHRpb25Db2Rl
Jik7CiAgICAgICAgIHZvaWQgY29sbGFwc2VUb1N0YXJ0KEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAg
ICAgdm9pZCBleHRlbmQoTm9kZSYsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAg
ICAgUmVmUHRyPFJhbmdlPiBnZXRSYW5nZUF0KGludCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAg
ICB2b2lkIGV4dGVuZChOb2RlJiwgdW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgICAgIFJlZlB0cjxSYW5nZT4gZ2V0UmFuZ2VBdCh1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygpOwotICAgICAgICB2b2lkIGFkZFJhbmdl
KFJhbmdlKik7CisgICAgICAgIHZvaWQgYWRkUmFuZ2UoUmFuZ2UmKTsKICAgICAgICAgdm9pZCBk
ZWxldGVGcm9tRG9jdW1lbnQoKTsKLSAgICAgICAgYm9vbCBjb250YWluc05vZGUoTm9kZSosIGJv
b2wgcGFydGx5Q29udGFpbmVkKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZWxlY3RBbGxDaGlsZHJl
bihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICBib29sIGNvbnRhaW5zTm9kZShOb2Rl
JiwgYm9vbCBwYXJ0bHlDb250YWluZWQpIGNvbnN0OworICAgICAgICB2b2lkIHNlbGVjdEFsbENo
aWxkcmVuKE5vZGUmKTsKIAogICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKTsKIApAQCAtMTAxLDcg
KzEwMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgdmlzaWJsZVNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgICAgIE5vZGUqIHNoYWRvd0Fk
anVzdGVkTm9kZShjb25zdCBQb3NpdGlvbiYpIGNvbnN0OwotICAgICAgICBpbnQgc2hhZG93QWRq
dXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgc2hh
ZG93QWRqdXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mKSBjb25zdDsKIAogICAgICAgICBib29s
IGlzVmFsaWRGb3JQb3NpdGlvbihOb2RlKikgY29uc3Q7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VsZWN0aW9uLmlkbAppbmRleCBhYzIyMDUwZTBiZWU5ZjI0OTE0NzFhMDg0MmQ0M2YwODAz
ZDg0MTQyLi45MjMxZmFjNGZiMTkyYmU0ODRkMmM4M2RlNjMwOTgwMWNhZTgyYjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCkBAIC0yNyw1NSArMjcsNTUgQEAKICAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotLy8gVGhpcyBpcyBiYXNlZCBvZmYgb2YgTW96aWxsYSdzIFNlbGVjdGlvbiBp
bnRlcmZhY2UKLS8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL0VuL0RPTS9TZWxlY3Rp
b24KKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3Rpb24tYXBpLyNpZGwtZGVmLVNlbGVj
dGlvbgogWwogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogICAgIEludGVyZmFj
ZU5hbWU9U2VsZWN0aW9uLAogXSBpbnRlcmZhY2UgRE9NU2VsZWN0aW9uIHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZSBhbmNob3JOb2RlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IGFuY2hvck9mZnNldDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBmb2N1c05vZGU7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgZm9jdXNPZmZzZXQ7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGU/IGFuY2hvck5vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgYW5jaG9yT2Zmc2V0OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBmb2N1c05v
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZm9jdXNPZmZzZXQ7CiAK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0NvbGxhcHNlZDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyByYW5nZUNvdW50OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIHJhbmdlQ291bnQ7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGNvbGxh
cHNlKG9wdGlvbmFsIE5vZGU/IG5vZGUgPSBudWxsLCBvcHRpb25hbCBsb25nIGluZGV4ID0gMCk7
CisgICAgdm9pZCBjb2xsYXBzZShOb2RlPyBub2RlLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG9m
ZnNldCA9IDApOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgY29sbGFwc2VUb0VuZCgpOwog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgY29sbGFwc2VUb1N0YXJ0KCk7CiAKICAgICB2b2lk
IGRlbGV0ZUZyb21Eb2N1bWVudCgpOwotICAgIGJvb2xlYW4gY29udGFpbnNOb2RlKG9wdGlvbmFs
IE5vZGU/IG5vZGUgPSBudWxsLCBvcHRpb25hbCBib29sZWFuIGFsbG93UGFydGlhbCA9IGZhbHNl
KTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNlbGVjdEFsbENoaWxkcmVuKG9wdGlvbmFs
IE5vZGU/IG5vZGUgPSBudWxsKTsKKyAgICBib29sZWFuIGNvbnRhaW5zTm9kZShOb2RlIG5vZGUs
IG9wdGlvbmFsIGJvb2xlYW4gYWxsb3dQYXJ0aWFsID0gZmFsc2UpOworICAgIHZvaWQgc2VsZWN0
QWxsQ2hpbGRyZW4oTm9kZSBub2RlKTsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgZXh0
ZW5kKE5vZGUgbm9kZSwgb3B0aW9uYWwgbG9uZyBvZmZzZXQgPSAwKTsKKyAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIGV4dGVuZChOb2RlIG5vZGUsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0ID0gMCk7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBSYW5nZSBnZXRSYW5nZUF0KG9wdGlv
bmFsIGxvbmcgaW5kZXggPSAwKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBSYW5nZSBnZXRSYW5n
ZUF0KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7Ci0g
ICAgdm9pZCBhZGRSYW5nZShvcHRpb25hbCBSYW5nZT8gcmFuZ2UgPSBudWxsKTsKKyAgICB2b2lk
IGFkZFJhbmdlKFJhbmdlIHJhbmdlKTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgIFtOb3RFbnVtZXJhYmxlXSBET01TdHJpbmcg
dG9TdHJpbmcoKTsKICNlbmRpZgogCi0gICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgTm9kZSBiYXNlTm9kZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBiYXNlT2Zmc2V0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIGV4dGVudE5vZGU7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgZXh0ZW50T2Zmc2V0OwotCi0gICAgLy8gV2ViS2l0
J3MgInR5cGUiIGFjY2Vzc29yIHJldHVybnMgIk5vbmUiLCAiUmFuZ2UiIGFuZCAiQ2FyZXQiCi0g
ICAgLy8gSUUncyB0eXBlIGFjY2Vzc29yIHJldHVybnMgIm5vbmUiLCAidGV4dCIgYW5kICJjb250
cm9sIgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIAorICAgIHZvaWQg
c2V0QmFzZUFuZEV4dGVudChOb2RlIGJhc2VOb2RlLCB1bnNpZ25lZCBsb25nIGJhc2VPZmZzZXQs
IE5vZGUgZXh0ZW50Tm9kZSwgdW5zaWduZWQgbG9uZyBleHRlbnRPZmZzZXQpOworICAgIHZvaWQg
c2V0UG9zaXRpb24oTm9kZT8gbm9kZSwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAw
KTsKKworICAgIHZvaWQgZW1wdHkoKTsKKworICAgIC8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIG9w
ZXJhdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50ZWQuCisgICAgLy8gdm9pZCByZW1vdmVSYW5nZShS
YW5nZSByYW5nZSk7CisKKyAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucy4KKwogICAgIC8vIEZJWE1F
OiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4K
ICAgICB2b2lkIG1vZGlmeShvcHRpb25hbCBET01TdHJpbmcgYWx0ZXIgPSAidW5kZWZpbmVkIiwg
b3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbiA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBET01T
dHJpbmcgZ3JhbnVsYXJpdHkgPSAidW5kZWZpbmVkIik7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBzZXRCYXNlQW5kRXh0ZW50KG9wdGlvbmFsIE5vZGU/IGJhc2VOb2RlID0gbnVsbCwgb3B0
aW9uYWwgbG9uZyBiYXNlT2Zmc2V0ID0gMCwgb3B0aW9uYWwgTm9kZT8gZXh0ZW50Tm9kZSA9IG51
bGwsIG9wdGlvbmFsIGxvbmcgZXh0ZW50T2Zmc2V0ID0gMCk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzZXRQb3NpdGlvbihvcHRpb25hbCBOb2RlPyBub2RlID0gbnVsbCwgb3B0aW9uYWwg
bG9uZyBvZmZzZXQgPSAwKTsKIAotICAgIC8vIElFIGV4dGVuc2lvbgotICAgIC8vIGh0dHA6Ly9t
c2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNTg2OShWUy44NSkuYXNweAotICAg
IHZvaWQgZW1wdHkoKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBiYXNlTm9kZTsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBiYXNlT2Zmc2V0OworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlIGV4dGVudE5vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgZXh0ZW50T2Zmc2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4MmM4NzkwMTIzMDk3ZDll
MjBlODcwZDIwMzhjZjBiNjk5NWJmMzEuLmFiNDdiZjYxMTdiNWFlZjVkZmUxMGMyOGYyMjVkMjhi
MTRhZmNmMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxNi0wOC0wOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFsaWduIFNlbGVjdGlvbiBBUEkgd2l0aCB0
aGUgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYwNjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQuaHRtbDogQWRkZWQuCisg
ICAgICAgIEFkZCBuZXcgbGF5b3V0IHRlc3QgdG8gY292ZXIgcGFzc2luZyBiYWQgaW5wdXQgdG8g
dGhlIFNlbGVjdGlvbiBBUEkuCisgICAgICAgIFRoaXMgbmV3IHRlc3QgaXMgcGFzc2luZyBjb21w
bGV0ZWx5IGluIEZpcmVmb3guIEl0IG1vc3RseSBwYXNzZXMgaW4KKyAgICAgICAgQ2hyb21lIGV4
Y2VwdCB0aGF0IHRoZSBOb2RlIHBhcmFtZXRlcnMgdG8gc2V0QmFzZUFuZEV4dGVudCgpIGFyZQor
ICAgICAgICBudWxsYWJsZSBpbiBDaHJvbWUgYnV0IG5vdCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4K
KworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvYXBwbHktc3R5bGUtdGV4dC1kZWNvcmF0
aW9uLWNyYXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseWJsb2Nr
ZWxlbWVudC12aXNpYmxlcG9zaXRpb25mb3JpbmRleC1jcmFzaC5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvZXhlY0NvbW1hbmQvaWRlbnQtY3Jhc2hlcy10b3Bub2RlLWlzLXRleHQuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvZXhlY0NvbW1hbmQvb3ZlcnR5cGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9jb250YWluc05vZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL2NvbnRhaW5zTm9kZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUt
YnktbGluZS0wMDMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVz
dHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qczoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLWNyb3NzaW5nLWRvY3VtZW50LmpzOgorICAg
ICAgICAoY2xlYXIpOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1pbnZh
bGlkLW9mZnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ibG9jay9mbG9hdC9mbG9h
dC1saXN0LWNoYW5nZWQtYmVmb3JlLWxheW91dC1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1lcmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJp
Yy1wYXJhbWV0ZXJzLmpzOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWFy
cm93LWtleXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qczoKKyAgICAg
ICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanM6CisgICAgICAgICog
ZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0
L2h0bWwvc2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRt
bC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3Nj
cmlwdC10ZXN0cy9tYWluLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3NjcmlwdC10
ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanM6CisgICAgICAgICogaW1wb3J0ZWQvYmxpbmsvYWNjZXNz
aWJpbGl0eS9ldmVudC1vbi1kZWxldGVkLWlmcmFtZS1jYXVzZXMtY3Jhc2guaHRtbDoKKyAgICAg
ICAgKiBpbXBvcnRlZC9ibGluay9lZGl0aW5nL2FwcGx5LWlubGluZS1zdHlsZS10by1lbGVtZW50
LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3VuaWNv
ZGUtaW4tdHNwYW4tbXVsdGktc3ZnLWNyYXNoLmh0bWw6CisgICAgICAgIFVwZGF0ZSBleGlzdGlu
ZyB0ZXN0cyB0byB1c2UgdGhlIFNlbGVjdGlvbiBBUEkgcHJvcGVybHkuCisKIDIwMTYtMDgtMDcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBOb2RlLmJhc2VVUkkg
c2hvdWxkIG5vdCBiZSBudWxsYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9hcHBseS1zdHlsZS10ZXh0LWRlY29yYXRpb24tY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvYXBwbHktc3R5bGUtdGV4dC1kZWNvcmF0aW9uLWNy
YXNoLmh0bWwKaW5kZXggZmNjYjQ3ODNkYWM2MGQyOTliMDg5ODM0ODI3NzIyMmNkZDk2NjI1ZS4u
NDZiYmNiOTI3ZDU1ZTc5ZmJhODllNTQwY2JkZThlZjU2NDIxYjFjZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseS1zdHlsZS10ZXh0LWRlY29yYXRpb24t
Y3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5LXN0
eWxlLXRleHQtZGVjb3JhdGlvbi1jcmFzaC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsNCiANCi0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudChzdGFydCwgMCwgbnVsbCwgMCk7DQorICAgICAgICAgICAgd2luZG93LmdldFNl
bGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoc3RhcnQsIDAsIHN0YXJ0LCAwKTsNCiAgICAgICAg
ICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50Iik7DQogICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJQQVNTIjsNCiAgICAgICAg
IH0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5Ymxv
Y2tlbGVtZW50LXZpc2libGVwb3NpdGlvbmZvcmluZGV4LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5YmxvY2tlbGVtZW50LXZpc2libGVwb3NpdGlvbmZv
cmluZGV4LWNyYXNoLmh0bWwKaW5kZXggZDY3NTRhYzBkMTk0MTkzNWJiNDQ4YjU0MTgzMGY3MWMz
NTJlOGQ2Yy4uNjE3ZDVmZTRiOTk1MTBlOTQzNjY5N2ZkOGFkZjJhMGU3YTlmMzllOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseWJsb2NrZWxlbWVudC12
aXNpYmxlcG9zaXRpb25mb3JpbmRleC1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvYXBwbHlibG9ja2VsZW1lbnQtdmlzaWJsZXBvc2l0aW9uZm9yaW5kZXgt
Y3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHN0YXJ0LCAwLCBudWxsLCAwKTsKKyAg
ICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChzdGFydCwgMCwgc3RhcnQs
IDApOwogICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiKTsKICAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9ICJQQVNTLiBXZWJLaXQgZGlkbid0IGNyYXNoLiI7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lkZW50LWNyYXNoZXMtdG9wbm9k
ZS1pcy10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lkZW50LWNy
YXNoZXMtdG9wbm9kZS1pcy10ZXh0Lmh0bWwKaW5kZXggNmZhZDk3MWJkMDJhNTE2NGJjMTk5ODNl
ZGM5ZDZmMTE5ZTM4NzcxZi4uZGQ0ZWUxZmI5ZTExYzc0NGUwN2FkYjYwNTkzMzY3MTlhM2UxNDE4
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pZGVudC1jcmFz
aGVzLXRvcG5vZGUtaXMtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvaWRlbnQtY3Jhc2hlcy10b3Bub2RlLWlzLXRleHQuaHRtbApAQCAtMyw3ICszLDcgQEAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHN0YXJ0LCAwLCBudWxsLCAwKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChzdGFydCwgMCwgc3RhcnQsIDApOwogICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJJbmRlbnQiKTsKIAogICAgIGRvY3VtZW50LndyaXRlbG4oJ2V4ZWNDb21tYW5kKCJJbmRl
bnQiKSB3YXMgY3Jhc2hpbmcgaWYgdGhlIHRvcCBlbGVtZW50IHRvIGJlIGZvcm1hdHRlZCBpcyBh
Y3R1YWxseSBub3QgYW4gZWxlbWVudC48YnI+Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWV4cGVjdGVkLnR4dAppbmRleCA1ZjFhMTM3
ZjM1ZWJmZjQ0ODQxMDBiZTFhNzlkZTk4MGNjZWQ1ZTY4Li43MDZhNmE4NTAwODBkYWQ3ZWIxMjlh
ZjNlNWIxZWI5MjQ1ZmZlYzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQKQEAgLTEwMiw3ICsxMDIsNyBAQCBm
dW5jdGlvbiBzZXRTZWxlY3Rpb24obm9kZSkKICAgICB2YXIgdGV4dE5vZGUgPSBub2RlLmZpcnN0
Q2hpbGQ7CiAgICAgaWYgKHRleHROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQogICAg
ICAgICB0aHJvdyAiV3Jvbmcgbm9kZSB0eXBlOiAiICsgdGV4dE5vZGU7Ci0gICAgZXhlY1NldFNl
bGVjdGlvbkNvbW1hbmQodGV4dE5vZGUsIDAsIG51bGwpOworICAgIGV4ZWNTZXRTZWxlY3Rpb25D
b21tYW5kKHRleHROb2RlLCAwLCB0ZXh0Tm9kZSk7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeVRleHRT
ZWxlY3Rpb24oc3RhcnROb2RlLCBzdGFydE9mZnNldCwgZW5kTm9kZSwgZW5kT2Zmc2V0KQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUuaHRtbAppbmRleCBi
ZGVhOTRmZDk1OTQ5NDAxNGJkMmI1NTcwYTMwYTM2NGVjZmY4MzYxLi4wNTlmNjllYzM5NmUwNzY4
ZTdjNmY4ZGE2NGIwZDY2YjA5YjQ2OTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1wcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1wcmUuaHRtbApAQCAtMzAsNyArMzAsNyBAQCBmdW5jdGlvbiBzZXRT
ZWxlY3Rpb24obm9kZSkKICAgICB2YXIgdGV4dE5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7CiAgICAg
aWYgKHRleHROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQogICAgICAgICB0aHJvdyAi
V3Jvbmcgbm9kZSB0eXBlOiAiICsgdGV4dE5vZGU7Ci0gICAgZXhlY1NldFNlbGVjdGlvbkNvbW1h
bmQodGV4dE5vZGUsIDAsIG51bGwpOworICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRleHRO
b2RlLCAwLCB0ZXh0Tm9kZSk7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeVRleHRTZWxlY3Rpb24oc3Rh
cnROb2RlLCBzdGFydE9mZnNldCwgZW5kTm9kZSwgZW5kT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9vdmVydHlwZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9vdmVydHlwZS5odG1sCmluZGV4IGZjYTRjOTc4ZGYyYWQ4Yjg2
OWI4MTI2ZWE4NDAxOWQ4ODQ3ZWZhNzcuLmI3MjYxYTlkNjg2MDRkNTU1ZTc4NTUyYzQ1NTVlYjk1
NzRlNDk2MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvb3Zl
cnR5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL292ZXJ0eXBl
Lmh0bWwKQEAgLTYzLDcgKzYzLDcgQEAgZWxzZSB7CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwg
J092ZXJ3cml0ZSBiZWhhdmVzIGxpa2UgaW5zZXJ0IG9uIHJhbmdlIHNlbGVjdGlvbnMnKTsKIAog
ICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gIiYjeDRFMjA7JiN4NEUyMTsmI3g0RTIyOyYjeDRFMjM7
IjsKLSAgICBzZWxlY3Rpb24uY29sbGFwc2UoKTsKKyAgICBzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCk7CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwgJ05ldyBDSksgY29udGVudHMnKTsKIAogICAg
IHNlbGVjdGlvbi5jb2xsYXBzZShlbGVtZW50LCAwKTsKQEAgLTcxLDcgKzcxLDcgQEAgZWxzZSB7
CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwgJ092ZXJ3cml0ZSBDSksgdGV4dCcpOwogCiAgICAg
ZWxlbWVudC5pbm5lckhUTUw9IjxkaXYgaWQ9XCJydGwtZGl2XCIgZGlyPVwicnRsXCI+JmFsZXBo
OyZiZXRoOyZnaW1lbDsmZGFsZXRoOzwvZGl2PiIKLSAgICBzZWxlY3Rpb24uY29sbGFwc2UoKTsK
KyAgICBzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwg
J05ldyBSVEwgY29udGVudHMnKTsKIAogICAgIHNlbGVjdGlvbi5jb2xsYXBzZShlbGVtZW50LCAw
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2JhZC1pbnB1dC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhYzZmNzkzN2RlYTIyMDMzOTYyNDM3Zjc2MTUxNDJmZTdi
YjI2OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9i
YWQtaW5wdXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1Rlc3RzIHBhc3NpbmcgYmFk
IGlucHV0IHRvIHRoZSBTZWxlY3Rpb24gQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworKiBOb3QgcGFzc2luZyBlbm91Z2ggcGFyYW1ldGVycworUEFTUyBzZWxlY3Rpb24uY29s
bGFwc2UoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
K1BBU1Mgc2VsZWN0aW9uLmNvbnRhaW5zTm9kZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4o
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
c2VsZWN0aW9uLmV4dGVuZCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uYWRkUmFuZ2Uo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
c2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQoZG9j
dW1lbnQuYm9keSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmJvZHksIDApIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBzZWxl
Y3Rpb24uc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudC5ib2R5LCAwLCBkb2N1bWVudC5ib2R5KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2Vs
ZWN0aW9uLnNldFBvc2l0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCisKKyogUGFzc2luZyBudWxsIGZvciBub24tbnVsbGFibGUgcGFyYW1ldGVy
cworUEFTUyBzZWxlY3Rpb24uY29udGFpbnNOb2RlKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IEFyZ3VtZW50IDEgKCdub2RlJykgdG8gU2VsZWN0aW9uLmNvbnRhaW5zTm9kZSBtdXN0
IGJlIGFuIGluc3RhbmNlIG9mIE5vZGUuCitQQVNTIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJl
bihudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbm9kZScpIHRv
IFNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIE5vZGUu
CitQQVNTIHNlbGVjdGlvbi5leHRlbmQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
QXJndW1lbnQgMSAoJ25vZGUnKSB0byBTZWxlY3Rpb24uZXh0ZW5kIG11c3QgYmUgYW4gaW5zdGFu
Y2Ugb2YgTm9kZS4KK1BBU1Mgc2VsZWN0aW9uLmFkZFJhbmdlKG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdyYW5nZScpIHRvIFNlbGVjdGlvbi5hZGRSYW5nZSBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIFJhbmdlLgorUEFTUyBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4
dGVudChudWxsLCAwLCBkb2N1bWVudC5ib2R5LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBBcmd1bWVudCAxICgnYmFzZU5vZGUnKSB0byBTZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudCBt
dXN0IGJlIGFuIGluc3RhbmNlIG9mIE5vZGUuCitQQVNTIHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0
ZW50KGRvY3VtZW50LmJvZHksIDAsIG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEFyZ3VtZW50IDMgKCdleHRlbnROb2RlJykgdG8gU2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQg
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBOb2RlLgorUEFTUyBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4
dGVudChudWxsLCAwLCBudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVu
dCAxICgnYmFzZU5vZGUnKSB0byBTZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudCBtdXN0IGJlIGFu
IGluc3RhbmNlIG9mIE5vZGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
YmFkLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MjRjMTdiM2ZhMzViMTgxYzY2YWYwMmYzNDkyZTI2MjA2MzI5MTFh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlu
cHV0Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHBhc3NpbmcgYmFkIGlucHV0IHRvIHRoZSBT
ZWxlY3Rpb24gQVBJLiIpOworCit2YXIgc2VsZWN0aW9uID0gZ2V0U2VsZWN0aW9uKCk7CisKK2Rl
YnVnKCIqIE5vdCBwYXNzaW5nIGVub3VnaCBwYXJhbWV0ZXJzIik7CitzaG91bGRUaHJvd0Vycm9y
TmFtZSgic2VsZWN0aW9uLmNvbGxhcHNlKCkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vy
cm9yTmFtZSgic2VsZWN0aW9uLmNvbnRhaW5zTm9kZSgpIiwgIlR5cGVFcnJvciIpOworc2hvdWxk
VGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbigpIiwgIlR5cGVFcnJv
ciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5leHRlbmQoKSIsICJUeXBlRXJy
b3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgpIiwgIlR5
cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5hZGRSYW5nZSgpIiwg
IlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5zZXRCYXNlQW5k
RXh0ZW50KCkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9u
LnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuYm9keSkiLCAiVHlwZUVycm9yIik7CitzaG91bGRU
aHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuYm9keSwg
MCkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLnNldEJh
c2VBbmRFeHRlbnQoZG9jdW1lbnQuYm9keSwgMCwgZG9jdW1lbnQuYm9keSkiLCAiVHlwZUVycm9y
Iik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLnNldFBvc2l0aW9uKCkiLCAiVHlw
ZUVycm9yIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCIqIFBhc3NpbmcgbnVsbCBmb3Igbm9uLW51
bGxhYmxlIHBhcmFtZXRlcnMiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uY29u
dGFpbnNOb2RlKG51bGwpIiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNl
bGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihudWxsKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRo
cm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uZXh0ZW5kKG51bGwpIiwgIlR5cGVFcnJvciIpOworc2hv
dWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5hZGRSYW5nZShudWxsKSIsICJUeXBlRXJyb3Ii
KTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChudWxs
LCAwLCBkb2N1bWVudC5ib2R5LCAwKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JO
YW1lKCJzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudC5ib2R5LCAwLCBudWxsLCAw
KSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uc2V0QmFz
ZUFuZEV4dGVudChudWxsLCAwLCBudWxsLCAwKSIsICJUeXBlRXJyb3IiKTsKKzwvc2NyaXB0PiAK
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2NvbnRhaW5zTm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9jb250YWluc05vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDlhMjE2NGEyNzgyYTRhNjIwOGVm
ZGQ5NTgyNzE4YzQyMjU2MTNiMDQuLmFhZWM2YjJiODdkMjUzNzFjMmIxMWYzZTY5ODM4ZmUyN2Ex
ZTZmYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5z
Tm9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29u
dGFpbnNOb2RlLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIGZvb2JhcmJhegotU3VjY2Vz
czogcy5jb250YWluc05vZGUobnVsbCwgZmFsc2UpIGlzIGZhbHNlLgotU3VjY2Vzczogcy5jb250
YWluc05vZGUobnVsbCwgdHJ1ZSkgaXMgZmFsc2UuCiBTdWNjZXNzOiBzLmNvbnRhaW5zTm9kZSh0
ZXN0RGl2LCBmYWxzZSkgaXMgZmFsc2UuCiBTdWNjZXNzOiBzLmNvbnRhaW5zTm9kZSh0ZXN0RGl2
LCB0cnVlKSBpcyB0cnVlLgogU3VjY2Vzczogcy5jb250YWluc05vZGUoc3BhbjEsIGZhbHNlKSBp
cyBmYWxzZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRh
aW5zTm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGFpbnNOb2Rl
Lmh0bWwKaW5kZXggM2MxNmI2N2VlZmI3YTYwZTZiNjE5Y2MxNzI3YTllZjA4YjkxYWRiMC4uYzNi
ZjU2ZDVmMjQ1MDk0N2M3N2EwM2VhNTFkMjVhYzAzNmFmNzk4OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGFpbnNOb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGFpbnNOb2RlLmh0bWwKQEAgLTMzLDggKzMzLDYgQEAg
ci5zZXRTdGFydChzcGFuMSwgMSk7CiByLnNldEVuZChzcGFuMSwgMik7CiBzLmFkZFJhbmdlKHIp
OwogCi1zaG91bGRCZSgncy5jb250YWluc05vZGUobnVsbCwgZmFsc2UpJywgZmFsc2UpOwotc2hv
dWxkQmUoJ3MuY29udGFpbnNOb2RlKG51bGwsIHRydWUpJywgZmFsc2UpOwogc2hvdWxkQmUoJ3Mu
Y29udGFpbnNOb2RlKHRlc3REaXYsIGZhbHNlKScsIGZhbHNlKTsKIHNob3VsZEJlKCdzLmNvbnRh
aW5zTm9kZSh0ZXN0RGl2LCB0cnVlKScsIHRydWUpOwogc2hvdWxkQmUoJ3MuY29udGFpbnNOb2Rl
KHNwYW4xLCBmYWxzZSknLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9tb3ZlLWJ5LWxpbmUtMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9tb3ZlLWJ5LWxpbmUtMDAzLmh0bWwKaW5kZXggNDg3NmJlZmI5MzEwYzYwMTEyNmM4
NGFlMjYzZmMyNDc1OTBjNGExZS4uZDFhOTZlN2RkYzE0Njc0Yjg5NzlkMzVmNTA5ZDgzNGFmMDQw
NDRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS1s
aW5lLTAwMy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
bGluZS0wMDMuaHRtbApAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIAogICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLSAgICAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQodGFyZ2V0LmZpcnN0Q2hpbGQsIDAsIHRhcmdldC5mcnN0Q2hpbGQsIDApOworICAg
ICAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQuZmlyc3RDaGls
ZCwgMCwgdGFyZ2V0LmZpcnN0Q2hpbGQsIDApOwogICAgICAgICAgICAgbW92ZVNlbGVjdGlvbkZv
cndhcmRCeUxpbmVDb21tYW5kKCk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSBnZXRTZWxlY3Rpb24oKS5iYXNlT2Zmc2V0ID09IDYz
ID8gIlBBU1MiIDogIkZBSUwiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUuanMgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3VtZW50
VHlwZS5qcwppbmRleCA5MTg4ZTE3ZGY5YmM5Mzk4MTJhZTM4NDY0M2JhZmQ4YzEwZTIyMTQyLi43
NmY5Y2FmMzQyNjJkZjQ4Mjg2NzgwN2JmNDc0MTBlODZlNTFhNzllIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3Vt
ZW50VHlwZS5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVz
dHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qcwpAQCAtMywxMCArMywxMCBAQCBkZXNjcmlw
dGlvbigiVGVzdCB0byBjaGVjayBpZiBzZXRCYXNlQW5kRXh0ZW50IGd1YXJkIG5vZGUgd2l0aCBu
dWxsIG93bmVyIGRvY3VtZQogdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHZhciBk
b2NUeXBlID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnRUeXBlKCdjJywg
JycsICcnKTsKIAotc2VsLnNldEJhc2VBbmRFeHRlbnQoZG9jVHlwZSk7CitzZWwuc2V0QmFzZUFu
ZEV4dGVudChkb2NUeXBlLCAwLCBkb2NUeXBlLCAwKTsKIHNob3VsZEJlTnVsbCgic2VsLmFuY2hv
ck5vZGUiKTsKIAotc2VsLnNldEJhc2VBbmRFeHRlbnQobnVsbCwgMCwgZG9jVHlwZSwgMCk7Citz
ZWwuc2V0QmFzZUFuZEV4dGVudChkb2NUeXBlLCAwLCBkb2NUeXBlLCAwKTsKIHNob3VsZEJlTnVs
bCgic2VsLmFuY2hvck5vZGUiKTsKIAogc2VsLmNvbGxhcHNlKGRvY1R5cGUpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlv
bi1jcm9zc2luZy1kb2N1bWVudC5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nj
cmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tY3Jvc3NpbmctZG9jdW1lbnQuanMKaW5kZXggNDhlZWE0
Mzg0MzYzNmU3NmU3MzUzMGZlODA2MWYwODhkNTc1NWI0Mi4uMDg0NmUyZWQ1MTMyNWQwZDg3ZjY3
OTMxOTUyMjUxMWEzZWQ1MzU2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1jcm9zc2luZy1kb2N1bWVudC5qcworKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9u
LWNyb3NzaW5nLWRvY3VtZW50LmpzCkBAIC0yMiw4ICsyMiw4IEBAIHZhciBtYWluU2VsID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOwogCiBmdW5jdGlvbiBjbGVhcigpCiB7Ci0gICAgZm9yZWlnblNl
bC5zZXRCYXNlQW5kRXh0ZW50KG51bGwsIDAsIG51bGwsIDApOwotICAgIG1haW5TZWwuc2V0QmFz
ZUFuZEV4dGVudChudWxsLCAwLCBudWxsLCAwKTsKKyAgICBmb3JlaWduU2VsLnJlbW92ZUFsbFJh
bmdlcygpOworICAgIG1haW5TZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiB9CiAKIG1haW5TZWwuc2V0
QmFzZUFuZEV4dGVudChmb3JlaWduRWxlbWVudCwgMCwgZm9yZWlnbkVsZW1lbnQsIDApOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWludmFsaWQt
b2Zmc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1pbnZhbGlkLW9mZnNldC1leHBlY3RlZC50eHQKaW5kZXggNzcxOWMyNzczMzIzNzMyMmY3
ZDgwMmYyY2IzMzA0NGJiNTM0Mjg0My4uY2JiZTY2NzQ4MTc1NjVhZjMxYTU5YTk1N2ZiN2I3MWQ2
ODZiNzQ1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0
aW9uLWludmFsaWQtb2Zmc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zZWxlY3Rpb24taW52YWxpZC1vZmZzZXQtZXhwZWN0ZWQudHh0CkBAIC0xLDgg
KzEsNCBAQAogWW91IHNob3VsZCBzZWUgc2l4IE9LcyBiZWxvdyAoYW5kIG5vdCBoYW5nKTogCiBP
SwogT0sKLU9LCi1PSwotT0sKLU9LCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svZmxvYXQvZmxvYXQtbGlzdC1jaGFuZ2VkLWJlZm9yZS1sYXlvdXQtY3Jhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtbGlzdC1jaGFuZ2VkLWJlZm9yZS1sYXlv
dXQtY3Jhc2guaHRtbAppbmRleCAwYTVkMzJhNmZmOGZiNGE1M2E1M2QzNjQzMDcxZWUzNmI4NjA0
MWJhLi44YmZjMWU5M2U2ZDdmZmRhZjBhZGE4OGNhNWQxYjc3MDZjNzkxYzYwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LWxpc3QtY2hhbmdlZC1iZWZvcmUt
bGF5b3V0LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9h
dC1saXN0LWNoYW5nZWQtYmVmb3JlLWxheW91dC1jcmFzaC5odG1sCkBAIC02NCw3ICs2NCw3IEBA
CiAgICAgICAgIGVsNy5zZXRBdHRyaWJ1dGUoJ2lkJywnZWw3JykKICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChlbDcpCiAgICAgICAgIGRvY3VtZW50LmRlc2lnbk1vZGU9J29uJwot
ICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbDMsIDEpCisg
ICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGVsMywgMSwgZWwz
LCAxKQogICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnSW5zZXJ0TGluZUJyZWFrJykKICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3NlbGVjdGFsbCcpCiAgICAgICAgIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCdzdHJpa2V0aHJvdWdoJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1lcmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1l
dGVycy1leHBlY3RlZC50eHQKaW5kZXggYTY1OWVkZmI2NzdkN2ZjOWFjYzU2MWM1ODc3MmQzNjJk
MTA2YzJiNy4uYzYzNGE0ODQ5MjRiZTdmNWM0NDhkZGQ5NjE1NGNmMDFjODIzNzgyZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFy
YW1ldGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51bWVy
aWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTU4LDEwICs1OCwx
MCBAQCBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY29tcGFy
ZVBvaW50KGRvY3VtZW50LCB4KScpIGlzICdhbgogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1
bWVudC5jcmVhdGVSYW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIGlzICdhbnkg
dHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdn
ZXRTZWxlY3Rpb24oKS5jb2xsYXBzZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dl
ZCcKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dChkb2N1bWVudCwgeCwgZG9jdW1lbnQsIDApJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNT
IG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1l
bnQsIDAsIGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1l
cmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LCAwLCBk
b2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQs
IHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNl
bGVjdGlvbigpLmV4dGVuZChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBB
U1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCh4KScpIGlzICdh
bnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5n
ZXRSYW5nZUF0KHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oeCknKSBpcyAn
YW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGlj
eSgnZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoImEiKS5zcGxpdFRleHQoeCknKSBpcyAnYW55IHR5
cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9j
dW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQt
dGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJh
bWV0ZXJzLmpzCmluZGV4IDhiNDllN2Y5NDQyNDE1YTEyNmYzNWZiMjU2NWQzOWNkOGRlY2YwZGUu
LjYxNTIyZWE3ZTRmMTUzZTYxMmQyYzQ1ZGQyYWJhMjhiNWQ3MDkyMDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJp
Yy1wYXJhbWV0ZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9u
b24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCkBAIC0zMTIsMTAgKzMxMiwx
MCBAQCBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5p
c1BvaW50SW5SYW5nZShkb2N1bWVudCwgeCknKQogCiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGlj
eSgnZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQnIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChkb2N1bWVudCwgeCwgZG9jdW1lbnQsIDApJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQnIik7Ci1zaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChkb2N1bWVudCwgMCwgZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChkb2N1bWVudCwgMCwgZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgn
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFs
bG93ZWQnIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZXh0
ZW5kKGRvY3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5v
bk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoeCknKSIsICInYW55IHR5
cGUgYWxsb3dlZCciKTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24o
KS5nZXRSYW5nZUF0KHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCkn
Iik7CiAKIC8vIFNRTFJlc3VsdFNldFJvd0xpc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktYXJyb3cta2V5cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtYnktYXJyb3cta2V5cy5odG1sCmluZGV4IDc3NWIxMzhk
OTE4Y2ZkZmRkZGY4NzA1MDA4ZWU0YjhjNzliODQ5MWUuLmU0YTNlNTY2NmY5MmFjZGNiYzllNDQw
YWMwOWViNzNiNDYyNGM0ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nl
bGVjdHN0YXJ0LWJ5LWFycm93LWtleXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zZWxlY3RzdGFydC1ieS1hcnJvdy1rZXlzLmh0bWwKQEAgLTM5LDcgKzM5LDcgQEAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAKICAgICAvLyBPbiBNYWMsIGhvbWUvZW5kIGRvZXNuJ3QgbW92
ZSBjYXJldCBzbyBtYW51YWxseSBzZWxlY3QgIiBXb3JsZCIuCiAgICAgaWYgKG5hdmlnYXRvci5w
bGF0Zm9ybS5pbmRleE9mKCdNYWMnKSA9PSAwKQotICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2V0QmFzZUFuZEV4dGVudChkaXYuZmlyc3RDaGlsZCwgZGl2LnRleHRDb250ZW50LmluZGV4
T2YoJ1dvcmxkJykpOworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChkaXYuZmlyc3RDaGlsZCwgZGl2LnRleHRDb250ZW50LmluZGV4T2YoJ1dvcmxkJyksIGRp
di5maXJzdENoaWxkLCBkaXYudGV4dENvbnRlbnQuaW5kZXhPZignV29ybGQnKSArIDUpOwogCiAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CiAgICAgbG9nUmVzdWx0KCdDaGVj
ayAoTGVmdCBhcnJvdyknLCAxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9u
YXYtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25hdi1lbGVtZW50Lmh0bWwK
aW5kZXggNzMzOTAwZWM2NzQ1MmIwMWI2MzBmMzBmNjAzYTUxNjk5YjY3NjAzNC4uYWZkMGEyMGVm
YWU1MWVkMzI2MWIzMmU1MjY1NjlkYWY5YWI5NjMxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL25hdi1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25h
di1lbGVtZW50Lmh0bWwKQEAgLTUwLDcgKzUwLDcgQEAgdmFyIGVkID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImVkaXRhYmxlIik7CiB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlv
bigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkKTsKIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJGb3JtYXRCbG9jayIsIGZhbHNlLCAibmF2Iik7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsK
K3NlbGVjdGlvbi5jb2xsYXBzZShudWxsKTsKIGVkLmJsdXIoKTsKIAogdmFyIHRlc3RzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RBcmVhIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzCmluZGV4IDQyZTA3MGU0
YmM4NmFmYzFhY2YyMTIwMjUzMjllNDk5NmM4Yzk4MDQuLmViMzM5OTU2MGFiNTMzMmI1YmM4YWRm
NWNkN2QyZmQ0ZmQ4ODVjODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9z
Y3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzCkBAIC0zNSw3ICszNSw3IEBAIGVkaXRhYmxl
LmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVj
dGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRhYmxlKTsKIGRvY3VtZW50
LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnYXJ0aWNsZScpOwotc2VsZWN0aW9u
LmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBzaG91bGRCZSgnZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50Tm9kZS5ub2RlTmFtZScsICciQVJUSUNM
RSInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMKaW5kZXgg
MTExOTQ0MGE3YWI3ZGRjZTBkMmM4Yjk1ZTJhNzU4NjNiYzY1NWRmMy4uMTNhZjA5OGRmOWNjYjIy
ZjlhMWY2ODczZDg5ZTViNzg0NmZhMmMzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9o
dG1sL3NjcmlwdC10ZXN0cy9hc2lkZS1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aHRtbC9zY3JpcHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qcwpAQCAtMzUsNyArMzUsNyBAQCBlZGl0
YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihlZGl0YWJsZSk7CiBkb2N1
bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwgJ2FzaWRlJyk7Ci1zZWxlY3Rp
b24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBzZShudWxsKTsKIHNob3VsZEJlKCdkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5wYXJlbnROb2RlLm5vZGVOYW1lJywgJyJBU0lE
RSInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qcwppbmRl
eCBmMjg5ZTQwMWYyZjBhMGY2ZGFhMGEwNzU5NDk3N2EwOTc5ZTczNzZiLi5lNzg4YzNjMzA3ZGU3
MjQzY2I2MDA5NWE4ODlmYTM3ZGVmNmNhODhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2h0bWwvc2NyaXB0LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaHRtbC9zY3JpcHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMKQEAgLTM4LDcgKzM4LDcgQEAg
ZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwog
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdmb290ZXInKTsKLXNl
bGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogc2hvdWxkQmUo
J2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9kZU5hbWUnLCAn
IkZPT1RFUiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVudC5q
cwppbmRleCA0MGJlNWI1NWUwZTIyNmZiZGU3Yjc0ZmJkOWVlZjNmNmNjODQ3ZDI1Li4xYTUwMTEz
YTI4NzQzZWQxZDYyZTY0NTBiYjU1ZDRhNmQxM2VhZjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanMKQEAgLTM4LDcgKzM4
LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rpb24gPSB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oZWRpdGFi
bGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdoZWFkZXIn
KTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogc2hv
dWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9kZU5h
bWUnLCAnIkhFQURFUiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hncm91cC1l
bGVtZW50LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxl
bWVudC5qcwppbmRleCA1YjIzMmRmZmRjM2EzOTE5MGJmOTYyZDQyMjI4ZTYwNWRjZTVhZTUyLi4y
ZWZkNzg3NWNkMThkZTY0NDkzYWUyNGVjYzgzMjg2ODRlOWQzMDJjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hncm91cC1lbGVtZW50LmpzCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanMKQEAgLTM2
LDcgKzM2LDcgQEAgZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rp
b24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4o
ZWRpdGFibGUpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdo
Z3JvdXAnKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwp
Owogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUu
bm9kZU5hbWUnLCAnIkhHUk9VUCInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFi
bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL21h
aW4tZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvbWFpbi1l
bGVtZW50LmpzCmluZGV4IDZlNDY3Y2Y1ODQ1MjEwZmI0ZGNkNDIwOGViMWQ3M2Y1MzM1ZjliMWYu
LmE2OGM2ZDVhM2UzMzNiZWRmYmZlYmFmOGU0NDk3YjZiMzk1OTUxZDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvbWFpbi1lbGVtZW50LmpzCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvbWFpbi1lbGVtZW50LmpzCkBAIC0zNSw3
ICszNSw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9u
ID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVk
aXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnbWFp
bicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBz
aG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50Tm9kZS5ub2Rl
TmFtZScsICciTUFJTiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24t
ZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvc2VjdGlvbi1l
bGVtZW50LmpzCmluZGV4IGE1NzY2M2YyMzU0ZDBkNDMzMmI1OWMwZjRkOTdiMzQ3ZDgwNjNlZjQu
LjlkZTE2MmUxYmRiNDY4N2ZiYTQ5YTg5MjRjM2FmYzg5NDllYjllOWIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvc2VjdGlvbi1lbGVtZW50LmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvc2VjdGlvbi1lbGVtZW50LmpzCkBA
IC0zNSw3ICszNSw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2Vs
ZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxk
cmVuKGVkaXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNl
LCAnc2VjdGlvbicpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2Uo
bnVsbCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50
Tm9kZS5ub2RlTmFtZScsICciU0VDVElPTiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo
ZWRpdGFibGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hY2Nl
c3NpYmlsaXR5L2V2ZW50LW9uLWRlbGV0ZWQtaWZyYW1lLWNhdXNlcy1jcmFzaC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYWNjZXNzaWJpbGl0eS9ldmVudC1vbi1kZWxldGVkLWlm
cmFtZS1jYXVzZXMtY3Jhc2guaHRtbAppbmRleCBlNzBhOTY4ZTE2NGIyOWEwYTY0YzViMjViNzhi
NzVjYTU1Yjc4NDY2Li4xOWUxYTE0Njg3N2YxZmNlNWM0MzEwZWYyNTFmNmY5ZjUzOGE3N2FhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hY2Nlc3NpYmlsaXR5L2V2ZW50
LW9uLWRlbGV0ZWQtaWZyYW1lLWNhdXNlcy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL2JsaW5rL2FjY2Vzc2liaWxpdHkvZXZlbnQtb24tZGVsZXRlZC1pZnJhbWUtY2F1c2Vz
LWNyYXNoLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKTsKICAgICB2YXIgcDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbTEiKTsK
ICAgICB2YXIgcDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbTIiKTsKLSAgICBzLnNl
dEJhc2VBbmRFeHRlbnQocDEsIDAsIHAyKTsKKyAgICBzLnNldEJhc2VBbmRFeHRlbnQocDEsIDAs
IHAyLCAwKTsKICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50Iik7CiAKICAgICAvLyBU
aGlzIGNvZGUgZG9lc24ndCBkbyBhbnl0aGluZyBpbml0aWFsbHksIGJ1dCB0aGUgY29kZSBiZWxv
dyBjcmVhdGVzIGFuIGlmcmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxp
bmsvZWRpdGluZy9hcHBseS1pbmxpbmUtc3R5bGUtdG8tZWxlbWVudC13aXRoLW5vLXJlbmRlcmVy
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9lZGl0aW5nL2FwcGx5LWlu
bGluZS1zdHlsZS10by1lbGVtZW50LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2guaHRtbAppbmRleCA4
MzVhZWIzMDY4Y2YyY2UxODU5YTMyNjZmOTVkYjE0MDRiNTQ2YTg3Li45YmZhN2ZkOGIyNTFhZTE2
MDRjZTM4ZGFhNzU1ZGI4NDZjNWQ1OGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC9ibGluay9lZGl0aW5nL2FwcGx5LWlubGluZS1zdHlsZS10by1lbGVtZW50LXdpdGgtbm8tcmVu
ZGVyZXItY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9lZGl0aW5n
L2FwcGx5LWlubGluZS1zdHlsZS10by1lbGVtZW50LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2guaHRt
bApAQCAtMTYsNyArMTYsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogICAgIGlucHV0PWRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgdGV4dFBhdGgucGFyZW50Tm9kZS5p
bnNlcnRCZWZvcmUoaW5wdXQsIHRleHRQYXRoKTsKLSAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudChpbnB1dCwgNCk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoaW5wdXQsIDQsIGlucHV0LCA0KTsKIAogICAgIGRvY3VtZW50LmRlc2ln
bk1vZGU9J29uJzsKICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnVHJhbnNwb3NlJyk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VuaWNvZGUtaW4tdHNwYW4tbXVsdGktc3Zn
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VuaWNvZGUtaW4tdHNwYW4tbXVs
dGktc3ZnLWNyYXNoLmh0bWwKaW5kZXggYzhlYTNkNDc2NTM3M2JmZTA0NjRlNDdiNDMzZGMwNTlk
OGU5NTUwOS4uNzUxNDFjODBmMDQ1Y2MyODZjNjBhMDg0ODdhNjYyYmM5MWIzOTc0NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91bmljb2RlLWluLXRzcGFuLW11bHRpLXN2Zy1j
cmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdW5pY29kZS1pbi10c3Bhbi1t
dWx0aS1zdmctY3Jhc2guaHRtbApAQCAtMTQsNyArMTQsNyBAQAogICAgICAgZG9jdW1lbnQuZGVz
aWduTW9kZT0nb24nOwogICAgICAgZmlsdGVySW5GaXJzdFJvb3QgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZmlsdGVySW5GaXJzdFJvb3QnKTsKICAgICAgIHVzZUVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndXNlRWxlbWVudCcpOwotICAgICAgd2luZG93LmdldFNlbGVjdGlv
bigpLnNldEJhc2VBbmRFeHRlbnQoZmlsdGVySW5GaXJzdFJvb3QsIDApOworICAgICAgd2luZG93
LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZmlsdGVySW5GaXJzdFJvb3QsIDAsIGZp
bHRlckluRmlyc3RSb290LCAwKTsKICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3J3YXJk
RGVsZXRlJyk7CiAgICAgICBkb2N1bWVudC5kZXNpZ25Nb2RlPSdvZmYnOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285573</attachid>
            <date>2016-08-08 11:05:20 -0700</date>
            <delta_ts>2016-08-08 13:02:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160663-20160808110348.patch</filename>
            <type>text/plain</type>
            <size>49059</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBmYjE0NjVmNGE3OTMy
MTUwNDFmZjU3NTkyMmRiODUwOWZhZmZiYi4uNTBiMjc4OTAwNzgzOGI2ZmM2ZGVjM2YxNjQ1MGFi
Yzk2ODBkOWI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gU2VsZWN0aW9uIEFQ
SSB3aXRoIHRoZSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBbGlnbiBTZWxlY3Rpb24gQVBJIHdpdGggdGhlIHNwZWNpZmljYXRp
b246CisgICAgICAgIC0gaHR0cHM6Ly93d3cudzMub3JnL1RSL3NlbGVjdGlvbi1hcGkvI2lkbC1k
ZWYtU2VsZWN0aW9uCisKKyAgICAgICAgSW4gcGFydGljdWxhciwgdGhlIGZvbGxvd2luZyBjaGFu
Z2VzIHdlcmUgbWFkZToKKyAgICAgICAgLSBNYXJrIHBhcmFtZXRlcnMgYXMgbm9uLW51bGxhYmxl
IHdoZW4gdGhleSBzaG91bGQgYmUuCisgICAgICAgIC0gTWFyayBwYXJhbWV0ZXJzIGFzIG1hbmRh
dG9yeSB3aGVuIHRoZXkgc2hvdWxkIGJlLgorICAgICAgICAtIFVzZSAidW5zaWduZWQgbG9uZyIg
dHlwZSBmb3Igb2Zmc2V0cyBpbnN0ZWFkIG9mICJsb25nIi4KKworICAgICAgICBUaGlzIGFsaWdu
cyBvdXIgYmVoYXZpb3Igd2l0aCBGaXJlZm94IGFzIHdlbGwuIE91ciBuZXcKKyAgICAgICAgYmVo
YXZpb3IgaXMgYWxzbyBtb3N0bHkgYWxpZ25lZCB3aXRoIENocm9tZSBhcyB3ZWxsCisgICAgICAg
IGV4Y2VwdCB0aGF0IHRoZSBOb2RlIHBhcmFtZXRlcnMgdG8gc2V0QmFzZUFuZEV4dGVudCgpCisg
ICAgICAgIGFyZSBudWxsYWJsZSBpbiBDaHJvbWUgYW5kIHNob3VsZCBub3QgYmUuCisKKyAgICAg
ICAgVGVzdDogZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlucHV0Lmh0bWwKKworICAgICAgICAqIGRv
bS9Qb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OkxlZ2FjeUVkaXRpbmdP
ZmZzZXQ6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpMZWdhY3lFZGl0aW5n
T2Zmc2V0OjpMZWdhY3lFZGl0aW5nT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbik6CisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjphbmNob3JPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpmb2N1c09mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OmJhc2VPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
OjpleHRlbnRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpyYW5nZUNv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6Y29sbGFwc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVNlbGVjdGlvbjo6c2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2VsZWN0aW9uOjpleHRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpnZXRS
YW5nZUF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YWRkUmFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpkZWxldGVGcm9tRG9jdW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpjb250YWluc05vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NU2VsZWN0aW9uOjpzZWxlY3RBbGxDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnNoYWRvd0FkanVzdGVkT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6bW9kaWZ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVj
dGlvbjo6c2hhZG93QWRqdXN0ZWROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNlbGVjdGlvbjo6aXNWYWxpZEZvclBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdl
L0RPTVNlbGVjdGlvbi5oOgorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmlkbDoKKwogMjAx
Ni0wOC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gRml4IEdPYmplY3QgRE9NIGJpbmRpbmdzIEFQSSBicmVhayBhZnRl
ciByMjA0MjM2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAppbmRleCA1OGFkMDRkNTQ1YTdkYWExMzgwMmEz
NTk1NjcyMjVjMmJmMWY4MDYyLi4yZTExODllZjUxZDc5ZDRjNjBkOTM5N2YwMTQ2OTAxOTQ4YWMz
NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaApAQCAtNzIsMTQgKzcyLDE2IEBAIHB1YmxpYzoKICAg
ICAvLyBGb3IgY3JlYXRpbmcgbGVnYWN5IGVkaXRpbmcgcG9zaXRpb25zOiAoQW5jaG9yIHR5cGUg
d2lsbCBiZSBkZXRlcm1pbmVkIGZyb20gZWRpdGluZ0lnbm9yZXNDb250ZW50KG5vZGUpKQogICAg
IGNsYXNzIExlZ2FjeUVkaXRpbmdPZmZzZXQgewogICAgIHB1YmxpYzoKLSAgICAgICAgaW50IHZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KKyAgICAgICAgdW5zaWduZWQgdmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX29mZnNldDsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgZXhw
bGljaXQgTGVnYWN5RWRpdGluZ09mZnNldChpbnQgb2Zmc2V0KSA6IG1fb2Zmc2V0KG9mZnNldCkg
eyB9CisgICAgICAgIGV4cGxpY2l0IExlZ2FjeUVkaXRpbmdPZmZzZXQodW5zaWduZWQgb2Zmc2V0
KQorICAgICAgICAgICAgOiBtX29mZnNldChvZmZzZXQpCisgICAgICAgIHsgfQogCi0gICAgICAg
IGZyaWVuZCBQb3NpdGlvbiBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oUGFzc1JlZlB0cjxO
b2RlPiwgaW50IG9mZnNldCk7CisgICAgICAgIGZyaWVuZCBQb3NpdGlvbiBjcmVhdGVMZWdhY3lF
ZGl0aW5nUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiwgdW5zaWduZWQgb2Zmc2V0KTsKIAotICAg
ICAgICBpbnQgbV9vZmZzZXQ7CisgICAgICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogICAgIH07CiAg
ICAgV0VCQ09SRV9FWFBPUlQgUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBM
ZWdhY3lFZGl0aW5nT2Zmc2V0KTsKIApAQCAtMjI4LDcgKzIzMCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uIDogMTsKIH07CiAKLWlubGluZSBQb3NpdGlv
biBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBub2RlLCBpbnQg
b2Zmc2V0KQoraW5saW5lIFBvc2l0aW9uIGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihQYXNz
UmVmUHRyPE5vZGU+IG5vZGUsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICByZXR1cm4gUG9zaXRp
b24obm9kZSwgUG9zaXRpb246OkxlZ2FjeUVkaXRpbmdPZmZzZXQob2Zmc2V0KSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAKaW5kZXggOTE3ZDVlNWFhZGRjZTI1MDMxZmZmZWRi
MDJhNjBlN2Y1ODdhY2YyNS4uZTc3M2FkYzU2ZDY2ZTJjNTA5NTY4OTk4NThkMTRkZWRmY2EyYWY3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBA
IE5vZGUqIERPTVNlbGVjdGlvbjo6YW5jaG9yTm9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNoYWRv
d0FkanVzdGVkTm9kZShhbmNob3JQb3NpdGlvbih2aXNpYmxlU2VsZWN0aW9uKCkpKTsKIH0KIAot
aW50IERPTVNlbGVjdGlvbjo6YW5jaG9yT2Zmc2V0KCkgY29uc3QKK3Vuc2lnbmVkIERPTVNlbGVj
dGlvbjo6YW5jaG9yT2Zmc2V0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAg
IHJldHVybiAwOwpAQCAtMTE2LDcgKzExNiw3IEBAIE5vZGUqIERPTVNlbGVjdGlvbjo6Zm9jdXNO
b2RlKCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93QWRqdXN0ZWROb2RlKGZvY3VzUG9zaXRpb24o
dmlzaWJsZVNlbGVjdGlvbigpKSk7CiB9CiAKLWludCBET01TZWxlY3Rpb246OmZvY3VzT2Zmc2V0
KCkgY29uc3QKK3Vuc2lnbmVkIERPTVNlbGVjdGlvbjo6Zm9jdXNPZmZzZXQoKSBjb25zdAogewog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMzIsNyArMTMyLDcgQEAg
Tm9kZSogRE9NU2VsZWN0aW9uOjpiYXNlTm9kZSgpIGNvbnN0CiAgICAgcmV0dXJuIHNoYWRvd0Fk
anVzdGVkTm9kZShiYXNlUG9zaXRpb24odmlzaWJsZVNlbGVjdGlvbigpKSk7CiB9CiAKLWludCBE
T01TZWxlY3Rpb246OmJhc2VPZmZzZXQoKSBjb25zdAordW5zaWduZWQgRE9NU2VsZWN0aW9uOjpi
YXNlT2Zmc2V0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAw
OwpAQCAtMTQ4LDcgKzE0OCw3IEBAIE5vZGUqIERPTVNlbGVjdGlvbjo6ZXh0ZW50Tm9kZSgpIGNv
bnN0CiAgICAgcmV0dXJuIHNoYWRvd0FkanVzdGVkTm9kZShleHRlbnRQb3NpdGlvbih2aXNpYmxl
U2VsZWN0aW9uKCkpKTsKIH0KIAotaW50IERPTVNlbGVjdGlvbjo6ZXh0ZW50T2Zmc2V0KCkgY29u
c3QKK3Vuc2lnbmVkIERPTVNlbGVjdGlvbjo6ZXh0ZW50T2Zmc2V0KCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMTgwLDIzICsxODAsMTggQEAgU3Ry
aW5nIERPTVNlbGVjdGlvbjo6dHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuICJSYW5nZSI7CiB9CiAK
LWludCBET01TZWxlY3Rpb246OnJhbmdlQ291bnQoKSBjb25zdAordW5zaWduZWQgRE9NU2VsZWN0
aW9uOjpyYW5nZUNvdW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJl
dHVybiAwOwogICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5pc05vbmUoKSA/IDAgOiAx
OwogfQogCi12b2lkIERPTVNlbGVjdGlvbjo6Y29sbGFwc2UoTm9kZSogbm9kZSwgaW50IG9mZnNl
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIERPTVNlbGVjdGlvbjo6Y29sbGFwc2UoTm9kZSog
bm9kZSwgdW5zaWduZWQgb2Zmc2V0KQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKG9mZnNldCA8IDApIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmICghaXNWYWxpZEZvclBvc2l0aW9u
KG5vZGUpKQogICAgICAgICByZXR1cm47CiAKQEAgLTI0MSwzMSArMjM2LDIyIEBAIHZvaWQgRE9N
U2VsZWN0aW9uOjplbXB0eSgpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0K
IAotdm9pZCBET01TZWxlY3Rpb246OnNldEJhc2VBbmRFeHRlbnQoTm9kZSogYmFzZU5vZGUsIGlu
dCBiYXNlT2Zmc2V0LCBOb2RlKiBleHRlbnROb2RlLCBpbnQgZXh0ZW50T2Zmc2V0LCBFeGNlcHRp
b25Db2RlJiBlYykKK3ZvaWQgRE9NU2VsZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KE5vZGUmIGJh
c2VOb2RlLCB1bnNpZ25lZCBiYXNlT2Zmc2V0LCBOb2RlJiBleHRlbnROb2RlLCB1bnNpZ25lZCBl
eHRlbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoYmFzZU9mZnNldCA8IDAgfHwgZXh0ZW50T2Zmc2V0IDwgMCkgewotICAgICAgICBlYyA9
IElOREVYX1NJWkVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFpc1Zh
bGlkRm9yUG9zaXRpb24oYmFzZU5vZGUpIHx8ICFpc1ZhbGlkRm9yUG9zaXRpb24oZXh0ZW50Tm9k
ZSkpCisgICAgaWYgKCFpc1ZhbGlkRm9yUG9zaXRpb24oJmJhc2VOb2RlKSB8fCAhaXNWYWxpZEZv
clBvc2l0aW9uKCZleHRlbnROb2RlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6
IEVsaW1pbmF0ZSBsZWdhY3kgZWRpdGluZyBwb3NpdGlvbnMKLSAgICBtX2ZyYW1lLT5zZWxlY3Rp
b24oKS5tb3ZlVG8oY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGJhc2VOb2RlLCBiYXNlT2Zm
c2V0KSwgY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGV4dGVudE5vZGUsIGV4dGVudE9mZnNl
dCksIERPV05TVFJFQU0pOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLm1vdmVUbyhjcmVhdGVM
ZWdhY3lFZGl0aW5nUG9zaXRpb24oJmJhc2VOb2RlLCBiYXNlT2Zmc2V0KSwgY3JlYXRlTGVnYWN5
RWRpdGluZ1Bvc2l0aW9uKCZleHRlbnROb2RlLCBleHRlbnRPZmZzZXQpLCBET1dOU1RSRUFNKTsK
IH0KIAotdm9pZCBET01TZWxlY3Rpb246OnNldFBvc2l0aW9uKE5vZGUqIG5vZGUsIGludCBvZmZz
ZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBET01TZWxlY3Rpb246OnNldFBvc2l0aW9uKE5v
ZGUqIG5vZGUsIHVuc2lnbmVkIG9mZnNldCkKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAg
IHJldHVybjsKLSAgICBpZiAob2Zmc2V0IDwgMCkgewotICAgICAgICBlYyA9IElOREVYX1NJWkVf
RVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgaWYgKCFpc1ZhbGlkRm9yUG9zaXRp
b24obm9kZSkpCiAgICAgICAgIHJldHVybjsKQEAgLTMyNCwxMiArMzEwLDEyIEBAIHZvaWQgRE9N
U2VsZWN0aW9uOjptb2RpZnkoY29uc3QgU3RyaW5nJiBhbHRlclN0cmluZywgY29uc3QgU3RyaW5n
JiBkaXJlY3Rpb25TdHJpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkubW9kaWZ5KGFsdGVyLCBk
aXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKIH0KIAotdm9pZCBET01TZWxlY3Rpb246OmV4dGVuZChO
b2RlJiBub2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgRE9NU2VsZWN0
aW9uOjpleHRlbmQoTm9kZSYgbm9kZSwgdW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChvZmZz
ZXQgPCAwIHx8IG9mZnNldCA+IChub2RlLm9mZnNldEluQ2hhcmFjdGVycygpID8gY2FyZXRNYXhP
ZmZzZXQobm9kZSkgOiBzdGF0aWNfY2FzdDxpbnQ+KG5vZGUuY291bnRDaGlsZE5vZGVzKCkpKSkg
eworICAgIGlmIChvZmZzZXQgPiAobm9kZS5vZmZzZXRJbkNoYXJhY3RlcnMoKSA/IGNhcmV0TWF4
T2Zmc2V0KG5vZGUpIDogbm9kZS5jb3VudENoaWxkTm9kZXMoKSkpIHsKICAgICAgICAgZWMgPSBJ
TkRFWF9TSVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0MSwxMiArMzI3LDEy
IEBAIHZvaWQgRE9NU2VsZWN0aW9uOjpleHRlbmQoTm9kZSYgbm9kZSwgaW50IG9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkuc2V0RXh0ZW50KGNyZWF0
ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbigmbm9kZSwgb2Zmc2V0KSwgRE9XTlNUUkVBTSk7CiB9CiAK
LVJlZlB0cjxSYW5nZT4gRE9NU2VsZWN0aW9uOjpnZXRSYW5nZUF0KGludCBpbmRleCwgRXhjZXB0
aW9uQ29kZSYgZWMpCitSZWZQdHI8UmFuZ2U+IERPTVNlbGVjdGlvbjo6Z2V0UmFuZ2VBdCh1bnNp
Z25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gcmFu
Z2VDb3VudCgpKSB7CisgICAgaWYgKGluZGV4ID49IHJhbmdlQ291bnQoKSkgewogICAgICAgICBl
YyA9IElOREVYX1NJWkVfRVJSOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC0z
NzAsNDUgKzM1Niw0MiBAQCB2b2lkIERPTVNlbGVjdGlvbjo6cmVtb3ZlQWxsUmFuZ2VzKCkKICAg
ICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5jbGVhcigpOwogfQogCi12b2lkIERPTVNlbGVjdGlvbjo6
YWRkUmFuZ2UoUmFuZ2UqIHIpCit2b2lkIERPTVNlbGVjdGlvbjo6YWRkUmFuZ2UoUmFuZ2UmIHJh
bmdlKQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghcikK
LSAgICAgICAgcmV0dXJuOwogCiAgICAgRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiA9IG1fZnJh
bWUtPnNlbGVjdGlvbigpOwotCiAgICAgaWYgKHNlbGVjdGlvbi5pc05vbmUoKSkgewotICAgICAg
ICBzZWxlY3Rpb24ubW92ZVRvKHIpOworICAgICAgICBzZWxlY3Rpb24ubW92ZVRvKCZyYW5nZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gc2Vs
ZWN0aW9uLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgaWYgKCFyYW5nZSkK
KyAgICBSZWZQdHI8UmFuZ2U+IG5vcm1hbGl6ZWRSYW5nZSA9IHNlbGVjdGlvbi5zZWxlY3Rpb24o
KS50b05vcm1hbGl6ZWRSYW5nZSgpOworICAgIGlmICghbm9ybWFsaXplZFJhbmdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpTVEFS
VF9UT19TVEFSVCwgKnJhbmdlLCBJR05PUkVfRVhDRVBUSU9OKSA9PSAtMSkgeworICAgIGlmIChy
YW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX1NUQVJULCAqbm9ybWFs
aXplZFJhbmdlLCBJR05PUkVfRVhDRVBUSU9OKSA9PSAtMSkgewogICAgICAgICAvLyBXZSBkb24n
dCBzdXBwb3J0IGRpc2NvbnRpZ3VvdXMgc2VsZWN0aW9uLiBXZSBkb24ndCBkbyBhbnl0aGluZyBp
ZiByIGFuZCByYW5nZSBkb24ndCBpbnRlcnNlY3QuCi0gICAgICAgIGlmIChyLT5jb21wYXJlQm91
bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX0VORCwgKnJhbmdlLCBJR05PUkVfRVhDRVBUSU9O
KSA+IC0xKSB7Ci0gICAgICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdl
OjpFTkRfVE9fRU5ELCAqcmFuZ2UsIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7CisgICAgICAg
IGlmIChyYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX0VORCwgKm5v
cm1hbGl6ZWRSYW5nZSwgSUdOT1JFX0VYQ0VQVElPTikgPiAtMSkgeworICAgICAgICAgICAgaWYg
KHJhbmdlLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX0VORCwgKm5vcm1hbGl6
ZWRSYW5nZSwgSUdOT1JFX0VYQ0VQVElPTikgPT0gLTEpIHsKICAgICAgICAgICAgICAgICAvLyBU
aGUgb3JpZ2luYWwgcmFuZ2UgYW5kIHIgaW50ZXJzZWN0LgotICAgICAgICAgICAgICAgIHNlbGVj
dGlvbi5tb3ZlVG8oci0+c3RhcnRQb3NpdGlvbigpLCByYW5nZS0+ZW5kUG9zaXRpb24oKSwgRE9X
TlNUUkVBTSk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhyYW5nZS5zdGFydFBv
c2l0aW9uKCksIG5vcm1hbGl6ZWRSYW5nZS0+ZW5kUG9zaXRpb24oKSwgRE9XTlNUUkVBTSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIHIgY29udGFpbnMgdGhlIG9y
aWdpbmFsIHJhbmdlLgotICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8ocik7CisgICAg
ICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbygmcmFuZ2UpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBkaXNjb250
aWd1b3VzIHNlbGVjdGlvbi4gV2UgZG9uJ3QgZG8gYW55dGhpbmcgaWYgciBhbmQgcmFuZ2UgZG9u
J3QgaW50ZXJzZWN0LgogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgaWYg
KHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX1NUQVJULCAqcmFuZ2UsIGVj
KSA8IDEgJiYgIWVjKSB7Ci0gICAgICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRz
KFJhbmdlOjpFTkRfVE9fRU5ELCAqcmFuZ2UsIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7Cisg
ICAgICAgIGlmIChyYW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OkVORF9UT19TVEFS
VCwgKm5vcm1hbGl6ZWRSYW5nZSwgZWMpIDwgMSAmJiAhZWMpIHsKKyAgICAgICAgICAgIGlmIChy
YW5nZS5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OkVORF9UT19FTkQsICpub3JtYWxpemVk
UmFuZ2UsIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhl
IG9yaWdpbmFsIHJhbmdlIGNvbnRhaW5zIHIuCi0gICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1v
dmVUbyhyYW5nZS5nZXQoKSk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhub3Jt
YWxpemVkUmFuZ2UuZ2V0KCkpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAg
ICAvLyBUaGUgb3JpZ2luYWwgcmFuZ2UgYW5kIHIgaW50ZXJzZWN0LgotICAgICAgICAgICAgICAg
IHNlbGVjdGlvbi5tb3ZlVG8ocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgci0+ZW5kUG9zaXRpb24o
KSwgRE9XTlNUUkVBTSk7CisgICAgICAgICAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhub3JtYWxp
emVkUmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgcmFuZ2UuZW5kUG9zaXRpb24oKSwgRE9XTlNUUkVB
TSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC00MzAsMjYgKzQxMywyNiBA
QCB2b2lkIERPTVNlbGVjdGlvbjo6ZGVsZXRlRnJvbURvY3VtZW50KCkKIAogICAgIHNlbGVjdGVk
UmFuZ2UtPmRlbGV0ZUNvbnRlbnRzKEFTU0VSVF9OT19FWENFUFRJT04pOwogCi0gICAgc2V0QmFz
ZUFuZEV4dGVudCgmc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0ZWRSYW5n
ZS0+c3RhcnRPZmZzZXQoKSwgJnNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIHNlbGVj
dGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIHNldEJh
c2VBbmRFeHRlbnQoc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0ZWRSYW5n
ZS0+c3RhcnRPZmZzZXQoKSwgc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0
ZWRSYW5nZS0+c3RhcnRPZmZzZXQoKSk7CiB9CiAKLWJvb2wgRE9NU2VsZWN0aW9uOjpjb250YWlu
c05vZGUoTm9kZSogbiwgYm9vbCBhbGxvd1BhcnRpYWwpIGNvbnN0Citib29sIERPTVNlbGVjdGlv
bjo6Y29udGFpbnNOb2RlKE5vZGUmIG5vZGUsIGJvb2wgYWxsb3dQYXJ0aWFsKSBjb25zdAogewog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRnJhbWVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiA9IG1fZnJhbWUtPnNlbGVjdGlvbigpOwogCi0gICAgaWYgKCFuIHx8
IG1fZnJhbWUtPmRvY3VtZW50KCkgIT0gJm4tPmRvY3VtZW50KCkgfHwgc2VsZWN0aW9uLmlzTm9u
ZSgpKQorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICE9ICZub2RlLmRvY3VtZW50KCkgfHwg
c2VsZWN0aW9uLmlzTm9uZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQdHI8
Tm9kZT4gbm9kZSA9IG47CisgICAgUmVmPE5vZGU+IHByb3RlY3RlZE5vZGUobm9kZSk7CiAgICAg
UmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gc2VsZWN0aW9uLnNlbGVjdGlvbigpLnRvTm9y
bWFsaXplZFJhbmdlKCk7CiAKLSAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlID0gbm9kZS0+
cGFyZW50Tm9kZSgpOworICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBub2RlLnBhcmVu
dE5vZGUoKTsKICAgICBpZiAoIXBhcmVudE5vZGUgfHwgIXBhcmVudE5vZGUtPmluRG9jdW1lbnQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHVuc2lnbmVkIG5vZGVJbmRleCA9IG5vZGUt
PmNvbXB1dGVOb2RlSW5kZXgoKTsKKyAgICB1bnNpZ25lZCBub2RlSW5kZXggPSBub2RlLmNvbXB1
dGVOb2RlSW5kZXgoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGJvb2wgbm9k
ZUZ1bGx5U2VsZWN0ZWQgPSBSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHBhcmVudE5vZGUs
IG5vZGVJbmRleCwgJnNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIHNlbGVjdGVkUmFu
Z2UtPnN0YXJ0T2Zmc2V0KCksIGVjKSA+PSAwICYmICFlYwpAQCAtNDY0LDE2ICs0NDcsMTMgQEAg
Ym9vbCBET01TZWxlY3Rpb246OmNvbnRhaW5zTm9kZShOb2RlKiBuLCBib29sIGFsbG93UGFydGlh
bCkgY29uc3QKICAgICBpZiAobm9kZUZ1bGx5VW5zZWxlY3RlZCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgcmV0dXJuIGFsbG93UGFydGlhbCB8fCBub2RlLT5pc1RleHROb2RlKCk7Cisg
ICAgcmV0dXJuIGFsbG93UGFydGlhbCB8fCBub2RlLmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCBE
T01TZWxlY3Rpb246OnNlbGVjdEFsbENoaWxkcmVuKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVj
KQordm9pZCBET01TZWxlY3Rpb246OnNlbGVjdEFsbENoaWxkcmVuKE5vZGUmIG5vZGUpCiB7Ci0g
ICAgaWYgKCFuKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBUaGlzIGRvZXNuJ3QgKGFuZCBz
aG91bGRuJ3QpIHNlbGVjdCB0ZXh0IG5vZGUgY2hhcmFjdGVycy4KLSAgICBzZXRCYXNlQW5kRXh0
ZW50KG4sIDAsIG4sIG4tPmNvdW50Q2hpbGROb2RlcygpLCBlYyk7CisgICAgc2V0QmFzZUFuZEV4
dGVudChub2RlLCAwLCBub2RlLCBub2RlLmNvdW50Q2hpbGROb2RlcygpKTsKIH0KIAogU3RyaW5n
IERPTVNlbGVjdGlvbjo6dG9TdHJpbmcoKQpAQCAtNTAxLDcgKzQ4MSw3IEBAIE5vZGUqIERPTVNl
bGVjdGlvbjo6c2hhZG93QWRqdXN0ZWROb2RlKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikgY29u
c3QKICAgICByZXR1cm4gYWRqdXN0ZWROb2RlLT5wYXJlbnROb2RlR3VhcmFudGVlZEhvc3RGcmVl
KCk7CiB9CiAKLWludCBET01TZWxlY3Rpb246OnNoYWRvd0FkanVzdGVkT2Zmc2V0KGNvbnN0IFBv
c2l0aW9uJiBwb3NpdGlvbikgY29uc3QKK3Vuc2lnbmVkIERPTVNlbGVjdGlvbjo6c2hhZG93QWRq
dXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKSBjb25zdAogewogICAgIGlmIChw
b3NpdGlvbi5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxl
Y3Rpb24uaAppbmRleCAxMDk1MDViMDU4ZjA4NzI4NjA5MWNjMGNlZGJjZmUxNGE1YWZlMjQ2Li44
ZWFiYTZmYTdhMDU4MTEwM2UzNmViZGFiZjg5Y2M4YTRlYzZkY2E1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VsZWN0aW9uLmgKQEAgLTU3LDExICs1NywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgcmV0dXJuIHRoZSB2YWxpZCBlcXVpdmFsZW50cyBvZiBp
bnRlcm5hbCBlZGl0aW5nIHBvc2l0aW9ucy4KICAgICAgICAgTm9kZSogYmFzZU5vZGUoKSBjb25z
dDsKICAgICAgICAgTm9kZSogZXh0ZW50Tm9kZSgpIGNvbnN0OwotICAgICAgICBpbnQgYmFzZU9m
ZnNldCgpIGNvbnN0OwotICAgICAgICBpbnQgZXh0ZW50T2Zmc2V0KCkgY29uc3Q7CisgICAgICAg
IHVuc2lnbmVkIGJhc2VPZmZzZXQoKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgZXh0ZW50T2Zm
c2V0KCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyB0eXBlKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQg
c2V0QmFzZUFuZEV4dGVudChOb2RlKiBiYXNlTm9kZSwgaW50IGJhc2VPZmZzZXQsIE5vZGUqIGV4
dGVudE5vZGUsIGludCBleHRlbnRPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgdm9p
ZCBzZXRQb3NpdGlvbihOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAg
ICB2b2lkIHNldEJhc2VBbmRFeHRlbnQoTm9kZSYgYmFzZU5vZGUsIHVuc2lnbmVkIGJhc2VPZmZz
ZXQsIE5vZGUmIGV4dGVudE5vZGUsIHVuc2lnbmVkIGV4dGVudE9mZnNldCk7CisgICAgICAgIHZv
aWQgc2V0UG9zaXRpb24oTm9kZSosIHVuc2lnbmVkIG9mZnNldCk7CiAgICAgICAgIHZvaWQgbW9k
aWZ5KGNvbnN0IFN0cmluZyYgYWx0ZXIsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBjb25zdCBT
dHJpbmcmIGdyYW51bGFyaXR5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIFNlbGVjdGlvbiBPYmpl
Y3QgQVBJCkBAIC03MSwyMSArNzEsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAv
LyBleHBhbnNpb24uCiAgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgcmV0dXJuIHRoZSB2YWxpZCBl
cXVpdmFsZW50cyBvZiBpbnRlcm5hbCBlZGl0aW5nIHBvc2l0aW9ucy4KICAgICAgICAgTm9kZSog
YW5jaG9yTm9kZSgpIGNvbnN0OwotICAgICAgICBpbnQgYW5jaG9yT2Zmc2V0KCkgY29uc3Q7Cisg
ICAgICAgIHVuc2lnbmVkIGFuY2hvck9mZnNldCgpIGNvbnN0OwogICAgICAgICBOb2RlKiBmb2N1
c05vZGUoKSBjb25zdDsKLSAgICAgICAgaW50IGZvY3VzT2Zmc2V0KCkgY29uc3Q7CisgICAgICAg
IHVuc2lnbmVkIGZvY3VzT2Zmc2V0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNDb2xsYXBzZWQo
KSBjb25zdDsKLSAgICAgICAgaW50IHJhbmdlQ291bnQoKSBjb25zdDsKLSAgICAgICAgdm9pZCBj
b2xsYXBzZShOb2RlKiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICB1bnNp
Z25lZCByYW5nZUNvdW50KCkgY29uc3Q7CisgICAgICAgIHZvaWQgY29sbGFwc2UoTm9kZSosIHVu
c2lnbmVkIG9mZnNldCk7CiAgICAgICAgIHZvaWQgY29sbGFwc2VUb0VuZChFeGNlcHRpb25Db2Rl
Jik7CiAgICAgICAgIHZvaWQgY29sbGFwc2VUb1N0YXJ0KEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAg
ICAgdm9pZCBleHRlbmQoTm9kZSYsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAg
ICAgUmVmUHRyPFJhbmdlPiBnZXRSYW5nZUF0KGludCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAg
ICB2b2lkIGV4dGVuZChOb2RlJiwgdW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgICAgIFJlZlB0cjxSYW5nZT4gZ2V0UmFuZ2VBdCh1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygpOwotICAgICAgICB2b2lkIGFkZFJhbmdl
KFJhbmdlKik7CisgICAgICAgIHZvaWQgYWRkUmFuZ2UoUmFuZ2UmKTsKICAgICAgICAgdm9pZCBk
ZWxldGVGcm9tRG9jdW1lbnQoKTsKLSAgICAgICAgYm9vbCBjb250YWluc05vZGUoTm9kZSosIGJv
b2wgcGFydGx5Q29udGFpbmVkKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZWxlY3RBbGxDaGlsZHJl
bihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgICAgICBib29sIGNvbnRhaW5zTm9kZShOb2Rl
JiwgYm9vbCBwYXJ0bHlDb250YWluZWQpIGNvbnN0OworICAgICAgICB2b2lkIHNlbGVjdEFsbENo
aWxkcmVuKE5vZGUmKTsKIAogICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKTsKIApAQCAtMTAxLDcg
KzEwMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgdmlzaWJsZVNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgICAgIE5vZGUqIHNoYWRvd0Fk
anVzdGVkTm9kZShjb25zdCBQb3NpdGlvbiYpIGNvbnN0OwotICAgICAgICBpbnQgc2hhZG93QWRq
dXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgc2hh
ZG93QWRqdXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mKSBjb25zdDsKIAogICAgICAgICBib29s
IGlzVmFsaWRGb3JQb3NpdGlvbihOb2RlKikgY29uc3Q7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NU2VsZWN0aW9uLmlkbAppbmRleCBhYzIyMDUwZTBiZWU5ZjI0OTE0NzFhMDg0MmQ0M2YwODAz
ZDg0MTQyLi45MjMxZmFjNGZiMTkyYmU0ODRkMmM4M2RlNjMwOTgwMWNhZTgyYjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCkBAIC0yNyw1NSArMjcsNTUgQEAKICAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotLy8gVGhpcyBpcyBiYXNlZCBvZmYgb2YgTW96aWxsYSdzIFNlbGVjdGlvbiBp
bnRlcmZhY2UKLS8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL0VuL0RPTS9TZWxlY3Rp
b24KKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3Rpb24tYXBpLyNpZGwtZGVmLVNlbGVj
dGlvbgogWwogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogICAgIEludGVyZmFj
ZU5hbWU9U2VsZWN0aW9uLAogXSBpbnRlcmZhY2UgRE9NU2VsZWN0aW9uIHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZSBhbmNob3JOb2RlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IGFuY2hvck9mZnNldDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBmb2N1c05vZGU7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgZm9jdXNPZmZzZXQ7CisgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGU/IGFuY2hvck5vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgYW5jaG9yT2Zmc2V0OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBmb2N1c05v
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZm9jdXNPZmZzZXQ7CiAK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0NvbGxhcHNlZDsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyByYW5nZUNvdW50OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIHJhbmdlQ291bnQ7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIGNvbGxh
cHNlKG9wdGlvbmFsIE5vZGU/IG5vZGUgPSBudWxsLCBvcHRpb25hbCBsb25nIGluZGV4ID0gMCk7
CisgICAgdm9pZCBjb2xsYXBzZShOb2RlPyBub2RlLCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIG9m
ZnNldCA9IDApOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgY29sbGFwc2VUb0VuZCgpOwog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgY29sbGFwc2VUb1N0YXJ0KCk7CiAKICAgICB2b2lk
IGRlbGV0ZUZyb21Eb2N1bWVudCgpOwotICAgIGJvb2xlYW4gY29udGFpbnNOb2RlKG9wdGlvbmFs
IE5vZGU/IG5vZGUgPSBudWxsLCBvcHRpb25hbCBib29sZWFuIGFsbG93UGFydGlhbCA9IGZhbHNl
KTsKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNlbGVjdEFsbENoaWxkcmVuKG9wdGlvbmFs
IE5vZGU/IG5vZGUgPSBudWxsKTsKKyAgICBib29sZWFuIGNvbnRhaW5zTm9kZShOb2RlIG5vZGUs
IG9wdGlvbmFsIGJvb2xlYW4gYWxsb3dQYXJ0aWFsID0gZmFsc2UpOworICAgIHZvaWQgc2VsZWN0
QWxsQ2hpbGRyZW4oTm9kZSBub2RlKTsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgZXh0
ZW5kKE5vZGUgbm9kZSwgb3B0aW9uYWwgbG9uZyBvZmZzZXQgPSAwKTsKKyAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIGV4dGVuZChOb2RlIG5vZGUsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0ID0gMCk7CiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSBSYW5nZSBnZXRSYW5nZUF0KG9wdGlv
bmFsIGxvbmcgaW5kZXggPSAwKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSBSYW5nZSBnZXRSYW5n
ZUF0KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7Ci0g
ICAgdm9pZCBhZGRSYW5nZShvcHRpb25hbCBSYW5nZT8gcmFuZ2UgPSBudWxsKTsKKyAgICB2b2lk
IGFkZFJhbmdlKFJhbmdlIHJhbmdlKTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgIFtOb3RFbnVtZXJhYmxlXSBET01TdHJpbmcg
dG9TdHJpbmcoKTsKICNlbmRpZgogCi0gICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgTm9kZSBiYXNlTm9kZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBiYXNlT2Zmc2V0OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIGV4dGVudE5vZGU7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgZXh0ZW50T2Zmc2V0OwotCi0gICAgLy8gV2ViS2l0
J3MgInR5cGUiIGFjY2Vzc29yIHJldHVybnMgIk5vbmUiLCAiUmFuZ2UiIGFuZCAiQ2FyZXQiCi0g
ICAgLy8gSUUncyB0eXBlIGFjY2Vzc29yIHJldHVybnMgIm5vbmUiLCAidGV4dCIgYW5kICJjb250
cm9sIgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIAorICAgIHZvaWQg
c2V0QmFzZUFuZEV4dGVudChOb2RlIGJhc2VOb2RlLCB1bnNpZ25lZCBsb25nIGJhc2VPZmZzZXQs
IE5vZGUgZXh0ZW50Tm9kZSwgdW5zaWduZWQgbG9uZyBleHRlbnRPZmZzZXQpOworICAgIHZvaWQg
c2V0UG9zaXRpb24oTm9kZT8gbm9kZSwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAw
KTsKKworICAgIHZvaWQgZW1wdHkoKTsKKworICAgIC8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIG9w
ZXJhdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50ZWQuCisgICAgLy8gdm9pZCByZW1vdmVSYW5nZShS
YW5nZSByYW5nZSk7CisKKyAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucy4KKwogICAgIC8vIEZJWE1F
OiBVc2luZyAidW5kZWZpbmVkIiBhcyBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBpcyB3cm9uZy4K
ICAgICB2b2lkIG1vZGlmeShvcHRpb25hbCBET01TdHJpbmcgYWx0ZXIgPSAidW5kZWZpbmVkIiwg
b3B0aW9uYWwgRE9NU3RyaW5nIGRpcmVjdGlvbiA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCBET01T
dHJpbmcgZ3JhbnVsYXJpdHkgPSAidW5kZWZpbmVkIik7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBzZXRCYXNlQW5kRXh0ZW50KG9wdGlvbmFsIE5vZGU/IGJhc2VOb2RlID0gbnVsbCwgb3B0
aW9uYWwgbG9uZyBiYXNlT2Zmc2V0ID0gMCwgb3B0aW9uYWwgTm9kZT8gZXh0ZW50Tm9kZSA9IG51
bGwsIG9wdGlvbmFsIGxvbmcgZXh0ZW50T2Zmc2V0ID0gMCk7Ci0gICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzZXRQb3NpdGlvbihvcHRpb25hbCBOb2RlPyBub2RlID0gbnVsbCwgb3B0aW9uYWwg
bG9uZyBvZmZzZXQgPSAwKTsKIAotICAgIC8vIElFIGV4dGVuc2lvbgotICAgIC8vIGh0dHA6Ly9t
c2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNTg2OShWUy44NSkuYXNweAotICAg
IHZvaWQgZW1wdHkoKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBiYXNlTm9kZTsKKyAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBiYXNlT2Zmc2V0OworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlIGV4dGVudE5vZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgZXh0ZW50T2Zmc2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE4MmM4NzkwMTIzMDk3ZDll
MjBlODcwZDIwMzhjZjBiNjk5NWJmMzEuLmFiNDdiZjYxMTdiNWFlZjVkZmUxMGMyOGYyMjVkMjhi
MTRhZmNmMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxNi0wOC0wOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFsaWduIFNlbGVjdGlvbiBBUEkgd2l0aCB0
aGUgc3BlY2lmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYwNjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQuaHRtbDogQWRkZWQuCisg
ICAgICAgIEFkZCBuZXcgbGF5b3V0IHRlc3QgdG8gY292ZXIgcGFzc2luZyBiYWQgaW5wdXQgdG8g
dGhlIFNlbGVjdGlvbiBBUEkuCisgICAgICAgIFRoaXMgbmV3IHRlc3QgaXMgcGFzc2luZyBjb21w
bGV0ZWx5IGluIEZpcmVmb3guIEl0IG1vc3RseSBwYXNzZXMgaW4KKyAgICAgICAgQ2hyb21lIGV4
Y2VwdCB0aGF0IHRoZSBOb2RlIHBhcmFtZXRlcnMgdG8gc2V0QmFzZUFuZEV4dGVudCgpIGFyZQor
ICAgICAgICBudWxsYWJsZSBpbiBDaHJvbWUgYnV0IG5vdCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4K
KworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvYXBwbHktc3R5bGUtdGV4dC1kZWNvcmF0
aW9uLWNyYXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseWJsb2Nr
ZWxlbWVudC12aXNpYmxlcG9zaXRpb25mb3JpbmRleC1jcmFzaC5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvZXhlY0NvbW1hbmQvaWRlbnQtY3Jhc2hlcy10b3Bub2RlLWlzLXRleHQuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvZXhlY0NvbW1hbmQvb3ZlcnR5cGUuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9jb250YWluc05vZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL2NvbnRhaW5zTm9kZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL21vdmUt
YnktbGluZS0wMDMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVz
dHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qczoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLWNyb3NzaW5nLWRvY3VtZW50LmpzOgorICAg
ICAgICAoY2xlYXIpOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1pbnZh
bGlkLW9mZnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ibG9jay9mbG9hdC9mbG9h
dC1saXN0LWNoYW5nZWQtYmVmb3JlLWxheW91dC1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1lcmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJp
Yy1wYXJhbWV0ZXJzLmpzOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWFy
cm93LWtleXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2h0bWwvbmF2LWVsZW1lbnQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qczoKKyAgICAg
ICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanM6CisgICAgICAgICog
ZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0
L2h0bWwvc2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzOgorICAgICAgICAqIGZhc3QvaHRt
bC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3Nj
cmlwdC10ZXN0cy9tYWluLWVsZW1lbnQuanM6CisgICAgICAgICogZmFzdC9odG1sL3NjcmlwdC10
ZXN0cy9zZWN0aW9uLWVsZW1lbnQuanM6CisgICAgICAgICogaW1wb3J0ZWQvYmxpbmsvYWNjZXNz
aWJpbGl0eS9ldmVudC1vbi1kZWxldGVkLWlmcmFtZS1jYXVzZXMtY3Jhc2guaHRtbDoKKyAgICAg
ICAgKiBpbXBvcnRlZC9ibGluay9lZGl0aW5nL2FwcGx5LWlubGluZS1zdHlsZS10by1lbGVtZW50
LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2guaHRtbDoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3VuaWNv
ZGUtaW4tdHNwYW4tbXVsdGktc3ZnLWNyYXNoLmh0bWw6CisgICAgICAgIFVwZGF0ZSBleGlzdGlu
ZyB0ZXN0cyB0byB1c2UgdGhlIFNlbGVjdGlvbiBBUEkgcHJvcGVybHkuCisKIDIwMTYtMDgtMDcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBOb2RlLmJhc2VVUkkg
c2hvdWxkIG5vdCBiZSBudWxsYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9hcHBseS1zdHlsZS10ZXh0LWRlY29yYXRpb24tY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvYXBwbHktc3R5bGUtdGV4dC1kZWNvcmF0aW9uLWNy
YXNoLmh0bWwKaW5kZXggZmNjYjQ3ODNkYWM2MGQyOTliMDg5ODM0ODI3NzIyMmNkZDk2NjI1ZS4u
NDZiYmNiOTI3ZDU1ZTc5ZmJhODllNTQwY2JkZThlZjU2NDIxYjFjZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseS1zdHlsZS10ZXh0LWRlY29yYXRpb24t
Y3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5LXN0
eWxlLXRleHQtZGVjb3JhdGlvbi1jcmFzaC5odG1sCkBAIC01LDcgKzUsNyBAQAogICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsNCiANCi0gICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudChzdGFydCwgMCwgbnVsbCwgMCk7DQorICAgICAgICAgICAgd2luZG93LmdldFNl
bGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoc3RhcnQsIDAsIHN0YXJ0LCAwKTsNCiAgICAgICAg
ICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50Iik7DQogICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJQQVNTIjsNCiAgICAgICAg
IH0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5Ymxv
Y2tlbGVtZW50LXZpc2libGVwb3NpdGlvbmZvcmluZGV4LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5YmxvY2tlbGVtZW50LXZpc2libGVwb3NpdGlvbmZv
cmluZGV4LWNyYXNoLmh0bWwKaW5kZXggZDY3NTRhYzBkMTk0MTkzNWJiNDQ4YjU0MTgzMGY3MWMz
NTJlOGQ2Yy4uNjE3ZDVmZTRiOTk1MTBlOTQzNjY5N2ZkOGFkZjJhMGU3YTlmMzllOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseWJsb2NrZWxlbWVudC12
aXNpYmxlcG9zaXRpb25mb3JpbmRleC1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvYXBwbHlibG9ja2VsZW1lbnQtdmlzaWJsZXBvc2l0aW9uZm9yaW5kZXgt
Y3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHN0YXJ0LCAwLCBudWxsLCAwKTsKKyAg
ICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChzdGFydCwgMCwgc3RhcnQs
IDApOwogICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJJbmRlbnQiKTsKICAgICBkb2N1bWVudC5i
b2R5LmlubmVySFRNTCA9ICJQQVNTLiBXZWJLaXQgZGlkbid0IGNyYXNoLiI7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lkZW50LWNyYXNoZXMtdG9wbm9k
ZS1pcy10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lkZW50LWNy
YXNoZXMtdG9wbm9kZS1pcy10ZXh0Lmh0bWwKaW5kZXggNmZhZDk3MWJkMDJhNTE2NGJjMTk5ODNl
ZGM5ZDZmMTE5ZTM4NzcxZi4uZGQ0ZWUxZmI5ZTExYzc0NGUwN2FkYjYwNTkzMzY3MTlhM2UxNDE4
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pZGVudC1jcmFz
aGVzLXRvcG5vZGUtaXMtdGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvaWRlbnQtY3Jhc2hlcy10b3Bub2RlLWlzLXRleHQuaHRtbApAQCAtMyw3ICszLDcgQEAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5k
RXh0ZW50KHN0YXJ0LCAwLCBudWxsLCAwKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChzdGFydCwgMCwgc3RhcnQsIDApOwogICAgIGRvY3VtZW50LmV4ZWNDb21t
YW5kKCJJbmRlbnQiKTsKIAogICAgIGRvY3VtZW50LndyaXRlbG4oJ2V4ZWNDb21tYW5kKCJJbmRl
bnQiKSB3YXMgY3Jhc2hpbmcgaWYgdGhlIHRvcCBlbGVtZW50IHRvIGJlIGZvcm1hdHRlZCBpcyBh
Y3R1YWxseSBub3QgYW4gZWxlbWVudC48YnI+Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWV4cGVjdGVkLnR4dAppbmRleCA1ZjFhMTM3
ZjM1ZWJmZjQ0ODQxMDBiZTFhNzlkZTk4MGNjZWQ1ZTY4Li43MDZhNmE4NTAwODBkYWQ3ZWIxMjlh
ZjNlNWIxZWI5MjQ1ZmZlYzc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2luZGVudC1wcmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3RlZC50eHQKQEAgLTEwMiw3ICsxMDIsNyBAQCBm
dW5jdGlvbiBzZXRTZWxlY3Rpb24obm9kZSkKICAgICB2YXIgdGV4dE5vZGUgPSBub2RlLmZpcnN0
Q2hpbGQ7CiAgICAgaWYgKHRleHROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQogICAg
ICAgICB0aHJvdyAiV3Jvbmcgbm9kZSB0eXBlOiAiICsgdGV4dE5vZGU7Ci0gICAgZXhlY1NldFNl
bGVjdGlvbkNvbW1hbmQodGV4dE5vZGUsIDAsIG51bGwpOworICAgIGV4ZWNTZXRTZWxlY3Rpb25D
b21tYW5kKHRleHROb2RlLCAwLCB0ZXh0Tm9kZSk7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeVRleHRT
ZWxlY3Rpb24oc3RhcnROb2RlLCBzdGFydE9mZnNldCwgZW5kTm9kZSwgZW5kT2Zmc2V0KQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUuaHRtbAppbmRleCBi
ZGVhOTRmZDk1OTQ5NDAxNGJkMmI1NTcwYTMwYTM2NGVjZmY4MzYxLi4wNTlmNjllYzM5NmUwNzY4
ZTdjNmY4ZGE2NGIwZDY2YjA5YjQ2OTRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL2luZGVudC1wcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL2luZGVudC1wcmUuaHRtbApAQCAtMzAsNyArMzAsNyBAQCBmdW5jdGlvbiBzZXRT
ZWxlY3Rpb24obm9kZSkKICAgICB2YXIgdGV4dE5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7CiAgICAg
aWYgKHRleHROb2RlLm5vZGVUeXBlICE9IE5vZGUuVEVYVF9OT0RFKQogICAgICAgICB0aHJvdyAi
V3Jvbmcgbm9kZSB0eXBlOiAiICsgdGV4dE5vZGU7Ci0gICAgZXhlY1NldFNlbGVjdGlvbkNvbW1h
bmQodGV4dE5vZGUsIDAsIG51bGwpOworICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRleHRO
b2RlLCAwLCB0ZXh0Tm9kZSk7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeVRleHRTZWxlY3Rpb24oc3Rh
cnROb2RlLCBzdGFydE9mZnNldCwgZW5kTm9kZSwgZW5kT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9vdmVydHlwZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9vdmVydHlwZS5odG1sCmluZGV4IGZjYTRjOTc4ZGYyYWQ4Yjg2
OWI4MTI2ZWE4NDAxOWQ4ODQ3ZWZhNzcuLmI3MjYxYTlkNjg2MDRkNTU1ZTc4NTUyYzQ1NTVlYjk1
NzRlNDk2MDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvb3Zl
cnR5cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL292ZXJ0eXBl
Lmh0bWwKQEAgLTYzLDcgKzYzLDcgQEAgZWxzZSB7CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwg
J092ZXJ3cml0ZSBiZWhhdmVzIGxpa2UgaW5zZXJ0IG9uIHJhbmdlIHNlbGVjdGlvbnMnKTsKIAog
ICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gIiYjeDRFMjA7JiN4NEUyMTsmI3g0RTIyOyYjeDRFMjM7
IjsKLSAgICBzZWxlY3Rpb24uY29sbGFwc2UoKTsKKyAgICBzZWxlY3Rpb24uY29sbGFwc2UobnVs
bCk7CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwgJ05ldyBDSksgY29udGVudHMnKTsKIAogICAg
IHNlbGVjdGlvbi5jb2xsYXBzZShlbGVtZW50LCAwKTsKQEAgLTcxLDcgKzcxLDcgQEAgZWxzZSB7
CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwgJ092ZXJ3cml0ZSBDSksgdGV4dCcpOwogCiAgICAg
ZWxlbWVudC5pbm5lckhUTUw9IjxkaXYgaWQ9XCJydGwtZGl2XCIgZGlyPVwicnRsXCI+JmFsZXBo
OyZiZXRoOyZnaW1lbDsmZGFsZXRoOzwvZGl2PiIKLSAgICBzZWxlY3Rpb24uY29sbGFwc2UoKTsK
KyAgICBzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiAgICAgTWFya3VwLmR1bXAoZWxlbWVudCwg
J05ldyBSVEwgY29udGVudHMnKTsKIAogICAgIHNlbGVjdGlvbi5jb2xsYXBzZShlbGVtZW50LCAw
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMv
c2VsZWN0LWFuZC1kcmFnLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291
cmNlcy9zZWxlY3QtYW5kLWRyYWcuanMKaW5kZXggNTY1Nzc5MzUwODVmYzYxNzFjNzc0ODI0MzY2
M2ZmYTJkZDU0OWQ0NC4uNWE3YjY4N2RkNzMyZmU4MmU0NzViODUzZWZiOWY2MTExMDkwM2U3MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9zZWxl
Y3QtYW5kLWRyYWcuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291
cmNlcy9zZWxlY3QtYW5kLWRyYWcuanMKQEAgLTI0LDUgKzI0LDUgQEAgZnVuY3Rpb24gZHJhZ1Nl
bGVjdGlvblRvVGFyZ2V0KHN0YXJ0U2VsZWN0aW9uRWxlbWVudCwgdGFyZ2V0RWxlbWVudCkgewog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldHgsIHRhcmdldHkpOwogICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKIAotICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZSgp
OworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZShudWxsKTsKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2JhZC1pbnB1dC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJhYzZmNzkzN2RlYTIyMDMzOTYyNDM3Zjc2MTUxNDJmZTdiYjI2OTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1Rlc3RzIHBhc3NpbmcgYmFkIGlucHV0IHRvIHRo
ZSBTZWxlY3Rpb24gQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworKiBOb3Qg
cGFzc2luZyBlbm91Z2ggcGFyYW1ldGVycworUEFTUyBzZWxlY3Rpb24uY29sbGFwc2UoKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0
aW9uLmNvbnRhaW5zTm9kZSgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLmV4
dGVuZCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgor
UEFTUyBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uYWRkUmFuZ2UoKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLnNl
dEJhc2VBbmRFeHRlbnQoKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuYm9keSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHNl
bGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmJvZHksIDApIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uc2V0QmFz
ZUFuZEV4dGVudChkb2N1bWVudC5ib2R5LCAwLCBkb2N1bWVudC5ib2R5KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLnNldFBv
c2l0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CisKKyogUGFzc2luZyBudWxsIGZvciBub24tbnVsbGFibGUgcGFyYW1ldGVycworUEFTUyBzZWxl
Y3Rpb24uY29udGFpbnNOb2RlKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdub2RlJykgdG8gU2VsZWN0aW9uLmNvbnRhaW5zTm9kZSBtdXN0IGJlIGFuIGluc3Rh
bmNlIG9mIE5vZGUuCitQQVNTIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbm9kZScpIHRvIFNlbGVjdGlvbi5z
ZWxlY3RBbGxDaGlsZHJlbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIE5vZGUuCitQQVNTIHNlbGVj
dGlvbi5leHRlbmQobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAo
J25vZGUnKSB0byBTZWxlY3Rpb24uZXh0ZW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgTm9kZS4K
K1BBU1Mgc2VsZWN0aW9uLmFkZFJhbmdlKG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEFyZ3VtZW50IDEgKCdyYW5nZScpIHRvIFNlbGVjdGlvbi5hZGRSYW5nZSBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIFJhbmdlLgorUEFTUyBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChudWxsLCAw
LCBkb2N1bWVudC5ib2R5LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAx
ICgnYmFzZU5vZGUnKSB0byBTZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIE5vZGUuCitQQVNTIHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50
LmJvZHksIDAsIG51bGwsIDApIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDMg
KCdleHRlbnROb2RlJykgdG8gU2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQgbXVzdCBiZSBhbiBp
bnN0YW5jZSBvZiBOb2RlLgorUEFTUyBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChudWxsLCAw
LCBudWxsLCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnYmFzZU5v
ZGUnKSB0byBTZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudCBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IE5vZGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlucHV0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MjRjMTdiM2ZhMzViMTgxYzY2YWYwMmYzNDkyZTI2MjA2MzI5MTFhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlucHV0Lmh0bWwKQEAg
LTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIHBhc3NpbmcgYmFkIGlucHV0IHRvIHRoZSBTZWxlY3Rpb24gQVBJ
LiIpOworCit2YXIgc2VsZWN0aW9uID0gZ2V0U2VsZWN0aW9uKCk7CisKK2RlYnVnKCIqIE5vdCBw
YXNzaW5nIGVub3VnaCBwYXJhbWV0ZXJzIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0
aW9uLmNvbGxhcHNlKCkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2Vs
ZWN0aW9uLmNvbnRhaW5zTm9kZSgpIiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5h
bWUoInNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbigpIiwgIlR5cGVFcnJvciIpOworc2hvdWxk
VGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5leHRlbmQoKSIsICJUeXBlRXJyb3IiKTsKK3Nob3Vs
ZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgpIiwgIlR5cGVFcnJvciIpOwor
c2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5hZGRSYW5nZSgpIiwgIlR5cGVFcnJvciIp
Oworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KCkiLCAi
VHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLnNldEJhc2VBbmRF
eHRlbnQoZG9jdW1lbnQuYm9keSkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFt
ZSgic2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuYm9keSwgMCkiLCAiVHlwZUVy
cm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQo
ZG9jdW1lbnQuYm9keSwgMCwgZG9jdW1lbnQuYm9keSkiLCAiVHlwZUVycm9yIik7CitzaG91bGRU
aHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLnNldFBvc2l0aW9uKCkiLCAiVHlwZUVycm9yIik7CisK
K2RlYnVnKCIiKTsKK2RlYnVnKCIqIFBhc3NpbmcgbnVsbCBmb3Igbm9uLW51bGxhYmxlIHBhcmFt
ZXRlcnMiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uY29udGFpbnNOb2RlKG51
bGwpIiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5zZWxl
Y3RBbGxDaGlsZHJlbihudWxsKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1l
KCJzZWxlY3Rpb24uZXh0ZW5kKG51bGwpIiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJv
ck5hbWUoInNlbGVjdGlvbi5hZGRSYW5nZShudWxsKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRo
cm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChudWxsLCAwLCBkb2N1bWVu
dC5ib2R5LCAwKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rp
b24uc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudC5ib2R5LCAwLCBudWxsLCAwKSIsICJUeXBlRXJy
b3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChu
dWxsLCAwLCBudWxsLCAwKSIsICJUeXBlRXJyb3IiKTsKKzwvc2NyaXB0PiAKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5z
Tm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250YWlu
c05vZGUtZXhwZWN0ZWQudHh0CmluZGV4IDlhMjE2NGEyNzgyYTRhNjIwOGVmZGQ5NTgyNzE4YzQy
MjU2MTNiMDQuLmFhZWM2YjJiODdkMjUzNzFjMmIxMWYzZTY5ODM4ZmUyN2ExZTZmYjEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5zTm9kZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGFpbnNOb2RlLWV4
cGVjdGVkLnR4dApAQCAtMSw2ICsxLDQgQEAKIGZvb2JhcmJhegotU3VjY2Vzczogcy5jb250YWlu
c05vZGUobnVsbCwgZmFsc2UpIGlzIGZhbHNlLgotU3VjY2Vzczogcy5jb250YWluc05vZGUobnVs
bCwgdHJ1ZSkgaXMgZmFsc2UuCiBTdWNjZXNzOiBzLmNvbnRhaW5zTm9kZSh0ZXN0RGl2LCBmYWxz
ZSkgaXMgZmFsc2UuCiBTdWNjZXNzOiBzLmNvbnRhaW5zTm9kZSh0ZXN0RGl2LCB0cnVlKSBpcyB0
cnVlLgogU3VjY2Vzczogcy5jb250YWluc05vZGUoc3BhbjEsIGZhbHNlKSBpcyBmYWxzZS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5zTm9kZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vY29udGFpbnNOb2RlLmh0bWwKaW5kZXgg
M2MxNmI2N2VlZmI3YTYwZTZiNjE5Y2MxNzI3YTllZjA4YjkxYWRiMC4uYzNiZjU2ZDVmMjQ1MDk0
N2M3N2EwM2VhNTFkMjVhYzAzNmFmNzk4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vY29udGFpbnNOb2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vY29udGFpbnNOb2RlLmh0bWwKQEAgLTMzLDggKzMzLDYgQEAgci5zZXRTdGFydChz
cGFuMSwgMSk7CiByLnNldEVuZChzcGFuMSwgMik7CiBzLmFkZFJhbmdlKHIpOwogCi1zaG91bGRC
ZSgncy5jb250YWluc05vZGUobnVsbCwgZmFsc2UpJywgZmFsc2UpOwotc2hvdWxkQmUoJ3MuY29u
dGFpbnNOb2RlKG51bGwsIHRydWUpJywgZmFsc2UpOwogc2hvdWxkQmUoJ3MuY29udGFpbnNOb2Rl
KHRlc3REaXYsIGZhbHNlKScsIGZhbHNlKTsKIHNob3VsZEJlKCdzLmNvbnRhaW5zTm9kZSh0ZXN0
RGl2LCB0cnVlKScsIHRydWUpOwogc2hvdWxkQmUoJ3MuY29udGFpbnNOb2RlKHNwYW4xLCBmYWxz
ZSknLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9t
b3ZlLWJ5LWxpbmUtMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3Zl
LWJ5LWxpbmUtMDAzLmh0bWwKaW5kZXggNDg3NmJlZmI5MzEwYzYwMTEyNmM4NGFlMjYzZmMyNDc1
OTBjNGExZS4uZDFhOTZlN2RkYzE0Njc0Yjg5NzlkMzVmNTA5ZDgzNGFmMDQwNDRjZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vbW92ZS1ieS1saW5lLTAwMy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnktbGluZS0wMDMuaHRt
bApAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAogICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKTsKLSAgICAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFy
Z2V0LmZpcnN0Q2hpbGQsIDAsIHRhcmdldC5mcnN0Q2hpbGQsIDApOworICAgICAgICAgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0YXJnZXQuZmlyc3RDaGlsZCwgMCwgdGFyZ2V0
LmZpcnN0Q2hpbGQsIDApOwogICAgICAgICAgICAgbW92ZVNlbGVjdGlvbkZvcndhcmRCeUxpbmVD
b21tYW5kKCk7CiAKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS5pbm5lclRleHQgPSBnZXRTZWxlY3Rpb24oKS5iYXNlT2Zmc2V0ID09IDYzID8gIlBBU1MiIDog
IkZBSUwiOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0
LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qcwppbmRl
eCA5MTg4ZTE3ZGY5YmM5Mzk4MTJhZTM4NDY0M2JhZmQ4YzEwZTIyMTQyLi43NmY5Y2FmMzQyNjJk
ZjQ4Mjg2NzgwN2JmNDc0MTBlODZlNTFhNzllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLURvY3VtZW50VHlwZS5qcwor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0
aW9uLURvY3VtZW50VHlwZS5qcwpAQCAtMywxMCArMywxMCBAQCBkZXNjcmlwdGlvbigiVGVzdCB0
byBjaGVjayBpZiBzZXRCYXNlQW5kRXh0ZW50IGd1YXJkIG5vZGUgd2l0aCBudWxsIG93bmVyIGRv
Y3VtZQogdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHZhciBkb2NUeXBlID0gZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnRUeXBlKCdjJywgJycsICcnKTsKIAot
c2VsLnNldEJhc2VBbmRFeHRlbnQoZG9jVHlwZSk7CitzZWwuc2V0QmFzZUFuZEV4dGVudChkb2NU
eXBlLCAwLCBkb2NUeXBlLCAwKTsKIHNob3VsZEJlTnVsbCgic2VsLmFuY2hvck5vZGUiKTsKIAot
c2VsLnNldEJhc2VBbmRFeHRlbnQobnVsbCwgMCwgZG9jVHlwZSwgMCk7CitzZWwuc2V0QmFzZUFu
ZEV4dGVudChkb2NUeXBlLCAwLCBkb2NUeXBlLCAwKTsKIHNob3VsZEJlTnVsbCgic2VsLmFuY2hv
ck5vZGUiKTsKIAogc2VsLmNvbGxhcHNlKGRvY1R5cGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1jcm9zc2luZy1k
b2N1bWVudC5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9E
T01TZWxlY3Rpb24tY3Jvc3NpbmctZG9jdW1lbnQuanMKaW5kZXggNDhlZWE0Mzg0MzYzNmU3NmU3
MzUzMGZlODA2MWYwODhkNTc1NWI0Mi4uMDg0NmUyZWQ1MTMyNWQwZDg3ZjY3OTMxOTUyMjUxMWEz
ZWQ1MzU2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0
LXRlc3RzL0RPTVNlbGVjdGlvbi1jcm9zc2luZy1kb2N1bWVudC5qcworKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLWNyb3NzaW5nLWRv
Y3VtZW50LmpzCkBAIC0yMiw4ICsyMiw4IEBAIHZhciBtYWluU2VsID0gd2luZG93LmdldFNlbGVj
dGlvbigpOwogCiBmdW5jdGlvbiBjbGVhcigpCiB7Ci0gICAgZm9yZWlnblNlbC5zZXRCYXNlQW5k
RXh0ZW50KG51bGwsIDAsIG51bGwsIDApOwotICAgIG1haW5TZWwuc2V0QmFzZUFuZEV4dGVudChu
dWxsLCAwLCBudWxsLCAwKTsKKyAgICBmb3JlaWduU2VsLnJlbW92ZUFsbFJhbmdlcygpOworICAg
IG1haW5TZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiB9CiAKIG1haW5TZWwuc2V0QmFzZUFuZEV4dGVu
dChmb3JlaWduRWxlbWVudCwgMCwgZm9yZWlnbkVsZW1lbnQsIDApOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWludmFsaWQtb2Zmc2V0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1pbnZhbGlk
LW9mZnNldC1leHBlY3RlZC50eHQKaW5kZXggNzcxOWMyNzczMzIzNzMyMmY3ZDgwMmYyY2IzMzA0
NGJiNTM0Mjg0My4uY2JiZTY2NzQ4MTc1NjVhZjMxYTU5YTk1N2ZiN2I3MWQ2ODZiNzQ1ZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWludmFsaWQt
b2Zmc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
ZWxlY3Rpb24taW52YWxpZC1vZmZzZXQtZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsNCBAQAogWW91
IHNob3VsZCBzZWUgc2l4IE9LcyBiZWxvdyAoYW5kIG5vdCBoYW5nKTogCiBPSwogT0sKLU9LCi1P
SwotT0sKLU9LCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxv
YXQtbGlzdC1jaGFuZ2VkLWJlZm9yZS1sYXlvdXQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvYmxvY2svZmxvYXQvZmxvYXQtbGlzdC1jaGFuZ2VkLWJlZm9yZS1sYXlvdXQtY3Jhc2guaHRt
bAppbmRleCAwYTVkMzJhNmZmOGZiNGE1M2E1M2QzNjQzMDcxZWUzNmI4NjA0MWJhLi44YmZjMWU5
M2U2ZDdmZmRhZjBhZGE4OGNhNWQxYjc3MDZjNzkxYzYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LWxpc3QtY2hhbmdlZC1iZWZvcmUtbGF5b3V0LWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1saXN0LWNoYW5n
ZWQtYmVmb3JlLWxheW91dC1jcmFzaC5odG1sCkBAIC02NCw3ICs2NCw3IEBACiAgICAgICAgIGVs
Ny5zZXRBdHRyaWJ1dGUoJ2lkJywnZWw3JykKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChlbDcpCiAgICAgICAgIGRvY3VtZW50LmRlc2lnbk1vZGU9J29uJwotICAgICAgICB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbDMsIDEpCisgICAgICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGVsMywgMSwgZWwzLCAxKQogICAgICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgnSW5zZXJ0TGluZUJyZWFrJykKICAgICAgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ3NlbGVjdGFsbCcpCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCdzdHJpa2V0aHJvdWdoJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1u
dW1lcmljLXZhbHVlcy1udW1lcmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBlY3Rl
ZC50eHQKaW5kZXggYTY1OWVkZmI2NzdkN2ZjOWFjYzU2MWM1ODc3MmQzNjJkMTA2YzJiNy4uYzYz
NGE0ODQ5MjRiZTdmNWM0NDhkZGQ5NjE1NGNmMDFjODIzNzgyZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51
bWVyaWMtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTU4LDEwICs1OCwxMCBAQCBQQVNTIG5v
bk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY29tcGFyZVBvaW50KGRvY3Vt
ZW50LCB4KScpIGlzICdhbgogUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVS
YW5nZSgpLmlzUG9pbnRJblJhbmdlKGRvY3VtZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2Vk
IChidXQgbm90IG9taXR0ZWQpJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24o
KS5jb2xsYXBzZShkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKIFBBU1Mgbm9u
TnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudCwg
eCwgZG9jdW1lbnQsIDApJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1QQVNTIG5vbk51bWVyaWNQ
b2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3Vt
ZW50LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJworUEFTUyBub25OdW1lcmljUG9saWN5KCdn
ZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LCAwLCBkb2N1bWVudCwgeCkn
KSBpcyAnYW55IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQsIHgpJykgaXMgJ2Fu
eSB0eXBlIGFsbG93ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmV4
dGVuZChkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKLVBBU1Mgbm9uTnVtZXJp
Y1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCh4KScpIGlzICdhbnkgdHlwZSBhbGxv
d2VkJworUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgp
JykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVy
aWNQb2xpY3koJ2RvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oeCknKSBpcyAnYW55IHR5cGUgYWxs
b3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoImEiKS5zcGxpdFRleHQoeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCAo
YnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRl
VHJlZVdhbGtlcihkb2N1bWVudCwgeCwgbnVsbCwgZmFsc2UpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvbm9uLW51
bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCmlu
ZGV4IDhiNDllN2Y5NDQyNDE1YTEyNmYzNWZiMjU2NWQzOWNkOGRlY2YwZGUuLjYxNTIyZWE3ZTRm
MTUzZTYxMmQyYzQ1ZGQyYWJhMjhiNWQ3MDkyMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJz
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9ub24tbnVtZXJpYy12
YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLmpzCkBAIC0zMTIsMTAgKzMxMiwxMCBAQCBzaG91bGRC
ZSgibm9uTnVtZXJpY1BvbGljeSgnZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5pc1BvaW50SW5SYW5n
ZShkb2N1bWVudCwgeCknKQogCiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0
aW9uKCkuY29sbGFwc2UoZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiBz
aG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dChkb2N1bWVudCwgeCwgZG9jdW1lbnQsIDApJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Ci1z
aG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dChkb2N1bWVudCwgMCwgZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7Citz
aG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVu
dChkb2N1bWVudCwgMCwgZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBu
b3Qgb21pdHRlZCknIik7CiBzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9u
KCkuc2V0UG9zaXRpb24oZG9jdW1lbnQsIHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQnIik7CiBz
aG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuZXh0ZW5kKGRvY3VtZW50
LCB4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2dldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCci
KTsKK3Nob3VsZEJlKCJub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0
KHgpJykiLCAiJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknIik7CiAKIC8vIFNR
TFJlc3VsdFNldFJvd0xpc3QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c2VsZWN0c3RhcnQtYnktYXJyb3cta2V5cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c2VsZWN0c3RhcnQtYnktYXJyb3cta2V5cy5odG1sCmluZGV4IDc3NWIxMzhkOTE4Y2ZkZmRkZGY4
NzA1MDA4ZWU0YjhjNzliODQ5MWUuLmU0YTNlNTY2NmY5MmFjZGNiYzllNDQwYWMwOWViNzNiNDYy
NGM0ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5
LWFycm93LWtleXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zZWxlY3RzdGFy
dC1ieS1hcnJvdy1rZXlzLmh0bWwKQEAgLTM5LDcgKzM5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAKICAgICAvLyBPbiBNYWMsIGhvbWUvZW5kIGRvZXNuJ3QgbW92ZSBjYXJldCBzbyBt
YW51YWxseSBzZWxlY3QgIiBXb3JsZCIuCiAgICAgaWYgKG5hdmlnYXRvci5wbGF0Zm9ybS5pbmRl
eE9mKCdNYWMnKSA9PSAwKQotICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudChkaXYuZmlyc3RDaGlsZCwgZGl2LnRleHRDb250ZW50LmluZGV4T2YoJ1dvcmxkJykp
OworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChkaXYuZmly
c3RDaGlsZCwgZGl2LnRleHRDb250ZW50LmluZGV4T2YoJ1dvcmxkJyksIGRpdi5maXJzdENoaWxk
LCBkaXYudGV4dENvbnRlbnQuaW5kZXhPZignV29ybGQnKSArIDUpOwogCiAgICAgZXZlbnRTZW5k
ZXIua2V5RG93bigibGVmdEFycm93Iik7CiAgICAgbG9nUmVzdWx0KCdDaGVjayAoTGVmdCBhcnJv
dyknLCAxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9uYXYtZWxlbWVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25hdi1lbGVtZW50Lmh0bWwKaW5kZXggNzMzOTAw
ZWM2NzQ1MmIwMWI2MzBmMzBmNjAzYTUxNjk5YjY3NjAzNC4uYWZkMGEyMGVmYWU1MWVkMzI2MWIz
MmU1MjY1NjlkYWY5YWI5NjMxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25h
di1lbGVtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9odG1sL25hdi1lbGVtZW50Lmh0
bWwKQEAgLTUwLDcgKzUwLDcgQEAgdmFyIGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVk
aXRhYmxlIik7CiB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0
aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJGb3JtYXRC
bG9jayIsIGZhbHNlLCAibmF2Iik7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5j
b2xsYXBzZShudWxsKTsKIGVkLmJsdXIoKTsKIAogdmFyIHRlc3RzID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInRlc3RBcmVhIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwv
c2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9z
Y3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50LmpzCmluZGV4IDQyZTA3MGU0YmM4NmFmYzFhY2Yy
MTIwMjUzMjllNDk5NmM4Yzk4MDQuLmViMzM5OTU2MGFiNTMzMmI1YmM4YWRmNWNkN2QyZmQ0ZmQ4
ODVjODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvYXJ0
aWNsZS1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMv
YXJ0aWNsZS1lbGVtZW50LmpzCkBAIC0zNSw3ICszNSw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0
YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2Vs
ZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnYXJ0aWNsZScpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7
CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInNwYW4yIikucGFyZW50Tm9kZS5ub2RlTmFtZScsICciQVJUSUNMRSInKTsKIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMKaW5kZXggMTExOTQ0MGE3YWI3
ZGRjZTBkMmM4Yjk1ZTJhNzU4NjNiYzY1NWRmMy4uMTNhZjA5OGRmOWNjYjIyZjlhMWY2ODczZDg5
ZTViNzg0NmZhMmMzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10
ZXN0cy9hc2lkZS1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQt
dGVzdHMvYXNpZGUtZWxlbWVudC5qcwpAQCAtMzUsNyArMzUsNyBAQCBlZGl0YWJsZS5jb250ZW50
RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsK
IHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29t
bWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwgJ2FzaWRlJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2Uo
KTsKK3NlbGVjdGlvbi5jb2xsYXBzZShudWxsKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3BhbjIiKS5wYXJlbnROb2RlLm5vZGVOYW1lJywgJyJBU0lERSInKTsKIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qcwppbmRleCBmMjg5ZTQwMWYy
ZjBhMGY2ZGFhMGEwNzU5NDk3N2EwOTc5ZTczNzZiLi5lNzg4YzNjMzA3ZGU3MjQzY2I2MDA5NWE4
ODlmYTM3ZGVmNmNhODhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0
LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3Jp
cHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMKQEAgLTM4LDcgKzM4LDcgQEAgZWRpdGFibGUuY29u
dGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwogZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdmb290ZXInKTsKLXNlbGVjdGlvbi5jb2xs
YXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogc2hvdWxkQmUoJ2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9kZU5hbWUnLCAnIkZPT1RFUiInKTsK
IGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVudC5qcwppbmRleCA0MGJl
NWI1NWUwZTIyNmZiZGU3Yjc0ZmJkOWVlZjNmNmNjODQ3ZDI1Li4xYTUwMTEzYTI4NzQzZWQxZDYy
ZTY0NTBiYjU1ZDRhNmQxM2VhZjYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwv
c2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanMKQEAgLTM4LDcgKzM4LDcgQEAgZWRpdGFi
bGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwogZG9jdW1l
bnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdoZWFkZXInKTsKLXNlbGVjdGlv
bi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogc2hvdWxkQmUoJ2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9kZU5hbWUnLCAnIkhFQURF
UiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hncm91cC1lbGVtZW50LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxlbWVudC5qcwppbmRl
eCA1YjIzMmRmZmRjM2EzOTE5MGJmOTYyZDQyMjI4ZTYwNWRjZTVhZTUyLi4yZWZkNzg3NWNkMThk
ZTY0NDkzYWUyNGVjYzgzMjg2ODRlOWQzMDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2h0bWwvc2NyaXB0LXRlc3RzL2hncm91cC1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaHRtbC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVsZW1lbnQuanMKQEAgLTM2LDcgKzM2LDcgQEAg
ZWRpdGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwog
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdoZ3JvdXAnKTsKLXNl
bGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogc2hvdWxkQmUo
J2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9kZU5hbWUnLCAn
IkhHUk9VUCInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL21haW4tZWxlbWVudC5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvbWFpbi1lbGVtZW50LmpzCmlu
ZGV4IDZlNDY3Y2Y1ODQ1MjEwZmI0ZGNkNDIwOGViMWQ3M2Y1MzM1ZjliMWYuLmE2OGM2ZDVhM2Uz
MzNiZWRmYmZlYmFmOGU0NDk3YjZiMzk1OTUxZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaHRtbC9zY3JpcHQtdGVzdHMvbWFpbi1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaHRtbC9zY3JpcHQtdGVzdHMvbWFpbi1lbGVtZW50LmpzCkBAIC0zNSw3ICszNSw3IEBAIGVk
aXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9uID0gd2luZG93Lmdl
dFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRhYmxlKTsKIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnbWFpbicpOwotc2VsZWN0
aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBzaG91bGRCZSgnZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50Tm9kZS5ub2RlTmFtZScsICciTUFJ
TiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24tZWxlbWVudC5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvc2VjdGlvbi1lbGVtZW50LmpzCmlu
ZGV4IGE1NzY2M2YyMzU0ZDBkNDMzMmI1OWMwZjRkOTdiMzQ3ZDgwNjNlZjQuLjlkZTE2MmUxYmRi
NDY4N2ZiYTQ5YTg5MjRjM2FmYzg5NDllYjllOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaHRtbC9zY3JpcHQtdGVzdHMvc2VjdGlvbi1lbGVtZW50LmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvc2VjdGlvbi1lbGVtZW50LmpzCkBAIC0zNSw3ICszNSw3
IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9uID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRhYmxl
KTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnc2VjdGlvbicp
Owotc2VsZWN0aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBzaG91
bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50Tm9kZS5ub2RlTmFt
ZScsICciU0VDVElPTiInKTsKIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWRpdGFibGUpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hY2Nlc3NpYmlsaXR5L2V2
ZW50LW9uLWRlbGV0ZWQtaWZyYW1lLWNhdXNlcy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvYmxpbmsvYWNjZXNzaWJpbGl0eS9ldmVudC1vbi1kZWxldGVkLWlmcmFtZS1jYXVzZXMt
Y3Jhc2guaHRtbAppbmRleCBlNzBhOTY4ZTE2NGIyOWEwYTY0YzViMjViNzhiNzVjYTU1Yjc4NDY2
Li4xOWUxYTE0Njg3N2YxZmNlNWM0MzEwZWYyNTFmNmY5ZjUzOGE3N2FhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9hY2Nlc3NpYmlsaXR5L2V2ZW50LW9uLWRlbGV0ZWQt
aWZyYW1lLWNhdXNlcy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5r
L2FjY2Vzc2liaWxpdHkvZXZlbnQtb24tZGVsZXRlZC1pZnJhbWUtY2F1c2VzLWNyYXNoLmh0bWwK
QEAgLTE0LDcgKzE0LDcgQEAKICAgICB2YXIgcyA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAg
ICB2YXIgcDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbTEiKTsKICAgICB2YXIgcDIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbTIiKTsKLSAgICBzLnNldEJhc2VBbmRFeHRl
bnQocDEsIDAsIHAyKTsKKyAgICBzLnNldEJhc2VBbmRFeHRlbnQocDEsIDAsIHAyLCAwKTsKICAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50Iik7CiAKICAgICAvLyBUaGlzIGNvZGUgZG9l
c24ndCBkbyBhbnl0aGluZyBpbml0aWFsbHksIGJ1dCB0aGUgY29kZSBiZWxvdyBjcmVhdGVzIGFu
IGlmcmFtZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZWRpdGluZy9h
cHBseS1pbmxpbmUtc3R5bGUtdG8tZWxlbWVudC13aXRoLW5vLXJlbmRlcmVyLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9lZGl0aW5nL2FwcGx5LWlubGluZS1zdHlsZS10
by1lbGVtZW50LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2guaHRtbAppbmRleCA4MzVhZWIzMDY4Y2Yy
Y2UxODU5YTMyNjZmOTVkYjE0MDRiNTQ2YTg3Li45YmZhN2ZkOGIyNTFhZTE2MDRjZTM4ZGFhNzU1
ZGI4NDZjNWQ1OGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9lZGl0
aW5nL2FwcGx5LWlubGluZS1zdHlsZS10by1lbGVtZW50LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2gu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9lZGl0aW5nL2FwcGx5LWlubGlu
ZS1zdHlsZS10by1lbGVtZW50LXdpdGgtbm8tcmVuZGVyZXItY3Jhc2guaHRtbApAQCAtMTYsNyAr
MTYsNyBAQCBvbmxvYWQgPSBmdW5jdGlvbigpIHsKIAogICAgIGlucHV0PWRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2lucHV0Jyk7CiAgICAgdGV4dFBhdGgucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo
aW5wdXQsIHRleHRQYXRoKTsKLSAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChpbnB1dCwgNCk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQoaW5wdXQsIDQsIGlucHV0LCA0KTsKIAogICAgIGRvY3VtZW50LmRlc2lnbk1vZGU9J29uJzsK
ICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnVHJhbnNwb3NlJyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3VuaWNvZGUtaW4tdHNwYW4tbXVsdGktc3ZnLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VuaWNvZGUtaW4tdHNwYW4tbXVsdGktc3ZnLWNyYXNo
Lmh0bWwKaW5kZXggYzhlYTNkNDc2NTM3M2JmZTA0NjRlNDdiNDMzZGMwNTlkOGU5NTUwOS4uNzUx
NDFjODBmMDQ1Y2MyODZjNjBhMDg0ODdhNjYyYmM5MWIzOTc0NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS91bmljb2RlLWluLXRzcGFuLW11bHRpLXN2Zy1jcmFzaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdW5pY29kZS1pbi10c3Bhbi1tdWx0aS1zdmctY3Jh
c2guaHRtbApAQCAtMTQsNyArMTQsNyBAQAogICAgICAgZG9jdW1lbnQuZGVzaWduTW9kZT0nb24n
OwogICAgICAgZmlsdGVySW5GaXJzdFJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmls
dGVySW5GaXJzdFJvb3QnKTsKICAgICAgIHVzZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndXNlRWxlbWVudCcpOwotICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoZmlsdGVySW5GaXJzdFJvb3QsIDApOworICAgICAgd2luZG93LmdldFNlbGVjdGlv
bigpLnNldEJhc2VBbmRFeHRlbnQoZmlsdGVySW5GaXJzdFJvb3QsIDAsIGZpbHRlckluRmlyc3RS
b290LCAwKTsKICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3J3YXJkRGVsZXRlJyk7CiAg
ICAgICBkb2N1bWVudC5kZXNpZ25Nb2RlPSdvZmYnOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285579</attachid>
            <date>2016-08-08 13:02:45 -0700</date>
            <delta_ts>2016-08-08 13:31:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160663-20160808130113.patch</filename>
            <type>text/plain</type>
            <size>48217</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIyYjFiNWI1YzlhYmQ2
MmYyZjVmZTVkNjZkMzlkZjUyMDEyN2EzNS4uZGRmYjkwNWYzMWRhMjM2OGRiNzdiNjY4NmUwMDBi
ZDIzMDI3OGI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDE2LTA4LTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWxpZ24gU2VsZWN0aW9uIEFQ
SSB3aXRoIHRoZSBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA2NjMKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCisKKyAgICAgICAgQWxpZ24gU2VsZWN0aW9uIEFQSSB3aXRoIHRoZSBzcGVjaWZpY2F0aW9u
OgorICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3Rpb24tYXBpLyNpZGwtZGVm
LVNlbGVjdGlvbgorCisgICAgICAgIEluIHBhcnRpY3VsYXIsIHRoZSBmb2xsb3dpbmcgY2hhbmdl
cyB3ZXJlIG1hZGU6CisgICAgICAgIC0gTWFyayBwYXJhbWV0ZXJzIGFzIG5vbi1udWxsYWJsZSB3
aGVuIHRoZXkgc2hvdWxkIGJlLgorICAgICAgICAtIE1hcmsgcGFyYW1ldGVycyBhcyBtYW5kYXRv
cnkgd2hlbiB0aGV5IHNob3VsZCBiZS4KKyAgICAgICAgLSBVc2UgInVuc2lnbmVkIGxvbmciIHR5
cGUgZm9yIG9mZnNldHMgaW5zdGVhZCBvZiAibG9uZyIuCisKKyAgICAgICAgVGhpcyBhbGlnbnMg
b3VyIGJlaGF2aW9yIHdpdGggRmlyZWZveCBhbmQgQ2hyb21lLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgTm9kZSBwYXJhbWV0ZXJzIHRvIHNldEJhc2VBbmRFeHRlbnQoKSBvcGVyYXRpb24gd2Vy
ZSBrZXB0CisgICAgICAgIG51bGxhYmxlLCB3aGljaCBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lm
aWNhdGlvbi4gVGhpcyBpcyBpbnRlbnRpb25hbAorICAgICAgICBhcyBJIHdvcnJ5IGFib3V0IGNv
bXBhdGliaWxpdHkgcmlzaywgZXNwZWNpYWxseSBjb25zaWRlcmluZyB0aGV5IGFyZQorICAgICAg
ICBzdGlsbCBudWxsYWJsZSBpbiBDaHJvbWUuIE9ubHkgRmlyZWZveCBtYXJrcyB0aGVtIGFzIG5v
bi1udWxsYWJsZS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9iYWQtaW5wdXQu
aHRtbAorCisgICAgICAgICogZG9tL1Bvc2l0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3Np
dGlvbjo6TGVnYWN5RWRpdGluZ09mZnNldDo6dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6UG9z
aXRpb246OkxlZ2FjeUVkaXRpbmdPZmZzZXQ6OkxlZ2FjeUVkaXRpbmdPZmZzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKToKKyAgICAgICAgKiBwYWdl
L0RPTVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmFuY2hv
ck9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmZvY3VzT2Zmc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YmFzZU9mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpET01TZWxlY3Rpb246OmV4dGVudE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZWxlY3Rpb246OnJhbmdlQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9u
Ojpjb2xsYXBzZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OnNldEJhc2VBbmRF
eHRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpzZXRQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmV4dGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpET01TZWxlY3Rpb246OmdldFJhbmdlQXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0
aW9uOjphZGRSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmRlbGV0ZUZy
b21Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OmNvbnRhaW5zTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZWxlY3Rpb246OnNlbGVjdEFsbENoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6c2hhZG93QWRqdXN0ZWRPZmZzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjptb2RpZnkpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpzaGFkb3dBZGp1c3RlZE5vZGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjppc1ZhbGlkRm9yUG9zaXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmg6CisgICAgICAgICogcGFnZS9ET01T
ZWxlY3Rpb24uaWRsOgorCisyMDE2LTA4LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKICAgICAgICAgUmVncmVzc2lvbihyMjA0MjM5KTogQ2F1c2VkIGZsYWt5IGNyYXNoZXMg
dW5kZXIgfkRhdGFiYXNlKCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MDY2NQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjc3NDgwNjU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5oCmluZGV4IDU4YWQwNGQ1NDVhN2RhYTEzODAyYTM1OTU2NzIyNWMyYmYxZjgw
NjIuLjJlMTE4OWVmNTFkNzlkNGM2MGQ5Mzk3ZjAxNDY5MDE5NDhhYzM0MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5oCkBAIC03MiwxNCArNzIsMTYgQEAgcHVibGljOgogICAgIC8vIEZvciBjcmVhdGlu
ZyBsZWdhY3kgZWRpdGluZyBwb3NpdGlvbnM6IChBbmNob3IgdHlwZSB3aWxsIGJlIGRldGVybWlu
ZWQgZnJvbSBlZGl0aW5nSWdub3Jlc0NvbnRlbnQobm9kZSkpCiAgICAgY2xhc3MgTGVnYWN5RWRp
dGluZ09mZnNldCB7CiAgICAgcHVibGljOgotICAgICAgICBpbnQgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX29mZnNldDsgfQorICAgICAgICB1bnNpZ25lZCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb2Zmc2V0OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBMZWdhY3lFZGl0
aW5nT2Zmc2V0KGludCBvZmZzZXQpIDogbV9vZmZzZXQob2Zmc2V0KSB7IH0KKyAgICAgICAgZXhw
bGljaXQgTGVnYWN5RWRpdGluZ09mZnNldCh1bnNpZ25lZCBvZmZzZXQpCisgICAgICAgICAgICA6
IG1fb2Zmc2V0KG9mZnNldCkKKyAgICAgICAgeyB9CiAKLSAgICAgICAgZnJpZW5kIFBvc2l0aW9u
IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBpbnQgb2Zmc2V0
KTsKKyAgICAgICAgZnJpZW5kIFBvc2l0aW9uIGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihQ
YXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBvZmZzZXQpOwogCi0gICAgICAgIGludCBtX29mZnNl
dDsKKyAgICAgICAgdW5zaWduZWQgbV9vZmZzZXQ7CiAgICAgfTsKICAgICBXRUJDT1JFX0VYUE9S
VCBQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZz
ZXQpOwogCkBAIC0yMjgsNyArMjMwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNMZWdhY3lF
ZGl0aW5nUG9zaXRpb24gOiAxOwogfTsKIAotaW5saW5lIFBvc2l0aW9uIGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIGludCBvZmZzZXQpCitpbmxpbmUg
UG9zaXRpb24gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSwgdW5zaWduZWQgb2Zmc2V0KQogewogICAgIHJldHVybiBQb3NpdGlvbihub2RlLCBQb3NpdGlv
bjo6TGVnYWN5RWRpdGluZ09mZnNldChvZmZzZXQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2Vs
ZWN0aW9uLmNwcAppbmRleCA5MTdkNWU1YWFkZGNlMjUwMzFmZmZlZGIwMmE2MGU3ZjU4N2FjZjI1
Li45ZjBmZjg2ZGI5YTMyMDZkNDFmZTNjYzJjMWJjNWRlOTU4NjQ4MzQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01TZWxlY3Rpb24uY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgTm9kZSogRE9NU2VsZWN0
aW9uOjphbmNob3JOb2RlKCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93QWRqdXN0ZWROb2RlKGFu
Y2hvclBvc2l0aW9uKHZpc2libGVTZWxlY3Rpb24oKSkpOwogfQogCi1pbnQgRE9NU2VsZWN0aW9u
OjphbmNob3JPZmZzZXQoKSBjb25zdAordW5zaWduZWQgRE9NU2VsZWN0aW9uOjphbmNob3JPZmZz
ZXQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0x
MTYsNyArMTE2LDcgQEAgTm9kZSogRE9NU2VsZWN0aW9uOjpmb2N1c05vZGUoKSBjb25zdAogICAg
IHJldHVybiBzaGFkb3dBZGp1c3RlZE5vZGUoZm9jdXNQb3NpdGlvbih2aXNpYmxlU2VsZWN0aW9u
KCkpKTsKIH0KIAotaW50IERPTVNlbGVjdGlvbjo6Zm9jdXNPZmZzZXQoKSBjb25zdAordW5zaWdu
ZWQgRE9NU2VsZWN0aW9uOjpmb2N1c09mZnNldCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1l
KQogICAgICAgICByZXR1cm4gMDsKQEAgLTEzMiw3ICsxMzIsNyBAQCBOb2RlKiBET01TZWxlY3Rp
b246OmJhc2VOb2RlKCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93QWRqdXN0ZWROb2RlKGJhc2VQ
b3NpdGlvbih2aXNpYmxlU2VsZWN0aW9uKCkpKTsKIH0KIAotaW50IERPTVNlbGVjdGlvbjo6YmFz
ZU9mZnNldCgpIGNvbnN0Cit1bnNpZ25lZCBET01TZWxlY3Rpb246OmJhc2VPZmZzZXQoKSBjb25z
dAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNDgsNyArMTQ4
LDcgQEAgTm9kZSogRE9NU2VsZWN0aW9uOjpleHRlbnROb2RlKCkgY29uc3QKICAgICByZXR1cm4g
c2hhZG93QWRqdXN0ZWROb2RlKGV4dGVudFBvc2l0aW9uKHZpc2libGVTZWxlY3Rpb24oKSkpOwog
fQogCi1pbnQgRE9NU2VsZWN0aW9uOjpleHRlbnRPZmZzZXQoKSBjb25zdAordW5zaWduZWQgRE9N
U2VsZWN0aW9uOjpleHRlbnRPZmZzZXQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAg
ICAgICAgcmV0dXJuIDA7CkBAIC0xODAsMjMgKzE4MCwxOCBAQCBTdHJpbmcgRE9NU2VsZWN0aW9u
Ojp0eXBlKCkgY29uc3QKICAgICByZXR1cm4gIlJhbmdlIjsKIH0KIAotaW50IERPTVNlbGVjdGlv
bjo6cmFuZ2VDb3VudCgpIGNvbnN0Cit1bnNpZ25lZCBET01TZWxlY3Rpb246OnJhbmdlQ291bnQo
KSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0
dXJuIG1fZnJhbWUtPnNlbGVjdGlvbigpLmlzTm9uZSgpID8gMCA6IDE7CiB9CiAKLXZvaWQgRE9N
U2VsZWN0aW9uOjpjb2xsYXBzZShOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3ZvaWQgRE9NU2VsZWN0aW9uOjpjb2xsYXBzZShOb2RlKiBub2RlLCB1bnNpZ25lZCBv
ZmZzZXQpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
b2Zmc2V0IDwgMCkgewotICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCiAgICAgaWYgKCFpc1ZhbGlkRm9yUG9zaXRpb24obm9kZSkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMjQxLDE2ICsyMzYsMTEgQEAgdm9pZCBET01TZWxlY3Rpb246OmVtcHR5
KCkKICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5jbGVhcigpOwogfQogCi12b2lkIERPTVNlbGVj
dGlvbjo6c2V0QmFzZUFuZEV4dGVudChOb2RlKiBiYXNlTm9kZSwgaW50IGJhc2VPZmZzZXQsIE5v
ZGUqIGV4dGVudE5vZGUsIGludCBleHRlbnRPZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBET01TZWxlY3Rpb246OnNldEJhc2VBbmRFeHRlbnQoTm9kZSogYmFzZU5vZGUsIHVuc2lnbmVk
IGJhc2VPZmZzZXQsIE5vZGUqIGV4dGVudE5vZGUsIHVuc2lnbmVkIGV4dGVudE9mZnNldCkKIHsK
ICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChiYXNlT2Zmc2V0
IDwgMCB8fCBleHRlbnRPZmZzZXQgPCAwKSB7Ci0gICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBpZiAoIWlzVmFsaWRGb3JQb3NpdGlvbihi
YXNlTm9kZSkgfHwgIWlzVmFsaWRGb3JQb3NpdGlvbihleHRlbnROb2RlKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0yNTgsMTQgKzI0OCwxMCBAQCB2b2lkIERPTVNlbGVjdGlvbjo6c2V0QmFzZUFu
ZEV4dGVudChOb2RlKiBiYXNlTm9kZSwgaW50IGJhc2VPZmZzZXQsIE5vZGUqIGV4dGVudAogICAg
IG1fZnJhbWUtPnNlbGVjdGlvbigpLm1vdmVUbyhjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
YmFzZU5vZGUsIGJhc2VPZmZzZXQpLCBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oZXh0ZW50
Tm9kZSwgZXh0ZW50T2Zmc2V0KSwgRE9XTlNUUkVBTSk7CiB9CiAKLXZvaWQgRE9NU2VsZWN0aW9u
OjpzZXRQb3NpdGlvbihOb2RlKiBub2RlLCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykK
K3ZvaWQgRE9NU2VsZWN0aW9uOjpzZXRQb3NpdGlvbihOb2RlKiBub2RlLCB1bnNpZ25lZCBvZmZz
ZXQpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG9mZnNl
dCA8IDApIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KIAogICAgIGlmICghaXNWYWxpZEZvclBvc2l0aW9uKG5vZGUpKQogICAgICAgICByZXR1
cm47CkBAIC0zMjQsMTIgKzMxMCwxMiBAQCB2b2lkIERPTVNlbGVjdGlvbjo6bW9kaWZ5KGNvbnN0
IFN0cmluZyYgYWx0ZXJTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaQogICAgIG1f
ZnJhbWUtPnNlbGVjdGlvbigpLm1vZGlmeShhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0eSk7
CiB9CiAKLXZvaWQgRE9NU2VsZWN0aW9uOjpleHRlbmQoTm9kZSYgbm9kZSwgaW50IG9mZnNldCwg
RXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIERPTVNlbGVjdGlvbjo6ZXh0ZW5kKE5vZGUmIG5vZGUs
IHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFtX2ZyYW1l
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPiAobm9k
ZS5vZmZzZXRJbkNoYXJhY3RlcnMoKSA/IGNhcmV0TWF4T2Zmc2V0KG5vZGUpIDogc3RhdGljX2Nh
c3Q8aW50Pihub2RlLmNvdW50Q2hpbGROb2RlcygpKSkpIHsKKyAgICBpZiAob2Zmc2V0ID4gKG5v
ZGUub2Zmc2V0SW5DaGFyYWN0ZXJzKCkgPyBjYXJldE1heE9mZnNldChub2RlKSA6IG5vZGUuY291
bnRDaGlsZE5vZGVzKCkpKSB7CiAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0zNDEsMTIgKzMyNywxMiBAQCB2b2lkIERPTVNlbGVjdGlvbjo6
ZXh0ZW5kKE5vZGUmIG5vZGUsIGludCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIG1f
ZnJhbWUtPnNlbGVjdGlvbigpLnNldEV4dGVudChjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24o
Jm5vZGUsIG9mZnNldCksIERPV05TVFJFQU0pOwogfQogCi1SZWZQdHI8UmFuZ2U+IERPTVNlbGVj
dGlvbjo6Z2V0UmFuZ2VBdChpbnQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUmVmUHRyPFJh
bmdlPiBET01TZWxlY3Rpb246OmdldFJhbmdlQXQodW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
LSAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHJhbmdlQ291bnQoKSkgeworICAgIGlmIChp
bmRleCA+PSByYW5nZUNvdW50KCkpIHsKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMzcwLDQ1ICszNTYsNDIgQEAgdm9pZCBE
T01TZWxlY3Rpb246OnJlbW92ZUFsbFJhbmdlcygpCiAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCku
Y2xlYXIoKTsKIH0KIAotdm9pZCBET01TZWxlY3Rpb246OmFkZFJhbmdlKFJhbmdlKiByKQordm9p
ZCBET01TZWxlY3Rpb246OmFkZFJhbmdlKFJhbmdlJiByYW5nZSkKIHsKICAgICBpZiAoIW1fZnJh
bWUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIXIpCi0gICAgICAgIHJldHVybjsKIAogICAg
IEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKTsKLQogICAg
IGlmIChzZWxlY3Rpb24uaXNOb25lKCkpIHsKLSAgICAgICAgc2VsZWN0aW9uLm1vdmVUbyhyKTsK
KyAgICAgICAgc2VsZWN0aW9uLm1vdmVUbygmcmFuZ2UpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGlvbi5zZWxlY3Rpb24oKS50b05v
cm1hbGl6ZWRSYW5nZSgpOwotICAgIGlmICghcmFuZ2UpCisgICAgUmVmUHRyPFJhbmdlPiBub3Jt
YWxpemVkUmFuZ2UgPSBzZWxlY3Rpb24uc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsK
KyAgICBpZiAoIW5vcm1hbGl6ZWRSYW5nZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHIt
PmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6U1RBUlRfVE9fU1RBUlQsICpyYW5nZSwgSUdO
T1JFX0VYQ0VQVElPTikgPT0gLTEpIHsKKyAgICBpZiAocmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9p
bnRzKFJhbmdlOjpTVEFSVF9UT19TVEFSVCwgKm5vcm1hbGl6ZWRSYW5nZSwgSUdOT1JFX0VYQ0VQ
VElPTikgPT0gLTEpIHsKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBkaXNjb250aWd1b3Vz
IHNlbGVjdGlvbi4gV2UgZG9uJ3QgZG8gYW55dGhpbmcgaWYgciBhbmQgcmFuZ2UgZG9uJ3QgaW50
ZXJzZWN0LgotICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpTVEFS
VF9UT19FTkQsICpyYW5nZSwgSUdOT1JFX0VYQ0VQVElPTikgPiAtMSkgewotICAgICAgICAgICAg
aWYgKHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX0VORCwgKnJhbmdlLCBJ
R05PUkVfRVhDRVBUSU9OKSA9PSAtMSkgeworICAgICAgICBpZiAocmFuZ2UuY29tcGFyZUJvdW5k
YXJ5UG9pbnRzKFJhbmdlOjpTVEFSVF9UT19FTkQsICpub3JtYWxpemVkUmFuZ2UsIElHTk9SRV9F
WENFUFRJT04pID4gLTEpIHsKKyAgICAgICAgICAgIGlmIChyYW5nZS5jb21wYXJlQm91bmRhcnlQ
b2ludHMoUmFuZ2U6OkVORF9UT19FTkQsICpub3JtYWxpemVkUmFuZ2UsIElHTk9SRV9FWENFUFRJ
T04pID09IC0xKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIHJhbmdlIGFuZCBy
IGludGVyc2VjdC4KLSAgICAgICAgICAgICAgICBzZWxlY3Rpb24ubW92ZVRvKHItPnN0YXJ0UG9z
aXRpb24oKSwgcmFuZ2UtPmVuZFBvc2l0aW9uKCksIERPV05TVFJFQU0pOworICAgICAgICAgICAg
ICAgIHNlbGVjdGlvbi5tb3ZlVG8ocmFuZ2Uuc3RhcnRQb3NpdGlvbigpLCBub3JtYWxpemVkUmFu
Z2UtPmVuZFBvc2l0aW9uKCksIERPV05TVFJFQU0pOwogICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAvLyByIGNvbnRhaW5zIHRoZSBvcmlnaW5hbCByYW5nZS4KLSAgICAgICAg
ICAgICAgICBzZWxlY3Rpb24ubW92ZVRvKHIpOworICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5t
b3ZlVG8oJnJhbmdlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgZGlzY29udGlndW91cyBzZWxlY3Rpb24uIFdlIGRv
bid0IGRvIGFueXRoaW5nIGlmIHIgYW5kIHJhbmdlIGRvbid0IGludGVyc2VjdC4KICAgICAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGlmIChyLT5jb21wYXJlQm91bmRhcnlQb2lu
dHMoUmFuZ2U6OkVORF9UT19TVEFSVCwgKnJhbmdlLCBlYykgPCAxICYmICFlYykgewotICAgICAg
ICAgICAgaWYgKHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX0VORCwgKnJh
bmdlLCBJR05PUkVfRVhDRVBUSU9OKSA9PSAtMSkgeworICAgICAgICBpZiAocmFuZ2UuY29tcGFy
ZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpFTkRfVE9fU1RBUlQsICpub3JtYWxpemVkUmFuZ2UsIGVj
KSA8IDEgJiYgIWVjKSB7CisgICAgICAgICAgICBpZiAocmFuZ2UuY29tcGFyZUJvdW5kYXJ5UG9p
bnRzKFJhbmdlOjpFTkRfVE9fRU5ELCAqbm9ybWFsaXplZFJhbmdlLCBJR05PUkVfRVhDRVBUSU9O
KSA9PSAtMSkgewogICAgICAgICAgICAgICAgIC8vIFRoZSBvcmlnaW5hbCByYW5nZSBjb250YWlu
cyByLgotICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8ocmFuZ2UuZ2V0KCkpOworICAg
ICAgICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8obm9ybWFsaXplZFJhbmdlLmdldCgpKTsKICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIHJhbmdl
IGFuZCByIGludGVyc2VjdC4KLSAgICAgICAgICAgICAgICBzZWxlY3Rpb24ubW92ZVRvKHJhbmdl
LT5zdGFydFBvc2l0aW9uKCksIHItPmVuZFBvc2l0aW9uKCksIERPV05TVFJFQU0pOworICAgICAg
ICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8obm9ybWFsaXplZFJhbmdlLT5zdGFydFBvc2l0aW9u
KCksIHJhbmdlLmVuZFBvc2l0aW9uKCksIERPV05TVFJFQU0pOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQpAQCAtNDMwLDI2ICs0MTMsMjYgQEAgdm9pZCBET01TZWxlY3Rpb246OmRl
bGV0ZUZyb21Eb2N1bWVudCgpCiAKICAgICBzZWxlY3RlZFJhbmdlLT5kZWxldGVDb250ZW50cyhB
U1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAgIHNldEJhc2VBbmRFeHRlbnQoJnNlbGVjdGVkUmFu
Z2UtPnN0YXJ0Q29udGFpbmVyKCksIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksICZzZWxl
Y3RlZFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBzZWxlY3RlZFJhbmdlLT5zdGFydE9mZnNldCgp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBzZXRCYXNlQW5kRXh0ZW50KCZzZWxlY3RlZFJh
bmdlLT5zdGFydENvbnRhaW5lcigpLCBzZWxlY3RlZFJhbmdlLT5zdGFydE9mZnNldCgpLCAmc2Vs
ZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc2VsZWN0ZWRSYW5nZS0+c3RhcnRPZmZzZXQo
KSk7CiB9CiAKLWJvb2wgRE9NU2VsZWN0aW9uOjpjb250YWluc05vZGUoTm9kZSogbiwgYm9vbCBh
bGxvd1BhcnRpYWwpIGNvbnN0Citib29sIERPTVNlbGVjdGlvbjo6Y29udGFpbnNOb2RlKE5vZGUm
IG5vZGUsIGJvb2wgYWxsb3dQYXJ0aWFsKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiA9IG1f
ZnJhbWUtPnNlbGVjdGlvbigpOwogCi0gICAgaWYgKCFuIHx8IG1fZnJhbWUtPmRvY3VtZW50KCkg
IT0gJm4tPmRvY3VtZW50KCkgfHwgc2VsZWN0aW9uLmlzTm9uZSgpKQorICAgIGlmIChtX2ZyYW1l
LT5kb2N1bWVudCgpICE9ICZub2RlLmRvY3VtZW50KCkgfHwgc2VsZWN0aW9uLmlzTm9uZSgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG47CisgICAg
UmVmPE5vZGU+IHByb3RlY3RlZE5vZGUobm9kZSk7CiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rl
ZFJhbmdlID0gc2VsZWN0aW9uLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAKLSAg
ICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOworICAgIENv
bnRhaW5lck5vZGUqIHBhcmVudE5vZGUgPSBub2RlLnBhcmVudE5vZGUoKTsKICAgICBpZiAoIXBh
cmVudE5vZGUgfHwgIXBhcmVudE5vZGUtPmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHVuc2lnbmVkIG5vZGVJbmRleCA9IG5vZGUtPmNvbXB1dGVOb2RlSW5kZXgoKTsK
KyAgICB1bnNpZ25lZCBub2RlSW5kZXggPSBub2RlLmNvbXB1dGVOb2RlSW5kZXgoKTsKIAogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGJvb2wgbm9kZUZ1bGx5U2VsZWN0ZWQgPSBSYW5n
ZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKHBhcmVudE5vZGUsIG5vZGVJbmRleCwgJnNlbGVjdGVk
UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIHNlbGVjdGVkUmFuZ2UtPnN0YXJ0T2Zmc2V0KCksIGVj
KSA+PSAwICYmICFlYwpAQCAtNDY0LDE2ICs0NDcsMTMgQEAgYm9vbCBET01TZWxlY3Rpb246OmNv
bnRhaW5zTm9kZShOb2RlKiBuLCBib29sIGFsbG93UGFydGlhbCkgY29uc3QKICAgICBpZiAobm9k
ZUZ1bGx5VW5zZWxlY3RlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGFs
bG93UGFydGlhbCB8fCBub2RlLT5pc1RleHROb2RlKCk7CisgICAgcmV0dXJuIGFsbG93UGFydGlh
bCB8fCBub2RlLmlzVGV4dE5vZGUoKTsKIH0KIAotdm9pZCBET01TZWxlY3Rpb246OnNlbGVjdEFs
bENoaWxkcmVuKE5vZGUqIG4sIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBET01TZWxlY3Rpb246
OnNlbGVjdEFsbENoaWxkcmVuKE5vZGUmIG5vZGUpCiB7Ci0gICAgaWYgKCFuKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICAvLyBUaGlzIGRvZXNuJ3QgKGFuZCBzaG91bGRuJ3QpIHNlbGVjdCB0ZXh0
IG5vZGUgY2hhcmFjdGVycy4KLSAgICBzZXRCYXNlQW5kRXh0ZW50KG4sIDAsIG4sIG4tPmNvdW50
Q2hpbGROb2RlcygpLCBlYyk7CisgICAgc2V0QmFzZUFuZEV4dGVudCgmbm9kZSwgMCwgJm5vZGUs
IG5vZGUuY291bnRDaGlsZE5vZGVzKCkpOwogfQogCiBTdHJpbmcgRE9NU2VsZWN0aW9uOjp0b1N0
cmluZygpCkBAIC01MDEsNyArNDgxLDcgQEAgTm9kZSogRE9NU2VsZWN0aW9uOjpzaGFkb3dBZGp1
c3RlZE5vZGUoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKSBjb25zdAogICAgIHJldHVybiBhZGp1
c3RlZE5vZGUtPnBhcmVudE5vZGVHdWFyYW50ZWVkSG9zdEZyZWUoKTsKIH0KIAotaW50IERPTVNl
bGVjdGlvbjo6c2hhZG93QWRqdXN0ZWRPZmZzZXQoY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uKSBj
b25zdAordW5zaWduZWQgRE9NU2VsZWN0aW9uOjpzaGFkb3dBZGp1c3RlZE9mZnNldChjb25zdCBQ
b3NpdGlvbiYgcG9zaXRpb24pIGNvbnN0CiB7CiAgICAgaWYgKHBvc2l0aW9uLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2Vs
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5oCmluZGV4IDEwOTUw
NWIwNThmMDg3Mjg2MDkxY2MwY2VkYmNmZTE0YTVhZmUyNDYuLjJkMTFlODlhMWY5MjhlZDYxM2Q2
ZTM0MDdjNjNiMjMyZWQ4YTdkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
U2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaApAQCAt
NTcsMTEgKzU3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhlc2UgbWV0
aG9kcyByZXR1cm4gdGhlIHZhbGlkIGVxdWl2YWxlbnRzIG9mIGludGVybmFsIGVkaXRpbmcgcG9z
aXRpb25zLgogICAgICAgICBOb2RlKiBiYXNlTm9kZSgpIGNvbnN0OwogICAgICAgICBOb2RlKiBl
eHRlbnROb2RlKCkgY29uc3Q7Ci0gICAgICAgIGludCBiYXNlT2Zmc2V0KCkgY29uc3Q7Ci0gICAg
ICAgIGludCBleHRlbnRPZmZzZXQoKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgYmFzZU9mZnNl
dCgpIGNvbnN0OworICAgICAgICB1bnNpZ25lZCBleHRlbnRPZmZzZXQoKSBjb25zdDsKICAgICAg
ICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRCYXNlQW5kRXh0ZW50KE5v
ZGUqIGJhc2VOb2RlLCBpbnQgYmFzZU9mZnNldCwgTm9kZSogZXh0ZW50Tm9kZSwgaW50IGV4dGVu
dE9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIHNldFBvc2l0aW9uKE5vZGUq
LCBpbnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgc2V0QmFzZUFuZEV4
dGVudChOb2RlKiBiYXNlTm9kZSwgdW5zaWduZWQgYmFzZU9mZnNldCwgTm9kZSogZXh0ZW50Tm9k
ZSwgdW5zaWduZWQgZXh0ZW50T2Zmc2V0KTsKKyAgICAgICAgdm9pZCBzZXRQb3NpdGlvbihOb2Rl
KiwgdW5zaWduZWQgb2Zmc2V0KTsKICAgICAgICAgdm9pZCBtb2RpZnkoY29uc3QgU3RyaW5nJiBh
bHRlciwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgZ3JhbnVsYXJpdHkp
OwogCiAgICAgICAgIC8vIE1vemlsbGEgU2VsZWN0aW9uIE9iamVjdCBBUEkKQEAgLTcxLDIxICs3
MSwyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIGV4cGFuc2lvbi4KICAgICAg
ICAgLy8gVGhlc2UgbWV0aG9kcyByZXR1cm4gdGhlIHZhbGlkIGVxdWl2YWxlbnRzIG9mIGludGVy
bmFsIGVkaXRpbmcgcG9zaXRpb25zLgogICAgICAgICBOb2RlKiBhbmNob3JOb2RlKCkgY29uc3Q7
Ci0gICAgICAgIGludCBhbmNob3JPZmZzZXQoKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgYW5j
aG9yT2Zmc2V0KCkgY29uc3Q7CiAgICAgICAgIE5vZGUqIGZvY3VzTm9kZSgpIGNvbnN0OwotICAg
ICAgICBpbnQgZm9jdXNPZmZzZXQoKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQgZm9jdXNPZmZz
ZXQoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0NvbGxhcHNlZCgpIGNvbnN0OwotICAgICAgICBp
bnQgcmFuZ2VDb3VudCgpIGNvbnN0OwotICAgICAgICB2b2lkIGNvbGxhcHNlKE5vZGUqLCBpbnQg
b2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHVuc2lnbmVkIHJhbmdlQ291bnQoKSBj
b25zdDsKKyAgICAgICAgdm9pZCBjb2xsYXBzZShOb2RlKiwgdW5zaWduZWQgb2Zmc2V0KTsKICAg
ICAgICAgdm9pZCBjb2xsYXBzZVRvRW5kKEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCBj
b2xsYXBzZVRvU3RhcnQoRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICB2b2lkIGV4dGVuZChOb2Rl
JiwgaW50IG9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICBSZWZQdHI8UmFuZ2U+IGdl
dFJhbmdlQXQoaW50LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIHZvaWQgZXh0ZW5kKE5vZGUm
LCB1bnNpZ25lZCBvZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAgICAgUmVmUHRyPFJhbmdl
PiBnZXRSYW5nZUF0KHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgcmVt
b3ZlQWxsUmFuZ2VzKCk7Ci0gICAgICAgIHZvaWQgYWRkUmFuZ2UoUmFuZ2UqKTsKKyAgICAgICAg
dm9pZCBhZGRSYW5nZShSYW5nZSYpOwogICAgICAgICB2b2lkIGRlbGV0ZUZyb21Eb2N1bWVudCgp
OwotICAgICAgICBib29sIGNvbnRhaW5zTm9kZShOb2RlKiwgYm9vbCBwYXJ0bHlDb250YWluZWQp
IGNvbnN0OwotICAgICAgICB2b2lkIHNlbGVjdEFsbENoaWxkcmVuKE5vZGUqLCBFeGNlcHRpb25D
b2RlJik7CisgICAgICAgIGJvb2wgY29udGFpbnNOb2RlKE5vZGUmLCBib29sIHBhcnRseUNvbnRh
aW5lZCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2VsZWN0QWxsQ2hpbGRyZW4oTm9kZSYpOwogCiAg
ICAgICAgIFN0cmluZyB0b1N0cmluZygpOwogCkBAIC0xMDEsNyArMTAxLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiB2aXNpYmxlU2VsZWN0
aW9uKCkgY29uc3Q7CiAKICAgICAgICAgTm9kZSogc2hhZG93QWRqdXN0ZWROb2RlKGNvbnN0IFBv
c2l0aW9uJikgY29uc3Q7Ci0gICAgICAgIGludCBzaGFkb3dBZGp1c3RlZE9mZnNldChjb25zdCBQ
b3NpdGlvbiYpIGNvbnN0OworICAgICAgICB1bnNpZ25lZCBzaGFkb3dBZGp1c3RlZE9mZnNldChj
b25zdCBQb3NpdGlvbiYpIGNvbnN0OwogCiAgICAgICAgIGJvb2wgaXNWYWxpZEZvclBvc2l0aW9u
KE5vZGUqKSBjb25zdDsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01TZWxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCmlu
ZGV4IGFjMjIwNTBlMGJlZTlmMjQ5MTQ3MWEwODQyZDQzZjA4MDNkODQxNDIuLmUxNzA0YzZhYTU0
MWQxZmZlZGQwNzYxYzliMGM3MzA5OGZlYjRkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVj
dGlvbi5pZGwKQEAgLTI3LDU1ICsyNyw1NSBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0vLyBUaGlz
IGlzIGJhc2VkIG9mZiBvZiBNb3ppbGxhJ3MgU2VsZWN0aW9uIGludGVyZmFjZQotLy8gaHR0cHM6
Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvRW4vRE9NL1NlbGVjdGlvbgorLy8gaHR0cHM6Ly93d3cu
dzMub3JnL1RSL3NlbGVjdGlvbi1hcGkvI2lkbC1kZWYtU2VsZWN0aW9uCiBbCiAgICAgR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiAgICAgSW50ZXJmYWNlTmFtZT1TZWxlY3Rpb24sCiBd
IGludGVyZmFjZSBET01TZWxlY3Rpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIGFu
Y2hvck5vZGU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgYW5jaG9yT2Zmc2V0OwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIGZvY3VzTm9kZTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyBmb2N1c09mZnNldDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gYW5jaG9y
Tm9kZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBhbmNob3JPZmZzZXQ7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IGZvY3VzTm9kZTsKKyAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmb2N1c09mZnNldDsKIAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlzQ29sbGFwc2VkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJh
bmdlQ291bnQ7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgcmFuZ2VDb3Vu
dDsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgY29sbGFwc2Uob3B0aW9uYWwgTm9kZT8g
bm9kZSA9IG51bGwsIG9wdGlvbmFsIGxvbmcgaW5kZXggPSAwKTsKKyAgICB2b2lkIGNvbGxhcHNl
KE5vZGU/IG5vZGUsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gMCk7CiAgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBjb2xsYXBzZVRvRW5kKCk7CiAgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBjb2xsYXBzZVRvU3RhcnQoKTsKIAogICAgIHZvaWQgZGVsZXRlRnJvbURvY3VtZW50
KCk7Ci0gICAgYm9vbGVhbiBjb250YWluc05vZGUob3B0aW9uYWwgTm9kZT8gbm9kZSA9IG51bGws
IG9wdGlvbmFsIGJvb2xlYW4gYWxsb3dQYXJ0aWFsID0gZmFsc2UpOwotICAgIFtSYWlzZXNFeGNl
cHRpb25dIHZvaWQgc2VsZWN0QWxsQ2hpbGRyZW4ob3B0aW9uYWwgTm9kZT8gbm9kZSA9IG51bGwp
OworICAgIGJvb2xlYW4gY29udGFpbnNOb2RlKE5vZGUgbm9kZSwgb3B0aW9uYWwgYm9vbGVhbiBh
bGxvd1BhcnRpYWwgPSBmYWxzZSk7CisgICAgdm9pZCBzZWxlY3RBbGxDaGlsZHJlbihOb2RlIG5v
ZGUpOwogCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBleHRlbmQoTm9kZSBub2RlLCBvcHRp
b25hbCBsb25nIG9mZnNldCA9IDApOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgZXh0ZW5k
KE5vZGUgbm9kZSwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAwKTsKIAotICAgIFtS
YWlzZXNFeGNlcHRpb25dIFJhbmdlIGdldFJhbmdlQXQob3B0aW9uYWwgbG9uZyBpbmRleCA9IDAp
OworICAgIFtSYWlzZXNFeGNlcHRpb25dIFJhbmdlIGdldFJhbmdlQXQodW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKLSAgICB2b2lkIGFkZFJhbmdlKG9w
dGlvbmFsIFJhbmdlPyByYW5nZSA9IG51bGwpOworICAgIHZvaWQgYWRkUmFuZ2UoUmFuZ2UgcmFu
Z2UpOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZB
U0NSSVBUCiAgICAgW05vdEVudW1lcmFibGVdIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlm
CiAKLSAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
IGJhc2VOb2RlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGJhc2VPZmZzZXQ7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgZXh0ZW50Tm9kZTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyBleHRlbnRPZmZzZXQ7Ci0KLSAgICAvLyBXZWJLaXQncyAidHlwZSIgYWNjZXNzb3Ig
cmV0dXJucyAiTm9uZSIsICJSYW5nZSIgYW5kICJDYXJldCIKLSAgICAvLyBJRSdzIHR5cGUgYWNj
ZXNzb3IgcmV0dXJucyAibm9uZSIsICJ0ZXh0IiBhbmQgImNvbnRyb2wiCiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogCisgICAgdm9pZCBzZXRCYXNlQW5kRXh0ZW50KE5v
ZGU/IGJhc2VOb2RlLCB1bnNpZ25lZCBsb25nIGJhc2VPZmZzZXQsIE5vZGU/IGV4dGVudE5vZGUs
IHVuc2lnbmVkIGxvbmcgZXh0ZW50T2Zmc2V0KTsKKyAgICB2b2lkIHNldFBvc2l0aW9uKE5vZGU/
IG5vZGUsIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gMCk7CisKKyAgICB2b2lkIGVt
cHR5KCk7CisKKyAgICAvLyBGSVhNRTogVGhlIGZvbGxvd2luZyBvcGVyYXRpb24gc2hvdWxkIGJl
IGltcGxlbWVudGVkLgorICAgIC8vIHZvaWQgcmVtb3ZlUmFuZ2UoUmFuZ2UgcmFuZ2UpOworCisg
ICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMuCisKICAgICAvLyBGSVhNRTogVXNpbmcgInVuZGVmaW5l
ZCIgYXMgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgaXMgd3JvbmcuCiAgICAgdm9pZCBtb2RpZnko
b3B0aW9uYWwgRE9NU3RyaW5nIGFsdGVyID0gInVuZGVmaW5lZCIsIG9wdGlvbmFsIERPTVN0cmlu
ZyBkaXJlY3Rpb24gPSAidW5kZWZpbmVkIiwgb3B0aW9uYWwgRE9NU3RyaW5nIGdyYW51bGFyaXR5
ID0gInVuZGVmaW5lZCIpOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0QmFzZUFuZEV4
dGVudChvcHRpb25hbCBOb2RlPyBiYXNlTm9kZSA9IG51bGwsIG9wdGlvbmFsIGxvbmcgYmFzZU9m
ZnNldCA9IDAsIG9wdGlvbmFsIE5vZGU/IGV4dGVudE5vZGUgPSBudWxsLCBvcHRpb25hbCBsb25n
IGV4dGVudE9mZnNldCA9IDApOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0UG9zaXRp
b24ob3B0aW9uYWwgTm9kZT8gbm9kZSA9IG51bGwsIG9wdGlvbmFsIGxvbmcgb2Zmc2V0ID0gMCk7
CiAKLSAgICAvLyBJRSBleHRlbnNpb24KLSAgICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29t
L2VuLXVzL2xpYnJhcnkvbXM1MzU4NjkoVlMuODUpLmFzcHgKLSAgICB2b2lkIGVtcHR5KCk7Cisg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgYmFzZU5vZGU7CisgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgYmFzZU9mZnNldDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSBleHRlbnROb2RlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGV4dGVu
dE9mZnNldDsKIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NTlmNmE1NDY3NDE2YWNlODU2MmI3ZTZhMmVjN2RlMGZj
NzA3ZDA3Li4yN2I0N2UxMDNkMWFiODNhYTg5ZjA4OTM0YTdlMDYwMGUzMDkzZDc2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTYtMDgtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBBbGlnbiBTZWxlY3Rpb24gQVBJIHdpdGggdGhlIHNwZWNpZmljYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDY2Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL2JhZC1pbnB1dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL2JhZC1pbnB1dC5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIG5ldyBsYXlv
dXQgdGVzdCB0byBjb3ZlciBwYXNzaW5nIGJhZCBpbnB1dCB0byB0aGUgU2VsZWN0aW9uIEFQSS4K
KyAgICAgICAgVGhpcyBuZXcgdGVzdCBpcyBwYXNzaW5nIGNvbXBsZXRlbHkgaW4gRmlyZWZveCBh
bmQgQ2hyb21lLgorCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseS1zdHlsZS10
ZXh0LWRlY29yYXRpb24tY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21tYW5k
L2FwcGx5YmxvY2tlbGVtZW50LXZpc2libGVwb3NpdGlvbmZvcmluZGV4LWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pZGVudC1jcmFzaGVzLXRvcG5vZGUtaXMtdGV4
dC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9vdmVydHlwZS5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5zTm9kZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vY29udGFpbnNOb2RlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vbW92ZS1ieS1saW5lLTAwMy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLmpzOgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tY3Jvc3NpbmctZG9jdW1l
bnQuanM6CisgICAgICAgIChjbGVhcik6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2Vs
ZWN0aW9uLWludmFsaWQtb2Zmc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Jsb2Nr
L2Zsb2F0L2Zsb2F0LWxpc3QtY2hhbmdlZC1iZWZvcmUtbGF5b3V0LWNyYXNoLmh0bWw6CisgICAg
ICAgICogZmFzdC9kb20vbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL25vbi1udW1lcmljLXZh
bHVlcy1udW1lcmljLXBhcmFtZXRlcnMuanM6CisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0
c3RhcnQtYnktYXJyb3cta2V5cy5odG1sOgorICAgICAgICAqIGZhc3QvaHRtbC9uYXYtZWxlbWVu
dC5odG1sOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3JpcHQtdGVzdHMvYXJ0aWNsZS1lbGVtZW50
LmpzOgorICAgICAgICAqIGZhc3QvaHRtbC9zY3JpcHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qczoK
KyAgICAgICAgKiBmYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzOgorICAg
ICAgICAqIGZhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQuanM6CisgICAgICAg
ICogZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxlbWVudC5qczoKKyAgICAgICAgKiBm
YXN0L2h0bWwvc2NyaXB0LXRlc3RzL21haW4tZWxlbWVudC5qczoKKyAgICAgICAgKiBmYXN0L2h0
bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24tZWxlbWVudC5qczoKKyAgICAgICAgKiBpbXBvcnRlZC9i
bGluay9hY2Nlc3NpYmlsaXR5L2V2ZW50LW9uLWRlbGV0ZWQtaWZyYW1lLWNhdXNlcy1jcmFzaC5o
dG1sOgorICAgICAgICAqIGltcG9ydGVkL2JsaW5rL2VkaXRpbmcvYXBwbHktaW5saW5lLXN0eWxl
LXRvLWVsZW1lbnQtd2l0aC1uby1yZW5kZXJlci1jcmFzaC5odG1sOgorICAgICAgICAqIHN2Zy9j
dXN0b20vdW5pY29kZS1pbi10c3Bhbi1tdWx0aS1zdmctY3Jhc2guaHRtbDoKKyAgICAgICAgVXBk
YXRlIGV4aXN0aW5nIHRlc3RzIHRvIHVzZSB0aGUgU2VsZWN0aW9uIEFQSSBwcm9wZXJseS4KKwog
MjAxNi0wOC0wOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBEb24ndCBzZXQgZG9jdW1lbnQuZG9tYWluIHRvIGFuIElQIGFkZHJlc3MgZnJhZ21lbnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvYXBwbHktc3R5bGUtdGV4
dC1kZWNvcmF0aW9uLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L2FwcGx5LXN0eWxlLXRleHQtZGVjb3JhdGlvbi1jcmFzaC5odG1sCmluZGV4IGZjY2I0NzgzZGFj
NjBkMjk5YjA4OTgzNDgyNzcyMjJjZGQ5NjYyNWUuLjQ2YmJjYjkyN2Q1NWU3OWZiYTg5ZTU0MGNi
ZGU4ZWY1NjQyMWIxY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvYXBwbHktc3R5bGUtdGV4dC1kZWNvcmF0aW9uLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseS1zdHlsZS10ZXh0LWRlY29yYXRpb24tY3Jhc2gu
aHRtbApAQCAtNSw3ICs1LDcgQEAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikN
CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQogDQotICAgICAgICAg
ICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoc3RhcnQsIDAsIG51bGws
IDApOw0KKyAgICAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50
KHN0YXJ0LCAwLCBzdGFydCwgMCk7DQogICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
IkluZGVudCIpOw0KICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS5pbm5lckhUTUwgPSAiUEFTUyI7DQogICAgICAgICB9DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBseWJsb2NrZWxlbWVudC12aXNpYmxlcG9zaXRpb25m
b3JpbmRleC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9hcHBs
eWJsb2NrZWxlbWVudC12aXNpYmxlcG9zaXRpb25mb3JpbmRleC1jcmFzaC5odG1sCmluZGV4IGQ2
NzU0YWMwZDE5NDE5MzViYjQ0OGI1NDE4MzBmNzFjMzUyZThkNmMuLjYxN2Q1ZmU0Yjk5NTEwZTk0
MzY2OTdmZDhhZGYyYTBlN2E5ZjM5ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
ZXhlY0NvbW1hbmQvYXBwbHlibG9ja2VsZW1lbnQtdmlzaWJsZXBvc2l0aW9uZm9yaW5kZXgtY3Jh
c2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2FwcGx5YmxvY2tl
bGVtZW50LXZpc2libGVwb3NpdGlvbmZvcmluZGV4LWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3IEBA
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAog
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudChzdGFydCwgMCwgbnVsbCwgMCk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoc3RhcnQsIDAsIHN0YXJ0LCAwKTsKICAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgiSW5kZW50Iik7CiAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiUEFTUy4gV2Vi
S2l0IGRpZG4ndCBjcmFzaC4iOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9l
eGVjQ29tbWFuZC9pZGVudC1jcmFzaGVzLXRvcG5vZGUtaXMtdGV4dC5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9pZGVudC1jcmFzaGVzLXRvcG5vZGUtaXMtdGV4dC5odG1s
CmluZGV4IDZmYWQ5NzFiZDAyYTUxNjRiYzE5OTgzZWRjOWQ2ZjExOWUzODc3MWYuLmRkNGVlMWZi
OWUxMWM3NDRlMDdhZGI2MDU5MzM2NzE5YTNlMTQxODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZXhlY0NvbW1hbmQvaWRlbnQtY3Jhc2hlcy10b3Bub2RlLWlzLXRleHQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2lkZW50LWNyYXNoZXMtdG9wbm9k
ZS1pcy10ZXh0Lmh0bWwKQEAgLTMsNyArMyw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChzdGFydCwgMCwgbnVsbCwgMCk7
CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoc3RhcnQsIDAsIHN0
YXJ0LCAwKTsKICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5kZW50Iik7CiAKICAgICBkb2N1
bWVudC53cml0ZWxuKCdleGVjQ29tbWFuZCgiSW5kZW50Iikgd2FzIGNyYXNoaW5nIGlmIHRoZSB0
b3AgZWxlbWVudCB0byBiZSBmb3JtYXR0ZWQgaXMgYWN0dWFsbHkgbm90IGFuIGVsZW1lbnQuPGJy
PicpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQt
cHJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5kZW50
LXByZS1leHBlY3RlZC50eHQKaW5kZXggNWYxYTEzN2YzNWViZmY0NDg0MTAwYmUxYTc5ZGU5ODBj
Y2VkNWU2OC4uNzA2YTZhODUwMDgwZGFkN2ViMTI5YWYzZTViMWViOTI0NWZmZWM3OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luZGVudC1wcmUtZXhw
ZWN0ZWQudHh0CkBAIC0xMDIsNyArMTAyLDcgQEAgZnVuY3Rpb24gc2V0U2VsZWN0aW9uKG5vZGUp
CiAgICAgdmFyIHRleHROb2RlID0gbm9kZS5maXJzdENoaWxkOwogICAgIGlmICh0ZXh0Tm9kZS5u
b2RlVHlwZSAhPSBOb2RlLlRFWFRfTk9ERSkKICAgICAgICAgdGhyb3cgIldyb25nIG5vZGUgdHlw
ZTogIiArIHRleHROb2RlOwotICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRleHROb2RlLCAw
LCBudWxsKTsKKyAgICBleGVjU2V0U2VsZWN0aW9uQ29tbWFuZCh0ZXh0Tm9kZSwgMCwgdGV4dE5v
ZGUpOwogfQogCiBmdW5jdGlvbiB2ZXJpZnlUZXh0U2VsZWN0aW9uKHN0YXJ0Tm9kZSwgc3RhcnRP
ZmZzZXQsIGVuZE5vZGUsIGVuZE9mZnNldCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvaW5kZW50LXByZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9pbmRlbnQtcHJlLmh0bWwKaW5kZXggYmRlYTk0ZmQ5NTk0OTQwMTRiZDJiNTU3MGEz
MGEzNjRlY2ZmODM2MS4uMDU5ZjY5ZWMzOTZlMDc2OGU3YzZmOGRhNjRiMGQ2NmIwOWI0Njk0ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbmRlbnQtcHJlLmh0bWwK
QEAgLTMwLDcgKzMwLDcgQEAgZnVuY3Rpb24gc2V0U2VsZWN0aW9uKG5vZGUpCiAgICAgdmFyIHRl
eHROb2RlID0gbm9kZS5maXJzdENoaWxkOwogICAgIGlmICh0ZXh0Tm9kZS5ub2RlVHlwZSAhPSBO
b2RlLlRFWFRfTk9ERSkKICAgICAgICAgdGhyb3cgIldyb25nIG5vZGUgdHlwZTogIiArIHRleHRO
b2RlOwotICAgIGV4ZWNTZXRTZWxlY3Rpb25Db21tYW5kKHRleHROb2RlLCAwLCBudWxsKTsKKyAg
ICBleGVjU2V0U2VsZWN0aW9uQ29tbWFuZCh0ZXh0Tm9kZSwgMCwgdGV4dE5vZGUpOwogfQogCiBm
dW5jdGlvbiB2ZXJpZnlUZXh0U2VsZWN0aW9uKHN0YXJ0Tm9kZSwgc3RhcnRPZmZzZXQsIGVuZE5v
ZGUsIGVuZE9mZnNldCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvb3ZlcnR5cGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvb3ZlcnR5
cGUuaHRtbAppbmRleCBmY2E0Yzk3OGRmMmFkOGI4NjliODEyNmVhODQwMTlkODg0N2VmYTc3Li5i
NzI2MWE5ZDY4NjA0ZDU1NWU3ODU1MmM0NTU1ZWI5NTc0ZTQ5NjA4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL292ZXJ0eXBlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9leGVjQ29tbWFuZC9vdmVydHlwZS5odG1sCkBAIC02Myw3ICs2Myw3IEBAIGVs
c2UgewogICAgIE1hcmt1cC5kdW1wKGVsZW1lbnQsICdPdmVyd3JpdGUgYmVoYXZlcyBsaWtlIGlu
c2VydCBvbiByYW5nZSBzZWxlY3Rpb25zJyk7CiAKICAgICBlbGVtZW50LmlubmVySFRNTCA9ICIm
I3g0RTIwOyYjeDRFMjE7JiN4NEUyMjsmI3g0RTIzOyI7Ci0gICAgc2VsZWN0aW9uLmNvbGxhcHNl
KCk7CisgICAgc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogICAgIE1hcmt1cC5kdW1wKGVsZW1l
bnQsICdOZXcgQ0pLIGNvbnRlbnRzJyk7CiAKICAgICBzZWxlY3Rpb24uY29sbGFwc2UoZWxlbWVu
dCwgMCk7CkBAIC03MSw3ICs3MSw3IEBAIGVsc2UgewogICAgIE1hcmt1cC5kdW1wKGVsZW1lbnQs
ICdPdmVyd3JpdGUgQ0pLIHRleHQnKTsKIAogICAgIGVsZW1lbnQuaW5uZXJIVE1MPSI8ZGl2IGlk
PVwicnRsLWRpdlwiIGRpcj1cInJ0bFwiPiZhbGVwaDsmYmV0aDsmZ2ltZWw7JmRhbGV0aDs8L2Rp
dj4iCi0gICAgc2VsZWN0aW9uLmNvbGxhcHNlKCk7CisgICAgc2VsZWN0aW9uLmNvbGxhcHNlKG51
bGwpOwogICAgIE1hcmt1cC5kdW1wKGVsZW1lbnQsICdOZXcgUlRMIGNvbnRlbnRzJyk7CiAKICAg
ICBzZWxlY3Rpb24uY29sbGFwc2UoZWxlbWVudCwgMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcmVzb3VyY2VzL3NlbGVjdC1hbmQtZHJhZy5qcyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvc2VsZWN0LWFuZC1kcmFnLmpzCmlu
ZGV4IDU2NTc3OTM1MDg1ZmM2MTcxYzc3NDgyNDM2NjNmZmEyZGQ1NDlkNDQuLjVhN2I2ODdkZDcz
MmZlODJlNDc1Yjg1M2VmYjlmNjExMTA5MDNlNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvc2VsZWN0LWFuZC1kcmFnLmpzCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvc2VsZWN0LWFuZC1kcmFnLmpzCkBA
IC0yNCw1ICsyNCw1IEBAIGZ1bmN0aW9uIGRyYWdTZWxlY3Rpb25Ub1RhcmdldChzdGFydFNlbGVj
dGlvbkVsZW1lbnQsIHRhcmdldEVsZW1lbnQpIHsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh0YXJnZXR4LCB0YXJnZXR5KTsKICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAKLSAgICB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuY29sbGFwc2UobnVsbCk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9iYWQtaW5wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vYmFkLWlucHV0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTA3ODZiYWQ1NGVmMDZi
MTY5ZjI5ZTRkMjQ1ZmE2MWU4OTM3MzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlucHV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4IEBA
CitUZXN0cyBwYXNzaW5nIGJhZCBpbnB1dCB0byB0aGUgU2VsZWN0aW9uIEFQSS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKKyogTm90IHBhc3NpbmcgZW5vdWdoIHBhcmFtZXRlcnMK
K1BBU1Mgc2VsZWN0aW9uLmNvbGxhcHNlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHNlbGVjdGlvbi5jb250YWluc05vZGUoKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9u
LnNlbGVjdEFsbENoaWxkcmVuKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIHNlbGVjdGlvbi5leHRlbmQoKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLmdldFJhbmdlQXQo
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
c2VsZWN0aW9uLmFkZFJhbmdlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIHNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KCkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIHNlbGVjdGlvbi5z
ZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmJvZHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudChk
b2N1bWVudC5ib2R5LCAwKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1Mgc2VsZWN0aW9uLnNldEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQuYm9keSwg
MCwgZG9jdW1lbnQuYm9keSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMuCitQQVNTIHNlbGVjdGlvbi5zZXRQb3NpdGlvbigpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorCisqIFBhc3NpbmcgbnVsbCBmb3Igbm9u
LW51bGxhYmxlIHBhcmFtZXRlcnMKK1BBU1Mgc2VsZWN0aW9uLmNvbnRhaW5zTm9kZShudWxsKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgnbm9kZScpIHRvIFNlbGVjdGlv
bi5jb250YWluc05vZGUgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBOb2RlLgorUEFTUyBzZWxlY3Rp
b24uc2VsZWN0QWxsQ2hpbGRyZW4obnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ25vZGUnKSB0byBTZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4gbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBOb2RlLgorUEFTUyBzZWxlY3Rpb24uZXh0ZW5kKG51bGwpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdub2RlJykgdG8gU2VsZWN0aW9uLmV4dGVu
ZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIE5vZGUuCitQQVNTIHNlbGVjdGlvbi5hZGRSYW5nZShu
dWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBcmd1bWVudCAxICgncmFuZ2UnKSB0byBT
ZWxlY3Rpb24uYWRkUmFuZ2UgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBSYW5nZS4KKworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2JhZC1pbnB1dC5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vYmFkLWlucHV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMzZmNjNTM2
ODkzNjY1N2YzMDc1ZTBjN2UzNGFhYzZjNjY1OTgzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2JhZC1pbnB1dC5odG1sCkBAIC0wLDAgKzEsMzMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJU
ZXN0cyBwYXNzaW5nIGJhZCBpbnB1dCB0byB0aGUgU2VsZWN0aW9uIEFQSS4iKTsKKwordmFyIHNl
bGVjdGlvbiA9IGdldFNlbGVjdGlvbigpOworCitkZWJ1ZygiKiBOb3QgcGFzc2luZyBlbm91Z2gg
cGFyYW1ldGVycyIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5jb2xsYXBzZSgp
IiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5jb250YWlu
c05vZGUoKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24u
c2VsZWN0QWxsQ2hpbGRyZW4oKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1l
KCJzZWxlY3Rpb24uZXh0ZW5kKCkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFt
ZSgic2VsZWN0aW9uLmdldFJhbmdlQXQoKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJy
b3JOYW1lKCJzZWxlY3Rpb24uYWRkUmFuZ2UoKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93
RXJyb3JOYW1lKCJzZWxlY3Rpb24uc2V0QmFzZUFuZEV4dGVudCgpIiwgIlR5cGVFcnJvciIpOwor
c2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50
LmJvZHkpIiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5z
ZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmJvZHksIDApIiwgIlR5cGVFcnJvciIpOworc2hvdWxk
VGhyb3dFcnJvck5hbWUoInNlbGVjdGlvbi5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmJvZHks
IDAsIGRvY3VtZW50LmJvZHkpIiwgIlR5cGVFcnJvciIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUo
InNlbGVjdGlvbi5zZXRQb3NpdGlvbigpIiwgIlR5cGVFcnJvciIpOworCitkZWJ1ZygiIik7Citk
ZWJ1ZygiKiBQYXNzaW5nIG51bGwgZm9yIG5vbi1udWxsYWJsZSBwYXJhbWV0ZXJzIik7CitzaG91
bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLmNvbnRhaW5zTm9kZShudWxsKSIsICJUeXBlRXJy
b3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4o
bnVsbCkiLCAiVHlwZUVycm9yIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgic2VsZWN0aW9uLmV4
dGVuZChudWxsKSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJzZWxlY3Rp
b24uYWRkUmFuZ2UobnVsbCkiLCAiVHlwZUVycm9yIik7CitkZWJ1ZygiIik7Cis8L3NjcmlwdD4g
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9jb250YWluc05vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vY29udGFpbnNOb2RlLWV4cGVjdGVkLnR4dAppbmRleCA5YTIxNjRhMjc4MmE0YTYyMDhl
ZmRkOTU4MjcxOGM0MjI1NjEzYjA0Li5hYWVjNmIyYjg3ZDI1MzcxYzJiMTFmM2U2OTgzOGZlMjdh
MWU2ZmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250YWlu
c05vZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Nv
bnRhaW5zTm9kZS1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw0IEBACiBmb29iYXJiYXoKLVN1Y2Nl
c3M6IHMuY29udGFpbnNOb2RlKG51bGwsIGZhbHNlKSBpcyBmYWxzZS4KLVN1Y2Nlc3M6IHMuY29u
dGFpbnNOb2RlKG51bGwsIHRydWUpIGlzIGZhbHNlLgogU3VjY2Vzczogcy5jb250YWluc05vZGUo
dGVzdERpdiwgZmFsc2UpIGlzIGZhbHNlLgogU3VjY2Vzczogcy5jb250YWluc05vZGUodGVzdERp
diwgdHJ1ZSkgaXMgdHJ1ZS4KIFN1Y2Nlc3M6IHMuY29udGFpbnNOb2RlKHNwYW4xLCBmYWxzZSkg
aXMgZmFsc2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9jb250
YWluc05vZGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5zTm9k
ZS5odG1sCmluZGV4IDNjMTZiNjdlZWZiN2E2MGU2YjYxOWNjMTcyN2E5ZWYwOGI5MWFkYjAuLmMz
YmY1NmQ1ZjI0NTA5NDdjNzdhMDNlYTUxZDI1YWMwMzZhZjc5ODkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5zTm9kZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2NvbnRhaW5zTm9kZS5odG1sCkBAIC0zMyw4ICszMyw2IEBA
IHIuc2V0U3RhcnQoc3BhbjEsIDEpOwogci5zZXRFbmQoc3BhbjEsIDIpOwogcy5hZGRSYW5nZShy
KTsKIAotc2hvdWxkQmUoJ3MuY29udGFpbnNOb2RlKG51bGwsIGZhbHNlKScsIGZhbHNlKTsKLXNo
b3VsZEJlKCdzLmNvbnRhaW5zTm9kZShudWxsLCB0cnVlKScsIGZhbHNlKTsKIHNob3VsZEJlKCdz
LmNvbnRhaW5zTm9kZSh0ZXN0RGl2LCBmYWxzZSknLCBmYWxzZSk7CiBzaG91bGRCZSgncy5jb250
YWluc05vZGUodGVzdERpdiwgdHJ1ZSknLCB0cnVlKTsKIHNob3VsZEJlKCdzLmNvbnRhaW5zTm9k
ZShzcGFuMSwgZmFsc2UpJywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vbW92ZS1ieS1saW5lLTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vbW92ZS1ieS1saW5lLTAwMy5odG1sCmluZGV4IDQ4NzZiZWZiOTMxMGM2MDExMjZj
ODRhZTI2M2ZjMjQ3NTkwYzRhMWUuLmQxYTk2ZTdkZGMxNDY3NGI4OTc5ZDM1ZjUwOWQ4MzRhZjA0
MDQ0Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL21vdmUtYnkt
bGluZS0wMDMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9tb3ZlLWJ5
LWxpbmUtMDAzLmh0bWwKQEAgLTgsNyArOCw3IEBACiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0Iik7Ci0gICAgICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNl
QW5kRXh0ZW50KHRhcmdldC5maXJzdENoaWxkLCAwLCB0YXJnZXQuZnJzdENoaWxkLCAwKTsKKyAg
ICAgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQodGFyZ2V0LmZpcnN0Q2hp
bGQsIDAsIHRhcmdldC5maXJzdENoaWxkLCAwKTsKICAgICAgICAgICAgIG1vdmVTZWxlY3Rpb25G
b3J3YXJkQnlMaW5lQ29tbWFuZCgpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gZ2V0U2VsZWN0aW9uKCkuYmFzZU9mZnNldCA9PSA2
MyA/ICJQQVNTIiA6ICJGQUlMIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tRG9jdW1lbnRUeXBlLmpzIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVu
dFR5cGUuanMKaW5kZXggOTE4OGUxN2RmOWJjOTM5ODEyYWUzODQ2NDNiYWZkOGMxMGUyMjE0Mi4u
NzZmOWNhZjM0MjYyZGY0ODI4Njc4MDdiZjQ3NDEwZTg2ZTUxYTc5ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlvbi1Eb2N1
bWVudFR5cGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRl
c3RzL0RPTVNlbGVjdGlvbi1Eb2N1bWVudFR5cGUuanMKQEAgLTMsMTAgKzMsMTAgQEAgZGVzY3Jp
cHRpb24oIlRlc3QgdG8gY2hlY2sgaWYgc2V0QmFzZUFuZEV4dGVudCBndWFyZCBub2RlIHdpdGgg
bnVsbCBvd25lciBkb2N1bWUKIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiB2YXIg
ZG9jVHlwZSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50VHlwZSgnYycs
ICcnLCAnJyk7CiAKLXNlbC5zZXRCYXNlQW5kRXh0ZW50KGRvY1R5cGUpOworc2VsLnNldEJhc2VB
bmRFeHRlbnQoZG9jVHlwZSwgMCwgZG9jVHlwZSwgMCk7CiBzaG91bGRCZU51bGwoInNlbC5hbmNo
b3JOb2RlIik7CiAKLXNlbC5zZXRCYXNlQW5kRXh0ZW50KG51bGwsIDAsIGRvY1R5cGUsIDApOwor
c2VsLnNldEJhc2VBbmRFeHRlbnQoZG9jVHlwZSwgMCwgZG9jVHlwZSwgMCk7CiBzaG91bGRCZU51
bGwoInNlbC5hbmNob3JOb2RlIik7CiAKIHNlbC5jb2xsYXBzZShkb2NUeXBlKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rp
b24tY3Jvc3NpbmctZG9jdW1lbnQuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
Y3JpcHQtdGVzdHMvRE9NU2VsZWN0aW9uLWNyb3NzaW5nLWRvY3VtZW50LmpzCmluZGV4IDQ4ZWVh
NDM4NDM2MzZlNzZlNzM1MzBmZTgwNjFmMDg4ZDU3NTViNDIuLjA4NDZlMmVkNTEzMjVkMGQ4N2Y2
NzkzMTk1MjI1MTFhM2VkNTM1NjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL3NjcmlwdC10ZXN0cy9ET01TZWxlY3Rpb24tY3Jvc3NpbmctZG9jdW1lbnQuanMKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL0RPTVNlbGVjdGlv
bi1jcm9zc2luZy1kb2N1bWVudC5qcwpAQCAtMjIsOCArMjIsOCBAQCB2YXIgbWFpblNlbCA9IHdp
bmRvdy5nZXRTZWxlY3Rpb24oKTsKIAogZnVuY3Rpb24gY2xlYXIoKQogewotICAgIGZvcmVpZ25T
ZWwuc2V0QmFzZUFuZEV4dGVudChudWxsLCAwLCBudWxsLCAwKTsKLSAgICBtYWluU2VsLnNldEJh
c2VBbmRFeHRlbnQobnVsbCwgMCwgbnVsbCwgMCk7CisgICAgZm9yZWlnblNlbC5yZW1vdmVBbGxS
YW5nZXMoKTsKKyAgICBtYWluU2VsLnJlbW92ZUFsbFJhbmdlcygpOwogfQogCiBtYWluU2VsLnNl
dEJhc2VBbmRFeHRlbnQoZm9yZWlnbkVsZW1lbnQsIDAsIGZvcmVpZ25FbGVtZW50LCAwKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdGlvbi1pbnZhbGlk
LW9mZnNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zZWxl
Y3Rpb24taW52YWxpZC1vZmZzZXQtZXhwZWN0ZWQudHh0CmluZGV4IDc3MTljMjc3MzMyMzczMjJm
N2Q4MDJmMmNiMzMwNDRiYjUzNDI4NDMuLmNiYmU2Njc0ODE3NTY1YWYzMWE1OWE5NTdmYjdiNzFk
Njg2Yjc0NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NlbGVj
dGlvbi1pbnZhbGlkLW9mZnNldC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vc2VsZWN0aW9uLWludmFsaWQtb2Zmc2V0LWV4cGVjdGVkLnR4dApAQCAtMSw4
ICsxLDQgQEAKIFlvdSBzaG91bGQgc2VlIHNpeCBPS3MgYmVsb3cgKGFuZCBub3QgaGFuZyk6IAog
T0sKIE9LCi1PSwotT0sKLU9LCi1PSwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Zsb2F0L2Zsb2F0LWxpc3QtY2hhbmdlZC1iZWZvcmUtbGF5b3V0LWNyYXNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LWxpc3QtY2hhbmdlZC1iZWZvcmUtbGF5
b3V0LWNyYXNoLmh0bWwKaW5kZXggMGE1ZDMyYTZmZjhmYjRhNTNhNTNkMzY0MzA3MWVlMzZiODYw
NDFiYS4uOGJmYzFlOTNlNmQ3ZmZkYWYwYWRhODhjYTVkMWI3NzA2Yzc5MWM2MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1saXN0LWNoYW5nZWQtYmVmb3Jl
LWxheW91dC1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxv
YXQtbGlzdC1jaGFuZ2VkLWJlZm9yZS1sYXlvdXQtY3Jhc2guaHRtbApAQCAtNjQsNyArNjQsNyBA
QAogICAgICAgICBlbDcuc2V0QXR0cmlidXRlKCdpZCcsJ2VsNycpCiAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWw3KQogICAgICAgICBkb2N1bWVudC5kZXNpZ25Nb2RlPSdvbicK
LSAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZWwzLCAxKQor
ICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbDMsIDEsIGVs
MywgMSkKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydExpbmVCcmVhaycpCiAg
ICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdzZWxlY3RhbGwnKQogICAgICAgICBkb2N1bWVu
dC5leGVjQ29tbWFuZCgnc3RyaWtldGhyb3VnaCcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9ub24tbnVtZXJpYy12YWx1ZXMtbnVtZXJpYy1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1lcmljLXBhcmFt
ZXRlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGE2NTllZGZiNjc3ZDdmYzlhY2M1NjFjNTg3NzJkMzYy
ZDEwNmMyYjcuLmM2MzRhNDg0OTI0YmU3ZjVjNDQ4ZGRkOTYxNTRjZjAxYzgyMzc4MmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1udW1lcmljLXZhbHVlcy1udW1lcmljLXBh
cmFtZXRlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vbi1udW1l
cmljLXZhbHVlcy1udW1lcmljLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CkBAIC01OCwxMCArNTgs
MTAgQEAgUEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNvbXBh
cmVQb2ludChkb2N1bWVudCwgeCknKSBpcyAnYW4KIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKS5pc1BvaW50SW5SYW5nZShkb2N1bWVudCwgeCknKSBpcyAnYW55
IHR5cGUgYWxsb3dlZCAoYnV0IG5vdCBvbWl0dGVkKScKIFBBU1Mgbm9uTnVtZXJpY1BvbGljeSgn
Z2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93
ZWQnCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQoZG9jdW1lbnQsIHgsIGRvY3VtZW50LCAwKScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwotUEFT
UyBub25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGRvY3Vt
ZW50LCAwLCBkb2N1bWVudCwgeCknKSBpcyAnYW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVt
ZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudCwgMCwg
ZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQ
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50
LCB4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkJwogUEFTUyBub25OdW1lcmljUG9saWN5KCdnZXRT
ZWxlY3Rpb24oKS5leHRlbmQoZG9jdW1lbnQsIHgpJykgaXMgJ2FueSB0eXBlIGFsbG93ZWQnCi1Q
QVNTIG5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmdldFJhbmdlQXQoeCknKSBpcyAn
YW55IHR5cGUgYWxsb3dlZCcKK1BBU1Mgbm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9uKCku
Z2V0UmFuZ2VBdCh4KScpIGlzICdhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQpJwog
UEFTUyBub25OdW1lcmljUG9saWN5KCdkb2N1bWVudC5zdHlsZVNoZWV0cy5pdGVtKHgpJykgaXMg
J2FueSB0eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xp
Y3koJ2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJhIikuc3BsaXRUZXh0KHgpJykgaXMgJ2FueSB0
eXBlIGFsbG93ZWQgKGJ1dCBub3Qgb21pdHRlZCknCiBQQVNTIG5vbk51bWVyaWNQb2xpY3koJ2Rv
Y3VtZW50LmNyZWF0ZVRyZWVXYWxrZXIoZG9jdW1lbnQsIHgsIG51bGwsIGZhbHNlKScpIGlzICdh
bnkgdHlwZSBhbGxvd2VkJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL25vbi1udW1lcmljLXZhbHVlcy1udW1lcmljLXBhcmFtZXRlcnMuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFy
YW1ldGVycy5qcwppbmRleCA4YjQ5ZTdmOTQ0MjQxNWExMjZmMzVmYjI1NjVkMzljZDhkZWNmMGRl
Li42MTUyMmVhN2U0ZjE1M2U2MTJkMmM0NWRkMmFiYTI4YjVkNzA5MjA2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvbm9uLW51bWVyaWMtdmFsdWVzLW51bWVy
aWMtcGFyYW1ldGVycy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMv
bm9uLW51bWVyaWMtdmFsdWVzLW51bWVyaWMtcGFyYW1ldGVycy5qcwpAQCAtMzEyLDEwICszMTIs
MTAgQEAgc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2RvY3VtZW50LmNyZWF0ZVJhbmdlKCku
aXNQb2ludEluUmFuZ2UoZG9jdW1lbnQsIHgpJykKIAogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xp
Y3koJ2dldFNlbGVjdGlvbigpLmNvbGxhcHNlKGRvY3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIHgsIGRvY3VtZW50LCAwKScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOwotc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOworc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoZG9jdW1lbnQsIDAsIGRvY3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkIChidXQgbm90IG9taXR0ZWQpJyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3ko
J2dldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGRvY3VtZW50LCB4KScpIiwgIidhbnkgdHlwZSBh
bGxvd2VkJyIpOwogc2hvdWxkQmUoIm5vbk51bWVyaWNQb2xpY3koJ2dldFNlbGVjdGlvbigpLmV4
dGVuZChkb2N1bWVudCwgeCknKSIsICInYW55IHR5cGUgYWxsb3dlZCciKTsKLXNob3VsZEJlKCJu
b25OdW1lcmljUG9saWN5KCdnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KHgpJykiLCAiJ2FueSB0
eXBlIGFsbG93ZWQnIik7CitzaG91bGRCZSgibm9uTnVtZXJpY1BvbGljeSgnZ2V0U2VsZWN0aW9u
KCkuZ2V0UmFuZ2VBdCh4KScpIiwgIidhbnkgdHlwZSBhbGxvd2VkIChidXQgbm90IG9taXR0ZWQp
JyIpOwogCiAvLyBTUUxSZXN1bHRTZXRSb3dMaXN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWFycm93LWtleXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LWJ5LWFycm93LWtleXMuaHRtbAppbmRleCA3NzViMTM4
ZDkxOGNmZGZkZGRmODcwNTAwOGVlNGI4Yzc5Yjg0OTFlLi5lNGEzZTU2NjZmOTJhY2RjYmM5ZTQ0
MGFjMDllYjczYjQ2MjRjNGVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
ZWxlY3RzdGFydC1ieS1hcnJvdy1rZXlzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2VsZWN0c3RhcnQtYnktYXJyb3cta2V5cy5odG1sCkBAIC0zOSw3ICszOSw3IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogCiAgICAgLy8gT24gTWFjLCBob21lL2VuZCBkb2Vzbid0IG1v
dmUgY2FyZXQgc28gbWFudWFsbHkgc2VsZWN0ICIgV29ybGQiLgogICAgIGlmIChuYXZpZ2F0b3Iu
cGxhdGZvcm0uaW5kZXhPZignTWFjJykgPT0gMCkKLSAgICAgICAgd2luZG93LmdldFNlbGVjdGlv
bigpLnNldEJhc2VBbmRFeHRlbnQoZGl2LmZpcnN0Q2hpbGQsIGRpdi50ZXh0Q29udGVudC5pbmRl
eE9mKCdXb3JsZCcpKTsKKyAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQoZGl2LmZpcnN0Q2hpbGQsIGRpdi50ZXh0Q29udGVudC5pbmRleE9mKCdXb3JsZCcpLCBk
aXYuZmlyc3RDaGlsZCwgZGl2LnRleHRDb250ZW50LmluZGV4T2YoJ1dvcmxkJykgKyA1KTsKIAog
ICAgIGV2ZW50U2VuZGVyLmtleURvd24oImxlZnRBcnJvdyIpOwogICAgIGxvZ1Jlc3VsdCgnQ2hl
Y2sgKExlZnQgYXJyb3cpJywgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwv
bmF2LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9uYXYtZWxlbWVudC5odG1s
CmluZGV4IDczMzkwMGVjNjc0NTJiMDFiNjMwZjMwZjYwM2E1MTY5OWI2NzYwMzQuLmFmZDBhMjBl
ZmFlNTFlZDMyNjFiMzJlNTI2NTY5ZGFmOWFiOTYzMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaHRtbC9uYXYtZWxlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9u
YXYtZWxlbWVudC5odG1sCkBAIC01MCw3ICs1MCw3IEBAIHZhciBlZCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJlZGl0YWJsZSIpOwogdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rp
b24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihlZCk7CiBkb2N1bWVudC5leGVjQ29t
bWFuZCgiRm9ybWF0QmxvY2siLCBmYWxzZSwgIm5hdiIpOwotc2VsZWN0aW9uLmNvbGxhcHNlKCk7
CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBlZC5ibHVyKCk7CiAKIHZhciB0ZXN0cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0QXJlYSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hcnRpY2xlLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcwppbmRleCA0MmUwNzBl
NGJjODZhZmMxYWNmMjEyMDI1MzI5ZTQ5OTZjOGM5ODA0Li5lYjMzOTk1NjBhYjUzMzJiNWJjOGFk
ZjVjZDdkMmZkNGZkODg1YzgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2Ny
aXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwv
c2NyaXB0LXRlc3RzL2FydGljbGUtZWxlbWVudC5qcwpAQCAtMzUsNyArMzUsNyBAQCBlZGl0YWJs
ZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihlZGl0YWJsZSk7CiBkb2N1bWVu
dC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwgJ2FydGljbGUnKTsKLXNlbGVjdGlv
bi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwogc2hvdWxkQmUoJ2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9kZU5hbWUnLCAnIkFSVElD
TEUiJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVkaXRhYmxlKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hc2lkZS1lbGVtZW50LmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9hc2lkZS1lbGVtZW50LmpzCmluZGV4
IDExMTk0NDBhN2FiN2RkY2UwZDJjOGI5NWUyYTc1ODYzYmM2NTVkZjMuLjEzYWYwOThkZjljY2Iy
MmY5YTFmNjg3M2Q4OWU1Yjc4NDZmYTJjMzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aHRtbC9zY3JpcHQtdGVzdHMvYXNpZGUtZWxlbWVudC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2h0bWwvc2NyaXB0LXRlc3RzL2FzaWRlLWVsZW1lbnQuanMKQEAgLTM1LDcgKzM1LDcgQEAgZWRp
dGFibGUuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0
U2VsZWN0aW9uKCk7CiBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRyZW4oZWRpdGFibGUpOwogZG9j
dW1lbnQuZXhlY0NvbW1hbmQoJ0Zvcm1hdEJsb2NrJywgZmFsc2UsICdhc2lkZScpOwotc2VsZWN0
aW9uLmNvbGxhcHNlKCk7CitzZWxlY3Rpb24uY29sbGFwc2UobnVsbCk7CiBzaG91bGRCZSgnZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW4yIikucGFyZW50Tm9kZS5ub2RlTmFtZScsICciQVNJ
REUiJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVkaXRhYmxlKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qcyBi
L0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvZm9vdGVyLWVsZW1lbnQuanMKaW5k
ZXggZjI4OWU0MDFmMmYwYTBmNmRhYTBhMDc1OTQ5NzdhMDk3OWU3Mzc2Yi4uZTc4OGMzYzMwN2Rl
NzI0M2NiNjAwOTVhODg5ZmEzN2RlZjZjYTg4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL3NjcmlwdC10ZXN0cy9mb290ZXItZWxlbWVudC5qcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2h0bWwvc2NyaXB0LXRlc3RzL2Zvb3Rlci1lbGVtZW50LmpzCkBAIC0zOCw3ICszOCw3IEBA
IGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9uID0gd2luZG93
LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRhYmxlKTsK
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnZm9vdGVyJyk7Ci1z
ZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBzZShudWxsKTsKIHNob3VsZEJl
KCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5wYXJlbnROb2RlLm5vZGVOYW1lJywg
JyJGT09URVIiJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVkaXRhYmxlKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVu
dC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGVhZGVyLWVsZW1lbnQu
anMKaW5kZXggNDBiZTViNTVlMGUyMjZmYmRlN2I3NGZiZDllZWYzZjZjYzg0N2QyNS4uMWE1MDEx
M2EyODc0M2VkMWQ2MmU2NDUwYmI1NWQ0YTZkMTNlYWY2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZWFkZXItZWxlbWVudC5qcworKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hlYWRlci1lbGVtZW50LmpzCkBAIC0zOCw3ICsz
OCw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0aW9uID0g
d2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVuKGVkaXRh
YmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAnaGVhZGVy
Jyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBzZShudWxsKTsKIHNo
b3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5wYXJlbnROb2RlLm5vZGVO
YW1lJywgJyJIRUFERVIiJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVkaXRhYmxlKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAt
ZWxlbWVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9zY3JpcHQtdGVzdHMvaGdyb3VwLWVs
ZW1lbnQuanMKaW5kZXggNWIyMzJkZmZkYzNhMzkxOTBiZjk2MmQ0MjIyOGU2MDVkY2U1YWU1Mi4u
MmVmZDc4NzVjZDE4ZGU2NDQ5M2FlMjRlY2M4MzI4Njg0ZTlkMzAyYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9oZ3JvdXAtZWxlbWVudC5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL2hncm91cC1lbGVtZW50LmpzCkBAIC0z
Niw3ICszNiw3IEBAIGVkaXRhYmxlLmNvbnRlbnRFZGl0YWJsZSA9IHRydWU7CiB2YXIgc2VsZWN0
aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogc2VsZWN0aW9uLnNlbGVjdEFsbENoaWxkcmVu
KGVkaXRhYmxlKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdGb3JtYXRCbG9jaycsIGZhbHNlLCAn
aGdyb3VwJyk7Ci1zZWxlY3Rpb24uY29sbGFwc2UoKTsKK3NlbGVjdGlvbi5jb2xsYXBzZShudWxs
KTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BhbjIiKS5wYXJlbnROb2Rl
Lm5vZGVOYW1lJywgJyJIR1JPVVAiJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVkaXRh
YmxlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9t
YWluLWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL21haW4t
ZWxlbWVudC5qcwppbmRleCA2ZTQ2N2NmNTg0NTIxMGZiNGRjZDQyMDhlYjFkNzNmNTMzNWY5YjFm
Li5hNjhjNmQ1YTNlMzMzYmVkZmJmZWJhZjhlNDQ5N2I2YjM5NTk1MWQwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL21haW4tZWxlbWVudC5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL21haW4tZWxlbWVudC5qcwpAQCAtMzUs
NyArMzUsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNlbGVjdGlv
biA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGlsZHJlbihl
ZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxzZSwgJ21h
aW4nKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNlKG51bGwpOwog
c2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVudE5vZGUubm9k
ZU5hbWUnLCAnIk1BSU4iJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVkaXRhYmxlKTsK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9odG1sL3NjcmlwdC10ZXN0cy9zZWN0aW9u
LWVsZW1lbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24t
ZWxlbWVudC5qcwppbmRleCBhNTc2NjNmMjM1NGQwZDQzMzJiNTljMGY0ZDk3YjM0N2Q4MDYzZWY0
Li45ZGUxNjJlMWJkYjQ2ODdmYmE0OWE4OTI0YzNhZmM4OTQ5ZWI5ZTliIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24tZWxlbWVudC5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvc2NyaXB0LXRlc3RzL3NlY3Rpb24tZWxlbWVudC5qcwpA
QCAtMzUsNyArMzUsNyBAQCBlZGl0YWJsZS5jb250ZW50RWRpdGFibGUgPSB0cnVlOwogdmFyIHNl
bGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKIHNlbGVjdGlvbi5zZWxlY3RBbGxDaGls
ZHJlbihlZGl0YWJsZSk7CiBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9ybWF0QmxvY2snLCBmYWxz
ZSwgJ3NlY3Rpb24nKTsKLXNlbGVjdGlvbi5jb2xsYXBzZSgpOworc2VsZWN0aW9uLmNvbGxhcHNl
KG51bGwpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuMiIpLnBhcmVu
dE5vZGUubm9kZU5hbWUnLCAnIlNFQ1RJT04iJyk7CiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGVkaXRhYmxlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYWNj
ZXNzaWJpbGl0eS9ldmVudC1vbi1kZWxldGVkLWlmcmFtZS1jYXVzZXMtY3Jhc2guaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2FjY2Vzc2liaWxpdHkvZXZlbnQtb24tZGVsZXRlZC1p
ZnJhbWUtY2F1c2VzLWNyYXNoLmh0bWwKaW5kZXggZTcwYTk2OGUxNjRiMjlhMGE2NGM1YjI1Yjc4
Yjc1Y2E1NWI3ODQ2Ni4uMTllMWExNDY4NzdmMWZjZTVjNDMxMGVmMjUxZjZmOWY1MzhhNzdhYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvYWNjZXNzaWJpbGl0eS9ldmVu
dC1vbi1kZWxldGVkLWlmcmFtZS1jYXVzZXMtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC9ibGluay9hY2Nlc3NpYmlsaXR5L2V2ZW50LW9uLWRlbGV0ZWQtaWZyYW1lLWNhdXNl
cy1jcmFzaC5odG1sCkBAIC0xNCw3ICsxNCw3IEBACiAgICAgdmFyIHMgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCk7CiAgICAgdmFyIHAxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIml0ZW0xIik7
CiAgICAgdmFyIHAyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIml0ZW0yIik7Ci0gICAgcy5z
ZXRCYXNlQW5kRXh0ZW50KHAxLCAwLCBwMik7CisgICAgcy5zZXRCYXNlQW5kRXh0ZW50KHAxLCAw
LCBwMiwgMCk7CiAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluZGVudCIpOwogCiAgICAgLy8g
VGhpcyBjb2RlIGRvZXNuJ3QgZG8gYW55dGhpbmcgaW5pdGlhbGx5LCBidXQgdGhlIGNvZGUgYmVs
b3cgY3JlYXRlcyBhbiBpZnJhbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL2Js
aW5rL2VkaXRpbmcvYXBwbHktaW5saW5lLXN0eWxlLXRvLWVsZW1lbnQtd2l0aC1uby1yZW5kZXJl
ci1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZWRpdGluZy9hcHBseS1p
bmxpbmUtc3R5bGUtdG8tZWxlbWVudC13aXRoLW5vLXJlbmRlcmVyLWNyYXNoLmh0bWwKaW5kZXgg
ODM1YWViMzA2OGNmMmNlMTg1OWEzMjY2Zjk1ZGIxNDA0YjU0NmE4Ny4uOWJmYTdmZDhiMjUxYWUx
NjA0Y2UzOGRhYTc1NWRiODQ2YzVkNThkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvZWRpdGluZy9hcHBseS1pbmxpbmUtc3R5bGUtdG8tZWxlbWVudC13aXRoLW5vLXJl
bmRlcmVyLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsvZWRpdGlu
Zy9hcHBseS1pbmxpbmUtc3R5bGUtdG8tZWxlbWVudC13aXRoLW5vLXJlbmRlcmVyLWNyYXNoLmh0
bWwKQEAgLTE2LDcgKzE2LDcgQEAgb25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBpbnB1dD1k
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgIHRleHRQYXRoLnBhcmVudE5vZGUu
aW5zZXJ0QmVmb3JlKGlucHV0LCB0ZXh0UGF0aCk7Ci0gICAgd2luZG93LmdldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQoaW5wdXQsIDQpOworICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5z
ZXRCYXNlQW5kRXh0ZW50KGlucHV0LCA0LCBpbnB1dCwgNCk7CiAKICAgICBkb2N1bWVudC5kZXNp
Z25Nb2RlPSdvbic7CiAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1RyYW5zcG9zZScpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91bmljb2RlLWluLXRzcGFuLW11bHRpLXN2
Zy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91bmljb2RlLWluLXRzcGFuLW11
bHRpLXN2Zy1jcmFzaC5odG1sCmluZGV4IGM4ZWEzZDQ3NjUzNzNiZmUwNDY0ZTQ3YjQzM2RjMDU5
ZDhlOTU1MDkuLjc1MTQxYzgwZjA0NWNjMjg2YzYwYTA4NDg3YTY2MmJjOTFiMzk3NDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdW5pY29kZS1pbi10c3Bhbi1tdWx0aS1zdmct
Y3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VuaWNvZGUtaW4tdHNwYW4t
bXVsdGktc3ZnLWNyYXNoLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICAgIGRvY3VtZW50LmRl
c2lnbk1vZGU9J29uJzsKICAgICAgIGZpbHRlckluRmlyc3RSb290ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2ZpbHRlckluRmlyc3RSb290Jyk7CiAgICAgICB1c2VFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZUVsZW1lbnQnKTsKLSAgICAgIHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5zZXRCYXNlQW5kRXh0ZW50KGZpbHRlckluRmlyc3RSb290LCAwKTsKKyAgICAgIHdpbmRv
dy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGZpbHRlckluRmlyc3RSb290LCAwLCBm
aWx0ZXJJbkZpcnN0Um9vdCwgMCk7CiAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9yd2Fy
ZERlbGV0ZScpOwogICAgICAgZG9jdW1lbnQuZGVzaWduTW9kZT0nb2ZmJzsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>