<?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>93293</bug_id>
          
          <creation_ts>2012-08-06 13:05:40 -0700</creation_ts>
          <short_desc>[Chromium] Rename CCTextureUpdater to CCTextureUpdateQueue.</short_desc>
          <delta_ts>2012-08-06 18:42:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>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>84281</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Reveman">reveman</reporter>
          <assigned_to name="David Reveman">reveman</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>688370</commentid>
    <comment_count>0</comment_count>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-06 13:05:40 -0700</bug_when>
    <thetext>It&apos;s a queue. The name should reflect it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688373</commentid>
    <comment_count>1</comment_count>
      <attachid>156751</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-06 13:13:32 -0700</bug_when>
    <thetext>Created attachment 156751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688454</commentid>
    <comment_count>2</comment_count>
      <attachid>156751</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-06 15:12:33 -0700</bug_when>
    <thetext>Comment on attachment 156751
Patch

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

R=me.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Chromium] Rename CCTecxtureUpdater to CCTextureUpdateQueue.

typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688456</commentid>
    <comment_count>3</comment_count>
      <attachid>156770</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-06 15:16:25 -0700</bug_when>
    <thetext>Created attachment 156770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688457</commentid>
    <comment_count>4</comment_count>
      <attachid>156770</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-06 15:17:13 -0700</bug_when>
    <thetext>Comment on attachment 156770
Patch

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688531</commentid>
    <comment_count>5</comment_count>
      <attachid>156770</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 16:22:01 -0700</bug_when>
    <thetext>Comment on attachment 156770
Patch

Rejecting attachment 156770 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/WebKit/chromium/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/13447585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688539</commentid>
    <comment_count>6</comment_count>
      <attachid>156788</attachid>
    <who name="David Reveman">reveman</who>
    <bug_when>2012-08-06 16:28:20 -0700</bug_when>
    <thetext>Created attachment 156788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688541</commentid>
    <comment_count>7</comment_count>
      <attachid>156788</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-06 16:29:12 -0700</bug_when>
    <thetext>Comment on attachment 156788
Patch

R=me.  Let&apos;s try this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688656</commentid>
    <comment_count>8</comment_count>
      <attachid>156788</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 18:41:57 -0700</bug_when>
    <thetext>Comment on attachment 156788
Patch

Clearing flags on attachment: 156788

Committed r124830: &lt;http://trac.webkit.org/changeset/124830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688657</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 18:42:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156751</attachid>
            <date>2012-08-06 13:13:32 -0700</date>
            <delta_ts>2012-08-06 15:16:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93293-20120806161308.patch</filename>
            <type>text/plain</type>
            <size>125130</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg0NGNlOThiY2JlMzQ2
YTEwM2VkZmZkY2ZlMjZmNDg0NmFmODJlNi4uYmQ0ZjIxNzg2MjM5MzFhZGJkYzBmMWY3ZWVkZGUx
ODJmMWI4OTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg5IEBACiAyMDEyLTA4LTA2ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW0Nocm9taXVtXSBS
ZW5hbWUgQ0NUZWN4dHVyZVVwZGF0ZXIgdG8gQ0NUZXh0dXJlVXBkYXRlUXVldWUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzI5MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoQ29udGVudExheWVyQ2hyb21p
dW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5
TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIZWFkc1VwRGlzcGxheUxheWVy
Q2hyb21pdW06OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmg6CisgICAgICAgIChIZWFkc1VwRGlzcGxheUxh
eWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdl
TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxheWVyQ2hyb21pdW06
OnVwZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXll
ckNocm9taXVtLmg6CisgICAgICAgIChJbWFnZUxheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXllckNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhckxheWVyQ2hyb21pdW06OnVwZGF0ZVBhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXllckNocm9taXVtLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNjcm9sbGJhckxheWVyQ2hyb21pdW0pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVMYXllckNocm9taXVtOjp1cGRhdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVt
Lmg6CisgICAgICAgIChUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudCk6CisgICAgICAgIChUZXh0
dXJlTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGlsZWRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlVGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVt
Ojp1cGRhdGVDb250ZW50UmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGlsZWRMYXllckNocm9taXVtLmg6CisgICAgICAgIChUaWxlZExheWVyQ2hyb21pdW0pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TWFza3NGb3JSZW5kZXJTdXJm
YWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFpbnRMYXllckNvbnRl
bnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmRvQ29tbWl0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmNvbW1pdEFuZENvbXBv
c2l0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpoYXNNb3JlVXBkYXRlcyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3Jl
VGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRh
dGVRdWV1ZS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6OkNDVGV4dHVyZVVwZGF0ZVF1
ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZVF1ZXVlOjp+Q0NUZXh0dXJl
VXBkYXRlUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6OmFw
cGVuZEZ1bGxVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6
OmFwcGVuZFBhcnRpYWxVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRl
UXVldWU6OmFwcGVuZENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVl
dWU6OnRha2VGaXJzdEZ1bGxVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlUXVldWU6OnRha2VGaXJzdFBhcnRpYWxVcGxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
ZXh0dXJlVXBkYXRlUXVldWU6OnRha2VGaXJzdENvcHkpOgorICAgICAgICAoV2ViQ29yZTo6Q0NU
ZXh0dXJlVXBkYXRlUXVldWU6Omhhc01vcmVVcGRhdGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBk
YXRlci5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ1RleHR1cmVVcGRhdGVRdWV1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6ZnVsbFVwbG9hZFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6OnBhcnRpYWxVcGxv
YWRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZVF1ZXVlOjpjb3B5U2l6
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRo
cmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQ
cm94eS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ1RocmVhZFByb3h5KToKKwor
MjAxMi0wOC0wNiAgRGF2aWQgUmV2ZW1hbiAgPHJldmVtYW5AY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFtDaHJvbWl1bV0gUmVmYWN0b3IgQ0NUZXh0dXJlVXBkYXRlciBpbnRvIENDVGV4dHVyZVVw
ZGF0ZXIgYW5kIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjU5NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDM5M2Y1NjdmNTJlMjM3ODBkN2ZiMmUxMGUzNDJlNTcyOGZiODNmYjEuLjQyZWRh
YjIwY2JmYzkyYWU3YTk3OTczZmRmYzFmZWQ0YjZhNDNkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDgtMDYgIERhdmlkIFJldmVtYW4gIDxyZXZl
bWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFJlbmFtZSBDQ1RlY3h0dXJl
VXBkYXRlciB0byBDQ1RleHR1cmVVcGRhdGVRdWV1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMjkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJUZXh0dXJlVXBkYXRlckltcGw6OldlYlRleHR1cmVVcGRh
dGVySW1wbCk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHA6CisgICAg
ICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RMYXllck9jY2x1c2lvbjo6YmVnaW5UZXN0KToK
KyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdExheWVyT2NjbHVzaW9uV2l0aEZpbHRl
cnM6OmJlZ2luVGVzdCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RNYW55U3Vy
ZmFjZXM6OmJlZ2luVGVzdCk6CisgICAgICAgICogdGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlclRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcDoKKyAgICAg
ICAgKiB0ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcDoKKyAgICAgICAgKFdlYktpdFRl
c3RzOjpGYWtlVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAgICAqIHRlc3RzL0ND
VGlsZWRMYXllclRlc3RDb21tb24uaDoKKyAgICAgICAgKEZha2VUaWxlZExheWVyQ2hyb21pdW0p
OgorICAgICAgICAqIHRlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcDoKKyAgICAgICAg
KiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKwogMjAxMi0wOC0wNiAgTmFza28g
T3Nrb3YgIDxuYXNrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkaW5nIEFQSXMgdG8gQ2hy
b21pdW0gV2ViS2l0IEFQSSB0byBhbGxvdyBmb3IgY3JlYXRpbmcgYW5kIG1vbml0b3JpbmcgZnJh
bWUgaGllcmFyY2h5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGI0NmU1NzFiNjIzZDdmNjQ5MmFlMDIz
MGFjNjY2NWNiMjNkZGE3NmYuLjhmNTNhOTA1ZTFlYjZmNDVjM2Q5MTQ2MDk3NDc3ODViNWU5OTY4
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTg0MTUsOCArODQxNSw4IEBACiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmgnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVl
LmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlVXBkYXRlUXVldWUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJv
bWl1bS5jcHAKaW5kZXggMDNkMzQzZTgwZGVkMGJiMDBlYTIxMDU3OWUyYTc1M2ZkYTJlN2NjZS4u
MWY5YWQyMTZlOTE4M2ViNjFkOTE0NjNiMzU4NWMyNTQwYzdlMmRiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0Nv
bnRlbnRMYXllckNocm9taXVtLmNwcApAQCAtOTMsNyArOTMsNyBAQCB2b2lkIENvbnRlbnRMYXll
ckNocm9taXVtOjpzZXRUZXh0dXJlUHJpb3JpdGllcyhjb25zdCBDQ1ByaW9yaXR5Q2FsY3VsYXRv
ciYgcHJpbwogICAgIFRpbGVkTGF5ZXJDaHJvbWl1bTo6c2V0VGV4dHVyZVByaW9yaXRpZXMocHJp
b3JpdHlDYWxjKTsKIH0KIAotdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4
dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9u
LCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKK3ZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVw
ZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKICAgICBjcmVhdGVUZXh0
dXJlVXBkYXRlcklmTmVlZGVkKCk7CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIENvbnRlbnRM
YXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3QgQ0NP
Y2NsdXNpb25UcgogICAgIGlmIChkcmF3c0NvbnRlbnQoKSkKICAgICAgICAgY29udGVudFJlY3Qg
PSB2aXNpYmxlQ29udGVudFJlY3QoKTsKIAotICAgIHVwZGF0ZUNvbnRlbnRSZWN0KHVwZGF0ZXIs
IGNvbnRlbnRSZWN0LCBvY2NsdXNpb24sIHN0YXRzKTsKKyAgICB1cGRhdGVDb250ZW50UmVjdChx
dWV1ZSwgY29udGVudFJlY3QsIG9jY2x1c2lvbiwgc3RhdHMpOwogICAgIG1fbmVlZHNEaXNwbGF5
ID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCmluZGV4IGY4Mzk5
Mzg5MjA3NjUxNzBlZmVhNGEyMWM5NGI0OTdiZjlhZjhkODMuLjZjMDY4YjMwY2VlYjExMGExZWI1
YTc0NmFiNzlhNDhmN2IwMTYwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaApA
QCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHR1cmVQcmlvcml0aWVz
KGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NS
ZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0
dXJlVXBkYXRlUXVldWUmLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0
YXRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIG5lZWRNb3JlVXBkYXRlcygpIE9WRVJS
SURFOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBE
aXNwbGF5TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGI0YzE5NzQ4
YWYwZTY3ODc0MjdiODdkZmQ0MzU5YTBkZmIzOTkxZDcuLmM2ZTc1OWJkYjcyNTc4YTk1YjlhYmIw
MThlMzA1YzE3NjJiMGZlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXll
ckNocm9taXVtLmNwcApAQCAtNDksNyArNDksNyBAQCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW06On5IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0oKQogewogfQogCi12b2lkIEhlYWRzVXBE
aXNwbGF5TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09j
Y2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikKK3ZvaWQgSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikKIHsKICAgICBjb25zdCBDQ0xheWVyVHJl
ZVNldHRpbmdzJiBzZXR0aW5ncyA9IGxheWVyVHJlZUhvc3QoKS0+c2V0dGluZ3MoKTsKICAgICBp
bnQgbWF4VGV4dHVyZVNpemUgPSBsYXllclRyZWVIb3N0KCktPmxheWVyUmVuZGVyZXJDYXBhYmls
aXRpZXMoKS5tYXhUZXh0dXJlU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXll
ckNocm9taXVtLmgKaW5kZXggYjdkMjVlNmI1ZjJmMTM5ZmJjYTM4MjVhYTgwMTI1Mzg4ODJlMWU3
Yy4uZTZhOTgzMDQ1YWNlMmYwYjkxOGNhOTdjNjVhYzBhN2JjZmE2ZTQyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bT4g
Y3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtKCk7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3ND
b250ZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRG
b250QXRsYXMoUGFzc093blB0cjxDQ0ZvbnRBdGxhcz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJv
bWl1bS5jcHAKaW5kZXggZDQ3ZjE0YjFlMzA1ZDUwODY2NTgzYWQ5NGM1Y2Q2ZWEzYzA5NWZhYy4u
NTA3M2QxY2M4YTE2NTU3ZDc0M2ExNjc5ZDBhYzA4MWZhZTRiYTgyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBJbWFnZUxheWVyQ2hy
b21pdW06OnNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJiBw
cmlvcmkKICAgICBUaWxlZExheWVyQ2hyb21pdW06OnNldFRleHR1cmVQcmlvcml0aWVzKHByaW9y
aXR5Q2FsYyk7CiB9CiAKLXZvaWQgSW1hZ2VMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJl
VXBkYXRlciYgdXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIEND
UmVuZGVyaW5nU3RhdHMmIHN0YXRzKQordm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZShD
Q1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2Nj
bHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKICAgICBjcmVhdGVUZXh0dXJlVXBk
YXRlcklmTmVlZGVkKCk7CiAgICAgaWYgKG1fbmVlZHNEaXNwbGF5KSB7CkBAIC0xNTEsNyArMTUx
LDcgQEAgdm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1
cGRhdGVyLCBjb25zdCBDQ09jY2x1c2lvblRyYWMKICAgICAgICAgbV9uZWVkc0Rpc3BsYXkgPSBm
YWxzZTsKICAgICB9CiAKLSAgICB1cGRhdGVDb250ZW50UmVjdCh1cGRhdGVyLCB2aXNpYmxlQ29u
dGVudFJlY3QoKSwgb2NjbHVzaW9uLCBzdGF0cyk7CisgICAgdXBkYXRlQ29udGVudFJlY3QocXVl
dWUsIHZpc2libGVDb250ZW50UmVjdCgpLCBvY2NsdXNpb24sIHN0YXRzKTsKIH0KIAogdm9pZCBJ
bWFnZUxheWVyQ2hyb21pdW06OmNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9J
bWFnZUxheWVyQ2hyb21pdW0uaAppbmRleCAwNDQ0Y2Q1NzQ4M2ExMWFhYzU4YWFjY2QzOGQzNmZh
YTkxNmM5YjYwLi5iNTBlNWU3MTU3MWNjMmIyZjVkMjE2Zjg1YjI3YmQwNjA2OWM1ZTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxh
eWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29u
c3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIG5lZWRzQ29udGVudHNTY2FsZSgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBzZXRC
aXRtYXAoY29uc3QgU2tCaXRtYXAmIGltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAppbmRleCA2NmYw
ZGQ4YTFmNDc2ZmIzODZmY2UwNzczZDBmNzgwZjJkNTNlMDcxLi5iODcxY2IxODYyYzdmODdmODRh
YzBhMTAzOTZhNTFhNzc1MGI5ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC02Myw3ICs2Myw3
IEBAIHN0cnVjdCBDQ0FuaW1hdGlvbkV2ZW50OwogY2xhc3MgQ0NMYXllckFuaW1hdGlvbkRlbGVn
YXRlOwogY2xhc3MgQ0NMYXllckltcGw7CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3Q7Ci1jbGFzcyBD
Q1RleHR1cmVVcGRhdGVyOworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlUXVldWU7CiBjbGFzcyBTY3Jv
bGxiYXJMYXllckNocm9taXVtOwogc3RydWN0IENDQW5pbWF0aW9uRXZlbnQ7CiBzdHJ1Y3QgQ0NS
ZW5kZXJpbmdTdGF0czsKQEAgLTIxNiw3ICsyMTYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGVz
ZSBtZXRob2RzIHR5cGljYWxseSBuZWVkIHRvIGJlIG92ZXJ3cml0dGVuIGJ5IGRlcml2ZWQgY2xh
c3Nlcy4KICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9p
c0RyYXdhYmxlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwg
Y29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmLCBjb25zdCBDQ09jY2x1c2lv
blRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgeyB9CiAgICAgdmlydHVhbCBib29sIG5lZWRN
b3JlVXBkYXRlcygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElzTWFz
ayhib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Ny
b2xsYmFyTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9TY3JvbGxiYXJMYXllckNocm9taXVtLmNwcAppbmRleCA1YTlmYmY1ZWFhYjJi
M2E0NWM3YTJmNzJjOTllZWZlM2YxZjg4NWQ0Li40ZTAwY2ZmOTM2ODc3NWYxOTJlMmNhZWJkYjBk
NDQ5NDQwMGZiMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9TY3JvbGxiYXJMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXllckNocm9taXVtLmNwcApA
QCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCiAjaW5j
bHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiY2MvQ0NTY3JvbGxiYXJMYXll
ckltcGwuaCIKLSNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCisjaW5jbHVkZSAiY2Mv
Q0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViUmVjdC5oPgogCiB1
c2luZyBXZWJLaXQ6OldlYlJlY3Q7CkBAIC0yMDYsNyArMjA2LDcgQEAgdm9pZCBTY3JvbGxiYXJM
YXllckNocm9taXVtOjpjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCkKICAgICAgICAgbV90
aHVtYiA9IG1fdGh1bWJVcGRhdGVyLT5jcmVhdGVUZXh0dXJlKGxheWVyVHJlZUhvc3QoKS0+Y29u
dGVudHNUZXh0dXJlTWFuYWdlcigpKTsKIH0KIAotdm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVt
Ojp1cGRhdGVQYXJ0KExheWVyVGV4dHVyZVVwZGF0ZXIqIHBhaW50ZXIsIExheWVyVGV4dHVyZVVw
ZGF0ZXI6OlRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHJlY3QsIENDVGV4dHVyZVVw
ZGF0ZXImIHVwZGF0ZXIsIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKQordm9pZCBTY3JvbGxiYXJM
YXllckNocm9taXVtOjp1cGRhdGVQYXJ0KExheWVyVGV4dHVyZVVwZGF0ZXIqIHBhaW50ZXIsIExh
eWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHJlY3Qs
IENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCiB7
CiAgICAgLy8gU2tpcCBwYWludGluZyBhbmQgdXBsb2FkaW5nIGlmIHRoZXJlIGFyZSBubyBpbnZh
bGlkYXRpb25zIGFuZAogICAgIC8vIHdlIGFscmVhZHkgaGF2ZSB2YWxpZCB0ZXh0dXJlIGRhdGEu
CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGVQ
YXJ0KExheWVyVGV4dHVyZVVwZGF0ZXIqIHBhaW50ZXIsIExheWVyVGV4dHUKIAogICAgIEludFJl
Y3QgZGVzdFJlY3QoSW50UG9pbnQoKSwgcmVjdC5zaXplKCkpOwogICAgIFRleHR1cmVVcGxvYWRl
cjo6UGFyYW1ldGVycyB1cGxvYWQgPSB7IHRleHR1cmUsIHJlY3QsIGRlc3RSZWN0IH07Ci0gICAg
dXBkYXRlci5hcHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CisgICAgcXVldWUuYXBwZW5kRnVsbFVw
bG9hZCh1cGxvYWQpOwogfQogCiAKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIFNjcm9sbGJhckxh
eWVyQ2hyb21pdW06OnNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxh
dG9yJikKICAgICB9CiB9CiAKLXZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKEND
VGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVu
ZGVyaW5nU3RhdHMmIHN0YXRzKQordm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGUo
Q0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBD
Q1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKICAgICBpZiAoY29udGVudEJvdW5kcygpLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjYzLDE1ICsyNjMsMTUgQEAgdm9pZCBTY3JvbGxi
YXJMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3Qg
Q0NPY2NsdXNpb24KIAogICAgIEludFBvaW50IHNjcm9sbGJhck9yaWdpbihtX3Njcm9sbGJhci0+
bG9jYXRpb24oKS54LCBtX3Njcm9sbGJhci0+bG9jYXRpb24oKS55KTsKICAgICBJbnRSZWN0IGNv
bnRlbnRSZWN0KHNjcm9sbGJhck9yaWdpbiwgY29udGVudEJvdW5kcygpKTsKLSAgICB1cGRhdGVQ
YXJ0KG1fYmFja1RyYWNrVXBkYXRlci5nZXQoKSwgbV9iYWNrVHJhY2suZ2V0KCksIGNvbnRlbnRS
ZWN0LCB1cGRhdGVyLCBzdGF0cyk7CisgICAgdXBkYXRlUGFydChtX2JhY2tUcmFja1VwZGF0ZXIu
Z2V0KCksIG1fYmFja1RyYWNrLmdldCgpLCBjb250ZW50UmVjdCwgcXVldWUsIHN0YXRzKTsKICAg
ICBpZiAobV9mb3JlVHJhY2sgJiYgbV9mb3JlVHJhY2tVcGRhdGVyKQotICAgICAgICB1cGRhdGVQ
YXJ0KG1fZm9yZVRyYWNrVXBkYXRlci5nZXQoKSwgbV9mb3JlVHJhY2suZ2V0KCksIGNvbnRlbnRS
ZWN0LCB1cGRhdGVyLCBzdGF0cyk7CisgICAgICAgIHVwZGF0ZVBhcnQobV9mb3JlVHJhY2tVcGRh
dGVyLmdldCgpLCBtX2ZvcmVUcmFjay5nZXQoKSwgY29udGVudFJlY3QsIHF1ZXVlLCBzdGF0cyk7
CiAKICAgICAvLyBDb25zaWRlciB0aGUgdGh1bWIgdG8gYmUgYXQgdGhlIG9yaWdpbiB3aGVuIHBh
aW50aW5nLgogICAgIFdlYktpdDo6V2ViUmVjdCB0aHVtYlJlY3QgPSBtX2dlb21ldHJ5LnRodW1i
UmVjdChtX3Njcm9sbGJhci5nZXQoKSk7CiAgICAgSW50UmVjdCBvcmlnaW5UaHVtYlJlY3QgPSBJ
bnRSZWN0KDAsIDAsIHRodW1iUmVjdC53aWR0aCwgdGh1bWJSZWN0LmhlaWdodCk7CiAgICAgaWYg
KCFvcmlnaW5UaHVtYlJlY3QuaXNFbXB0eSgpKQotICAgICAgICB1cGRhdGVQYXJ0KG1fdGh1bWJV
cGRhdGVyLmdldCgpLCBtX3RodW1iLmdldCgpLCBvcmlnaW5UaHVtYlJlY3QsIHVwZGF0ZXIsIHN0
YXRzKTsKKyAgICAgICAgdXBkYXRlUGFydChtX3RodW1iVXBkYXRlci5nZXQoKSwgbV90aHVtYi5n
ZXQoKSwgb3JpZ2luVGh1bWJSZWN0LCBxdWV1ZSwgc3RhdHMpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9T
Y3JvbGxiYXJMYXllckNocm9taXVtLmgKaW5kZXggNDI1MmUyNjhlZGNjMWQ4OWI0MzUzZTQ1NTVl
NDc3MWY5MzExYzA0Mi4uYzZkYzM5MGM2NDBlYjlkYjA0YzkzYTQ1M2NiOTg5ZmQ3NWQwYjZiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Ny
b2xsYmFyTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uaApAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFNjcm9sbGJhclRo
ZW1lQ29tcG9zaXRlOwotY2xhc3MgQ0NUZXh0dXJlVXBkYXRlcjsKK2NsYXNzIENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlOwogCiBjbGFzcyBTY3JvbGxiYXJMYXllckNocm9taXVtIDogcHVibGljIExheWVy
Q2hyb21pdW0gewogcHVibGljOgpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBM
YXllckNocm9taXVtIGludGVyZmFjZQogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0dXJlUHJpb3Jp
dGllcyhjb25zdCBDQ1ByaW9yaXR5Q2FsY3VsYXRvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlcios
IENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKEND
VGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJp
bmdTdGF0cyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVIb3N0KEND
TGF5ZXJUcmVlSG9zdCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwdXNoUHJvcGVydGll
c1RvKENDTGF5ZXJJbXBsKikgT1ZFUlJJREU7CiAKQEAgLTYwLDcgKzYwLDcgQEAgcHJvdGVjdGVk
OgogICAgIFNjcm9sbGJhckxheWVyQ2hyb21pdW0oUGFzc093blB0cjxXZWJLaXQ6OldlYlNjcm9s
bGJhcj4sIFdlYktpdDo6V2ViU2Nyb2xsYmFyVGhlbWVQYWludGVyLCBXZWJLaXQ6OldlYlNjcm9s
bGJhclRoZW1lR2VvbWV0cnksIGludCBzY3JvbGxMYXllcklkKTsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHVwZGF0ZVBhcnQoTGF5ZXJUZXh0dXJlVXBkYXRlciosIExheWVyVGV4dHVyZVVwZGF0ZXI6
OlRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiwgQ0NUZXh0dXJlVXBkYXRlciYsIENDUmVuZGVyaW5n
U3RhdHMmKTsKKyAgICB2b2lkIHVwZGF0ZVBhcnQoTGF5ZXJUZXh0dXJlVXBkYXRlciosIExheWVy
VGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUqLCBjb25zdCBJbnRSZWN0JiwgQ0NUZXh0dXJlVXBkYXRl
UXVldWUmLCBDQ1JlbmRlcmluZ1N0YXRzJik7CiAgICAgdm9pZCBjcmVhdGVUZXh0dXJlVXBkYXRl
cklmTmVlZGVkKCk7CiAKICAgICBPd25QdHI8V2ViS2l0OjpXZWJTY3JvbGxiYXI+IG1fc2Nyb2xs
YmFyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IDkwYmM3MGVhOTZh
NDA2NTk4N2ViYzYxMzVlZmJiYjM4NjU0MTBiMWIuLjdkNTc1ZDMxZjYzYTU2Y2NjOTAyMDgxMDFi
Mjg1YTNjY2VhM2QzNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTEyOSwxMCArMTI5LDEwIEBAIGJvb2wgVGV4dHVyZUxheWVyQ2hyb21pdW06OmRyYXdzQ29udGVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIChtX2NsaWVudCB8fCBtX3RleHR1cmVJZCkgJiYgIW1fY29u
dGV4dExvc3QgJiYgTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCk7CiB9CiAKLXZvaWQgVGV4
dHVyZUxheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25z
dCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikKK3ZvaWQgVGV4dHVyZUxh
eWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUsIGNvbnN0IEND
T2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKQogewogICAgIGlmIChtX2NsaWVu
dCkgewotICAgICAgICBtX3RleHR1cmVJZCA9IG1fY2xpZW50LT5wcmVwYXJlVGV4dHVyZSh1cGRh
dGVyKTsKKyAgICAgICAgbV90ZXh0dXJlSWQgPSBtX2NsaWVudC0+cHJlcGFyZVRleHR1cmUocXVl
dWUpOwogICAgICAgICBtX2NvbnRleHRMb3N0ID0gbV9jbGllbnQtPmNvbnRleHQoKS0+Z2V0R3Jh
cGhpY3NSZXNldFN0YXR1c0FSQigpICE9IEdyYXBoaWNzQ29udGV4dDNEOjpOT19FUlJPUjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDEzZjVjYjg0OTYzNjY3
NzE5MzljNzBkYjUxNTZjZmVmNDMxYWJhZmYuLjRiNjcyMWJiNDhjNWRmYThkZDAyNjQ0NzM2ZGMz
OGViYTNjNzljYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaApAQCAtNDAsOSAr
NDAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBUZXh0dXJlTGF5ZXJDaHJvbWl1bUNs
aWVudCB7CiBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIHRvIHByZXBhcmUgdGhpcyBsYXllcidzIHRl
eHR1cmUgZm9yIGNvbXBvc2l0aW5nLiBUaGUgY2xpZW50IG1heSBxdWV1ZSBhIHRleHR1cmUKLSAg
ICAvLyB1cGxvYWQgb3IgY29weSBvbiB0aGUgQ0NUZXh0dXJlVXBkYXRlci4KKyAgICAvLyB1cGxv
YWQgb3IgY29weSBvbiB0aGUgQ0NUZXh0dXJlVXBkYXRlUXVldWUuCiAgICAgLy8gUmV0dXJucyB0
aGUgdGV4dHVyZSBJRCB0byBiZSB1c2VkIGZvciBjb21wb3NpdGluZy4KLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIHByZXBhcmVUZXh0dXJlKENDVGV4dHVyZVVwZGF0ZXImKSA9IDA7CisgICAgdmlydHVh
bCB1bnNpZ25lZCBwcmVwYXJlVGV4dHVyZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYpID0gMDsKIAog
ICAgIC8vIFJldHVybnMgdGhlIGNvbnRleHQgdGhhdCBpcyBwcm92aWRpbmcgdGhlIHRleHR1cmUu
IFVzZWQgZm9yIHJhdGUgbGltaXRpbmcgYW5kIGRldGVjdGluZyBsb3N0IGNvbnRleHQuCiAgICAg
dmlydHVhbCBXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KCkgPSAwOwpAQCAt
ODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlSG9z
dChDQ0xheWVyVHJlZUhvc3QqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250
ZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVV
cGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmLCBj
b25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqKSBPVkVSUklERTsK
IAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNjgzYTQ1
YWNiYTVhNWI0NjNhNTdhNGMyMWYwMDJjMGJiYzM4ODNiOC4uYjc2YzczZWZlMTgxZDk1MjlhNzRl
Y2ZkMTU3YjBlNGU3NGJmYmE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBA
IC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKICNpbmNsdWRlICJj
Yy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJjYy9DQ092ZXJkcmF3TWV0cmljcy5oIgot
I2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlICJjYy9DQ1RleHR1cmVV
cGRhdGVRdWV1ZS5oIgogI2luY2x1ZGUgImNjL0NDVGlsZWRMYXllckltcGwuaCIKIAogI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMzQ1LDcgKzM0NSw3IEBAIGJvb2wgVGlsZWRMYXll
ckNocm9taXVtOjp0aWxlTmVlZHNCdWZmZXJlZFVwZGF0ZShVcGRhdGFibGVUaWxlKiB0aWxlKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGls
ZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tLCBD
Q1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1
c2lvbiwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCit2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQg
Ym90dG9tLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUsIGNvbnN0IENDT2NjbHVzaW9uVHJh
Y2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKICAgICBjcmVhdGVU
ZXh0dXJlVXBkYXRlcklmTmVlZGVkKCk7CiAKQEAgLTUwOCw5ICs1MDgsOSBAQCB2b2lkIFRpbGVk
TGF5ZXJDaHJvbWl1bTo6dXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwg
aW50IHJpZ2h0LCBpbgogCiAgICAgICAgICAgICBUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMg
dXBsb2FkID0geyB0aWxlLT50ZXh0dXJlKCksIHNvdXJjZVJlY3QsIGRlc3RSZWN0IH07CiAgICAg
ICAgICAgICBpZiAodGlsZS0+cGFydGlhbFVwZGF0ZSkKLSAgICAgICAgICAgICAgICB1cGRhdGVy
LmFwcGVuZFBhcnRpYWxVcGxvYWQodXBsb2FkKTsKKyAgICAgICAgICAgICAgICBxdWV1ZS5hcHBl
bmRQYXJ0aWFsVXBsb2FkKHVwbG9hZCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgdXBkYXRlci5hcHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CisgICAgICAgICAgICAgICAgcXVl
dWUuYXBwZW5kRnVsbFVwbG9hZCh1cGxvYWQpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNjEx
LDcgKzYxMSw3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjpyZXNldFVwZGF0ZVN0YXRlKCkK
ICAgICB9CiB9CiAKLXZvaWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50UmVjdChD
Q1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29u
c3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRz
KQordm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRSZWN0KENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IENDT2Nj
bHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKICAg
ICBtX3NraXBzRHJhdyA9IGZhbHNlOwogICAgIG1fc2tpcHNJZGxlUGFpbnQgPSBmYWxzZTsKQEAg
LTYyNiw3ICs2MjYsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudFJl
Y3QoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3QgSW50UgogICAgIGlmICghY29udGVu
dFJlY3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIGludCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b207
CiAgICAgICAgIG1fdGlsZXItPmNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhjb250ZW50UmVjdCwg
bGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKLSAgICAgICAgdXBkYXRlVGlsZXMoZmFsc2UsIGxl
ZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgdXBkYXRlciwgb2NjbHVzaW9uLCBzdGF0cyk7CisgICAg
ICAgIHVwZGF0ZVRpbGVzKGZhbHNlLCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20sIHF1ZXVlLCBv
Y2NsdXNpb24sIHN0YXRzKTsKICAgICB9CiAKICAgICAvLyBBYm9ydCBpZiB3ZSBoYXZlIGFscmVh
ZHkgcGFpbnRlZCBvciBydW4gb3V0IG9mIG1lbW9yeS4KQEAgLTY0MywxNiArNjQzLDE2IEBAIHZv
aWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50UmVjdChDQ1RleHR1cmVVcGRhdGVy
JiB1cGRhdGVyLCBjb25zdCBJbnRSCiAKICAgICAvLyBJZiB0aGUgbGF5ZXIgaXMgbm90IHZpc2li
bGUsIHdlIGhhdmUgbm90aGluZyB0byBleHBhbmQgZnJvbSwgc28gaW5zdGVhZCB3ZSBwcmVwYWlu
dCB0aGUgb3V0ZXItbW9zdCBzZXQgb2YgdGlsZXMuCiAgICAgaWYgKGNvbnRlbnRSZWN0LmlzRW1w
dHkoKSkgewotICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBwcmVwYWludExlZnQsIHByZXBhaW50
VG9wLCBwcmVwYWludFJpZ2h0LCBwcmVwYWludFRvcCwgdXBkYXRlciwgMCwgc3RhdHMpOworICAg
ICAgICB1cGRhdGVUaWxlcyh0cnVlLCBwcmVwYWludExlZnQsIHByZXBhaW50VG9wLCBwcmVwYWlu
dFJpZ2h0LCBwcmVwYWludFRvcCwgcXVldWUsIDAsIHN0YXRzKTsKICAgICAgICAgaWYgKG1fZGlk
UGFpbnQgfHwgbV9za2lwc0lkbGVQYWludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
dXBkYXRlVGlsZXModHJ1ZSwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludEJvdHRvbSwgcHJlcGFpbnRS
aWdodCwgcHJlcGFpbnRCb3R0b20sIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgdXBkYXRl
VGlsZXModHJ1ZSwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludEJvdHRvbSwgcHJlcGFpbnRSaWdodCwg
cHJlcGFpbnRCb3R0b20sIHF1ZXVlLCAwLCBzdGF0cyk7CiAgICAgICAgIGlmIChtX2RpZFBhaW50
IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHVwZGF0
ZVRpbGVzKHRydWUsIHByZXBhaW50TGVmdCwgcHJlcGFpbnRUb3AsIHByZXBhaW50TGVmdCwgcHJl
cGFpbnRCb3R0b20sIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgdXBkYXRlVGlsZXModHJ1
ZSwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludFRvcCwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludEJvdHRv
bSwgcXVldWUsIDAsIHN0YXRzKTsKICAgICAgICAgaWYgKG1fZGlkUGFpbnQgfHwgbV9za2lwc0lk
bGVQYWludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwg
cHJlcGFpbnRSaWdodCwgcHJlcGFpbnRUb3AsIHByZXBhaW50UmlnaHQsIHByZXBhaW50Qm90dG9t
LCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIHByZXBhaW50
UmlnaHQsIHByZXBhaW50VG9wLCBwcmVwYWludFJpZ2h0LCBwcmVwYWludEJvdHRvbSwgcXVldWUs
IDAsIHN0YXRzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjYwLDcgKzY2MCw3IEBA
IHZvaWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50UmVjdChDQ1RleHR1cmVVcGRh
dGVyJiB1cGRhdGVyLCBjb25zdCBJbnRSCiAgICAgbV90aWxlci0+Y29udGVudFJlY3RUb1RpbGVJ
bmRpY2VzKGNvbnRlbnRSZWN0LCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOwogCiAgICAgLy8g
T3RoZXJ3aXNlLCBwcmVwYWludCBhbnl0aGluZyB0aGF0IHdhcyBvY2NsdWRlZCBidXQgaW5zaWRl
IHRoZSBsYXllcidzIHZpc2libGUgcmVnaW9uLgotICAgIHVwZGF0ZVRpbGVzKHRydWUsIGxlZnQs
IHRvcCwgcmlnaHQsIGJvdHRvbSwgdXBkYXRlciwgMCwgc3RhdHMpOworICAgIHVwZGF0ZVRpbGVz
KHRydWUsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgcXVldWUsIDAsIHN0YXRzKTsKICAgICBp
ZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBhaW50KQogICAgICAgICByZXR1cm47CiAKQEAg
LTY2OCwyNSArNjY4LDI1IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50
UmVjdChDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBJbnRSCiAgICAgd2hpbGUgKCFt
X3NraXBzSWRsZVBhaW50ICYmIChsZWZ0ID4gcHJlcGFpbnRMZWZ0IHx8IHRvcCA+IHByZXBhaW50
VG9wIHx8IHJpZ2h0IDwgcHJlcGFpbnRSaWdodCB8fCBib3R0b20gPCBwcmVwYWludEJvdHRvbSkp
IHsKICAgICAgICAgaWYgKGJvdHRvbSA8IHByZXBhaW50Qm90dG9tKSB7CiAgICAgICAgICAgICAr
K2JvdHRvbTsKLSAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIGJvdHRvbSwgcmln
aHQsIGJvdHRvbSwgdXBkYXRlciwgMCwgc3RhdHMpOworICAgICAgICAgICAgdXBkYXRlVGlsZXMo
dHJ1ZSwgbGVmdCwgYm90dG9tLCByaWdodCwgYm90dG9tLCBxdWV1ZSwgMCwgc3RhdHMpOwogICAg
ICAgICAgICAgaWYgKG1fZGlkUGFpbnQgfHwgbV9za2lwc0lkbGVQYWludCkKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAodG9wID4gcHJlcGFpbnRUb3ApIHsK
ICAgICAgICAgICAgIC0tdG9wOwotICAgICAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwg
dG9wLCByaWdodCwgdG9wLCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgICAgICAgICB1cGRhdGVU
aWxlcyh0cnVlLCBsZWZ0LCB0b3AsIHJpZ2h0LCB0b3AsIHF1ZXVlLCAwLCBzdGF0cyk7CiAgICAg
ICAgICAgICBpZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBhaW50KQogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmIChsZWZ0ID4gcHJlcGFpbnRMZWZ0KSB7
CiAgICAgICAgICAgICAtLWxlZnQ7Ci0gICAgICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBsZWZ0
LCB0b3AsIGxlZnQsIGJvdHRvbSwgdXBkYXRlciwgMCwgc3RhdHMpOworICAgICAgICAgICAgdXBk
YXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCBsZWZ0LCBib3R0b20sIHF1ZXVlLCAwLCBzdGF0cyk7
CiAgICAgICAgICAgICBpZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBhaW50KQogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmIChyaWdodCA8IHByZXBhaW50
UmlnaHQpIHsKICAgICAgICAgICAgICsrcmlnaHQ7Ci0gICAgICAgICAgICB1cGRhdGVUaWxlcyh0
cnVlLCByaWdodCwgdG9wLCByaWdodCwgYm90dG9tLCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAg
ICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCByaWdodCwgdG9wLCByaWdodCwgYm90dG9tLCBxdWV1
ZSwgMCwgc3RhdHMpOwogICAgICAgICAgICAgaWYgKG1fZGlkUGFpbnQgfHwgbV9za2lwc0lkbGVQ
YWludCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uaAppbmRleCA2N2U0ZjAyY2ZlZDc5NWJlYzQzYmM5ZDgxNTU0ZWRkNjM4NWI5OTNm
Li4yZjU1M2EwZjNjOTI5NDBhZTgyYTdlNTRlZmJmMGQwNTMzYjYwZTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uaApAQCAtODMsNyArODMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBy
ZXNldFVwZGF0ZVN0YXRlKCk7CiAKICAgICAvLyBQcmVwYXJlIGRhdGEgbmVlZGVkIHRvIHVwZGF0
ZSB0ZXh0dXJlcyB0aGF0IGludGVyc2VjdCB3aXRoIGNvbnRlbnRSZWN0LgotICAgIHZvaWQgdXBk
YXRlQ29udGVudFJlY3QoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRS
ZWN0LCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJik7CisgICAg
dm9pZCB1cGRhdGVDb250ZW50UmVjdChDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IEludFJl
Y3QmIGNvbnRlbnRSZWN0LCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0
YXRzJik7CiAKICAgICAvLyBBZnRlciBwcmVwYXJpbmcgYW4gdXBkYXRlLCByZXR1cm5zIHRydWUg
aWYgbW9yZSBwYWludGluZyBpcyBuZWVkZWQuCiAgICAgYm9vbCBuZWVkc0lkbGVQYWludChjb25z
dCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHNldFRleHR1cmVQcmlvcml0aWVzSW5SZWN0KGNvbnN0IENDUHJpb3Jp
dHlDYWxjdWxhdG9yJiwgY29uc3QgSW50UmVjdCYgdmlzaWJsZUNvbnRlbnRSZWN0KTsKIAotICAg
IHZvaWQgdXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0
LCBpbnQgYm90dG9tLCBDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2Vy
KiwgQ0NSZW5kZXJpbmdTdGF0cyYpOworICAgIHZvaWQgdXBkYXRlVGlsZXMoYm9vbCBpZGxlLCBp
bnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tLCBDQ1RleHR1cmVVcGRhdGVR
dWV1ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKTsKIAog
ICAgIFVwZGF0YWJsZVRpbGUqIHRpbGVBdChpbnQsIGludCkgY29uc3Q7CiAgICAgVXBkYXRhYmxl
VGlsZSogY3JlYXRlVGlsZShpbnQsIGludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cAppbmRleCA3ZjZjNDk5YWUyZGE5ZDMzY2Y5NzY0MGMyYWExNjQ4NWRkOGY5NGM4Li5mN2RiZmJh
NWI3ODU3MDYyYjhlYThjMzAyMmQwNGY3YTc2ZjRjZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCBib29sIENDTGF5ZXJUcmVlSG9zdDo6aW5p
dGlhbGl6ZUxheWVyUmVuZGVyZXJJZk5lZWRlZCgpCiB9CiAKIAotdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnVwZGF0ZUxheWVycyhDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBzaXplX3QgbWVtb3J5
QWxsb2NhdGlvbkxpbWl0Qnl0ZXMpCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJz
KENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgc2l6ZV90IG1lbW9yeUFsbG9jYXRpb25MaW1p
dEJ5dGVzKQogewogICAgIEFTU0VSVChtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCk7CiAgICAg
QVNTRVJUKG1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKTsKQEAgLTQ2OSwxMCArNDY5LDEwIEBA
IHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoQ0NUZXh0dXJlVXBkYXRlciYgdXBk
YXRlciwgc2l6ZV90IG1lbW9yeUFsbG9jCiAKICAgICBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXIt
PnNldE1heE1lbW9yeUxpbWl0Qnl0ZXMobWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMpOwogCi0g
ICAgdXBkYXRlTGF5ZXJzKHJvb3RMYXllcigpLCB1cGRhdGVyKTsKKyAgICB1cGRhdGVMYXllcnMo
cm9vdExheWVyKCksIHF1ZXVlKTsKIH0KIAotdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUxh
eWVycyhMYXllckNocm9taXVtKiByb290TGF5ZXIsIENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIp
Cit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzKExheWVyQ2hyb21pdW0qIHJvb3RM
YXllciwgQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlKQogewogICAgIFRSQUNFX0VWRU5UMCgi
Y2MiLCAiQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMiKTsKIApAQCAtNDg5LDcgKzQ4OSw3
IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoTGF5ZXJDaHJvbWl1bSogcm9v
dExheWVyLCBDQ1RleHR1cmVVcGRhdGVyJiB1CiAgICAgLy8gUmVzZXQgcGFydGlhbCB0ZXh0dXJl
IHVwZGF0ZSByZXF1ZXN0cy4KICAgICBtX3BhcnRpYWxUZXh0dXJlVXBkYXRlUmVxdWVzdHMgPSAw
OwogCi0gICAgYm9vbCBuZWVkTW9yZVVwZGF0ZXMgPSBwYWludExheWVyQ29udGVudHModXBkYXRl
TGlzdCwgdXBkYXRlcik7CisgICAgYm9vbCBuZWVkTW9yZVVwZGF0ZXMgPSBwYWludExheWVyQ29u
dGVudHModXBkYXRlTGlzdCwgcXVldWUpOwogICAgIGlmIChtX3RyaWdnZXJJZGxlVXBkYXRlcyAm
JiBuZWVkTW9yZVVwZGF0ZXMpCiAgICAgICAgIHNldE5lZWRzQ29tbWl0KCk7CiAKQEAgLTU2NSw3
ICs1NjUsNyBAQCBzaXplX3QgQ0NMYXllclRyZWVIb3N0OjpjYWxjdWxhdGVNZW1vcnlGb3JSZW5k
ZXJTdXJmYWNlcyhjb25zdCBMYXllckxpc3QmIHVwZGF0ZQogICAgIHJldHVybiByZWFkYmFja0J5
dGVzICsgbWF4QmFja2dyb3VuZFRleHR1cmVCeXRlcyArIGNvbnRlbnRzVGV4dHVyZUJ5dGVzOwog
fQogCi1ib29sIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoTGF5
ZXJDaHJvbWl1bSogcmVuZGVyU3VyZmFjZUxheWVyLCBDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVy
KQorYm9vbCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TWFza3NGb3JSZW5kZXJTdXJmYWNlKExheWVy
Q2hyb21pdW0qIHJlbmRlclN1cmZhY2VMYXllciwgQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVl
KQogewogICAgIC8vIE5vdGU6IE1hc2tzIGFuZCByZXBsaWNhcyBvbmx5IGV4aXN0IGZvciBsYXll
cnMgdGhhdCBvd24gcmVuZGVyIHN1cmZhY2VzLiBJZiB3ZSByZWFjaCB0aGlzIHBvaW50CiAgICAg
Ly8gaW4gY29kZSwgd2UgYWxyZWFkeSBrbm93IHRoYXQgYXQgbGVhc3Qgc29tZXRoaW5nIHdpbGwg
YmUgZHJhd24gaW50byB0aGlzIHJlbmRlciBzdXJmYWNlLCBzbyB0aGUKQEAgLTU3NCwxOSArNTc0
LDE5IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0OjpwYWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZShM
YXllckNocm9taXVtKiByZW5kZXJTdXJmYWNlTGF5CiAgICAgYm9vbCBuZWVkTW9yZVVwZGF0ZXMg
PSBmYWxzZTsKICAgICBMYXllckNocm9taXVtKiBtYXNrTGF5ZXIgPSByZW5kZXJTdXJmYWNlTGF5
ZXItPm1hc2tMYXllcigpOwogICAgIGlmIChtYXNrTGF5ZXIpIHsKLSAgICAgICAgbWFza0xheWVy
LT51cGRhdGUodXBkYXRlciwgMCwgbV9yZW5kZXJpbmdTdGF0cyk7CisgICAgICAgIG1hc2tMYXll
ci0+dXBkYXRlKHF1ZXVlLCAwLCBtX3JlbmRlcmluZ1N0YXRzKTsKICAgICAgICAgbmVlZE1vcmVV
cGRhdGVzIHw9IG1hc2tMYXllci0+bmVlZE1vcmVVcGRhdGVzKCk7CiAgICAgfQogCiAgICAgTGF5
ZXJDaHJvbWl1bSogcmVwbGljYU1hc2tMYXllciA9IHJlbmRlclN1cmZhY2VMYXllci0+cmVwbGlj
YUxheWVyKCkgPyByZW5kZXJTdXJmYWNlTGF5ZXItPnJlcGxpY2FMYXllcigpLT5tYXNrTGF5ZXIo
KSA6IDA7CiAgICAgaWYgKHJlcGxpY2FNYXNrTGF5ZXIpIHsKLSAgICAgICAgcmVwbGljYU1hc2tM
YXllci0+dXBkYXRlKHVwZGF0ZXIsIDAsIG1fcmVuZGVyaW5nU3RhdHMpOworICAgICAgICByZXBs
aWNhTWFza0xheWVyLT51cGRhdGUocXVldWUsIDAsIG1fcmVuZGVyaW5nU3RhdHMpOwogICAgICAg
ICBuZWVkTW9yZVVwZGF0ZXMgfD0gcmVwbGljYU1hc2tMYXllci0+bmVlZE1vcmVVcGRhdGVzKCk7
CiAgICAgfQogICAgIHJldHVybiBuZWVkTW9yZVVwZGF0ZXM7CiB9CiAKLWJvb2wgQ0NMYXllclRy
ZWVIb3N0OjpwYWludExheWVyQ29udGVudHMoY29uc3QgTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0LCBDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQorYm9vbCBDQ0xheWVyVHJlZUhv
c3Q6OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXll
ckxpc3QsIENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSkKIHsKICAgICAvLyBVc2UgRnJvbnRU
b0JhY2sgdG8gYWxsb3cgZm9yIHRlc3Rpbmcgb2NjbHVzaW9uIGFuZCBwZXJmb3JtaW5nIGN1bGxp
bmcgZHVyaW5nIHRoZSB0cmVlIHdhbGsuCiAgICAgdHlwZWRlZiBDQ0xheWVySXRlcmF0b3I8TGF5
ZXJDaHJvbWl1bSwgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+LCBSZW5kZXJTdXJmYWNl
Q2hyb21pdW0sIENDTGF5ZXJJdGVyYXRvckFjdGlvbnM6OkZyb250VG9CYWNrPiBDQ0xheWVySXRl
cmF0b3JUeXBlOwpAQCAtNjA0LDEwICs2MDQsMTAgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3Q6OnBh
aW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXllckxpc3QK
IAogICAgICAgICBpZiAoaXQucmVwcmVzZW50c1RhcmdldFJlbmRlclN1cmZhY2UoKSkgewogICAg
ICAgICAgICAgQVNTRVJUKGl0LT5yZW5kZXJTdXJmYWNlKCktPmRyYXdPcGFjaXR5KCkgfHwgaXQt
PnJlbmRlclN1cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKLSAgICAgICAgICAg
IG5lZWRNb3JlVXBkYXRlcyB8PSBwYWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZSgqaXQsIHVwZGF0
ZXIpOworICAgICAgICAgICAgbmVlZE1vcmVVcGRhdGVzIHw9IHBhaW50TWFza3NGb3JSZW5kZXJT
dXJmYWNlKCppdCwgcXVldWUpOwogICAgICAgICB9IGVsc2UgaWYgKGl0LnJlcHJlc2VudHNJdHNl
bGYoKSkgewogICAgICAgICAgICAgQVNTRVJUKCFpdC0+Ym91bmRzKCkuaXNFbXB0eSgpKTsKLSAg
ICAgICAgICAgIGl0LT51cGRhdGUodXBkYXRlciwgJm9jY2x1c2lvblRyYWNrZXIsIG1fcmVuZGVy
aW5nU3RhdHMpOworICAgICAgICAgICAgaXQtPnVwZGF0ZShxdWV1ZSwgJm9jY2x1c2lvblRyYWNr
ZXIsIG1fcmVuZGVyaW5nU3RhdHMpOwogICAgICAgICAgICAgbmVlZE1vcmVVcGRhdGVzIHw9IGl0
LT5uZWVkTW9yZVVwZGF0ZXMoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oCmluZGV4IDhjYWYwMGI4ZjVjZmNjOGY3YzZlNzY5NGUwMjI1MGM4M2IxNTE2NDIuLjA2MWQ3
ZjA5NzIwZTM3ZGVlZWY2NjRjMjE0YjFmMjRiN2E3YTkzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCkBAIC01Myw3ICs1Myw3IEBAIGNsYXNzIENDTGF5ZXJDaHJvbWl1bTsKIGNsYXNz
IENDTGF5ZXJUcmVlSG9zdEltcGw7CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50Owog
Y2xhc3MgQ0NQcmlvcml0aXplZFRleHR1cmVNYW5hZ2VyOwotY2xhc3MgQ0NUZXh0dXJlVXBkYXRl
cjsKK2NsYXNzIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOwogY2xhc3MgSGVhZHNVcERpc3BsYXlMYXll
ckNocm9taXVtOwogY2xhc3MgUmVnaW9uOwogc3RydWN0IENDU2Nyb2xsQW5kU2NhbGVTZXQ7CkBA
IC0xODYsNyArMTg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhY3F1aXJlTGF5ZXJU
ZXh0dXJlcygpOwogICAgIC8vIFJldHVybnMgZmFsc2UgaWYgd2Ugc2hvdWxkIGFib3J0IHRoaXMg
ZnJhbWUgZHVlIHRvIGluaXRpYWxpemF0aW9uIGZhaWx1cmUuCiAgICAgYm9vbCBpbml0aWFsaXpl
TGF5ZXJSZW5kZXJlcklmTmVlZGVkKCk7Ci0gICAgdm9pZCB1cGRhdGVMYXllcnMoQ0NUZXh0dXJl
VXBkYXRlciYsIHNpemVfdCBjb250ZW50c01lbW9yeUxpbWl0Qnl0ZXMpOworICAgIHZvaWQgdXBk
YXRlTGF5ZXJzKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgc2l6ZV90IGNvbnRlbnRzTWVtb3J5TGlt
aXRCeXRlcyk7CiAKICAgICBDQ0xheWVyVHJlZUhvc3RDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJu
IG1fY2xpZW50OyB9CiAKQEAgLTI3OCwxMSArMjc4LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGluaXRpYWxpemVMYXllclJlbmRlcmVyKCk7CiAKLSAgICB2b2lkIHVwZGF0ZShMYXllckNocm9t
aXVtKiwgQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciopOwotICAg
IGJvb2wgcGFpbnRMYXllckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYsIENDVGV4dHVyZVVwZGF0
ZXImKTsKLSAgICBib29sIHBhaW50TWFza3NGb3JSZW5kZXJTdXJmYWNlKExheWVyQ2hyb21pdW0q
LCBDQ1RleHR1cmVVcGRhdGVyJik7CisgICAgdm9pZCB1cGRhdGUoTGF5ZXJDaHJvbWl1bSosIEND
VGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKik7CisgICAgYm9v
bCBwYWludExheWVyQ29udGVudHMoY29uc3QgTGF5ZXJMaXN0JiwgQ0NUZXh0dXJlVXBkYXRlUXVl
dWUmKTsKKyAgICBib29sIHBhaW50TWFza3NGb3JSZW5kZXJTdXJmYWNlKExheWVyQ2hyb21pdW0q
LCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYpOwogCi0gICAgdm9pZCB1cGRhdGVMYXllcnMoTGF5ZXJD
aHJvbWl1bSosIENDVGV4dHVyZVVwZGF0ZXImKTsKKyAgICB2b2lkIHVwZGF0ZUxheWVycyhMYXll
ckNocm9taXVtKiwgQ0NUZXh0dXJlVXBkYXRlUXVldWUmKTsKIAogICAgIHZvaWQgcHJpb3JpdGl6
ZVRleHR1cmVzKGNvbnN0IExheWVyTGlzdCYsIENDT3ZlcmRyYXdNZXRyaWNzJik7IAogICAgIHZv
aWQgc2V0UHJpb3JpdGllc0ZvclN1cmZhY2VzKHNpemVfdCBzdXJmYWNlTWVtb3J5Qnl0ZXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCAxNjQyNWZmYmE2N2Fm
NmY2NjQ0MDdjY2I5YWZlOGI3OTg5Y2Y2YjNkLi45ZmU1MDVmMzJkYzBhMTVkOTdjZjI0NGUzNzFh
NjJmMDkwODI5ZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApA
QCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6c2V0TmVlZHNBbmlt
YXRlKCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBDQ1NpbmdsZVRocmVh
ZFByb3h5Ojpkb0NvbW1pdChDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQordm9pZCBDQ1Npbmds
ZVRocmVhZFByb3h5Ojpkb0NvbW1pdChDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUpCiB7CiAg
ICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKICAgICAvLyBDb21taXQgaW1tZWRp
YXRlbHkKQEAgLTIxMSw4ICsyMTEsOCBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OmRvQ29t
bWl0KENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCiAgICAgICAgIC8vIHNob3VsZG4ndCBiZSBh
IHByb2JsZW0gaGVyZSBhcyB0aGUgdGhyb3R0bGVkIHVwbG9hZGVyIGlzbid0IHVzZWQgaW4KICAg
ICAgICAgLy8gc2luZ2xlIHRocmVhZCBtb2RlLiBGb3IgY29ycmVjdG5lc3MsIGxvb3AgdW50aWwg
bm8gbW9yZSB1cGRhdGVzIGFyZQogICAgICAgICAvLyBwZW5kaW5nLgotICAgICAgICB3aGlsZSAo
dXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKQotICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92
aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3Bp
ZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2Fk
ZXIoKSwgJnVwZGF0ZXIsIG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpKTsKKyAgICAgICAgd2hp
bGUgKHF1ZXVlLmhhc01vcmVVcGRhdGVzKCkpCisgICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX2xheWVyVHJlZUhvc3RJbXBsLT5yZXNvdXJjZVBy
b3ZpZGVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNv
cGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVVcGxv
YWRlcigpLCAmcXVldWUsIG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpKTsKIAogICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPmZpbmlzaENvbW1pdE9uSW1wbFRocmVhZChtX2xheWVyVHJlZUhvc3RJ
bXBsLmdldCgpKTsKIApAQCAtMzAzLDExICszMDMsMTEgQEAgYm9vbCBDQ1NpbmdsZVRocmVhZFBy
b3h5Ojpjb21taXRBbmRDb21wb3NpdGUoKQogICAgIGlmIChtX2xheWVyVHJlZUhvc3RJbXBsLT5j
b250ZW50c1RleHR1cmVzV2VyZVB1cmdlZFNpbmNlTGFzdENvbW1pdCgpKQogICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPmV2aWN0QWxsQ29udGVudFRleHR1cmVzKCk7CiAKLSAgICBDQ1RleHR1cmVV
cGRhdGVyIHVwZGF0ZXI7Ci0gICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRl
ciwgbV9sYXllclRyZWVIb3N0SW1wbC0+bWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoKSk7Cisg
ICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUgcXVldWU7CisgICAgbV9sYXllclRyZWVIb3N0LT51cGRh
dGVMYXllcnMocXVldWUsIG1fbGF5ZXJUcmVlSG9zdEltcGwtPm1lbW9yeUFsbG9jYXRpb25MaW1p
dEJ5dGVzKCkpOwogCiAgICAgbV9sYXllclRyZWVIb3N0LT53aWxsQ29tbWl0KCk7Ci0gICAgZG9D
b21taXQodXBkYXRlcik7CisgICAgZG9Db21taXQocXVldWUpOwogICAgIGJvb2wgcmVzdWx0ID0g
ZG9Db21wb3NpdGUoKTsKICAgICBtX2xheWVyVHJlZUhvc3QtPmRpZEJlZ2luRnJhbWUoKTsKICAg
ICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCmluZGV4
IDZkY2UxYzM1ZTg0ZmU3ZDUwMjlhZTZiMTQ3YzBmNzQwNTdhODg5ZjcuLmNiMDRhMzJiMmZhNjMw
OWE0YTA2M2VmZDcyMThkOWYyMzQxOTBiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmgKQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBDQ1Npbmds
ZVRocmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwogCiAgICAgYm9vbCBjb21taXRBbmRDb21w
b3NpdGUoKTsKLSAgICB2b2lkIGRvQ29tbWl0KENDVGV4dHVyZVVwZGF0ZXImKTsKKyAgICB2b2lk
IGRvQ29tbWl0KENDVGV4dHVyZVVwZGF0ZVF1ZXVlJik7CiAgICAgYm9vbCBkb0NvbXBvc2l0ZSgp
OwogICAgIHZvaWQgZGlkU3dhcEZyYW1lKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlci5jcHAKaW5kZXggZmJiMGYzNjg1ODYwYWE1Mzg4NGEyY2E5NDk1
YmU2ZTNmMzZlMDRjOC4uZGRlODk0OTUwNDY5OWQ3ODBiMmUxMDlhOGE4YjQyNDkxZGY5ZjAzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHAKQEAg
LTQ5LDE3ICs0OSwxNyBAQCBzaXplX3QgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6bWF4UGFy
dGlhbFRleHR1cmVVcGRhdGVzKCkKICAgICByZXR1cm4gdGV4dHVyZVVwZGF0ZXNQZXJGcmFtZTsK
IH0KIAotdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhDQ1Jl
c291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwg
VGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlciwgQ0NUZXh0dXJlVXBkYXRlciogdXBkYXRlciwgc2l6
ZV90IGNvdW50KQordm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJl
cyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNv
cGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlciwgQ0NUZXh0dXJlVXBkYXRlUXVldWUqIHF1
ZXVlLCBzaXplX3QgY291bnQpCiB7Ci0gICAgaWYgKHVwZGF0ZXItPmZ1bGxVcGxvYWRTaXplKCkg
fHwgdXBkYXRlci0+cGFydGlhbFVwbG9hZFNpemUoKSkgeworICAgIGlmIChxdWV1ZS0+ZnVsbFVw
bG9hZFNpemUoKSB8fCBxdWV1ZS0+cGFydGlhbFVwbG9hZFNpemUoKSkgewogICAgICAgICBpZiAo
dXBsb2FkZXItPmlzQnVzeSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHVwbG9h
ZGVyLT5iZWdpblVwbG9hZHMoKTsKIAogICAgICAgICBzaXplX3QgZnVsbFVwbG9hZENvdW50ID0g
MDsKLSAgICAgICAgd2hpbGUgKHVwZGF0ZXItPmZ1bGxVcGxvYWRTaXplKCkgJiYgZnVsbFVwbG9h
ZENvdW50IDwgY291bnQpIHsKLSAgICAgICAgICAgIHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKHJl
c291cmNlUHJvdmlkZXIsIHVwZGF0ZXItPnRha2VGaXJzdEZ1bGxVcGxvYWQoKSk7CisgICAgICAg
IHdoaWxlIChxdWV1ZS0+ZnVsbFVwbG9hZFNpemUoKSAmJiBmdWxsVXBsb2FkQ291bnQgPCBjb3Vu
dCkgeworICAgICAgICAgICAgdXBsb2FkZXItPnVwbG9hZFRleHR1cmUocmVzb3VyY2VQcm92aWRl
ciwgcXVldWUtPnRha2VGaXJzdEZ1bGxVcGxvYWQoKSk7CiAgICAgICAgICAgICBmdWxsVXBsb2Fk
Q291bnQrKzsKICAgICAgICAgICAgIGlmICghKGZ1bGxVcGxvYWRDb3VudCAlIHRleHR1cmVVcGxv
YWRGbHVzaFBlcmlvZCkpCiAgICAgICAgICAgICAgICAgcmVzb3VyY2VQcm92aWRlci0+c2hhbGxv
d0ZsdXNoSWZTdXBwb3J0ZWQoKTsKQEAgLTY5LDEyICs2OSwxMiBAQCB2b2lkIENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlciogcmVzb3Vy
Y2VQcm92aQogICAgICAgICBpZiAoZnVsbFVwbG9hZENvdW50ICUgdGV4dHVyZVVwbG9hZEZsdXNo
UGVyaW9kKQogICAgICAgICAgICAgcmVzb3VyY2VQcm92aWRlci0+c2hhbGxvd0ZsdXNoSWZTdXBw
b3J0ZWQoKTsKIAotICAgICAgICBib29sIG1vcmVVcGxvYWRzID0gdXBkYXRlci0+ZnVsbFVwbG9h
ZFNpemUoKTsKKyAgICAgICAgYm9vbCBtb3JlVXBsb2FkcyA9IHF1ZXVlLT5mdWxsVXBsb2FkU2l6
ZSgpOwogCi0gICAgICAgIEFTU0VSVCh1cGRhdGVyLT5wYXJ0aWFsVXBsb2FkU2l6ZSgpIDw9IGNv
dW50KTsKKyAgICAgICAgQVNTRVJUKHF1ZXVlLT5wYXJ0aWFsVXBsb2FkU2l6ZSgpIDw9IGNvdW50
KTsKICAgICAgICAgLy8gV2UgbmVlZCBhbm90aGVyIHVwZGF0ZSBiYXRjaCBpZiB0aGUgbnVtYmVy
IG9mIHVwZGF0ZXMgcmVtYWluaW5nCiAgICAgICAgIC8vIGluIHxjb3VudHwgaXMgZ3JlYXRlciB0
aGFuIHRoZSByZW1haW5pbmcgcGFydGlhbCBlbnRyaWVzLgotICAgICAgICBpZiAoKGNvdW50IC0g
ZnVsbFVwbG9hZENvdW50KSA8IHVwZGF0ZXItPnBhcnRpYWxVcGxvYWRTaXplKCkpCisgICAgICAg
IGlmICgoY291bnQgLSBmdWxsVXBsb2FkQ291bnQpIDwgcXVldWUtPnBhcnRpYWxVcGxvYWRTaXpl
KCkpCiAgICAgICAgICAgICBtb3JlVXBsb2FkcyA9IHRydWU7CiAKICAgICAgICAgaWYgKG1vcmVV
cGxvYWRzKSB7CkBAIC04Myw4ICs4Myw4IEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpCiAgICAg
ICAgIH0KIAogICAgICAgICBzaXplX3QgcGFydGlhbFVwbG9hZENvdW50ID0gMDsKLSAgICAgICAg
d2hpbGUgKHVwZGF0ZXItPnBhcnRpYWxVcGxvYWRTaXplKCkpIHsKLSAgICAgICAgICAgIHVwbG9h
ZGVyLT51cGxvYWRUZXh0dXJlKHJlc291cmNlUHJvdmlkZXIsIHVwZGF0ZXItPnRha2VGaXJzdFBh
cnRpYWxVcGxvYWQoKSk7CisgICAgICAgIHdoaWxlIChxdWV1ZS0+cGFydGlhbFVwbG9hZFNpemUo
KSkgeworICAgICAgICAgICAgdXBsb2FkZXItPnVwbG9hZFRleHR1cmUocmVzb3VyY2VQcm92aWRl
ciwgcXVldWUtPnRha2VGaXJzdFBhcnRpYWxVcGxvYWQoKSk7CiAgICAgICAgICAgICBwYXJ0aWFs
VXBsb2FkQ291bnQrKzsKICAgICAgICAgICAgIGlmICghKHBhcnRpYWxVcGxvYWRDb3VudCAlIHRl
eHR1cmVVcGxvYWRGbHVzaFBlcmlvZCkpCiAgICAgICAgICAgICAgICAgcmVzb3VyY2VQcm92aWRl
ci0+c2hhbGxvd0ZsdXNoSWZTdXBwb3J0ZWQoKTsKQEAgLTk4LDggKzk4LDggQEAgdm9pZCBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIq
IHJlc291cmNlUHJvdmkKICAgICB9CiAKICAgICBzaXplX3QgY29weUNvdW50ID0gMDsKLSAgICB3
aGlsZSAodXBkYXRlci0+Y29weVNpemUoKSkgewotICAgICAgICBjb3BpZXItPmNvcHlUZXh0dXJl
KHVwZGF0ZXItPnRha2VGaXJzdENvcHkoKSk7CisgICAgd2hpbGUgKHF1ZXVlLT5jb3B5U2l6ZSgp
KSB7CisgICAgICAgIGNvcGllci0+Y29weVRleHR1cmUocXVldWUtPnRha2VGaXJzdENvcHkoKSk7
CiAgICAgICAgIGNvcHlDb3VudCsrOwogICAgIH0KIApAQCAtMTEwLDggKzExMCw4IEBAIHZvaWQg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3Zp
ZGVyKiByZXNvdXJjZVByb3ZpCiAgICAgICAgIGNvcGllci0+Zmx1c2goKTsKIH0KIAotQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihQYXNzT3duUHRy
PENDVGV4dHVyZVVwZGF0ZXI+IHVwZGF0ZXIsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQ
cm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVy
KQotICAgIDogbV91cGRhdGVyKHVwZGF0ZXIpCitDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyKFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+
IHF1ZXVlLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3Bp
ZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlcikKKyAgICA6IG1fcXVldWUocXVl
dWUpCiAgICAgLCBtX3Jlc291cmNlUHJvdmlkZXIocmVzb3VyY2VQcm92aWRlcikKICAgICAsIG1f
Y29waWVyKGNvcGllcikKICAgICAsIG1fdXBsb2FkZXIodXBsb2FkZXIpCkBAIC0xMjQsMTUgKzEy
NCwxNSBAQCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp+Q0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcigpCiAKIGJvb2wgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6aGFzTW9yZVVwZGF0ZXMo
KSBjb25zdAogewotICAgIHJldHVybiBtX3VwZGF0ZXItPmhhc01vcmVVcGRhdGVzKCk7CisgICAg
cmV0dXJuIG1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCk7CiB9CiAKIHZvaWQgQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1cmVzKCkKIHsKLSAgICBpZiAoIW1fdXBkYXRl
ci0+aGFzTW9yZVVwZGF0ZXMoKSkKKyAgICBpZiAoIW1fcXVldWUtPmhhc01vcmVVcGRhdGVzKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRl
ciwgbV9jb3BpZXIsIG1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgdXBkYXRlTW9yZVRleHR1
cmVzU2l6ZSgpKTsKKyAgICB1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIsIG1fY29w
aWVyLCBtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCB1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkp
OwogfQogCiBzaXplX3QgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlTW9yZVRleHR1
cmVzU2l6ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyLmgKaW5kZXggODFhMWE3ZTU4YTY0YTlhNjk1ZWYxM2Q0NTU2N2Q2NmQ2NzBkOTc5ZC4uYmQy
YzdiYzgyNzFkYWU4OTg5YmZmMzcwZTMwOTE0MjQyZDZhNmNmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRl
ZiBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyX2gKICNkZWZpbmUgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcl9oCiAKLSNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCisjaW5jbHVkZSAi
Y2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTM4LDEyICszOCwxMiBAQCBjbGFzcyBUZXh0
dXJlVXBsb2FkZXI7CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyPiBjcmVhdGUoUGFz
c093blB0cjxDQ1RleHR1cmVVcGRhdGVyPiB1cGRhdGVyLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJl
c291cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1
cGxvYWRlcikKKyAgICBzdGF0aWMgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
PiBjcmVhdGUoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIENDUmVzb3Vy
Y2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0
dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKHVwZGF0ZXIsIHJlc291cmNlUHJvdmlkZXIsIGNv
cGllciwgdXBsb2FkZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyKHF1ZXVlLCByZXNvdXJjZVByb3ZpZGVyLCBjb3BpZXIsIHVwbG9hZGVy
KSk7CiAgICAgfQogICAgIHN0YXRpYyBzaXplX3QgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCk7
Ci0gICAgc3RhdGljIHZvaWQgdXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4
dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRlciosIENDVGV4dHVyZVVwZGF0ZXIqLCBzaXplX3Qg
Y291bnQpOworICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRl
ciosIFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqLCBDQ1RleHR1cmVVcGRhdGVRdWV1
ZSosIHNpemVfdCBjb3VudCk7CiAKICAgICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyKCk7CiAKQEAgLTU0LDkgKzU0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2l6ZV90IHVw
ZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVyPiwgQ0NSZXNvdXJj
ZVByb3ZpZGVyKiwgVGV4dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRlciopOworICAgIENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4sIEND
UmVzb3VyY2VQcm92aWRlciosIFRleHR1cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqKTsKIAot
ICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVyPiBtX3VwZGF0ZXI7CisgICAgT3duUHRyPENDVGV4
dHVyZVVwZGF0ZVF1ZXVlPiBtX3F1ZXVlOwogICAgIENDUmVzb3VyY2VQcm92aWRlciogbV9yZXNv
dXJjZVByb3ZpZGVyOwogICAgIFRleHR1cmVDb3BpZXIqIG1fY29waWVyOwogICAgIFRleHR1cmVV
cGxvYWRlciogbV91cGxvYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZTlhYjk3ODg0YzQ2YjA0M2M5NWJhZWZjOGEzZTQ0YmEwZTIyMjZj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisKKyNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0NDVGV4dHVyZVVwZGF0ZVF1ZXVlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZSgpCit7
Cit9CisKK0NDVGV4dHVyZVVwZGF0ZVF1ZXVlOjp+Q0NUZXh0dXJlVXBkYXRlUXVldWUoKQorewor
fQorCit2b2lkIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOjphcHBlbmRGdWxsVXBsb2FkKFRleHR1cmVV
cGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQpCit7CisgICAgbV9mdWxsRW50cmllcy5hcHBlbmQo
dXBsb2FkKTsKK30KKwordm9pZCBDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6YXBwZW5kUGFydGlhbFVw
bG9hZChUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgdXBsb2FkKQoreworICAgIG1fcGFydGlh
bEVudHJpZXMuYXBwZW5kKHVwbG9hZCk7Cit9CisKK3ZvaWQgQ0NUZXh0dXJlVXBkYXRlUXVldWU6
OmFwcGVuZENvcHkoVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyBjb3B5KQoreworICAgIG1fY29w
eUVudHJpZXMuYXBwZW5kKGNvcHkpOworfQorCitUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMg
Q0NUZXh0dXJlVXBkYXRlUXVldWU6OnRha2VGaXJzdEZ1bGxVcGxvYWQoKQoreworICAgIHJldHVy
biBtX2Z1bGxFbnRyaWVzLnRha2VGaXJzdCgpOworfQorCitUZXh0dXJlVXBsb2FkZXI6OlBhcmFt
ZXRlcnMgQ0NUZXh0dXJlVXBkYXRlUXVldWU6OnRha2VGaXJzdFBhcnRpYWxVcGxvYWQoKQorewor
ICAgIHJldHVybiBtX3BhcnRpYWxFbnRyaWVzLnRha2VGaXJzdCgpOworfQorCitUZXh0dXJlQ29w
aWVyOjpQYXJhbWV0ZXJzIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOjp0YWtlRmlyc3RDb3B5KCkKK3sK
KyAgICByZXR1cm4gbV9jb3B5RW50cmllcy50YWtlRmlyc3QoKTsKK30KKworYm9vbCBDQ1RleHR1
cmVVcGRhdGVRdWV1ZTo6aGFzTW9yZVVwZGF0ZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX2Z1
bGxFbnRyaWVzLnNpemUoKSB8fCBtX3BhcnRpYWxFbnRyaWVzLnNpemUoKSB8fCBtX2NvcHlFbnRy
aWVzLnNpemUoKTsKK30KKworfQorCisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Ji
NWNiYzFkOWEwNjZmZjAyZjk0YWU0Y2ExNmFiYzE1ZDJlOGNiMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZVF1ZXVlLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0NUZXh0dXJlVXBk
YXRlUXVldWVfaAorI2RlZmluZSBDQ1RleHR1cmVVcGRhdGVRdWV1ZV9oCisKKyNpbmNsdWRlICJU
ZXh0dXJlQ29waWVyLmgiCisjaW5jbHVkZSAiVGV4dHVyZVVwbG9hZGVyLmgiCisjaW5jbHVkZSA8
d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlUXVldWUgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKENDVGV4dHVyZVVwZGF0ZVF1ZXVlKTsKK3B1YmxpYzoKKyAgICBDQ1RleHR1cmVV
cGRhdGVRdWV1ZSgpOworICAgIHZpcnR1YWwgfkNDVGV4dHVyZVVwZGF0ZVF1ZXVlKCk7CisKKyAg
ICB2b2lkIGFwcGVuZEZ1bGxVcGxvYWQoVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzKTsKKyAg
ICB2b2lkIGFwcGVuZFBhcnRpYWxVcGxvYWQoVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzKTsK
KyAgICB2b2lkIGFwcGVuZENvcHkoVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyk7CisKKyAgICBU
ZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgdGFrZUZpcnN0RnVsbFVwbG9hZCgpOworICAgIFRl
eHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB0YWtlRmlyc3RQYXJ0aWFsVXBsb2FkKCk7CisgICAg
VGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyB0YWtlRmlyc3RDb3B5KCk7CisKKyAgICBzaXplX3Qg
ZnVsbFVwbG9hZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxFbnRyaWVzLnNpemUoKTsgfQor
ICAgIHNpemVfdCBwYXJ0aWFsVXBsb2FkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFydGlhbEVu
dHJpZXMuc2l6ZSgpOyB9CisgICAgc2l6ZV90IGNvcHlTaXplKCkgY29uc3QgeyByZXR1cm4gbV9j
b3B5RW50cmllcy5zaXplKCk7IH0KKworICAgIGJvb2wgaGFzTW9yZVVwZGF0ZXMoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICBEZXF1ZTxUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnM+IG1fZnVs
bEVudHJpZXM7CisgICAgRGVxdWU8VGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzPiBtX3BhcnRp
YWxFbnRyaWVzOworICAgIERlcXVlPFRleHR1cmVDb3BpZXI6OlBhcmFtZXRlcnM+IG1fY29weUVu
dHJpZXM7Cit9OworCit9CisKKyNlbmRpZiAvLyBDQ1RleHR1cmVVcGRhdGVRdWV1ZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Rl
eHR1cmVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjNTIwM2Q3ZmNlMjZjNjk3MDI5ODNiY2ZkNTA3MGEzNWU1NjRiZjI0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLQotI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DQ1RleHR1cmVVcGRhdGVyOjpDQ1RleHR1cmVV
cGRhdGVyKCkKLXsKLX0KLQotQ0NUZXh0dXJlVXBkYXRlcjo6fkNDVGV4dHVyZVVwZGF0ZXIoKQot
ewotfQotCi12b2lkIENDVGV4dHVyZVVwZGF0ZXI6OmFwcGVuZEZ1bGxVcGxvYWQoVGV4dHVyZVVw
bG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCkKLXsKLSAgICBtX2Z1bGxFbnRyaWVzLmFwcGVuZCh1
cGxvYWQpOwotfQotCi12b2lkIENDVGV4dHVyZVVwZGF0ZXI6OmFwcGVuZFBhcnRpYWxVcGxvYWQo
VGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCkKLXsKLSAgICBtX3BhcnRpYWxFbnRy
aWVzLmFwcGVuZCh1cGxvYWQpOwotfQotCi12b2lkIENDVGV4dHVyZVVwZGF0ZXI6OmFwcGVuZENv
cHkoVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyBjb3B5KQotewotICAgIG1fY29weUVudHJpZXMu
YXBwZW5kKGNvcHkpOwotfQotCi1UZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgQ0NUZXh0dXJl
VXBkYXRlcjo6dGFrZUZpcnN0RnVsbFVwbG9hZCgpCi17Ci0gICAgcmV0dXJuIG1fZnVsbEVudHJp
ZXMudGFrZUZpcnN0KCk7Ci19Ci0KLVRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyBDQ1RleHR1
cmVVcGRhdGVyOjp0YWtlRmlyc3RQYXJ0aWFsVXBsb2FkKCkKLXsKLSAgICByZXR1cm4gbV9wYXJ0
aWFsRW50cmllcy50YWtlRmlyc3QoKTsKLX0KLQotVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyBD
Q1RleHR1cmVVcGRhdGVyOjp0YWtlRmlyc3RDb3B5KCkKLXsKLSAgICByZXR1cm4gbV9jb3B5RW50
cmllcy50YWtlRmlyc3QoKTsKLX0KLQotYm9vbCBDQ1RleHR1cmVVcGRhdGVyOjpoYXNNb3JlVXBk
YXRlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZnVsbEVudHJpZXMuc2l6ZSgpIHx8IG1fcGFy
dGlhbEVudHJpZXMuc2l6ZSgpIHx8IG1fY29weUVudHJpZXMuc2l6ZSgpOwotfQotCi19Ci0KLSNl
bmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVV
cGRhdGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyMjVmN2NhODY0MzJkYzBj
YTI4YTllNmQ3OTdkNjM0ZDZhNTcyNWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUZXh0dXJlVXBkYXRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgQ0NUZXh0dXJlVXBkYXRlcl9oCi0jZGVmaW5lIENDVGV4dHVyZVVwZGF0ZXJf
aAotCi0jaW5jbHVkZSAiVGV4dHVyZUNvcGllci5oIgotI2luY2x1ZGUgIlRleHR1cmVVcGxvYWRl
ci5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENDVGV4dHVyZVVwZGF0ZXIgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKENDVGV4dHVyZVVwZGF0ZXIpOwotcHVibGljOgotICAgIEND
VGV4dHVyZVVwZGF0ZXIoKTsKLSAgICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVyKCk7Ci0KLSAg
ICB2b2lkIGFwcGVuZEZ1bGxVcGxvYWQoVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzKTsKLSAg
ICB2b2lkIGFwcGVuZFBhcnRpYWxVcGxvYWQoVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzKTsK
LSAgICB2b2lkIGFwcGVuZENvcHkoVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyk7Ci0KLSAgICBU
ZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgdGFrZUZpcnN0RnVsbFVwbG9hZCgpOwotICAgIFRl
eHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB0YWtlRmlyc3RQYXJ0aWFsVXBsb2FkKCk7Ci0gICAg
VGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyB0YWtlRmlyc3RDb3B5KCk7Ci0KLSAgICBzaXplX3Qg
ZnVsbFVwbG9hZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxFbnRyaWVzLnNpemUoKTsgfQot
ICAgIHNpemVfdCBwYXJ0aWFsVXBsb2FkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFydGlhbEVu
dHJpZXMuc2l6ZSgpOyB9Ci0gICAgc2l6ZV90IGNvcHlTaXplKCkgY29uc3QgeyByZXR1cm4gbV9j
b3B5RW50cmllcy5zaXplKCk7IH0KLQotICAgIGJvb2wgaGFzTW9yZVVwZGF0ZXMoKSBjb25zdDsK
LQotcHJpdmF0ZToKLSAgICBEZXF1ZTxUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnM+IG1fZnVs
bEVudHJpZXM7Ci0gICAgRGVxdWU8VGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzPiBtX3BhcnRp
YWxFbnRyaWVzOwotICAgIERlcXVlPFRleHR1cmVDb3BpZXI6OlBhcmFtZXRlcnM+IG1fY29weUVu
dHJpZXM7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBDQ1RleHR1cmVVcGRhdGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHAKaW5kZXggNTFiN2I2OWU3MmMxZDJmZWZhMGQwN2QyM2EyMmY2ZmI4
NzMwZTRkNC4uODE4NjM5NWE4ZTY2OTM0YTIzZGQ0ZWQwOWM5YjBhZGQ2Y2Y5NWZjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTUxNSw4ICs1MTUsOCBAQCB2b2lkIENDVGhyZWFk
UHJveHk6OmJlZ2luRnJhbWUoKQogICAgIGlmIChyZXF1ZXN0LT5jb250ZW50c1RleHR1cmVzV2Vy
ZURlbGV0ZWQpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZXZpY3RBbGxDb250ZW50VGV4dHVy
ZXMoKTsKIAotICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVyPiB1cGRhdGVyID0gYWRvcHRQdHIo
bmV3IENDVGV4dHVyZVVwZGF0ZXIpOwotICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJz
KCoodXBkYXRlci5nZXQoKSksIHJlcXVlc3QtPm1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKTsK
KyAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlID0gYWRvcHRQdHIobmV3IEND
VGV4dHVyZVVwZGF0ZVF1ZXVlKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycygq
KHF1ZXVlLmdldCgpKSwgcmVxdWVzdC0+bWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMpOwogCiAg
ICAgLy8gT25jZSBzaW5nbGUgYnVmZmVyZWQgbGF5ZXJzIGFyZSBjb21taXR0ZWQsIHRoZXkgY2Fu
bm90IGJlIG1vZGlmaWVkIHVudGlsCiAgICAgLy8gdGhleSBhcmUgZHJhd24gYnkgdGhlIGltcGwg
dGhyZWFkLgpAQCAtNTM4LDcgKzUzOCw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZSgpCiAgICAgICAgIERlYnVnU2NvcGVkU2V0TWFpblRocmVhZEJsb2NrZWQgbWFpblRocmVhZEJs
b2NrZWQ7CiAKICAgICAgICAgQ0NDb21wbGV0aW9uRXZlbnQgY29tcGxldGlvbjsKLSAgICAgICAg
Q0NQcm94eTo6aW1wbFRocmVhZCgpLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywg
JkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZCwgJmNvbXBsZXRp
b24sIHVwZGF0ZXIucmVsZWFzZSgpKSk7CisgICAgICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+
cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZy
YW1lQ29tcGxldGVPbkltcGxUaHJlYWQsICZjb21wbGV0aW9uLCBxdWV1ZS5yZWxlYXNlKCkpKTsK
ICAgICAgICAgY29tcGxldGlvbi53YWl0KCk7CiAgICAgfQogCkBAIC01NDYsNyArNTQ2LDcgQEAg
dm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkKICAgICBtX2xheWVyVHJlZUhvc3QtPmRp
ZEJlZ2luRnJhbWUoKTsKIH0KIAotdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxl
dGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24sIFBhc3NPd25QdHI8
Q0NUZXh0dXJlVXBkYXRlcj4gdXBkYXRlcikKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZUNvbXBsZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uLCBQYXNz
T3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSkKIHsKICAgICBUUkFDRV9FVkVOVDAo
ImNjIiwgIkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZCIpOwog
ICAgIEFTU0VSVCghbV9jb21taXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQpOwpAQCAtNTU5
LDcgKzU1OSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBs
VGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29udHJvbGxlck9uSW1wbFRocmVhZCA9
IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZSh1cGRhdGVyLCBtX2xheWVyVHJlZUhv
c3RJbXBsLT5yZXNvdXJjZVByb3ZpZGVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVu
ZGVyZXIoKS0+dGV4dHVyZUNvcGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRl
cmVyKCktPnRleHR1cmVVcGxvYWRlcigpKTsKKyAgICBtX2N1cnJlbnRUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlck9uSW1wbFRocmVhZCA9IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OmNyZWF0ZShx
dWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVyVHJl
ZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRyZWVI
b3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSk7CiAgICAgbV9jb21t
aXRDb21wbGV0aW9uRXZlbnRPbkltcGxUaHJlYWQgPSBjb21wbGV0aW9uOwogCiAgICAgbV9zY2hl
ZHVsZXJPbkltcGxUaHJlYWQtPmJlZ2luRnJhbWVDb21wbGV0ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQ
cm94eS5oCmluZGV4IGYzMjEyZTY1NmMyMzYzNTUyM2QyYjU5ODlkMGFmYzAzNTU5MTRjNjIuLmU1
OTEyZTIzM2M1ZjRlNTgyMGQ0MjkyYzQwYjk0NmNjYTBmMmMyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmgKQEAgLTM4LDggKzM4LDggQEAgY2xhc3MgQ0NJbnB1dEhhbmRsZXI7CiBjbGFzcyBD
Q0xheWVyVHJlZUhvc3Q7CiBjbGFzcyBDQ1NjaGVkdWxlcjsKIGNsYXNzIENDU2NvcGVkVGhyZWFk
UHJveHk7CitjbGFzcyBDQ1RleHR1cmVVcGRhdGVRdWV1ZTsKIGNsYXNzIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI7Ci1jbGFzcyBDQ1RleHR1cmVVcGRhdGVyOwogY2xhc3MgQ0NUaHJlYWQ7CiBj
bGFzcyBDQ1RocmVhZFByb3h5Q29udGV4dFJlY3JlYXRpb25UaW1lcjsKIApAQCAtMTI2LDcgKzEy
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIEludFJlY3QgcmVjdDsKICAgICB9OwogICAgIHZvaWQg
Zm9yY2VCZWdpbkZyYW1lT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7Ci0gICAgdm9p
ZCBiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqLCBQYXNz
T3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+KTsKKyAgICB2b2lkIGJlZ2luRnJhbWVDb21wbGV0ZU9u
SW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRl
UXVldWU+KTsKICAgICB2b2lkIGJlZ2luRnJhbWVBYm9ydGVkT25JbXBsVGhyZWFkKCk7CiAgICAg
dm9pZCByZXF1ZXN0UmVhZGJhY2tPbkltcGxUaHJlYWQoUmVhZGJhY2tSZXF1ZXN0Kik7CiAgICAg
dm9pZCByZXF1ZXN0U3RhcnRQYWdlU2NhbGVBbmltYXRpb25PbkltcGxUaHJlYWQoSW50U2l6ZSB0
YXJnZXRQb3NpdGlvbiwgYm9vbCB1c2VBbmNob3IsIGZsb2F0IHNjYWxlLCBkb3VibGUgZHVyYXRp
b25TZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXIuY3BwCmluZGV4IDY4NjQ5YjM3MGQyZGJiZWRiODg3YTE0MmUwNDI3YjJk
ZWU1MDAxZGUuLmJiZDFmOGRkYmY2ZThlNDE4MDFhOTRlMzY3M2FkYWFlYzg5MjJjNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllci5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxU
ZXh0dXJlTGF5ZXIuaD4KIAogI2luY2x1ZGUgIlRleHR1cmVMYXllckNocm9taXVtLmgiCi0jaW5j
bHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0
ZVF1ZXVlLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkZsb2F0UmVjdC5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJTaXplLmg+CkBAIC0zOCwxOSArMzgsMTkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFdlYlRleHR1cmVVcGRhdGVySW1wbCA6IHB1YmxpYyBXZWJUZXh0dXJlVXBkYXRlciB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgV2ViVGV4dHVyZVVwZGF0ZXJJbXBsKENDVGV4dHVyZVVwZGF0ZXIm
IHVwZGF0ZXIpCi0gICAgICAgIDogbV91cGRhdGVyKHVwZGF0ZXIpCisgICAgZXhwbGljaXQgV2Vi
VGV4dHVyZVVwZGF0ZXJJbXBsKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSkKKyAgICAgICAg
OiBtX3F1ZXVlKHF1ZXVlKQogICAgIHsKICAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5k
Q29weSh1bnNpZ25lZCBzb3VyY2VUZXh0dXJlLCB1bnNpZ25lZCBkZXN0aW5hdGlvblRleHR1cmUs
IFdlYlNpemUgc2l6ZSkgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIFRleHR1cmVDb3BpZXI6OlBh
cmFtZXRlcnMgY29weSA9IHsgc291cmNlVGV4dHVyZSwgZGVzdGluYXRpb25UZXh0dXJlLCBzaXpl
IH07Ci0gICAgICAgIG1fdXBkYXRlci5hcHBlbmRDb3B5KGNvcHkpOworICAgICAgICBtX3F1ZXVl
LmFwcGVuZENvcHkoY29weSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIENDVGV4dHVyZVVwZGF0
ZXImIG1fdXBkYXRlcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgbV9xdWV1ZTsKIH07CiAK
IGNsYXNzIFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbCA6IHB1YmxpYyBUZXh0dXJlTGF5ZXJD
aHJvbWl1bUNsaWVudCwgcHVibGljIFRleHR1cmVMYXllckNocm9taXVtIHsKQEAgLTYxLDkgKzYx
LDkgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHByZXBh
cmVUZXh0dXJlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpIE9WRVJSSURFCisgICAgdmlydHVh
bCB1bnNpZ25lZCBwcmVwYXJlVGV4dHVyZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUpIE9W
RVJSSURFCiAgICAgewotICAgICAgICBXZWJUZXh0dXJlVXBkYXRlckltcGwgdXBkYXRlckltcGwo
dXBkYXRlcik7CisgICAgICAgIFdlYlRleHR1cmVVcGRhdGVySW1wbCB1cGRhdGVySW1wbChxdWV1
ZSk7CiAgICAgICAgIHJldHVybiBtX2NsaWVudC0+cHJlcGFyZVRleHR1cmUodXBkYXRlckltcGwp
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0VGVzdC5jcHAKaW5kZXggZTViYTYxYTY3NDVkYzRjYjc0NDM4Yzc1ZmQ2ZWQ3MGIy
MjY4YWRiOS4uZDY3MWM5MzhmNDg5YTczZjI2OTM0MmZlMmMzYTMzMjQzYjMyMDNlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiY2MvQ0NHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NTZXR0
aW5ncy5oIgotI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlICJjYy9D
Q1RleHR1cmVVcGRhdGVRdWV1ZS5oIgogI2luY2x1ZGUgImNjL0NDVGltaW5nRnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJUaHJlYWQuaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5o
PgpAQCAtMTE2MCw5ICsxMTYwLDkgQEAgcHVibGljOgogICAgIGludCBwYWludENvbnRlbnRzQ291
bnQoKSB7IHJldHVybiBtX3BhaW50Q29udGVudHNDb3VudDsgfQogICAgIHZvaWQgcmVzZXRQYWlu
dENvbnRlbnRzQ291bnQoKSB7IG1fcGFpbnRDb250ZW50c0NvdW50ID0gMDsgfQogCi0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpIE9WRVJSSURF
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUsIGNv
bnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0
cykgT1ZFUlJJREUKICAgICB7Ci0gICAgICAgIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGUo
dXBkYXRlciwgb2NjbHVzaW9uLCBzdGF0cyk7CisgICAgICAgIENvbnRlbnRMYXllckNocm9taXVt
Ojp1cGRhdGUocXVldWUsIG9jY2x1c2lvbiwgc3RhdHMpOwogICAgICAgICBtX3BhaW50Q29udGVu
dHNDb3VudCsrOwogICAgIH0KIApAQCAtMTU3Myw3ICsxNTczLDcgQEAgY2xhc3MgVGVzdExheWVy
Q2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJDaHJvbWl1bSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8VGVzdExheWVyQ2hyb21pdW0+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBUZXN0TGF5ZXJDaHJvbWl1bSgpKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1Rl
eHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVu
ZGVyaW5nU3RhdHMmKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJl
VXBkYXRlUXVldWUmLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5k
ZXJpbmdTdGF0cyYpIE9WRVJSSURFCiAgICAgewogICAgICAgICAvLyBHYWluIGFjY2VzcyB0byBp
bnRlcm5hbHMgb2YgdGhlIENDT2NjbHVzaW9uVHJhY2tlci4KICAgICAgICAgY29uc3QgVGVzdEND
T2NjbHVzaW9uVHJhY2tlciogdGVzdE9jY2x1c2lvbiA9IHN0YXRpY19jYXN0PGNvbnN0IFRlc3RD
Q09jY2x1c2lvblRyYWNrZXIqPihvY2NsdXNpb24pOwpAQCAtMTYyOCw4ICsxNjI4LDggQEAgcHVi
bGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwog
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5k
cygpLCByb290TGF5ZXItPmJvdW5kcygpKTsKICAgICAgICAgQVNTRVJUX1RSVUUobV9sYXllclRy
ZWVIb3N0LT5pbml0aWFsaXplTGF5ZXJSZW5kZXJlcklmTmVlZGVkKCkpOwotICAgICAgICBDQ1Rl
eHR1cmVVcGRhdGVyIHVwZGF0ZXI7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5
ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAg
ICBDQ1RleHR1cmVVcGRhdGVRdWV1ZSBxdWV1ZTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT51
cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwog
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKICAgICAgICAgRVhQ
RUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNwYWNlKCku
Ym91bmRzKCkpOwpAQCAtMTY0Niw3ICsxNjQ2LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCksIHJvb3RMYXllci0+Ym91
bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1cGRhdGVyLCBz
dGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgbV9sYXllclRyZWVI
b3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKICAgICAg
ICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNjcmVlblNw
YWNlKCkuYm91bmRzKCkpOwpAQCAtMTY2NCw3ICsxNjY0LDcgQEAgcHVibGljOgogCiAgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCksIHJvb3RMYXll
ci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1cGRh
dGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgbV9sYXll
clRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90
Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAK
ICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRlZFNj
cmVlblNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTY4NCw3ICsxNjg0LDcgQEAgcHVibGljOgogCiAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCksIHJv
b3RMYXllci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVy
cyh1cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAg
bV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8
c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRl
KCk7CiAKICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2Ns
dWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTcwNiw3ICsxNzA2LDcgQEAgcHVibGlj
OgogCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRz
KCksIHJvb3RMYXllci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0
ZUxheWVycyh1cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENv
bXBsZXRlKCk7CiAKICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxk
LT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTcyOCw3ICsxNzI4LDcgQEAg
cHVibGljOgogCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXll
cik7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+
Ym91bmRzKCksIHJvb3RMYXllci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVycyh1cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgp
KTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNv
bW1pdENvbXBsZXRlKCk7CiAKICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGls
ZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0xNzUxLDcgKzE3NTEsNyBA
QCBwdWJsaWM6CiAKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExh
eWVyKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVy
LT5ib3VuZHMoKSwgcm9vdExheWVyLT5ib3VuZHMoKSk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpu
dW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdy
YW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0xNzc0LDcgKzE3
NzQsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIo
cm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9v
dExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5ib3VuZHMoKSk7Ci0gICAgICAgIG1fbGF5ZXJU
cmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90
Pjo6bWF4KCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwg
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0
KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKQEAgLTE4MzYsOCAr
MTgzNiw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIo
cm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9v
dExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5ib3VuZHMoKSk7CiAgICAgICAgIEFTU0VSVF9U
UlVFKG1fbGF5ZXJUcmVlSG9zdC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXJJZk5lZWRlZCgpKTsK
LSAgICAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwotICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnVwZGF0ZUxheWVycyh1cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1h
eCgpKTsKKyAgICAgICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUgcXVldWU7CisgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwog
CiAgICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTg2NCw3ICsxODY0LDcgQEAgcHVibGljOgogCiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCksIHJvb3RM
YXllci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1
cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgbV9s
YXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6
ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7
CiAKICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2Ny
ZWVuU3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0xOTI1LDggKzE5MjUsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKGxheWVyc1swXS5nZXQoKSk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKGxheWVyc1swXS0+Ym91bmRzKCks
IGxheWVyc1swXS0+Ym91bmRzKCkpOwogICAgICAgICBBU1NFUlRfVFJVRShtX2xheWVyVHJlZUhv
c3QtPmluaXRpYWxpemVMYXllclJlbmRlcmVySWZOZWVkZWQoKSk7Ci0gICAgICAgIENDVGV4dHVy
ZVVwZGF0ZXIgdXBkYXRlcjsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMo
dXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIEND
VGV4dHVyZVVwZGF0ZVF1ZXVlIHF1ZXVlOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0
ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bVN1cmZhY2VzLTE7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0
LmNwcAppbmRleCBmOWJjOTlmOWM4ZDc3M2YwOTVkNjU1M2FkNTg3ZjBmZDQ2NGI4ZGM2Li44ZTlh
ODgxMmJmNmVhZDFhM2RiNGY2ZmVlYjcxZDQyYmQ0YWFjYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXJUZXN0LmNwcApAQCAtOTYsNyArOTYsNyBAQCBwdWJsaWM6CiBjbGFzcyBDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKIHB1YmxpYzoKICAgICBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyVGVzdCgpCi0gICAgOiBtX3VwZGF0ZXIoYWRvcHRQdHIobmV3IENDVGV4
dHVyZVVwZGF0ZXIpKQorICAgIDogbV9xdWV1ZShhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBkYXRl
UXVldWUpKQogICAgICwgbV91cGxvYWRlcih0aGlzKQogICAgICwgbV9mdWxsVXBsb2FkQ291bnRF
eHBlY3RlZCgwKQogICAgICwgbV9wYXJ0aWFsQ291bnRFeHBlY3RlZCgwKQpAQCAtMTg1LDcgKzE4
NSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgV2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKICAg
ICB9CiAKLSAgICB2b2lkIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGludCBjb3VudCkKKyAg
ICB2b2lkIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZShpbnQgY291bnQpCiAgICAgewog
ICAgICAgICBtX2Z1bGxVcGxvYWRDb3VudEV4cGVjdGVkICs9IGNvdW50OwogICAgICAgICBtX3Rv
dGFsVXBsb2FkQ291bnRFeHBlY3RlZCArPSBjb3VudDsKQEAgLTE5MywxMCArMTkzLDEwIEBAIHBy
b3RlY3RlZDoKICAgICAgICAgY29uc3QgSW50UmVjdCByZWN0KDAsIDAsIDMwMCwgMTUwKTsKICAg
ICAgICAgY29uc3QgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgJm1fdGV4
dHVyZSwgcmVjdCwgcmVjdCB9OwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBp
KyspCi0gICAgICAgICAgICBtX3VwZGF0ZXItPmFwcGVuZEZ1bGxVcGxvYWQodXBsb2FkKTsKKyAg
ICAgICAgICAgIG1fcXVldWUtPmFwcGVuZEZ1bGxVcGxvYWQodXBsb2FkKTsKICAgICB9CiAKLSAg
ICB2b2lkIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKGludCBjb3VudCkKKyAgICB2b2lk
IGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZShpbnQgY291bnQpCiAgICAgewogICAg
ICAgICBtX3BhcnRpYWxDb3VudEV4cGVjdGVkICs9IGNvdW50OwogICAgICAgICBtX3RvdGFsVXBs
b2FkQ291bnRFeHBlY3RlZCArPSBjb3VudDsKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIGNvbnN0IEludFJlY3QgcmVjdCgwLCAwLCAxMDAsIDEwMCk7CiAgICAgICAgIGNv
bnN0IFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQgPSB7ICZtX3RleHR1cmUsIHJl
Y3QsIHJlY3QgfTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotICAg
ICAgICAgICAgbV91cGRhdGVyLT5hcHBlbmRQYXJ0aWFsVXBsb2FkKHVwbG9hZCk7CisgICAgICAg
ICAgICBtX3F1ZXVlLT5hcHBlbmRQYXJ0aWFsVXBsb2FkKHVwbG9hZCk7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0ZShpbnQgY291bnQpCkBAIC0yMTYsNyArMjE2
LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIENsYXNzZXMgcmVxdWlyZWQgdG8gaW50ZXJhY3QgYW5k
IHRlc3QgdGhlIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIKICAgICBPd25QdHI8Q0NHcmFwaGlj
c0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBPd25QdHI8Q0NSZXNvdXJjZVByb3ZpZGVyPiBtX3Jl
c291cmNlUHJvdmlkZXI7Ci0gICAgT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+IG1fdXBkYXRlcjsK
KyAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IG1fcXVldWU7CiAgICAgVGV4dHVyZUZv
clVwbG9hZFRlc3QgbV90ZXh0dXJlOwogICAgIEZha2VUZXh0dXJlQ29waWVyIG1fY29waWVyOwog
ICAgIFRleHR1cmVVcGxvYWRlckZvclVwbG9hZFRlc3QgbV91cGxvYWRlcjsKQEAgLTI2Nyw5ICsy
NjcsOSBAQCB2b2lkIFRleHR1cmVVcGxvYWRlckZvclVwbG9hZFRlc3Q6OnVwbG9hZFRleHR1cmUo
V2ViQ29yZTo6Q0NSZXNvdXJjZVByb3ZpZGVyKiwgUAogLy8gWkVSTyBVUExPQURTIFRFU1RTCiBU
RVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFplcm9VcGxvYWRzKQogewotICAg
IGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKDApOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRz
VG9VcGRhdGVyKDApOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1
cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91
cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgYXBwZW5kRnVs
bFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDApOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRh
dGVRdWV1ZSgwKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJl
cyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVl
dWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgw
LCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDAsIG1fbnVtRW5kVXBsb2Fkcyk7
CkBAIC0yODEsMTAgKzI4MSwxMCBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRl
c3QsIFplcm9VcGxvYWRzKQogLy8gT05FIFVQTE9BRCBURVNUUwogVEVTVF9GKENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXJUZXN0LCBPbmVGdWxsVXBsb2FkKQogewotICAgIGFwcGVuZEZ1bGxVcGxv
YWRzVG9VcGRhdGVyKDEpOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKDApOwor
ICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgxKTsKKyAgICBhcHBlbmRQYXJ0aWFs
VXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGlt
cGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMo
bV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0
ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZt
X2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4
cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQ
RUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC0yOTQsMTAgKzI5NCwxMCBAQCBURVNUX0Yo
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE9uZUZ1bGxVcGxvYWQpCiAKIFRFU1RfRihD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgT25lUGFydGlhbFVwbG9hZCkKIHsKLSAgICBh
cHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcigwKTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1Rv
VXBkYXRlcigxKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisgICAg
YXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDEpOwogICAgIERlYnVnU2NvcGVkU2V0
SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVw
ZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxv
YWRlciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3Zp
ZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFs
VXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9h
ZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtMzA3LDEwICszMDcs
MTAgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBPbmVQYXJ0aWFsVXBs
b2FkKQogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE9uZUZ1bGxPbmVQ
YXJ0aWFsVXBsb2FkKQogewotICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKDEpOwotICAg
IGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKDEpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRz
VG9VcGRhdGVRdWV1ZSgxKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUo
MSk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdl
dCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxv
YWRDb3VudEV4cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVU
ZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIs
IG1fcXVldWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIC8vIFdl
IGV4cGVjdCB0aGUgZnVsbCB1cGxvYWRzIHRvIGJlIGZvbGxvd2VkIGJ5IGEgZmx1c2gKICAgICAv
LyBiZWZvcmUgdGhlIHBhcnRpYWwgdXBsb2FkcyBiZWdpbi4KQEAgLTMzMSwxMCArMzMxLDEwIEBA
IGNvbnN0IGludCBwYXJ0aWFsTm9SZW1haW5kZXJDb3VudCA9IHBhcnRpYWxVcGxvYWRGbHVzaE11
bHRpcGxlciAqIGtGbHVzaFBlcmlvZFBhCiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyVGVzdCwgTWFueUZ1bGxVcGxvYWRzTm9SZW1haW5kZXIpCiB7Ci0gICAgYXBwZW5kRnVsbFVw
bG9hZHNUb1VwZGF0ZXIoZnVsbE5vUmVtYWluZGVyQ291bnQpOwotICAgIGFwcGVuZFBhcnRpYWxV
cGxvYWRzVG9VcGRhdGVyKDApOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZShm
dWxsTm9SZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1
ZXVlKDApOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRl
ci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFs
VXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBk
YXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9h
ZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBF
WFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVu
ZFVwbG9hZHMpOwpAQCAtMzQ0LDEwICszNDQsMTAgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJUZXN0LCBNYW55RnVsbFVwbG9hZHNOb1JlbWFpbmRlcikKIAogVEVTVF9GKENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55UGFydGlhbFVwbG9hZHNOb1JlbWFpbmRlcikK
IHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcigwKTsKLSAgICBhcHBlbmRQYXJ0aWFs
VXBsb2Fkc1RvVXBkYXRlcihwYXJ0aWFsTm9SZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kRnVs
bFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDApOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRh
dGVRdWV1ZShwYXJ0aWFsTm9SZW1haW5kZXJDb3VudCk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBs
VGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRl
VGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVy
LCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKKyAgICBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIu
Z2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIG1fdG90YWxVcGxv
YWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fkcyk7
CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC0zNTcsMTAgKzM1NywxMCBA
QCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE1hbnlQYXJ0aWFsVXBsb2Fk
c05vUmVtYWluZGVyKQogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE1h
bnlGdWxsTWFueVBhcnRpYWxVcGxvYWRzTm9SZW1haW5kZXIpCiB7Ci0gICAgYXBwZW5kRnVsbFVw
bG9hZHNUb1VwZGF0ZXIoZnVsbE5vUmVtYWluZGVyQ291bnQpOwotICAgIGFwcGVuZFBhcnRpYWxV
cGxvYWRzVG9VcGRhdGVyKHBhcnRpYWxOb1JlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRGdWxs
VXBsb2Fkc1RvVXBkYXRlUXVldWUoZnVsbE5vUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZFBh
cnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZShwYXJ0aWFsTm9SZW1haW5kZXJDb3VudCk7CiAgICAg
RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9j
b3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4
cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyht
X3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUu
Z2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgxLCBt
X251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBA
IC0zODAsMTAgKzM4MCwxMCBAQCBjb25zdCBpbnQgcGFydGlhbE1heFJlbWFpbmRlckNvdW50ID0g
cGFydGlhbE5vUmVtYWluZGVyQ291bnQgLSAxOwogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlclRlc3QsIE1hbnlGdWxsQW5kUGFydGlhbE1pblJlbWFpbmRlcikKIHsKLSAgICBhcHBl
bmRGdWxsVXBsb2Fkc1RvVXBkYXRlcihmdWxsTWluUmVtYWluZGVyQ291bnQpOwotICAgIGFwcGVu
ZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKHBhcnRpYWxNaW5SZW1haW5kZXJDb3VudCk7CisgICAg
YXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGZ1bGxNaW5SZW1haW5kZXJDb3VudCk7Cisg
ICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKHBhcnRpYWxNaW5SZW1haW5kZXJD
b3VudCk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVy
LmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxV
cGxvYWRDb3VudEV4cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRh
dGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2Fk
ZXIsIG1fcXVldWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVY
UEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5k
VXBsb2Fkcyk7CkBAIC0zOTMsMTAgKzM5MywxMCBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlclRlc3QsIE1hbnlGdWxsQW5kUGFydGlhbE1pblJlbWFpbmRlcikKIAogVEVTVF9GKEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55RnVsbEFuZFBhcnRpYWxVcGxvYWRzTWF4
UmVtYWluZGVyKQogewotICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGZ1bGxNYXhSZW1h
aW5kZXJDb3VudCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIocGFydGlhbE1h
eFJlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoZnVs
bE1heFJlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVl
dWUocGFydGlhbE1heFJlbWFpbmRlckNvdW50KTsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJl
YWQgaW1wbFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0
dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1f
dXBkYXRlci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAgIENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQo
KSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90b3RhbFVwbG9hZENv
dW50RXhwZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAg
ICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTQwNiwxMCArNDA2LDEwIEBAIFRF
U1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgTWFueUZ1bGxBbmRQYXJ0aWFsVXBs
b2Fkc01heFJlbWFpbmRlcikKIAogVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0
LCBNYW55RnVsbE1pblJlbWFpbmRlck1hbnlQYXJ0aWFsTWF4UmVtYWluZGVyKQogewotICAgIGFw
cGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGZ1bGxNaW5SZW1haW5kZXJDb3VudCk7Ci0gICAgYXBw
ZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIocGFydGlhbE1heFJlbWFpbmRlckNvdW50KTsKKyAg
ICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoZnVsbE1pblJlbWFpbmRlckNvdW50KTsK
KyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUocGFydGlhbE1heFJlbWFpbmRl
ckNvdW50KTsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlk
ZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90b3Rh
bFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVw
ZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxv
YWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAg
RVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1F
bmRVcGxvYWRzKTsKQEAgLTQxOSwxMCArNDE5LDEwIEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyVGVzdCwgTWFueUZ1bGxNaW5SZW1haW5kZXJNYW55UGFydGlhbE1heFJlbWFpbmRl
CiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgTWFueUZ1bGxNYXhSZW1h
aW5kZXJNYW55UGFydGlhbE1pblJlbWFpbmRlcikKIHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1Rv
VXBkYXRlcihmdWxsTWF4UmVtYWluZGVyQ291bnQpOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRz
VG9VcGRhdGVyKHBhcnRpYWxNaW5SZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kRnVsbFVwbG9h
ZHNUb1VwZGF0ZVF1ZXVlKGZ1bGxNYXhSZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kUGFydGlh
bFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKHBhcnRpYWxNaW5SZW1haW5kZXJDb3VudCk7CiAgICAgRGVi
dWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3Bp
ZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVj
dGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jl
c291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0
KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251
bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC00
NTAsMTIgKzQ1MCwxMiBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFRy
aXBsZVVwZGF0ZUZpbmFsVXBkYXRlRnVsbEFuZFBhcnRpYWwpCiAgICAgaW50IGV4cGVjdGVkUHJl
dmlvdXNVcGxvYWRzID0gMDsKIAogICAgIHNldE1heFVwbG9hZENvdW50UGVyVXBkYXRlKGtNYXhV
cGxvYWRzUGVyVXBkYXRlKTsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcihrRnVsbFVw
bG9hZHMpOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKGtQYXJ0aWFsVXBsb2Fk
cyk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGtGdWxsVXBsb2Fkcyk7Cisg
ICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGtQYXJ0aWFsVXBsb2Fkcyk7CiAK
ICAgICAvLyBGaXJzdCB1cGRhdGUgKDQwIGZ1bGwpCiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhy
ZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4
dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBt
X3VwZGF0ZXIuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsKKyAgICBDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZt
X2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRl
KTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VR
KDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC00NjcsNyArNDY3LDcgQEAgVEVTVF9GKENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUZ1bGxBbmRQYXJ0
aWFsKQogICAgIEVYUEVDVF9FUShleHBlY3RlZFByZXZpb3VzVXBsb2FkcywgbV9udW1QcmV2aW91
c1VwbG9hZHMpOwogCiAgICAgLy8gU2Vjb25kIHVwZGF0ZSAoNDAgZnVsbCkKLSAgICBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0
KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwga01heFVwbG9hZHNQ
ZXJVcGRhdGUpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVz
KG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1
ZS5nZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOwogCiAgICAgRVhQRUNUX0VRKDIsIG1fbnVt
QmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTQ3
OSw3ICs0NzksNyBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFRyaXBs
ZVVwZGF0ZUZpbmFsVXBkYXRlRnVsbEFuZFBhcnRpYWwpCiAgICAgRVhQRUNUX0VRKGV4cGVjdGVk
UHJldmlvdXNVcGxvYWRzLCBtX251bVByZXZpb3VzVXBsb2Fkcyk7CiAKICAgICAvLyBUaGlyZCB1
cGRhdGUgKDIwIGZ1bGwsIDIwIHBhcnRpYWwpCi0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZt
X3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsKKyAgICBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlk
ZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIGtNYXhVcGxv
YWRzUGVyVXBkYXRlKTsKIAogICAgIEVYUEVDVF9FUSgzLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAg
ICAgRVhQRUNUX0VRKDMsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC01MDUsMTIgKzUwNSwxMiBAQCBU
RVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFRyaXBsZVVwZGF0ZUZpbmFsVXBk
YXRlQWxsUGFydGlhbCkKICAgICBpbnQgZXhwZWN0ZWRQcmV2aW91c1VwbG9hZHMgPSAwOwogCiAg
ICAgc2V0TWF4VXBsb2FkQ291bnRQZXJVcGRhdGUoa01heFVwbG9hZHNQZXJVcGRhdGUpOwotICAg
IGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGtGdWxsVXBsb2Fkcyk7Ci0gICAgYXBwZW5kUGFy
dGlhbFVwbG9hZHNUb1VwZGF0ZXIoa1BhcnRpYWxVcGxvYWRzKTsKKyAgICBhcHBlbmRGdWxsVXBs
b2Fkc1RvVXBkYXRlUXVldWUoa0Z1bGxVcGxvYWRzKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fk
c1RvVXBkYXRlUXVldWUoa1BhcnRpYWxVcGxvYWRzKTsKIAogICAgIC8vIEZpcnN0IHVwZGF0ZSAo
NDAgZnVsbCkKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlk
ZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwga01heFVw
bG9hZHNQZXJVcGRhdGUpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRl
eHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwg
bV9xdWV1ZS5nZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOwogCiAgICAgRVhQRUNUX0VRKDEs
IG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsK
QEAgLTUyMiw3ICs1MjIsNyBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3Qs
IFRyaXBsZVVwZGF0ZUZpbmFsVXBkYXRlQWxsUGFydGlhbCkKICAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWRQcmV2aW91c1VwbG9hZHMsIG1fbnVtUHJldmlvdXNVcGxvYWRzKTsKIAogICAgIC8vIFNlY29u
ZCB1cGRhdGUgKDMwIGZ1bGwsIG9wdGlvbmFsbHkgMTAgcGFydGlhbCkKLSAgICBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCks
ICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwga01heFVwbG9hZHNQZXJV
cGRhdGUpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1f
cmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5n
ZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOwogCiAgICAgRVhQRUNUX0VRKDIsIG1fbnVtQmVn
aW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMiwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTUzMiw3
ICs1MzIsNyBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIFRyaXBsZVVw
ZGF0ZUZpbmFsVXBkYXRlQWxsUGFydGlhbCkKICAgICAvLyBvbkZsdXNoKCksIG9uVXBsb2FkKCks
IGFuZCBvbkVuZFVwbG9hZCgpIHdpbGwgZG8gYmFzaWMgZmx1c2ggY2hlY2tzIGZvciB1cyBhbnl3
YXkuCiAKICAgICAvLyBUaGlyZCB1cGRhdGUgKDMwIHBhcnRpYWwgT1IgMjAgcGFydGlhbCBpZiAx
MCBwYXJ0aWFsIHVwbG9hZGVkIGluIHNlY29uZCB1cGRhdGUpCi0gICAgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9j
b3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRl
KTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291
cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCks
IGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsKIAogICAgIEVYUEVDVF9FUSgzLCBtX251bUJlZ2luVXBs
b2Fkcyk7CiAgICAgRVhQRUNUX0VRKDMsIG1fbnVtRW5kVXBsb2Fkcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaHJlYWRlZFRlc3QuY3BwCmluZGV4IGM0YmUyN2Q5MDdm
NWI3OGIyNTA4ZGQxZjZmYmQwNzVhMzMxZjZmNWMuLjljMzgzN2VlYWM2ZGNhYTYxYmJjN2QyZWUy
M2U4NmQyMjZiYTdlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NUaHJlYWRlZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NU
aHJlYWRlZFRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAiY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5oIgogI2luY2x1ZGUgImNjL0NDU2NvcGVkVGhyZWFkUHJveHkuaCIKICNpbmNs
dWRlICJjYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgiCi0jaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBk
YXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgiCiAjaW5jbHVkZSAi
Y2MvQ0NUaHJlYWRUYXNrLmgiCiAjaW5jbHVkZSAiY2MvQ0NUaW1pbmdGdW5jdGlvbi5oIgogI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlRocmVhZC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHAKaW5kZXggZWMyMTA1MzI3
OTAwZTgzOTVjMTUwODUzYzczMDc0NWZmOTI4MDNhNi4uNTRmMjliYmVmNTU0OGQzZTBjZjc1NDIx
ZjNjNjMzYzNkNTA5YTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uY3BwCkBAIC0xMTUsOSArMTE1LDkgQEAgdm9p
ZCBGYWtlVGlsZWRMYXllckNocm9taXVtOjpzZXROZWVkc0Rpc3BsYXlSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKICAgICBUaWxlZExheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheVJlY3Qo
cmVjdCk7CiB9CiAKLXZvaWQgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVy
ZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBD
Q1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKK3ZvaWQgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBk
YXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2Vy
KiBvY2NsdXNpb24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKQogewotICAgIHVwZGF0ZUNvbnRl
bnRSZWN0KHVwZGF0ZXIsIHZpc2libGVDb250ZW50UmVjdCgpLCBvY2NsdXNpb24sIHN0YXRzKTsK
KyAgICB1cGRhdGVDb250ZW50UmVjdChxdWV1ZSwgdmlzaWJsZUNvbnRlbnRSZWN0KCksIG9jY2x1
c2lvbiwgc3RhdHMpOwogfQogCiB2b2lkIEZha2VUaWxlZExheWVyQ2hyb21pdW06OnNldFRleHR1
cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJiBjYWxjdWxhdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29t
bW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21t
b24uaAppbmRleCA2Y2QyMjhiM2Q5MDg2ZmMzMDI2NDAzZGYzZTViMWNkZDY4ZjdlZjBiLi5jNzU5
MzJhY2Y2MjFiZGViMzBjNmY3MTQyYjc3MTU3ZGQzOTVkMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaApAQCAtMzUs
NyArMzUsNyBAQAogI2luY2x1ZGUgImNjL0NDR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
Y2MvQ0NQcmlvcml0aXplZFRleHR1cmUuaCIKICNpbmNsdWRlICJjYy9DQ1Jlc291cmNlUHJvdmlk
ZXIuaCIKLSNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCisjaW5jbHVkZSAiY2MvQ0NU
ZXh0dXJlVXBkYXRlUXVldWUuaCIKICNpbmNsdWRlICJjYy9DQ1RpbGVkTGF5ZXJJbXBsLmgiCiAK
IG5hbWVzcGFjZSBXZWJLaXRUZXN0cyB7CkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGFzdE5lZWRzRGlzcGxheVJlY3QoKSBjb25zdCB7
IHJldHVybiBtX2xhc3ROZWVkc0Rpc3BsYXlSZWN0OyB9CiAKICAgICAvLyBVcGRhdGVzIHRoZSB2
aXNpYmxlQ29udGVudFJlY3QoKS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFdlYkNvcmU6OkND
VGV4dHVyZVVwZGF0ZXImLCBjb25zdCBXZWJDb3JlOjpDQ09jY2x1c2lvblRyYWNrZXIqLCBXZWJD
b3JlOjpDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZShXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IFdlYkNvcmU6OkNDT2NjbHVz
aW9uVHJhY2tlciosIFdlYkNvcmU6OkNDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRUZXh0dXJlUHJpb3JpdGllcyhjb25zdCBXZWJDb3JlOjpDQ1ByaW9y
aXR5Q2FsY3VsYXRvciYpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCmluZGV4IGFjZTc0MTBj
MzVhNWFjNmNmMzYxMzQ3ZGY5YTZhYjU2ZjY4N2MxYmYuLjk2MDdhYzA5MWY0NzFhM2JhOWRiMGEz
MGE1NTA4ZGRhZDIxYjg1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAj
aW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiY2MvQ0NHcmFwaGljc0NvbnRleHQuaCIKICNp
bmNsdWRlICJjYy9DQ1JlbmRlcmluZ1N0YXRzLmgiCi0jaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBk
YXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgiCiAjaW5jbHVkZSAi
cGxhdGZvcm0vV2ViS2l0UGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2Vi
VGhyZWFkLmgiCiAKQEAgLTE1MSw5ICsxNTEsOSBAQCBURVNUKENhbnZhczJETGF5ZXJCcmlkZ2VU
ZXN0MiwgdGVzdENsZWFyQ2xpZW50KQogICAgIE93blB0cjxDYW52YXMyRExheWVyQnJpZGdlPiBi
cmlkZ2UgPSBDYW52YXMyRExheWVyQnJpZGdlOjpjcmVhdGUobWFpbkNvbnRleHQuZ2V0KCksIElu
dFNpemUoMTAwLCAxMDApLCBEZWZlcnJlZCwgMSk7CiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+
IGxheWVyID0gYnJpZGdlLT5sYXllcigpOwogICAgIGJyaWRnZS5jbGVhcigpOwotICAgIENDVGV4
dHVyZVVwZGF0ZXIgdXBkYXRlcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVRdWV1ZSBxdWV1ZTsKICAg
ICBDQ1JlbmRlcmluZ1N0YXRzIHN0YXRzOwotICAgIGxheWVyLT51cGRhdGUodXBkYXRlciwgMCwg
c3RhdHMpOworICAgIGxheWVyLT51cGRhdGUocXVldWUsIDAsIHN0YXRzKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRM
YXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDBiNDRiODY0YmE3NWFlNTVmMTg4NDRmMDdjM2Ix
YmI0MmI3YjU4ZTYuLmI5YTQyOTk4MmY4OTFkNDQyMDAyMjNmNDkxNjEwZDRlYmQwODgyOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVt
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hy
b21pdW1UZXN0LmNwcApAQCAtOTAsMTIgKzkwLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBk
YXRlVGV4dHVyZXMoaW50IGNvdW50ID0gNTAwKQogICAgIHsKLSAgICAgICAgQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAm
bV9jb3BpZXIsICZtX3VwbG9hZGVyLCAmbV91cGRhdGVyLCBjb3VudCk7CisgICAgICAgIENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5n
ZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgJm1fcXVldWUsIGNvdW50KTsKICAgICB9CiBw
dWJsaWM6CiAgICAgT3duUHRyPENDR3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgT3du
UHRyPENDUmVzb3VyY2VQcm92aWRlcj4gbV9yZXNvdXJjZVByb3ZpZGVyOwotICAgIENDVGV4dHVy
ZVVwZGF0ZXIgbV91cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZVF1ZXVlIG1fcXVldWU7CiAg
ICAgQ0NSZW5kZXJpbmdTdGF0cyBtX3N0YXRzOwogICAgIEZha2VUZXh0dXJlQ29waWVyIG1fY29w
aWVyOwogICAgIEZha2VUZXh0dXJlVXBsb2FkZXIgbV91cGxvYWRlcjsKQEAgLTExOSw3ICsxMTks
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaERpcnR5VGlsZXMpCiAgICAg
bGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0
ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAKLSAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0
cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwg
MTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIGxheWVy
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTEzMiw3ICsxMzIsNyBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaERpcnR5VGlsZXMpCiAgICAgLy8g
Li4uLmJ1dCB0aGVuIG9ubHkgdXBkYXRlIG9uZSBvZiB0aGVtLgogICAgIGxheWVyLT5zZXRUZXh0
dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXIt
PnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3Vw
ZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+
dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1f
c3RhdHMpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAK
ICAgICAvLyBXZSBzaG91bGQgb25seSBoYXZlIHRoZSBmaXJzdCB0aWxlIHNpbmNlIHRoZSBvdGhl
ciB0aWxlIHdhcyBpbnZhbGlkYXRlZCBidXQgbm90IHBhaW50ZWQuCkBAIC0xNTYsNyArMTU2LDcg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hPY2NsdWRlZERpcnR5VGlsZXMp
CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsK
ICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAKLSAgICBsYXllci0+
dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgJm9j
Y2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwg
SW50UmVjdCgwLCAwLCAxMDAsIDIwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRl
VGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkp
OwogCkBAIC0xNzIsNyArMTcyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1
c2hPY2NsdWRlZERpcnR5VGlsZXMpCiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJ
bnRSZWN0KDAsIDAsIDUwLCA1MCkpOwogICAgIC8vIC4uLi5idXQgdGhlIGFyZWEgaXMgb2NjbHVk
ZWQuCiAgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMCwgMCwgNTAsIDUwKSk7Ci0g
ICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAs
IDEwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwog
ICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJ
bXBsLmdldCgpKTsKIApAQCAtMjAwLDcgKzIwMCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21p
dW1UZXN0LCBwdXNoRGVsZXRlZFRpbGVzKQogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGll
cyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVU
ZXh0dXJlcygpOwogCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50
UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250
ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CiAg
ICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllcklt
cGwuZ2V0KCkpOwogCkBAIC0yMjIsNyArMjIyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHB1c2hEZWxldGVkVGlsZXMpCiAgICAgLy8gVGhpcyBzaG91bGQgcmVjcmVhdGUgYW5k
IHVwZGF0ZSB0aGUgZGVsZXRlZCB0ZXh0dXJlcy4KICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9y
aXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0
aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNv
bnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsK
ICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVy
SW1wbC5nZXQoKSk7CiAKQEAgLTI1MSw3ICsyNTEsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgcHVzaElkbGVQYWludFRpbGVzKQogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3Jp
dGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRp
emVUZXh0dXJlcygpOwogCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwg
dmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsK
IAogICAgIC8vIFdlIHNob3VsZCBuZWVkIGlkbGUtcGFpbnRpbmcgZm9yIDN4MyB0aWxlcyBpbiB0
aGUgY2VudGVyLgpAQCAtMjY3LDcgKzI2Nyw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBwdXNoSWRsZVBhaW50VGlsZXMpCiAgICAgICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3Jp
dGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlv
cml0aXplVGV4dHVyZXMoKTsKIAotICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91
cGRhdGVyLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CisgICAgICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3F1ZXVlLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CiAgICAgICAgIEVY
UEVDVF9UUlVFKGxheWVyLT5uZWVkc0lkbGVQYWludCh2aXNpYmxlUmVjdCkpOwogICAgICAgICB1
cGRhdGVUZXh0dXJlcygpOwogICAgICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllcklt
cGwuZ2V0KCkpOwpAQCAtMzE4LDggKzMxOCw4IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBwdXNoVGlsZXNBZnRlcklkbGVQYWludEZhaWxlZCkKICAgICBsYXllcjItPnNldFRleHR1
cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICBsYXllcjEtPnNldFRleHR1
cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+
cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXIxLT51cGRhdGVDb250ZW50UmVjdChtX3Vw
ZGF0ZXIsIGxheWVyUmVjdCwgMCwgbV9zdGF0cyk7Ci0gICAgbGF5ZXIyLT51cGRhdGVDb250ZW50
UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsKKyAg
ICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGxheWVyUmVjdCwgMCwgbV9zdGF0
cyk7CisgICAgbGF5ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAs
IDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CiAKICAgICAvLyBXZSBzaG91bGQgbmVlZCBpZGxlLXBh
aW50aW5nIGZvciBib3RoIHJlbWFpbmluZyB0aWxlcyBpbiBsYXllcjIuCiAgICAgRVhQRUNUX1RS
VUUobGF5ZXIyLT5uZWVkc0lkbGVQYWludChsYXllcjJSZWN0KSk7CkBAIC0zMzYsNyArMzM2LDcg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc0FmdGVySWRsZVBhaW50
RmFpbGVkKQogICAgIGxheWVyMi0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIGxheWVyMS0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBs
YXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDEw
MCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyMi0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwg
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1fc3RhdHMpOwogCiAgICAgLy8gT2ggd2VsbCwg
Y29tbWl0IHRoZSBmcmFtZSBhbmQgcHVzaC4KICAgICB1cGRhdGVUZXh0dXJlcygpOwpAQCAtMzU2
LDggKzM1Niw4IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoVGlsZXNBZnRl
cklkbGVQYWludEZhaWxlZCkKICAgICBsYXllcjItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICBsYXllcjEtPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgbGF5ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGxheWVyMlJlY3Qs
IDAsIG1fc3RhdHMpOwotICAgIGxheWVyMS0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBs
YXllclJlY3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyMi0+dXBkYXRlQ29udGVudFJlY3QobV9x
dWV1ZSwgbGF5ZXIyUmVjdCwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXIxLT51cGRhdGVDb250ZW50
UmVjdChtX3F1ZXVlLCBsYXllclJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAgdXBkYXRlVGV4dHVy
ZXMoKTsKICAgICBsYXllcjEtPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsMS5nZXQoKSk7CkBA
IC0zODgsNyArMzg4LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxl
UGFpbnRlZE9jY2x1ZGVkVGlsZXMpCiAKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMo
bV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4
dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksICZvY2NsdWRlZCwg
bV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRp
ZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCkBAIC00MTMsNyArNDEzLDcgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc01hcmtlZERpcnR5RHVyaW5nUGFpbnQpCiAKICAg
ICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAg
IHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0
cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwg
MTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIGxheWVy
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTQ0MywxMSArNDQzLDEx
IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoVGlsZXNMYXllck1hcmtlZERp
cnR5RHVyaW5nUGFpbnRPbk5leHRMYXllcikKICAgICBsYXllcjItPnNldFRleHR1cmVQcmlvcml0
aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6
ZVRleHR1cmVzKCk7CiAKLSAgICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwg
SW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyMS0+dXBkYXRl
Q29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMp
OwogCiAgICAgLy8gSW52YWxpZGF0ZSBhIHRpbGUgb24gbGF5ZXIxCiAgICAgbGF5ZXIyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMCwgNTAs
IDEwMCwgNTApLCBsYXllcjEuZ2V0KCkpOwotICAgIGxheWVyMi0+dXBkYXRlQ29udGVudFJlY3Qo
bV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5
ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwg
MCwgbV9zdGF0cyk7CiAKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIGxheWVyMS0+cHVzaFBy
b3BlcnRpZXNUbyhsYXllcjFJbXBsLmdldCgpKTsKQEAgLTQ4Myw4ICs0ODMsOCBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTGF5ZXJNYXJrZWREaXJ0eUR1cmluZ1Bh
aW50T25QcmV2aW91c0xheQogCiAgICAgLy8gSW52YWxpZGF0ZSBhIHRpbGUgb24gbGF5ZXIyCiAg
ICAgbGF5ZXIxLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRl
KEludFJlY3QoMCwgNTAsIDEwMCwgNTApLCBsYXllcjIuZ2V0KCkpOwotICAgIGxheWVyMS0+dXBk
YXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9z
dGF0cyk7Ci0gICAgbGF5ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3Qo
MCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBs
YXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDAp
LCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIGxheWVyMS0+cHVzaFBy
b3BlcnRpZXNUbyhsYXllcjFJbXBsLmdldCgpKTsKICAgICBsYXllcjItPnB1c2hQcm9wZXJ0aWVz
VG8obGF5ZXIySW1wbC5nZXQoKSk7CkBAIC01MTgsNyArNTE4LDcgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE91dE9mTWVtb3J5KQogCiAgICAgbGF5ZXItPnNldFRl
eHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdl
ci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
dXBkYXRlciwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250
ZW50UmVjdChtX3F1ZXVlLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CiAKICAgICAvLyBJZGxl
LXBhaW50aW5nIHNob3VsZCBzZWUgbm8gbW9yZSBwcmlvcml0eSB0aWxlcyBmb3IgcGFpbnRpbmcu
CiAgICAgRVhQRUNUX0ZBTFNFKGxheWVyLT5uZWVkc0lkbGVQYWludCh2aXNpYmxlUmVjdCkpOwpA
QCAtNTMxLDcgKzUzMSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxlUGFp
bnRPdXRPZk1lbW9yeSkKIAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9y
aXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygp
OwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZpc2libGVSZWN0LCAw
LCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgdmlzaWJs
ZVJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAgLy8gV2Ugc2hvdWxkbid0IHNpZ25hbCB3ZSBuZWVk
IGFub3RoZXIgaWRsZSBwYWludC4KICAgICBFWFBFQ1RfRkFMU0UobGF5ZXItPm5lZWRzSWRsZVBh
aW50KHZpc2libGVSZWN0KSk7CkBAIC01NjAsNyArNTYwLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIGlkbGVQYWludFplcm9TaXplZExheWVyKQogICAgICAgICB0ZXh0dXJlTWFu
YWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAKICAgICAgICAgLy8gRW1wdHkgbGF5ZXJzIGRv
bid0IHBhaW50IG9yIGlkbGUtcGFpbnQuCi0gICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3VwZGF0ZXIsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICAgICAgbGF5ZXItPnVw
ZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsKIAogICAg
ICAgICAvLyBFbXB0eSBsYXllcnMgZG9uJ3QgaGF2ZSB0aWxlcy4KICAgICAgICAgRVhQRUNUX0VR
KDB1LCBsYXllci0+bnVtUGFpbnRlZFRpbGVzKCkpOwpAQCAtNTk2LDcgKzU5Niw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxlUGFpbnROb25WaXNpYmxlTGF5ZXJzKQogICAg
ICAgICAvLyBQYWludCAvIGlkbGUtcGFpbnQuCiAgICAgICAgIGxheWVyLT5zZXRUZXh0dXJlUHJp
b3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgICAgIHRleHR1cmVNYW5hZ2VyLT5w
cmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
dXBkYXRlciwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOworICAgICAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV9xdWV1ZSwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAgICAg
IC8vIE5vbi12aXNpYmxlIGxheWVycyBkb24ndCBuZWVkIGlkbGUgcGFpbnQuCiAgICAgICAgIEVY
UEVDVF9GQUxTRShsYXllci0+bmVlZHNJZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKQEAgLTY1OSw3
ICs2NTksNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50Tm9uVmlz
aWJsZUFuaW1hdGluZ0xheWVycykKICAgICAgICAgICAgICAgICBsYXllci0+c2V0VGV4dHVyZVBy
aW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgICAgICAgICAgICAgIHRleHR1cmVN
YW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAotICAgICAgICAgICAgICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZpc2libGVSZWN0LCAwLCBtX3N0YXRzKTsKKyAg
ICAgICAgICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgdmlzaWJsZVJl
Y3QsIDAsIG1fc3RhdHMpOwogICAgICAgICAgICAgICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAg
ICAgICAgICAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAg
ICAgICAgICAgIH0KQEAgLTY3Miw3ICs2NzIsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVt
VGVzdCwgaWRsZVBhaW50Tm9uVmlzaWJsZUFuaW1hdGluZ0xheWVycykKICAgICAgICAgICAgICAg
ICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAg
ICAgICAgICAgICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAotICAg
ICAgICAgICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZpc2libGVS
ZWN0LCAwLCBtX3N0YXRzKTsKKyAgICAgICAgICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJl
Y3QobV9xdWV1ZSwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOwogICAgICAgICAgICAgICAgIHVw
ZGF0ZVRleHR1cmVzKCk7CiAgICAgICAgICAgICAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8o
bGF5ZXJJbXBsLmdldCgpKTsKICAgICAgICAgICAgIH0KQEAgLTY5NSw3ICs2OTUsNyBAQCBURVNU
X0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaW52YWxpZGF0ZUZyb21QcmVwYXJlKQogICAgIGxh
eWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwogICAg
IGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAg
dGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRz
KTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAx
MDAsIDIwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKDEwMDApOwogICAgIGxh
eWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTcwNiw3ICs3MDYs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaW52YWxpZGF0ZUZyb21QcmVwYXJl
KQogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVDb3Vu
dCgpOwogICAgIC8vIEludm9rZSB1cGRhdGVDb250ZW50UmVjdCBhZ2Fpbi4gQXMgdGhlIGxheWVy
IGlzIHZhbGlkIHVwZGF0ZUNvbnRlbnRSZWN0IHNob3VsZG4ndCBiZSBpbnZva2VkIG9uCiAgICAg
Ly8gdGhlIExheWVyVGV4dHVyZVVwZGF0ZXIuCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxh
eWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwg
MCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7CiAgICAgRVhQRUNUX0VRKDAs
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7CiAKQEAg
LTcxNCwxMiArNzE0LDEyIEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpbnZhbGlk
YXRlRnJvbVByZXBhcmUpCiAgICAgLy8gc2V0UmVjdFRvSW52YWxpZGF0ZSB0cmlnZ2VycyBpbnZh
bGlkYXRlQ29udGVudFJlY3QoKSBiZWluZyBpbnZva2VkIGZyb20gdXBkYXRlQ29udGVudFJlY3Qu
CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldFJlY3RUb0ludmFsaWRh
dGUoSW50UmVjdCgyNSwgMjUsIDUwLCA1MCksIGxheWVyLmdldCgpKTsKICAgICBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKLSAgICBsYXllci0+
dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwg
bV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3Qo
MCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygxMDAwKTsK
ICAgICBFWFBFQ1RfRVEoMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBh
cmVDb3VudCgpKTsKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQ
cmVwYXJlQ291bnQoKTsKICAgICAvLyBUaGUgbGF5ZXIgc2hvdWxkIHN0aWxsIGJlIGludmFsaWQg
YXMgdXBkYXRlQ29udGVudFJlY3QgaW52b2tlZCBpbnZhbGlkYXRlLgotICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0
YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAw
LCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKDEwMDApOwogICAg
IEVYUEVDVF9FUSgxLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZUNv
dW50KCkpOwogfQpAQCAtNzQ2LDcgKzc0Niw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCB2ZXJpZnlVcGRhdGVSZWN0V2hlbkNvbnRlbnRCb3VuZHNBcmVTY2FsZWQpCiAKICAgICBs
YXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRl
eHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29u
dGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91bmRzLCAwLCBtX3N0YXRzKTsKKyAgICBsYXll
ci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgMCwgbV9zdGF0cyk7
CiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDAsIDAsIDMwMCwgMzAwICogMC44
KSwgbGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKIApAQCAtNzU0
LDcgKzc1NCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlVcGRhdGVS
ZWN0V2hlbkNvbnRlbnRCb3VuZHNBcmVTY2FsZWQpCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlv
cml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3Jp
dGl6ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChjb250ZW50
Qm91bmRzKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50
Qm91bmRzLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1
ZSwgY29udGVudEJvdW5kcywgMCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0ZMT0FUX1JFQ1RfRVEo
RmxvYXRSZWN0KGxheWVyQm91bmRzKSwgbGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiAgICAgdXBkYXRl
VGV4dHVyZXMoKTsKIApAQCAtNzYzLDcgKzc2Myw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21p
dW1UZXN0LCB2ZXJpZnlVcGRhdGVSZWN0V2hlbkNvbnRlbnRCb3VuZHNBcmVTY2FsZWQpCiAgICAg
bGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChwYXJ0aWFsRGFtYWdlKTsKICAgICBsYXllci0+
c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVN
YW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJl
Y3QobV91cGRhdGVyLCBjb250ZW50Qm91bmRzLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBk
YXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgMCwgbV9zdGF0cyk7CiAgICAg
RVhQRUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KDQ1LCA4MCwgMTUsIDgpLCBsYXllci0+dXBk
YXRlUmVjdCgpKTsKIH0KIApAQCAtNzg1LDcgKzc4NSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29udGVudHNTY2FsZUNoYW5nZXMpCiAg
ICAgLy8gUHVzaCB0aGUgdGlsZXMgdG8gdGhlIGltcGwgc2lkZSBhbmQgY2hlY2sgdGhhdCB0aGVy
ZSBpcyBleGFjdGx5IG9uZS4KICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlv
cml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMo
KTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAs
IDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
cXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVU
ZXh0dXJlcygpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7
CiAgICAgRVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwpAQCAtODAyLDcg
KzgwMiw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRp
b25XaGVuQ29udGVudHNTY2FsZUNoYW5nZXMpCiAgICAgLy8gVGhlIGltcGwgc2lkZSBzaG91bGQg
Z2V0IDJ4MiB0aWxlcyBub3cuCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAw
LCAyMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CiAgICAgdXBkYXRl
VGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkp
OwogICAgIEVYUEVDVF9UUlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKQEAgLTgxNCw3
ICs4MTQsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0
aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFuZ2VzKQogICAgIC8vIGltcGwgc2lkZS4KICAgICBsYXll
ci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1f
cHJpb3JpdHlDYWxjdWxhdG9yKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRh
dGVyLCBJbnRSZWN0KDEsIDAsIDAsIDEpLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgxLCAwLCAwLCAxKSwgMCwgbV9zdGF0cyk7CiAg
ICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwogCiAgICAgbGF5ZXItPnB1
c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKQEAgLTg1NSw3ICs4NTUsNyBAQCBURVNU
X0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgc2tpcHNEcmF3R2V0c1Jlc2V0KQogICAgIGNjTGF5
ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgY2NMYXllclRyZWVIb3N0
LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgzMDAsIDMwMCksIEludFNpemUoMzAwLCAzMDApKTsK
IAotICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwgbWVtb3J5TGlt
aXQpOworICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsIG1lbW9yeUxp
bWl0KTsKIAogICAgIC8vIFdlJ2xsIHNraXAgdGhlIHJvb3QgbGF5ZXIuCiAgICAgRVhQRUNUX1RS
VUUocm9vdExheWVyLT5za2lwc0RyYXcoKSk7CkBAIC04NjYsNyArODY2LDcgQEAgVEVTVF9GKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHNraXBzRHJhd0dldHNSZXNldCkKICAgICAvLyBSZW1vdmUg
dGhlIGNoaWxkIGxheWVyLgogICAgIHJvb3RMYXllci0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIAot
ICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwgbWVtb3J5TGltaXQp
OworICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsIG1lbW9yeUxpbWl0
KTsKICAgICBFWFBFQ1RfRkFMU0Uocm9vdExheWVyLT5za2lwc0RyYXcoKSk7CiAKICAgICBjY0xh
eWVyVHJlZUhvc3QtPmNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKS0+Y2xlYXJBbGxNZW1vcnkobV9y
ZXNvdXJjZVByb3ZpZGVyLmdldCgpKTsKQEAgLTg4Niw3ICs4ODYsNyBAQCBURVNUX0YoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgcmVzaXplVG9TbWFsbGVyKQogCiAgICAgbGF5ZXItPnNldFRleHR1
cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+
cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBk
YXRlciwgSW50UmVjdCgwLCAwLCA3MDAsIDcwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDcwMCwgNzAwKSwgMCwgbV9z
dGF0cyk7CiAKICAgICBsYXllci0+c2V0Qm91bmRzKEludFNpemUoMjAwLCAyMDApKTsKICAgICBs
YXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwgMjAwLCAyMDApKTsKQEAg
LTkwNSw3ICs5MDUsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaHVnZUxheWVy
VXBkYXRlQ3Jhc2gpCiAgICAgLy8gRW5zdXJlIG5vIGNyYXNoIGZvciBib3VuZHMgd2hlcmUgc2l6
ZSAqIHNpemUgd291bGQgb3ZlcmZsb3cgYW4gaW50LgogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJp
b3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9y
aXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIs
IEludFJlY3QoMCwgMCwgNzAwLCA3MDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA3MDAsIDcwMCksIDAsIG1fc3RhdHMp
OwogfQogCiBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVwZGF0ZXMpCkBA
IC05MzQsMTcgKzkzNCwxNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlh
bFVwZGF0ZXMpCiAgICAgY2NMYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgz
MDAsIDIwMCksIEludFNpemUoMzAwLCAyMDApKTsKIAogICAgIC8vIEZ1bGwgdXBkYXRlIG9mIGFs
bCA2IHRpbGVzLgotICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwg
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgY2NMYXllclRyZWVIb3N0
LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSk7CiAgICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsK
ICAgICAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIo
bmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDEpKSk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQp
OwogICAgICAgICBFWFBFQ1RfRVEoNCwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCkt
PnVwZGF0ZUNvdW50KCkpOwotICAgICAgICBFWFBFQ1RfVFJVRShtX3VwZGF0ZXIuaGFzTW9yZVVw
ZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7
CiAgICAgICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNv
dW50KCk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1RfRVEoMiwg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAg
ICBFWFBFQ1RfRkFMU0UobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBF
Q1RfRkFMU0UobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VM
YXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgbGF5ZXIt
PnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICB9CkBAIC05NTIsMTcgKzk1
MiwxNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVwZGF0ZXMpCiAK
ICAgICAvLyBGdWxsIHVwZGF0ZSBvZiAzIHRpbGVzIGFuZCBwYXJ0aWFsIHVwZGF0ZSBvZiAzIHRp
bGVzLgogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCAzMDAs
IDE1MCkpOwotICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwgc3Rk
OjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgY2NMYXllclRyZWVIb3N0LT51
cGRhdGVMYXllcnMobV9xdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7
CiAgICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAg
ICAgICAgT3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3
IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDEpKSk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQpOwog
ICAgICAgICBFWFBFQ1RfRVEoMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVw
ZGF0ZUNvdW50KCkpOwotICAgICAgICBFWFBFQ1RfVFJVRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0
ZXMoKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAg
ICAgICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50
KCk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1RfRVEoMywgbGF5
ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAgICBF
WFBFQ1RfRkFMU0UobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBFQ1Rf
RkFMU0UobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VMYXll
clRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgbGF5ZXItPnB1
c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICB9CkBAIC05NzMsMTQgKzk3Mywx
NCBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVwZGF0ZXMpCiAgICAg
ewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAgICAgICAg
T3duUHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VD
Q1RpbGVkTGF5ZXJJbXBsKDEpKSk7Ci0gICAgICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5
ZXJzKG1fdXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAg
ICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsIHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAg
ICAgRVhQRUNUX0VRKDIsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVD
b3VudCgpKTsKLSAgICAgICAgRVhQRUNUX1RSVUUobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkp
OworICAgICAgICBFWFBFQ1RfVFJVRShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAg
ICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwog
ICAgICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQRUNUX0VRKDQsIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAgICAgICAgRVhQRUNU
X0ZBTFNFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNF
KG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIGxheWVyLT5wdXNoUHJv
cGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgfQpAQCAtMTAwMCwxNCArMTAwMCwxNCBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVwZGF0ZXMpCiAgICAgewog
ICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAgICAgICAgT3du
UHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1Rp
bGVkTGF5ZXJJbXBsKDEpKSk7Ci0gICAgICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJz
KG1fdXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAg
IGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsIHN0ZDo6bnVtZXJpY19saW1p
dHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAg
RVhQRUNUX0VRKDQsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3Vu
dCgpKTsKLSAgICAgICAgRVhQRUNUX1RSVUUobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOwor
ICAgICAgICBFWFBFQ1RfVFJVRShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAg
ICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQRUNUX0VRKDIsIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAgICAgICAgRVhQRUNUX0ZB
TFNFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKG1f
cXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIGxheWVyLT5wdXNoUHJvcGVy
dGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgfQpAQCAtMTAxOCwxMCArMTAxOCwxMCBAQCBU
RVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVwZGF0ZXMpCiAgICAgewogICAg
ICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAgICAgICAgT3duUHRy
PEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwoYWRvcHRQdHIobmV3IEZha2VDQ1RpbGVk
TGF5ZXJJbXBsKDEpKSk7Ci0gICAgICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1f
dXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIGNj
TGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8
c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQ
RUNUX0VRKDQsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgp
KTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAg
ICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgfQpAQCAt
MTA0OCw3ICsxMDQ4LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFp
bnRlZFdpdGhvdXRPY2NsdXNpb24pCiAKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMo
bV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4
dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0
KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKICAgICBF
WFBFQ1RfRVEoMiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0
Q291bnQoKSk7CiB9CiAKQEAgLTEwNjgsNyArMTA2OCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uKQogCiAgICAgbGF5ZXItPnNldFRl
eHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdl
ci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
dXBkYXRlciwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7Cisg
ICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2
MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVD
VF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCks
IDAsIDEpOwpAQCAtMTA3OSw3ICsxMDc5LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb24pCiAKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNp
b24oSW50UmVjdCgyNTAsIDIwMCwgMzAwLCAxMDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNv
bnRlbnRSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKLSAgICBsYXllci0+dXBkYXRlQ29u
dGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBt
X3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgw
LCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDM2LTIs
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwog
CiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2Fk
ZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBURVNUX0YoVGlsZWRMYXll
ckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbikKIAogICAgIG9jY2x1ZGVk
LnNldE9jY2x1c2lvbihJbnRSZWN0KDI1MCwgMjUwLCAzMDAsIDEwMCkpOwogICAgIGxheWVyLT5p
bnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVy
LT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAm
b2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVl
LCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBF
Q1RfRVEoMzYsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENv
dW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4
ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMTE1LDcgKzExMTUsNyBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2li
bGl0eUNvbnN0cmFpbnRzKQogCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAw
LCA2MDAsIDM2MCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCAzNjApLCAmb2NjbHVkZWQsIG1fc3Rh
dHMpOwogICAgIEVYUEVDVF9FUSgyNC0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOwpAQCAtMTEzMCw3ICsx
MTMwLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhP
Y2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXllci0+aW52YWxpZGF0ZUNv
bnRlbnRSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4dHVy
ZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5w
cmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRh
dGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgMzUwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDM1MCks
ICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwg
MSk7CkBAIC0xMTQ1LDcgKzExNDUsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwg
dGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFuZFZpc2libGl0eUNvbnN0cmFpbnRzKQogICAgIGxh
eWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAg
IGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAg
dGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgNjAwLCAzNDApLCAmb2NjbHVkZWQs
IG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0
KDAsIDAsIDYwMCwgMzQwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoMjQt
NiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7
CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxv
YWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTExNjksNyArMTE2OSw3IEBAIFRFU1RfRihUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCB0aWxlc05vdFBhaW50ZWRXaXRob3V0SW52YWxpZGF0aW9uKQogICAg
IGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwog
ICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAg
ICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVk
ZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRS
ZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEo
MzYtMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQo
KSk7CiAgICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsK
QEAgLTExODMsNyArMTE4Myw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxl
c05vdFBhaW50ZWRXaXRob3V0SW52YWxpZGF0aW9uKQogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVSZWN0Q291bnQoKTsKIAogICAgIC8vIFJlcGFpbnQg
d2l0aG91dCBtYXJraW5nIGl0IGRpcnR5LiBUaGUgMyBjdWxsZWQgdGlsZXMgd2lsbCBiZSBwcmUt
cGFpbnRlZCBub3cuCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50
UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVw
ZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVk
ZWQsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgzLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOwpAQCAtMTIx
Miw3ICsxMjEyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRl
ZFdpdGhPY2NsdXNpb25BbmRUcmFuc2Zvcm1zKQogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVu
dFJlY3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJp
b3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9y
aXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIs
IEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVy
LT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9j
Y2x1ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoMzYtMywgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihv
Y2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsK
QEAgLTEyNDMsNyArMTI0Myw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxl
c1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2NhbGluZykKICAgICBsYXllci0+aW52YWxpZGF0ZUNv
bnRlbnRSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4dHVy
ZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5w
cmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRh
dGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCks
ICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgLy8gVGhlIGNvbnRlbnQgaXMgaGFsZiB0aGUgc2l6
ZSBvZiB0aGUgbGF5ZXIgKHNvIHRoZSBudW1iZXIgb2YgdGlsZXMgaXMgZmV3ZXIpLgogICAgIC8v
IEluIHRoaXMgY2FzZSwgdGhlIGNvbnRlbnQgaXMgMzAweDMwMCwgYW5kIHNpbmNlIHRoZSB0aWxl
IHNpemUgaXMgMTAwLCB0aGUKICAgICAvLyBudW1iZXIgb2YgdGlsZXMgM3gzLgpAQCAtMTI2Myw3
ICsxMjYzLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdp
dGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGll
cyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVU
ZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVk
LCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoOS0xLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVk
Lm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOwpAQCAtMTI4
Myw3ICsxMjgzLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRl
ZFdpdGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJl
Y3QoSW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3Jp
dGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRp
emVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIElu
dFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1
ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoOS0xLCBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1
ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOwpAQCAt
MTMxNiw3ICsxMzE2LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVD
b250ZW50T3BhcXVlUmVnaW9uKQogICAgIC8vIElmIHRoZSBsYXllciBkb2Vzbid0IHBhaW50IG9w
YXF1ZSBjb250ZW50LCB0aGVuIHRoZSB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbiBzaG91bGQg
YmUgZW1wdHkuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1
ZVBhaW50UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
Y29udGVudEJvdW5kcyk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwg
Y29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29u
dGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAg
ICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpOwog
ICAgIEVYUEVDVF9UUlVFKG9wYXF1ZUNvbnRlbnRzLmlzRW1wdHkoKSk7CiAKQEAgLTEzMjksNyAr
MTMyOSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9w
YXF1ZVJlZ2lvbikKICAgICBvcGFxdWVQYWludFJlY3QgPSBJbnRSZWN0KDEwLCAxMCwgOTAsIDE5
MCk7CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50
UmVjdChvcGFxdWVQYWludFJlY3QpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
Y29udGVudEJvdW5kcyk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwg
Y29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29u
dGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAg
ICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVD
b250ZW50T3BhcXVlUmVnaW9uKCk7CiAgICAgRVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9w
YXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsK
QEAgLTEzNDIsNyArMTM0Miw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNp
YmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKIAogICAgIC8vIElmIHdlIHBhaW50IGFnYWluIHdpdGhv
dXQgaW52YWxpZGF0aW5nLCB0aGUgc2FtZSBzdHVmZiBzaG91bGQgYmUgb3BhcXVlLgogICAgIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVj
dCgpKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91
bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRl
eHR1cmVzKCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+dmlzaWJsZUNvbnRlbnRPcGFx
dWVSZWdpb24oKTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRS
ZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwpAQCAtMTM1Nyw3
ICsxMzU3LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50
T3BhcXVlUmVnaW9uKQogICAgIC8vIG5vdCBiZSBhZmZlY3RlZC4KICAgICBsYXllci0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAg
bGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDEsIDEpKTsKLSAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91bmRzLCAmb2NjbHVk
ZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBjb250
ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAg
ICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+dmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKTsK
ICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRSZWN0LCB2aXNpYmxl
Qm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwpAQCAtMTM3Miw3ICsxMzcyLDcgQEAg
VEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9u
KQogICAgIC8vIG5vdCBiZSBhZmZlY3RlZC4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFs
aWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDEwLCAxMCwgMSwgMSkpOwotICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0
cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRCb3VuZHMs
ICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBvcGFxdWVD
b250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpOwogICAgIEVYUEVD
VF9FUV9SRUNUKGludGVyc2VjdGlvbihJbnRSZWN0KDEwLCAxMDAsIDkwLCAxMDApLCB2aXNpYmxl
Qm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwpAQCAtMTQwOSw3ICsxNDA5LDcgQEAg
VEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVsc1BhaW50ZWRNZXRyaWNzKQogICAg
IC8vIEludmFsaWRhdGVzIGFuZCBwYWludHMgdGhlIHdob2xlIGxheWVyLgogICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNvbnRlbnRCb3VuZHMpOwotICAgIGxh
eWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsICZvY2NsdWRl
ZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRl
bnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAg
ICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpOwog
ICAgIEVYUEVDVF9UUlVFKG9wYXF1ZUNvbnRlbnRzLmlzRW1wdHkoKSk7CkBAIC0xNDI0LDcgKzE0
MjQsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGl4ZWxzUGFpbnRlZE1ldHJp
Y3MpCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50
UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVj
dCgwLCAwLCAxLCAxKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0
KDUwLCAyMDAsIDEwLCAxMCkpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0
ZXIsIGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0
ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0cyk7
CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNp
YmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpOwogICAgIEVYUEVDVF9UUlVFKG9wYXF1ZUNvbnRlbnRz
LmlzRW1wdHkoKSk7CkBAIC0xNDg1LDE0ICsxNDg1LDE0IEBAIFRFU1RfRihUaWxlZExheWVyQ2hy
b21pdW1UZXN0LCBkb250QWxsb2NhdGVDb250ZW50c1doZW5UYXJnZXRTdXJmYWNlQ2FudEJlQWxs
b2NhCiAgICAgcm9vdC0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KHJvb3RSZWN0KTsKICAgICBjaGls
ZC0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNoaWxkUmVjdCk7CiAgICAgY2hpbGQyLT5pbnZhbGlk
YXRlQ29udGVudFJlY3QoY2hpbGQyUmVjdCk7Ci0gICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVM
YXllcnMobV91cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAg
ICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3F1ZXVlLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpKTsKICAgICB7CiAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRo
cmVhZCBpbXBsVGhyZWFkOwogICAgICAgICB1cGRhdGVUZXh0dXJlcygxMDAwKTsKICAgICAgICAg
RVhQRUNUX0VRKDYsIHJvb3QtPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50
KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMywgY2hpbGQtPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPnVwZGF0ZUNvdW50KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMywgY2hpbGQyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAgICAgICAgRVhQRUNUX0ZBTFNF
KG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKG1fcXVl
dWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAKICAgICAgICAgcm9vdC0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICBjaGlsZC0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwpAQCAtMTUyMCwxNCArMTUyMCwxNCBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgZG9udEFsbG9jYXRlQ29udGVudHNXaGVu
VGFyZ2V0U3VyZmFjZUNhbnRCZUFsbG9jYQogICAgIHJvb3QtPmludmFsaWRhdGVDb250ZW50UmVj
dChyb290UmVjdCk7CiAgICAgY2hpbGQtPmludmFsaWRhdGVDb250ZW50UmVjdChjaGlsZFJlY3Qp
OwogICAgIGNoaWxkMi0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNoaWxkMlJlY3QpOwotICAgIGNj
TGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwgKDMgKiAyICsgMyAqIDEpICog
KDEwMCAqIDEwMCkgKiA0KTsKKyAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3F1
ZXVlLCAoMyAqIDIgKyAzICogMSkgKiAoMTAwICogMTAwKSAqIDQpOwogICAgIHsKICAgICAgICAg
RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIHVwZGF0ZVRleHR1
cmVzKDEwMDApOwogICAgICAgICBFWFBFQ1RfRVEoNiwgcm9vdC0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwLCBjaGlsZC0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7CiAgICAgICAgIEVYUEVDVF9F
USgwLCBjaGlsZDItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwot
ICAgICAgICBFWFBFQ1RfRkFMU0UobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAg
ICBFWFBFQ1RfRkFMU0UobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKIAogICAgICAgICByb290
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAg
IGNoaWxkLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CkBA
IC0xNTU2LDE0ICsxNTU2LDE0IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBkb250
QWxsb2NhdGVDb250ZW50c1doZW5UYXJnZXRTdXJmYWNlQ2FudEJlQWxsb2NhCiAgICAgcm9vdC0+
aW52YWxpZGF0ZUNvbnRlbnRSZWN0KHJvb3RSZWN0KTsKICAgICBjaGlsZC0+aW52YWxpZGF0ZUNv
bnRlbnRSZWN0KGNoaWxkUmVjdCk7CiAgICAgY2hpbGQyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
Y2hpbGQyUmVjdCk7Ci0gICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVy
LCAoMyAqIDEpICogKDEwMCAqIDEwMCkgKiA0KTsKKyAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0
ZUxheWVycyhtX3F1ZXVlLCAoMyAqIDEpICogKDEwMCAqIDEwMCkgKiA0KTsKICAgICB7CiAgICAg
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICB1cGRhdGVU
ZXh0dXJlcygxMDAwKTsKICAgICAgICAgRVhQRUNUX0VRKDAsIHJvb3QtPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMCwgY2hpbGQt
PmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwogICAgICAgICBFWFBF
Q1RfRVEoMCwgY2hpbGQyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgp
KTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAg
ICAgICAgRVhQRUNUX0ZBTFNFKG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAKICAgICAgICAg
cm9vdC0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAg
ICAgICBjaGlsZC0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgp
OwpAQCAtMTY1Miw3ICsxNjUyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG5v
bkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJpbmdQYWludCkKICAgICB0ZXh0
dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAKICAgICAvLyBVcGRhdGUgdGhlIHdo
b2xlIHRpbGUuCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVu
dFJlY3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVl
LCBjb250ZW50UmVjdCwgMCwgbV9zdGF0cyk7CiAgICAgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWlu
dGVyKCktPnJlc2V0UGFpbnRlZFJlY3QoKTsKIAogICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRS
ZWN0KCksIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5wYWludGVkUmVjdCgpKTsKQEAg
LTE2NjQsNyArMTY2NCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRl
Z2VyQ29udGVudHNTY2FsZUlzTm90RGlzdG9ydGVkRHVyaW5nUGFpbnQpCiAKICAgICAvLyBJbnZh
bGlkYXRlIHRoZSBlbnRpcmUgbGF5ZXIgaW4gY29udGVudCBzcGFjZS4gV2hlbiBwYWludGluZywg
dGhlIHJlY3QgZ2l2ZW4gdG8gd2Via2l0IHNob3VsZCBtYXRjaCB0aGUgbGF5ZXIncyBib3VuZHMu
CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChjb250ZW50UmVjdCk7Ci0gICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMp
OworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBjb250ZW50UmVjdCwgMCwg
bV9zdGF0cyk7CiAKICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEobGF5ZXJSZWN0LCBsYXllci0+dHJh
Y2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CiB9CkBAIC0xNjg3LDcgKzE2ODcs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2Nh
bGVJc05vdERpc3RvcnRlZER1cmluZ0ludmFsaQogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0
aXplVGV4dHVyZXMoKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgd2hvbGUgdGlsZS4KLSAgICBsYXll
ci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50UmVjdCwgMCwgbV9zdGF0cyk7
CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRSZWN0LCAwLCBt
X3N0YXRzKTsKICAgICBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cmVzZXRQYWludGVk
UmVjdCgpOwogCiAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5ZXItPnRyYWNr
aW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwpAQCAtMTY5OSw3ICsxNjk5LDcgQEAg
VEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxlSXNO
b3REaXN0b3J0ZWREdXJpbmdJbnZhbGkKIAogICAgIC8vIEludmFsaWRhdGUgdGhlIGVudGlyZSBs
YXllciBpbiBsYXllciBzcGFjZS4gV2hlbiBwYWludGluZywgdGhlIHJlY3QgZ2l2ZW4gdG8gd2Vi
a2l0IHNob3VsZCBtYXRjaCB0aGUgbGF5ZXIncyBib3VuZHMuCiAgICAgbGF5ZXItPnNldE5lZWRz
RGlzcGxheVJlY3QobGF5ZXJSZWN0KTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91
cGRhdGVyLCBjb250ZW50UmVjdCwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fcXVldWUsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsKIAogICAgIEVYUEVDVF9J
TlRfUkVDVF9FUShsYXllclJlY3QsIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5wYWlu
dGVkUmVjdCgpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156770</attachid>
            <date>2012-08-06 15:16:25 -0700</date>
            <delta_ts>2012-08-06 16:28:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93293-20120806181601.patch</filename>
            <type>text/plain</type>
            <size>125120</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg0NGNlOThiY2JlMzQ2
YTEwM2VkZmZkY2ZlMjZmNDg0NmFmODJlNi4uMzFkZTEwYjhkY2ZkM2RhZTNjOWM2ODYwOWEyNDJl
YjcyMzk0ZDM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg5IEBACiAyMDEyLTA4LTA2ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW0Nocm9taXVtXSBS
ZW5hbWUgQ0NUZXh0dXJlVXBkYXRlciB0byBDQ1RleHR1cmVVcGRhdGVRdWV1ZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRM
YXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgIChDb250ZW50TGF5ZXJDaHJvbWl1
bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bTo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9I
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEhlYWRzVXBEaXNwbGF5TGF5
ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVy
Q2hyb21pdW0uaDoKKyAgICAgICAgKEltYWdlTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlUGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUxheWVyQ2hyb21pdW06OnVwZGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0u
aDoKKyAgICAgICAgKFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50KToKKyAgICAgICAgKFRleHR1
cmVMYXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
aWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9t
aXVtOjp1cGRhdGVUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06
OnVwZGF0ZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UaWxlZExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFRpbGVkTGF5ZXJDaHJvbWl1bSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFpbnRNYXNrc0ZvclJlbmRlclN1cmZh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVu
dHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJv
eHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tbWl0QW5kQ29tcG9z
aXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVU
ZXh0dXJlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0
ZVF1ZXVlLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6Q0NUZXh0dXJlVXBkYXRlUXVl
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6On5DQ1RleHR1cmVV
cGRhdGVRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6YXBw
ZW5kRnVsbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6
YXBwZW5kUGFydGlhbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVR
dWV1ZTo6YXBwZW5kQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1
ZTo6dGFrZUZpcnN0RnVsbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRh
dGVRdWV1ZTo6dGFrZUZpcnN0UGFydGlhbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZTo6dGFrZUZpcnN0Q29weSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZTo6aGFzTW9yZVVwZGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRh
dGVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDVGV4dHVyZVVwZGF0ZVF1ZXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZVF1ZXVlOjpmdWxsVXBsb2FkU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6cGFydGlhbFVwbG9h
ZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6OmNvcHlTaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhy
ZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCisy
MDEyLTA4LTA2ICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKICAgICAg
ICAgW0Nocm9taXVtXSBSZWZhY3RvciBDQ1RleHR1cmVVcGRhdGVyIGludG8gQ0NUZXh0dXJlVXBk
YXRlciBhbmQgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNTk2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggMzkzZjU2N2Y1MmUyMzc4MGQ3ZmIyZTEwZTM0MmU1NzI4ZmI4M2ZiMS4uODk1NWFm
YzE3YjJkYmMyZmJlNjAwYTI2MzQ0NjZhMGNmMWMzMjgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wOC0wNiAgRGF2aWQgUmV2ZW1hbiAgPHJldmVt
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVuYW1lIENDVGV4dHVyZVVw
ZGF0ZXIgdG8gQ0NUZXh0dXJlVXBkYXRlUXVldWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzI5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WS4KKworICAgICAgICAqIHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlRleHR1cmVVcGRhdGVySW1wbDo6V2ViVGV4dHVyZVVwZGF0ZXJJbXBsKToK
KyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcDoKKyAgICAgICAgKFdURjo6
Q0NMYXllclRyZWVIb3N0VGVzdExheWVyT2NjbHVzaW9uOjpiZWdpblRlc3QpOgorICAgICAgICAo
V1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0TGF5ZXJPY2NsdXNpb25XaXRoRmlsdGVyczo6YmVnaW5U
ZXN0KToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdE1hbnlTdXJmYWNlczo6YmVn
aW5UZXN0KToKKyAgICAgICAgKiB0ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5j
cHA6CisgICAgICAgICogdGVzdHMvQ0NUaHJlYWRlZFRlc3QuY3BwOgorICAgICAgICAqIHRlc3Rz
L0NDVGlsZWRMYXllclRlc3RDb21tb24uY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkZha2VU
aWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZSk6CisgICAgICAgICogdGVzdHMvQ0NUaWxlZExheWVy
VGVzdENvbW1vbi5oOgorICAgICAgICAoRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSk6CisgICAgICAg
ICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL1Rp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorCiAyMDEyLTA4LTA2ICBOYXNrbyBPc2tvdiAgPG5h
c2tvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRpbmcgQVBJcyB0byBDaHJvbWl1bSBXZWJL
aXQgQVBJIHRvIGFsbG93IGZvciBjcmVhdGluZyBhbmQgbW9uaXRvcmluZyBmcmFtZSBoaWVyYXJj
aHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYjQ2ZTU3MWI2MjNkN2Y2NDkyYWUwMjMwYWM2NjY1Y2Iy
M2RkYTc2Zi4uOGY1M2E5MDVlMWViNmY0NWMzZDkxNDYwOTc0Nzc4NWI1ZTk5NjgzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtODQxNSw4ICs4NDE1LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuaCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVR
dWV1ZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcApp
bmRleCAwM2QzNDNlODBkZWQwYmIwMGVhMjEwNTc5ZTJhNzUzZmRhMmU3Y2NlLi4xZjlhZDIxNmU5
MTgzZWI2MWQ5MTQ2M2IzNTg1YzI1NDBjN2UyZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVy
Q2hyb21pdW0uY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJiBwcmlvCiAg
ICAgVGlsZWRMYXllckNocm9taXVtOjpzZXRUZXh0dXJlUHJpb3JpdGllcyhwcmlvcml0eUNhbGMp
OwogfQogCi12b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRl
ciYgdXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVuZGVy
aW5nU3RhdHMmIHN0YXRzKQordm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4
dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNp
b24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKQogewogICAgIGNyZWF0ZVRleHR1cmVVcGRhdGVy
SWZOZWVkZWQoKTsKIApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21p
dW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBDQ09jY2x1c2lvblRy
CiAgICAgaWYgKGRyYXdzQ29udGVudCgpKQogICAgICAgICBjb250ZW50UmVjdCA9IHZpc2libGVD
b250ZW50UmVjdCgpOwogCi0gICAgdXBkYXRlQ29udGVudFJlY3QodXBkYXRlciwgY29udGVudFJl
Y3QsIG9jY2x1c2lvbiwgc3RhdHMpOworICAgIHVwZGF0ZUNvbnRlbnRSZWN0KHF1ZXVlLCBjb250
ZW50UmVjdCwgb2NjbHVzaW9uLCBzdGF0cyk7CiAgICAgbV9uZWVkc0Rpc3BsYXkgPSBmYWxzZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29udGVudExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKaW5kZXggZjgzOTkzODkyMDc2NTE3
MGVmZWE0YTIxYzk0YjQ5N2JmOWFmOGQ4My4uNmMwNjhiMzBjZWViMTEwYTFlYjVhNzQ2YWI3OWE0
OGY3YjAxNjA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCkBAIC03Nyw3ICs3
Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dHVyZVByaW9yaXRpZXMoY29uc3QgQ0NQ
cmlvcml0eUNhbGN1bGF0b3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKEND
VGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0
YXRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVR
dWV1ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgbmVlZE1vcmVVcGRhdGVzKCkgT1ZFUlJJREU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXll
ckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggYjRjMTk3NDhhZjBlNjc4NzQy
N2I4N2RmZDQzNTlhMGRmYjM5OTFkNy4uYzZlNzU5YmRiNzI1NzhhOTViOWFiYjAxOGUzMDVjMTc2
MmIwZmU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0u
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6fkhlYWRz
VXBEaXNwbGF5TGF5ZXJDaHJvbWl1bSgpCiB7CiB9CiAKLXZvaWQgSGVhZHNVcERpc3BsYXlMYXll
ckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJh
Y2tlciosIENDUmVuZGVyaW5nU3RhdHMmKQordm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciosIENDUmVuZGVyaW5nU3RhdHMmKQogewogICAgIGNvbnN0IENDTGF5ZXJUcmVlU2V0dGluZ3Mm
IHNldHRpbmdzID0gbGF5ZXJUcmVlSG9zdCgpLT5zZXR0aW5ncygpOwogICAgIGludCBtYXhUZXh0
dXJlU2l6ZSA9IGxheWVyVHJlZUhvc3QoKS0+bGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLm1h
eFRleHR1cmVTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0u
aAppbmRleCBiN2QyNWU2YjVmMmYxMzlmYmNhMzgyNWFhODAxMjUzODg4MmUxZTdjLi5lNmE5ODMw
NDVhY2UyZjBiOTE4Y2E5N2M2NWFjMGE3YmNmYTZlNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFk
c1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtPiBjcmVhdGUoKTsK
ICAgICB2aXJ0dWFsIH5IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0oKTsKIAotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
KENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5k
ZXJpbmdTdGF0cyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIHNldEZvbnRBdGxhcyhQ
YXNzT3duUHRyPENDRm9udEF0bGFzPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNwcApp
bmRleCBkNDdmMTRiMWUzMDVkNTA4NjY1ODNhZDk0YzVjZDZlYTNjMDk1ZmFjLi41MDczZDFjYzhh
MTY1NTdkNzQzYTE2NzlkMGFjMDgxZmFlNGJhODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJv
bWl1bS5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6c2V0
VGV4dHVyZVByaW9yaXRpZXMoY29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImIHByaW9yaQogICAg
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6c2V0VGV4dHVyZVByaW9yaXRpZXMocHJpb3JpdHlDYWxjKTsK
IH0KIAotdm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1
cGRhdGVyLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdT
dGF0cyYgc3RhdHMpCit2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIEND
UmVuZGVyaW5nU3RhdHMmIHN0YXRzKQogewogICAgIGNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVk
ZWQoKTsKICAgICBpZiAobV9uZWVkc0Rpc3BsYXkpIHsKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lk
IEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNv
bnN0IENDT2NjbHVzaW9uVHJhYwogICAgICAgICBtX25lZWRzRGlzcGxheSA9IGZhbHNlOwogICAg
IH0KIAotICAgIHVwZGF0ZUNvbnRlbnRSZWN0KHVwZGF0ZXIsIHZpc2libGVDb250ZW50UmVjdCgp
LCBvY2NsdXNpb24sIHN0YXRzKTsKKyAgICB1cGRhdGVDb250ZW50UmVjdChxdWV1ZSwgdmlzaWJs
ZUNvbnRlbnRSZWN0KCksIG9jY2x1c2lvbiwgc3RhdHMpOwogfQogCiB2b2lkIEltYWdlTGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJD
aHJvbWl1bS5oCmluZGV4IDA0NDRjZDU3NDgzYTExYWFjNThhYWNjZDM4ZDM2ZmFhOTE2YzliNjAu
LmI1MGU1ZTcxNTcxY2MyYjJmNWQyMTZmODViMjdiZDA2MDY5YzVlNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdl
TGF5ZXJDaHJvbWl1bS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VGV4dHVyZVByaW9yaXRpZXMoY29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHND
b250ZW50c1NjYWxlKCkgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2b2lkIHNldEJpdG1hcChjb25z
dCBTa0JpdG1hcCYgaW1hZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDY2ZjBkZDhhMWY0NzZm
YjM4NmZjZTA3NzNkMGY3ODBmMmQ1M2UwNzEuLmI4NzFjYjE4NjJjN2Y4N2Y4NGFjMGExMDM5NmE1
MWE3NzUwYjlkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTYzLDcgKzYzLDcgQEAgc3RydWN0
IENDQW5pbWF0aW9uRXZlbnQ7CiBjbGFzcyBDQ0xheWVyQW5pbWF0aW9uRGVsZWdhdGU7CiBjbGFz
cyBDQ0xheWVySW1wbDsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdDsKLWNsYXNzIENDVGV4dHVyZVVw
ZGF0ZXI7CitjbGFzcyBDQ1RleHR1cmVVcGRhdGVRdWV1ZTsKIGNsYXNzIFNjcm9sbGJhckxheWVy
Q2hyb21pdW07CiBzdHJ1Y3QgQ0NBbmltYXRpb25FdmVudDsKIHN0cnVjdCBDQ1JlbmRlcmluZ1N0
YXRzOwpAQCAtMjE2LDcgKzIxNiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZXNlIG1ldGhvZHMg
dHlwaWNhbGx5IG5lZWQgdG8gYmUgb3ZlcndyaXR0ZW4gYnkgZGVyaXZlZCBjbGFzc2VzLgogICAg
IHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2lzRHJhd2FibGU7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09j
Y2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgeyB9CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlcios
IENDUmVuZGVyaW5nU3RhdHMmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgbmVlZE1vcmVVcGRhdGVz
KCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNNYXNrKGJvb2wpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBiaW5kQ29udGVudHNUZXh0dXJlKCkgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXll
ckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCmluZGV4IDVhOWZiZjVlYWFiMmIzYTQ1YzdhMmY3
MmM5OWVlZmUzZjFmODg1ZDQuLjRlMDBjZmY5MzY4Nzc1ZjE5MmUyY2FlYmRiMGQ0NDk0NDAwZmIy
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwCkBAIC0zMiw3ICsz
Miw3IEBACiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJjYy9D
Q0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJjYy9DQ1Njcm9sbGJhckxheWVySW1wbC5oIgot
I2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlICJjYy9DQ1RleHR1cmVV
cGRhdGVRdWV1ZS5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSZWN0Lmg+CiAKIHVzaW5nIFdlYktp
dDo6V2ViUmVjdDsKQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIFNjcm9sbGJhckxheWVyQ2hyb21p
dW06OmNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQoKQogICAgICAgICBtX3RodW1iID0gbV90
aHVtYlVwZGF0ZXItPmNyZWF0ZVRleHR1cmUobGF5ZXJUcmVlSG9zdCgpLT5jb250ZW50c1RleHR1
cmVNYW5hZ2VyKCkpOwogfQogCi12b2lkIFNjcm9sbGJhckxheWVyQ2hyb21pdW06OnVwZGF0ZVBh
cnQoTGF5ZXJUZXh0dXJlVXBkYXRlciogcGFpbnRlciwgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4
dHVyZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgcmVjdCwgQ0NUZXh0dXJlVXBkYXRlciYgdXBk
YXRlciwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCit2b2lkIFNjcm9sbGJhckxheWVyQ2hyb21p
dW06OnVwZGF0ZVBhcnQoTGF5ZXJUZXh0dXJlVXBkYXRlciogcGFpbnRlciwgTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6VGV4dHVyZSogdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgcmVjdCwgQ0NUZXh0dXJl
VXBkYXRlUXVldWUmIHF1ZXVlLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKICAgICAvLyBT
a2lwIHBhaW50aW5nIGFuZCB1cGxvYWRpbmcgaWYgdGhlcmUgYXJlIG5vIGludmFsaWRhdGlvbnMg
YW5kCiAgICAgLy8gd2UgYWxyZWFkeSBoYXZlIHZhbGlkIHRleHR1cmUgZGF0YS4KQEAgLTIyNyw3
ICsyMjcsNyBAQCB2b2lkIFNjcm9sbGJhckxheWVyQ2hyb21pdW06OnVwZGF0ZVBhcnQoTGF5ZXJU
ZXh0dXJlVXBkYXRlciogcGFpbnRlciwgTGF5ZXJUZXh0dQogCiAgICAgSW50UmVjdCBkZXN0UmVj
dChJbnRQb2ludCgpLCByZWN0LnNpemUoKSk7CiAgICAgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0
ZXJzIHVwbG9hZCA9IHsgdGV4dHVyZSwgcmVjdCwgZGVzdFJlY3QgfTsKLSAgICB1cGRhdGVyLmFw
cGVuZEZ1bGxVcGxvYWQodXBsb2FkKTsKKyAgICBxdWV1ZS5hcHBlbmRGdWxsVXBsb2FkKHVwbG9h
ZCk7CiB9CiAKIApAQCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1
bTo6c2V0VGV4dHVyZVByaW9yaXRpZXMoY29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImKQogICAg
IH0KIH0KIAotdm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBk
YXRlciYgdXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0
cyYgc3RhdHMpCit2b2lkIFNjcm9sbGJhckxheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVV
cGRhdGVRdWV1ZSYgcXVldWUsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5n
U3RhdHMmIHN0YXRzKQogewogICAgIGlmIChjb250ZW50Qm91bmRzKCkuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CkBAIC0yNjMsMTUgKzI2MywxNSBAQCB2b2lkIFNjcm9sbGJhckxheWVyQ2hy
b21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBDQ09jY2x1c2lv
bgogCiAgICAgSW50UG9pbnQgc2Nyb2xsYmFyT3JpZ2luKG1fc2Nyb2xsYmFyLT5sb2NhdGlvbigp
LngsIG1fc2Nyb2xsYmFyLT5sb2NhdGlvbigpLnkpOwogICAgIEludFJlY3QgY29udGVudFJlY3Qo
c2Nyb2xsYmFyT3JpZ2luLCBjb250ZW50Qm91bmRzKCkpOwotICAgIHVwZGF0ZVBhcnQobV9iYWNr
VHJhY2tVcGRhdGVyLmdldCgpLCBtX2JhY2tUcmFjay5nZXQoKSwgY29udGVudFJlY3QsIHVwZGF0
ZXIsIHN0YXRzKTsKKyAgICB1cGRhdGVQYXJ0KG1fYmFja1RyYWNrVXBkYXRlci5nZXQoKSwgbV9i
YWNrVHJhY2suZ2V0KCksIGNvbnRlbnRSZWN0LCBxdWV1ZSwgc3RhdHMpOwogICAgIGlmIChtX2Zv
cmVUcmFjayAmJiBtX2ZvcmVUcmFja1VwZGF0ZXIpCi0gICAgICAgIHVwZGF0ZVBhcnQobV9mb3Jl
VHJhY2tVcGRhdGVyLmdldCgpLCBtX2ZvcmVUcmFjay5nZXQoKSwgY29udGVudFJlY3QsIHVwZGF0
ZXIsIHN0YXRzKTsKKyAgICAgICAgdXBkYXRlUGFydChtX2ZvcmVUcmFja1VwZGF0ZXIuZ2V0KCks
IG1fZm9yZVRyYWNrLmdldCgpLCBjb250ZW50UmVjdCwgcXVldWUsIHN0YXRzKTsKIAogICAgIC8v
IENvbnNpZGVyIHRoZSB0aHVtYiB0byBiZSBhdCB0aGUgb3JpZ2luIHdoZW4gcGFpbnRpbmcuCiAg
ICAgV2ViS2l0OjpXZWJSZWN0IHRodW1iUmVjdCA9IG1fZ2VvbWV0cnkudGh1bWJSZWN0KG1fc2Ny
b2xsYmFyLmdldCgpKTsKICAgICBJbnRSZWN0IG9yaWdpblRodW1iUmVjdCA9IEludFJlY3QoMCwg
MCwgdGh1bWJSZWN0LndpZHRoLCB0aHVtYlJlY3QuaGVpZ2h0KTsKICAgICBpZiAoIW9yaWdpblRo
dW1iUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHVwZGF0ZVBhcnQobV90aHVtYlVwZGF0ZXIuZ2V0
KCksIG1fdGh1bWIuZ2V0KCksIG9yaWdpblRodW1iUmVjdCwgdXBkYXRlciwgc3RhdHMpOworICAg
ICAgICB1cGRhdGVQYXJ0KG1fdGh1bWJVcGRhdGVyLmdldCgpLCBtX3RodW1iLmdldCgpLCBvcmln
aW5UaHVtYlJlY3QsIHF1ZXVlLCBzdGF0cyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxh
eWVyQ2hyb21pdW0uaAppbmRleCA0MjUyZTI2OGVkY2MxZDg5YjQzNTNlNDU1NWU0NzcxZjkzMTFj
MDQyLi5jNmRjMzkwYzY0MGViOWRiMDRjOTNhNDUzY2I5ODlmZDc1ZDBiNmI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJMYXll
ckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bS5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsYmFyOwogY2xhc3MgU2Nyb2xsYmFyVGhlbWVDb21wb3Np
dGU7Ci1jbGFzcyBDQ1RleHR1cmVVcGRhdGVyOworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlUXVldWU7
CiAKIGNsYXNzIFNjcm9sbGJhckxheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJDaHJvbWl1bSB7
CiBwdWJsaWM6CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIExheWVyQ2hyb21p
dW0gaW50ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIHNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0
IENDUHJpb3JpdHlDYWxjdWxhdG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJp
bmdTdGF0cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBk
YXRlUXVldWUmLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVI
b3N0KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXll
ckltcGwqKSBPVkVSUklERTsKIApAQCAtNjAsNyArNjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgU2Ny
b2xsYmFyTGF5ZXJDaHJvbWl1bShQYXNzT3duUHRyPFdlYktpdDo6V2ViU2Nyb2xsYmFyPiwgV2Vi
S2l0OjpXZWJTY3JvbGxiYXJUaGVtZVBhaW50ZXIsIFdlYktpdDo6V2ViU2Nyb2xsYmFyVGhlbWVH
ZW9tZXRyeSwgaW50IHNjcm9sbExheWVySWQpOwogCiBwcml2YXRlOgotICAgIHZvaWQgdXBkYXRl
UGFydChMYXllclRleHR1cmVVcGRhdGVyKiwgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZSos
IGNvbnN0IEludFJlY3QmLCBDQ1RleHR1cmVVcGRhdGVyJiwgQ0NSZW5kZXJpbmdTdGF0cyYpOwor
ICAgIHZvaWQgdXBkYXRlUGFydChMYXllclRleHR1cmVVcGRhdGVyKiwgTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6VGV4dHVyZSosIGNvbnN0IEludFJlY3QmLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIEND
UmVuZGVyaW5nU3RhdHMmKTsKICAgICB2b2lkIGNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQo
KTsKIAogICAgIE93blB0cjxXZWJLaXQ6OldlYlNjcm9sbGJhcj4gbV9zY3JvbGxiYXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJl
TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOTBiYzcwZWE5NmE0MDY1OTg3ZWJj
NjEzNWVmYmJiMzg2NTQxMGIxYi4uN2Q1NzVkMzFmNjNhNTZjY2M5MDIwODEwMWIyODVhM2NjZWEz
ZDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcApAQCAtMTI5LDEwICsx
MjksMTAgQEAgYm9vbCBUZXh0dXJlTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCkgY29uc3QK
ICAgICByZXR1cm4gKG1fY2xpZW50IHx8IG1fdGV4dHVyZUlkKSAmJiAhbV9jb250ZXh0TG9zdCAm
JiBMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQoKTsKIH0KIAotdm9pZCBUZXh0dXJlTGF5ZXJD
aHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVz
aW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKQordm9pZCBUZXh0dXJlTGF5ZXJDaHJvbWl1
bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2NsdXNpb25U
cmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpCiB7CiAgICAgaWYgKG1fY2xpZW50KSB7Ci0gICAg
ICAgIG1fdGV4dHVyZUlkID0gbV9jbGllbnQtPnByZXBhcmVUZXh0dXJlKHVwZGF0ZXIpOworICAg
ICAgICBtX3RleHR1cmVJZCA9IG1fY2xpZW50LT5wcmVwYXJlVGV4dHVyZShxdWV1ZSk7CiAgICAg
ICAgIG1fY29udGV4dExvc3QgPSBtX2NsaWVudC0+Y29udGV4dCgpLT5nZXRHcmFwaGljc1Jlc2V0
U3RhdHVzQVJCKCkgIT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVy
ZUxheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVMYXllckNocm9taXVtLmgKaW5kZXggMTNmNWNiODQ5NjM2Njc3MTkzOWM3MGRi
NTE1NmNmZWY0MzFhYmFmZi4uNGI2NzIxYmI0OGM1ZGZhOGRkMDI2NDQ3MzZkYzM4ZWJhM2M3OWNi
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGV4dHVyZUxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oCkBAIC00MCw5ICs0MCw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50IHsKIHB1
YmxpYzoKICAgICAvLyBDYWxsZWQgdG8gcHJlcGFyZSB0aGlzIGxheWVyJ3MgdGV4dHVyZSBmb3Ig
Y29tcG9zaXRpbmcuIFRoZSBjbGllbnQgbWF5IHF1ZXVlIGEgdGV4dHVyZQotICAgIC8vIHVwbG9h
ZCBvciBjb3B5IG9uIHRoZSBDQ1RleHR1cmVVcGRhdGVyLgorICAgIC8vIHVwbG9hZCBvciBjb3B5
IG9uIHRoZSBDQ1RleHR1cmVVcGRhdGVRdWV1ZS4KICAgICAvLyBSZXR1cm5zIHRoZSB0ZXh0dXJl
IElEIHRvIGJlIHVzZWQgZm9yIGNvbXBvc2l0aW5nLgotICAgIHZpcnR1YWwgdW5zaWduZWQgcHJl
cGFyZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlciYpID0gMDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVk
IHByZXBhcmVUZXh0dXJlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJikgPSAwOwogCiAgICAgLy8gUmV0
dXJucyB0aGUgY29udGV4dCB0aGF0IGlzIHByb3ZpZGluZyB0aGUgdGV4dHVyZS4gVXNlZCBmb3Ig
cmF0ZSBsaW1pdGluZyBhbmQgZGV0ZWN0aW5nIGxvc3QgY29udGV4dC4KICAgICB2aXJ0dWFsIFdl
YktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQoKSA9IDA7CkBAIC04Nyw3ICs4Nyw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJU
cmVlSG9zdCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImLCBj
b25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1ZSYsIGNvbnN0IENDT2Nj
bHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopIE9WRVJSSURFOwogCiBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAppbmRleCA2ODNhNDVhY2JhNWE1YjQ2
M2E1N2E0YzIxZjAwMmMwYmJjMzg4M2I4Li5iNzZjNzNlZmUxODFkOTUyOWE3NGVjZmQxNTdiMGU0
ZTc0YmZiYTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAKICNpbmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJU
cmVlSG9zdC5oIgogI2luY2x1ZGUgImNjL0NDT3ZlcmRyYXdNZXRyaWNzLmgiCi0jaW5jbHVkZSAi
Y2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVl
LmgiCiAjaW5jbHVkZSAiY2MvQ0NUaWxlZExheWVySW1wbC5oIgogCiAjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CkBAIC0zNDUsNyArMzQ1LDcgQEAgYm9vbCBUaWxlZExheWVyQ2hyb21pdW06
OnRpbGVOZWVkc0J1ZmZlcmVkVXBkYXRlKFVwZGF0YWJsZVRpbGUqIHRpbGUpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLXZvaWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVUaWxlcyhib29sIGlk
bGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20sIENDVGV4dHVyZVVw
ZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1Jl
bmRlcmluZ1N0YXRzJiBzdGF0cykKK3ZvaWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVUaWxl
cyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20sIEND
VGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2Ns
dXNpb24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKQogewogICAgIGNyZWF0ZVRleHR1cmVVcGRh
dGVySWZOZWVkZWQoKTsKIApAQCAtNTA4LDkgKzUwOCw5IEBAIHZvaWQgVGlsZWRMYXllckNocm9t
aXVtOjp1cGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQs
IGluCiAKICAgICAgICAgICAgIFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQgPSB7
IHRpbGUtPnRleHR1cmUoKSwgc291cmNlUmVjdCwgZGVzdFJlY3QgfTsKICAgICAgICAgICAgIGlm
ICh0aWxlLT5wYXJ0aWFsVXBkYXRlKQotICAgICAgICAgICAgICAgIHVwZGF0ZXIuYXBwZW5kUGFy
dGlhbFVwbG9hZCh1cGxvYWQpOworICAgICAgICAgICAgICAgIHF1ZXVlLmFwcGVuZFBhcnRpYWxV
cGxvYWQodXBsb2FkKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB1cGRhdGVy
LmFwcGVuZEZ1bGxVcGxvYWQodXBsb2FkKTsKKyAgICAgICAgICAgICAgICBxdWV1ZS5hcHBlbmRG
dWxsVXBsb2FkKHVwbG9hZCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC02MTEsNyArNjExLDcg
QEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnJlc2V0VXBkYXRlU3RhdGUoKQogICAgIH0KIH0K
IAotdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRSZWN0KENDVGV4dHVyZVVw
ZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBDQ09jY2x1
c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCit2b2lkIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudFJlY3QoQ0NUZXh0dXJlVXBkYXRlUXVldWUm
IHF1ZXVlLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgQ0NPY2NsdXNpb25UcmFj
a2VyKiBvY2NsdXNpb24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKQogewogICAgIG1fc2tpcHNE
cmF3ID0gZmFsc2U7CiAgICAgbV9za2lwc0lkbGVQYWludCA9IGZhbHNlOwpAQCAtNjI2LDcgKzYy
Niw3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50UmVjdChDQ1RleHR1
cmVVcGRhdGVyJiB1cGRhdGVyLCBjb25zdCBJbnRSCiAgICAgaWYgKCFjb250ZW50UmVjdC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbTsKICAgICAgICAg
bV90aWxlci0+Y29udGVudFJlY3RUb1RpbGVJbmRpY2VzKGNvbnRlbnRSZWN0LCBsZWZ0LCB0b3As
IHJpZ2h0LCBib3R0b20pOwotICAgICAgICB1cGRhdGVUaWxlcyhmYWxzZSwgbGVmdCwgdG9wLCBy
aWdodCwgYm90dG9tLCB1cGRhdGVyLCBvY2NsdXNpb24sIHN0YXRzKTsKKyAgICAgICAgdXBkYXRl
VGlsZXMoZmFsc2UsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgcXVldWUsIG9jY2x1c2lvbiwg
c3RhdHMpOwogICAgIH0KIAogICAgIC8vIEFib3J0IGlmIHdlIGhhdmUgYWxyZWFkeSBwYWludGVk
IG9yIHJ1biBvdXQgb2YgbWVtb3J5LgpAQCAtNjQzLDE2ICs2NDMsMTYgQEAgdm9pZCBUaWxlZExh
eWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRSZWN0KENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIs
IGNvbnN0IEludFIKIAogICAgIC8vIElmIHRoZSBsYXllciBpcyBub3QgdmlzaWJsZSwgd2UgaGF2
ZSBub3RoaW5nIHRvIGV4cGFuZCBmcm9tLCBzbyBpbnN0ZWFkIHdlIHByZXBhaW50IHRoZSBvdXRl
ci1tb3N0IHNldCBvZiB0aWxlcy4KICAgICBpZiAoY29udGVudFJlY3QuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIHByZXBhaW50TGVmdCwgcHJlcGFpbnRUb3AsIHByZXBh
aW50UmlnaHQsIHByZXBhaW50VG9wLCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgICAgIHVwZGF0
ZVRpbGVzKHRydWUsIHByZXBhaW50TGVmdCwgcHJlcGFpbnRUb3AsIHByZXBhaW50UmlnaHQsIHBy
ZXBhaW50VG9wLCBxdWV1ZSwgMCwgc3RhdHMpOwogICAgICAgICBpZiAobV9kaWRQYWludCB8fCBt
X3NraXBzSWRsZVBhaW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB1cGRhdGVUaWxl
cyh0cnVlLCBwcmVwYWludExlZnQsIHByZXBhaW50Qm90dG9tLCBwcmVwYWludFJpZ2h0LCBwcmVw
YWludEJvdHRvbSwgdXBkYXRlciwgMCwgc3RhdHMpOworICAgICAgICB1cGRhdGVUaWxlcyh0cnVl
LCBwcmVwYWludExlZnQsIHByZXBhaW50Qm90dG9tLCBwcmVwYWludFJpZ2h0LCBwcmVwYWludEJv
dHRvbSwgcXVldWUsIDAsIHN0YXRzKTsKICAgICAgICAgaWYgKG1fZGlkUGFpbnQgfHwgbV9za2lw
c0lkbGVQYWludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdXBkYXRlVGlsZXModHJ1
ZSwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludFRvcCwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludEJvdHRv
bSwgdXBkYXRlciwgMCwgc3RhdHMpOworICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBwcmVwYWlu
dExlZnQsIHByZXBhaW50VG9wLCBwcmVwYWludExlZnQsIHByZXBhaW50Qm90dG9tLCBxdWV1ZSwg
MCwgc3RhdHMpOwogICAgICAgICBpZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBhaW50KQog
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBwcmVwYWludFJp
Z2h0LCBwcmVwYWludFRvcCwgcHJlcGFpbnRSaWdodCwgcHJlcGFpbnRCb3R0b20sIHVwZGF0ZXIs
IDAsIHN0YXRzKTsKKyAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwgcHJlcGFpbnRSaWdodCwgcHJl
cGFpbnRUb3AsIHByZXBhaW50UmlnaHQsIHByZXBhaW50Qm90dG9tLCBxdWV1ZSwgMCwgc3RhdHMp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NjAsNyArNjYwLDcgQEAgdm9pZCBUaWxl
ZExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRSZWN0KENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0
ZXIsIGNvbnN0IEludFIKICAgICBtX3RpbGVyLT5jb250ZW50UmVjdFRvVGlsZUluZGljZXMoY29u
dGVudFJlY3QsIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSk7CiAKICAgICAvLyBPdGhlcndpc2Us
IHByZXBhaW50IGFueXRoaW5nIHRoYXQgd2FzIG9jY2x1ZGVkIGJ1dCBpbnNpZGUgdGhlIGxheWVy
J3MgdmlzaWJsZSByZWdpb24uCi0gICAgdXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCByaWdo
dCwgYm90dG9tLCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgdXBkYXRlVGlsZXModHJ1ZSwgbGVm
dCwgdG9wLCByaWdodCwgYm90dG9tLCBxdWV1ZSwgMCwgc3RhdHMpOwogICAgIGlmIChtX2RpZFBh
aW50IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjY4LDI1ICs2
NjgsMjUgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRSZWN0KENDVGV4
dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IEludFIKICAgICB3aGlsZSAoIW1fc2tpcHNJZGxl
UGFpbnQgJiYgKGxlZnQgPiBwcmVwYWludExlZnQgfHwgdG9wID4gcHJlcGFpbnRUb3AgfHwgcmln
aHQgPCBwcmVwYWludFJpZ2h0IHx8IGJvdHRvbSA8IHByZXBhaW50Qm90dG9tKSkgewogICAgICAg
ICBpZiAoYm90dG9tIDwgcHJlcGFpbnRCb3R0b20pIHsKICAgICAgICAgICAgICsrYm90dG9tOwot
ICAgICAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgYm90dG9tLCByaWdodCwgYm90dG9t
LCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBsZWZ0
LCBib3R0b20sIHJpZ2h0LCBib3R0b20sIHF1ZXVlLCAwLCBzdGF0cyk7CiAgICAgICAgICAgICBp
ZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBhaW50KQogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGlmICh0b3AgPiBwcmVwYWludFRvcCkgewogICAgICAgICAg
ICAgLS10b3A7Ci0gICAgICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBsZWZ0LCB0b3AsIHJpZ2h0
LCB0b3AsIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUs
IGxlZnQsIHRvcCwgcmlnaHQsIHRvcCwgcXVldWUsIDAsIHN0YXRzKTsKICAgICAgICAgICAgIGlm
IChtX2RpZFBhaW50IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGxlZnQgPiBwcmVwYWludExlZnQpIHsKICAgICAgICAg
ICAgIC0tbGVmdDsKLSAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIHRvcCwgbGVm
dCwgYm90dG9tLCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgICAgICAgICB1cGRhdGVUaWxlcyh0
cnVlLCBsZWZ0LCB0b3AsIGxlZnQsIGJvdHRvbSwgcXVldWUsIDAsIHN0YXRzKTsKICAgICAgICAg
ICAgIGlmIChtX2RpZFBhaW50IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJpZ2h0IDwgcHJlcGFpbnRSaWdodCkgewog
ICAgICAgICAgICAgKytyaWdodDsKLSAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIHJpZ2h0
LCB0b3AsIHJpZ2h0LCBib3R0b20sIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgICAgIHVw
ZGF0ZVRpbGVzKHRydWUsIHJpZ2h0LCB0b3AsIHJpZ2h0LCBib3R0b20sIHF1ZXVlLCAwLCBzdGF0
cyk7CiAgICAgICAgICAgICBpZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBhaW50KQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5o
CmluZGV4IDY3ZTRmMDJjZmVkNzk1YmVjNDNiYzlkODE1NTRlZGQ2Mzg1Yjk5M2YuLjJmNTUzYTBm
M2M5Mjk0MGFlODJhN2U1NGVmYmYwZDA1MzNiNjBlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5oCkBAIC04Myw3ICs4Myw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlc2V0VXBkYXRl
U3RhdGUoKTsKIAogICAgIC8vIFByZXBhcmUgZGF0YSBuZWVkZWQgdG8gdXBkYXRlIHRleHR1cmVz
IHRoYXQgaW50ZXJzZWN0IHdpdGggY29udGVudFJlY3QuCi0gICAgdm9pZCB1cGRhdGVDb250ZW50
UmVjdChDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0
IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKTsKKyAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRSZWN0KENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgSW50UmVjdCYgY29udGVu
dFJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKTsKIAog
ICAgIC8vIEFmdGVyIHByZXBhcmluZyBhbiB1cGRhdGUsIHJldHVybnMgdHJ1ZSBpZiBtb3JlIHBh
aW50aW5nIGlzIG5lZWRlZC4KICAgICBib29sIG5lZWRzSWRsZVBhaW50KGNvbnN0IEludFJlY3Qm
IHZpc2libGVDb250ZW50UmVjdCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgc2V0VGV4dHVyZVByaW9yaXRpZXNJblJlY3QoY29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0
b3ImLCBjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QpOwogCi0gICAgdm9pZCB1cGRh
dGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0
b20sIENDVGV4dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRl
cmluZ1N0YXRzJik7CisgICAgdm9pZCB1cGRhdGVUaWxlcyhib29sIGlkbGUsIGludCBsZWZ0LCBp
bnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20sIENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29u
c3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpOwogCiAgICAgVXBkYXRh
YmxlVGlsZSogdGlsZUF0KGludCwgaW50KSBjb25zdDsKICAgICBVcGRhdGFibGVUaWxlKiBjcmVh
dGVUaWxlKGludCwgaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDdm
NmM0OTlhZTJkYTlkMzNjZjk3NjQwYzJhYTE2NDg1ZGQ4Zjk0YzguLmY3ZGJmYmE1Yjc4NTcwNjJi
OGVhOGMzMDIyZDA0ZjdhNzZmNGNmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cApAQCAtNDU2LDcgKzQ1Niw3IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0Ojppbml0aWFsaXplTGF5
ZXJSZW5kZXJlcklmTmVlZGVkKCkKIH0KIAogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRl
TGF5ZXJzKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIHNpemVfdCBtZW1vcnlBbGxvY2F0aW9u
TGltaXRCeXRlcykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoQ0NUZXh0dXJl
VXBkYXRlUXVldWUmIHF1ZXVlLCBzaXplX3QgbWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMpCiB7
CiAgICAgQVNTRVJUKG1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKTsKICAgICBBU1NFUlQobWVt
b3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMpOwpAQCAtNDY5LDEwICs0NjksMTAgQEAgdm9pZCBDQ0xh
eWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyhDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBzaXpl
X3QgbWVtb3J5QWxsb2MKIAogICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+c2V0TWF4TWVt
b3J5TGltaXRCeXRlcyhtZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyk7CiAKLSAgICB1cGRhdGVM
YXllcnMocm9vdExheWVyKCksIHVwZGF0ZXIpOworICAgIHVwZGF0ZUxheWVycyhyb290TGF5ZXIo
KSwgcXVldWUpOwogfQogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzKExheWVy
Q2hyb21pdW0qIHJvb3RMYXllciwgQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKK3ZvaWQgQ0NM
YXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoTGF5ZXJDaHJvbWl1bSogcm9vdExheWVyLCBDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ0xh
eWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyIpOwogCkBAIC00ODksNyArNDg5LDcgQEAgdm9pZCBD
Q0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyhMYXllckNocm9taXVtKiByb290TGF5ZXIsIEND
VGV4dHVyZVVwZGF0ZXImIHUKICAgICAvLyBSZXNldCBwYXJ0aWFsIHRleHR1cmUgdXBkYXRlIHJl
cXVlc3RzLgogICAgIG1fcGFydGlhbFRleHR1cmVVcGRhdGVSZXF1ZXN0cyA9IDA7CiAKLSAgICBi
b29sIG5lZWRNb3JlVXBkYXRlcyA9IHBhaW50TGF5ZXJDb250ZW50cyh1cGRhdGVMaXN0LCB1cGRh
dGVyKTsKKyAgICBib29sIG5lZWRNb3JlVXBkYXRlcyA9IHBhaW50TGF5ZXJDb250ZW50cyh1cGRh
dGVMaXN0LCBxdWV1ZSk7CiAgICAgaWYgKG1fdHJpZ2dlcklkbGVVcGRhdGVzICYmIG5lZWRNb3Jl
VXBkYXRlcykKICAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKIApAQCAtNTY1LDcgKzU2NSw3IEBA
IHNpemVfdCBDQ0xheWVyVHJlZUhvc3Q6OmNhbGN1bGF0ZU1lbW9yeUZvclJlbmRlclN1cmZhY2Vz
KGNvbnN0IExheWVyTGlzdCYgdXBkYXRlCiAgICAgcmV0dXJuIHJlYWRiYWNrQnl0ZXMgKyBtYXhC
YWNrZ3JvdW5kVGV4dHVyZUJ5dGVzICsgY29udGVudHNUZXh0dXJlQnl0ZXM7CiB9CiAKLWJvb2wg
Q0NMYXllclRyZWVIb3N0OjpwYWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZShMYXllckNocm9taXVt
KiByZW5kZXJTdXJmYWNlTGF5ZXIsIENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCitib29sIEND
TGF5ZXJUcmVlSG9zdDo6cGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSog
cmVuZGVyU3VyZmFjZUxheWVyLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUpCiB7CiAgICAg
Ly8gTm90ZTogTWFza3MgYW5kIHJlcGxpY2FzIG9ubHkgZXhpc3QgZm9yIGxheWVycyB0aGF0IG93
biByZW5kZXIgc3VyZmFjZXMuIElmIHdlIHJlYWNoIHRoaXMgcG9pbnQKICAgICAvLyBpbiBjb2Rl
LCB3ZSBhbHJlYWR5IGtub3cgdGhhdCBhdCBsZWFzdCBzb21ldGhpbmcgd2lsbCBiZSBkcmF3biBp
bnRvIHRoaXMgcmVuZGVyIHN1cmZhY2UsIHNvIHRoZQpAQCAtNTc0LDE5ICs1NzQsMTkgQEAgYm9v
bCBDQ0xheWVyVHJlZUhvc3Q6OnBhaW50TWFza3NGb3JSZW5kZXJTdXJmYWNlKExheWVyQ2hyb21p
dW0qIHJlbmRlclN1cmZhY2VMYXkKICAgICBib29sIG5lZWRNb3JlVXBkYXRlcyA9IGZhbHNlOwog
ICAgIExheWVyQ2hyb21pdW0qIG1hc2tMYXllciA9IHJlbmRlclN1cmZhY2VMYXllci0+bWFza0xh
eWVyKCk7CiAgICAgaWYgKG1hc2tMYXllcikgewotICAgICAgICBtYXNrTGF5ZXItPnVwZGF0ZSh1
cGRhdGVyLCAwLCBtX3JlbmRlcmluZ1N0YXRzKTsKKyAgICAgICAgbWFza0xheWVyLT51cGRhdGUo
cXVldWUsIDAsIG1fcmVuZGVyaW5nU3RhdHMpOwogICAgICAgICBuZWVkTW9yZVVwZGF0ZXMgfD0g
bWFza0xheWVyLT5uZWVkTW9yZVVwZGF0ZXMoKTsKICAgICB9CiAKICAgICBMYXllckNocm9taXVt
KiByZXBsaWNhTWFza0xheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyLT5yZXBsaWNhTGF5ZXIoKSA/
IHJlbmRlclN1cmZhY2VMYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpIDogMDsKICAg
ICBpZiAocmVwbGljYU1hc2tMYXllcikgewotICAgICAgICByZXBsaWNhTWFza0xheWVyLT51cGRh
dGUodXBkYXRlciwgMCwgbV9yZW5kZXJpbmdTdGF0cyk7CisgICAgICAgIHJlcGxpY2FNYXNrTGF5
ZXItPnVwZGF0ZShxdWV1ZSwgMCwgbV9yZW5kZXJpbmdTdGF0cyk7CiAgICAgICAgIG5lZWRNb3Jl
VXBkYXRlcyB8PSByZXBsaWNhTWFza0xheWVyLT5uZWVkTW9yZVVwZGF0ZXMoKTsKICAgICB9CiAg
ICAgcmV0dXJuIG5lZWRNb3JlVXBkYXRlczsKIH0KIAotYm9vbCBDQ0xheWVyVHJlZUhvc3Q6OnBh
aW50TGF5ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXllckxpc3Qs
IENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCitib29sIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRM
YXllckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgQ0NU
ZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlKQogewogICAgIC8vIFVzZSBGcm9udFRvQmFjayB0byBh
bGxvdyBmb3IgdGVzdGluZyBvY2NsdXNpb24gYW5kIHBlcmZvcm1pbmcgY3VsbGluZyBkdXJpbmcg
dGhlIHRyZWUgd2Fsay4KICAgICB0eXBlZGVmIENDTGF5ZXJJdGVyYXRvcjxMYXllckNocm9taXVt
LCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4sIFJlbmRlclN1cmZhY2VDaHJvbWl1bSwg
Q0NMYXllckl0ZXJhdG9yQWN0aW9uczo6RnJvbnRUb0JhY2s+IENDTGF5ZXJJdGVyYXRvclR5cGU7
CkBAIC02MDQsMTAgKzYwNCwxMCBAQCBib29sIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRMYXllckNv
bnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdAogCiAgICAgICAg
IGlmIChpdC5yZXByZXNlbnRzVGFyZ2V0UmVuZGVyU3VyZmFjZSgpKSB7CiAgICAgICAgICAgICBB
U1NFUlQoaXQtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd09wYWNpdHkoKSB8fCBpdC0+cmVuZGVyU3Vy
ZmFjZSgpLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOwotICAgICAgICAgICAgbmVlZE1vcmVV
cGRhdGVzIHw9IHBhaW50TWFza3NGb3JSZW5kZXJTdXJmYWNlKCppdCwgdXBkYXRlcik7CisgICAg
ICAgICAgICBuZWVkTW9yZVVwZGF0ZXMgfD0gcGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoKml0
LCBxdWV1ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXQucmVwcmVzZW50c0l0c2VsZigpKSB7CiAg
ICAgICAgICAgICBBU1NFUlQoIWl0LT5ib3VuZHMoKS5pc0VtcHR5KCkpOwotICAgICAgICAgICAg
aXQtPnVwZGF0ZSh1cGRhdGVyLCAmb2NjbHVzaW9uVHJhY2tlciwgbV9yZW5kZXJpbmdTdGF0cyk7
CisgICAgICAgICAgICBpdC0+dXBkYXRlKHF1ZXVlLCAmb2NjbHVzaW9uVHJhY2tlciwgbV9yZW5k
ZXJpbmdTdGF0cyk7CiAgICAgICAgICAgICBuZWVkTW9yZVVwZGF0ZXMgfD0gaXQtPm5lZWRNb3Jl
VXBkYXRlcygpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKaW5kZXgg
OGNhZjAwYjhmNWNmY2M4ZjdjNmU3Njk0ZTAyMjUwYzgzYjE1MTY0Mi4uMDYxZDdmMDk3MjBlMzdk
ZWVlZjY2NGMyMTRiMWYyNGI3YTdhOTM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgK
QEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgQ0NMYXllckNocm9taXVtOwogY2xhc3MgQ0NMYXllclRy
ZWVIb3N0SW1wbDsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQ7CiBjbGFzcyBDQ1By
aW9yaXRpemVkVGV4dHVyZU1hbmFnZXI7Ci1jbGFzcyBDQ1RleHR1cmVVcGRhdGVyOworY2xhc3Mg
Q0NUZXh0dXJlVXBkYXRlUXVldWU7CiBjbGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW07
CiBjbGFzcyBSZWdpb247CiBzdHJ1Y3QgQ0NTY3JvbGxBbmRTY2FsZVNldDsKQEAgLTE4Niw3ICsx
ODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFjcXVpcmVMYXllclRleHR1cmVzKCk7
CiAgICAgLy8gUmV0dXJucyBmYWxzZSBpZiB3ZSBzaG91bGQgYWJvcnQgdGhpcyBmcmFtZSBkdWUg
dG8gaW5pdGlhbGl6YXRpb24gZmFpbHVyZS4KICAgICBib29sIGluaXRpYWxpemVMYXllclJlbmRl
cmVySWZOZWVkZWQoKTsKLSAgICB2b2lkIHVwZGF0ZUxheWVycyhDQ1RleHR1cmVVcGRhdGVyJiwg
c2l6ZV90IGNvbnRlbnRzTWVtb3J5TGltaXRCeXRlcyk7CisgICAgdm9pZCB1cGRhdGVMYXllcnMo
Q0NUZXh0dXJlVXBkYXRlUXVldWUmLCBzaXplX3QgY29udGVudHNNZW1vcnlMaW1pdEJ5dGVzKTsK
IAogICAgIENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7
IH0KIApAQCAtMjc4LDExICsyNzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5pdGlhbGl6
ZUxheWVyUmVuZGVyZXIoKTsKIAotICAgIHZvaWQgdXBkYXRlKExheWVyQ2hyb21pdW0qLCBDQ1Rl
eHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKik7Ci0gICAgYm9vbCBwYWlu
dExheWVyQ29udGVudHMoY29uc3QgTGF5ZXJMaXN0JiwgQ0NUZXh0dXJlVXBkYXRlciYpOwotICAg
IGJvb2wgcGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSosIENDVGV4dHVy
ZVVwZGF0ZXImKTsKKyAgICB2b2lkIHVwZGF0ZShMYXllckNocm9taXVtKiwgQ0NUZXh0dXJlVXBk
YXRlUXVldWUmLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKKyAgICBib29sIHBhaW50TGF5
ZXJDb250ZW50cyhjb25zdCBMYXllckxpc3QmLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYpOworICAg
IGJvb2wgcGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSosIENDVGV4dHVy
ZVVwZGF0ZVF1ZXVlJik7CiAKLSAgICB2b2lkIHVwZGF0ZUxheWVycyhMYXllckNocm9taXVtKiwg
Q0NUZXh0dXJlVXBkYXRlciYpOworICAgIHZvaWQgdXBkYXRlTGF5ZXJzKExheWVyQ2hyb21pdW0q
LCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSYpOwogCiAgICAgdm9pZCBwcmlvcml0aXplVGV4dHVyZXMo
Y29uc3QgTGF5ZXJMaXN0JiwgQ0NPdmVyZHJhd01ldHJpY3MmKTsgCiAgICAgdm9pZCBzZXRQcmlv
cml0aWVzRm9yU3VyZmFjZXMoc2l6ZV90IHN1cmZhY2VNZW1vcnlCeXRlcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCmluZGV4IDE2NDI1ZmZiYTY3YWY2ZjY2NDQwN2Nj
YjlhZmU4Yjc5ODljZjZiM2QuLjlmZTUwNWYzMmRjMGExNWQ5N2NmMjQ0ZTM3MWE2MmYwOTA4Mjlk
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC0xOTQsNyAr
MTk0LDcgQEAgdm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5OjpzZXROZWVkc0FuaW1hdGUoKQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OmRv
Q29tbWl0KENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIpCit2b2lkIENDU2luZ2xlVGhyZWFkUHJv
eHk6OmRvQ29tbWl0KENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSkKIHsKICAgICBBU1NFUlQo
Q0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwogICAgIC8vIENvbW1pdCBpbW1lZGlhdGVseQpAQCAt
MjExLDggKzIxMSw4IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoQ0NUZXh0
dXJlVXBkYXRlciYgdXBkYXRlcikKICAgICAgICAgLy8gc2hvdWxkbid0IGJlIGEgcHJvYmxlbSBo
ZXJlIGFzIHRoZSB0aHJvdHRsZWQgdXBsb2FkZXIgaXNuJ3QgdXNlZCBpbgogICAgICAgICAvLyBz
aW5nbGUgdGhyZWFkIG1vZGUuIEZvciBjb3JyZWN0bmVzcywgbG9vcCB1bnRpbCBubyBtb3JlIHVw
ZGF0ZXMgYXJlCiAgICAgICAgIC8vIHBlbmRpbmcuCi0gICAgICAgIHdoaWxlICh1cGRhdGVyLmhh
c01vcmVVcGRhdGVzKCkpCi0gICAgICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1
cGRhdGVUZXh0dXJlcyhtX2xheWVyVHJlZUhvc3RJbXBsLT5yZXNvdXJjZVByb3ZpZGVyKCksIG1f
bGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNvcGllcigpLCBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVVcGxvYWRlcigpLCAmdXBk
YXRlciwgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkpOworICAgICAgICB3aGlsZSAocXVldWUu
aGFzTW9yZVVwZGF0ZXMoKSkKKyAgICAgICAgICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6
OnVwZGF0ZVRleHR1cmVzKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnJlc291cmNlUHJvdmlkZXIoKSwg
bV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCksIG1f
bGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZVVwbG9hZGVyKCksICZx
dWV1ZSwgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkpOwogCiAgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKG1fbGF5ZXJUcmVlSG9zdEltcGwuZ2V0KCkp
OwogCkBAIC0zMDMsMTEgKzMwMywxMSBAQCBib29sIENDU2luZ2xlVGhyZWFkUHJveHk6OmNvbW1p
dEFuZENvbXBvc2l0ZSgpCiAgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmNvbnRlbnRzVGV4
dHVyZXNXZXJlUHVyZ2VkU2luY2VMYXN0Q29tbWl0KCkpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9z
dC0+ZXZpY3RBbGxDb250ZW50VGV4dHVyZXMoKTsKIAotICAgIENDVGV4dHVyZVVwZGF0ZXIgdXBk
YXRlcjsKLSAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1cGRhdGVyLCBtX2xheWVy
VHJlZUhvc3RJbXBsLT5tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcygpKTsKKyAgICBDQ1RleHR1
cmVVcGRhdGVRdWV1ZSBxdWV1ZTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhx
dWV1ZSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMoKSk7
CiAKICAgICBtX2xheWVyVHJlZUhvc3QtPndpbGxDb21taXQoKTsKLSAgICBkb0NvbW1pdCh1cGRh
dGVyKTsKKyAgICBkb0NvbW1pdChxdWV1ZSk7CiAgICAgYm9vbCByZXN1bHQgPSBkb0NvbXBvc2l0
ZSgpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkQmVnaW5GcmFtZSgpOwogICAgIHJldHVybiBy
ZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKaW5kZXggNmRjZTFjMzVl
ODRmZTdkNTAyOWFlNmIxNDdjMGY3NDA1N2E4ODlmNy4uY2IwNGEzMmIyZmE2MzA5YTRhMDYzZWZk
NzIxOGQ5ZjIzNDE5MGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaApA
QCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDU2luZ2xlVGhyZWFkUHJv
eHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKICAgICBib29sIGNvbW1pdEFuZENvbXBvc2l0ZSgpOwot
ICAgIHZvaWQgZG9Db21taXQoQ0NUZXh0dXJlVXBkYXRlciYpOworICAgIHZvaWQgZG9Db21taXQo
Q0NUZXh0dXJlVXBkYXRlUXVldWUmKTsKICAgICBib29sIGRvQ29tcG9zaXRlKCk7CiAgICAgdm9p
ZCBkaWRTd2FwRnJhbWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyLmNwcAppbmRleCBmYmIwZjM2ODU4NjBhYTUzODg0YTJjYTk0OTViZTZlM2YzNmUw
NGM4Li5kZGU4OTQ5NTA0Njk5ZDc4MGIyZTEwOWE4YThiNDI0OTFkZjlmMDNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcApAQCAtNDksMTcgKzQ5
LDE3IEBAIHNpemVfdCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjptYXhQYXJ0aWFsVGV4dHVy
ZVVwZGF0ZXMoKQogICAgIHJldHVybiB0ZXh0dXJlVXBkYXRlc1BlckZyYW1lOwogfQogCi12b2lk
IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92
aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBs
b2FkZXIqIHVwbG9hZGVyLCBDQ1RleHR1cmVVcGRhdGVyKiB1cGRhdGVyLCBzaXplX3QgY291bnQp
Cit2b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3Vy
Y2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0
dXJlVXBsb2FkZXIqIHVwbG9hZGVyLCBDQ1RleHR1cmVVcGRhdGVRdWV1ZSogcXVldWUsIHNpemVf
dCBjb3VudCkKIHsKLSAgICBpZiAodXBkYXRlci0+ZnVsbFVwbG9hZFNpemUoKSB8fCB1cGRhdGVy
LT5wYXJ0aWFsVXBsb2FkU2l6ZSgpKSB7CisgICAgaWYgKHF1ZXVlLT5mdWxsVXBsb2FkU2l6ZSgp
IHx8IHF1ZXVlLT5wYXJ0aWFsVXBsb2FkU2l6ZSgpKSB7CiAgICAgICAgIGlmICh1cGxvYWRlci0+
aXNCdXN5KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdXBsb2FkZXItPmJlZ2lu
VXBsb2FkcygpOwogCiAgICAgICAgIHNpemVfdCBmdWxsVXBsb2FkQ291bnQgPSAwOwotICAgICAg
ICB3aGlsZSAodXBkYXRlci0+ZnVsbFVwbG9hZFNpemUoKSAmJiBmdWxsVXBsb2FkQ291bnQgPCBj
b3VudCkgewotICAgICAgICAgICAgdXBsb2FkZXItPnVwbG9hZFRleHR1cmUocmVzb3VyY2VQcm92
aWRlciwgdXBkYXRlci0+dGFrZUZpcnN0RnVsbFVwbG9hZCgpKTsKKyAgICAgICAgd2hpbGUgKHF1
ZXVlLT5mdWxsVXBsb2FkU2l6ZSgpICYmIGZ1bGxVcGxvYWRDb3VudCA8IGNvdW50KSB7CisgICAg
ICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShyZXNvdXJjZVByb3ZpZGVyLCBxdWV1ZS0+
dGFrZUZpcnN0RnVsbFVwbG9hZCgpKTsKICAgICAgICAgICAgIGZ1bGxVcGxvYWRDb3VudCsrOwog
ICAgICAgICAgICAgaWYgKCEoZnVsbFVwbG9hZENvdW50ICUgdGV4dHVyZVVwbG9hZEZsdXNoUGVy
aW9kKSkKICAgICAgICAgICAgICAgICByZXNvdXJjZVByb3ZpZGVyLT5zaGFsbG93Rmx1c2hJZlN1
cHBvcnRlZCgpOwpAQCAtNjksMTIgKzY5LDEyIEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpCiAg
ICAgICAgIGlmIChmdWxsVXBsb2FkQ291bnQgJSB0ZXh0dXJlVXBsb2FkRmx1c2hQZXJpb2QpCiAg
ICAgICAgICAgICByZXNvdXJjZVByb3ZpZGVyLT5zaGFsbG93Rmx1c2hJZlN1cHBvcnRlZCgpOwog
Ci0gICAgICAgIGJvb2wgbW9yZVVwbG9hZHMgPSB1cGRhdGVyLT5mdWxsVXBsb2FkU2l6ZSgpOwor
ICAgICAgICBib29sIG1vcmVVcGxvYWRzID0gcXVldWUtPmZ1bGxVcGxvYWRTaXplKCk7CiAKLSAg
ICAgICAgQVNTRVJUKHVwZGF0ZXItPnBhcnRpYWxVcGxvYWRTaXplKCkgPD0gY291bnQpOworICAg
ICAgICBBU1NFUlQocXVldWUtPnBhcnRpYWxVcGxvYWRTaXplKCkgPD0gY291bnQpOwogICAgICAg
ICAvLyBXZSBuZWVkIGFub3RoZXIgdXBkYXRlIGJhdGNoIGlmIHRoZSBudW1iZXIgb2YgdXBkYXRl
cyByZW1haW5pbmcKICAgICAgICAgLy8gaW4gfGNvdW50fCBpcyBncmVhdGVyIHRoYW4gdGhlIHJl
bWFpbmluZyBwYXJ0aWFsIGVudHJpZXMuCi0gICAgICAgIGlmICgoY291bnQgLSBmdWxsVXBsb2Fk
Q291bnQpIDwgdXBkYXRlci0+cGFydGlhbFVwbG9hZFNpemUoKSkKKyAgICAgICAgaWYgKChjb3Vu
dCAtIGZ1bGxVcGxvYWRDb3VudCkgPCBxdWV1ZS0+cGFydGlhbFVwbG9hZFNpemUoKSkKICAgICAg
ICAgICAgIG1vcmVVcGxvYWRzID0gdHJ1ZTsKIAogICAgICAgICBpZiAobW9yZVVwbG9hZHMpIHsK
QEAgLTgzLDggKzgzLDggQEAgdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVU
ZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmkKICAgICAgICAgfQogCiAg
ICAgICAgIHNpemVfdCBwYXJ0aWFsVXBsb2FkQ291bnQgPSAwOwotICAgICAgICB3aGlsZSAodXBk
YXRlci0+cGFydGlhbFVwbG9hZFNpemUoKSkgewotICAgICAgICAgICAgdXBsb2FkZXItPnVwbG9h
ZFRleHR1cmUocmVzb3VyY2VQcm92aWRlciwgdXBkYXRlci0+dGFrZUZpcnN0UGFydGlhbFVwbG9h
ZCgpKTsKKyAgICAgICAgd2hpbGUgKHF1ZXVlLT5wYXJ0aWFsVXBsb2FkU2l6ZSgpKSB7CisgICAg
ICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShyZXNvdXJjZVByb3ZpZGVyLCBxdWV1ZS0+
dGFrZUZpcnN0UGFydGlhbFVwbG9hZCgpKTsKICAgICAgICAgICAgIHBhcnRpYWxVcGxvYWRDb3Vu
dCsrOwogICAgICAgICAgICAgaWYgKCEocGFydGlhbFVwbG9hZENvdW50ICUgdGV4dHVyZVVwbG9h
ZEZsdXNoUGVyaW9kKSkKICAgICAgICAgICAgICAgICByZXNvdXJjZVByb3ZpZGVyLT5zaGFsbG93
Rmx1c2hJZlN1cHBvcnRlZCgpOwpAQCAtOTgsOCArOTgsOCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQ
cm92aQogICAgIH0KIAogICAgIHNpemVfdCBjb3B5Q291bnQgPSAwOwotICAgIHdoaWxlICh1cGRh
dGVyLT5jb3B5U2l6ZSgpKSB7Ci0gICAgICAgIGNvcGllci0+Y29weVRleHR1cmUodXBkYXRlci0+
dGFrZUZpcnN0Q29weSgpKTsKKyAgICB3aGlsZSAocXVldWUtPmNvcHlTaXplKCkpIHsKKyAgICAg
ICAgY29waWVyLT5jb3B5VGV4dHVyZShxdWV1ZS0+dGFrZUZpcnN0Q29weSgpKTsKICAgICAgICAg
Y29weUNvdW50Kys7CiAgICAgfQogCkBAIC0xMTAsOCArMTEwLDggQEAgdm9pZCBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291
cmNlUHJvdmkKICAgICAgICAgY29waWVyLT5mbHVzaCgpOwogfQogCi1DQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKFBhc3NPd25QdHI8Q0NUZXh0dXJl
VXBkYXRlcj4gdXBkYXRlciwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBU
ZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCi0gICAgOiBt
X3VwZGF0ZXIodXBkYXRlcikKK0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OkNDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUsIEND
UmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aWRlciwgVGV4dHVyZUNvcGllciogY29waWVy
LCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQorICAgIDogbV9xdWV1ZShxdWV1ZSkKICAgICAs
IG1fcmVzb3VyY2VQcm92aWRlcihyZXNvdXJjZVByb3ZpZGVyKQogICAgICwgbV9jb3BpZXIoY29w
aWVyKQogICAgICwgbV91cGxvYWRlcih1cGxvYWRlcikKQEAgLTEyNCwxNSArMTI0LDE1IEBAIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6On5DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKCkKIAog
Ym9vbCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpoYXNNb3JlVXBkYXRlcygpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fdXBkYXRlci0+aGFzTW9yZVVwZGF0ZXMoKTsKKyAgICByZXR1cm4gbV9x
dWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKTsKIH0KIAogdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyOjp1cGRhdGVNb3JlVGV4dHVyZXMoKQogewotICAgIGlmICghbV91cGRhdGVyLT5oYXNNb3Jl
VXBkYXRlcygpKQorICAgIGlmICghbV9xdWV1ZS0+aGFzTW9yZVVwZGF0ZXMoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgdXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLCBtX2NvcGll
ciwgbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCB1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkp
OworICAgIHVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlciwgbV9jb3BpZXIsIG1fdXBs
b2FkZXIsIG1fcXVldWUuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7CiB9CiAKIHNp
emVfdCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVNb3JlVGV4dHVyZXNTaXplKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaAppbmRl
eCA4MWExYTdlNThhNjRhOWE2OTVlZjEzZDQ1NTY3ZDY2ZDY3MGQ5NzlkLi5iZDJjN2JjODI3MWRh
ZTg5ODliZmYzNzBlMzA5MTQyNDJkNmE2Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXJfaAogI2RlZmluZSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyX2gK
IAotI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlICJjYy9DQ1RleHR1
cmVVcGRhdGVRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIApAQCAtMzgsMTIgKzM4LDEyIEBAIGNsYXNzIFRleHR1cmVVcGxvYWRl
cjsKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIpOwogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShQYXNzT3duUHRyPEND
VGV4dHVyZVVwZGF0ZXI+IHVwZGF0ZXIsIENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92
aWRlciwgVGV4dHVyZUNvcGllciogY29waWVyLCBUZXh0dXJlVXBsb2FkZXIqIHVwbG9hZGVyKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI+IGNyZWF0ZShQ
YXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJjZVByb3ZpZGVy
KiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRl
ciogdXBsb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXIodXBkYXRlciwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1cGxv
YWRlcikpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXIocXVldWUsIHJlc291cmNlUHJvdmlkZXIsIGNvcGllciwgdXBsb2FkZXIpKTsKICAgICB9
CiAgICAgc3RhdGljIHNpemVfdCBtYXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKTsKLSAgICBzdGF0
aWMgdm9pZCB1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVy
KiwgVGV4dHVyZVVwbG9hZGVyKiwgQ0NUZXh0dXJlVXBkYXRlciosIHNpemVfdCBjb3VudCk7Cisg
ICAgc3RhdGljIHZvaWQgdXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiwgVGV4dHVy
ZUNvcGllciosIFRleHR1cmVVcGxvYWRlciosIENDVGV4dHVyZVVwZGF0ZVF1ZXVlKiwgc2l6ZV90
IGNvdW50KTsKIAogICAgIHZpcnR1YWwgfkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoKTsKIApA
QCAtNTQsOSArNTQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBzaXplX3QgdXBkYXRlTW9yZVRl
eHR1cmVzU2l6ZSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+LCBDQ1Jlc291cmNlUHJvdmlkZXIq
LCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKik7CisgICAgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiwgQ0NSZXNvdXJjZVBy
b3ZpZGVyKiwgVGV4dHVyZUNvcGllciosIFRleHR1cmVVcGxvYWRlciopOwogCi0gICAgT3duUHRy
PENDVGV4dHVyZVVwZGF0ZXI+IG1fdXBkYXRlcjsKKyAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRl
UXVldWU+IG1fcXVldWU7CiAgICAgQ0NSZXNvdXJjZVByb3ZpZGVyKiBtX3Jlc291cmNlUHJvdmlk
ZXI7CiAgICAgVGV4dHVyZUNvcGllciogbV9jb3BpZXI7CiAgICAgVGV4dHVyZVVwbG9hZGVyKiBt
X3VwbG9hZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFlOWFiOTc4ODRjNDZiMDQzYzk1YmFlZmM4YTNlNDRiYTBlMjIyNmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RleHR1cmVVcGRhdGVRdWV1ZS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2luY2x1
ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Q0NUZXh0dXJlVXBkYXRlUXVldWU6OkNDVGV4dHVyZVVwZGF0ZVF1ZXVlKCkKK3sKK30KKworQ0NU
ZXh0dXJlVXBkYXRlUXVldWU6On5DQ1RleHR1cmVVcGRhdGVRdWV1ZSgpCit7Cit9CisKK3ZvaWQg
Q0NUZXh0dXJlVXBkYXRlUXVldWU6OmFwcGVuZEZ1bGxVcGxvYWQoVGV4dHVyZVVwbG9hZGVyOjpQ
YXJhbWV0ZXJzIHVwbG9hZCkKK3sKKyAgICBtX2Z1bGxFbnRyaWVzLmFwcGVuZCh1cGxvYWQpOwor
fQorCit2b2lkIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOjphcHBlbmRQYXJ0aWFsVXBsb2FkKFRleHR1
cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQpCit7CisgICAgbV9wYXJ0aWFsRW50cmllcy5h
cHBlbmQodXBsb2FkKTsKK30KKwordm9pZCBDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6YXBwZW5kQ29w
eShUZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzIGNvcHkpCit7CisgICAgbV9jb3B5RW50cmllcy5h
cHBlbmQoY29weSk7Cit9CisKK1RleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyBDQ1RleHR1cmVV
cGRhdGVRdWV1ZTo6dGFrZUZpcnN0RnVsbFVwbG9hZCgpCit7CisgICAgcmV0dXJuIG1fZnVsbEVu
dHJpZXMudGFrZUZpcnN0KCk7Cit9CisKK1RleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyBDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZTo6dGFrZUZpcnN0UGFydGlhbFVwbG9hZCgpCit7CisgICAgcmV0dXJu
IG1fcGFydGlhbEVudHJpZXMudGFrZUZpcnN0KCk7Cit9CisKK1RleHR1cmVDb3BpZXI6OlBhcmFt
ZXRlcnMgQ0NUZXh0dXJlVXBkYXRlUXVldWU6OnRha2VGaXJzdENvcHkoKQoreworICAgIHJldHVy
biBtX2NvcHlFbnRyaWVzLnRha2VGaXJzdCgpOworfQorCitib29sIENDVGV4dHVyZVVwZGF0ZVF1
ZXVlOjpoYXNNb3JlVXBkYXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnVsbEVudHJpZXMu
c2l6ZSgpIHx8IG1fcGFydGlhbEVudHJpZXMuc2l6ZSgpIHx8IG1fY29weUVudHJpZXMuc2l6ZSgp
OworfQorCit9CisKKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Rl
eHR1cmVVcGRhdGVRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmI1Y2JjMWQ5YTA2
NmZmMDJmOTRhZTRjYTE2YWJjMTVkMmU4Y2IxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUu
aApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDQ1RleHR1cmVVcGRhdGVRdWV1ZV9o
CisjZGVmaW5lIENDVGV4dHVyZVVwZGF0ZVF1ZXVlX2gKKworI2luY2x1ZGUgIlRleHR1cmVDb3Bp
ZXIuaCIKKyNpbmNsdWRlICJUZXh0dXJlVXBsb2FkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDQ1RleHR1cmVVcGRhdGVRdWV1ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q0NUZXh0dXJlVXBkYXRlUXVldWUpOworcHVibGljOgorICAgIENDVGV4dHVyZVVwZGF0ZVF1ZXVl
KCk7CisgICAgdmlydHVhbCB+Q0NUZXh0dXJlVXBkYXRlUXVldWUoKTsKKworICAgIHZvaWQgYXBw
ZW5kRnVsbFVwbG9hZChUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMpOworICAgIHZvaWQgYXBw
ZW5kUGFydGlhbFVwbG9hZChUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMpOworICAgIHZvaWQg
YXBwZW5kQ29weShUZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzKTsKKworICAgIFRleHR1cmVVcGxv
YWRlcjo6UGFyYW1ldGVycyB0YWtlRmlyc3RGdWxsVXBsb2FkKCk7CisgICAgVGV4dHVyZVVwbG9h
ZGVyOjpQYXJhbWV0ZXJzIHRha2VGaXJzdFBhcnRpYWxVcGxvYWQoKTsKKyAgICBUZXh0dXJlQ29w
aWVyOjpQYXJhbWV0ZXJzIHRha2VGaXJzdENvcHkoKTsKKworICAgIHNpemVfdCBmdWxsVXBsb2Fk
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEVudHJpZXMuc2l6ZSgpOyB9CisgICAgc2l6ZV90
IHBhcnRpYWxVcGxvYWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wYXJ0aWFsRW50cmllcy5zaXpl
KCk7IH0KKyAgICBzaXplX3QgY29weVNpemUoKSBjb25zdCB7IHJldHVybiBtX2NvcHlFbnRyaWVz
LnNpemUoKTsgfQorCisgICAgYm9vbCBoYXNNb3JlVXBkYXRlcygpIGNvbnN0OworCitwcml2YXRl
OgorICAgIERlcXVlPFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycz4gbV9mdWxsRW50cmllczsK
KyAgICBEZXF1ZTxUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnM+IG1fcGFydGlhbEVudHJpZXM7
CisgICAgRGVxdWU8VGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycz4gbV9jb3B5RW50cmllczsKK307
CisKK30KKworI2VuZGlmIC8vIENDVGV4dHVyZVVwZGF0ZVF1ZXVlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
ZXh0dXJlVXBkYXRlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1MjAzZDdm
Y2UyNmM2OTcwMjk4M2JjZmQ1MDcwYTM1ZTU2NGJmMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3OSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotCi0jaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLUNDVGV4dHVyZVVwZGF0ZXI6OkNDVGV4dHVyZVVwZGF0ZXIoKQot
ewotfQotCi1DQ1RleHR1cmVVcGRhdGVyOjp+Q0NUZXh0dXJlVXBkYXRlcigpCi17Ci19Ci0KLXZv
aWQgQ0NUZXh0dXJlVXBkYXRlcjo6YXBwZW5kRnVsbFVwbG9hZChUZXh0dXJlVXBsb2FkZXI6OlBh
cmFtZXRlcnMgdXBsb2FkKQotewotICAgIG1fZnVsbEVudHJpZXMuYXBwZW5kKHVwbG9hZCk7Ci19
Ci0KLXZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6YXBwZW5kUGFydGlhbFVwbG9hZChUZXh0dXJlVXBs
b2FkZXI6OlBhcmFtZXRlcnMgdXBsb2FkKQotewotICAgIG1fcGFydGlhbEVudHJpZXMuYXBwZW5k
KHVwbG9hZCk7Ci19Ci0KLXZvaWQgQ0NUZXh0dXJlVXBkYXRlcjo6YXBwZW5kQ29weShUZXh0dXJl
Q29waWVyOjpQYXJhbWV0ZXJzIGNvcHkpCi17Ci0gICAgbV9jb3B5RW50cmllcy5hcHBlbmQoY29w
eSk7Ci19Ci0KLVRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyBDQ1RleHR1cmVVcGRhdGVyOjp0
YWtlRmlyc3RGdWxsVXBsb2FkKCkKLXsKLSAgICByZXR1cm4gbV9mdWxsRW50cmllcy50YWtlRmly
c3QoKTsKLX0KLQotVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIENDVGV4dHVyZVVwZGF0ZXI6
OnRha2VGaXJzdFBhcnRpYWxVcGxvYWQoKQotewotICAgIHJldHVybiBtX3BhcnRpYWxFbnRyaWVz
LnRha2VGaXJzdCgpOwotfQotCi1UZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzIENDVGV4dHVyZVVw
ZGF0ZXI6OnRha2VGaXJzdENvcHkoKQotewotICAgIHJldHVybiBtX2NvcHlFbnRyaWVzLnRha2VG
aXJzdCgpOwotfQotCi1ib29sIENDVGV4dHVyZVVwZGF0ZXI6Omhhc01vcmVVcGRhdGVzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9mdWxsRW50cmllcy5zaXplKCkgfHwgbV9wYXJ0aWFsRW50cmll
cy5zaXplKCkgfHwgbV9jb3B5RW50cmllcy5zaXplKCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTIyNWY3Y2E4NjQzMmRjMGNhMjhhOWU2ZDc5
N2Q2MzRkNmE1NzI1YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1
cmVVcGRhdGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBDQ1RleHR1cmVVcGRhdGVyX2gKLSNkZWZpbmUgQ0NUZXh0dXJlVXBkYXRlcl9oCi0KLSNpbmNs
dWRlICJUZXh0dXJlQ29waWVyLmgiCi0jaW5jbHVkZSAiVGV4dHVyZVVwbG9hZGVyLmgiCi0jaW5j
bHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ0NUZXh0dXJlVXBkYXRlciB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQ0NUZXh0dXJlVXBkYXRlcik7Ci1wdWJsaWM6Ci0gICAgQ0NUZXh0dXJlVXBk
YXRlcigpOwotICAgIHZpcnR1YWwgfkNDVGV4dHVyZVVwZGF0ZXIoKTsKLQotICAgIHZvaWQgYXBw
ZW5kRnVsbFVwbG9hZChUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMpOwotICAgIHZvaWQgYXBw
ZW5kUGFydGlhbFVwbG9hZChUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMpOwotICAgIHZvaWQg
YXBwZW5kQ29weShUZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzKTsKLQotICAgIFRleHR1cmVVcGxv
YWRlcjo6UGFyYW1ldGVycyB0YWtlRmlyc3RGdWxsVXBsb2FkKCk7Ci0gICAgVGV4dHVyZVVwbG9h
ZGVyOjpQYXJhbWV0ZXJzIHRha2VGaXJzdFBhcnRpYWxVcGxvYWQoKTsKLSAgICBUZXh0dXJlQ29w
aWVyOjpQYXJhbWV0ZXJzIHRha2VGaXJzdENvcHkoKTsKLQotICAgIHNpemVfdCBmdWxsVXBsb2Fk
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEVudHJpZXMuc2l6ZSgpOyB9Ci0gICAgc2l6ZV90
IHBhcnRpYWxVcGxvYWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9wYXJ0aWFsRW50cmllcy5zaXpl
KCk7IH0KLSAgICBzaXplX3QgY29weVNpemUoKSBjb25zdCB7IHJldHVybiBtX2NvcHlFbnRyaWVz
LnNpemUoKTsgfQotCi0gICAgYm9vbCBoYXNNb3JlVXBkYXRlcygpIGNvbnN0OwotCi1wcml2YXRl
OgotICAgIERlcXVlPFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycz4gbV9mdWxsRW50cmllczsK
LSAgICBEZXF1ZTxUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnM+IG1fcGFydGlhbEVudHJpZXM7
Ci0gICAgRGVxdWU8VGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycz4gbV9jb3B5RW50cmllczsKLX07
Ci0KLX0KLQotI2VuZGlmIC8vIENDVGV4dHVyZVVwZGF0ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmNwcAppbmRleCA1MWI3YjY5ZTcyYzFkMmZlZmEwZDA3ZDIzYTIyZjZmYjg3MzBlNGQ0Li44
MTg2Mzk1YThlNjY5MzRhMjNkZDRlZDA5YzliMGFkZDZjZjk1ZmNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcApAQCAtNTE1LDggKzUxNSw4IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVn
aW5GcmFtZSgpCiAgICAgaWYgKHJlcXVlc3QtPmNvbnRlbnRzVGV4dHVyZXNXZXJlRGVsZXRlZCkK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5ldmljdEFsbENvbnRlbnRUZXh0dXJlcygpOwogCi0g
ICAgT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+IHVwZGF0ZXIgPSBhZG9wdFB0cihuZXcgQ0NUZXh0
dXJlVXBkYXRlcik7Ci0gICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMoKih1cGRhdGVy
LmdldCgpKSwgcmVxdWVzdC0+bWVtb3J5QWxsb2NhdGlvbkxpbWl0Qnl0ZXMpOworICAgIE93blB0
cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gcXVldWUgPSBhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBk
YXRlUXVldWUpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKCoocXVldWUuZ2V0
KCkpLCByZXF1ZXN0LT5tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyk7CiAKICAgICAvLyBPbmNl
IHNpbmdsZSBidWZmZXJlZCBsYXllcnMgYXJlIGNvbW1pdHRlZCwgdGhleSBjYW5ub3QgYmUgbW9k
aWZpZWQgdW50aWwKICAgICAvLyB0aGV5IGFyZSBkcmF3biBieSB0aGUgaW1wbCB0aHJlYWQuCkBA
IC01MzgsNyArNTM4LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkKICAgICAg
ICAgRGVidWdTY29wZWRTZXRNYWluVGhyZWFkQmxvY2tlZCBtYWluVGhyZWFkQmxvY2tlZDsKIAog
ICAgICAgICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOwotICAgICAgICBDQ1Byb3h5Ojpp
bXBsVGhyZWFkKCktPnBvc3RUYXNrKGNyZWF0ZUNDVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQ
cm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkLCAmY29tcGxldGlvbiwgdXBkYXRl
ci5yZWxlYXNlKCkpKTsKKyAgICAgICAgQ0NQcm94eTo6aW1wbFRocmVhZCgpLT5wb3N0VGFzayhj
cmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0
ZU9uSW1wbFRocmVhZCwgJmNvbXBsZXRpb24sIHF1ZXVlLnJlbGVhc2UoKSkpOwogICAgICAgICBj
b21wbGV0aW9uLndhaXQoKTsKICAgICB9CiAKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIENDVGhy
ZWFkUHJveHk6OmJlZ2luRnJhbWUoKQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+ZGlkQmVnaW5GcmFt
ZSgpOwogfQogCi12b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRo
cmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbiwgUGFzc093blB0cjxDQ1RleHR1cmVV
cGRhdGVyPiB1cGRhdGVyKQordm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxldGVP
bkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24sIFBhc3NPd25QdHI8Q0NU
ZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlKQogewogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NU
aHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkIik7CiAgICAgQVNTRVJU
KCFtX2NvbW1pdENvbXBsZXRpb25FdmVudE9uSW1wbFRocmVhZCk7CkBAIC01NTksNyArNTU5LDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQoQ0ND
b21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25JbXBsVGhyZWFkID0gQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKHVwZGF0ZXIsIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnJl
c291cmNlUHJvdmlkZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50
ZXh0dXJlQ29waWVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4
dHVyZVVwbG9hZGVyKCkpOworICAgIG1fY3VycmVudFRleHR1cmVVcGRhdGVDb250cm9sbGVyT25J
bXBsVGhyZWFkID0gQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Y3JlYXRlKHF1ZXVlLCBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5yZXNvdXJjZVByb3ZpZGVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwt
PmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZUNvcGllcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5s
YXllclJlbmRlcmVyKCktPnRleHR1cmVVcGxvYWRlcigpKTsKICAgICBtX2NvbW1pdENvbXBsZXRp
b25FdmVudE9uSW1wbFRocmVhZCA9IGNvbXBsZXRpb247CiAKICAgICBtX3NjaGVkdWxlck9uSW1w
bFRocmVhZC0+YmVnaW5GcmFtZUNvbXBsZXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5k
ZXggZjMyMTJlNjU2YzIzNjM1NTIzZDJiNTk4OWQwYWZjMDM1NTkxNGM2Mi4uZTU5MTJlMjMzYzVm
NGU1ODIwZDQyOTJjNDBiOTQ2Y2NhMGYyYzI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApA
QCAtMzgsOCArMzgsOCBAQCBjbGFzcyBDQ0lucHV0SGFuZGxlcjsKIGNsYXNzIENDTGF5ZXJUcmVl
SG9zdDsKIGNsYXNzIENDU2NoZWR1bGVyOwogY2xhc3MgQ0NTY29wZWRUaHJlYWRQcm94eTsKK2Ns
YXNzIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOwogY2xhc3MgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjsKLWNsYXNzIENDVGV4dHVyZVVwZGF0ZXI7CiBjbGFzcyBDQ1RocmVhZDsKIGNsYXNzIENDVGhy
ZWFkUHJveHlDb250ZXh0UmVjcmVhdGlvblRpbWVyOwogCkBAIC0xMjYsNyArMTI2LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgSW50UmVjdCByZWN0OwogICAgIH07CiAgICAgdm9pZCBmb3JjZUJlZ2lu
RnJhbWVPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqKTsKLSAgICB2b2lkIGJlZ2luRnJh
bWVDb21wbGV0ZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCosIFBhc3NPd25QdHI8Q0NU
ZXh0dXJlVXBkYXRlcj4pOworICAgIHZvaWQgYmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFk
KENDQ29tcGxldGlvbkV2ZW50KiwgUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4pOwog
ICAgIHZvaWQgYmVnaW5GcmFtZUFib3J0ZWRPbkltcGxUaHJlYWQoKTsKICAgICB2b2lkIHJlcXVl
c3RSZWFkYmFja09uSW1wbFRocmVhZChSZWFkYmFja1JlcXVlc3QqKTsKICAgICB2b2lkIHJlcXVl
c3RTdGFydFBhZ2VTY2FsZUFuaW1hdGlvbk9uSW1wbFRocmVhZChJbnRTaXplIHRhcmdldFBvc2l0
aW9uLCBib29sIHVzZUFuY2hvciwgZmxvYXQgc2NhbGUsIGRvdWJsZSBkdXJhdGlvblNlYyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllci5jcHAKaW5kZXggNjg2NDliMzcwZDJkYmJlZGI4ODdhMTQyZTA0MjdiMmRlZTUwMDFkZS4u
YmJkMWY4ZGRiZjZlOGU0MTgwMWE5NGUzNjczYWRhYWVjODkyMmM3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcApA
QCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXll
ci5oPgogCiAjaW5jbHVkZSAiVGV4dHVyZUxheWVyQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJjYy9D
Q1RleHR1cmVVcGRhdGVyLmgiCisjaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCIK
ICNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJDbGllbnQuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlNpemUuaD4K
QEAgLTM4LDE5ICszOCwxOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViVGV4dHVy
ZVVwZGF0ZXJJbXBsIDogcHVibGljIFdlYlRleHR1cmVVcGRhdGVyIHsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBXZWJUZXh0dXJlVXBkYXRlckltcGwoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikK
LSAgICAgICAgOiBtX3VwZGF0ZXIodXBkYXRlcikKKyAgICBleHBsaWNpdCBXZWJUZXh0dXJlVXBk
YXRlckltcGwoQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlKQorICAgICAgICA6IG1fcXVldWUo
cXVldWUpCiAgICAgewogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRDb3B5KHVuc2ln
bmVkIHNvdXJjZVRleHR1cmUsIHVuc2lnbmVkIGRlc3RpbmF0aW9uVGV4dHVyZSwgV2ViU2l6ZSBz
aXplKSBPVkVSUklERQogICAgIHsKICAgICAgICAgVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyBj
b3B5ID0geyBzb3VyY2VUZXh0dXJlLCBkZXN0aW5hdGlvblRleHR1cmUsIHNpemUgfTsKLSAgICAg
ICAgbV91cGRhdGVyLmFwcGVuZENvcHkoY29weSk7CisgICAgICAgIG1fcXVldWUuYXBwZW5kQ29w
eShjb3B5KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgQ0NUZXh0dXJlVXBkYXRlciYgbV91cGRh
dGVyOworICAgIENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBtX3F1ZXVlOwogfTsKIAogY2xhc3MgV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsIDogcHVibGljIFRleHR1cmVMYXllckNocm9taXVtQ2xp
ZW50LCBwdWJsaWMgVGV4dHVyZUxheWVyQ2hyb21pdW0gewpAQCAtNjEsOSArNjEsOSBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdW5zaWduZWQgcHJlcGFyZVRleHR1cmUo
Q0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHVuc2lnbmVk
IHByZXBhcmVUZXh0dXJlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSkgT1ZFUlJJREUKICAg
ICB7Ci0gICAgICAgIFdlYlRleHR1cmVVcGRhdGVySW1wbCB1cGRhdGVySW1wbCh1cGRhdGVyKTsK
KyAgICAgICAgV2ViVGV4dHVyZVVwZGF0ZXJJbXBsIHVwZGF0ZXJJbXBsKHF1ZXVlKTsKICAgICAg
ICAgcmV0dXJuIG1fY2xpZW50LT5wcmVwYXJlVGV4dHVyZSh1cGRhdGVySW1wbCk7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcAppbmRleCBlNWJhNjFhNjc0NWRjNGNiNzQ0MzhjNzVmZDZlZDcwYjIyNjhhZGI5Li5k
NjcxYzkzOGY0ODlhNzNmMjY5MzQyZmUyYzNhMzMyNDNiMzIwM2U3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAKICNpbmNsdWRlICJjYy9DQ0dyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
ImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCIKICNpbmNsdWRlICJjYy9DQ1NldHRpbmdzLmgiCi0j
aW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVw
ZGF0ZVF1ZXVlLmgiCiAjaW5jbHVkZSAiY2MvQ0NUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUg
InBsYXRmb3JtL1dlYlRocmVhZC5oIgogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CkBAIC0xMTYw
LDkgKzExNjAsOSBAQCBwdWJsaWM6CiAgICAgaW50IHBhaW50Q29udGVudHNDb3VudCgpIHsgcmV0
dXJuIG1fcGFpbnRDb250ZW50c0NvdW50OyB9CiAgICAgdm9pZCByZXNldFBhaW50Q29udGVudHND
b3VudCgpIHsgbV9wYWludENvbnRlbnRzQ291bnQgPSAwOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tl
ciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykgT1ZFUlJJREUKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKSBPVkVSUklE
RQogICAgIHsKLSAgICAgICAgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZSh1cGRhdGVyLCBv
Y2NsdXNpb24sIHN0YXRzKTsKKyAgICAgICAgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZShx
dWV1ZSwgb2NjbHVzaW9uLCBzdGF0cyk7CiAgICAgICAgIG1fcGFpbnRDb250ZW50c0NvdW50Kys7
CiAgICAgfQogCkBAIC0xNTczLDcgKzE1NzMsNyBAQCBjbGFzcyBUZXN0TGF5ZXJDaHJvbWl1bSA6
IHB1YmxpYyBMYXllckNocm9taXVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxU
ZXN0TGF5ZXJDaHJvbWl1bT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFRlc3RMYXll
ckNocm9taXVtKCkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0
ZXImLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0
cyYpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1
ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRz
JikgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIC8vIEdhaW4gYWNjZXNzIHRvIGludGVybmFscyBv
ZiB0aGUgQ0NPY2NsdXNpb25UcmFja2VyLgogICAgICAgICBjb25zdCBUZXN0Q0NPY2NsdXNpb25U
cmFja2VyKiB0ZXN0T2NjbHVzaW9uID0gc3RhdGljX2Nhc3Q8Y29uc3QgVGVzdENDT2NjbHVzaW9u
VHJhY2tlcio+KG9jY2x1c2lvbik7CkBAIC0xNjI4LDggKzE2MjgsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCksIHJvb3RM
YXllci0+Ym91bmRzKCkpOwogICAgICAgICBBU1NFUlRfVFJVRShtX2xheWVyVHJlZUhvc3QtPmlu
aXRpYWxpemVMYXllclJlbmRlcmVySWZOZWVkZWQoKSk7Ci0gICAgICAgIENDVGV4dHVyZVVwZGF0
ZXIgdXBkYXRlcjsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRl
ciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIENDVGV4dHVy
ZVVwZGF0ZVF1ZXVlIHF1ZXVlOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVy
cyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBFWFBFQ1RfRVFfUkVD
VChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7
CkBAIC0xNjQ2LDcgKzE2NDYsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRW
aWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5ib3VuZHMoKSk7Ci0g
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVtZXJp
Y19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0
ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBFWFBFQ1Rf
RVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5ib3Vu
ZHMoKSk7CkBAIC0xNjY0LDcgKzE2NjQsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5ib3VuZHMo
KSk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIHN0ZDo6
bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBF
WFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVuU3BhY2Uo
KS5ib3VuZHMoKSk7CkBAIC0xNjg0LDcgKzE2ODQsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5i
b3VuZHMoKSk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIs
IHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAg
ICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVkU2NyZWVu
U3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0xNzA2LDcgKzE3MDYsNyBAQCBwdWJsaWM6CiAKICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwgcm9vdExh
eWVyLT5ib3VuZHMoKSk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVw
ZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsK
IAogICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGdyYW5kQ2hpbGQtPm9jY2x1ZGVk
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0xNzI4LDcgKzE3MjgsNyBAQCBwdWJsaWM6CiAK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwg
cm9vdExheWVyLT5ib3VuZHMoKSk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5
ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxl
dGUoKTsKIAogICAgICAgICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVk
ZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKQEAgLTE3NTEsNyArMTc1MSw3IEBAIHB1YmxpYzoK
IAogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5kcygp
LCByb290TGF5ZXItPmJvdW5kcygpKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVM
YXllcnModXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21w
bGV0ZSgpOwogCiAgICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+
b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKQEAgLTE3NzQsNyArMTc3NCw3IEBAIHB1
YmxpYzoKIAogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJv
dW5kcygpLCByb290TGF5ZXItPmJvdW5kcygpKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51
cGRhdGVMYXllcnModXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7
CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21t
aXRDb21wbGV0ZSgpOwogCiAgICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgY2hpbGQy
LT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTgzNiw4ICsxODM2LDggQEAg
cHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJv
dW5kcygpLCByb290TGF5ZXItPmJvdW5kcygpKTsKICAgICAgICAgQVNTRVJUX1RSVUUobV9sYXll
clRyZWVIb3N0LT5pbml0aWFsaXplTGF5ZXJSZW5kZXJlcklmTmVlZGVkKCkpOwotICAgICAgICBD
Q1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRl
TGF5ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAg
ICAgICBDQ1RleHR1cmVVcGRhdGVRdWV1ZSBxdWV1ZTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0
LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKICAgICAgICAg
RVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1ZGVkU2NyZWVuU3BhY2UoKS5i
b3VuZHMoKSk7CkBAIC0xODY0LDcgKzE4NjQsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRyZWVI
b3N0LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5ib3Vu
ZHMoKSk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIHN0
ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnVwZGF0ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAg
ICBFWFBFQ1RfRVFfUkVDVChJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKQEAgLTE5MjUsOCArMTkyNSw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5zZXRSb290TGF5ZXIobGF5ZXJzWzBdLmdldCgpKTsKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUobGF5ZXJzWzBdLT5ib3VuZHMoKSwgbGF5ZXJzWzBd
LT5ib3VuZHMoKSk7CiAgICAgICAgIEFTU0VSVF9UUlVFKG1fbGF5ZXJUcmVlSG9zdC0+aW5pdGlh
bGl6ZUxheWVyUmVuZGVyZXJJZk5lZWRlZCgpKTsKLSAgICAgICAgQ0NUZXh0dXJlVXBkYXRlciB1
cGRhdGVyOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1cGRhdGVyLCBz
dGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgQ0NUZXh0dXJlVXBk
YXRlUXVldWUgcXVldWU7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1
ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtU3VyZmFjZXMtMTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwCmluZGV4
IGY5YmM5OWY5YzhkNzczZjA5NWQ2NTUzYWQ1ODdmMGZkNDY0YjhkYzYuLjhlOWE4ODEyYmY2ZWFk
MWEzZGI0ZjZmZWViNzFkNDJiZDRhYWNhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3Bw
CkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXJUZXN0IDogcHVibGljIFRlc3QgewogcHVibGljOgogICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXJUZXN0KCkKLSAgICA6IG1fdXBkYXRlcihhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBkYXRl
cikpCisgICAgOiBtX3F1ZXVlKGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRhdGVRdWV1ZSkpCiAg
ICAgLCBtX3VwbG9hZGVyKHRoaXMpCiAgICAgLCBtX2Z1bGxVcGxvYWRDb3VudEV4cGVjdGVkKDAp
CiAgICAgLCBtX3BhcnRpYWxDb3VudEV4cGVjdGVkKDApCkBAIC0xODUsNyArMTg1LDcgQEAgcHJv
dGVjdGVkOgogICAgICAgICBXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwogICAgIH0KIAotICAg
IHZvaWQgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZXIoaW50IGNvdW50KQorICAgIHZvaWQgYXBw
ZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGludCBjb3VudCkKICAgICB7CiAgICAgICAgIG1f
ZnVsbFVwbG9hZENvdW50RXhwZWN0ZWQgKz0gY291bnQ7CiAgICAgICAgIG1fdG90YWxVcGxvYWRD
b3VudEV4cGVjdGVkICs9IGNvdW50OwpAQCAtMTkzLDEwICsxOTMsMTAgQEAgcHJvdGVjdGVkOgog
ICAgICAgICBjb25zdCBJbnRSZWN0IHJlY3QoMCwgMCwgMzAwLCAxNTApOwogICAgICAgICBjb25z
dCBUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgdXBsb2FkID0geyAmbV90ZXh0dXJlLCByZWN0
LCByZWN0IH07CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKLSAgICAg
ICAgICAgIG1fdXBkYXRlci0+YXBwZW5kRnVsbFVwbG9hZCh1cGxvYWQpOworICAgICAgICAgICAg
bV9xdWV1ZS0+YXBwZW5kRnVsbFVwbG9hZCh1cGxvYWQpOwogICAgIH0KIAotICAgIHZvaWQgYXBw
ZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIoaW50IGNvdW50KQorICAgIHZvaWQgYXBwZW5kUGFy
dGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGludCBjb3VudCkKICAgICB7CiAgICAgICAgIG1fcGFy
dGlhbENvdW50RXhwZWN0ZWQgKz0gY291bnQ7CiAgICAgICAgIG1fdG90YWxVcGxvYWRDb3VudEV4
cGVjdGVkICs9IGNvdW50OwpAQCAtMjA0LDcgKzIwNCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
Y29uc3QgSW50UmVjdCByZWN0KDAsIDAsIDEwMCwgMTAwKTsKICAgICAgICAgY29uc3QgVGV4dHVy
ZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgJm1fdGV4dHVyZSwgcmVjdCwgcmVjdCB9
OwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCi0gICAgICAgICAgICBt
X3VwZGF0ZXItPmFwcGVuZFBhcnRpYWxVcGxvYWQodXBsb2FkKTsKKyAgICAgICAgICAgIG1fcXVl
dWUtPmFwcGVuZFBhcnRpYWxVcGxvYWQodXBsb2FkKTsKICAgICB9CiAKICAgICB2b2lkIHNldE1h
eFVwbG9hZENvdW50UGVyVXBkYXRlKGludCBjb3VudCkKQEAgLTIxNiw3ICsyMTYsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgLy8gQ2xhc3NlcyByZXF1aXJlZCB0byBpbnRlcmFjdCBhbmQgdGVzdCB0aGUg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcgogICAgIE93blB0cjxDQ0dyYXBoaWNzQ29udGV4dD4g
bV9jb250ZXh0OwogICAgIE93blB0cjxDQ1Jlc291cmNlUHJvdmlkZXI+IG1fcmVzb3VyY2VQcm92
aWRlcjsKLSAgICBPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4gbV91cGRhdGVyOworICAgIE93blB0
cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4gbV9xdWV1ZTsKICAgICBUZXh0dXJlRm9yVXBsb2FkVGVz
dCBtX3RleHR1cmU7CiAgICAgRmFrZVRleHR1cmVDb3BpZXIgbV9jb3BpZXI7CiAgICAgVGV4dHVy
ZVVwbG9hZGVyRm9yVXBsb2FkVGVzdCBtX3VwbG9hZGVyOwpAQCAtMjY3LDkgKzI2Nyw5IEBAIHZv
aWQgVGV4dHVyZVVwbG9hZGVyRm9yVXBsb2FkVGVzdDo6dXBsb2FkVGV4dHVyZShXZWJDb3JlOjpD
Q1Jlc291cmNlUHJvdmlkZXIqLCBQCiAvLyBaRVJPIFVQTE9BRFMgVEVTVFMKIFRFU1RfRihDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgWmVyb1VwbG9hZHMpCiB7Ci0gICAgYXBwZW5kRnVs
bFVwbG9hZHNUb1VwZGF0ZXIoMCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIo
MCk7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNv
dXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0
KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1Rv
VXBkYXRlUXVldWUoMCk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDAp
OworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3Vy
Y2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwg
bV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDAsIG1fbnVtQmVn
aW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMCwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTI4MSwx
MCArMjgxLDEwIEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgWmVyb1Vw
bG9hZHMpCiAvLyBPTkUgVVBMT0FEIFRFU1RTCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlclRlc3QsIE9uZUZ1bGxVcGxvYWQpCiB7Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0
ZXIoMSk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIoMCk7CisgICAgYXBwZW5k
RnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDEpOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9V
cGRhdGVRdWV1ZSgwKTsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsK
LSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNl
UHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwg
bV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAm
bV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwog
CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwg
bV9udW1FbmRVcGxvYWRzKTsKQEAgLTI5NCwxMCArMjk0LDEwIEBAIFRFU1RfRihDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyVGVzdCwgT25lRnVsbFVwbG9hZCkKIAogVEVTVF9GKENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXJUZXN0LCBPbmVQYXJ0aWFsVXBsb2FkKQogewotICAgIGFwcGVuZEZ1bGxV
cGxvYWRzVG9VcGRhdGVyKDApOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKDEp
OworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgwKTsKKyAgICBhcHBlbmRQYXJ0
aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMSk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
IGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVy
ZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3Vw
ZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCks
ICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3Vu
dEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAg
RVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC0zMDcsMTAgKzMwNywxMCBAQCBURVNU
X0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE9uZVBhcnRpYWxVcGxvYWQpCiAKIFRF
U1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgT25lRnVsbE9uZVBhcnRpYWxVcGxv
YWQpCiB7Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZXIoMSk7Ci0gICAgYXBwZW5kUGFy
dGlhbFVwbG9hZHNUb1VwZGF0ZXIoMSk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1
ZXVlKDEpOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgxKTsKICAgICBE
ZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2Nv
cGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhw
ZWN0ZWQpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1f
cmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5n
ZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAgLy8gV2UgZXhwZWN0IHRo
ZSBmdWxsIHVwbG9hZHMgdG8gYmUgZm9sbG93ZWQgYnkgYSBmbHVzaAogICAgIC8vIGJlZm9yZSB0
aGUgcGFydGlhbCB1cGxvYWRzIGJlZ2luLgpAQCAtMzMxLDEwICszMzEsMTAgQEAgY29uc3QgaW50
IHBhcnRpYWxOb1JlbWFpbmRlckNvdW50ID0gcGFydGlhbFVwbG9hZEZsdXNoTXVsdGlwbGVyICog
a0ZsdXNoUGVyaW9kUGEKIAogVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBN
YW55RnVsbFVwbG9hZHNOb1JlbWFpbmRlcikKIHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBk
YXRlcihmdWxsTm9SZW1haW5kZXJDb3VudCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1Vw
ZGF0ZXIoMCk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGZ1bGxOb1JlbWFp
bmRlckNvdW50KTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CiAg
ICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAm
bV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3Vu
dEV4cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJl
cyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVl
dWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgx
LCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7
CkBAIC0zNDQsMTAgKzM0NCwxMCBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRl
c3QsIE1hbnlGdWxsVXBsb2Fkc05vUmVtYWluZGVyKQogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlclRlc3QsIE1hbnlQYXJ0aWFsVXBsb2Fkc05vUmVtYWluZGVyKQogewotICAgIGFw
cGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKDApOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9V
cGRhdGVyKHBhcnRpYWxOb1JlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1Rv
VXBkYXRlUXVldWUoMCk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKHBh
cnRpYWxOb1JlbWFpbmRlckNvdW50KTsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1w
bFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyht
X3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRl
ci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAgIENDVGV4dHVyZVVwZGF0
ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1f
Y29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhw
ZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBF
Q1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTM1NywxMCArMzU3LDEwIEBAIFRFU1RfRihD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgTWFueVBhcnRpYWxVcGxvYWRzTm9SZW1haW5k
ZXIpCiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgTWFueUZ1bGxNYW55
UGFydGlhbFVwbG9hZHNOb1JlbWFpbmRlcikKIHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBk
YXRlcihmdWxsTm9SZW1haW5kZXJDb3VudCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1Vw
ZGF0ZXIocGFydGlhbE5vUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9V
cGRhdGVRdWV1ZShmdWxsTm9SZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9h
ZHNUb1VwZGF0ZVF1ZXVlKHBhcnRpYWxOb1JlbWFpbmRlckNvdW50KTsKICAgICBEZWJ1Z1Njb3Bl
ZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
Ojp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1f
dXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwor
ICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQ
cm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90
b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5V
cGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTM4MCwxMCAr
MzgwLDEwIEBAIGNvbnN0IGludCBwYXJ0aWFsTWF4UmVtYWluZGVyQ291bnQgPSBwYXJ0aWFsTm9S
ZW1haW5kZXJDb3VudCAtIDE7CiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVz
dCwgTWFueUZ1bGxBbmRQYXJ0aWFsTWluUmVtYWluZGVyKQogewotICAgIGFwcGVuZEZ1bGxVcGxv
YWRzVG9VcGRhdGVyKGZ1bGxNaW5SZW1haW5kZXJDb3VudCk7Ci0gICAgYXBwZW5kUGFydGlhbFVw
bG9hZHNUb1VwZGF0ZXIocGFydGlhbE1pblJlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRGdWxs
VXBsb2Fkc1RvVXBkYXRlUXVldWUoZnVsbE1pblJlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRQ
YXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUocGFydGlhbE1pblJlbWFpbmRlckNvdW50KTsKICAg
ICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZt
X2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50
RXhwZWN0ZWQpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVz
KG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1
ZS5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEs
IG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsK
QEAgLTM5MywxMCArMzkzLDEwIEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVz
dCwgTWFueUZ1bGxBbmRQYXJ0aWFsTWluUmVtYWluZGVyKQogCiBURVNUX0YoQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlclRlc3QsIE1hbnlGdWxsQW5kUGFydGlhbFVwbG9hZHNNYXhSZW1haW5kZXIp
CiB7Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZXIoZnVsbE1heFJlbWFpbmRlckNvdW50
KTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcihwYXJ0aWFsTWF4UmVtYWluZGVy
Q291bnQpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZShmdWxsTWF4UmVtYWlu
ZGVyQ291bnQpOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZShwYXJ0aWFs
TWF4UmVtYWluZGVyQ291bnQpOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhy
ZWFkOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVz
b3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdl
dCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3Bp
ZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3Rl
ZCk7CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9F
USgxLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtNDA2LDEwICs0MDYsMTAgQEAgVEVTVF9GKENDVGV4
dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55RnVsbEFuZFBhcnRpYWxVcGxvYWRzTWF4UmVt
YWluZGVyKQogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE1hbnlGdWxs
TWluUmVtYWluZGVyTWFueVBhcnRpYWxNYXhSZW1haW5kZXIpCiB7Ci0gICAgYXBwZW5kRnVsbFVw
bG9hZHNUb1VwZGF0ZXIoZnVsbE1pblJlbWFpbmRlckNvdW50KTsKLSAgICBhcHBlbmRQYXJ0aWFs
VXBsb2Fkc1RvVXBkYXRlcihwYXJ0aWFsTWF4UmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZEZ1
bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZShmdWxsTWluUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVu
ZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZShwYXJ0aWFsTWF4UmVtYWluZGVyQ291bnQpOwog
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwg
Jm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291
bnRFeHBlY3RlZCk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVy
ZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1
ZXVlLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBFWFBFQ1RfRVEo
MSwgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9hZHMp
OwpAQCAtNDE5LDEwICs0MTksMTAgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJU
ZXN0LCBNYW55RnVsbE1pblJlbWFpbmRlck1hbnlQYXJ0aWFsTWF4UmVtYWluZGUKIAogVEVTVF9G
KENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55RnVsbE1heFJlbWFpbmRlck1hbnlQ
YXJ0aWFsTWluUmVtYWluZGVyKQogewotICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGZ1
bGxNYXhSZW1haW5kZXJDb3VudCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIo
cGFydGlhbE1pblJlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRl
UXVldWUoZnVsbE1heFJlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1Rv
VXBkYXRlUXVldWUocGFydGlhbE1pblJlbWFpbmRlckNvdW50KTsKICAgICBEZWJ1Z1Njb3BlZFNl
dEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1
cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBs
b2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAg
IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92
aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90b3Rh
bFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxv
YWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTQ1MCwxMiArNDUw
LDEyIEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBkYXRl
RmluYWxVcGRhdGVGdWxsQW5kUGFydGlhbCkKICAgICBpbnQgZXhwZWN0ZWRQcmV2aW91c1VwbG9h
ZHMgPSAwOwogCiAgICAgc2V0TWF4VXBsb2FkQ291bnRQZXJVcGRhdGUoa01heFVwbG9hZHNQZXJV
cGRhdGUpOwotICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGtGdWxsVXBsb2Fkcyk7Ci0g
ICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIoa1BhcnRpYWxVcGxvYWRzKTsKKyAgICBh
cHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoa0Z1bGxVcGxvYWRzKTsKKyAgICBhcHBlbmRQ
YXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoa1BhcnRpYWxVcGxvYWRzKTsKIAogICAgIC8vIEZp
cnN0IHVwZGF0ZSAoNDAgZnVsbCkKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRo
cmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jl
c291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5n
ZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAm
bV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOwogCiAgICAg
RVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1F
bmRVcGxvYWRzKTsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlclRlc3QsIFRyaXBsZVVwZGF0ZUZpbmFsVXBkYXRlRnVsbEFuZFBhcnRpYWwpCiAgICAg
RVhQRUNUX0VRKGV4cGVjdGVkUHJldmlvdXNVcGxvYWRzLCBtX251bVByZXZpb3VzVXBsb2Fkcyk7
CiAKICAgICAvLyBTZWNvbmQgdXBkYXRlICg0MCBmdWxsKQotICAgIENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29w
aWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7
CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJj
ZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBr
TWF4VXBsb2Fkc1BlclVwZGF0ZSk7CiAKICAgICBFWFBFQ1RfRVEoMiwgbV9udW1CZWdpblVwbG9h
ZHMpOwogICAgIEVYUEVDVF9FUSgyLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtNDc5LDcgKzQ3OSw3
IEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBkYXRlRmlu
YWxVcGRhdGVGdWxsQW5kUGFydGlhbCkKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRQcmV2aW91c1Vw
bG9hZHMsIG1fbnVtUHJldmlvdXNVcGxvYWRzKTsKIAogICAgIC8vIFRoaXJkIHVwZGF0ZSAoMjAg
ZnVsbCwgMjAgcGFydGlhbCkKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVU
ZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIs
IG1fdXBkYXRlci5nZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOworICAgIENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwg
Jm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwga01heFVwbG9hZHNQZXJVcGRh
dGUpOwogCiAgICAgRVhQRUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1Rf
RVEoMywgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTUwNSwxMiArNTA1LDEyIEBAIFRFU1RfRihDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBkYXRlRmluYWxVcGRhdGVBbGxQYXJ0
aWFsKQogICAgIGludCBleHBlY3RlZFByZXZpb3VzVXBsb2FkcyA9IDA7CiAKICAgICBzZXRNYXhV
cGxvYWRDb3VudFBlclVwZGF0ZShrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7Ci0gICAgYXBwZW5kRnVs
bFVwbG9hZHNUb1VwZGF0ZXIoa0Z1bGxVcGxvYWRzKTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fk
c1RvVXBkYXRlcihrUGFydGlhbFVwbG9hZHMpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRh
dGVRdWV1ZShrRnVsbFVwbG9hZHMpOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVR
dWV1ZShrUGFydGlhbFVwbG9hZHMpOwogCiAgICAgLy8gRmlyc3QgdXBkYXRlICg0MCBmdWxsKQog
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwg
Jm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVw
ZGF0ZSk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9y
ZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdl
dCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1CZWdp
blVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtNTIyLDcg
KzUyMiw3IEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBk
YXRlRmluYWxVcGRhdGVBbGxQYXJ0aWFsKQogICAgIEVYUEVDVF9FUShleHBlY3RlZFByZXZpb3Vz
VXBsb2FkcywgbV9udW1QcmV2aW91c1VwbG9hZHMpOwogCiAgICAgLy8gU2Vjb25kIHVwZGF0ZSAo
MzAgZnVsbCwgb3B0aW9uYWxseSAxMCBwYXJ0aWFsKQotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVy
LCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7Cisg
ICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVBy
b3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBrTWF4
VXBsb2Fkc1BlclVwZGF0ZSk7CiAKICAgICBFWFBFQ1RfRVEoMiwgbV9udW1CZWdpblVwbG9hZHMp
OwogICAgIEVYUEVDVF9FUSgyLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtNTMyLDcgKzUzMiw3IEBA
IFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgVHJpcGxlVXBkYXRlRmluYWxV
cGRhdGVBbGxQYXJ0aWFsKQogICAgIC8vIG9uRmx1c2goKSwgb25VcGxvYWQoKSwgYW5kIG9uRW5k
VXBsb2FkKCkgd2lsbCBkbyBiYXNpYyBmbHVzaCBjaGVja3MgZm9yIHVzIGFueXdheS4KIAogICAg
IC8vIFRoaXJkIHVwZGF0ZSAoMzAgcGFydGlhbCBPUiAyMCBwYXJ0aWFsIGlmIDEwIHBhcnRpYWwg
dXBsb2FkZWQgaW4gc2Vjb25kIHVwZGF0ZSkKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
Ojp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1f
dXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwga01heFVwbG9hZHNQZXJVcGRhdGUpOworICAgIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRl
ci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwga01heFVwbG9h
ZHNQZXJVcGRhdGUpOwogCiAgICAgRVhQRUNUX0VRKDMsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAg
ICBFWFBFQ1RfRVEoMywgbV9udW1FbmRVcGxvYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NUaHJlYWRlZFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ1RocmVhZGVkVGVzdC5jcHAKaW5kZXggYzRiZTI3ZDkwN2Y1Yjc4YjI1MDhk
ZDFmNmZiZDA3NWEzMzFmNmY1Yy4uOWMzODM3ZWVhYzZkY2FhNjFiYmM3ZDJlZTIzZTg2ZDIyNmJh
N2UyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZGVk
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZGVkVGVz
dC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmgiCiAjaW5jbHVkZSAiY2MvQ0NTY29wZWRUaHJlYWRQcm94eS5oIgogI2luY2x1ZGUgImNjL0ND
U2luZ2xlVGhyZWFkUHJveHkuaCIKLSNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCisj
aW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKICNpbmNsdWRlICJjYy9DQ1RocmVh
ZFRhc2suaCIKICNpbmNsdWRlICJjYy9DQ1RpbWluZ0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViVGhyZWFkLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmNwcAppbmRleCBlYzIxMDUzMjc5MDBlODM5NWMx
NTA4NTNjNzMwNzQ1ZmY5MjgwM2E2Li41NGYyOWJiZWY1NTQ4ZDNlMGNmNzU0MjFmM2M2MzNjM2Q1
MDlhMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRM
YXllclRlc3RDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NU
aWxlZExheWVyVGVzdENvbW1vbi5jcHAKQEAgLTExNSw5ICsxMTUsOSBAQCB2b2lkIEZha2VUaWxl
ZExheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogICAgIFRpbGVkTGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNEaXNwbGF5UmVjdChyZWN0KTsKIH0K
IAotdm9pZCBGYWtlVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYg
dXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVuZGVyaW5n
U3RhdHMmIHN0YXRzKQordm9pZCBGYWtlVGlsZWRMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0
dXJlVXBkYXRlUXVldWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lv
biwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCiB7Ci0gICAgdXBkYXRlQ29udGVudFJlY3QodXBk
YXRlciwgdmlzaWJsZUNvbnRlbnRSZWN0KCksIG9jY2x1c2lvbiwgc3RhdHMpOworICAgIHVwZGF0
ZUNvbnRlbnRSZWN0KHF1ZXVlLCB2aXNpYmxlQ29udGVudFJlY3QoKSwgb2NjbHVzaW9uLCBzdGF0
cyk7CiB9CiAKIHZvaWQgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bTo6c2V0VGV4dHVyZVByaW9yaXRp
ZXMoY29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImIGNhbGN1bGF0b3IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllclRlc3RDb21tb24uaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCmluZGV4
IDZjZDIyOGIzZDkwODZmYzMwMjY0MDNkZjNlNWIxY2RkNjhmN2VmMGIuLmM3NTkzMmFjZjYyMWJk
ZWIzMGM2ZjcxNDJiNzcxNTdkZDM5NWQzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oCkBAIC0zNSw3ICszNSw3IEBA
CiAjaW5jbHVkZSAiY2MvQ0NHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJjYy9DQ1ByaW9y
aXRpemVkVGV4dHVyZS5oIgogI2luY2x1ZGUgImNjL0NDUmVzb3VyY2VQcm92aWRlci5oIgotI2lu
Y2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRh
dGVRdWV1ZS5oIgogI2luY2x1ZGUgImNjL0NDVGlsZWRMYXllckltcGwuaCIKIAogbmFtZXNwYWNl
IFdlYktpdFRlc3RzIHsKQEAgLTEyMiw3ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBsYXN0TmVlZHNEaXNwbGF5UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGFzdE5lZWRzRGlzcGxheVJlY3Q7IH0KIAogICAgIC8vIFVwZGF0ZXMgdGhlIHZpc2libGVDb250
ZW50UmVjdCgpLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoV2ViQ29yZTo6Q0NUZXh0dXJlVXBk
YXRlciYsIGNvbnN0IFdlYkNvcmU6OkNDT2NjbHVzaW9uVHJhY2tlciosIFdlYkNvcmU6OkNDUmVu
ZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKFdlYkNvcmU6
OkNDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgV2ViQ29yZTo6Q0NPY2NsdXNpb25UcmFja2Vy
KiwgV2ViQ29yZTo6Q0NSZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2
b2lkIHNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IFdlYkNvcmU6OkNDUHJpb3JpdHlDYWxjdWxh
dG9yJikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKaW5kZXggYWNlNzQxMGMzNWE1YWM2Y2Yz
NjEzNDdkZjlhNmFiNTZmNjg3YzFiZi4uOTYwN2FjMDkxZjQ3MWEzYmE5ZGIwYTMwYTU1MDhkZGFk
MjFiODVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMy
RExheWVyQnJpZGdlVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
YW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJX
ZWJLaXQuaCIKICNpbmNsdWRlICJjYy9DQ0dyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgImNj
L0NDUmVuZGVyaW5nU3RhdHMuaCIKLSNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCisj
aW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJUaHJlYWQuaCIK
IApAQCAtMTUxLDkgKzE1MSw5IEBAIFRFU1QoQ2FudmFzMkRMYXllckJyaWRnZVRlc3QyLCB0ZXN0
Q2xlYXJDbGllbnQpCiAgICAgT3duUHRyPENhbnZhczJETGF5ZXJCcmlkZ2U+IGJyaWRnZSA9IENh
bnZhczJETGF5ZXJCcmlkZ2U6OmNyZWF0ZShtYWluQ29udGV4dC5nZXQoKSwgSW50U2l6ZSgxMDAs
IDEwMCksIERlZmVycmVkLCAxKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBi
cmlkZ2UtPmxheWVyKCk7CiAgICAgYnJpZGdlLmNsZWFyKCk7Ci0gICAgQ0NUZXh0dXJlVXBkYXRl
ciB1cGRhdGVyOworICAgIENDVGV4dHVyZVVwZGF0ZVF1ZXVlIHF1ZXVlOwogICAgIENDUmVuZGVy
aW5nU3RhdHMgc3RhdHM7Ci0gICAgbGF5ZXItPnVwZGF0ZSh1cGRhdGVyLCAwLCBzdGF0cyk7Cisg
ICAgbGF5ZXItPnVwZGF0ZShxdWV1ZSwgMCwgc3RhdHMpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21p
dW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9t
aXVtVGVzdC5jcHAKaW5kZXggMGI0NGI4NjRiYTc1YWU1NWYxODg0NGYwN2MzYjFiYjQyYjdiNThl
Ni4uYjlhNDI5OTgyZjg5MWQ0NDIwMDIyM2Y0OTE2MTBkNGViZDA4ODI5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwCkBAIC05MCwxMiArOTAsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVUZXh0dXJl
cyhpbnQgY291bnQgPSA1MDApCiAgICAgewotICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwg
Jm1fdXBsb2FkZXIsICZtX3VwZGF0ZXIsIGNvdW50KTsKKyAgICAgICAgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9j
b3BpZXIsICZtX3VwbG9hZGVyLCAmbV9xdWV1ZSwgY291bnQpOwogICAgIH0KIHB1YmxpYzoKICAg
ICBPd25QdHI8Q0NHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBPd25QdHI8Q0NSZXNv
dXJjZVByb3ZpZGVyPiBtX3Jlc291cmNlUHJvdmlkZXI7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlciBt
X3VwZGF0ZXI7CisgICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUgbV9xdWV1ZTsKICAgICBDQ1JlbmRl
cmluZ1N0YXRzIG1fc3RhdHM7CiAgICAgRmFrZVRleHR1cmVDb3BpZXIgbV9jb3BpZXI7CiAgICAg
RmFrZVRleHR1cmVVcGxvYWRlciBtX3VwbG9hZGVyOwpAQCAtMTE5LDcgKzExOSw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoRGlydHlUaWxlcykKICAgICBsYXllci0+c2V0
VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5h
Z2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCks
IDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPnB1c2hQcm9w
ZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIFRFU1RfRihU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoRGlydHlUaWxlcykKICAgICAvLyAuLi4uYnV0IHRo
ZW4gb25seSB1cGRhdGUgb25lIG9mIHRoZW0uCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0
aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6
ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50
UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250
ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CiAg
ICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIAogICAgIC8vIFdl
IHNob3VsZCBvbmx5IGhhdmUgdGhlIGZpcnN0IHRpbGUgc2luY2UgdGhlIG90aGVyIHRpbGUgd2Fz
IGludmFsaWRhdGVkIGJ1dCBub3QgcGFpbnRlZC4KQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVkRGlydHlUaWxlcykKICAgICBsYXll
ci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1
cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAotICAgIGxheWVyLT51cGRhdGVDb250
ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAmb2NjbHVkZWQsIG1f
c3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAs
IDAsIDEwMCwgMjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygp
OwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAgLTE3
Miw3ICsxNzIsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaE9jY2x1ZGVk
RGlydHlUaWxlcykKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwg
MCwgNTAsIDUwKSk7CiAgICAgLy8gLi4uLmJ1dCB0aGUgYXJlYSBpcyBvY2NsdWRlZC4KICAgICBv
Y2NsdWRlZC5zZXRPY2NsdXNpb24oSW50UmVjdCgwLCAwLCA1MCwgNTApKTsKLSAgICBsYXllci0+
dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgJm9j
Y2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwg
SW50UmVjdCgwLCAwLCAxMDAsIDEwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRl
VGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkp
OwogCkBAIC0yMDAsNyArMjAwLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1
c2hEZWxldGVkVGlsZXMpCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3Jp
dHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7
CiAKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAs
IDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
cXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVU
ZXh0dXJlcygpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7
CiAKQEAgLTIyMiw3ICsyMjIsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVz
aERlbGV0ZWRUaWxlcykKICAgICAvLyBUaGlzIHNob3VsZCByZWNyZWF0ZSBhbmQgdXBkYXRlIHRo
ZSBkZWxldGVkIHRleHR1cmVzLgogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3By
aW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJl
cygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwg
MCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3Qo
bV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0
ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgp
KTsKIApAQCAtMjUxLDcgKzI1MSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBw
dXNoSWRsZVBhaW50VGlsZXMpCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7CiAKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCB2aXNpYmxlUmVj
dCwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIHZp
c2libGVSZWN0LCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogCiAgICAgLy8g
V2Ugc2hvdWxkIG5lZWQgaWRsZS1wYWludGluZyBmb3IgM3gzIHRpbGVzIGluIHRoZSBjZW50ZXIu
CkBAIC0yNjcsNyArMjY3LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJ
ZGxlUGFpbnRUaWxlcykKICAgICAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0
dXJlcygpOwogCi0gICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZp
c2libGVSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fcXVldWUsIHZpc2libGVSZWN0LCAwLCBtX3N0YXRzKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
bGF5ZXItPm5lZWRzSWRsZVBhaW50KHZpc2libGVSZWN0KSk7CiAgICAgICAgIHVwZGF0ZVRleHR1
cmVzKCk7CiAgICAgICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7
CkBAIC0zMTgsOCArMzE4LDggQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hU
aWxlc0FmdGVySWRsZVBhaW50RmFpbGVkKQogICAgIGxheWVyMi0+c2V0VGV4dHVyZVByaW9yaXRp
ZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIGxheWVyMS0+c2V0VGV4dHVyZVByaW9yaXRp
ZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXpl
VGV4dHVyZXMoKTsKLSAgICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgbGF5
ZXJSZWN0LCAwLCBtX3N0YXRzKTsKLSAgICBsYXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBk
YXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyMS0+
dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgbGF5ZXJSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICBs
YXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDAp
LCAwLCBtX3N0YXRzKTsKIAogICAgIC8vIFdlIHNob3VsZCBuZWVkIGlkbGUtcGFpbnRpbmcgZm9y
IGJvdGggcmVtYWluaW5nIHRpbGVzIGluIGxheWVyMi4KICAgICBFWFBFQ1RfVFJVRShsYXllcjIt
Pm5lZWRzSWRsZVBhaW50KGxheWVyMlJlY3QpKTsKQEAgLTMzNiw3ICszMzYsNyBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzQWZ0ZXJJZGxlUGFpbnRGYWlsZWQpCiAg
ICAgbGF5ZXIyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAg
ICAgbGF5ZXIxLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAg
ICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyMi0+dXBk
YXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgMCwgbV9z
dGF0cyk7CisgICAgbGF5ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAs
IDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CiAKICAgICAvLyBPaCB3ZWxsLCBjb21taXQgdGhl
IGZyYW1lIGFuZCBwdXNoLgogICAgIHVwZGF0ZVRleHR1cmVzKCk7CkBAIC0zNTYsOCArMzU2LDgg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc0FmdGVySWRsZVBhaW50
RmFpbGVkKQogICAgIGxheWVyMi0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIGxheWVyMS0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBs
YXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgbGF5ZXIyUmVjdCwgMCwgbV9zdGF0
cyk7Ci0gICAgbGF5ZXIxLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGxheWVyUmVjdCwg
MCwgbV9zdGF0cyk7CisgICAgbGF5ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBsYXll
cjJSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVl
dWUsIGxheWVyUmVjdCwgMCwgbV9zdGF0cyk7CiAKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAg
IGxheWVyMS0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwxLmdldCgpKTsKQEAgLTM4OCw3ICsz
ODgsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaElkbGVQYWludGVkT2Nj
bHVkZWRUaWxlcykKIAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5
Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwot
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAw
LCAxMDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsK
ICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVy
SW1wbC5nZXQoKSk7CiAKQEAgLTQxMyw3ICs0MTMsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgcHVzaFRpbGVzTWFya2VkRGlydHlEdXJpbmdQYWludCkKIAogICAgIGxheWVyLT5z
ZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1h
bmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCks
IDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPnB1c2hQcm9w
ZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAtNDQzLDExICs0NDMsMTEgQEAgVEVTVF9G
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQ
YWludE9uTmV4dExheWVyKQogICAgIGxheWVyMi0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlv
cml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMo
KTsKIAotICAgIGxheWVyMS0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAs
IDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXIxLT51cGRhdGVDb250ZW50UmVj
dChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CiAKICAgICAv
LyBJbnZhbGlkYXRlIGEgdGlsZSBvbiBsYXllcjEKICAgICBsYXllcjItPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPnNldFJlY3RUb0ludmFsaWRhdGUoSW50UmVjdCgwLCA1MCwgMTAwLCA1MCks
IGxheWVyMS5nZXQoKSk7Ci0gICAgbGF5ZXIyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIs
IEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllcjItPnVwZGF0
ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRz
KTsKIAogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXIxLT5wdXNoUHJvcGVydGllc1Rv
KGxheWVyMUltcGwuZ2V0KCkpOwpAQCAtNDgzLDggKzQ4Myw4IEBAIFRFU1RfRihUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCBwdXNoVGlsZXNMYXllck1hcmtlZERpcnR5RHVyaW5nUGFpbnRPblByZXZp
b3VzTGF5CiAKICAgICAvLyBJbnZhbGlkYXRlIGEgdGlsZSBvbiBsYXllcjIKICAgICBsYXllcjEt
PmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldFJlY3RUb0ludmFsaWRhdGUoSW50UmVjdCgw
LCA1MCwgMTAwLCA1MCksIGxheWVyMi5nZXQoKSk7Ci0gICAgbGF5ZXIxLT51cGRhdGVDb250ZW50
UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKLSAg
ICBsYXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAs
IDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyMS0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1
ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyMi0+dXBk
YXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3Rh
dHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXIxLT5wdXNoUHJvcGVydGllc1Rv
KGxheWVyMUltcGwuZ2V0KCkpOwogICAgIGxheWVyMi0+cHVzaFByb3BlcnRpZXNUbyhsYXllcjJJ
bXBsLmdldCgpKTsKQEAgLTUxOCw3ICs1MTgsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVt
VGVzdCwgaWRsZVBhaW50T3V0T2ZNZW1vcnkpCiAKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9y
aXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0
aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCB2
aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
cXVldWUsIHZpc2libGVSZWN0LCAwLCBtX3N0YXRzKTsKIAogICAgIC8vIElkbGUtcGFpbnRpbmcg
c2hvdWxkIHNlZSBubyBtb3JlIHByaW9yaXR5IHRpbGVzIGZvciBwYWludGluZy4KICAgICBFWFBF
Q1RfRkFMU0UobGF5ZXItPm5lZWRzSWRsZVBhaW50KHZpc2libGVSZWN0KSk7CkBAIC01MzEsNyAr
NTMxLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE91dE9mTWVt
b3J5KQogCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxh
dG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMp
OworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCB2aXNpYmxlUmVjdCwgMCwg
bV9zdGF0cyk7CiAKICAgICAvLyBXZSBzaG91bGRuJ3Qgc2lnbmFsIHdlIG5lZWQgYW5vdGhlciBp
ZGxlIHBhaW50LgogICAgIEVYUEVDVF9GQUxTRShsYXllci0+bmVlZHNJZGxlUGFpbnQodmlzaWJs
ZVJlY3QpKTsKQEAgLTU2MCw3ICs1NjAsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVz
dCwgaWRsZVBhaW50WmVyb1NpemVkTGF5ZXIpCiAgICAgICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlv
cml0aXplVGV4dHVyZXMoKTsKIAogICAgICAgICAvLyBFbXB0eSBsYXllcnMgZG9uJ3QgcGFpbnQg
b3IgaWRsZS1wYWludC4KLSAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRl
ciwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMpOworICAgICAgICBsYXllci0+dXBkYXRlQ29udGVu
dFJlY3QobV9xdWV1ZSwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAgICAgIC8vIEVt
cHR5IGxheWVycyBkb24ndCBoYXZlIHRpbGVzLgogICAgICAgICBFWFBFQ1RfRVEoMHUsIGxheWVy
LT5udW1QYWludGVkVGlsZXMoKSk7CkBAIC01OTYsNyArNTk2LDcgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE5vblZpc2libGVMYXllcnMpCiAgICAgICAgIC8vIFBh
aW50IC8gaWRsZS1wYWludC4KICAgICAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1f
cHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVU
ZXh0dXJlcygpOwotICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCB2
aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CisgICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3F1ZXVlLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CiAKICAgICAgICAgLy8gTm9uLXZp
c2libGUgbGF5ZXJzIGRvbid0IG5lZWQgaWRsZSBwYWludC4KICAgICAgICAgRVhQRUNUX0ZBTFNF
KGxheWVyLT5uZWVkc0lkbGVQYWludCh2aXNpYmxlUmVjdCkpOwpAQCAtNjU5LDcgKzY1OSw3IEBA
IFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxlUGFpbnROb25WaXNpYmxlQW5pbWF0
aW5nTGF5ZXJzKQogICAgICAgICAgICAgICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyht
X3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgICAgICAgICAgICAgdGV4dHVyZU1hbmFnZXItPnBy
aW9yaXRpemVUZXh0dXJlcygpOwogCi0gICAgICAgICAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fdXBkYXRlciwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOworICAgICAgICAgICAg
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCB2aXNpYmxlUmVjdCwgMCwgbV9z
dGF0cyk7CiAgICAgICAgICAgICAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICAgICAgICAgICAg
ICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgICAgICAgICAg
fQpAQCAtNjcyLDcgKzY3Miw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxl
UGFpbnROb25WaXNpYmxlQW5pbWF0aW5nTGF5ZXJzKQogICAgICAgICAgICAgICAgIGxheWVyLT5z
ZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgICAgICAgICAg
ICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwogCi0gICAgICAgICAgICAg
ICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgdmlzaWJsZVJlY3QsIDAsIG1f
c3RhdHMpOworICAgICAgICAgICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVl
LCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CiAgICAgICAgICAgICAgICAgdXBkYXRlVGV4dHVy
ZXMoKTsKICAgICAgICAgICAgICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwu
Z2V0KCkpOwogICAgICAgICAgICAgfQpAQCAtNjk1LDcgKzY5NSw3IEBAIFRFU1RfRihUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBpbnZhbGlkYXRlRnJvbVByZXBhcmUpCiAgICAgbGF5ZXItPmludmFs
aWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7CiAgICAgbGF5ZXItPnNl
dFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFu
YWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxh
eWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwg
MCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7CiAgICAgbGF5ZXItPnB1c2hQ
cm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAtNzA2LDcgKzcwNiw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpbnZhbGlkYXRlRnJvbVByZXBhcmUpCiAgICAgbGF5
ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZUNvdW50KCk7CiAgICAg
Ly8gSW52b2tlIHVwZGF0ZUNvbnRlbnRSZWN0IGFnYWluLiBBcyB0aGUgbGF5ZXIgaXMgdmFsaWQg
dXBkYXRlQ29udGVudFJlY3Qgc2hvdWxkbid0IGJlIGludm9rZWQgb24KICAgICAvLyB0aGUgTGF5
ZXJUZXh0dXJlVXBkYXRlci4KLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVy
LCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0
ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRz
KTsKICAgICB1cGRhdGVUZXh0dXJlcygxMDAwKTsKICAgICBFWFBFQ1RfRVEoMCwgbGF5ZXItPmZh
a2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVDb3VudCgpKTsKIApAQCAtNzE0LDEyICs3
MTQsMTIgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGludmFsaWRhdGVGcm9tUHJl
cGFyZSkKICAgICAvLyBzZXRSZWN0VG9JbnZhbGlkYXRlIHRyaWdnZXJzIGludmFsaWRhdGVDb250
ZW50UmVjdCgpIGJlaW5nIGludm9rZWQgZnJvbSB1cGRhdGVDb250ZW50UmVjdC4KICAgICBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0UmVjdFRvSW52YWxpZGF0ZShJbnRSZWN0
KDI1LCAyNSwgNTAsIDUwKSwgbGF5ZXIuZ2V0KCkpOwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVDb3VudCgpOwotICAgIGxheWVyLT51cGRhdGVDb250
ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsK
KyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAs
IDIwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKDEwMDApOwogICAgIEVYUEVD
VF9FUSgxLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZUNvdW50KCkp
OwogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVDb3Vu
dCgpOwogICAgIC8vIFRoZSBsYXllciBzaG91bGQgc3RpbGwgYmUgaW52YWxpZCBhcyB1cGRhdGVD
b250ZW50UmVjdCBpbnZva2VkIGludmFsaWRhdGUuCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAg
IGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAw
KSwgMCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7CiAgICAgRVhQRUNUX0VR
KDEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7CiB9
CkBAIC03NDYsNyArNzQ2LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlm
eVVwZGF0ZVJlY3RXaGVuQ29udGVudEJvdW5kc0FyZVNjYWxlZCkKIAogICAgIGxheWVyLT5zZXRU
ZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFn
ZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3F1ZXVlLCBjb250ZW50Qm91bmRzLCAwLCBtX3N0YXRzKTsKICAgICBFWFBF
Q1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3QoMCwgMCwgMzAwLCAzMDAgKiAwLjgpLCBsYXllci0+
dXBkYXRlUmVjdCgpKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogCkBAIC03NTQsNyArNzU0LDcg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeVVwZGF0ZVJlY3RXaGVuQ29u
dGVudEJvdW5kc0FyZVNjYWxlZCkKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9w
cmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVy
ZXMoKTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNvbnRlbnRCb3VuZHMpOwot
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsIDAs
IG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBjb250ZW50
Qm91bmRzLCAwLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRkxPQVRfUkVDVF9FUShGbG9hdFJlY3Qo
bGF5ZXJCb3VuZHMpLCBsYXllci0+dXBkYXRlUmVjdCgpKTsKICAgICB1cGRhdGVUZXh0dXJlcygp
OwogCkBAIC03NjMsNyArNzYzLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZl
cmlmeVVwZGF0ZVJlY3RXaGVuQ29udGVudEJvdW5kc0FyZVNjYWxlZCkKICAgICBsYXllci0+aW52
YWxpZGF0ZUNvbnRlbnRSZWN0KHBhcnRpYWxEYW1hZ2UpOwogICAgIGxheWVyLT5zZXRUZXh0dXJl
UHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnBy
aW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0
ZXIsIGNvbnRlbnRCb3VuZHMsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50
UmVjdChtX3F1ZXVlLCBjb250ZW50Qm91bmRzLCAwLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRkxP
QVRfUkVDVF9FUShGbG9hdFJlY3QoNDUsIDgwLCAxNSwgOCksIGxheWVyLT51cGRhdGVSZWN0KCkp
OwogfQogCkBAIC03ODUsNyArNzg1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IHZlcmlmeUludmFsaWRhdGlvbldoZW5Db250ZW50c1NjYWxlQ2hhbmdlcykKICAgICAvLyBQdXNo
IHRoZSB0aWxlcyB0byB0aGUgaW1wbCBzaWRlIGFuZCBjaGVjayB0aGF0IHRoZXJlIGlzIGV4YWN0
bHkgb25lLgogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3Vs
YXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxh
eWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAxMDAp
LCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50
UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7
CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICBFWFBF
Q1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CkBAIC04MDIsNyArODAyLDcgQEAg
VEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeUludmFsaWRhdGlvbldoZW5Db250
ZW50c1NjYWxlQ2hhbmdlcykKICAgICAvLyBUaGUgaW1wbCBzaWRlIHNob3VsZCBnZXQgMngyIHRp
bGVzIG5vdy4KICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDIwMCwgMjAw
KSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIElu
dFJlY3QoMCwgMCwgMjAwLCAyMDApLCAwLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygp
OwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgRVhQ
RUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMCkpOwpAQCAtODE0LDcgKzgxNCw3IEBA
IFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2ZXJpZnlJbnZhbGlkYXRpb25XaGVuQ29u
dGVudHNTY2FsZUNoYW5nZXMpCiAgICAgLy8gaW1wbCBzaWRlLgogICAgIGxheWVyLT5zZXROZWVk
c0Rpc3BsYXkoKTsKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNh
bGN1bGF0b3IpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJl
Y3QoMSwgMCwgMCwgMSksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3F1ZXVlLCBJbnRSZWN0KDEsIDAsIDAsIDEpLCAwLCBtX3N0YXRzKTsKICAgICB0ZXh0dXJl
TWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAKICAgICBsYXllci0+cHVzaFByb3BlcnRp
ZXNUbyhsYXllckltcGwuZ2V0KCkpOwpAQCAtODU1LDcgKzg1NSw3IEBAIFRFU1RfRihUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBza2lwc0RyYXdHZXRzUmVzZXQpCiAgICAgY2NMYXllclRyZWVIb3N0
LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICBjY0xheWVyVHJlZUhvc3QtPnNldFZpZXdw
b3J0U2l6ZShJbnRTaXplKDMwMCwgMzAwKSwgSW50U2l6ZSgzMDAsIDMwMCkpOwogCi0gICAgY2NM
YXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVyLCBtZW1vcnlMaW1pdCk7CisgICAg
Y2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgbWVtb3J5TGltaXQpOwogCiAg
ICAgLy8gV2UnbGwgc2tpcCB0aGUgcm9vdCBsYXllci4KICAgICBFWFBFQ1RfVFJVRShyb290TGF5
ZXItPnNraXBzRHJhdygpKTsKQEAgLTg2Niw3ICs4NjYsNyBAQCBURVNUX0YoVGlsZWRMYXllckNo
cm9taXVtVGVzdCwgc2tpcHNEcmF3R2V0c1Jlc2V0KQogICAgIC8vIFJlbW92ZSB0aGUgY2hpbGQg
bGF5ZXIuCiAgICAgcm9vdExheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwogCi0gICAgY2NMYXll
clRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVyLCBtZW1vcnlMaW1pdCk7CisgICAgY2NM
YXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgbWVtb3J5TGltaXQpOwogICAgIEVY
UEVDVF9GQUxTRShyb290TGF5ZXItPnNraXBzRHJhdygpKTsKIAogICAgIGNjTGF5ZXJUcmVlSG9z
dC0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpLT5jbGVhckFsbE1lbW9yeShtX3Jlc291cmNlUHJv
dmlkZXIuZ2V0KCkpOwpAQCAtODg2LDcgKzg4Niw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21p
dW1UZXN0LCByZXNpemVUb1NtYWxsZXIpCiAKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRp
ZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXpl
VGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRS
ZWN0KDAsIDAsIDcwMCwgNzAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNzAwLCA3MDApLCAwLCBtX3N0YXRzKTsKIAog
ICAgIGxheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSgyMDAsIDIwMCkpOwogICAgIGxheWVyLT5pbnZh
bGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpOwpAQCAtOTA1LDcgKzkw
NSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBodWdlTGF5ZXJVcGRhdGVDcmFz
aCkKICAgICAvLyBFbnN1cmUgbm8gY3Jhc2ggZm9yIGJvdW5kcyB3aGVyZSBzaXplICogc2l6ZSB3
b3VsZCBvdmVyZmxvdyBhbiBpbnQuCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1f
cHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1
cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgw
LCAwLCA3MDAsIDcwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVj
dChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDcwMCwgNzAwKSwgMCwgbV9zdGF0cyk7CiB9CiAKIFRF
U1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykKQEAgLTkzNCwxNyAr
OTM0LDE3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykK
ICAgICBjY0xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShJbnRTaXplKDMwMCwgMjAwKSwg
SW50U2l6ZSgzMDAsIDIwMCkpOwogCiAgICAgLy8gRnVsbCB1cGRhdGUgb2YgYWxsIDYgdGlsZXMu
Ci0gICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVyLCBzdGQ6Om51bWVy
aWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxh
eWVycyhtX3F1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICB7
CiAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBP
d25QdHI8RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFrZUND
VGlsZWRMYXllckltcGwoMSkpKTsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAg
IEVYUEVDVF9FUSg0LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291
bnQoKSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsK
KyAgICAgICAgRVhQRUNUX1RSVUUobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAg
ICAgICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSgyLCBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVDVF9G
QUxTRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRSht
X3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICBsYXllci0+cHVzaFByb3Bl
cnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgIH0KQEAgLTk1MiwxNyArOTUyLDE3IEBAIFRF
U1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykKIAogICAgIC8vIEZ1
bGwgdXBkYXRlIG9mIDMgdGlsZXMgYW5kIHBhcnRpYWwgdXBkYXRlIG9mIDMgdGlsZXMuCiAgICAg
bGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDMwMCwgMTUwKSk7Ci0g
ICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVyLCBzdGQ6Om51bWVyaWNf
bGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVy
cyhtX3F1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICB7CiAg
ICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBPd25Q
dHI8RmFrZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFrZUNDVGls
ZWRMYXllckltcGwoMSkpKTsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAgIEVY
UEVDVF9FUSgzLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQo
KSk7Ci0gICAgICAgIEVYUEVDVF9UUlVFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5
ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAg
ICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSgzLCBsYXllci0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVDVF9GQUxT
RShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShtX3F1
ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICBsYXllci0+cHVzaFByb3BlcnRp
ZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgIH0KQEAgLTk3MywxNCArOTczLDE0IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykKICAgICB7CiAgICAgICAg
IERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBPd25QdHI8RmFr
ZUNDVGlsZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXll
ckltcGwoMSkpKTsKLSAgICAgICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRh
dGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgY2NMYXll
clRyZWVIb3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXpl
X3Q+OjptYXgoKSk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1Rf
RVEoMiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwot
ICAgICAgICBFWFBFQ1RfVFJVRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAg
IEVYUEVDVF9UUlVFKG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIHVw
ZGF0ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1RfRVEoNCwgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAgICBFWFBFQ1RfRkFMU0UobV91
cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UobV9xdWV1ZS5o
YXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8o
bGF5ZXJJbXBsLmdldCgpKTsKICAgICB9CkBAIC0xMDAwLDE0ICsxMDAwLDE0IEBAIFRFU1RfRihU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykKICAgICB7CiAgICAgICAgIERl
YnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBPd25QdHI8RmFrZUND
VGlsZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXllcklt
cGwoMSkpKTsKLSAgICAgICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVy
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgY2NMYXllclRy
ZWVIb3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+
OjptYXgoKSk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1RfRVEo
NCwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAg
ICAgICBFWFBFQ1RfVFJVRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVY
UEVDVF9UUlVFKG1fcXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIHVwZGF0
ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1RfRVEoMiwgbGF5ZXItPmZha2VMYXllclRleHR1
cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAgICBFWFBFQ1RfRkFMU0UobV91cGRh
dGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UobV9xdWV1ZS5oYXNN
b3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCkt
PmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5
ZXJJbXBsLmdldCgpKTsKICAgICB9CkBAIC0xMDE4LDEwICsxMDE4LDEwIEBAIFRFU1RfRihUaWxl
ZExheWVyQ2hyb21pdW1UZXN0LCBwYXJ0aWFsVXBkYXRlcykKICAgICB7CiAgICAgICAgIERlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBPd25QdHI8RmFrZUNDVGls
ZWRMYXllckltcGw+IGxheWVySW1wbChhZG9wdFB0cihuZXcgRmFrZUNDVGlsZWRMYXllckltcGwo
MSkpKTsKLSAgICAgICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVyLCBz
dGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgY2NMYXllclRyZWVI
b3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSk7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDQpOwogICAgICAgICBFWFBFQ1RfRVEoNCwg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAg
ICBFWFBFQ1RfRkFMU0UobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBF
Q1RfRkFMU0UobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VM
YXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgbGF5ZXIt
PnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICB9CkBAIC0xMDQ4LDcgKzEw
NDgsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aG91
dE9jY2x1c2lvbikKIAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5
Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwot
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAw
LCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1
ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgy
LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsK
IH0KIApAQCAtMTA2OCw3ICsxMDY4LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb24pCiAKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9y
aXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0
aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJ
bnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+
dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2Ns
dWRlZCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2Nj
bHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBA
IC0xMDc5LDcgKzEwNzksNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQ
YWludGVkV2l0aE9jY2x1c2lvbikKIAogICAgIG9jY2x1ZGVkLnNldE9jY2x1c2lvbihJbnRSZWN0
KDI1MCwgMjAwLCAzMDAsIDEwMCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwor
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwg
NjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoMzYtMiwgbGF5ZXItPmZh
a2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKICAgICBFWFBF
Q1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgp
LCAwLCAxKTsKQEAgLTEwOTAsNyArMTA5MCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uKQogCiAgICAgb2NjbHVkZWQuc2V0T2NjbHVz
aW9uKEludFJlY3QoMjUwLCAyNTAsIDMwMCwgMTAwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVD
b250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNv
bnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwg
bV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3Qo
MCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgzNiwg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAK
ICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRl
ZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTExMTUsNyArMTExNSw3IEBAIFRFU1RfRihUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVmlzaWJsaXR5Q29uc3Ry
YWludHMpCiAKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgMzYw
KSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9x
dWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDM2MCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAg
RVhQRUNUX0VRKDI0LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJl
UmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNz
KCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMTMwLDcgKzExMzAsNyBAQCBU
RVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lvbkFu
ZFZpc2libGl0eUNvbnN0cmFpbnRzKQogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGll
cyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVU
ZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJl
Y3QoMCwgMCwgNjAwLCAzNTApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgMzUwKSwgJm9jY2x1ZGVk
LCBtX3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoMjQtNiwgbGF5ZXItPmZha2VMYXllclRleHR1cmVV
cGRhdGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRl
ZC5vdmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTEx
NDUsNyArMTE0NSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50
ZWRXaXRoT2NjbHVzaW9uQW5kVmlzaWJsaXR5Q29uc3RyYWludHMpCiAgICAgbGF5ZXItPmludmFs
aWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnNl
dFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFu
YWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCA2MDAsIDM0MCksICZvY2NsdWRlZCwgbV9zdGF0cyk7
CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAw
LCAzNDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgyNC02LCBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVl
KCksIDAsIDEpOwpAQCAtMTE2OSw3ICsxMTY5LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHRpbGVzTm90UGFpbnRlZFdpdGhvdXRJbnZhbGlkYXRpb24pCiAgICAgbGF5ZXItPmlu
dmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXIt
PnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJl
TWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0
cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwg
NjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKICAgICB7
CiAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwpAQCAtMTE4Myw3
ICsxMTgzLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzTm90UGFpbnRl
ZFdpdGhvdXRJbnZhbGlkYXRpb24pCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPmNsZWFyUHJlcGFyZVJlY3RDb3VudCgpOwogCiAgICAgLy8gUmVwYWludCB3aXRob3V0IG1h
cmtpbmcgaXQgZGlydHkuIFRoZSAzIGN1bGxlZCB0aWxlcyB3aWxsIGJlIHByZS1wYWludGVkIG5v
dy4KLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAs
IDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVu
dFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0
cyk7CiAgICAgRVhQRUNUX0VRKDMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMjEyLDcgKzEyMTIs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1
c2lvbkFuZFRyYW5zZm9ybXMpCiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRS
ZWN0KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1f
cHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1
cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgw
LCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNv
bnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1f
c3RhdHMpOwogICAgIEVYUEVDVF9FUSgzNi0zLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92
ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOwpAQCAtMTI0Myw3
ICsxMjQzLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdp
dGhPY2NsdXNpb25BbmRTY2FsaW5nKQogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
SW50UmVjdCgwLCAwLCA2MDAsIDYwMCkpOwogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGll
cyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVU
ZXh0dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJl
Y3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVk
LCBtX3N0YXRzKTsKICAgICAvLyBUaGUgY29udGVudCBpcyBoYWxmIHRoZSBzaXplIG9mIHRoZSBs
YXllciAoc28gdGhlIG51bWJlciBvZiB0aWxlcyBpcyBmZXdlcikuCiAgICAgLy8gSW4gdGhpcyBj
YXNlLCB0aGUgY29udGVudCBpcyAzMDB4MzAwLCBhbmQgc2luY2UgdGhlIHRpbGUgc2l6ZSBpcyAx
MDAsIHRoZQogICAgIC8vIG51bWJlciBvZiB0aWxlcyAzeDMuCkBAIC0xMjYzLDcgKzEyNjMsNyBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1c2lv
bkFuZFNjYWxpbmcpCiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAs
IDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3Jp
dHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7
Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMp
OwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMjgzLDcgKzEyODMs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1
c2lvbkFuZFNjYWxpbmcpCiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0
KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAw
LCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3Rh
dHMpOwogICAgIEVYUEVDVF9FUSg5LTEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5wcmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRy
YXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMzE2LDcgKzEz
MTYsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFx
dWVSZWdpb24pCiAgICAgLy8gSWYgdGhlIGxheWVyIGRvZXNuJ3QgcGFpbnQgb3BhcXVlIGNvbnRl
bnQsIHRoZW4gdGhlIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uIHNob3VsZCBiZSBlbXB0eS4K
ICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0
KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChjb250ZW50Qm91
bmRzKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91
bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIG9wYXF1ZUNv
bnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7CiAgICAgRVhQRUNU
X1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKIApAQCAtMTMyOSw3ICsxMzI5LDcgQEAg
VEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50T3BhcXVlUmVnaW9u
KQogICAgIG9wYXF1ZVBhaW50UmVjdCA9IEludFJlY3QoMTAsIDEwLCA5MCwgMTkwKTsKICAgICBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KG9wYXF1
ZVBhaW50UmVjdCk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChjb250ZW50Qm91
bmRzKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91
bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRl
eHR1cmVzKCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+dmlzaWJsZUNvbnRlbnRPcGFx
dWVSZWdpb24oKTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNlY3Rpb24ob3BhcXVlUGFpbnRS
ZWN0LCB2aXNpYmxlQm91bmRzKSwgb3BhcXVlQ29udGVudHMuYm91bmRzKCkpOwpAQCAtMTM0Miw3
ICsxMzQyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZpc2libGVDb250ZW50
T3BhcXVlUmVnaW9uKQogCiAgICAgLy8gSWYgd2UgcGFpbnQgYWdhaW4gd2l0aG91dCBpbnZhbGlk
YXRpbmcsIHRoZSBzYW1lIHN0dWZmIHNob3VsZCBiZSBvcGFxdWUuCiAgICAgbGF5ZXItPmZha2VM
YXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50UmVjdChJbnRSZWN0KCkpOwotICAg
IGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsICZvY2Ns
dWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNv
bnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsK
ICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigp
OwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2li
bGVCb3VuZHMpLCBvcGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CkBAIC0xMzU3LDcgKzEzNTcsNyBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdp
b24pCiAgICAgLy8gbm90IGJlIGFmZmVjdGVkLgogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKICAgICBsYXllci0+aW52
YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwgMSwgMSkpOwotICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0
cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRCb3VuZHMs
ICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBvcGFxdWVD
b250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbigpOwogICAgIEVYUEVD
VF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZpc2libGVCb3VuZHMpLCBv
cGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CkBAIC0xMzcyLDcgKzEzNzIsNyBAQCBURVNUX0YoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24pCiAgICAgLy8g
bm90IGJlIGFmZmVjdGVkLgogICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5z
ZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRl
bnRSZWN0KEludFJlY3QoMTAsIDEwLCAxLCAxKSk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fdXBkYXRlciwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVk
LCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0g
bGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7CiAgICAgRVhQRUNUX0VRX1JFQ1Qo
aW50ZXJzZWN0aW9uKEludFJlY3QoMTAsIDEwMCwgOTAsIDEwMCksIHZpc2libGVCb3VuZHMpLCBv
cGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CkBAIC0xNDA5LDcgKzE0MDksNyBAQCBURVNUX0YoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgcGl4ZWxzUGFpbnRlZE1ldHJpY3MpCiAgICAgLy8gSW52YWxp
ZGF0ZXMgYW5kIHBhaW50cyB0aGUgd2hvbGUgbGF5ZXIuCiAgICAgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPnNldE9wYXF1ZVBhaW50UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVy
LT5pbnZhbGlkYXRlQ29udGVudFJlY3QoY29udGVudEJvdW5kcyk7Ci0gICAgbGF5ZXItPnVwZGF0
ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRz
KTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywg
Jm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNv
bnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7CiAgICAgRVhQRUNU
X1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgpKTsKQEAgLTE0MjQsNyArMTQyNCw3IEBAIFRF
U1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwaXhlbHNQYWludGVkTWV0cmljcykKICAgICBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJl
Y3QoKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDEs
IDEpKTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoNTAsIDIwMCwg
MTAsIDEwKSk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVu
dEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJl
Y3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRh
dGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50
T3BhcXVlUmVnaW9uKCk7CiAgICAgRVhQRUNUX1RSVUUob3BhcXVlQ29udGVudHMuaXNFbXB0eSgp
KTsKQEAgLTE0ODUsMTQgKzE0ODUsMTQgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IGRvbnRBbGxvY2F0ZUNvbnRlbnRzV2hlblRhcmdldFN1cmZhY2VDYW50QmVBbGxvY2EKICAgICBy
b290LT5pbnZhbGlkYXRlQ29udGVudFJlY3Qocm9vdFJlY3QpOwogICAgIGNoaWxkLT5pbnZhbGlk
YXRlQ29udGVudFJlY3QoY2hpbGRSZWN0KTsKICAgICBjaGlsZDItPmludmFsaWRhdGVDb250ZW50
UmVjdChjaGlsZDJSZWN0KTsKLSAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3Vw
ZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgIGNjTGF5ZXJU
cmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90
Pjo6bWF4KCkpOwogICAgIHsKICAgICAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxU
aHJlYWQ7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDEwMDApOwogICAgICAgICBFWFBFQ1RfRVEo
Niwgcm9vdC0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7CiAgICAg
ICAgIEVYUEVDVF9FUSgzLCBjaGlsZC0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRl
Q291bnQoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgzLCBjaGlsZDItPmZha2VMYXllclRleHR1cmVV
cGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAgICBFWFBFQ1RfRkFMU0UobV91cGRhdGVy
Lmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UobV9xdWV1ZS5oYXNNb3Jl
VXBkYXRlcygpKTsKIAogICAgICAgICByb290LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5j
bGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIGNoaWxkLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
cigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CkBAIC0xNTIwLDE0ICsxNTIwLDE0IEBAIFRFU1RfRihU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBkb250QWxsb2NhdGVDb250ZW50c1doZW5UYXJnZXRTdXJm
YWNlQ2FudEJlQWxsb2NhCiAgICAgcm9vdC0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KHJvb3RSZWN0
KTsKICAgICBjaGlsZC0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNoaWxkUmVjdCk7CiAgICAgY2hp
bGQyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoY2hpbGQyUmVjdCk7Ci0gICAgY2NMYXllclRyZWVI
b3N0LT51cGRhdGVMYXllcnMobV91cGRhdGVyLCAoMyAqIDIgKyAzICogMSkgKiAoMTAwICogMTAw
KSAqIDQpOworICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVldWUsICgzICog
MiArIDMgKiAxKSAqICgxMDAgKiAxMDApICogNCk7CiAgICAgewogICAgICAgICBEZWJ1Z1Njb3Bl
ZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7
CiAgICAgICAgIEVYUEVDVF9FUSg2LCByb290LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51
cGRhdGVDb3VudCgpKTsKICAgICAgICAgRVhQRUNUX0VRKDAsIGNoaWxkLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKICAgICAgICAgRVhQRUNUX0VRKDAsIGNoaWxk
Mi0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVY
UEVDVF9GQUxTRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9G
QUxTRShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogCiAgICAgICAgIHJvb3QtPmZha2VMYXll
clRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgY2hpbGQtPmZh
a2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKQEAgLTE1NTYsMTQg
KzE1NTYsMTQgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGRvbnRBbGxvY2F0ZUNv
bnRlbnRzV2hlblRhcmdldFN1cmZhY2VDYW50QmVBbGxvY2EKICAgICByb290LT5pbnZhbGlkYXRl
Q29udGVudFJlY3Qocm9vdFJlY3QpOwogICAgIGNoaWxkLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
Y2hpbGRSZWN0KTsKICAgICBjaGlsZDItPmludmFsaWRhdGVDb250ZW50UmVjdChjaGlsZDJSZWN0
KTsKLSAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsICgzICogMSkg
KiAoMTAwICogMTAwKSAqIDQpOworICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1f
cXVldWUsICgzICogMSkgKiAoMTAwICogMTAwKSAqIDQpOwogICAgIHsKICAgICAgICAgRGVidWdT
Y29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIHVwZGF0ZVRleHR1cmVzKDEw
MDApOwogICAgICAgICBFWFBFQ1RfRVEoMCwgcm9vdC0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+dXBkYXRlQ291bnQoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwLCBjaGlsZC0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7CiAgICAgICAgIEVYUEVDVF9FUSgwLCBj
aGlsZDItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNvdW50KCkpOwotICAgICAg
ICBFWFBFQ1RfRkFMU0UobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBFWFBF
Q1RfRkFMU0UobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKIAogICAgICAgICByb290LT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIGNoaWxk
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CkBAIC0xNjUy
LDcgKzE2NTIsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNv
bnRlbnRzU2NhbGVJc05vdERpc3RvcnRlZER1cmluZ1BhaW50KQogICAgIHRleHR1cmVNYW5hZ2Vy
LT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgd2hvbGUgdGlsZS4K
LSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50UmVjdCwgMCwg
bV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRS
ZWN0LCAwLCBtX3N0YXRzKTsKICAgICBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cmVz
ZXRQYWludGVkUmVjdCgpOwogCiAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoKSwgbGF5
ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkpOwpAQCAtMTY2NCw3ICsx
NjY0LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50
c1NjYWxlSXNOb3REaXN0b3J0ZWREdXJpbmdQYWludCkKIAogICAgIC8vIEludmFsaWRhdGUgdGhl
IGVudGlyZSBsYXllciBpbiBjb250ZW50IHNwYWNlLiBXaGVuIHBhaW50aW5nLCB0aGUgcmVjdCBn
aXZlbiB0byB3ZWJraXQgc2hvdWxkIG1hdGNoIHRoZSBsYXllcidzIGJvdW5kcy4KICAgICBsYXll
ci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNvbnRlbnRSZWN0KTsKLSAgICBsYXllci0+dXBkYXRl
Q29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50UmVjdCwgMCwgbV9zdGF0cyk7CisgICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsK
IAogICAgIEVYUEVDVF9JTlRfUkVDVF9FUShsYXllclJlY3QsIGxheWVyLT50cmFja2luZ0xheWVy
UGFpbnRlcigpLT5wYWludGVkUmVjdCgpKTsKIH0KQEAgLTE2ODcsNyArMTY4Nyw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90RGlz
dG9ydGVkRHVyaW5nSW52YWxpCiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJl
cygpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB3aG9sZSB0aWxlLgotICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICBsYXll
ci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMpOwog
ICAgIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5yZXNldFBhaW50ZWRSZWN0KCk7CiAK
ICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXllci0+dHJhY2tpbmdMYXllclBh
aW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CkBAIC0xNjk5LDcgKzE2OTksNyBAQCBURVNUX0YoVGls
ZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJc05vdERpc3RvcnRl
ZER1cmluZ0ludmFsaQogCiAgICAgLy8gSW52YWxpZGF0ZSB0aGUgZW50aXJlIGxheWVyIGluIGxh
eWVyIHNwYWNlLiBXaGVuIHBhaW50aW5nLCB0aGUgcmVjdCBnaXZlbiB0byB3ZWJraXQgc2hvdWxk
IG1hdGNoIHRoZSBsYXllcidzIGJvdW5kcy4KICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5UmVj
dChsYXllclJlY3QpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNv
bnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9x
dWV1ZSwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAgRVhQRUNUX0lOVF9SRUNUX0VR
KGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnBhaW50ZWRSZWN0KCkp
OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156788</attachid>
            <date>2012-08-06 16:28:20 -0700</date>
            <delta_ts>2012-08-06 18:41:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93293-20120806192756.patch</filename>
            <type>text/plain</type>
            <size>124999</size>
            <attacher name="David Reveman">reveman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNmNTM1ZWIyYTkyOWMw
ZGRjMjk3M2YxYzliOTJjNTAxMmU2ODhjYy4uODQ2ZWNiNGIxNTE3ZTFhM2JiMWI5YzAzNTVmOWIw
OGQzYjJmNThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTA4LTA2ICBEYXZp
ZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBS
ZW5hbWUgQ0NUZXh0dXJlVXBkYXRlciB0byBDQ1RleHR1cmVVcGRhdGVRdWV1ZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRM
YXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbnRlbnRMYXllckNocm9taXVtLmg6CisgICAgICAgIChDb250ZW50TGF5ZXJDaHJvbWl1
bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNVcERpc3BsYXlM
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhlYWRzVXBEaXNwbGF5TGF5ZXJD
aHJvbWl1bTo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9I
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKEhlYWRzVXBEaXNwbGF5TGF5
ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VM
YXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVy
Q2hyb21pdW0uaDoKKyAgICAgICAgKEltYWdlTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlUGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJMYXllckNocm9taXVtOjp1cGRhdGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21pdW0uaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUxheWVyQ2hyb21pdW06OnVwZGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0u
aDoKKyAgICAgICAgKFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50KToKKyAgICAgICAgKFRleHR1
cmVMYXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
aWxlZExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9t
aXVtOjp1cGRhdGVUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hyb21pdW06
OnVwZGF0ZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UaWxlZExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFRpbGVkTGF5ZXJDaHJvbWl1bSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFpbnRNYXNrc0ZvclJlbmRlclN1cmZh
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVu
dHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJv
eHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tbWl0QW5kQ29tcG9z
aXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVV
cGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjpDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVU
ZXh0dXJlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0
ZVF1ZXVlLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6Q0NUZXh0dXJlVXBkYXRlUXVl
dWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6On5DQ1RleHR1cmVV
cGRhdGVRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6YXBw
ZW5kRnVsbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6
YXBwZW5kUGFydGlhbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVR
dWV1ZTo6YXBwZW5kQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1
ZTo6dGFrZUZpcnN0RnVsbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRh
dGVRdWV1ZTo6dGFrZUZpcnN0UGFydGlhbFVwbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZTo6dGFrZUZpcnN0Q29weSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1Rl
eHR1cmVVcGRhdGVRdWV1ZTo6aGFzTW9yZVVwZGF0ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRh
dGVyLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDVGV4dHVyZVVwZGF0ZVF1ZXVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZVVwZGF0ZVF1ZXVlOjpmdWxsVXBsb2FkU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVRdWV1ZTo6cGFydGlhbFVwbG9h
ZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWU6OmNvcHlTaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhy
ZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAy
MDEyLTA4LTA2ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxOTkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZWVkYzAyMjM4ZDNiNzRiYjdjMDFlNzVkNzViOWQxNzc5OWQ0MTk4OC4u
YzMwNmE0YTk3MDdmZWExMzg3ZTk2MWVmODhkMDc5M2JjNzdjMWY2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wOC0wNiAgRGF2aWQgUmV2ZW1hbiAg
PHJldmVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVuYW1lIENDVGV4
dHVyZVVwZGF0ZXIgdG8gQ0NUZXh0dXJlVXBkYXRlUXVldWUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzI5MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVGV4dHVyZVVwZGF0ZXJJbXBsOjpXZWJUZXh0dXJl
VXBkYXRlckltcGwpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgor
ICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0TGF5ZXJPY2NsdXNpb246OmJlZ2luVGVz
dCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RMYXllck9jY2x1c2lvbldpdGhG
aWx0ZXJzOjpiZWdpblRlc3QpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0TWFu
eVN1cmZhY2VzOjpiZWdpblRlc3QpOgorICAgICAgICAqIHRlc3RzL0NDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJUZXN0LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9DQ1RocmVhZGVkVGVzdC5jcHA6Cisg
ICAgICAgICogdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5jcHA6CisgICAgICAgIChXZWJL
aXRUZXN0czo6RmFrZVRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKToKKyAgICAgICAgKiB0ZXN0
cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmg6CisgICAgICAgIChGYWtlVGlsZWRMYXllckNocm9t
aXVtKToKKyAgICAgICAgKiB0ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHA6CisgICAg
ICAgICogdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHA6CisKIDIwMTItMDgtMDYgIEFk
cmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFJF
R1JFU1NJT04ocjEyNDcxNCk6IHdlYmtpdF91bml0X3Rlc3RzIGFzc2VydHMgaW4gRGVidWcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBiNDZlNTcxYjYyM2Q3ZjY0OTJhZTAyMzBhYzY2NjVjYjIzZGRhNzZm
Li44ZjUzYTkwNWUxZWI2ZjQ1YzNkOTE0NjA5NzQ3Nzg1YjVlOTk2ODNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC04NDE1LDggKzg0MTUsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlci5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVVcGRhdGVyLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5jcHAnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVlLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDAz
ZDM0M2U4MGRlZDBiYjAwZWEyMTA1NzllMmE3NTNmZGEyZTdjY2UuLjFmOWFkMjE2ZTkxODNlYjYx
ZDkxNDYzYjM1ODVjMjU0MGM3ZTJkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bS5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6c2V0VGV4
dHVyZVByaW9yaXRpZXMoY29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImIHByaW8KICAgICBUaWxl
ZExheWVyQ2hyb21pdW06OnNldFRleHR1cmVQcmlvcml0aWVzKHByaW9yaXR5Q2FsYyk7CiB9CiAK
LXZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1cGRh
dGVyLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0
cyYgc3RhdHMpCit2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBk
YXRlUXVldWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NS
ZW5kZXJpbmdTdGF0cyYgc3RhdHMpCiB7CiAgICAgY3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRl
ZCgpOwogCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBk
YXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uVHIKICAgICBp
ZiAoZHJhd3NDb250ZW50KCkpCiAgICAgICAgIGNvbnRlbnRSZWN0ID0gdmlzaWJsZUNvbnRlbnRS
ZWN0KCk7CiAKLSAgICB1cGRhdGVDb250ZW50UmVjdCh1cGRhdGVyLCBjb250ZW50UmVjdCwgb2Nj
bHVzaW9uLCBzdGF0cyk7CisgICAgdXBkYXRlQ29udGVudFJlY3QocXVldWUsIGNvbnRlbnRSZWN0
LCBvY2NsdXNpb24sIHN0YXRzKTsKICAgICBtX25lZWRzRGlzcGxheSA9IGZhbHNlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAppbmRleCBmODM5OTM4OTIwNzY1MTcwZWZlYTRh
MjFjOTRiNDk3YmY5YWY4ZDgzLi42YzA2OGIzMGNlZWIxMTBhMWViNWE3NDZhYjc5YTQ4ZjdiMDE2
MDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKQEAgLTc3LDcgKzc3LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0dXJlUHJpb3JpdGllcyhjb25zdCBDQ1ByaW9yaXR5
Q2FsY3VsYXRvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJl
VXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwg
Y29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBuZWVkTW9yZVVwZGF0ZXMoKSBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgdm9pZCBzZXRPcGFxdWUoYm9vbCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGVhZHNV
cERpc3BsYXlMYXllckNocm9taXVtLmNwcAppbmRleCBiNGMxOTc0OGFmMGU2Nzg3NDI3Yjg3ZGZk
NDM1OWEwZGZiMzk5MWQ3Li5jNmU3NTliZGI3MjU3OGE5NWI5YWJiMDE4ZTMwNWMxNzYyYjBmZTk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9I
ZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgSGVhZHNVcERpc3BsYXlMYXllckNocm9taXVtOjp+SGVhZHNVcERpc3Bs
YXlMYXllckNocm9taXVtKCkKIHsKIH0KIAotdm9pZCBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21p
dW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwg
Q0NSZW5kZXJpbmdTdGF0cyYpCit2b2lkIEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTo6dXBk
YXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NS
ZW5kZXJpbmdTdGF0cyYpCiB7CiAgICAgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGlu
Z3MgPSBsYXllclRyZWVIb3N0KCktPnNldHRpbmdzKCk7CiAgICAgaW50IG1heFRleHR1cmVTaXpl
ID0gbGF5ZXJUcmVlSG9zdCgpLT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4dHVy
ZVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9IZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5oCmluZGV4
IGI3ZDI1ZTZiNWYyZjEzOWZiY2EzODI1YWE4MDEyNTM4ODgyZTFlN2MuLmU2YTk4MzA0NWFjZTJm
MGI5MThjYTk3YzY1YWMwYTdiY2ZhNmU0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hlYWRzVXBEaXNw
bGF5TGF5ZXJDaHJvbWl1bS5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW0+IGNyZWF0ZSgpOwogICAgIHZp
cnR1YWwgfkhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bSgpOwogCi0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NS
ZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0
dXJlVXBkYXRlUXVldWUmLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0
YXRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgc2V0Rm9udEF0bGFzKFBhc3NPd25Q
dHI8Q0NGb250QXRsYXM+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwCmluZGV4IGQ0
N2YxNGIxZTMwNWQ1MDg2NjU4M2FkOTRjNWNkNmVhM2MwOTVmYWMuLjUwNzNkMWNjOGExNjU1N2Q3
NDNhMTY3OWQwYWMwODFmYWU0YmE4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmNw
cApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgSW1hZ2VMYXllckNocm9taXVtOjpzZXRUZXh0dXJl
UHJpb3JpdGllcyhjb25zdCBDQ1ByaW9yaXR5Q2FsY3VsYXRvciYgcHJpb3JpCiAgICAgVGlsZWRM
YXllckNocm9taXVtOjpzZXRUZXh0dXJlUHJpb3JpdGllcyhwcmlvcml0eUNhbGMpOwogfQogCi12
b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIs
IGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBz
dGF0cykKK3ZvaWQgSW1hZ2VMYXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlUXVl
dWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJp
bmdTdGF0cyYgc3RhdHMpCiB7CiAgICAgY3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCgpOwog
ICAgIGlmIChtX25lZWRzRGlzcGxheSkgewpAQCAtMTUxLDcgKzE1MSw3IEBAIHZvaWQgSW1hZ2VM
YXllckNocm9taXVtOjp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3QgQ0NP
Y2NsdXNpb25UcmFjCiAgICAgICAgIG1fbmVlZHNEaXNwbGF5ID0gZmFsc2U7CiAgICAgfQogCi0g
ICAgdXBkYXRlQ29udGVudFJlY3QodXBkYXRlciwgdmlzaWJsZUNvbnRlbnRSZWN0KCksIG9jY2x1
c2lvbiwgc3RhdHMpOworICAgIHVwZGF0ZUNvbnRlbnRSZWN0KHF1ZXVlLCB2aXNpYmxlQ29udGVu
dFJlY3QoKSwgb2NjbHVzaW9uLCBzdGF0cyk7CiB9CiAKIHZvaWQgSW1hZ2VMYXllckNocm9taXVt
OjpjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVt
LmgKaW5kZXggMDQ0NGNkNTc0ODNhMTFhYWM1OGFhY2NkMzhkMzZmYWE5MTZjOWI2MC4uYjUwZTVl
NzE1NzFjYzJiMmY1ZDIxNmY4NWIyN2JkMDYwNjljNWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNocm9taXVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VMYXllckNo
cm9taXVtLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGRy
YXdzQ29udGVudCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0dXJl
UHJpb3JpdGllcyhjb25zdCBDQ1ByaW9yaXR5Q2FsY3VsYXRvciYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJh
Y2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NS
ZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRlbnRz
U2NhbGUoKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZvaWQgc2V0Qml0bWFwKGNvbnN0IFNrQml0
bWFwJiBpbWFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggNjZmMGRkOGExZjQ3NmZiMzg2ZmNl
MDc3M2QwZjc4MGYyZDUzZTA3MS4uYjg3MWNiMTg2MmM3Zjg3Zjg0YWMwYTEwMzk2YTUxYTc3NTBi
OWQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtNjMsNyArNjMsNyBAQCBzdHJ1Y3QgQ0NBbmlt
YXRpb25FdmVudDsKIGNsYXNzIENDTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZTsKIGNsYXNzIENDTGF5
ZXJJbXBsOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0OwotY2xhc3MgQ0NUZXh0dXJlVXBkYXRlcjsK
K2NsYXNzIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOwogY2xhc3MgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1
bTsKIHN0cnVjdCBDQ0FuaW1hdGlvbkV2ZW50Owogc3RydWN0IENDUmVuZGVyaW5nU3RhdHM7CkBA
IC0yMTYsNyArMjE2LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyB0eXBpY2Fs
bHkgbmVlZCB0byBiZSBvdmVyd3JpdHRlbiBieSBkZXJpdmVkIGNsYXNzZXMuCiAgICAgdmlydHVh
bCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNEcmF3YWJsZTsgfQotICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9u
VHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
KENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5k
ZXJpbmdTdGF0cyYpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBuZWVkTW9yZVVwZGF0ZXMoKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJc01hc2soYm9vbCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xs
YmFyTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNWE5ZmJmNWVhYWIyYjNhNDVjN2EyZjcyYzk5ZWVm
ZTNmMWY4ODVkNC4uNGUwMGNmZjkzNjg3NzVmMTkyZTJjYWViZGIwZDQ0OTQ0MDBmYjI2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xs
YmFyTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAK
ICNpbmNsdWRlICJMYXllclBhaW50ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJU
cmVlSG9zdC5oIgogI2luY2x1ZGUgImNjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmgiCi0jaW5jbHVk
ZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1
ZXVlLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlJlY3QuaD4KIAogdXNpbmcgV2ViS2l0OjpXZWJS
ZWN0OwpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6Y3Jl
YXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCgpCiAgICAgICAgIG1fdGh1bWIgPSBtX3RodW1iVXBk
YXRlci0+Y3JlYXRlVGV4dHVyZShsYXllclRyZWVIb3N0KCktPmNvbnRlbnRzVGV4dHVyZU1hbmFn
ZXIoKSk7CiB9CiAKLXZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlUGFydChMYXll
clRleHR1cmVVcGRhdGVyKiBwYWludGVyLCBMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlKiB0
ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiByZWN0LCBDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyLCBD
Q1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKK3ZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBk
YXRlUGFydChMYXllclRleHR1cmVVcGRhdGVyKiBwYWludGVyLCBMYXllclRleHR1cmVVcGRhdGVy
OjpUZXh0dXJlKiB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiByZWN0LCBDQ1RleHR1cmVVcGRhdGVR
dWV1ZSYgcXVldWUsIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKQogewogICAgIC8vIFNraXAgcGFp
bnRpbmcgYW5kIHVwbG9hZGluZyBpZiB0aGVyZSBhcmUgbm8gaW52YWxpZGF0aW9ucyBhbmQKICAg
ICAvLyB3ZSBhbHJlYWR5IGhhdmUgdmFsaWQgdGV4dHVyZSBkYXRhLgpAQCAtMjI3LDcgKzIyNyw3
IEBAIHZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlUGFydChMYXllclRleHR1cmVV
cGRhdGVyKiBwYWludGVyLCBMYXllclRleHR1CiAKICAgICBJbnRSZWN0IGRlc3RSZWN0KEludFBv
aW50KCksIHJlY3Quc2l6ZSgpKTsKICAgICBUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgdXBs
b2FkID0geyB0ZXh0dXJlLCByZWN0LCBkZXN0UmVjdCB9OwotICAgIHVwZGF0ZXIuYXBwZW5kRnVs
bFVwbG9hZCh1cGxvYWQpOworICAgIHF1ZXVlLmFwcGVuZEZ1bGxVcGxvYWQodXBsb2FkKTsKIH0K
IAogCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBTY3JvbGxiYXJMYXllckNocm9taXVtOjpzZXRU
ZXh0dXJlUHJpb3JpdGllcyhjb25zdCBDQ1ByaW9yaXR5Q2FsY3VsYXRvciYpCiAgICAgfQogfQog
Ci12b2lkIFNjcm9sbGJhckxheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1
cGRhdGVyLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0
cykKK3ZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1
ZXVlJiBxdWV1ZSwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYg
c3RhdHMpCiB7CiAgICAgaWYgKGNvbnRlbnRCb3VuZHMoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTI2MywxNSArMjYzLDE1IEBAIHZvaWQgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bTo6
dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2NjbHVzaW9uCiAKICAg
ICBJbnRQb2ludCBzY3JvbGxiYXJPcmlnaW4obV9zY3JvbGxiYXItPmxvY2F0aW9uKCkueCwgbV9z
Y3JvbGxiYXItPmxvY2F0aW9uKCkueSk7CiAgICAgSW50UmVjdCBjb250ZW50UmVjdChzY3JvbGxi
YXJPcmlnaW4sIGNvbnRlbnRCb3VuZHMoKSk7Ci0gICAgdXBkYXRlUGFydChtX2JhY2tUcmFja1Vw
ZGF0ZXIuZ2V0KCksIG1fYmFja1RyYWNrLmdldCgpLCBjb250ZW50UmVjdCwgdXBkYXRlciwgc3Rh
dHMpOworICAgIHVwZGF0ZVBhcnQobV9iYWNrVHJhY2tVcGRhdGVyLmdldCgpLCBtX2JhY2tUcmFj
ay5nZXQoKSwgY29udGVudFJlY3QsIHF1ZXVlLCBzdGF0cyk7CiAgICAgaWYgKG1fZm9yZVRyYWNr
ICYmIG1fZm9yZVRyYWNrVXBkYXRlcikKLSAgICAgICAgdXBkYXRlUGFydChtX2ZvcmVUcmFja1Vw
ZGF0ZXIuZ2V0KCksIG1fZm9yZVRyYWNrLmdldCgpLCBjb250ZW50UmVjdCwgdXBkYXRlciwgc3Rh
dHMpOworICAgICAgICB1cGRhdGVQYXJ0KG1fZm9yZVRyYWNrVXBkYXRlci5nZXQoKSwgbV9mb3Jl
VHJhY2suZ2V0KCksIGNvbnRlbnRSZWN0LCBxdWV1ZSwgc3RhdHMpOwogCiAgICAgLy8gQ29uc2lk
ZXIgdGhlIHRodW1iIHRvIGJlIGF0IHRoZSBvcmlnaW4gd2hlbiBwYWludGluZy4KICAgICBXZWJL
aXQ6OldlYlJlY3QgdGh1bWJSZWN0ID0gbV9nZW9tZXRyeS50aHVtYlJlY3QobV9zY3JvbGxiYXIu
Z2V0KCkpOwogICAgIEludFJlY3Qgb3JpZ2luVGh1bWJSZWN0ID0gSW50UmVjdCgwLCAwLCB0aHVt
YlJlY3Qud2lkdGgsIHRodW1iUmVjdC5oZWlnaHQpOwogICAgIGlmICghb3JpZ2luVGh1bWJSZWN0
LmlzRW1wdHkoKSkKLSAgICAgICAgdXBkYXRlUGFydChtX3RodW1iVXBkYXRlci5nZXQoKSwgbV90
aHVtYi5nZXQoKSwgb3JpZ2luVGh1bWJSZWN0LCB1cGRhdGVyLCBzdGF0cyk7CisgICAgICAgIHVw
ZGF0ZVBhcnQobV90aHVtYlVwZGF0ZXIuZ2V0KCksIG1fdGh1bWIuZ2V0KCksIG9yaWdpblRodW1i
UmVjdCwgcXVldWUsIHN0YXRzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xsYmFyTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IDQyNTJlMjY4ZWRjYzFkODliNDM1M2U0NTU1ZTQ3NzFmOTMxMWMwNDIuLmM2
ZGMzOTBjNjQwZWI5ZGIwNGM5M2E0NTNjYjk4OWZkNzVkMGI2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Njcm9sbGJhckxheWVyQ2hyb21p
dW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3Jv
bGxiYXJMYXllckNocm9taXVtLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBTY3JvbGxiYXI7CiBjbGFzcyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZTsKLWNs
YXNzIENDVGV4dHVyZVVwZGF0ZXI7CitjbGFzcyBDQ1RleHR1cmVVcGRhdGVRdWV1ZTsKIAogY2xh
c3MgU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXllckNocm9taXVtIHsKIHB1Ymxp
YzoKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgLy8gTGF5ZXJDaHJvbWl1bSBpbnRl
cmZhY2UKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dHVyZVByaW9yaXRpZXMoY29uc3QgQ0NQcmlv
cml0eUNhbGN1bGF0b3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4
dHVyZVVwZGF0ZXImLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRz
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZShDQ1RleHR1cmVVcGRhdGVRdWV1
ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCop
IE9WRVJSSURFOwogCkBAIC02MCw3ICs2MCw3IEBAIHByb3RlY3RlZDoKICAgICBTY3JvbGxiYXJM
YXllckNocm9taXVtKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJTY3JvbGxiYXI+LCBXZWJLaXQ6Oldl
YlNjcm9sbGJhclRoZW1lUGFpbnRlciwgV2ViS2l0OjpXZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5
LCBpbnQgc2Nyb2xsTGF5ZXJJZCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCB1cGRhdGVQYXJ0KExh
eWVyVGV4dHVyZVVwZGF0ZXIqLCBMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlKiwgY29uc3Qg
SW50UmVjdCYsIENDVGV4dHVyZVVwZGF0ZXImLCBDQ1JlbmRlcmluZ1N0YXRzJik7CisgICAgdm9p
ZCB1cGRhdGVQYXJ0KExheWVyVGV4dHVyZVVwZGF0ZXIqLCBMYXllclRleHR1cmVVcGRhdGVyOjpU
ZXh0dXJlKiwgY29uc3QgSW50UmVjdCYsIENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgQ0NSZW5kZXJp
bmdTdGF0cyYpOwogICAgIHZvaWQgY3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCgpOwogCiAg
ICAgT3duUHRyPFdlYktpdDo6V2ViU2Nyb2xsYmFyPiBtX3Njcm9sbGJhcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNo
cm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rl
eHR1cmVMYXllckNocm9taXVtLmNwcAppbmRleCA5MGJjNzBlYTk2YTQwNjU5ODdlYmM2MTM1ZWZi
YmIzODY1NDEwYjFiLi43ZDU3NWQzMWY2M2E1NmNjYzkwMjA4MTAxYjI4NWEzY2NlYTNkMzQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0
dXJlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0xMjksMTAgKzEyOSwxMCBA
QCBib29sIFRleHR1cmVMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQoKSBjb25zdAogICAgIHJl
dHVybiAobV9jbGllbnQgfHwgbV90ZXh0dXJlSWQpICYmICFtX2NvbnRleHRMb3N0ICYmIExheWVy
Q2hyb21pdW06OmRyYXdzQ29udGVudCgpOwogfQogCi12b2lkIFRleHR1cmVMYXllckNocm9taXVt
Ojp1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFj
a2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpCit2b2lkIFRleHR1cmVMYXllckNocm9taXVtOjp1cGRh
dGUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIq
LCBDQ1JlbmRlcmluZ1N0YXRzJikKIHsKICAgICBpZiAobV9jbGllbnQpIHsKLSAgICAgICAgbV90
ZXh0dXJlSWQgPSBtX2NsaWVudC0+cHJlcGFyZVRleHR1cmUodXBkYXRlcik7CisgICAgICAgIG1f
dGV4dHVyZUlkID0gbV9jbGllbnQtPnByZXBhcmVUZXh0dXJlKHF1ZXVlKTsKICAgICAgICAgbV9j
b250ZXh0TG9zdCA9IG1fY2xpZW50LT5jb250ZXh0KCktPmdldEdyYXBoaWNzUmVzZXRTdGF0dXNB
UkIoKSAhPSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1I7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJD
aHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4
dHVyZUxheWVyQ2hyb21pdW0uaAppbmRleCAxM2Y1Y2I4NDk2MzY2NzcxOTM5YzcwZGI1MTU2Y2Zl
ZjQzMWFiYWZmLi40YjY3MjFiYjQ4YzVkZmE4ZGQwMjY0NDczNmRjMzhlYmEzYzc5Y2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJl
TGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmgKQEAgLTQwLDkgKzQwLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQgewogcHVibGljOgog
ICAgIC8vIENhbGxlZCB0byBwcmVwYXJlIHRoaXMgbGF5ZXIncyB0ZXh0dXJlIGZvciBjb21wb3Np
dGluZy4gVGhlIGNsaWVudCBtYXkgcXVldWUgYSB0ZXh0dXJlCi0gICAgLy8gdXBsb2FkIG9yIGNv
cHkgb24gdGhlIENDVGV4dHVyZVVwZGF0ZXIuCisgICAgLy8gdXBsb2FkIG9yIGNvcHkgb24gdGhl
IENDVGV4dHVyZVVwZGF0ZVF1ZXVlLgogICAgIC8vIFJldHVybnMgdGhlIHRleHR1cmUgSUQgdG8g
YmUgdXNlZCBmb3IgY29tcG9zaXRpbmcuCi0gICAgdmlydHVhbCB1bnNpZ25lZCBwcmVwYXJlVGV4
dHVyZShDQ1RleHR1cmVVcGRhdGVyJikgPSAwOworICAgIHZpcnR1YWwgdW5zaWduZWQgcHJlcGFy
ZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmKSA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRo
ZSBjb250ZXh0IHRoYXQgaXMgcHJvdmlkaW5nIHRoZSB0ZXh0dXJlLiBVc2VkIGZvciByYXRlIGxp
bWl0aW5nIGFuZCBkZXRlY3RpbmcgbG9zdCBjb250ZXh0LgogICAgIHZpcnR1YWwgV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCgpID0gMDsKQEAgLTg3LDcgKzg3LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0
KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNvbnN0IEND
T2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29uc3QgQ0NPY2NsdXNpb25U
cmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBw
dXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKikgT1ZFUlJJREU7CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVk
TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDY4M2E0NWFjYmE1YTViNDYzYTU3YTRj
MjFmMDAyYzBiYmMzODgzYjguLmI3NmM3M2VmZTE4MWQ5NTI5YTc0ZWNmZDE1N2IwZTRlNzRiZmJh
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcApAQCAtMzYsNyArMzYsNyBAQAog
I2luY2x1ZGUgImNjL0NDTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0
LmgiCiAjaW5jbHVkZSAiY2MvQ0NPdmVyZHJhd01ldHJpY3MuaCIKLSNpbmNsdWRlICJjYy9DQ1Rl
eHR1cmVVcGRhdGVyLmgiCisjaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKICNp
bmNsdWRlICJjYy9DQ1RpbGVkTGF5ZXJJbXBsLmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KQEAgLTM0NSw3ICszNDUsNyBAQCBib29sIFRpbGVkTGF5ZXJDaHJvbWl1bTo6dGlsZU5l
ZWRzQnVmZmVyZWRVcGRhdGUoVXBkYXRhYmxlVGlsZSogdGlsZSkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50
IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgQ0NUZXh0dXJlVXBkYXRlciYg
dXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVuZGVyaW5n
U3RhdHMmIHN0YXRzKQordm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVzKGJvb2wg
aWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgQ0NUZXh0dXJl
VXBkYXRlUXVldWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwg
Q0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCiB7CiAgICAgY3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5l
ZWRlZCgpOwogCkBAIC01MDgsOSArNTA4LDkgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVw
ZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW4KIAog
ICAgICAgICAgICAgVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCA9IHsgdGlsZS0+
dGV4dHVyZSgpLCBzb3VyY2VSZWN0LCBkZXN0UmVjdCB9OwogICAgICAgICAgICAgaWYgKHRpbGUt
PnBhcnRpYWxVcGRhdGUpCi0gICAgICAgICAgICAgICAgdXBkYXRlci5hcHBlbmRQYXJ0aWFsVXBs
b2FkKHVwbG9hZCk7CisgICAgICAgICAgICAgICAgcXVldWUuYXBwZW5kUGFydGlhbFVwbG9hZCh1
cGxvYWQpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHVwZGF0ZXIuYXBwZW5k
RnVsbFVwbG9hZCh1cGxvYWQpOworICAgICAgICAgICAgICAgIHF1ZXVlLmFwcGVuZEZ1bGxVcGxv
YWQodXBsb2FkKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTYxMSw3ICs2MTEsNyBAQCB2b2lk
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6cmVzZXRVcGRhdGVTdGF0ZSgpCiAgICAgfQogfQogCi12b2lk
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudFJlY3QoQ0NUZXh0dXJlVXBkYXRlciYg
dXBkYXRlciwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IENDT2NjbHVzaW9uVHJh
Y2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJiBzdGF0cykKK3ZvaWQgVGlsZWRMYXll
ckNocm9taXVtOjp1cGRhdGVDb250ZW50UmVjdChDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUs
IGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9j
Y2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpCiB7CiAgICAgbV9za2lwc0RyYXcgPSBm
YWxzZTsKICAgICBtX3NraXBzSWRsZVBhaW50ID0gZmFsc2U7CkBAIC02MjYsNyArNjI2LDcgQEAg
dm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRSZWN0KENDVGV4dHVyZVVwZGF0
ZXImIHVwZGF0ZXIsIGNvbnN0IEludFIKICAgICBpZiAoIWNvbnRlbnRSZWN0LmlzRW1wdHkoKSkg
ewogICAgICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tOwogICAgICAgICBtX3RpbGVy
LT5jb250ZW50UmVjdFRvVGlsZUluZGljZXMoY29udGVudFJlY3QsIGxlZnQsIHRvcCwgcmlnaHQs
IGJvdHRvbSk7Ci0gICAgICAgIHVwZGF0ZVRpbGVzKGZhbHNlLCBsZWZ0LCB0b3AsIHJpZ2h0LCBi
b3R0b20sIHVwZGF0ZXIsIG9jY2x1c2lvbiwgc3RhdHMpOworICAgICAgICB1cGRhdGVUaWxlcyhm
YWxzZSwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBxdWV1ZSwgb2NjbHVzaW9uLCBzdGF0cyk7
CiAgICAgfQogCiAgICAgLy8gQWJvcnQgaWYgd2UgaGF2ZSBhbHJlYWR5IHBhaW50ZWQgb3IgcnVu
IG91dCBvZiBtZW1vcnkuCkBAIC02NDMsMTYgKzY0MywxNiBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJv
bWl1bTo6dXBkYXRlQ29udGVudFJlY3QoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3Qg
SW50UgogCiAgICAgLy8gSWYgdGhlIGxheWVyIGlzIG5vdCB2aXNpYmxlLCB3ZSBoYXZlIG5vdGhp
bmcgdG8gZXhwYW5kIGZyb20sIHNvIGluc3RlYWQgd2UgcHJlcGFpbnQgdGhlIG91dGVyLW1vc3Qg
c2V0IG9mIHRpbGVzLgogICAgIGlmIChjb250ZW50UmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
dXBkYXRlVGlsZXModHJ1ZSwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludFRvcCwgcHJlcGFpbnRSaWdo
dCwgcHJlcGFpbnRUb3AsIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgdXBkYXRlVGlsZXMo
dHJ1ZSwgcHJlcGFpbnRMZWZ0LCBwcmVwYWludFRvcCwgcHJlcGFpbnRSaWdodCwgcHJlcGFpbnRU
b3AsIHF1ZXVlLCAwLCBzdGF0cyk7CiAgICAgICAgIGlmIChtX2RpZFBhaW50IHx8IG1fc2tpcHNJ
ZGxlUGFpbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHVwZGF0ZVRpbGVzKHRydWUs
IHByZXBhaW50TGVmdCwgcHJlcGFpbnRCb3R0b20sIHByZXBhaW50UmlnaHQsIHByZXBhaW50Qm90
dG9tLCB1cGRhdGVyLCAwLCBzdGF0cyk7CisgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIHByZXBh
aW50TGVmdCwgcHJlcGFpbnRCb3R0b20sIHByZXBhaW50UmlnaHQsIHByZXBhaW50Qm90dG9tLCBx
dWV1ZSwgMCwgc3RhdHMpOwogICAgICAgICBpZiAobV9kaWRQYWludCB8fCBtX3NraXBzSWRsZVBh
aW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBwcmVw
YWludExlZnQsIHByZXBhaW50VG9wLCBwcmVwYWludExlZnQsIHByZXBhaW50Qm90dG9tLCB1cGRh
dGVyLCAwLCBzdGF0cyk7CisgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIHByZXBhaW50TGVmdCwg
cHJlcGFpbnRUb3AsIHByZXBhaW50TGVmdCwgcHJlcGFpbnRCb3R0b20sIHF1ZXVlLCAwLCBzdGF0
cyk7CiAgICAgICAgIGlmIChtX2RpZFBhaW50IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIHByZXBhaW50UmlnaHQsIHBy
ZXBhaW50VG9wLCBwcmVwYWludFJpZ2h0LCBwcmVwYWludEJvdHRvbSwgdXBkYXRlciwgMCwgc3Rh
dHMpOworICAgICAgICB1cGRhdGVUaWxlcyh0cnVlLCBwcmVwYWludFJpZ2h0LCBwcmVwYWludFRv
cCwgcHJlcGFpbnRSaWdodCwgcHJlcGFpbnRCb3R0b20sIHF1ZXVlLCAwLCBzdGF0cyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY2MCw3ICs2NjAsNyBAQCB2b2lkIFRpbGVkTGF5ZXJD
aHJvbWl1bTo6dXBkYXRlQ29udGVudFJlY3QoQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29u
c3QgSW50UgogICAgIG1fdGlsZXItPmNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhjb250ZW50UmVj
dCwgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKIAogICAgIC8vIE90aGVyd2lzZSwgcHJlcGFp
bnQgYW55dGhpbmcgdGhhdCB3YXMgb2NjbHVkZWQgYnV0IGluc2lkZSB0aGUgbGF5ZXIncyB2aXNp
YmxlIHJlZ2lvbi4KLSAgICB1cGRhdGVUaWxlcyh0cnVlLCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0
b20sIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICB1cGRhdGVUaWxlcyh0cnVlLCBsZWZ0LCB0b3As
IHJpZ2h0LCBib3R0b20sIHF1ZXVlLCAwLCBzdGF0cyk7CiAgICAgaWYgKG1fZGlkUGFpbnQgfHwg
bV9za2lwc0lkbGVQYWludCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02NjgsMjUgKzY2OCwyNSBA
QCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudFJlY3QoQ0NUZXh0dXJlVXBk
YXRlciYgdXBkYXRlciwgY29uc3QgSW50UgogICAgIHdoaWxlICghbV9za2lwc0lkbGVQYWludCAm
JiAobGVmdCA+IHByZXBhaW50TGVmdCB8fCB0b3AgPiBwcmVwYWludFRvcCB8fCByaWdodCA8IHBy
ZXBhaW50UmlnaHQgfHwgYm90dG9tIDwgcHJlcGFpbnRCb3R0b20pKSB7CiAgICAgICAgIGlmIChi
b3R0b20gPCBwcmVwYWludEJvdHRvbSkgewogICAgICAgICAgICAgKytib3R0b207Ci0gICAgICAg
ICAgICB1cGRhdGVUaWxlcyh0cnVlLCBsZWZ0LCBib3R0b20sIHJpZ2h0LCBib3R0b20sIHVwZGF0
ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIGJvdHRv
bSwgcmlnaHQsIGJvdHRvbSwgcXVldWUsIDAsIHN0YXRzKTsKICAgICAgICAgICAgIGlmIChtX2Rp
ZFBhaW50IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKHRvcCA+IHByZXBhaW50VG9wKSB7CiAgICAgICAgICAgICAtLXRv
cDsKLSAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIGxlZnQsIHRvcCwgcmlnaHQsIHRvcCwg
dXBkYXRlciwgMCwgc3RhdHMpOworICAgICAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwg
dG9wLCByaWdodCwgdG9wLCBxdWV1ZSwgMCwgc3RhdHMpOwogICAgICAgICAgICAgaWYgKG1fZGlk
UGFpbnQgfHwgbV9za2lwc0lkbGVQYWludCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBpZiAobGVmdCA+IHByZXBhaW50TGVmdCkgewogICAgICAgICAgICAgLS1s
ZWZ0OwotICAgICAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwgbGVmdCwgdG9wLCBsZWZ0LCBib3R0
b20sIHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICAgICAgICAgIHVwZGF0ZVRpbGVzKHRydWUsIGxl
ZnQsIHRvcCwgbGVmdCwgYm90dG9tLCBxdWV1ZSwgMCwgc3RhdHMpOwogICAgICAgICAgICAgaWYg
KG1fZGlkUGFpbnQgfHwgbV9za2lwc0lkbGVQYWludCkKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBpZiAocmlnaHQgPCBwcmVwYWludFJpZ2h0KSB7CiAgICAgICAg
ICAgICArK3JpZ2h0OwotICAgICAgICAgICAgdXBkYXRlVGlsZXModHJ1ZSwgcmlnaHQsIHRvcCwg
cmlnaHQsIGJvdHRvbSwgdXBkYXRlciwgMCwgc3RhdHMpOworICAgICAgICAgICAgdXBkYXRlVGls
ZXModHJ1ZSwgcmlnaHQsIHRvcCwgcmlnaHQsIGJvdHRvbSwgcXVldWUsIDAsIHN0YXRzKTsKICAg
ICAgICAgICAgIGlmIChtX2RpZFBhaW50IHx8IG1fc2tpcHNJZGxlUGFpbnQpCiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKaW5kZXgg
NjdlNGYwMmNmZWQ3OTViZWM0M2JjOWQ4MTU1NGVkZDYzODViOTkzZi4uMmY1NTNhMGYzYzkyOTQw
YWU4MmE3ZTU0ZWZiZjBkMDUzM2I2MGU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmgK
QEAgLTgzLDcgKzgzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzZXRVcGRhdGVTdGF0ZSgp
OwogCiAgICAgLy8gUHJlcGFyZSBkYXRhIG5lZWRlZCB0byB1cGRhdGUgdGV4dHVyZXMgdGhhdCBp
bnRlcnNlY3Qgd2l0aCBjb250ZW50UmVjdC4KLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRSZWN0KEND
VGV4dHVyZVVwZGF0ZXImLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgQ0NPY2Ns
dXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpOworICAgIHZvaWQgdXBkYXRlQ29udGVu
dFJlY3QoQ0NUZXh0dXJlVXBkYXRlUXVldWUmLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwg
Y29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiwgQ0NSZW5kZXJpbmdTdGF0cyYpOwogCiAgICAgLy8g
QWZ0ZXIgcHJlcGFyaW5nIGFuIHVwZGF0ZSwgcmV0dXJucyB0cnVlIGlmIG1vcmUgcGFpbnRpbmcg
aXMgbmVlZGVkLgogICAgIGJvb2wgbmVlZHNJZGxlUGFpbnQoY29uc3QgSW50UmVjdCYgdmlzaWJs
ZUNvbnRlbnRSZWN0KTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXRUZXh0dXJlUHJpb3JpdGllc0luUmVjdChjb25zdCBDQ1ByaW9yaXR5Q2FsY3VsYXRvciYsIGNv
bnN0IEludFJlY3QmIHZpc2libGVDb250ZW50UmVjdCk7CiAKLSAgICB2b2lkIHVwZGF0ZVRpbGVz
KGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgQ0NU
ZXh0dXJlVXBkYXRlciYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciosIENDUmVuZGVyaW5nU3Rh
dHMmKTsKKyAgICB2b2lkIHVwZGF0ZVRpbGVzKGJvb2wgaWRsZSwgaW50IGxlZnQsIGludCB0b3As
IGludCByaWdodCwgaW50IGJvdHRvbSwgQ0NUZXh0dXJlVXBkYXRlUXVldWUmLCBjb25zdCBDQ09j
Y2x1c2lvblRyYWNrZXIqLCBDQ1JlbmRlcmluZ1N0YXRzJik7CiAKICAgICBVcGRhdGFibGVUaWxl
KiB0aWxlQXQoaW50LCBpbnQpIGNvbnN0OwogICAgIFVwZGF0YWJsZVRpbGUqIGNyZWF0ZVRpbGUo
aW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggN2Y2YzQ5OWFl
MmRhOWQzM2NmOTc2NDBjMmFhMTY0ODVkZDhmOTRjOC4uZjdkYmZiYTViNzg1NzA2MmI4ZWE4YzMw
MjJkMDRmN2E3NmY0Y2Y2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC00
NTYsNyArNDU2LDcgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemVMYXllclJlbmRl
cmVySWZOZWVkZWQoKQogfQogCiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMo
Q0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgc2l6ZV90IG1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5
dGVzKQordm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVycyhDQ1RleHR1cmVVcGRhdGVR
dWV1ZSYgcXVldWUsIHNpemVfdCBtZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcykKIHsKICAgICBB
U1NFUlQobV9sYXllclJlbmRlcmVySW5pdGlhbGl6ZWQpOwogICAgIEFTU0VSVChtZW1vcnlBbGxv
Y2F0aW9uTGltaXRCeXRlcyk7CkBAIC00NjksMTAgKzQ2OSwxMCBAQCB2b2lkIENDTGF5ZXJUcmVl
SG9zdDo6dXBkYXRlTGF5ZXJzKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIHNpemVfdCBtZW1v
cnlBbGxvYwogCiAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5zZXRNYXhNZW1vcnlMaW1p
dEJ5dGVzKG1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKTsKIAotICAgIHVwZGF0ZUxheWVycyhy
b290TGF5ZXIoKSwgdXBkYXRlcik7CisgICAgdXBkYXRlTGF5ZXJzKHJvb3RMYXllcigpLCBxdWV1
ZSk7CiB9CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVMYXllcnMoTGF5ZXJDaHJvbWl1
bSogcm9vdExheWVyLCBDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQordm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OnVwZGF0ZUxheWVycyhMYXllckNocm9taXVtKiByb290TGF5ZXIsIENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlJiBxdWV1ZSkKIHsKICAgICBUUkFDRV9FVkVOVDAoImNjIiwgIkNDTGF5ZXJUcmVl
SG9zdDo6dXBkYXRlTGF5ZXJzIik7CiAKQEAgLTQ4OSw3ICs0ODksNyBAQCB2b2lkIENDTGF5ZXJU
cmVlSG9zdDo6dXBkYXRlTGF5ZXJzKExheWVyQ2hyb21pdW0qIHJvb3RMYXllciwgQ0NUZXh0dXJl
VXBkYXRlciYgdQogICAgIC8vIFJlc2V0IHBhcnRpYWwgdGV4dHVyZSB1cGRhdGUgcmVxdWVzdHMu
CiAgICAgbV9wYXJ0aWFsVGV4dHVyZVVwZGF0ZVJlcXVlc3RzID0gMDsKIAotICAgIGJvb2wgbmVl
ZE1vcmVVcGRhdGVzID0gcGFpbnRMYXllckNvbnRlbnRzKHVwZGF0ZUxpc3QsIHVwZGF0ZXIpOwor
ICAgIGJvb2wgbmVlZE1vcmVVcGRhdGVzID0gcGFpbnRMYXllckNvbnRlbnRzKHVwZGF0ZUxpc3Qs
IHF1ZXVlKTsKICAgICBpZiAobV90cmlnZ2VySWRsZVVwZGF0ZXMgJiYgbmVlZE1vcmVVcGRhdGVz
KQogICAgICAgICBzZXROZWVkc0NvbW1pdCgpOwogCkBAIC01NjUsNyArNTY1LDcgQEAgc2l6ZV90
IENDTGF5ZXJUcmVlSG9zdDo6Y2FsY3VsYXRlTWVtb3J5Rm9yUmVuZGVyU3VyZmFjZXMoY29uc3Qg
TGF5ZXJMaXN0JiB1cGRhdGUKICAgICByZXR1cm4gcmVhZGJhY2tCeXRlcyArIG1heEJhY2tncm91
bmRUZXh0dXJlQnl0ZXMgKyBjb250ZW50c1RleHR1cmVCeXRlczsKIH0KIAotYm9vbCBDQ0xheWVy
VHJlZUhvc3Q6OnBhaW50TWFza3NGb3JSZW5kZXJTdXJmYWNlKExheWVyQ2hyb21pdW0qIHJlbmRl
clN1cmZhY2VMYXllciwgQ0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKK2Jvb2wgQ0NMYXllclRy
ZWVIb3N0OjpwYWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZShMYXllckNocm9taXVtKiByZW5kZXJT
dXJmYWNlTGF5ZXIsIENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiBxdWV1ZSkKIHsKICAgICAvLyBOb3Rl
OiBNYXNrcyBhbmQgcmVwbGljYXMgb25seSBleGlzdCBmb3IgbGF5ZXJzIHRoYXQgb3duIHJlbmRl
ciBzdXJmYWNlcy4gSWYgd2UgcmVhY2ggdGhpcyBwb2ludAogICAgIC8vIGluIGNvZGUsIHdlIGFs
cmVhZHkga25vdyB0aGF0IGF0IGxlYXN0IHNvbWV0aGluZyB3aWxsIGJlIGRyYXduIGludG8gdGhp
cyByZW5kZXIgc3VyZmFjZSwgc28gdGhlCkBAIC01NzQsMTkgKzU3NCwxOSBAQCBib29sIENDTGF5
ZXJUcmVlSG9zdDo6cGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoTGF5ZXJDaHJvbWl1bSogcmVu
ZGVyU3VyZmFjZUxheQogICAgIGJvb2wgbmVlZE1vcmVVcGRhdGVzID0gZmFsc2U7CiAgICAgTGF5
ZXJDaHJvbWl1bSogbWFza0xheWVyID0gcmVuZGVyU3VyZmFjZUxheWVyLT5tYXNrTGF5ZXIoKTsK
ICAgICBpZiAobWFza0xheWVyKSB7Ci0gICAgICAgIG1hc2tMYXllci0+dXBkYXRlKHVwZGF0ZXIs
IDAsIG1fcmVuZGVyaW5nU3RhdHMpOworICAgICAgICBtYXNrTGF5ZXItPnVwZGF0ZShxdWV1ZSwg
MCwgbV9yZW5kZXJpbmdTdGF0cyk7CiAgICAgICAgIG5lZWRNb3JlVXBkYXRlcyB8PSBtYXNrTGF5
ZXItPm5lZWRNb3JlVXBkYXRlcygpOwogICAgIH0KIAogICAgIExheWVyQ2hyb21pdW0qIHJlcGxp
Y2FNYXNrTGF5ZXIgPSByZW5kZXJTdXJmYWNlTGF5ZXItPnJlcGxpY2FMYXllcigpID8gcmVuZGVy
U3VyZmFjZUxheWVyLT5yZXBsaWNhTGF5ZXIoKS0+bWFza0xheWVyKCkgOiAwOwogICAgIGlmIChy
ZXBsaWNhTWFza0xheWVyKSB7Ci0gICAgICAgIHJlcGxpY2FNYXNrTGF5ZXItPnVwZGF0ZSh1cGRh
dGVyLCAwLCBtX3JlbmRlcmluZ1N0YXRzKTsKKyAgICAgICAgcmVwbGljYU1hc2tMYXllci0+dXBk
YXRlKHF1ZXVlLCAwLCBtX3JlbmRlcmluZ1N0YXRzKTsKICAgICAgICAgbmVlZE1vcmVVcGRhdGVz
IHw9IHJlcGxpY2FNYXNrTGF5ZXItPm5lZWRNb3JlVXBkYXRlcygpOwogICAgIH0KICAgICByZXR1
cm4gbmVlZE1vcmVVcGRhdGVzOwogfQogCi1ib29sIENDTGF5ZXJUcmVlSG9zdDo6cGFpbnRMYXll
ckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgQ0NUZXh0
dXJlVXBkYXRlciYgdXBkYXRlcikKK2Jvb2wgQ0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29u
dGVudHMoY29uc3QgTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBDQ1RleHR1cmVV
cGRhdGVRdWV1ZSYgcXVldWUpCiB7CiAgICAgLy8gVXNlIEZyb250VG9CYWNrIHRvIGFsbG93IGZv
ciB0ZXN0aW5nIG9jY2x1c2lvbiBhbmQgcGVyZm9ybWluZyBjdWxsaW5nIGR1cmluZyB0aGUgdHJl
ZSB3YWxrLgogICAgIHR5cGVkZWYgQ0NMYXllckl0ZXJhdG9yPExheWVyQ2hyb21pdW0sIFZlY3Rv
cjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiwgUmVuZGVyU3VyZmFjZUNocm9taXVtLCBDQ0xheWVy
SXRlcmF0b3JBY3Rpb25zOjpGcm9udFRvQmFjaz4gQ0NMYXllckl0ZXJhdG9yVHlwZTsKQEAgLTYw
NCwxMCArNjA0LDEwIEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0OjpwYWludExheWVyQ29udGVudHMo
Y29uc3QgTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0CiAKICAgICAgICAgaWYgKGl0
LnJlcHJlc2VudHNUYXJnZXRSZW5kZXJTdXJmYWNlKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChp
dC0+cmVuZGVyU3VyZmFjZSgpLT5kcmF3T3BhY2l0eSgpIHx8IGl0LT5yZW5kZXJTdXJmYWNlKCkt
PmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7Ci0gICAgICAgICAgICBuZWVkTW9yZVVwZGF0ZXMg
fD0gcGFpbnRNYXNrc0ZvclJlbmRlclN1cmZhY2UoKml0LCB1cGRhdGVyKTsKKyAgICAgICAgICAg
IG5lZWRNb3JlVXBkYXRlcyB8PSBwYWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZSgqaXQsIHF1ZXVl
KTsKICAgICAgICAgfSBlbHNlIGlmIChpdC5yZXByZXNlbnRzSXRzZWxmKCkpIHsKICAgICAgICAg
ICAgIEFTU0VSVCghaXQtPmJvdW5kcygpLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICBpdC0+dXBk
YXRlKHVwZGF0ZXIsICZvY2NsdXNpb25UcmFja2VyLCBtX3JlbmRlcmluZ1N0YXRzKTsKKyAgICAg
ICAgICAgIGl0LT51cGRhdGUocXVldWUsICZvY2NsdXNpb25UcmFja2VyLCBtX3JlbmRlcmluZ1N0
YXRzKTsKICAgICAgICAgICAgIG5lZWRNb3JlVXBkYXRlcyB8PSBpdC0+bmVlZE1vcmVVcGRhdGVz
KCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRleCA4Y2FmMDBi
OGY1Y2ZjYzhmN2M2ZTc2OTRlMDIyNTBjODNiMTUxNjQyLi4wNjFkN2YwOTcyMGUzN2RlZWVmNjY0
YzIxNGIxZjI0YjdhN2E5MzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApAQCAtNTMs
NyArNTMsNyBAQCBjbGFzcyBDQ0xheWVyQ2hyb21pdW07CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RJ
bXBsOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudDsKIGNsYXNzIENDUHJpb3JpdGl6
ZWRUZXh0dXJlTWFuYWdlcjsKLWNsYXNzIENDVGV4dHVyZVVwZGF0ZXI7CitjbGFzcyBDQ1RleHR1
cmVVcGRhdGVRdWV1ZTsKIGNsYXNzIEhlYWRzVXBEaXNwbGF5TGF5ZXJDaHJvbWl1bTsKIGNsYXNz
IFJlZ2lvbjsKIHN0cnVjdCBDQ1Njcm9sbEFuZFNjYWxlU2V0OwpAQCAtMTg2LDcgKzE4Niw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWNxdWlyZUxheWVyVGV4dHVyZXMoKTsKICAgICAv
LyBSZXR1cm5zIGZhbHNlIGlmIHdlIHNob3VsZCBhYm9ydCB0aGlzIGZyYW1lIGR1ZSB0byBpbml0
aWFsaXphdGlvbiBmYWlsdXJlLgogICAgIGJvb2wgaW5pdGlhbGl6ZUxheWVyUmVuZGVyZXJJZk5l
ZWRlZCgpOwotICAgIHZvaWQgdXBkYXRlTGF5ZXJzKENDVGV4dHVyZVVwZGF0ZXImLCBzaXplX3Qg
Y29udGVudHNNZW1vcnlMaW1pdEJ5dGVzKTsKKyAgICB2b2lkIHVwZGF0ZUxheWVycyhDQ1RleHR1
cmVVcGRhdGVRdWV1ZSYsIHNpemVfdCBjb250ZW50c01lbW9yeUxpbWl0Qnl0ZXMpOwogCiAgICAg
Q0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCkBA
IC0yNzgsMTEgKzI3OCwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbml0aWFsaXplTGF5ZXJS
ZW5kZXJlcigpOwogCi0gICAgdm9pZCB1cGRhdGUoTGF5ZXJDaHJvbWl1bSosIENDVGV4dHVyZVVw
ZGF0ZXImLCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqKTsKLSAgICBib29sIHBhaW50TGF5ZXJD
b250ZW50cyhjb25zdCBMYXllckxpc3QmLCBDQ1RleHR1cmVVcGRhdGVyJik7Ci0gICAgYm9vbCBw
YWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZShMYXllckNocm9taXVtKiwgQ0NUZXh0dXJlVXBkYXRl
ciYpOworICAgIHZvaWQgdXBkYXRlKExheWVyQ2hyb21pdW0qLCBDQ1RleHR1cmVVcGRhdGVRdWV1
ZSYsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciopOworICAgIGJvb2wgcGFpbnRMYXllckNvbnRl
bnRzKGNvbnN0IExheWVyTGlzdCYsIENDVGV4dHVyZVVwZGF0ZVF1ZXVlJik7CisgICAgYm9vbCBw
YWludE1hc2tzRm9yUmVuZGVyU3VyZmFjZShMYXllckNocm9taXVtKiwgQ0NUZXh0dXJlVXBkYXRl
UXVldWUmKTsKIAotICAgIHZvaWQgdXBkYXRlTGF5ZXJzKExheWVyQ2hyb21pdW0qLCBDQ1RleHR1
cmVVcGRhdGVyJik7CisgICAgdm9pZCB1cGRhdGVMYXllcnMoTGF5ZXJDaHJvbWl1bSosIENDVGV4
dHVyZVVwZGF0ZVF1ZXVlJik7CiAKICAgICB2b2lkIHByaW9yaXRpemVUZXh0dXJlcyhjb25zdCBM
YXllckxpc3QmLCBDQ092ZXJkcmF3TWV0cmljcyYpOyAKICAgICB2b2lkIHNldFByaW9yaXRpZXNG
b3JTdXJmYWNlcyhzaXplX3Qgc3VyZmFjZU1lbW9yeUJ5dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJv
eHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5jcHAKaW5kZXggMTY0MjVmZmJhNjdhZjZmNjY0NDA3Y2NiOWFmZThi
Nzk4OWNmNmIzZC4uOWZlNTA1ZjMyZGMwYTE1ZDk3Y2YyNDRlMzcxYTYyZjA5MDgyOWQwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBA
QCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OnNldE5lZWRzQW5pbWF0ZSgpCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQo
Q0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlcikKK3ZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9D
b21taXQoQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlKQogewogICAgIEFTU0VSVChDQ1Byb3h5
Ojppc01haW5UaHJlYWQoKSk7CiAgICAgLy8gQ29tbWl0IGltbWVkaWF0ZWx5CkBAIC0yMTEsOCAr
MjExLDggQEAgdm9pZCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpkb0NvbW1pdChDQ1RleHR1cmVVcGRh
dGVyJiB1cGRhdGVyKQogICAgICAgICAvLyBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtIGhlcmUgYXMg
dGhlIHRocm90dGxlZCB1cGxvYWRlciBpc24ndCB1c2VkIGluCiAgICAgICAgIC8vIHNpbmdsZSB0
aHJlYWQgbW9kZS4gRm9yIGNvcnJlY3RuZXNzLCBsb29wIHVudGlsIG5vIG1vcmUgdXBkYXRlcyBh
cmUKICAgICAgICAgLy8gcGVuZGluZy4KLSAgICAgICAgd2hpbGUgKHVwZGF0ZXIuaGFzTW9yZVVw
ZGF0ZXMoKSkKLSAgICAgICAgICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRl
eHR1cmVzKG1fbGF5ZXJUcmVlSG9zdEltcGwtPnJlc291cmNlUHJvdmlkZXIoKSwgbV9sYXllclRy
ZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCksIG1fbGF5ZXJUcmVl
SG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+dGV4dHVyZVVwbG9hZGVyKCksICZ1cGRhdGVyLCBt
YXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKSk7CisgICAgICAgIHdoaWxlIChxdWV1ZS5oYXNNb3Jl
VXBkYXRlcygpKQorICAgICAgICAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRl
VGV4dHVyZXMobV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQcm92aWRlcigpLCBtX2xheWVy
VHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVDb3BpZXIoKSwgbV9sYXllclRy
ZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBsb2FkZXIoKSwgJnF1ZXVlLCBt
YXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKSk7CiAKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5m
aW5pc2hDb21taXRPbkltcGxUaHJlYWQobV9sYXllclRyZWVIb3N0SW1wbC5nZXQoKSk7CiAKQEAg
LTMwMywxMSArMzAzLDExIEBAIGJvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tbWl0QW5kQ29t
cG9zaXRlKCkKICAgICBpZiAobV9sYXllclRyZWVIb3N0SW1wbC0+Y29udGVudHNUZXh0dXJlc1dl
cmVQdXJnZWRTaW5jZUxhc3RDb21taXQoKSkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5ldmlj
dEFsbENvbnRlbnRUZXh0dXJlcygpOwogCi0gICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVyOwot
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIG1fbGF5ZXJUcmVlSG9z
dEltcGwtPm1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKCkpOworICAgIENDVGV4dHVyZVVwZGF0
ZVF1ZXVlIHF1ZXVlOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBt
X2xheWVyVHJlZUhvc3RJbXBsLT5tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcygpKTsKIAogICAg
IG1fbGF5ZXJUcmVlSG9zdC0+d2lsbENvbW1pdCgpOwotICAgIGRvQ29tbWl0KHVwZGF0ZXIpOwor
ICAgIGRvQ29tbWl0KHF1ZXVlKTsKICAgICBib29sIHJlc3VsdCA9IGRvQ29tcG9zaXRlKCk7CiAg
ICAgbV9sYXllclRyZWVIb3N0LT5kaWRCZWdpbkZyYW1lKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2luZ2xlVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAppbmRleCA2ZGNlMWMzNWU4NGZlN2Q1
MDI5YWU2YjE0N2MwZjc0MDU3YTg4OWY3Li5jYjA0YTMyYjJmYTYzMDlhNGEwNjNlZmQ3MjE4ZDlm
MjM0MTkwYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCkBAIC03OSw3
ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ0NTaW5nbGVUaHJlYWRQcm94eShDQ0xh
eWVyVHJlZUhvc3QqKTsKIAogICAgIGJvb2wgY29tbWl0QW5kQ29tcG9zaXRlKCk7Ci0gICAgdm9p
ZCBkb0NvbW1pdChDQ1RleHR1cmVVcGRhdGVyJik7CisgICAgdm9pZCBkb0NvbW1pdChDQ1RleHR1
cmVVcGRhdGVRdWV1ZSYpOwogICAgIGJvb2wgZG9Db21wb3NpdGUoKTsKICAgICB2b2lkIGRpZFN3
YXBGcmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXIuY3BwCmluZGV4IGZiYjBmMzY4NTg2MGFhNTM4ODRhMmNhOTQ5NWJlNmUzZjM2ZTA0YzguLmRk
ZTg5NDk1MDQ2OTlkNzgwYjJlMTA5YThhOGI0MjQ5MWRmOWYwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuY3BwCkBAIC00OSwxNyArNDksMTcgQEAg
c2l6ZV90IENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Om1heFBhcnRpYWxUZXh0dXJlVXBkYXRl
cygpCiAgICAgcmV0dXJuIHRleHR1cmVVcGRhdGVzUGVyRnJhbWU7CiB9CiAKLXZvaWQgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiBy
ZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciog
dXBsb2FkZXIsIENDVGV4dHVyZVVwZGF0ZXIqIHVwZGF0ZXIsIHNpemVfdCBjb3VudCkKK3ZvaWQg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3Zp
ZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxv
YWRlciogdXBsb2FkZXIsIENDVGV4dHVyZVVwZGF0ZVF1ZXVlKiBxdWV1ZSwgc2l6ZV90IGNvdW50
KQogewotICAgIGlmICh1cGRhdGVyLT5mdWxsVXBsb2FkU2l6ZSgpIHx8IHVwZGF0ZXItPnBhcnRp
YWxVcGxvYWRTaXplKCkpIHsKKyAgICBpZiAocXVldWUtPmZ1bGxVcGxvYWRTaXplKCkgfHwgcXVl
dWUtPnBhcnRpYWxVcGxvYWRTaXplKCkpIHsKICAgICAgICAgaWYgKHVwbG9hZGVyLT5pc0J1c3ko
KSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB1cGxvYWRlci0+YmVnaW5VcGxvYWRz
KCk7CiAKICAgICAgICAgc2l6ZV90IGZ1bGxVcGxvYWRDb3VudCA9IDA7Ci0gICAgICAgIHdoaWxl
ICh1cGRhdGVyLT5mdWxsVXBsb2FkU2l6ZSgpICYmIGZ1bGxVcGxvYWRDb3VudCA8IGNvdW50KSB7
Ci0gICAgICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVyZShyZXNvdXJjZVByb3ZpZGVyLCB1
cGRhdGVyLT50YWtlRmlyc3RGdWxsVXBsb2FkKCkpOworICAgICAgICB3aGlsZSAocXVldWUtPmZ1
bGxVcGxvYWRTaXplKCkgJiYgZnVsbFVwbG9hZENvdW50IDwgY291bnQpIHsKKyAgICAgICAgICAg
IHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKHJlc291cmNlUHJvdmlkZXIsIHF1ZXVlLT50YWtlRmly
c3RGdWxsVXBsb2FkKCkpOwogICAgICAgICAgICAgZnVsbFVwbG9hZENvdW50Kys7CiAgICAgICAg
ICAgICBpZiAoIShmdWxsVXBsb2FkQ291bnQgJSB0ZXh0dXJlVXBsb2FkRmx1c2hQZXJpb2QpKQog
ICAgICAgICAgICAgICAgIHJlc291cmNlUHJvdmlkZXItPnNoYWxsb3dGbHVzaElmU3VwcG9ydGVk
KCk7CkBAIC02OSwxMiArNjksMTIgQEAgdm9pZCBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1
cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmkKICAgICAgICAg
aWYgKGZ1bGxVcGxvYWRDb3VudCAlIHRleHR1cmVVcGxvYWRGbHVzaFBlcmlvZCkKICAgICAgICAg
ICAgIHJlc291cmNlUHJvdmlkZXItPnNoYWxsb3dGbHVzaElmU3VwcG9ydGVkKCk7CiAKLSAgICAg
ICAgYm9vbCBtb3JlVXBsb2FkcyA9IHVwZGF0ZXItPmZ1bGxVcGxvYWRTaXplKCk7CisgICAgICAg
IGJvb2wgbW9yZVVwbG9hZHMgPSBxdWV1ZS0+ZnVsbFVwbG9hZFNpemUoKTsKIAotICAgICAgICBB
U1NFUlQodXBkYXRlci0+cGFydGlhbFVwbG9hZFNpemUoKSA8PSBjb3VudCk7CisgICAgICAgIEFT
U0VSVChxdWV1ZS0+cGFydGlhbFVwbG9hZFNpemUoKSA8PSBjb3VudCk7CiAgICAgICAgIC8vIFdl
IG5lZWQgYW5vdGhlciB1cGRhdGUgYmF0Y2ggaWYgdGhlIG51bWJlciBvZiB1cGRhdGVzIHJlbWFp
bmluZwogICAgICAgICAvLyBpbiB8Y291bnR8IGlzIGdyZWF0ZXIgdGhhbiB0aGUgcmVtYWluaW5n
IHBhcnRpYWwgZW50cmllcy4KLSAgICAgICAgaWYgKChjb3VudCAtIGZ1bGxVcGxvYWRDb3VudCkg
PCB1cGRhdGVyLT5wYXJ0aWFsVXBsb2FkU2l6ZSgpKQorICAgICAgICBpZiAoKGNvdW50IC0gZnVs
bFVwbG9hZENvdW50KSA8IHF1ZXVlLT5wYXJ0aWFsVXBsb2FkU2l6ZSgpKQogICAgICAgICAgICAg
bW9yZVVwbG9hZHMgPSB0cnVlOwogCiAgICAgICAgIGlmIChtb3JlVXBsb2FkcykgewpAQCAtODMs
OCArODMsOCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVz
KENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92aQogICAgICAgICB9CiAKICAgICAgICAg
c2l6ZV90IHBhcnRpYWxVcGxvYWRDb3VudCA9IDA7Ci0gICAgICAgIHdoaWxlICh1cGRhdGVyLT5w
YXJ0aWFsVXBsb2FkU2l6ZSgpKSB7Ci0gICAgICAgICAgICB1cGxvYWRlci0+dXBsb2FkVGV4dHVy
ZShyZXNvdXJjZVByb3ZpZGVyLCB1cGRhdGVyLT50YWtlRmlyc3RQYXJ0aWFsVXBsb2FkKCkpOwor
ICAgICAgICB3aGlsZSAocXVldWUtPnBhcnRpYWxVcGxvYWRTaXplKCkpIHsKKyAgICAgICAgICAg
IHVwbG9hZGVyLT51cGxvYWRUZXh0dXJlKHJlc291cmNlUHJvdmlkZXIsIHF1ZXVlLT50YWtlRmly
c3RQYXJ0aWFsVXBsb2FkKCkpOwogICAgICAgICAgICAgcGFydGlhbFVwbG9hZENvdW50Kys7CiAg
ICAgICAgICAgICBpZiAoIShwYXJ0aWFsVXBsb2FkQ291bnQgJSB0ZXh0dXJlVXBsb2FkRmx1c2hQ
ZXJpb2QpKQogICAgICAgICAgICAgICAgIHJlc291cmNlUHJvdmlkZXItPnNoYWxsb3dGbHVzaElm
U3VwcG9ydGVkKCk7CkBAIC05OCw4ICs5OCw4IEBAIHZvaWQgQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcjo6dXBkYXRlVGV4dHVyZXMoQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpCiAg
ICAgfQogCiAgICAgc2l6ZV90IGNvcHlDb3VudCA9IDA7Ci0gICAgd2hpbGUgKHVwZGF0ZXItPmNv
cHlTaXplKCkpIHsKLSAgICAgICAgY29waWVyLT5jb3B5VGV4dHVyZSh1cGRhdGVyLT50YWtlRmly
c3RDb3B5KCkpOworICAgIHdoaWxlIChxdWV1ZS0+Y29weVNpemUoKSkgeworICAgICAgICBjb3Bp
ZXItPmNvcHlUZXh0dXJlKHF1ZXVlLT50YWtlRmlyc3RDb3B5KCkpOwogICAgICAgICBjb3B5Q291
bnQrKzsKICAgICB9CiAKQEAgLTExMCw4ICsxMTAsOCBAQCB2b2lkIENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlciogcmVzb3VyY2VQcm92
aQogICAgICAgICBjb3BpZXItPmZsdXNoKCk7CiB9CiAKLUNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI6OkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoUGFzc093blB0cjxDQ1RleHR1cmVVcGRhdGVy
PiB1cGRhdGVyLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291cmNlUHJvdmlkZXIsIFRleHR1cmVD
b3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxvYWRlcikKLSAgICA6IG1fdXBkYXRl
cih1cGRhdGVyKQorQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6Q0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcihQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSwgQ0NSZXNvdXJj
ZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBUZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1
cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgOiBtX3F1ZXVlKHF1ZXVlKQogICAgICwgbV9yZXNv
dXJjZVByb3ZpZGVyKHJlc291cmNlUHJvdmlkZXIpCiAgICAgLCBtX2NvcGllcihjb3BpZXIpCiAg
ICAgLCBtX3VwbG9hZGVyKHVwbG9hZGVyKQpAQCAtMTI0LDE1ICsxMjQsMTUgQEAgQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcjo6fkNDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIoKQogCiBib29sIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6Omhhc01vcmVVcGRhdGVzKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV91cGRhdGVyLT5oYXNNb3JlVXBkYXRlcygpOworICAgIHJldHVybiBtX3F1ZXVlLT5o
YXNNb3JlVXBkYXRlcygpOwogfQogCiB2b2lkIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVw
ZGF0ZU1vcmVUZXh0dXJlcygpCiB7Ci0gICAgaWYgKCFtX3VwZGF0ZXItPmhhc01vcmVVcGRhdGVz
KCkpCisgICAgaWYgKCFtX3F1ZXVlLT5oYXNNb3JlVXBkYXRlcygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIsIG1fY29waWVyLCBtX3Vw
bG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIHVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSk7CisgICAg
dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLCBtX2NvcGllciwgbV91cGxvYWRlciwg
bV9xdWV1ZS5nZXQoKSwgdXBkYXRlTW9yZVRleHR1cmVzU2l6ZSgpKTsKIH0KIAogc2l6ZV90IEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZU1vcmVUZXh0dXJlc1NpemUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlci5oCmluZGV4IDgxYTFh
N2U1OGE2NGE5YTY5NWVmMTNkNDU1NjdkNjZkNjcwZDk3OWQuLmJkMmM3YmM4MjcxZGFlODk4OWJm
ZjM3MGUzMDkxNDI0MmQ2YTZjZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRh
dGVDb250cm9sbGVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcl9oCiAjZGVmaW5lIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJfaAogCi0jaW5j
bHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0
ZVF1ZXVlLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093
blB0ci5oPgogCkBAIC0zOCwxMiArMzgsMTIgQEAgY2xhc3MgVGV4dHVyZVVwbG9hZGVyOwogY2xh
c3MgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcik7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKFBhc3NPd25QdHI8Q0NUZXh0dXJl
VXBkYXRlcj4gdXBkYXRlciwgQ0NSZXNvdXJjZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyLCBU
ZXh0dXJlQ29waWVyKiBjb3BpZXIsIFRleHR1cmVVcGxvYWRlciogdXBsb2FkZXIpCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcj4gY3JlYXRlKFBhc3NPd25Q
dHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+IHF1ZXVlLCBDQ1Jlc291cmNlUHJvdmlkZXIqIHJlc291
cmNlUHJvdmlkZXIsIFRleHR1cmVDb3BpZXIqIGNvcGllciwgVGV4dHVyZVVwbG9hZGVyKiB1cGxv
YWRlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBkYXRl
Q29udHJvbGxlcih1cGRhdGVyLCByZXNvdXJjZVByb3ZpZGVyLCBjb3BpZXIsIHVwbG9hZGVyKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcihx
dWV1ZSwgcmVzb3VyY2VQcm92aWRlciwgY29waWVyLCB1cGxvYWRlcikpOwogICAgIH0KICAgICBz
dGF0aWMgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpOwotICAgIHN0YXRpYyB2b2lk
IHVwZGF0ZVRleHR1cmVzKENDUmVzb3VyY2VQcm92aWRlciosIFRleHR1cmVDb3BpZXIqLCBUZXh0
dXJlVXBsb2FkZXIqLCBDQ1RleHR1cmVVcGRhdGVyKiwgc2l6ZV90IGNvdW50KTsKKyAgICBzdGF0
aWMgdm9pZCB1cGRhdGVUZXh0dXJlcyhDQ1Jlc291cmNlUHJvdmlkZXIqLCBUZXh0dXJlQ29waWVy
KiwgVGV4dHVyZVVwbG9hZGVyKiwgQ0NUZXh0dXJlVXBkYXRlUXVldWUqLCBzaXplX3QgY291bnQp
OwogCiAgICAgdmlydHVhbCB+Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcigpOwogCkBAIC01NCw5
ICs1NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNpemVfdCB1cGRhdGVNb3JlVGV4dHVyZXNT
aXplKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
KFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlcj4sIENDUmVzb3VyY2VQcm92aWRlciosIFRleHR1
cmVDb3BpZXIqLCBUZXh0dXJlVXBsb2FkZXIqKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyKFBhc3NPd25QdHI8Q0NUZXh0dXJlVXBkYXRlUXVldWU+LCBDQ1Jlc291cmNlUHJvdmlkZXIq
LCBUZXh0dXJlQ29waWVyKiwgVGV4dHVyZVVwbG9hZGVyKik7CiAKLSAgICBPd25QdHI8Q0NUZXh0
dXJlVXBkYXRlcj4gbV91cGRhdGVyOworICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVRdWV1ZT4g
bV9xdWV1ZTsKICAgICBDQ1Jlc291cmNlUHJvdmlkZXIqIG1fcmVzb3VyY2VQcm92aWRlcjsKICAg
ICBUZXh0dXJlQ29waWVyKiBtX2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXIqIG1fdXBsb2Fk
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWU5YWI5Nzg4NGM0NmIwNDNjOTViYWVmYzhhM2U0NGJhMGUyMjI2YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVy
ZVVwZGF0ZVF1ZXVlLmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW5jbHVkZSAiY2Mv
Q0NUZXh0dXJlVXBkYXRlUXVldWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDQ1RleHR1
cmVVcGRhdGVRdWV1ZTo6Q0NUZXh0dXJlVXBkYXRlUXVldWUoKQoreworfQorCitDQ1RleHR1cmVV
cGRhdGVRdWV1ZTo6fkNDVGV4dHVyZVVwZGF0ZVF1ZXVlKCkKK3sKK30KKwordm9pZCBDQ1RleHR1
cmVVcGRhdGVRdWV1ZTo6YXBwZW5kRnVsbFVwbG9hZChUZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRl
cnMgdXBsb2FkKQoreworICAgIG1fZnVsbEVudHJpZXMuYXBwZW5kKHVwbG9hZCk7Cit9CisKK3Zv
aWQgQ0NUZXh0dXJlVXBkYXRlUXVldWU6OmFwcGVuZFBhcnRpYWxVcGxvYWQoVGV4dHVyZVVwbG9h
ZGVyOjpQYXJhbWV0ZXJzIHVwbG9hZCkKK3sKKyAgICBtX3BhcnRpYWxFbnRyaWVzLmFwcGVuZCh1
cGxvYWQpOworfQorCit2b2lkIENDVGV4dHVyZVVwZGF0ZVF1ZXVlOjphcHBlbmRDb3B5KFRleHR1
cmVDb3BpZXI6OlBhcmFtZXRlcnMgY29weSkKK3sKKyAgICBtX2NvcHlFbnRyaWVzLmFwcGVuZChj
b3B5KTsKK30KKworVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIENDVGV4dHVyZVVwZGF0ZVF1
ZXVlOjp0YWtlRmlyc3RGdWxsVXBsb2FkKCkKK3sKKyAgICByZXR1cm4gbV9mdWxsRW50cmllcy50
YWtlRmlyc3QoKTsKK30KKworVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlOjp0YWtlRmlyc3RQYXJ0aWFsVXBsb2FkKCkKK3sKKyAgICByZXR1cm4gbV9wYXJ0
aWFsRW50cmllcy50YWtlRmlyc3QoKTsKK30KKworVGV4dHVyZUNvcGllcjo6UGFyYW1ldGVycyBD
Q1RleHR1cmVVcGRhdGVRdWV1ZTo6dGFrZUZpcnN0Q29weSgpCit7CisgICAgcmV0dXJuIG1fY29w
eUVudHJpZXMudGFrZUZpcnN0KCk7Cit9CisKK2Jvb2wgQ0NUZXh0dXJlVXBkYXRlUXVldWU6Omhh
c01vcmVVcGRhdGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mdWxsRW50cmllcy5zaXplKCkg
fHwgbV9wYXJ0aWFsRW50cmllcy5zaXplKCkgfHwgbV9jb3B5RW50cmllcy5zaXplKCk7Cit9CisK
K30KKworI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVw
ZGF0ZVF1ZXVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiYjVjYmMxZDlhMDY2ZmYwMmY5
NGFlNGNhMTZhYmMxNWQyZThjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oCkBAIC0w
LDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENDVGV4dHVyZVVwZGF0ZVF1ZXVlX2gKKyNkZWZp
bmUgQ0NUZXh0dXJlVXBkYXRlUXVldWVfaAorCisjaW5jbHVkZSAiVGV4dHVyZUNvcGllci5oIgor
I2luY2x1ZGUgIlRleHR1cmVVcGxvYWRlci5oIgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENDVGV4dHVyZVVwZGF0ZVF1ZXVlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ1RleHR1
cmVVcGRhdGVRdWV1ZSk7CitwdWJsaWM6CisgICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUoKTsKKyAg
ICB2aXJ0dWFsIH5DQ1RleHR1cmVVcGRhdGVRdWV1ZSgpOworCisgICAgdm9pZCBhcHBlbmRGdWxs
VXBsb2FkKFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyk7CisgICAgdm9pZCBhcHBlbmRQYXJ0
aWFsVXBsb2FkKFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyk7CisgICAgdm9pZCBhcHBlbmRD
b3B5KFRleHR1cmVDb3BpZXI6OlBhcmFtZXRlcnMpOworCisgICAgVGV4dHVyZVVwbG9hZGVyOjpQ
YXJhbWV0ZXJzIHRha2VGaXJzdEZ1bGxVcGxvYWQoKTsKKyAgICBUZXh0dXJlVXBsb2FkZXI6OlBh
cmFtZXRlcnMgdGFrZUZpcnN0UGFydGlhbFVwbG9hZCgpOworICAgIFRleHR1cmVDb3BpZXI6OlBh
cmFtZXRlcnMgdGFrZUZpcnN0Q29weSgpOworCisgICAgc2l6ZV90IGZ1bGxVcGxvYWRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9mdWxsRW50cmllcy5zaXplKCk7IH0KKyAgICBzaXplX3QgcGFydGlh
bFVwbG9hZFNpemUoKSBjb25zdCB7IHJldHVybiBtX3BhcnRpYWxFbnRyaWVzLnNpemUoKTsgfQor
ICAgIHNpemVfdCBjb3B5U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29weUVudHJpZXMuc2l6ZSgp
OyB9CisKKyAgICBib29sIGhhc01vcmVVcGRhdGVzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
RGVxdWU8VGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzPiBtX2Z1bGxFbnRyaWVzOworICAgIERl
cXVlPFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycz4gbV9wYXJ0aWFsRW50cmllczsKKyAgICBE
ZXF1ZTxUZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzPiBtX2NvcHlFbnRyaWVzOworfTsKKworfQor
CisjZW5kaWYgLy8gQ0NUZXh0dXJlVXBkYXRlUXVldWVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVV
cGRhdGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUyMDNkN2ZjZTI2YzY5
NzAyOTgzYmNmZDUwNzBhMzVlNTY0YmYyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVVcGRhdGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCi0KLSNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotQ0NUZXh0dXJlVXBkYXRlcjo6Q0NUZXh0dXJlVXBkYXRlcigpCi17Ci19Ci0K
LUNDVGV4dHVyZVVwZGF0ZXI6On5DQ1RleHR1cmVVcGRhdGVyKCkKLXsKLX0KLQotdm9pZCBDQ1Rl
eHR1cmVVcGRhdGVyOjphcHBlbmRGdWxsVXBsb2FkKFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVy
cyB1cGxvYWQpCi17Ci0gICAgbV9mdWxsRW50cmllcy5hcHBlbmQodXBsb2FkKTsKLX0KLQotdm9p
ZCBDQ1RleHR1cmVVcGRhdGVyOjphcHBlbmRQYXJ0aWFsVXBsb2FkKFRleHR1cmVVcGxvYWRlcjo6
UGFyYW1ldGVycyB1cGxvYWQpCi17Ci0gICAgbV9wYXJ0aWFsRW50cmllcy5hcHBlbmQodXBsb2Fk
KTsKLX0KLQotdm9pZCBDQ1RleHR1cmVVcGRhdGVyOjphcHBlbmRDb3B5KFRleHR1cmVDb3BpZXI6
OlBhcmFtZXRlcnMgY29weSkKLXsKLSAgICBtX2NvcHlFbnRyaWVzLmFwcGVuZChjb3B5KTsKLX0K
LQotVGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzIENDVGV4dHVyZVVwZGF0ZXI6OnRha2VGaXJz
dEZ1bGxVcGxvYWQoKQotewotICAgIHJldHVybiBtX2Z1bGxFbnRyaWVzLnRha2VGaXJzdCgpOwot
fQotCi1UZXh0dXJlVXBsb2FkZXI6OlBhcmFtZXRlcnMgQ0NUZXh0dXJlVXBkYXRlcjo6dGFrZUZp
cnN0UGFydGlhbFVwbG9hZCgpCi17Ci0gICAgcmV0dXJuIG1fcGFydGlhbEVudHJpZXMudGFrZUZp
cnN0KCk7Ci19Ci0KLVRleHR1cmVDb3BpZXI6OlBhcmFtZXRlcnMgQ0NUZXh0dXJlVXBkYXRlcjo6
dGFrZUZpcnN0Q29weSgpCi17Ci0gICAgcmV0dXJuIG1fY29weUVudHJpZXMudGFrZUZpcnN0KCk7
Ci19Ci0KLWJvb2wgQ0NUZXh0dXJlVXBkYXRlcjo6aGFzTW9yZVVwZGF0ZXMoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2Z1bGxFbnRyaWVzLnNpemUoKSB8fCBtX3BhcnRpYWxFbnRyaWVzLnNpemUo
KSB8fCBtX2NvcHlFbnRyaWVzLnNpemUoKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlVXBkYXRlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjI1ZjdjYTg2NDMyZGMwY2EyOGE5ZTZkNzk3ZDYzNGQ2
YTU3MjVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZVVwZGF0
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENDVGV4
dHVyZVVwZGF0ZXJfaAotI2RlZmluZSBDQ1RleHR1cmVVcGRhdGVyX2gKLQotI2luY2x1ZGUgIlRl
eHR1cmVDb3BpZXIuaCIKLSNpbmNsdWRlICJUZXh0dXJlVXBsb2FkZXIuaCIKLSNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBDQ1RleHR1cmVVcGRhdGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShDQ1RleHR1cmVVcGRhdGVyKTsKLXB1YmxpYzoKLSAgICBDQ1RleHR1cmVVcGRhdGVyKCk7
Ci0gICAgdmlydHVhbCB+Q0NUZXh0dXJlVXBkYXRlcigpOwotCi0gICAgdm9pZCBhcHBlbmRGdWxs
VXBsb2FkKFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyk7Ci0gICAgdm9pZCBhcHBlbmRQYXJ0
aWFsVXBsb2FkKFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycyk7Ci0gICAgdm9pZCBhcHBlbmRD
b3B5KFRleHR1cmVDb3BpZXI6OlBhcmFtZXRlcnMpOwotCi0gICAgVGV4dHVyZVVwbG9hZGVyOjpQ
YXJhbWV0ZXJzIHRha2VGaXJzdEZ1bGxVcGxvYWQoKTsKLSAgICBUZXh0dXJlVXBsb2FkZXI6OlBh
cmFtZXRlcnMgdGFrZUZpcnN0UGFydGlhbFVwbG9hZCgpOwotICAgIFRleHR1cmVDb3BpZXI6OlBh
cmFtZXRlcnMgdGFrZUZpcnN0Q29weSgpOwotCi0gICAgc2l6ZV90IGZ1bGxVcGxvYWRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9mdWxsRW50cmllcy5zaXplKCk7IH0KLSAgICBzaXplX3QgcGFydGlh
bFVwbG9hZFNpemUoKSBjb25zdCB7IHJldHVybiBtX3BhcnRpYWxFbnRyaWVzLnNpemUoKTsgfQot
ICAgIHNpemVfdCBjb3B5U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29weUVudHJpZXMuc2l6ZSgp
OyB9Ci0KLSAgICBib29sIGhhc01vcmVVcGRhdGVzKCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAg
RGVxdWU8VGV4dHVyZVVwbG9hZGVyOjpQYXJhbWV0ZXJzPiBtX2Z1bGxFbnRyaWVzOwotICAgIERl
cXVlPFRleHR1cmVVcGxvYWRlcjo6UGFyYW1ldGVycz4gbV9wYXJ0aWFsRW50cmllczsKLSAgICBE
ZXF1ZTxUZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzPiBtX2NvcHlFbnRyaWVzOwotfTsKLQotfQot
Ci0jZW5kaWYgLy8gQ0NUZXh0dXJlVXBkYXRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3Bw
CmluZGV4IDUxYjdiNjllNzJjMWQyZmVmYTBkMDdkMjNhMjJmNmZiODczMGU0ZDQuLjgxODYzOTVh
OGU2NjkzNGEyM2RkNGVkMDljOWIwYWRkNmNmOTVmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuY3BwCkBAIC01MTUsOCArNTE1LDggQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1l
KCkKICAgICBpZiAocmVxdWVzdC0+Y29udGVudHNUZXh0dXJlc1dlcmVEZWxldGVkKQogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPmV2aWN0QWxsQ29udGVudFRleHR1cmVzKCk7CiAKLSAgICBPd25Q
dHI8Q0NUZXh0dXJlVXBkYXRlcj4gdXBkYXRlciA9IGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRh
dGVyKTsKLSAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycygqKHVwZGF0ZXIuZ2V0KCkp
LCByZXF1ZXN0LT5tZW1vcnlBbGxvY2F0aW9uTGltaXRCeXRlcyk7CisgICAgT3duUHRyPENDVGV4
dHVyZVVwZGF0ZVF1ZXVlPiBxdWV1ZSA9IGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRhdGVRdWV1
ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMoKihxdWV1ZS5nZXQoKSksIHJl
cXVlc3QtPm1lbW9yeUFsbG9jYXRpb25MaW1pdEJ5dGVzKTsKIAogICAgIC8vIE9uY2Ugc2luZ2xl
IGJ1ZmZlcmVkIGxheWVycyBhcmUgY29tbWl0dGVkLCB0aGV5IGNhbm5vdCBiZSBtb2RpZmllZCB1
bnRpbAogICAgIC8vIHRoZXkgYXJlIGRyYXduIGJ5IHRoZSBpbXBsIHRocmVhZC4KQEAgLTUzOCw3
ICs1MzgsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWUoKQogICAgICAgICBEZWJ1
Z1Njb3BlZFNldE1haW5UaHJlYWRCbG9ja2VkIG1haW5UaHJlYWRCbG9ja2VkOwogCiAgICAgICAg
IENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247Ci0gICAgICAgIENDUHJveHk6OmltcGxUaHJl
YWQoKS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojpi
ZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQsICZjb21wbGV0aW9uLCB1cGRhdGVyLnJlbGVh
c2UoKSkpOworICAgICAgICBDQ1Byb3h5OjppbXBsVGhyZWFkKCktPnBvc3RUYXNrKGNyZWF0ZUND
VGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBs
VGhyZWFkLCAmY29tcGxldGlvbiwgcXVldWUucmVsZWFzZSgpKSk7CiAgICAgICAgIGNvbXBsZXRp
b24ud2FpdCgpOwogICAgIH0KIApAQCAtNTQ2LDcgKzU0Niw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94
eTo6YmVnaW5GcmFtZSgpCiAgICAgbV9sYXllclRyZWVIb3N0LT5kaWRCZWdpbkZyYW1lKCk7CiB9
CiAKLXZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUNvbXBsZXRlT25JbXBsVGhyZWFkKEND
Q29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZXI+
IHVwZGF0ZXIpCit2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRo
cmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbiwgUGFzc093blB0cjxDQ1RleHR1cmVV
cGRhdGVRdWV1ZT4gcXVldWUpCiB7CiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1RocmVhZFBy
b3h5OjpiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQiKTsKICAgICBBU1NFUlQoIW1fY29t
bWl0Q29tcGxldGlvbkV2ZW50T25JbXBsVGhyZWFkKTsKQEAgLTU1OSw3ICs1NTksNyBAQCB2b2lk
IENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVDb21wbGV0ZU9uSW1wbFRocmVhZChDQ0NvbXBsZXRp
b25FdmVudCogY29tcGxldGlvbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jdXJy
ZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJlYWQgPSBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyOjpjcmVhdGUodXBkYXRlciwgbV9sYXllclRyZWVIb3N0SW1wbC0+cmVzb3VyY2VQ
cm92aWRlcigpLCBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPnRleHR1cmVD
b3BpZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT50ZXh0dXJlVXBs
b2FkZXIoKSk7CisgICAgbV9jdXJyZW50VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJPbkltcGxUaHJl
YWQgPSBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjpjcmVhdGUocXVldWUsIG1fbGF5ZXJUcmVl
SG9zdEltcGwtPnJlc291cmNlUHJvdmlkZXIoKSwgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJS
ZW5kZXJlcigpLT50ZXh0dXJlQ29waWVyKCksIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVu
ZGVyZXIoKS0+dGV4dHVyZVVwbG9hZGVyKCkpOwogICAgIG1fY29tbWl0Q29tcGxldGlvbkV2ZW50
T25JbXBsVGhyZWFkID0gY29tcGxldGlvbjsKIAogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFk
LT5iZWdpbkZyYW1lQ29tcGxldGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCBmMzIx
MmU2NTZjMjM2MzU1MjNkMmI1OTg5ZDBhZmMwMzU1OTE0YzYyLi5lNTkxMmUyMzNjNWY0ZTU4MjBk
NDI5MmM0MGI5NDZjY2EwZjJjMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC0zOCw4
ICszOCw4IEBAIGNsYXNzIENDSW5wdXRIYW5kbGVyOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0Owog
Y2xhc3MgQ0NTY2hlZHVsZXI7CiBjbGFzcyBDQ1Njb3BlZFRocmVhZFByb3h5OworY2xhc3MgQ0NU
ZXh0dXJlVXBkYXRlUXVldWU7CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOwotY2xh
c3MgQ0NUZXh0dXJlVXBkYXRlcjsKIGNsYXNzIENDVGhyZWFkOwogY2xhc3MgQ0NUaHJlYWRQcm94
eUNvbnRleHRSZWNyZWF0aW9uVGltZXI7CiAKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRlOgog
ICAgICAgICBJbnRSZWN0IHJlY3Q7CiAgICAgfTsKICAgICB2b2lkIGZvcmNlQmVnaW5GcmFtZU9u
SW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOwotICAgIHZvaWQgYmVnaW5GcmFtZUNvbXBs
ZXRlT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiwgUGFzc093blB0cjxDQ1RleHR1cmVV
cGRhdGVyPik7CisgICAgdm9pZCBiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQoQ0NDb21w
bGV0aW9uRXZlbnQqLCBQYXNzT3duUHRyPENDVGV4dHVyZVVwZGF0ZVF1ZXVlPik7CiAgICAgdm9p
ZCBiZWdpbkZyYW1lQWJvcnRlZE9uSW1wbFRocmVhZCgpOwogICAgIHZvaWQgcmVxdWVzdFJlYWRi
YWNrT25JbXBsVGhyZWFkKFJlYWRiYWNrUmVxdWVzdCopOwogICAgIHZvaWQgcmVxdWVzdFN0YXJ0
UGFnZVNjYWxlQW5pbWF0aW9uT25JbXBsVGhyZWFkKEludFNpemUgdGFyZ2V0UG9zaXRpb24sIGJv
b2wgdXNlQW5jaG9yLCBmbG9hdCBzY2FsZSwgZG91YmxlIGR1cmF0aW9uU2VjKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNw
cAppbmRleCA2ODY0OWIzNzBkMmRiYmVkYjg4N2ExNDJlMDQyN2IyZGVlNTAwMWRlLi5iYmQxZjhk
ZGJmNmU4ZTQxODAxYTk0ZTM2NzNhZGFhZWM4OTIyYzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuY3BwCkBAIC0yNyw3
ICsyNyw3IEBACiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmg+CiAK
ICNpbmNsdWRlICJUZXh0dXJlTGF5ZXJDaHJvbWl1bS5oIgotI2luY2x1ZGUgImNjL0NDVGV4dHVy
ZVVwZGF0ZXIuaCIKKyNpbmNsdWRlICJjYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oIgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJGbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgpAQCAtMzgs
MTkgKzM4LDE5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJUZXh0dXJlVXBkYXRl
ckltcGwgOiBwdWJsaWMgV2ViVGV4dHVyZVVwZGF0ZXIgewogcHVibGljOgotICAgIGV4cGxpY2l0
IFdlYlRleHR1cmVVcGRhdGVySW1wbChDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVyKQotICAgICAg
ICA6IG1fdXBkYXRlcih1cGRhdGVyKQorICAgIGV4cGxpY2l0IFdlYlRleHR1cmVVcGRhdGVySW1w
bChDQ1RleHR1cmVVcGRhdGVRdWV1ZSYgcXVldWUpCisgICAgICAgIDogbV9xdWV1ZShxdWV1ZSkK
ICAgICB7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZENvcHkodW5zaWduZWQgc291
cmNlVGV4dHVyZSwgdW5zaWduZWQgZGVzdGluYXRpb25UZXh0dXJlLCBXZWJTaXplIHNpemUpIE9W
RVJSSURFCiAgICAgewogICAgICAgICBUZXh0dXJlQ29waWVyOjpQYXJhbWV0ZXJzIGNvcHkgPSB7
IHNvdXJjZVRleHR1cmUsIGRlc3RpbmF0aW9uVGV4dHVyZSwgc2l6ZSB9OwotICAgICAgICBtX3Vw
ZGF0ZXIuYXBwZW5kQ29weShjb3B5KTsKKyAgICAgICAgbV9xdWV1ZS5hcHBlbmRDb3B5KGNvcHkp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBDQ1RleHR1cmVVcGRhdGVyJiBtX3VwZGF0ZXI7Cisg
ICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUmIG1fcXVldWU7CiB9OwogCiBjbGFzcyBXZWJFeHRlcm5h
bFRleHR1cmVMYXllckltcGwgOiBwdWJsaWMgVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQsIHB1
YmxpYyBUZXh0dXJlTGF5ZXJDaHJvbWl1bSB7CkBAIC02MSw5ICs2MSw5IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBwcmVwYXJlVGV4dHVyZShDQ1RleHR1
cmVVcGRhdGVyJiB1cGRhdGVyKSBPVkVSUklERQorICAgIHZpcnR1YWwgdW5zaWduZWQgcHJlcGFy
ZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlKSBPVkVSUklERQogICAgIHsKLSAg
ICAgICAgV2ViVGV4dHVyZVVwZGF0ZXJJbXBsIHVwZGF0ZXJJbXBsKHVwZGF0ZXIpOworICAgICAg
ICBXZWJUZXh0dXJlVXBkYXRlckltcGwgdXBkYXRlckltcGwocXVldWUpOwogICAgICAgICByZXR1
cm4gbV9jbGllbnQtPnByZXBhcmVUZXh0dXJlKHVwZGF0ZXJJbXBsKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3Bw
CmluZGV4IGU1YmE2MWE2NzQ1ZGM0Y2I3NDQzOGM3NWZkNmVkNzBiMjI2OGFkYjkuLmQ2NzFjOTM4
ZjQ4OWE3M2YyNjkzNDJmZTJjM2EzMzI0M2IzMjAzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMzQsNyArMzQs
NyBAQAogI2luY2x1ZGUgImNjL0NDR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5oIgogI2luY2x1ZGUgImNjL0NDU2V0dGluZ3MuaCIKLSNpbmNsdWRl
ICJjYy9DQ1RleHR1cmVVcGRhdGVyLmgiCisjaW5jbHVkZSAiY2MvQ0NUZXh0dXJlVXBkYXRlUXVl
dWUuaCIKICNpbmNsdWRlICJjYy9DQ1RpbWluZ0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAicGxhdGZv
cm0vV2ViVGhyZWFkLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KQEAgLTExNjAsOSArMTE2
MCw5IEBAIHB1YmxpYzoKICAgICBpbnQgcGFpbnRDb250ZW50c0NvdW50KCkgeyByZXR1cm4gbV9w
YWludENvbnRlbnRzQ291bnQ7IH0KICAgICB2b2lkIHJlc2V0UGFpbnRDb250ZW50c0NvdW50KCkg
eyBtX3BhaW50Q29udGVudHNDb3VudCA9IDA7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUo
Q0NUZXh0dXJlVXBkYXRlciYgdXBkYXRlciwgY29uc3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2Ns
dXNpb24sIENDUmVuZGVyaW5nU3RhdHMmIHN0YXRzKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmIHF1ZXVlLCBjb25zdCBDQ09jY2x1c2lvblRy
YWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0cyYgc3RhdHMpIE9WRVJSSURFCiAgICAg
ewotICAgICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKHVwZGF0ZXIsIG9jY2x1c2lv
biwgc3RhdHMpOworICAgICAgICBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlKHF1ZXVlLCBv
Y2NsdXNpb24sIHN0YXRzKTsKICAgICAgICAgbV9wYWludENvbnRlbnRzQ291bnQrKzsKICAgICB9
CiAKQEAgLTE1NzMsNyArMTU3Myw3IEBAIGNsYXNzIFRlc3RMYXllckNocm9taXVtIDogcHVibGlj
IExheWVyQ2hyb21pdW0gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRlc3RMYXll
ckNocm9taXVtPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgVGVzdExheWVyQ2hyb21p
dW0oKSk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoQ0NUZXh0dXJlVXBkYXRlciYsIGNv
bnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1JlbmRlcmluZ1N0YXRzJikgT1ZF
UlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKENDVGV4dHVyZVVwZGF0ZVF1ZXVlJiwgY29u
c3QgQ0NPY2NsdXNpb25UcmFja2VyKiBvY2NsdXNpb24sIENDUmVuZGVyaW5nU3RhdHMmKSBPVkVS
UklERQogICAgIHsKICAgICAgICAgLy8gR2FpbiBhY2Nlc3MgdG8gaW50ZXJuYWxzIG9mIHRoZSBD
Q09jY2x1c2lvblRyYWNrZXIuCiAgICAgICAgIGNvbnN0IFRlc3RDQ09jY2x1c2lvblRyYWNrZXIq
IHRlc3RPY2NsdXNpb24gPSBzdGF0aWNfY2FzdDxjb25zdCBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
Kj4ob2NjbHVzaW9uKTsKQEAgLTE2MjgsOCArMTYyOCw4IEBAIHB1YmxpYzoKICAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKTsKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRWaWV3cG9ydFNpemUocm9vdExheWVyLT5ib3VuZHMoKSwgcm9vdExheWVyLT5i
b3VuZHMoKSk7CiAgICAgICAgIEFTU0VSVF9UUlVFKG1fbGF5ZXJUcmVlSG9zdC0+aW5pdGlhbGl6
ZUxheWVyUmVuZGVyZXJJZk5lZWRlZCgpKTsKLSAgICAgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRh
dGVyOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1cGRhdGVyLCBzdGQ6
Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgQ0NUZXh0dXJlVXBkYXRl
UXVldWUgcXVldWU7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVl
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJl
Y3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKQEAgLTE2
NDYsNyArMTY0Niw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJv
b3RMYXllcihyb290TGF5ZXIpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0
U2l6ZShyb290TGF5ZXItPmJvdW5kcygpLCByb290TGF5ZXItPmJvdW5kcygpKTsKLSAgICAgICAg
bV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0
czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJz
KHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAgICAgIEVYUEVDVF9FUV9SRUNU
KEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsK
QEAgLTE2NjQsNyArMTY2NCw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZp
ZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5kcygpLCByb290TGF5ZXItPmJvdW5kcygpKTsKLSAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRlciwgc3RkOjpudW1lcmlj
X2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRl
TGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAgICAgIEVYUEVDVF9F
UV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5k
cygpKTsKQEAgLTE2ODQsNyArMTY4NCw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5kcygpLCByb290TGF5ZXItPmJvdW5kcygp
KTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRlciwgc3RkOjpu
dW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAgICAgIEVY
UEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5TcGFjZSgp
LmJvdW5kcygpKTsKQEAgLTE3MDYsNyArMTcwNiw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5kcygpLCByb290TGF5ZXItPmJv
dW5kcygpKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRlciwg
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1h
eCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAg
ICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgZ3JhbmRDaGlsZC0+b2NjbHVkZWRTY3JlZW5T
cGFjZSgpLmJvdW5kcygpKTsKQEAgLTE3MjgsNyArMTcyOCw3IEBAIHB1YmxpYzoKIAogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5kcygpLCByb290TGF5
ZXItPmJvdW5kcygpKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBk
YXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwog
CiAgICAgICAgIEVYUEVDVF9FUV9SRUNUKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVl
blNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTc1MSw3ICsxNzUxLDcgQEAgcHVibGljOgogCiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAgICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCksIHJvb3RM
YXllci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyh1
cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAgICAgbV9s
YXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6
ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBsZXRlKCk7
CiAKICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBncmFuZENoaWxkLT5vY2NsdWRl
ZFNjcmVlblNwYWNlKCkuYm91bmRzKCkpOwpAQCAtMTc3NCw3ICsxNzc0LDcgQEAgcHVibGljOgog
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCks
IHJvb3RMYXllci0+Ym91bmRzKCkpOwotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUxh
eWVycyh1cGRhdGVyLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0ZDo6bnVtZXJpY19saW1p
dHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbW1pdENvbXBs
ZXRlKCk7CiAKICAgICAgICAgRVhQRUNUX0VRX1JFQ1QoSW50UmVjdCgpLCBjaGlsZDItPm9jY2x1
ZGVkU2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0xODM2LDggKzE4MzYsOCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHJvb3RMYXllcik7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKHJvb3RMYXllci0+Ym91bmRzKCks
IHJvb3RMYXllci0+Ym91bmRzKCkpOwogICAgICAgICBBU1NFUlRfVFJVRShtX2xheWVyVHJlZUhv
c3QtPmluaXRpYWxpemVMYXllclJlbmRlcmVySWZOZWVkZWQoKSk7Ci0gICAgICAgIENDVGV4dHVy
ZVVwZGF0ZXIgdXBkYXRlcjsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMo
dXBkYXRlciwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIEND
VGV4dHVyZVVwZGF0ZVF1ZXVlIHF1ZXVlOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0
ZUxheWVycyhxdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxldGUoKTsKIAogICAgICAgICBFWFBFQ1Rf
RVFfUkVDVChJbnRSZWN0KCksIGNoaWxkMi0+b2NjbHVkZWRTY3JlZW5TcGFjZSgpLmJvdW5kcygp
KTsKQEAgLTE4NjQsNyArMTg2NCw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNl
dFZpZXdwb3J0U2l6ZShyb290TGF5ZXItPmJvdW5kcygpLCByb290TGF5ZXItPmJvdW5kcygpKTsK
LSAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnModXBkYXRlciwgc3RkOjpudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBk
YXRlTGF5ZXJzKHF1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKICAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5jb21taXRDb21wbGV0ZSgpOwogCiAgICAgICAgIEVYUEVD
VF9FUV9SRUNUKEludFJlY3QoKSwgY2hpbGQyLT5vY2NsdWRlZFNjcmVlblNwYWNlKCkuYm91bmRz
KCkpOwpAQCAtMTkyNSw4ICsxOTI1LDggQEAgcHVibGljOgogICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnNldFJvb3RMYXllcihsYXllcnNbMF0uZ2V0KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnNldFZpZXdwb3J0U2l6ZShsYXllcnNbMF0tPmJvdW5kcygpLCBsYXllcnNbMF0tPmJvdW5k
cygpKTsKICAgICAgICAgQVNTRVJUX1RSVUUobV9sYXllclRyZWVIb3N0LT5pbml0aWFsaXplTGF5
ZXJSZW5kZXJlcklmTmVlZGVkKCkpOwotICAgICAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXI7
Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKHVwZGF0ZXIsIHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBDQ1RleHR1cmVVcGRhdGVRdWV1
ZSBxdWV1ZTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMocXVldWUsIHN0
ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPmNvbW1pdENvbXBsZXRlKCk7CiAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1T
dXJmYWNlcy0xOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKaW5kZXggZjliYzk5
ZjljOGQ3NzNmMDk1ZDY1NTNhZDU4N2YwZmQ0NjRiOGRjNi4uOGU5YTg4MTJiZjZlYWQxYTNkYjRm
NmZlZWI3MWQ0MmJkNGFhY2FjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTk2
LDcgKzk2LDcgQEAgcHVibGljOgogY2xhc3MgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3Qg
OiBwdWJsaWMgVGVzdCB7CiBwdWJsaWM6CiAgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRl
c3QoKQotICAgIDogbV91cGRhdGVyKGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRhdGVyKSkKKyAg
ICA6IG1fcXVldWUoYWRvcHRQdHIobmV3IENDVGV4dHVyZVVwZGF0ZVF1ZXVlKSkKICAgICAsIG1f
dXBsb2FkZXIodGhpcykKICAgICAsIG1fZnVsbFVwbG9hZENvdW50RXhwZWN0ZWQoMCkKICAgICAs
IG1fcGFydGlhbENvdW50RXhwZWN0ZWQoMCkKQEAgLTE4NSw3ICsxODUsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIFdlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CiAgICAgfQogCi0gICAgdm9pZCBh
cHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcihpbnQgY291bnQpCisgICAgdm9pZCBhcHBlbmRGdWxs
VXBsb2Fkc1RvVXBkYXRlUXVldWUoaW50IGNvdW50KQogICAgIHsKICAgICAgICAgbV9mdWxsVXBs
b2FkQ291bnRFeHBlY3RlZCArPSBjb3VudDsKICAgICAgICAgbV90b3RhbFVwbG9hZENvdW50RXhw
ZWN0ZWQgKz0gY291bnQ7CkBAIC0xOTMsMTAgKzE5MywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IGNvbnN0IEludFJlY3QgcmVjdCgwLCAwLCAzMDAsIDE1MCk7CiAgICAgICAgIGNvbnN0IFRleHR1
cmVVcGxvYWRlcjo6UGFyYW1ldGVycyB1cGxvYWQgPSB7ICZtX3RleHR1cmUsIHJlY3QsIHJlY3Qg
fTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotICAgICAgICAgICAg
bV91cGRhdGVyLT5hcHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CisgICAgICAgICAgICBtX3F1ZXVl
LT5hcHBlbmRGdWxsVXBsb2FkKHVwbG9hZCk7CiAgICAgfQogCi0gICAgdm9pZCBhcHBlbmRQYXJ0
aWFsVXBsb2Fkc1RvVXBkYXRlcihpbnQgY291bnQpCisgICAgdm9pZCBhcHBlbmRQYXJ0aWFsVXBs
b2Fkc1RvVXBkYXRlUXVldWUoaW50IGNvdW50KQogICAgIHsKICAgICAgICAgbV9wYXJ0aWFsQ291
bnRFeHBlY3RlZCArPSBjb3VudDsKICAgICAgICAgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQg
Kz0gY291bnQ7CkBAIC0yMDQsNyArMjA0LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBjb25zdCBJ
bnRSZWN0IHJlY3QoMCwgMCwgMTAwLCAxMDApOwogICAgICAgICBjb25zdCBUZXh0dXJlVXBsb2Fk
ZXI6OlBhcmFtZXRlcnMgdXBsb2FkID0geyAmbV90ZXh0dXJlLCByZWN0LCByZWN0IH07CiAgICAg
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykKLSAgICAgICAgICAgIG1fdXBkYXRl
ci0+YXBwZW5kUGFydGlhbFVwbG9hZCh1cGxvYWQpOworICAgICAgICAgICAgbV9xdWV1ZS0+YXBw
ZW5kUGFydGlhbFVwbG9hZCh1cGxvYWQpOwogICAgIH0KIAogICAgIHZvaWQgc2V0TWF4VXBsb2Fk
Q291bnRQZXJVcGRhdGUoaW50IGNvdW50KQpAQCAtMjE2LDcgKzIxNiw3IEBAIHByb3RlY3RlZDoK
ICAgICAvLyBDbGFzc2VzIHJlcXVpcmVkIHRvIGludGVyYWN0IGFuZCB0ZXN0IHRoZSBDQ1RleHR1
cmVVcGRhdGVDb250cm9sbGVyCiAgICAgT3duUHRyPENDR3JhcGhpY3NDb250ZXh0PiBtX2NvbnRl
eHQ7CiAgICAgT3duUHRyPENDUmVzb3VyY2VQcm92aWRlcj4gbV9yZXNvdXJjZVByb3ZpZGVyOwot
ICAgIE93blB0cjxDQ1RleHR1cmVVcGRhdGVyPiBtX3VwZGF0ZXI7CisgICAgT3duUHRyPENDVGV4
dHVyZVVwZGF0ZVF1ZXVlPiBtX3F1ZXVlOwogICAgIFRleHR1cmVGb3JVcGxvYWRUZXN0IG1fdGV4
dHVyZTsKICAgICBGYWtlVGV4dHVyZUNvcGllciBtX2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2Fk
ZXJGb3JVcGxvYWRUZXN0IG1fdXBsb2FkZXI7CkBAIC0yNjcsOSArMjY3LDkgQEAgdm9pZCBUZXh0
dXJlVXBsb2FkZXJGb3JVcGxvYWRUZXN0Ojp1cGxvYWRUZXh0dXJlKFdlYkNvcmU6OkNDUmVzb3Vy
Y2VQcm92aWRlciosIFAKIC8vIFpFUk8gVVBMT0FEUyBURVNUUwogVEVTVF9GKENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXJUZXN0LCBaZXJvVXBsb2FkcykKIHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fk
c1RvVXBkYXRlcigwKTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcigwKTsKLSAg
ICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJv
dmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90
b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVR
dWV1ZSgwKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMCk7CisgICAg
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3Zp
ZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFs
VXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBFWFBFQ1RfRVEoMCwgbV9udW1CZWdpblVwbG9h
ZHMpOwogICAgIEVYUEVDVF9FUSgwLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtMjgxLDEwICsyODEs
MTAgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBaZXJvVXBsb2FkcykK
IC8vIE9ORSBVUExPQUQgVEVTVFMKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVz
dCwgT25lRnVsbFVwbG9hZCkKIHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcigxKTsK
LSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcigwKTsKKyAgICBhcHBlbmRGdWxsVXBs
b2Fkc1RvVXBkYXRlUXVldWUoMSk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1
ZXVlKDApOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRl
ci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFs
VXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBk
YXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9h
ZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBF
WFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVu
ZFVwbG9hZHMpOwpAQCAtMjk0LDEwICsyOTQsMTAgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXJUZXN0LCBPbmVGdWxsVXBsb2FkKQogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlclRlc3QsIE9uZVBhcnRpYWxVcGxvYWQpCiB7Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNU
b1VwZGF0ZXIoMCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIoMSk7CisgICAg
YXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDApOworICAgIGFwcGVuZFBhcnRpYWxVcGxv
YWRzVG9VcGRhdGVRdWV1ZSgxKTsKICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRo
cmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jl
c291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5n
ZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOworICAgIENDVGV4dHVyZVVwZGF0ZUNv
bnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29w
aWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0
ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtQmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1Rf
RVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTMwNywxMCArMzA3LDEwIEBAIFRFU1RfRihDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgT25lUGFydGlhbFVwbG9hZCkKIAogVEVTVF9GKEND
VGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBPbmVGdWxsT25lUGFydGlhbFVwbG9hZCkKIHsK
LSAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcigxKTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBs
b2Fkc1RvVXBkYXRlcigxKTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoMSk7
CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKDEpOwogICAgIERlYnVnU2Nv
cGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xs
ZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAm
bV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7
CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJj
ZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBt
X3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICAvLyBXZSBleHBlY3QgdGhlIGZ1bGwg
dXBsb2FkcyB0byBiZSBmb2xsb3dlZCBieSBhIGZsdXNoCiAgICAgLy8gYmVmb3JlIHRoZSBwYXJ0
aWFsIHVwbG9hZHMgYmVnaW4uCkBAIC0zMzEsMTAgKzMzMSwxMCBAQCBjb25zdCBpbnQgcGFydGlh
bE5vUmVtYWluZGVyQ291bnQgPSBwYXJ0aWFsVXBsb2FkRmx1c2hNdWx0aXBsZXIgKiBrRmx1c2hQ
ZXJpb2RQYQogCiBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE1hbnlGdWxs
VXBsb2Fkc05vUmVtYWluZGVyKQogewotICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGZ1
bGxOb1JlbWFpbmRlckNvdW50KTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcigw
KTsKKyAgICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlUXVldWUoZnVsbE5vUmVtYWluZGVyQ291
bnQpOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVRdWV1ZSgwKTsKICAgICBEZWJ1
Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsKLSAgICBDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGll
ciwgJm1fdXBsb2FkZXIsIG1fdXBkYXRlci5nZXQoKSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0
ZWQpOworICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVz
b3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV9xdWV1ZS5nZXQo
KSwgbV90b3RhbFVwbG9hZENvdW50RXhwZWN0ZWQpOwogCiAgICAgRVhQRUNUX0VRKDEsIG1fbnVt
QmVnaW5VcGxvYWRzKTsKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1FbmRVcGxvYWRzKTsKQEAgLTM0
NCwxMCArMzQ0LDEwIEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgTWFu
eUZ1bGxVcGxvYWRzTm9SZW1haW5kZXIpCiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyVGVzdCwgTWFueVBhcnRpYWxVcGxvYWRzTm9SZW1haW5kZXIpCiB7Ci0gICAgYXBwZW5kRnVs
bFVwbG9hZHNUb1VwZGF0ZXIoMCk7Ci0gICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZXIo
cGFydGlhbE5vUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVR
dWV1ZSgwKTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlUXVldWUocGFydGlhbE5v
UmVtYWluZGVyQ291bnQpOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFk
OwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3Vy
Y2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgp
LCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJv
bGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIs
ICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7
CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgx
LCBtX251bUVuZFVwbG9hZHMpOwpAQCAtMzU3LDEwICszNTcsMTAgQEAgVEVTVF9GKENDVGV4dHVy
ZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55UGFydGlhbFVwbG9hZHNOb1JlbWFpbmRlcikKIAog
VEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55RnVsbE1hbnlQYXJ0aWFs
VXBsb2Fkc05vUmVtYWluZGVyKQogewotICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVyKGZ1
bGxOb1JlbWFpbmRlckNvdW50KTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcihw
YXJ0aWFsTm9SZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1
ZXVlKGZ1bGxOb1JlbWFpbmRlckNvdW50KTsKKyAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBk
YXRlUXVldWUocGFydGlhbE5vUmVtYWluZGVyQ291bnQpOwogICAgIERlYnVnU2NvcGVkU2V0SW1w
bFRocmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0
ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRl
ciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgQ0NU
ZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVy
LmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFsVXBs
b2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9hZHMp
OwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtMzgwLDEwICszODAsMTAg
QEAgY29uc3QgaW50IHBhcnRpYWxNYXhSZW1haW5kZXJDb3VudCA9IHBhcnRpYWxOb1JlbWFpbmRl
ckNvdW50IC0gMTsKIAogVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55
RnVsbEFuZFBhcnRpYWxNaW5SZW1haW5kZXIpCiB7Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNUb1Vw
ZGF0ZXIoZnVsbE1pblJlbWFpbmRlckNvdW50KTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1Rv
VXBkYXRlcihwYXJ0aWFsTWluUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRz
VG9VcGRhdGVRdWV1ZShmdWxsTWluUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZFBhcnRpYWxV
cGxvYWRzVG9VcGRhdGVRdWV1ZShwYXJ0aWFsTWluUmVtYWluZGVyQ291bnQpOwogICAgIERlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRy
b2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVy
LCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3Rl
ZCk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNv
dXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgp
LCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1C
ZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtMzkz
LDEwICszOTMsMTAgQEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBNYW55
RnVsbEFuZFBhcnRpYWxNaW5SZW1haW5kZXIpCiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyVGVzdCwgTWFueUZ1bGxBbmRQYXJ0aWFsVXBsb2Fkc01heFJlbWFpbmRlcikKIHsKLSAg
ICBhcHBlbmRGdWxsVXBsb2Fkc1RvVXBkYXRlcihmdWxsTWF4UmVtYWluZGVyQ291bnQpOwotICAg
IGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVyKHBhcnRpYWxNYXhSZW1haW5kZXJDb3VudCk7
CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGZ1bGxNYXhSZW1haW5kZXJDb3Vu
dCk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKHBhcnRpYWxNYXhSZW1h
aW5kZXJDb3VudCk7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0g
ICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVBy
b3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1f
dG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
Ojp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1f
dXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAog
ICAgIEVYUEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDEsIG1f
bnVtRW5kVXBsb2Fkcyk7CkBAIC00MDYsMTAgKzQwNiwxMCBAQCBURVNUX0YoQ0NUZXh0dXJlVXBk
YXRlQ29udHJvbGxlclRlc3QsIE1hbnlGdWxsQW5kUGFydGlhbFVwbG9hZHNNYXhSZW1haW5kZXIp
CiAKIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdCwgTWFueUZ1bGxNaW5SZW1h
aW5kZXJNYW55UGFydGlhbE1heFJlbWFpbmRlcikKIHsKLSAgICBhcHBlbmRGdWxsVXBsb2Fkc1Rv
VXBkYXRlcihmdWxsTWluUmVtYWluZGVyQ291bnQpOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRz
VG9VcGRhdGVyKHBhcnRpYWxNYXhSZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kRnVsbFVwbG9h
ZHNUb1VwZGF0ZVF1ZXVlKGZ1bGxNaW5SZW1haW5kZXJDb3VudCk7CisgICAgYXBwZW5kUGFydGlh
bFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKHBhcnRpYWxNYXhSZW1haW5kZXJDb3VudCk7CiAgICAgRGVi
dWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3Bp
ZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVj
dGVkKTsKKyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jl
c291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0
KCksIG1fdG90YWxVcGxvYWRDb3VudEV4cGVjdGVkKTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251
bUJlZ2luVXBsb2Fkcyk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC00
MTksMTAgKzQxOSwxMCBAQCBURVNUX0YoQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE1h
bnlGdWxsTWluUmVtYWluZGVyTWFueVBhcnRpYWxNYXhSZW1haW5kZQogCiBURVNUX0YoQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlclRlc3QsIE1hbnlGdWxsTWF4UmVtYWluZGVyTWFueVBhcnRpYWxN
aW5SZW1haW5kZXIpCiB7Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZXIoZnVsbE1heFJl
bWFpbmRlckNvdW50KTsKLSAgICBhcHBlbmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcihwYXJ0aWFs
TWluUmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZEZ1bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZShm
dWxsTWF4UmVtYWluZGVyQ291bnQpOworICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRhdGVR
dWV1ZShwYXJ0aWFsTWluUmVtYWluZGVyQ291bnQpOwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRo
cmVhZCBpbXBsVGhyZWFkOwotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRl
eHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwg
bV91cGRhdGVyLmdldCgpLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCk7CisgICAgQ0NUZXh0
dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdl
dCgpLCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBtX3RvdGFsVXBsb2Fk
Q291bnRFeHBlY3RlZCk7CiAKICAgICBFWFBFQ1RfRVEoMSwgbV9udW1CZWdpblVwbG9hZHMpOwog
ICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9hZHMpOwpAQCAtNDUwLDEyICs0NTAsMTIgQEAg
VEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVw
ZGF0ZUZ1bGxBbmRQYXJ0aWFsKQogICAgIGludCBleHBlY3RlZFByZXZpb3VzVXBsb2FkcyA9IDA7
CiAKICAgICBzZXRNYXhVcGxvYWRDb3VudFBlclVwZGF0ZShrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7
Ci0gICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZXIoa0Z1bGxVcGxvYWRzKTsKLSAgICBhcHBl
bmRQYXJ0aWFsVXBsb2Fkc1RvVXBkYXRlcihrUGFydGlhbFVwbG9hZHMpOworICAgIGFwcGVuZEZ1
bGxVcGxvYWRzVG9VcGRhdGVRdWV1ZShrRnVsbFVwbG9hZHMpOworICAgIGFwcGVuZFBhcnRpYWxV
cGxvYWRzVG9VcGRhdGVRdWV1ZShrUGFydGlhbFVwbG9hZHMpOwogCiAgICAgLy8gRmlyc3QgdXBk
YXRlICg0MCBmdWxsKQogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwot
ICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQ
cm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRhdGVyLmdldCgpLCBr
TWF4VXBsb2Fkc1BlclVwZGF0ZSk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6dXBk
YXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3VwbG9h
ZGVyLCBtX3F1ZXVlLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7CiAKICAgICBFWFBFQ1Rf
RVEoMSwgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgxLCBtX251bUVuZFVwbG9h
ZHMpOwpAQCAtNDY3LDcgKzQ2Nyw3IEBAIFRFU1RfRihDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVy
VGVzdCwgVHJpcGxlVXBkYXRlRmluYWxVcGRhdGVGdWxsQW5kUGFydGlhbCkKICAgICBFWFBFQ1Rf
RVEoZXhwZWN0ZWRQcmV2aW91c1VwbG9hZHMsIG1fbnVtUHJldmlvdXNVcGxvYWRzKTsKIAogICAg
IC8vIFNlY29uZCB1cGRhdGUgKDQwIGZ1bGwpCi0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxl
cjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZt
X3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsKKyAgICBD
Q1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlk
ZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIGtNYXhVcGxv
YWRzUGVyVXBkYXRlKTsKIAogICAgIEVYUEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAg
ICAgRVhQRUNUX0VRKDIsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC00NzksNyArNDc5LDcgQEAgVEVT
VF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0
ZUZ1bGxBbmRQYXJ0aWFsKQogICAgIEVYUEVDVF9FUShleHBlY3RlZFByZXZpb3VzVXBsb2Fkcywg
bV9udW1QcmV2aW91c1VwbG9hZHMpOwogCiAgICAgLy8gVGhpcmQgdXBkYXRlICgyMCBmdWxsLCAy
MCBwYXJ0aWFsKQotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0ZVRleHR1cmVz
KG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRlciwgbV91cGRh
dGVyLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7CisgICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3Bp
ZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7CiAK
ICAgICBFWFBFQ1RfRVEoMywgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVDVF9FUSgzLCBt
X251bUVuZFVwbG9hZHMpOwpAQCAtNTA1LDEyICs1MDUsMTIgQEAgVEVTVF9GKENDVGV4dHVyZVVw
ZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUFsbFBhcnRpYWwpCiAg
ICAgaW50IGV4cGVjdGVkUHJldmlvdXNVcGxvYWRzID0gMDsKIAogICAgIHNldE1heFVwbG9hZENv
dW50UGVyVXBkYXRlKGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsKLSAgICBhcHBlbmRGdWxsVXBsb2Fk
c1RvVXBkYXRlcihrRnVsbFVwbG9hZHMpOwotICAgIGFwcGVuZFBhcnRpYWxVcGxvYWRzVG9VcGRh
dGVyKGtQYXJ0aWFsVXBsb2Fkcyk7CisgICAgYXBwZW5kRnVsbFVwbG9hZHNUb1VwZGF0ZVF1ZXVl
KGtGdWxsVXBsb2Fkcyk7CisgICAgYXBwZW5kUGFydGlhbFVwbG9hZHNUb1VwZGF0ZVF1ZXVlKGtQ
YXJ0aWFsVXBsb2Fkcyk7CiAKICAgICAvLyBGaXJzdCB1cGRhdGUgKDQwIGZ1bGwpCiAgICAgRGVi
dWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7Ci0gICAgQ0NUZXh0dXJlVXBkYXRlQ29u
dHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3Bp
ZXIsICZtX3VwbG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsK
KyAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNl
UHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIGtN
YXhVcGxvYWRzUGVyVXBkYXRlKTsKIAogICAgIEVYUEVDVF9FUSgxLCBtX251bUJlZ2luVXBsb2Fk
cyk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC01MjIsNyArNTIyLDcg
QEAgVEVTVF9GKENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5h
bFVwZGF0ZUFsbFBhcnRpYWwpCiAgICAgRVhQRUNUX0VRKGV4cGVjdGVkUHJldmlvdXNVcGxvYWRz
LCBtX251bVByZXZpb3VzVXBsb2Fkcyk7CiAKICAgICAvLyBTZWNvbmQgdXBkYXRlICgzMCBmdWxs
LCBvcHRpb25hbGx5IDEwIHBhcnRpYWwpCi0gICAgQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlcjo6
dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpLCAmbV9jb3BpZXIsICZtX3Vw
bG9hZGVyLCBtX3VwZGF0ZXIuZ2V0KCksIGtNYXhVcGxvYWRzUGVyVXBkYXRlKTsKKyAgICBDQ1Rl
eHR1cmVVcGRhdGVDb250cm9sbGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIu
Z2V0KCksICZtX2NvcGllciwgJm1fdXBsb2FkZXIsIG1fcXVldWUuZ2V0KCksIGtNYXhVcGxvYWRz
UGVyVXBkYXRlKTsKIAogICAgIEVYUEVDVF9FUSgyLCBtX251bUJlZ2luVXBsb2Fkcyk7CiAgICAg
RVhQRUNUX0VRKDIsIG1fbnVtRW5kVXBsb2Fkcyk7CkBAIC01MzIsNyArNTMyLDcgQEAgVEVTVF9G
KENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXJUZXN0LCBUcmlwbGVVcGRhdGVGaW5hbFVwZGF0ZUFs
bFBhcnRpYWwpCiAgICAgLy8gb25GbHVzaCgpLCBvblVwbG9hZCgpLCBhbmQgb25FbmRVcGxvYWQo
KSB3aWxsIGRvIGJhc2ljIGZsdXNoIGNoZWNrcyBmb3IgdXMgYW55d2F5LgogCiAgICAgLy8gVGhp
cmQgdXBkYXRlICgzMCBwYXJ0aWFsIE9SIDIwIHBhcnRpYWwgaWYgMTAgcGFydGlhbCB1cGxvYWRl
ZCBpbiBzZWNvbmQgdXBkYXRlKQotICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVwZGF0
ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxvYWRl
ciwgbV91cGRhdGVyLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVwZGF0ZSk7CisgICAgQ0NUZXh0dXJl
VXBkYXRlQ29udHJvbGxlcjo6dXBkYXRlVGV4dHVyZXMobV9yZXNvdXJjZVByb3ZpZGVyLmdldCgp
LCAmbV9jb3BpZXIsICZtX3VwbG9hZGVyLCBtX3F1ZXVlLmdldCgpLCBrTWF4VXBsb2Fkc1BlclVw
ZGF0ZSk7CiAKICAgICBFWFBFQ1RfRVEoMywgbV9udW1CZWdpblVwbG9hZHMpOwogICAgIEVYUEVD
VF9FUSgzLCBtX251bUVuZFVwbG9hZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ1RocmVhZGVkVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGhyZWFkZWRUZXN0LmNwcAppbmRleCBjNGJlMjdkOTA3ZjViNzhiMjUwOGRkMWY2ZmJk
MDc1YTMzMWY2ZjVjLi45YzM4MzdlZWFjNmRjYWE2MWJiYzdkMmVlMjNlODZkMjI2YmE3ZTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcApA
QCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCIKICNp
bmNsdWRlICJjYy9DQ1Njb3BlZFRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5oIgotI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRl
ICJjYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oIgogI2luY2x1ZGUgImNjL0NDVGhyZWFkVGFzay5o
IgogI2luY2x1ZGUgImNjL0NDVGltaW5nRnVuY3Rpb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJUaHJlYWQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NU
aWxlZExheWVyVGVzdENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
VGlsZWRMYXllclRlc3RDb21tb24uY3BwCmluZGV4IGVjMjEwNTMyNzkwMGU4Mzk1YzE1MDg1M2M3
MzA3NDVmZjkyODAzYTYuLjU0ZjI5YmJlZjU1NDhkM2UwY2Y3NTQyMWYzYzYzM2MzZDUwOWEzMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVz
dENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5
ZXJUZXN0Q29tbW9uLmNwcApAQCAtMTE1LDkgKzExNSw5IEBAIHZvaWQgRmFrZVRpbGVkTGF5ZXJD
aHJvbWl1bTo6c2V0TmVlZHNEaXNwbGF5UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAg
VGlsZWRMYXllckNocm9taXVtOjpzZXROZWVkc0Rpc3BsYXlSZWN0KHJlY3QpOwogfQogCi12b2lk
IEZha2VUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRhdGVyJiB1cGRhdGVy
LCBjb25zdCBDQ09jY2x1c2lvblRyYWNrZXIqIG9jY2x1c2lvbiwgQ0NSZW5kZXJpbmdTdGF0cyYg
c3RhdHMpCit2b2lkIEZha2VUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZShDQ1RleHR1cmVVcGRh
dGVRdWV1ZSYgcXVldWUsIGNvbnN0IENDT2NjbHVzaW9uVHJhY2tlciogb2NjbHVzaW9uLCBDQ1Jl
bmRlcmluZ1N0YXRzJiBzdGF0cykKIHsKLSAgICB1cGRhdGVDb250ZW50UmVjdCh1cGRhdGVyLCB2
aXNpYmxlQ29udGVudFJlY3QoKSwgb2NjbHVzaW9uLCBzdGF0cyk7CisgICAgdXBkYXRlQ29udGVu
dFJlY3QocXVldWUsIHZpc2libGVDb250ZW50UmVjdCgpLCBvY2NsdXNpb24sIHN0YXRzKTsKIH0K
IAogdm9pZCBGYWtlVGlsZWRMYXllckNocm9taXVtOjpzZXRUZXh0dXJlUHJpb3JpdGllcyhjb25z
dCBDQ1ByaW9yaXR5Q2FsY3VsYXRvciYgY2FsY3VsYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmgKaW5kZXggNmNkMjI4
YjNkOTA4NmZjMzAyNjQwM2RmM2U1YjFjZGQ2OGY3ZWYwYi4uYzc1OTMyYWNmNjIxYmRlYjMwYzZm
NzE0MmI3NzE1N2RkMzk1ZDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmgKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNs
dWRlICJjYy9DQ0dyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgImNjL0NDUHJpb3JpdGl6ZWRU
ZXh0dXJlLmgiCiAjaW5jbHVkZSAiY2MvQ0NSZXNvdXJjZVByb3ZpZGVyLmgiCi0jaW5jbHVkZSAi
Y2MvQ0NUZXh0dXJlVXBkYXRlci5oIgorI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZVF1ZXVl
LmgiCiAjaW5jbHVkZSAiY2MvQ0NUaWxlZExheWVySW1wbC5oIgogCiBuYW1lc3BhY2UgV2ViS2l0
VGVzdHMgewpAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGxhc3ROZWVkc0Rpc3BsYXlSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TmVl
ZHNEaXNwbGF5UmVjdDsgfQogCiAgICAgLy8gVXBkYXRlcyB0aGUgdmlzaWJsZUNvbnRlbnRSZWN0
KCkuCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZShXZWJDb3JlOjpDQ1RleHR1cmVVcGRhdGVyJiwg
Y29uc3QgV2ViQ29yZTo6Q0NPY2NsdXNpb25UcmFja2VyKiwgV2ViQ29yZTo6Q0NSZW5kZXJpbmdT
dGF0cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGUoV2ViQ29yZTo6Q0NUZXh0
dXJlVXBkYXRlUXVldWUmLCBjb25zdCBXZWJDb3JlOjpDQ09jY2x1c2lvblRyYWNrZXIqLCBXZWJD
b3JlOjpDQ1JlbmRlcmluZ1N0YXRzJikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VGV4dHVyZVByaW9yaXRpZXMoY29uc3QgV2ViQ29yZTo6Q0NQcmlvcml0eUNhbGN1bGF0b3ImKSBP
VkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52
YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nh
bnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCBhY2U3NDEwYzM1YTVhYzZjZjM2MTM0N2Rm
OWE2YWI1NmY2ODdjMWJmLi45NjA3YWMwOTFmNDcxYTNiYTlkYjBhMzBhNTUwOGRkYWQyMWI4NWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJC
cmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJE
TGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIldlYktpdC5o
IgogI2luY2x1ZGUgImNjL0NDR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiY2MvQ0NSZW5k
ZXJpbmdTdGF0cy5oIgotI2luY2x1ZGUgImNjL0NDVGV4dHVyZVVwZGF0ZXIuaCIKKyNpbmNsdWRl
ICJjYy9DQ1RleHR1cmVVcGRhdGVRdWV1ZS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYktpdFBs
YXRmb3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlRocmVhZC5oIgogCkBAIC0x
NTEsOSArMTUxLDkgQEAgVEVTVChDYW52YXMyRExheWVyQnJpZGdlVGVzdDIsIHRlc3RDbGVhckNs
aWVudCkKICAgICBPd25QdHI8Q2FudmFzMkRMYXllckJyaWRnZT4gYnJpZGdlID0gQ2FudmFzMkRM
YXllckJyaWRnZTo6Y3JlYXRlKG1haW5Db250ZXh0LmdldCgpLCBJbnRTaXplKDEwMCwgMTAwKSwg
RGVmZXJyZWQsIDEpOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBsYXllciA9IGJyaWRnZS0+
bGF5ZXIoKTsKICAgICBicmlkZ2UuY2xlYXIoKTsKLSAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0
ZXI7CisgICAgQ0NUZXh0dXJlVXBkYXRlUXVldWUgcXVldWU7CiAgICAgQ0NSZW5kZXJpbmdTdGF0
cyBzdGF0czsKLSAgICBsYXllci0+dXBkYXRlKHVwZGF0ZXIsIDAsIHN0YXRzKTsKKyAgICBsYXll
ci0+dXBkYXRlKHF1ZXVlLCAwLCBzdGF0cyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0
LmNwcAppbmRleCAwYjQ0Yjg2NGJhNzVhZTU1ZjE4ODQ0ZjA3YzNiMWJiNDJiN2I1OGU2Li5iOWE0
Mjk5ODJmODkxZDQ0MjAwMjIzZjQ5MTYxMGQ0ZWJkMDg4MjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKQEAg
LTkwLDEyICs5MCwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZVRleHR1cmVzKGludCBj
b3VudCA9IDUwMCkKICAgICB7Ci0gICAgICAgIENDVGV4dHVyZVVwZGF0ZUNvbnRyb2xsZXI6OnVw
ZGF0ZVRleHR1cmVzKG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSwgJm1fY29waWVyLCAmbV91cGxv
YWRlciwgJm1fdXBkYXRlciwgY291bnQpOworICAgICAgICBDQ1RleHR1cmVVcGRhdGVDb250cm9s
bGVyOjp1cGRhdGVUZXh0dXJlcyhtX3Jlc291cmNlUHJvdmlkZXIuZ2V0KCksICZtX2NvcGllciwg
Jm1fdXBsb2FkZXIsICZtX3F1ZXVlLCBjb3VudCk7CiAgICAgfQogcHVibGljOgogICAgIE93blB0
cjxDQ0dyYXBoaWNzQ29udGV4dD4gbV9jb250ZXh0OwogICAgIE93blB0cjxDQ1Jlc291cmNlUHJv
dmlkZXI+IG1fcmVzb3VyY2VQcm92aWRlcjsKLSAgICBDQ1RleHR1cmVVcGRhdGVyIG1fdXBkYXRl
cjsKKyAgICBDQ1RleHR1cmVVcGRhdGVRdWV1ZSBtX3F1ZXVlOwogICAgIENDUmVuZGVyaW5nU3Rh
dHMgbV9zdGF0czsKICAgICBGYWtlVGV4dHVyZUNvcGllciBtX2NvcGllcjsKICAgICBGYWtlVGV4
dHVyZVVwbG9hZGVyIG1fdXBsb2FkZXI7CkBAIC0xMTksNyArMTE5LDcgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogICAgIGxheWVyLT5zZXRUZXh0dXJl
UHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnBy
aW9yaXRpemVUZXh0dXJlcygpOwogCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBk
YXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9z
dGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNU
byhsYXllckltcGwuZ2V0KCkpOwogCkBAIC0xMzIsNyArMTMyLDcgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogICAgIC8vIC4uLi5idXQgdGhlbiBvbmx5
IHVwZGF0ZSBvbmUgb2YgdGhlbS4KICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9w
cmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVy
ZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAs
IDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsKICAgICBsYXll
ci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCiAgICAgLy8gV2Ugc2hvdWxk
IG9ubHkgaGF2ZSB0aGUgZmlyc3QgdGlsZSBzaW5jZSB0aGUgb3RoZXIgdGlsZSB3YXMgaW52YWxp
ZGF0ZWQgYnV0IG5vdCBwYWludGVkLgpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1RfRihUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRpbGVzKQogICAgIGxheWVyLT5zZXRU
ZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFn
ZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwogCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7
CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAw
LCAyMDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAg
bGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAtMTcyLDcgKzE3
Miw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoT2NjbHVkZWREaXJ0eVRp
bGVzKQogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCgwLCAwLCA1MCwg
NTApKTsKICAgICAvLyAuLi4uYnV0IHRoZSBhcmVhIGlzIG9jY2x1ZGVkLgogICAgIG9jY2x1ZGVk
LnNldE9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOwotICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAmb2NjbHVkZWQs
IG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0
KDAsIDAsIDEwMCwgMTAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJl
cygpOwogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAKQEAg
LTIwMCw3ICsyMDAsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaERlbGV0
ZWRUaWxlcykKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAotICAg
IGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAy
MDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwg
SW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVz
KCk7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIApAQCAt
MjIyLDcgKzIyMiw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoRGVsZXRl
ZFRpbGVzKQogICAgIC8vIFRoaXMgc2hvdWxkIHJlY3JlYXRlIGFuZCB1cGRhdGUgdGhlIGRlbGV0
ZWQgdGV4dHVyZXMuCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlD
YWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0g
ICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAs
IDEwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVl
LCBJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVy
ZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCkBA
IC0yNTEsNyArMjUxLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hJZGxl
UGFpbnRUaWxlcykKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNh
bGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAot
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZpc2libGVSZWN0LCAwLCBt
X3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgdmlzaWJsZVJl
Y3QsIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAKICAgICAvLyBXZSBzaG91
bGQgbmVlZCBpZGxlLXBhaW50aW5nIGZvciAzeDMgdGlsZXMgaW4gdGhlIGNlbnRlci4KQEAgLTI2
Nyw3ICsyNjcsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaElkbGVQYWlu
dFRpbGVzKQogICAgICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNh
bGN1bGF0b3IpOwogICAgICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7
CiAKLSAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgdmlzaWJsZVJl
Y3QsIDAsIG1fc3RhdHMpOworICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1
ZSwgdmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOwogICAgICAgICBFWFBFQ1RfVFJVRShsYXllci0+
bmVlZHNJZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoKTsK
ICAgICAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKQEAgLTMx
OCw4ICszMTgsOCBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzQWZ0
ZXJJZGxlUGFpbnRGYWlsZWQpCiAgICAgbGF5ZXIyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3By
aW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgbGF5ZXIxLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3By
aW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJl
cygpOwotICAgIGxheWVyMS0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBsYXllclJlY3Qs
IDAsIG1fc3RhdHMpOwotICAgIGxheWVyMi0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJ
bnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXIxLT51cGRhdGVD
b250ZW50UmVjdChtX3F1ZXVlLCBsYXllclJlY3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyMi0+
dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1f
c3RhdHMpOwogCiAgICAgLy8gV2Ugc2hvdWxkIG5lZWQgaWRsZS1wYWludGluZyBmb3IgYm90aCBy
ZW1haW5pbmcgdGlsZXMgaW4gbGF5ZXIyLgogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+bmVlZHNJ
ZGxlUGFpbnQobGF5ZXIyUmVjdCkpOwpAQCAtMzM2LDcgKzMzNiw3IEBAIFRFU1RfRihUaWxlZExh
eWVyQ2hyb21pdW1UZXN0LCBwdXNoVGlsZXNBZnRlcklkbGVQYWludEZhaWxlZCkKICAgICBsYXll
cjItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICBsYXll
cjEtPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0
dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXIyLT51cGRhdGVDb250
ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAwLCBtX3N0YXRzKTsK
KyAgICBsYXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAw
LCAxMDApLCAwLCBtX3N0YXRzKTsKIAogICAgIC8vIE9oIHdlbGwsIGNvbW1pdCB0aGUgZnJhbWUg
YW5kIHB1c2guCiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKQEAgLTM1Niw4ICszNTYsOCBAQCBURVNU
X0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzQWZ0ZXJJZGxlUGFpbnRGYWlsZWQp
CiAgICAgbGF5ZXIyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7
CiAgICAgbGF5ZXIxLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7
CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyMi0+
dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBsYXllcjJSZWN0LCAwLCBtX3N0YXRzKTsKLSAg
ICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgbGF5ZXJSZWN0LCAwLCBtX3N0
YXRzKTsKKyAgICBsYXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGxheWVyMlJlY3Qs
IDAsIG1fc3RhdHMpOworICAgIGxheWVyMS0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgbGF5
ZXJSZWN0LCAwLCBtX3N0YXRzKTsKIAogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXIx
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbDEuZ2V0KCkpOwpAQCAtMzg4LDcgKzM4OCw3IEBA
IFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoSWRsZVBhaW50ZWRPY2NsdWRlZFRp
bGVzKQogCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxh
dG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCks
ICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVl
dWUsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIHVw
ZGF0ZVRleHR1cmVzKCk7CiAgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdl
dCgpKTsKIApAQCAtNDEzLDcgKzQxMyw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0
LCBwdXNoVGlsZXNNYXJrZWREaXJ0eUR1cmluZ1BhaW50KQogCiAgICAgbGF5ZXItPnNldFRleHR1
cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+
cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBk
YXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9z
dGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNU
byhsYXllckltcGwuZ2V0KCkpOwogCkBAIC00NDMsMTEgKzQ0MywxMSBAQCBURVNUX0YoVGlsZWRM
YXllckNocm9taXVtVGVzdCwgcHVzaFRpbGVzTGF5ZXJNYXJrZWREaXJ0eUR1cmluZ1BhaW50T25O
ZXh0TGF5ZXIpCiAgICAgbGF5ZXIyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2Fs
Y3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwogCi0g
ICAgbGF5ZXIxLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMTAw
LCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVl
dWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKIAogICAgIC8vIEludmFs
aWRhdGUgYSB0aWxlIG9uIGxheWVyMQogICAgIGxheWVyMi0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKS0+c2V0UmVjdFRvSW52YWxpZGF0ZShJbnRSZWN0KDAsIDUwLCAxMDAsIDUwKSwgbGF5ZXIx
LmdldCgpKTsKLSAgICBsYXllcjItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVj
dCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxheWVyMi0+dXBkYXRlQ29udGVu
dFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOwogCiAg
ICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBsYXllcjEtPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXIx
SW1wbC5nZXQoKSk7CkBAIC00ODMsOCArNDgzLDggQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHB1c2hUaWxlc0xheWVyTWFya2VkRGlydHlEdXJpbmdQYWludE9uUHJldmlvdXNMYXkK
IAogICAgIC8vIEludmFsaWRhdGUgYSB0aWxlIG9uIGxheWVyMgogICAgIGxheWVyMS0+ZmFrZUxh
eWVyVGV4dHVyZVVwZGF0ZXIoKS0+c2V0UmVjdFRvSW52YWxpZGF0ZShJbnRSZWN0KDAsIDUwLCAx
MDAsIDUwKSwgbGF5ZXIyLmdldCgpKTsKLSAgICBsYXllcjEtPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
dXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOwotICAgIGxheWVy
Mi0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwg
MCwgbV9zdGF0cyk7CisgICAgbGF5ZXIxLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRS
ZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXIyLT51cGRhdGVDb250
ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CiAg
ICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBsYXllcjEtPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXIx
SW1wbC5nZXQoKSk7CiAgICAgbGF5ZXIyLT5wdXNoUHJvcGVydGllc1RvKGxheWVyMkltcGwuZ2V0
KCkpOwpAQCAtNTE4LDcgKzUxOCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBp
ZGxlUGFpbnRPdXRPZk1lbW9yeSkKIAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyht
X3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0
dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZpc2libGVS
ZWN0LCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwg
dmlzaWJsZVJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAgLy8gSWRsZS1wYWludGluZyBzaG91bGQg
c2VlIG5vIG1vcmUgcHJpb3JpdHkgdGlsZXMgZm9yIHBhaW50aW5nLgogICAgIEVYUEVDVF9GQUxT
RShsYXllci0+bmVlZHNJZGxlUGFpbnQodmlzaWJsZVJlY3QpKTsKQEAgLTUzMSw3ICs1MzEsNyBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50T3V0T2ZNZW1vcnkpCiAK
ICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwog
ICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBk
YXRlQ29udGVudFJlY3QobV91cGRhdGVyLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CisgICAg
bGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIHZpc2libGVSZWN0LCAwLCBtX3N0YXRz
KTsKIAogICAgIC8vIFdlIHNob3VsZG4ndCBzaWduYWwgd2UgbmVlZCBhbm90aGVyIGlkbGUgcGFp
bnQuCiAgICAgRVhQRUNUX0ZBTFNFKGxheWVyLT5uZWVkc0lkbGVQYWludCh2aXNpYmxlUmVjdCkp
OwpAQCAtNTYwLDcgKzU2MCw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBpZGxl
UGFpbnRaZXJvU2l6ZWRMYXllcikKICAgICAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVU
ZXh0dXJlcygpOwogCiAgICAgICAgIC8vIEVtcHR5IGxheWVycyBkb24ndCBwYWludCBvciBpZGxl
LXBhaW50LgotICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250
ZW50UmVjdCwgMCwgbV9zdGF0cyk7CisgICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCBjb250ZW50UmVjdCwgMCwgbV9zdGF0cyk7CiAKICAgICAgICAgLy8gRW1wdHkgbGF5
ZXJzIGRvbid0IGhhdmUgdGlsZXMuCiAgICAgICAgIEVYUEVDVF9FUSgwdSwgbGF5ZXItPm51bVBh
aW50ZWRUaWxlcygpKTsKQEAgLTU5Niw3ICs1OTYsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9t
aXVtVGVzdCwgaWRsZVBhaW50Tm9uVmlzaWJsZUxheWVycykKICAgICAgICAgLy8gUGFpbnQgLyBp
ZGxlLXBhaW50LgogICAgICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0
eUNhbGN1bGF0b3IpOwogICAgICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIHZpc2libGVS
ZWN0LCAwLCBtX3N0YXRzKTsKKyAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVl
dWUsIHZpc2libGVSZWN0LCAwLCBtX3N0YXRzKTsKIAogICAgICAgICAvLyBOb24tdmlzaWJsZSBs
YXllcnMgZG9uJ3QgbmVlZCBpZGxlIHBhaW50LgogICAgICAgICBFWFBFQ1RfRkFMU0UobGF5ZXIt
Pm5lZWRzSWRsZVBhaW50KHZpc2libGVSZWN0KSk7CkBAIC02NTksNyArNjU5LDcgQEAgVEVTVF9G
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE5vblZpc2libGVBbmltYXRpbmdMYXll
cnMpCiAgICAgICAgICAgICAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3Jp
dHlDYWxjdWxhdG9yKTsKICAgICAgICAgICAgICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6
ZVRleHR1cmVzKCk7CiAKLSAgICAgICAgICAgICAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3Qo
bV91cGRhdGVyLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7CisgICAgICAgICAgICAgICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIHZpc2libGVSZWN0LCAwLCBtX3N0YXRzKTsK
ICAgICAgICAgICAgICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgICAgICAgICAgICAgIGxheWVy
LT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7CiAgICAgICAgICAgICB9CkBAIC02
NzIsNyArNjcyLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE5v
blZpc2libGVBbmltYXRpbmdMYXllcnMpCiAgICAgICAgICAgICAgICAgbGF5ZXItPnNldFRleHR1
cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICAgICAgICAgICAgICB0ZXh0
dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAKLSAgICAgICAgICAgICAgICBsYXll
ci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCB2aXNpYmxlUmVjdCwgMCwgbV9zdGF0cyk7
CisgICAgICAgICAgICAgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIHZpc2li
bGVSZWN0LCAwLCBtX3N0YXRzKTsKICAgICAgICAgICAgICAgICB1cGRhdGVUZXh0dXJlcygpOwog
ICAgICAgICAgICAgICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxheWVySW1wbC5nZXQoKSk7
CiAgICAgICAgICAgICB9CkBAIC02OTUsNyArNjk1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKICAgICBsYXllci0+aW52YWxpZGF0ZUNv
bnRlbnRSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKICAgICBsYXllci0+c2V0VGV4dHVy
ZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5w
cmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRh
dGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVw
ZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0
YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygxMDAwKTsKICAgICBsYXllci0+cHVzaFByb3BlcnRp
ZXNUbyhsYXllckltcGwuZ2V0KCkpOwogCkBAIC03MDYsNyArNzA2LDcgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKICAgICBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKICAgICAvLyBJbnZv
a2UgdXBkYXRlQ29udGVudFJlY3QgYWdhaW4uIEFzIHRoZSBsYXllciBpcyB2YWxpZCB1cGRhdGVD
b250ZW50UmVjdCBzaG91bGRuJ3QgYmUgaW52b2tlZCBvbgogICAgIC8vIHRoZSBMYXllclRleHR1
cmVVcGRhdGVyLgotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJl
Y3QoMCwgMCwgMTAwLCAyMDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVu
dFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOwogICAg
IHVwZGF0ZVRleHR1cmVzKDEwMDApOwogICAgIEVYUEVDVF9FUSgwLCBsYXllci0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZUNvdW50KCkpOwogCkBAIC03MTQsMTIgKzcxNCwxMiBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgaW52YWxpZGF0ZUZyb21QcmVwYXJlKQog
ICAgIC8vIHNldFJlY3RUb0ludmFsaWRhdGUgdHJpZ2dlcnMgaW52YWxpZGF0ZUNvbnRlbnRSZWN0
KCkgYmVpbmcgaW52b2tlZCBmcm9tIHVwZGF0ZUNvbnRlbnRSZWN0LgogICAgIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMjUsIDI1
LCA1MCwgNTApLCBsYXllci5nZXQoKSk7CiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPmNsZWFyUHJlcGFyZUNvdW50KCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0
KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCksIDAsIG1fc3RhdHMpOworICAgIGxh
eWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwg
MCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7CiAgICAgRVhQRUNUX0VRKDEs
IGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7CiAgICAg
bGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZUNvdW50KCk7CiAg
ICAgLy8gVGhlIGxheWVyIHNob3VsZCBzdGlsbCBiZSBpbnZhbGlkIGFzIHVwZGF0ZUNvbnRlbnRS
ZWN0IGludm9rZWQgaW52YWxpZGF0ZS4KLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91
cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXIt
PnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgMTAwLCAyMDApLCAwLCBt
X3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygxMDAwKTsKICAgICBFWFBFQ1RfRVEoMSwgbGF5
ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVDb3VudCgpKTsKIH0KQEAgLTc0
Niw3ICs3NDYsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5VXBkYXRl
UmVjdFdoZW5Db250ZW50Qm91bmRzQXJlU2NhbGVkKQogCiAgICAgbGF5ZXItPnNldFRleHR1cmVQ
cmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJp
b3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRl
ciwgY29udGVudEJvdW5kcywgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fcXVldWUsIGNvbnRlbnRCb3VuZHMsIDAsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9GTE9B
VF9SRUNUX0VRKEZsb2F0UmVjdCgwLCAwLCAzMDAsIDMwMCAqIDAuOCksIGxheWVyLT51cGRhdGVS
ZWN0KCkpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAKQEAgLTc1NCw3ICs3NTQsNyBAQCBURVNU
X0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5VXBkYXRlUmVjdFdoZW5Db250ZW50Qm91
bmRzQXJlU2NhbGVkKQogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5
Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwog
ICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoY29udGVudEJvdW5kcyk7Ci0gICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVudEJvdW5kcywgMCwgbV9zdGF0
cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIGNvbnRlbnRCb3VuZHMs
IDAsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdChsYXllckJv
dW5kcyksIGxheWVyLT51cGRhdGVSZWN0KCkpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAKQEAg
LTc2Myw3ICs3NjMsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5VXBk
YXRlUmVjdFdoZW5Db250ZW50Qm91bmRzQXJlU2NhbGVkKQogICAgIGxheWVyLT5pbnZhbGlkYXRl
Q29udGVudFJlY3QocGFydGlhbERhbWFnZSk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0
aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6
ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29u
dGVudEJvdW5kcywgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1f
cXVldWUsIGNvbnRlbnRCb3VuZHMsIDAsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9GTE9BVF9SRUNU
X0VRKEZsb2F0UmVjdCg0NSwgODAsIDE1LCA4KSwgbGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiB9CiAK
QEAgLTc4NSw3ICs3ODUsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5
SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2NhbGVDaGFuZ2VzKQogICAgIC8vIFB1c2ggdGhlIHRp
bGVzIHRvIHRoZSBpbXBsIHNpZGUgYW5kIGNoZWNrIHRoYXQgdGhlcmUgaXMgZXhhY3RseSBvbmUu
CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxhdG9yKTsK
ICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5ZXItPnVw
ZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIDAsIG1f
c3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAs
IDAsIDEwMCwgMTAwKSwgMCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMoKTsKICAgICBs
YXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVF
KGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKQEAgLTgwMiw3ICs4MDIsNyBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdmVyaWZ5SW52YWxpZGF0aW9uV2hlbkNvbnRlbnRzU2Nh
bGVDaGFuZ2VzKQogICAgIC8vIFRoZSBpbXBsIHNpZGUgc2hvdWxkIGdldCAyeDIgdGlsZXMgbm93
LgogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7
CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAyMDApLCAwLCBt
X3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgw
LCAwLCAyMDAsIDIwMCksIDAsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAg
bGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKICAgICBFWFBFQ1RfVFJV
RShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CkBAIC04MTQsNyArODE0LDcgQEAgVEVTVF9G
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeUludmFsaWRhdGlvbldoZW5Db250ZW50c1Nj
YWxlQ2hhbmdlcykKICAgICAvLyBpbXBsIHNpZGUuCiAgICAgbGF5ZXItPnNldE5lZWRzRGlzcGxh
eSgpOwogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRv
cik7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgxLCAw
LCAwLCAxKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVl
dWUsIEludFJlY3QoMSwgMCwgMCwgMSksIDAsIG1fc3RhdHMpOwogICAgIHRleHR1cmVNYW5hZ2Vy
LT5wcmlvcml0aXplVGV4dHVyZXMoKTsKIAogICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxh
eWVySW1wbC5nZXQoKSk7CkBAIC04NTUsNyArODU1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJv
bWl1bVRlc3QsIHNraXBzRHJhd0dldHNSZXNldCkKICAgICBjY0xheWVyVHJlZUhvc3QtPnNldFJv
b3RMYXllcihyb290TGF5ZXIpOwogICAgIGNjTGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXpl
KEludFNpemUoMzAwLCAzMDApLCBJbnRTaXplKDMwMCwgMzAwKSk7CiAKLSAgICBjY0xheWVyVHJl
ZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIG1lbW9yeUxpbWl0KTsKKyAgICBjY0xheWVy
VHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3F1ZXVlLCBtZW1vcnlMaW1pdCk7CiAKICAgICAvLyBX
ZSdsbCBza2lwIHRoZSByb290IGxheWVyLgogICAgIEVYUEVDVF9UUlVFKHJvb3RMYXllci0+c2tp
cHNEcmF3KCkpOwpAQCAtODY2LDcgKzg2Niw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1U
ZXN0LCBza2lwc0RyYXdHZXRzUmVzZXQpCiAgICAgLy8gUmVtb3ZlIHRoZSBjaGlsZCBsYXllci4K
ICAgICByb290TGF5ZXItPnJlbW92ZUFsbENoaWxkcmVuKCk7CiAKLSAgICBjY0xheWVyVHJlZUhv
c3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIG1lbW9yeUxpbWl0KTsKKyAgICBjY0xheWVyVHJl
ZUhvc3QtPnVwZGF0ZUxheWVycyhtX3F1ZXVlLCBtZW1vcnlMaW1pdCk7CiAgICAgRVhQRUNUX0ZB
TFNFKHJvb3RMYXllci0+c2tpcHNEcmF3KCkpOwogCiAgICAgY2NMYXllclRyZWVIb3N0LT5jb250
ZW50c1RleHR1cmVNYW5hZ2VyKCktPmNsZWFyQWxsTWVtb3J5KG1fcmVzb3VyY2VQcm92aWRlci5n
ZXQoKSk7CkBAIC04ODYsNyArODg2LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3Qs
IHJlc2l6ZVRvU21hbGxlcikKIAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3By
aW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJl
cygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwg
MCwgNzAwLCA3MDApLCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3Qo
bV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA3MDAsIDcwMCksIDAsIG1fc3RhdHMpOwogCiAgICAgbGF5
ZXItPnNldEJvdW5kcyhJbnRTaXplKDIwMCwgMjAwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVD
b250ZW50UmVjdChJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSk7CkBAIC05MDUsNyArOTA1LDcgQEAg
VEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGh1Z2VMYXllclVwZGF0ZUNyYXNoKQogICAg
IC8vIEVuc3VyZSBubyBjcmFzaCBmb3IgYm91bmRzIHdoZXJlIHNpemUgKiBzaXplIHdvdWxkIG92
ZXJmbG93IGFuIGludC4KICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0
eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsK
LSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDcw
MCwgNzAwKSwgMCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVl
dWUsIEludFJlY3QoMCwgMCwgNzAwLCA3MDApLCAwLCBtX3N0YXRzKTsKIH0KIAogVEVTVF9GKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQpAQCAtOTM0LDE3ICs5MzQsMTcg
QEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQogICAgIGNj
TGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnRTaXplKEludFNpemUoMzAwLCAyMDApLCBJbnRTaXpl
KDMwMCwgMjAwKSk7CiAKICAgICAvLyBGdWxsIHVwZGF0ZSBvZiBhbGwgNiB0aWxlcy4KLSAgICBj
Y0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1p
dHM8c2l6ZV90Pjo6bWF4KCkpOworICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1f
cXVldWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgIHsKICAgICAg
ICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIE93blB0cjxG
YWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExh
eWVySW1wbCgxKSkpOwogICAgICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQRUNU
X0VRKDQsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsK
LSAgICAgICAgRVhQRUNUX1RSVUUobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAg
ICBFWFBFQ1RfVFJVRShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICB1
cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQRUNUX0VRKDIsIGxheWVyLT5mYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKG1f
dXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKG1fcXVldWUu
aGFzTW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
cigpLT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1Rv
KGxheWVySW1wbC5nZXQoKSk7CiAgICAgfQpAQCAtOTUyLDE3ICs5NTIsMTcgQEAgVEVTVF9GKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQogCiAgICAgLy8gRnVsbCB1cGRh
dGUgb2YgMyB0aWxlcyBhbmQgcGFydGlhbCB1cGRhdGUgb2YgMyB0aWxlcy4KICAgICBsYXllci0+
aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwgMzAwLCAxNTApKTsKLSAgICBjY0xh
eWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIHN0ZDo6bnVtZXJpY19saW1pdHM8
c2l6ZV90Pjo6bWF4KCkpOworICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fcXVl
dWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOwogICAgIHsKICAgICAgICAg
RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIE93blB0cjxGYWtl
Q0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVy
SW1wbCgxKSkpOwogICAgICAgICB1cGRhdGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQRUNUX0VR
KDMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAg
ICAgICAgRVhQRUNUX1RSVUUobV91cGRhdGVyLmhhc01vcmVVcGRhdGVzKCkpOworICAgICAgICBF
WFBFQ1RfVFJVRShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBsYXllci0+ZmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICB1cGRh
dGVUZXh0dXJlcyg0KTsKICAgICAgICAgRVhQRUNUX0VRKDMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKG1fdXBk
YXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKG1fcXVldWUuaGFz
TW9yZVVwZGF0ZXMoKSk7CiAgICAgICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5jbGVhclVwZGF0ZUNvdW50KCk7CiAgICAgICAgIGxheWVyLT5wdXNoUHJvcGVydGllc1RvKGxh
eWVySW1wbC5nZXQoKSk7CiAgICAgfQpAQCAtOTczLDE0ICs5NzMsMTQgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQogICAgIHsKICAgICAgICAgRGVidWdT
Y29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIE93blB0cjxGYWtlQ0NUaWxl
ZExheWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgx
KSkpOwotICAgICAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIHN0
ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBjY0xheWVyVHJlZUhv
c3QtPnVwZGF0ZUxheWVycyhtX3F1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1h
eCgpKTsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSgyLCBs
YXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAg
IEVYUEVDVF9UUlVFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNU
X1RSVUUobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VMYXll
clRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgdXBkYXRlVGV4
dHVyZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSg0LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVDVF9GQUxTRShtX3VwZGF0ZXIu
aGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShtX3F1ZXVlLmhhc01vcmVV
cGRhdGVzKCkpOwogICAgICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xl
YXJVcGRhdGVDb3VudCgpOwogICAgICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllcklt
cGwuZ2V0KCkpOwogICAgIH0KQEAgLTEwMDAsMTQgKzEwMDAsMTQgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQogICAgIHsKICAgICAgICAgRGVidWdTY29w
ZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIE93blB0cjxGYWtlQ0NUaWxlZExh
eWVySW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgxKSkp
OwotICAgICAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIHN0ZDo6
bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBjY0xheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVycyhtX3F1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgp
KTsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSg0LCBsYXll
ci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVY
UEVDVF9UUlVFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX1RS
VUUobV9xdWV1ZS5oYXNNb3JlVXBkYXRlcygpKTsKICAgICAgICAgbGF5ZXItPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgdXBkYXRlVGV4dHVy
ZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSgyLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVDVF9GQUxTRShtX3VwZGF0ZXIuaGFz
TW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShtX3F1ZXVlLmhhc01vcmVVcGRh
dGVzKCkpOwogICAgICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJV
cGRhdGVDb3VudCgpOwogICAgICAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwu
Z2V0KCkpOwogICAgIH0KQEAgLTEwMTgsMTAgKzEwMTgsMTAgQEAgVEVTVF9GKFRpbGVkTGF5ZXJD
aHJvbWl1bVRlc3QsIHBhcnRpYWxVcGRhdGVzKQogICAgIHsKICAgICAgICAgRGVidWdTY29wZWRT
ZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CiAgICAgICAgIE93blB0cjxGYWtlQ0NUaWxlZExheWVy
SW1wbD4gbGF5ZXJJbXBsKGFkb3B0UHRyKG5ldyBGYWtlQ0NUaWxlZExheWVySW1wbCgxKSkpOwot
ICAgICAgICBjY0xheWVyVHJlZUhvc3QtPnVwZGF0ZUxheWVycyhtX3VwZGF0ZXIsIHN0ZDo6bnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpOworICAgICAgICBjY0xheWVyVHJlZUhvc3QtPnVw
ZGF0ZUxheWVycyhtX3F1ZXVlLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsK
ICAgICAgICAgdXBkYXRlVGV4dHVyZXMoNCk7CiAgICAgICAgIEVYUEVDVF9FUSg0LCBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVD
VF9GQUxTRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxT
RShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogICAgICAgICBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICBsYXllci0+cHVzaFBy
b3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogICAgIH0KQEAgLTEwNDgsNyArMTA0OCw3IEBA
IFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRob3V0T2NjbHVz
aW9uKQogCiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJpb3JpdHlDYWxjdWxh
dG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7Ci0gICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAwLCAxMDAsIDIwMCks
IDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJbnRS
ZWN0KDAsIDAsIDEwMCwgMjAwKSwgMCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDIsIGxheWVy
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogfQogCkBA
IC0xMDY4LDcgKzEwNjgsNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQ
YWludGVkV2l0aE9jY2x1c2lvbikKIAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyht
X3ByaW9yaXR5Q2FsY3VsYXRvcik7CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0
dXJlcygpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3Qo
MCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVD
b250ZW50UmVjdChtX3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBt
X3N0YXRzKTsKICAgICBFWFBFQ1RfRVEoMzYtMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPnByZXBhcmVSZWN0Q291bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5v
dmVyZHJhd01ldHJpY3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTEwNzks
NyArMTA3OSw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRX
aXRoT2NjbHVzaW9uKQogCiAgICAgb2NjbHVkZWQuc2V0T2NjbHVzaW9uKEludFJlY3QoMjUwLCAy
MDAsIDMwMCwgMTAwKSk7CiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0
KDAsIDAsIDYwMCwgNjAwKSk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRl
ciwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5
ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAm
b2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIEVYUEVDVF9FUSgzNi0yLCBsYXllci0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFS
KG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEp
OwpAQCAtMTA5MCw3ICsxMDkwLDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRp
bGVzUGFpbnRlZFdpdGhPY2NsdXNpb24pCiAKICAgICBvY2NsdWRlZC5zZXRPY2NsdXNpb24oSW50
UmVjdCgyNTAsIDI1MCwgMzAwLCAxMDApKTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRS
ZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJl
Y3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRz
KTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2
MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDM2LCBsYXllci0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVY
UEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJkcmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVl
KCksIDAsIDEpOwpAQCAtMTExNSw3ICsxMTE1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1
bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhPY2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykK
IAogICAgIGxheWVyLT5zZXRUZXh0dXJlUHJpb3JpdGllcyhtX3ByaW9yaXR5Q2FsY3VsYXRvcik7
CiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9yaXRpemVUZXh0dXJlcygpOwotICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgNjAwLCAzNjApLCAmb2Nj
bHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBJ
bnRSZWN0KDAsIDAsIDYwMCwgMzYwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICBFWFBFQ1Rf
RVEoMjQtMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVSZWN0Q291
bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3MoKS5waXhl
bHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTExMzAsNyArMTEzMCw3IEBAIFRFU1RfRihU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kVmlzaWJs
aXR5Q29uc3RyYWludHMpCiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0
KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAw
LCA2MDAsIDM1MCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCAzNTApLCAmb2NjbHVkZWQsIG1fc3Rh
dHMpOwogICAgIEVYUEVDVF9FUSgyNC02LCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+cHJlcGFyZVJlY3RDb3VudCgpKTsKIAogICAgIEVYUEVDVF9ORUFSKG9jY2x1ZGVkLm92ZXJk
cmF3TWV0cmljcygpLnBpeGVsc1VwbG9hZGVkT3BhcXVlKCksIDAsIDEpOwpAQCAtMTE0NSw3ICsx
MTQ1LDcgQEAgVEVTVF9GKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHRpbGVzUGFpbnRlZFdpdGhP
Y2NsdXNpb25BbmRWaXNpYmxpdHlDb25zdHJhaW50cykKICAgICBsYXllci0+aW52YWxpZGF0ZUNv
bnRlbnRSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4dHVy
ZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5w
cmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRh
dGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgMzQwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDM0MCks
ICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDI0LTYsIGxheWVyLT5mYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05F
QVIob2NjbHVkZWQub3ZlcmRyYXdNZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwg
MSk7CkBAIC0xMTY5LDcgKzExNjksNyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwg
dGlsZXNOb3RQYWludGVkV2l0aG91dEludmFsaWRhdGlvbikKICAgICBsYXllci0+aW52YWxpZGF0
ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4
dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2Vy
LT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91
cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAg
ICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYw
MCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlUmVjdENvdW50KCkpOwogICAgIHsKICAgICAg
ICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CkBAIC0xMTgzLDcgKzExODMs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNOb3RQYWludGVkV2l0aG91
dEludmFsaWRhdGlvbikKICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+Y2xl
YXJQcmVwYXJlUmVjdENvdW50KCk7CiAKICAgICAvLyBSZXBhaW50IHdpdGhvdXQgbWFya2luZyBp
dCBkaXJ0eS4gVGhlIDMgY3VsbGVkIHRpbGVzIHdpbGwgYmUgcHJlLXBhaW50ZWQgbm93LgotICAg
IGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIEludFJlY3QoMCwgMCwgNjAwLCA2
MDApLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdCht
X3F1ZXVlLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAg
ICBFWFBFQ1RfRVEoMywgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVS
ZWN0Q291bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTEyMTIsNyArMTIxMiw3IEBAIFRF
U1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5k
VHJhbnNmb3JtcykKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwg
MCwgNjAwLCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0
eUNhbGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsK
LSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYw
MCwgNjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJl
Y3QobV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7
CiAgICAgRVhQRUNUX0VRKDM2LTMsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5w
cmVwYXJlUmVjdENvdW50KCkpOwogCiAgICAgRVhQRUNUX05FQVIob2NjbHVkZWQub3ZlcmRyYXdN
ZXRyaWNzKCkucGl4ZWxzVXBsb2FkZWRPcGFxdWUoKSwgMCwgMSk7CkBAIC0xMjQzLDcgKzEyNDMs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdGlsZXNQYWludGVkV2l0aE9jY2x1
c2lvbkFuZFNjYWxpbmcpCiAgICAgbGF5ZXItPmludmFsaWRhdGVDb250ZW50UmVjdChJbnRSZWN0
KDAsIDAsIDYwMCwgNjAwKSk7CiAgICAgbGF5ZXItPnNldFRleHR1cmVQcmlvcml0aWVzKG1fcHJp
b3JpdHlDYWxjdWxhdG9yKTsKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVz
KCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgSW50UmVjdCgwLCAw
LCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fcXVldWUsIEludFJlY3QoMCwgMCwgNjAwLCA2MDApLCAmb2NjbHVkZWQsIG1fc3Rh
dHMpOwogICAgIC8vIFRoZSBjb250ZW50IGlzIGhhbGYgdGhlIHNpemUgb2YgdGhlIGxheWVyIChz
byB0aGUgbnVtYmVyIG9mIHRpbGVzIGlzIGZld2VyKS4KICAgICAvLyBJbiB0aGlzIGNhc2UsIHRo
ZSBjb250ZW50IGlzIDMwMHgzMDAsIGFuZCBzaW5jZSB0aGUgdGlsZSBzaXplIGlzIDEwMCwgdGhl
CiAgICAgLy8gbnVtYmVyIG9mIHRpbGVzIDN4My4KQEAgLTEyNjMsNyArMTI2Myw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5kU2Nh
bGluZykKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwgNjAw
LCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNhbGN1
bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAgICBs
YXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwgNjAw
KSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9x
dWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAg
RVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVS
ZWN0Q291bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJpY3Mo
KS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTEyODMsNyArMTI4Myw3IEBAIFRF
U1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB0aWxlc1BhaW50ZWRXaXRoT2NjbHVzaW9uQW5k
U2NhbGluZykKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwg
NjAwLCA2MDApKTsKICAgICBsYXllci0+c2V0VGV4dHVyZVByaW9yaXRpZXMobV9wcmlvcml0eUNh
bGN1bGF0b3IpOwogICAgIHRleHR1cmVNYW5hZ2VyLT5wcmlvcml0aXplVGV4dHVyZXMoKTsKLSAg
ICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBJbnRSZWN0KDAsIDAsIDYwMCwg
NjAwKSwgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3Qo
bV9xdWV1ZSwgSW50UmVjdCgwLCAwLCA2MDAsIDYwMCksICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAg
ICAgRVhQRUNUX0VRKDktMSwgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBh
cmVSZWN0Q291bnQoKSk7CiAKICAgICBFWFBFQ1RfTkVBUihvY2NsdWRlZC5vdmVyZHJhd01ldHJp
Y3MoKS5waXhlbHNVcGxvYWRlZE9wYXF1ZSgpLCAwLCAxKTsKQEAgLTEzMTYsNyArMTMxNiw3IEBA
IFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lv
bikKICAgICAvLyBJZiB0aGUgbGF5ZXIgZG9lc24ndCBwYWludCBvcGFxdWUgY29udGVudCwgdGhl
biB0aGUgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24gc2hvdWxkIGJlIGVtcHR5LgogICAgIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVj
dCgpKTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNvbnRlbnRCb3VuZHMpOwot
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsICZv
Y2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUs
IGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgb3BhcXVlQ29udGVudHMg
PSBsYXllci0+dmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKTsKICAgICBFWFBFQ1RfVFJVRShv
cGFxdWVDb250ZW50cy5pc0VtcHR5KCkpOwogCkBAIC0xMzI5LDcgKzEzMjksNyBAQCBURVNUX0Yo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24pCiAgICAg
b3BhcXVlUGFpbnRSZWN0ID0gSW50UmVjdCgxMCwgMTAsIDkwLCAxOTApOwogICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3Qob3BhcXVlUGFpbnRS
ZWN0KTsKICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNvbnRlbnRCb3VuZHMpOwot
ICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRCb3VuZHMsICZv
Y2NsdWRlZCwgbV9zdGF0cyk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fcXVldWUs
IGNvbnRlbnRCb3VuZHMsICZvY2NsdWRlZCwgbV9zdGF0cyk7CiAgICAgdXBkYXRlVGV4dHVyZXMo
KTsKICAgICBvcGFxdWVDb250ZW50cyA9IGxheWVyLT52aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lv
bigpOwogICAgIEVYUEVDVF9FUV9SRUNUKGludGVyc2VjdGlvbihvcGFxdWVQYWludFJlY3QsIHZp
c2libGVCb3VuZHMpLCBvcGFxdWVDb250ZW50cy5ib3VuZHMoKSk7CkBAIC0xMzQyLDcgKzEzNDIs
NyBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgdmlzaWJsZUNvbnRlbnRPcGFxdWVS
ZWdpb24pCiAKICAgICAvLyBJZiB3ZSBwYWludCBhZ2FpbiB3aXRob3V0IGludmFsaWRhdGluZywg
dGhlIHNhbWUgc3R1ZmYgc2hvdWxkIGJlIG9wYXF1ZS4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7Ci0gICAgbGF5ZXIt
PnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBt
X3N0YXRzKTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJv
dW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9w
YXF1ZUNvbnRlbnRzID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7CiAgICAg
RVhQRUNUX0VRX1JFQ1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5k
cyksIG9wYXF1ZUNvbnRlbnRzLmJvdW5kcygpKTsKQEAgLTEzNTcsNyArMTM1Nyw3IEBAIFRFU1Rf
RihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKICAg
ICAvLyBub3QgYmUgYWZmZWN0ZWQuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVy
KCktPnNldE9wYXF1ZVBhaW50UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRl
Q29udGVudFJlY3QoSW50UmVjdCgwLCAwLCAxLCAxKSk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRl
bnRSZWN0KG1fdXBkYXRlciwgY29udGVudEJvdW5kcywgJm9jY2x1ZGVkLCBtX3N0YXRzKTsKKyAg
ICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudEJvdW5kcywgJm9jY2x1
ZGVkLCBtX3N0YXRzKTsKICAgICB1cGRhdGVUZXh0dXJlcygpOwogICAgIG9wYXF1ZUNvbnRlbnRz
ID0gbGF5ZXItPnZpc2libGVDb250ZW50T3BhcXVlUmVnaW9uKCk7CiAgICAgRVhQRUNUX0VRX1JF
Q1QoaW50ZXJzZWN0aW9uKG9wYXF1ZVBhaW50UmVjdCwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNv
bnRlbnRzLmJvdW5kcygpKTsKQEAgLTEzNzIsNyArMTM3Miw3IEBAIFRFU1RfRihUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCB2aXNpYmxlQ29udGVudE9wYXF1ZVJlZ2lvbikKICAgICAvLyBub3QgYmUg
YWZmZWN0ZWQuCiAgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnNldE9wYXF1
ZVBhaW50UmVjdChJbnRSZWN0KCkpOwogICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3Qo
SW50UmVjdCgxMCwgMTAsIDEsIDEpKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91
cGRhdGVyLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51
cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3Rh
dHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+
dmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKTsKICAgICBFWFBFQ1RfRVFfUkVDVChpbnRlcnNl
Y3Rpb24oSW50UmVjdCgxMCwgMTAwLCA5MCwgMTAwKSwgdmlzaWJsZUJvdW5kcyksIG9wYXF1ZUNv
bnRlbnRzLmJvdW5kcygpKTsKQEAgLTE0MDksNyArMTQwOSw3IEBAIFRFU1RfRihUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCBwaXhlbHNQYWludGVkTWV0cmljcykKICAgICAvLyBJbnZhbGlkYXRlcyBh
bmQgcGFpbnRzIHRoZSB3aG9sZSBsYXllci4KICAgICBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVw
ZGF0ZXIoKS0+c2V0T3BhcXVlUGFpbnRSZWN0KEludFJlY3QoKSk7CiAgICAgbGF5ZXItPmludmFs
aWRhdGVDb250ZW50UmVjdChjb250ZW50Qm91bmRzKTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVu
dFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAg
IGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBjb250ZW50Qm91bmRzLCAmb2NjbHVk
ZWQsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1cmVzKCk7CiAgICAgb3BhcXVlQ29udGVudHMg
PSBsYXllci0+dmlzaWJsZUNvbnRlbnRPcGFxdWVSZWdpb24oKTsKICAgICBFWFBFQ1RfVFJVRShv
cGFxdWVDb250ZW50cy5pc0VtcHR5KCkpOwpAQCAtMTQyNCw3ICsxNDI0LDcgQEAgVEVTVF9GKFRp
bGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHBpeGVsc1BhaW50ZWRNZXRyaWNzKQogICAgIGxheWVyLT5m
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5zZXRPcGFxdWVQYWludFJlY3QoSW50UmVjdCgpKTsK
ICAgICBsYXllci0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KEludFJlY3QoMCwgMCwgMSwgMSkpOwog
ICAgIGxheWVyLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoSW50UmVjdCg1MCwgMjAwLCAxMCwgMTAp
KTsKLSAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV91cGRhdGVyLCBjb250ZW50Qm91bmRz
LCAmb2NjbHVkZWQsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1
ZXVlLCBjb250ZW50Qm91bmRzLCAmb2NjbHVkZWQsIG1fc3RhdHMpOwogICAgIHVwZGF0ZVRleHR1
cmVzKCk7CiAgICAgb3BhcXVlQ29udGVudHMgPSBsYXllci0+dmlzaWJsZUNvbnRlbnRPcGFxdWVS
ZWdpb24oKTsKICAgICBFWFBFQ1RfVFJVRShvcGFxdWVDb250ZW50cy5pc0VtcHR5KCkpOwpAQCAt
MTQ4NSwxNCArMTQ4NSwxNCBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgZG9udEFs
bG9jYXRlQ29udGVudHNXaGVuVGFyZ2V0U3VyZmFjZUNhbnRCZUFsbG9jYQogICAgIHJvb3QtPmlu
dmFsaWRhdGVDb250ZW50UmVjdChyb290UmVjdCk7CiAgICAgY2hpbGQtPmludmFsaWRhdGVDb250
ZW50UmVjdChjaGlsZFJlY3QpOwogICAgIGNoaWxkMi0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNo
aWxkMlJlY3QpOwotICAgIGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwg
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSk7CisgICAgY2NMYXllclRyZWVIb3N0
LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSk7CiAgICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRocmVhZDsK
ICAgICAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7CiAgICAgICAgIEVYUEVDVF9FUSg2LCByb290
LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKICAgICAgICAgRVhQ
RUNUX0VRKDMsIGNoaWxkLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgp
KTsKICAgICAgICAgRVhQRUNUX0VRKDMsIGNoaWxkMi0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIo
KS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVDVF9GQUxTRShtX3VwZGF0ZXIuaGFzTW9y
ZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxTRShtX3F1ZXVlLmhhc01vcmVVcGRhdGVz
KCkpOwogCiAgICAgICAgIHJvb3QtPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBk
YXRlQ291bnQoKTsKICAgICAgICAgY2hpbGQtPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNs
ZWFyVXBkYXRlQ291bnQoKTsKQEAgLTE1MjAsMTQgKzE1MjAsMTQgQEAgVEVTVF9GKFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QsIGRvbnRBbGxvY2F0ZUNvbnRlbnRzV2hlblRhcmdldFN1cmZhY2VDYW50
QmVBbGxvY2EKICAgICByb290LT5pbnZhbGlkYXRlQ29udGVudFJlY3Qocm9vdFJlY3QpOwogICAg
IGNoaWxkLT5pbnZhbGlkYXRlQ29udGVudFJlY3QoY2hpbGRSZWN0KTsKICAgICBjaGlsZDItPmlu
dmFsaWRhdGVDb250ZW50UmVjdChjaGlsZDJSZWN0KTsKLSAgICBjY0xheWVyVHJlZUhvc3QtPnVw
ZGF0ZUxheWVycyhtX3VwZGF0ZXIsICgzICogMiArIDMgKiAxKSAqICgxMDAgKiAxMDApICogNCk7
CisgICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwgKDMgKiAyICsgMyAq
IDEpICogKDEwMCAqIDEwMCkgKiA0KTsKICAgICB7CiAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1w
bFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICB1cGRhdGVUZXh0dXJlcygxMDAwKTsKICAgICAg
ICAgRVhQRUNUX0VRKDYsIHJvb3QtPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnVwZGF0ZUNv
dW50KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMCwgY2hpbGQtPmZha2VMYXllclRleHR1cmVVcGRh
dGVyKCktPnVwZGF0ZUNvdW50KCkpOwogICAgICAgICBFWFBFQ1RfRVEoMCwgY2hpbGQyLT5mYWtl
TGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKLSAgICAgICAgRVhQRUNUX0ZB
TFNFKG1fdXBkYXRlci5oYXNNb3JlVXBkYXRlcygpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKG1f
cXVldWUuaGFzTW9yZVVwZGF0ZXMoKSk7CiAKICAgICAgICAgcm9vdC0+ZmFrZUxheWVyVGV4dHVy
ZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwogICAgICAgICBjaGlsZC0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+Y2xlYXJVcGRhdGVDb3VudCgpOwpAQCAtMTU1NiwxNCArMTU1Niwx
NCBAQCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgZG9udEFsbG9jYXRlQ29udGVudHNX
aGVuVGFyZ2V0U3VyZmFjZUNhbnRCZUFsbG9jYQogICAgIHJvb3QtPmludmFsaWRhdGVDb250ZW50
UmVjdChyb290UmVjdCk7CiAgICAgY2hpbGQtPmludmFsaWRhdGVDb250ZW50UmVjdChjaGlsZFJl
Y3QpOwogICAgIGNoaWxkMi0+aW52YWxpZGF0ZUNvbnRlbnRSZWN0KGNoaWxkMlJlY3QpOwotICAg
IGNjTGF5ZXJUcmVlSG9zdC0+dXBkYXRlTGF5ZXJzKG1fdXBkYXRlciwgKDMgKiAxKSAqICgxMDAg
KiAxMDApICogNCk7CisgICAgY2NMYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMobV9xdWV1ZSwg
KDMgKiAxKSAqICgxMDAgKiAxMDApICogNCk7CiAgICAgewogICAgICAgICBEZWJ1Z1Njb3BlZFNl
dEltcGxUaHJlYWQgaW1wbFRocmVhZDsKICAgICAgICAgdXBkYXRlVGV4dHVyZXMoMTAwMCk7CiAg
ICAgICAgIEVYUEVDVF9FUSgwLCByb290LT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT51cGRh
dGVDb3VudCgpKTsKICAgICAgICAgRVhQRUNUX0VRKDAsIGNoaWxkLT5mYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcigpLT51cGRhdGVDb3VudCgpKTsKICAgICAgICAgRVhQRUNUX0VRKDAsIGNoaWxkMi0+
ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+dXBkYXRlQ291bnQoKSk7Ci0gICAgICAgIEVYUEVD
VF9GQUxTRShtX3VwZGF0ZXIuaGFzTW9yZVVwZGF0ZXMoKSk7CisgICAgICAgIEVYUEVDVF9GQUxT
RShtX3F1ZXVlLmhhc01vcmVVcGRhdGVzKCkpOwogCiAgICAgICAgIHJvb3QtPmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKICAgICAgICAgY2hpbGQtPmZha2VM
YXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyVXBkYXRlQ291bnQoKTsKQEAgLTE2NTIsNyArMTY1
Miw3IEBAIFRFU1RfRihUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNT
Y2FsZUlzTm90RGlzdG9ydGVkRHVyaW5nUGFpbnQpCiAgICAgdGV4dHVyZU1hbmFnZXItPnByaW9y
aXRpemVUZXh0dXJlcygpOwogCiAgICAgLy8gVXBkYXRlIHRoZSB3aG9sZSB0aWxlLgotICAgIGxh
eWVyLT51cGRhdGVDb250ZW50UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRz
KTsKKyAgICBsYXllci0+dXBkYXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudFJlY3QsIDAs
IG1fc3RhdHMpOwogICAgIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigpLT5yZXNldFBhaW50
ZWRSZWN0KCk7CiAKICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgpLCBsYXllci0+dHJh
Y2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CkBAIC0xNjY0LDcgKzE2NjQsNyBA
QCBURVNUX0YoVGlsZWRMYXllckNocm9taXVtVGVzdCwgbm9uSW50ZWdlckNvbnRlbnRzU2NhbGVJ
c05vdERpc3RvcnRlZER1cmluZ1BhaW50KQogCiAgICAgLy8gSW52YWxpZGF0ZSB0aGUgZW50aXJl
IGxheWVyIGluIGNvbnRlbnQgc3BhY2UuIFdoZW4gcGFpbnRpbmcsIHRoZSByZWN0IGdpdmVuIHRv
IHdlYmtpdCBzaG91bGQgbWF0Y2ggdGhlIGxheWVyJ3MgYm91bmRzLgogICAgIGxheWVyLT5pbnZh
bGlkYXRlQ29udGVudFJlY3QoY29udGVudFJlY3QpOwotICAgIGxheWVyLT51cGRhdGVDb250ZW50
UmVjdChtX3VwZGF0ZXIsIGNvbnRlbnRSZWN0LCAwLCBtX3N0YXRzKTsKKyAgICBsYXllci0+dXBk
YXRlQ29udGVudFJlY3QobV9xdWV1ZSwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMpOwogCiAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKGxheWVyUmVjdCwgbGF5ZXItPnRyYWNraW5nTGF5ZXJQYWludGVy
KCktPnBhaW50ZWRSZWN0KCkpOwogfQpAQCAtMTY4Nyw3ICsxNjg3LDcgQEAgVEVTVF9GKFRpbGVk
TGF5ZXJDaHJvbWl1bVRlc3QsIG5vbkludGVnZXJDb250ZW50c1NjYWxlSXNOb3REaXN0b3J0ZWRE
dXJpbmdJbnZhbGkKICAgICB0ZXh0dXJlTWFuYWdlci0+cHJpb3JpdGl6ZVRleHR1cmVzKCk7CiAK
ICAgICAvLyBVcGRhdGUgdGhlIHdob2xlIHRpbGUuCi0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRS
ZWN0KG1fdXBkYXRlciwgY29udGVudFJlY3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRh
dGVDb250ZW50UmVjdChtX3F1ZXVlLCBjb250ZW50UmVjdCwgMCwgbV9zdGF0cyk7CiAgICAgbGF5
ZXItPnRyYWNraW5nTGF5ZXJQYWludGVyKCktPnJlc2V0UGFpbnRlZFJlY3QoKTsKIAogICAgIEVY
UEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KCksIGxheWVyLT50cmFja2luZ0xheWVyUGFpbnRlcigp
LT5wYWludGVkUmVjdCgpKTsKQEAgLTE2OTksNyArMTY5OSw3IEBAIFRFU1RfRihUaWxlZExheWVy
Q2hyb21pdW1UZXN0LCBub25JbnRlZ2VyQ29udGVudHNTY2FsZUlzTm90RGlzdG9ydGVkRHVyaW5n
SW52YWxpCiAKICAgICAvLyBJbnZhbGlkYXRlIHRoZSBlbnRpcmUgbGF5ZXIgaW4gbGF5ZXIgc3Bh
Y2UuIFdoZW4gcGFpbnRpbmcsIHRoZSByZWN0IGdpdmVuIHRvIHdlYmtpdCBzaG91bGQgbWF0Y2gg
dGhlIGxheWVyJ3MgYm91bmRzLgogICAgIGxheWVyLT5zZXROZWVkc0Rpc3BsYXlSZWN0KGxheWVy
UmVjdCk7Ci0gICAgbGF5ZXItPnVwZGF0ZUNvbnRlbnRSZWN0KG1fdXBkYXRlciwgY29udGVudFJl
Y3QsIDAsIG1fc3RhdHMpOworICAgIGxheWVyLT51cGRhdGVDb250ZW50UmVjdChtX3F1ZXVlLCBj
b250ZW50UmVjdCwgMCwgbV9zdGF0cyk7CiAKICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEobGF5ZXJS
ZWN0LCBsYXllci0+dHJhY2tpbmdMYXllclBhaW50ZXIoKS0+cGFpbnRlZFJlY3QoKSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>