<?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>210320</bug_id>
          
          <creation_ts>2020-04-09 21:30:39 -0700</creation_ts>
          <short_desc>[Async overflow scrolling] Vertical scrolls over a horizontally scrollable overflow are captured</short_desc>
          <delta_ts>2020-04-10 08:44:32 -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>Scrolling</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1640025</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-09 21:30:39 -0700</bug_when>
    <thetext>[Async overflow scrolling] Vertical scrolls over a horizontally scrollable overflow are captured</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640028</commentid>
    <comment_count>1</comment_count>
      <attachid>396044</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-09 21:39:35 -0700</bug_when>
    <thetext>Created attachment 396044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640029</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-09 21:40:23 -0700</bug_when>
    <thetext>rdar://problem/60549533</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640046</commentid>
    <comment_count>3</comment_count>
      <attachid>396049</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-09 23:17:12 -0700</bug_when>
    <thetext>Created attachment 396049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640168</commentid>
    <comment_count>4</comment_count>
      <attachid>396084</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-10 08:03:41 -0700</bug_when>
    <thetext>Created attachment 396084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640179</commentid>
    <comment_count>5</comment_count>
      <attachid>396086</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-10 08:27:29 -0700</bug_when>
    <thetext>Created attachment 396086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640183</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-10 08:44:32 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/259872/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396044</attachid>
            <date>2020-04-09 21:39:35 -0700</date>
            <delta_ts>2020-04-09 22:21:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210320-20200409213934.patch</filename>
            <type>text/plain</type>
            <size>43766</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY0YjFiYThkM2YzMmVi
N2MwYWFkNjk2MjgwYTdmNzU0MjBjMDBkOS4uZTliOGMxZWQxMjc4ZmJjZGQ2ZGY0NGNhY2JiMTEx
OTJhN2Y4N2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA0LTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtBc3luYyBvdmVy
ZmxvdyBzY3JvbGxpbmddIFZlcnRpY2FsIHNjcm9sbHMgb3ZlciBhIGhvcml6b250YWxseSBzY3Jv
bGxhYmxlIG92ZXJmbG93IGFyZSBjYXB0dXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHNvbWV3aGF0IG1vcmUgc29waGlz
dGljYXRlZCBsYXRjaGluZyBsb2dpYyB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgd2hpY2gKKyAg
ICAgICAgZml4ZXMgdGhlIGluYWJpbGl0eSB0byB2ZXJ0aWNhbGx5IHNjcm9sbCBpZiB0aGUgbW91
c2UgaXMgb3ZlciBhbiBlbmNsb3NlZCBob3Jpem9udGFsIHNjcm9sbGVyLgorICAgICAgICAKKyAg
ICAgICAgU2Nyb2xsaW5nVHJlZSBvd25zIGEgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ciwgd2hpY2ggZGV0ZXJtaW5lcyB3aGVuIHRvIGxhdGNoIGFuZCBjbGVhcgorICAgICAgICBsYXRj
aGluZy4gTGF0Y2ggY2xlYXJpbmcgdXNlcyBhIDEwMG1zIGRlbGF5IChsaWtlIG1haW4gdGhyZWFk
IGxhdGNoaW5nKSBzbyB0aGF0IGEgc3RhcnRpbmcgZ2VzdHVyZQorICAgICAgICBzb29uIGFmdGVy
IGFub3RoZXIgZ2VzdHVyZSwgd2hvc2UgaW5pdGlhbCB4IGFuZCB5IGFyZSBzbWFsbCwgZ29lcyB0
byB0aGUgc2FtZSBzY3JvbGxlciBhcyBiZWZvcmUuCisgICAgICAgIAorICAgICAgICBTY3JvbGxp
bmcgdHJlZSBsYXRjaGluZyB3b3JrcyBhcyBmb2xsb3dzLiBXaGVuIHdlIHJlY2VpdmUgYSBzY3Jv
bGwgZXZlbnQgd2hpY2ggYWxsb3dzIHVzZSBvZiB0aGUKKyAgICAgICAgbGF0Y2hlZCBub2RlLCBh
bmQgdGhlcmUgaXMgYSBsYXRjaGVkIG5vZGUsIHNlbmQgdGhlIGV2ZW50IGRpcmVjdGx5IHRvIHRo
YXQgbm9kZS4gT3RoZXJ3aXNlLAorICAgICAgICBoaXQtdGVzdCB0byBmaW5kIHRoZSBtb3N0IGRl
ZXBseSBuZXN0ZWQgc2Nyb2xsIHRhcmdldC4gVHJhdmVyc2UgdXAgdGhlIHBhcmVudCBjaGFpbiBn
aXZpbmcgZWFjaCBub2RlCisgICAgICAgIGFuIG9wcG9ydHVuaXR5IHRvIGhhbmRsZSB0aGUgZXZl
bnQuIElmIGhhbmRsZWQgYnkgYSBub2RlLCB0aGF0IG5vZGUgYmVjb21lcyB0aGUgbGF0Y2hlZCBu
b2RlLgorICAgICAgICAKKyAgICAgICAgU2Nyb2xsaW5nVHJlZSBubyBsb25nZXIgdHJhY2tzIHRo
ZSBsYXRjaGVkIG5vZGUgaXRzZWxmLgorCisgICAgICAgIFRlc3RzOiBzY3JvbGxpbmdjb29yZGlu
YXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwKKyAg
ICAgICAgICAgICAgIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwKKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlSUQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFzTGF0Y2hlZE5vZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2ZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmxhdGNoZWROb2Rl
SUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlcjo6bm9kZURpZEhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVMYXRjaGluZ0NvbnRyb2xsZXI6Om5vZGVXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmNsZWFyTGF0Y2hlZE5vZGUpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDog
QWRkZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Omlz
TGF0Y2hlZE5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNhblNjcm9sbFdpdGhXaGVlbEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxMaW1pdFJlYWNoZWQgY29uc3Qp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQpOgorCiAyMDIwLTA0LTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggZm9yIGNyYXNoIGluIHRlc3QgYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJjaHkuaHRtbCBpbiBpc29sYXRlZCB0cmVlIG1v
ZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGIyNzA1MGQ2MmQyOTM5YjZiY2Q1MzBjM2ExOTRjYTcwYjlk
NjU4NTcuLjc0MmE2NWZmNDdiYmEzNGUxNTkyYzhhYmU0ZmVkZDhlNDM0MjFjNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNzM1LDYgKzE3MzUsNyBAQCBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJl
YWQuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05vZGUuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmNwcAogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5j
cHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNh
ZDUzY2Y1ZDJkNzc4ZmQ4YzZiZDZhYTI2NmUwZTcxODRiMDE3MDUuLmUyOGFhYzE2MWMzZWI1M2Mw
ZmFkZjA0OGQyNjZkOTMwNDJkMTFlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MSw2ICszNzEsNyBAQAogCQkwRkY1MDI3
MjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxl
TWVkaWEuaCAqLzsgfTsKIAkJMEZGODM1QzMxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjgzNUJFMUVF
MzU0REEwMDhCNENDNyAvKiBET01RdWFkLmggKi87IH07CiAJCTBGRjgzNUM1MUVFMzU0REEwMDhC
NENDNyAvKiBET01RdWFkSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZGODM1QzAxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmggKi87
IH07CisJCTBGRkQ0NUFBMjQzQzMwMjcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkZENDVBNzI0M0JGMjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZENEQ1RjE4
NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTEwRkIwODRCMTRFMTVDN0Uw
MEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJM
TWFuYWdlci5oICovOyB9OwogCQkxMTJCMzRENTFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxlTGlu
ZUxheW91dFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFn
aW5hdGlvbi5oICovOyB9OwpAQCAtNTk4OSw2ICs1OTkwLDggQEAKIAkJMEZGODM1QkYxRUUzNTRE
QTAwOEI0Q0M3IC8qIERPTVF1YWQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVF1YWQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY4MzVDMDFFRTM1NERBMDA4QjRD
QzcgLyogRE9NUXVhZEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
UXVhZEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGODM1QzExRUUzNTRE
QTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01R
dWFkSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkQ0NUE3MjQzQkYy
NTcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEZGRDQ1QTgyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkQ0
RDVFMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZENEQ1RjE4NjUxRkEzMDA1
MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQ3LDYgKzE3NTUwLDggQEAKIAkJ
CQkwRkQ0MUU2NjIxRjgwMjgyMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05v
ZGUuaCAqLywKIAkJCQkwRkVBM0U4NTE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZS5jcHAgKi8sCiAJCQkJMEZFQTNFODYxOTFCM0JENzAwMEYxQjU1IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCAqLywKKwkJCQkwRkZENDVBODI0M0JG
MjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAgKi8sCisJ
CQkJMEZGRDQ1QTcyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIuaCAqLywKIAkJCQkxQUFBRERFMTE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwICovLAogCQkJCTFBQUFEREUyMTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdU
cmVlTm9kZS5oICovLAogCQkJCTBGRUEzRTdEMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmNwcCAqLywKQEAgLTMyNjI4LDYgKzMyNjMzLDcgQEAK
IAkJCQkwRkQ0MUU2ODIxRjgwQzBFMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTg4MTkxQjNCRDcwMDBGMUI1NSAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0M0
QTQxNTE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRDQ1QUEyNDNDMzAyNzAwMEQ0QkVBIC8qIFNjcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTU4MDY0
MTkzMjdBNjIwMERFMzJFQiAvKiBTY3JvbGxpbmdUcmVlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUFBRERFNDE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZDkyMjVkMTA5Nzc1OTM3NDc5
OGIzOTkxYWI3MjA1OGZkYTVkOGNlNC4uNjlmYTJmMDM2MTEzNDkwMzVjMjIwZTM2NTdkODIxOTk0
ZjU5ZDljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xs
aW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSgpID0gZGVmYXVsdDsKLQogU2Nyb2xsaW5nVHJlZTo6flNj
cm9sbGluZ1RyZWUoKSA9IGRlZmF1bHQ7CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFu
ZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQpAQCAtNTMsMTMgKzUyLDEwIEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFu
ZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAg
Ly8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCiAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAgYm9vbCBzaG91bGRT
ZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpOwotICAgIAotICAg
IGlmIChoYXNMYXRjaGVkTm9kZSgpICYmICFzaG91bGRTZXRMYXRjaCkKKyAgICBpZiAobV9sYXRj
aGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3aGVlbEV2ZW50KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHNob3VsZFNldExhdGNoKQotICAgICAgICBtX3RyZWVT
dGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKKyAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZl
ZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgCiAgICAgaWYgKCFtX3RyZWVTdGF0ZS5ldmVu
dFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5KCkgJiYgbV9yb290Tm9kZSkgewogICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwpAQCAtNzksMjYgKzc1LDE3
IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCi17Ci0gICAgaWYgKHdo
ZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7Ci0gICAgICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8
PCAiIHNldE9yQ2xlYXJMYXRjaGVkTm9kZTogc2V0dGluZyBsYXRjaGVkIG5vZGUgIiA8PCBub2Rl
SUQpOwotICAgICAgICBzZXRMYXRjaGVkTm9kZShub2RlSUQpOwotICAgIH0gZWxzZSBpZiAod2hl
ZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIg
c2V0T3JDbGVhckxhdGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUgKHdhcyAiIDw8IGxh
dGNoZWROb2RlKCkgPDwgIikiKTsKLSAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOwotICAgIH0K
LX0KLQogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0gICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8PCAi
IGhhbmRsZVdoZWVsRXZlbnQgKGFzeW5jIHNjcm9sbGluZyBlbmFibGVkOiAiIDw8IGFzeW5jRnJh
bWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpIDw8ICIpIik7CisgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIg
aGFuZGxlV2hlZWxFdmVudCAoYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQ6ICIgPDwgYXN5bmNGcmFt
ZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkgPDwgIikiKTsKIAogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJlZU11dGV4KTsKIAogICAgIGlmIChpc01vbml0b3JpbmdXaGVlbEV2ZW50cygp
KQogICAgICAgICByZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKKyAgICBtX2xhdGNo
aW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisKICAgICBpZiAo
IWFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICht
X3Jvb3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuIG1fcm9vdE5vZGUtPmhhbmRsZVdoZWVsRXZl
bnQod2hlZWxFdmVudCk7CkBAIC0xMDYsMjkgKzkzLDI5IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0
IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZl
bnQ7CiAgICAgfQogCi0gICAgaWYgKGhhc0xhdGNoZWROb2RlKCkpIHsKLSAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnQ6IGhhcyBsYXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9kZSgpKTsKLSAgICAg
ICAgYXV0byogbm9kZSA9IG5vZGVGb3JJRChsYXRjaGVkTm9kZSgpKTsKKyAgICBpZiAoYXV0byBs
YXRjaGVkTm9kZUlEID0gbV9sYXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3
aGVlbEV2ZW50KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudDogaGFzIGxhdGNoZWQgbm9k
ZSAiIDw8IGxhdGNoZWROb2RlSUQpOworICAgICAgICBhdXRvKiBub2RlID0gbm9kZUZvcklEKGxh
dGNoZWROb2RlSUQudmFsdWUoKSk7CiAgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZT4obm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU+KCpub2RlKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAg
IH0KIAotICAgIGlmIChtX3Jvb3ROb2RlKSB7Ci0gICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb24g
PSB3aGVlbEV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgICAgIHBvc2l0aW9uLm1vdmUobV9yb290Tm9k
ZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24pKTsKLSAgICAgICAgYXV0byBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9u
KTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOworICAg
IHBvc2l0aW9uLm1vdmUobV9yb290Tm9kZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3Rh
dGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pKTsKKyAgICBhdXRvIG5vZGUgPSBzY3JvbGxpbmdO
b2RlRm9yUG9pbnQocG9zaXRpb24pOwogCi0gICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCBmb3VuZCBub2Rl
ICIgPDwgKG5vZGUgPyBub2RlLT5zY3JvbGxpbmdOb2RlSUQoKSA6IDApIDw8ICIgZm9yIHBvaW50
ICIgPDwgcG9zaXRpb24gPDwgIlxuIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50IGZvdW5kIG5vZGUgIiA8
PCAobm9kZSA/IG5vZGUtPnNjcm9sbGluZ05vZGVJRCgpIDogMCkgPDwgIiBmb3IgcG9pbnQgIiA8
PCBwb3NpdGlvbik7CiAKLSAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgICAgIGlmIChp
czxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7Ci0gICAgICAgICAgICAgICAg
YXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
Pigqbm9kZSk7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gY29uc3Vs
dCBsYXRjaGluZyBsb2dpYy4KLSAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nTm9kZS5oYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5k
bGVFdmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWRIYW5kbGVFdmVudDsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBpZiAoaXM8U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKSkgeworICAgICAgICAgICAgYXV0byYgc2Ny
b2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSk7
CisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBjb25zdWx0IGxhdGNoaW5nIGxv
Z2ljLgorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KSA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpIHsKKyAgICAg
ICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQod2hlZWxF
dmVudCwgc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQoKTsKICAgICAgICAgfQorICAgICAg
ICBub2RlID0gbm9kZS0+cGFyZW50KCk7CiAgICAgfQogICAgIHJldHVybiBTY3JvbGxpbmdFdmVu
dFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiB9CkBAIC0xOTUsOCArMTgyLDcgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0
YXRlVHJlZT4gc2Nyb2xsaW4KICAgICB1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShyb290Tm9kZSwg
b3JwaGFuTm9kZXMsIHVudmlzaXRlZE5vZGVzKTsKICAgICAKICAgICBmb3IgKGF1dG8gbm9kZUlE
IDogdW52aXNpdGVkTm9kZXMpIHsKLSAgICAgICAgaWYgKG5vZGVJRCA9PSBtX3RyZWVTdGF0ZS5s
YXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOworICAgICAgICBt
X2xhdGNoaW5nQ29udHJvbGxlci5ub2RlV2FzUmVtb3ZlZChub2RlSUQpOwogICAgICAgICAKICAg
ICAgICAgTE9HKFNjcm9sbGluZywgIlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSAtIHJl
bW92aW5nIHVudmlzaXRlZCBub2RlICUiIFBSSXU2NCwgbm9kZUlEKTsKICAgICAgICAgbV9ub2Rl
TWFwLnJlbW92ZShub2RlSUQpOwpAQCAtMzQxLDExICszMjcsMjcgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlOjpub3RpZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmIG5vZGUp
CiAgICAgfQogfQogCitPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IFNjcm9sbGluZ1RyZWU6Omxh
dGNoZWROb2RlSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2xhdGNoaW5nQ29udHJvbGxlci5s
YXRjaGVkTm9kZUlEKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9k
ZSgpCit7CisgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIuY2xlYXJMYXRjaGVkTm9kZSgpOworfQor
CiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQgPSBlbmFibGVkOwogfQogCitGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV90cmVlU3RhdGVNdXRl
eC5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb247Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24oRmxvYXRQb2ludCBwb3NpdGlvbikKIHsKICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3Rh
dGVNdXRleCk7CkBAIC00NTYsMjQgKzQ1OCw2IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nUGVy
Zm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsKIH0KIAotU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1Ry
ZWU6OmxhdGNoZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11
dGV4KTsKLSAgICByZXR1cm4gbV90cmVlU3RhdGUubGF0Y2hlZE5vZGVJRDsKLX0KLQotdm9pZCBT
Y3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZSkKLXsKLSAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAgICBtX3RyZWVTdGF0ZS5s
YXRjaGVkTm9kZUlEID0gbm9kZTsKLX0KLQotdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVhckxhdGNo
ZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAg
ICBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKLX0KLQogU3RyaW5nIFNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQoU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3Ig
YmVoYXZpb3IpCiB7CiAgICAgVGV4dFN0cmVhbSB0cyhUZXh0U3RyZWFtOjpMaW5lTW9kZTo6TXVs
dGlwbGVMaW5lKTsKQEAgLTQ4NCw4ICs0NjgsOCBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAgICAg
IGlmIChtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJsYXRjaGVkIG5vZGUiLCBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAg
aWYgKGF1dG8gbGF0Y2hlZE5vZGVJRCA9IG1fbGF0Y2hpbmdDb250cm9sbGVyLmxhdGNoZWROb2Rl
SUQoKSkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibGF0Y2hlZCBub2RlIiwgbGF0Y2hl
ZE5vZGVJRC52YWx1ZSgpKTsKIAogICAgICAgICBpZiAoIW1fdHJlZVN0YXRlLm1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uLmlzWmVybygpKQogICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJtYWlu
IGZyYW1lIHNjcm9sbCBwb3NpdGlvbiIsIG1fdHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCBlZTY3YjcxMTgyNThjMzRiMWRjM2MwM2E1NzhiNDRmNTI4ZjJlMTBhLi44ZDMxYjNhZTI4
NTgwMWY1ZDI4MmNhMTQ3MjAyZmNmZTgyZDMzOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVjdEVkZ2VzLmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJT
Y3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCIKKyNp
bmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtNTEsNiArNTMsNyBAQCBjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRp
b25lZE5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIAogY2xhc3MgU2Ny
b2xsaW5nVHJlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7
CitmcmllbmQgY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjsKIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdUcmVlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+U2Nyb2xsaW5nVHJlZSgpOwpAQCAtMTQwLDE0ICsxNDMsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCk7CiAKICAgICBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlKiByb290Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdE5vZGUuZ2V0KCk7IH0KLQotICAgIFNjcm9sbGluZ05vZGVJRCBsYXRjaGVkTm9kZSgpOwot
ICAgIHZvaWQgc2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBPcHRpb25hbDxT
Y3JvbGxpbmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyTGF0
Y2hlZE5vZGUoKTsKIAotICAgIGJvb2wgaGFzTGF0Y2hlZE5vZGUoKSBjb25zdCB7IHJldHVybiBt
X3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEOyB9Ci0gICAgdm9pZCBzZXRPckNsZWFyTGF0Y2hlZE5v
ZGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKTsKLQogICAgIGJv
b2wgaGFzRml4ZWRPclN0aWNreSgpIGNvbnN0IHsgcmV0dXJuICEhbV9maXhlZE9yU3RpY2t5Tm9k
ZUNvdW50OyB9CiAgICAgdm9pZCBmaXhlZE9yU3RpY2t5Tm9kZUFkZGVkKCkgeyArK21fZml4ZWRP
clN0aWNreU5vZGVDb3VudDsgfQogICAgIHZvaWQgZml4ZWRPclN0aWNreU5vZGVSZW1vdmVkKCkK
QEAgLTE3Myw2ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVubG9ja0xheWVy
c0ZvckhpdFRlc3RpbmcoKSB7IH0KIAogcHJvdGVjdGVkOgorICAgIEZsb2F0UG9pbnQgbWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKEZsb2F0UG9pbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3JvbGxp
bmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
OwpAQCAtMTk1LDEzICsxOTQsMTMgQEAgcHJpdmF0ZToKICAgICB1c2luZyBTY3JvbGxpbmdUcmVl
Tm9kZU1hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+PjsKICAgICBTY3JvbGxpbmdUcmVlTm9kZU1hcCBtX25vZGVNYXA7CiAKKyAgICBTY3JvbGxp
bmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyIG1fbGF0Y2hpbmdDb250cm9sbGVyOwogICAgIFJlbGF0
ZWROb2Rlc01hcCBtX292ZXJmbG93UmVsYXRlZE5vZGVzTWFwOwogCiAgICAgSGFzaFNldDxSZWY8
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlPj4gbV9hY3RpdmVPdmVyZmxvd1Nj
cm9sbFByb3h5Tm9kZXM7CiAgICAgSGFzaFNldDxSZWY8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWRO
b2RlPj4gbV9hY3RpdmVQb3NpdGlvbmVkTm9kZXM7CiAKICAgICBzdHJ1Y3QgVHJlZVN0YXRlIHsK
LSAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIGxhdGNoZWROb2RlSUQgeyAwIH07CiAgICAgICAgIEV2
ZW50VHJhY2tpbmdSZWdpb25zIGV2ZW50VHJhY2tpbmdSZWdpb25zOwogICAgICAgICBGbG9hdFBv
aW50IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogICAgICAgICBib29sIG1haW5GcmFtZUlzUnVi
YmVyQmFuZGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFhNjdjZDRhNDRiNWVmNmZhN2M0NGYyZWUwNDM2OWY0YzNjMTUxZTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9s
bGVyLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9s
bGluZ1RocmVhZC5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisvLyBTZWUgYWxzbyBFdmVudEhhbmRsZXJNYWMuY3BwCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyByZXNldExhdGNoZWRTdGF0ZVRpbWVvdXQgeyAxMDBfbXMgfTsKKworU2Nyb2xsaW5n
VHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigp
ID0gZGVmYXVsdDsKKwordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNl
aXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorewor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF0Y2hlZE5vZGVNdXRleCk7CisgICAgaWYgKHdoZWVs
RXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7CisgICAgICAgIGlmIChtX2xhdGNoZWRO
b2RlSUQpIHsKKyAgICAgICAgICAgIGF1dG8gc2Vjb25kc1NpbmNlTGFzdEludGVyYWN0aW9uID0g
TW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lOwor
ICAgICAgICAgICAgaWYgKHNlY29uZHNTaW5jZUxhc3RJbnRlcmFjdGlvbiA+IHJlc2V0TGF0Y2hl
ZFN0YXRlVGltZW91dCkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxM
YXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwg
dGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgc2Vjb25kc1NpbmNlTGFzdEludGVy
YWN0aW9uLm1pbGxpc2Vjb25kcygpIDw8ICJtcyBzaW5jZSBsYXN0IGV2ZW50LCBjbGVhcmluZyBs
YXRjaGVkIG5vZGUiKTsKKyAgICAgICAgICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVzZXQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworT3B0aW9uYWw8U2Nyb2xsaW5n
Tm9kZUlEPiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKK3sKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworCisgICAgLy8gSWYgd2UgaGF2
ZSBhIGxhdGNoZWQgbm9kZSwgdXNlIGl0LgorICAgIGlmICh3aGVlbEV2ZW50LnVzZUxhdGNoZWRF
dmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIgIiA8PCB0aGlzIDw8ICIgbGF0Y2hlZE5vZGVGb3JFdmVudDogcmV0dXJuaW5nICIgPDwg
bV9sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAgcmV0dXJuIG1fbGF0Y2hlZE5vZGVJRC52YWx1ZSgp
OworICAgIH0KKworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK09wdGlvbmFsPFNjcm9s
bGluZ05vZGVJRD4gU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6bGF0Y2hlZE5vZGVJ
RCgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsK
KyAgICByZXR1cm4gbV9sYXRjaGVkTm9kZUlEOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXI6Om5vZGVEaWRIYW5kbGVFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQpCit7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsKKworICAgIGlmICh3aGVlbEV2
ZW50LnVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQgPT0gc2Nyb2xs
aW5nTm9kZUlEKSB7CisgICAgICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
d2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRIYW5kbGVFdmVudDog
bGF0Y2hpbmcgdG8gIiA8PCBzY3JvbGxpbmdOb2RlSUQpOworICAgIG1fbGF0Y2hlZE5vZGVJRCA9
IHNjcm9sbGluZ05vZGVJRDsKKyAgICBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29u
dHJvbGxlcjo6bm9kZVdhc1JlbW92ZWQoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIGlmIChub2RlSUQgPT0g
bV9sYXRjaGVkTm9kZUlEKQorICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVzZXQoKTsKK30KKwor
dm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpjbGVhckxhdGNoZWROb2RlKCkK
K3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIG1fbGF0
Y2hlZE5vZGVJRC5yZXNldCgpOworfQorCit9OworCisjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Zjg4OWQ3
YTY1ZmU5OTUzNzNjYTFjZmQ2MzI1ZTdjNTcwNDhmNzM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9NYXJrYWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xs
aW5nVHJlZTsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciB7CitwdWJs
aWM6CisgICAgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigpOworCisgICAgdm9pZCBy
ZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgT3B0aW9u
YWw8U2Nyb2xsaW5nTm9kZUlEPiBsYXRjaGVkTm9kZUZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpIGNvbnN0OworICAgIHZvaWQgbm9kZURpZEhhbmRsZUV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCk7CisKKyAgICBPcHRpb25hbDxTY3JvbGxp
bmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKKworICAgIHZvaWQgbm9kZVdhc1JlbW92
ZWQoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2b2lkIGNsZWFyTGF0Y2hlZE5vZGUoKTsKKworcHJp
dmF0ZToKKworICAgIG11dGFibGUgTG9jayBtX2xhdGNoZWROb2RlTXV0ZXg7CisgICAgTWFya2Fi
bGU8U2Nyb2xsaW5nTm9kZUlELCBJbnRlZ3JhbE1hcmthYmxlVHJhaXRzPFNjcm9sbGluZ05vZGVJ
RCwgMD4+IG1fbGF0Y2hlZE5vZGVJRDsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdExhdGNoZWRO
b2RlSW50ZXJhdGlvblRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGRjYjBhMDk0NmRhZjNlM2ZlYTAy
NGE4NjI2MWE4NmJjODk2NzEyM2EuLmZjOGY3NzcwOWNjNzA5MzhlYTJmOGE1MDdjMGUzYzE0MTZk
NTVmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEyMCw2ICsxMjAsMjAgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm8KICAgICBtX2lzRmlyc3RDb21taXQgPSBmYWxzZTsKIH0KIAor
Ym9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9kZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0gc2Nyb2xsaW5n
Tm9kZUlEKCk7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhblNjcm9s
bFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29u
c3QKK3sKKyAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIFdlIGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0
aGUgcm9vdCBub2RlLgorICAgIHJldHVybiBpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgp
IHx8ICFzY3JvbGxMaW1pdFJlYWNoZWQod2hlZWxFdmVudCk7Cit9CisKIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpCiB7CiAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKQEAgLTE0Niw3ICsxNjAsNyBAQCBGbG9hdFBvaW50IFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsTGltaXRSZWFjaGVkKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBGbG9hdFBvaW50IG9s
ZFNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRQb2lu
dCBuZXdTY3JvbGxQb3NpdGlvbiA9IG9sZFNjcm9sbFBvc2l0aW9uICsgRmxvYXRTaXplKHdoZWVs
RXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKKyAgICBGbG9hdFBvaW50IG5l
d1Njcm9sbFBvc2l0aW9uID0gb2xkU2Nyb2xsUG9zaXRpb24gKyBGbG9hdFNpemUoLXdoZWVsRXZl
bnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKICAgICBuZXdTY3JvbGxQb3NpdGlv
biA9IG5ld1Njcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5pbXVtU2Nyb2xsUG9z
aXRpb24oKSwgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIHJldHVybiBuZXdTY3JvbGxQ
b3NpdGlvbiA9PSBvbGRTY3JvbGxQb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IGEyYzAyMWVmZDBjMzIwOWNlYTcyZDMyNWZmYjBhN2MyZTQ4ZmVhZjIuLmY4ZDNjY2YxNTk1NGE4
ZWIyMDdjYWQ2MTc0ZGFiMTAwYmUyYjFiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNTMs
NiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogCisgICAg
dmlydHVhbCBib29sIGNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAogICAgIEZsb2F0UG9pbnQgY3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b247IH0KQEAgLTEyNCw2ICsxMjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBGbG9hdFNp
emUmIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxlQ29u
dGVudHNTaXplOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CisgICAgCisgICAgYm9vbCBpc0xhdGNoZWROb2RlKCkg
Y29uc3Q7CiAKICAgICAvLyBJZiB0aGUgdG90YWxDb250ZW50c1NpemUgY2hhbmdlcyBpbiB0aGUg
bWlkZGxlIG9mIGEgcnViYmVyLWJhbmQsIHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBvbGQgdG90
YWxDb250ZW50c1NpemUgZm9yIHRoZSBzYWtlIG9mCiAgICAgLy8gY29tcHV0aW5nIHRoZSBzdHJl
dGNoQW1vdW50KCkuIFVzaW5nIHRoZSBvbGQgdmFsdWUgd2lsbCBrZWVwIHRoZSBhbmltYXRpb24g
c21vb3RoLiBXaGVuIHRoZXJlIGlzIG5vIHJ1YmJlci1iYW5kIGluIHByb2dyZXNzIGF0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IGI4MTBiMzAxNGVj
ZjAwYmZlYzcwMGY0YTY0ZTk4YTk2NDliNjBmNzguLmI5MWFjOThiNjVjYWNiZTNjNjJiYmM0YTFh
NGUzODczNDMzNThmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
TWFjLm1tCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW4KIAogU2Ny
b2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0g
ICAgaWYgKCFjYW5IYXZlU2Nyb2xsYmFycygpKQorICAgIGlmICghY2FuU2Nyb2xsV2l0aFdoZWVs
RXZlbnQod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
RGlkTm90SGFuZGxlRXZlbnQ7CiAKICAgICBib29sIGhhbmRsZWQgPSBtX2RlbGVnYXRlLmhhbmRs
ZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CkBAIC0xNjIsNyArMTYyLDYgQEAgU2Nyb2xsaW5nRXZl
bnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxF
dmVudChjb25zdAogICAgIGlmIChtX2RlbGVnYXRlLmFjdGl2ZVNjcm9sbFNuYXBJbmRleERpZENo
YW5nZSgpKQogICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0QWN0aXZlU2Nyb2xsU25hcEluZGlj
ZXMoc2Nyb2xsaW5nTm9kZUlEKCksIG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9y
QXhpcyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpLCBtX2RlbGVnYXRlLmFjdGl2ZVNjcm9s
bFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCkpOwogI2VuZGlmCi0g
ICAgc2Nyb2xsaW5nVHJlZSgpLnNldE9yQ2xlYXJMYXRjaGVkTm9kZSh3aGVlbEV2ZW50LCBzY3Jv
bGxpbmdOb2RlSUQoKSk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLmhhbmRsZVdoZWVsRXZlbnRQaGFz
ZSh3aGVlbEV2ZW50LnBoYXNlKCkpOwogICAgIAogICAgIHJldHVybiBoYW5kbGVkID8gU2Nyb2xs
aW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50IDogU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRp
ZE5vdEhhbmRsZUV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbQppbmRleCA0NGJkZWJiMzQ3YzU3NTI5YTk1NDI4Yzk0MDkwNWZkZTM1ZDcyMGQ3
Li40ZTc2ZjYwOGU3NWRhZWUxNGVkYzdlZWYwY2U2YWI3ZDU4YmQ2ZDUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtNjksMTQgKzY5LDEz
IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAKIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewotICAgIGlmICghY2FuSGF2ZVNjcm9s
bGJhcnMoKSkKKyAgICBpZiAoIWNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KHdoZWVsRXZlbnQpKQog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50Owog
CiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCiAgICAgLy8g
RklYTUU6IFNjcm9sbCBzbmFwCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0T3JDbGVhckxhdGNo
ZWROb2RlKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICBzY3JvbGxpbmdUcmVl
KCkuaGFuZGxlV2hlZWxFdmVudFBoYXNlKHdoZWVsRXZlbnQucGhhc2UoKSk7CiAgICAgCiAgICAg
Ly8gRklYTUU6IFRoaXMgbmVlZHMgdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBoYW5k
bGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDRjM2MyMzZmMjY0ZjRjOTMwNDgyZDJkMGY2ZTY3MDhhNDMzZGMyNWUuLmEz
N2ZhYThiZThhZjczYWRkNWJhYzkzYTcxYzE0YzY5ZmRmZjdiZDEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAyMC0wNC0wOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
KworICAgICAgICBbQXN5bmMgb3ZlcmZsb3cgc2Nyb2xsaW5nXSBWZXJ0aWNhbCBzY3JvbGxzIG92
ZXIgYSBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZSBvdmVyZmxvdyBhcmUgY2FwdHVyZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDMyMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGZvciBob3Jp
em9udGFsIGluc2lkZSB2ZXJ0aWNhbCBvdmVyZmxvdywgdGVzdCB0aGF0IGhpdC10ZXN0aW5nIGlu
c2lkZSBzY3JvbGxlZC10by1saW1pdCBob3Jpem9udGFsIHNjcm9sbGVycworICAgICAgICBzdGls
bCBhbGxvd3MgZm9yIHN3aXBlIG5hdmlnYXRpb24sIGFuZCB0ZXN0IHRoZSBsYXRjaGluZyB0aW1l
b3V0LgorCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNt
YWxsLWRlbHRhcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvbGF0Y2hp
bmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy5odG1sOgorICAgICAgICAqIHNjcm9sbGluZ2Nv
b3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWJhY2stc3dpcGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0
Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93
LWluLXZlcnRpY2FsLW92ZXJmbG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Ny
b2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctaW4tdmVy
dGljYWwtb3ZlcmZsb3cuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDkgIERhbmllbCBCYXRlcyAg
PGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdOiBOZXcgdGVzdCBsYW5kZWQgZm9y
IHIyNTk3NjIgbGFuZGVkIGJyb2tlbjogZWRpdGluZy9lZGl0YWJsZS1yZWdpb24vaGl0LXRlc3Qt
b3ZlcmxhcC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMtZXhwZWN0
ZWQudHh0CmluZGV4IDA2NzY4YTkyNzhiMDU3YTQwZjU3OWY3ZDk2MzIwMmZhZDg0ODA5YmQuLjRm
ZjI0ZjAzMzE0ODA4MWEyNGJlNGEwMzFmNTA1NWQ1YzgwNzY5MDcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lm
cmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMtZXhwZWN0ZWQudHh0CkBAIC0xMyw3ICsxMyw3IEBAIEFm
dGVyIHdhaXQKIFBBU1MgaWZyYW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQgaXMg
NTAwCiBQQVNTIHdpbmRvdy5wYWdlWU9mZnNldCBpcyAyMDAKIEZBSUwgaWZyYW1lVGFyZ2V0LmNv
bnRlbnRXaW5kb3cucGFnZVlPZmZzZXQgc2hvdWxkIGJlIDQ4MC4gV2FzIDUwMC4KLUZBSUwgd2lu
ZG93LnBhZ2VZT2Zmc2V0IHNob3VsZCBiZSAyMDAuIFdhcyAxODAuCitQQVNTIHdpbmRvdy5wYWdl
WU9mZnNldCBpcyAyMDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
aWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy5odG1sCmluZGV4IDkxY2JjZTRk
YmRhODgyYTQzYTA2ZmNlMjg0YjVkMjk3ZDUxYjQzZmMuLjFjMDJlMzM3ODg3YmRjMDNlMzJhNjZi
OGVjYmFlNTMzMTU3MzRmMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLmh0bWwK
QEAgLTQ5LDcgKzQ5LDYgQEAKICAgICAgICAgICAgIHNob3VsZEJlKCdpZnJhbWVUYXJnZXQuY29u
dGVudFdpbmRvdy5wYWdlWU9mZnNldCcsICc1MDAnKTsKICAgICAgICAgICAgIHNob3VsZEJlKCd3
aW5kb3cucGFnZVlPZmZzZXQnLCAnMjAwJyk7CiAKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
bml0b3JXaGVlbEV2ZW50cygpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwogICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKC0xLCAxLCAnY2hhbmdlZCcsICdub25lJyk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMSwgJ2NoYW5nZWQnLCAn
bm9uZScpOwpAQCAtNjIsNyArNjEsNyBAQAogICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAg
ICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkgCisgICAgICAgIGZ1
bmN0aW9uIHNldHVwVG9wTGV2ZWwoKQogICAgICAgICB7CiAgICAgICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBhIHNlY29uZCBzY3JvbGwgd2l0aCBzbWFsbCB4L3kgZGVsdGFzIHVzZXMg
bGF0Y2hpbmcgZnJvbSBhbiBlYXJsaWVyIHNjcm9sbC4iKTsKICAgICAgICAgICAgIHNldFRpbWVv
dXQoc2Nyb2xsVGVzdCwgMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29y
ZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9o
b3Jpem9udGFsLW92ZXJmbG93LWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcw
ZGMzMTlhN2Y4YTQ0MDk4MjY5NTNkOWFhNjAwNzA0OTgyNDZhMWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRh
bC1vdmVyZmxvdy1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitTY3Jv
bGxzIHZlcnRpY2FsbHkKK1Njcm9sbHMgaG9yaXpvbnRhbGx5CitBIGJhY2sgc3dpcGUsIG92ZXIg
YSBzY3JvbGxlZC10by1sZWZ0IG92ZXJmbG93LCBzaG91bGQgc3RhcnQgYSBuYXZpZ2F0aW9uIGdl
c3R1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTd2lwZSB0byB0aGUgbGVm
dAorUEFTUyBtaW5YT2Zmc2V0IGlzIDAKK1BBU1MgbWF4WE9mZnNldCBpcyAtMTAwMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWJhY2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5h
dG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWJhY2stc3dpcGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNDdlZDY5YWQ3ZTE2N2VjNjEzZjYyYTQwYmY1MDRhNzFmZjIxNjI5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5n
L2hvcml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8
IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092
ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
dHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAg
ICAgfQorCisgICAgICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7Cisg
ICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAg
ICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBi
bGFjazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmhvcml6b250YWwgLnNjcm9sbGVy
IHsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7
CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IC5maWxsZXIgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDAlOworICAgICAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogc2lsdmVyOworICAgICAgICB9CisKKyAgICAgICAgLmhvcml6b250YWwgLmZpbGxl
ciB7CisgICAgICAgICAgICBoZWlnaHQ6IDgwJTsKKyAgICAgICAgICAgIHdpZHRoOiAyMDAlOwor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgCisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgdmFyIG1pblhPZmZzZXQgPSAwOworICAgICAgICB2YXIgbWF4
WE9mZnNldCA9IC0xMDAwOworICAgICAgICAKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gb25TY3Jv
bGxDb21wbGV0aW9uKHgsIHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
bml0b3JXaGVlbEV2ZW50cygpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eCwgeSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMSwgMCwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxMCwgMCwgImNo
YW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEwLCAwLCAiY2hhbmdlZCIsICJub25lIik7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMTAsIDAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9u
ZSIpOworICAgICAgICAgICAgcmV0dXJuIFVJSGVscGVyLndhaXRGb3JTY3JvbGxDb21wbGV0aW9u
KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uU3dpcGVD
YWxsYmFjaygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBl
Q2FsbGJhY2socmVzb2x2ZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHNjcm9sbFRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNj
cmlwdGlvbignQSBiYWNrIHN3aXBlLCBvdmVyIGEgc2Nyb2xsZWQtdG8tbGVmdCBvdmVyZmxvdywg
c2hvdWxkIHN0YXJ0IGEgbmF2aWdhdGlvbiBnZXN0dXJlLicpOworCisgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldE5hdmln
YXRpb25HZXN0dXJlc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGhpc3RvcnkucHVzaFN0YXRlKHsgbmFtZTogJ2JhY2tzdGF0ZScgfSwgJ2JhY2snKTsKKworICAg
ICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHsKKyAgICAg
ICAgICAgICAgICBtaW5YT2Zmc2V0ID0gTWF0aC5taW4obWluWE9mZnNldCwgd2luZG93LnBhZ2VY
T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBtYXhYT2Zmc2V0ID0gTWF0aC5tYXgobWF4WE9mZnNl
dCwgd2luZG93LnBhZ2VYT2Zmc2V0KTsKKyAgICAgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAg
ICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGNvbnN0IG1vdXNlTG9jYXRpb25YID0gMTUwOyAvLyBPdmVyIHRoZSBob3Jpem9udGFs
bHkgc2Nyb2xsYWJsZSBvdmVyZmxvdy4KKyAgICAgICAgICAgIGNvbnN0IG1vdXNlTG9jYXRpb25Z
ID0gMzAwOworCisgICAgICAgICAgICBkZWJ1ZygnU3dpcGUgdG8gdGhlIGxlZnQnKTsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW29uU2Nyb2xsQ29tcGxldGlv
bihtb3VzZUxvY2F0aW9uWCwgbW91c2VMb2NhdGlvblkpLCBvblN3aXBlQ2FsbGJhY2soKV0pOwor
CisgICAgICAgICAgICAvLyBTaG91bGQgbm90IGhhdmUgcmVjZWl2ZWQgYW55IHNjcm9sbCBldmVu
dHMuCisgICAgICAgICAgICBzaG91bGRCZSgnbWluWE9mZnNldCcsICcwJyk7CisgICAgICAgICAg
ICBzaG91bGRCZSgnbWF4WE9mZnNldCcsICctMTAwMCcpOworCisgICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgKCkgPT4geworICAgICAgICAgICAgc2Nyb2xsVGVzdCgpOworICAgICAgICB9LCBmYWxz
ZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJvdXRlciIg
Y2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZmlsbGVyIj5TY3JvbGxzIHZl
cnRpY2FsbHk8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaW5uZXIiIGNsYXNzPSJob3Jpem9udGFs
IHNjcm9sbGVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbGxlciI+U2Nyb2xscyBob3Jp
em9udGFsbHk8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImZpbGxl
ciI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29v
cmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctaW4tdmVydGljYWwtb3Zl
cmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFj
L2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctaW4tdmVydGljYWwtb3ZlcmZsb3ctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYyYjU5MzAyYjM1ZmNiOWIyNWZjZmY0YWE3ZmNiZGNiOGJhMDk2
OTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9t
YWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorU2Nyb2xscyB2ZXJ0aWNhbGx5CitTY3JvbGxzIGhv
cml6b250YWxseQorSW5pdGlhbCBzdGF0ZQorUEFTUyBvdXRlclNjcm9sbGVyLnNjcm9sbFRvcCBp
cyAwCitQQVNTIGlubmVyU2Nyb2xsZXIuc2Nyb2xsVG9wIGlzIDAKK0FmdGVyIHNjcm9sbGwKK1BB
U1Mgb3V0ZXJTY3JvbGxlci5zY3JvbGxUb3AgaXMgMjAwCitQQVNTIGlubmVyU2Nyb2xsZXIuc2Ny
b2xsVG9wIGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMv
bGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy5odG1sIGIv
TGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwt
b3ZlcmZsb3ctaW4tdmVydGljYWwtb3ZlcmZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDIzZTRjODQx
NDI3Yzk5MzQxNWQxNmVlOGViZGU2M2FmNDA1MTk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZs
b3ctaW4tdmVydGljYWwtb3ZlcmZsb3cuaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Ny
b2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwMHB4
OworICAgICAgICB9CisKKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjog
MTBweDsKKyAgICAgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAw
cHg7CisgICAgICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4
IHNvbGlkIGJsYWNrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuaG9yaXpvbnRhbCAu
c2Nyb2xsZXIgeworICAgICAgICAgICAgd2lkdGg6IDQwMHB4OworICAgICAgICAgICAgaGVpZ2h0
OiA0MDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgLmZpbGxlciB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAg
ICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0KKworICAgICAgICAuaG9yaXpvbnRh
bCAuZmlsbGVyIHsKKyAgICAgICAgICAgIGhlaWdodDogODAlOworICAgICAgICAgICAgd2lkdGg6
IDIwMCU7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0K
KyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgICAgICB2YXIgb3V0ZXJTY3JvbGxlcjsKKyAgICAgICAgdmFyIGlubmVyU2Ny
b2xsZXI7CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbCgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGRlYnVnKCdBZnRlciBzY3JvbGxsJyk7CisgICAgICAgICAgICBz
aG91bGRCZSgnb3V0ZXJTY3JvbGxlci5zY3JvbGxUb3AnLCAnMjAwJyk7CisgICAgICAgICAgICBz
aG91bGRCZSgnaW5uZXJTY3JvbGxlci5zY3JvbGxUb3AnLCAnMCcpOworCisgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbFRlc3Qo
KQorICAgICAgICB7CisgICAgICAgICAgICBvdXRlclNjcm9sbGVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ291dGVyJyk7CisgICAgICAgICAgICBpbm5lclNjcm9sbGVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lubmVyJyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlYnVn
KCdJbml0aWFsIHN0YXRlJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnb3V0ZXJTY3JvbGxlci5z
Y3JvbGxUb3AnLCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ2lubmVyU2Nyb2xsZXIuc2Ny
b2xsVG9wJywgJzAnKTsKKworICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2
ZW50cygpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTUwLCAzMDApOyAv
LyBPdmVyIHRoZSBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZSBvdmVyZmxvdy4KKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAt
MSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMTAsICJjaGFuZ2VkIiwgIm5vbmUiKTsK
KyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMTAsICJub25lIiwgImNvbnRpbnVlIik7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgIm5vbmUi
LCAiZW5kIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21w
bGV0ZXMoY2hlY2tGb3JTY3JvbGwpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9s
bFRlc3QsIDApOworICAgICAgICB9LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPSJvdXRlciIgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iZmlsbGVyIj5TY3JvbGxzIHZlcnRpY2FsbHk8L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaW5uZXIiIGNsYXNzPSJob3Jpem9udGFsIHNjcm9sbGVyIj4KKyAgICAgICAgICAgIDxkaXYg
Y2xhc3M9ImZpbGxlciI+U2Nyb2xscyBob3Jpem9udGFsbHk8L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxkaXYgY2xhc3M9ImZpbGxlciI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="411477"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396049</attachid>
            <date>2020-04-09 23:17:12 -0700</date>
            <delta_ts>2020-04-10 08:03:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210320-20200409231711.patch</filename>
            <type>text/plain</type>
            <size>46045</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY0YjFiYThkM2YzMmVi
