<?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>186468</bug_id>
          
          <creation_ts>2018-06-09 17:21:29 -0700</creation_ts>
          <short_desc>Reload the Web view in case of crash if the client does not implement webViewWebContentProcessDidTerminate delegate</short_desc>
          <delta_ts>2018-06-10 15:40:21 -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>WebKit2</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>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1431595</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-09 17:21:29 -0700</bug_when>
    <thetext>We should attempt to reload the Web view if the client does not implement webViewWebContentProcessDidTerminate delegate. Otherwise, clients not implementing the delegate get a blank view in case of a crash / jetsam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431606</commentid>
    <comment_count>1</comment_count>
      <attachid>342376</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-09 17:40:27 -0700</bug_when>
    <thetext>Created attachment 342376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431607</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-06-09 17:41:23 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431645</commentid>
    <comment_count>3</comment_count>
      <attachid>342376</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-06-10 09:26:19 -0700</bug_when>
    <thetext>Comment on attachment 342376
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5883
&gt; +    if (!handledByClient &amp;&amp; isCrashOrTerminationDueToProcessLimits(reason))
&gt; +        attemptAutomaticRecoveryAfterCrash();

Hmm, you meant &quot;is crash OR is termination due to process limits&quot; but I read it as &quot;is the reason for crash or termination due to process limits,&quot; which is confusing. I was going to complain that it should be !isCrashOrTerminationDueToProcessLimits(reason) because I was confused. Possible alternate names: isCrashOrIsTerminationDueToProcessLimits (clearer but unwieldy) or perhaps doesProcessTerminationReasonAllowAutomaticRecovery (maybe slightly better, also kinda unwieldy).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431648</commentid>
    <comment_count>4</comment_count>
      <attachid>342376</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-06-10 10:33:03 -0700</bug_when>
    <thetext>Comment on attachment 342376
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5860
&gt; +static bool isCrashOrTerminationDueToProcessLimits(ProcessTerminationReason reason)

How about calling this shouldReloadAfterProcessTermination() and calling the action function WebPageProxy::tryReloadAfterProcessTermination().

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5897
&gt; +    if (!m_resetRecentCrashCountTimer.isActive())
&gt; +        m_resetRecentCrashCountTimer.startOneShot(resetRecentCrashCountDelay);

I believe Safari&apos;s policy is to reload once per page (or maybe URL? or domain?). I think that policy is preferable. In addition to avoiding crash loops, we want to avoid giving malicious pages an opportunity to retry probabilistic attacks. For example, if ASLR reduces attack success to 1/10, the 20s timer increases attack success to 10/10 after three minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431656</commentid>
    <comment_count>5</comment_count>
      <attachid>342390</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-10 14:26:33 -0700</bug_when>
    <thetext>Created attachment 342390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431657</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-06-10 14:26:59 -0700</bug_when>
    <thetext>Now mimicking Safari behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431658</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-06-10 14:33:22 -0700</bug_when>
    <thetext>&gt; In addition to avoiding crash
&gt; loops, we want to avoid giving malicious pages an opportunity to retry
&gt; probabilistic attacks.

I was confused about the timer policy. I thought your patch *reloaded* after the timer fired. But that&apos;s not true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431659</commentid>
    <comment_count>8</comment_count>
      <attachid>342390</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-06-10 14:39:56 -0700</bug_when>
    <thetext>Comment on attachment 342390
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431672</commentid>
    <comment_count>9</comment_count>
      <attachid>342390</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-10 15:39:28 -0700</bug_when>
    <thetext>Comment on attachment 342390
Patch

Clearing flags on attachment: 342390

Committed r232668: &lt;https://trac.webkit.org/changeset/232668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431673</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-10 15:39:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1431674</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-10 15:40:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/40987290&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342376</attachid>
            <date>2018-06-09 17:40:27 -0700</date>
            <delta_ts>2018-06-10 14:26:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186468-20180609174026.patch</filename>
            <type>text/plain</type>
            <size>19782</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE5OGQ3MGNiZjI5OGNhMDIw
