<?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>156938</bug_id>
          
          <creation_ts>2016-04-22 16:43:44 -0700</creation_ts>
          <short_desc>Tie the DiagnosticLoggingClient&apos;s lifetime to the Page</short_desc>
          <delta_ts>2016-04-23 14:33:33 -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>WebCore Misc.</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1186499</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 16:43:44 -0700</bug_when>
    <thetext>Tie the DiagnosticLoggingClient&apos;s lifetime to the Page rather than to the MainFrame. The diagnostic logging client in WebKit2 requires the WebPage to be alive in order to send IPC to the UIProcess. The WebPage owns the Page and Page is not refCounted so the lifetime of the DiagnosticLoggingClient should now be tied to the one of the WebPage as well.

Previously, DiagnosticLoggingClient would stay alive as long as the MainFrame and could apparently in rare cases outlive the WebPage, thus crashing when trying to send the IPC (rdar://problem/25851499).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186500</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 16:44:11 -0700</bug_when>
    <thetext>rdar://problem/25851499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186512</commentid>
    <comment_count>2</comment_count>
      <attachid>277116</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 17:03:08 -0700</bug_when>
    <thetext>Created attachment 277116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186540</commentid>
    <comment_count>3</comment_count>
      <attachid>277123</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 18:20:31 -0700</bug_when>
    <thetext>Created attachment 277123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186542</commentid>
    <comment_count>4</comment_count>
      <attachid>277124</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-22 18:23:03 -0700</bug_when>
    <thetext>Created attachment 277124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186596</commentid>
    <comment_count>5</comment_count>
      <attachid>277124</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-22 23:32:38 -0700</bug_when>
    <thetext>Comment on attachment 277124
Patch

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

&gt; Source/WebCore/page/Page.cpp:287
&gt; +    if (m_diagnosticLoggingClient)
&gt; +        m_diagnosticLoggingClient-&gt;pageDestroyed();

Why this instead of using std::unique_ptr for ownership?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186597</commentid>
    <comment_count>6</comment_count>
      <attachid>277124</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-04-22 23:36:59 -0700</bug_when>
    <thetext>Comment on attachment 277124
Patch

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

&gt;&gt; Source/WebCore/page/Page.cpp:287
&gt;&gt; +        m_diagnosticLoggingClient-&gt;pageDestroyed();
&gt; 
&gt; Why this instead of using std::unique_ptr for ownership?

Is there a chance that someone might access the dangling pointer during the rest of the destructor? Maybe null it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186661</commentid>
    <comment_count>7</comment_count>
      <attachid>277163</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-23 13:44:50 -0700</bug_when>
    <thetext>Created attachment 277163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186664</commentid>
    <comment_count>8</comment_count>
      <attachid>277163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-23 14:33:28 -0700</bug_when>
    <thetext>Comment on attachment 277163
Patch

Clearing flags on attachment: 277163

Committed r199955: &lt;http://trac.webkit.org/changeset/199955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186665</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-23 14:33:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277116</attachid>
            <date>2016-04-22 17:03:08 -0700</date>
            <delta_ts>2016-04-22 18:20:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156938-20160422170332.patch</filename>
            <type>text/plain</type>
            <size>27907</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM2Nzk5YTBiYTY5MTgz
ZGNhYWMyZTUyM2JmNjJhZDZlMGNlYTE5NS4uNmUyMGE4ZWI3Nzc3NDI1OWE4NTcxZjVmNTY4MjMz
NzdjMTU2OTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE2LTA0LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRoZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRpZSB0aGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQncyBsaWZldGltZSB0byB0aGUg
UGFnZSByYXRoZXIgdGhhbiB0byB0aGUKKyAgICAgICAgTWFpbkZyYW1lLiBUaGUgZGlhZ25vc3Rp
YyBsb2dnaW5nIGNsaWVudCBpbiBXZWJLaXQyIHJlcXVpcmVzIHRoZSBXZWJQYWdlCisgICAgICAg
IHRvIGJlIGFsaXZlIGluIG9yZGVyIHRvIHNlbmQgSVBDIHRvIHRoZSBVSVByb2Nlc3MuIFRoZSBX
ZWJQYWdlIG93bnMgdGhlCisgICAgICAgIFBhZ2UgYW5kIFBhZ2UgaXMgbm90IHJlZkNvdW50ZWQg
c28gdGhlIGxpZmV0aW1lIG9mIHRoZQorICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBz
aG91bGQgbm93IGJlIHRpZWQgdG8gdGhlIG9uZSBvZiB0aGUgV2ViUGFnZSBhcworICAgICAgICB3
ZWxsLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB3
b3VsZCBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgdGhlCisgICAgICAgIE1haW5GcmFtZSBhbmQgY291
bGQgYXBwYXJlbnRseSBpbiByYXJlIGNhc2VzIG91dGxpdmUgdGhlIFdlYlBhZ2UsIHRodXMKKyAg
ICAgICAgY3Jhc2hpbmcgd2hlbiB0cnlpbmcgdG8gc2VuZCB0aGUgSVBDLgorCisgICAgICAgICog
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUGFnZUNhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dN
ZWRpYUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2dOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUmVzb3VyY2VSZXNwb25zZVNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1BsdWdpblJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dSZXNvdXJjZUxvYWRlZCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1Jlc291cmNlUmV2YWxpZGF0aW9uRGVjaXNpb24pOgorICAgICAgICAqIHBhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6Ok1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNYWluRnJhbWU6On5NYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWFpbkZyYW1lOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9NYWluRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMTYtMDQtMjIgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggY2M2MmYwMjg3YjRiMTRkNWIxNjBiZWFhYzYxZjMwMmYwM2ZiZTFmNC4uNWRi
ZjZhOGQ4NzEyYzMzNzU2NjZlNTY5MTkxN2Y4YWMzYjA5ZjA4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDE2LTA0LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRo
ZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Om1haW5GcmFtZURlc3Ryb3llZCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpv
b21pbmcpOgorCiAyMDE2LTA0LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeGluZyBhIHR5cG8gaW4gbXkgbGFzdCBjb21taXQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggNWZlMzFiNTcyNjk2N2MwYzAxNTRhODhkNmNjNjI2
NzdjMjFiYTVjMi4uZWFiMjQ5Nzg5MGQ4MjdjNGVjZTExYTg1YmQ1MTlhYjc5Y2M2YjdmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKFBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPm1haW5GcmFtZSgpLmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNvbik7CisgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNv
bik7CiB9CiAKIHN0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJhbWUmIGZyYW1lLCBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIHVuc2lnbmVkIGluZGVu
dExldmVsKQpAQCAtMTkwLDEwICsxOTAsOSBAQCBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2UoUGFn
ZSYgcGFnZSkKIHsKICAgICB1bnNpZ25lZCBpbmRlbnRMZXZlbCA9IDA7CiAgICAgUENMT0coIi0t
LS0tLS0tXG4gRGV0ZXJtaW5pbmcgaWYgcGFnZSBjYW4gYmUgY2FjaGVkOiIpOwotICAgIAotICAg
IE1haW5GcmFtZSYgbWFpbkZyYW1lID0gcGFnZS5tYWluRnJhbWUoKTsKLSAgICBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWluRnJhbWUuZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKTsKLSAgICBib29sIGlzQ2FjaGVhYmxlID0gY2FuQ2FjaGVGcmFt
ZShtYWluRnJhbWUsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpOwor
CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0g
cGFnZS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGJvb2wgaXNDYWNoZWFibGUgPSBj
YW5DYWNoZUZyYW1lKHBhZ2UubWFpbkZyYW1lKCksIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBp
bmRlbnRMZXZlbCArIDEpOwogICAgIAogICAgIGlmICghcGFnZS5zZXR0aW5ncygpLnVzZXNQYWdl
Q2FjaGUoKSB8fCBwYWdlLmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkgewogICAgICAgICBQ
Q0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDE1ZjFjZDg3YTgzYjc4NmZl
MDUyNTYwMDMwOWU1NDkzNDRjNzBhMTEuLjU5N2VlNTM1ZTk3Nzc1M2NlN2Q2YzMxYTZlOTY3OGU0
ODhhZWRiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTMxNyw4ICsxMzE3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29u
c3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudFQKICAgICB9CiAKICAgICAv
LyBMb2cgdGhhdCB3ZSBzdGFydGVkIGxvYWRpbmcgYSBtZWRpYSBlbGVtZW50LgotICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJh
bWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFLZXkoKSwgaXNWaWRlbygpID8gRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjp2aWRlb0tleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphdWRp
b0tleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmxvYWRpbmdLZXkoKSwgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCksIGlzVmlk
ZW8oKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6YXVkaW9LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpsb2FkaW5nS2V5KCks
IFNob3VsZFNhbXBsZTo6Tm8pOwogCiAgICAgbV9maXJzdFRpbWVQbGF5aW5nID0gdHJ1ZTsKIApA
QCAtMTk4Nyw3ICsxOTg2LDcgQEAgc3RhdGljIHZvaWQgbG9nTWVkaWFMb2FkUmVxdWVzdChQYWdl
KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lZGlhRW5naW5lLCBjb25zdCBTdHIKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCk7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50ID0gcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBpZiAoIXN1Y2Nl
ZWRlZCkgewogICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRpbmdGYWlsZWRL
ZXkoKSwgZXJyb3JNZXNzYWdlLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNh
bXBsZTo6Tm8pOwogICAgICAgICByZXR1cm47CkBAIC00ODQ1LDggKzQ4NDQsOCBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZSgpCiAKICAgICAgICAgICAgIGlmIChtX2Zp
cnN0VGltZVBsYXlpbmcpIHsKICAgICAgICAgICAgICAgICAvLyBMb2cgdGhhdCBhIG1lZGlhIGVs
ZW1lbnQgd2FzIHBsYXllZC4KLSAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+bWFpbkZyYW1lKCku
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCksIGlzVmlkZW8oKSA/IERpYWdub3N0aWNM
b2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXVkaW9LZXko
KSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbGF5ZWRLZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKKyAg
ICAgICAgICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCks
IGlzVmlkZW8oKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0
aWNMb2dnaW5nS2V5czo6YXVkaW9LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbGF5ZWRL
ZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgICAgICAgICAgbV9maXJzdFRpbWVQbGF5
aW5nID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAKQEAgLTYyOTYsOCArNjI5NSw4IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAog
ICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxheWVyLT5lbmdp
bmVEZXNjcmlwdGlvbigpLCBTdHJpbmc6Om51bWJlcihtX3BsYXllci0+cGxhdGZvcm1FcnJvckNv
ZGUoKSksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjplbmdpbmVGYWls
ZWRUb0xvYWRLZXkoKSwgbV9wbGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCksIFN0cmluZzo6bnVt
YmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSwgU2hvdWxkU2FtcGxlOjpObyk7CiB9
CiAKIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNr
UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYTkyODlk
ZmNjNzdjYzE2NzJkODNhMTQzM2I2MTllYWFhNmJhNDI3YS4uMGQ3MGJkMGE2OTk0MGIyNGQ5YWQ0
M2IwOGMwOTU1OGJkNmYyODE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtNjQxLDcgKzY0MSw3IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgZmlu
YWwgOiBwdWJsaWMgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgewogICAgIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIERpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSBvdmVycmlkZSB7IH0KICAgICB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkgb3ZlcnJpZGUgeyB9CiAKLSAgICB2
b2lkIG1haW5GcmFtZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgcGFnZURlc3Ry
b3llZCgpIG92ZXJyaWRlIHsgfQogfTsKIAogdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdl
Q29uZmlndXJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
MWNlMzQ0YzYzZDE1ZTBmOTA5NzI1Y2Y3MWFlM2I5NThiYzJlZjhlOC4uNmMzM2QyZjAyMmYxZmJi
MTk4NzQyNTgwOTUzY2Y0MzE4N2FlY2ViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0xMzY1LDYgKzEzNjUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3Vt
ZW50TG9hZGVyKiBuZXdEb2N1bWVudExvYWRlcikKIAogc3RhdGljIHZvaWQgbG9nTmF2aWdhdGlv
bihNYWluRnJhbWUmIGZyYW1lLCBGcmFtZUxvYWRUeXBlIHR5cGUpCiB7CisgICAgaWYgKCFmcmFt
ZS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBuYXZpZ2F0aW9uRGVzY3Jp
cHRpb247CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpTdGFu
ZGFyZDoKQEAgLTEzOTMsNyArMTM5Niw3IEBAIHN0YXRpYyB2b2lkIGxvZ05hdmlnYXRpb24oTWFp
bkZyYW1lJiBmcmFtZSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogICAgICAgICAvLyBOb3QgbG9nZ2lu
ZyB0aG9zZSBmb3Igbm93LgogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGZyYW1lLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpuYXZpZ2F0aW9uS2V5KCksIG5hdmlnYXRpb25EZXNjcmlwdGlvbiwgU2hvdWxkU2Ft
cGxlOjpObyk7CisgICAgZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bmF2aWdhdGlvbktleSgp
LCBuYXZpZ2F0aW9uRGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCkK
QEAgLTIzMjUsNyArMjMyOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRl
Rm9yVGhpc0ZyYW1lKCkKICAgICAgICAgICAgIC8vIERvbid0IGFzc3VtZSAncGFnZScgaXMgc3Rp
bGwgYXZhaWxhYmxlIHRvIHVzZS4KICAgICAgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1l
KCkgJiYgbV9mcmFtZS5wYWdlKCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoJm1fZnJhbWUu
cGFnZSgpLT5tYWluRnJhbWUoKSA9PSAmbV9mcmFtZSk7Ci0gICAgICAgICAgICAgICAgbV9mcmFt
ZS5wYWdlKCktPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUxvYWRlZEtl
eSgpLCBlbXB0eVN0cmluZygpLCBlcnJvci5pc051bGwoKSA/IERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMp
OworICAgICAgICAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFnbm9z
dGljTG9nZ2luZ1Jlc3VsdFBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3Vs
ZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MzA0OSw3ICszMDUyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAgICBzZXRQb2xpY3lE
b2N1bWVudExvYWRlcihudWxscHRyKTsKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUo
dHlwZSkpIHsKLSAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1l
Lm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgICAgIGF1dG8mIGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gbV9mcmFtZS5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCk7CiAgICAgICAgIGlmIChoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5Q
YWdlQ2FjaGUoKSkgewogICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hl
S2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNM
b2dnaW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgbG9hZFBy
b3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCAwNDU2NTZhMjIxNWNmYTU2OWQxN2Y1OTgzOThhNDNkNTFmMjdl
NzZjLi42YzE3OGJjNWRlZmU1NzAzNzgwNTBiNjcwNGIwNDAxMjcyNjY0NzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVk
IGxvbmcgbG9uZykKIAogc3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXNwb25zZVNvdXJjZShGcmFt
ZSogZnJhbWUsIFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZSBzb3VyY2UpCiB7Ci0gICAgaWYgKCFm
cmFtZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBTdHJpbmcgc291cmNlS2V5OwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRpYyB2b2lk
IGxvZ1Jlc291cmNlUmVzcG9uc2VTb3VyY2UoRnJhbWUqIGZyYW1lLCBSZXNvdXJjZVJlc3BvbnNl
OjpTb3VyY2Ugc291CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZS0+bWFpbkZy
YW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVzcG9uc2VLZXkoKSwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzb3VyY2VLZXkoKSwgc291cmNlS2V5LCBTaG91bGRTYW1wbGU6Olll
cyk7CisgICAgZnJhbWUtPnBhZ2UoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXNw
b25zZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtleSgpLCBzb3VyY2VLZXks
IFNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCAzYjE2NDgyMDYwN2JkYTA3NTVhYjFmNGIyNTQzMGY1
MTU3ODkxMzlmLi5hMmE3NGNmZWU2NzhiNGQ0NDgwMTU1NjI4YzFlYTJiYWUyYTA2NzJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTIwOSw3ICsyMDksNyBA
QCBzdGF0aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdQogICAgIFN0cmluZyBwbHVnaW5GaWxlID0gcGFnZS0+
cGx1Z2luRGF0YSgpLnBsdWdpbkZpbGVGb3JXZWJWaXNpYmxlTWltZVR5cGUobmV3TUlNRVR5cGUp
OwogICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9ICFwbHVnaW5GaWxlID8gbmV3TUlNRVR5cGUgOiBw
bHVnaW5GaWxlOwogCi0gICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50ID0gcGFnZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsK
KyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBw
YWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwogICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKHN1Y2Nlc3MgPyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBsdWdpbkxvYWRlZEtleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkaW5n
RmFpbGVkS2V5KCksIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGU6Ok5vKTsKIAogICAgIGlmICgh
cGFnZS0+aGFzU2VlbkFueVBsdWdpbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggYWZmMjg2ZTAwOWE3MTQ2NmEwYThjMjc2YjJlZTU1MjdjNzlk
ZmNjMy4uNzhjMTQyYmE0MWJiYTA5NjkwMDJmZDVkNDA0NzNkYTdjMmU5MjU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xODIsOCArMTgyLDgg
QEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0SW50ZXJuYWwoUmVzb3Vy
Y2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb24KICAgICAgICAgaWYgKG5ld1JlcXVlc3QuaXNDb25k
aXRpb25hbCgpICYmIG1fcmVzb3VyY2UtPnJlc291cmNlVG9SZXZhbGlkYXRlKCkgJiYgbmV3UmVx
dWVzdC51cmwoKSAhPSBtX3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpLT5yZXNwb25z
ZSgpLnVybCgpKSB7CiAgICAgICAgICAgICBuZXdSZXF1ZXN0Lm1ha2VVbmNvbmRpdGlvbmFsKCk7
CiAgICAgICAgICAgICBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmV2YWxpZGF0aW9uRmFpbGVk
KCptX3Jlc291cmNlKTsKLSAgICAgICAgICAgIGlmIChtX2ZyYW1lKQotICAgICAgICAgICAgICAg
IG1fZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVkUmVzb3Vy
Y2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1
bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7CisgICAgICAgICAgICBpZiAobV9mcmFtZSAmJiBt
X2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmNhY2hlZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3Ry
aW5nKCksIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLmNhblJlcXVlc3QobV9yZXNvdXJjZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVybCgp
LCBvcHRpb25zKCksIGZhbHNlIC8qIGZvclByZWxvYWQgKi8sIHRydWUgLyogZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UgKi8pKSB7CkBAIC0yNDYsMTYgKzI0NiwxNiBAQCB2b2lkIFN1YnJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiAgICAgICAgICAgICAvLyBFeGlzdGluZyByZXNvdXJjZSBpcyBvaywganVzdCB1c2Ug
aXQgdXBkYXRpbmcgdGhlIGV4cGlyYXRpb24gdGltZS4KICAgICAgICAgICAgIG1fcmVzb3VyY2Ut
PnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKICAgICAgICAgICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0
b24oKS5yZXZhbGlkYXRpb25TdWNjZWVkZWQoKm1fcmVzb3VyY2UsIHJlc3BvbnNlKTsKLSAgICAg
ICAgICAgIGlmIChtX2ZyYW1lKQotICAgICAgICAgICAgICAgIG1fZnJhbWUtPm1haW5GcmFtZSgp
LmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVkUmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwg
ZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLCBTaG91bGRTYW1wbGU6
Olllcyk7CisgICAgICAgICAgICBpZiAobV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkpCisgICAg
ICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhY2hl
ZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dn
aW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgaWYgKCFyZWFj
aGVkVGVybWluYWxTdGF0ZSgpKQogICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIC8vIERpZCBub3QgZ2V0IDMwNCByZXNwb25zZSwgY29udGludWUgYXMgYSByZWd1
bGFyIHJlc291cmNlIGxvYWQuCiAgICAgICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZXZh
bGlkYXRpb25GYWlsZWQoKm1fcmVzb3VyY2UpOwotICAgICAgICBpZiAobV9mcmFtZSkKLSAgICAg
ICAgICAgIG1fZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVk
UmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7CisgICAgICAgIGlmIChtX2ZyYW1lICYm
IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpjYWNoZWRSZXNvdXJjZVJldmFsaWRhdGlvbktleSgpLCBlbXB0eVN0cmlu
ZygpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAg
ICB9CiAKICAgICBtX3Jlc291cmNlLT5yZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKQEAgLTMz
OCw3ICszMzgsNyBAQCBib29sIFN1YnJlc291cmNlTG9hZGVyOjpjaGVja0ZvckhUVFBTdGF0dXND
b2RlRXJyb3IoKQogCiBzdGF0aWMgdm9pZCBsb2dSZXNvdXJjZUxvYWRlZChGcmFtZSogZnJhbWUs
IENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBpZiAo
IWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcg
cmVzb3VyY2VUeXBlOwpAQCAtMzgyLDcgKzM4Miw3IEBAIHN0YXRpYyB2b2lkIGxvZ1Jlc291cmNl
TG9hZGVkKEZyYW1lKiBmcmFtZSwgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKICAgICAgICAg
cmVzb3VyY2VUeXBlID0gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpvdGhlcktleSgpOwogICAgICAg
ICBicmVhazsKICAgICB9Ci0gICAgZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpyZXNvdXJjZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmxvYWRlZEtleSgpLCBy
ZXNvdXJjZVR5cGUsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICBmcmFtZS0+cGFnZSgpLT5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjps
b2FkZWRLZXkoKSwgcmVzb3VyY2VUeXBlLCBTaG91bGRTYW1wbGU6Olllcyk7CiB9CiAKIGJvb2wg
U3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcHJldmlvdXNSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCA4ZWY4NTQ5NTc5YmQyNmI4NDI3ZGU1ODg2NDc4NjBlNDYwNGY2ZjBiLi5jMGE5OWEzZGU5Nzg5
NDVmZDY0OWRjMmQ2ZWE3OGRiNjc4NzEzMDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzOSwxMiArNTM5LDEy
IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNob3VsZENvbnRpbnVlQWZ0ZXJOb3RpZnlp
bmdMb2FkZWRGcm9tTWVtb3J5Q2FjaGUoY29uCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2dNZW1v
cnlDYWNoZVJlc291cmNlUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUgPSBTdHJpbmcoKSkKIHsKLSAgICBpZiAoIWZyYW1l
KQorICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCksIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGU6Olll
cyk7CisgICAgICAgIGZyYW1lLT5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9n
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlcXVlc3RL
ZXkoKSwgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICBlbHNlCi0gICAgICAg
IGZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0
S2V5KCksIGRlc2NyaXB0aW9uLCB2YWx1ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBm
cmFtZS0+cGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCks
IGRlc2NyaXB0aW9uLCB2YWx1ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCkBAIC03MTksOSArNzE5LDkgQEAgc3RhdGljIHZvaWQgbG9nUmV2YWxpZGF0aW9u
KGNvbnN0IFN0cmluZyYgcmVhc29uLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgbG9nQ2wKIAog
c3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXZhbGlkYXRpb25EZWNpc2lvbihDYWNoZWRSZXNvdXJj
ZTo6UmV2YWxpZGF0aW9uRGVjaXNpb24gcmVhc29uLCBjb25zdCBGcmFtZSogZnJhbWUpCiB7Ci0g
ICAgaWYgKCFmcmFtZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgYXV0byYgbG9nQ2xpZW50ID0gZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgYXV0byYgbG9nQ2xpZW50ID0gZnJhbWUtPnBhZ2Uo
KS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBzd2l0Y2ggKHJlYXNvbikgewogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJldmFsaWRhdGlvbkRlY2lzaW9uOjpObzoKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgK
aW5kZXggNTAzNzkyMzUyNGJhYWEyYzE3NTc4MjZmMjhlYjc4MTgyOGQzNjdlYy4uOTZhMzI4ZmRm
MTQ5OWU3NDMyMmRlYTNlZmY0MTBmM2RlMDUxM2I2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgU2hvdWxkU2FtcGxlKSA9IDA7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lRGVzdHJveWVkKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBwYWdlRGVzdHJveWVkKCkgPSAwOwogCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQWZ0
ZXJTYW1wbGluZyhTaG91bGRTYW1wbGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5k
ZXggNTg0NjQ0ZmZjMGRkZjgxNTUzYTdiMWFlYzhkYjMyYWY5N2UyMmRjZC4uNmRmMjk2NTUzZTM4
YTViMWUzNTBhZmQzYjFlYjU1ZGVlYmU2NWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNw
cApAQCAtNTUsNyArNTUsNiBAQCBpbmxpbmUgTWFpbkZyYW1lOjpNYWluRnJhbWUoUGFnZSYgcGFn
ZSwgUGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKICAgICAsIG1fcmVj
ZW50V2hlZWxFdmVudERlbHRhRmlsdGVyKFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkp
CiAgICAgLCBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVy
bGF5Q29udHJvbGxlcj4oKnRoaXMpKQotICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChj
b25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQogewogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL01haW5GcmFtZUluaXRpYWxp
emF0aW9uLmNwcD4KQEAgLTY0LDkgKzYzLDYgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1l
KFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiBNYWluRnJh
bWU6On5NYWluRnJhbWUoKQogewotICAgIGlmIChtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQot
ICAgICAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5tYWluRnJhbWVEZXN0cm95ZWQoKTsK
LQogICAgIG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyID0gbnVsbHB0cjsKICAgICBtX2V2
ZW50SGFuZGxlciA9IG51bGxwdHI7CiAKQEAgLTk4LDE1ICs5NCw2IEBAIHZvaWQgTWFpbkZyYW1l
OjpzZWxmT25seURlcmVmKCkKICAgICBkZXJlZigpOwogfQogCi1EaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCYgTWFpbkZyYW1lOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0Ci17Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IGR1bW15
Q2xpZW50OwotICAgIGlmICghc2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSB8
fCAhbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKLSAgICAgICAgcmV0dXJuIGR1bW15Q2xpZW50
OwotCi0gICAgcmV0dXJuICptX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwotfQotCiB2b2lkIE1h
aW5GcmFtZTo6ZHJvcENoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxkID0gdHJl
ZSgpLmZpcnN0Q2hpbGQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZy
YW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCmluZGV4IGM5ZmE1Mzk2Nzk3
M2U0MTBhZDhhZGYxYTEzYjRhOThmYTcyNGVkMzUuLjllOTVlYzk3NWJhYTVhOGE2YTMzZDU5OGU0
NmE4YzRiMmFkYTQyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaApAQCAtMzYsNyArMzYsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXI7
CiBjbGFzcyBTY3JvbGxMYXRjaGluZ1N0YXRlOwpAQCAtNjcsOCArNjYsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW1vdmVMYXRjaGluZ1N0YXRlRm9yVGFyZ2V0KEVsZW1lbnQmKTsKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKLSAgICBXRUJDT1JFX0VYUE9SVCBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdDsKLQogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL01haW5GcmFtZU1lbWJlcnMu
aD4KICNlbmRpZgpAQCAtODksNyArODYsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdoZWVsRXZlbnREZWx0YUZpbHRlcj4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4gbV9wYWdlT3Zlcmxh
eUNvbnRyb2xsZXI7Ci0gICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIG1fZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ7CiB9OwogCiBpbmxpbmUgYm9vbCBGcmFtZTo6aXNNYWluRnJhbWUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYmY5Y2MxMzI2YTcwMDY0OTg1ZTVjY2JmZDg3OTdjOTll
Mjk5YzllMC4uZTBjNjBiZjI4MWNiMDA1ZjM4ZjNiNmI0ZWJlMmZkMDk2ZjRhMzhmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0xODEsNiArMTgxLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2VkaXRvckNsaWVudCgqcGFnZUNvbmZp
Z3VyYXRpb24uZWRpdG9yQ2xpZW50KQogICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNvbmZpZ3Vy
YXRpb24ucGx1Z0luQ2xpZW50KQogICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudChwYWdl
Q29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkKKyAgICAsIG1fZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQp
CiAgICAgLCBtX3N1YmZyYW1lQ291bnQoMCkKICAgICAsIG1fb3BlbmVkQnlET00oZmFsc2UpCiAg
ICAgLCBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKQpAQCAtMjgwLDYgKzI4MSw4
IEBAIFBhZ2U6On5QYWdlKCkKICAgICAgICAgZnJhbWUtPmRldGFjaEZyb21QYWdlKCk7CiAgICAg
fQogCisgICAgaWYgKG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIG1fZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKICAgICBtX2VkaXRvckNsaWVudC5w
YWdlRGVzdHJveWVkKCk7CiAgICAgaWYgKG1fcGx1Z0luQ2xpZW50KQogICAgICAgICBtX3BsdWdJ
bkNsaWVudC0+cGFnZURlc3Ryb3llZCgpOwpAQCAtNzYwLDYgKzc2MywxNSBAQCB2b2lkIFBhZ2U6
OnNldEluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGUoYm9vbCBtb2RlKQogICAgIG1f
aW5Mb3dRdWFsaXR5SW50ZXJwb2xhdGlvbk1vZGUgPSBtb2RlOwogfQogCitEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCYgUGFnZTo6ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdAoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBkdW1t
eUNsaWVudDsKKyAgICBpZiAoIXNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkg
fHwgIW1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybiBkdW1teUNsaWVu
dDsKKworICAgIHJldHVybiAqbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK30KKwogdm9pZCBQ
YWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiB7CiAgICAgaWYgKHZvbHVtZSA8IDAg
fHwgdm9sdW1lID4gMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTgzMTgzNTQwZjcwNGI3NjNhZDUwYWFl
NTY0Njk4ZmMyNThkMzU2NS4uNTQzYjZiMzY2ZjdhMjg2OWZhZDViNGM4ZTczMWJiZDNmMzRhM2I5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg0LDYgKzg0LDcgQEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBD
b250ZXh0TWVudUNsaWVudDsKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlcjsKIGNsYXNzIERh
dGFiYXNlUHJvdmlkZXI7CitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIGNsYXNzIERy
YWdDYXJldENvbnRyb2xsZXI7CiBjbGFzcyBEcmFnQ2xpZW50OwogY2xhc3MgRHJhZ0NvbnRyb2xs
ZXI7CkBAIC0zMjgsNiArMzI5LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdW5z
aWduZWQgcGFnZUNvdW50KCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdDsKKwogICAgIC8v
IE5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgUGFnZSBzdGFydHMgYW5kIHN0b3BzIGJlaW5nIHByZXNl
bnRlZCB2aWEgYSBuYXRpdmUgd2luZG93LgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Vmll
d1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3MpOwogICAgIHZvaWQgc2V0UGFnZUFjdGl2aXR5U3RhdGUo
UGFnZUFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKQEAgLTU4NCw2ICs1ODcsNyBAQCBwcml2YXRlOgog
ICAgIEVkaXRvckNsaWVudCYgbV9lZGl0b3JDbGllbnQ7CiAgICAgUGx1Z0luQ2xpZW50KiBtX3Bs
dWdJbkNsaWVudDsKICAgICBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudCogbV92YWxpZGF0aW9uTWVz
c2FnZUNsaWVudDsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogbV9kaWFnbm9zdGljTG9n
Z2luZ0NsaWVudDsKIAogICAgIGludCBtX3N1YmZyYW1lQ291bnQ7CiAgICAgU3RyaW5nIG1fZ3Jv
dXBOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAppbmRl
eCBmM2JiNGRiNzQyYWY2M2VjYjk0OWMxMWQzYWNhZDA3OWIwY2I5YTdkLi4wOWE5NTI5NDc2YTdh
ODY2MDI1YmExYjg4MTZiZTRkZTQ2YWFlMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcm
IG1lcwogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ1NhbXBsZWRE
aWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUpKTsK
IH0KIAotdm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bWFpbkZyYW1lRGVzdHJveWVk
KCkKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQogewog
ICAgIGRlbGV0ZSB0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5oCmluZGV4IGU0ZGUxYTExOTYwMzA3MWI3OTk1ODBlNmE0YWUxZTAwMjIyN2FjYjYuLmIxODFl
YWEwOGY1YWRjMDA5N2FiMzhlZDhjZDhhZDMzNjdlZTYzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nUmVz
dWx0VHlwZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ0Rp
YWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlKSBvdmVycmlkZTsKIAotICAgIHZvaWQgbWFpbkZyYW1lRGVzdHJveWVkKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlJiBtX3Bh
Z2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IDI5MGM5MDUyMDRkZjBkOTAwYTY0NTA0NjdlYTNjYWY1OWYxMTg3
OWUuLmZkZWI4MDZmNGU4ZjdjYzMwN2U3OGZiMWE4ZmY5NTMyMjMwNTI1ODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAg
LTI5OTAsNyArMjk5MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0
cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpCiAKIHZvaWQgV2ViUGFn
ZTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKQogewotICAgIG1fcGFnZS0+bWFpbkZy
YW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OndlYlZpZXdLZXkoKSwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjp1c2VyS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6em9vbWVkS2V5KCksIFNo
b3VsZFNhbXBsZTo6Tm8pOworICAgIG1fcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OndlYlZp
ZXdLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1c2VyS2V5KCksIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6em9vbWVkS2V5KCksIFNob3VsZFNhbXBsZTo6Tm8pOwogICAgIG1fdXNlckhhc0No
YW5nZWRQYWdlU2NhbGVGYWN0b3IgPSB0cnVlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277123</attachid>
            <date>2016-04-22 18:20:31 -0700</date>
            <delta_ts>2016-04-22 18:22:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156938-20160422182057.patch</filename>
            <type>text/plain</type>
            <size>28309</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM2Nzk5YTBiYTY5MTgz
ZGNhYWMyZTUyM2JmNjJhZDZlMGNlYTE5NS4uNmUyMGE4ZWI3Nzc3NDI1OWE4NTcxZjVmNTY4MjMz
NzdjMTU2OTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE2LTA0LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRoZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRpZSB0aGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQncyBsaWZldGltZSB0byB0aGUg
UGFnZSByYXRoZXIgdGhhbiB0byB0aGUKKyAgICAgICAgTWFpbkZyYW1lLiBUaGUgZGlhZ25vc3Rp
YyBsb2dnaW5nIGNsaWVudCBpbiBXZWJLaXQyIHJlcXVpcmVzIHRoZSBXZWJQYWdlCisgICAgICAg
IHRvIGJlIGFsaXZlIGluIG9yZGVyIHRvIHNlbmQgSVBDIHRvIHRoZSBVSVByb2Nlc3MuIFRoZSBX
ZWJQYWdlIG93bnMgdGhlCisgICAgICAgIFBhZ2UgYW5kIFBhZ2UgaXMgbm90IHJlZkNvdW50ZWQg
c28gdGhlIGxpZmV0aW1lIG9mIHRoZQorICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBz
aG91bGQgbm93IGJlIHRpZWQgdG8gdGhlIG9uZSBvZiB0aGUgV2ViUGFnZSBhcworICAgICAgICB3
ZWxsLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB3
b3VsZCBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgdGhlCisgICAgICAgIE1haW5GcmFtZSBhbmQgY291
bGQgYXBwYXJlbnRseSBpbiByYXJlIGNhc2VzIG91dGxpdmUgdGhlIFdlYlBhZ2UsIHRodXMKKyAg
ICAgICAgY3Jhc2hpbmcgd2hlbiB0cnlpbmcgdG8gc2VuZCB0aGUgSVBDLgorCisgICAgICAgICog
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUGFnZUNhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dN
ZWRpYUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2dOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUmVzb3VyY2VSZXNwb25zZVNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1BsdWdpblJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dSZXNvdXJjZUxvYWRlZCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1Jlc291cmNlUmV2YWxpZGF0aW9uRGVjaXNpb24pOgorICAgICAgICAqIHBhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6Ok1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNYWluRnJhbWU6On5NYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWFpbkZyYW1lOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9NYWluRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMTYtMDQtMjIgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggY2M2MmYwMjg3YjRiMTRkNWIxNjBiZWFhYzYxZjMwMmYwM2ZiZTFmNC4uNWRi
ZjZhOGQ4NzEyYzMzNzU2NjZlNTY5MTkxN2Y4YWMzYjA5ZjA4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDE2LTA0LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRo
ZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Om1haW5GcmFtZURlc3Ryb3llZCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpv
b21pbmcpOgorCiAyMDE2LTA0LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeGluZyBhIHR5cG8gaW4gbXkgbGFzdCBjb21taXQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggNWZlMzFiNTcyNjk2N2MwYzAxNTRhODhkNmNjNjI2
NzdjMjFiYTVjMi4uZWFiMjQ5Nzg5MGQ4MjdjNGVjZTExYTg1YmQ1MTlhYjc5Y2M2YjdmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKFBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPm1haW5GcmFtZSgpLmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNvbik7CisgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNv
bik7CiB9CiAKIHN0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJhbWUmIGZyYW1lLCBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIHVuc2lnbmVkIGluZGVu
dExldmVsKQpAQCAtMTkwLDEwICsxOTAsOSBAQCBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2UoUGFn
ZSYgcGFnZSkKIHsKICAgICB1bnNpZ25lZCBpbmRlbnRMZXZlbCA9IDA7CiAgICAgUENMT0coIi0t
LS0tLS0tXG4gRGV0ZXJtaW5pbmcgaWYgcGFnZSBjYW4gYmUgY2FjaGVkOiIpOwotICAgIAotICAg
IE1haW5GcmFtZSYgbWFpbkZyYW1lID0gcGFnZS5tYWluRnJhbWUoKTsKLSAgICBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWluRnJhbWUuZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKTsKLSAgICBib29sIGlzQ2FjaGVhYmxlID0gY2FuQ2FjaGVGcmFt
ZShtYWluRnJhbWUsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpOwor
CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0g
cGFnZS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGJvb2wgaXNDYWNoZWFibGUgPSBj
YW5DYWNoZUZyYW1lKHBhZ2UubWFpbkZyYW1lKCksIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBp
bmRlbnRMZXZlbCArIDEpOwogICAgIAogICAgIGlmICghcGFnZS5zZXR0aW5ncygpLnVzZXNQYWdl
Q2FjaGUoKSB8fCBwYWdlLmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkgewogICAgICAgICBQ
Q0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDE1ZjFjZDg3YTgzYjc4NmZl
MDUyNTYwMDMwOWU1NDkzNDRjNzBhMTEuLjU5N2VlNTM1ZTk3Nzc1M2NlN2Q2YzMxYTZlOTY3OGU0
ODhhZWRiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTMxNyw4ICsxMzE3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29u
c3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudFQKICAgICB9CiAKICAgICAv
LyBMb2cgdGhhdCB3ZSBzdGFydGVkIGxvYWRpbmcgYSBtZWRpYSBlbGVtZW50LgotICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJh
bWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFLZXkoKSwgaXNWaWRlbygpID8gRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjp2aWRlb0tleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphdWRp
b0tleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmxvYWRpbmdLZXkoKSwgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCksIGlzVmlk
ZW8oKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6YXVkaW9LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpsb2FkaW5nS2V5KCks
IFNob3VsZFNhbXBsZTo6Tm8pOwogCiAgICAgbV9maXJzdFRpbWVQbGF5aW5nID0gdHJ1ZTsKIApA
QCAtMTk4Nyw3ICsxOTg2LDcgQEAgc3RhdGljIHZvaWQgbG9nTWVkaWFMb2FkUmVxdWVzdChQYWdl
KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lZGlhRW5naW5lLCBjb25zdCBTdHIKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCk7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50ID0gcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBpZiAoIXN1Y2Nl
ZWRlZCkgewogICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRpbmdGYWlsZWRL
ZXkoKSwgZXJyb3JNZXNzYWdlLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNh
bXBsZTo6Tm8pOwogICAgICAgICByZXR1cm47CkBAIC00ODQ1LDggKzQ4NDQsOCBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZSgpCiAKICAgICAgICAgICAgIGlmIChtX2Zp
cnN0VGltZVBsYXlpbmcpIHsKICAgICAgICAgICAgICAgICAvLyBMb2cgdGhhdCBhIG1lZGlhIGVs
ZW1lbnQgd2FzIHBsYXllZC4KLSAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+bWFpbkZyYW1lKCku
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCksIGlzVmlkZW8oKSA/IERpYWdub3N0aWNM
b2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXVkaW9LZXko
KSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbGF5ZWRLZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKKyAg
ICAgICAgICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCks
IGlzVmlkZW8oKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0
aWNMb2dnaW5nS2V5czo6YXVkaW9LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbGF5ZWRL
ZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgICAgICAgICAgbV9maXJzdFRpbWVQbGF5
aW5nID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAKQEAgLTYyOTYsOCArNjI5NSw4IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAog
ICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxheWVyLT5lbmdp
bmVEZXNjcmlwdGlvbigpLCBTdHJpbmc6Om51bWJlcihtX3BsYXllci0+cGxhdGZvcm1FcnJvckNv
ZGUoKSksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjplbmdpbmVGYWls
ZWRUb0xvYWRLZXkoKSwgbV9wbGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCksIFN0cmluZzo6bnVt
YmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSwgU2hvdWxkU2FtcGxlOjpObyk7CiB9
CiAKIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNr
UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYTkyODlk
ZmNjNzdjYzE2NzJkODNhMTQzM2I2MTllYWFhNmJhNDI3YS4uMGQ3MGJkMGE2OTk0MGIyNGQ5YWQ0
M2IwOGMwOTU1OGJkNmYyODE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtNjQxLDcgKzY0MSw3IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgZmlu
YWwgOiBwdWJsaWMgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgewogICAgIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIERpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSBvdmVycmlkZSB7IH0KICAgICB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkgb3ZlcnJpZGUgeyB9CiAKLSAgICB2
b2lkIG1haW5GcmFtZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgcGFnZURlc3Ry
b3llZCgpIG92ZXJyaWRlIHsgfQogfTsKIAogdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdl
Q29uZmlndXJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
MWNlMzQ0YzYzZDE1ZTBmOTA5NzI1Y2Y3MWFlM2I5NThiYzJlZjhlOC4uNmMzM2QyZjAyMmYxZmJi
MTk4NzQyNTgwOTUzY2Y0MzE4N2FlY2ViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0xMzY1LDYgKzEzNjUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3Vt
ZW50TG9hZGVyKiBuZXdEb2N1bWVudExvYWRlcikKIAogc3RhdGljIHZvaWQgbG9nTmF2aWdhdGlv
bihNYWluRnJhbWUmIGZyYW1lLCBGcmFtZUxvYWRUeXBlIHR5cGUpCiB7CisgICAgaWYgKCFmcmFt
ZS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBuYXZpZ2F0aW9uRGVzY3Jp
cHRpb247CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpTdGFu
ZGFyZDoKQEAgLTEzOTMsNyArMTM5Niw3IEBAIHN0YXRpYyB2b2lkIGxvZ05hdmlnYXRpb24oTWFp
bkZyYW1lJiBmcmFtZSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogICAgICAgICAvLyBOb3QgbG9nZ2lu
ZyB0aG9zZSBmb3Igbm93LgogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGZyYW1lLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpuYXZpZ2F0aW9uS2V5KCksIG5hdmlnYXRpb25EZXNjcmlwdGlvbiwgU2hvdWxkU2Ft
cGxlOjpObyk7CisgICAgZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bmF2aWdhdGlvbktleSgp
LCBuYXZpZ2F0aW9uRGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCkK
QEAgLTIzMjUsNyArMjMyOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRl
Rm9yVGhpc0ZyYW1lKCkKICAgICAgICAgICAgIC8vIERvbid0IGFzc3VtZSAncGFnZScgaXMgc3Rp
bGwgYXZhaWxhYmxlIHRvIHVzZS4KICAgICAgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1l
KCkgJiYgbV9mcmFtZS5wYWdlKCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoJm1fZnJhbWUu
cGFnZSgpLT5tYWluRnJhbWUoKSA9PSAmbV9mcmFtZSk7Ci0gICAgICAgICAgICAgICAgbV9mcmFt
ZS5wYWdlKCktPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUxvYWRlZEtl
eSgpLCBlbXB0eVN0cmluZygpLCBlcnJvci5pc051bGwoKSA/IERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMp
OworICAgICAgICAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFnbm9z
dGljTG9nZ2luZ1Jlc3VsdFBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3Vs
ZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MzA0OSw3ICszMDUyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAgICBzZXRQb2xpY3lE
b2N1bWVudExvYWRlcihudWxscHRyKTsKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUo
dHlwZSkpIHsKLSAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1l
Lm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgICAgIGF1dG8mIGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gbV9mcmFtZS5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCk7CiAgICAgICAgIGlmIChoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5Q
YWdlQ2FjaGUoKSkgewogICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hl
S2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNM
b2dnaW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgbG9hZFBy
b3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCAwNDU2NTZhMjIxNWNmYTU2OWQxN2Y1OTgzOThhNDNkNTFmMjdl
NzZjLi42YzE3OGJjNWRlZmU1NzAzNzgwNTBiNjcwNGIwNDAxMjcyNjY0NzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVk
IGxvbmcgbG9uZykKIAogc3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXNwb25zZVNvdXJjZShGcmFt
ZSogZnJhbWUsIFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZSBzb3VyY2UpCiB7Ci0gICAgaWYgKCFm
cmFtZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBTdHJpbmcgc291cmNlS2V5OwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRpYyB2b2lk
IGxvZ1Jlc291cmNlUmVzcG9uc2VTb3VyY2UoRnJhbWUqIGZyYW1lLCBSZXNvdXJjZVJlc3BvbnNl
OjpTb3VyY2Ugc291CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZS0+bWFpbkZy
YW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVzcG9uc2VLZXkoKSwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzb3VyY2VLZXkoKSwgc291cmNlS2V5LCBTaG91bGRTYW1wbGU6Olll
cyk7CisgICAgZnJhbWUtPnBhZ2UoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXNw
b25zZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtleSgpLCBzb3VyY2VLZXks
IFNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCAzYjE2NDgyMDYwN2JkYTA3NTVhYjFmNGIyNTQzMGY1
MTU3ODkxMzlmLi5hMmE3NGNmZWU2NzhiNGQ0NDgwMTU1NjI4YzFlYTJiYWUyYTA2NzJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTIwOSw3ICsyMDksNyBA
QCBzdGF0aWMgdm9pZCBsb2dQbHVnaW5SZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdQogICAgIFN0cmluZyBwbHVnaW5GaWxlID0gcGFnZS0+
cGx1Z2luRGF0YSgpLnBsdWdpbkZpbGVGb3JXZWJWaXNpYmxlTWltZVR5cGUobmV3TUlNRVR5cGUp
OwogICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9ICFwbHVnaW5GaWxlID8gbmV3TUlNRVR5cGUgOiBw
bHVnaW5GaWxlOwogCi0gICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50ID0gcGFnZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsK
KyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBw
YWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwogICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKHN1Y2Nlc3MgPyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBsdWdpbkxvYWRlZEtleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbHVnaW5Mb2FkaW5n
RmFpbGVkS2V5KCksIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGU6Ok5vKTsKIAogICAgIGlmICgh
cGFnZS0+aGFzU2VlbkFueVBsdWdpbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggYWZmMjg2ZTAwOWE3MTQ2NmEwYThjMjc2YjJlZTU1MjdjNzlk
ZmNjMy4uNzhjMTQyYmE0MWJiYTA5NjkwMDJmZDVkNDA0NzNkYTdjMmU5MjU1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xODIsOCArMTgyLDgg
QEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0SW50ZXJuYWwoUmVzb3Vy
Y2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb24KICAgICAgICAgaWYgKG5ld1JlcXVlc3QuaXNDb25k
aXRpb25hbCgpICYmIG1fcmVzb3VyY2UtPnJlc291cmNlVG9SZXZhbGlkYXRlKCkgJiYgbmV3UmVx
dWVzdC51cmwoKSAhPSBtX3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpLT5yZXNwb25z
ZSgpLnVybCgpKSB7CiAgICAgICAgICAgICBuZXdSZXF1ZXN0Lm1ha2VVbmNvbmRpdGlvbmFsKCk7
CiAgICAgICAgICAgICBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmV2YWxpZGF0aW9uRmFpbGVk
KCptX3Jlc291cmNlKTsKLSAgICAgICAgICAgIGlmIChtX2ZyYW1lKQotICAgICAgICAgICAgICAg
IG1fZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVkUmVzb3Vy
Y2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1
bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7CisgICAgICAgICAgICBpZiAobV9mcmFtZSAmJiBt
X2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmNhY2hlZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3Ry
aW5nKCksIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKCFtX2RvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJj
ZUxvYWRlcigpLmNhblJlcXVlc3QobV9yZXNvdXJjZS0+dHlwZSgpLCBuZXdSZXF1ZXN0LnVybCgp
LCBvcHRpb25zKCksIGZhbHNlIC8qIGZvclByZWxvYWQgKi8sIHRydWUgLyogZGlkUmVjZWl2ZVJl
ZGlyZWN0UmVzcG9uc2UgKi8pKSB7CkBAIC0yNDYsMTYgKzI0NiwxNiBAQCB2b2lkIFN1YnJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiAgICAgICAgICAgICAvLyBFeGlzdGluZyByZXNvdXJjZSBpcyBvaywganVzdCB1c2Ug
aXQgdXBkYXRpbmcgdGhlIGV4cGlyYXRpb24gdGltZS4KICAgICAgICAgICAgIG1fcmVzb3VyY2Ut
PnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKICAgICAgICAgICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0
b24oKS5yZXZhbGlkYXRpb25TdWNjZWVkZWQoKm1fcmVzb3VyY2UsIHJlc3BvbnNlKTsKLSAgICAg
ICAgICAgIGlmIChtX2ZyYW1lKQotICAgICAgICAgICAgICAgIG1fZnJhbWUtPm1haW5GcmFtZSgp
LmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVkUmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwg
ZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLCBTaG91bGRTYW1wbGU6
Olllcyk7CisgICAgICAgICAgICBpZiAobV9mcmFtZSAmJiBtX2ZyYW1lLT5wYWdlKCkpCisgICAg
ICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhY2hl
ZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dn
aW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgaWYgKCFyZWFj
aGVkVGVybWluYWxTdGF0ZSgpKQogICAgICAgICAgICAgICAgIFJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIC8vIERpZCBub3QgZ2V0IDMwNCByZXNwb25zZSwgY29udGludWUgYXMgYSByZWd1
bGFyIHJlc291cmNlIGxvYWQuCiAgICAgICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZXZh
bGlkYXRpb25GYWlsZWQoKm1fcmVzb3VyY2UpOwotICAgICAgICBpZiAobV9mcmFtZSkKLSAgICAg
ICAgICAgIG1fZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVk
UmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7CisgICAgICAgIGlmIChtX2ZyYW1lICYm
IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpjYWNoZWRSZXNvdXJjZVJldmFsaWRhdGlvbktleSgpLCBlbXB0eVN0cmlu
ZygpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAg
ICB9CiAKICAgICBtX3Jlc291cmNlLT5yZXNwb25zZVJlY2VpdmVkKHJlc3BvbnNlKTsKQEAgLTMz
OCw3ICszMzgsNyBAQCBib29sIFN1YnJlc291cmNlTG9hZGVyOjpjaGVja0ZvckhUVFBTdGF0dXND
b2RlRXJyb3IoKQogCiBzdGF0aWMgdm9pZCBsb2dSZXNvdXJjZUxvYWRlZChGcmFtZSogZnJhbWUs
IENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBpZiAo
IWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcg
cmVzb3VyY2VUeXBlOwpAQCAtMzgyLDcgKzM4Miw3IEBAIHN0YXRpYyB2b2lkIGxvZ1Jlc291cmNl
TG9hZGVkKEZyYW1lKiBmcmFtZSwgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKICAgICAgICAg
cmVzb3VyY2VUeXBlID0gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpvdGhlcktleSgpOwogICAgICAg
ICBicmVhazsKICAgICB9Ci0gICAgZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpyZXNvdXJjZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmxvYWRlZEtleSgpLCBy
ZXNvdXJjZVR5cGUsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICBmcmFtZS0+cGFnZSgpLT5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjps
b2FkZWRLZXkoKSwgcmVzb3VyY2VUeXBlLCBTaG91bGRTYW1wbGU6Olllcyk7CiB9CiAKIGJvb2wg
U3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcHJldmlvdXNSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRl
eCA4ZWY4NTQ5NTc5YmQyNmI4NDI3ZGU1ODg2NDc4NjBlNDYwNGY2ZjBiLi5jMGE5OWEzZGU5Nzg5
NDVmZDY0OWRjMmQ2ZWE3OGRiNjc4NzEzMDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTUzOSwxMiArNTM5LDEy
IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNob3VsZENvbnRpbnVlQWZ0ZXJOb3RpZnlp
bmdMb2FkZWRGcm9tTWVtb3J5Q2FjaGUoY29uCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2dNZW1v
cnlDYWNoZVJlc291cmNlUmVxdWVzdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUgPSBTdHJpbmcoKSkKIHsKLSAgICBpZiAoIWZyYW1l
KQorICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCksIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGU6Olll
cyk7CisgICAgICAgIGZyYW1lLT5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9n
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlcXVlc3RL
ZXkoKSwgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICBlbHNlCi0gICAgICAg
IGZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0
S2V5KCksIGRlc2NyaXB0aW9uLCB2YWx1ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBm
cmFtZS0+cGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0S2V5KCks
IGRlc2NyaXB0aW9uLCB2YWx1ZSwgU2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCkBAIC03MTksOSArNzE5LDkgQEAgc3RhdGljIHZvaWQgbG9nUmV2YWxpZGF0aW9u
KGNvbnN0IFN0cmluZyYgcmVhc29uLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgbG9nQ2wKIAog
c3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXZhbGlkYXRpb25EZWNpc2lvbihDYWNoZWRSZXNvdXJj
ZTo6UmV2YWxpZGF0aW9uRGVjaXNpb24gcmVhc29uLCBjb25zdCBGcmFtZSogZnJhbWUpCiB7Ci0g
ICAgaWYgKCFmcmFtZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAg
ICByZXR1cm47Ci0gICAgYXV0byYgbG9nQ2xpZW50ID0gZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgYXV0byYgbG9nQ2xpZW50ID0gZnJhbWUtPnBhZ2Uo
KS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBzd2l0Y2ggKHJlYXNvbikgewogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJldmFsaWRhdGlvbkRlY2lzaW9uOjpObzoKICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgK
aW5kZXggNTAzNzkyMzUyNGJhYWEyYzE3NTc4MjZmMjhlYjc4MTgyOGQzNjdlYy4uOTZhMzI4ZmRm
MTQ5OWU3NDMyMmRlYTNlZmY0MTBmM2RlMDUxM2I2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIERpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgU2hvdWxkU2FtcGxlKSA9IDA7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lRGVzdHJveWVkKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBwYWdlRGVzdHJveWVkKCkgPSAwOwogCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQWZ0
ZXJTYW1wbGluZyhTaG91bGRTYW1wbGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5k
ZXggNTg0NjQ0ZmZjMGRkZjgxNTUzYTdiMWFlYzhkYjMyYWY5N2UyMmRjZC4uNmRmMjk2NTUzZTM4
YTViMWUzNTBhZmQzYjFlYjU1ZGVlYmU2NWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNw
cApAQCAtNTUsNyArNTUsNiBAQCBpbmxpbmUgTWFpbkZyYW1lOjpNYWluRnJhbWUoUGFnZSYgcGFn
ZSwgUGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKICAgICAsIG1fcmVj
ZW50V2hlZWxFdmVudERlbHRhRmlsdGVyKFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkp
CiAgICAgLCBtX3BhZ2VPdmVybGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVy
bGF5Q29udHJvbGxlcj4oKnRoaXMpKQotICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChj
b25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQogewogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL01haW5GcmFtZUluaXRpYWxp
emF0aW9uLmNwcD4KQEAgLTY0LDkgKzYzLDYgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1l
KFBhZ2UmIHBhZ2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiBNYWluRnJh
bWU6On5NYWluRnJhbWUoKQogewotICAgIGlmIChtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQot
ICAgICAgICBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5tYWluRnJhbWVEZXN0cm95ZWQoKTsK
LQogICAgIG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVyID0gbnVsbHB0cjsKICAgICBtX2V2
ZW50SGFuZGxlciA9IG51bGxwdHI7CiAKQEAgLTk4LDE1ICs5NCw2IEBAIHZvaWQgTWFpbkZyYW1l
OjpzZWxmT25seURlcmVmKCkKICAgICBkZXJlZigpOwogfQogCi1EaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCYgTWFpbkZyYW1lOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0Ci17Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IGR1bW15
Q2xpZW50OwotICAgIGlmICghc2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSB8
fCAhbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKLSAgICAgICAgcmV0dXJuIGR1bW15Q2xpZW50
OwotCi0gICAgcmV0dXJuICptX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwotfQotCiB2b2lkIE1h
aW5GcmFtZTo6ZHJvcENoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxkID0gdHJl
ZSgpLmZpcnN0Q2hpbGQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZy
YW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCmluZGV4IGM5ZmE1Mzk2Nzk3
M2U0MTBhZDhhZGYxYTEzYjRhOThmYTcyNGVkMzUuLjllOTVlYzk3NWJhYTVhOGE2YTMzZDU5OGU0
NmE4YzRiMmFkYTQyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaApAQCAtMzYsNyArMzYsNiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
OwogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXI7
CiBjbGFzcyBTY3JvbGxMYXRjaGluZ1N0YXRlOwpAQCAtNjcsOCArNjYsNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZW1vdmVMYXRjaGluZ1N0YXRlRm9yVGFyZ2V0KEVsZW1lbnQmKTsKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKLSAgICBXRUJDT1JFX0VYUE9SVCBEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdDsKLQogI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL01haW5GcmFtZU1lbWJlcnMu
aD4KICNlbmRpZgpAQCAtODksNyArODYsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdoZWVsRXZlbnREZWx0YUZpbHRlcj4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4gbV9wYWdlT3Zlcmxh
eUNvbnRyb2xsZXI7Ci0gICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIG1fZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQ7CiB9OwogCiBpbmxpbmUgYm9vbCBGcmFtZTo6aXNNYWluRnJhbWUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYmY5Y2MxMzI2YTcwMDY0OTg1ZTVjY2JmZDg3OTdjOTll
Mjk5YzllMC4uY2Q5N2YwMjNhZjJkYzI2NWNjNTZmM2E2YTg4OTM0ZWY3ZTAwYTE0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0zMSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNs
aWVudC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRh
dGFiYXNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3Iu
aCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJFbXB0eUNsaWVudHMuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCkBAIC0xODEsNiArMTgzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmln
dXJhdGlvbiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2VkaXRvckNsaWVudCgqcGFnZUNv
bmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KQogICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNvbmZp
Z3VyYXRpb24ucGx1Z0luQ2xpZW50KQogICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudChw
YWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkKKyAgICAsIG1fZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQocGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQpCiAgICAgLCBtX3N1YmZyYW1lQ291bnQoMCkKICAgICAsIG1fb3BlbmVkQnlET00oZmFsc2Up
CiAgICAgLCBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKQpAQCAtMjgwLDYgKzI4
Myw4IEBAIFBhZ2U6On5QYWdlKCkKICAgICAgICAgZnJhbWUtPmRldGFjaEZyb21QYWdlKCk7CiAg
ICAgfQogCisgICAgaWYgKG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIG1fZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKICAgICBtX2VkaXRvckNsaWVu
dC5wYWdlRGVzdHJveWVkKCk7CiAgICAgaWYgKG1fcGx1Z0luQ2xpZW50KQogICAgICAgICBtX3Bs
dWdJbkNsaWVudC0+cGFnZURlc3Ryb3llZCgpOwpAQCAtNzYwLDYgKzc2NSwxNSBAQCB2b2lkIFBh
Z2U6OnNldEluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGUoYm9vbCBtb2RlKQogICAg
IG1faW5Mb3dRdWFsaXR5SW50ZXJwb2xhdGlvbk1vZGUgPSBtb2RlOwogfQogCitEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgUGFnZTo6ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdAorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBk
dW1teUNsaWVudDsKKyAgICBpZiAoIXNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVk
KCkgfHwgIW1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybiBkdW1teUNs
aWVudDsKKworICAgIHJldHVybiAqbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK30KKwogdm9p
ZCBQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiB7CiAgICAgaWYgKHZvbHVtZSA8
IDAgfHwgdm9sdW1lID4gMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTgzMTgzNTQwZjcwNGI3NjNhZDUw
YWFlNTY0Njk4ZmMyNThkMzU2NS4uNTQzYjZiMzY2ZjdhMjg2OWZhZDViNGM4ZTczMWJiZDNmMzRh
M2I5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg0LDYgKzg0LDcgQEAgY2xhc3MgQ29sb3I7CiBjbGFz
cyBDb250ZXh0TWVudUNsaWVudDsKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlcjsKIGNsYXNz
IERhdGFiYXNlUHJvdmlkZXI7CitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKIGNsYXNz
IERyYWdDYXJldENvbnRyb2xsZXI7CiBjbGFzcyBEcmFnQ2xpZW50OwogY2xhc3MgRHJhZ0NvbnRy
b2xsZXI7CkBAIC0zMjgsNiArMzI5LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdDsKKwogICAg
IC8vIE5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgUGFnZSBzdGFydHMgYW5kIHN0b3BzIGJlaW5nIHBy
ZXNlbnRlZCB2aWEgYSBuYXRpdmUgd2luZG93LgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3MpOwogICAgIHZvaWQgc2V0UGFnZUFjdGl2aXR5U3Rh
dGUoUGFnZUFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKQEAgLTU4NCw2ICs1ODcsNyBAQCBwcml2YXRl
OgogICAgIEVkaXRvckNsaWVudCYgbV9lZGl0b3JDbGllbnQ7CiAgICAgUGx1Z0luQ2xpZW50KiBt
X3BsdWdJbkNsaWVudDsKICAgICBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudCogbV92YWxpZGF0aW9u
TWVzc2FnZUNsaWVudDsKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCogbV9kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudDsKIAogICAgIGludCBtX3N1YmZyYW1lQ291bnQ7CiAgICAgU3RyaW5nIG1f
Z3JvdXBOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApp
bmRleCBmM2JiNGRiNzQyYWY2M2VjYjk0OWMxMWQzYWNhZDA3OWIwY2I5YTdkLi4wOWE5NTI5NDc2
YTdhODY2MDI1YmExYjg4MTZiZTRkZTQ2YWFlMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFdlYkRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Ojpsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJp
bmcmIG1lcwogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ1NhbXBs
ZWREaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShtZXNzYWdlLCBkZXNjcmlwdGlvbiwgdmFsdWUp
KTsKIH0KIAotdm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bWFpbkZyYW1lRGVzdHJv
eWVkKCkKK3ZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQog
ewogICAgIGRlbGV0ZSB0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oCmluZGV4IGU0ZGUxYTExOTYwMzA3MWI3OTk1ODBlNmE0YWUxZTAwMjIyN2FjYjYuLmIx
ODFlYWEwOGY1YWRjMDA5N2FiMzhlZDhjZDhhZDMzNjdlZTYzZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
UmVzdWx0VHlwZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKICAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlKSBvdmVycmlkZTsKIAotICAgIHZvaWQgbWFpbkZyYW1lRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlJiBt
X3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IDI5MGM5MDUyMDRkZjBkOTAwYTY0NTA0NjdlYTNjYWY1OWYx
MTg3OWUuLmZkZWI4MDZmNGU4ZjdjYzMwN2U3OGZiMWE4ZmY5NTMyMjMwNTI1ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
QEAgLTI5OTAsNyArMjk5MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRS
ZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpCiAKIHZvaWQgV2Vi
UGFnZTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKQogewotICAgIG1fcGFnZS0+bWFp
bkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OndlYlZpZXdLZXkoKSwgRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp1c2VyS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6em9vbWVkS2V5KCks
IFNob3VsZFNhbXBsZTo6Tm8pOworICAgIG1fcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQo
KS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Ondl
YlZpZXdLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1c2VyS2V5KCksIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6em9vbWVkS2V5KCksIFNob3VsZFNhbXBsZTo6Tm8pOwogICAgIG1fdXNlckhh
c0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IgPSB0cnVlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277124</attachid>
            <date>2016-04-22 18:23:03 -0700</date>
            <delta_ts>2016-04-23 13:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156938-20160422182329.patch</filename>
            <type>text/plain</type>
            <size>28310</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM2Nzk5YTBiYTY5MTgz
ZGNhYWMyZTUyM2JmNjJhZDZlMGNlYTE5NS4uNmUyMGE4ZWI3Nzc3NDI1OWE4NTcxZjVmNTY4MjMz
NzdjMTU2OTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE2LTA0LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRoZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRpZSB0aGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQncyBsaWZldGltZSB0byB0aGUg
UGFnZSByYXRoZXIgdGhhbiB0byB0aGUKKyAgICAgICAgTWFpbkZyYW1lLiBUaGUgZGlhZ25vc3Rp
YyBsb2dnaW5nIGNsaWVudCBpbiBXZWJLaXQyIHJlcXVpcmVzIHRoZSBXZWJQYWdlCisgICAgICAg
IHRvIGJlIGFsaXZlIGluIG9yZGVyIHRvIHNlbmQgSVBDIHRvIHRoZSBVSVByb2Nlc3MuIFRoZSBX
ZWJQYWdlIG93bnMgdGhlCisgICAgICAgIFBhZ2UgYW5kIFBhZ2UgaXMgbm90IHJlZkNvdW50ZWQg
c28gdGhlIGxpZmV0aW1lIG9mIHRoZQorICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBz
aG91bGQgbm93IGJlIHRpZWQgdG8gdGhlIG9uZSBvZiB0aGUgV2ViUGFnZSBhcworICAgICAgICB3
ZWxsLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB3
b3VsZCBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgdGhlCisgICAgICAgIE1haW5GcmFtZSBhbmQgY291
bGQgYXBwYXJlbnRseSBpbiByYXJlIGNhc2VzIG91dGxpdmUgdGhlIFdlYlBhZ2UsIHRodXMKKyAg
ICAgICAgY3Jhc2hpbmcgd2hlbiB0cnlpbmcgdG8gc2VuZCB0aGUgSVBDLgorCisgICAgICAgICog
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUGFnZUNhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dN
ZWRpYUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2dOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUmVzb3VyY2VSZXNwb25zZVNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1BsdWdpblJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dSZXNvdXJjZUxvYWRlZCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1Jlc291cmNlUmV2YWxpZGF0aW9uRGVjaXNpb24pOgorICAgICAgICAqIHBhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6Ok1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNYWluRnJhbWU6On5NYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWFpbkZyYW1lOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9NYWluRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMTYtMDQtMjIgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gVW5yZXZpZXdlZCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggY2M2MmYwMjg3YjRiMTRkNWIxNjBiZWFhYzYxZjMwMmYwM2ZiZTFmNC4uNWRi
ZjZhOGQ4NzEyYzMzNzU2NjZlNTY5MTkxN2Y4YWMzYjA5ZjA4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDE2LTA0LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRo
ZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Om1haW5GcmFtZURlc3Ryb3llZCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpv
b21pbmcpOgorCiAyMDE2LTA0LTIyICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeGluZyBhIHR5cG8gaW4gbXkgbGFzdCBjb21taXQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggNWZlMzFiNTcyNjk2N2MwYzAxNTRhODhkNmNjNjI2
NzdjMjFiYTVjMi4uZWFiMjQ5Nzg5MGQ4MjdjNGVjZTExYTg1YmQ1MTlhYjc5Y2M2YjdmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKFBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPm1haW5GcmFtZSgpLmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNvbik7CisgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNv
bik7CiB9CiAKIHN0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJhbWUmIGZyYW1lLCBEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIHVuc2lnbmVkIGluZGVu
dExldmVsKQpAQCAtMTkwLDEwICsxOTAsOSBAQCBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2UoUGFn
ZSYgcGFnZSkKIHsKICAgICB1bnNpZ25lZCBpbmRlbnRMZXZlbCA9IDA7CiAgICAgUENMT0coIi0t
LS0tLS0tXG4gRGV0ZXJtaW5pbmcgaWYgcGFnZSBjYW4gYmUgY2FjaGVkOiIpOwotICAgIAotICAg
IE1haW5GcmFtZSYgbWFpbkZyYW1lID0gcGFnZS5tYWluRnJhbWUoKTsKLSAgICBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWluRnJhbWUuZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKTsKLSAgICBib29sIGlzQ2FjaGVhYmxlID0gY2FuQ2FjaGVGcmFt
ZShtYWluRnJhbWUsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpOwor
CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0g
cGFnZS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGJvb2wgaXNDYWNoZWFibGUgPSBj
YW5DYWNoZUZyYW1lKHBhZ2UubWFpbkZyYW1lKCksIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBp
bmRlbnRMZXZlbCArIDEpOwogICAgIAogICAgIGlmICghcGFnZS5zZXR0aW5ncygpLnVzZXNQYWdl
Q2FjaGUoKSB8fCBwYWdlLmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWQoKSkgewogICAgICAgICBQ
Q0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDE1ZjFjZDg3YTgzYjc4NmZl
MDUyNTYwMDMwOWU1NDkzNDRjNzBhMTEuLjU5N2VlNTM1ZTk3Nzc1M2NlN2Q2YzMxYTZlOTY3OGU0
ODhhZWRiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAt
MTMxNyw4ICsxMzE3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29u
c3QgVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudFQKICAgICB9CiAKICAgICAv
LyBMb2cgdGhhdCB3ZSBzdGFydGVkIGxvYWRpbmcgYSBtZWRpYSBlbGVtZW50LgotICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJh
bWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZh
bHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFLZXkoKSwgaXNWaWRlbygpID8gRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjp2aWRlb0tleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphdWRp
b0tleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmxvYWRpbmdLZXkoKSwgU2hvdWxkU2FtcGxl
OjpObyk7CisgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCksIGlzVmlk
ZW8oKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0aWNMb2dn
aW5nS2V5czo6YXVkaW9LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpsb2FkaW5nS2V5KCks
IFNob3VsZFNhbXBsZTo6Tm8pOwogCiAgICAgbV9maXJzdFRpbWVQbGF5aW5nID0gdHJ1ZTsKIApA
QCAtMTk4Nyw3ICsxOTg2LDcgQEAgc3RhdGljIHZvaWQgbG9nTWVkaWFMb2FkUmVxdWVzdChQYWdl
KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lZGlhRW5naW5lLCBjb25zdCBTdHIKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCk7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50ID0gcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBpZiAoIXN1Y2Nl
ZWRlZCkgewogICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjptZWRpYUxvYWRpbmdGYWlsZWRL
ZXkoKSwgZXJyb3JNZXNzYWdlLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNh
bXBsZTo6Tm8pOwogICAgICAgICByZXR1cm47CkBAIC00ODQ1LDggKzQ4NDQsOCBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXlTdGF0ZSgpCiAKICAgICAgICAgICAgIGlmIChtX2Zp
cnN0VGltZVBsYXlpbmcpIHsKICAgICAgICAgICAgICAgICAvLyBMb2cgdGhhdCBhIG1lZGlhIGVs
ZW1lbnQgd2FzIHBsYXllZC4KLSAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9j
dW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+bWFpbkZyYW1lKCku
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShE
aWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCksIGlzVmlkZW8oKSA/IERpYWdub3N0aWNM
b2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXVkaW9LZXko
KSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbGF5ZWRLZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7
CisgICAgICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKKyAg
ICAgICAgICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhS2V5KCks
IGlzVmlkZW8oKSA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6dmlkZW9LZXkoKSA6IERpYWdub3N0
aWNMb2dnaW5nS2V5czo6YXVkaW9LZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwbGF5ZWRL
ZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgICAgICAgICAgbV9maXJzdFRpbWVQbGF5
aW5nID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAKQEAgLTYyOTYsOCArNjI5NSw4IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAog
ICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChGcmFtZSogZnJh
bWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6ZW5naW5lRmFpbGVkVG9Mb2FkS2V5KCksIG1fcGxheWVyLT5lbmdp
bmVEZXNjcmlwdGlvbigpLCBTdHJpbmc6Om51bWJlcihtX3BsYXllci0+cGxhdGZvcm1FcnJvckNv
ZGUoKSksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQo
KS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjplbmdpbmVGYWls
ZWRUb0xvYWRLZXkoKSwgbV9wbGF5ZXItPmVuZ2luZURlc2NyaXB0aW9uKCksIFN0cmluZzo6bnVt
YmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSwgU2hvdWxkU2FtcGxlOjpObyk7CiB9
CiAKIGRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNr
UmF0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYTkyODlk
ZmNjNzdjYzE2NzJkODNhMTQzM2I2MTllYWFhNmJhNDI3YS4uMGQ3MGJkMGE2OTk0MGIyNGQ5YWQ0
M2IwOGMwOTU1OGJkNmYyODE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtNjQxLDcgKzY0MSw3IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgZmlu
YWwgOiBwdWJsaWMgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgewogICAgIHZvaWQgbG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIERpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgU2hvdWxkU2FtcGxlKSBvdmVycmlkZSB7IH0KICAgICB2
b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIFNob3VsZFNhbXBsZSkgb3ZlcnJpZGUgeyB9CiAKLSAgICB2
b2lkIG1haW5GcmFtZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgcGFnZURlc3Ry
b3llZCgpIG92ZXJyaWRlIHsgfQogfTsKIAogdm9pZCBmaWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdl
Q29uZmlndXJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
MWNlMzQ0YzYzZDE1ZTBmOTA5NzI1Y2Y3MWFlM2I5NThiYzJlZjhlOC4uNmMzM2QyZjAyMmYxZmJi
MTk4NzQyNTgwOTUzY2Y0MzE4N2FlY2ViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0xMzY1LDYgKzEzNjUsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3Vt
ZW50TG9hZGVyKiBuZXdEb2N1bWVudExvYWRlcikKIAogc3RhdGljIHZvaWQgbG9nTmF2aWdhdGlv
bihNYWluRnJhbWUmIGZyYW1lLCBGcmFtZUxvYWRUeXBlIHR5cGUpCiB7CisgICAgaWYgKCFmcmFt
ZS5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBuYXZpZ2F0aW9uRGVzY3Jp
cHRpb247CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpTdGFu
ZGFyZDoKQEAgLTEzOTMsNyArMTM5Niw3IEBAIHN0YXRpYyB2b2lkIGxvZ05hdmlnYXRpb24oTWFp
bkZyYW1lJiBmcmFtZSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogICAgICAgICAvLyBOb3QgbG9nZ2lu
ZyB0aG9zZSBmb3Igbm93LgogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGZyYW1lLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpuYXZpZ2F0aW9uS2V5KCksIG5hdmlnYXRpb25EZXNjcmlwdGlvbiwgU2hvdWxkU2Ft
cGxlOjpObyk7CisgICAgZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bmF2aWdhdGlvbktleSgp
LCBuYXZpZ2F0aW9uRGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyOjpsb2FkV2l0aERvY3VtZW50TG9hZGVyKERvY3VtZW50TG9hZGVyKiBsb2FkZXIs
IEZyYW1lTG9hZFR5cGUgdHlwZSwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+IHBycEZvcm1TdGF0ZSwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCkK
QEAgLTIzMjUsNyArMjMyOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRl
Rm9yVGhpc0ZyYW1lKCkKICAgICAgICAgICAgIC8vIERvbid0IGFzc3VtZSAncGFnZScgaXMgc3Rp
bGwgYXZhaWxhYmxlIHRvIHVzZS4KICAgICAgICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1l
KCkgJiYgbV9mcmFtZS5wYWdlKCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoJm1fZnJhbWUu
cGFnZSgpLT5tYWluRnJhbWUoKSA9PSAmbV9mcmFtZSk7Ci0gICAgICAgICAgICAgICAgbV9mcmFt
ZS5wYWdlKCktPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUxvYWRlZEtl
eSgpLCBlbXB0eVN0cmluZygpLCBlcnJvci5pc051bGwoKSA/IERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMp
OworICAgICAgICAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnBhZ2VMb2FkZWRLZXkoKSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFnbm9z
dGljTG9nZ2luZ1Jlc3VsdFBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3Vs
ZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MzA0OSw3ICszMDUyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKICAgICBzZXRQb2xpY3lE
b2N1bWVudExvYWRlcihudWxscHRyKTsKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUo
dHlwZSkpIHsKLSAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1l
Lm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgICAgIGF1dG8mIGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gbV9mcmFtZS5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KCk7CiAgICAgICAgIGlmIChoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5Q
YWdlQ2FjaGUoKSkgewogICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hl
S2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNM
b2dnaW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAgICAgICAgICAgbG9hZFBy
b3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCAwNDU2NTZhMjIxNWNmYTU2OWQxN2Y1OTgzOThhNDNkNTFmMjdl
NzZjLi5jNmRhZWIzOGJlMjM0NWQzZjUxMGYyODFhODY0Mjk3MjYzM2MwMGI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVk
IGxvbmcgbG9uZykKIAogc3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXNwb25zZVNvdXJjZShGcmFt
ZSogZnJhbWUsIFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZSBzb3VyY2UpCiB7Ci0gICAgaWYgKCFm
cmFtZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBTdHJpbmcgc291cmNlS2V5OwpAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRpYyB2b2lk
IGxvZ1Jlc291cmNlUmVzcG9uc2VTb3VyY2UoRnJhbWUqIGZyYW1lLCBSZXNvdXJjZVJlc3BvbnNl
OjpTb3VyY2Ugc291CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmcmFtZS0+bWFpbkZy
YW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhW
YWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVzcG9uc2VLZXkoKSwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzb3VyY2VLZXkoKSwgc291cmNlS2V5LCBTaG91bGRTYW1wbGU6Olll
cyk7CisgICAgZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVz
cG9uc2VLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzb3VyY2VLZXkoKSwgc291cmNlS2V5
LCBTaG91bGRTYW1wbGU6Olllcyk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggM2IxNjQ4MjA2MDdiZGEwNzU1YWIxZjRiMjU0MzBm
NTE1Nzg5MTM5Zi4uYTJhNzRjZmVlNjc4YjRkNDQ4MDE1NTYyOGMxZWEyYmFlMmEwNjcyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0yMDksNyArMjA5LDcg
QEAgc3RhdGljIHZvaWQgbG9nUGx1Z2luUmVxdWVzdChQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHUKICAgICBTdHJpbmcgcGx1Z2luRmlsZSA9IHBhZ2Ut
PnBsdWdpbkRhdGEoKS5wbHVnaW5GaWxlRm9yV2ViVmlzaWJsZU1pbWVUeXBlKG5ld01JTUVUeXBl
KTsKICAgICBTdHJpbmcgZGVzY3JpcHRpb24gPSAhcGx1Z2luRmlsZSA/IG5ld01JTUVUeXBlIDog
cGx1Z2luRmlsZTsKIAotICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7
CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0g
cGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKICAgICBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShzdWNjZXNzID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpwbHVnaW5Mb2FkZWRLZXkoKSA6IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGx1Z2luTG9hZGlu
Z0ZhaWxlZEtleSgpLCBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlOjpObyk7CiAKICAgICBpZiAo
IXBhZ2UtPmhhc1NlZW5BbnlQbHVnaW4oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IGFmZjI4NmUwMDlhNzE0NjZhMGE4YzI3NmIyZWU1NTI3Yzc5
ZGZjYzMuLjc4YzE0MmJhNDFiYmEwOTY5MDAyZmQ1ZDQwNDczZGE3YzJlOTI1NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtMTgyLDggKzE4Miw4
IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVybmFsKFJlc291
cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uCiAgICAgICAgIGlmIChuZXdSZXF1ZXN0LmlzQ29u
ZGl0aW9uYWwoKSAmJiBtX3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpICYmIG5ld1Jl
cXVlc3QudXJsKCkgIT0gbV9yZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKS0+cmVzcG9u
c2UoKS51cmwoKSkgewogICAgICAgICAgICAgbmV3UmVxdWVzdC5tYWtlVW5jb25kaXRpb25hbCgp
OwogICAgICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJldmFsaWRhdGlvbkZhaWxl
ZCgqbV9yZXNvdXJjZSk7Ci0gICAgICAgICAgICBpZiAobV9mcmFtZSkKLSAgICAgICAgICAgICAg
ICBtX2ZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhY2hlZFJlc291
cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICAgICAgaWYgKG1fZnJhbWUgJiYg
bV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+ZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpjYWNoZWRSZXNvdXJjZVJldmFsaWRhdGlvbktleSgpLCBlbXB0eVN0
cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmICghbV9kb2N1bWVudExvYWRlci0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS5jYW5SZXF1ZXN0KG1fcmVzb3VyY2UtPnR5cGUoKSwgbmV3UmVxdWVzdC51cmwo
KSwgb3B0aW9ucygpLCBmYWxzZSAvKiBmb3JQcmVsb2FkICovLCB0cnVlIC8qIGRpZFJlY2VpdmVS
ZWRpcmVjdFJlc3BvbnNlICovKSkgewpAQCAtMjQ2LDE2ICsyNDYsMTYgQEAgdm9pZCBTdWJyZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogICAgICAgICAgICAgLy8gRXhpc3RpbmcgcmVzb3VyY2UgaXMgb2ssIGp1c3QgdXNl
IGl0IHVwZGF0aW5nIHRoZSBleHBpcmF0aW9uIHRpbWUuCiAgICAgICAgICAgICBtX3Jlc291cmNl
LT5zZXRSZXNwb25zZShyZXNwb25zZSk7CiAgICAgICAgICAgICBNZW1vcnlDYWNoZTo6c2luZ2xl
dG9uKCkucmV2YWxpZGF0aW9uU3VjY2VlZGVkKCptX3Jlc291cmNlLCByZXNwb25zZSk7Ci0gICAg
ICAgICAgICBpZiAobV9mcmFtZSkKLSAgICAgICAgICAgICAgICBtX2ZyYW1lLT5tYWluRnJhbWUo
KS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhY2hlZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCks
IGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxl
OjpZZXMpOworICAgICAgICAgICAgaWYgKG1fZnJhbWUgJiYgbV9mcmFtZS0+cGFnZSgpKQorICAg
ICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5s
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYWNo
ZWRSZXNvdXJjZVJldmFsaWRhdGlvbktleSgpLCBlbXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIGlmICghcmVh
Y2hlZFRlcm1pbmFsU3RhdGUoKSkKICAgICAgICAgICAgICAgICBSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICAvLyBEaWQgbm90IGdldCAzMDQgcmVzcG9uc2UsIGNvbnRpbnVlIGFzIGEgcmVn
dWxhciByZXNvdXJjZSBsb2FkLgogICAgICAgICBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmV2
YWxpZGF0aW9uRmFpbGVkKCptX3Jlc291cmNlKTsKLSAgICAgICAgaWYgKG1fZnJhbWUpCi0gICAg
ICAgICAgICBtX2ZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhY2hl
ZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3RyaW5nKCksIERpYWdub3N0aWNMb2dn
aW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBpZiAobV9mcmFtZSAm
JiBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0
aWNMb2dnaW5nS2V5czo6Y2FjaGVkUmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJp
bmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7CiAg
ICAgfQogCiAgICAgbV9yZXNvdXJjZS0+cmVzcG9uc2VSZWNlaXZlZChyZXNwb25zZSk7CkBAIC0z
MzgsNyArMzM4LDcgQEAgYm9vbCBTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JIVFRQU3RhdHVz
Q29kZUVycm9yKCkKIAogc3RhdGljIHZvaWQgbG9nUmVzb3VyY2VMb2FkZWQoRnJhbWUqIGZyYW1l
LCBDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQogewotICAgIGlmICghZnJhbWUpCisgICAgaWYg
KCFmcmFtZSB8fCAhZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5n
IHJlc291cmNlVHlwZTsKQEAgLTM4Miw3ICszODIsNyBAQCBzdGF0aWMgdm9pZCBsb2dSZXNvdXJj
ZUxvYWRlZChGcmFtZSogZnJhbWUsIENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiAgICAgICAg
IHJlc291cmNlVHlwZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6b3RoZXJLZXkoKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQotICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6cmVzb3VyY2VLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpsb2FkZWRLZXkoKSwg
cmVzb3VyY2VUeXBlLCBTaG91bGRTYW1wbGU6Olllcyk7CisgICAgZnJhbWUtPnBhZ2UoKS0+ZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
bG9hZGVkS2V5KCksIHJlc291cmNlVHlwZSwgU2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiBib29s
IFN1YnJlc291cmNlTG9hZGVyOjpjaGVja0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHByZXZpb3VzUmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSwgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggOGVmODU0OTU3OWJkMjZiODQyN2RlNTg4NjQ3ODYwZTQ2MDRmNmYwYi4uYzBhOTlhM2RlOTc4
OTQ1ZmQ2NDlkYzJkNmVhNzhkYjY3ODcxMzAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC01MzksMTIgKzUzOSwx
MiBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGRDb250aW51ZUFmdGVyTm90aWZ5
aW5nTG9hZGVkRnJvbU1lbW9yeUNhY2hlKGNvbgogCiBzdGF0aWMgaW5saW5lIHZvaWQgbG9nTWVt
b3J5Q2FjaGVSZXNvdXJjZVJlcXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCBjb25zdCBTdHJpbmcmIHZhbHVlID0gU3RyaW5nKCkpCiB7Ci0gICAgaWYgKCFmcmFt
ZSkKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKHZhbHVlLmlzTnVsbCgpKQotICAgICAgICBmcmFtZS0+bWFpbkZyYW1lKCkuZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnJlc291cmNlUmVxdWVzdEtleSgpLCBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlOjpZ
ZXMpOworICAgICAgICBmcmFtZS0+cGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVzb3VyY2VSZXF1ZXN0
S2V5KCksIGRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGU6Olllcyk7CiAgICAgZWxzZQotICAgICAg
ICBmcmFtZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVxdWVz
dEtleSgpLCBkZXNjcmlwdGlvbiwgdmFsdWUsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAgICAg
ZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVxdWVzdEtleSgp
LCBkZXNjcmlwdGlvbiwgdmFsdWUsIFNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQpAQCAtNzE5LDkgKzcxOSw5IEBAIHN0YXRpYyB2b2lkIGxvZ1JldmFsaWRhdGlv
bihjb25zdCBTdHJpbmcmIHJlYXNvbiwgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGxvZ0NsCiAK
IHN0YXRpYyB2b2lkIGxvZ1Jlc291cmNlUmV2YWxpZGF0aW9uRGVjaXNpb24oQ2FjaGVkUmVzb3Vy
Y2U6OlJldmFsaWRhdGlvbkRlY2lzaW9uIHJlYXNvbiwgY29uc3QgRnJhbWUqIGZyYW1lKQogewot
ICAgIGlmICghZnJhbWUpCisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBhZ2UoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGF1dG8mIGxvZ0NsaWVudCA9IGZyYW1lLT5tYWluRnJhbWUoKS5kaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgIGF1dG8mIGxvZ0NsaWVudCA9IGZyYW1lLT5wYWdl
KCktPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CiAgICAgc3dpdGNoIChyZWFzb24pIHsKICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpSZXZhbGlkYXRpb25EZWNpc2lvbjo6Tm86CiAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
CmluZGV4IDUwMzc5MjM1MjRiYWFhMmMxNzU3ODI2ZjI4ZWI3ODE4MjhkMzY3ZWMuLjk2YTMyOGZk
ZjE0OTllNzQzMjJkZWEzZWZmNDEwZjNkZTA1MTNiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUsIFNob3VsZFNhbXBsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFn
bm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIFNob3VsZFNhbXBsZSkgPSAwOwog
Ci0gICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZURlc3Ryb3llZCgpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Fm
dGVyU2FtcGxpbmcoU2hvdWxkU2FtcGxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NYWluRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCmlu
ZGV4IDU4NDY0NGZmYzBkZGY4MTU1M2E3YjFhZWM4ZGIzMmFmOTdlMjJkY2QuLjZkZjI5NjU1M2Uz
OGE1YjFlMzUwYWZkM2IxZWI1NWRlZWJlNjVlZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTWFpbkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5j
cHAKQEAgLTU1LDcgKzU1LDYgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBh
Z2UsIFBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogI2VuZGlmCiAgICAgLCBtX3Jl
Y2VudFdoZWVsRXZlbnREZWx0YUZpbHRlcihXaGVlbEV2ZW50RGVsdGFGaWx0ZXI6OmNyZWF0ZSgp
KQogICAgICwgbV9wYWdlT3ZlcmxheUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxQYWdlT3Zl
cmxheUNvbnRyb2xsZXI+KCp0aGlzKSkKLSAgICAsIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQo
Y29uZmlndXJhdGlvbi5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkKIHsKICNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9NYWluRnJhbWVJbml0aWFs
aXphdGlvbi5jcHA+CkBAIC02NCw5ICs2Myw2IEBAIGlubGluZSBNYWluRnJhbWU6Ok1haW5GcmFt
ZShQYWdlJiBwYWdlLCBQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIAogTWFpbkZy
YW1lOjp+TWFpbkZyYW1lKCkKIHsKLSAgICBpZiAobV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkK
LSAgICAgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudC0+bWFpbkZyYW1lRGVzdHJveWVkKCk7
Ci0KICAgICBtX3JlY2VudFdoZWVsRXZlbnREZWx0YUZpbHRlciA9IG51bGxwdHI7CiAgICAgbV9l
dmVudEhhbmRsZXIgPSBudWxscHRyOwogCkBAIC05OCwxNSArOTQsNiBAQCB2b2lkIE1haW5GcmFt
ZTo6c2VsZk9ubHlEZXJlZigpCiAgICAgZGVyZWYoKTsKIH0KIAotRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQmIE1haW5GcmFtZTo6ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdAotewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBkdW1t
eUNsaWVudDsKLSAgICBpZiAoIXNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKCkg
fHwgIW1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCi0gICAgICAgIHJldHVybiBkdW1teUNsaWVu
dDsKLQotICAgIHJldHVybiAqbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKLX0KLQogdm9pZCBN
YWluRnJhbWU6OmRyb3BDaGlsZHJlbigpCiB7CiAgICAgd2hpbGUgKEZyYW1lKiBjaGlsZCA9IHRy
ZWUoKS5maXJzdENoaWxkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5G
cmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaAppbmRleCBjOWZhNTM5Njc5
NzNlNDEwYWQ4YWRmMWExM2I0YTk4ZmE3MjRlZDM1Li45ZTk1ZWM5NzViYWE1YThhNmEzM2Q1OThl
NDZhOGM0YjJhZGE0MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFt
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKQEAgLTM2LDcgKzM2LDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVy
OwogY2xhc3MgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTsKQEAgLTY3LDggKzY2LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlTGF0Y2hpbmdTdGF0ZUZvclRhcmdldChFbGVtZW50Jik7CiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQogCi0gICAgV0VCQ09SRV9FWFBPUlQgRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgY29uc3Q7Ci0KICNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9NYWluRnJhbWVNZW1iZXJz
Lmg+CiAjZW5kaWYKQEAgLTg5LDcgKzg2LDYgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXaGVlbEV2ZW50RGVsdGFGaWx0ZXI+IG1fcmVjZW50V2hlZWxFdmVudERlbHRhRmlsdGVy
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlT3ZlcmxheUNvbnRyb2xsZXI+IG1fcGFnZU92ZXJs
YXlDb250cm9sbGVyOwotICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBtX2RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50OwogfTsKIAogaW5saW5lIGJvb2wgRnJhbWU6OmlzTWFpbkZyYW1lKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGJmOWNjMTMyNmE3MDA2NDk4NWU1Y2NiZmQ4Nzk3Yzk5
ZTI5OWM5ZTAuLmNkOTdmMDIzYWYyZGMyNjVjYzU2ZjNhNmE4ODkzNGVmN2UwMGExNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMzEsMTEgKzMxLDEzIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVD
bGllbnQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
YXRhYmFzZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9y
LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgpAQCAtMTgxLDYgKzE4Myw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZp
Z3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV9lZGl0b3JDbGllbnQoKnBhZ2VD
b25maWd1cmF0aW9uLmVkaXRvckNsaWVudCkKICAgICAsIG1fcGx1Z0luQ2xpZW50KHBhZ2VDb25m
aWd1cmF0aW9uLnBsdWdJbkNsaWVudCkKICAgICAsIG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQo
cGFnZUNvbmZpZ3VyYXRpb24udmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQpCisgICAgLCBtX2RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KHBhZ2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KQogICAgICwgbV9zdWJmcmFtZUNvdW50KDApCiAgICAgLCBtX29wZW5lZEJ5RE9NKGZhbHNl
KQogICAgICwgbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHModHJ1ZSkKQEAgLTI4MCw2ICsy
ODMsOCBAQCBQYWdlOjp+UGFnZSgpCiAgICAgICAgIGZyYW1lLT5kZXRhY2hGcm9tUGFnZSgpOwog
ICAgIH0KIAorICAgIGlmIChtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQorICAgICAgICBtX2Rp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LT5wYWdlRGVzdHJveWVkKCk7CiAgICAgbV9lZGl0b3JDbGll
bnQucGFnZURlc3Ryb3llZCgpOwogICAgIGlmIChtX3BsdWdJbkNsaWVudCkKICAgICAgICAgbV9w
bHVnSW5DbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsKQEAgLTc2MCw2ICs3NjUsMTUgQEAgdm9pZCBQ
YWdlOjpzZXRJbkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRpb25Nb2RlKGJvb2wgbW9kZSkKICAg
ICBtX2luTG93UXVhbGl0eUludGVycG9sYXRpb25Nb2RlID0gbW9kZTsKIH0KIAorRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQmIFBhZ2U6OmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgY29uc3QKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4g
ZHVtbXlDbGllbnQ7CisgICAgaWYgKCFzZXR0aW5ncygpLmRpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZCgpIHx8ICFtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQorICAgICAgICByZXR1cm4gZHVtbXlD
bGllbnQ7CisKKyAgICByZXR1cm4gKm1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7Cit9CisKIHZv
aWQgUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogewogICAgIGlmICh2b2x1bWUg
PCAwIHx8IHZvbHVtZSA+IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDU4MzE4MzU0MGY3MDRiNzYzYWQ1
MGFhZTU2NDY5OGZjMjU4ZDM1NjUuLjU0M2I2YjM2NmY3YTI4NjlmYWQ1YjRjOGU3MzFiYmQzZjM0
YTNiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC04NCw2ICs4NCw3IEBAIGNsYXNzIENvbG9yOwogY2xh
c3MgQ29udGV4dE1lbnVDbGllbnQ7CiBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7CiBjbGFz
cyBEYXRhYmFzZVByb3ZpZGVyOworY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiBjbGFz
cyBEcmFnQ2FyZXRDb250cm9sbGVyOwogY2xhc3MgRHJhZ0NsaWVudDsKIGNsYXNzIERyYWdDb250
cm9sbGVyOwpAQCAtMzI4LDYgKzMyOSw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHVuc2lnbmVkIHBhZ2VDb3VudCgpIGNvbnN0OwogCisgICAgV0VCQ09SRV9FWFBPUlQgRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkgY29uc3Q7CisKICAg
ICAvLyBOb3RpZmljYXRpb25zIHdoZW4gdGhlIFBhZ2Ugc3RhcnRzIGFuZCBzdG9wcyBiZWluZyBw
cmVzZW50ZWQgdmlhIGEgbmF0aXZlIHdpbmRvdy4KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFZpZXdTdGF0ZShWaWV3U3RhdGU6OkZsYWdzKTsKICAgICB2b2lkIHNldFBhZ2VBY3Rpdml0eVN0
YXRlKFBhZ2VBY3Rpdml0eVN0YXRlOjpGbGFncyk7CkBAIC01ODQsNiArNTg3LDcgQEAgcHJpdmF0
ZToKICAgICBFZGl0b3JDbGllbnQmIG1fZWRpdG9yQ2xpZW50OwogICAgIFBsdWdJbkNsaWVudCog
bV9wbHVnSW5DbGllbnQ7CiAgICAgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQqIG1fdmFsaWRhdGlv
bk1lc3NhZ2VDbGllbnQ7CisgICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIG1fZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ7CiAKICAgICBpbnQgbV9zdWJmcmFtZUNvdW50OwogICAgIFN0cmluZyBt
X2dyb3VwTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAK
aW5kZXggZjNiYjRkYjc0MmFmNjNlY2I5NDljMTFkM2FjYWQwNzliMGNiOWE3ZC4uMDlhOTUyOTQ3
NmE3YTg2NjAyNWJhMWI4ODE2YmU0ZGU0NmFhZTM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBXZWJEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3Ry
aW5nJiBtZXMKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dTYW1w
bGVkRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVl
KSk7CiB9CiAKLXZvaWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Om1haW5GcmFtZURlc3Ry
b3llZCgpCit2b2lkIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkK
IHsKICAgICBkZWxldGUgdGhpczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaAppbmRleCBlNGRlMWExMTk2MDMwNzFiNzk5NTgwZTZhNGFlMWUwMDIyMjdhY2I2Li5i
MTgxZWFhMDhmNWFkYzAwOTdhYjM4ZWQ4Y2Q4YWQzMzY3ZWU2M2UzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIFdlYkNvcmU6OlNob3Vs
ZFNhbXBsZSkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG1haW5GcmFtZURlc3Ryb3llZCgpIG92ZXJy
aWRlOworICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZSYg
bV9wYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQppbmRleCAyOTBjOTA1MjA0ZGYwZDkwMGE2NDUwNDY3ZWEzY2FmNTlm
MTE4NzllLi5mZGViODA2ZjRlOGY3Y2MzMDdlNzhmYjFhOGZmOTUzMjIzMDUyNTgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC0yOTkwLDcgKzI5OTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50
UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogCiB2b2lkIFdl
YlBhZ2U6OndpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCkKIHsKLSAgICBtX3BhZ2UtPm1h
aW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3ZWJWaWV3S2V5KCksIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6dXNlcktleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Onpvb21lZEtleSgp
LCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICBtX3BhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3
ZWJWaWV3S2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6dXNlcktleSgpLCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6Onpvb21lZEtleSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKICAgICBtX3VzZXJI
YXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yID0gdHJ1ZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277163</attachid>
            <date>2016-04-23 13:44:50 -0700</date>
            <delta_ts>2016-04-23 14:33:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156938-20160423134514.patch</filename>
            <type>text/plain</type>
            <size>32118</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI2MDkzNTQyM2Q2YzI3
YmQyYmVlMzA0OTZiMjJkZTYzN2E4OTBiOC4uMWNhNmI0YzFjNzZhMmIxMjRiNDBjNGIzY2FjMGU0
ODU1NDc2Y2YwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE2LTA0LTIzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGllIHRoZSBEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCdzIGxpZmV0aW1lIHRvIHRoZSBQYWdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI1ODUxNDk5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisg
ICAgICAgIFRpZSB0aGUgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQncyBsaWZldGltZSB0byB0aGUg
UGFnZSByYXRoZXIgdGhhbiB0byB0aGUKKyAgICAgICAgTWFpbkZyYW1lLiBUaGUgZGlhZ25vc3Rp
YyBsb2dnaW5nIGNsaWVudCBpbiBXZWJLaXQyIHJlcXVpcmVzIHRoZSBXZWJQYWdlCisgICAgICAg
IHRvIGJlIGFsaXZlIGluIG9yZGVyIHRvIHNlbmQgSVBDIHRvIHRoZSBVSVByb2Nlc3MuIFRoZSBX
ZWJQYWdlIG93bnMgdGhlCisgICAgICAgIFBhZ2UgYW5kIFBhZ2UgaXMgbm90IHJlZkNvdW50ZWQg
c28gdGhlIGxpZmV0aW1lIG9mIHRoZQorICAgICAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCBz
aG91bGQgbm93IGJlIHRpZWQgdG8gdGhlIG9uZSBvZiB0aGUgV2ViUGFnZSBhcworICAgICAgICB3
ZWxsLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCB3
b3VsZCBzdGF5IGFsaXZlIGFzIGxvbmcgYXMgdGhlCisgICAgICAgIE1haW5GcmFtZSBhbmQgY291
bGQgYXBwYXJlbnRseSBpbiByYXJlIGNhc2VzIG91dGxpdmUgdGhlIFdlYlBhZ2UsIHRodXMKKyAg
ICAgICAgY3Jhc2hpbmcgd2hlbiB0cnlpbmcgdG8gc2VuZCB0aGUgSVBDLgorCisgICAgICAgICog
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUGFnZUNhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dN
ZWRpYUxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVw
ZGF0ZVBsYXlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpsb2dOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nUmVzb3VyY2VSZXNwb25zZVNv
dXJjZSk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1BsdWdpblJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dSZXNvdXJjZUxvYWRlZCk6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmxvZ01lbW9yeUNhY2hlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmxvZ1Jlc291cmNlUmV2YWxpZGF0aW9uRGVjaXNpb24pOgorICAgICAgICAqIHBhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL01haW5GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6Ok1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpNYWluRnJhbWU6On5NYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TWFpbkZyYW1lOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9NYWluRnJhbWUuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMTYtMDQtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBDYW5ub3QgYWNjZXNzIHRoZSBTUUxUcmFuc2FjdGlvbi5j
b25zdHJ1Y3Rvci5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxYzllYTlmMjU5M2M4YmU0MjBmZDU5
MDE1NDFjYzI5YWM5ODA5Yjg1Li44NGE4NDE1NmFhMjhkNmU4ZThjYmIxOTRjZDEwNDZjNGQyYzIz
YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDQtMjMgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUaWUgdGhlIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50J3MgbGlmZXRpbWUgdG8gdGhlIFBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjkzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU4
NTE0OTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6OnBhZ2VEZXN0
cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDo6bWFp
bkZyYW1lRGVzdHJveWVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3
aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZyk6CisKIDIwMTYtMDQtMjMgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU4OTMyNDY+
IFdlYktpdDIgaGFzIGZhaWxlZCB0byBidWlsZDogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlk
ZW50aWZpZXIgJ21fcGxheWJhY2tTZXNzaW9uTWFuYWdlcicKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFn
ZUNhY2hlLmNwcAppbmRleCA1ZmUzMWI1NzI2OTY3YzBjMDE1NGE4OGQ2Y2M2MjY3N2MyMWJhNWMy
Li5lYWIyNDk3ODkwZDgyN2M0ZWNlMTFhODViZDUxOWFiNzljYzZiN2Y5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3Qg
U3RyaW5nCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBsb2dQYWdlQ2Fj
aGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQoKSwgcmVhc29uKTsKKyAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3Rp
Y01lc3NhZ2UocGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSwgcmVhc29uKTsKIH0KIAog
c3RhdGljIGJvb2wgY2FuQ2FjaGVGcmFtZShGcmFtZSYgZnJhbWUsIERpYWdub3N0aWNMb2dnaW5n
Q2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgdW5zaWduZWQgaW5kZW50TGV2ZWwpCkBA
IC0xOTAsMTAgKzE5MCw5IEBAIHN0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQog
ewogICAgIHVuc2lnbmVkIGluZGVudExldmVsID0gMDsKICAgICBQQ0xPRygiLS0tLS0tLS1cbiBE
ZXRlcm1pbmluZyBpZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7Ci0gICAgCi0gICAgTWFpbkZyYW1l
JiBtYWluRnJhbWUgPSBwYWdlLm1haW5GcmFtZSgpOwotICAgIERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IG1haW5GcmFtZS5kaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCgpOwotICAgIGJvb2wgaXNDYWNoZWFibGUgPSBjYW5DYWNoZUZyYW1lKG1haW5GcmFt
ZSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7CisKKyAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJh
bWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVs
ICsgMSk7CiAgICAgCiAgICAgaWYgKCFwYWdlLnNldHRpbmdzKCkudXNlc1BhZ2VDYWNoZSgpIHx8
IHBhZ2UuaXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZCgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAt
UGFnZSBzZXR0aW5ncyBzYXlzIGIvZiBjYWNoZSBkaXNhYmxlZCIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMTVmMWNkODdhODNiNzg2ZmUwNTI1NjAwMzA5
ZTU0OTM0NGM3MGExMS4uNTk3ZWU1MzVlOTc3NzUzY2U3ZDZjMzFhNmU5Njc4ZTQ4OGFlZGIxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMzE3LDggKzEz
MTcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zdCBVUkwmIGlu
aXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50VAogICAgIH0KIAogICAgIC8vIExvZyB0aGF0
IHdlIHN0YXJ0ZWQgbG9hZGluZyBhIG1lZGlhIGVsZW1lbnQuCi0gICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjptZWRpYUtleSgpLCBpc1ZpZGVvKCkgPyBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnZpZGVvS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmF1ZGlvS2V5KCksIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6bG9hZGluZ0tleSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAg
ICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFLZXkoKSwgaXNWaWRlbygpID8gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjp2aWRlb0tleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjph
dWRpb0tleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmxvYWRpbmdLZXkoKSwgU2hvdWxkU2Ft
cGxlOjpObyk7CiAKICAgICBtX2ZpcnN0VGltZVBsYXlpbmcgPSB0cnVlOwogCkBAIC0xOTg3LDcg
KzE5ODYsNyBAQCBzdGF0aWMgdm9pZCBsb2dNZWRpYUxvYWRSZXF1ZXN0KFBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgbWVkaWFFbmdpbmUsIGNvbnN0IFN0cgogICAgIGlmICghcGFnZSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50ID0gcGFnZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsK
KyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBw
YWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwogICAgIGlmICghc3VjY2VlZGVkKSB7CiAg
ICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJl
c3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om1lZGlhTG9hZGluZ0ZhaWxlZEtleSgpLCBlcnJv
ck1lc3NhZ2UsIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpObyk7
CiAgICAgICAgIHJldHVybjsKQEAgLTQ4NDUsOCArNDg0NCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6dXBkYXRlUGxheVN0YXRlKCkKIAogICAgICAgICAgICAgaWYgKG1fZmlyc3RUaW1lUGxh
eWluZykgewogICAgICAgICAgICAgICAgIC8vIExvZyB0aGF0IGEgbWVkaWEgZWxlbWVudCB3YXMg
cGxheWVkLgotICAgICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZy
YW1lKCkpCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5tYWluRnJhbWUoKS5kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNM
b2dnaW5nS2V5czo6bWVkaWFLZXkoKSwgaXNWaWRlbygpID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojp2aWRlb0tleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphdWRpb0tleSgpLCBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnBsYXllZEtleSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICAgICAg
ICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNz
YWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6bWVkaWFLZXkoKSwgaXNWaWRlbygp
ID8gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp2aWRlb0tleSgpIDogRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjphdWRpb0tleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsYXllZEtleSgpLCBTaG91
bGRTYW1wbGU6Ok5vKTsKICAgICAgICAgICAgICAgICBtX2ZpcnN0VGltZVBsYXlpbmcgPSBmYWxz
ZTsKICAgICAgICAgICAgIH0KIApAQCAtNjI5Niw4ICs2Mjk1LDggQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0CiAgICAgaWYgKCFt
X3BsYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3Vt
ZW50KCkuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjplbmdpbmVGYWlsZWRUb0xvYWRLZXkoKSwgbV9wbGF5ZXItPmVuZ2luZURlc2NyaXB0
aW9uKCksIFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSwgU2hv
dWxkU2FtcGxlOjpObyk7CisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkK
KyAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtl
eSgpLCBtX3BsYXllci0+ZW5naW5lRGVzY3JpcHRpb24oKSwgU3RyaW5nOjpudW1iZXIobV9wbGF5
ZXItPnBsYXRmb3JtRXJyb3JDb2RlKCkpLCBTaG91bGRTYW1wbGU6Ok5vKTsKIH0KIAogZG91Ymxl
IEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMzk3YmFjZGVhMzY1
OTUxOWNkYTRlOTdkZTc0M2E1MDlkN2VmODVhOS4uZjBjZGFjYmQ4MmQ1ZjYyYzJjMThiY2FiOTAy
ZWMzNDI4ODUyNWZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTE0MSw4ICsxNDEsNyBAQCB2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2VDb25maWd1cmF0
aW9uJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlQ
cm9ncmVzc1RyYWNrZXJDbGllbnQ+IGR1bW15UHJvZ3Jlc3NUcmFja2VyQ2xpZW50OwogICAgIHBh
Z2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9ICZkdW1teVByb2dyZXNzVHJh
Y2tlckNsaWVudC5nZXQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50PiBkdW1teURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwotICAgIHBh
Z2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gJmR1bW15RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuZ2V0KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ+KCk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSA9
IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVhdGUoU3RyaW5nKCksIFN0cmluZygpKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gYWRvcHRSZWYobmV3IEVtcHR5
RGF0YWJhc2VQcm92aWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXgg
YTkyODlkZmNjNzdjYzE2NzJkODNhMTQzM2I2MTllYWFhNmJhNDI3YS4uYTEzMjhlYzUyOTgxZjRl
YTA5ZjYyMGNkMjRlMjg4YzFlYTkzNmYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaApAQCAtNjQwLDggKzY0MCw2IEBAIGNsYXNzIEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQgZmluYWwgOiBwdWJsaWMgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgewogICAgIHZvaWQgbG9n
RGlhZ25vc3RpY01lc3NhZ2UoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU2hvdWxkU2Ft
cGxlKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5
cGUsIFNob3VsZFNhbXBsZSkgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBTaG91bGRTYW1wbGUpIG92ZXJyaWRlIHsgfQotCi0gICAgdm9pZCBtYWluRnJhbWVEZXN0cm95
ZWQoKSBvdmVycmlkZSB7IH0KIH07CiAKIHZvaWQgZmlsbFdpdGhFbXB0eUNsaWVudHMoUGFnZUNv
bmZpZ3VyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDFj
ZTM0NGM2M2QxNWUwZjkwOTcyNWNmNzFhZTNiOTU4YmMyZWY4ZTguLjZjMzNkMmYwMjJmMWZiYjE5
ODc0MjU4MDk1M2NmNDMxODdhZWNlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcApAQCAtMTM2NSw2ICsxMzY1LDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChEb2N1bWVu
dExvYWRlciogbmV3RG9jdW1lbnRMb2FkZXIpCiAKIHN0YXRpYyB2b2lkIGxvZ05hdmlnYXRpb24o
TWFpbkZyYW1lJiBmcmFtZSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogeworICAgIGlmICghZnJhbWUu
cGFnZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBTdHJpbmcgbmF2aWdhdGlvbkRlc2NyaXB0
aW9uOwogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U3RhbmRh
cmQ6CkBAIC0xMzkzLDcgKzEzOTYsNyBAQCBzdGF0aWMgdm9pZCBsb2dOYXZpZ2F0aW9uKE1haW5G
cmFtZSYgZnJhbWUsIEZyYW1lTG9hZFR5cGUgdHlwZSkKICAgICAgICAgLy8gTm90IGxvZ2dpbmcg
dGhvc2UgZm9yIG5vdy4KICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBmcmFtZS5kaWFnbm9z
dGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5n
S2V5czo6bmF2aWdhdGlvbktleSgpLCBuYXZpZ2F0aW9uRGVzY3JpcHRpb24sIFNob3VsZFNhbXBs
ZTo6Tm8pOworICAgIGZyYW1lLnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dE
aWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om5hdmlnYXRpb25LZXkoKSwg
bmF2aWdhdGlvbkRlc2NyaXB0aW9uLCBTaG91bGRTYW1wbGU6Ok5vKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciogbG9hZGVyLCBG
cmFtZUxvYWRUeXBlIHR5cGUsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBwcnBGb3JtU3RhdGUsIEFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCkBA
IC0yMzI1LDcgKzIzMjgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZv
clRoaXNGcmFtZSgpCiAgICAgICAgICAgICAvLyBEb24ndCBhc3N1bWUgJ3BhZ2UnIGlzIHN0aWxs
IGF2YWlsYWJsZSB0byB1c2UuCiAgICAgICAgICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgp
ICYmIG1fZnJhbWUucGFnZSgpKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCZtX2ZyYW1lLnBh
Z2UoKS0+bWFpbkZyYW1lKCkgPT0gJm1fZnJhbWUpOwotICAgICAgICAgICAgICAgIG1fZnJhbWUu
cGFnZSgpLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VMb2FkZWRLZXko
KSwgZW1wdHlTdHJpbmcoKSwgZXJyb3IuaXNOdWxsKCkgPyBEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dFBhc3MgOiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsK
KyAgICAgICAgICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQo
KS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
YWdlTG9hZGVkS2V5KCksIGVtcHR5U3RyaW5nKCksIGVycm9yLmlzTnVsbCgpID8gRGlhZ25vc3Rp
Y0xvZ2dpbmdSZXN1bHRQYXNzIDogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRT
YW1wbGU6Olllcyk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHJldHVybjsKQEAgLTMw
NDksNyArMzA1Miw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdh
dGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlCiAgICAgc2V0UG9saWN5RG9j
dW1lbnRMb2FkZXIobnVsbHB0cik7CiAKICAgICBpZiAoaXNCYWNrRm9yd2FyZExvYWRUeXBlKHR5
cGUpKSB7Ci0gICAgICAgIGF1dG8mIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gbV9mcmFtZS5t
YWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOworICAgICAgICBhdXRvJiBkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCA9IG1fZnJhbWUucGFnZSgpLT5kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpOwogICAgICAgICBpZiAoaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpLT5pc0luUGFn
ZUNhY2hlKCkpIHsKICAgICAgICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDYWNoZUtl
eSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIGxvYWRQcm92
aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAKaW5kZXggMDQ1NjU2YTIyMTVjZmE1NjlkMTdmNTk4Mzk4YTQzZDUxZjI3ZTc2
Yy4uYzZkYWViMzhiZTIzNDVkM2Y1MTBmMjgxYTg2NDI5NzI2MzNjMDBiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBs
b25nIGxvbmcpCiAKIHN0YXRpYyB2b2lkIGxvZ1Jlc291cmNlUmVzcG9uc2VTb3VyY2UoRnJhbWUq
IGZyYW1lLCBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2Ugc291cmNlKQogewotICAgIGlmICghZnJh
bWUpCisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgU3RyaW5nIHNvdXJjZUtleTsKQEAgLTQyMyw3ICs0MjMsNyBAQCBzdGF0aWMgdm9pZCBs
b2dSZXNvdXJjZVJlc3BvbnNlU291cmNlKEZyYW1lKiBmcmFtZSwgUmVzb3VyY2VSZXNwb25zZTo6
U291cmNlIHNvdQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZnJhbWUtPm1haW5GcmFt
ZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFs
dWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlc3BvbnNlS2V5KCksIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6c291cmNlS2V5KCksIHNvdXJjZUtleSwgU2hvdWxkU2FtcGxlOjpZZXMp
OworICAgIGZyYW1lLT5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25v
c3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlc3Bv
bnNlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6c291cmNlS2V5KCksIHNvdXJjZUtleSwg
U2hvdWxkU2FtcGxlOjpZZXMpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDNiMTY0ODIwNjA3YmRhMDc1NWFiMWY0YjI1NDMwZjUx
NTc4OTEzOWYuLmEyYTc0Y2ZlZTY3OGI0ZDQ0ODAxNTU2MjhjMWVhMmJhZTJhMDY3MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBA
IHN0YXRpYyB2b2lkIGxvZ1BsdWdpblJlcXVlc3QoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgY29uc3QgU3RyaW5nJiB1CiAgICAgU3RyaW5nIHBsdWdpbkZpbGUgPSBwYWdlLT5w
bHVnaW5EYXRhKCkucGx1Z2luRmlsZUZvcldlYlZpc2libGVNaW1lVHlwZShuZXdNSU1FVHlwZSk7
CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uID0gIXBsdWdpbkZpbGUgPyBuZXdNSU1FVHlwZSA6IHBs
dWdpbkZpbGU7CiAKLSAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgPSBwYWdlLT5tYWluRnJhbWUoKS5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwor
ICAgIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IHBh
Z2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CiAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQubG9nRGlhZ25vc3RpY01lc3NhZ2Uoc3VjY2VzcyA/IERpYWdub3N0aWNMb2dnaW5nS2V5czo6
cGx1Z2luTG9hZGVkS2V5KCkgOiBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBsdWdpbkxvYWRpbmdG
YWlsZWRLZXkoKSwgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6Tm8pOwogCiAgICAgaWYgKCFw
YWdlLT5oYXNTZWVuQW55UGx1Z2luKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAppbmRleCBhZmYyODZlMDA5YTcxNDY2YTBhOGMyNzZiMmVlNTUyN2M3OWRm
Y2MzLi43OGMxNDJiYTQxYmJhMDk2OTAwMmZkNWQ0MDQ3M2RhN2MyZTkyNTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4Miw4ICsxODIsOCBA
QCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbgogICAgICAgICBpZiAobmV3UmVxdWVzdC5pc0NvbmRp
dGlvbmFsKCkgJiYgbV9yZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSAmJiBuZXdSZXF1
ZXN0LnVybCgpICE9IG1fcmVzb3VyY2UtPnJlc291cmNlVG9SZXZhbGlkYXRlKCktPnJlc3BvbnNl
KCkudXJsKCkpIHsKICAgICAgICAgICAgIG5ld1JlcXVlc3QubWFrZVVuY29uZGl0aW9uYWwoKTsK
ICAgICAgICAgICAgIE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKS5yZXZhbGlkYXRpb25GYWlsZWQo
Km1fcmVzb3VyY2UpOwotICAgICAgICAgICAgaWYgKG1fZnJhbWUpCi0gICAgICAgICAgICAgICAg
bV9mcmFtZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYWNoZWRSZXNvdXJj
ZVJldmFsaWRhdGlvbktleSgpLCBlbXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3Vs
dEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAgICAgICAgIGlmIChtX2ZyYW1lICYmIG1f
ZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0
aWNMb2dnaW5nS2V5czo6Y2FjaGVkUmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJp
bmcoKSwgRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Olllcyk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIW1fZG9jdW1lbnRMb2FkZXItPmNhY2hlZFJlc291cmNl
TG9hZGVyKCkuY2FuUmVxdWVzdChtX3Jlc291cmNlLT50eXBlKCksIG5ld1JlcXVlc3QudXJsKCks
IG9wdGlvbnMoKSwgZmFsc2UgLyogZm9yUHJlbG9hZCAqLywgdHJ1ZSAvKiBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZSAqLykpIHsKQEAgLTI0NiwxNiArMjQ2LDE2IEBAIHZvaWQgU3VicmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKICAgICAgICAgICAgIC8vIEV4aXN0aW5nIHJlc291cmNlIGlzIG9rLCBqdXN0IHVzZSBp
dCB1cGRhdGluZyB0aGUgZXhwaXJhdGlvbiB0aW1lLgogICAgICAgICAgICAgbV9yZXNvdXJjZS0+
c2V0UmVzcG9uc2UocmVzcG9uc2UpOwogICAgICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRv
bigpLnJldmFsaWRhdGlvblN1Y2NlZWRlZCgqbV9yZXNvdXJjZSwgcmVzcG9uc2UpOwotICAgICAg
ICAgICAgaWYgKG1fZnJhbWUpCi0gICAgICAgICAgICAgICAgbV9mcmFtZS0+bWFpbkZyYW1lKCku
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYWNoZWRSZXNvdXJjZVJldmFsaWRhdGlvbktleSgpLCBl
bXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6
WWVzKTsKKyAgICAgICAgICAgIGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAg
ICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9n
RGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6Y2FjaGVk
UmVzb3VyY2VSZXZhbGlkYXRpb25LZXkoKSwgZW1wdHlTdHJpbmcoKSwgRGlhZ25vc3RpY0xvZ2dp
bmdSZXN1bHRQYXNzLCBTaG91bGRTYW1wbGU6Olllcyk7CiAgICAgICAgICAgICBpZiAoIXJlYWNo
ZWRUZXJtaW5hbFN0YXRlKCkpCiAgICAgICAgICAgICAgICAgUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZShyZXNwb25zZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgLy8gRGlkIG5vdCBnZXQgMzA0IHJlc3BvbnNlLCBjb250aW51ZSBhcyBhIHJlZ3Vs
YXIgcmVzb3VyY2UgbG9hZC4KICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJldmFs
aWRhdGlvbkZhaWxlZCgqbV9yZXNvdXJjZSk7Ci0gICAgICAgIGlmIChtX2ZyYW1lKQotICAgICAg
ICAgICAgbV9mcmFtZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dE
aWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYWNoZWRS
ZXNvdXJjZVJldmFsaWRhdGlvbktleSgpLCBlbXB0eVN0cmluZygpLCBEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAgICAgaWYgKG1fZnJhbWUgJiYg
bV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OmNhY2hlZFJlc291cmNlUmV2YWxpZGF0aW9uS2V5KCksIGVtcHR5U3RyaW5n
KCksIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAg
IH0KIAogICAgIG1fcmVzb3VyY2UtPnJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UpOwpAQCAtMzM4
LDcgKzMzOCw3IEBAIGJvb2wgU3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrRm9ySFRUUFN0YXR1c0Nv
ZGVFcnJvcigpCiAKIHN0YXRpYyB2b2lkIGxvZ1Jlc291cmNlTG9hZGVkKEZyYW1lKiBmcmFtZSwg
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKIHsKLSAgICBpZiAoIWZyYW1lKQorICAgIGlmICgh
ZnJhbWUgfHwgIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyBy
ZXNvdXJjZVR5cGU7CkBAIC0zODIsNyArMzgyLDcgQEAgc3RhdGljIHZvaWQgbG9nUmVzb3VyY2VM
b2FkZWQoRnJhbWUqIGZyYW1lLCBDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQogICAgICAgICBy
ZXNvdXJjZVR5cGUgPSBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Om90aGVyS2V5KCk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBmcmFtZS0+bWFpbkZyYW1lKCkuZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnJlc291cmNlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bG9hZGVkS2V5KCksIHJl
c291cmNlVHlwZSwgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgIGZyYW1lLT5wYWdlKCktPmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6Omxv
YWRlZEtleSgpLCByZXNvdXJjZVR5cGUsIFNob3VsZFNhbXBsZTo6WWVzKTsKIH0KIAogYm9vbCBT
dWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2woY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiBwcmV2aW91c1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UsIFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDhlZjg1NDk1NzliZDI2Yjg0MjdkZTU4ODY0Nzg2MGU0NjA0ZjZmMGIuLmMwYTk5YTNkZTk3ODk0
NWZkNjQ5ZGMyZDZlYTc4ZGI2Nzg3MTMwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNTM5LDEyICs1MzksMTIg
QEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWlu
Z0xvYWRlZEZyb21NZW1vcnlDYWNoZShjb24KIAogc3RhdGljIGlubGluZSB2b2lkIGxvZ01lbW9y
eUNhY2hlUmVzb3VyY2VSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbiwgY29uc3QgU3RyaW5nJiB2YWx1ZSA9IFN0cmluZygpKQogewotICAgIGlmICghZnJhbWUp
CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogICAg
IGlmICh2YWx1ZS5pc051bGwoKSkKLSAgICAgICAgZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpyZXNvdXJjZVJlcXVlc3RLZXkoKSwgZGVzY3JpcHRpb24sIFNob3VsZFNhbXBsZTo6WWVz
KTsKKyAgICAgICAgZnJhbWUtPnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dE
aWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlc291cmNlUmVxdWVzdEtl
eSgpLCBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxlOjpZZXMpOwogICAgIGVsc2UKLSAgICAgICAg
ZnJhbWUtPm1haW5GcmFtZSgpLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlcXVlc3RL
ZXkoKSwgZGVzY3JpcHRpb24sIHZhbHVlLCBTaG91bGRTYW1wbGU6Olllcyk7CisgICAgICAgIGZy
YW1lLT5wYWdlKCktPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXNvdXJjZVJlcXVlc3RLZXkoKSwg
ZGVzY3JpcHRpb24sIHZhbHVlLCBTaG91bGRTYW1wbGU6Olllcyk7CiB9CiAKIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKQEAgLTcxOSw5ICs3MTksOSBAQCBzdGF0aWMgdm9pZCBsb2dSZXZhbGlkYXRpb24o
Y29uc3QgU3RyaW5nJiByZWFzb24sIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBsb2dDbAogCiBz
dGF0aWMgdm9pZCBsb2dSZXNvdXJjZVJldmFsaWRhdGlvbkRlY2lzaW9uKENhY2hlZFJlc291cmNl
OjpSZXZhbGlkYXRpb25EZWNpc2lvbiByZWFzb24sIGNvbnN0IEZyYW1lKiBmcmFtZSkKIHsKLSAg
ICBpZiAoIWZyYW1lKQorICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wYWdlKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBhdXRvJiBsb2dDbGllbnQgPSBmcmFtZS0+bWFpbkZyYW1lKCkuZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKTsKKyAgICBhdXRvJiBsb2dDbGllbnQgPSBmcmFtZS0+cGFnZSgp
LT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpOwogICAgIHN3aXRjaCAocmVhc29uKSB7CiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6UmV2YWxpZGF0aW9uRGVjaXNpb246Ok5vOgogICAgICAgICBi
cmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaApp
bmRleCA1MDM3OTIzNTI0YmFhYTJjMTc1NzgyNmYyOGViNzgxODI4ZDM2N2VjLi5lZDU3NjI3MjVl
MDljZDhkMWEzZWE3NTJmMDQwZGNiOWQ2NDk5Y2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIERp
YWdub3N0aWNMb2dnaW5nQ2xpZW50X2gKIAogI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nUmVz
dWx0VHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmFuZG9tTnVtYmVyLmg+CiAKQEAgLTM1LDE2ICszNiwx
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZSB7IE5vLCBZ
ZXMgfTsKIAogY2xhc3MgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgeworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFNo
b3VsZFNhbXBsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdp
dGhSZXN1bHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
LCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUsIFNob3VsZFNhbXBsZSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgdmFsdWUsIFNo
b3VsZFNhbXBsZSkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZURlc3Ryb3llZCgp
ID0gMDsKLQogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0FmdGVyU2FtcGxpbmcoU2hvdWxkU2Ft
cGxlKTsKIAotcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KCkgeyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5kZXggNTg0NjQ0ZmZjMGRk
ZjgxNTUzYTdiMWFlYzhkYjMyYWY5N2UyMmRjZC4uNmRmMjk2NTUzZTM4YTViMWUzNTBhZmQzYjFl
YjU1ZGVlYmU2NWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApAQCAtNTUsNyArNTUs
NiBAQCBpbmxpbmUgTWFpbkZyYW1lOjpNYWluRnJhbWUoUGFnZSYgcGFnZSwgUGFnZUNvbmZpZ3Vy
YXRpb24mIGNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKICAgICAsIG1fcmVjZW50V2hlZWxFdmVudERl
bHRhRmlsdGVyKFdoZWVsRXZlbnREZWx0YUZpbHRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BhZ2VP
dmVybGF5Q29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4o
KnRoaXMpKQotICAgICwgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudChjb25maWd1cmF0aW9uLmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KQogewogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAj
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL01haW5GcmFtZUluaXRpYWxpemF0aW9uLmNwcD4KQEAg
LTY0LDkgKzYzLDYgQEAgaW5saW5lIE1haW5GcmFtZTo6TWFpbkZyYW1lKFBhZ2UmIHBhZ2UsIFBh
Z2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiBNYWluRnJhbWU6On5NYWluRnJhbWUo
KQogewotICAgIGlmIChtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KQotICAgICAgICBtX2RpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LT5tYWluRnJhbWVEZXN0cm95ZWQoKTsKLQogICAgIG1fcmVjZW50
V2hlZWxFdmVudERlbHRhRmlsdGVyID0gbnVsbHB0cjsKICAgICBtX2V2ZW50SGFuZGxlciA9IG51
bGxwdHI7CiAKQEAgLTk4LDE1ICs5NCw2IEBAIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seURlcmVm
KCkKICAgICBkZXJlZigpOwogfQogCi1EaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgTWFpbkZyYW1l
OjpkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpIGNvbnN0Ci17Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+IGR1bW15Q2xpZW50OwotICAgIGlm
ICghc2V0dGluZ3MoKS5kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoKSB8fCAhbV9kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCkKLSAgICAgICAgcmV0dXJuIGR1bW15Q2xpZW50OwotCi0gICAgcmV0dXJu
ICptX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwotfQotCiB2b2lkIE1haW5GcmFtZTo6ZHJvcENo
aWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLmZpcnN0Q2hpbGQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01haW5GcmFtZS5oCmluZGV4IGM5ZmE1Mzk2Nzk3M2U0MTBhZDhhZGYxYTEz
YjRhOThmYTcyNGVkMzUuLjllOTVlYzk3NWJhYTVhOGE2YTMzZDU5OGU0NmE4YzRiMmFkYTQyMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuaApAQCAtMzYsNyArMzYsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50OwogY2xhc3MgUGFnZUNv
bmZpZ3VyYXRpb247CiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXI7CiBjbGFzcyBTY3JvbGxM
YXRjaGluZ1N0YXRlOwpAQCAtNjcsOCArNjYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVM
YXRjaGluZ1N0YXRlRm9yVGFyZ2V0KEVsZW1lbnQmKTsKICNlbmRpZiAvLyBQTEFURk9STShNQUMp
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKSBjb25zdDsKLQogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAj
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL01haW5GcmFtZU1lbWJlcnMuaD4KICNlbmRpZgpAQCAt
ODksNyArODYsNiBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdoZWVsRXZlbnRE
ZWx0YUZpbHRlcj4gbV9yZWNlbnRXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFBhZ2VPdmVybGF5Q29udHJvbGxlcj4gbV9wYWdlT3ZlcmxheUNvbnRyb2xsZXI7Ci0g
ICAgRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiB9
OwogCiBpbmxpbmUgYm9vbCBGcmFtZTo6aXNNYWluRnJhbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKaW5kZXggYmY5Y2MxMzI2YTcwMDY0OTg1ZTVjY2JmZDg3OTdjOTllMjk5YzllMC4uMzIwZjgy
ODM5OTVkZjFiMGYzNTM0YTIyMzY1YWQ3ZmE5NDY3NTFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBA
IC0zMSwxMSArMzEsMTMgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJF
ZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJFbXB0eUNsaWVudHMuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CkBAIC0xODEsNiArMTgzLDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYgcGFnZUNv
bmZpZ3VyYXRpb24pCiAgICAgLCBtX2VkaXRvckNsaWVudCgqcGFnZUNvbmZpZ3VyYXRpb24uZWRp
dG9yQ2xpZW50KQogICAgICwgbV9wbHVnSW5DbGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0lu
Q2xpZW50KQogICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudChwYWdlQ29uZmlndXJhdGlv
bi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkKKyAgICAsIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkpCiAg
ICAgLCBtX3N1YmZyYW1lQ291bnQoMCkKICAgICAsIG1fb3BlbmVkQnlET00oZmFsc2UpCiAgICAg
LCBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKQpAQCAtMjY3LDYgKzI3MCw3IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mIHBhZ2VDb25maWd1cmF0aW9uKQogCiBQYWdl
Ojp+UGFnZSgpCiB7CisgICAgbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IG51bGxwdHI7CiAg
ICAgbV9tYWluRnJhbWUtPnNldFZpZXcobnVsbHB0cik7CiAgICAgc2V0R3JvdXBOYW1lKFN0cmlu
ZygpKTsKICAgICBhbGxQYWdlcy0+cmVtb3ZlKHRoaXMpOwpAQCAtNzYwLDYgKzc2NCwxNSBAQCB2
b2lkIFBhZ2U6OnNldEluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGUoYm9vbCBtb2Rl
KQogICAgIG1faW5Mb3dRdWFsaXR5SW50ZXJwb2xhdGlvbk1vZGUgPSBtb2RlOwogfQogCitEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCYgUGFnZTo6ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25z
dAoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50PiBkdW1teUNsaWVudDsKKyAgICBpZiAoIXNldHRpbmdzKCkuZGlhZ25vc3RpY0xvZ2dpbmdF
bmFibGVkKCkgfHwgIW1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpCisgICAgICAgIHJldHVybiBk
dW1teUNsaWVudDsKKworICAgIHJldHVybiAqbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKK30K
Kwogdm9pZCBQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiB7CiAgICAgaWYgKHZv
bHVtZSA8IDAgfHwgdm9sdW1lID4gMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNTgzMTgzNTQwZjcwNGI3
NjNhZDUwYWFlNTY0Njk4ZmMyNThkMzU2NS4uNjQ0NTM0M2VkMjgzOGJiY2ZmYTllMzAxM2QwMTBh
NzcyNzRiMWI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTg0LDYgKzg0LDcgQEAgY2xhc3MgQ29sb3I7
CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlcjsK
IGNsYXNzIERhdGFiYXNlUHJvdmlkZXI7CitjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsK
IGNsYXNzIERyYWdDYXJldENvbnRyb2xsZXI7CiBjbGFzcyBEcmFnQ2xpZW50OwogY2xhc3MgRHJh
Z0NvbnRyb2xsZXI7CkBAIC0zMjgsNiArMzI5LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSBjb25zdDsK
KwogICAgIC8vIE5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgUGFnZSBzdGFydHMgYW5kIHN0b3BzIGJl
aW5nIHByZXNlbnRlZCB2aWEgYSBuYXRpdmUgd2luZG93LgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3MpOwogICAgIHZvaWQgc2V0UGFnZUFjdGl2
aXR5U3RhdGUoUGFnZUFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKQEAgLTU4NCw2ICs1ODcsNyBAQCBw
cml2YXRlOgogICAgIEVkaXRvckNsaWVudCYgbV9lZGl0b3JDbGllbnQ7CiAgICAgUGx1Z0luQ2xp
ZW50KiBtX3BsdWdJbkNsaWVudDsKICAgICBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudCogbV92YWxp
ZGF0aW9uTWVzc2FnZUNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQ+IG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ7CiAKICAgICBpbnQgbV9zdWJmcmFt
ZUNvdW50OwogICAgIFN0cmluZyBtX2dyb3VwTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggZThjM2RlZjgyMmExMzU2NTFjOTY4ZmExYmQ5NGM2NzMy
ZGI4OGM0Yi4uOGZlNzc5OTEzNjI0ZDM0ODE0ZDVmMzY5ZDc0NzNjNjA0MTA3ZDVkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3
YXJkQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgorI2luY2x1ZGUgIkRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVmlz
aXRlZExpbmtTdG9yZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmlu
ZGV4IDNjNDQ1ZGI2NDE1NWU5NTMzMzMxOWIyZWUxN2FmZjQ1OGFjMGNiZmQuLmU2MDdiNDczNzM1
YzE0MDY2MzI4NmQ4OTFjYTBiNThlZTJjYWZiYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxCYWNr
Rm9yd2FyZENsaWVudD4gYmFja0ZvcndhcmRDbGllbnQ7CiAgICAgVmFsaWRhdGlvbk1lc3NhZ2VD
bGllbnQqIHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50IHsgbnVsbHB0ciB9OwogICAgIEZyYW1lTG9h
ZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgeyBudWxscHRyIH07Ci0gICAgRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQqIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50IHsgbnVsbHB0ciB9
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4gZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQgeyBudWxscHRyIH07CiAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9QYWdlQ29uZmlndXJhdGlvbk1lbWJlcnMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKaW5kZXggZjNiYjRk
Yjc0MmFmNjNlY2I5NDljMTFkM2FjYWQwNzliMGNiOWE3ZC4uYmY5MGU2YzYzNjAyZWEyMDM1Y2Uw
NTNhOTU3ZWQ2MmQxMzY3MzdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5jcHAKQEAgLTc3LDkgKzc3LDQgQEAgdm9pZCBXZWJEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDo6bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoY29uc3QgU3RyaW5nJiBtZXMKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dTYW1wbGVkRGlhZ25vc3Rp
Y01lc3NhZ2VXaXRoVmFsdWUobWVzc2FnZSwgZGVzY3JpcHRpb24sIHZhbHVlKSk7CiB9CiAKLXZv
aWQgV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ6Om1haW5GcmFtZURlc3Ryb3llZCgpCi17Ci0g
ICAgZGVsZXRlIHRoaXM7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCmluZGV4IGU0ZGUxYTExOTYwMzA3MWI3OTk1ODBl
NmE0YWUxZTAwMjIyN2FjYjYuLjg3MjNmZmMxOTI4ZDJhMzg4MTcxOWRmMDc4ZjI2NjViNGNmODJj
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgKQEAgLTQzLDgg
KzQzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3Vs
dChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBv
dmVycmlkZTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiB2
YWx1ZSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKSBvdmVycmlkZTsKIAotICAgIHZvaWQgbWFpbkZy
YW1lRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0KICAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYWU5
MDk0NDc2ZmFhMzE4NTA1ZTI1YmI0YzQyZWYzYjIyZDM0NzNjNy4uNDQ0OWQ0ODEyNzI3NDYxODZk
ZTA3YTliMmQyNDc1YTgxMDcyMzU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDAxLDcgKzQwMSw3IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
dWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNsaWVudCA9IG5ldyBXZWJQbHVnSW5D
bGllbnQoKnRoaXMpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5G
cmFtZSA9IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5w
cm9ncmVzc1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KCp0aGlz
KTsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCA9IG5ldyBX
ZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgqdGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigqdGhpcyk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZSA9ICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZSgpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJE
YXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZShtX3BhZ2VHcm91cC0+cGFnZUdyb3VwSUQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KaW5kZXggMjkwYzkwNTIwNGRmMGQ5MDBhNjQ1MDQ2N2VhM2NhZjU5ZjExODc5ZS4uZmRl
YjgwNmY0ZThmN2NjMzA3ZTc4ZmIxYThmZjk1MzIyMzA1MjU4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk5MCw3
ICsyOTkwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0
IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKIAogdm9pZCBXZWJQYWdlOjp3aWxs
U3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCiB7Ci0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS5k
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKERp
YWdub3N0aWNMb2dnaW5nS2V5czo6d2ViVmlld0tleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OnVzZXJLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp6b29tZWRLZXkoKSwgU2hvdWxkU2Ft
cGxlOjpObyk7CisgICAgbV9wYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdu
b3N0aWNNZXNzYWdlV2l0aFZhbHVlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViVmlld0tleSgp
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVzZXJLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojp6b29tZWRLZXkoKSwgU2hvdWxkU2FtcGxlOjpObyk7CiAgICAgbV91c2VySGFzQ2hhbmdlZFBh
Z2VTY2FsZUZhY3RvciA9IHRydWU7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>