<?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>73779</bug_id>
          
          <creation_ts>2011-12-04 14:18:37 -0800</creation_ts>
          <short_desc>Move code for connections to/from the UIProcess/WebProcess into WebConnection subclasses</short_desc>
          <delta_ts>2011-12-05 10:41:57 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>514762</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-04 14:18:37 -0800</bug_when>
    <thetext>Move code for connections to/from the UIProcess/WebProcess into WebConnection subclasses</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514765</commentid>
    <comment_count>1</comment_count>
      <attachid>117807</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-04 14:23:27 -0800</bug_when>
    <thetext>Created attachment 117807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514766</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-04 14:24:27 -0800</bug_when>
    <thetext>This is in preparation of exposing the connections as API objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514768</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-04 14:27:18 -0800</bug_when>
    <thetext>Attachment 117807 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebProcess.h:40:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514795</commentid>
    <comment_count>4</comment_count>
      <attachid>117807</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-04 17:05:52 -0800</bug_when>
    <thetext>Comment on attachment 117807
Patch

Attachment 117807 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10727661

New failing tests:
svg/custom/linking-uri-01-b.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515176</commentid>
    <comment_count>5</comment_count>
      <attachid>117807</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-05 10:34:08 -0800</bug_when>
    <thetext>Comment on attachment 117807
Patch

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

&gt; Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp:97
&gt; +    // This will invalidate the CoreIPC::Connection and the WebProcessProxy pointer
&gt; +    // so we should be careful not to use them after this call.

Please clarify that it&apos;s the member variable that will be invalidated.

&gt;&gt; Source/WebKit2/WebProcess/WebProcess.h:40
&gt;&gt; +#include &quot;WebConnectionToUIProcess.h&quot;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

Please fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>515185</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-05 10:41:57 -0800</bug_when>
    <thetext>Committed r102014: &lt;http://trac.webkit.org/changeset/102014&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117807</attachid>
            <date>2011-12-04 14:23:27 -0800</date>
            <delta_ts>2011-12-05 10:34:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73779-20111204142326.patch</filename>
            <type>text/plain</type>
            <size>52783</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTk2OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDExLTEyLTA0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBjb2RlIGZvciBjb25uZWN0aW9u