N2MwYWFkNjk2MjgwYTdmNzU0MjBjMDBkOS4uZTliOGMxZWQxMjc4ZmJjZGQ2ZGY0NGNhY2JiMTEx
OTJhN2Y4N2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA0LTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtBc3luYyBvdmVy
ZmxvdyBzY3JvbGxpbmddIFZlcnRpY2FsIHNjcm9sbHMgb3ZlciBhIGhvcml6b250YWxseSBzY3Jv
bGxhYmxlIG92ZXJmbG93IGFyZSBjYXB0dXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHNvbWV3aGF0IG1vcmUgc29waGlz
dGljYXRlZCBsYXRjaGluZyBsb2dpYyB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgd2hpY2gKKyAg
ICAgICAgZml4ZXMgdGhlIGluYWJpbGl0eSB0byB2ZXJ0aWNhbGx5IHNjcm9sbCBpZiB0aGUgbW91
c2UgaXMgb3ZlciBhbiBlbmNsb3NlZCBob3Jpem9udGFsIHNjcm9sbGVyLgorICAgICAgICAKKyAg
ICAgICAgU2Nyb2xsaW5nVHJlZSBvd25zIGEgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ciwgd2hpY2ggZGV0ZXJtaW5lcyB3aGVuIHRvIGxhdGNoIGFuZCBjbGVhcgorICAgICAgICBsYXRj
aGluZy4gTGF0Y2ggY2xlYXJpbmcgdXNlcyBhIDEwMG1zIGRlbGF5IChsaWtlIG1haW4gdGhyZWFk
IGxhdGNoaW5nKSBzbyB0aGF0IGEgc3RhcnRpbmcgZ2VzdHVyZQorICAgICAgICBzb29uIGFmdGVy
IGFub3RoZXIgZ2VzdHVyZSwgd2hvc2UgaW5pdGlhbCB4IGFuZCB5IGFyZSBzbWFsbCwgZ29lcyB0
byB0aGUgc2FtZSBzY3JvbGxlciBhcyBiZWZvcmUuCisgICAgICAgIAorICAgICAgICBTY3JvbGxp
bmcgdHJlZSBsYXRjaGluZyB3b3JrcyBhcyBmb2xsb3dzLiBXaGVuIHdlIHJlY2VpdmUgYSBzY3Jv
bGwgZXZlbnQgd2hpY2ggYWxsb3dzIHVzZSBvZiB0aGUKKyAgICAgICAgbGF0Y2hlZCBub2RlLCBh
bmQgdGhlcmUgaXMgYSBsYXRjaGVkIG5vZGUsIHNlbmQgdGhlIGV2ZW50IGRpcmVjdGx5IHRvIHRo
YXQgbm9kZS4gT3RoZXJ3aXNlLAorICAgICAgICBoaXQtdGVzdCB0byBmaW5kIHRoZSBtb3N0IGRl
ZXBseSBuZXN0ZWQgc2Nyb2xsIHRhcmdldC4gVHJhdmVyc2UgdXAgdGhlIHBhcmVudCBjaGFpbiBn
aXZpbmcgZWFjaCBub2RlCisgICAgICAgIGFuIG9wcG9ydHVuaXR5IHRvIGhhbmRsZSB0aGUgZXZl
bnQuIElmIGhhbmRsZWQgYnkgYSBub2RlLCB0aGF0IG5vZGUgYmVjb21lcyB0aGUgbGF0Y2hlZCBu
b2RlLgorICAgICAgICAKKyAgICAgICAgU2Nyb2xsaW5nVHJlZSBubyBsb25nZXIgdHJhY2tzIHRo
ZSBsYXRjaGVkIG5vZGUgaXRzZWxmLgorCisgICAgICAgIFRlc3RzOiBzY3JvbGxpbmdjb29yZGlu
YXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwKKyAg
ICAgICAgICAgICAgIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwKKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlSUQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFzTGF0Y2hlZE5vZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2ZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmxhdGNoZWROb2Rl
SUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlcjo6bm9kZURpZEhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVMYXRjaGluZ0NvbnRyb2xsZXI6Om5vZGVXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmNsZWFyTGF0Y2hlZE5vZGUpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDog
QWRkZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Omlz
TGF0Y2hlZE5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNhblNjcm9sbFdpdGhXaGVlbEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxMaW1pdFJlYWNoZWQgY29uc3Qp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQpOgorCiAyMDIwLTA0LTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggZm9yIGNyYXNoIGluIHRlc3QgYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJjaHkuaHRtbCBpbiBpc29sYXRlZCB0cmVlIG1v
ZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGIyNzA1MGQ2MmQyOTM5YjZiY2Q1MzBjM2ExOTRjYTcwYjlk
NjU4NTcuLjc0MmE2NWZmNDdiYmEzNGUxNTkyYzhhYmU0ZmVkZDhlNDM0MjFjNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNzM1LDYgKzE3MzUsNyBAQCBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJl
YWQuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05vZGUuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmNwcAogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5j
cHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNh
ZDUzY2Y1ZDJkNzc4ZmQ4YzZiZDZhYTI2NmUwZTcxODRiMDE3MDUuLmUyOGFhYzE2MWMzZWI1M2Mw
ZmFkZjA0OGQyNjZkOTMwNDJkMTFlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MSw2ICszNzEsNyBAQAogCQkwRkY1MDI3
MjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxl
TWVkaWEuaCAqLzsgfTsKIAkJMEZGODM1QzMxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjgzNUJFMUVF
MzU0REEwMDhCNENDNyAvKiBET01RdWFkLmggKi87IH07CiAJCTBGRjgzNUM1MUVFMzU0REEwMDhC
NENDNyAvKiBET01RdWFkSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZGODM1QzAxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmggKi87
IH07CisJCTBGRkQ0NUFBMjQzQzMwMjcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkZENDVBNzI0M0JGMjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZENEQ1RjE4
NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTEwRkIwODRCMTRFMTVDN0Uw
MEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJM
TWFuYWdlci5oICovOyB9OwogCQkxMTJCMzRENTFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxlTGlu
ZUxheW91dFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFn
aW5hdGlvbi5oICovOyB9OwpAQCAtNTk4OSw2ICs1OTkwLDggQEAKIAkJMEZGODM1QkYxRUUzNTRE
QTAwOEI0Q0M3IC8qIERPTVF1YWQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVF1YWQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY4MzVDMDFFRTM1NERBMDA4QjRD
QzcgLyogRE9NUXVhZEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
UXVhZEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGODM1QzExRUUzNTRE
QTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01R
dWFkSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkQ0NUE3MjQzQkYy
NTcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEZGRDQ1QTgyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkQ0
RDVFMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZENEQ1RjE4NjUxRkEzMDA1
MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQ3LDYgKzE3NTUwLDggQEAKIAkJ
CQkwRkQ0MUU2NjIxRjgwMjgyMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05v
ZGUuaCAqLywKIAkJCQkwRkVBM0U4NTE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZS5jcHAgKi8sCiAJCQkJMEZFQTNFODYxOTFCM0JENzAwMEYxQjU1IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCAqLywKKwkJCQkwRkZENDVBODI0M0JG
MjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAgKi8sCisJ
CQkJMEZGRDQ1QTcyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIuaCAqLywKIAkJCQkxQUFBRERFMTE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwICovLAogCQkJCTFBQUFEREUyMTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdU
cmVlTm9kZS5oICovLAogCQkJCTBGRUEzRTdEMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmNwcCAqLywKQEAgLTMyNjI4LDYgKzMyNjMzLDcgQEAK
IAkJCQkwRkQ0MUU2ODIxRjgwQzBFMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTg4MTkxQjNCRDcwMDBGMUI1NSAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0M0
QTQxNTE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRDQ1QUEyNDNDMzAyNzAwMEQ0QkVBIC8qIFNjcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTU4MDY0
MTkzMjdBNjIwMERFMzJFQiAvKiBTY3JvbGxpbmdUcmVlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUFBRERFNDE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZDkyMjVkMTA5Nzc1OTM3NDc5
OGIzOTkxYWI3MjA1OGZkYTVkOGNlNC4uNjlmYTJmMDM2MTEzNDkwMzVjMjIwZTM2NTdkODIxOTk0
ZjU5ZDljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xs
aW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSgpID0gZGVmYXVsdDsKLQogU2Nyb2xsaW5nVHJlZTo6flNj
cm9sbGluZ1RyZWUoKSA9IGRlZmF1bHQ7CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFu
ZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQpAQCAtNTMsMTMgKzUyLDEwIEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFu
ZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAg
Ly8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCiAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAgYm9vbCBzaG91bGRT
ZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpOwotICAgIAotICAg
IGlmIChoYXNMYXRjaGVkTm9kZSgpICYmICFzaG91bGRTZXRMYXRjaCkKKyAgICBpZiAobV9sYXRj
aGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3aGVlbEV2ZW50KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHNob3VsZFNldExhdGNoKQotICAgICAgICBtX3RyZWVT
dGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKKyAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZl
ZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgCiAgICAgaWYgKCFtX3RyZWVTdGF0ZS5ldmVu
dFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5KCkgJiYgbV9yb290Tm9kZSkgewogICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwpAQCAtNzksMjYgKzc1LDE3
IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCi17Ci0gICAgaWYgKHdo
ZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7Ci0gICAgICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8
PCAiIHNldE9yQ2xlYXJMYXRjaGVkTm9kZTogc2V0dGluZyBsYXRjaGVkIG5vZGUgIiA8PCBub2Rl
SUQpOwotICAgICAgICBzZXRMYXRjaGVkTm9kZShub2RlSUQpOwotICAgIH0gZWxzZSBpZiAod2hl
ZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIg
c2V0T3JDbGVhckxhdGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUgKHdhcyAiIDw8IGxh
dGNoZWROb2RlKCkgPDwgIikiKTsKLSAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOwotICAgIH0K
LX0KLQogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0gICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8PCAi
IGhhbmRsZVdoZWVsRXZlbnQgKGFzeW5jIHNjcm9sbGluZyBlbmFibGVkOiAiIDw8IGFzeW5jRnJh
bWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpIDw8ICIpIik7CisgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIg
aGFuZGxlV2hlZWxFdmVudCAoYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQ6ICIgPDwgYXN5bmNGcmFt
ZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkgPDwgIikiKTsKIAogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJlZU11dGV4KTsKIAogICAgIGlmIChpc01vbml0b3JpbmdXaGVlbEV2ZW50cygp
KQogICAgICAgICByZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKKyAgICBtX2xhdGNo
aW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisKICAgICBpZiAo
IWFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICht
X3Jvb3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuIG1fcm9vdE5vZGUtPmhhbmRsZVdoZWVsRXZl
bnQod2hlZWxFdmVudCk7CkBAIC0xMDYsMjkgKzkzLDI5IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0
IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZl
bnQ7CiAgICAgfQogCi0gICAgaWYgKGhhc0xhdGNoZWROb2RlKCkpIHsKLSAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnQ6IGhhcyBsYXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9kZSgpKTsKLSAgICAg
ICAgYXV0byogbm9kZSA9IG5vZGVGb3JJRChsYXRjaGVkTm9kZSgpKTsKKyAgICBpZiAoYXV0byBs
YXRjaGVkTm9kZUlEID0gbV9sYXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3
aGVlbEV2ZW50KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudDogaGFzIGxhdGNoZWQgbm9k
ZSAiIDw8IGxhdGNoZWROb2RlSUQpOworICAgICAgICBhdXRvKiBub2RlID0gbm9kZUZvcklEKGxh
dGNoZWROb2RlSUQudmFsdWUoKSk7CiAgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZT4obm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU+KCpub2RlKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAg
IH0KIAotICAgIGlmIChtX3Jvb3ROb2RlKSB7Ci0gICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb24g
PSB3aGVlbEV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgICAgIHBvc2l0aW9uLm1vdmUobV9yb290Tm9k
ZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24pKTsKLSAgICAgICAgYXV0byBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9u
KTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOworICAg
IHBvc2l0aW9uLm1vdmUobV9yb290Tm9kZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3Rh
dGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pKTsKKyAgICBhdXRvIG5vZGUgPSBzY3JvbGxpbmdO
b2RlRm9yUG9pbnQocG9zaXRpb24pOwogCi0gICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCBmb3VuZCBub2Rl
ICIgPDwgKG5vZGUgPyBub2RlLT5zY3JvbGxpbmdOb2RlSUQoKSA6IDApIDw8ICIgZm9yIHBvaW50
ICIgPDwgcG9zaXRpb24gPDwgIlxuIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50IGZvdW5kIG5vZGUgIiA8
PCAobm9kZSA/IG5vZGUtPnNjcm9sbGluZ05vZGVJRCgpIDogMCkgPDwgIiBmb3IgcG9pbnQgIiA8
PCBwb3NpdGlvbik7CiAKLSAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgICAgIGlmIChp
czxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7Ci0gICAgICAgICAgICAgICAg
YXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
Pigqbm9kZSk7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gY29uc3Vs
dCBsYXRjaGluZyBsb2dpYy4KLSAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nTm9kZS5oYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5k
bGVFdmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWRIYW5kbGVFdmVudDsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBpZiAoaXM8U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKSkgeworICAgICAgICAgICAgYXV0byYgc2Ny
b2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSk7
CisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBjb25zdWx0IGxhdGNoaW5nIGxv
Z2ljLgorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KSA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpIHsKKyAgICAg
ICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQod2hlZWxF
dmVudCwgc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQoKTsKICAgICAgICAgfQorICAgICAg
ICBub2RlID0gbm9kZS0+cGFyZW50KCk7CiAgICAgfQogICAgIHJldHVybiBTY3JvbGxpbmdFdmVu
dFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiB9CkBAIC0xOTUsOCArMTgyLDcgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0
YXRlVHJlZT4gc2Nyb2xsaW4KICAgICB1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShyb290Tm9kZSwg
b3JwaGFuTm9kZXMsIHVudmlzaXRlZE5vZGVzKTsKICAgICAKICAgICBmb3IgKGF1dG8gbm9kZUlE
IDogdW52aXNpdGVkTm9kZXMpIHsKLSAgICAgICAgaWYgKG5vZGVJRCA9PSBtX3RyZWVTdGF0ZS5s
YXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOworICAgICAgICBt
X2xhdGNoaW5nQ29udHJvbGxlci5ub2RlV2FzUmVtb3ZlZChub2RlSUQpOwogICAgICAgICAKICAg
ICAgICAgTE9HKFNjcm9sbGluZywgIlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSAtIHJl
bW92aW5nIHVudmlzaXRlZCBub2RlICUiIFBSSXU2NCwgbm9kZUlEKTsKICAgICAgICAgbV9ub2Rl
TWFwLnJlbW92ZShub2RlSUQpOwpAQCAtMzQxLDExICszMjcsMjcgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlOjpub3RpZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmIG5vZGUp
CiAgICAgfQogfQogCitPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IFNjcm9sbGluZ1RyZWU6Omxh
dGNoZWROb2RlSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2xhdGNoaW5nQ29udHJvbGxlci5s
YXRjaGVkTm9kZUlEKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9k
ZSgpCit7CisgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIuY2xlYXJMYXRjaGVkTm9kZSgpOworfQor
CiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQgPSBlbmFibGVkOwogfQogCitGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV90cmVlU3RhdGVNdXRl
eC5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb247Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24oRmxvYXRQb2ludCBwb3NpdGlvbikKIHsKICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3Rh
dGVNdXRleCk7CkBAIC00NTYsMjQgKzQ1OCw2IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nUGVy
Zm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsKIH0KIAotU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1Ry
ZWU6OmxhdGNoZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11
dGV4KTsKLSAgICByZXR1cm4gbV90cmVlU3RhdGUubGF0Y2hlZE5vZGVJRDsKLX0KLQotdm9pZCBT
Y3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZSkKLXsKLSAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAgICBtX3RyZWVTdGF0ZS5s
YXRjaGVkTm9kZUlEID0gbm9kZTsKLX0KLQotdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVhckxhdGNo
ZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAg
ICBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKLX0KLQogU3RyaW5nIFNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQoU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3Ig
YmVoYXZpb3IpCiB7CiAgICAgVGV4dFN0cmVhbSB0cyhUZXh0U3RyZWFtOjpMaW5lTW9kZTo6TXVs
dGlwbGVMaW5lKTsKQEAgLTQ4NCw4ICs0NjgsOCBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAgICAg
IGlmIChtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJsYXRjaGVkIG5vZGUiLCBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAg
aWYgKGF1dG8gbGF0Y2hlZE5vZGVJRCA9IG1fbGF0Y2hpbmdDb250cm9sbGVyLmxhdGNoZWROb2Rl
SUQoKSkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibGF0Y2hlZCBub2RlIiwgbGF0Y2hl
ZE5vZGVJRC52YWx1ZSgpKTsKIAogICAgICAgICBpZiAoIW1fdHJlZVN0YXRlLm1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uLmlzWmVybygpKQogICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJtYWlu
IGZyYW1lIHNjcm9sbCBwb3NpdGlvbiIsIG1fdHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCBlZTY3YjcxMTgyNThjMzRiMWRjM2MwM2E1NzhiNDRmNTI4ZjJlMTBhLi44ZDMxYjNhZTI4
NTgwMWY1ZDI4MmNhMTQ3MjAyZmNmZTgyZDMzOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVjdEVkZ2VzLmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJT
Y3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCIKKyNp
bmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtNTEsNiArNTMsNyBAQCBjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRp
b25lZE5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIAogY2xhc3MgU2Ny
b2xsaW5nVHJlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7
CitmcmllbmQgY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjsKIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdUcmVlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+U2Nyb2xsaW5nVHJlZSgpOwpAQCAtMTQwLDE0ICsxNDMsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCk7CiAKICAgICBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlKiByb290Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdE5vZGUuZ2V0KCk7IH0KLQotICAgIFNjcm9sbGluZ05vZGVJRCBsYXRjaGVkTm9kZSgpOwot
ICAgIHZvaWQgc2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBPcHRpb25hbDxT
Y3JvbGxpbmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyTGF0
Y2hlZE5vZGUoKTsKIAotICAgIGJvb2wgaGFzTGF0Y2hlZE5vZGUoKSBjb25zdCB7IHJldHVybiBt
X3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEOyB9Ci0gICAgdm9pZCBzZXRPckNsZWFyTGF0Y2hlZE5v
ZGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKTsKLQogICAgIGJv
b2wgaGFzRml4ZWRPclN0aWNreSgpIGNvbnN0IHsgcmV0dXJuICEhbV9maXhlZE9yU3RpY2t5Tm9k
ZUNvdW50OyB9CiAgICAgdm9pZCBmaXhlZE9yU3RpY2t5Tm9kZUFkZGVkKCkgeyArK21fZml4ZWRP
clN0aWNreU5vZGVDb3VudDsgfQogICAgIHZvaWQgZml4ZWRPclN0aWNreU5vZGVSZW1vdmVkKCkK
QEAgLTE3Myw2ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVubG9ja0xheWVy
c0ZvckhpdFRlc3RpbmcoKSB7IH0KIAogcHJvdGVjdGVkOgorICAgIEZsb2F0UG9pbnQgbWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKEZsb2F0UG9pbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3JvbGxp
bmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
OwpAQCAtMTk1LDEzICsxOTQsMTMgQEAgcHJpdmF0ZToKICAgICB1c2luZyBTY3JvbGxpbmdUcmVl
Tm9kZU1hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+PjsKICAgICBTY3JvbGxpbmdUcmVlTm9kZU1hcCBtX25vZGVNYXA7CiAKKyAgICBTY3JvbGxp
bmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyIG1fbGF0Y2hpbmdDb250cm9sbGVyOwogICAgIFJlbGF0
ZWROb2Rlc01hcCBtX292ZXJmbG93UmVsYXRlZE5vZGVzTWFwOwogCiAgICAgSGFzaFNldDxSZWY8
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlPj4gbV9hY3RpdmVPdmVyZmxvd1Nj
cm9sbFByb3h5Tm9kZXM7CiAgICAgSGFzaFNldDxSZWY8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWRO
b2RlPj4gbV9hY3RpdmVQb3NpdGlvbmVkTm9kZXM7CiAKICAgICBzdHJ1Y3QgVHJlZVN0YXRlIHsK
LSAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIGxhdGNoZWROb2RlSUQgeyAwIH07CiAgICAgICAgIEV2
ZW50VHJhY2tpbmdSZWdpb25zIGV2ZW50VHJhY2tpbmdSZWdpb25zOwogICAgICAgICBGbG9hdFBv
aW50IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogICAgICAgICBib29sIG1haW5GcmFtZUlzUnVi
YmVyQmFuZGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFhNjdjZDRhNDRiNWVmNmZhN2M0NGYyZWUwNDM2OWY0YzNjMTUxZTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9s
bGVyLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9s
bGluZ1RocmVhZC5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisvLyBTZWUgYWxzbyBFdmVudEhhbmRsZXJNYWMuY3BwCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyByZXNldExhdGNoZWRTdGF0ZVRpbWVvdXQgeyAxMDBfbXMgfTsKKworU2Nyb2xsaW5n
VHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigp
ID0gZGVmYXVsdDsKKwordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNl
aXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorewor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF0Y2hlZE5vZGVNdXRleCk7CisgICAgaWYgKHdoZWVs
RXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7CisgICAgICAgIGlmIChtX2xhdGNoZWRO
b2RlSUQpIHsKKyAgICAgICAgICAgIGF1dG8gc2Vjb25kc1NpbmNlTGFzdEludGVyYWN0aW9uID0g
TW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lOwor
ICAgICAgICAgICAgaWYgKHNlY29uZHNTaW5jZUxhc3RJbnRlcmFjdGlvbiA+IHJlc2V0TGF0Y2hl
ZFN0YXRlVGltZW91dCkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxM
YXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwg
dGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgc2Vjb25kc1NpbmNlTGFzdEludGVy
YWN0aW9uLm1pbGxpc2Vjb25kcygpIDw8ICJtcyBzaW5jZSBsYXN0IGV2ZW50LCBjbGVhcmluZyBs
YXRjaGVkIG5vZGUiKTsKKyAgICAgICAgICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVzZXQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworT3B0aW9uYWw8U2Nyb2xsaW5n
Tm9kZUlEPiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKK3sKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworCisgICAgLy8gSWYgd2UgaGF2
ZSBhIGxhdGNoZWQgbm9kZSwgdXNlIGl0LgorICAgIGlmICh3aGVlbEV2ZW50LnVzZUxhdGNoZWRF
dmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIgIiA8PCB0aGlzIDw8ICIgbGF0Y2hlZE5vZGVGb3JFdmVudDogcmV0dXJuaW5nICIgPDwg
bV9sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAgcmV0dXJuIG1fbGF0Y2hlZE5vZGVJRC52YWx1ZSgp
OworICAgIH0KKworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK09wdGlvbmFsPFNjcm9s
bGluZ05vZGVJRD4gU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6bGF0Y2hlZE5vZGVJ
RCgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsK
KyAgICByZXR1cm4gbV9sYXRjaGVkTm9kZUlEOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXI6Om5vZGVEaWRIYW5kbGVFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQpCit7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsKKworICAgIGlmICh3aGVlbEV2
ZW50LnVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQgPT0gc2Nyb2xs
aW5nTm9kZUlEKSB7CisgICAgICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
d2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRIYW5kbGVFdmVudDog
bGF0Y2hpbmcgdG8gIiA8PCBzY3JvbGxpbmdOb2RlSUQpOworICAgIG1fbGF0Y2hlZE5vZGVJRCA9
IHNjcm9sbGluZ05vZGVJRDsKKyAgICBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29u
dHJvbGxlcjo6bm9kZVdhc1JlbW92ZWQoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIGlmIChub2RlSUQgPT0g
bV9sYXRjaGVkTm9kZUlEKQorICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVzZXQoKTsKK30KKwor
dm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpjbGVhckxhdGNoZWROb2RlKCkK
K3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIG1fbGF0
Y2hlZE5vZGVJRC5yZXNldCgpOworfQorCit9OworCisjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Zjg4OWQ3
YTY1ZmU5OTUzNzNjYTFjZmQ2MzI1ZTdjNTcwNDhmNzM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9NYXJrYWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xs
aW5nVHJlZTsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciB7CitwdWJs
aWM6CisgICAgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigpOworCisgICAgdm9pZCBy
ZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgT3B0aW9u
YWw8U2Nyb2xsaW5nTm9kZUlEPiBsYXRjaGVkTm9kZUZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpIGNvbnN0OworICAgIHZvaWQgbm9kZURpZEhhbmRsZUV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCk7CisKKyAgICBPcHRpb25hbDxTY3JvbGxp
bmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKKworICAgIHZvaWQgbm9kZVdhc1JlbW92
ZWQoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2b2lkIGNsZWFyTGF0Y2hlZE5vZGUoKTsKKworcHJp
dmF0ZToKKworICAgIG11dGFibGUgTG9jayBtX2xhdGNoZWROb2RlTXV0ZXg7CisgICAgTWFya2Fi
bGU8U2Nyb2xsaW5nTm9kZUlELCBJbnRlZ3JhbE1hcmthYmxlVHJhaXRzPFNjcm9sbGluZ05vZGVJ
RCwgMD4+IG1fbGF0Y2hlZE5vZGVJRDsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdExhdGNoZWRO
b2RlSW50ZXJhdGlvblRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGRjYjBhMDk0NmRhZjNlM2ZlYTAy
NGE4NjI2MWE4NmJjODk2NzEyM2EuLmZjOGY3NzcwOWNjNzA5MzhlYTJmOGE1MDdjMGUzYzE0MTZk
NTVmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEyMCw2ICsxMjAsMjAgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm8KICAgICBtX2lzRmlyc3RDb21taXQgPSBmYWxzZTsKIH0KIAor
Ym9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9kZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0gc2Nyb2xsaW5n
Tm9kZUlEKCk7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhblNjcm9s
bFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29u
c3QKK3sKKyAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIFdlIGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0
aGUgcm9vdCBub2RlLgorICAgIHJldHVybiBpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgp
IHx8ICFzY3JvbGxMaW1pdFJlYWNoZWQod2hlZWxFdmVudCk7Cit9CisKIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpCiB7CiAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKQEAgLTE0Niw3ICsxNjAsNyBAQCBGbG9hdFBvaW50IFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsTGltaXRSZWFjaGVkKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBGbG9hdFBvaW50IG9s
ZFNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRQb2lu
dCBuZXdTY3JvbGxQb3NpdGlvbiA9IG9sZFNjcm9sbFBvc2l0aW9uICsgRmxvYXRTaXplKHdoZWVs
RXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKKyAgICBGbG9hdFBvaW50IG5l
d1Njcm9sbFBvc2l0aW9uID0gb2xkU2Nyb2xsUG9zaXRpb24gKyBGbG9hdFNpemUoLXdoZWVsRXZl
bnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKICAgICBuZXdTY3JvbGxQb3NpdGlv
biA9IG5ld1Njcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5pbXVtU2Nyb2xsUG9z
aXRpb24oKSwgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIHJldHVybiBuZXdTY3JvbGxQ
b3NpdGlvbiA9PSBvbGRTY3JvbGxQb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IGEyYzAyMWVmZDBjMzIwOWNlYTcyZDMyNWZmYjBhN2MyZTQ4ZmVhZjIuLmY4ZDNjY2YxNTk1NGE4
ZWIyMDdjYWQ2MTc0ZGFiMTAwYmUyYjFiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNTMs
NiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogCisgICAg
dmlydHVhbCBib29sIGNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAogICAgIEZsb2F0UG9pbnQgY3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b247IH0KQEAgLTEyNCw2ICsxMjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBGbG9hdFNp
emUmIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxlQ29u
dGVudHNTaXplOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CisgICAgCisgICAgYm9vbCBpc0xhdGNoZWROb2RlKCkg
Y29uc3Q7CiAKICAgICAvLyBJZiB0aGUgdG90YWxDb250ZW50c1NpemUgY2hhbmdlcyBpbiB0aGUg
bWlkZGxlIG9mIGEgcnViYmVyLWJhbmQsIHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBvbGQgdG90
YWxDb250ZW50c1NpemUgZm9yIHRoZSBzYWtlIG9mCiAgICAgLy8gY29tcHV0aW5nIHRoZSBzdHJl
dGNoQW1vdW50KCkuIFVzaW5nIHRoZSBvbGQgdmFsdWUgd2lsbCBrZWVwIHRoZSBhbmltYXRpb24g
c21vb3RoLiBXaGVuIHRoZXJlIGlzIG5vIHJ1YmJlci1iYW5kIGluIHByb2dyZXNzIGF0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IGI4MTBiMzAxNGVj
ZjAwYmZlYzcwMGY0YTY0ZTk4YTk2NDliNjBmNzguLmI5MWFjOThiNjVjYWNiZTNjNjJiYmM0YTFh
NGUzODczNDMzNThmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
TWFjLm1tCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW4KIAogU2Ny
b2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0g
ICAgaWYgKCFjYW5IYXZlU2Nyb2xsYmFycygpKQorICAgIGlmICghY2FuU2Nyb2xsV2l0aFdoZWVs
RXZlbnQod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
RGlkTm90SGFuZGxlRXZlbnQ7CiAKICAgICBib29sIGhhbmRsZWQgPSBtX2RlbGVnYXRlLmhhbmRs
ZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CkBAIC0xNjIsNyArMTYyLDYgQEAgU2Nyb2xsaW5nRXZl
bnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxF
dmVudChjb25zdAogICAgIGlmIChtX2RlbGVnYXRlLmFjdGl2ZVNjcm9sbFNuYXBJbmRleERpZENo
YW5nZSgpKQogICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0QWN0aXZlU2Nyb2xsU25hcEluZGlj
ZXMoc2Nyb2xsaW5nTm9kZUlEKCksIG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9y
QXhpcyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpLCBtX2RlbGVnYXRlLmFjdGl2ZVNjcm9s
bFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCkpOwogI2VuZGlmCi0g
ICAgc2Nyb2xsaW5nVHJlZSgpLnNldE9yQ2xlYXJMYXRjaGVkTm9kZSh3aGVlbEV2ZW50LCBzY3Jv
bGxpbmdOb2RlSUQoKSk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLmhhbmRsZVdoZWVsRXZlbnRQaGFz
ZSh3aGVlbEV2ZW50LnBoYXNlKCkpOwogICAgIAogICAgIHJldHVybiBoYW5kbGVkID8gU2Nyb2xs
aW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50IDogU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRp
ZE5vdEhhbmRsZUV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbQppbmRleCA0NGJkZWJiMzQ3YzU3NTI5YTk1NDI4Yzk0MDkwNWZkZTM1ZDcyMGQ3
Li40ZTc2ZjYwOGU3NWRhZWUxNGVkYzdlZWYwY2U2YWI3ZDU4YmQ2ZDUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtNjksMTQgKzY5LDEz
IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAKIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewotICAgIGlmICghY2FuSGF2ZVNjcm9s
bGJhcnMoKSkKKyAgICBpZiAoIWNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KHdoZWVsRXZlbnQpKQog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50Owog
CiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCiAgICAgLy8g
RklYTUU6IFNjcm9sbCBzbmFwCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0T3JDbGVhckxhdGNo
ZWROb2RlKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICBzY3JvbGxpbmdUcmVl
KCkuaGFuZGxlV2hlZWxFdmVudFBoYXNlKHdoZWVsRXZlbnQucGhhc2UoKSk7CiAgICAgCiAgICAg
Ly8gRklYTUU6IFRoaXMgbmVlZHMgdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBoYW5k
bGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVO
aWNvc2lhLmNwcAppbmRleCA0YzI0NTlmNDJkZTgzNWM1NTNkN2Q5MjgxMGYzZTJmYWY4ZTlhZDFi
Li5iNjBjOGNiZmRiODRhNzBjYjNmMGZmODdlNDY5MjZiYmMyZjRjNDA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAt
MTE2LDcgKzExNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWE6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvCiAKIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKLSAgICBpZiAo
IWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgaWYgKCFjYW5TY3JvbGxXaXRoV2hlZWxFdmVudCgp
KQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50
OwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVudC5kZWx0YVkoKSkg
ewpAQCAtMTQ0LDggKzE0NCw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50KGNvCiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0T3JDbGVhckxhdGNoZWROb2RlKHdoZWVsRXZl
bnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKLQogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIHJl
dHVybiB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFuZGxlZC4KICAgICByZXR1cm4gU2Nyb2xsaW5n
RXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Nj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCA4MWM5MTQw
NWNmOThmYTdmMDljNTYxMTU4ZjA5NzU3OTg2ZWIwODZkLi5jNWUyZTJlMjVjMTc0ZDYyYjQxOTUy
MzJiNWZjN2FlN2UxYjJmMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OnJlcG9zaXRpb25T
Y3JvbGxpbmdMYXllcnMoKQogCiBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0gICAgaWYgKCFjYW5IYXZlU2Nyb2xsYmFycygp
KQorICAgIGlmICghY2FuU2Nyb2xsV2l0aFdoZWVsRXZlbnQoKSkKICAgICAgICAgcmV0dXJuIFNj
cm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKIAogICAgIGlmICh3aGVlbEV2
ZW50LmRlbHRhWCgpIHx8IHdoZWVsRXZlbnQuZGVsdGFZKCkpIHsKQEAgLTEyOSw4ICsxMjksNiBA
QCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudAogICAgIH0KICNlbmRpZgogCi0gICAgc2Nyb2xsaW5n
VHJlZSgpLnNldE9yQ2xlYXJMYXRjaGVkTm9kZSh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQo
KSk7Ci0KICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50Owog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNGMzYzIzNmYyNjRmNGM5MzA0ODJkMmQwZjZlNjcwOGE0MzNkYzI1ZS4uYTM3
ZmFhOGJlOGFmNzNhZGQ1YmFjOTNhNzFjMTRjNjlmZGZmN2JkMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDIwLTA0LTA5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFtBc3luYyBvdmVyZmxvdyBzY3JvbGxpbmddIFZlcnRpY2FsIHNjcm9sbHMgb3Zl
ciBhIGhvcml6b250YWxseSBzY3JvbGxhYmxlIG92ZXJmbG93IGFyZSBjYXB0dXJlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMzIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGhvcml6
b250YWwgaW5zaWRlIHZlcnRpY2FsIG92ZXJmbG93LCB0ZXN0IHRoYXQgaGl0LXRlc3RpbmcgaW5z
aWRlIHNjcm9sbGVkLXRvLWxpbWl0IGhvcml6b250YWwgc2Nyb2xsZXJzCisgICAgICAgIHN0aWxs
IGFsbG93cyBmb3Igc3dpcGUgbmF2aWdhdGlvbiwgYW5kIHRlc3QgdGhlIGxhdGNoaW5nIHRpbWVv
dXQuCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21h
bGwtZGVsdGFzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9sYXRjaGlu
Zy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLmh0bWw6CisgICAgICAgICogc2Nyb2xsaW5nY29v
cmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRj
aGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWJhY2stc3dpcGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ct
aW4tdmVydGljYWwtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzY3Jv
bGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0
aWNhbC1vdmVyZmxvdy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0wOSAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU106IE5ldyB0ZXN0IGxhbmRlZCBmb3Ig
cjI1OTc2MiBsYW5kZWQgYnJva2VuOiBlZGl0aW5nL2VkaXRhYmxlLXJlZ2lvbi9oaXQtdGVzdC1v
dmVybGFwLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy1leHBlY3Rl
ZC50eHQKaW5kZXggMDY3NjhhOTI3OGIwNTdhNDBmNTc5ZjdkOTYzMjAyZmFkODQ4MDliZC4uNGZm
MjRmMDMzMTQ4MDgxYTI0YmU0YTAzMWY1MDU1ZDVjODA3NjkwNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZy
YW1lLWxhdGNoLXNtYWxsLWRlbHRhcy1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDcgQEAgQWZ0
ZXIgd2FpdAogUEFTUyBpZnJhbWVUYXJnZXQuY29udGVudFdpbmRvdy5wYWdlWU9mZnNldCBpcyA1
MDAKIFBBU1Mgd2luZG93LnBhZ2VZT2Zmc2V0IGlzIDIwMAogRkFJTCBpZnJhbWVUYXJnZXQuY29u
dGVudFdpbmRvdy5wYWdlWU9mZnNldCBzaG91bGQgYmUgNDgwLiBXYXMgNTAwLgotRkFJTCB3aW5k
b3cucGFnZVlPZmZzZXQgc2hvdWxkIGJlIDIwMC4gV2FzIDE4MC4KK1BBU1Mgd2luZG93LnBhZ2VZ
T2Zmc2V0IGlzIDIwMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9p
ZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLmh0bWwKaW5kZXggOTFjYmNlNGRi
ZGE4ODJhNDNhMDZmY2UyODRiNWQyOTdkNTFiNDNmYy4uMWMwMmUzMzc4ODdiZGMwM2UzMmE2NmI4
ZWNiYWU1MzMxNTczNGYwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
bGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMuaHRtbApA
QCAtNDksNyArNDksNiBAQAogICAgICAgICAgICAgc2hvdWxkQmUoJ2lmcmFtZVRhcmdldC5jb250
ZW50V2luZG93LnBhZ2VZT2Zmc2V0JywgJzUwMCcpOwogICAgICAgICAgICAgc2hvdWxkQmUoJ3dp
bmRvdy5wYWdlWU9mZnNldCcsICcyMDAnKTsKIAotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9u
aXRvcldoZWVsRXZlbnRzKCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdiZWdhbicsICdub25lJyk7CiAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoLTEsIDEsICdjaGFuZ2VkJywgJ25vbmUnKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxLCAnY2hhbmdlZCcsICdu
b25lJyk7CkBAIC02Miw3ICs2MSw3IEBACiAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIHNldHVwVG9wTGV2ZWwoKSAKKyAgICAgICAgZnVu
Y3Rpb24gc2V0dXBUb3BMZXZlbCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IGEgc2Vjb25kIHNjcm9sbCB3aXRoIHNtYWxsIHgveSBkZWx0YXMgdXNlcyBs
YXRjaGluZyBmcm9tIGFuIGVhcmxpZXIgc2Nyb2xsLiIpOwogICAgICAgICAgICAgc2V0VGltZW91
dChzY3JvbGxUZXN0LCAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3Jk
aW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWJhY2stc3dpcGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hv
cml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBk
YzMxOWE3ZjhhNDQwOTgyNjk1M2Q5YWE2MDA3MDQ5ODI0NmExZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWJhY2stc3dpcGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Njcm9s
bHMgdmVydGljYWxseQorU2Nyb2xscyBob3Jpem9udGFsbHkKK0EgYmFjayBzd2lwZSwgb3ZlciBh
IHNjcm9sbGVkLXRvLWxlZnQgb3ZlcmZsb3csIHNob3VsZCBzdGFydCBhIG5hdmlnYXRpb24gZ2Vz
dHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N3aXBlIHRvIHRoZSBsZWZ0
CitQQVNTIG1pblhPZmZzZXQgaXMgMAorUEFTUyBtYXhYT2Zmc2V0IGlzIC0xMDAwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwt
b3ZlcmZsb3ctYmFjay1zd2lwZS5odG1sIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0
b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ0N2VkNjlhZDdlMTY3ZWM2MTNmNjJhNDBiZjUwNGE3MWZmMjE2MjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcv
aG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwKQEAgLTAsMCArMSwxMTQgQEAKKzwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3Zl
cmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0
eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwMHB4OworICAgICAg
ICB9CisKKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAg
ICAgICAgICBvdmVyZmxvdzogYXV0bzsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJs
YWNrOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuaG9yaXpvbnRhbCAuc2Nyb2xsZXIg
eworICAgICAgICAgICAgd2lkdGg6IDQwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsK
KyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
LmZpbGxlciB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgd2lkdGg6
IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0KKworICAgICAgICAuaG9yaXpvbnRhbCAuZmlsbGVy
IHsKKyAgICAgICAgICAgIGhlaWdodDogODAlOworICAgICAgICAgICAgd2lkdGg6IDIwMCU7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0KKyAgICA8L3N0
eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICAKKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworICAgICAgICB2YXIgbWluWE9mZnNldCA9IDA7CisgICAgICAgIHZhciBtYXhY
T2Zmc2V0ID0gLTEwMDA7CisgICAgICAgIAorICAgICAgICBhc3luYyBmdW5jdGlvbiBvblNjcm9s
bENvbXBsZXRpb24oeCwgeSkKKyAgICAgICAgeworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9u
aXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygxLCAwLCAiYmVnYW4iLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEwLCAwLCAiY2hh
bmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMTAsIDAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygxMCwgMCwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25l
Iik7CisgICAgICAgICAgICByZXR1cm4gVUlIZWxwZXIud2FpdEZvclNjcm9sbENvbXBsZXRpb24o
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gb25Td2lwZUNh
bGxiYWNrKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29s
dmUgPT4geworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaW5zdGFsbERpZEJlZ2luU3dpcGVD
YWxsYmFjayhyZXNvbHZlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gc2Nyb2xsVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uKCdBIGJhY2sgc3dpcGUsIG92ZXIgYSBzY3JvbGxlZC10by1sZWZ0IG92ZXJmbG93LCBz
aG91bGQgc3RhcnQgYSBuYXZpZ2F0aW9uIGdlc3R1cmUuJyk7CisKKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0TmF2aWdh
dGlvbkdlc3R1cmVzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aGlzdG9yeS5wdXNoU3RhdGUoeyBuYW1lOiAnYmFja3N0YXRlJyB9LCAnYmFjaycpOworCisgICAg
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4geworICAgICAg
ICAgICAgICAgIG1pblhPZmZzZXQgPSBNYXRoLm1pbihtaW5YT2Zmc2V0LCB3aW5kb3cucGFnZVhP
ZmZzZXQpOworICAgICAgICAgICAgICAgIG1heFhPZmZzZXQgPSBNYXRoLm1heChtYXhYT2Zmc2V0
LCB3aW5kb3cucGFnZVhPZmZzZXQpOworICAgICAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAg
ICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgY29uc3QgbW91c2VMb2NhdGlvblggPSAxNTA7IC8vIE92ZXIgdGhlIGhvcml6b250YWxs
eSBzY3JvbGxhYmxlIG92ZXJmbG93LgorICAgICAgICAgICAgY29uc3QgbW91c2VMb2NhdGlvblkg
PSAzMDA7CisKKyAgICAgICAgICAgIGRlYnVnKCdTd2lwZSB0byB0aGUgbGVmdCcpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbb25TY3JvbGxDb21wbGV0aW9u
KG1vdXNlTG9jYXRpb25YLCBtb3VzZUxvY2F0aW9uWSksIG9uU3dpcGVDYWxsYmFjaygpXSk7CisK
KyAgICAgICAgICAgIC8vIFNob3VsZCBub3QgaGF2ZSByZWNlaXZlZCBhbnkgc2Nyb2xsIGV2ZW50
cy4KKyAgICAgICAgICAgIHNob3VsZEJlKCdtaW5YT2Zmc2V0JywgJzAnKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCdtYXhYT2Zmc2V0JywgJy0xMDAwJyk7CisKKyAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCAoKSA9PiB7CisgICAgICAgICAgICBzY3JvbGxUZXN0KCk7CisgICAgICAgIH0sIGZhbHNl
KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9Im91dGVyIiBj
bGFzcz0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJmaWxsZXIiPlNjcm9sbHMgdmVy
dGljYWxseTwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpbm5lciIgY2xhc3M9Imhvcml6b250YWwg
c2Nyb2xsZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsbGVyIj5TY3JvbGxzIGhvcml6
b250YWxseTwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZmlsbGVy
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29y
ZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVy
Zmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMv
bGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjJiNTkzMDJiMzVmY2I5YjI1ZmNmZjRhYTdmY2JkY2I4YmEwOTY5
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21h
Yy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitTY3JvbGxzIHZlcnRpY2FsbHkKK1Njcm9sbHMgaG9y
aXpvbnRhbGx5CitJbml0aWFsIHN0YXRlCitQQVNTIG91dGVyU2Nyb2xsZXIuc2Nyb2xsVG9wIGlz
IDAKK1BBU1MgaW5uZXJTY3JvbGxlci5zY3JvbGxUb3AgaXMgMAorQWZ0ZXIgc2Nyb2xsbAorUEFT
UyBvdXRlclNjcm9sbGVyLnNjcm9sbFRvcCBpcyAyMDAKK1BBU1MgaW5uZXJTY3JvbGxlci5zY3Jv
bGxUb3AgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9s
YXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1v
dmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMjNlNGM4NDE0
MjdjOTkzNDE1ZDE2ZWU4ZWJkZTYzYWY0MDUxOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxv
dy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3Jv
bGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7
CisgICAgICAgIH0KKworICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAgbWFyZ2luOiAx
MHB4OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgICAgICAgYm9yZGVyOiAycHgg
c29saWQgYmxhY2s7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5ob3Jpem9udGFsIC5z
Y3JvbGxlciB7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDQwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAuZmlsbGVyIHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAg
ICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQorCisgICAgICAgIC5ob3Jpem9udGFs
IC5maWxsZXIgeworICAgICAgICAgICAgaGVpZ2h0OiA4MCU7CisgICAgICAgICAgICB3aWR0aDog
MjAwJTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgICAgIHZhciBvdXRlclNjcm9sbGVyOworICAgICAgICB2YXIgaW5uZXJTY3Jv
bGxlcjsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZGVidWcoJ0FmdGVyIHNjcm9sbGwnKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCdvdXRlclNjcm9sbGVyLnNjcm9sbFRvcCcsICcyMDAnKTsKKyAgICAgICAgICAgIHNo
b3VsZEJlKCdpbm5lclNjcm9sbGVyLnNjcm9sbFRvcCcsICcwJyk7CisKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2Nyb2xsVGVzdCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG91dGVyU2Nyb2xsZXIgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnb3V0ZXInKTsKKyAgICAgICAgICAgIGlubmVyU2Nyb2xsZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5uZXInKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGVidWco
J0luaXRpYWwgc3RhdGUnKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCdvdXRlclNjcm9sbGVyLnNj
cm9sbFRvcCcsICcwJyk7CisgICAgICAgICAgICBzaG91bGRCZSgnaW5uZXJTY3JvbGxlci5zY3Jv
bGxUb3AnLCAnMCcpOworCisgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikgewor
ICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZl
bnRzKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxNTAsIDMwMCk7IC8v
IE92ZXIgdGhlIGhvcml6b250YWxseSBzY3JvbGxhYmxlIG92ZXJmbG93LgorICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0x
LCAiYmVnYW4iLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xMCwgImNoYW5nZWQiLCAibm9uZSIpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xMCwgIm5vbmUiLCAiY29udGludWUiKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAibm9uZSIs
ICJlbmQiKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0NvbXBs
ZXRlcyhjaGVja0ZvclNjcm9sbCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xs
VGVzdCwgMCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgaWQ9Im91dGVyIiBjbGFzcz0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJmaWxsZXIiPlNjcm9sbHMgdmVydGljYWxseTwvZGl2PgorICAgICAgICA8ZGl2IGlk
PSJpbm5lciIgY2xhc3M9Imhvcml6b250YWwgc2Nyb2xsZXIiPgorICAgICAgICAgICAgPGRpdiBj
bGFzcz0iZmlsbGVyIj5TY3JvbGxzIGhvcml6b250YWxseTwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0iZmlsbGVyIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396084</attachid>
            <date>2020-04-10 08:03:41 -0700</date>
            <delta_ts>2020-04-10 08:36:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210320-20200410080340.patch</filename>
            <type>text/plain</type>
            <size>46065</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY0YjFiYThkM2YzMmVi