NzhjZmZhODBmOTEwZTFmMjM0NmI0MTcuLmY2ZWE5YTdhMjgwZTY5MTM3MzZlZjBjZDgxNmEzNGJl
YmFmM2RmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTgtMDYtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWxvYWQgdGhlIFdlYiB2aWV3IGlu
IGNhc2Ugb2YgY3Jhc2ggaWYgdGhlIGNsaWVudCBkb2VzIG5vdCBpbXBsZW1lbnQgd2ViVmlld1dl
YkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlIGRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgYXR0ZW1wdCB0byByZWxvYWQgdGhl
IFdlYiB2aWV3IGlmIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIGNyYXNoZXMgYW5kIHRoZSBjbGll
bnQKKyAgICAgICAgZG9lcyBub3QgaW1wbGVtZW50IHRoZSB3ZWJWaWV3V2ViQ29udGVudFByb2Nl
c3NEaWRUZXJtaW5hdGUgZGVsZWdhdGUgKG9yIGFueSBvZiB0aGUgc2ltaWxhcgorICAgICAgICBk
ZWxlZ2F0ZXMgaW4gb3VyIFNQSSkuCisKKyAgICAgICAgTm90ZSB0aGF0IHdlIGF0dGVtcHQgYXQg
bW9zdCAxIHJlbG9hZCBldmVyeSAyMCBzZWNvbmRzLiBJZiB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGNyYXNoZXMKKyAgICAgICAgdHdpY2Ugd2l0aGluIDIwIHNlY29uZHMsIHdlIHdpbGwgbm90IGF0
dGVtcHQgYSByZWxvYWQgdGhlIHNlY29uZCB0aW1lIHRvIGF2b2lkIGNyYXNoIGxvb3BpbmcuIAor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKEFQ
STo6TG9hZGVyQ2xpZW50Ojpwcm9jZXNzRGlkQ3Jhc2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uQ2xpZW50
Ojpwcm9jZXNzRGlkVGVybWluYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAgICAoV0tQ
YWdlU2V0UGFnZU5hdmlnYXRpb25DbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXROYXZpZ2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpw
cm9jZXNzRGlkVGVybWluYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9yZXNldFJlY2VudENyYXNoQ291bnRUaW1lcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hQcm9jZXNzRGlkVGVybWluYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFJlY2VudENyYXNoQ291bnQpOgor
ICAgICAgICAoV2ViS2l0OjptX2NvbmZpZ3VyYXRpb25QcmVmZXJlbmNlVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMTgtMDYtMDggIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYktpdCBv
biB3YXRjaE9TXSBVcHN0cmVhbSB3YXRjaE9TIHNvdXJjZSBhZGRpdGlvbnMgdG8gT3BlblNvdXJj
ZSAoUGFydCAxKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUxvYWRlckNsaWVu
dC5oCmluZGV4IDM4NDEwZGEwMjVkY2I2NzFmYjBjODkxMDVmMmFhYTM5NDY1MmZmNWYuLjI5ZThj
OTQ1NTcyNTExYzdiZjM0MDRmYjI2M2NmMGY5ZDNkYmU1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJTG9hZGVyQ2xpZW50LmgKQEAgLTg3LDcgKzg3LDcgQEAgcHVibGlj
OgogICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRo
aXMgY2xpZW50LgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZl
KFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRC
ZWNvbWVSZXNwb25zaXZlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHByb2Nlc3NEaWRDcmFzaChXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQorICAgIHZpcnR1
YWwgYm9vbCBwcm9jZXNzRGlkQ3Jhc2goV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbSosIFZlY3Rv
cjxSZWY8V2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtPj4mJikgeyB9CiAgICAgdmlydHVh
bCBib29sIHNob3VsZEtlZXBDdXJyZW50QmFja0ZvcndhcmRMaXN0SXRlbUluTGlzdChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZp
Z2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bkNsaWVudC5oCmluZGV4IDQ3MGY2NWZlYWFkYjcxZTExZTM1MjA0YTMzMjc3MzBlODgzYTZlMzIu
LjQ2ZTdkOTAyZGJlNTJkNWRmMzA3MzczODM1MzI0ZTZjNmM5MzQ4ODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtODksNyAr
ODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eSYpIHsgfQogCiAgICAgLy8gRklYTUU6IFRoZXNlIGZ1bmN0aW9uIHNob3Vs
ZCBub3QgYmUgcGFydCBvZiB0aGlzIGNsaWVudC4KLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZFRlcm1pbmF0ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2
ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlk
QmVjb21lVW5yZXNwb25zaXZlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDU4NjQ3Yzc0NzFjMzQ3MWRjZWUw
OGFjMjcwMWY5YmM1MWUxYWE1NjEuLjc4YzVlMWQ3ZjA5Yzc3NTdlNWRmZjMxY2IxZmFlOGE4Zjlm
ZGM1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTE5
OCwxMiArMTE5OCwxMyBAQCB2b2lkIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQoV0tQYWdlUmVm
IHBhZ2VSZWYsIGNvbnN0IFdLUGFnZUxvYWRlckNsaWVudEJhc2UqCiAgICAgICAgICAgICBtX2Ns
aWVudC5wcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZSh0b0FQSSgmcGFnZSksIG1fY2xpZW50LmJh
c2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHByb2Nlc3NEaWRDcmFz
aChXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRlCisgICAgICAgIGJvb2wgcHJvY2Vzc0RpZENy
YXNoKFdlYlBhZ2VQcm94eSYgcGFnZSkgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAg
aWYgKCFtX2NsaWVudC5wcm9jZXNzRGlkQ3Jhc2gpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgbV9jbGllbnQucHJv
Y2Vzc0RpZENyYXNoKHRvQVBJKCZwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBkaWRDaGFu
Z2VCYWNrRm9yd2FyZExpc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxSZWY8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4+JiYgcmVt
b3ZlZEl0ZW1zKSBvdmVycmlkZQpAQCAtMjI5OSwxNSArMjMwMCwxOSBAQCB2b2lkIFdLUGFnZVNl
dFBhZ2VOYXZpZ2F0aW9uQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VOYXZp
Z2F0aW9uQ2xpZQogICAgICAgICAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHJv
Y2Vzc0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYktpdDo6UHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKKyAgICAgICAgYm9vbCBwcm9jZXNzRGlkVGVy
bWluYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViS2l0OjpQcm9jZXNzVGVybWluYXRpb25SZWFz
b24gcmVhc29uKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQu
d2ViUHJvY2Vzc0RpZFRlcm1pbmF0ZSkgewogICAgICAgICAgICAgICAgIG1fY2xpZW50LndlYlBy
b2Nlc3NEaWRUZXJtaW5hdGUodG9BUEkoJnBhZ2UpLCB0b0FQSShyZWFzb24pLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKG1fY2xpZW50
LndlYlByb2Nlc3NEaWRDcmFzaCAmJiByZWFzb24gIT0gV2ViS2l0OjpQcm9jZXNzVGVybWluYXRp
b25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KQorICAgICAgICAgICAgaWYgKG1fY2xpZW50Lndl
YlByb2Nlc3NEaWRDcmFzaCAmJiByZWFzb24gIT0gV2ViS2l0OjpQcm9jZXNzVGVybWluYXRpb25S
ZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50KSB7CiAgICAgICAgICAgICAgICAgbV9jbGllbnQud2Vi
UHJvY2Vzc0RpZENyYXNoKHRvQVBJKCZwYWdlKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgUmVmUHRyPEFQSTo6RGF0YT4g
d2ViQ3J5cHRvTWFzdGVyS2V5KFdlYlBhZ2VQcm94eSYgcGFnZSkgb3ZlcnJpZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmlu
ZGV4IGE1NzIxZGJkMzczYjY4NjFmOTU0Y2IxN2M3N2VmYWNmZWM4ODdjYzAuLjE4YWM2Yjg2MTY2
NWI0NzE2MzUwY2QyZDk3OWQ0MWNkMDA2ZTJiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjM0LDggKzIzNCw2
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogCiAtICh2
b2lkKV9zZXRPdmVybGFpZEFjY2Vzc29yeVZpZXdzSW5zZXQ6KENHU2l6ZSlpbnNldDsKIAotLSAo
dm9pZClfa2lsbFdlYkNvbnRlbnRQcm9jZXNzOwotCiAvLyBQdXRzIHRoZSB2aWV3IGludG8gYSBz
dGF0ZSB3aGVyZSBiZWluZyB0YWtlbiBvdXQgb2YgdGhlIHZpZXcgaGllcmFyY2h5IGFuZCByZXNp
Z25pbmcgZmlyc3QgcmVzcG9uZGVyCiAvLyB3aWxsIG5vdCBjb3VudCBhcyBiZWNvbWluZyBpbmFj
dGl2ZSBhbmQgdW5mb2N1c2VkLiBUaGUgcmV0dXJuZWQgYmxvY2sgbXVzdCBiZSBjYWxsZWQgdG8g
ZXhpdCB0aGUgc3RhdGUuCiAtICh2b2lkICheKSh2b2lkKSlfcmV0YWluQWN0aXZlRm9jdXNlZFN0
YXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwpAQCAtMzA0LDYgKzMwMiw3IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAoV0tOYXZpZ2F0aW9u
ICopX3JlbG9hZFdpdGhvdXRDb250ZW50QmxvY2tlcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTIpLCBpb3MoMTAuMCkpOwogLSAoV0tOYXZpZ2F0aW9uICopX3JlbG9hZEV4cGlyZWRPbmx5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIAorLSAodm9pZClf
a2lsbFdlYkNvbnRlbnRQcm9jZXNzOwogLSAodm9pZClfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5k
UmVzZXRTdGF0ZTsKIAogLSAodm9pZClfZ2V0TWFpblJlc291cmNlRGF0YVdpdGhDb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZp
Z2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dE5hdmlnYXRpb25DbGllbnQuY3BwCmluZGV4IDQzMjliNWQ1YjgwNWNhZDEyODMxZWE0ZmMzNzJk
YWVhNjU0Yzg0YTkuLjg0MmI5NzQwOGUyZjRkODM1MWQwYmI0NzkwNTc3ZGZjZjc2MGM2NTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRp
b25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dE5hdmlnYXRpb25DbGllbnQuY3BwCkBAIC0xMDUsMjAgKzEwNSwyMSBAQCBwcml2YXRlOgogICAg
ICAgICB3ZWJraXRXZWJWaWV3SGFuZGxlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV93ZWJWaWV3
LCAmYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOwogICAgIH0KIAotICAgIHZvaWQgcHJvY2Vzc0Rp
ZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmLCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29u
KSBvdmVycmlkZQorICAgIGJvb2wgcHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmLCBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKSBvdmVycmlkZQogICAgIHsKICAgICAgICAg
c3dpdGNoIChyZWFzb24pIHsKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246
OkNyYXNoOgogICAgICAgICAgICAgd2Via2l0V2ViVmlld1dlYlByb2Nlc3NUZXJtaW5hdGVkKG1f
d2ViVmlldywgV0VCS0lUX1dFQl9QUk9DRVNTX0NSQVNIRUQpOwotICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgY2FzZSBQcm9jZXNzVGVybWluYXRp
b25SZWFzb246OkV4Y2VlZGVkTWVtb3J5TGltaXQ6CiAgICAgICAgICAgICB3ZWJraXRXZWJWaWV3
V2ViUHJvY2Vzc1Rlcm1pbmF0ZWQobV93ZWJWaWV3LCBXRUJLSVRfV0VCX1BST0NFU1NfRVhDRUVE
RURfTUVNT1JZX0xJTUlUKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQ
VUxpbWl0OgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVk
QnlDbGllbnQ6CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpOYXZpZ2F0
aW9uU3dhcDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
V2ViUGFnZVByb3h5JiwgUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9uQWN0
aW9uLCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiYmIGxpc3RlbmVyLCBBUEk6Ok9i
amVjdCogLyogdXNlckRhdGEgKi8pIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCmluZGV4IGY4ZjI4NTU5NDlmMmQ3MmU5MjJkZDlj
NWFlNDRmODRhNTQ2Nzc2ZWIuLjJiZmU2NWM4YmViMTEzMGNjNTMwMGFiNmUyNTI5OThmZTNkMWVi
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0
ZS5oCkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBib29sIGNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViUGFnZVByb3h5JiwgV2ViUHJvdGVjdGlv
blNwYWNlKikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYlBhZ2VQcm94eSYsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkmKSBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCBwcm9jZXNzRGlkVGVybWluYXRlKFdlYlBhZ2VQcm94eSYs
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikgb3ZlcnJpZGU7CisgICAgICAgIGJvb2wgcHJvY2Vz
c0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmLCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24pIG92
ZXJyaWRlOwogICAgICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKFdlYlBhZ2VQ
cm94eSYpIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHByb2Nlc3NEaWRCZWNvbWVVbnJlc3BvbnNp
dmUoV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA4YzNmYTlkNzQ5NjAyNmIwYjYzMWFh
N2ExMWY5YzJmYTEyODdlMGJiLi42ZjA3ZWUxM2I2ZGM0ZTM0OWJlNTU3ZjdiY2QxYmVhMWIyZDg0
OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tCkBAIC05NzcsMzAgKzk3NywzMSBAQCBzdGF0aWMgX1dLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uIHdrUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKFByb2Nlc3NUZXJtaW5hdGlvbgogICAg
IHJldHVybiBfV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb25DcmFzaDsKIH0KIAotdm9pZCBOYXZp
Z2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQorYm9vbCBOYXZp
Z2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogewogICAgIGlm
ICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdX
ZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZQogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3Rh
dGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0Rp
ZFRlcm1pbmF0ZVdpdGhSZWFzb24KICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gbmF2aWdhdGlvbkRl
bGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVXaXRoUmVhc29u
KSB7CiAgICAgICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRl
Pj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5t
X3dlYlZpZXcgd2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVXaXRoUmVhc29uOndrUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uKHJlYXNvbildOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIFdlIHByZWZlciB3ZWJWaWV3V2ViQ29udGVudFBy
b2Nlc3NEaWRUZXJtaW5hdGU6IG92ZXIgX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6LgogICAg
IGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlKSB7CiAgICAgICAgIFtuYXZpZ2F0aW9uRGVs
ZWdhdGUgd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlOm1fbmF2aWdhdGlvblN0
YXRlLm1fd2ViVmlld107Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCiAgICAgQVNTRVJUKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoKTsKICAgICBbc3RhdGljX2Nhc3Q8aWQg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSkg
X3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3XTsK
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25D
bGllbnQ6OnByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlKFdlYlBhZ2VQcm94eSYgcGFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRkZDBhZWM4ZDhjNmZl
MWYwY2RhMzc3ZjJmZTZjOWQzNjMyMjkyZDIuLjg0YTdkYmE5ZWE2Y2Q2NDQ0MDQ4MWI1YWVlNzk5
NzEzMjMzMDQwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMjI3LDYgKzIyNyw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogLy8gUmVwcmVzZW50
cyB0aGUgbnVtYmVyIG9mIHdoZWVsIGV2ZW50cyB3ZSBjYW4gaG9sZCBpbiB0aGUgcXVldWUgYmVm
b3JlIHdlIHN0YXJ0IHB1c2hpbmcgdGhlbSBwcmVlbXB0aXZlbHkuCiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgd2hlZWxFdmVudFF1ZXVlU2l6ZVRocmVzaG9sZCA9IDEwOwogCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyByZXNldFJlY2VudENyYXNoQ291bnREZWxheSA9IDIwX3M7CitzdGF0aWMgdW5zaWdu
ZWQgbWF4aW11bVdlYlByb2Nlc3NSZWxhdW5jaEF0dGVtcHRzID0gMTsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291
bnRlciwgd2ViUGFnZVByb3h5Q291bnRlciwgKCJXZWJQYWdlUHJveHkiKSk7CkBAIC00MDgsNiAr
NDExLDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVu
dCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW4KICNlbmRpZgogICAgICwgbV9wYWdlTG9h
ZFN0YXRlKCp0aGlzKQogICAgICwgbV9jb25maWd1cmF0aW9uUHJlZmVyZW5jZVZhbHVlcyhtX2Nv
bmZpZ3VyYXRpb24tPnByZWZlcmVuY2VWYWx1ZXMoKSkKKyAgICAsIG1fcmVzZXRSZWNlbnRDcmFz
aENvdW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFnZVByb3h5OjpyZXNldFJl
Y2VudENyYXNoQ291bnQpCiB7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFja2VyLmFkZE9i
c2VydmVyKG1fdmlzaXRlZExpbmtTdG9yZSk7CiAgICAgbV93ZWJQcm9jZXNzTGlmZXRpbWVUcmFj
a2VyLmFkZE9ic2VydmVyKG1fd2Vic2l0ZURhdGFTdG9yZSk7CkBAIC01ODUzLDEyICs1ODU3LDQ5
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcm9jZXNzRGlkVGVybWluYXRlKFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbiByZWFzb24pCiAgICAgc3RvcEFsbFVSTFNjaGVtZVRhc2tzKCk7CiB9CiAKK3N0
YXRpYyBib29sIGlzQ3Jhc2hPclRlcm1pbmF0aW9uRHVlVG9Qcm9jZXNzTGltaXRzKFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBj
YXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRNZW1vcnlMaW1pdDoKKyAgICBj
YXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdDoKKyAgICBjYXNl
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6Q3Jhc2g6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpOYXZpZ2F0aW9uU3dhcDoKKyAgICBj
YXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVkQnlDbGllbnQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5
OjpkaXNwYXRjaFByb2Nlc3NEaWRUZXJtaW5hdGUoUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJl
YXNvbikKIHsKKyAgICBib29sIGhhbmRsZWRCeUNsaWVudCA9IGZhbHNlOwogICAgIGlmIChtX25h
dmlnYXRpb25DbGllbnQpCi0gICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cHJvY2Vzc0RpZFRl
cm1pbmF0ZSgqdGhpcywgcmVhc29uKTsKKyAgICAgICAgaGFuZGxlZEJ5Q2xpZW50ID0gbV9uYXZp
Z2F0aW9uQ2xpZW50LT5wcm9jZXNzRGlkVGVybWluYXRlKCp0aGlzLCByZWFzb24pOwogICAgIGVs
c2UgaWYgKHJlYXNvbiAhPSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xp
ZW50KQotICAgICAgICBtX2xvYWRlckNsaWVudC0+cHJvY2Vzc0RpZENyYXNoKCp0aGlzKTsKKyAg
ICAgICAgaGFuZGxlZEJ5Q2xpZW50ID0gbV9sb2FkZXJDbGllbnQtPnByb2Nlc3NEaWRDcmFzaCgq
dGhpcyk7CisKKyAgICBpZiAoIWhhbmRsZWRCeUNsaWVudCAmJiBpc0NyYXNoT3JUZXJtaW5hdGlv
bkR1ZVRvUHJvY2Vzc0xpbWl0cyhyZWFzb24pKQorICAgICAgICBhdHRlbXB0QXV0b21hdGljUmVj
b3ZlcnlBZnRlckNyYXNoKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjphdHRlbXB0QXV0b21h
dGljUmVjb3ZlcnlBZnRlckNyYXNoKCkKK3sKKyAgICBpZiAoKyttX3JlY2VudENyYXNoQ291bnQg
PiBtYXhpbXVtV2ViUHJvY2Vzc1JlbGF1bmNoQXR0ZW1wdHMpIHsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiJXAgLSBXZWJQYWdlUHJveHkncyBwcm9jZXNzIGNyYXNo
ZWQgYW5kIHRoZSBjbGllbnQgZGlkIG5vdCBoYW5kbGUgaXQsIG5vdCByZWxvYWRpbmcgdGhlIHBh
Z2UgYmVjYXVzZSB3ZSByZWFjaGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhdHRlbXB0cyIsIHRo
aXMpOworICAgICAgICBtX3JlY2VudENyYXNoQ291bnQgPSAwOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2VzcywgIiVwIC0gV2ViUGFnZVBy
b3h5J3MgcHJvY2VzcyBjcmFzaGVkIGFuZCB0aGUgY2xpZW50IGRpZCBub3QgaGFuZGxlIGl0LCBy
ZWxvYWRpbmcgdGhlIHBhZ2UiLCB0aGlzKTsKKyAgICByZWxvYWQoUmVsb2FkT3B0aW9uOjpFeHBp
cmVkT25seSk7CisKKyAgICBpZiAoIW1fcmVzZXRSZWNlbnRDcmFzaENvdW50VGltZXIuaXNBY3Rp
dmUoKSkKKyAgICAgICAgbV9yZXNldFJlY2VudENyYXNoQ291bnRUaW1lci5zdGFydE9uZVNob3Qo
cmVzZXRSZWNlbnRDcmFzaENvdW50RGVsYXkpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVz
ZXRSZWNlbnRDcmFzaENvdW50KCkKK3sKKyAgICBtX3JlY2VudENyYXNoQ291bnQgPSAwOwogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcEFsbFVSTFNjaGVtZVRhc2tzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmI2MmEzODljNDEzNzU2MTIzOTFjOTNlODYw
MzMyMmQxMTIxNzVmOC4uNmRmMmJmOTc0YWU1MDY5NDY5YzczNTMyMjJkMzZhM2FmZDY1NjRmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTkyLDYgKzkyLDcgQEAK
ICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTcyNCw2
ICsxNzI1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRG
b3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50
NjRfdCBmcmFtZUlEKTsKICNlbmRpZgogCisgICAgdm9pZCBhdHRlbXB0QXV0b21hdGljUmVjb3Zl
cnlBZnRlckNyYXNoKCk7CisgICAgdm9pZCByZXNldFJlY2VudENyYXNoQ291bnQoKTsKKwogICAg
IEFQSTo6RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQqIGVmZmVjdGl2ZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50KFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAKICAgICB2b2lkIGRpc3BhdGNoQWN0aXZp
dHlTdGF0ZUNoYW5nZSgpOwpAQCAtMjE3Myw2ICsyMTc3LDEwIEBAIHByaXZhdGU6CiAgICAgLy8g
YW5kIGhhdmUgYSBnbG9iYWwgY29sbGVjdGlvbiBvZiB0aGVtIHBlciBwcm9jZXNzIHBvb2wKICAg
ICAvLyAoZS5nLiBmb3IgdGhhdCBwcm9jZXNzIHBvb2wncyBwYWdlIGNhY2hlKQogICAgIFJlZlB0
cjxTdXNwZW5kZWRQYWdlUHJveHk+IG1fc3VzcGVuZGVkUGFnZTsKKworICAgIFJ1bkxvb3A6OlRp
bWVyPFdlYlBhZ2VQcm94eT4gbV9yZXNldFJlY2VudENyYXNoQ291bnRUaW1lcjsKKyAgICB1bnNp
Z25lZCBtX3JlY2VudENyYXNoQ291bnQgeyAwIH07CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDhiMTViMzE3ZTRjZjFlNzgyYzM4MTY1ZDNkZDcyMjkyOWExY2E4ZDguLmE3Y2JlYWZiMjM2YWRi
NjIyZWE1NWQ3OGE3ZjgzMzdlMjQxOWE1NTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNi0wOSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbG9hZCB0aGUgV2ViIHZpZXcg
aW4gY2FzZSBvZiBjcmFzaCBpZiB0aGUgY2xpZW50IGRvZXMgbm90IGltcGxlbWVudCB3ZWJWaWV3
V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUgZGVsZWdhdGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjQ2OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFByb2Nl
c3NEaWRUZXJtaW5hdGUubW06CisgICAgICAgICgtW0Jhc2ljTmF2aWdhdGlvbkRlbGVnYXRlV2l0
aG91dENyYXNoSGFuZGxlciB3ZWJWaWV3OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOl0p
OgorICAgICAgICAoLVtCYXNpY05hdmlnYXRpb25EZWxlZ2F0ZVdpdGhvdXRDcmFzaEhhbmRsZXIg
d2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTgt
MDYtMDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0g
UmVtb3ZlIGFsbCB1c2VzIG9mIE5TQXV0b3JlbGVhc2VQb29sIGFzIHBhcnQgb2YgcHJlcGFyYXRp
b24gZm9yIEFSQwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0KaW5k
ZXggODJlODJjZjRiZDk4NzUwZDFiMGVkYTI0YTA2YzE3Y2U3ZjA0ZGQ4Ni4uODA1MjZkMTIxM2Mz
MjY3ZGNjYmY3MDYyMDhlNWQwMmI2YjQwMWM2YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlLm1tCkBAIC0zMywxMCArMzMsMTIgQEAKICNpbXBvcnQgPFdlYktpdC9X
S05hdmlnYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXcuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dl
YlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHN0YXRpYyBib29s
IGRpZENyYXNoOwogc3RhdGljIF9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiBleHBlY3RlZENy
YXNoUmVhc29uOworc3RhdGljIGJvb2wgc3RhcnRlZExvYWQ7CiBzdGF0aWMgYm9vbCBmaW5pc2hl
ZExvYWQ7CiBzdGF0aWMgYm9vbCBzaG91bGRMb2FkQWdhaW5PbkNyYXNoOwogc3RhdGljIGJvb2wg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlOwpAQCAtNjcsNiArNjksMjIgQEAgLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAq
KW5hdmlnYXQKIAogQGVuZAogCitAaW50ZXJmYWNlIEJhc2ljTmF2aWdhdGlvbkRlbGVnYXRlV2l0
aG91dENyYXNoSGFuZGxlciA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIEJhc2ljTmF2aWdhdGlvbkRlbGVnYXRlV2l0aG91dENyYXNoSGFu
ZGxlcgorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb246KG51bGxfdW5zcGVjaWZpZWQgV0tOYXZpZ2F0aW9uICopbmF2aWdh
dGlvbgoreworICAgIHN0YXJ0ZWRMb2FkID0gdHJ1ZTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5h
dmlnYXRpb24KK3sKKyAgICBmaW5pc2hlZExvYWQgPSB0cnVlOworfQorQGVuZAorCiBAaW50ZXJm
YWNlIENyYXNoUmVjb3ZlcnlTY3JpcHRNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPgogQGVuZAogCkBAIC0xNTQsNCArMTcyLDM4IEBAIFRFU1QoV0tOYXZp
Z2F0aW9uLCBGYWlsdXJlVG9TdGFydFdlYlByb2Nlc3NBZnRlckNyYXNoUmVjb3ZlcnkpCiAgICAg
RVhQRUNUX1RSVUUocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIH0KIAorVEVTVChXS05hdmlnYXRp
b24sIEF1dG9tYXRpY1ZpZXdSZWxvYWRBZnRlcldlYlByb2Nlc3NDcmFzaCkKK3sKKyAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKV0pOworCisgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tCYXNpY05hdmlnYXRpb25EZWxlZ2F0ZVdpdGhvdXRDcmFzaEhhbmRs
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOworCisgICAgc3RhcnRlZExvYWQgPSBmYWxzZTsKKyAgICBmaW5pc2hlZExv
YWQgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInJpY2gt
YW5kLXBsYWluLXRleHQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZExvYWQpOworCisgICAgc3RhcnRlZExvYWQgPSBmYWxzZTsKKyAgICBmaW5pc2hlZExv
YWQgPSBmYWxzZTsKKworICAgIC8vIFNpbXVsYXRlIGNyYXNoLgorICAgIFt3ZWJWaWV3IF9raWxs
V2ViQ29udGVudFByb2Nlc3NdOworCisgICAgLy8gU2luY2Ugd2UgZG8gbm90IGRlYWwgd2l0aCB0
aGUgY3Jhc2gsIFdlYktpdCBzaG91bGQgYXR0ZW1wdCBhIHJlbG9hZC4KKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisKKyAgICBzdGFydGVkTG9hZCA9IGZhbHNl
OworICAgIGZpbmlzaGVkTG9hZCA9IGZhbHNlOworCisgICAgLy8gU2ltdWxhdGUgYW5vdGhlciBj
cmFzaC4KKyAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzXTsKKworICAgIC8vIFdl
YktpdCBzaG91bGQgbm90IGF0dGVtcHQgdG8gcmVsb2FkIGFnYWluLgorICAgIEVYUEVDVF9GQUxT
RShzdGFydGVkTG9hZCk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAg
ICBFWFBFQ1RfRkFMU0Uoc3RhcnRlZExvYWQpOworfQorCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJM
RUQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342390</attachid>
            <date>2018-06-10 14:26:33 -0700</date>
            <delta_ts>2018-06-10 15:39:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186468-20180610142631.patch</filename>
            <type>text/plain</type>
            <size>20217</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE5OGQ3MGNiZjI5OGNhMDIw