cyB0by9mcm9tIHRoZSBVSVByb2Nlc3MvV2ViUHJvY2VzcyBpbnRvIFdlYkNvbm5lY3Rpb24gc3Vi
Y2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzM3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
byBhbGxvdyBmb3IgQVBJIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBjb25uZWN0aW9uIGdvaW5n
IHRvL2Zyb20gdGhlIFVJUHJvY2Vzcy9XZWJQcm9jZXNzLAorICAgICAgICB0aGlzIHBhdGNoIHNl
cGFyYXRlcyBvdXQgdGhlIGNvbm5lY3Rpb25zIGludG8gV2ViQ29ubmVjdGlvbiBzdWJjbGFzc2Vz
LiAgSXQgZG9lcyBub3QgeWV0CisgICAgICAgIGV4cG9zZSBhIHdheSB0byBhY2Nlc3MgdGhlc2Ug
Y29ubmVjdGlvbnMsIGFuZCBpcyB0aGVyZWZvcmUgbm90IHlldCB0ZXN0YWJsZS4KKworICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZj
cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJ
UEMvTWVzc2FnZUlELmg6CisgICAgICAgICogU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbm5l
Y3Rpb25NZXNzYWdlS2luZHMuaDogQWRkZWQuCisgICAgICAgIEFkZCBhIG5ldyBtZXNzYWdlIHR5
cGUgZm9yIGNvbW11bmljYXRpbmcgYmV0d2VlbiBXZWJDb25uZWN0aW9ucy4KKworICAgICAgICAq
IFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgTWFrZSBoZWxwZXIgcHVibGljIHNvIHRo
YXQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBjYW4gdXNlIGl0LgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmludmFsaWRhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwb3N0TWVzc2Fn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2Vp
dmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzeW5jTWVzc2FnZVNlbmRUaW1lZE91dCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndpbmRvd3NUb1JlY2VpdmVT
ZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb25uZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
OjpzZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpk
aWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp3ZWJDb25uZWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kU3luYyk6CisgICAgICAgIFRocmVhZCBjb25uZWN0
aW9uIGNvZGUgdGhyb3VnaCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6aW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6cG9zdE1lc3NhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVN
ZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRS
ZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uVG9VSVBy
b2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3M6OnN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjp3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3Nh
Z2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzOjp3aWxsUHJvY2Vzc01lc3NhZ2VPbkNsaWVudFJ1bkxvb3ApOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjphZGRWaXNp
dGVkTGluayk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNob3VsZFRlcm1pbmF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6Z2V0U2l0ZXNXaXRoUGx1Z2luRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmNsZWFyUGx1Z2luU2l0ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpn
ZXRXZWJDb3JlU3RhdGlzdGljcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNvbm5lY3Rpb24pOgorICAgICAgICBUaHJl
YWQgY29ubmVjdGlvbiBjb2RlIHRocm91Z2ggV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLgorCiAy
MDExLTEyLTA0ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFsLjEucmFnaGF2YW5Abm9raWEuY29tPgog
CiAgICAgICAgIFtRdF0gY2xlYW51cCBxbWx0ZXN0cy5wcm8KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtCShyZXZpc2lvbiAxMDE5NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQko
d29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMwMyw3IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdU
S19BUElfTUFKT1JfVkVSU0kKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db21tYW5kTGluZS5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCBcCisJ
U291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbm5lY3Rpb25NZXNzYWdl
S2luZHMuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbnRl
eHRNZXNzYWdlS2luZHMuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0
L1dlYlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmggXApAQCAtNjAxLDYgKzYwMiw4IEBAIGxpYndlYmtpdDJndGtfQFdFQktJ
VEdUS19BUElfTUFKT1JfVkVSU0kKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuY3BwIFwKQEAgLTg5
MSw2ICs4OTQsOCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5LmNwcCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VHcm91cFByb3h5Lmgg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggXAorCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCBcCisJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKIApJbmRleDogU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDE5
NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMs
NiArMjAzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQ
cm94eS5oIFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKICAgICBVSVBy
b2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3Mv
V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5o
IFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmggXApAQCAtMzQ1LDYgKzM0Niw3IEBAIEhF
QURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIFwKICAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZUdyb3VwUHJveHkuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggXAogICAg
IFdlYlByb2Nlc3MvcXQvUXRCdWlsdGluQnVuZGxlLmggXAogICAgIFdlYlByb2Nlc3MvcXQvUXRC
dWlsdGluQnVuZGxlUGFnZS5oCkBAIC01MTYsNiArNTE4LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9y
d2FyZExpc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNv
bnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0
TWVudVByb3h5LmNwcCBcCkBAIC02ODcsNiArNjkwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL3F0L1dlYkluc3BlY3RvclF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9x
dC9XZWJQYWdlUXQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
cy5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
cXQvUXRCdWlsdGluQnVuZGxlLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9xdC9RdEJ1aWx0aW5CdW5k
bGVQYWdlLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VJRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVz
c2FnZUlELmgJKHJldmlzaW9uIDEwMTk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvTWVzc2FnZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDkgQEAgZW51bSBN
ZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc1dlYlByb2Nlc3NQcm94eSwKICAgICBNZXNz
YWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogCisgICAgLy8gTWVzc2FnZXMg
c2VudCB0byBhIFdlYkNvbm5lY3Rpb24KKyAgICBNZXNzYWdlQ2xhc3NXZWJDb25uZWN0aW9uTGVn
YWN5LAorCiAgICAgLy8gTWVzc2FnZXMgc2VudCBieSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgcGx1
Zy1pbiBwcm9jZXNzLgogICAgIE1lc3NhZ2VDbGFzc1BsdWdpblByb2Nlc3MsCiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgJKHJldmlzaW9uIDEwMTk2NykKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTIg
KzU3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ2hpbGRQcm9jZXNzJiBtX2NoaWxkUHJvY2VzczsK
ICAgICB9OwogCisgICAgc3RhdGljIHZvaWQgZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVldWUo
V29ya1F1ZXVlJiwgQ29yZUlQQzo6Q29ubmVjdGlvbiopOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgQ2hpbGRQcm9jZXNzKGRvdWJsZSB0ZXJtaW5hdGlvblRpbWVvdXQpOwogICAgIH5DaGls
ZFByb2Nlc3MoKTsKIAotICAgIHN0YXRpYyB2b2lkIGRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1
ZXVlKFdvcmtRdWV1ZSYsIENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKLQogcHJpdmF0ZToKICAgICB2
b2lkIHRlcm1pbmF0aW9uVGltZXJGaXJlZCgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29ubmVjdGlvbk1lc3NhZ2VLaW5kcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb25uZWN0aW9uTWVz
c2FnZUtpbmRzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29yZUlQ
Q1N1cHBvcnQvV2ViQ29ubmVjdGlvbk1lc3NhZ2VLaW5kcy5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRz
X2gKKyNkZWZpbmUgV2ViQ29ubmVjdGlvbk1lc3NhZ2VLaW5kc19oCisKKyNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKKworbmFtZXNwYWNlIFdlYkNvbm5lY3Rpb25MZWdhY3lNZXNzYWdlIHsKKworZW51
bSBLaW5kIHsKKyAgICBQb3N0TWVzc2FnZQorfTsKKworfQorCituYW1lc3BhY2UgQ29yZUlQQyB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IE1lc3NhZ2VLaW5kVHJhaXRzPFdlYkNvbm5lY3Rpb25MZWdh
Y3lNZXNzYWdlOjpLaW5kPiB7CisgICAgc3RhdGljIGNvbnN0IE1lc3NhZ2VDbGFzcyBtZXNzYWdl
Q2xhc3MgPSBNZXNzYWdlQ2xhc3NXZWJDb25uZWN0aW9uTGVnYWN5OworfTsKKworfQorCisjZW5k
aWYgLy8gV2ViQ29ubmVjdGlvbk1lc3NhZ2VLaW5kc19oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
CisKKyNpbmNsdWRlICJXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmgiCisjaW5jbHVkZSAiV2Vi
Q29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKHByb2Nlc3MsIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBydW5M
b29wKSk7Cit9CisKK1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldlYkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQorICAgIDog
bV9wcm9jZXNzKHByb2Nlc3MpCisgICAgLCBtX2Nvbm5lY3Rpb24oQ29yZUlQQzo6Q29ubmVjdGlv
bjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgdGhpcywgcnVu
TG9vcCkpCit7CisjaWYgT1MoREFSV0lOKQorICAgIG1fY29ubmVjdGlvbi0+c2V0U2hvdWxkQ2xv
c2VDb25uZWN0aW9uT25NYWNoRXhjZXB0aW9ucygpOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAg
bV9jb25uZWN0aW9uLT5zZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25PblByb2Nlc3NUZXJtaW5hdGlv
bihwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKKyNlbmRpZgorCisgICAgbV9jb25uZWN0
aW9uLT5vcGVuKCk7Cit9CisKK3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aW52YWxp
ZGF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7CisgICAgbV9jb25uZWN0
aW9uID0gbnVsbHB0cjsKKyAgICBtX3Byb2Nlc3MgPSAwOworfQorCisvLyBXZWJDb25uZWN0aW9u
CisKK3ZvaWQgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cG9zdE1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKK3sKKyAgICAvLyBXZSBu
ZWVkIHRvIGNoZWNrIGlmIHdlIGhhdmUgYW4gdW5kZXJseWluZyBwcm9jZXNzIGhlcmUgc2luY2Ug
YSB1c2VyIG9mIHRoZSBBUEkgY2FuIGhvbGQKKyAgICAvLyBvbnRvIHVzIGFuZCBjYWxsIHBvc3RN
ZXNzYWdlIGV2ZW4gYWZ0ZXIgdGhlIHByb2Nlc3MgaGFzIGJlZW4gaW52YWxpZGF0ZWQuCisgICAg
aWYgKCFtX3Byb2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+ZGVwcmVj
YXRlZFNlbmQoV2ViQ29ubmVjdGlvbkxlZ2FjeU1lc3NhZ2U6OlBvc3RNZXNzYWdlLCAwLCBDb3Jl
SVBDOjpJbihtZXNzYWdlTmFtZSwgV2ViQ29udGV4dFVzZXJNZXNzYWdlRW5jb2RlcihtZXNzYWdl
Qm9keSkpKTsKK30KKworLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisKK3ZvaWQgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKK3ZvaWQgV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBPd25QdHI8Q29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyPiYgcmVwbHkpCit7CisgICAgbV9wcm9jZXNzLT5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMsIHJlcGx5KTsKK30KKwordm9pZCBXZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKQoreworICAgIG1fcHJvY2Vzcy0+ZGlkQ2xvc2UoY29ubmVjdGlvbik7CisKKyAgICAv
LyBUZWxsIHRoZSBBUEkgY2xpZW50IHRoYXQgdGhlIGNvbm5lY3Rpb24gY2xvc2VkLgorICAgIG1f
Y2xpZW50LmRpZENsb3NlKHRoaXMpOworfQorCit2b2lkIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlEKQoreworICAgIFJlZlB0cjxXZWJQcm9j
ZXNzUHJveHk+IHByb2Nlc3MgPSBtX3Byb2Nlc3M7CisKKyAgICAvLyBUaGlzIHdpbGwgaW52YWxp
ZGF0ZSB0aGUgQ29yZUlQQzo6Q29ubmVjdGlvbiBhbmQgdGhlIFdlYlByb2Nlc3NQcm94eSBwb2lu
dGVyCisgICAgLy8gc28gd2Ugc2hvdWxkIGJlIGNhcmVmdWwgbm90IHRvIHVzZSB0aGVtIGFmdGVy
IHRoaXMgY2FsbC4KKyAgICBwcm9jZXNzLT5kaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlEKTsKKworICAgIC8vIFNpbmNlIHdlJ3ZlIGludmFsaWRhdGVkIHRoZSBj
b25uZWN0aW9uIHdlJ2xsIG5ldmVyIGdldCBhIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudDo6
ZGlkQ2xvc2UKKyAgICAvLyBjYWxsYmFjayBzbyB3ZSdsbCBleHBsaWNpdGx5IGNhbGwgaXQgaGVy
ZSBpbnN0ZWFkLgorICAgIHByb2Nlc3MtPmRpZENsb3NlKGNvbm5lY3Rpb24pOworCisgICAgLy8g
VGVsbCB0aGUgQVBJIGNsaWVudCB0aGF0IHRoZSBjb25uZWN0aW9uIGNsb3NlZC4KKyAgICBtX2Ns
aWVudC5kaWRDbG9zZSh0aGlzKTsKK30KKwordm9pZCBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzeW5jTWVzc2FnZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KQoreworICAgIG1fcHJvY2Vzcy0+c3luY01lc3NhZ2VTZW5kVGltZWRPdXQoY29ubmVjdGlvbik7
Cit9CisKKyNpZiBQTEFURk9STShXSU4pCitWZWN0b3I8SFdORD4gV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGluZ0ZvclN5bmNS
ZXBseSgpCit7CisgICAgcmV0dXJuIG1fcHJvY2Vzcy0+d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNz
YWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c19oCisjZGVmaW5lIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NfaAorCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyA6IHB1YmxpYyBXZWJDb25uZWN0aW9uLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M+IGNyZWF0ZShXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyLCBSdW5Mb29wKik7CisKKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9u
KCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CisKKyAgICB2b2lkIGludmFsaWRhdGUo
KTsKKworcHJpdmF0ZToKKyAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQ
cm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKworICAg
IC8vIFdlYkNvbm5lY3Rpb24KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiwgQVBJT2JqZWN0Kik7CisKKyAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPd25QdHI8Q29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyPiYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShDb3JlSVBD
OjpDb25uZWN0aW9uKik7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlEKTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3luY01lc3NhZ2VTZW5kVGltZWRPdXQoQ29yZUlQQzo6Q29ubmVjdGlvbiopOworI2lm
IFBMQVRGT1JNKFdJTikKKyAgICB2aXJ0dWFsIFZlY3RvcjxIV05EPiB3aW5kb3dzVG9SZWNlaXZl
U2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KCk7CisjZW5kaWYKKworICAgIFdl
YlByb2Nlc3NQcm94eSogbV9wcm9jZXNzOworICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDEwMTk2NykKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDUsNyArMTQ1LDcgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKENvcmVJUAog
ICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1
cm4gbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShtZXNzYWdlSUQsIGFyZ3VtZW50cywgbWVzc2Fn
ZVNlbmRGbGFncyk7CisgICAgcmV0dXJuIGNvbm5lY3Rpb24oKS0+c2VuZE1lc3NhZ2UobWVzc2Fn
ZUlELCBhcmd1bWVudHMsIG1lc3NhZ2VTZW5kRmxhZ3MpOwogfQogCiBib29sIFdlYlByb2Nlc3NQ
cm94eTo6aXNMYXVuY2hpbmcoKSBjb25zdApAQCAtMzY0LDE0ICszNjQsOCBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNCiAgICAgLy8gb25seSBiZSBoaXQgaW4gdGhl
IGNhc2Ugb2YgYSBtaXNiZWhhdmluZyB3ZWIgcHJvY2Vzcy4KICAgICBmcHJpbnRmKHN0ZGVyciwg
IlJlY2VpdmUgYW4gaW52YWxpZCBtZXNzYWdlIGZyb20gdGhlIHdlYiBwcm9jZXNzIHdpdGggbWVz
c2FnZSBJRCAleFxuIiwgbWVzc2FnZUlELnRvSW50KCkpOwogCi0gICAgLy8gV2UgcmVjZWl2ZWQg
YW4gaW52YWxpZCBtZXNzYWdlIGZyb20gdGhlIHdlYiBwcm9jZXNzLCBpbnZhbGlkYXRlIG91ciBj
b25uZWN0aW9uIGFuZCBraWxsIGl0LgotICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwot
CisgICAgLy8gVGVybWluYXRlIHRoZSBXZWJQcm9jZXNzZXMuCiAgICAgdGVybWluYXRlKCk7Ci0K
LSAgICAvLyBTaW5jZSB3ZSd2ZSBpbnZhbGlkYXRlZCB0aGUgY29ubmVjdGlvbiB3ZSdsbCBuZXZl
ciBnZXQgYSBDb25uZWN0aW9uOjpDbGllbnQ6OmRpZENsb3NlCi0gICAgLy8gY2FsbGJhY2sgc28g
d2UnbGwgZXhwbGljaXRseSBjYWxsIGl0IGhlcmUgaW5zdGVhZC4KLSAgICBkaWRDbG9zZShtX2Nv
bm5lY3Rpb24uZ2V0KCkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c3luY01lc3NhZ2VT
ZW5kVGltZWRPdXQoQ29yZUlQQzo6Q29ubmVjdGlvbiopCkBAIC00MDgsMTkgKzQwMiwxMiBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nCiB7CiAgICAgQVNTRVJUKCFt
X2Nvbm5lY3Rpb24pOwogICAgIAotICAgIG1fY29ubmVjdGlvbiA9IENvcmVJUEM6OkNvbm5lY3Rp
b246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsIHRoaXMsIFJ1
bkxvb3A6Om1haW4oKSk7Ci0jaWYgT1MoREFSV0lOKQotICAgIG1fY29ubmVjdGlvbi0+c2V0U2hv
dWxkQ2xvc2VDb25uZWN0aW9uT25NYWNoRXhjZXB0aW9ucygpOwotI2VsaWYgUExBVEZPUk0oUVQp
Ci0gICAgbV9jb25uZWN0aW9uLT5zZXRTaG91bGRDbG9zZUNvbm5lY3Rpb25PblByb2Nlc3NUZXJt
aW5hdGlvbihwcm9jZXNzSWRlbnRpZmllcigpKTsKLSNlbmRpZgotCi0gICAgbV9jb25uZWN0aW9u
LT5vcGVuKCk7CisgICAgbV9jb25uZWN0aW9uID0gV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y3JlYXRlKHRoaXMsIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBSdW5Mb29wOjptYWluKCkpOwogICAg
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wZW5kaW5nTWVzc2FnZXMuc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6T3V0Z29pbmdNZXNzYWdlJiBvdXRn
b2luZ01lc3NhZ2UgPSBtX3BlbmRpbmdNZXNzYWdlc1tpXS5maXJzdDsKICAgICAgICAgdW5zaWdu
ZWQgbWVzc2FnZVNlbmRGbGFncyA9IG1fcGVuZGluZ01lc3NhZ2VzW2ldLnNlY29uZDsKLSAgICAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShvdXRnb2luZ01lc3NhZ2UubWVzc2FnZUlEKCks
IGFkb3B0UHRyKG91dGdvaW5nTWVzc2FnZS5hcmd1bWVudHMoKSksIG1lc3NhZ2VTZW5kRmxhZ3Mp
OworICAgICAgICBjb25uZWN0aW9uKCktPnNlbmRNZXNzYWdlKG91dGdvaW5nTWVzc2FnZS5tZXNz
YWdlSUQoKSwgYWRvcHRQdHIob3V0Z29pbmdNZXNzYWdlLmFyZ3VtZW50cygpKSwgbWVzc2FnZVNl
bmRGbGFncyk7CiAgICAgfQogCiAgICAgbV9wZW5kaW5nTWVzc2FnZXMuY2xlYXIoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgJKHJldmlzaW9uIDEw
MTk2NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsMTMgKzI2LDEzIEBACiAjaWZuZGVmIFdlYlByb2Nlc3NQcm94eV9o
CiAjZGVmaW5lIFdlYlByb2Nlc3NQcm94eV9oCiAKLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBsdWdpbklu
Zm9TdG9yZS5oIgogI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogI2luY2x1ZGUgIlByb2Nl
c3NNb2RlbC5oIgogI2luY2x1ZGUgIlJlc3BvbnNpdmVuZXNzVGltZXIuaCIKICNpbmNsdWRlICJU
aHJlYWRMYXVuY2hlci5oIgorI2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KQEAgLTc0LDggKzc0LDkgQEAg
cHVibGljOgogICAgIHsgCiAgICAgICAgIEFTU0VSVChtX2Nvbm5lY3Rpb24pOwogICAgICAgICAK
LSAgICAgICAgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgCisgICAgICAgIHJldHVybiBtX2Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsgCiAgICAgfQorICAgIFdlYkNvbm5lY3Rpb24qIHdlYkNv
bm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogICAgIFdl
YkNvbnRleHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIApA
QCAtMTQ4LDE0ICsxNDksMTQgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gQ29yZUlQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgZnJpZW5kIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlv
biosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRy
PENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CiAgICAg
dmlydHVhbCB2b2lkIHN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24q
KTsKLQogI2lmIFBMQVRGT1JNKFdJTikKLSAgICBWZWN0b3I8SFdORD4gd2luZG93c1RvUmVjZWl2
ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpOworICAgIHZpcnR1YWwgVmVj
dG9yPEhXTkQ+IHdpbmRvd3NUb1JlY2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5j
UmVwbHkoKTsKICNlbmRpZgogCiAgICAgLy8gUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50CkBA
IC0xNzUsNyArMTc2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY1dlYlBy
b2Nlc3NQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMsIE93blB0cjxDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXI+JiByZXBseSk7CiAKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyIG1fcmVz
cG9uc2l2ZW5lc3NUaW1lcjsKLSAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25u
ZWN0aW9uOworICAgIAorICAgIC8vIFRoaXMgaXMgbm90IGEgQ29yZUlQQzo6Q29ubmVjdGlvbiBz
byB0aGF0IHdlIGNhbiB3cmFwIHRoZSBDb3JlSVBDOjpDb25uZWN0aW9uIGluCisgICAgLy8gYW4g
QVBJIG9iamVjdC4KKyAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25u
ZWN0aW9uOwogCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDb3JlSVBDOjpDb25uZWN0aW9uOjpPdXRn
b2luZ01lc3NhZ2UsIHVuc2lnbmVkPiA+IG1fcGVuZGluZ01lc3NhZ2VzOwogICAgIFJlZlB0cjxQ
cm9jZXNzTGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVyOwpAQCAtMjE1LDcgKzIxOSw3IEBAIGJv
b2wgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kU3luYyhjb25zdCBVJiAKICAgICBpZiAoIW1fY29ubmVj
dGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1fY29ubmVjdGlvbi0+
c2VuZFN5bmMobWVzc2FnZSwgcmVwbHksIGRlc3RpbmF0aW9uSUQsIHRpbWVvdXQpOworICAgIHJl
dHVybiBjb25uZWN0aW9uKCktPnNlbmRTeW5jKG1lc3NhZ2UsIHJlcGx5LCBkZXN0aW5hdGlvbklE
LCB0aW1lb3V0KTsKIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMTAxOTY3KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00ODEsNiArNDgxLDggQEAKIAkJQkMwNkY0NEIxMkRC
RDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkY0
NDkxMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwICovOyB9OwogCQlCQzA2RjQ0RTEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzA2RjQ0QzEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQkMwNkY0NEYxMkRCREYzRjAwMkQ3OERFIC8qIFdLR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzA2RjQ0RDEyREJERjNGMDAyRDc4REUgLyogV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcCAqLzsgfTsKKwkJQkMwOUI4RjgxNDc0NjBGNzAwNUY1NjI1IC8qIFdlYkNv
bnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMDlCOEY2MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29u
bmVjdGlvbkNsaWVudC5jcHAgKi87IH07CisJCUJDMDlCOEY5MTQ3NDYwRjcwMDVGNTYyNSAvKiBX
ZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwOUI4RjcxNDc0NjBGNzAwNUY1NjI1IC8qIFdlYkNvbnRleHRD
b25uZWN0aW9uQ2xpZW50LmggKi87IH07CiAJCUJDMEU1RkU1MTJENjk3MTYwMDEyQTcyQSAvKiBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMEU1RkUzMTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1h
bmFnZXIuaCAqLzsgfTsKIAkJQkMwRTVGRTYxMkQ2OTcxNjAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzBFNUZFNDEyRDY5NzE2MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNw
cCAqLzsgfTsKIAkJQkMwRTYwNjExMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzBFNjA1RjEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTYwNCw2ICs2MDYsOCBAQAogCQlC
QzRBNjI5MjE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QTYyOEUxNDczMTJCRTAw
NkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25DbGllbnQuaCAqLzsgfTsKIAkJQkM0QTYyOTYxNDczMTNB
MDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRBNjI5NDE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25u
ZWN0aW9uUmVmLmNwcCAqLzsgfTsKIAkJQkM0QTYyOTcxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29u
bmVjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM0QTYyOTUxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUJDNEE2MkE3MTQ3NDRF
QzcwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE2MkE1MTQ3NDRFQzYwMDZDNjgx
QSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLzsgfTsKKwkJQkM0QTYyQTgxNDc0
NEVDNzAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEE2MkE2MTQ3NDRFQzYwMDZDNjgx
QSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi87IH07CiAJCUJDNEJFRUFCMTIwQTBB
NUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJFRUE5MTIwQTBBNUUwMEZCQTBDNyAv
KiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCAqLzsgfTsKIAkJQkM0QkVFQUMxMjBBMEE1RjAw
RkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRCRUVBQTEyMEEwQTVGMDBGQkEwQzcgLyog
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLzsgfTsKIAkJQkM0QkVGRTExMjBBMUE0QzAw
RkJBMEM3IC8qIFdLQnVuZGxlTm9kZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QkVGREYxMjBBMUE0QzAwRkJBMEM3IC8qIFdLQnVuZGxl
Tm9kZUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC03NTMsNiArNzU3LDcgQEAKIAkJQkNEMDEzOUMxMTBGQTQyMDAwM0I4QTY3IC8qIFdL
RnJhbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNEMDEzOTgxMTBGQTQyMDAwM0I4QTY3IC8qIFdLRnJhbWUuY3BwICovOyB9OwogCQlCQ0QyNUYx
NzExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEMjVGMTUxMUQ2QkRFMTAwMTY5QjBFIC8qIFdL
QnVuZGxlRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0QyNUYxODExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QyNUYxNjExRDZC
REUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFtZS5jcHAgKi87IH07CisJCUJDRDM2NzVDMTQ4QzI2
QzAwMDQ0N0U4NyAvKiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFOUMwQ0YxNDg1OTY1RDAwRTMzRDYx
IC8qIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgKi87IH07CiAJCUJDRDU5N0QwMTEyQjU2
QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q1OTdDRTExMkI1NkFDMDBFQzhDMjMgLyogV0tQcmVmZXJl
bmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUJDRDU5N0QxMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDU5N0NGMTEyQjU2QUMwMEVD
OEMyMyAvKiBXS1ByZWZlcmVuY2VzLmNwcCAqLzsgfTsKIAkJQkNENTk3RDYxMTJCNTZEQzAwRUM4
QzIzIC8qIFdLUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0Q1OTdENDExMkI1NkRDMDBFQzhDMjMgLyogV0tQYWdlLmNwcCAqLzsgfTsKQEAg
LTc4OCw2ICs3OTMsNyBAQAogCQlCQ0U4MUQ4RDEzMTlGN0VGMDAyNDE5MTAgLyogRm9udEluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTgxRDhC
MTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5mby5oICovOyB9OwogCQlCQ0U4MUQ5ODEzMUFFMDIx
MDAyNDE5MTAgLyogRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U4MUQ5NjEzMUFFMDIwMDAyNDE5MTAgLyogRGlj
dGlvbmFyeVBvcHVwSW5mby5jcHAgKi87IH07CiAJCUJDRTgxRDk5MTMxQUUwMjEwMDI0MTkxMCAv
KiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0U4MUQ5NzEzMUFFMDIxMDAyNDE5MTAgLyogRGljdGlvbmFyeVBvcHVw
SW5mby5oICovOyB9OworCQlCQ0U5QzBCNzE0ODQ3MTQ3MDBFMzNENjEgLyogV2ViQ29ubmVjdGlv
bk1lc3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNFOUMwQjYxNDg0NzE0NzAwRTMzRDYxIC8qIFdlYkNvbm5lY3Rpb25NZXNzYWdlS2lu
ZHMuaCAqLzsgfTsKIAkJQkNFRTdBRDAxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0VFN0FDQzEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQkNFRTdBRDExMjgxNzk4ODAwOTgyN0RBIC8qIFdl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0VFN0FDRDEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLzsgfTsKIAkJQkNFRTdEMEQxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRl
eHRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNFRTdEMEIxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTQ3NCw2ICsxNDgwLDggQEAKIAkJQkMwNkY0NDkxMkRC
RDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMDZGNDRDMTJEQkRGM0YwMDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDZGNDRE
MTJEQkRGM0YwMDJENzhERSAvKiBXS0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwOUI4RjYxNDc0
NjBGNzAwNUY1NjI1IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwOUI4RjcxNDc0NjBGNzAwNUY1NjI1
IC8qIFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvbnRleHRDb25uZWN0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDMEU1RkUzMTJENjk3MTYwMDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEU1RkU0MTJENjk3MTYw
MDEyQTcyQSAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMwRTYwNDgxMkQ2QjYzNzAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0
aW9uTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjA0LDYgKzE2MTIsOCBAQAogCQlCQzRBNjI4RTE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVj
dGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb25uZWN0
aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNEE2Mjk0MTQ3MzEz
QTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tDb25uZWN0aW9uUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM0QTYyOTUxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Nvbm5lY3Rpb25SZWYuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0QTYyQTUxNDc0NEVDNjAwNkM2ODFBIC8qIFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDNEE2MkE2MTQ3NDRFQzYwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0QkVFQTkxMjBB
MEE1RTAwRkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM0QkVFQUExMjBBMEE1RjAwRkJBMEM3IC8qIEluamVjdGVk
QnVuZGxlTm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzRCRUZERjEyMEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTm9kZUhhbmRsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4Niw2ICsxNzk2LDkgQEAKIAkJQkNFODFEOEIx
MzE5RjdFRjAwMjQxOTEwIC8qIEZvbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZvbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTgxRDk2
MTMxQUUwMjAwMDI0MTkxMCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpY3Rpb25hcnlQb3B1cEluZm8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0U4MUQ5NzEzMUFFMDIxMDAyNDE5MTAgLyogRGljdGlv
bmFyeVBvcHVwSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0aW9u
YXJ5UG9wdXBJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDRTlDMEI2MTQ4
NDcxNDcwMEUzM0Q2MSAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbm5lY3Rpb25NZXNzYWdlS2luZHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNFOUMwQ0YxNDg1OTY1RDAwRTMzRDYxIC8qIFdlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlCQ0U5QzBEMDE0ODU5NjVEMDBFMzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VFN0FCMzEyODE3MDk1
MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNFRTdBQ0MxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQ
cm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQ0VFN0FDRDEyODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc1Byb3h5TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NDYsNiArMjY1OSw4IEBACiAJ
CQkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovLAogCQkJCUJD
MDMyRDVFMTBGNDM3MkIwMDU4QzE1QSAvKiBXZWJQYWdlICovLAogCQkJCTFBNkZBMzE1MTFFMzky
MzYwMERCMTM3MSAvKiBXZWJLaXRNYWluLmNwcCAqLywKKwkJCQlCQ0U5QzBDRjE0ODU5NjVEMDBF
MzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcCAqLywKKwkJCQlCQ0U5QzBEMDE0
ODU5NjVEMDBFMzNENjEgLyogV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmggKi8sCiAJCQkJQkMx
MTFBRTMxMTJGNUMyNjAwMzM3QkFCIC8qIFdlYlByb2Nlc3MuY3BwICovLAogCQkJCUJDMDMyRDkx
MTBGNDM3QUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzLmggKi8sCiAJCQkJQkMzMDY2QjkxMjVBNDM2
MzAwRTcxMjc4IC8qIFdlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCkBAIC0yNzcwLDYgKzI3ODUs
OCBAQAogCQkJCTUxMkUzNUYwMTMwQjYzOEMwMEFCRDE5QSAvKiBXZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCUJDNzJCQTFCMTFFNjQ5MDcwMDFFQjRF
QSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFF
QjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKKwkJCQlCQzA5QjhGNjE0NzQ2MEY3MDA1
RjU2MjUgLyogV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuY3BwICovLAorCQkJCUJDMDlCOEY3
MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oICovLAogCQkJ
CUJDQjlFMjQyMTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmNwcCAqLywKIAkJCQlCQ0I5
RTI0MTExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5oICovLAogCQkJCUJDRUU3RDA5MTI4
NDZBRUQwMDk4MjdEQSAvKiBXZWJDb250ZXh0Lm1lc3NhZ2VzLmluICovLApAQCAtMjg1Niw2ICsy
ODczLDggQEAKIAkJCQlCQzExMUIwRDExMkY1RTRGMDAzMzdCQUIgLyogV2ViUHJvY2Vzc1Byb3h5
LmNwcCAqLywKIAkJCQlCQzAzMkRDRjEwRjQzODlGMDA1OEMxNUEgLyogV2ViUHJvY2Vzc1Byb3h5
LmggKi8sCiAJCQkJQkNFRTdBQjMxMjgxNzA5NTAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbiAqLywKKwkJCQlCQzRBNjJBNTE0NzQ0RUM2MDA2QzY4MUEgLyogV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCisJCQkJQkM0QTYyQTYxNDc0NEVDNjAwNkM2ODFBIC8q
IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQkzMzM2NzYzMjEzMEM5OUIyMDA2
QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJMzMzNjc2
MzMxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLywK
IAkJCQkzMzM2NzYzNDEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiAqLywKQEAgLTMwNzcsNiArMzA5Niw3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDQjI4Q0JGMTIwMjMzRDkwMDdEOTlCQyAvKiBJ
bmplY3RlZEJ1bmRsZU1lc3NhZ2VLaW5kcy5oICovLAorCQkJCUJDRTlDMEI2MTQ4NDcxNDcwMEUz
M0Q2MSAvKiBXZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmggKi8sCiAJCQkJQkNDQjc1QzUxMjAz
QTFDRTAwMjIyRDFCIC8qIFdlYkNvbnRleHRNZXNzYWdlS2luZHMuaCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gQ29yZUlQQ1N1cHBvcnQ7CkBAIC00MDMxLDcgKzQwNTEsMTAgQEAKIAkJCQlCQzRBNjI5
MDE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM0QTYyOTIxNDczMTJCRTAwNkM2ODFBIC8qIFdlYkNvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNEE2Mjk3MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYu
aCBpbiBIZWFkZXJzICovLAorCQkJCUJDNEE2MkE4MTQ3NDRFQzcwMDZDNjgxQSAvKiBXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzA5QjhGOTE0NzQ2MEY3
MDA1RjU2MjUgLyogV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3ODhBMDVDMTQ3NDNDOTAwMDYzMTlFNSAvKiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0U5QzBCNzE0ODQ3MTQ3MDBFMzNENjEg
LyogV2ViQ29ubmVjdGlvbk1lc3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEwOTk5
NkYxNDZDNzQxRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzEwOTk5N0IxNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxMDk5OUM3MTQ2QzlFM0QwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNDc0MSw2ICs0NzY0
LDggQEAKIAkJCQlCQzRBNjI4RjE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVjdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5MTE0NzMxMkJFMDA2QzY4MUEgLyogV2ViQ29ubmVj
dGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzRBNjI5NjE0NzMxM0EwMDA2QzY4
MUEgLyogV0tDb25uZWN0aW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNEE2MkE3MTQ3
NDRFQzcwMDZDNjgxQSAvKiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUJDMDlCOEY4MTQ3NDYwRjcwMDVGNTYyNSAvKiBXZWJDb250ZXh0Q29ubmVjdGlv
bkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTA5OTk3MDE0NkM3NDIwMDAyOURFQjkg
LyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMx
MDk5OTczMTQ2Qzc1QTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzEwOTk5N0ExNDZDOEIxNDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC00NzUwLDYgKzQ3NzUsNyBAQAogCQkJCTMx
OEJFMTc3MTQ3NDNFNjAwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMUMxMUFCMzE0ODQ1MkU5MDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxQkE5MjREMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDRDM2
NzVDMTQ4QzI2QzAwMDQ0N0U4NyAvKiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1VJUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKKworI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJDb25uZWN0aW9uTWVzc2FnZUtp
bmRzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzczo6Y3JlYXRlKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MocHJvY2VzcywgY29u
bmVjdGlvbklkZW50aWZpZXIsIHJ1bkxvb3ApKTsKK30KKworV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzOjpXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MoV2ViUHJvY2VzcyogcHJvY2VzcywgQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgUnVuTG9vcCog
cnVuTG9vcCkKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQorICAgICwgbV9jb25uZWN0aW9uKENv
cmVJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50
aWZpZXIsIHRoaXMsIHJ1bkxvb3ApKQoreworICAgIG1fY29ubmVjdGlvbi0+c2V0RGlkQ2xvc2VP
bkNvbm5lY3Rpb25Xb3JrUXVldWVDYWxsYmFjayhDaGlsZFByb2Nlc3M6OmRpZENsb3NlT25Db25u
ZWN0aW9uV29ya1F1ZXVlKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNldFNob3VsZEV4aXRPblN5bmNN
ZXNzYWdlU2VuZEZhaWx1cmUodHJ1ZSk7CisgICAgbV9jb25uZWN0aW9uLT5hZGRRdWV1ZUNsaWVu
dCh0aGlzKTsKKworICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOworfQorCit2b2lkIFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzczo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9jb25uZWN0aW9uLT5yZW1v
dmVRdWV1ZUNsaWVudCh0aGlzKTsKKworICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwor
ICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgbV9wcm9jZXNzID0gMDsKK30KKworLy8g
V2ViQ29ubmVjdGlvbgorCit2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6cG9zdE1lc3Nh
Z2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJT2JqZWN0KiBtZXNzYWdlQm9keSkKK3sK
KyAgICBpZiAoIW1fcHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb25uZWN0aW9u
LT5kZXByZWNhdGVkU2VuZChXZWJDb25uZWN0aW9uTGVnYWN5TWVzc2FnZTo6UG9zdE1lc3NhZ2Us
IDAsIENvcmVJUEM6OkluKG1lc3NhZ2VOYW1lLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5j
b2RlcihtZXNzYWdlQm9keSkpKTsKK30KKworLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
CisKK3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBtX3Byb2Nlc3Mt
PmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30K
Kwordm9pZCBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgT3duUHRyPENvcmVJUEM6
OkFyZ3VtZW50RW5jb2Rlcj4mIHJlcGx5KQoreworICAgIG1fcHJvY2Vzcy0+ZGlkUmVjZWl2ZVN5
bmNNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzLCByZXBseSk7Cit9CisK
K3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uKQoreworICAgIG1fcHJvY2Vzcy0+ZGlkQ2xvc2UoY29ubmVjdGlvbik7
Cit9CisKK3ZvaWQgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlE
IG1lc3NhZ2VJRCkKK3sKKyAgICBtX3Byb2Nlc3MtPmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQpOworfQorCit2b2lkIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
czo6c3luY01lc3NhZ2VTZW5kVGltZWRPdXQoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
bikKK3sKKyAgICBtX3Byb2Nlc3MtPnN5bmNNZXNzYWdlU2VuZFRpbWVkT3V0KGNvbm5lY3Rpb24p
OworfQorCisjaWYgUExBVEZPUk0oV0lOKQorVmVjdG9yPEhXTkQ+IFdlYkNvbm5lY3Rpb25Ub1VJ
UHJvY2Vzczo6d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGluZ0ZvclN5bmNS
ZXBseSgpCit7CisgICAgcmV0dXJuIG1fcHJvY2Vzcy0+d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNz
YWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpOworfQorI2VuZGlmCisKKy8vIENvcmVJUEM6
OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50CisKK2Jvb2wgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
Ojp3aWxsUHJvY2Vzc01lc3NhZ2VPbkNsaWVudFJ1bkxvb3AoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgcmV0dXJuIG1fcHJvY2Vzcy0+d2lsbFByb2Nl
c3NNZXNzYWdlT25DbGllbnRSdW5Mb29wKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3NfaAorI2RlZmluZSBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3Nf
aAorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvbm5lY3Rpb24uaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFdlYkNv
bm5lY3Rpb25Ub1VJUHJvY2VzcyA6IHB1YmxpYyBXZWJDb25uZWN0aW9uLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQsIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0
ZShXZWJQcm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUnVuTG9vcCop
OworCisgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisKK3ByaXZhdGU6Cisg
ICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisKKyAgICAvLyBXZWJDb25uZWN0aW9uCisgICAg
dmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOworCisg
ICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgT3duUHRyPENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlcj4mKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisgICAgdmlydHVhbCB2b2lkIHN5bmNNZXNzYWdlU2VuZFRp
bWVkT3V0KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKKyNpZiBQTEFURk9STShXSU4pCisgICAgdmly
dHVhbCBWZWN0b3I8SFdORD4gd2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGlu
Z0ZvclN5bmNSZXBseSgpOworI2VuZGlmCisKKyAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpR
dWV1ZUNsaWVudAorICAgIHZpcnR1YWwgYm9vbCB3aWxsUHJvY2Vzc01lc3NhZ2VPbkNsaWVudFJ1
bkxvb3AoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisKKyAgICBXZWJQcm9jZXNzKiBtX3Byb2Nlc3M7CisgICAgUmVm
UHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzX2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTAxOTY3
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTYxLDEzICsxNjEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemUoQ29y
ZUlQQzo6Q29uCiB7CiAgICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb24pOwogCi0gICAgbV9jb25uZWN0
aW9uID0gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihzZXJ2ZXJJ
ZGVudGlmaWVyLCB0aGlzLCBydW5Mb29wKTsKLSAgICBtX2Nvbm5lY3Rpb24tPnNldERpZENsb3Nl
T25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soZGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3JrUXVl
dWUpOwotICAgIG1fY29ubmVjdGlvbi0+c2V0U2hvdWxkRXhpdE9uU3luY01lc3NhZ2VTZW5kRmFp
bHVyZSh0cnVlKTsKLSAgICBtX2Nvbm5lY3Rpb24tPmFkZFF1ZXVlQ2xpZW50KHRoaXMpOwotCi0g
ICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7Ci0KKyAgICBtX2Nvbm5lY3Rpb24gPSBXZWJDb25uZWN0
aW9uVG9VSVByb2Nlc3M6OmNyZWF0ZSh0aGlzLCBzZXJ2ZXJJZGVudGlmaWVyLCBydW5Mb29wKTsK
ICAgICBtX3J1bkxvb3AgPSBydW5Mb29wOwogCiAgICAgc3RhcnRSYW5kb21DcmFzaFRocmVhZElm
UmVxdWVzdGVkKCk7CkBAIC0zMzksNyArMzMzLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjphZGRWaXNp
dGVkTGluayhXZWJDb3JlOgogewogICAgIGlmIChpc0xpbmtWaXNpdGVkKGxpbmtIYXNoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4
dDo6QWRkVmlzaXRlZExpbmtIYXNoKGxpbmtIYXNoKSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpBZGRWaXNpdGVkTGlua0hhc2gobGlua0hhc2gpLCAw
KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRDYWNoZU1vZGVsKHVpbnQzMl90IGNtKQpAQCAt
NTU1LDcgKzU0OSw3IEBAIGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKIAogICAg
IC8vIEZJWE1FOiB0aGUgU2hvdWxkVGVybWluYXRlIG1lc3NhZ2Ugc2hvdWxkIGFsc28gc2VuZCB0
ZXJtaW5hdGlvbiBwYXJhbWV0ZXJzLCBzdWNoIGFzIGFueSBzZXNzaW9uIGNvb2tpZXMgdGhhdCBu
ZWVkIHRvIGJlIHByZXNlcnZlZC4KICAgICBib29sIHNob3VsZFRlcm1pbmF0ZSA9IGZhbHNlOwot
ICAgIGlmIChtX2Nvbm5lY3Rpb24tPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6
OlNob3VsZFRlcm1pbmF0ZSgpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTaG91bGRUZXJt
aW5hdGU6OlJlcGx5KHNob3VsZFRlcm1pbmF0ZSksIDApCisgICAgaWYgKGNvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U2hvdWxkVGVybWluYXRlKCksIE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlNob3VsZFRlcm1pbmF0ZTo6UmVwbHkoc2hvdWxkVGVy
bWluYXRlKSwgMCkKICAgICAgICAgJiYgIXNob3VsZFRlcm1pbmF0ZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCkBAIC01NzAsNyArNTY0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjp0ZXJtaW5hdGUo
KQogI2VuZGlmCiAKICAgICAvLyBJbnZhbGlkYXRlIG91ciBjb25uZWN0aW9uLgotICAgIG1fY29u
bmVjdGlvbi0+cmVtb3ZlUXVldWVDbGllbnQodGhpcyk7CiAgICAgbV9jb25uZWN0aW9uLT5pbnZh
bGlkYXRlKCk7CiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKIApAQCAtNzI5LDcgKzcyMiw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVtb3ZlV2ViRnJhbWUodWludDY0X3QKICAgICBpZiAoIW1f
Y29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ryb3lGcmFtZShmcmFtZUlEKSwgMCk7Cisg
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZERlc3Ry
b3lGcmFtZShmcmFtZUlEKSwgMCk7CiB9CiAKIFdlYlBhZ2VHcm91cFByb3h5KiBXZWJQcm9jZXNz
Ojp3ZWJQYWdlR3JvdXAodWludDY0X3QgcGFnZUdyb3VwSUQpCkBAIC04MDksNyArODAyLDcgQEAg
dm9pZCBXZWJQcm9jZXNzOjpnZXRTaXRlc1dpdGhQbHVnaW5EYXRhKAogICAgIFZlY3RvcjxTdHJp
bmc+IHNpdGVzOwogICAgIGNvcHlUb1ZlY3RvcihzaXRlc1NldCwgc2l0ZXMpOwogCi0gICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpEaWRHZXRTaXRlc1dpdGhQbHVn
aW5EYXRhKHNpdGVzLCBjYWxsYmFja0lEKSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJDb250ZXh0OjpEaWRHZXRTaXRlc1dpdGhQbHVnaW5EYXRhKHNpdGVzLCBjYWxs
YmFja0lEKSwgMCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJQbHVnaW5TaXRlRGF0YShj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGx1Z2luUGF0aHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBz
aXRlcywgdWludDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKQEAgLTgzMSw3ICs4MjQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUGx1
Z2luU2l0ZURhdGEoY29uCiAgICAgICAgICAgICBuZXRzY2FwZVBsdWdpbk1vZHVsZS0+Y2xlYXJT
aXRlRGF0YShzaXRlc1tpXSwgZmxhZ3MsIG1heEFnZUluU2Vjb25kcyk7CiAgICAgfQogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpEaWRDbGVhclBsdWdpblNp
dGVEYXRhKGNhbGxiYWNrSUQpLCAwKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkNvbnRleHQ6OkRpZENsZWFyUGx1Z2luU2l0ZURhdGEoY2FsbGJhY2tJRCksIDApOwogfQog
I2VuZGlmCiAgICAgCkBAIC05NDAsNyArOTMzLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRXZWJD
b3JlU3RhdGlzdGljcyh1aQogICAgIC8vIEdldCBXZWJDb3JlIG1lbW9yeSBjYWNoZSBzdGF0aXN0
aWNzCiAgICAgZ2V0V2ViQ29yZU1lbW9yeUNhY2hlU3RhdGlzdGljcyhkYXRhLndlYkNvcmVDYWNo
ZVN0YXRpc3RpY3MpOwogICAgIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2Vi
Q29udGV4dDo6RGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoZGF0YSwgY2FsbGJhY2tJRCksIDApOwor
ICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4dDo6RGlkR2V0V2ViQ29y
ZVN0YXRpc3RpY3MoZGF0YSwgY2FsbGJhY2tJRCksIDApOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6
OmdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVjdHMoKQpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDEwMTk2NykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRh
dGFiYXNlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eS5oIgorI2luY2x1ZGUg
IldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2gu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBA
IC03Nyw3ICs3OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CiAKLSAgICBDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Cisg
ICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdGlvbi0+Y29ubmVjdGlvbigpOyB9CiAgICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuTG9vcDsgfQogCiAgICAgV2ViUGFnZSogd2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQpIGNvbnN0OwpAQCAtMTk4LDI0ICsxOTksMjYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgdGVybWluYXRlKCk7CiAKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKKyAg
ICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE93blB0cjxDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXI+Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvcmVJUEM6OkNvbm5lY3Rpb24qKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jTWVzc2Fn
ZVNlbmRUaW1lZE91dChDb3JlSVBDOjpDb25uZWN0aW9uKik7CisjaWYgUExBVEZPUk0oV0lOKQor
ICAgIHZpcnR1YWwgVmVjdG9yPEhXTkQ+IHdpbmRvd3NUb1JlY2VpdmVTZW50TWVzc2FnZXNXaGls
ZVdhaXRpbmdGb3JTeW5jUmVwbHkoKTsKKyNlbmRpZgogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVj
dGlvbjo6UXVldWVDbGllbnQKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFByb2Nlc3NNZXNzYWdlT25D
bGllbnRSdW5Mb29wKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIFZlY3Rv
cjxIV05EPiB3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1Jl
cGx5KCk7Ci0jZW5kaWYKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIGJvb2wgd2lsbFByb2Nlc3NXZWJQcm9jZXNzTWVz
c2FnZU9uQ2xpZW50UnVuTG9vcChDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJQ
cm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKIAotICAgIFJlZlB0cjxDb3JlSVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4g
bV9jb25uZWN0aW9uOworCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2U+ID4g
bV9wYWdlTWFwOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlR3JvdXBQcm94
eT4gPiBtX3BhZ2VHcm91cE1hcDsKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGU+IG1faW5qZWN0
ZWRCdW5kbGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lvbiAxMDE5
NjcpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTEyMzgsNiArMTIzOCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0XFdlYkNvbm5lY3Rpb25N
ZXNzYWdlS2luZHMuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydFxXZWJDb250ZXh0TWVzc2FnZUtpbmRz
LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0xNTU1LDYgKzE1NTksMTQgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQ
cm9jZXNzXFdlYlByb2Nlc3MuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI4MTUsNiArMjgy
NywxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxVSVByb2Nlc3NcV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb250ZXh0LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
Cg==
</data>
<flag name="review"
          id="117368"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="117378"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>