<?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>108278</bug_id>
          
          <creation_ts>2013-01-29 18:28:32 -0800</creation_ts>
          <short_desc>webdatabase: Rename DBBackend::Server to DatabaseServer</short_desc>
          <delta_ts>2013-01-29 20:08:40 -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>WebCore Misc.</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>
          
          <blocked>107475</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>819645</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-29 18:28:32 -0800</bug_when>
    <thetext>This is a sub-task of https://bugs.webkit.org/show_bug.cgi?id=107475.  Breaking out as a step for easier review.  This patch should be mostly a rename operation.  The only change other than a rename is to remove the DBBackend namespace (which has proven to be unhelpful so far in the refactoring effort).  Effectively, there are no semantic changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819721</commentid>
    <comment_count>1</comment_count>
      <attachid>185384</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-29 19:58:29 -0800</bug_when>
    <thetext>Created attachment 185384
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819722</commentid>
    <comment_count>2</comment_count>
      <attachid>185384</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-29 20:00:01 -0800</bug_when>
    <thetext>Comment on attachment 185384
the patch.

The patch looks good to me.  May I have a review please?  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819725</commentid>
    <comment_count>3</comment_count>
      <attachid>185384</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-29 20:02:07 -0800</bug_when>
    <thetext>Comment on attachment 185384
the patch.

rs=me if it builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819726</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-29 20:08:40 -0800</bug_when>
    <thetext>Landed in r141216: &lt;http://trac.webkit.org/changeset/141216&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185384</attachid>
            <date>2013-01-29 19:58:29 -0800</date>
            <delta_ts>2013-01-29 20:02:07 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-108278.patch</filename>
            <type>text/plain</type>
            <size>51212</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTIxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAxLTI5ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgREJCYWNrZW5kOjpTZXJ2