N2MwYWFkNjk2MjgwYTdmNzU0MjBjMDBkOS4uZTliOGMxZWQxMjc4ZmJjZGQ2ZGY0NGNhY2JiMTEx
OTJhN2Y4N2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA0LTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtBc3luYyBvdmVy
ZmxvdyBzY3JvbGxpbmddIFZlcnRpY2FsIHNjcm9sbHMgb3ZlciBhIGhvcml6b250YWxseSBzY3Jv
bGxhYmxlIG92ZXJmbG93IGFyZSBjYXB0dXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHNvbWV3aGF0IG1vcmUgc29waGlz
dGljYXRlZCBsYXRjaGluZyBsb2dpYyB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgd2hpY2gKKyAg
ICAgICAgZml4ZXMgdGhlIGluYWJpbGl0eSB0byB2ZXJ0aWNhbGx5IHNjcm9sbCBpZiB0aGUgbW91
c2UgaXMgb3ZlciBhbiBlbmNsb3NlZCBob3Jpem9udGFsIHNjcm9sbGVyLgorICAgICAgICAKKyAg
ICAgICAgU2Nyb2xsaW5nVHJlZSBvd25zIGEgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ciwgd2hpY2ggZGV0ZXJtaW5lcyB3aGVuIHRvIGxhdGNoIGFuZCBjbGVhcgorICAgICAgICBsYXRj
aGluZy4gTGF0Y2ggY2xlYXJpbmcgdXNlcyBhIDEwMG1zIGRlbGF5IChsaWtlIG1haW4gdGhyZWFk
IGxhdGNoaW5nKSBzbyB0aGF0IGEgc3RhcnRpbmcgZ2VzdHVyZQorICAgICAgICBzb29uIGFmdGVy
IGFub3RoZXIgZ2VzdHVyZSwgd2hvc2UgaW5pdGlhbCB4IGFuZCB5IGFyZSBzbWFsbCwgZ29lcyB0
byB0aGUgc2FtZSBzY3JvbGxlciBhcyBiZWZvcmUuCisgICAgICAgIAorICAgICAgICBTY3JvbGxp
bmcgdHJlZSBsYXRjaGluZyB3b3JrcyBhcyBmb2xsb3dzLiBXaGVuIHdlIHJlY2VpdmUgYSBzY3Jv
bGwgZXZlbnQgd2hpY2ggYWxsb3dzIHVzZSBvZiB0aGUKKyAgICAgICAgbGF0Y2hlZCBub2RlLCBh
bmQgdGhlcmUgaXMgYSBsYXRjaGVkIG5vZGUsIHNlbmQgdGhlIGV2ZW50IGRpcmVjdGx5IHRvIHRo
YXQgbm9kZS4gT3RoZXJ3aXNlLAorICAgICAgICBoaXQtdGVzdCB0byBmaW5kIHRoZSBtb3N0IGRl
ZXBseSBuZXN0ZWQgc2Nyb2xsIHRhcmdldC4gVHJhdmVyc2UgdXAgdGhlIHBhcmVudCBjaGFpbiBn
aXZpbmcgZWFjaCBub2RlCisgICAgICAgIGFuIG9wcG9ydHVuaXR5IHRvIGhhbmRsZSB0aGUgZXZl
bnQuIElmIGhhbmRsZWQgYnkgYSBub2RlLCB0aGF0IG5vZGUgYmVjb21lcyB0aGUgbGF0Y2hlZCBu
b2RlLgorICAgICAgICAKKyAgICAgICAgU2Nyb2xsaW5nVHJlZSBubyBsb25nZXIgdHJhY2tzIHRo
ZSBsYXRjaGVkIG5vZGUgaXRzZWxmLgorCisgICAgICAgIFRlc3RzOiBzY3JvbGxpbmdjb29yZGlu
YXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwKKyAg
ICAgICAgICAgICAgIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwKKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlSUQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFzTGF0Y2hlZE5vZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2ZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmxhdGNoZWROb2Rl
SUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlcjo6bm9kZURpZEhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVMYXRjaGluZ0NvbnRyb2xsZXI6Om5vZGVXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmNsZWFyTGF0Y2hlZE5vZGUpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDog
QWRkZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Omlz
TGF0Y2hlZE5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNhblNjcm9sbFdpdGhXaGVlbEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxMaW1pdFJlYWNoZWQgY29uc3Qp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQpOgorCiAyMDIwLTA0LTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggZm9yIGNyYXNoIGluIHRlc3QgYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJjaHkuaHRtbCBpbiBpc29sYXRlZCB0cmVlIG1v
ZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IGIyNzA1MGQ2MmQyOTM5YjZiY2Q1MzBjM2ExOTRjYTcwYjlk
NjU4NTcuLjc0MmE2NWZmNDdiYmEzNGUxNTkyYzhhYmU0ZmVkZDhlNDM0MjFjNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0xNzM1LDYgKzE3MzUsNyBAQCBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUaHJl
YWQuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05vZGUuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmNwcAogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZS5j
cHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNh
ZDUzY2Y1ZDJkNzc4ZmQ4YzZiZDZhYTI2NmUwZTcxODRiMDE3MDUuLmUyOGFhYzE2MWMzZWI1M2Mw
ZmFkZjA0OGQyNjZkOTMwNDJkMTFlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MSw2ICszNzEsNyBAQAogCQkwRkY1MDI3
MjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxl
TWVkaWEuaCAqLzsgfTsKIAkJMEZGODM1QzMxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjgzNUJFMUVF
MzU0REEwMDhCNENDNyAvKiBET01RdWFkLmggKi87IH07CiAJCTBGRjgzNUM1MUVFMzU0REEwMDhC
NENDNyAvKiBET01RdWFkSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZGODM1QzAxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmggKi87
IH07CisJCTBGRkQ0NUFBMjQzQzMwMjcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkZENDVBNzI0M0JGMjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZENEQ1RjE4
NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTEwRkIwODRCMTRFMTVDN0Uw
MEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJM
TWFuYWdlci5oICovOyB9OwogCQkxMTJCMzRENTFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxlTGlu
ZUxheW91dFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFn
aW5hdGlvbi5oICovOyB9OwpAQCAtNTk4OSw2ICs1OTkwLDggQEAKIAkJMEZGODM1QkYxRUUzNTRE
QTAwOEI0Q0M3IC8qIERPTVF1YWQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVF1YWQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY4MzVDMDFFRTM1NERBMDA4QjRD
QzcgLyogRE9NUXVhZEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
UXVhZEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGODM1QzExRUUzNTRE
QTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01R
dWFkSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkQ0NUE3MjQzQkYy
NTcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEZGRDQ1QTgyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkQ0
RDVFMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZENEQ1RjE4NjUxRkEzMDA1
MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1YmxpY1VSTE1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQ3LDYgKzE3NTUwLDggQEAKIAkJ
CQkwRkQ0MUU2NjIxRjgwMjgyMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05v
ZGUuaCAqLywKIAkJCQkwRkVBM0U4NTE5MUIzQkQ3MDAwRjFCNTUgLyogU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZS5jcHAgKi8sCiAJCQkJMEZFQTNFODYxOTFCM0JENzAwMEYxQjU1IC8q
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCAqLywKKwkJCQkwRkZENDVBODI0M0JG
MjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAgKi8sCisJ
CQkJMEZGRDQ1QTcyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIuaCAqLywKIAkJCQkxQUFBRERFMTE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwICovLAogCQkJCTFBQUFEREUyMTREQzhDOEYwMEFGNjRCMyAvKiBTY3JvbGxpbmdU
cmVlTm9kZS5oICovLAogCQkJCTBGRUEzRTdEMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmNwcCAqLywKQEAgLTMyNjI4LDYgKzMyNjMzLDcgQEAK
IAkJCQkwRkQ0MUU2ODIxRjgwQzBFMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGlu
Z05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTg4MTkxQjNCRDcwMDBGMUI1NSAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0M0
QTQxNTE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRDQ1QUEyNDNDMzAyNzAwMEQ0QkVBIC8qIFNjcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTU4MDY0
MTkzMjdBNjIwMERFMzJFQiAvKiBTY3JvbGxpbmdUcmVlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUFBRERFNDE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZDkyMjVkMTA5Nzc1OTM3NDc5
OGIzOTkxYWI3MjA1OGZkYTVkOGNlNC4uNjlmYTJmMDM2MTEzNDkwMzVjMjIwZTM2NTdkODIxOTk0
ZjU5ZDljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xs
aW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSgpID0gZGVmYXVsdDsKLQogU2Nyb2xsaW5nVHJlZTo6flNj
cm9sbGluZ1RyZWUoKSA9IGRlZmF1bHQ7CiAKIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFu
ZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQpAQCAtNTMsMTMgKzUyLDEwIEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFu
ZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAg
Ly8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgZXZlbnQgaGFuZGxpbmcgdGhyZWFkCiAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAgYm9vbCBzaG91bGRT
ZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpOwotICAgIAotICAg
IGlmIChoYXNMYXRjaGVkTm9kZSgpICYmICFzaG91bGRTZXRMYXRjaCkKKyAgICBpZiAobV9sYXRj
aGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3aGVlbEV2ZW50KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHNob3VsZFNldExhdGNoKQotICAgICAgICBtX3RyZWVT
dGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKKyAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZl
ZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgCiAgICAgaWYgKCFtX3RyZWVTdGF0ZS5ldmVu
dFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5KCkgJiYgbV9yb290Tm9kZSkgewogICAgICAgICBGbG9h
dFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwpAQCAtNzksMjYgKzc1LDE3
IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZShjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCi17Ci0gICAgaWYgKHdo
ZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7Ci0gICAgICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8
PCAiIHNldE9yQ2xlYXJMYXRjaGVkTm9kZTogc2V0dGluZyBsYXRjaGVkIG5vZGUgIiA8PCBub2Rl
SUQpOwotICAgICAgICBzZXRMYXRjaGVkTm9kZShub2RlSUQpOwotICAgIH0gZWxzZSBpZiAod2hl
ZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpIHsKLSAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIg
c2V0T3JDbGVhckxhdGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUgKHdhcyAiIDw8IGxh
dGNoZWROb2RlKCkgPDwgIikiKTsKLSAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOwotICAgIH0K
LX0KLQogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0gICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8PCAi
IGhhbmRsZVdoZWVsRXZlbnQgKGFzeW5jIHNjcm9sbGluZyBlbmFibGVkOiAiIDw8IGFzeW5jRnJh
bWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpIDw8ICIpIik7CisgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblNjcm9sbGluZ1RyZWUgIiA8PCB0aGlzIDw8ICIg
aGFuZGxlV2hlZWxFdmVudCAoYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQ6ICIgPDwgYXN5bmNGcmFt
ZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkgPDwgIikiKTsKIAogICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fdHJlZU11dGV4KTsKIAogICAgIGlmIChpc01vbml0b3JpbmdXaGVlbEV2ZW50cygp
KQogICAgICAgICByZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAKKyAgICBtX2xhdGNo
aW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisKICAgICBpZiAo
IWFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICht
X3Jvb3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuIG1fcm9vdE5vZGUtPmhhbmRsZVdoZWVsRXZl
bnQod2hlZWxFdmVudCk7CkBAIC0xMDYsMjkgKzkzLDI5IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0
IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZl
bnQ7CiAgICAgfQogCi0gICAgaWYgKGhhc0xhdGNoZWROb2RlKCkpIHsKLSAgICAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OmhhbmRs
ZVdoZWVsRXZlbnQ6IGhhcyBsYXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9kZSgpKTsKLSAgICAg
ICAgYXV0byogbm9kZSA9IG5vZGVGb3JJRChsYXRjaGVkTm9kZSgpKTsKKyAgICBpZiAoYXV0byBs
YXRjaGVkTm9kZUlEID0gbV9sYXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3
aGVlbEV2ZW50KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudDogaGFzIGxhdGNoZWQgbm9k
ZSAiIDw8IGxhdGNoZWROb2RlSUQpOworICAgICAgICBhdXRvKiBub2RlID0gbm9kZUZvcklEKGxh
dGNoZWROb2RlSUQudmFsdWUoKSk7CiAgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZT4obm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU+KCpub2RlKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAg
IH0KIAotICAgIGlmIChtX3Jvb3ROb2RlKSB7Ci0gICAgICAgIEZsb2F0UG9pbnQgcG9zaXRpb24g
PSB3aGVlbEV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgICAgIHBvc2l0aW9uLm1vdmUobV9yb290Tm9k
ZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24pKTsKLSAgICAgICAgYXV0byBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBvaW50KHBvc2l0aW9u
KTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOworICAg
IHBvc2l0aW9uLm1vdmUobV9yb290Tm9kZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3Rh
dGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pKTsKKyAgICBhdXRvIG5vZGUgPSBzY3JvbGxpbmdO
b2RlRm9yUG9pbnQocG9zaXRpb24pOwogCi0gICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCBmb3VuZCBub2Rl
ICIgPDwgKG5vZGUgPyBub2RlLT5zY3JvbGxpbmdOb2RlSUQoKSA6IDApIDw8ICIgZm9yIHBvaW50
ICIgPDwgcG9zaXRpb24gPDwgIlxuIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywg
c3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50IGZvdW5kIG5vZGUgIiA8
PCAobm9kZSA/IG5vZGUtPnNjcm9sbGluZ05vZGVJRCgpIDogMCkgPDwgIiBmb3IgcG9pbnQgIiA8
PCBwb3NpdGlvbik7CiAKLSAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAgICAgICAgIGlmIChp
czxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7Ci0gICAgICAgICAgICAgICAg
YXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
Pigqbm9kZSk7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gY29uc3Vs
dCBsYXRjaGluZyBsb2dpYy4KLSAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsaW5nTm9kZS5oYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpID09IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5k
bGVFdmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWRIYW5kbGVFdmVudDsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBpZiAoaXM8U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKSkgeworICAgICAgICAgICAgYXV0byYgc2Ny
b2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqbm9kZSk7
CisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBjb25zdWx0IGxhdGNoaW5nIGxv
Z2ljLgorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ05vZGUuaGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KSA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQpIHsKKyAgICAg
ICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxlRXZlbnQod2hlZWxF
dmVudCwgc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQoKTsKICAgICAgICAgfQorICAgICAg
ICBub2RlID0gbm9kZS0+cGFyZW50KCk7CiAgICAgfQogICAgIHJldHVybiBTY3JvbGxpbmdFdmVu
dFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiB9CkBAIC0xOTUsOCArMTgyLDcgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0
YXRlVHJlZT4gc2Nyb2xsaW4KICAgICB1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShyb290Tm9kZSwg
b3JwaGFuTm9kZXMsIHVudmlzaXRlZE5vZGVzKTsKICAgICAKICAgICBmb3IgKGF1dG8gbm9kZUlE
IDogdW52aXNpdGVkTm9kZXMpIHsKLSAgICAgICAgaWYgKG5vZGVJRCA9PSBtX3RyZWVTdGF0ZS5s
YXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgpOworICAgICAgICBt
X2xhdGNoaW5nQ29udHJvbGxlci5ub2RlV2FzUmVtb3ZlZChub2RlSUQpOwogICAgICAgICAKICAg
ICAgICAgTE9HKFNjcm9sbGluZywgIlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRyZWVTdGF0ZSAtIHJl
bW92aW5nIHVudmlzaXRlZCBub2RlICUiIFBSSXU2NCwgbm9kZUlEKTsKICAgICAgICAgbV9ub2Rl
TWFwLnJlbW92ZShub2RlSUQpOwpAQCAtMzQxLDExICszMjcsMjcgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlOjpub3RpZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJlZU5vZGUmIG5vZGUp
CiAgICAgfQogfQogCitPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IFNjcm9sbGluZ1RyZWU6Omxh
dGNoZWROb2RlSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2xhdGNoaW5nQ29udHJvbGxlci5s
YXRjaGVkTm9kZUlEKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9k
ZSgpCit7CisgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIuY2xlYXJMYXRjaGVkTm9kZSgpOworfQor
CiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9hc3luY0ZyYW1lT3JPdmVyZmxvd1Njcm9sbGlu
Z0VuYWJsZWQgPSBlbmFibGVkOwogfQogCitGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV90cmVlU3RhdGVNdXRl
eC5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9z
aXRpb247Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24oRmxvYXRQb2ludCBwb3NpdGlvbikKIHsKICAgICBMb2NrSG9sZGVyIGxvY2sobV90cmVlU3Rh
dGVNdXRleCk7CkBAIC00NTYsMjQgKzQ1OCw2IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nUGVy
Zm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsKIH0KIAotU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1Ry
ZWU6OmxhdGNoZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11
dGV4KTsKLSAgICByZXR1cm4gbV90cmVlU3RhdGUubGF0Y2hlZE5vZGVJRDsKLX0KLQotdm9pZCBT
Y3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZShTY3JvbGxpbmdOb2RlSUQgbm9kZSkKLXsKLSAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAgICBtX3RyZWVTdGF0ZS5s
YXRjaGVkTm9kZUlEID0gbm9kZTsKLX0KLQotdm9pZCBTY3JvbGxpbmdUcmVlOjpjbGVhckxhdGNo
ZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAg
ICBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKLX0KLQogU3RyaW5nIFNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQoU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3Ig
YmVoYXZpb3IpCiB7CiAgICAgVGV4dFN0cmVhbSB0cyhUZXh0U3RyZWFtOjpMaW5lTW9kZTo6TXVs
dGlwbGVMaW5lKTsKQEAgLTQ4NCw4ICs0NjgsOCBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvciBiZWhhdgog
CiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAgICAg
IGlmIChtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgdHMuZHVtcFByb3Bl
cnR5KCJsYXRjaGVkIG5vZGUiLCBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAg
aWYgKGF1dG8gbGF0Y2hlZE5vZGVJRCA9IG1fbGF0Y2hpbmdDb250cm9sbGVyLmxhdGNoZWROb2Rl
SUQoKSkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibGF0Y2hlZCBub2RlIiwgbGF0Y2hl
ZE5vZGVJRC52YWx1ZSgpKTsKIAogICAgICAgICBpZiAoIW1fdHJlZVN0YXRlLm1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uLmlzWmVybygpKQogICAgICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJtYWlu
IGZyYW1lIHNjcm9sbCBwb3NpdGlvbiIsIG1fdHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApp
bmRleCBlZTY3YjcxMTgyNThjMzRiMWRjM2MwM2E1NzhiNDRmNTI4ZjJlMTBhLi44ZDMxYjNhZTI4
NTgwMWY1ZDI4MmNhMTQ3MjAyZmNmZTgyZDMzOGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0zMSw3ICszMSw5IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVjdEVkZ2VzLmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJT
Y3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCIKKyNp
bmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtNTEsNiArNTMsNyBAQCBjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRp
b25lZE5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIAogY2xhc3MgU2Ny
b2xsaW5nVHJlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7
CitmcmllbmQgY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjsKIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdUcmVlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+U2Nyb2xsaW5nVHJlZSgpOwpAQCAtMTQwLDE0ICsxNDMsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCk7CiAKICAgICBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlKiByb290Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdE5vZGUuZ2V0KCk7IH0KLQotICAgIFNjcm9sbGluZ05vZGVJRCBsYXRjaGVkTm9kZSgpOwot
ICAgIHZvaWQgc2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBPcHRpb25hbDxT
Y3JvbGxpbmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKICAgICB2b2lkIGNsZWFyTGF0
Y2hlZE5vZGUoKTsKIAotICAgIGJvb2wgaGFzTGF0Y2hlZE5vZGUoKSBjb25zdCB7IHJldHVybiBt
X3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEOyB9Ci0gICAgdm9pZCBzZXRPckNsZWFyTGF0Y2hlZE5v
ZGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKTsKLQogICAgIGJv
b2wgaGFzRml4ZWRPclN0aWNreSgpIGNvbnN0IHsgcmV0dXJuICEhbV9maXhlZE9yU3RpY2t5Tm9k
ZUNvdW50OyB9CiAgICAgdm9pZCBmaXhlZE9yU3RpY2t5Tm9kZUFkZGVkKCkgeyArK21fZml4ZWRP
clN0aWNreU5vZGVDb3VudDsgfQogICAgIHZvaWQgZml4ZWRPclN0aWNreU5vZGVSZW1vdmVkKCkK
QEAgLTE3Myw2ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVubG9ja0xheWVy
c0ZvckhpdFRlc3RpbmcoKSB7IH0KIAogcHJvdGVjdGVkOgorICAgIEZsb2F0UG9pbnQgbWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKEZsb2F0UG9pbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBTY3JvbGxp
bmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
OwpAQCAtMTk1LDEzICsxOTQsMTMgQEAgcHJpdmF0ZToKICAgICB1c2luZyBTY3JvbGxpbmdUcmVl
Tm9kZU1hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+PjsKICAgICBTY3JvbGxpbmdUcmVlTm9kZU1hcCBtX25vZGVNYXA7CiAKKyAgICBTY3JvbGxp
bmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyIG1fbGF0Y2hpbmdDb250cm9sbGVyOwogICAgIFJlbGF0
ZWROb2Rlc01hcCBtX292ZXJmbG93UmVsYXRlZE5vZGVzTWFwOwogCiAgICAgSGFzaFNldDxSZWY8
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlPj4gbV9hY3RpdmVPdmVyZmxvd1Nj
cm9sbFByb3h5Tm9kZXM7CiAgICAgSGFzaFNldDxSZWY8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWRO
b2RlPj4gbV9hY3RpdmVQb3NpdGlvbmVkTm9kZXM7CiAKICAgICBzdHJ1Y3QgVHJlZVN0YXRlIHsK
LSAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIGxhdGNoZWROb2RlSUQgeyAwIH07CiAgICAgICAgIEV2
ZW50VHJhY2tpbmdSZWdpb25zIGV2ZW50VHJhY2tpbmdSZWdpb25zOwogICAgICAgICBGbG9hdFBv
aW50IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogICAgICAgICBib29sIG1haW5GcmFtZUlzUnVi
YmVyQmFuZGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFhNjdjZDRhNDRiNWVmNmZhN2M0NGYyZWUwNDM2OWY0YzNjMTUxZTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
TGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9s
bGVyLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW5jbHVkZSAiRmxvYXRQ
b2ludC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9s
bGluZ1RocmVhZC5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisvLyBTZWUgYWxzbyBFdmVudEhhbmRsZXJNYWMuY3BwCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyByZXNldExhdGNoZWRTdGF0ZVRpbWVvdXQgeyAxMDBfbXMgfTsKKworU2Nyb2xsaW5n
VHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigp
ID0gZGVmYXVsdDsKKwordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpyZWNl
aXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorewor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF0Y2hlZE5vZGVNdXRleCk7CisgICAgaWYgKHdoZWVs
RXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7CisgICAgICAgIGlmIChtX2xhdGNoZWRO
b2RlSUQpIHsKKyAgICAgICAgICAgIGF1dG8gc2Vjb25kc1NpbmNlTGFzdEludGVyYWN0aW9uID0g
TW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lOwor
ICAgICAgICAgICAgaWYgKHNlY29uZHNTaW5jZUxhc3RJbnRlcmFjdGlvbiA+IHJlc2V0TGF0Y2hl
ZFN0YXRlVGltZW91dCkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxM
YXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwg
dGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgc2Vjb25kc1NpbmNlTGFzdEludGVy
YWN0aW9uLm1pbGxpc2Vjb25kcygpIDw8ICJtcyBzaW5jZSBsYXN0IGV2ZW50LCBjbGVhcmluZyBs
YXRjaGVkIG5vZGUiKTsKKyAgICAgICAgICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVzZXQoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworT3B0aW9uYWw8U2Nyb2xsaW5n
Tm9kZUlEPiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKK3sKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworCisgICAgLy8gSWYgd2UgaGF2
ZSBhIGxhdGNoZWQgbm9kZSwgdXNlIGl0LgorICAgIGlmICh3aGVlbEV2ZW50LnVzZUxhdGNoZWRF
dmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQpIHsKKyAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIgIiA8PCB0aGlzIDw8ICIgbGF0Y2hlZE5vZGVGb3JFdmVudDogcmV0dXJuaW5nICIgPDwg
bV9sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAgcmV0dXJuIG1fbGF0Y2hlZE5vZGVJRC52YWx1ZSgp
OworICAgIH0KKworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK09wdGlvbmFsPFNjcm9s
bGluZ05vZGVJRD4gU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6bGF0Y2hlZE5vZGVJ
RCgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsK
KyAgICByZXR1cm4gbV9sYXRjaGVkTm9kZUlEOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVMYXRj
aGluZ0NvbnRyb2xsZXI6Om5vZGVEaWRIYW5kbGVFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQpCit7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsKKworICAgIGlmICh3aGVlbEV2
ZW50LnVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQgPT0gc2Nyb2xs
aW5nTm9kZUlEKSB7CisgICAgICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWUgPSBN
b25vdG9uaWNUaW1lOjpub3coKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
d2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRIYW5kbGVFdmVudDog
bGF0Y2hpbmcgdG8gIiA8PCBzY3JvbGxpbmdOb2RlSUQpOworICAgIG1fbGF0Y2hlZE5vZGVJRCA9
IHNjcm9sbGluZ05vZGVJRDsKKyAgICBtX2xhc3RMYXRjaGVkTm9kZUludGVyYXRpb25UaW1lID0g
TW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29u
dHJvbGxlcjo6bm9kZVdhc1JlbW92ZWQoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK3sKKyAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIGlmIChub2RlSUQgPT0g
bV9sYXRjaGVkTm9kZUlEKQorICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVzZXQoKTsKK30KKwor
dm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpjbGVhckxhdGNoZWROb2RlKCkK
K3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIG1fbGF0
Y2hlZE5vZGVJRC5yZXNldCgpOworfQorCit9OworCisjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Zjg4OWQ3
YTY1ZmU5OTUzNzNjYTFjZmQ2MzI1ZTdjNTcwNDhmNzM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCisKKyNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUg
PHd0Zi9NYXJrYWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xs
aW5nVHJlZTsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlciB7CitwdWJs
aWM6CisgICAgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigpOworCisgICAgdm9pZCBy
ZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgT3B0aW9u
YWw8U2Nyb2xsaW5nTm9kZUlEPiBsYXRjaGVkTm9kZUZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYpIGNvbnN0OworICAgIHZvaWQgbm9kZURpZEhhbmRsZUV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCk7CisKKyAgICBPcHRpb25hbDxTY3JvbGxp
bmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKKworICAgIHZvaWQgbm9kZVdhc1JlbW92
ZWQoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2b2lkIGNsZWFyTGF0Y2hlZE5vZGUoKTsKKworcHJp
dmF0ZToKKworICAgIG11dGFibGUgTG9jayBtX2xhdGNoZWROb2RlTXV0ZXg7CisgICAgTWFya2Fi
bGU8U2Nyb2xsaW5nTm9kZUlELCBJbnRlZ3JhbE1hcmthYmxlVHJhaXRzPFNjcm9sbGluZ05vZGVJ
RCwgMD4+IG1fbGF0Y2hlZE5vZGVJRDsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdExhdGNoZWRO
b2RlSW50ZXJhdGlvblRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGRjYjBhMDk0NmRhZjNlM2ZlYTAy
NGE4NjI2MWE4NmJjODk2NzEyM2EuLmZjOGY3NzcwOWNjNzA5MzhlYTJmOGE1MDdjMGUzYzE0MTZk
NTVmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEyMCw2ICsxMjAsMjAgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm8KICAgICBtX2lzRmlyc3RDb21taXQgPSBmYWxzZTsKIH0KIAor
Ym9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9kZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkgPT0gc2Nyb2xsaW5n
Tm9kZUlEKCk7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhblNjcm9s
bFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29u
c3QKK3sKKyAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIFdlIGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0
aGUgcm9vdCBub2RlLgorICAgIHJldHVybiBpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgp
IHx8ICFzY3JvbGxMaW1pdFJlYWNoZWQod2hlZWxFdmVudCk7Cit9CisKIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpCiB7CiAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0
OjpEaWROb3RIYW5kbGVFdmVudDsKQEAgLTE0Niw3ICsxNjAsNyBAQCBGbG9hdFBvaW50IFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogYm9v
bCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsTGltaXRSZWFjaGVkKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBGbG9hdFBvaW50IG9s
ZFNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgRmxvYXRQb2lu
dCBuZXdTY3JvbGxQb3NpdGlvbiA9IG9sZFNjcm9sbFBvc2l0aW9uICsgRmxvYXRTaXplKHdoZWVs
RXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKKyAgICBGbG9hdFBvaW50IG5l
d1Njcm9sbFBvc2l0aW9uID0gb2xkU2Nyb2xsUG9zaXRpb24gKyBGbG9hdFNpemUoLXdoZWVsRXZl
bnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKICAgICBuZXdTY3JvbGxQb3NpdGlv
biA9IG5ld1Njcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5pbXVtU2Nyb2xsUG9z
aXRpb24oKSwgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIHJldHVybiBuZXdTY3JvbGxQ
b3NpdGlvbiA9PSBvbGRTY3JvbGxQb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4
IGEyYzAyMWVmZDBjMzIwOWNlYTcyZDMyNWZmYjBhN2MyZTQ4ZmVhZjIuLmY4ZDNjY2YxNTk1NGE4
ZWIyMDdjYWQ2MTc0ZGFiMTAwYmUyYjFiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNTMs
NiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0U3RhdGVB
ZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogCisgICAg
dmlydHVhbCBib29sIGNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsaW5nRXZlbnRSZXN1bHQgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAogICAgIEZsb2F0UG9pbnQgY3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50U2Nyb2xsUG9zaXRp
b247IH0KQEAgLTEyNCw2ICsxMjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBGbG9hdFNp
emUmIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hhYmxlQ29u
dGVudHNTaXplOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CisgICAgCisgICAgYm9vbCBpc0xhdGNoZWROb2RlKCkg
Y29uc3Q7CiAKICAgICAvLyBJZiB0aGUgdG90YWxDb250ZW50c1NpemUgY2hhbmdlcyBpbiB0aGUg
bWlkZGxlIG9mIGEgcnViYmVyLWJhbmQsIHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBvbGQgdG90
YWxDb250ZW50c1NpemUgZm9yIHRoZSBzYWtlIG9mCiAgICAgLy8gY29tcHV0aW5nIHRoZSBzdHJl
dGNoQW1vdW50KCkuIFVzaW5nIHRoZSBvbGQgdmFsdWUgd2lsbCBrZWVwIHRoZSBhbmltYXRpb24g
c21vb3RoLiBXaGVuIHRoZXJlIGlzIG5vIHJ1YmJlci1iYW5kIGluIHByb2dyZXNzIGF0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IGI4MTBiMzAxNGVj
ZjAwYmZlYzcwMGY0YTY0ZTk4YTk2NDliNjBmNzguLmI5MWFjOThiNjVjYWNiZTNjNjJiYmM0YTFh
NGUzODczNDMzNThmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
TWFjLm1tCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW4KIAogU2Ny
b2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0g
ICAgaWYgKCFjYW5IYXZlU2Nyb2xsYmFycygpKQorICAgIGlmICghY2FuU2Nyb2xsV2l0aFdoZWVs
RXZlbnQod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6
RGlkTm90SGFuZGxlRXZlbnQ7CiAKICAgICBib29sIGhhbmRsZWQgPSBtX2RlbGVnYXRlLmhhbmRs
ZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CkBAIC0xNjIsNyArMTYyLDYgQEAgU2Nyb2xsaW5nRXZl
bnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6aGFuZGxlV2hlZWxF
dmVudChjb25zdAogICAgIGlmIChtX2RlbGVnYXRlLmFjdGl2ZVNjcm9sbFNuYXBJbmRleERpZENo
YW5nZSgpKQogICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0QWN0aXZlU2Nyb2xsU25hcEluZGlj
ZXMoc2Nyb2xsaW5nTm9kZUlEKCksIG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xsU25hcEluZGV4Rm9y
QXhpcyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpLCBtX2RlbGVnYXRlLmFjdGl2ZVNjcm9s
bFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCkpOwogI2VuZGlmCi0g
ICAgc2Nyb2xsaW5nVHJlZSgpLnNldE9yQ2xlYXJMYXRjaGVkTm9kZSh3aGVlbEV2ZW50LCBzY3Jv
bGxpbmdOb2RlSUQoKSk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLmhhbmRsZVdoZWVsRXZlbnRQaGFz
ZSh3aGVlbEV2ZW50LnBoYXNlKCkpOwogICAgIAogICAgIHJldHVybiBoYW5kbGVkID8gU2Nyb2xs
aW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50IDogU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRp
ZE5vdEhhbmRsZUV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbQppbmRleCA0NGJkZWJiMzQ3YzU3NTI5YTk1NDI4Yzk0MDkwNWZkZTM1ZDcyMGQ3
Li40ZTc2ZjYwOGU3NWRhZWUxNGVkYzdlZWYwY2U2YWI3ZDU4YmQ2ZDUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtNjksMTQgKzY5LDEz
IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6Y29tbWl0U3Rh
dGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAKIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewotICAgIGlmICghY2FuSGF2ZVNjcm9s
bGJhcnMoKSkKKyAgICBpZiAoIWNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KHdoZWVsRXZlbnQpKQog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50Owog
CiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogCiAgICAgLy8g
RklYTUU6IFNjcm9sbCBzbmFwCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0T3JDbGVhckxhdGNo
ZWROb2RlKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICBzY3JvbGxpbmdUcmVl
KCkuaGFuZGxlV2hlZWxFdmVudFBoYXNlKHdoZWVsRXZlbnQucGhhc2UoKSk7CiAgICAgCiAgICAg
Ly8gRklYTUU6IFRoaXMgbmVlZHMgdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBoYW5k
bGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVO
aWNvc2lhLmNwcAppbmRleCA0YzI0NTlmNDJkZTgzNWM1NTNkN2Q5MjgxMGYzZTJmYWY4ZTlhZDFi
Li45MzM5NGY2MjE0MzY4NWFkMzVhNTA3Y2Y5YzczYjMyZDUzMmZiOGExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcApAQCAt
MTE2LDcgKzExNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU5pY29z
aWE6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvCiAKIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKLSAgICBpZiAo
IWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgaWYgKCFjYW5TY3JvbGxXaXRoV2hlZWxFdmVudCh3
aGVlbEV2ZW50KSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWROb3RI
YW5kbGVFdmVudDsKIAogICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpIHx8IHdoZWVsRXZlbnQu
ZGVsdGFZKCkpIHsKQEAgLTE0NCw4ICsxNDQsNiBAQCBTY3JvbGxpbmdFdmVudFJlc3VsdCBTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFuZGxlV2hlZWxFdmVudChjbwog
ICAgIH0KICNlbmRpZgogCi0gICAgc2Nyb2xsaW5nVHJlZSgpLnNldE9yQ2xlYXJMYXRjaGVkTm9k
ZSh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7Ci0KICAgICAvLyBGSVhNRTogVGhpcyBu
ZWVkcyB0byByZXR1cm4gd2hldGhlciB0aGUgZXZlbnQgd2FzIGhhbmRsZWQuCiAgICAgcmV0dXJu
IFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKaW5k
ZXggODFjOTE0MDVjZjk4ZmE3ZjA5YzU2MTE1OGYwOTc1Nzk4NmViMDg2ZC4uNWNkNWNlMGU0YmQy
ZGU5MWYwYjE2YTQ1YmQyOGZhMzUzNTE1YzAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
Tmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKQEAgLTEwMSw3ICsx
MDEsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpy
ZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKIAogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewotICAgIGlmICghY2FuSGF2ZVNj
cm9sbGJhcnMoKSkKKyAgICBpZiAoIWNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KHdoZWVsRXZlbnQp
KQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50
OwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVudC5kZWx0YVkoKSkg
ewpAQCAtMTI5LDggKzEyOSw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50CiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0T3JDbGVhckxhdGNoZWROb2RlKHdoZWVsRXZl
bnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKLQogICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3Vs
dDo6RGlkSGFuZGxlRXZlbnQ7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YzNjMjM2ZjI2NGY0YzkzMDQ4MmQyZDBm
NmU2NzA4YTQzM2RjMjVlLi5hMzdmYWE4YmU4YWY3M2FkZDViYWM5M2E3MWMxNGM2OWZkZmY3YmQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDQtMDkgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW0FzeW5jIG92ZXJmbG93IHNjcm9sbGluZ10g
VmVydGljYWwgc2Nyb2xscyBvdmVyIGEgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUgb3ZlcmZsb3cg
YXJlIGNhcHR1cmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTAzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0cyBmb3IgaG9yaXpvbnRhbCBpbnNpZGUgdmVydGljYWwgb3ZlcmZsb3csIHRlc3Qg
dGhhdCBoaXQtdGVzdGluZyBpbnNpZGUgc2Nyb2xsZWQtdG8tbGltaXQgaG9yaXpvbnRhbCBzY3Jv
bGxlcnMKKyAgICAgICAgc3RpbGwgYWxsb3dzIGZvciBzd2lwZSBuYXZpZ2F0aW9uLCBhbmQgdGVz
dCB0aGUgbGF0Y2hpbmcgdGltZW91dC4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNo
aW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMuaHRtbDoKKyAg
ICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVy
Zmxvdy1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsaW5n
Y29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcv
aG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9u
dGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0
LTA5ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXTog
TmV3IHRlc3QgbGFuZGVkIGZvciByMjU5NzYyIGxhbmRlZCBicm9rZW46IGVkaXRpbmcvZWRpdGFi
bGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gt
c21hbGwtZGVsdGFzLWV4cGVjdGVkLnR4dAppbmRleCAwNjc2OGE5Mjc4YjA1N2E0MGY1NzlmN2Q5
NjMyMDJmYWQ4NDgwOWJkLi40ZmYyNGYwMzMxNDgwODFhMjRiZTRhMDMxZjUwNTVkNWM4MDc2OTA3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUt
bGF0Y2gtc21hbGwtZGVsdGFzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLWV4cGVjdGVkLnR4dApA
QCAtMTMsNyArMTMsNyBAQCBBZnRlciB3YWl0CiBQQVNTIGlmcmFtZVRhcmdldC5jb250ZW50V2lu
ZG93LnBhZ2VZT2Zmc2V0IGlzIDUwMAogUEFTUyB3aW5kb3cucGFnZVlPZmZzZXQgaXMgMjAwCiBG
QUlMIGlmcmFtZVRhcmdldC5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0IHNob3VsZCBiZSA0ODAu
IFdhcyA1MDAuCi1GQUlMIHdpbmRvdy5wYWdlWU9mZnNldCBzaG91bGQgYmUgMjAwLiBXYXMgMTgw
LgorUEFTUyB3aW5kb3cucGFnZVlPZmZzZXQgaXMgMjAwCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMu
aHRtbAppbmRleCA5MWNiY2U0ZGJkYTg4MmE0M2EwNmZjZTI4NGI1ZDI5N2Q1MWI0M2ZjLi4xYzAy
ZTMzNzg4N2JkYzAzZTMyYTY2YjhlY2JhZTUzMzE1NzM0ZjA2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNo
LXNtYWxsLWRlbHRhcy5odG1sCkBAIC00OSw3ICs0OSw2IEBACiAgICAgICAgICAgICBzaG91bGRC
ZSgnaWZyYW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQnLCAnNTAwJyk7CiAgICAg
ICAgICAgICBzaG91bGRCZSgnd2luZG93LnBhZ2VZT2Zmc2V0JywgJzIwMCcpOwogCi0gICAgICAg
ICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2Jl
Z2FuJywgJ25vbmUnKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMSwgJ2NoYW5nZWQnLCAnbm9uZScpOwogICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDEsICdjaGFuZ2VkJywgJ25vbmUnKTsKQEAgLTYyLDcgKzYxLDcgQEAKICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gc2V0dXBUb3BM
ZXZlbCgpIAorICAgICAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAgICAgICAgewogICAg
ICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWNvbmQgc2Nyb2xsIHdpdGggc21h
bGwgeC95IGRlbHRhcyB1c2VzIGxhdGNoaW5nIGZyb20gYW4gZWFybGllciBzY3JvbGwuIik7CiAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZs
b3ctYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGlu
YXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43MGRjMzE5YTdmOGE0NDA5ODI2OTUzZDlhYTYwMDcwNDk4MjQ2YTFm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFj
L2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNCBAQAorU2Nyb2xscyB2ZXJ0aWNhbGx5CitTY3JvbGxzIGhvcml6b250YWxseQor
QSBiYWNrIHN3aXBlLCBvdmVyIGEgc2Nyb2xsZWQtdG8tbGVmdCBvdmVyZmxvdywgc2hvdWxkIHN0
YXJ0IGEgbmF2aWdhdGlvbiBnZXN0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworU3dpcGUgdG8gdGhlIGxlZnQKK1BBU1MgbWluWE9mZnNldCBpcyAwCitQQVNTIG1heFhPZmZz
ZXQgaXMgLTEwMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMv
bGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0
cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1i
YWNrLXN3aXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ3ZWQ2OWFkN2UxNjdlYzYxM2Y2MmE0MGJmNTA0
YTcxZmYyMTYyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3Jk
aW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWJhY2stc3dpcGUuaHRtbApA
QCAtMCwwICsxLDExNCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVp
Z2h0OiAyMDAwcHg7CisgICAgICAgIH0KKworICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAg
ICAgbWFyZ2luOiAxMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgICAgICAg
Ym9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5o
b3Jpem9udGFsIC5zY3JvbGxlciB7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICAuZmlsbGVyIHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQorCisgICAgICAg
IC5ob3Jpem9udGFsIC5maWxsZXIgeworICAgICAgICAgICAgaGVpZ2h0OiA4MCU7CisgICAgICAg
ICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsK
KyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIAorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHZhciBtaW5YT2Zmc2V0ID0g
MDsKKyAgICAgICAgdmFyIG1heFhPZmZzZXQgPSAtMTAwMDsKKyAgICAgICAgCisgICAgICAgIGFz
eW5jIGZ1bmN0aW9uIG9uU2Nyb2xsQ29tcGxldGlvbih4LCB5KQorICAgICAgICB7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEsIDAsICJiZWdhbiIsICJub25lIik7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMTAsIDAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygxMCwgMCwgImNoYW5n
ZWQiLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDEwLCAwLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMCwgImVuZGVkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIHJldHVybiBVSUhlbHBlci53YWl0
Rm9yU2Nyb2xsQ29tcGxldGlvbigpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBhc3lu
YyBmdW5jdGlvbiBvblN3aXBlQ2FsbGJhY2soKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5p
bnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKHJlc29sdmUpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAg
eworICAgICAgICAgICAgZGVzY3JpcHRpb24oJ0EgYmFjayBzd2lwZSwgb3ZlciBhIHNjcm9sbGVk
LXRvLWxlZnQgb3ZlcmZsb3csIHNob3VsZCBzdGFydCBhIG5hdmlnYXRpb24gZ2VzdHVyZS4nKTsK
KworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKHRydWUpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7IG5hbWU6ICdiYWNrc3RhdGUn
IH0sICdiYWNrJyk7CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3Jv
bGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgbWluWE9mZnNldCA9IE1hdGgubWluKG1pblhP
ZmZzZXQsIHdpbmRvdy5wYWdlWE9mZnNldCk7CisgICAgICAgICAgICAgICAgbWF4WE9mZnNldCA9
IE1hdGgubWF4KG1heFhPZmZzZXQsIHdpbmRvdy5wYWdlWE9mZnNldCk7CisgICAgICAgICAgICB9
LCBmYWxzZSk7CisKKyAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBtb3VzZUxvY2F0aW9uWCA9IDE1MDsgLy8g
T3ZlciB0aGUgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUgb3ZlcmZsb3cuCisgICAgICAgICAgICBj
b25zdCBtb3VzZUxvY2F0aW9uWSA9IDMwMDsKKworICAgICAgICAgICAgZGVidWcoJ1N3aXBlIHRv
IHRoZSBsZWZ0Jyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxs
KFtvblNjcm9sbENvbXBsZXRpb24obW91c2VMb2NhdGlvblgsIG1vdXNlTG9jYXRpb25ZKSwgb25T
d2lwZUNhbGxiYWNrKCldKTsKKworICAgICAgICAgICAgLy8gU2hvdWxkIG5vdCBoYXZlIHJlY2Vp
dmVkIGFueSBzY3JvbGwgZXZlbnRzLgorICAgICAgICAgICAgc2hvdWxkQmUoJ21pblhPZmZzZXQn
LCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ21heFhPZmZzZXQnLCAnLTEwMDAnKTsKKwor
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAgIHNjcm9sbFRlc3Qo
KTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0ib3V0ZXIiIGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImZpbGxlciI+U2Nyb2xscyB2ZXJ0aWNhbGx5PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImlubmVy
IiBjbGFzcz0iaG9yaXpvbnRhbCBzY3JvbGxlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJm
aWxsZXIiPlNjcm9sbHMgaG9yaXpvbnRhbGx5PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8ZGl2IGNsYXNzPSJmaWxsZXIiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJm
bG93LWluLXZlcnRpY2FsLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Njcm9s
bGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRp
Y2FsLW92ZXJmbG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmI1OTMwMmIzNWZjYjliMjVm
Y2ZmNGFhN2ZjYmRjYjhiYTA5NjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Ny
b2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctaW4tdmVy
dGljYWwtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Njcm9sbHMgdmVy
dGljYWxseQorU2Nyb2xscyBob3Jpem9udGFsbHkKK0luaXRpYWwgc3RhdGUKK1BBU1Mgb3V0ZXJT
Y3JvbGxlci5zY3JvbGxUb3AgaXMgMAorUEFTUyBpbm5lclNjcm9sbGVyLnNjcm9sbFRvcCBpcyAw
CitBZnRlciBzY3JvbGxsCitQQVNTIG91dGVyU2Nyb2xsZXIuc2Nyb2xsVG9wIGlzIDIwMAorUEFT
UyBpbm5lclNjcm9sbGVyLnNjcm9sbFRvcCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xs
aW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctaW4tdmVydGlj
YWwtb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9s
YXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjAyM2U0Yzg0MTQyN2M5OTM0MTVkMTZlZThlYmRlNjNhZjQwNTE5NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGlu
Zy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwKQEAgLTAsMCAr
MSw5MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJu
YWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAgICAgfQorCisgICAgICAgIC5zY3JvbGxlciB7Cisg
ICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAg
ICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgLmhvcml6b250YWwgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5maWxsZXIgeworICAgICAgICAgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgbWFyZ2luOiAx
MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICB9CisK
KyAgICAgICAgLmhvcml6b250YWwgLmZpbGxlciB7CisgICAgICAgICAgICBoZWlnaHQ6IDgwJTsK
KyAgICAgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgdmFyIG91dGVyU2Nyb2xsZXI7Cisg
ICAgICAgIHZhciBpbm5lclNjcm9sbGVyOworICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gY2hl
Y2tGb3JTY3JvbGwoKQorICAgICAgICB7CisgICAgICAgICAgICBkZWJ1ZygnQWZ0ZXIgc2Nyb2xs
bCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ291dGVyU2Nyb2xsZXIuc2Nyb2xsVG9wJywgJzIw
MCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ2lubmVyU2Nyb2xsZXIuc2Nyb2xsVG9wJywgJzAn
KTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgb3V0ZXJTY3JvbGxl
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRlcicpOworICAgICAgICAgICAgaW5uZXJT
Y3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbm5lcicpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBkZWJ1ZygnSW5pdGlhbCBzdGF0ZScpOworICAgICAgICAgICAgc2hvdWxk
QmUoJ291dGVyU2Nyb2xsZXIuc2Nyb2xsVG9wJywgJzAnKTsKKyAgICAgICAgICAgIHNob3VsZEJl
KCdpbm5lclNjcm9sbGVyLnNjcm9sbFRvcCcsICcwJyk7CisKKyAgICAgICAgICAgIGlmICghd2lu
ZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBldmVudFNl
bmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDE1MCwgMzAwKTsgLy8gT3ZlciB0aGUgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUgb3Zl
cmZsb3cuCisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoMCwgLTEsICJiZWdhbiIsICJub25lIik7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEwLCAi
Y2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEwLCAibm9uZSIsICJjb250aW51ZSIpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIDAsICJub25lIiwgImVuZCIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2Fs
bEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4geworICAgICAgICAg
ICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ib3V0ZXIiIGNsYXNzPSJzY3Jv
bGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImZpbGxlciI+U2Nyb2xscyB2ZXJ0aWNhbGx5PC9k
aXY+CisgICAgICAgIDxkaXYgaWQ9ImlubmVyIiBjbGFzcz0iaG9yaXpvbnRhbCBzY3JvbGxlciI+
CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxsZXIiPlNjcm9sbHMgaG9yaXpvbnRhbGx5PC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJmaWxsZXIiPjwvZGl2Pgor
ICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396086</attachid>
            <date>2020-04-10 08:27:29 -0700</date>
            <delta_ts>2020-04-10 08:27:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210320-20200410082728.patch</filename>
            <type>text/plain</type>
            <size>46704</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY0YjFiYThkM2YzMmVi
