<?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>48685</bug_id>
          
          <creation_ts>2010-10-29 14:56:52 -0700</creation_ts>
          <short_desc>Notify UI process about focused frame</short_desc>
          <delta_ts>2010-12-23 10:18:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>juha.savolainen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302085</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-29 14:56:52 -0700</bug_when>
    <thetext>Some UI operations work with focused frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302133</commentid>
    <comment_count>1</comment_count>
      <attachid>72406</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-29 15:26:21 -0700</bug_when>
    <thetext>Created attachment 72406
proposed patch

Some notes of interest:
1. I don&apos;t know why exactly there are separate setFocusedNode() and setFocusedFrame() methods on FocusController. Just matching that in client, even though it seems that one could calculate focused frame from focused node.

2. FocusController&apos;s notion of &quot;focused&quot; is different from WebView&apos;s. For example, -[WebView _focusedFrame] would return null when keyboard focus is in page find banner in Safari, but FocusController simply remembers the last focused subframe, and also has an isActive() method. I don&apos;t know what makes more sense, so I just exposed FocusController&apos;s notion. This might be a mistake.

3. Ultimately, this WKPageGetFocusedFrame() is going to be used as a replacement for -[WebView selectedFrame]. As documented (and implemented), selectedFrame
    @discussion Returns the frame that contains the first responder, if any. Otherwise returns the
    frame that contains a non-zero-length selection, if any. Returns nil if no frame meets these criteria.

WKPageGetFocusedFrame() is different in a single case:
1. Click in a frame.
2. Click on address bar, or press Cmd+F.

WKPageGetFocusedFrame will return that last click frame, but selectedFrame will return null. There is no visual indication for focused frame, so it was strange that we recognized it in some situations, but not in others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304117</commentid>
    <comment_count>2</comment_count>
      <attachid>72406</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-03 10:35:56 -0700</bug_when>
    <thetext>Comment on attachment 72406
proposed patch

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

&gt; WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:117
&gt; +    WebFrame* webFrame =  static_cast&lt;WebFrameLoaderClient*&gt;(frame-&gt;loader()-&gt;client())-&gt;webFrame();

Extra space after = sign on this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306193</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-08 10:24:50 -0800</bug_when>
    <thetext>&gt; Extra space after = sign on this line.

This was copied from elsewhere in this file. Fixed all instances.

Committed &lt;http://trac.webkit.org/changeset/71541&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326136</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-23 10:18:03 -0800</bug_when>
    <thetext>*** Bug 46165 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72406</attachid>
            <date>2010-10-29 15:26:21 -0700</date>
            <delta_ts>2010-11-03 10:35:56 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>FocusedFrame.txt</filename>
            <type>text/plain</type>
            <size>34780</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDkzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTAtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Njg1CisgICAgICAgIE5v