ZXIgdG8gRGF0YWJhc2VTZXJ2ZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDgyNzguCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBpcyBvbmx5IGEgcmVuYW1pbmcgb3BlcmF0aW9uIGFzIHBhcnQg
b2YgdGhlIHdlYmRhdGFiYXNlIHJlZmFjdG9yaW5nCisgICAgICAgIGVmZm9ydC4gVGhlcmUgaXMg
bm8gc2VtYW50aWMgY2hhbmdlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2ZXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvREJCYWNrZW5kU2VydmVyLmg6IFJlbW92ZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjpEYXRhYmFzZU1hbmFnZXIpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RCQmFja2VuZFNlcnZlci5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVNlcnZlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVNlcnZlcjo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlU2VydmVyOjpkYXRhYmFzZURpcmVjdG9yeVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VTZXJ2ZXI6OnNldERhdGFiYXNlRGlyZWN0b3J5UGF0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZVNlcnZlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZVNlcnZlcjo6aGFzRW50cnlGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YWJhc2VTZXJ2ZXI6Om9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2
ZXI6OmRhdGFiYXNlTmFtZXNGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VT
ZXJ2ZXI6OmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFi
YXNlU2VydmVyOjp1c2FnZUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVNl
cnZlcjo6cXVvdGFGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6
OnNldFF1b3RhKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU2VydmVyOjpkZWxldGVBbGxE
YXRhYmFzZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6OmRlbGV0ZU9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVNlcnZlcjo6ZGVsZXRlRGF0YWJhc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6OnNjaGVkdWxlTm90aWZ5RGF0YWJhc2VD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU2VydmVyOjpkYXRhYmFzZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6OmNsb3NlRGF0YWJhc2VzSW1t
ZWRpYXRlbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6OmludGVycnVwdEFs
bERhdGFiYXNlc0ZvckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6
OmNhbkVzdGFibGlzaERhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU2VydmVy
OjphZGRPcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTZXJ2ZXI6OnJl
bW92ZU9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVNlcnZlcjo6c2V0
RGF0YWJhc2VEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU2VydmVyOjpnZXRN
YXhTaXplRm9yRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RCQmFja2VuZFNlcnZlci5oLgorICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL0RhdGFiYXNlU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTdHJhdGVneTo6Z2V0RGF0YWJhc2VTZXJ2ZXIpOgor
CiAyMDEzLTAxLTI5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW5hbWUgQWJzdHJhY3REYXRhYmFzZSB0byBEYXRhYmFzZUJhY2tlbmQuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMTQxMjA5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTk1MSwxMSArOTUxLDExIEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQmFja2VuZC5jcHAKICAgICBN
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKICAgICBNb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKyAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlU2VydmVyLmNwcAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTeW5jLmNwcAog
ICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmNwcAogICAgIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuY3BwCi0gICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2ZXIu
Y3BwCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5RdW90YU1hbmFnZXIuY3BwCiAgICAg
TW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Vc2FnZVJlY29yZC5jcHAKICAgICBNb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkocmV2aXNpb24gMTQxMjA5KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjExMSw2ICsyMTExLDggQEAgd2ViY29yZV9tb2R1bGVz
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZU1hbmFnZXJDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVNlcnZlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VTZXJ2ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVN5bmMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlU3luYy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVGFzay5jcHAgXApAQCAtMjExOSw4ICsyMTIxLDYgQEAgd2ViY29yZV9tb2R1bGVzX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
aHJlYWQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5oIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RCQmFja2Vu
ZFNlcnZlci5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvREJCYWNr
ZW5kU2VydmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2lu
UXVvdGFNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9P
cmlnaW5RdW90YU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9PcmlnaW5Vc2FnZVJlY29yZC5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxNDEy
MDkpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw4
ICsyNCw4IEBAIFNPVVJDRVMgKz0gXAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmNwcCBcCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmQu
Y3BwIFwKICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAgXAorICAg
IE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuY3BwIFwKICAgICBNb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlU3luYy5jcHAgXAotICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvREJC
YWNrZW5kU2VydmVyLmNwcCBcCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9Xb3JrZXJDb250ZXh0
V2ViRGF0YWJhc2UuY3BwIFwKICAgICBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
SW1hZ2VNYXBMaW5rLmNwcCBcCkBAIC0xNDQyLDExICsxNDQyLDExIEBAIEhFQURFUlMgKz0gXAog
ICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VCYWNrZW5kLmggXAogICAgIE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDYWxsYmFjay5oIFwKICAgICBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5oIFwKKyAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU2Vy
dmVyLmggXAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTeW5jLmggXAogICAgIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmggXAogICAgIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VUaHJlYWQuaCBcCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuaCBcCi0gICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2ZXIuaCBcCiAg
ICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5RdW90YU1hbmFnZXIuaCBcCiAgICAgTW9kdWxl
cy93ZWJkYXRhYmFzZS9PcmlnaW5Vc2FnZVJlY29yZC5oIFwKICAgICBNb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTENhbGxiYWNrV3JhcHBlci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9u
IDE0MTIwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMTAwNSw2ICsxMDA1LDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VDb250ZXh0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VNYW5hZ2VyLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVNlcnZlci5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VT
ZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVN5bmMu
Y3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU3luYy5oJywK
ICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGFzay5jcHAnLApAQCAt
MTAxMiw4ICsxMDE0LDYgQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZVRocmVhZC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAnLAotICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvREJCYWNrZW5kU2Vy
dmVyLmNwcCcsCi0gICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2
ZXIuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRh
YmFzZS5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2Vi
RGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5RdW90
YU1hbmFnZXIuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2aXNpb24gMTQxMjA5KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtMzU5MTks
NyArMzU5MTksNyBAQCBfX1pON1dlYkNvcmUyMUpTT2ZmbGluZUF1ZGlvQ29udGV4dDZzX2luCiBf
X1pUVk43V2ViQ29yZTI2SlNPZmZsaW5lQXVkaW9Db250ZXh0T3duZXJFCiBfX1pON1dlYkNvcmVM
MzJKU09mZmxpbmVBdWRpb0NvbnRleHRUYWJsZVZhbHVlc0UKIF9fWlRWTjdXZWJDb3JlMTZEYXRh
YmFzZVN0cmF0ZWd5RQotX19aVFZON1dlYkNvcmU5REJCYWNrZW5kNlNlcnZlckUKK19fWlRWTjdX
ZWJDb3JlMTREYXRhYmFzZVNlcnZlckUKIF9fWlRWTjdXZWJDb3JlMjNTY3JvbGxpbmdUcmVlU3Rp
Y2t5Tm9kZUUKIF9fWlRWTjdXZWJDb3JlMjRTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGVFCiBfX1pU
VjE2VE91dHB1dFRyYXZlcnNlcgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EQkJhY2tlbmRTZXJ2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvREJCYWNrZW5kU2VydmVyLmNwcAkocmV2aXNpb24gMTQxMjA5KQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJE
QkJhY2tlbmRTZXJ2ZXIuaCIKLQotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0KLSNpbmNsdWRl
ICJEYXRhYmFzZVRyYWNrZXIuaCIKLSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIERCQmFja2VuZCB7Ci0KLXZvaWQgU2VydmVyOjpp
bml0aWFsaXplKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQotewotI2lmICFQTEFURk9STShD
SFJPTUlVTSkKLSAgICBEYXRhYmFzZVRyYWNrZXI6OmluaXRpYWxpemVUcmFja2VyKGRhdGFiYXNl
UGF0aCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkYXRhYmFzZVBhdGgpOwotI2VuZGlmCi19
Ci0KLXZvaWQgU2VydmVyOjpzZXRDbGllbnQoRGF0YWJhc2VNYW5hZ2VyQ2xpZW50KiBjbGllbnQp
Ci17Ci0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnNldENsaWVudChjbGllbnQpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsK
LSNlbmRpZgotfQotCi1TdHJpbmcgU2VydmVyOjpkYXRhYmFzZURpcmVjdG9yeVBhdGgoKSBjb25z
dAotewotI2lmICFQTEFURk9STShDSFJPTUlVTSkKLSAgICByZXR1cm4gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyKCkuZGF0YWJhc2VEaXJlY3RvcnlQYXRoKCk7Ci0jZWxzZQotICAgIHJldHVybiAi
IjsKLSNlbmRpZgotfQotCi12b2lkIFNlcnZlcjo6c2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKGNv
bnN0IFN0cmluZyYgcGF0aCkKLXsKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCi0gICAgRGF0YWJh
c2VUcmFja2VyOjp0cmFja2VyKCkuc2V0RGF0YWJhc2VEaXJlY3RvcnlQYXRoKHBhdGgpOwotI2Vu
ZGlmCi19Ci0KLVN0cmluZyBTZXJ2ZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2UoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmRG9lc05vdEV4aXN0
KQotewotICAgIHJldHVybiBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5mdWxsUGF0aEZvckRh
dGFiYXNlKG9yaWdpbiwgbmFtZSwgY3JlYXRlSWZEb2VzTm90RXhpc3QpOwotfQotCi0jaWYgIVBM
QVRGT1JNKENIUk9NSVVNKQotYm9vbCBTZXJ2ZXI6Omhhc0VudHJ5Rm9yT3JpZ2luKFNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCi17Ci0gICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigp
Lmhhc0VudHJ5Rm9yT3JpZ2luKG9yaWdpbik7Ci19Ci0KLXZvaWQgU2VydmVyOjpvcmlnaW5zKFZl
Y3RvcjxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+ID4mIHJlc3VsdCkKLXsKLSAgICBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXIoKS5vcmlnaW5zKHJlc3VsdCk7Ci19Ci0KLWJvb2wgU2VydmVyOjpkYXRh
YmFzZU5hbWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFZlY3RvcjxTdHJpbmc+
JiByZXN1bHQpCi17Ci0gICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRhdGFi
YXNlTmFtZXNGb3JPcmlnaW4ob3JpZ2luLCByZXN1bHQpOwotfQotCi1EYXRhYmFzZURldGFpbHMg
U2VydmVyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmIG5hbWUsIFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4pCi17Ci0gICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKG5hbWUsIG9yaWdpbik7Ci19Ci0KLXVuc2lnbmVk
IGxvbmcgbG9uZyBTZXJ2ZXI6OnVzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4p
Ci17Ci0gICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnVzYWdlRm9yT3JpZ2lu
KG9yaWdpbik7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgbG9uZyBTZXJ2ZXI6OnF1b3RhRm9yT3JpZ2lu
KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCi17Ci0gICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcigpLnF1b3RhRm9yT3JpZ2luKG9yaWdpbik7Ci19Ci0KLXZvaWQgU2VydmVyOjpzZXRR
dW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGFTaXpl
KQotewotICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnNldFF1b3RhKG9yaWdpbiwgcXVv
dGFTaXplKTsKLX0KLQotdm9pZCBTZXJ2ZXI6OmRlbGV0ZUFsbERhdGFiYXNlcygpCi17Ci0gICAg
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlQWxsRGF0YWJhc2VzKCk7Ci19Ci0KLWJv
b2wgU2VydmVyOjpkZWxldGVPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKLXsKLSAgICBy
ZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlT3JpZ2luKG9yaWdpbik7Ci19
Ci0KLWJvb2wgU2VydmVyOjpkZWxldGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBj
b25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLmRlbGV0ZURhdGFiYXNlKG9yaWdpbiwgbmFtZSk7Ci19Ci0KLS8vIEZyb20gYSBzZWNvbmRh
cnkgdGhyZWFkLCBtdXN0IGJlIHRocmVhZCBzYWZlIHdpdGggaXRzIGRhdGEKLXZvaWQgU2VydmVy
OjpzY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBj
b25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2No
ZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQob3JpZ2luLCBuYW1lKTsKLX0KLQotdm9pZCBTZXJ2
ZXI6OmRhdGFiYXNlQ2hhbmdlZChEYXRhYmFzZUJhY2tlbmQqIGRhdGFiYXNlKQotewotICAgIERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRhdGFiYXNlQ2hhbmdlZChkYXRhYmFzZSk7Ci19Ci0K
LSNlbHNlIC8vIFBMQVRGT1JNKENIUk9NSVVNKQotdm9pZCBTZXJ2ZXI6OmNsb3NlRGF0YWJhc2Vz
SW1tZWRpYXRlbHkoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUpCi17Ci0gICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuY2xvc2VEYXRhYmFzZXNJ
bW1lZGlhdGVseShvcmlnaW5JZGVudGlmaWVyLCBuYW1lKTsKLX0KLSNlbmRpZiAvLyBQTEFURk9S
TShDSFJPTUlVTSkKLQotdm9pZCBTZXJ2ZXI6OmludGVycnVwdEFsbERhdGFiYXNlc0ZvckNvbnRl
eHQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXIoKS5pbnRlcnJ1cHRBbGxEYXRhYmFzZXNGb3JDb250ZXh0KGNvbnRl
eHQpOwotfQotCi1ib29sIFNlcnZlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpCi17Ci0gICAgcmV0dXJuIERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmNhbkVzdGFibGlzaERhdGFiYXNlKGNvbnRleHQsIG5h
bWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKTsKLX0KLQotdm9pZCBTZXJ2ZXI6OmFkZE9w
ZW5EYXRhYmFzZShEYXRhYmFzZUJhY2tlbmQqIGRhdGFiYXNlKQotewotICAgIERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcigpLmFkZE9wZW5EYXRhYmFzZShkYXRhYmFzZSk7Ci19Ci0KLXZvaWQgU2Vy
dmVyOjpyZW1vdmVPcGVuRGF0YWJhc2UoRGF0YWJhc2VCYWNrZW5kKiBkYXRhYmFzZSkKLXsKLSAg
ICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5yZW1vdmVPcGVuRGF0YWJhc2UoZGF0YWJhc2Up
OwotfQotCi12b2lkIFNlcnZlcjo6c2V0RGF0YWJhc2VEZXRhaWxzKFNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5z
aWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplKQotewotICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnNldERhdGFiYXNlRGV0YWlscyhvcmlnaW4sIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0
ZWRTaXplKTsKLX0KLQotdW5zaWduZWQgbG9uZyBsb25nIFNlcnZlcjo6Z2V0TWF4U2l6ZUZvckRh
dGFiYXNlKGNvbnN0IERhdGFiYXNlQmFja2VuZCogZGF0YWJhc2UpCi17Ci0gICAgcmV0dXJuIERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmdldE1heFNpemVGb3JEYXRhYmFzZShkYXRhYmFzZSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIERCQmFja2VuZAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvREJCYWNrZW5kU2VydmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2ZXIuaAkocmV2aXNpb24g
MTQxMjA5KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRT
ZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgREJCYWNrZW5kU2VydmVyX2gK
LSNkZWZpbmUgREJCYWNrZW5kU2VydmVyX2gKLQotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0K
LSNpbmNsdWRlICJBYnN0cmFjdERhdGFiYXNlU2VydmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLW5hbWVzcGFjZSBEQkJhY2tlbmQgewotCi1jbGFzcyBTZXJ2ZXI6IHB1YmxpYyBBYnN0cmFj
dERhdGFiYXNlU2VydmVyIHsKLXB1YmxpYzoKLSAgICBTZXJ2ZXIoKSB7IH07Ci0gICAgdmlydHVh
bCB+U2VydmVyKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJp
bmcmIGRhdGFiYXNlUGF0aCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KERhdGFiYXNl
TWFuYWdlckNsaWVudCopOwotICAgIHZpcnR1YWwgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0
aCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgoY29u
c3QgU3RyaW5nJik7Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBmdWxsUGF0aEZvckRhdGFiYXNlKFNl
Y3VyaXR5T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmRG9lc05vdEV4
aXN0KTsKLQotI2lmICFQTEFURk9STShDSFJPTUlVTSkKLSAgICB2aXJ0dWFsIGJvb2wgaGFzRW50
cnlGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKLSAgICB2aXJ0dWFsIHZvaWQgb3JpZ2lucyhW
ZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiA+JiByZXN1bHQpOwotICAgIHZpcnR1YWwgYm9v
bCBkYXRhYmFzZU5hbWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiwgVmVjdG9yPFN0cmluZz4m
IHJlc3VsdCk7Ci0gICAgdmlydHVhbCBEYXRhYmFzZURldGFpbHMgZGV0YWlsc0Zvck5hbWVBbmRP
cmlnaW4oY29uc3QgU3RyaW5nJiwgU2VjdXJpdHlPcmlnaW4qKTsKLQotICAgIHZpcnR1YWwgdW5z
aWduZWQgbG9uZyBsb25nIHVzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7Ci0gICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGFGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsK
LQotICAgIHZpcnR1YWwgdm9pZCBzZXRRdW90YShTZWN1cml0eU9yaWdpbiosIHVuc2lnbmVkIGxv
bmcgbG9uZyk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQWxsRGF0YWJhc2VzKCk7Ci0gICAg
dmlydHVhbCBib29sIGRlbGV0ZU9yaWdpbihTZWN1cml0eU9yaWdpbiopOwotICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYgbmFtZSk7
Ci0KLSAgICAvLyBGcm9tIGEgc2Vjb25kYXJ5IHRocmVhZCwgbXVzdCBiZSB0aHJlYWQgc2FmZSB3
aXRoIGl0cyBkYXRhCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlTm90aWZ5RGF0YWJhc2VDaGFu
Z2VkKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGF0YWJhc2VDaGFuZ2VkKERhdGFiYXNlQmFja2VuZCopOwotCi0jZWxzZSAvLyBQTEFURk9S
TShDSFJPTUlVTSkKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFzZXNJbW1lZGlhdGVseShj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7Ci0jZW5k
aWYgLy8gUExBVEZPUk0oQ0hST01JVU0pCi0KLSAgICB2aXJ0dWFsIHZvaWQgaW50ZXJydXB0QWxs
RGF0YWJhc2VzRm9yQ29udGV4dChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgY2FuRXN0YWJsaXNoRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWdu
ZWQgbG9uZyBlc3RpbWF0ZWRTaXplKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkT3BlbkRhdGFiYXNl
KERhdGFiYXNlQmFja2VuZCopOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVPcGVuRGF0YWJhc2Uo
RGF0YWJhc2VCYWNrZW5kKik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGF0YWJhc2VEZXRhaWxz
KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRpc3Bs
YXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOwotICAgIHZpcnR1YWwgdW5zaWdu
ZWQgbG9uZyBsb25nIGdldE1heFNpemVGb3JEYXRhYmFzZShjb25zdCBEYXRhYmFzZUJhY2tlbmQq
KTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIERCQmFja2VuZAotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKLQotI2VuZGlmIC8vIERCQmFja2Vu
ZFNlcnZlcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNDEyMDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlICJEYXRhYmFzZVN0cmF0ZWd5LmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjZWxzZQotI2luY2x1ZGUgIkRCQmFja2Vu
ZFNlcnZlci5oIgorI2luY2x1ZGUgIkRhdGFiYXNlU2VydmVyLmgiCiAjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNzAsNyArNzAsNyBAQCBEYXRhYmFzZU1hbmFnZXI6OkRhdGFiYXNl
TWFuYWdlcigpCiAjaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCiAgICAgbV9zZXJ2ZXIgPSBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+ZGF0YWJhc2VTdHJhdGVneSgpLT5nZXREYXRhYmFzZVNlcnZl
cigpOwogI2Vsc2UKLSAgICBtX3NlcnZlciA9IG5ldyBEQkJhY2tlbmQ6OlNlcnZlcjsKKyAgICBt
X3NlcnZlciA9IG5ldyBEYXRhYmFzZVNlcnZlcjsKICNlbmRpZgogICAgIEFTU0VSVChtX3NlcnZl
cik7IC8vIFdlIHNob3VsZCBhbHdheXMgaGF2ZSBhIHNlcnZlciB0byB3b3JrIHdpdGguCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU2VydmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlU2VydmVyLmNwcAkocmV2aXNpb24gMTQxMjA5KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RCQmFja2VuZFNlcnZlci5jcHA6MTQxMjA5KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRCQmFja2VuZFNlcnZl
ci5oIgorCisjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkRhdGFiYXNlVHJh
Y2tlci5oIgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CituYW1lc3BhY2UgREJCYWNrZW5kIHsKKwordm9pZCBTZXJ2ZXI6OmluaXRpYWxpemUoY29u
c3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCit7CisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQorICAg
IERhdGFiYXNlVHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VQYXRoKTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlUGF0aCk7CisjZW5kaWYKK30KKwordm9pZCBTZXJ2
ZXI6OnNldENsaWVudChEYXRhYmFzZU1hbmFnZXJDbGllbnQqIGNsaWVudCkKK3sKKyNpZiAhUExB
VEZPUk0oQ0hST01JVU0pCisgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0Q2xpZW50
KGNsaWVudCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOworI2VuZGlmCit9CisK
K1N0cmluZyBTZXJ2ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UGF0aCgpIGNvbnN0Cit7CisjaWYgIVBM
QVRGT1JNKENIUk9NSVVNKQorICAgIHJldHVybiBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5k
YXRhYmFzZURpcmVjdG9yeVBhdGgoKTsKKyNlbHNlCisgICAgcmV0dXJuICIiOworI2VuZGlmCit9
CisKK3ZvaWQgU2VydmVyOjpzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5nJiBw
YXRoKQoreworI2lmICFQTEFURk9STShDSFJPTUlVTSkKKyAgICBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXIoKS5zZXREYXRhYmFzZURpcmVjdG9yeVBhdGgocGF0aCk7CisjZW5kaWYKK30KKworU3Ry
aW5nIFNlcnZlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZEb2VzTm90RXhpc3QpCit7CisgICAgcmV0
dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmZ1bGxQYXRoRm9yRGF0YWJhc2Uob3JpZ2lu
LCBuYW1lLCBjcmVhdGVJZkRvZXNOb3RFeGlzdCk7Cit9CisKKyNpZiAhUExBVEZPUk0oQ0hST01J
VU0pCitib29sIFNlcnZlcjo6aGFzRW50cnlGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdp
bikKK3sKKyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuaGFzRW50cnlGb3JP
cmlnaW4ob3JpZ2luKTsKK30KKwordm9pZCBTZXJ2ZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gPiYgcmVzdWx0KQoreworICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLm9yaWdpbnMocmVzdWx0KTsKK30KKworYm9vbCBTZXJ2ZXI6OmRhdGFiYXNlTmFtZXNGb3JP
cmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkKK3sK
KyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGF0YWJhc2VOYW1lc0Zvck9y
aWdpbihvcmlnaW4sIHJlc3VsdCk7Cit9CisKK0RhdGFiYXNlRGV0YWlscyBTZXJ2ZXI6OmRldGFp
bHNGb3JOYW1lQW5kT3JpZ2luKGNvbnN0IFN0cmluZyYgbmFtZSwgU2VjdXJpdHlPcmlnaW4qIG9y
aWdpbikKK3sKKyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGV0YWlsc0Zv
ck5hbWVBbmRPcmlnaW4obmFtZSwgb3JpZ2luKTsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIFNl
cnZlcjo6dXNhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICByZXR1
cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkudXNhZ2VGb3JPcmlnaW4ob3JpZ2luKTsKK30K
KwordW5zaWduZWQgbG9uZyBsb25nIFNlcnZlcjo6cXVvdGFGb3JPcmlnaW4oU2VjdXJpdHlPcmln
aW4qIG9yaWdpbikKK3sKKyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucXVv
dGFGb3JPcmlnaW4ob3JpZ2luKTsKK30KKwordm9pZCBTZXJ2ZXI6OnNldFF1b3RhKFNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4sIHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YVNpemUpCit7CisgICAgRGF0
YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0UXVvdGEob3JpZ2luLCBxdW90YVNpemUpOworfQor
Cit2b2lkIFNlcnZlcjo6ZGVsZXRlQWxsRGF0YWJhc2VzKCkKK3sKKyAgICBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5kZWxldGVBbGxEYXRhYmFzZXMoKTsKK30KKworYm9vbCBTZXJ2ZXI6OmRl
bGV0ZU9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIHJldHVybiBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVPcmlnaW4ob3JpZ2luKTsKK30KKworYm9vbCBTZXJ2
ZXI6OmRlbGV0ZURhdGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSkKK3sKKyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZGVsZXRlRGF0
YWJhc2Uob3JpZ2luLCBuYW1lKTsKK30KKworLy8gRnJvbSBhIHNlY29uZGFyeSB0aHJlYWQsIG11
c3QgYmUgdGhyZWFkIHNhZmUgd2l0aCBpdHMgZGF0YQordm9pZCBTZXJ2ZXI6OnNjaGVkdWxlTm90
aWZ5RGF0YWJhc2VDaGFuZ2VkKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYg
bmFtZSkKK3sKKyAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5zY2hlZHVsZU5vdGlmeURh
dGFiYXNlQ2hhbmdlZChvcmlnaW4sIG5hbWUpOworfQorCit2b2lkIFNlcnZlcjo6ZGF0YWJhc2VD
aGFuZ2VkKERhdGFiYXNlQmFja2VuZCogZGF0YWJhc2UpCit7CisgICAgRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyKCkuZGF0YWJhc2VDaGFuZ2VkKGRhdGFiYXNlKTsKK30KKworI2Vsc2UgLy8gUExB
VEZPUk0oQ0hST01JVU0pCit2b2lkIFNlcnZlcjo6Y2xvc2VEYXRhYmFzZXNJbW1lZGlhdGVseShj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAg
ICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5jbG9zZURhdGFiYXNlc0ltbWVkaWF0ZWx5KG9y
aWdpbklkZW50aWZpZXIsIG5hbWUpOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKENIUk9NSVVNKQor
Cit2b2lkIFNlcnZlcjo6aW50ZXJydXB0QWxsRGF0YWJhc2VzRm9yQ29udGV4dChjb25zdCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcigpLmludGVycnVwdEFsbERhdGFiYXNlc0ZvckNvbnRleHQoY29udGV4dCk7Cit9CisKK2Jv
b2wgU2VydmVyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVu
c2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKK3sKKyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyKCkuY2FuRXN0YWJsaXNoRGF0YWJhc2UoY29udGV4dCwgbmFtZSwgZGlzcGxheU5h
bWUsIGVzdGltYXRlZFNpemUpOworfQorCit2b2lkIFNlcnZlcjo6YWRkT3BlbkRhdGFiYXNlKERh
dGFiYXNlQmFja2VuZCogZGF0YWJhc2UpCit7CisgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
KCkuYWRkT3BlbkRhdGFiYXNlKGRhdGFiYXNlKTsKK30KKwordm9pZCBTZXJ2ZXI6OnJlbW92ZU9w
ZW5EYXRhYmFzZShEYXRhYmFzZUJhY2tlbmQqIGRhdGFiYXNlKQoreworICAgIERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZSk7Cit9CisKK3ZvaWQg
U2VydmVyOjpzZXREYXRhYmFzZURldGFpbHMoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVz
dGltYXRlZFNpemUpCit7CisgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0RGF0YWJh
c2VEZXRhaWxzKG9yaWdpbiwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpOworfQor
Cit1bnNpZ25lZCBsb25nIGxvbmcgU2VydmVyOjpnZXRNYXhTaXplRm9yRGF0YWJhc2UoY29uc3Qg
RGF0YWJhc2VCYWNrZW5kKiBkYXRhYmFzZSkKK3sKKyAgICByZXR1cm4gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyKCkuZ2V0TWF4U2l6ZUZvckRhdGFiYXNlKGRhdGFiYXNlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgREJCYWNrZW5kCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoU1FMX0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5jcHAJKHJldmlzaW9uIDE0MTIwOSkKKysr
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkRCQmFja2VuZFNlcnZlci5oIgorI2luY2x1ZGUgIkRhdGFiYXNlU2VydmVy
LmgiCiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogCkBAIC0zMiw5ICszMiw4IEBACiAjaW5j
bHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFj
ZSBEQkJhY2tlbmQgewogCi12b2lkIFNlcnZlcjo6aW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRh
dGFiYXNlUGF0aCkKK3ZvaWQgRGF0YWJhc2VTZXJ2ZXI6OmluaXRpYWxpemUoY29uc3QgU3RyaW5n
JiBkYXRhYmFzZVBhdGgpCiB7CiAjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIERhdGFiYXNl
VHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VQYXRoKTsKQEAgLTQzLDcgKzQyLDcg
QEAgdm9pZCBTZXJ2ZXI6OmluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBkYQogI2VuZGlmCiB9CiAK
LXZvaWQgU2VydmVyOjpzZXRDbGllbnQoRGF0YWJhc2VNYW5hZ2VyQ2xpZW50KiBjbGllbnQpCit2
b2lkIERhdGFiYXNlU2VydmVyOjpzZXRDbGllbnQoRGF0YWJhc2VNYW5hZ2VyQ2xpZW50KiBjbGll
bnQpCiB7CiAjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcigpLnNldENsaWVudChjbGllbnQpOwpAQCAtNTIsNyArNTEsNyBAQCB2b2lkIFNlcnZlcjo6
c2V0Q2xpZW50KERhdGFiYXNlTWFuYWdlckNsCiAjZW5kaWYKIH0KIAotU3RyaW5nIFNlcnZlcjo6
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkgY29uc3QKK1N0cmluZyBEYXRhYmFzZVNlcnZlcjo6ZGF0
YWJhc2VEaXJlY3RvcnlQYXRoKCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAg
ICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRhdGFiYXNlRGlyZWN0b3J5UGF0
aCgpOwpAQCAtNjEsMTE4ICs2MCwxMTcgQEAgU3RyaW5nIFNlcnZlcjo6ZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKCkgYwogI2VuZGlmCiB9CiAKLXZvaWQgU2VydmVyOjpzZXREYXRhYmFzZURpcmVjdG9y
eVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQordm9pZCBEYXRhYmFzZVNlcnZlcjo6c2V0RGF0YWJh
c2VEaXJlY3RvcnlQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICNpZiAhUExBVEZPUk0oQ0hS
T01JVU0pCiAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0RGF0YWJhc2VEaXJlY3Rv
cnlQYXRoKHBhdGgpOwogI2VuZGlmCiB9CiAKLVN0cmluZyBTZXJ2ZXI6OmZ1bGxQYXRoRm9yRGF0
YWJhc2UoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNy
ZWF0ZUlmRG9lc05vdEV4aXN0KQorU3RyaW5nIERhdGFiYXNlU2VydmVyOjpmdWxsUGF0aEZvckRh
dGFiYXNlKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBj
cmVhdGVJZkRvZXNOb3RFeGlzdCkKIHsKICAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyKCkuZnVsbFBhdGhGb3JEYXRhYmFzZShvcmlnaW4sIG5hbWUsIGNyZWF0ZUlmRG9lc05vdEV4
aXN0KTsKIH0KIAogI2lmICFQTEFURk9STShDSFJPTUlVTSkKLWJvb2wgU2VydmVyOjpoYXNFbnRy
eUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQorYm9vbCBEYXRhYmFzZVNlcnZlcjo6
aGFzRW50cnlGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKIHsKICAgICByZXR1cm4g
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuaGFzRW50cnlGb3JPcmlnaW4ob3JpZ2luKTsKIH0K
IAotdm9pZCBTZXJ2ZXI6Om9yaWdpbnMoVmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gPiYg
cmVzdWx0KQordm9pZCBEYXRhYmFzZVNlcnZlcjo6b3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiA+JiByZXN1bHQpCiB7CiAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCku
b3JpZ2lucyhyZXN1bHQpOwogfQogCi1ib29sIFNlcnZlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdp
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KQorYm9vbCBE
YXRhYmFzZVNlcnZlcjo6ZGF0YWJhc2VOYW1lc0Zvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCBWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KQogewogICAgIHJldHVybiBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5kYXRhYmFzZU5hbWVzRm9yT3JpZ2luKG9yaWdpbiwgcmVzdWx0KTsKIH0K
IAotRGF0YWJhc2VEZXRhaWxzIFNlcnZlcjo6ZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQorRGF0YWJhc2VEZXRhaWxzIERh
dGFiYXNlU2VydmVyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmIG5hbWUs
IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7CiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcigpLmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKG5hbWUsIG9yaWdpbik7CiB9CiAKLXVu
c2lnbmVkIGxvbmcgbG9uZyBTZXJ2ZXI6OnVzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4pCit1bnNpZ25lZCBsb25nIGxvbmcgRGF0YWJhc2VTZXJ2ZXI6OnVzYWdlRm9yT3JpZ2lu
KFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7CiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6
dHJhY2tlcigpLnVzYWdlRm9yT3JpZ2luKG9yaWdpbik7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9u
ZyBTZXJ2ZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit1bnNpZ25l
ZCBsb25nIGxvbmcgRGF0YWJhc2VTZXJ2ZXI6OnF1b3RhRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4pCiB7CiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnF1b3Rh
Rm9yT3JpZ2luKG9yaWdpbik7CiB9CiAKLXZvaWQgU2VydmVyOjpzZXRRdW90YShTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGFTaXplKQordm9pZCBEYXRhYmFz
ZVNlcnZlcjo6c2V0UXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgdW5zaWduZWQgbG9uZyBs
b25nIHF1b3RhU2l6ZSkKIHsKICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5zZXRRdW90
YShvcmlnaW4sIHF1b3RhU2l6ZSk7CiB9CiAKLXZvaWQgU2VydmVyOjpkZWxldGVBbGxEYXRhYmFz
ZXMoKQordm9pZCBEYXRhYmFzZVNlcnZlcjo6ZGVsZXRlQWxsRGF0YWJhc2VzKCkKIHsKICAgICBE
YXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVBbGxEYXRhYmFzZXMoKTsKIH0KIAotYm9v
bCBTZXJ2ZXI6OmRlbGV0ZU9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQorYm9vbCBEYXRh
YmFzZVNlcnZlcjo6ZGVsZXRlT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7CiAgICAg
cmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRlbGV0ZU9yaWdpbihvcmlnaW4pOwog
fQogCi1ib29sIFNlcnZlcjo6ZGVsZXRlRGF0YWJhc2UoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBuYW1lKQorYm9vbCBEYXRhYmFzZVNlcnZlcjo6ZGVsZXRlRGF0YWJhc2Uo
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIHJldHVy
biBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVEYXRhYmFzZShvcmlnaW4sIG5hbWUp
OwogfQogCiAvLyBGcm9tIGEgc2Vjb25kYXJ5IHRocmVhZCwgbXVzdCBiZSB0aHJlYWQgc2FmZSB3
aXRoIGl0cyBkYXRhCi12b2lkIFNlcnZlcjo6c2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQo
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQordm9pZCBEYXRhYmFz
ZVNlcnZlcjo6c2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQoU2VjdXJpdHlPcmlnaW4qIG9y
aWdpbiwgY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnNjaGVkdWxlTm90aWZ5RGF0YWJhc2VDaGFuZ2VkKG9yaWdpbiwgbmFtZSk7CiB9CiAKLXZv
aWQgU2VydmVyOjpkYXRhYmFzZUNoYW5nZWQoRGF0YWJhc2VCYWNrZW5kKiBkYXRhYmFzZSkKK3Zv
aWQgRGF0YWJhc2VTZXJ2ZXI6OmRhdGFiYXNlQ2hhbmdlZChEYXRhYmFzZUJhY2tlbmQqIGRhdGFi
YXNlKQogewogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmRhdGFiYXNlQ2hhbmdlZChk
YXRhYmFzZSk7CiB9CiAKICNlbHNlIC8vIFBMQVRGT1JNKENIUk9NSVVNKQotdm9pZCBTZXJ2ZXI6
OmNsb3NlRGF0YWJhc2VzSW1tZWRpYXRlbHkoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIERhdGFiYXNlU2VydmVyOjpjbG9zZURhdGFiYXNl
c0ltbWVkaWF0ZWx5KGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lKQogewogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmNsb3NlRGF0YWJhc2Vz
SW1tZWRpYXRlbHkob3JpZ2luSWRlbnRpZmllciwgbmFtZSk7CiB9CiAjZW5kaWYgLy8gUExBVEZP
Uk0oQ0hST01JVU0pCiAKLXZvaWQgU2VydmVyOjppbnRlcnJ1cHRBbGxEYXRhYmFzZXNGb3JDb250
ZXh0KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit2b2lkIERhdGFiYXNl
U2VydmVyOjppbnRlcnJ1cHRBbGxEYXRhYmFzZXNGb3JDb250ZXh0KGNvbnN0IFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCku
aW50ZXJydXB0QWxsRGF0YWJhc2VzRm9yQ29udGV4dChjb250ZXh0KTsKIH0KIAotYm9vbCBTZXJ2
ZXI6OmNhbkVzdGFibGlzaERhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQg
bG9uZyBlc3RpbWF0ZWRTaXplKQorYm9vbCBEYXRhYmFzZVNlcnZlcjo6Y2FuRXN0YWJsaXNoRGF0
YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUp
CiB7CiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLmNhbkVzdGFibGlzaERh
dGFiYXNlKGNvbnRleHQsIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKTsKIH0KIAot
dm9pZCBTZXJ2ZXI6OmFkZE9wZW5EYXRhYmFzZShEYXRhYmFzZUJhY2tlbmQqIGRhdGFiYXNlKQor
dm9pZCBEYXRhYmFzZVNlcnZlcjo6YWRkT3BlbkRhdGFiYXNlKERhdGFiYXNlQmFja2VuZCogZGF0
YWJhc2UpCiB7CiAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuYWRkT3BlbkRhdGFiYXNl
KGRhdGFiYXNlKTsKIH0KIAotdm9pZCBTZXJ2ZXI6OnJlbW92ZU9wZW5EYXRhYmFzZShEYXRhYmFz
ZUJhY2tlbmQqIGRhdGFiYXNlKQordm9pZCBEYXRhYmFzZVNlcnZlcjo6cmVtb3ZlT3BlbkRhdGFi
YXNlKERhdGFiYXNlQmFja2VuZCogZGF0YWJhc2UpCiB7CiAgICAgRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyKCkucmVtb3ZlT3BlbkRhdGFiYXNlKGRhdGFiYXNlKTsKIH0KIAotdm9pZCBTZXJ2ZXI6
OnNldERhdGFiYXNlRGV0YWlscyhTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVk
U2l6ZSkKK3ZvaWQgRGF0YWJhc2VTZXJ2ZXI6OnNldERhdGFiYXNlRGV0YWlscyhTZWN1cml0eU9y
aWdpbiogb3JpZ2luLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSkKIHsKICAgICBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXIoKS5zZXREYXRhYmFzZURldGFpbHMob3JpZ2luLCBuYW1lLCBkaXNwbGF5TmFtZSwg
ZXN0aW1hdGVkU2l6ZSk7CiB9CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBTZXJ2ZXI6OmdldE1heFNp
emVGb3JEYXRhYmFzZShjb25zdCBEYXRhYmFzZUJhY2tlbmQqIGRhdGFiYXNlKQordW5zaWduZWQg
bG9uZyBsb25nIERhdGFiYXNlU2VydmVyOjpnZXRNYXhTaXplRm9yRGF0YWJhc2UoY29uc3QgRGF0
YWJhc2VCYWNrZW5kKiBkYXRhYmFzZSkKIHsKICAgICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyKCkuZ2V0TWF4U2l6ZUZvckRhdGFiYXNlKGRhdGFiYXNlKTsKIH0KIAotfSAvLyBuYW1l
c3BhY2UgREJCYWNrZW5kCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoU1FMX0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVNlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuaAkocmV2aXNpb24gMTQxMjA5KQkoZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RCQmFja2VuZFNlcnZlci5oOjE0MTIwOSkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTZXJ2ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgREJCYWNrZW5kU2VydmVyX2gKKyNkZWZpbmUg
REJCYWNrZW5kU2VydmVyX2gKKworI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisKKyNpbmNsdWRl
ICJBYnN0cmFjdERhdGFiYXNlU2VydmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVz
cGFjZSBEQkJhY2tlbmQgeworCitjbGFzcyBTZXJ2ZXI6IHB1YmxpYyBBYnN0cmFjdERhdGFiYXNl
U2VydmVyIHsKK3B1YmxpYzoKKyAgICBTZXJ2ZXIoKSB7IH07CisgICAgdmlydHVhbCB+U2VydmVy
KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIGRhdGFi
YXNlUGF0aCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KERhdGFiYXNlTWFuYWdlckNs
aWVudCopOworICAgIHZpcnR1YWwgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UGF0aCgpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5n
Jik7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBmdWxsUGF0aEZvckRhdGFiYXNlKFNlY3VyaXR5T3Jp
Z2luKiwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmRG9lc05vdEV4aXN0KTsKKwor
I2lmICFQTEFURk9STShDSFJPTUlVTSkKKyAgICB2aXJ0dWFsIGJvb2wgaGFzRW50cnlGb3JPcmln
aW4oU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3JpZ2lucyhWZWN0b3I8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiA+JiByZXN1bHQpOworICAgIHZpcnR1YWwgYm9vbCBkYXRhYmFz
ZU5hbWVzRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiwgVmVjdG9yPFN0cmluZz4mIHJlc3VsdCk7
CisgICAgdmlydHVhbCBEYXRhYmFzZURldGFpbHMgZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4oY29u
c3QgU3RyaW5nJiwgU2VjdXJpdHlPcmlnaW4qKTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgbG9u
ZyBsb25nIHVzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7CisgICAgdmlydHVhbCB1bnNp
Z25lZCBsb25nIGxvbmcgcXVvdGFGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsKKworICAgIHZp
cnR1YWwgdm9pZCBzZXRRdW90YShTZWN1cml0eU9yaWdpbiosIHVuc2lnbmVkIGxvbmcgbG9uZyk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQWxsRGF0YWJhc2VzKCk7CisgICAgdmlydHVhbCBi
b29sIGRlbGV0ZU9yaWdpbihTZWN1cml0eU9yaWdpbiopOworICAgIHZpcnR1YWwgYm9vbCBkZWxl
dGVEYXRhYmFzZShTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYgbmFtZSk7CisKKyAgICAv
LyBGcm9tIGEgc2Vjb25kYXJ5IHRocmVhZCwgbXVzdCBiZSB0aHJlYWQgc2FmZSB3aXRoIGl0cyBk
YXRhCisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlTm90aWZ5RGF0YWJhc2VDaGFuZ2VkKFNlY3Vy
aXR5T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YWJh
c2VDaGFuZ2VkKERhdGFiYXNlQmFja2VuZCopOworCisjZWxzZSAvLyBQTEFURk9STShDSFJPTUlV
TSkKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFzZXNJbW1lZGlhdGVseShjb25zdCBTdHJp
bmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisjZW5kaWYgLy8gUExB
VEZPUk0oQ0hST01JVU0pCisKKyAgICB2aXJ0dWFsIHZvaWQgaW50ZXJydXB0QWxsRGF0YWJhc2Vz
Rm9yQ29udGV4dChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuRXN0YWJsaXNoRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBl
c3RpbWF0ZWRTaXplKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkT3BlbkRhdGFiYXNlKERhdGFiYXNl
QmFja2VuZCopOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVPcGVuRGF0YWJhc2UoRGF0YWJhc2VC
YWNrZW5kKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGF0YWJhc2VEZXRhaWxzKFNlY3VyaXR5
T3JpZ2luKiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1
bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOworICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBs
b25nIGdldE1heFNpemVGb3JEYXRhYmFzZShjb25zdCBEYXRhYmFzZUJhY2tlbmQqKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIERCQmFja2VuZAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIERCQmFja2VuZFNlcnZlcl9o
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU2VydmVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVNlcnZlci5oCShyZXZpc2lvbiAxNDEyMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlU2VydmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDIwICsy
MywxOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBEQkJhY2tlbmRTZXJ2ZXJf
aAotI2RlZmluZSBEQkJhY2tlbmRTZXJ2ZXJfaAorI2lmbmRlZiBEYXRhYmFzZVNlcnZlcl9oCisj
ZGVmaW5lIERhdGFiYXNlU2VydmVyX2gKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKICNp
bmNsdWRlICJBYnN0cmFjdERhdGFiYXNlU2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LW5hbWVzcGFjZSBEQkJhY2tlbmQgewogCi1jbGFzcyBTZXJ2ZXI6IHB1YmxpYyBBYnN0cmFjdERh
dGFiYXNlU2VydmVyIHsKK2NsYXNzIERhdGFiYXNlU2VydmVyOiBwdWJsaWMgQWJzdHJhY3REYXRh
YmFzZVNlcnZlciB7CiBwdWJsaWM6Ci0gICAgU2VydmVyKCkgeyB9OwotICAgIHZpcnR1YWwgflNl
cnZlcigpIHsgfQorICAgIERhdGFiYXNlU2VydmVyKCkgeyB9OworICAgIHZpcnR1YWwgfkRhdGFi
YXNlU2VydmVyKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBTdHJp
bmcmIGRhdGFiYXNlUGF0aCk7CiAKQEAgLTc5LDkgKzc4LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdW5zaWduZWQgbG9uZyBsb25nIGdldE1heFNpemVGb3JEYXRhYmFzZShjb25zdCBEYXRhYmFz
ZUJhY2tlbmQqKTsKIH07CiAKLX0gLy8gbmFtZXNwYWNlIERCQmFja2VuZAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKIAotI2VuZGlmIC8v
IERCQmFja2VuZFNlcnZlcl9oCisjZW5kaWYgLy8gRGF0YWJhc2VTZXJ2ZXJfaApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDE0
MTIwOSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTQyNSw2ICsyNTQyNSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxE
YXRhYmFzZVNlcnZlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERhdGFiYXNlU2VydmVyLmgiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1
bGVzXHdlYmRhdGFiYXNlXERhdGFiYXNlU3luYy5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBA
IC0yNTQ1NywxNCArMjU0NjUsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0J
CQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxEQkJhY2tlbmRTZXJ2ZXIu
Y3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxEQkJhY2tlbmRTZXJ2ZXIuaCIKLQkJCQkJPgotCQkJCTwv
RmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcd2ViZGF0YWJh
c2VcRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZp
c2lvbiAxNDEyMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODU5LDExICsxODU5LDExIEBACiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERhdGFiYXNlQmFja2VuZC5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERhdGFi
YXNlQ29udGV4dC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdl
YmRhdGFiYXNlXERhdGFiYXNlTWFuYWdlci5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERhdGFiYXNlU2VydmVyLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VTeW5jLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJh
c2VUYXNrLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0
YWJhc2VcRGF0YWJhc2VUaHJlYWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
TW9kdWxlc1x3ZWJkYXRhYmFzZVxEYXRhYmFzZVRyYWNrZXIuY3BwIiAvPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxEQkJhY2tlbmRTZXJ2ZXIuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxET01XaW5k
b3dXZWJEYXRhYmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVz
XHdlYmRhdGFiYXNlXE9yaWdpblF1b3RhTWFuYWdlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXE9yaWdpblVzYWdlUmVjb3JkLmNwcCIgLz4K
QEAgLTY0MDcsMTEgKzY0MDcsMTEgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVs
ZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VDYWxsYmFjay5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxEYXRhYmFzZUNvbnRleHQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VNYW5hZ2Vy
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERh
dGFiYXNlU2VydmVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdl
YmRhdGFiYXNlXERhdGFiYXNlU3luYy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
TW9kdWxlc1x3ZWJkYXRhYmFzZVxEYXRhYmFzZVRhc2suaCIgLz4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VUaHJlYWQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VUcmFja2Vy
LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERC
QmFja2VuZFNlcnZlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3
ZWJkYXRhYmFzZVxET01XaW5kb3dXZWJEYXRhYmFzZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxPcmlnaW5RdW90YU1hbmFnZXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcT3JpZ2luVXNhZ2VS
ZWNvcmQuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE0MTIwOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2lu
ZyBjb3B5KQpAQCAtMTg0NSw2ICsxODQ1LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VNYW5hZ2VyLmNwcCI+CiAgICAgICA8RmlsdGVy
Pk1vZHVsZXNcd2ViZGF0YWJhc2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VTZXJ2ZXIuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x3ZWJkYXRhYmFzZTwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxE
YXRhYmFzZVN5bmMuY3BwIj4KICAgICAgIDxGaWx0ZXI+TW9kdWxlc1x3ZWJkYXRhYmFzZTwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTg1Nyw5ICsxODYwLDYgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcRGF0YWJhc2VUcmFja2VyLmNwcCI+
CiAgICAgICA8RmlsdGVyPk1vZHVsZXNcd2ViZGF0YWJhc2U8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcREJC
YWNrZW5kU2VydmVyLmNwcCI+Ci0gICAgICA8RmlsdGVyPk1vZHVsZXNcd2ViZGF0YWJhc2U8L0Zp
bHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVs
ZXNcd2ViZGF0YWJhc2VcRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+
TW9kdWxlc1x3ZWJkYXRhYmFzZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtODQ1Niw2
ICs4NDU2LDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJh
c2VcRGF0YWJhc2VNYW5hZ2VyLmgiPgogICAgICAgPEZpbHRlcj5Nb2R1bGVzXHdlYmRhdGFiYXNl
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxN
b2R1bGVzXHdlYmRhdGFiYXNlXERhdGFiYXNlU2VydmVyLmgiPgorICAgICAgPEZpbHRlcj5Nb2R1
bGVzXHdlYmRhdGFiYXNlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERhdGFiYXNlU3luYy5oIj4KICAgICAg
IDxGaWx0ZXI+TW9kdWxlc1x3ZWJkYXRhYmFzZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpA
QCAtODQ2OCw5ICs4NDcxLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNc
d2ViZGF0YWJhc2VcRGF0YWJhc2VUcmFja2VyLmgiPgogICAgICAgPEZpbHRlcj5Nb2R1bGVzXHdl
YmRhdGFiYXNlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXERCQmFja2VuZFNlcnZlci5oIj4KLSAgICAgIDxG
aWx0ZXI+TW9kdWxlc1x3ZWJkYXRhYmFzZTwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxET01XaW5kb3dXZWJE
YXRhYmFzZS5oIj4KICAgICAgIDxGaWx0ZXI+TW9kdWxlc1x3ZWJkYXRhYmFzZTwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQxMjA5KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzAxLDYgKzM3MDEsOCBAQAogCQk5N0JDNkEyNzE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VD
b250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3QkM2OUU1MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUNvbnRleHQuY3BwICovOyB9Owog
CQk5N0JDNkEyODE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VDb250ZXh0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0JDNjlFNjE1MDVGMDgxMDAx
Qjc0QUMgLyogRGF0YWJhc2VDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdCQzZBMjkxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNl
RGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTdCQzY5RTcxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNlRGV0YWlscy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZFQjI2RDI4MTY3QThGMkEw
MEZERDI2QiAvKiBEYXRhYmFzZVNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRUIyNkQyNzE2N0E4RjJBMDBGREQyNkIgLyogRGF0YWJhc2VT
ZXJ2ZXIuY3BwICovOyB9OworCQlGRUFGNjY1NDE2Nzk3MDMyMDA2MkQwQzUgLyogRGF0YWJhc2VT
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZF
QUY2NjUzMTY3OTcwMDcwMDYyRDBDNSAvKiBEYXRhYmFzZVNlcnZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3QkM2QTJBMTUwNUYwODEwMDFC
NzRBQyAvKiBEYXRhYmFzZVN5bmMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTdCQzY5RTgxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNlU3luYy5j
cHAgKi87IH07CiAJCTk3QkM2QTJCMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVN5bmMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3QkM2OUU5MTUw
NUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVN5bmMuaCAqLzsgfTsKIAkJOTdCQzZBMkQxNTA1RjA4
MTAwMUI3NEFDIC8qIERhdGFiYXNlVGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5N0JDNjlFQjE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VU
YXNrLmNwcCAqLzsgfTsKQEAgLTY3NDIsOCArNjc0NCw2IEBACiAJCUZFODBEQTY2MEU5QzQ3MDMw
MDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2MjBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9wb3NpdGlv
bi5oICovOyB9OwogCQlGRTgwREE3MTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFODBE
QTZEMEU5QzQ3MkYwMDBENkY3NSAvKiBKU1Bvc2l0aW9uRXJyb3IuY3BwICovOyB9OwogCQlGRTgw
REE3MjBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUg
LyogSlNQb3NpdGlvbkVycm9yLmggKi87IH07Ci0JCUZFQUY2NjU0MTY3OTcwMzIwMDYyRDBDNSAv
KiBEQkJhY2tlbmRTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZFQUY2NjUzMTY3OTcwMDcwMDYyRDBDNSAvKiBEQkJhY2tlbmRTZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGRUIyNkQy
ODE2N0E4RjJBMDBGREQyNkIgLyogREJCYWNrZW5kU2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFQjI2RDI3MTY3QThGMkEwMEZERDI2QiAv
KiBEQkJhY2tlbmRTZXJ2ZXIuY3BwICovOyB9OwogCQlGRURFRjg0MTE2Nzk3MTA4MDAwRTQ0NEEg
LyogRGF0YWJhc2VTdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGRURFRjgzRjE2Nzk3MTA4MDAwRTQ0NEEgLyogRGF0YWJhc2VTdHJhdGVn
eS5jcHAgKi87IH07CiAJCUZFREVGODQyMTY3OTcxMDgwMDBFNDQ0QSAvKiBEYXRhYmFzZVN0cmF0
ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRURF
Rjg0MDE2Nzk3MTA4MDAwRTQ0NEEgLyogRGF0YWJhc2VTdHJhdGVneS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZGOTQ1RUNCMTYxRjdGMzYwMDk3
MUJDOCAvKiBQc2V1ZG9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZGOTQ1RUM5MTYxRjdGMzYwMDk3MUJDOCAvKiBQc2V1ZG9FbGVtZW50
LmNwcCAqLzsgfTsKQEAgLTExMTA0LDYgKzExMTA0LDggQEAKIAkJOTdCQzY5RTUxNTA1RjA4MTAw
MUI3NEFDIC8qIERhdGFiYXNlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBEYXRhYmFzZUNvbnRleHQuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0JD
NjlFNjE1MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VDb250ZXh0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IERhdGFiYXNlQ29udGV4dC5oOyBwYXRoID0gTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTdCQzY5RTcxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNlRGV0YWlscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBEYXRhYmFzZURldGFpbHMuaDsgcGF0aCA9IE1vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VEZXRhaWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUZFQUY2NjUzMTY3OTcwMDcwMDYyRDBDNSAvKiBEYXRhYmFzZVNlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEYXRhYmFzZVNlcnZlci5oOyBwYXRoID0gTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGRUIyNkQyNzE2N0E4RjJBMDBGREQyNkIgLyogRGF0YWJhc2VTZXJ2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0YWJhc2VTZXJ2ZXIuY3BwOyBwYXRo
ID0gTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk3QkM2OUU4MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVN5bmMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGF0YWJhc2VTeW5jLmNw
cDsgcGF0aCA9IE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTeW5jLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdCQzY5RTkxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNl
U3luYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEYXRhYmFzZVN5bmMuaDsg
cGF0aCA9IE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTeW5jLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk3QkM2OUVBMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVN5bmMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IERhdGFiYXNlU3luYy5pZGw7IHBhdGggPSBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU3luYy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNDQxMSw4ICsxNDQxMyw2IEBACiAJCUZFODBEQTYyMEU5QzQ3MDMwMDBENkY3NSAv
KiBKU0dlb3Bvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTR2Vv
cG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MERBNkQwRTlDNDcy
RjAwMEQ2Rjc1IC8qIEpTUG9zaXRpb25FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1Bvc2l0aW9uRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRTgwREE2RTBFOUM0NzJGMDAwRDZGNzUgLyogSlNQb3NpdGlvbkVycm9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUG9zaXRpb25FcnJvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGRUFGNjY1MzE2Nzk3MDA3MDA2MkQwQzUgLyogREJCYWNr
ZW5kU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERCQmFja2VuZFNl
cnZlci5oOyBwYXRoID0gTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRTZXJ2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkVCMjZEMjcxNjdBOEYyQTAwRkREMjZCIC8qIERC
QmFja2VuZFNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBE
QkJhY2tlbmRTZXJ2ZXIuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJkYXRhYmFzZS9EQkJhY2tlbmRT
ZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRURFRjgzRjE2Nzk3MTA4
MDAwRTQ0NEEgLyogRGF0YWJhc2VTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEYXRhYmFzZVN0cmF0ZWd5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkVERUY4NDAxNjc5NzEwODAwMEU0NDRBIC8qIERhdGFiYXNlU3RyYXRlZ3kuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VTdHJhdGVneS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRjk0NUVDOTE2MUY3RjM2MDA5NzFCQzggLyogUHNl
dWRvRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQc2V1
ZG9FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NTEyLDYgKzE4
NTEyLDggQEAKIAkJCQlGRTQ1NkYxNjE2NzdENzRFMDA1RURERjkgLyogRGF0YWJhc2VNYW5hZ2Vy
LmNwcCAqLywKIAkJCQlGRTQ1NkYxNzE2NzdENzRFMDA1RURERjkgLyogRGF0YWJhc2VNYW5hZ2Vy
LmggKi8sCiAJCQkJOTdCQzY5RjExNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNlTWFuYWdlckNs
aWVudC5oICovLAorCQkJCUZFQjI2RDI3MTY3QThGMkEwMEZERDI2QiAvKiBEYXRhYmFzZVNlcnZl
ci5jcHAgKi8sCisJCQkJRkVBRjY2NTMxNjc5NzAwNzAwNjJEMEM1IC8qIERhdGFiYXNlU2VydmVy
LmggKi8sCiAJCQkJOTdCQzY5RTgxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNlU3luYy5jcHAg
Ki8sCiAJCQkJOTdCQzY5RTkxNTA1RjA4MTAwMUI3NEFDIC8qIERhdGFiYXNlU3luYy5oICovLAog
CQkJCTk3QkM2OUVBMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVN5bmMuaWRsICovLApAQCAt
MTg1MjEsOCArMTg1MjMsNiBAQAogCQkJCTk3QkM2OUVFMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRh
YmFzZVRocmVhZC5oICovLAogCQkJCTk3QkM2OUVGMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFz
ZVRyYWNrZXIuY3BwICovLAogCQkJCTk3QkM2OUYwMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFz
ZVRyYWNrZXIuaCAqLywKLQkJCQlGRUIyNkQyNzE2N0E4RjJBMDBGREQyNkIgLyogREJCYWNrZW5k
U2VydmVyLmNwcCAqLywKLQkJCQlGRUFGNjY1MzE2Nzk3MDA3MDA2MkQwQzUgLyogREJCYWNrZW5k
U2VydmVyLmggKi8sCiAJCQkJQThDQ0JCNDYxNTFGODMxNjAwQUI3Q0U5IC8qIERPTVdpbmRvd1dl
YkRhdGFiYXNlLmNwcCAqLywKIAkJCQlBOENDQkI0NzE1MUY4MzE2MDBBQjdDRTkgLyogRE9NV2lu
ZG93V2ViRGF0YWJhc2UuaCAqLywKIAkJCQlBOENDQkI0RTE1MUY4MzVBMDBBQjdDRTkgLyogRE9N
V2luZG93V2ViRGF0YWJhc2UuaWRsICovLApAQCAtMjMyOTQsNiArMjMyOTQsNyBAQAogCQkJCTk3
QkM2QTI5MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZURldGFpbHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZFNDU2RjE5MTY3N0Q3NEUwMDVFRERGOSAvKiBEYXRhYmFzZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3QkM2QTMzMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZU1hbmFn
ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFQUY2NjU0MTY3OTcwMzIwMDYyRDBDNSAv
KiBEYXRhYmFzZVNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVERUY4NDIxNjc5NzEwODAw
MEU0NDRBIC8qIERhdGFiYXNlU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM2QTJC
MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
QkM2QTJFMTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZVRhc2suaCBpbiBIZWFkZXJzICovLApA
QCAtMjMzMTQsNyArMjMzMTUsNiBAQAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNFRjI2OSAvKiBE
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTg2MUM4NjE2MTk0
QTc0MDAwMTBGM0EgLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NTg2MUM4ODE2MTk0QTc0MDAwMTBGM0EgLyogRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkVBRjY2NTQxNjc5NzAzMjAwNjJEMEM1IC8q
IERCQmFja2VuZFNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDVGRUE1RDAxNTZEREU4QzAw
NjU0MTAxIC8qIERlY2ltYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzIyOEExMTFENTcyMkUw
MEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRUNDRkMzQjE0MTk3M0Q1MDAyQTBBQzEgLyogRGVjb2RlRXNjYXBlU2VxdWVuY2VzLmggaW4g
SGVhZGVycyAqLywKQEAgLTI2OTM1LDYgKzI2OTM1LDcgQEAKIAkJCQk5N0JDNjlEQTE1MDVGMDc2
MDAxQjc0QUMgLyogRGF0YWJhc2VCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2
QTI3MTUwNUYwODEwMDFCNzRBQyAvKiBEYXRhYmFzZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkU0NTZGMTgxNjc3RDc0RTAwNUVEREY5IC8qIERhdGFiYXNlTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGRUIyNkQyODE2N0E4RjJBMDBGREQyNkIgLyogRGF0YWJhc2VTZXJ2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVERUY4NDExNjc5NzEwODAwMEU0NDRBIC8qIERh
dGFiYXNlU3RyYXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdCQzZBMkExNTA1RjA4MTAw
MUI3NEFDIC8qIERhdGFiYXNlU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0JDNkEyRDE1
MDVGMDgxMDAxQjc0QUMgLyogRGF0YWJhc2VUYXNrLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY5
NTMsNyArMjY5NTQsNiBAQAogCQkJCUY1NUIzREI5MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ1ODYxQzg1MTYxOTRBNzQw
MDAxMEYzQSAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDU4NjFDODcxNjE5NEE3NDAwMDEwRjNBIC8qIERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkVCMjZEMjgxNjdBOEYyQTAwRkREMjZCIC8q
IERCQmFja2VuZFNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NUZFQTVDRjE1NkRERThD
MDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMyMjhBMjExRDU3
MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MTYyQTQ1MDEwMTE0NUFFMDBERkYzRUQgLyogRGVkaWNhdGVkV29ya2VyQ29udGV4
dC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGFi
YXNlU3RyYXRlZ3kuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGFiYXNlU3RyYXRlZ3kuY3BwCShyZXZpc2lvbiAxNDEyMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EYXRhYmFzZVN0cmF0ZWd5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5
LDEzIEBACiAjaWYgVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCiAjaWYgRU5BQkxFKFNRTF9EQVRB
QkFTRSkKIAotI2luY2x1ZGUgIkRCQmFja2VuZFNlcnZlci5oIgorI2luY2x1ZGUgIkRhdGFiYXNl
U2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQWJzdHJhY3REYXRhYmFzZVNlcnZl
ciogRGF0YWJhc2VTdHJhdGVneTo6Z2V0RGF0YWJhc2VTZXJ2ZXIoKQogewotICAgIHJldHVybiBu
ZXcgREJCYWNrZW5kOjpTZXJ2ZXI7CisgICAgcmV0dXJuIG5ldyBEYXRhYmFzZVNlcnZlcjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="204419"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>