NzhjZmZhODBmOTEwZTFmMjM0NmI0MTcuLjlhYjFjMTdlNjY4MGJhZTc0MDY5MDc2ZjQ4MTk1YjVi
NDk1NjYxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTgtMDYtMTAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWxvYWQgdGhlIFdlYiB2aWV3IGlu
IGNhc2Ugb2YgY3Jhc2ggaWYgdGhlIGNsaWVudCBkb2VzIG5vdCBpbXBsZW1lbnQgd2ViVmlld1dl
YkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlIGRlbGVnYXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY0NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgYXR0ZW1wdCB0byByZWxvYWQgdGhl
IFdlYiB2aWV3IGlmIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIGNyYXNoZXMgYW5kIHRoZSBjbGll
bnQKKyAgICAgICAgZG9lcyBub3QgaW1wbGVtZW50IHRoZSB3ZWJWaWV3V2ViQ29udGVudFByb2Nl
c3NEaWRUZXJtaW5hdGUgZGVsZWdhdGUgKG9yIGFueSBvZiB0aGUgc2ltaWxhcgorICAgICAgICBk
ZWxlZ2F0ZXMgaW4gb3VyIFNQSSkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAoQVBJOjpMb2FkZXJDbGllbnQ6OnByb2Nlc3NEaWRDcmFzaCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRUZXJtaW5hdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZUxvYWRl
ckNsaWVudCk6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGllbnQuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OnByb2Nlc3NEaWRUZXJtaW5hdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3Jlc2V0UmVjZW50
Q3Jhc2hDb3VudFRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRSZWxvYWRBZnRlclByb2Nl
c3NUZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hQ
cm9jZXNzRGlkVGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0cnlS
ZWxvYWRBZnRlclByb2Nlc3NUZXJtaW5hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cmVzZXRSZWNlbnRDcmFzaENvdW50U29vbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cmVzZXRSZWNlbnRDcmFzaENvdW50KToKKyAgICAgICAgKFdlYktpdDo6bV9jb25m
aWd1cmF0aW9uUHJlZmVyZW5jZVZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorCiAyMDE4LTA2LTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJLaXQgb24gd2F0Y2hPU10gVXBzdHJlYW0gd2F0
Y2hPUyBzb3VyY2UgYWRkaXRpb25zIHRvIE9wZW5Tb3VyY2UgKFBhcnQgMSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElMb2FkZXJDbGllbnQuaAppbmRleCAzODQxMGRhMDI1ZGNi
NjcxZmIwYzg5MTA1ZjJhYWEzOTQ2NTJmZjVmLi4yOWU4Yzk0NTU3MjUxMWM3YmYzNDA0ZmIyNjNj
ZjBmOWQzZGJlNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUxvYWRl
ckNsaWVudC5oCkBAIC04Nyw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogVGhlc2Ug
ZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGlzIGNsaWVudC4KICAgICB2aXJ0dWFs
IHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJLaXQ6
OldlYlBhZ2VQcm94eSYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc0RpZENyYXNo
KFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qLCBWZWN0b3I8UmVmPFdlYktpdDo6V2ViQmFja0Zv
cndhcmRMaXN0SXRlbT4+JiYpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRLZWVwQ3VycmVu
dEJhY2tGb3J3YXJkTGlzdEl0ZW1Jbkxpc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6
OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAppbmRleCA0NzBmNjVm
ZWFhZGI3MWUxMWUzNTIwNGEzMzI3NzMwZTg4M2E2ZTMyLi40NmU3ZDkwMmRiZTUyZDVkZjMwNzM3
MzgzNTMyNGU2YzZjOTM0ODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTg5LDcgKzg5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkmKSB7IH0KIAog
ICAgIC8vIEZJWE1FOiBUaGVzZSBmdW5jdGlvbiBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhpcyBj
bGllbnQuCi0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBXZWJLaXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikgeyB9CisgICAgdmly
dHVhbCBib29sIHByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUoV2ViS2l0OjpXZWJQYWdlUHJveHkm
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVVucmVzcG9uc2l2ZShXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcAppbmRleCA1ODY0N2M3NDcxYzM0NzFkY2VlMDhhYzI3MDFmOWJjNTFlMWFhNTYxLi43
OGM1ZTFkN2YwOWM3NzU3ZTVkZmYzMWNiMWZhZThhOGY5ZmRjNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTExOTgsMTIgKzExOTgsMTMgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VM
b2FkZXJDbGllbnRCYXNlKgogICAgICAgICAgICAgbV9jbGllbnQucHJvY2Vzc0RpZEJlY29tZVJl
c3BvbnNpdmUodG9BUEkoJnBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogICAgICAg
ICB9CiAKLSAgICAgICAgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV2ViUGFnZVByb3h5JiBwYWdlKSBv
dmVycmlkZQorICAgICAgICBib29sIHByb2Nlc3NEaWRDcmFzaChXZWJQYWdlUHJveHkmIHBhZ2Up
IG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghbV9jbGllbnQucHJvY2Vzc0Rp
ZENyYXNoKQotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgICAgIG1fY2xpZW50LnByb2Nlc3NEaWRDcmFzaCh0b0FQSSgmcGFn
ZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYlBh
Z2VQcm94eSYgcGFnZSwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8
UmVmPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+PiYmIHJlbW92ZWRJdGVtcykgb3ZlcnJpZGUKQEAg
LTIyOTksMTUgKzIzMDAsMTkgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudChX
S1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlTmF2aWdhdGlvbkNsaWUKICAgICAgICAgICAg
IG1fY2xpZW50LmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0b0FQSSgmcGFnZSks
IHRvQVBJKCZhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5m
byk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBXZWJLaXQ6OlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24pIG92
ZXJyaWRlCisgICAgICAgIGJvb2wgcHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmIHBh
Z2UsIFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKG1fY2xpZW50LndlYlByb2Nlc3NEaWRUZXJtaW5hdGUp
IHsKICAgICAgICAgICAgICAgICBtX2NsaWVudC53ZWJQcm9jZXNzRGlkVGVybWluYXRlKHRvQVBJ
KCZwYWdlKSwgdG9BUEkocmVhc29uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGlmIChtX2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jhc2ggJiYg
cmVhc29uICE9IFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUNs
aWVudCkKKyAgICAgICAgICAgIGlmIChtX2NsaWVudC53ZWJQcm9jZXNzRGlkQ3Jhc2ggJiYgcmVh
c29uICE9IFdlYktpdDo6UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpSZXF1ZXN0ZWRCeUNsaWVu
dCkgewogICAgICAgICAgICAgICAgIG1fY2xpZW50LndlYlByb2Nlc3NEaWRDcmFzaCh0b0FQSSgm
cGFnZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfQogCiAgICAgICAgIFJlZlB0cjxBUEk6OkRhdGE+IHdlYkNyeXB0b01hc3RlcktleShXZWJQ
YWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhNTcyMWRiZDM3M2I2ODYxZjk1
NGNiMTdjNzdlZmFjZmVjODg3Y2MwLi4xOGFjNmI4NjE2NjViNDcxNjM1MGNkMmQ5NzlkNDFjZDAw
NmUyYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKQEAgLTIzNCw4ICsyMzQsNiBAQCB0eXBlZGVmIE5TX09QVElPTlMo
TlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogLSAodm9pZClfc2V0T3ZlcmxhaWRBY2Nlc3Nv
cnlWaWV3c0luc2V0OihDR1NpemUpaW5zZXQ7CiAKLS0gKHZvaWQpX2tpbGxXZWJDb250ZW50UHJv
Y2VzczsKLQogLy8gUHV0cyB0aGUgdmlldyBpbnRvIGEgc3RhdGUgd2hlcmUgYmVpbmcgdGFrZW4g
b3V0IG9mIHRoZSB2aWV3IGhpZXJhcmNoeSBhbmQgcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlcgog
Ly8gd2lsbCBub3QgY291bnQgYXMgYmVjb21pbmcgaW5hY3RpdmUgYW5kIHVuZm9jdXNlZC4gVGhl
IHJldHVybmVkIGJsb2NrIG11c3QgYmUgY2FsbGVkIHRvIGV4aXQgdGhlIHN0YXRlLgogLSAodm9p
ZCAoXikodm9pZCkpX3JldGFpbkFjdGl2ZUZvY3VzZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKGlv
cyg5XzApKTsKQEAgLTMwNCw2ICszMDIsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdl
ciwgX1dLUmVjdEVkZ2UpIHsKIC0gKFdLTmF2aWdhdGlvbiAqKV9yZWxvYWRXaXRob3V0Q29udGVu
dEJsb2NrZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIC0g
KFdLTmF2aWdhdGlvbiAqKV9yZWxvYWRFeHBpcmVkT25seSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMyksIGlvcygxMS4wKSk7CiAKKy0gKHZvaWQpX2tpbGxXZWJDb250ZW50UHJvY2VzczsK
IC0gKHZvaWQpX2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGU7CiAKIC0gKHZvaWQp
X2dldE1haW5SZXNvdXJjZURhdGFXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0
YSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApp
bmRleCA0MzI5YjVkNWI4MDVjYWQxMjgzMWVhNGZjMzcyZGFlYTY1NGM4NGE5Li44NDJiOTc0MDhl
MmY0ZDgzNTFkMGJiNDc5MDU3N2RmY2Y3NjBjNjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcApA
QCAtMTA1LDIwICsxMDUsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2ViVmlld0hhbmRs
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKG1fd2ViVmlldywgJmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKTsKICAgICB9CiAKLSAgICB2b2lkIHByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFnZVByb3h5
JiwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikgb3ZlcnJpZGUKKyAgICBib29sIHBy
b2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFnZVByb3h5JiwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
IHJlYXNvbikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHN3aXRjaCAocmVhc29uKSB7CiAgICAg
ICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpDcmFzaDoKICAgICAgICAgICAgIHdl
YmtpdFdlYlZpZXdXZWJQcm9jZXNzVGVybWluYXRlZChtX3dlYlZpZXcsIFdFQktJVF9XRUJfUFJP
Q0VTU19DUkFTSEVEKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZE1lbW9y
eUxpbWl0OgogICAgICAgICAgICAgd2Via2l0V2ViVmlld1dlYlByb2Nlc3NUZXJtaW5hdGVkKG1f
d2ViVmlldywgV0VCS0lUX1dFQl9QUk9DRVNTX0VYQ0VFREVEX01FTU9SWV9MSU1JVCk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFBy
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6RXhjZWVkZWRDUFVMaW1pdDoKICAgICAgICAgY2FzZSBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3RlZEJ5Q2xpZW50OgogICAgICAgICBjYXNl
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3YXA6CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSYsIFJlZjxBUEk6
Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgUmVmPFdlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eT4mJiBsaXN0ZW5lciwgQVBJOjpPYmplY3QqIC8qIHVzZXJEYXRhICovKSBv
dmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaAppbmRleCBmOGYyODU1OTQ5ZjJkNzJlOTIyZGQ5YzVhZTQ0Zjg0YTU0Njc3NmViLi4yYmZl
NjVjOGJlYjExMzBjYzUzMDBhYjZlMjUyOTk4ZmUzZDFlYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtMTEwLDcgKzExMCw3IEBA
IHByaXZhdGU6CiAKICAgICAgICAgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKFdlYlBhZ2VQcm94eSYsIFdlYlByb3RlY3Rpb25TcGFjZSopIG92ZXJyaWRlOwogICAg
ICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJQYWdlUHJveHkm
LCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Jikgb3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQg
cHJvY2Vzc0RpZFRlcm1pbmF0ZShXZWJQYWdlUHJveHkmLCBQcm9jZXNzVGVybWluYXRpb25SZWFz
b24pIG92ZXJyaWRlOworICAgICAgICBib29sIHByb2Nlc3NEaWRUZXJtaW5hdGUoV2ViUGFnZVBy
b3h5JiwgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBw
cm9jZXNzRGlkQmVjb21lUmVzcG9uc2l2ZShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICAgICAg
ICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlKFdlYlBhZ2VQcm94eSYpIG92ZXJy
aWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KaW5kZXggOGMzZmE5ZDc0OTYwMjZiMGI2MzFhYTdhMTFmOWMyZmExMjg3ZTBiYi4uNmYw
N2VlMTNiNmRjNGUzNDliZTU1N2Y3YmNkMWJlYTFiMmQ4NDk4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtOTc3LDMwICs5Nzcs
MzEgQEAgc3RhdGljIF9XS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiB3a1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbihQcm9jZXNzVGVybWluYXRpb24KICAgICByZXR1cm4gX1dLUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uQ3Jhc2g7CiB9CiAKLXZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9u
Q2xpZW50Ojpwcm9jZXNzRGlkVGVybWluYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbikKK2Jvb2wgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9u
Q2xpZW50Ojpwcm9jZXNzRGlkVGVybWluYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJt
aW5hdGUKICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVXaXRoUmVhc29uCiAg
ICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld1dlYlByb2Nlc3NEaWRDcmFzaCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0
YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVn
YXRlKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICht
X25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYkNv
bnRlbnRQcm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbikgewogICAgICAgICBbc3RhdGljX2Nh
c3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5hdmlnYXRpb25EZWxlZ2F0ZS5n
ZXQoKSkgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IHdlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbjp3a1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbihyZWFz
b24pXTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAg
ICAvLyBXZSBwcmVmZXIgd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlOiBvdmVy
IF93ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoOi4KICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUu
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRl
cm1pbmF0ZSkgewogICAgICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXdXZWJDb250ZW50
UHJvY2Vzc0RpZFRlcm1pbmF0ZTptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXddOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIEFTU0VSVChtX25h
dmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYlByb2Nl
c3NEaWRDcmFzaCk7CiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3V2ViUHJvY2Vzc0RpZENy
YXNoOm1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlld107CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkQmVjb21l
UmVzcG9uc2l2ZShXZWJQYWdlUHJveHkmIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCA0ZGQwYWVjOGQ4YzZmZTFmMGNkYTM3N2YyZmU2YzlkMzYzMjI5
MmQyLi43ZWYwYzJkMDdmYzE2NDZkZjNkYTM5NzY3NjU5ODc3ZmI2ZTQwYjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIyNyw2ICsyMjcsOSBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIC8vIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiB3aGVlbCBl
dmVudHMgd2UgY2FuIGhvbGQgaW4gdGhlIHF1ZXVlIGJlZm9yZSB3ZSBzdGFydCBwdXNoaW5nIHRo
ZW0gcHJlZW1wdGl2ZWx5Lgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIHdoZWVsRXZlbnRRdWV1ZVNp
emVUaHJlc2hvbGQgPSAxMDsKIAorc3RhdGljIGNvbnN0IFNlY29uZHMgcmVzZXRSZWNlbnRDcmFz
aENvdW50RGVsYXkgPSAzMF9zOworc3RhdGljIHVuc2lnbmVkIG1heGltdW1XZWJQcm9jZXNzUmVs
YXVuY2hBdHRlbXB0cyA9IDE7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBERUZJTkVfREVCVUdf
T05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHdlYlBhZ2VQcm94eUNvdW50
ZXIsICgiV2ViUGFnZVByb3h5IikpOwpAQCAtNDA4LDYgKzQxMSw3IEBAIFdlYlBhZ2VQcm94eTo6
V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJv
Y2VzcywgdWluCiAjZW5kaWYKICAgICAsIG1fcGFnZUxvYWRTdGF0ZSgqdGhpcykKICAgICAsIG1f
Y29uZmlndXJhdGlvblByZWZlcmVuY2VWYWx1ZXMobV9jb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
VmFsdWVzKCkpCisgICAgLCBtX3Jlc2V0UmVjZW50Q3Jhc2hDb3VudFRpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJldlYlBhZ2VQcm94eTo6cmVzZXRSZWNlbnRDcmFzaENvdW50KQogewogICAg
IG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5hZGRPYnNlcnZlcihtX3Zpc2l0ZWRMaW5rU3Rv
cmUpOwogICAgIG1fd2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5hZGRPYnNlcnZlcihtX3dlYnNp
dGVEYXRhU3RvcmUpOwpAQCAtMzc0Myw2ICszNzQ3LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQKICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgcmVwb3J0UGFnZUxvYWRSZXN1bHQo
KTsKICAgICAgICAgbV9wYWdlQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsKKwor
ICAgICAgICByZXNldFJlY2VudENyYXNoQ291bnRTb29uKCk7CiAgICAgfQogCiAgICAgbV9pc0xv
YWRpbmdBbHRlcm5hdGVIVE1MU3RyaW5nRm9yRmFpbGluZ1Byb3Zpc2lvbmFsTG9hZCA9IGZhbHNl
OwpAQCAtNTg1MywxMiArNTg1OSw1MyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0RpZFRl
cm1pbmF0ZShQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQogICAgIHN0b3BBbGxVUkxT
Y2hlbWVUYXNrcygpOwogfQogCitzdGF0aWMgYm9vbCBzaG91bGRSZWxvYWRBZnRlclByb2Nlc3NU
ZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb24gcmVhc29uKQoreworICAgIHN3aXRj
aCAocmVhc29uKSB7CisgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVk
TWVtb3J5TGltaXQ6CisgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkV4Y2VlZGVk
Q1BVTGltaXQ6CisgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OkNyYXNoOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2
aWdhdGlvblN3YXA6CisgICAgY2FzZSBQcm9jZXNzVGVybWluYXRpb25SZWFzb246OlJlcXVlc3Rl
ZEJ5Q2xpZW50OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hQcm9jZXNzRGlkVGVybWluYXRlKFByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCiB7CisgICAgYm9vbCBoYW5kbGVkQnlDbGllbnQgPSBm
YWxzZTsKICAgICBpZiAobV9uYXZpZ2F0aW9uQ2xpZW50KQotICAgICAgICBtX25hdmlnYXRpb25D
bGllbnQtPnByb2Nlc3NEaWRUZXJtaW5hdGUoKnRoaXMsIHJlYXNvbik7CisgICAgICAgIGhhbmRs
ZWRCeUNsaWVudCA9IG1fbmF2aWdhdGlvbkNsaWVudC0+cHJvY2Vzc0RpZFRlcm1pbmF0ZSgqdGhp
cywgcmVhc29uKTsKICAgICBlbHNlIGlmIChyZWFzb24gIT0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uOjpSZXF1ZXN0ZWRCeUNsaWVudCkKLSAgICAgICAgbV9sb2FkZXJDbGllbnQtPnByb2Nlc3NE
aWRDcmFzaCgqdGhpcyk7CisgICAgICAgIGhhbmRsZWRCeUNsaWVudCA9IG1fbG9hZGVyQ2xpZW50
LT5wcm9jZXNzRGlkQ3Jhc2goKnRoaXMpOworCisgICAgaWYgKCFoYW5kbGVkQnlDbGllbnQgJiYg
c2hvdWxkUmVsb2FkQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24ocmVhc29uKSkKKyAgICAgICAgdHJ5
UmVsb2FkQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24oKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6
OnRyeVJlbG9hZEFmdGVyUHJvY2Vzc1Rlcm1pbmF0aW9uKCkKK3sKKyAgICBtX3Jlc2V0UmVjZW50
Q3Jhc2hDb3VudFRpbWVyLnN0b3AoKTsKKworICAgIGlmICgrK21fcmVjZW50Q3Jhc2hDb3VudCA+
IG1heGltdW1XZWJQcm9jZXNzUmVsYXVuY2hBdHRlbXB0cykgeworICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3MsICIlcCAtIFdlYlBhZ2VQcm94eSdzIHByb2Nlc3MgY3Jhc2hl
ZCBhbmQgdGhlIGNsaWVudCBkaWQgbm90IGhhbmRsZSBpdCwgbm90IHJlbG9hZGluZyB0aGUgcGFn
ZSBiZWNhdXNlIHdlIHJlYWNoZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGF0dGVtcHRzIiwgdGhp
cyk7CisgICAgICAgIG1fcmVjZW50Q3Jhc2hDb3VudCA9IDA7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiJXAgLSBXZWJQYWdlUHJv
eHkncyBwcm9jZXNzIGNyYXNoZWQgYW5kIHRoZSBjbGllbnQgZGlkIG5vdCBoYW5kbGUgaXQsIHJl
bG9hZGluZyB0aGUgcGFnZSIsIHRoaXMpOworICAgIHJlbG9hZChSZWxvYWRPcHRpb246OkV4cGly
ZWRPbmx5KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0UmVjZW50Q3Jhc2hDb3VudFNv
b24oKQoreworICAgIG1fcmVzZXRSZWNlbnRDcmFzaENvdW50VGltZXIuc3RhcnRPbmVTaG90KHJl
c2V0UmVjZW50Q3Jhc2hDb3VudERlbGF5KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0
UmVjZW50Q3Jhc2hDb3VudCgpCit7CisgICAgbV9yZWNlbnRDcmFzaENvdW50ID0gMDsKIH0KIAog
dm9pZCBXZWJQYWdlUHJveHk6OnN0b3BBbGxVUkxTY2hlbWVUYXNrcygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDJiNjJhMzg5YzQxMzc1NjEyMzkxYzkzZTg2MDMz
MjJkMTEyMTc1ZjguLmUyN2RmMzg3YzQ1ZmJjNjY2NmE1MDQ0NjM1MmQxMGY0YTYzYzhmOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05Miw2ICs5Miw3IEBACiAj
aW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE3MjQsNiAr
MTcyNSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2
NF90IGZyYW1lSUQpOwogI2VuZGlmCiAKKyAgICB2b2lkIHRyeVJlbG9hZEFmdGVyUHJvY2Vzc1Rl
cm1pbmF0aW9uKCk7CisgICAgdm9pZCByZXNldFJlY2VudENyYXNoQ291bnRTb29uKCk7CisgICAg
dm9pZCByZXNldFJlY2VudENyYXNoQ291bnQoKTsKKwogICAgIEFQSTo6RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQqIGVmZmVjdGl2ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdlYkNvcmU6OlNob3Vs
ZFNhbXBsZSk7CiAKICAgICB2b2lkIGRpc3BhdGNoQWN0aXZpdHlTdGF0ZUNoYW5nZSgpOwpAQCAt
MjE3Myw2ICsyMTc4LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gYW5kIGhhdmUgYSBnbG9iYWwgY29s
bGVjdGlvbiBvZiB0aGVtIHBlciBwcm9jZXNzIHBvb2wKICAgICAvLyAoZS5nLiBmb3IgdGhhdCBw
cm9jZXNzIHBvb2wncyBwYWdlIGNhY2hlKQogICAgIFJlZlB0cjxTdXNwZW5kZWRQYWdlUHJveHk+
IG1fc3VzcGVuZGVkUGFnZTsKKworICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4gbV9y
ZXNldFJlY2VudENyYXNoQ291bnRUaW1lcjsKKyAgICB1bnNpZ25lZCBtX3JlY2VudENyYXNoQ291
bnQgeyAwIH07CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhiMTViMzE3ZTRjZjFlNzgyYzM4
MTY1ZDNkZDcyMjkyOWExY2E4ZDguLjQwZTNlZmM5ZDc4NmExMzI4OGYwZjUwNmQ4NTU0MjIzODU4
YWM2M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNi0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbG9hZCB0aGUgV2ViIHZpZXcgaW4gY2FzZSBvZiBjcmFzaCBpZiB0
aGUgY2xpZW50IGRvZXMgbm90IGltcGxlbWVudCB3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRU
ZXJtaW5hdGUgZGVsZWdhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4NjQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW06Cisg
ICAgICAgICgtW0Jhc2ljTmF2aWdhdGlvbkRlbGVnYXRlV2l0aG91dENyYXNoSGFuZGxlciB3ZWJW
aWV3OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoLVtCYXNpY05h
dmlnYXRpb25EZWxlZ2F0ZVdpdGhvdXRDcmFzaEhhbmRsZXIgd2ViVmlldzpkaWRGaW5pc2hOYXZp
Z2F0aW9uOl0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTgtMDYtMDggIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gUmVtb3ZlIGFsbCB1c2VzIG9mIE5T
QXV0b3JlbGVhc2VQb29sIGFzIHBhcnQgb2YgcHJlcGFyYXRpb24gZm9yIEFSQwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vz
c0RpZFRlcm1pbmF0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0KaW5kZXggODJlODJjZjRiZDk4NzUwZDFi
MGVkYTI0YTA2YzE3Y2U3ZjA0ZGQ4Ni4uODA1MjZkMTIxM2MzMjY3ZGNjYmY3MDYyMDhlNWQwMmI2
YjQwMWM2YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tCkBA
IC0zMywxMCArMzMsMTIgQEAKICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25Qcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXcuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHN0YXRpYyBib29sIGRpZENyYXNoOwogc3RhdGljIF9X
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiBleHBlY3RlZENyYXNoUmVhc29uOworc3RhdGljIGJv
b2wgc3RhcnRlZExvYWQ7CiBzdGF0aWMgYm9vbCBmaW5pc2hlZExvYWQ7CiBzdGF0aWMgYm9vbCBz
aG91bGRMb2FkQWdhaW5PbkNyYXNoOwogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
OwpAQCAtNjcsNiArNjksMjIgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXQKIAogQGVuZAogCitA
aW50ZXJmYWNlIEJhc2ljTmF2aWdhdGlvbkRlbGVnYXRlV2l0aG91dENyYXNoSGFuZGxlciA6IE5T
T2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEJh
c2ljTmF2aWdhdGlvbkRlbGVnYXRlV2l0aG91dENyYXNoSGFuZGxlcgorCistICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb246KG51
bGxfdW5zcGVjaWZpZWQgV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbgoreworICAgIHN0YXJ0ZWRM
b2FkID0gdHJ1ZTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRp
ZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KK3sKKyAgICBmaW5p
c2hlZExvYWQgPSB0cnVlOworfQorQGVuZAorCiBAaW50ZXJmYWNlIENyYXNoUmVjb3ZlcnlTY3Jp
cHRNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgogQGVu
ZAogCkBAIC0xNTQsNCArMTcyLDM4IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBGYWlsdXJlVG9TdGFy
dFdlYlByb2Nlc3NBZnRlckNyYXNoUmVjb3ZlcnkpCiAgICAgRVhQRUNUX1RSVUUocmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKIH0KIAorVEVTVChXS05hdmlnYXRpb24sIEF1dG9tYXRpY1ZpZXdSZWxv
YWRBZnRlcldlYlByb2Nlc3NDcmFzaCkKK3sKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDEwMCwgMTAwKV0pOworCisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tCYXNp
Y05hdmlnYXRpb25EZWxlZ2F0ZVdpdGhvdXRDcmFzaEhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAg
ICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAg
c3RhcnRlZExvYWQgPSBmYWxzZTsKKyAgICBmaW5pc2hlZExvYWQgPSBmYWxzZTsKKworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInJpY2gtYW5kLXBsYWluLXRleHQiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZExvYWQpOworCisgICAg
c3RhcnRlZExvYWQgPSBmYWxzZTsKKyAgICBmaW5pc2hlZExvYWQgPSBmYWxzZTsKKworICAgIC8v
IFNpbXVsYXRlIGNyYXNoLgorICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3NdOwor
CisgICAgLy8gU2luY2Ugd2UgZG8gbm90IGRlYWwgd2l0aCB0aGUgY3Jhc2gsIFdlYktpdCBzaG91
bGQgYXR0ZW1wdCBhIHJlbG9hZC4KKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkTG9hZCk7CisKKyAgICBzdGFydGVkTG9hZCA9IGZhbHNlOworICAgIGZpbmlzaGVkTG9hZCA9
IGZhbHNlOworCisgICAgLy8gU2ltdWxhdGUgYW5vdGhlciBjcmFzaC4KKyAgICBbd2ViVmlldyBf
a2lsbFdlYkNvbnRlbnRQcm9jZXNzXTsKKworICAgIC8vIFdlYktpdCBzaG91bGQgbm90IGF0dGVt
cHQgdG8gcmVsb2FkIGFnYWluLgorICAgIEVYUEVDVF9GQUxTRShzdGFydGVkTG9hZCk7CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RhcnRl
ZExvYWQpOworfQorCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
      

    </bug>

</bugzilla>