dGlmeSBVSSBwcm9jZXNzIGFib3V0IGZvY3VzZWQgZnJhbWUKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkaW5nIGRldmVsb3BtZW50UmVnaW9uIGJhY2su
CisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6IChXZWJDb3JlOjpFbXB0eUNocm9t
ZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3Bw
OiAoV2ViQ29yZTo6Q2hyb21lOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdl
L0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIEFkZGVk
IGEgbmV3IENocm9tZSBjbGllbnQgbm90aWZpY2F0aW9uLgorCisgICAgICAgICogcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwOiAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJh
bWUpOiBOb3RpZnkgY2hyb21lLgorCiAyMDEwLTEwLTI5ICBCZW5qYW1pbiBLYWxtYW4gIDxrYWxt
YW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDcwOTA1
KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTIxMzAxLDYgKzIxMzAxLDcgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQli
dWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21w
YXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBF
bmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMg
PSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiA3MDkw
NSkKKysrIFdlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDIsNiArMTAyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoRm9jdXNE
aXJlY3Rpb24pIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2Rl
KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSB7IH0K
IAogICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYp
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpIHsgfQpJbmRleDogV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJ
KHJldmlzaW9uIDcwOTA1KQorKysgV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2Myw2ICsxNjMsMTEgQEAgdm9pZCBDaHJvbWU6OmZvY3VzZWROb2RlQ2hhbmdlZChO
b2RlKiBubwogICAgIG1fY2xpZW50LT5mb2N1c2VkTm9kZUNoYW5nZWQobm9kZSk7CiB9CiAKK3Zv
aWQgQ2hyb21lOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkgY29uc3QKK3sKKyAg
ICBtX2NsaWVudC0+Zm9jdXNlZEZyYW1lQ2hhbmdlZChmcmFtZSk7Cit9CisKIFBhZ2UqIENocm9t
ZTo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3Rpb24pIGNvbnN0CiB7CiAgICAgUGFnZSogbmV3UGFnZSA9IG1fY2xpZW50LT5jcmVh
dGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1cmVzLCBhY3Rpb24pOwpJbmRleDogV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2
aXNpb24gNzA5MDUpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTk0LDYgKzk0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHRha2VGb2N1
cyhGb2N1c0RpcmVjdGlvbikgY29uc3Q7CiAKICAgICAgICAgdm9pZCBmb2N1c2VkTm9kZUNoYW5n
ZWQoTm9kZSopIGNvbnN0OworICAgICAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUq
KSBjb25zdDsKIAogICAgICAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJikgY29uc3Q7CiAgICAgICAgIHZvaWQgc2hvdygpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gNzA5MDUpCisrKyBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTk0LDYgKzk0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSA9IDA7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKikgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopID0gMDsKIAogICAgICAgICAvLyBU
aGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGggY29udGV4dCBh
Ym91dCB3aGljaAogICAgICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVhdGUgdGhlIG5ldyBQYWdl
LiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CkluZGV4OiBXZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gNzA5MDUpCisrKyBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBGb2N1c0NvbnRyb2xsZXI6OkZv
Y3VzQ29udHJvbGxlcihQYWdlKiBwCiAKIHZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2Vk
RnJhbWUoUGFzc1JlZlB0cjxGcmFtZT4gZnJhbWUpCiB7CisgICAgQVNTRVJUKCFmcmFtZSB8fCBm
cmFtZS0+cGFnZSgpID09IG1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09IGZyYW1l
IHx8IG1faXNDaGFuZ2luZ0ZvY3VzZWRGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDcs
NiArMTA4LDggQEAgdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRGcmFtZShQYQogICAg
ICAgICBuZXdGcmFtZS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hXaW5kb3dFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFsc2UpKTsKICAgICB9CiAKKyAg
ICBtX3BhZ2UtPmNocm9tZSgpLT5mb2N1c2VkRnJhbWVDaGFuZ2VkKG5ld0ZyYW1lLmdldCgpKTsK
KwogICAgIG1faXNDaGFuZ2luZ0ZvY3VzZWRGcmFtZSA9IGZhbHNlOwogfQogCkluZGV4OiBXZWJL
aXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24g
NzA5MzIpCisrKyBXZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0
IEBACisyMDEwLTEwLTI5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODY4NQorICAgICAgICBOb3RpZnkgVUkgcHJv
Y2VzcyBhYm91dCBmb2N1c2VkIGZyYW1lCisKKyAgICAgICAgSGFuZGxlIG5vdGlmaWNhdGlvbnMs
IHN0b3JlIHRoZSBjdXJyZW50IG9uZSBpbiBXZWJQYWdlUHJveHkgaW4gVUkgcHJvY2Vzcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlR2V0
Rm9jdXNlZEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMC0x
MC0yOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJl
ZHVuZGFudCBkYXRhIG1lbWJlcnMgZnJvbSBXZWJUb3VjaEV2ZW50CkluZGV4OiBXZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDcwOTA1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzMyw2ICsxMjMzLDEwIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRHZXRTb3VyY2VGb3JGcmFtZSgKICAgICBjYWxsYmFjay0+cGVy
Zm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHJlc3VsdFN0cmluZy5pbXBsKCkpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQor
eworICAgIG1fZm9jdXNlZEZyYW1lID0gcHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKTsKK30K
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VBY2NlbGVyYXRlZENvbXBvc2l0aW5nKGJvb2wgY29tcG9zaXRpbmcsIERyYXdpbmdB
cmVhQmFzZTo6RHJhd2luZ0FyZWFJbmZvJiBkcmF3aW5nQXJlYUluZm8pCkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gNzA5MDUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoK
ICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQogCiAgICAg
V2ViRnJhbWVQcm94eSogbWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWUuZ2V0
KCk7IH0KKyAgICBXZWJGcmFtZVByb3h5KiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQogCiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0Fy
ZWEoKSB7IHJldHVybiBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAgICAgdm9pZCBzZXREcmF3aW5n
QXJlYShQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+KTsKQEAgLTMzMiw2ICszMzMsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkR2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24o
Y29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwogICAgIHZvaWQgZGlkR2V0U291cmNlRm9yRnJhbWUo
Y29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwogCisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2Vk
KHVpbnQ2NF90IGZyYW1lSUQpOworCiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBjcmVh
dGlvblBhcmFtZXRlcnMoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwogCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtMzQ4LDYgKzM1MSw3IEBAIHByaXZhdGU6CiAg
ICAgT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IG1fZHJhd2luZ0FyZWE7CiAgICAgUmVmUHRyPFdl
YlBhZ2VOYW1lc3BhY2U+IG1fcGFnZU5hbWVzcGFjZTsKICAgICBSZWZQdHI8V2ViRnJhbWVQcm94
eT4gbV9tYWluRnJhbWU7CisgICAgUmVmUHRyPFdlYkZyYW1lUHJveHk+IG1fZm9jdXNlZEZyYW1l
OwogICAgIFN0cmluZyBtX3BhZ2VUaXRsZTsKIAogICAgIFN0cmluZyBtX2N1c3RvbVVzZXJBZ2Vu
dDsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDcwOTA1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgU2V0U3RhdHVzVGV4dChXVEY6OlN0cmluZyBzdGF0dXNUZXh0KQogICAgIFNl
dFRvb2xUaXAoV1RGOjpTdHJpbmcgdG9vbFRpcCkKICAgICBUYWtlRm9jdXMoYm9vbCBkaXJlY3Rp
b24pCisgICAgRm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQogICAgIFNldFRv
b2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkKICAgICBHZXRUb29sYmFy
c0FyZVZpc2libGUoKSAtPiAoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpCiAgICAgU2V0TWVudUJh
cklzVmlzaWJsZShib29sIG1lbnVCYXJJc1Zpc2libGUpOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCShyZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsMTEgQEAgV0tGcmFtZVJl
ZiBXS1BhZ2VHZXRNYWluRnJhbWUoV0tQYWdlUmVmIAogICAgIHJldHVybiB0b0FQSSh0b0ltcGwo
cGFnZVJlZiktPm1haW5GcmFtZSgpKTsKIH0KIAorV0tGcmFtZVJlZiBXS1BhZ2VHZXRGb2N1c2Vk
RnJhbWUoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChwYWdl
UmVmKS0+Zm9jdXNlZEZyYW1lKCkpOworfQorCiBXS0luc3BlY3RvclJlZiBXS1BhZ2VHZXRJbnNw
ZWN0b3IoV0tQYWdlUmVmIHBhZ2VSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChwYWdl
UmVmKS0+aW5zcGVjdG9yKCkpOwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHJldmlz
aW9uIDcwOTA1KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIzMSw2ICsyMzEsNyBAQCBXS19FWFBPUlQgV0tCYWNrRm9yd2FyZExpc3RSZWYg
V0tQYWdlR2V0CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tQYWdlQ29weVRpdGxlKFdLUGFnZVJl
ZiBwYWdlKTsKIAogV0tfRVhQT1JUIFdLRnJhbWVSZWYgV0tQYWdlR2V0TWFpbkZyYW1lKFdLUGFn
ZVJlZiBwYWdlKTsKK1dLX0VYUE9SVCBXS0ZyYW1lUmVmIFdLUGFnZUdldEZvY3VzZWRGcmFtZShX
S1BhZ2VSZWYgcGFnZSk7IC8vIFRoZSBmb2N1c2VkIGZyYW1lIG1heSBiZSBpbmFjdGl2ZS4KIFdL
X0VYUE9SVCBkb3VibGUgV0tQYWdlR2V0RXN0aW1hdGVkUHJvZ3Jlc3MoV0tQYWdlUmVmIHBhZ2Up
OwogCiBXS19FWFBPUlQgV0tJbnNwZWN0b3JSZWYgV0tQYWdlR2V0SW5zcGVjdG9yKFdLUGFnZVJl
ZiBwYWdlKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTIsNiArMTEyLDEzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkTm9kZUNo
YW5nZWQKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpCit7CisgICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gIHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKSktPndlYkZyYW1lKCk7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdl
ZCh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKIFBhZ2UqIFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICAgICB1aW50MzJfdCBtb2RpZmllcnMgPSBt
b2RpZmllcnNGb3JOYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb24pOwpJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAkocmV2aXNpb24gNzA5MDUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9kZSopOwor
ICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKik7CiAK
ICAgICAvLyBUaGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGgg
Y29udGV4dCBhYm91dCB3aGljaAogICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3
IFBhZ2UuICBBbHNvLCB0aGUgbmV3bHkgY3JlYXRlZCB3aW5kb3cKSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
cmV2aXNpb24gNzA5MzIpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Njg1CisgICAg
ICAgIE5vdGlmeSBVSSBwcm9jZXNzIGFib3V0IGZvY3VzZWQgZnJhbWUKKworICAgICAgICBBZGRl
ZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IENocm9tZUNsaWVudCBtZXRob2Qu
CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OmZvY3VzZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmg6CisKIDIwMTAtMTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQv
Y2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDcwOTA1KQorKysgV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUyLDYgKzI1MiwxMCBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmZvY3VzZWROb2RlQ2hhbmdl
CiAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+c2V0S2V5Ym9hcmRGb2N1c1VSTChmb2N1c1VSTCk7
CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSop
Cit7Cit9CisKIFBhZ2UqIENocm9tZUNsaWVudEltcGw6OmNyZWF0ZVdpbmRvdygKICAgICBGcmFt
ZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHIsIGNvbnN0IFdpbmRvd0ZlYXR1cmVz
JiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkocmV2aXNpb24gNzA5MDUpCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhXZWJDb3JlOjpGb2N1
c0RpcmVjdGlvbik7CiAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0Rp
cmVjdGlvbik7CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChXZWJDb3JlOjpO
b2RlKik7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJh
bWUqKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdygKICAgICAgICAg
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9u
Jik7CiAgICAgdmlydHVhbCB2b2lkIHNob3coKTsKSW5kZXg6IFdlYktpdC9lZmwvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDkzMikKKysr
IFdlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTAtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Njg1CisgICAgICAgIE5vdGlmeSBVSSBwcm9jZXNzIGFi
b3V0IGZvY3VzZWQgZnJhbWUKKworICAgICAgICBBZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgbmV3IENocm9tZUNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
RWZsOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaDoKKwogMjAxMC0xMC0yOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHJldmlzaW9uIDcwOTA1KQor
KysgV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MSw2ICs5MSwxMCBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6Zm9jdXNlZE5v
ZGVDaGFuZ2VkCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBDaHJvbWVDbGllbnRF
Zmw6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQoreworfQorCiBGbG9hdFJlY3QgQ2hyb21l
Q2xpZW50RWZsOjp3aW5kb3dSZWN0KCkKIHsKICAgICBFY29yZV9FdmFzKiBlZSA9IDA7CkluZGV4
OiBXZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgJKHJldmlzaW9u
IDcwOTA1KQorKysgV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAko
d29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5v
ZGVDaGFuZ2VkKE5vZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChG
cmFtZSopOwogCiAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBG
cmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJik7CiAgICAgdmlydHVhbCB2b2lkIHNob3coKTsKSW5kZXg6IFdlYktpdC9ndGsvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDkz
MikKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTAtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Njg1CisgICAgICAgIE5vdGlmeSBVSSBwcm9j
ZXNzIGFib3V0IGZvY3VzZWQgZnJhbWUKKworICAgICAgICBBZGRlZCBhbiBlbXB0eSBpbXBsZW1l
bnRhdGlvbiBvZiB0aGUgbmV3IENocm9tZUNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTEwLTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gNzA5MDUp
CisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI3NSw2ICsyNzUsMTAgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmZvY3VzZWRO
b2RlQ2hhbmdlZChObwogewogfQogCit2b2lkIENocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hh
bmdlZChGcmFtZSopCit7Cit9CisKIGJvb2wgQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoKQogewogICAgIHJldHVybiB0cnVlOwpJbmRleDogV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCShyZXZpc2lvbiA3MDkwNSkKKysrIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9kZSopOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopOwogCiAgICAgICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3Qg
V2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVz
JiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgc2hvdygpOwpJbmRleDogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDkzMikKKysrIFdlYktpdC9oYWlrdS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMC0yOSAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDg2ODUKKyAgICAgICAgTm90aWZ5IFVJIHByb2Nlc3MgYWJvdXQgZm9jdXNlZCBm
cmFtZQorCisgICAgICAgIEFkZGVkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcg
Q2hyb21lQ2xpZW50IG1ldGhvZC4gQWxzbywgYWRkZWQgbWlzc2luZyAidmlydHVhbCIKKyAgICAg
ICAga2V5d29yZHMgYWxsIG92ZXIgdGhlIHBsYWNlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
SGFpa3U6OmZvY3VzZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEhhaWt1Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6
c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
SGFpa3U6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZSk6CisKIDIw
MTAtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAJKHJldmlzaW9uIDcwOTA1KQorKysgV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA4LDYgKzEwOCwxMCBAQCB2b2lkIENocm9tZUNsaWVudEhhaWt1Ojpmb2N1c2Vk
Tm9kZUNoYW5nCiB7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmZvY3VzZWRGcmFtZUNo
YW5nZWQoRnJhbWUqKQoreworfQorCiBQYWdlKiBDaHJvbWVDbGllbnRIYWlrdTo6Y3JlYXRlV2lu
ZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRv
d0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5oCShyZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw4MyAr
NDMsODQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgQ2hyb21l
Q2xpZW50SGFpa3UoKTsKICAgICAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50SGFpa3UoKTsKLSAg
ICAgICAgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNocm9t
ZURlc3Ryb3llZCgpOwogCi0gICAgICAgIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9hdFJl
Y3QmKTsKLSAgICAgICAgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHdpbmRvd1JlY3QoKTsKIAotICAgICAgICBGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAg
ICAgICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKTsKIAotICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvcigpOworICAgICAgICB2aXJ0dWFsIGZsb2F0IHNjYWxlRmFjdG9yKCk7CiAKLSAgICAg
ICAgdm9pZCBmb2N1cygpOwotICAgICAgICB2b2lkIHVuZm9jdXMoKTsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGZvY3VzKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CiAKLSAgICAg
ICAgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pOwotICAgICAgICB2b2lkIHRha2VG
b2N1cyhGb2N1c0RpcmVjdGlvbik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMo
Rm9jdXNEaXJlY3Rpb24pOworICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3VzRGly
ZWN0aW9uKTsKIAotICAgICAgICB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2RlKik7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopOwogCi0gICAgICAgIFBhZ2UqIGNy
ZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKLSAg
ICAgICAgUGFnZSogY3JlYXRlTW9kYWxEaWFsb2coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1
ZXN0Jik7Ci0gICAgICAgIHZvaWQgc2hvdygpOworICAgICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0
ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKKyAgICAg
ICAgdmlydHVhbCBQYWdlKiBjcmVhdGVNb2RhbERpYWxvZyhGcmFtZSosIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNob3coKTsKIAotICAgICAgICBib29s
IGNhblJ1bk1vZGFsKCk7Ci0gICAgICAgIHZvaWQgcnVuTW9kYWwoKTsKKyAgICAgICAgdmlydHVh
bCBib29sIGNhblJ1bk1vZGFsKCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOwog
Ci0gICAgICAgIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgICAgICBib29sIHRv
b2xiYXJzVmlzaWJsZSgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxl
KGJvb2wpOworICAgICAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCk7CiAKLSAgICAg
ICAgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgICAgICBib29sIHN0YXR1c2Jh
clZpc2libGUoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCk7CiAKLSAgICAgICAg
dm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKTsKLSAgICAgICAgYm9vbCBzY3JvbGxiYXJz
VmlzaWJsZSgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpOwogCi0gICAgICAg
IHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCk7Ci0gICAgICAgIGJvb2wgbWVudWJhclZpc2li
bGUoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpOworICAg
ICAgICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKTsKIAotICAgICAgICB2b2lkIHNldFJl
c2l6YWJsZShib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKTsK
IAotICAgICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgc291cmNl
SUQpOwotICAgICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgIHZpcnR1YWwgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpOwotICAgICAgICB2b2lkIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZl
bCwKKyAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIGludCwgY29uc3QgU3RyaW5nJik7CiAKLSAg
ICAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKKyAgICAgICAgdmly
dHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogCi0gICAgICAgIGJv
b2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJh
bWUqIGZyYW1lKTsKKyAgICAgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSk7CiAKLSAgICAgICAgdm9p
ZCBjbG9zZVdpbmRvd1Nvb24oKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29v
bigpOwogCi0gICAgICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3Ry
aW5nJik7Ci0gICAgICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBT
dHJpbmcmKTsKLSAgICAgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1
bHQpOwotICAgICAgICBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKLQotICAgICAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICAgICAgYm9v
bCB0YWJzVG9MaW5rcygpIGNvbnN0OwotICAgICAgICBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0
KCkgY29uc3Q7Ci0KLSAgICAgICAgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKLSAgICAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3Qg
SW50UmVjdCYsIGJvb2wpOwotICAgICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dT
Y3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgICAgICB2b2lkIHNjcm9sbChjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJ
bnRSZWN0JiBjbGlwUmVjdCk7Ci0KLSAgICAgICAgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29u
c3QgSW50UG9pbnQmKSBjb25zdDsKLSAgICAgICAgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25z
dCBJbnRSZWN0JikgY29uc3Q7Ci0gICAgICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBh
Z2VDbGllbnQoKSBjb25zdDsKLSAgICAgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwotICAgICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmll
dyhjb25zdCBJbnRSZWN0JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0OworICAgICAgICB2aXJ0
dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJik7CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYg
cmVzdWx0KTsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQo
KTsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0
cmluZyYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKKyAgICAg
ICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CisKKyAgICAgICAg
dmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJl
Y3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3Jv
bGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKKworICAgICAgICB2aXJ0dWFsIEludFBvaW50
IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwg
SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAgICAgIHZp
cnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OworICAg
ICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNp
emUmKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25z
dCBJbnRSZWN0JiwgY29uc3QgU2Nyb2xsVmlldyopIGNvbnN0OwogCiAgICAgICAgIHZvaWQgYWRk
VG9EaXJ0eVJlZ2lvbihjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZvaWQgc2Nyb2xsQmFja2lu
Z1N0b3JlKGludCwgaW50LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogICAgICAg
ICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogCi0gICAgICAgIHZvaWQgc2Nyb2xsYmFyc01v
ZGVEaWRDaGFuZ2UoKSBjb25zdCB7IH0KLSAgICAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IHsgfQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgICAgIHZvaWQgc2V0VG9vbFRp
cChjb25zdCBTdHJpbmcmKTsKIApAQCAtMTI3LDcgKzEyOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB2b2lkIHByaW50KEZyYW1lKik7CiAKLSAgICAgICAgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSk7CisjaWYg
RU5BQkxFKERBVEFCQVNFKQorICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpOworI2VuZGlmCiAKICAgICAg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAg
ICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdDsKQEAgLTE0MCwxOSArMTQzLDE5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAvLyBUaGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hy
b21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgog
ICAgICAgICAvLyB0byB1c2UgR2VvbG9jb2NhdGlvbi4KLSAgICAgICAgdm9pZCByZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwotICAgICAg
ICB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOworICAgICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1l
KiwgR2VvbG9jYXRpb24qKSB7IH0KIAotICAgICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSos
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKLSAgICAgICAgdm9pZCBjaG9vc2VJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlQ2hvb3NlciopOworICAgICAgICB2aXJ0dWFs
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgY2hvb3NlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiwgRmlsZUNob29zZXIqKTsKIAotICAgICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3Im
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKTsKIAogICAg
ICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFu
Z2VkLiBUaGlzIGZ1bmN0aW9uCiAgICAgICAgIC8vIHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHks
IHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2ZXJ5IGZhc3QuCi0gICAgICAgIHZvaWQgZm9ybVN0YXRl
RGlkQ2hhbmdlKGNvbnN0IE5vZGUqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURp
ZENoYW5nZShjb25zdCBOb2RlKik7CiAKLSAgICAgICAgUGFzc093blB0cjxIVE1MUGFyc2VyUXVp
cmtzPiBjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCk7CisgICAgICAgIHZpcnR1YWwgUGFzc093blB0
cjxIVE1MUGFyc2VyUXVpcmtzPiBjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKCk7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwOTMyKQorKysgV2ViS2l0
L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0y
OSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDg2ODUKKyAgICAgICAgTm90aWZ5IFVJIHByb2Nlc3MgYWJvdXQgZm9j
dXNlZCBmcmFtZQorCisgICAgICAgIEFkZGVkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIHRo
ZSBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6CisK
IDIwMTAtMTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDcwOTA1KQorKysgV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVj
dGlvbik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVDaGFuZ2VkKFdlYkNvcmU6Ok5v
ZGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFt
ZSopOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6
RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7CiAgICAg
dmlydHVhbCB2b2lkIHNob3coKTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCShyZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAw
LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkTm9kZUNoYW5nZWQKIHsKIH0KIAor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQoreworfQor
CiBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJl
cywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgTlNVUkxSZXF1ZXN0ICpVUkxSZXF1
ZXN0ID0gbmlsOwpJbmRleDogV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MDkzMikKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMC0yOSAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDg2ODUKKyAgICAgICAgTm90aWZ5IFVJIHByb2Nlc3MgYWJvdXQgZm9jdXNlZCBmcmFtZQorCisg
ICAgICAgIEFkZGVkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojpmb2N1c2VkTm9kZUNoYW5nZWQp
OiBSZW1vdmVkIHVubmVlZGVkIG5hbWVzcGFjZSBwcmVmaXguCisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRRdDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKwogMjAxMC0xMC0yOSAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkocmV2aXNpb24gNzA5
MDUpCisrKyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjUsMTAgKzE2NSwxMyBAQCB2b2lkIENocm9tZUNsaWVudFF0Ojp0YWtl
Rm9jdXMoRm9jdXNEaXJlCiB9CiAKIAotdm9pZCBDaHJvbWVDbGllbnRRdDo6Zm9jdXNlZE5vZGVD
aGFuZ2VkKFdlYkNvcmU6Ok5vZGUqKQordm9pZCBDaHJvbWVDbGllbnRRdDo6Zm9jdXNlZE5vZGVD
aGFuZ2VkKE5vZGUqKQogewogfQogCit2b2lkIENocm9tZUNsaWVudFF0Ojpmb2N1c2VkRnJhbWVD
aGFuZ2VkKEZyYW1lKikKK3sKK30KIAogUGFnZSogQ2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVdpbmRv
dyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CkluZGV4OiBXZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkocmV2aXNpb24gNzA5MDUpCisr
KyBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5
KQpAQCAtNzIsNiArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCB0YWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
b2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZy
YW1lQ2hhbmdlZChGcmFtZSopOwogCiAgICAgICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93
KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwpJ
bmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcwOTMyKQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0yOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg2ODUKKyAg
ICAgICAgTm90aWZ5IFVJIHByb2Nlc3MgYWJvdXQgZm9jdXNlZCBmcmFtZQorCisgICAgICAgIEFk
ZGVkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgQ2hyb21lQ2xpZW50IG1ldGhv
ZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDEwLTEwLTI5ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJ
bmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
cmV2aXNpb24gNzA5MDUpCisrKyBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw2ICsxNzIsMTAgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdlZAogewogfQogCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopCit7Cit9CisKIHN0YXRpYyBDT01QdHI8SVBy
b3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1Byb3BlcnR5QmFnKGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiBmZWF0dXJlcykKIHsKICAgICBIYXNoTWFwPFN0cmluZywgQ09NVmFyaWFudD4gbWFw
OwpJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShy
ZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwogCiAgICAgdmlydHVh
bCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChXZWJDb3JlOjpOb2RlKik7CisgICAgdmlydHVhbCB2
b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6
UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CkluZGV4OiBX
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW5jZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDcwOTMyKQorKysgV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTI5ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODY4NQorICAg
ICAgICBOb3RpZnkgVUkgcHJvY2VzcyBhYm91dCBmb2N1c2VkIGZyYW1lCisKKyAgICAgICAgQWRk
ZWQgYW4gZW1wdHkgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9k
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKwogMjAxMC0xMC0y
OSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAkocmV2aXNpb24gNzA5MDUpCisrKyBXZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzQsNiArMTc0LDEwIEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmZvY3VzZWROb2RlQ2hh
bmcKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIENocm9tZUNsaWVudFdpbkNFOjpm
b2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKK3sKK30KKwogYm9vbCBDaHJvbWVDbGllbnRXaW5D
RTo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKIHsKICAgICByZXR1cm4gdHJ1ZTsK
SW5kZXg6IFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5oCShyZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoV2ViQ29yZTo6Tm9kZSopOworICAg
IHZpcnR1YWwgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKik7CiAKICAgICAvLyBUaGUg
RnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGggY29udGV4dCBhYm91
dCB3aGljaAogICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuICBBbHNv
LCB0aGUgbmV3bHkgY3JlYXRlZCB3aW5kb3cKSW5kZXg6IFdlYktpdC93eC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gNzA5MzIpCisrKyBXZWJL
aXQvd3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAt
MjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4Njg1CisgICAgICAgIE5vdGlmeSBVSSBwcm9jZXNzIGFib3V0IGZv
Y3VzZWQgZnJhbWUKKworICAgICAgICBBZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgbmV3IENocm9tZUNsaWVudCBtZXRob2QuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojpmb2N1
c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
Lmg6CisKIDIwMTAtMTAtMjkgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwCShyZXZpc2lvbiA3MDkwNSkKKysrIFdlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDYgKzEz
NywxMCBAQCB2b2lkIENocm9tZUNsaWVudFd4Ojpmb2N1c2VkTm9kZUNoYW5nZWQoCiB7CiB9CiAK
K3ZvaWQgQ2hyb21lQ2xpZW50V3g6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQoreworfQor
CiBQYWdlKiBDaHJvbWVDbGllbnRXeDo6Y3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikKIHsKICAgICBQYWdlKiBteVBhZ2UgPSAwOwpJbmRleDogV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCShyZXZpc2lvbiA3MDkwNSkKKysr
IFdlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkK
QEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoRm9j
dXNEaXJlY3Rpb24pOwogCiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWROb2RlQ2hhbmdlZChOb2Rl
Kik7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKTsKIAogICAg
IHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpOwogICAg
IHZpcnR1YWwgUGFnZSogY3JlYXRlTW9kYWxEaWFsb2coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0Jik7Cg==
</data>
<flag name="review"
          id="62654"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>