N2MwYWFkNjk2MjgwYTdmNzU0MjBjMDBkOS4uZTliOGMxZWQxMjc4ZmJjZGQ2ZGY0NGNhY2JiMTEx
OTJhN2Y4N2JmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA0LTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtBc3luYyBvdmVy
ZmxvdyBzY3JvbGxpbmddIFZlcnRpY2FsIHNjcm9sbHMgb3ZlciBhIGhvcml6b250YWxseSBzY3Jv
bGxhYmxlIG92ZXJmbG93IGFyZSBjYXB0dXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMzIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHNvbWV3aGF0IG1vcmUgc29waGlz
dGljYXRlZCBsYXRjaGluZyBsb2dpYyB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgd2hpY2gKKyAg
ICAgICAgZml4ZXMgdGhlIGluYWJpbGl0eSB0byB2ZXJ0aWNhbGx5IHNjcm9sbCBpZiB0aGUgbW91
c2UgaXMgb3ZlciBhbiBlbmNsb3NlZCBob3Jpem9udGFsIHNjcm9sbGVyLgorICAgICAgICAKKyAg
ICAgICAgU2Nyb2xsaW5nVHJlZSBvd25zIGEgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ciwgd2hpY2ggZGV0ZXJtaW5lcyB3aGVuIHRvIGxhdGNoIGFuZCBjbGVhcgorICAgICAgICBsYXRj
aGluZy4gTGF0Y2ggY2xlYXJpbmcgdXNlcyBhIDEwMG1zIGRlbGF5IChsaWtlIG1haW4gdGhyZWFk
IGxhdGNoaW5nKSBzbyB0aGF0IGEgc3RhcnRpbmcgZ2VzdHVyZQorICAgICAgICBzb29uIGFmdGVy
IGFub3RoZXIgZ2VzdHVyZSwgd2hvc2UgaW5pdGlhbCB4IGFuZCB5IGFyZSBzbWFsbCwgZ29lcyB0
byB0aGUgc2FtZSBzY3JvbGxlciBhcyBiZWZvcmUuCisgICAgICAgIAorICAgICAgICBTY3JvbGxp
bmcgdHJlZSBsYXRjaGluZyB3b3JrcyBhcyBmb2xsb3dzLiBXaGVuIHdlIHJlY2VpdmUgYSBzY3Jv
bGwgZXZlbnQgd2hpY2ggYWxsb3dzIHVzZSBvZiB0aGUKKyAgICAgICAgbGF0Y2hlZCBub2RlLCBh
bmQgdGhlcmUgaXMgYSBsYXRjaGVkIG5vZGUsIHNlbmQgdGhlIGV2ZW50IGRpcmVjdGx5IHRvIHRo
YXQgbm9kZS4gT3RoZXJ3aXNlLAorICAgICAgICBoaXQtdGVzdCB0byBmaW5kIHRoZSBtb3N0IGRl
ZXBseSBuZXN0ZWQgc2Nyb2xsIHRhcmdldC4gVHJhdmVyc2UgdXAgdGhlIHBhcmVudCBjaGFpbiBn
aXZpbmcgZWFjaCBub2RlCisgICAgICAgIGFuIG9wcG9ydHVuaXR5IHRvIGhhbmRsZSB0aGUgZXZl
bnQuIElmIGhhbmRsZWQgYnkgYSBub2RlLCB0aGF0IG5vZGUgYmVjb21lcyB0aGUgbGF0Y2hlZCBu
b2RlLgorICAgICAgICAKKyAgICAgICAgU2Nyb2xsaW5nVHJlZSBubyBsb25nZXIgdHJhY2tzIHRo
ZSBsYXRjaGVkIG5vZGUgaXRzZWxmLgorCisgICAgICAgIFRlc3RzOiBzY3JvbGxpbmdjb29yZGlu
YXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwKKyAg
ICAgICAgICAgICAgIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFs
LW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWwKKworICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlSUQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y2xlYXJMYXRjaGVkTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpsYXRjaGVkTm9kZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFzTGF0Y2hlZE5vZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXI6OnJlY2VpdmVkV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRjaGVkTm9kZUZvckV2ZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmxhdGNoZWROb2Rl
SUQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlcjo6bm9kZURpZEhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVMYXRjaGluZ0NvbnRyb2xsZXI6Om5vZGVXYXNSZW1vdmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6OmNsZWFyTGF0Y2hlZE5vZGUpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDog
QWRkZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6Omlz
TGF0Y2hlZE5vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNhblNjcm9sbFdpdGhXaGVlbEV2ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxMaW1pdFJlYWNoZWQgY29uc3Qp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmg6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQpOgorCiAyMDIwLTA0LTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggZm9yIGNyYXNoIGluIHRlc3QgYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJjaHkuaHRtbCBpbiBpc29sYXRlZCB0cmVlIG1v
ZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBjYzVhMjQxYWNkYTgzMjYyNzgxZGUyZjY1ZWQzZTVj
Mjk0ZTlhYjBjLi42OTcwN2QxMTIyZWRlMDg4ZjlkZjdhOGU2NDJjODhjODNiYmQ0N2RlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKQEAgLTkwNSw2ICs5MDUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCiAgICAg
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05vZGUuaAogICAgIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaAorICAgIHBhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaAogICAgIHBhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKICAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmgKICAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGIyNzA1MGQ2MmQyOTM5YjZiY2Q1MzBj
M2ExOTRjYTcwYjlkNjU4NTcuLjc0MmE2NWZmNDdiYmEzNGUxNTkyYzhhYmU0ZmVkZDhlNDM0MjFj
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNzM1LDYgKzE3MzUsNyBAQCBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUaHJlYWQuY3BwCiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lSG9zdGluZ05vZGUuY3BwCiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcAorcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVOb2RlLmNwcAogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZS5jcHAKIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDNhZDUzY2Y1ZDJkNzc4ZmQ4YzZiZDZhYTI2NmUwZTcxODRiMDE3MDUuLmUyOGFh
YzE2MWMzZWI1M2MwZmFkZjA0OGQyNjZkOTMwNDJkMTFlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MSw2ICszNzEsNyBA
QAogCQkwRkY1MDI3MjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNkYxMDJCQTk2QTAwNjZG
MzlBIC8qIFN0eWxlTWVkaWEuaCAqLzsgfTsKIAkJMEZGODM1QzMxRUUzNTREQTAwOEI0Q0M3IC8q
IERPTVF1YWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRjgzNUJFMUVFMzU0REEwMDhCNENDNyAvKiBET01RdWFkLmggKi87IH07CiAJCTBGRjgzNUM1
MUVFMzU0REEwMDhCNENDNyAvKiBET01RdWFkSW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGODM1QzAxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1
YWRJbml0LmggKi87IH07CisJCTBGRkQ0NUFBMjQzQzMwMjcwMDBENEJFQSAvKiBTY3JvbGxpbmdU
cmVlTGF0Y2hpbmdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkZENDVBNzI0M0JGMjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxh
dGNoaW5nQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkZENEQ1RjE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTEwRkIw
ODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTgg
LyogUHVibGljVVJMTWFuYWdlci5oICovOyB9OwogCQkxMTJCMzRENTFFNjBCOTgzMDBCQjMxMEEg
LyogU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVM
aW5lTGF5b3V0UGFnaW5hdGlvbi5oICovOyB9OwpAQCAtNTk4OSw2ICs1OTkwLDggQEAKIAkJMEZG
ODM1QkYxRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IERPTVF1YWQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY4MzVDMDFF
RTM1NERBMDA4QjRDQzcgLyogRE9NUXVhZEluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NUXVhZEluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZG
ODM1QzExRUUzNTREQTAwOEI0Q0M3IC8qIERPTVF1YWRJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBET01RdWFkSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
RkQ0NUE3MjQzQkYyNTcwMDBENEJFQSAvKiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGRDQ1QTgyNDNCRjI1NzAwMEQ0QkVBIC8qIFNj
cm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
b2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGRkQ0RDVFMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZENEQ1
RjE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1Ymxp
Y1VSTE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTQ3LDYgKzE3
NTUwLDggQEAKIAkJCQkwRkQ0MUU2NjIxRjgwMjgyMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJlZUZy
YW1lSG9zdGluZ05vZGUuaCAqLywKIAkJCQkwRkVBM0U4NTE5MUIzQkQ3MDAwRjFCNTUgLyogU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAgKi8sCiAJCQkJMEZFQTNFODYxOTFCM0JE
NzAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuaCAqLywKKwkJCQkw
RkZENDVBODI0M0JGMjU3MDAwRDRCRUEgLyogU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
ci5jcHAgKi8sCisJCQkJMEZGRDQ1QTcyNDNCRjI1NzAwMEQ0QkVBIC8qIFNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUFBRERFMTE0REM4QzhGMDBBRjY0QjMgLyog
U2Nyb2xsaW5nVHJlZU5vZGUuY3BwICovLAogCQkJCTFBQUFEREUyMTREQzhDOEYwMEFGNjRCMyAv
KiBTY3JvbGxpbmdUcmVlTm9kZS5oICovLAogCQkJCTBGRUEzRTdEMTkxQjMxNjkwMDBGMUI1NSAv
KiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmNwcCAqLywKQEAgLTMyNjI4LDYg
KzMyNjMzLDcgQEAKIAkJCQkwRkQ0MUU2ODIxRjgwQzBFMDAwQzAwNkQgLyogU2Nyb2xsaW5nVHJl
ZUZyYW1lSG9zdGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTg4MTkxQjNCRDcw
MDBGMUI1NSAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0M0QTQxNTE2MjlERjVBMDBDM0VCNkUgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGRDQ1QUEyNDNDMzAyNzAwMEQ0
QkVBIC8qIFNjcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTU4MDY0MTkzMjdBNjIwMERFMzJFQiAvKiBTY3JvbGxpbmdUcmVlTWFjLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUFBRERFNDE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEzRTgwMTkxQjMxNjkwMDBGMUI1NSAvKiBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZDkyMjVk
MTA5Nzc1OTM3NDc5OGIzOTkxYWI3MjA1OGZkYTVkOGNlNC4uNjlmYTJmMDM2MTEzNDkwMzVjMjIw
ZTM2NTdkODIxOTk0ZjU5ZDljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogU2Nyb2xsaW5nVHJlZTo6U2Nyb2xsaW5nVHJlZSgpID0gZGVmYXVsdDsKLQogU2Nyb2xs
aW5nVHJlZTo6flNjcm9sbGluZ1RyZWUoKSA9IGRlZmF1bHQ7CiAKIGJvb2wgU2Nyb2xsaW5nVHJl
ZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50KQpAQCAtNTMsMTMgKzUyLDEwIEBAIGJvb2wgU2Nyb2xsaW5nVHJl
ZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50CiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgZXZlbnQgaGFuZGxp
bmcgdGhyZWFkCiAgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwogCi0gICAg
Ym9vbCBzaG91bGRTZXRMYXRjaCA9IHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygp
OwotICAgIAotICAgIGlmIChoYXNMYXRjaGVkTm9kZSgpICYmICFzaG91bGRTZXRMYXRjaCkKKyAg
ICBpZiAobV9sYXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3aGVlbEV2ZW50
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHNob3VsZFNldExhdGNoKQotICAg
ICAgICBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKKyAgICBtX2xhdGNoaW5nQ29udHJv
bGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgCiAgICAgaWYgKCFtX3Ry
ZWVTdGF0ZS5ldmVudFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5KCkgJiYgbV9yb290Tm9kZSkgewog
ICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwpAQCAt
NzksMjYgKzc1LDE3IEBAIGJvb2wgU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVu
dFN5bmNocm9ub3VzbHkoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE9yQ2xlYXJMYXRjaGVkTm9kZShjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCi17
Ci0gICAgaWYgKHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7Ci0gICAgICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVl
ICIgPDwgdGhpcyA8PCAiIHNldE9yQ2xlYXJMYXRjaGVkTm9kZTogc2V0dGluZyBsYXRjaGVkIG5v
ZGUgIiA8PCBub2RlSUQpOwotICAgICAgICBzZXRMYXRjaGVkTm9kZShub2RlSUQpOwotICAgIH0g
ZWxzZSBpZiAod2hlZWxFdmVudC5zaG91bGRSZXNldExhdGNoaW5nKCkpIHsKLSAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWUgIiA8
PCB0aGlzIDw8ICIgc2V0T3JDbGVhckxhdGNoZWROb2RlOiBjbGVhcmluZyBsYXRjaGVkIG5vZGUg
KHdhcyAiIDw8IGxhdGNoZWROb2RlKCkgPDwgIikiKTsKLSAgICAgICAgY2xlYXJMYXRjaGVkTm9k
ZSgpOwotICAgIH0KLX0KLQogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7Ci0g
ICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlICIg
PDwgdGhpcyA8PCAiIGhhbmRsZVdoZWVsRXZlbnQgKGFzeW5jIHNjcm9sbGluZyBlbmFibGVkOiAi
IDw8IGFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpIDw8ICIpIik7CisgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJcblNjcm9sbGluZ1RyZWUgIiA8
PCB0aGlzIDw8ICIgaGFuZGxlV2hlZWxFdmVudCAoYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQ6ICIg
PDwgYXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKCkgPDwgIikiKTsKIAogICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZU11dGV4KTsKIAogICAgIGlmIChpc01vbml0b3JpbmdX
aGVlbEV2ZW50cygpKQogICAgICAgICByZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAK
KyAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hlZWxFdmVudCk7
CisKICAgICBpZiAoIWFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZCgpKSB7CiAg
ICAgICAgIGlmIChtX3Jvb3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuIG1fcm9vdE5vZGUtPmhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CkBAIC0xMDYsMjkgKzkzLDI5IEBAIFNjcm9sbGlu
Z0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlk
Tm90SGFuZGxlRXZlbnQ7CiAgICAgfQogCi0gICAgaWYgKGhhc0xhdGNoZWROb2RlKCkpIHsKLSAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGlu
Z1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQ6IGhhcyBsYXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9k
ZSgpKTsKLSAgICAgICAgYXV0byogbm9kZSA9IG5vZGVGb3JJRChsYXRjaGVkTm9kZSgpKTsKKyAg
ICBpZiAoYXV0byBsYXRjaGVkTm9kZUlEID0gbV9sYXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5v
ZGVGb3JFdmVudCh3aGVlbEV2ZW50KSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xs
TGF0Y2hpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudDogaGFz
IGxhdGNoZWQgbm9kZSAiIDw8IGxhdGNoZWROb2RlSUQpOworICAgICAgICBhdXRvKiBub2RlID0g
bm9kZUZvcklEKGxhdGNoZWROb2RlSUQudmFsdWUoKSk7CiAgICAgICAgIGlmIChpczxTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZT4obm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQpOwogICAgIH0KIAotICAgIGlmIChtX3Jvb3ROb2RlKSB7Ci0gICAgICAgIEZsb2F0UG9p
bnQgcG9zaXRpb24gPSB3aGVlbEV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgICAgIHBvc2l0aW9uLm1v
dmUobV9yb290Tm9kZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3RhdGUubWFpbkZyYW1l
U2Nyb2xsUG9zaXRpb24pKTsKLSAgICAgICAgYXV0byBub2RlID0gc2Nyb2xsaW5nTm9kZUZvclBv
aW50KHBvc2l0aW9uKTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3Np
dGlvbigpOworICAgIHBvc2l0aW9uLm1vdmUobV9yb290Tm9kZS0+dmlld1RvQ29udGVudHNPZmZz
ZXQobV90cmVlU3RhdGUubWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pKTsKKyAgICBhdXRvIG5vZGUg
PSBzY3JvbGxpbmdOb2RlRm9yUG9pbnQocG9zaXRpb24pOwogCi0gICAgICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVu
dCBmb3VuZCBub2RlICIgPDwgKG5vZGUgPyBub2RlLT5zY3JvbGxpbmdOb2RlSUQoKSA6IDApIDw8
ICIgZm9yIHBvaW50ICIgPDwgcG9zaXRpb24gPDwgIlxuIik7CisgICAgTE9HX1dJVEhfU1RSRUFN
KFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50IGZv
dW5kIG5vZGUgIiA8PCAobm9kZSA/IG5vZGUtPnNjcm9sbGluZ05vZGVJRCgpIDogMCkgPDwgIiBm
b3IgcG9pbnQgIiA8PCBwb3NpdGlvbik7CiAKLSAgICAgICAgd2hpbGUgKG5vZGUpIHsKLSAgICAg
ICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZT4oKm5vZGUpKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlPigqbm9kZSk7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMgbmVl
ZHMgdG8gY29uc3VsdCBsYXRjaGluZyBsb2dpYy4KLSAgICAgICAgICAgICAgICBpZiAoc2Nyb2xs
aW5nTm9kZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpID09IFNjcm9sbGluZ0V2ZW50UmVz
dWx0OjpEaWRIYW5kbGVFdmVudCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGlu
Z0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAg
ICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCpub2RlKSkgeworICAgICAgICAg
ICAgYXV0byYgc2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlPigqbm9kZSk7CisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBjb25zdWx0
IGxhdGNoaW5nIGxvZ2ljLgorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ05vZGUuaGFuZGxlV2hl
ZWxFdmVudCh3aGVlbEV2ZW50KSA9PSBTY3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZl
bnQpIHsKKyAgICAgICAgICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlRGlkSGFuZGxl
RXZlbnQod2hlZWxFdmVudCwgc2Nyb2xsaW5nTm9kZS5zY3JvbGxpbmdOb2RlSUQoKSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnQoKTsKICAgICAg
ICAgfQorICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50KCk7CiAgICAgfQogICAgIHJldHVybiBT
Y3JvbGxpbmdFdmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiB9CkBAIC0xOTUsOCArMTgy
LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOjp1bmlxdWVfcHRy
PFNjcm9sbGluZ1N0YXRlVHJlZT4gc2Nyb2xsaW4KICAgICB1cGRhdGVUcmVlRnJvbVN0YXRlTm9k
ZShyb290Tm9kZSwgb3JwaGFuTm9kZXMsIHVudmlzaXRlZE5vZGVzKTsKICAgICAKICAgICBmb3Ig
KGF1dG8gbm9kZUlEIDogdW52aXNpdGVkTm9kZXMpIHsKLSAgICAgICAgaWYgKG5vZGVJRCA9PSBt
X3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKQotICAgICAgICAgICAgY2xlYXJMYXRjaGVkTm9kZSgp
OworICAgICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5ub2RlV2FzUmVtb3ZlZChub2RlSUQpOwog
ICAgICAgICAKICAgICAgICAgTE9HKFNjcm9sbGluZywgIlNjcm9sbGluZ1RyZWU6OmNvbW1pdFRy
ZWVTdGF0ZSAtIHJlbW92aW5nIHVudmlzaXRlZCBub2RlICUiIFBSSXU2NCwgbm9kZUlEKTsKICAg
ICAgICAgbV9ub2RlTWFwLnJlbW92ZShub2RlSUQpOwpAQCAtMzQxLDExICszMjcsMjcgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlOjpub3RpZnlSZWxhdGVkTm9kZXNSZWN1cnNpdmUoU2Nyb2xsaW5nVHJl
ZU5vZGUmIG5vZGUpCiAgICAgfQogfQogCitPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IFNjcm9s
bGluZ1RyZWU6OmxhdGNoZWROb2RlSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX2xhdGNoaW5n
Q29udHJvbGxlci5sYXRjaGVkTm9kZUlEKCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6Y2xl
YXJMYXRjaGVkTm9kZSgpCit7CisgICAgbV9sYXRjaGluZ0NvbnRyb2xsZXIuY2xlYXJMYXRjaGVk
Tm9kZSgpOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWU6OnNldEFzeW5jRnJhbWVPck92ZXJmbG93
U2Nyb2xsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9hc3luY0ZyYW1lT3JPdmVy
Zmxvd1Njcm9sbGluZ0VuYWJsZWQgPSBlbmFibGVkOwogfQogCitGbG9hdFBvaW50IFNjcm9sbGlu
Z1RyZWU6Om1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV90
cmVlU3RhdGVNdXRleC5pc0xvY2tlZCgpKTsKKyAgICByZXR1cm4gbV90cmVlU3RhdGUubWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb247Cit9CisKIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0TWFpbkZyYW1l
U2Nyb2xsUG9zaXRpb24oRmxvYXRQb2ludCBwb3NpdGlvbikKIHsKICAgICBMb2NrSG9sZGVyIGxv
Y2sobV90cmVlU3RhdGVNdXRleCk7CkBAIC00NTYsMjQgKzQ1OCw2IEBAIGJvb2wgU2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCgpCiAgICAgcmV0dXJuIG1f
c2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZDsKIH0KIAotU2Nyb2xsaW5nTm9kZUlE
IFNjcm9sbGluZ1RyZWU6OmxhdGNoZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlciht
X3RyZWVTdGF0ZU11dGV4KTsKLSAgICByZXR1cm4gbV90cmVlU3RhdGUubGF0Y2hlZE5vZGVJRDsK
LX0KLQotdm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRMYXRjaGVkTm9kZShTY3JvbGxpbmdOb2RlSUQg
bm9kZSkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0ZU11dGV4KTsKLSAgICBt
X3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gbm9kZTsKLX0KLQotdm9pZCBTY3JvbGxpbmdUcmVl
OjpjbGVhckxhdGNoZWROb2RlKCkKLXsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3RyZWVTdGF0
ZU11dGV4KTsKLSAgICBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEID0gMDsKLX0KLQogU3RyaW5n
IFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQoU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgVGV4dFN0cmVhbSB0cyhUZXh0U3RyZWFtOjpM
aW5lTW9kZTo6TXVsdGlwbGVMaW5lKTsKQEAgLTQ4NCw4ICs0NjgsOCBAQCBTdHJpbmcgU2Nyb2xs
aW5nVHJlZTo6c2Nyb2xsaW5nVHJlZUFzVGV4dChTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhh
dmlvciBiZWhhdgogCiAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdHJlZVN0YXRlTXV0ZXgp
OwogCi0gICAgICAgIGlmIChtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEKQotICAgICAgICAgICAg
dHMuZHVtcFByb3BlcnR5KCJsYXRjaGVkIG5vZGUiLCBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlE
KTsKKyAgICAgICAgaWYgKGF1dG8gbGF0Y2hlZE5vZGVJRCA9IG1fbGF0Y2hpbmdDb250cm9sbGVy
LmxhdGNoZWROb2RlSUQoKSkKKyAgICAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgibGF0Y2hlZCBu
b2RlIiwgbGF0Y2hlZE5vZGVJRC52YWx1ZSgpKTsKIAogICAgICAgICBpZiAoIW1fdHJlZVN0YXRl
Lm1haW5GcmFtZVNjcm9sbFBvc2l0aW9uLmlzWmVybygpKQogICAgICAgICAgICAgdHMuZHVtcFBy
b3BlcnR5KCJtYWluIGZyYW1lIHNjcm9sbCBwb3NpdGlvbiIsIG1fdHJlZVN0YXRlLm1haW5GcmFt
ZVNjcm9sbFBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaAppbmRleCBlZTY3YjcxMTgyNThjMzRiMWRjM2MwM2E1NzhiNDRmNTI4ZjJlMTBh
Li44ZDMxYjNhZTI4NTgwMWY1ZDI4MmNhMTQ3MjAyZmNmZTgyZDMzOGY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0zMSw3ICszMSw5IEBA
CiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVjdEVkZ2VzLmgi
CiAjaW5jbHVkZSAiUmVnaW9uLmgiCi0jaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIK
KyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
VHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtNTEsNiArNTMsNyBAQCBjbGFzcyBTY3JvbGxp
bmdUcmVlUG9zaXRpb25lZE5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsK
IAogY2xhc3MgU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3Jv
bGxpbmdUcmVlPiB7CitmcmllbmQgY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxl
cjsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxpbmdUcmVlKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZSgpOwpAQCAtMTQwLDE0ICsxNDMsOSBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCk7
CiAKICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlKiByb290Tm9kZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcm9vdE5vZGUuZ2V0KCk7IH0KLQotICAgIFNjcm9sbGluZ05vZGVJRCBsYXRj
aGVkTm9kZSgpOwotICAgIHZvaWQgc2V0TGF0Y2hlZE5vZGUoU2Nyb2xsaW5nTm9kZUlEKTsKKyAg
ICBPcHRpb25hbDxTY3JvbGxpbmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKICAgICB2
b2lkIGNsZWFyTGF0Y2hlZE5vZGUoKTsKIAotICAgIGJvb2wgaGFzTGF0Y2hlZE5vZGUoKSBjb25z
dCB7IHJldHVybiBtX3RyZWVTdGF0ZS5sYXRjaGVkTm9kZUlEOyB9Ci0gICAgdm9pZCBzZXRPckNs
ZWFyTGF0Y2hlZE5vZGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlE
KTsKLQogICAgIGJvb2wgaGFzRml4ZWRPclN0aWNreSgpIGNvbnN0IHsgcmV0dXJuICEhbV9maXhl
ZE9yU3RpY2t5Tm9kZUNvdW50OyB9CiAgICAgdm9pZCBmaXhlZE9yU3RpY2t5Tm9kZUFkZGVkKCkg
eyArK21fZml4ZWRPclN0aWNreU5vZGVDb3VudDsgfQogICAgIHZvaWQgZml4ZWRPclN0aWNreU5v
ZGVSZW1vdmVkKCkKQEAgLTE3Myw2ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSB7IH0KIAogcHJvdGVjdGVkOgorICAgIEZsb2F0
UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldE1haW5G
cmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCBTY3JvbGxpbmdFdmVudFJlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpOwpAQCAtMTk1LDEzICsxOTQsMTMgQEAgcHJpdmF0ZToKICAgICB1c2luZyBT
Y3JvbGxpbmdUcmVlTm9kZU1hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBSZWZQdHI8U2Ny
b2xsaW5nVHJlZU5vZGU+PjsKICAgICBTY3JvbGxpbmdUcmVlTm9kZU1hcCBtX25vZGVNYXA7CiAK
KyAgICBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyIG1fbGF0Y2hpbmdDb250cm9sbGVy
OwogICAgIFJlbGF0ZWROb2Rlc01hcCBtX292ZXJmbG93UmVsYXRlZE5vZGVzTWFwOwogCiAgICAg
SGFzaFNldDxSZWY8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlPj4gbV9hY3Rp
dmVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZXM7CiAgICAgSGFzaFNldDxSZWY8U2Nyb2xsaW5nVHJl
ZVBvc2l0aW9uZWROb2RlPj4gbV9hY3RpdmVQb3NpdGlvbmVkTm9kZXM7CiAKICAgICBzdHJ1Y3Qg
VHJlZVN0YXRlIHsKLSAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIGxhdGNoZWROb2RlSUQgeyAwIH07
CiAgICAgICAgIEV2ZW50VHJhY2tpbmdSZWdpb25zIGV2ZW50VHJhY2tpbmdSZWdpb25zOwogICAg
ICAgICBGbG9hdFBvaW50IG1haW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogICAgICAgICBib29sIG1h
aW5GcmFtZUlzUnViYmVyQmFuZGluZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRy
b2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNjdjZDRhNDRiNWVmNmZhN2M0NGYyZWUwNDM2OWY0YzNj
MTUxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlTGF0
Y2hpbmdDb250cm9sbGVyLmgiCisKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQorCisjaW5j
bHVkZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2lu
Y2x1ZGUgIlNjcm9sbGluZ1RocmVhZC5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBTZWUgYWxzbyBFdmVudEhhbmRsZXJNYWMuY3BwCitz
dGF0aWMgY29uc3QgU2Vjb25kcyByZXNldExhdGNoZWRTdGF0ZVRpbWVvdXQgeyAxMDBfbXMgfTsK
KworU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6U2Nyb2xsaW5nVHJlZUxhdGNoaW5n
Q29udHJvbGxlcigpID0gZGVmYXVsdDsKKwordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250
cm9sbGVyOjpyZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbGF0Y2hlZE5vZGVNdXRleCk7Cisg
ICAgaWYgKHdoZWVsRXZlbnQuc2hvdWxkQ29uc2lkZXJMYXRjaGluZygpKSB7CisgICAgICAgIGlm
IChtX2xhdGNoZWROb2RlSUQpIHsKKyAgICAgICAgICAgIGF1dG8gc2Vjb25kc1NpbmNlTGFzdElu
dGVyYWN0aW9uID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2xhc3RMYXRjaGVkTm9kZUludGVy
YXRpb25UaW1lOworICAgICAgICAgICAgaWYgKHNlY29uZHNTaW5jZUxhc3RJbnRlcmFjdGlvbiA+
IHJlc2V0TGF0Y2hlZFN0YXRlVGltZW91dCkgeworICAgICAgICAgICAgICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250
cm9sbGVyICIgPDwgdGhpcyA8PCAiIHJlY2VpdmVkV2hlZWxFdmVudCAtICIgPDwgc2Vjb25kc1Np
bmNlTGFzdEludGVyYWN0aW9uLm1pbGxpc2Vjb25kcygpIDw8ICJtcyBzaW5jZSBsYXN0IGV2ZW50
LCBjbGVhcmluZyBsYXRjaGVkIG5vZGUiKTsKKyAgICAgICAgICAgICAgICBtX2xhdGNoZWROb2Rl
SUQucmVzZXQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworT3B0aW9u
YWw8U2Nyb2xsaW5nTm9kZUlEPiBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpsYXRj
aGVkTm9kZUZvckV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29u
c3QKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworCisgICAg
Ly8gSWYgd2UgaGF2ZSBhIGxhdGNoZWQgbm9kZSwgdXNlIGl0LgorICAgIGlmICh3aGVlbEV2ZW50
LnVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2RlSUQpIHsKKyAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVM
YXRjaGluZ0NvbnRyb2xsZXIgIiA8PCB0aGlzIDw8ICIgbGF0Y2hlZE5vZGVGb3JFdmVudDogcmV0
dXJuaW5nICIgPDwgbV9sYXRjaGVkTm9kZUlEKTsKKyAgICAgICAgcmV0dXJuIG1fbGF0Y2hlZE5v
ZGVJRC52YWx1ZSgpOworICAgIH0KKworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK09w
dGlvbmFsPFNjcm9sbGluZ05vZGVJRD4gU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcjo6
bGF0Y2hlZE5vZGVJRCgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVk
Tm9kZU11dGV4KTsKKyAgICByZXR1cm4gbV9sYXRjaGVkTm9kZUlEOworfQorCit2b2lkIFNjcm9s
bGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXI6Om5vZGVEaWRIYW5kbGVFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2Rl
SUQpCit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sYXRjaGVkTm9kZU11dGV4KTsKKworICAg
IGlmICh3aGVlbEV2ZW50LnVzZUxhdGNoZWRFdmVudEVsZW1lbnQoKSAmJiBtX2xhdGNoZWROb2Rl
SUQgPT0gc2Nyb2xsaW5nTm9kZUlEKSB7CisgICAgICAgIG1fbGFzdExhdGNoZWROb2RlSW50ZXJh
dGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmICghd2hlZWxFdmVudC5zaG91bGRDb25zaWRlckxhdGNoaW5nKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxMYXRjaGluZywgc3RyZWFtIDw8
ICJTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyICIgPDwgdGhpcyA8PCAiIG5vZGVEaWRI
YW5kbGVFdmVudDogbGF0Y2hpbmcgdG8gIiA8PCBzY3JvbGxpbmdOb2RlSUQpOworICAgIG1fbGF0
Y2hlZE5vZGVJRCA9IHNjcm9sbGluZ05vZGVJRDsKKyAgICBtX2xhc3RMYXRjaGVkTm9kZUludGVy
YXRpb25UaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nVHJl
ZUxhdGNoaW5nQ29udHJvbGxlcjo6bm9kZVdhc1JlbW92ZWQoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgpOworICAgIGlm
IChub2RlSUQgPT0gbV9sYXRjaGVkTm9kZUlEKQorICAgICAgICBtX2xhdGNoZWROb2RlSUQucmVz
ZXQoKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlTGF0Y2hpbmdDb250cm9sbGVyOjpjbGVhckxh
dGNoZWROb2RlKCkKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xhdGNoZWROb2RlTXV0ZXgp
OworICAgIG1fbGF0Y2hlZE5vZGVJRC5yZXNldCgpOworfQorCit9OworCisjZW5kaWYgLy8gRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVMYXRjaGluZ0NvbnRyb2xsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40Zjg4OWQ3YTY1ZmU5OTUzNzNjYTFjZmQ2MzI1ZTdjNTcwNDhmNzM1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUxhdGNo
aW5nQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCisKKyNpbmNsdWRlIDx3dGYvTG9jay5o
PgorI2luY2x1ZGUgPHd0Zi9NYXJrYWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU2Nyb2xsaW5nVHJlZTsKKworY2xhc3MgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJv
bGxlciB7CitwdWJsaWM6CisgICAgU2Nyb2xsaW5nVHJlZUxhdGNoaW5nQ29udHJvbGxlcigpOwor
CisgICAgdm9pZCByZWNlaXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CisgICAgT3B0aW9uYWw8U2Nyb2xsaW5nTm9kZUlEPiBsYXRjaGVkTm9kZUZvckV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0OworICAgIHZvaWQgbm9kZURpZEhhbmRsZUV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbGluZ05vZGVJRCk7CisKKyAgICBPcHRp
b25hbDxTY3JvbGxpbmdOb2RlSUQ+IGxhdGNoZWROb2RlSUQoKSBjb25zdDsKKworICAgIHZvaWQg
bm9kZVdhc1JlbW92ZWQoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICB2b2lkIGNsZWFyTGF0Y2hlZE5v
ZGUoKTsKKworcHJpdmF0ZToKKworICAgIG11dGFibGUgTG9jayBtX2xhdGNoZWROb2RlTXV0ZXg7
CisgICAgTWFya2FibGU8U2Nyb2xsaW5nTm9kZUlELCBJbnRlZ3JhbE1hcmthYmxlVHJhaXRzPFNj
cm9sbGluZ05vZGVJRCwgMD4+IG1fbGF0Y2hlZE5vZGVJRDsKKyAgICBNb25vdG9uaWNUaW1lIG1f
bGFzdExhdGNoZWROb2RlSW50ZXJhdGlvblRpbWU7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGRjYjBhMDk0
NmRhZjNlM2ZlYTAyNGE4NjI2MWE4NmJjODk2NzEyM2EuLmZjOGY3NzcwOWNjNzA5MzhlYTJmOGE1
MDdjMGUzYzE0MTZkNTVmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTEyMCw2ICsx
MjAsMjAgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVBZnRl
ckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm8KICAgICBtX2lzRmlyc3RDb21taXQgPSBm
YWxzZTsKIH0KIAorYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNMYXRjaGVkTm9k
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcm9sbGluZ1RyZWUoKS5sYXRjaGVkTm9kZUlEKCkg
PT0gc2Nyb2xsaW5nTm9kZUlEKCk7Cit9CisKK2Jvb2wgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCkgY29uc3QKK3sKKyAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIC8vIFdlIGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hl
ZCBub2RlLCBvciB0aGUgcm9vdCBub2RlLgorICAgIHJldHVybiBpc0xhdGNoZWROb2RlKCkgfHwg
aXNSb290Tm9kZSgpIHx8ICFzY3JvbGxMaW1pdFJlYWNoZWQod2hlZWxFdmVudCk7Cit9CisKIFNj
cm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpCiB7CiAgICAgcmV0dXJuIFNjcm9sbGlu
Z0V2ZW50UmVzdWx0OjpEaWROb3RIYW5kbGVFdmVudDsKQEAgLTE0Niw3ICsxNjAsNyBAQCBGbG9h
dFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24o
KSBjb25zdAogYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6c2Nyb2xsTGltaXRSZWFj
aGVkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkgY29uc3QKIHsKICAgICBG
bG9hdFBvaW50IG9sZFNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7Ci0g
ICAgRmxvYXRQb2ludCBuZXdTY3JvbGxQb3NpdGlvbiA9IG9sZFNjcm9sbFBvc2l0aW9uICsgRmxv
YXRTaXplKHdoZWVsRXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKKyAgICBG
bG9hdFBvaW50IG5ld1Njcm9sbFBvc2l0aW9uID0gb2xkU2Nyb2xsUG9zaXRpb24gKyBGbG9hdFNp
emUoLXdoZWVsRXZlbnQuZGVsdGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKTsKICAgICBuZXdT
Y3JvbGxQb3NpdGlvbiA9IG5ld1Njcm9sbFBvc2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihtaW5p
bXVtU2Nyb2xsUG9zaXRpb24oKSwgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIHJldHVy
biBuZXdTY3JvbGxQb3NpdGlvbiA9PSBvbGRTY3JvbGxQb3NpdGlvbjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCmluZGV4IGEyYzAyMWVmZDBjMzIwOWNlYTcyZDMyNWZmYjBhN2MyZTQ4ZmVhZjIuLmY4
ZDNjY2YxNTk1NGE4ZWIyMDdjYWQ2MTc0ZGFiMTAwYmUyYjFiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRTdGF0ZUJlZm9y
ZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJy
aWRlOwogCisgICAgdmlydHVhbCBib29sIGNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsaW5nRXZlbnRSZXN1
bHQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKIAogICAgIEZs
b2F0UG9pbnQgY3VycmVudFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50
U2Nyb2xsUG9zaXRpb247IH0KQEAgLTEyNCw2ICsxMjUsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBj
b25zdCBGbG9hdFNpemUmIHJlYWNoYWJsZUNvbnRlbnRzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVhY2hhYmxlQ29udGVudHNTaXplOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CisgICAgCisgICAgYm9vbCBpc0xh
dGNoZWROb2RlKCkgY29uc3Q7CiAKICAgICAvLyBJZiB0aGUgdG90YWxDb250ZW50c1NpemUgY2hh
bmdlcyBpbiB0aGUgbWlkZGxlIG9mIGEgcnViYmVyLWJhbmQsIHdlIHN0aWxsIHdhbnQgdG8gdXNl
IHRoZSBvbGQgdG90YWxDb250ZW50c1NpemUgZm9yIHRoZSBzYWtlIG9mCiAgICAgLy8gY29tcHV0
aW5nIHRoZSBzdHJldGNoQW1vdW50KCkuIFVzaW5nIHRoZSBvbGQgdmFsdWUgd2lsbCBrZWVwIHRo
ZSBhbmltYXRpb24gc21vb3RoLiBXaGVuIHRoZXJlIGlzIG5vIHJ1YmJlci1iYW5kIGluIHByb2dy
ZXNzIGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4
IGI4MTBiMzAxNGVjZjAwYmZlYzcwMGY0YTY0ZTk4YTk2NDliNjBmNzguLmI5MWFjOThiNjVjYWNi
ZTNjNjJiYmM0YTFhNGUzODczNDMzNThmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpjb21taXRTdGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Ny
b2xsaW4KIAogU2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpCiB7Ci0gICAgaWYgKCFjYW5IYXZlU2Nyb2xsYmFycygpKQorICAgIGlmICghY2FuU2Ny
b2xsV2l0aFdoZWVsRXZlbnQod2hlZWxFdmVudCkpCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdF
dmVudFJlc3VsdDo6RGlkTm90SGFuZGxlRXZlbnQ7CiAKICAgICBib29sIGhhbmRsZWQgPSBtX2Rl
bGVnYXRlLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CkBAIC0xNjIsNyArMTYyLDYgQEAg
U2Nyb2xsaW5nRXZlbnRSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
aGFuZGxlV2hlZWxFdmVudChjb25zdAogICAgIGlmIChtX2RlbGVnYXRlLmFjdGl2ZVNjcm9sbFNu
YXBJbmRleERpZENoYW5nZSgpKQogICAgICAgICBzY3JvbGxpbmdUcmVlKCkuc2V0QWN0aXZlU2Ny
b2xsU25hcEluZGljZXMoc2Nyb2xsaW5nTm9kZUlEKCksIG1fZGVsZWdhdGUuYWN0aXZlU2Nyb2xs
U25hcEluZGV4Rm9yQXhpcyhTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwpLCBtX2RlbGVnYXRl
LmFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvckF4aXMoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCkp
OwogI2VuZGlmCi0gICAgc2Nyb2xsaW5nVHJlZSgpLnNldE9yQ2xlYXJMYXRjaGVkTm9kZSh3aGVl
bEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7CiAgICAgc2Nyb2xsaW5nVHJlZSgpLmhhbmRsZVdo
ZWVsRXZlbnRQaGFzZSh3aGVlbEV2ZW50LnBoYXNlKCkpOwogICAgIAogICAgIHJldHVybiBoYW5k
bGVkID8gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZEhhbmRsZUV2ZW50IDogU2Nyb2xsaW5nRXZl
bnRSZXN1bHQ6OkRpZE5vdEhhbmRsZUV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCA0NGJkZWJiMzQ3YzU3NTI5YTk1NDI4Yzk0MDkw
NWZkZTM1ZDcyMGQ3Li40ZTc2ZjYwOGU3NWRhZWUxNGVkYzdlZWYwY2U2YWI3ZDU4YmQ2ZDUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAt
NjksMTQgKzY5LDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yzo6Y29tbWl0U3RhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sCiAKIFNjcm9sbGluZ0V2ZW50
UmVzdWx0IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWM6OmhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewotICAgIGlmICgh
Y2FuSGF2ZVNjcm9sbGJhcnMoKSkKKyAgICBpZiAoIWNhblNjcm9sbFdpdGhXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQpKQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5vdEhh
bmRsZUV2ZW50OwogCiAgICAgbV9kZWxlZ2F0ZS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQp
OwogCiAgICAgLy8gRklYTUU6IFNjcm9sbCBzbmFwCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0
T3JDbGVhckxhdGNoZWROb2RlKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKICAgICBz
Y3JvbGxpbmdUcmVlKCkuaGFuZGxlV2hlZWxFdmVudFBoYXNlKHdoZWVsRXZlbnQucGhhc2UoKSk7
CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZHMgdG8gcmV0dXJuIHdoZXRoZXIgdGhlIGV2
ZW50IHdhcyBoYW5kbGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVOaWNvc2lhLmNwcAppbmRleCA0YzI0NTlmNDJkZTgzNWM1NTNkN2Q5MjgxMGYz
ZTJmYWY4ZTlhZDFiLi45MzM5NGY2MjE0MzY4NWFkMzVhNTA3Y2Y5YzczYjMyZDUzMmZiOGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNv
c2lhLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU5pY29zaWE6OmNvbW1pdFN0YXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvCiAKIFNj
cm9sbGluZ0V2ZW50UmVzdWx0IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVOaWNvc2lh
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
IHsKLSAgICBpZiAoIWNhbkhhdmVTY3JvbGxiYXJzKCkpCisgICAgaWYgKCFjYW5TY3JvbGxXaXRo
V2hlZWxFdmVudCh3aGVlbEV2ZW50KSkKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVz
dWx0OjpEaWROb3RIYW5kbGVFdmVudDsKIAogICAgIGlmICh3aGVlbEV2ZW50LmRlbHRhWCgpIHx8
IHdoZWVsRXZlbnQuZGVsdGFZKCkpIHsKQEAgLTE0NCw4ICsxNDQsNiBAQCBTY3JvbGxpbmdFdmVu
dFJlc3VsdCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTmljb3NpYTo6aGFuZGxlV2hl
ZWxFdmVudChjbwogICAgIH0KICNlbmRpZgogCi0gICAgc2Nyb2xsaW5nVHJlZSgpLnNldE9yQ2xl
YXJMYXRjaGVkTm9kZSh3aGVlbEV2ZW50LCBzY3JvbGxpbmdOb2RlSUQoKSk7Ci0KICAgICAvLyBG
SVhNRTogVGhpcyBuZWVkcyB0byByZXR1cm4gd2hldGhlciB0aGUgZXZlbnQgd2FzIGhhbmRsZWQu
CiAgICAgcmV0dXJuIFNjcm9sbGluZ0V2ZW50UmVzdWx0OjpEaWRIYW5kbGVFdmVudDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5n
VHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmlj
b3NpYS5jcHAKaW5kZXggODFjOTE0MDVjZjk4ZmE3ZjA5YzU2MTE1OGYwOTc1Nzk4NmViMDg2ZC4u
NWNkNWNlMGU0YmQyZGU5MWYwYjE2YTQ1YmQyOGZhMzUzNTE1YzAzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAK
QEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVOaWNvc2lhOjpyZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkKIAogU2Nyb2xsaW5nRXZlbnRS
ZXN1bHQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU5pY29zaWE6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewotICAgIGlm
ICghY2FuSGF2ZVNjcm9sbGJhcnMoKSkKKyAgICBpZiAoIWNhblNjcm9sbFdpdGhXaGVlbEV2ZW50
KHdoZWVsRXZlbnQpKQogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nRXZlbnRSZXN1bHQ6OkRpZE5v
dEhhbmRsZUV2ZW50OwogCiAgICAgaWYgKHdoZWVsRXZlbnQuZGVsdGFYKCkgfHwgd2hlZWxFdmVu
dC5kZWx0YVkoKSkgewpAQCAtMTI5LDggKzEyOSw2IEBAIFNjcm9sbGluZ0V2ZW50UmVzdWx0IFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVOaWNvc2lhOjpoYW5kbGVXaGVlbEV2ZW50
CiAgICAgfQogI2VuZGlmCiAKLSAgICBzY3JvbGxpbmdUcmVlKCkuc2V0T3JDbGVhckxhdGNoZWRO
b2RlKHdoZWVsRXZlbnQsIHNjcm9sbGluZ05vZGVJRCgpKTsKLQogICAgIHJldHVybiBTY3JvbGxp
bmdFdmVudFJlc3VsdDo6RGlkSGFuZGxlRXZlbnQ7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YzNjMjM2ZjI2NGY0
YzkzMDQ4MmQyZDBmNmU2NzA4YTQzM2RjMjVlLi5hMzdmYWE4YmU4YWY3M2FkZDViYWM5M2E3MWMx
NGM2OWZkZmY3YmQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDQtMDkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW0FzeW5jIG92ZXJmbG93
IHNjcm9sbGluZ10gVmVydGljYWwgc2Nyb2xscyBvdmVyIGEgaG9yaXpvbnRhbGx5IHNjcm9sbGFi
bGUgb3ZlcmZsb3cgYXJlIGNhcHR1cmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTAzMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgaG9yaXpvbnRhbCBpbnNpZGUgdmVydGljYWwgb3Zl
cmZsb3csIHRlc3QgdGhhdCBoaXQtdGVzdGluZyBpbnNpZGUgc2Nyb2xsZWQtdG8tbGltaXQgaG9y
aXpvbnRhbCBzY3JvbGxlcnMKKyAgICAgICAgc3RpbGwgYWxsb3dzIGZvciBzd2lwZSBuYXZpZ2F0
aW9uLCBhbmQgdGVzdCB0aGUgbGF0Y2hpbmcgdGltZW91dC4KKworICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0
YXMuaHRtbDoKKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9y
aXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ct
YmFjay1zd2lwZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9t
YWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1pbi12ZXJ0aWNhbC1vdmVyZmxvdy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRj
aGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0bWw6IEFkZGVk
LgorCiAyMDIwLTA0LTA5ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXTogTmV3IHRlc3QgbGFuZGVkIGZvciByMjU5NzYyIGxhbmRlZCBicm9rZW46IGVk
aXRpbmcvZWRpdGFibGUtcmVnaW9uL2hpdC10ZXN0LW92ZXJsYXAuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcvaWZyYW1lLWxhdGNoLXNtYWxsLWRl
bHRhcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9p
ZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLWV4cGVjdGVkLnR4dAppbmRleCAwNjc2OGE5Mjc4YjA1
N2E0MGY1NzlmN2Q5NjMyMDJmYWQ4NDgwOWJkLi40ZmYyNGYwMzMxNDgwODFhMjRiZTRhMDMxZjUw
NTVkNWM4MDc2OTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRj
aGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21hbGwtZGVsdGFzLWV4
cGVjdGVkLnR4dApAQCAtMTMsNyArMTMsNyBAQCBBZnRlciB3YWl0CiBQQVNTIGlmcmFtZVRhcmdl
dC5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0IGlzIDUwMAogUEFTUyB3aW5kb3cucGFnZVlPZmZz
ZXQgaXMgMjAwCiBGQUlMIGlmcmFtZVRhcmdldC5jb250ZW50V2luZG93LnBhZ2VZT2Zmc2V0IHNo
b3VsZCBiZSA0ODAuIFdhcyA1MDAuCi1GQUlMIHdpbmRvdy5wYWdlWU9mZnNldCBzaG91bGQgYmUg
MjAwLiBXYXMgMTgwLgorUEFTUyB3aW5kb3cucGFnZVlPZmZzZXQgaXMgMjAwCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1zbWFsbC1kZWx0YXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2xhdGNoaW5nL2lmcmFtZS1sYXRjaC1z
bWFsbC1kZWx0YXMuaHRtbAppbmRleCA5MWNiY2U0ZGJkYTg4MmE0M2EwNmZjZTI4NGI1ZDI5N2Q1
MWI0M2ZjLi4xYzAyZTMzNzg4N2JkYzAzZTMyYTY2YjhlY2JhZTUzMzE1NzM0ZjA2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9sYXRjaGluZy9pZnJhbWUtbGF0Y2gtc21h
bGwtZGVsdGFzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvbGF0Y2hpbmcv
aWZyYW1lLWxhdGNoLXNtYWxsLWRlbHRhcy5odG1sCkBAIC00OSw3ICs0OSw2IEBACiAgICAgICAg
ICAgICBzaG91bGRCZSgnaWZyYW1lVGFyZ2V0LmNvbnRlbnRXaW5kb3cucGFnZVlPZmZzZXQnLCAn
NTAwJyk7CiAgICAgICAgICAgICBzaG91bGRCZSgnd2luZG93LnBhZ2VZT2Zmc2V0JywgJzIwMCcp
OwogCi0gICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMSwgJ2NoYW5nZWQnLCAnbm9u
ZScpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIDEsICdjaGFuZ2VkJywgJ25vbmUnKTsKQEAgLTYyLDcgKzYxLDcgQEAK
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rp
b24gc2V0dXBUb3BMZXZlbCgpIAorICAgICAgICBmdW5jdGlvbiBzZXR1cFRvcExldmVsKCkKICAg
ICAgICAgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBzZWNvbmQgc2Ny
b2xsIHdpdGggc21hbGwgeC95IGRlbHRhcyB1c2VzIGxhdGNoaW5nIGZyb20gYW4gZWFybGllciBz
Y3JvbGwuIik7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFRlc3QsIDApOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6
b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zY3Jv
bGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3
aXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGRjMzE5YTdmOGE0NDA5ODI2OTUzZDlhYTYw
MDcwNDk4MjQ2YTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29v
cmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZsb3ctYmFjay1zd2lwZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorU2Nyb2xscyB2ZXJ0aWNhbGx5CitTY3JvbGxzIGhv
cml6b250YWxseQorQSBiYWNrIHN3aXBlLCBvdmVyIGEgc2Nyb2xsZWQtdG8tbGVmdCBvdmVyZmxv
dywgc2hvdWxkIHN0YXJ0IGEgbmF2aWdhdGlvbiBnZXN0dXJlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworU3dpcGUgdG8gdGhlIGxlZnQKK1BBU1MgbWluWE9mZnNldCBpcyAwCitQ
QVNTIG1heFhPZmZzZXQgaXMgLTEwMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29y
ZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRhbC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9tYWMvbGF0Y2hpbmcvaG9yaXpvbnRh
bC1vdmVyZmxvdy1iYWNrLXN3aXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ3ZWQ2OWFkN2UxNjdlYzYx
M2Y2MmE0MGJmNTA0YTcxZmYyMTYyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Nj
cm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWJhY2st
c3dpcGUuaHRtbApAQCAtMCwwICsxLDExNCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAg
ICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgIH0KKworICAgICAgICAuc2Nyb2xsZXIg
eworICAgICAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwMHB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwor
ICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIC5ob3Jpem9udGFsIC5zY3JvbGxlciB7CisgICAgICAgICAgICB3aWR0aDogNDAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgbWFyZ2luOiAxMHB4
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuZmlsbGVyIHsKKyAgICAgICAgICAgIGhl
aWdodDogMjAwcHg7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIG1hcmdp
bjogMTBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAg
fQorCisgICAgICAgIC5ob3Jpem9udGFsIC5maWxsZXIgeworICAgICAgICAgICAgaGVpZ2h0OiA4
MCU7CisgICAgICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29s
b3I6IHNpbHZlcjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIAorICAg
IDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHZhciBt
aW5YT2Zmc2V0ID0gMDsKKyAgICAgICAgdmFyIG1heFhPZmZzZXQgPSAtMTAwMDsKKyAgICAgICAg
CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uU2Nyb2xsQ29tcGxldGlvbih4LCB5KQorICAgICAg
ICB7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEsIDAsICJiZWdh
biIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoMTAsIDAsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygx
MCwgMCwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDEwLCAwLCAiY2hhbmdlZCIsICJub25l
Iik7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgMCwgImVuZGVkIiwgIm5vbmUiKTsKKyAgICAgICAgICAgIHJldHVybiBV
SUhlbHBlci53YWl0Rm9yU2Nyb2xsQ29tcGxldGlvbigpOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBhc3luYyBmdW5jdGlvbiBvblN3aXBlQ2FsbGJhY2soKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsRGlkQmVnaW5Td2lwZUNhbGxiYWNrKHJlc29sdmUpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiBzY3JvbGxUZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oJ0EgYmFjayBzd2lwZSwgb3Zl
ciBhIHNjcm9sbGVkLXRvLWxlZnQgb3ZlcmZsb3csIHNob3VsZCBzdGFydCBhIG5hdmlnYXRpb24g
Z2VzdHVyZS4nKTsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKHRydWUp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoaXN0b3J5LnB1c2hTdGF0ZSh7IG5hbWU6
ICdiYWNrc3RhdGUnIH0sICdiYWNrJyk7CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgbWluWE9mZnNldCA9IE1h
dGgubWluKG1pblhPZmZzZXQsIHdpbmRvdy5wYWdlWE9mZnNldCk7CisgICAgICAgICAgICAgICAg
bWF4WE9mZnNldCA9IE1hdGgubWF4KG1heFhPZmZzZXQsIHdpbmRvdy5wYWdlWE9mZnNldCk7Cisg
ICAgICAgICAgICB9LCBmYWxzZSk7CisKKyAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2Vu
ZGVyKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBtb3VzZUxvY2F0aW9u
WCA9IDE1MDsgLy8gT3ZlciB0aGUgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUgb3ZlcmZsb3cuCisg
ICAgICAgICAgICBjb25zdCBtb3VzZUxvY2F0aW9uWSA9IDMwMDsKKworICAgICAgICAgICAgZGVi
dWcoJ1N3aXBlIHRvIHRoZSBsZWZ0Jyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGF3YWl0
IFByb21pc2UuYWxsKFtvblNjcm9sbENvbXBsZXRpb24obW91c2VMb2NhdGlvblgsIG1vdXNlTG9j
YXRpb25ZKSwgb25Td2lwZUNhbGxiYWNrKCldKTsKKworICAgICAgICAgICAgLy8gU2hvdWxkIG5v
dCBoYXZlIHJlY2VpdmVkIGFueSBzY3JvbGwgZXZlbnRzLgorICAgICAgICAgICAgc2hvdWxkQmUo
J21pblhPZmZzZXQnLCAnMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ21heFhPZmZzZXQnLCAn
LTEwMDAnKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHsKKyAgICAgICAgICAg
IHNjcm9sbFRlc3QoKTsKKyAgICAgICAgfSwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisgICAgPGRpdiBpZD0ib3V0ZXIiIGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAg
IDxkaXYgY2xhc3M9ImZpbGxlciI+U2Nyb2xscyB2ZXJ0aWNhbGx5PC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9ImlubmVyIiBjbGFzcz0iaG9yaXpvbnRhbCBzY3JvbGxlciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJmaWxsZXIiPlNjcm9sbHMgaG9yaXpvbnRhbGx5PC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJmaWxsZXIiPjwvZGl2PgorICAgIDwvZGl2PgorICAg
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jp
em9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJm
bG93LWluLXZlcnRpY2FsLW92ZXJmbG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmI1OTMw
MmIzNWZjYjliMjVmY2ZmNGFhN2ZjYmRjYjhiYTA5NjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3Zl
cmZsb3ctaW4tdmVydGljYWwtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1Njcm9sbHMgdmVydGljYWxseQorU2Nyb2xscyBob3Jpem9udGFsbHkKK0luaXRpYWwgc3RhdGUK
K1BBU1Mgb3V0ZXJTY3JvbGxlci5zY3JvbGxUb3AgaXMgMAorUEFTUyBpbm5lclNjcm9sbGVyLnNj
cm9sbFRvcCBpcyAwCitBZnRlciBzY3JvbGxsCitQQVNTIG91dGVyU2Nyb2xsZXIuc2Nyb2xsVG9w
IGlzIDIwMAorUEFTUyBpbm5lclNjcm9sbGVyLnNjcm9sbFRvcCBpcyAwCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvbWFjL2xhdGNoaW5nL2hvcml6b250YWwtb3ZlcmZs
b3ctaW4tdmVydGljYWwtb3ZlcmZsb3cuaHRtbCBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3Jk
aW5hdG9yL21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJm
bG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyM2U0Yzg0MTQyN2M5OTM0MTVkMTZlZThlYmRlNjNhZjQw
NTE5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9y
L21hYy9sYXRjaGluZy9ob3Jpem9udGFsLW92ZXJmbG93LWluLXZlcnRpY2FsLW92ZXJmbG93Lmh0
bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9k
eSB7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAgICAgfQorCisgICAgICAgIC5z
Y3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICB3aWR0aDog
NTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgb3ZlcmZsb3c6
IGF1dG87CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgLmhvcml6b250YWwgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIHdp
ZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBtYXJn
aW46IDEwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5maWxsZXIgeworICAgICAg
ICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAg
ICAgbWFyZ2luOiAxMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyOwor
ICAgICAgICB9CisKKyAgICAgICAgLmhvcml6b250YWwgLmZpbGxlciB7CisgICAgICAgICAgICBo
ZWlnaHQ6IDgwJTsKKyAgICAgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogc2lsdmVyOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgdmFyIG91dGVy
U2Nyb2xsZXI7CisgICAgICAgIHZhciBpbm5lclNjcm9sbGVyOworICAgICAgICAKKyAgICAgICAg
ZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGwoKQorICAgICAgICB7CisgICAgICAgICAgICBkZWJ1Zygn
QWZ0ZXIgc2Nyb2xsbCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ291dGVyU2Nyb2xsZXIuc2Ny
b2xsVG9wJywgJzIwMCcpOworICAgICAgICAgICAgc2hvdWxkQmUoJ2lubmVyU2Nyb2xsZXIuc2Ny
b2xsVG9wJywgJzAnKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBzY3JvbGxUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAg
b3V0ZXJTY3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRlcicpOworICAgICAg
ICAgICAgaW5uZXJTY3JvbGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbm5lcicpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBkZWJ1ZygnSW5pdGlhbCBzdGF0ZScpOworICAgICAg
ICAgICAgc2hvdWxkQmUoJ291dGVyU2Nyb2xsZXIuc2Nyb2xsVG9wJywgJzAnKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlKCdpbm5lclNjcm9sbGVyLnNjcm9sbFRvcCcsICcwJyk7CisKKyAgICAgICAg
ICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKDE1MCwgMzAwKTsgLy8gT3ZlciB0aGUgaG9yaXpvbnRhbGx5IHNj
cm9sbGFibGUgb3ZlcmZsb3cuCisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICJiZWdhbiIsICJub25lIik7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEwLCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEwLCAibm9uZSIsICJj
b250aW51ZSIpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJub25lIiwgImVuZCIpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4g
eworICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxUZXN0LCAwKTsKKyAgICAgICAgfSwgZmFs
c2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ib3V0ZXIi
IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImZpbGxlciI+U2Nyb2xscyB2
ZXJ0aWNhbGx5PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImlubmVyIiBjbGFzcz0iaG9yaXpvbnRh
bCBzY3JvbGxlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxsZXIiPlNjcm9sbHMgaG9y
aXpvbnRhbGx5PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJmaWxs
ZXIiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>